Как выглядит pci слот. Шины PCI, PCI Express и их несомненный успех

19.09.2019 Приложения

WiFi модули и другие подобные устройства. Разработку данной шины начала компания Intel в 2002 году. Сейчас разработку новых версий данной шины занимается некоммерческая организация PCI Special Interest Group.

На данный момент шина PCI Express полностью заменила такие устаревшие шины как AGP, PCI и PCI-X. Шина PCI Express размещается в нижней части материнской платы в горизонтальном положении.

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

Программная модель PCI Express во многом повторяет модель PCI. Поэтому большинство существующих PCI контроллеров могут быть легко доработаны для использования шины PCI Express.

Слоты PCI Express и PCI на материнской плате

Кроме этого, шина PCI Express поддерживает такие новые возможности как:

  • Горячее подключение устройств;
  • Гарантированная скорость обмена данными;
  • Управление потреблением энергии;
  • Контроль целостности передаваемой информации;

Как работает шина PCI Express

Для подключения устройств шина PCI Express использует двунаправленное последовательное соединение. При этом такое соединение может иметь одну (x1) или несколько (x2, x4, x8, x12, x16 и x32) отдельных линий. Чем больше таких линий используется, тем большую скорость передачи данных может обеспечить шина PCI Express. В зависимости от количества поддерживаемых линий размер сорта на материнской плате будет отличаться. Существуют слоты с одной (x1), четырьмя (x4) и шестнадцатью (x16) линиями.

Наглядная демонстрация размеров слота PCI Express

При этом любое PCI Express устройство может работать в любом слоте, если слот имеет такое же или большее количество линий. Это позволяет установить PCI Express карту с разъемом x1 в слот x16 на материнской плате.

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

В одну/обе стороны в Гбит/с

Количество линий

PCIe 1.0 2/4 4/8 8/16 16/32 24/48 32/64 64/128
PCIe 2.0 4/8 8/16 16/32 32/64 48/96 64/128 128/256
PCIe 3.0 8/16 16/32 32/64 64/128 96/192 128/256 256/512
PCIe 4.0 16/32 32/64 64/128 128/256 192/384 256/512 512/1024

Примеры PCI Express устройств

В первую очередь PCI Express используется для подключения дискретных видеокарт. С момента появления данной шины абсолютно все видеокарты используют именно ее.

Видеокарта GIGABYTE GeForce GTX 770

Однако это далеко не все что умеет шина PCI Express. Ее используют производители других комплектующих.

Звуковая карта SUS Xonar DX

SSD накопитель OCZ Z-Drive R4 Enterprise

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

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

В данной статье мы рассмотрим переходник pci-e pci, то как он работает и какие особенности имеет.

Определение

Что же это за устройство и для чего оно нужно? Строго говоря, это шина ввода и вывода, которая подключается к персонального компьютера.

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

С помощью последовательного соединения эти периферийные устройства подключаются к компьютеру.

Основной характеристикой такого устройства является его пропускная способность.

Именно она характеризует (в общем случае) качество работы, скорость ее и быстродействие компьютера и подключенных таким образом элементов.

Характеристика пропускной способности выражается в количестве линий соединения (от 1 до 32).

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

Технические характеристики

С технической точки зрения такое устройство имеет три составные части:

Выше было написано об исключительной важности пропускной способности устройства для его нормального функционирования.

Что же такое пропускная способность? Чтобы ответить на этот вопрос необходимо понимать принцип действия такого переходника.

Он способен осуществлять одновременное двунаправленное (от карты к периферии и от периферии к карте) соединение оборудования.

При этом передача данных может происходить как по одной, так и по нескольким линиям.

Чем больше таких линий, тем стабильнее работает устройство, тем выше его пропускная способность и тем более быстродейственным будет периферийное оборудование.

Важно! В зависимости от количества линий устройство может иметь различные конфигурации: х1, х2, х4, х8,х12, х16, х32. Цифра указывает непосредственно на количество полос для двусторонней одновременной передачи информации. Каждая из таких полос состоит из двух пар проводов (для передачи в двух направлениях).

Как видно из описания, эта конфигурация значительно влияет на стоимость устройства.

Но какое прикладное значение она имеет, действительно ли есть смысл тратиться дополнительно при покупке устройства?

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

Шифрование

При такой системе передачи информации используется специфическая система защиты ее от искажений и потерь.

Этот метод защиты получил обозначение 8В/10В.

Смысл в том, что для передачи 8 бит необходимой информации должны быть использованы дополнительные 2 служебных бита для осуществления безопасности и защиты от искажений.

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

История

В начале 2000-х годов активно использовался слот расширения AGP, именно с его помощью устанавливались .

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

И скоро появился PCI-E – это был 2002 год.

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

Потому в 2002 году многие разработчики и производители всерьез занялись созданием такого адаптера.

На тот момент устройство имело одно важное качество – возможность модернизировать ПК, потратив на это минимальные суммы, ведь вместо замены материнской платы достаточно было относительно недорогого переходника.

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

Интересно, что производители также последовательно увеличивали пропускную способность таких устройств. Если для первых конфигураций она составляла не более 8 Гб/с, то для второй уже 16 Гб/с, а для третьей – 64 Гб/с. Это отвечало требованиям возрастающих нагрузок, появляющихся из-за модернизации периферийных устройств.

При этом, слоты с разной скоростью передачи совместимы с любыми устройствами менее «скоростного» уровня.

То есть, если подключить к слоту третьего поколения графическую платформу второго или первого поколения, то слот автоматически переключится на иной скоростной режим, соответствующий подключенному устройству.

Отличия PCI и PCI-E

Какие специфические отличия имеются у этих двух конфигураций?

По своим техническим и эксплуатационным характеристикам PCI похож на AGP, тогда как PCI-E – принципиально новая разработка.

Тогда как PCI обеспечивает параллельную передачу информации, PCI-E – последовательную, за счет чего достигается значительно более высокая скорость передачи информации и быстродействие даже с учетом применения адаптера.

Зачем нужен?

Зачем нужен такой адаптер и для чего он может применяться, можно ли обойтись без него?

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

Это дополнительное оборудование, которое в ряде случаев улучшить функционал вашего ПК, но без которого вполне может обойтись рядовой пользователь.

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

Также достаточно удобной возможностью может быть одновременное быстрое отключение всех периферийных устройств при необходимости.

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

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

Итак, для начала давайте кратко ответим на такой вопрос, что же вообще такое PCI Express и PCI.

Что такое PCI Express и PCI?

PCI – это компьютерная параллельнаяшина ввода-вывода для подключения периферийных устройств к материнской плате компьютера. PCI используется для подключения: видеокарт, звуковых карт, сетевых карт, TV-тюнеров и других устройств. Интерфейс PCI является устаревшим, поэтому найти, например, современную видеокарту, которая подключается через PCI, наверное, не получится.

PCI Express (PCIe или PCI-E) - это компьютерная последовательная шина ввода-вывода для подключения периферийных устройств к материнской плате компьютера. Т.е. при этом уже используется двунаправленное последовательное соединение, которое может иметь несколько линий (x1, x2, x4, x8, x12, x16 и x32) чем больше таких линий, тем выше пропускная способность у шины PCI-E. Интерфейс PCI Express используется для подключения таких устройств как: видеокарты, звуковые карты, сетевые карты, SSD накопители и другие.

Существует несколько версий интерфейса PCI-E это: 1.0, 2.0 и 3.0 (скоро выйдет и версия 4.0 ). Обозначается данный интерфейс обычно, например, вот так PCI-E 3.0 x16 , что означает версия PCI Express 3.0 с 16 линиями.

Если говорить о том будет ли работать, например, видеокарта, которая имеет интерфейсPCI-E 3.0 на материнской плате, которая поддерживает только PCI-E 2.0 или 1.0, так вот разработчики заявляют, что все работать будет, только конечно учтите, что пропускная способность будет ограничена возможностями материнской платы. Поэтому в этом случае переплачивать за видеокарту с более новой версией PCI Express я думаю, не стоит (если только на будущее, т.е. Вы, планируете приобрести новую материнскую плату с PCI-E 3.0 ). Также и наоборот допустим, у Вас материнская плата поддерживает версию PCI Express 3.0, а видеокарта версию скажем 1.0, то такая конфигурация также должна работать, но только с возможностями PCI-E 1.0, т.е. здесь никакого ограничения нет, так как видеокарта в этом случае будет работать на пределе своих возможностей.

Отличия PCI Express от PCI

Основное отличие в характеристиках это, конечно же, пропускная способность, у PCI Express она значительно выше, например, у PCI на частоте 66 МГц пропускная способность 266 Мб/сек, а у PCI-E 3.0 (x16) 32 Гб/сек .

Внешне интерфейсы также отличаются, поэтому подключить, например, видеокарту PCI Express в слот расширения PCI не получится. Интерфейсы PCI Express с разным количеством линий также отличаются, все это я сейчас покажу на картинках.

Слоты расширения PCI Express и PCI на материнских платах

Слоты PCI и AGP

Слоты PCI-E x1, PCI-E x16 и PCI

Интерфейсы PCI Express на видеокартах

На этом у меня все, пока!

Физический уровень интерфейса допускает как электрическую, так и оптическую реализацию. Базовое соединение электрического интерфейса (1x) состоит из двух дифференциальных низковольтных сигнальных пар — передающей (сигналы PETp0, PETn0) и принимающей (PERp0, PERn0). В интерфейсе применена развязка передатчиков и приемников по постоянному току, что обеспечивает совместимость компонентов независимо от технологии изготовления компонентов и снимает некоторые проблемы передачи сигналов. Для передачи используется самосинхронизирующееся кодирование, что позволяет достигать высоких скоростей передачи. Базовая скорость — 2,5 Гбит/с «сырых» данных (после кодирования 8B/10B) в каждую сторону, в перспективе планируются и более высокие скорости. Для масштабирования пропускной способности возможно агрегирование сигнальных линий (lanes, сигнальных пар в электрическом интерфейсе), по одинаковому числу в обоих направлениях. Спецификация рассматривает варианты соединений из 1, 2, 4, 8, 12, 16 и 32 линий (обозначаются как x1, x2, x4, x8, x12, x16 и x32); передаваемые данные между ними распределяются побайтно. В каждой из линий самосинхронизация выплняется независимо, так что явление переноса (бич параллельных интерфейсов) отсутствует. Таким образом достижима скорость до 32×2,5 = 80 Гбит/с, что примерно соответствует пиковой скорости 8 Гбайт/с. Во время аппаратной инициализации в каждом соединении согласуется число линий и скорость передачи; согласование выполняется на низком уровне без какого-либо программного участия. Согласованные параметры соединения действуют на все время последующей работы.

Обеспечение «горячего» подключение на физическом уровне PCI Express не требует каких-либо дополнительных аппаратных затрат, поскольку двухточечное соединение не затрагивает «лишних» участников. Безопасная коммутация сигналов не требуется, возможности подключаемого устройства никак не влияют на режимы работы остальных устройств.

Малое число сигнальных контактов интерфейса дает большую свободу в выборе конструктивных реализаций PCI Express :

  • соединение компонентов в пределах платы;
  • слоты и карты расширения в конструктивах PC/AT и ATX;
  • внутренние и внешние карты расширения мобильных ПК;
  • малогабаритные модули ввода/вывода для серверов и коммуникационной аппаратуры;
  • модули для промышленных компьютеров;
  • разъемное подключение «дочерних» карт (mezannine interface);
  • кабельные соединения блоков.

Для карт расширения в конструктивах PC/AT и ATX предусматриваются разные модификации разъема-слота PCI Express, отличающиеся числом пар сигнальных линий (x1, x4, x8, x16) и, соответственно, размером (см. рисунок ниже). При этом в слоты большего размера можно устанавливать карты с разъемом того же размера или меньшего (это называется Up-plugging). Однако противоположный вариант (Downplugging) — большую карту в меньший слот — механически невозможен (в PCI/PCI-X это возможно). Как было показано выше, самый маленький вариант PCI Express обеспечивает пропускную способность на уровне стандартной шины PCI.

Назначение контактов слотов PCI Express приведено в таблице ниже.

Набор сигналов интерфейса PCI Express невелик:

  • PETp0, PETn0… PETp15, PETn15 — выходы передатчиков сигнальных пар 0…15;
  • PERp0, PERn0… PERp15, PERn15 — входы приемников;
  • REFCLK+ и REFCLK — сигналы опорной частоты 100 МГц;
  • PERST# — сигнал сброса карты;
  • WAKE# — сигнал «пробуждения» (от карты);
  • PRSNT1#, PRSNT2# — сигналы обнаружения подключения-отключения карты для системы горячего подключения. На карте эти цепи соединяются между собой, причем для PRSNT2# выбирается контакт с самым большим номером. Это позволяет точнее отслеживать моменты подключения-отключения (в случае наклона карты). Для определения числа линий подключенной карты данные линии не используются — разрядность линий определяется автоматически при установлении соединения (в процедуре тренировки).

Дополнительно на слоте имеются необязательные сигналы шины SMBus (SMB_CLK и SMB_DATA) и интерфейса JTAG (TCLK, TDI, TDO, TMS, TRST#).

Питание на карты подается по следующим шинам:

  • +3,3V — основное питание +3 В при токе до 9 А;
  • +12V — основное питание +12 В при токе до 0,5/2,1/4,4А для слотов x1/x4, x8/x16 соответственно;
  • +3,3Vaux — дополнительное питание, ток до 375 мА в системах, способных к пробуждению по сигналу от карты и до 20 мА в непробуждаемых системах.

Таблица. Разъемы PCI Express

Ряд B Ряд A
1 +12V PRSNT1#
2 +12V +12V
3 Резерв +12V
4 GND GND
5 SMB_CLK TCK
6 SMB_DATA TDI
7 GND TDO
8 +3.3 V TMS
9 TRST# +3.3 V
10 +3.3 Vaux +3.3 V
11 WAKE# PERST#
КЛЮЧ
12 Резерв GND
13 GND REFCLK+
14 PETp0 REFCLK-
15 PETn0 GND
16 GND PERp0
17 PRSNT2# PERn0
18 GND GND
Конец x1-коннектора
19 PETp1 Резерв
20 PETn1 GND
21 GND PERp1
22 GND PERn1
23 PETp2 GND
24 PETn2 GND
25 GND PERp2
26 GND PERn2
27 PETp2 GND
28 PETn2 GND
29 GND PERp3
30 Резерв PERn3
31 PRSNT2# GND
32 GND Резерв
Конец x4-коннектора
33 PETp4 Резерв
34 PETn4 GND
35 GND PERp4
36 GND PERn4
37 PETp5 GND
38 PETn5 GND
39 GND PERp5
40 GND PERn5
41 PETp6 GND
42 PETn6 GND
43 GND PERp6
44 GND PERn6
45 PETp7 GND
46 PETn7 GND
47 GND PERp7
48 PRSNT2# PERn7
49 GND GND
Конец x8-коннектора
50 PETp8 Резерв
51 PETn8 GND
52 GND PERp8
53 GND PERn8
54 PETp9 GND
..... ..... .....
79 PETn15 GND
80 GND PERp15
81 PRSNT2# PERn15
82 GND GND
Конец x16-коннектора

Для мобильных компьютеров PCMCIA ввела конструктив ExpressCard (см. следующий рисунок), для которого на системный разъем выводится два интерфейса: PCI Express (1x) и USB 2.0. Модули ExpressCard компактнее прежних карт PCMCIA (PC Card и CardBus); предлагается две модификации, различающиеся по ширине: ExpressCard/34 (34×75×5 мм) и ExpressCard/54 (54×75×5 мм). Толщина модулей всего 5 мм, но, если требуется, то более длинные модули могут иметь утолщения в части, выходящие за габариты корпуса компьютера (за пределами 75 мм от края разъема). Как и прежние карты PCIMCIA, карты ExpressCard доступны пользователям и поддерживают «горячее» подключение.

Для внутренних карт расширения блокнотных ПК введен конструктив Mini PCI Express (см. рисунок ниже), формат которого происходит от Mini PCI Type IIIA. Благодаря уменьшению числа контактов ширина карты уменьшена до 30 мм, так что на месте одной карты Mini PCI можно разместить пару карт Mini PCI Express. На разъем карты (см. таблицу ниже) кроме PCI Express выведены интерфейсы последовательных шин USB 2.0 (USB_D+ и USB_D-) и SMBus (SMB_CLK и SMB_DATA), питание +3,3 В (750 мА основное и 250 мА дополнительное) и +1,5 В (375 мА). Собственно интерфейс PCI Express (x1) занимает всего 6 контактов (выходы передатчика PETp0 и PETn0, входы приемника PERp0 и PERn0, а также сигналы опорной частоты 100 МГц REFCLK+ и REFCLK-. Сигнал PERST# — сброс карты, сигнал WAKE# — «пробуждение» (от карты). Сигналы LED_Wxxx# служат для управления светодиодными индикаторами состояния.

Таблица. Разъемы Mini PCI Express

Цепь Цепь
1 WAKE# 2 3.3 V
3 Резерв 4 GND
5 Резерв 6 1.5 V
7 Резерв 8 Резерв
9 GND 10 Резерв
11 REFCLK+ 12 Резерв
13 REFCLK- 14 Резерв
15 GND 16 Резерв
Ключ
17 Резерв 18 GND
19 Резерв 20 Резерв
21 GND 22 PERST#
23 PERn0 24 +3.3 V
25 PERp0 26 GND
27 GND 28 +1.5 V
29 GND 30 SMB_CLK
31 PETn0 32 SMB_DATA
33 PETp0 34 GND
35 GND 36 USB_D-
37 Резерв 38 USB_D+
39 Резерв 40 GND
41 Резерв 42 LED_WWAN#
43 Резерв 44 LED_WLAN#
45 Резерв 46 LED_WPAN#
47 Резерв 48 +1.5 V
49 Резерв 50 GND
51 Резерв 52 +3.3 V

С интерфейсом PCI Express удобно компонуются модули ввода/вывода и сетевых интерфейсов для серверов и коммуникационных устройств стоечного исполнения. Такие модули могут быть достаточно компактными (высота 2U не вызывает проблем размещения разъема), при этом производительности интерфейса достаточно даже для таких критичных модулей, как Fibre Channel, Gigabit Ethernet (GbE), 10GbE.

Интерфейс PCI Express принимается и для промышленных компьютеров, для чего имеются спецификации PICMG 3.4 (малогабаритные конструктивы для x1, x2 и x4), а также конструктивы в формате Compact PCI.

Интерфейс PCI Express существует и в кабельном исполнении для кабельных соединений блоков, находящихся на небольшом удалении друг от друга. Так, например, по PCI Express можно подключать док-станции к блокнотным ПК. Возможность вывода интерфейса системного уровня за пределы корпуса компьютера из предшественников PCI Express поддерживала только шина ISA, и то только при низких скоростях обмена (на частотах до 5 МГц). Из новых последовательных интерфейсов системного уровня эта возможность имеется и в InfiniBand. Наличие кабельного варианта высокопроизводительного интерфейса системного уровня может позволить отойти от традиционной компоновки компьютера, при которой в системном блоке концентрируются все компоненты, требующие интенсивного обмена с ядром компьютера.

Если спросить, какой интерфейс следует использовать для твердотельного накопителя с поддержкой протокола NVMe, то любой человек (вообще знающий, что такое NVMe) ответит: конечно PCIe 3.0 x4! Правда, с обоснованием у него, скорее всего, возникнут сложности. В лучшем случае получим ответ, что такие накопители поддерживают PCIe 3.0 x4, а пропускная способность интерфейса имеет значение. Иметь-то имеет, однако все разговоры об этом начались только тогда, когда некоторым накопителям на некоторых операциях стало тесно в рамках «обычного» SATA. Но ведь между его 600 МБ/с и (столь же теоретическими) 4 ГБ/с интерфейса PCIe 3.0 x4 - просто пропасть, причем заполненная массой вариантов! А вдруг и одной линии PCIe 3.0 хватит, поскольку это уже в полтора раза больше SATA600? Масла в огонь подливают производители контроллеров, грозящиеся в бюджетной продукции перейти на PCIe 3.0 x2, а также тот факт, что у многих пользователей и такого-то нет. Точнее, теоретически есть, но высвободить их можно, лишь переконфигурировав систему или даже что-то в ней поменяв, чего делать не хочется. А вот купить топовый твердотельный накопитель - хочется, но есть опасения, что пользы от этого не будет совсем никакой (даже морального удовлетворения от результатов тестовых утилит).

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

PCI Express: существующие стандарты и их пропускная способность

Начнем с того, что́ представляет собой PCIe и с какой скоростью этот интерфейс работает. Часто его называют «шиной», что несколько неверно идеологически: как таковой шины, с которой соединены все устройства, нет. На деле имеется набор соединений «точка-точка» (похожий на многие другие последовательные интерфейсы) с контроллером в середине и присоединенными к нему устройствами (каждое из которых само по себе может быть и концентратором следующего уровня).

Первая версия PCI Express появилась почти 15 лет назад. Ориентация на использование внутри компьютера (нередко - и в пределах одной платы) позволила сделать стандарт скоростным: 2,5 гигатранзакции в секунду. Поскольку интерфейс последовательный и дуплексный, одна линия PCIe (x1; фактически атомарная единица) обеспечивает передачу данных на скоростях до 5 Гбит/с. Однако в каждом направлении - лишь половина от этого, т. е. 2,5 Гбит/с, причем это полная скорость интерфейса, а не «полезная»: для повышения надежности каждый байт кодируется 10 битами, так что теоретическая пропускная способность одной линии PCIe 1.x составляет примерно 250 МБ/с в каждую сторону. На практике нужно еще передавать служебную информацию, и в итоге правильнее говорить о ≈200 МБ/с передачи пользовательских данных. Что, впрочем, на тот момент времени не только покрывало потребности большинства устройств, но и обеспечивало солидный запас: достаточно вспомнить, что предшественница PCIe в сегменте массовых системных интерфейсов, а именно шина PCI, обеспечивала пропускную способность в 133 МБ/с. И даже если рассматривать не только массовую реализацию, но и все варианты PCI, то максимумом были 533 МБ/с, причем на всю шину, т. е. такая ПС делилась на все подключенные к ней устройства. Здесь же 250 МБ/с (поскольку и для PCI приводится обычно полная, а не полезная пропускная способность) на одну линию - в монопольном использовании. А для устройств, которым нужно больше, изначально была предусмотрена возможность агрегирования нескольких линий в единый интерфейс, по степеням двойки - от 2 до 32, т. е. предусмотренный стандартом вариант х32 в каждую сторону мог передавать уже до 8 ГБ/с. В персональных компьютерах х32 не использовался из-за сложности создания и разведения соответствующих контроллеров и устройств, так что максимумом стал вариант с 16 линиями. Использовался он (да и сейчас используется) в основном видеокартами, поскольку большинству устройств столько не требуется. Вообще, немалому их количеству и одной линии вполне достаточно, но некоторые применяют с успехом и х4, и х8: как раз по накопительной теме - RAID-контроллеры или SSD.

Время на месте не стояло, и около 10 лет назад появилась вторая версия PCIe. Улучшения касались не только скоростей, но и в этом отношении был сделан шаг вперед - интерфейс начал обеспечивать 5 гигатранзакций в секунду с сохранением той же схемы кодирования, т. е. пропускная способность удвоилась. И еще раз она удвоилась в 2010 году: PCIe 3.0 обеспечивает 8 (а не 10) гигатранзакций в секунду, но избыточность уменьшилась - теперь для кодирования 128 бит используется 130, а не 160, как ранее. В принципе, и версия PCIe 4.0 с очередным удвоением скоростей уже готова появиться на бумаге, но в ближайшее время в железе мы ее массово вряд ли увидим. На самом деле и PCIe 3.0 до сих пор в массе платформ используется совместно с PCIe 2.0, потому что и производительность последней для многих сфер применения просто... не нужна. А где нужна - работает старый добрый метод агрегации линий. Только каждая из них стала за прошедшие годы вчетверо быстрее, т. е. PCIe 3.0 х4 - это PCIe 1.0 x16, самый быстрый слот в компьютерах середины нулевых. Именно этот вариант поддерживают топовые контроллеры SSD, и именно его рекомендуется использовать. Понятно, что если такая возможность есть - много не мало. А если ее нет? Будут ли возникать какие-то проблемы, и если да, то какие? Вот с этим-то вопросом нам и предстоит разобраться.

Методика тестирования

Провести тесты с разными версиями стандарта PCIe несложно: практически все контроллеры позволяют использовать не только поддерживаемый ими, но и все более ранние. Вот с количеством линий - сложнее: нам хотелось непосредственно протестировать и варианты с одной-двумя линиями PCIe. Используемая нами обычно плата Asus H97-Pro Gamer на чипсете Intel H97 полного набора не поддерживает, но кроме «процессорного» слота х16 (который обычно и используется) на ней есть еще один, работающий в режимах PCIe 2.0 х2 или х4. Вот этой тройкой мы и воспользовались, добавив к ней еще и режим PCIe 2.0 «процессорного» слота, дабы оценить, есть ли разница. Все-таки в этом случае между процессором и SSD посторонних «посредников» нет, а вот при работе с «чипсетным» слотом - есть: собственно чипсет, фактически соединяющийся с процессором тем же PCIe 2.0 x4. Можно было добавить еще несколько режимов работы, но основную часть исследования мы все равно собирались провести на другой системе.

Дело в том, что мы решили воспользоваться случаем и заодно проверить одну «городскую легенду», а именно поверие о полезности использования топовых процессоров для тестирования накопителей. Вот и взяли восьмиядерный Core i7-5960X - родственника обычно применяемого в тестах Core i3-4170 (это Haswell и Haswell-E), но у которого ядер в четыре раза больше. Кроме того, обнаруженная в закромах плата Asus Sabertooth X99 нам сегодня полезна наличием слота PCIe x4, на деле способного работать как х1 или х2. В этой системе мы протестировали три варианта х4 (PCIe 1.0/2.0/3.0) от процессора и чипсетные PCIe 1.0 х1, PCIe 1.0 х2, PCIe 2.0 х1 и PCIe 2.0 х2 (во всех случаях чипсетные конфигурации отмечены на диаграммах значком (c) ). Есть ли смысл сейчас обращаться к первой версии PCIe, с учетом того, что вряд ли найдется хоть одна плата с поддержкой только этой версии стандарта, способная загрузиться с NVMe-устройства? С практической точки зрения - нет, а вот для проверки априори предполагаемого соотношения PCIe 1.1 х4 = PCIe 2.0 х2 и подобных оно нам пригодится. Если проверка покажет, что масштабируемость шины соответствует теории, значит, и неважно, что нам не удалось пока получить практически значимые способы подключения PCIe 3.0 x1/х2: первый будет идентичен как раз PCIe 1.1 х4 или PCIe 2.0 х2, а второй - PCIe 2.0 х4. А они у нас есть.

В плане ПО мы ограничились только Anvil’s Storage Utilities 1.1.0: разнообразные низкоуровневые характеристики накопителей она измеряет неплохо, а ничего другого нам и не нужно. Даже наоборот: любое влияние других компонентов системы является крайне нежелательным, так что низкоуровневая синтетика для наших целей безальтернативна.

В качестве «рабочего тела» мы использовали Patriot Hellfire емкостью 240 ГБ . Как было установлено при его тестировании, это не рекордсмен по производительности, но его скоростные характеристики вполне соответствуют результатам лучших SSD того же класса и той же емкости. Да и более медленные устройства на рынке уже есть, причем их будет становиться все больше. В принципе, можно будет повторить тесты и с чем-нибудь более быстрым, однако, как нам кажется, необходимости в этом нет - результаты предсказуемы. Но не станем забегать вперед, а посмотрим, что же у нас получилось.

Результаты тестов

Тестируя Hellfire, мы обратили внимание на то, что максимальную скорость на последовательных операциях из него можно «выжать» лишь многопоточной нагрузкой, так что это тоже надо принимать во внимание на будущее: теоретическая пропускная способность на то и теоретическая, что «реальные» данные, полученные в разных программах по разным сценариям, будут больше зависеть не от нее, а от этих самых программ и сценариев - в том случае, конечно, когда не помешают обстоятельства непреодолимой силы:) Как раз такие обстоятельства мы сейчас и наблюдаем: выше уже было сказано, что PCIe 1.x x1 - это ≈200 МБ/с, и именно это мы и видим. Две линии PCIe 1.x или одна PCIe 2.0 - вдвое быстрее, и именно это мы и видим. Четыре линии PCIe 1.x, две PCIe 2.0 или одна PCIe 3.0 - еще вдвое быстрее, что подтвердилось для первых двух вариантов, так что и третий вряд ли будет отличаться. То есть в принципе масштабируемость, как и предполагалось, идеальная: операции линейные, флэш с ними справляется хорошо, так что интерфейс имеет значение. Флэш перестает справляться хорошо на PCIe 2.0 x4 для записи (значит, подойдет и PCIe 3.0 x2). Чтение «может» больше, но последний шаг дает уже полутора-, а не двукратный (каким он потенциально должен быть) прирост. Также отметим, что заметной разницы между чипсетным и процессорным контроллером нет, да и между платформами тоже. Впрочем, LGA2011-3 немного впереди, но на самую малость.

Все ровно и красиво. Но шаблоны не рвет : максимум в этих тестах составляет лишь немногим больше 500 МБ/с, а это вполне по силам даже SATA600 или (в приложении к сегодняшнему тестированию) PCIe 1.0 х4 / PCIe 2.0 х2 / PCIe 3.0 х1 . Именно так: не стоит пугаться выпуску бюджетных контроллеров под PCIe х2 или наличию лишь такого количества линий (причем версии стандарта 2.0) в слотах М.2 на некоторых платах, когда больше-то и не нужно. Иногда и столько не нужно: максимальные результаты достигнуты при очереди в 16 команд, что для массового ПО не типично. Чаще встречается очередь с 1-4 командами, а для этого обойтись можно и одной линией самого первого PCIe и даже самым первым SATA. Впрочем, накладные расходы и прочее имеют место быть, так что быстрый интерфейс полезен. Однако излишне быстрый - разве что не вреден.

А еще в этом тесте по-разному ведут себя платформы, причем с единичной очередью команд - принципиально по-разному. «Беда» вовсе не в том, что много ядер - плохо. Они тут все равно не используются, разве что одно, и не настолько, чтоб вовсю развернулся буст-режим. Вот и имеем разницу где-то в 20% по частоте ядер и полтора раза по кэш-памяти - она в Haswell-E работает на более низкой частоте, а не синхронно с ядрами. В общем, топовая платформа может пригодиться разве что для вышибания максимума «йопсов» посредством максимально многопоточного режима с большой глубиной очереди команд. Жаль только, что с точки зрения практической работы это совсем уж сферическая синтетика в вакууме:)

На записи положение дел принципиально не изменилось - во всех смыслах. Но, что забавно, на обеих системах самым быстрым оказался режим PCIe 2.0 х4 в «процессорном» слоте. На обеих! И при многократных проверках/перепроверках. Тут уж поневоле задумаешься, нужны ли эти ваши новые стандарты или лучше вообще никуда не торопиться...

При работе с блоками разного размера теоретическая идиллия разбивается о то, что повышение скорости интерфейса все же имеет смысл. Результирующие цифры такие, что хватило бы пары линий PCIe 2.0, но реально в таком случае производительность ниже, чем у PCIe 3.0 х4, пусть и не в разы. И вообще тут бюджетная платформа топовую «забивает» в куда большей степени. А ведь как раз такого рода операции в основном в прикладном ПО и встречаются, т. е. эта диаграмма - наиболее приближенная к реальности. В итоге нет ничего удивительного, что никакого «вау-эффекта» толстые интерфейсы и модные протоколы не дают. Точнее, переходящему с механики - дадут, но ровно такой же, какой ему обеспечит любой твердотельный накопитель с любым интерфейсом.

Итого

Для облегчения восприятия картины по больнице в целом мы воспользовались выдаваемым программой баллом (суммарным - по чтению и записи), проведя его нормирование по «чипсетному» режиму PCIe 2.0 x4: на данный момент именно он является наиболее массово доступным, поскольку встречается даже на LGA1155 или платформах AMD без необходимости «обижать» видеокарту. Кроме того, он эквивалентен PCIe 3.0 x2, который готовятся освоить бюджетные контроллеры. Да и на новой платформе AMD АМ4, опять же, именно этот режим как раз можно получить без влияния на дискретную видеокарту.

Итак, что мы видим? Применение PCIe 3.0 x4 при наличии возможности является, безусловно, предпочтительным, но не необходимым: NVMe-накопителям среднего класса (в своем изначально топовом сегменте) он приносит буквально 10% дополнительной производительности. Да и то - за счет операций в общем-то не столь уж часто встречающихся на практике. Для чего же в данном случае реализован именно этот вариант? Во-первых, была такая возможность, а запас карман не тянет. Во-вторых, есть накопители и побыстрее, чем наш тестовый Patriot Hellfire. В-третьих, есть такие области деятельности, где «атипичные» для настольной системы нагрузки - как раз вполне типичные. Причем именно там наиболее критично быстродействие системы хранения данных или, по крайней мере, возможность сделать ее часть очень быстрой. Но к обычным персональным компьютерам это все не относится.

В них, как видим, и использование PCIe 2.0 x2 (или, соответственно, PCIe 3.0 х1) не приводит к драматическому снижению производительности - лишь на 15-20%. И это несмотря на то, что потенциальные возможности контроллера в этом случае мы ограничили в четыре раза! Для многих операций и такой пропускной способности достаточно. Вот одной линии PCIe 2.0 уже недостаточно, поэтому контроллерам имеет смысл поддерживать именно PCIe 3.0 - и в условиях жесткой нехватки линий в современной системе это будет работать неплохо. Кроме того, полезна ширина х4 - даже при отсутствии поддержки современных версий PCIe в системе она все равно позволит работать с нормальной скоростью (пусть и медленнее, чем могло бы потенциально), если найдется более-менее широкий слот.

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