MPU(メモリ保護ユニット)とは?
MPU(メモリ保護ユニット)とは、アドレス範囲ごとに読み書き実行の権限を設定し、違反したアクセスで例外を発生させるハードウェア機構。仮想記憶を持たない小規模マイコンでも、タスク間のメモリ破壊を検出して遮断できる。機能安全での区画分離の手段としても問われる。
エンベデッドシステムスペシャリスト試験の過去問では5回出題されています(2016年度〜2024年度)。
えむぴーゆー
MPU(メモリ保護ユニット)の意味
アドレス範囲ごとに読み書き実行の権限を設定し、違反したアクセスで例外を発生させるハードウェア機構。仮想記憶を持たない小規模マイコンでも、タスク間のメモリ破壊を検出して遮断できる。機能安全での区画分離の手段としても問われる。
MPU(メモリ保護ユニット)の具体例
車載ECUで安全度水準の高い制御タスクの領域を他タスクから書込み禁止にしておき、診断用タスクがポインタを誤って踏んだ瞬間に例外で捕捉する。設定できる領域数は8〜16程度と少ないので、リンカで同じ属性のセクションをまとめて配置し、切替えはコンテキストスイッチ時に行う。
MPU(メモリ保護ユニット)は試験でどう引っ掛けられる?
MMUと違いアドレス変換をしない点が肝心。物理アドレスのまま権限だけを判定するので、断片化の解消や、同じ番地を複数タスクに見せる仮想アドレス空間の分離はできない。保護と再配置を混同しないこと。
MPU(メモリ保護ユニット)と関連する用語
MPU(メモリ保護ユニット)が出た過去問
図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープは共有バス監視でキャッシュ一貫性を保つ
複数のプロセッサがそれぞれキャッシュを持って主記憶を共有すると、あるプロセッサが書き換えた内容が他方の古いキャッシュに残り、内容が食い違うおそれがある。そこで各キャッシュ制御部が共有バス上のアドレスやトランザクションを常時見張り、自分が保持している行に関わる書込みを検知したら無効化や更新を行う。この監視動作がバススヌープで、キャッシュコヒーレンシを保つ基本的な手法である。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 am2 問1(IPA)図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープはバス監視でキャッシュ整合性を保つ動作
複数のMPUがそれぞれキャッシュをもって主記憶を共有すると、あるMPUが書き換えたデータが他方のキャッシュに古いまま残るキャッシュコヒーレンシの問題が起きる。これを防ぐため、各キャッシュ制御回路が共有バス上のアドレスとアクセス種別を常時監視し、自分が保持する行に関係する書込みを見つけたら該当行を無効化または更新する。この監視動作をバススヌープ(スヌーピング)と呼ぶ。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 am2 問2(IPA)MPUがもつウェイト機能及びレディ機能の使い方として、適切なものはどれか。
正解:アクセス速度の遅いI/OデバイスとMPUを同期させる。
要点:ウェイト/レディはバスサイクルを延ばし低速機器と同期する
ウェイト機能とレディ機能は、バスサイクルを必要な分だけ引き延ばすための仕組みである。低速なI/Oデバイスやメモリがアクセスを完了できないうちはレディ信号を非アクティブに保ち、MPU側はウェイトサイクルを挿入して待機する。これにより速度の異なるデバイス同士をタイミング的に同期させ、確実にデータをやり取りできる。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 am2 問10(IPA)内蔵ROM又は外部ROMに置いたプログラムを実行できるMPUがある。このMPUのバス幅、アクセスサイクル、クロック周波数の仕様を表に示す。このMPUで、外部RO…
正解:125
要点:32ビット幅なら4バイトを1アクセス2クロックで取得できる
外部ROMは8ビット幅なので4バイト命令の取得に4回のバスアクセスが必要で、1回4クロック、計16クロックを要する。16MHzでは1クロック62.5ナノ秒なので16クロックは1マイクロ秒となり、問題文の条件と一致する。内蔵ROMは32ビット幅なので1回のアクセスで4バイトを取得でき、2クロック=125ナノ秒で済む。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 am2 問14(IPA)WAITが入らないときには4クロックでメモリアクセスするMPUがある。メモリアクセスが最も速い組合せはどれか。
正解:クロック周波数16MHz、WAIT 3クロック
要点:アクセス時間は(基本クロック+WAIT)÷周波数で比べる
1回のメモリアクセス時間は、(4+WAITクロック数)÷クロック周波数で求まる。それぞれ計算すると、8MHz・0WAITは500ナノ秒、10MHz・1WAITは500ナノ秒、12.5MHz・2WAITは480ナノ秒、16MHz・3WAITは約437.5ナノ秒となる。周波数が高い分WAITが増えていても、16MHz・3WAITの構成が最も短時間で済む。
出典:令和6年度 秋期 エンベデッドシステムスペシャリスト試験 am2 問10(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。