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

moscow-airport.moscow.

PCI и PCI-X

Конфигурационное пространство мостов PCI

Заголовок конфигурационного пространства мостов PCI-PCI приведен на рисунке ниже. Регистры в диапазоне адресов 00–17h полностью совпадают с регистрами обычного устройства PCI и описывают поведение и состояние моста на первичной шине. Заметим, что бит 2 регистра команд (Bus Master Enable) управляет возможностью трансляции транзакций с вторичной шины на первичную. Если этот бит обнулен, то мост не должен на вторичной стороне отзываться как целевое устройство в транзакциях записи/чтения памяти и ввода-вывода, поскольку он не сможет транслировать эти транзакции на первичную шину. Регистры BAR описывают только область специфических (зависящих от реализации) регистров моста, к маршрутизации эти регистры отношения не имеют.

Маршрутизирующие свойства моста определяются следующими регистрами:

  • Primary Bus Number — номер первичной шины;
  • Secondary Bus Number — номер вторичной шины (это и номер моста);
  • Subordinate Bus Number — максимальный номер подчиненной шины;
  • I/O Base и I/O Limit — регистры, задающие начальный и конечный адрес пространства ввода-вывода устройств, расположенных за мостом. Эти регистры задают только старшие 4 бита 16-битного адреса ввода-вывода, так что гранулярность выделения адресов составляет 4 Кбайт;
  • I/O Limit Upper 16 Bits и I/O Base Upper 16 Bits — регистры старшей части адреса ввода-вывода, если используется 32-битная адресация ввода-вывода (на это указывают установленные биты 0 регистров I/O Base и I/O Limit);
  • Memory Base и Memory Limit — регистры, задающие начальный и конечный адрес пространства памяти, на которую отображены регистры ввода-вывода устройств, расположенных за мостом. Эти регистры задают только старшие 12 бит 32-битного адреса памяти, так что гранулярность выделения адресов составляет 1 Мбайт; 
  • Prefetchable Memory Base и Prefetchable Memory Limit — регистры, задающие начальный и конечный адрес «настоящей» (допускающей предвыборку) памяти устройств, расположенных за мостом. Эти регистры задают только старшие 12 бит 32-битного адреса памяти, так что гранулярность выделения адресов составляет 1 Мбайт;
  • Prefetchable Base Upper 32 Bits и Prefetchable Limit Upper 32 Bits — регистры старшей части адреса «настоящей» памяти, если используется 64-битная адресация (на это указывают установленные биты 0 регистров Prefetchable Memory Base и Prefetchable Memory Limit).

Регистр Secondary Status аналогичен обычному регистру состояния (Status), но его признаки относятся ко вторичной шине. Единственное отличие — бит 14 (Received System Error) в Secondary Status несет признак обнаружения сигнала SERR# на вторичном интерфейсе, а не его введения данным устройством.

Регистр Expansion ROM Base Address, как и для обычного устройства, задает положение ПЗУ расширения BIOS (если это ПЗУ присутствует в мосте).

Регистры Interrupt Line и Interrupt Pin относятся к прерываниям, вырабатываемым мостом (если таковые имеются). К линиям прерывания, транслируемым мостом, эти регистры отношения не имеют.

Регистр Bridge Control служит для управления работой моста и индикации невостребованных завершений отложенных транзакций:

 бит 0 — Parity Error Response Enable, разрешение мосту сигнализировать на вторичный интерфейс об обнаружении ошибки четности адреса и данных;
 бит 1 — SERR# Enable, разрешение трансляции сигнала SERR# со вторичного интерфейса на первичный (для трансляции должен быть установлен и одноименный бит в регистре команд);
 бит 2 — ISA Enable, разрешение поддержки адресации ввода-вывода для шины ISA (вычеркивания последних 768 байт из каждого килобайта диапазона адресов, заданного регистрами I/O Base и I/O Limit);
 бит 3 — VGA Enable, разрешение специальной поддержки VGA;
 бит 4 — резерв;
 бит 5 — Master-Abort Mode, поведение моста в случае, когда, транслируя транзакцию, он не получает ответа от целевого устройства: 0 — игнорировать эту ситуацию, возвращая при чтении FF…FFh и отбрасывая данные записи; 1 — сообщать инициатору транзакции условием TargetAbort, а если это невозможно (в случае отправленной записи), подавать сигнал SERR#;
 бит 6 — Secondary Bus Reset, подача сигнала RST# на вторичный интерфейс (когда бит сброшен, RST# на вторичном интерфейсе вырабатывается по RST# на первичном);
 бит 7 — Fast Back-to-Back Enable, разрешение генерации быстрых смежных транзакций на вторичном интерфейсе;
 бит 8 — Primary Discard Timer, таймер отбрасывания результатов отложенных транзакций, инициированных мастером с первичного интерфейса: 0 — ожидание 215тактов шины, 1 — 210. Отсчет начинается, когда результат отложенной транзакции подходит к голове очереди. Если результат не будет забран мастером (повтором транзакции) за указанное время, результат отбрасывается;
 бит 9 — Secondary Discard Timer, таймер отбрасывания результатов отложенных транзакций, инициированных мастером с вторичного интерфейса (аналогично предыдущему);
 бит 10 — Discard Timer Status, признак отбрасывания отложенных транзакций на любом интерфейсе;
 бит 11 — Discard Timer SERR# Enable, разрешение генерации SERR# (на первичном интерфейсе) по срабатыванию таймера отбрасывания;  биты [12:15] — резерв.

Регистр Secondary Latency Timer управляет поведением моста как мастера на вторичной шине, когда у него отбирают управление шиной (правда, отбирает он сам у себя, поскольку арбитр — часть моста).

Для больших систем с шасси расширения мост может иметь возможность нумерации шасси и слотов, для чего он должен иметь свойство с Capabilities ID = 04 (cм. рисунок ниже).

Регистр Expansion Slot характеризует положение и вторичную шину моста:

  • биты [4:0] — Expansion Slots Provided, число слотов на вторичной шине моста;
  • бит 5 — First in Chassis, признак первого моста в шасси расширения. Указывает и на наличие шасси и, следовательно, использование регистра номера шасси. Если в шасси имеется несколько мостов, то первым является либо мост с минимальным номером первичной шины (остальные будут для него подчиненными), либо с минимальным номером устройства (остальные будут того же ранга, но их вторичные шины будут иметь большие номера);
  • биты [7:6] — резерв. 

Регистр Chassis Number задает номер шасси, в котором находится данный мост (0 — шасси, на котором находится процессор, выполняющий конфигурирование).