NVHMCIでもコントローラーがボトルネックに
ところがNVHMCIは、コンシューマー向けのSSDはともかく、エンタープライズ向けには不十分という声がNVHMCIの規格策定に携わったメンバー企業の中から多く出てきた。
SATAにしてもSASにしても、1つのコントローラーの下に多数のHDDをぶら下げる構造になっている。HDDの場合、よほどのことがない限り連続して長時間にわたってデータの読み出しや書き込みを行なうことはなく、だいたいは数セクター分を読み書きした後でシーク(ヘッドの移動)、また数セクターの読み書き、シークという具合に続く。
そのため、複数のHDDを1つのコントローラーにぶら下げても、うまく負荷分散を図れる。
ところがSSDの場合、読み書きが極めて長時間可能で、シークに相当する部分(SSD内部のガベージコレクションなど)の時間はずっと短いので、1つのコントローラーの下に複数のSSDをぶら下げた場合、どうかするとコントローラーが先にボトルネックになってしまう。
PC向けなら、ブートドライブをSSDにして、データドライブはHDDという構成になっているためそれほど大きな問題ではないが、エンタープライズ向けでは複数台(それも2桁)のSSDがぶら下がることになるので、明らかにコントローラー側がボトルネックになる。
そこで複数のSSDを1つのコントローラーで管理するのではなく、1つのコントローラーで1つのSSDを管理する方式が浮かぶことになった。これは当初、Enterprise NVMHCIという名前で2009年中旬から開発が始まるが、途中でNVM Expressに名前が変わった。
ではSATAとNVM Expressではなにが違うのだろうか。下図がSATAとNVMe Expressの接続方法である。
SATAの場合、ホスト(PCだったりサーバーだったりいろいろ)とPCIやPCI ExpressでまずSATAコントローラーがつながり、そこからSATA経由でHDDやSSDがつながる形になる。
SATAコントローラーに関してはPC側のチップセットに統合されている場合もあるが、この場合チップセットの内部でPCI/PCI Express経由でSATAコントローラーにつながる構造になっているだけで、基本的にはこの3つのブロックに分かれていることに違いはない。これに対しNVM Expressでは、NVMeのコントローラーがSSD内部に入っている、という大きな違いがある。
ちなみにNVMeのコントローラーとフラッシュメモリーの間のI/Fに関しては、サムスン/東芝という2大フラッシュメモリーベンダーはToggle NAND、その他のメーカーはONFI(Open NAND Flash Interface)という規格に準拠することで、足並みがそろっていなかった。
実を言うと現在もあまりそろっていないのだが、これは微細化や高速化にともない、例えばエラー訂正についても世代毎に異なる要件が必要になってきており、もはや同じメーカーの中ですらI/Fを変えないといけなくなってきている。
これもあって、もうフラッシュメモリー単体でのI/Fの標準化はすでに放棄されている。ではどうやってつなぐかというと、それこそNVM ExpressやeMMC(Embedded Multi Media Card)、UFS(Universal Flash Storage)などの、「コントローラーが搭載されていることを前提としたI/F」を利用するようになっている。
PCI Expressの接続方法の図で言えば、ホストとNVMeコントローラーはPCI Expressでつながることだけが決まっており、NVMeコントローラーとフラッシュメモリーをどうつなぐかはもはや各NVMeコントローラーベンダー任せとなっている。
NVMeコントローラーベンダーは、利用するフラッシュメモリーのメーカー/世代ことにあわせて異なるチップを用意しているというのが正確なところだ。
話がやや逸れたが、ではAHCIとNVM Expressではアプリケーション(ドライバー)からみるとどんな違いがあるのだろうか。いくつか目立ったところを比較すると以下の違いがある。
| AHCIとNVM Expressの違い | ||||||
|---|---|---|---|---|---|---|
| 速度 | AHCIは最大でもチャネルあたり600MB/秒。一方NVM ExpressはPCI Expressの限界(Gen3 x4なら最大4GB/秒) | |||||
| キューの深さ | コントローラーがハンドリングできる送受信コマンドを貯めるコマンドキューは、AHCIの場合1つのみで、そのキューに32個のコマンドを貯められる。NVM Expressは65535個のコマンドキューを持つことができ、それぞれのキューに最大65536個のコマンドを貯められる(最大値) | |||||
| 割り込み | 予めキューイングされたコマンドに割り込みをかけて優先的に処理する割り込み処理について、AHCIでは1つのみ許され、多重割り込みはサポートしない。NVM ExpressではMSI-X(eXtended Message Signal Interrupt)と呼ばれる、メッセージベースの割り込みを最大2048までサポートする。 | |||||
| 並列処理 | AHCIでは並列処理をサポートしないので、複数のプログラムからのリクエストが同時にコントローラー側に到達しないように、デバイスドライバーでリクエストを一本化する必要がある。NVM Expressでは最初から並列処理をサポートしており、複数のプログラムからの同時リクエストをさばける。 | |||||
またAHCIの場合は、その先につながるのが必ずしもHDDやSSDとは限らない(光学ドライブやMOドライブなども考えられる)のに対し、NVM ExpressではフラッシュメモリーベースのSSD以外は考慮されていないので、こうしたHDD/SSD以外のデバイスへの配慮なども外されている。
ただこうした違いを別にするとNVM ExpressはSATAとよく似た構造になっており、ドライバーを置き換えるだけでアプリケーションからは同じように使えるように配慮されている。

この連載の記事
-
第852回
PC
Google最新TPU「Ironwood」は前世代比4.7倍の性能向上かつ160Wの低消費電力で圧倒的省エネを実現 -
第851回
PC
Instinct MI400/MI500登場でAI/HPC向けGPUはどう変わる? CoWoS-L採用の詳細も判明 AMD GPUロードマップ -
第850回
デジタル
Zen 6+Zen 6c、そしてZen 7へ! EPYCは256コアへ向かう AMD CPUロードマップ -
第849回
PC
d-MatrixのAIプロセッサーCorsairはNVIDIA GB200に匹敵する性能を600Wの消費電力で実現 -
第848回
PC
消えたTofinoの残響 Intel IPU E2200がつなぐイーサネットの未来 -
第847回
PC
国産プロセッサーのPEZY-SC4sが消費電力わずか212Wで高効率99.2%を記録! 次世代省電力チップの決定版に王手 -
第846回
PC
Eコア288基の次世代Xeon「Clearwater Forest」に見る効率設計の極意 インテル CPUロードマップ -
第845回
PC
最大256MB共有キャッシュ対応で大規模処理も快適! Cuzcoが実現する高性能・拡張自在なRISC-Vプロセッサーの秘密 -
第844回
PC
耐量子暗号対応でセキュリティ強化! IBMのPower11が叶えた高信頼性と高速AI推論 -
第843回
PC
NVIDIAとインテルの協業発表によりGB10のCPUをx86に置き換えた新世代AIチップが登場する? -
第842回
PC
双方向8Tbps伝送の次世代光インターコネクト! AyarLabsのTeraPHYがもたらす革新的光通信の詳細 - この連載の一覧へ











