Шина PCI Содержание:
PCI (Peripheral Component Interconnect bus) - шина для подсоединения периферийных устройств. Стала массово применяться для Pentium-систем, но используется и с 486 процессорами. Частота шины от 20 до 33 МГц, теоретически максимальная скорость 132/264 Мбайт/с для 32/64 бит. В современных материнских платах частота на шине PCI задается как 1/2 входной частоты процессора, т.е при частоте 66 MHz на PCI будет 33 MHz, при 75 MHz - 37.5 MHz. Параметры шины PCI, которыми можно управлять через программу SETUP из BIOS, приведены в разделе "Параметры BIOS". Имеет версии с питанием 5V, 3.3V и универсальную (с переключением линий +VI/O c 5V на 3,3V). Ключами являются пропущенные ряды контактов 12, 13 и 50, 51. Для слота с питанием 5V ключ расположен на месте контактов 50, 51, для 3,3 В - 12, 13, а для универсального - два ключа: 12, 13 и 50,51. 32-битный слот заканчивается контактами А62/В62, 64-битный - А94/В94. Слот PCI самодостаточен для
подключения любого контроллера (VLB не работала без ISA), на системной плате может сосуществовать с
любой из других шин ввода-вывода. Процессор через так называемые мосты (PCI Bridge) может быть подключен к нескольким каналам PCI, обеспечивая возможность одновременной передачи данных между независимыми каналами PCI (возможно только в спецификации 2.1). Автоконфигурирование устройств (выбор запросов прерывания, каналов DMA) поддерживается средствами BIOS материнской платы по образу и подобию стандарта Plug & Play. В настоящее время действует спецификация PCI 2.1. Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 восьмибитных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, расположенным в его пространстве ввода-вывода. На PCI определены два основных вида устройств - инициатор (по ГОСТ - задатчик), т.е. устройство, получившее от арбитра шины разрешение на захват ее и устройство назначения, цель (target) с которым инициатор выполняет цикл обмена данными. Сигналы шины PCIЗнак - (минус) перед названием сигнала означает, что активный уровень этого сигнала логический ноль, обозначение {XX:0} означает группу сигналов с номерами от 0 до XX. AD{31:0} - мультиплексированная шина адреса/данных. Адрес передается по сигналу - FRAME, в последующих тактах передаются данные. -C/ BE{3:0} - команда/разрешение обращения к байтам. Команда, определяющая тип очередного цикла шины (чтение-запись памяти, ввода/вывода или чтение/запись конфигурации, подтверждение прерывания и другие) задается четырехбитным кодом в фазе адреса по сигналу - FRAME. -FRAME - индикатор фазы адреса (иначе - передача данных). -DEVSEL - выбор инициатором устройства назначения. -IRDY - готовность инициатора к обмену данными. -TRDY - готовность устройства назначения к обмену данными. -STOP - запрос устройства назначения к инициатору на останов текущей транзакции. -LOCK - используется для установки, обслуживания и освобождения захвата ресурса на PCI. -REQ {3:0} - запрос от PCI-устройства на захват шины (для слотов 3:0). -GNT {3 0} - разрешение мастеру на использование шины. PAR - общий бит четности для линий AD{31:0} и C/BE{3:0}. -ParityER - сигнал об ошибке по четности (от устройства, ее обнаружившего). -RST - < ffb font size="3" face="Times New Roman">сброс всех устройств. IDSEL - выбор устройства назначения в циклах считывания и записи конфигурации. -SERR - системная ошибка, активизируется любым устройством PCI и вызывает немаскируемое прерывание процессора (NMI). -REQ64 - запрос на 64-битный обмен. -ASK64 - подтверждение 64-битного обмена. -INTR A,B,C,D - линии запросов прерывания, направляются на доступные линии IRQ BIOS компьютера. Запрос по низкому уровню допускает разделяемое использование линий прерывания. Clock - сигнал синхронизации на тактовой частоте шины. Test Clock, -TSTRES, TestDO, TestDI - сигналы для тестирования адаптеров по интерфейсу JTAG (на системной плате обычно не задействованы). TSTMSLCT - перевод в режим тестирования. Разъем
шины PCI
*12, 13 - ключ для 3,3V **50,51 - ключ для 5V Циклы шиныПо сигналам C/BE (от C/BE3 до C/BE0) во время фазы передачи адреса определяется тип цикла передачи данных.
Подтверждение прерывания (0000)Контроллер прерываний автоматически распознает сигнал INTA и реагирует на него передачей вектора прерывания по шине AD. Специальный цикл (0001)
Чтение порта (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 Используется самим устройством Примечания:
Множественное чтение памяти (1100)Это расширение обычного цикла чтения памяти. Используется для чтения больших блоков памяти без кэширования. Двойной цикл адреса
(1101)
Двойной цикл адреса необходим в том случае, если необходимо передать 64-х разрядный адрес в версии PCI с 32-х разрядной адресной сетке. В первом цикле передаются четыре младших байта адреса, затем четыре старших байта. Во втором цикле необходимо также передать команду, определяющую тип устройства, чей адрес выставлен (порт ввода/вывода, память и т.д.). Собственно PCI поддерживает 64 разряда адреса для портов ввода/вывода, но в PC на процессорах архитектуры от Intel такое адресное пространство ffb не поддерживается (не позволяет сам процессор). Временные диаграммы шины PCI___ ___ ___ ___ ___ ___ CLK ___| |___| |___| |___| |___| |___| |___ _______ _________ FRAME |_________________________________| ______ _______ ______ ______ ______ AD -------<______><_______><______><______><______>--- Адрес Данные1 Данные2 Данные3 Данные4 ______ _______________________________ C/BE -------<______><_______________________________>--- Команда Сигнал разрешения передачи байта ____________ ___ IRDY |_________________________________| _____________ ___ TRDY |________________________________| ______________ ___ DEVSEL |_______________________________| Цикл передачи данных на PCI, включает 4 фазы передачи данных, без тактов ожидания. Данные передаются по переднему фронту сигнала CLK. [1] [2] [3] ___ ___ ___ ___ ___ ___ ___ ___ CLK ___| |___| |___| |___| |___| |___| |___| |___| |__ _______ _________ FRAME |________________________________________________| A B C ______ ______________ ______ _____________ AD -------<______>---------<______________><______><_____________>--- Адрес Данные1 Данные2 Данные3 ______ ______________________________________________ C/BE -------<______><______________________________________________>--- Команда Сигнал разрешения передачи байта Ожидание ____________ _____ ___ IRDY |__________________________________| |_______| Ожидание Ожидание ______________________ ______ ___ TRDY |_______| |_______________________| ______________ ___ DEVSEL |______________________________________________| Цикл передачи данных на PCI включает 3 фазы передачи данных с тактами ожидания. Данные передаются по переднему фронту сигнала CLK.
|