IPA過去問ドリル

平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2

テクノロジ/コンピュータ構成要素

図に示すマルチプロセッサシステムにおいて,各 MPU のキャッシュメモリの内容を正しく保つために,共有する主記憶の内容が変化したかどうかを監視する動作はどれか。

平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2の図

出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2

正解:イ

解説

図に示すマルチプロセッサシステムでは,MPU1 と MPU2 がそれぞれ専用のキャッシュメモリを持ちながら,共有の主記憶をバスを介して利用しています。この構成では,あるプロセッサが自分のキャッシュ上のデータを書き換えても,他のプロセッサのキャッシュには反映されず,主記憶やキャッシュの内容に不整合(キャッシュコヒーレンシ問題)が生じるおそれがあります。これを防ぐために,各プロセッサ(のキャッシュコントローラ)がバス上の全ての書込みトランザクションを常時監視し,自分のキャッシュにある該当データが他のプロセッサによって書き換えられていないかを検知する仕組みが,バススヌープです。

選択肢ごとの解説

  • 誤り。データハザードは,パイプライン処理において命令間のデータ依存関係によって生じる問題であり,複数プロセッサ間のキャッシュの内容を正しく保つための監視動作とは異なります。
  • 正しい。バススヌープは,各プロセッサのキャッシュコントローラがバス上のトランザクションを監視し,共有する主記憶の内容が他のプロセッサによって変化したかどうかを検知することによって,各キャッシュメモリの内容を正しく(整合性を保って)維持する仕組みです。
  • 誤り。ライトスルーは,キャッシュへの書込みと同時に主記憶にも書き込むことでキャッシュと主記憶の内容を一致させる方式であり,バスを監視して他プロセッサの書込みを検知する動作そのものではありません。
  • 誤り。ライトバックは,キャッシュへの書込み時には主記憶を更新せず,後でキャッシュがフラッシュされるときにまとめて主記憶に反映する方式であり,バスを監視して主記憶の内容変化を検知する動作ではありません。
エンベデッドシステムスペシャリストの過去問を演習モードで解く