Что такое NVMe у твердотельных накопителей? | SSD-накопители | Блог | Клуб DNS

Что такое NVMe у твердотельных накопителей? | SSD-накопители | Блог | Клуб DNS Расшифровка

Что означает "nvm"? — вопрос о английский (американский вариант)

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

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

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

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

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

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

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

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

Другие сокращения:  Что значят обозначения ТКП, ТПП, ХКП, ХПП, ЭКП, ЭПП в гидроизоляции - объяснения специалиста

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

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

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

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

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

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

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

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

Другие сокращения:  Хроническая воспалительная демиелинизирующая полинейропатия у детей. Клинические рекомендации.

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

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

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

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

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

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

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

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

*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,svg{position:absolute;width:100%;top:0;bottom:0;margin:auto}svg{left:calc(50% — 34px)}Что такое NVMe у твердотельных накопителей? | SSD-накопители | Блог | Клуб DNS» frameborder=»0″ allow=»accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture» allowfullscreen>
Оцените статью
Расшифруй.Ру