Bestor's Logo
(812) 303-90-91, sales@bestor.spb.ru
[ Вход ]

Архитектура шины PCI Express: Архитектура

Обзоры
Разделы
Архитектура шины PCI Express
Архитектура
Рисунок 7.

Архитектура PCI Express определяется слоями (layers), как показано на рис. 7. Для обеспечения совместимости с существующими приложениями и драйверами сохранена модель адресации PCI. Конфигурация PCI Express использует стандартный механизм PCI Plug-and-Play. Программный уровень генерирует запросы на чтение и запись, которые передаются уровнем транзакций устройствам ввода-вывода с использованием пакетно-ориентированного, с разделяемыми транзакциями (split-transaction) протокола. Уровень «Link” добавляет последовательный номер и CRC код (код контроля ошибок), что обеспечивает высоконадежный механизм передачи. Физический уровень состоит из двух каналов, которые реализованы, как передающая пара и принимающая пара. Начальная скорость в 2.5 Giga transfers/second/direction обеспечивает канал связи с пропускной способностью в 200MB/s, что почти в 2 раза больше, чем у PCI.

«Физический» слой
Рисунок 8.

Основной канал PCI Express сотсоит из двух низковольтных, дифференциальных пар сигналов: передающая пара и принимающая пара (см. рис. 8). Начальная частота в 2.5 Giga transfers/second/direction может быть увеличена до 10 Giga transfers/second/direction (это теоретический предел частоты для медного проводника).

Рисунок 9.

Пропускная способность PCI Express канала может быть линейно увеличена за счет добавления сигнальных пар. «Физический» слой поддерживает x1, x2, x4, x8, x12, x16 и x32 сигнальных пар в одном канале и распределяет байты данных внутри канала, как показано на рис. 9.

В процессе инициализации, каждый из PCI Express каналов автоматически устанавливает частоту и ширину канала в соответствии с возможностями агентов, находящихся на концах канала, при этом не требуется никакого программного обеспечения.

Cлой связи ("Link Layer")
Рисунок 10.

Основное назначение слоя «Link” заключается в обеспечение правильной передачи пакета данных через канал PCI Express. Этот слой отвечает за целостность данных и добавляет к пакету данных порядковый номер и CRC код (код контроля ошибок), см. рисунок 10.

Большинство пакетов инициируются слоем транзакций ("Transaction Layer"), описанным в следующем разделе. Протокол передачи передает пакеты только в том случае, когда приемный буфер свободен, это позволяет избежать повторных передач данных и разгружает шину. Повторная передача поврежденных пакетов, так же обеспечивается Link слоем.

Слой транзакций ("Transaction Layer")

Слой транзакций принимает запросы на чтение/запись от программного слоя и создает пакеты для передачи слою связи. Все запросы реализуются в виде раздельных транзакций. Некоторые из этих пакетов, требуют ответных пакетов, которые принимаются от слоя связи и проверяются на соответствие начальному запросу программного слоя. Каждый пакет имеет уникальный идентификатор, который позволяет отправить ответный пакет правильному адресату. Формат пакетов поддерживает 32bit и 64bit адресацию. Пакеты так же имеют такие атрибуты, как «no-snoop”, “relaxed-ordering” и “priority”, которые могут использоваться для оптимизации передачи через подсистему ввода/вывода.

Слой транзакций поддерживает четыре адресных пространства: три PCI (память, I/O и конфигурация) и пространство сообщений («Message Space”). В стандарте PCI 2.2 был предложен альтернативный способ распределения системных прерываний, называемый Message Signaled Interrupt (MSI). Спецификация PCI Express использует концепцию MSI в качестве основного метода распределения прерываний.

Программный слой ("Software Layer")

Программная совместимость имеет важнейшее значение для третьего поколения шины ввода/вывода. Имеются два аспекта программной совместимости: инициализация и совместимость времени выполнения. PCI имеет отлаженную модель инициализации, с помощью которой, операционная система может обнаружить все имеющиеся дополнительные устройства и оптимальным образом распределить им системные ресурсы (память, прерывания и т.п.). Эта модель сохранена и в PCI Express, как следствие: изменений в операционной системе, для загрузки на PCI Express системах, не требуется. Кроме того, в PCI Express обеспечена поддержка старой (PCI) модели времени выполнения, таким образом, в прикладном ПО изменения так же не требуются. Новое ПО может использовать новые возможности PCI Express.


Дата публикации: 14.05.2011