NVM Express

редактировать
Интерфейс, используемый для подключения устройств хранения данных
Спецификация интерфейса хост-контроллера энергонезависимой памяти
NVM Express logo.svg
Год начала2011; 9 лет назад (2011 г.)
АббревиатураNVMe
Веб-сайтnvmexpress.org

NVM Express (NVMe ) или Спецификация интерфейса хост-контроллера энергонезависимой памяти (NVMHCIS ) - это открытый интерфейс логического устройства спецификация для доступа к энергонезависимому хранилищу носителю, подключенному через Шина PCI Express (PCIe). Аббревиатура NVM означает энергонезависимая память, которая часто является NAND флэш-памятью, которая имеет несколько физических форм-факторов, включая твердотельные накопители (SSD)., карты расширения PCI Express (PCIe), карты M.2 и другие формы. NVM Express, как интерфейс логических устройств, был разработан для использования низкой задержки и внутреннего параллелизма твердотельных запоминающих устройств.

По своей конструкции NVM Express позволяет использовать хост-оборудование и программное обеспечение, чтобы полностью использовать уровни параллелизма, возможные в современных твердотельных накопителях. В результате NVM Express снижает накладные расходы ввода-вывода и обеспечивает различные улучшения производительности по сравнению с предыдущими интерфейсами логических устройств, включая несколько длинных очередей команд и снижение задержки. предыдущие протоколы интерфейса были разработаны для использования с гораздо более медленными жесткими дисками (HDD), где существует очень большая задержка (относительно операций ЦП) между запросом и передачей данных, когда данные скорости намного ниже, чем скорости RAM, и где вращение диска и время поиска вызывают дополнительные требования к оптимизации.

Устройства NVM Express в основном доступны в виде плат расширения PCI Express стандартного размера и в виде устройств с форм-фактором 2,5 дюйма, которые обеспечивают четырехполосный интерфейс PCI Express через Разъем U.2 (ранее известный как SFF-8639). Устройства хранения, использующие SATA Express и спецификацию M.2, которые поддерживают NVM Express в качестве интерфейса логических устройств, являются популярным вариантом использования для NVMe и стали доминирующей формой твердотельного хранилища для серверов и настольных компьютеров.

Содержание

  • 1 Технические характеристики
  • 2 Предпосылки
  • 3 История
  • 4 Форм-факторы
    • 4.1 AIC (дополнительная карта)
    • 4.2 U.2 (SFF- 8639)
    • 4.3 U.3 (SFF-8639)
    • 4.4 M.2
  • 5 NVMe-oF
  • 6 Сравнение с AHCI
  • 7 Поддержка операционной системы
  • 8 Поддержка программного обеспечения
  • 9 Инструменты управления
    • 9.1 nvmecontrol
    • 9.2 nvme-cli
  • 10 См. Также
  • 11 Ссылки
  • 12 Внешние ссылки

Технические характеристики

Технические характеристики для NVMe, выпущенные на сегодняшний день, включают :

  • 1.0e (январь 2013 г.)
  • 1.1b (июль 2014 г.)
  • 1,2 (ноябрь 2014 г.)
    • 1.2a (октябрь 2015 г.)
    • 1.2b (июнь 2016)
    • 1.2.1 (июнь 2016)
  • 1.3 (май 2017)
    • 1.3a (октябрь 2017)
    • 1.3b (май 2018)
    • 1.3c (май 2018)
    • 1.3d (март 2019)
  • 1.4 (2 июня 019)
    • 1.4a (март 2020 г.)

Предпосылки

Intel SSD 750 series, SSD, который использует NVM Express, в форме PCI Express 3.0 × 4 плата расширения (вид спереди и сзади)

Исторически большинство SSD использовали шины , например SATA, SAS или Fibre Channel для взаимодействия с остальной частью компьютерной системы. С тех пор, как SSD стали доступны на массовых рынках, SATA стал наиболее типичным способом подключения SSD к персональным компьютерам ; однако SATA был разработан в первую очередь для взаимодействия с механическими жесткими дисками (HDD), и он становился все более непригодным для твердотельных накопителей, скорость которых со временем улучшалась. Например, примерно за 5 лет массового внедрения на рынке (2005–2010 гг.) Многие твердотельные накопители уже сдерживались сравнительно низкой скоростью передачи данных, доступной для жестких дисков - в отличие от жестких дисков, некоторые твердотельные накопители ограничены максимальной пропускной способностью из SATA.

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

Устройства NVM Express также используются в качестве строительного блока для хранения буфера пакетов во многих ведущих суперкомпьютерах, таких как суперкомпьютер Fugaku, суперкомпьютер Summit и Суперкомпьютер Sierra и т. Д.

История

Первые подробности нового стандарта для доступа к энергонезависимой памяти появились на Форуме разработчиков Intel 2007, когда NVMHCI был показан как протокол на стороне хоста в предложенном архитектурном проекте, в котором была рабочая группа Open NAND Flash Interface (ONFI) на стороне микросхем памяти (флеш-памяти). В том же году была сформирована рабочая группа NVMHCI во главе с Intel. Спецификация NVMHCI 1.0 была завершена в апреле 2008 года и опубликована на веб-сайте Intel.

Техническая работа над NVMe началась во второй половине 2009 года. Спецификации NVMe были разработаны Рабочей группой NVM Express, которая состоит из более чем 90 компаний; Эмбер Хаффман из Intel была председателем рабочей группы. Версия 1.0 спецификации была выпущена 1 марта 2011 года, а версия 1.1 спецификации была выпущена 11 октября 2012 года. Основные функции, добавленные в версии 1.1, - это многопутевый ввод-вывод (с совместным использованием пространства имен) и произвольная длина scatter-gather ввод / вывод. Ожидается, что будущие версии значительно улучшат управление пространством имен. Из-за своей функциональной направленности NVMe 1.1 изначально назывался Enterprise NVMHCI. Обновление для базовой спецификации NVMe, называемое версией 1.0e, было выпущено в январе 2013 года. В июне 2011 года была сформирована группа промоутеров во главе с семью компаниями.

Первые коммерчески доступные чипсеты NVMe были выпущены Integrated Device Technology (89HF16P04AG3 и 89HF32P08AG3) в августе 2012 года. Первый накопитель NVMe, Samsung XS1715 Enterprise Drive, было анонсировано в июле 2013 г.; По данным Samsung, этот накопитель поддерживает скорость чтения 3 ГБ / с, что в шесть раз быстрее, чем их предыдущие корпоративные предложения. Семейство контроллеров LSI SandForce SF3700, выпущенное в ноябре 2013 года, также поддерживает NVMe. Продукт Kingston HyperX «prosumer », использующий этот контроллер, был продемонстрирован на выставке Consumer Electronics Show 2014 и обещал аналогичную производительность. В июне 2014 года Intel анонсировала свои первые продукты NVM Express - семейство центров обработки данных твердотельных накопителей Intel, которые взаимодействуют с хостом через шину PCI Express, включая серии DC P3700, DC P3600 и DC P3500. По состоянию на ноябрь 2014 года накопители NVMe доступны в продаже.

В марте 2014 года группа образовалась и превратилась в NVM Express, Inc., которая по состоянию на ноябрь 2014 года состоит из более чем 65 компаний из всей отрасли. Спецификации NVM Express принадлежат и обслуживаются NVM Express, Inc., что также способствует повышению осведомленности отрасли о NVM Express как общеотраслевом стандарте. NVM Express, Inc. возглавляет совет директоров из тринадцати членов, выбранных из группы Promoter Group, в которую входят Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC, Samsung, SanDisk и Seagate.

В сентябре 2016 года CompactFlash Association объявила о выпуске новой спецификации карты памяти CFexpress, в которой используется NVMe.

Форм-факторы

Существует множество форм-факторов твердотельных накопителей NVMe, таких как AIC, U.2, U.3, M.2 и т. Д.

AIC (дополнительная карта)

Почти все ранние твердотельные накопители NVMe имеют HHHL (половинную высоту, половинную длину) или FHHL (полную высоту, половинную длину) AIC с интерфейсом PCIe 2.0 или 3.0. Плату твердотельного накопителя HHHL NVMe легко вставить в слот PCIe сервера.

U.2 (SFF-8639)

U.2, ранее известный как SFF-8639, представляет собой компьютерный интерфейс для подключения твердотельных накопителей к компьютеру.. Он использует до четырех линий PCI Express. Доступные серверы могут объединять до 4 твердотельных накопителей U.2 NVMe.

U.3 (SFF-8639)

построен на основе спецификации U.2 и использует тот же SFF- 8639 разъем. Это «трехрежимный» стандарт, сочетающий поддержку SAS, SATA и NVMe в одном контроллере. U.3 может также поддерживать «горячую» замену между различными дисками, для которых доступна поддержка микропрограмм. Диски U.3 по-прежнему обратно совместимы с U.2, но диски U.2 не совместимы с хостами U.3.

M.2

M.2, ранее известный как с форм-фактором следующего поколения (NGFF ), использует твердотельный накопитель M.2 NVMe -состояние привод компьютерная шина. Интерфейсы, предоставляемые через разъем M.2: PCI Express 3.0 или PCI Express 4.0 (до четырех линий ).

NVMe-oF

NVM Express over Fabrics (NVMe-oF) - это концепция использования транспортного протокола по сети для подключения удаленных устройств, в отличие от NVMe, где устройства подключаются напрямую к PCIe. шина (или через коммутатор PCIe на шину PCIe) В сентябре 2014 года был предложен стандарт для использования NVMe через Fibre Channel (FC), и эту комбинацию часто называют FC-NVMe (или иногда NVMe / FC). NVMe-oF - это протокол связи, который позволяет одному компьютеру получать доступ к устройствам блочного уровня, подключенным к другому компьютеру, через удаленный прямой доступ к памяти через несколько транспортных средств. протоколы:

Стандарт для NVMe over Fabrics был опубликован NVM Express, Inc. в 2016 году.

Следующие драйверы реализуют протокол NVMe-oF:

  • Инициатор Linux NVMe-oF и целевые драйверы
  • Инициатор NVMe-oF из пакета Storage Performance Development Kit (SPDK) и целевые драйверы
  • Драйвер инициатора NVMe-oF для Microsoft Windows

Начиная с ядра Linux 5.0 была добавлена ​​встроенная поддержка NVMe / TCP.

Сравнение с AHCI

Расширенный интерфейс хост-контроллера (AHCI) имеет преимущество широкой совместимости программного обеспечения, но имеет обратную сторону - не обеспечивает оптимальную производительность при использовании с SSD, подключенных по шине PCI Express. В качестве интерфейса логического устройства AHCI был разработан, когда целью адаптера шины хоста (HBA) в системе было соединение подсистемы ЦП / памяти с гораздо более медленной подсистемой хранения на основе вращения магнитный носитель. В результате AHCI привносит определенные недостатки при использовании с устройствами SSD, которые ведут себя больше как RAM, чем как вращающиеся носители.

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

В таблице ниже приведены общие различия между интерфейсами логических устройств NVMe и AHCI.

Высокоуровневое сравнение AHCI и NVMe
AHCI NVMe
Максимальная глубина очередиОдна очередь команд;. 32 команды в очереди65535 очередей ;. 65536 команд в очереди
Доступ к некэшируемым регистрам. (2000 циклов на каждую)Шесть на команду без очереди;. девять на команду в очередиДва на команда
MSI-X. и прерывание управленияОдиночное прерывание;. без управления2048 MSI-X прерывает
параллелизм. и несколько потоковТребуется блокировка синхронизации. для выполнения командыБез блокировки
Эффективность. для команд размером 4 КБДля параметров команды требуется. два сериализованная DRAM хоста извлекаетПолучает параметры команды. в одной 64-байтовой выборке

Поддержка операционной системы

Положение путей данных NVMe и нескольких внутренних очередей на различных уровнях Linux стек хранилища ядра.
Chrome OS
24 февраля 2015 г. поддержка загрузки с устройств NVM Express была добавлена ​​в Chrome OS.
DragonFly BSD
Первый выпуск DragonFly BSD с поддержкой NVMe - версия 4.6.
FreeBSD
Intel спонсировала драйвер NVM Express для FreeBSD голова и конюшня / 9 ветвей. Драйверы nvd (4) и nvme (4) включены в конфигурацию ядра GENERIC по умолчанию, начиная с FreeBSD версии 10.2 в 2015 году.
Genode
Поддержка NVMe потребительского уровня была добавлена ​​в структуру Genode как часть Выпуск 18.05.
Haiku
Haiku Получил поддержку NVMe 18 апреля 2019 г.
illumos
illumos получил поддержку NVMe 15 октября 2014 г.
iOS
С выпуском iPhone 6S и 6S Plus, Apple представила первое мобильное развертывание NVMe поверх PCIe в смартфонах. Apple последовала за этими выпусками, выпустив первое поколение iPad Pro и iPhone SE первого поколения, которые также используют NVMe поверх PCIe.
Linux
Intel опубликовала NVM Драйвер Express для Linux 3 марта 2011 года, который был объединен с основной веткой ядра Linux 18 января 2012 года и выпущен как часть версии 3.3 ядра Linux 19 марта 2012 года.
macOS
Apple представила программную поддержку NVM Express в Yosemite 10.10.3. Аппаратный интерфейс NVMe был представлен в 2016 MacBook и MacBook Pro.
NetBSD
NetBSD с добавленной поддержкой NVMe в NetBSD 8.0. Реализация является производной от OpenBSD 6.0.
OpenBSD
Разработка, необходимая для поддержки NVMe в OpenBSD, была начата в апреле 2014 года старшим разработчиком, ранее отвечавшим за USB 2.0 и поддержка AHCI. Поддержка NVMe была включена в выпуске OpenBSD 6.0.
Solaris
Solaris получил поддержку NVMe в Oracle Solaris 11.2.
VMware
Intel предоставила драйвер NVMe для VMware, который входит в состав vSphere 6.0 и более поздних версий и поддерживает различные устройства NVMe. Начиная с vSphere 6 update 1, программно-определяемая подсистема хранения VMware VSAN также поддерживает устройства NVMe.
Windows
Microsoft добавила встроенную поддержку NVMe в Windows 8.1 и Windows Server 2012 R2. Родные драйверы для Windows 7 и Windows Server 2008 R2 были добавлены в обновления. Кроме того, неофициально была добавлена ​​поддержка Windows XP и Vista.
OpenFabrics Alliance поддерживает драйвер NVMe Windows с открытым исходным кодом для Windows 7/8 / 8.1 и Windows Server 2008 R2 / 2012 / 2012R2, разработанный на основе базового кода, представленного несколькими промоутерами из рабочей группы NVMe, в частности IDT, Intel и LSI. Текущий выпуск - 1.5 с декабря 2016 года.

Поддержка программного обеспечения

QEMU
NVMe поддерживается QEMU, начиная с версии 1.6, выпущенной 15 августа 2013 года.
UEFI
Драйвер NVMe с открытым исходным кодом для UEFI доступен на SourceForge.

Инструменты управления

nvmecontrol

Инструмент nvmecontrolиспользуется для управления диском NVMe из командной строки во FreeBSD. Он был добавлен в FreeBSD 9.2.

nvme-cli

Инструменты пользовательского пространства NVM-Express для Linux.

См. Также

Ссылки

Внешние ссылки

Викискладе есть носители, относящиеся к NVM Express.
Последняя правка сделана 2021-05-31 07:31:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте