PCI (англ. Peripheral component interconnect, дословно — взаимосвязь периферийных компонентов) — шина ввода/вывода для подключения периферийных устройств к материнской плате компьютера. (1992 г) Стандарт на шину PCI определяет:
физические параметры (например, разъёмы и разводку сигнальных линий);
электрические параметры (например, напряжения);
логическую модель (например, типы циклов шины, адресацию на шине).
Для компьютеров с процессором Pentium корпорацией Intel в 1992 г.2 была разработана шина расширения PCI (Peripheral Component Interconnect), которая являлась в то время совершенно новой шиной, а не просто модернизацией шины ISA. Универсальность и независимость от аппаратной части позволили использовать ее не только с процессорами л;86, но и, например, с процессорами PowerPC.
В основе принципа организации шины PCI лежит идея применения мостов (Bridge) между разными шинами в компьютере, например, она применяется для согласования протоколов между шиной ISA и шиной PCI (PCI to ISA Bridge). Шина PCI является независимой от других шин и позволяет осуществлять связь между любыми узлами.
Наиболее интересной особенностью шины PCI является принцип Bus Mastering, когда внешнее устройство без помощи центрального процессора может управлять шиной, становясь главным устройством при передаче данных. То есть в компьютере может одновременно (без временного разделения) выполняться, например, две задачи — процессор занимается одной задачей, а контроллер винчестера загружает данные в память через шину PCI (в какой-то степени это похоже на режим прямого доступа к памяти DMA).
Чтобы освободить процессор от работы по пересылке данных от периферийных устройств в оперативную память и обратно, используют контроллер DMA (Direct Memory Access). При использовании режима DMA различные устройства и ОЗУ обмениваются данными через каналы прямого доступа к памяти без использования ресурсов процессора. В компьютерах, начиная с IBM PC AT, имеется 7 каналов (4 канала от 1-го контроллера DMA и 3 канала от 2-го). Во время процесса пересылки данных процессор может заниматься другими задачами. Например, звуковая карта получает данные по каналу DMA1, а в это время процессор используется для обработки данных в офисных приложениях.
Конфигурация:
PCI-устройства с точки зрения пользователя самонастраиваемы (Plug and Play). После старта компьютера системное программное обеспечение обследует конфигурационное пространство PCI каждого устройства, подключённого к шине, и распределяет ресурсы.
Каждое устройство может затребовать до шести диапазонов в адресном пространстве памяти PCI или в адресном пространстве ввода-вывода PCI.
Кроме того, устройства могут иметь ПЗУ, содержащее исполняемый код для процессоров x86 или PA-RISC, Open Firmware (системное ПО компьютеров на базе SPARC и PowerPC) или драйвер EFI.
Настройка прерываний осуществляется также системным программным обеспечением (в отличие от шины ISA, где настройка прерываний осуществлялась переключателями на карте). Запрос на прерывание на шине PCI передаётся с помощью изменения уровня сигнала на одной из линий IRQ, поэтому имеется возможность работы нескольких устройств с одной линией запроса прерывания; обычно системное ПО пытается выделить каждому устройству отдельное прерывание для увеличения производительности.
Спецификация шины PCI:
частота шины — 33,33 или 66,66 МГц, передача синхронная;
разрядность шины — 32 или 64 бита, шина мультиплексированная (адрес и данные передаются по одним и тем же линиям);
пиковая пропускная способность для 32-разрядного варианта, работающего на частоте 33,33 МГц — 133 Мбайт/с;
адресное пространство памяти — 32 бита (4 байта);
адресное пространство портов ввода-вывода — 32 бита (4 байта);
конфигурационное адресное пространство (для одной функции) 256 байт;
напряжение 3,3 или 5 В.
PCI Express (ранее известный как 3GI0/Arapaho) — новый последовательный интерфейс, использующий программную модель PCI, однако обладающий более производительным физическим уровнем (используется LVDS и новые разъёмы).