基本情報技術者 2023年 科目A 問03
問題文
コンピュータの高速化技術の一つであるメモリインタリーブに関する記述として、適切なものはどれか。
選択肢
ア:主記憶と入出力装置、又は主記憶同士のデータの受渡しをCPU経由でなく直接やり取りする方式
イ:主記憶にデータを送り出す際に、データをキャッシュに書き込み、キャッシュがあふれたときに主記憶へ書き込む方式
ウ:主記憶のデータの一部をキャッシュにコピーすることによって、レジスタと主記憶とのアクセス速度の差を縮める方式
エ:主記憶を複数の独立して動作するグループに分けて、各グループに並列にアクセスする方式(正解)
🔒 解説は解答すると表示されます
メモリインタリーブ【午前解説】
正解の理由
メモリインタリーブは、主記憶(DRAMなど)を複数の独立した「バンク」に分割し、同時並列にアクセスすることで実効的な帯域を増やし待ち時間の影響を低減する方式です。したがって選択肢の中でこの説明に一致するのは、主記憶を複数グループに分け並列アクセスする方式を示す エ です。複数バンクへ順次アクセスを振り分けることで、連続したメモリアクセスのスループットが向上します。
解法ステップ
- 「並列」「分割」「バンク」「グループ」などの語を探す。これらはインタリーブの典型語句です。
- 「キャッシュ」や「CPU経由で直接やり取り」などの文言がある選択肢は、インタリーブの説明ではないと判定する。
- インタリーブの効果(帯域向上、並列化)と選択肢の記述を照らし合わせ、最も合致するものを選ぶ。
選択肢別の誤答解説
- ア: 主記憶と入出力装置又は主記憶同士のデータ受渡しをCPU経由でなく直接行う方式を述べています。これはDMAやメモリ間ダイレクト転送(例えばバスマスタ転送)に関する説明で、インタリーブではありません。
- イ: データをキャッシュに書き込み、キャッシュがあふれたときに主記憶へ書き込む方式はライトバック(write-back)キャッシュの説明です。インタリーブとは無関係です。
- ウ: 主記憶のデータの一部をキャッシュにコピーしてアクセス速度差を埋める方式はキャッシュ(キャッシュメモリ)の説明です。これもインタリーブではありません。
- エ: 主記憶を複数の独立したグループ(バンク)に分けて並列にアクセスする記述は、メモリインタリーブの定義そのものであり、正しい説明です。
よくある誤解
- 誤解1: 「インタリーブはキャッシュの機能である」
→ キャッシュは主記憶とCPU間の速度差を埋めるための高速小容量メモリで、インタリーブは主記憶自体を複数バンクで並列化する技術で目的が異なります。 - 誤解2: 「インタリーブはレイテンシ(単発アクセス時間)を短縮する」
→ インタリーブは主にスループット(帯域)向上を目的とします。単発のアクセスレイテンシは必ずしも短縮されませんが、複数アクセスの重畳による有効性は高まります。
補足コラム
- 基本動作例: 4ウェイ(4バンク)インタリーブでは、連続するアドレスをバンク0→1→2→3へ順に割り当てることで、次のアクセスが別バンクに行われていれば並列に処理できます。
バンク番号の計算は典型的に次のようになります(ブロック単位での割当てを考慮):
- ローオーダ/ハイオーダインタリーブ: 低位ビットで分配する方式(低位インタリーブ)はバースト型アクセスに有利、逆に高位ビットで分配する方式(高位インタリーブ)は大きなページ単位の分配に向くなど用途により使い分けられます。
- 実機名で言えば、複数チャンネルや複数ランクを活用するマザーボードのメモリ設計もインタリーブの一種として理解できます。
コード例: バンク番号を求める簡単な実装
def bank_of(address, block_size, banks):
return (address // block_size) % banks
# 例: 4バンク、ブロックサイズ=64バイト
print(bank_of(0, 64, 4)) # 0
print(bank_of(64, 64, 4)) # 1
print(bank_of(128, 64, 4)) # 2
FAQ
Q. インタリーブとデュアルチャネル(メモリチャネル)は同じですか?
A. 本質的には似た目的(帯域の向上)を持ちますが、デュアルチャネルはメモリコントローラとDIMM間のパスを増やす仕組みで、インタリーブは主記憶をバンク単位で並列化する論理的/物理的手法です。実装によっては両者が組み合わされます。
A. 本質的には似た目的(帯域の向上)を持ちますが、デュアルチャネルはメモリコントローラとDIMM間のパスを増やす仕組みで、インタリーブは主記憶をバンク単位で並列化する論理的/物理的手法です。実装によっては両者が組み合わされます。
Q. キャッシュがあるとインタリーブの効果は薄れる?
A. キャッシュが高いヒット率を示すワークロードでは主記憶へのアクセス自体が減るためインタリーブの効果は相対的に小さくなります。一方、大容量データのストリーミング処理などキャッシュ効率が悪い場面ではインタリーブの恩恵が大きいです。
A. キャッシュが高いヒット率を示すワークロードでは主記憶へのアクセス自体が減るためインタリーブの効果は相対的に小さくなります。一方、大容量データのストリーミング処理などキャッシュ効率が悪い場面ではインタリーブの恩恵が大きいです。
Q. インタリーブは何バンクが最適?
A. ワークロードやコスト・設計制約に依存します。一般的には2〜8バンク程度が多く、増やせば増やすほどハード設計やタイミング調整が複雑になります。
A. ワークロードやコスト・設計制約に依存します。一般的には2〜8バンク程度が多く、増やせば増やすほどハード設計やタイミング調整が複雑になります。
関連キーワード: メモリバンク、バーストアクセス、帯域幅、メモリコントローラ、バンク間並列化、レイテンシ、メモリアロケーション

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

