MPU(メモリ保護ユニット)とは?えむぴーゆー
MPU(メモリ保護ユニット)とは、MPU(Memory Protection Unit)は、アドレス範囲ごとに読み・書き・実行の権限を設定し、違反したアクセスで例外を発生させるハードウェア機構。アドレス変換を伴わないため、MMUを持たない小規模マイコンでもタスク間のメモリ破壊を検出して切り離せる。機能安全でいう区画分離の実装手段としても問われる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
MMUの無い世界では、あるタスクのポインタ暴走が他タスクの変数を静かに書き換え、症状は無関係な場所で何時間も後に出た。原因追跡に日単位の時間がかかるうえ、安全機能と一般機能が同じ空間に同居していれば、一般機能の不具合が安全機能を巻き込む。アドレス変換までは要らないが権限判定は欲しい——この要求に応えたのがMPUで、IEC 61508やISO 26262が求める区画分離の現実的な実装手段になっている。
具体例
Arm Cortex‑M4/M33はリージョン単位(8〜16個程度)で属性を設定でき、リンカスクリプトで同属性のセクションをまとめて配置し、コンテキストスイッチのたびに設定を切り替える。車載ECUでは安全度水準の高い制御タスクの領域を他タスクから書込み禁止にし、診断タスクの誤ったポインタを踏んだ瞬間に例外で捕まえる。
試験での引っ掛け
MMUと違いアドレス変換をしない点が肝心で、断片化の解消も、同じ番地を複数タスクへ別々に見せる仮想空間の分離もできない。保護と再配置を混同しないこと。さらに同じMPUという綴りがマイクロプロセッサ(Micro Processing Unit)も指すため、設問がメモリ管理の話か構成部品の話かで意味を決める。
関連用語
出た過去問
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1(IPA)
図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープは共有バス監視でキャッシュ一貫性を保つ
複数のプロセッサがそれぞれキャッシュを持って主記憶を共有すると、あるプロセッサが書き換えた内容が他方の古いキャッシュに残り、内容が食い違うおそれがある。そこで各キャッシュ制御部が共有バス上のアドレスやトランザクションを常時見張り、自分が保持している行に関わる書込みを検知したら無効化や更新を行う。この監視動作がバススヌープで、キャッシュコヒーレンシを保つ基本的な手法である。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2(IPA)
図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープはバス監視でキャッシュ整合性を保つ動作
複数のMPUがそれぞれキャッシュをもって主記憶を共有すると、あるMPUが書き換えたデータが他方のキャッシュに古いまま残るキャッシュコヒーレンシの問題が起きる。これを防ぐため、各キャッシュ制御回路が共有バス上のアドレスとアクセス種別を常時監視し、自分が保持する行に関係する書込みを見つけたら該当行を無効化または更新する。この監視動作をバススヌープ(スヌーピング)と呼ぶ。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10(IPA)
MPUがもつウェイト機能及びレディ機能の使い方として、適切なものはどれか。
正解:アクセス速度の遅いI/OデバイスとMPUを同期させる。
要点:ウェイト/レディはバスサイクルを延ばし低速機器と同期する
ウェイト機能とレディ機能は、バスサイクルを必要な分だけ引き延ばすための仕組みである。低速なI/Oデバイスやメモリがアクセスを完了できないうちはレディ信号を非アクティブに保ち、MPU側はウェイトサイクルを挿入して待機する。これにより速度の異なるデバイス同士をタイミング的に同期させ、確実にデータをやり取りできる。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問14(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ナノ秒で済む。
出典:令和6年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10(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の構成が最も短時間で済む。
出典・参考
公式シラバスの9 組込みシステムのハードウェア設計・製造 > 9-2 演算処理部の設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。