メモリのパフォーマンス
メモリのパフォーマンスは耐障害性,省電力という観点も有りますが,個人用PCの選定では
- 容量
- データ転送速度
- データ送信幅
の3点に着目するのが良いと思います.
▶ データ転送速度
チップ規格が「DDR4-4000」の場合,4000の部分がデータ転送速度4000MHzであることを表しています. DDR4メモリでは一度のメモリアクセスで64ビットずつのデータを転送するので,
\[4000\text{MHz} \times 8\text{byte} = 32,0000 \text{MB/s} = 32 \text{GB/s}\]32GB/秒の転送速度となります.
チップ規格/モジュール規格 | メモリクロック/バスクロック | データ転送速度 | モジュールのデータ転送速度 |
---|---|---|---|
DDR4-2400/PC4-19200 | 150/1200 MHz | 2400 MHz | 19.2GB/s |
DDR4-3200/PC4-25600 | 200/1600 MHz | 3200 MHz | 25.6GB/s |
DDR4-4622/PC4-34100 | 266/2311 MHz | 4622 MHz | 34.1GB/s |
- PC4はDDR4を意味
- メモリ表記として,通常 32GB 2Rx4 PC4-2133P-Rのように,容量,ランク,DDR規格,転送速度の順番でラベルが付与されてる
▶ データ転送幅
CPUや各種バス間で通信を行う際,DDR4では64ビットずつのデータを転送しますがこの64ビットがデータ転送幅になります. このデータ転送幅はマルチチャネルやマルチランクという仕組みを利用することで2倍や3倍にすることができます.
マルチチャネルとマルチランク
▶ チャネル
メモリモジュールへのアクセス経路をチャネルといいます.複数のチャネルが同時に動作(=マルチチャネル)することで,メモリの帯域幅が増加します.
マルチチャネルメモリの利点として
- 帯域幅の増加:複数のチャネルが同時に動作することで,メモリの帯域幅が増加し,データ転送速度が向上
- 並列処理:複数のチャネルが並行してデータを転送できるため,メモリ操作の並列処理が可能になり,システムのパフォーマンスが向上
- 効率性:各チャネルが個別にアクセスできるため,メモリリソースの競合が減少し,レイテンシが短縮
マルチチャネルメモリを実装するには,マザーボード,メモリコントローラー,およびメモリモジュールがマルチチャネル構成をサポートしている必要があります. また,メモリモジュールを適切なスロットにインストールし,BIOSやシステム設定でマルチチャネルモードを有効にする必要があります.
▶ ランク
メモリコントローラーがメモリ上のDRAMからデータを入出力する単位をランクと呼びます.1つのランクは64ビットの単位で入出力をします. ランクの種類としてシングルランク(1R),デュアルランク(2R),クアッドランク(4R)があります.メモリはDRAMチップの組み合わせで構成されていますが, シングルメモリでは72ビット分のDRAMチップが掲載されて居る一方,デュアルランクメモリでは1枚のメモリに144ビット分のDRAMチップが掲載されています.
サーバーにメモリを指すときにランクの双子葉数が多くなるような組み合わせをすることでアクセス精度が向上しますが, メモリコントローラーが扱えるランク数には制限がある点に注意が必要です.4Rのメモリをを使用することはシングルランクメモリ4枚指していることと同じため, スロット数が余っていてもメモリを最大枚数させないという問題が発生する可能性が有ります.
メモリ用語
▶ メモリスロット
- メモリスロットとはマザーボード上にあるメモリを差し込む場所のこと
- 個人利用を想定したパソコンは通常4スロットだが,サーバーでは数十スロットの場合もある
- DIMM (Dual In-line Memory Module) スロットが一般的なメモリスロットの1つ
▶ ECC
- ECCはError Correcting Codeの略語
- メモリ故障などに寄って1ビットの反転エラーが発生したときに検知・自動補正ができるように誤り訂正符号(ECC)と呼ばれるパリティ情報が付与されたメモリ
- メモリ故障が発生するとECCメモリではない場合,OSレベルの異常終了になってしまうが,ECCメモリの場合ではOSが以上を検知してアラートを出してくれる
- アラート発報後,通常終了を行いメモリを交換というアクションが可能
(注意:GitHub Accountが必要となります)