Открыть сервис

PCI Express

PCI Express (Peripheral Component Interconnect Express, также сокращённо PCIe или PCI-E) — это высокоскоростная последовательная шина, используемая для подключения периферийных устройств к материнской плате компьютера. Разработана как замена более старых параллельных шин, таких как PCI, PCI-X и AGP. Стандарт был предложен компанией Intel в 2001 году и с тех пор стал доминирующим интерфейсом для подключения видеокарт, твердотельных накопителей (SSD), сетевых карт, контроллеров RAID и других устройств расширения. Ключевой особенностью PCI Express является использование последовательной передачи данных по дифференциальным парам проводников, что обеспечивает высокую пропускную способность и масштабируемость.

История

Предпосылки создания

К началу 2000-х годов параллельная шина PCI (Peripheral Component Interconnect) перестала удовлетворять растущим требованиям к пропускной способности, особенно для графических карт. AGP (Accelerated Graphics Port) частично решал проблему, но был узкоспециализированным и не подходил для других устройств. Ограничения параллельных шин — синхронизация сигналов на высоких частотах, сложность разводки на печатных платах и рост энергопотребления — требовали принципиально нового подхода.

Разработка и внедрение

В 2001 году Intel представила спецификацию 3GIO (Third Generation I/O), которая легла в основу PCI Express. В 2002 году был сформирован консорциум PCI-SIG (PCI Special Interest Group), объединивший Intel, AMD, IBM, Dell, HP и других производителей, для развития стандарта. Первая версия PCI Express 1.0 была опубликована в 2003 году. Уже в 2004 году началось массовое внедрение шины в материнские платы для настольных ПК, заменившей AGP для видеокарт и PCI для большинства других устройств.

Эволюция версий

Стандарт активно развивался, каждая новая версия удваивала пропускную способность на линию:

  • PCIe 1.0 (2003): 2,5 GT/s (гигатранзакций в секунду) на линию, пропускная способность около 250 МБ/с в одном направлении на линию.
  • PCIe 2.0 (2007): 5 GT/s, пропускная способность 500 МБ/с на линию. Введена поддержка управления питанием.
  • PCIe 3.0 (2010): 8 GT/s, эффективная пропускная способность около 1 ГБ/с на линию благодаря улучшенному кодированию (128b/130b вместо 8b/10b).
  • PCIe 4.0 (2017): 16 GT/s, пропускная способность 2 ГБ/с на линию. Широкое распространение получила в 2019-2020 годах.
  • PCIe 5.0 (2019): 32 GT/s, пропускная способность 4 ГБ/с на линию. Начала внедряться в потребительском сегменте с 2022 года.
  • PCIe 6.0 (2022): 64 GT/s, пропускная способность 8 ГБ/с на линию. Использует PAM-4 кодирование и FEC (Forward Error Correction). Ориентирована на серверы и дата-центры.
  • PCIe 7.0 (анонс 2025 года): 128 GT/s, пропускная способность 16 ГБ/с на линию. Ожидается в 2027-2028 годах.

Архитектура и принцип работы

Топология

В отличие от параллельных шин, PCIe использует последовательную точку-точка топологию. Каждое устройство подключается непосредственно к коммутатору (switch), который управляет маршрутизацией пакетов. Это устраняет проблему разделения пропускной способности между несколькими устройствами на одной шине, как это было в PCI.

Линии (Lanes)

Основой PCIe является линия (lane), состоящая из двух дифференциальных пар проводников: одна для передачи данных (Tx), другая для приёма (Rx). Каждая линия обеспечивает дуплексную передачу данных. Устройства могут использовать разное количество линий: x1, x4, x8, x16, x32. Чем больше линий, тем выше пропускная способность. Физические слоты различаются по длине: слот x1 (короткий) для карт расширения, слот x16 (длинный) для видеокарт.

Передача данных

Данные передаются в виде пакетов (Transaction Layer Packets, TLP), которые содержат заголовок, данные и контрольную сумму. Пакеты проходят через три уровня модели:

  1. Транзакционный уровень (Transaction Layer): Формирует и принимает TLP, управляет порядком пакетов и обработкой ошибок.
  2. Уровень канала данных (Data Link Layer): Обеспечивает надёжную передачу TLP между двумя устройствами, используя подтверждения (ACK/NAK) и управление потоком.
  3. Физический уровень (Physical Layer): Отвечает за электрические характеристики, кодирование и синхронизацию сигналов.

Кодирование

Для синхронизации и уменьшения постоянной составляющей сигнала используется кодирование. В PCIe 1.0 и 2.0 применялось кодирование 8b/10b (каждые 8 бит данных преобразуются в 10 бит для передачи, что даёт 20% служебных накладных расходов). Начиная с PCIe 3.0, используется более эффективное кодирование 128b/130b, снижающее накладные расходы до 1,5%.

Классификация и форм-факторы

По количеству линий

  • x1: Для низкопроизводительных устройств: звуковые карты, сетевые карты, контроллеры USB.
  • x4: Для SSD NVMe, RAID-контроллеров, некоторых сетевых карт.
  • x8: Для высокопроизводительных SSD, некоторых графических карт (в серверах).
  • x16: Для видеокарт (основной форм-фактор).
  • x32: Редко используется, в основном в серверных решениях.

По физическому исполнению

  • Слоты на материнской плате: Наиболее распространённый тип. Различаются по длине и количеству контактов.
  • Внешние кабели (PCIe over Cables): Используются для подключения внешних корпусов с видеокартами или SSD (например, Thunderbolt 3/4, OCuLink).
  • M.2: Компактный разъём для SSD, Wi-Fi и Bluetooth модулей. Использует до 4 линий PCIe (обычно x4).
  • U.2 (SFF-8639): Разъём для серверных SSD, поддерживает до 4 линий PCIe.
  • ExpressCard: Устаревший стандарт для ноутбуков, использовал 1 линию PCIe.

Применение

В потребительских компьютерах

  • Видеокарты: Основное применение. Используют слоты x16. Современные видеокарты (например, NVIDIA GeForce RTX 4090) требуют PCIe 4.0 x16 для полной реализации производительности, хотя обратно совместимы с PCIe 3.0.
  • Твердотельные накопители (SSD): NVMe SSD, подключаемые через M.2 или слоты x4, обеспечивают скорость чтения/записи до 14 ГБ/с на PCIe 5.0.
  • Сетевые карты: Gigabit Ethernet (1 Гбит/с) и 10 Gigabit Ethernet (10 Гбит/с) карты обычно используют x1 или x4.
  • Звуковые карты, контроллеры USB, карты захвата видео.

В серверах и дата-центрах

  • Высокопроизводительные вычисления (HPC): Подключение GPU-ускорителей (NVIDIA A100, AMD Instinct) через x16.
  • Сетевые адаптеры: 100/200/400 GbE карты, использующие x8 или x16.
  • RAID-контроллеры: Для подключения массивов жёстких дисков.
  • FPGA-ускорители: Для специализированных задач (сжатие, шифрование).
  • NVMe-oF (NVMe over Fabrics): Использование PCIe для подключения удалённых SSD через сеть.

Встраиваемые системы

Преимущества и недостатки

Преимущества

  • Высокая пропускная способность: Последовательная передача и масштабирование линий обеспечивают огромную скорость (до 128 ГБ/с на x16 в PCIe 7.0).
  • Масштабируемость: Количество линий легко настраивается под потребности устройства.
  • Низкая задержка: Прямое соединение точка-точка минимизирует задержки.
  • Обратная совместимость: Устройства PCIe 4.0 могут работать в слоте PCIe 3.0 (на скорости 3.0) и наоборот.
  • Горячая замена (Hot Plug): Поддерживается в серверных системах (при наличии соответствующего контроллера).
  • Энергоэффективность: Управление питанием (ASPM — Active State Power Management) позволяет снижать энергопотребление неактивных устройств.

Недостатки

  • Сложность разводки: Высокоскоростные линии требуют строгого контроля импеданса и длины дорожек на печатной плате, что увеличивает стоимость проектирования.
  • Ограничение длины: Максимальная длина кабеля для внешних соединений ограничена (обычно до нескольких метров).
  • Необходимость в коммутаторах: Для подключения нескольких устройств требуется сложный коммутатор (switch), который может быть дорогим.
  • Совместимость с устаревшими устройствами: Для подключения старых карт PCI требуется мост (bridge), что снижает производительность.

Критика и альтернативы

Критика

  • Сложность для потребителей: Пользователи часто путают версии PCIe (3.0 vs 4.0 vs 5.0) и количество линий, что приводит к неоптимальному выбору оборудования.
  • Энергопотребление: Высокоскоростные версии (5.0 и выше) потребляют больше энергии, что требует улучшенного охлаждения.
  • Проблемы с совместимостью: Хотя стандарт обратно совместим, некоторые старые материнские платы могут не поддерживать новые устройства из-за отсутствия необходимых микросхем.

Альтернативы

  • USB (Universal Serial Bus): Для периферии с низкой и средней скоростью (клавиатуры, мыши, внешние диски). USB4 может использовать протокол PCIe для подключения внешних устройств.
  • Thunderbolt: Использует PCIe и DisplayPort, обеспечивая высокую скорость (до 40 Гбит/с) для внешних корпусов с видеокартами и SSD.
  • Fibre Channel: Для высокоскоростных хранилищ данных в серверах.
  • InfiniBand: Для высокопроизводительных вычислительных кластеров (HPC) с очень низкой задержкой.
  • CXL (Compute Express Link): Открытый стандарт, основанный на PCIe 5.0/6.0, для когерентного доступа к памяти между процессорами, GPU и ускорителями.

Интересные факты

  • Первая версия PCIe (1.0) могла передавать данные со скоростью, в 10 раз превышающей скорость шины AGP 8x.
  • В слот PCIe x16 физически можно установить карту x1, x4 или x8 — они будут работать на меньшем количестве линий.
  • Некоторые материнские платы имеют слоты x16, которые электрически являются x8 или x4 (например, второй слот для видеокарты в режиме SLI/CrossFire).
  • В серверах используются специальные коммутаторы PCIe, которые позволяют подключать до 256 устройств к одному корню (root complex).
  • Стандарт PCIe 6.0 впервые использует PAM-4 (4-уровневая амплитудная модуляция) для передачи данных, что усложняет физический уровень, но позволяет удвоить скорость.

Источники

  • PCI-SIG (Peripheral Component Interconnect Special Interest Group) — официальные спецификации стандарта.
  • Intel Corporation — документация по архитектуре PCI Express.
  • Материалы конференций и журналов: "PCI Express Technology" (MindShare), "Computer Architecture: A Quantitative Approach" (Hennessy, Patterson).
  • Обзоры и тесты оборудования на сайтах: Tom's Hardware, AnandTech, 3DNews.
  • Статьи в Википедии (русскоязычная и англоязычная версии).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →