(57)【特許請求の範囲】
【請求項１】
第１のプログラム及び第２のプログラムを切り替えて実行可能であって、前記第１のプログラムによる第１のアクセス先アドレス情報を含むアクセス要求を出力するとともに、前記第１のプログラムによる前記第２のプログラムの呼び出しに起因した前記第１のプログラムから前記第２のプログラムへの実行プログラムの切り替えに際して、第２のアクセス先アドレス情報を含むチェック要求を出力する命令実行部と、
前記命令実行部で実行されるプログラムによるアクセス可否を指定する保護情報を記憶する保護情報記憶部と、
前記第１のプログラムに対応して前記保護情報記憶部に設定された前記保護情報に基づいて、前記第１のアクセス先アドレス情報を含む前記アクセス要求が違反であるか否かを検出する保護違反検出部と、
前記第１のプログラムによる前記アクセス要求の違反検出のために前記保護情報記憶部に設定された前記保護情報に基づいて、前記第２のアクセス先アドレス情報を含む前記チェック要求が、前記第１のプログラムに対する保護設定に適合するものであるかをチェックする保護設定チェック部と、
を備える情報処理装置。
【請求項２】
前記保護違反検出部に含まれる前記保護情報と前記第１のアクセス先アドレス情報を照合する第１の照合回路、及び前記保護設定チェック部に含まれる前記保護情報と前記第２のアクセス先アドレス情報を照合する第２の照合回路が、前記命令実行部とは独立したハードウェアとして構成されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保護違反検出部に対して、前記アクセス要求に含まれる前記第１のアクセス先アドレス情報又は前記チェック要求に含まれる前記第２のアクセス先アドレス情報を選択的に供給するセレクタ回路をさらに備え、
前記第２の照合回路が前記第１の照合回路と共通化されていることを特徴とする、請求項２に記載の情報処理装置。
【請求項４】
前記第２のアクセス先アドレス情報は、呼び出し先である前記第２のプログラムを介して前記第１のプログラムが間接的にアクセスを要求するアドレスの指定を含む、請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第２のアクセス先アドレス情報は、前記呼び出しの引数に指定される、請求項４に記載の情報処理装置。
【請求項６】
情報処理装置におけるプログラム実行制御方法であって、
前記情報処理装置は、命令実行部と、前記命令実行部で実行されるプログラムによるアクセス可否を指定するための保護情報を記憶する保護情報記憶部とを備え、
前記命令実行部が第１のプログラムを実行中である場合に、前記情報処理装置が、前記命令実行部から出力される第１のアクセス先アドレス情報を含むアクセス要求が違反であるか否かを、前記第１のプログラムに対応して前記保護情報記憶部に設定された前記保護情報に基づいて検出し、
前記第１のプログラムによる前記第２のプログラムの呼び出しに起因して前記第１のプログラムから前記第２のプログラムへ実行プログラムの切り替えを行う場合に、前記情報処理装置が、前記命令実行部から出力される第２のアクセス先アドレス情報を含むチェック要求が、前記第１のプログラムに対する保護設定に適合するものであるか否かを、前記第１のプログラムによる前記アクセス要求の違反検出のために前記保護情報記憶部に設定された前記保護情報に基づいてチェックし、
前記チェック要求が前記第１のプログラムに対する保護設定に適合するものであると判定された場合に、前記命令実行部が、前記第１のプログラムによる呼び出しに応じて前記第２のプログラムを実行する、プログラム実行制御方法。
【請求項７】
前記チェック要求に対するチェック完了後に、前記情報処理装置が、前記保護情報記憶部に記憶される前記保護情報を前記第２のプログラムに対応した設定に変更する、請求項６に記載のプログラム実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムを切り替えて実行する情報処理装置におけるプログラム実行制御技術に関する。
【背景技術】
【０００２】
不正なメモリアクセスからメモリを保護する技術、いわゆるメモリ保護技術が知られている。従来知られているメモリ保護技術は、ＣＰＵ（Central Processing Unit）等のプログラムを実行する装置からメモリへのアクセスが行なわれる際に、ＣＰＵ等から出力されるメモリアクセス要求に含まれているアクセス先アドレス情報を、プログラムによるアクセスが許可されるメモリ領域を表すメモリ保護情報と比較照合することにより、アクセス要求の妥当性を検証するものである。これにより、アクセスが許可されていないメモリ領域への不正なメモリアクセスの検出が可能となり、不正なメモリアクセスからメモリを保護することができる。また、メモリ保護と同様の技術によって、クロック、リセット装置、割り込みコントローラ等の周辺装置に対するＣＰＵ等の命令実行装置による不正なアクセスを防止する周辺装置保護も可能である（例えば特許文献１を参照）。
【０００３】
例えば、特許文献２は、情報処理装置におけるメモリ保護のためのアドレス比較方式を開示している。具体的に述べると、特許文献２に開示されたアドレス比較方式は、プログラムによってアクセスされるアクセス先アドレスが、アクセスが許可された部分メモリ空間の範囲内（アクセス許可範囲内）であるか否かを、アクセス許可範囲の下限アドレス及び上限アドレスとアクセス先アドレスを比較することによって判定する。そして、アクセス先アドレスがアクセス許可範囲内にあるときのみ、当該部分メモリ空間へのアクセスが許可される。
【０００４】
しかしながら、メモリアクセスや周辺装置へのアクセスが発生した時点で個々のアクセスを許可するか否かを制御する上述した保護技術は、以下に述べる問題を有する。当該問題は、あるアプリケーションプログラム１が他のアプリケーションプログラム２（サブプログラム、関数等）を呼び出す場合、例えば、あるアプリケーションプログラム１が、通信インタフェースを動作させるためのドライバプログラムを呼び出してデータ転送を依頼する場合に発生する。
【０００５】
すなわち、アプリケーションプログラム１の誤動作が発生した場合、及びアプリケーションプログラム１が悪意のある有害プログラムである場合等には、セキュリティに関する情報を不正に外部に転送すること、外部からデータを受信して他のプログラム又はオペレーティングシステム（ＯＳ）が利用しているメモリ領域を不正に上書きすること等の不正な処理が実行される可能性がある。この不正なアプリケーションプログラム１が、セキュリティに関する情報が記録されたメモリ領域や他のプログラム又はＯＳが使用するメモリ領域に対して直接的にアクセスを試みた場合は、上述したメモリ保護技術によって不正なメモリアクセスを禁止することが期待できる。しかしながら、不正なアプリケーションプログラム１が、通信用のデバイスドライバ等の他のアプリケーションプログラム２を経由して間接的にメモリアクセスを行う場合、上述したメモリ保護技術では、実質的に十分なメモリ保護を行なうことは困難である。例えば、不正なアプリケーションプログラム１によって呼び出されるアプリケーションプログラム２が、アプリケーションプログラム１に比べて広範囲なメモリ領域へのアクセスを許可されている場合に、メモリ保護が不十分となるおそれがある。つまり、アプリケーションプログラム２が呼び出される際の引数に、アプリケーションプログラム１のアクセスが禁止されアプリケーションプログラム２のアクセスが許可されたメモリ領域の指定が含まれ、アプリケーションプログラム２がそのメモリ領域にアクセスする場合、上述したメモリ保護技術では十分なメモリ保護を行なえない可能性がある。アプリケーションプログラム２は許可されたメモリ領域に対してメモリアクセスを行なっているから、アプリケーションプログラム２による実際のメモリアクセスが発生した時点では、これを不正アクセスとして検出することが困難であるためである。
【０００６】
そこで、上述したプログラム呼び出しに関するメモリ保護上の問題点に対応するため、アプリケーションプログラム２の呼び出し時に引数で指定されたアドレスが、呼び出し元のアプリケーションプログラム１にとって正当なものであるか、つまり、アプリケーションプログラム１によるアクセスが許可されたメモリ領域に関するものであるかを、アプリケーションプログラム２の実行を開始するに際して、ＯＳ又はアプリケーションプログラム２によってチェックすることが行なわれる。
【０００７】
このチェックは、例えば、アプリケーションプログラム２の呼び出しにＯＳを介在させることにより行なわれる。具体的には、プログラム呼び出しが発生した際に、ＯＳが、呼出し元のアプリケーションプログラム１から渡された引数に含まれるアクセス先に対するアプリケーションプログラム１のアクセス権限をチェックし、アクセス権限の正当性が確認された場合にのみアプリケーションプログラム２の実行を開始する。
【特許文献１】特表２００６−５２３３４７号公報
【特許文献２】特開昭６１−７５４４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
プログラム呼び出しが発生した際に、ＯＳ又は呼び出し先のアプリケーションプログラム２といった命令実行装置で実行されるソフトウェアが主体となって、呼出し元のアプリケーションプログラム１から渡された引数に含まれるアクセス先に対するアプリケーションプログラム１のアクセス権限をチェックするためには、以下の手順を実行する必要がある。すなわち、ＯＳ又はアプリケーションプログラム２が、メモリ保護情報をＣＰＵ内のレジスタなどの記憶部に読み出したうえ、読み出されたメモリ保護情報の設定値と引数の内容とを比較する演算を実行する必要がある。さらに、プログラムのアクセス可能なメモリ領域は、連続した１つのメモリ領域とは限らず、むしろ分割された複数のメモリ領域についてアクセス許可がなされる場合が多い。複数のメモリ領域についてアクセス許可がなされている場合は、メモリ保護情報には、複数のメモリ領域に関する複数の設定値が含まれるため、これら複数の設定値に関して順次チェックする必要がある。このため、メモリ保護の設定数の増大に比例して、チェック処理に要する時間も増大してしまう。
【０００９】
つまり、ＣＰＵ等の命令実行装置で実行されるソフトウェアが主体となって、呼び出し元プログラムのアクセス権限をチェックする方法では、チェック処理に要する時間が増大するという問題がある。
【課題を解決するための手段】
【００１０】
本発明の第１の態様にかかる情報処理装置は、命令実行部、保護情報記憶部、保護違反検出部、及び保護設定チェック部を有する。前記命令実行部は、第１のプログラム及び第２のプログラムを切り替えて実行可能であって、前記第１のプログラムによる第１のアクセス先アドレス情報を含むアクセス要求を出力するとともに、前記第１のプログラムによる前記第２のプログラムの呼び出しに起因した前記第１のプログラムから前記第２のプログラムへの実行プログラムの切り替えに際して、第２のアクセス先アドレス情報を含むチェック要求を出力する。前記保護情報記憶部は、前記命令実行部で実行されるプログラムによるアクセス可否を指定する保護情報を記憶する。前記保護違反検出部は、前記第１のプログラムに対応して前記保護情報記憶部に設定された前記保護情報に基づいて、前記第１のアクセス先アドレス情報を含む前記アクセス要求が違反であるか否かを検出する。そして、保護設定チェック部は、前記第１のプログラムによる前記アクセス要求の違反検出のために前記保護情報記憶部に設定された前記保護情報に基づいて、前記第２のアクセス先アドレス情報を含む前記チェック要求が、前記第１のプログラムに対する保護設定に適合するものであるかをチェックする。
【００１１】
上述したように、本発明の第１の態様にかかる情報処理装置は、前記第１のプログラムによる前記第２のプログラムの呼び出しに起因した前記第１のプログラムから前記第２のプログラムへの実行プログラムの切り替えに際して、前記命令実行部が第２のアクセス先アドレス情報を含むチェック要求を出力する。さらに、このチェック要求に応じて、前記保護設定チェック部が、前記第１のプログラムによる前記アクセス要求の違反検出のために前記保護情報記憶部に設定された前記保護情報に基づいて、前記チェック要求が、前記第１のプログラムに対する保護設定に適合するものであるかをチェックするよう構成されている。これにより、呼び出し元プログラムのアクセス権限をチェックするために命令実行部に保護情報を読み出す必要がなく、第２のプログラム呼び出しの妥当性を効率よく検証できる。
【００１２】
また、前記保護設定チェック部は、呼び出し元である第１のプログラムによるアクセス要求の違反検出のために前記保護情報記憶部に既に設定済みの前記保護情報をそのまま利用して、第２のアクセス先アドレス情報に関するチェックを行うことができる。つまり、第２のアクセス先アドレス情報に関するチェックに際して、新たな保護情報の読み出し処理及び書き込み処理を特に必要としないため、チェック処理を一層効率良く行なうことができる。
【発明の効果】
【００１３】
本発明により、プログラムの呼び出しに起因した実行プログラムの切り替えに際して、呼び出し先プログラムの実行の妥当性をメモリ保護又は周辺装置保護の観点から効率良く検証することができる。
【発明を実施するための最良の形態】
【００１４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１５】
なお、以下に述べる発明の実施の形態では、ＣＰＵ（Central Processing Unit）の用語は、命令フェッチ機能、命令デコード機能、命令実行機能を有する処理ユニットを指すものとして使用される。
【００１６】
＜発明の実施の形態１＞
本実施の形態にかかる情報処理装置１は、メモリ保護機能を有する。図１は、情報処理装置１の主要な部分の構成を示すブロック図である。図１において、ＣＰＵ１０は、メモリ１３から命令を読み出し、読み出した命令をデコードし、デコードされた命令に応じた処理、例えば、算術演算及び論理演算等の演算処理、並びにメモリ１３に対するリードアクセス及びライトアクセスを実行する。さらに、本実施の形態にかかるＣＰＵ１０は、関数呼び出し又はサブプログラム呼び出し等のプログラム呼び出しに応じて実行プログラムの切り替えを行う際に、呼び出し先プログラムの実行の妥当性をメモリ保護又は周辺装置保護の観点から検証する。このため、ＣＰＵ１０は、呼び出し先プログラムの実行に先立って、呼び出し先プログラムがアクセスを行なう予定のメモリ領域（以下、被チェック領域と呼ぶ）のアドレスを後述する保護設定チェック部１４に出力する。
【００１７】
本実施の形態における被チェック領域は、呼び出し元プログラムが呼び出し先プログラムを介して間接的にアクセスを試みるメモリ領域を含む。呼び出し元プログラムが他のプログラムを介して間接的にアクセスを行なうメモリ領域は、例えば、上述したようにプログラム呼び出しの際の引数として明示的に指定されて、実行プログラムの切り替えを制御するＯＳに引き渡される。また、呼び出し元プログラムが間接的にアクセスを行なうメモリ領域は、暗黙的に指定されてもよく、例えば、ＯＳは、プログラム呼び出しに応じて、呼び出し元又は呼び出し先プログラムに応じて予め定められた記憶領域（レジスタ等）を参照して被チェック領域を決定してもよい。
【００１８】
メモリ保護部１１は、ＣＰＵ１０が生成するメモリ１３に対するアクセス要求を受信する。ＣＰＵ１０から供給されるアクセス要求には、リード／ライト種別、アクセス先アドレス、さらにライトアクセスの場合には書き込みデータが含まれる。アクセス先アドレスは、様々な形式で指定可能である。例えば、１ワード単位でアクセス先を指定するために、アクセス先アドレスが１つのアドレスによって指定される場合がある。また、複数ワード単位でアクセス先を指定するために、ベースアドレスと転送を要求するデータサイズの組合せ、又は転送を要求するデータが配置された場所の下限アドレスと上限アドレスの組合せ等によって指定される場合がある。
【００１９】
メモリ保護情報記憶部１１０に格納されるメモリ保護情報は、ＣＰＵ１０で実行されているプログラムに応じて設定され、ＣＰＵ１０で実行されるプログラムの切り替えに応じて、切り替え先のプログラムに応じた設定内容となるよう更新される。メモリ保護情報記憶部１１０の書き換えは、例えば、ＣＰＵ１０で実行されるプログラムの切り替えの際に起床されるシステムプログラムによって、切り替え先のプログラムに応じた設定内容に更新される。メモリ保護情報におけるアクセス許可又は禁止されるメモリ領域の設定も、アクセス先アドレスと同様に、様々な形式により行うことができる。例えば、メモリ保護情報におけるメモリ領域の設定は、メモリ領域の下限アドレス及び上限アドレスの組合せにより指定してよいし、メモリ領域の先頭アドレス（下限アドレス又は上限アドレス）と領域サイズの組合せにより指定されてもよい。また、メモリ領域の先頭アドレスとマスクされる下位ビット数を指定することによって、先頭アドレスから２のべき乗分のメモリ領域を指定する方法でもよい。つまり、メモリ保護の対象となるメモリ領域の指定方法は特に限定されない。
【００２０】
メモリ保護部１１に含まれるメモリ保護違反検出部１１１は、ＣＰＵ１０がアクセスを要求するアクセス先アドレスとメモリ保護情報記憶部１１０に設定されたメモリ保護情報とを比較することによって、アクセス要求を許可するか否かを決定する。
【００２１】
アクセス制御部１１２は、メモリアクセス要求に含まれるアクセス先アドレスがアクセスの許可されたメモリ領域を示す場合に、メモリアクセスを許可する。一方、アクセス制御部１１２は、アクセス先アドレスがアクセスの禁止されたメモリ領域を示す場合に、メモリアクセスを禁止する。なお、メモリ保護違反検出部１１１又はアクセス制御部１１２は、アクセスの禁止されたメモリ領域へのアクセスを検出した場合に、不正なアクセスを検出したことを示す信号をＣＰＵ１０に出力するとよい。
【００２２】
セレクタ１１３は、メモリ保護違反検出部１１１に入力され、メモリ保護情報と比較されるアドレス情報を、ＣＰＵ１０から入力されるメモリアクセス要求に含まれるアクセス先アドレスと、後述するチェック要求に含まれる被チェック領域アドレスとの間で切り替える。本実施の形態におけるセレクタ１１３の動作は、後述する保護設定チェック部１４により制御される。
【００２３】
メモリバス１２は、メモリバス１２を介してメモリ保護部１１と接続されている。メモリ１３は、例えば、ＣＰＵ１０に読み出されて実行されるシステムプログラムやアプリケーションプログラムの格納領域、及びシステムプログラムやアプリケーションプログラムによって使用されるデータの格納領域として使用される。つまり、メモリ１３は、ＲＡＭ、ＲＯＭ、フラッシュメモリ等、又はこれらの組合せである。また、メモリバス１２は、アドレスバス及びデータバスの総称である。
【００２４】
保護設定チェック部１４は、被チェック領域アドレスを含むチェック要求をＣＰＵ１０から受信し、呼び出し元プログラムに対するメモリ保護設定に適合するか否かによって、被チェック領域アドレスの妥当性をチェックし、チェック結果をＣＰＵ１０に供給する。する。より具体的に述べると、保護設定チェック部１４は、呼び出し元プログラムによるアクセス要求の違反検出のためにメモリ保護情報記憶部１１０に既に設定済みのメモリ保護情報をそのまま利用し、呼び出し元プログラムに対応するメモリ保護情報と被チェック領域アドレスとの比較を行い、被チェック領域が、呼び出し元プログラムのアクセスが許可されたメモリ領域に含まれるか否かをチェックする。さらに、図１に示す本実施の形態の構成では、被チェック領域アドレスとメモリ保護情報とを比較照合するためのハードウェアを、メモリ保護違反検出部１１１に含まれるアクセス先アドレスとメモリ保護情報とを比較照合するためのハードウェアと兼用させている。
【００２５】
なお、上述した図１の構成が一例に過ぎないことは勿論である。例えば、上述した説明では、メモリ保護部１１がメモリバス１２にアクセスするものとして説明したが、メモリバス１２及びメモリ１３へのアクセスは、メモリコントローラ（不図示）等の他の装置を介して行なうよう構成してもよい。また、チェック要求の物理的な転送経路とアクセス要求の物理的な転送経路の少なくとも一部は共通化されてもよい。また、図１では、セレクタ１１３がメモリ保護部１１に含まれるように記載しているが、この記載が、情報処理装置１の現実のハードウェア構成を限定するものではない。つまり、図１のセレクタ１１３は、メモリアクセス要求に含まれるアクセス先アドレス又はチェック要求に含まれる被チェック領域アドレスをメモリ保護違反検出部１１１に対して選択的に供給できるよう、メモリ保護違反検出部１１１の前段に配置されていればよい。
【００２６】
続いて以下では、図１に示した情報処理装置１に含まれる各要素の構成例及び動作について詳しく説明する。図２は、ＣＰＵ１０における実行プログラムの切り替えを説明するための概念図である。ＣＰＵ１０でアプリケーションプログラムＡが実行されている際に、別のアプリケーションプログラムＢが呼び出されると（Ｓ１０１）、呼び出し先のアプリケーションプログラムＢの実行前に、システムプログラムつまりＯＳによって保護設定チェック部１４に対してチェック要求が発行される（Ｓ１０２）。ＯＳは、保護設定チェック部１４からＣＰＵ１０に供給されるチェック結果によって、被チェック領域アドレスが呼び出し元プログラムに対するメモリ保護に適合するものであることが確認できた場合に、呼び出し先のアプリケーションプログラムＢを起動する（Ｓ１０３）。
【００２７】
図３（ａ）及び（ｂ）は、メモリ１３のメモリマップの一例を示している。図３（ａ）は、アプリケーションプログラムＡのアクセス許可領域の例を示すメモリマップである。図３（ａ）の例では、１２０００〜１２０ＦＦ番地、１３０００〜１３０ＦＦ番地、及び１４０００〜１４１ＦＦ番地の３つの領域について、アプリケーションプログラムＡによるアクセスが許可されている。一方、図３（ｂ）は、アプリケーションプログラムＢのアクセス許可領域の例を示すメモリマップである。図３（ｂ）の例では、プログラムＡのアクセス許可領域を包含する１１０００〜１４２００番地に亘る１つの領域について、アプリケーションプログラムＢによるアクセスが許可されている。
【００２８】
図４（ａ）及び（ｂ）は、メモリ保護情報記憶部１１０の具体的な構成例を示す図である。図４（ａ）は図３（ａ）に示したアプリケーションプログラムＡのアクセス許可領域に対応する設定内容を示している。また、図４（ｂ）は図３（ｂ）に示したアプリケーションプログラムＢのアクセス許可領域に対応する設定内容を示している。
【００２９】
図４（ａ）及び（ｂ）の例では、メモリ保護情報記憶部１１０がｎ個の保護設定レジスタ１１０１〜１１０ｎにより構成されており、各保護設定レジスタには、よって１つのアクセス許可領域が指定される。また、保護設定レジスタ１１０１〜１１０ｎの各々におけるアクセス許可領域の指定は、下限アドレス及び上限アドレスによって行なわれる。例えば、図４（ａ）に示す保護設定レジスタ１１０１は、図３（ａ）の１２０００〜１２０ＦＦ番地のアクセス許可領域に対応する設定を保持しているレジスタであり、下限アドレス指定部１１０１Ｌに１２０００番地が指定され、上限アドレス指定部１１０１Ｕに１２０ＦＦ番地が指定されている。同様に、図３（ａ）の保護設定レジスタ１１０２は、図３（ａ）の１３０００〜１３０ＦＦ番地のアクセス許可領域に対応する設定を保持している。また、図３（ａ）の保護設定レジスタ１１０３は、図３（ａ）の１４０００〜１４１ＦＦ番地のアクセス許可領域に対応する設定を保持している。一方、図４（ａ）の保護設定レジスタ１１０１は、図３（ｂ）の１１０００〜１４１ＦＦ番地のアクセス許可領域に対応する設定を保持している。
【００３０】
なお、アクセス許可領域の設定に使用されない未使用レジスタは、例えば、図４（ａ）の保護設定レジスタ１１０ｎ及び図４（ｂ）の保護設定レジスタ１１０２に示すように、上限アドレス及び下限アドレスとして無効値（例えば、ＦＦＦＦＦ）を書き込むことによって無効な設定であることを明示してもよい。また、保護設定レジスタ１１０１〜１１０ｎの各々の有効・無効を示すフラグを保持する記憶領域を別途設けてもよい。
【００３１】
次に、図５を参照して、メモリ保護違反検出部１１１の構成例を説明する。図５に示したメモリ保護情報記憶部１１０は、図４（ａ）及び（ｂ）に示した具体例と同様に、つまり、複数個の保護設定レジスタの集合として構成されている。ただし、図５に示す各保護設定レジスタは、アクセス許可領域の上限アドレス及び下限アドレスに加えて、当該領域の許可種別、具体的には、ライトアクセス、リードアクセス及び命令フェッチアクセスの許可種別を定める。ライト許可指定部１１０１Ｗは、値"１"のときライトアクセス許可を示し、値"０"のときライトアクセス不許可を示す。同様に、リード許可指定部１１０１Ｒは、値"１"のときリードアクセス許可を示し、値"０"のときリードアクセス不許可を示す。また、実行許可指定部１１０１Ｅは、値"１"のとき命令フェッチアクセス許可を示し、値"０"のとき命令フェッチアクセス不許可を示す。
【００３２】
図５において、セレクタ１１３Ｕ及び１１３Ｌは、図１に示したセレクタ１１３に含まれるセレクタである。セレクタ１１３Ｕは、メモリ保護違反検出部１１１に対して、ＣＰＵ１０によるアクセス先又は被チェック領域の上限アドレスを選択的に供給する。一方、セレクタ１１３Ｌは、メモリ保護違反検出部１１１に対して、ＣＰＵ１０によるアクセス先又は被チェック領域の下限アドレスを選択的に供給する。
【００３３】
また、図５に示すメモリ保護違反検出部１１１は、保護設定レジスタと同数の照合回路の集合として構成されている。図５に示す各照合回路は、比較回路１１１０Ｕ及び１１１０Ｌ並びにＡＮＤ回路１１１１〜１１１４を含む。ＡＮＤ回路１１１１〜１１１４はそれぞれ２つの入力値の論理積を出力する回路である。
【００３４】
比較回路１１１０Ｕは、保護設定レジスタの上限アドレス指定部１１０１Ｕに保持された値と、セレクタ１１３Ｕから供給されるアドレスとを比較する。比較回路１１１０Ｕは、セレクタ１１３Ｕから供給されるアドレスが上限アドレス指定部１１０１Ｕに保持された上限アドレス以下である場合に真値として値"１"を出力し、上限アドレス指定部１１０１Ｕに保持された上限アドレスを超える場合に偽値として値"０"を出力する。
【００３５】
比較回路１１１０Ｌは、保護設定レジスタの下限アドレス指定部１１０１Ｌに保持された値と、セレクタ１１３Ｌから供給されるアドレスとを比較する。比較回路１１１０Ｌは、セレクタ１１３Ｌから供給されるアドレスが下限アドレス指定部１１０１Ｌに保持された下限アドレス以上である場合に真値として値"１"を出力し、下限アドレス指定部１１０１Ｌに保持された下限アドレス未満である場合に偽値として値"０"を出力する。
【００３６】
ＡＮＤ回路１１１１の出力は、比較回路１１１０Ｕ及びＬの出力が共に真値である場合、つまり、セレクタ１１３Ｕ及びＬから供給される２つのアドレス情報によって指定されるメモリ領域がアクセス許可領域内である場合に、真値"１"となる。また、ＡＮＤ回路１１１２の出力は、セレクタ１１３Ｕ及びＬから供給される２つのアドレス情報によって指定されるメモリ領域がアクセス許可領域内であり、かつ、ライトアクセスが許可される場合に真値"１"となる。同様に、ＡＮＤ回路１１１３の出力は、セレクタ１１３Ｕ及びＬから供給される２つのアドレス情報によって指定されるメモリ領域がアクセス許可領域内であり、かつ、リードアクセスが許可される場合に真値"１"となる。また、ＡＮＤ回路１１１４の出力は、セレクタ１１３Ｕ及びＬから供給される２つのアドレス情報によって指定されるメモリ領域がアクセス許可領域内であり、かつ、命令フェッチアクセスが許可される場合に真値"１"となる。
【００３７】
なお、図５の例では、メモリ保護違反検出部１１１が、ライトアクセス、リードアクセス、及び命令フェッチアクセスについて個別に検出結果の出力を行う構成を示したが、このような構成が一例に過ぎないことはもちろんである。例えば、メモリ保護違反検出部１１１は、さらに詳細なアクセス種別に関する違反検出を行ってもよいし、最小限の検出、つまりアクセス許可領域であるか否かだけを検出してもよい。
【００３８】
続いて以下では、図６〜８を参照して、保護設定チェック部１４の構成例及び動作を説明するとともに、ＣＰＵ１０と保護設定チェック部１４の間におけるチェック要求およびチェック結果に関するデータ受け渡しの具体例について説明する。
【００３９】
図６は、図１に示したメモリ保護部１１及び保護設定チェック部１４のより具体的な構成例を示すとともに、ＣＰＵ１０と保護設定チェック部１４との間のデータ受け渡しに使用されるレジスタ群１５を示している。
【００４０】
メモリ保護部１１に関して、図６では、セレクタ１１３に含まれるセレクタ１１３Ｕ及び１１３Ｌを示している。セレクタ１１３Ｕ及び１１３Ｌの入出力及び動作は、上述した通りである。
【００４１】
図６に示す保護設定チェック部１４は、チェック機能制御部１４１、加算回路１４２及びチェック結果整形部１４３を有する。チェック機能制御部１４１は、ＣＰＵ１０から供給されるチェック要求に応じた被チェック領域アドレスのチェック処理を制御する。
【００４２】
図７は、チェック機能制御部１４１の動作状態の遷移図である。チェック機能制御部１４１は、通常状態２０１、つまりＣＰＵ１０からチェック要求を受けていない状態では、メモリアクセス要求に含まれるアクセス先アドレスがメモリ保護違反検出部１１１に供給されるように、セレクタ１３１Ｕ及び１３１Ｌを制御する。
【００４３】
チェック機能制御部１４１は、ＣＰＵ１０からチェック要求を受信した場合に、保護設定チェック状態２０２に遷移する（図７のＳ２０１）。保護設定チェック状態２０２では、チェック要求の対象となる被チェック領域アドレスが、メモリ保護違反検出部１１１に供給されるように、セレクタ１３１Ｕ及び１３１Ｌを制御する。これに応じて、メモリ保護違反検出部１１１が、被チェック領域アドレスを対象として、アクセス先アドレスに対する処理と同様の処理を行って検出結果を出力する。
【００４４】
なお、図６の例では、チェック要求に含まれる被チェック領域に関するアドレス情報は、被チェック領域の先頭アドレス及び被チェック領域のサイズとしている。このため、図６の例では、加算回路１４２によって被チェック領域の先頭アドレス及び被チェック領域のサイズを加算することによって被チェック領域の上限アドレスを生成し、生成された上限アドレスをセレクタ１３１Ｕに供給している。
【００４５】
チェック機能制御部１４１は、メモリ保護違反検出部１１１の検出終了後にチェック結果格納状態２０３に遷移する。例えば、メモリ保護違反検出部１１１の検出終了時に、メモリ保護違反検出部１１１からチェック機能制御部１４１に終了通知を出力させ、当該終了通知の受信に応じてチェック結果格納状態に遷移すればよい（図７のＳ２０２）。また、チェック機能制御部１４１は、明示的な終了通知の受信を行なわずに、予め定められた期間の経過に応じてチェック結果格納状態２０３に遷移してもよい。チェック結果格納状態２０３では、チェック結果整形部１４３が、メモリ保護違反検出部１１１による検出結果を入力し、検出結果の集約、選択等を行って予め定められた適当なデータ形式に整形し、整形して得たチェック結果をＣＰＵ１０が参照可能な記憶領域に出力する。チェック結果の出力が完了したのちに、チェック機能制御部１４１は、通常状態２０１に戻る（図７のＳ２０３）。
【００４６】
図６の例では、ＣＰＵ１０と保護設定チェック部１４の間におけるチェック要求及びチェック結果に関するデータの受け渡しに、レジスタ群１５に含まれる４つのレジスタを使用する。先頭アドレスレジスタ１５０は、被チェック領域の先頭アドレスが格納されるレジスタであり、ＣＰＵ１０によって書き込まれ、保護設定チェック部１４により読み出される。サイズレジスタ１５１は、被チェック領域のサイズが格納されるレジスタであり、ＣＰＵ１０によって書き込まれ、保護設定チェック部１４により読み出される。開始制御レジスタ１５２は、保護設定チェック部１４にチェックを開始させるために、ＣＰＵ１０によって書き込まれるレジスタである。図６の保護設定チェック部１４は、チェック開始を示すデータが開始制御レジスタ１５２に書き込まれたことに応じて上述した保護設定チェック状態２０２に遷移し、被チェック領域アドレスのチェック処理を開始する。最後に、結果レジスタ１５３は、チェック結果整形部１４３によって整形されたチェック結果が書き込まれるレジスタである。図６のＣＰＵ１０は、結果レジスタ１５３を介して保護設定チェック部１４からのチェック結果を取得する。
【００４７】
また、図６に示した構成は、本実施の形態にかかる情報処理装置１の具体的な構成例の１つに過ぎない。例えば、図６では、ＣＰＵ１０による開始制御レジスタ１５２の書き込みに応じて、保護設定チェック部１４がチェック処理を開始する構成例を示した。しかしながら、この構成に代えて、ＣＰＵ１０から供給される専用命令又は専用コマンドを保護設定チェック部１４が受信し、この命令又はコマンドに従ってチェック処理を実行するよう構成してもよい。
【００４８】
ＣＰＵ１０から供給される専用命令に従って保護設定チェック部１４にチェック処理を実行させる構成例を図８に示す。図８において、ＣＰＵ１０に含まれる命令発行部１０１は、デコードされた命令がチェック処理の実行を指示する専用命令である場合に、当該専用命令をチェック機能制御部１４１に供給する。ロード／ストア命令実行部１０２は、命令発行部１０１から供給されるロード命令及びストア命令に基づいて、メモリ１３へのメモリアクセスを実行する。
【００４９】
汎用レジスタ群１０３は、ロード／ストア命令実行部１０２のほか、ＡＬＵ等の図示していない他の命令実行部の入力データ及び出力データの格納場所としての使用、レジスタ間接アドレッシングモードを使用する場合のベースアドレスやインデックス値の格納場所としての使用など、様々な用途に使用可能なレジスタ群である。図８の例では、汎用レジスタ群１０３は、被チェック領域の先頭アドレス及びサイズ、並びに保護設定チェック部１４から出力されるチェック結果の格納に使用される。
【００５０】
図８のチェック機能制御部１４１は、チェック要求に関する専用命令を受け取ると、当該命令のオペランドに指定された汎用レジスタを参照し、汎用レジスタ群１０３から被チェック領域の先頭アドレス及びサイズを読み出す。また、チェック機能制御部１４１は、専用命令のオペランドに指定された結果レジスタを選択し、整形後のチェック結果を指定された結果レジスタに格納する。
【００５１】
続いて、メモリ保護情報記憶部１１０に保持された呼び出し元プログラムに対するメモリ保護内容と、呼び出し先プログラムの実行に先立って保護設定チェック部１４により行われる保護設定チェックの結果との関係について、図９及び１０を参照して説明する。
【００５２】
図９は、アプリケーションプログラムＡに対して２つのアクセス許可領域が設定されている場合のメモリマップを示す概念図である。なお、アプリケーションプログラムＡは、図２に示した呼び出し元のプログラムである。１つの目のアクセス許可領域（アクセス許可領域−１）は、１１１００〜１１４００番地である。また、２つ目のアクセス許可領域（アクセス許可領域−２）は、１１０００〜１１２００番地である。つまり、２つの許可領域の一部、１１１００〜１１２００番地が重複している。
【００５３】
複数のアクセス許可領域が設定されている場合に、複数のアクセス許可領域に跨る被チェック領を正常と判定するか異常（不正）と判定するかは、情報処理装置１の設計者又は使用者の方針により適宜選択可能な事項であり、方針に応じてメモリ保護違反検出部１１１を構成すればよい。図９及び後述する図１０では、これを異常（不正）とみなす。
【００５４】
図９の例を詳しく見ると、チェック要求Ｂは、被チェック領域の全体が許可領域−２に含まれるため、チェック結果は"正常"となる。同様に、チェック要求Ｅは、被チェック領域の全体が許可領域−１に含まれるため、チェック結果は"正常"となる。また、チェック要求Ｃも、被チェック領域の全体が許可領域−１に含まれ、同時に許可領域−２にも含まれるため、チェック結果は"正常"となる。一方、チェック要求Ａ及びＦは、被チェック領域がアクセス得許可領域外であるため、また、チェック要求Ｄは、被チェック領域が２つのアクセス許可領域−１及び２に跨るため、チェック結果は"異常"となる。
【００５５】
次に、図１０を参照して説明する。図１０は、図５に示した３つのアクセス種別、具体的にはライトアクセス、リードアクセス及び命令フェッチアクセスに関する詳細な判定が行われる場合を示したものである。図１０の例では、アクセス許可領域−１に対するリードアクセス及び命令フェッチアクセスが許可され、ライトアクセスが禁止されている。また、アクセス許可領域−２に対するリードアクセス及びライトアクセスが許可され、命令フェッチアクセスが禁止されている。
【００５６】
図１０の例を詳しく見ると、チェック要求Ｇ、Ｊ及びＬは、全てのアクセス種別ついてのアクセスが禁止される。被チェック領域にアクセス許可領域以外が含まれるか、被チェック領域が複数のアクセス許可領域に跨っているためである。一方、チェック要求Ｈの被チェック領域は、アクセス許可領域−２に包含されているため、アクセス許可領域−２に対応したチェック結果が出力される。同様に、チェック要求Ｋの被チェック領域は、アクセス許可領域−１に包含されているため、アクセス許可領域−１に対応したチェック結果が出力される。一方、チェック要求Ｉの被チェック領域は、アクセス許可領域−１及び２の重複領域に包含されている。この場合に、２つのアクセス許可領域に関する許可内容のＡＮＤ判定を行うかＯＲ判定を行うかは、情報処理装置１の設計事項として適宜選択可能である。図１０の例では、２つのアクセス許可領域−１及び２に関する許可内容のＯＲ判定を行う場合を示している。したがって、チェック要求Ｈに関するチェック結果は、ライトアクセス、リードアクセス及び命令フェッチアクセスの全てが"正常"となる。
【００５７】
上述したように、本実施の形態にかかる情報処理装置１では、あるプログラムＡによるプログラムＢの呼び出しに起因したプログラムＡからプログラムＢへの実行プログラムの切り替えに際して、ＣＰＵ１０が被チェック領域を特定するためのアドレス情報を含むチェック要求を出力する。さらに、このチェック要求に応じて、保護設定チェック部１４が、プログラムＡによるアクセス要求の違反検出のためにメモリ保護情報記憶部１１０に設定されたメモリ保護情報に基づいて、チェック要求が、プログラムＡに対するメモリ保護設定に適合するものであるかをチェックするよう構成されている。
【００５８】
これにより、ＣＰＵ１０にメモリ保護情報を読み出してチェックを行なう必要がなく、プログラムＡ及びＢの実行を行なうＣＰＵ１０とは独立して設けられた保護設定チェック部１４によりプログラムＡによるプログラムＢの読み出しの妥当性を検証できる。
【００５９】
また、保護設定チェック部１４は、呼び出し元であるプログラムＡによるアクセス要求の違反検出のためにメモリ保護情報記憶部１１０に既に設定済みのメモリ保護情報をそのまま利用して、被チェック領域に関するチェックを行うことができる。つまり、被チェック領域に関するチェックに際して、新たなメモリ保護情報の読み出し処理及び書き込み処理を特に必要としないため、チェック処理を一層効率良く行なうことができる。
【００６０】
また、本実施の形態にかかる保護設定チェック部１４は、被チェック領域アドレスとメモリ保護情報とを照合するためのハードウェアを独自に有していない。つまり、情報処理装置１では、保護設定チェック部１４が有するべき当該ハードウェアと、アクセス先アドレスとメモリ保護情報とを照合するためにメモリ保護違反検出部１１１が有する照合回路とを兼用させることで、構成を簡素化させている。
【００６１】
また、図５に示すように、メモリ保護違反検出部１１１が、並列化された複数の照合回路を備える構成とすることによって、プログラムＡに対して複数のアクセス許可領域が設定されている場合であっても、複数のアクセス許可領域の各々と被チェック領域アドレスとの照合を並行して実行することができる。つまり、アクセス許可領域の設定数の増大に比例して、チェック時間が増大することを抑制することができる。このため、図５に示したような構成、つまり、被チェック領域アドレスとメモリ保護情報とを照合するための複数のハードウェアを並列化した構成によれば、プログラム呼び出し時の正当性チェックを一層効率よく実行できる。
【００６２】
実際、メモリアクセス要求に対するメモリ保護を効率的に実行するために図５に示すように照合回路は並列化される場合が多い。このため、本実施の形態で述べたように、メモリ保護違反検出部１１１が有する照合回路を被チェック領域アドレスとメモリ保護情報とを照合するためのハードウェアと兼用させる構成は、構成の簡素化とアドレスチェックの効率化の両方に効果がある。
【００６３】
＜発明の実施の形態２＞
上述した発明の実施の形態１は、本発明をメモリ保護に適用した例について示したが、本発明は周辺装置保護のためにも利用可能である。本実施の形態にかかる情報処理装置２は、周辺装置保護機能を有し、プログラム呼び出しが発生した際に、呼び出し先のプログラムの実行可否を周辺装置保護の観点からチェックする機能を有する。
【００６４】
図１１は、本実施の形態にかかる情報処理装置２の要な部分の構成を示すブロック図である。図１１において、周辺装置保護部２１は、図１に示したメモリ保護部１１に代えて設けられており、ＣＰＵ１０からアクセスされる周辺装置２３Ａ〜２３ＣとＣＰＵ１０との間に介在して、ＣＰＵ１０から周辺装置へのアクセスを制御する。
【００６５】
周辺装置保護情報記憶部２１０は、ＣＰＵ１０で実行されているプログラムに応じた周辺装置保護情報を記憶する。周辺装置保護情報記憶部２１０は、ＣＰＵ１０で実行されるプログラムの切り替えに応じて、切り替え先のプログラムに応じた設定内容となるよう更新される。周辺装置保護情報記憶部２１０の書き換えは、例えば、ＣＰＵ１０で実行されるプログラムの切り替えの際に起床されるシステムプログラムによって行われる。周辺装置保護情報におけるアクセス許可又は禁止の指定もまた、様々な形式により行うことができ、その形式は任意である。例えば、周辺装置保護情報は、周辺装置２３Ａ〜２３Ｃの各々についてアクセス許可又は不許可を示す１ビットの識別情報としてもよい。
【００６６】
周辺装置保護違反検出部２１１は、ＣＰＵ１０がアクセスを要求するアクセス先アドレスと周辺装置保護情報記憶部２１０に設定された周辺装置保護情報とを比較することによって、周辺装置へのアクセス要求を許可するか否かを決定する。
【００６７】
アクセス制御部２１２は、周辺装置アクセス要求に含まれるアクセス先アドレスがアクセスの許可された周辺装置を示す場合に、周辺装置へのアクセスを許可する。一方、アクセス制御部２１２は、アクセス先アドレスがアクセスの禁止された周辺装置を示す場合に、周辺装置アクセスを禁止する。なお、周辺装置保護違反検出部２１１又はアクセス制御部２１２は、アクセスの禁止された周辺装置へのアクセスを検出した場合に、不正なアクセスを検出したことを示す信号をＣＰＵ１０に出力するとよい。
【００６８】
図１１に示すセレクタ２１３及び保護設定チェック部１４それぞれの構成及び動作は、対象となるアドレスが周辺装置を指定するアドレスである点を除いて、発明の実施の形態１で説明したセレクタ１１３及び保護設定チェック部１４と同一とすればよい。
【００６９】
なお、上述した図１１の構成が一例に過ぎないことは勿論である。例えば、上述した説明では、周辺装置保護部２１が周辺バス２２にアクセスするものとして説明したが、周辺バス２２及び周辺装置２３Ａ〜Ｃへのアクセスは、バスコントローラ（不図示）、バスブリッジ（不図示）等の他の装置を介して行なうよう構成してもよい。また、チェック要求の物理的な転送経路とアクセス要求の物理的な転送経路の少なくとも一部は共通化されてもよい。
【００７０】
周辺装置保護情報記憶部２１０及び周辺装置保護違反検出部２１１の構成例を図１２に示す。図１２に示す周辺装置保護情報記憶部２１０は、複数の保護設定レジスタ２１００〜２１０４を有する。複数の保護設定レジスタ２１００〜２１０４の各々によって、各周辺装置のアクセス可否が指定される。図１２の例では、保護設定レジスタ２１００〜２１０４は、周辺装置であるクロック、リセット装置、割り込みコントローラ（ＩＮＴＣ）、ＤＭＡ（Direct Memory Access）コントローラ及びタイマーに関する保護情報を格納する。保護設定レジスタ２１００〜２１０４の各々は、例えば、周辺装置のアクセス許可又は不許可を示す１ビットの識別情報を保持すればよい。
【００７１】
図１２に示す周辺装置保護違反検出部２１１は、アドレスデコーダ２１１０及び保護設定レジスタ２１００〜２１０４の数に対応した複数の判定部２１１１〜２１１５を有する。アドレスデコーダ２１１０は、セレクタ２１３を介して入力されるアクセス先アドレス又は被チェック領域アドレスをデコードし、周辺装置種別に対応して設けられた判定部２１１１〜２１１５のいずれかを選択する。判定部２１１１〜２１１５は、保護設定レジスタ２１００〜２１０４に格納された周辺装置保護情報と、アドレスデコーダ２１１０による選択信号を入力し、アクセス許可又は不許可を示す検出結果を出力する。
【００７２】
なお、情報処理装置２が、ＣＰＵ１０からのチェック要求に応じてセレクタ２１３の動作を制御し、周辺装置保護情報記憶部２１０に保持された周辺装置保護情報と周辺装置保護違反検出部２１１を使用して被チェック領域のチェックを実行することは、上述した発明の実施の形態１と同様である。
【００７３】
本実施の形態にかかる情報処理装置２は、あるプログラムＡによるプログラムＢの呼び出しに起因したプログラムＡからプログラムＢへの実行プログラムの切り替えに際して、プログラムＡによるプログラムＢの読み出しの妥当性を周辺装置保護の観点から効率的に検証することができる。
【００７４】
＜発明の実施の形態３＞
上述した発明の実施の形態１及び２では、被チェック領域アドレスとメモリ保護情報又は周辺装置保護情報とを照合するためのハードウェアを保護設定チェック部１４に設けずに、メモリ保護違反検出部１１１又は周辺装置保護違反検出部２１１のハードウェアと兼用する構成を示した。しかしながら、構成は冗長となるものの、被チェック領域アドレスとメモリ保護情報又は周辺装置保護情報とを照合するためのハードウェアを保護設定チェック部１４に設けてもよい。
【００７５】
本実施の形態にかかる情報処理装置３の構成を図１３に示す。図１３において、保護設定チェック部３４は、発明の実施の形態１にかかる情報処理装置１が有する保護設定チェック部１４に被チェック領域アドレスとメモリ保護情報又は周辺装置保護情報とを照合するためのハードウェアを追加したものである。なお、保護設定チェック部３４に追加する照合用のハードウェアは、図５に示したメモリ保護違反検出部１１１の照合回路と同様とすればよい。
【００７６】
なお、上述した発明の実施の形態１〜３にかかる情報処理装置１〜３は、例えば、１チップ化されたマイクロコンピュータとして構成されてもよいし、複数チップからなるコンピュータシステムとして構成されてもよい。
【００７７】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施の形態１にかかる情報処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる情報処理装置におけるプログラム呼び出しの動作を説明するための概念図である。
【図３】本発明の実施の形態１にかかる情報処理装置におけるメモリ保護設定を説明するためのメモリマップ図である。
【図４】本発明の実施の形態１にかかる情報処理装置が有するメモリ保護情報記憶部の構成例を示す図である。
【図５】本発明の実施の形態１にかかる情報処理装置が有するメモリ保護違反検出部の構成例を示す図である。
【図６】本発明の実施の形態１にかかる情報処理装置が有する保護設定チェック部の構成例を示す図である。
【図７】本発明の実施の形態１にかかる情報処理装置が有する保護設定チェック部の状態遷移図である。
【図８】本発明の実施の形態１にかかる情報処理装置が有する保護設定チェック部の構成例を示す図である。
【図９】本発明の実施の形態１にかかる情報処理装置による保護設定チェック動作を説明するための図である。
【図１０】本発明の実施の形態１にかかる情報処理装置による保護設定チェック動作を説明するための図である。
【図１１】本発明の実施の形態２にかかる情報処理装置の構成を示すブロック図である。
【図１２】本発明の実施の形態２にかかる情報処理装置が有する周辺装置保護情報記憶部及び周辺装置保護違反検出部の構成例を示す図である。
【図１３】本発明の実施の形態３にかかる情報処理装置の構成を示すブロック図である。
【符号の説明】
【００７９】
１、２、３  情報処理装置
１０  ＣＰＵ（Central Processing Unit）
１１、３１  メモリ保護部
１２  バス
１３  メモリ
１４、３４  保護設定チェック部
１５  レジスタ群
２１  周辺装置保護部
１０１  命令発行部
１０２ロード／ストア命令実行部
１０３  汎用レジスタ群
１１０  メモリ保護情報記憶部
１１１  メモリ保護違反検出部
１１２  アクセス制御部
１１３、１１３Ｕ、１１３Ｌ  セレクタ
１４１  チェック機能制御部
１４２  加算回路
１４３  チェック結果整形部
１５０  先頭アドレスレジスタ
１５１  サイズレジスタ
１５２  開始制御レジスタ
１５３  結果レジスタ
２１０  周辺装置保護情報記憶部
２１１  周辺装置保護違反検出部
２１２  アクセス制御部
２１３  セレクタ
【図１】
0004939382.tif 000002
【図２】
0004939382.tif 000003
【図３】
0004939382.tif 000004
【図４】
0004939382.tif 000005
【図５】
0004939382.tif 000006
【図６】
0004939382.tif 000007
【図７】
0004939382.tif 000008
【図８】
0004939382.tif 000009
【図９】
0004939382.tif 000010
【図１０】
0004939382.tif 000011
【図１１】
0004939382.tif 000012
【図１２】
0004939382.tif 000013
【図１３】
0004939382.tif 000014