(57)【要約】【課題】複数の要求装置の優先順位を動的に可変にでき、処理効率を高めると共に、該複数の要求装置の総数が変化した場合に柔軟に対応可能にする。【解決手段】調停要求信号ＲＥＱは各調停ブロックに入力される。各調停ブロックは、調停結果と優先信号を調停結果決定回路に出力する。第１の調停ブロック３００は、さらに、優先順位パターンＰ０が入力され、第１の調停結果Ｐ１と第１のマスク信号Ｍ１を第２の調停ブロック４００に出力する。第２の調停ブロック４００は、さらに、第１の調停結果Ｐ１が入力され、第２の調停結果Ｐ２と第２のマスク信号Ｍ２を第３の調停ブロック５００に出力する。第３の調停ブロック５００は、さらに、第２の調停結果Ｐ２が入力される。調停結果決定回路７００は、各調停ブロックからの信号に基づいて調停結果Ｒを選択する。【選択図】図２
2013114542.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個の要求装置（Ｎ：２以上の整数）からの要求を調停する調停回路において、
段階的に順次接続されたＮ個の調停ブロックと、
前記Ｎ個の調停ブロックと接続されており、調停結果を決定する調停結果決定回路であり、前記Ｎ個の要求装置のうちの１つを示す優先順位パターンが有効調停サイクル毎に１つ入力される前記調停結果決定回路とを備え、
有効調停サイクル毎に、
第１段の調停ブロックは、
要求を出している前記要求装置を候補装置とした場合に前記Ｎ個の要求装置のうちの全ての候補装置を示す調停要求信号と、前記優先順位パターンとが入力され、第１の調停結果と、該第１の調停結果が「有効」または「無効」であることを示す第１の優先信号とを前記調停結果決定回路に出力すると共に、前記第１の調停結果と第１のマスク信号とを２段目の前記調停ブロックに出力し、
前記第１の調停結果が、前記優先順位パターンと同様の信号であり、
前記第１の優先信号が、前記優先順位パターンが示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致するときにのみ、「有効」を示す信号であり、
前記第１のマスク信号が、前記第１の優先信号と同様の信号であり、
第ｋ段（１＜ｋ≦「Ｎ−１」）の調停ブロックは、
前記調停要求信号と、前段の調停ブロックからの第「ｋ−１」の調停結果及び第「ｋ−１」のマスク信号とが入力され、第ｋの調停結果と、該第ｋの調停結果が「有効」または「無効」であることを示す第ｋの優先信号とを前記調停結果決定回路に出力すると共に、前記第ｋの調停結果と第ｋのマスク信号とを次段の調停ブロックに出力し、
前記第ｋの調停結果が、前記Ｎ個の要求装置のうちの、前記第１の調停結果から第「ｋ−１」の調停結果までのいずれの調停結果が要求装置とも異なる要求装置を示す信号であり、
前記第ｋの優先信号が、前記第ｋの調停結果が示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致し、かつ、第「ｋ−１」のマスク信号が「無効」を示すときにのみ、「有効」を示す信号であり、
前記第ｋのマスク信号が、前記第ｋの調停結果が示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致する場合と、前記第「ｋ−１」のマスク信号が「有効」を示す場合とのいずれのときにのみ、「有効」を示す信号であり、
第Ｎ段の調停ブロックは、
前記調停要求信号と、第「Ｎ−１」の調停結果及び第「Ｎ−１」のマスク信号とが入力され、第Ｎの調停結果と、該第Ｎの調停結果が「有効」または「無効」であることを示す第Ｎの優先信号とを前記調停結果決定回路に出力し、
前記第Ｎの調停結果が、前記Ｎ個の要求装置のうちの、前記第１の調停結果から第「Ｎ−１」の調停結果までのいずれの調停結果が要求装置とも異なる要求装置を示す信号であり、
前記第Ｎの優先信号が、前記第Ｎの調停結果が示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致し、かつ、第「Ｎ−１」のマスク信号が「無効」を示すときにのみ、「有効」を示す信号であり、
調停結果決定回路は、第１の調停結果から第Ｎの調停結果までのＮ個の調停結果から、第１の優先信号から第Ｎの優先信号までのＮ個の優先信号のうちの、「有効」を示す優先信号に対応する調停結果が示す１つの要求装置に許可を与えることを示す許可信号を出力することを特徴とする調停回路。
【請求項２】
前記許可信号から次の有効調停サイクルに使用する優先順位パターンを生成する優先順位パターン生成回路をさらに備え、
前記許可信号は、前記Ｎ個要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちの、許可を与えられる１つの要求装置に対応するビットのみが「１」であり、
前記優先順位パターン生成回路は、前記調停結果決定回路が出力した前記許可信号を１ビット左ローテーションさせることにより前記優先順位パターンを生成することを特徴とする請求項１に記載の調停回路。
【請求項３】
共通バスの使用権を調停するものであり、
前記Ｎ個の要求装置は、前記共通バスを使用するバスマスタであり、
前記要求は、前記共通バスの使用要求であることを特徴とする請求項１または２に記載の調停回路。
【請求項４】
ＵＳＢハブ（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）において、ＤＳポート（（ＤＳ：Ｄｏｗｎｓｔｒｅａｍ  Ｆａｃｉｎｇ）からＵＳポート（Ｕｐｓｔｒｅａｍ  Ｆａｃｉｎｇ）への送信権を調停するものであり、
前記Ｎ個の要求装置は、前記ＵＳポートへ送信するＤＳポートであり、
前記要求は、前記ＵＳポートへの送信要求であることを特徴とする請求項１または２に記載の調停回路。
【請求項５】
前記優先順位パターンは、前記Ｎ個の要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちの、前記優先順位パターンが示す要求装置に対応する１つのビットのみが「１」であり、
前記調停要求信号は、前記Ｎ個の要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちに、候補装置に対応するビットのみが「１」であり、
前記第１の調停結果から前記第Ｎの調停結果までの各調停結果は、前記Ｎ個の要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちに、該調停結果が示す要求装置に対応する１つのビットのみが「１」であり、
前記第１の優先信号から前記第Ｎの優先信号までの各優先信号と、前記第１のマスク信号から前記第「Ｎ−１」のマスク信号までの各マスク信号は、「１」により「有効」を示し、「０」により無効を示す１ビットの信号であり、
同様のビット数を有する２つのビット列の同位置の１対のビットをビットペアとした場合に、
前記第１段の調停ブロックは、
前記調停要求信号と前記優先順位パターンのビットペア毎の論理積を求め、各前記論理積の論理和を前記第１の優先信号と第１のマスク信号として求め、
前記第ｋ段の調停ブロックは、
前記第「ｋ−１」の調停結果を１ビット左ローテーションさせることにより前記第ｋの調停結果を求め、
前記調停要求信号と前記第ｋの調停結果のビットペア毎の論理積を求め、各前記論理積の論理和を第ｋの調停グラグとして求め、
前記第「ｋ−１」のマスク信号の反転信号と、前記第ｋの調停フラグとの論理積を前記第ｋの優先信号として求め、
前記第「ｋ−１」のマスク信号と、前記第ｋの調停フラグとの論理和を前記第ｋのマスク信号として求め、
前記第Ｎ段の調停ブロックは、
前記第「Ｎ−１」の調停結果を１ビット左ローテーションさせることにより前記第Ｎの調停結果を求め、
前記調停要求信号と前記第Ｎの調停結果のビットペア毎の論理積を求め、各前記論理積の論理和を第Ｎの調停グラグとして求め、
前記第「Ｎ−１」のマスク信号の反転信号と、前記第Ｎの調停フラグとの論理積を前記第Ｎの優先信号として求めることを特徴とする請求項１から４のいずれか１項に記載の調停回路。
【請求項６】
Ｎ個の要求装置（Ｎ：２以上の整数）と、
該Ｎ個の要求装置からの要求を調停する調停回路とを備える半導体装置において、
前記調停回路は、
段階的に順次接続されたＮ個の調停ブロックと、
前記Ｎ個の調停ブロックと接続されており、調停結果を決定する調停結果決定回路であり、前記Ｎ個の要求装置のうちの１つを示す優先順位パターンが有効調停サイクル毎に１つ入力される前記調停結果決定回路とを備え、
有効調停サイクル毎に、
第１段の調停ブロックは、
要求を出している前記要求装置を候補装置とした場合に前記Ｎ個の要求装置のうちの全ての候補装置を示す調停要求信号と、前記優先順位パターンとが入力され、第１の調停結果と、該第１の調停結果が「有効」または「無効」であることを示す第１の優先信号とを前記調停結果決定回路に出力すると共に、前記第１の調停結果と第１のマスク信号とを２段目の前記調停ブロックに出力し、
前記第１の調停結果が、前記優先順位パターンと同様の信号であり、
前記第１の優先信号が、前記優先順位パターンが示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致するときにのみ、「有効」を示す信号であり、
前記第１のマスク信号が、前記第１の優先信号と同様の信号であり、
第ｋ段（１＜ｋ≦「Ｎ−１」）の調停ブロックは、
前記調停要求信号と、前段の調停ブロックからの第「ｋ−１」の調停結果及び第「ｋ−１」のマスク信号とが入力され、第ｋの調停結果と、該第ｋの調停結果が「有効」または「無効」であることを示す第ｋの優先信号とを前記調停結果決定回路に出力すると共に、前記第ｋの調停結果と第ｋのマスク信号とを次段の調停ブロックに出力し、
前記第ｋの調停結果が、前記Ｎ個の要求装置のうちの、前記第１の調停結果から第「ｋ−１」の調停結果までのいずれの調停結果が要求装置とも異なる要求装置を示す信号であり、
前記第ｋの優先信号が、前記第ｋの調停結果が示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致し、かつ、第「ｋ−１」のマスク信号が「無効」を示すときにのみ、「有効」を示す信号であり、
前記第ｋのマスク信号が、前記第ｋの調停結果が示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致する場合と、前記第「ｋ−１」のマスク信号が「有効」を示す場合とのいずれのときにのみ、「有効」を示す信号であり、
第Ｎ段の調停ブロックは、
前記調停要求信号と、第「Ｎ−１」の調停結果及び第「Ｎ−１」のマスク信号とが入力され、第Ｎの調停結果と、該第Ｎの調停結果が「有効」または「無効」であることを示す第Ｎの優先信号とを前記調停結果決定回路に出力し、
前記第Ｎの調停結果が、前記Ｎ個の要求装置のうちの、前記第１の調停結果から第「Ｎ−１」の調停結果までのいずれの調停結果が要求装置とも異なる要求装置を示す信号であり、
前記第Ｎの優先信号が、前記第Ｎの調停結果が示す要求装置と、前記調停要求信号が示すいずれか１つの候補装置とが一致し、かつ、第「Ｎ−１」のマスク信号が「無効」を示すときにのみ、「有効」を示す信号であり、
調停結果決定回路は、第１の調停結果から第Ｎの調停結果までのＮ個の調停結果から、第１の優先信号から第Ｎの優先信号までのＮ個の優先信号のうちの、「有効」を示す優先信号に対応する調停結果が示す１つの要求装置に許可を与えることを示す許可信号を出力することを特徴とする半導体装置。
【請求項７】
前記調停回路は、前記許可信号から次の有効調停サイクルに使用する優先順位パターンを生成する優先順位パターン生成回路をさらに備え、
前記許可信号は、前記Ｎ個要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちの、許可を与えられる１つの要求装置に対応するビットのみが「１」であり、
前記優先順位パターン生成回路は、前記調停結果決定回路が出力した前記許可信号を１ビット左ローテーションさせることにより前記優先順位パターンを生成することを特徴とする請求項６に記載の半導体装置。
【請求項８】
共通バスをさらに備え、
前記調停回路は、前記共通バスの使用権を調停するものであり、
前記Ｎ個の要求装置は、前記共通バスを使用するバスマスタであり、
前記要求は、前記共通バスの使用要求であることを特徴とする請求項６または７に記載の半導体装置。
【請求項９】
ＵＳＢハブ（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）であり、
ＵＳポート（Ｕｐｓｔｒｅａｍ  Ｆａｃｉｎｇ）をさらに備え、
前記Ｎ個の要求装置は、前記ＵＳポートへ送信するＤＳポート（ＤＳ：Ｄｏｗｎｓｔｒｅａｍ  Ｆａｃｉｎｇ）であり、
前記要求は、前記ＵＳポートへの送信要求であり、
前記調停回路は、前記ＵＳポートへの送信権を調停することを特徴とする請求項６または７に記載の半導体装置。
【請求項１０】
前記優先順位パターンは、前記Ｎ個の要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちの、前記優先順位パターンが示す要求装置に対応する１つのビットのみが「１」であり、
前記調停要求信号は、前記Ｎ個の要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちに、候補装置に対応するビットのみが「１」であり、
前記第１の調停結果から前記第Ｎの調停結果までの各調停結果は、前記Ｎ個の要求装置に夫々対応するＮビットの信号であり、該Ｎビットのうちに、該調停結果が示す要求装置に対応する１つのビットのみが「１」であり、
前記第１の優先信号から前記第Ｎの優先信号までの各優先信号と、前記第１のマスク信号から前記第「Ｎ−１」のマスク信号までの各マスク信号は、「１」により「有効」を示し、「０」により無効を示す１ビットの信号であり、
同様のビット数を有する２つのビット列の同位置の１対のビットをビットペアとした場合に、
前記調停回路において、
前記第１段の調停ブロックは、
前記調停要求信号と前記優先順位パターンのビットペア毎の論理積を求め、各前記論理積の論理和を前記第１の優先信号と第１のマスク信号として求め、
前記第ｋ段の調停ブロックは、
前記第「ｋ−１」の調停結果を１ビット左ローテーションさせることにより前記第ｋの調停結果を求め、
前記調停要求信号と前記第ｋの調停結果のビットペア毎の論理積を求め、各前記論理積の論理和を第ｋの調停グラグとして求め、
前記第「ｋ−１」のマスク信号の反転信号と、前記第ｋの調停フラグとの論理積を前記第ｋの優先信号として求め、
前記第「ｋ−１」のマスク信号と、前記第ｋの調停フラグとの論理和を前記第ｋのマスク信号として求め、
前記第Ｎ段の調停ブロックは、
前記第「Ｎ−１」の調停結果を１ビット左ローテーションさせることにより前記第Ｎの調停結果を求め、
前記調停要求信号と前記第Ｎの調停結果のビットペア毎の論理積を求め、各前記論理積の論理和を第Ｎの調停グラグとして求め、
前記第「Ｎ−１」のマスク信号の反転信号と、前記第Ｎの調停フラグとの論理積を前記第Ｎの優先信号として求めることを特徴とする請求項６から９のいずれか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同時に要求を出しうる複数の要求装置に対して要求の調停をする技術に関する。
【背景技術】
【０００２】
様々な電子機器において、複数の要求を調停する処理が行われている。例えば、要求装置に該当する複数のバスマスタが共通バスを使用するシステムにおいて、共通バスに対する使用要求を該複数のバスマスタに対して調停する調停回路や、要求装置に該当する複数のＤＳポート（ＤＳ：Ｄｏｗｎｓｔｒｅａｍ  Ｆａｃｉｎｇ）を有するＵＳＢハブ（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）において、ＵＳポート（Ｕｐｓｔｒｅａｍ  Ｆａｃｉｎｇ）への送信要求を該複数のＤＳポートに対して調停する調停回路などが用いられている。
【０００３】
調停処理に用いられるアルゴリズムとして、代表的には、下記の３種類が知られている。これらのアルゴリズムについて、複数のバスマスタを備えるバスシステムを例にして説明する。なお、下記説明は、バスシステム以外の、複数の同様の要求を調停する処理を行う装置にも適用できる。例えば、バスマスタを「ＤＳポート」に、バス使用要求を「ＵＳポートへの送信要求」に、バス使用権を「ＵＳポートへの送信権」に置換えれば、下記の説明は、ＵＳＢハブの場合に適用できる。
【０００４】
第１のアルゴリズムは、各バスマスタに予め優先順位を夫々与えておくプライオリティ方式である。
【０００５】
この方式では、調停回路は、バス使用権を現在与えているバスマスタより優先順位の高いバスマスタからのバス使用要求を検出すると、現在バスを使用しているバスマスタに対してバスの明け渡しを要求する。
【０００６】
その後、調停回路は、バスが明け渡されたことを確認すると、バス使用要求を出した、優先順位の高いバスマスタに対してバス使用権を与える。
【０００７】
第２のアルゴリズムは、調停回路が各バスマスタに対して巡回的にバスの使用要求の有無を問い合わせ、バス使用要求を出しているバスマスタにバス使用権を与えるラウンドロビン方式である。
【０００８】
第３のアルゴリズムは、各バスマスタに対するバス使用許可信号がデイジーチェーンに接続されたシングルレベル方式である。図２７を参照してこの方式を説明する。なお、図２７は、特許文献１における図２である。
【０００９】
この方式の場合、各バスマスタ（４−１、４−２、４−３、・・・４−ｎ）は、共通のバス使用要求線１３を用いて、調停回路に該当するバスアービタ３に対してバスの使用要求（ＢＲ）を行う。バスアービタ３からのバス使用許可は、バスアービタ３からバスマスタ４−ｎまでデイジーチェーンに接続されたバス使用許可信号線１４により伝搬される。
【００１０】
例えば、上流側（バスアービタ３側）のバスマスタがバス使用要求ＢＲを行っていない場合には、バスの使用許可は、下流に運搬される。すなわち、各バスマスタの優先順位は実装位置により決められている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平６−２１４９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
第１のアルゴリズムの場合、一般的に、バスの使用効率が高いが、調停回路及びバスマスタの構造が非常に複雑になってしまう。また、各バスマスタに固定した優先順位が予め与えられていると、バスマスタ間で優先順位の高低差が無いシステムに適用することができない。
【００１３】
第３のアルゴリズムの場合、バス使用許可がデイジーチェーンで上流から下流へ運搬されるため、バスマスタの数が多いほど、バス使用許可の運搬時間が長くなり、バスの使用効率が低下すると共に、上流のバスマスタほど優先順位が高くなるため、下流側のバスマスタにバス使用権が渡りにくいという問題がある。さらに、優先順位が実装位置により決まっているため、優先順位を変更する柔軟性が皆無である。勿論、第１のアルゴリズムの場合と同様に、バスマスタ間で優先順位の高低差が無いシステムに適用することができない。
【００１４】
第２のアルゴリズムであるラウンドロビン方式の場合は、各バスマスタの優先順位が同一となっているため、バスマスタ間で優先順位の高低差が無いシステムに適用することができるが、バスの割当がサイクリックであるため、最悪の場合には、バスの使用要求を出したバスマスタが、順番が一回りするまで待たされることになる。バスマスタの数が多いほど調停時間が長くなってしまい、バスの使用効率が低下するという問題がある。
【００１５】
バスマスタの優先順位を動的に可変にすると共にバスの使用効率を高めるために、例えば、下記の手法が考えられる。なお、バスマスタの総数がＮ（Ｎ：２以上の整数）であるとする。
【００１６】
Ｎ個の異なる優先順位パターンを用意して、Ｎ個の有効調停サイクル毎に、これらの優先順位パターンを順次調停回路に供給する。これらのＮ個の優先順位パターンは、夫々異なる１つのバスマスタを示す信号であり、当該バスマスタが最高優先順位を持つことを意味する。なお、「有効調停サイクル」は、少なくとも１つのバスマスタがバス使用要求を出しているサイクルを意味する。
【００１７】
各有効調停サイクルにおいて、調停回路は、供された優先順位パターンに応じてＮ個のバスマスタの優先順位を決定し、下記のルールに従って調停を行う。
【００１８】
＜ルール１＞
当該有効調停サイクルにおいて、Ｎ個のバスマスタのうちに、バス使用要求を出しているバスマスタが１つのみである場合に、供給されている優先順位パターンがいずれのバスマスタを示すに関わらず、該バスマスタにバス使用権を与える。
【００１９】
＜ルール２＞
当該有効調停サイクルにおいて、バス使用要求を出しているバスマスタが複数あり、かつ、該複数のバスマスタのうちに、供給されている優先順位パターンが示すバスマスタが含まれている場合に、優先順位パターンが示すバスマスタにバス使用権を与える。
【００２０】
＜ルール３＞
当該有効調停サイクルにおいて、バス使用要求を出しているバスマスタが複数あり、かつ、該複数のバスマスタのうちに、優先順位パターンが示すバスマスタが含まれていない場合に、該複数のバスマスタのうちの、優先順位パターンに応じて決定された優先順位のうちの最も高い優先順位を有する１つにバス使用権を与える。
【００２１】
この手法によれば、優先順位パターンにより実際の優先順位を変えることができるので、バスマスタ間で優先順位の高低差が無いシステムに適用することができる。また、バス使用要求を出しているバスマスタが１つまたは複数があれば、必ず１つのバスマスタにバス使用権が与えられるため、ラウンドロビン方式よりバスの使用効率を高めることができる。
【００２２】
この手法を実現する具体的な回路として、図２８に示す調停回路５０が考えられる。なお、調停回路５０は、バスマスタの総数Ｎが３である場合の例である。
【００２３】
調停回路５０は、第１の調停ブロック６０、第２の調停ブロック７０、第３の調停ブロック８０、マルチプレックサ（ＭＵＸ）９０を備える。
【００２４】
第１の調停ブロック６０は、調停要求信号ＲＥＱが入力され、第１の調停結果Ｒ１を出力する。第２の調停ブロック７０は、調停要求信号ＲＥＱが入力され、第２の調停結果Ｒ２を出力する。第３の調停ブロック８０は、調停要求信号ＲＥＱが入力され、第３の調停結果Ｒ３を出力する。
【００２５】
ＭＵＸ９０は、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３、優先順位パターンＰＰが入力され、優先順位パターンＰＰに基づいて、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３のうちの１つを調停結果Ｒとして選択して出力する。
【００２６】
調停要求信号ＲＥＱは、バスマスタの総数と同数のビット数を有し、この例では、３ビットである。調停要求信号ＲＥＱの３つのビットは、３つのバスマスタ（図示せず）に夫々対応し、「１」が該バスマスタからバス使用要求があることを示し、「０」が該バスマスタからバス使用要求が無いことを示す。
【００２７】
優先順位パターンＰＰは、３つのバスマスタのうちの１つを示す信号である。優先順位パターンＰＰにより示されるバスマスタは、該優先順位パターンＰＰが供給される有効調停サイクルにおいて優先されるバスマスタを意味する。優先順位パターンＰＰの３ビットは、３つのバスマスタに夫々対応し、「１」が該バスマスタを優先することを意味し、「０」が該バスマスタを優先しないことを示す。
【００２８】
図２８において、信号を示す英数字の後ろにある［Ｘ：Ｙ］（Ｘ、Ｙ：数字）は、該信号のビット構成を示す。例えば、調停要求信号を示すＲＥＱの後ろにある「２：０」は、ＲＥＱが、１ビット目（ビット０）から３ビット目（ビット２）までの３ビットにより構成されることを示す。同様に、優先順位パターンを示すＰＰの後ろにある「２：０」は、信号ＰＰが、１ビット目（ビット０）から３ビット目（ビット２）までの３ビットにより構成されることを示す。
【００２９】
また、信号線上の［Ｋ］（Ｋ：数字）は、該信号線上を流れる信号が、調停要求信号ＲＥＱの「Ｋ＋１」ビット目（ビットＫ）であることを示す。例えば、図２８の一番上の信号線上の［２］は、該信号線に流れる信号が、調停要求信号ＲＥＱのビット２（３ビット目）であることを示す。
【００３０】
調停回路５０の各機能ブロックを説明する。
第１の調停ブロック６０は、ＯＲ回路６１、インバータ６２、ＡＮＤ回路６３、インバータ６４、ＡＮＤ回路６５を備える。
【００３１】
ＯＲ回路６１は、調停要求信号ＲＥＱのビット１とビット０の論理和値を得てインバータ６２に出力する。インバータ６２は、ＯＲ回路６１の出力を反転させてＡＮＤ回路６３に出力する。
【００３２】
ＡＮＤ回路６３は、調停要求信号ＲＥＱのビット２と、インバータ６２の出力との論理積を出力する。ＡＮＤ回路６３の出力は、第１の調停結果Ｒ１のビット２になる。
【００３３】
インバータ６４は、調停要求信号ＲＥＱのビット０を反転させてＡＮＤ回路６５に出力し、ＡＮＤ回路６５は、調停要求信号ＲＥＱのビット１と、インバータ６４の出力との論理積を出力する。ＡＮＤ回路６５の出力は、第１の調停結果Ｒ１のビット１になる。
【００３４】
また、第１の調停ブロック６０は、調停要求信号ＲＥＱのビット０をそのまま、第１の調停結果Ｒ１のビット０として出力する。
このようにして、第１の調停ブロック６０は、３ビットの第１の調停結果Ｒ１を得る。
【００３５】
第２の調停ブロック７０は、インバータ７１、ＡＮＤ回路７２、ＯＲ回路７３、インバータ７４、ＡＮＤ回路７５を備える。
【００３６】
インバータ７１は、調停要求信号ＲＥＱのビット１を反転させてＡＮＤ回路７２に出力する。ＡＮＤ回路７２は、調停要求信号ＲＥＱのビット２と、インバータ７１の出力との論理積を出力する。ＡＮＤ回路７２の出力は、第２の調停結果Ｒ２のビット２になる。
【００３７】
ＯＲ回路７３は、調停要求信号ＲＥＱのビット２とビット１の論理和をインバータ７４に出力する。インバータ７４は、ＯＲ回路７３の出力を反転させてＡＮＤ回路７５に出力する。
【００３８】
ＡＮＤ回路７５は、調停要求信号ＲＥＱのビット０と、インバータ７４の出力との論理積を出力する。ＡＮＤ回路７５の出力は、第２の調停結果Ｒ２のビット０になる。
【００３９】
また、第２の調停ブロック７０は、調停要求信号ＲＥＱのビット１をそのまま、第２の調停結果Ｒ２のビット１として出力する。
このようにして、第２の調停ブロック７０は、３ビットの第２の調停結果Ｒ２を得る。
【００４０】
第３の調停ブロック８０は、インバータ８１、ＡＮＤ回路８２、インバータ８３、ＡＮＤ回路８４、インバータ８５、ＡＮＤ回路８６を備える。
【００４１】
インバータ８１は、調停要求信号ＲＥＱのビット２を反転させてＡＮＤ回路８２に出力する。ＡＮＤ回路８２は、インバータ８１の出力と、調停要求信号ＲＥＱのビット１との論理積をＡＮＤ回路８４に出力する。
【００４２】
インバータ８３は、調停要求信号ＲＥＱのビット０を反転させてＡＮＤ回路８４に出力する。ＡＮＤ回路８４は、ＡＮＤ回路８２の出力と、インバータ８３の出力との論理積を出力する。ＡＮＤ回路８４の出力は、第３の調停結果Ｒ３のビット１になる。
【００４３】
インバータ８５は、調停要求信号ＲＥＱのビット２を反転させてＡＮＤ回路８６に出力する。ＡＮＤ回路８６は、インバータ８５の出力と、調停要求信号ＲＥＱのビット０との論理積を出力する。ＡＮＤ回路８６の出力は、第３の調停結果Ｒ３のビット０になる。
【００４４】
第３の調停ブロック８０は、調停要求信号ＲＥＱのビット２をそのまま、第３の調停結果Ｒ３のビット２として出力する。
このようにして、第３の調停ブロック８０は、３ビットの第３の調停結果Ｒ３を得る。
【００４５】
ＭＵＸ９０は、下記のようにして第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３から調停結果Ｒを選択する。説明上の便宜のため、以下において、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３のうちの、優先順位パターンＰＰの「１」であるビットの位置に対応する位置のビットが「１」である調停結果を「目標調停結果」という。
【００４６】
＜ケース１：目標調停結果が１つのみある＞
この場合、ＭＵＸ９０は、該１つの目標調停結果を選択して調停結果Ｒとして出力する。
【００４７】
＜ケース２：目標調停結果が複数ある＞
この場合、ＭＵＸ９０は、優先順位パターンに応じて決められた優先順位に基づいて、上記複数の目標調停結果のうちの、優先順位が最も高い１つを調停結果Ｒとして出力する。
【００４８】
＜ケース３：目標調停結果が無い＞
この場合、ＭＵＸ９０は、優先順位パターンに応じて決められた優先順位に基づいて、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３のうちの、優先順位が最も高い調停結果を選択して調停結果Ｒとして出力する。
【００４９】
図２９は、優先順位パターンＰＰ毎に、調停回路５０による処理を式で示す図であり、図３０は、図２９に示す処理を具体的な数値で示す図である。
【００５０】
図３０に示すように、例えば、調停要求信号ＲＥＱが「１１１」である場合、すなわち、３つのバスマスタが共にバス使用要求を出している場合に、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３は、夫々、バスマスタ１を示す「００１」、バスマスタ２を示す「０１０」、バスマスタ３を示す「１００」となる。
【００５１】
このケースは、どの優先順位パターンＰＰであっても、上述したケース１に該当する。すなわち、目標調停結果は１つのみある。そのため、調停結果Ｒとしては、優先順位パターンＰＰが示すバスマスタにバス使用権を与えることを示すものが選択される。
【００５２】
例えば、優先順位パターンＰＰが「００１」である場合に、目標調停結果は第１の調停結果Ｒ１の１つである。そのため、調停結果Ｒとして第１の調停結果Ｒ１が選択され、バスマスタ１にバス使用権が与えられる。
【００５３】
同様に、優先順位パターンＰＰが「０１０」である場合に、目標調停結果は第２の調停結果Ｒ２の１つである。そのため、調停結果Ｒとして第２の調停結果Ｒ２が選択され、ビット２にバス使用権が与えられる。
【００５４】
調停要求信号ＲＥＱが「１１０」である場合、すなわちバスマスタ１がバス使用要求を出しておらず、バスマスタ２とバスマスタ３がバス使用要求を出している場合、第１の調停結果Ｒ１と第２の調停結果Ｒ２は、共にバスマスタ２を示す「０１０」になり、第３の調停結果Ｒ３は、バスマスタ３を示す「１００」になっている。第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３のうちに、バス使用要求を出していないバスマスタ１を示すものが無い。
【００５５】
この場合、優先順位パターンＰＰが「００１」であるとき、目標調停結果が無いことになる。このケースは、上述したケース３に該当する。そのため、調停結果Ｒとしては、第１の調停結果Ｒ１が選択され、第１の調停結果Ｒ１が示すバスマスタ２にバス使用権が与えられる。
【００５６】
一方、調停要求信号ＲＥＱが「１１０」であり、優先順位パターンＰＰが「０１０」であるときには、第１の調停結果Ｒ１と第２の調停結果Ｒ２が目標調停結果になる。
【００５７】
このケースは、上述したケース２に該当する。そのため、調停結果Ｒとしては、第１の調停結果Ｒ１が選択され、第１の調停結果Ｒ１が示すバスマスタ２にバス使用権が与えられる。
【００５８】
なお、調停要求信号ＲＥＱが「１００」、「０１０」、「００１」である場合、すなわちバス使用要求を出しているバスマスタが１つのみである場合、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３のいずれも該バスマスタを示す同様の値になる。このケースは、優先順位パターンＰＰに関わらず、上述したケース２に該当する。また、優先順位パターンＰＰに関わらず、調停結果Ｒとしては、バス使用要求を出したバスマスタを示すものが選択され、該バスマスタにバス使用権が与えられる。
【００５９】
図２８に示す調停回路５０は、上述した３つのルールに従った調停を実現しており、バスマスタの優先順位を動的に可変にすると共にバスの使用効率を高めることができる。
【００６０】
しかしながら、この手法は、バスマスタの総数Ｎが変動した場合に、回路を大きく変更する必要がある。
【００６１】
図３１は、バスマスタの総数Ｎが４である場合に、上述した手法を実現する調停回路の具体例を示す。
【００６２】
図３１に示す調停回路１００は、第１の調停ブロック１１０、第２の調停ブロック１２０、第３の調停ブロック１３０、第４の調停ブロック１４０、ＭＵＸ１５０を備える。
【００６３】
第１の調停ブロック１１０は、調停要求信号ＲＥＱが入力され、第１の調停結果Ｒ１を出力する。第２の調停ブロック１２０は、調停要求信号ＲＥＱが入力され、第２の調停結果Ｒ２を出力する。第３の調停ブロック１３０は、調停要求信号ＲＥＱが入力され、第３の調停結果Ｒ３を出力する。第４の調停ブロック１４０は、調停要求信号ＲＥＱが入力され、第４の調停結果Ｒ４を出力する。
【００６４】
ＭＵＸ１５０は、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３、第４の調停結果Ｒ４、優先順位パターンＰＰが入力され、優先順位パターンＰＰに基づいて、第１の調停結果Ｒ１、第２の調停結果Ｒ２、第３の調停結果Ｒ３、第４の調停結果Ｒ４のうちの１つを調停結果Ｒとして選択して出力する。
【００６５】
調停回路１００において、調停要求信号ＲＥＱは、バスマスタの総数と同数のビット数を有し、この例では、４ビットである。優先順位パターンＰＰ、及び各調停結果（Ｒ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５）も、４ビットである。
【００６６】
図３２は、優先順位パターンＰＰ毎に、調停回路１００による処理を式で示す図であり、ここで詳細な説明を省略する。
【００６７】
図３１に示す調停回路１００は、バスマスタの総数が４である場合に対応し、上述した３つのルールに従った調停を実現し、バスマスタの優先順位を動的に可変にすると共にバスの使用効率を高めることができる。
【００６８】
図２９に示す調停回路５０と図３１に示す調停回路１００を比較すると分かるように、調停回路１００は、調停回路５０より調停ブロックの数が１つ増えていると共に、調停回路１００と調停回路５０間で、調停ブロックの構成が大きく異なる。
【００６９】
そのため、バスマスタの総数が３である場合に設計した調停回路５０における各調停ブロックは、バスマスタの総数が４である場合における調停回路１００の調停ブロックとして利用することができない。すなわち、バスマスタの総数が異なると、調停ブロックに対して複雑な設計変更をする必要があり、バスマスタの総数の変化に柔軟に対応できないという問題がある。
【課題を解決するための手段】
【００７０】
本発明の１つの態様は、Ｎ個の要求装置（Ｎ：２以上の整数）からの要求を調停する調停回路である。該調停回路は、段階的に順次接続されたＮ個の調停ブロックと、該Ｎ個の調停ブロックと接続された調停結果決定回路を備える。
【００７１】
調停結果決定回路は、調停結果を決定する回路であり、上記Ｎ個の要求装置のうちの１つを示す優先順位パターンが有効調停サイクル毎に１つ入力される。
【００７２】
上記Ｎ個の調停ブロックは、有効調停サイクル毎に、下記のように処理を行う。なお、１つの有効調停サイクルにおいて、上記Ｎ個の要求装置のうちの、要求を出している要求装置を候補装置という。
【００７３】
第１段の調停ブロックは、全ての候補装置を示す調停要求信号と、優先順位パターンとが入力され、第１の調停結果と、該第１の調停結果が「有効」または「無効」であることを示す第１の優先信号とを調停結果決定回路に出力すると共に、第１の調停結果と第１のマスク信号とを２段目の調停ブロックに出力する。
【００７４】
第１の調停結果は、優先順位パターンと同様の信号である。第１の優先信号は、優先順位パターンが示す要求装置と、調停要求信号が示すいずれか１つの候補装置とが一致するときにのみ、「有効」を示す信号である。第１のマスク信号は、第１の優先信号と同様の信号である。
【００７５】
第ｋ段（１＜ｋ≦「Ｎ−１」）の調停ブロックは、調停要求信号と、前段の調停ブロックからの第「ｋ−１」の調停結果及び第「ｋ−１」のマスク信号とが入力され、第ｋの調停結果と、該第ｋの調停結果が「有効」または「無効」であることを示す第ｋの優先信号とを調停結果決定回路に出力すると共に、第ｋの調停結果と第ｋのマスク信号とを次段の調停ブロックに出力する。
【００７６】
第ｋの調停結果は、Ｎ個の要求装置のうちの、第１の調停結果から第「ｋ−１」の調停結果までのいずれの調停結果が要求装置とも異なる要求装置を示す信号である。第ｋの優先信号は、第ｋの調停結果が示す要求装置と、調停要求信号が示すいずれか１つの候補装置とが一致し、かつ、第「ｋ−１」のマスク信号が「無効」を示すときにのみ、「有効」を示す信号である。第ｋのマスク信号は、第ｋの調停結果が示す要求装置と、調停要求信号が示すいずれか１つの候補装置とが一致する場合と、第「ｋ−１」のマスク信号が「有効」を示す場合とのいずれのときにのみ、「有効」を示す信号である。
【００７７】
第Ｎ段の調停ブロックは、調停要求信号と、第「Ｎ−１」の調停結果及び第「Ｎ−１」のマスク信号とが入力され、第Ｎの調停結果と、該第Ｎの調停結果が「有効」または「無効」であることを示す第Ｎの優先信号とを調停結果決定回路に出力する。
【００７８】
第Ｎの調停結果は、Ｎ個の要求装置のうちの、第１の調停結果から第「Ｎ−１」の調停結果までのいずれの調停結果が要求装置とも異なる要求装置を示す信号である。第Ｎの優先信号は、第Ｎの調停結果が示す要求装置と、調停要求信号が示すいずれか１つの候補装置とが一致し、かつ、第「Ｎ−１」のマスク信号が「無効」を示すときにのみ、「有効」を示す信号である。
【００７９】
調停結果決定回路は、第１の調停結果から第Ｎの調停結果までのＮ個の調停結果から、第１の優先信号から第Ｎの優先信号までのＮ個の優先信号のうちの、「有効」を示す優先信号に対応する調停結果が示す要求装置に許可信号を出力する。
【００８０】
なお、上記態様の調整回路を方法や装置、システムなどに置き換えて表現したもの、該回路を備えた装置なども、本発明の態様としては有効である。
【発明の効果】
【００８１】
本発明にかかる調停回路によれば、要求を出す複数の装置の優先順位を動的に可変にでき、処理効率を高めることができると共に、該複数の装置の総数が変化した場合に柔軟に対応できる。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施の形態にかかるバスシステムを示す図である。
【図２】図１に示すバスシステムにおいて、バスマスタの総数が３である場合における調停回路を示す図である。
【図３】図２に示す調停回路における第１の調停ブロックを示す図である。
【図４】図３に示す第１の調停ブロックにおける調停演算回路を示す図である。
【図５】図２に示す調停回路における第２の調停ブロックを示す図である。
【図６】図５に示す第２の調停ブロックにおけるパターン決定回路を示す図である。
【図７】図５に示す第２の調停ブロックにおける調停演算回路を示す図である。
【図８】図５に示す第２の調停ブロックにおけるマスク回路を示す図である。
【図９】図５に示す第２の調停ブロックにおけるマスク信号生成回路を示す図である。
【図１０】図２に示す調停回路における第３の調停ブロックを示す図である。
【図１１】図２に示す調停回路における調停結果決定回路を示す図である。
【図１２】図２に示す調停回路における各信号の遷移を示すタイミングチャートの例である。
【図１３】図１に示すバスシステムにおいて、バスマスタの総数が４である場合における調停回路を示す図である。
【図１４】図１３に示す調停回路における第１の調停ブロックを示す図である。
【図１５】図１４に示す調停回路における調停演算回路を示す図である。
【図１６】図１３に示す調停回路における第２の調停ブロックを示す図である。
【図１７】図１６に示す第２の調停ブロックにおけるパターン決定回路を示す図である。
【図１８】図１６に示す第２の調停ブロックにおける調停演算回路を示す図である。
【図１９】図１６に示す第２の調停ブロックにおけるマスク回路を示す図である。
【図２０】図１６に示す第２の調停ブロックにおけるマスク信号生成回路を示す図である。
【図２１】図１３に示す調停回路における第４の調停ブロックを示す図である。
【図２２】図１３に示す調停回路における調停結果決定回路を示す図である。
【図２３】本発明の第２の実施の形態にかかるバスシステムにおける調停回路を示す図である。
【図２４】図２３に示す調停回路における優先順位パターン生成回路を示す図である。
【図２５】図２３に示す調停回路における各信号の遷移を示すタイミングチャートの例である。
【図２６】本発明の第３の実施の形態にかかるＵＳＢハブを示す図である。
【図２７】特許文献１における図２である。
【図２８】バスマスタの総数が３である場合における調停回路の例を示す図である。
【図２９】図２８に示す調停回路の処理を説明するための図である。
【図３０】図２９をより詳細に示す図である。
【図３１】バスマスタの総数が４である場合における調停回路の例を示す図である。
【図３２】図３１に示す調停回路の処理を説明するための図である。
【発明を実施するための形態】
【００８３】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００８４】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態にかかるバスシステム２００を示す。バスシステム２００は、Ｎ個（Ｎ：２以上の整数）のバスマスタ１〜Ｎと、これらのバスバスタが使用する共通バス２１０と、これらのバスマスタによる共通バス２１０の使用権を調停する調停回路２２０を備える。バスマスタ１〜Ｎは、要求装置に該当する。
【００８５】
バスマスタ１〜Ｎは、共通バス２１０の使用に当たり、まず、共通バス２１０の使用権（バス使用権）を要求する。調停回路２２０は、バス使用権を要求するバスマスタが１つも無い場合を除き、有効調停サイクル毎に調停を行い、バス使用権を要求する１つのバスマスタにバス使用権を与える。
【００８６】
バスマスタ１〜Ｎは、調停回路２２０に１ビットの要求信号を出力することによりバス使用権を要求する。バスマスタ１〜Ｎが出力する要求信号は、Ｎビットの調停要求信号ＲＥＱを構成する。すなわち、調停回路２２０に出力される調停要求信号ＲＥＱは、Ｎビットであり、各ビットが、夫々のバスマスタがバス使用権を要求しているか否かを示す。例えば、調停要求信号ＲＥＱの１ビット目（ビット０）ＲＥＱ［０］は、バスマスタ１がバス使用権を要求しているか否かを示し、調停要求信号ＲＥＱの２ビット目（ビット１）ＲＥＱ［１］は、バスマスタ２がバス使用権を要求しているか否かを示す。同様に、調停要求信号ＲＥＱのＮビット目（ビット［Ｎ−１］）ＲＥＱ［Ｎ−１］は、バスマスタＮがバス使用権を要求しているか否かを示す。
【００８７】
なお、調停要求信号ＲＥＱにおいて、「１」であるビットは、当該ビットに対応するバスマスタがバス使用権を要求している（すなわち該バスマスタが候補装置である）ことを示し、「０」であるビットは、当該ビットに対応するバスマスタがバス使用権を要求していない（すなわち該バスマスタが候補装置ではない）ことを示す。
【００８８】
調停回路２２０は、優先順位パターンＰ０が入力される。この優先順位パターンＰ０は、Ｎビットの信号であり、各ビットがバスマスタ１〜Ｎに夫々対応する。また、優先順位パターンＰ０のＮビットのうちの、値が「１」であるビットが１つのみであり、他のビットの値が「０」である。優先順位パターンＰ０の「１」であるビットは、調停時に、該ビットに対応するバスマスタを優先することを意味する。以下の説明において、優先順位パターンＰ０の「１」であるビットに対応するバスマスタを、優先順位パターンＰ０が示すバスマスタともいう。
【００８９】
調停回路２２０は、調停要求信号ＲＥＱと、優先順位パターンＰ０に基づいて調停を行い、調停結果Ｒを出力する。調停結果ＲもＮビットの信号であり、各ビットがバスマスタ１〜Ｎに夫々対応し、対応するバスマスタに夫々出力される。また、調停結果ＲのＮビットのうちの、値が「１」であるビットが１つのみあり、他のビットの値が「０」である。調停結果Ｒの「１」であるビットは、該ビットに対応するバスマスタにバス使用権を付与することを意味し、「０」であるビットは、該ビットに対応するバスマスタにバス使用権を付与しないことを意味する。すなわち、調停結果Ｒは、いずれのバスマスタにバス使用権を許可するかを示す許可信号である。
【００９０】
図２を参照して、バスマスタの総数Ｎが３である場合における調停回路２２０を詳細に説明する。
【００９１】
図２に示すように、調停回路２２０は、第１の調停ブロック３００、第２の調停ブロック４００、第３の調停ブロック５００、調停結果決定回路７００を有する。
【００９２】
第１の調停ブロック３００は、３ビットの調停要求信号ＲＥＱと、３ビットの優先順位パターンＰ０とが入力され、１ビットの第１の優先信号Ｓ１を得て調停結果決定回路７００と第２の調停ブロック４００に出力する。後の説明で分かるが、第２の調停ブロック４００に出力される第１の優先信号Ｓ１は、第２の調停ブロック４００のマスク信号として使用されるため、以下、第１のマスク信号Ｍ１とも呼ぶ。
【００９３】
また、第１の調停ブロック３００は、優先順位パターンＰ０をそのまま第１の調停結果Ｐ１として調停結果決定回路７００と第２の調停ブロック４００に出力する。
【００９４】
第２の調停ブロック４００は、３ビットの調停要求信号ＲＥＱと、第１の調停ブロック３００からの１ビットの第１のマスク信号Ｍ１とが入力され、１ビットの第２の優先信号Ｓ２と３ビットの第２の調停結果Ｐ２を得て調停結果決定回路７００に出力する。さらに、第２の調停ブロック４００は、１ビットの第２のマスク信号Ｍ２を生成して第３の調停ブロック５００に出力する。
【００９５】
第３の調停ブロック５００は、３ビットの調停要求信号ＲＥＱと、第２の調停ブロック４００からの１ビットの第２のマスク信号Ｍ２とが入力され、１ビットの第３の優先信号Ｓ３と、３ビットの第３の調停結果Ｐ３を得て調停結果決定回路７００に出力する。
【００９６】
調停結果決定回路７００は、第１の調停ブロック３００からの第１の優先信号Ｓ１と第１の調停結果Ｐ１、第２の調停ブロック４００からの第２の優先信号Ｓ２と第２の調停結果Ｐ２、第３の調停ブロック５００からの第３の優先信号Ｓ３と第３の調停結果Ｐ３とに基づいて、バス使用権を付与するバスマスタを決定し、３ビットの調停結果Ｒを出力する。
【００９７】
ここで、第１の調停ブロック３００が出力する各信号の意義を説明する。説明の便宜のために、以下において、ビット数が同一である２つのビット列の同位置の一対のビットを「ビットペア」という。
【００９８】
上記の説明から分かるように、調停要求信号ＲＥＱと優先順位パターンＰ０の各ビットペアのうちに、２つのビットが共に「１」であるビットペアが存在する場合（すなわち、優先順位パターンＰ０が示すバスマスタが、バス使用要求を出しているバスマスタのうちに含まれている場合）においてのみ、第１の優先信号Ｓ１が「１」となる。この場合、調停の結果としては、優先順位パターンＰ０が示すバスマスタにバス使用権を与えるべきである。
【００９９】
第１の調停結果Ｐ１が優先順位パターンＰ０であるため、第１の優先信号Ｓ１が「１」である場合に、第１の調停結果Ｐ１を調停結果Ｒとして選択すれば、優先順位パターンＰ０が示すバスマスタにバス使用権を与えることになる。また、第１の優先信号Ｓ１が「０」である場合には、優先順位パターンＰ０により示されるバスマスタがバス使用要求を出していないことを示すため、第１の調停結果Ｐ１を選択すべきではない。
【０１００】
すなわち、第１の調停ブロック３００が調停結果決定回路７００に出力する第１の優先信号Ｓ１は、第１の調停ブロック３００が出力する第１の調停結果Ｐ１を選択すべきか否かを調停結果決定回路７００に指示する役割を持つ。
【０１０１】
さらに、第１の調停ブロック３００は、第１の優先信号Ｓ１を第１のマスク信号Ｍ１として第２の調停ブロック４００にも出力する。第１のマスク信号Ｍ１の意義については、第２の調停ブロック４００のときに説明する。
【０１０２】
調停回路２２０の各機能ブロックを詳細に説明する。
図３は、第１の調停ブロック３００を示す。第１の調停ブロック３００は、調停演算回路３１０を備える。調停演算回路３１０は、調停要求信号ＲＥＱと優先順位パターンＰ０とに対して演算を行って第１の優先信号Ｓ１を得て調停結果決定回路７００と第２の調停ブロック４００に出力する。
【０１０３】
また、第１の調停ブロック３００は、優先順位パターンＰ０をそのまま第１の調停結果Ｐ１として調停結果決定回路７００と第２の調停ブロック４００に出力する。
【０１０４】
図４は、第１の調停ブロック３００における調停演算回路３１０を示す。調停演算回路３１０は、ＡＮＤ回路３１２、ＡＮＤ回路３１４、ＡＮＤ回路３１６、ＯＲ回路３１８を備える。
【０１０５】
ＡＮＤ回路３１２は、調停要求信号ＲＥＱと優先順位パターンＰ０の１ビット目の論理積を得てＯＲ回路３１８に出力する。ＡＮＤ回路３１４は、調停要求信号ＲＥＱと優先順位パターンＰ０の２ビット目の論理積を得てＯＲ回路３１８に出力する。
ＡＮＤ回路３１６は、調停要求信号ＲＥＱと優先順位パターンＰ０の３ビット目の論理積を得てＯＲ回路３１８に出力する。
【０１０６】
ＯＲ回路３１８は、ＡＮＤ回路３１２〜ＡＮＤ回路３１６からの３つの出力の論理和を得る。ＯＲ回路３１８が得た論理和は、第１の優先信号Ｓ１（＝第１のマスク信号Ｍ１）である。
【０１０７】
図５は、第２の調停ブロック４００を示す。第２の調停ブロック４００は、パターン決定回路４２０、調停演算回路４４０、マスク回路４６０、マスク信号生成回路４８０を備える。
【０１０８】
パターン決定回路４２０は、第１の調停結果Ｐ１が入力され、第２の調停結果Ｐ２を生成して調停演算回路４４０に出力する。調停演算回路４４０は、第１の調停ブロック３００からの第１のマスク信号Ｍ１（＝第１の優先信号Ｓ１）と、パターン決定回路４２０からの第２の調停結果Ｐ２とが入力され、調停フラグＦ２を得てマスク回路４６０とマスク信号生成回路４８０に出力する。マスク回路４６０は、調停要求信号ＲＥＱと調停フラグＦ２とが入力され、第２の優先信号Ｓ２を生成する。マスク信号生成回路４８０は、調停要求信号ＲＥＱと調停フラグＦ２とが入力され、第２のマスク信号Ｍ２を生成する。
【０１０９】
第２の調停ブロック４００は、第２の優先信号Ｓ２と第２の調停結果Ｐ２を調停結果決定回路７００と第３の調停ブロック５００に出力し、さらに、第２のマスク信号Ｍ２を第３の調停ブロック５００に出力する。
【０１１０】
図６は、第２の調停ブロック４００におけるパターン決定回路４２０を示す。パターン決定回路４２０は、ビットローテーション回路であり、入力されたビット列に対して１ビット左ローテーションを行う。なお、１ビット左ローテーションとは、入力されたビット列に対して、最上位ビット（Ｎビットのうちのビット「Ｎ−１」）を最下位に移動し、他のビットが上位側（左側）に１ビットずつシフトする処理である。パターン決定回路４２０に入力された第１の調停結果Ｐ１が３ビットのビット列であるため、その最上位ビット（ビット２）が最下位（ビット０）になり、ビット１がビット２になり、ビット０がビット１になる。
【０１１１】
パターン決定回路４２０は、第１の調停結果Ｐ１に対して１ビット左ローテーションをして得た信号は、第２の調停結果Ｐ２である。
【０１１２】
図７は、第２の調停ブロック４００における調停演算回路４４０を示す。調停演算回路４４０は、ＡＮＤ回路４４２、ＡＮＤ回路４４４、ＡＮＤ回路４４６、ＯＲ回路４４８を備える。この構成は、第１の調停ブロック３００における調停演算回路３１０と同様であるため、ここで詳細な説明を省略する。
【０１１３】
調停演算回路４４０は、入力された調停要求信号ＲＥＱと第２の調停結果Ｐ２から生成した信号は、調停フラグＦ２である。
【０１１４】
図８は、第２の調停ブロック４００におけるマスク回路４６０を示す。マスク回路４６０は、インバータ４６２とＡＮＤ回路４６４を備える。インバータ４６２は、第１のマスク信号Ｍ１を反転させてＡＮＤ回路４６４に出力する。ＡＮＤ回路４６４は、インバータ４６２の出力と調停フラグＦ２の論理積を得る。この論理積は、第２の優先信号Ｓ２である。
【０１１５】
図９は、第２の調停ブロック４００におけるマスク信号生成回路４８０を示す。マスク信号生成回路４８０は、ＯＲ回路４８２を備える。ＯＲ回路４８２は、第１のマスク信号Ｍ１と調停フラグＦ２の論理和を得る。この論理和は、第２のマスク信号Ｍ２である。
【０１１６】
ここで、第２の調停ブロック４００が出力する各信号の意義を説明する。
上記の説明から分かるように、第２の調停結果Ｐ２は、第１の調停結果Ｐ１に対して１ビット左ローテーションを行って得た信号であるため、第１の調停結果Ｐ１（優先順位パターンＰ０）が示すバスマスタの次のバスマスタを示す。
【０１１７】
調停要求信号ＲＥＱと第２の調停結果Ｐ２の各ビットペアのうちに、２つのビットが共に「１」であるビットペアが存在する場合（すなわち、優先順位パターンＰ０が示すバスマスタの次のバスマスタが、バス使用要求を出しているバスマスタのうちに含まれている場合）においてのみ、調停フラグＦ２が「１」となる。調停フラグＦ２が「１」であっても、第１の優先信号Ｓ１が「１」であれば、調停の結果としては、第１の調停ブロック３００が出力する第１の調停結果Ｐ１（優先順位パターンＰ０）を選択すべきである。一方、第１の優先信号Ｓ１が「０」であれば、調停の結果としては、第２の調停ブロック４００が出力する第２の調停結果Ｐ２を選択すべきである。
【０１１８】
マスク回路４６０が出力する第２の優先信号Ｓ２は、第１のマスク信号Ｍ１の反転信号と、調停フラグＦ２との論理積であるため、第１のマスク信号Ｍ１が「１」である場合には、調停フラグＦ２の値に関わらず「０」となる。一方、第１のマスク信号Ｍ１が「０」である場合には、第２の優先信号Ｓ２が「１」と「０」のいずれになるかは、調停フラグＦ２により決まる。
【０１１９】
すなわち、第２の調停ブロック４００が調停結果決定回路７００に出力する第２の優先信号Ｓ２は、第２の調停ブロック４００が出力する第２の調停結果Ｐ２を選択すべきか否かを調停結果決定回路７００に指示する役割を持つ。
【０１２０】
さらに、第２の調停ブロック４００は、第１のマスク信号Ｍ１の反転信号と調停フラグＦ２の論理和を第２のマスク信号Ｍ２として第３の調停ブロック５００に出力している。第２のマスク信号Ｍ２の意義については、第３の調停ブロック５００のときに説明する。
【０１２１】
図１０は、第３の調停ブロック５００を示す。第３の調停ブロック５００は、パターン決定回路５２０、調停演算回路５４０、マスク回路５６０を備える。これらの回路は、第２の調停ブロック４００におけるパターン決定回路４２０、調停演算回路４４０、マスク回路４６０と夫々同様である。
【０１２２】
すなわち、第３の調停ブロック５００は、第２の調停ブロック４００に備えられたマスク信号生成回路４８０を有しておらず、マスク信号を出力しない点を除き、第２の調停ブロック４００と同様である。
【０１２３】
ここで、第３の調停ブロック５００が出力する各信号の意義を説明する。
第３の調停結果Ｐ３は、第２の調停結果Ｐ２に対して１ビット左ローテーションを行って得た信号であるため、第２の調停結果Ｐ２が示すバスマスタの次のバスマスタを示す。
【０１２４】
調停要求信号ＲＥＱと第３の調停結果Ｐ３の各ビットペアのうちに、２つのビットが共に「１」であるビットペアが存在する場合（すなわち、第２の調停結果Ｐ２が示すバスマスタが、バス使用要求を出しているバスマスタのうちに含まれている場合）においてのみ、調停フラグＦ３が「１」となる。調停フラグＦ３が「１」であっても、第１の優先信号Ｓ１または第２の優先信号Ｓ２が「１」であれば、調停の結果としては、第３の調停ブロック５００が出力する第３の調停結果Ｐ３を選択すべきではない。一方、第１の優先信号Ｓ１と第２の優先信号Ｓ２が共に「０」であれば、調停の結果としては、第３の調停ブロック５００が出力する第３の調停結果Ｐ３を選択すべきである。
【０１２５】
第１の優先信号Ｓ１が「１」である場合に、第１のマスク信号Ｍ１も「１」であるため、第２のマスク信号Ｍ２が「１」となる。マスク回路５６０が出力する第３の優先信号Ｓ３は、第２のマスク信号Ｍ２の反転信号と、調停フラグＦ３との論理積であるため、この場合、「０」となる。
【０１２６】
第２の優先信号Ｓ２が「１」である場合に、第１のマスク信号Ｍ１が「０」であるものの、第２のマスク信号Ｍ２が「１」であるため、第３の優先信号Ｓ３は、「０」となる。
【０１２７】
第１の優先信号Ｓ１と第２の優先信号Ｓ２が共に「０」である場合に、第２のマスク信号Ｍ２が「０」となるため、第３の優先信号Ｓ３の値は、調停フラグＦ３により決まる。このとき、調停フラグＦ３が「１」である場合、すなわち第３の調停結果Ｐ３が示すバスマスタがバス使用要求を出している場合には、第３の優先信号Ｓ３は、「１」となる。一方、調停フラグＦ３が「０」である場合、すなわち第３の調停結果Ｐ３が示すバスマスタがバス使用要求を出していない場合には、第３の優先信号Ｓ３は、「０」である。
【０１２８】
すなわち、第３の調停ブロック５００が調停結果決定回路７００に出力する第３の優先信号Ｓ３は、第３の調停ブロック５００が出力する第３の調停結果Ｐ３を選択すべきか否かを調停結果決定回路７００に指示する役割を持つ。
【０１２９】
図１１は、調停回路２２０における調停結果決定回路７００を示す。調停結果決定回路７００は、ＡＮＤ回路７０２、ＡＮＤ回路７０４、ＡＮＤ回路７０６、ＯＲ回路７０８を有する。
【０１３０】
ＡＮＤ回路７０２は、第１の優先信号Ｓ１とＰ１のビットペア毎に論理積演算を行って３ビットの出力Ｗ１を得る。ＡＮＤ回路７０４は、第２の優先信号Ｓ２と第２の調停結果Ｐ２のビットペア毎に論理積演算を行って３ビットの出力Ｗ２を得る。ＡＮＤ回路７０６は、第３の優先信号Ｓ３と第３の調停結果Ｐ３のビットペア毎に論理積演算を行って３ビットの出力Ｗ３を得る。
【０１３１】
ＯＲ回路７０８は、Ｗ１、Ｗ２、Ｗ３の同位置の３ビットずつ論理和演算を行い、３ビットの出力を得る。ＯＲ回路７０８からの３ビットの出力は、調停結果Ｒである。
【０１３２】
すなわち、第１の優先信号Ｓ１、第２の優先信号Ｓ２、第３の優先信号Ｓ３のうちに、「１」である優先信号に対応する調停結果は、調停結果Ｒとして選択される。
【０１３３】
なお、いずれのバスマスタからもバス使用要求を出されていない場合には、第１の優先信号Ｓ１、第２の優先信号Ｓ２、第３の優先信号Ｓ３のいずれも「０」となるため、調停結果Ｒも「０００」となり、いずれのバスマスタへもバス使用権が付与されない。
【０１３４】
図１２は、調停回路２２０における各信号の遷移を示すタイミングチャートの一例を示す。この例において、優先順位パターンＰ０は、ラウンドロビン方式に基づいたものであり、バスマスタ１を示す「００１」、バスマスタ２を示す「０１０」、バスマスタ３を示す「１００」の順で繰り返し調停結果決定回路７００に供される。
【０１３５】
＜有効調停サイクルＴ１＞
図示のように、有効調停サイクルＴ１において、優先順位パターンＰ０は「００１」である。また、バスマスタ１〜３は共にバス使用要求を出しており、調停要求信号ＲＥＱは「１１１」である。
【０１３６】
そのため、第１の調停ブロック３００から出力される第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「１」である。なお、第１の調停結果Ｐ１は、優先順位パターンＰ０と同様の「００１」である。
【０１３７】
また、第２の調停ブロック４００が出力する第２のマスク信号Ｍ２は「１」であり、第２の調停結果Ｐ２は第１の調停結果Ｐ１「００１」を１ビット左ローテーションして得た「０１０」である。また、調停フラグＦ２が「１」になるものの、第２の優先信号Ｓ２は「０」である。
【０１３８】
また、第３の調停ブロック５００が出力する第３の調停結果Ｐ３は、第２の調停結果Ｐ２「０１０」を１ビット左ローテーションして得た「１００」である。また、調停フラグＦ３が「１」になるものの、第３の優先信号Ｓ３は「０」である。
【０１３９】
従って、調停結果Ｒとしては、第１の調停ブロック３００が出力する第１の調停結果Ｐ１が選ばれ、優先順位パターンＰ０「００１」示すバスマスタ１にバス使用権が付与される。
【０１４０】
＜有効調停サイクルＴ２＞
このサイクルにおいて、優先順位パターンＰ０は「０１０」である。また、バスマスタ１〜３は共にバス使用要求を出しており、調停要求信号ＲＥＱは「１１１」である。
【０１４１】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「１」である。第１の調停結果Ｐ１は、優先順位パターンＰ０と同様の「０１０」である。
【０１４２】
また、調停フラグＦ２は「１」であり、第２のマスク信号Ｍ２は「１」であり、第２の優先信号Ｓ２は「０」であり、第２の調停結果Ｐ２は「１００」である。
【０１４３】
また、調停フラグＦ３は「１」であり、第３の優先信号Ｓ３は「０」であるり、第３の調停結果Ｐ３は「００１」である。
【０１４４】
従って、調停結果Ｒとしては、第１の調停ブロック３００が出力する第１の調停結果Ｐ１が選ばれ、優先順位パターンＰ０「０１０」が示すバスマスタ２にバス使用権が付与される。
【０１４５】
＜有効調停サイクルＴ３＞
このサイクルにおいて、優先順位パターンＰ０は「１００」である。また、バスマスタ１とバスマスタ２のみがバス使用要求を出しているため、調停要求信号ＲＥＱは「１１０」である。
【０１４６】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「１」である。第１の調停結果Ｐ１は、優先順位パターンＰ０と同様の「１００」である。
【０１４７】
また、調停フラグＦ２は「０」であり、第２のマスク信号Ｍ２は「１」であり、第２の優先信号Ｓ２は「０」であり、第２の調停結果Ｐ２は「００１」である。
【０１４８】
また、調停フラグＦ３は「１」であり、第３の優先信号Ｓ３は「０」であるり、第３の調停結果Ｐ３は「０１０」である。
【０１４９】
従って、調停結果Ｒとしては、第１の調停ブロック３００が出力する第１の調停結果Ｐ１が選ばれ、優先順位パターンＰ０「１００」が示すバスマスタ３にバス使用権が付与される。
【０１５０】
＜有効調停サイクルＴ４＞
このサイクルにおいて、優先順位パターンＰ０は「００１」に戻る。また、バスマスタ２のみがバス使用要求を出しているため、調停要求信号ＲＥＱは「０１０」である。
【０１５１】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「０」である。第１の調停結果Ｐ１は、優先順位パターンＰ０と同様の「００１」である。
【０１５２】
また、調停フラグＦ２は「１」であり、第２のマスク信号Ｍ２は「１」であり、第２の優先信号Ｓ２は「１」であり、第２の調停結果Ｐ２は「０１０」である。
【０１５３】
また、調停フラグＦ３は「０」であり、第３の優先信号Ｓ３は「０」であるり、第３の調停結果Ｐ３は「１００」である。
【０１５４】
従って、調停結果Ｒとしては、第２の調停ブロック４００が出力する第２の調停結果Ｐ２「０１０」が選ばれ、第２の調停結果Ｐ２が示すバスマスタ２にバス使用権が付与される。
【０１５５】
＜有効調停サイクルＴ５＞
このサイクルにおいて、優先順位パターンＰ０は「０１０」である。また、バスマスタ１のみがバス使用要求を出しているため、調停要求信号ＲＥＱは「００１」である。
【０１５６】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「０」である。第１の調停結果Ｐ１は、優先順位パターンＰ０と同様の「０１０」である。
【０１５７】
また、調停フラグＦ２は「０」であり、第２のマスク信号Ｍ２は「０」であり、第２の優先信号Ｓ２は「０」であり、第２の調停結果Ｐ２は「１００」である。
【０１５８】
また、調停フラグＦ３は「１」であり、第３の優先信号Ｓ３は「１」であるり、第３の調停結果Ｐ３は「００１」である。
【０１５９】
従って、調停結果Ｒとしては、第３の調停ブロック５００が出力する第３の調停結果Ｐ３「００１」が選ばれ、第３の調停結果Ｐ３が示すバスマスタ１にバス使用権が付与される。
【０１６０】
このように、調停回路２２０によれば、バスマスタ１〜Ｎに対して、バスマスタの優先順位を動的に可変にできると共に、共通バスの処理効率を高めることができる。
【０１６１】
さらに、調停回路２２０のような構成は、バスマスタの総数Ｎが変っても、簡単な設計変更で対応可能である。これについて、図１３を参照して説明する。
【０１６２】
図１３は、図１に示すバスシステム２００において、バスマスタの総数Ｎが４である場合に、調停回路２２０の代わりになる調停回路２２０Ａを示す。
【０１６３】
調停回路２２０Ａは、第１の調停ブロック３００Ａ、第２の調停ブロック４００Ａ、第３の調停ブロック５００Ａ、第４の調停ブロック６００、調停結果決定回路７００Ａを備える。この場合、調停要求信号ＲＥＱと優先順位パターンＰ０は、共に４ビットの信号となる。
【０１６４】
図１４は、第１の調停ブロック３００Ａを示す。第１の調停ブロック３００Ａは、調停演算回路３１０Ａを有し、調停要求信号ＲＥＱと優先順位パターンＰ０から第１の優先信号Ｓ１を得る調停演算回路３１０Ａを備え、調停演算回路３１０Ａにより得られた第１の優先信号Ｓ１を調停結果決定回路７００Ａに出力すると共に、第１の優先信号Ｓ１を第１のマスク信号Ｍ１として第２の調停ブロック４００Ａに出力する。また、第１の調停ブロック３００Ａは、優先順位パターンＰ０をそのまま第１の調停結果Ｐ１として調停結果決定回路７００Ａと第２の調停ブロック４００Ａに出力する。
【０１６５】
図１５は、調停演算回路３１０Ａを示す。図示のように、調停演算回路３１０Ａは、調停要求信号ＲＥＱと優先順位パターンＰ０の４ビット目（ビット３）の論理積演算を行うＡＮＤ回路３２０をさらに備える点と、３入力であるＯＲ回路３１８の代わりに４入力のＯＲ回路３１８Ａを備える点を除き、図４に示す調停演算回路３１０と同様である。
【０１６６】
図１６は、第２の調停ブロック４００Ａを示す。第２の調停ブロック４００Ａは、パターン決定回路４２０Ａ、調停演算回路４４０Ａ、マスク回路４６０Ａ、マスク信号生成回路４８０Ａを備え、調停要求信号ＲＥＱと第１の調停結果Ｐ１と第１のマスク信号Ｍ１が入力され、第２の優先信号Ｓ２と第２の調停結果Ｐ２を得て調停結果決定回路７００Ａと第３の調停ブロック５００Ａに出力する。また、第２の調停ブロック４００Ａは、第２のマスク信号Ｍ２を得て第３の調停ブロック５００Ａに出力する。
【０１６７】
図１７は、パターン決定回路４２０Ａを示す。パターン決定回路４２０Ａは、４ビットの入力に対応する点を除き、３ビットの入力に対応する図６に示すパターン決定回路４２０と同様のビットローテーション回路である。
【０１６８】
図１８は、調停演算回路４４０Ａを示す。図示のように、調停演算回路４４０Ａは、調停演算回路３１０Ａと同様の構成を有し、ここで詳細な説明を省略する。
【０１６９】
図１９と図２０は、マスク回路４６０Ａとマスク信号生成回路４８０Ａを夫々示す。図１９に示すように、マスク回路４６０Ａは、図８に示すマスク回路４６０と同様の構成を有する。また、図２０に示すように、マスク信号生成回路４８０Ａは、図９に示すマスク信号生成回路４８０と同様の構成を有する。
【０１７０】
第３の調停ブロック５００Ａは、第２の調停ブロック４００Ａと同様の構成を有し、ここで詳細な説明を省略する。
【０１７１】
図２１は、第４の調停ブロック６００を示す。第４の調停ブロック６００は、パターン決定回路６２０、調停演算回路６４０、マスク回路６６０を備える。図中「Ｍ３」は、第３の調停ブロック５００Ａから出力される第３のマスク信号である。パターン決定回路６２０、調停演算回路６４０、マスク回路６６０は、図１６に示す第２の調停ブロック４００Ａにおけるパターン決定回路４２０Ａ、調停演算回路４４０Ａ、マスク回路４６０Ａと夫々同様である。
【０１７２】
図２２は、調停結果決定回路７００Ａを示す。図示のように、調停結果決定回路７００Ａは、第４の調停ブロック６００が出力する第４の優先信号Ｓ４と、第４の調停結果Ｐ４の各ビットとの論理積演算を行うＡＮＤ回路７１０をさらに備える点と、３入力であるＯＲ回路７０８の代わりに４入力のＯＲ回路７０８Ａを備える点を除き、図１１に示す調停結果決定回路７００と同様である。
【０１７３】
すなわち、バスマスタの総数Ｎが３である場合の調停回路２２０に対して、調停ブロックを１段増やし、各調停ブロックに対して少し変更を加えれば、バスマスタ４である調停回路２２０Ａを得ることができる。また、上記変更は、３ビットの入力に対応する回路を４ビットの入力に対応するように変更するだけであるため、対応が簡単である。
【０１７４】
＜第２の実施の形態＞
本発明の第２の実施の形態も、バスシステムである。このバスシステムは、図２に示す調停回路２２０の代わりに、図２３に示す調停回路２５０が設けられた点を除き、図１に示すバスシステム２００と同様である。ここで調停回路２５０についてのみ説明する。例として、調停回路２５０も、バスマスタの総数が３である場合のものであるとする。
【０１７５】
図２３に示すように、調停回路２５０は、優先順位パターン生成回路２６０を備え、外部から供される優先順位パターンＰ０の代わりに、優先順位パターン生成回路２６０により生成された優先順位パターン（巡回優先順位パターンＰＣ）を用いる点を除き、図２に示す調停回路２２０と同様である。
【０１７６】
優先順位パターン生成回路２６０は、調停結果決定回路７００が出力する調停結果Ｒから巡回優先順位パターンＰＣを生成して第１の調停ブロック３００、第２の調停ブロック４００、第３の調停ブロック５００に供する。
【０１７７】
図２４は、優先順位パターン生成回路２６０を示す。優先順位パターン生成回路２６０は、ビットローテーション回路２６２と、ラッチ回路２６４を備える。ビットローテーション回路２６２は、調停結果Ｒに対して１ビット左ローテーションを行ってラッチ回路２６４に出力する。
【０１７８】
ラッチ回路２６４は、ビットローテーション回路２６２の出力を、次の有効調停サイクル用の優先順位パターンとしてラッチして第１の調停ブロック３００、第２の調停ブロック４００、第３の調停ブロック５００に供する。
【０１７９】
図２５は、調停回路２５０における各信号の遷移を示すタイミングチャートの一例を示す。
【０１８０】
＜有効調停サイクルＴ１＞
このサイクルにおいて、第１の調停ブロック１１０が「１１０」であり、巡回優先順位パターンＰＣが「００１」であるとする。
【０１８１】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「０」である。第１の調停結果Ｐ１は、巡回優先順位パターンＰＣと同様の「００１」である。
【０１８２】
また、調停フラグＦ２は「１」であり、第２のマスク信号Ｍ２は「１」であり、第２の優先信号Ｓ２は「１」であり、第２の調停結果Ｐ２は「０１０」である。
【０１８３】
また、調停フラグＦ３は「１」であり、第３の優先信号Ｓ３は「０」であるり、第３の調停結果Ｐ３は「１００」である。
【０１８４】
従って、調停結果Ｒとしては、第２の調停ブロック４００が出力する第２の調停結果Ｐ２「０１０」が選ばれ、第２の調停結果Ｐ２が示すバスマスタ２にバス使用権が付与される。
【０１８５】
＜有効調停サイクルＴ２＞
このサイクルにおいて、巡回優先順位パターンＰＣは、有効調停サイクルＴ１の調停結果Ｒ「０１０」を１ビット左ビットローテーションして得た「１００」になる。また、調停要求信号ＲＥＱは、「１１０」である。
【０１８６】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「１」である。第１の調停結果Ｐ１は、巡回優先順位パターンＰＣと同様の「１００」である。
【０１８７】
また、調停フラグＦ２は「０」であり、第２のマスク信号Ｍ２は「１」であり、第２の優先信号Ｓ２は「０」であり、第２の調停結果Ｐ２は「００１」である。
【０１８８】
また、調停フラグＦ３は「１」であり、第３の優先信号Ｓ３は「０」であるり、第３の調停結果Ｐ３は「０１０」である。
【０１８９】
従って、調停結果Ｒとしては、第１の調停ブロック３００が出力する第１の調停結果Ｐ１が選ばれ、巡回優先順位パターンＰＣ「１００」が示すバスマスタ１にバス使用権が付与される。
＜有効調停サイクルＴ３＞
このサイクルにおいて、巡回優先順位パターンＰＣは、有効調停サイクルＴ２の調停結果Ｒ「１００」を１ビット左ビットローテーションして得た「００１」になる。また、調停要求信号ＲＥＱは、「１１０」である。
【０１９０】
そのため、第１のマスク信号Ｍ１と第１の優先信号Ｓ１は「０」である。第１の調停結果Ｐ１は、巡回優先順位パターンＰＣと同様の「００１」である。
【０１９１】
また、調停フラグＦ２は「１」であり、第２のマスク信号Ｍ２は「１」であり、第２の優先信号Ｓ２は「１」であり、第２の調停結果Ｐ２は「０１０」である。
【０１９２】
また、調停フラグＦ３は「０」であり、第３の優先信号Ｓ３は「０」であるり、第３の調停結果Ｐ３は「１００」である。
【０１９３】
従って、調停結果Ｒとしては、第２の調停ブロック４００が出力する第２の調停結果Ｐ２が選ばれ、第２の調停結果Ｐ２「０１０」が示すバスマスタ２にバス使用権が付与される。
【０１９４】
このように、図２３に示す調停回路２５０も、バスマスタの優先順位を動的に可変にできると共に、共通バスの利用効率を高めることができる。また、調停回路２５０は、調停結果Ｒから巡回優先順位パターンＰＣを生成する優先順位パターン生成回路２６０を除き、調停回路２２０と同様の構成を有するため、バスマスタの総数Ｎが変化しても簡単な設計変更で対応できる。
【０１９５】
＜第３の実施の形態＞
図２６は、本発明の第３の実施の形態にかかるＵＳＢハブ８００である。ＵＳＢハブ８００に対して、本発明にかかる技術を説明する上で関係のある機能ブロックのみを示し、通常のＵＳＢハブに備えられる他の機能ブロックについては図示及び説明を省略する。
【０１９６】
ＵＳＢハブ８００は、Ｎ個のＤＳポート（ＤＳＰ１〜Ｎ）、ＤＳルーティング部８１０、ＵＳルーティング部８２０、ＵＳポート８５０を備える。ＤＳＰ１〜Ｎは、要求装置に該当する。
【０１９７】
ＤＳルーティング部８１０は、ＵＳポート８５０から夫々のＤＳポートへ送信するデータを受け取り、当該ＤＳポートに転送する。なお、ＵＳポート８５０から夫々のＤＳポートへ送信するデータは、具体的には、ＵＳポート８５０に接続されたＵＳＢホストなどのＵＳＢ機器から、当該ＤＳポートに接続されたＵＳＢデバイスや他のＵＳＢハブなどのＵＳＢ機器に送信するデータである。
【０１９８】
ＵＳルーティング部８２０は、ＤＳＰ１〜ＮからＵＳポート８５０へ送信するデータを受け取り、ＵＳポート８５０に転送する。ＤＳＰ１〜ＮからＵＳポート８５０へ送信するデータは、具体的には、当該ＤＳポートに接続されたＵＳＢ機器からＵＳポート８５０に接続されたＵＳＢ機器に送信するデータである。
【０１９９】
ＵＳルーティング部８２０は、調停回路８３０を備える。同じ有効調停サイクルにおいて複数のＤＳポートからＵＳポート８５０への送信要求を出されているときに、調停を行い、１つのＤＳポートにのみ送信権を与える。そして、送信権が与えられたＤＳポートが送出したデータを受け取り、ＵＳポート８５０へ転送する。
【０２００】
ＤＳポートの総数Ｎが３であるときに、調停回路８３０としては、調停回路２２０または調停回路２５０が用いられる。
【０２０１】
ＤＳポートの総数Ｎが４であるときには、調停回路８３０としては、調停回路２５０が用いられる。勿論、このとき、調停回路８３０として、バスマスタの総数が４である場合に対応するように調停回路２２０Ａを変更して得た調停回路を調停回路８３０として用いてもよい。
【０２０２】
このような調停回路８３０は、ＤＳポートからＵＳポートへ送信する際の優先順位を動的に可変にできると共に、ＵＳポートの利用効率を高めることができる。ＤＳポートの総数が変化しても簡単な設計変更で対応できる。
【０２０３】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【０２０４】
例えば、上述した第１の実施の形態のバスシステム２００において、優先順位の高低差が無いＮ個のバスマスタのバス使用要求を調停するために、調停回路２２０と調停回路２２０Ａに供される優先順位パターンＰ０は、ラウンドロビン方式に基づいたものである。Ｎ個のバスマスタの優先順位の高低差がある場合に、優先順位パターンＰ０を変更すればよい。例えば、バスマスタの総数Ｎが３であり、バスマスタ２とバスマスタ３よりもバスマスタ１の優先順位を高くする必要がある場合には、「００１」、「００１」、「０１０」、「１００」、「００１」、「００１」、「０１０」、「１００」、「００１」、「００１」、・・・のように、優先順位パターンＰ０を供給すればよい。
【０２０５】
また、第１の実施の形態の調停回路１００において、優先順位パターンＰ０が調停回路２２０または調停回路２２０Ａの外部から供給されるようになっているが、調停回路２２０と調停回路２２０Ａに、優先順位パターンＰ０を生成して供給する回路を設けてもよい。
【符号の説明】
【０２０６】
１、２、・・・Ｎ  バスマスタ  ３  バスアービタ
４−１、４−２、・・・、４−ｎ  バスマスタ  １３  バス使用要求線
１４  バス使用許可信号線  ５０  調停回路
６０  第１の調停ブロック  ６１  ＯＲ回路
６２  インバータ  ６３  ＡＮＤ回路
６４  インバータ  ６５  ＡＮＤ回路
７０  第２の調停ブロック  ７１  インバータ
７２  ＡＮＤ回路  ７３  ＯＲ回路
７４  インバータ  ７５  ＡＮＤ回路
８０  第３の調停ブロック  ８１  インバータ
８２  ＡＮＤ回路  ８３  インバータ
８４  ＡＮＤ回路  ８５  インバータ
８６  ＡＮＤ回路  ９０  マルチプレックサ（ＭＵＸ）
１００  調停回路  １１０  第１の調停ブロック
１２０  第２の調停ブロック  １３０  第３の調停ブロック
１４０  第４の調停ブロック  １５０  マルチプレックサＭＵＸ
２００  バスシステム  ２１０  共通バス
２２０  調停回路  ２２０Ａ  調停回路
２５０  調停回路  ２６０  優先順位パターン生成回路
２６２  ビットローテーション回路  ２６４  ラッチ回路
３００、３００Ａ  第１の調停ブロック  ３１０  調停演算回路
３１０Ａ  調停演算回路  ３１２、３１４、３１６  ＡＮＤ回路
３１８、３１８Ａ  ＯＲ回路  ３２０  ＡＮＤ回路
４００、４００Ａ  第２の調停ブロック
４２０  パターン決定回路  ４２０Ａ  パターン決定回路
４４０  調停演算回路  ４４０Ａ  調停演算回路
４４２、４４４、４４６  ＡＮＤ回路  ４４８、４４８Ａ  ＯＲ回路
４５０  ＡＮＤ回路  ４６０  マスク回路
４６０Ａ  マスク回路  ４６２  インバータ
４６４  ＡＮＤ回路  ４８０  マスク信号生成回路
４８０Ａ  マスク信号生成回路  ４８２  ＯＲ回路
５００、５００Ａ  第３の調停ブロック  ５２０  パターン決定回路
５４０  調停演算回路  ５６０  マスク回路
６００  第４の調停ブロック  ６２０  パターン決定回路
６４０  調停演算回路  ６６０  マスク回路
７００、７００Ａ  調停結果決定回路  ７０２、７０４、７０６  ＡＮＤ回路
７０８、７０８Ａ  ＯＲ回路  ７１０  ＡＮＤ回路
８００  ＵＳＢハブ  ８１０  ＤＳルーティング部
８２０  ＵＳルーティング部  ８３０  調停回路
８５０  ＵＳポート
ＤＳＰ１〜ＤＳＰＮ  ＤＳポート  Ｆ２、Ｆ３、Ｆ４  調停フラグ
Ｍ１  第１のマスク信号  Ｍ２  第２のマスク信号
Ｍ３  第３のマスク信号  Ｐ０  優先順位パターン
ＰＰ  優先順位パターン  Ｐ１  第１の調停結果
Ｐ２  第２の調停結果  Ｐ３  第３の調停結果
Ｐ４  第４の調停結果  ＰＣ  巡回優先順位パターン
ＲＥＱ  調停要求信号  Ｓ１  第１の優先信号
Ｓ２  第２の優先信号  Ｓ３  第３の優先信号
Ｓ４  第４の優先信号  Ｒ  調停結果
Ｔ１〜Ｔ５  有効調停サイクル
【図１】
2013114542.tif 000003
【図２】
2013114542.tif 000004
【図３】
2013114542.tif 000005
【図４】
2013114542.tif 000006
【図５】
2013114542.tif 000007
【図６】
2013114542.tif 000008
【図７】
2013114542.tif 000009
【図８】
2013114542.tif 000010
【図９】
2013114542.tif 000011
【図１０】
2013114542.tif 000012
【図１１】
2013114542.tif 000013
【図１２】
2013114542.tif 000014
【図１３】
2013114542.tif 000015
【図１４】
2013114542.tif 000016
【図１５】
2013114542.tif 000017
【図１６】
2013114542.tif 000018
【図１７】
2013114542.tif 000019
【図１８】
2013114542.tif 000020
【図１９】
2013114542.tif 000021
【図２０】
2013114542.tif 000022
【図２１】
2013114542.tif 000023
【図２２】
2013114542.tif 000024
【図２３】
2013114542.tif 000025
【図２４】
2013114542.tif 000026
【図２５】
2013114542.tif 000027
【図２６】
2013114542.tif 000028
【図２７】
2013114542.tif 000029
【図２８】
2013114542.tif 000030
【図２９】
2013114542.tif 000031
【図３０】
2013114542.tif 000032
【図３１】
2013114542.tif 000033
【図３２】
2013114542.tif 000034