Линии PCIe – что это
Выбирая материнскую плату, мы обязательно обращаем внимание на количество и тип разъемов для установки различных устройств, от видеокарты и SSD до самых разнообразных контроллеров и адаптеров. Одним из параметров этих разъемов, помимо физического размера, является конфигурация интерфейса, выведенного на них. Давайте немного углубимся сегодня в эту тему, а точнее, поподробнее поищем ответ на вопрос линии PCIe – что это, для чего это, и сколько этого вообще надо.
Исходные данные
Как вы уже поняли, сегодня речь про интерфейс PCIe, он же PCI-Express. Благо никакой другой сейчас по сути не используется. Все еще можно встретить редкие материнские платы с устаревшим PCI, но это специфические модели для работы с античными устройствами, которые по разным причинам заменить не представляется возможным.
Ну и как было сказано в названии, в первую очередь сделаем упор на линии PCIe. Нас интересует, зачем их несколько, сколько оных нам надо и как их использовать.
История PCI-Express
Не буду углубляться в этапы развития этого интерфейса, но кратко все же надо пробежаться по версиям PCI-Express, дабы иметь представление, о чем речь и каковы перспективы.
Первая базовая спецификация 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»), по второму – в обратную сторону. При этом работа идет в дуплексном режиме, т. е. и «туда», и «обратно» информация передается на полной скорости. Наличие шин питания, специализированных сигнальных контактов сейчас опускаем.
Аналогия 1 - автомобильная дорога. В данном случае это двухполосное (по одной полосе в каждую сторону) шоссе. Аналогия 2 – проводной Ethernet, основанный также на паре проводников. Это в минимальной конфигурации. В реальности же PCIe может использовать 1/2/4/8/16 линий связи.
Уровни PCIe
Если уж мы сравниваем PCIe с сетевым протоколом, то, наверное, должны быть тут и уровни, или слои? Ну там физический, канальный… В общем то да, тут их 4, которые давайте кратко рассмотрим.
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%.
На иллюстрации выше показано начало таблицы кодирования данных при использовании кодировки 8b/10b. Исходный байт разделяется на две части. Младшие 5 бит дополняются одним контрольным, в свою очередь также старшие три бита также дополняются еще одним. В результате имеем формулу 5b/6b и 3b/4b.
Принцип кодирования – тема объемная, и если ее и рассматривать, то в отдельном материале.
Как рассчитать скорость передачи
Зная версию интерфейса и частоту его работы, можно определить скорость передачи PCIe. Округленные значения разных версий этого интерфейса приведены в таблице:
Версия PCIe | Частота (ГТ/с) | Тип кодирования | Скорость передачи (ГБ/с) | ||||
x1 | x2 | x4 | x8 | x16 | |||
PCIe 1.0 | 2.5 | 8b/10b | 0.25 | 0.5 | 1 | 2 | 4 |
PCIe 2.0 | 5 | 8b/10b | 0.5 | 1 | 2 | 4 | 8 |
PCIe 3.0 | 8 | 128b/130b | 1 | 2 | 4 | 8 | 16 |
PCIe 4.0 | 16 | 128b/130b | 2 | 4 | 8 | 16 | 32 |
PCIe 5.0 | 32 | 128b/130b | 4 | 8 | 16 | 32 | 53 |
PCIe 6.0 | 64 | 128b/130b | 8 | 16 | 32 | 64 | 128 |
Если есть желание, можно вычислить поточнее скорость передачи в каждом случае.
Формула расчета довольно проста:
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 необходимо?
Чтобы ответить на этот вопрос, необходимо определиться с конфигурацией будущей системы. Я сейчас не затрагиваю тему разгона, ибо это несколько иной подход к выбору материнской платы, а исхожу из требований к использованию каких-либо плат расширения. Вариант офисного компьютера также оставлю за рамками разговора, т. к. в большинстве случаев достаточно минимальной конфигурации с использованием встроенного в процессор видеоядра и установка каких-либо дискретных адаптеров скорее всего не планируется.
Если будущий ПК предназначен для сборки игровой системы нижне-среднего уровня без разгона и использования флагманских CPU и GPU, то будет использоваться только внешняя видеокарта в сочетании с 1-2-3 накопителями. Значит, рассматривать можно платы, начиная с младших чипсетов. Даже у них есть возможность установки некоторых дополнительных адаптеров.
А кстати, сколько вот для этих «некоторых дополнительных адаптеров» линий-то нужно? Давайте попробуем свести это в табличку:
Плата расширения | Кол-во линий PCIe |
Видеокарта AMD/NVidia | 16 |
RAID-контроллер | 4-8 |
SSD PCIe x4 | 4 (каждый) |
Адаптер SSD M.2 накопителей | 4-8 |
Звуковая карта | 1 |
Адаптер USB 3.2 Gen1 | 1-4 |
Адаптер USB 3.2 Gen2 | 4 |
Адаптер eSATA | 1 |
Это не весь возможный перечень. При необходимости, можно установить адаптер LPT и прочих портов, дополнительный сетевой контроллер и т. п. Как бы то ни было, надо точно знать, какой разъем для такой платы нужен и сколько линий PCIe он требует.
Если же выбор останавливается на топовом железе, то в любом случае в вашем распоряжении будет максимально возможное количество линий, и остается только не выйти за их лимит, утыкивая материнскую плату разнообразными адаптерами, накопителями и т. п.
Подробнее про линии процессоров и чипсетов
Давайте от теории поближе к практике. Мы уже выяснили, что фактически «владельцами» линий PCIe являются процессор и чипсет, хотя никто не запрещает другим устройствам обмениваться данными между собой по этим линиям. Чтобы разобраться пообстоятельнее, рассмотрим каждый сокет отдельно.
AMD AM4
Возьмем, например, CPU AMD Ryzen 7 5800X и чипсет к нему X570.
На иллюстрации представлен условный процессор 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.
Нас интересуют три «больших» разъема, а точнее те его части, что располагаются после перемычки. Давайте присмотримся внимательнее. Несложно заметить, что у первого, ближнего к процессору, все места под контакты заполнены. А вот у второго видно, что контакты (такие блестящие металлические точки в данном случае) заканчиваются где-то посередине. А третий вообще заполнен ими на четверть.
Что мы можем почерпнуть из полученных сведений? Судя по всему, у первого разъема 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 линии, заработает в разъеме с двумя линиями, при условии, что физически он в него устанавливается, далеко не факт.
Если видеокарта – не единственное устройство, которое будет устанавливаться в компьютер, то перед покупкой материнской платы следует уточнить количество и тип разъемов на ней, их возможности, дабы все работало как надо. И далеко не всегда нужно тратиться на топовый продукт, т. к. даже материнки попроще вполне могут обеспечить нужный функционал без необходимости переплаты за неиспользуемые возможности.
Обязательно внимательно ознакомьтесь с характеристиками выбранной платы. Все возможные варианты работы и ограничения там будут указаны.
Правильного выбора!
Афтар Андрей, Ты афигительный КросафчегЪ!
Отличная статья. Прежде всего наличием объяснения по теме использования всех 16 линий видеокартой. Да, видюху нагрузить на все 16 линий - достаточно спорная задача. Игрушки пишут криворукие индусские программисты. Оптимизация во всех ипостасях ;). Т.е. простой геймер точно не заметит, какая версия PCIe используется видеокартой - вторая, третья или даже четвёртая. Пропускной способности ТРЕТЬЕЙ версии PCIe хватает под ЛЮБЫЕ игрульки! Это факт!!! Если софт ОПТИМИЗИРОВАН, однозначно хватает третьей версии PCIe. Ну, производителям плюс в карму - готовят серьёзную передачу данных по пятой и шестой версии PCIe, задел на будущее есть! Отдельное спасибо за внимание к расположению контактов в слотах под х16. Очень точно подмечено!!! Когда контакты в х16 слоте заканчиваются на середине слота - это как минимум вызывает вопросы. Как максимум желание разобраться. Ты точно и чётко обосновал этот вопрос. Т.е. полноразмерный х16 слот "иногда скромно работает в режиме х8" ;)). И Ты чётко объяснил, почему это происходит!
Большое пребольшое спасибо, Андрей. Многое прояснилось!
Но не совсем понял следующее:
1. Разве правильно складывать pci линии чипсета и процессора? Насколько понимаю чипсет коммутирует устройства, которые подключена к его линиям и по зарезервированным линиям для передачи данных процессору, передает данные процессору. То есть нужно вычесть как минимум число этих зарезервированных линий. Верно?
2. Те лини, которые подключены к чипсету, коммутируются чипсетом и отправляются по резервированных линиям к процу. Получается что все скоммктированные линии ограчены пропускной способностью зарезервированных линий, через которых чипсет посылает данные процессору?
По пунктам:
1. Складывать линии процессора и чипсета вполне можно чтобы понять, сколько их доступно для подключения устройств. Так, имеем 16 линий от процессора на первый(второй) разъем PCIe x16 плюс еще четыре линии на SSD. Добавляем линии чипсета. Например, Intel B660 имеет 14 линий, 8 PCIe 3.0 и 6 PCIe 4.0. Итого для устройств у нас 16+4+8+6 линий, которые можем использовать по своему усмотрению. Ну, может, за исключением четырех процессорных линий для SSD, которые для чего то еще использовать сложно.
А вот вместе видеокарты поставить, скажем, RAID-контроллер и подключить четыре SSD запросто.
Линии связи между CPU и чипсетом некоммутируемые, они интересны больше для информации чтобы представлять возможную пропускную способность. Обычно эти линии не включаются в список линий процессора или чипсета, а идут отдельной строкой в спецификациях. Правда, AMD любит указывать, что у такого-то процессора 24 линии PCIe, это с учетом четырех линий между чипсетом и CPU. Это несколько путает. В данном случае у Интел более логично.
Поэтому, если для процессора Intel Core i7-12700 указано, что "Макс. кол-во каналов PCI Express - 20", это без учета связи с чипсетом.
2. У чипсета несколько видов линий. Во-первых, это та самая шина DMI, которая никак не коммутируется. Если сказано, что у Intel B660 их четыре значит четыре, без вариантов. И больше их никак не используешь.
У каждого чипсета есть еще несколько некоммутируемых линий, они идут на порты SATA, на сетевой адаптер, на USB и т. п., что обеспечивает базовый функционал чипсета.
Плюс к этому еще некоторое количество коммутируемых линий, которые производитель материнской платы может использовать по своему усмотрению. Поставить несколько разъемов PCIe для разных плат. Или сделать таких разъемов минимум, а линии применить для M.2 разъемов, дополнительных SATA портов, USB, сетевых контроллеров и т. п.
Т. е. у чипсета три вида линий: DMI, некоммутируемые и коммутируемые. Первые две важны, но с делать с ними ничего нельзя, а вот с последними производители материнок могут варьировать.
Мигрировал с платформы Интел на платформу АМД только потому, что количество КОММУТИРУЕМЫХ линий ПиСиАй експресс красные предложили больше, чем синие. Являюсь счастливым обладателем двенадцатиядерной платформы от АМД за несравнимо меньшие финансовые затраты, которые мне могла предложить Интел.
Тоже очень интенсивно изучал проблему распределения линий PCIe. Так вот с уверенностью могу сказать, что для того, чтобы ГРАМОТНО распределить 16 линий с разъёма для видеокарты нужен ПРОДВИНУТЫЙ контроллер, который стоит "немеряно"!. Это если использовать эти линии для накопителей NVMe по принципу 4 линии на накопитель в количестве 4 накопителей (4х4).
Поэтому я пошёл другим путём. Изначально хотел отказаться не только от HDD, но и от SSD. После долгих изысканий пришёл к следующему:
1. Имею семь накопителей NVMe, объединённых в 2 RAID-а.
2. Имею чипсет, который позволяет РАСПРЕДЕЛЯТЬ линии PCIe по четырём х16 слотам. Т.е. в UEFI БИОСе можно выставить конфигурацию двух слотов - x16 или 2 х8 или 4 х4, а других двух - х8 или 2 х4. Поэтому для объединения накопителей в RAID не нужен контроллер, а достаточно дешёвой платы (пример моей платы - asus hyper m.2 x16 pcie 3.0 x4 expansion card v2 supports 4 nvme m.2). Что самое интересное эти 48 линий я распределяю по своему желанию. Т.е. это именно те линии, которыми я могу манипулировать. Оставшиеся 16 линий строго привязаны к оборудованию на материнке.
3. Имею 8 SATA портов, к 7 подключены карманы (такие https://mysku.ru/blog/china-stores/68771.html) и DVD-RW. Использую парк своих дисков как флешки.
4. Имею быструю дисковую подсистему. Скорость копирования файлов ПОЛТОРА ГИГАБАЙТА в секунду. Т.е. 15 гигабайт копируется за 10 секунд.
Так что если хотите полноценно командовать линиями PCIе - то вам однозначно нужно брать не это говно (i7, i5, i9 и прочую целероношелупонь) а либо Зион-платформу, либо Трейдриппер-платформу.
Вторую можно отыскать в три раза дешевле первой. У меня ASRock x399 Taichi. И я не просто в восторге. Я в поной гармонии. Вся платформа мне обошлась в сумму до 800 еврорублей.
Ещё раз большое спасибо! Выяснил, что интересовало 🙂
Здраствуйте.
У меня материнка msi B85-G43 GAMING поддерживает PCI Express 3.0.
Но в материнке нет разьема M2. Только через адаптер можно подключить. Не могу понять поддерживает ли она вообще MVMe
Есть ли смысл брать Western Digital Blue SN550 NVMe SSD 1TB??????
PCI Express 3.0 поддерживается только первым разъемом PCIe x16, куда обычно видеокарту ставят. можно через адаптер установить PCIe SSD, и даже не один. Можно и во второй слот PCIe 2.0 x4 поставить SSD, и Western Digital Blue SN550 работать должен, разве что не на полной скорости.
Вопрос в том, удастся ли загрузиться с этого накопителя.
То есть, вы имеете в виду, если поставить винду на этот SSD, она может не работать или работать некорректно??
На старых материнках может быть проблема с загрузкой с накопителей, подключенных не к стандартным портам (SATA в частности), а через какие-то контроллеры/переходники. Это не значит, что невозможно, но может потребоваться обновление BIOS или даже поиск какой-либо кастомной прошивки. Тут дело случая.
Потрясающая глубина познания. Единственная в сети статья с дружественным изложением на человеческом языке.! Автору респект, поклон и уважуха.