В каждый момент времени шиной может управлять только одно ведущее устройство, получившее на это право от арбитра. Каждое ведущее устройство имеет пару сигналов — REQ#
GNT#
для подтверждения предоставления управления шиной. Устройство может начинать транзакцию (устанавливать сигнал FRAME#
) только при активном полученном сигнале GNT#
. Снятие сигнала GNT#
не позволяет устройству начать следующую транзакцию, а при определенных условиях (см. ниже) заставляет прекратить начатую транзакцию. Арбитражем запросов на использование шины занимается специальный узел, входящий в чипсет системной платы. Схема приоритетов (фиксированный, циклический, комбинированный) определяется программированием арбитра.Для адреса и данных используются общие мультиплексированные линии AD
С/BE[3:0]
обеспечивают кодирование команд в фазе адреса и разрешения байт в фазе данных. В начале транзакции ведущее устройство активизирует сигнал FRAME#
, по шине AD
передает целевой адрес, а по линиям С/BE#
— информацию о типе транзакции (команде). Адресованное ЦУ отзывается сигналом DEVSEL#
. Ведущее устройство указывает на свою готовность к обмену данными сигналом IRDY#
, эта готовность может быть выставлена и раньше получения DEVSEL#. Когда к обмену данными будет готово и ЦУ, оно установит сигнал TRDY#
. Данные по шине AD
передаются только при одновременном наличии сигналов IRDY#
и TRDY#
. С помощью этих сигналов ведущее устройство и ЦУ согласуют свои скорости, вводя такты ожидания. На рис. 6.7 приведена временная диаграмма обмена, в которой и ведущее устройство, и ЦУ вводят такты ожидания. Если бы они оба ввели сигналы готовности в конце фазы адреса и не снимали их до конца обмена, то в каждом такте после фазы адреса передавались бы по 32 бита данных, что обеспечило бы выход на предельную производительность обмена.Рис. 6.7
. Цикл обмена на шине PCIКоличество фаз данных в пакете явно не указывается, но перед последней фазой данных ведущее устройство при введенном сигнале IRDY#
FRAME#
. В одиночных транзакциях сигнал FRAME#
активен лишь один такт. Если устройство не поддерживает пакетные транзакции в ведомом режиме, то оно должно потребовать прекращения пакетной транзакции во время первой фазы данных (введя сигнал STOP#
одновременно с TRDY#
). В ответ на это ведущее устройство завершит данную транзакцию и продолжит обмен последующей транзакцией с новым значением адреса. После последней фазы данных ведущее устройство снимает сигнал IRDY#
, и шина переходит в состояние покоя (FRAME#
и IRDY#
находятся в пассивном состоянии. Инициатор может начать следующую транзакцию и без такта покоя, введя FRAME#
одновременно со снятием IRDY#
. Такие быстрые смежные транзакции (Fast Back-to-Back) могут быть обращены как к одному, так и к разным ЦУ. Первый тип поддерживается всеми устройствами PCI, выступающими в роли ЦУ. На поддержку второго типа (она необязательна) указывает бит 7 регистра состояния (см. п. 6.2.12). Инициатору разрешают (если он умеет) использовать быстрые смежные транзакции с разными устройствами (битом 9 регистра команд), только если все агенты шины допускают быстрые обращения.Шина позволяет уменьшить мощность (ток), потребляемую устройствами, ценой снижения производительности, применяя
AD[31:0]
и PAR
(address/data stepping). Здесь возможны два варианта.♦ Плавный шаг (continuous stepping) — начало формирования сигналов слабо точными формирователями за несколько тактов до введения сигнала-квалификатора действительной информации (FRAME#
IRDY#
или TRDY#
в фазе данных). За эти несколько тактов сигналы «доползут» до требуемого значения при меньшем токе.♦ Дискретный шаг (diskrete stepping) — нормальные формирователи срабатывают не все сразу, а группами (например, побайтно), в каждом такте по группе. При этом снижаются броски тока, поскольку одновременно переключается меньше формирователей.
Устройство само может и не пользоваться этими возможностями (см. бит 7 регистра команд), но должно «понимать» такие циклы. Задерживая сигнал FRAME#