Функции архитектурных уровней интерфейса PCI Express
Уровень транзакций (transaction layer) — верхний уровень архитектуры, отвечающий за сборку и разборку пакетов TLP (Transaction Layer Packet — пакет уровня транзакций). Эти пакеты используются для транзакций чтения и записи, а также для сообщений о событиях некоторых типов. Каждый пакет TLP имеет уникальный идентификатор, который позволяет направить ответный пакет его отправителю. В TLP поддерживаются различные форматы адресации, зависящие от типов транзакций. Пакет может иметь атрибуты отмены слежения за когерентностью NS (No Snoop) и «расслабленной» упорядоченности R0 (Relaxed Ordering). Каждая транзакция, требующая ответа, выполняется в виде расщепленной транзакции. Уровень транзакций отвечает и за управление потоком, реализованное на основе механизма кредитов.
Канальный уровень (data link layer), промежуточный в стеке, отвечает за управление связью, обнаружение ошибок и организацию повторных передач вплоть до успеха или признания отказа соединения. К пакетам, полученным от уровня транзакций, канальный уровень добавляет свои заголовки (номера пакетов и контрольные коды). Канальный уровень и сам является генератором и получателем пакетов DLLP (Data Link Layer Packet — пакет канального уровня), используемых для управления соединением.
Физический уровень (physical layer) изолирует канальный от всех подробностей передачи сигналов. Он состоит из двух субблоков.
Логический субблок при передаче выполняет распределение данных по линиям, скремблирование, кодирование по схеме 8В/10В, кадрирование и преобразование в последовательный код. При приеме выполняются обратные действия. Символы, добавляемые при кодировании 8В/10В, используются для служебной сигнализации. Логический субблок отвечает и за согласование соединения, инициализацию и т. п.
Электрический субблок отвечает за электрическое согласование, синхронизацию, обнаружение приемника.
Уровневая модель, принятая в интерфейсе PCI Express, позволяет, не затрагивая остальных уровней, сменить физический уровень или его субблоки, когда появятся более эффективные схемы кодирования и сигнализации. Интерфейс между физическим и канальным уровнями зависит от реализации этих компонентов и выбирается их разработчиком. Интерфейс физического уровня четко специфицирован, что обеспечивает возможность соединения устройств разного происхождения. Для тестирования на соответствие электрическим параметрам достаточно подключить устройство PCI Express к специальному тестеру.