JP4514066B2 - データ処理装置及びデータ処理装置におけるアクセス制御方法 - Google Patents

データ処理装置及びデータ処理装置におけるアクセス制御方法 Download PDF

Info

Publication number
JP4514066B2
JP4514066B2 JP2008117080A JP2008117080A JP4514066B2 JP 4514066 B2 JP4514066 B2 JP 4514066B2 JP 2008117080 A JP2008117080 A JP 2008117080A JP 2008117080 A JP2008117080 A JP 2008117080A JP 4514066 B2 JP4514066 B2 JP 4514066B2
Authority
JP
Japan
Prior art keywords
access
address
peripheral device
register
registers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008117080A
Other languages
English (en)
Other versions
JP2009266085A (ja
Inventor
吉田  誠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008117080A priority Critical patent/JP4514066B2/ja
Priority to US12/285,078 priority patent/US20090271861A1/en
Publication of JP2009266085A publication Critical patent/JP2009266085A/ja
Application granted granted Critical
Publication of JP4514066B2 publication Critical patent/JP4514066B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

本発明にかかるデータ処理装置及びデータ処理装置におけるアクセス制御方法は、特に演算回路において実行されるプログラム毎に演算回路から周辺装置のレジスタへのアクセスの制御が行われるデータ処理装置及びデータ処理装置におけるアクセス制御方法に関する。
プログラムを実行する演算回路と、演算回路によってアクセスされる周辺装置とを有するデータ処理装置では、実行するプログラムに応じて演算回路がアクセス可能な周辺装置を制限することがある。周辺装置へのアクセスを制限することで、例えば、現在実行中のプログラムが使用する周辺装置に対して不正な動作を行う他のプログラムからアクセスがされることを防止することができる。
このようなアクセス制限を行うデータ処理装置の一例が特許文献1に開示されている。特許文献1に記載のデータ処理装置100のブロック図を図11に示す。データ処理装置100では、バス116、120を介してバスマスタ114、115、バススレーブ126及び周辺装置122、124がそれぞれ接続されるデータ処理システムにおいて、バスマスタ114、115及びバススレーブ126の周辺装置122、124に対するアクセスを制限する。データ処理装置100では、バスマスタ114、115に対する権限及び信頼属性と、各周辺装置に対するアクセス制御と、を信頼済みバスマスタが動的に更新することで、データ処理システムにおける周辺装置へのアクセスの信頼性を向上させている。なお、データ処理装置100ではシステムバス116と周辺装置バス120とを接続するバスインタフェース118と、システムバス116におけるデータ転送タイミングの調停を行うバス調停ロジック128を有する。また、周辺装置122は、周辺装置122の機能を実現する周辺装置回路119と周辺装置回路119が利用する各種データが格納される周辺装置レジスタ121を有する。周辺装置124は、周辺装置124の機能を実現する周辺装置回路123と周辺装置回路123が利用する各種データが格納される周辺装置レジスタ125を有する。
特表2006−523347号公報
しかしながら、データ処理装置100では、保護設定が周辺装置単位でしか行われていなかった。そのため、周辺装置が信頼済みでないプログラムに対してもアクセスを許可できる重要度の低いレジスタと信頼済みでないプログラムに対してはアクセスを許可すべきでない重要度の高いレジスタとを有している場合に、データ処理装置100では、動作速度が低下する問題がある。
この問題を説明する為に、このような場合における周辺装置へのアクセス動作を示すタイミングチャートを図12に示す。周辺装置毎に保護設定を行った場合、一般的に、重要度の高いレジスタを1つでも有している周辺装置に対しては信頼済みでないプログラムからのアクセスを制限する保護設定がなされる。そのため、図12に示すように、信頼済みでないプログラムから、保護設定がなされた周辺装置の重要度の低いレジスタにアクセスする場合、信頼済みでないプログラムから信頼済みのプログラムに実行するプログラムの切替え、その後、信頼済みプログラムにより重要度の低いレジスタにアクセスを行う必要がある。
このようなことから、周辺装置単位で保護設定を行った場合、周辺装置に対するアクセスの実行時にプログラムの切替えが頻繁に発生する可能性があり、データ処理装置の動作速度が低下する問題が発生する。
本発明にかかるデータ処理装置の一態様は、設定値又はデータが格納される複数のレジスタを備える周辺装置と、実行するプログラムに応じて第1のアクセス権限レベル又は前記第1のアクセス権限レベルよりも低いアクセス権限レベルの第2のアクセス権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を出力する演算回路と、前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備え、前記周辺装置保護回路は、前記アクセス権限情報により示されるアクセス権限レベルにおいて、前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可するか否かを制御する。
また、本発明にかかるアクセス制御方法の一態様は、設定値又はデータが格納される複数のレジスタを備える周辺装置と、実行するプログラムに応じて第1のアクセス権限レベル又は前記第1のアクセス権限レベルよりも低いアクセス権限レベルの第2動作権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を出力する演算回路と、前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの制御を行う周辺装置保護回路と、を備えるデータ処理装置におけるアクセス制御方法であって、前記アクセス権限情報により示されるアクセス権限レベルにおいて、前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可するか否かを判定し、前記判定結果に基づき前記特定のレジスタへのアクセスを制御する。
本発明にかかるデータ処理装置及びデータ処理装置におけるアクセス制御方法によれば、アクセスアドレスにより特定されるレジスタ毎にアクセス可能なアクセス権限レベルを設定することができる。これにより、アクセスの許可がなされるアクセス権限レベルが異なる複数のレジスタを有する周辺装置に対するアクセスを行う場合に、実行するプログラムを切替えてアクセス権限レベルを変更することなく、1つの周辺装置に対してアクセスを実行することができる。
本発明のデータ処理装置及びデータ処理装置におけるアクセス制御方法によれば、保護設定がなされるレジスタを有する周辺装置に対するアクセスを信頼性を確保した状態で高速化することが可能である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。実施の形態1にかかるデータ処理装置1のブロック図を図1に示す。図1に示すように、データ処理装置1は、演算回路(例えば、CPU:Central Processing Unit)10、記憶装置(例えば、メモリ)11、周辺装置保護回路12、周辺装置A〜C、システムバス、周辺バスを有する。CPU10は、システムバスを介してメモリ11及び周辺装置保護回路12と接続される。また、CPU10は、周辺装置保護回路12を介して周辺バスと接続される。周辺バスには周辺装置A〜Cが接続される。なお、図1では、3つの周辺装置を示したが、周辺バスにはさらに多くの周辺装置が接続されていても良い。
CPU10は、プログラムを実行する演算回路である。また、CPU10は、実行するプログラムに応じてアクセス制限情報、アクセス権限情報及びアクセス情報を出力する。アクセス権限情報は、実行するプログラム毎に設定されるアクセス権限レベルを示す情報である。アクセス制限情報は、アクセス権限レベル毎の周辺装置のレジスタに対するアクセスの許可又は不許可を指定する情報である。アクセス権限レベルは、CPU10が周辺装置のレジスタにアクセスする権限を示すものであり、CPU10がアクセス可能な周辺装置のレジスタの範囲を示すためのものである。アクセス情報は、システムバス上に出力される情報であって、アクセス対象となる周辺装置のアドレス及び周辺装置内のレジスタのアドレスを含むアクセスアドレスと、アクセスがリード又はライトのいずれであるかを示す周辺アクセス情報、及び、送受信データ等のその他アクセス情報を含む情報である。
なお、アクセス権限レベルは、第1のアクセス権限レベルと第1のアクセス権限レベルよりも低いアクセス権限レベルの第2のアクセス権限レベルを含む。以下の説明では、第1のアクセス権限レベルをOSレベルと称し、第2のアクセス権レベルをユーザーレベルと称す。OSレベルは、例えば、CPU10においてOS(Operating System)が実行されている状態において出力されるものである。また、ユーザーレベルは、CPU10においてユーザーアプリケーションが実行されている状態において出力されるものである。また、ユーザープログラムは、OSによって動作状態が管理されるプログラムであるものとする。なお、本実施の形態では、CPU10が出力するアクセス権限レベルが2つの場合について説明するが、CPU10は3つ以上のアクセス権限レベルで動作しても良い。この場合、複数のアクセス権限レベルのうち上位側のアクセス権限レベルを第1のアクセス権限レベルとし、下位側のアクセス権限レベルを第2のアクセス権限レベルとする。
また、アクセス制限情報には第1保護設定値及び第2保護設定値が含まれる。第1保護設定値は、CPU10が第1のアクセス権限レベルにおいて周辺装置のレジスタに対してアクセスを行う場合の許可又は不許可を指定する設定値を含む。第2保護設定値は、第2のアクセス権限レベルにおいて周辺装置のレジスタに対してアクセスを行う場合の許可又は不許可を指定する設定値を含む。なお、本実施の形態ではCPU10が出力するアクセス制限情報を出力して、第1保護設定値及び第2保護設定値を設定するが、アクセス制限情報を用いることなく第1保護設定値及び第2保護設定値を設定することも可能である。例えば、予め第1保護設定値及び第2保護設定値を設定し、これらの値を固定値とする、また、アクセス制限情報をCPU10以外の装置から出力することが可能である。
さらに、CPU10は、アクセス権限レベル毎に出力可能なアクセスアドレスの範囲を有する。そして、CPU10は、アクセスアドレスの範囲毎に周辺装置の1つのレジスタに対応したアクセスアドレスを有する。例えば、物理アドレスが0x000Fのレジスタに対応するアクセスアドレスは、OSレベルに対応する第1のアドレス範囲においては0x000Fで定義され、ユーザーレベルに対応する第2のアドレス範囲においては0xF00Fで定義される。
メモリ11は、CPU10において実行されるプログラムの格納領域、及び、CPU10において実行されるプログラムの処理で生じたデータの一時記憶領域として用いられる。
周辺装置保護回路12は、アクセス制限情報、アクセス情報及びアクセス権限情報に基づきCPU10から周辺装置A〜Cに対して送信されるアクセス情報を周辺装置A〜Cに伝達するか否かを制御する。より具体的には、周辺装置保護回路12は、アクセス制限情報、アクセス情報及びアクセス権限情報が入力され、アクセス権限情報により示されるアクセス権限レベルにおいてアクセス情報に含まれるアクセスアドレスにより特定されるレジスタが当該アクセス権限レベルにおいてアクセスが許可されるものであった場合に、周辺装置A〜Cのいずれか1つに選択信号を出力する。周辺装置保護回路12の詳細は後述する。また、選択信号は、周辺装置に対してCPU10からのアクセスが有効であるか無効であるかを指示する信号である。周辺装置は、選択信号が有効を示す場合にCPU10からのアクセスを受け付け、無効を示す場合にはCPU10からのアクセスを無効なものとして扱う。
周辺装置A〜Cは、CPU10によってアクセスされる各種機能が実現される装置である。そして、周辺装置A〜Cは、それぞれ複数のレジスタを有する。本実施の形態では、CPU10は、これらのレジスタに対してアクセスを行うものとする。また、周辺装置A〜Cは、それぞれ装置を特定するための装置アドレス0xFFF0〜0xFFF2を有する。CPU10は、この装置アドレスをアクセスアドレスに含めることで特定の周辺装置にアクセスを行う。なお、周辺装置の選択方法は、装置アドレスを用いた選択方法以外にも、チップセレクト信号等を用いる方法もあり、システムに応じた選択方法を用いることができる。
ここで、周辺装置Aのレジスタを例に、周辺装置内のレジスタについて説明する。周辺装置Aは、例えば物理アドレスが0x0000〜0x000Fで示される16個のレジスタを有する。そして、物理アドレス0x000D及び物理アドレス0x000Fを有するは、OSレベルとユーザーレベルのいずれのアクセス権限レベルに対してもアクセス許可がなされる共用レジスタとして定義される。一方、物理アドレス0x0000〜0x000C、及び、物理アドレス0x000Eを有するレジスタは、アクセス権限レベルがOSレベルであるときにのみアクセス許可がなされる保護レジスタとして定義される。このとき、CPU10は、共用レジスタに関しては、アクセスアドレスが0x000D及び0x000Fによるアクセスに加え、第2のアクセス範囲に含まれるアクセスアドレスであるF00D及びF00Fによってもアクセスが可能である。
次に、周辺装置保護回路12に関して詳細に説明する。周辺装置保護回路12のブロック図を図2に示す。図2に示すように、周辺装置保護回路12は、アクセス制御回路12aと、システムバスと周辺バスとを接続する信号経路を有する。信号経路は、システムバス側から周辺バス側にCPU10が出力したアクセスアドレス、周辺アクセス要求及びその他アクセス情報を伝達する。
アクセス制御回路12aは、第1のアクセス判定部13と第2のアクセス判定部14とを有する。第1のアクセス判定部13は、アクセス権限情報がOSレベルを示すときに入力されるアクセスアドレスがOSレベルにおいてアクセス許可されるレジスタのアドレスを示すときに第1の許可信号(例えば、保護レジスタ用選択信号SH)を出力する(あるいはアクセスが有効であることを示す状態とする)。第2のアクセス判定部14は、アクセス権限情報がユーザーレベルを示すときに入力されるアクセスアドレスがユーザーレベルにおいてアクセス許可されるレジスタのアドレスを示すときに第2の許可信号(例えば、共用レジスタ用選択信号SL)を出力する(あるいはアクセスが有効であることを示す状態とする)。
第1のアクセス判定部13は、第1のアクセス権限検出部20、第1のアドレス検出部241〜24n、第1の許可判定部251〜25n、第1の信号合成部26を有する。第1のアクセス権限検出部20は、アクセス権限レベルがOSレベルである場合に有効な状態となる許可判定信号を出力する。第1のアクセス権限検出部20は、第1の設定レジスタ21、第2の設定レジスタ22、設定選択回路23を有する。
第1の設定レジスタ21は、OSレベルに対するアクセスの許可又は不許可の設定値が格納される。第2の設定レジスタ22は、ユーザーレベルに対するアクセスの許可又は不許可の設定値が格納される、第1の設定レジスタ21及び第2の設定レジスタ22に格納される設定値は、OSレベルのプログラムの動作開始前にOSレベルよりも権限レベルの高いプログラム(例えば、管理プログラム)を実行しているCPU10が出力するアクセス制限情報により与えられる。本実施の形態では、第1の設定レジスタ21及び第2の設定レジスタ22は、OSレベルにおいてアクセス許可が与えられるアクセスアドレスが0xFFF0_0000〜0xFFF0_000Fのレジスタに対して与えられるものであるため、第1の設定レジスタ21には設定値として許可が与えられ、第2の設定レジスタ22には設定値として不許可が与えられる。設定選択回路23は、第1の設定レジスタ21及び第2の設定レジスタ22の値を参照し、入力されるアクセス権限情報により示されるアクセス権限レベルが設定値として許可が与えられているアクセス権限レベル以上のものであれば許可判定信号S21を出力する。本実施の形態では、アクセス権限情報がOSレベルであれば、設定選択回路23は許可判定信号S21を出力し、後段の回路にOSレベルのプログラムがアクセスを行ったことを通知する。
第1のアドレス検出部241〜24nは、OSレベルにおいてアクセスが許可される保護レジスタの個数に応じて設けられるものである。本実施の形態では、OSレベルによるアクセスでは、すべてのレジスタにアクセスが許可される設定とするため、第1のアドレス検出部は、周辺装置A〜Cのレジスタの総数と同じ個数となる。なお、図2では、周辺装置Aに対応する第1のアドレス検出部241〜24nのみを示した。第1のアドレス検出部241〜24nは、それぞれ保護レジスタのアドレスを保持し、入力されるアクセスアドレスが保持しているアドレスと一致すると一致結果信号を出力する。なお、図2では、第1のアドレス検出部241〜24nに対応する一致結果信号をS221〜S22nで示した。
第1の許可判定部は、第1のアドレス検出部に対応して設けられる。そして、第1の許可判定部は、第1のアクセス権限検出部20からアクセス権限情報がOSレベルであることを許可判定信号S21により通知され、対応する第1のアドレス検出部において第1のアドレス検出部が保持しているアドレスと一致するアクセスアドレスが検出されると第1の許可信号を出力する。図2に示す例では、第1のアドレス検出部241〜24nに対応して設けられる第1の許可判定部251〜25nを示す。また、第1の許可判定部251〜25nに対応する第1の許可信号をS231〜S23nで示した。
第1の信号合成部26は、第1の許可信号S231〜S23nのいずれか1つが許可状態であった場合に入力されるアクセスアドレスに対応した周辺装置に対する第1の選択信号SHを有効状態とする。この第1の選択信号SHは、OSレベルにおいて許可されるべきレジスタへのアクセスの有効状態又は無効状態を示すものである。周辺装置は、第1の選択信号SHが有効状態である場合に、周辺装置のレジスタのうちOSレベルにおいて許可されるべきレジスタへのアクセスを有効なものと認識し、CPU10からのアクセスを受ける。一方、周辺装置は、第1の選択信号SHが無効状態である場合に、周辺装置のレジスタのうちOSレベルにおいて許可されるべきレジスタへのアクセスを無効なものと認識し、CPU10からのアクセスに対して無効化の処理を行う。
第2のアクセス判定部14は、第2のアクセス権限検出部30、第2のアドレス検出部341〜342、第2の許可判定部351〜352、第2の信号合成部36を有する。第2のアクセス権限検出部30は、アクセス権限レベルがユーザーレベルである場合に有効な状態となる許可判定信号を出力する。第2のアクセス権限検出部30は、第1の設定レジスタ31、第2の設定レジスタ32、設定選択回路33を有する。
第1の設定レジスタ31は、OSレベルに対するアクセスの許可又は不許可の設定値が格納される。第2の設定レジスタ32は、ユーザーレベルに対するアクセスの許可又は不許可の設定値が格納される、第1の設定レジスタ31及び第2の設定レジスタ32に格納される設定値は、OSレベルのプログラムの動作開始前にOSレベルよりも権限レベルの高いプログラムを実行しているCPU10が出力するアクセス制限情報により与えられる。本実施の形態では、第1の設定レジスタ31及び第2の設定レジスタ32は、ユーザーレベルにおいてアクセス許可が与えられるアクセスアドレスが0xFFF0_F00D、0xFFF0_F00Fの共用レジスタに対して与えられるものであるため、第1の設定レジスタ31及び第2の設定レジスタ32にはいずれにも設定値として許可が与えられる。設定選択回路33は、第1の設定レジスタ31及び第2の設定レジスタ32の値を参照し、入力されるアクセス権限情報により示されるアクセス権限レベルが設定値として許可が与えられているアクセス権限レベル以上のものであれば許可判定信号S31を出力する。本実施の形態では、アクセス権限情報がユーザーレベルとOSレベルのいずれの場合であっても、設定選択回路33は許可判定信号S31を出力し、後段の回路にユーザーレベルとOSレベルのいずれかのプログラムによりアクセスが発生したことを通知する。
なお、本実施の形態では、設定選択回路33が高い保護レベルに対応した第1の設定レジスタ31の設定値が不許可であり、低い保護レベルに対応した第2の設定レジスタ32の設定値が許可となっている場合に、低いアクセス権限レベルでアクセスがあった場合、第2の設定レジスタの値にかかわらず低いアクセス権限レベルのアクセスに対して許可判定信号S21を不許可状態にする。設定選択回路33にこのような動作を行わせることで、設定レジスタに格納された値が破壊された場合における信頼性を向上させることができる。
第2のアドレス検出部341〜342は、ユーザーレベルにおいてアクセスが許可される共用レジスタの個数に応じて設けられるものである。本実施の形態では、ユーザーレベルによるアクセスでは、アクセスアドレスが0xFFF0_F00D、0xFFF0_F00Fの共用レジスタ(周辺装置Aのみ)にアクセスが許可される設定とするため、第2のアドレス検出部は、周辺装置Aの共用レジスタの総数と同じ個数となる。なお、図2では、周辺装置Aに対応する第2のアドレス検出部341〜342のみを示した。第2のアドレス検出部341、342は、それぞれ保護レジスタのアドレスを保持し、入力されるアクセスアドレスが保持しているアドレスと一致すると一致結果信号を出力する。なお、図2では、第2のアドレス検出部341〜342に対応する一致結果信号をS321〜S322で示した。
第2の許可判定部は、第2のアドレス検出部に対応して設けられる。そして、第2の許可判定部は、第2のアクセス権限検出部30からアクセス権限情報がユーザーレベル又はOSレベルであることを許可判定信号S31により通知され、対応する第2のアドレス検出部において第2のアドレス検出部が保持しているアドレスと一致するアクセスアドレスが検出されると第2の許可信号を出力する。図2に示す例では、第2のアドレス検出部341〜342に対応して設けられる第2の許可判定部351〜352を示す。また、第2の許可判定部351〜352に対応する第2の許可信号をS331〜S332で示した。
第2の信号合成部36は、第2の許可信号S331〜S332のいずれか1つが許可状態であった場合に入力されるアクセスアドレスに対応した周辺装置に対する第2の選択信号SLを有効状態とする。この第2の選択信号SLは、ユーザーレベルにおいて許可されるべきレジスタへのアクセスの有効状態又は無効状態を示すものである。周辺装置は、第2の選択信号SLが有効状態である場合に、周辺装置のレジスタのうちユーザーレベルにおいて許可されるべき共用レジスタへのアクセスを有効なものと認識し、CPU10からのアクセスを受ける。一方、周辺装置は、第2の選択信号SLが無効状態である場合に、周辺装置のレジスタのうちユーザーレベルにおいて許可されるべき共用レジスタへのアクセスを無効なものと認識し、CPU10からのアクセスに対して無効化の処理を行う。
なお、本実施の形態では、共用レジスタに対するアクセスアドレスは、周辺装置のレジスタの物理アドレスとは異なるアドレスとなるため、周辺装置では、CPU10が出力したアクセスアドレスをデコードして、アクセスアドレスに対応した物理アドレスを算出する。そして、算出された物理アドレスにより特定される共用レジスタにてアクセスを受ける。
上記説明より、本実施の形態にかかるデータ処理装置1によれば、第1のアドレス判定部及び第2のアドレス判定部を周辺装置のレジスタの個数に対応して設ける。そのため、アクセス権限レベルに対するアクセス許可の設定を周辺装置のレジスタ毎に行うことができる。この場合におけるデータ処理装置1による周辺装置へのアクセス動作のタイミングチャートを図3に示す。図3は、周辺装置Cが共用レジスタのみを有し、周辺装置Aが共用レジスタと保護レジスタとを有している場合の例を示す。この場合、データ処理装置1は、CPU10においてアクセス権限レベルがユーザーレベルとなる信頼済みでないプログラムを実行しているときに周辺装置Cの共用レジスタにアクセスが可能である。また、周辺装置Aは、共用レジスタと保護レジスタとを有するが、CPU10はアクセス権限レベルがユーザーレベルである信頼済みでないプログラムを実行している場合であっても周辺装置Aの共用レジスタにアクセスが可能である。一方、アクセス権限レベルがOSレベルである信頼済みプログラムを実行していなければCPU10は、周辺装置Aの保護レジスタへはアクセスできない。
このように、レジスタ単位でアクセス保護の設定を行うことで、データ処理装置1は、周辺装置においてアクセスが制限されていないレジスタに対してはアクセス権限レベルの低いプログラムによるアクセスが可能になる。このとき、データ処理装置1では、アクセス権限レベルの異なるプログラムへの切替えを行うことなく目的の周辺装置にアクセスすることが可能であるため、アクセス速度の高速化が可能である。
また、周辺装置単位で保護設定を行っていた従来のデータ処理装置では、信頼済みプログラムと信頼済みでないプログラムとの切り替えを行わずに信頼済みプログラムと信頼済みでないプログラムとに対してそれぞれ同一機能の周辺装置を用いる場合、同じ機能の周辺装置を複数準備する必要がある。そのため、従来のデータ処理装置では、周辺装置の重複等が生じて回路規模が大きくなる問題があった。これに対して、本実施の形態にかかるデータ処理装置1では、レジスタ単位でアクセス保護の設定を行うことで、異なるアクセス権限レベルで実行されるプログラムの間で周辺装置を共用することができる。従って、データ処理装置1は、周辺装置の数を削減することができるため、回路規模を小さくすることができる。
また、従来のデータ処理装置において、システムの性能を重視し、周辺装置の機能のすべてに対して信頼済みでないプログラムによるアクセスを許可した場合、信頼済みでないプログラムからの不正アクセスを防止することができない。そのため、このような場合、システムの安全性を大きく損ねる問題が生じる。これに対して、本実施の形態にかかるデータ処理装置1では、低いレベルのアクセス権限レベルで実行されるプログラムからのアクセスを制限しなければならない保護レジスタに対しては、周辺装置保護回路12による保護が動作する。従って、アクセスを制限すべき保護レジスタに対する信頼性は損なわれることはない。
実施の形態2
実施の形態2にかかるデータ処理装置2のブロック図を図4に示す。実施の形態2にかかるデータ処理装置2は、実施の形態1における周辺装置保護回路12の変形例を示すものである。データ処理装置2では、周辺装置保護回路12の変形例となる周辺装置保護回路15を有する。なお、周辺装置保護回路15では、1つの周辺装置に対して1つの選択信号を出力するものとする。実施の形態2における選択信号は、周辺装置保護回路15においてアクセスが許可と判断された場合に有効状態となり、周辺装置保護回路15においてアクセスが不許可と判断された場合に無効状態となる。
周辺装置保護回路15は、アクセス制御回路15a及びアドレスデコーダ40を有する。なお、本実施の形態におけるアドレスデコーダ40は、メモリ空間マップを有するものとする。周辺装置保護回路15の詳細なブロック図を図5に示す。図5に示すように、周辺装置保護回路15は、第1のアクセス判定部16、第2のアクセス判定部17、アドレス信号制御部18、アドレスデコーダ40を有する。
第1のアクセス判定部16は、第1のアクセス権限検出部50、第1のアドレス検出部54、第1の許可判定部55を有する。第1のアクセス権限検出部50は、アクセス権限レベルがOSレベルである場合に有効な状態となる許可判定信号S51を出力する。第1のアクセス権限検出部50は、第1の設定レジスタ51、第2の設定レジスタ52、設定選択回路53を有する。第1のアクセス権限検出部50の第1の設定レジスタ51、第2の設定レジスタ52及び設定選択回路53は、実施の形態1の第1のアクセス権限検出部20の第1の設定レジスタ21、第2の設定レジスタ22及び設定選択回路23に相当するものであるため、ここでは説明を省略する。
第1のアドレス判定部54は、OSレベルにおいてアクセスが許可される保護レジスタに対応するアクセスアドレス範囲に応じて設けられるものである。本実施の形態では、OSレベルおいてアクセス可能な保護レジスタのアクセスアドレスの範囲は、0x0000〜0x000F(レジスタのアドレスのみ)であるため、第1のアドレス検出部54には、アクセスアドレス範囲として0x0000〜0x000Fが格納される。そして、アクセスアドレスにおいて周辺装置のレジスタのアドレスを示す部分が、第1のアドレス検出部54において保持しているアドレス範囲内であれば、第1のアドレス検出部54は、検出結果信号S52を出力する。
第1の許可判定部55は、第1のアドレス検出部54に対応して設けられる。そして、第1の許可判定部55は、第1のアクセス権限検出部50からアクセス権限情報がOSレベルであることを許可判定信号S51により通知され、対応する第1のアドレス検出部54において第1のアドレス検出部54が保持しているアドレス範囲内のアクセスアドレスが検出されると第1の許可信号S53を出力する。
第2のアクセス判定部17は、第2のアクセス権限検出部60、第2のアドレス検出部64、第2の許可判定部65を有する。第2のアクセス権限検出部60は、アクセス権限レベルがユーザーレベル又はOSレベルである場合に有効な状態となる許可判定信号S61を出力する。第2のアクセス権限検出部60は、第1の設定レジスタ61、第2の設定レジスタ62、設定選択回路63を有する。第2のアクセス権限検出部60の第1の設定レジスタ61、第2の設定レジスタ62及び設定選択回路63は、実施の形態1の第2のアクセス権限検出部30の第1の設定レジスタ31、第2の設定レジスタ32及び設定選択回路33に相当するものであるため、ここでは説明を省略する。
第2のアドレス検出部64は、ユーザーレベルにおいてアクセスが許可される共用レジスタに対応するアクセスアドレス範囲に応じて設けられるものである。本実施の形態では、ユーザーレベルおいてアクセス可能な共用レジスタのアクセスアドレスの範囲は、0xF000〜0xF00F(レジスタのアドレスのみ)であるため、第2のアドレス検出部64には、アクセスアドレス範囲として0xF000〜0xF00Fが格納される。そして、アクセスアドレスにおいて周辺装置のレジスタのアドレスを示す部分が、第2のアドレス検出部64において保持しているアドレス範囲内であれば、第2のアドレス検出部64は、検出結果信号S62を出力する。
第2の許可判定部65は、第2のアドレス検出部64に対応して設けられる。そして、第2の許可判定部65は、第2のアクセス権限検出部60からアクセス権限情報がユーザーレベル又はOSレベルであることを許可判定信号S61により通知され、対応する第2のアドレス検出部64において第2のアドレス検出部64が保持しているアドレス範囲内のアクセスアドレスが検出されると第2の許可信号S63を出力する。
アドレス信号制御部18は、第1の許可信号S53又は第2の許可信号S63の少なくとも一方が許可状態であれば、CPU10が出力するアクセスアドレスを後段のアドレスデコーダ40に伝える。
アドレスデコーダ40は、メモリ空間マップを有し、メモリ空間マップに従って入力されるアクセスアドレスを周辺装置のレジスタの物理アドレスに変換する。また、アドレスデコーダ40は、アクセスアドレスのうち周辺装置のアドレス部分を参照して、メモリ空間マップ上にアクセスアドレスに対応する物理アドレスがある場合に、該当する周辺装置に対する選択信号を有効な状態とする。
アドレスデコーダ40内のメモリ空間マップは、例えば、周辺装置毎のメモリ空間をアクセスアドレスにより定義し、そのメモリ空間内のアクセスアドレスと周辺装置のレジスタの物理アドレスとを対応づけたものである。また、メモリ空間マップは、保護レジスタに対するアクセスアドレスを示す第1のアドレス範囲に対応した第1のメモリ空間マップ(周辺装置レジスタマップ)と、共用レジスタに対するアクセスアドレスを示す第2のアドレス範囲に対応した第2のメモリ空間マップ(例えば、共用レジスタマップ)とを有する。本実施の形態では、周辺装置内のすべてのレジスタを保護レジスタに相当するアクセス権を設定し、共用レジスタは周辺装置内のレジスタのうちから選択された数個のレジスタである。
そこで、本実施の形態におけるメモリ空間マップは、周辺装置レジスタマップにおいてすべてのレジスタに対応したアクセスアドレスを有し、共用レジスタマップは周辺装置レジスタマップの中から共用レジスタとして設定されるレジスタの物理アドレス部分だけの写像を用いて構成する。つまり、第2のアクセス範囲に定義されるアクセスアドレスには物理アドレスが対応づけられていないものが存在する。また、実施の形態2におけるメモリ空間マップは、周辺装置レジスタマップの写像として共用レジスタマップを構成する。このとき、共用レジスタマップのアクセスアドレスの範囲を周辺装置レジスタマップのアクセスアドレスから所定のオフセット値を有するアドレス値に設定する。これにより、アドレスデコーダ40は、共用レジスタマップに該当するアクセスアドレスが入力した場合に、アクセスアドレスからオフセット値を減じた値を物理アドレスとすることができる。メモリ空間マップをこのように構成することでデコードにかかる演算を簡略かできるため、アドレスデコーダ40は、小さな回路規模で実現することができる。
ここで、CPU10が信頼済みでないプログラムを実行しているときにアドレスデコーダ40を介して周辺装置に対してアクセスを行う場合の概念図を図6に示す。図6に示す例は、CPU10が信頼済みでないプログラムを実行している場合を示すものである。この場合において、CPU10がアクセスアドレスとして第1のアドレス範囲(例えば、保護レジスタ範囲)内のアドレスを出力した場合、第1の許可信号S53及び第2の許可信号S63はいずれも無効であるため、アドレス信号制御部18は、アクセスアドレスを遮断する。一方、CPU10がアクセスアドレスとして第2のアドレス範囲(例えば、共用レジスタ範囲)内のアドレスを出力した場合、第2の許可信号S63が有効な状態となるため、アドレス信号制御部18はアクセスアドレスをアドレスデコーダ40に伝える。
アドレスデコーダ40は、アクセスアドレスを受け取ると、アクセスアドレスの周辺装置アドレス部分を参照し、当該周辺装置アドレスに対応する周辺装置のメモリ空間マップを検索する。そして、アクセスアドレスのレジスタアドレス部分を参照して、参照したレジスタアドレスに対応する物理アドレスがあれば、その物理アドレスを物理アドレス信号として周辺バスに出力する。また、アドレスデコーダ40は、アクセスアドレスに対応する物理アドレスがある場合、アクセス対象となっている周辺装置に対する選択信号を有効常な状態にする。
図6に示す例では、CPU10が信頼済みでないプログラムを実行中にアクセスアドレスとして0xFFF0_0000〜0xFFF0_000Fを出力した場合は、アドレス信号制御部18において遮断される。一方、CPU10がアクセスアドレスとして0xFFF0_F000〜0xFFF0_F00Fを出力した場合は、アドレス信号制御部18は、そのアクセスアドレスをアドレスデコーダ40に伝える。アドレスデコーダ40は、入力されたアクセスアドレスを含むメモリ空間マップを参照する。実施の形態2では、アクセスアドレスが0xFFF0_F00D又は0xFFF0_F00Fであれば、これらアクセスアドレスに対応した物理アドレス0x000D及び0x000Fが定義されている。そのため、アクセスアドレスが0xFFF0_F00D又は0xFFF0_F00Fであれば、アドレスデコーダ40は、周辺装置Aに対する選択信号を有効な状態とし、物理アドレスとして0x000D又は0x000Fを出力する。
ここで、データ処理装置2における動作を示すフローチャートを図7に示す。この図7を参照してデータ処理装置2の動作について説明する。まずCPU10において周辺装置へのアクセスが発生すると、アクセス元となるCPU10で実行中のプログラムが信頼済みプログラムであるか信頼済みでないプログラムかが判定される(ステップS1)。このステップS1の動作は、第1のアクセス権限検出部50と第2のアクセス権限検出部60とで判定動作である。ステップS1においてCPU10が信頼済みのプログラムを実行している場合、アクセス権限レベルはOSレベルとなり、第1のアクセス権限検出部50が許可判定信号S51を出力する。本実施の形態では、信頼済みのプログラムは、周辺装置のすべてのレジスタへのアクセスが許可されるため、周辺装置保護回路15は、選択信号を許可状態として、このアクセスを許可する(ステップS2)
一方、ステップS1においてCPU10が信頼済みでないプログラムを実行している場合、アクセス権限レベルはユーザーレベルとなり、第2のアクセス権限検出部60が許可判定信号S61を出力する。そして、アクセスアドレスが第2のアドレス範囲内であるか否かを判断する(ステップS3)。そして、アクセスアドレスが第2のアドレス範囲外であれば、そのアクセスは周辺装置保護回路15において遮断される。一方、アクセスアドレスが第2のアドレス範囲内であれば、メモリ空間マップに従ってこのアクセスが許可される(ステップS4)。
上記説明より、実施の形態2では、まず、アクセス制御回路15aにおいてアクセスアドレスがアクセス権限レベルに対して妥当か否かを判断し、判断の結果妥当であれば、アドレスデコーダ40にてアドレスのデコードを行う。このときアドレスデコーダ40は、アクセスアドレスのデコードを周辺装置のレジスタ単位で行う。従って、実施の形態2にかかるデータ処理装置2においても、周辺装置のレジスタ単位で保護設定を行うことが可能となる。
また、データ処理装置1では、レジスタ毎にアドレス判定部及び許可判定部を備える必要があった。しかし、データ処理装置2では、アクセス権限レベル毎にアクセスアドレスの範囲を判定すれば良いため、アドレス判定部及び許可判定部の個数をデータ処理装置1に比べて削減することができる。また、データ処理装置2は、アドレスデコーダ40を備えることで、周辺装置毎にアドレスデコーダを備える必要がなく、周辺装置を小型化することができる。
また、周辺装置のレジスタをどのように扱うかはアドレスデコーダ40において定義されるため、周辺装置の設計において周辺装置のレジスタがメモリ空間マップ上でどのように扱われるかを考慮する必要がなくなる。つまり、本実施の形態では、アドレスデコーダ40のメモリ空間マップを書き換えることで、周辺装置のレジスタの属性を設定できる。そのため、アドレスデコーダ40を設けることで、周辺装置の設計が単純化できるメリットがある。
実施の形態3
実施の形態3にかかるデータ処理装置3のブロック図を図8に示す。データ処理装置3は、データ処理装置1の周辺装置保護回路12の変形例を示すものである。データ処理装置3は、周辺装置保護回路12の変形例となる周辺装置保護回路19を有する。周辺装置保護回路19は、アクセス制御回路19a及びアドレスデコーダ70を有する。
周辺装置保護回路19のブロック図を図9に示す。図9に示すように、アクセス制御回路19aは、実施の形態1におけるアクセス制御回路12aにおける第1の信号合成部26及び第2の信号合成部36を1つにした信号合成部71を有する変形例である。アクセス制御回路19aのその他部分については、アクセス制御回路12aと実質的に同じであるため詳細な説明は省略する。なお、アクセス制御回路19aが出力する選択信号は、実施の形態2のアドレスデコーダ40が出力する選択信号と同様の動作となる。また、図9では、信号合成部71を除く第1のアクセス判定部13と第2のアクセス判定部14に相当する部分を第1のアクセス判定部13a及び第2のアクセス判定部14aとした。
また、アドレスデコーダ70は、システムバスと周辺バスを接続する配線のうちアクセスアドレスを伝達する配線上に設けられる。実施の形態3におけるアドレスデコーダ70は、メモリ空間マップを有していない。このようにメモリ空間マップを有していない既存のアドレスデコーダ70がすでにある場合は、これをそのまま用いても良い。このような場合であっても、アクセス制御回路19aが選択信号を出力することで、周辺装置のレジスタの保護は可能である。
上記説明より、実施の形態3は、メモリ空間マップを有していないアドレスデコーダ70を設けることによって周辺装置の回路面積の削減を実現するものである。このとき、アドレスデコーダ70として既存のものがあれば、それをそのまま用いることで設計にかかる時間を短縮することも可能である。また、実施の形態3にかかるデータ処理装置3においても、周辺装置のレジスタ単位での保護設定は、実施の形態1と同様にアクセス制御回路によって可能である。
実施の形態4
実施の形態4にかかるデータ処理装置4のブロック図を図10に示す。データ処理装置4は、上記実施の形態におけるデータ処理装置とは異なるブロック配置によってレジスタ毎のアクセス保護を実現するものである。図10に示すように、データ処理装置4では、システムバスと周辺バスと間に実施の形態2にかかるアドレスデコーダ40を設けている。また、データ処理装置4における周辺装置には、それぞれ実施の形態1におけるアクセス制御回路12aが設けられる。
つまり、データ処理装置4では、先にアドレスデコーダ40によってアドレスのデコードと選択信号の生成を行い、周辺装置側においてアクセス権限レベルとアクセスアドレスとの関係の判断を行う。つまり、データ処理装置4においても、上記実施の形態と同様に周辺装置のレジスタ毎の保護設定が可能である。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、アドレスデコーダにおけるアドレスの変換ルールは、システムの動作に応じて適宜設定を変更することが可能である。
実施の形態1にかかるデータ処理装置のブロック図である。 実施の形態1にかかる周辺装置保護回路のブロック図である。 実施の形態1にかかるデータ処理装置の動作を示すタイミングチャートである。 実施の形態2にかかるデータ処理装置のブロック図である。 実施の形態2にかかる周辺装置保護回路のブロック図である。 実施の形態2にかかる周辺装置保護回路の動作の概念図である。 実施の形態2にかかるデータ処理装置の動作を示すフローチャートである。 実施の形態3にかかるデータ処理装置のブロック図である。 実施の形態3にかかる周辺装置保護回路のブロック図である。 実施の形態4にかかるデータ処理装置のブロック図である。 従来例にかかるデータ処理装置のブロック図である。 従来例にかかるデータ処理装置の動作を示すタイミングチャートである。
符号の説明
1〜4 データ処理装置
10 演算回路
11 メモリ
12、15、19 周辺装置保護回路
12a 、15a、19aアクセス制御回路
13、13a、16 アクセス判定部
14、14a、17 アクセス判定部
18 アドレス信号制御部
20、30、50、60 アクセス権限検出部
21、22、31、32、51、52、61、62 設定レジスタ
23、33、53、63 設定選択回路
26、36、71 信号合成部
241〜24n、341〜342、54、64 アドレス検出部
251〜25n、351〜352、55、65 許可判定部
40、70 アドレスデコーダ
70 アドレスデコーダ
A〜C 周辺装置
S21、S31 、S51、S61許可判定信号
S221〜S22n、S331、S332、S52、S62 検出結果信号
S231〜S23n、S331、S332、S63、S63 許可信号
SH 保護レジスタ用選択信号
SL 共用レジスタ用選択信号

Claims (24)

  1. 第1のアクセス権限レベルに対してアクセスが許可される第1のレジスタと、前記第1のアクセス権限レベルよりも低いアクセス権限レベルである第2のアクセス権限レベルに対してアクセスが許可される第2のレジスタとを含む複数のレジスタを備える周辺装置と、
    前記第1のアクセス権限レベル又は前記第2のアクセス権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を実行するプログラムに応じて出力する演算回路と、
    前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの許可又は遮断を行う周辺装置保護回路と、を備え、
    前記周辺装置保護回路は、前記アクセス権限情報により示されるアクセス権限レベルと前記アクセスアドレスとに基づいて前記特定のレジスタへのアクセスを許可するか否かを判定し、前記判定結果に基づき前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可又は遮断するデータ処理装置。
  2. 前記周辺装置保護回路は、前記特定のレジスタへのアクセスの有効/無効を前記周辺装置に指示する選択信号を出力する請求項1に記載のデータ処理装置。
  3. 前記周辺装置は、前記選択信号が前記演算回路からのアクセスが有効な状態であることを示す場合に、前記特定のレジスタに対する前記演算回路からのアクセスを受ける請求項2に記載のデータ処理装置。
  4. 前記周辺装置保護回路は、
    前記アクセス権限情報が前記第1のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第1のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第1のアクセス許可信号を出力する第1のアクセス判定部と、
    前記アクセス権限情報が前記第2のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第2のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第2のアクセス許可信号を出力する第2のアクセス判定部と、
    を備えるアクセス制御回路を有する請求項1乃至3のいずれか1項に記載のデータ処理装置。
  5. 前記第1のアクセス判定部は、
    前記複数のレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第1のアドレス検出部と、
    前記複数の第1のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第1のアクセス権限レベルを示す場合において、前記複数の第1のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第1のアクセス許可信号を出力する複数の第1の許可判定部と、
    複数の前記第1のアクセス許可信号に応じて前記第1のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第1の選択信号を出力する第1の信号合成部と、を有し、
    前記第2のアクセス判定部は、
    前記複数のレジスタのうち前記第2のアクセス権限レベルに対してアクセスの許可設定がなされるレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第2アドレス検出部と、
    前記複数の第2のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第2のアクセス権限レベルを示す場合において、前記複数の第2のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第2のアクセス許可信号を出力する複数の第2の許可判定部と、
    複数の前記第2のアクセス許可信号に応じて前記第2のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第2の選択信号を出力する第2の信号合成部と、を有する請求項4に記載のデータ処理装置。
  6. 前記第1のアクセス判定部は、
    前記複数のレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第1のアドレス検出部と、
    前記複数の第1のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第1のアクセス権限レベルを示す場合において、前記複数の第1のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第1のアクセス許可信号を出力する複数の第1の許可判定部と、を有し、
    前記第2のアクセス判定部は、
    前記複数のレジスタのうち前記第2のアクセス権限レベルに対してアクセスの許可設定がなされるレジスタのそれぞれに対応して設けられ、該当するアクセスアドレスを検出する複数の第2アドレス検出部と、
    前記複数の第2のアドレス検出部のそれぞれに対応して設けられ、前記アクセス権限情報が前記第2のアクセス権限レベルを示す場合において、前記複数の第2のアドレス検出部のいずれかにおいて前記アクセスアドレスが検出されたときに前記第2のアクセス許可信号を出力する複数の第2の許可判定部と、を有し、
    複数の前記第1のアクセス許可信号及び複数の前記第2のアクセス許可信号に応じて前記周辺装置へのアクセスの有効を示す選択信号を出力する信号合成部をさらに有する請求項4に記載のデータ処理装置。
  7. 前記第1のアクセス判定部は、
    前記アクセスアドレスのうち前記第1のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第1のアドレス範囲内である前記アクセスアドレスを検出する第1のアドレス検出部と、
    前記第1のアドレス検出部に対応して設けられ、前記アクセス権限情報が前記第1のアクセス権限レベルを示す場合において、前記第1のアドレス検出部において前記アクセスアドレスが検出されたときに前記第1のアクセス許可信号を出力する第1の許可判定部と、を有し、
    前記第2のアクセス判定部は、
    前記アクセスアドレスのうち前記第2のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第2のアドレス範囲内である前記アクセスアドレスを検出する第2のアドレス検出部と、
    前記第2のアドレス検出部に対応して設けられ、前記アクセス権限情報が前記第2のアクセス権限レベルを示す場合において、前記第2のアドレス検出部において前記アクセスアドレスが検出されたときに前記第2のアクセス許可信号を出力する第2の許可判定部と、を有し、
    前記アクセス制御回路は、
    前記第1のアクセス許可信号と前記第2のアクセス許可信号のいずれか一方が許可状態である場合に前記アクセスアドレスを後段回路に出力するアドレス信号制御部を有する請求項4に記載のデータ処理装置。
  8. 前記周辺装置保護回路は、前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有する請求項3乃至6のいずれか1項に記載のデータ処理装置。
  9. 前記アドレスデコーダは、
    前記第1のアクセス権限レベルにおいて前記演算回路が出力する第1のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第1のメモリ空間マップと、
    前記第2のアクセス権限レベルにおいて前記演算回路が出力する第2のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第2のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第2のメモリ空間マップとを有する請求項8に記載のデータ処理装置。
  10. 前記第2のアドレス範囲内に定義される第2のアクセスアドレスと前記第1のアドレス範囲内に定義される第1のアクセスアドレスとは、関連付けられる物理アドレスが同一の場合、アドレス値の差が所定のオフセット値を有するように定義される請求項9に記載のデータ処理装置。
  11. 前記周辺装置保護回路は、前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有し、
    前記アドレスデコーダは、
    前記第1のアクセス権限レベルにおいて前記演算回路が出力する第1のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第1のメモリ空間マップと、
    前記第2のアクセス権限レベルにおいて前記演算回路が出力する第2のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第2のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第2のメモリ空間マップとを有し、
    前記アドレスデコーダは、前記アクセスアドレスが前記第1又は第2のアクセス範囲内であって、前記アクセスアドレスに関連付けられた物理アドレスが存在する場合に、前記アクセスアドレスに対応する前記周辺装置に対して前記選択信号を出力する請求項7に記載のデータ処理装置。
  12. 前記周辺装置保護回路は、
    前記アクセス制御回路が前記周辺装置毎に設けられ、
    前記アドレスデコーダが前記アクセス制御回路の前段に1つ設けられる請求項8乃至10のいずれか1項に記載のデータ処理装置。
  13. 前記複数のレジスタには、前記周辺装置の動作状態を規定する設定値又は前記周辺装置が処理するデータが格納される請求項1乃至12のいずれか1項に記載のデータ処理装置。
  14. 前記データ処理装置は、前記演算回路において実行されるプログラムの格納領域、及び、前記演算回路において実行されるプログラムの処理で生じたデータの一時記憶領域として用いられるメモリをさらに有する請求項1乃至13のいずれか1項に記載のデータ処理装置。
  15. 第1のアクセス権限レベルに対してアクセスが許可される第1のレジスタと、前記第1のアクセス権限レベルよりも低いアクセス権限レベルである第2のアクセス権限レベルに対してアクセスが許可される第2のレジスタとを含む複数のレジスタを備える周辺装置と、第1のアクセス権限レベル又は前記第1のアクセス権限レベルよりも低いアクセス権限レベルである第2動作権限レベルを示すアクセス権限情報と、前記複数のレジスタのうち特定のレジスタを指定するアクセスアドレスと、を実行するプログラムに応じて出力する演算回路と、前記演算回路に接続され、前記アクセス権限情報及び前記アクセスアドレスを受け、前記演算回路の周辺装置に対するアクセスの許可又は遮断を行う周辺装置保護回路と、を備えるデータ処理装置におけるアクセス制御方法であって、
    前記アクセス権限情報により示されるアクセス権限レベルと前記アクセスアドレスとに基づいて前記特定のレジスタへのアクセスを許可するか否かを判定し、前記判定結果に基づき前記アクセスアドレスにより特定される前記特定のレジスタへのアクセスを許可するか否かを判定し、
    前記判定結果に基づき前記特定のレジスタへのアクセスを許可又は遮断するデータ処理装置におけるアクセス制御方法。
  16. 前記周辺装置保護回路は、前記特定のレジスタへのアクセスの有効/無効を前記周辺装置に指示する選択信号を出力する請求項15に記載のデータ処理装置におけるアクセス制御方法。
  17. 前記周辺装置は、前記選択信号が前記演算回路からのアクセスが有効な状態であることを示す場合に、前記特定のレジスタに対する前記演算回路からのアクセスを受ける請求項16に記載のデータ処理装置におけるアクセス制御方法。
  18. 前記周辺装置保護回路は、
    前記アクセス権限情報が前記第1のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第1のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第1のアクセス許可信号を出力し、
    前記アクセス権限情報が前記第2のアクセス権限レベルを示すときに入力される前記アクセスアドレスが前記第2のアクセス権限レベルにおいてアクセス許可されるレジスタのアドレスを示すときに第2のアクセス許可信号を出力し、
    前記第1及び第2のアクセス許可信号の状態に応じて前記特定のレジスタへのアクセスを許可又は遮断する請求項15乃至17のいずれか1項に記載のデータ処理装置におけるアクセス制御方法。
  19. 前記第1のアクセス許可信号は、前記複数のレジスタのうち前記第1のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
    複数の前記第1のアクセス許可信号を合成して前記第1のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第1の選択信号を出力し、
    前記第2のアクセス許可信号は、前記複数のレジスタのうち前記第1のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
    複数の前記第2のアクセス許可信号を合成して前記第2のアクセス権限レベルにおいて許可されるべきレジスタへのアクセスの有効を示す第2の選択信号を出力する請求項18に記載のデータ処理装置におけるアクセス制御方法。
  20. 前記第1のアクセス許可信号は、前記複数のレジスタのうち前記第1のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
    前記第2のアクセス許可信号は、前記複数のレジスタのうち前記第1のアクセス権限レベルにおいて許可されるレジスタのそれぞれに対応して複数生成され、
    複数の前記第1のアクセス許可信号と複数の前記第2のアクセス許可信号とを合成して前記周辺装置へのアクセスの有効を示す選択信号を出力する請求項18に記載のデータ処理装置におけるアクセス制御方法。
  21. 前記第1のアクセス許可信号は、前記アクセスアドレスが前記第1のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第1のアドレス範囲内である場合に生成され、
    前記第2のアクセス許可信号は、前記アクセスアドレスが前記第2のアクセス権限レベルにおいてアクセスが許可されるレジスタのアクセスアドレスの範囲を示す第2のアドレス範囲内である場合に生成され、
    前記第1のアクセス許可信号と前記第2のアクセス許可信号のいずれか一方が許可状態である場合に前記アクセスアドレスを後段回路に出力する請求項18に記載のデータ処理装置におけるアクセス制御方法。
  22. 前記周辺装置保護回路は、
    記第1のアクセス権限レベルにおいて前記演算回路が出力する第1のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第1のメモリ空間マップと、
    前記第2のアクセス権限レベルにおいて前記演算回路が出力する第2のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第2のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第2のメモリ空間マップとを備え、
    前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有し、
    前記アドレスデコーダは、前記アクセスアドレスが前記第1又は第2のアクセス範囲内であって、前記アクセスアドレスに関連付けられた物理アドレスが存在する場合に、前記アクセスアドレスに対応する前記周辺装置に対して前記選択信号を出力する請求項20に記載のデータ処理装置におけるアクセス制御方法。
  23. 前記周辺装置保護回路は、
    記第1のアクセス権限レベルにおいて前記演算回路が出力する第1のアドレス範囲のアクセスアドレスと前記複数のレジスタの物理アドレスとを関連付けた第1のメモリ空間マップと、
    前記第2のアクセス権限レベルにおいて前記演算回路が出力する第2のアドレス範囲のアクセスアドレスと前記複数のレジスタのうち前記第2のアクセス権限においてアクセス許可されるレジスタの物理アドレスとを関連付けた第2のメモリ空間マップとを備え、
    前記アクセスアドレスをデコードして、前記複数のレジスタの物理アドレスを出力するアドレスデコーダを有し、
    前記アドレスデコーダは、前記第2のアドレス範囲内に定義される第2のアクセスアドレスと前記第1のアドレス範囲内に定義される第1のアクセスアドレスとは、関連付けられる物理アドレスが同一の場合、アドレス値の差が所定のオフセット値を有するように定義される請求項17乃至21のいずれか1項に記載のデータ処理装置におけるアクセス制御方法。
  24. 前記複数のレジスタには、前記周辺装置の動作状態を規定する設定値又は前記周辺装置が処理するデータが格納される請求項15乃至23のいずれか1項に記載のデータ処理装置におけるアクセス制御方法。
JP2008117080A 2008-04-28 2008-04-28 データ処理装置及びデータ処理装置におけるアクセス制御方法 Active JP4514066B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008117080A JP4514066B2 (ja) 2008-04-28 2008-04-28 データ処理装置及びデータ処理装置におけるアクセス制御方法
US12/285,078 US20090271861A1 (en) 2008-04-28 2008-09-29 Data processing apparatus and access control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008117080A JP4514066B2 (ja) 2008-04-28 2008-04-28 データ処理装置及びデータ処理装置におけるアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2009266085A JP2009266085A (ja) 2009-11-12
JP4514066B2 true JP4514066B2 (ja) 2010-07-28

Family

ID=41216303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008117080A Active JP4514066B2 (ja) 2008-04-28 2008-04-28 データ処理装置及びデータ処理装置におけるアクセス制御方法

Country Status (2)

Country Link
US (1) US20090271861A1 (ja)
JP (1) JP4514066B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788653B2 (en) * 2011-01-05 2014-07-22 F-Secure Corporation Controlling access to web content
CN103620612B (zh) * 2011-07-12 2016-04-13 惠普发展公司,有限责任合伙企业 包括端口和来宾域的计算设备
KR101776329B1 (ko) * 2011-11-25 2017-09-08 현대자동차주식회사 접근권한코드를 이용한 디바이스 보호 시스템 및 그 보호 방법
JP5756413B2 (ja) * 2012-01-18 2015-07-29 オークマ株式会社 制御装置
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
GB2554940B (en) 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
US10268823B2 (en) * 2016-10-27 2019-04-23 Wind River Systems, Inc. Device, system, and method for securing executable operations
US10713750B2 (en) * 2017-04-01 2020-07-14 Intel Corporation Cache replacement mechanism
GB2596103B (en) * 2020-06-17 2022-06-15 Graphcore Ltd Dual level management
CN114760448B (zh) * 2022-06-15 2022-09-02 深圳市鼎山科技有限公司 基于短信远程激活的5g视频智能监控系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530979A (ja) * 2001-04-04 2004-10-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリの一部を保護するための方法および装置
JP2007334432A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp 情報処理装置及びそのアクセス制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62274445A (ja) * 1986-05-23 1987-11-28 Mitsubishi Electric Corp マイクロ・コンピユ−タ・システムにおける特権保護方式
US5434562A (en) * 1991-09-06 1995-07-18 Reardon; David C. Method for limiting computer access to peripheral devices
CA2191331C (en) * 1994-05-26 2005-12-20 Mark Stephen Anderson Secure computer architecture
US5911778A (en) * 1996-12-31 1999-06-15 Sun Microsystems, Inc. Processing system security
US6141774A (en) * 1998-04-17 2000-10-31 Infineon Technologies North America Corp. Peripheral device with access control
US6542995B2 (en) * 1998-11-20 2003-04-01 Compaq Information Technologies Group, L.P. Apparatus and method for maintaining secured access to relocated plug and play peripheral devices
KR100462177B1 (ko) * 2002-08-26 2004-12-17 삼성전자주식회사 주변 장치의 동작 상태를 실시간으로 백업할 수 있는엠베디드 컨트롤러
US7404019B2 (en) * 2003-03-07 2008-07-22 Freescale Semiconductor, Inc. Method and apparatus for endianness control in a data processing system
US7434264B2 (en) * 2003-03-07 2008-10-07 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530979A (ja) * 2001-04-04 2004-10-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリの一部を保護するための方法および装置
JP2007334432A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp 情報処理装置及びそのアクセス制御方法

Also Published As

Publication number Publication date
US20090271861A1 (en) 2009-10-29
JP2009266085A (ja) 2009-11-12

Similar Documents

Publication Publication Date Title
JP4514066B2 (ja) データ処理装置及びデータ処理装置におけるアクセス制御方法
JP5234794B2 (ja) データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
US7434264B2 (en) Data processing system with peripheral access protection and method therefor
US7444668B2 (en) Method and apparatus for determining access permission
JP4872001B2 (ja) メモリ・アクセス安全性管理
JP4602403B2 (ja) データ処理システムにおけるエンディアンネス制御方法および装置
JP2017505492A (ja) 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP7213879B2 (ja) 間接アクセスメモリコントローラ用のメモリ保護装置
JP4587756B2 (ja) 半導体集積回路装置
US9489316B2 (en) Method and device implementing execute-only memory protection
JP2014081819A (ja) 情報処理装置
JP2004062910A (ja) マルチコアプロセッサにセマフォを具現化し、共通資源へのアクセスを制御する方法
JP6235088B2 (ja) 情報処理装置
JP5380392B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP5324676B2 (ja) プロセッサ、バスインターフェース装置、およびコンピュータシステム
JP2003058522A (ja) 内部ramモニタ装置および方法

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20091002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100413

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100506

R150 Certificate of patent or registration of utility model

Ref document number: 4514066

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350