(57)【要約】  【課題】  適切なバス調停を行うことが可能なバス調停システム及びバス調停方法を提供する。  【解決手段】  バス調停システム１００は、複数のバスマスタからのメモリにアクセスするためのバス使用要求を調停するものであり、バスマスタから入力されるバス使用要求を記憶するコマンドキュー１１４１１２と、コマンドキュー１１４１１２に記憶されるバス使用要求のそれぞれについて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定するアドレス比較回路１１２１１４と、アクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、バスマスタからの入力順でバス使用許可を行う先着順アービタ１３０と、アクセス先のメモリのアドレス空間が他のバス使用要求と重複しないと判定されたバス使用要求に対して、ラウンドロビン方式の順でバス使用許可を行うラウンドロビンアービタ１４０とを有する。【選択図】  図３
2006172164.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタからのメモリにアクセスするためのバス使用要求を調停するバス調停システムにおいて、
前記バスマスタから入力されるバス使用要求を記憶するバス使用要求記憶手段と、
前記バス使用要求記憶手段に記憶されるバス使用要求のそれぞれについて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定するアドレス空間重複判定手段と、
前記アドレス空間重複判定手段によりアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記バスマスタからの入力順でバス使用許可を行い、前記アドレス空間重複判定手段によりアクセス先のメモリのアドレス空間が他のバス使用要求と重複しないと判定されたバス使用要求に対して、ラウンドロビン方式の順でバス使用許可を行うバス使用調停手段とを有することを特徴とするバス調停システム。
【請求項２】
前記バス使用要求は、アクセス先のメモリのアドレス空間の先頭アドレス及びサイズを含み、
前記アドレス空間重複判定手段は、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定することを特徴とする請求項１に記載のバス調停システム。
【請求項３】
前記アドレス空間重複判定手段は、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間の終端アドレスを算出し、前記アクセス先のアドレス空間の先頭アドレスと終端アドレスの間に他のバス使用要求のアクセス先のメモリのアドレス空間が含まれるか否かを判定することを特徴とする請求項２に記載のバス調停システム。
【請求項４】
前記バス使用要求記憶手段は、前記バス使用要求に前記バスマスタからの入力順の情報を対応付けて記憶し、
前記バス使用調停手段は、前記アドレス空間重複判定手段によりアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記入力順の情報に応じた順序でバス使用許可を行うことを特徴とする請求項１乃至３のいずれかに記載のバス調停システム。
【請求項５】
複数のバスマスタからのメモリにアクセスするためのバス使用要求を調停するバス調停方法において、
前記バスマスタから入力されるバス使用要求を使用要求記憶手段に記憶させる使用要求記憶ステップと、
前記バス使用要求記憶手段に記憶されるバス使用要求のそれぞれについて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定するアドレス空間重複判定ステップと、
前記アドレス空間重複判定ステップにおいてアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記バスマスタからの入力順でバス使用許可を行い、前記アドレス空間重複判定ステップにおいてアクセス先のメモリのアドレス空間が他のバス使用要求と重複しないと判定されたバス使用要求に対して、ラウンドロビン方式の順でバス使用許可を行うバス使用調停ステップとを有することを特徴とするバス調停方法。
【請求項６】
前記バス使用要求は、アクセス先のメモリのアドレス空間の先頭アドレス及びサイズを含み、
前記アドレス空間重複判定ステップは、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定することを特徴とする請求項５に記載のバス調停方法。
【請求項７】
前記アドレス空間重複判定ステップは、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間の終端アドレスを算出し、前記アクセス先のアドレス空間の先頭アドレスと終端アドレスの間に他のバス使用要求のアクセス先のメモリのアドレス空間が含まれるか否かを判定することを特徴とする請求項７に記載のバス調停方法。
【請求項８】
前記バス使用要求記憶ステップは、前記バス使用要求に前記バスマスタからの入力順の情報を対応付けて前記バス使用要求記憶手段に記憶させ、
前記バス使用調停ステップは、前記アドレス空間重複判定ステップにおいてアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記入力順の情報に応じた順序でバス使用許可を行うことを特徴とする請求項５乃至７のいずれかに記載のバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタからのメモリにアクセスするためのバス使用要求を調停するバス調停システム及びバス調停方法に関する。
【背景技術】
【０００２】
従来、複数のバスマスタからのメモリにアクセスするためのバス使用要求の調停に際し、ラウンドロビン方式と先着順方式とが存在する。ラウンドロビン方式では、最新のバス使用許可を受けたバスマスタは、次のバス使用許可の優先順位が最下位となるように調停され、各バスマスタからのバス使用要求に対して循環的にバス使用許可がなされる。一方、先着順方式では、複数のバスマスタからのバス使用要求に対して、入力順にバス使用許可がなされる（例えば、特許文献１参照）。
【特許文献１】特開２００１−６７３０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ラウンドロビン方式では、複数のバスマスタからのバス使用要求が競合している場合に、同一のバスマスタからのバス使用要求に対して継続的にバス使用許可を行うことができない。このため、バスマスタがメモリからデータを読み出す場合に、適切なデータを読み出すことができない場合がある。
【０００４】
図１は、従来のラウンドロビン方式によるバス調停のタイミングチャートである。図１において、バスマスタＡは、メモリに対するアクセスを行う際に、バス調停を行うアービタに対して、書込コマンド「ｗｒｉｔｅ１」を実行するためのバス使用要求「ＲＥＱ１」を出力し、続いて、書込コマンド「ｗｒｉｔｅ２」を実行するためのバス使用要求「ＲＥＱ２」を出力する。その後、バスマスタＢは、アービタに対して、読出コマンド「ｒｅａｄ１」を実行するためのバス使用要求「ＲＥＱ３」を出力する。なお、書込コマンド「ｗｒｉｔｅ１」、「ｗｒｉｔｅ２」及び読出コマンド「ｒｅａｄ１」はメモリの同一のアドレス空間にアクセスするものである。
【０００５】
この場合、メモリの同一のアドレス空間にアクセスするためのバスの使用要求が競合していなければ、アービタは、バスマスタＡからのバス使用要求「ＲＥＱ１」、「ＲＥＱ２」、バスマスタＢからのバス使用要求「ＲＥＱ３」の順でバス使用許可を行い、それぞれに対してバス使用許可の応答（ＡＣＫ）を返す。従って、バスマスタＢは、書込コマンド「ｗｒｉｔｅ１」及び「ｗｒｉｔｅ２」の実行によって書き込まれた後のメモリのデータを読み出すことになる。
【０００６】
一方、図１に示すように、何らかの理由によって書込コマンド「ｗｒｉｔｅ１」の実行（内部処理）が長引いて内部バスが使用状態となり、メモリの同一のアドレス空間にアクセスするためのバスの使用要求である、バスマスタＡからのバス使用要求「ＲＥＱ２」とバスマスタＢからのバス使用要求「ＲＥＱ３」が競合すると、アービタは、ラウンドロビン方式によりバス調停を行う。すなわち、アービタは、書込コマンド「ｗｒｉｔｅ１」の実行のための内部バスの使用が終了し、調停タイミングが到来した時に、先にバスマスタＢからの「ＲＥＱ３」に対してバス使用許可を行い、読出コマンド「ｒｅａｄ１」の実行のために内部バスを使用させ、更にその内部バスの使用が終了した時に、バスマスタＡからの「ＲＥＱ２」に対してバス使用許可を行い、書込コマンド「ｗｒｉｔｅ２」の実行のために内部バスを使用させる。従って、バスマスタＢは、書込コマンド「ｗｒｉｔｅ１」の実行によって書き込まれた後のメモリのデータを読み出すことになり、バスの使用要求が競合していない場合とは異なるデータを読み出してしまう。
【０００７】
一方、先着順方式では、上述したように、バス使用要求の競合の有無によって読み出されるデータが異なるという問題は生じない。しかし、先着順方式では、バス使用要求の頻度の高いバスマスタに対して内部バスの割り当てが偏り、他のバスマスタの処理が遅延し、要求性能を満たせなくなったり、システム全体の性能が劣化してしまう。
【０００８】
図２は、従来の先着順方式によるバス調停のタイミングチャートである。図２において、アービタは、バス使用要求を、バスマスタＡからのバス使用要求「ＲＥＱ１」、バスマスタＡからのバス使用要求「ＲＥＱ２」、バスマスタＢからのバス使用要求「ＲＥＱ３」、バスマスタＡからのバス使用要求「ＲＥＱ４」、バスマスタＣからのバス使用要求「ＲＥＱ５」、バスマスタＡからのバス使用要求「ＲＥＱ６」の順で入力し、この入力順でバス使用許可を行う。従って、バス使用要求の頻度の高いバスマスタＡに対して内部バスの割り当てが偏り、他のバスマスタＢ及びＣのバス使用要求に対してバス使用許可が行われるまでの時間が長引き、これらバスマスタＢ及びＣの処理の遅延をもたらす。
【０００９】
本発明は、前述したような従来の問題を解決するためになされたもので、適切なバス調停を行うことが可能なバス調停システム及びバス調停方法を提供するものである。
【課題を解決するための手段】
【００１０】
本発明のバス調停システムは、複数のバスマスタからのメモリにアクセスするためのバス使用要求を調停するものであり、前記バスマスタから入力されるバス使用要求を記憶するバス使用要求記憶手段と、前記バス使用要求記憶手段に記憶されるバス使用要求のそれぞれについて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定するアドレス空間重複判定手段と、前記アドレス空間重複判定手段によりアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記バスマスタからの入力順でバス使用許可を行い、前記アドレス空間重複判定手段によりアクセス先のメモリのアドレス空間が他のバス使用要求と重複しないと判定されたバス使用要求に対して、ラウンドロビン方式の順でバス使用許可を行うバス使用調停手段とを有する。
【００１１】
この構成により、アクセス先のメモリのアドレス空間が重複するバス使用要求、換言すれば、競合するバス使用要求に対しては、入力順でバスの調停が行われるため、従来のラウンドロビン方式のバス調停のように、バス使用要求の競合の有無によって読み出されるデータが異なることが防止される。一方、アクセス先のメモリのアドレス空間が重複しないバス使用要求、換言すれば、競合しないバス使用要求に対しては、ラウンドロビン方式でバスの調停が行われるため、バス使用要求の頻度の高いバスマスタに対してバスの割り当てが偏り、他のバスマスタの処理が遅延することが防止される。すなわち、通常は、ラウンドロビン方式によりバス使用要求の頻度の高いバスマスタに対してバスの割り当てが偏ることを防止しつつ、バス使用要求の競合が生じた場合には、適切なデータが読み出されるようにすることができる。
【００１２】
また、本発明のバス調停システムは、前記バス使用要求が、アクセス先のメモリのアドレス空間の先頭アドレス及びサイズを含み、前記アドレス空間重複判定手段が、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定する。
【００１３】
また、本発明のバス調停システムは、前記アドレス空間重複判定手段が、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間の終端アドレスを算出し、前記アクセス先のアドレス空間の先頭アドレスと終端アドレスの間に他のバス使用要求のアクセス先のメモリのアドレス空間が含まれるか否かを判定する。
【００１４】
この構成により、各バス使用要求に対応するアクセス先のメモリのアドレス空間が先頭アドレスと終端アドレスによって特定され、その重複の判定が行われる。
【００１５】
また、本発明のバス調停システムは、前記バス使用要求記憶手段が、前記バス使用要求に前記バスマスタからの入力順の情報を対応付けて記憶し、前記バス使用調停手段は、前記アドレス空間重複判定手段によりアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記入力順の情報に応じた順序でバス使用許可を行う。
【００１６】
この構成により、バスマスタからのバス使用要求の入力順が特定され、入力順でのバス調停が行われる。
【００１７】
また、本発明のバス調停方法は、複数のバスマスタからのメモリにアクセスするためのバス使用要求を調停するものであって、前記バスマスタから入力されるバス使用要求を使用要求記憶手段に記憶させる使用要求記憶ステップと、前記バス使用要求記憶手段に記憶されるバス使用要求のそれぞれについて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定するアドレス空間重複判定ステップと、前記アドレス空間重複判定ステップにおいてアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記バスマスタからの入力順でバス使用許可を行い、前記アドレス空間重複判定ステップにおいてアクセス先のメモリのアドレス空間が他のバス使用要求と重複しないと判定されたバス使用要求に対して、ラウンドロビン方式の順でバス使用許可を行うバス使用調停ステップとを有する。
【００１８】
また、本発明のバス調停方法は、前記バス使用要求が、アクセス先のメモリのアドレス空間の先頭アドレス及びサイズを含み、前記アドレス空間重複判定ステップが、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間が他のバス使用要求と重複するか否かを判定する。
【００１９】
また、本発明のバス調停方法は、前記アドレス空間重複判定ステップが、前記バス使用要求に含まれるアクセス先のメモリのアドレス空間の先頭アドレス及びサイズに基づいて、アクセス先のメモリのアドレス空間の終端アドレスを算出し、前記アクセス先のアドレス空間の先頭アドレスと終端アドレスの間に他のバス使用要求のアクセス先のメモリのアドレス空間が含まれるか否かを判定する。
【００２０】
また、本発明のバス調停方法は、前記バス使用要求記憶ステップが、前記バス使用要求に前記バスマスタからの入力順の情報を対応付けて前記バス使用要求記憶手段に記憶させ、前記バス使用調停ステップが、前記アドレス空間重複判定ステップにおいてアクセス先のメモリのアドレス空間が他のバス使用要求と重複すると判定されたバス使用要求に対して、前記入力順の情報に応じた順序でバス使用許可を行う。
【発明の効果】
【００２１】
本発明によれば、通常は、ラウンドロビン方式によりバス使用要求の頻度の高いバスマスタに対してバスの割り当てが偏ることを防止しつつ、バス使用要求の競合が生じた場合には、適切なデータが読み出されるようにすることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態のバス調停システムについて、図面を用いて説明する。
【００２３】
図３は、本実施形態のバス調停システムの構成を示す図である。図３に示すバス調停システム１００は、複数のバスマスタからのメモリにアクセスするための内部バスの使用要求を調停するものであり、コマンド管理回路１１０、調停選択回路１２０、先着順アービタ１３０及びラウンドロビンアービタ１４０により構成される。
【００２４】
コマンド管理回路１１０は、コマンドキュー１１２及びアドレス比較回路１１４を有する。コマンド管理回路１１０は、各バスマスタからバス使用要求を入力する。このバス使用要求には、出力元のバスマスタの識別情報と、先頭アドレス及びサイズとが含まれる。ここで、先頭アドレスは、バス使用要求に応じて内部バスの使用が許可されたときに実行されるコマンドによってアクセスされるメモリのアドレス空間の先頭アドレスを示し、サイズは、そのアドレス空間の大きさを示す。
【００２５】
また、コマンド管理回路１１０は、バス使用要求を入力する毎に、その新たに入力したバス使用要求（新規バス使用要求）に、入力順序情報を付加してコマンドキュー１１２に記憶させる。ここで、入力順序情報は、付加されるバス使用要求のコマンド管理回路１１０への入力順を表すものである。なお、コマンドキュー１１２の容量は、バス使用要求の出力元となるバスマスタの数に応じて設定されるが、容量を超えるバス使用要求が発生した場合には、その容量を超える分のバス使用要求についてはコマンドキュー１１２に記憶されずに破棄される。
【００２６】
また、アドレス比較回路１１４は、コマンドキュー１１２内の新規バス使用要求に含まれる先頭アドレス及びサイズの組み合わせと、既にコマンドキュー１１２に記憶されていた他のバス使用要求（既存バス使用要求）に含まれる先頭アドレス及びサイズの組み合わせとに基づいて、新規バス使用要求と既存バス使用要求との競合の有無を判定する。ここで、バス使用要求の競合とは、バス使用要求に応じて内部バスの使用が許可されたときに実行されるコマンドによってアクセスされるメモリのアドレス空間が、他のバス使用要求に応じて内部バスの使用が許可されたときに実行されるコマンドによってアクセスされるメモリのアドレス空間と重複することを示す。
【００２７】
新規バス使用要求と既存バス使用要求とが競合している場合、アドレス比較回路１１４１１２１１４は、その競合を表すアドレスヒット情報を調停選択回路１２０へ出力する。また、アドレス比較回路１１４１１２１１４は、競合有無判定の結果を調停結果情報として生成し、選択比較回路１２０を介して、ラウンドロビンアービタ１４０及び外部へ出力する。この調停結果情報には、競合すると判定された各バス使用要求に付加された入力順序情報によって構成される。
【００２８】
更に、アドレス比較回路１１４は、新規バス使用要求が入力順序情報とともにコマンドキュー１１２に記憶される毎に、その新規バス使用要求に対応する内部リクエストを生成し、調停選択回路１２０へ出力する。ここで、内部リクエストは、対応するバス使用要求に含まれるバスマスタの識別情報と、対応するバス使用要求に付加された入力順序情報とによって構成される。
【００２９】
図４は、調停選択回路１２０の詳細な構成を示す図である。図４に示す調停選択回路１２０は、セレクタ１２２及び１２４を有する。セレクタ１２２は、アドレスヒット情報を入力したときに内部リクエストを先着順アービタ１３０へ出力する。この先着順アービタ１３０へ出力される内部リクエストは、競合する各バス使用要求に対応する内部リクエストである。一方、セレクタ１２２は、アドレスヒット情報を入力していないときに内部リクエストをラウンドロビンアービタ１４０へ出力する。このラウンドロビンアービタ１４０へ出力される内部リクエストは、競合しないバス使用要求に対応する内部リクエストである。セレクタ１２４の処理については後述する。
【００３０】
再び、図３に戻って説明する。先着順アービタ１３０は、入力した内部リクエストに基づいて、先着順方式でバス使用許可を行う。次に、先着順アービタ１３０は、バス使用許可の対象となった内部リクエストに含まれるバスマスタの識別情報により特定されるバスマスタに対して、バス使用許可の応答（ＡＣＫ）を返す。更に、先着順アービタ１３０は、バス使用許可の対象となった内部リクエストに含まれる入力順序情報を調停選択回路１２０に返す。
【００３１】
一方、ラウンドロビンアービタ１４０は、入力した内部リクエストに基づいて、ラウンドロビン方式でバス使用許可を行う。次に、ラウンドロビンアービタ１４０は、バス使用許可の対象となった内部リクエストに含まれるバスマスタの識別情報により特定されるバスマスタに対して、バス使用許可の応答（ＡＣＫ）を返す。更に、ラウンドロビンアービタ１４０は、バス使用許可の対象となった内部リクエストに含まれる入力順序情報を調停選択回路１２０に返す。
【００３２】
また、ラウンドロビンアービタ１４０は、調停結果情報を入力すると、それまでに入力したものの、まだバス使用許可の対象となっていない内部リクエストのうち、調停結果情報に含まれる入力順序情報と同一の入力順序情報を含むものをバス使用許可の対象から除外する。
【００３３】
調整選択回路１２０内のセレクタ１２４は、先着順アービタ１３０及びラウンドロビンアービタ１４０からのバス使用許可の対象となった内部リクエストに含まれる入力順序情報を、キュー取消フラグとしてコマンド管理回路１１０へ出力する。
【００３４】
コマンド管理回路１１０は、このキュー取消フラグを入力すると、当該キュー取消フラグによって表される入力順序情報と、その入力順序情報が付加されているバス使用要求をコマンドキュー１１２から削除する。これにより、内部バスの使用が許可されたバス使用要求については、コマンドキュー１１２から削除され、新たなバス使用要求の記憶が可能となる。
【００３５】
次に、フローチャートを参照しつつ、バス調停システムの動作を説明する。図５は、バス調停システム１００の動作を示すフローチャートである。
【００３６】
コマンド管理回路１１０は、バスマスタのいずれかからの新たなバス使用要求（新規バス使用要求）を入力したか否かを判定する（Ｓ１０１）。新規バス使用要求を入力した場合、コマンド管理回路１１０は、新規バス使用要求に、その新規バス使用要求のコマンド管理回路１１０への入力順を表す入力順序情報を付加して、コマンドキュー１１２に記憶させる（Ｓ１０２）。
【００３７】
次に、コマンド管理回路１１０内のアドレス比較回路１１４は、コマンドキュー１１２内の新規バス使用要求に含まれる先頭アドレス及びサイズの組み合わせと、コマンドキュー１１２内の既存バス使用要求に含まれる先頭アドレス及びサイズの組み合わせとに基づいて、新規バス使用要求が既存バス使用要求と競合しているか否かを判定するとともに、新規バス使用要求に対応する内部リクエストを生成する（Ｓ１０３）。
【００３８】
具体的には、アドレス比較回路１１４は、コマンドキュー１１２内の新規バス使用要求に含まれる先頭アドレス及びサイズの組み合わせと、コマンドキュー１１２内の既存バス使用要求に含まれる先頭アドレス及びサイズの組み合わせとのそれぞれに基づいて、先頭アドレスにサイズを加算した値を算出する。この値は、バス使用要求に応じて内部バスの使用が許可されたときに実行されるコマンドによってアクセスされるメモリのアドレス空間の終端アドレスを示す。更に、アドレス比較回路１１４は、メモリのアドレス空間において、新規バス使用要求に含まれる先頭アドレスが既存バス使用要求に対応する終端アドレスよりも前方である場合や、新規バス使用要求に対応する終端アドレスが既存バス使用要求に含まれる先頭アドレスよりも後方である場合には、アクセス先のアドレス空間が重複し、新規バス使用要求が既存バス使用要求と競合していると判定する。例えば、図６では、コマンドキュー１１２のキュー＃２における新規バス使用要求に対応する先頭アドレスがキュー＃１における既存バス使用要求に含まれる終端アドレスよりも前方であるため、新規バス使用要求が既存バス使用要求と競合していると判定される。
【００３９】
アドレス比較回路１１４によって生成された内部リクエストは、調停選択回路１２０へ出力される。
【００４０】
Ｓ１０３における競合の有無判定の結果、新規バス使用要求と既存バス使用要求との競合がある（Ｓ１０４で肯定判断）場合には、アドレス比較回路１１４１１２１１４は、アドレスヒット情報を生成する（Ｓ１０５）。生成されたアドレスヒット情報は、調停選択回路１２０へ出力される。
【００４１】
更に、アドレス比較回路１１４１１２１１４は、調停結果情報を生成する（Ｓ１０６）。生成された調停結果情報は、選択比較回路１２０を介して、ラウンドロビンアービタ１４０及び外部へ出力される。
【００４２】
調停選択回路１２０内のセレクタ１２２は、アドレスヒット情報を入力したときに、新規バス使用要求に対応する内部リクエストと、当該新規バス使用要求と競合する既存バス使用要求に対応する内部リクエストとを先着順アービタ１３０へ出力する。先着順アービタ１３０は、入力した各内部リクエストに基づいて、先着順方式によりバス使用許可を設定する（Ｓ１０７）。これにより、競合する各バス使用要求については、バスマスタからコマンド管理回路１１０への入力順に従って、バス使用の許可がなされることになる。
【００４３】
更に、ラウンドロビンアービタ１４０は、調停結果情報を入力すると、それまでに入力したものの、まだバス使用許可の対象となっていない内部リクエストに、調停結果情報に含まれる入力順序情報と同一の入力順序情報を含むものがあるか否かを判定する。調停結果情報に含まれる入力順序情報と同一の入力順序情報を含む内部リクエストが存在する場合、その内部リクエストは、当初、対応するバス使用許可が他のバス使用許可と競合していなかったために、ラウンドロビンアービタ１４０におけるバス使用許可の対象であったものの、その後にコマンド管理回路１１０が入力した新規バス使用許可と競合するものとなったために、先着順アービタ１３０におけるバス使用許可の対象に移行したものである。このため、ラウンドロビンアービタ１４０は、調停結果情報に含まれる入力順序情報と同一の入力順序情報を含む内部リクエストについては、バス使用許可の対象から除外する。これにより、新規バス使用許可と競合する既存バス使用要求は、ラウンドロビン方式によるバス使用許可の対象から除外される（Ｓ１０８）。
【００４４】
一方、Ｓ１０３における競合の有無判定の結果、新規バス使用要求と既存バス使用要求との競合がない（Ｓ１０４で否定判断）場合には、アドレス比較回路１１４１１２１１４は、アドレスヒット情報を生成せずに、調停結果情報のみを生成する（Ｓ１０９）。生成された調停結果情報は、選択比較回路１２０を介して、ラウンドロビンアービタ１４０及び外部へ出力される。
【００４５】
選択比較回路１２０内のセレクタ１２２は、アドレスヒット情報を入力していないときに、既存バス使用要求と競合しない新規バス使用要求に対応する内部リクエストをラウンドロビンアービタ１４０へ出力する。そして、ラウンドロビンアービタ１４０は、入力した内部リクエストに基づいて、ラウンドロビン方式によりバス使用許可を設定する。
【００４６】
このように、先着順アービタ１３０及びラウンドロビンアービタ１４０のそれぞれがバス使用許可の設定を行うと、その後は、その設定に基づいてバス使用許可（バス調停）が行われる。
【００４７】
図７は、競合するバス使用要求に対する先着順方式によるバス調停のタイミングチャートである。図７において、バスマスタＡは、メモリに対するアクセスを行う際に、コマンド管理回路１１０に対して、書込コマンド「ｗｒｉｔｅ１」を実行するためのバス使用要求「ＲＥＱ１」を出力し、続いて、書込コマンド「ｗｒｉｔｅ２」を実行するためのバス使用要求「ＲＥＱ２」を出力する。その後、バスマスタＢは、コマンド管理回路１１０に対して、読出コマンド「ｒｅａｄ１」を実行するためのバス使用要求「ＲＥＱ３」を出力する。従って、コマンド管理回路１１０における入力順は、バス使用要求「ＲＥＱ１」、バス使用要求「ＲＥＱ２」、バス使用要求「ＲＥＱ３」の順となる。なお、書込コマンド「ｗｒｉｔｅ１」、「ｗｒｉｔｅ２」及び読出コマンド「ｒｅａｄ１」はメモリの同一のアドレス空間にアクセスするものである。
【００４８】
この場合、何らかの理由によって書込コマンド「ｗｒｉｔｅ１」の実行が長引いて内部バスが使用状態となり、メモリの同一のアドレス空間にアクセスするためのバスの使用要求である、バスマスタＡからのバス使用要求「ＲＥＱ２」とバスマスタＢからのバス使用要求「ＲＥＱ３」が競合する、換言すれば、バス使用要求「ＲＥＱ２」に対応する内部リクエストとバス使用要求「ＲＥＱ３」に対応する内部リクエストとが競合すると、コマンド管理回路１１０内のアドレス比較回路１１４１１２１１４は、アドレスヒット情報を生成し、調停選択回路１２０へ出力する。そして、調停選択回路１２０は、バス使用要求「ＲＥＱ２」に対応する内部リクエストとバス使用要求「ＲＥＱ３」に対応する内部リクエストとを先着順アービタ１３０へ出力する。
【００４９】
先着順アービタ１４０は、これら内部リクエストを入力すると、コマンド管理回路１１０２が入力した順に従い、バス使用要求「ＲＥＱ２」、バス使用要求「ＲＥＱ３」の順でバス使用許可を設定する。
【００５０】
そして、先着順アービタ１４０は、バス使用要求「ＲＥＱ１」に対応する書込コマンド「ｗｒｉｔｅ１」を実行のための内部バスの使用が終了し、調停タイミングが到来した時に、バス使用要求「ＲＥＱ２」に対応する内部リクエストに応じて、バス使用要求「ＲＥＱ２」に対してバス使用許可を行い、当該バス使用要求「ＲＥＱ２」に対応する書込コマンド「ｗｒｉｔｅ２」の実行のために内部バスを使用させ、更にその内部バスの使用が終了した時に、バス使用要求「ＲＥＱ３」に対応する内部リクエストに応じて、バス使用要求「ＲＥＱ３」に対してバス使用許可を行い、当該バス使用要求「ＲＥＱ３」に対応する読出コマンド「ｒｅａｄ１」の実行のために内部バスを使用させる。
【００５１】
図８は、競合しないバス使用要求に対するラウンドロビン方式によるバス調停のタイミングチャートである。図８において、バスマスタＡは、コマンド管理回路１１０に対して、バス使用要求「ＲＥＱ１」を出力し、続いて、バス使用要求「ＲＥＱ２」を出力する。その後、バスマスタＢは、コマンド管理回路１１０に対して、バス使用要求「ＲＥＱ３」を出力する。更に、バスマスタＡは、コマンド管理回路１１０に対して、バス使用要求「ＲＥＱ４」を出力し、続いて、バスマスタＢは、コマンド管理回路１１０に対して、バス使用要求「ＲＥＱ５」を出力し、その後、バスマスタＡは、コマンド管理回路１１０に対して、バス使用要求「ＲＥＱ６」を出力する。従って、コマンド管理回路１１０における入力順は、バス使用要求「ＲＥＱ１」、バス使用要求「ＲＥＱ２」、バス使用要求「ＲＥＱ３」、バス使用要求「ＲＥＱ４」、バス使用要求「ＲＥＱ５」、バス使用要求「ＲＥＱ６」の順となる。
【００５２】
この場合、バスマスタＡからのバス使用要求「ＲＥＱ１」に対するバス使用許可が行われて内部バスが使用されている間に、バスマスタＡからのバス使用要求「ＲＥＱ２」とバスマスタＢからのバス使用要求「ＲＥＱ３」がコマンド管理回路１１０に入力され、更に、これらバス使用要求に対応する内部リクエストがラウンドロビンアービタ１４０に入力されると、ラウンドロビンアービタ１４０は、バスマスタＢからのバス使用要求「ＲＥＱ３」、バスマスタＡからのバス使用要求「ＲＥＱ２」の順でバス使用許可を設定する。
【００５３】
そして、先着順アービタ１４０は、バス使用要求「ＲＥＱ１」に対応する内部バスの使用が終了し、調停タイミングが到来した時に、バス使用要求「ＲＥＱ３」に対応する内部リクエストに応じて、バス使用要求「ＲＥＱ３」に対してバス使用許可を行い、内部バスを使用させ、更にその内部バスの使用が終了した時に、バス使用要求「ＲＥＱ２」に対応する内部リクエストに応じて、バス使用要求「ＲＥＱ２」に対してバス使用許可を行い、内部バスを使用させる。
【００５４】
更に、バスマスタＡからのバス使用要求「ＲＥＱ４」に対するバス使用許可が行われて内部バスが使用されている間に、バスマスタＣからのバス使用要求「ＲＥＱ５」とバスマスタＡからのバス使用要求「ＲＥＱ６」がコマンド管理回路１１０に入力され、更に、これらバス使用要求に対応する内部リクエストがラウンドロビンアービタ１４０に入力されると、ラウンドロビンアービタ１４０は、バスマスタＣからのバス使用要求「ＲＥＱ５」、バスマスタＡからのバス使用要求「ＲＥＱ６」の順でバス使用許可を設定する。
【００５５】
そして、先着順アービタ１４０は、バス使用要求「ＲＥＱ４」に対応する内部バスの使用が終了し、調停タイミングが到来した時に、バス使用要求「ＲＥＱ５」に対応する内部リクエストに応じて、バス使用要求「ＲＥＱ５」に対してバス使用許可を行い、内部バスを使用させ、更にその内部バスの使用が終了した時に、バス使用要求「ＲＥＱ６」に対応する内部リクエストに応じて、バス使用要求「ＲＥＱ６」に対してバス使用許可を行い、内部バスを使用させる。
【００５６】
このように、バス調停システム１００は、バス使用要求間において、アクセス先のメモリのアドレス空間が重複しない、すなわち、バス使用要求が競合しない通常の場合においては、ラウンドロビン方式によりバスの調停を行うため、バス使用要求の頻度の高いバスマスタに対してバスの割り当てが偏り、他のバスマスタの処理が遅延することが防止される。一方、バス調停システム１００は、バス使用要求間において、アクセス先のメモリのアドレス空間が重複する、すなわち、バス使用要求が競合する場合においては、その競合するバス使用要求に対して、先着順方式により入力順でバスの調停を行うため、従来のラウンドロビン方式のバス調停のように、バス使用要求の競合の有無によって読み出されるデータが異なることが防止される。
【産業上の利用可能性】
【００５７】
以上、説明したように、本発明に係るバス調停システム及びバス調停方法は、ラウンドロビン方式によりバス使用要求の頻度の高いバスマスタに対してバスの割り当てが偏ることを防止しつつ、バス使用要求の競合が生じた場合には、適切なデータが読み出されるようにすることができ、バス調停システム及びバス調停方法として有用である。
【図面の簡単な説明】
【００５８】
【図１】従来のラウンドロビン方式によるバス調停のタイミングチャートである。
【図２】従来の先着順方式によるバス調停のタイミングチャートである。
【図３】本実施形態のバス調停システムの構成を示す図である。
【図４】調停選択回路の詳細な構成を示す図である。
【図５】バス調停システムの動作を示すフローチャートである。
【図６】新規バス使用要求と既存バス使用要求との競合状態の一例を示す図である。
【図７】競合するバス使用要求に対する先着順方式によるバス調停のタイミングチャートである。
【図８】競合しないバス使用要求に対するラウンドロビン方式によるバス調停のタイミングチャートである。
【符号の説明】
【００５９】
１００  バス調停システム
１１０  コマンド管理回路
１１２  コマンドキューアドレス比較回路コマンドキュー
１１４  アドレス比較回路コマンドキューアドレス比較回路
１２０  調停選択回路
１２２、１２４  セレクタ
１３０  先着順アービタ
１４０  ラウンドロビンアービタ
【図１】
2006172164.tif 000003
【図２】
2006172164.tif 000004
【図３】
2006172164.tif 000005
【図４】
2006172164.tif 000006
【図５】
2006172164.tif 000007
【図６】
2006172164.tif 000008
【図７】
2006172164.tif 000009
【図８】
2006172164.tif 000010