NVM Express

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

NVM Express (NVMe, NVMHCI) — от англ. Non-Volatile Memory Host Controller Interface Specification) — интерфейс доступа к твердотельным накопителям, подключённым по шине PCI Express. «NVM» в названии спецификации обозначает энергонезависимую память, в качестве которой в SSD повсеместно используется флеш-память типа NAND. Логический интерфейс NVM Express был разработан с нуля, основные цели — получение низких задержек и эффективное использование высокого параллелизма твердотельных накопителей за счёт применения нового набора команд и механизма обработки очередей, оптимизированного для работы с современными многоядерными процессорами[1].

Тип разъёма и конструктив носителей NVMe может быть различным. Распространены накопители в форм-факторах M.2, U.2[англ.] (конструктивно совместимы с накопителями SATA 2,5") и платы расширения PCI Express[2][3]. Накопители SATA Express и компактные внутренние накопители форм-фактора M.2 при использовании PCIe также поддерживают NVM Express в качестве одного из логических интерфейсов[4][5].

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

Ранние твердотельные накопители использовали для подключения параллельный SCSI и использовались в серверах и высокопроизводительных рабочих станциях[6]. Проникновение SSD на массовый рынок пришлось на середину 2000-х и совпало по времени с вытеснением параллельного SCSI интерфейсами SATA и SAS. Со временем дальнейшему наращиванию производительности SSD стали мешать ограничения интерфейсов SATA и SAS, ориентированных в первую очередь на подключение традиционных механических жёстких дисков[7][8]. Например, в отличие от жёстких дисков, скорость последовательного чтения для большинства современных SSD ограничивается пропускной способностью интерфейса SATA.

Высокопроизводительные SSD с подключением к шине PCI Express производились до NVMe, но либо использовали уникальные закрытые стандарты и технологии оптимизации работы с флеш-памятью, либо представляли собой SATA- или SAS-контроллер и несколько SSD с интерфейсами SATA/SAS, размещёнными на одной плате. Переход на NVMe позволил стандартизировать интерфейс PCIe SSD — производителям больше не нужно тратить ресурсы на разработку уникальных драйверов, разъёмов и форм-факторов[9]. Подобным образом принятие спецификаций USB mass storage[англ.] позволило создать большое разнообразие USB-флеш-накопителей, которые смогли работать с любыми компьютерами, не требуя оригинальных драйверов для каждой модели[10].

Для эффективного использования накопителей NVMe в сетях хранения данных разрабатываются различные стандарты передачи команд NVMe через RDMA (поверх InfiniBand или Ethernet — RoCE[англ.] и iWARP[англ.]) и Fibre Channel без трансляции в SCSI под общим названием NVMe over Fabrics[11].

История

Работа над спецификацией

Первые подробности о новом стандарте доступа к энергонезависимой памяти появились на Intel Developer Forum в 2007 году, где был представлен NVMHCI (Non-Volatile Memory Host Controller Interface) — предполагаемый вариант нового интерфейса коммуникации между хостом и контроллером NAND[12]. В том же году была сформирована рабочая группа для проработки NVMHCI во главе с Intel. Первая спецификация NVMHCI 1.0 была закончена в апреле 2008 года и размещена на сайте Intel[13].

Техническая проработка NVMe началась во второй половине 2009 года[14]. Спецификации NVMe были разработаны рабочей группой «NVM Express Workgroup», в которую входило более 90 компаний, председателем группы была Эмбер Хаффмен из Intel. Первая версия спецификации NVMe была представлена 1 марта 2011 года[15]. При работе над версией 1.1, появившейся 11 октября 2012 года, разработчики сфокусировались на добавлении функциональных возможностей для устройств корпоративного класса. В новом стандарте были добавлены многопутевой ввод-вывод с разделяемым доступом к пространствам имён NVMe[прим. 1] и поддержка векторного ввода-вывода (англ. arbitrary-length scatter-gather I/O)[14][16].

В дальнейшем работа над новыми версиями спецификации NVMe была продолжена:

  • NVMe 1.1b — 2 июля 2014 года[17];
  • NVMe 1.2 — 3 ноября 2014 года; для устройств потребительского класса: расширенное управление питанием и поддержка накопителей без динамической памяти; для устройств корпоративного класса: возможность обновления прошивки без остановки работы накопителя, снижение задержек в топологиях с большим количеством NVMe-накопителей и коммутаторами PCIe[18].
  • NVMe 1.2a — 23 ноября 2015 года[19].
  • NVMe 1.3c — 24 мая 2018 года[20].
  • NVMe 2.0 — 13 мая 2021 года[21].
  • NVMe 2.0a — 23 июля 2021 года[22].
  • NVMe 2.0b — 6 января 2022 года[23].

Первые контроллеры и готовые накопители

Первые контроллеры SSD с поддержкой NVMe и эталонный дизайн флеш-накопителей в форм-факторе полнопрофильной платы PCIe были выпущены компанией Integrated Device Technology в августе 2012 года[24][25].

Первый серверный NVMe-накопитель Samsung XS1715 в форм-факторе U.2 (2.5", разъём SFF-8639) был анонсирован в июле 2013 года. Основой для накопителя послужил контроллер, разработанный PMC-Sierra[англ.]. Заявленные характеристики составили 3 ГБайт/с при последовательном чтении и 740 000 IOPS при случайном доступе блоками 4 КиБ[26].

В июне 2014 года свои первые линейки серверных NVMe-накопителей представила компания Intel. Линейки DC P3700, DC P3600, DC P3500, различающиеся между собой производительностью и ресурсом, выпускаются в форм-факторе U.2 и в виде низкопрофильных плат PCIe[27]. В 2015 году Intel выпустила основанный на P3500 накопитель потребительского класса — Intel 750.

В июне 2015 года появился один из первых NVMe-накопителей потребительского класса в компактном форм-факторе M.2 — Samsung SM951-NVMe[прим. 2][28].

Появившиеся в сентябре 2015 года смартфоны Apple iPhone 6s и iPhone 6s Plus стали первыми мобильными устройствами, оснащёнными встроенными NVMe-накопителями[29].

Технические особенности и инфраструктура

Сравнение с AHCI

Обработка очередей в NVMe[2]

Основными преимуществами NVMe перед AHCI является оптимизированный механизм работы с очередями и обработкой прерываний, что позволяет обеспечить более высокий уровень производительности[4].

Устройство AHCI ограничено одной очередью глубиной 32, в то время как NVMe поддерживает 64 К (65536) очередей с глубиной 65536 каждая. Набор команд NVMe существенно упрощён в сравнении с ATA и SCSI, спецификацией определяется всего 13 обязательных команд, что, в первую очередь, существенно упрощает разработку устройств[2].

Форм-факторы накопителей

HGST SN150, NVMe-накопитель в форм-факторе низкопрофильной платы PCI Express
  • Платы расширения PCI Express. Большая часть выпускаемых по состоянию на начало 2016 года плат NVMe-накопителей выполнена в форм-факторе половинной высоты/половинной длины с интерфейсом PCI Express x4.
NVMe-накопитель OCZ Z6300 в форм-факторе U.2
Двухпортовый ретаймер Supermicro AOC-SLG3-2E4R. Плата PCIe x8 с двумя разъёмами SFF-8643. Предназначена для подключения накопителей NVMe форм-фактора U.2
  • U.2 (SFF-8639) — накопители форм-фактора 2,5" высотой 15 мм с разъёмом SFF-8639. Используются, в основном, в серверах. Преимуществами в сравнении с обычной платой расширения являются поддержка горячей замены накопителей и более компактное исполнение, позволяющее разместить большее количество накопителей в корпусе сервера или системы хранения данных. Разъём SFF-8639 обратно совместим с SFF-8482, бэкплейн с разъёмом SFF-8639 при подключении к нему соответствующего контроллера поддерживает подключение накопителей с интерфейсами SATA и SAS.
Разъём SFF-8639
Не все накопители форм-фактора U.2 являются NVMe-совместимыми. В начале 2013 года компания Dell выпустила новое поколение серверов с возможностью подключения до четырёх накопителей Micron P320h. Они были выполнены в совместимом с U.2 форм-факторе, подключались через четыре линии PCIe, но не использовали NVMe в качестве логического интерфейса[30].
Для подключения бэкплейнов с поддержкой накопителей U.2 к шине PCI Express используются кабели с разъёмами OCuLink или SFF-8643[прим. 3], обеспечивающий подключение четырёх линий PCI Express. Кабель может подключаться к специальному разъёму на системной плате, в обычный слот расширения PCI Express через плату-ретаймер или к разъёму M.2 через переходник[2].
NVMe-накопитель Samsung 960 PRO в форм-факторе M.2[прим. 4]
  • U.3
  • M.2 (NGFF) — бескорпусные накопители в компактном форм-факторе. Предназначены для использования в ноутбуках и стационарных ПК. Накопители формата M.2 могут подключаться либо непосредственно к соответствующему разъёму системной платы, либо устанавливаться в слот PCI Express через переходник.
  • Intel Ruler SSD (EDSFF) — форм-фактор для серверных накопителей с поддержкой горячей замены. Был анонсирован компанией Intel в 2017 году на Flash Memory Summit[31]. Форм-фактор U.2 обеспечивал механическую совместимость с корпусами, предназначенными для установки дисков 2,5", но не очень хорошо подходил для твердотельных накопителей — ограниченные габариты усложняли наращивание объёма накопителей и затрудняли охлаждение. Размеры накопителей EDSFF составляют 325,35×9,5×38,6 мм, поддерживается подключение через 4 или 8 линий PCIe (в перспективе — до 16). Примерами готовых продуктов, использующих форм-фактор EDSFF, являются серверы и JBOF-системы[прим. 5] производства Supermicro, позволяющие разместить до 32 накопителей в корпусе высотой 1U[32].
  • Samsung NGSFF — форм-фактор для серверных накопителей с поддержкой горячей замены. Как и EDSFF, разработан в качестве альтернативы U.2. Имеет меньшие габариты в сравнении с EDSFF — 110×4,38×30,5 мм, что позволяет установить большее количество накопителей (36 в 1U) и использовать корпуса меньшей глубины[33][34].

NVMe over Fabrics

На протяжении последних лет ведутся разработки устройств и протоколов, позволяющих использовать накопители NVMe не только локально, в пределах одного сервера, но и строить сети хранения данных с использованием преимуществ NVMe. Подключение систем на базе накопителей NVMe к традиционным сетям хранения данных приводит к потере основного преимущества NVMe в виде сниженных за счёт отказа от SCSI задержек, так как в Fibre Channel и iSCSI предусмотрена инкапсуляция только команд SCSI.

Работы по устранению этого недостатка ведутся в двух направлениях:

  • Сохранение шины PCI Express в качестве транспорта и вынос её за пределы одиночного сервера. Компании Microsemi и Broadcom (подразделение PLX) разрабатывают коммутаторы PCI Express. Существуют прототипы готовых коммутаторов с внешними портами, обеспечивающих подключение нескольких хостов и устройств PCI Express.
  • Собственно NVMe over Fabrics — добавление в Fibre Channel и протоколы передачи данных блочного уровня, использующие RDMA, поддержки команд NVMe вместо SCSI. При этом обеспечивается уровень дополнительных задержек не более 10 мкс[35]. Первая версия официальной спецификации NVMe over Fabrics была опубликована 9 июня 2016 года[36].

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

Windows

Работа над первой версией драйвера Microsoft для Windows велась сформированной по инициативе «OpenFabrics Alliance» рабочей группой «NVMe Windows Working Group» и была завершена в 2012 году[37].

Компания Microsoft интегрировала драйвер NVMe в Windows 8.1 и Windows Server 2012 R2[38]. Драйвер Microsoft для Windows 7 и Windows Server 2008 R2 был выпущен в виде обновлений[39]. Samsung предлагает собственный драйвер NVMe, который обеспечивает более высокую производительность[40]. Windows 10 поддерживает Host Memory Buffer с максимальным размером 64 МБ[41].

Linux

Первоначальная разработка драйвера для Linux велась компанией Intel. Драйвер был включён в ветку 3.3 ядра Linux 19 марта 2012 года[42].

В процессе разработки драйвера NVMe были выявлены недостатки архитектуры блочного ввода-вывода в ядре Linux, затруднявшие масштабирование производительности свыше 1 миллиона IOPS на устройство[43]. При участии инженеров Fusion-io был разработан масштабируемый слой блочного ввода-вывода для высокопроизводительных твердотельных накопителей, известный как blk-multiqueue или blk-mq, и добавлен в ядро версии 3.13 19 января 2014 года[44]. Другое направление в области оптимизации блочного-ввода вывода относится к уменьшению задержек, связанных с обработкой прерываний[45].

Linux поддерживает Host Memory Buffer (HMB)[46] начиная с версии 4.13.1[47] с максимальным размером 128 MB по умолчанию[48].

macOS

В macOS драйвер NVMe содержится в составе системы начиная с версии 10.13, вышедшей 25 сентября 2017 года.

ОС семейства BSD

Разработка драйвера NVMe для 9-й ветки FreeBSD велась при поддержке Intel[49]. Начиная с FreeBSD версии 10.2 драйверы nvd(4) и nvme(4) включены в конфигурацию ядра по умолчанию[50].

Драйвер NVMe для DragonFly был написан с нуля Мэттом Диллоном[51]. Первый официальный релиз с поддержкой NVMe — 4.6[52].

Разработка NVMe-драйвера для OpenBSD была начата в апреле 2014 года разработчиком, ранее развивавшим драйверы USB 2.0 и AHCI[53]. Первый релиз драйвера появился в OpenBSD 6.0[54].

Поддержка NVMe в NetBSD появилась в выпуске 8.0[54].

Solaris

Solaris получила поддержку NVMe с версии Oracle Solaris 11.2[55].

Haiku

Полная поддержка NVMe доступна в Haiku с ревизии 54102[56].

QEMU

Для отладки драйверов и другого ПО в QEMU начиная с версии 1.6 появилась эмуляция NVMe-устройств (август 2013 года)[57].

UEFI

Драйвер NVMe для загрузочного окружения UEFI доступен на SourceForge (проект edk2)[58].

Примечания

  1. Пространство имён NVMe (англ. NVMe namespace) — область накопителя NVMe, отформатированная для блочного доступа.
  2. Первый вариант Samsung SM951 был выпущен в том же форм-факторе, но поддерживал SATA Express.
  3. Разъём SFF-8643, он же Mini-SAS HD, обычно применяется в кабелях SAS, но кабели NVMe и кабели SAS с такими разъёмами не являются взаимозаменяемыми.
  4. Накопители форм-фактора M.2 могут использовать как AHCI, так и NVMe
  5. JBOF (Just a bundle of flash) — шасси с твердотельными накопителями и коммутаторами PCIe, часть портов которых выведена наружу.
  1. Micheloni, Marelli, Eshghi, 2012, с. 43.
  2. 2,0 2,1 2,2 2,3 Jonmichael Hands, Peter Onufryk. NVM Express Infrastructure - Exploring Data Center PCIe Topologies (англ.) (PDF). Intel (29 января 2015). Дата обращения: 10 февраля 2016. Архивировано 1 июля 2016 года.
  3. Intel Solid-State Drive DC P3600 Series (англ.) (PDF) 18, 20–22. Intel (20 марта 2015). Дата обращения: 10 февраля 2016. Архивировано 2 апреля 2015 года.
  4. 4,0 4,1 Dave Landsman. AHCI and NVMe as Interfaces for SATA Express Devices — Overview (англ.) (PDF) (недоступная ссылка). SanDisk. Дата обращения: 10 февраля 2016. Архивировано 5 октября 2013 года.
  5. Paul Wassenberg. SATA Express: PCIe Client Storage (англ.) (PDF) (недоступная ссылка). SATA-IO (25 июня 2013). Дата обращения: 10 февраля 2016. Архивировано 4 октября 2013 года.
  6. Zsolt Kerekes. SSD Market History — Charting the Rise of the Solid State Disk Market (англ.). StorageSearch.com. Дата обращения: 11 февраля 2016. Архивировано 25 мая 2017 года.
  7. Amber Huffman. NVMHCI: The Optimized Interface for Caches and SSDs (англ.) (PDF). Flash Memory Summit (2008). Дата обращения: 12 февраля 2016. Архивировано 4 марта 2016 года.
  8. A Comparison of NVMe and AHCI (англ.) (PDF) (недоступная ссылка). SATA-IO (31 июля 2012). Дата обращения: 11 февраля 2016. Архивировано 12 февраля 2019 года.
  9. Amber Huffman. Extending the NVMHCI Standard to Enterprise (англ.) (PDF). Flash Memory Summit (2009). Дата обращения: 20 февраля 2017. Архивировано 17 апреля 2016 года.
  10. NVM Express Explained (англ.) (PDF). NVM Express, Inc. Дата обращения: 10 февраля 2016. Архивировано 4 марта 2016 года.
  11. Dave Minturn. NVM Express Over Fabrics (англ.) (PDF). OFADevWorkshop (2015). Дата обращения: 11 февраля 2016. Архивировано 22 апреля 2016 года.
  12. Speeding up Flash... in a flash (англ.) (недоступная ссылка). The Inquirer (13 октября 2007). Дата обращения: 12 февраля 2016. Архивировано 18 сентября 2009 года.
  13. Amber Huffman. Non-Volatile Memory Host Controller Interface (NVMHCI) 1.0 (англ.) (PDF). Intel Corporation. NVM Express, Inc. (14 апреля 2008). Дата обращения: 20 февраля 2017. Архивировано 5 июня 2015 года.
  14. 14,0 14,1 Peter Onufryk. What’s New in NVMe 1.1 and Future Directions (англ.) (PDF). Flash Memory Summit (2013). Дата обращения: 12 февраля 2016. Архивировано 22 февраля 2016 года.
  15. New Promoter Group Formed to Advance NVM Express (англ.) (PDF), NVM Express, Inc. (1 June 2011). Архивировано 4 марта 2016 года. Дата обращения 12 февраля 2016.
  16. Amber Huffman. NVM Express Revision 1.1 (англ.) (PDF). NVM Express, Inc. (11 октября 2012). Дата обращения: 12 февраля 2016. Архивировано 6 июля 2017 года.
  17. NVM Express, Inc. NVM Express Revision 1.1b (англ.) (PDF) (2 июля 2014). Дата обращения: 15 февраля 2016. Архивировано 1 июля 2016 года.
  18. NVM Express, Inc. NVM Express Revision 1.2 (англ.) (PDF) (3 ноября 2014). Дата обращения: 15 февраля 2016. Архивировано 29 июня 2016 года.
  19. NVM Express, Inc. NVM Express Revision 1.2a (англ.) (PDF) (23 октября 2015). Дата обращения: 12 февраля 2016. Архивировано 13 апреля 2016 года.
  20. NVM Express, Inc. NVM Express Revision 1.3c (англ.) (PDF) (24 мая 2018). Дата обращения: 25 июня 2018. Архивировано 25 июня 2018 года.
  21. NVM Express, Inc. NVM Express Revision 2.0 (англ.) (PDF). NVM Express (13 мая 2021). Дата обращения: 8 августа 2021. Архивировано 20 июля 2021 года.
  22. NVM Express, Inc. NVM Express Revision 2.0a (англ.) (PDF). NVM Express (23 июля 2021). Дата обращения: 8 августа 2021. Архивировано 8 августа 2021 года.
  23. NVM Express, Inc. NVM Express Revision 2.0b (англ.). NVM Express (6 января 2022). Дата обращения: 9 февраля 2022. Архивировано 20 января 2022 года.
  24. IDT releases two NVMe PCI-Express SSD controllers (англ.) (недоступная ссылка). The Inquirer (21 августа 2012). Дата обращения: 12 февраля 2016. Архивировано 24 августа 2012 года.
  25. IDT Shows Off The First NVMe PCIe SSD Processor and Reference Design - FMS 2012 Update (англ.). The SSD Review (24 августа 2012). Дата обращения: 12 февраля 2016. Архивировано 1 января 2016 года.
  26. Samsung Announces Industry’s First 2.5-inch NVMe SSD | StorageReview.com - Storage Reviews (англ.) (недоступная ссылка). StorageReview.com (18 июля 2013). Дата обращения: 12 февраля 2016. Архивировано 10 января 2014 года.
  27. Scot Strong. Intel Adds PCIe Solutions To Its Data Center Family Of SSDs (англ.). The SSD Review (3 июня 2014). Дата обращения: 12 февраля 2016. Архивировано 23 декабря 2015 года.
  28. Kristian Vättö. Samsung SM951-NVMe (256GB) PCIe SSD Review (англ.). AnandTech (25 июня 2015). Дата обращения: 26 августа 2016. Архивировано 28 августа 2016 года.
  29. Les Tokar. iPhone 6S Uses NVMe Storage – Performance Determined By Capacity (англ.). The SSD Review (октябрь 2015). Дата обращения: 12 февраля 2016. Архивировано 7 ноября 2015 года.
  30. Kevin OBrien. Dell PowerEdge R720 12G Review (англ.). Storage Review (5 февраля 2013). Дата обращения: 15 февраля 2016. Архивировано 11 февраля 2016 года.
  31. Patrick Kennedy. The Intel Ruler SSD: Already Moving Markets (англ.). Serverthehome (9 августа 2017). Дата обращения: 25 июня 2018. Архивировано 25 июня 2018 года.
  32. Supermicro Launches 1U Ruler NVMe Server (англ.). StorageReview (3 марта 2018). Дата обращения: 25 июня 2018. Архивировано 25 июня 2018 года.
  33. Cliff Robinson. Supermicro 36x NGSFF SSD server offers 576TB of NVMe Storage in 1U (англ.). StorageReview (11 января 2018). Дата обращения: 25 июня 2018. Архивировано 25 июня 2018 года.
  34. David Wang. Next Generation Small Form Factor (NGSFF) SSD Proposal (англ.). Flash Memory Summit. Дата обращения: 25 июня 2018. Архивировано 25 июня 2018 года.
  35. Andy Herron. NVM Express Moves Into The Future (англ.) (pdf). NVM Express, Inc. (2016). Дата обращения: 11 августа 2016. Архивировано 22 августа 2016 года.
  36. NVM Express over Fabrics Specification Released (англ.), NVM Express, Inc. (9 June 2016). Архивировано 18 августа 2016 года. Дата обращения 11 августа 2016.
  37. Kwok Kong. The latest on NVMe open source drivers for Windows and VMware (англ.) (недоступная ссылка). Storage Review (4 августа 2014). Дата обращения: 15 февраля 2016. Архивировано 4 марта 2016 года.
  38. Andy Herron. Advancements in Storage and File Systems in Windows 8.1 (англ.) (pdf). Storage Developer Conference (11 января 2014). Дата обращения: 15 февраля 2016. Архивировано 10 января 2014 года.
  39. Update to add native driver support in NVM Express in Windows 7 and Windows Server 2008 R2 (англ.). Microsoft Support (4 августа 2014). — KB2990941. Дата обращения: 15 февраля 2016. Архивировано 13 марта 2016 года.
  40. Обер, Михаил. Страница 3: В чем разница между AHCI и NVMe? — В: Выбираем SSD : обзор технологий на рынке и сравнительные тесты // XX hardware LUXX : журн. — 2016. — 2 января. — С. 3. — Электр. изд.
  41. How to enable host memory buffer in Windows10 by registry key? (недоступная ссылка). Дата обращения: 16 октября 2021. Архивировано 16 октября 2021 года.
  42. Keith Busch. Update to add native driver support in NVM Express in Windows 7 and Windows Server 2008 R2 (англ.) (pdf). Flash Memory Summit (12 августа 2013). Дата обращения: 15 февраля 2016. Архивировано 5 ноября 2013 года.
  43. Matias Bjørling; Jens Axboe; David Nellans; Philippe Bonnet. Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems (англ.) (pdf). IT University of Copenhagen (5 марта 2013). Дата обращения: 15 февраля 2016. Архивировано 2 февраля 2014 года.
  44. Werner Fischer. Linux Multi-Queue Block IO Queueing Mechanism (blk-mq) (англ.). Thomas-Krenn. Дата обращения: 15 февраля 2016. Архивировано 3 марта 2016 года.
  45. Stephen Bates. Having fun at queue depth = 1: What next generation non volatile memory (NG-NVM) means for PCIe SSDs and SSD drivers (англ.) (недоступная ссылка). PMC-Sierra (12 ноября 2015). Дата обращения: 15 февраля 2016. Архивировано 6 марта 2016 года.
  46. HMB in DRAM-less NVMe SSDs: Their usage and effects on performance. Дата обращения: 16 октября 2021. Архивировано 22 февраля 2022 года.
  47. Linux 4.13 has been released on Sun, 3 Sep 2017. Дата обращения: 16 октября 2021. Архивировано 29 октября 2017 года.
  48. NVM Express device driver v4.13.1. Дата обращения: 16 октября 2021. Архивировано 16 октября 2021 года.
  49. Log of /head/sys/dev/nvme (англ.). FreeBSD source tree. The FreeBSD Project. Дата обращения: 15 февраля 2016. Архивировано 29 мая 2013 года.
  50. FreeBSD 10.2-RELEASE Release Notes (англ.). The FreeBSD Project. Дата обращения: 15 февраля 2016. Архивировано 18 июня 2017 года.
  51. NVMe comes to DragonFly – DragonFly BSD Digest (англ.). Дата обращения: 8 сентября 2016. Архивировано 19 сентября 2016 года.
  52. DragonFly BSD 4.6. Дата обращения: 8 сентября 2016. Архивировано 4 сентября 2016 года.
  53. David Gwynne. non volatile memory express controller (/sys/dev/ic/nvme.c) (англ.). BSD Cross Reference (16 апреля 2014). Дата обращения: 15 февраля 2016. Архивировано 28 апреля 2014 года.
  54. 54,0 54,1 NVME(4). NetBSD Kernel Interfaces Manual (недоступная ссылка). Дата обращения: 9 сентября 2016. Архивировано 17 сентября 2016 года.
  55. nvme(7D) (англ.). Oracle. Дата обращения: 15 февраля 2016. Архивировано 9 декабря 2015 года.
  56. No boot 54077 64 bit NVMe SSD (англ.). Haiku official discussion forums. Haiku Community (28 апреля 2020). Дата обращения: 28 апреля 2020.
  57. ChangeLog/1.6 — QEMU. Дата обращения: 8 июля 2020. Архивировано 17 июля 2020 года.
  58. Download EDK II from. SourceForge.net. Дата обращения: 11 января 2014. Архивировано 31 декабря 2013 года.

Литература

  • Rino Micheloni, Alessia Marelli, Kam Eshghi. Inside Solid State Drives (SSDs). — Springer Science & Business Media, 2012. — 382 с. — (Springer Series in Advanced Microelectronics). — ISBN 9789400751453.

Ссылки

Шаблон:Твердотельные накопители