CPUとDRAMの「メモリチャネル」とは何か?

general
Author

Ryo Nakagami

Published

2025-12-23

Modified

2025-12-24

メモリチャネルとは?

Definition 1 メモリチャネル

  • CPUとメインメモリ(RAM)間の64bit データ伝送経路(物理バス)の数のこと
  • チャネル数が多ければ多いほど,一度に転送できるデータ量が増え,結果的にシステムのパフォーマンスが向上
  • 扱えるチャネル数はCPU側で決まる

CPUがメモリにアクセスする際に,CPU上のメモリコントローラを介して,このチャネルを通してデータの読み書きを行います. 複数のチャネルが同時に動作(=マルチチャネル)することで,メモリの帯域幅が増加します.

Question: メモリスロットとは違うのか?

  • Answer: メモリスロット数 ≠ メモリチャネル数
  • メモリチャネルはCPU内蔵メモリコントローラ(IMC)が持つ独立した通信路
  • メモリスロットとはDIMMを挿すための物理的な差し込み口

Question: どのメモリがどのチャネルを利用しているのか

どのメモリがどのチャネルを使用しているかは dmidecode で確認することが出来ます

$ sudo dmidecode -t memory | less
...
Handle 0x0013, DMI type 17, 92 bytes
Memory Device
    Array Handle: 0x000E
    Error Information Handle: 0x0012
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 32 GB
    Form Factor: DIMM
    Set: None
    Locator: DIMMA2
    Bank Locator: P0 CHANNEL A
    Type: DDR5
    Type Detail: Synchronous Unbuffered (Unregistered)
    Speed: 4800 MT/s
    Manufacturer: A-DATA Technology
    Serial Number: 00xxxxxx
    Asset Tag: Not Specified
    Part Number: AD5U480032G-B       
    Rank: 2
    Configured Memory Speed: 4800 MT/s
  ...

上記から以下の情報を読み取ることが出来ます

dmidecode項目 表示例 何を意味するか
Bank Locator P0 CHANNEL A CPUソケット0 (P0)メモリチャネルA に接続
Locator DIMMA2 マザーボード上の 物理メモリスロット名
Total Width 64 bits DIMM全体のバス幅
Data Width 64 bits CPUから見える 有効データ幅
Rank 2 Dual Rank DIMM(1枚のDIMM内に2 Rank)
Type DDR5 メモリ世代(DDR5)
Speed 4800 MT/s メモリ転送レート(メガトランスファ/秒)
Configured Memory Speed 4800 MT/s 実際に動作している速度
Form Factor DIMM / SODIMM モジュール形状
Memory Technology DRAM 揮発性メモリ

ランクとは?

Definition 2 ランク

上記のメモリは DIMM となっています.DIMMとは Dual Inline Memory Moduleの略で,複数のDRAMチップをプリント基板上に搭載したメモリモジュールのことです. DIMM内のDRAMチップのうち,メモリコントローラとのアクセスに用いられるアドレス・ラインを共有し,同時に選択される DRAM チップの集合を Rank(ランク)と呼びます.

1つのランクは64ビットの単位で入出力をします.1つのメモリチャネルが64 bitであることに対応しており, 1 Rank がちょうど 1 メモリチャネルを占有して通信する構造になっています.

そのため,

  • 1 チャネルあたり同時にアクセスできる Rank は 1 つのみ
  • Dual Rank DIMM では,Rank 0 と Rank 1 を 時間的に切り替えて使用する

という動作になります.

DDR5 と サブチャネル

DDR RDIMMモジュール

「DDR5メモリは1枚でデュアルチャネル」という言葉をよく耳にしますが,たしかに標準のDDR5モジュールは 2 つの独立型 32 bit サブチャネルを備えています. これはDDR5が 1つの64 bitメモリチャネルを内部的に分けて使用することを意味します.

つまり,

  • DDR5は「メモリバス幅を広げた」のではなく64bit バスを 2 つの 32bit に分割して“使い勝手を良くしただけで,1つのDDR5メモリで2つのCPUメモリチャネルを専有するわけではない
  • DDR5 モジュールは,CPU からは 64bit 幅のメモリチャネルとして接続されているが,DIMM 内部ではこの 64bit データ経路が 2 つの独立した 32bit サブチャネルとして論理的に分割 されているだけ
  • デュアルチャネルはあくまでDIMMの中の話
CPU メモリチャネル(64bit)

        ├─ Sub-channel A : 32bit
        └─ Sub-channel B : 32bit
Noteimage図ではなぜ40 bitなのか?
  • ECCメモリを用いた例のため(Error Correcting Code)
  • ECCメモリは,メモリ故障などに起因して 1 bitの反転エラーが発生したときに,それを検知・自動補正ができるようにするための誤り訂正符号(ECC)と呼ばれるパリティ情報が付与されたメモリ
    • メモリ故障が発生するとECCメモリではない場合,OSレベルの異常終了になってしまうが,ECCメモリの場合ではOSが以上を検知してアラートを出してくれる
    • アラート発報後,通常終了を行いメモリを交換というアクションが可能
  • 40 bit = 32 data bit + 8 ECC bit

Example 1 (AMD Ryzen Threadripper PRO 9975Wと理論メモリ帯域)

公式仕様を確認すると

  • メモリ規格:DDR5 RDIMM
  • メモリチャネル数:8 チャネル
  • 最大転送レート:6400 MT/s

まず1チャネルあたりのメモリ帯域は

\[ 6,400 \operatorname{MT/s} \time 64 \operatorname{bits} = 51,200 \operatorname{MB/s} \]

これを合計 8 チャネルで使用できるとすると

\[ 51,200 \operatorname{MB/s} \times 8 = 409.6 \operatorname{GB/s} \]


Appendix: メモリテクノロジー

観点 SRAM DRAM
名称 static random access memory dynamic random access memory
特徴 速度 容量・SRAMより安価
どこにある? CPUの中 CPUの外
データサイエンス/数値計算 キャッシュヒット率が重要 帯域・チャネル数が重要

random accessとは?

  • 磁気テープ装置は順を追ってしか読み書きできない
  • RAMでは,どの部分を読み出すにもかかる時間は同じ

DRAMはなぜSRAMよりも容量が大きいのか?

  • 1ビットあたりの回路が極めて小さい
  • 同じシリコン面積ならDRAMの方が圧倒的に多くのビットを実装できる
  • ビットあたりのトランジスタもDRAMは1ビットあたり1トランジスタ,SRAMは1ビットあたり6トランジスタを必要 → 製造コスト・歩留まりの面でもDRAMが有利

Dynamic vs static

DRAMはキャパシタに電荷を蓄えることで情報を保持します.電荷は時間とともに漏れるため,一定周期でのリフレッシュ(再書き込み) = Dynamicが必要となります. 一方,SRAMは電源が供給されている限り状態を保持できるため,このリフレッシュが不要のため,静的 = static と呼ばれます.

メモリテクノロジー別アクセス時間・コストテーブル

種類 代表例 代表的アクセス時間(レイテンシ) 1GiBあたりのコスト感
(2012年)
主な用途
SRAM CPU L1/L2/L3 Cache 0.5〜2.5 ns 500 ~ 1,000ドル / GiB キャッシュ,レジスタ
DRAM DDR4 / DDR5 50〜70 ns 10 ~ 20ドル / GiB メインメモリ
フラッシュ半導体メモリ NAND(SSD, NVMe) 50〜500 µs 0.75 ~ 1ドル / GiB ストレージ(高速)
磁気ディスク HDD 5〜20 ms 0.05 ~ 0.1ドル / GiB 大容量保存