При получении сигналов AS (и) или DS(t) в свой порт ближней стороны, прежде чем выставлять эти сигналы в сегмент дальней стороны, СС должен внести соответствующую задержку, равную времени разброса сигналов.
При получении сигналов АК(и) или DK(t) в свой порт дальней стороны, прежде чем выставлять эти сигналы в сегмент ближней стороны, соединитель сегментов должен внести соответствующую задержку, равную времени разброса сигналов.
В приложении А определены времена разброса сигналов и другие характерные времена для конкретных реализаций.
10.8. Регистр базового адреса
Каждый порт СС должен иметь регистр базового адреса, который содержит базовый адрес сегмента дальней стороны, т. е. значение поля адреса группы GP, используемое при географической адресации устройств, расположенных в сегменте дальней стороны.
Регистр базового адреса должен загружаться содержимым регистра CSR#40, когда в регистр CSR#41 записываются данные, содержащие AD<O2> = 1 (бит базового адреса).
Отметим, что этот регистр является внутренним для СС, но он доступен, наряду с другой информацией, как регистр CSR=#:43h.
11. БЛОЧНЫЕ И ПРИНУДИТЕЛЬНЫЕ ПЕРЕДАЧИ
Блочные и принудительные передачи представляют собой операции ФАСТБАС, во время которых, после соответствующего первичного или вторичного адресного цикла, слова данных выставляются мастером по каждому фронту сигнала DS в случае операции записи и принимаются мастером по каждому фронту сигнала DK в случае операции чтения. Протокол ФАСТБАС не накладывает никакого ограничения на количество слов, пересылаемых во время блочной передачи. Ответ слуги SS = 2 указывает, что он далее не может участвовать в данной операции, и мастер завершает операцию.
В то время как адресные циклы всегда подтверждаются, передачи данных могут быть с подтверждениями или же принудительными. В первом случае, называемом блочной передачей, мастер ожидает ответа по линии DK, прежде чем сформировать следующий фронт сигнала DS. Следовательно, скорость передачи определяется задержками в магистрали и быстродействием более медленного из двух взаимодействующих устройств — мастера или слуги. Во втором случае, называемом принудительной передачей, мастер единолично определяет скорость передачи, чтения или записи, формируя фронты сигнала DS с той частотой, которую он считает подходящей для данной операции.
В случае принудительной передачи, выполняющей запись, мастер выставляет новые данные с опережением формирования каждого фронта сигнала DS на время разброса задержек.
В сЛуге каждый фронт сигнала DS используется для стробирования линий данных и заставляет слугу выставить соответствующий ответ на линиях SS и сформировать фронт сигнала DK. От слуги не требуется, чтобы, он как-либо использовал принимаемые фронты сигнала DK, но рекомендуется, чтобы они подсчитывались. Мастер будет не в состоянии немедленно реагировать на ответы SS, поскольку к тому времени, когда получен ответ, слуга уже обнаружит и ответит на последующие фронты сигнала DS.
В случае принудительной передачи, выполняющей чтение, мастер формирует фронты сигнала DS с согласованной частотой и когда поступают фронты сигнала DK, попользует их .для строби- роївания данных на линиях AD и приема ответа с линией SS. И снова, вследствие принудительной природы данной операции реакция мастера на ответы по линиям SS происходит после того как уже были сделаны запросы на следующие данные.
С точки зрения слуги блочные и принудительные Передачи различаются только в одном аспекте. Слуга, принимающий участие в принудительной передаче, игнорирует WT=1, в то время, как слуга, участвующий в блочной передаче, не игнорирует сигнал WT=1. Это позволяет слуге ответить на все фронты сигнала DS, сформированные мастером, но не полученные к моменту обнаружения сигнала WT=1. Соединители сегментов также трактуют эти два режима передачи несколько различными способами. В случае принудительных передач СС никогда не выставляет сигнал WT=1 в ответ на сигнал DS(t), однако он всегда это делает в случае блочных передач.
Ответы, выставляемые слугами по линиям SS во время блочных и принудительных передач, выглядят, как определено в гл. 5, и более подробно обсуждаются в приложении J.
Принудительные передачи требуют, чтобы мастер при выборе тактовой частоты для сигнала DS принимал во внимание время разброса задержек и свойства данной магистрали, определяющие ее полосу пропускания, а также учитывал возможности слуги по скорости обмена данными. Принудительные передачи должны использоваться только там, где в случае блочных передач электрическая длина магистрали слишком замедляет быстродействие системы.
Регистры устройства, позволяющие осуществлять к ним доступ посредством блочных или принудительных передач, должны также быть доступны при одиночных передачах.
Блочные и принудительные передачи не позволяют прерывать их в обычном смысле, но могут быть завершены мастером раньше по его собственному желанию или по запросу (через SS) от слуги. Слуга может потребовать ■ завершения передачи или помощи посылки SS = 2, если он более не в состоянии принимать данные в случае записи блока или не имеет больше данных в случае чтения блока. В случае передач данных в буферы типа «первый на входе — первый на выходе» или в устройства типа порта входа/ выхода, если устройство временно не способно выставлять или принимать данные, но можно ожидать, что оно еще выставит или примет данные в ближайшем будущем (например, после завершения передач, являющихся внешними по отношению к системе ФАСТБАС), должен быть возвращен ответный код SS = 1 (занято) .
Когда блочная или принудительная передача находится в процессе исполнения, сегмент или сегменты, расположенные вдоль маршрута между мастером и слугой, остаются занятыми, и это может привести к тому, что время ожидания в системе станет слишком большим. Чтобы избежать ухудшения времени реакции системы, мастер должен либо делить длинные блоки на несколько коротких блоков, освобождая магистраль между передачами этих коротких блоков, либо контролировать состояние линии AR для того,' чтобы определить, задерживается ли другая деятельность данной блочной передачей, и затем добровольно уступать магистраль на отрезок времени, пропорциональный требуемой пропускной способности системы. Мастер не должен освобождать магистраль, если логически необходимо исключение других мастеров, подобно тому, как в случае последовательности с заблокированным арбитражем (см. гл. 5).
Когда мастер разбивает блок на несколько подблоков, он должен гарантировать, что указатель внутреннего адреса в слуге будет правильным в начале каждой передачи подблока.Завершение блочных и принудительных передач
Завершение блочных и принудительных передач осложняется тем фактом, что после последнего сигнала DS(t), который сформирован мастером, магистраль может находиться в целом ряде различных состояний, в зависимости от типа передачи, а также от количества переданных слов и направления передачи. Завершение также осложняется возможностью того, что за данной передачей последует другая операция с тем же самым слугой, так что разрыв связки AS/AK не всегда может составлять часть протокола завершения. Всегда должна быть предоставлена возможность произвести последнюю передачу данных, что требует особого внимания к принудительным передачам. После того, как произведена последняя передача, сигналы таймирования для данных DS и DK должны быть переведены в нейтральное состояние таким способом, который не оказывает влияния на состояние слуги. В случае операций чтения в блочной или принудительной пе< редаче, поскольку решение завершить ее могло быть принято мастером, слуга должен быть переведен в такое состояние, в котором он более не выставляет последнее слово данных на линии AD.
Когда завершается операция записи в блочной или принудительной передаче, то, прежде чем начинать другую операцию с тем же самым слугой, со стороны мастера не требуются никакие специальные действия, кроме ожидания, пока не будет очищена магистраль.
Мастер, когда завершает принудительную передачу, но операцию не оканчивает, прежде чем продолжать операцию, должен ожидать до тех пор, пока не будет получен ответ DK, соответствующий последнему посланному сигналу DS. Затем, как в случае принудительных, так и в случае блочных передач, мастер должен выполнить следующие действия.
Если завершение происходит, когда DS = 1, мастер должен выдать MS=0 с опережением на время разброса задержек до выдачи сигнала DS=0.
Если завершается операция чтения, когда DS=?0, мастер должен либо отсоединить от себя слугу при помощи AS=0, либо выполнить дополнительный цикл чтения. Если дополнительный цикл чтения выполняется также в режиме блочной или принудительной передачи, тогда он должен сопровождаться последовательностью, описанной в предыдущем абзаце.
Слуга, принимающий участие в блочной или принудительной передаче, выполняющей чтение, непрерывно выставляет сигналы AD и, возможно, на линиях РЕ и РА. Последовательность завершения должна прекратить выставление сигналов слугой на эти линии, и мастер должен быть извещен о том, что это произошло.
Когда MSO=0, сигналы DS(d) и DK(d) не ассоциируются с передачей данных, и формирователи слов AD в слуге выключены. Отметим, что цикл чтения вторичного адреса (MS=2, RD=1) не изменяет состояние слуги и, следовательно, может без риска использоваться для очистки магистрали, когда сигнал «строб данных» находится в состоянии DS=0 в конце блочной или принудительной передачи, выполняющей чтение.
Увеличение внутреннего адреса при блочной передаче
В блочной передаче, выполняемой по отношению к устройству, которое с каждым передаваемым словом ассоциирует различные адреса, каждый цикл передачи данных в область данных или область управления должен вызывать модификацию указателя внутреннего адреса в слуге в соответствии с табл. VUIb. Указатель адреса должен всегда показывать на следующее слово, которое необходимо передать, или место, куда нужно передавать.
Если указатель внутреннего адреса в слуге ' увеличен сверх своего максимального значения, слуга должен ответить на следующий цикл данных, если он происходит, выдачей кода SS = 2. Этот ответ должен продолжать выставляться и в последующих циклах данных до тех пор, пока указатель внутреннего адреса в слуге не будет изменен при помощи вторичного или первичного адресного цикла.
Последовательное применение постувеличения адреса позволяет легко определить количество переданных слов, которое может даже быть равно нулю. Модификация адреса неуместна в случае передач к таким устройствам, как буфера типа ПВПВ и порты ввода/вывода, которые воспринимают много слов данных по одному адресу.
Устройства типа ПВПВ и ошибки при передаче данных
В конкретных реализациях систем, которые способны обнаружить ошибки, возникающие при передаче данных, мастер либо сам обнаруживает ошибку, либо видит SS = 6 или SS=7, получаемые от слуги. Слуга не имеет информации об ошибках, связанных с передачей сигналов по магистрали во время циклов чтения. Мастер может игнорировать обнаруженную Ошибку или просто отметить ее возникновение или, если позволяют аппаратные средства, попытаться исправить ее, посылая требование о том, чтобы данные были переданы еще раз.
Одноадресные устройства, такие кйк буферы типа ПВПВ или порты ввода/вывода, которые используют один и тот же адрес 172ФАСТБАС для всех слов из передаваемого блока, требуют применения специальных методов для того, чтобы исправить ошибки, возникающие при передаче данных, если только не сам слуга отвечает на ошибочные данные кодом SS=6 (данные отклонены). Эти методы включают реализацию буферного регистра для хранения данных до тех пор, пока не будет установлено, что они успешно переданы.
Одноадресные устройства, в которых реализован защитный буферный регистр для того, чтобы позволить исправлять ошибки, должны руководствоваться следующими правилами.
Все циклы чтения данных в составе блочных или принудительных передач должны копировать каждое слово данных по мере того, как оно подается на линии AD в буферный регистр. Циклы чтения данных в режиме произвольного доступа, направленные к тому же адресу ФАСТБАС, что и блочная или принудительная передача, должны получать доступ к этому буферному регистру и не должны оказывать никакого другого воздействия на слугу (см. п. J.5 приложения J).
Отметим, что эти корректирующие циклы должны производиться без помех со стороны других мастеров. Данная схема освобождает от необходимости распределять стандартные адреса для буферных регистров. Состояние линий MS — вместо адреса определяет цель данного цикла. Функциональные возможности в данном случае не поставлены под угрозу, поскольку допускаются однословные блочные и принудительные передачи. Корректировка для принудительных передач в общем невозможна.
ГЛАВА 12. ХАРАКТЕРИСТИКИ СИГНАЛОВ
Уровни сигналов
Уровни сигналов на контактах разъема крейта-сегмента должны соответствовать промышленным стандартам для конкретного типа используемых логических схем (см. приложение А).
Во всех примерах, приведенных в настоящем документе, предполагается, что система ФАСТБАС реализована на элементах ЭСЛ. Это не исключает, однако, того, что в будущем могут применяться и другие типы элементов. На уровни логических сигналов внутри модулей ограничения не накладываются.
Во всех разъемах, кроме соединителей сегментов и разъемов, устанавливаемых на передней панели (см. приложение В), допускаются любые разрешенные уровни сигналов. Если используются стандартные уровни, вблизи разъемов должны проставляться соответствующие цветные метки.
Эмиттерная логика (ЭСЛ), отвечающая промышленному стандарту. Активным сигналам на входах и выходах соответствуют более положительные уровни. Метки коричневого цвета (см. приложение А).
Транзисторно-транзисторная логика (ТТЛ), отвечающая промышленному стандарту. Активным сигналом на входах и выходах соответствуют низкие уровни. Метки голубого цвета.
Быстрые логические сигналы должны удовлетворять стандарту NIM согласно приведенной ниже таблице. Метки черного' цвета — при внутреннем согласовании; метки серогб цвета — при внешнем согласовании (см. отчет TID-20893 Комиссии по атомной энергии США (ныне Министерство энергетики США)).