Опис сигналів шини PCI
Blog Posted by admin on 2-2-2025 in Взаємодія в роботі
У мінімальному варіанті шина PCI використовує 45 сигналів, проте на практиці їх буває більше. розрядному варіанті до них додається ще 39 ліній.
- 1 Ролі пристроїв на шині
- 2 «Центральний ресурс»
- 3 Логічні рівні та типи ліній
- 4 Опис сигналів
- 4.1 Системні сигнали
- 4.1.1 CLK, IN
- 4.1.2 RST#, IN
- 4.2.1 AD[31:0], TS
- 4.2.2 C/BE[3:0]#, TS
- 4.2.3 PAR, TS
- 4.3.1 FRAME#, STS
- 4.3.2 IRDY#, STS
- 4.3.3 TRDY#, STS
- 4.3.4 STOP#, STS
- 4.3.5 LOCK#, STS
- 4.3.6 IDSEL, IN
- 4.3.7 DEVSEL#, STS
- 4.4.1 PERR#, STS
- 4.4.2 SERR#, OD
- 4.5.1 REQ#, TS
- 4.5.2 GNT #, TS
- 4.6.1 INTA#, OD
- 4.6.2 INTB#, OD
- 4.6.3 INTC#, OD
- 4.6.4 INTD#, OD
- 4.7.1 PRSNT[1:2]#, IN
- 4.7.2 CLKRUN#, IN/OD/STS
- 4.7.3 M66EN, IN
- 4.7.4 PME#, OD
- 4.7.5 3.3Vaux, IN
- 4.8.1 AD[63:32], TS
- 4.8.2 C/BE[7:4]#, TS
- 4.8.3 REQ64#, STS
- 4.8.4 ACK64#, STS
- 4.8.5 PAR64, TS
Ролі пристроїв на шині [ ]
Специфікація PCI дозволяє будь-якому пристрою виступати в ролі як виконавця (target), так і задатчика (master). Виконавець стежить за транзакціями, що виконуються на шині, і коли виявляє транзакцію, адресовану йому, приступає до її обробки (транзакції описані в розділі Функціонування шини PCI). ролі виконавця.
Оскільки на шині може бути кілька задатчиків, специфікація передбачає схему арбітражу.Отримавши сигнал у відповідь GNT#, воно може починати транзакцію.
«Центральний ресурс»
У специфікації PCI часто використовують термін «центральний ресурс» (central resource). Під ним розуміється хост-контролер шини PCI, який зазвичай входить до складу чіпсету. Наприклад, у старих чіпсетах, розроблених за часів, коли PCI була головною шиною ПК, роль «центрального ресурсу» виконувала мікросхема північного мосту, а в сучасних чіпсетах, де шина PCI зберігається для сумісності з раніше випущеними платами розширення, «центральний ресурс» перемістився в південний міст (наприклад, у випадку кристала Intel ICH10 ним є міст DMI-PCI, що є одним з компонентів цієї мікросхеми).
«Центральний ресурс» відповідає за:
- арбітраж запитів на володіння шиною PCI (приймає від пристроїв сигнали REQ# та видає сигнали GNT#);
- підтягування ліній типів STS та OD до високого рівня за допомогою резисторів;
- субтрактивне декодування діапазонів адрес пам'яті та введення виводу. На шині PCI може бути лише один пристрій, який здійснює субтрактивне декодування; зазвичай ним є міст від PCI до будь-якої іншої шини розширення (наприклад, PCI-ISA);
- перетворення генерованих процесором звернень конфігураційні транзакції шини PCI;
- генерацію індивідуальних сигналів IDSEL для кожного пристрою, підключеного до шини PCI;
- керування сигналом REQ64# під час скидання.
Логічні рівні та типи ліній [ ]
Активним рівнем деяких ліній є високий (логічна одиниця), інших — низький (логічний нуль). Назви ліній, активний рівень яких — низький, закінчуються символом #.Наприклад, пристрій, що бажає захопити керування шиною, видає на свою лінію GNT# низький рівень;
З погляду електроніки у шині PCI використовуються такі типи ліній:
- IN – звичайний вхід (input). Пристрій через таку лінію отримує сигнали ззовні, але нічого не видає;
- OUT – звичайний вихід (totem pole output). Пристрій використовує такі лінії тільки для видачі сигналів;
- TS — вхід-вихід з трьома станами (tri-state) Коли така лінія використовується як вихід, пристрій встановлює на ній потрібний логічний рівень (0 або 1). );у такій ситуації стан лінії буде визначатися значеннями, що видаються на неї іншими пристроями. вихід. Якщо жоден із пристроїв не використовує цю лінію як вихід, на ній встановлюється невизначений стан;
- STS — вихід або вхід-вихід з трьома станами та підтягуванням лінії до високого рівня (sustained tri-state) Активним рівнем на таких лініях завжди є низький. (Він є частиною «центрального ресурсу») на лінії встановлюється високий (неактивний) рівень.Коли пристрій, що використовує лінію як вихід, хоче звільнити її, один повинен як мінімум на один такт шини виставити на ній високий рівень і лише потім може переводити свій вихідний буфер у стан Z (це забезпечує гарантовану підтяжку лінії до високого рівня). Пристрій, який використовуватиме лінію як вихід, повинен видавати на неї 0 або 1 не раніше, ніж через один такт після того, як попередній власник лінії перевів свій буфер в стан Z;
- OD — вихід із відкритим стоком (колектором; open drain). Активним рівнем на такій лінії також є низький. На відміну від ліній типів TS та STS, лінії з відкритим стоком використовуються як вихідні одночасно кількома пристроями. "Центральний ресурс" включає до свого складу резистор, що підтягує лінію до високого рівня. Завдяки цьому лінія виконує функцію «провідного АБО» (wired-OR): на ній встановлюється активний (низький) рівень, якщо хоча б один із пристроїв видає на лінію 0; якщо всі пристрої підтримують неактивний (високий) рівень, на лінії буде присутній 1.
Опис сигналів [ ]
Шина PCI є синхронною. Стан більшості її сигналів прив'язаний до лінії синхронізації CLK: чинними протягом одного такту вважаються значення сигналів, що знаходилися на лініях у момент приходу фронту сигналу CLK. асинхронними, тобто. не прив'язаними до фронту сигналу CLK, є лінії RST #, INTA # – INTD #, PME # і CLKRUN #.
Системні сигнали [ ]
CLK, IN [ ]
Лінія синхронізації шини надходить на всі пристрої.Специфікація визначає три можливі діапазони частот: від 0 до 33 МГц (саме такий варіант шини PCI зазвичай використовується в ПК), від 33 до 66 МГц (у ПК зустрічається дуже рідко) і від 50 до 133 МГц (шина PCI-X, що застосовується в промислових системах).
RST#, IN [ ]
Сигнал скидання. Є асинхронним. Коли на цій лінії з'являється активний (низький) рівень, всі пристрої негайно переводять свої буфери вихідні в неактивний стан. Більшість ліній неактивним є стан високого імпедансу. «Центральний ресурс», щоб запобігти невизначеності на лініях AD, C/BE#, PAR і PAR64, може встановити низький рівень (так звана «парковка шини», bus parking).
Скидання зазвичай переводить пристрої, підключені до шини PCI, у вихідний несконфігурований стан. Такі пристрої не реагують на операції, що виконуються на шині, за винятком адресованих їм конфігураційних циклів. Однак пристрої, необхідні для завантаження ОС, можуть при скиданні налаштовувати самі себе певним чином; у разі вони відповідають адресовані їм звичайні запити читання, записи тощо. Це забезпечує можливість застосування шини PCI у обчислювальних системах, які не мають аналога BIOS, тобто. будь-якого програмного коду, який виконується після скидання до початку завантаження.
Сигнали адреси та даних [ ]
AD[31:0], TS [ ]
Лінії адреси та даних. Транзакція шини складається з фази адреси та фази даних. У фазі адреси задатчик одночасно із сигналом FRAME# видає 32-розрядну адресу порту вводу-виводу, комірки пам'яті або конфігураційного регістру, до якого виконується звернення.У разі операції читання або запису порту вводу-виводу це буде адреса байта, у разі доступу до пам'яті або до регістру конфігурації це буде адреса подвійного слова (таким чином, шина не допускає невирівняні доступи до пам'яті і конфігураційних регістрів; задатчик повинен розбивати такі доступи на дві операції). Після фази адреси слідує фаза даних, під час якої по лініях AD[31:0] здійснюється обмін даними між задатчиком і виконавцем; для індикації готовності даних використовують сигнали TRDY# і IRDY#.
Специфікація PCI дозволяє використовувати 64-розрядні адреси на 32-розрядній шині; у цьому випадку фаза адреси складається із двох тактів шини.
C/BE[3:0]#, TS [ ]
Лінії команди шини та дозволу байтів. Під час фази адреси цим лініям задатчик видає код операції, яка виконуватиметься на шині (читання з пам'яті, запис у порт вводу-вывода тощо.); під час фази даних цих лініях знаходяться сигнали, що показують значимість відповідних байтів на лініях AD[31:0]. Завдяки цьому є можливість обмінюватися довільними байтами зі складу кожного подвійного слова.
PAR, TS [ ]
Сигнал парності інформації на лініях AD[31:0] та C/BE[3:0]#. Загальна кількість одиничних розрядів на лініях AD[31:0], C/BE[3:0]# та PAR має бути парною, інакше фіксується помилка шини. У разі фази адреси лінія PAR відображає парність адреси та коду операції протягом одного такту після закінчення фази адреси; у разі фази даних вона відображає парність даних та ліній дозволу байтів протягом одного такту після появи сигналу TRDY# або IRDY#.Запізнення сигналу PAR на один такт по відношенню до сигналів на лініях AD[31:0] та C/BE[3:0]# забезпечує час, необхідний приймачеві для обчислення парності інформації, виданої джерелом.
Сигнали керування інтерфейсом [ ]
FRAME#, STS [ ]
Цей сигнал видається задатчиком на початку транзакції та визначає її тривалість. FRAME# видається одночасно з початком фази адреси та знімається в останній фазі даних.
Сигнал FRAME# може бути виставлений тільки при знаходженні шини у стані бездіяльності (коли обидва сигнали FRAME# та IRDY# неактивні). Після видачі його не можна зняти при неактивному сигналі IRDY#.
IRDY#, STS [ ]
Сигнал готовності ініціатора. Він свідчить про готовність ініціатора (задатчика) завершити поточну фазу даних.
Сигнал IRDY# використовується разом із сигналом TRDY#: поточна фаза даних завершується, коли обидва ці сигнали активні. Під час операції запису наявність сигналу IRDY# означає, що задатчик виставив записані дані на лінії AD. Під час читання наявність IRDY# показує, що задатчик готовий прийняти дані, які має видати виконавець.
Сигнал IRDY# видається задатчиком у кожному фазі даних, що він готовий її виконати. Якщо задатчик не потребує тактів очікування для виконання якихось внутрішніх функцій, цей сигнал буде безперервно активний протягом усіх фаз даних. Починаючи останню фазу даних, задатчик видає IRDY# одночасно зі зняттям FRAME# або знімає FRAME# при активному IRDY#. Завершивши цю фазу, задатчик знімає IRDY# при знятому раніше FRAME#, і шина переходить у стан бездіяльності.
TRDY#, STS [ ]
Сигнал готовності виконавця, що засвідчує готовність виконавця завершити поточну фазу даних.Він використовується разом із сигналом IRDY#, як описано вище. В операції запису наявність сигналу TRDY # означає, що виконавець готовий прийняти від задатчика чергову порцію даних; під час операції читання він показує, що виконавець видав дані лінії AD[31:0].
STOP#, STS [ ]
Цей сигнал видається виконавцем, якщо хоче зупинити поточну транзакцію. Вигляд завершення (повтор, від'єднання, скасування) визначається станом сигналів TRDY# і DEVSEL#, і навіть номером фази даних (перша чи перша), у якій було видано сигнал STOP#.
Видавши сигнал STOP#, виконавець повинен утримувати його, доки задатчик не прибере сигнал FRAME#. Наявність STOP# не перешкоджає обміну даними, якщо одночасно активні сигнали IRDY# та TRDY# (це має місце при завершенні транзакції шляхом від'єднання з даними).
LOCK#, STS [ ]
Сигнал LOCK # вказує виконання атомарної операції. Дозвіл розпочати транзакцію шини не означає дозволу захопити керування сигналом LOCK#; при цьому застосовується окремий протокол. Атомарні транзакції можуть бути ініційовані мостами, але не звичайними пристроями.
IDSEL, IN [ ]
Цей сигнал (Initialization Device Select) використовується для вибору пристрою в конфігураційних циклах шини та застосовується в процесі налаштування, коли звичайна адресація неможлива. Кожен пристрій, підключений до шини PCI, має власний сигнал IDSEL.
DEVSEL#, STS [ ]
Сигнал вибору пристрою. Коли якийсь пристрій упізнає свою адресу, що передається у фазі адреси кожної транзакції, крім операції спеціальний цикл, воно видає на цю лінію низький рівень.Задатчик, контролюючи стан сигналу DEVSEL#, має можливість визначити, чи є пристрій, до якого він намагається звернутися. Якщо протягом певного часу після видачі адреси пристрою сигнал DEVSEL# так і не з'явився, транзакція скасовується задатчиком (master-abort).
Виконавець може у фазі даних зняти сигнал DEVSEL з одночасною видачею STOP, якщо він хоче скасувати транзакцію (target-abort).
Сигнали індикації помилок [ ]
Сигнали індикації помилок можуть бути відсутні у деяких пристроїв, встановлених на системній платі, але у більшості пристроїв, у тому числі будь-яких плат розширення, вони присутні. Видача сигналів помилок дозволяється програмно.
PERR#, STS [ ]
Сигнал помилки парності даних для всіх типів транзакцій, за винятком спеціальних циклів. Він видається пристроєм, що здійснює прийом інформації (тобто виконавцем при виконанні запису або задатчиком при виконанні читання), якщо воно виявить помилку парності на лініях AD[31:0] та C/BE[3:0]# у фазі даних. Видача сигналу здійснюється протягом двох тактів з моменту надходження помилкової інформації, яке мінімальна тривалість становить один такт на кожну фазу, в якій виявлена помилка.
SERR#, OD [ ]
Сигнал помилки парності у фазі адреси, помилки парності у фазі даних спеціального циклу чи якоїсь іншої помилки, має катастрофічні наслідки, тобто. здатної вплинути на працездатність системи загалом. Він видається на один такт, проте підтягування лінії до високого рівня може зайняти 2 або 3 такти (це залежить від сумарної ємності буферів лінії SERR# всіх пристроїв на шині). Зазвичай поява сигналу SERR# викликає генерацію переривання, що не маскується (NMI).
Сигнали арбітражу шини [ ]
Сигнали арбітражу використовуються лише пристроями, які можуть бути задатчиками. У кожного такого пристрою є власна пара сигналів REQ# і GNT#.
REQ#, TS [ ]
Пристрій, бажаючий розпочати транзакцію, тобто. виступити в ролі задатчика, видає на пов'язану з ним лінію REQ# сигнал низького рівня і чекає на відповідь від арбітра шини, що дозволяє транзакцію.
Цей сигнал реально використовується тільки як вихід, проте виконаний у вигляді буфера з трьома станами відповідно до вимог послідовності подачі живлення на той випадок, якщо арбітр шини та пристрій використовують різні напруги живлення.
Коли скидається (сигнал RST# активний), арбітр ігнорує стан підключених до нього сигналів REQ#.
GNT#, TS [ ]
Сигнал дозволу початку транзакції, що надходить від арбітра шини пристрою, що видав сигнал REQ #.
Цей сигнал реально використовується пристроєм тільки як вхід, проте виконаний у вигляді буфера з трьома станами відповідно до вимог послідовності подачі живлення на той випадок, якщо арбітр шини та пристрій використовують різні напруги живлення.
Коли скидається (сигнал RST# активний), пристрій повинен ігнорувати стан сигналу GNT#, що подається на нього.
Сигнали переривань [ ]
Сигнали переривань є необов'язковими і є асинхронними.
INTA#, OD [ ]
INTB#, OD [ ]
INTC#, OD [ ]
INTD#, OD [ ]
Усі чотири сигнали запиту переривань функціонально однакові. Пристрій, що запитує переривання, видає низький рівень на пов'язану з ним лінію INTx# і утримує його до тих пір, поки програмно запит переривання не буде знято.Кожна лінія може використовуватися довільним числом пристроїв, проте специфікація PCI накладає одне обмеження: пристрій, до складу якого входить лише одна функція, має використовувати лінію INTA#, і лише багатофункціональні пристрої можуть використовувати чотири лінії.
Альтернативним методом генерації запитів переривань є використання механізму MSI (Message Signaled Interrupt).
Додаткові сигнали [ ]
Усі ці сигнали є необов'язковими.
PRSNT[1:2]#, IN [ ]
Ці сигнали є обов'язковими для плат розширення, але не потрібні для контролерів, встановлених на системній платі. Вони дозволяють виявити наявність плати розширення у відповідному гнізді та визначити, яку енергію ця плата споживає. Якщо плата встановлена, хоча одна з цих ліній, підключених до цього гнізда, буде активної (мати низький рівень).
CLKRUN#, IN/OD/STS [ ]
Цей асинхронний сигнал використовується лише в M66EN, IN [ ]
Цей сигнал повідомляє пристрою, чи шина може працювати на частоті 66 МГц.
PME#, OD [ ]
Асинхронний сигнал події керування електроживленням. Пристрій видає його, щоб запросити зміну стану живлення для себе або всієї системи.
Пристрій може видати на лінію PME# низький рівень лише тоді, коли це було дозволено програмно. Видавши запит PME#, пристрій повинен утримувати його доти, доки запит не буде програмно знятий.
Детально використання цього сигналу обговорюється в розділі Керування живленням PCI.
3.3Vaux, IN [ ]
Додаткова напруга живлення 3,3 В, що подається на плати розширення, щоб забезпечити можливість генерації сигналу PME# навіть при відключеному загальному живленні.Докладніше це обговорюється в розділі Управління електроживленням PCI.
Сигнали 64-розрядної шини [ ]
Ці сигнали присутні лише у 64-розрядному варіанті шини PCI.
AD[63:32], TS [ ]
Лінії старших 32 розрядів адреси та даних. Під час фази адреси при використанні команди DAC (подвійний цикл адреси) та наявності сигналу REQ64# за ними видається старша половина 64-розрядної адреси; якщо зазначених умов не дотримуються, стан цих ліній не визначено. Під час фази даних за ними передаються старші 4 байти даних за умови, що обмін виконується вчетвером словами (були виставлені сигнали REQ64# і ACK64#).
C/BE[7:4]#, TS [ ]
Лінії команди та дозволу байтів. Під час фази адреси при використанні команди DAC та наявності сигналу REQ64# по цих лініях видається реальна команда шини; інакше стан цих ліній не визначено. Під час фази даних за наявності сигналів REQ64# і ACK64# цими лініями передаються сигнали дозволу відповідних байтів на лініях AD[63:32].
REQ64#, STS [ ]
Запит 64-розрядного обміну. Видається і утримується задатчиком одночасно із сигналом FRAME#, що він бажає виконувати обмін вчетверенными словами. Крім того, цей сигнал використовується для завершення послідовності скидання.
ACK64#, STS [ ]
Підтвердження 64-розрядного обміну. Видається та утримується одночасно із сигналом DEVSEL#, якщо виконавець транзакції згоден здійснювати її у 64-розрядному режимі.
PAR64, TS [ ]
парність ліній AD[63:32] і C/BE[7:4]#. Аналогічний сигналу PAR, але призначений контролю правильності передачі по старшій половині ліній AD і C/BE#.
Сигнали JTAG [ ]
Специфікація PCI передбачає розведення стандартних сигналів інтерфейсу JTAG – ліній TDI, TDO, TCK, TMS та TRST#. Інтерфейс JTAG призначений для перевірки обладнання, встановленого на системній платі або її гнізда розширення, але не використовується при функціонуванні в звичайному режимі, тому описуватися не буде. Зауважимо лише, що якщо плата розширення не підтримує інтерфейс JTAG, вона повинна забезпечити наскрізну передачу сигналу TDI на лінію TDO.
Сигнали шини керування системою [ ]
Специфікація PCI допускає наявність двох ліній шини SMBus – SMBCLK та SMBDAT. Оскільки вони не мають прямого відношення до шини PCI, докладно їх розглядати не будуть.
Література [ ]
- PCI Local Bus Specification. Revision 3.0. August 12, 2002
- Гук М. Апаратні ПК інтерфейси. Енциклопедія – СПб.: Пітер, 2002
- Атомарні операції. Сучасний тренд
Опис сигналів шини PCI - Kozak Всім привіт! Сьогодні давайте обговоримо шину PCI – що це таке, для чого використовується цей інтерфейс у комп'ютері, які пристрої можна підключити за його допомогою.
Характеристики контролера PCI
Розшифровка цієї назви – Peripheral component interconnect, що в перекладі означає "Взаємозв'язок периферійних компонентів". Як можна зрозуміти з назви, цей роз'єм на материнці використовується для обміну даними з додатковими пристроями.
Стандартом цього слот визначаються:
- Пропускна здатність (бітність та швидкість передачі даних);
- Фізичні параметри (габарити та розведення конекторів);
- Електричні параметри (напруга, що подається);
- Логічну модель (типи циклів, адресація тощо).
Розробкою та впровадженням стандарту займається компанія PCI Special Interest Group, заснована у 1992 році.Сам стандарт розроблено інженерами компанії Intel у 1991 році. Характеристики були підігнані таким чином, щоб максимально повно використовувати потенціал процесорів 486 та Pentium.
Контролери, які існували на той момент, цим вимогам вже не відповідали. Intel, який і створив PCI Special Interest Grou, заявив, що стандарт буде відкритим. Це означає, що в розробці та вдосконаленні цього стандарту могла взяти участь будь-яка компанія без ліцензії.
Перші версії контролера працювали на частоті 33 МГц – на той момент це був вражаючий результат. Пік популярності порту посідає 1995—2005 роки.
Архітектура та конфігурація
Цей контролер передбачає децентралізацію: головного девайсу немає, а ініціатором взаємодії може бути будь-який пристрій, підключений до системної плати через відповідний слот. Периферичні пристрої, що використовують цей протокол, працюють за технологією Plug n Play, тобто по суті є «самоналаштованими». Після запуску комп'ютера системне програмне забезпечення діагностує апаратуру на наявність PCI пристроїв і розподіляє між ними обчислювальну потужність.
За період експлуатації створено кілька версій цього протоколу. Деякі типи слотів відрізнялися габаритами та призначалися для підключення периферії в ноутбуках.
Сьогодні цей порт продовжує використовуватись, і актуальною версією комплектуються сучасні материнські плати. Більше того, деякі користувачі їх активно застосовують – наприклад, для підключення дискретної звукової карти, контролера зовнішніх COM портів, адаптера зі слотом M.2 або мережевої карти, якщо вбудована в материнку зламалася.
Фактично, цей інтерфейс переважною більшістю користувачів залишається незатребуваним, хоча може істотно розширити функціональні можливості комп'ютера.
Логічним продовженням PCI став PCI Express (відомий також як 3GIO) – інтерфейс, що використовує ту ж програмну модель, але з більш продуктивним фізичним рівнем. А ось цей порт сьогодні затребуваний як ніякий інший: саме через нього підключаються відеокарти у сучасних комп'ютерах.
Детальніше про те, що таке PCI E x16, ви можете прочитати тут. Також раджу ознайомитися з публікаціями "Як дізнатися свою материнську плату на Windows 7" та "Що таке чіпсет на материнській платі". Буду вдячний, якщо ви розшарите цю посаду в соціальних мережах. До швидкої зустрічі!
З повагою, автор блогу Андрій Андрєєв.
- 4.1 Системні сигнали