(57)【特許請求の範囲】
【請求項１】
複数のマスタの共有メモリへのアクセスを制御するアクセス制御装置であって、
前記複数のマスタのうちの第１マスタからの前記共有メモリに対するアクセス要求に対し、前記第１マスタに所定期間毎に予め割り当てられたリソースを使用してアクセスを実行させ、前記第１マスタに予め割り当てられたリソース以外のリソースである空きリソースが使用可能な場合には、前記空きリソースを使用してアクセスを実行させる第１アクセス手段と、
前記第１アクセス手段によって前記第１マスタによる前記空きリソースを使用したアクセスが実行されていた場合に、前記空きリソースを使用したアクセスを行なった所定期間より後の所定期間において、前記第１マスタとは異なる第２マスタからの、前記共有メモリへのアクセス要求に対して、前記第１マスタに予め割り当てられたリソースから、前記第１マスタが使用した空きリソースの分を一次的に減じ、減じた分のリソースを使用して前記第２マスタにアクセスを実行させる第２アクセス手段とを備え、
前記第２アクセス手段は、前記第２マスタに予め割り当てられたリソースを使い切った後で、前記第１マスタから減じたリソースを使用する
ことを特徴とするアクセス制御装置。
【請求項２】
複数のマスタの共有メモリへのアクセスを制御するアクセス制御集積回路であって、
前記複数のマスタのうちの第１マスタからの前記共有メモリに対するアクセス要求に対し、前記第１マスタに所定期間毎に予め割り当てられたリソースを使用してアクセスを実行させ、前記第１マスタに予め割り当てられたリソース以外のリソースである空きリソースが使用可能な場合には、前記空きリソースを使用してアクセスを実行させる第１アクセス手段と、
前記第１アクセス手段によって前記第１マスタによる前記空きリソースを使用したアクセスが実行されていた場合に、前記空きリソースを使用したアクセスを行なった所定期間より後の所定期間において、前記第１マスタとは異なる第２マスタからの、前記共有メモリへのアクセス要求に対して、前記第１マスタに予め割り当てられたリソースから、前記第１マスタが使用した空きリソースの分を一次的に減じ、減じた分のリソースを使用して前記第２マスタにアクセスを実行させる第２アクセス手段とを備え、
前記第２アクセス手段は、前記第２マスタに予め割り当てられたリソースを使い切った後で、前記第１マスタから減じたリソースを使用する
ことを特徴とするアクセス制御集積回路。
【請求項３】
複数のマスタの共有メモリへのアクセスを制御するアクセス制御方法であって、
前記複数のマスタのうちの第１マスタからの前記共有メモリに対するアクセス要求に対し、前記第１マスタに所定期間毎に予め割り当てられたリソースを使用してアクセスを実行させ、前記第１マスタに予め割り当てられたリソース以外のリソースである空きリソースが使用可能な場合には、前記空きリソースを使用してアクセスを実行させる第１アクセスステップと、
前記第１アクセスステップにおいて前記第１マスタによる前記空きリソースを使用したアクセスが実行されていた場合に、前記空きリソースを使用したアクセスを行なった所定期間より後の所定期間において、前記第１マスタとは異なる第２マスタからの、前記共有メモリへのアクセス要求に対して、前記第１マスタに予め割り当てられたリソースから、前記第１マスタが使用した空きリソースの分を一次的に減じ、減じた分のリソースを使用して前記第２マスタにアクセスを実行させる第２アクセスステップとを含み、
前記第２アクセスステップは、前記第２マスタに予め割り当てられたリソースを使い切った後で、前記第１マスタから減じたリソースを使用する
ことを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有メモリに複数のマスタがアクセスする場合におけるアクセス制御を実行するアクセス制御装置に関し、特にアクセス要求の発生が予測困難なマスタのアクセス要求に対する即応性を高める技術に関する。
【背景技術】
【０００２】
所定期間内に一定レートのアクセスを保証する必要があるマスタと、メモリへのアクセス要求の頻度が不定期で、予測困難なマスタ（以下、プロセッサという）が、同一のメモリを共有するシステムがある。このようなシステムの場合、マスタとプロセッサのメモリへのアクセス競合を防ぐために、マスタとプロセッサの調停を行う回路を備える。このような調停回路においては、マスタとプロセッサのアクセスに関する優先順位を定めてアクセス制御を行うことが多い。以下の特許文献１及び特許文献２には、このようなシステムにおいて、プロセッサのアクセス要求に対する即応性を改善する技術が開示されている。
【０００３】
例えば特許文献１では、マスタに対しては所定頻度でのアクセスのみを許し、通常はプロセッサのアクセスを優先する技術が開示されている。また、特許文献２には、通常はプロセッサのアクセス優先順位を低く、マスタのアクセス優先順位を高く設定するが、プロセッサのアクセス要求が発生し、共有メモリへのアクセスが通った場合に、その次のプロセッサのアクセス要求に対しては、他のマスタよりも優先順位を高くすることで、プロセッサのアクセス要求に対する即応性を高める技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】日本国特許公開２０００−２０７３５５号公報
【特許文献２】日本国特許公開２００２−３０４３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、上記特許文献１のように周期的にアクセスを制御した場合に、突発的にアクセス要求が発生するタイプのプロセッサからのアクセス要求については、周期的なアクセス制御を必要とするマスタのアクセスの合間に対処することになる。マスタに割り当てられている時間帯においてプロセッサからのアクセス要求が発生した場合には、そのアクセス要求は遅延することとなり、アクセス要求に対する即応性に問題があるといえる。また、特許文献２に示した技術の場合においては、プロセッサのアクセス要求を優先したためにマスタの一定レートのアクセスを保証できない可能性がある。
【０００６】
そこで、上記問題に鑑みて、本発明においては従来よりもプロセッサからのアクセス要求に対する即応性を高めることができるアクセス制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明は、複数のマスタの共有メモリへのアクセスを制御するアクセス制御装置であって、第１マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第１マスタに前記一定レート以上でのアクセスを実行させる第１アクセス手段と、前記第１アクセス手段によって前記第１マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第１アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第１マスタとは異なる第２マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第２マスタに前記共有メモリにアクセスさせる第２アクセス手段とを備えることを特徴としている。
【発明の効果】
【０００８】
上述のような構成によって、第１アクセス手段は、一定レートでアクセスを実行する第１マスタに対して、共有メモリにアクセスするためのリソースが余っており、次のアクセス要求がある場合には、本来設定されているレートを超えてアクセスを実行する。すると第１マスタについては、共有メモリに対して本来よりも過剰にアクセスを実行していることになり、周期的に実行しなけらばならないアクセスについてマージンができることとなる。そこで、そのマージンがある状態で、第２マスタからのアクセス要求があった場合に、第１マスタに割り当てられているリソースを第２マスタに割り当てることで第２マスタに対するアクセス要求への即応性を高めることができる。こうすることで第２マスタが共有メモリに対するアクセス要求の発生が予測不可能なプロセッサの場合に、プロセッサのアクセス要求に対して従来よりも即応性を高めることができる。
【０００９】
また、前記アクセス制御装置は、更に、前記第１マスタが前記一定レート以上でのアクセスを実行していた場合に一定レートを超えて前記第１マスタが前記共有メモリにアクセスした回数をカウントする先行アクセスカウント手段を備え、前記第２アクセス手段は、前記先行アクセスカウント手段でカウントされている回数が１以上の場合に、前記第２マスタを前記共有メモリにアクセスさせることとしてもよい。
【００１０】
これにより、アクセス制御装置は、一定レート以上でのアクセスを実行していることをアクセス回数をカウントし、このアクセスカウンタで、第２マスタのアクセス要求を通すかどうかを判断することができるようになる。
また、前記先行アクセスカウント手段は、前記第２アクセス手段が、前記第２マスタに前記共有メモリにアクセスさせた場合に、カウントしているアクセス回数をデクリメント、もしくは０にリセットすることとしてもよい。
【００１１】
これにより、アクセス制御装置は、第２マスタの共有メモリへの過剰なアクセスが発生することを防ぎ、第１マスタの一定レートでの共有メモリへのアクセスを保証することができる。
また、前記アクセス制御装置は、更に、前記一定レートを指定するためのレートパラメータを保持するパラメータ保持手段を備え、前記第１アクセス手段は、前記パラメータ保持手段に保持されている一定レートに基づいて、前記第１マスタに前記一定レートのアクセスを実行させることとしてもよい。
【００１２】
このパラメータ保持手段を備えることにより、第１アクセス手段は、一定レートのアクセスを間違えることなく保証でき、また、パラメータ保持手段の保持するパラメータをユーザが自由に設定できる構成にすれば、データアクセスを制御する装置としての汎用性が高まる。
また、前記アクセス制御装置は、更に、前記第１のマスタ及び前記第２のマスタは、前記アクセス用のリソースを共有し、共有したリソースの範囲内で、前記第１のマスタは前記第２のマスタに前記共有メモリへのアクセス権を貸し借りさせて前記共有メモリにアクセスさせるアクセス統括手段を備えることとしてもよい。
【００１３】
このアクセス統括手段を備えることにより、第１マスタのアクセスと第２のマスタのアクセスにおいて、リソースの貸し借りを行うことができ、更に第２マスタのアクセス要求に対する即応性を高めることが可能となる。
また、前記アクセス制御装置は、更に、前記第１のマスタ及び第２のマスタのアクセス保証期間の情報と、アクセス保証期間許容できる最大のアクセス数を表す許容アクセス頻度情報と、アクセス権の借り入れを行うことができる最大期間の情報と、一度アクセス権を借入してから次に借入できるまでの時間情報とを保持する借入パラメータ保持手段を備え、前記アクセス統括手段は、前記借入パラメータ保持手段に保持されている各情報に基づいて、アクセス権の貸し借りを実行し前記共有メモリにアクセスさせることとしてもよい。
【００１４】
この借入パラメータ保持手段を備えることにより、ユーザが自由にそのパラメータを設定できる構成にすれば、データアクセスを制御する装置としてその汎用性を高めることができる。
また、複数のマスタの共有メモリへのアクセスを制御するアクセス制御集積回路であって、第１マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第１マスタに前記一定レート以上でのアクセスを実行させる第１アクセス手段と、前記第１アクセス手段によって前記第１マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第１アクセス手段で前記一定レートでのアクセス用に確保されたリソースを、前記第１マスタとは異なる第２マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第２マスタに前記共有メモリにアクセスさせる第２アクセス手段とを備えることとしてもよい。
【００１５】
この集積回路により、複数のマスタからのアクセス要求を制御し、第１マスタが一定レート以上でのアクセスを実行していた場合に、第２マスタのアクセス要求信号を優先して通すことができるようになるので、第２マスタがなるべくの即応性を求められるプロセッサの場合に、その即応性を高めることができる。
また、複数のマスタの共有メモリへのアクセスを制御するアクセス制御方法であって、第１マスタの前記共有メモリへの一定レートでのアクセスを担保すべく当該共有メモリへのアクセス用のリソースを確保してアクセスを実行させ、前記一定レートでのアクセス用のリソース以外のリソースが利用可能な場合には、前記一定レートでのアクセス用のリソース以外のリソースも確保して前記第１マスタに前記一定レート以上でのアクセスを実行させる第１アクセスステップと、前記第１アクセスステップにおいて前記第１マスタの前記一定レート以上でのアクセスが実行されていた場合に、当該一定レートを超えるアクセスにおいてなされたデータ転送において当該一定レートでのアクセスにおいてなされるデータ転送量を超えた分だけの転送量を上限として、前記第１アクセスステップにおいて前記一定レートでのアクセス用に確保されたリソースを、前記第１マスタとは異なる第２マスタの前記共有メモリへのアクセスを実行するためのリソースとして確保し、前記第２マスタに前記共有メモリにアクセスさせる第２アクセスステップとを含むこととしてもよい。
【００１６】
当該方法を実行することにより、複数のマスタ間において、即応性を求められるマスタに対してのアクセスを、他のマスタが本来一定レートでアクセスを行うところを当該レートを超えてアクセスを実行していた場合に、実行することができるので、即応性を求められるマスタのアクセスのタイミングを遅延することなく実行することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るアクセス制御装置１００の機能構成を示した機能ブロック図である。
【図２】（ａ）は、従来のアクセスのタイミングを示したタイミングチャートであり、（ｂ）は、本発明におけるアクセスのタイミングを示したタイミングチャートである。
【図３】リクエスト制限部１３０の機能構成を示した機能ブロック図である。
【図４】１アクセス保証期間内におけるマスタ選択部の動作を示したフローチャートである。
【図５】調停部１４０のアクセス要求の調停に関する動作を示したフローチャートである。
【図６】リクエスト制限部のアクセス要求を受けた際の動作を示したフローチャートである。
【図７】実施の形態１に係るアクセスにおける各信号線を流れるデータの状態の具体例を示したタイミングチャートである。
【図８】実施の形態２に係るアクセス制御装置の機能構成を示した機能ブロック図である。
【図９】実施の形態２における統括リクエスト制限部の機能構成を示した機能ブロック図である。
【図１０】リクエスト制限部におけるアクセス権の状態の遷移を示す状態遷移図である。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態であるアクセス制御装置について図面を用いて説明する。
＜概要＞
図１に示すような複数のアクセス装置が共有メモリにアクセスする場合において、アクセス競合を防ぐために、調停する装置がある。
図１においてプロセッサとは、共有メモリに対するアクセス要求がいつ発生するか予測がつきにくいアクセス装置である。一方、マスタはあるアクセス保証期間内において、ある一定レートでの共有メモリに対するアクセスを保証しないといけないアクセス装置である。具体例をあげると、例えばＢＤ（Blu-ray Disc）プレーヤで、プロセッサはユーザからのリモコン操作に対する応答を実行し、マスタは例えば、動画のデコードを実行するという具合である。
【００１９】
こういう複数のアクセス装置が共有メモリにアクセスする場合に従来においては、図２（ａ）に示すように、各マスタがアクセスを実行する時間帯をそれぞれのマスタに割り振って制御することがアクセス競合を回避する一手法であった。図２（ａ）の時間Ｔ０〜Ｔ４に示す期間が、アクセス保証期間ＴＣであり、プロセッサ（Ｐ）、マスタ（Ｍ１）、マスタ（Ｍ２）、マスタ（Ｍ３）が順にアクセスを実行していることがわかる。
【００２０】
しかし、各マスタに設定するレートはある程度余裕をもって設けられるため必ずしもアクセス保証期間内に保証される時間帯全てを使ってアクセスしないこともある。例えば、時間Ｔ４〜Ｔ９で示すアクセス保証期間ＴＣの時間Ｔ７〜Ｔ８に示すように、Ｍ２が共有メモリにアクセスする時間帯においてＭ２からのアクセス要求がないため、空白期間ができてしまっているので無駄が発生している。
【００２１】
そこで、本発明においては、図２（ｂ）に示すように、アクセス保証期間内ＴＣ内において、アクセスのためのリソースがあいている状態で、アクセス要求が発生した場合には、マスタは、自己に設定されたレート以上のアクセスを実行する。こうすると一定レートで行っている作業に関して余裕ができる。図２（ｂ）の場合で示すと、時間Ｔ７〜Ｔ８において、本来時間Ｔ１０〜Ｔ１３においてなされるＭ１のアクセスが先行して行われているので、時間Ｔ９以降において、Ｍ１についてはアクセスに関するマージンがあることになる。すると、Ｍ１のアクセス保証期間の一定レートでのアクセスに用いるリソースを使ってプロセッサからのアクセス要求を通すことで、プロセッサからのアクセス要求に対する即応性を高めることができる。
【００２２】
なお、ここで、従来だとＴ９以降から行うアクセスのうち、先行するアクセスをＭ１が行っていたが、これは必ずＭ１である必要はなく、Ｍ２、Ｍ３の何れでもアクセス要求があるならどれでもかまわない。また、図面上、従来の場合と比較しやすくするために、時間Ｔ７〜Ｔ８に、本来時間Ｔ１０〜Ｔ１３においてＭ１が行うアクセスを、実行するような図面にしたが、これは、通常、Ｔ６からは本来Ｍ２のアクセスが実行され、Ｍ３のアクセスが実行され、その後に行うのが通常の制御である。
＜実施の形態１＞
＜構成＞
図１は、本発明に係るアクセス制御装置の機能構成を示した機能ブロック図である。
【００２３】
図１に示すように、アクセス制御装置１００は、プロセッサ１１０と、マスタ１１１、マスタ１１２、マスタ１１３の共有メモリへのアクセスを制御する装置であって、マスタ選択部１２１、１２２、１２３と、リクエスト制限部１３０、１３１、１３２、１３３と調停部１４０とを含んで構成される。
上述の第１マスタは、マスタ１１１、マスタ１１２、マスタ１１３が該当し、第２マスタはプロセッサ１１０が該当する。第１マスタがマスタ１１１の場合に第１アクセス手段において、一定レートのアクセスのためのリソースの確保はリクエスト制限部１３１が行い、一定レート以上のアクセスについては、リクエスト制限部１３１を通さずにマスタ１１１から直接調停部１４０に対して直接出力されるアクセス要求に対するアクセス許可によって実現される。そして、第２アクセス手段は、マスタ選択部１２１とリクエスト制限部１３１と調停部１４０の組み合わせによって実現される。また、上述の先行アクセスカウント手段は、第１マスタがマスタ１１１の場合は、マスタ選択部１２１によって実現される。
【００２４】
プロセッサ１１０は、共有メモリへのアクセス要求が不定期かつ不規則に発生する装置であり、図に示すように信号線１０と１２を介してアクセス制御装置１００の各部と接続されている。
マスタ１１１は、あるアクセス保証期間ＴＣ内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべきアクセス装置であり、マスタ選択部１２１及び調停部１４０と信号線２０、２２を介して接続されている。
【００２５】
マスタ１１２は、アクセス保証期間ＴＣ内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべき装置であり、マスタ選択部１２２及び調停部１４０と信号線３０、３２を介して接続されている。
マスタ１１３は、アクセス保証期間ＴＣ内に一定のアクセスを保証する必要がある、即ち、共有メモリへのアクセスを一定レートで実行すべき装置であり、マスタ選択部１２３及び調停部１４０と信号線４０、４２を介して接続されている。
【００２６】
ここでアクセス保証期間ＴＣは各マスタ別に設定されるが、本実施の形態においては、簡略化のために、全てのマスタ共通で１０クロックとした場合を例に説明する。
マスタ選択部１２１は、プロセッサ１１０とリクエスト制限部１３１と調停部１４０と接続されており、マスタ１１２からのアクセス要求とプロセッサ１１０からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部１３１に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部１２１は、マスタ１１１に設定されるアクセス保証期間である１０クロックをカウントする機能を有する。また、リクエスト制限部１３１を通して許可されたアクセスの回数（以降アクセスカウンタともいう）を調停部１４０から受け付けたアクセス許可信号２３に基づいてカウントする機能を有する。また、リクエスト制限部１３１を通さずに許可されたアクセス回数（以降先行アクセスカウンタともいう）を調停部１４０からのアクセス許可信号５１に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが１以上で、アクセスカウンタとの合計がマスタ１１１のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ１１１からのアクセス要求を止めて、いつでもプロセッサ１１０からのアクセス要求を通せるようにし、プロセッサ１１０からのアクセス要求を受けた場合には、マスタ１１１からのアクセス要求に替えてプロセッサ１１０からのアクセス要求をリクエスト制限部１３１に出力する。また、リクエスト制限部１３１を介して、プロセッサ１１０に対するアクセス許可信号を調停部１４０から受け付けた場合には、先行アクセスカウンタを１減算する機能を有する。さらに、アクセス保証期間である１０クロックが経過する毎に、先行アクセスカウンタから、マスタ１１１のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを０にリセットする。ただし、先行アクセスカウンタが負数となる場合は、０にリセットする。
【００２７】
マスタ選択部１２２は、プロセッサ１１０とリクエスト制限部１３２と調停部１４０と接続されており、マスタ１１２からのアクセス要求とプロセッサ１１０からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部１３２に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部１２２は、マスタ１１２に設定されるアクセス保証期間である１０クロックをカウントする機能を有する。また、アクセスカウンタを調停部１４０から受け付けたアクセス許可信号３３に基づいてカウントする機能を有する。また、マスタ１１２の先行アクセスカウンタを調停部１４０からのアクセス許可信号５２に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが１以上で、アクセスカウンタとの合計がマスタ１１２のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ１１２からのアクセス要求を止めて、いつでもプロセッサ１１０からのアクセス要求を通せるようにし、プロセッサ１１０からのアクセス要求を受けた場合には、マスタ１１２からのアクセス要求に替えてプロセッサ１１０からのアクセス要求をリクエスト制限部１３２に出力する。また、リクエスト制限部１３２を介して、プロセッサ１１０に対するアクセス許可信号３５を調停部１４０から受け付けた場合には、先行アクセスカウンタを１減算する機能を有する。さらに、アクセス保証期間である１０クロックが経過する毎に、先行アクセスカウンタから、マスタ１１２のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを０にリセットする。ただし、先行アクセスカウンタが負数となる場合は、０にリセットする。
【００２８】
マスタ選択部１２３は、プロセッサ１１０とリクエスト制限部１３３と調停部１４０と接続されており、マスタ１１３からのアクセス要求とプロセッサ１１０からのアクセス要求があった場合に、いずれのアクセス要求をリクエスト制限部１３３に送出するかを選択し、送出する機能を有する。具体的には、マスタ選択部１２３は、マスタ１１３に設定されるアクセス保証期間である１０クロックをカウントする機能を有する。また、アクセスカウンタを調停部１４０から受け付けたアクセス許可信号４３に基づいてカウントする機能を有する。また、マスタ１１３の先行アクセスカウンタを、調停部１４０からのアクセス許可信号５３に基づいてカウントする機能とを有する。そして、先行アクセスカウンタが１以上で、アクセスカウンタとの合計がマスタ１１３のアクセス保証期間内に必要なアクセス回数と同値になった時点で、マスタ１１３からのアクセス要求を止めて、いつでもプロセッサ１１０からのアクセス要求を通せるようにし、プロセッサ１１０からのアクセス要求を受けた場合には、マスタ１１３からのアクセス要求に替えてプロセッサ１１０からのアクセス要求をリクエスト制限部１３３に出力する。また、リクエスト制限部１３３を介して、プロセッサ１１０に対するアクセス許可信号４５を調停部１４０から受け付けた場合には、先行アクセスカウンタを１減算する機能を有する。さらに、アクセス保証期間である１０クロックが経過する毎に、先行アクセスカウンタから、マスタ１１３のアクセス保証期間内に必要なアクセス回数からアクセスカウンタの数値を減算した値を、減算すると共に、アクセスカウンタを０にリセットする。ただし、先行アクセスカウンタが負数となる場合は、０にリセットする。
【００２９】
リクエスト制限部１３０は、プロセッサ１１０のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、プロセッサ１１０からのアクセス要求を調停部１４０に対して送出するかどうかを判定し、送出する機能を有する。ここでは、リクエスト制限部１３０は、プロセッサ１１０からのアクセス要求を１０クロック中に１クロックの割合で、アクセス要求を調停部１４０に出力する。それ以外のタイミングでは、アクセス要求をマスクする、即ち調停部１４０に出力しない。なお、ここでプロセッサは１０クロックに１回の割合でアクセスするとしたが、プロセッサからのアクセス要求についてはアクセス保証期間というものは特に設定する必要はなく、常にリクエスト制限部１３０においてアクセス要求をマスクする制御を行ってもよい。その場合、他のマスタが必要とするレートの残りのリソースをプロセッサに割り当てることになる。
【００３０】
リクエスト制限部１３１は、マスタ１１１のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ１１２からのアクセス要求を調停部１４０に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部１３１は、１アクセス保証期間を１０クロックとして管理し、１０クロック中３回調停部１４０からのアクセス許可信号を受けるまで、マスタ１１２の共有メモリへのアクセスを出力し、１０クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部１４０に出力しない。リクエスト制限部１３１は出力したアクセス要求に対する調停部１４０からのアクセス許可信号２３の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部１３１は、調停部１４０からのアクセス許可信号２３をマスタ選択部１２１に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ１１０に対するものである場合と、マスタ１１１に対するものである場合がある。
【００３１】
リクエスト制限部１３２は、マスタ１１２のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ１１２からのアクセス要求を調停部１４０に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部１３２は、１０クロック中３回調停部１４０からのアクセス許可信号を受けるまで、マスタ１１２の共有メモリへのアクセスを出力し、１０クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部１４０に出力しない。リクエスト制限部１３２は出力したアクセス要求に対する調停部１４０からのアクセス許可信号３３の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部１３２は、調停部１４０からのアクセス許可信号３３をマスタ選択部１２２に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ１１０に対するものである場合と、マスタ１１２に対するものである場合がある。
【００３２】
リクエスト制限部１３３は、マスタ１１３のアクセス保証期間内に必要なアクセス回数を記憶しており、当該値を実際のアクセス回数が超えているかどうかに基づいて、マスタ１１３からのアクセス要求を調停部１４０に対して送出するかどうかを判定し、判定の結果、送出してよい場合にはアクセス要求を送出する機能を有する。ここではリクエスト制限部１３３は、１０クロック中３回調停部１４０からのアクセス許可信号を受けるまで、マスタ１１３の共有メモリへのアクセスを出力し、１０クロック中それ以降のアクセス要求についてはマスクする、即ち、調停部１４０に出力しない。リクエスト制限部１３３は出力したアクセス要求に対する調停部１４０からのアクセス許可信号４３の回数をカウントしており、このカウント回数により上記判断を行う。また、リクエスト制限部１３３は、調停部１４０からのアクセス許可信号４３をマスタ選択部１２３に出力する機能も有する。ここで、アクセス許可信号には、プロセッサ１１０に対するものである場合と、マスタ１１３に対するものである場合がある。
【００３３】
リクエスト制限部については、より詳細なブロック図を図３に示した。ここではリクエスト制限部１３０について説明し、その他のリクエスト制限部については、略同一の構成を有するため、説明を割愛する。
図３に示すように、リクエスト制限部１３０は、パラメータ保持部３１０と、アクセス頻度管理部３２０と、リクエストマスク部３３０とを含んで構成される。
【００３４】
パラメータ保持部３１０は、各マスタの保証レートを決めるアクセス保証期間の値と、アクセス保証期間内に必要なアクセス回数とを保持し、これらのパラメータを信号線３１１を介してアクセス頻度管理部３２０に出力する機能を有する。ここでは、アクセス保証期間内に必要なアクセス回数は１であり、アクセス保証期間は１０である。
アクセス頻度管理部３２０は、リクエスト制限部１３０を通してアクセスが実行された回数をカウントする機能を有する。具体的には、調停部１４０から信号線１３を介してアクセス許可信号を受け取るたびに、アクセスカウンタを１加算する。そして、信号線１０を介してアクセス要求信号を受け取った場合に、アクセスカウンタが３以上の場合には、リクエストマスク部３３０に対してアクセスが許可できないことを示すために信号線３２１の電位をＨｉレベルにすることにより通知する。また、アクセス頻度管理部３２０は、アクセス保証期間の１０クロックもカウントしており、１０クロック経過するごとにアクセスカウンタを０にリセットする機能も有する。
【００３５】
リクエストマスク部３３０は、信号線３２１を介してアクセス頻度管理部３２０から、受け取ったマスク信号に基づいて、調停部１４０に対してアクセス要求を出力する機能を有する。具体的には、信号線３２１の電位がＬｏｗレベルである場合には、リクエストマスク部３３０は、信号線１０を介して受け付けたプロセッサ１１０からのアクセス要求信号をそのまま調停部１４０に出力する。信号線３２１の電位がＨｉレベルである場合には、リクエストマスク部３３０は、調停部１４０にはアクセス要求信号を出力しない。
【００３６】
調停部１４０は、プロセッサ１１０、マスタ１１１、１１２、１１３の各アクセス装置からの共有メモリへのアクセス要求を受けて、各アクセス要求を所定の基準に基づいて、アクセスを実行する順序を調停する機能を有する。基本的には、調停部１４０は、信号線１１、２１、３１、４１、１０、２０、３０、４０の順で受け付けたアクセス要求の順でアクセスを許可する。上位のアクセス要求がある場合には、下位のアクセス要求は待たせる。また、調停部１４０は、アクセス要求を許可するプロセッサ又は、マスタに対して、アクセスを許可することを示すアクセス許可信号を出力する機能を有する。なお、リクエスト制限部から出力されたアクセス要求に対しては、そのリクエスト制限部に対してアクセス許可信号を出力し、リクエスト制限部からアクセス要求を受け取っていない場合には、直接プロセッサ又はマスタにアクセス許可信号を信号線５０〜５３を用いて出力する。さらに、リクエスト制限部を介さないアクセス要求で、マスタからのアクセス要求に対してアクセス許可信号を出力する場合には、そのマスタに対応するマスタ選択部に対してもアクセス許可信号を出力する。
【００３７】
以上がアクセス制御装置１００の各部の機能の説明である。
＜動作＞
ここで、本実施の形態のアクセス制御装置のマスタ選択部の動作を図４に示すフローチャートを用いて説明する。ここで示すマスタ選択部の動作は、１クロックの動作である。また、マスタ選択部１２１を例に動作を説明し、その他のマスタ選択部については、マスタ選択部１２１とほぼ同様の動作を実行するため説明を割愛する。
【００３８】
まず、マスタ選択部１２１は、自己内でカウントしている先行アクセスカウンタが０あるかどうかを判定する（ステップＳ４０１）。なお、先行アクセスカウンタの初期値は０である。先行アクセスカウンタが０である場合には（ステップＳ４０１）、次にマスタ選択部１２１は、マスタ１１１からのアクセス要求があるかどうかを信号線２０からの入力があるかどうかで判定する（ステップＳ４０３）。マスタ１１１からのアクセス要求がない場合には（ステップＳ４０３のＮＯ）、ステップＳ４１７に移行し、以降の処理を実行する。マスタ１１１からのアクセス要求があった場合には（ステップＳ４０３のＹＥＳ）、次にアクセスカウンタと先行アクセスカウンタの値の和がＮ未満であるかどうかを判定する（ステップＳ４０５）。ここでＮは、各マスタのアクセス保証期間内に必要なアクセス回数であり、本実施の形態においては、Nは３となる。アクセスカウンタと先行アクセスカウンタの値の和がＮ未満である場合には（ステップＳ４０５のＹＥＳ）、マスタ選択部１２１は、リクエスト制限部にマスタ１１１のアクセス要求を出力する（ステップＳ４０７）。アクセスカウンタと先行アクセスカウンタの値の和がＮ未満でない場合には（ステップＳ４０５のＮＯ）、ステップＳ４０９に移行し、以降の処理を実行する。
【００３９】
マスタ選択部１２１は、調停部１４０からアクセス許可を示すアクセス許可信号を受け付けたかどうかを判定する（ステップＳ４０９）。ここで、アクセス許可信号は、信号線２５又は、信号線５１を介して受け付ける。調停部１４０からアクセス許可信号がない場合には（ステップＳ４０９のＮＯ）、ステップＳ４１７に移行し、以降の処理を実行する。アクセス許可信号を受け付けた場合には（ステップＳ４０９のＹＥＳ）、マスタ選択部１２１は、受け付けたアクセス許可信号がリクエスト制限部１３１を介して受け付けたアクセス許可信号であるかどうかを判定する（ステップＳ４１１）。これは、アクセス許可信号を信号線２３を介して受け付けたかどうかに基づいて判定する。受け付けたアクセス許可信号がリクエスト制限部１３１を介したものであった場合には（ステップＳ４１１のＹＥＳ）、マスタ選択部１２１でカウントしているアクセスカウンタを１加算する（ステップＳ４１３）。一方、ステップＳ４０９で、マスタ選択部１２１が受け付けたアクセス許可信号がリクエスト制限部１３１を介したものでなかった場合（ステップＳ４１１のＮＯ）、即ち、信号線５１を介して受け付けていた場合には、マスタ選択部１２１は、先行アクセスカウンタを１加算し（ステップＳ４１２）、マスタ１１１にアクセス許可信号を出力する（ステップＳ４１５）。
【００４０】
一方、先行アクセスカウンタが０でなかった場合には（ステップＳ４０１のＮＯ）、マスタ選択部１２１は、信号線１０を介してプロセッサ１１０からのアクセス要求信号を受けているかどうかをみる（ステップＳ４０２）。プロセッサ１１０のアクセス要求がなかった場合には（ステップＳ４０２のＮＯ）、ステップＳ４０３に移行し、以降の処理を実行する。プロセッサ１１０からのアクセス要求があった場合には（ステップＳ４０２のＹＥＳ）、そのアクセス要求信号をリクエスト制限部１３１に出力する（ステップＳ４０４）。マスタ選択部１２１は、調停部１４０からのアクセス許可信号２３を受け付けたかどうかを判定し（ステップＳ４０６）、受け付けていない場合には（ステップＳ４０６のＮＯ）、ステップＳ４１７に移行し、以降の処理を実行する。調停部１４０からのアクセス許可信号を受けていた場合には（ステップＳ４０６のＹＥＳ）、マスタ選択部１２１は、アクセスカウンタの値を１加算し、先行アクセスカウンタの値を１減算する（ステップＳ４０８）。そしてプロセッサ１１０にアクセス許可信号を出力する（ステップＳ４１０）。
【００４１】
そしてマスタ選択部１２１は、自己内部のクロックカウンタによってカウントされるアクセス保証期間タイマの値が１０になっているかどうかを判定する（ステップＳ４１７）。アクセス保証期間が経過していない、つまり保証期間タイマが１０未満であった場合には（ステップＳ４１７のＮＯ）、１クロックにおける動作を終了する。アクセス保証期間が経過している、つまり保証期間タイマが１０であった場合には（ステップＳ４１７のＹＥＳ）、保証期間タイマと、アクセスカウンタを０にリセットする。また、先行アクセスカウンタのカウンタをその時点の先行アクセスカウンタから、マスタ１１１のアクセスが許可されている回数であるＮとアクセスカウンタの差分を減算した値で更新する。但し、この演算により先行アクセスカウンタが負になる場合には先行アクセスカウンタを０で更新する（ステップＳ４１９）。こうして１クロックにおける動作を終了する。
【００４２】
なお、各マスタ選択部で使用するアクセス保証期間及びアクセス保証期間内に必要なアクセス回数（Ｎ）は、それぞれが接続されているリクエスト制限部内にあるパラメータ保持部で保持されているパラメータを用いる。
次に図５を用いて調停部１４０の動作を説明する。図５に示すように、調停部１４０は、アクセス要求を受けた場合に信号線１１を介してアクセス要求を受け付けたかどうかを判断する（ステップＳ５０１）。信号線１１を介してのアクセス要求であった場合には（ステップＳ５０１のＹＥＳ）、プロセッサ１１０に対するアクセス許可信号を信号線１３に出力する（ステップＳ５０２）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４３】
アクセス要求が信号線１１を介して受け付けたアクセス要求でない場合には（ステップＳ５０１のＮＯ）、次にアクセス要求を信号線２１を介して受け付けたかどうかを判断する（ステップＳ５０３）。信号線２１を介してのアクセス要求であった場合には（ステップＳ５０３のＹＥＳ）、マスタ１１１に対するアクセス許可信号を信号線２３に出力する（ステップＳ５０４）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４４】
アクセス要求が信号線２１を介して受け付けたアクセス要求でない場合には（ステップＳ５０３のＮＯ）、次にアクセス要求を信号線３１を介して受け付けたかどうかを判断する（ステップＳ５０５）。信号線３１を介してのアクセス要求であった場合には（ステップＳ５０５のＹＥＳ）、マスタ１１２に対するアクセス許可信号を信号線３３に出力する（ステップＳ５０６）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４５】
アクセス要求が信号線３１を介して受け付けたアクセス要求でない場合には（ステップＳ５０５のＮＯ）、次にアクセス要求を信号線４１を介して受け付けたかどうかを判断する（ステップＳ５０７）。信号線４１を介してのアクセス要求であった場合には（ステップＳ５０７のＹＥＳ）、マスタ１１３に対するアクセス許可信号を信号線４３に出力する（ステップＳ５０８）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４６】
アクセス要求が信号線４１を介して受け付けたアクセス要求でない場合には（ステップＳ５０７のＮＯ）、次にアクセス要求を信号線１０を介して受け付けたかどうかを判断する（ステップＳ５０９）。信号線１０を介してのアクセス要求であった場合には（ステップＳ５０９のＹＥＳ）、プロセッサ１１０に対するアクセス許可信号を信号線５０に出力する（ステップＳ５１０）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４７】
アクセス要求を信号線１０を介して受け付けたアクセス要求でない場合には（ステップＳ５０９のＮＯ）、次にアクセス要求を信号線２０を介して受け付けたかどうかを判断する（ステップＳ５１１）。信号線２０を介してのアクセス要求であった場合には（ステップＳ５１１のＹＥＳ）、マスタ１１１に対するアクセス許可信号を信号線５１に出力する（ステップＳ５１２）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４８】
アクセス要求を信号線２０を介して受け付けたアクセス要求でない場合には（ステップＳ５１１のＮＯ）、次にアクセス要求を信号線３０を介して受け付けたかどうかを判断する（ステップＳ５１３）。信号線３０を介してのアクセス要求であった場合には（ステップＳ５１３のＹＥＳ）、マスタ１１２に対するアクセス許可信号を信号線５２に出力する（ステップＳ５１４）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００４９】
アクセス要求を信号線３０を介して受け付けたアクセス要求でない場合には（ステップＳ５１３のＮＯ）、次にアクセス要求を信号線４０を介して受け付けたかどうかを判断する（ステップＳ５１５）。信号線４０を介してのアクセス要求であった場合には（ステップＳ５１５のＹＥＳ）、マスタ１１３に対するアクセス許可信号を信号線５３に出力する（ステップＳ５１６）。そしてステップＳ５０１に戻り以降の処理を実行する。
【００５０】
以上が調停部１４０の動作である。
最後に、図６を用いてリクエスト制限部の動作について説明する。
リクエスト制限部は、１クロック毎にプロセッサあるいはマスタからのアクセス要求があるかどうかを判断し（ステップＳ６０１）、ない場合には（ステップＳ６０１のＮＯ）ステップＳ６１１以降の処理を実行する。アクセス要求があった場合には（ステップＳ６０１のＹＥＳ）、アクセス要求を受けたアクセス頻度管理部は、自己で記憶しているアクセスカウンタがＮ未満であるかどうかを判定する（ステップＳ６０３）。ここで、Ｎは、リクエスト制限部のパラメータ保持部が保持している、プロセッサ又はマスタがアクセス保証期間内に必要なアクセス回数である。アクセスカウンタがＮ未満の場合には（ステップＳ６０３のＹＥＳ）、アクセス頻度管理部は、マスク信号を出力しないのでリクエストマスク部は受け付けたアクセス要求信号をそのまま調停部１４０に出力する（ステップＳ６０５）。
【００５１】
リクエスト制限部は、出力したアクセス要求信号に対するアクセス許可を示すアクセス許可信号を調停部１４０を受け付けたかどうかを判定する（ステップＳ６０７）。アクセス許可信号を受け付けていない場合には（ステップＳ６０７のＮＯ）、ステップＳ６１１に移行し、以降の処理を実行する。アクセス許可信号を受け付けた場合には（ステップＳ６０７のＹＥＳ）、リクエスト制限部のアクセス頻度管理部は、アクセスカウンタを１加算する（ステップＳ６０９）。そして、リクエスト制限部は、マスタ選択部に対して調停部１４０から受け付けたアクセス許可信号を出力する。
【００５２】
そしてアクセス保証期間が経過したかどうか、即ちアクセス保証期間のカウンタが１０になっているかどうかを判断する（ステップＳ６１１）。アクセス保証期間のカウントが１０になっていない場合には（ステップＳ６１１のＮＯ）、１クロックにおける動作を終了する。アクセス保証期間のカウントが１０になっていた場合には（ステップＳ６１１のＹＥＳ）、アクセスカウンタを０にリセットする（ステップＳ６１３）。そして１クロックにおける動作を終了する。。
【００５３】
一方、アクセスカウンタがＮであった場合には（ステップＳ６０３のＮＯ）、アクセス頻度管理部は、リクエストマスク部に対してマスク信号を出力する（ステップＳ６０４）。当該マスク信号を受け付けたリクエストマスク部は、調停部１４０に対してアクセス要求信号を出力せず（ステップＳ６０６）、ステップＳ６１１以降の処理を実行する。
以上が１クロックにおけるリクエスト制限部の動作である。
【００５４】
次に、アクセス制御装置１００における各種信号の状態を図７に示すタイミングチャートを用いて説明する。この図７に示すタイミングチャートは、本発明の特徴が現れる場合の信号線を流れる信号の状態や、タイマカウントの値などを示しており、ここで示す信号の状態は一つの具体例である。
図７の一行目の信号は、リクエスト制限部及びマスタ選択部がカウントしているアクセス保証期間のタイマカウントである。二行目は、プロセッサ１１０からのアクセス要求を示すアクセス要求信号を示している。三行目は、マスタ１１１からのアクセス要求を示すアクセス要求信号を示している。四行目は、マスタ１１２からのアクセス要求を示すアクセス要求信号を示している。五行目は、マスタ１１３からのアクセス要求を示すアクセス要求信号を示している。六行目は、マスタ選択部１２１及びリクエスト制限部１３１でカウントされるアクセスカウンタである。七行目は、リクエスト制限部１３１のアクセス頻度管理部が出力するマスク信号を示している。八行目は、リクエスト制限部１３０がアクセス要求を受け付けた場合の調停部１４０に出力するアクセス要求信号を示している。九行目は、リクエスト制限部１３１がアクセス要求を受け付けた場合の調停部１４０に出力するアクセス要求信号を示している。十行目は、リクエスト制限部１３２がアクセス要求を受け付けた場合の調停部１４０に出力するアクセス要求信号を示している。十一行目は、リクエスト制限部１３３がアクセス要求を受け付けた場合の調停部１４０に出力するアクセス要求信号を示している。十二行目は、調停部１４０が出力するアクセス許可信号の出力先を示し、ここでは、それぞれのタイミングでどのプロセッサあるいはどのマスタに出力しているかを示している。十三行目は、調停部１４０が信号線５１を介してマスタ１１１とマスタ選択部１２１に対して出力するアクセス許可を示すack信号を示している。十四行目は、調停部１４０が信号線５２を介してマスタ１１２とマスタ選択部１２２に対して出力するアクセス許可を示すack信号を示している。十四行目は、調停部１４０が信号線５３を介してマスタ１１３とマスタ選択部１２３に対して出力するアクセス許可を示すack信号でもある。十五行目は、マスタ選択部１２１でカウントされる先行アクセスカウンタの値を示している。そして十六行目は、マスタ選択部１２１でのプロセッサ１１０とマスタ１１１のどちらのアクセス要求を優先するかを示している。
【００５５】
時間ｔ０において、プロセッサ１１０及びマスタ１１１〜１１３は、それぞれアクセス要求信号を出力している。プロセッサ１１０からのアクセス要求を受け付けてリクエスト制限部１３０は、リクエスト制限部１３０出力信号に示すように、時間ｔ０〜ｔ１にかけてアクセス要求を調停部１４０に出力する。同様に、マスタ１１１アクセス要求信号を受けて、リクエスト制限部１３１出力信号に示しているように、アクセス要求信号を時間ｔ０〜ｔ４にかけて調停部１４０に出力する。マスタ１１２アクセス要求信号を受けて、リクエスト制限部１３２出力信号に示しているように、アクセス要求信号を時間ｔ０〜ｔ６にかけて調停部１４０に出力する。マスタ１１３アクセス要求信号を受けて、リクエスト制限部１３３出力信号に示しているように、リクエスト制限部１３３は、アクセス要求信号を時間ｔ０〜ｔ９にかけて調停部１４０に出力する。
【００５６】
図７に示すように、各リクエスト制限部からの出力を受けて調停部１４０は自己で設定されている優先順位に従ってアクセス許可信号を出力する。調停部１４０は、時間ｔ０〜ｔ１にはプロセッサ１１０に対して、時間ｔ１〜ｔ４にはマスタ１１１に対して、時間ｔ４〜ｔ６にはマスタ１１２に対して、時間ｔ６〜ｔ９にはマスタ１１３に対してアクセス許可信号を出力している。本来マスタ１１２に対しては通常アクセス保証期間の１０クロック中３クロック分のアクセスが許可されているが、マスタ１１２からのアクセス要求に対して２クロック分のアクセス許可が調停部１４０から出力されアクセスを行った時点でマスタ１１２からのアクセス要求はなくなったため、リクエスト制限部１３２出力信号も出力されない。その結果次に優先順位の高いマスタ１１３に対してアクセス許可信号が出力される。ｔ９からのｔ１０では、全マスタのリクエスト制限部出力信号が全てLowであるため、１クロック分の共有メモリにアクセスするためのリソースが空いていることになる。
【００５７】
ここで、時間ｔ８からマスタ１１１からアクセス要求信号が出力されている。マスタ１１１は、時間ｔ１〜ｔ４にかけて共有メモリへの必要なアクセスを実行しているので、リクエスト制限部１３１を介してのアクセスはできない。このことは、時間ｔ８〜ｔ１０においてリクエスト制限部１３１マスク信号がHighに設定されているために、リクエスト制限部１３１からは調停部１４０にアクセス要求信号が出力されていないことにより実現されている。信号線２０から直接調停部１４０に対するアクセス要求が出力されており、その時点で、信号線１１、２１、３１、４１、５０にはアクセス要求が出力されていない。よって、時間ｔ９〜ｔ１０において、アクセスのためのリソースがあいており、かつ、マスタ１１１からの直接のアクセス要求より上位のアクセス要求がないため、調停部１４０はマスタ１１１に対して信号線５１を介してアクセス許可信号を示すack信号を出力する。図７からアクセス許可信号の出力先においてもマスタ１１１（Ｍ１）が指定されていることがわかる。
【００５８】
信号線５１を介してack信号を受けたマスタ選択部１２１は、先行アクセスカウンタを１加算する。図７に示すように時間ｔ１０から先行アクセスカウンタは１になっている。時間ｔ１０において、保証期間タイマはリセットされ、次のアクセス保証期間１〜１０がカウントされる。
マスタ１１１は、時間ｔ８以降時間ｔ２３までアクセス要求信号を出力し続けている。しかし、このアクセス要求信号は、マスタ選択部１２１により、リクエスト制限部には、時間ｔ１３以降時間ｔ２０まで出力されない。時間ｔ１３は、アクセスカウンタと先行アクセスカウンタの合計値が、マスタ１１１がアクセス保証期間内において共有メモリにアクセスしてよい回数である３と同値になったタイミングでもある。マスタ選択部１２１がマスタ１１１のアクセス要求をリクエスト制限部１３１に出力しないのは、先行アクセスカウンタが１以上で、アクセスカウンタと先行アクセスカウンタの合計値がアクセス許可回数と同値になるときには、プロセッサ１００のアクセスを優先させるために、マスタ１１１のアクセス要求を出力しない構成になっているためである。
【００５９】
一方、プロセッサ１００は時間ｔ１０〜ｔ１１と時間ｔ１５〜ｔ１６においてアクセス要求を出力している。ｔ１０〜ｔ１１のプロセッサ１１０のアクセス要求は通常通りリクエスト制限部１３０を介して調停部１４０に出力されるが、ｔ１５〜ｔ１６のアクセス要求に関しては、リクエスト制限部１３０出力信号にも示すように、マスクがかけられ出力されていない。
【００６０】
ところで、プロセッサ１１０からのアクセス要求は、リクエスト制限部１３０だけでなく、各マスタ選択部と調停部１４０にも出力されている。時間ｔ１５〜ｔ１６において、マスタ選択部１２１においては先行アクセスカウンタが１になっている。するとマスタ選択部１２１は、プロセッサのアクセス要求を優先して、リクエスト制限部１３１に出力する。リクエスト制限部１３１は、まだ、自己に設定されているアクセスカウンタが３になっていないので、マスタ選択部１２１から受け取ったプロセッサ１１０のアクセス要求を調停部１４０に出力する。時間ｔ１０以降においては、リクエスト制限部１３２からもマスタ１１２からのアクセス要求が出力されており、時間ｔ１３〜ｔ１５にかけては調停部１４０もマスタ１１２に対するアクセス許可を出していたが、時間ｔ１５において、より上位のアクセス権を有するリクエスト制限部１３１からアクセス要求が出力されたので、調停部１４０はアクセス許可をリクエスト制限部１３１を介してマスタ選択部１２１に出力する。調停部１４０からのアクセス許可信号を受け取ったマスタ選択部１２１は、時間ｔ１５においてプロセッサを選択しているため、プロセッサ１１０にアクセス許可信号を出力し、マスタ１１１には、アクセス許可信号を出力しない。この動作により、時間ｔ１５〜ｔ１６では、プロセッサがアクセス許可を受けたことになる。
【００６１】
調停部１４０からのアクセス許可信号を受けてリクエスト制限部１３１はアクセスカウンタを１加算し、アクセス頻度管理部はマスク信号を出力するようになり、以降時間ｔ２０まではリクエスト制限部１３１からはアクセス要求信号が出力されないことになる。時間ｔ１６からはリクエスト制限部１３２から出力されるマスタ１１２のアクセス要求が受け付けられ、調停部１４０はマスタ１１２に対してアクセス許可を出し、時間ｔ１７からはリクエスト制限部１３０、１３１、１３２からアクセス要求が出力されないので、リクエスト制限部１３３を介して出力されたマスタ１１３のアクセス要求が受け付けられる。
【００６２】
そして時間ｔ２０からは次のアクセス保証期間が開始される。なお、ここでは実際のプロセッサあるいはマスタの共有メモリへのアクセスについては、特に記述しなかったが、プロセッサあるいはマスタは個々のアクセス許可信号１２、２２、３２、４２を受け取るとアクセスを実行している。
図７に示したように、時間ｔ９〜ｔ１０にかけてマスタ１１１は、本来アクセス保証期間である１０クロック内においては３回までのアクセスしか認められていないが、共有メモリへのアクセス用のリソースが空いている場合に、アクセス要求をリクエスト制限部１３１を通さない経路で通常のレートを超えたアクセスを実現している。そしてこの時間ｔ９〜ｔ１０においてマスタ１１１が実行したアクセスは通常だと次のアクセス保証期間ｔ１０〜ｔ２０の間において実行するはずだったものであるので、周期的に実行するアクセスにおいて余裕ができる。そして、この余裕がある場合に、本来は１０クロック中１回しか行われないプロセッサ１１０のアクセス要求を、時間ｔ１５〜ｔ１６に示したようにマスタ選択部１２１が出力し、それを受けてリクエスト制限部１３１がプロセッサ１１０のアクセス要求を調停部１４０に出力する。従来では、時間ｔ１５〜ｔ１６においてはプロセッサ１１０のアクセス要求は通らず、時間ｔ２０まで待つことになるのが、本発明においては、マスタ１１１のアクセス要求の代わりにリクエスト制限部１３１を通してアクセス要求を出力し、調停部１４０からアクセス許可を受けているので、従来よりも、プロセッサ１１０からのアクセス要求に対する即応性が高められていると言える。
＜実施の形態２＞
実施の形態２においては、実施の形態１とは異なり、リクエスト制限部を各マスタあるいはプロセッサに対応するようにマスタとプロセッサの合計数と同数のリクエスト制限部で構成するのではなく、複数のマスタあるいはプロセッサを統括してアクセスを１のリクエスト制限部で制限する場合の実施形態を示す。
＜構成＞
まず、実施の形態２に係るアクセス制御装置について、図８に示す機能ブロック図を用いて説明する。
【００６３】
図８に示すように、アクセス制御装置８００は、マスタ選択部８２１と、統括リクエスト制限部８３０と、調停部８４０とを含んで構成される。プロセッサ８１０は、アクセス制御装置８００の各部と信号線６０、６２を介して接続されている。また、マスタ８１１は、アクセス制御装置８００と信号線７０、７２を介して接続されている。
マスタ選択部８２１は、実施の形態１で示したマスタ選択部１２１と同様の機能を果たすため、説明を割愛する。また調停部８４０についても、アクセス制御装置８００に接続されているマスタの数は異なるものの、実施の形態１で示した調停部１４０とほぼ同様の機能を果たすため、説明を割愛する。
【００６４】
本実施の形態の特徴は統括リクエスト制限部８３０にあり、その詳細な内部構成を示したブロック図を図９に用意した。図９に示すように統括リクエスト制限部８３０は、パラメータ保持部９１０と、アクセス頻度管理部９１１と、リクエストマスク部９１２と、パラメータ保持部９２０と、アクセス頻度管理部９２１と、リクエストマスク部９２２と、借入パラメータ保持部９２３と、アクセス権借入制御部９３０とを含んで構成される。統括リクエスト制限部８３０の各部は、図９に示すように各信号線で接続されている。
【００６５】
パラメータ保持部９１０は、プロセッサ８１０のアクセス保証期間、アクセス保証期間における許容アクセス頻度情報をプロセッサ８１０から受け取り、保持し、アクセス頻度管理部９１１に出力する機能を有する。
アクセス頻度管理部９１１は、調停部８４０から受け取ったアクセス許可信号に基づいてアクセスカウンタをカウントする機能と、カウントされているアクセスカウンタをアクセス権借入制御部９３０に出力する機能とを有する。
【００６６】
リクエストマスク部９１２は、アクセス権借入制御部９３０からのマスク信号を受けていない場合に、プロセッサ８１０からのアクセス要求信号をそのまま調停部８４０に出力し、マスク信号を受けている場合に、プロセッサ８１０からのアクセス要求信号は、調停部８４０に出力しない機能を有する。
パラメータ保持部９２０は、マスタ８１１のアクセス保証期間、アクセス保証期間における許容できるアクセス頻度を示す許容アクセス頻度情報をマスタ８１１から受け取り保持し、アクセス頻度管理部９２１に出力する機能を有する。
【００６７】
アクセス頻度管理部９２１は、調停部８４０から受け取ったアクセス許可信号に基づいてアクセスカウンタをカウントする機能と、カウントされているアクセスカウンタをアクセス権借入制御部９３０に出力する機能とを有する。
リクエストマスク部９２２は、アクセス権借入制御部９３０からのマスク信号を受けていない場合に、マスタ８１１からのアクセス要求信号をそのまま調停部８４０に出力し、マスク信号を受けている場合に、マスタ８１１からのアクセス要求信号は、調停部８４０に出力しない機能を有する。
【００６８】
借入パラメータ保持部９２３は、プロセッサ８１０及びマスタ８１１のアクセス保証期間における許容アクセス頻度情報、アクセス権の借入を行うことができる最大期間の情報、一度アクセス権を借入してから次に借入できるまでの時間情報のパラメータを外部からユーザによって設定され、保持する機能を有し、それらの情報をアクセス権借入制御部９３０に出力する機能を有する。
【００６９】
アクセス権借入制御部９３０は、借入パラメータ保持部から受け取る借入パラメータと、アクセス頻度管理部９１１とアクセス頻度管理部９２１から受け取るアクセス頻度の情報に基づいて、リクエストマスク部９１２とリクエストマスク部９２２にマスク信号を出力する機能を有する。アクセス権借入制御部９３０がアクセス権の貸し借りの詳細な動作については、図１０に示した状態遷移図を用いて後述する。
＜動作＞
では図１０に示した状態遷移図について説明する。
【００７０】
まず、図１０において示す各状態とその遷移条件について簡単に説明し、その後に、この状態遷移図に即してリクエスト制限部８３０の動作を説明する。
アクセス権借入制御部９３０は、図１０に示すレベル１〜４の状態を有する。各レベルの状態は以下の状態を示している。
レベル０は、アクセス権の貸し借りがなく、各マスタが予め設定されたアクセス頻度内で動作している状態である。
【００７１】
レベル１は、プロセッサ８１０のアクセスがマスタ８１１からアクセス権を借入して設定された自己のアクセス頻度以上のレートでアクセスを実行している状態である。レベル１の場合は、マスタ８１１のアクセスは行われない。
レベル２は、プロセッサ８１０が借入したアクセス権を借入先のマスタに返却している状態である。レベル２の場合は、プロセッサ８１０のアクセスは行われない。
【００７２】
レベル３は、プロセッサ８１０が借入したアクセス権を全て返却済みの状態で、かつ、プロセッサ８１０がアクセスを実行する場合にマスタからアクセス権を借入できない状態である。
そして、各レベルにおいて、別のレベルに移行する条件は以下の通りである。
レベル０からレベル１に移行するための条件１は、プロセッサ８１０が予め設定されたアクセス頻度以上のアクセスを行うことである。当該条件１は、アクセス頻度管理部９１１から出力されるアクセス頻度情報に基づいて検出される。
【００７３】
レベル１からレベル２に移行するための条件２は、プロセッサ８１０が、アクセス権の借入を行ってから、アクセス権の借入を行うことができる最大期間が経過することである。当該条件２における、最大期間の経過は、アクセス権借入制御部９３０でカウントするクロックカウントと、借入パラメータ保持部９２３に基づいて検出される。
レベル２からレベル３に移行するための条件３は、プロセッサ８１０が借入したアクセス権をすべて返却することである。当該条件３については、アクセス権借入制御部９３０で、プロセッサ８１０が借入しているアクセス権に相当するアクセスをマスタ８１１が実行したかどうかによって検出される。
【００７４】
レベル３からレベル０に移行するための条件４は、プロセッサ８１０がアクセス権の借入を行ってから、再び借入可能になるまでの時間が経過することである。当該条件４は、アクセス権借入制御部９３０が、借入パラメータ保持部９２３から出力された当該時間をクロックカウントにカウントすることにより検出する。
なお、レベル２からレベル０に移行する破線で示した条件３は、レベル４の状態を設定しない場合を示しており、この場合には、上記条件３の条件に従って、レベル２からレベル０に移行する。
【００７５】
では、図１０の状態遷移図に従って、アクセス権借入制御部９３０の動作を説明する。
アクセス権借入制御部９３０はデフォルトではレベル０の状態にある。この状態においては、リクエストマスク部９１２に対するマスク信号は常にＬｏｗが信号線６７に出力される。一方、リクエストマスク部９２２については、アクセス頻度管理部９２１から出力されたアクセス頻度情報と、借入パラメータ保持部９２３から出力された許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にＨｉが信号線７７に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にＬｏｗが信号線７７に出力される。
【００７６】
レベル１の状態においては、アクセス権借入制御部９３０は、リクエストマスク部９２２に対するマスク信号は常にＨｉに設定されており、信号線７７に出力される。一方、リクエストマスク部９１２に対するマスク信号については、アクセス頻度管理部９１１からのアクセス頻度情報と、借入パラメータ保持部９２３からのプロセッサ８１０の許容アクセス頻度とアクセス権の借入が最大借入回数の総和とを比較し、アクセス頻度情報が当該総和を超える場合には信号線６７にＨｉが出力され、超えない場合には信号線６７にはＬｏｗが出力される。
【００７７】
レベル２の状態においては、アクセス権借入制御部９３０は、リクエストマスク部９１２に対するマスク信号は常にＨｉが信号線６７に出力される。一方、リクエストマスク部９２２については、アクセス頻度管理部９２１から出力されたアクセス頻度情報と、借入パラメータ保持部９２３から出力された許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にＨｉが信号線７７に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にＬｏｗが信号線７７に出力される。
【００７８】
レベル３の状態においては、アクセス権借入制御部９３０は、リクエストマスク部９１２に対するマスク信号は、アクセス頻度管理部９１１から出力されたアクセス頻度情報と借入パラメータ保持部９２３から出力されたプロセッサ８１０のアクセス許容頻度とを比較し、アクセス頻度がアクセス許容頻度を超える場合には、Ｈｉが信号線６７に出力され、アクセス頻度がアクセス許容頻度を超えない場合には、Ｌｏｗが信号線６７に出力される。一方、リクエストマスク部９２２については、アクセス頻度管理部９２１から出力されたアクセス頻度情報と、借入パラメータ保持部９２３から出力されたマスタ８１１の許容アクセス頻度とを比較し、当該許容アクセス頻度をアクセス頻度情報が超える場合にＨｉが信号線７７に出力され、当該許容アクセス頻度をアクセス頻度情報が超えない場合にＬｏｗが信号線７７に出力される。
【００７９】
以上が統括リクエスト制限部８３０の動作であるが、本発明においては、アクセス制御装置８００には、マスタ選択部８２１が備わっており、マスタ８１１が一定レート以上でのアクセスを実行していて、先行アクセスカウンタが１以上の場合には、マスタ選択部８２１は、プロセッサ８１０のアクセス要求を優先して出力するので、統括リクエスト制限部８３０には、プロセッサ８１０からのアクセス要求のみが入力されることになるので、必ずプロセッサ８１０のアクセス要求が通り、プロセッサ８１０による共有メモリへのアクセスが実行されることになる。
【００８０】
また、プロセッサのアクセスが発生した際に、マスタ選択部８２１のマスタの先行アクセスカウンタが０の場合であっても、統括リクエスト制限部８３０が、マスタのバンド幅が保証できる範囲内で、マスタのアクセス権をプロセッサに割り振る制御を実行するので、調停部８４０にはプロセッサのアクセスが優先して出力される構成にすることができる。
【００８１】
即ち、本実施の形態においては、プロセッサのアクセスが発生した際に、その直前に、マスタが先行アクセスを実行しており、所定レートでのアクセスに余裕がある場合には、マスタ選択部８２１において、プロセッサのアクセスが優先され、統括リクエスト制限部８３０には、プロセッサのアクセス要求が出力されて、プロセッサのアクセスが実行されることになる。更には、マスタが先行アクセスを実行していなくても、統括リクエスト制限部８３０において、マスタの所定レートでのアクセスを保証できる範囲内において、マスタに割り当てられているリソースを一時的に、プロセッサに割り振ることにより、プロセッサのアクセス要求を出力する構成になっており、マスタ選択部８２１とあわせて、２重の意味でプロセッサのアクセス要求に対する即応性を高められる。
＜補足＞
上記実施の形態に基づき、本発明に係るアクセス制御装置について説明してきたが、アクセス制御装置の実施の形態はこれに限るものではないことは勿論である。以下、その変形例について説明する。
（１）上記実施の形態において、共有メモリ、プロセッサ、及び各マスタはアクセス制御装置１００に含まない構成としたが、これらはアクセス制御装置１００に含まれていてもよい。
（２）上記実施の形態１においては、プロセッサ１台、マスタ３台の構成を、実施の形態２においては、プロセッサ１台、マスタ１台の構成を示したが、この台数はその一例に過ぎず、プロセッサ、マスタ共に何台あってもよく、例えば、プロセッサ２台にマスタ４台といった構成もありうる。この場合、各マスタに接続されるマスタ選択部には、２つのプロセッサ両方からのアクセス要求をうける信号線が接続されることになる。
（３）上記実施の形態においては、各マスタ選択部は、プロセッサとマスタとの選択を行うとしたが、プロセッサに替えてグラフィックスのような出来高性能を必要とするマスタとの選択としてもよい。これはグラフィックスの処理などを実行するマスタにおいては、共有メモリへのアクセスを行えば行うほど処理効率が高まるので、そのようなマスタとの選択をマスタ選択部に実行させ、リソースの分配の優先度を高める構成にすると、例えばDVDプレーヤなどにおいては、処理効率を高めることができる。
（４）上記実施の形態のマスタ選択部において、先行アクセスにより確保されたリソースを使用できるプロセッサや他のマスタをレジスタにより選択可能な構成としてもよい。具体的には、個々のプロセッサあるいはマスタに対応したｏｎ／ｏｆｆ切替レジスタを設け、マスタ選択部には、本来アクセスを実行するマスタは直接アクセス要求信号を入力し、その他のプロセッサあるいはマスタは、自己のアクセス要求に、各々の前記ｏｎ／ｏｆｆレジスタ切替レジスタに設定された値でマスクをかけた信号を入力させてもよい。
【００８２】
この構成によるとレジスタの設定値により、アクセス要求に対する即応性を高めるマスタを任意に選択できるため、例えばシステムの実行アプリケーションの変化により、本機能の効果を得られるマスタを切り替えるといったことが可能となる。具体的には、例えば、ＥＰＧ表示時にはグラフィックマスタに割り当て、Java（登録商標）アプリ動作時にはＣＰＵに割り当てるといった具合である。
（５）上記実施の形態においては、先行アクセスカウンタが１以上の場合にプロセッサのみが割り込んでアクセスを実行することができる構成にしたが、第１のマスタが、第二のマスタのアクセスに割り込んでアクセスを実行することとしてもよい。
（６）上記実施の形態においては、リクエスト制限部のパラメータ保持部は、各パラメータを予め保持している構成としたが、これは別にアクセス制御装置全体を制御するＣＰＵから受け取ることとしてもよいし、あるいはアクセス制御装置にユーザからの入力操作を受け付ける操作パネル等を設け、ユーザがパラメータ保持部にパラメータを入力する構成としてもよい。
【００８３】
また、借入パラメータ保持部についても、外部からユーザによって入力されることとしたが、これもアクセス制御装置全体を制御するＣＰＵから受け取ることとしてもよい。
更に、パラメータ保持部と借入パラメータ保持部を１つの保持部として各パラメータを保持するようにしてもよい。
（７）上記実施の形態においては、アクセス保証期間を１０クロックとしたが、これは何クロックでもよく、マスタにとってXクロック中、Yクロック分のアクセスを実行する場合のXを規定するためのものであればよく、例えば、１００クロックとかでもよい。また、各マスタによって、アクセス保証期間は異なるものであってもよく、例えば、マスタ１のアクセス保証期間を２０クロック、マスタ２のアクセス保証期間を５０クロックなどと設定してもよい。
【００８４】
また、上記実施の形態においては、各マスタのアクセスのレートは１０クロック中３回と規定されていたが、これは２回でも５回とかでもよい。さらに、各マスタのアクセス保証期間において、必要とするアクセス回数は、実行する作業によって異なってくるので、各マスタによってレートが異なる構成になっていてもよい。
（８）上記実施の形態においては、アクセス回数を用いて、各マスタの共有メモリへのアクセスを制御したが、アクセス回数ではなく、マスタが共有メモリにアクセスし、データを転送した場合における転送バイト数を単位としてより正確なレート制御を行ってもよい。その場合、リクエスト制限部のアクセス頻度管理部は、接続マスタもしくはプロセッサからのアクセス要求に対する転送バイト数を受け取る構成としてもよい。
（９）上記実施の形態においては、パラメータ保持部は、リクエスト制限部内に設ける構成にしたが、リクエスト制限部外に独立して設けて、パラメータ保持部内に保持されるパラメータを必要とする制御ブロックが参照する構成にしてもよい。
（１０）アクセス制御装置の各機能部は、１又は複数のLSI（Large Scale Integration）、VLSI（Very Large Scale Integration）により実現されてよく、一のLSIが各機能部全ての機能を実行できるシステムLSIであってもよい。
（１１）本発明は、上記実施の形態に示したプロセッサのアクセス要求に対する即応性を高めるための方法であってもよく、当該方法をコンピュータに実行させるための処理手順を示したコンピュータプログラムであってもよい。
【産業上の利用可能性】
【００８５】
本発明に係るアクセス制御装置は、ＢＤプレーヤなど、複数の作業を実行する装置において、ユーザからの突発的な要求に対するレスポンスの即応性を高めた装置として活用することができる。
【符号の説明】
【００８６】
１００、８００  アクセス制御装置
１１０、８１０  プロセッサ
１１１、１１２、１１３  マスタ
１２１、１２２、１２３、８２１  マスタ選択部
１３０、１３１、１３２、１３３  リクエスト制限部
１４０、８４０  調停部
３１０、９１０、９２０  パラメータ保持部
３２０、９１１、９２１  アクセス頻度管理部
３３０、９１２、９２２  リクエストマスク部
８３０  統括リクエスト制限部
９２３  借入パラメータ保持部
９３０  アクセス権借入制御部
【図１】
0004485599.tif 000002
【図２】
0004485599.tif 000003
【図３】
0004485599.tif 000004
【図４】
0004485599.tif 000005
【図５】
0004485599.tif 000006
【図６】
0004485599.tif 000007
【図７】
0004485599.tif 000008
【図８】
0004485599.tif 000009
【図９】
0004485599.tif 000010
【図１０】
0004485599.tif 000011