PCI Express

PCI Express или PCIe или PCI-E, (также известная как 3GIO for 3rd Generation I/O; не путать с PCI-X или PXI) — компьютерная шина, использующая программную модель шины PCI и высокопроизводительный физический протокол, основанный на последовательной передаче данных.

Развитием стандарта PCI Express занимается организация PCI Special Interest Group (http://www.pcisig.com/).

В отличие от шины 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 заменит эти шины в персональных компьютерах.

Содержание

Описание протокола

Для подключения устройства PCI Express используется двунаправленное последовательное соединение типа точка-точка, называемое lane; это резко отличается от PCI, в которой все устройства подключаются к общей 32-разрядной параллельной однонаправленной шине.

Соединение между двумя устройствами PCI Express называется link, и состоит из одного (называемого 1x) или нескольких (2x, 4x, 8x, 12x, 16x и 32x) двунаправленных последовательных соединений lane. Каждое устройство должно поддерживать соединение 1x.

На электрическом уровне каждое соединение использует низковольтную дифференциальную передачу сигнала (LVDS), приём и передача информации производится каждым устройством PCI Express по отдельной витой паре, таким образом, в простейшем случае, устройство подключается к коммутатору PCI Express всего лишь четырьмя проводниками.

Использование подобного подхода имеет следующие преимущества:

  • карта PCI Express помещается и корректно работает в любом слоте той же или большей пропускной способности (например, карта x1 будет работать в слотах x4 и x16);
  • слот большего физического размера может использовать не все lane'ы (например, к слоту 16x можно подвести линии передачи информации, соответствующие 1x или 8x, и всё это будет нормально функционировать; однако, при этом необходимо подключить все линии «питание» и «земля», необходимые для слота 16x).

В обоих случаях, на шине PCI Express будет использовать максимальное количество lane'ов доступных как для карты, так и для слота. Однако это не позволяет устройству работать в слоте, предназначенном для карт с меньшей пропускной способностью шины PCI Express (например, карта x4 физически не поместится в слот x1, несмотря на то, что она могла бы работать в слоте 4x с использованием только одного lane).

PCI Express пересылает всю управляющую информацию, включая прерывания, через те же линии, что используются для передачи данных. Последовательный протокол никогда не может быть заблокирован, таким образом задержки шины PCI Express вполне сравнимы с таковыми для шины PCI (заметим, что шина PCI для передачи сигнала о запросе на прерывание использует отдельные физические линии IRQ#A, IRQ#B, IRQ#C, IRQ#D).

Во всех высокоскоростных последовательных протоколах (например, GigabitEthernet), информация о синхронизации должна быть встроена в передаваемый сигнал. На физическом уровне, PCI Express использует ставший общепринятым метод кодирования 8B/10B (8 бит данных заменяются на 10 бит, передаваемых по каналу, таким образом 20% передаваемого по каналу трафика является избыточными), который позволяет поднять помехозащищённость.

Некоторые протоколы (например, SONET/SDH) используют другой метод помехозащищённого кодирования, который называется скремблинг (англ. scrambling) для встраивания информации о синхронизации в поток данных. Спецификация PCI Express также предусматривает алгоритм скремблинга, но скремблинг PCI Express отличается от такового для SONET.

Пропускная способность шины PCI Express

Пропускная способность соединения lane составляет 2,5 Гбит/с. Для расчета пропускной способности соединения link необходимо учесть то, что в каждом соединении передача дуплексная, а также учесть применение кодирования 8B/10B (8 бит в 10). Например, дуплексная пропускная способность соединения 1x (P1x) составляет:

P_{1x} = {2,5 \cdot 2 \cdot 0,8 \over 8} = 0,5 ГБ/с

где 2,5 — пропускная способность одного lane, Гбит/с;

2 — учёт того, что соединение 1x состоит из двух lane;

0,8 — коэффициент, учитывающий использование кода 8B/10B;

8 — коэффициент для перевода Гбит/с в ГБ/с.

Пропускная способность, с учётом двунаправленной передачи, для шин PCI Express с разным количеством связей указана в таблице:

Используется связей 1x 2x 4x 8x 12x 16x 32x
Пропускная способность, ГБ/c 0,5 1 2 4 6 8 16

Форм-факторы

  • Низкопрофильные карты
  • Mini Card — замена форм-фактора Mini PCI. На разъём Mini Card выведены шины: x1 PCIe, USB 2.0 и SMBus.
  • ExpressCard — подобен форм-фактору PCMCIA. На разъём Mini Card выведены шины x1 PCIe и USB 2.0, карты ExpressCard поддерживаю горячее подключение.
  • AdvancedTCA — форм-фактор для телекоммуникационного оборудования.
  • Кабельные спецификации PCI Express позволяют доводить длину одного соединения до десятнков, а то и сотен метров, что делает возможным создание «разобранных» ЭВМ.
  • Mobile PCI Express Module — промышленный форм-фактор, созданный для ноутбуков фирмой NVIDIA.

Конкурирующие протоколы

Кроме PCI Express существует ещё ряд высокоскоростных стандартизованных последовательных интерфейсов, вот только некоторые из них: HyperTransport, InfiniBand, RapidIO, и StarFabric. Каждый интерфейс имеет своих сторонников среди промышленных компаний, так как на разработку спецификаций протоколов уже ушли значительные суммы, и каждый консорциум стремится подчеркнут преимущества именно своего интерфейса над другими.

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

К примеру, дополнительная служебная маршрутная информация в пакете позволяет организовать сложную и гибкую маршрутизацию пакета, но увеличивает накладные расходы на обработку пакета, также снижается пропускная способность интерфейса, усложняется программное обеспечение, которое инициализирует и настраивает устройства, подключенные к интерфейсу. При необходимости обеспечения горячего подключения устройств необходимо специальное программное обеспечение, которое бы отслеживало изменение в топологии сети. Примерами интерфейсов, которые приспособлены для этого являются RapidIO, InfiniBand и StarFabric.

В то же время, укорачивая пакеты можно уменьшить задержку при передаче данных, что является важным требованием к интерфейсу памяти. Но небольшой размер пакетов приводит к тому, что доля служебных полей пакета увеличивается, что снижает эффективную пропускную способность интерфейса. Примером интерфейса такого типа является HyperTransport.

Положение PCI Express — между описанными подходами, так как шина PCI Express предназначена для работы в качестве локальной шины, нежели шины процессор-память или сложной маршрутизируемой сети. Кроме того, PCI Express изначально задумывалась как шина, логически совместимая с шиной PCI, что также внесло свои ограничения.

PCI Express 2.0

Группа PCI-SIG близка к тому, что бы выпустить спецификацию PCI Express 2.0: в октябре 2006 выпущен предварительный вариант спецификации для обсуждения внутри рабочей группы [1]. Планируется, что после обсуждения и исправления предварительного варианта в начале 2007 года будет выпущен окончательный вариант спецификации.

Основные нововведения в PCI Express 2.0:

  • Увеличенная пропускная способность.

Спецификация PCI Express 2.0 определяет максимальную пропускную способность одного соединения lane как 5 Гбит/с, при этом сохранена совместимость с PCI Express 1.1. Внесены усовершенствования в протокол передачи между устройствами и программную модель.

  • Подготовлена предварительная версия 0.5 спецификации Card Electromechanical (CEM) 2.0 specification.
  • Виртуализация ввода-вывода.

Ряд рабочих групп внутри PCI-SIG работают над спецификациями, вводящими виртуализацию и распределение устройств ввода-вывода. Подготовлен предварительный вариант спецификации сервиса трансляции адресов (Address Translation Services (ATS) 0.9 specification). В ближайшем будущем планируется выпустить предварительные варианты спецификаций распределения устройств ввода-вывода.

  • Кабельная спецификация PCIe.

В настоящее время обсуждается предварительный вариант новой кабельной спецификации PCIe. Новая спецификация позволяет использовать кабели диной до 10 метров, работающие с пропускной способностью 2,5 Гбит/с. Планируется, что окончательная версия новой кабельной спецификации будет выпущена в конце 2006 года.

См. также

Источники

  • R. Budruk, D. Anderson, T. Shanley PCI express system architecture, Addison-Wesley, 2003, 1120 p., ISBN 0321156307

Ссылки


Статья является кандидатом в хорошие статьи с 2006-10-16. Возможно, требуется доработка статьи.
 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home