(57)【特許請求の範囲】
【請求項１】
共有メモリに対するアクセスを所定のバンド幅で各マスタ装置に行わせるよう、マスタ装置間の調停を行う調停装置であって、
特定のマスタ装置から前記共有メモリに対するアクセス要求を受け付ける受付手段と、
前記受付手段が予め割り当てられているバンド幅以上のアクセス要求を前記特定のマスタ装置から受け付けた場合、予め設定した第１期間においてその要求を許可し、第１期間が終了すれば、当該第１期間に続く第２期間において前記特定のマスタ装置からのアクセス要求をマスクし、第２期間が終了すれば、当該第２期間に続く第３期間において前記特定のマスタ装置からの、予め割り当てられているバンド幅を超えるアクセス要求をマスクするアクセス制御手段と
を備えることを特徴とする調停装置。
【請求項２】
共有メモリに対するアクセスを所定のバンド幅で各マスタ装置に行わせるよう、マスタ装置間の調停を行う調停方法であって、
特定のマスタ装置から前記共有メモリに対するアクセス要求を受け付ける受付ステップと、
予め割り当てられているバンド幅以上のアクセス要求を前記特定のマスタ装置から受け付けた場合、予め設定した第１期間においてその要求を許可し、第１期間が終了すれば、当該第１期間に続く第２期間において前記特定のマスタ装置からのアクセス要求をマスクし、第２期間が終了すれば、当該第２期間に続く第３期間において前記特定のマスタ装置からの、予め割り当てられているバンド幅を超えるアクセス要求をマスクするアクセス制御ステップと
を含むことを特徴とする調停方法。
【請求項３】
複数のマスタ装置と、共有メモリに対するアクセスを所定のバンド幅で各マスタ装置に行わせるよう、マスタ装置間の調停を行う調停装置とを含む動画処理装置であって、
調停装置は、
特定のマスタ装置から前記共有メモリに対するアクセス要求を受け付ける受付手段と、
前記受付手段が予め割り当てられているバンド幅以上のアクセス要求を前記特定のマスタ装置から受け付けた場合、予め設定した第１期間においてその要求を許可し、第１期間が終了すれば、当該第１期間に続く第２期間において前記特定のマスタ装置からのアクセス要求をマスクし、第２期間が終了すれば、当該第２期間に続く第３期間において前記特定のマスタ装置からの、予め割り当てられているバンド幅を超えるアクセス要求をマスクするアクセス制御手段とを備え、
前記特定のマスタ装置とは、前記動画処理装置におけるCPUにデータを供給する供給部であり、
特定のマスタ装置以外のマスタ装置とは、前記動画処理装置におけるデコーダ部にデータを供給する供給部であり、
前記第１期間、前記第２期間、及び前記第３期間は、
AV信号の一処理周期内に規定される
ことを特徴とする動画処理装置。
【請求項４】
共有メモリに対するアクセスを所定のバンド幅で各マスタ装置に行わせるよう、マスタ装置間の調停を行う集積回路であって、
特定のマスタ装置から前記共有メモリに対するアクセス要求を受け付ける受付手段と、
前記受付手段が予め割り当てられているバンド幅以上のアクセス要求を前記特定のマスタ装置から受け付けた場合、予め設定した第１期間においてその要求を許可し、第１期間が終了すれば、当該第１期間に続く第２期間において前記特定のマスタ装置からのアクセス要求をマスクし、第２期間が終了すれば、当該第２期間に続く第３期間において前記特定のマスタ装置からの、予め割り当てられているバンド幅を超えるアクセス要求をマスクするアクセス制御手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バンド幅割り当て技術の技術分野に属する発明である。
【背景技術】
【０００２】
バンド幅割り当て技術とは、複数のマスタ装置が共通のメモリリソースを利用している場合に、これら複数のマスタ装置に対し、あるバンド幅でのメモリアクセスを保証する技術である。かかるバンド幅割り当ては、調停装置による調停制御により実現することができる。以下、従来の調停装置によるバンド幅割り当てについて説明する。従来のバンド幅割り当てでは、複数マスタ装置間の調停を図る調停装置に、バンド幅制御のためのカウンタを設けることで、バンド幅制御を実現している。このカウンタは、複数マスタ装置のそれぞれに対応して設けられていて、あるマスタ装置によるメモリアクセスが許可されれば、そのマスタ装置についてのカウント値をインクリメントする。このカウンタには、上限値と、サイクル数という2つのパラメータが設けられており、カウンタのカウント値が、この上限値を下回っている限り、マスタ装置からのアクセス要求は許可される。逆に、カウント値が上限値を上回れば、マスタ装置からのアクセス要求は許可されない。一方、サイクル数は、カウンタのカウント値を自動的にデクリメントしてゆく期間を規定するものである。カウンタのカウント値が上限値に達した後、サイクル数に示される期間が経過するまで、カウンタのカウント値は、上限値を維持したままになるので、マスタ装置のアクセス要求は許可されない。サイクル数が経過して、カウンタのカウント値が上限値未満になれば、再びマスタ装置によるアクセス要求は許可されることになる。ここでメモリの動作周波数がf[Hz]である場合、以下の式を満たすよう、上限値U、カウント値Cを設定すれば、予め規定したバンド幅で、マスタ装置を動作させることができる。
【０００３】
マスタ装置に割り当てるバンド幅＝動作周波数f × カウンタ上限値U / サイクル数C 
なお、先行技術としては特許文献１、特許文献２に記載されたものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−５５８９号公報
【特許文献２】特開２００２−３０４３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで調停の対象となる複数のマスタ装置は、必要とするバンド幅が互いに異なることが多々ある。かかるマスタ装置の典型的なものに、局所集中アクセスマスタ、固定レートアクセスマスタがある。
局所集中アクセスマスタとは、通常バンド幅を必要としないが、ある一定の期間において局所的にバンド幅を必要とするマスタ装置である。かかるマスタ装置には、CPUのキャッシュに、データをまとめて読み込むような、キャッシュコントローラが該当する。
【０００６】
図１１（ａ）は、局所集中アクセスマスタが要求するバンド幅の時間的変遷を示す図である。横軸は時間軸であり、縦軸は、マスタ装置が必要とするバンド幅を示す。本図に示すように、局所集中アクセスマスタが必要とするバンド幅は、時間軸上のある短い期間において集中的に発生するが、その他の期間では、全く発生していない。つまり時間軸上の狭い範囲において、高いバンド幅を要求するのが局所集中アクセスマスタの特色である。
【０００７】
固定レートアクセスマスタとは、ある高さのバンド幅を定常的に要求するマスタ装置である。かかる固定レートアクセスマスタには、AV信号のデコードを行うデコーダに、データを供給するようなDMAコントローラがある。ここでAV信号は、表示期間と、帰線期間との組みの繰り返しからなる。固定レートアクセスマスタは、この表示期間においてメモリアクセスを要求し、帰線期間においてメモリアクセスを要求しない。このことから固定レートアクセスマスタは、表示期間の合間にあたる帰線期間を除き、定常的に、ある一定のバンド幅を必要とする。図１１（ｂ）は、固定レートアクセスマスタが必要とするバンド幅の時間的変移を示す図である。本図に示すように、固定レートアクセスマスタが要求するバンド幅は、一定の高さを有しているが、帰線期間にあたる箇所において、低くなっている。つまり、表示期間にあたる長い“高”→帰線期間にあたる短い“低”→表示期間にあたる長い“高”→帰線期間にあたる短い“低”を繰り返していることがわかる。
【０００８】
固定レートアクセスマスタはほぼ定常的に、ある高さのバンド幅を必要とするが、局所集中アクセスマスタは、ある局所的な期間において、高いバンド幅を要求するので、固定レートアクセスマスタ、局所集中アクセスマスタを同じシステムに実装しようとすると、図１１（ｃ）に示すように、固定レートアクセスマスタが必要とするバンド幅と、局所集中アクセスマスタが必要とするバンド幅とを足し合わせた高さのバンド幅をシステム全体で保証せねばならない。図１１（ｃ）のような合計値のバンド幅が、システム全体に要求されれば、動作周波数を高くするか、ビットレートを高くせざるをえず、ハードウェアコストを高くせざるをえないという結果を招く。
【０００９】
本発明の目的は、システム全体の動作周波数を高くすることなく、局所集中アクセスマスタ及び固定レートアクセスマスタが必要とするバンド幅を、保証することができる調停装置を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、共有メモリに対するアクセスを所定のバンド幅で各マスタ装置に行わせるよう、マスタ装置間の調停を行う調停装置であって、特定のマスタ装置から前記共有メモリに対するアクセス要求を受け付ける受付手段と、前記受付手段が予め割り当てられているバンド幅以上のアクセス要求を前記特定のマスタ装置から受け付けた場合、予め設定した第１期間においてその要求を許可し、第１期間が終了すれば、当該第１期間に続く第２期間において前記特定のマスタ装置からのアクセス要求をマスクし、第２期間が終了すれば、当該第２期間に続く第３期間において前記特定のマスタ装置からの、予め割り当てられているバンド幅を超えるアクセス要求をマスクするアクセス制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明は、上記の構成を備えることにより、局所集中アクセスマスタが特定のマスタ装置として、メモリアクセスを要求してきた場合、第１期間において、その要求を認める。こうすることにより、局所集中マスタが必要とするバンド幅は保証される。局所集中アクセスマスタに対してメモリアクセスが許可されれば、固定レートアクセスマスタは第１期間においてアクセスを行うことができず、処理に遅れが生じる。その代わりに第１期間に続く第２期間において、局所集中アクセスマスタからのアクセス要求をマスクする。第２期間において、固定レートアクセスマスタはアクセスを独占することができるので、帰線期間に処理を行う等して、処理の遅れを挽回することができる。こうすることで、固定レートアクセスマスタは、局所集中アクセスマスタに、アクセス権を譲ることで生じた遅れを挽回することができる。割り当てられたバンド幅以上のアクセスを認める反面、局所集中アクセスマスタによるアクセスをマスクするので、トータルとしてのアクセス頻度は、固定レートアクセスマスタと、局所集中アクセスマスタとで変わらない。トータルで必要なバンド幅を、ある一定値以下にすることができるので、本発明は、固定レートアクセスマスタ、局所集中アクセスマスタを同一システム内で、うまく共存させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第一実施形態におけるアクセス調停部の機能ブロック図である。
【図２】リクエスト制限部１５のブロック図である。
【図３】統括リクエスト制限部１７のブロック図である。
【図４】アクセス権制御部３４及び借入パラメータ保持部３３の詳細図である。
【図５】状態遷移を示す図である。
【図６】局所集中アクセスマスタ１３のアクセス許可信号を発行したときのカウンタ制御について示すフローチャートである。
【図７】固定レートアクセスマスタ１４のアクセス許可信号を発行したときのカウンタ制御について示すフローチャートである。
【図８】局所集中アクセスマスタ１３のサイクル数に示される期間を経過したときのカウンタ制御について示すフローチャートである。
【図９】固定レートアクセスマスタ１４のサイクル数に示される期間を経過したときのカウンタ制御について示すフローチャートである。
【図１０】マスタＣカウンタ及びマスタＤカウンタの変化を時系列に表した図である。
【図１１】従来のシステムに必要な総バンド幅の算出説明図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
（第一実施形態）
＜構成＞
図１は、本発明の第一実施形態におけるアクセス調停部の機能ブロック図である。ここで、マスタ１１、マスタ１２、局所集中アクセスマスタ１３、及び固定レートアクセスマスタ１４は、それぞれ共有メモリに対するアクセスを行う制御ユニットである。
【００１４】
局所集中アクセスマスタ１３は、例えばＣＰＵのように、アクセスが局所的に集中して行われる場合もあれば、一定期間全く行われない場合もある制御ユニットである。一般にアクセス発生頻度が予測不可能、もしくは困難であるため、リクエストの先行発行やパイプライン実行の実装が困難である。
固定レートアクセスマスタ１４は、アクセス保証期間内に一定のアクセスを保証する必要がある制御ユニットである。ここで、アクセス保証期間とは、例えばビデオのエンコード・デコード処理における１マクロブロック処理期間、１マクロブロックスライス処理期間、１フレーム処理期間、オーディオのエンコード・デコード処理における１フレーム処理期間、ビデオ出力における１フィールド表示期間、１ライン表示期間、等の特定の処理周期となり得る期間を指す。
【００１５】
図１に示すように、マスタ１１は、リクエスト制限部１５を経由して、調停部１８と接続される。マスタ１１は、必要に応じて、アクセス要求信号をリクエスト制限部１５に発行する。
同様にマスタ１２は、リクエスト制限部１６を経由して、調停部１８と接続される。マスタ１２は、必要に応じて、アクセス要求信号をリクエスト制限部１６に発行する。
【００１６】
局所集中アクセスマスタ１３及び固定レートアクセスマスタ１４は、統括リクエスト制限部１７を経由して、調停部１８と接続される。局所集中アクセスマスタ１３及び固定レートアクセスマスタ１４は、必要に応じて、アクセス要求信号を統括リクエスト制限部１７に発行する。
リクエスト制限部１５、リクエスト制限部１６、及び統括リクエスト制限部１７は、過去のアクセス履歴と、予め設定された許容アクセス頻度を元に、受け取ったアクセス要求信号をそのまま出力するか、マスクして出力するかの判断を行う。そして、判断結果に応じて調停部１８にアクセス要求信号、又はマスク処理後のアクセス要求信号を出力する。
【００１７】
調停部１８は、リクエスト制限部１５、リクエスト制限部１６、及び統括リクエスト制限部１７から発行されたアクセス要求信号、又はマスク処理後のアクセス要求信号に対し、予め決められた固定優先順位に従って調停を行う。そして、マスタ１１、マスタ１２、局所集中アクセスマスタ１３、固定レートアクセスマスタ１４、リクエスト制限部１５、リクエスト制限部１６、及び統括リクエスト制限部１７に、それぞれアクセス許可信号を発行すると同時に、共有メモリに対してアクセス要求信号を発行する。
【００１８】
続いて、リクエスト制限部１５の詳細を説明する。リクエスト制限部１５の詳細なブロック図を図２に示す。リクエスト制限部１６は、リクエスト制限部１５と同様の構成であるため、ここではリクエスト制限部１５についてのみ説明する。
リクエスト制限部１５は、パラメータ保持部２１と、アクセス頻度管理部２２と、リクエストマスク部２３とを含む。
【００１９】
パラメータ保持部２１は、マスタ１１の許容アクセス頻度を示す制御パラメータ信号を受け取り、保持する。制御パラメータは、外部からユーザによって設定される。
ここで、許容アクセス頻度を示す制御パラメータは、マスタ１１のサイクル数と、サイクル数に示される期間内に保証すべきアクセスサイズ情報、もしくはアクセス回数の情報とを含む。
【００２０】
アクセス頻度管理部２２は、パラメータ保持部２１からの制御パラメータ信号と、マスタ１１からの転送サイズ情報或いはアクセス回数、及び調停部１８からのアクセス許可信号を受け取る。マスタ１１のアクセスが許容アクセス頻度以上の場合には、リクエストマスク部２３にマスク信号を発行する。
また、アクセス頻度管理部２２は、アクセス頻度の管理を、アクセス回数で管理しても、アクセスサイズで管理してもよい。アクセス回数で管理する場合は、例えば、マスタ１１からのアクセス回数が1の場合には、調停部１８からのアクセス許可信号を受け取った際に、アクセスカウンタを１つインクリメントする。そして、マスタ１１のサイクル数に示される期間の経過毎に、アクセスカウンタを、サイクル数に示される期間内に保証すべきアクセス回数分、デクリメントする制御により、アクセス頻度の管理を実現できる。一方、アクセスサイズで管理する場合は、調停部１８からのアクセス許可信号を受け取った際に、アクセスサイズカウンタを、マスタ１１からの転送サイズ情報が示すサイズ分、インクリメントする。そして、マスタ１１のサイクル数に示される期間の経過毎に、アクセスサイズカウンタを、サイクル数に示される期間内に保証すべきアクセスサイズ情報が示すサイズ分、デクリメントする制御により、アクセス頻度の管理を実現できる。
【００２１】
リクエストマスク部２３は、マスタ１１からのアクセス要求信号を受け取る。また、マスタ１１のアクセスが許容アクセス頻度以上の場合に発行されるマスク信号を受け取る。アクセス頻度管理部２２からのマスク信号がある場合には、マスタ１１からのアクセス要求信号をマスクした、マスク処理後のアクセス要求信号を調停部１８に発行する。マスク信号がない場合には、マスクせずにアクセス要求信号を調停部１８に発行する。
【００２２】
続いて、統括リクエスト制限部１７の詳細を説明する。統括リクエスト制限部１７の詳細ブロック図を図３に示す。統括リクエスト制限部１７の構成は、リクエスト制限部１５と構成的に類似しているため、異なる点のみ以下に説明する。
統括リクエスト制限部１７は、１つの局所集中アクセスマスタ１３と、１つの固定レートアクセスマスタ１４に接続され、それぞれからアクセス要求信号と、転送サイズ情報もしくはアクセス回数とを受け取る。統括リクエスト制限部１７は、借入パラメータ保持部３３と、アクセス権制御部３４とを含む。
【００２３】
借入パラメータ保持部３３は、マスタ間のアクセス権の貸し借りを行うための借入パラメータ信号を受け取り、保持する。借入パラメータは、外部からユーザによって設定される。
ここで、マスタ間のアクセス権の貸し借りを行うための借入パラメータ信号は、アクセス権の借入を行うことができる最大期間情報（レベル１の期間情報）と、一度借入を行ってから再び借入可能になるまでの周期時間情報（レベル１の開始からレベル３の終了までの期間）と、アクセス権の借入ができる最大借入回数とを含む。なお、最大借入回数でなく、最大借入サイズでも良い。
【００２４】
アクセス権制御部３４は、局所集中アクセスマスタ１３からのアクセス要求があると、借入パラメータ保持部３３から出力される借入パラメータ信号と、パラメータ保持部３１からの制御パラメータ信号と、局所集中アクセスマスタ１３からの転送サイズ情報もしくはアクセス回数とを受け取る。同様に、固定レートアクセスマスタ１４からのアクセス要求があると、借入パラメータ保持部３３から出力される借入パラメータ信号と、パラメータ保持部３５からの制御パラメータ信号と、固定レートアクセスマスタ１４からの転送サイズ情報もしくはアクセス回数とを受け取る。そして、それぞれのマスタからのアクセス要求信号を受け取るリクエストマスク部３２及びリクエストマスク部３６へ、それぞれマスク信号を出力する。また、調停部１８からのアクセス許可信号を受け取る。
【００２５】
このように、リクエストマスク部３２及びリクエストマスク部３６が、それぞれのマスタからのアクセス要求信号をマスクするマスク信号を、アクセス権制御部３４から受け取る点がリクエスト制限部１５と異なる。
続いて、借入パラメータ保持部３３及びアクセス権制御部３４の詳細な構成について図４を用いて説明する。
【００２６】
借入パラメータ保持部３３は、アクセス権の借入を行うことができる最大期間情報と、一度借入を行ってから再び借入可能になるまでの周期時間情報と、アクセス権の借入ができる最大借入回数とを保持する。
アクセス権制御部３４は、局所集中アクセスマスタ１３用のアクセスカウンタ４１及びサイクルカウンタ４２と、固定レートアクセスマスタ１４用のアクセスカウンタ４３及びサイクルカウンタ４４と、状態カウンタ４５と、周期カウンタ４６と、履歴キュー４７と、制御部４８とを含む。
【００２７】
局所集中アクセスマスタ１３用のアクセスカウンタ４１は、局所集中アクセスマスタ１３のコマンド受付時にインクリメントされ、局所集中アクセスマスタ１３のサイクル数に示される期間を経過すると、サイクル数に示される期間内に保証すべきアクセス回数分だけデクリメントされる。
固定レートアクセスマスタ１４用のアクセスカウンタ４３は、固定レートアクセスマスタ１４のコマンド受付時にインクリメントされ、固定レートアクセスマスタ１４のサイクル数に示される期間を経過すると、サイクル数に示される期間内に保証すべきアクセス回数分だけデクリメントされる。また、局所集中アクセスマスタ１３が固定レートアクセスマスタ１４のアクセス権を借入した場合にもインクリメントされ、借入があった場合には、局所集中アクセスマスタ１３のサイクル数に示される期間を経過するとデクリメントされる。
【００２８】
局所集中アクセスマスタ１３用のサイクルカウンタ４２は、インクリメンターであり、パラメータ保持部３１に保持されている局所集中アクセスマスタ１３のサイクル数を計るカウンタである。
固定レートアクセスマスタ１４用のサイクルカウンタ４４は、インクリメンターであり、パラメータ保持部３５に保持されている固定レートアクセスマスタ１４のサイクル数を計るカウンタである。
【００２９】
状態カウンタ４５は、レベル１の期間を計るカウンタである。
周期カウンタ４６は、一度借入を行ってから、再び借入可能になるまでの期間を計るカウンタである。
履歴キュー４７は、局所集中アクセスマスタ１３が固定レートアクセスマスタ１４のバンド幅を使用した場合に、固定レートアクセスマスタ１４のＩＤを保持する。
【００３０】
制御部４８は、局所集中アクセスマスタ１３からの転送サイズ情報もしくはアクセス回数、または固定レートアクセスマスタ１４からの転送サイズ情報もしくはアクセス回数と、パラメータ保持部３１またはパラメータ保持部３５から出力されるパラメータ信号と、過去のアクセス履歴とを比較、考量し、その結果に応じてＨｉ又はＬｏｗのマスク信号を出力する。また、レベル１の状態においては借入パラメータ保持部３３から出力される借入パラメータ信号も踏まえてマスク信号を出力する。
＜状態遷移＞
続いて、アクセス権制御部３４の状態遷移について説明する。本実施形態において、アクセス権制御部３４は図５に示すような状態遷移を持つ。各状態の意味は以下のとおりである。
【００３１】
レベル０は、アクセス権の貸し借りがなく、局所集中アクセスマスタ１３及び固定レートアクセスマスタ１４が予め設定されたアクセス頻度内で動作している状態である。
レベル１は、局所集中アクセスマスタ１３のアクセスが、固定レートアクセスマスタ１４からアクセス権を借入して、設定された自己のアクセス頻度以上のレートでアクセスを行っている状態である。一方、固定レートアクセスマスタ１４のアクセスは行われない。
【００３２】
レベル２は、局所集中アクセスマスタ１４が借入したアクセス権を、借入先マスタ（固定レートアクセスマスタ１４）に返却している状態である。局所集中アクセスマスタ１３のアクセスは行われない。
レベル３は、局所集中アクセスマスタ１３が借入したアクセス権をすべて返却済みの状態でかつ、局所集中アクセスマスタ１３のアクセスが、固定レートアクセスマスタ１４からアクセス権を借入できない状態である。
【００３３】
ここで、レベル１の期間は、設計者が任意に設定することが可能である。レベル２の期間は、以下の式より求めることができる。
レベル２の期間＝｛（局所集中アクセスマスタ１３のサイクル数で示される期間に保証すべきアクセス回数＋アクセス権の借入ができる最大借入回数）÷局所集中アクセスマスタ１３のサイクル数で示される期間に保証すべきアクセス回数｝×局所集中アクセスマスタ１３のサイクル数
なお、保証すべきアクセス回数が２以上の場合には、｛（局所集中アクセスマスタ１３のサイクル数で示される期間に保証すべきアクセス回数＋アクセス権の借入ができる最大借入回数）÷局所集中アクセスマスタ１３のサイクル数で示される期間に保証すべきアクセス回数｝で求まる解において、端数が存在する場合は端数を切り上げる。
【００３４】
レベル２の期間を設けることでレベル１の期間があったとしても、アクセス保証期間におけるトータルの平均バンド幅は同じになる。
また、局所集中アクセスマスタ１３のピークバンド幅は、以下の式より求めることができる。
ピークバンド幅＝動作周波数ｆ×（局所集中アクセスマスタ１３のサイクル数で示される期間に保証すべきアクセス回数＋アクセス権の借入ができる最大借入回数）／局所集中アクセスマスタ１３のサイクル数
設計者は、レベル１、レベル２、及びレベル３の区間を合計すると、アクセス保証期間になるように設定しておく。
【００３５】
続いて、図５で示す各状態の遷移条件について説明する。
条件１は、局所集中アクセスマスタ１３が、予め設定されたアクセス頻度以上のアクセスを行うことである。
条件２は、局所集中アクセスマスタ１３が、アクセス権の借入を行ってから、アクセス権の借入を行うことができる最大期間が経過することである。
【００３６】
条件３は、局所集中アクセスマスタ１３が借入したアクセス権をすべて返却することである。
条件４は、局所集中アクセスマスタ１３が、アクセス権の借入を行ってから、再び借入可能になるまでの周期時間が経過することである。
＜動作＞
続いて、調停部１８が、局所集中アクセスマスタ１３のアクセス許可信号を発行したときのカウンタ制御について図６に示すフローチャートを用いて説明する。
【００３７】
局所集中アクセスマスタ１３のアクセス許可信号が発行されると、局所集中アクセスマスタ用アクセスカウンタ４１を１インクリメントする（ステップＳ６０１）。次に、局所集中アクセスマスタ用アクセスカウンタ４１が２以上か否かを判断する（ステップＳ６０２）。２以上の場合は、固定レートアクセスマスタ用アクセスカウンタ４３を１インクリメントし（ステップＳ６０３）、履歴キュー４７に固定レートアクセスマスタ１４のＩＤを格納する（ステップＳ６０４）。２未満の場合は処理を終了する。
【００３８】
続いて、調停部１８が、固定レートアクセスマスタ１４のアクセス許可信号を発行したときのカウンタ制御について図７に示すフローチャートを用いて説明する。
固定レートアクセスマスタ１４のアクセス許可信号が発行されると、固定レートアクセスマスタ用アクセスカウンタ４３を１インクリメントし（ステップＳ７０１）、処理を終了する。
【００３９】
続いて、局所集中アクセスマスタ１３のサイクル数に示される期間を経過したときのカウンタ制御について図８に示すフローチャートを用いて説明する。
局所集中アクセスマスタ１３のサイクル数に示される期間を経過すると、局所集中アクセスマスタ用アクセスカウンタ４１を１デクリメントする（ステップＳ８０１）。次に、履歴キュー４７に固定レートアクセスマスタのＩＤがあるか否かを判断する（ステップＳ８０２）。固定レートアクセスマスタ１４のＩＤがある場合は、固定レートアクセスマスタ用アクセスカウンタ４３を１デクリメントし（ステップＳ８０３）、履歴キュー４７にある固定レートアクセスマスタ１４のＩＤを削除する（ステップＳ８０４）。固定レートアクセスマスタのＩＤがない場合は処理を終了する。
【００４０】
続いて、固定レートアクセスマスタ１４のサイクル数に示される期間を経過したときのカウンタ制御について図９に示すフローチャートを用いて説明する。
固定レートアクセスマスタ１４のサイクル数に示される期間を経過すると、固定レートアクセスマスタ用アクセスカウンタ４３を１デクリメントし（ステップＳ９０１）、処理を終了する。
【００４１】
なお、局所集中アクセスマスタ１３及び固定レートアクセスマスタ１４のサイクル数に示される期間内に保証すべきアクセス回数は、共に１回であるとする。
続いて具体的な動作について、図１０を用いて説明する。図１０は、マスタＣとマスタＤのカウンタの変化を時系列に表した図である。ここで、マスタＣは局所集中アクセスマスタ１３を示し、マスタＣコマンドとは、マスタＣが共有メモリにアクセスする際に発行されるコマンドである。また、マスタＤは固定レートアクセスマスタ１４を示し、マスタＤコマンドとは、マスタＤが共有メモリにアクセスする際に発行されるコマンドである。第一段は、マスタＣのカウント値の変移を示す。縦軸は、マスタＣカウンタのカウント値であり、横軸は時間である。第二段は、アクセス権制御部３４の状態遷移を示す。第三段は、履歴キューを示す。第四段は、マスタＤのカウント値の変移を示す。縦軸は、マスタＤカウンタのカウント値であり、横軸は時間である。また、マスタＣのサイクル数は３０７ｃｌｋであり、サイクル数に示される期間内に保証すべきアクセス回数は１回とする。マスタＤのサイクル数は９４９ｃｌｋであり、サイクル数に示される期間内に保証すべきアクセス回数は３回とする。つまり、レベル１の区間においてマスタＣは、自身の許容アクセス回数である１回を超え、最大でカウント値が４になるまでアクセスすることができる。
【００４２】
まず、Ｔ１において、マスタＣコマンドが発行されている。Ｔ１の時点ではマスタＣカウンタのカウント値は０であるので、マスタＣカウンタを１インクリメントする。Ｔ２において、マスタＣのサイクル数に示される期間を経過したので、１デクリメントされ、カウント値は０になる。続いて、Ｔ３において、再びマスタＣコマンドが発行され、マスタＣカウンタのカウント値は０であるので、マスタＣカウンタを１インクリメントする。次に、Ｔ４において、再びコマンドが発行されている。しかし、すでにマスタＣのカウント値は１である。よって、マスタＤからアクセス権を借り、マスタＣのレートを超えたアクセスを開始する。マスタＣカウンタを１インクリメントし、マスタＤのカウンタも１インクリメントする。そして、履歴キューにマスタＤを示すＩＤを格納する。ここで、Ｔ４の時点がレベル１の開始時点となる。Ｔ５及びＴ６において、マスタＣコマンドが発行されている。よって、同様にマスタＣカウンタを１ずつインクリメントし、マスタＤのカウンタも１ずつインクリメントする。そして、履歴キューにマスタＤを示すＩＤを格納する。Ｔ７において、マスタＣのサイクル数に示される期間を経過したので、マスタＣカウンタは１デクリメントされ、カウント値は３になる。更に、Ｔ４の時点でマスタＤに借りていたアクセス権を返還する。よって、マスタＤカウンタも１デクリメントされ、カウント値は２となる。再びＴ８の時点でマスタＣコマンドが発行されている。まだ、レベル１の区間であるので、マスタＤからアクセス権を借りる。つまり、マスタＣカウンタを１インクリメントし、マスタＤのカウンタも１インクリメントする。そして、履歴キューにマスタＤを示すＩＤを格納する。Ｔ９の時点でレベル１の期間は終了する。よってＴ９以降は、マスタＣはマスタＣカウンタのカウント値が０になるまでアクセスできない。つまり、Ｔ９からレベル２の区間となる。Ｔ１０において、マスタＣのサイクル数に示される期間を経過したので、マスタＣカウンタのカウント値は１デクリメントされ、３になる。一方、マスタＤカウンタのカウント値は、マスタＣから返還されて１デクリメントするのに加え、さらにマスタＤのサイクル数に示される期間を経過したので、３デクリメントされ、カウント値は−１となる。Ｔ１１、Ｔ１２、及びＴ１３においては、マスタＤコマンドが発行され、マスタＤカウンタのカウント値をそれぞれ１ずつインクリメントする。Ｔ１４において、マスタＣのサイクル数に示される期間を経過したので、マスタＣカウンタのカウント値は１デクリメントされ、２になる。一方、マスタＤカウンタのカウント値も同様に１デクリメントするので、マスタＤカウンタのカウント値は１になる。Ｔ１５及びＴ１６において、マスタＤコマンドが発行され、マスタＤカウンタのカウント値をそれぞれ１ずつインクリメントする。Ｔ１７において、マスタＣのサイクル数に示される期間を経過したので、マスタＣカウンタのカウント値は１デクリメントされ１になる。一方、マスタＤカウンタのカウント値も同様に１デクリメントするので、マスタＤカウンタのカウント値は２になる。ここで、マスタＣがレベル１の区間において、履歴キューに示すように、マスタＤより借入したアクセス権はすべて返還される。つまり、この時点でレベル２の期間が終了する。続いてレベル３の区間となる。Ｔ１８において、マスタＤコマンドが発行され、マスタＤカウンタのカウント値を１インクリメントする。Ｔ１９において、マスタＣのサイクル数に示される期間を経過したので、マスタＣカウンタのカウント値は１デクリメントされ、０になる。一方、マスタＤカウンタのカウント値は、マスタＤのサイクル数に示される期間を経過したので、３デクリメントされ、カウント値は０となる。
【００４３】
以上のように、特定の期間（レベル１の期間）が終了すると、マスタＣのアクセスは、マスタＣのアクセスカウンタが０になるまで禁止され、その間マスタＣが特定の期間に利用していたバンド幅をマスタＤに返却する。よって、マスタＤはアクセス保証期間内で、トータルバンド幅を保証される。また、アクセス権借入制御は、マスタＣが自己のバンド幅レートを超えたアクセスをされたところから開始される。
【００４４】
次に、アクセス権制御部３４の各状態における各マスク信号の生成手順について説明する。
アクセス権制御部３４は、初期状態では、前述したレベル０の状態にある。この状態では、局所集中アクセスマスタ１３のリクエストマスク部３２に対するマスク信号は常にＬｏｗが出力される。一方、固定レートアクセスマスタ１４のリクエストマスク部３６に対するマスク信号は次の通りである。固定レートアクセスマスタ１４からの転送サイズ情報もしくはアクセス回数と、パラメータ保持部３５から出力されるパラメータ信号の一つである固定レートアクセスマスタ１４の許容アクセス頻度と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値とを比較、考量する。転送サイズ情報もしくはアクセス回数と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値との和が許容アクセス頻度を超える場合には、Ｈｉが出力される。超えない場合は、Ｌｏｗが出力される。
【００４５】
ここで、出力されるマスク信号がＬｏｗの場合は、アクセス要求信号はマスクされない。出力されるマスク信号がＨｉの場合は、アクセス要求信号はマスクされる。
レベル１の状態では、固定レートアクセスマスタ１４のリクエストマスク部３６に対するマスク信号は、常にＨｉが出力される。一方、局所集中アクセスマスタ１３のリクエストマスク部３２に対するマスク信号は次の通りである。局所集中アクセスマスタ１３からの転送サイズ情報もしくはアクセス回数と、パラメータ保持部３１から出力されるパラメータ信号である局所集中アクセスマスタ１３の許容アクセス頻度と借入パラメータ保持部３３から出力される借入パラメータ信号の一つであるアクセス権の借入ができる最大借入回数もしくは最大借入サイズとの総和と、局所集中アクセスマスタ１３用のアクセスカウンタ４１の値とを比較、考量する。転送サイズ情報もしくはアクセス回数と、局所集中アクセスマスタ１３用のアクセスカウンタ４１の値との和が、前記総和を超える場合には、Ｈｉが出力される。超えない場合は、Ｌｏｗが出力される。
【００４６】
レベル２の状態では、局所集中アクセスマスタ１３のリクエストマスク部３２に対するマスク信号は、常にＨｉが出力される。一方、固定レートアクセスマスタ１４のリクエストマスク部３６に対するマスク信号は次の通りである。固定レートアクセスマスタ１４からの転送サイズ情報もしくはアクセス回数と、パラメータ保持部３５から出力されるパラメータ信号の一つである固定レートアクセスマスタ１４の許容アクセス頻度と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値とを比較、考量する。転送サイズ情報もしくはアクセス回数と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値との和が前記許容アクセス頻度を超える場合には、Ｈｉが出力される。超えない場合は、Ｌｏｗが出力される。
【００４７】
レベル３の状態では、局所集中アクセスマスタ１３のリクエストマスク部３２に対するマスク信号は次の通りである。局所集中アクセスマスタ１３からの転送サイズ情報もしくはアクセス回数と、パラメータ保持部３１から出力されるパラメータ信号である局所集中アクセスマスタ１３の許容アクセス頻度と、局所集中アクセスマスタ１３用のアクセスカウンタ４１の値とを比較、考量する。転送サイズ情報もしくはアクセス回数と、局所集中アクセスマスタ１３用のアクセスカウンタ４１の値との和が前記許容アクセス頻度を超える場合には、Ｈｉが出力される。超えない場合は、Ｌｏｗが出力される。一方、固定レートアクセスマスタ１４のリクエストマスク部３６に対するマスク信号は次の通りである。固定レートアクセスマスタ１４からの転送サイズ情報もしくはアクセス回数と、パラメータ保持部３５から出力されるパラメータ信号の一つである固定レートアクセスマスタ１４の許容アクセス頻度と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値とを比較、考量する。転送サイズ情報もしくはアクセス回数と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値との和が前記許容アクセス頻度を超える場合には、Ｈｉが出力される。超えない場合は、Ｌｏｗが出力される。
【００４８】
以上のように本実施形態によれば、局所的に発生する平均バンド幅以上のピークアクセスを行うＣＰＵのような局所集中アクセスマスタ１３と、固定レートアクセスマスタ１４とが同一メモリを共有するシステムにおいて、平均総バンド幅を保証するメモリで、局所集中アクセスマスタのピークアクセス性能を保証することができる。
（第二実施形態）
第一実施形態では、統括リクエスト制限部１７のアクセス権制御部３４がレベル１の状態のときは、固定レートアクセスマスタ１４は常にマスクされていた。本実施形態は、第一実施形態の統括リクエスト制限部１７のアクセス権制御部３４がレベル１の状態であっても、固定レートアクセスマスタ１４のアクセスを特定の頻度で許可する実施の形態である。
【００４９】
そこで本実施形態では、借入パラメータ保持部３３は、更に固定レートアクセスマスタ１４の最低保証アクセス頻度情報を保持する。そして、アクセス権制御部３４がレベル１の状態では、固定レートアクセスマスタ１４のリクエストマスク部３６に対するマスク信号は次のようになる。固定レートアクセスマスタ１４からの転送サイズ情報もしくはアクセス回数と、借入パラメータ保持部３３から出力される借入パラメータ信号の一つである固定レートアクセスマスタ１４の最低保証アクセス頻度と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値とを比較、考量する。転送サイズ情報もしくはアクセス回数と、固定レートアクセスマスタ１４用のアクセスカウンタ４３の値との和が前記最低保証アクセス頻度を超える場合には、Ｈｉが出力される。超えない場合は、Ｌｏｗが出力される。
【００５０】
以上のように本実施形態によれば、固定レートアクセスマスタ１４のアクセスを止めることなく、局所集中アクセスマスタ１３のピークアクセスを保証することができる。
（第三実施形態）
第一実施形態では、統括リクエスト制限部１７は、１つの局所集中アクセスマスタ１３と、一つの固定レートアクセスマスタ１４に接続されていた。本実施形態は、第一実施形態の統括リクエスト制限部１７が、１つの局所集中アクセスマスタ１３と、複数の固定レートアクセスマスタに接続され、それぞれからアクセス要求信号と、アクセス回数もしくは転送サイズ情報とを受け取る実施の形態である。
【００５１】
本実施形態では、アクセス権制御部３４における、局所集中アクセスマスタ１３のアクセス権制御は、以下の３つの制御の何れかにより実現できる。
第一は、局所集中アクセスマスタ１３からアクセス権借入が必要となった時点で、各固定レートアクセスマスタに対応するアクセスカウンタにおいて、最もアクセス頻度が低いマスタからアクセス権を借入する制御を行う。
【００５２】
第二は、局所集中アクセスマスタ１３からアクセス権借入が必要となった時点で、各固定レートアクセスマスタに対応するアクセスカウンタの値が、予め決められた借入許可最大アクセス頻度を下回るマスタからアクセス権を借入する制御を行う。ここで、借入パラメータ保持部３３は、予め決められた借入許可最大アクセス頻度を保持する。これにより、任意の設定が可能となる。
【００５３】
第三は、予め局所集中アクセスマスタ１３がアクセス権借入を行う期間（アクセス権制御部３４の状態がレベル１の期間）を複数の区間に分割し、分割された各区間別に、アクセス権を借入させる固定レートアクセスマスタを規定しておく。局所集中アクセスマスタ１３からアクセス権借入が必要となった時、その時間を含む区間に割り当てられている固定レートアクセスマスタからアクセス権を借入する制御を行う。ここで、借入パラメータ保持部３３は、前記複数の区間の分割パラメータと、各区間の固定レートアクセスマスタの割り当て情報とを保持する。これにより、任意の設定が可能となる。
【００５４】
以上のように本実施形態によれば、局所集中アクセスマスタ１３のピークアクセスの保証を、１つの固定レートアクセスマスタからのアクセス権借入だけでは実現できない場合においても、複数の固定レートアクセスマスタからアクセス権の借入を行うことにより、実現することができる。
なお、本実施形態において、統括リクエスト制限部１７は、１つの局所集中アクセスマスタと複数の固定レートアクセスマスタに接続された構成を例に説明したが、各々複数の局所集中アクセスマスタ、固定レートアクセスマスタに接続された構成としても良い。
【００５５】
また、統括リクエスト制限部１７に接続されるマスタとしては、マスタの要求性能の基準となるサイクル数が類似する、もしくは定倍となるマスタを選択することが、借入パラメータの設定の容易性の観点からも望ましい。
（補足）
以上、本発明に係る調停装置について、実施の形態に基づいて説明したが、本発明は上記の実施の形態に限られないことは勿論である。
【００５６】
上記の実施形態では、調停部１８を回路実装の容易性から固定優先順位アービタとしたが、従来のラウンドロビン方式でも、動的に優先順位を変えることのできるアービタとしても良い。
上記の実施形態では、レベル２の後にレベル３の期間を設けたが、図５の点線で示すように、アクセス権制御部３４は、レベル３の状態をもたず、レベル２から条件３により、レベル０に移行する制御を行ってもよい。
【００５７】
上記の実施形態では、パラメータ保持部２１、パラメータ保持部３１、パラメータ保持部３５、及び借入パラメータ保持部３３は、それぞれ個別に存在する構成であったが、これらは一部を１つのパラメータ保持部で管理する構成としても、すべてを１つのパラメータ保持部で管理する構成としてもよい。
上記の実施形態では、パラメータ保持部２１、パラメータ保持部３１、パラメータ保持部３５、及び借入パラメータ保持部３３は、リクエスト制限部１５及び統括リクエスト制限部１７内に存在する構成であったが、これらは、リクエスト制限部１５及び統括リクエスト制限部１７の外に存在する構成としてもよい。
【００５８】
上記の実施形態では、局所集中アクセスマスタ１３を、ＣＰＵのように、アクセスが局所的に集中して行われる場合もあれば、一定期間全く行われない場合もある制御ユニットとして、固定レートアクセスマスタ１４を、アクセス保証期間内に一定のアクセスを保証する必要がある制御ユニットとして説明してきたが、局所集中アクセスマスタ１３及び固定レートアクセスマスタ１４をそれぞれ、アクセス保証期間の短い制御ユニットと長い制御ユニットとしても、即応性重視の制御ユニットとレート保証重視の制御ユニットとしても、アクセス予測不可能な制御ユニットとアクセス予測可能な制御ユニットとしてもよい。
【００５９】
上記のフローチャートでは、局所集中アクセスマスタ１３及び固定レートアクセスマスタ１４のサイクル数に示される期間内に保証すべきアクセス回数は、共に１回であるとしたが、保証すべきアクセス回数はそれぞれ複数であっても良い。その場合には、図６のＳ６０２では、局所集中アクセスマスタ用アクセスカウンタ４１が、局所集中アクセスマスタ１３のサイクル数に示される期間内に保証すべきアクセス回数に１加算した値以上であるか否かを判断する。また、図８のＳ８０３では、局所集中アクセスマスタ１３のサイクル数に示される期間内に保証すべきアクセス回数と、借入回数とを比較し、小さい方の値だけデクリメントする。両者の値が同じ場合は、その値分だけデクリメントする。また、図８のＳ８０１では、局所集中アクセスマスタ用アクセスカウンタ４１は、局所集中アクセスマスタ１３のサイクル数に示される期間内に保証すべきアクセス回数分デクリメントする。同様に図９のＳ９０１では、固定レートアクセスマスタ用アクセスカウンタ４３は、固定レートアクセスマスタ１４のサイクル数に示される期間内に保証すべきアクセス回数分デクリメントする。
【００６０】
上記の実施形態では、メモリアクセスについて述べたが、メモリアクセス以外でも良い。
上記の実施形態では、調停装置を用いたが、本発明は上記フローチャートで示したステップを含む方法、システムＬＳＩ等の集積回路であっても良い。
【産業上の利用可能性】
【００６１】
本発明にかかる調停装置は、製造産業において経営的に、また継続的及び反復的に製造し、販売することができる。また、局所集中アクセスが存在するマスタを内在するシステムにおいて、低いバンド幅でピーク時のアクセス性能をも保証する特徴を有し、ユニファイドメモリアーキテクチャ構成をとるシステムＬＳＩのメモリ調停回路等として有用である。また内蔵ＤＲＡＭ、内部ＳＲＡＭに対するアクセス調停回路等の用途にも応用できる。
【符号の説明】
【００６２】
１１  マスタ
１２  マスタ
１３  局所集中アクセスマスタ
１４  固定レートアクセスマスタ
１５  リクエスト制限部
１６  リクエスト制限部
１７  統括リクエスト制限部
１８  調停部
２１  パラメータ保持部
２２  アクセス頻度管理部
２３  リクエストマスク部
３１  パラメータ保持部
３２  リクエストマスク部
３３  借入パラメータ保持部
３４  アクセス権制御部
３５  パラメータ保持部
３６  リクエストマスク部
４１  局所集中サクセスマスタ用アクセスカウンタ
４２  局所集中サクセスマスタ用サイクルカウンタ
４３  固定レートアクセスマスタ用アクセスカウンタ
４４  固定レートアクセスマスタ用サイクルカウンタ
４５  状態カウンタ
４６  周期カウンタ
４７  履歴キュー
【図１】
0004910022.tif 000002
【図２】
0004910022.tif 000003
【図３】
0004910022.tif 000004
【図４】
0004910022.tif 000005
【図５】
0004910022.tif 000006
【図６】
0004910022.tif 000007
【図７】
0004910022.tif 000008
【図８】
0004910022.tif 000009
【図９】
0004910022.tif 000010
【図１０】
0004910022.tif 000011
【図１１】
0004910022.tif 000012