M.2 SSDとNVMeについて少し調べた
- M.2
M.2はSSDの接続端子(差し込み側)の規格だよ。
基盤が剥き出しになっているのが特徴。
M.2 SSDは転送速度の速さが特徴だが、転送速度が早いのはPCI-e(NVMe)接続を採用しているものに限る。
SATA接続を採用した製品もあり、その場合はSATA接続の2.5インチSSDと同等の転送速度しか発揮できない。
- NVMe(Non-Volatile Memory Express)
NVMeはフラッシュメモリの通信を最適化するために開発された転送プロトコルのこと。
フラッシュストレージデバイスをPCI Express(PCIe)に接続するための新しい標準規格。
従来のHDD(SATA)の転送はAHCI(Advanced Host Controller Interface)という仕組み(プロトコル)で動作しており、
技術的にはすでに頭打ちとなった。そこで論理インターフェース部(プロトコル)を
AHCIからNVMeへ入れ替えることで非常に高速な通信が可能となっている。
コマンド・キューイング
コマンドキューイングはデータのI/O要求が1つ1つ完了するのを待つことなく、
複数の命令を並列に処理するための仕組み。
キューにコマンドを受け取り、効率のよく処理できるよう順番を入れ替えながら並列に実行する。
コマンドキューは受け取ったコマンド(I/O処理)を格納しておく待ち行列。
キュー深度(Queue Depth)はキューに格納できるコマンド数であり、
一度に処理できるコマンド数だよん。
SATAだとコマンドキューが1個、深さは32個である。
ただ、機械的な可動部がないSSDの能力を最大限使用できなかった。(もっと沢山処理できるのに〜!)
そのため、NVMeを使用することで並列に大量のI/Oを処理できるようになっているそう。
SATA(AHCIプロトコル)コマンドキュー
コマンドキュー数:1
キュー深度:32
SAS(SCSIプロトコル)コマンドキュー
コマンドキュー数:1
キュー深度:254
NVMeコマンドキュー
コマンドキュー数:65535
キュー深度:65535
全然違う。。。
そりゃレイテンシ(遅延時間)も減りますわね。。。
参考サイト