Линии PCIe – что это

Выбирая материнскую плату, мы обязательно обращаем внимание на количество и тип разъемов для установки различных устройств, от видеокарты и SSD до самых разнообразных контроллеров и адаптеров. Одним из параметров этих разъемов, помимо физического размера, является конфигурация интерфейса, выведенного на них. Давайте немного углубимся сегодня в эту тему, а точнее, поподробнее поищем ответ на вопрос линии PCIe – что это, для чего это, и сколько этого вообще надо.

Исходные данные

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

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

История PCI-Express

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

PCIe_gen

Первая базовая спецификация PCI-Express была представлена в июле 2002 года. Устройства, работающие с этим интерфейсом, используют двунаправленную последовательную связь типа «точка-точка». Применяется низковольтная дифференциальная передача сигнала (LVDS) по двум проводникам. Собственно, это и есть та самая линия. Это полнодуплексная связь, т. е. передача сигнала и в одну, и противоположную сторону может выполняться одновременно на полной скорости.

«Скорость», т. е. пропускная способность первой версии интерфейса составляла 2.5 ГТ/с (гигатранзакции в секунду). Для того, чтобы перевести это значение в более привычные Гига/Мега байты или биты, надо учитывать кодировку 8b/10b. Каждый байт (8 бит) исходных данных дополняется двумя битами, превращая 8-битные слова в 10-битные.  Это необходимо для контроля целостности информации и некоторых служебных нужд. В итоге, пропускная способность PCI Express 1.0 составляет 250 МБ/с.

Вторая версия PCI-Express появилась в 2007 году. Скорость передачи удвоилась, достигнув 5 ГТ/с или 500 МБ/с при той же системе кодирования данных.

Больше изменений произошло с выходом 3-й версии этого интерфейса в конце 2010 года. Скорость передачи составила 8 ГТ/с, но реальный прирост все равно практически удвоился. Это было достигнуто за счет перехода на кодирование 128b/130b. Фактически, в предыдущих генерациях интерфейса 1/5 часть пропускной способности тратилась на служебную информацию. За счет перехода на новую систему кодирования «ширина» канала для передачи данных увеличилась.

В 2019 году свет увидела 4-я версия PCIe, где опять удвоилась скорость передачи до 16 ГТ/с, что стало составлять 1 969 ГБ/с на одну линию. Этот интерфейс уже появился на материнских платах последних поколений и используется современными видеокартами и высокопроизводительными твердотельными накопителями.

На горизонте PCIe 5.0 с очередным удвоением пропускной способности до 32 ГТ/с, или 3 938 ГБ/с. Ведутся работы и над PCIe 6.0.

Что такое линия PCIe

В простейшем виде - это некое соединение между двумя устройствами в виде двух проводов, по одному данные передаются в одну строну (условно, от «устройства 1» к «устройству 2»), по второму – в обратную сторону. При этом работа идет в дуплексном режиме, т. е. и «туда», и «обратно» информация передается на полной скорости. Наличие шин питания, специализированных сигнальных контактов сейчас опускаем.

Линии PCIe – что это

Аналогия 1 - автомобильная дорога. В данном случае это двухполосное (по одной полосе в каждую сторону) шоссе. Аналогия 2 – проводной Ethernet, основанный также на паре проводников. Это в минимальной конфигурации. В реальности же PCIe может использовать 1/2/4/8/16 линий связи.

Уровни PCIe

Если уж мы сравниваем PCIe с сетевым протоколом, то, наверное, должны быть тут и уровни, или слои? Ну там физический, канальный… В общем то да, тут их 4, которые давайте кратко рассмотрим.

Линии PCIe – что это. Уровни PCIe

Application Layer

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

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

Transaction Layer

При отправке данных полученный блок информации с заголовком (Header+Data) дополняется кодом проверки ECRC (End to End Cyclic Redundancy Check). При приеме этот код может быть сравнен с контрольным вычисленным значением для подтверждения того, что блок данных поступил без искажений.

Data Link Layer

На этом уровне формируется уникальный двухбайтовый номер (Sequence Number) пакета, который может понадобиться при неуспешной отправке данных. Затем к нему добавляется информация, полученная от Transaction Layer (Header+Data+ECRC), и добавляется код LCRC (Local Cyclic Redundancy Check), используемый для проверки целостности данных от предыдущего уровня.

При приеме производится проверка кода LCRC, и если ошибок нет, то источнику передается сигнал ACK (ACKnowledge) об успешной передаче. Если же обнаружена проблема, то посылается сигнал NAK (Not AcKnowledge), означающий, что пакет с данным номером (Sequence Number) должен быть передан заново.

Physical Layer (физический уровень)

Последний уровень осуществляет согласование условий приема необработанных пакетов (PLP - Physical Layer Packets), то есть определение ширины полосы и ее частоты для связи с другим устройством.

Во время передачи данных информация, поступившая с предыдущего уровня (Header+Data+ECRC+LCRC), предваряется стартовым байтом, который, по сути, информирует получателей о начале блока данных. Аналогично, по окончании передается еще один байт, информирующий о конце передачи блока информации.

При приеме данные начальный и конечный байты позволяют определить блок данных.

Как выполняется контроль целостности данных

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

Для версий PCIe 1.0 и 2.0 использовалась кодировка 8b/10b. Начиная с 3-й версии интерфейса используется 128b/130b. Это значит, что в старых версиях PCIe каждый байт дополнялся двумя служебными битами, а PCIe 3.0 и последующие дополняют каждые 128 бит двумя служебными битами.

Что это дает? При кодировании 8b/10b 20% пропускной способности шины тратится на передачу служебной информации. Кодировка 128b/130b позволяет уменьшить эти потери до 1.5%.

PCIe_data_codes_groups

На иллюстрации выше показано начало таблицы кодирования данных при использовании кодировки 8b/10b. Исходный байт разделяется на две части. Младшие 5 бит дополняются одним контрольным, в свою очередь также старшие три бита также дополняются еще одним. В результате имеем формулу 5b/6b и 3b/4b.

Принцип кодирования – тема объемная, и если ее и рассматривать, то в отдельном материале.

Как рассчитать скорость передачи

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

Версия PCIeЧастота (ГТ/с)Тип кодированияСкорость передачи (ГБ/с)
x1x2x4x8x16
PCIe 1.02.58b/10b0.250.5124
PCIe 2.058b/10b0.51248
PCIe 3.08128b/130b124816
PCIe 4.016128b/130b2481632
PCIe 5.032128b/130b48163253
PCIe 6.064128b/130b8163264128

Если есть желание, можно вычислить поточнее скорость передачи в каждом случае.

Формула расчета довольно проста:

BW (МБ/с) = FR (МТ/с) * EN * 1B/8b

Где:

  • BW – искомая скорость передачи в МБ/с
  • FR – частота шины в ГТ/с
  • EN – тип кодирования

Например, для PCIe 2.0 вычислим скорость передачи одной линии интерфейса:

BW = 5000 * 8/10 * 1/8 = 5000 * 0.8 * 0.125

BW = 500 МБ/с

Если же надо выяснить скорость передачи для PCIe 3.0, то расчет будет таким:

BW = 8000 * 128/130 * 1/8 = 8000 * 0.985 * 0.125

BW = 985 МБ/с

Это скорость одной линии. Если оных несколько, то просто перемножаем полученное значение на количество линий PCIe. Так, в варианте x4 (например, для SSD) максимальная скорость передачи составит 3 940 МБ/с). Соответственно, максимальная скорость для видеокарты, работающей с 16-ю линиями будет уже 15 760 МБ/с.

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

Сколько линий PCIe необходимо?

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

PCIe_pci_express_lanes

Если будущий ПК предназначен для сборки игровой системы нижне-среднего уровня без разгона и использования флагманских CPU и GPU, то будет использоваться только внешняя видеокарта в сочетании с 1-2-3 накопителями. Значит, рассматривать можно платы, начиная с младших чипсетов. Даже у них есть возможность установки некоторых дополнительных адаптеров.

А кстати, сколько вот для этих «некоторых дополнительных адаптеров» линий-то нужно? Давайте попробуем свести это в табличку:

Плата расширенияКол-во линий PCIe
Видеокарта AMD/NVidia16
RAID-контроллер4-8
SSD PCIe x44 (каждый)
Адаптер SSD M.2 накопителей4-8
Звуковая карта1
Адаптер USB 3.2 Gen11-4
Адаптер USB 3.2 Gen24
Адаптер eSATA1

Это не весь возможный перечень. При необходимости, можно установить адаптер LPT и прочих портов, дополнительный сетевой контроллер и т. п. Как бы то ни было, надо точно знать, какой разъем для такой платы нужен и сколько линий PCIe он требует.

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

Подробнее про линии процессоров и чипсетов

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

AMD AM4

Возьмем, например, CPU AMD Ryzen 7 5800X и чипсет к нему X570.

Линии PCIe – что это

На иллюстрации представлен условный процессор 5000-й серии с указанием интерфейсных линий. Из нее видно, что у процессора есть 16 линий для видеокарты и 4 – для SSD. Итого 20. Иногда можно встретить упоминание, что линий 24, но это с учетом четырех, которые связывают CPU с чипсетом. Эти линии никоим образом не могут быть переконфигурируемы и их упоминание справедливо разве что для статистики.

Те линии, которые идут на видеокарту, вернее, на разъем под нее, могут быть разделены между двумя разъемами для поддержки технологий SLI/Crossfire. В этом случае линии распределяются поровну между двумя разъемами (режим x8/x8) или второй работает в режиме x4.

Четыре процессорные линии для накопителей выводятся на ближний к сокету CPU разъем M.2.

Количество доступных линий у чипсета зависит от его модели. Так, X570 располагает 16-ю линиями, 8 из которых могут свободно конфигурироваться производителями материнских плат, а еще 8 можно использовать для SATA или накопителей/разъемов. При этом в работе будет интерфейс 4-го поколения.

Чипсеты B550 и A520 могут использовать только PCIe 3.0, даже для связи с процессором. Самих линий тоже меньше, 10 и 6 соответственно.

Intel 1200

На данный момент это самый «свежий» сокет под процессоры 10-го и 11-го поколения. Более подробно рассмотрим самое последнее CPU Rocket Lake. Конфигурация линий тут та же, что и у конкурентов – 16 линий для видеокарты и 4 для накопителя. Правда, связь с чипсетом по-прежнему осуществляется по шине DMI3, что фактически является PCIe 3.0, но зато таких линий теперь 8, а не 4.

Старший чипсет Z590 располагает 24-ю линиями PCIe 3.0, что дает возможность установить несколько M.2, а также несколько разъемов PCIe 3.0 x4 и/или PCIe x1. У Z570 линий 20, у B560 – 12, а младший A510 довольствуется 6-ю.

Как определить количество доступных линий на материнской плате

А что в этом сложного? Посмотреть на разъемы, которые есть на материнской плате, и все станет ясно. Верно? Давайте разбираться.

Разъемы для плат расширения

Для начала определимся с форм-факторами разъемов PCIe. В настоящее время используются разъемы PCIe x1, x4 и x16. В теории, существуют еще PCIe x8, но в реальности они не используются.

 

Для прояснения темы легче всего использовать конкретные примеры, для чего нам сначала понадобится плата ASRock Z590M Phantom Gaming 4. Давайте посмотрим на нее внимательно, в частности, на установленные на ней разъемы PCIe.

В нашем распоряжении по одному PCIe x16, PCIe x4 и PCIe x1. В результате мы можем воспользоваться 21-й линией для установки различных дискретных устройств – видеокарт, адаптеров, контроллеров и проч. Ну вот, предположение разве не подтвердилось?

 

Подтвердилось, но давайте возьмем другой пример, MSI MPG Z590 Gaming Force. У нее три «больших» разъема PCIe x16 и два маленьких x1. Ну и сколько у нас всего линий, 50? Давайте считать, у процессора Intel 11-го поколения доступных линий 16 для плат расширения (читай, видеокарты), у чипсета Z590 – 24, итого 40. Ну ладно, предположим, что на эти разъемы каким-то образом выведены еще 4 линии, предназначенные для накопителя. Все равно шесть не хватает.

Вот тут и кроется проблема, что значение после буквы «x» в маркировке разъемов PCIe x** отражает реальное положение вещей только в одном случае – для PCIe x1. Только для него можно абсолютно точно сказать, что разъем работает с одной линией интерфейса.

К сожалению, маркировка PCIe x16 и PCIe x4, скорее, говорит нам о физическом размере, и о том, что эти разъемы МОГУТ иметь по 16 и 4 линии соответственно. Могут, но не обязаны. Реальность такова, что к PCIe x16 могут быть подведены 1, 2, 4, 8 или 16 интерфейсных линий. В случае с PCIe x4 этот перечень заканчивается на 4.

В итоге, у рассматриваемой MSI MPG Z590 Gaming Force первый разъем действительно имеет 16 линий (процессорных), второй – только 8 (тоже от процессора), а у третьего их вообще 4. И никакими 50-ю тут и не пахнет. Отсюда вывод – геометрические размеры разъема мало что говорят о параметрах подключенного к нему интерфейса.

Так как же узнать, где и сколько линий используется? В первую очередь обратиться к спецификациям на данную модель материнской платы. Там указано, что первые два слота подключены к процессору и могут работать в режимах x16/x0, x8/x8 или x8/x4, т. е. в первом разъеме действительно 16 линий, а во втором только восемь.

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

Третий разъем, хоть он и не уступает по размерам оставшимся, имеет 4 линии PCIe от чипсета.

В действительности определить, сколько линий в том или ином разъеме можно, если внимательно посмотреть на них, а вернее, в них. Для примера привожу фотографию части платы MSI MPG Z590 Gaming Force.

PCIe_PCIe_x16

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

Что мы можем почерпнуть из полученных сведений? Судя по всему, у первого разъема 16 линий, у второго – 8 (контакты заканчиваются посередине), а у третьего скорее всего 4. Обратимся к спецификациям и видим, что так и есть.

К сожалению, таким образом можно провести только предварительный анализ возможностей платы, но вот как распределены линии, от кого (CPU или чипсета) подведены к каждому конкретному разъему и сколько их в реальности, можно узнать только из официальных характеристик на плату. Тем не менее, возможность прикинуть конфигурацию «на глаз» может иногда оказаться полезной.

Разъемы M.2 для накопителей

Ну вот с ними-то уж все ясно. Все они на современных материнках поддерживают SSD с интерфейсом PCIe, значит, уж по 4 линии у них есть, верно? Не хочу показаться занудой, но давайте разбираться опять.

 

Опять будем смотреть конкретную плату - ASRock A520M Pro4. На ней распаяны два M.2 с ключом M, оба поддерживают накопители SSD PCIe. Догадливые наверняка спросят, и в чем подвох? И он действительно есть. Второй M.2, тот, который без штатного радиатора, может работать только с накопителями SATA и PCIe x2. Обращаю внимание на «x2». В разъеме только две (!) интерфейсные линии, и SSD сюда надо ставить соответствующие.

Еще более внимательные обратят внимание, что тут младший чипсет a520, у которого всего 6 линий, 2 из которых обычно отдается для SATA (и их тут действительно 4), остается 4 линии. Из них одна скорее всего отдана сетевому контроллеру, итого остается 3.

При этом есть еще разъем PCIe x4 с двумя линиями, второй M.2 и… что-то не сходится. Действительно, этот второй M.2 делит интерфейсные линии с двумя разъемами SATA, 3-м и 4-м. Это значит, что можно либо использовать SSD M.2 PCIe x2 при отключенных двух SATA разъемах, либо наоборот, задействовать все SATA без возможности установить второй твердотельный накопитель.

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

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

Что делать, если линий PCIe не хватает

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

Предположим ситуацию, что помимо графического адаптера будет установлен еще быстродействующий SSD накопитель в разъем, обслуживаемый процессором, а также еще один SSD M.2 в чипсетный. А еще может быть, звуковую карту и/или адаптер для дополнительных USB.

Возможностей самого простого чипсета если и хватит, то в обрез. И это при условии, что обилия SATA накопителей не будет. Да и то, второй разъем M.2 будет только у двух плат - ASRock A520M Pro4 и ASRock A520M Phantom Gaming 4, причем один из таких разъемов работает в режиме PCIe x2.

 

Если подняться на ступеньку выше, до AMD B550 или Intel B560, то проблем с двумя-тремя накопителями M.2 уже нет, да и для различных плат разъемов больше. Напомню, у этих чипсетов 10 и 12 линий соответственно.

Теперь другая ситуация – требуется использование дискретной видеокарты, а также сборка RAID-массива на внешнем адаптере, или установка нескольких высокоскоростных SSD PCIe 4.0 для специфических задач. Ситуация, может, и довольно редкая, но вполне реальная.

Ладно, для видеокарты слот есть, и тут заботиться не надо. Для адаптера SSD тоже хотя бы один PCIe x4 есть. Так что хватит. А хватит ли? Если накопители будут с SATA интерфейсом, то для каждого такого SSD достаточно по одной линии PCIe. Например, для QNAP QM2-2S-220A достаточно использовать 2 линии для каждого из двух SSD.

А если накопители скоростные, и каждому нужно по 4 линии, или если это RAID-контроллер? Для одного такого SSD четырех линий хватит, но следует помнить, что Intel, как и AMD, на младших чипсетах позволяет использовать только 3-ю версию PCIe. А нам нужна скорость и мощь! А самая «крутень» - это линии CPU версии 4.0.

Вот тут может оказаться полезной возможность перераспределения процессорных интерфейсных линий между двумя разъемами PCIe. Как всегда, обратимся к конкретному примеру, например, плате Asus ROG STRIX B550-E GAMING. Что в ней интересного?

 

Интересны два первых разъема PCIe x16. Первый, как и положено, задействует все 16 процессорных линий. А вот второй – их же, но только половину, т. е. 8 штук. Как это работает?

Установленная видеокарта при пустом втором слоте PCIe x16 забирает все имеющиеся ресурсы. Если же мы хотим использовать, скажем, контроллер для дискового массива или адаптер для пары высокоскоростных SSD, то мы установим его во второй слот PCIe x16. В итоге получаем 8 линий PCIe 4.0 от CPU и радуемся производительности. Но откуда взялись эти линии?

Их отняли у видеокарты. Трагедия? Отнюдь. Как показывают обзоры, даже с уменьшенным вдвое количеством линий PCIe видеокарты показывают те же результаты, что и в полноценном режиме работы. Различия в итоговых значениях тестов если и есть, то находятся в пределах погрешности. Даже самые современные видеокарты не способны исчерпать возможности интерфейса.

Зато теперь мы имеем возможность и всласть поиграться без падения производительности, и получить мощную быстродействующую систему хранения для специфических задач. Или установить вторую видеокарту в режим SLI/CrossFire.

 

Правда, такими возможностями обладают далеко не все материнские платы. На Intel B560 я таких моделей вообще не нашел (может просмотрел), да и у AMD вариантов немного – помимо рассмотренной выше ASUS есть еще, например, ASRock B550 Taichi (Razer Edition), Gigabyte B550 VISION D. Как правило, процессор управляет единственным разъемом PCIe x16, и для большинства задач такая конфигурация более чем достаточна.

Заключение. Линии PCIe – что это

Разбираясь с количеством и номенклатурой всех этих линий, надо не забывать и про физическое размещение разъемов на плате. Конкретный пример - Gigabyte B560M AORUS PRO AX. После установки видеокарты расположенный рядом разъем PCIe x1 гарантированно будет перекрыт радиатором графического адаптера. Значит – минус один разъем и одна интерфейсная линия.

Да, в данном случае имеем компактный форм-фактор и такое расположение разъемов – мера вынужденная. И все же обращать внимание на это следует.

Как и на то, как распределяются интерфейсные линии. Так, некоторые разъемы M.2 могут использовать те же ресурсы, что и некоторые SATA порты, т. е. можно использовать либо одно, либо другое.

Также следует помнить, что, например, видеокарту можно установить в разъем с 8-ю линиями, и она будет прекрасно работать. Можно ее поставить и в PCIe x16 с четырьмя линиями, но в данном случае пропускной способности шины может уже и не хватить.

И наоборот, адаптер, которому нужно, скажем, 2 линии, можно установить в разъем с 4 или 8 линиями. Будут использоваться только необходимые ресурсы. А вот то, что какой-либо адаптер, которому надо 4 линии, заработает в разъеме с двумя линиями, при условии, что физически он в него устанавливается, далеко не факт.

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

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

Правильного выбора!

Вас также может заинтересовать...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика