|
||
Протокол шины 185
|
||
|
||
ройства. В спецификациях шин предписываются очень малые значения тайм-ута по адресу, из-за чего устройства декодирования адреса в ведомых устройствах должны быть весьма быстрыми, чтобы уложиться в отведенное время. Шины ввода/вывода обычно реализуются как асинхронные.
Особенности синхронного и асинхронного протоколов
В предшествующие годы проектировщики ВМ отдавали предпочтение асинхронным шинам, однако в последних высокопроизводительных разработках все чаще используются шины на базе синхронного протокола.
Существующие синхронные шины несколько быстрее асинхронных и по уровню быстродействия уже достаточно близки к физическим скоростям распространения сигналов. Возможное ускорение асинхронных шин по мере развития технологии может привести лишь к незначительному их преимуществу над синхронными.
Любой из протоколов предполагает информирование схем арбитража о занятости шины. В синхронном протоколе шина занята от начала стартового сигнала до завершения сигнала подтверждения, и специальный сигнал занятости шины не нужен. В асинхронном протоколе о занятости шины свидетельствуют адресный строб или сигнал подтверждения адреса.
В асинхронной системе присутствует полная процедура квитирования установления связи, то есть во всех случаях оба устройства до удаления информации с шины должны прийти к соглашению. Таким образом, даже если одно из них построено на очень быстрых схемах, а другое — на очень медленных, взаимодействие все равно будет успешным.
Синхронные системы квитируются частично, за счет того, что ведомое устройство перед выдачей подтверждения может занимать под поиск нужных данных несколько тактовых периодов. С другой стороны, существует неявное требование, чтобы ведомый успел использовать или, по крайней мере, скопировать адрес и информацию управления за время одного тактового периода, до их исчезновения с сигнальных линий. Необходимо также, чтобы и считывание данных ведущим также происходило а пределах одного тактового периода, иначе эти данные будут утеряны. Если в ведущем устройстве используется динамическая память, это требование может приводить к проблемам, если в момент получения данных память находится в режиме регенерации. Для решения подобных проблем обычно используют дополнительную буферную память. Отметим также, что если ведомому для завершения своей операции требуется время, лишь незначительно превышающее длительность тактового периода, транзакция все равно удлиняется на целый период. Это существенный недостаток по сравнению с асинхронным протоколом.
В обоих видах протоколов необходимо учитывать эффект перекоса сигналов. Максимальное значение времени перекоса равно разности времен прохождения сигналов по самой быстрой и самой медленной сигнальным линиям шины. В синхронных шинах перекос уже заложен в указанную в спецификации максимальную тактовую частоту, поэтому при проектировании устройств может не учитываться. Для асинхронных шин перекос необходимо принимать во внимание для каждой транзакции и для каждого устройства. Перед выставлением строба веду-
|
||
|
||
|
||
186 Глава 4. Организация шин
|
||
|
||
щее устройство выжидает в течение времени перекоса данных, считая от момента выставления на шину данных, так, что когда ведомый видит стробу он уже может считать данные достоверными. У ведомого дополнительно возможен перекос сигналов на внутренних трактах данных. Компенсировать его можно введением принудительной задержки, перед тем как использовать полученный сигнал стробиро-вания. Когда ведомый возвращает данные ведущему, он должен после установки данных на шине, но до отправки сигнала подтверждения выждать время перекоса.
Учет перекоса может быть реализован как в ведущем, так и в ведомом устройстве, либо и там и там, лишь бы была обеспечена необходимая общая задержка. Например, в шине Fastbus, где количество ведущих обычно много меньше числа ведомых, ответственность за учет перекоса сигналов возлагается на ведущих, благодаря чему сокращается число устройств, которые потребуют модификации при изменении свойств шины. В рассматриваемой шине ведомый выставляет подтверждение одновременно с данными, а ведущий перед считыванием данных выжидает в течение времени перекоса. Величина компенсирующей задержки зависит от технологии шины,, а также физических свойств и длины ее сигнальных линий. В свою очередь, ведомые должны самостоятельно отвечать за проблемы, связанные с их внутренними перекосами сигналов.
В обоих протоколах необходимо учитывать еще одну проблему — проблему ме-тастабильного состояния. Суть ее поясним на примере микропроцессора, к которому подключена клавиатура. Время от времени микропроцессор считывает информацию из регистра состояния клавиатуры, который должен «решить», была ли нажата клавиша, и в зависимости от этого возвратить единицу или ноль. Проблема возникает, если принятие решения практически совпадает с моментом опроса регистра. Если это происходит несколько раньше, регистр вернет 1, а если чуть позже, то 0, но факт нажатия запоминается в соответствующем триггере регистра состояния и будет зафиксирован при следующем опросе регистра. Сложность заключается в том, что в момент переключения триггера информация на входе должна оставаться неизменной. В спецификации на реальные триггеры указывается интервал вблизи тактового импульса, в течение которого входная информация не должна изменяться. Если данные не синхронизированы с ТИ и поступают от какого-либо независимого источника, как в примере с клавиатурой, предотвратить изменение входной информации триггера в запрещенном интервале невозможно. При нарушении данного условия триггер способен перейти в метастабильное состояние, то есть на его выходе может на неопределенное время установиться неоднозначный уровень напряжения, который сохранится, пока случайный шум не установит триггер в то или иное стабильное состояние.
Метастабильное состояние триггера опасно неопределенным поведением схем, для которых информация триггера является входной. К сожалению, многие проектировщики игнорируют упомянутую проблему, и это становится причиной случайных ошибок.
Кардинально решить означенную проблему принципиально невозможно, поэтому при проектировании необходимо проявить особую тщательность, чтобы уменьшить вероятность возникновения метастабильного состояния. Одним из методов может быть правильный выбор элементов, поскольку некоторые триггеры срабатывают быстрее, чем иные. Эффективными способами могут являться
|
||
|
||
|
||
Методы повышения эффективности шин 187
|
||
|
||
использование двухтактных триггеров и/или синхронизация триггеров тактовыми импульсами, что снижает вероятность ошибки до уровня несущественной.
В асинхронных системах имеется иная возможность: специальные схемы для ■обнаружения метастабильных состояний, где асинхронная система вправе просто выждать, пока состояние не станет стабильным.
Методы повышения эффективности шин
Существует несколько приемов, позволяющих повысить производительность шин. К ним, прежде всего, следует отнести пакетный режим, конвейеризацию и расщепление транзакций.
Пакетный режим пересылки информации
Эффективность как выделенных, так и мультиплексируемых шин может быть улучшена, если они функционируют в блочном или пакетном режиме (burst mode), когда один адресный цикл сопровождается множественными циклами данных (чтения или записи, но не чередующимися). Это означает, что пакет данных передается без указания текущего адреса внутри пакета.
При записи в память последовательные элементы блока данных заносятся в последовательные ячейки. Так как в пакетном режиме передается адрес только первой ячейки, все последующие адреса генерируются уже в самой памяти путем последовательного увеличения начального адреса Передача на устройства ввода/ вывода или в память наподобие очереди может не сопровождаться изменением начального адреса.
Скорость передачи собственно данных в пакетном режиме увеличивается естественным образом за счет уменьшения числа передаваемых адресов. Внутри пакета очередные данные могут передаваться в каждом такте шины, длина пакета может достигать 1024 байт. Наиболее частый вариант — пакеты, состоящие из четырех байтов. Такие пакеты используются при работе с памятью в 32-разрядных ВМ, где длина ячейки памяти равна одному байту.
|
||
|
||
|
||
|
||
Рис. 4.19. Пакетный режим передачи данных
Рисунок 4.19 иллюстрирует концепцию адресации в пакетном режиме при пересылке данных. По шине адреса передается только адрес ячейки i, а в данных для ячеек i + \,i + 2mi + 3 указание соответствующих адресов отсутствует.
В асинхронных системах пакетный режим позволяет достичь дополнительного эффекта. Как известно, время пересылки слова включает в себя время прохождения слова от отправителя к приемнику и время, затрачиваемое на процедуру подтверждения. Необходимо также учесть внутренние задержки в ведущем-и ведо-
|
||
|
||