今回はまたIT用語解説ということでNVMeを取り上げる。主にM.2 SSDなどでおなじみの規格である。NVMe、正確にはNVM Expressと言う。NVMはNon Volatile Memoryの略で、日本語では不揮発性メモリーだが、要するにフラッシュメモリーを暗に指していると考えればいい。

厳密にはフラッシュメモリーのように使えれば他のものでもよく、現に3D XPointを使ったインテルのOptane SSDもNVMeを利用している。端的に言えば、「フラッシュメモリーを利用したストレージを高速に接続するための規格」である。

SATAのAHCIに相当するものを作るのが

NVMe誕生のきっかけ

NVM Expressにつながる規格策定作業が始まったのは2007年までさかのぼる。当初はNVMHCI(Non Volatile Memory Host Controller Interface)という名前での作業が開始された。開発の動機は、SSDの高速化が著しくなってきており、SATAやAHCIがむしろ足を引っ張りかねないという懸念が高まってきたことによる。

2007年といえばもうコンシューマー向けにSSD(ただし容量は32GB程度)が発売されていた時期である。2007年末には東芝の「業界最大級」128GB SSDも発表されたりしたが、この東芝のもので読み込み速度が100MB/秒程度。

ぎりぎりSATA/1.5Gbpsでも間に合うスペックではあるが、コンシューマー向けはともかくエンタープライズ向けではすでにSATAあるいはSASの3Gbpsで足りなくなりつつあり、こちらがボトルネックになる可能性があった。

もっと問題なのは、根本的にSATAにせよSASにせよ、従来型のHDDを前提とした規格であり、NANDフラッシュベースのSSDに最適化された構成になっていないため、NANDフラッシュの性能をフルに生かすのは難しかった。

こうしたこともあって、AHCIと似た構成をベースにスタートしつつも、よりNANDフラッシュに向いたI/Fを策定しようというのがNVMHCIである。最終的にこれはNVHMCI 1.0として2008年4月に標準化が完了している。