Nvme драйвер что это

Обновлено: 30.06.2024

Технология NVMe обеспечивает превосходное хранение данных, превосходную скорость и превосходную совместимость. Поскольку в технологии NVMe используются разъемы PCIe, она обеспечивает передачу в 25 раз большего объема данных по сравнению с аналогичными устройствами SATA. Наряду с большим объемом данных команды NVMe выполняются в 2 раза быстрее, чем в накопителях AHCI. Кроме того, количество операций ввода-вывода в секунду (IOPS) в устройствах NVMe превышает 1 миллион, и операции выполняются до 900% быстрее по сравнению с накопителями AHCI. NVMe также напрямую связывается с ЦП системы, обеспечивая невероятную скорость благодаря своей совместимости. Накопители NVMe работают со всеми основными операционными системами независимо от форм-фактора.

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

Протокол NVMe использует параллельные пути передачи данных с малой задержкой к базовому носителю, подобно архитектурам высокопроизводительных процессоров. Это обеспечивает значительно более высокую производительность и меньшие задержки по сравнению с протоколами SAS и SATA. NVMe может поддерживать множество очередей ввода-вывода — до 64 тыс. очередей глубиной 64 тыс. записей каждая. В результате задачи ввода/вывода могут передавать больший объем данных быстрее, чем старые модели хранения данных с использованием устаревших драйверов, таких как AHCI (Advanced Host Controller Interface). Поскольку протокол NVMe разработан специально для твердотельных накопителей, он неизбежно станет новым отраслевым стандартом.

Твердотельные накопители: тогда и сейчас


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

  • Первые твердотельные накопители были относительно медленными, и было удобно использовать имеющуюся инфраструктуру хранилища SATA. Несмотря на то, что скорость шины SATA выросла до 16 Гбит/с, почти все коммерческие реализации шины SATA остаются на уровне 6 Гбит/с.
  • Общая пропускная способность PCIe 3.0 составляет 16 Гбит/с, а технология PCIe 4.0 удвоила этот показатель. Она обеспечивает до 16 линий и может передавать данные со скоростью до 32 000 МБ/с, в то время как SATA III поддерживает скорость только до 600 МБ/с.

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

Коммуникационные драйверы AHCI и NVMe

Коммуникационные драйверы используются операционными системами для обмена данными с устройствами хранения. Драйверы NVMe работают быстрее, чем драйверы AHCI, которые обычно используются в интерфейсах SATA.

  • Драйвер NVMe разработан специально для твердотельных накопителей с флеш-технологией. В результате он работает быстрее, чем драйверы AHCI, которые были разработаны для обычных вращающихся жестких дисков.
  • В то время как в NVMe есть 64 тыс. очередей команд и возможность отправки 64 тыс. команд на каждую очередь, в AHCI есть только одна очередь команд и возможность отправки только 32 команд на очередь.
  • В драйверах AHCI команды используют большое число циклов ЦП с задержкой 6 микросекунд, в то время как команды драйвера NVMe используют малое число циклов ЦП с задержкой 2,8 микросекунды.

Драйвер NVMe напрямую взаимодействует с системным процессором, а AHCI должен связываться с контроллером SATA. AHCI имеет показатель IOPS (число операций ввода/вывода в секунду) до 100 тыс., в то время как для NVMe IOPS составляет более 1 миллиона. IOPS (число операций ввода-вывода в секунду, произносится "ай-опс") — это стандартный показатель производительности, используемый для тестирования компьютерных запоминающих устройств.


Форм-факторы твердотельных накопителей NVMe


Твердотельные накопители NVMe бывают разных форм-факторов, но это зависит от варианта использования или приложения.

    • В потребительских устройствах и клиентских системах используются форм-факторы BGA и M.2.
    • В центрах обработки данных и серверах используются форм-факторы M.2, U.2, U.3 и EDSFF.

    В рамках EDSFF (Enterprise and Data Center SSD Form Factor) предпринимаются усилия по обеспечению динамического диапазона форм-факторов и стандартов, которые используют один и тот же протокол (NVMe), один и тот же интерфейс (PCIe) и собственный краевой разъем (SFF-TA-1002), распиновку и функции (SFF-TA-1009).

    NVMe Resources

    article nvme enterprise

    Преимущества NVMe в корпоративной среде

    В настоящее время NVMe является стандартным протоколом для твердотельных накопителей, который расширяет возможности центров обработки данных и корпоративных сред.

    article nvme client

    Твердотельные накопители NVMe для клиентских систем:

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

    article nvme infographic

    Описание технологии твердотельных накопителей: NVMe, SATA, M.2

    Различия между разными технологиями твердотельных накопителей, такими как SATA и NVMe, и преимущества новой технологии.

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


    Одним из таких решений стал протокол 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, мы не экономим на железе, только брендовое оборудование и одни из лучших дата-центров в России и ЕС. Поспешите проверить ;)


    Твердотельные накопители (или SSD) с недавних пор стали стандартом качества на потребительском и профессиональном рынке компьютерного оборудования. По данным аналитиков агентства TrendFocus, в 2020 году SSD-диски впервые обошли HDD по числу единиц, поставленных на мировой рынок.

    Однако, технологии передачи данных, которые изначально применялись в SSD, перестали отвечать современным требованиям к скорости обработки массивов информации. Помещение флеш-памяти в форм-факторы механических жёстких дисков и использование старых интерфейсов ради обратной совместимости налагало серьезные ограничения на твердотельные накопители. Чтобы задействовать весь потенциал технологии, крупные игроки IT-индустрии создали NVM Express — новый стандарт высокопроизводительного интерфейса для SSD.

    В этом обзоре мы подробно разберем, что представляет собой спецификация NVM Express. Расскажем, в каких форм-факторах она представлена, а также что значит применение нового стандарта подключения накопителей для бизнеса в практическом плане.

    Что такое NVMe

    Аббревиатура NVM Express (NVMe, NVMHCIS) расшифровывается как «спецификация интерфейса хост-контроллера энергонезависимой памяти». Эта технология позволяет задействовать особые преимущества накопителей, основанных на флеш-памяти типа NAND и 3D XPoint (Intel Optane).

    Предпосылки создания

    До NVM Express SSD-устройства подключались к компьютерам с помощью интерфейсов Serial ATA (SATA) или SAS, которые использовали режим работы AHCI для передачи данных. Эта технология разрабатывалась для традиционных механических жёстких дисков и имела существенные физические ограничения на скорость одновременной передачи данных, а также на время, необходимое для произвольного доступа к памяти.

    К концу 2010-х технологическое развитие SSD-дисков упёрлось в лимиты пропускной способности интерфейса SATA. Максимальная скорость передачи данных шины составляла 6 Гбит/с или 750 Мбайт/с. А, с учётом системных издержек — не более 550 Мбайт/с.

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

    Как появилась технология NVMe

    Изначально спецификация NVMe была призвана упростить процесс тестирования того, как аппаратное ПО взаимодействует с энергонезависимой памятью по шине PCI Express. Позже технология стала промышленным стандартом для основных форм-факторов (U.2, M.2, AIC, EDSFF), в которых выпускаются SSD-диски.


    Протокол NVMe был анонсирован общественности в 2007 году на форуме разработчиков компании Intel. Первая рабочая версия спецификации (1.0) вышла в марте 2011 года, а текущая (2.0a) датируется июлем 2021.

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

    Поддерживаемые ОС

    NVM Express поддерживают все основные операционные системы. Microsoft добавила встроенную поддержку NVMe в Windows 8.1 и Server 2012 R2 в октябре 2013 года. Также были выпущены модификации для Windows 7 и Server 2008 R2, доступные через Центр обновления Windows (Windows Update).

    Apple добавила совместимость с OS X Yosemite версии 10.10.3 в апреле 2015 года. Поддержка NVMe в Linux реализована в марте 2012 года, начиная с ядра 3.3. С февраля 2015 года она доступна в дистрибутиве Chrome OS.

    Поддержка NVMe накопителей есть в OpenBSD 6.0, NetBSD-current, FreeBSD 10.2, DragonFly BSD 4.6, а также в Oracle Solaris 11.2 и в таком ответвлении OpenSolaris как illumos. Совместимость VMware появилась в vSphere 6.0. Естественно, следующие версии этих продуктов (Windows 10, OS X 10.4 Mojave и т. д.) сохраняют поддержку NVM Express.

    В чём разница между SSD и NVMe дисками

    Улучшенная архитектура

    Высокопроизводительные твердотельные накопители NVMe не имеют ограничений на пропускную способность, которая присуща стандартам SATA/SAS и AHCI, разработанным ещё для традиционных жёстких дисков. В традиционных дисках для чтения/записи множества файлов головка должна молниеносно перемещаться от одного участка пластины к другому. Хотя кэширование и другие ухищрения маскируют это, традиционные диски эффективно работают лишь с одним файлом одновременно.

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

    К тому же, NVMe накопитель позволяет 2048 MSI-X прерываний, а AHCI — только одно такое прерывание в режиме без управления. У NVMe также снижены системные издержки: параметры команд в 4 Кбайт выполняются за одно чтение памяти, а не за два, как у AHCI. Кроме того, выполнение параллельных инструкций не требует синхроблокировки.

    Повышенная производительность

    Концепция протокола NVMe ориентирована на максимальное использование преимуществ твердотельной флеш-памяти для достижения лучшей производительности.

    На относительную производительность твердотельных дисков влияют многие факторы — тип флеш-памяти, контроллер, прошивка. Чтобы точно понять, как на данной фактор влияет использование NVM Express, нужно сопоставить важнейшие функциональные параметры (например, скорость записи и чтения) у аналогичных моделей без этой технологии и с ней.


    Вот, например, беспристрастное сравнение моделей WDS100T2B0B и WDS100T2X0C. Это относительно свежие диски SSD от Western Digital ёмкостью 1 Тбайт, выполненные на одной и той же технологии 3D TLC NAND.

    Первый — это SATA/AHCI-диск со скоростью последовательного чтения/записи 560 и 530 Мбайт/с соответственно. Его IOPS — число операций ввода-вывода в секунду — 95 000 для произвольного чтения и 84 000 для записи.

    Второй же жесткий диск SSD выполнен на шине PCIe/NVMe. Его последовательная скорость чтения — 3400 и записи — 2800 Мбайт/с, а аналогичные произвольные параметры — 500 000 и 400 000 IOPS.

    Совместимость стандартов

    Ранние SSD на PCI Express использовали AHCI, либо собственную спецификацию. В первом случае сохранялись все недостатки производительности при произвольном чтении/записи. Во втором, работа устройства сильно зависела от изготовителя или даже конкретной модели одной и той же марки.

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

    NVM Express избавился от подобных проблем с помощью общего дискового интерфейса с единой спецификацией драйверов.

    Разнообразие форм-факторов

    Традиционные жёсткие диски обычно поставлялись в форм-факторах 2,5 или 3,5 дюймов, а SSD — в формате 2,5 дюйма с разъемом mini-SATA (mSATA). У NVMe-дисков появилось большее разнообразие форм-факторов.

    Самый типичный формат NVMe — M.2 имеет 22 мм в ширину и 30, 42, 80 или реже 110 мм в длину. Он сохраняет обратную совместимость с SATA. Есть и формат NF1 — это вариант M.2, рассчитанный на ЦОД и с поддержкой горячей замены аппаратного обеспечения.

    У дисков интерфейса U.2 (ранее SFF-8639) формат — 2,5 дюйма. Предусмотрен специальный разъем для PCI Express. Некоторые диски сегмента хай-энд доступны только в виде плат PCI Express, обычно форм-фактора HHHL (half height, half length, «половинной высоты, половинной длины»).

    Что дает применение NVMe

    Приход NVM Express в отрасль сулит мощный рост производительности баз данных. В 2015-м исследователи из Университета Южной Калифорнии и Университета штата Калифорния в Сан-Хосе, сотрудничавшие с Samsung, установили, что при ядре Linux 3.14 архитектурные отличия NVMe «снижают системные программные издержки вчетверо».

    Более того, они указали, что, при прямом сравнении дисков NVMe и SATA, первый «демонстрирует восьмикратный выигрыш производительности» при рабочей нагрузке на базу данных. Аналогично один NVMe-диск превосходит по производительности RAID0-массив из четырёх дисков SATA SSD «до пяти раз».

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

    Для подтверждения, вернёмся к приведенному ранее примеру с дисками WDS100T2B0B и WDS100T2X0C. Тесты показывают, что SSD с поддержкой NVMe дают увеличение скорости чтения в 6 раз, а записи — в 5,25 раз, по сравнению с аналогичным SATA SSD-диском.

    Где используются диски NVM Express


    NVMe SSD доступны в комплектациях большинства относительно современных компьютеров. Что же касается пользователей Mac, то Apple поддерживает NVMe с 2015 года, когда этот тип накопителя стал использоваться на Retina MacBook.

    С 2016 года диски NVMe появились на MacBook Pro c Touch Bar. Контроллеры NVM Express поддерживаются и большинством моделей Retina iMac, начиная с середины 2017 года, а также всеми конфигурациями iMac Pro.

    Новые материнские платы на PC часто оснащены разъёмами M.2 для подключения SSD. Если же нет, то доступны переходники, позволяющие подключить диски M.2 через разъёмы PCI Express. Некоторые производители поставляют их в комплекте с диском. Тем не менее, доступны и недорогие устройства-дженерики, совместимые с любым оборудованием.

    Технологические перспективы и конструктивные реалии

    Производительность NVMe-дисков не в последнюю зависит от версии PCI Express и доступного числа линий. Так, PCI Express 2.0 поддерживает пропускную способность 500 Мбайт/с на линию, а PCI Express 3.0 — около 985.

    Старые компьютеры с PCI Express 2.0 могут использовать NVMe-диски, но большинство из них применяет четырёхлинейный интерфейс, который ограничивает теоретическую скорость до 2000 Мбайт/с. А из-за накладных потерь, она ещё и на 10-15% ниже. Получается, что достижение скорости чтения в 3400 Мбайт/с для упомянутой выше модели WDS100T2X0C на практике невозможно.

    Samsung оценивает скорость их чтения в 3200, а записи в 2400 Мбайт/с, однако тест ThinkPad P52s показал только 1777 и 1722 Мбайт/с, соответственно. Этот конструктивный недостаток есть у моделей E480, L480, T580 и T480. Но X280, T480s, X380 Yoga и X1 Carbon G6 уже задействуют четырёхлинейный интерфейс SSD.

    Хотите, чтобы сайт работал максимально производительно? Размещайте его на VDS от Eternalhost — быстрые NVMe-диски, бесплатная защита от DDoS и бдительная техподдержка 24/7.

    Что такое 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 материнской платы. Как его добавить в старые модели плат, можно прочитать здесь.

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