PCI Express — отличия между x1, x4, x8, x16
PC
Стандарт PCI Express является одной из основ современных компьютеров. Слоты PCI Express уже давно занимают прочное место на любой материнской плате десктопного компьютера, вытесняя другие стандарты, например, такие как PCI. Но даже стандарт PCI Express имеет свои разновидности и отличающийся друг от друга характер подключения. На новых материнских платах, начиная примерно с 2010 года, можно увидеть на одной материнской плате целую россыпь портов, обозначенных как PCIE или PCI-E, которые могут отличаться по количеству линий: одной x1 или нескольких x2, x4, x8, x12, x16 и x32.
Итак, давайте выясним почему такая путаница среди казалось бы простого периферийного порта PCI Express. И какое предназначение у каждого стандарта PCI Express x2, x4, x8, x12, x16 и x32?
Что такое шина PCI Express?
В далеких 2000-х, когда состоялся переход с устаревающего стандарта PCI (расш. — взаимосвязь периферийных компонентов) на PCI Express, у последнего было одно огромное преимущество: вместо последовательной шины, которой и была PCI, использовалась двухточечная шина доступа. Это означало, что каждый отдельный порт PCI и установленные в него карты, могли в полной мере использовать максимальную пропускную способность не мешая друг другу, как это происходило при подключении к PCI. В те времена количество периферийных устройств, вставляемых в карты расширения, было предостаточно. Сетевые карты, аудио карты, ТВ-тюнеры и так далее — все требовали достаточное количество ресурсов ПК. Но в отличие от стандарта PCI, использовавшего для передачи данных общую шину с подключением параллельно нескольких устройств, PCI Express, если рассматривать в общем, является пакетной сетью с топологией типа звезда.
PCI Express x16, PCI Express x1 и PCI на одной плате
С точки зрения непрофессионала, представьте свой настольный ПК в качестве небольшого магазина с одним, двумя продавцами. Старый стандарт PCI был как гастроном: все ожидали в одной очереди, чтобы их обслужили, испытывая проблемы со скоростью обслуживания с ограничением в лице одного продавца за прилавком. PCI-E больше похож на гипермаркет: каждый покупатель движется за продуктами по своему индивидуальному маршруту, а на кассе сразу несколько кассиров принимают заказ.
Очевидно, что гипермаркет по скорости обслуживания выигрывает в несколько раз у обычного магазина, благодаря тому, что магазин не может себе позволить пропускную способность больше чем один продавец с одной кассой.
Также и с выделенными полосами передачи данных для каждой карты расширения или встроенными компонентами материнской платы.
Влияние количества линий на пропускную способность
Теперь, чтобы расширить нашу метафору с магазином и гипермаркетом, представьте, что каждый отдел гипермаркета имеет своих кассиров, зарезервированных только для них. Вот тут-то и возникает идея нескольких полос передачи данных.
PCI-E прошел множество изменений со времени своего создания. В настоящее время новые материнские платы обычно используют уже 3 версию стандарта, причем более быстрая 4 версия становится все более распространенной, а версия 5 ожидается в 2019 году. Но разные версии используют одни и те же физические соединения, и эти соединения могут быть выполнены в четырех основных размерах : x1, x4, x8 и x16. (x32-порты существуют, но крайне редко встречаются на материнских платах обычных компьютерах).
Различные физические размеры портов PCI-Express позволяют четко разделить их по количеству одновременных соединений с материнской платой: чем больше порт физически, тем больше максимальных подключений он способен передать на карту или обратно. Эти соединения еще называют линиями. Одну линию можно представить как дорожку, состоящею из двух сигнальных пар: одна для отправки данных, а другая для приема.
Различные версии стандарта PCI-E позволяют использовать разные скорости на каждой полосе. Но, вообще говоря, чем больше полос находится на одном PCI-E-порту, тем быстрее данные могут перетекать между периферийной и остальной частью компьютера.
Возвращаясь к нашей метафоре: если речь идёт об одном продавце в магазине, то полоса x1 и будет этим единственным продавцом, обслуживающим одного клиента. У магазина с 4-мя кассирами — уже 4 линии х4. И так далее можно расписать кассиров по количеству линий, умножая на 2.
Различные карты PCI Express
Типы устройств, использующих PCI Express x2, x4, x8, x12, x16 и x32
Для версии PCI Express 3.0 общая максимальная скорость передачи данных составляет 8 Гбит/с, В реальности же скорость для версии PCI-E 3 чуть меньше одного гигабайта в секунду на одну полосу.
Таким образом, устройство, использующее порт PCI-E x1, например, маломощная звуковая карта или Wi-Fi-антенна смогут передавать данные с максимальной скоростью в 1 Гбит/с.
Карта, которая физически подходит в более крупный слот — x4 или x8, например, карта расширения USB 3.0, сможет передавать данные в четыре или восемь раз быстрее соответственно.
Скорость передачи портов PCI-E x16 теоретически ограничивается максимальной полосой пропуская в размере около 15 Гбит/с. Этого более чем достаточно в 2017 года для всех современных графических видеокарт, разработанных NVIDIA и AMD.
Большинство современных видеокарт используют PCI Express
Протокол PCI Express 4.0 позволяет использовать уже 16 ГТ/с, а PCI Express 5.0 будет задействовать 32 ГТ/с.
Но в настоящее время не существует компонентов, которые смогли бы использовать такое количество полос с максимальной пропускной способностью. Современные топовые графические карты обычно используют x16 стандарта PCI Express 3.0. Нет смысла использовать те же полосы и для сетевой карты, которая на порту x16 будет использовать только одну линию, так как порт Ethernet способен передавать данные только до одного гигабита в секунду (что, около одной восьмой пропускной способности одной PCI-E полосы — помните: восемь бит в одном байте).
На рынке можно найти твердотельные накопители PCI-E, которые поддерживают порт x4, но они, похоже, скоро будут вытеснены быстро развивающимся новым стандартом M.2. для твердотельных накопителей, которые также могут использовать шину PCI-E. Высококачественные сетевые карты и оборудование для энтузиастов, такие как RAID-контроллеры, используют сочетание форматов x4 и x8.
Размеры портов и линий PCI-E могут различаться
Это одна из наиболее запутанных задач по PCI-E: порт может быть выполнен размером в форм-факторе x16, но иметь недостаточное количество полос для пропуска данных, например, всего например x4. Это связано с тем, что даже если PCI-E может нести на себе неограниченное количество отдельных соединений, все же существует практический предел пропускной способности полосы пропускания чипсета. Более дешевые материнские платы с более бюджетными чипсетами могут иметь только один слот x8, даже если этот слот может физически разместить карту форм-фактора x16.
Кроме того, материнские платы, ориентированные на геймеров, включают до четырех полных слотов PCI-E с x16 и столько же линий для максимальной пропускной способности.
На примере — ASUS X99-DELUXE II RTL. Материнская плата с 4 PCI-E с x16
Очевидно, это может вызывать проблемы. Если материнская плата имеет два слота размером x16, но один из них имеет только полосы x4, то подключение новой графической карты снизит производительность первой аж на 75%. Это, конечно, только теоретический результат. Архитектура материнских плат такова, что Вы не увидите резкого снижения производительности.
Правильная конфигурация двух графических видео карт должна задействовать именно два слота x16, если Вы хотите максимального комфорта от тандема двух видеокарт. Выяснить сколько линий на Вашей материнской плате имеет тот или иной слот поможет руководство на оф. сайте производителя.
Иногда производители даже помечают на текстолите материнской платы рядом со слотом количество линий:
Метки на материнской плате PCI Express x1 и x4
Нужно знать, что более короткая карта x1 или x4 может физически вписаться в более длинный слот x8 или x16. Конфигурация контактов электрических контактов делает это возможным. Естественно, если карта физически больше, чем слот, то вставить ее не получится.
Поэтому помните, при покупке карт расширения или обновления текущих необходимо всегда помнить как размер слота PCI Express, так и количество необходимых полос.
5 бесплатных приложений для анализа PCI Express
Существует множество приложений для получения информации о состоянии железа и системы вашего ПК. Какие-то стараются собрать все данные, а какие-то заточены под конкретные задачи. В этом посте я как раз и расскажу о нескольких утилитах для сбора информации о шине PCI.
HWInfo

Профессиональное приложение для сбора информации и диагностики компонентов компьютера. Можно запускать из-под Windows и DOS, есть портативная версия, в том числе PAF.
Инфа представлена в максимально понятном формате с возможностью экспорта.
Для домашнего использования HWInfo полностью бесплатна. Что касается именно PCI Express, возможно, тут вы не найдёте какую-то информацию, которую могут предоставить аналоги.
HE — Hardware Read and Write Utility

Ещё одна утилита, которая не требует установки. Она больше подойдёт инженерам, разработчикам и тестировщикам. Понять предоставляемую информацию обычному человеку будет сложно.
HE — Hardware Read and Write Utility может собирать информацию практически по любому компоненту компьютера, включая PCI, PCI Express, каналы ввода-вывода, встроенные контроллеры, USB и многое другое. Кроме этого, доступна информация об операционной системе, драйверах, запущенных процессах.

Как и аналоги, не требует установки, а ещё есть отдельная версия для Android-устройств. Можно получить инфу по основным устройствам и компонентам системы: процессор, материнская плата, чипсет, шины PCI, хранилище, память, графика и многое другое. Есть возможность сбора данных в реальном времени о внутренней частоте ядер ЦПУ и памяти.
Speccy

Утилита от разработчиков CCleaner, что многих заставит пролистать этот блок ниже. Ещё у приложения есть более продвинутые версии стоимостью от $19.95.
Если забыть про предрассудки, то Speccy — быстрое и лёгкое приложение для сбора инфы о железе и предоставлении её в нормальном читаемом формате. Так, можно увидеть данные о: материнке, памяти, графике, хранилище, ОЗУ и многом другом.
ASTRA32

И последнее приложение, которое предоставляет подробную информацию о железе. Все данные распределены по категориям: материнская плата, хранилище, память, графика и другие. Естественно, про PCI тоже не забыли.
Вы можете просматривать информацию о шине по каждому слоту в отдельности.
diagnostic tool to test speed of PCI-E slot?
Member Join Date Jan 2004 Location United States
Mod Neophyte Super Moderator Join Date Sep 2002 Location USA
Member Join Date Jan 2004 Location United States
Mod Neophyte Super Moderator Join Date Sep 2002 Location USA
OK. This link to Toms Hardware discusses what they use for PCI-E benchmarking: http://www.tomshardware.com/reviews/pci-express-scaling-analysis,1572-8.html
Their site seems mostly for graphics, which I’m not sure is your problem.
And the site they seem to use: http://www.futuremark.com/benchmarks/3dmark Scroll down a ways and you should see some freeware or inexpensive software.
Member Join Date Aug 2001
What card, what mobo, and what issue are you dealing with?
Different utilities for different types of cards, slot speed very rarely an actual issue, usually a card/mobo compatibility problem and/or driver issue.
If the slot speed actually IS the issue, unless warranty covers it, no real fix other than parts replacement. Often the part is not actually defective, just not compatible, so you would need not just a new board, but a DIFFERENT one, and that would be EXTREMELY LOW on my list of probable actual cause of the problem.
There is an incredibly high number of know-nothing idiots who will offer an opinion, I would strongly suspect someone is blowing smoke up your ass, ESPECIALLY if this came from a support tech for the particular card and/or software that is the problem. Damn near an absolute guarantee.
Without specific info on the card, mobo, and actual problem, further assistance is not possible.
Member Join Date Mar 2008 Location Netherlands
The pci express slots on a motherboard can run at different speeds and may not have all lanes electrical connected!
Even though it may be a physically full size slot!
So first check your motherboard manual and see how it is connected.
And check the card specifications so that they match the boards specs.
If they match there shouldn’t be any speed or connectivity problems, but possibly in rare cases the bios/uefi won’t/can’t detect the card.
Member Join Date Jan 2004 Location United States
Member Join Date Mar 2008 Location Netherlands
This is the board specs about expansion slots:
So i think the white x16 slot is your best option, although those slots are actually meant for graphics card it should work
The black slot is not capable enough for this card according to the blackmagics specs:
unless the mode is set to x4 in bios (default is x1)
If you use the white slot, both blue and white slots will operate at x8 mode (at least that’s what i understand from the specs)
Member Join Date Jan 2004 Location United States
Yep you’re correct. When I was using the black slot, I had gone into the bios and set it at X4, as I wasn’t using the USB and eSata anyways.
In the first x16 slot, I have my video card. So now the capture card is in the second slot. Will have to do some testing and see how it goes.
I’m not much of a techy, so I really don’t know what the difference between x4 and x8 means, but hopefully it will fix the problem
Member Join Date Aug 2001
Well, X4 would be 4 times as fast as X1, and X8 would be twice as fast as X4, and X16 would be twice as fast as X8.
You have a very finicky, very demanding, high-performance card that requires all the performance from the slot and the PC that it can get. You need to use the fastest slot available, why start with the slowest one you have?
Member Join Date Aug 2006 Location United States
Originally Posted by Nelson37
Well, X4 would be 4 times as fast as X1, and X8 would be twice as fast as X4, and X16 would be twice as fast as X8.
You have a very finicky, very demanding, high-performance card that requires all the performance from the slot and the PC that it can get. You need to use the fastest slot available, why start with the slowest one you have?
Re-read what sdsumike619 wrote. The BMI Pro 4K is a PCI-e x4 card. It should operate correctly in a PCI-e x4 slot, which is what he was using initially, since it was configured as x4 in the BIOS. I’m the one who told him he could do it (in another thread), as long as he made the required BIOS changes, after I consulted the manual.
Because moving the camera seems to have caused the problem to appear, I would be be pointing a finger at the HDMI cable or the HDMI ports, not the expansion slot.
Member Join Date Jan 2004 Location United States
Member Join Date Mar 2008 Location Netherlands
perhaps a hdmi version conflict/problem?
Are they both the same version?
It’s a long shot i know
Member Join Date Jan 2004 Location United States
Originally Posted by jan5678
perhaps a hdmi version conflict/problem?
Are they both the same version?
It’s a long shot i know
Member Join Date Mar 2008 Location Netherlands
i meant the hdmi version of the blackmagic card and from the camcorder.
If they are not the same, maybe they don’t work very well together?
Another possibility is that the hdmi connector on the card is faulty, You said that on your tv there is no problem when you move the camcorder
Member Join Date Jan 2004 Location United States
Member Join Date Oct 2001 Location Deep in the Heart of Texas
HDMI versions are always backwards-compatible, so when negotiating capabilities between source & sink, it falls backs to the Highest Common setting. IOW, problem is not exhibiting HDMI-version-difference symptoms.
Member Join Date Aug 2001
Well, first, Mike’s post did not contain ANY of the performance specs for his board or card, somebody else did that. Second, he indicated MORE THAN ONE time video has frozen, and ONE TIME that the camera was moved when this occurred.
MIKE — How Many Tests, in total, USE ACTUAL NUMBERS, and is it possible that the camera was moved, EVERY SINGLE TIME there was a failure? Do you know the old Yiddish doctor joke about "Don’ go like dat!".
Video capture is not about maximum bandwidth, it is about maximum SUSTAINED bandwidth. The data stream cannot be slowed, delayed or interrupted in any way. Doing so will absolutely, positively result in errors, such as freezing. A television monitor ignores or tolerates such irregularities by design, the capture process does not. These two are dramatically different and Very Often comparing the two exposes unseen errors in the video stream.
The original, theoretically "X4" original slot shares bandwidth and clock cycles with multiple other devices and ports. Clock cycles most likely not changed by not using or disabling other ports.
Eliminate the camera and run a Blue-Ray or other similar, repeatable, different source thru the card as an additional test. Also recommend testing with strenuous effort made to certify the camera remains stable and unmoved throughout. If you have a different HDMI cable, try that as well. They are not all the same.
Как узнать скорость шины pci e
Как узнать какая версия PCI Express на материнской плате
PCI Express (PCIe, PCI ex) – это последовательная компьютерная шина, которая пришла на замену устаревающим PCI и AGP. Сейчас PCI Express является основным способом подключения комплектующих к компьютеру. С ее помощью подключаются твердотельные накопители (SSD), видеокарты, звуковые карты, платы расширения и т. д.
PCI Express появилась в 2002 году и с тех пор вышло уже 4 ее версии (PCI Express 1.0, 2.0, 3.0 и 4.0), а в ближайшем будущем появится и 5-я версия (PCI Express 5.0). Все эти версии обладают полной совместимостью, что позволяет устанавливать новые устройства в старые платы и наоборот. Тем не менее, в некоторых случаях все-таки необходимо знать, какая версия PCI Express используется на материнской плате. Об этом мы и расскажем в данной статье.
Версия PCI Express в характеристиках материнской платы
Если вам нужно узнать какая версия PCI Express используется на вашей материнской плате, то проще всего получить эту информацию из технических характеристик самой платы.
Чтобы найти характеристики платы вам потребуется знать точное название ее модели. Узнать название модели можно из стандартной утилиты « Сведения о системе », которая входит в состав операционной системы Windows. Для этого нажмите комбинацию клавиш Win-R и выполните команду « msinfo32 ». В открывшемся окне, в разделе «Сведения о системе», будет указана модель основной платы. Это и есть название вашей материнской платы.

Дальше вам нужно ввести название материнской платы в любую поисковую систему (например, в Google) и перейти на страницу данной платы на официальном сайте ее производителя.

На странице материнской платы нужно найти раздел « Характеристики » или « Спецификации ».

Здесь будут описаны все основные характеристики платы. Среди прочего здесь будет указана и версия PCI Express. В данном случае на скриншоте видно, что плата оснащена разъемом PCI Express 3.0.

Как видно, если есть название материнской платы, то узнать версию PCI Express не составляет труда.
Версия PCI Express в программе HWiNFO64
Если описанный выше способ вызывает у вас какие-то трудности, то вы можете воспользоваться альтернативным вариантом. Вы можете посмотреть версию PCI Express в бесплатной программе HWiNFO64. Данная программа предназначена для просмотра технических характеристик компьютера. Среди прочего в ней можно посмотреть и версию PCI Express, которую поддерживает материнская плата.

Для этого нужно скачать HWiNFO64 с официального сайта и запустить на своем компьютере. После этого нужно открыть раздел « Motherboard » и найти строку « PCI Express Version Supported ». Здесь будет указана нужная вам информация.
Версия PCI Express в программе GPU-Z
На некоторых сайтах рекомендуют смотреть версию PCI Express в программе GPU-Z. Но, этот способ не совсем корректный и во многих случаях дает неверный результат.

Проблема в том, что GPU-Z это программа для просмотра технических характеристик установленной на компьютере видеокарты. И показывает она информацию исключительно о видеокарте, а не о материнской плате. Поэтому, версия PCI Express, которая указывается в GPU-Z это версия, которую поддерживает видеокарта, а не материнская плата.

В этом можно убедиться, если навести курсор на указанную информацию и дождаться появления подсказки.
как узнать частоту шины PCI?
Вот запустился компьютер, надо в каких то виртуальных файлах или логе ядра узнать текущую частоту шины PCI. Как это сделать?
Есть плата захвата PCI-ная, ее должно хватать на 4 канала 720×576 даже в режиме захвата RGB. Но на максимальном разрешении при любом движении на изображении появляются полосы в месте движения, хотя на менее высоких разрешениях таких полос искажений не наблюдается, вот думают может шина не успевает, но на медленно меняющихся движениях нет проблемы, а на низких разрешениях двигайся как хочешь и нет проблем.


Можешь по PCI ID поискать спеки контроллера, можешь посмотреть вывод lshw.

о, спасибо за lshw, там пишут что width: 32 bits clock: 33MHz для интересующего устройства — наверное это оно
однако для моей PCI-Express 2.0 видяхи пишут 33 МГц это малость смущает, хотя да, там пишут что pciexpress свойство выставлено в логе, но может это просто для совместимости торчит чтобы VGA в DOSах всяких пахал

Всё верно. 33МГц указано для совместимости. Одна линия PCI-Express v1.0 имеет пропускную способность, аналогичную обычному PCI той же частоты. Для v2.0 пропускная способность вдвое выше, плюс линия не одна, а шестнадцать.

Не хватает канала. У писиайки 33 мгц * 32 бита = 133 мб/с, и то, теоретически. У тебя с поток: 720 * 576 * 32/4 * 4 * 25 = 158 мб/с. Спасёт переход на YUV420, который цветность несколько снизит (одинаковый цветоразностный компонента на 4 пиксела), зато поток данных в два раза меньше будет. Ну или какой там похожий формат твои платы поддерживают. Смысл в том, что самый жирный выбранный тобой формат по шине не пролазит.
У PCI-Express частота фиксированная, и к пропускной способности прямого отношения не имеет. Нужно смотреть LnkCap у lspci -vvv, там есть количество задействованных линий (Width) и пропусканая способность каждой (Speed).
NVMe-накопители в разных режимах работы интерфейса PCI Express: практическое исследование масштабируемости интерфейса в задачах передачи данных
Если спросить, какой интерфейс следует использовать для твердотельного накопителя с поддержкой протокола 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 раз. Из чего, разумеется, не следует, что нужно спешно бежать осваивать совсем медленные интерфейсы — их время ушло безвозвратно. Просто многие возможности быстрых интерфейсов могут быть реализованы лишь в будущем. Или в условиях, с которыми обычный пользователь обычного компьютера никогда в жизни непосредственно не столкнется (за исключением любителей меряться известно чем). Собственно, и всё.