ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5281
Скачиваний: 8
Протокол шины 181
гие — предварительно должны пройти через аппаратуру преобразования адресов
процессора в адреса шины. Кроме того, отличия есть и в характеристиках отдель-
ных сигнальных линий, драйверов и приемников. Рассмотренная ситуация, как
уже отмечалось, называется перекосом сигналов. Прежде чем реагировать на по-
ступивший адрес, все ведомые должны знать, с какого момента его можно считать
достоверным.
Ситуация с передачей данных еще сложнее, так как данные могут пересылаться
в обоих направлениях. В транзакции чтения имеет место задержка на время, пока
ведомое устройство ищет затребованные данные, и ведомый должен каким-то об-
разом известить о моменте, когда данные можно считать достоверными. Система
должна предусматривать возможный перекос данных.
Метод, выбираемый проектировщиками шин для информирования о достовер-
ности адреса, данных, управляющей информации и информации состояния, назы-
вается
протоколом шины.
Используются два основных класса протоколов — син-
хронный и асинхронный. В
синхронном протоколе
все сигналы
к импульсам единого генератора тактовых импульсов (ГТИ). В
асинхронном про-
токоле
для каждой группы линий шины формируется свой сигнал подтверждения
достоверности. Хотя в каждом из протоколов можно найти как синхронные, так
и асинхронные аспекты, различия все же весьма существенны.
Синхронный протокол
В синхронных шинах имеется центральный генератор тактовых импульсов (ГТИ),
к импульсам которого «привязаны» все события на шине. Тактовые импульсы (ТИ)
распространяются по специальной сигнальной линии и представляют собой регу-
лярную последовательность чередующихся единиц и нулей. Один период такой
последовательности называется
тактовым периодом шины.
Именно он определяет
минимальный квант времени на шине (временной слот). Все подключенные к шине
устройства могут считывать состояние тактовой линии, и все события на шине
отсчитываются от начала тактового периода. Изменение управляющих сигналов
на шине обычно совпадает с передним или задним фронтом тактового импульса,
иными словами, момент смены состояния на синхронной шине известен заранее и
определяется тактовыми импульсами.
Рис. 4.17.
Чтение на синхронной шине
На рис. 4.17 показана транзакция чтения с использованием простого синхрон-
ного протокола шины NuBus, применяемой в персональных компьютерах Macintosh
182 Глава 4. Организация шин
(буквой «М» обозначены сигналы ведущего, а буквой «S» — ведомого). Моменты
изменения сигналов на шине определяет нарастающий фронт тактового импульса.
Задний фронт ТИ служит для указания момента, когда сигналы можно считать
достоверными. Это не обязательное условие для любых синхронных шин — во
многих шинах для указания достоверности данных просто отсчитывается опреде-
ленная задержка от фронта ТИ. Рассматриваемая шина NuBus имеет две особен-
ности: тактовые импульсы асимметричны, а для передачи адреса и данных исполь-
зуются одни и те же сигнальные линии.
Стартовый сигнал отмечает присутствие на линиях шины адресной или управ-
ляющей информации. Когда ведомое устройство распознает свой адрес и находит
затребованные данные, оно помещает эти данные и информацию о состоянии на
шину и сигнализирует об их присутствии на шине сигналом подтверждения.
Операция записи выглядит сходно. Отличие состоит в том, что данные выда-
ются ведущим в тактовом периоде, следующем за периодом выставления адреса,
и остаются на шине до отправки ведомым сигнала подтверждения и информации
состояния.
Отметим, что в каждой транзакции присутствуют элементы чтения и записи,
и для каждого направления пересылки имеется свой сигнал подтверждения дос-
товерности информации на шине. Сигналы управления и адрес всегда перемеща-
ются от ведущего. Информация состояния всегда поступает от ведомого. Данные
могут перемещаться в обоих направлениях.
Хотя скорость распространения сигналов в синхронном протоколе явно не фи-
гурирует, она должна учитываться при проектировании шины. ТИ обычно рас-
пространяются вдоль шины с обычной скоростью прохождения сигналов, и за счет
определенных усилий и затрат можно добиться практически одновременной до-
ставки ТИ к каждому разъему шины. Выбираться тактовая частота должна таким
образом, чтобы сигнал от любой точки на шине мог достичь любой другой точки
несколько раньше, чем завершится тактовый период, то есть шина должна допус-
кать расхождение в моментах поступления тактовых импульсов. Ясно, что более
короткие шины могут быть спроектированы на более высокую тактовую частоту.
Синхронные протоколы требуют меньше сигнальных линий, проще для пони-
мания, реализации и тестирования. Поскольку для реализации синхронного про-
токола практически не требуется дополнительной логики, эти шины могут быть
быстрыми и дешевыми. С другой стороны, они менее гибки, поскольку привязаны
к конкретной максимальной тактовой частоте и, следовательно, к конкретному
уровню технологии. По этой причине существующие шины часто не в состоянии
реализовать потенциал производительности подключаемых к себе новых устройств.
Кроме того, из-за проблемы перекоса синхросигналов синхронные шины не могут
быть длинными.
По синхронному протоколу обычно работают шины «процессор-память».
Асинхронный протокол
Синхронная передача быстра, но в ряде ситуаций не подходит для использования.
В частности, в синхронном протоколе ведущий не знает, корректно ли ответил ве-
домый, — возможно, он был не в состоянии удовлетворить запрос на нужные дан-
Протокол шины 183
ные. Более того, ведущий должен работать со скоростью самого медленного из уча-
ствующих в пересылке данных ведомых. Обе проблемы успешно решаются в асин-
хронном протоколе шины.
В асинхронном протоколе начало очередного события на шине определяется
не тактовым импульсом, а предшествующим событием и следует непосредственно
за этим событием. Каждая совокупность сигналов, помещаемых на шину, сопро-
вождается соответствующим синхронизирующим сигналом, называемым
стробом.
Синхросигналы, формируемые ведомым, часто называют
квитирующими сиг-
налами
(handshakes) или
подтверждениями сообщения
(acknowledges).
На рис. 4.18 показана асинхронная операция чтения с использованием прото-
кола, применяемого в шине Fastbus.
Рис. 4.18.
Чтение на асинхронной шине
Сначала ведущее устройство выставляет на шину адрес и управляющие сигна-
лы и выжидает время перекоса сигналов, после чего выдает строб адреса, подтвер-
ждающий достоверность информации. Ведомые следят за адресной шиной, чтобы
определить, должны ли они реагировать. Ведомый, распознавший на адресной шине
свой адрес, отвечает информацией состояния, сопровождаемой сигналом подтверж-
дения адреса. Когда ведущий обнаруживает подтверждение адреса, он знает, что
соединение установлено, и готов к анализу информации состояния. Присутствие
адреса на ША далее не требуется, поскольку у ведомого уже имеется копия полного
адреса либо нужной его части.
Далее ведущий меняет управляющую информацию, выжидает время перекоса
и выдает строб данных. Если это происходит в транзакции записи, то ведущий од-
новременно с управляющей информацией выставляет на шину записываемые дан-
ные. В рассматриваемом случае управляющая информация извещает ведомое уст-
ройство, что это чтение. Когда ведомый подготовит затребованные данные, он
выдает их на шину совместно с новой информацией о состоянии и формирует сиг-
нал подтверждения данных. Когда ведущий видит сигнал подтверждения данных,
он читает данные с шины и снимает строб данных, чтобы показать, что действия
с данными завершены. В нашем примере ведущий снимает также и строб адреса.
В более сложных вариантах транзакций строб адреса может оставаться на шине
для поддержания соединения в течение нескольких циклов данных. Обнаружив
184 Глава 4. Организация шин
исчезновение строба данных, ведомый снимает с шины данные и информацию со-
стояния, а также сигнал подтверждения данных, переводя шину в свободное со-
стояние.
В цикле асинхронной шины для подтверждения успешности транзакции ис-
пользуется двунаправленный обмен сигналами управления. Такая процедура но-
сит название
квитирования установления связи
или
рукопожатия
(handshake).
В рассмотренном варианте процедуры ни один шаг в передаче данных не может
начаться, пока не завершен предыдущий шаг. Такое квитирование известно как
квитирование с полной взаимоблокировкой
(fully interlocked handshake).
Как и в синхронных протоколах, в любой асинхронной транзакции присутствуют
элементы чтения и записи: по отношению к управляющей информации вы-
полняется операция записи, а к информации состояния — чтения. Данные синхро-
низируются и управляются, соответственно, как управляющая и статусная инфор-
мация.
Скорость асинхронной пересылки данных диктуется ведомым, поскольку ве-
дущему для продолжения транзакции приходится ждать отклика. Асинхронные
протоколы по своей сути являются самосинхронизирующимися, поэтому шину
могут совместно использовать устройства с различным быстродействием, постро-
енные на базе как старых, так и новых технологий. Шина автоматически адапти-
руется к требованиям устройств, обменивающихся информацией в данный момент.
Таким образом, с развитием технологий к шине могут быть подсоединены более
быстрые устройства, и пользователь сразу ощутит всё их преимущества. В отли-
чие от синхронных систем для ускорения системы с асинхронной шиной не требу-
ется замена на шине старых медленных устройств на быстрые новые. Платой за
перечисленные преимущества асинхронного протокола служит некоторое увели-
чение сложности аппаратуры.
Квитирование в асинхронных системах не всегда реализуется в полном объеме.
Иногда транзакция на шине не может быть завершена стандартным образом, на-
пример, если ведущий из-за программных ошибок обращается к несуществующей
ячейке памяти. В этом случае ведомое устройство не отвечает соответствующим
подтверждающим сигналом. Чтобы предотвратить бесконечное, ожидание в ши-
нах, используется тайм-аут, то есть задается время, спустя которое при отсутствии
отклика транзакция принудительно прекращается. Для реализации тайм-аута не-
обходимы схемы, способные решать, пришло ли подтверждение вовремя, и если
нет, то как привести шину к исходному состоянию. Первая часть решается с по-
мощью таймера, запускаемого ведущим одновременно с началом транзакции. Если
таймер достигает предопределенного значения до поступления ответного сигнала,
ведущий обязан прекратить начатую транзакцию. Восстановление состояния шины
и вычислительного процесса после тайм-аута может происходить по-разному. Так,
если ведущим устройством является процессор, он делает это с помощью специ-
ального вызова операционной системы, известного как «ошибка шины» (bus error).
Тайм-ауты цикла данных, обычно означающие отказ оборудования, достаточ-
но редки, поэтому время тайм-аута может быть весьма большим. С другой сторо-
ны, тайм-ауты по адресу возникают часто. Происходит это, например, когда про-
грамма инициализирует систему и проверяет, какие из устройств присутствуют
на шине; при этом вполне реальна выдача на шину адреса несуществующего уст-';
Протокол шины 185
ройства. В спецификациях шин предписываются очень малые значения тайм-ута
по адресу, из-за чего устройства декодирования адреса в ведомых устройствах долж-
ны быть весьма быстрыми, чтобы уложиться в отведенное время.
Шины ввода/вывода обычно реализуются как асинхронные.
Особенности синхронного
и асинхронного протоколов
В предшествующие годы проектировщики ВМ отдавали предпочтение асинхрон-
ным шинам, однако в последних высокопроизводительных разработках все чаще
используются шины на базе синхронного
Существующие синхронные шины несколько быстрее асинхронных и по уровню
быстродействия уже достаточно близки к физическим скоростям распростране-
ния сигналов. Возможное ускорение асинхронных шин по мере развития техноло-
гии может привести лишь к незначительному их преимуществу над синхронными.
Любой из протоколов предполагает информирование схем арбитража о заня-
тости шины. В синхронном протоколе шина занята от начала стартового сигнала
до завершения сигнала подтверждения, и специальный сигнал занятости шины не
нужен. В асинхронном протоколе о занятости шины свидетельствуют адресный
строб или сигнал подтверждения адреса.
В асинхронной системе присутствует полная процедура квитирования установ-
ления связи, то есть во всех случаях оба устройства до удаления информации с
шины должны прийти к соглашению. Таким образом, даже если одно из них пост-
роено на очень быстрых схемах, а другое — на очень медленных, взаимодействие
все равно будет успешным.
Синхронные системы квитируются частично, за счет того, что ведомое устрой-
ство перед выдачей подтверждения может занимать под поиск нужных данных
несколько тактовых периодов. С другой стороны, существует неявное требование,
чтобы ведомый успел использовать или, по крайней мере, скопировать адрес и ин-
формацию управления за время одного тактового периода, до их исчезновения
с сигнальных линий. Необходимо также, чтобы и считывание данных ведущим так-
же происходило а пределах одного тактового периода, иначе эти данные будут уте-
ряны. Если в ведущем устройстве используется динамическая память, это требо-
вание может приводить к проблемам, если в момент получения данных память
находится в режиме регенерации. Для решения подобных проблем обычно исполь-
зуют дополнительную буферную память. Отметим также, что если ведомому для
завершения своей операции требуется время, лишь незначительно превышающее
длительность тактового периода, транзакция все равно удлиняется на целый пе-
риод. Это существенный недостаток по сравнению с асинхронным протоколом.
В обоих видах протоколов необходимо учитывать эффект перекоса сигналов.
Максимальное значение времени перекоса равно разности времен прохождения
сигналов по самой быстрой и самой медленной сигнальным линиям шины. В син-
хронных шинах перекос уже заложен в указанную в спецификации максималь-
ную тактовую частоту, поэтому при проектировании устройств может не учиты-
ваться. Для асинхронных шин перекос необходимо принимать во внимание для
каждой транзакции и для каждого устройства. Перед выставлением строба веду-