Какие бывают pci express слоты. PCI-устройства - что это? PCI-видеокарта

PCI — Express (PCIe , PCI — E ) – последовательная, универсальная шина впервые обнародованная 22 июля 2002 года.

Является общей , объединяющей шиной для всех узлов системной платы, в которой соседствуют все подключённые к ней устройства. Пришла на замену устаревающей шине PCI и её вариации AGP , по причине возросших требований к пропускной способности шины и невозможности за разумные средства улучшить скоростные показатели последних.

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

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

Синхронизация построена избыточным методом. То есть вместо 8 бит информации, передаётся 10 бит , два из которых являются служебными (20% ) и в определённой последовательности служат маячками для синхронизации тактовых генераторов или выявления ошибок . Поэтому, заявленная скорость для одной линии в 2.5 Гбитс , на самом деле равна примерно 2.0 Гбитс реальных.

Питание каждого устройства по шине, подбирается отдельно и регулируется с помощью технологии ASPM (Active State Power Management ). Она позволяет при простое (без подачи сигнала) устройства занижать его тактовый генератор и переводить шину в режим пониженного энергопотребления . Если сигнал не поступал в течение нескольких микросекунд, устройство считается неактивным и переводится в режим ожидания (время зависит от типа устройства).

Скоростные характеристики в двух направлениях PCI — Express 1.0 :*

1 x PCI —E ~ 500 Мбс

PCI —E ~ 2 Гбс

8 x PCI —E ~ 4 Гбс

16х PCI —E ~ 8 Гбс

32х PCI-E ~ 16 Гбс

*Скорость передачи данных в одном направлении в 2 раза ниже данных показателей

15 января 2007 года, PCI —SIG выпустила обновлённую спецификацию именуемую PCI-Express 2.0

Основным улучшением стала в 2 раза увеличенная скорость передачи данных (5.0 Ггц , против 2.5Ггц в старой версии). Усовершенствованию подвергся также двухточечный протокол передачи данных (точка-точка), доработана программная составляющая и добавлена система программного мониторинга за скоростью шины. При этом сохранилась совместимость с версиями протокола PCI —E 1.х

В новой версии стандарта (PCI — Express 3.0 ), главным нововведением будет измененная система кодирования и синхронизации . Вместо 10 битной системы (8 бит информации, 2 бита служебных), будет применяться 130 битная (128 бит информации, 2 бита служебных). Это позволит снизить потери в скорости с 20% до ~1.5% . Будет также переработан алгоритм синхронизации передатчика и приёмника, улучшен PLL (phase-locked loop). Скорость передачи увеличится предположительно в 2 раза (в сравнении с PCI —E 2.0 ), при этом сохранится совместимость с прошлыми версиями PCI —Express .

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

Предыстория появления слота расширения

В начале 2000-х годов со слотом расширения AGP, который на тот момент использовался для установки сложилась такая ситуация, когда максимальный уровень быстродействия достигнут и его возможностей уже недостаточно. В результате этого был создан консорциум PCI-SIG, который приступил к разработке программной и аппаратной составляющих будущего слота для установки графических ускорителей. Плодом его творчества и стала в 2002 году первая спецификация PCI Express 16х 1.0.

Некоторые компании для обеспечения совместимости двух существовавших на тот момент времени портов установки дискретных графических адаптеров разрабатывали специальные устройства, которые позволяли устанавливать устаревшие графические решения в новый слот расширения. На языке профессионалов такая разработка имела свое название - переходник PCI-E x16/AGP. Основное его назначение - это минимизация затрат на модернизацию ПК за счет использования комплектующих с предыдущей конфигурации системного блока. Но такая практика не получила большого распространения по той причине, что видеоплаты начального уровня на новом интерфейсе имели стоимость практически равную цене переходника.

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

Скорость передачи и метод шифрования

В обозначении интерфейса PCI-E x16цифра указывает на количество задействованных полос для передачи данных. В данном случае их 16. Каждая из них, в свою очередь, состоит из 2 пар проводов для передачи информации. Как было отмечено, более высокая скорость обеспечивается тем, что эти пары работают в дуплексном режиме. То есть передача информации может идти сразу в двух направлениях.

Для защиты от возможных потерь или искажения передаваемых данных применяется в этом интерфейсе специальная система защиты информации, которая называется 8В/10В. Это обозначение расшифровывается следующим образом: для правильной и корректной передачи 8 бит данных необходимо их дополнить 2 служебными битами для выполнения проверки правильности. В этом случае система вынуждена передавать 20 процентов служебной информации, которая для пользователя компьютера не несет полезной нагрузки. Но это плата за надежную и стабильную работу графической подсистемы персонального компьютера, и без этого уж точно никак не обойтись.

Версии PCI-E

Разъем PCI-E x16 внешне одинаковый на всех системных платах. Только вот скорость передачи информации в каждом случае может существенно отличаться. Как результат, быстродействие устройства тоже разное. А модификации у этого графического интерфейса такие:

  • 1-я модификация PCI - Express х16 v. 1.0 имела теоретическую пропускную способность в 8 Гб/с.
  • 2-е поколение PCI - Express х16 v. 2.0 уже могло похвастаться увеличенным вдвое значением пропускной способности - 16 Гб/с.
  • Аналогичная тенденция сохранилась уже и для третьей версии данного интерфейса. В этом случае этот показатель был установлен на отметке 64 Гб/с.

Визуально отличить по расположению контактов невозможно. При этом они совместимы между собой. Например, если в слот версии 3.0 установить плату графического адаптера, которая соответствует на физическом уровне спецификациям 2.0, то вся система обработки автоматически переключится в наименее скоростной режим (то есть 2.0) и будет уже в дальнейшем функционировать именно с пропускной способностью в 64 Гб/с.

Первое поколение PCI Express

Как было отмечено ранее, впервые PCI Express был представлен в 2002 году. Его выход ознаменовал появление персональных компьютеров с несколькими графическими адаптерами, которые к тому же могли похвастаться даже с одним установленным акселератором повышенным быстродействием. Стандарт AGP 8Х позволял получить пропускную способность 2,1 Гб/с, а первая ревизия PCI Express - 8 Гб/с.

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

Вторая модификация PCI-E

На смену первому поколению данного в 2007 году пришел PCI-E 2. 0 x16. Видеокарты 2-го поколения, как было отмечено ранее, физически и программно были совместимы с первой модификацией этого интерфейса. Только в таком случае существенно снижалось быстродействие графической системы до уровня версии интерфейса PCI Express 1.0 16х.

Теоретически предел передачи информации в этом случае был равен 16 Гб/с. Но 20 процентов полученного прироста расходовалось на служебную информацию. В итоге в первом случае реальная передача была равна: 8 Гб/с - (8 Гб/с х 20% : 100%) = 6,4 Гб/с. А для второго исполнения графического интерфейса это значение было уже таким: 16 Гб/с - (16 Гб/с х 20% : 100%) = 12,8 Гб/с. Разделив же 12,8 Гб/с на 6,4 Гб/с, получаем реальный практический прирост быстродействия в 2 раза между 1-м и 2-м исполнением PCI Express.

Третье поколение

Последнее и наиболее актуальное обновление этого интерфейса увидело свет в 2010 году. Пиковая скорость PCI-E x16 в этом случае увеличилась до 64 Гб/с, а максимальная мощность графического адаптера без дополнительного питания в этом случае может быть равна 75 Вт.

Варианты конфигураций с несколькими графическими акселераторами в составе одного ПК. Их плюсы и минусы

Одним из наиболее важных нововведений данного интерфейса является возможность наличия сразу нескольких графических адаптеров в x16. Видеокарты при этом объединяются между собой и образуют, по существу, единое устройство. Их общая производительность суммируется, и это позволяет в разы повысить быстродействие ПК с позиции обработки выводимого изображения. Для решений от NVidia такой режим называется SLI, а для графических процессоров от АМД - CrossFire.

Будущее данного стандарта

Слот PCI-E x16в обозримом будущем уж точно не будет изменяться. Это позволит более производительные видеокарты использовать в составе устаревших ПК и за счет этого осуществлять поэтапный апгрейд компьютерной системы. Сейчас же прорабатываются спецификации уже 4-й версии этого способа передачи данных. Для графических адаптеров в этом случае будет предусмотрена максимальная 128 Гб/с. Это позволит выводить изображение на экран монитора в качестве «4К» и более.

Итоги

Как бы там ни было, а PCI-E x16 на текущий момент является безальтернативным графическим слотом и интерфейсом. Он будет актуальным еще достаточно долгое время. Его параметры позволяют создавать как компьютерные системы начального уровня, так и высокопроизводительные ПК с несколькими акселераторами. Именно за счет такой гибкости и не предвидится существенных изменений в этой нише.

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

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

Для чего необходим PCI-Express и что это такое?

Начнем, как обычно, с самых азов. Интерфейс PCI-Express (PCI-E) – это средство взаимодействия, в данном контексте, состоящее из контролера шины и соответствующего слота (рис.2) на материнской плате (если обобщить).

Данный высокопроизводительный протокол используется, как уже было отмечено выше, для подключения видеокарты в систему. Соответственно, на материнской плате присутствует соответствующий слот PCI-Express, куда и устанавливается видеоадаптер. Ранее, видеокарты, подключались по интерфейсу AGP, но когда данного интерфейса, попросту говоря: «перестало хватать», на помощь пришёл PCI-E, о подробных характеристиках которого мы сейчас и поговорим.

Рис.2 (Слоты PCI-Express 3.0 на материнской плате)

Основные характеристики PCI–Express (1.0, 2.0 и 3.0)

Несмотря на то, что названия PCI и PCI-Express очень похожи, принципы соединения (взаимодействия) у них кардинально отличаются. В случае PCI-Express используется линия – двунаправленное последовательное соединение, типа «точка-точка», данных линий может быть несколько. В случае с видеокартами и материнскими платами (не учитываем Cross Fire и SLI), которые поддерживают PCI-Express x16 (то есть большинство), можно запросто догадаться, что таких линий 16 (рис.3), довольно часто на материнских платах с PCI-E 1.0, можно было наблюдать второй слот x8, для работы в режиме SLI или Cross Fire.

Ну, а в PCI, устройство подключается к общей 32- х разрядной параллельной шине.

Рис. 3. Пример слотов с различным количеством линий

(как уже говорилось ранее, наиболее часто используется х16)


Для интерфейса пропускная способность составляет 2,5 Гбит/c. Эти данные нужны нам, чтобы отслеживать изменения этого параметра в различных версиях PCI-E.

Далее, версия 1.0 эволюционировала в PCI-E 2.0 . В результате данного преображения, мы получили в два раза большую пропускную способность, то есть 5 Гбит/c, но хотелось бы отметить, что в производительности графические адаптеры, особо не выиграли, так как это просто версия интерфейса. Большая часть производительности зависит от самой видеокарты, версия интерфейса может только незначительно улучшать или тормозить передачу данных (в данном случае «торможения» нет, и присутствует неплохой запас).

Точно так же в 2010 году, с запасом, был разработан интерфейс PCI-E 3.0 , на данный момент он используется во всех новых системах, но если у Вас все ещё 1.0 или 2.0, то не горюйте – ниже мы поговорим о относительно обратной совместимости различных версий.

В версии PCI-E 3.0, пропускная способность была увеличена в два раза по сравнению с версией 2.0. Также там было произведено немало технических изменений.

К 2015 году ожидается появление на свет PCI-E 4.0 , что для динамической IT-индустрии абсолютно неудивительно.

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

Обратная совместимость версий PCI-Express 1.0, 2.0 и 3.0

Данный вопрос волнует многих, особенно при выборе видеокарты для текущей системы. Так как довольствуясь системой с материнской платой, которая поддерживает PCI-Express 1.0, возникают сомнения, будет ли корректно работать видеокарта с PCI-Express 2.0 или 3.0? Да, будет, по крайней мере так обещают разработчики, которые обеспечили эту самую совместимость. Единственное то, что видеокарта, не сможет полностью раскрыться во всей красе, но потери производительности, в большинстве случаев, будут незначительны.


С точностью наоборот, можно преспокойно устанавливать видеокарты с интерфейсом PCI-E 1.0, в материнские платы, которые поддерживают PCI-E 3.0 или 2.0, тут вообще ничего не ограничивается, так что будьте спокойны по поводу совместимости. Если, конечно же, с другими факторами все в порядке, к таковым можно отнести недостаточно мощный блок питания и т.д.

В общем, мы довольно подробно поговорили относительно PCI-Express, что позволит вам избавиться от множества неясностей и сомнений по поводу совместимости и понимания различий в версиях PCI-E.

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

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

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

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

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

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

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

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

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

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

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

Слоты PCI и AGP

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

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

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

Если спросить, какой интерфейс следует использовать для твердотельного накопителя с поддержкой протокола 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 раз. Из чего, разумеется, не следует, что нужно спешно бежать осваивать совсем медленные интерфейсы - их время ушло безвозвратно. Просто многие возможности быстрых интерфейсов могут быть реализованы лишь в будущем. Или в условиях, с которыми обычный пользователь обычного компьютера никогда в жизни непосредственно не столкнется (за исключением любителей меряться известно чем). Собственно, и всё.