Nvme что это жаргон

Обновлено: 30.06.2024

Что такое NVMe у твердотельных накопителей?

Аббревиатура NVMe сейчас на слуху. То тут, то там можно услышать или прочитать, что-то вроде «Не хочу SATA, это старье. Хочу NVMe!» А что же это вообще такое? Давайте разбираться.

Что же такое NVMe?


NVM Express или NVMe (от англ. Non-Volatile Memory Express) — это спецификация протокола (упрощенно — протокол) обмена данными через линии PCI Express. Создавалась специально для твердотельных накопителей и ориентировалась на достижение максимальной производительности и масштабируемости в дальнейшем.

Следует отметить, что NVMe — это именно протокол, поэтому распространенное выражение «NVME накопитель/SSD» применяется не совсем корректно. Ведь под этим пользователи практически всегда понимают устройство в формате M.2, тем самым объединяя под одним названием и протокол, и форм-фактор накопителя.

Какие преимущества дает использование NVMe в накопителях?

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

Увеличение глубины очереди команд и количества очередей

Первые диски хоть и показывали высокие скорости, используя преимущества шины PCIe, но использовали эмуляцию AHCI, где была лишь одна очередь на 32 команды. Использование одной очереди обусловлено тем, что AHCI создавался для жестких дисков, а у них ни о каком параллелизме при работе думать не приходилось. С появлением SSD все изменилось. В спецификации NVMe заложено использование до 65535 очередей и до 65535 команд в каждой очереди с указанием приоритета очередей и четким арбитражем последних. Эти огромные показатели хоть и не нужны сейчас, но задел на будущее оставляют приличный.

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

Работа с многоядерными/многопроцессорными системами, внедрение механизма прерываний и поддержка виртуализации

Совместно с первым пунктом это нацелено на увеличение параллелизма в работе, что в результате приводит к улучшение скоростных характеристик. Каждое ядро процессора может управлять несколькими очередями (отправка/завершение). Управление прерываниями (MSI-X — Message Signaled Interrupt Extended) позволяет при поступлении приоритетной задачи быстрее поставить ее на выполнение. Также была произведена оптимизация по поддержке работы с технологиями виртуализации, которая обязательна для серверов, куда NVMe в первую очередь и были нужны.


Проведем параллель с дорогой. Ясно, что пропускная способность однополосной дороги существенно меньше, чем у четырехполосной. Если только у нее не одна полоса (ядро) для въезда, иначе это колосс на глиняных ногах. А если по дороге будет ехать пожарная машина, то все расступятся и она проедет первой (спасибо прерываниям и приоритизации).

Сокращение задержек при работе

Чтобы убрать задержки при выполнении команд накопителем нужен простой и короткий путь. Поэтому посредники в лице SATA-контроллера были исключены. Также был написан более простой и эффективный набор команд для работы протокола, использующий меньше процессорного времени.


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

Ускорение работы с оперативной памятью

Если AHCI требовалось два запроса в DRAM, то NVMe использует один запрос на чтение 4 Кб, обеспечивая эффективную работу небольших операций ввода/вывода. Опять же сокращает накладные расходы, позволяя увеличить эффективность в единицу времени в сравнении с AHCI. Ведь быстрее оплатить покупку просто приложив карту, чем еще дополнительно вводить пин-код.

Это лишь несколько основных важных отличий NVMe, по которым виден основной вектор при работе над протоколом. SSD, в отличие от HDD, обладает некоторой степенью параллелизма — контроллер поддерживает несколько каналов для подключения микросхем памяти. В итоге большой пласт работы направлен на максимальную возможность распараллеливания операций. Несколько очередей с большой очередью команд — сценарий, в котором накопители показывают лучшие результаты. Работа с многоядерными процессорами также позволяет максимально загрузить работой диск.

Другой целью разработки было исключение промежуточных звеньев. Так удаление контроллера SATA из цепочки «процессор — накопитель», новые команды и драйвер позволили снизить задержки в обработке команд так, что основным фактором, влияющим на латентность, стали сами микросхемы NAND. Они же и остаются лимитирующим фактором в скорости записи. 3DXpoint от Intel сделала первый шаг в направлении уменьшения латентности памяти. Будем ждать, что смогут преподнести будущие типы микросхем.


Все внесенные изменения обеспечили не только и не столько скачок в скоростных показателях (это сделал еще переход на PCIe в SSD, эмулировавших AHCI), а существенное увеличение числа операций ввода-вывода (IOPS), что особенно важно в высоконагруженных сценариях/режимах работы.

Опять же если вернуться к AHCI, то ее разработка зиждилась на максимальном сохранении совместимости с разными устройствами. NVMe же возводили практически с нуля, основываясь лишь на использовании линий PCI-Express. И это наложило некоторые особенности реализации в конечном итоге.

Так для работы NVMe необходима поддержка со стороны операционной системы (ОС). Впрочем, сейчас драйвер есть во всех современных ОС: Windows, Mac OS и ядрах Linux/BSD. А для использования в качестве загрузочного накопителя, потребуется наличие драйвера в UEFI материнской платы. Как его добавить в старые модели плат, можно прочитать здесь.

Известная история. Как только появляются более мощные компьютеры, как только возрастает производительность процессоров и емкость носителей данных, и пользователь с облегчением вздыхает — «теперь мне всего и на всё хватит, не придется ужиматься и экономить», так почти сразу появляются новые потребности, отбирающие всё больше ресурсов, новое ПО, которое тоже «ни в чем себе не отказывает». Вечная проблема. Нескончаемый круговорот. И бесконечный поиск новых решений. Облачные хранилища, нейронные сети, искусственный интеллект — даже трудно себе представить, каких гигантских мощностей требуют эти технологии. Но не будем расстраиваться, ведь для любой задачи рано или поздно находится решение.


Одним из таких решений стал протокол NVM-express, который, как говорят специалисты, совершил революцию в использовании твердотельной энергонезависимой памяти. Что же такое NVMe и какие преимущества он принес с собой?

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

И вот на смену HDD пришли SSD — твердотельные накопители, энергонезависимые немеханические запоминающие устройства. Первые накопители SSD появились на рынке во второй половине 2000-х. Довольно скоро они уже стали соперничать с жесткими дисками по объему. Но вот полностью раскрыть свой потенциал и преимущества в скорости, параллельности обращений к ячейкам долгое время не могли, потому что существующие интерфейсы и протоколы были построены по старым стандартам, призванным поддерживать накопители HDD через интерфейсы SATA и еще более древними SCSI (SAS).

Следующим шагом в раскрытии потенциала энергонезависимой памяти стал переход на шины PCI-express. Но для них к тому времени еще не были разработаны новые промышленные стандарты. И вот в 2012 году выпускаются первые компьютеры, в которых реализован протокол NVM-express.

Сразу следует обратить внимание на то, что NVMe — это не устройство и не интерфейс его подключения. Это протокол, а точнее — спецификация протокола обмена данными.

Поэтому словосочетание «накопитель NVMe» не совсем корректное, а сравнение типа «HDD — SSD — NVMe» абсолютно ошибочное и вводит в заблуждение пользователя, который только знакомится с темой. Правильно сравнивать HDD с SSD с одной стороны, SSD, подключенный через интерфейс SATA (по протоколу AHCI) и SSD, подключенный через шину PCI-express с использованием протокола NVM-express, с другой. Сравнивать HDD с SSD, вероятно, уже мало кому интересно. Все понимают разницу, и всем хорошо известны преимущества последнего. Разве что отметить некоторые (весьма разительные) преимущества. По сравнению с жёсткими дисками твердотельные накопители имеют меньший размер и вес, являются беззвучными, а полное отсутствие механических приводов делает их многократно более устойчивыми к повреждениям (например, при падении) да и просто увеличивает срок службы.

Сравнение возможностей SSD со старой шиной и старым протоколом и SSD на шине PCIe с протоколом NVMe, безусловно, представляет гораздо больший интерес и будет полезно всем, кто привык держаться в курсе новинок, тем, кто собирается купить новый компьютер и даже тем, кто, например, ищет лучший хостинг.

Интерфейс SATA, как уже говорилось, создавался для жестких дисков, головка которых одновременно физически может получить доступ только к одной ячейке. Ничего удивительного, что в SATA-устройствах всего один канал. Для SSD этого плачевно мало, ведь одно из их преимуществ — поддержка параллельных потоков. Контроллер SSD также управляет начальным позиционированием, что является еще одним существенным преимуществом. Шина PCI-express обеспечивает многоканальную работу, а протокол NVMe реализовывает это преимущество. В результате данные, хранящиеся на твердотельных накопителях, передаются через 65 536 параллельных очередей управления, каждая из которых может содержать одновременно более 65 536 команд. Сравните: SATA и SCSI могут использовать только одну очередь, поддерживающую до 32 и до 254 команд соответственно.

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

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

Многочисленные тесты, проведенные различными организациями и экспертами доказывают, что скорость работы SSD NVMe в среднем в 5 раз выше, чем при подключении SSD по старым интерфейсам.

Теперь о том, всем ли доступны SSD, реализованные на PCIe с протоколом NVMe. И речь идет не только о стоимости. По цене такая реализация пока еще заметно выше, хотя цены на компьютерные компоненты, как известно, высоки лишь в самом начале продаж и имеют тенденцию к довольно быстрому снижению.

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


Первый так и называется «NVMe SSD». Он представляет собой плату расширения и подключается в те же слоты, что и видеокарта. Для ноутбука такая непригодна. Впрочем, как и для многих стационарных компьютеров, так как все большее их собирается на компактных материнских платах, где слотов PCIe бывает чаще два или даже один (который обычно занят видеокартой).


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


Третий — M2. Это наиболее развивающийся форм-фактор. Его активно используют в ноутбуках, а с недавнего времени он уже реализован и на некоторых материнских платах для стационарных ПК. Однако, приобретая себе M2 стоит быть очень внимательным, потому что в таком форм-факторе до сих пор выпускаются и SATA SSD.

Впрочем, внимательность нужна и при оценке целесообразности приобретения для себя любого из названных форм-факторов. Для начала следует оценить, есть ли в вашем ноутбуке или на материнской плате ПК нужные слоты. И даже если они есть, достаточно ли мощный процессор у вашего компьютера, потому что слабый процессор все равно не даст вам ощутить преимущества SSD. Если всё это у вас есть и к тому же вы часто оперируете большими массивами данных, безусловно, NVMe SSD — это то, что вам нужно.

На правах рекламы

VDS с NVMe SSD — это именно про виртуальные серверы от нашей компании.
Уже давно используем исключительно быстрые серверные накопители от Intel, мы не экономим на железе, только брендовое оборудование и одни из лучших дата-центров в России и ЕС. Поспешите проверить ;)

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