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

PCI и PCI-X

Адресация ввода/вывода

В командах обращения к портам ввода/вывода для адресации любого байта используются (декодируются) все линии AD[31:0]. При этом биты адреса AD[31:2] указывают на адрес двойного слова, к которому принадлежат передаваемые данные, а младшие биты адреса AD[1:0] определяют байты, которые могут быть разрешены сигналами C/BE[3:0]#. Для транзакций ввода/вывода на PCI правила несколько иные, чем для обращений к памяти: если передается хотя бы один байт, то всегда должен быть разрешен и тот байт, на который указывает адрес. При AD[1:0] = 00 допустимо C/BE[3:0]# = xxx0 или 1111, при AD[1:0] = 01 — C/BE[3:0]# = xx01 или 1111, при AD[1:0] = 10 — C/BE[3:0]# = x011 или 1111, при AD[1:0] = 11 — C/BE[3:0]# = = 0111 (передается лишь байт 3) или 1111 (ни один байт не разрешен). Эти циклы формально тоже могут быть пакетными, хотя реально эта возможность практически не используется. Для адресации портов на шине PCI доступны все 32 бита адреса, но процессоры x86 могут использовать только младшие 16 бит.

Для транзакций ввода/вывода на PCIX распространяются те же взаимосвязи сигналов C/BE[3:0]# и те же адреса, что и для одиночных (DWORD) транзакций с памятью, приведенные в предыдущем разделе. Эти транзакции всегда одиночные (DWORD).