PCI (Peripheral component interconnect) — это параллельная шина ввода-вывода материнской платы, которая используется для установки дополнительного аппаратного обеспечения. Одним из главных преимуществ этого стандарта в свое время стало то, что разработчик (компания Intel и созданная ею группа PCI Special Interest Group) объявил интерфейс PCI открытым. Это решение позволило значительно расширить ассортимент аппаратных устройств для ПК, так как производителям не нужно было получать лицензию на свой продукт для использования шины PCI.
Работа шины PCI
Поскольку шина PCI разработана с нуля, а не является попыткой модернизации одного из существующих интерфейсов, разработчики Intel отказались от использования шины процессором. Это позволило создать локальную, не зависящую от процессора шину. Данные между процессором и оперативной памятью, а также между устройствами самой шины PCI передаются независимо друг от друга.
Работа шины PCI полностью основывается на принципе Plug & Play и управляется базовой системой ввода-вывода (BIOS). При старте компьютера, происходит распределение аппаратных ресурсов между устройствами шины PCI.
Поскольку шина PCI является децентрализованной, любое устройство может стать главным инициатором транзакций и запросить столько ресурсов, сколько необходимо для выполнения текущих операций. Для этого используется система арбитража с отдельной логикой арбитра. Новые транзакции инициируются в процессе предыдущих запущенных транзакций. Данные и адреса между устройствами шины PCI передаются циклическим методом и используют несколько типов транзакций: «обычную», «пакетную» и «расщеплённую».
«Обычная» транзакция состоит из одного или двух циклов адреса.
«Пакетная» транзакция со множеством циклов чтения/записи использует один цикл адреса на несколько данных, а не на каждый цикл данных. Транзакция может быть временно приостановлена обоими устройствами из-за опустошения или переполнения буфера данных.
Принцип «расщеплённой» транзакции заключается в следующем: когда целевое устройство отвечает состоянием «в процессе», инициатор освобождает шину для других устройств, при этом целевое устройство может захватить шину снова через арбитраж и повторить транзакцию. Этот процесс продолжается, пока целевое устройство не ответит статусом «сделано». Этот метод используется для сопряжения шин с разными скоростями (PCI и FSB-шина процессора) и для предотвращения тупиковых ситуаций в сценариях взаимодействия со многими межшинными мостами.
Версии шины PCI
Шина PCI имеет несколько версий, каждая из которых представляет собой улучшенную и расширенную версию предыдущей.
Основные версии шины PCI:
- PCI 1.0 — оригинальная версия PCI, которая поддерживает передачу данных со скоростью до 133 МБ/с на частоте 33 МГц.
- PCI 2.0 — увеличена скорость передачи данных до 266 МБ/с на частоте 66 МГц.
- PCI 2.1 — небольшое обновление версии PCI0.
- PCI 2.2 — ещё одно небольшое обновление, внесены некоторые технические улучшения и корректировки.
- PCI 3.0 — новая версия интерфейса PCI, увеличена пропускная способность до 533 МБ/с на частоте 133 МГц.
- PCI-X (PCI Extended) — расширение стандарта PCI 64, значительно увеличена пропускная способность шины:
- PCI-X 1.0 — максимальная скорость составляет 1024 МБ/с на частоте 133 МГц;
- PCI-X 2.0 — пиковое значение пропускной способности составляет 4096 МБ/с на частоте 533 МГц.
P.S. На данный момент шина PCI практически вытеснена высокоскоростным интерфейсом PCI Express.