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