NVMe
Non-Volatile Memory Express
SSD時代に、AHCIのボトルネックを解決するために2011年に発表された NVMe は、SSD を念頭に置いて専用設計されたストレージプロトコルです。 それまで主流のAHCIはSATA接続のHDDを前提に設計されていた SSDが普及した時代にはこのプロトコルがボトルネックとなった
中間の SATA HBA 層がないために NVMe では SSD が PCIe バス経由で CPU と直接通信でき、画期的なパフォーマンス向上の道が開けました。
code:ahci
ホスト(パソコン) --PCIe--> AHCI ホストコントローラ --SATA--> SSD1 code:nvme
ホスト(パソコン) --PCIe--> SSD(NVMe コントローラ付き) NVMe は,コントローラが機器に直接乗った構造
NVMe コントローラと SSD 間は内部的な配線で接続されているため,コントローラと SSD 間の通信速度には上限がなく,SSD の性能と PCIe の性能の遅い方に律速されます.
PCIe 4.0は 32 laneで理論値最大64000MB/s
実測では2400MB/sとか出るのはある
SATA 3は600MB/s
A SATA-based M.2 SSD is limited by SATA's maximum limit of 600 MB/s SATA SSD はオーバーヘッドを除いて最大 550MB/秒のスループットを提供できます。
単一の PCIe 3.0 は 1GB/秒(双方向)
PCIe 3 x 4 4GB/s
PCIe Gen 4X4 SSD では最大 8GB/秒(双方向)
Most new, high-end M.2 drives, nowadays, support what's called PCI Express Gen 3.0 x4, paired with a technology called Non-Volatile Memory Express (NVMe) to propel performance even further, especially with heavy, deeply queued workloads.