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