(57)【要約】【課題】  複数のバス上で発生する複数のマスタからの転送要求に対して、最も優先度の高い転送要求のマスタにバスの使用権を与える。【解決手段】  第１のバスの使用権を調停する第１のバス調停装置が、第１のバスに繋がるマスタから第１のバスと第２のバスとを接続するブリッジへの第１の転送要求に対してブリッジを介して第２のバスへのアクセスを認める。第２のバス調停装置によって第２のバスの使用権が調停されている間に、第１のバスに繋がる他のマスタから第１の転送要求より優先度の高い第２の転送要求があった場合に、第２の転送要求の優先度を第２のバス調停装置に通知する。そして、第２のバス調停装置が第１のバス調停装置から通知された優先度に基づいて第２のバスの調停を行う。【選択図】      図１
2008158585.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスと第２のバスとを接続するブリッジと、前記第１のバスの使用権を調停する第１のバス調停装置と、前記第２のバスの使用権を調停する第２のバス調停装置とを備えるバスシステムであって、
前記第１のバス調停装置は、
前記第１のバスに繋がるマスタから前記ブリッジへの第１の転送要求に対して前記ブリッジを介して前記第２のバスへのアクセスを認める手段と、
前記第２のバス調停装置によって前記第２のバスの使用権が調停されている間に、前記第１のバスに繋がる他のマスタから前記第１の転送要求より優先度の高い第２の転送要求があった場合に、当該第２の転送要求の優先度を前記第２のバス調停装置に通知する手段とを有し、
前記第２のバス調停装置は、前記第１のバス調停装置から通知された優先度に基づいて前記第２のバスの調停を行う手段を有することを特徴とするバスシステム。
【請求項２】
前記マスタが決められた時間内に決められたデータ量のデータ転送を完了できるように、前記第１及び第２のバス調停装置によって前記第１及び第２のバスの使用権が調停されることを特徴とする請求項１に記載のバスシステム。
【請求項３】
前記優先度は、前記決められた時間と前記データ転送が開始されてから経過した時間の差と、前記データ量とデータ転送が開始されてから転送されたデータ量の差とに基づいて決定されることを特徴とする請求項２に記載のバスシステム。
【請求項４】
前記第１のバス調停装置から通知された前記マスタの緊急度評価値と、前記第２のバス調停装置が算出した前記マスタの緊急度評価値のうち、緊急度評価値が高いマスタに前記第２のバスの使用権を与えることを特徴とする請求項３に記載のバスシステム。
【請求項５】
第１のバスと第２のバスとを接続するブリッジと、前記第１のバスの使用権を調停する第１のバス調停装置と、前記第２のバスの使用権を調停する第２のバス調停装置とを備えるバスシステムのバス調停方法であって、
前記第１のバス調停装置は、
前記第１のバスに繋がるマスタから前記ブリッジへの第１の転送要求に対して前記ブリッジを介して前記第２のバスへのアクセスを認める工程と、
前記第２のバス調停装置によって前記第２のバスの使用権が調停されている間に、前記第１のバスに繋がる他のマスタから前記第１の転送要求より優先度の高い第２の転送要求があった場合に、当該第２の転送要求の優先度を前記第２のバス調停装置に通知する工程とを有し、
前記第２のバス調停装置は、前記第１のバス調停装置から通知された優先度に基づいて前記第２のバスの調停を行う工程を有することを特徴とするバスシステムのバス調停方法。
【請求項６】
請求項５記載のバスシステムのバス調停方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６記載のプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デッドラインまでの期限が厳しいマスタからスレーブへアクセスを優先してアービトレーションするバス調停装置を用いたバスシステムに関する。特に、バス調停装置によって調停するバスが複数存在し、ブリッジを介して多段に構成されているバスシステムにおいて、バス調停装置間でマスタの緊急度評価値を通知するバス調停装置を備えたバスシステムに関する。
【背景技術】
【０００２】
通常、マスタは要求された時間内に要求されたデータ量の転送を完了する必要がある。要求された時間に対して転送すべきデータ量が多い場合、そのマスタのデッドライン保証は厳しく、逆に要求された時間に対して転送すべきデータ量が少ない場合、デッドライン保証は容易になる。
【０００３】
例えば、特許文献１には、基準より遅れているデバイスに対して、優先的にバスを割り当てるバス調停装置が記載されている。この特許文献１のバス調停装置は、この割り当てのために、各デバイスに要求されている転送レートに基づいたクロックで動作する基準カウンタと、実際に転送したデータ量を計測する転送データカウンタとを設ける。そして、バス調停時にこれら２つのカウンタの値を比較している。
【０００４】
また、我々は、デッドラインを保証するために、図４に示すようなデッドライン保証アービタを提案した（例えば、特願2005-314842号）。デッドライン保証アービタは、マスタ毎に図５に示すような転送すべきデータ量とデータ転送を完了するまでの時間がデータ量設定レジスタとデットライン設定レジスタに設定される。ここで、図５に示す（Ａ）〜（Ｃ）は、それぞれマスタＡ〜マスタＣに対応している。
【０００５】
デッドライン保証アービタは、マスタ毎に緊急度評価値算出部が緊急度評価値（＝残りデータ量÷残り時間）を計算し、デッドラインを保証するために最もバス権を必要としているマスタに優先してバス権を与える。時刻ｔ１における緊急度評価値Ａ１、Ｂ１、Ｃ１は、図５に示す例では以下のように求められ、Ａ１＞Ｃ１＞Ｂ１となり、時刻ｔ１の時点では、マスタＡ＞マスタＣ＞マスタＢの優先度でバス権が与えられる。
【０００６】
Ａ１＝（転送データ量ａ−ｄ１ａ）÷（デッドラインａ−ｔ１）
＝０．７５
Ｂ１＝（転送データ量ｂ−ｄ１ｂ）÷（デッドラインｂ−ｔ１）
＝０．３８
Ｃ１＝（転送データ量ｃ−ｄ１ｃ）÷（デッドラインｃ−ｔ１）
＝０．４６
時刻ｔ２までマスタＡがマスタＢ、Ｃより優先され、バス権を獲得した結果、時刻ｔ２における緊急度評価値Ａ２、Ｂ２、Ｃ２は、以下のように求められ、Ｂ２＞Ａ２＞Ｃ２となる。よって、時刻ｔ２の時点では、マスタＢ＞マスタＡ＞マスタＣの優先度でバス権が与えられる。
【０００７】
Ａ２＝（転送データ量ａ−ｄ２ａ）÷（デッドラインａ−ｔ２）
＝０．５９
Ｂ２＝（転送データ量ｂ−ｄ２ｂ）÷（デッドラインｂ−ｔ２）
＝０．７
Ｃ２＝（転送データ量ｃ−ｄ２ｃ）÷（デッドラインｃ−ｔ２）
＝０．１
このように、デッドライン保証アービタはある時点で最もデッドラインの厳しいマスタに優先的にバスを使用させることで、バス権を獲得までの時間を短縮し、マスタのデッドラインを保証している。つまり、デッドライン保証アービタは、マスタ−スレーブの組に対してデッドラインを保証することが可能である。
【０００８】
例えば、図６に示すようなシステム構成において、マスタＡ１０とマスタＢ１１がスレーブ１８へのデータ転送を要求した場合、まずデッドライン保証アービタＰ１６がマスタＡ１０とマスタＢ１１間のバスの使用権を調停する。調停の結果、マスタＡ１０がバスの使用権を得たならば、Ｐバス１９とＱバス２０を繋ぐブリッジ１５に対してマスタＡ１０の緊急度評価値を通知する。
【０００９】
次に、ブリッジ１５はマスタＡ１０からの緊急度評価値に基づき、Ｑバス２０の使用権を取得しようとする。そして、デッドライン保証アービタＱ１７がＰバス１９からの要求であるブリッジ１５、マスタＣ１２及びマスタＤ１３間で緊急度評価値を計算し、Ｑバス２０を使用してスレーブ１８へアクセスするマスタを決定する。
【特許文献１】特開平１０−２８９２０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、図６に示すシステム構成では、個々のデッドライン保証アービタは独立に動作した場合には、次のような問題が発生する。マスタＡ１０が緊急度評価値の低い値で要求し、その緊急度評価値がブリッジに通知されても、マスタＣ１２及びマスタＤ１３から緊急度評価値の高い要求が来ていれば、いつまでもマスタＡ１０はＱバス２０の使用権を取得できない状態となる。また、マスタＢ１１が緊急度評価値の高い値で要求しても、デッドライン保証アービタＱ１７ではマスタＡ１０からの緊急度評価値を用いるため、マスタＢ１１の要求に対するデッドラインを保証できなくなる可能性がある。
【００１１】
本発明は、複数のバス上で発生する複数のマスタからの転送要求に対して、最も優先度の高い転送要求のマスタにバスの使用権を与えることを目的とする。
【００１２】
また、本発明は、常にデッドライン保証の一番厳しいマスタの緊急度評価値を使用し、マスタのデッドラインを保証することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、第１のバスと第２のバスとを接続するブリッジと、前記第１のバスの使用権を調停する第１のバス調停装置と、前記第２のバスの使用権を調停する第２のバス調停装置とを備えるバスシステムであって、前記第１のバス調停装置は、前記第１のバスに繋がるマスタから前記ブリッジへの第１の転送要求に対して前記ブリッジを介して前記第２のバスへのアクセスを認める手段と、前記第２のバス調停装置によって前記第２のバスの使用権が調停されている間に、前記第１のバスに繋がる他のマスタから前記第１の転送要求より優先度の高い第２の転送要求があった場合に、当該第２の転送要求の優先度を前記第２のバス調停装置に通知する手段とを有し、前記第２のバス調停装置は、前記第１のバス調停装置から通知された優先度に基づいて前記第２のバスの調停を行う手段を有することを特徴とする。
【００１４】
また、本発明は、第１のバスと第２のバスとを接続するブリッジと、前記第１のバスの使用権を調停する第１のバス調停装置と、前記第２のバスの使用権を調停する第２のバス調停装置とを備えるバスシステムのバス調停方法であって、前記第１のバス調停装置は、前記第１のバスに繋がるマスタから前記ブリッジへの第１の転送要求に対して前記ブリッジを介して前記第２のバスへのアクセスを認める工程と、前記第２のバス調停装置によって前記第２のバスの使用権が調停されている間に、前記第１のバスに繋がる他のマスタから前記第１の転送要求より優先度の高い第２の転送要求があった場合に、当該第２の転送要求の優先度を前記第２のバス調停装置に通知する工程とを有し、前記第２のバス調停装置は、前記第１のバス調停装置から通知された優先度に基づいて前記第２のバスの調停を行う工程を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数のバス上で発生する複数のマスタからの転送要求に対して、最も優先度の高い転送要求のマスタにバスの使用権を与えることができる。
【００１６】
また、マスタから緊急度評価値の高い要求が来るたびに、上段のバス調停装置に緊急度評価値を伝えるため、最も厳しい緊急度評価値を用いてバス調停を行える。これにより、マスタが後から緊急度評価値の高い転送を行う場合も、全ての転送のデッドラインを保証することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１８】
図１は、本実施形態におけるデッドライン保証アービタ（バス調停装置）を備えたバスシステムの構成の一例を示す図である。また、図２は、本実施形態におけるデッドライン保証アービタの構成の一例を示す図である。
【００１９】
図１において、バスシステムは、マスタＡ１０、マスタＢ１１、マスタＣ１２、マスタＤ１３、ブリッジ１５、スレーブ１８、デッドライン保証アービタであるアービタＰ１６、アービタＱ１７、Ｐバス１９、Ｑバス２０で構成される。
【００２０】
マスタＡ１０、マスタＢ１１、マスタＣ１２、マスタＤ１３は、それぞれデッドラインを有した転送を行う。
【００２１】
アービタＰ１６は、マスタＡ１０及びマスタＢ１１間のバス使用権を調停し、アービタＱ１７はブリッジ１５、マスタＣ１２及びマスタＤ１３間のバス使用権を調停する。
【００２２】
尚、本実施形態では、アービタＱ１７は、アービタＰ１６から出力される緊急度評価値２１も考慮してバス使用権を与えるマスタを決定する。このバス使用権を与える処理は、更に詳述する。
【００２３】
アービタＰ１６は、図２に示すように、マスタＡ１０のデータ量設定レジスタ２０１、デッドライン設定レジスタ２０３、データ転送量カウンタ２０５、タイマ２０７、緊急度評価値算出部２０９、緊急度評価値選択部２１１を有する。更に、マスタＡ１０の緊急度評価値送信部２１３、緊急度評価値受信部２１５を有する。
【００２４】
ここで、データ量設定レジスタ２０１には、マスタＡ１０のデータ転送量が設定され、デッドライン設定レジスタ２０３にはマスタＡ１０のデータ転送を行う時間が設定される。データ転送量カウンタ２０５では、データ量設定レジスタ２０１の設定値からマスタＡ１０が転送を完了したデータ量をデクリメントし、残りデータ量をカウントする。タイマ２０７は、マスタＡ１０から最初のスレーブアクセス要求が到着した後に、デッドライン設定レジスタ２０３に格納されている時間からカウントダウンを開始し、残り時間を出力する。緊急度評価値算出部２０９は、データ転送量カウンタ２０５でカウントされた残りデータ量をタイマ２０７が出力する残り時間で割り、緊急度評価値を算出する。
【００２５】
緊急度評価値選択部２１１は、緊急度評価値算出部２０９で算出された緊急度評価値と、緊急度評価値受信部２１５が受信した緊急度評価値とを比較し、最も緊急度の高いものを選択する。緊急度評価値送信部２１３は、緊急度評価値算出部２０９が出力する緊急度評価値３０１を他のデッドライン保証アービタへ転送する。緊急度評価値受信部２１５は、他のデッドライン保証アービタから転送されてくる緊急度評価値３０３を受信し、緊急度評価値選択部２１１へ通知する。
【００２６】
また同様に、アービタＰ１６は、マスタＢ１１のデータ量設定レジスタ２０２、デッドライン設定レジスタ２０４、データ転送量カウンタ２０６、タイマ２０８、緊急度評価値算出部２１０、緊急度評価値選択部２１２を有する。更に、マスタＢ１１の緊急度評価値送信部２１４、緊急度評価値受信部２１６を有する。また、レジスタ、カウンタ、タイマなどは上述のマスタＡ１０のレジスタ、カウンタ、タイマなどと同じ機能を有するものである。
【００２７】
更に、アービタＰ１６は、緊急度評価値選択部２１１、２１２から各々通知される緊急度評価値３０５、３０６を比較し、最も緊急度（優先度）が高いマスタからスレーブへのアクセスを優先して調停する調停部２１７を有する。
【００２８】
尚、アービタＱ１７の構成は、図２に示すアービタＰ１６のマスタＡ１０及びマスタＢ１１がマスタＣ１２及びマスタＤ１３に代わるだけで、アービタＰ１６と同様である。
【００２９】
ここで、常にデッドライン保証の一番厳しいマスタの緊急度評価値を使用し、マスタのデッドラインを保証する処理を説明する。
【００３０】
マスタＡ１０及びマスタＢ１１は、アービタＰ１６によって調停される。マスタＡ１０が転送要求req00を出し、マスタＢ１１が転送要求req01を出していなければ、アービタＰ１６はマスタＡ１０にＰバス１９の使用を認める。この場合、ブリッジ１５がＱバス２０のマスタとしてマスタＡ１０の緊急度評価値を使用し、アービタＱ１７に対して転送要求req00を出す。ここで、Ｑバス２０のマスタであるマスタＣ１２が転送要求req10を出し、マスタＤ１３が転送要求req11を出し、その緊急度評価値がreq11＞req10＞req00であれば、アービタＱ１７はマスタＤ１３にＱバス２０の使用を認める。
【００３１】
このとき、マスタＢ１１からも転送要求req01が発生し、緊急度評価値がreq01＞req11＞req10＞req00のような場合、従来の手法だと問題が生じた。つまり、転送要求req01の緊急度評価値が高いにも関わらず、転送要求req00がＱバス２０の使用権を取得できないため、転送要求req01のデッドラインを保証できなくなる可能性があった。
【００３２】
本実施形態では、後からマスタＢ１１でreq01が出された時点で、マスタＡ１０からの転送要求であるreq00と、マスタＢ１１からの転送要求であるreq01の緊急度評価値を比較する。ここで、転送要求req01の緊急度評価値が高ければ、アービタＰ１６はアービタＱ１７に対してＱバス２０の使用権の調停に転送要求req01の緊急度評価値を用いるように通達する。
【００３３】
これにより、アービタＱ１７はブリッジ１５からの転送要求の緊急度評価値が一番高いと認識し、マスタＡ１０からの転送要求req00を受け取り、マスタＡ１０にＱバス２０の使用権を与える。従って、マスタＡ１０の転送が終了し、マスタＢ１１の転送が早く開始される。
【００３４】
図３は、本実施形態におけるデッドライン保証アービタの処理を示すフローチャートである。尚、この処理は、アービタＰ１６又はアービタＱ１７で処理されるものである。
【００３５】
まず、ステップＳ３０１で、マスタからスレーブ１８への転送要求があれば、ステップＳ３０２へ処理を進め、複数のマスタから転送要求が出されたか否かを判定する。ここで、複数のマスタではなく、単一マスタから転送要求が出されたならば、ステップＳ３０３へ処理を進め、そのマスタにバスの使用権を与える。そして、ステップＳ３０１に戻り、新たな転送要求があるまで待つ。
【００３６】
一方、ステップＳ３０２で、複数のマスタから転送要求が出されたならば、ステップＳ３０４へ処理を進め、転送要求を出した複数のマスタの緊急度評価値を計算する。次に、ステップＳ３０５で、バス構成がブリッジを介した多段バス構成で、かつ上位にアービタがあるか否かを判定する。ここで、多段バス構成で、上位にアービタがあれば、アービタＰ１６での処理となり、ステップＳ３０６へ処理を進め、緊急度評価値の一番高いマスタにバスの使用権を与えているか否かを判定する。ここで、緊急度評価値の一番高いマスタにバスの使用権を与えていれば、ステップＳ３０１に戻る。
【００３７】
しかし、ステップＳ３０６で、緊急度評価値の一番高いマスタにバスの使用権を与えていなければ、ステップＳ３０７へ処理を進め、一番高い緊急度評価値を上位のアービタ、即ちアービタＱ１７に通知する。そして、ステップＳ３０８で、緊急度評価値の一番高いマスタにバスの使用権を与える。
【００３８】
一方、ステップＳ３０５で、多段バス構成で、上位にアービタがなければ、アービタＱ１７での処理となり、ステップＳ３０８へ処理を進め、緊急度評価値の一番高いマスタにバスの使用権を与える。尚、アービタＱ１７は、アービタＰ１６から緊急度評価値２１が通知されていれば、その緊急度評価値２１を含めて緊急度評価値の一番高いマスタにバスの使用権を与える。
【００３９】
以上説明したように、緊急度評価値の高い転送要求が後から来た場合でもデッドライン保証アービタ間で緊急度評価値を伝播することで、効率良くデッドライン保証を行うことが可能となる。
【００４０】
尚、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００４１】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００４２】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００４３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００４４】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４５】
【図１】本実施形態におけるデッドライン保証アービタ（バス調停装置）を備えたバスシステムの構成の一例を示す図である。
【図２】本実施形態におけるデッドライン保証アービタの構成の一例を示す図である。
【図３】本実施形態におけるデッドライン保証アービタの処理を示すフローチャートである。
【図４】従来のデッドライン保証アービタの構成を示す図である。
【図５】複数のマスタの転送データ量とデッドラインとの関係を示す図である。
【図６】従来のデッドライン保証アービタを備えたバスシステムの構成の一例を示す図である。
【符号の説明】
【００４６】
１０  マスタＡ
１１  マスタＢ
１２  マスタＣ
１３  マスタＤ
１５  ブリッジ
１６  アービタＰ
１７  アービタＱ
１８  スレーブ
１９  Ｐバス
２０  Ｑバス
２１  緊急度評価値
【図１】
2008158585.tif 000003
【図２】
2008158585.tif 000004
【図３】
2008158585.tif 000005
【図４】
2008158585.tif 000006
【図５】
2008158585.tif 000007
【図６】
2008158585.tif 000008