メモリインターリーブ

  • URLをコピーしました!
目次

問題文

メモリインターリーブの説明として,適切なものはどれか。

ア 外部記憶装置を利用して,主記憶の物理容量を超えるメモリ空間をプログラムから利用可能にする。
イ 主記憶と磁気ディスク装置との間にバッファメモリを置いて,双方のアクセス速度の差を補う。
ウ 主記憶と入出力装置との間でCPUを介さずにデータ転送を行う。
エ 主記憶を複数のバンクに分けて,CPUからのアクセス要求を並列的に処理できるようにする。

解説

解答

石田先生

まずは問題のポイントを押さえましょう。

これは「メモリインターリーブ」という用語の意味を正しく理解しているかを問う問題です。

インターリーブ(Interleave)とは「交互に並べる」「交差させる」という意味で、コンピュータのメモリではアクセスを効率化するための仕組みを指します。

続いて、各選択肢について見ていきましょう。

ア(誤り)

これは仮想記憶(Virtual Memory)の説明です。

OSがハードディスクやSSDの一部を「仮想的な主記憶」として使い、メモリ不足を補う仕組みです。メモリインターリーブとは関係ありません。

イ(誤り)

これはキャッシュメモリ(Disk CacheやBuffer Cache)の説明です。

主記憶(RAM)とディスクは速度差が非常に大きいため、間にバッファを挟んで速度差を吸収します。これもメモリインターリーブではありません。

ウ(誤り)

これはDMA(Direct Memory Access)の説明です。

DMAは、CPUの手を借りずに周辺機器が直接メモリとやり取りする方式です。メモリインターリーブとは別物です。

エ(正解)

これがメモリインターリーブの正しい説明です。

イメージとしてはこのようになります。

  • 主記憶を「バンク」と呼ばれる複数の領域に分ける
  • CPUがメモリにアクセスする時、連続するアドレスが別々のバンクに割り振られる
  • こうすることで、1つのバンクがデータを準備している間に、別のバンクが次のアクセスを受け付けられる
  • 結果として、見かけ上アクセス速度が速くなる

例えば、2バンクで交互にアクセスする場合、

アドレス0 → バンク0
アドレス1 → バンク1
アドレス2 → バンク0
アドレス3 → バンク1

こうすると、バンク0がデータを準備している間に、バンク1にアクセスできるため、待ち時間を減らせます。

まとめ

  • メモリインターリーブ=メモリを複数のバンクに分け、交互にアクセスして並列処理を行う技術
  • 他の選択肢はすべて別の技術(仮想記憶、キャッシュメモリ、DMA)を説明している
学びをSNSで共有しよう
  • URLをコピーしました!
目次