説明

データ処理装置及びデータ処理装置における周辺装置保護方法

【課題】従来のデータ処理装置では、周辺装置に対するアクセス保護を十分でない問題があった。
【解決手段】本発明のデータ処理装置は、第1動作権限レベル又は第2動作権限レベルで複数のプログラムを実行する演算回路10と、演算回路10の周辺装置に対するアクセスの制御を行う周辺装置保護回路12とを備え、周辺装置保護回路12は、周辺装置に対するアクセスの許可又は不許可を指定する第1保護設定値と、第1保護設定値よりも高い保護レベルで設定される第2保護設定値と、演算回路10が第1動作権限レベルで動作中は第1及び第2保護設定値を参照し、演算回路10が第2動作権限レベルで動作中は第2保護設定値を参照してアクセス許可/不許可情報を生成する設定選択回路と、演算回路10が出力するアクセス情報とアクセス許可/不許可情報とに基づき周辺装置へのアクセスの許可/不許可を判断するアクセス保護回路とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明にかかるデータ処理装置及びデータ処理装置における周辺装置保護方法は、特にプログラムを実行する演算回路と、演算回路から周辺装置へのアクセスの制御を行う周辺装置保護回路とを有するデータ処理装置及びデータ処理装置における周辺装置保護方法に関する。
【背景技術】
【0002】
プログラムを実行する演算回路と、演算回路によってアクセスされる周辺装置とを有するデータ処理装置では、実行するプログラムに応じて演算回路がアクセス可能な周辺装置を制限することがある。周辺装置へのアクセスを制限することで、例えば、現在実行中のプログラムが使用する周辺装置に対して不正な動作を行う他のプログラムからアクセスがされることを防止することができる。
【0003】
このようなアクセス制限を行うデータ処理装置の一例が特許文献1に開示されている。特許文献1では、周辺装置のひとつであるメモリに対する保護方式が提案されている。特許文献1は、複数のメモリ保護マップレジスタと、これらメモリ保護マップレジスタを選択する複数のメモリ保護制御ビットとを設ける。そして、メモリ保護マップレジスタの内容に対応するメモリ領域へのアクセスを制限することで、メモリ保護マップレジスタの内容に対応するメモリ領域に格納されているデータが不正な変更を防止する。また、メモリ保護制御ビットの内容を制御して、使用するメモリ保護マップレジスタの組み合わせを選択する。これにより、演算回路において実行されているタスクの切り替え時にメモリ保護マップの切り替えを行う。
【0004】
また、特許文献2には、バスを介してバスマスタ、バススレーブ及び周辺装置がそれぞれ接続されるデータ処理システムにおいて、バスマスタ及びバススレーブの周辺装置に対するアクセスを制限する方法が開示されている。特許文献2では、バスマスタに対する権限及び信頼属性と、各周辺装置に対するアクセス制御と、を信頼済みバスマスタが動的に更新することで、データ処理システムにおける周辺装置へのアクセスの信頼性を向上させている。
【特許文献1】特開昭60−230248号公報
【特許文献2】特表2006−523347号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1において開示されている技術では、周辺装置に対するアクセス制限の設定をシステム上において実行されるプログラムのそれぞれで行わなければならない。例えば、プログラムがOSのような信頼済みのものであっても、ユーザーアプリケーションのような信頼済みでないものであっても、それぞれのプログラム毎に行わなければならない。また、特許文献2では、信頼済みのバスマスタが信頼済みでないバスマスタ等のアクセス制限を設定する。しかし、特許文献2においても、アクセス制限に関する設定は、システムの設計者あるいはシステム上で実行されるプログラムの設計者が行う。そのため、信頼性を向上させるためには、各プログラムあるいはシステムにおいて確実な設定がなされていなければならない。しかしながら、アクセス制限の設定そのものに誤りがあった場合、特許文献1、2に開示されている技術では、誤りに対してそれを補償するものがないため、十分なシステムの信頼性を確保できない問題がある。特に、信頼済みでないプログラムが複数のベンダーにより供給されるシステムでは、アクセス制限の設定に誤りが混入する可能性が高く信頼性を大きく低下させる問題がある。
【0006】
また、レジスタ等にアクセス制限に関する設定を格納した場合、アプリケーションにおいてなされた設定が正しいものであったとしても、ソフトエラー等のハードウェアのエラーにおいて設定が破壊されることがある。特許文献1、2に開示される方法では、アクセス制限に関する設定がプログラムあるいはシステム毎に定められるだけである。そのため、このようなハードウェアのエラーに起因するアクセス制限の設定の破壊が生じた場合、破壊された設定に基づきシステムが動作するため、誤動作が発生するおそれがある。つまり、特許文献1、2に開示される方法では、ハードウェアのエラーに起因する問題により、十分な信頼性を確保できない問題がある。
【課題を解決するための手段】
【0007】
本発明の一態様は、第1動作権限レベル又は前記第1動作権限レベルよりも高い動作権限レベルの第2動作権限レベルで複数のプログラムを実行する演算回路と、前記演算回路に接続され、前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備え、前記周辺装置保護回路は、前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第1保護設定値と、前記第1保護設定値よりも高い保護レベルとして設定され、前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第2保護設定値と、前記演算回路が前記第1動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第1及び第2保護設定値の双方ともに参照してアクセス許可/不許可情報を生成し、前記演算回路が前記第2動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第2保護設定値を参照して前記アクセス許可/不許可情報を生成する設定選択回路と、前記演算回路から出力される前記周辺装置に対するアクセス情報と前記アクセス許可/不許可情報とを入力して前記演算回路から前記周辺装置へのアクセスの許可/不許可を判断するアクセス保護回路と、を有するデータ処理装置である。
【0008】
また、本発明の別の態様は、第1動作権限レベル又は前記第1動作権限レベルよりも高い動作権限レベルの第2動作権限レベルで複数のプログラムを実行する演算回路と、前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第1保護設定値と、前記第1保護設定値よりも高い保護レベルとして設定され、前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第2保護設定値と、に基づき前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備えるデータ処理装置のアクセス保護方法であって、前記演算回路が前記第1動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第1及び第2保護設定値の双方ともに参照してアクセス許可/不許可を判定し、前記演算回路が前記第2動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第2保護設定値を参照して前記アクセス許可/不許可を判定するデータ処理装置におけるアクセス保護方法である。
【0009】
本発明にかかるデータ処理装置及びデータ処理装置におけるアクセス保護方法は、演算回路から周辺装置に対してアクセスが発生した場合に、第1保護設定値又は/及び第2保護設定値と動作権限レベルとに基づきアクセスを制御する周辺装置保護回路を有する。より具体的には、周辺装置保護回路は、第1動作権限レベルで演算回路が動作する場合に第1及び第2保護設定値を参照してアクセス許可/不許可情報を生成し、第2動作権限レベルで演算回路が動作する場合に第2保護設定値を参照してアクセス許可/不許可情報を生成する。これにより、例えば、第1保護設定値が誤っていた場合であっても、第2保護設定値においてアクセスが制限されていれば、第1動作権限レベルによる周辺装置に対するアクセスを防止することができる。つまり、本発明のデータ処理装置では、上位レベルの保護設定の内容を下位レベルの保護設定に反映させる。これにより、本発明によれば、データ処理装置の信頼性を向上させることができる。
【発明の効果】
【0010】
本発明のデータ処理装置によれば、アクセス制限の設定に誤りがあった場合であっても高い信頼性を確保することができる。
【発明を実施するための最良の形態】
【0011】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。実施の形態1にかかるデータ処理装置1のブロック図を図1に示す。図1に示すように、データ処理装置1は、演算回路(例えば、CPU:Central Processing Unit)10、記憶装置(例えば、メモリ)11、周辺装置保護回路12、周辺装置A〜D、データバス、周辺バスを有する。CPU10は、データバスを介してメモリ11及び周辺装置保護回路12と接続される。また、CPU10は、周辺装置保護回路12を介して周辺バスと接続される。周辺バスには周辺装置A〜Dが接続される。なお、図1では、4つの周辺装置を示したが、周辺バスにはさらに多くの周辺装置が接続されていても良い。また、図1では、周辺装置保護回路12をデータバスと周辺バスとの間に配置したが、周辺装置保護回路12は、CPU10と周辺装置との間に配置されていれば良く、例えば周辺装置と周辺バスとの接続箇所にそれぞれ配置されていても良い。また、CPU10とデータバスの間に配置されていても良く、この場合、データバスと周辺バスとは同一のバスであり、周辺装置保護回路12によってメモリ11へのアクセスが制限されても良い。
【0012】
CPU10は、プログラムを実行する演算部である。また、CPU10は、実行するプログラムに応じてアクセス制限情報、動作権限情報及びアクセス情報を出力する。アクセス制限情報は、実行するプログラム毎に指定される動作権限レベル毎の周辺装置に対するアクセスの許可又は不許可を指定する情報である。動作権限情報は、実行するプログラムに応じて動作権限レベルを示す情報である。動作権限レベルは、CPU10回路の動作権限を示すものであり、CPU10がアクセス可能な周辺装置の範囲を示すものである。アクセス情報は、データバス上に出力される情報であって、アクセス対象となる前記周辺装置のアドレスを示すアクセス先アドレスを含む情報である。
【0013】
なお、動作権限レベルは、第1動作権限レベルと第1動作権限レベルよりも高い動作権限レベルの第2動作権限レベルを含む。以下の説明では、データ処理装置1が3段階の保護レベル(例えば、ユーザー権限、OS権限、管理権限)を有する例について説明する。そこで、以下の説明における動作権限レベルは、3つの動作権限レベルのうち2つを参照し、低いレベルの動作権限レベルが第1動作権限レベルに相当するものとし、高いレベルの動作権限レベルが第2動作権限レベルに相当するものとする。
【0014】
また、アクセス制限情報には第1保護設定値及び第2保護設定値が含まれる。第1保護設定値は、CPU10の周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む。第2保護設定値は、第1保護設定値よりも高い保護レベルとして設定され、CPU10の周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む。以下の説明では、データ処理装置1が3段階の保護レベル(例えば、レベル1、レベル2、レベル3)を有する例について説明する。そこで、以下の説明における保護設定値は、3つの保護設定値のうち2つを参照し、低い動作権限レベルに対応して設けられる設定値が第1保護設定値に相当するものとし、高い動作権限レベルに対応して設けられる設定値が第2保護設定値に相当するものとする。
【0015】
メモリ11は、CPU10において実行されるプログラムの格納領域、及び、CPU10において実行されるプログラムの処理で生じたデータの一時記憶領域として用いられる。
【0016】
周辺装置保護回路12は、アクセス制限情報、アクセス情報及び動作権限情報に基づきCPU10から周辺装置A〜Dに対して送信されるアクセス情報を周辺装置A〜Dに伝達するか否かを制御する。より具体的には、周辺装置保護回路12は、アクセス制限情報、アクセス情報及び動作権限情報が入力され、動作権限情報により示される動作権限レベルがアクセス制限情報において許可とされるレベル以上であった場合に、周辺装置A〜Dに対するアクセス情報の送信を許可する。周辺装置保護回路12の詳細は後述する。
【0017】
周辺装置A〜Dは、CPU10によってアクセスされる各種機能が実現される装置である。例えば、動作クロックの生成及び周波数の制御を行うクロック制御回路、シリアルインタフェース回路、又は、割り込みコントローラなどの回路である。なお、メモリ11は、周辺装置の1つとして含めることが可能である。
【0018】
ここで、周辺装置保護回路12の詳細について説明する。周辺装置保護回路12のブロック図を図2に示す。図2に示すように、周辺装置保護回路12は、周辺装置保護設定回路20とアクセス保護回路30とを有する。周辺装置保護設定回路20は、複数の設定レジスタ群21a〜21d、複数の設定選択回路22a〜22dを有する。
【0019】
設定レジスタ群21a〜21dは、保護対象となる周辺装置の数に対応して設けられる数が決まる。図2に示す例では、保護対象となる周辺装置が4つであるため、設定レジスタ群も4つ設けられる。設定レジスタ群21a〜21dは同じ構成であるため、設定レジスタ群21aを例に設定レジスタ群について説明する。設定レジスタ群21aは第1〜第3の設定レジスタを有する。第1〜第3の設定レジスタには、CPU10から送信されるアクセス制限情報に含まれる動作権限レベル毎の周辺装置に対するアクセスの許可又は不許可を示す設定値が格納される。より具体的には、第1の設定レジスタには、動作権限情報が最下位の権限レベルを示す場合における周辺装置に対する許可又は不許可の設定値が格納される。第2の設定レジスタには、動作権限情報が最上位と最下位との間の中間レベルの権限レベルを示す場合における周辺装置に対する許可又は不許可の設定値が格納される。第3の設定レジスタには、動作権限情報が最上位の権限レベルを示す場合における周辺装置に対する許可又は不許可の設定値が格納される。
【0020】
複数の設定選択回路22a〜22dは、保護対象となる周辺装置の数に対応して設けられる数が決まる。図2に示す例では、保護対象となる周辺装置が4つであるため、設定選択回路も4つ設けられる。また、設定選択回路22a〜22dは、それぞれ設定レジスタ群21a〜21dに対応して設けられる。図2に示す例では、設定レジスタ群21aに対応して設定選択回路22aが設けられ、設定レジスタ群21bに対して設定選択回路22bが設けられている。設定選択回路22a〜22dは、それぞれ設定レジスタ群21a〜21dに格納されたアクセス制限情報を参照し、動作権限情報に含まれる動作権限レベルがアクセス制限情報において許可とされるレベル以上であった場合にアクセスを許可する状態を示すアクセス許可/不許可情報(例えば、0)を出力する。一方、動作権限情報に含まれる動作権限レベルがアクセス制限情報において許可とされるレベルよりも低いものであった場合にアクセスを不許可とする状態を示すアクセス許可/不許可情報(例えば、1)を出力する。設定選択回路22a〜22dの具体的構成については後述する。
【0021】
アクセス保護回路30は、アクセス先判定回路31a〜31d、許可判定回路32a〜32d、アクセス制御回路33を有する。アクセス先判定回路31a〜31dは、それぞれ対応する周辺装置のアドレスを示す周辺装置アドレスが予め設定されている。そして、アクセス先判定回路31a〜31dは、周辺装置アドレスとアクセス情報に含まれるアクセス先アドレスとの比較一致結果信号を出力する。例えば、周辺装置アドレスとアクセス先アドレスとが一致していれば比較一致結果信号は0となり、周辺装置アドレスとアクセス先アドレスとが不一致であれば比較一致結果信号は1となる。また、本実施の形態においては、アクセス先判定回路31aはクロック制御回路に対応しており、アクセス先制御回路31bは割り込みコントローラINTCに対応しており、アクセス先判定回路31cはDMA(Direct Memory Access)コントローラに対応しており、アクセス先判定回路31dはタイマーに対応している。
【0022】
許可判定回路32a〜32dは、それぞれ設定選択回路22a〜22dから出力されるアクセス許可/不許可情報とアクセス先判定回路が出力する比較一致結果信号とに基づき周辺装置に対するアクセスの許可又は不許可を示すアクセス制御情報を出力する。より具体的には、比較一致結果信号が一致状態(例えば、0)である周辺装置に対して、これと対応するアクセス許可/不許可情報が0を示す場合に許可状態を示すアクセス制御情報(例えば、0)を出力する。一方、比較結果一致信号又はアクセス許可/不許可情報のいずれか1つが不一致又は不許可を示している場合は、不許可状態を示すアクセス制御情報(例えば、1)を出力する。
【0023】
アクセス制御回路33は、アクセス制御情報に基づきアクセス情報の周辺装置に対する送信を行うか否かを制御する。本実施の形態におけるアクセス情報は、CPU10からデータバスを介して出力されるものであって、アクセス先アドレス、周辺アクセス要求、その他アクセス情報を含む。そして、アクセス制御回路33には、これらのアクセス情報が入力される。アクセス制御回路33は、許可判定回路32a〜32dから出力されるアクセス制御情報の値のうちいずれか1つが許可状態であれば、アクセス情報を周辺バスに出力する。一方、アクセス制御回路33は、許可判定回路32a〜32dから出力されるアクセス制御情報の値の全てが不許可状態であれば、アクセス情報を遮断する。アクセス情報の遮断を行った場合アクセス制御回路33がCPU10に違反通知を行う構成としても良い。
【0024】
次に、設定選択回路22a〜22dの構成について説明する。設定選択回路22a〜22dは同じ構成であるため、ここでは、設定選択回路22aを例に、設定選択回路の構成を説明する。設定選択回路22aのブロック図を図3に示す。図3に示すように、設定選択回路22aは、第1〜第3の権限判定回路23a〜23c、AND回路24、26、28、OR回路25、27、29を有する。
【0025】
第1の権限判定回路23aは、動作権限情報により示される動作権限レベルが最下位レベルを示すものか否かを判定する。この最下位レベルの動作権限レベルは、例えば、CPU10においてユーザープログラムが実行されているときに示されるユーザー権限である。つまり、第1の判定回路23aは、動作権限情報により示される動作権限レベルがユーザー権限である場合に判定結果として1を出力する。一方、動作権限情報により示される動作権限レベルがユーザー権限以外であった場合、判定結果として0を出力する。
【0026】
第2の権限判定回路23bは、動作権限情報により示される動作権限レベルが最上位レベルと最下位レベルとの中間とレベルとなる中位レベルを示すものか否かを判定する。この中位レベルの動作権限レベルは、例えば、CPU10においてOS(Operating System)に関するタスクが実行されているときに示されるOS権限である。つまり、第2の判定回路23bは、動作権限情報により示される動作権限レベルがOS権限である場合に判定結果として1を出力する。一方、動作権限情報により示される動作権限レベルがOS権限以外であった場合、判定結果として0を出力する。
【0027】
第3の権限判定回路23cは、動作権限情報により示される動作権限レベルが最上位レベルを示すものか否かを判定する。この最上位レベルの動作権限レベルは、例えば、CPU10において管理プログラムが実行されているときに示される管理権限である。つまり、第3の判定回路23cは、動作権限情報により示される動作権限レベルが管理権限である場合に判定結果として1を出力する。一方、動作権限情報により示される動作権限レベルが管理権限以外であった場合、判定結果として0を出力する。
【0028】
AND回路24、26、28は、入力される複数の信号の論理積演算結果を出力する。また、OR回路25、27、29は、入力される複数の信号の論理積演算結果を出力する。AND回路24には、第1の権限判定回路23aが出力する値と第1の設定レジスタに格納された設定値とが入力される。OR回路25には、第1の権限判定回路23aが出力する値と、第2の権限判定回路23bが出力する値とが入力される。AND回路26には、OR回路25が出力する値と第2の設定レジスタに格納された設定値とが入力される。OR回路27には第1の権限判定回路23aが出力する値と、第2の権限判定回路23bが出力する値と、第3の権限判定回路23cが出力する値とが入力される。AND回路28には、OR回路27が出力する値と、第3の設定レジスタに格納された設定値とが入力される。OR回路29には、AND回路24、26、28が出力する値が入力され、これら入力される値の論理和演算結果をアクセス許可/不許可情報として出力する。アクセス許可/不許可情報は、値が0である場合にアクセス許可状態を示し、値が1である場合にアクセス不許可状態を示す。なお、第1〜第3の設定レジスタに格納されるアクセス情報は、格納される値が0ならばアクセス許可を示し、値が1ならばアクセス不許可を示す。
【0029】
ここで、図4に設定選択回路22aの真理値表を参照して、設定選択回路22aの動作について説明する。図4において左側に示す設定レジスタの設定値は、レベル3の欄に示されている値が第3の設定レジスタに格納されている設定値であり、レベル2の欄に示されている値が第2の設定レジスタに格納されている設定値であり、レベル1の欄に示されている値が第1の設定レジスタに格納されている設定値である。また、右側に示すアクセス許可/不許可情報の値は、左側の設定値の状態においてどの動作権限レベルであればアクセス許可/不許可情報が許可あるいは不許可となるかを示す。
【0030】
まず、各設定レジスタに格納される設定値が第1の設定であるときについて説明する。第1の設定では、レベル1〜レベル3の全てが0(許可状態)である。この場合、AND回路24、26、28には対応する設定レジスタから0が入力される。そのため、AND回路24、26、28の出力はいずれも0となる。従って、いずれの動作権限レベルであってもアクセス許可/不許可情報は0(許可状態)となる。
【0031】
各設定レジスタに格納される設定値が第2の設定であるときについて説明する。第2の設定では、レベル1が1(不許可状態)であって、レベル2、3が0(許可状態)である。この場合、AND回路24には第1の設定レジスタから1が入力される。そして、動作権限情報がユーザー権限であればAND回路24の出力は1となる。一方、AND回路26、28には対応する設定レジスタから0が入力される。そのため、AND回路26、28の出力はいずれも0となる。従って、動作権限レベルがユーザー権限である場合のみアクセス許可/不許可情報は1(不許可状態)となる。
【0032】
各設定レジスタに格納される設定値が第3の設定であるときについて説明する。第3の設定では、レベル2が1(不許可状態)であって、レベル3が0(許可状態)である。この場合、AND回路26には第2の設定レジスタから1が入力される。そして、動作権限情報がユーザー権限又はOS権限であればAND回路26の出力は1となる。一方、AND回路28には第3の設定レジスタから0が入力される。そのため、AND回路28の出力は0となる。従って、動作権限レベルがOS権限である場合、アクセス許可/不許可情報は1(不許可状態)となる。一方、動作権限レベルが管理権限である場合、アクセス許可/不許可情報は0(許可状態)となる。また、動作権限レベルがユーザー権限であった場合、レベル2の設定値に基づきAND回路26の出力が1となるため、レベル1の設定値にかかわらずアクセス許可/不許可情報は1(不許可状態)となる。
【0033】
各設定レジスタに格納される設定値が第4の設定であるときについて説明する。第4の設定では、レベル3が1(不許可状態)である。この場合、AND回路28には第3の設定レジスタから1が入力される。そして、動作権限情報がユーザー権限、OS権限、管理権限のいずれであってもAND回路28の出力は1となる。従って、レベル3の設定値が1である場合、いずれの動作権限レベルであっても、アクセス許可/不許可情報は1(不許可状態)となる。つまり、レベル3の設定値が1である場合、レベル1、2の設定値が0又は1のいずれであっても、ユーザー権限及びOS権限に対するアクセス許可/不許可情報は1(不許可状態)となる。
【0034】
つまり、本実施の形態にかかる周辺装置保護回路12は、上位レベルに対応する設定レジスタにおいて1(不許可状態)が設定されていれば、設定レジスタに格納されている値にかかわらず、不許可状態が設定されている動作権限レベル以下の動作権限レベルによる周辺装置に対するアクセスを制限することができる。
【0035】
次に、本実施の形態におけるアクセス保護設定の一例について説明する。図5に本実施の形態におけるアクセス保護設定の一例を示す。図5に示すように、本実施の形態では、データ処理装置1の動作の基本部分に関わるクロック制御回路のような重要な周辺装置に対する保護設定は、第1〜第3の設定レジスタのいずれにも1(不許可状態)を設定し、保護を強化する。また、割り込みコントローラINTCのような周辺装置に対するアクセス制限は、データ処理装置において実行されるプログラム間の独立性を補償するために管理権限レベルの動作に対してのみ許可状態とし、データ処理装置の信頼性を向上させる。
【0036】
さらに、DMAコントローラやタイマーなどのユーザープログラムにおいて頻繁に用いられる周辺装置に対しては、ユーザープログラムの動作に応じて許可と不許可を切り替える。図5に示す例では、DMAコントローラに対するユーザー権限によるアクセスは不許可状態とし、タイマーに対するユーザー権限によるアクセスは許可状態とする。第2の設定レジスタ及び第3の設定レジスタに格納される設定値に基づき上位の動作権限レベルに対して許可状態となる周辺装置に対するアクセス制限はユーザープログラムに応じて切り替えることが可能である。つまり、第1の設定レジスタに格納される値はユーザープログラム毎に異なる設定となることがある。
【0037】
続いて、設定レジスタに格納される設定値の変更方法について説明する。図6に設定レジスタの設定変更方法の概念図を示す。図6に示すように、最下位レベルの動作権限レベルであるユーザー権限で動作するプログラムは、ユーザー権限に対するアクセス制限を設定する第1の設定レジスタの設定を変更することはできない。また、ユーザー権限ではOS権限に対するアクセス制限を設定する第2の設定レジスタ、及び、管理権限に対するアクセス制限を設定する第3の設定レジスタの設定を変更することはできない。
【0038】
中位レベルの動作権限レベルとなるOS権限で動作するプログラムは、最下位レベルのユーザー権限に対するアクセス制限を設定する第1の設定レジスタの設定を変更することができる。一方、OS権限では、OS権限に対するアクセス制限を設定する第2の設定レジスタの設定は変更することができない。また、OS権限では、管理権限に対するアクセス制限を設定する第3の設定レジスタの設定は変更することができない。
【0039】
最上位レベルの動作権限レベルとなる管理権限で動作するプログラムは、中位レベルのOS権限に対するアクセス制限を設定する第2の設定レジスタの設定、および、最下位レベルのユーザー権限に対するアクセス制限を設定する第1の設定レジスタの設定、を変更することができる。また、管理権限で動作するプログラムは、管理権限に対するアクセス制限を設定する第3の設定レジスタの設定をも変更することができる。ただし、本実施の形態では、管理権限で動作するプログラムは、上位権限移行プログラム(例えば、設定変更専用プログラム)を呼び出し、設定変更専用プログラムにより設定変更動作を行う。これにより、管理権限で動作するプログラムによる無造作な設定変更による信頼性の低下を防ぐことができる。
【0040】
続いて、本実施の形態のデータ処理装置1の動作について説明する。図7にデータ処理装置1の動作を示すフローチャートを示す。なお、フローチャートにおいて、ステップA101〜A113は管理権限で実行される処理であり、ステップS101〜S110はOS権限で実行される処理であり、ステップU101〜U103はユーザー権限で実行される処理である。
【0041】
図7に示すように、まずCPU10に対してリセットが発生すると、CPU10は、管理権限で動作を開始する(A101)。続いてCPU10の初期化が開始される(ステップA102)。そして、初期化の最初のステップとして、CPU10は、アクセス制限情報を出力し、第3の設定レジスタに設定を格納する(ステップA103)。ステップA103の処理により、データ処理装置1において最も重要な周辺装置に対するアクセスが保護される。続いて、CPU10の初期化処理を引き続き実行し、初期化処理を完了させる(ステップA104)。その後、CPU10は、アクセス制限情報を出力し、第2の設定レジスタに設定を格納する(ステップA105)。ステップA105が完了すると、管理権限で実行されるプログラムは、OSに動作権限を移行し、CPU10はOS権限による動作を開始する(ステップA106)。
【0042】
続いて、CPU10は、メモリ11からOSプログラムを呼び出し、OSプログラムを起動する(ステップS101)。そして、OSの初期化処理を実行して、OSプログラムに関する初期化を完了させる(ステップS102)。その後、CPU10は、ユーザープログラムに基づき実行されるユーザータスクのスケジュールを行う(S103)。そして、スケジュールに基づき実行されるユーザータスクに対応した設定を第1の設定レジスタに対して行う(ステップS104)。その後、OSプログラムは、ユーザープログラムに動作権限を移行し、CPU10はユーザー権限にて動作を開始する(ステップS105)。
【0043】
ユーザー権限での動作では、ステップU101〜U103においてユーザータスクを実行する。ユーザープログラムの実行中に割り込み等の処理が発生しない場合、ユーザータスクの処理が完了するとユーザープログラムは動作権限をOSプログラムに移行させ、CPU10はOS権限による動作を開始する(ステップS106)。この下位権限から上位権限への動作権限の移行は、システムコール命令を実行するなどOS権限で動作するプログラムの動作開始と同時に行われる。そのためユーザープログラムの実行が行われている最中に動作権限が移行することはない。ステップS106の処理が完了すると処理はステップS103に戻る。一方、ユーザータスクの実行中に割り込み要求が発生した場合、実行中のユーザータスクの処理を抜けてステップS107に進む(ステップU102)。
【0044】
ステップS107では、OSプログラムがユーザープログラムから動作権限を譲り受け、CPU10の動作権限をOS権限に移行させる。そして、ステップU102で割り込み要求した処理がクロックの変更等のOS権限において制限されている処理であるか否かを判定する(ステップS108)。ステップS108において、割り込み処理がクロックの変更ではないと判定された場合、ステップS109に進む。ステップS109では、割り込み処理を実行し、割り込み処理を完了させる。その後、OSプログラムは、動作権限をユーザープログラムに戻し、CPU10の動作権限をユーザー権限に移行させる(ステップS110)。ステップS110が完了するとステップU103の処理が実行される。なお、図7に示したフローチャートは動作の一例であり、ステップU101〜U103では複数の割り込みが発生することがある。また、ステップS109での処理の結果、ステップS103へ進むなど元のユーザープログラムに戻らないこともある。
【0045】
一方、ステップS108において、割り込み処理がクロックの変更であると判断された場合、処理はステップA107に進む。ステップA107では、OSプログラムから管理プログラムに権限が移行され、CPU10が管理権限で動作を開始する。そして、管理プログラムは、設定変更専用プログラムとしてクロック制御タスクを起動する(ステップA108)。このクロック制御タスクによってクロック制御回路に対する保護設定が格納される第3の設定レジスタの設定を変更する(ステップA109)。その後、CPU10からクロック制御回路へのアクセスが行われ、クロック制御回路の設定が変更される(ステップA110)。次に、CPU10は、第3の設定レジスタの設定を再度不許可状態に変更する(ステップA111)。そして、CPU10は、クロック制御タスクの終了処理を行う(ステップA112)。また、管理プログラムはOSプログラムに権限を移行し、CPU10は、OS権限で動作を再開する(ステップA113)。その後、処理はステップS103に戻る。
【0046】
上記説明より、本実施の形態のデータ処理システムでは、管理プログラム、OSプログラム、ユーザープログラムが実行される。管理プログラムは、最もレベルの高い動作権限レベルで動作するプログラムである。この管理プログラムは、例えば、データ処理装置を利用する者が設計するものであって、例えば、データ処理システムの基本的な設定を行うプログラムと自己診断プログラムを含む。つまり、管理プログラムは、データ処理装置の基本的な動作を行う。そのため、管理プログラムは、精度の高い動作検証が行われた、いわゆる信頼済みのプログラムと呼ばれる。
【0047】
OSプログラムは、データ処理装置において実行されるユーザープログラムが共通して用いる機能の提供、及び、ユーザープログラム間の調停を行う。このOSプログラムはデータ処理装置を利用する者が設計しても良く、第三者(例えばサードパーティ)によって提供されるものであっても良い。OSプログラムは、ユーザープログラムにおいて共通に用いられるため、高精度な検証が行われているが、プログラム自体が大きいため、管理プログラムよりも不具合が混入する確率が高い。従って、OSプログラムは、信頼済みのプログラムではあるものの、管理プログラムよりは信頼性が劣る。
【0048】
ユーザープログラムは、OSプログラムの制御下で動作する個別機能を提供するプログラムであって、データ処理装置を利用する者の他にも様々なベンダーから供給される。つまり、ユーザープログラムは、各ベンダーにおいて個別に設計されるため、システムの不理解やヒューマンエラー等により不具合が混入する確率が高い。また、ユーザープログラムは、個別のベンダーにより設計されるため、他のユーザープログラムとの協調動作を考慮した信頼性の試験を十分に行っていない可能性が高い。このようなことから、ユーザープログラムは信頼済みでないプログラムと呼ばれる。
【0049】
本実施の形態にかかるデータ処理装置は、管理プログラム、OSプログラム、ユーザープログラムが動作するデータ処理装置において周辺装置のアクセス制限の信頼性を向上させることができる。
【0050】
具体的には、データ処理装置1におけるCPU10が、実行するプログラムに応じて動作権限レベルを切り替え、周辺装置保護回路12が、動作権限レベルと動作権限レベル毎のアクセスの許可又は不許可を設定するアクセス制限情報とを参照し、動作権限レベルがアクセス制限情報において不許可状態であるレベル以下である場合にCPU10から出力されるアクセス情報を遮断する。つまり、周辺装置保護回路12は、上位レベルの動作権限において不許可が設定されていれば、そのレベルよりも低いレベルの動作権限レベルでは、CPU10の周辺装置に対するアクセスを防止する。
【0051】
このようなアクセス制限を行うことで、信頼済みでないユーザープログラムに対してなされた設定が誤っていた場合であっても、それよりも上位のアクセス制限の設定によって、重要な周辺装置に対するアクセスを禁止することができる。つまり、信頼済みでないプログラムが実行されるデータ処理装置において、本実施の形態にかかるCPU10及び周辺装置保護回路12を採用することで、アクセス制限に関する信頼性を向上させることができる。信頼済みでないユーザープログラムが多数動作するシステムにおいては、設定の誤りが混入する確率が高いため、本実施の形態にかかるデータ処理装置1による信頼性向上の効果は特に高い。
【0052】
また、本実施の形態では、信頼済みプログラムによって、データ処理装置において重要な周辺装置に対するアクセス制限情報を設定しておくことができる。そのため、信頼済みでないユーザープログラムによる重要な周辺装置に対するアクセスを確実に防止することがでる。つまり、本実施の形態にかかるデータ処理装置1によれば、ユーザープログラムの誤りに対してもシステムの信頼性を向上させることができる。
【0053】
さらに、本実施の形態では、アクセス制限情報を設定レジスタに格納する。このとき、従来と同様にソフトエラー等に起因して格納したデータにビット反転が発生する場合がある。しかし、このようなビット反転によって、低レベルの動作権限レベルに対応した設定レジスタに格納した設定値が破壊された場合であっても、データの破壊が生じた設定レジスタよりも高いレベルの動作権限レベルに対応した設定レジスタによって、データが破壊された設定レジスタに対応する動作権限レベルに関するアクセスを制限することができる。つまり、本実施の形態にかかるデータ処理装置1は、ソフトエラー等のハードウェアエラーに起因する不具合に対しても信頼性を向上させることができる。
【0054】
また、本実施の形態にかかるデータ処理装置によれば、アクセス制限に関する設定変更にかかるオーバーヘッドを削減することができる。従来の方法では、設定レジスタの設定をプログラムの変更だけでなく動作権限レベルの変更に応じて書き換える必要がある。しかしながら、本実施の形態にかかる設定レジスタ群21a〜21dは、それぞれ各動作権限レベルに対する設定レジスタを有している。そして、各設定レジスタには、それぞれの動作権限レベルに対応したアクセスの許可又は不許可情報が格納されている。そのため、本実施の形態にかかるデータ処理装置1では、動作権限レベルの変更に伴い設定レジスタの変更を行うことがない。また、設定選択回路22a〜22dは、常に第1〜第3の設定レジスタの設定値を参照して、アクセス許可/不許可情報を出力する。つまり、本実施の形態におけるデータ処理装置1では、動作権限レベルの変更に伴い、動作権限情報に含まれる動作権限レベルを変更するのみで、各動作権限レベルにおけるアクセス保護を的確に行うことができる。従って、本実施形態にかかるデータ処理装置1では、動作権限レベルの切り替えに伴い設定レジスタの書き換えが発生することがなく、設定レジスタの書き換えによる動作のオーバーヘッドを低減することができる。なお、OS権限及び管理権限に対する設定変更は本実施の形態にかかるデータ処理装置1においても発生する。例えば、本実施の形態では、管理権限に対する設定変更は、起動時(ステップA103)及び個々に重要な周辺装置にアクセスするとき(ステップA109)に発生するのみである。更に、ステップA109における設定変更は設定値の全てを変更する必要はない。また、OS権限に対する設定変更は、OSの起動前に発生する(ステップA105)のみである。つまり、ユーザー権限に対する設定変更の頻度に比べ、OS権限及び管理権限に対する設定変更は極まれにしか発生しないため、データ処理装置1の性能劣化への影響は極めて小さいものである。なお、システムの運用形態によってはOS権限や管理権限に対する設定変更を、実行するプログラム切り替え時に変更しても良い。
【0055】
実施の形態2
実施の形態2は、周辺装置保護設定回路20の変形例を示すものである。実施の形態2にかかる周辺装置保護設定回路20のブロック図を図8に示す。図8に示すように、実施の形態2にかかる周辺装置保護設定回路20は、設定レジスタ群41a及び設定選択回路42aを有する。
【0056】
設定レジスタ群41aは、実施の形態1における設定レジスタ群21aの最下位レベルの設定に対するカバーレジスタを加えたものである。カバーレジスタには、その他の設定レジスタと同様にCPU10から出力されるアクセス制限情報に基づき値が設定される。カバーレジスタには、最下位レベルの動作権限レベルで動作する全てのユーザープログラムにおいて共通して用いられる共通保護設定値が格納される。実施の形態2において示す例では、カバーレジスタに設定される共通保護設定値は、最下位レベルの動作権限レベルに対応した最下位設定レジスタ(例えば、第1の設定レジスタ)に格納される値の論理積演算結果を格納する。より具体的には、第1の設定レジスタには、CPU10で実行されるユーザープログラム毎に異なる値が設定される。カバーレジスタには、ユーザープログラム毎に第1の設定レジスタに格納される複数の設定値の論理積演算結果を格納する。
【0057】
また、設定選択回路42aは、実施の形態1にかかる設定選択回路22aにAND回路43を追加したものである。AND回路43は、カバーレジスタに設定された値と第1の権限判定回路が出力する値の論理積演算結果を出力する。そして、AND回路43の出力は、他のAND回路の出力とともにOR回路29に入力される。
【0058】
ここで、カバーレジスタを用いた場合に各設定レジスタに格納される値の例を図9に示す。そして、図9を参照してカバーレジスタの設定について説明する。図9に示すように、第1の設定レジスタには、ユーザープログラム毎に異なる値が設定される。そこで、いずれのユーザープログラムにおいても不許可(例えば、1)とされるDMAコントローラに対しては、カバーレジスタに不許可を設定する。また、一方、タイマーAや、タイマーB等の設定値は、いずれかのユーザープログラムにおいて許可(例えば、0)の設定がされる。そのため、カバーレジスタの設定値としては許可の設定を行う。
【0059】
カバーレジスタの設定を全てのユーザープログラムにおいて共通に用いられるアクセスの許可又は不許可を示す値とすることで、本来いずれのユーザープログラムにおいても不許可設定がなされなければならない周辺装置に対して、第1の設定レジスタで許可の設定が誤ってなされた場合であっても、カバーレジスタの設定値に基づきその周辺装置に対するアクセスを防止することができる。具体的には、第1の設定レジスタの設定値が誤って許可設定となってしまった場合、AND回路24は0を出力する。これに対して、カバーレジスタが不許可設定であった場合、AND回路43はユーザー権限において1を出力する。つまり、第1の設定レジスタの設定値に不正があった場合であっても、カバーレジスタの設定値に基づき不正なアクセスを防止することができる。
【0060】
上記説明より、実施の形態2にかかるデータ処理装置によれば、カバーレジスタによって設定に対する信頼性を向上させることができる。つまり、実施の形態2にかかるデータ処理装置1は、保護設定レジスタの不正書き換えに対して実施の形態1よりも高い信頼性を確保することができる。なお、カバーレジスタの設定値の変更は、カバーレジスタの論理積演算対象が第1の設定レジスタである場合、OS権限のプログラムにより実行される。
【0061】
なお、カバーレジスタに格納される共通保護設定値は、OSプログラムの動作状況に応じて書き換えられる第2の設定レジスタの設定値のうち複数の動作状況において共通に用いられる設定値としても良い。この場合、設定選択回路22aは、OS権限でアクセスが行われた場合に第2の設定レジスタに格納された設定値と共通保護設定値を参照してアクセス許可/不許可情報を出力する。この場合、カバーレジスタは第2の設定レジスタに対応して設けられることになる。
【0062】
さらに、カバーレジスタに格納される共通保護設定値は、第1の設定レジスタ及び第2の設定レジスタに格納される設定値のうち共通する値であっても良い。この場合、設定選択回路22aは、第1の設定レジスタ及び第2の設定レジスタの設定値に加え、共通保護設定値を参照してアクセス許可/不許可情報を出力する。
【0063】
つまり、共通保護設定値は、保護すべき動作権限レベル以下の設定値において、共通となる設定値であれば良い。そして、設定選択回路22aは、動作権限レベルに応じて共通設定値を参照すれば良い。なお、カバーレジスタは、1つの設定レジスタ群の中に複数も受けられていても良い。例えば、第1の設定レジスタに対する共通保護設定値を格納した第1のカバーレジスタと、第2の設定レジスタに対する共通保護設定値を格納した第2のカバーレジスタとを有していても良い。
【0064】
実施の形態3
実施の形態3は、実施の形態1の周辺装置保護設定回路20の変形例を示すものである。実施の形態3にかかる周辺装置保護設定回路20のブロック図を図10に示す。図10に示すように、実施の形態3にかかる周辺装置保護設定回路20は、設定選択回路52aを有する。
【0065】
設定選択回路52aは、設定選択回路22aから第3の権限判定回路23c、OR回路27、及び、AND回路28を除いたものである。つまり、実施の形態3では、動作権限レベルとして、上位レベルとなるOS権限と下位レベルとなるユーザー権限の2つのレベルしか設定されていない。そのため、第3の設定レジスタに対応する動作権限レベルが存在しない。つまり、実施の形態3は、動作権限レベルとは対応しないが、最上位レベルよりも上位の保護設定を行う設定レジスタを有する場合を示すものである。
【0066】
ここで、実施の形態3における設定レジスタの設定値の変更方法の概念図を図11に示す。そして、図11を参照して、実施の形態3における設定値の変更方法について説明する。図11に示すように、実施の形態3においても、ユーザー権限で動作するプログラムはいずれの設定レジスタの設定も変更することができない。一方、実施の形態3では、OS権限で動作するプログラムが、第1の設定レジスタ及び第2の設定レジスタの設定を変更する。さらに、OSプログラムから設定変更専用プログラムを呼び出すことで、第3の設定レジスタの設定値を変更することができる。
【0067】
上記説明より、実施の形態3にかかるデータ処理装置1では、管理プログラム等の信頼済みプログラムを準備することなく、3つの権限に対応する設定レジスタの設定を行うことができる。OSプログラムにより、このような設定を可能にすることで、実施の形態3では、管理プログラムの作成期間及びコストを削減することができる。また、管理プログラムの検証時間を削減することができる。
【0068】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、設定選択回路の構成は上記実施の形態に限られたものではなく適宜変更することが可能である。
【図面の簡単な説明】
【0069】
【図1】実施の形態1にかかるデータ処理装置のブロック図である。
【図2】実施の形態1にかかる周辺装置保護回路のブロック図である。
【図3】実施の形態1にかかる設定選択回路のブロック図である。
【図4】実施の形態1にかかる設定選択回路の真理値表である。
【図5】実施の形態1にかかるデータ処理装置における設定レジスタの設定値の例を示す図である。
【図6】実施の形態1にかかるデータ処理装置における設定レジスタの変更方法を示す概念図である。
【図7】実施の形態1にかかるデータ処理装置の動作を示すフローチャートである。
【図8】実施の形態2にかかる設定選択回路のブロック図である。
【図9】実施の形態2にかかるデータ処理装置における設定レジスタの設定値の例を示す図である。
【図10】実施の形態3にかかる設定選択回路のブロック図である。
【図11】実施の形態1にかかるデータ処理装置における設定レジスタの変更方法を示す概念図である。
【符号の説明】
【0070】
1 データ処理装置
10 CPU
11 メモリ
12 周辺装置保護回路
20 周辺装置保護設定回路
21a〜21d、41a 設定レジスタ群
22a〜22d、42a、52a 設定選択回路
23a〜23c 権限判定回路
24、26、28、43 AND回路
25、27、29 OR回路
30 アクセス保護回路
31a〜31d アクセス先判定回路
32a〜32d 許可判定回路
33 アクセス制御回路
A〜D 周辺装置

【特許請求の範囲】
【請求項1】
第1動作権限レベル又は前記第1動作権限レベルよりも高い動作権限レベルの第2動作権限レベルで複数のプログラムを実行する演算回路と、
前記演算回路に接続され、前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備え、
前記周辺装置保護回路は、
前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第1保護設定値と、
前記第1保護設定値よりも高い保護レベルとして設定され、前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第2保護設定値と、
前記演算回路が前記第1動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第1及び第2保護設定値の双方ともに参照してアクセス許可/不許可情報を生成し、前記演算回路が前記第2動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第2保護設定値を参照して前記アクセス許可/不許可情報を生成する設定選択回路と、
前記演算回路から出力される前記周辺装置に対するアクセス情報と前記アクセス許可/不許可情報とを入力して前記演算回路から前記周辺装置へのアクセスの許可/不許可を判断するアクセス保護回路と、
を有するデータ処理装置。
【請求項2】
前記演算回路は、前記第1権限レベルと前記第2権限レベルにおいてそれぞれ複数のプログラムを実行し、前記プログラム毎に前記第1保護設定値又は前記第2保護設定値を変更する請求項1に記載のデータ処理装置。
【請求項3】
前記演算回路は、前記第2動作権限レベルで動作している期間に前記第1保護設定値を変更する請求項1又は2に記載のデータ処理装置。
【請求項4】
前記演算回路は、前記第2動作権限レベルで動作している期間に前記第2保護設定値を変更する請求項1乃至3のいずれか1項に記載のデータ処理装置。
【請求項5】
前記演算回路は、前記第1動作権限レベルで動作している期間は前記第1保護設定値及び前記第2保護設定値を変更することができない請求項1乃至4のいずれか1項に記載のデータ処理装置。
【請求項6】
前記演算回路は、前記第2動作権限レベルで動作する期間において予め準備された上位権限移行プログラムを実行することで、前記第2保護設定値よりも高い保護レベルとして設定され、前記第1及び第2動作権限レベルで動作する前記演算回路の前記周辺装置に対するアクセスの許可又は不許可を指定する第3保護設定値を変更する請求項1乃至5のいずれか1項に記載のデータ処理装置。
【請求項7】
前期周辺装置保護回路は、同じ動作権限レベルで動作する前記複数のプログラムにおいて共通して用いられる前記第1保護設定値と前記第2保護設定値のうち少なくとも一方の設定値を含む共通保護設定値を有し、
前記設定選択回路は、前記動作権限レベルに応じて前記共通保護設定値を参照し、前記演算回路の前記周辺装置に対するアクセス許可/不許可情報を生成する請求項1乃至6に記載のデータ処理装置。
【請求項8】
前記周辺装置保護回路は、前記第1保護設定値を格納する第1の設定レジスタと前記第2保護設定値を格納する第2の設定レジスタとを備える設定レジスタ群を有する請求項1乃至7のいずれか1項に記載のデータ処理装置。
【請求項9】
前記設定レジスタ群は、前記共通保護設定値を格納するカバーレジスタを有する請求項7に記載のデータ処理装置。
【請求項10】
前記設定レジスタ群は、複数の前記周辺装置のそれぞれに対して設けられる請求項7又は8に記載のデータ処理装置。
【請求項11】
前記アクセス保護回路は、
前記周辺装置のアドレスを示す周辺装置アドレスと前記アクセス情報に含まれる前記アクセス先アドレスとの比較一致結果信号を出力するアクセス先判定回路と、
前記比較一致結果信号と前記設定選択回路から出力される前記アクセス許可/不許可情報とに基づき前記周辺装置に対するアクセスの許可又は不許可を示すアクセス制御情報を出力する許可判定回路と、
前記アクセス制御情報に基づき前記アクセス情報の前記周辺装置に対する送信を行うか否かを制御するアクセス制御回路と、
を有する請求項1乃至10のいずれか1項に記載のデータ処理装置。
【請求項12】
第1動作権限レベル又は前記第1動作権限レベルよりも高い動作権限レベルの第2動作権限レベルで複数のプログラムを実行する演算回路と、
前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第1保護設定値と、前記第1保護設定値よりも高い保護レベルとして設定され、前記周辺装置に対するアクセスの許可又は不許可を指定する設定値を含む第2保護設定値と、に基づき前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、
を備えるデータ処理装置の周辺装置保護方法であって、
前記演算回路が前記第1動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第1及び第2保護設定値の双方ともに参照してアクセス許可/不許可を判定し、
前記演算回路が前記第2動作権限レベルで動作中に前記周辺装置に対してアクセスを実行する場合には前記第2保護設定値を参照して前記アクセス許可/不許可を判定するデータ処理装置における周辺装置保護方法。
【請求項13】
前記演算回路は、前記第1権限レベルと前記第2権限レベルにおいてそれぞれ複数のプログラムを実行し、前記プログラム毎に前記第1保護設定値又は前記第2保護設定値を変更する請求項12に記載のデータ処理装置における周辺装置保護方法。
【請求項14】
前記演算回路は、前記第2動作権限レベルで動作している期間に前記第1保護設定値を変更する請求項12又は13に記載のデータ処理装置における周辺装置保護方法。
【請求項15】
前記演算回路は、前記第2動作権限レベルで動作している期間に前記第2保護設定値を変更する請求項12乃至14のいずれか1項に記載のデータ処理装置における周辺装置保護方法。
【請求項16】
前記演算回路は、前記第1動作権限レベルで動作している期間は前記第1保護設定値及び前記第2保護設定値を変更することができない請求項12乃至15のいずれか1項に記載のデータ処理装置における周辺装置保護方法。
【請求項17】
前記演算回路は、前記第2動作権限レベルで動作する期間において予め準備された上位権限移行プログラムを実行することで、前記第2保護設定値よりも高い保護レベルとして設定され、前記第1及び第2動作権限レベルで動作する前記演算回路の前記周辺装置に対するアクセスの許可又は不許可を指定する第3保護設定値を変更する請求項12乃至16のいずれか1項に記載のデータ処理装置における周辺装置保護方法。
【請求項18】
前記周辺装置保護回路は、前記複数のプログラムにおいて共通して用いられる前記第1保護設定値と前記第2保護設定値のうち少なくとも一方の設定値を含む共通設定値を有し、
前記動作権限レベルに応じて前記共通設定値を参照し、前記演算回路の前記周辺装置に対するアクセス許可/不許可を判定する請求項12乃至17に記載のデータ処理装置における周辺装置保護方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−134400(P2009−134400A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2007−308459(P2007−308459)
【出願日】平成19年11月29日(2007.11.29)
【出願人】(302062931)NECエレクトロニクス株式会社 (8,021)
【Fターム(参考)】