【めもりいんたーりーぶ】
メモリインターリーブ とは?
最終更新:
💡 メモリへのアクセス先を分散し、効率よく使う方式
メモリのアドレスをバンクやチャネルなどに分散し、アクセスを重ねて効率よく使う方式。デュアルチャネルの例、容量や構成の条件、性能の確認方法を解説します。
📌 このページのポイント
- アドレスを複数のバンクやチャネルなどに分散する
- 一方の準備や応答を待つ間に、別のアクセスを進められる場合がある
- インターリーブの単位と条件はメモリコントローラーによる
- メモリの枚数だけで性能の向上率は決まらない
メモリインターリーブって、何を交互にするの?
メモリのアドレスを複数のバンクやチャネルなどへ分散し、アクセスを効率よく進める方式だよ。例えば一つのバンクが次のアクセスの準備をする間に、別のバンクを使うことができる。
デュアルチャネルとは別の話?
チャネルはメモリとコントローラーを結ぶ経路で、バンクとは違う単位だよ。複数チャネルにもインターリーブを用いる例がある。チャネルを増やす構成と、アドレスの分散方法を区別して考えると分かりやすい。
具体的には、どう分ける?
メモリを2枚挿せば、必ず速くなる?
速さは何で確かめるの?
対象の処理で測るのが大切だ。アクセスのパターンや他の処理の制約によって効果は変わる。すべての読み出し時間が短くなる、ゲームが一定割合で速くなる、と一律には言えない。構成は機器の説明書に沿って確認しよう。
もっと詳しく知りたい人へ
バンクとメモリの枚数は同じ?
同じではありません。DRAM内部のバンク、コントローラーにつながるチャネル、取り付けるメモリモジュールは異なる単位です。何を何個使う方式かを、その機器の資料で確認します。
64バイトごとの交互配置は、どの機器でも同じ?
本文の64バイトは、参照したIntel第13世代Coreの対称デュアルチャネルの説明です。インターリーブの単位やアドレスの対応はコントローラーと設定によって変わります。図は一般的な全機器の配置を保証するものではありません。
まとめ:ざっくりこれだけ覚えればOK!
「メモリインターリーブ」って出てきたら「メモリへのアクセス先を分散し、効率よく使う方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Memory Interleaving」 = メモリへのアクセスを織り交ぜる
💬 interleaveは織り交ぜるという意味です。どの単位に分散するかは実装によって異なり、バンクとチャネルを同じものとして数えません。