Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем

.pdf
Скачиваний:
2022
Добавлен:
02.05.2014
Размер:
22.66 Mб
Скачать

178 Глава 4. Организация шин

ший на арбитражных линиях свой номер. Подобная схема известна также как рас­ пределенный арбитраж с самостоятельным выбором, поскольку ведущий сам оп ределяет, стал ли он победителем в арбитраже, то есть выбирает себя самостоя­ тельно.

Идея подобного арбитража была предложена М. Таубом (Matthew Taub) в 1975 году. В алгоритме Тауба под арбитраж выделяются две группы сигнальных линий, доступные всем устройствам на шине. Устройства подключаются к этим линиям по схеме «монтажного ИЛИ». Первая группа служит для передачи сигна­ лов синхронизации и управления. Вторую группу линий условно назовем шиной приоритета и обозначим В. В зависимости от принятого числа уровней приоритета эта группа может содержать от 4 до 7 линий. Каждому потенциальному ведущему назначается уникальный уровень приоритета. Приоритет Р представлен k-разрядным двоичным кодом. Каждому разряду кода приоритета соответствует линия в шине В. Ведущие, претендующие на управление шиной, выдают на шину В свои коды приоритета Р. Дальнейшее поведение ведущих определяется следующим прави­ лом: если i-й разряд кода приоритета равен О (Рi = 0), а на i-й линии шины В в дан­ ный момент присутствует единица (Вi = 1), то ведущий обнуляет в выставляемом коде все младшие разряды, от 0-го до i-го. В результате такой процедуры на шине В остается код наивысшего из выставленных приоритетов. Устройство, распознав­ шее на шине свой код приоритета, считается выигравшим арбитраж. После завер­ шения своей транзакции выигравшее устройство снимает с шины В свой код при­ оритета, при этом ситуация на линиях В меняется. Ведущие, претендовавшие на шину, восстанавливают ранее обнуленные разряды, и начинается новый цикл ар­ битража.

Поясним алгоритм примером. Пусть в некоторый момент времени запрос на шину выставили три ведущих с номерами 10,8 и 5. Положим, что уровни приори­ тета ведущих совпадают с их номерами, то есть на четырехразрядную шину В бу­ дут выданы соответственно коды 10102 (1010), 10002 (810) и 01012 (510). Так как над одноименными разрядами кодов выполняется операция логического сложения (устройства подключены к линиям по схеме «монтажного ИЛИ»), на шине В уста­ новится код 11112. Согласно рассмотренному выше правилу первое и второе уст­ ройства обязаны обнулить разряды с 2-го по 0-й (0-й разряд - младший), а тре­ тье — все разряды. В итоге на шине В установится новый код 10002, и первое устройство сможет немедленно восстановить ранее обнуленные разряды. Таким образом, на шине В будет код 10102, то есть код приоритета устройства с номером 10. Схема арбитража этого устройства опознает на шине свой уровень приоритета и захватит шину. После завершения транзакции устройство с номером 10 снимет свой код приоритета, а остальные два устройства восстановят свои. Далее начнет­ ся новая процедура арбитража.

Описанная процедура связана с определенными затратами времени на стаби­ лизацию на арбитражных линиях номера устройства-победителя. Это время должно быть учтено в протоколе шины.

Чтобы исключить постоянное блокирование ведущих, обладающих низким приоритетом, Тауб впоследствии модернизировал свою схему, дополнив ее моду­ лем равнодоступности (fairness module). Модуль запрещает выигравшему ведуще­ му выдавать новые запросы до завершения обслуживания всех ожидающих запро-

Арбитраж шин 179

сов. Следует отметить, что это не гарантирует, а только помогает каждому ведуще­ му получить право на управление шиной.

Вариации рассмотренной схемы широко используются в таких шинах, как Futurebus, NuBus, MultiBus II, Fastbus.

Вцелом схемы децентрализованного арбитража потенциально более надежны, поскольку отказ контроллера шины в одном из ведущих не нарушает работу с ши­ ной на общем уровне. Тем не менее должны быть предусмотрены средства для об­ наружения неисправных контроллеров, например на основе тайм-аута. Основной недостаток децентрализованных схем — в относительной сложности логики ар­ битража, которая должна'быть реализована в аппаратуре каждого ведущего.

Внекоторых ВМ применяют комбинированные последовательно-параллель­ ные схемы арбитража, в какой-то мере сочетающие достоинства обоих методов. Здесь все ведущие разбиваются на группы. Арбитраж внутри группы ведется по последовательной схеме, а между группами - по параллельной.

Ограничение времени управления шиной

Вне зависимости от принятой модели арбитража должна быть также продумана ограничения времени контроля над шиной. Одним из вариантов может быть разрешение ведущему занимать шину в течение одного цикла шины, с предо-

ставлением ему возможности конкуренции за шину в последующих циклах. Дру­ гим вариантом является принудительный захват контроля над шиной устройством с более высоким уровнем приоритета, при сохранении восприимчивости текущего ведущего к запросам на освобождение шины от устройств с меньшим уровнем прио­ ритета.

Опросные схемы арбитража

В опросных методах запросы только фиксируются, и контроллер шины способен узнать о них, лишь опросив ведущих. Опрос может быть как централизованным — с одним контроллером, производящим опрос, так и децентрализованным — с не­ сколькими контроллерами шины.

Данный механизм использует специальные линии опроса между контролле­ ром (контроллерами) шины и ведущими — по одной линии для каждого ведущего. С целью уменьшения числа таких линий может формироваться номер запрашива­ ющего ведущего, для чего вместо 2" достаточно п линий. Кроме того, используют­ ся также линии запроса шины и линия сигнала занятия шины.

Централизованный опрос

Централизованный опрос Иллюстрирует рис. 4.15.

Контроллер шины последовательно опрашивает каждое ведущее устройство на предмет, находится ли оно в ожидании предоставления шины. Для этого контрол­ лер выставляет на линии опроса адрес соответствующего ведущего. Если в момент выставления адреса ведущий ожидает разрешения на управление шиной, то он, •распознав свой адрес, сигнализирует об этом, делая активной шину (ЗШ). Обнару­ жив сигнал, контроллер разрешает ведущему использовать шину. Последовательность опроса ведущих может быть организована в порядке убывания адресов, либо меняться в соответствии с алгоритмом динамического приоритета.

182 Глава 4. Организация шин

(буквой «М» обозначены сигналы ведущего, а буквой «S» - ведомого). Моменты изменения сигналов на шине определяет нарастающий фронт тактового импульса. Задний фронт ТИ служит для указания момента, когда сигналы можно считать достоверными. Это не обязательное условие для любых синхронных шин — во многих шинах для указания достоверности данных просто отсчитывается опреде­ ленная задержка от фронта ТИ. Рассматриваемая шина NuBus имеет две особен­ ности: тактовые импульсы асимметричны, а для передачи адреса и данных исполь­ зуются одни и те же сигнальные линии.

Стартовый сигнал отмечает присутствие на линиях шины адресной или управ­ ляющей информации. Когда ведомое устройство распознает свой адрес и находит затребованные данные, оно помещает эти данные и информацию о состоянии на шину и сигнализирует об их присутствии на шине сигналом подтверждения.

Операция записи выглядит сходно. Отличие состоит в том, что данные выда­ ются ведущим в тактовом периоде, следующем за периодом выставления адреса, и остаются на шине до отправки ведомым сигнала подтверждения и информации состояния.

Отметим, что в каждой транзакции присутствуют элементы чтения и записи, и для каждого направления пересылки имеется свой сигнал подтверждения дос­ товерности информации на шине. Сигналы управления и адрес всегда перемеща­ ются от ведущего. Информация состояния всегда поступает от ведомого. Данные могут перемещаться в обоих направлениях.

Хотя скорость распространения сигналов в синхронном протоколе явно не фи­ гурирует, она должна учитываться при проектировании шины. ТИ обычно рас­ пространяются вдоль шины с обычной скоростью прохождения сигналов, и за счет определенных усилий и затрат можно добиться практически одновременной до­ ставки ТИ к каждому разъему шины. Выбираться тактовая частота должна таким образом, чтобы сигнал от любой точки на шине мог достичь любой другой точки несколько раньше, чем завершится тактовый период, то есть шина должна допус­ кать расхождение в моментах поступления тактовых импульсов. Ясно, что более короткие шины могут быть спроектированы на более высокую тактовую частоту.

Синхронные протоколы требуют меньше сигнальных линий, проще для пони­ мания, реализации и тестирования. Поскольку для реализации синхронного про­ токола практически не требуется дополнительной логики, эти шины могут быть быстрыми и дешевыми. С другой стороны, они менее гибки, поскольку привязаны к конкретной максимальной тактовой частоте и, следовательно, к конкретному уровню технологии. По этой причине существующие шины часто не в состоянии реализовать потенциал производительности подключаемых к себе новых устройств. Кроме того, из-за проблемы перекоса синхросигналов синхронные шины не могут быть длинными.

По синхронному протоколу обычно работают шины «процессор-память».

Асинхронный протокол

Синхронная передача быстра, но в ряде ситуаций не подходит для использования. В частности, в синхронном протоколе ведущий не знает, корректно ли ответил ве­ домый, — возможно, он был не в состоянии удовлетворить запрос на нужные дан-

184 Глава 4. Организация шин

исчезновение строба данных, ведомый снимает с шины данные и информацию со­ стояния, а также сигнал подтверждения данных, переводя шину в свободное со­ стояние.

В цикле асинхронной шины для подтверждения успешности транзакции ис­ пользуется двунаправленный обмен сигналами управления. Такая процедура но­ сит название квитирования установления связи или рукопожатия (handshake). В рассмотренном варианте процедуры ни один шаг в передаче данных не может начаться, пока не завершен предыдущий шаг. Такое квитирование известно как

квитирование с полной взаимоблокировкой (fully interlocked handshake).

Как и в синхронных протоколах, в любой асинхронной транзакции присутствуют элементы чтения и записи: по отношению к управляющей информации вы­ полняется операция записи, а к информации состояния - чтения. Данные синхро­ низируются и управляются, соответственно, как управляющая и статусная инфор­ мация.

Скорость асинхронной пересылки данных диктуется ведомым, поскольку ве­ дущему для продолжения транзакции приходится ждать отклика. Асинхронные протоколы по своей сути являются самосинхронизирующимися, поэтому шину могут совместно использовать устройства с различным быстродействием, постро­ енные на базе как старых, так и новых технологий. Шина автоматически адапти­ руется к требованиям устройств, обменивающихся информацией в данный момент. Таким образом, с развитием технологий к шине могут быть подсоединены более быстрые устройства, и пользователь сразу ощутит всё их преимущества. В отли­ чие от синхронных систем для ускорения системы с асинхронной шиной не требу­ ется замена на шине старых медленных устройств на быстрые новые. Платой за перечисленные преимущества асинхронного протокола служит некоторое увели­ чение сложности аппаратуры.

Квитирование в асинхронных системах не всегда реализуется в полном объеме. Иногда транзакция на шине не может быть завершена стандартным образом, на­ пример, если ведущий из-за программных ошибок обращается к несуществующей ячейке памяти. В этом случае ведомое устройство не отвечает соответствующим подтверждающим сигналом. Чтобы предотвратить бесконечное, ожидание в ши­ нах, используется тайм-аут, то есть задается время, спустя которое при отсутствии отклика транзакция принудительно прекращается. Для реализации тайм-аута не­ обходимы схемы, способные решать, пришло ли подтверждение вовремя, и если нет, то как привести шину к исходному состоянию. Первая часть решается с по­ мощью таймера, запускаемого ведущим одновременно с началом транзакции. Если таймер достигает предопределенного значения до поступления ответного сигнала, ведущий обязан прекратить начатую транзакцию. Восстановление состояния шины и вычислительного процесса после тайм-аута может происходить по-разному. Так, если ведущим устройством является процессор, он делает это с помощью специ­ ального вызова операционной системы, известного как «ошибка шины» (bus error).

Тайм-ауты цикла данных, обычно означающие отказ оборудования, достаточ­ но редки, поэтому время тайм-аута может быть весьма большим. С другой сторо­ ны, тайм-ауты по адресу возникают часто. Происходит это, например, когда про­ грамма инициализирует систему и проверяет, какие из устройств присутствуют на шине; при этом вполне реальна выдача на шину адреса несуществующего уст-';

Протокол шины 185

ройства. В спецификациях шин предписываются очень малые значения тайм-ута по адресу, из-за чего устройства декодирования адреса в ведомых устройствах долж­ ны быть весьма быстрыми, чтобы уложиться в отведенное время.

Шины ввода/вывода обычно реализуются как асинхронные.

Особенности синхронного

иасинхронного протоколов

Впредшествующие годы проектировщики ВМ отдавали предпочтение асинхрон­ ным шинам, однако в последних высокопроизводительных разработках все чаще используются шины на базе синхронного протокола,

Существующие синхронные шины несколько быстрее асинхронных и по уровню быстродействия уже достаточно близки к физическим скоростям распростране­ ния сигналов. Возможное ускорение асинхронных шин по мере развития техноло­ гии может привести лишь к незначительному их преимуществу над синхронными.

Любой из протоколов предполагает информирование схем арбитража о заня­ тости шины. В синхронном протоколе шина занята от начала стартового сигнала до завершения сигнала подтверждения, и специальный сигнал занятости шины не нужен. В асинхронном протоколе о занятости шины свидетельствуют адресный строб или сигнал подтверждения адреса.

В асинхронной системе присутствует полная процедура квитирования установ­ ления связи, то есть во всех случаях оба устройства до удаления информации с шины должны прийти к соглашению. Таким образом, даже если одно из них пост­ роено на очень быстрых схемах, а другое — на очень медленных, взаимодействие все равно будет успешным.

Синхронные системы квитируются частично, за счет того, что ведомое устрой­ ство перед выдачей подтверждения может занимать под поиск нужных данных несколько тактовых периодов. С другой стороны, существует неявное требование, чтобы ведомый успел использовать или, по крайней мере, скопировать адрес и ин­ формацию управления за время одного тактового периода, до их исчезновения с сигнальных линий. Необходимо также, чтобы и считывание данных ведущим так­ же происходило а пределах одного тактового периода, иначе эти данные будут уте­ ряны. Если в ведущем устройстве используется динамическая память, это требо­ вание может приводить к проблемам, если в момент получения данных память находится в режиме регенерации. Для решения подобных проблем обычно исполь­ зуют дополнительную буферную память. Отметим также, что если ведомому для завершения своей операции требуется время, лишь незначительно превышающее длительность тактового периода, транзакция все равно удлиняется на целый пе­ риод. Это существенный недостаток по сравнению с асинхронным протоколом.

В обоих видах протоколов необходимо учитывать эффект перекоса сигналов. Максимальное значение времени перекоса равно разности времен прохождения сигналов по самой быстрой и самой медленной сигнальным линиям шины. В син­ хронных шинах перекос уже заложен в указанную в спецификации максималь­ ную тактовую частоту, поэтому при проектировании устройств может не учиты­ ваться. Для асинхронных шин перекос необходимо принимать во внимание для каждой транзакции и для каждого устройства. Перед выставлением строба веду-