Таймирующая последовательность „
в мастере Последовательность в слуге
Подает сигналы на управляющие (и информационные) линии
Ожидает в течение времени разброса задержек, характерного дія данного сегмента
Выдает таймирующий сигнал стробирования
Опознает таймирующий сигнал подтверждения
Ожидает в течение времени разброса задержек, характерного для данного сегмента
Опознает таймирующий сигнал стробирования
Компенсирует внутренние задержки
Осуществляет выборку с управляющих (и информационных) линий
Выполняет внутренние ответные действия
Выставляет сигналы на статусных (и информационных) линиях, а также выдает таймирующий сигнал подтверждения
Примечание. Состояние магистрали в это время может изменяться, но слуга не реагирует на это до прихода следующего подходящего таймирующего сигнала
Компенсирует внутренние задержки
Опознает сигналы на статусных (и информационных) линиях
Выполняет внутренние ответные действия
Конец последовательности
Этот раздел начинается с общих требований к таймированию для сигналов, генерируемых мастерами и слугами. Далее специфицируются первичные адресные циклы и циклы данных. В заключение специфицируется использование некоторых специаль- 72
ных линий, которые могут оказывать влияние на операции ФАСТ- БАС.
Общие требования к таймированию взаимодействия мае* тер/слуга
Следствие требований к таймированию, которые перечисляются ниже, заключается в том, что слуге не нужно иметь сведения о характеристиках таймирования в том сегменте, к кото- ромуіон в текущий момент подключен, а мастеру не нужно проводить различие между операциями в пределах данного сегмента и вне сегмента. Мастера и вспомогательная логика, подключенные к некоторому сегменту, имеют дело с требованиями к таймированию, ассоциируемыми только с данным сегментом. Соединители сегментов имеют дело с требованиями к таймированию, ассоциируемыми с межсегментными операциями.
Никакие конкретные времена в этом разделе не упоминаются. Наоборот, спецификации приводятся >в терминах времен разброса задержек, времен ответных действий и так далее. Рекомендуемые значения этих времен для конкретных реализаций приведены в приложении А.
Требования к таймированию сигналов мастера
Информация должна быть выставлена на линии AD, РЕ, РА, PD и MS мастером только после выполнения условия AK=EG = 0 в течение времени большего, чем минимальный промежуток между импульсами (см. п. 2.3 и табл. АП).
Управляющая информация на линиях RD, MS и, если требуется, на линиях AD, РА, РЕ должна выставляться раньше, чем выдается сигнал AS (и) или DS(t), на время разброса задержек.
Подача сигнала EG мастером должна производиться в то же самое время, что и выставление адресной информации.
Во время циклов передачи первичного адреса или записи данных мастер должен поддерживать сигналы на линиях MS, AD, РА и РЕ до тех пор, пока он не получит сигнал АК(п) или DK(t) ооочіветіственіно и примет информацию с линий SS, либо до тех пор, пока не выйдет за пределы установленного лимита времени.
Во время цикла чтения данных мастер должен поддерживать сигналы на линиях MS и RD до тех пор, пока он не получит сигнал DK(t) и не примет информацию с линий SS, AD, РА и РЕ, либо до тех пор, пока не выйдет за пределы лимита времени.
Мастер после получения сигналов подтверждения АК(и) или DK(t) от слуги должен, при выполнении условия WT = 0, обеспечить время разброса задержек перед приемом данных с линии SS или, при условии RD = 1, также с линией AD, РА и РЕ.Мастер должен генерировать строб адреса AS(d), если операция ФАСТБАС, инициированная стробом адреса AS (и), должна быть завершена. Мастер должен прекратить подачу всех сигналов на магистраль по крайней мере на время разброса задержек раньше, чем поступит AS(d) (кроме строба данных DS, который может быть удален одновременно с AS(d)).
Мастер должен поддерживать сигнал AS(d) в течение времени (минимального промежутка между импульсами, см. табл. АН), достаточного для того, чтобы очередной слуга, к которому будет осуществляться обращение,-видел сигнал AS(d) прежде, чем поступит следующий сигнал AS (и).
Если мастер в течение лимита времени адресных ответных действий не получает сигнал АК(и) (см. п. 5.1.3 и приложение А) после подачи сигнала AS (и), мастер должен выставить сигнал AS(d) в течение по крайней мере минимального времени спада импульса до начала новой операции.
Если ответ AK(d) на сигнал AS(d) не получен в течение лимита времени адресных ответных действий мастера, он должен констатировать ошибку.
Если ответ DK(t) на сигнал DS(t) не получен в течение лимита времени ответных действий мастера для данных (см. приложение А), мастер должен констатировать ошибку.
Системные соображения требуют, чтобы мастера запускали таймер ответных действий в начале каждого цикла магистрали, за исключением принудительных передач. Если в пределах ожидаемого промежутка времени ответ не получен, данный цикл должен быть завершен и должны быть инициированы восстановительные или диагностические процедуры. Для периодов таймера ответных действий адресного цикла и цикла данных могут быть установлены различные значения, если это желательно. При выборе конкретных значений периодов таймера ответных действий следует учитывать только свойства локального сегмента.
За исключением принудительных передач, мастер должен ожидать ответ на каждый таймирующий фронт, который он генерирует. В момент каждого такого таймирующего фронта мастер должен запускать таймер ответных действий (см. приложение А). Этот таймер должен быть «брошен, когда поступает подтверждение на данный таймирующий переход или когда мастер обнаруживает появление сигнала на линии WT (ожидание). Такие таймеры должны управляться при помощи регистра управления и бЗстояний CSR = 9, как это специфицировано в разд. 8.
В мастере лимиты на время ответных действий основываются на времени реакции слуги на таймирующий фронт и максимальном времени распространения сигнала для той магистрали, к которой непосредственно подключен данный мастер.
Таймер другого типа, долгий таймер, нужен мастерам для предотвращения мертвых связок. Этот таймер управляем регистром CSR-9<04> (см. п. 8.12) и игнорирует сигнал WT. Он может быть сброшен и запущен в любой момент, например, когда мастер выставляет AR или AS. Лимит времени может быть изменен в-любой момент в соответствии с изменяющимися обстоятельствами. Окончание срока не должно влиять на цикл магистрали, если не выставлены AS=1 и АК = 0 (лимит времени на мертвую связку в течение адресного цикла). Лимит должен быть достаточным для того, чтобы обеспечить окончание нормальных операций без обрыва, и не слишком большим, чтобы состояния мертвых связок не приводили к бесполезной трате ресурсов системы. Заметим, что мертвые связки могут быть следствием повторных неудач при попытках получения управления нужными ресурсами, и поэтому обнаружение мертвых связок более важно, чем обнаружение падения активности в работе магистрали. Долгий таймер может быть полезен как средство в определении степени удовлетвоіріительного inponpecica в достижении целей в конкретных применениях.
Как слуги, так и соединители сегментов выдают сигнал WT(u), когда они оказываются не в состоянии выполнить ответные действия немедленно, но предполагают, что смогут сделать это через короткое время. Мастер должен содержать таймер ожидания, который запускается по получении сигнала WT(u), а сбрасывается и запрещается, когда сигнал «ожидание» находится в состоянии WT = 0. Такой таймер ожидания предохраняет мастера от неопределенно долгого ожидания прихода сигнала WT(d), который требуется для продолжения данного цикла. Если истекает лимит времени таймера ожидания, мастер завершает данную операцию, убирая все сигналы.
Мастер должен иметь долгий таймер. Долгий таймер и таймер ожидания, если снимается, должны управляться при помощи регистра CSR#9, как установлено в гл. 8.
Требования к таймированию сигналов слуги
При получении сигнала AS (и) слуга должен предполагать, что данные на линиях AD, RE, РА, RD и MS действительны для первичного адресного цикла. Эти данные перестают считаться действительными в тот момент, когда слуга генерирует сигнал АК(и) или получает сигналы АК(и) или AS(d).
Присоединенный слуга (см. п. 5.2.2) должен ответить на сигнал AS (и) сигналом АК(п) в пределах времени ответа от слуги (см. приложение А). Слуга должен ответить на сигнал DS(t) в пределах времени ответа на прием данных (см. приложение А) либо выставить сигнал WT=1 до тех пор, пока он не подаст сигнал DK(t).
Если в течение первичного адресного цикла присоединенный слуга выставляет SS, сигналы на линии SS (статус слуги) должны быть поданы не позднее, чем сигнал AK(u), и поддерживаться до тех пор, пока не будет изменено состояние линий MS и RD, либо пока не будет получен сигнал DS(u) или AS(d).
Присоединенный слуга, поддерживающий условия АК.= 1, в ответ на сигнал AS(d) должен подать сигнал WT = 0, если он этого еще не делает. Когда слуга определяет, что WT = 0, он должен удалить с магистрали все сигналы в течение времени ответных адресных действий слуги и затем выдать AK(d).
Присоединенный слуга по получении DS(t) должен принять, что действительные данные находятся на линиях MS и RD и, если подходит, также на линиях AD, РА и РЕ. Данные на этих линиях должны считаться действительными до тех пор, пока слуга не выработает сигнал DK(t) или не получит сигнал DS(t) или AS(d) (см. подпункты 4 и 5 п. 5.1.1).
Присоединенный слуга должен выставить SS и, если RD—1, также AD и на выбор РА и РЕ или ТР не позднее чем DK(t) и должен поддерживать эти сигналы до тех пор, пока состояние линий MS и RD не изменится или будет получен сигнал DS(t) или AS(d).
Ответ слуги АК(п) или DK(t) должен означать, что слуга будет отвечать на немедленно следующий сигнал DS(t). Ответ слуги AK(d) должен означать, что он находится в состоянии, в котором он будет правильно отвечать на сигнал AS (и).
Слуга должен выдать SS = 6 в ответ на DS(t) для любой невыполнимой операции. Слуга должен выдать SS в ответ на сигнал AS (и) в соответствии с табл. VI. В ответ на AS(d) слуга должен выдать SS = 0. (Например, если нереализованный код MS сопровождает сигнал DS(d) после единичной передачи, устройство должно вернуть ответ SS = 6).
Если слуга должен поддерживать АК=1 в течение большего промежутка времени, чем время адресных ответных действий слуги после получения сигнала AS(d), слуга должен выставить WT=1. Мастер., видя, что АК=1, WT = 0, по истечении лимита времени адресных ответных действий мастера, рассматривает это как ошибку.
Использование линии ожидания (WT)
Все операции ФАСТБАС, за исключением принудительных передач, являются асинхронными. Если требуется, таймирующие сигналы могут быть запрещены при помощи линии WT (ожидание). Линия WT используется, когда взаимодействие мастер/слуга происходит через соединитель сегментов.
В течение принудительной передачи слуга должен игнорировать WT=1.
Сигнал WT должен следующим образом использоваться для задержки таймирующих ответных действий в сегментах ФАСТБАС:
При получении управляющего сигнала WT=1 действующий мастер должен сбросить и запретить .свой активный таймер ответных действий (адресного цикла или цикла данных). Мастер может выполнить внутренние ответные действия на таймирующие сигналы AG, АК и DK, но не должен изменять состояние таймирующих сигналов AS и DS.
Если в мастере имеется таймер ожидания, управляемый при помощи регистра CSR-9, он должен быть запущен при получении сигналу WT (и).
При получении управляющего сигнала WT=1 слуга может внутренне ответить на таймирующие сигналы AS и DS, но не должен изменять состояние таймирующих сигналов АК 'или DK.
Как для мастера, так и слуги, а также для вспомогательной логики операция ФАСТБАС должна возобновиться, когда получен управляющий сигнал WT = 0.
При получении сигнала WT (d) действующий мастер должен перезапустить соответствующий ситуации таймер ответных действий (адресного цикла или цикла данных).
При получении управляющего сигнала WT=1 контролер таймирования арбитража (см. п. 7.1) должен запретить свой таймер GK (и) (подтверждение разрешения).
При получении сигнала WT (d) контроллер таймирования арбитража должен перезапустить свой таймер ответных действий GK (и).
Независимо от состояния сигнала WT, мастер может завершить операцию, когда истекает лимит времени долгого таймера или таймера ожидания. Слуга может выставить WT в ответ на DS (1), если ему требуется больше времени, чем разрешит таймер ответных действий для цикла данных в мастере, но такая практика не рекомендуется, поскольку она увеличивает риск попадания в состояние невосстанавливаемого сбоя. Для целей диагностики операция на магистрали может выполняться по шагам путем подачи им пульсного сигнала на линию WT.
Первичные адресные циклы
Первичный адресный цикл операции ФАСТБАС устанавливае. связь между мастером и одним или более слугами. Слуги остаютсг присоединенными к мастеру и отвечают на циклы данных до те: пор, пока мастер не разорвет связку.
Первичный адресный цикл начинается после того, как мастер получил право на владение магистралью и выставил на магистралі сигнал GK—1. Мастер затем выставляет сигнал RD = 0, а такж( подает сигналы на линии MS, AD и, возможно, на линии РА, РЕ г EG. Затем подается строб адреса AS, и слуги, получающие сиг налы AS=1, EG = 0, сравнивают, в зависимости от состояния лини? MS, либо свои логические адреса, либо широкие адреса с адре сом, полученным по линиям AD. Слуги, получающие сигналь АК=0, AS=1 и EG=1, сравнивают адрес, поступивший по лини ям AD, со своим географическим адресом. Если была затребован; связь с единственным слугой, то слуга, который распознает по сланный адрес, возвращает действующему мастеру сигнал АК (и) указывающий, что этот слуга теперь становится присоединенныь к мастеру. Если был указан широкий адрес, ответный сигнал АК(и' генерируется вспомогательной логикой, и этот сигнал, когда он по лучен действующим мастером, служит признаком того, что широки/ адрес распространился через указанные части системы. В теченш остальной части операции действующий мастер поддерживает AS = = 1, а присоединенный слуга (или вспомогательная логика) под держивает АК=1. Мастер завершает операцию, подавая AS = 0, ; слуга или вспомогательная логика отвечают сигналом АК=0. Ког да сигналы AS = AK=0 в течение достаточного промежутка време ни, мастер может инициировать новый первичный адресный цикл если он сохранил свое право на владение магистралью, продолжа; подавать сигнал GK=1.