Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ШИНА PCI
PCI (Peripheral Component Interconnect bus) – шина для присоединения периферийных
устройств.
Весна 1991 г. – первая макетная версия шины PCI компании Intel как недорогое и
производительное решение, расширяющее возможности процессоров 486,
Pentium и Pentium Pro.
1992 г. – первая версия шины PCI. Intel объявляет об открытости стандарта и
создаёт PCI Special Interest Group (любой заинтересованный разработчик получает
возможность создавать устройства для шины PCI без необходимости приобретения
лицензии).
1993 г. – Intel начинает продвижение шины PCI на рынке.
1995 г. – версия PCI 2.1 Шина уже поддерживается ОС Windows 95 (технология
Plug and Play).
1997 г. – шина PCI перестала удовлетворять повышенным требованиям к
видеокартам и перестала использоваться для установки видеокарт.
2000 — 2010 гг. интерфейс PCI постепенно вытесняется интерфейсами PCI
Express (PCI-X) и USB. На материнских платах уменьшалось количество разъемов PCI до
1-2, на некоторых PCI не устанавливается.
ШИНА PCI
• Шины PCI и PCI-X – средства расширения ввода/вывода (Expansion Bus),
дополняемые портом AGP для подключения видеоадаптеров.
• Шины позволяют адаптерам и контроллерам периферийных устройств
непосредственно использовать системные ресурсы компьютера — пространство
адресов памяти и ввода/вывода, прерывания, DMA.
• Шины механически реализуются в виде слотов (щелевых разъемов) или
штырьковых разъемов.
• Они имеют малую длину проводников, что позволяет достигать высоких скоростей
работы. Эти шины могут и не выводиться на разъемы, но использоваться для
подключения устройств в интегрированных системных платах.
• Первоначально шина PCI вводилась как пристройка (mezzanine bus) к системам с
шиной ISA (Industry Standard Architecture).
• Шина PCI – первая шина в архитектуре IBM PC, которая не привязана к этой
архитектуре. Она является процессоронезависимой.
ШИНА PCI
Industry Standard Architecture
5 разъёмов
16-битной и шины ISA
1 разъём
8-битной шины ISA
Mezzanine bus шины PCI для шины ISA
Разъем 32-разрядной PCI
ШИНА PCI
Разъём 64-разрядной шины PCI
Коричневый разъём – AGP
ШИНА PCI
В мае 1999 года появилась спецификация PCI 2.2 и фирма Intel выпустила первый chipset с
поддержкой версии 2.2 – i810. В соответствии с новой спецификацией появились следующие
новые возможности:
- поддержка "горячей" замены PCI-устройств, называемой в стандарте как PCI Hot-Plug.
Ввод этой функции позволит добавлять/изымать PCI-платы без выключения компьютера.
Такая возможность особенно необходима для серверных;
- система управления энергопотреблением для устройств на шине PCI. Позволяет управлять
энергопотреблением как для внешних PCI-плат так и для встроенных на материнской плате
устройств. Механизм управления подстроен под стандарт ACPI для облегчения управления
энергопотреблением PCI-устройств со стороны операционной системы;
- дополнены и переработаны требования к конструктивной реализации PCI плат.
Для практического использования новых возможностей PCI расширения стандарта должны
быть поддержаны как контроллером шины PCI так и самим PCI-устройством.
ШИНА PCI
Спецификация шины PCI
• используется мультиплексированная шина адреса/данных (AD);
• шина синхронная — фиксация всех сигналов выполняется положительным фронтом сигнала CLK;
• частота шины — 33,33 или 66,66 МГц, передача синхронная (в PCI-X частота может достигать 133
МГц);
• разрядность шины — 32 или 64 бита (PCI-X версии 2.0 определена разрядность16 бит);
• пиковая пропускная способность для 32-разрядного варианта, работающего на частоте синхронизации
33,33 МГц — 133 Мбайт/с (264 Мбайт/с для 64 бит);
• при частоте синхронизации 66 МГц — 264 Мбайт/с и 528 Мбайт/с соответственно (реальная средняя
пропускная способность шины оказывается ниже);
• адресное пространство памяти — 32 бита (4 байта);
• адресное пространство портов ввода-вывода — 32 бита (4 байта);
• конфигурационное адресное пространство (для одной функции) — 256 байт;
• напряжение — 3,3 или 5 В.
Стандартные модификации шины PCI
ШИНА PCI
• PCI 2.1 — работа с картами, рассчитанными на напряжение 3,3 в.
• PCI 2.2 —карты расширения имеют универсальный ключ разъёма по питанию и
способны работать во многих более поздних разновидностях слотов шины PCI, а также,
в некоторых случаях, и в слотах версии 2.1.
• PCI 2.3 — несовместима с картами, рассчитанными на использование 5 в.
• PCI 3.0 — завершает переход на карты PCI 3,3 в, карты PCI 5 в не поддерживаются.
• PCI 64 – расширение базового стандарта PCI, появившееся в версии 2.1, удваивающее
число линий данных, и, следовательно, пропускную способность. Слот PCI 64 является
удлинённой версией обычного PCI-слота. Формально совместимость 32-битных карт с
64-битным слотами (при условии наличия общего поддерживаемого сигнального
напряжения) полная, а совместимость 64-битной карты с 32-битным слотами является
ограниченной (в любом случае произойдёт потеря производительности). Работает на
тактовой частоте 33 МГц. Пиковая пропускная способность — 266 Мбайт/с.
• PCI 66 – является работающим на тактовой частоте 66 МГц развитием PCI 64;
использует напряжение 3,3 в. Пиковая пропускная способность — 533 Мбайт/с.
ШИНА PCI
• PCI 64/66 – Комбинация PCI 64 и PCI 66 позволяет вчетверо увеличить скорость передачи
данных по сравнению с базовым стандартом PCI; использует 64-битные слоты (3,3 в),
совместимые только с универсальными, и 32-битные карты расширения. Карты стандарта
PCI64/66 имеют либо универсальный (ограниченная совместимость с 32-битными слотами),
либо форм-фактор, принципиально не совместимый с 32-битными слотами 33 МГц.
Пиковая пропускная способность — 533 Мбайт/с.
• PCI-X (PCI Extended) – развитие версии PCI 64. Для всех вариантов шины существуют
ограничения по количеству подключаемых к каждой шине устройств: 66 МГц — 4 шт., 100
МГц — 2 шт., 133 МГц — 1 шт., 266, 533 МГц и выше — 1 шт. Пиковая пропускная
способность — 4096 Мбайт/с.
• Mini PCI – используется, в основном, в ноутбуках.
• CardBus (PCMCIA) — форм-фактор для 32-битных карт, 33 МГц PCI.
• CompactPCI – используются модули размера Eurocard, включаемые в PCI backplane.
• PC/104-Plus – индустриальная шина, использующая набор сигналов PCI (другой разъём).
• StackPC – индустриальная шина, использующая набор сигналов PCI.
• AdvancedTCA (ATCA) – шина следующего поколения для телекоммуникационной
индустрии на основе интерфейса PCI Express.
Конфигурирование
ШИНА PCI
Устройства, подключаемые к шине PCI являются самонастраиваемыми (технология
Plug and Play).
Автоконфигурирование устройств (выбор запросов прерывания, каналов DMA)
поддерживается средствами BIOS материнской платы по образу стандарта Plug and Play.
После старта компьютера СПО обследует конфигурационное пространство PCI
каждого устройства, подключённого к шине, и распределяет ресурсы.
Каждое устройство может затребовать до шести диапазонов в адресном
пространстве памяти PCI или в адресном пространстве ввода-вывода PCI.
Процессор через так называемые мосты (PCI Bridge) может быть подключен к
нескольким каналам PCI, обеспечивая возможность одновременной передачи данных между
независимыми каналами PCI (возможно только в спецификации 2.1).
На шине PCI определены два основных вида устройств:
- инициатор (по ГОСТ – задатчик), т.е. устройство, получившее от арбитра шины
разрешение на захват ее;
- устройство назначения (цель, target) с которым инициатор выполняет цикл обмена.
ШИНА PCI
Сигналы шины PCI
Знак «-» перед названием сигнала означает, что активный уровень этого сигнала – логический
ноль.
Обозначение {XX:0} означает группу сигналов с номерами от 0 до XX.
AD {31:0}
–C/ BE {3:0}
–FRAME
–DEVSEL
–IRDY
–TRDY
–STOP
Мультиплексированная шина адреса/данных. Адрес передается по сигналу –
FRAME, в последующих тактах передаются данные
Команда/разрешение обращения к байтам. Команда, определяющая тип
очередного цикла шины (чтение-запись памяти, ввода/вывода или чтение/запись
конфигурации, подтверждение прерывания и другие) задается четырехбитным
кодом в фазе адреса по сигналу –FRAME
Индикатор фазы адреса (иначе - передача данных)
Выбор инициатором устройства назначения
Готовность инициатора к обмену данными
Готовность устройства назначения к обмену данными
Запрос устройства назначения к инициатору на останов текущей транзакции
ШИНА PCI
–LOCK
Используется для установки, обслуживания и освобождения захвата ресурса на PCI
–REQ {3:0}
–GNT {3 0}
PAR
–ParityER
Запрос от PCI-устройства на захват шины (для слотов 3:0)
Разрешение мастеру на использование шины
Общий бит четности для линий AD{31:0} и C/BE{3:0}
Сигнал об ошибке по четности (от устройства, ее обнаружившего)
–RST
IDSEL
Сброс всех устройств
Выбор устройства назначения в циклах считывания и записи конфигурации
–SERR
Системная ошибка, активизируется любым устройством PCI и вызывает
немаскируемое прерывание процессора (NMI)
–REQ64
–ASK64
–INTR A, B, C, D
Запрос на 64-битный обмен
Подтверждение 64-битного обмена
Линии запросов прерывания, направляются на доступные линии IRQ BIOS
компьютера. Запрос по низкому уровню допускает разделяемое использование
линий прерывания
Clock
Сигнал синхронизации на тактовой частоте шины
Test Clock, –TSTRES, Сигналы для тестирования адаптеров по интерфейсу JTAG
TestDO, TestDI
TSTMSLCT
Перевод в режим тестирования
ШИНА PCI
Разъем шины PCI
Ряд В
-12 В
Test Clock
GND
Test DO
+5 B
+5 B
-INTR B
-INTR D
-PRSNT 1
Reserved
-PRSNT 2
GND / Ключ
GND / Ключ
Reserved
GND
Номер
1
2
3
4
5
6
7
8
9
10
11
12*
13*
14
15
Ряд А
-TSTRES
+ 12 B
TSTMSLCT
Test DO
+5 B
-INTR A
-INTR C
+5 B
Reserved
+VI / O
Reserved
GND /Ключ
GND /Ключ
Reserved
-RST
Ряд В
-C / BE 3
AD 23
GND
AD 21
AD 19
+3,3 B
AD 17
-C / BE 2
GND
-IRDY
+3,3 B
-DEVSEL
GND
-Lock
ParityER
Номер
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Ряд А
IDSEL
+3,3 B
AD 22
AD 20
GND
AD 18
AD 16
+3,3 B
-FRAME
GND
-TRDY
GND
-STOP
+3,3 B
SDONE
ШИНА PCI
Разъем шины PCI
GND
Clock
GND
-REQ
+V I/O
AD 31
AD 29
GND
AD 27
AD 25
+3,3 B
GND /Ключ
AD 8
AD 7
+3,3 B
AD 5
AD 3
GND
AD 1
15
16
17
18
19
20
21
2
23
24
25
51**
52
53
54
55
56
57
58
-RST
+VI / O
-GNT
GND
Reserved
AD 30
+3,3 B
AD 28
AD 26
GND
AD 24
GND / Ключ
-C / BE 0
+3,3 B
AD 6
AD 4
GND
AD 2
AD 0
ParityER
+3,3 B
SysERR
+3,3 B
-C / BE 1
AD 14
GND
AD 12
AD 10
GND
GND / Ключ
GND
AD 55
AD 53
GND
AD 51
AD 49
+VI / O
AD 47
40
41
42
43
44
45
46
47
48
49
50**
73
74
75
76
77
78
79
80
SDONE
-SBOFF
GND
PAR
AD 15
+3,3 B
AD 13
AD 11
GND
AD 9
GND / Ключ
AD 56
AD 54
+VI / O
AD 52
AD 50
GND
AD 48
AD 46
ШИНА PCI
Разъем шины PCI
+ VI / O
59
+VI / O
-ACK 64
60
-REQ64
+5 B
61
+5B
+5 B
62
+5B
Конец 32-битного разъема
Reserved
GND
-C / BE
-C / BE
GND
AD 63
AD 61
+VI / O
AD 59
AD 57
63
64
65
66
67
68
69
70
71
72
*12, 13 – ключ для 3,3V
**50,51 – ключ для 5V
GND
-C / BE 7
- C / BE 5
+ VI / O
PAR 64
AD 62
GND
AD 60
AD 58
GND
AD 45
81
GND
GND
82
AD 44
AD 43
83
AD 42
AD 41
84
+VI / O
GND
85
AD 40
AD 39
86
AD 38
AD 37
87
GND
+VI / O
88
AD 36
AD 35
89
AD 34
AD 33
90
GND
GND
91
AD 32
Reserved
92
Reserved
Reserved
93
GND
GND
94
Reserved
Конец 64-битного разъема
ШИНА PCI
Команды шины PCI
Команды PCI определяют направление и тип транзакций, а также адресное пространство, к
которому они относятся. Набор команд шины PCI включает следующие:
I/O Read, I/O Write — команды чтения и записи ввода/вывода, служат для обращения к пространству
портов;
Memory Read, Memory Write — команды чтения и записи памяти, служат для выполнения коротких
(как правило, непакетных) транзакций. Их прямое назначение — обращение к отображенным на память
устройствам ввода/вывода. Для «настоящей» памяти, допускающей предвыборки, предназначены
команды чтения строк, множественного чтения и записи с инвалидацией;
Memory-Read Line — чтение строки памяти, применяется, когда в транзакции планируется чтение
до конца строки кэша. Выделение данного типа чтения позволяет повысить производительность обмена
с памятью;
Multiple Memory Read — множественное чтение памяти, используется для транзакций,
затрагивающих более одной строки кэш-памяти. Использование данного типа транзакций позволяет
контроллеру памяти выполнять упреждающую выборку строк, что дает дополнительный выигрыш
производительности;
ШИНА PCI
Команды шины PCI
Memory Write and Invalidate (MVI) — запись с инвалидацией, применяется к целым строкам кэшпамяти. Все байты во всех фазах должны быть разрешены. Команда инициирует контроллером очистку
«грязных» строк кэш-памяти, соответствующих записываемой области, без их выгрузки в ОЗУ, что
экономит время. Инициатор, вводящий эту команду, должен знать размер строки кэша в данной системе
(для этого у него есть специальный регистр в конфигурационном пространстве);
Dual Address Cycle (DAC) — двухадресный цикл, позволяет по 32-битной шине обращаться к
устройствам с 64-битной адресацией. В этом случае младшие 32 бита адреса передаются одновременно
с данной командой, а далее следует обычный цикл, определяющий команду обмена и несущий старшие
32 бита адреса. Шина PCI допускает 64-битную адресацию как памяти, так и портов ввода/вывода;
Configuration Read, Configuration Write — команды конфигурационного чтения и записи,
адресуются к конфигурационному пространству устройств. Обращение производится только
выровненными двойными словами, биты AD[1:0] используются для идентификации типа цикла (см.
ниже). Для генерации данных команд требуется специальный аппаратно-программный механизм;
Special Cycle — специальный цикл, отличается от всех других тем, что является
широковещательным. Однако ни один агент на него не отвечает, а главный мост или иное устройство,
вводящее этот цикл, всегда завершает его способом;
ШИНА PCI
Команды шины PCI
Master Abort (на него требуется 6 тактов шины). Специальный цикл предназначен для генерации
широковещательных сообщений, которые могут читать любые «заинтересованные» агенты шины. Тип
сообщения декодируется содержимым линий AD[15:0]; на линиях AD[31:16] могут помещаться данные,
передаваемые в сообщении. Фаза адреса в этом цикле обычными устройствами игнорируется, но мосты
используют ее информацию для управления распространением сообщения. Сообщения с кодами 0000h,
0001h и 0002h требуются для указания на отключение (сообщение Shutdown), остановку (сообщение Halt)
процессора или специфические функции процессора x86, связанные с кэшем и трассировкой. Коды 0003h–
FFFFh зарезервированы. Специальный цикл может генерироваться тем же аппаратно-программным
механизмом, что и конфигурационные циклы, но со специфическим значением адреса;
Interrupt Acknowledge (INTA) — команда подтверждения прерывания, предназначена для чтения
вектора прерываний. По протоколу она выглядит как команда чтения, неявно адресованная к системному
контроллеру прерываний. Здесь в фазе адреса по шине AD полезная информация не передается (BE[3:0]#
задают размер вектора), но ее инициатор (главный мост) должен обеспечить стабильность сигналов и
корректность бита четности. В x86-архитектуре 8-битный вектор передается в байте 0 по готовности
контроллера прерываний (по сигналу TRDY#). Подтверждение прерываний выполняется за один цикл
(первый холостой цикл, который процессоры x86 делают в дань совместимости со стариной, мостом
подавляется).
ШИНА PCI
Циклы шины PCI
По сигналам C/BE (от C/BE3 до C/BE0) во время фазы передачи адреса определяется тип цикла передачи
данных.
C/BE
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Команда
Interrupt Acknowledge (подтверждение прерывания)
Special Cycle (специальный цикл)
I/O Read (чтение порта)
I/O Write (запись в порт)
reserved (резервировано)
reserved (резервировано)
Memory Read (чтение памяти)
Memory Write (запись в память)
reserved (резервировано)
reserved (резервировано)
Configuration Read (чтение конфигурации)
Configuration Write (запись конфигурации)
Multiple Memory Read (множественное чтение памяти)
Dual Address Cycle (двойной цикл адреса)
Memory-Read Line (чтение памяти)
Memory Write and Invalidate (запись в память и проверка)