(57)【特許請求の範囲】
【請求項１】
第１のアクセス権限レベルに対してアクセスが許可される第１のレジスタと、前記第１のアクセス権限レベルよりも低いアクセス権限レベルである第２のアクセス権限レベルに対してアクセスが許可される第２のレジスタとを含む複数のレジスタを備える周辺装置と、
前記第１のアクセス権限レベル又は前記第２のアクセス権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を実行するプログラムに応じて出力する演算回路と、
前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの許可又は遮断を行う周辺装置保護回路と、を備え、
前記周辺装置保護回路は、前記アクセス権限情報により示されるアクセス権限レベルと前記アクセスアドレスとに基づいて前記特定のレジスタへのアクセスを許可するか否かを判定し、前記判定結果に基づき前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可又は遮断するデータ処理装置。
【請求項２】
前記周辺装置保護回路は、前記特定のレジスタへのアクセスの有効／無効を前記周辺装置に指示する選択信号を出力する請求項１に記載のデータ処理装置。
【請求項３】
前記周辺装置は、前記選択信号が前記演算回路からのアクセスが有効な状態であることを示す場合に、前記特定のレジスタに対する前記演算回路からのアクセスを受ける請求項２に記載のデータ処理装置。
【請求項４】
前記周辺装置保護回路は、
前記アクセス権限情報が前記第１のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第１のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第１のアクセス許可信号を出力する第１のアクセス判定部と、
前記アクセス権限情報が前記第２のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第２のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第２のアクセス許可信号を出力する第２のアクセス判定部と、
を備えるアクセス制御回路を有する請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記第１のアクセス判定部は、
前記複数のレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第１のアドレス検出部と、
前記複数の第１のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第１のアクセス権限レベルを示す場合において、前記複数の第１のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第１のアクセス許可信号を出力する複数の第１の許可判定部と、
複数の前記第１のアクセス許可信号に応じて前記第１のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第１の選択信号を出力する第１の信号合成部と、を有し、
前記第２のアクセス判定部は、
前記複数のレジスタのうち前記第２のアクセス権限レベルに対してアクセスの許可設定がなされるレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第２アドレス検出部と、
前記複数の第２のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第２のアクセス権限レベルを示す場合において、前記複数の第２のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第２のアクセス許可信号を出力する複数の第２の許可判定部と、
複数の前記第２のアクセス許可信号に応じて前記第２のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第２の選択信号を出力する第２の信号合成部と、を有する請求項４に記載のデータ処理装置。
【請求項６】
前記第１のアクセス判定部は、
前記複数のレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第１のアドレス検出部と、
前記複数の第１のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第１のアクセス権限レベルを示す場合において、前記複数の第１のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第１のアクセス許可信号を出力する複数の第１の許可判定部と、を有し、
前記第２のアクセス判定部は、
前記複数のレジスタのうち前記第２のアクセス権限レベルに対してアクセスの許可設定がなされるレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第２アドレス検出部と、
前記複数の第２のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第２のアクセス権限レベルを示す場合において、前記複数の第２のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第２のアクセス許可信号を出力する複数の第２の許可判定部と、を有し、
複数の前記第１のアクセス許可信号及び複数の前記第２のアクセス許可信号に応じて前記周辺装置へのアクセスの有効を示す選択信号を出力する信号合成部をさらに有する請求項４に記載のデータ処理装置。
【請求項７】
前記第１のアクセス判定部は、
前記アクセスアドレスのうち前記第１のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第１のアドレス範囲内である前記アクセスアドレスを検出する第１のアドレス検出部と、
前記第１のアドレス検出部に対応して設けられ、前記アクセス権限情報が前記第１のアクセス権限レベルを示す場合において、前記第１のアドレス検出部において前記アクセスアドレスが検出されたときに前記第１のアクセス許可信号を出力する第１の許可判定部と、を有し、
前記第２のアクセス判定部は、
前記アクセスアドレスのうち前記第２のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第２のアドレス範囲内である前記アクセスアドレスを検出する第２のアドレス検出部と、
前記第２のアドレス検出部に対応して設けられ、前記アクセス権限情報が前記第２のアクセス権限レベルを示す場合において、前記第２のアドレス検出部において前記アクセスアドレスが検出されたときに前記第２のアクセス許可信号を出力する第２の許可判定部と、を有し、
前記アクセス制御回路は、
前記第１のアクセス許可信号と前記第２のアクセス許可信号のいずれか一方が許可状態である場合に前記アクセスアドレスを後段回路に出力するアドレス信号制御部を有する請求項４に記載のデータ処理装置。
【請求項８】
前記周辺装置保護回路は、前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有する請求項３乃至６のいずれか１項に記載のデータ処理装置。
【請求項９】
前記アドレスデコーダは、
前記第１のアクセス権限レベルにおいて前記演算回路が出力する第１のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第１のメモリ空間マップと、
前記第２のアクセス権限レベルにおいて前記演算回路が出力する第２のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第２のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第２のメモリ空間マップとを有する請求項８に記載のデータ処理装置。
【請求項１０】
前記第２のアドレス範囲内に定義される第２のアクセスアドレスと前記第１のアドレス範囲内に定義される第１のアクセスアドレスとは、関連付けられる物理アドレスが同一の場合、アドレス値の差が所定のオフセット値を有するように定義される請求項９に記載のデータ処理装置。
【請求項１１】
前記周辺装置保護回路は、前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有し、
前記アドレスデコーダは、
前記第１のアクセス権限レベルにおいて前記演算回路が出力する第１のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第１のメモリ空間マップと、
前記第２のアクセス権限レベルにおいて前記演算回路が出力する第２のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第２のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第２のメモリ空間マップとを有し、
前記アドレスデコーダは、前記アクセスアドレスが前記第１又は第２のアクセス範囲内であって、前記アクセスアドレスに関連付けられた物理アドレスが存在する場合に、前記アクセスアドレスに対応する前記周辺装置に対して前記選択信号を出力する請求項７に記載のデータ処理装置。
【請求項１２】
前記周辺装置保護回路は、
前記アクセス制御回路が前記周辺装置毎に設けられ、
前記アドレスデコーダが前記アクセス制御回路の前段に１つ設けられる請求項８乃至１０のいずれか１項に記載のデータ処理装置。
【請求項１３】
前記複数のレジスタには、前記周辺装置の動作状態を規定する設定値又は前記周辺装置が処理するデータが格納される請求項１乃至１２のいずれか１項に記載のデータ処理装置。
【請求項１４】
前記データ処理装置は、前記演算回路において実行されるプログラムの格納領域、及び、前記演算回路において実行されるプログラムの処理で生じたデータの一時記憶領域として用いられるメモリをさらに有する請求項１乃至１３のいずれか１項に記載のデータ処理装置。
【請求項１５】
第１のアクセス権限レベルに対してアクセスが許可される第１のレジスタと、前記第１のアクセス権限レベルよりも低いアクセス権限レベルである第２のアクセス権限レベルに対してアクセスが許可される第２のレジスタとを含む複数のレジスタを備える周辺装置と、第１のアクセス権限レベル又は前記第１のアクセス権限レベルよりも低いアクセス権限レベルである第２動作権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を実行するプログラムに応じて出力する演算回路と、前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの許可又は遮断を行う周辺装置保護回路と、を備えるデータ処理装置におけるアクセス制御方法であって、
前記アクセス権限情報により示されるアクセス権限レベルと前記アクセスアドレスとに基づいて前記特定のレジスタへのアクセスを許可するか否かを判定し、前記判定結果に基づき前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可するか否かを判定し、
前記判定結果に基づき前記特定のレジスタへのアクセスを許可又は遮断するデータ処理装置におけるアクセス制御方法。
【請求項１６】
前記周辺装置保護回路は、前記特定のレジスタへのアクセスの有効／無効を前記周辺装置に指示する選択信号を出力する請求項１５に記載のデータ処理装置におけるアクセス制御方法。
【請求項１７】
前記周辺装置は、前記選択信号が前記演算回路からのアクセスが有効な状態であることを示す場合に、前記特定のレジスタに対する前記演算回路からのアクセスを受ける請求項１６に記載のデータ処理装置におけるアクセス制御方法。
【請求項１８】
前記周辺装置保護回路は、
前記アクセス権限情報が前記第１のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第１のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第１のアクセス許可信号を出力し、
前記アクセス権限情報が前記第２のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第２のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第２のアクセス許可信号を出力し、
前記第１及び第２のアクセス許可信号の状態に応じて前記特定のレジスタへのアクセスを許可又は遮断する請求項１５乃至１７のいずれか１項に記載のデータ処理装置におけるアクセス制御方法。
【請求項１９】
前記第１のアクセス許可信号は、前記複数のレジスタのうち前記第１のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
複数の前記第１のアクセス許可信号を合成して前記第１のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第１の選択信号を出力し、
前記第２のアクセス許可信号は、前記複数のレジスタのうち前記第１のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
複数の前記第２のアクセス許可信号を合成して前記第２のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第２の選択信号を出力する請求項１８に記載のデータ処理装置におけるアクセス制御方法。
【請求項２０】
前記第１のアクセス許可信号は、前記複数のレジスタのうち前記第１のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
前記第２のアクセス許可信号は、前記複数のレジスタのうち前記第１のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
複数の前記第１のアクセス許可信号と複数の前記第２のアクセス許可信号とを合成して前記周辺装置へのアクセスの有効を示す選択信号を出力する請求項１８に記載のデータ処理装置におけるアクセス制御方法。
【請求項２１】
前記第１のアクセス許可信号は、前記アクセスアドレスが前記第１のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第１のアドレス範囲内である場合に生成され、
前記第２のアクセス許可信号は、前記アクセスアドレスが前記第２のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第２のアドレス範囲内である場合に生成され、
前記第１のアクセス許可信号と前記第２のアクセス許可信号のいずれか一方が許可状態である場合に前記アクセスアドレスを後段回路に出力する請求項１８に記載のデータ処理装置におけるアクセス制御方法。
【請求項２２】
前記周辺装置保護回路は、
記第１のアクセス権限レベルにおいて前記演算回路が出力する第１のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第１のメモリ空間マップと、
前記第２のアクセス権限レベルにおいて前記演算回路が出力する第２のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第２のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第２のメモリ空間マップとを備え、
前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有し、
前記アドレスデコーダは、前記アクセスアドレスが前記第１又は第２のアクセス範囲内であって、前記アクセスアドレスに関連付けられた物理アドレスが存在する場合に、前記アクセスアドレスに対応する前記周辺装置に対して前記選択信号を出力する請求項２０に記載のデータ処理装置におけるアクセス制御方法。
【請求項２３】
前記周辺装置保護回路は、
記第１のアクセス権限レベルにおいて前記演算回路が出力する第１のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第１のメモリ空間マップと、
前記第２のアクセス権限レベルにおいて前記演算回路が出力する第２のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第２のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第２のメモリ空間マップとを備え、
前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有し、
前記アドレスデコーダは、前記第２のアドレス範囲内に定義される第２のアクセスアドレスと前記第１のアドレス範囲内に定義される第１のアクセスアドレスとは、関連付けられる物理アドレスが同一の場合、アドレス値の差が所定のオフセット値を有するように定義される請求項１７乃至２１のいずれか１項に記載のデータ処理装置におけるアクセス制御方法。
【請求項２４】
前記複数のレジスタには、前記周辺装置の動作状態を規定する設定値又は前記周辺装置が処理するデータが格納される請求項１５乃至２３のいずれか１項に記載のデータ処理装置におけるアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明にかかるデータ処理装置及びデータ処理装置におけるアクセス制御方法は、特に演算回路において実行されるプログラム毎に演算回路から周辺装置のレジスタへのアクセスの制御が行われるデータ処理装置及びデータ処理装置におけるアクセス制御方法に関する。
【背景技術】
【０００２】
プログラムを実行する演算回路と、演算回路によってアクセスされる周辺装置とを有するデータ処理装置では、実行するプログラムに応じて演算回路がアクセス可能な周辺装置を制限することがある。周辺装置へのアクセスを制限することで、例えば、現在実行中のプログラムが使用する周辺装置に対して不正な動作を行う他のプログラムからアクセスがされることを防止することができる。
【０００３】
このようなアクセス制限を行うデータ処理装置の一例が特許文献１に開示されている。特許文献１に記載のデータ処理装置１００のブロック図を図１１に示す。データ処理装置１００では、バス１１６、１２０を介してバスマスタ１１４、１１５、バススレーブ１２６及び周辺装置１２２、１２４がそれぞれ接続されるデータ処理システムにおいて、バスマスタ１１４、１１５及びバススレーブ１２６の周辺装置１２２、１２４に対するアクセスを制限する。データ処理装置１００では、バスマスタ１１４、１１５に対する権限及び信頼属性と、各周辺装置に対するアクセス制御と、を信頼済みバスマスタが動的に更新することで、データ処理システムにおける周辺装置へのアクセスの信頼性を向上させている。なお、データ処理装置１００ではシステムバス１１６と周辺装置バス１２０とを接続するバスインタフェース１１８と、システムバス１１６におけるデータ転送タイミングの調停を行うバス調停ロジック１２８を有する。また、周辺装置１２２は、周辺装置１２２の機能を実現する周辺装置回路１１９と周辺装置回路１１９が利用する各種データが格納される周辺装置レジスタ１２１を有する。周辺装置１２４は、周辺装置１２４の機能を実現する周辺装置回路１２３と周辺装置回路１２３が利用する各種データが格納される周辺装置レジスタ１２５を有する。
【特許文献１】特表２００６−５２３３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、データ処理装置１００では、保護設定が周辺装置単位でしか行われていなかった。そのため、周辺装置が信頼済みでないプログラムに対してもアクセスを許可できる重要度の低いレジスタと信頼済みでないプログラムに対してはアクセスを許可すべきでない重要度の高いレジスタとを有している場合に、データ処理装置１００では、動作速度が低下する問題がある。
【０００５】
この問題を説明する為に、このような場合における周辺装置へのアクセス動作を示すタイミングチャートを図１２に示す。周辺装置毎に保護設定を行った場合、一般的に、重要度の高いレジスタを１つでも有している周辺装置に対しては信頼済みでないプログラムからのアクセスを制限する保護設定がなされる。そのため、図１２に示すように、信頼済みでないプログラムから、保護設定がなされた周辺装置の重要度の低いレジスタにアクセスする場合、信頼済みでないプログラムから信頼済みのプログラムに実行するプログラムの切替え、その後、信頼済みプログラムにより重要度の低いレジスタにアクセスを行う必要がある。
【０００６】
このようなことから、周辺装置単位で保護設定を行った場合、周辺装置に対するアクセスの実行時にプログラムの切替えが頻繁に発生する可能性があり、データ処理装置の動作速度が低下する問題が発生する。
【課題を解決するための手段】
【０００７】
本発明にかかるデータ処理装置の一態様は、設定値又はデータが格納される複数のレジスタを備える周辺装置と、実行するプログラムに応じて第１のアクセス権限レベル又は前記第１のアクセス権限レベルよりも低いアクセス権限レベルの第２のアクセス権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を出力する演算回路と、前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備え、前記周辺装置保護回路は、前記アクセス権限情報により示されるアクセス権限レベルにおいて、前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可するか否かを制御する。
【０００８】
また、本発明にかかるアクセス制御方法の一態様は、設定値又はデータが格納される複数のレジスタを備える周辺装置と、実行するプログラムに応じて第１のアクセス権限レベル又は前記第１のアクセス権限レベルよりも低いアクセス権限レベルの第２動作権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を出力する演算回路と、前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備えるデータ処理装置におけるアクセス制御方法であって、前記アクセス権限情報により示されるアクセス権限レベルにおいて、前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可するか否かを判定し、前記判定結果に基づき前記特定のレジスタへのアクセスを制御する。
【０００９】
本発明にかかるデータ処理装置及びデータ処理装置におけるアクセス制御方法によれば、アクセスアドレスにより特定されるレジスタ毎にアクセス可能なアクセス権限レベルを設定することができる。これにより、アクセスの許可がなされるアクセス権限レベルが異なる複数のレジスタを有する周辺装置に対するアクセスを行う場合に、実行するプログラムを切替えてアクセス権限レベルを変更することなく、１つの周辺装置に対してアクセスを実行することができる。
【発明の効果】
【００１０】
本発明のデータ処理装置及びデータ処理装置におけるアクセス制御方法によれば、保護設定がなされるレジスタを有する周辺装置に対するアクセスを信頼性を確保した状態で高速化することが可能である。
【発明を実施するための最良の形態】
【００１１】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。実施の形態１にかかるデータ処理装置１のブロック図を図１に示す。図１に示すように、データ処理装置１は、演算回路（例えば、ＣＰＵ：Central Processing Unit）１０、記憶装置（例えば、メモリ）１１、周辺装置保護回路１２、周辺装置Ａ〜Ｃ、システムバス、周辺バスを有する。ＣＰＵ１０は、システムバスを介してメモリ１１及び周辺装置保護回路１２と接続される。また、ＣＰＵ１０は、周辺装置保護回路１２を介して周辺バスと接続される。周辺バスには周辺装置Ａ〜Ｃが接続される。なお、図１では、３つの周辺装置を示したが、周辺バスにはさらに多くの周辺装置が接続されていても良い。
【００１２】
ＣＰＵ１０は、プログラムを実行する演算回路である。また、ＣＰＵ１０は、実行するプログラムに応じてアクセス制限情報、アクセス権限情報及びアクセス情報を出力する。アクセス権限情報は、実行するプログラム毎に設定されるアクセス権限レベルを示す情報である。アクセス制限情報は、アクセス権限レベル毎の周辺装置のレジスタに対するアクセスの許可又は不許可を指定する情報である。アクセス権限レベルは、ＣＰＵ１０が周辺装置のレジスタにアクセスする権限を示すものであり、ＣＰＵ１０がアクセス可能な周辺装置のレジスタの範囲を示すためのものである。アクセス情報は、システムバス上に出力される情報であって、アクセス対象となる周辺装置のアドレス及び周辺装置内のレジスタのアドレスを含むアクセスアドレスと、アクセスがリード又はライトのいずれであるかを示す周辺アクセス情報、及び、送受信データ等のその他アクセス情報を含む情報である。
【００１３】
なお、アクセス権限レベルは、第１のアクセス権限レベルと第１のアクセス権限レベルよりも低いアクセス権限レベルの第２のアクセス権限レベルを含む。以下の説明では、第１のアクセス権限レベルをＯＳレベルと称し、第２のアクセス権レベルをユーザーレベルと称す。ＯＳレベルは、例えば、ＣＰＵ１０においてＯＳ（Operating System）が実行されている状態において出力されるものである。また、ユーザーレベルは、ＣＰＵ１０においてユーザーアプリケーションが実行されている状態において出力されるものである。また、ユーザープログラムは、ＯＳによって動作状態が管理されるプログラムであるものとする。なお、本実施の形態では、ＣＰＵ１０が出力するアクセス権限レベルが２つの場合について説明するが、ＣＰＵ１０は３つ以上のアクセス権限レベルで動作しても良い。この場合、複数のアクセス権限レベルのうち上位側のアクセス権限レベルを第１のアクセス権限レベルとし、下位側のアクセス権限レベルを第２のアクセス権限レベルとする。
【００１４】
また、アクセス制限情報には第１保護設定値及び第２保護設定値が含まれる。第１保護設定値は、ＣＰＵ１０が第１のアクセス権限レベルにおいて周辺装置のレジスタに対してアクセスを行う場合の許可又は不許可を指定する設定値を含む。第２保護設定値は、第２のアクセス権限レベルにおいて周辺装置のレジスタに対してアクセスを行う場合の許可又は不許可を指定する設定値を含む。なお、本実施の形態ではＣＰＵ１０が出力するアクセス制限情報を出力して、第１保護設定値及び第２保護設定値を設定するが、アクセス制限情報を用いることなく第１保護設定値及び第２保護設定値を設定することも可能である。例えば、予め第１保護設定値及び第２保護設定値を設定し、これらの値を固定値とする、また、アクセス制限情報をＣＰＵ１０以外の装置から出力することが可能である。
【００１５】
さらに、ＣＰＵ１０は、アクセス権限レベル毎に出力可能なアクセスアドレスの範囲を有する。そして、ＣＰＵ１０は、アクセスアドレスの範囲毎に周辺装置の１つのレジスタに対応したアクセスアドレスを有する。例えば、物理アドレスが０ｘ０００Ｆのレジスタに対応するアクセスアドレスは、ＯＳレベルに対応する第１のアドレス範囲においては０ｘ０００Ｆで定義され、ユーザーレベルに対応する第２のアドレス範囲においては０ｘＦ００Ｆで定義される。
【００１６】
メモリ１１は、ＣＰＵ１０において実行されるプログラムの格納領域、及び、ＣＰＵ１０において実行されるプログラムの処理で生じたデータの一時記憶領域として用いられる。
【００１７】
周辺装置保護回路１２は、アクセス制限情報、アクセス情報及びアクセス権限情報に基づきＣＰＵ１０から周辺装置Ａ〜Ｃに対して送信されるアクセス情報を周辺装置Ａ〜Ｃに伝達するか否かを制御する。より具体的には、周辺装置保護回路１２は、アクセス制限情報、アクセス情報及びアクセス権限情報が入力され、アクセス権限情報により示されるアクセス権限レベルにおいてアクセス情報に含まれるアクセスアドレスにより特定されるレジスタが当該アクセス権限レベルにおいてアクセスが許可されるものであった場合に、周辺装置Ａ〜Ｃのいずれか１つに選択信号を出力する。周辺装置保護回路１２の詳細は後述する。また、選択信号は、周辺装置に対してＣＰＵ１０からのアクセスが有効であるか無効であるかを指示する信号である。周辺装置は、選択信号が有効を示す場合にＣＰＵ１０からのアクセスを受け付け、無効を示す場合にはＣＰＵ１０からのアクセスを無効なものとして扱う。
【００１８】
周辺装置Ａ〜Ｃは、ＣＰＵ１０によってアクセスされる各種機能が実現される装置である。そして、周辺装置Ａ〜Ｃは、それぞれ複数のレジスタを有する。本実施の形態では、ＣＰＵ１０は、これらのレジスタに対してアクセスを行うものとする。また、周辺装置Ａ〜Ｃは、それぞれ装置を特定するための装置アドレス０ｘＦＦＦ０〜０ｘＦＦＦ２を有する。ＣＰＵ１０は、この装置アドレスをアクセスアドレスに含めることで特定の周辺装置にアクセスを行う。なお、周辺装置の選択方法は、装置アドレスを用いた選択方法以外にも、チップセレクト信号等を用いる方法もあり、システムに応じた選択方法を用いることができる。
【００１９】
ここで、周辺装置Ａのレジスタを例に、周辺装置内のレジスタについて説明する。周辺装置Ａは、例えば物理アドレスが０ｘ００００〜０ｘ０００Ｆで示される１６個のレジスタを有する。そして、物理アドレス０ｘ０００Ｄ及び物理アドレス０ｘ０００Ｆを有するは、ＯＳレベルとユーザーレベルのいずれのアクセス権限レベルに対してもアクセス許可がなされる共用レジスタとして定義される。一方、物理アドレス０ｘ００００〜０ｘ０００Ｃ、及び、物理アドレス０ｘ０００Ｅを有するレジスタは、アクセス権限レベルがＯＳレベルであるときにのみアクセス許可がなされる保護レジスタとして定義される。このとき、ＣＰＵ１０は、共用レジスタに関しては、アクセスアドレスが０ｘ０００Ｄ及び０ｘ０００Ｆによるアクセスに加え、第２のアクセス範囲に含まれるアクセスアドレスであるＦ００Ｄ及びＦ００Ｆによってもアクセスが可能である。
【００２０】
次に、周辺装置保護回路１２に関して詳細に説明する。周辺装置保護回路１２のブロック図を図２に示す。図２に示すように、周辺装置保護回路１２は、アクセス制御回路１２ａと、システムバスと周辺バスとを接続する信号経路を有する。信号経路は、システムバス側から周辺バス側にＣＰＵ１０が出力したアクセスアドレス、周辺アクセス要求及びその他アクセス情報を伝達する。
【００２１】
アクセス制御回路１２ａは、第１のアクセス判定部１３と第２のアクセス判定部１４とを有する。第１のアクセス判定部１３は、アクセス権限情報がＯＳレベルを示すときに入力されるアクセスアドレスがＯＳレベルにおいてアクセス許可されるレジスタのアドレスを示すときに第１の許可信号（例えば、保護レジスタ用選択信号ＳＨ）を出力する（あるいはアクセスが有効であることを示す状態とする）。第２のアクセス判定部１４は、アクセス権限情報がユーザーレベルを示すときに入力されるアクセスアドレスがユーザーレベルにおいてアクセス許可されるレジスタのアドレスを示すときに第２の許可信号（例えば、共用レジスタ用選択信号ＳＬ）を出力する（あるいはアクセスが有効であることを示す状態とする）。
【００２２】
第１のアクセス判定部１３は、第１のアクセス権限検出部２０、第１のアドレス検出部２４１〜２４ｎ、第１の許可判定部２５１〜２５ｎ、第１の信号合成部２６を有する。第１のアクセス権限検出部２０は、アクセス権限レベルがＯＳレベルである場合に有効な状態となる許可判定信号を出力する。第１のアクセス権限検出部２０は、第１の設定レジスタ２１、第２の設定レジスタ２２、設定選択回路２３を有する。
【００２３】
第１の設定レジスタ２１は、ＯＳレベルに対するアクセスの許可又は不許可の設定値が格納される。第２の設定レジスタ２２は、ユーザーレベルに対するアクセスの許可又は不許可の設定値が格納される、第１の設定レジスタ２１及び第２の設定レジスタ２２に格納される設定値は、ＯＳレベルのプログラムの動作開始前にＯＳレベルよりも権限レベルの高いプログラム（例えば、管理プログラム）を実行しているＣＰＵ１０が出力するアクセス制限情報により与えられる。本実施の形態では、第１の設定レジスタ２１及び第２の設定レジスタ２２は、ＯＳレベルにおいてアクセス許可が与えられるアクセスアドレスが０ｘＦＦＦ０＿００００〜０ｘＦＦＦ０＿０００Ｆのレジスタに対して与えられるものであるため、第１の設定レジスタ２１には設定値として許可が与えられ、第２の設定レジスタ２２には設定値として不許可が与えられる。設定選択回路２３は、第１の設定レジスタ２１及び第２の設定レジスタ２２の値を参照し、入力されるアクセス権限情報により示されるアクセス権限レベルが設定値として許可が与えられているアクセス権限レベル以上のものであれば許可判定信号Ｓ２１を出力する。本実施の形態では、アクセス権限情報がＯＳレベルであれば、設定選択回路２３は許可判定信号Ｓ２１を出力し、後段の回路にＯＳレベルのプログラムがアクセスを行ったことを通知する。
【００２４】
第１のアドレス検出部２４１〜２４ｎは、ＯＳレベルにおいてアクセスが許可される保護レジスタの個数に応じて設けられるものである。本実施の形態では、ＯＳレベルによるアクセスでは、すべてのレジスタにアクセスが許可される設定とするため、第１のアドレス検出部は、周辺装置Ａ〜Ｃのレジスタの総数と同じ個数となる。なお、図２では、周辺装置Ａに対応する第１のアドレス検出部２４１〜２４ｎのみを示した。第１のアドレス検出部２４１〜２４ｎは、それぞれ保護レジスタのアドレスを保持し、入力されるアクセスアドレスが保持しているアドレスと一致すると一致結果信号を出力する。なお、図２では、第１のアドレス検出部２４１〜２４ｎに対応する一致結果信号をＳ２２１〜Ｓ２２ｎで示した。
【００２５】
第１の許可判定部は、第１のアドレス検出部に対応して設けられる。そして、第１の許可判定部は、第１のアクセス権限検出部２０からアクセス権限情報がＯＳレベルであることを許可判定信号Ｓ２１により通知され、対応する第１のアドレス検出部において第１のアドレス検出部が保持しているアドレスと一致するアクセスアドレスが検出されると第１の許可信号を出力する。図２に示す例では、第１のアドレス検出部２４１〜２４ｎに対応して設けられる第１の許可判定部２５１〜２５ｎを示す。また、第１の許可判定部２５１〜２５ｎに対応する第１の許可信号をＳ２３１〜Ｓ２３ｎで示した。
【００２６】
第１の信号合成部２６は、第１の許可信号Ｓ２３１〜Ｓ２３ｎのいずれか１つが許可状態であった場合に入力されるアクセスアドレスに対応した周辺装置に対する第１の選択信号ＳＨを有効状態とする。この第１の選択信号ＳＨは、ＯＳレベルにおいて許可されるべきレジスタへのアクセスの有効状態又は無効状態を示すものである。周辺装置は、第１の選択信号ＳＨが有効状態である場合に、周辺装置のレジスタのうちＯＳレベルにおいて許可されるべきレジスタへのアクセスを有効なものと認識し、ＣＰＵ１０からのアクセスを受ける。一方、周辺装置は、第１の選択信号ＳＨが無効状態である場合に、周辺装置のレジスタのうちＯＳレベルにおいて許可されるべきレジスタへのアクセスを無効なものと認識し、ＣＰＵ１０からのアクセスに対して無効化の処理を行う。
【００２７】
第２のアクセス判定部１４は、第２のアクセス権限検出部３０、第２のアドレス検出部３４１〜３４２、第２の許可判定部３５１〜３５２、第２の信号合成部３６を有する。第２のアクセス権限検出部３０は、アクセス権限レベルがユーザーレベルである場合に有効な状態となる許可判定信号を出力する。第２のアクセス権限検出部３０は、第１の設定レジスタ３１、第２の設定レジスタ３２、設定選択回路３３を有する。
【００２８】
第１の設定レジスタ３１は、ＯＳレベルに対するアクセスの許可又は不許可の設定値が格納される。第２の設定レジスタ３２は、ユーザーレベルに対するアクセスの許可又は不許可の設定値が格納される、第１の設定レジスタ３１及び第２の設定レジスタ３２に格納される設定値は、ＯＳレベルのプログラムの動作開始前にＯＳレベルよりも権限レベルの高いプログラムを実行しているＣＰＵ１０が出力するアクセス制限情報により与えられる。本実施の形態では、第１の設定レジスタ３１及び第２の設定レジスタ３２は、ユーザーレベルにおいてアクセス許可が与えられるアクセスアドレスが０ｘＦＦＦ０＿Ｆ００Ｄ、０ｘＦＦＦ０＿Ｆ００Ｆの共用レジスタに対して与えられるものであるため、第１の設定レジスタ３１及び第２の設定レジスタ３２にはいずれにも設定値として許可が与えられる。設定選択回路３３は、第１の設定レジスタ３１及び第２の設定レジスタ３２の値を参照し、入力されるアクセス権限情報により示されるアクセス権限レベルが設定値として許可が与えられているアクセス権限レベル以上のものであれば許可判定信号Ｓ３１を出力する。本実施の形態では、アクセス権限情報がユーザーレベルとＯＳレベルのいずれの場合であっても、設定選択回路３３は許可判定信号Ｓ３１を出力し、後段の回路にユーザーレベルとＯＳレベルのいずれかのプログラムによりアクセスが発生したことを通知する。
【００２９】
なお、本実施の形態では、設定選択回路３３が高い保護レベルに対応した第１の設定レジスタ３１の設定値が不許可であり、低い保護レベルに対応した第２の設定レジスタ３２の設定値が許可となっている場合に、低いアクセス権限レベルでアクセスがあった場合、第２の設定レジスタの値にかかわらず低いアクセス権限レベルのアクセスに対して許可判定信号Ｓ２１を不許可状態にする。設定選択回路３３にこのような動作を行わせることで、設定レジスタに格納された値が破壊された場合における信頼性を向上させることができる。
【００３０】
第２のアドレス検出部３４１〜３４２は、ユーザーレベルにおいてアクセスが許可される共用レジスタの個数に応じて設けられるものである。本実施の形態では、ユーザーレベルによるアクセスでは、アクセスアドレスが０ｘＦＦＦ０＿Ｆ００Ｄ、０ｘＦＦＦ０＿Ｆ００Ｆの共用レジスタ（周辺装置Ａのみ）にアクセスが許可される設定とするため、第２のアドレス検出部は、周辺装置Ａの共用レジスタの総数と同じ個数となる。なお、図２では、周辺装置Ａに対応する第２のアドレス検出部３４１〜３４２のみを示した。第２のアドレス検出部３４１、３４２は、それぞれ保護レジスタのアドレスを保持し、入力されるアクセスアドレスが保持しているアドレスと一致すると一致結果信号を出力する。なお、図２では、第２のアドレス検出部３４１〜３４２に対応する一致結果信号をＳ３２１〜Ｓ３２２で示した。
【００３１】
第２の許可判定部は、第２のアドレス検出部に対応して設けられる。そして、第２の許可判定部は、第２のアクセス権限検出部３０からアクセス権限情報がユーザーレベル又はＯＳレベルであることを許可判定信号Ｓ３１により通知され、対応する第２のアドレス検出部において第２のアドレス検出部が保持しているアドレスと一致するアクセスアドレスが検出されると第２の許可信号を出力する。図２に示す例では、第２のアドレス検出部３４１〜３４２に対応して設けられる第２の許可判定部３５１〜３５２を示す。また、第２の許可判定部３５１〜３５２に対応する第２の許可信号をＳ３３１〜Ｓ３３２で示した。
【００３２】
第２の信号合成部３６は、第２の許可信号Ｓ３３１〜Ｓ３３２のいずれか１つが許可状態であった場合に入力されるアクセスアドレスに対応した周辺装置に対する第２の選択信号ＳＬを有効状態とする。この第２の選択信号ＳＬは、ユーザーレベルにおいて許可されるべきレジスタへのアクセスの有効状態又は無効状態を示すものである。周辺装置は、第２の選択信号ＳＬが有効状態である場合に、周辺装置のレジスタのうちユーザーレベルにおいて許可されるべき共用レジスタへのアクセスを有効なものと認識し、ＣＰＵ１０からのアクセスを受ける。一方、周辺装置は、第２の選択信号ＳＬが無効状態である場合に、周辺装置のレジスタのうちユーザーレベルにおいて許可されるべき共用レジスタへのアクセスを無効なものと認識し、ＣＰＵ１０からのアクセスに対して無効化の処理を行う。
【００３３】
なお、本実施の形態では、共用レジスタに対するアクセスアドレスは、周辺装置のレジスタの物理アドレスとは異なるアドレスとなるため、周辺装置では、ＣＰＵ１０が出力したアクセスアドレスをデコードして、アクセスアドレスに対応した物理アドレスを算出する。そして、算出された物理アドレスにより特定される共用レジスタにてアクセスを受ける。
【００３４】
上記説明より、本実施の形態にかかるデータ処理装置１によれば、第１のアドレス判定部及び第２のアドレス判定部を周辺装置のレジスタの個数に対応して設ける。そのため、アクセス権限レベルに対するアクセス許可の設定を周辺装置のレジスタ毎に行うことができる。この場合におけるデータ処理装置１による周辺装置へのアクセス動作のタイミングチャートを図３に示す。図３は、周辺装置Ｃが共用レジスタのみを有し、周辺装置Ａが共用レジスタと保護レジスタとを有している場合の例を示す。この場合、データ処理装置１は、ＣＰＵ１０においてアクセス権限レベルがユーザーレベルとなる信頼済みでないプログラムを実行しているときに周辺装置Ｃの共用レジスタにアクセスが可能である。また、周辺装置Ａは、共用レジスタと保護レジスタとを有するが、ＣＰＵ１０はアクセス権限レベルがユーザーレベルである信頼済みでないプログラムを実行している場合であっても周辺装置Ａの共用レジスタにアクセスが可能である。一方、アクセス権限レベルがＯＳレベルである信頼済みプログラムを実行していなければＣＰＵ１０は、周辺装置Ａの保護レジスタへはアクセスできない。
【００３５】
このように、レジスタ単位でアクセス保護の設定を行うことで、データ処理装置１は、周辺装置においてアクセスが制限されていないレジスタに対してはアクセス権限レベルの低いプログラムによるアクセスが可能になる。このとき、データ処理装置１では、アクセス権限レベルの異なるプログラムへの切替えを行うことなく目的の周辺装置にアクセスすることが可能であるため、アクセス速度の高速化が可能である。
【００３６】
また、周辺装置単位で保護設定を行っていた従来のデータ処理装置では、信頼済みプログラムと信頼済みでないプログラムとの切り替えを行わずに信頼済みプログラムと信頼済みでないプログラムとに対してそれぞれ同一機能の周辺装置を用いる場合、同じ機能の周辺装置を複数準備する必要がある。そのため、従来のデータ処理装置では、周辺装置の重複等が生じて回路規模が大きくなる問題があった。これに対して、本実施の形態にかかるデータ処理装置１では、レジスタ単位でアクセス保護の設定を行うことで、異なるアクセス権限レベルで実行されるプログラムの間で周辺装置を共用することができる。従って、データ処理装置１は、周辺装置の数を削減することができるため、回路規模を小さくすることができる。
【００３７】
また、従来のデータ処理装置において、システムの性能を重視し、周辺装置の機能のすべてに対して信頼済みでないプログラムによるアクセスを許可した場合、信頼済みでないプログラムからの不正アクセスを防止することができない。そのため、このような場合、システムの安全性を大きく損ねる問題が生じる。これに対して、本実施の形態にかかるデータ処理装置１では、低いレベルのアクセス権限レベルで実行されるプログラムからのアクセスを制限しなければならない保護レジスタに対しては、周辺装置保護回路１２による保護が動作する。従って、アクセスを制限すべき保護レジスタに対する信頼性は損なわれることはない。
【００３８】
実施の形態２
実施の形態２にかかるデータ処理装置２のブロック図を図４に示す。実施の形態２にかかるデータ処理装置２は、実施の形態１における周辺装置保護回路１２の変形例を示すものである。データ処理装置２では、周辺装置保護回路１２の変形例となる周辺装置保護回路１５を有する。なお、周辺装置保護回路１５では、１つの周辺装置に対して１つの選択信号を出力するものとする。実施の形態２における選択信号は、周辺装置保護回路１５においてアクセスが許可と判断された場合に有効状態となり、周辺装置保護回路１５においてアクセスが不許可と判断された場合に無効状態となる。
【００３９】
周辺装置保護回路１５は、アクセス制御回路１５ａ及びアドレスデコーダ４０を有する。なお、本実施の形態におけるアドレスデコーダ４０は、メモリ空間マップを有するものとする。周辺装置保護回路１５の詳細なブロック図を図５に示す。図５に示すように、周辺装置保護回路１５は、第１のアクセス判定部１６、第２のアクセス判定部１７、アドレス信号制御部１８、アドレスデコーダ４０を有する。
【００４０】
第１のアクセス判定部１６は、第１のアクセス権限検出部５０、第１のアドレス検出部５４、第１の許可判定部５５を有する。第１のアクセス権限検出部５０は、アクセス権限レベルがＯＳレベルである場合に有効な状態となる許可判定信号Ｓ５１を出力する。第１のアクセス権限検出部５０は、第１の設定レジスタ５１、第２の設定レジスタ５２、設定選択回路５３を有する。第１のアクセス権限検出部５０の第１の設定レジスタ５１、第２の設定レジスタ５２及び設定選択回路５３は、実施の形態１の第１のアクセス権限検出部２０の第１の設定レジスタ２１、第２の設定レジスタ２２及び設定選択回路２３に相当するものであるため、ここでは説明を省略する。
【００４１】
第１のアドレス判定部５４は、ＯＳレベルにおいてアクセスが許可される保護レジスタに対応するアクセスアドレス範囲に応じて設けられるものである。本実施の形態では、ＯＳレベルおいてアクセス可能な保護レジスタのアクセスアドレスの範囲は、０ｘ００００〜０ｘ０００Ｆ（レジスタのアドレスのみ）であるため、第１のアドレス検出部５４には、アクセスアドレス範囲として０ｘ００００〜０ｘ０００Ｆが格納される。そして、アクセスアドレスにおいて周辺装置のレジスタのアドレスを示す部分が、第１のアドレス検出部５４において保持しているアドレス範囲内であれば、第１のアドレス検出部５４は、検出結果信号Ｓ５２を出力する。
【００４２】
第１の許可判定部５５は、第１のアドレス検出部５４に対応して設けられる。そして、第１の許可判定部５５は、第１のアクセス権限検出部５０からアクセス権限情報がＯＳレベルであることを許可判定信号Ｓ５１により通知され、対応する第１のアドレス検出部５４において第１のアドレス検出部５４が保持しているアドレス範囲内のアクセスアドレスが検出されると第１の許可信号Ｓ５３を出力する。
【００４３】
第２のアクセス判定部１７は、第２のアクセス権限検出部６０、第２のアドレス検出部６４、第２の許可判定部６５を有する。第２のアクセス権限検出部６０は、アクセス権限レベルがユーザーレベル又はＯＳレベルである場合に有効な状態となる許可判定信号Ｓ６１を出力する。第２のアクセス権限検出部６０は、第１の設定レジスタ６１、第２の設定レジスタ６２、設定選択回路６３を有する。第２のアクセス権限検出部６０の第１の設定レジスタ６１、第２の設定レジスタ６２及び設定選択回路６３は、実施の形態１の第２のアクセス権限検出部３０の第１の設定レジスタ３１、第２の設定レジスタ３２及び設定選択回路３３に相当するものであるため、ここでは説明を省略する。
【００４４】
第２のアドレス検出部６４は、ユーザーレベルにおいてアクセスが許可される共用レジスタに対応するアクセスアドレス範囲に応じて設けられるものである。本実施の形態では、ユーザーレベルおいてアクセス可能な共用レジスタのアクセスアドレスの範囲は、０ｘＦ０００〜０ｘＦ００Ｆ（レジスタのアドレスのみ）であるため、第２のアドレス検出部６４には、アクセスアドレス範囲として０ｘＦ０００〜０ｘＦ００Ｆが格納される。そして、アクセスアドレスにおいて周辺装置のレジスタのアドレスを示す部分が、第２のアドレス検出部６４において保持しているアドレス範囲内であれば、第２のアドレス検出部６４は、検出結果信号Ｓ６２を出力する。
【００４５】
第２の許可判定部６５は、第２のアドレス検出部６４に対応して設けられる。そして、第２の許可判定部６５は、第２のアクセス権限検出部６０からアクセス権限情報がユーザーレベル又はＯＳレベルであることを許可判定信号Ｓ６１により通知され、対応する第２のアドレス検出部６４において第２のアドレス検出部６４が保持しているアドレス範囲内のアクセスアドレスが検出されると第２の許可信号Ｓ６３を出力する。
【００４６】
アドレス信号制御部１８は、第１の許可信号Ｓ５３又は第２の許可信号Ｓ６３の少なくとも一方が許可状態であれば、ＣＰＵ１０が出力するアクセスアドレスを後段のアドレスデコーダ４０に伝える。
【００４７】
アドレスデコーダ４０は、メモリ空間マップを有し、メモリ空間マップに従って入力されるアクセスアドレスを周辺装置のレジスタの物理アドレスに変換する。また、アドレスデコーダ４０は、アクセスアドレスのうち周辺装置のアドレス部分を参照して、メモリ空間マップ上にアクセスアドレスに対応する物理アドレスがある場合に、該当する周辺装置に対する選択信号を有効な状態とする。
【００４８】
アドレスデコーダ４０内のメモリ空間マップは、例えば、周辺装置毎のメモリ空間をアクセスアドレスにより定義し、そのメモリ空間内のアクセスアドレスと周辺装置のレジスタの物理アドレスとを対応づけたものである。また、メモリ空間マップは、保護レジスタに対するアクセスアドレスを示す第１のアドレス範囲に対応した第１のメモリ空間マップ（周辺装置レジスタマップ）と、共用レジスタに対するアクセスアドレスを示す第２のアドレス範囲に対応した第２のメモリ空間マップ（例えば、共用レジスタマップ）とを有する。本実施の形態では、周辺装置内のすべてのレジスタを保護レジスタに相当するアクセス権を設定し、共用レジスタは周辺装置内のレジスタのうちから選択された数個のレジスタである。
【００４９】
そこで、本実施の形態におけるメモリ空間マップは、周辺装置レジスタマップにおいてすべてのレジスタに対応したアクセスアドレスを有し、共用レジスタマップは周辺装置レジスタマップの中から共用レジスタとして設定されるレジスタの物理アドレス部分だけの写像を用いて構成する。つまり、第２のアクセス範囲に定義されるアクセスアドレスには物理アドレスが対応づけられていないものが存在する。また、実施の形態２におけるメモリ空間マップは、周辺装置レジスタマップの写像として共用レジスタマップを構成する。このとき、共用レジスタマップのアクセスアドレスの範囲を周辺装置レジスタマップのアクセスアドレスから所定のオフセット値を有するアドレス値に設定する。これにより、アドレスデコーダ４０は、共用レジスタマップに該当するアクセスアドレスが入力した場合に、アクセスアドレスからオフセット値を減じた値を物理アドレスとすることができる。メモリ空間マップをこのように構成することでデコードにかかる演算を簡略かできるため、アドレスデコーダ４０は、小さな回路規模で実現することができる。
【００５０】
ここで、ＣＰＵ１０が信頼済みでないプログラムを実行しているときにアドレスデコーダ４０を介して周辺装置に対してアクセスを行う場合の概念図を図６に示す。図６に示す例は、ＣＰＵ１０が信頼済みでないプログラムを実行している場合を示すものである。この場合において、ＣＰＵ１０がアクセスアドレスとして第１のアドレス範囲（例えば、保護レジスタ範囲）内のアドレスを出力した場合、第１の許可信号Ｓ５３及び第２の許可信号Ｓ６３はいずれも無効であるため、アドレス信号制御部１８は、アクセスアドレスを遮断する。一方、ＣＰＵ１０がアクセスアドレスとして第２のアドレス範囲（例えば、共用レジスタ範囲）内のアドレスを出力した場合、第２の許可信号Ｓ６３が有効な状態となるため、アドレス信号制御部１８はアクセスアドレスをアドレスデコーダ４０に伝える。
【００５１】
アドレスデコーダ４０は、アクセスアドレスを受け取ると、アクセスアドレスの周辺装置アドレス部分を参照し、当該周辺装置アドレスに対応する周辺装置のメモリ空間マップを検索する。そして、アクセスアドレスのレジスタアドレス部分を参照して、参照したレジスタアドレスに対応する物理アドレスがあれば、その物理アドレスを物理アドレス信号として周辺バスに出力する。また、アドレスデコーダ４０は、アクセスアドレスに対応する物理アドレスがある場合、アクセス対象となっている周辺装置に対する選択信号を有効常な状態にする。
【００５２】
図６に示す例では、ＣＰＵ１０が信頼済みでないプログラムを実行中にアクセスアドレスとして０ｘＦＦＦ０＿００００〜０ｘＦＦＦ０＿０００Ｆを出力した場合は、アドレス信号制御部１８において遮断される。一方、ＣＰＵ１０がアクセスアドレスとして０ｘＦＦＦ０＿Ｆ０００〜０ｘＦＦＦ０＿Ｆ００Ｆを出力した場合は、アドレス信号制御部１８は、そのアクセスアドレスをアドレスデコーダ４０に伝える。アドレスデコーダ４０は、入力されたアクセスアドレスを含むメモリ空間マップを参照する。実施の形態２では、アクセスアドレスが０ｘＦＦＦ０＿Ｆ００Ｄ又は０ｘＦＦＦ０＿Ｆ００Ｆであれば、これらアクセスアドレスに対応した物理アドレス０ｘ０００Ｄ及び０ｘ０００Ｆが定義されている。そのため、アクセスアドレスが０ｘＦＦＦ０＿Ｆ００Ｄ又は０ｘＦＦＦ０＿Ｆ００Ｆであれば、アドレスデコーダ４０は、周辺装置Ａに対する選択信号を有効な状態とし、物理アドレスとして０ｘ０００Ｄ又は０ｘ０００Ｆを出力する。
【００５３】
ここで、データ処理装置２における動作を示すフローチャートを図７に示す。この図７を参照してデータ処理装置２の動作について説明する。まずＣＰＵ１０において周辺装置へのアクセスが発生すると、アクセス元となるＣＰＵ１０で実行中のプログラムが信頼済みプログラムであるか信頼済みでないプログラムかが判定される（ステップＳ１）。このステップＳ１の動作は、第１のアクセス権限検出部５０と第２のアクセス権限検出部６０とで判定動作である。ステップＳ１においてＣＰＵ１０が信頼済みのプログラムを実行している場合、アクセス権限レベルはＯＳレベルとなり、第１のアクセス権限検出部５０が許可判定信号Ｓ５１を出力する。本実施の形態では、信頼済みのプログラムは、周辺装置のすべてのレジスタへのアクセスが許可されるため、周辺装置保護回路１５は、選択信号を許可状態として、このアクセスを許可する（ステップＳ２）
【００５４】
一方、ステップＳ１においてＣＰＵ１０が信頼済みでないプログラムを実行している場合、アクセス権限レベルはユーザーレベルとなり、第２のアクセス権限検出部６０が許可判定信号Ｓ６１を出力する。そして、アクセスアドレスが第２のアドレス範囲内であるか否かを判断する（ステップＳ３）。そして、アクセスアドレスが第２のアドレス範囲外であれば、そのアクセスは周辺装置保護回路１５において遮断される。一方、アクセスアドレスが第２のアドレス範囲内であれば、メモリ空間マップに従ってこのアクセスが許可される（ステップＳ４）。
【００５５】
上記説明より、実施の形態２では、まず、アクセス制御回路１５ａにおいてアクセスアドレスがアクセス権限レベルに対して妥当か否かを判断し、判断の結果妥当であれば、アドレスデコーダ４０にてアドレスのデコードを行う。このときアドレスデコーダ４０は、アクセスアドレスのデコードを周辺装置のレジスタ単位で行う。従って、実施の形態２にかかるデータ処理装置２においても、周辺装置のレジスタ単位で保護設定を行うことが可能となる。
【００５６】
また、データ処理装置１では、レジスタ毎にアドレス判定部及び許可判定部を備える必要があった。しかし、データ処理装置２では、アクセス権限レベル毎にアクセスアドレスの範囲を判定すれば良いため、アドレス判定部及び許可判定部の個数をデータ処理装置１に比べて削減することができる。また、データ処理装置２は、アドレスデコーダ４０を備えることで、周辺装置毎にアドレスデコーダを備える必要がなく、周辺装置を小型化することができる。
【００５７】
また、周辺装置のレジスタをどのように扱うかはアドレスデコーダ４０において定義されるため、周辺装置の設計において周辺装置のレジスタがメモリ空間マップ上でどのように扱われるかを考慮する必要がなくなる。つまり、本実施の形態では、アドレスデコーダ４０のメモリ空間マップを書き換えることで、周辺装置のレジスタの属性を設定できる。そのため、アドレスデコーダ４０を設けることで、周辺装置の設計が単純化できるメリットがある。
【００５８】
実施の形態３
実施の形態３にかかるデータ処理装置３のブロック図を図８に示す。データ処理装置３は、データ処理装置１の周辺装置保護回路１２の変形例を示すものである。データ処理装置３は、周辺装置保護回路１２の変形例となる周辺装置保護回路１９を有する。周辺装置保護回路１９は、アクセス制御回路１９ａ及びアドレスデコーダ７０を有する。
【００５９】
周辺装置保護回路１９のブロック図を図９に示す。図９に示すように、アクセス制御回路１９ａは、実施の形態１におけるアクセス制御回路１２ａにおける第１の信号合成部２６及び第２の信号合成部３６を１つにした信号合成部７１を有する変形例である。アクセス制御回路１９ａのその他部分については、アクセス制御回路１２ａと実質的に同じであるため詳細な説明は省略する。なお、アクセス制御回路１９ａが出力する選択信号は、実施の形態２のアドレスデコーダ４０が出力する選択信号と同様の動作となる。また、図９では、信号合成部７１を除く第１のアクセス判定部１３と第２のアクセス判定部１４に相当する部分を第１のアクセス判定部１３ａ及び第２のアクセス判定部１４ａとした。
【００６０】
また、アドレスデコーダ７０は、システムバスと周辺バスを接続する配線のうちアクセスアドレスを伝達する配線上に設けられる。実施の形態３におけるアドレスデコーダ７０は、メモリ空間マップを有していない。このようにメモリ空間マップを有していない既存のアドレスデコーダ７０がすでにある場合は、これをそのまま用いても良い。このような場合であっても、アクセス制御回路１９ａが選択信号を出力することで、周辺装置のレジスタの保護は可能である。
【００６１】
上記説明より、実施の形態３は、メモリ空間マップを有していないアドレスデコーダ７０を設けることによって周辺装置の回路面積の削減を実現するものである。このとき、アドレスデコーダ７０として既存のものがあれば、それをそのまま用いることで設計にかかる時間を短縮することも可能である。また、実施の形態３にかかるデータ処理装置３においても、周辺装置のレジスタ単位での保護設定は、実施の形態１と同様にアクセス制御回路によって可能である。
【００６２】
実施の形態４
実施の形態４にかかるデータ処理装置４のブロック図を図１０に示す。データ処理装置４は、上記実施の形態におけるデータ処理装置とは異なるブロック配置によってレジスタ毎のアクセス保護を実現するものである。図１０に示すように、データ処理装置４では、システムバスと周辺バスと間に実施の形態２にかかるアドレスデコーダ４０を設けている。また、データ処理装置４における周辺装置には、それぞれ実施の形態１におけるアクセス制御回路１２ａが設けられる。
【００６３】
つまり、データ処理装置４では、先にアドレスデコーダ４０によってアドレスのデコードと選択信号の生成を行い、周辺装置側においてアクセス権限レベルとアクセスアドレスとの関係の判断を行う。つまり、データ処理装置４においても、上記実施の形態と同様に周辺装置のレジスタ毎の保護設定が可能である。
【００６４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、アドレスデコーダにおけるアドレスの変換ルールは、システムの動作に応じて適宜設定を変更することが可能である。
【図面の簡単な説明】
【００６５】
【図１】実施の形態１にかかるデータ処理装置のブロック図である。
【図２】実施の形態１にかかる周辺装置保護回路のブロック図である。
【図３】実施の形態１にかかるデータ処理装置の動作を示すタイミングチャートである。
【図４】実施の形態２にかかるデータ処理装置のブロック図である。
【図５】実施の形態２にかかる周辺装置保護回路のブロック図である。
【図６】実施の形態２にかかる周辺装置保護回路の動作の概念図である。
【図７】実施の形態２にかかるデータ処理装置の動作を示すフローチャートである。
【図８】実施の形態３にかかるデータ処理装置のブロック図である。
【図９】実施の形態３にかかる周辺装置保護回路のブロック図である。
【図１０】実施の形態４にかかるデータ処理装置のブロック図である。
【図１１】従来例にかかるデータ処理装置のブロック図である。
【図１２】従来例にかかるデータ処理装置の動作を示すタイミングチャートである。
【符号の説明】
【００６６】
１〜４    データ処理装置
１０    演算回路
１１    メモリ
１２、１５、１９    周辺装置保護回路
１２ａ    、１５ａ、１９ａアクセス制御回路
１３、１３ａ、１６    アクセス判定部
１４、１４ａ、１７    アクセス判定部
１８    アドレス信号制御部
２０、３０、５０、６０    アクセス権限検出部
２１、２２、３１、３２、５１、５２、６１、６２    設定レジスタ
２３、３３、５３、６３    設定選択回路
２６、３６、７１    信号合成部
２４１〜２４ｎ、３４１〜３４２、５４、６４    アドレス検出部
２５１〜２５ｎ、３５１〜３５２、５５、６５    許可判定部
４０、７０    アドレスデコーダ
７０    アドレスデコーダ
Ａ〜Ｃ    周辺装置
Ｓ２１、Ｓ３１    、Ｓ５１、Ｓ６１許可判定信号
Ｓ２２１〜Ｓ２２ｎ、Ｓ３３１、Ｓ３３２、Ｓ５２、Ｓ６２    検出結果信号
Ｓ２３１〜Ｓ２３ｎ、Ｓ３３１、Ｓ３３２、Ｓ６３、Ｓ６３    許可信号
ＳＨ    保護レジスタ用選択信号
ＳＬ    共用レジスタ用選択信号
【図１】
0004514066.tif 000002
【図２】
0004514066.tif 000003
【図３】
0004514066.tif 000004
【図４】
0004514066.tif 000005
【図５】
0004514066.tif 000006
【図６】
0004514066.tif 000007
【図７】
0004514066.tif 000008
【図８】
0004514066.tif 000009
【図９】
0004514066.tif 000010
【図１０】
0004514066.tif 000011
【図１１】
0004514066.tif 000012
【図１２】
0004514066.tif 000013