Локальна шина PCI - Авдєєв В

5.2. Локальна шина PCI

Шина PCI призначена для роботи з напругою живлення 5V або 3.3V і може бути використана на серверах, настільних ПК, ноутбуках та лаптопах. Плати з різним живленням мають спеціальні ключі в деяких місцях контактів, крім того, особливістю шини PCI є те, що вона не прив'язана до конкретного типу комп'ютера та розроблена з урахуванням застосування нових систем. На рис. 5.1 представлено можливу конфігурацію компонентів, підключених до шини PCI.

локальна

Мал. 5.1. Схема підключення компонентів до шини PCI

Розглянемо призначення основних сигналів PCI шини. Символ #, що стоїть після назви сигналу PCI шини, вказує на те, що активним рівнем цього сигналу є низький рівень (логічний 0). Крім того, позначення, наприклад (31-0), визначає групу ліній (сигналів) з номерами від 31 до 0, t/s-двонаправлений сигнал введення-виводу з трьома станами, s/t/s - активний за низьким рівнем активний сигнал з трьома станами, in – стандартний сигнал введення, out – стандартний активний формувач, o/d – відкритий стік для об'єднання сигналів (АБО).

PAR t/s – парний паритет сигналів AD(31-0) і C/BE(3-0)# всім агентів шини PCI.

FRAME # t / s - Цикл кадру. Цей сигнал встановлюється ініціатором і вказує на початок транзакції шини зняття сигналу означає заключну (фінальну) фазу даних.

IRDY# s/t/s – готовність ініціатора. Майстер формує цей сигнал, якщо здатний передати чи прийняти дані. Сигнал IRDY# використовується разом із сигналом TRDY#. Фаза даних виконується за наявності активних (низьких) рівнів сигналів IRDY і TRDY. Якщо хоча б один із цих сигналів має пасивний (високий) рівень, у роботі ініціатора вставляються такти очікування.

TRDY# s/t/s – готовність мети показує можливість обраного пристрою закінчити поточну фазу даних. При читанні TRDY# вказує на достовірність даних, що передаються, а при записі – на готовність мети прийняти дані.

STOP # s / t / s - стоп. Сигнал мети повідомляє майстра про зупинення поточної події.

IDSEL# in – вибір пристрою ініціалізації. Сигнал формується головним мостом або PCI-PCI для вибору пристрою під час запису або читання його пам'яті конфігурації.

Наступна група сигналів пов'язана з арбітражем та використовується лише ініціаторами для захоплення шини.

REQ# t/s – запит. Показує арбітру, що ініціатор потребує шини PCI. Кожен ініціатор встановлює свій REQ#.

GNT# t/s – дозвіл, встановлюється арбітром і надходить на вхід відповідного ініціатора, якому цей сигнал належить.

До сигналів, що повідомляють про помилки, належать сигнали PERR# та SERR#.

PERR# s/t/s – помилка парності формується агентом, який виявив помилку паритету. Мінімальна тривалість цього сигналу – один такт кожної фази даних.

Системну групу сигналів складають сигнали CLK та RST#.

CLK in – тактові імпульси, які керують по передньому фронту формуванням усіх сигналів шини PCI, крім сигналів скидання та переривання.

RST # in - скидання, встановлює регістри в початковий стан.

Як необов'язкові сигнали розглянемо тільки сигнали переривання.

INTA# o/d – переривання А. Сигнал запиту переривання однофункціональних агентів.

INTB# - INTD# o/d – запити переривань лише багатофункціональних агентів шини PCI.

Запис на згадку

Багаторазове читання пам'яті

Лінійне читання пам'яті

Запис у пам'ять та обнулення

Читання конфігурації здійснюється в галузі конфігурації необхідного агента. Агент вибраний, якщо його IDSEL активний.

Запис конфігурації полягає у передачі даних у пам'ять конфігурації, обрану сигналом IDSEL відповідного агента.

Багаторазове читання пам'яті використовується майстром частої передачі великих масивів даних, якщо є програмно доступний буфер даних (КЕШ).

Лінійне читання пам'яті – команда, аналогічна команді читання пам'яті, крім того, що майстер реалізує більше, ніж дві 32-бітові фази даних. Ця команда застосовується при частій передачі великих масивів даних.

Запис у пам'ять та обнулення дозволяє оптимально використовувати пам'ять, гарантуючи мінімум передач заповнення однієї КЭШ, і вимагає розміру КЭШ, заданого в конфігураційному регістрі.

Формування пакетів виконує шлюз, що стоїть між процесором і шиною PCI, оскільки процесор нині реалізує лише одну фазу даних. Якщо до шини PCI підключено пристрій з однією фазою даних, воно (у разі багатофазової передачі) після першої фази перериває до себе доступ. Для коректної роботи пристрою всі доступи вводу/виводу з'являються на шині PCI, як процесор згенерує їх.

Примітка: 0 – сигнал C/BE# активний,

Управління пересиланням даних виконується з допомогою трьох сигналів: FRAME#, IRDY#, TRDY#. Сигнал FRAME# формується майстром і вказує початок та кінець події на шині. Якщо сигнали FRAME# і IRDY# знято (високі рівні), то інтерфейс вільний (перебуває у пасивному стані).

На рис. 5.2 представлена ​​тимчасова діаграма читання, в якій для спрощення малюнка показані дві фази передачі (ПЕР) даних (ДАН1 і ДАН2) та один такт очікування (ЖК), що встановлюється майстром за допомогою сигналу TRDY #.

локальна

Мал. 5.2. Тимчасова діаграма читання

Подія на шині може бути припинена з ініціативи майстра чи мети. Якщо подія завершується майстром, він знімає сигнал FRAME# при активному сигналі IRDY#, повідомляючи мети про майбутню фінальну фазу даних. Ця остання фаза даних відбувається за активних сигналах IRDY# і TRDY#. Після чого скидається сигнал IRDY# і разом із сигналом FRAME# він набуває неактивного рівня, що означає порожній стан шини.

Для припинення події на шині з боку мети використовується сигнал STOP#, який має бути активним, доки FRAME# стане пасивним.

У разі коли жоден виконавець не відповідає майстру, то він, якщо знятий сигнал DEVSEL#, завершує подію на шині, яка називається майстер-аборт, при цьому скидаються сигнали FRAME# і DEVSEL#. Тимчасова діаграма запису даних зображено на рис. 5.3.

Запис починається встановленням сигналу FRAME#. На рис. 5.3 показано дві фази даних та один такт очікування, який встановлюється шляхом зняття майстром сигналу IRDY#.

авдєєв

Мал. 5.3. Тимчасова діаграма запис

За наявності кількох ініціаторів на шині PCI передбачено процедуру централізованого арбітражу, яка можлива під час попереднього доступу (прихований арбітраж).

На рис. 5.4 показано часову діаграму арбітражу.

Діаграма ілюструє взаємодію двох агентів А та В на шині PCI. Спочатку агент А встановлює першим запит REQ#A на керування шиною, що надходить в арбітр, і отримує доступ до неї з приходом сигналу GNT#A від арбітра. З цього моменту агент А формує FRAME# і починає передачу даних на шині. Сигнал REQ#A утримується агентом, який хоче продовжити подію на шині. Коли FRAME# агента А встановлено, арбітр приймаєзапит REQ#B агента і скидає сигнал GNT#A . Зі надходженням цього сигналу агент А закінчує передачу даних на шині і знімає сигнали FRAME# і IRDY# (звільняє інтерфейс).

авдєєв

Мал. 5.4. Тимчасова діаграма арбітражу

За наявності сигналу арбітра GNT#B активного (низького) рівня і за умови звільнення інтерфейсу агентом А (сигнали FRAME# і IRDY# мають пасивний рівень) управління інтерфейсом отримує агент У. Якщо запит REQ#B агента В знято, це вказує арбітру на завершення події на шині агентом і арбітр обслуговує запит агента А. Арбітр може зняти GNT# будь-якого агента В будь-який час, якщо встановлений більш пріоритетний запит REQ# іншого агента.

Шина PCI реалізує цикли підтвердження переривання. Тимчасова діаграма циклу підтвердження переривання показано на рис. 5.5.

локальна

Мал. 5.5. Тимчасова діаграма підтвердження переривання

шина

Мал. 5.6. Тимчасова діаграма контролю парності

Розглянемо деякі вимоги до пристроїв шини PCI. Як формувачі (приймачі) сигналів шини слід використовувати елементи, які не споживають струм у статичному стані, а споживають його в моменти перемикання. До таких елементів відносяться КМОП (компліментарні польові кремнієві елементи), що дозволяють суттєво знизити споживання пристроєм енергії. Для побудови інтерфейсних схем (контролерів) можна використовувати програмовані логічні інтегральні схеми (ПЛІС), виготовлені за технологією КМОП, наприклад, ПЛІС фірми Xilinx, або вітчизняні аналоги, що випускаються Воронезьким НДІЕТ.

У зовнішній платі, що підключається через слот (роз'єм) до шини PCI, більшу частину струму споживають резистори, що підтягують, (2.7К при напрузі 5V),стабілізуючі значення сигналів PCI шини. У слоті шини PCI є два контакти: PRSNT1# і PRSNT2#, коди на входах яких використовуються для індикації зовнішньої плати в слоті та визначення споживаної потужності платою. Наприклад, код 00 вказує, що зовнішня плата присутня і споживана нею потужність 7.5W максимум. Таким чином, зовнішня плата повинна вказувати максимальну потужність, що споживається. Слоти підключаються до чотирьох шин живлення: 5V, 3.3V, 12V та –12V. Максимальна споживана потужність кожної зовнішньої плати дорівнює 25W. Формувачі повинні мати вихідний струм низького рівня (без резистора) – 3 мА або 6 мА з резистором. Максимальна ємність виведення компонента дорівнює 10 пФ та максимальна довжина доріжки від з'єднувача плати до елемента не більше 3.8 см. Шинний сигнал повинен бути обмежений одним навантаженням.

На закінчення цієї теми розглянемо підключення двох регістрів Р1 і Р2, доступних за записом та читанням, до шини PCI (рис. 5.7), причому з метою спрощення малюнка пам'ять конфігурації не розглядається.

локальна

Мал. 5.7. Структурна схема виконавця шини PCI

За відсутності можливості виконати цю умову слід однією такт затримати формування TRDY#, тобто. ввести такт очікування у роботі ініціатора. У схемі не використовується приймач даних, що вносить затримку як, наприклад, в контролерах шини ISA, тут замість нього застосовуються два формувача (ФОР) з трьома станами. Крім того, при читанні даних схема контролю (СК) формує вихідний сигнал PAR#, а при записі даних вона порівнює вхідний сигнал PAR# з результатом перевірки даних на парність. Якщо виявлено помилку, то встановлюється сигнал PERR#.

У форматі заголовка перші 16 байтів стандартні для PCI пристроїв, а наступні 48 байтів можуть матирізні розташування залежно від базових функцій цих пристроїв. Специфічні (довільні) відомості про пристрої записуються в байтах пам'яті конфігурації в діапазоні 64-256.

авдєєв

Мал. 5.8. Формат заголовка конфігурації

Ідентифікатори пристрою та виробника визначають відповідно тип (номер) пристрою та його виробника.

Коди класу пристроїв містять коди базового класу (старші байти зі зміщенням 0Bh), які на рівні визначають класи пристроїв.

Розрізняють такі класи пристроїв та їх коди: контролери пам'яті (01h), мережні контролери (02h), дисплейні адаптери (03h), мультимедійні пристрої (04h), контролери пам'яті (05h) та мости (06h).

Середній байт (зсув 0Аh) коду класу містить код підкласу пристроїв. Наприклад, для базового класу 01h контролеру SCSI відповідає підклас 00h, контролеру IDE – підклас 01h, контролеру гнучкого диска – підклас 02h тощо.

Молодший біт (зсув 09h) визначає інтерфейс програмування лише на рівні регістру. Зазвичай цей байт дорівнює 00h.

Базовий клас мостів (код 06h) має такі підкласи: головний міст (00h), ISA міст (01h), EISA міст (02h), MC міст (03h), PCI-PCI міст (04h) та ін.

Номер версії визначається виробником і може розглядатися розширенням номера пристрою. Управління вбудованим тестом, якщо він є, здійснюється вмістом відповідного регістру формату заголовка конфігурації. Крім того, у цьому регістрі відзначаються результати тестування (біти завершення).

Таймер, що входить до складу заголовка, підраховує число тактів шини PCI та визначає час, виділений майстру, для звільнення шини за наявності інших запитів на захоплення шини.

Розмір КЕШ визначається числом 32-бітнихданих та необхідний з метою визначення межі пакетної передачі даних.

Регістр установки таймера (2 байти) призначений для завдання тривалості пакетного періоду та частоти доступу до шини PCI. У регістрі висновок переривання (8 біт) визначається, який сигнал переривання використовується пристроєм, наприклад, значення 1 відповідає сигналу INTA #, значення 2 сигналу INTB # і т.д. Регістр лінії переривання зберігає інформацію про з'єднання виведення переривання пристрою із входом системного контролера переривання, тобто. повідомляється номер запиту системного контролера переривання.

Тимчасова діаграма для читання пам'яті конфігурації представлена ​​на рис. 5.9.

авдєєв

Мал. 5.9. Читання пам'яті конфігурації

Доступ типу 1 (доступ до пристрою іншою шині) визначається значеннями бітів D1 D0, рівними 01. При цьому зверненні використовуються в регістрі PAR біти D23-D16, призначені для вибору однієї з 128 шин системи.

авдєєв

Рис. 5.10. Схема трансляції вмісту РАК на шину AD

Роз'єм шини PCI показаний на рис. 5.11, у якому для зручності розміщення номера висновків подано у двох колонках.