(57)【要約】【課題】アービトレーション装置の規模の増大化を抑えて実現する。【解決手段】共有資源と前記共有資源に接続された複数の信号処理装置からの共有資源使用要求を調停するアービトレーション装置において、前記複数の信号処理装置と一対一に対応し、前記共有資源使用要求を登録し格納する複数のシフトレジスタと、前記複数のシフトレジスタの各先頭ビットのいずれか一つに登録された前記共有資源使用要求を選択するリクエスト選択部と、前記リクエスト選択部により選択された前記共有資源使用要求を出した前記信号処理装置に対し前記共有資源の使用許可を与えるリクエスト許可部と、を有する。【選択図】図１
2008242651.tif 000002
【特許請求の範囲】
【請求項１】
共有資源と前記共有資源に接続された複数の信号処理装置からの共有資源使用要求を調停するアービトレーション装置において、
前記複数の信号処理装置と一対一に対応し、前記共有資源使用要求を登録し格納する複数のシフトレジスタと、
前記複数のシフトレジスタの各先頭ビットのいずれか一つに登録された前記共有資源使用要求を選択するリクエスト選択部と、
前記リクエスト選択部により選択された前記共有資源使用要求を出した前記信号処理装置に対し前記共有資源の使用許可を与えるリクエスト許可部と、
を有することを特徴とするアービトレーション装置。
【請求項２】
請求項１に記載のアービトレーション装置において、
前記複数の信号処理装置からの前記共有資源使用要求それぞれに対して優先度を設定した優先度設定部を有しており、
前記リクエスト選択部は、前記複数のシフトレジスタの各先頭ビットに複数の前記共有資源使用要求が登録されたとき、前記優先度設定部に設定された優先度に基づいて前記各先頭ビットに登録された前記複数の共有資源使用要求のうちの１つに対して前記共有資源の使用許可を与えること、
を特徴とするアービトレーション装置。
【請求項３】
請求項１に記載のアービトレーション装置において、
前記複数のシフトレジスタの各ビットに前記共有資源使用要求が登録されているか否かを監視する空き状態監視部と、
前記複数の信号処理装置からの前記共有資源使用要求を受け付けて、当該共有資源使用要求を出した前記信号処理装置に対応する前記シフトレジスタに当該共有資源使用要求を登録する共有資源使用要求登録部と、
を有し、
前記共有資源使用要求登録部は、前記空き状態監視部の監視結果に基づいて、前記共有資源使用要求を前記シフトレジスタの先頭ビットまたは前記シフトレジスタの先頭ビット以外のビットに選択的に格納すること、
を特徴とするアービトレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アービトレーション装置に関する。
【背景技術】
【０００２】
アービトレーション装置とは、共有バスを介して共有資源とアクセス可能に接続された複数のバス・マスタからの複数の共有資源使用要求を予め定められた優先度に従って調停し、共有バスを介した共有資源の使用許可を与えるバス・マスタを決定するものである。例えば、アービトレーション装置は、マルチプロセッサ環境下において複数のＣＰＵ（バス・マスタ）が共有バスを介して共通メモリ（共有資源）を使用する場合や、システムバスにＣＰＵ（共有資源）と複数の周辺機器（バス・マスタ）とが接続され、複数の周辺機器がシステムバスを介してＣＰＵを使用する場合等に必要となる。
【０００３】
図７は、従来のアービトレーション装置５００の構成を示した図である。アービトレーション装置５００は、チャネル番号ＣＨ１〜ＣＨｎが各々付与されたＮ個の装置２０−１〜２０ｎからの共有資源使用要求ＲＥＱ１〜ＲＥＱｎの調停を行って、共有資源１０の使用許可を与えるものである。尚、優先度設定レジスタ５２５にはチャネル番号ＣＨ１〜ＣＨｎ毎に優先度が予め設定されている。アービトレーション装置５００は、優先度設定レジスタ５２５に設定された優先度に従って、以下のように共有資源使用要求ＲＥＱ１〜ＲＥＱｎの調停を行う。
【０００４】
リクエスト検出部５１０は、共有資源使用要求ＲＥＱ１〜ＲＥＱｎを受付ける。アクセス要求調整部５２０は、受付された共有資源使用要求ＲＥＱ１〜ＲＥＱｎを調整して、対応するチャネル番号ＣＨ１〜ＣＨｎを調整結果に応じて待ち行列レジスタ５３０に書き込む。尚、待ち行列レジスタ５３０は、ＦＩＦＯ（First In First Out）方式のシフトレジスタで構成される。待ち行列レジスタ５３０の最上位のユニットに格納されるデータＱ１は、現在共有資源１０に対してアクセス権が与えられるチャネル番号を表しており、最上位のユニットより下位のユニットに順番に格納されるデータＱ２〜Ｑｎは待機中のチャネル番号を表している。尚、データＱｎは第ｎ番目の処理待ち順位が与えられたチャネル番号を表す。
【０００５】
バス・アクノリッジセレクト部５４０は、待ち行列レジスタ５３０の最上位のユニットに格納されたデータＱ１に対応した装置２０−１〜２０−ｎに対し、共有資源使用許可ＡＣＫ１〜ＡＣＫｎを出力する。これにより、共有資源使用許可ＡＣＫ１〜ＡＣＫｎを受け取った装置２０−１〜２０−ｎは、共有バス１５を介して共有資源１０へのアクセスが可能となる。
【０００６】
尚、アクセス要求調整部５２０は、優先度設定レジスタ５２５に設定された優先度を用いて処理を行うリクエスト競合調停部５２０１と優先度選択部５２０２を具備する。アクセス要求調整部５２０は、原則として、共有資源使用要求ＲＥＱ１〜ＲＥＱｎを受付けた順に待ち行列レジスタ５３０にチャネル番号の登録を行う。一方、複数の共有資源使用要求ＲＥＱ１〜ＲＥＱｎを同時に受付けた場合、即ち、複数の共有資源使用要求ＲＥＱ１〜ＲＥＱｎが競合した場合には、リクエスト競合調停部５２０１が、優先度選択部５２０２からの優先度のデータを参照して、優先度順に待ち行列レジスタ５３０にチャネル番号の登録を行う。これにより、アクセス要求調整部５２０は、複数の共有資源使用要求ＲＥＱ１〜ＲＥＱｎが競合した場合に、予め定められた優先度に応じて共有資源使用要求ＲＥＱ１〜ＲＥＱｎの調停を行う。
【０００７】
以上のように、従来のアービトレーション装置は、複数の共有資源使用要求の競合が発生したときには、ＦＩＦＯ方式の待ち行列レジスタへ登録を行う前に優先度の判定を行う。さらに、競合した複数の共有資源使用要求を判定された優先度順にソーティングした後に、待ち行列レジスタの最後列ビットから順番に登録を行っている。
【特許文献１】特開２００４−３０２６３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、従来のアービトレーション装置において、複数の共有資源使用要求の競合が発生したときの優先度の判定や優先度順にソーティングする処理をハードウェアにより実現しようとした場合、装置規模の増大化や処理遅延を招くので、その実現が極めて困難であった。
【０００９】
例えば、ｎ個のデータのソーティング処理は、低速アルゴリズム（バブルソート等）の場合にはＯ（ｎの２乗）、高速アルゴリズム（クイックソート等）の場合にはＯ（ｎｌｏｇｎ）といった膨大な計算量となることが知られている。それ故に、アービトレーション装置において、複数の共有資源使用要求のソーティング処理等をデジタル回路により実現しようとした場合、回路規模の増大化の問題が顕著となる。また、ソーティング処理の膨大な計算量に起因して、競合した複数の共有資源使用要求を受け付けてから待ち行列レジスタへの全ての登録が完了するまでに多くの処理時間を必要とする。従って、デジタル回路のクロック信号の周波数を高くしようとすると、１マシンサイクル内で、ソーティング処理等を実行し、且つ、待ち行列レジスタへ登録することは極めて困難となる。
【００１０】
さらに、競合した複数の共有資源使用要求を優先度順に待ち行列レジスタに１つずつ登録していく場合、待ち行列レジスタへの登録を待つ残りの共有資源使用要求のための保持回路を備える必要がある。この保持回路が回路規模の増大化の要因となる。例えば、Ｎ個のバス・マスタが存在する場合、Ｍ個（Ｍ≦Ｎ）の共有資源使用要求が同時に発生する可能性がある。このとき、優先度の最も高い１つの共有資源使用要求を待ち行列レジスタに登録すると、残りのＭ−１個の共有資源使用要求の登録が完了するまでの間、それら残りのＭ−１の共有資源使用要求を保持しておくための保持回路が必要となる。また、残りのＭ−１個の共有資源使用要求の登録が完了するまでの間に、新たに最大Ｎ−Ｍ個の競合した共有資源使用要求が発生する可能性もある。従って、それらの新たに競合した共有資源使用要求を保持するための保持回路が必要となる。
【課題を解決するための手段】
【００１１】
前述した課題を解決するための主たる本発明は、共有資源と前記共有資源に接続された複数の信号処理装置からの共有資源使用要求を調停するアービトレーション装置において、前記複数の信号処理装置と一対一に対応し、前記共有資源使用要求を登録し格納する複数のシフトレジスタと、前記複数のシフトレジスタの各先頭ビットのいずれか一つに登録された前記共有資源使用要求を選択するリクエスト選択部と、前記リクエスト選択部により選択された前記共有資源使用要求を出した前記信号処理装置に対し前記共有資源の使用許可を与えるリクエスト許可部と、を有することとする。
【発明の効果】
【００１２】
本発明によれば、装置規模の増大化を抑えつつ高速で動作が可能なアービトレーション装置を提供することができる。
【発明を実施するための最良の形態】
【００１３】
＜＜第１実施形態＞＞＞
＝＝＝アービトレーション装置の構成＝＝＝
図１を用いて、本発明の第１実施形態に係るアービトレーション装置１００の構成を説明する。
【００１４】
アービトレーション装置１００は、チャネル番号ＣＨ１〜ＣＨｎが各々付与されたＮ個の装置２０−１〜２０−ｎ（バス・マスタ）からの共有資源使用要求ＲＥＱ１〜ＲＥＱｎの調停を行って、共有資源１０の使用許可を与えるものである。アービトレーション装置１００は、リクエスト検出部１１０、リクエスト登録部１２０、ＦＩＦＯレジスタユニット１３０、シフト制御部１４０、優先度設定部１６０、リクエスト選択部１７０、リクエスト許可部１８０を有する。これらの機能はハードウェアを用いて実現される。
【００１５】
リクエスト検出部１１０は、Ｎ個の装置２０−１〜２０−ｎからの共有資源使用要求ＲＥＱ１〜ＲＥＱｎを受付ける。共有資源使用要求ＲＥＱ１〜ＲＥＱｎは、例えば、共有資源１０の使用の要求を出したことを示す“Ｌ”の１ビット相当の１パルスとして表現される。リクエスト検出部１１０は、シフト制御部１４０から供給されたシステムクロックＣＬＫのエッジが発生するタイミングで当該１パルスを取り込み、対応したチャネル番号ＣＨ１〜ＣＨｎを１ビットの“Ｈ”として出力する。即ち、リクエスト検出部１１０は、共有資源使用要求ＲＥＱ１〜ＲＥＱｎとチャネル番号ＣＨ１〜ＣＨｎとを対応づけたテーブル情報（不図示）を有している。そして、当該テーブル情報を参照して該当するチャネル番号ＣＨ１〜ＣＨｎを１ビットの“Ｈ”として出力する。
【００１６】
リクエスト登録部１２０は、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを、シフト制御部１４０から供給されたシステムクロックＣＬＫのエッジが発生するタイミングにより、ＦＩＦＯレジスタユニット１３０のうち対応するＦＩＦＯレジスタ１３５−１〜１３５−ｎに出力する。
【００１７】
ＦＩＦＯレジスタユニット１３０は、Ｎ個の装置２０−１〜２０−ｎ（Ｎ個のバス・マスタ）それぞれに対応したＮ個のＦＩＦＯレジスタ１３５−１〜１３５−ｎを有する。即ち、装置２０−１に対してＦＩＦＯレジスタ１３５−１が設けられ、装置２０−２に対してＦＩＦＯレジスタ１３５−２が設けられ、装置２０−ｎに対してＦＩＦＯレジスタ１３５−ｎが設けられる、というように、装置２０−１〜２０−ｎとＦＩＦＯレジスタ１３５−１〜１３５−ｎは１対１の関係にある。
【００１８】
ＦＩＦＯレジスタ１３５−１〜１３５−ｎは、最初に入力したデータから最初に出力するＦＩＦＯ（First In First Out)方式を採用した「キュー（待ち行列）」と呼ばれるデータ構造体をハードウェアにより具現化したものである。
【００１９】
具体的には、ＦＩＦＯレジスタ１３５−１〜１３５−ｎは、リクエスト登録部１２０から出力されたチャネル番号ＣＨ１〜ＣＨｎを、シフト制御部１４０から供給されたシステムクロックＣＬＫのエッジが発生するタイミングで、最後列ビットＬＳＢ（Least Significant Bit）から先頭ビットＭＳＢ(Most Significant Bit)に向けてシフトするＮビットのシフトレジスタによって構成される。ＦＩＦＯレジスタユニット１３０は、最大Ｎ個のチャネル番号ＣＨ１〜ＣＨｎを保持することができる。
【００２０】
シフト制御部１４０は、Ｎ個のＦＩＦＯレジスタ１３５−１〜１３５−ｎそれぞれに対して、シフト動作を制御するシステムクロックＣＬＫを供給する。尚、システムクロックＣＬＫは、シフト制御部１４０のシフト動作を含めたアービトレーション装置１００全てのハードウェア動作のタイミングを同期させるクロックとして用いられる。
【００２１】
優先度設定部１６０は、共有資源使用要求ＲＥＱ１〜ＲＥＱｎに対して予め優先度を設定する。本実施形態の場合、共有資源使用要求ＲＥＱ１〜ＲＥＱｎが競合した場合に備え、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢ１〜ＭＳＢｎそれぞれに優先度１〜ｎを付与した優先度テーブルを用いて設定する。尚、優先度ｎはｎ番目の優先度を表している。
【００２２】
リクエスト選択部１７０は、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢ１〜ＭＳＢｎに基づいて、共有バス１５の使用権を占有させる許可を与える共有資源使用要求ＲＥＱ１〜ＲＥＱｎを選択する。具体的には、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢ１〜ＭＳＢｎのうち、“Ｈ”を示す先頭ビットＭＳＢ１〜ＭＳＢｎに対応した共有資源使用要求ＲＥＱ１〜ＲＥＱｎを選択する。
【００２３】
共有資源使用要求ＲＥＱ１〜ＲＥＱｎが競合した場合、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢ１〜ＭＳＢｎのうち、“Ｈ”を示す先頭ビットＭＳＢ１〜ＭＳＢｎが２ビット以上現れる。このとき、リクエスト選択部１７０は、優先度設定部１６０に設定された優先度１〜ｎに従って、“Ｈ”を示す先頭ビットＭＳＢ１〜ＭＳＢｎに対応した共有資源使用要求ＲＥＱ１〜ＲＥＱｎを選択する。
【００２４】
リクエスト許可部１８０は、リクエスト選択部１７０において選択された共有資源使用要求ＲＥＱ１〜ＲＥＱｎに対応した装置２０−１〜２０−ｎに対し、共有資源１０の使用権を一定期間占有させる許可を与える共有資源使用許可ＡＣＫ１〜ＡＣＫｎを出力する。これにより、共有資源使用許可ＡＣＫ１〜ＡＣＫｎを受け取った装置２０−１〜２０−ｎは、共有バス１５を介して共有資源１０へのアクセスが可能となる。
【００２５】
尚、リクエスト許可部１８０は、共有資源使用許可ＡＣＫ１〜ＡＣＫｎを出力する間に、シフト制御部１４０に対してＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢ１〜ＭＳＢｎのシフト動作を禁止させるためのＷＡＩＴ信号を出力する。共有資源使用要求ＲＥＱ１〜ＲＥＱｎが競合した場合に、共有資源使用要求ＲＥＱ１〜ＲＥＱｎ全てに共有資源使用許可が与えられるまでの間、先頭ビットＭＳＢ１〜ＭＳＢｎに保持しておく必要があるからである。具体的には、シフト制御部１４０は、ＷＡＩＴ信号が発生した場合、先頭ビットＭＳＢ１〜ＭＳＢｎに対応するレジスタのみシステムクロックＣＬＫを固定させるか、若しくは、前段のレジスタからのデータ入力を制限することによって実現できる。
【００２６】
＝＝＝アービトレーション装置の動作＝＝＝
図２に示す具体例を用いて、アービトレーション装置１００の動作を説明する。  
図２に示す具体例は、４つの装置２０−１、２０−２、２０−３、２０−４が共有バス１５を介して共有資源１０と接続される。従って、この場合、ＦＩＦＯレジスタユニット１３０は、４つの装置２０−１、２０−２、２０−３、２０−４に対応して４つのＦＩＦＯレジスタ１３５−１、１３５−２、１３５−３、１３５−４を具備している。また、４つの装置２０−１、２０−２、２０−３、２０−４より発生する共有資源使用要求ＲＥＱ１、ＲＥＱ２、ＲＥＱ３、ＲＥＱ４の優先度は、高いものから順にＲＥＱ１、ＲＥＱ２、ＲＥＱ３、ＲＥＱ４とする。
【００２７】
また、図２に示す記号の説明として、「ｔ１〜ｔ１２」はシステムクロックＣＬＫの１周期を表し、ＲＥＱに示す「１〜４」は４つの装置２０−１〜２０−４より発生した共有資源使用要求ＲＥＱ１〜ＲＥＱ４を表し、ＳＥＴに示す「１〜４」は４つのＦＩＦＯレジスタ１３５−１〜１３５−４に登録されるチャネル番号ＣＨ１〜ＣＨ４を表し、ＡＣＫに示す「１〜４」は４つの装置２０−１〜２０−４に許可を与えたことを示す共有資源使用許可ＡＣＫ１〜ＡＣＫ４を表す。
【００２８】
１周期目ｔ１では、装置２０−２からの共有資源使用要求ＲＥＱ２が発生する。  
２周期目ｔ２では、装置２０−１からの共有資源使用要求ＲＥＱ１、装置２０−３からの共有資源使用要求ＲＥＱ３が新たに発生する。また、１周期目ｔ１で発生した共有資源使用要求ＲＥＱ２に対応するチャネル番号ＣＨ２が、ＦＩＦＯレジスタ１３５−２の最後列ビットＬＳＢに格納される。
【００２９】
３周期目ｔ３では、共有資源使用要求ＲＥＱ２に対応するチャネル番号ＣＨ２は、ＦＩＦＯレジスタ１３５−２の最後列ビットＬＳＢから２番目のビットにシフトされる。また、２周期目ｔ２に発生した共有資源使用要求ＲＥＱ１、ＲＥＱ３に対応したチャネル番号ＣＨ１、ＣＨ３がＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢに格納される。このとき、共有資源使用要求ＲＥＱ１、ＲＥＱ３は優先度の判定が行われることなく、チャネル番号ＣＨ１、ＣＨ３をＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢに格納する。
【００３０】
４周期目ｔ４では、チャネル番号ＣＨ２がＦＩＦＯレジスタ１３５−２の最後列ビットＬＳＢから２番目のビットから３番目のビットにシフトされ、チャネル番号ＣＨ１、ＣＨ３がＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢから２番目のビットにシフトさる。
【００３１】
５周期目ｔ５では、チャネル番号ＣＨ２がＦＩＦＯレジスタ１３５−２の最後列ビットＬＳＢから３番目のビットから先頭ビットＭＳＢにシフトされ、チャネル番号ＣＨ１、ＣＨ３がＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢから２番目のビットから３番目のビットにシフトさる。また、装置２０−４からの共有資源使用要求ＲＥＱ４が新たに発生する。即ち、チャネル番号ＣＨ２は、ＦＩＦＯレジスタ１３５−２の先頭ビットＭＳＢに格納されており、リクエスト選択部１７０によって選択される。
【００３２】
６周期目ｔ６では、リクエスト選択部１７０によって選択されたチャネル番号ＣＨ２がＦＩＦＯレジスタ１３５−２から削除される。そして、チャネル番号ＣＨ２に対応する共有資源使用要求ＲＥＱ２を発生した装置２０−２に対し、リクエスト許可部１８０は共有資源使用許可ＡＣＫ２を出力する。これにより、装置２０−２は共有バス１５を介した共有資源１０の使用許可が与えられる。このとき、チャネル番号ＣＨ１、ＣＨ３は、それぞれ最後列ビットＬＳＢから３番目のビットから先頭ビットＭＳＢへのシフトが行われず、また、５周期目ｔ５に発生した共有資源使用要求ＲＥＱ４に対応したチャネル番号ＣＨ４が、ＦＩＦＯレジスタ１３５−４の最後列ビットＬＳＢに格納される。チャネル番号ＣＨ１、ＣＨ３のシフトを行われないことにより、リクエスト許可部１８０は装置２０−２に対して確実に共有資源使用許可ＡＣＫ２を出力することができる。
【００３３】
７周期目ｔ７では、チャネル番号ＣＨ１、ＣＨ３がＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢから３番目のビットから先頭ビットＭＳＢにシフトされ、チャネル番号ＣＨ４が最後列ビットＬＳＢから最後列ビットＬＳＢから２番目のビットにシフトされる。これにより、チャネル番号ＣＨ１、ＣＨ３はＦＩＦＯレジスタ１３５−１、１３５−３の先頭ビットＭＳＢに格納されているので、リクエスト選択部１７０は、チャネル番号ＣＨ１、ＣＨ３を優先度に従って選択する。しかし、７周期目ｔ７の時点では、共有資源１０は装置２０−２についての処理を行っているので、リクエスト選択部１７０は、チャネル番号ＣＨ１又はチャネル番号ＣＨ３の選択を行わない。
【００３４】
８周期目ｔ８では、チャネル番号ＣＨ１、ＣＨ３がＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢに保持されるとともに、チャネル番号ＣＨ４は、最後列ビットＬＳＢから２番目のビットから３番目のビットにシフトされる。チャネル番号ＣＨ１、ＣＨ３については、７周期目ｔ７と同様に、共有資源１０は装置２０−２についての処理を行っているので、リクエスト選択部１７０は、チャネル番号ＣＨ１又はチャネル番号ＣＨ３の優先度に基づく選択を行わない。
【００３５】
９周期目ｔ９では、共有資源１０は装置２０−２についての処理を終了する。これにより、リクエスト選択部１７０は、チャネル番号ＣＨ１に対応する共有資源使用要求ＲＥＱ１とチャネル番号ＣＨ３に対応する共有資源使用要求ＲＥＱ３が競合していることを識別し、チャネル番号ＣＨ１とチャネル番号ＣＨ３のうち優先度の高いチャネル番号ＣＨ１を選択する。尚、９周期目ｔ９の時点では、チャネル番号ＣＨ１とチャネル番号ＣＨ３が先頭ビットＭＳＢに保持されているので、チャネル番号ＣＨ４は最後列ビットＬＳＢから３番目のビットから先頭ビットＭＳＢにシフトされず、最後列ビットＬＳＢから３番目のビットに保持される。
【００３６】
１０周期目ｔ１０では、リクエスト選択部１７０によって選択されたチャネル番号ＣＨ１がＦＩＦＯレジスタ１３５−１から削除されるとともに、１０周期目ｔ１０では、装置２０−２からの共有資源使用要求ＲＥＱ２が新たに発生する。そして、チャネル番号ＣＨ１に対応する共有資源使用要求ＲＥＱ１を発生した装置２０−１に対し、リクエスト許可部１８０は共有資源使用許可ＡＣＫ１を出力する。これにより、装置２０−１は共有バス１５を介した共有資源１０の使用許可が与えられる。尚、チャネル番号ＣＨ３は、先頭ビットＭＳＢに保持され、チャネル番号ＣＨ４は最後列ビットＬＳＢから３番目のビットに保持される。
【００３７】
１１周期目ｔ１１では、共有資源１０は装置２０−１についての処理を行っているので、チャネル番号ＣＨ３は先頭ビットＭＳＢに保持され、チャネル番号ＣＨ４は最後列ビットＬＳＢから３番目のビットに保持されるとともに、共有資源使用要求ＲＥＱ２に対応するチャネル番号ＣＨ２が、ＦＩＦＯレジスタ１３５−２の最後列ビットＬＳＢに格納される。
【００３８】
１２周期目ｔ１２では、共有資源１０は装置２０−１についての処理を終了する。これにより、リクエスト選択部１７０は、先頭ビットＭＳＢに格納されるチャネル番号ＣＨ３を選択する。
【００３９】
第１実施形態では、アービトレーション装置１００は、複数の装置２０−１〜２０−ｎから競合した共有資源使用要求ＲＥＱ１〜ＲＥＱｎを受付けた場合、優先度の判定を行うことなく、ＦＩＦＯレジスタユニット１３０に登録を行う。即ち、アービトレーション装置１００において、図７に示す従来のアービトレーション装置５００とは異なり、競合した共有資源使用要求ＲＥＱ１〜ＲＥＱｎをＦＩＦＯレジスタユニット１３０に登録する前に、優先度を判定しその結果に基づいてソーティング処理を行うためのハードウェア構成が不要となる。これにより、アービトレーション装置１００を装置規模の増大化を抑えつつ構成することができる。
【００４０】
また、第１実施形態では、競合した共有資源使用要求ＲＥＱ１〜ＲＥＱｎの優先度判定は、リクエスト選択部１７０によってＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢに格納されたチャネル番号に対して、予め設定しておいた優先度に基づいて行われる。したがって、第１実施形態によれば共有資源使用要求ＲＥＱ１〜ＲＥＱｎが競合した場合、それらの優先度の判定を好適に行うことができる。
【００４１】
＜＜＜第２実施形態＞＞＞
＝＝＝アービトレーション装置の構成＝＝＝
図３を用いて、本発明の第２実施形態に係るアービトレーション装置２００の構成を説明する。尚、図１に示した本発明の第１実施形態に係るアービトレーション装置１００と同じ構成のものについては同じ符号を付して説明を省略する。
【００４２】
アービトレーション装置２００においては、アービトレーション装置１００と異なり、空き状態監視部１５０が設けられる。空き状態監視部１５０は、ＦＩＦＯレジスタユニット１３０の全ビット（Ｎ×Ｎビット）に“Ｈ”のデータが格納されない第１の空き状態（全ビットがオール“Ｌ”の状態）であるか否かを監視する。そして、第１の空き状態であることを識別した場合には、リクエスト登録部１２０に第１のＥＭＰＴＹ信号を出力する。
【００４３】
空き状態監視部１５０は、Ｎ個のＦＩＦＯレジスタ１３５−１〜１３５−ｎの全ビット（Ｎ×Ｎビット）の論理和を演算するＯＲ素子１５２を設け、ＯＲ素子１５２の出力を第１のＥＭＰＴＹ信号とすることができる。尚、第１のＥＭＰＴＹ信号が“Ｌ”の場合、ＦＩＦＯレジスタユニット１３０は第１の空き状態であることを表す。一方、第１のＥＭＰＴＹ信号が“Ｈ”の場合、ＦＩＦＯレジスタユニット１３０の全ビットのうち少なくとも１ビットには“Ｈ”のデータが格納されており、ＦＩＦＯレジスタユニット１３０は第１の空き状態ではないことを表す。
【００４４】
第１実施形態において、リクエスト登録部１２０はリクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの最後列ビットＬＳＢに格納するものである。しかし、ＦＩＦＯレジスタユニット１３０が第１の空き状態の場合であっても、チャネル番号ＣＨ１〜ＣＨｎを最後列ビットＬＳＢに格納してしまうと、共有資源使用要求ＲＥＱ１〜ＲＥＱｎが許可されるまでに最後列ビットＬＳＢから先頭ビットＭＳＢへ転送するのに要する待ち時間が発生する。
【００４５】
そこで、第２の実施形態におけるリクエスト登録部１２０は、空き状態監視部１５０から“Ｌ”の第１のＥＭＰＴＹ信号が入力された場合、即ち、第１の空き状態である場合、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを、最後列ビットＬＳＢではなく先頭ビットＭＳＢに格納するためのスイッチ回路１２２−１〜１２２−ｎを設ける。
【００４６】
スイッチ回路１２２−１〜１２２−ｎは、空き状態監視部１５０から“Ｌ”の第１のＥＭＰＴＹ信号が入力された場合、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを先頭ビットＭＳＢに格納する。一方、空き状態監視部１５０から“Ｈ”の第１のＥＭＰＴＹ信号が入力された場合、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを最後列ビットＬＳＢに格納する。
【００４７】
＝＝＝アービトレーション装置の動作＝＝＝
図４に示す具体例を用いて、アービトレーション装置２００の動作を説明する。尚、図４に示す記号は、図２に示す記号と同じ内容を表すものであるため説明を省略する。以下では、図４に示す動作例の中で、空き状態監視部１５０の動作に係るものについて説明する。
【００４８】
１周期目ｔ１では、装置２０−２からの共有資源使用要求ＲＥＱ２が発生する。このとき、ＦＩＦＯレジスタユニット１３０は、全ビットに“Ｈ”のデータ（チャネル番号ＣＨ１〜ＣＨ４）が格納されておらず、第１の空き状態（全ビットがオール“Ｌ”）である。そこで、空き状態監視部１５０は、“Ｌ”の第１のＥＭＰＴＹ信号を出力する。これにより、リクエスト登録部１２０は、“Ｌ”の第１のＥＭＰＴＹ信号に基づいて、先頭ビットＭＳＢの経路を選択する。
【００４９】
２周期目ｔ２では、１周期目ｔ１に発生した共有資源使用要求ＲＥＱ２に対応するチャネル番号ＣＨ２が、“Ｌ”の第１のＥＭＰＴＹ信号に基づいて、ＦＩＦＯレジスタ１３５−２の先頭ビットＭＳＢに格納されるとともに、装置２０−１、２０−３からの共有資源使用要求ＲＥＱ１、ＲＥＱ３からの共有資源使用要求が新たに発生する。即ち、チャネル番号ＣＨ２は、ＦＩＦＯレジスタ１３５−２の先頭ビットＭＳＢに格納されており、リクエスト選択部１７０によって選択される。このとき、ＦＩＦＯレジスタ１３５は第１の空き状態ではなくなるので、空き状態監視部１５０は“Ｈ”の第１のＥＭＰＴＹ信号を出力する。
【００５０】
３周期目ｔ３では、リクエスト登録部１２０は、“Ｈ”の第１のＥＭＰＴＹ信号に基づいて、２周期目ｔ２で発生した共有資源使用要求ＲＥＱ１、ＲＥＱ３に対応するチャネル番号ＣＨ１、ＣＨ３はＦＩＦＯレジスタ１３５−１、１３５−３の最後列ビットＬＳＢに格納される。
【００５１】
また、３周期目ｔ３では、リクエスト選択部１７０によって選択されたチャネル番号ＣＨ２がＦＩＦＯレジスタ１３５−２から削除される。そして、チャネル番号ＣＨ２に対応する共有資源使用要求ＲＥＱ１を発生した装置２０−２に対し、リクエスト許可部１８０は共有資源使用許可ＡＣＫ２を出力する。これにより、装置２０−２は共有バス１５を介した共有資源１０の使用許可が与えられる。
【００５２】
４周期目ｔ４以降では、５周期目ｔ５において装置２０−４から発生した共有資源使用要求ＲＥＱ４は、“Ｈ”の第１のＥＭＰＴＹ信号に基づいて、つぎの６周期目ｔ７においてＦＩＦＯレジスタ１３５−４の最後列ビットＬＳＢに格納される。また、１０周期目ｔ１０において装置２０−２から発生した共有資源使用要求ＲＥＱ２は、“Ｈ”の第１のＥＭＰＴＹ信号に基づいて、つぎの１１周期目ｔ１１においてＦＩＦＯレジスタ１３５−２の最後列ビットＬＳＢに格納される。その他は、第１実施形態におけるアービトレーション装置１００と基本的には同様の動作である。
【００５３】
第２実施形態では、アービトレーション装置２００は、ＦＩＦＯレジスタユニット１３０が第１の空き状態の場合に、チャネル番号ＣＨ１〜ＣＨｎを、最後列ビットＬＳＢではなく先頭ビットＭＳＢに格納する。この結果、アービトレーション装置２００は、無駄な待ち時間を与えることなく、ＦＩＦＯレジスタユニット１３０の先頭ビットＭＳＢに格納されたチャネル番号ＣＨ１〜ＣＨｎを選択できる。言い換えると、アービトレーション装置２００は、第１の空き状態の場合に、アービトレーション装置１００よりも速く共有資源使用許可ＡＣＫ１〜ＡＣＫｎを出力できるようになる。
【００５４】
＜＜＜第３実施形態＞＞＞
＝＝＝アービトレーション装置の構成＝＝＝
図５を用いて、本発明の第３実施形態に係るアービトレーション装置３００の構成を説明する。尚、図３に示したアービトレーション装置２００と同じ構成のものについては同じ符号を付して説明を省略する。
【００５５】
上記の本発明の第１実施形態並びに第２実施形態では、Ｎ個の装置２０−１〜２０−ｎは、共有バス１５を介した共有資源１０の使用権をシステムクロックＣＬＫの２周期以上占有する場合として説明した。これに対し、本発明の第３実施形態では、Ｎ個の装置２０−１〜２０−ｎが、共有バス１５を介した共有資源１０の使用権をシステムクロックＣＬＫの１周期で開放する場合として説明する。
【００５６】
アービトレーション装置３００は、空き状態監視部１５０からリクエスト登録部１２０に対し、第１のＥＭＰＴＹ信号に加えて第２のＥＭＰＴＹ信号を出力する。
【００５７】
第２のＥＭＰＴＹ信号は、ＦＩＦＯレジスタ１３５−１〜１３５−ｎそれぞれの先頭ビットＭＳＢのうちいずれかに“Ｈ”のデータが格納され、且つ、ＦＩＦＯレジスタ１３５−１〜１３５−ｎそれぞれの先頭ビットＭＳＢ以外のＮ×（Ｎ−１）ビットに“Ｈ”のデータが格納されていない第２の空き状態である場合を示すステータス信号である。
【００５８】
リクエスト登録部１２０は、空き状態監視部１５０から第２のＥＭＰＴＹ信号が出力された場合、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢから２番目のビットに格納する。これにより、新たに受け付けた共有資源使用要求ＲＥＱ１〜ＲＥＱｎに対して、無駄な待ち時間を生じさせることなく許可を与えることができる。
【００５９】
以上のような仕組みを実現すべく、空き状態監視部１５０は、ＦＩＦＯレジスタ１３５−１〜１３５−ｎの先頭ビットＭＳＢ１〜ＭＳＢｎ以外の全ビットの論理和を演算するＮＯＲ素子１５４と、ＮＯＲ素子１５４の出力とＯＲ素子１５２の出力との論理積を演算するＮＡＮＤ素子１５８を有する。ＡＮＤ素子１５８の出力が第２のＥＭＰＴＹ信号となり、第２のＥＭＰＴＹ信号が“Ｌ”の場合、ＦＩＦＯレジスタユニット１３０は第２の空き状態であることを示す。
【００６０】
また、リクエスト登録部１２０は、空き状態監視部１５０から入力された第１のＥＭＰＴＹ信号及び第２のＥＭＰＴＹ信号に基づいて、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを、先頭ビットＭＳＢ、先頭ビットＭＳＢから２番目のビット、若しくは、最後列ビットＬＳＢのいずれかに格納するためのスイッチ回路１２４−１〜１２４−ｎを有する。
【００６１】
具体的には、空き状態監視部１５０から“Ｌ”の第１のＥＭＰＴＹ信号が入力された場合、スイッチ回路１２４−１〜１２４−ｎは、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを先頭ビットＭＳＢに格納する経路を選択する。
【００６２】
空き状態監視部１５０から“Ｈ”の第１のＥＭＰＴＹ信号が入力され、且つ、“Ｈ”の第２のＥＭＰＴＹ信号が入力された場合、スイッチ回路１２４−１〜１２４ｎは、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを最後列ビットＬＳＢに格納する経路を選択する。
【００６３】
空き状態監視部１５０から“Ｈ”の第１のＥＭＰＴＹ信号が入力され、且つ、“Ｌ”の第２のＥＭＰＴＹ信号が入力された場合、スイッチ回路１２４−１〜１２４−ｎは、リクエスト検出部１１０から出力されたチャネル番号ＣＨ１〜ＣＨｎを先頭ビットＭＳＢから２番目のビットに格納する経路を選択する。
【００６４】
＝＝＝アービトレーション装置の動作の具体例＝＝＝
図６に示す具体例を用いて、アービトレーション装置３００の動作を説明する。尚、図６に示す記号は、図４に示す記号と同じ内容を表すものであるため説明を省略する。
【００６５】
図６に示すアービトレーション装置３００の動作を説明する。  
１周期目ｔ１では、装置２０−２からの共有資源使用要求ＲＥＱ２が発生する。このとき、ＦＩＦＯレジスタユニット１３０の全ビットに“Ｈ”のデータ（チャネル番号ＣＨ１〜ＣＨ４）が格納されていない。従って、ＦＩＦＯレジスタユニット１３０は、第１の空き状態（全ビットがオール“Ｌ”）であるが、第２の空き状態ではない場合である。そこで、空き状態監視部１５０は、“Ｌ”の第１のＥＭＰＴＹ信号並びに“Ｈ”の第２のＥＭＰＴＹ信号を出力する。これにより、リクエスト登録部１２０は、先頭ビットＭＳＢの経路を選択する。
【００６６】
２周期目ｔ２では、装置２０−１からの共有資源使用要求ＲＥＱ１からの共有資源使用要求が新たに発生すると共に、１周期目ｔ１において発生した共有資源使用要求ＲＥＱ２に対応するチャネル番号ＣＨ２が、空き状態監視部１５０から出力される“Ｌ”の第１のＥＭＰＴＹ信号及び“Ｈ”の第２のＥＭＰＴＹ信号に基づいて、ＦＩＦＯレジスタ１３５−２の先頭ビットＭＳＢに格納される。即ち、チャネル番号ＣＨ２は、ＦＩＦＯレジスタ１３５−２の先頭ビットＭＳＢに格納されており、リクエスト選択部１７０によって選択される。尚、ＦＩＦＯレジスタ１３５−１、１３５−２、１３５−３、１３５−４の先頭ビットＭＳＢ以外の全ビットには“Ｈ”のデータが格納されていない。従って、２周期目ｔ２では、ＦＩＦＯレジスタユニット１３０は第１の空き状態ではないが第２の空き状態となり、空き状態監視部１５０は“Ｈ”の第１のＥＭＰＴＹ信号及び“Ｌ”の第２のＥＭＰＴＹ信号を出力する。
【００６７】
３周期目ｔ３では、２周期目ｔ２において発生した共有資源使用要求ＲＥＱ１に対応するチャネル番号ＣＨ１は、空き状態監視部１５０から出力される“Ｈ”の第１のＥＭＰＴＹ信号及び“Ｌ”の第２のＥＭＰＴＹ信号に基づいて、ＦＩＦＯレジスタ１３５−１の２番目のビットに格納される。従って、３周期目ｔ３では、ＦＩＦＯレジスタユニット１３０は第１の空き状態でもなく第２の空き状態でもなくなり、空き状態監視部１５０は“Ｈ”の第１のＥＭＰＴＹ信号及び“Ｈ”の第２のＥＭＰＴＹ信号を出力する。
【００６８】
また、３周期目ｔ３では、リクエスト選択部１７０によって選択されたチャネル番号ＣＨ２がＦＩＦＯレジスタ１３５−２から削除される。そして、チャネル番号ＣＨ２に対応する共有資源使用要求ＲＥＱ１を発生した装置２０−２に対し、リクエスト許可部１８０は共有資源使用許可ＡＣＫ２を出力する。これにより、装置２０−２は共有バス１５を介した共有資源１０の使用許可が与えられる。
【００６９】
４周期目ｔ４では、チャネル番号ＣＨ１がＦＩＦＯレジスタ１３５−１の最後列ビットＬＳＢから３番目のビットから先頭ビットＭＳＢにシフトされ、リクエスト選択部１７０によって選択される。このとき、共有資源１０は装置２０−２についての処理を終了する。
【００７０】
５周期目ｔ５では、チャネル番号ＣＨ１がＦＩＦＯレジスタ１３５−１から削除され、共有資源使用要求ＲＥＱ１を発生した装置２０−１に対し共有資源使用許可ＡＣＫ１が出力される。これにより、共有資源１０は装置２０−１についての処理を開始する。
【００７１】
第３実施形態では、アービトレーション装置３００の場合には、共有資源使用要求ＲＥＱ１がＦＩＦＯレジスタ１３５−１に登録されてから許可を与えられるまでに２周期を要すため、装置２０−１についての処理を速やかに開始することができる。
【００７２】
以上、本発明の実施形態について説明したが、前述した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るとともに、その等価物も含まれるものである。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１実施形態に係るアービトレーション装置の構成を示した図である。
【図２】本発明の第１実施形態に係るアービトレーション装置の動作を説明するための図である。
【図３】本発明の第２実施形態に係るアービトレーション装置の構成を説明するための図である。
【図４】本発明の第２実施形態に係るアービトレーション装置の動作を説明するための図である。
【図５】本発明の第３実施形態に係るアービトレーション装置の構成を説明するための図である。
【図６】本発明の第３実施形態に係るアービトレーション装置の動作を説明するための図である。
【図７】従来のアービトレーション装置の構成を示した図である。
【符号の説明】
【００７４】
１０    共有資源
１５    共有バス
２０−１、２０−２、２０−３、２０−４、２０−ｎ  装置
１１０  リクエスト検出部
１２０  リクエスト登録部
１２２ａ、１２４ａ  スイッチ回路
１３０  ＦＩＦＯレジスタユニット
１３５−１、１３５−２、１３５−３、１３５−４、１３５−ｎ  ＦＩＦＯレジスタ
１４０  シフト制御部
１５０  状態監視部
１５２、１５４  ＯＲ素子
１５６  ＮＯＲ素子
１５８  ＡＮＤ素子
１６０  優先度設定部
１７０  リクエスト選択部
１８０  リクエスト許可部
１００、２００、３００、５００  アービトレーション装置
５１０  リクエスト検出部
５２０  アクセス要求調整部
５２５  優先度設定レジスタ
５３０  行列レジスタ
５４０  バス・アクノリッジセレクト部
５２０１  リクエスト競合調停部
５２０２  優先度選択部
【図１】
2008242651.tif 000003
【図２】
2008242651.tif 000004
【図３】
2008242651.tif 000005
【図４】
2008242651.tif 000006
【図５】
2008242651.tif 000007
【図６】
2008242651.tif 000008
【図７】
2008242651.tif 000009