忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【コンピュータシステム】ミスヒット時もCPUを止めない!「ノンブロッキング・キャッシュ」|情報処理問題1000本ノック

プロセッサ(CPU)の高速化技術。キャッシュメモリでデータ非存在(ミスヒット)が発生した際、メモリからの転送待ちで処理を停止させず、後続の命令フェッチやアクセスを継続する「ノンブロッキング・キャッシュ」の仕組みを攻略しましょう。

1. 【 問題 】:コンピュータシステム(プロセッサの動作制御・キャッシュシステム)

【 問題 】 CPUのキャッシュメモリシステムに関する記述です。データキャッシュへのアクセス時にキャッシュミスが発生した場合、主記憶(メインメモリ)からのデータ転送が完了するのを待たずに、命令キャッシュからの次命令のフェッチや、後続のヒットするメモリアクセスを並行して実行し続けるキャッシュ制御方式を何と呼ぶでしょうか?

(ア)ノンブロッキング・キャッシュ(Non-blocking Cache)
(イ)ライトスルー・キャッシュ(Write-through Cache)
(ウ)ダイレクトマッピング・キャッシュ(Direct Mapping Cache)
(エ)コヒーレンシ・キャッシュ(Coherency Cache)

2. 正解:

正解:(ア)ノンブロッキング・キャッシュ(Non-blocking Cache)

3. 解説:「遅いデータ到着を待たずに、次へ進む!」

ノンブロッキング・キャッシュ(Non-blocking Cache)は、キャッシュミスが発生した際にもCPUの実行パイプラインをブロック(停止)させないためのアーキテクチャです。
従来のブロッキング・キャッシュでは、ミスが発生すると主記憶からの遅いデータ読み出しが完了するまでCPU全体の処理がストップ(失速)してしまいました。ノンブロッキング方式では、「データ待ちをしている命令」だけを横に退避させ、関係のない後続命令のフェッチや実行(アウト・オブ・オーダー実行など)を止めることなく並行処理させます。

【ブロッキングとノンブロッキングの違い】 ← ココが試験のポイント!

方式ミス発生時のCPUの挙動メリット / デメリット
ブロッキング方式 主記憶からの転送が終わるまで処理を完全停止(待機)する。 回路がシンプル / パイプラインが頻繁にストールし低速。
ノンブロッキング方式 転送待ちの間も、後続命令のフェッチや実行を継続する。 パイプラインのストールを防ぎ超高速 / 制御回路が複雑。

1. 理解のコツ: 「ファミレスの注文(調理待ち)」に例えてみましょう。
ブロッキング方式:料理(データ)が届くまで、店員が次の客からの注文受け(命令フェッチ)もテーブル拭きも一切やめて立ち尽くす状態です。
ノンブロッキング方式:時間のかかる煮込み料理(キャッシュミス)の注文を受けた後、「料理が完成するまでの間に、隣のテーブルの注文を受けたり、伝票の計算(後続処理)をどんどん進めておく」という手際の良い対応です。

2. 試験対策の視点: コンピュータシステムの構成やパイプライン処理の応用領域で登場するプロセッサ用語です。
問題文に「キャッシュミス発生」「処理(アクセス)を待たない」「次の命令をフェッチ・実行」「ブロック(停止)させない」といった文脈があれば、即座にノンブロッキング・キャッシュを選択できるようにしましょう。
※選択肢の(イ)ライトスルーは書込み方式の分類、(ウ)ダイレクトマッピングは割り当て(マッピング)方式の分類であり、問題の軸が異なるため見抜くのは容易です。


4. まとめ

「キャッシュミスによるメモリ転送待ちが発生しても、CPUのパイプライン処理や後続命令のフェッチを停止させずに実行を続ける制御方式」。これがノンブロッキング・キャッシュです。パイプラインの遅延(ストール)を防ぐための高度なプロセッサ技術として覚えておきましょう!

PR