PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Как сделать подарок коллеге на 8 марта www.go68.ru.

PCI и PCI-X

Расширенное конфигурационное пространство PCI-X

В спецификации PCI-X 2.0 введено расширение конфигурационного пространства одной функции до 4096 байт. При этом стандартный 256-байтный набор регистров и формат заголовка сохраняется, а дополнительное пространство используется для нужд устройства, включая и размещение описаний дополнительных возможностей. Для доступа к расширенному конфигурационному пространству может использоваться как расширенный вариант механизма 1 (см. далее) с передачей дополнительных 4 бит номера регистра по линиям AD[27:24], так и отображение конфигурационных регистров на адрес памяти. В случае отображения на адрес памяти иерархический адрес конфигурационных регистров всех устройств PCI отображается на биты A[27:0], базовый адрес (A[63:28]) зависит от реализации системы и сообщается операционной системе. Все конфигурационные регистры всех устройств всех шин PCI требуют для отображения в памяти область размером 256 Мбайт. Схема отображения простая и логичная: 

  • A[27:20] — Bus[7:0], номер шины;
  • A[19:15] — Device[4:0], номер устройства;
  • A[14:12] — Function[2:0], номер функции;
  • A[11:8] — Extended Register [3:0], расширение номера регистра;
  • A[7:0] — Register[7:0], номер регистра.

Устройство должно воспринимать и отрабатывать конфигурационные обращения, выполненные любым способом. При этом разработчик устройства должен помнить, что при попадании устройства в систему с обычной шиной PCI программно доступными окажутся лишь первые 256 байт конфигурационного пространства функции, так что в расширенное пространство следует помещать только те регистры, которые не используются в стандартном режиме работы PCI.

Для расширенного пространства введен и новый формат описания свойств с учетом «длинного» (10-битного) адреса регистра. Расширенный список свойств должен начинаться с адреса 100h (или же там должна быть структура, не позволяющая трактовать этот фрагмент как начало цепочки). Каждое свойство начинается с 32-битного идентификатора, за которым располагаются регистры, описывающие данное свойство. 32-разрядный идентификатор расширенных возможностей — PCI Extended Capability ID имеет следующую структуру:

  • биты [15:0] — Capability ID, идентификатор свойства;
  • биты [19:16] — Capability Version Number, номер версии свойства;
  • биты [31:20] — Next Capability Offset, смещение следующего идентификатора (относительно нулевого регистра).