НГТУ - Интерфейсы АСОиУ

 







 
 Главная
 Теория
 Практика
 Ссылки
 Гостевая
 Обратная связь

 

 

 

 


 

 




Интерфейс РСI: Команды шины.

Команды шины PCI определяются значениями бит С/ВЕ|3:0|  в фазе адреса в соответствии с табл.1.

Адресация памяти, портов и конфигурационных регистров различна. Байты шины AD, несущие действительную информацию, выбираются сигналами С/ВЕ|3:0| в фазах данных (внутри пакета эти сигналы могут менять состояние). В циклах обращения к памяти адрес, выровненный по границе двойного слова, передается по линиям AD|31:2|, линии AD|1:0| задают порядок чередования адресов в пакете:  00 - линейное инкрементирование;  01 - чередование адресов с учетом длины строки кэш-памяти; 1х - зарезервировано. 

В циклах обращения к портам ввода/вывода для адресации любого байта используются все линии AD|31:0|.

В циклах конфигурационной записи/считывания устройство выбирается индивидуальным сигналом IDSEL#, конфигурационные регистры выбираются двойными словами, используя линии AD|7:2|, при этом АD|1:0|=00. Сигнал выборки IDSEL# воспринимается абонентом PCI только в фазе адреса, поэтому обычно в качестве него используют старшие биты адреса с позиционным кодированием адреса устройства. 

Таблица 1. Команды шины PCI  

С/ВЕ|3:0 |

Тип команды

0000

Interrupt Acknowledge - подтверждение прерывания

0001

 Special Cycle - специальный цикл

0010

 I/O Read - чтение порта ввода/вывода

0011

 I/O Write - запись в порт ввода/вывода

0100

 Резерв

0101

 Резерв

0110

 Memory Read - чтение памяти 

0111

 Memory Write - запись в память

1000

 Резерв

1001

 Резерв

1010

 Configuration Read - конфигурационное считывание

1011

 Configuration Write - конфигурационная запись

1100

 Multiple Memory Read - множественное чтение памяти

1101

 Dual Address Cycle - двухадресный цикл

1110

 Memory-Read Line -чтение строки памяти

1111

 Memory Write and Invalidate - запись с инвалидацией

  В команде "подтверждение прерывания" контроллер прерываний передает вектор прерывания по шине AD.

Специальный цикл декодируется содержимым линий AD|15:0| и используется для указания на отключение (Shutdown), останов (Halt) процессора или специфические функции процессора, связанные с кэшем и трассировкой. Этим состояниям соответствуют коды 0000, 0001 и 0002; коды 0003-FFFFh зарезервированы.

В командах чтения и записи портов ввода/вывода линии AD содержат адрес байта, причем декодированию подлежат и биты ADO и AD1 (несмотря на то, что имеются сигналы ВЕх#). Порты PCI могут быть 8- или 16-битными. Для адресации портов на шине PCI доступны все 32 бита адреса, но процессоры х86 могут использовать только младшие 16 бит. Порты с адресами 0CF8 и 0CFC зарезервированы под регистры адреса и данных для доступа к конфигурационному пространству. Обращение к порту данных приведет к генерации шинного цикла конфигурационного чтения или записи по предварительно записанному адресу.

В командах чтения и записи памяти шина АD содержит адреса двойных слов, и линии AD0, AD1 не должны декодироваться - на конкретные байты указывают сигналы С/ВЕ|3:0|#. 

Команды конфигурационного чтения и записи адресуются к конфигурационному пространству и обеспечивают доступ к 256-байтньм структурам. Обращение идет двойными словами. Структура содержит идентификатор устройства и производителя, состояние и команду, информацию об используемых ресурсах и ограничения на использование шины.

Множественное чтение памяти используется для чтения больших блоков памяти без кэширования. 

Двухадресный цикл применяется, когда физическая шина имеет всего 32 бита адреса, а требуется передача с 64-битной адресацией. В этом случае младшие 32 бита адреса передаются в цикле данного типа, а за ним следует обычный цикл, определяющий тип обмена и несущий старшие 32 бита адреса. Шина PCI допускает 64-битную адресацию и портов ввода/вывода, правда, для процессоров х86 это бесполезно, но есть и другие процессоры и платформы, использующие PCI. 

Чтение строки памяти используется для чтения более чем двух 32-битных блоков данных (обычно чтение до конца строки кэша). В таком случае этот цикл обеспечивает обмен, более эффективный, чем цепочка обычных пакетных чтений. 

Запись с инвалидацией применяется при передачи как минимум одной строки кэша и позволяет обновлять содержимое основной памяти, экономя циклы обратной записи.  

Назначение сигналов приведено в табл. 2 (справочно). На одной шине PCI может быть не более пяти  устройств (следовательно, и слотов). Для подключения шины PCI к другим шинам применяются специальные аппаратные средства - мосты шины PCI (PCI Bridge). Главный мост (Host Bridge) используется для подключения PCI к системной шине (шине процессора или процессоров). Одноранговый мост (Peer-to-Peer Bridge) используется для соединения двух шин PCI. Две и более шины PCI применяются в мощных серверных платформах - дополнительные шины PCI позволяют увеличить количество подключаемых устройств. Для подключения шин ISA/EISA используются специальные мосты, входящие в чипсеты большинства системных плат. Каждый мост программируется - ему указываются диапазоны адресов пространств памяти и ввода/вывода, отведенные абонентам его шин. Если адрес целевого устройства текущей транзакции на одной шине (стороне) моста относится к шине противоположной стороны, мост перенаправляет транзакцию на соответствующую шину и выполняет действия по согласованию протоколов этих шин. Таким образом, совокупность мостов, расположенных вокруг шины PCI, выполняет маршрутизацию (routing) обращений по всем связанным шинам. В общем случае считается, что устройство с конкретным адресом может присутствовать только на одной из шин данного компьютера, а на каком именно, "знают" запрограммированные мосты. Решать задачу маршрутизации призван и сигнал DEVSEL#, играющий важную роль в протоколе шины PCI. Обращения, не востребованные абонентами PCI, обычно перенаправляются на шину ISA.

 Таблица 2. Сигналы шины PCI (справочно)

Сигнал   

 Назначение

AD|31:0 |   

Address/Data - мультиплексированная шина адреса/данных. Адрес передается в начале транзакции, в последующих тактах передаются данные

С/ВЕ|3:0|#   

 Command/Byte Enable - команда/разрешение обращения к байтам. Команда, определяющая тип очередного цикла шины (чтение/запись памяти, ввод/вывод или конфигурационное чтение-запись, подтверждение прерывания и другие), задается четырехбитным кодом в фазе адреса

FRAME#   

 Кадр- Введением сигнала отмечается начало транзакции (фаза адреса), снятие сигнала указывает на то, что последующий цикл передачи данных является последним в транзакции

DEVSEL#   

 Device Select - устройство выбрано (ответ целевого устройства на адресованную к нему транзакцию)

IRDY#   

 Initiator Ready - готовность инициатора к обмену данными

TRDY#   

Target Ready - готовность целевого устройства к обмену данными

STOP#   

 Запрос целевого устройства к инициатору на останов текущей транзакции

LOCK#   

 Используется для установки, обслуживания и освобождения захвата ресурса на PCI

REQ|3:0|#   

 Request - запрос от PCI-мастера на захват шины (для слотов 3:0)

GNT|3:0|#   

 Grant - предоставление мастеру управления шиной

PAR   

 Parity - общий бит паритета для линий AD| 31:0 | и С/ВЕ| 3-0 |

PERR#   

 ParityError - сигнал об ошибке паритета (от устройства, ее обнаружившего)

RST#   

 Reset - сброс всех регистров в начальное состояние

IDSEL#   

 Initialization Device Select - выбор устройства в циклах конфигурационного считывания и записи

SERR   

 System Error - системная ошибка, активизируется любым устройством PQ и вызывает NMI

REQ64#   

 Request 64 bit - запрос на 64-битный обмен

АСК64#   

 Подтверждение 64-битного обмена

INTRA#   

 INTRB# INTRC# INTRD# Interrupt А, В, С, D - линии запросов прерывания, циклически сдвигаются в слотах и направляются на доступные линии IRQ. Запрос по низкому уровню допускает разделяемое использование линий

CLK   

 Clock - тактовая частота шины, должна лежать в пределах 20-33 МГц, в PCI 2,1 допустима до 66,6 МГц

M66EN   

 66MHz_Enable - разрешение частоты синхронизации до 66 МГц, если все абоненты ее допускают (определен только начиная с PCI 2.1.)

SDONE   

 Snoop Done ~ сигнал завершенности цикла слежения для текущей транзакции. Низкий уровень указывает на незавершенность цикла слежения за когерентностью памяти и кэша. Необязательный сигнал, используется только абонентами шины с кэшируемой памятью

SBO#   

 Snoop Backoff - попадание текущего обращения к памяти абонента шины в модифицированную строку кэша. Необязательный сигнал, используется только абонентами шины с кэшируемой памятью при алгоритме обратной записи (WB)

TCK   

 Test Clock - синхронизация тестового интерфейса JTAG

TDI   

 Test Data Input - входные данные тестового интерфейса JTAG

TDO   

 Test Data Output - выходные данные тестового интерфейса JTAG

TMS   

 Test Mode Select - выбор режима для тестового интерфейса JTAG

TRST   

 Test Logic Reset - сброс тестовой логики

   

Назад

Содержание

Вперед