Слот расширения pci e. Чем отличается интерфейс PCI Express от PCI? Форматы шины PCI-E

02.03.2019

Практически все современные материнские платы на текущий момент оснащены слотом расширения 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.

В нем применено две новых частоты работы: 100 МГц и 133 МГц. Кроме того, в данной шине реализован механизм раздельных транзакций в целях улучшения производительности при единовременном подключении нескольких устройств.

По сути, PCI-X, который можно расшифровать как PCI-eXtended , является укороченной версией PCI-E. Впоследствии расширение было вытеснено своим более компактным аналогом, поскольку пространство на материнской плате стало все более острым вопросом, "материнки" становились все меньше, что требовало того же от слотов. Так PCI-E практически полностью вытеснил PCI-X.

Для шины PCI-X существуют ограничения по числу подключаемых к ней устройств: 66 МГц - 4, 100 МГц - 2, 133 МГц - 1, 2, 266 и 533 МГц - только 1.

Данная шина совместима со всеми 3.3 В и универсальными картами расширения PCI. Как правило, PCI-X не широко используется на современных материнских платах. В проф-сегменте используется для RAID -контроллеров, в SSD, под PCI-E .

PCI-X была разработана в сотрудничестве компаниий IBM, HP и Compaq. Шина появилась на рынке в 1998 году. Основной целью создания новой шины являлась попытка внедрить на рынок кодифицированную различными расширениями на платформе локальной PCI новую шину, которая бы исключила недостатки PCI, была бы быстрее и производительнее, и при этом увеличила бы популярность таких устройств, как: Gigabit Ethernet , Fibre Channel и карт Ultra3 SCSI . PCI-X отключается от других PCI шин и позволяет различным агентам использовать ее. Сплит-ответы увеличивают эффективность шины за счет устранения повторных циклов, в течение которых данные не могут быть переданы по шине. Кроме того, в PCI-X добавились устройства MSI, прерывание системы с помощью записи в хост-памяти.

Теоретически, максимальный объем данных, передаваемых между процессором и периферийными устройствами посредством PCI-X, составляет 1,06 Гб/с, по сравнению с 133 Мб/с у стандартного PCI. PCI-X также обладает улучшенным уровнем отказоустойчивости, позволяя пользователю, например, провести повторную инициализацию неисправной карты или перевести ее в автономный режим.

PCI-X не совместим со старыми 5-Вольтовыми I/O, которые так широко применялись в стандартной версии PCI.

В чем отличие PCI-X от PCI 64?

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

32-битная карта будет должным образом функционировать на PCI-X слоте, но PCI-X карты не будут работать на 32-битном слоте. Некоторые PCI 64 карты могут функционировать на 32-битных слотах нормально, но при неизбежной двукратной потери мощности, поскольку пропускная способность шины - ниже.


Версии:

Карты

  • 66 MHz
  • 100 MHz
  • 133 MHz
  • 266 MHz
  • 533 MHz

Слоты

  • 66 MHz
  • 133 MHz
  • 266 MHz
  • 533 MHz

Каждый пользователь ПК хоть раз открывал диспетчер устройств на своем компьютере. Не важно, будь то обычный стационарный компьютер или ноутбук, везде можно найти так называемый PCI-контроллер. Что это и зачем он нужен в компьютере? Где его искать и что с ним делать?

Что такое PCI-контроллер?

PCI является универсальной шиной для подключения различных устройств. Обычно они находятся на материнской плате компьютера и с их помощью к ней могут быть подключены различные дополнительные платы. Обладателям стационарного компьютера будет проще обнаружить на своем ПК PCI-разъемы. Сняв боковую крышку корпуса, вы увидите материнскую плату своего ПК, а на ней несколько больших белых разъемов. Вот эти разъемы и называются PCI-шинами. С их помощью к материнской плате можно подключать видеокарту, звуковую карту, платы с дополнительными разъемами (USB или COM), сетевую карту и т.д.

Сам по себе PCI-контроллер является частью материнской платы и отвечает за нормальную работу самих шин и устройств, подлеченных к ним. PCI-разъемы могут иметь разные версии и предназначаются для различных типов плат. Если внимательно посмотреть на материнскую плату ПК, можно заметить, что разъем для подключения видеокарты отличается от остальных. Это сделано потому, что для видеокарт предусмотрена более высокая скорость обмена данными с материнской платой, а также они потребляют больше электроэнергии. На материнских платах можно обнаружить и маленький PCI-разъем, который предназначен для сетевых или различных других плат, которые потребляют меньше электроэнергии и им не требуется широкий канал передачи данных.

Установка PCI-устройства

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

Узнать, совместимо ли устройство с вашей материнской платой довольно просто:

  1. Загрузите программу Everest , установите и запустите её.
  2. В левой колонке выберите "Устройства" и там же выберите пункт "PCI устройства". Центральное окно программы будет разделено надвое, в верхнем будут перечислены все устройства, которые подключены к PCI-шинам. Нажав на устройство, в нижнем окне можно будет увидеть информацию об устройстве и о самой шине, к которой оно подключено. Там же можно узнать и версию PCI-шины.
  3. Можно поступить проще и найти в сети Интернет описание вашей материнской платы, после чего просто сравнить его с характеристиками устройства, которые вы хотите установить. Узнать модель материнской платы можно с помощью программы Everest, открыв раздел "системная плата".

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

  1. Снимите боковую крышку корпуса ПК.
  2. Выберите PCI-слот, в который будет установлено устройство, или удалите из нужного слота устройство, которое вы хотите заменить новым.
  3. Просто аккуратно вставьте плату так, чтобы она полностью заходила в разъем. Тут вы не ошибетесь, так как неправильно установить плату в разъем физически невозможно.
  4. Подключите дополнительные разъемы (если это требуется) и поставьте на место крышку корпуса.
  5. Запустите ПК. Когда ОС загрузится, вы увидите системное сообщение о том, что было подключено новое устройство. Установите необходимые для его работы драйверы с установочного диска, который идет в комплекте с устройством, загрузив драйвер из сети или воспользовавшись автоматической установкой драйвера.

Проблемы, возникающие с PCI-контроллером

Иногда после переустановки ОС может возникнуть следующая проблема - система не сможет распознать PCI-контроллер. Открыв диспетчер устройств, вы обнаружите пункт "неизвестное оборудование" вместо "PCI-контроллер". Решение проблемы очень простое - загрузите нужный драйвер с сайта производителя вашей системной платы и установите его.

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