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, мы не экономим на железе, только брендовое оборудование и одни из лучших дата-центров в России и ЕС. Поспешите проверить ;)
Читайте также:
- Скайп онлайн без установки на компьютер
- Медиаконвертер industrial media converter moxa типа imc 101 s sc
- Почему на планшете вылетает игра сокровища пиратов
- Иван иванович взял в салон самолета рюкзак и ноутбук как поступить с оставшимися предметами ответ
- Ограничить интенсивность ответов response rate limiting на dns сервере