Использование безразмерной величины .

(3.18)

(3.19)

 

Формула (3.18) применяется тогда, когда уменьшение Ai приводит к увеличению (улучшению) значения аддитивной формулы критерия. Выражение (3.19) используется, когда к увеличению значения аддитивной формулы критерия приводит увеличение Ai.

 

Учет приоритета частных показателей

 

Необходимость в учете приоритетов возникает в случае, когда частные показатели имеют различную степень важности.

Приоритет частных показателей задается с помощью ряда приоритета I, вектора приоритета (b1, bq, …, bn) и вектора весовых коэффициентов (1, 2, …, n).

Ряд приоритета представляет собой упорядоченное множество индексов частных показателей I =(1, 2, …, п). Он отражает чисто качественные отношения доминирования показателей, а именно отношения следующего типа: показатель A1 важнее показателя А2, а показатель А2 важнее показателя А3 и т. д.

Элемент bq вектора приоритета показывает, во сколько раз показатель Аq важнее показателя Аq+1 (здесь Аq — показатель, которому отведен номер q в ряду приоритета). Если Аq и Аq+1 имеют одинаковый ранг, то bq = 1. Для удобства принимают bn=1.

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

Зависимость, позволяющая по известным значениям b, определить величину q, имеет вид:

(3.20)

Знание весовых коэффициентов позволяет учесть приоритет частных показа­телей.

 

Контрольные вопросы

 

1. Какую функцию выполняет счетчик команд и какой должна быть его разрядность?

2. Какое из полей регистра команд должно быть заполнено в первую очередь?

3. Какой адрес должен быть занесен в указатель стека при его инициализации?

4. Какими средствами компенсируется различие в быстродействии процессора и основной памяти?

5. На основании какой информации микропрограммный автомат формирует сигналы управления?

6. Можно ли считать наличие регистров операндов обязательным условием работы любого операционного блока?

7. Каким образом используется информация, хранящаяся в регистре признаков?

8. С каким понятием можно ассоциировать сигнал управления?

9. В чем состоит различие между микрокомандой и микрооперацией?

10. Какие существуют способы записи микропрограмм?

11. Перечислите основные правила составления граф-схемы алгоритма?

12. Как в предложенном языке микропрограммирования описывается разрядное шины?

13. Какие варианты описания слова памяти допускает язык микропрограммирования?

14. Описание каких видов микроопераций допускает рассмотренный в книге язык микропрограммирования?

15. Что подразумевает понятие «совместимость микроопераций»?

16. Какие из этапов цикла команды являются обязательными для всех команд?

17. Какие узлы ВМ участвуют в реализации этапа выборки команды?

18. Местоположение какого из этапов цикла команды в общей их последовательности в принципе может быть изменено?

19. На какой стадии выполнения команды анализируются запросы прерывания?

20. Опишите последовательность действий, выполняемых при поступлении запроса прерывания.

21. Как обеспечивается возобновление вычислений после обработки прерывания?

22. Что понимается под номинальным и средним быстродействием ВМ?

23. Каким образом можно охарактеризовать производительность вычислительной машины?

24. Перечислите и охарактеризуйте основные способы построения критериев эффективности ВМ?

25. Какими способами можно произвести нормализацию частных показателей эффективности?


Глава 4

Организация шин

 

 

Совокупность трактов, объединяющих между собой основные устройства ВМ (центральный процессор, память и модули ввода/вывода), образует структуру взаимосвязей вычислительной машины. Структура взаимосвязей должна обеспечивать обмен информацией между:

§ центральным процессором и памятью;

§ центральным процессором и модулями ввода/вывода;

§ памятью и модулями ввода/вывода.

Информационные потоки, характерные для основных устройств ВМ, показать на рис. 4.1.

 

Рис. 4.1. Информационные потоки в вычислительной машине

 

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

 

Рис. 4.2. Эволюция структур взаимосвязей (ЦП - центральный процессор,

ПАМ - модуль основной памяти, МВВ - модуль ввода/вывода)

 

Взаимосвязь частей ВМ и ее «общение» с внешним миром обеспечиваются системой шин. Большинство машин содержат несколько различных шин, каждая из которых оптимизирована под определенный вид коммуникаций. Часть шин скрыта внутри интегральных микросхем или доступна только в пределах печатной платы. Некоторые шины имеют доступные извне точки, с тем чтобы к ним легко можно было подключить дополнительные устройства, причем большинство таких шин не просто но и отвечают определенным стандартам, что позволяет подсоединять к шине устройства различных производителей.

Чтобы охарактеризовать конкретную шину, нужно описать (рис. 4.3):

§ совокупность сигнальных линий;

§ физические, механические и электрические характеристики шины;

 

Рис. 4.3. Параметры, характеризующие шину

 

§ используемые сигналы арбитража, состояния, управления и синхронизации;

§ правила взаимодействия подключенных к шине устройств (протокол шины).

Шину образует набор коммуникационных линий, каждая из которых способна передавать сигналы, представляющие двоичные цифры 1 и 0. По линии может пересылаться развернутая во времени последовательность таких сигналов. При совместном использовании несколько линий могут обеспечить одновременную (параллельную) передачу двоичных чисел. Физически линии шины реализуются в виде проводников, как полоски проводящего материала на монтажной плате либо как алюминиевые или медные проводящие дорожки на кристалле микросхемы.

Операции на шине называют транзакциями. Основные виды транзакций — транзакции чтения и транзакции записи. Если в обмене участвует устройство ввода/вывода, можно говорить о транзакциях ввода и вывода, по сути эквивалентных транзакциям чтения и записи соответственно. Шинная транзакция включает в себя две части: посылку адреса и прием (или посылку) данных.

Когда два устройства обмениваются информацией по шине, одно из них должно инициировать обмен и управлять им. Такого рода устройства называют ведущими (bus master). В компьютерной терминологии «ведущий» - это любое устройство, способное взять на себя владение шиной и управлять пересылкой данных. Ведущий не обязательно использует данные сам. Он, например, может захватить управление шиной в интересах другого устройства. Устройства, не обладающие возможностями инициирования транзакции, носят название ведомых (bus slave). В принципе к шине может быть подключено несколько потенциальных ведущих, но в любой момент времени активным может быть только один из них: если несколько устройств передают информацию одновременно, их сигналы перекрываются и искажаются. Для предотвращения одновременной активности нескольких ведущих в любой шине предусматривается процедура допуска к управлению шиной только одного из претендентов (арбитраж). В то же время некоторые шины допускают режим записи, когда информация одного ведущего передается сразу нескольким ведомым (здесь арбитраж не требуется). Сигнал, направленный одним устройством, доступен всем остальным устройствам, подключенным к шине.

Английский эквивалент термина «шина» — «bus» — восходит к латинскому слову omnibus, означающему «для всего». Этим стремятся подчеркнуть, что шина ведет себя как магистраль, способная обеспечить всевозможные виды трафика.

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

 

Типы шин

 

Важным критерием, определяющим характеристики шины, может служить ее целевое назначение. По этому критерию можно выделить:

§ шины «процессор-память»;

§ шины ввода/вывода;

§ системные шины.

Шина «процессор-память»

 

Шина «процессор-память» обеспечивает непосредственную связь между центральным процессором (ЦП) вычислительной машины и основной памятью (ОП). В современным микропроцессорах такую шину часто называют шиной переднего плана и обозначают аббревиатурой FSB (Front-Side Bus). Интенсивный трафик между процессором и памятью требует, чтобы полоса пропускания шины, то есть количество информации, проходящей но шине в единицу времени, была наибольшей. Роль этой шины иногда выполняет системная шина (см. ниже), однако в плане эффективности значительно выгоднее, если обмен между ЦП и ОП ведется по отдельной шине. К рассматриваемому виду можно отнести также шину, связывающую процессор с кэш-памятью второго уровня, известную как шина заднего плана — BSB (Back-Side Bus). BSB позволяет вести обмен с большей скоростью, чем FSB, и полностью реализовать возможности более скоростной кэш-памяти.

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

 

Шина ввода/вывода

 

Шина ввода/вывода служит для соединения процессора (памяти) с устройствами ввода/вывода (УВВ). Учитывая разнообразие таких устройств, шипы ввода/вывода унифицируются и стандартизируются. Связи с большинством УВВ (но не с видеосистемами) не требуют от шины высокой пропускной способности. При проектировании шин ввода/вывода в учет берутся стоимость конструктива и соединительных разъемов. Такие шины содержат меньше линий по сравнению с вариантом «процессор-память», но длина линий может быть весьма большой. Типичными примерами подобных шин могут служить шины PCI и SCSI.

 

Системная шина

 

С целью снижения стоимости некоторые ВМ имеют общую шину для памяти и устройств ввода/вывода. Такая шина часто называется системной. Системная шина служит для физического и логического объединения всех устройств ВМ. Поскольку основные устройства машины, как правило, размещаются на общей монтажной плате, системную шину часто называют объединительной шиной (backplane bus), хотя эти термины нельзя считать строго эквивалентными.

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

 

Рис. 4.4. Структура системной шины

 

Особенности каждой из этих групп и распределение сигнальных линий подробно рассматриваются позже.

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

Физически системная шина представляет собой совокупность параллельных электрических проводников. Этими проводниками служат металлические полоски на печатной плате. Шина подводится ко всем модулям, и каждый из них подсоединяется ко всем или некоторым ее линиям. Если ВМ конструктивно выполнена на нескольких платах, то все линии шины выводятся на разъемы, которые затем объединяются проводниками на общем шасси.

Среди стандартизированных системных шин универсальных ВМ наиболее известны шины Unibus, Fastbus, Futurebus, VME, NuBus, Multibus-II. Персональные компьютеры, как правило, строятся на основе системной шины в стандартах ISA, EISA или MCA.

 

Иерархия шин

 

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

 

Вычислительная машина с одной шиной

 

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

 

Рис. 4.5. Структура взаимосвязей с одной шиной

 

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

 

Вычислительная машина с двумя видами шин

 

Хотя контроллеры устройств ввода/вывода (УВВ) могут быть подсоединены непосредственно к системной шине, больший эффект достигается применением одной или нескольких шин ввода/вывода (рис. 4.6). УВВ подключаются к шинам ввода/вывода, которые берут на себя основной трафик, не связанный с выходом на процессор или память. Адаптеры шин обеспечивают буферизацию данных при их пересылке между системной шиной и контроллерами УВВ. Это позволяет ВМ поддерживать работу множества устройств ввода/вывода и одновременно «развязать» обмен информацией по тракту процессор-память и обмен информацией с УВВ.

 

Рис. 4.6. Структура взаимосвязей с двумя видами шин

 

Подобная схема существенно снижает нагрузку на скоростную шину «процессор-память» и способствует повышению общей производительности ВМ. В качестве примера можно привести вычислительную машину Apple Macintosh II, где роль шины «процессор-память» играет шина NuBus. Кроме процессораипамятик ней подключаются некоторые УВВ. Прочие устройства ввода/вывода подключаются к шине SCSI Bus.

 

Вычислительная машина с тремя видами шин

 

Для подключения быстродействующих периферийных устройств в систему шин может быть добавлена высокоскоростная шина расширения (рис. 4.7).

 

 

Рис. 4.7. Структура взаимосвязей стремя видами шин

 

Шины ввода/вывода подключаются к шине расширения, а уже с нее через адаптер к шине «процессор-память». Схема еще более снижает нагрузку на шину «процессор-память». Такую организацию шин называют архитектурой с «пристройкой» (mezzanine architecture).

 

Физическая реализация шин

 

Кратко остановимся на различных аспектах физической реализации шин в вычислительных машинах и системах.

 

Механические аспекты

 

Основная шина (рис. 4.8), объединяющая устройства вычислительной машины, обычно размещается на так называемой объединительной или материнской плате. Шину образуют тонкие медные поперек которых через небольшие интервалы установлены разъемы для подсоединения устройств ВМ. Подключаемые к шине устройства обычно также выполняются в виде печатных плат, часто называемых дочерними платами или модулями. Дочерние платы вставляются в разъемы на материнской плате. В дополнение к тонким сигнальным линиям на материнской плате имеются также и более широкие проводящие линии, по которым к дочерним платам подводится питающее напряжение. Несколько контактов разъема обычно подключаются к общей точке — «земле». «Земля» на материнской плате реализуется либо в виде медного слоя (одного из внутренних слоев многослойной печатной платы), либо как широкая медная дорожка на обратной стороне материнской платы.

 

Рис. 4.8. Организация объединительной шины

 

Контактные пружины в разъемах обеспечивают независимое подключение сигнальных линий, расположенных по обеим сторонам вставляемой в разъем дочерней платы. При создании соединительных разъемов прилагаются значительные усилия с тем, чтобы гарантировать надежный контакт после многократного извлечения платы из разъема, а также при длительной (многолетней) эксплуатации

разъема в загрязненной или коррозийной среде.

«Механические» спецификации шины обычно включают такие детали, как размеры плат, размеры и размещение направляющих для установки платы, разрешенное место для установки кабельного разъема, максимальная высота элементов на плате и т. д.

 

Электрические аспекты

 

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

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

При реализации шины необходимо предусмотреть возможность отключения драйвера от сигнальной линии на период, когда он не использует шину. Один из возможных способов обеспечения подобного режима — применение драйвера, выход которого может находиться в одном из трех состояний: «высокий уровень напряжения» (high), «низкий уровень напряжения» (low) и «отключен» (off). Для перевода в состояние «off», эквивалентное отключению выхода драйвера от сигнальной линии, используется специальный вход драйвера. Режим «off» необходим для исключения возможности одновременного управления шиной двумя или более устройствами, в противном случае на линиях могут возникать пиковые выбросы напряжения или искаженные сигналы, которые кроме некорректной передачи информации могут привести к преждевременному отказу электронных компонентов.

Совместное использование линии шины несколькими устройствами возможно также за счет подключения этой линии к выходу драйвера через резистор, соединенный с источником питания. В зависимости от полупроводниковой технологии, примененной в выходных каскадах драйвера, подобную возможность обеспечивают схемы с открытым коллектором (ТТЛ), открытым стоком (МОП) или открытым эмиттером (ЭСЛ). Данный способ не только исключает электрические конфликты на шине, но и позволяет реализовать очень полезный вид логической операции, известный как «монтажное ИЛИ» или «монтажное И» (трактовка зависит от соответствия между уровнями напряжения и логическими значениями 1 и 0). Если к линии одновременно подключается несколько драйверов, то сигнал на линии представляет собой результат логического сложения (операция всех поступивших на линию сигналов. Это оказывается весьма полезным при решении задачи арбитража, которая рассматривается позже. В некоторых шинах «монтажное ИЛИ» используется лишь в отдельных сигнальных линиях, но иногда эту операцию допускают по отношению ко всем линиям шины.

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

Рассматривая процесс распространения сигнала по сигнальной линии, необходимо учитывать четыре основных фактора:

§ скорость распространения;

§ отражение;

§ перекос;

§ эффекты перекрёстного влияния.

Теоретическая граница скорости распространения сигнала — скорость света в свободном пространстве, то есть около 300 мм/не. Реальная скорость, определяемая физическими характеристиками сигнальных линий и нагрузкой, реально не может превысить 70% от скорости света.

Процессы в линии рассмотрим на примере сигнальной линии, которая через резистор, соединенный с источником питания, удерживается на уровне напряжения, соответствующем логической единице. Сигнал драйвера «подтягивает» линию к своему уровню напряжения. Изменение напряжения распространяется от точки подключения драйвера в обоих направлениях, пока на всей линии не установится уровень сигнала драйвера. Характер распространения сигнала определяют емкость, индуктивность и характеристическое сопротивление линии, локальные значения которых по длине линии зависят от локальных свойств проводника и его окружения.

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

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

Распространяясь по линии, сигнал создает вокруг нее электростатическое и магнитное поля. Сигнальные линии в шине располагаются параллельно и в непосредственной близости одна от другой. Поля от близко расположенных линий перекрываются, приводя к тому, что сигнал на одной линии влияет на сигнал в другой. Этот эффект называют перекрестной или переходной помехой.

Наиболее очевидный способ уменьшения перекрестной помехи эффекта — пространственно разнести линии шины так, чтобы их поля не влияли на «соседей», — для печатной платы ограниченного размера не подходит. К снижению эффектов влияния ведет уменьшение взаимных емкости и индуктивности

линий, чего можно добиться, разместив вблизи сигнальных линий «земляные»

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

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

Поскольку драйвер одновременно «видит» две линии, передающие информацию в противоположных направлениях, он должен поддерживать двойную по срав­нению с одной линией величину тока. Для типичных линий импеданс не превы­шает 20 Ом, а сигналы имеют уровень порядка 3 В, что выражается в величине тока около 150 мА. Приведенные цифры для современных драйверов не составляют проблемы, поскольку применяемые в настоящее время схемы способны приспособиться к гораздо худшим параметрам сигналов.

Порождаемый сигналом ток замыкается через «земляной» контакт драйвера. Когда одновременно активны все сигнальные линии, ток возврата через «землю» может быть весьма большим. Положение осложняет то, что ток этот не является постоянным и в моменты подключения и отключения драйвера содержит высокочастотные составляющие. Кроме того, из-за сопротивления и индуктивности «земляного» слоя печатной платы потенциалы на «земляных» выводах дочерних плат могут различаться. Это может приводить к неверной оценке сигналов приемниками, следствием чего становится некорректное срабатывание логических схем. С «земляным» шумом легче бороться на стадии проектирования шины. Прежде всего необходимо улучшать характеристики «земляных» слоев на материнской и дочерних платах. Между системами заземления материнской и дочерних плат должно быть много хорошо распределенных надежных контактов. Для высокоскоростных шин на каждые четыре сигнальных шины следует иметь отдельный «земляной» контакт. Кроме того, дочерняя плата должна быть спроектирована так, чтобы «земляной» ток от данного драйвера протекал к тому «земляному» контакту, который расположен как можно ближе к сигнальным выводам. «Земля» материнской платы обычно реализуется в виде внутреннего медного слоя в многослойной печатной плате; отверстия с зазором вокруг сигнальных выводов предотвращают короткое замыкание сигнального вывода с этим слоем. Разъем должен быть достаточно широким, чтобы на дочерней плате можно было разместить по возможности ближе к нему, что позволяет сократить длину тех участков шины, где нарушается ее неразрывность.

В целом ряде известных шин многие из рассмотренных положений игнорируются. По практическим соображениям используются линии с высоким импедансом. Надежность работы с такими «плохими» шинами достигается за счет их замедления: затягивание перехода сигналов от одного уровня к другому приводит к уменьшению отражений. Снижается также влияние перекрестных помех.

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

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

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

Чтобы сделать приемники нечувствительными к отражениям и высокочастотному шуму, в них встраивают фильтры нижних частот. В шине NITS Altair, например, используются драйверы большой мощности и маломощные приемники. По причине быстрых драйверов и неудачного дизайна монтажной шины сигналы в этой шине сильно искажаются, но маломощные приемники достаточно медлительны и позволяют нивелировать большинство из дефектов сигнала.

Применяющиеся в настоящее время драйверы и приемники на базе транзисторно-транзисторной логики (ТТЛ) уже не в полной мере отвечают растущим требованиям. В новых шинах наметилась тенденция перехода к трансиверам на основе эмиттерно-связанной логики (ЭСЛ), как, например, в шине Fastbus. Замечательно, что одновременно с уменьшением емкости линий, уровней и крутизны фронтов сигналов, подавлением шумов в приемнике, в подобных трансиверах сохраняется преемственность со старыми устройствами: они допускают использование со стороны дочерних плат источников питания и сигналов, характерных для ТТЛ-технологии.

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

 

Распределение линий шины

 

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

На ША могут выдаваться адреса ячеек памяти, номера регистров ЦП, адреса портов ввода/вывода и т. п. Многообразие видов адресов предполагает наличие дополнительной информации, уточняющей вид, используемый в данной транзакции. Такая информация может косвенно содержаться в самом адресе, но чаще передается по специальным управляющим линиям шины.

Разнообразной может быть и структура адреса. Так, в адресе может конкретизироваться лишь определенная часть ведомого, например, старшие биты адреса могут указывать на один из модулей основной памяти, в то время как младшие биты определяют ячейку внутри этого модуля.

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

Число сигнальных линий, выделенных для передачи адреса (ширина шины адреса), определяет максимально возможный размер адресного пространства. Это одна ил базовых характеристик шины, поскольку от нее зависит потенциальная емкость адресуемой памяти и число обслуживаемых портов ввода/вывода.

Совокупность линий, служащих для пересылки данных между модулями системы, называют шиной данных (ШД). Важнейшие характеристики шины данных ширина и пропускная способность.

Ширина шины данных определяется количеством битов информации, которое может быть передано по шине за одну транзакцию (цикл шины). Цикл шины следует отличать от периода тактовых импульсов — одна транзакция на шине может занимать несколько тактовых периодов. В середине 1970-х годов типовая ширина шины данных составляла 8 бит. В наше время это обычно 32,64 или 128 бит. В любом случае ширину шины данных выбирают кратной целому числу байтов, причем число, как правило, представляет собой целую степень числа 2.

Элемент данных, задействующий всю ширину ШД, принято называть словом, хотя в архитектуре некоторых ВМ понятие «слово» трактуется по-другому, то есть слово может иметь разрядность, не совпадающую с шириной ШД.

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

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

Ширина шины данных существенно влияет на производительность ВМ. Так, если шина данных имеет ширину вдвое меньшую чем длина команды, ЦП в течение каждого цикла команды вынужден осуществлять доступ к памяти дважды.

Пропускная способность шины характеризуется количеством единиц информации (байтов), которые допускается передать по шине за единицу времени (секунду), а определяется физическим построением шины и природой подключаемых к ней устройств. Очевидно, что чем шире шина, тем выше ее пропускная способность.

Последовательность событий, происходящих на шине данных в процессе одной транзакции, иллюстрирует рис. 4.9. Пусть устройство А на одном конце шины передает данные устройству В на другом ее конце.

 

Рис. 4.9. Временная диаграмма пересылки данных

 

Сначала устройство А выставляет данные на шину. Здесь t ЗД — это задержка между моментом выставления данных устройством А и моментом их появления на шине. Этот интервал времени может составлять от 1 до 4 Как уже отмечалось, скорость распространения данных по шине реально не в состоянии превысить 70% от скорости света. Единственный способ уменьшения задержки распространения tРС — сокращение длины шины. Когда сигнал достигает устройства, он должен быть «захвачен». Захват устройством В может быть произведен только по прошествии некоторого времени стабилизации. Время стабилизации tСТ, - это время,

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

Общее время передачи данных по шине tП определяется выражением tП = tЗД + tРС + tСТ + tУД. Если подставить типовые значения этих параметров, получим 4 + 1,5 + 2 + 0 = 7,5 нс, что соответствует частоте шины 109/7,5 = 133,3 МГц.

На передача данных осуществляется с задержкой на инициализацию транзакции Учитывая эту задержку, максимальную скорость передачи можно определить как

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

Если адрес и данные в шине передаются по независимым (выделенным) сигнальным линиям, то ширина ША и ШД обычно выбирается независимо. Наиболее частые комбинации: 16-8, 16-16, 20-8, 20-16, 24-32 и 32-32. Во многих шинах адрес и данные пересылаются по одним и тем же линиям, но в разных тактах цикла шины. Этот прием называется временным мультиплексированием и будет рассмотрен позже. Здесь же отметим, что в случае мультиплексирования ширина ША и ширина ШД должны быть взаимоувязаны.

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

Помимо трактов пересылки адреса и данных, неотъемлемым атрибутом любой шины являются линии, по которым передается управляющая информации и информация о состоянии участвующих в транзакции устройств. Совокупность таких линий принято называть шиной управления (ШУ), хотя такое название представляется не совсем точным. Сигнальные линии, входящие в ШУ, можно условно разделить на несколько групп.

Первую группу образуют линии, по которым пересылаются сигналы управления транзакциями, то есть сигналы, определяющие:

§ тип выполняемой транзакции (чтение или запись);

§ количество байтов, передаваемых по шине данных, и, если пересылается часть слова, то какие байты;

§ какой тип адреса выдан на шину адреса;

§ какой протокол передачи должен быть применен.

На перечисленные цели обычно отводится от двух до восьми сигнальных линий.

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

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

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

Пятая группа — линии для организации последовательных локальных сетей. Наличие от 1 до 4 таких линий стало общепринятой практикой в современных шинах. Обусловлено это тем, что последовательная передача данных протекает значительно медленнее, чем параллельная, и сети значительно выгоднее строить, не загружая быстрые линии основных шин адреса и данных. Кроме того, шины этой группы могут быть использованы как полноценный, хотя и медленный, избыточный тракт для замены ША и ШД в случае их отказа. Иногда шины пятой группы назначаются для реализации специальных функций, таких, например, как обработка прерываний или сортировка приоритетов задач.

В некоторых ШУ имеется шестая группа сигнальных линий — от 4 до 5 линий позиционного кода, подсоединяемых к специальным выводам разъема. С помощью перемычек на этих выводах можно задать уникальный позиционный код разъема на материнской плате или вставленной в этот разъем дочерней платы. Такой код может быть использован для индивидуальной инициализации каждой отдельной платы при включении или перезапуске системы.

Наконец, в каждой шине обязательно присутствуют линии, которые в нашей классификации входят в седьмую группу, которая по сути является одной из важнейших. Это группа линий тактирования и синхронизации. При проектировании шины таким линиям уделяется особое внимание. В состав группы, в зависимости от протокола шины (синхронный или асинхронный), входят от двух до шести линий.

В довершение необходимо упомянуть линии для подвода питающего напряжения и линии заземления.

Большое количество линий в шине предполагает использование разъемов со значительным числом контактов. В некоторых шинах разъемы имеют сотни контактов, где предусмотрены подключение вспомогательных шин специального назначения, свободные линии для локального обмена между дочерними платами, множественные параллельно расположенные контакты для «размножения» питания и «земли». Значительно чаще число контактов разъема ограничивают. В табл. 4.1 показано возможное распределение линий 32-разрядной шины в 64-контактном разъеме.

 

Таблица4.1. Распределение линий 32-разрядной шины в 64-контактном разъеме

 

Линии Типовое число выводов Комментарии
Адрес 16-32 Могут быть объединены в мультиплексируемую шину
Данные 8-32  
Арбитраж 3-11  
Управление 2-8  
Состояние 1-4  
Тактирование и синхронизация 2-6  
Локальная сеть 1-4  
Позиционный код 4-5  
Питание 2-20  
«Земля» 2-20  

 

Выделенные и мультиплексируемые линии

 

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

Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на его другом конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств.

 

Рис. 4.10. Мультиплексирование адреса и данных

 

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

Примером применения мультиплексируемой шины адреса/данных может служить шина Futurebus+.

 

Арбитраж шин

 

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

 

Схемы приоритетов

 

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

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

Наибольшее распространение получили следующие алгоритмы динамического изменения приоритетов:

§ простая циклическая смена приоритетов;

§ циклическая смена приоритетов с учетом последнего запроса;

§ смена приоритетов по случайному закону;

§ схема равных приоритетов;

§ алгоритм наиболее давнего использования.

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

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

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

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

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

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

Помимо рассмотренных существует несколько алгоритмов смены приоритетов, которые не являются чисто динамическими, поскольку смена приоритетов происходит не после каждого цикла арбитража. К таким алгоритмам относятся:

§ алгоритм очереди (первым пришел –– первым обслужен);

§ алгоритм фиксированного кванта времени.

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

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

 

Схемы арбитража

 

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

 

Централизованный арбитраж

 

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

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

Идею централизованного параллельного арбитража на примере восьми ведущих устройств иллюстрирует рис. 4.11, а.

Здесь и далее под «текущим ведущим» будем понимать ведущее устройство, управляющее шиной в момент поступления нового запроса. Устройство, выставившее запрос на управление шиной, будем называть «запросившим ведущим». Сигналы запроса шины (ЗШ) поступают на вход центрального арбитра по индивидуальным линиям. Ведущему с номером г, который был выбран арбитром, также по индивидуальной линии возвращается сигнал предоставления шины (ПШi). Реально же занять шину новый ведущий сможет лишь после того, как текущий ведущий (пусть он имеет номер j) снимет сигнал занятия шины (ШЗ). Текущий ведущий должен сохранять сигналы ШЗ и ЗШi активными в течение всего времени, пока он использует шину. Получив запрос от ведущего, приоритет которого выше, чем у текущего ведущего, арбитр снимает сигнал ПШj на входе текущего ведущего и выдает сигнал предоставления шины ПШi запросившему ведущему. В свою очередь, текущий ведущий, обнаружив, что центральный арбитр убрал с его входа сигнал ПШj, снимает свои сигналы ШЗ и ЗШj, после чего запросивший ведущий может перенять управление шиной. Если в момент пропадания сигнала на шине происходит передача информации, текущий ведущий сначала завершает передачу и лишь после этого снимает свои сигналы.

 

Рис. 4.11. Централизованный параллельный арбитраж: а - общая схема; б—возможная реализация

 

Логика выбора одного из запрашивающих ведущих обычно реализуется аппаратными средствами. В качестве примера рассмотрим реализацию системы централизованного параллельного арбитража для статических приоритетов (рис. 4.11, б). Пусть имеется восемь потенциальных ведущих 7-0, восемь сигналов запроса шины ЗШ7-ЗШ0 и восемь соответствующих им сигналов предоставления шины ПШ7-ПШ0. Положим, что приоритеты ведущих последовательно убывают с уменьшением их номера. Если текущим является ведущий 3, то шину у него могут перехватить ведущие с номерами от 4 до 7, а ведущие 0-2 этого сделать не могут. Ведущий 0 вправе использовать шину лишь тогда, когда она свободна, и должен освободить ее по запросу любого другого ведущего. Схема статических приоритетов может быть относительно просто реализована на основе логических выражений, которые применительно к рассматриваемому примеру имеют вид:

 

Устройства арбитража, реализующие систему статических приоритетов, обычно выполняются в виде отдельных микросхем (например, SN74278 фирмы Texas Instruments), которые, с целью увеличения числа входов и выходов, могут объединяться по каскадной схеме, что, однако, ведет к увеличению времени арбитража.

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

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

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

В зависимости от того, какой из сигналов используется для целей арбитража, различают три основных типа схем цепочечного арбитража: с цепочкой для сигнала предоставления шины, с цепочкой для сигнала запроса шины (ЗШ) и с цепочкой для дополнительного сигнала разрешения (РШ). Наиболее распространена схема цепочки для сигнала ПШ (рис.4.12).

 

Рис. 4.12. Централизованный последовательный арбитраж с цепочкой для сигнала

предоставления шины

 

Запросы от ведущих объединяются на линии запроса шины по схеме «монтажного ИЛИ». Аналогично организована и линия, сигнализирующая о том, что шина в данный момент занята одним из ведущих. Когда один или несколько ведущих выставляют запросы, эти запросы транслируются на вход центрального арбитра. Получив сигнал ЗШ, арбитр анализирует состояние линии занятия шины, и если шина свободна, формирует сигнал ПШ. Сигнал предоставления шины последовательно переходит по цепочке от одного ведущего к другому. Если устройство, на которое поступил сигнал ПШ, не запрашивало шину, оно просто пропускает сигнал дальше по цепочке. Когда ПШ достигнет самого левого из запросивших ведущих, последний блокирует дальнейшее распространение сигнала ПШ по цепочке и берет на себя управление шиной.

Еще раз отметим, что очередной ведущий не может приступить к управлению шиной до момента ее освобождения. Центральный арбитр не должен формировать сигнал ПШ вплоть до этого момента.

Цепочечная реализация предполагает статическое распределение приоритетов. Наивысший приоритет имеет ближайшее к арбитру ведущее устройство (устройство, на которое арбитр выдает сигнал ПШ). Далее приоритеты ведущих в цепочке последовательно

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

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

 

Децентрализованный арбитраж

 

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

 

Рис. 4.13. Схема децентрализованного параллельного арбитража

 

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

Под децентрализованный арбитраж может быть модифицирована также схема, приведенная на рис. 4.12. Подобный вариант, называемый кольцевой схемой, показан на рис. 4.14.

 

Рис. 4.14. Кольцевая схема

 

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

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

Для большинства шин все-таки более характерна другая организация децентрализованного арбитража. Такие схемы предполагают наличие в составе шины группы арбитражных линий, организованных по схеме «монтажного ИЛИ». Это позволяет любому ведущему видеть сигналы, выставленные остальными устройствами. Каждому ведущему присваивается уникальный номер, совпадающий с кодом уровня приоритета данного ведущего. Запрашивающие шину устройства выдают на арбитражные линии свой номер. Каждый из запросивших ведущих, обнаружив на арбитражных линиях номер устройства с более высоким приоритетом, снимает с этих линий младшие биты своего номера. В конце концов на арбитражных линиях остается только номер устройства, обладающего наиболее высоким приоритетом. Победителем в процедуре арбитража становится ведущий, опознавший на арбитражных линиях свой номер. Подобная схема известна также как распределенный арбитраж с самостоятельным выбором, поскольку ведущий сам определяет, стал ли он победителем в арбитраже, то есть выбирает себя самостоятельно.

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

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

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

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

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