Шина PCI Express

Содержание

Слайд 2

Шина PCI Express (проект Arapahoe) была разработана в 2002 году как

Шина PCI Express (проект Arapahoe) была разработана в 2002 году как

универсальный периферийный интерфейс системного уровня. Первая общепринятая спецификация имеет версию 1.0а, она была принята комитетом PCI SIG в 2003 году. Позднее была принята спецификация 1.1, в 2007 году одобрена спецификация 2.0. Появление версии 3.0 ожидается в 2010 году.
При разработке PCI Express особое внимание было уделено совместимости с PCI на уровне механизма конфигурирования, программного доступа и поддержки со стороны ОС и драйверов. При этом требовалось сохранить или уменьшить стоимость реализации при значительном улучшении всех характеристик, прежде всего пропускной способности.

Шина PCI Express

Слайд 3

Вместо шинного соединения PCI в PCI Express применена схема объединенных через

Вместо шинного соединения PCI в PCI Express применена схема объединенных через

коммутаторы двухточечных каналов связи между устройствами и портами.
Соединение (Link) – это две пары встречных симплексных каналов. Каждый канал является низковольтной дифференциальной парой сигналов.
Скорость соединения (Signaling Rate) устанавливается в начале работы шины; определены две скорости – 2.5 Гбит/с и 5.0 Гбит/с (PCIe 2.0).

PCI Express Link

Слайд 4

Соединение (Link) может включать одну или несколько линий (Lane), каждая из

Соединение (Link) может включать одну или несколько линий (Lane), каждая из

которых представляет собой пару дифференциальных сигналов – передающую (Transmitting) и принимающую (Receiving). В целях масштабирования соединение может агрегировать несколько линий.
Спецификация предусматривает следующие конфигурации соединения: x1, x2, x4, x8, x12, x16, x32.
Количество дифференциальных пар на прием и передачу должно быть одинаково, несимметричные соединения невозможны.
Данные по разным линиям передаются побайтно, общий поток делится на блоки, кратные количеству линий.

PCI Express Lane

Слайд 5

Коммутационная фабрика PCI Express

Коммутационная фабрика PCI Express

Слайд 6

Это аналог главного моста (Host Bridge) в шине PCI. Он отвечает

Это аналог главного моста (Host Bridge) в шине PCI. Он отвечает

за связь с процессором и системной памятью, а также за конфигурирование всей фабрики.
RC содержит несколько портов PCI Express (Root ports), которые могут (необязательно) взаимодействовать между собой посредством виртуального коммутатора. К каждому из портов RC может подключаться коммутатор (switch), мост для другой шины (напр., PCI) или конечное устройство (Endpoint).
RC отвечает за конфигурационные циклы, может выполнять циклы доступа к портам и пространству памяти. RC может запрашивать блокированные (Locked) операции, но не может отвечать на запросы с блокировкой.

Корневой комплекс (RC)

Слайд 7

Каждое конечное устройство подключается к порту либо RC, либо коммутатора. Устройство

Каждое конечное устройство подключается к порту либо RC, либо коммутатора. Устройство

выполняет транзакции от своего имени либо от имени подключенной к нему шины, устройства или контроллера другого интерфейса.
Устройства могут быть полноценными и устаревшего типа (Legacy).
Полноценное устройство:
Не работает через порты – только через диапазон памяти
Не работает с блокированными запросами
Поддерживает 64-битное адресное пространство по умолчанию
Поддерживает механизм прерываний MSI, причем с 64-битным пространством
Имеет расширенное пространство конфигурирования

Конечное устройство (Endpoint)

Слайд 8

Позаимствован у PCI-X 2.0. Стандартный способ доступа – через конфигурационный цикл

Позаимствован у PCI-X 2.0. Стандартный способ доступа – через конфигурационный цикл

– сохранен для совместимости. Полное конфигурационное пространство каждого устройства занимает 4 Кб.

Расширенный механизм конфигурирования

Слайд 9

Для упрощения доступа к конфиг. регистрам предусмотрен механизм их отображения на

Для упрощения доступа к конфиг. регистрам предусмотрен механизм их отображения на

пространство памяти. По заданному базовому адресу находится пространство для всех возможных устройств в рамках системной шины.

(продолжение)

Слайд 10

Порт – это логическая точка подключения соединения (Link), которая отвечает за

Порт – это логическая точка подключения соединения (Link), которая отвечает за

управление линиями, сборку в пакеты исходящих данных и разборку входящих. Портами оснащен RC и коммутаторы (если они имеются). С точки зрения программирования порт представляет собой виртуальный мост PCI-PCI, а его Link – виртуальную подчиненную (вторичную) шину PCI.
Все порты делятся на корневые (принадлежат RC), нисходящие и восходящие (последние – только у коммутаторов).

Порт PCI Express

Слайд 11

Коммутатор служит для расширения количества подключаемых устройств, это аналог моста дополнительных

Коммутатор служит для расширения количества подключаемых устройств, это аналог моста дополнительных

шин PCI. Программно коммутатор представляет собой набор мостов PCI-PCI. Один из портов коммутатора ведет к порту RC или другого коммутатора.

Коммутатор PCI Express

Слайд 12

В отличие от PCI протокол PCI Express условно разделен на уровни,

В отличие от PCI протокол PCI Express условно разделен на уровни,

без уточнения способов их реализации. Уровней всего три, на каждом выполняется сборка и разборка пакетов и их обрамление необходимыми заголовками и контрольными суммами. Не все пакеты относятся к уровню транзакций, существуют пакеты только канального уровня, служащие для управления.

Уровни протокола PCI Express

Слайд 13

Этот уровень отвечает в основном за выполнение операций чтения и записи

Этот уровень отвечает в основном за выполнение операций чтения и записи

в память либо в порты ввода-вывода.
Все транзакции, требующие ответа (обычно чтение), выполняются как расщепленные (Split): их инициатор получает статус запросчика (Requester), а целевое устройство – статус исполнителя (Completer).
На уровне транзакций поддерживается 4 адресных пространства:
Памяти (основное)
Портов в-в (для совместимости)
Конфигурационное
Пространство сообщений (Message Space)
Последнее используется для эмуляции сигналов шины PCI (INTx#, PME# и др.) – т.н. «виртуальные провода».

Уровень транзакций

Слайд 14

Пакеты шины PCI Express оптимизированы для передачи по высокоскоростным последовательным линиям.

Пакеты шины PCI Express оптимизированы для передачи по высокоскоростным последовательным линиям.

Они имеют переменный формат, в том числе длину, чтобы исключить передачу незадействованных полей.
Первым передается наиболее значимый байт, обычно байт №0, чтобы приемное устройство могло начать его обработку до прихода остальных байтов.
Формат (обобщенный) пакета TLP следующий:
Длина пакета выровнена по границе dword. Код ECRC обеспечивает защиту инвариантных областей TLP.

Пакеты уровня транзакций

Слайд 15

Пакеты уровня транзакций несут признак одной из двух фаз транзакции –

Пакеты уровня транзакций несут признак одной из двух фаз транзакции –

запрос (Request) и выполнение (Complete), последняя нужна не для всех типов транзакций.
Связь между запросами и выполнениями – по идентификатору транзакции (Transaction ID) из поля заголовка TLP.
Стандартный заголовок:
TC – класс трафика
TD – признак наличия дайджеста (CRC)
EP – «отравленные» данные
Length – длина поля данных в dword

(продолжение)

Слайд 16

Слайд 17

Для запросов чтения памяти (запись не требует ответа): Для запросов портов в-в: Форматы заголовков

Для запросов чтения памяти (запись не требует ответа):
Для запросов портов в-в:

Форматы

заголовков
Слайд 18

Для запросов конфигурационных: Для запросов типа Message: (продолжение)

Для запросов конфигурационных:
Для запросов типа Message:

(продолжение)

Слайд 19

Для ответов завершений: Коды ответов: (продолжение)

Для ответов завершений:
Коды ответов:

(продолжение)

Слайд 20

Сообщения могут применяться для различных управляющих целей. Эмуляция прерываний INTx# выполняется

Сообщения могут применяться для различных управляющих целей.
Эмуляция прерываний INTx# выполняется с

помощью посылки сообщения с кодом установки либо снятия одного из 4 флагов прерываний (INTA-INTD).
Эмуляция PME#, а также других состояний энергопотребления, включая события недостатка питания, также выполняется с помощью сообщений.
Сообщения об ошибках передают один из трех кодов: исправимая (Correctable), не фатальная (Non-fatal) и фатальная (Fatal) ошибка.
Есть также сообщения о событиях Hot-plug (индикаторы Power и Attention, кнопка отключения и т.п.), а также событиях, определенных производителем.

Использование сообщений

Слайд 21

Отвечает за обеспечение целостности и достоверности данных, а также управление соединением.

Отвечает за обеспечение целостности и достоверности данных, а также управление соединением.
На

этом уровне пакеты уровня транзакций (TLP – Transaction Layer Packet) дополняются уникальным номером и контрольной суммой CRC. Уровень проверяет порядок пакетов и контролирует их содержание, запрашивает пропущенные пакеты, сигнализирует о сбоях соединения, управляет состояниями соединения (неактивно, режим ожидания/инициализации, активно), служит для подачи сигналов энергопотребления, индикации ошибок и журналирования, обмена информацией управления потоком и т.д.
Специальные пакеты DLLP (Data Link Layer Packet) – служебные, данных не содержат, служат для управления соединением. Они не проходят через промежуточные узлы, распространяются только между портами.

Канальный уровень (Data Link Layer)

Слайд 22

Подразделяются на следующие типы: Ack – подтверждение прихода TLP с заданным

Подразделяются на следующие типы:
Ack – подтверждение прихода TLP с заданным номером
Nack

– запрос на повтор TLP с заданным номером
Пакеты управления кредитами и VC
Пакеты управления PM
DLLP содержит заголовок с типом пакета, информационное поле и 16-битный CRC (LCRC).

Пакеты DLLP

Слайд 23

Уровень канала сопровождает пакет TLP уникальным номером и 32-битным кодом LCRC

Уровень канала сопровождает пакет TLP уникальным номером и 32-битным кодом LCRC

(Link CRC). TLP находится в retry-буфере до прихода DLLP типа Ack с тем же номером.
Код LCRC работает только в пределах одного соединения.
Существуют развитые правила запроса и выполнения повторов, таймеров ожидания ответа (в зависимости от размера пакета и ширины линии) и т.д.

Оборачивание TLP

Слайд 24

Делится на два подуровня – логический и собственно электрический. На логическом

Делится на два подуровня – логический и собственно электрический.
На логическом уровне

байты полученных данных кодируются по схеме 8b/10b и преобразуются в 10-битные символы. Выполняется также скрэмблирование (если необходимо), распределение по линиям, кадрирование, обрамление служебными символами.
В результате данные принимают следующий вид:

Физический уровень

Слайд 25

Кодирование 8b/10b выполняется по стандарту ANSI X3.230-1994 (или IEEE 802.3z). Младшие

Кодирование 8b/10b выполняется по стандарту ANSI X3.230-1994 (или IEEE 802.3z). Младшие

5 бит отображаются на 6 бит, старшие 3 бита – на 4 бита, передаются младшим битом вперед

Кодирование 8b/10b

Слайд 26

Специальные символы отделяют начало и конец TLP и DLLP, а также

Специальные символы отделяют начало и конец TLP и DLLP, а также

служат для калибровки, согласования скоростей портов, т.д.
При передаче по нескольким линиям начало TLP или DLLP передается только по линии №0.
Электрический суб-блок: две дифференциальные пары (D+ и D-), напряжение 0.1-0.8 В, нулевой уровень – 0.25 В, максимальная разность – 0.6 В.
Сигналы шины:
PETp0, PETn0,.. PETp15, PETn15 – выходы передатчиков
PERp0, PERn0,.. PERp15, PERn15 – выходы приемников
REFCLK-, REFCLK+ - опорная частота 100 МГц
PERST# - сброс карты
WAKE# - пробуждение от карты

(продолжение)

Слайд 27

По линиям PRSNT1/PRSNT2 производится определение наличия карты. Для каждого формата слота

По линиям PRSNT1/PRSNT2 производится определение наличия карты. Для каждого формата слота

линия PRSNT2 находится в последнем ряду, PRSNT1 – в первом.
Подается питание +12 В, +3.3 В, +3.3Vaux. Также в слоте разведены интерфейсы SMBus и JTAG.

Карта PCI Express

Слайд 28

Слайд 29

Слайд 30

Специальный форм-фактор PCI Express Mini Card создан для карт расширения, устанавливаемых

Специальный форм-фактор PCI Express Mini Card создан для карт расширения, устанавливаемых

в мобильные компьютеры и мини-ПК.
Он предусматривает описание стандартных габаритов и разъема уменьшенного размера, а также дополнительных внешних выводов карты (антенна, светодиоды, сетевые розетки и т.д.).
Основное назначение карт Mini Card – сетевые и коммуникационные устройства (адаптеры WiFi, WiMax, Bluetooth, GPRS/CDMA/UMTS), которые должны быть модульными и легко заменяемыми.
Речь не идет о пригодности к замене самим пользователем. Проблема в другом: существующие законодательные нормы использования радиочастотного диапазона не позволяют использовать все типы сетевых устройств в некоторых странах. Производитель ноутбука должен выбирать тип коммуникационной карты в зависимости от страны назначения.

Карта PCI Express Mini Card

Слайд 31

Карта Mini Card реализует два интерфейса – системный PCI Express x1 и периферийный USB:

Карта Mini Card реализует два интерфейса – системный PCI Express x1

и периферийный USB:
Слайд 32

Слайд 33

Карты ExpressCard Организация PCMCIA, занимающаяся формализацией разработок в области карт расширения

Карты ExpressCard

Организация PCMCIA, занимающаяся формализацией разработок в области карт расширения для

ноутбуков с «горячим» подключением, предложила новый стандарт карт расширения – ExpressCard. От стандарта PC Card он унаследовал только некоторые из габаритов корпуса и общую конструкцию.
Фактически в корпусе модуля ExpressCard может быть помещено устройство с интерфейсом либо PCI Express x1, либо USB. В версии ExpressCard 2.0 обеспечена поддержка PCI Express 2.0 и USB 3.0, что позволяет устройствам получить канал с пропускной способностью 5 Гбит/с – достаточно для внешних винчестеров, ТВ-тюнеров, широкополосных модемов, виртуальных видеокарт и других требовательных устройств.
Функции управления энергопотреблением уже встроены в PCI Express и особенно USB, что сокращает стоимость внедрения ExpressCard.
Слайд 34

Физический интерфейс По сути ExpressCard описывает только физический интерфейс – размер

Физический интерфейс

По сути ExpressCard описывает только физический интерфейс – размер модуля

и формат разъемов.
Благодаря тому, что интерфейсы PCI Express и USB последовательные, удалось сократить размеры разъема (по сравнению с PC Card) и реализовать сразу два интерфейса.
Карты ExpressCard имеют единую толщину (5 мм) и различаются только шириной – 34 мм или 54 мм (для устройств, которые не помещаются в корпус 34 мм), разъем идентичен. Слоты могут быть универсальными или только для устройств 34 мм.
Слайд 35

Разъемы ExpressCard

Разъемы ExpressCard

Слайд 36

Модули ExpressCard

Модули ExpressCard

Слайд 37

Модули ExpressCard

Модули ExpressCard