Скачиваний:
79
Добавлен:
15.06.2014
Размер:
1.4 Mб
Скачать

5). Транзакция pci, фазы транзакции. Протокол, сигналы, временные диаграммы. Арбитр шины. Контроль достоверности передачи.

Транзакция - атомарная операция обмена данными между двумя устройствами PCI. В рамках транзакции определены два объекта – инициатор обмена (Initiator) и целевое устройство (Target). В рамках одной физической шины в конкретный момент может происходить только одна транзакция. Если физических шин несколько, то транзакции на них могут выполняться одновременно, если пути прохождения данных не пересекаются. Устройство, ставшее инициатором обмена и взявшее на себя временное управление шиной, называется Bus Master. Решение о передаче управления шиной принимает арбитр данной шины. Механизм Bus Mastering фактически заменяет механизм с выделенным контроллером DMA: каждое устройство самостоятельно осуществляет доступ к системной памяти, выполняя все функции контроллера DMA. Фазы транзакции: 1). фаза адресации, в рамках кот. инициатор обращается к целевому устр. с пом. адреса. 2). адресуемое устр., кот. определило принадл. адреса своим ресурсам, сообщает об этом сигналом DEVSEL# (на его появление отведено 3 такта – иначе аварийная ситуация). 3). получив сигнал DEVSEL#, инициатор готовит внутр. буферы с обмену и выставляет IRDY# по готовности. При выполнении записи в след. такте на AD поступает 1-ая группа данных. 4). целевое устр. по готовности выставляет TRDY# и выставляет первую группу данных при выполнении чтения. 5). конец транзакции по инициативе: инициатора – снятие сигнала FRAME#; целевого устр. – сигнал STOP#; арбитра – снятие сигнала GNT#. Арбитр - мост, обрабатывающий запросы от устройств на доступ к шине и отслеживающий соблюдение протокола обмена.

Для контроля достоверности передаваемых данных в шине PCI есть механизм четности (parity). Сигнал PAR – признак нечетного количества единиц на линиях AD [31:0] и C/BE#[3:0]. Cигнал вырабатывается устройством, которое управляет шиной AD. Задержка сигнала PAR составляет один такт для того, чтобы устройство успело подсчитать количество пришедших бит. В случае обнаружения нарушения четности в фазе данных приемник вырабатывает сигнал PERR# (с задержкой в один такт) и выставляет бит 15 в регистре состояния. Для фазы адреса проверку четности выполняет целевое устройство, при ошибке вырабатывается сигнал – SERR#, выставляется бит 14 в регистре состояния.

6). Шина pci: механизмы доступа к устройствам, особенности адресации устройств, особенности механизма прерываний устройств pci.

Есть 4 механизма доступа к устройствам со стороны хоста или других устройств:

1). обращение к области памяти или портов, выделенных устройству; 2).обращение к конфигурационным регистрам; 3). широковещательные сообщения ко всем устройствам шины; 4). механизм обмена сообщениями.

Для подачи сигналов хосту устройства применяют механизм прерываний: маскируемые (INTx или MSI); немаскируемые; системные (SMI).

Адресация устройств: память. Адрес памяти может быть 32- || 64-битным, он зависит не от разрядности мультиплексированной шины AD, а от текущей адресации в системе (режима работы процессора). Физический адрес передается по линиям AD[31:2] или AD[63:2]. Линии AD[1:0] задают порядок изменения адресов в пакете:

  • 00 – линейный инкремент (+4 для 32-битной, +8 для 64-битной шины данных)

  • 01, 11 – резерв

  • 10 – сворачивание адресов с учетом строки кэша.

Размер строки кэша хранится в конфиг. регистре Cache Line Size.

Адресация устройств: порты. Адрес портов в архитектуре x86 – 32-битный, но используются только 16 младших бит. Адрес двойного слова передается по линиям AD[31:2]. Линии AD[1:0] определяют байты, подлежащие маскированию. Байт, на который указывает полный адрес, должен быть доступен (сброшен соответствующий бит линии C/BE#). Значащими являются только младшие 16 бит адреса (для архитектуры x86).

Устройства PCI могут подавать сигнал прерывания 4 способами:

  • Проводная сигнализация по линиям INTx# (стандартный PIC);

  • Устройство вводит сигнал прерывания, понижая уровень линии INTx#.

  • ЦП получает сигнал прерывания с вектором, соответствующий определенной линии IRQ (Interrupt request).

  • Обработчик прерывания (драйвер) обращается к устройству и проверяет, установлен ли в его регистрах сигнал запроса прерывания.

  • Если это было именно его устройство, драйвер сбрасывает сигнал прерывания программным способом и начинает обработку.

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

  • Сигнализация по линиям PME#;

  • Сигнализация фатальной ошибки SERR#;

  • Сигнализация с помощью сообщений (контроллеру APIC).

Линия SERR# вызывает немаскируемое прерывания NMI, сигнализирующее о серьезном сбое в системе. Другие источники прерываний обрабатываются контроллером прерываний.

Соседние файлы в папке шпоры к экзамену, 2ой семестр (Дудкин) [8890 вопросов]