NVMeとは?誕生の経緯や特長、NVMe採用のSSDのメリット・デメリットなどを解説

SSDやフラッシュストレージなどの高速化に貢献している技術の一つに、NVMeがあります。NVMeは「Non-Volatile Memory Express」の略称で、フラッシュメモリを採用したストレージに用いられることが多い技術です。しかし、なぜフラッシュメモリにNVMeが採用されることが多いのでしょうか。この記事ではNVMeの概要や、比較されることが多いAHCIとの違い、NVMeを採用したSSDが持つ特長などについてご紹介します。
目次
次世代の接続規格「NVMe」とは
「次世代の接続規格」と呼ばれるNVMeですが、具体的にはどのようなものなのでしょうか。ここではNVMeが策定された経緯や特長、インターフェース規格であるAHCIとの違いなどについてご紹介します。
NVMeの概要
SSDをはじめとしたフラッシュストレージは、HDDに変わるストレージとして注目を浴び、2000年代後半ごろから一般ユーザーにも普及し始めました。
しかし、従来の通信プロトコルである「AHCI」は事実上HDDに最適化されたものなので、高速な読み書きが行えるというSSDならではの利点が活かされないという問題がありました。そこで、SSDやフラッシュストレージでの通信最適化のために新しく策定された接続規格がNVMeなのです。
NVMeの特長
NVMeの特長には、主に以下のようなものがあります。
- コマンド処理用のキューが増加
NVMeは、コマンド処理の際のI/Oキューを最大64Kも持っています。これは実質で65,536ものキューがあることを意味し、多数の処理を同時に行うことが可能です。また、1つのキューが対応するコマンド数も、従来の32コマンドから64Kコマンドへと大幅に増加しています。 - データ転送を指示する際に必要なメッセージの送受信量の削減
従来の通信プロトコルでは、4KBのデータ転送に2つのメッセージを送受信する必要がありました。しかし、NVMeではデータ転送の際に必要なメッセージを1つで済むように改良し、メッセージの送受信量を減らすことで、通信の高速化につなげています。 - リモートDMA(ダイレクトメモリアクセス)による高速化
リモートDMAは別のネットワークのSSDからCPUを経由することなく、直接データの読み書きを可能にする技術です。従来、他システムのSSDからデータを読み込む際には、システムメモリにSSD内のデータを読み込ませてからデータ転送を行っていましたが、リモートDMA(ダイレクトメモリアクセス)による高速化で、長くかかっていた作業時間を短縮しています。
NVMeはこれらの機能を搭載することで、SSDの高速な読み書きにも耐えられるパフォーマンスを実現しているのです。
NVMeとAHCIの違い
AHCIは、HDDを前提に規格された接続規格であるSATAに最適化されたインターフェース規格です。そのため、SSDのようなフラッシュストレージのデータ処理を高速化するわけではありません。
また、どちらも高速なインターフェースといわれますが、NVMeに64Kあるコマンド処理のキューがAHCIには1しかない点や、AHCIでは割り込み調整ができない点など多くの機能でNVMeが優れています。
NVMe接続を採用したSSDの特長
NVMeはフラッシュストレージでの使用を前提として作られているため、SSDに搭載することで性能を最大限に引き出すことができます。ここでは、NVMeを採用したSSDが持つさまざまな特長についてご紹介します。
データ転送速度が高速
NVMe SSDは、コネクタとしてPCIe(PCI Express)が採用されたものに搭載される場合が多いです。PCIeにも複数の規格が存在し、最大データ転送速度の理論値はPCIe3.0×2の場合が16Gbps(約2GB/s)、3.0×4の場合は32Gbps(約4GB/s)です。
従来規格であるSATA3を採用したSSDの最大データ転送速度が6Gbpsなので、PCIeを採用したSSDは実質倍以上の速度を誇ることになります。
発熱量が大きい
高性能で高速なデータ処理が可能なNVMe SSD ですが、その分だけ発熱量の大きい点がデメリットです。そのため、使用する際はヒートシンクや冷却ファンによる適切な熱対策を行わないと熱暴走による故障やパフォーマンスの低下といった不具合を引き起こす可能性があります。