NVMe、AHCI、M.2など良く分からない人へ向けたSSDの選び方
SSDはSolid State Driveの略で、HDD(Hard Disk Drive、ハードディスクドライブ)と比べて物理的な動作を必要とせず、高速なデータ転送を行えるストレージである。
HDDと比べて高価であるものの、高速で寿命が長く、軽量で故障に強いといった特徴を持っている。
ところが一言でSSDといってもその種類は多く、インターネットで調べても専門的な記事が多すぎて結局何を買えばよいのかの判断がつかない場合も多いと思われる。
そこでこの記事では分かりにくいNVMe、AHCI、M.2、SATA、PCIeなどの専門用語を整理しつつ、SSDの種類と用途、すなわち何がしたい時にどのSSDが適しているかを述べていきたいと思う。
- NVMe M.2 SSDとは何か?
- HDDはSATA接続しAHCIで制御
- SSDでSATA接続しAHCIで制御を行う時の限界
- SSDでPCI Express接続しNVMeで制御を行うことで高速化を実現
- M.2は接続端子や形状を表し、通信方式については関与しない
- NVMe M.2 SSDとは
- NVMeはAHCIと比べてファイルコピーは速いがアプリの起動はそれほど速くならない
- SSDの速度の実際
- NVMeは初期化処理が遅いの補足
- NVMeかAHCIどちらを選ぶべきか
- まとめ
NVMe M.2 SSDとは何か?
宣伝文句として"NVMe M.2接続なので従来のものと比べて高速に動作します"などと謳われているが、NVMeやM.2とは何を意味するのだろうか?
M2はフォームファクタで、NVMeはPCI Expressを通じて不揮発性ストレージメディアを接続する規格であるが、よく分からないと思うので、従来はどうであり、何が異なるのかなどを踏まえつつ整理していきたい。
HDDはSATA接続しAHCIで制御
HDD(ハードディスクドライブ)は一般的にSATA(セイタ、Serial ATA(エーティーエー))を通じてデータの読み書き命令が送られる。
SATAはUSBなどと並ぶ接続規格の一つで、普及しているSATA 3.0では理論値として6Gbit/sのデータ転送速度を実現する事ができる。
6Gbit/sは750MB(メガバイト)/sであるが、同期を取る目的で8b/10bという8ビットデータを10ビットデータに変換して送る伝送方式のため2割帯域をロスして600MB/sの理論値を持つ。
たとえば3GBのファイルならば5秒で転送する能力を持つ。
ところがHDDで大きなファイルのコピーをした人は実感があるかもしれないが、3GBのファイルをコピーするには30秒程度は掛かっているように思われる。
HDDにSATA接続する場合には、SATAの伝送帯域を十分使い切っておらず、HDDそのものの遅さがファイルコピーの遅さにつながっている。
別の言い方をすると、HDDがボトルネックとなって転送時間が伸びている。図示するとこんな感じ。
ところでソフトウェアは読み書きの命令を送ることでHDDを動作させている。
ここに命令の取り決めが必要で、取り決めが無ければ、ソフトウェアがHDDに画像情報を書き込みたいとして命令を出したとしても、HDDはその命令をうまく処理できず、データを保存する事はできない。
よって命令の取り決めが必要となるのだが、この読み書き方法の命令・規則集にあたるものがAHCI(Advanced Host Controller Interface)である。
ソフトウェアが接続線を通じてストレージと対話(やりとり)をするための論理的な取り決めであるためAHCIは論理インターフェースの一種ということもできる。
AHCIはSATA接続を通して命令の伝達が最適に行えるように設計されている。
SSDでSATA接続しAHCIで制御を行う時の限界
HDDからSSDに変わったとしても、SATA接続をしてAHCI制御で読み書きをすることが可能である。
ただし、ここで問題となってくるのがSATAの伝送帯域である。
SSDが登場した初期のころは問題とはならなかったが、高性能化が進むにつれ、6Gbit/sの伝送帯域では不十分となってしまった。
言い換えると、ハードディスクの時には問題とはならなかったSATAの伝送帯域が今度はボトルネックとなり、データ転送速度が遅くなるという事態が起きてしまったのである。
パイプに水を流そうとするが、パイプの太さが問題となり水がより多く流れないというような問題である。
SSDでPCI Express接続しNVMeで制御を行うことで高速化を実現
そこでSATAよりも高速な伝送帯域を持つPCIe(PCI Express)という接続規格を用いてSSDと接続すれば良いということになった。
PCI Express接続にはデータの通る道に該当するレーンが16本存在し、いくつのレーンを使うかで最大の転送速度が異なってくる。
SSDの主流となっているのがレーンを4つ使ったPCI Express 3.0x4である。3.0はPCI Expressのバージョンで、1レーン当たり8Gbit/s、すなわち1GB/sを実現できる。
4レーンあるため32Gbit/s、すなわち4GB/sが理論的な最大転送速度である。
1レーン当たり16GBit/sとPCIe3.0の2倍の転送速度を持つPCIe4.0も登場しており、これだと4レーンで8GB/sの転送速度を実現できる。
これでSATAの限界である600MB/sの壁をめでたく突破できたわけであるが、まだPCIeの伝送帯域にはかなりの余裕がある。
ここで、AHCIはSATA接続のHDDに向けて最適化されているが、物理的な構造が全く異なるSSDに対して十分な性能を引き出していないという問題があった。
そこでSSDに最適化された新たな論理インターフェースであるNVMeが開発されることとなった。
NVMeはNon Volatile Memory Expressの略で、そのまま訳すとソフトウェアが不揮発性メモリと通信する規格といった意味になる。
Non Volatileとは不揮発(ふきはつ)性の事である。液体が蒸発して気体となる性質を揮発性と呼び不揮発は蒸発しない性質のこと。この意味が転じて、電源が切れてもデータが消失しない性質も不揮発であると言う。
次にMemoryだが、SSDはUSBメモリと同じNAND型フラッシュメモリで構成されており、パソコンの電源を落としてもデータを失わないため不揮発性メモリの一種である。
Expressは高速な通信といった意味で使われる。電車で〇〇Expressというと大抵は急行を意味するが、そのあたりを想像してもらえば良いだろう。
要するに、NVMeは不揮発性メモリであるSSDと高速に通信するための規格ということである。
NVMe論理インターフェースの導入によりPCI Expressの伝送帯域に近い速度をSSDで実現することが可能となったのである。
M.2は接続端子や形状を表し、通信方式については関与しない
次にM.2(エムドットツー)とは何であろうか?NVMe M.2 SSDと書かれた製品が売られているためNVMeと何か関連しているのだろうか?などと思うかもしれないが、全く関係はしていない。
M.2はフォームファクタ、すなわち接続端子と形状を定めた規格である。
M.2はType2280という形が主流で、これは横22mm(2.2cm)、縦80mm(8cm)という意味である。M.2 SSDは長方形の細長い板の形をしている。
他にもType2230、2242、2260、22110というタイプが存在するが、ほとんど販売はされていない。
M.2はフォームファクタであるために、ソフトウェアとSSDとの通信手段には関与しない。すなわち、PCI Express接続でNVMe論理インターフェースを用いるか、SATA接続でAHCIを用いるかは定めておらず、実際両方の製品が販売されている。
よってM.2だから高速と結論付けるのは正しくはない。
M.2以外のフォームファクタとしては下図のような2.5インチの長方形のものがある。こちらは基本的にSATAでの接続を前提としている。
NVMe M.2 SSDとは
最初の問に戻ると、NVMe M.2 SSDとはPCI Express接続に最適化されたNVMe論理インターフェースを用いて通信を行い、物理的な形はM.2規格に基づいて作られているSSDということができる。
最後に特徴を表にしてまとめると下のようになる。
フォームファクタ | 通信規格 | 論理インターフェース | 特徴 |
---|---|---|---|
M.2 | PCI Express(PCIe) | NVMe | 軽い、速い |
SATA (Serial ATA) | AHCI | 軽い、遅い | |
2.5インチ | SATA (Serial ATA) | AHCI | 重い、遅い |
NVMeはAHCIと比べてファイルコピーは速いがアプリの起動はそれほど速くならない
PCI Express接続のNVMeはSATA接続のAHCIよりも高速だが、その差はどこで体感できるのか?この問いに答える前に、まずシーケンシャルアクセスとランダムアクセスを理解する必要がある。
SSDに書き込みを行う時に、1つのファイルを書き込むか、断片化された複数のファイルを書き込むかで違いがある。
想像するとなんとなく分かるかもしれないが、複数ファイルの書き込みは制御が複雑となり、1つのファイルを書き込む方が高速となる。
また、読み込みを行う時も、様々な場所から複数のファイルを読み込むのと、一つの大きなファイルを読み込むのでは総合のサイズが同じであったとしても、連続した一つの大きなファイルを読み込む方が高速となる。
この、読み書きのために連続した領域に対してアクセスを行うことをシーケンシャルアクセスとよび、断片化したいくつもの領域にアクセスを行うことをランダムアクセスとよぶ。
複数のファイルを読み込むケースというのはアプリケーションやOS(オペレーティングシステム)を読み込む時であり、また大きなファイルを読み込むケースは写真や動画などをコピーする時である。
すなわちアプリケーションやOSの読み込みではランダムアクセスが、ファイルのコピーではシーケンシャルアクセスが多く発生する。
NVMeの特徴として、シーケンシャルアクセスは得意であるが、相対的にランダムアクセスは得意としていない。
この結果NVMeはOSやアプリの起動速度はAHCIとあまり変わらず、体感しやすいアプリのサクサク感は向上しにくい。
一方でファイルのコピー速度は速くなり、動画や写真のコピーの他、ゲームのロード時間もそれなりに短くなる。
SSDの速度の実際
次のYoutube動画によると各操作におけるHDD/AHCI SSD/NVMe SSDの速度は下のようになっている。
NVMeのSSDはAHCIのSSDと比べて、アプリケーションの起動はそれほど高速化されておらず、OSの起動時には初期化に時間が掛かかるのか、かえって遅くなっている。
これは、ランダムアクセスが多いという理由の他にNVMeは初期化にかかるコストが高いという理由もあるようである。
ただし、ファイルのコピー処理は明らかに高速化されている。動画中では明らかにされていないが、写真や動画ファイルをコピーしているのだと思われる。
OSの起動 | ゲームの起動 | Chrome(ブラウザ) を起動してタブを5つ開く | 37GBのファイルコピー | |
---|---|---|---|---|
HardDisk | 61秒 | 45秒 | 39秒 | 498秒 |
AHCI SSD | 36秒 | 30秒 | 5秒 | 126秒 |
NVMe SSD | 37秒 | 29秒 | 3秒 | 38秒 |
NVMeは初期化処理が遅いの補足
ランダムアクセスの処理はNVMeはシーケンシャルアクセス程は速くならないとは述べたものの、それでもAHCIのSSDと比べると速くはなっている。
にも関わらず、OSの起動が速くならないのはどういうことか?これを図に表してみた。
実際にデータを送る前に、これからデータを送りますよという同意が基盤とSSDの間には必要となるが、この同意を確立するまでの時間がAHCIのSSDと比べて長いという事である。
このような事はソフトウェアには良くある話で、専門用語でイニシャライズコストが高いと呼んでいる。NVMeはAHCIと比べイニシャライズコストが高いのである。
たとえ話でいうとウサギとカメみたいなもので、最初怠けているウサギ(NVMe)はカメ(AHCI)に起動速度で負けるのである。
NVMeかAHCIどちらを選ぶべきか
以上により情報が整理されたが、最後に主観的な意見を述べたいと思う。
まず同価格であれば、文句なしでNVMeのSSDを購入するが、NVMeのSSDの方が若干高価ではある。
HDDからAHCIのSSDに変えることと比べると、AHCIのSSDからNVMeのSSDに変えることは、ファイルのコピー速度以外それほどメリットが無いため、価格差ほどの恩恵が得られるかは分からない。
ファイルのコピーは例えば動画編集ソフトに動画をインポートするときなどにも効果を発揮するはずなので、動画編集をよくする人で、かつ今までの動画編集が遅くていらいらしている人にとっては良い選択肢となるだろう。
また、ゲームでマップデータをロードする処理はNVMeの恩恵を受けやすいため、3Dゲームをよくする人にとってもおすすめできる。
結論として、動画編集かゲームをよくする人は、価格と相談してNVMe SSD、オフィスソフトやインターネット閲覧が主な人は安価なAHCI SSDという事ができるだろう。
補足としてゲームのロード時間はYoutube動画あるので紹介しておく。
動画の内容を表にまとめると次のようになる。
ゲームタイトル | NVMe SSD | AHCI SSD | SSHD | HDD |
---|---|---|---|---|
Shadow of the Tomb Raider | 12.46秒 | 14.34秒 | 31.46秒 | 35.13秒 |
Far Cry 5 | 9.31秒 | 10.20秒 | 24.42秒 | 28.52秒 |
Assassin's Creed Odyssey | 27.15秒 | 29.10秒 | 50.39秒 | 52.46秒 |
The Witcher 3 | 5.34秒 | 5.34秒 | 22.25秒 | 22.34秒 |
Kingdom Come Deliverance | 5.18秒 | 5.35秒 | 6.27秒 | 16.18秒 |
Battlefield 5 | 69.25秒 | 80.29秒 | 83.09秒 | 93.33秒 |
Ghost Recon Wildlands | 11.16秒 | 12.13秒 | 22.05秒 | 28.44秒 |
GTA 5 | 30.34秒 | 41.58秒 | 51.38秒 | 56.47秒 |
Resident Evil 2 Remake | 2.37秒 | 2.51秒 | 2.51秒 | 3.06秒 |
NVMeにすることでおよそ10%程度高速化している。それにしてもゲームによりけりではあるが。
また、フォームファクタについては触れていなかったが、モバイルノートでは軽量化が重視されるため、軽量なM.2のSSDを搭載するのはありである。
まとめ
ここまで読み進めれば次の結論もチョットワカルようになったはずである。
SSDは主流として、SATA接続のAHCI論理インターフェースを採用し、2.5インチフォームファクタを持つSSD(俗にSATA SSD)とPCIe接続のNVMe論理インターフェースを採用し、M.2 Type2280のフォームファクタを持つSSD(俗にNVMe M.2 SSD)が存在する。
NVMe M.2 SSDは、OSやアプリの起動がランダムアクセスの遅さやイニシャライズコストが問題となりSATA SSDと比べてそれほど速くならないため、オフィスやブラウジング用途ではおすすめできない。
一方でファイルのコピーが速いため、動画編集やゲームをよくする人にとっておすすめできる。あとは価格とにらめっこして、自分に適したSSDを決めていただければと思います。