Загрузка...

Структура конфигурационного адресного пространства


Может оказаться, что на одной плате существуют многофункциональные устройства. Пример, на звуковой карте есть очень много устройств: входной и выходной каналы, регулятор громкости, микшер и т.д. и т.п. А конфигурационное адресное пространство одно. Каждое из этих устройств независимо: микшер может быть, а может и не быть, также и регулятор. Т.е. на контроллере может быть несколько логических устройств.

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

Рис. 1. 72. Конфигурационное адресное пространство

Это те регистры КПУ, которые он должен отобразить в адресном пространстве (АП) СИ PCI. Эти регистры разделены на две большие части. К первой части относятся те регистры, которые используются в одном экземпляре для всего контроллера, а ко второй части – ячейки для каждого из устройств, подключаемых к контроллеру.

На контроллере есть общее адресное пространство, независимое от числа логических устройств и входящих в контроллер и части, которые дублируются на каждом из устройств. Существуют специальные команды, которые отображают эти части в общее адресное пространство, путем занесения номера логического устройства в специальную ячейку. В свою очередь каждая из этих частей делится на 3 типовых части. Первая часть – управление КПУ в целом; вторая часть зарезервирована; третья часть – регистры, определяемые производителем. Последние части: управление, определяемое производителем и конфигурация производителя, т.е. те данные, которые использует драйвер производителя.

Регистры конфигурационного адресного пространства

Рис. 1. 73. Регистры конфигурационного адресного пространства

Здесь используется последовательность байт в слове, называемая Big Endian (по младшему адресу выводится более важная информация, чем по старшему).

1. Vender ID – Идентификатор производителя. 0FFFFh – это признак того, что идентификатор производителя не определен, т.е. такого значения быть не может.

2. Device ID – идентификатор устройства, выделяемый производителем.

3. Revision ID – модификация устройства. Определяется производителем самостоятельно.

4. Header Type – тип заголовка. Имеет следующую структуру.

Структура Header Type

Рис. 1. 74. Структура Header Type

Если седьмой разряд равен, “1” – устройство многофункциональное, если – “0”, устройство не многофункциональное.

5. Class Code – Определяет тип устройства, необходимый для правильного выбора стандартного драйвера.

0Вh – базовый класс.

0Аh – подкласс устройства.

09h – тип программного интерфейса. Есть специальные приложения, в которых оговорены эти типы.

К базовым классам:

0 – устаревшие устройства.

1 – контроллер массовой памяти.

2 – сетевой контроллер.

3 – контроллер дисплея.

4 – мультимедийные устройства.

5 – контроллер памяти.

6 – мост.

7 – коммуникационный контроллер.

8 – BIOS.

9 – входное устройство.

10 – контроллер криптографического закрытия данных.

В – процессор.

С – последовательный контроллер.

D – беспроводный контроллер.

FF – устройство неопределенного класса, т.е. не может быть отнесено ни к одному из этих классов.

Загрузка...