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,3 V). Ключами є пропущені ряди контактів 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 326IDSEL
Test Clock 2 12 BAD 2327 +3,3 B
GND3TSTMSLCTGND28AD 22
Test DO4Test DOAD 2129AD 20
5 B5 5 BAD 1930GND
5 B6-INTR A 3,3 B31AD 18
-INTR B7-INTR CAD 1732AD 16
-INTR D8 5 B-C/BE 233 +3,3 B
-PRSNT 19ReservedGND34-FRAME
Reserved10 + VI/O-IRDY35GND
-PRSNT 211Reserved 3,3 B36-TRDY
GND/Ключ 12GND/Ключ-DEVSEL37GND
GND/Ключ13GND/КлючGND38-STOP
Reserved14Reserved-Lock39 3,3 B
GND15-RSTParityER40SDONE
Clock16 + VI/O 3,3 B41-SBOFF
GND17-GNTSysERR42GND
-REQ18GND 3,3 B43PAR
+ V I/O19Reserved-C/BE 144AD 15
AD 3120AD 30AD 1445 +3,3 B
AD 2921 +3,3 BGND46AD 13
GND22AD 28AD 1247AD 11
AD 2723AD 26AD 1048GND
AD 2524GNDGND49AD 9
3,3 B25AD 24GND/Ключ50 ** GND/Ключ
GND/Ключ51 **** GND/КлючGND73AD 56
AD 852-C/BE 0AD 5574AD 54
AD 753 +3,3 BAD 5375 + VI/O
3,3 B54AD 6GND76AD 52
AD 555AD 4AD 5177AD 50
AD 356GNDAD 4978GND
GND57AD 2 + VI/O79AD 48
AD 158AD 0AD 4780AD 46
+ VI/O59 + VI/OAD 4581GND
ACK-6460-REQ64GND82AD 44
5 B61 5 BAD 4383AD 42
5 B62 5 BAD 4184 + VI/O
Кінець 32-о раз'емаGND85AD 40
AD 3986AD 38
Reserved63GNDAD 3787GND
GND64-C/BE 7 + VI/O88AD 36
-C/BE65-C/BE 5AD 3589AD 34
-C/BE66 + VI/OAD 3390GND
GND67PAR 64GND91AD 32
AD 6368AD 62Reserved92Reserved
AD 6169GNDReserved93GND
+ VI/O70AD 60GND94Reserved
AD 5971AD 58Конец 64-бітного роз'єму
AD 5772GND
* 12, 13 - ключ для 3,3 V
** 50,51 - ключ для 5V
Цикли шини
За сигналами C/BE (від C/BE3 до C/BE0) під час фази передачі адреси визначається
тип циклу передачі даних.
C/BEКоманда
0000Interrupt Acknowledge (підтвердження переривання)
0001Special Cycle (спеціальний цикл)
0010I/O Read (читання порту)
0011I/O Write (запис в порт)
0100Reserved (резервовані)
0101Reserved (резервовані)
0110Memory Read (читання пам'яті)
0111Memory Write (запис в пам'ять)
1000Reserved (резервовані)
1001Reserved (резервовані)
1010Configuration Read (читання конфігурації)
1011Configuration Write (запис конфігурації)
1100Multiple Memory Read (множинне читання пам'яті)
1101Dual Address Cycle (подвійний цикл адреси)
1110Memory-Read Line (читання пам'яті)
1111Memory Write and Invalidate (запис в пам'ять і перевірка)
Підтвердження переривання (0000)
Контролер переривань автоматично розпізнає сигнал INTA і реагує на нього
передачею вектора переривання по шині AD.
Спеціальний цикл (0001) AD15-AD0Опісаніе
0x0000Processor Shutdown (процесор припиняє роботу)
0x0001Processor Halt (зупинка процесора)
0x0002x86 Specific Code (спеціальний код для машин на архітектурі Intel
x86)
0x0003 to 0xFFFFReserved (зарезервовано)
Читання порту (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 використовуються
для вибору адресується пристрою, а що залишилися шини адреси ігноруються.
Подвійний цикл адреси (1101)
Подвійний цикл адреси є необхідним у тому випадку, якщо необхідно передати 64-х
розрядний адреса у версії PCI з 32-х розрядної адресної сітці. У першому циклі
передаються чотири молодших байти адреси, потім чотири старших байти. У другому
циклі необхідно також передати команду, що визначає тип пристрою, чия адреса
виставлений (порт введення/виводу, пам'ять і т.д.). Власне PCI підтримує 64
розряду адреси для портів введення/виводу, але в PC на процесорах архітектури від
Intel таке адресний простір не підтримується (не дозволяє сам
процесор).
PCI-X
Улітку 1999 року консорціум SIG по PCI прийняв специфікацію принципово нового
варіанту шини PCI - PCI-X. Незважаючи на чудові технічні параметри, нова
шина розроблялася під скептичним поглядом Intel, яка активно веде
розробку власної шини NGIO. До теперішнього часу практично всі
інтерфейси, що розробляються Intel (AGP, PCI, USB) приймалися комп'ютерної
індустрією Офіційний погляд Intel на PCI-X виглядає так: PCI-X хороша шина,
але життя її буде недовговічною, тому що коли ми розробимо і затвердимо NGIO,
PCI-X піде з ринку, програвши NGIO по переспективний і продуктивності.
Час покаже, хто переможе, але очевидно, що тільки за підтримки PCI-X Intel в
своїх chipset вона може знайти широке поширення.
Активну участь таких великих компаній як IBM, Compaq, Hewlett-Packard в
розробці PCI-X проте дає новій шині істотні шанси на успіх, і,
крім цього, на її користь говорить прийняття специфікації PCI-X у той час як NGIO
ще знаходиться в розробці.
Основні відмінності PCI-X від PCI:
тактова частота шини до 133 MHz
можливе використання різних слотів для різних швидкостей обміну даними;
стандарт передбачає 1 слот з частотою 133 MHz, 2 слота на 100 MHz,
інші слоти можуть використовуватися на частоти 33 і 66 MHz.
значно зменшено час, що виділяється на операції в PCI-X (всі часи в
наносекундах).
Параметр133 MHz PCI-X100 MHz PCI-X66 MHz PCI-X66 MHz звичайна PCI33 MHz
звичайна PCI
Tval (max) 3.83.83.8611
Tprop2.04.59.5510
Tskew0.50.50.512
Tsu1.21.21.237
Tcyc7.510151530
Thold00012
Основні функціональні відмінності зведені в таблицю:
ВозможностіPCIAGP1.0AGP2.0PCI-X
Працює з PCIДаНетНетДа
Швидкість шини 100 MhzНетНетНетДа
Швидкість шини 133 MhzНет66 DDR66 DDRДа
Швидкість шини 266 MhzНетНет66 QDRНет
Розрядність шини данних32/64323264
Розрядність шини адреса32/6432/36/6432/47/6464
Максимальна швидкість обміну, MBytes/s53353310641064
Допустимість декількох слотовДаНетНетДа
Ієрархічна топологіяДаНетНетДа
Некогерентного транзакцііНетДаДаДа
Ідентифікатор пристрої та шини (дозволяє оптимізувати параметри
обміну) НетНетНетДа
Примітки:
DDR - Double Data Rate - подвійна швидкість обміну даними
QDR - Quad Data Rate - учетверенная швидкість обміну даними
Шина 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 В.