Чтение онлайн

ЖАНРЫ

Шины PCI, USB и FireWire

Гук Михаил Юрьевич

Шрифт:

• бит 14 – Signaled System Error – устанавливается устройством, подавшим сигнал SERR#;

• бит 15 – Detected Parity Error – устанавливается устройством, обнаружившим ошибку данных.


Регистр Cache Line Size (RW) служит для задания размера строки кэша (0-128, допустимые значения 2n, иные трактуются как 0). По этому параметру инициатор определяет, какой командой чтения воспользоваться (обычное чтение, чтение строки или множественное чтение). Ведомое устройство использует этот параметр для поддержки пересечения границ строк при пакетных обращениях к памяти. По сбросу регистр обнуляется.

Регистр Latency Timer (RW) задает значение

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

Регистр BIST (RW) служит для управления встроенным самотестированием (Built-In Self Test). Назначение бит регистра:

• бит 7 – возможность BIST;

• бит 6 – запуск теста: запись единицы инициирует тест, по окончании устройство сбрасывает бит (тест должен быть завершен не более чем за 2 с);

• биты [5:4] – резерв (0);

• биты [3:0] – код завершения теста: 0 – тест прошел успешно.

Регистр Card Bus CIS Pointer (необязательный) содержит указатель на структуру описателя Card Bus для комбинированного устройства PCI + Card Bus.

Регистр Interrupt Line (RW) хранит номер входа контроллера прерывания для используемой линии запроса (0-15 – IRQ0-IRQ15, в системах с APIC может иметь и большее значение; 255 – неизвестный вход или не используется).

Регистр Interrupt Pin (RO) задает линию, используемую для запроса прерывания: 0 – не используется, 1 – INTA#, 2 – INTB#, 3 – INTC#, 4 – INTD#, 5-FFh – резерв.

Регистр MinGNT (RO) задает минимальное время, на которое ведущему устройству должно предоставляться управление шиной из расчета на частоту 33 МГц, в интервалах по 0,25 мкс.

 

Регистр MaxLat (RO) задает максимально допустимую задержку предоставления ведущему устройству доступа к шине, в интервалах по 0,25 мкс (0 – нет специальных требований).

Регистры Subsystem ID (RO, задается производителем) и Subsystem Vendor ID (RO, производитель получает в PCI SIG) хранят идентификаторы, позволяющие точно идентифицировать карты и устройства (в системе могут быть установлены несколько карт с совпадающими идентификаторами устройства и производителя Device ID и Vendor ID). В поле 2Ch ставится идентификатор производителя карты PCI (может совпадать со значением в поле 0, если фирма выпускает и микросхемы, и карты).

Регистр Capability Pointer (CAP_PTR) содержит указатель на цепочку блоков регистров свойств функции, представленных в конфигурационных регистрах. Каждый блок представляет собой набор регистров, начинающийся с границы двойного слова (в указателе биты [1:0] сброшены). Каждый блок начинается с байта идентификатора типа свойства (CAPID, определенный PCI SIG), за которым следует указатель на следующий блок (нулевой указатель является признаком конца списка блоков), после чего расположены байты описаний самих свойств. Через CAPPTR, например, отыскиваются регистры управления энергопотреблением (если есть), регистры AGP, некоторые регистры хост-контроллера USB 2.0 и ряд других.

Регистры Base Address Registers (BAR) описывают области памяти и портов ввода-вывода. Программными манипуляциями с регистрами можно определить размеры областей. Для областей памяти и портов описания различаются: область памяти (размером не более 2 Гбайт) описывается следующим образом: • бит 0 = 0 – признак памяти; • биты [2:1] – тип

адресации: 00 – 32-битная адресация, 10 – 64-битная (в этом случае регистр расширяется следующим за ним 4-байтным словом, 64-битная адресация обязательна для PCI–X), 01 и 11 – резерв (01 в прежних версиях предназначались для памяти в пределах первого мегабайта); • бит 3 (Prefetchable) – признак «настоящей» памяти, то есть допускающей предвыборку; • биты [31:4] – базовый адрес памяти; • область портов (размером до 256 байт) описывается следующим образом: • бит 0 = 1 – признак области портов; • бит 1 = 0 (резерв); • биты [31:2] – базовый адрес блока портов.

Регистр Expansion ROM Base Address управляет адресацией ПЗУ программной поддержки устройства. Размер ПЗУ определяется так же, как и в регистрах базовых адресов (см. выше). Обращение к ПЗУ возможно лишь при разрешенном использовании памяти (бит 1 в регистре команд). Назначение бит регистра:

• бит 0 – разрешение использования ПЗУ;

• биты [1:10] – резерв;

• биты [11:31] – базовый адрес. •

Специальные регистры устройств

PCI–X Устройства PCI–X имеют дополнительные регистры (рис. 5.2), положение которых определяется через список свойств (Capability ID = 07). Регистры для ECC-контроля появились только в версии PCI–X 2.0.


Регистр PCI–X Status содержит идентификатор функции – ее адрес в иерархии конфигурационного пространства, который устройство «подсматривает» на шине, при выполнении операции конфигурационной записи. Этот идентификатор требуется устройству для передачи его в фазе атрибутов. Кроме того, в регистре имеются признаки возможностей устройства, а также индикаторы ошибок, связанных с расщепленными транзакциями. Назначение битов регистра PCI–X Status:

• биты [2:0] (RO) – Function Number, номер функции;

• биты [7:3] (RO) – Device Number, номер устройства, который оно узнает по значению AD[15:11] в фазе адреса конфигурационной записи, обращенной к данному устройству, выбранному линией IDSEL (после сброса устанавливается 1F);

• биты [15:8] (RO) – Bus Number, номер шины, который оно узнает по значению AD[7:0] в фазе атрибутов конфигурационной записи, обращенной к данному устройству (после сброса устанавливается FF);

• бит 16 (RO) – 64-bit Device, признак 64-битной шины AD;

• бит 17 (RO) – 133 MHz Capable, признак поддержки частоты 133 МГц (иначе 66 МГц);

• бит 18 (RWC) – Split Completion Discarded, признак отброшенного завершения расщепленной транзакции (запросчик его отверг);

• бит 19 (RWC) – Unexpected Split Completion, признак неожиданного получения завершения расщепленной транзакции;

• бит 20 (RO) – Device Complexity, признак сложного устройства (моста);

• биты [22:21] (RO) – Designed Maximum Memory Read Byte Count, максимальное число байт в последовательности, инициируемой устройством (его возможности): 0 – 512 байт, 1 – 1024, 2 – 2048, 3 – 4096;

• биты [25:23] (RO) – Designed Maximum Outstanding Split Transactions, предельное число незавершенных расщепленных транзакций: 0…7 – 1, 2, 3, 4, 8, 12, 16, 32 транзакции;

• биты [28:26] (RO) – Designed Maximum Cumulative Read Size, максимальный суммарный объем данных чтения памяти, ожидаемых устройством (запросы отправлены, ответы еще не получены): 0…7 – 8, 16, 32…1024 квантов ADQ

• бит 29 (RWC) – Received Split Completion Error Message, признак получения сообщения об ошибке завершения расщепленной транзакции;

Поделиться с друзьями: