(57)【要約】【課題】回路規模の増大を抑制することが可能なデータ処理装置を提供することである。【解決手段】一実施の形態によれば、データ処理装置１は、ＣＰＵ１０の処理部１３へのアクセスを制御するアクセス制御部１１を備える。アクセス制御部１１は、ＣＰＵ１０から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報および識別子テーブルを選択し、選択された識別子テーブルを用いて、演算部から出力されたアクセス要求識別子ＳＰＩＤに対応する中間識別子ＭＩＤを決定し、選択された許可設定情報と決定された中間識別子ＭＩＤとを用いて、ＣＰＵ１０の処理部１３へのアクセスの可否を判定する。【選択図】図２
2018097719.tif 000002
【特許請求の範囲】
【請求項１】
演算部と、
前記演算部がアクセスする処理部と、
前記演算部の前記処理部へのアクセスを制御するアクセス制御部と、
前記演算部の前記処理部へのアクセスの可否を設定する許可設定部と、を備え、
前記アクセス制御部は、中間識別子とアクセス要求識別子とを対応付けた識別子テーブルを備え、
前記許可設定部には、前記中間識別子毎に設定されたアクセス許可設定情報を含む許可設定情報が、前記処理部と対応付けて格納されており、
前記演算部は、当該演算部がアクセスする処理部に関する情報である処理部選択情報とアクセス要求識別子とを前記アクセス制御部に出力し、
前記アクセス制御部は、
前記演算部から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報を選択し、
前記演算部から出力された処理部選択情報を用いて、前記アクセス制御に使用する識別子テーブルを選択し、
前記選択された識別子テーブルを用いて、前記演算部から出力されたアクセス要求識別子に対応する中間識別子を決定し、
前記選択された許可設定情報と前記決定された中間識別子とを用いて、前記演算部の前記処理部へのアクセスの可否を判定する、
データ処理装置。
【請求項２】
前記許可設定部には、アクセス制御に使用する識別子テーブルに関する情報である識別子テーブル設定情報と、前記中間識別子毎に設定されたアクセス許可設定情報と、が対応付けられた許可設定情報が格納されており、
前記アクセス制御部は、
前記演算部から出力された前記処理部選択情報を用いて、前記許可設定情報に含まれる前記識別子テーブル設定情報の中から前記アクセス制御に使用する識別子テーブル設定情報を選択し、
前記選択された識別子テーブル設定情報を用いて、前記アクセス制御に使用する識別子テーブルを選択する、
請求項１に記載のデータ処理装置。
【請求項３】
前記処理部選択情報は、前記演算部がアクセスする処理部のアクセスアドレスであり、
前記アクセス制御部は、
前記演算部から出力された前記アクセスアドレスを用いて、前記アクセスアドレスの処理部に対応した許可設定情報を選択し、
前記演算部から出力された前記アクセスアドレスを用いて、前記アクセスアドレスの処理部に対応した識別子テーブルを選択する、
請求項２に記載のデータ処理装置。
【請求項４】
前記演算部は複数であり、当該複数の演算部はそれぞれ、前記各々の演算部がアクセスする各々の処理部と対応付けられており、
前記アクセス制御部は、前記演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記演算部がアクセスする処理部に対応した識別子テーブルを選択する、
請求項１に記載のデータ処理装置。
【請求項５】
前記各々の処理部は、当該各々の処理部にアクセスする演算部に関する情報である演算部ＩＤを有し、
前記アクセス制御部は、
前記演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記各々の処理部が有する演算部ＩＤの中から前記アクセスアドレスに対応した処理部の演算部ＩＤを選択し、
前記選択された演算部ＩＤを用いて、前記演算部がアクセスする処理部に対応した識別子テーブルを選択する、
請求項４に記載のデータ処理装置。
【請求項６】
前記演算部は複数の仮想演算部を備えており、当該複数の仮想演算部はそれぞれ、前記各々の仮想演算部がアクセスする各々の処理部と対応付けられており、
前記アクセス制御部は、前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
請求項１に記載のデータ処理装置。
【請求項７】
前記各々の処理部は、当該各々の処理部にアクセスする仮想演算部に関する情報である仮想演算部ＩＤを有し、
前記アクセス制御部は、
前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記各々の処理部が有する仮想演算部ＩＤの中から前記アクセスアドレスに対応した処理部の仮想演算部ＩＤを選択し、
前記選択された仮想演算部ＩＤを用いて、前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
請求項６に記載のデータ処理装置。
【請求項８】
前記演算部は複数であり、当該複数の演算部はそれぞれ、前記各々の演算部がアクセスする各々の処理部と対応付けられており、
前記複数の演算部は複数の仮想演算部を備えており、当該複数の仮想演算部はそれぞれ、前記各々の仮想演算部がアクセスする各々の処理部と対応付けられており、
前記アクセス制御部は、
前記演算部および前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記演算部および前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
請求項１に記載のデータ処理装置。
【請求項９】
前記各々の処理部は、当該各々の処理部にアクセスする演算部および仮想演算部に関する情報である演算部ＩＤおよび仮想演算部ＩＤを有し、
前記アクセス制御部は、
前記演算部および前記仮想演算部が前記処理部にアクセスする際に出力する前記処理部のアクセスアドレスを用いて、前記各々の処理部が有する演算部ＩＤおよび仮想演算部ＩＤの中から前記アクセスアドレスに対応した処理部の演算部ＩＤおよび仮想演算部ＩＤを選択し、
前記選択された演算部ＩＤおよび仮想演算部ＩＤを用いて、前記演算部および前記仮想演算部がアクセスする処理部に対応した識別子テーブルを選択する、
請求項８に記載のデータ処理装置。
【請求項１０】
前記アクセス制御部は更に、前記演算部から出力されたアクセス種別に関する情報であるアクセス情報と前記選択された許可設定情報とを用いて、前記演算部の前記処理部へのアクセスの可否を判定する、請求項１に記載のデータ処理装置。
【請求項１１】
演算部と、当該演算部がアクセスする処理部と、前記演算部の前記処理部へのアクセスを制御するアクセス制御部と、前記演算部の前記処理部へのアクセスの可否を設定する許可設定部と、を備えるデータ処理装置におけるアクセス制御方法であって、
前記アクセス制御部は、中間識別子とアクセス要求識別子とを対応付けた識別子テーブルを備え、
前記許可設定部には、前記中間識別子毎に設定されたアクセス許可設定情報を含む許可設定情報が、前記処理部と対応付けて格納されており、
前記演算部は、当該演算部がアクセスする処理部に関する情報である処理部選択情報とアクセス要求識別子とを前記アクセス制御部に出力し、
前記アクセス制御部は、
前記演算部から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報を選択し、
前記演算部から出力された処理部選択情報を用いて、前記アクセス制御に使用する識別子テーブルを選択し、
前記選択された識別子テーブルを用いて、前記演算部から出力されたアクセス要求識別子に対応する中間識別子を決定し、
前記選択された許可設定情報と前記決定された中間識別子とを用いて、前記演算部の前記処理部へのアクセスの可否を判定する、
アクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置、及びアクセス制御方法に関し、例えば、演算部の処理部へのアクセスを制御するアクセス制御部を備えたデータ処理装置、及びアクセス制御方法に関する。
【背景技術】
【０００２】
一般的に、データ処理装置は、演算部が周辺資源（処理部）にアクセスする際、不正なアクセスから周辺資源を保護するために、周辺資源へのアクセスを制御するアクセス制御部を備えている。
【０００３】
特許文献１の図３には、マイクロプロセッサとメモリとＭＰＵ（Memory Protection Unit）とを備えたコンピュータシステムに関する技術が開示されている。特許文献１に開示されている技術では、マイクロプロセッサがメモリにアクセスする際に、ＭＰＵを用いてマイクロプロセッサのメモリへのアクセスを制御している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２５０４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
背景技術で説明したように、データ処理装置は、演算部が周辺資源にアクセスする際、不正なアクセスから周辺資源を保護するために、周辺資源へのアクセスを制御するアクセス制御部を備えている。例えば、アクセス制御部は、周辺資源が備える各々のエントリ（処理部）に演算部がアクセス可能であるか否かを取り決めた許可設定情報に基づいて、演算部の各エントリへのアクセスを制御している。
【０００６】
しかしながら、近年のデータ処理装置では周辺資源のエントリ数が増加傾向にある。このため、各々のエントリ（処理部）への演算部のアクセス権限を取り決めた許可設定情報が膨大になり、許可設定情報を格納している回路の規模も大きくなるという問題があった。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、データ処理装置は、演算部の処理部へのアクセスを制御するアクセス制御部を備える。アクセス制御部は、演算部から出力された処理部選択情報を用いて、アクセス制御に使用する許可設定情報および識別子テーブルを選択し、選択された識別子テーブルを用いて、演算部から出力されたアクセス要求識別子に対応する中間識別子を決定し、選択された許可設定情報と決定された中間識別子とを用いて、演算部の処理部へのアクセスの可否を判定する。
【発明の効果】
【０００９】
前記一実施の形態によれば、回路規模の増大を抑制することが可能なデータ処理装置、及びアクセス制御方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるデータ処理装置のシステム構成を示すブロック図である。
【図２】実施の形態１にかかるデータ処理装置の構成例を示すブロック図である。
【図３】実施の形態１にかかるデータ処理装置が備える周辺資源（処理部および許可設定部）の構成例を示す図である。
【図４】実施の形態１にかかるデータ処理装置が備えるＭＩＤ許可設定選択部の構成例を示す図である。
【図５】実施の形態１にかかるデータ処理装置が備えるＴＩＤ選択部の構成例を示す図である。
【図６】実施の形態１にかかるデータ処理装置が備えるＳＰＩＤテーブル部の構成例を示す図である。
【図７】実施の形態１にかかるデータ処理装置が備えるＳＰＩＤテーブル選択部の構成例を示す図である。
【図８】実施の形態１にかかるデータ処理装置が備えるＭＩＤ一致判定部の構成例を示す図である。
【図９】実施の形態１にかかるデータ処理装置が備える許可判定部の構成例を示す図である。
【図１０】実施の形態１にかかるデータ処理装置のアクセス制御の動作を説明するためのフローチャートである。
【図１１】実施の形態１にかかるデータ処理装置が備えるＳＰＩＤテーブル部の具体例を示す図である。
【図１２】実施の形態１にかかるデータ処理装置が備える周辺資源（処理部および許可設定部）の具体例を示す図である。
【図１３】実施の形態１にかかるデータ処理装置のアクセス制御の具体例を説明するためのフローチャートである。
【図１４】比較例にかかるデータ処理装置の許可設定部の構成例を示す図である。
【図１５】実施の形態１にかかるデータ処理装置が備えるＳＰＩＤテーブル部、及び許可設定部の構成例を示す図である。
【図１６】実施の形態２にかかるデータ処理装置の構成例を示すブロック図である。
【図１７】実施の形態２にかかるデータ処理装置が備えるＭＩＤ許可設定選択部の構成例を示す図である。
【図１８】実施の形態２にかかるデータ処理装置が備えるＴＩＤ選択部の構成例を示す図である。
【図１９】実施の形態３にかかるデータ処理装置の構成例を示すブロック図である。
【図２０】実施の形態３にかかるデータ処理装置が備えるＴＩＤ選択部の構成例を示す図である。
【図２１】実施の形態４にかかるデータ処理装置の構成例を示すブロック図である。
【図２２】実施の形態４にかかるデータ処理装置が備えるＴＩＤ選択部の構成例を示す図である。
【図２３】実施の形態１にかかるデータ処理装置を車両に用いた場合の構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
以下、図面を参照して実施の形態１について説明する。
図１は、実施の形態１にかかるデータ処理装置のシステム構成を示すブロック図である。図１に示すように、本実施の形態にかかるデータ処理装置１は、演算部であるＣＰＵ（Central Processing Unit）１０_１、１０_２、アクセス制御部１１_１、１１_２、及び周辺資源１２_１、１２_２を備える。
【００１２】
各々のＣＰＵ１０_１、１０_２は、バス１９を介して周辺資源１２_１、１２_２にアクセス可能に構成されている。各々のＣＰＵ１０_１、１０_２は所定のプログラムを実行する。図１に示す例では、複数のＣＰＵ１０_１、１０_２を備える構成（マルチコア）を示したが、ＣＰＵは１つであってもよい。
【００１３】
アクセス制御部１１_１は、各々のＣＰＵ１０_１、１０_２の周辺資源１２_１へのアクセスを制御する。また、アクセス制御部１１_２は、各々のＣＰＵ１０_１、１０_２の周辺資源１２_２へのアクセスを制御する。なお、図１に示す例では、アクセス制御部１１_１、１１_２を周辺資源１２_１、１２_２の外部に設けた構成を示したが、本実施の形態では、周辺資源１２_１の内部にアクセス制御部１１_１を設けてもよく、また周辺資源１２_２の内部にアクセス制御部１１_２を設けてもよい。
【００１４】
周辺資源１２_１は、処理部１３_１と許可設定部１４_１とを備える。処理部１３_１には、１つ以上の処理部０〜ｉ−１（ｉは１以上の整数）が設けられている。各々の処理部０〜ｉ−１は、周辺資源１２_１の主機能（割込み処理など）を提供する。また、許可設定部１４_１には、１つ以上の許可設定部０〜ｉ−１（ｉは１以上の整数）が設けられている。許可設定部０〜ｉ−１の各々は、各々のＣＰＵ１０_１、１０_２の処理部０〜ｉ−１へのアクセスの可否を設定している。
【００１５】
具体的には、許可設定部０は、ＣＰＵ１０_１、１０_２の処理部０へのアクセスの可否を設定しており、許可設定部０及び処理部０はエントリ０を構成する。また、許可設定部１は、ＣＰＵ１０_１、１０_２の処理部１へのアクセスの可否を設定しており、許可設定部１及び処理部１はエントリ１を構成する。このように、各々の許可設定部０〜ｉ−１は、ＣＰＵ１０_１、１０_２の各々の処理部０〜ｉ−１へのアクセスの可否を設定しており、各々の許可設定部０〜ｉ−１及び各々の処理部０〜ｉ−１はそれぞれ、エントリ０〜ｉ−１を構成する。
【００１６】
周辺資源１２_２は、処理部１３_２と許可設定部１４_２とを備える。なお、周辺資源１２_２の構成については、周辺資源１２_１の構成と同様であるので詳細な説明は省略する。なお、図１に示す例では、アクセス制御部１１_１、１１_２および周辺資源１２_１、１２_２をそれぞれ複数備える構成を示したが、アクセス制御部および周辺資源の数は各々１つであってもよい。
【００１７】
本実施の形態にかかるデータ処理装置１では、各々のＣＰＵ１０_１、１０_２が周辺資源１２_１、１２_２にアクセスする際、アクセス制御部１１_１、１１_２を用いて周辺資源１２_１、１２_２へのアクセスを制御している。以下、アクセス制御部１１_１、１１_２におけるアクセス制御について詳細に説明する。
【００１８】
図２は、本実施の形態にかかるデータ処理装置の構成例を示すブロック図である。図２に示すデータ処理装置では、図１に示したデータ処理装置の一部を示している。具体的には、図２に示すデータ処理装置では、説明を簡略化するために、ＣＰＵ１０、アクセス制御部１１、及び周辺資源１２をそれぞれ１つずつ備える構成を示している。なお、以下では、ＣＰＵ１０、アクセス制御部１１、及び周辺資源１２をそれぞれ１つずつ備える構成について説明するが、以下で説明する内容は、ＣＰＵ１０、アクセス制御部１１、及び周辺資源１２をそれぞれ複数備える構成（図１参照）にも同様に適用することができる。
【００１９】
図２に示すように、データ処理装置１は、ＣＰＵ１０、アクセス制御部１１、及び周辺資源１２を備える。アクセス制御部１１は、ＭＩＤ許可設定選択部２１、ＴＩＤ選択部２２、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６を備える。また、周辺資源１２は、処理部１３および許可設定部１４を備える。
【００２０】
ＣＰＵ１０は所定のプログラムを実行する。また、ＣＰＵ１０には、アクセス要求識別子（ＳＰＩＤ：System Protection IDentification）が格納されている。ＣＰＵ１０は、周辺資源１２へのアクセス要求の際、処理部選択情報、ＳＰＩＤ、及びリード／ライトなどのアクセス種別に関する情報であるアクセス情報（Ｒ／Ｗ等）をアクセス制御部１１に出力する。なお、以下では一例としてアクセス情報がリード／ライトのアクセス情報（Ｒ／Ｗ）である場合について説明する。
【００２１】
周辺資源１２の処理部１３には、処理部０〜ｉ−１（ｉは１以上の整数）が設けられている。各々の処理部０〜ｉ−１は、周辺資源１２の主機能（割込み処理など）を提供する。また、周辺資源１２は、許可設定部１４を備える。
【００２２】
図３は、周辺資源１２の構成例、つまり処理部１３および許可設定部１４の構成例を示す図である。図３に示すように、許可設定部１４は、各々の処理部０〜ｉ−１に対応した許可設定部０〜ｉ−１を備える。各々の許可設定部０〜ｉ−１には、アクセス制御に使用するＳＰＩＤテーブル設定ＴＩＤ（Table IDentification）（詳細は後述する）と、中間識別子（ＭＩＤ：Middle IDentification）毎に設定されたアクセス許可設定情報（ＭＩＤ許可設定）と、が対応付けられた許可設定情報が格納されている。
【００２３】
つまり、許可設定部０はＣＰＵ１０の処理部０へのアクセスの可否を設定しており、許可設定部０及び処理部０はエントリ０を構成する。許可設定部１はＣＰＵ１０の処理部１へのアクセスの可否を設定しており、許可設定部１及び処理部１はエントリ１を構成する。このように、各々の許可設定部０〜ｉ−１は、ＣＰＵ１０の各々の処理部０〜ｉ−１へのアクセスの可否を設定しており、各々の許可設定部０〜ｉ−１及び各々の処理部０〜ｉ−１はそれぞれ、エントリ０〜ｉ−１を構成している。
【００２４】
図２に示すように、許可設定部１４は、ＳＰＩＤテーブル設定およびＭＩＤ許可設定をアクセス制御部１１に出力する。具体的には、許可設定部１４は、ＳＰＩＤテーブル設定をアクセス制御部１１のＴＩＤ選択部２２に、ＭＩＤ許可設定をアクセス制御部１１のＭＩＤ許可設定選択部２１にそれぞれ出力する。
【００２５】
アクセス制御部１１のＭＩＤ許可設定選択部２１は、ＣＰＵ１０から出力された処理部選択情報を用いて、許可設定部１４から供給されたＭＩＤ許可設定の中からアクセス制御に使用するＭＩＤ許可設定を選択し、選択したＭＩＤ許可設定を許可判定部２６に出力する。
【００２６】
図４は、ＭＩＤ許可設定選択部２１の構成例を示す図である。図４に示すように、ＭＩＤ許可設定選択部２１は、ＭＩＤ選択情報生成部４１およびセレクタ４２を備える。ＭＩＤ選択情報生成部４１は、ＣＰＵ１０から出力された処理部選択情報に応じた選択信号を生成し、生成した選択信号をセレクタ４２に出力する。セレクタ４２は、許可設定部１４から供給されたＭＩＤ許可設定の中から、選択信号に応じたＭＩＤ許可設定を選択して出力する。
【００２７】
例えば、処理部選択情報は、ＣＰＵ１０がアクセスする処理部０〜ｉ−１のアクセスアドレスであり、ＭＩＤ許可設定選択部２１は、このアクセスアドレスを用いて、ＣＰＵ１０がアクセスする処理部０〜ｉ−１を把握することができる。よって、ＭＩＤ許可設定選択部２１は、ＣＰＵ１０がアクセスする処理部０〜ｉ−１に対応したＭＩＤ許可設定０〜ｉ−１を選択することができる。
【００２８】
図２に示すＴＩＤ選択部２２は、ＣＰＵ１０から出力された処理部選択情報を用いて、許可設定部１４から供給されたＳＰＩＤテーブル設定（ＴＩＤ）の中からアクセス制御に使用するＳＰＩＤテーブル設定（ＴＩＤ）を選択し、選択したＳＰＩＤテーブル設定（ＴＩＤ）をＳＰＩＤテーブル選択部２４に出力する。
【００２９】
図５は、ＴＩＤ選択部２２の構成例を示す図である。図５に示すように、ＴＩＤ選択部２２は、ＴＩＤ選択情報生成部４３およびセレクタ４４を備える。ＴＩＤ選択情報生成部４３は、ＣＰＵ１０から出力された処理部選択情報に応じた選択信号を生成し、生成した選択信号をセレクタ４４に出力する。セレクタ４４は、許可設定部１４から供給されたＳＰＩＤテーブル設定（ＴＩＤ）の中から、選択信号に応じたＳＰＩＤテーブル設定（ＴＩＤ）を選択して出力する。
【００３０】
例えば、処理部選択情報は、ＣＰＵ１０がアクセスする処理部０〜ｉ−１のアクセスアドレスであり、ＴＩＤ選択部２２は、このアクセスアドレスを用いて、ＣＰＵ１０がアクセスする処理部０〜ｉ−１を把握することができる。よって、ＴＩＤ選択部２２は、ＣＰＵ１０がアクセスする処理部０〜ｉ−１に対応したＳＰＩＤテーブル設定（ＴＩＤ）を選択することができる。
【００３１】
図２に示すＳＰＩＤテーブル部２３は、ＭＩＤとＳＰＩＤとを対応付けたＳＰＩＤテーブルを備える。図６は、ＳＰＩＤテーブル部２３の構成例を示す図である。図６に示すように、ＳＰＩＤテーブル部２３は、ＳＰＩＤテーブル（ＴＩＤ＝０〜ＴＩＤ＝ｊ−１）（ここで、ｊは１以上の整数である）を備える。図６に示す例では、各々のＳＰＩＤテーブル（ＴＩＤ＝０〜ＴＩＤ＝ｊ−１）には、４つのＭＩＤ０〜ＭＩＤ３と４つのＳＰＩＤ０〜ＳＰＩＤ３とがそれぞれ対応付けられて格納されている。図６に示すＳＰＩＤテーブルは、ＭＩＤ０にＳＰＩＤ０が設定された場合、ＳＰＩＤ０のアクセスに対してＭＩＤ０のＭＩＤ許可設定を適用することを意味する。
【００３２】
図２に示すＳＰＩＤテーブル選択部２４は、ＴＩＤ選択部２２で選択されたＳＰＩＤテーブル設定（ＴＩＤ）を用いて、ＳＰＩＤテーブル部２３に格納されているＳＰＩＤテーブル（ＴＩＤ＝０〜ＴＩＤ＝ｊ−１）の中からアクセス制御に使用するＳＰＩＤテーブルを選択し、選択したＳＰＩＤテーブルをＭＩＤ一致判定部２５に出力する。
【００３３】
図７は、ＳＰＩＤテーブル選択部２４の構成例を示す図である。図７に示すように、ＳＰＩＤテーブル選択部２４は、セレクタ４５を用いて構成されている。セレクタ４５は、ＳＰＩＤテーブル部２３に格納されているＳＰＩＤテーブル（ＴＩＤ＝０〜ＴＩＤ＝ｊ−１）の中から、ＴＩＤ選択部２２から供給されたＳＰＩＤテーブル設定（ＴＩＤ）に応じたＳＰＩＤテーブルを選択して出力する。
【００３４】
図２に示すＭＩＤ一致判定部２５は、ＳＰＩＤテーブル選択部２４で選択されたＳＰＩＤテーブルを用いて、ＣＰＵ１０から出力されたＳＰＩＤに対応するＭＩＤを決定する。
【００３５】
図８は、ＭＩＤ一致判定部２５の構成例を示す図である。図８に示すように、ＭＩＤ一致判定部２５は演算子４７_０〜４７_３を備える。演算子４７_０〜４７_３の各々には、選択されたＳＰＩＤテーブルの各々のＭＩＤ０〜ＭＩＤ３に設定された値（ＳＰＩＤ０〜ＳＰＩＤ３）が供給される。また、演算子４７_０〜４７_３の各々には、ＣＰＵ１０からＳＰＩＤが供給される。各々の演算子４７_０〜４７_３は、ＣＰＵ１０から供給されたＳＰＩＤと、各々のＭＩＤ０〜ＭＩＤ３に設定された値（ＳＰＩＤ０〜ＳＰＩＤ３）とを比較し、これらの値が一致した場合はＭＩＤに該当するアクセス要求であると判断する。
【００３６】
例えば、演算子４７_０は、ＣＰＵ１０から供給されたＳＰＩＤが、ＳＰＩＤテーブルのＭＩＤ０に設定された値（ＳＰＩＤ０）と一致した場合、ＭＩＤ０に該当するアクセス要求であると判断する。このとき、ＭＩＤ一致判定部２５は、ＭＩＤ０が一致したという判定結果を出力する。
【００３７】
このように、ＭＩＤ一致判定部２５は、ＳＰＩＤテーブルから供給されたＳＰＩＤ０〜ＳＰＩＤ３とＣＰＵ１０から供給されたＳＰＩＤとの一致判定を行い、一致判定の結果を許可判定部２６に出力する。
【００３８】
図２に示す許可判定部２６は、ＭＩＤ許可設定選択部２１で選択されたＭＩＤ許可設定と、ＭＩＤ一致判定部２５から出力されたＭＩＤ一致判定結果と、ＣＰＵ１０から出力されたアクセス情報（Ｒ／Ｗ）と、に基づいて、ＣＰＵ１０の処理部１３へのアクセスの可否を判定する。
【００３９】
図９は、許可判定部２６の構成例を示す図である。図９に示す許可判定部２６は、アクセス判定部４８_０〜４８_３、ＡＮＤ_０〜ＡＮＤ_３、及びＯＲ回路を備える。図９に示す許可判定部２６では、まず初めにアクセス判定部４８_０〜４８_３においてアクセス判定を行う。
【００４０】
アクセス判定部４８_０〜４８_３には、ＣＰＵ１０からアクセス情報（Ｒ／Ｗ）が供給される。また、アクセス判定部４８_０〜４８_３には、ＭＩＤ０許可設定〜ＭＩＤ３許可設定が供給される。ここで、ＭＩＤ０許可設定〜ＭＩＤ３許可設定は、ＭＩＤ０〜ＭＩＤ３に対する許可設定であり、例えば、「ＭＩＤ０はリード許可／ライト不許可」、「ＭＩＤ１はリード許可／ライト許可」、「ＭＩＤ２はリード不許可／ライト許可」、「ＭＩＤ３はリード不許可／ライト不許可」のように設定されている。
【００４１】
このような設定において、例えば、ＣＰＵ１０からアクセス情報（Ｒ／Ｗ）として、リード（Ｒ）アクセスが供給された場合、アクセス判定部４８_０〜４８_３のうち、リード許可に設定されているＭＩＤ０許可設定、ＭＩＤ１許可設定に対応したアクセス判定部４８_０、４８_１が許可判定を出力し、リード不許可に設定されているＭＩＤ２許可設定、ＭＩＤ３許可設定に対応したアクセス判定部４８_２、４８_３が不許可判定を出力する。
【００４２】
アクセス判定部４８_０〜４８_３におけるアクセス判定の後、ＭＩＤ一致判定結果に基づくアクセス判定が行われる。つまり、ＡＮＤ_０〜ＡＮＤ_３の各々には、ＭＩＤ一致判定部２５からＭＩＤ０〜ＭＩＤ３のＭＩＤ一致判定結果がそれぞれ供給される。また、ＡＮＤ_０〜ＡＮＤ_３の各々には、アクセス判定部４８_０〜４８_３からアクセス判定結果が供給される。
【００４３】
そして、各々のＡＮＤ_０〜ＡＮＤ_３は、アクセス判定部４８_０〜４８_３から供給されたアクセス判定結果が「許可判定」であり、且つＭＩＤ一致判定部２５から供給されたＭＩＤ一致判定結果が「一致」している場合、アクセス許可と判定する。一方、各々のＡＮＤ_０〜ＡＮＤ_３は、アクセス判定部４８_０〜４８_３から供給されたアクセス判定結果が「不許可判定」であるか、またはＭＩＤ一致判定部２５から供給されたＭＩＤ一致判定結果が「不一致」の場合、アクセス不許可と判定する。
【００４４】
ＡＮＤ_０〜ＡＮＤ_３から出力された判定結果は、ＯＲ回路に供給される。ＯＲ回路は、ＡＮＤ_０〜ＡＮＤ_３のうちの少なくとも１つがアクセス許可と判定している場合、アクセス許可の判定結果を出力する。一方、ＯＲ回路は、ＡＮＤ_０〜ＡＮＤ_３のうちの全てがアクセス不許可と判定している場合、アクセス不許可の判定結果を出力する。
【００４５】
なお、図９に示した許可判定部２６では、まず初めにアクセス判定部４８_０〜４８_３においてアクセス判定を行い、その後、ＭＩＤ一致判定結果に基づくアクセス判定を行う場合について説明した。しかし、本実施の形態にかかるデータ処理装置１では、ＭＩＤ一致判定結果に基づくアクセス判定を行った後に、アクセス判定部４８_０〜４８_３においてアクセス判定を行うようにしてもよい。
【００４６】
また、図９に示した許可判定部２６では、ＣＰＵ１０から出力されたアクセス情報としてリード／ライト（Ｒ／Ｗ）を用いてアクセス判定部４８_０〜４８_３がアクセス判定を行う場合について説明した。しかし、本実施の形態にかかるデータ処理装置１では、他のアクセス情報（例えば、ＣＰＵ番号など）を用いて、アクセス判定部４８_０〜４８_３がアクセス判定を行うように構成してもよい。
【００４７】
次に、本実施の形態にかかるデータ処理装置１のアクセス制御の動作について、図２に示すブロック図、及び図１０に示すフローチャートを用いて説明する。
【００４８】
図２に示すように、ＣＰＵ１０は、周辺資源１２にアクセスする際、処理部選択情報、ＳＰＩＤ、及びアクセス情報（Ｒ／Ｗ）をアクセス制御部１１に出力する。ＭＩＤ許可設定選択部２１は、ＣＰＵ１０から出力された処理部選択情報を用いて、許可設定部１４から供給されたＭＩＤ許可設定の中からアクセス制御に使用するＭＩＤ許可設定を選択し、選択したＭＩＤ許可設定を許可判定部２６に出力する（図１０のステップＳ１）。また、ＴＩＤ選択部２２は、ＣＰＵ１０から出力された処理部選択情報を用いて、許可設定部１４から供給されたＳＰＩＤテーブル設定（ＴＩＤ）の中からアクセス制御に使用するＳＰＩＤテーブル設定（ＴＩＤ）を選択し、選択したＳＰＩＤテーブル設定（ＴＩＤ）をＳＰＩＤテーブル選択部２４に出力する（図１０のステップＳ２）。
【００４９】
その後、図２に示すＳＰＩＤテーブル選択部２４は、ＴＩＤ選択部２２で選択されたＳＰＩＤテーブル設定（ＴＩＤ）を用いて、ＳＰＩＤテーブル部２３に格納されているＳＰＩＤテーブル（ＴＩＤ＝０〜ＴＩＤ＝ｊ−１）の中からアクセス制御に使用するＳＰＩＤテーブルを選択し、選択したＳＰＩＤテーブルをＭＩＤ一致判定部２５に出力する（図１０のステップＳ３）。
【００５０】
その後、図２に示すＭＩＤ一致判定部２５は、ＳＰＩＤテーブル選択部２４で選択されたＳＰＩＤテーブルを用いて、ＣＰＵ１０から出力されたＳＰＩＤに対応するＭＩＤを決定する（図１０のステップＳ４）。具体的には、図８に示したように、ＭＩＤ一致判定部２５は、ＣＰＵ１０から供給されたＳＰＩＤと、各々のＭＩＤ０〜ＭＩＤ３に設定された値（ＳＰＩＤ０〜ＳＰＩＤ３）とを比較し、ＣＰＵ１０から供給されたＳＰＩＤと一致したＳＰＩＤ０〜ＳＰＩＤ３に対応するＭＩＤ０〜３を許可判定部２６に出力する。
【００５１】
その後、図２に示す許可判定部２６は、ＭＩＤ許可設定選択部２１で選択されたＭＩＤ許可設定と、ＭＩＤ一致判定部２５から出力されたＭＩＤ一致判定結果と、ＣＰＵ１０から出力されたアクセス情報（Ｒ／Ｗ）と、に基づいて、ＣＰＵ１０の処理部１３へのアクセスの可否を判定する。
【００５２】
具体的には、図９に示した許可判定部２６が備えるアクセス判定部４８_０〜４８_３は、ＣＰＵ１０から出力されたアクセス情報（Ｒ／Ｗ）と、図１０のステップＳ１で選択されたＭＩＤ許可設定（ＭＩＤ０許可設定〜ＭＩＤ３許可設定）とを用いて、アクセス判定を行う（図１０のステップＳ５）。
【００５３】
その後、図９に示した許可判定部２６が備えるＡＮＤ_０〜ＡＮＤ_３、及びＯＲ回路は、ＭＩＤ一致判定部２５から供給されたＭＩＤ一致判定結果と、アクセス判定部４８_０〜４８_３から供給されたアクセス判定結果とを用いて、許可判定を行う（図１０のステップＳ６）。
【００５４】
許可判定部２６は、ＡＮＤ_０〜ＡＮＤ_３のうちの少なくとも１つがアクセス許可と判定している場合（ステップＳ７：Ｙｅｓ）、アクセス許可の判定結果を出力する。一方、許可判定部２６は、ＡＮＤ_０〜ＡＮＤ_３のうちの全てがアクセス不許可と判定している場合（ステップＳ７：Ｎｏ）、アクセス不許可の判定結果を出力する。
【００５５】
このような動作により、ＣＰＵ１０が処理部１３にアクセスする際に、アクセス制御部１１は、ＣＰＵ１０の処理部１３へのアクセスを制御することができる。換言すると、アクセス制御部１１は、ＣＰＵ１０が処理部１３にアクセスする際、ＣＰＵ１０の不正なアクセスから処理部１３を保護することができる。
【００５６】
次に、本実施の形態にかかるデータ処理装置１におけるアクセス制御の具体例について説明する。
【００５７】
図１１は、ＳＰＩＤテーブル部２３の具体例を示す図である。図１１に示すように、ＳＰＩＤテーブル部２３は２つのＳＰＩＤテーブル（ＴＩＤ＝０、１）を備える。ＳＰＩＤテーブル（ＴＩＤ＝０）では、ＭＩＤ０＝ＳＰＩＤ“０”、ＭＩＤ１＝ＳＰＩＤ“１”、ＭＩＤ２＝ＳＰＩＤ“２”、ＭＩＤ３＝ＳＰＩＤ“３”が設定されている。また、ＳＰＩＤテーブル（ＴＩＤ＝１）では、ＭＩＤ０＝ＳＰＩＤ“４”、ＭＩＤ１＝ＳＰＩＤ“５”、ＭＩＤ２＝ＳＰＩＤ“６”、ＭＩＤ３＝ＳＰＩＤ“７”が設定されている。
【００５８】
図１２は、周辺資源１２の具体例、つまり処理部１３および許可設定部１４の具体例を示す図である。図１２では、周辺資源１２が４つの処理部０〜処理部３を備える例を示している。処理部０〜処理部３にはそれぞれアクセスアドレスが設定されている。具体的には、処理部０にはアクセスアドレス“０ｘＦＦＦＦ００００”が、処理部１にはアクセスアドレス“０ｘＦＦＦＦ０００４”が、処理部２にはアクセスアドレス“０ｘＦＦＦＦ０００８”が、処理部３にはアクセスアドレス“０ｘＦＦＦＦ０００Ｃ”が、それぞれ設定されている。
【００５９】
また、許可設定部１４には、各々の処理部０〜処理部３に対応する許可設定部０〜許可設定部３が設けられている。各々の許可設定部０〜許可設定部３には、ＳＰＩＤテーブル設定（ＴＩＤ）、及びＭＩＤ許可設定が設定されている。具体的には、許可設定部０には、ＴＩＤ＝０、ＭＩＤ０＝０、ＭＩＤ１＝１、ＭＩＤ２＝０、ＭＩＤ３＝１が設定されている。ここで、ＭＩＤ許可設定が“０”の場合はアクセス不許可を示し、ＭＩＤ許可設定が“１”の場合はアクセス許可を示している。また、許可設定部１には、ＴＩＤ＝１、ＭＩＤ０＝１、ＭＩＤ１＝０、ＭＩＤ２＝１、ＭＩＤ３＝０が設定されている。許可設定部２には、ＴＩＤ＝０、ＭＩＤ０＝０、ＭＩＤ１＝０、ＭＩＤ２＝１、ＭＩＤ３＝１が設定されている。許可設定部３には、ＴＩＤ＝１、ＭＩＤ０＝１、ＭＩＤ１＝１、ＭＩＤ２＝０、ＭＩＤ３＝０が設定されている。
【００６０】
これらの設定を前提条件として、ＣＰＵが処理部選択情報としてアクセスアドレス“０ｘＦＦＦＦ０００８”を、アクセス要求ＳＰＩＤとして“ＳＰＩＤ＝２”を用いて、周辺資源１２（つまり、処理部２）にアクセスする場合の動作について、図１３に示すフローチャートを用いて説明する。
【００６１】
図２に示すように、ＣＰＵ１０は、周辺資源１２にアクセスする際、処理部選択情報としてアクセスアドレス“０ｘＦＦＦＦ０００８”を出力する。図１２に示すように、アクセスアドレス“０ｘＦＦＦＦ０００８”は、処理部２のアクセスアドレスに対応している（ｎ＝２）。よって、ＭＩＤ許可設定選択部２１は、許可設定部２のＭＩＤ許可設定を選択し、選択したＭＩＤ許可設定を許可判定部２６に出力する（図１３のステップＳ１）。また、ＴＩＤ選択部２２は、許可設定部２のＳＰＩＤテーブル設定（ＴＩＤ＝０）を選択し、選択したＳＰＩＤテーブル設定（ＴＩＤ＝０）をＳＰＩＤテーブル選択部２４に出力する（図１３のステップＳ２）。
【００６２】
その後、図２に示すＳＰＩＤテーブル選択部２４は、ＴＩＤ選択部２２で選択されたＳＰＩＤテーブル設定（ＴＩＤ＝０）を用いて、ＳＰＩＤテーブル部２３に格納されているＳＰＩＤテーブル（ＴＩＤ＝０、ＴＩＤ＝１）の中からアクセス制御に使用するＳＰＩＤテーブル（ＴＩＤ＝０）を選択し、選択したＳＰＩＤテーブル（ＴＩＤ＝０）をＭＩＤ一致判定部２５に出力する（図１３のステップＳ３）。
【００６３】
その後、図２に示すＭＩＤ一致判定部２５は、ＳＰＩＤテーブル選択部２４で選択されたＳＰＩＤテーブル（ＴＩＤ＝０）を用いて、ＣＰＵ１０から出力されたＳＰＩＤ＝２に対応するＭＩＤを決定する（図１３のステップＳ４）。この場合は、ＳＰＩＤテーブル（ＴＩＤ＝０）のＭＩＤ２に設定されているＳＰＩＤが“２”であるので、ＣＰＵ１０から出力されたＳＰＩＤ＝２に対応するＭＩＤとして、“ＭＩＤ２”を許可判定部２６に出力する。
【００６４】
その後、図２に示す許可判定部２６は、ＭＩＤ許可設定選択部２１で選択されたＭＩＤ許可設定（ｎ＝２：図１３のステップＳ１参照）と、ＭＩＤ一致判定部２５から出力されたＭＩＤ一致判定結果（ＭＩＤ２）と、に基づいて、ＣＰＵ１０の処理部１３へのアクセスの可否を判定する（図１３のステップＳ６）。
【００６５】
具体的には、許可判定部２６は、ＭＩＤ許可設定選択部２１で選択された許可設定部２の設定情報（ＭＩＤ０＝０、ＭＩＤ１＝０、ＭＩＤ２＝１、ＭＩＤ３＝１）を参照して、ＭＩＤ一致判定部２５から出力された“ＭＩＤ２”と対応するＭＩＤ２の設定情報（ＭＩＤ２＝１）を取得する。この場合は、ＭＩＤ２＝１であるのでアクセス許可となる。よって、ＣＰＵ１０の処理部２（アクセスアドレス“０ｘＦＦＦＦ０００８”）へのアクセスが許可される。
【００６６】
なお、図１３に示す例では、ＣＰＵ１０から出力されたアクセス情報（Ｒ／Ｗ）を用いたアクセス判定（図１０のステップＳ５）を省略している。
【００６７】
背景技術で説明したように、データ処理装置は、演算部が周辺資源にアクセスする際、不正なアクセスから周辺資源を保護するために、周辺資源へのアクセスを制御するアクセス制御部を備えている。例えば、アクセス制御部は、周辺資源が備える各々のエントリ（処理部）に演算部がアクセス可能であるか否かを取り決めた許可設定情報に基づいて、演算部の各エントリへのアクセスを制御している。
【００６８】
しかしながら、近年のデータ処理装置では周辺資源のエントリ数が増加傾向にある。このため、各々のエントリ（処理部）への演算部のアクセス権限を取り決めた許可設定情報が膨大になり、許可設定情報を格納している回路の規模も大きくなるという問題があった。
【００６９】
そこで本実施の形態にかかるデータ処理装置では、ＣＰＵ１０が処理部１３にアクセスする際に、アクセス制御部１１にアクセス要求識別子（ＳＰＩＤ）を出力するように構成している。また、中間識別子（ＭＩＤ）とアクセス要求識別子（ＳＰＩＤ）とを対応付けたＳＰＩＤテーブル（図６参照）を設けている。また、中間識別子（ＭＩＤ）毎に許可設定をした許可設定部０〜ｉ−１を設けている（図３参照）。
【００７０】
そして、ＣＰＵ１０が処理部０〜ｉ−１にアクセスする際、アクセス制御部１１は、ＣＰＵ１０から出力されたアクセス要求識別子（ＳＰＩＤ）に対応する中間識別子（ＭＩＤ）を決定し、この中間識別子（ＭＩＤ）に対応する許可設定に基づいてアクセスの可否を判定している。
【００７１】
ここで、中間識別子（ＭＩＤ）の数は、アクセス要求識別子（ＳＰＩＤ）の数よりも少ない。よって、アクセス要求識別子（ＳＰＩＤ）毎に許可設定をした場合よりも、中間識別子（ＭＩＤ）毎に許可設定をした場合の方が許可設定部の回路規模を小さくすることができる。具体的には、図３に示す許可設定部０〜ｉ−１の規模を小さくすることができる。
【００７２】
よって、本実施の形態にかかるデータ処理装置によって、回路規模の増大を抑制することが可能なデータ処理装置、及びアクセス制御方法を提供することができる。
【００７３】
図１４は、比較例にかかるデータ処理装置の許可設定部の構成例を示す図である。図１４に示す比較例では、エントリ数が５１２の周辺資源に対して許可設定部０〜許可設定部５１１を設けている。ここで、ＳＰＩＤは５ｂｉｔであり、リード・ライトの各々に対してアクセス許可設定を行う場合、図１４に示すように、許可設定部０にはＳＰＩＤ０〜ＳＰＩＤ３１毎にライトの許可設定ＷＳＰＩＤ０〜ＷＳＰＩＤ３１とリードの許可設定ＲＳＰＩＤ０〜ＲＳＰＩＤ３１とを設定する。そして、図１４に示す比較例では、エントリ数５１２の全てに対して、このような許可設定部０〜許可設定部５１１を設けている。よって、許可設定部０〜許可設定部５１１の回路規模は膨大になる。
【００７４】
図１５は、本実施の形態にかかるデータ処理装置１が備えるＳＰＩＤテーブル部２３、及び許可設定部１４の構成例を示す図である。図１５に示す構成例では、４つのＳＰＩＤテーブル（ＴＩＤ＝０〜３）が設けられている。各々のＳＰＩＤテーブルは、ＭＩＤ０〜ＭＩＤ３と各々のＳＰＩＤとを対応付けるために、１つのＭＩＤ当たり５ビットのレジスタを用いている。
【００７５】
また、図１５に示す構成例では、エントリ数が５１２の周辺資源に対して許可設定部０〜許可設定部５１１を設けている。図１５に示すように、許可設定部０にはＭＩＤ０〜ＭＩＤ３毎にライトの許可設定ＷＭＩＤ０〜ＷＭＩＤ３とリードの許可設定ＲＭＩＤ０〜ＲＭＩＤ３とが設定されている。また、許可設定部０にはＳＰＩＤテーブル設定（ＴＩＤ）が設定されている。ＳＰＩＤテーブル設定（ＴＩＤ）には２ビットのレジスタが用いられている。そして、図１５に示す構成例では、エントリ数５１２の全てに対して、このような許可設定部０〜許可設定部５１１を設けている。
【００７６】
図１４の比較例にかかる構成と、図１５の本実施の形態にかかるデータ処理装置の構成とを比較すると、図１５に示す本実施の形態の構成例では、図１４に示す比較例の場合と比べて、許可設定部０〜許可設定部５１１を構成するレジスタの総ビット数を大幅に削減することができる。具体的には、図１４に示す比較例の許可設定部０〜許可設定部５１１を構成するレジスタの総ビット数は、５１２（エントリ数）×３２（ＳＰＩＤ数）×２＝３２７６８ビットである。一方、図１５に示す本実施の形態の構成例の許可設定部０〜許可設定部５１１を構成するレジスタの総ビット数は、５１２（エントリ数）×｛４（ＭＩＤ数）×２＋２ビット（ＴＩＤ）｝＝５１２０ビットである。よって、図１５に示す本実施の形態の構成例では、図１４の比較例にかかる構成と比べて、約８４％ビット数を削減することができる。
【００７７】
なお、図１５に示す本実施の形態の構成例では、新たにＳＰＩＤテーブル（ＴＩＤ＝０〜３）を準備する必要がある。しかし、４つのＳＰＩＤテーブルを構成するためのビット数は、５ビット×４（ＭＩＤ数）×４（テーブル数）＝８０ビットであり、少ないビット数でＳＰＩＤテーブル（ＴＩＤ＝０〜３）を構成することができる。よって、全体的なビット数を考慮しても、図１５に示す本実施の形態の構成例のほうが、設定に使用するビット数を少なくすることができる。
【００７８】
また、本実施の形態では、比較例のように全てのＳＰＩＤに対して許可設定を設けた場合と比べると、各許可設定部において使用可能なＳＰＩＤの数が限定される。しかし、ＳＰＩＤテーブル部２３に定義したＳＰＩＤテーブル数と比べて周辺資源が使用できるＳＰＩＤの数を増やすことが可能である。また、実際の用途においては、各エントリを使用するプログラムの数は限定されるため、全てのＳＰＩＤに対して許可設定を設ける必要はない。
【００７９】
以上で説明した本実施の形態により、回路規模の増大を抑制することが可能なデータ処理装置、及びアクセス制御方法を提供することができる。
【００８０】
＜実施の形態２＞
次に、実施の形態２について説明する。
図１６は、実施の形態２にかかるデータ処理装置の構成例を示すブロック図である。実施の形態２にかかるデータ処理装置２は、実施の形態１で説明したデータ処理装置１（図２参照）と比べて、処理部６３が、各々の処理部０〜ｉ−１を使用するＣＰＵを設定するためのＣＰＵＩＤを持つ点が異なる。これ以外の構成は、実施の形態１で説明したデータ処理装置１（図２参照）と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
【００８１】
図１６に示すように、本実施の形態にかかるデータ処理装置２は、複数のＣＰＵ６０_０〜６０_ｎ−１、アクセス制御部６１、及び周辺資源６２を備える。アクセス制御部６１は、ＭＩＤ許可設定選択部６５、ＴＩＤ選択部６６、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６を備える。また、周辺資源６２は、処理部６３および許可設定部６４を備える。
【００８２】
複数のＣＰＵ６０_０〜６０_ｎ−１は、バス１９を介して周辺資源６２にアクセス可能に構成されている。このとき、アクセス制御部６１は、各々のＣＰＵ６０_０〜６０_ｎ−１の周辺資源６２へのアクセスを制御する。
【００８３】
各々のＣＰＵ６０_０〜６０_ｎ−１は、所定のプログラムを実行する。また、各々のＣＰＵ６０_０〜６０_ｎ−１には、アクセス要求識別子（ＳＰＩＤ）が格納されている。各々のＣＰＵ６０_０〜６０_ｎ−１は、周辺資源６２にアクセスする際、アクセスアドレス、ＳＰＩＤ、及びアクセス情報（Ｒ／Ｗ）をアクセス制御部６１に出力する。
【００８４】
周辺資源６２の処理部６３には、処理部０〜ｉ−１（ｉは１以上の整数）が設けられている。各々の処理部０〜ｉ−１は、周辺資源６２の主機能（割込み処理など）を提供する。また、周辺資源６２は、許可設定部６４を備える。
【００８５】
また、本実施の形態では、各々の処理部０〜ｉ−１を使用するＣＰＵを設定するためのＣＰＵＩＤを持つ。本実施の形態では、ｎ個のＣＰＵ６０_０〜６０_ｎ−１を備えるので、ＣＰＵＩＤとして、ＣＰＵＩＤ＝０〜ｎ−１が設定される。例えば、処理部０と対応するＣＰＵＩＤとしてＣＰＵＩＤ＝０を設定した場合、これは、処理部０を使用するＣＰＵがＣＰＵ０（６０_０）であることを意味している。なお、各々の処理部０〜ｉ−１に対応するＣＰＵＩＤは、ユーザが任意に設定することができる。各々の処理部０〜ｉ−１に対応するＣＰＵＩＤは、ＴＩＤ選択部６６に出力される。
【００８６】
許可設定部６４は、図３に示した許可設定部１４と同様に、各々の処理部０〜ｉ−１に対応した許可設定部０〜ｉ−１を備える。各々の許可設定部０〜ｉ−１には、中間識別子（ＭＩＤ）毎に設定されたアクセス許可設定情報（ＭＩＤ許可設定）が格納されている。なお、本実施の形態では、ＴＩＤ選択部６６は、各々の処理部０〜ｉ−１に対応するＣＰＵＩＤを用いて、ＳＰＩＤテーブル設定（ＴＩＤ）を選択する。よって、本実施の形態において、許可設定部６４は、図３に示した許可設定部１４が備えるＳＰＩＤテーブル設定（ＴＩＤ）を備えない。
【００８７】
図１６に示すように、許可設定部６４は、ＭＩＤ許可設定をＭＩＤ許可設定選択部６５に出力する。ＭＩＤ許可設定選択部６５は、ＣＰＵ６０_０〜６０_ｎ−１から出力されたアクセスアドレスを用いて、許可設定部６４から供給されたＭＩＤ許可設定の中からアクセス制御に使用するＭＩＤ許可設定を選択し、選択したＭＩＤ許可設定を許可判定部２６に出力する。
【００８８】
図１７は、ＭＩＤ許可設定選択部６５の構成例を示す図である。図１７に示すように、ＭＩＤ許可設定選択部６５は、ＭＩＤ選択情報生成部７１およびセレクタ７２を備える。ＭＩＤ選択情報生成部７１は、ＣＰＵ６０_０〜６０_ｎ−１から出力されたアクセスアドレスに応じた選択信号を生成し、生成した選択信号をセレクタ７２に出力する。セレクタ７２は、許可設定部６４から供給されたＭＩＤ許可設定の中から、選択信号に応じたＭＩＤ許可設定を選択して出力する。
【００８９】
ここで、ＣＰＵ６０_０〜６０_ｎ−１から出力されたアクセスアドレスは、ＣＰＵ６０_０〜６０_ｎ−１がアクセスする処理部０〜ｉ−１のアクセスアドレスであり、ＭＩＤ許可設定選択部６５は、このアクセスアドレスを用いて、ＣＰＵ６０_０〜６０_ｎ−１がアクセスする処理部０〜ｉ−１を把握することができる。よって、ＭＩＤ許可設定選択部６５は、ＣＰＵ６０_０〜６０_ｎ−１がアクセスする処理部０〜ｉ−１に対応したＭＩＤ許可設定０〜ｉ−１を選択することができる。
【００９０】
図１６に示すＴＩＤ選択部６６は、ＣＰＵ６０_０〜６０_ｎ−１から出力されたアクセスアドレスを用いて、周辺資源６２から供給された各々の処理部０〜ｉ−１に対応するＣＰＵＩＤの中からアクセスアドレスに対応するＣＰＵＩＤを選択する。
【００９１】
図１８は、ＴＩＤ選択部６６の構成例を示す図である。図１８に示すように、ＴＩＤ選択部６６は、セレクタ７３を備える。セレクタ７３は、周辺資源６２から供給された各々の処理部０〜ｉ−１に対応するＣＰＵＩＤの中から、アクセスアドレスに対応したＣＰＵＩＤを選択して出力する。
【００９２】
ここで、ＣＰＵ６０_０〜６０_ｎ−１から出力されたアクセスアドレスは、ＣＰＵ６０_０〜６０_ｎ−１がアクセスする処理部０〜ｉ−１に対応するアクセスアドレスである。よって、ＴＩＤ選択部６６は、ＣＰＵ６０_０〜６０_ｎ−１から出力されたアクセスアドレスを用いることで、ＣＰＵ６０_０〜６０_ｎ−１がアクセスする処理部０〜ｉ−１に対応するＣＰＵＩＤを選択することができる。選択されたＣＰＵＩＤは、選択されたＴＩＤとしてＳＰＩＤテーブル選択部２４に供給される。
【００９３】
例えば、ＣＰＵ６０_１が処理部１を使用する場合、処理部１のＣＰＵＩＤはＣＰＵＩＤ＝１に設定される。ＣＰＵ６０_１は、処理部１にアクセスする際に、アクセスアドレスとして処理部１に対応するアクセスアドレス＝１を出力する。ＴＩＤ選択部６６は、アクセスアドレス＝１に対応する処理部１のＣＰＵＩＤ＝１を、ＴＩＤとしてＳＰＩＤテーブル選択部２４に出力する。
【００９４】
なお、本実施の形態にかかる構成では、ＳＰＩＤテーブル部２３には、ｎ個のＣＰＵＩＤ＝０〜ｎ−１に対応するＳＰＩＤテーブル（ＴＩＤ＝０〜ｎ−１）が格納されている。
【００９５】
また、これ以外の構成、つまり、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６の構成については実施の形態１で説明した構成と同様であるので重複した説明は省略する。
【００９６】
本実施の形態にかかるデータ処理装置２では、複数のＣＰＵ６０_０〜６０_ｎ−１が周辺資源６２を共有している。また、各々の処理部０〜ｉ−１は、各々の処理部０〜ｉ−１を使用するＣＰＵの情報であるＣＰＵＩＤを有する。このような構成は、例えば、割込みコントローラなど、各チャネル（処理部）を使用するＣＰＵを指定する場合などに用いられる。例えば、組み込み分野のマルチコアシステムにおいては、メモリ空間及び周辺装置へのアクセス権限の設定をＣＰＵ単位で管理したい場合がある。本実施の形態にかかる構成は、このような場合に好適に用いることができる。
【００９７】
また、本実施の形態にかかるデータ処理装置２では、処理部０〜ｉ−１を使用するＣＰＵに依存して、参照するＳＰＩＤテーブル（つまり、ＭＩＤ一致判定部２５で使用されるＳＰＩＤテーブル）を変更することができる。これにより、ＳＰＩＤテーブルをＣＰＵ単位で使用することになり、マルチコアシステムにおけるプログラミングにおいてアクセス権限の管理が容易となる。
【００９８】
つまり、マルチコアシステムにおいて、複数のＣＰＵが、周辺資源を占有的もしくは共有して使用するためのアクセス権限の管理は大きな課題である。本実施の形態にかかるデータ処理装置２では、処理部０〜ｉ−１を使用するＣＰＵの設定に、参照するＳＰＩＤテーブルを連動させることで、このような課題を解決することができる。また、許可設定部６４にＳＰＩＤテーブル設定（ＴＩＤ）を設ける必要がなくなるため、実装面積を削減することができる。
【００９９】
＜実施の形態３＞
次に、実施の形態３について説明する。
図１９は、実施の形態３にかかるデータ処理装置の構成例を示すブロック図である。実施の形態３にかかるデータ処理装置３は、実施の形態１で説明したデータ処理装置１（図２参照）と比べて、単一のＣＰＵ８０が複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を備え、これら複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）が周辺資源８２を共有している点が異なる。これ以外の構成は、実施の形態１で説明したデータ処理装置１（図２参照）と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
【０１００】
図１９に示すように、本実施の形態にかかるデータ処理装置３は、ＣＰＵ８０、アクセス制御部８１、及び周辺資源８２を備える。アクセス制御部８１は、ＭＩＤ許可設定選択部８５、ＴＩＤ選択部８６、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６を備える。また、周辺資源８２は、処理部８３および許可設定部８４を備える。
【０１０１】
ＣＰＵ８０は、複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を備える。複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）は、周辺資源８２にアクセス可能に構成されている。このとき、アクセス制御部８１は、各々の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）の周辺資源８２へのアクセスを制御する。
【０１０２】
各々の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）は、所定のプログラムを実行する。また、ＣＰＵ８０には、アクセス要求識別子（ＳＰＩＤ）が格納されている。各々の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）は、周辺資源８２にアクセスする際、アクセスアドレス、ＳＰＩＤ、及びアクセス情報（Ｒ／Ｗ）をアクセス制御部８１に出力する。
【０１０３】
周辺資源８２の処理部８３には、処理部０〜ｉ−１（ｉは１以上の整数）が設けられている。各々の処理部０〜ｉ−１は、周辺資源８２の主機能（割込み処理など）を提供する。また、周辺資源８２は、許可設定部８４を備える。
【０１０４】
また、本実施の形態では、各々の処理部０〜ｉ−１を使用する仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を設定するためのＶＣＰＵＩＤを持つ。本実施の形態では、ｍ個の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を備えるので、ＶＣＰＵＩＤとして、ＶＣＰＵＩＤ＝０〜ｍが設定される。例えば、処理部０と対応するＶＣＰＵＩＤとしてＶＣＰＵＩＤ＝０を設定した場合、これは、処理部０を使用する仮想ＣＰＵがＶＣＰＵ０であることを意味している。なお、各々の処理部０〜ｉ−１に対応するＶＣＰＵＩＤは、ユーザが任意に設定することができる。各々の処理部０〜ｉ−１に対応するＶＣＰＵＩＤは、ＴＩＤ選択部８６に出力される。
【０１０５】
許可設定部８４は、図３に示した許可設定部１４と同様に、各々の処理部０〜ｉ−１に対応した許可設定部０〜ｉ−１を備える。各々の許可設定部０〜ｉ−１には、中間識別子（ＭＩＤ）毎に設定されたアクセス許可設定情報（ＭＩＤ許可設定）が格納されている。なお、本実施の形態では、ＴＩＤ選択部８６は、各々の処理部０〜ｉ−１に対応するＶＣＰＵＩＤを用いて、ＳＰＩＤテーブル設定（ＴＩＤ）を選択する。よって、本実施の形態において、許可設定部８４は、図３に示した許可設定部１４が備えるＳＰＩＤテーブル設定（ＴＩＤ）を備えない。
【０１０６】
図１９に示すように、許可設定部８４は、ＭＩＤ許可設定をＭＩＤ許可設定選択部８５に出力する。ＭＩＤ許可設定選択部８５は、ＣＰＵ８０から出力されたアクセスアドレスを用いて、許可設定部８４から供給されたＭＩＤ許可設定の中からアクセス制御に使用するＭＩＤ許可設定を選択し、選択したＭＩＤ許可設定を許可判定部２６に出力する。
【０１０７】
ここで、ＣＰＵ８０から出力されたアクセスアドレスは、仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１のアクセスアドレスであり、ＭＩＤ許可設定選択部８５は、このアクセスアドレスを用いて、仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１を把握することができる。よって、ＭＩＤ許可設定選択部８５は、仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１に対応したＭＩＤ許可設定０〜ｉ−１を選択することができる。
【０１０８】
図１９に示すＴＩＤ選択部８６は、ＣＰＵ８０の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）から出力されたアクセスアドレスを用いて、周辺資源８２から供給された各々の処理部０〜ｉ−１に対応するＶＣＰＵＩＤの中からアクセスアドレスに対応するＶＣＰＵＩＤを選択する。
【０１０９】
図２０は、ＴＩＤ選択部８６の構成例を示す図である。図２０に示すように、ＴＩＤ選択部８６は、セレクタ９１を備える。セレクタ９１は、周辺資源８２から供給された各々の処理部０〜ｉ−１に対応するＶＣＰＵＩＤの中から、アクセスアドレスに対応したＶＣＰＵＩＤを選択して出力する。
【０１１０】
ここで、ＣＰＵ８０から出力されたアクセスアドレスは、仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１に対応するアクセスアドレスである。よって、ＴＩＤ選択部８６は、ＣＰＵ８０から出力されたアクセスアドレスを用いることで、仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１に対応するＶＣＰＵＩＤを選択することができる。選択されたＶＣＰＵＩＤは、選択されたＴＩＤとしてＳＰＩＤテーブル選択部２４に供給される。
【０１１１】
例えば、仮想ＣＰＵ（ＶＣＰＵ１）が処理部１を使用する場合、処理部１のＶＣＰＵＩＤはＶＣＰＵＩＤ＝１に設定される。仮想ＣＰＵ（ＶＣＰＵ１）は、処理部１にアクセスする際に、アクセスアドレスとして処理部１に対応するアクセスアドレス＝１を出力する。ＴＩＤ選択部８６は、アクセスアドレス＝１に対応する処理部１のＶＣＰＵＩＤ＝１を、ＴＩＤとしてＳＰＩＤテーブル選択部２４に出力する。
【０１１２】
なお、本実施の形態にかかる構成では、ＳＰＩＤテーブル部２３には、ｍ個のＶＣＰＵＩＤ＝０〜ｍ−１に対応するＳＰＩＤテーブル（ＴＩＤ＝０〜ｍ−１）が格納されている。
【０１１３】
また、これ以外の構成、つまり、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６の構成については実施の形態１で説明した構成と同様であるので重複した説明は省略する。
【０１１４】
本実施の形態にかかるデータ処理装置３では、複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）が周辺資源８２を共有している。また、各々の処理部０〜ｉ−１は、各々の処理部０〜ｉ−１を使用する仮想ＣＰＵの情報であるＶＣＰＵＩＤを有する。このような構成は、例えば、割込みコントローラなど、各チャネル（処理部）を使用する仮想ＣＰＵを指定する場合などに用いられる。例えば、組み込み分野のマルチコアシステムにおいては、メモリ空間及び周辺装置へのアクセス権限の設定を仮想ＣＰＵ単位で管理したい場合がある。本実施の形態にかかる構成は、このような場合に好適に用いることができる。
【０１１５】
また、本実施の形態にかかるデータ処理装置３では、処理部０〜ｉ−１を使用する仮想ＣＰＵに依存して、参照するＳＰＩＤテーブル（つまり、ＭＩＤ一致判定部２５で使用されるＳＰＩＤテーブル）を変更することができる。これにより、ＳＰＩＤテーブルを仮想ＣＰＵ単位で使用することになり、マルチコアシステムにおけるプログラミングにおいてアクセス権限の管理が容易となる。
【０１１６】
つまり、マルチコアシステムにおいて、複数の仮想ＣＰＵが、周辺資源を占有的もしくは共有して使用するためのアクセス権限の管理は大きな課題である。本実施の形態にかかるデータ処理装置３では、処理部０〜ｉ−１を使用する仮想ＣＰＵの設定に、参照するＳＰＩＤテーブルを連動させることで、このような課題を解決することができる。また、許可設定部８４にＳＰＩＤテーブル設定（ＴＩＤ）を設ける必要がなくなるため、実装面積を削減することができる。
【０１１７】
＜実施の形態４＞
次に、実施の形態４について説明する。
図２１は、実施の形態４にかかるデータ処理装置の構成例を示すブロック図である。実施の形態４にかかるデータ処理装置４は、実施の形態１で説明したデータ処理装置１（図２参照）と比べて、複数のＣＰＵ１００_０〜１００_ｎ−１の各々が複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を備え、これらが周辺資源１０２を共有している点が異なる。つまり、実施の形態４の構成は、実施の形態２にかかる構成と実施の形態３にかかる構成とを組み合わせた構成である。これ以外の構成は、実施の形態１で説明したデータ処理装置１（図２参照）と同様であるので、同一の構成要素には同一の符号を付し、重複した説明は適宜省略する。
【０１１８】
図２１に示すように、本実施の形態にかかるデータ処理装置４は、複数のＣＰＵ１００_０〜１００_ｎ−１、アクセス制御部１０１、及び周辺資源１０２を備える。アクセス制御部１０１は、ＭＩＤ許可設定選択部１０５、ＴＩＤ選択部１０６、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６を備える。また、周辺資源１０２は、処理部１０３および許可設定部１０４を備える。
【０１１９】
各々のＣＰＵ１００_０〜１００_ｎ−１は、複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）をそれぞれ備える。複数のＣＰＵ１００_０〜１００_ｎ−１、及び複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）は、バス１９を介して周辺資源１０２にアクセス可能に構成されている。このとき、アクセス制御部１０１は、複数のＣＰＵ１００_０〜１００_ｎ−１、及び複数の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）の周辺資源１０２へのアクセスを制御する。
【０１２０】
各々のＣＰＵ１００_０〜１００_ｎ−１、及び各々の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）は、所定のプログラムを実行する。また、各々のＣＰＵ１００_０〜１００_ｎ−１には、アクセス要求識別子（ＳＰＩＤ）が格納されている。各々のＣＰＵ１００_０〜１００_ｎ−１は、周辺資源１０２にアクセスする際、アクセスアドレス、ＳＰＩＤ、及びアクセス情報（Ｒ／Ｗ）をアクセス制御部１０１に出力する。
【０１２１】
周辺資源１０２の処理部１０３には、処理部０〜ｉ−１（ｉは１以上の整数）が設けられている。各々の処理部０〜ｉ−１は、周辺資源１０２の主機能（割込み処理など）を提供する。また、周辺資源１０２は、許可設定部１０４を備える。
【０１２２】
また、本実施の形態では、各々の処理部０〜ｉ−１を使用するＣＰＵ１００_０〜１００_ｎ−１を設定するためのＣＰＵＩＤを持つ。本実施の形態では、ｎ個のＣＰＵ１００_０〜１００_ｎ−１を備えるので、ＣＰＵＩＤとして、ＣＰＵＩＤ＝０〜ｎ−１が設定される。例えば、処理部０と対応するＣＰＵＩＤとしてＣＰＵＩＤ＝０を設定した場合、これは、処理部０を使用するＣＰＵがＣＰＵ０（１００_０）であることを意味している。
【０１２３】
また、本実施の形態では、各々の処理部０〜ｉ−１を使用する仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を設定するためのＶＣＰＵＩＤを持つ。本実施の形態では、ｍ個の仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）を備えるので、ＶＣＰＵＩＤとして、ＶＣＰＵＩＤ＝０〜ｍが設定される。例えば、処理部０と対応するＶＣＰＵＩＤとしてＶＣＰＵＩＤ＝０を設定した場合、これは、処理部０を使用する仮想ＣＰＵがＶＣＰＵ０であることを意味している。
【０１２４】
各々の処理部０〜ｉ−１に対応するＣＰＵＩＤ、及びＶＣＰＵＩＤは、ＴＩＤ選択部１０６に出力される。
【０１２５】
許可設定部１０４は、図３に示した許可設定部１４と同様に、各々の処理部０〜ｉ−１に対応した許可設定部０〜ｉ−１を備える。各々の許可設定部０〜ｉ−１には、中間識別子（ＭＩＤ）毎に設定されたアクセス許可設定情報（ＭＩＤ許可設定）が格納されている。なお、本実施の形態では、ＴＩＤ選択部１０６は、各々の処理部０〜ｉ−１に対応するＣＰＵＩＤ、ＶＣＰＵＩＤを用いて、ＳＰＩＤテーブル設定（ＴＩＤ）を選択する。よって、本実施の形態において、許可設定部１０４は、図３に示した許可設定部１４が備えるＳＰＩＤテーブル設定（ＴＩＤ）を備えない。
【０１２６】
図２１に示すように、許可設定部１０４は、ＭＩＤ許可設定をＭＩＤ許可設定選択部１０５に出力する。ＭＩＤ許可設定選択部１０５は、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）から出力されたアクセスアドレスを用いて、許可設定部１０４から供給された複数のＭＩＤ許可設定の中からアクセス制御に使用するＭＩＤ許可設定を選択し、選択したＭＩＤ許可設定を許可判定部２６に出力する。
【０１２７】
ここで、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）から出力されたアクセスアドレスは、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１のアクセスアドレスであり、ＭＩＤ許可設定選択部１０５は、このアクセスアドレスを用いて、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１を把握することができる。よって、ＭＩＤ許可設定選択部１０５は、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１に対応したＭＩＤ許可設定０〜ｉ−１を選択することができる。
【０１２８】
図２２に示すＴＩＤ選択部１０６は、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）から出力されたアクセスアドレスを用いて、周辺資源１０２から供給された各々の処理部０〜ｉ−１に対応するＣＰＵＩＤ、ＶＣＰＵＩＤの中からアクセスアドレスに対応するＣＰＵＩＤ、ＶＣＰＵＩＤを選択する。
【０１２９】
図２２は、ＴＩＤ選択部１０６の構成例を示す図である。図２２に示すように、ＴＩＤ選択部１０６は、セレクタ１１１を備える。セレクタ１１１は、周辺資源１０２から供給された各々の処理部０〜ｉ−１に対応するＣＰＵＩＤ、ＶＣＰＵＩＤの中から、アクセスアドレスに対応したＣＰＵＩＤ、ＶＣＰＵＩＤを選択して出力する。
【０１３０】
ここで、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）から出力されたアクセスアドレスは、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１に対応するアクセスアドレスである。よって、ＴＩＤ選択部１０６は、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）から出力されたアクセスアドレスを用いることで、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）がアクセスする処理部０〜ｉ−１に対応するＣＰＵＩＤ、ＶＣＰＵＩＤを選択することができる。選択されたＣＰＵＩＤ、ＶＣＰＵＩＤは、選択されたＴＩＤとしてＳＰＩＤテーブル選択部２４に供給される。
【０１３１】
なお、これ以外の構成、つまり、ＳＰＩＤテーブル部２３、ＳＰＩＤテーブル選択部２４、ＭＩＤ一致判定部２５、及び許可判定部２６の構成については実施の形態１で説明した構成と同様であるので重複した説明は省略する。
【０１３２】
本実施の形態にかかるデータ処理装置４では、ＣＰＵ１００_０〜１００_ｎ−１、及び仮想ＣＰＵ（ＶＣＰＵ０〜ＶＣＰＵｍ−１）が周辺資源１０２を共有している。また、各々の処理部０〜ｉ−１は、各々の処理部０〜ｉ−１を使用するＣＰＵ、及び仮想ＣＰＵの情報であるＣＰＵＩＤ、およびＶＣＰＵＩＤを有する。このような構成は、例えば、割込みコントローラなど、各チャネル（処理部）を使用するＣＰＵ及び仮想ＣＰＵを指定する場合などに用いられる。例えば、組み込み分野のマルチコアシステムにおいては、メモリ空間及び周辺装置へのアクセス権限の設定をＣＰＵ及び仮想ＣＰＵ単位で管理したい場合がある。本実施の形態にかかる構成は、このような場合に好適に用いることができる。
【０１３３】
＜その他の実施の形態＞
図２３は、実施の形態１にかかるデータ処理装置を車両に用いた場合の構成例を示すブロック図である。図２３に示すように、車両２００には、データ処理装置１、センサ２１０、及びカメラ２２０が設けられている。データ処理装置１は車載用のチップである。センサ２１０は、車両２００の所定の情報を取得する。また、カメラ２２０は、車両周辺の映像を取得する。センサ２１０およびカメラ２２０で取得された情報は、データ処理装置１に供給される。データ処理装置１は、センサ２１０およびカメラ２２０で取得された情報に応じて、所定の処理を実施する。
【０１３４】
このとき、実施の形態１にかかるデータ処理装置１が備えるアクセス制御部１１（図２参照）は、ＣＰＵの周辺資源（周辺装置）へのアクセスを制御する。よって、ＣＰＵが不正に周辺資源（周辺装置）にアクセスすることを抑制することができる。なお、図２３に示すデータ処理装置１の代わりに、実施の形態２〜４で説明したデータ処理装置２〜３を用いてもよい。
【０１３５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１３６】
１  データ処理装置
１０  ＣＰＵ
１１  アクセス制御部
１２  周辺資源
１３  処理部
１４  許可設定部
１９  バス
２１  ＭＩＤ許可設定選択部
２２  ＴＩＤ選択部
２３  ＳＰＩＤテーブル部
２４  ＳＰＩＤテーブル選択部
２５  ＭＩＤ一致判定部
２６  許可判定部
【図１】
2018097719.tif 000003
【図２】
2018097719.tif 000004
【図３】
2018097719.tif 000005
【図４】
2018097719.tif 000006
【図５】
2018097719.tif 000007
【図６】
2018097719.tif 000008
【図７】
2018097719.tif 000009
【図８】
2018097719.tif 000010
【図９】
2018097719.tif 000011
【図１０】
2018097719.tif 000012
【図１１】
2018097719.tif 000013
【図１２】
2018097719.tif 000014
【図１３】
2018097719.tif 000015
【図１４】
2018097719.tif 000016
【図１５】
2018097719.tif 000017
【図１６】
2018097719.tif 000018
【図１７】
2018097719.tif 000019
【図１８】
2018097719.tif 000020
【図１９】
2018097719.tif 000021
【図２０】
2018097719.tif 000022
【図２１】
2018097719.tif 000023
【図２２】
2018097719.tif 000024
【図２３】
2018097719.tif 000025