КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Шины и карты расширения



6.2. Шина PCI

203

Для обращения к устройству, находящемуся на ненулевой шине, используется цикл типа 1. Здесь главный мост передает адресную часть регистра CONGIG_ADDRESS на главную шину PCI, обнуляя старшие биты (31:24) и устанавливая в битах 1:0 признак типа «01» (рис. 6.9, в). Мост, опознавший номер подключаемой им шины, передает транзакцию на эту шину, декодируя поле номера устройства в позици¬онный код (как это делал главный мост для своей шины) и обнуляя биты AD[1:0].
31
30 24
23
16
15
11
10

8
7

2
10
1
Резерв (0)
Номер шины

Номер устройства


Номер функции


Адрес регистра

00
а











31



11
10

8
7

2
10

Позиционный (только один Е
код выборки сигнала IDSEL бит может быть единичным)


Номер функции


Адрес регистра

00
б











31
24
23
16
15
11
10

8
7

2
10
0
Номер шины

Номер устройства


Номер функции


Адрес регистра

00
Рис. 6.9. Адресация конфигурационных циклов: а — формат регистра CONFIG_ADDRESS, б — формат адреса на шине в цикле типа 0, в — формат адреса на шине в цикле типа 1
Если конфигурационный цикл не воспринимается ни одним из устройств, мосты могут эту ситуацию отрабатывать двояко: фиксировать отсутствие устройства (сработает Master Abort) или же выполнять операции вхолостую. Однако в любом случае чтение конфигурационного регистра несуществующего устройства (функ¬ции) должно возвращать значение FFFFFFFFh (это будет безопасной информа¬цией, поскольку даст недопустимое значение идентификатора устройства). Если главный мост подключает несколько равноранговых шин (peer buses), то одна из них назначается условно главной, так что вышеописанная логика сохраняется. Чтобы не заботиться об изучении реальной топологии шин, для конфигурацион¬ных обращений программам удобно использовать вызовы PCI BIOS, которые имеются для всех режимов процессора (оптимизировать быстродействие здесь не приходится, поскольку эти обращения выполняются не так уж и часто).
Специальный цикл генерируется при записи в CON FI G_DATA, когда в регистре CONG I G_ ADDRESS все биты [15:8] единичные, [7:0] нулевые, номер шины, на которой форми¬руется цикл, задается битами [23:16].

Hosted by uCoz