Pci express l1 substates settings что

Обновлено: 07.07.2024

PCI Express (PCIe, PCI-e) – один из наиболее распространенных протоколов передачи данных. Он используется в современной компьютерной технике для обеспечения взаимодействия различных ее функциональных блоков между собой.

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

Актуальности вопросу придает также то, что недавно компания AMD в своих последних процессорах и видеокартах начала использовать новую версию PCI Express (PCIe 4.0), позиционируя это как важное преимущество над устройствами конкурентов. Действительно ли это так?

Во всем этом мы и попытаемся разобраться.

Что такое PCI Express

PCI Express (Peripheral Component Interconnect Express, сокращенно - PCIe или PCI-e) - это компьютерная шина, использующая высокопроизводительный протокол последовательной передачи данных.

Большинству непосвященных это определение наверняка покажется туманным. Чтобы стало понятней, разберем его более подробно.

Компьютерная шина - соединение, служащее для передачи данных между функциональными блоками компьютера.

Протокол – в данном случае значит "схема", "алгоритм", "порядок".

Последовательная передача данных – понятие более сложное, ему придется уделить больше внимания.

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

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

Параллельная передача данных

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

Например, компьютерная шина PATA (IDE), которая в домашних компьютерах не так давно была основным способом подключения жестких дисков, состоит из 40 проводников (на изображении ниже). Из них только 16 используются непосредственно для параллельной передачи данных. За каждую передачу (такт) по такой шине проходит 16 битов информации. Частота шины - 33 МГц, то есть каждую секунду происходит 33 млн. передач. Таким образом, максимальная пропускная способность такого соединения равна 528 млн. битов в секунду (16 х 33 млн.), или, если перевести в мегабайты - 66 Мегабайт / с.


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

• высокие затраты на создание каналов (нужно много проводников);

• высокая помеховосприимчивость из-за взаимного влияния передаваемых сигналов друг на друга (особенно, на длинные расстояния);

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

Последовательная передача данных

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

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

На первый взгляд, такая схема кажется менее эффективной, чем в случае с параллельной передачей. Но это далеко не так. Высокая скорость здесь достигается за счет огромной частоты передачи данных (несколько миллиардов в секунду). А для устройств, требующих особо высоких скоростей обмена данными, одновременно используется несколько таких каналов (линий). Например, современные игровые видеокарты подключаются к компьютеру через 16 линий PCIe (PCIe x16).

Особенности стандарта PCI Express, его версии

Разработка стандарта PCI Express была начата фирмой Intel. Спецификации первой его версии появились еще в 2002 году. Сейчас развитием PCI Express занимается организация PCI Special Interest Group, в совет директоров которой входят представители основных разработчиков аппаратного и программного обеспечения (Intel, Microsoft, IBM, AMD, Sun Microsystems, HP, NVIDIA и другие). В своем развитии PCIe прошел несколько этапов и уже развился до версии 5.0.

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

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

В PCIe 3.0 и боле новых ее версиях данные кодируются по более эффективной схеме 128b/130b (каждые 128 бит кодируются в 130-битный блок). Доля полезного содержания в передаваемых данных здесь составляет уже около 98,46%.

Разные версии PCIe отличаются не только способом "упаковки" битов в блоки, но и частотой передачи данных. В PCIe 1.0 она составляет 2,5 ГТ/с (гигатранзакций в секунду), то есть за одну секунду передается 2,5 миллиарда битов. Для лучшего восприятия переведем это в привычные единицы:

2,5*10 9 Бит / с = 312,5‬ Мегабайт / с.

Учитывая, что только 80% из них являются полезными данными, реальная пропускная способность PCIe 1.0 составляет 250 Мегабайт / с.

В PCIe 5.0 частота передачи данных возросла аж до 32 ГТ/с. Переведем это в удобный вид:

32*10 9 Бит / с = 4000‬ Мегабайт / с = 4 Гигабайт / с.

Поскольку полезные данные составляют 98,46%, реальная пропускная способность PCIe 5.0 равна 3,938 Гигабайт / с.

Применение PCI Express в компьютере. Разъемы PCI Express

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

Версии и количество линий PCIe в разных моделях процессоров и чипсетов отличается. Бо́льшая их часть формируется в разъемы, размещаемые на материнской плате. Они позволяют подключать к компютеру разнообразные устройства (видеокарты, звуковые карты, сетевые карты, Wi-Fi-адаптеры и др.).

На материнской плате современного компьютера можно найти разъемы PCIe нескольких видов, отличающихся количеством используемых в них линий PCIe (от х1 до х16 линий). Не зависимо от того, насколько старым является компьютер, и какая версия PCIe в нем используется, эти разъемы всегда выглядят одинаково:

на изображении: верхний разъем - PCIe x4, по средине - PCIe x16, внизу - PCIe x1


Разные версии PCIe являются полностью совместимыми. То есть, если в старый компьютер, где используется версии PCIe 2.0, установить, например, видеокарту с PCIe 4.0, она будет нормально работать. Однако, реальная скорость обмена данными при этом у нее будет ограничена возможностями PCIe 2.0.

И наоборот, в самый новый компьютер с PCIe 4.0 можно без проблем установить старую видеокарту с PCIe 2.0.

Еще одной особенностью PCIe является совместимость разных ее разъемов. В разъем PCIe x16 можно подключить не только видеокарту, но и абсолютно любое другое устройство PCIe, в том числе и с разъемом PCIe x8, PCIe x4 или PCIe x1.

Совместимость разъемов сохраняется также и в обратную сторону. То есть, в разъем PCIe x1 можно установить видеокарту с разъемом PCIe x16. Физически она туда не войдет, но если разрезать заднюю стенку разъема (как на изображении ниже), то все получится.

Это, конечно же, "кустарщина" и без крайней надобности так делать не нужно. Тем более, что видеокарта при таком подключении будет работать в режиме PCIe x1, что весьма негативно скажется на ее быстродействии.


В ноутбуках для установки дополнительных устройств вместо упомянутых выше разъемов используется более компактный вариант - Mini PCIe. Линии PCIe используются также для создания некоторых других разъемов, в чатности, разъемов M.2 (служат для подключения современных запоминающих устройств, а также устройств некоторых других типов).

на изображении - разъем M.2 с запоминающим устройством в нем


Нужно ли апгрейдить компьютер ради PCIe 4.0

Как уже говорилось выше, последней из официально вышедших версий PCIe является версия 5.0 (опубликованы официальные спецификации, но на практике она не используется). Самой "свежей" версией из используемых по состоянию на конец 2019 года является PCIe 4.0, и, судя по всему, еще долго будет таковой оставаться. Она вышла в 2017 году, однако внедрена в конкретные устройства лишь недавно, в 2019 году. Ее начала использовать компания AMD в процессорах Ryzen архитектуры Zen 2, а также в видеокартаx Radeon серии RX 5700 / 5500.

Несомненно, это значительное достижение AMD, однако, оно пока является лишь заделом на будущее и не дает никаких практических преимуществ перед конкурентами. Компания Intel внедрять PCIe 4.0 в свои процессоры не торопится. Не спешит делать это и компания nVidia, видеокарты которой пока довольствуются PCIe 3.0.

Все дело в том, что на современном этапе развития компьютерной техники возможностей PCIe 3.0 вполне достаточно. Превосходство PCIe 4.0 можно увидеть лишь в синтетических тестах. В практических же сценариях необходимости в настолько высоких скоростях обмена данными пока нет.

Видеокарты с PCIe 4.0 вполне нормально работают и в системах с PCIe 3.0. Более того, даже в компьютерах с PCIe 2.0 они показывают почти такую же производительность в играх и других приложениях, как в компьютерах с PCIe 4.0.

Но продлится это, судя по всему, не долго. Направлением, где в ближайшее время станет реально востребованной PCIe 4.0, являются современные М.2 SSD-накопители, быстродействие которых уже почти "уперлось в потолок " стандарта PCIe 3.0. Затем черед дойдет до видеокарт и другого оборудования.

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

Чтобы выбрать первичный видеоадаптер (если в системе несколько видеоадаптеров) в BIOS существую параметры Init Display First, Primary Graphic's Adapter.

Возможные значения:

1. PCI — система попытается в первую очередь определить видеоадаптер, установленный в слот PCI; в случае неудачи компьютер обратится к другому доступному адаптеру (AGP, PCI Express или интегрированному в системную плату);

2. AGP — первым будет инициализирован AGP-адаптер;

3. Onboard — в первую очередь определится адаптер, интегрированный в системную плату (подобные решения обычно используются в недорогих компьютерах);

4. PCI Express (PCIE, PEG) — первичным будет адаптер PCI Express.

В некоторых версиях BIOS может указываться порядок опроса адаптеров, например PCI/AGP и AGP/PCI.

Из перечисленных значений в вашей системе будут присутствовать только те, которые фактически поддерживаются системной платой.
Onboard GPU, Internal Graphics Mode

С помощью этого параметра можно отключить интегрированный видеоадаптер, если вы собираетесь установить отдельный видеоадаптер в слот PCI Express.

Возможные значения:

1. Auto, Enable If No Ext PEG — интегрированный видеоадаптер будет включен только при отсутствии дополнительных адаптеров;

2. Enabled — интегрированный видеоадаптер всегда включен, независимо от наличия дополнительного адаптера;

3. Disabled — интегрированный видеоадаптер выключен.

VGA Share Memory Size, Frame Buffer Size

Параметр позволяет установить размер оперативной памяти, который будет выделяться для работы интегрированного видеоадаптера.

Возможные значения:

8М, 16М, 32М, 64М, 12 8М, 256М, 512М — размер выделяемой памяти в мегабайтах. Размер оперативной памяти, доступной для операционной системы и приложений, будет уменьшен на соответствующую величину.
PCI Latency Timer

Данный параметр задает временную задержку, когда передается контроль над шиной PCI от одного устройства, работающего в режиме Bus Master , к другому.

Возможные значения:

32, 64, 96,128,160,192, 224, 248. Они определяют максимальное количество тактов шины PCI, в течение которых устройство может ею управлять, когда доступ к шине понадобился для другого устройства.

По умолчанию устанавливается значение в 32 или 64 такта, которое, как правило, соответствует максимальной производительности системы. Увеличение времени задержки может улучшить работу плат расширения с интенсивным использованием шины, например адаптеров SCSI или RAID. Однако это может негативно сказаться на работе других PCI-устройств, например жестких дисков IDE, которые не смогут своевременно получать доступ к шине.


Maximum Payload Size

Параметр присутствует в некоторых системных платах с шиной PCI Express и устанавливает максимальный размер пакета уровня транзакций (TLP), передаваемого по этой шине.

Возможные значения параметра:

128, 256, 512,1024, 2048, 4096. Они определяют максимальный размер в байтах пакета TLP. Как правило, по умолчанию устанавливается значение 4096, которое не следует менять без особой необходимости, поскольку при этом, как правило, обеспечивается максимальная производитель­ность PCI Express.

Если в вашей системе шина PCI Express есть, а параметра нет, значит, размер пакета TLP установлен по умолчанию (обычно 4096 байт) и не подлежит изменению.

3 Гб передано), поэтому я заменил материнскую плату / процессор / память / жесткий диск. Несмотря на то, что производительность в два раза выше, она все равно вдвое меньше, чем у моего 3-летнего MacBook Pro с приводом SATA6.

  • Процессор: i7-5820k 6core
  • Mobo: MSI X99A MPOWER
  • Память: 32 ГБ
  • Привод: Samsung 950 pro NVMe PCIe

Ubuntu (также подтверждается 16.04.1 LTS ):

Вот мои результаты теста:

Планировщик настроен на none :

Здесь lspci Информация:

FIO

Это имеет несколько сопоставимых ориентиров, это далеко. Когда я тестировал с fio и отключил sync Это другая история:

Вот полный sync Результаты по одной работе и 7 работам:

центровка

TLDR;

Я чувствую, что у меня что-то неправильно настроено, хотя мои исследования ничего не выявили. Я ожидаю пропускную способность

в 4 раза больше моего 3-летнего MacBook Pro с SATA6, и я получаю половину от этого с NVMe. я добавил noatime,nodiratime что дало мне очень небольшое улучшение, но ничего похожего на 4х я ожидаю. Я переразбил / переустановил свежий 15.10 сервер, чтобы убедиться, что у меня ничего не осталось и у меня были те же результаты.

Мои fio результаты выше синхронизации / нет синхронизации свидетельствует о проблеме?

Так что у меня есть чистый лист и я могу попробовать что угодно. Что я могу попытаться довести до совершенства? Любые ссылки приветствуются.

Внимание: этот ответ старый. В Linux 4.19 blk_mq является планировщиком по умолчанию. Скорее всего, проблема для вашего SSe PCIe NVMe, работающего с медленными стеблями, возникает в другом месте.

Оригинальный ответ:

к параметрам загрузки вашего ядра, в противном случае я не думаю, что вы увидите выгоду от увеличения очереди команд NVMe и количества команд в очереди.

Примечание: я знаю, что это для arch, но вы также можете взглянуть на Wiki для получения дополнительной информации о настройке ввода / вывода.

Спасибо за ваш вопрос, он был невероятно полезен для меня.

У меня очень похожий опыт, другое аппаратное обеспечение (я использую твердотельный накопитель Intel NVMe). Но я также использую Ubuntu 16.04. Учитывая ваши доказательства и аналогичный результат, найденный в этой статье, я был убежден, что проблема была в том, как Ubuntu настраивал диски NVMe.

Я был полон решимости решить проблему, не отказываясь полностью от Ubuntu. Но независимо от того, что я сделал, мне не удалось получить скорость выше 2000 МБ / с при тестировании с hdparm точно так, как вы описали.

Итак, я немного покопался и нашел руководство, предоставленное Intel. Я перепробовал все, что они предложили в этом руководстве, и обнаружил, что одна часть была другой. Внизу обсуждается правильное выравнивание разделов диска. Это та часть, которая не совпадает с моей установкой. Мой стартовый блок не делился на 4096 байт. Он использовал размер сектора 512 байт вместо размера сектора 4 КБ.

Конечно же, я отформатировал диск, чтобы начать раздел со значением, кратным 4096, и, наконец, мне удалось разогнать скорость до 2000 МБ / с.

Сейчас он составляет в среднем 2,3 ГБ / с, когда я ожидаю, что он будет немного выше. Я виню в этом тот факт, что когда я бегу sudo fdisk -l диск NVMe по-прежнему отображается с размером физического сектора 512 байт. Я планирую продолжить расследование, но я надеюсь, что это поможет вам!

Включение данной опции позволяет запретить синхронное и пропорциональное изменение частоты шины PCI Express после изменения частоты системной шины.

Enabled изменения частоты системной шины не будет вызывать изменения частоты шины PCI Express;

Disabled изменения частоты системной шины будет сопровождаться пропорциональным изменением частоты шины PCI Express.

Данная опция может встретиться также под следующими названиями:

Тестирование устройств, подключенных к шине PCI Express для определения их совместимости стандарту PCI Express.

Enabled – разрешить тестирование устройств, подключенных к шине PCI Express ;

Disabled – запретить тестирование устройств, подключенных к шине PCI Express .

GPP Slot Power Limit , Watt

Опция устанавливает максимальный лимит потребляемой мощности (Вт) для карт расширения шины PCI Express х1. Отмечу, что данная опция используется для всех плат расширения шины PCI Express х1, кроме видеокарт.

С помощью данной опции можно выбрать порт PCI Express , который будет иметь высший приоритет перед другими портами PCI Express . Это значит, что производительность данного порта буде высшей по сравнению с остальными. Если не использовать данную опцию все порты PCI Express будут равноправны.

PCI Express Port 1; PCI Express Port 2; PCI Express Port 3; PCI Express Port 4; PCI Express Port 5; PCI Express Port 6 – выбор порта . Который будет иметь высший приоритет.

Выбор максимального размера полезной нагрузки шины PCI Express . Другими словами, опция позволяет выбрать максимальный размер пакета данных (байт) при обмене данными с устройствами PCI Express .

Данная опция может встретиться также под следующими названиями:

Выбор версии спецификации шины PCI Express (1.0а или 1.0).

v 1.0а ( или Enabled ) – использование спецификации версии 1.0а шины PCI Express ;

v 1.0 (или Disabled ) – использование спецификации версии 1.0 шины PCI Express .

Данная опция может встретиться также под следующими названиями:

PCIE GPP Core Payload Size

Установка размера (байт) буфера записи для шины PCI Express х1 в режиме прямого доступа к DMA памяти видеоадаптера.

Опция позволяет разрешить/запретить использование задержки перед сбросом шины PCI Express х1.

Enabled – разрешить использование задержки перед сбросом шины PCI Express х1;

Disabled – запретить использование задержки перед сбросом шины PCI Express х1.

Auto – использование стандартной частоты работы шины PCI Express ;

Набор значений частоты работы шины PCI Express .

Данная опция может встретиться также под следующими названиями:

С помощью данной опции можно включить/отключить использование слотов PCI Express 1x материнской платы

Enabled – разрешить использование слотов PCI Express 1x;

Disabled – запретить использование слотов PCI Express 1x.

Данная опция может встретиться также под следующими названиями:

Разрешение/запрещение использования первого слота шины PCI Express .

Auto – БИОС будет сам определять, задействовать первый слот шины PCI Express или нет;

Enabled – разрешить использование слота 1 шины PCI Express ;

Disabled – запретить использование слота 1 шины PCI Express .

Данная опция может встретиться также под следующими названиями:

Разрешение/запрещение использования второго слота шины PCI Express .

Auto – БИОС будет сам определять, задействовать второй слот шины PCI Express или нет;

Enabled – разрешить использование слота 2 шины PCI Express ;

Disabled – запретить использование слота 2 шины PCI Express .

Данная опция может встретиться также под следующими названиями:

Разрешение/запрещение использования третьего слота шины PCI Express .

Auto – БИОС будет сам определять, задействовать третий слот шины PCI Express или нет;

Enabled – разрешить использование слота 3 шины PCI Express ;

Disabled – запретить использование слота 3 шины PCI Express .

Разрешение/запрещение использования четвертого слота шины PCI Express .

Auto – БИОС будет сам определять, задействовать четвертый слот шины PCI Express или нет;

Enabled – разрешить использование слота 4 шины PCI Express ;

Disabled – запретить использование слота 4 шины PCI Express .

Параметр позволяет отключить порты шины PCI Express х1, которые не используются.

Enabled – отключить порты шины PCI Express х1, которые не используются;

Disabled – не отключать порты шины PCI Express х1, которые не используются.

Читайте также: