【めもりいんたーりーぶ】

メモリインターリーブ とは?

最終更新:
💡 メモリへのアクセス先を分散し、効率よく使う方式

メモリのアドレスをバンクやチャネルなどに分散し、アクセスを重ねて効率よく使う方式。デュアルチャネルの例、容量や構成の条件、性能の確認方法を解説します。

📌 このページのポイント
メモリインターリーブ:アクセス先を分散連続するブロックを交互に配置する例チャネルAブロック0ブロック2チャネルBブロック1ブロック3Intelの対称デュアルチャネルの例では64バイトのキャッシュラインごとに交互配置単位・条件はコントローラーによる
チャネルは接続経路で、DRAM内部のバンクやメモリの枚数とは別です。先の応答を待つ間に別アクセスを進められる場合があり、効果は構成と処理で変わります。
ひよこ ひよこ
メモリインターリーブって、何を交互にするの?
ペンギン先生 ペンギン先生
メモリのアドレスを複数のバンクやチャネルなどへ分散し、アクセスを効率よく進める方式だよ。例えば一つのバンクが次のアクセスの準備をする間に、別のバンクを使うことができる。
ひよこ ひよこ
デュアルチャネルとは別の話?
ペンギン先生 ペンギン先生
チャネルはメモリとコントローラーを結ぶ経路で、バンクとは違う単位だよ。複数チャネルにもインターリーブを用いる例がある。チャネルを増やす構成と、アドレスの分散方法を区別して考えると分かりやすい。
ひよこ ひよこ
具体的には、どう分ける?
ペンギン先生 ペンギン先生
Intelの第13世代Coreの対称デュアルチャネルの説明では、64バイトのキャッシュラインごとにチャネルを交互にする。図はその考え方を単純化した例だよ。次の要求が別チャネルなら、先のデータが戻る前に送れる場合がある。
ひよこ ひよこ
メモリを2枚挿せば、必ず速くなる?
ペンギン先生 ペンギン先生
枚数だけでは決まらないよ。CPUやマザーボードの対応、挿すスロット、チャネルごとの容量などを確認する。IntelのFlex Memoryのように、容量が違う場合に一部をデュアル、残りをシングルとして使う方式もある。
ひよこ ひよこ
速さは何で確かめるの?
ペンギン先生 ペンギン先生
対象の処理で測るのが大切だ。アクセスのパターンや他の処理の制約によって効果は変わる。すべての読み出し時間が短くなる、ゲームが一定割合で速くなる、と一律には言えない。構成は機器の説明書に沿って確認しよう。
もっと詳しく知りたい人へ

バンクとメモリの枚数は同じ?

同じではありません。DRAM内部のバンク、コントローラーにつながるチャネル、取り付けるメモリモジュールは異なる単位です。何を何個使う方式かを、その機器の資料で確認します。

64バイトごとの交互配置は、どの機器でも同じ?

本文の64バイトは、参照したIntel第13世代Coreの対称デュアルチャネルの説明です。インターリーブの単位やアドレスの対応はコントローラーと設定によって変わります。図は一般的な全機器の配置を保証するものではありません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「メモリインターリーブ」って出てきたら「メモリへのアクセス先を分散し、効率よく使う方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Memory Interleaving」 = メモリへのアクセスを織り交ぜる
💬 interleaveは織り交ぜるという意味です。どの単位に分散するかは実装によって異なり、バンクとチャネルを同じものとして数えません。

参考資料

← 用語集にもどる