♦ Vendor ID
— идентификатор производителя микросхемы PCI, назначенный PCI SIG. Идентификатор FFFFh является недопустимым; это значение должно возвращаться при чтении конфигурационного пространства несуществующего устройства.♦ Revision ID
— версия продукта, назначенная производителем. Используется как расширение поля Device ID
.♦ Header Type
— тип заголовка (биты 6:0), определяющий формат ячеек в диапазоне 10-3Fh и несущий признак многофункционального устройства (если бит 7=1). На рисунке приведен формат заголовка типа 0, относящийся именно к устройствам PCI. Тип 01 относится к мостам PCI-PCI; тип 02 относится к мостам для CardBus.♦ Class Code
— код класса, определяющий основную функцию устройства, а иногда и его программный интерфейс (см. п. 6.2.13). Старший байт (адрес 0Bh) определяет базовый класс, средний — подкласс, младший — программный интерфейс (если он стандартизован).Остальные поля заголовка являются регистрами устройств
, допускающими как запись, так и чтение.♦ Command
(RW) — регистр команд, управляющий поведением устройства на шине PCI. Регистр допускает как запись, так и чтение. После аппаратного сброса все биты регистра (кроме специально оговоренных исключений) обнулены. Назначение бит регистра команд: • бит 0 — IO Space
— разрешение ответа на обращения к пространству ввода-вывода; • бит 1 — Memory Space
— разрешение ответа на обращения к пространству памяти; • бит 2 — Bus Master
— разрешение работы инициатором (в режиме управления шиной); • бит 3 — Special Cycles
— разрешение реакции на специальные циклы; • бит 4 — Memory Write and Invalidate enable
— разрешение использовать команды «запись с инвалидацией» при работе инициатором (если бит обнулен, то вместо этих команд должна использоваться обычная запись в память); • бит 5 — VGA palette snoop
— разрешение слежения за записью в регистр палитр; • бит 6 — Parity Error Response
— разрешение нормальной реакции (вырабатывать сигнал PERR#
) на обнаруженную ошибку паритета (если бит обнулен, то устройство должно только фиксировать ошибку в регистре состояния, в то время как генерация бита паритета устройством выполняется всегда); • бит 7 — Stepping Control
— возможность пошагового переключения (address/data stepping) линий (если устройство никогда этого не делает, бит регистра «запаян» в «0», если делает всегда — в «1», устройство с такой возможностью по сбросу устанавливает этот бит в «1»); • бит 8 — SERR# Enable
— разрешение генерации сигнала ошибки SERR#
(ошибка паритета адреса сообщается, когда этот бит и бит 6=1); • бит 9 — Fast Back-to-Back Enable
(необязательный) — разрешение ведущему устройству использовать быстрые смежные обращения к разным устройствам (если бит обнулен, быстрые обращения допустимы лишь для транзакций с одним агентом); • биты 10–15 — резерв.
♦ Status
— регистр состояния, допускающий кроме чтения еще и запись. Однако запись выполняется специфично — с ее помощью можно только обнулять биты, но не устанавливать. Биты, помеченные как RO, допускают только считывание. При записи в позиции обнуляемых бит устанавливаются единичные значения. Назначение бит регистра состояния: • биты 0–3 — резерв;
• бит 4 — Capability List
(RO, необязательный) — указание на наличие указателя новых возможностей (смещение 34h в заголовке); • бит 5 — 66 MHz Capable
(RO, необязательный) — поддержка частоты 66 МГц; • бит 6 — резерв;
• бит 7 — Fast Back-to-Back Capable
(RO, необязательный) — поддержка быстрых смежных транзакций (fast back-to-back) с разными устройствами; • бит 8 — Master Data Parity Error
(только для устройств с прямым управлением) — устанавливается, когда устройство с установленным битом 6 в регистре команд, являясь инициатором, само ввело (при чтении) или обнаружило (при записи) сигнал PERR#
; • биты 10:9 — DEVSEL Timing
— скорость выборки: 00 — быстрая, 01 — средняя, 10 — низкая (определяет самую медленную реакцию DEVSEL#
на все команды, кроме Configuration Read
и Configuration Write
); • бит 11 — Signaled Target Abort
—устанавливается целевым устройством, когда оно отвергает транзакцию; • бит 12 — Received Target Abort
— устанавливается инициатором, когда он обнаруживает отвергнутую транзакцию; • бит 13 — Received Master Abort
— устанавливается ведущим устройством, когда оно отвергает транзакцию (кроме специального цикла); • бит 14 — Signaled System Error
— устанавливается устройством, подавшим сигнал SERR#; • бит 15 — Detected Parity Error
— устанавливается устройством, обнаружившим ошибку паритета.