M.2インターフェイスにはSATA3とNVME規格があるよ。いまさらかよ!

2020年9月5日

こんにちわスピカです。

PC用インターフェイスには昔からさまざまなものがありました。ストレージ系だとSCSI(Small Computer System Interface)SASI(Shugart Associates System Interface)IDE(Integrated Drive Electronics)、最近ではSATAUSBが主流ですね。

USBは汎用性があるのでストレージ系だけでなく音楽転送などでも利用されています。

私が初めて買った外付けHDDもSCSIでした。あの当時(今から25年くらい前)はまだHDDが高く、この外付HDDも240MB(GBじゃないよ)で8万円以上もしました。

今なら10TBのHDDを2個買っておつりが来ますね。

またディスプレイインターフェイスではVGAD-SUBDVIHDMIDisplayportとこれまたストレージ系に劣らず規格が乱立しています。

ディスプレイインターフェイスに関しては今後はDisplayportHDMIが有力ってところですかね。

なんでこんなにも規格があるの

じゃあなんでこんなに規格がいっぱいあるのだろうか。こんなこと考えた人いますかね。

それは、2つのことがあると私は考えています。

一つ目は覇権を握ること。

これはメーカーがその規格においてデファクトスタンダードになれば製品販売で優位に立てる。

もう一つは転送スピードの向上

どっちかというと後者の考え方が優勢のような気もしますが・・

それは製品の性能がアップするにしたがいデバイス間のデータ転送容量が増える傾向にあるため。

またデバイス間の転送スピードを上げることでクライアントユーザーのレスポンスも上がる。

例えば20数年前に使用していたSCSIの理論転送値は40MB/秒、Ultra SCSIで160MB /秒 (一般的ユーザーが使う範囲)程度でした。

現在でもSCSI規格は使われているところもあり、ATA、SATA、USB、IEEE 1394といった規格でいまだSCSIコマンドが利用されているようです。

このところSATAが長らくパソコンのインターフェイスとして利用されてきました。その前はATAでした

SATAインターフェイスも転送スピードにおいてSSDを利用する環境ではすでに限界に来ています。

実際SATAインターフェイスであり現行のSATA3では転送速度600MB/秒でありPCI-Express系と比べても見おとりするようになってきました。

現行のPCI-Express GENERATIONS3では1レーンでも0.98GB/秒となっている。(あくまで理論値)

新たなインターフェイス

そんなSATAは長らく市場にストレージインターフェイスとして利用されてきました。ただSSDが台頭してくるとSATA3ではすでに転送スピードがボトルネックとなってしまい後継インターフェイスの登場が必要でした。

そんななかNVMe【Non-Volatile Memory Express / NVM Express】なる規格が登場してきました

この通称NVMe、SATA系ではなくPCI-Express系インターフェイスとなっている。そのため、比較的スピードアップが図られやすい

そして現在主流になりつつあるSSDストレージに対して転送スピードに唯一アドバンテージがあるのもこのNVMeなのです。

NVMeはSSDストレージのために開発された規格といっても過言ありません。

HDDが主流の場合は160MB/秒くらいが転送限界値だったのに対しSSDはすでに5GB/秒に達する状況になってきています。

そんなNVMeとM.2ってどう違うの

よくAmazonなどでSSDを見ているとM.2 NVMeと表記されているのをみることが多い。

M.2とNVMeってどう違うのだろう。

M.2はスロット端子形状の規格でNVMeは転送プロトコル規格になる、プロトコルとは通信規約、所謂決まり事ということ。

M.2には大きく分けて3種類の端子形状がある。

端子形状の規格は他のデバイスを誤って挿さないようにするため物理的に端子に切り込みを入れておく。

これはDDR系のメモリスロットなどでも採用されている手法です。

M-KeyとB-Key、そして B&M-Key

先ほど端子形状には大きく分けて3つあると書きましたがそれぞれの端子の切り込みによって使用するプロトコルが違うようになっています。

M-Keyは一般的にNVMe

Copylight:Wikipedia

上記の図から端子の12-19まで切り込みが入っているほうがB-Keyと呼ばれ59-66まで切り込みが入っているほうがM-Keyと呼ばれています。

このM-Keyとか B-KeyはKeyIDと呼ばれM.2で使われるデバイスの仕様の区分け、識別に使われています。

区分けとしては下図のようになっており将来の新たなインターフェイス用にピンも明けてあります。

Copylight:Wikipedia

一般的にB-KeyがSATA系で使われていてM-KeyがNVMe系で使われていますが現状は混在しているようで、製品名等で識別するのが間違いないようです。

ただAmazonなどで見てみると、 B&M-Key がSATAM-KeyがNVMeとなっているのを多く見かけます。

SATA系SSD

端子に切り込みが2か所入っている B&M-KeyがSATA系インターフェイスになっている。この場合SATA3仕様なので転送速度は600MB/秒が限界(理論値)

NVMe 系SSD

向かって右側に切り込みが入っているM-Key、NVMe系に多い、この場合転送速度はPCIe3.0x4の約4GB/秒 (理論値) 。

ちなみに世代別の転送帯域表を下に記します。(双方向/一方向あたり。GB/sec)

Copylight:Wikipedia

現在は3世代目、GENERATIONS 3が主流なのでGen3の欄を見るとx4のところで 「7.877/3.938 」となっている。これは 一方向で 3.938 GB/秒の転送能力がある(理論値)ということ。

Type 〇〇〇〇はサイズを表す

M.2SSDを仕様を見ているとType 2280だったり Type 2230 という文字を一緒に見かけます。

これってなにかというとM.2デバイスの縦横サイズを表記したものです。

たとえば Type 2280 だったら幅22mm長さ80mmということになる。

規格的には5種類存在し

Type 2230 (幅22mm、長さ30mm)
Type 2242 (幅22mm、長さ42mm) 
Type 2260 (幅22mm、長さ60mm) 
Type 2280 (幅22mm、長さ80mm) 
Type 22110 (幅22mm、長さ110mm) 

がある。ただ上記を見てわかるとおり幅は22mmで同じため長さの違いのみになる。

一般的に売られているのはType 2280が主流のようです。

NGFFって

これも製品表記でよく見ますね。M.2と何がちがうのか、実はM.2の旧称がこの「NGFF」なのです。

Next Generation Form Factor(ネクストジェネレーションフォームファクター)

といっていました。

実はM.2は mSATA の後継インターフェイスなのです。だから形状がけっこう似ている。

そしてM.2とmSATAの違うところはUSB系も取り込んだこと、そのため単なるストレージインターフェイスではなくWi-Fi、Bluetooth、GPS、NFC、デジタルラジオ、WiGig、WWANなどの仕様に適合できるようにした汎用インターフェイスにもなっています。

よってM.2には3つの異なるインターフェイスが混在されています

①PCI-Express、②SATA、③USB

GEN4はこれから

M.2について基本的なことを書いてきました。他サイトでも既に書かれていることも多いと思いますがPCI-Express系はメモリーと各デバイス間の通り道(これをバスという)でも利用されている規格で、世代は変わってもさらにこの先利用される規格になっています。

PCI-Expressはその前身がPCIでその前がAGPと、元々がディスプレイ用のバスでした。

それが過去の遺恨や失敗からPCI-Expressという規格(理論)になり現在に至っています。

元々PCの世界って規格の継ぎはぎが当たりまえの世界です。メモリで言えばユーザーエリアが640KBしか使えない「1MBの壁」を常に抱えていました、DOSの時代ですね、

その時拡張メモリーエリアを使うのにEMSやXMAなんて手法で無理くり利用していました。そもそもDOSは1MBまでしかメモリーエリアを認識できませんでしたから。

拡張メモリーをダイレクトに使えるようになったのはWindowsになってからです。

またHDDもそうですね。8GBや32GB、127GB、そして2TBと・・

人ってどうしてこう先見の明がないのだろうと・・

とりあえずこのくらいあればいいだろうと容量を決め物を作り出す。そしてすぐ足らなくなる。だったら最初から大きい入れ物とその規格を使っておけよな・・って感じ。

デバイス間のバスも同じですね。ただ容量も速度もその時代のテクノロジーに適した範囲で模索されたものであり、その時代のテクノロジーではそれが限界だったのかもしれません。

そしてPCI-Expressも第4世代に突入しようとしています。更なる大容量転送と高速化に拍車がかかり、CPUメモリー間のスピードにより近づくことになります。

PCの速度のボトルネックって各デバイスの転送能力に比例します。低速なデバイスがひとつでもあると関連するデバイスはそれに速度を合わせます。

決して早いほうに合わせません。当たりまえですが。

こんなサイトがありましたバス規格の転送スピードを表にしたもの。興味があったらみてください。