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.
Имеет версии с питанием 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 самодостаточен для подключения любого контроллера на системной плате может сосуществовать с любой из других шин ввода-вывода.
Шина PCI - первая шина в архитектуре IBM PC, которая не привязана к этой архитектуре. Она является процессорно-независимой и применяется, например, в компьютерах Macintosh.
В отличие от остальных шин, компоненты расположены на левой поверхности плат PCI-адаптеров. По этой причине крайний PCI-слот обычно разделяет использование посадочного места с соседним ISA-слотом (Shared slot).
Процессор через так называемые мосты (PCI Bridge) может быть подключен к нескольким каналам PCI, обеспечивая возможность одновременной передачи данных между независимыми каналами PCI.
Автоконфигурирование устройств (выбор запросов прерывания, каналов DMA) поддерживается средствами BIOS материнской платы по образу и подобию стандарта Plug & Play.
Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 восьмибитных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, расположенным в его пространстве ввода-вывода.
На PCI определены два основных вида устройств - инициатор (по ГОСТ - задатчик), т.е. устройство, получившее от арбитра шины разрешение на захват ее и устройство назначения, цель (target) с которым инициатор выполняет цикл обмена данными.
Поддержка "горячей" замены PCI устройств, называемой в стандарте как PCI Hot-Plug. Ввод этой функции позволит добавлять/изымать PCI платы без выключения компьютера. Такая возможность особенно необходима для серверных платформ
Система управления энергопотреблением для устройств на шине PCI. Позволяет управлять энергопотреблением как для внешних PCI плат так и для встроенных на материнской плате устройств. Механизм управления подстроен под стандарт ACPI для облегчения управления энергопотреблением PCI устройств со стороны операционной системы.
Дополнены и переработаны требования к конструктивной реализации PCI плат.
Сигналы шины 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-ти разрядный адрес порта не может быть использован, так как карты на шине ISAC:\www\doc2html\work\bestreferat-93864-13927654724498\input\isabus.htm могут декодировать только 10 разрядов.
Адресное пространство конфигурации доступно по адресам портов 0x0CF8 (Адрес) и 0x0CFC (Данные), причем адрес должен быть записан первым.
Чтение памяти (0110) и запись в память (0111)
По шинам AD передается адрес двойным словом (четыре байта). Сигналы AD0 и AD1 декодировать не требуется. Истинность данных определяется сигналами C/BE.
Чтение конфигурации (1010) и запись конфигурационных данных (1011)