NVMe規格
NVM Express/NVMHCI (Non-Volatile Memory Host Controller Interface)
https://gyazo.com/58e8f6ef1db8ee60e8b3dbbc9d661294
NVMは、SSDの中に広く用いられているのがフラッシュメモリという不揮発性メモリ (Non-Volatile Memory) であることから、その頭文字を取ったものである。論理デバイスインターフェースとしてのNVM Expressは、近代的なCPU、プラットフォーム、アプリケーションの並列性を反映するように、フラッシュメモリーベースのストレージとして、その低いレイテンシ、内部並列性を最大限利用するよう設計された。
VM Expressは、新しい世代のSSDが提供する高い並列処理性能を、ホストハードウェアやソフトウェアが十分に引き出せるよう設計されている。その結果、NVM Expressは、それ以前の論理デバイスインターフェースに比較して、I/Oオーバーヘッドを下げ、様々なパフォーマンスの改善をもたらしたほか、並列度の高い長いコマンドキューと、低レイテンシをもたらす。
https://gyazo.com/227969fa270995eb9a586fe4a327a70e
NVMe SSDの歴史を振り返ろう、2015年の「Samsung SSD 950 PRO」登場から大幅進化した最新SSD
AHCI と NVMeの仕様の違い
Advanced Host Controller Interface (AHCI) には、その従来の実績から幅広いソフトウェアとの互換性があるという利点があるが、PCI Expressバスに接続したSSDでは性能を発揮しきれないという欠点もある。なぜかといえば、そのインターフェースとしての論理的な設計が、当時一般的であったハードディスクの諸特性にもとづいてCPUやメモリサブシステムとつなぐことが想定されたものだからである。結果として、SSDでは効率の低下を引き起こすことがある。SSDの特性が、ハードディスクと比べると半導体メモリ寄りだからである。
一方、NVMeはPCI Express SSDの低遅延で並列化された通信と、現代的なCPU、プラットフォーム、アプリケーションによる並列処理との組み合わせを最大限に生かすために、一から設計しなおされたものである。このNVMeのAHCIに対する優位性は、ホスト側ハードウェアとソフトウェアによる高度な並列処理に関連している。これらは下表のコマンドキュー深度の違い、割り込みの処理の効率、 uncacheable register accesses数などから明らかであり、このようにして様々なパフォーマンスの改善が実現されている
https://gyazo.com/29ef5620cbb7200b94fb4056aaae7e25