## 11. Шины

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

Основными техническими характеристиками шин являются разрядность, тактовая частота и производительность (скорость обмена, или пропускная способность). Разрядность определяется количеством проводов шины, по каждому из которых передается один бит адреса, один бит данных или один управляющий бит. Тактовая частота определяется как количество управляющих работой шины синхроимпульсов в секунду. Производительность равна количеству битов (или байтов), передаваемых по шине в единицу времени. Если, например, 16-битовая шина работает на частоте 100 МГц и выполняет передачу кода за один такт, то ее производительность равна 2 байта*108 тактов/с ≈ 190 Мбайт/с. Не следует путать пропускные способности шины и памяти. Это согласованные, но не обязательно совпадающие величины.

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

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

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

### 11.1. Циклы шин

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

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

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

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

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

#### 11.1.1. Цикл чтения синхронных шин

Рассмотрим изображенную на рис. 11.1 упрощенную временную диаграмму цикла чтения шины. В некоторый момент времени ta процессор выставляет на адресные линии шины адрес байта, который нужно прочитать из ОП. Когда адрес стабилизируется, процессор формирует нулевое значение управляющего сигнала MEMR# (Memory Read – чтение из памяти). Этот сигнал сообщает всем присоединенным к шине устройствам, что процессор запрашивает данные из ОП.

Рис. 11.1 – Цикл чтения синхронной шины с одним тактом ожидания.

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

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

Контроллер памяти «знает» временные характеристики микросхем памяти. Чтобы процессор напрасно не ждал ответа и мог заняться выполнением других действий, контролер формирует на шине управляющий сигнал WAIT#, занимающий столько тактов, сколько должен ждать ответа процессор. На рис. 11.1 сигнал WAIT# длится один такт.

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

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

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

#### 11.1.2. Цикл чтения асинхронных шин

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

Упрощенная временная диаграмма приводится на рис. 11.2. Кроме использованного ранее сигнала MEMR#, асинхронной шине требуется ещё два управляющих сигнала – BEG#, роль которого сводится к оповещению «заинтересованного» устройства о том, что оно может начать свое действие, и сигнал FIN#, который отправляется устройством после завершения его части работы. Эти два сигнала в цикле шины играют синхронизирующую роль.

Стрелками показываются причинно-следственные связи в цикле шины. Стрелки начинаются у устройства, которое вызывает действие, и заканчиваются у устройства, которое это действие выполняет.

Рис. 11.2

Цепочка причинно-следственных связей в краткой форме имеет следующий вид:

1. Стабилизация адреса вызывает формирование сигнала MEMR#.

2. Стабилизация сигнала MEMR# вызывает формирование сигнала BEG#.

3. Стабилизация сигнала BEG# запускает цикл памяти.

4. Стабилизация данных (завершение цикла памяти) вызывает формирование сигнала FIN#.

5. Стабилизация сигнала FIN# вызывает отключение сигналов BEG#, MEMR#, а также адресных линий.

6. Отключение сигнала BEG# вызывает отключение сигнала FIN# и освобождение линий данных.

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

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

#### 11.1.2. Блочные циклы шин

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

Блочные (пакетные) циклы шины аналогичны по организации и получаемым преимуществам режиму BEDO микросхем памяти. Для организации пакетного режима контроллеру памяти передается количество байтов (слов), из которых должен состоять блок. Далее без освобождения шины из памяти передается по одному байту (слову) в течение каждого такта до полного формирования пакета. Т. о., при передаче блока, состоящего, например, из 4 байтов (слов), требуется не 12 тактов, а всего 6.

11.1.2. Циклы без освобождения шины

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

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

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

### 11.2. Конвейерный режим шины

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

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

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

Рис. 11.3

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

Первый такт. Первая транзакция проходит фазу арбитража.

Второй такт. Первая транзакция проходит фазу запроса, а вторая транзакция – фазу арбитража.

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

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

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

Шестой такт. Третья транзакция завершается передачей данных. Четвертая проходит проверку ошибок, пятая находится на фазе запроса, а шестая – на фазе арбитража.

Седьмой такт и т. д.

### 11.3. Многошинная архитектура

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

Современные персональные компьютеры обычно содержат (рис. 11.4):

1. Шину низкоскоростных внешних устройств (клавиатура, мышь, принтер);

2. Шину высокоскоростных внешних устройств (магнитные, оптические диски);

3. Шину графического адаптера, для передачи высококачественных цветных движущихся изображений на экран дисплея;

4. Системную шину (шину памяти), связывающую процессор и ОП;

5. Шину кэша, связывающую процессор и внешний кэш.

Рис. 11.4

#### 11.3.1. Синхронизация и шины

Находящийся на материнской плате основной тактовый генератор компьютера вырабатывает высокостабильные импульсы, которые используются для синхронизации работы процессора, микросхем памяти, системной и всех остальных шин, а также разнообразных внешних устройств. В связи с этим частота импульсов, вырабатываемых тактовым генератором, называется опорной, или базовой, частотой. В литературе такую частоту иногда называют Host Bus Clock (дословно – часы хозяйской шины, подразумевается частота системной шины). Считается, что первой стандартной базовой частотой у персональных компьютеров была частота 4,77 МГц. В настоящее время базовые частоты увеличились до 800 – 1200 МГц.

В связи с широким внедрением параллелизма в архитектуру компьютеров оказалось более удобным и более производительным допустить работу различных устройств с различной тактовой частотой. А чтобы не вводить несколько тактовых генераторов, которые работают на разных частотах, но при этом занимают много лишнего места и к тому же нуждаются в дополнительной взаимной синхронизации, применили масштабирование одной и той же базовой частоты от одного тактового генератора. Для обладающих высокой скоростью работы микросхем процессоров применяется внутреннее умножение базовой частоты на некоторый числовой коэффициент, например, 2, 4, 6 и т. д. Эту частоту часто обозначают CPU Clock (частота центрального процессора) или Core Speed (скорость ядра).

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

Для более медленных шин устройств ввода/вывода применяется деление опорной частоты на соответствующий возможностям их шин и самих устройств коэффициент. При этом получают, например, для шин ISA частоту 8, 16 МГц и т. д. (она называется ISA Bus Clock), а для шин PCI частоту PCI Bus Clock, равную 66, 260 МГц и т. д.

#### 11.3.2. Чипсет

Для согласования операций обмена и управления в сложной иерархической системе шин в персональных компьютерах служит специальный набор микросхем компьютера, который принято называть чипсетом (chip set – набор чипов).

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

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

В «обязанности» чипсета, в частности, входит:

1. Обслуживание управляющих сигналов процессора;

2. Формирование управляющих сигналов для внешнего кэша;

3. Формирование адреса и управляющих сигналов для микросхем оперативной памяти;

4. Обеспечение когерентности данных для всех уровней кэша и оперативной памяти;

5. Обеспечение взаимосвязи между всеми типами шин компьютера;

6. Арбитраж контроллеров шин и т. д.

Характеристики чипсета определяют большинство важнейших параметров компьютера, в том числе:

1. Возможные типы и частоты центрального процессора;

2. Скоростные характеристики внешнего кэша и его допустимый объем;

3. Типы, объем и максимальное количество модулей динамической памяти;

4. Возможные частоты шин и т. д.

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

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

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

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

#### 11.3.3. Параметры шин

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

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

Частота шины. Повышение частоты шины создает проблемы обратной совместимости и совместимости с медленными устройствами.

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

Тип шин: специализированные и мультиплексированные.

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

Синхронизация: синхронные и асинхронные шины.

Арбитраж шин может осуществляться двумя путями: централизовано или распределено.

#### 11.3.4. Арбитраж шин

Арбитр – устройство, разрешающее конфликты доступа к шине.

Протокол – набор правил, которым должны подчиняться все устройства, подключаемые к шине.

Виды арбитража:

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

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

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

Рис. 11.5 – Арбитраж шин.

Если несколько master-устройств состязаются одновременно за доступ к шине, арбитр использует политику назначения для определения победителя. Выделяют 4 политики:

1. В политике фиксированного приоритета каждому мастеру присваивается уникальный фиксированный приоритет. Когда несколько мастеров запрашивают шину, то получает ее мастер с наиболее высоким приоритетом. В связи с тем, что приоритеты фиксированы, важность представляет грамотное их назначение, иначе высокоприоритетный мастер может заблокировать запросы шины от менее приоритетного мастера навсегда, приводя к «голоданию». Однако голодание не должно стать проблемой в случае, если запросы к шине перемежаются. Запросы устройств ввода/вывода, в основном контроллера прямого доступа, обычно попадают в эту категорию. В таких случаях фиксированный приоритет может присваиваться в зависимости от важности (срочности) запрашиваемого сервиса.

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

3. «Справедливая» политика (Fair Policy) – политика не допускающая голодания. Она не обязательно использует приоритеты. Может использоваться время ожидания. Например, справедливой может считаться обработка запросов из одного класса приоритетов или из нескольких. Некоторые примеры «справедливости»: 1) все запросы в предопределенном временном окне должны быть удовлетворены до разрешения запросов из следующего окна; 2) запрос шины не должен ожидать более М миллисекунд. Гибридные политики.

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

1. Политика без упреждения – в случае таких политик master-устройство добровольно освобождает шину. Варианты политики без упреждения:

a) Транзакционная. Мастер, занявший шину, освобождает ее как только закончится текущая транзакция. Это простейшая для реализации политика. Если мастеру требуется использовать шину для очередной транзакции, то он запрашивает ее снова. Путем освобождения шины после каждой транзакции можно гарантировать справедливость.

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

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

В зависимости от организации динамический арбитраж можно разделить:

1. Централизованный арбитраж: центральный арбитр принимает все запросы на получение шины.

2. Распределенный (децентрализованный): аппаратура арбитража распределена среди всех ведущих устройств.

Выдача разрешений:

1. Гирляндная схема использует один разделяемый сигнал запроса для всех мастеров, как показано на рис. 11.6. Линия «запрос шины» организована так, что принимает значение 0, если один или более мастеров запрашивают шину. Когда центральный арбитр получает запрос на шину, он посылает по линии разрешения сигнал первому мастеру в цепочке. Сигнал разрешения проходит через все мастера, как показано на рисунке. Каждый мастер может передать входящий сигнал разрешения своему соседу в цепи, если ему самому не требуется шина. С другой стороны, если мастеру требуется шина, то он не передает сигнал дальше. В этом случае мастер может использовать шину для своей транзакции. Освобождение шины осуществляется действующей политикой освобождения. Такая схема имеет три проблемы: она реализует фиксированную политику назначения шины с приоритетом, зависящим от удаленности от арбитра; время арбитража варьируется для разных мастеров по той же причине; схема не отказоустойчива, т.е. при отказе одного из мастеров сигнал разрешения не может быть передан дальше по цепочке.

Рис. 11.6

2. Независимая схема. В этой реализации арбитр соединен с каждым мастером отдельным сигналом запроса и отдельным сигналом разрешения (рис. 11.7). Когда мастер хочет получить доступ к шине, он посылает запрос по собственной линии запроса. Как только арбитр получает запросы от мастеров, он применяет политику назначения для определения, какому из мастеров выдать шину следующим. Благодаря тому, что запросы шины принимаются по отдельным линиям, арбитр может реализовывать различные политики назначения: политику с изменяющимся приоритетом, справедливую политику, гибридную. Шина PCI использует подобную схему. Эта схема избегает недостатков гирляндного режима. Она предоставляет короткое, постоянное время арбитража, разрешает гибкое назначение приоритетов, так что может быть гарантирована справедливость. Кроме того, она обеспечивает отказоустойчивость. Если в мастере происходит отказ, арбитр может игнорировать его и продолжать обслуживание оставшихся мастеров. Недостатком является сложность реализации. Количество управляющих сигналов растет пропорционально количеству мастеров.

Рис. 11.7

3. Гибридная. Две предыдущие схемы представляют собой крайности. Гирляндная схема дешевле, но имеет 3 потенциальных недостатка. Схема с независимыми линиями запроса/разрешения устраняет эти проблемы, однако имеет высокую цену. Можно реализовать гибридную схему, представляющую собой комбинацию этих двух техник (рис. 11.8). В этой схеме мастера делятся на N классов. Отдельные шины запроса и ответа используются для каждого класса, как и в схеме с независимыми запросами. Однако, внутри каждого класса мастера соединяются с использованием гирляндного режима. Шина VME использует подобную схему. В ней есть 4 пары шин запроса/разрешения.

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

Рис. 11.8