Железо ПК
Для начинающих пользователейДля любопытных пользователей
Для продвинутых пользователей
Трюки
Базовые операции с системной платойНастройка системной платы
Процессор
Память
Жесткие диски
Производительность жестких дисков
Видео
Устройства ввода/вывода
Загрузка
Настройка нового компьютера
Аппаратные интерфейсы ПК
ВведениеПараллельный интерфейс— LPT-порт
Последовательный интерфейс — СОМ-порт
Беспроводные интерфейсы
Последовательные шины USB и FireWire
Шина SCSI
Шины и карты расширения
Интерфейсы электронной памяти
Специализированные интерфейсы периферийных устройств
Интерфейсы устройств хранения
Интерфейсы компьютерных сетей
Вспомогательные последовательные интерфейсы и шины
Архитектурные компоненты IBM 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].