Роз'єми PCI та PCI-E
Стандарт на шину PCI визначає: фізичні параметри (наприклад, роз'єми і розведення сигнальних ліній); електричні параметри (наприклад, напруги); логічну модель (наприклад, типи циклів шини, адресацію на шині);
Специфікація шини PCI
- частота шини — 33,33 МГц або 66,66 МГц, передача синхронна;
- разрядність шини — 32 або 64 біт, шина мультиплексована (адреси і дані передаються по спільній шині);
- пікова пропускна здатність для 32-розрядного варіанту, що працює на частоті 33,33 МГц — 133 Мб за секунду;
- адресний простір пам'яті — 32 біт (4 байти);
- адресний простір портів вводу-виводу — 32 біт (4 байти);
- конфігураційний адресний простір (для однієї функції) 256 байтів;
- напруга 3,3 або 5 вольт.
PCI Express або PCIe або PCI-E, (також відома як 3GIO for 3rd Generation I/O; не плутати з PCI-X або PXI) — комп'ютерна шина, що використовує програмну модель шини PCI і високопродуктивний фізичний протокол, заснований на послідовній передачі даних.
РІЗНИЦЯ: Розробка стандарту PCI Express була розпочата фірмою Intel після відмови від шини InfiniBand. Офіційно перша базова специфікація PCI Express з'явилася в липні 2002 року. Шина PCI Express націлена на використання тільки як локальної шини. Програмна модель PCI Express багато в чому успадкована від PCI і існуючі системи та контролери могли бути доопрацьовані для використання шини PCI Express заміною тільки фізичного рівня, без доробки. Висока пікова продуктивність шини PCI Express дозволяє використовувати її замість шин AGP і тим більше PCI і PCI-X. З'єднання між двома пристроями PCI Express називається link, і складається з одного (званого 1x) або декількох (2x, 4x, 8x, 12x, 16x і 32x) двонаправлених послідовних з'єднань lane. Кожен пристрій має підтримувати з'єднання 1x. Пропускна здатність, з урахуванням двобічної передачі для шин PCI Express з різною кількістю зв'язків: Використовується зв'язків 1x 2x 4x 8x 12x 16x 32x Пропускна здатність, ГБ/c 0,5 1 2 4 6 8 16 Для порівняння пропускна здатність старої шини PCI становить від 133Мб/с до 256Мб/с в її варіантах для робочих станцій (PCI 2.0, PCI 2.1-3.0). І від 256Мб/с і до 4096Мб/c (максимум )в серверних варіантах (PCI-X, PCI-64). Незабаром збираються остаточно прийняти специфікацію PCI Express 2.0- основні нововведення збільшення проускной здібності і віртуалізація введення-виведення. Для підключення пристрою PCI Express використовується двонаправлене послідовне з'єднання типу точка-точка, зване lane; це різко відрізняється від PCI, в якій всі пристрої підключаються до загальної 32-розрядної паралельної однонаправленої шини.
Типи PCI-слотів
• PCI 2.0 — перша версія базового стандарту, що одержала широке поширення, використовувалися як карти, так і слоти із сигнальною напругою тільки 5V. Пікова пропускна здатність — 133 Мб/с;
• PCI 2.1-3.0 — відрізнялися від 2.0 можливістю одночасної роботи декількох пристроїв bus-master (так званий конкурентний режим), а також появою універсальних карт розширення, здатних працювати як на 5V, так і на 3.3V слотах (з частотою 33 і 66 МГц відповідно). Пікова пропускна здатність для 33 МГц — 133 МБ/с, а для 66 МГц — 266 МБ/с;
o Версія 2.1 — робота з 3.3V картами і наявність відповідних ліній живлення була опціональною;
o Версія 2.2 — зроблені відповідно до цих стандартів карти розширення мають універсальний роз'єм і здатні працювати практично в усіх пізніших різновидах слотів шини PCI, а також, в деяких випадках, і в слотах 2.1;
o Версія 2.3 — несумісна з картами PCI 5V, незважаючи на триваюче використання 32-бітних слотів з 5V-ключем. Карти розширення мають універсальний роз'єм, але не здатні працювати в 5V-слотах ранніх версій(до 2.1 включно);
o Версія 3.0 — завершує перехід на карти PCI 3.3V, карти PCI 5V більше не підтримуються.
• PCI 64 — розширення базового стандарту PCI, що з'явилося у версії 2.1, подвоює число ліній даних і, отже, пропускну здатність. Слот PCI64 є подовженою версією звичайного PCI-слота. Формально сумісність 32-бітних карт із 64-бітними слотами (за умови наявності загальної підтримуваної сигнальної напруги) повна, а сумісність 64-бітної карти з 32-бітним слотами є обмеженою (втрата продуктивності є в обох випадках). Працює на тактовій частоті 33 МГц. Пікова пропускна здатність — 266 МБ/с;
o Версія 1 — використовує слот PCI 64-біта 5V;
o Версія 2 — використовує слот PCI 64-біта 3.3V;
• PCI 66 — це PCI 64, що працює на тактовій частоті 66 МГц , використовує 3.3V-слоти, карти мають універсальний, або 3.3V форм-фактор. Пікова пропускна здатність — 533 МБ/с;
• PCI 64/66 — комбінація PCI 64 и PCI 66, дозволяє вчетверо збільшити швидкість передачі даних у порівнянні з базовим стандартом PCI, і використовує 64-бітні 3.3V слоти, сумісні тільки з універсальними та 3.3V 32-бітними картами розширення. Карти стандарту PCI64/66 мають універсальний (який має обмежену сумісність із 32-бітними слотами) або 3.3V форм-фактор (останній варіант принципово не сумісний із 32-бітними 33 МГц слотами популярних стандартів). Пікова пропускна здатність — 533 МБ/с;
Для підключення пристрою PCI Express використовується двонаправлене послідовне з'єднання типу точка-точка, зване lane; це різко відрізняється від PCI, в якій всі пристрої підключаються до загальної 32-розрядної паралельної однонаправленої шини.
З'єднання між двома пристроями PCI Express називається link, і складається з одного (званого 1x) або декількох (2x, 4x, 8x, 12x, 16x і 32x) двонаправлених послідовних з'єднань lane. Кожен пристрій повинен підтримувати з'єднання 1x.
На електричному рівні кожне з'єднання використовує низьковольтну диференціальну передачу сигналу (LVDS), прийом і передача інформації проводиться кожним пристроєм PCI Express по окремих двох провідниках, таким чином, в простому випадку, пристрій підключається до комутатора PCI Express всього лише чотирма провідниками.
Використання подібного підходу має наступні переваги:
карта PCI Express поміщається і коректно працює в будь-якому слоті тої або ж більшої пропускній спроможності (наприклад, карта x1 працюватиме в слотах x4 і x16); слот більшого фізичного розміру може використовувати не всі lane (наприклад, до слота 16x можна підвести лінії передачі інформації, відповідні 1x або 8x, і все це нормально функціонуватиме; проте, при цьому необхідно підключити всі лінії «живлення» і «земля», необхідні для слота 16x).
В обох випадках, на шині PCI Express використовуватиме максимальну кількість lane'ів доступних як для карти, так і для слота. Проте це не дозволяє пристрою працювати в слоті, призначеному для карт з меншою пропускною спроможністю шини PCI Express (наприклад, карта x4 фізично не поміститься в слот x1, не зважаючи на те, що вона могла б працювати в слоті x1 з використанням тільки одного lane).
PCI Express пересилає всю управляючу інформацію, включаючи переривання, через ті ж лінії, що використовуються для передачі даних. Послідовний протокол ніколи не може бути заблокований, таким чином затримки шини PCI Express цілком порівнянні з такими для шини PCI (відмітимо, що шина PCI для передачі сигналу про запит на переривання використовує окремі фізичні лінії IRQ#A, IRQ#B, IRQ#C, IRQ#D).
У всіх високошвидкісних послідовних протоколах (наприклад, Gigabit Ethernet), інформація про синхронізацію повинна бути вбудована в передаваний сигнал. На фізичному рівні, PCI Express використовує загально прийнятий метод кодування 8B/10B (8 бітів даних замінюються на 10 бітів, передаваних по каналу, таким чином 20 % передаваного по каналу трафіку є надмірними), що дозволяє підняти перешкодозахист.
Деякі протоколи (наприклад, SONET/SDH) використовують інший метод перешкодозахисного кодування, який називається скремблінг (англ. scrambling) для вбудовування інформації про синхронізацію в потік даних. Специфікація PCI Express також передбачає алгоритм скремблінгу, але скремблінг PCI Express відрізняється від такого у SONET.
Пропускна здатність з'єднання lane складає 2,5 Гбіт/с. Для розрахунку пропускної спроможності з'єднання link необхідно врахувати те, що в кожному з'єднанні передача дуплексна, а також врахувати застосування кодування 8B/10B (8 бітів в 10). Наприклад, дуплексна пропускна спроможність з'єднання 1x (P1x) складає:
P_{1x} = {2,5 \cdot 2 \cdot 0,8 \over 8} = 0,5 ГБ/сек
де
2,5 — пропускна спроможність одного lane, Гбіт/с; 2 — врахування того, що з'єднання 1x складається з двох lane; 0,8 — коефіцієнт, що враховує використання коду 8B/10B; 8 — коефіцієнт для перекладу Гбіт/с в ГБ/с.
Пропускна спроможність, з урахуванням двонаправленої передачі, для шин PCI Express з різною кількістю зв'язків вказана в таблиці:
Стандартні модификації PCI
Типи PCI-слотів
PCI 2.0 — перша версія базового стандарту, що одержала широке поширення, використовувалися як карти, так і слоти із сигнальною напругою тільки 5V. Пікова пропускна здатність — 133 Мб/с;
PCI 2.1-3.0 — відрізнялися від 2.0 можливістю одночасної роботи декількох пристроїв bus-master (так званий конкурентний режим), а також появою універсальних карт розширення, здатних працювати як на 5V, так і на 3.3V слотах (з частотою 33 і 66 МГц відповідно). Пікова пропускна здатність для 33 МГц — 133 МБ/с, а для 66 МГц — 266 МБ/с;
Версія 2.1 — робота з 3.3V картами і наявність відповідних ліній живлення була опціональною;
Версія 2.2 — зроблені відповідно до цих стандартів карти розширення мають універсальний роз'єм і здатні працювати практично в усіх пізніших різновидах слотів шини PCI, а також, в деяких випадках, і в слотах 2.1;
Версія 2.3 — несумісна з картами PCI 5V, незважаючи на триваюче використання 32-бітних слотів з 5V-ключем. Карти розширення мають універсальний роз'єм, але не здатні працювати в 5V-слотах ранніх версій(до 2.1 включно);
Версія 3.0 — завершує перехід на карти PCI 3.3V, карти PCI 5V більше не підтримуються.
PCI 64 — розширення базового стандарту PCI, що з'явилося у версії 2.1, подвоює число ліній даних і, отже, пропускну здатність. Слот PCI64 є подовженою версією звичайного PCI-слота. Формально сумісність 32-бітних карт із 64-бітними слотами (за умови наявності загальної підтримуваної сигнальної напруги) повна, а сумісність 64-бітної карти з 32-бітним слотами є обмеженою (втрата продуктивності є в обох випадках). Працює на тактовій частоті 33 МГц. Пікова пропускна здатність — 266 МБ/с;
Версія 1 — використовує слот PCI 64-біта 5V;
Версія 2 — використовує слот PCI 64-біта 3.3V;
PCI 66 — це PCI 64, що працює на тактовій частоті 66 МГц , використовує 3.3V-слоти, карти мають універсальний, або 3.3V форм-фактор. Пікова пропускна здатність — 533 МБ/с;
PCI 64/66 — комбінація PCI 64 и PCI 66, дозволяє вчетверо збільшити швидкість передачі даних у порівнянні з базовим стандартом PCI, і використовує 64-бітні 3.3V слоти, сумісні тільки з універсальними та 3.3V 32-бітними картами розширення. Карти стандарту PCI64/66 мають універсальний (який має обмежену сумісність із 32-бітними слотами) або 3.3V форм-фактор (останній варіант принципово не сумісний із 32-бітними 33 МГц слотами популярних стандартів). Пікова пропускна здатність — 533 МБ/с;
PCI-X — розширення PCI64, для всіх варіантів шини існують наступні обмеження по кількості пристроїв, що підключають до кожної шини: 66 МГц — 4, 100 МГц — 2, 133 МГц — 1 (або 2 якщо один або обидва пристрої не перебувають на платах розширення, а вже інтегровані на одну плату разом з контролером), 266 МГц, 533 МГц і вище — 1;
Версія 1.0 — введено дві нові робочі частоти: 100 і 133 МГц, а також механізм роздільних транзакцій для поліпшення продуктивності при одночасній роботі декількох пристроїв. Як правило, зворотно сумісна з усіма 3.3V та універсальними PCI-картами. Карти звичайно виконуються в 64-бітному 3.3V форматі й мають обмежену зворотну сумісність зі слотами PCI64/66, а деякі здатні працювати в універсальному форматі (хоча практичної цінності це майже не має) у звичайному PCI 2.2/2.3. Пікова пропускна здатність — 1024 МБ/с;
Версія 2.0 — уведено дві нові робочі частоти: 266 й 533 МГц, а також функція коду корекції помилок під час передачі даних (an error-correcting code, error checking and correction, ECC). Розширює конфігураційний простір PCI до 4096 байт і допускає розщеплення на 4 незалежні 16-бітні шини, що застосовується винятково у промислових системах, сигнальна напруга знижена до 1.5 V, але збережена зворотна сумісність роз’ємів з усіма картами, що використовують сигнальну напругу 3.3 V. Пікова пропускна здатність — 4096 МБ/с;
Mini PCI — новий форм-фактор PCI 2.2 для використання переважно у ноутбуках;
Cardbus — PCMCIA форм-фактор для 32-бітних, 33 МГц PCI;
CompactPCI — використовує модулі розміру Eurocard, що входять в PCI backplane;
PC/104-Plus — індустріальна шина, що використовує сигналізацію PCI з іншим роз'ємом;
PMC — PCI mezzanine card, мезонінна шина, відповідає стандарту IEEE P1386.1;
ATCA або AdvancedTCA — шина наступного покоління для телекомунікаційної індустрії.
Історія створення
Навесні 1991 р. компанія Intel завершує розробку першої макетної версії шини PCI. Перед інженерами було поставлене завдання розробити недороге й продуктивне рішення, що дозволило б реалізувати можливості процесорів 486, Pentium і Pentium Pro. Окрім того, треба було врахувати помилки допущені VESA при проектуванні шини VLB (електричне навантаження не дозволяло підключати більше 3 плат розширення), а також реалізувати автоконфігурування пристроїв за прикладом протоколу Autoconfig для комп'ютерів Amiga.
1992 року з'являється перша версія шини PCI, Intel повідомляє, що стандарт шини буде відкритим і створює PCI Special Interest Group. Завдяки цьому, будь-який зацікавлений розробник отримує можливість створювати пристрої для шини PCI без необхідності придбання ліцензії. Перша версія шини мала тактову частоту 33 МГц, могла бути 32 або 64 бітною, а пристрої могли працювати з сигналами в 5 V або 3,3 V. Теоретично, пропускна здатність шини 133 Мбайт/сек, однак у реальності пропускна здатність становила біля 80 Мбайт/сек.
В середині 1993 року, компанія Intel виходить із асоціації VESA і починає вживати активних заходів по просуванню шини PCI на ринку. Відповіддю на критику з боку фахівців з конференцій Usenet і компаній конкурентів стала PCI 2.0.
В 1995 р., з'являється версія PCI 2.1 («паралельна шина PCI»), яка забезпечила передачу даних по шині з частотою 66 МГЦ і максимальну швидкість передачі в 533 МБ/сек (для 64 бітного варіанта з частотою 66 МГц). Крім того, ця шина вже була підтримана на рівні ОС Windows 95 (технологія Plug and Play). Згодом завдяки популярності, версія шини PCI 2.1 була перенесена на платформи з процесорами Alpha, MIPS, PowerPC, SPARC та ін.
В 1997 р., у зв'язку з розвитком комп'ютерної графіки й розробкою шини AGP, шина PCI перестала задовольняти підвищені вимоги до відеокарт і стала витіснятися більш продуктивною AGP.