【システム構成】同時アクセスでスピードの限界を突破!「キャッシュのバンク分割」|情報処理問題1000本ノック
CPUがどれだけ高速になっても、キャッシュメモリへのアクセスが1列の渋滞を起こしては意味がありません。キャッシュを小分けにして並列処理する「バンク」の仕組みを攻略しましょう。
1. 【 問題 】:キャッシュメモリの高速化技術
【 問題 】 キャッシュメモリへのアクセスを高速化する手法において、キャッシュメモリ内部を同時に(並列に)アクセス可能な複数の独立した単位に分割し、それぞれが異なるアドレスへの読み書きを同時に処理できるようにしたとき、この分割されたメモリの単位を何と呼ぶでしょうか?
① セクター (Sector)
② ライン (Line)
③ バンク (Bank)
④ ページ (Page)
2. 正解:
正解: ③ バンク(Bank)
3. 解説:窓口を増やして「待ち時間」をゼロにする
CPUがマルチコア化し、同時にたくさんのデータをキャッシュから読み書きしようとすると、キャッシュのアクセスポート(出入り口)が1つしかない場合、順番待ち(衝突)が発生してしまいます。これを解決するのが「マルチバンク(バンク分割)」です。
・キャッシュ全体の容量を、例えば「バンク0」「バンク1」「バンク2」「バンク3」のように、4つの独立したエリア(バンク)に小分けに分割します。 ← ココが問題の正解!
・それぞれのバンクは独自の制御回路を持っているため、「コアAがバンク0からデータを読み出しながら、同時にコアBがバンク2にデータを書き込む」という並列アクセスが可能になります。
※このように、連続するアドレスを異なるバンクに割り当て、順番にズラしながら超高速で並列アクセスする主記憶側の技術を「メモリインターリーブ」と呼び、概念として非常に深く繋がっています。
★ ① セクター:ハードディスク(HDD)などの磁気ディスクにおいて、データを読み書きする際の最小の物理的な単位です。
★ ② ライン(ブロック):キャッシュメモリと主記憶との間で、データをまとめて転送する際の基本単位のことです。
★ ④ ページ:仮想記憶(バーチャルメモリ)において、主記憶と磁気ディスクの間でデータを入れ替える(ページング)際の固定長の単位のことです。
1. 理解のコツ: 「銀行(Bank)の窓口」をイメージしてください。大きくて高性能な金庫(キャッシュ)が1つあっても、窓口(アクセスポート)が1つしかなければ、客(CPUの各コア)は大行列を作ってしまいます。そこで、金庫の区画を物理的に4つの窓口(バンク)に分割し、4人が同時に手続き(アクセス)できるようにしたのです。この分割された個々の窓口の単位がバンクです。
2. 試験対策の視点: 「同時にアクセス可能」「複数の単位に分割」「その単位」というフレーズが来たら「バンク(マルチバンク)」です。基本情報や応用情報の午前試験では、コンピュータのアーキテクチャ(プロセッサの高速化技法)として、前述の「セットアソシアティブ」などと組み合わせて出題されることが多い、上級者向けの重要用語です。
4. まとめ
「キャッシュメモリを物理的に複数に小分けにし、データの衝突を防いで並列アクセスを可能にする独立ユニット」。これがバンクです。現在の超高性能なCPUでは、このマルチバンク構造をキャッシュ(L1やL2)に採用することで、マルチコアCPUが吐き出す膨大なデータ要求をスピードを落とさずにさばき切る工夫が施されています。