PCI Express — компьютерная шина, использующая программную модель шины PCI и высокопроизводительный физический протокол, основанный на последовательной передаче данных.
Развитием стандарта PCI Express занимается организация PCI Special Interest Group.
В отличие от шины PCI, использовавшей для передачи данных общую шину, PCI Express, в общем случае, является пакетной сетью с топологией типа звезда, устройства PCI Express взаимодействуют между собой через среду, образованную коммутаторами, при этом каждое устройство напрямую связано соединением типа точка-точка с коммутатором.
Кроме того, шиной PCI Express поддерживается:
горячая замена карт;
гарантированная полоса пропускания (QoS);
управление энергопотреблением;
контроль целостности передаваемых данных.
Разработка стандарта PCI Express была начата фирмой Intel после отказа от шины InfiniBand. Официально первая базовая спецификация PCI Express появилась в июле 2002 года.
Шина PCI Express нацелена на использование только в качестве локальной шины. Так как программная модель PCI Express во многом унаследована от PCI, то существующие системы и контроллеры могут быть доработаны для использования шины PCI Express заменой только физического уровня, без доработки программного обеспечения. Высокая пиковая производительность шины PCI Express позволяет использовать её вместо шин AGP и тем более PCI и PCI-X. Де-факто PCI Express заменила эти шины в персональных компьютерах.
Разъёмы
Mini Card — замена форм-фактора Mini PCI. На разъём Mini Card выведены шины: x1 PCIe, USB 2.0 и SMBus.
ExpressCard — подобен форм-фактору PCMCIA. На разъём ExpressCard выведены шины x1 PCIe и USB 2.0, карты ExpressCard поддерживают горячее подключение.
AdvancedTCA — форм-фактор для телекоммуникационного оборудования.
Mobile PCI Express Module — промышленный форм-фактор, созданный для ноутбуков фирмой NVIDIA.
Описание протокола
Для подключения устройства PCI Express используется двунаправленное последовательное соединение типа точка-точка, называемое линией; это резко отличается от PCI, в которой все устройства подключаются к общей 32-разрядной параллельной двунаправленной шине.
Соединение между двумя устройствами PCI Express и состоит из одной (x1) или нескольких (x2, x4, x8, x12, x16 и x32) двунаправленных последовательно соединённых линий. Каждое устройство должно поддерживать соединение по крайней мере с одной линией (x1).
На электрическом уровне каждое соединение использует низковольтную дифференциальную передачу сигнала (LVDS), приём и передача информации производится каждым устройством PCI Express по отдельным двум проводникам, таким образом, в простейшем случае, устройство подключается к коммутатору PCI Express всего лишь четырьмя проводниками.
Использование подобного подхода имеет следующие преимущества:
карта PCI Express помещается и корректно работает в любом слоте той же или большей пропускной способности (например, карта x1 будет работать в слотах x4 и x16);
слот большего физического размера может использовать не все линии (например, к слоту x16 можно подвести проводники передачи информации, соответствующие x1 или x8, и всё это будет нормально функционировать; однако, при этом необходимо подключить все проводники питания и заземления, необходимые для слота x16).
Пропускная способность
Битрейт в PCIe 1.0 составляет 2,5 Гбит/с. Для расчёта пропускной способности шины необходимо учесть дуплексность[2] и избыточность 8b/10b (8 бит в десяти). Например, дуплексная пропускная способность соединения x1 составляет:
2,5 · 2 · 0,8 = 4 Гбит/с
где 2,5 — битрейт, Гбит/с;
2 — учёт дуплексности (двунаправленности);
0,8 — учёт избыточности 8b/10b для 1.0 и 2.0; 0,985 — для 3.0;