GWの話になりますが、友人が買ったPC(HPだったかDELLだったか失念)にM.2のコネクタがあってSSD挿したいんだけどってことでアドバイス求められました。
SSDはもちろん買って使ったりしてますが2.5インチのSATA品。
M.2って何?それおいしいの?
って状態だったので今後の為にも調べてみました。
仕事柄PCI-SIGの資料は見れるのである程度はわかったのですが、完ぺきにはわかりきってないですので以下の内容に間違い等あればご指摘いただけると助かります。
自分なりに理解した内容を書いてみます。
M.2とは
以前はNGFF(Next Generation Form Factor)として提唱されていた規格です。
間違ってはいけないのは、M.2はあくまでもコネクタ、端子の規格だという事です。
M.2=SSD=SATA と認識するのは間違っています。
まずは物理的なコネクタサイズ。
2242とか2280とかっていう数字が表記してあったりしますが、これはサイズを表します。
最初の22が横幅、後の42とか80が長さです。
規格として、
横幅は12、16、22、30mm
長さは16、26、30, 38、42, 60、80、110mm
が定義されていますが、そのすべての組み合わせがあるわけではありません。
一般的に見るサイズは先にも書いたように2280とか2242かと思います。
例えばこのSamsungのは2280タイプですね。
また、端子と反対方向にある丸い切り欠きが特徴で、基板に取り付ける際にはコネクタに挿した後にノッチにネジ止めすることで固定して使います。
ホットスワップ的な使い方は出来ません。
ターゲットアプリケーションとしては
ストレージだけではなく、Wi-Fi、Bluetooth、NFC、WWAN等様々な用途を想定されています。
75ピンありますが、切り欠き(キー)部分に8ピン分使われているため、最大67ピンになります。
切り欠き(キー)はA~M(Iを除く)の12種類定義されており、A~MのキーIDを区別すべく切り欠きの位置が決められています。
これにより違う用途のものが挿さらないようにできるわけです。
ただ、この12種類全てが世の中に存在するわけではありません。Reservedな規格が入ってます。
WikiにはA、B、E、F、Mと5種類の用途が載っています。
ちなみにWikiにはKeyBのUSBは3.0となってますが、今は3.1Gen1と同じことですね。
ただ、世の中的にはKeyB品でもUSB3.1Gen2(10Gbps)に対応してるってな製品が見受けられるんですが、少なくとも私の調べる限り(PCI-Express M.2 Specification Rev1.1)USB3.1はGen1(USB3.0)までしか対応していないです。
で、このキーには2つの組み合わせの製品ができるようになっており、
A+EとかB+Mという組み合わせの製品が見られます。
B+Mの製品の場合、BのコネクタでもMのコネクタにも挿すことができます。
たとえば、このWi-Fiアダプタの場合
KeyA+Eになっていますね。
製品説明を見ると
要PCIe / USBインターフェース
となっています。
PCIeとUSBじゃなくて、PCIeかUSBかってことかと思います。
KeyAもKeyEでも PCIe×2, USB 2.0 と書いてあるので、AだからPCIe、EだからUSBって感じではなさそうですね。
デバイスの方はどっちにも対応してそうなので、マザボがどっちに対応しているのか?ってことでしょうか?
マザボもどっちにも対応してたらどっちで認識されるんだろうか?
ってのが良くわからない所です。
さて、肝心のSSDです。
KeyIDの説明をみたら、SATAはBとM。PCIeはA、B、E、Mに含まれています。
理屈上はそれらのKeyIDに対応した基板とデバイスであれば使えるのかと思いますが、世の中的には、KeyB+MがSATA、KeyMがPCI-Expressという製品になっているようです。
仕様書ではKeyBでもSATA品は作れそうですし、KeyB+MでもPCI品は作れそうなんですけどね。
ココらへんヨクワカラナイ。。。
さて、パフォーマンスですが、
SATA接続ですとSATA III で 6Gb/s(8B/10B)ですので、600MByte/secの速度です。
一方PCIeで接続した場合はGen3で1レーンあたり約1GByte/secでますので、2レーン接続でも2GByte/sec。最大の4レーン接続では4GByte/sec出ることになり、性能差は比べ物になりません。
おそらく現在最高レベルの性能であろうコンシューマ品のM.2のSSD(NVMe)はSamsungの970PROでしょうか。
これはPCIe Gen3x4laneです。スペックは
Sequential Read 3.5GByte/sec
Sequential Write 2.7GByte/sec
と、ほぼインターフェースの限界近くまで使えてそうです。
同じくSamsungのSATA品で860PROが最高クラスかと思いますが、そのスペックは
Sequential Read 0.56GByte/sec
Sequential Write 0.53GByte/sec
とほんと桁違いの遅さです。
ただ、これでもSATA IIIの限界近くの数字が出てますので、I/FがSATA IIIのままではこれ以上の性能アップは望めません。
いきなり出てきたNVMeという言葉ですが、NVM-Expressのことです。PCI-ExpressをPCIeと略すのと同じようなものですかね。
不揮発性ストレージメディア用の論理的な接続I/Fの規格です。
PCI-Expressという物理的な規格を用いてNVM-Expressという論理的な規格でやりとりするって感じでしょうか。
SDの新しい規格 SD-Expressについても似たようなものですね。
というわけで、まとめると
M.2 SSDには大きく分けてSATA接続タイプとPCIe接続タイプ(NVMe)がある
- 切り欠き(キー)の違いで挿せない場合は使用できない
- 挿せたとしても使えない場合もあるので、マザボが対応しているI/Fを確認する必要がある
- PCIeでもGenやリンク数が少なくなれば速度はおちる
という感じでしょうか。
なので、
M.2 SSDだからといってみんなくっそ速いんだって思うのはちょっと違いますよ。
買う時は気を付けましょう
っていうお話です。
ちなみに、M.2 SSDをPCIeネイティブでサポートしているマザボを持ってない私は
こんなUSB3.1 Gen2への変換で使えないか検討中です。
ちなみにこの手の商品。I/FがUSB3.1Gen2なのか、NVMeはGen3なのか4Linkなのかってのが大事なんですがイマイチわからない部分もあります。
私のiMac2017のUSB-CはGen3.1Gen2(10Gbps)に対応しているようです。
1レーンの速度ではPCIGen3に勝っているものの1レーンだけですからトータルでは4GByte vs 1.2GByteとかなり負けます。
しかし、SATA IIIの倍いけてますので、
USB3.1Gen2アダプタ+NVMe対応M.2 SSD を外付けにして、それを起動ディスクにすれば今より爆速マシンができるのかな?って思ったりしてます。
Max1.2GByte/sなのでSSDも昔の価格のこなれたのでいいですしね。
このサイズならかさばりませんし。
アダプタが怪しいメーカー品しかないってことが引っかかりますが、
ちょっと考えてみようかと思います。
って、アダプタはやっぱり少しでも安いこっちを買おうとしてますけどね。
コメント
後から読み返してみたらNVMeについて書いてませんね
夜に書き足します