Скачиваний:
35
Добавлен:
02.05.2014
Размер:
35.33 Кб
Скачать

Интерфейс РСI: протокол обмена

Арбитражем запросов на использование шины PCI занимается специальный функциональный узел, входящий в состав чипсета системной платы. Каждое устройство-инициатор имеет пару сигналов - REQ# для запроса на управление шиной и GNT# - подтверждение предоставления управления шиной. Схема приоритетов (фиксированный, циклический, комбинированный) определяется программированием арбитра. Каждое устройство - потенциальный инициатор обмена (PCI Master) имеет собственный программируемый таймер MLT (Master Latency Timer), определяющий максимальное количество тактов шины, допустимое для одной транзакции. Программированием его значения при конфигурировании устройств осуществляется распределение полосы пропускания шины между абонентами шины. Каждое целевое устройство имеет инкрементный механизм слежения за длительностью циклов (Incremental Latency Mechanism), который не позволяет интервалу между соседними фазами данных в пакете превышать 8 тактов шины. Если целевое устройство не успевает работать в таком темпе, оно обязано останавливать транзакцию.

Шина PCI все транзакции трактует как пакетные: каждая транзакция начинается фазой (циклом) адреса, за которой может следовать одна или несколько фаз данных. Для адреса и данных используются общие мультиплексированные линии AD. Четыре мультиплексированные линии С/ВЕ|3:0| используются для кодирования команд в фазе адреса и разрешения байт в фазе данных. В начале транзакции инициатор активизирует сигнал FRAME#, по шине AD передает целевой адрес, а по линиям C/BE# информацию о типе транзакции (команде). Адресованное целевое устройство отзывается сигналом DEVSEL#, после чего инициатор может указать на свою готовность к обмену данными сигналом IRDY#. Когда к обмену данными будет готово и целевое устройство, оно установит сигнал TRDY#. Данные по шине AD могут передаваться только при одновременном наличии сигналов IRDY# и TRDY#. С помощью этих сигналов инициатор и целевое устройство согласуют свои скорости, вводя такты ожидания. На рис. 1 приведена временная диаграмма обмена, в которой и инициатор, и целевое устройство вводят такты ожидания. Если бы они оба ввели сигналы готовности в конце фазы адреса и не снимали их до конца обмена, то в каждом такте после фазы адреса передавались бы по 32 бита данных, что и обеспечило бы выход на предельную производительность обмена.

Рис. 1. Цикл обмена на шине PCI

Количество фаз (циклов) данных в пакете заранее не определено, но перед последним циклом инициатор обмена при введенном сигнале IRDY# снимает сигнал FRAME#. После последней фазы данных инициатор снимает сигнал IRDY# и шина переходит в состояние покоя (PCI Idle)-оба сигнала FRAME# и IRDY# находятся в пассивном состоянии. Максимальное количество циклов данных в пакете может быть неявно ограничено таймером, определяющим максимальное время, в течение которого инициатор может пользоваться шиной.

Инициатор завершает транзакцию по одной из трех причин:·

  • Нормальное завершение выполняется по окончании обмена данными.

  • Завершение по тайм-ауту (Time-out) происходит, когда во время транзакции у инициатора отбирают право на управление шиной (снятием сигнала GNT#) или когда истекает время, указанное в его таймере MLT (целевое устройство слишком медленное или начатая транзакция слишком длинная)·

  • Транзакция отвергается (Abort), когда в течение заданного времени инициатор не получает ответа целевого устройства (DEVSEL#).

Транзакция может быть прекращена и по инициативе целевого устройства для этого оно может ввести сигнал STOP#. Возможны три основных типа прекращения:

  • Отключение (Disconnect) - сигнал STOP# вводится во время активности TRDY#. В этом случае транзакция завершается после фазы данных.

  • Отключение с повтором (Disconnect/Retry) - сигнал STOP# вводится при пассивном состоянии TRDY#, и последняя фаза данных отсутствует. Такое завершение является указанием инициатору на необходимость повтора транзакции.

  • Отказ (Abort) - сигнал STOP# вводится одновременно со снятием DEVSEL# (в предыдущих случаях во время появление сигнала STOP# сигнал DEVSEL# был активен). В этом случае последняя фаза данных тоже отсутствует, но повтор не запрашивается.

Протокол квитирования обеспечивает надежность обмена - инициатор всегда получает информацию об отработке транзакции целевым устройством. Средством повышения надежности (достоверности) является применение контроля паритета: линии АD|31:0| и С/ВЕ#|3:0| и в фазе адреса, и в фазе данных защищены битом паритета PAR (количество единичных бит этих линий, включая PAR, должно быть четным). Действительное значение PAR появляется на шине с задержкой в один такт относительно линий AD и С/ВЕ#. При обнаружении ошибки целевым устройством со сдвигом еще на один такт вырабатывается сигнал PERR#. В подсчете паритета при передаче данных учитываются все байты, включая и недействительные (отмеченные высоким уровнем сигнала C/BE#i).

Одной из особенностей компьютеров с шиной PCI является возможность выполнения обмена данными между процессором и памятью одновременно с обменами между другими абонентами шины PCI - Concurrent РСI Transferring. Однако эта возможность реализуется не всеми чипсетами (в описаниях она всегда специально подчеркивается), а обычными абонентами шины (графические карты, контроллеры дисков и т. п.) используется редко.