Основные характеристики и принципы функционирования PCI - шины
ОСНОВНЫЕ ХАРАКТЕРИСТИКИ И ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ PCI - ШИНЫPCI ( P eripheral C omponent I nterconnect bus)-шина – шина, применяемая для подсоединения периферийных устройств. Шина PCI - первая шина в архитектуре IBM PC, которая не привязана к этой архитектуре. Она является процессорно-независимой и применяется, например, в компьютерах Macintosh. Массовое применение получила в комплексе с Pentium-системами, но возможно её использование и с 486 процессорами
Имеет следующие основные характеристики:
- Частота шины колеблется в пределах от 20 до 33 МГц
- Теоретически максимальная скорость 132/264 Мбайт/с для 32/64 бит.
- Частота на шине PCI в современных материнских платах задается как 1/2 входной частоты процессора. Таким образом, при частоте 66 MHz на PCI-шине будет 33 MHz, при 75 MHz - 37.5 MHz.
- Имеет версии с питанием 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.
- Автоконфигурирование устройств - выбор запросов прерывания каналов DMA - поддерживается средствами BIOS материнской платы по образу и подобию стандарта Plug & Play.
- Поддержка "горячей" замены PCI устройств, называемой в стандарте как PCI Hot-Plug, позволяет добавлять/изымать PCI платы без выключения компьютера, что особенно необходимо для серверных платформ.
В стандарте PCI для каждого слота определено конфигурационное пространство размером до 256 восьмибитных регистров. Это пространство не приписано ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, которые расположены в его пространстве ввода-вывода. Процессор через так называемые мосты (PCI Bridge) имеет возможность подключения к нескольким каналам PCI. Тем самым обеспечивается возможность одновременной передачи данных между независимыми каналами PCI
На PCI определены два основных вида устройств - инициатор (задатчик) - устройство, получившее от арбитра шины разрешение на её захват, и устройство назначения - цель (target), с которым инициатор выполняет цикл обмена данными. В отличие от остальных шин, компоненты расположены на левой поверхности плат PCI-адаптеров, поэтому крайний PCI-слот обычно разделяет использование посадочного места с соседним ISA-слотом (Shared slot). Вообще, слот PCI способен обеспечить подключение любого контроллера на системной плате; он может сосуществовать с любой из других шин ввода-вывода. Система управления энергопотреблением для устройств на шине PCI позволяет управлять энергопотреблением как для внешних PCI плат, так и для встроенных на материнской плате устройств. Механизм управления подстроен под стандарт ACPI для облегчения управления энергопотреблением PCI устройств со стороны операционной системы
Основные модификации PCI-шин
Существует две основные модификации PCI-шин:
- PCI-X
- Compact PCI
Рассмотрим каждую из них в отдельности
1.PCI-X
Официальный взгляд Intel на PCI-X выглядит так: PCI-X хорошая шина, но жизнь ее будет недолговечной. Такая позиция связана с тем, что в то время Intel активно вела разработку собственной шины NGIO, которая должна была, согласно мнениям специалистов из Intel, обойти PCI-X по переспективности и производительности. Тем не менее летом 1999 года консорциум SIG по PCI принял спецификацию принципиально нового варианта шины PCI - PCI-X, обладающую превосходными техническими параметрами
Время покажет, кто победит, но очевидно, что только при поддержке PCI-X Intel в своих chipset она может найти широкое распространение, ведь до настоящего времени практически все интерфейсы, разрабатываемые Intel (AGP,PCI, USB) принимались компьютерной индустрией. В то же время активное участие таких крупных компаний как IBM, Compaq, Hewlett-Packard в разработке PCI-X дает новой шине существенные шансы на успех
Основные отличия PCI-X от PCI:
- тактовая частота шины до 133 MHz
- использование различных слотов для разных скоростей обмена данными; стандарт предусматривает 1 слот с частотой 133 MHz, 2 слота на 100 MHz, остальные слоты могут использоваться на частоты 33 и 66 MHz.
- значительно уменьшен временной отрезок, выделяемый на операции в PCI-X (все времена в наносекундах).
Параметр | 133 MHz PCI-X | 100 MHz PCI-X | 66 MHz PCI-X | 66 MHz обычная PCI | 33 MHz обычная PCI |
Tval (max) | 3.8 | 3.8 | 3.8 | 6 | 11 |
Tprop | 2.0 | 4.5 | 9.5 | 5 | 10 |
Tskew | 0.5 | 0.5 | 0.5 | 1 | 2 |
Tsu | 1.2 | 1.2 | 1.2 | 3 | 7 |
Tcyc | 7.5 | 10 | 15 | 15 | 30 |
Thold | 0 | 0 | 0 | 1 | 2 |
Основные функциональные отличия представлены в таблице:
Возможности | PCI | AGP1.0 | AGP2.0 | PCI-X |
Совместимость с PCI | Да | Нет | Нет | Да |
Скорость шины 100 Mhz | Нет | Нет | Нет | Да |
Скорость шины 133 Mhz | Нет | 66 DDR | 66 DDR | Да |
Скорость шины 266 Mhz | Нет | Нет | 66 QDR | Нет |
Разрядность шины данных | 32/64 | 32 | 32 | 64 |
Разрядность шины адреса | 32/64 | 32/36/64 | 32/47/64 | 64 |
Максимальная скорость обмена, MBytes/s | 533 | 533 | 1064 | 1064 |
Допустимость нескольких слотов | Да | Нет | Нет | Да |
Иерархическая топология | Да | Нет | Нет | Да |
Некогерентные транзакции | Нет | Да | Да | Да |
Идентификатор устройства и шины (позволяет оптимизировать параметры обмена) | Нет | Нет | Нет | Да |
Примечания:
DDR - Double Data Rate - удвоенная скорость обмена данными
QDR - Quad Data Rate - учетверенная скорость обмена данными
2.Шина Compact PCI (cPCI)
Разработана на основе спецификации PCI версии 2.1. Основное отличие от обычной PCI - большое количество поддерживаемых слотов для одной шины: 8 против 4. В связи с этим появились новые 4 пары сигналов запросов и предоставления управления шиной
Основные характеристики:
- поддерживает 32-битные и 64-битные обмены (с индивидуальным разрешением байт).
- при частоте шины 33 МГц максимальная пропускная способность составляет 133 Мб/с для 32 бит и 266 Мб/с для 64 бит (в середине пакетного цикла).
- возможна работа на частоте 66 МГц, при этом производительность удваивается.
- поддерживает спецификацию PnP: в ней работают все механизмы идентификации и автоконфигурирования, имеющиеся в PCI
- в шине возможно применение географической адресации, при которой адрес модуля, на который он отзывается при программном обращении, определяется его положением в каркасе. Для этого на коннекторе J1 имеются контакты GA0...GA4, коммутацией которых на "землю" для каждого слота может быть задан его двоичный адрес. Географическая адресация позволяет переставлять однотипные модули, не заботясь о конфигурировании их адресов. Это хорошая альтернатива системе PnP - здесь модуль "встанет" всегда в одни и те же адреса, которые без физического вмешательства ничем не собъются).
Внешне платы Compact PCI представляют собой еврокарты высотой 3U (100 x 160 мм) с одним коннектором или 6U (233 x 160 мм) с двумя коннекторами. Коннекторы - 7-рядные штырьковые разъемы с шагом 2 мм между контактами, на кросс-плате - вилка, на модулях - розетки. Контакты коннекторов имеют разную длину: более длинные контакты цепей питания при установке модуля соединяются раньше, а при вынимании разъединяются позже, чем сигнальные. Такое решение закладывает основу для реализации возможности "горячей" замены модулей. Собственно шина использует только один коннектор (J1), причем в 32-битном варианте не полностью - часть контактов выделяются на использование по усмотрению пользователя. 64-битная шина использует коннектор полностью. Одно посадочное место на кросс-плате резервируется под контроллер шины, на который возлагаются функции арбитража и синхронизации. На его коннекторе шиной используется большее число контактов, чем на остальных. У больших плат коннектор J2 отдается на использование по усмотрению пользователя (разработчика), а между коннекторами J1 и J2 может устанавливаться 95-контактный коннектор J3. Конструкция коннекторов позволяет для J2 применять специфические модификации, в которых может, например, присутствовать разделяющий экран и механические ключи. В шине предусматривается наличие независимых источников питания +5 В, +3.3 В и +/-12 В
Сигналы шины 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 - сброс всех устройств
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 В | 1 | -TSTRES | -C / BE 3 | 26 | IDSEL |
Test Clock | 2 | +12 B | AD 23 | 27 | +3,3 B |
GND | 3 | TSTMSLCT | GND | 28 | AD 22 |
Test DO | 4 | Test DO | AD 21 | 29 | AD 20 |
+5 B | 5 | +5 B | AD 19 | 30 | GND |
+5 B | 6 | -INTR A | +3,3 B | 31 | AD 18 |
-INTR B | 7 | -INTR C | AD 17 | 32 | AD 16 |
-INTR D | 8 | +5 B | -C / BE 2 | 33 | +3,3 B |
-PRSNT 1 | 9 | Reserved | GND | 34 | -FRAME |
Reserved | 10 | +VI / O | -IRDY | 35 | GND |
-PRSNT 2 | 11 | Reserved | +3,3 B | 36 | -TRDY |
GND / Ключ | 12 | GND /Ключ | -DEVSEL | 37 | GND |
GND / Ключ | 13 | GND /Ключ | GND | 38 | -STOP |
Reserved | 14 | Reserved | -Lock | 39 | +3,3 B |
GND | 15 | -RST | ParityER | 40 | SDONE |
Clock | 16 | +VI / O | +3,3 B | 41 | -SBOFF |
GND | 17 | -GNT | SysERR | 42 | GND |
-REQ | 18 | GND | +3,3 B | 43 | PAR |
+V I/O | 19 | Reserved | -C / BE 1 | 44 | AD 15 |
AD 31 | 20 | AD 30 | AD 14 | 45 | +3,3 B |
AD 29 | 21 | +3,3 B | GND | 46 | AD 13 |
GND | 22 | AD 28 | AD 12 | 47 | AD 11 |
AD 27 | 23 | AD 26 | AD 10 | 48 | GND |
AD 25 | 24 | GND | GND | 49 | AD 9 |
+3,3 B | 25 | AD 24 | GND / Ключ | 50** | GND / Ключ |
GND /Ключ | 51**** | GND / Ключ | GND | 73 | AD 56 |
AD 8 | 52 | -C / BE 0 | AD 55 | 74 | AD 54 |
AD 7 | 53 | +3,3 B | AD 53 | 75 | +VI / O |
+3,3 B | 54 | AD 6 | GND | 76 | AD 52 |
AD 5 | 55 | AD 4 | AD 51 | 77 | AD 50 |
AD 3 | 56 | GND | AD 49 | 78 | GND |
GND | 57 | AD 2 | +VI / O | 79 | AD 48 |
AD 1 | 58 | AD 0 | AD 47 | 80 | AD 46 |
+ VI / O | 59 | +VI / O | AD 45 | 81 | GND |
-ACK 64 | 60 | -REQ64 | GND | 82 | AD 44 |
+5 B | 61 | +5B | AD 43 | 83 | AD 42 |
+5 B | 62 | +5B | AD 41 | 84 | +VI / O |
Конец 32-битного разъема | GND | 85 | AD 40 | ||
| AD 39 | 86 | AD 38 | ||
Reserved | 63 | GND | AD 37 | 87 | GND |
GND | 64 | -C / BE 7 | +VI / O | 88 | AD 36 |
-C / BE | 65 | - C / BE 5 | AD 35 | 89 | AD 34 |
-C / BE | 66 | + VI / O | AD 33 | 90 | GND |
GND | 67 | PAR 64 | GND | 91 | AD 32 |
AD 63 | 68 | AD 62 | Reserved | 92 | Reserved |
AD 61 | 69 | GND | Reserved | 93 | GND |
+VI / O | 70 | AD 60 | GND | 94 | Reserved |
AD 59 | 71 | AD 58 | Конец 64-битного разъема | ||
AD 57 | 72 | GND |
*12, 13 - ключ для 3,3V
**50,51 - ключ для 5V
Циклы шины
По сигналам 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 isabus.htm
могут декодировать только 10 разрядов
Адресное пространство конфигурации доступно по адресам портов 0x0CF8 (Адрес) и 0x0CFC (Данные), причем адрес должен быть записан первым
Чтение памяти (0110) и запись в память (0111)
По шинам AD передается адрес двойным словом (четыре байта). Сигналы AD0 и AD1 декодировать не требуется. Истинность данных определяется сигналами C/BE
Чтение конфигурации (1010) и запись конфигурационных данных (1011)
Эти операции выполняются для конфигурационного пространства PCI карты. Размер области конфигурации составляет 256 байт, причем читать/записывать в нее можно только в 32-х разрядной сетке, т.е. двойными словами. Поэтому AD0 и AD1 должны быть установлены в 0, AD2-7 содержать адрес двойного слова, AD8-10 используются для выбора адресуемого устройства, а оставшиеся шины адреса игнорируются
Двойной цикл адреса (1101)
Двойной цикл адреса необходим в том случае, если необходимо передать 64-х разрядный адрес в версии PCI с 32-х разрядной адресной сетке. В первом цикле передаются четыре младших байта адреса, затем четыре старших байта. Во втором цикле необходимо также передать команду, определяющую тип устройства, чей адрес выставлен (порт ввода/вывода, память и т.д.). Собственно PCI поддерживает 64 разряда адреса для портов ввода/вывода, но в PC на процессорах архитектуры от Intel такое адресное пространство не поддерживается (не позволяет сам процессор)