(57)【要約】【課題】ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制するアクセス制御装置を提供すること。【解決手段】ＣＰＵにおける現在実行中の属性を記憶する属性記憶部と、ＣＰＵと前記周辺回路から、デバイスに対するアクセスコマンドを受け取り、アクセスを許可するか否か判定するアクセス制御部と、周辺回路からデバイスへのアクセスコマンドの状態を取得する状態取得部と、ＣＰＵが現在実行中の属性を切り替える際に、状態取得が取得したアクセスコマンドの状態に応じて、現在実行中の属性を切り替えるタイミングを決定し、決定したタイミングで前記属性記憶部の属性を更新する更新制御部とを備え、処理待ちのアクセスコマンドがない場合に、現在実行中の属性を切り替えるタイミングと決定する。【選択図】図１
2014211662.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと周辺回路とデバイスを有する情報処理装置において、ＣＰＵと周辺回路からのデバイスに対するアクセスを制御するアクセス制御装置であって、
前記ＣＰＵにおける現在実行中の属性を記憶する属性記憶部と、
前記ＣＰＵと前記周辺回路から、デバイスに対するアクセスコマンドを受け取り、前記アクセスコマンドで指定された属性とアクセス先のアドレスを用いて、デバイスへのアクセスを許可するか否か判定するアクセス制御部と、
前記周辺回路からデバイスへのアクセスコマンドの状態を取得する状態取得部と、
前記ＣＰＵが現在実行中の属性を切り替える際に、前記状態取得が取得したアクセスコマンドの状態に応じて、現在実行中の属性を切り替えるタイミングを決定し、決定したタイミングで前記属性記憶部の属性を更新する更新制御部とを備えることを特徴とするアクセス制御装置。
【請求項２】
前記状態取得部は、アクセスコマンドの状態として、前記周辺回路が保持している、デバイスへ送信前の、処理待ちのアクセスコマンドの個数を取得し、
前記更新制御部は、処理待ちのアクセスコマンドがない場合に、現在実行中の属性を切り替えるタイミングと決定することを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記状態取得が取得したアクセスコマンドの状態に応じて、前記ＣＰＵに対して、属性の切り替え処理の開始を許可する切り替え許可部を備え、
前記状態取得部は、アクセスコマンドの状態として、前記周辺回路が保持している、デバイスへ送信前の、処理待ちのアクセスコマンドの個数を取得し、
前記切り替え許可部は、処理待ちのアクセスコマンド数が所定数以下の場合に、切り替え処理の開始を許可することを特徴とする請求項１に記載のアクセス制御装置。
【請求項４】
前記切り替え許可部は、所定時間以内に、処理待ちのアクセスコマンド数が所定数以下にならない場合、切り替え処理の開始を許可することを特徴とする請求項３に記載のアクセス制御装置。
【請求項５】
属性を切替える処理のモードを記憶するモード記憶部と、
前記モード記憶部に記憶されているモードに基づいて、前記切り替え許可部による処理を行うか否かを判定するモード設定部を備え、
前記モード設定部は、前記モード記憶部に記憶されているモードが効率モードである場合に、前記切り替え許可部に処理を要求し、前記モード記憶部に記憶されているモードが通常モードである場合に、前記切り替え許可部に処理を要求しないことを特徴とする請求項３に記載のアクセス制御装置。
【請求項６】
ＣＰＵと周辺回路とデバイスを有する情報処理装置において、ＣＰＵと周辺回路からのデバイスに対するアクセスを制御するアクセス制御装置であって、前記アクセス制御装置は、前記ＣＰＵにおける現在実行中の属性を記憶する属性記憶部と、更新制御部と、状態取得部を備え、
前記ＣＰＵが現在実行中の属性を切り替える際に、前記更新制御部が、前記ＣＰＵから切り替え要求を受け取る要求ステップと、
前記更新制御部が、前記状態取得部に、状態取得要求を通知し、前記周辺回路からデバイスへのアクセスコマンドの状態を取得する取得ステップと、
前記更新制御部が、前記状態取得が取得したアクセスコマンドの状態に応じて、現在実行中の属性を切り替えるタイミングを決定する決定ステップと、
前記更新制御部が、決定したタイミングで、前記属性記憶部の属性を更新する更新ステップとを備えることを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と周辺回路とデバイスを有する情報処理装置において、周辺回路からデバイスへのアクセスを制御するアクセス制御装置に関するものである。
【背景技術】
【０００２】
従来の情報処理装置としては、プロセス毎にアクセス可能なメモリ領域が限定されており、どのプロセスからのアクセス要求かを考慮してアクセス制御を行う方法があった（例えば、特許文献１参照）。
【０００３】
前記従来の情報処理装置では、メモリ領域へのアクセス権を管理するアクセス権管理テーブルと、現在実行中のプロセスを示す情報を格納するレジスタを備える。アクセス権管理テーブルは、アドレスで示されるメモリ内容にアクセス可能なプロセスを示す情報を保持している。ＣＰＵからメモリアクセス要求が発生すると、アクセス権管理テーブルを参照して、アドレスに対応したプロセスを示す情報と、レジスタに格納されている情報とを比較し、要求されたアドレスがアクセス可能か否かを判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−１９９３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記従来の構成では、プロセスの実行を開始する際に、ＣＰＵが、レジスタに格納されている現在実行中のプロセスを示す情報を設定していた。つまり、ＣＰＵが現在実行中の属性を切り替えるタイミングで、レジスタの情報を更新する。このため、ＣＰＵと周辺回路がレジスタを共有するシステムにおいて、現在実行中の属性を切り替える際に整合性がとれないという課題を有していた。具体的には、ＣＰＵが現在実行中の属性を切り替えるタイミングでレジスタの情報を更新すると、周辺回路は切り替え前の属性に対する処理を行っている可能性がある。この場合、レジスタに格納された属性は切り替え後の属性に更新されているため、周辺回路からのアクセス要求に対する属性の比較において、不整合が生じ、不正なアクセスを許可し、正当なアクセスを拒否することになる。
【０００６】
本発明は、従来の課題を解決するもので、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制するアクセス制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のアクセス制御装置は、ＣＰＵと周辺回路とデバイスを有する情報処理装置において、ＣＰＵと周辺回路からのデバイスに対するアクセスを制御するアクセス制御装置であって、前記ＣＰＵにおける現在実行中の属性を記憶する属性記憶部と、前記ＣＰＵと前記周辺回路から、デバイスに対するアクセスコマンドを受け取り、アクセスを許可するか否か判定するアクセス制御部と、前記周辺回路からデバイスへのアクセスコマンドの状態を取得する状態取得部と、前記ＣＰＵが現在実行中の属性を切り替える際に、前記状態取得が取得したアクセスコマンドの状態に応じて、現在実行中の属性を切り替えるタイミングを決定し、決定したタイミングで前記属性記憶部の属性を更新する更新制御部とを備えることを特徴とする。
【０００８】
本構成によって、周辺回路からデバイスへのアクセスコマンドの状態に応じて、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制することができる。
【発明の効果】
【０００９】
本発明のアクセス制御装置によれば、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制することで、周辺回路からデバイスへのアクセスを、適切に制御することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１におけるアクセス制御装置を備えた情報処理装置の構成の一例を示すブロック図
【図２】本発明の実施の形態１におけるアクセス制御装置を備えた情報処理装置がＣＰＵと周辺回路における属性を切り替える処理の流れの一例を示すフロー図
【図３】本発明の実施の形態１におけるアクセスコマンドの構造の一例を示す図
【図４】本発明の実施の形態１におけるアクセス制御部が保持するアクセス制御ルールの構造の一例を示す図
【図５】本発明の実施の形態１におけるアクセス制御部がデバイスへのアクセスを許可するか否かを判定する処理の流れの一例を示すフロー図
【図６】本発明の実施の形態２におけるアクセス制御装置を備えた情報処理装置の構成の一例を示すブロック図
【図７】本発明の実施の形態２におけるアクセス制御装置を備えた情報処理装置がＣＰＵと周辺回路における属性を切り替える処理の流れの一例を示すフロー図
【図８】本発明の実施の形態３におけるアクセス制御装置を備えた情報処理装置の構成の一例を示すブロック図
【図９】本発明の実施の形態３における情報処理装置のモードを選択する処理の流れを示すフロー図
【発明を実施するための形態】
【００１１】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１２】
（実施の形態１）
本発明の情報処理装置は、複数の属性を切り替えて動作する構成であり、デバイスへのアクセスに関しては、実行中の属性毎にアクセス可能なアドレス範囲が限定されている。
【００１３】
例えば、情報処理装置が、複数のＯＳで動作する機能を有しており、実行中のＯＳ毎にアクセス可能なアドレス範囲が限定されている場合、属性とはＯＳを示す。また、情報処理装置が、複数のプロセスを実行可能であり、実行中のプロセス毎にアクセス可能なアドレス範囲が限定されている場合、属性とはプロセスを示す。また、情報処理装置が、複数の仮想マシンで動作する機能を有しており、実行中の仮想マシン毎にアクセス可能なアドレス範囲が限定されている場合、属性とは仮想マシンを示す。
【００１４】
本発明のアクセス制御装置は、ＣＰＵと周辺回路が属性を共有する情報処理装置において、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、ＣＰＵと周辺回路からデバイスへのアクセスを制御する。
【００１５】
図１は、本発明の実施の形態１におけるアクセス制御装置を備えた、情報処理装置の構成の一例を示すブロック図である。
【００１６】
図１に示した情報処理装置は、ＣＰＵ１００１、周辺回路１００２、デバイス１００３、アクセス制御装置１０００を備えている。アクセス制御装置１０００は、アクセス制御部１００４、属性記憶部１００５、更新制御部１００７、状態取得部１００６を備えている。
【００１７】
ＣＰＵ１００１は、コンピュータプログラムを読み出し、コンピュータプログラムが規定する処理を実行する。ＣＰＵ１００１は、必要に応じてデバイス１００３へアクセスを行い、また、周辺回路１００２に処理を要求する。ＣＰＵ１００１は、現在実行中の属性を切り替えると決定し、切り替え処理を開始する。
【００１８】
周辺回路１００２は、デバイス１００３にアクセスを行い、処理を行う回路である。例えば、周辺回路１００２は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）である。また、周辺回路１００２は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）、暗号復号回路などである。なお、図１では、複数の周辺回路１００２を示しているが、一つのみでもよい。
【００１９】
デバイス１００３は、アドレスを指定してアクセスするデバイスであり、ＣＰＵ１００１と周辺回路１００２からアクセス可能である。ＣＰＵ１００１と周辺回路１００２は、アクセス先のアドレスを指定したアクセスコマンドを送信し、デバイス１００３へのアクセスを要求する。例えば、デバイス１００３は、メモリデバイスであり、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。また、デバイス１００３は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）またはＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などである。
【００２０】
アクセス制御部１００４は、ＣＰＵ１００１と周辺回路１００２からの、デバイス１００３に対するアクセスコマンドを受け取り、アクセスを許可するか否かを判定する。アクセスを許可すると判定した場合、アクセス制御部１００４は、デバイス１００３にアクセスコマンドを通知する。また、アクセス制御部１００４は、通知したアクセスコマンドの応答として、デバイス１００３から受け取ったデータを、要求元のＣＰＵ１００１または周辺回路１００２に通知する。アクセス制御部１００４は、デバイス１００３にアクセスするためのアクセス権を管理するアクセス制御ルールを保持している。アクセス制御ルールは、アクセス可能なデバイスのアドレス範囲と、属性の対応関係を示す。アクセス制御部１００４は、このアクセス制御ルールと受け取ったアクセスコマンドに基づいて、アクセスを許可するか否かの判定を行う。具体的には、アクセス制御部１００４は、アクセスコマンドで指定されたアクセス先のアドレスに対応する属性を、アクセス制御ルールを参照して取得し、取得した属性とアクセスコマンドで指定された属性とを比較する。属性が一致する場合、アクセス制御部１００４は、デバイス１００３に対するアクセスを許可し、属性が一致しない場合はアクセスを拒否する。
【００２１】
属性記憶部１００５は、情報処理装置において、現在実行中の属性を識別する情報を属性情報として記憶する。例えば、属性記憶部１００５は、レジスタである。また、属性がＯＳを示す場合、属性情報として、ＯＳ識別子を保持する。
【００２２】
状態取得部１００６は、周辺回路１００２からデバイス１００３へのアクセスコマンドの状態を取得する。まず、状態取得部１００６は、更新制御部１００７から状態取得要求を受け取り、周辺回路１００２のアクセスコマンドの状態を取得する。次に、状態取得部１００６は、取得したアクセスコマンドの状態を、更新制御部１００７に通知する。アクセスコマンドの状態とは、周辺回路１００２からデバイスへのアクセスコマンドの処理状態である。例えば、周辺回路１００２が保持している、デバイス１００３へ送信前の、処理待ちのアクセスコマンドの個数である。また、例えば、周辺回路１００２が保持している、デバイス１００３へ送信前の、処理待ちのアクセスコマンドの有無である。
【００２３】
更新制御部１００７は、周辺回路１００２からデバイス１００３へのアクセスコマンドの状態に応じて、現在実行中の属性を切り替えるタイミングを制御し、属性記憶部１００５が記憶する属性情報を更新する。まず、更新制御部１００７は、現在実行中の属性を切り替える際に、ＣＰＵ１００１から、切り替え後の属性を識別する情報を含む切り替え要求を受け取る。次に、更新制御部１００７は、状態取得部１００６に、状態取得要求を通知し、状態取得部１００６から、周辺回路１００２のアクセスコマンドの状態を受け取る。更新制御部１００７は、処理待ちのアクセスコマンドがない場合に、現在実行中の属性を切り替えるタイミングと決定する。処理待ちのアクセスコマンドがある場合、更新制御部１００７は、処理待ちのアクセスコマンドがなくなるまで待ち、現在実行中の属性を切り替えるタイミングと決定する。最後に、更新制御部１００７は、属性記憶部１００５に記憶された属性情報を、切り替え後の属性を識別する情報に更新し、ＣＰＵ１００１に、切り替え完了を通知する。なお、周辺回路１００２が複数ある場合、更新制御部１００７は、全ての周辺回路１００２において、処理待ちのアクセスコマンドがない場合に、現在実行中の属性を切り替えるタイミングと決定する。
【００２４】
図３は、アクセスコマンドの構造の一例を示す図である。
【００２５】
アクセスコマンドは、属性と、アクセス先のデバイス１００３のアドレスとを含んでいる。ＣＰＵ１００１または周辺回路１００２は、デバイス１００３へのアクセスを要求する際に、現在実行中の属性と、アクセス先のアドレスを指定したアクセスコマンドを、アクセス制御部１００４に送信する。属性がＯＳを示す場合、例えば、アクセスコマンドのサイズは３３ビットであり、上位１ビットをＯＳ識別子、下位３２ビットをアドレスで構成する。
【００２６】
図４は、アクセス制御ルールの構造の一例を示す図である。アクセス制御部１００４が、アクセス制御ルールを保持する。
【００２７】
アクセス制御ルールは、属性と、デバイス１００３のアクセスを許可するアドレス範囲の対応を示す。例えば、アドレス範囲として、開始アドレスと終了アドレスを用い、アクセス制御ルールは、属性と、開始アドレスと、終了アドレスを対応付けたリストで構成する。図４は、属性がＯＳを示す場合を示している。また、一つの属性に対して、複数のアクセス範囲を対応付けてもよい。
【００２８】
図５は、アクセス制御部１００４が、デバイス１００３へアクセスを許可するか否かを判定する処理の流れの一例を示すフロー図である。
【００２９】
ステップＳ２００１で、アクセス制御部１００４は、ＣＰＵ１００１または周辺回路１００２から、デバイス１００３に対するアクセスコマンドを受け取る。
【００３０】
ステップＳ２００２で、アクセス制御部１００４は、アクセスコマンドで指定された属性を取得する。
【００３１】
ステップＳ２００３で、アクセス制御部１００４は、アクセスコマンドで指定されたアクセス先のアドレスを取得する。
【００３２】
ステップＳ２００４で、アクセス制御部１００４は、アクセスコマンドで指定されたアドレスに対応する属性を、アクセス制御ルールを参照して取得する。
【００３３】
ステップＳ２００５で、アクセス制御部１００４は、ステップＳ２００２で取得した属性と、ステップＳ２００４で取得した属性とを比較し、一致するか否かを判定する。
【００３４】
属性が一致しない場合は（ステップＳ２００５がＮ）、ステップＳ２００７で、アクセス制御部１００４は、デバイス１００３へのアクセスを拒否する。属性が一致する場合は（ステップＳ２００５がＹ）、ステップＳ２００７で、アクセス制御部１００４は、デバイス１００３へのアクセスを許可する。
【００３５】
図２は、アクセス制御装置１０００を備えた情報処理装置が、ＣＰＵ１００１と周辺回路１００２における属性を切り替える、処理の流れの一例を示すフロー図である。
【００３６】
まず、ＣＰＵ１００１が、現在実行中の属性を切り替えると決定し、切り替え処理を開始する。
【００３７】
ステップＳ１００１で、ＣＰＵ１００１は、周辺回路１００２に、切り替え準備要求を通知する。
【００３８】
ステップＳ１００２で、周辺回路１００２は、実行を停止し、周辺回路１００２が保持している、デバイス１００３へ送信前の、処理待ちのアクセスコマンドを、アクセスコマンドをアクセス制御部１００４へ出力する。なお、アクセス制御部１００４およびデバイス１００３が処理できる能力及びスピードに上限がある。このため、周辺回路１００２は、保持している処理待ちのアクセスコマンドを、即時に出力できない場合がある。特に、周辺回路１００２が複数の処理待ちのアクセスコマンドを保持している場合、一度に全てのアクセスコマンドを出力することができず、順番に出力することになる。
【００３９】
ステップＳ１００３で、ＣＰＵ１００１は、更新制御部１００７に、切り替え要求を送信する。更新制御部１００７は、ＣＰＵ１００１から、切り替え後の属性を識別する情報を含む切り替え要求を受け取る。
【００４０】
ステップ１００４で、更新制御部１００７は、状態取得部１００６に、状態取得要求を通知する。状態取得部１００６は、更新制御部１００７から状態取得要求を受け取り、周辺回路１００２のアクセスコマンドの状態を取得する。次に、状態取得部１００６は、取得したアクセスコマンドの状態を、更新制御部１００７に通知する。
【００４１】
ステップＳ１００５で、更新制御部１００７は、状態取得部１００６から、周辺回路１００２のアクセスコマンドの状態を受け取り、処理待ちのアクセスコマンドの状態を判定する。処理待ちのアクセスコマンドがない場合（ステップＳ１００５がＹ）、現在実行中の属性を切り替えるタイミングと決定する。一方、処理待ちのアクセスコマンドがある場合（ステップＳ１００５がＮ）、更新制御部１００７は、ステップＳ１００４に遷移して、処理待ちのアクセスコマンドがなくなるまで待ち、現在実行中の属性を切り替えるタイミングと決定する。
【００４２】
ステップＳ１００６で、更新制御部１００７は、属性記憶部１００５に記憶された属性情報を、切り替え要求で指定された切り替え後の属性を識別する情報に更新する。
【００４３】
ステップＳ１００７で、更新制御部１００７は、ＣＰＵ１００１に切り替え完了を通知する。
【００４４】
ステップＳ１００８で、ＣＰＵ１００１は、周辺回路１００２に、切り替え完了を通知する。
【００４５】
ステップＳ１００９で、ＣＰＵ１００１と周辺回路１００２は、切り替え後の属性で実行開始する。
【００４６】
以上により、周辺回路からデバイスへのアクセスコマンドの状態に応じて、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制することができる。これにより、ＣＰＵと周辺回路が属性を共有する情報処理装置において、周辺回路からデバイスへのアクセスを、適切に制御することが可能となる。
【００４７】
本発明のアクセス制御装置は、アクセスコマンドの状態として、処理待ちのアクセスコマンドの有無に応じて、切り替えるタイミングを制御する。状態取得部１００６が、周辺回路１００２が保持している、処理待ちのアクセスコマンドの状態を取得し、更新制御部１００７が、処理待ちのアクセスコマンドがない場合に、属性記憶部１００５が記憶している現在実行中の属性を更新する。これにより、ＣＰＵ１００１が、現在実行中の属性の切り替えた後に、周辺回路１００２が、切り替え前の属性に対するアクセスコマンドを処理することがなくなる。本発明のアクセス制御装置は、ＣＰＵ１００１と周辺回路１００２における属性を切り替える際の不整合を抑制し、ＣＰＵ１００１と周辺回路１００２のデバイス１００３に対するアクセス制御を、適切に制御する。
【００４８】
なお、アクセス制御部１００４は、デバイス１００３へアクセスを許可するか否かを判定する方法として、属性を比較するとして説明した。アクセス制御部１００４は、他の判定方法を用いてもよい。例えば、アクセス制御部１００４は、アクセス制御ルールを参照し、アクセスコマンドに含まれる属性に対応するアドレス範囲を取得し、アクセスコマンドに含まれるアドレスが、取得したアドレス範囲に含まれるか否かを判定してもよい。アクセス制御部１００４は、アクセス先のアドレスがアドレス範囲に含まれる場合、アクセスを許可し、アドレス範囲に含まれない場合、アクセスを拒否する。
【００４９】
（実施の形態２）
図６は、本発明の実施の形態２におけるアクセス制御装置を備えた、情報処理装置の構成の一例を示すブロック図である。
【００５０】
図６に示した情報処理装置は、ＣＰＵ１１０１、周辺回路１００２、デバイス１００３、アクセス制御装置１１００を備えている。アクセス制御装置１１００は、アクセス制御部１００４、属性記憶部１００５、更新制御部１００７、状態取得部１１０６、切り替え許可部１００８を備えている。図６において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【００５１】
ＣＰＵ１１０１は、コンピュータプログラムを読み出し、コンピュータプログラムが規定する処理を実行する。ＣＰＵ１１０１は、必要に応じてデバイス１００３へアクセスを行い、周辺回路１００２に処理を要求する。ＣＰＵ１１０１は、現在実行中の属性を切り替えると決定し、切り替え処理の開始が許可された後、切り替え処理を開始する。
【００５２】
状態取得部１１０６は、周辺回路１００２からデバイス１００３へのアクセスコマンドの状態を取得する。状態取得部１１０６は、更新制御部１００７と切り替え許可部１００８から状態取得要求を受け取り、周辺回路１００２のアクセスコマンドの状態を取得する。また、状態取得部１００６は、取得したアクセスコマンドの状態を、状態取得要求の送信元である送信した更新制御部１００７または切り替え許可部１００８に通知する。実施の形態１との違いは、切り替え許可部１００８からの状態取得要求に対応している点である。アクセスコマンドの状態とは、周辺回路１００２からデバイスへのアクセスコマンドの処理状態である。例えば、周辺回路１００２が保持している、デバイス１００３へ送信前の、処理待ちのアクセスコマンドの個数である。また、例えば、周辺回路１００２が保持している、デバイス１００３へ送信前の、処理待ちのアクセスコマンドの有無である。
【００５３】
切り替え許可部１００８は、周辺回路１００２からデバイス１００３へのアクセスコマンドの状態に応じて、ＣＰＵ１１０１が切り替え処理を開始するタイミングを制御し、ＣＰＵ１１０１に対して、属性の切り替え処理の開始を許可する。切り替え処理を開始すると、周辺回路１００２は実行を停止するため、切り替え許可部１００８は、切り替え前後の周辺回路１００２の実行停止時間が適切な範囲となるよう制御する。
【００５４】
図７は、アクセス制御装置１２００を備えた情報処理装置が、ＣＰＵ１１０１と周辺回路１００２における属性を切り替える、処理の流れの一例を示すフロー図である。
【００５５】
まず、ＣＰＵ１１０１が、現在実行中の属性を切り替えると決定し、切り替え処理を開始する。
【００５６】
ステップＳ３００１で、ＣＰＵ１１０１は、切り替え許可部１００８に、切り替え許可要求を通知する。切り替え許可部１００８は、ＣＰＵ１１０１から、切り替え許可要求を受け取る。
【００５７】
ステップＳ３００２で、切り替え許可部１００８は、状態取得部１１０６に、状態取得要求を通知する。状態取得部１１０６は、切り替え許可部１００８から状態取得要求を受け取り、周辺回路１００２のアクセスコマンドの状態を取得する。次に、状態取得部１１０６は、取得したアクセスコマンドの状態を、切り替え許可部１００８に通知する。
【００５８】
ステップＳ３００３で、切り替え許可部１００８は、状態取得部１１０６から、周辺回路１００２のアクセスコマンドの状態を受け取り、処理待ちのアクセスコマンドの状態を判定する。処理待ちのアクセスコマンドが所定数以下である場合（ステップＳ３００３がＹ）、属性の切り替え処理を開始するタイミングと決定する。一方、処理待ちのアクセスコマンドが所定数以下でない場合（ステップＳ３００３がＮ）、切り替え許可部１００８は、ステップＳ３００４に遷移する。
【００５９】
ステップＳ３００４で、切り替え許可部１００８は、あらかじめ設定された時間のタイムアウトが発生したか否かを判定する。タイムアウトが発生していない場合（ステップＳ３００４がＮ）、切り替え許可部１００８は、ステップＳ３００２に遷移して、処理を繰り返す。タイムアウトが発生した場合（ステップＳ３００４がＹ）、切り替え許可部１００８は、属性の切り替え処理を開始するタイミングと決定する。
【００６０】
ステップＳ３００５で、切り替え許可部１００８は、ＣＰＵ１１０１に、切り替え許可を通知し、属性の切り替え処理の開始を許可する。切り替え処理の開始を許可されたＣＰＵ１１０１は、ステップＳ３００５に続いて、図２のステップＳ１００１から処理を行う。図２の詳細については、実施の形態１として説明した。
【００６１】
以上により、周辺回路からデバイスへのアクセスコマンドの状態に応じて、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制することができる。これにより、ＣＰＵと周辺回路が属性を共有する情報処理装置において、周辺回路からデバイスへのアクセスを、適切に制御することが可能となる。
【００６２】
本発明のアクセス制御装置は、処理待ちのアクセスコマンド数に応じて、切り替え処理を開始するタイミングを制御する。周辺回路１００２は、保持している処理待ちのアクセスコマンド数が所定数以下のタイミングで、ＣＰＵ１１０１から、切り替え準備要求を受け取る。すなわち、ステップＳ１００２で、周辺回路１００２が実行停止してから、ステップＳ１００９で、ＣＰＵ１１０１と周辺回路１００２が切り替え後の属性で実行開始するまでの時間を、適切な範囲に制限することができる。本発明のアクセス制御装置は、属性の切り替え前後の、周辺回路１００２のリソースを、より有効に活用することが可能となる。
【００６３】
なお、本実施の形態において、ステップＳ３００４で、タイムアウトが発生したか否かを判定しているが、アクセスコマンド数が永久に所定数以下にならない場合の対策方法の１つである。
【００６４】
（実施の形態３）
図８は、本発明の実施の形態３におけるアクセス制御装置を備えた、情報処理装置の構成の一例を示すブロック図である。
【００６５】
図８に示した情報処理装置は、ＣＰＵ１２０１、周辺回路１００２、デバイス１００３、アクセス制御装置１２００を備えている。アクセス制御装置１２００は、アクセス制御部１００４、属性記憶部１００５、更新制御部１００７、状態取得部１１０６、切り替え許可部１００８、モード判定部１００９、モード記憶部１０１０を備えている。図８において、図６と同じ構成要素については同じ符号を用い、説明を省略する。
【００６６】
ＣＰＵ１２０１は、コンピュータプログラムを読み出し、コンピュータプログラムが規定する処理を実行する。ＣＰＵ１２０１は、必要に応じてデバイス１００３へアクセスを行い、周辺回路１００２に処理を要求する。ＣＰＵ１２０１は、現在実行中の属性を切り替えると決定し、切り替え処理の開始が許可された後、切り替え処理を開始する。
【００６７】
モード記憶部１０１０は、アクセス制御装置１２００における属性を切り替える処理のモードを記憶する。モードには、効率モードと、通常モードとがある。例えば、情報処理装置が、高速モードで動作中である場合、アクセス制御装置１２００は、効率モードとして動作し、属性切り替え前後の周辺回路１００２の実行停止時間を短くする。
【００６８】
モード判定部１００９は、モード記憶部１０１０に記憶されているモードに基づいて、切り替え許可部１００８による処理を行うか否かを判定する。モード判定部１００９は、ＣＰＵ１２０１から、切り替え許可要求を受け取り、モード判定を行う。判定結果が効率モードである場合、モード判定部１００９は、切り替え許可部１００８に、切り替え許可要求を通知する。判定結果が通常モードである場合、モード判定部１００９は、切り替え許可部１００８に処理を要求することなく、ＣＰＵ１２０１に、切り替え許可を通知する。
【００６９】
図９は、アクセス制御装置１２００を備えた情報処理装置が、ＣＰＵ１２０１と周辺回路１００２における属性を切り替える、処理の流れの一例を示すフロー図である。
【００７０】
まず、ＣＰＵ１２０１が、現在実行中の属性を切り替えると決定し、切り替え処理を開始する。
【００７１】
ステップＳ４００１で、ＣＰＵ１２０１は、モード判定部１００９に、切り替え許可要求を通知する。モード判定部１００９は、ＣＰＵ１２０１から、切り替え許可要求を受け取る。
【００７２】
ステップＳ４００２で、モード判定部１００９は、モード記憶部１０１０に記憶されているモードを取得する。
【００７３】
ステップＳ４００３で、モード判定部１００９は、取得したモードを判定する。
【００７４】
通常モードの場合（ステップＳ４００３がＮ）、ステップＳ４００４で、モード判定部１００９は、ＣＰＵ１２０１に、切り替え許可を通知し、属性の切り替え処理の開始を許可する。切り替え処理の開始を許可されたＣＰＵ１２０１は、ステップＳ４００４に続いて、図２のステップＳ１００１から処理を行う。図２の詳細については、実施の形態１として説明した。
【００７５】
効率モードの場合（ステップＳ４００３がＹ）、ステップＳ４００５で、モード判定部１００９は、ＣＰＵ１２０１から受け取った切り替え許可要求を、切り替え許可部１００８に通知する。切り替え許可部１００８は、モード判定部１００９から、切り替え許可要求を受け取る。
【００７６】
ステップＳ４００６で、切り替え許可部１００８は、状態取得部１１０６に、状態取得要求を通知する。状態取得部１１０６は、切り替え許可部１００８から状態取得要求を受け取り、周辺回路１００２のアクセスコマンドの状態を取得する。次に、状態取得部１１０６は、取得したアクセスコマンドの状態を、切り替え許可部１００８に通知する。
【００７７】
ステップＳ４００７で、切り替え許可部１００８は、状態取得部１１０６から、周辺回路１００２のアクセスコマンドの状態を受け取り、処理待ちのアクセスコマンドの状態を判定する。処理待ちのアクセスコマンドが所定数以下である場合（ステップＳ４００７がＹ）、属性の切り替え処理を開始するタイミングと決定する。一方、処理待ちのアクセスコマンドが所定数以下でない場合（ステップＳ４００７がＮ）、切り替え許可部１００８は、ステップＳ４００８に遷移する。
【００７８】
ステップＳ４００８で、切り替え許可部１００８は、あらかじめ設定された時間のタイムアウトが発生したか否かを判定する。タイムアウトが発生していない場合（ステップＳ４００８がＮ）、切り替え許可部１００８は、ステップＳ４００６に遷移して、処理を繰り返す。タイムアウトが発生した場合（ステップＳ４００８がＹ）、切り替え許可部１００８は、属性の切り替え処理を開始するタイミングと決定する。
【００７９】
ステップＳ４００９で、切り替え許可部１００８は、モード判定部１００９を介して、ＣＰＵ１２０１に、切り替え許可を通知し、属性の切り替え処理の開始を許可する。切り替え処理の開始を許可されたＣＰＵ１２０１は、ステップＳ４００９に続いて、図２のステップＳ１００１から処理を行う。図２の詳細については、実施の形態１として説明した。
【００８０】
以上により、周辺回路からデバイスへのアクセスコマンドの状態に応じて、ＣＰＵと周辺回路における現在実行中の属性を切り替えるタイミングを制御し、属性の不整合を抑制することができる。これにより、ＣＰＵと周辺回路が属性を共有する情報処理装置において、周辺回路からデバイスへのアクセスを、適切に制御することが可能となる。
【００８１】
本発明のアクセス制御装置は、属性を切り替える際の処理のモードを設定することが可能であり、設定されたモードに従って処理を切り替える。これにより、アクセス制御装置を備えた情報処理装置を使用する、ユースケースに基づいて、最適な機能を提供する効果がある。例えば、効率モードを選択することで、属性切替え前後の周辺回路の実行停止時間を短くすることができ、周辺回路のリソースをより有効に活用できる。また、通常モードを選択することで、アクセスコマンド数が所定値以下になるのを待たずに、ＰＵと周辺回路における現在実行中の属性を切り替える。また、切り替え許可部などの使用しないモジュールの動作を停止し、電力消費を削減することが可能となる。
【００８２】
また、全ての実施の形態において、情報処理装置を構成する各機能ブロックは、典型的には、ＣＰＵやメモリを要した情報機器上で動作するプログラムとして実現される。その機能の一部または全部は、集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として実現してもよい。これらのＬＳＩは、個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００８３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（ＦＩＥＬＤ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＧＡＴＥ  ＡＲＲＡＹ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【００８４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【００８５】
本発明にかかるアクセス制御装置は、ＣＰＵと周辺回路における属性を切り替えるタイミングを制御する機能を有し、情報処理装置、パーソナルコンピュータとして有用である。また、テレビ、ビデオデッキ、ハードディスクレコーダー、携帯電話、カーナビゲーションシステム、固定電話、コピー機、タッチパネルつきモバイル端末、ゲーム機などの用途に応用できる。
【符号の説明】
【００８６】
１０００，１１００，１２００    アクセス制御装置
１００１，１１０１，１２０１    ＣＰＵ
１００２    周辺回路
１００３    デバイス
１００４    アクセス制御部
１００５    属性記憶部
１００６，１１０６    状態取得部
１００７    更新制御部
１００８    切り替え許可部
１００９    モード判定部
１０１０    モード記憶部
【図１】
2014211662.tif 000003
【図２】
2014211662.tif 000004
【図３】
2014211662.tif 000005
【図４】
2014211662.tif 000006
【図５】
2014211662.tif 000007
【図６】
2014211662.tif 000008
【図７】
2014211662.tif 000009
【図８】
2014211662.tif 000010
【図９】
2014211662.tif 000011