JP6726088B2 - データ処理装置、及びアクセス制御方法 - Google Patents

データ処理装置、及びアクセス制御方法 Download PDF

Info

Publication number
JP6726088B2
JP6726088B2 JP2016243306A JP2016243306A JP6726088B2 JP 6726088 B2 JP6726088 B2 JP 6726088B2 JP 2016243306 A JP2016243306 A JP 2016243306A JP 2016243306 A JP2016243306 A JP 2016243306A JP 6726088 B2 JP6726088 B2 JP 6726088B2
Authority
JP
Japan
Prior art keywords
unit
processing unit
access
permission setting
access control
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
JP2016243306A
Other languages
English (en)
Other versions
JP2018097719A (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 JP2016243306A priority Critical patent/JP6726088B2/ja
Priority to US15/808,960 priority patent/US10706178B2/en
Priority to CN201711343385.1A priority patent/CN108229201B/zh
Publication of JP2018097719A publication Critical patent/JP2018097719A/ja
Application granted granted Critical
Publication of JP6726088B2 publication Critical patent/JP6726088B2/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明はデータ処理装置、及びアクセス制御方法に関し、例えば、演算部の処理部へのアクセスを制御するアクセス制御部を備えたデータ処理装置、及びアクセス制御方法に関する。
一般的に、データ処理装置は、演算部が周辺資源(処理部)にアクセスする際、不正なアクセスから周辺資源を保護するために、周辺資源へのアクセスを制御するアクセス制御部を備えている。
特許文献1の図3には、マイクロプロセッサとメモリとMPU(Memory Protection Unit)とを備えたコンピュータシステムに関する技術が開示されている。特許文献1に開示されている技術では、マイクロプロセッサがメモリにアクセスする際に、MPUを用いてマイクロプロセッサのメモリへのアクセスを制御している。
特開2010−250470号公報
背景技術で説明したように、データ処理装置は、演算部が周辺資源にアクセスする際、不正なアクセスから周辺資源を保護するために、周辺資源へのアクセスを制御するアクセス制御部を備えている。例えば、アクセス制御部は、周辺資源が備える各々のエントリ(処理部)に演算部がアクセス可能であるか否かを取り決めた許可設定情報に基づいて、演算部の各エントリへのアクセスを制御している。
しかしながら、近年のデータ処理装置では周辺資源のエントリ数が増加傾向にある。このため、各々のエントリ(処理部)への演算部のアクセス権限を取り決めた許可設定情報が膨大になり、許可設定情報を格納している回路の規模も大きくなるという問題があった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、データ処理装置は、演算部の処理部へのアクセスを制御するアクセス制御部を備える。アクセス制御部は、演算部から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報および識別子テーブルを選択し、選択された識別子テーブルを用いて、演算部から出力されたアクセス要求識別子に対応する中間識別子を決定し、選択された許可設定情報と決定された中間識別子とを用いて、演算部の処理部へのアクセスの可否を判定する。
前記一実施の形態によれば、回路規模の増大を抑制することが可能なデータ処理装置、及びアクセス制御方法を提供することができる。
実施の形態1にかかるデータ処理装置のシステム構成を示すブロック図である。 実施の形態1にかかるデータ処理装置の構成例を示すブロック図である。 実施の形態1にかかるデータ処理装置が備える周辺資源(処理部および許可設定部)の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備えるMID許可設定選択部の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備えるTID選択部の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備えるSPIDテーブル部の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備えるSPIDテーブル選択部の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備えるMID一致判定部の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備える許可判定部の構成例を示す図である。 実施の形態1にかかるデータ処理装置のアクセス制御の動作を説明するためのフローチャートである。 実施の形態1にかかるデータ処理装置が備えるSPIDテーブル部の具体例を示す図である。 実施の形態1にかかるデータ処理装置が備える周辺資源(処理部および許可設定部)の具体例を示す図である。 実施の形態1にかかるデータ処理装置のアクセス制御の具体例を説明するためのフローチャートである。 比較例にかかるデータ処理装置の許可設定部の構成例を示す図である。 実施の形態1にかかるデータ処理装置が備えるSPIDテーブル部、及び許可設定部の構成例を示す図である。 実施の形態2にかかるデータ処理装置の構成例を示すブロック図である。 実施の形態2にかかるデータ処理装置が備えるMID許可設定選択部の構成例を示す図である。 実施の形態2にかかるデータ処理装置が備えるTID選択部の構成例を示す図である。 実施の形態3にかかるデータ処理装置の構成例を示すブロック図である。 実施の形態3にかかるデータ処理装置が備えるTID選択部の構成例を示す図である。 実施の形態4にかかるデータ処理装置の構成例を示すブロック図である。 実施の形態4にかかるデータ処理装置が備えるTID選択部の構成例を示す図である。 実施の形態1にかかるデータ処理装置を車両に用いた場合の構成例を示すブロック図である。
<実施の形態1>
以下、図面を参照して実施の形態1について説明する。
図1は、実施の形態1にかかるデータ処理装置のシステム構成を示すブロック図である。図1に示すように、本実施の形態にかかるデータ処理装置1は、演算部であるCPU(Central Processing Unit)10_1、10_2、アクセス制御部11_1、11_2、及び周辺資源12_1、12_2を備える。
各々のCPU10_1、10_2は、バス19を介して周辺資源12_1、12_2にアクセス可能に構成されている。各々のCPU10_1、10_2は所定のプログラムを実行する。図1に示す例では、複数のCPU10_1、10_2を備える構成(マルチコア)を示したが、CPUは1つであってもよい。
アクセス制御部11_1は、各々のCPU10_1、10_2の周辺資源12_1へのアクセスを制御する。また、アクセス制御部11_2は、各々のCPU10_1、10_2の周辺資源12_2へのアクセスを制御する。なお、図1に示す例では、アクセス制御部11_1、11_2を周辺資源12_1、12_2の外部に設けた構成を示したが、本実施の形態では、周辺資源12_1の内部にアクセス制御部11_1を設けてもよく、また周辺資源12_2の内部にアクセス制御部11_2を設けてもよい。
周辺資源12_1は、処理部13_1と許可設定部14_1とを備える。処理部13_1には、1つ以上の処理部0〜i−1(iは1以上の整数)が設けられている。各々の処理部0〜i−1は、周辺資源12_1の主機能(割込み処理など)を提供する。また、許可設定部14_1には、1つ以上の許可設定部0〜i−1(iは1以上の整数)が設けられている。許可設定部0〜i−1の各々は、各々のCPU10_1、10_2の処理部0〜i−1へのアクセスの可否を設定している。
具体的には、許可設定部0は、CPU10_1、10_2の処理部0へのアクセスの可否を設定しており、許可設定部0及び処理部0はエントリ0を構成する。また、許可設定部1は、CPU10_1、10_2の処理部1へのアクセスの可否を設定しており、許可設定部1及び処理部1はエントリ1を構成する。このように、各々の許可設定部0〜i−1は、CPU10_1、10_2の各々の処理部0〜i−1へのアクセスの可否を設定しており、各々の許可設定部0〜i−1及び各々の処理部0〜i−1はそれぞれ、エントリ0〜i−1を構成する。
周辺資源12_2は、処理部13_2と許可設定部14_2とを備える。なお、周辺資源12_2の構成については、周辺資源12_1の構成と同様であるので詳細な説明は省略する。なお、図1に示す例では、アクセス制御部11_1、11_2および周辺資源12_1、12_2をそれぞれ複数備える構成を示したが、アクセス制御部および周辺資源の数は各々1つであってもよい。
本実施の形態にかかるデータ処理装置1では、各々のCPU10_1、10_2が周辺資源12_1、12_2にアクセスする際、アクセス制御部11_1、11_2を用いて周辺資源12_1、12_2へのアクセスを制御している。以下、アクセス制御部11_1、11_2におけるアクセス制御について詳細に説明する。
図2は、本実施の形態にかかるデータ処理装置の構成例を示すブロック図である。図2に示すデータ処理装置では、図1に示したデータ処理装置の一部を示している。具体的には、図2に示すデータ処理装置では、説明を簡略化するために、CPU10、アクセス制御部11、及び周辺資源12をそれぞれ1つずつ備える構成を示している。なお、以下では、CPU10、アクセス制御部11、及び周辺資源12をそれぞれ1つずつ備える構成について説明するが、以下で説明する内容は、CPU10、アクセス制御部11、及び周辺資源12をそれぞれ複数備える構成(図1参照)にも同様に適用することができる。
図2に示すように、データ処理装置1は、CPU10、アクセス制御部11、及び周辺資源12を備える。アクセス制御部11は、MID許可設定選択部21、TID選択部22、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26を備える。また、周辺資源12は、処理部13および許可設定部14を備える。
CPU10は所定のプログラムを実行する。また、CPU10には、アクセス要求識別子(SPID:System Protection IDentification)が格納されている。CPU10は、周辺資源12へのアクセス要求の際、処理部選択情報、SPID、及びリード/ライトなどのアクセス種別に関する情報であるアクセス情報(R/W等)をアクセス制御部11に出力する。なお、以下では一例としてアクセス情報がリード/ライトのアクセス情報(R/W)である場合について説明する。
周辺資源12の処理部13には、処理部0〜i−1(iは1以上の整数)が設けられている。各々の処理部0〜i−1は、周辺資源12の主機能(割込み処理など)を提供する。また、周辺資源12は、許可設定部14を備える。
図3は、周辺資源12の構成例、つまり処理部13および許可設定部14の構成例を示す図である。図3に示すように、許可設定部14は、各々の処理部0〜i−1に対応した許可設定部0〜i−1を備える。各々の許可設定部0〜i−1には、アクセス制御に使用するSPIDテーブル設定TID(Table IDentification)(詳細は後述する)と、中間識別子(MID:Middle IDentification)毎に設定されたアクセス許可設定情報(MID許可設定)と、が対応付けられた許可設定情報が格納されている。
つまり、許可設定部0はCPU10の処理部0へのアクセスの可否を設定しており、許可設定部0及び処理部0はエントリ0を構成する。許可設定部1はCPU10の処理部1へのアクセスの可否を設定しており、許可設定部1及び処理部1はエントリ1を構成する。このように、各々の許可設定部0〜i−1は、CPU10の各々の処理部0〜i−1へのアクセスの可否を設定しており、各々の許可設定部0〜i−1及び各々の処理部0〜i−1はそれぞれ、エントリ0〜i−1を構成している。
図2に示すように、許可設定部14は、SPIDテーブル設定およびMID許可設定をアクセス制御部11に出力する。具体的には、許可設定部14は、SPIDテーブル設定をアクセス制御部11のTID選択部22に、MID許可設定をアクセス制御部11のMID許可設定選択部21にそれぞれ出力する。
アクセス制御部11のMID許可設定選択部21は、CPU10から出力された処理部選択情報を用いて、許可設定部14から供給されたMID許可設定の中からアクセス制御に使用するMID許可設定を選択し、選択したMID許可設定を許可判定部26に出力する。
図4は、MID許可設定選択部21の構成例を示す図である。図4に示すように、MID許可設定選択部21は、MID選択情報生成部41およびセレクタ42を備える。MID選択情報生成部41は、CPU10から出力された処理部選択情報に応じた選択信号を生成し、生成した選択信号をセレクタ42に出力する。セレクタ42は、許可設定部14から供給されたMID許可設定の中から、選択信号に応じたMID許可設定を選択して出力する。
例えば、処理部選択情報は、CPU10がアクセスする処理部0〜i−1のアクセスアドレスであり、MID許可設定選択部21は、このアクセスアドレスを用いて、CPU10がアクセスする処理部0〜i−1を把握することができる。よって、MID許可設定選択部21は、CPU10がアクセスする処理部0〜i−1に対応したMID許可設定0〜i−1を選択することができる。
図2に示すTID選択部22は、CPU10から出力された処理部選択情報を用いて、許可設定部14から供給されたSPIDテーブル設定(TID)の中からアクセス制御に使用するSPIDテーブル設定(TID)を選択し、選択したSPIDテーブル設定(TID)をSPIDテーブル選択部24に出力する。
図5は、TID選択部22の構成例を示す図である。図5に示すように、TID選択部22は、TID選択情報生成部43およびセレクタ44を備える。TID選択情報生成部43は、CPU10から出力された処理部選択情報に応じた選択信号を生成し、生成した選択信号をセレクタ44に出力する。セレクタ44は、許可設定部14から供給されたSPIDテーブル設定(TID)の中から、選択信号に応じたSPIDテーブル設定(TID)を選択して出力する。
例えば、処理部選択情報は、CPU10がアクセスする処理部0〜i−1のアクセスアドレスであり、TID選択部22は、このアクセスアドレスを用いて、CPU10がアクセスする処理部0〜i−1を把握することができる。よって、TID選択部22は、CPU10がアクセスする処理部0〜i−1に対応したSPIDテーブル設定(TID)を選択することができる。
図2に示すSPIDテーブル部23は、MIDとSPIDとを対応付けたSPIDテーブルを備える。図6は、SPIDテーブル部23の構成例を示す図である。図6に示すように、SPIDテーブル部23は、SPIDテーブル(TID=0〜TID=j−1)(ここで、jは1以上の整数である)を備える。図6に示す例では、各々のSPIDテーブル(TID=0〜TID=j−1)には、4つのMID0〜MID3と4つのSPID0〜SPID3とがそれぞれ対応付けられて格納されている。図6に示すSPIDテーブルは、MID0にSPID0が設定された場合、SPID0のアクセスに対してMID0のMID許可設定を適用することを意味する。
図2に示すSPIDテーブル選択部24は、TID選択部22で選択されたSPIDテーブル設定(TID)を用いて、SPIDテーブル部23に格納されているSPIDテーブル(TID=0〜TID=j−1)の中からアクセス制御に使用するSPIDテーブルを選択し、選択したSPIDテーブルをMID一致判定部25に出力する。
図7は、SPIDテーブル選択部24の構成例を示す図である。図7に示すように、SPIDテーブル選択部24は、セレクタ45を用いて構成されている。セレクタ45は、SPIDテーブル部23に格納されているSPIDテーブル(TID=0〜TID=j−1)の中から、TID選択部22から供給されたSPIDテーブル設定(TID)に応じたSPIDテーブルを選択して出力する。
図2に示すMID一致判定部25は、SPIDテーブル選択部24で選択されたSPIDテーブルを用いて、CPU10から出力されたSPIDに対応するMIDを決定する。
図8は、MID一致判定部25の構成例を示す図である。図8に示すように、MID一致判定部25は演算子47_0〜47_3を備える。演算子47_0〜47_3の各々には、選択されたSPIDテーブルの各々のMID0〜MID3に設定された値(SPID0〜SPID3)が供給される。また、演算子47_0〜47_3の各々には、CPU10からSPIDが供給される。各々の演算子47_0〜47_3は、CPU10から供給されたSPIDと、各々のMID0〜MID3に設定された値(SPID0〜SPID3)とを比較し、これらの値が一致した場合はMIDに該当するアクセス要求であると判断する。
例えば、演算子47_0は、CPU10から供給されたSPIDが、SPIDテーブルのMID0に設定された値(SPID0)と一致した場合、MID0に該当するアクセス要求であると判断する。このとき、MID一致判定部25は、MID0が一致したという判定結果を出力する。
このように、MID一致判定部25は、SPIDテーブルから供給されたSPID0〜SPID3とCPU10から供給されたSPIDとの一致判定を行い、一致判定の結果を許可判定部26に出力する。
図2に示す許可判定部26は、MID許可設定選択部21で選択されたMID許可設定と、MID一致判定部25から出力されたMID一致判定結果と、CPU10から出力されたアクセス情報(R/W)と、に基づいて、CPU10の処理部13へのアクセスの可否を判定する。
図9は、許可判定部26の構成例を示す図である。図9に示す許可判定部26は、アクセス判定部48_0〜48_3、AND_0〜AND_3、及びOR回路を備える。図9に示す許可判定部26では、まず初めにアクセス判定部48_0〜48_3においてアクセス判定を行う。
アクセス判定部48_0〜48_3には、CPU10からアクセス情報(R/W)が供給される。また、アクセス判定部48_0〜48_3には、MID0許可設定〜MID3許可設定が供給される。ここで、MID0許可設定〜MID3許可設定は、MID0〜MID3に対する許可設定であり、例えば、「MID0はリード許可/ライト不許可」、「MID1はリード許可/ライト許可」、「MID2はリード不許可/ライト許可」、「MID3はリード不許可/ライト不許可」のように設定されている。
このような設定において、例えば、CPU10からアクセス情報(R/W)として、リード(R)アクセスが供給された場合、アクセス判定部48_0〜48_3のうち、リード許可に設定されているMID0許可設定、MID1許可設定に対応したアクセス判定部48_0、48_1が許可判定を出力し、リード不許可に設定されているMID2許可設定、MID3許可設定に対応したアクセス判定部48_2、48_3が不許可判定を出力する。
アクセス判定部48_0〜48_3におけるアクセス判定の後、MID一致判定結果に基づくアクセス判定が行われる。つまり、AND_0〜AND_3の各々には、MID一致判定部25からMID0〜MID3のMID一致判定結果がそれぞれ供給される。また、AND_0〜AND_3の各々には、アクセス判定部48_0〜48_3からアクセス判定結果が供給される。
そして、各々のAND_0〜AND_3は、アクセス判定部48_0〜48_3から供給されたアクセス判定結果が「許可判定」であり、且つMID一致判定部25から供給されたMID一致判定結果が「一致」している場合、アクセス許可と判定する。一方、各々のAND_0〜AND_3は、アクセス判定部48_0〜48_3から供給されたアクセス判定結果が「不許可判定」であるか、またはMID一致判定部25から供給されたMID一致判定結果が「不一致」の場合、アクセス不許可と判定する。
AND_0〜AND_3から出力された判定結果は、OR回路に供給される。OR回路は、AND_0〜AND_3のうちの少なくとも1つがアクセス許可と判定している場合、アクセス許可の判定結果を出力する。一方、OR回路は、AND_0〜AND_3のうちの全てがアクセス不許可と判定している場合、アクセス不許可の判定結果を出力する。
なお、図9に示した許可判定部26では、まず初めにアクセス判定部48_0〜48_3においてアクセス判定を行い、その後、MID一致判定結果に基づくアクセス判定を行う場合について説明した。しかし、本実施の形態にかかるデータ処理装置1では、MID一致判定結果に基づくアクセス判定を行った後に、アクセス判定部48_0〜48_3においてアクセス判定を行うようにしてもよい。
また、図9に示した許可判定部26では、CPU10から出力されたアクセス情報としてリード/ライト(R/W)を用いてアクセス判定部48_0〜48_3がアクセス判定を行う場合について説明した。しかし、本実施の形態にかかるデータ処理装置1では、他のアクセス情報(例えば、CPU番号など)を用いて、アクセス判定部48_0〜48_3がアクセス判定を行うように構成してもよい。
次に、本実施の形態にかかるデータ処理装置1のアクセス制御の動作について、図2に示すブロック図、及び図10に示すフローチャートを用いて説明する。
図2に示すように、CPU10は、周辺資源12にアクセスする際、処理部選択情報、SPID、及びアクセス情報(R/W)をアクセス制御部11に出力する。MID許可設定選択部21は、CPU10から出力された処理部選択情報を用いて、許可設定部14から供給されたMID許可設定の中からアクセス制御に使用するMID許可設定を選択し、選択したMID許可設定を許可判定部26に出力する(図10のステップS1)。また、TID選択部22は、CPU10から出力された処理部選択情報を用いて、許可設定部14から供給されたSPIDテーブル設定(TID)の中からアクセス制御に使用するSPIDテーブル設定(TID)を選択し、選択したSPIDテーブル設定(TID)をSPIDテーブル選択部24に出力する(図10のステップS2)。
その後、図2に示すSPIDテーブル選択部24は、TID選択部22で選択されたSPIDテーブル設定(TID)を用いて、SPIDテーブル部23に格納されているSPIDテーブル(TID=0〜TID=j−1)の中からアクセス制御に使用するSPIDテーブルを選択し、選択したSPIDテーブルをMID一致判定部25に出力する(図10のステップS3)。
その後、図2に示すMID一致判定部25は、SPIDテーブル選択部24で選択されたSPIDテーブルを用いて、CPU10から出力されたSPIDに対応するMIDを決定する(図10のステップS4)。具体的には、図8に示したように、MID一致判定部25は、CPU10から供給されたSPIDと、各々のMID0〜MID3に設定された値(SPID0〜SPID3)とを比較し、CPU10から供給されたSPIDと一致したSPID0〜SPID3に対応するMID0〜3を許可判定部26に出力する。
その後、図2に示す許可判定部26は、MID許可設定選択部21で選択されたMID許可設定と、MID一致判定部25から出力されたMID一致判定結果と、CPU10から出力されたアクセス情報(R/W)と、に基づいて、CPU10の処理部13へのアクセスの可否を判定する。
具体的には、図9に示した許可判定部26が備えるアクセス判定部48_0〜48_3は、CPU10から出力されたアクセス情報(R/W)と、図10のステップS1で選択されたMID許可設定(MID0許可設定〜MID3許可設定)とを用いて、アクセス判定を行う(図10のステップS5)。
その後、図9に示した許可判定部26が備えるAND_0〜AND_3、及びOR回路は、MID一致判定部25から供給されたMID一致判定結果と、アクセス判定部48_0〜48_3から供給されたアクセス判定結果とを用いて、許可判定を行う(図10のステップS6)。
許可判定部26は、AND_0〜AND_3のうちの少なくとも1つがアクセス許可と判定している場合(ステップS7:Yes)、アクセス許可の判定結果を出力する。一方、許可判定部26は、AND_0〜AND_3のうちの全てがアクセス不許可と判定している場合(ステップS7:No)、アクセス不許可の判定結果を出力する。
このような動作により、CPU10が処理部13にアクセスする際に、アクセス制御部11は、CPU10の処理部13へのアクセスを制御することができる。換言すると、アクセス制御部11は、CPU10が処理部13にアクセスする際、CPU10の不正なアクセスから処理部13を保護することができる。
次に、本実施の形態にかかるデータ処理装置1におけるアクセス制御の具体例について説明する。
図11は、SPIDテーブル部23の具体例を示す図である。図11に示すように、SPIDテーブル部23は2つのSPIDテーブル(TID=0、1)を備える。SPIDテーブル(TID=0)では、MID0=SPID“0”、MID1=SPID“1”、MID2=SPID“2”、MID3=SPID“3”が設定されている。また、SPIDテーブル(TID=1)では、MID0=SPID“4”、MID1=SPID“5”、MID2=SPID“6”、MID3=SPID“7”が設定されている。
図12は、周辺資源12の具体例、つまり処理部13および許可設定部14の具体例を示す図である。図12では、周辺資源12が4つの処理部0〜処理部3を備える例を示している。処理部0〜処理部3にはそれぞれアクセスアドレスが設定されている。具体的には、処理部0にはアクセスアドレス“0xFFFF0000”が、処理部1にはアクセスアドレス“0xFFFF0004”が、処理部2にはアクセスアドレス“0xFFFF0008”が、処理部3にはアクセスアドレス“0xFFFF000C”が、それぞれ設定されている。
また、許可設定部14には、各々の処理部0〜処理部3に対応する許可設定部0〜許可設定部3が設けられている。各々の許可設定部0〜許可設定部3には、SPIDテーブル設定(TID)、及びMID許可設定が設定されている。具体的には、許可設定部0には、TID=0、MID0=0、MID1=1、MID2=0、MID3=1が設定されている。ここで、MID許可設定が“0”の場合はアクセス不許可を示し、MID許可設定が“1”の場合はアクセス許可を示している。また、許可設定部1には、TID=1、MID0=1、MID1=0、MID2=1、MID3=0が設定されている。許可設定部2には、TID=0、MID0=0、MID1=0、MID2=1、MID3=1が設定されている。許可設定部3には、TID=1、MID0=1、MID1=1、MID2=0、MID3=0が設定されている。
これらの設定を前提条件として、CPUが処理部選択情報としてアクセスアドレス“0xFFFF0008”を、アクセス要求SPIDとして“SPID=2”を用いて、周辺資源12(つまり、処理部2)にアクセスする場合の動作について、図13に示すフローチャートを用いて説明する。
図2に示すように、CPU10は、周辺資源12にアクセスする際、処理部選択情報としてアクセスアドレス“0xFFFF0008”を出力する。図12に示すように、アクセスアドレス“0xFFFF0008”は、処理部2のアクセスアドレスに対応している(n=2)。よって、MID許可設定選択部21は、許可設定部2のMID許可設定を選択し、選択したMID許可設定を許可判定部26に出力する(図13のステップS1)。また、TID選択部22は、許可設定部2のSPIDテーブル設定(TID=0)を選択し、選択したSPIDテーブル設定(TID=0)をSPIDテーブル選択部24に出力する(図13のステップS2)。
その後、図2に示すSPIDテーブル選択部24は、TID選択部22で選択されたSPIDテーブル設定(TID=0)を用いて、SPIDテーブル部23に格納されているSPIDテーブル(TID=0、TID=1)の中からアクセス制御に使用するSPIDテーブル(TID=0)を選択し、選択したSPIDテーブル(TID=0)をMID一致判定部25に出力する(図13のステップS3)。
その後、図2に示すMID一致判定部25は、SPIDテーブル選択部24で選択されたSPIDテーブル(TID=0)を用いて、CPU10から出力されたSPID=2に対応するMIDを決定する(図13のステップS4)。この場合は、SPIDテーブル(TID=0)のMID2に設定されているSPIDが“2”であるので、CPU10から出力されたSPID=2に対応するMIDとして、“MID2”を許可判定部26に出力する。
その後、図2に示す許可判定部26は、MID許可設定選択部21で選択されたMID許可設定(n=2:図13のステップS1参照)と、MID一致判定部25から出力されたMID一致判定結果(MID2)と、に基づいて、CPU10の処理部13へのアクセスの可否を判定する(図13のステップS6)。
具体的には、許可判定部26は、MID許可設定選択部21で選択された許可設定部2の設定情報(MID0=0、MID1=0、MID2=1、MID3=1)を参照して、MID一致判定部25から出力された“MID2”と対応するMID2の設定情報(MID2=1)を取得する。この場合は、MID2=1であるのでアクセス許可となる。よって、CPU10の処理部2(アクセスアドレス“0xFFFF0008”)へのアクセスが許可される。
なお、図13に示す例では、CPU10から出力されたアクセス情報(R/W)を用いたアクセス判定(図10のステップS5)を省略している。
背景技術で説明したように、データ処理装置は、演算部が周辺資源にアクセスする際、不正なアクセスから周辺資源を保護するために、周辺資源へのアクセスを制御するアクセス制御部を備えている。例えば、アクセス制御部は、周辺資源が備える各々のエントリ(処理部)に演算部がアクセス可能であるか否かを取り決めた許可設定情報に基づいて、演算部の各エントリへのアクセスを制御している。
しかしながら、近年のデータ処理装置では周辺資源のエントリ数が増加傾向にある。このため、各々のエントリ(処理部)への演算部のアクセス権限を取り決めた許可設定情報が膨大になり、許可設定情報を格納している回路の規模も大きくなるという問題があった。
そこで本実施の形態にかかるデータ処理装置では、CPU10が処理部13にアクセスする際に、アクセス制御部11にアクセス要求識別子(SPID)を出力するように構成している。また、中間識別子(MID)とアクセス要求識別子(SPID)とを対応付けたSPIDテーブル(図6参照)を設けている。また、中間識別子(MID)毎に許可設定をした許可設定部0〜i−1を設けている(図3参照)。
そして、CPU10が処理部0〜i−1にアクセスする際、アクセス制御部11は、CPU10から出力されたアクセス要求識別子(SPID)に対応する中間識別子(MID)を決定し、この中間識別子(MID)に対応する許可設定に基づいてアクセスの可否を判定している。
ここで、中間識別子(MID)の数は、アクセス要求識別子(SPID)の数よりも少ない。よって、アクセス要求識別子(SPID)毎に許可設定をした場合よりも、中間識別子(MID)毎に許可設定をした場合の方が許可設定部の回路規模を小さくすることができる。具体的には、図3に示す許可設定部0〜i−1の規模を小さくすることができる。
よって、本実施の形態にかかるデータ処理装置によって、回路規模の増大を抑制することが可能なデータ処理装置、及びアクセス制御方法を提供することができる。
図14は、比較例にかかるデータ処理装置の許可設定部の構成例を示す図である。図14に示す比較例では、エントリ数が512の周辺資源に対して許可設定部0〜許可設定部511を設けている。ここで、SPIDは5bitであり、リード・ライトの各々に対してアクセス許可設定を行う場合、図14に示すように、許可設定部0にはSPID0〜SPID31毎にライトの許可設定WSPID0〜WSPID31とリードの許可設定RSPID0〜RSPID31とを設定する。そして、図14に示す比較例では、エントリ数512の全てに対して、このような許可設定部0〜許可設定部511を設けている。よって、許可設定部0〜許可設定部511の回路規模は膨大になる。
図15は、本実施の形態にかかるデータ処理装置1が備えるSPIDテーブル部23、及び許可設定部14の構成例を示す図である。図15に示す構成例では、4つのSPIDテーブル(TID=0〜3)が設けられている。各々のSPIDテーブルは、MID0〜MID3と各々のSPIDとを対応付けるために、1つのMID当たり5ビットのレジスタを用いている。
また、図15に示す構成例では、エントリ数が512の周辺資源に対して許可設定部0〜許可設定部511を設けている。図15に示すように、許可設定部0にはMID0〜MID3毎にライトの許可設定WMID0〜WMID3とリードの許可設定RMID0〜RMID3とが設定されている。また、許可設定部0にはSPIDテーブル設定(TID)が設定されている。SPIDテーブル設定(TID)には2ビットのレジスタが用いられている。そして、図15に示す構成例では、エントリ数512の全てに対して、このような許可設定部0〜許可設定部511を設けている。
図14の比較例にかかる構成と、図15の本実施の形態にかかるデータ処理装置の構成とを比較すると、図15に示す本実施の形態の構成例では、図14に示す比較例の場合と比べて、許可設定部0〜許可設定部511を構成するレジスタの総ビット数を大幅に削減することができる。具体的には、図14に示す比較例の許可設定部0〜許可設定部511を構成するレジスタの総ビット数は、512(エントリ数)×32(SPID数)×2=32768ビットである。一方、図15に示す本実施の形態の構成例の許可設定部0〜許可設定部511を構成するレジスタの総ビット数は、512(エントリ数)×{4(MID数)×2+2ビット(TID)}=5120ビットである。よって、図15に示す本実施の形態の構成例では、図14の比較例にかかる構成と比べて、約84%ビット数を削減することができる。
なお、図15に示す本実施の形態の構成例では、新たにSPIDテーブル(TID=0〜3)を準備する必要がある。しかし、4つのSPIDテーブルを構成するためのビット数は、5ビット×4(MID数)×4(テーブル数)=80ビットであり、少ないビット数でSPIDテーブル(TID=0〜3)を構成することができる。よって、全体的なビット数を考慮しても、図15に示す本実施の形態の構成例のほうが、設定に使用するビット数を少なくすることができる。
また、本実施の形態では、比較例のように全てのSPIDに対して許可設定を設けた場合と比べると、各許可設定部において使用可能なSPIDの数が限定される。しかし、SPIDテーブル部23に定義したSPIDテーブル数と比べて周辺資源が使用できるSPIDの数を増やすことが可能である。また、実際の用途においては、各エントリを使用するプログラムの数は限定されるため、全てのSPIDに対して許可設定を設ける必要はない。
以上で説明した本実施の形態により、回路規模の増大を抑制することが可能なデータ処理装置、及びアクセス制御方法を提供することができる。
<実施の形態2>
次に、実施の形態2について説明する。
図16は、実施の形態2にかかるデータ処理装置の構成例を示すブロック図である。実施の形態2にかかるデータ処理装置2は、実施の形態1で説明したデータ処理装置1(図2参照)と比べて、処理部63が、各々の処理部0〜i−1を使用するCPUを設定するためのCPUIDを持つ点が異なる。これ以外の構成は、実施の形態1で説明したデータ処理装置1(図2参照)と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
図16に示すように、本実施の形態にかかるデータ処理装置2は、複数のCPU60_0〜60_n−1、アクセス制御部61、及び周辺資源62を備える。アクセス制御部61は、MID許可設定選択部65、TID選択部66、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26を備える。また、周辺資源62は、処理部63および許可設定部64を備える。
複数のCPU60_0〜60_n−1は、バス19を介して周辺資源62にアクセス可能に構成されている。このとき、アクセス制御部61は、各々のCPU60_0〜60_n−1の周辺資源62へのアクセスを制御する。
各々のCPU60_0〜60_n−1は、所定のプログラムを実行する。また、各々のCPU60_0〜60_n−1には、アクセス要求識別子(SPID)が格納されている。各々のCPU60_0〜60_n−1は、周辺資源62にアクセスする際、アクセスアドレス、SPID、及びアクセス情報(R/W)をアクセス制御部61に出力する。
周辺資源62の処理部63には、処理部0〜i−1(iは1以上の整数)が設けられている。各々の処理部0〜i−1は、周辺資源62の主機能(割込み処理など)を提供する。また、周辺資源62は、許可設定部64を備える。
また、本実施の形態では、各々の処理部0〜i−1を使用するCPUを設定するためのCPUIDを持つ。本実施の形態では、n個のCPU60_0〜60_n−1を備えるので、CPUIDとして、CPUID=0〜n−1が設定される。例えば、処理部0と対応するCPUIDとしてCPUID=0を設定した場合、これは、処理部0を使用するCPUがCPU0(60_0)であることを意味している。なお、各々の処理部0〜i−1に対応するCPUIDは、ユーザが任意に設定することができる。各々の処理部0〜i−1に対応するCPUIDは、TID選択部66に出力される。
許可設定部64は、図3に示した許可設定部14と同様に、各々の処理部0〜i−1に対応した許可設定部0〜i−1を備える。各々の許可設定部0〜i−1には、中間識別子(MID)毎に設定されたアクセス許可設定情報(MID許可設定)が格納されている。なお、本実施の形態では、TID選択部66は、各々の処理部0〜i−1に対応するCPUIDを用いて、SPIDテーブル設定(TID)を選択する。よって、本実施の形態において、許可設定部64は、図3に示した許可設定部14が備えるSPIDテーブル設定(TID)を備えない。
図16に示すように、許可設定部64は、MID許可設定をMID許可設定選択部65に出力する。MID許可設定選択部65は、CPU60_0〜60_n−1から出力されたアクセスアドレスを用いて、許可設定部64から供給されたMID許可設定の中からアクセス制御に使用するMID許可設定を選択し、選択したMID許可設定を許可判定部26に出力する。
図17は、MID許可設定選択部65の構成例を示す図である。図17に示すように、MID許可設定選択部65は、MID選択情報生成部71およびセレクタ72を備える。MID選択情報生成部71は、CPU60_0〜60_n−1から出力されたアクセスアドレスに応じた選択信号を生成し、生成した選択信号をセレクタ72に出力する。セレクタ72は、許可設定部64から供給されたMID許可設定の中から、選択信号に応じたMID許可設定を選択して出力する。
ここで、CPU60_0〜60_n−1から出力されたアクセスアドレスは、CPU60_0〜60_n−1がアクセスする処理部0〜i−1のアクセスアドレスであり、MID許可設定選択部65は、このアクセスアドレスを用いて、CPU60_0〜60_n−1がアクセスする処理部0〜i−1を把握することができる。よって、MID許可設定選択部65は、CPU60_0〜60_n−1がアクセスする処理部0〜i−1に対応したMID許可設定0〜i−1を選択することができる。
図16に示すTID選択部66は、CPU60_0〜60_n−1から出力されたアクセスアドレスを用いて、周辺資源62から供給された各々の処理部0〜i−1に対応するCPUIDの中からアクセスアドレスに対応するCPUIDを選択する。
図18は、TID選択部66の構成例を示す図である。図18に示すように、TID選択部66は、セレクタ73を備える。セレクタ73は、周辺資源62から供給された各々の処理部0〜i−1に対応するCPUIDの中から、アクセスアドレスに対応したCPUIDを選択して出力する。
ここで、CPU60_0〜60_n−1から出力されたアクセスアドレスは、CPU60_0〜60_n−1がアクセスする処理部0〜i−1に対応するアクセスアドレスである。よって、TID選択部66は、CPU60_0〜60_n−1から出力されたアクセスアドレスを用いることで、CPU60_0〜60_n−1がアクセスする処理部0〜i−1に対応するCPUIDを選択することができる。選択されたCPUIDは、選択されたTIDとしてSPIDテーブル選択部24に供給される。
例えば、CPU60_1が処理部1を使用する場合、処理部1のCPUIDはCPUID=1に設定される。CPU60_1は、処理部1にアクセスする際に、アクセスアドレスとして処理部1に対応するアクセスアドレス=1を出力する。TID選択部66は、アクセスアドレス=1に対応する処理部1のCPUID=1を、TIDとしてSPIDテーブル選択部24に出力する。
なお、本実施の形態にかかる構成では、SPIDテーブル部23には、n個のCPUID=0〜n−1に対応するSPIDテーブル(TID=0〜n−1)が格納されている。
また、これ以外の構成、つまり、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26の構成については実施の形態1で説明した構成と同様であるので重複した説明は省略する。
本実施の形態にかかるデータ処理装置2では、複数のCPU60_0〜60_n−1が周辺資源62を共有している。また、各々の処理部0〜i−1は、各々の処理部0〜i−1を使用するCPUの情報であるCPUIDを有する。このような構成は、例えば、割込みコントローラなど、各チャネル(処理部)を使用するCPUを指定する場合などに用いられる。例えば、組み込み分野のマルチコアシステムにおいては、メモリ空間及び周辺装置へのアクセス権限の設定をCPU単位で管理したい場合がある。本実施の形態にかかる構成は、このような場合に好適に用いることができる。
また、本実施の形態にかかるデータ処理装置2では、処理部0〜i−1を使用するCPUに依存して、参照するSPIDテーブル(つまり、MID一致判定部25で使用されるSPIDテーブル)を変更することができる。これにより、SPIDテーブルをCPU単位で使用することになり、マルチコアシステムにおけるプログラミングにおいてアクセス権限の管理が容易となる。
つまり、マルチコアシステムにおいて、複数のCPUが、周辺資源を占有的もしくは共有して使用するためのアクセス権限の管理は大きな課題である。本実施の形態にかかるデータ処理装置2では、処理部0〜i−1を使用するCPUの設定に、参照するSPIDテーブルを連動させることで、このような課題を解決することができる。また、許可設定部64にSPIDテーブル設定(TID)を設ける必要がなくなるため、実装面積を削減することができる。
<実施の形態3>
次に、実施の形態3について説明する。
図19は、実施の形態3にかかるデータ処理装置の構成例を示すブロック図である。実施の形態3にかかるデータ処理装置3は、実施の形態1で説明したデータ処理装置1(図2参照)と比べて、単一のCPU80が複数の仮想CPU(VCPU0〜VCPUm−1)を備え、これら複数の仮想CPU(VCPU0〜VCPUm−1)が周辺資源82を共有している点が異なる。これ以外の構成は、実施の形態1で説明したデータ処理装置1(図2参照)と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
図19に示すように、本実施の形態にかかるデータ処理装置3は、CPU80、アクセス制御部81、及び周辺資源82を備える。アクセス制御部81は、MID許可設定選択部85、TID選択部86、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26を備える。また、周辺資源82は、処理部83および許可設定部84を備える。
CPU80は、複数の仮想CPU(VCPU0〜VCPUm−1)を備える。複数の仮想CPU(VCPU0〜VCPUm−1)は、周辺資源82にアクセス可能に構成されている。このとき、アクセス制御部81は、各々の仮想CPU(VCPU0〜VCPUm−1)の周辺資源82へのアクセスを制御する。
各々の仮想CPU(VCPU0〜VCPUm−1)は、所定のプログラムを実行する。また、CPU80には、アクセス要求識別子(SPID)が格納されている。各々の仮想CPU(VCPU0〜VCPUm−1)は、周辺資源82にアクセスする際、アクセスアドレス、SPID、及びアクセス情報(R/W)をアクセス制御部81に出力する。
周辺資源82の処理部83には、処理部0〜i−1(iは1以上の整数)が設けられている。各々の処理部0〜i−1は、周辺資源82の主機能(割込み処理など)を提供する。また、周辺資源82は、許可設定部84を備える。
また、本実施の形態では、各々の処理部0〜i−1を使用する仮想CPU(VCPU0〜VCPUm−1)を設定するためのVCPUIDを持つ。本実施の形態では、m個の仮想CPU(VCPU0〜VCPUm−1)を備えるので、VCPUIDとして、VCPUID=0〜mが設定される。例えば、処理部0と対応するVCPUIDとしてVCPUID=0を設定した場合、これは、処理部0を使用する仮想CPUがVCPU0であることを意味している。なお、各々の処理部0〜i−1に対応するVCPUIDは、ユーザが任意に設定することができる。各々の処理部0〜i−1に対応するVCPUIDは、TID選択部86に出力される。
許可設定部84は、図3に示した許可設定部14と同様に、各々の処理部0〜i−1に対応した許可設定部0〜i−1を備える。各々の許可設定部0〜i−1には、中間識別子(MID)毎に設定されたアクセス許可設定情報(MID許可設定)が格納されている。なお、本実施の形態では、TID選択部86は、各々の処理部0〜i−1に対応するVCPUIDを用いて、SPIDテーブル設定(TID)を選択する。よって、本実施の形態において、許可設定部84は、図3に示した許可設定部14が備えるSPIDテーブル設定(TID)を備えない。
図19に示すように、許可設定部84は、MID許可設定をMID許可設定選択部85に出力する。MID許可設定選択部85は、CPU80から出力されたアクセスアドレスを用いて、許可設定部84から供給されたMID許可設定の中からアクセス制御に使用するMID許可設定を選択し、選択したMID許可設定を許可判定部26に出力する。
ここで、CPU80から出力されたアクセスアドレスは、仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1のアクセスアドレスであり、MID許可設定選択部85は、このアクセスアドレスを用いて、仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1を把握することができる。よって、MID許可設定選択部85は、仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1に対応したMID許可設定0〜i−1を選択することができる。
図19に示すTID選択部86は、CPU80の仮想CPU(VCPU0〜VCPUm−1)から出力されたアクセスアドレスを用いて、周辺資源82から供給された各々の処理部0〜i−1に対応するVCPUIDの中からアクセスアドレスに対応するVCPUIDを選択する。
図20は、TID選択部86の構成例を示す図である。図20に示すように、TID選択部86は、セレクタ91を備える。セレクタ91は、周辺資源82から供給された各々の処理部0〜i−1に対応するVCPUIDの中から、アクセスアドレスに対応したVCPUIDを選択して出力する。
ここで、CPU80から出力されたアクセスアドレスは、仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1に対応するアクセスアドレスである。よって、TID選択部86は、CPU80から出力されたアクセスアドレスを用いることで、仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1に対応するVCPUIDを選択することができる。選択されたVCPUIDは、選択されたTIDとしてSPIDテーブル選択部24に供給される。
例えば、仮想CPU(VCPU1)が処理部1を使用する場合、処理部1のVCPUIDはVCPUID=1に設定される。仮想CPU(VCPU1)は、処理部1にアクセスする際に、アクセスアドレスとして処理部1に対応するアクセスアドレス=1を出力する。TID選択部86は、アクセスアドレス=1に対応する処理部1のVCPUID=1を、TIDとしてSPIDテーブル選択部24に出力する。
なお、本実施の形態にかかる構成では、SPIDテーブル部23には、m個のVCPUID=0〜m−1に対応するSPIDテーブル(TID=0〜m−1)が格納されている。
また、これ以外の構成、つまり、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26の構成については実施の形態1で説明した構成と同様であるので重複した説明は省略する。
本実施の形態にかかるデータ処理装置3では、複数の仮想CPU(VCPU0〜VCPUm−1)が周辺資源82を共有している。また、各々の処理部0〜i−1は、各々の処理部0〜i−1を使用する仮想CPUの情報であるVCPUIDを有する。このような構成は、例えば、割込みコントローラなど、各チャネル(処理部)を使用する仮想CPUを指定する場合などに用いられる。例えば、組み込み分野のマルチコアシステムにおいては、メモリ空間及び周辺装置へのアクセス権限の設定を仮想CPU単位で管理したい場合がある。本実施の形態にかかる構成は、このような場合に好適に用いることができる。
また、本実施の形態にかかるデータ処理装置3では、処理部0〜i−1を使用する仮想CPUに依存して、参照するSPIDテーブル(つまり、MID一致判定部25で使用されるSPIDテーブル)を変更することができる。これにより、SPIDテーブルを仮想CPU単位で使用することになり、マルチコアシステムにおけるプログラミングにおいてアクセス権限の管理が容易となる。
つまり、マルチコアシステムにおいて、複数の仮想CPUが、周辺資源を占有的もしくは共有して使用するためのアクセス権限の管理は大きな課題である。本実施の形態にかかるデータ処理装置3では、処理部0〜i−1を使用する仮想CPUの設定に、参照するSPIDテーブルを連動させることで、このような課題を解決することができる。また、許可設定部84にSPIDテーブル設定(TID)を設ける必要がなくなるため、実装面積を削減することができる。
<実施の形態4>
次に、実施の形態4について説明する。
図21は、実施の形態4にかかるデータ処理装置の構成例を示すブロック図である。実施の形態4にかかるデータ処理装置4は、実施の形態1で説明したデータ処理装置1(図2参照)と比べて、複数のCPU100_0〜100_n−1の各々が複数の仮想CPU(VCPU0〜VCPUm−1)を備え、これらが周辺資源102を共有している点が異なる。つまり、実施の形態4の構成は、実施の形態2にかかる構成と実施の形態3にかかる構成とを組み合わせた構成である。これ以外の構成は、実施の形態1で説明したデータ処理装置1(図2参照)と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
図21に示すように、本実施の形態にかかるデータ処理装置4は、複数のCPU100_0〜100_n−1、アクセス制御部101、及び周辺資源102を備える。アクセス制御部101は、MID許可設定選択部105、TID選択部106、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26を備える。また、周辺資源102は、処理部103および許可設定部104を備える。
各々のCPU100_0〜100_n−1は、複数の仮想CPU(VCPU0〜VCPUm−1)をそれぞれ備える。複数のCPU100_0〜100_n−1、及び複数の仮想CPU(VCPU0〜VCPUm−1)は、バス19を介して周辺資源102にアクセス可能に構成されている。このとき、アクセス制御部101は、複数のCPU100_0〜100_n−1、及び複数の仮想CPU(VCPU0〜VCPUm−1)の周辺資源102へのアクセスを制御する。
各々のCPU100_0〜100_n−1、及び各々の仮想CPU(VCPU0〜VCPUm−1)は、所定のプログラムを実行する。また、各々のCPU100_0〜100_n−1には、アクセス要求識別子(SPID)が格納されている。各々のCPU100_0〜100_n−1は、周辺資源102にアクセスする際、アクセスアドレス、SPID、及びアクセス情報(R/W)をアクセス制御部101に出力する。
周辺資源102の処理部103には、処理部0〜i−1(iは1以上の整数)が設けられている。各々の処理部0〜i−1は、周辺資源102の主機能(割込み処理など)を提供する。また、周辺資源102は、許可設定部104を備える。
また、本実施の形態では、各々の処理部0〜i−1を使用するCPU100_0〜100_n−1を設定するためのCPUIDを持つ。本実施の形態では、n個のCPU100_0〜100_n−1を備えるので、CPUIDとして、CPUID=0〜n−1が設定される。例えば、処理部0と対応するCPUIDとしてCPUID=0を設定した場合、これは、処理部0を使用するCPUがCPU0(100_0)であることを意味している。
また、本実施の形態では、各々の処理部0〜i−1を使用する仮想CPU(VCPU0〜VCPUm−1)を設定するためのVCPUIDを持つ。本実施の形態では、m個の仮想CPU(VCPU0〜VCPUm−1)を備えるので、VCPUIDとして、VCPUID=0〜mが設定される。例えば、処理部0と対応するVCPUIDとしてVCPUID=0を設定した場合、これは、処理部0を使用する仮想CPUがVCPU0であることを意味している。
各々の処理部0〜i−1に対応するCPUID、及びVCPUIDは、TID選択部106に出力される。
許可設定部104は、図3に示した許可設定部14と同様に、各々の処理部0〜i−1に対応した許可設定部0〜i−1を備える。各々の許可設定部0〜i−1には、中間識別子(MID)毎に設定されたアクセス許可設定情報(MID許可設定)が格納されている。なお、本実施の形態では、TID選択部106は、各々の処理部0〜i−1に対応するCPUID、VCPUIDを用いて、SPIDテーブル設定(TID)を選択する。よって、本実施の形態において、許可設定部104は、図3に示した許可設定部14が備えるSPIDテーブル設定(TID)を備えない。
図21に示すように、許可設定部104は、MID許可設定をMID許可設定選択部105に出力する。MID許可設定選択部105は、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)から出力されたアクセスアドレスを用いて、許可設定部104から供給された複数のMID許可設定の中からアクセス制御に使用するMID許可設定を選択し、選択したMID許可設定を許可判定部26に出力する。
ここで、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)から出力されたアクセスアドレスは、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1のアクセスアドレスであり、MID許可設定選択部105は、このアクセスアドレスを用いて、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1を把握することができる。よって、MID許可設定選択部105は、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1に対応したMID許可設定0〜i−1を選択することができる。
図22に示すTID選択部106は、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)から出力されたアクセスアドレスを用いて、周辺資源102から供給された各々の処理部0〜i−1に対応するCPUID、VCPUIDの中からアクセスアドレスに対応するCPUID、VCPUIDを選択する。
図22は、TID選択部106の構成例を示す図である。図22に示すように、TID選択部106は、セレクタ111を備える。セレクタ111は、周辺資源102から供給された各々の処理部0〜i−1に対応するCPUID、VCPUIDの中から、アクセスアドレスに対応したCPUID、VCPUIDを選択して出力する。
ここで、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)から出力されたアクセスアドレスは、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1に対応するアクセスアドレスである。よって、TID選択部106は、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)から出力されたアクセスアドレスを用いることで、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)がアクセスする処理部0〜i−1に対応するCPUID、VCPUIDを選択することができる。選択されたCPUID、VCPUIDは、選択されたTIDとしてSPIDテーブル選択部24に供給される。
なお、これ以外の構成、つまり、SPIDテーブル部23、SPIDテーブル選択部24、MID一致判定部25、及び許可判定部26の構成については実施の形態1で説明した構成と同様であるので重複した説明は省略する。
本実施の形態にかかるデータ処理装置4では、CPU100_0〜100_n−1、及び仮想CPU(VCPU0〜VCPUm−1)が周辺資源102を共有している。また、各々の処理部0〜i−1は、各々の処理部0〜i−1を使用するCPU、及び仮想CPUの情報であるCPUID、およびVCPUIDを有する。このような構成は、例えば、割込みコントローラなど、各チャネル(処理部)を使用するCPU及び仮想CPUを指定する場合などに用いられる。例えば、組み込み分野のマルチコアシステムにおいては、メモリ空間及び周辺装置へのアクセス権限の設定をCPU及び仮想CPU単位で管理したい場合がある。本実施の形態にかかる構成は、このような場合に好適に用いることができる。
<その他の実施の形態>
図23は、実施の形態1にかかるデータ処理装置を車両に用いた場合の構成例を示すブロック図である。図23に示すように、車両200には、データ処理装置1、センサ210、及びカメラ220が設けられている。データ処理装置1は車載用のチップである。センサ210は、車両200の所定の情報を取得する。また、カメラ220は、車両周辺の映像を取得する。センサ210およびカメラ220で取得された情報は、データ処理装置1に供給される。データ処理装置1は、センサ210およびカメラ220で取得された情報に応じて、所定の処理を実施する。
このとき、実施の形態1にかかるデータ処理装置1が備えるアクセス制御部11(図2参照)は、CPUの周辺資源(周辺装置)へのアクセスを制御する。よって、CPUが不正に周辺資源(周辺装置)にアクセスすることを抑制することができる。なお、図23に示すデータ処理装置1の代わりに、実施の形態2〜4で説明したデータ処理装置2〜3を用いてもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1 データ処理装置
10 CPU
11 アクセス制御部
12 周辺資源
13 処理部
14 許可設定部
19 バス
21 MID許可設定選択部
22 TID選択部
23 SPIDテーブル部
24 SPIDテーブル選択部
25 MID一致判定部
26 許可判定部

Claims (10)

  1. 演算部と、
    前記演算部がアクセスする処理部と、
    前記演算部の前記処理部へのアクセスを制御するアクセス制御部と、
    前記演算部の前記処理部へのアクセスの可否を設定する許可設定部と、を備え、
    前記アクセス制御部は、中間識別子とアクセス要求識別子とを対応付けた識別子テーブルを備え、
    前記許可設定部には、アクセス制御に使用する識別子テーブルに関する情報である識別子テーブル設定情報と、前記中間識別子毎に設定されたアクセス許可設定情報と、が対応付けられた許可設定情報が、前記処理部と対応付けて格納されており、
    前記演算部は、当該演算部がアクセスする処理部に関する情報である処理部選択情報とアクセス要求識別子とを前記アクセス制御部に出力し、
    前記アクセス制御部は、
    前記演算部から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報を選択し、
    前記演算部から出力された処理部選択情報を用いて、前記許可設定情報に含まれる前記識別子テーブル設定情報の中から前記アクセス制御に使用する識別子テーブル設定情報を選択し、
    前記選択された識別子テーブル設定情報を用いて、前記アクセス制御に使用する識別子テーブルを選択し、
    前記選択された識別子テーブルを用いて、前記演算部から出力されたアクセス要求識別子に対応する中間識別子を決定し、
    前記選択された許可設定情報と前記決定された中間識別子とを用いて、前記演算部の前記処理部へのアクセスの可否を判定する、
    データ処理装置。
  2. 前記処理部選択情報は、前記演算部がアクセスする処理部のアクセスアドレスであり、
    前記アクセス制御部は、
    前記演算部から出力された前記アクセスアドレスを用いて、前記アクセスアドレスの処理部に対応した許可設定情報を選択し、
    前記演算部から出力された前記アクセスアドレスを用いて、前記アクセスアドレスの処理部に対応した識別子テーブルを選択する、
    請求項に記載のデータ処理装置。
  3. 前記演算部は複数であり、当該複数の演算部はそれぞれ、前記各々の演算部がアクセスする各々の処理部と対応付けられており、
    前記アクセス制御部は、前記演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記演算部がアクセスする処理部に対応した識別子テーブルを選択する、
    請求項1に記載のデータ処理装置。
  4. 前記各々の処理部は、当該各々の処理部にアクセスする演算部に関する情報である演算部IDを有し、
    前記アクセス制御部は、
    前記演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記各々の処理部が有する演算部IDの中から前記アクセスアドレスに対応した処理部の演算部IDを選択し、
    前記選択された演算部IDを用いて、前記演算部がアクセスする処理部に対応した識別子テーブルを選択する、
    請求項に記載のデータ処理装置。
  5. 前記演算部は複数の仮想演算部を備えており、当該複数の仮想演算部はそれぞれ、前記各々の仮想演算部がアクセスする各々の処理部と対応付けられており、
    前記アクセス制御部は、前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
    請求項1に記載のデータ処理装置。
  6. 前記各々の処理部は、当該各々の処理部にアクセスする仮想演算部に関する情報である仮想演算部IDを有し、
    前記アクセス制御部は、
    前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記各々の処理部が有する仮想演算部IDの中から前記アクセスアドレスに対応した処理部の仮想演算部IDを選択し、
    前記選択された仮想演算部IDを用いて、前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
    請求項に記載のデータ処理装置。
  7. 前記演算部は複数であり、当該複数の演算部はそれぞれ、前記各々の演算部がアクセスする各々の処理部と対応付けられており、
    前記複数の演算部は複数の仮想演算部を備えており、当該複数の仮想演算部はそれぞれ、前記各々の仮想演算部がアクセスする各々の処理部と対応付けられており、
    前記アクセス制御部は、
    前記演算部および前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記演算部および前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
    請求項1に記載のデータ処理装置。
  8. 前記各々の処理部は、当該各々の処理部にアクセスする演算部および仮想演算部に関する情報である演算部IDおよび仮想演算部IDを有し、
    前記アクセス制御部は、
    前記演算部および前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記各々の処理部が有する演算部IDおよび仮想演算部IDの中から前記アクセスアドレスに対応した処理部の演算部IDおよび仮想演算部IDを選択し、
    前記選択された演算部IDおよび仮想演算部IDを用いて、前記演算部および前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
    請求項に記載のデータ処理装置。
  9. 前記アクセス制御部は更に、前記演算部から出力されたアクセス種別に関する情報であるアクセス情報と前記選択された許可設定情報とを用いて、前記演算部の前記処理部へのアクセスの可否を判定する、請求項1に記載のデータ処理装置。
  10. 演算部と、当該演算部がアクセスする処理部と、前記演算部の前記処理部へのアクセスを制御するアクセス制御部と、前記演算部の前記処理部へのアクセスの可否を設定する許可設定部と、を備えるデータ処理装置におけるアクセス制御方法であって、
    前記アクセス制御部は、中間識別子とアクセス要求識別子とを対応付けた識別子テーブルを備え、
    前記許可設定部には、アクセス制御に使用する識別子テーブルに関する情報である識別子テーブル設定情報と、前記中間識別子毎に設定されたアクセス許可設定情報と、が対応付けられた許可設定情報が、前記処理部と対応付けて格納されており、
    前記演算部は、当該演算部がアクセスする処理部に関する情報である処理部選択情報とアクセス要求識別子とを前記アクセス制御部に出力し、
    前記アクセス制御部は、
    前記演算部から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報を選択し、
    前記演算部から出力された処理部選択情報を用いて、前記許可設定情報に含まれる前記識別子テーブル設定情報の中から前記アクセス制御に使用する識別子テーブル設定情報を選択し、
    前記選択された識別子テーブル設定情報を用いて、前記アクセス制御に使用する識別子テーブルを選択し、
    前記選択された識別子テーブルを用いて、前記演算部から出力されたアクセス要求識別子に対応する中間識別子を決定し、
    前記選択された許可設定情報と前記決定された中間識別子とを用いて、前記演算部の前記処理部へのアクセスの可否を判定する、
    アクセス制御方法。
JP2016243306A 2016-12-15 2016-12-15 データ処理装置、及びアクセス制御方法 Active JP6726088B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016243306A JP6726088B2 (ja) 2016-12-15 2016-12-15 データ処理装置、及びアクセス制御方法
US15/808,960 US10706178B2 (en) 2016-12-15 2017-11-10 Data processing apparatus and access control method
CN201711343385.1A CN108229201B (zh) 2016-12-15 2017-12-15 数据处理设备和访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016243306A JP6726088B2 (ja) 2016-12-15 2016-12-15 データ処理装置、及びアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2018097719A JP2018097719A (ja) 2018-06-21
JP6726088B2 true JP6726088B2 (ja) 2020-07-22

Family

ID=62561733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016243306A Active JP6726088B2 (ja) 2016-12-15 2016-12-15 データ処理装置、及びアクセス制御方法

Country Status (3)

Country Link
US (1) US10706178B2 (ja)
JP (1) JP6726088B2 (ja)
CN (1) CN108229201B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017220764A1 (de) * 2017-11-21 2019-05-23 Audi Ag Ein-Chip-System für ein Fahrzeug

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845129A (en) * 1996-03-22 1998-12-01 Philips Electronics North America Corporation Protection domains in a single address space
US6775750B2 (en) * 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
JP2005085266A (ja) * 2003-09-04 2005-03-31 Stmicroelectronics Sa マイクロプロセッサ周辺装置アクセス制御
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US8434127B2 (en) * 2007-02-08 2013-04-30 Nec Corporation Access control system, access control method, electronic device and control program
JP4335940B2 (ja) * 2007-11-29 2009-09-30 Necエレクトロニクス株式会社 データ処理装置及びデータ処理装置における周辺装置保護方法
JP4656347B2 (ja) 2009-04-14 2011-03-23 日本電気株式会社 コンピュータ・システム
WO2013099414A1 (ja) * 2011-12-26 2013-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション レジスタ・マッピング方法
JP5914145B2 (ja) * 2012-05-01 2016-05-11 ルネサスエレクトロニクス株式会社 メモリ保護回路、処理装置、およびメモリ保護方法
JP2014081819A (ja) * 2012-10-17 2014-05-08 Renesas Electronics Corp 情報処理装置

Also Published As

Publication number Publication date
US10706178B2 (en) 2020-07-07
US20180173898A1 (en) 2018-06-21
CN108229201A (zh) 2018-06-29
JP2018097719A (ja) 2018-06-21
CN108229201B (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
US7444668B2 (en) Method and apparatus for determining access permission
US7886098B2 (en) Memory access security management
JP5914145B2 (ja) メモリ保護回路、処理装置、およびメモリ保護方法
JP2017505492A (ja) 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算
CN107408096B (zh) 对硬件块的适应性存取控制
EP1903443A1 (en) Bridge, processor unit, information processing apparatus and access control method
US20040177266A1 (en) Data processing system with peripheral access protection and method therefor
JP6916454B2 (ja) ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権
JP2018538630A5 (ja)
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
US20090271861A1 (en) Data processing apparatus and access control method therefor
DK3008732T3 (en) Non-volatile memory operations
US11226908B2 (en) Securing transactions involving protected memory regions having different permission levels
JP6504984B2 (ja) データ処理装置
JP2014081819A (ja) 情報処理装置
JP6726088B2 (ja) データ処理装置、及びアクセス制御方法
CN109684126B (zh) 用于arm设备的内存校验方法和执行内存校验的arm设备
CN112236771A (zh) 计算装置和用于计算装置的运行方法
US10534544B2 (en) Data shuffling in a non-uniform memory access device
US11132305B1 (en) Automatic static region generation for memory protection units (MPUs)
CN105808318B (zh) 一种信息处理方法和电子设备
JP6515602B2 (ja) データ処理装置及びデータ処理方法
KR20070048079A (ko) 메모리 접근 보호 시스템 및 그 메모리 접근 보호 방법
CN108701031B (zh) 寄存器访问控制
JP2015035155A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200520

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: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200626

R150 Certificate of patent or registration of utility model

Ref document number: 6726088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150