Chienomi

WindowsにおけるゲームとSSD

基礎/リテラシー::knowledge

Windowsゲーマー誰もが遭遇する悩み、それはやはり容量だろう。

私はそれほどコアなゲーマーというわけでもないが、WindowsのSSDは2017年に480GBとなってから、2019年に960GB、2020年に1TB、2021年に2TBと増加している。なお、2020年の増加はほとんどないように見えるが、実際は「用途で2台に分かれている」ため、2020年に1TB+1TB、2021年に2TB+1TB、2022年には2TB+1TB+2TBと増加している。

なお、私の手持ちのソフトウェアの中で最も容量が大きいのはKOMPLETE 13 ULTIMATE Collector’s Editionの1150GBである。 DTM関係はいつも容量に悩まされるので、DTMについても少しだけ言及する。

現状、1TB, 2TB, 4TBの容量単価の差は小さく、¥10/1GBを少し越える程度である。860QVOに限った話になってしまうが、8TBでもそこまで割高というわけでもない。 だが、単純な値段で考えるとそれぞれ1万円、2万円、4万円、8万円という価格感であり、「コスパが悪いわけではないが単純に高い」という問題が立ちふさがる。 もちろん、現状容量の小さいSSDを使っており、それを大きい容量のSSDに置き換えようとしているならば考えるべき余地はないが、例えば現在1TBを使っていて足りないという状況であれば2TBを買うにしても併せて3TBで使いたいと考えるだろう。

ここでは2つの論点で言及する。ひとつは容量、もうひとつは(SATA/AHCIとPCIe/NVMeを中心とした)速度である。

複数ディスクにまたがって利用する

複数のディスクを使う上ではまず、インストール先を別のディスクにするという方法がある。 Windowsの場合、ディスク構成を変更することができないため、複数のディスクがそのシステムに縛られることになってしまうが、簡単な方法だ。

もうひとつシンボリックリンクがある。 シンボリックリンクは透過的にファイルパスを変換する。

Windowsでシンボリックリンクを作成するにはコマンドしかない。

mklink [[/d] | [/h] | [/j]] <link> <target>

すべてがlnと逆という相変わらずの天の邪鬼。

  • シンボリックリンクがデフォルト、ハードリンクがオプション
  • sourceとdestが逆で、destの省略ができない
  • ファイルとディレクトリに区別がある
  • ジャンクションもこのコマンドで扱う
  • シンボリックリンクの削除は通常ではできず、rdコマンドが必要

例えばC:\Genshin Impactにインストールされた原神をDドライブへ移設した場合、

mklink C:\'Genshin Impact' D:\'Genshin Impact'

ゲームディスクとしてのSATA SSD

SATA/AHCIなSSDはPCIe/NVMeなSSDと比べ低速だか安価である。

これを単純な置き換えであると考えるのは正しくない。特にAMDプラットフォームでは決定的に違う。

現在、コンピュータ基盤の接続は(CPUとチップセット間を含め)ほぼ(あるいは全て)PCI Expressである。 Ryzen5000シリーズの場合は合計24レーンであり、16レーンがビデオカード用に提供され(一般的には16xスロットが2本あるが、合計で16レーン)、4レーンはチップセットとの間を接続し、4レーンをNVMe用に提供する。USBは内部接続につい言及がないが、このカウントから除外されるのだろう。 マザーボードはそれと関係なく様々なインターフェイスを提供するが、CPUとの接続が4レーン分のPCIeであるため、合計の帯域がこれに制限される。

従来、PCIeの帯域の問題に遭遇するのはかなり特殊なケースであったが、PCIe/NVMe SSDはPCIeの全帯域を使用するため、帯域に余裕が全くない。 なお、Ryzen Threadripperは64レーンを持っており、余裕がある。Intelもワークステーション用はある程度余裕があり、サーバー用はもっと余裕がある。

場合によってはそもそもスロット自体が排他である場合もあるが、基本的にPCIe/NVMeストレージを使う場合、SATAに割く帯域が残らない。 ディスク容量のためにディスク数を求めるのであれば、PCIeストレージを無策に載せるのはやめたほうが良い。

そもそものストレージの用途に応じてSATAが望ましいケースもあるということだ。 加えて言うならば、PCIe SSDは高速性を求めるために高価な作りをしていることが多い。そのため、基本的に製品価格も高めだ。

デスクトップなら「ストレージを増やす」という考えが効くはずだが、PCIe/NVMeストレージを使う場合、ラップトップのように「より大きな容量へ交換する」ことを強いられる。 このことを含めて計画性が必要である。

具体例として、私が使っているB550 AORUS ELITE (Rev1.0)とX570S UDで見てみる。

B550 AORUS ELITEは1スロットのM.2スロットを持つ。CPUにもよるが、Ryzen5000ならば4x4, 4x2, 3x4, 3x2, SATAに対応する。 そしてB550チップセットが1つのM.2スロット(3x4, 3x2, SATA)とSATAを4ポート提供する。 この場合、気にせず使えるのはM2A_CPUスロットだけであり、残りのM.2スロットとSATAは帯域を奪い合う。

X570S UDはCPUに接続された1スロットがあり、それ以外にチップセットが提供するM.2が2本、SATAが6本ある。 これらは帯域を共有するため、PCIe/NVMeを3本積むとそれだけで帯域が不足し、1本積んだだけでもUSBとの奪い合いが気になる。

この問題を正しく認識し判断するのは難しいが、SATAを使うことでストレージの帯域を「制限する」意義があるとも考えられる、ということだ。

では、こうしたことも踏まえてSATA SSD(M.2スロットでも良い)を使うのはどうだろうか。

当然ながら速度差は大きく、特に4x4接続のものと比較するならば最大で10倍を越える速度差になる。 だが、実際にゲームでは「ロードの時間が1/10になる」とはいかない。

これはそもそもWindowsのファイルI/Oの効率があまり良くない(というよりも、ファイルシステムとその実装があまりよくない)というのもあるし、ゲームのロードという行為自体にうまくストレージ速度を活かせていないというのもある。そして、ゲームにおいて「ディスクから読んでいる時間」はそこまで多くないケースが少なくないというのもある。 こうしたこともあり、ロード量がとても多いゲームでなければ体感倍になれば大成功というレベルで、SATAだとゲームとして成り立たない、みたいなことはあんまりない。

そのため、ものにもよるが割り切ってSATAディスクを使うという手もなくはない。システムディスクと分ければそれだけで速くもなる。

また、Radeon ReLiveやGeForce Experienceでゲームを録画しているという人は、録画データをSATA SSDにするという手もある。これが別ディスクに分けられるのはメリットが大きく、SATA SSDの書き込み速度でも問題は起きないだろう。

一方、DTMの話であれば、DTMにおけるロード時間は結構長く、頻度も割と高いため、集中して作業するためにもロードが速いディスクがあったほうが良く、その効果も大きい。容量確保のため複数のPCIe/NVMeディスクというのも、現実的に考えねばならないところだ。 妥協して部分的にM.2に置くということも考えられるのだが、Windowsのファイルアクセスに対しシンボリックリンクが十分に透過的でないという問題も相まって実際に分散させるのは難しい。

まとめ

  • 大容量のディスクに交換するだけでなく、シンボリックリンクを使って複数のディスクを統合して使う「増設」は有効なアイデア
  • 容量と増設重視でゲームそのものをSATA SSDに置くのはアリ
  • 録画している場合、録画データの保存先をSATA SSDにするのは非常に有効
  • DTMではできればPCIeストレージにしたい