Страница 4 из 6 Циклы шиныПо сигналам C/BE (от C/BE3 до C/BE0) во время фазы передачи адреса определяется тип цикла передачи данных. C/BE | Команда | 0000 | Interrupt Acknowledge (подтверждение прерывания) | 0001 | Special Cycle (специальный цикл) | 0010 | I/O Read (чтение порта) | 0011 | I/O Write (запись в порт) | 0100 | reserved (резервировано) | 0101 | reserved (резервировано) | 0110 | Memory Read (чтение памяти) | 0111 | Memory Write (запись в память) | 1000 | reserved (резервировано) | 1001 | reserved (резервировано) | 1010 | Configuration Read (чтение конфигурации) | 1011 | Configuration Write (запись конфигурации) | 1100 | Multiple Memory Read (множественное чтение памяти) | 1101 | Dual Address Cycle (двойной цикл адреса) | 1110 | Memory-Read Line (чтение памяти) | 1111 | Memory Write and Invalidate (запись в память и проверка) | Подтверждение прерывания (0000) Контроллер прерываний автоматически распознает сигнал INTA и реагирует на него передачей вектора прерывания по шине AD. Специальный цикл (0001) AD15-AD0 | Описание | 0x0000 | Processor Shutdown (процессор прекращает работу) | 0x0001 | Processor Halt (останов процессора) | 0x0002 | x86 Specific Code (специальный код для машин на архитектуре Intel x86) | 0x0003 to 0xFFFF | Reserved (зарезервировано) | Чтение порта (0010) и запись в порт (0011) Порты ввода/вывода на шине PCI могут быть 8 или 16-ти разрядными, хотя собственно стандарт на шину PCI позволяет иметь 32-х разрядное адресное пространство. Это вызвано тем, что на компьютерах с архитектурой Intel x86, адрес порта может иметь не более 16 разрядов. Пока и 16-ти разрядный адрес порта не может быть использован, так как карты на шине ISA могут декодировать только 10 разрядов. Адресное пространство конфигурации доступно по адресам портов 0x0CF8 (Адрес) и 0x0CFC (Данные), причем адрес должен быть записан первым. Чтение памяти (0110) и запись в память (0111) По шинам AD передается адрес двойным словом (четыре байта). Сигналы AD0 и AD1 декодировать не требуется. Истинность данных определяется сигналами C/BE. Чтение конфигурации (1010) и запись конфигурационных данных (1011) Эти операции выполняются для конфигурационного пространства PCI карты. Размер области конфигурации составляет 256 байт, причем читать/записывать в нее можно только в 32-х разрядной сетке, т.е. двойными словами. Поэтому AD0 и AD1 должны быть установлены в 0, AD2-7 содержать адрес двойного слова, AD8-10 используются для выбора адресуемого устройства, а оставшиеся шины адреса игнорируются. Адрес/Бит 32 16 15 0
00 Unit ID | Manufacturer ID 04 Status | Command 08 Class Code | Revision 0C BIST | Header | Latency | CLS 10-24 Регистр адреса 28 Резерв 2C Резерв 30 Базовый адрес ПЗУ устройства 34 Резерв 38 Резерв 3C MaxLat|MnGNT | INT-pin | INT-line 40-FF Используется самим устройством
Примечания: -
Unit ID - идентификационный номер устройства -
Manufacturer ID - идентификатор производителя устройства -
Status - состояние -
Class Code - код класса устройства -
BIST - Built-In Self Test - встроенный тест Множественное чтение памяти (1100) Это расширение обычного цикла чтения памяти. Используется для чтения больших блоков памяти без кэширования. Двойной цикл адреса (1101) Двойной цикл адреса необходим в том случае, если необходимо передать 64-х разрядный адрес в версии PCI с 32-х разрядной адресной сетке. В первом цикле передаются четыре младших байта адреса, затем четыре старших байта. Во втором цикле необходимо также передать команду, определяющую тип устройства, чей адрес выставлен (порт ввода/вывода, память и т.д.). Собственно PCI поддерживает 64 разряда адреса для портов ввода/вывода, но в PC на процессорах архитектуры от Intel такое адресное пространство не поддерживается (не позволяет сам процессор). |