Шина PCI (Peripheral Component Interconnect bus)

13.08.2015

Шина PCI (Peripheral Component Interconnect bus)

Отже, переходимо до найцікавішого. Що ж знаходиться на сьогоднішній день усередині більшості наших комп’ютерів? Природно, шина PCI. Інше питання, чому саме ця шина. Спробуємо розібратися.

Отже, розробка шини PCI почалася навесні 1991 року як внутрішній проект корпорації Intel (Release 0.1). Фахівці компанії поставили перед собою мету розробити недороге рішення, яке б дозволило повністю реалізувати можливості нового покоління процесорів 486/Pentium/P6 (ось вже половина відповіді). Особливо підкреслювалося, що розробка проводилася «з нуля», а не була спробою встановлення нових «латок» на існуючі рішення. У результаті шина PCI з’явилася в червні 1992 року (R1.0). Розробники Intel відмовилися від використання шини процесора і ввели ще одну «антресольную» (mezzanine) шину.

Шина PCI (Peripheral Component Interconnect bus)

Завдяки такому рішенню шина вийшла, по-перше, процессоро-незалежної (на відміну від VLbus), а по-друге, могла працювати паралельно з шиною процесора, не звертаючись до неї за запитами. Наприклад, процесор працює з кешем або системною пам’яттю, а в цей час по мережі на вінчестер пишеться інформація. Просто здорово! Насправді ідилії, звичайно, не виходить, але завантаження шини процесора знижується здорово. Крім того, стандарт шини був оголошений відкритим і переданий PCI Special Interest Group, яка продовжила роботу щодо вдосконалення шини (в даний час доступний R2.1), і в цьому, мабуть, друга половина відповіді на питання «чому PCI?»

Основні можливості шини наступні.

  • Синхронний 32-х або 64-х розрядний обмін даними (правда, наскільки мені відомо, 64-розрядна шина в даний час використовується тільки в Alpha-системах і серверах на базі процесорів Intel Xeon, але, в принципі, за нею майбутнє). При цьому для зменшення числа контактів (і вартості) використовується мультиплексування, тобто адреса і дані передаються по одним і тим же лініям.
  • Підтримка 5V 3.3 V логіки. Роз’єми для 5 та 3.3 V плат розрізняються розташуванням ключів

Шина PCI (Peripheral Component Interconnect bus)

Існують і універсальні плати, що підтримують обидва напруги. Зауважимо, що частота 66MHz підтримується тільки 3.3 V логікою.

  • Частота роботи шини 33MHz або 66MHz (у версії 2.1) дозволяє забезпечити широкий діапазон пропускних здатностей (з використанням пакетного режиму):
    • 132 МВ/сек при 32-bit/33MHz;
    • 264 MB/сек при 32-bit/66MHz;
    • 264 MB/сек при 64-bit/33MHz;
    • 528 МБ/сек при 64-bit/66MHz.

    При цьому для роботи шини на частоті 66MHz необхідно, щоб всі периферійні пристрої працювали на цій частоті.

  • Повна підтримка multiply bus master (наприклад, кілька контролерів жорстких дисків можуть одночасно працювати на шині).
  • Підтримка write-back і write-through кеша.
  • Автоматичне конфігурування карт розширення при включенні живлення.
  • Специфікація шини дозволяє комбінувати до восьми функцій на одній карті (наприклад, відео + звук і т. д.).
  • Шина дозволяє встановлювати до 4 слотів розширення, однак можливе використання моста PCI-PCI для збільшення кількості карт розширення.
  • PCI-пристрої обладнані таймером, який використовується для визначення максимального проміжку часу, протягом якого пристрій може займати шину.
  • При розробці шини в її архітектуру були закладені передові технічні рішення, що дозволяють підвищити пропускну здатність.

    Шина підтримує метод передачі даних, званий «linear burst» (метод лінійних пакетів). Цей метод передбачає, що пакет інформації зчитується (або записується) «одним шматком», тобто адресу автоматично збільшується для наступного байта. Природним чином при цьому збільшується швидкість передачі власне даних за рахунок зменшення числа переданих адрес.

    Шина PCI є тією черепахою, на якій стоять слони, що підтримують «Землю» — архітектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Специфікація шини PCI визначає три типи ресурсів: два звичайних (діапазон пам’яті і діапазон вводу/виводу, як їх називає компанія Microsoft) і configuration space «конфігураційне простір».

    Шина PCI (Peripheral Component Interconnect bus)

    Конфігураційне простір складається з трьох регіонів:

    • заголовка, незалежного від пристрою (device-independent header region);
    • регіону, обумовленого типом пристрою (header-type region);
    • регіону, що визначається користувачем (user-defined region).

    У заголовку міститься інформація про виробника і тип пристрою — поле Class Code (мережевий адаптер, контролер диска, мультимедіа і т. д.) і інша службова інформація.

    Наступний регіон містить регістри діапазонів пам’яті і введення/виводу, які дозволяють динамічно виділяти пристрою область системної пам’яті і адресного простору. В залежності від реалізації системи конфігурація пристроїв проводиться або BIOS (при виконанні POST — power-on self test), або програмно. Базовий регістр expansion ROM аналогічно дозволяє відображати ROM пристрої в системну пам’ять. Поле CIS (Card Information Structure) pointer використовується картами cardbus (PCMCIA R3.0). З Subsystem vendor/Subsystem ID все зрозуміло, а останні 4 байти регіону використовуються для визначення переривання і часу запиту/володіння.

    Короткий опис статті: pci контролер

    Джерело: Шина PCI (Peripheral Component Interconnect bus)

    Також ви можете прочитати