読み方:えぬぶいえむえくすぷれす《NVM express》エヌ‐ブイ‐エム‐イー(NVMe) のこと。Weblio国語辞典では「NVM_Express」の意味や使い方、用例、類似表現などを解説しています。">

「NVM_Express」の意味や使い方 わかりやすく解説 Weblio辞書 (original) (raw)

Non-Volatile Memory Host Controller Interface Working Group

略称 NVMe
設立 2011年
ウェブサイト nvmexpress.org
テンプレートを表示

NVM Express (NVMe、エヌブイエムイー) もしくは NVMHCI (Non-Volatile Memory Host Controller Interface) はPCI Express (PCIe) で不揮発補助記憶装置を接続するためのインターフェース規格であり、AHCIに代わる次世代規格である。2021年7月現在の最新規格はRev.2.0[1]。NVMは不揮発性メモリ (Non-Volatile Memory) の頭文字である。

概要

シリアルATA (SATA) は主にHDD用に設計されたものであり、その限界転送速度である6 Gbpsを超えることは出来ず、SSDの性能を制限していた。

NVMeは近代的なCPU、プラットフォーム、アプリケーションの並列性とフラッシュメモリーの低いレイテンシや内部並列性を最大限利用するよう設計された。その結果、以前のインターフェースに比較してI/Oオーバーヘッドを下げ様々なパフォーマンスを改善し、並列度の高いコマンドキューと低レイテンシが可能になった。

NVMe規格制定以前よりハイエンドSSD製品の中には、PCI Expressを使用した非標準のインターフェースで接続するものもあったが、各SSDメーカーのドライバが必要であった。この規格で各メーカーが特定のインターフェースのためにドライバを設計する必要はなくなった。

代表的なNVMeデバイスには次の種類がある:

経緯

不揮発性メモリにアクセスする新しい標準規格はインテル・デベロッパー・フォーラムで2007年に最初に公開され、コントローラーとフラッシュメモリー間のI/Fとして「Open NAND Flash Interface Working Group」のONFIが、ホストとコントローラのI/FとしてNVMHCIが示された[2]。同年にインテルが主導するNVMHCIワーキンググループが結成された。NVMHCI 1.0の仕様の策定は2008年4月に完了しインテルのウェブサイトで公開された[3][4][5]

NVMeの技術的な策定は2009年後半に始まり[6]、90社以上の企業で構成される「NVM Express Workgroup」で開発された。インテルのアンバー・ハフマンが同グループの議長を務めた。仕様書のバージョン1.0は2011年3月1日に[7]、バージョン1.1は2012年10月11日に発表された[8]。バージョン1.1で追加された主な特色はマルチパス I/O(名前空間の共有あり)と任意長のスキャッタ/ギャザーI/Oである。今後は名前空間管理の大幅な強化が期待されている[6]。NVMe 1.1は機能に重点を置いているためエンタープライズNVMHCIとも呼ばれた[9]。2013年1月、NVMe仕様のアップデートバージョン「1.0 e-」が公開された[10]

2012年8月には最初のNVMeチップセットIntegrated Device Technology社から発売された(89HF16P04AG3および89HF32P08AG3)[11][12]。最初のNVMeドライブは、2013年7月に発表されたサムスンのXS1715エンタープライズドライブであり、3 GB/s の読み取り速度をサポートし、同社の過去のエンタープライズ製品よりも6倍高速であるとしている[13]。2013年11月に発売されたLSI SandForce SF3700 コントローラーもNVMeをサポートし[14]、同コントローラーのPCI Express 2.0 ×4を搭載したサンプルでは、1,800 MB/秒の読み取り/書き込みシーケンシャル速度と、150K/80KのランダムIOPSが確認された[15]。また、同コントローラーを使用したKingston HyperXのプロシューマー製品がコンシューマー・エレクトロニクス・ショー2014で展示され、同様の性能が示された[16][17]。2014年6月、インテル初のNVMe製品として、PCI Expressバスのintel SSD データセンターファミリー DC P3700シリーズ、DC P3600シリーズ、DC P3500シリーズが発表された[18]

2014年3月にグループは法人化して「NVM Express, Inc.」となり、2014年11月時点で同社は65社以上の企業で構成されている。NVMeの仕様は同社が所有、保守しており、業界標準としての認知度向上も促進している。同社はPromoter Groupから選ばれた13名(シスコ、デル、EMC、HGST、インテル、マイクロン、マイクロソフト、NetApp、Oracle、PMC、サムスン、サンディスク、シーゲイト)の取締役会によって運営されている[19]

AHCIとの違い

Advanced Host Controller Interface (AHCI) は幅広いソフトウェアとの互換性が利点であるが、PCI Expressに接続したSSDの性能を発揮しきれないという欠点もある。AHCIは当時一般的であったハードディスクとCPUやメモリの接続を念頭に設計されたためである。SSDはハードディスクと比べると半導体メモリ寄りの特性を持つ[20][21]

NVMeはPCIe SSDの低遅延、並列性と現代的なCPU、プラットフォーム、アプリケーションの並列処理との組み合わせを最大限に生かすために一から設計しなおされた。結果として下表の通り様々なパフォーマンスが改善された[20][21][22]

AHCI と NVMeの仕様の違い[20][21]

| | AHCI | NVMe | | | ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | -------------------------------------------------------- | | 最大キュー深度 | コマンドキュー: 1個32 コマンド/キュー | コマンドキュー: 65536個65536 コマンド / キュー[23] | | Un-cacheable register accesses (2000 サイクル毎) | 6 / 未キューコマンド9 / キュー済コマンド | 2 / コマンド | | MSI-Xと割り込みステアリング | 単一の割り込みステアリング 無し | 2048 MSI-X 割り込み | | 並列処理、マルチスレッド | 同期ロックが必要 | ロック不要 | | 4 KB コマンドの効率 | コマンド・パラメータ はホスト側のDRAMから直列で2フェッチが必要 | コマンド・パラメータ は単一のフェッチ(64 Byte)で済む |

仕様

これまでのNVMeの仕様は以下の通り[24]

対応OS

LinuxカーネルのNVMeデータパス[25]

ChromeOS

2015年2月24日、NVMeからの起動に対応[26][27]

DragonFly BSD

DragonFly 4.6でドライバを搭載[28]

FreeBSD

HEADとSTABLE/9の両ブランチにインテルがドライバを提供した[29][30]。FreeBSD 10.2 以降、nvd(4) と nvme(4) のドライバがGENERICカーネルに含まれている[31]

Haiku

将来的に対応予定[32]

illumos

2014年10月15日に対応を開始[33]

iOS

iPhone 6S6S PlusAppleがスマートフォンでNVMe over PCIeを採用。その後同技術を使用するiPad ProiPhone SE を発売[34]

Linux

Intelは2012年3月19日リリースのLinuxカーネル3.3でドライバーを公開[35][36][37][38]

主にFusion-ioが開発した高性能SSD用のブロックレイヤー「_blk-multiqueue_」(_blk-mq_)が2014年1月19日リリースのLinuxカーネル3.13に統合された。これによりより高いI/O送信率を実現している。Linuxカーネルのブロック層の新設計により内部キューは2つのレベル(CPUとハードウェアサブミッションキュー)に分割され、ボトルネックが取り除かれてI/Oの高並列化が可能になった[39][40][41]

2015年4月12日にリリースされたLinuxカーネル4.0では以下のドライバがNVMeを使用するように変更された[42][43][44]

NetBSD

開発版(NetBSD-current)でNVMeをサポート[45]。実装はOpenBSD 6.0に由来。

OpenBSD

過去にUSB 2.0とAHCIサポートを担当していた上級開発者によって2014年4月から作業開始[46]。OpenBSD 6.0でサポート[47]

OS X

OS X Yosemite10.10.3で導入。Retina MacBookはPCIe over NVMeをインターフェイスとして利用[48]

Solaris

Oracle Solaris 11.2でサポート[49]

VMware

IntelはvSphere 6.0以降へVMware[50]用のドライバーを提供[51]。vSphere 6 update 1では、VMwareのソフトウェア定義ストレージサブシステム「VSAN」もNVMeデバイスをサポート[52]

Windows

Windows 8.1およびWindows Server 2012 R2から対応[22][53]Windows 7およびWindows Server 2008 R2もアップデートでドライバが提供された[54]

OpenFabricsアライアンスは、Windows 7/8/8.1及びWindows Server 2008R2/2012/2012R2用のオープンソースのNVMe Windowsドライバーを保持している。これはNVMeワークグループの一部のプロモーター企業、特にIDT、Intel、LSIのベースラインコードから開発されている[55]。現行バージョンは1.4(2014年12月にリリース)[56]

ソフトウェアサポート

QEMU

2013年8月15日にリリースされた v1.6以降のQEMUがNVMeに対応[57]

UEFI

SourceforgeからUEFIオープンソース NVMeドライバーが利用可能[58]

脚注

  1. ^ NVMeBMaster. “Specifications” (英語). NVM Express. 2021年7月7日閲覧。
  2. ^Speeding up Flash... in a flash”. The Inquirer (2007年10月13日). 2014年1月11日閲覧。
  3. ^ http://www.bswd.com/FMS09/FMS09-T2A-Huffman.pdf
  4. ^Flash new standard tips up”. The Inquirer (2008年4月16日). 2014年1月11日閲覧。
  5. ^ http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2008/20080813_T2A_Huffman.pdf
  6. ^ a b http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2013/20130813_A12_Onufryk.pdf
  7. ^ “New Promoter Group Formed to Advance NVM Express”. Press release. (June 1, 2011). http://www.nvmexpress.org/wp-content/uploads/2013/04/NVMe_Press_Release_New-Promoter-Group_20110601.pdf September 18, 2013閲覧。
  8. ^ Amber Huffman editor (October 11, 2012). “NVM Express Revision 1.1”. Specification. September 18, 2013閲覧。
  9. ^ David A. Deming (2013年6月8日). “PCIe-based Storage” (PDF). snia.org. 2014年1月12日閲覧。
  10. ^ Amber Huffman editor (January 23, 2013). “NVM Express Revision 1.0e”. Specification. September 18, 2013閲覧。
  11. ^IDT releases two NVMe PCI-Express SSD controllers”. The Inquirer (2012年8月21日). 2014年1月11日閲覧。
  12. ^IDT Shows Off The First NVMe PCIe SSD Processor and Reference Design - FMS 2012 Update”. The SSD Review (2012年8月24日). 2014年1月11日閲覧。
  13. ^Samsung Announces Industry’s First 2.5-inch NVMe SSD | StorageReview.com - Storage Reviews”. StorageReview.com (2013年7月18日). 2014年1月11日閲覧。
  14. ^LSI SF3700 SandForce Flash Controller Line Unveiled | StorageReview.com - Storage Reviews”. StorageReview.com (2013年11月18日). 2014年1月11日閲覧。
  15. ^LSI Introduces Blazing Fast SF3700 Series SSD Controller, Supports Both PCIe and SATA 6Gbps”. hothardware.com. 21 March 2015閲覧。
  16. ^ Jane McEntegart. “Kingston Unveils First PCIe SSD: 1800 MB/s Read Speeds”. Tom's Hardware. 21 March 2015閲覧。
  17. ^Kingston HyperX Predator PCI Express SSD Unveiled With LSI SandForce SF3700 PCIe Flash Controller”. hothardware.com. 21 March 2015閲覧。
  18. ^Intel® Solid-State Drive Data Center Family for PCIe*”. Intel. 21 March 2015閲覧。
  19. ^NVM Express » NVM Express Organization History”. www.nvmexpress.org. 23 December 2015閲覧。
  20. ^ a b c Dave Landsman (2013年8月9日). “AHCI and NVMe as Interfaces for SATA Express Devices – Overview” (PDF). SATA-IO. 2013年10月2日閲覧。
  21. ^ a b c Dave Landsman and Don Walker (2013年11月15日). “NVMe and AHCI as SATA Express Interface Options final” (PDF). SATA-IO. 2023年11月7日閲覧。
  22. ^ a b Andy Herron (2013年). “Advancements in Storage and File Systems in Windows 8.1” (PDF). snia.org. 2014年1月10日時点のオリジナルよりアーカイブ。2014年1月11日閲覧。
  23. ^ NVM Express specification revision 1.2. section 1.4 Theory of Operation. http://nvmexpress.org/wp-content/uploads/NVM_Express_1_2_Gold_20141209.pdf.
  24. ^ NVMe Specifications
  25. ^Linux Storage Stack Diagram”. Thomas-Krenn.AG (2015年6月1日). 2015年6月8日閲覧。
  26. ^NVM Express » ChromeOS adds boot support for NVM Express”. nvmexpress.org. 21 March 2015閲覧。
  27. ^4f503189f7339c667b045ab80a949964ecbaf93e - chromiumos/platform/depthcharge - Git at Google”. googlesource.com. 21 March 2015閲覧。
  28. ^DragonFly BSD 4.6”. www.dragonflybsd.org. 2016年9月8日閲覧。
  29. ^Log of /head/sys/dev/nvme”. FreeBSD source tree. The FreeBSD Project. 16 October 2012閲覧。
  30. ^Log of /stable/9/sys/dev/nvme”. FreeBSD source tree. The FreeBSD Project. 3 July 2013閲覧。
  31. ^FreeBSD 10.2-RELEASE Release Notes”. The FreeBSD Project. 5 August 2015閲覧。
  32. ^#9910 NVMe devices support”. dev.haiku-os.org. 2016年7月28日閲覧。
  33. ^4053 Add NVME Driver Support to Illumos”. github.com. 2016年5月23日閲覧。
  34. ^ Ho, Joshua. “iPhone 6s and iPhone 6s Plus Preliminary Results”. www.anandtech.com. 2016年6月1日閲覧。
  35. ^ Matthew Wilcox (2011年3月3日). “NVM Express driver”. LWN.net. 2013年11月5日閲覧。
  36. ^ Keith Busch (2013年8月12日). “Linux NVMe Driver” (PDF). flashmemorysummit.com. 2013年11月5日閲覧。
  37. ^IDF13 Hands-on Lab: Compiling the NVM Express Linux Open Source Driver and SSD Linux Benchmarks and Optimizations” (PDF). activeevents.com (2013年). 2014年1月11日閲覧。
  38. ^Merge git://git.infradead.org/users/willy/linux-nvme”. kernel.org (2012年1月18日). 2013年11月5日閲覧。
  39. ^Linux kernel 3.13, Section 1.1 A scalable block layer for high-performance SSD storage”. kernelnewbies.org (2014年1月19日). 2014年1月25日閲覧。
  40. ^ Jonathan Corbet (2013年6月5日). “The multiqueue block layer”. LWN.net. 2014年1月25日閲覧。
  41. ^Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems” (PDF). kernel.dk. ACM (2013年). 2014年1月25日閲覧。
  42. ^Linux kernel 3.18, Section 1.8. Optional multiqueue SCSI support”. kernelnewbies.org (2014年12月7日). 2014年12月18日閲覧。
  43. ^Linux kernel 4.0, Section 3. Block”. kernelnewbies.org (2015年5月1日). 2015年5月2日閲覧。
  44. ^Linux Multi-Queue Block IO Queueing Mechanism (blk-mq) - Device Drivers”. thomas-krenn.com (2015年6月8日). 2015年6月8日閲覧。
  45. ^nvme -- Non-Volatile Memory Host Controller Interface”. NetBSD manual pages (2016年1月1日). 2016年9月2日閲覧。
  46. ^ David Gwynne (2014年4月16日). “non volatile memory express controller (/sys/dev/ic/nvme.c)”. BSD Cross Reference. 2014年4月27日閲覧。
  47. ^ David Gwynne (2016年4月14日). “man 4 nvme”. OpenBSD man page. 2016年8月7日閲覧。
  48. ^Faster 'NVM Express' SSD Interface Arrives on Retina MacBook and OS X 10.10.3”. macrumors.com. 11 April 2015閲覧。
  49. ^nvme(7D)”. Oracle. 2014年12月2日閲覧。
  50. ^Intel Solid-State for NVMe Drivers”. intel.com (2015年9月25日). 2016年3月17日閲覧。
  51. ^VMware Compatibility Guide for NVMe devices”. vmware.com. 2016年3月17日閲覧。
  52. ^VSAN Now Supporting NVMe Devices”. vmware.com (2015年11月11日). 2016年3月17日閲覧。
  53. ^Windows 8.1 to support hybrid disks and adds native NVMe driver”. Myce.com (2013年9月6日). 2014年1月11日閲覧。
  54. ^Update to support NVM Express by using native drivers in Windows 7 or Windows Server 2008 R2”. Microsoft (2014年11月13日). 2014年11月17日閲覧。
  55. ^Windows NVM Express”. Project web site. September 18, 2013閲覧。
  56. ^ https://svn.openfabrics.org/svnrepo/nvmewin/releases/
  57. ^ChangeLog/1.6”. qemu.org. 21 March 2015閲覧。
  58. ^Download EDK II from”. SourceForge.net. 2014年1月11日閲覧。

関連項目

Advanced Host Controller Interface

外部リンク

バス
主要項目 システムバス フロントサイドバス バックサイドバス(英語版デイジーチェーン コントロールバス(英語版アドレスバス バスコンテンション(英語版バスマスタリング ネットワークオンチップ(英語版プラグアンドプレイ バス帯域幅の一覧
コンピュータバス規格 S-100バス Unibus VAXBI(英語版MBus STD Bus(英語版) SMBus(英語版Q-bus Europe Card Bus(英語版ISA STEbus(英語版) Zorro II(英語版) Zorro III(英語版) CAMAC(英語版) FASTBUS(英語版LPC HP Precision Bus(英語版EISA VME VXIバス NuBus TURBOchannel(英語版MCA SBus Cバス NESA(Eバス) 98ローカルバス VLB HP GSC bus(英語版) CoreConnect(英語版InfiniBand UPA(英語版AGP Compute Express Link (CXL) Direct Media Interface (DMI) RapidIO インテル QuickPath インターコネクト HyperTransport NVLink APバス
ストレージバス規格 ST-506 ESDI SMD(英語版Parallel ATA SSA(英語版) DSSI(英語版HIPPI シリアルATA eSATA eSATAp(英語版mSATA SCSI Parallel SCSI(英語版Serial Attached SCSI ファイバーチャネル SATA Express U.2 (SFF-8639) U.3 M.2 NVM Express EDSFF(英語版
ペリフェラルバス規格 Apple Desktop Bus HP-IL HIL(英語版MIDI マルチパス RS-232 (シリアルポート) EIA/RS-422 RS-423(英語版RS-485 DMX512-A IEEE-488 (GPIB) IEEE 1284 (パラレルポート) UNI/O(英語版) ACCESS.bus(英語版1-Wire I²C SPI EIA/RS-485 Parallel SCSI(英語版Profibus USB (USB Type-C) FireWire (1394) Camera Link(英語版External PCI Express x16 Thunderbolt PCI PXI(英語版PCI-X PCI Express
オーディオ規格 ADAT Lightpipe(英語版) AES3(英語版) Intel HD Audio(英語版Inter-IC Sound MADI(英語版) McASP(英語版S/PDIF トスリンク
コンピュータバス規格 (ポータブル) PCカード ExpressCard
コンピュータバス規格 (組み込み) Multidrop bus(英語版) AMBA(英語版) Wishbone(英語版AXI
ビークルバス LIN(英語版) J1708(英語版) J1587(英語版) FMS(英語版) J1939(英語版CAN VAN(英語版FlexRay IDB-1394 MOST
補足:インタフェースのリストは通信速度がおおよそ速い順。セクションの最後に挙げているインタフェースが最も速い。 カテゴリ