Любой цикл системного интерфейса состоит из двух фаз: фазы адреса и фазы данных. Т.к. интерфейс синхронный, то длительность адресной фазы и фазы данных задается тактовым сигналом.
Системный интерфейс PCI может работать в 3 режимах:
1. IDLE — пассивный режим.
2. ADR — режим передачи адреса или командная часть цикла.
3. DATA — часть цикла связанная с обменом данных.
Рис. 1. 9. Диаграмма общего способа обмена данными по интерфейсу PCI
D – данные.
Первый режим — это пассивный (IDLE). На него отводится 2 такта.
При этом режиме: FRAME# – высокий уровень
C/BE# — безразличный уровень (или 0 или 1).
AD – безразличный уровень.
IRDY#, TRDY#, DEVSEL# — высокий уровень.
Цикл системного интерфейса начинается с сигнала FRAME#, поэтому сигнал фиксируется по переднему фронту вплоть до постоянного уровня. Значит, по переднему фронту происходит изменение всех сигналов так, чтобы, когда сигнал CLK станет вплоть до постоянного уровня, сигналы могут быть зафиксированы, то есть должны быть воспринимаемы на интерфейсе.
Под адресный режим (ADR) отводим 1 такт. Далее в этой части передается также еще и команда, то есть, какой тип цикла в данный момент будет выполняться. Причем команда передается ровно 1 такт, после этого передаются сигналы BE# и наступает фаза передачи данных (отводится 2 такта). Далее в AD выставляется адрес, который сменяется данными. При чтении данных данные выставляются позже, а при записи выставляются сразу.
Понятно, что при записи данных, данные сразу же готовы, а при чтении – выдали команду, выдали адрес; устройство должно иметь время сообразить каким образом, какие данные нужно передать – на это дается целый такт. Далее IRDY# сообщает о том, что он готов передать или принять данные, то есть сразу после адреса. TRDY# сообщает о своей готовности конечно позже. В данном случае с опозданием на 1 такт. Как только устройство дешифрировало адрес, то есть опознало, что идет обращение в его адресное пространство, оно выставляет сигнал DEVSEL#.
Далее идет цикл с двойным адресом (ADR2). В этом случае сигнал FRAME# ведет себя точно также и в AD передаются 2 порции адреса, если это 32 разрядный интерфейс — это 64 бита адреса передается, если 64 разрядный, то 128 бит, сначала младшая часть адреса (A0), потом старшая часть (А1). Далее все идет стандартным образом: 2 периода тактового сигнала идет на фазу передачи данных и происходит тоже самое. Потом идет IDLE.
Всего существует порядка 12 типов обмена по системному интерфейсу PCI.
Рис. 1. 10. Протокол арбитража
ADR – адрес
Рис. 1. 11. Цикл чтения
CMD – команда.
Рис. 1. 12. Цикл записи
Сигнал FRAME# сигнализирует о завершении транзакции на системной шине. В момент перехода в пассивное состояние передаётся последняя порция данных. На системном интерфейсе PCI выставляется адрес байта и увеличивается адрес.