(57)【要約】【課題】バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置を提供することである。【解決手段】一実施の形態にかかるデータ処理装置１は、複数のバスマスタ１１_０〜１１_９と複数のスレーブ１３_０〜１３_９とに接続された複数の中継回路１２_０〜１２_９がリング状に接続されたリングバス１５を備える。中継回路１２_０〜１２_９は、隣接する中継回路の隣接リクエストパケットと、直近のバスマスタのバスリクエストパケットとを、これらのリクエストパケットの優先度を用いて調停して、調停後のリクエストパケットを次の中継回路に出力する調停回路７１と、バスリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じてバスリクエストパケットの優先度を調整する優先度調整回路７３と、を備える。【選択図】図１
2019113917.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタと、
前記複数のバスマスタがアクセス可能な複数のスレーブと、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続された複数の中継回路と、
前記複数の中継回路がリング状に接続されたリングバスと、を備え、
前記中継回路は、
隣接する中継回路のリクエストパケットである隣接リクエストパケットと、直近のバスマスタのリクエストパケットであるバスリクエストパケットとを、前記隣接リクエストパケットの優先度と前記バスリクエストパケットの優先度とを用いて調停して、調停後のリクエストパケットを次の中継回路に出力する調停回路と、
前記バスリクエストパケットが送信先に到達するまでに通過する前記中継回路の数に応じて前記バスリクエストパケットの優先度を調整する優先度調整回路と、を備える、
データ処理装置。
【請求項２】
前記優先度調整回路は、
前記調停回路において前記バスリクエストパケットが拒否された回数が所定の閾値を超えた場合に前記バスリクエストパケットの優先度が高くなるように調整するように構成されており、
前記所定の閾値は、前記バスリクエストパケットが送信先に到達するまでに通過する前記中継回路の数が多いほど小さくなるように設定されている、
請求項１に記載のデータ処理装置。
【請求項３】
前記優先度調整回路は、
前記所定の閾値を格納しているテーブルと、
前記調停回路において前記バスリクエストパケットが拒否された回数をカウントするカウンタと、
前記調停回路において前記バスリクエストパケットが拒否された回数と前記所定の閾値とを比較する比較回路と、
前記バスリクエストパケットが拒否された回数が前記所定の閾値を超えている場合、前記バスリクエストパケットの優先度に所定の値を加算する加算回路と、を備える、
請求項２に記載のデータ処理装置。
【請求項４】
前記加算回路は、前記バスリクエストパケットの優先度に前記所定の値を加算した後、再度、前記調停回路において前記バスリクエストパケットが拒否された場合、前記バスリクエストパケットの優先度に更に所定の値を加算する、
請求項３に記載のデータ処理装置。
【請求項５】
前記リングバスに存在するリクエストパケットの量を監視する監視回路を更に備え、
前記監視回路は、前記リングバスに存在するリクエストパケットの量に応じて、前記バスマスタから前記中継回路に送信されるリクエストパケットを制限する、
請求項１に記載のデータ処理装置。
【請求項６】
前記中継回路は、前記調停回路から出力されたリクエストパケットを一時的に保持するバッファ回路を備え、
前記監視回路は、前記バッファ回路に保持されているリクエストパケットの量を監視することで、前記リングバスに存在するリクエストパケットの量を監視する、
請求項５に記載のデータ処理装置。
【請求項７】
前記監視回路は、前記各々の中継回路が備える各々のバッファ回路の少なくとも一つに空きがない場合に、前記各々のバスマスタから前記各々の中継回路に供給されるリクエストパケットを制限する、請求項６に記載のデータ処理装置。
【請求項８】
前記中継回路は、前記調停回路から出力された複数のリクエストパケットを一時的に保持するバッファ回路を備え、
前記バッファ回路は、前記複数のリクエストパケットの優先度に応じて、次の送信先に出力するリクエストパケットの順番を入れ替え可能に構成されている、
請求項１に記載のデータ処理装置。
【請求項９】
前記バッファ回路は、
第１のリクエストパケットを保持可能な第１の保持回路と、
前記第１の保持回路の次の段に設けられ、第２のリクエストパケットを保持可能な第２の保持回路と、
前記第１の保持回路に保持されている前記第１のリクエストパケットおよび前記第２の保持回路に保持されている前記第２のリクエストパケットのいずれか一方を選択する選択回路と、を備え、
前記選択回路は、前記第１及び第２のリクエストパケットのうち優先度が高いほうのリクエストパケットを選択して出力する、
請求項８に記載のデータ処理装置。
【請求項１０】
前記リングバスは、第１の方向にリクエストパケットを転送する第１のリングバスと、前記第１の方向と逆方向である第２の方向にリクエストパケットを転送する第２のリングバスと、を備え、
前記中継回路は、前記第１及び第２のリングバスの各々に設けられている、
請求項１に記載のデータ処理装置。
【請求項１１】
前記データ処理装置は更に、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続されたレスポンス用の中継回路と、
前記レスポンス用の中継回路がリング状に接続されたレスポンス用のリングバスと、を備え、
前記レスポンス用の中継回路は、
隣接する中継回路のレスポンスパケットである隣接レスポンスパケットと、直近のスレーブのレスポンスパケットであるスレーブレスポンスパケットとを、前記隣接レスポンスパケットの優先度と前記スレーブレスポンスパケットの優先度とを用いて調停して、調停後のレスポンスパケットを次の中継回路に出力するレスポンス用の調停回路と、
前記スレーブレスポンスパケットが送信先に到達するまでに通過する前記レスポンス用の中継回路の数に応じて前記スレーブレスポンスパケットの優先度を調整するレスポンス用の優先度調整回路と、を備える、
請求項１に記載のデータ処理装置。
【請求項１２】
複数のバスマスタと、
前記複数のバスマスタがアクセス可能な複数のスレーブと、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続された複数の中継回路と、
前記複数の中継回路がリング状に接続されたリングバスと、を備え、
前記中継回路は、
隣接する中継回路のレスポンスパケットである隣接レスポンスパケットと、直近のスレーブのレスポンスパケットであるスレーブレスポンスパケットとを、前記隣接レスポンスパケットの優先度と前記スレーブレスポンスパケットの優先度とを用いて調停して、調停後のレスポンスパケットを次の中継回路に出力する調停回路と、
前記スレーブレスポンスパケットが送信先に到達するまでに通過する前記中継回路の数に応じて前記スレーブレスポンスパケットの優先度を調整する優先度調整回路と、を備える、
データ処理装置。
【請求項１３】
複数のバスマスタと、
前記複数のバスマスタがアクセス可能な複数のスレーブと、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続された複数の中継回路と、
前記複数の中継回路がリング状に接続されたリングバスと、を備えるデータ処理装置の制御方法であって、
前記中継回路は、隣接する中継回路のリクエストパケットである隣接リクエストパケットと、直近のバスマスタのリクエストパケットであるバスリクエストパケットとを、前記隣接リクエストパケットの優先度と前記バスリクエストパケットの優先度とを用いて調停する際に、前記バスリクエストパケットが送信先に到達するまでに通過する前記中継回路の数に応じて前記バスリクエストパケットの優先度を調整する、
データ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置、及びデータ処理装置の制御方法に関し、例えばリングバスを備えたデータ処理装置、及びデータ処理装置の制御方法に関する。
【背景技術】
【０００２】
近年、データ処理装置の性能が向上するにつれて、データ処理装置が備えるバスマスタ、及びスレーブの数が増加している。このため、各々のバスマスタ、及び各々のスレーブを接続する配線数も増加しており、この配線集中を緩和することが重要な課題となってきている。例えば、複数のバスマスタと複数のスレーブとを接続するバストポロジにリング型を用いた場合は、スター型を用いた場合よりも配線集中を緩和することができる。
【０００３】
特許文献１には、リングバスに接続された複数の中継装置と、中継装置とノードとのインタフェースを制御するアダプタと、を有するデータ伝送システムに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５９−１０７６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、複数のバスマスタと複数のスレーブとを接続するバストポロジにリング型を用いた場合は、スター型を用いた場合よりも配線集中を緩和することができる。
【０００６】
しかしながら、複数のバスマスタと複数のスレーブとを接続するバストポロジとしてリング型を用いた場合は、スター型を用いた場合よりもバスアクセスのレイテンシにばらつきが生じる。つまり、リングバスを用いた場合は、各々のバスマスタが各々のスレーブにアクセスする際に通過するリングバスの距離にばらつきが生じるため、バスアクセスのレイテンシにばらつきが生じるという問題がある。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態にかかるデータ処理装置は、複数の中継回路がリング状に接続されたリングバスを備える。中継回路は、隣接する中継回路のリクエストパケットである隣接リクエストパケットと、直近のバスマスタのリクエストパケットであるバスリクエストパケットとを、隣接リクエストパケットの優先度とバスリクエストパケットの優先度とを用いて調停する際に、バスリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じてバスリクエストパケットの優先度を調整する。
【発明の効果】
【０００９】
前記一実施の形態によれば、バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置、及びデータ処理装置の制御方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるデータ処理装置の構成例を示すブロック図である。
【図２】実施の形態１にかかるデータ処理装置が備える中継回路の構成例を示すブロック図である。
【図３】中継回路が備える調停部の構成例を示すブロック図である。
【図４】中継回路が備える調停部の構成例を示すブロック図である。
【図５】優先度調整回路が備えるテーブルの一例を示す表である。
【図６】実施の形態１にかかるデータ処理装置で用いられるリクエストパケットの構成例を示す図である。
【図７】実施の形態１にかかるデータ処理装置の動作を説明するためのフローチャートである。
【図８】実施の形態２にかかるデータ処理装置の構成例を示すブロック図である。
【図９】実施の形態３にかかるデータ処理装置が備えるバッファ回路の構成例を示すブロック図である。
【図１０】実施の形態４にかかるデータ処理装置の構成例を示すブロック図である。
【図１１】実施の形態５にかかるデータ処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
以下、図面を参照して実施の形態１について説明する。
図１は、実施の形態１にかかるデータ処理装置の構成例を示すブロック図である。図１に示すように、データ処理装置１は、複数のバスマスタ１１_０〜１１_９、複数の中継回路１２_０〜１２_９、及び複数のスレーブ１３_０〜１３_９を備える。
【００１２】
各々の中継回路１２_０〜１２_９は、各々のバスマスタ１１_０〜１１_９および各々のスレーブ１３_０〜１３_９と接続されている。各々の中継回路１２_０〜１２_９は、リングバス１５を介してリング状に接続されている。よって、各々のバスマスタ１１_０〜１１_９は、各々の中継回路１２_０〜１２_９およびリングバス１５を経由して各々のスレーブ１３_０〜１３_９にアクセスすることができる。
【００１３】
例えば、各々のバスマスタ１１_０〜１１_９は、ＣＰＵ（Central Processing Unit）等の処理回路であり、所定のリクエストパケットを各々のスレーブ１３_０〜１３_９に送信することができる。各々のスレーブ１３_０〜１３_９は、例えばフラッシュメモリやＳＲＡＭ（Static Random Access Memory）等のメモリ回路であり、各々のバスマスタ１１_０〜１１_９からの要求に応じて、バスマスタから送信されたデータを格納したり、各々のスレーブ１３_０〜１３_９に格納されているデータをバスマスタに送信したりすることができる。なお、バスマスタ１１_０〜１１_９およびスレーブ１３_０〜１３_９の構成はこのような構成に限定されることはなく、データ処理装置１の用途に応じてユーザが任意に設計することができる。
【００１４】
リングバス１５は、一方向（図１では時計回り）にデータを転送可能に構成されている。例えば、バスマスタ１１_１は、各々のスレーブ１３_０〜１３_９にアクセスする際、所定のバスプロトコルで記述されたリクエストパケット４１_１（以下、単にリクエスト４１_１と記載する場合もある）を、バスマスタ１１_１が直接接続されている中継回路１２_１に送信する。中継回路１２_１は、リクエストパケット４１_１に含まれている送信先のアドレスを用いて、リクエストパケットをスレーブ１３_１または次の中継回路１２_２に送信する。
【００１５】
例えば、リクエストパケット４１_１に含まれている送信先のアドレスがスレーブ１３_１を示す場合、中継回路１２_１は、スレーブ１３_１にリクエストパケット４２_１を送信する。一方、リクエストパケット４１_１に含まれている送信先のアドレスがスレーブ１３_０、１３_２〜１３_９のいずれかを示す場合、中継回路１２_１は、次の中継回路１２_２にリクエストパケット５１_１を送信する。
【００１６】
例えば、バスマスタ１１_１がスレーブ１３_８にアクセスする場合、つまり、リクエストパケット４１_１に含まれている送信先のアドレスがスレーブ１３_８を示す場合、バスマスタ１１_１から出力されたリクエストパケット４１_１は、リングバス１５に接続されている中継回路１２_１〜１２_８を順番に経由してスレーブ１３_８に送信される。
【００１７】
スレーブ１３_８は、バスマスタ１１_１からのリクエストパケットを受信すると、別途設けられたリングバス及び中継回路（図１では不図示）を経由してバスマスタ１１_１にレスポンスパケット（データ等）を送信する。
【００１８】
なお、本実施の形態では、各々のバスマスタ１１_０〜１１_９が各々のスレーブ１３_０〜１３_９にリクエストパケットを送信する場合について説明する。各々のスレーブ１３_０〜１３_９が各々のバスマスタ１１_０〜１１_９にレスポンスパケットを返す場合については、実施の形態５（図１１参照）で説明する。
【００１９】
また、図１に示すデータ処理装置１では、一例としてバスマスタ１１_０〜１１_９、中継回路１２_０〜１２_９、及びスレーブ１３_０〜１３_９をそれぞれ１０個備える構成を示しているが、本実施の形態では、データ処理装置１が備えるバスマスタ、中継回路、及びスレーブの数は任意に決定することができる。
【００２０】
本実施の形態にかかるデータ処理装置１において、中継回路１２_１には、バスマスタ１１_１からのリクエストパケット４１_１の他に、隣接する中継回路１２_０（つまり、一つ手前の中継回路）からのリクエストパケット５１_０が供給される。中継回路１２_１は、隣接する中継回路１２_０のリクエストパケットである隣接リクエストパケット５１_０と、直近のバスマスタ１１_１のリクエストパケットであるバスリクエストパケット４１_１とが競合する場合、隣接リクエストパケット５１_０およびバスリクエストパケット４１_１を調停して、調停後のリクエストパケットをスレーブ１３_１または次の中継回路１２_２に送信する。このとき、中継回路１２_１は、隣接リクエストパケット５１_０の優先度とバスリクエストパケット４１_１の優先度とを用いて、隣接リクエストパケット５１_０およびバスリクエストパケット４１_１を調停する。
【００２１】
図６は、本実施の形態にかかるデータ処理装置１で用いられるリクエストパケットの構成例を示す図である。図６に示すように、リクエストパケット８０には、アドレス８１、優先度８２、マスタＩＤ（８３）、パケットＩＤ（８４）、及びデータ８５が含まれている。アドレス８１は、パケット８０の送信先のアドレスである。優先度８２は、リクエストパケット８０の優先度、つまり、リングバス１５内においてリクエストパケット８０を転送する際の優先度を示しており、中継回路１２_０〜１２_９は、優先度の値が高いリクエストパケットを優先して転送する。マスタＩＤ（８３）は、リクエストパケット８０の送信元であるバスマスタ１１_０〜１１_９を特定するためのＩＤである。パケットＩＤ（８４）は、リクエストパケット８０自身を特定するためのＩＤである。データ８５は、画像データや音声データなど任意のデータである。なお、リクエストパケット８０の中にはデータ８５が含まれていないリクエストパケットも存在する。
【００２２】
例えば、バスマスタ１１_１がスレーブ１３_８（例えば、フラッシュメモリ）に格納されているデータを読み出す場合は、バスマスタ１１_１は、スレーブ１３_８にリクエストパケット８０を送信する。このとき送信されるリクエストパケット８０にはデータ８５が含まれていない。一方、バスマスタ１１_１がスレーブ１３_８（例えば、フラッシュメモリ）にデータを格納する場合は、バスマスタ１１_１は、スレーブ１３_８にデータ８５を含むリクエストパケット８０を送信する。
【００２３】
次に、中継回路１２_０〜１２_９の構成例について説明する。図２は、本実施の形態にかかるデータ処理装置１が備える中継回路１２_１の構成例を示すブロック図である。図２では、一例として中継回路１２_１の構成例を示しているが、他の中継回路１２_０、１２_２〜１２_９についても同様の構成を備える。
【００２４】
図２に示すように、中継回路１２_１は、アドレスデコーダ２１、調停部２２、バッファ回路２３、アドレスデコーダ３１、調停部３２、及びバッファ回路３３を備える。
【００２５】
アドレスデコーダ２１は、バスマスタ１１_１から送信されたリクエストパケット４１_１に含まれている有効信号（Mst.valid）とアドレス（Mst.address）とを受信可能に構成されている。アドレスデコーダ２１は、有効信号が有効である場合（Mst.valid=1）、受信したアドレス（Mst.address）をデコードし、デコードしたアドレスに応じて、調停部２２または調停部３２にリクエストパケット４１_１の有効信号（Mst.valid）および優先度（Mst.priority）を送信する。例えば、アドレスデコーダ２１は、デコードしたアドレスがスレーブ１３_１を示す場合、調停部２２にリクエストパケット４１_１の有効信号（Mst.valid）および優先度（Mst.priority）を送信する。一方、デコードしたアドレスがスレーブ１３_０、１３_２〜１３_９のいずれかを示す場合、アドレスデコーダ２１は、調停部３２にリクエストパケット４１_１の有効信号（Mst.valid）および優先度（Mst.priority）を送信する。なお、バスマスタ１１_１から中継回路１２_１へのアクセスを、便宜上、縦のアクセスと表現する場合もある。
【００２６】
アドレスデコーダ３１は、隣接する中継回路１２_０（つまり、一つ手前の中継回路）から送信されたリクエストパケット５１_０に含まれている有効信号（Adj.valid）とアドレス（Adj.address）とを受信可能に構成されている。アドレスデコーダ３１は、有効信号が有効である場合（Adj.valid=1）、受信したアドレス（Adj.address）をデコードし、デコードしたアドレスに応じて、調停部２２または調停部３２にリクエストパケット５１_０の有効信号（Adj.valid）および優先度（Adj.priority）を送信する。例えば、アドレスデコーダ３１は、デコードしたアドレスがスレーブ１３_１を示す場合、調停部２２にリクエストパケット５１_０の有効信号（Adj.valid）および優先度（Adj.priority）を送信する。一方、デコードしたアドレスがスレーブ１３_２〜１３_９のいずれかを示す場合、アドレスデコーダ３１は、調停部３２にリクエストパケット５１_０の有効信号（Adj.valid）および優先度（Adj.priority）を送信する。なお、隣接する中継回路１２_０から中継回路１２_１へのアクセスを、便宜上、横のアクセスと表現する場合もある。
【００２７】
調停部２２は、スレーブ１３_１へのリクエストパケットが競合する場合、これらのリクエストパケットを調停する。具体的には、調停部２２は、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０と、が競合する場合、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停後のリクエストパケットをバッファ回路２３に送信する。すなわち、調停部２２は、アドレスデコーダ２１から供給された有効信号（Mst.valid）とアドレスデコーダ３１から供給された有効信号（Adj.valid）とが同一タイミングで有効となった場合（Mst.valid=1かつAdj.valid=1）、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停後のリクエストパケットをバッファ回路２３に送信する。このとき、調停部２２は、リクエストパケット４１_１の優先度とリクエストパケット５１_０の優先度とを用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。
【００２８】
バッファ回路２３は、調停部２２から出力されたリクエストパケットを一時的に保持した後、スレーブ１３_１にリクエストパケット４２_１を出力する。例えば、バッファ回路２３は、ＦＩＦＯ（First In, First Out）方式のバッファ回路であり、複数のフリップフロップ回路を用いて構成することができる。複数のフリップフロップ回路はクロック信号に同期して動作する。このような構成により、バッファ回路２３は、複数のリクエストパケットを一時的に保持することができる。
【００２９】
バッファ回路２３は、バッファ回路２３に空きがあり、調停部２２から出力されたリクエストパケットを受け付けることが可能な場合、調停後のリクエストパケットに対して受け入れ可能であることを示す信号（ready若しくはgrantと称する）を調停部２２に送信する。一方、バッファ回路２３に空きがない場合は、後続のリクエストパケットを受け付けることを拒否するハンドシェイク信号を調停部２２に送信する。この場合は、ハンドシェイクが不成立となるため、リクエストパケットの受け入れは拒否される。
【００３０】
また、バッファ回路２３は、スレーブ１３_１から受け入れ可能であることを示す信号（ready若しくはgrant）を受信すると、バッファ回路２３に保持されているリクエストパケットをスレーブ１３_１に送信する。
【００３１】
図３は、図２に示す調停部２２の構成例を示すブロック図である。図３に示すように、調停部２２は、調停回路６１と選択回路６２とを備える。調停回路６１は、バスマスタ１１_１のリクエストパケット４１_１に含まれている有効信号（Mst.valid）と優先度（Mst.priority）をアドレスデコーダ２１から受信可能に構成されている。また、調停回路６１は、隣接する中継回路１２_０のリクエストパケット５１_０に含まれている有効信号（Adj.valid）と優先度（Adj.priority）をアドレスデコーダ３１から受信可能に構成されている。
【００３２】
調停回路６１は、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０と、が競合する場合、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停結果を選択回路６２に出力する。すなわち、調停回路６１は、アドレスデコーダ２１から供給された有効信号（Mst.valid）とアドレスデコーダ３１から供給された有効信号（Adj.valid）とが同一タイミングで有効となった場合（Mst.valid=1かつAdj.valid=1）、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停結果を選択回路６２に出力する。
【００３３】
このとき、調停回路６１は、リクエストパケット４１_１の優先度（Mst.priority）とリクエストパケット５１_０の優先度（Adj.priority）とを用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。例えば、各々の優先度（Mst.priority/Adj.priority）は数値で表されており、優先度の値が大きいほど優先度が高くなるように設定されている。例えば、優先度は０〜１５の値を用いて設定することができる。この場合は、優先度＝１５が最も優先度が高いリクエストパケットとなる。
【００３４】
調停回路６１は、リクエストパケット４１_１の優先度（Mst.priority）とリクエストパケット５１_０の優先度（Adj.priority）とを比較し、優先度の値が大きい方のリクエストパケットを選択する。選択されたリクエストパケットに関する情報は、調停結果として選択回路６２に出力される。なお、リクエストパケット４１_１の優先度（Mst.priority）とリクエストパケット５１_０の優先度（Adj.priority）とが同じ値である場合は、ＬＲＵ（Least Recently Used）方式等を用いて、どちらか一方のアクセスを選択する。
【００３５】
選択回路６２は、バスマスタ１１_１のリクエストパケット（Mst.packet）４１_１と、隣接する中継回路１２_０のリクエストパケット（Adj.packet）５１_０と、を受信し、調停回路６１の調停結果に応じて、リクエストパケット（Mst.packet）４１_１およびリクエストパケット（Adj.packet）５１_０のいずれか一方を、選択されたパケット（selected packet）として出力する。選択されたリクエストパケットは、図２に示すバッファ回路２３に出力される。
【００３６】
図２に示す調停部３２は、次の中継回路１２_２へのリクエストパケットが競合する場合、これらのリクエストパケットを調停する。具体的には、調停部３２は、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０と、が競合する場合、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停後のリクエストパケットをバッファ回路３３に送信する。すなわち、調停部３２は、アドレスデコーダ２１から供給された有効信号（Mst.valid）とアドレスデコーダ３１から供給された有効信号（Adj.valid）とが同一タイミングで有効となった場合（Mst.valid=1かつAdj.valid=1）、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停後のリクエストパケットをバッファ回路２３に送信する。このとき、調停部２２は、リクエストパケット４１_１の優先度とリクエストパケット５１_０の優先度とを用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。
【００３７】
また、調停部３２は、バスマスタ１１_１のリクエストパケット４１_１の送信先に応じてリクエストパケット４１_１の優先度を調整する優先度調整回路を備える。具体的には、優先度調整回路は、バスマスタ１１_１のリクエストパケット４１_１が送信先に到達するまでに通過する中継回路１２_０〜１２_９の数に応じてリクエストパケット４１_１の優先度を調整する。優先度調整回路の詳細については後述する。
【００３８】
バッファ回路３３は、調停部３２から出力されたリクエストパケットを一時的に保持した後、次の中継回路１２_２にリクエストパケット５１_１を出力する。例えば、バッファ回路３３は、複数のフリップフロップ回路を用いて構成されており、複数のフリップフロップ回路はクロック信号に同期して動作する。このような構成により、バッファ回路３３は、複数のリクエストパケットを一時的に保持することができる。
【００３９】
バッファ回路３３は、バッファ回路３３に空きがあり、調停部３２から出力されたリクエストパケットを受け付けることが可能な場合、調停後のリクエストパケットに対して受け入れ可能であることを示す信号（ready若しくはgrantと称する）を調停部３２に送信する。一方、バッファ回路３３に空きがない場合は、後続のリクエストパケットを受け付けることを拒否するハンドシェイク信号を調停部３２に送信する。この場合は、ハンドシェイクが不成立となるため、リクエストパケットの受け入れは拒否される。
【００４０】
また、バッファ回路３３は、次の中継回路１２_２から受け入れ可能であることを示す信号（ready若しくはgrant）を受信すると、バッファ回路３３に保持されているリクエストパケットを次の中継回路１２_２に送信する。
【００４１】
図４は、図２に示す調停部３２の構成例を示すブロック図である。図４に示すように、調停部３２は、調停回路７１、選択回路７２、及び優先度調整回路７３を備える。調停回路７１は、バスマスタ１１_１のリクエストパケット４１_１に含まれている有効信号（Mst.valid）をアドレスデコーダ２１から受信可能に構成されている。また、調停回路７１は、優先度調整回路７３で調整されたリクエストパケット４１_１の優先度（Mod.priority）を優先度調整回路７３から受信可能に構成されている。なお、優先度調整回路７３は、リクエストパケット４１_１の優先度（Mst.priority）を調整していない場合は、優先度（Mod.priority）として優先度（Mst.priority）をそのまま出力する。また、調停回路７１は、隣接する中継回路１２_０のリクエストパケット５１_０に含まれている有効信号（Adj.valid）と優先度（Adj.priority）をアドレスデコーダ３１から受信可能に構成されている。
【００４２】
調停回路７１は、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０と、が競合する場合、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停結果を選択回路７２に出力する。すなわち、調停回路７１は、アドレスデコーダ２１から供給された有効信号（Mst.valid）とアドレスデコーダ３１から供給された有効信号（Adj.valid）とが同一タイミングで有効となった場合（Mst.valid=1かつAdj.valid=1）、リクエストパケット４１_１およびリクエストパケット５１_０を調停して、調停結果を選択回路７２に出力する。
【００４３】
このとき、調停回路７１は、優先度調整回路７３で調整されたリクエストパケット４１_１の優先度（Mod.priority）（調整されていない場合は、優先度（Mst.priority））と、リクエストパケット５１_０の優先度（Adj.priority）と、を用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。
【００４４】
調停回路７１は、優先度調整回路７３から供給されたリクエストパケット４１_１の優先度（Mod.priority）とリクエストパケット５１_０の優先度（Adj.priority）とを比較し、優先度の値が大きい方のリクエストパケットを選択する。選択されたリクエストパケットに関する情報は、調停結果として選択回路７２に出力される。
【００４５】
選択回路７２は、バスマスタ１１_１のリクエストパケット（Mst.packet）４１_１と、隣接する中継回路１２_０のリクエストパケット（Adj.packet）と、を受信し、調停回路７１の調停結果に応じて、リクエストパケット（Mst.packet）４１_１およびリクエストパケット（Adj.packet）のいずれか一方を、選択されたリクエストパケット（selected packet）として出力する。選択されたリクエストパケットは、図２に示すバッファ回路３３に出力される。
【００４６】
次に、優先度調整回路７３について詳細に説明する。優先度調整回路７３は、バスマスタ１１_１のリクエストパケット４１_１が送信先に到達するまでに通過する中継回路１２_０〜１２_９の数に応じてリクエストパケット４１_１の優先度を調整する。具体的には、優先度調整回路７３は、調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された回数が所定の閾値を超えた場合に、バスマスタ１１_１のリクエストパケット４１_１の優先度（Mst.priority）が高くなるように調整する。このとき、所定の閾値は、バスマスタ１１_１のリクエストパケット４１_１が送信先に到達するまでに通過する中継回路１２_０〜１２_９の数が多くなるほど小さくなるように設定される。なお、優先度調整回路７３においてリクエストパケット４１_１の優先度（Mst.priority）が調整されていない場合、優先度調整回路７３は、優先度（Mod.priority）として優先度（Mst.priority）を調停回路７１に出力する。
【００４７】
図４に示すように、優先度調整回路７３は、テーブル７５、比較回路７６、加算回路７７、及びカウンタ７８を備える。
【００４８】
テーブル７５は、所定の閾値を格納している。図５は、優先度調整回路が備えるテーブル７５の一例を示す表であり、所定の閾値の設定例を示している。図５は、中継回路１２_１が備えるテーブル７５（ルックアップテーブル）の一例を示しており、バスマスタ１１_１のリクエストパケット４１_１の優先度を調整する際に用いられる所定の閾値の一例を示している。
【００４９】
図５に示すように、所定の閾値は、バスマスタ１１_１のリクエストパケット４１_１が送信先に到達するまでに通過する中継回路の数が多いほど（つまり、送信先が遠くなるほど）小さくなるように設定される。例えば、バスマスタ１１_１のアクセス先がバスマスタ１１_１から最も近いスレーブ１３_１である場合、所定の閾値は最も大きな値「９」となる。また、バスマスタ１１_１のアクセス先がバスマスタ１１_１から最も遠いスレーブ１３_０である場合（つまり、リングバス１５は時計回りであるのでスレーブ１３_０が最も遠くなる）、所定の閾値は最も小さな値「０」となる。また、バスマスタ１１_１のアクセス先がスレーブ１３_２〜１３_９である場合は、バスマスタ１１_１のアクセス先が遠くなるにつれて（つまり、通過する中継回路の数が多くなるにつれて）、所定の閾値が８、７、・・・、１と順番に小さくなる。
【００５０】
所定の閾値は、図４の調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された回数（以下、「負け回数」とも記載する）の許容回数に対応している。従って、バスマスタ１１_１のアクセス先がバスマスタ１１_１から最も近いスレーブ１３_１である場合は、アクセス先が最も近いためバスマスタ１１_１のリクエストパケット４１_１が最も多く拒否されることが許容される。一方、バスマスタ１１_１のアクセス先がバスマスタ１１_１から最も遠いスレーブ１３_０である場合は、アクセス先が最も遠いのでバスマスタ１１_１のリクエストパケット４１_１の負け回数の許容回数が最も小さくなる。すなわち、所定の閾値をこのように設定することで、アクセス先が遠いリクエストパケットを優先的にリングバス１５内に入れることができる。
【００５１】
テーブル７５は、バスマスタ１１_１のリクエストパケット４１_１のアクセス先を示すアドレス（Mst.address）（アクセス先のスレーブのアドレスに対応）が供給されると、アドレス（Mst.address）に対応した所定の閾値を比較回路７６に出力する。なお、テーブルに格納される所定の閾値は、任意に設定することができる。例えば、テーブル７５をレジスタで構成し、ＣＰＵ等を用いてレジスタに格納されている所定の閾値を書き換え可能に構成してもよい。
【００５２】
カウンタ７８には調停回路７１の調停結果が供給される。カウンタ７８は、調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された回数（負け回数）をカウントし、このカウント値を比較回路７６に出力する。
【００５３】
比較回路７６は、カウンタ７８から供給されたカウント値（つまりバスマスタ１１_１のリクエストパケット４１_１が拒否された回数（負け回数））と、テーブル７５から供給された所定の閾値とを比較し、比較結果を加算回路７７に出力する。
【００５４】
比較回路７６は、バスマスタ１１_１のリクエストパケット４１_１が拒否された回数（負け回数）が所定の閾値を超えている場合、比較結果として加算回路７７に加算イネーブル信号を出力する。加算回路７７は、加算イネーブル信号が供給されると、リクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算して優先度を調整し、調整された優先度（Mod.priority）を調停回路７１に出力する。
【００５５】
一方、加算回路７７は、バスマスタ１１_１のリクエストパケット４１_１が拒否された回数（負け回数）が所定の閾値以下である場合、比較結果として加算回路７７に加算ディスイネーブル信号を出力する。加算回路７７は、加算ディスイネーブル信号が供給されると、リクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算することなく、優先度（Mst.priority）を優先度（Mod.priority）として調停回路７１に出力する。
【００５６】
ここで、本実施の形態にかかるデータ処理装置１では、優先度の値は所定の範囲の数値で設定されている。加算回路７７で加算される所定の値は、ユーザが任意に決定することができる。例えば、加算回路７７で加算される所定の値は、加算回路７７が備えるレジスタ（不図示）に格納されており、ユーザがこのレジスタに格納されている値を書き換えることで、加算する所定の値を変更することができる。
【００５７】
また、加算回路７７は、優先度に所定の値を加算する際、優先度の設定範囲の上限値を超えないように加算する。例えば、データ処理装置１の優先度を０〜１５の値で設定した場合、加算回路７７は、調整された優先度（Mod.priority）の値が１５を超えないように調整する。つまり、加算回路７７は、飽和処理付きの加算回路を用いて構成することができる。
【００５８】
調停回路７１は、優先度調整回路７３で調整されたリクエストパケット４１_１の優先度（Mod.priority）とリクエストパケット５１_０の優先度（Adj.priority）とを比較し、調停結果を選択回路７２およびカウンタ７８に出力する。カウンタ７８は、調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された場合、現在の負け回数に１を加算する。加算された負け回数、つまり、カウンタ７８のカウント値は比較回路７６に出力される。
【００５９】
次に、優先度調整回路７３の動作について、図７に示すフローチャートを用いて説明する。以下で説明する優先度調整回路７３の動作では、バスマスタ１１_１がスレーブ１３_３にリクエストパケット４１_１を送信する場合を例として説明する。ここで、各々のリクエストパケットに設定される優先度の範囲は０〜１５であるものとする。また、バスマスタ１１_１のリクエストパケット４１_１の優先度（Mst.priority）は、「１０」とする。また、加算回路７７が１度に加算する値は、「２」に設定されているものとする。また、隣接する中継回路１２_０のリクエストパケット５１_０の優先度（Adj.priority）は、「１１」とする。なお、隣接する中継回路１２_０のリクエストパケット５１_０の優先度（Adj.priority）は、調停回路７１が受信するリクエストパケット５１_０に応じて変化するが、以下の説明では説明を簡略化するために、リクエストパケット５１_０の優先度（Adj.priority）を「１１」に固定している。
【００６０】
まず、図４に示す優先度調整回路７３が初期化される（ステップＳ１）。このとき、カウンタ７８のカウント値（つまり負け回数）は０に設定されている。
【００６１】
その後、バスマスタ１１_１から中継回路１２_１にリクエストパケット４１_１が送信されると、リクエストパケット４１_１に含まれている有効信号（Mst.valid）が有効「１」になる（ステップＳ２）。テーブル７５は、リクエストパケット４１_１に含まれているアドレス（Mst.address）に対応した閾値を比較回路７６に出力する（ステップＳ３）。この場合は、リクエストパケット４１_１の送信先がスレーブ１３_３であるので、アドレス（Mst.address）は「７」となる（図５参照）。
【００６２】
その後、比較回路７６は、テーブル７５から供給された閾値とカウンタ７８のカウント値（負け回数）とを比較する（ステップＳ４）。この場合は、テーブル７５から供給された閾値が「７」、負け回数が「０」であるので、「閾値＜負け回数」を満たさない（ステップＳ４：Ｎｏ）。よって、比較回路７６は、比較結果として加算回路７７に加算ディスイネーブル信号を出力する。加算回路７７は、加算ディスイネーブル信号が供給されると、リクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算することなく、優先度（Mst.priority）を優先度（Mod.priority）として調停回路７１に出力する（ステップＳ６）。
【００６３】
次に、調停回路７１は、リクエストパケット４１_１の調停を開始する（ステップＳ７）。調停回路７１が受信しているリクエストパケットがリクエストパケット４１_１のみである場合、リクエストパケット４１_１の有効信号（Mst.valid）のみが有効となり、隣接する中継回路１２_０のリクエストパケット５１_０の有効信号（Adj.valid）は無効「０」となる（ステップＳ８：Ｙｅｓ）。
【００６４】
この場合、調停回路７１は、競合するリクエストがないので、リクエストパケット４１_１を選択する。選択されたリクエストパケットに関する情報は、調停結果として選択回路７２に出力される。選択回路７２は、バスマスタ１１_１のリクエストパケット（Mst.packet）４１_１を、選択されたリクエストパケット（selected packet）として出力する。
【００６５】
また、優先度調整回路７３は、カウンタ７８のカウント値（負け回数）を０にリセットする（ステップＳ９）。
【００６６】
一方、調停回路７１が受信しているリクエストパケットが、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０である場合、リクエストパケット４１_１の有効信号（Mst.valid）に加えて、隣接する中継回路１２_０のリクエストパケット５１_０の有効信号（Adj.valid）も有効になる（ステップＳ８：Ｎｏ）。この場合は、リクエストパケット４１_１およびリクエストパケット５１_０が競合するので、調停回路７１は、優先度調整回路７３から出力されたリクエストパケット４１_１の優先度（Mod.priority）と、リクエストパケット５１_０の優先度（Adj.priority）と、を用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。
【００６７】
このとき、リクエストパケット４１_１の優先度（Mod.priority）は「１０」（優先度（Mst.priority）と同じ）であり、リクエストパケット５１_０の優先度（Adj.priority）は「１１」であるので、調停回路７１は、隣接する中継回路１２_０のリクエストパケット５１_０を選択する（ステップＳ１０：Ｙｅｓ）。この調停結果は、選択回路７２およびカウンタ７８に出力される。
【００６８】
カウンタ７８は、調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された場合、現在の負け回数に１を加算する（ステップＳ１１）。この場合は、カウンタのカウント値（負け回数）は「１」となる。
【００６９】
その後、比較回路７６は、ステップＳ４へと戻り、再び、テーブル７５から供給された閾値とカウンタ７８のカウント値（負け回数）とを比較する。この場合は、テーブル７５から供給された閾値が「７」、負け回数が「１」であるので、「閾値＜負け回数」を満たさない（ステップＳ４：Ｎｏ）。よって、比較回路７６は、比較結果として加算回路７７に加算ディスイネーブル信号を出力する。加算回路７７は、加算ディスイネーブル信号が供給されると、リクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算することなく、優先度（Mst.priority）を優先度（Mod.priority）として調停回路７１に出力する（ステップＳ６）。
【００７０】
次に、調停回路７１は、リクエストパケット４１_１の調停を開始する（ステップＳ７）。調停回路７１が受信しているリクエストパケットが、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０である場合、リクエストパケット４１_１の有効信号（Mst.valid）に加えて、隣接する中継回路１２_０のリクエストパケット５１_０の有効信号（Adj.valid）も有効になる（ステップＳ８：Ｎｏ）。この場合は、リクエストパケット４１_１およびリクエストパケット５１_０が競合するので、調停回路７１は、優先度調整回路７３から出力されたリクエストパケット４１_１の優先度（Mod.priority）と、リクエストパケット５１_０の優先度（Adj.priority）と、を用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。
【００７１】
このとき、リクエストパケット４１_１の優先度（Mod.priority）は「１０」（優先度（Mst.priority）と同じ）であり、リクエストパケット５１_０の優先度（Adj.priority）は「１１」であるので、調停回路７１は、隣接する中継回路１２_０のリクエストパケット５１_０を選択する（ステップＳ１０：Ｙｅｓ）。この調停結果は、選択回路７２およびカウンタ７８に出力される。
【００７２】
カウンタ７８は、調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された場合、現在の負け回数に１を加算する（ステップＳ１１）。この場合は、カウンタのカウント値（負け回数）は「２」となる。
【００７３】
このような動作は、ステップＳ１１において、カウンタ７８のカウント値（負け回数）が「８」になるまで継続される。すなわち、ステップＳ１１において、カウンタ７８のカウント値（負け回数）が「８」になると、テーブル７５から供給された閾値「７」よりもカウンタ７８のカウント値（負け回数）「８」が大きくなる。この場合は、ステップＳ４において、「閾値＜負け回数」を満たすので（ステップＳ４：Ｙｅｓ）、比較回路７６は、比較結果として加算回路７７に加算イネーブル信号を出力する。
【００７４】
加算回路７７は、加算イネーブル信号が供給されると、リクエストパケット４１_１の優先度（Mst.priority）に所定の値「２」を加算し、加算した後の優先度を優先度（Mod.priority）として調停回路７１に出力する（ステップＳ５）。
【００７５】
次に、調停回路７１は、リクエストパケット４１_１の調停を開始する（ステップＳ７）。調停回路７１が受信しているリクエストパケットが、バスマスタ１１_１のリクエストパケット４１_１と、隣接する中継回路１２_０のリクエストパケット５１_０である場合、リクエストパケット４１_１の有効信号（Mst.valid）に加えて、隣接する中継回路１２_０のリクエストパケット５１_０の有効信号（Adj.valid）も有効になる（ステップＳ８：Ｎｏ）。この場合は、リクエストパケット４１_１およびリクエストパケット５１_０が競合するので、調停回路７１は、優先度調整回路７３から出力されたリクエストパケット４１_１の優先度（Mod.priority）と、リクエストパケット５１_０の優先度（Adj.priority）と、を用いて、リクエストパケット４１_１およびリクエストパケット５１_０を調停する。
【００７６】
このとき、リクエストパケット４１_１の優先度（Mod.priority）は「１２」であり、リクエストパケット５１_０の優先度（Adj.priority）は「１１」であるので、調停回路７１は、バスマスタ１１_１のリクエストパケット４１_１を選択する（ステップＳ１０：Ｎｏ）。この調停結果は、選択回路７２およびカウンタ７８に出力される。選択回路７２は、バスマスタ１１_１のリクエストパケット（Mst.packet）４１_１を、選択されたリクエストパケット（selected packet）として出力する。
【００７７】
また、優先度調整回路７３は、カウンタ７８のカウント値（負け回数）を０にリセットする（ステップＳ９）。
【００７８】
以上で説明した動作により、優先度調整回路７３は、バスマスタ１１_１のリクエストパケット４１_１が送信先に到達するまでに通過する中継回路１２_０〜１２_９の数に応じてリクエストパケット４１_１の優先度を調整することができる。具体的には、優先度調整回路７３は、調停回路７１においてバスマスタ１１_１のリクエストパケット４１_１が拒否された回数が所定の閾値を超えた場合に、バスマスタ１１_１のリクエストパケット４１_１の優先度（Mst.priority）が高くなるように調整することができる。上述したように、所定の閾値は、バスマスタ１１_１のリクエストパケット４１_１が送信先に到達するまでに通過する中継回路１２_０〜１２_９の数が多くなるほど小さくなるように設定される。
【００７９】
なお、上述した例では、ステップＳ５において、加算回路７７がリクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算した直後に、調停回路７１においてリクエストパケット４１_１の優先度（Mod.priority）が選択される場合について説明した。しかしながら、リクエストパケット４１_１と競合するリクエストパケット５１_０の優先度（Adj.priority）によっては、リクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算したとしても、リクエストパケット４１_１が選択されない（負ける）場合がある。
【００８０】
このような場合は、加算回路７７において更に所定の値を加算してもよい。例えば、加算回路７７において２度加算した場合は、リクエストパケット４１_１の調整後の優先度（Mod.priority）は、「１４（＝１０＋２＋２）」となる。
【００８１】
また、加算回路７７において更に所定の値を加算するのではなく、競合するリクエストパケット５１_０の優先度（Adj.priority）が低くなるまで、調停回路７１における調停を繰り返してもよい。
【００８２】
また、リクエストパケット４１_１の優先度（Mst.priority）に所定の値を加算した後、リクエストパケット４１_１が選択されない場合には、次のようにリクエストパケット４１_１を調停してもよい。すなわち、リクエストパケット４１_１の優先度が高く、リクエストパケット４１_１を停滞させたくない場合（すなわち、リクエストパケット４１_１を優先的にリングバス１５内に入れたい場合）には、次の調停において加算後の優先度が最大値（１５）になるようにしてもよい。
【００８３】
背景技術で説明したように、複数のバスマスタと複数のスレーブとを接続するバストポロジにリング型を用いた場合は、スター型を用いた場合よりも配線集中を緩和することができる。
【００８４】
しかしながら、複数のバスマスタと複数のスレーブとを接続するバストポロジとしてリング型を用いた場合は、スター型を用いた場合よりもバスアクセスのレイテンシにばらつきが生じる。つまり、リングバスを用いた場合は、各々のバスマスタが各々のスレーブにアクセスする際に通過するリングバスの距離にばらつきが生じるため、バスアクセスのレイテンシにばらつきが生じるという問題があった。
【００８５】
これに対して本実施の形態にかかるデータ処理装置１では、バスマスタのリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じて、バスマスタのリクエストパケットの優先度を調整する優先度調整回路を設けている。よって、バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置、及びデータ処理装置の制御方法を提供することができる。
【００８６】
すなわち、本実施の形態にかかるデータ処理装置１では、調停回路においてバスマスタのリクエストパケットが拒否された回数が所定の閾値を超えた場合に、バスマスタのリクエストパケットの優先度が高くなるように調整している。ここで、所定の閾値は、バスマスタのリクエストパケットが送信先に到達するまでに通過する中継回路の数が多くなるほど小さくなるように設定されている。換言すると、所定の閾値は、バスマスタのリクエストパケットの送信先が遠くなるほど小さくなるように設定されている。
【００８７】
この所定の閾値は、バスマスタのリクエストパケットが拒否された回数（負け回数）の許容回数に対応している。従って、バスマスタのアクセス先がバスマスタから近い（通過する中継回路の数が少ない）スレーブである場合は、アクセス先が近いためバスマスタのリクエストパケットが多く拒否されることが許容される。一方、バスマスタのアクセス先がバスマスタから遠い（通過する中継回路の数が多い）スレーブである場合は、アクセス先が遠いのでバスマスタのリクエストパケットの負け回数の許容回数が小さくなる。すなわち、所定の閾値をこのように設定することで、アクセス先が遠い（通過する中継回路の数が多い）リクエストパケットを優先的にリングバス内に入れることができ、アクセス先が遠いリクエストパケットがリングバス内の帯域を占有し得る可能性を高めることが可能になる。従って、バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置、及びデータ処理装置の制御方法を提供することができる。
【００８８】
例えば、バスマスタを備える回路が、スレーブに保持されているデータをリードすることによって処理を開始するように構成されている場合は、バスマスタを備える回路はリードデータを受信するまで待機状態となる。例えば、リングバス内でステップ数（通過する中継回路の数に対応）の小さいバスマスタのリクエストが優先されたり、全てのバスマスタのリクエストの優先度が同等である場合は、ステップ数の大きいバスマスタのリクエストの待機時間の割合がステップ数の小さいバスマスタのリクエストよりも高くなる。この場合、ステップ数の小さいバスマスタが処理を終えた時点で、処理開始が遅れたステップ数の大きいバスマスタの処理は未完了であり、ステップ数の大きいバスマスタは動作を継続しなければならない。
【００８９】
複数のバスマスタの処理が全て完了することで最終結果が得られるシステムでは、個々のバスマスタの性能ばらつきが最終的な性能劣化を引き起こす場合がある。本実施の形態にかかるデータ処理装置では、各々のバスマスタの性能のバランスを平滑化することが可能になり、データ処理装置全体の処理性能の劣化を抑止することが可能となる。また、ユーザが意図的に早期完了させたい処理がある場合、バスマスタの設定を変更することで調整することができる。
【００９０】
なお、上記の説明では、図４に示した調停部３２を図２に示した調停部３２に適用した場合について説明したが、本実施の形態にかかるデータ処理装置では、図２に示す調停部２２に図４に示した調停部を適用してもよい。つまり、バスマスタが直近のスレーブにアクセスする場合にも、本実施の形態にかかる技術を用いてもよい。
【００９１】
＜実施の形態２＞
次に、実施の形態２について説明する。図８は、実施の形態２にかかるデータ処理装置の構成例を示すブロック図である。図８に示すデータ処理装置２では、実施の形態１で説明したデータ処理装置（図１参照）と比べて、データ処理装置２が監視回路９０及び制限回路９１_０〜９１_９を備える点が異なる。これ以外の構成および動作については、実施の形態１で説明したデータ処理装置１と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
【００９２】
図８に示すように、データ処理装置２は、複数のバスマスタ１１_０〜１１_９、複数の中継回路１２_０〜１２_９、複数のスレーブ１３_０〜１３_９、監視回路９０、及び複数の制限回路９１_０〜９１_９を備える。
【００９３】
監視回路９０は、リングバス１５に存在するリクエストパケットの量を監視する。具体的には、各々の中継回路１２_０〜１２_９は、各々の中継回路１２_０〜１２_９が保持しているリクエストパケットの量に関する情報９３を、監視回路９０に供給する。監視回路９０は、各々の中継回路１２_０〜１２_９から供給された情報９３に基づいて、各々の中継回路１２_０〜１２_９が保持しているリクエストパケットの量を把握し、リングバス１５に存在するリクエストパケットの量を監視する。
【００９４】
例えば、監視回路９０は、図２に示したバッファ回路３３に保持されているリクエストパケットの量を監視することで、リングバス１５に存在するリクエストパケットの量を監視することができる。例えば、中継回路１２_１から次の中継回路１２_２にリクエストパケットを受け渡す場合は、受け入れ先の中継回路１２_２が受け入れ可能でなければ、リクエストパケットは中継回路１２_１のバッファ回路３３に保持された状態（待機状態）となる。よって、監視回路９０は、各々の中継回路１２_０〜１２_９のバッファ回路３３において待機状態となっているリクエストパケットの量を把握することで、リングバス１５全体のリクエストパケットの量を監視することができる。
【００９５】
各々の制限回路９１_０〜９１_９は、各々のバスマスタ１１_０〜１１_９と各々の中継回路１２_０〜１２_９との間に設けられている。各々の制限回路９１_０〜９１_９は、各々のバスマスタ１１_０〜１１_９の各々の中継回路１２_０〜１２_９へのアクセスを制限する機能を備える。具体的には、各々の制限回路９１_０〜９１_９は、各々のバスマスタ１１_０〜１１_９のリクエストパケットが各々の中継回路１２_０〜１２_９に送信されることを拒絶する機能を備える。例えば、各々の制限回路９１_０〜９１_９は、各々のバスマスタ１１_０〜１１_９のリクエストパケットの有効信号を無効（Mst.valid=0）にすることで、リクエストパケットが各々の中継回路１２_０〜１２_９に送信されることを拒絶することができる。
【００９６】
各々の制限回路９１_０〜９１_９には、監視回路９０から制御信号９４が供給されている。各々の制限回路９１_０〜９１_９は、制御信号９４に応じて、各々のバスマスタ１１_０〜１１_９の各々の中継回路１２_０〜１２_９へのアクセスを制限する。具体的には、監視回路９０は、リングバス１５に存在するリクエストパケットの量に応じて各々の制限回路９１_０〜９１_９を制御し、バスマスタ１１_０〜１１_９から中継回路１２_０〜１２_９に供給されるリクエストパケットを制限する。
【００９７】
例えば、監視回路９０は、各々の中継回路１２_０〜１２_９が備える各々のバッファ回路３３の少なくとも一つに空きがない場合に、各々のバスマスタ１１_０〜１１_９から各々の中継回路１２_０〜１２_９に供給されるリクエストパケットを制限してもよい。なお、監視回路９０がバスマスタのリクエストを制限する基準は、ユーザが任意に決定することができる。
【００９８】
また、各々の制限回路９１_０〜９１_９は、アクセス制限をする際に、全てのバスマスタ１１_０〜１１_９のアクセスを制限してもよく、また特定のバスマスタのアクセスを制限するようにしてもよい。例えば、各々の制限回路９１_０〜９１_９は、中継回路１２_０〜１２_９のうちバッファ回路３３に空きがない中継回路へのバスマスタのアクセスを制限するようにしてもよい。
【００９９】
このように、本実施の形態にかかるデータ処理装置２では、監視回路９０を用いてリングバス１５内のリクエストパケットの量を監視し、この監視結果に応じて、各々のバスマスタ１１_０〜１１_９から各々の中継回路１２_０〜１２_９に新たにリクエストパケットが送信されることを制限している。よって、リングバス１５内に存在するリクエストパケットの量を制限することができるので、リングバス１５の流動性が失われることを抑制することができる。換言すると、リングバス１５においてリクエストパケットが停滞することを抑制することができる。したがって、真に優先度の高いリクエストパケットをリングバス１５内において優先的に通すことができる。
【０１００】
実施の形態１にかかるデータ処理装置では、リクエストパケットが通過する中継回路の数（つまり、バスマスタがアクセスするスレーブまでの距離）を考慮してリクエストパケットの優先度を調整することで、優先度の高いリクエストパケットを優先的にリングバス内に入れることができる。しかしながら、優先度の高いリクエストパケットを優先的にリングバス内に入れることができたとしても、その先の中継回路においてリクエストパケットが停滞していると、優先度を調整してリクエストパケットをリングバス内に入れたことによる効果が薄れてしまう。本実施の形態にかかるデータ処理装置２では、リングバス内のバッファ回路においてリクエストパケットの停滞が発生することを事前に抑制することで、実施の形態１にかかるデータ処理装置で得られる効果、すなわち、優先度を調整してリクエストパケットを優先的にリングバス内に入れることにより得られる効果が薄れてしまうことを抑制することができる。
【０１０１】
＜実施の形態３＞
次に、実施の形態３について説明する。実施の形態３では、実施の形態１、２で説明したデータ処理装置１、２と比べて、中継回路が備えるバッファ回路の構成が異なる。これ以外の構成および動作については、実施の形態１、２で説明したデータ処理装置１、２と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
【０１０２】
図９は、本実施の形態にかかるデータ処理装置が備えるバッファ回路の構成例を示すブロック図である。図９に示すバッファ回路１１０は、図２に示したバッファ回路２３、３３に対応している。なお、図２に示す２つのバッファ回路２３、３３のうち、一方のみを図９に示すバッファ回路１１０で構成してもよい。リングバス１５の流動性を考慮すると、少なくとも図２に示すバッファ回路３３を図９に示すバッファ回路１１０で構成することが好ましい。
【０１０３】
図９に示すバッファ回路１１０は、複数のリクエストパケットの優先度に応じて、次の送信先（中継回路またはスレーブ）に出力するリクエストパケットの順番を入れ替え可能に構成されている。図９に示すように、バッファ回路１１０は、保持回路１１１、１１２、比較回路１１３、及び選択回路１１４を備える。
【０１０４】
保持回路１１１は、リクエストパケット（Selected packet）を一時的に保持可能に構成されている。保持回路１１２は、保持回路１１１の次段に設けられており、保持回路１１１から送られたリクエストパケットを一時的に保持可能に構成されている。保持回路１１１、１１２はそれぞれ、クロック信号に同期して動作するフリップフロップ回路を用いて構成することができる。
【０１０５】
比較回路１１３は、保持回路１１１に保持されているリクエストパケットの優先度と保持回路１１２に保持されているリクエストパケットの優先度とを比較し、比較結果を選択回路１１４に出力する。
【０１０６】
選択回路１１４は、比較回路１１３から供給された比較結果に応じて、保持回路１１１に保持されているリクエストパケットおよび保持回路１１２に保持されているリクエストパケットのいずれか一方を選択して出力する。このとき、選択回路１１４は、保持回路１１１に保持されているリクエストパケットおよび保持回路１１２に保持されているリクエストパケットのうち優先度が高いほうのリクエストパケットを選択して出力する。
【０１０７】
次に、バッファ回路１１０の具体的な動作について説明する。
保持回路１１１のみにリクエストパケットが保持されている場合は、保持回路１１１から比較回路１１３に供給される有効信号（Rtb1.valid）のみが有効になる。この場合、比較回路１１３は、保持回路１１１に保持されているリクエストパケットが選択されるような選択信号を選択回路１１４に出力する。そして選択回路１１４は、保持回路１１１に保持されているリクエストパケットを出力する。
【０１０８】
また、保持回路１１１のみにリクエストパケットが保持されている状態において、バッファ回路１１０の次の送信先がリクエストパケットを受け入れることができず、バッファ回路１１０に新たにリクエストパケットが供給された場合は、保持回路１１１に保持されているリクエストパケットが保持回路１１２に移動し、保持回路１１１に新たにリクエストパケットが保持される。
【０１０９】
また、保持回路１１１、１１２にリクエストパケットが保持されている場合は、保持回路１１１、１１２から比較回路１１３に供給される有効信号（Rtb1.valid、Rtb2.valid）が有効になる。この場合、比較回路１１３は、保持回路１１１に保持されているリクエストパケットの優先度（Rtb1.priority）と保持回路１１２に保持されているリクエストパケットの優先度（Rtb2.priority）とを比較し、優先度が高い方のリクエストパケットが選択されるような選択信号を選択回路１１４に出力する。
【０１１０】
選択回路１１４は、保持回路１１１に保持されているリクエストパケットおよび保持回路１１２に保持されているリクエストパケットのうち優先度が高いほうのリクエストパケットを選択して出力する。例えば、保持回路１１１に保持されているリクエストパケットの優先度（Rtb1.priority）が、保持回路１１２に保持されているリクエストパケットの優先度（Rtb2.priority）よりも高い場合、選択回路１１４は、保持回路１１１に保持されているリクエストパケットを選択して出力する。これにより、保持回路１１１に保持されているリクエストパケットは、保持回路１１２に保持されているリクエストパケットを追い越すことができる。
【０１１１】
本実施の形態にかかるデータ処理装置が備えるバッファ回路１１０は、複数のリクエストパケットの優先度に応じて、次の送信先（中継回路またはスレーブ）に出力するリクエストパケットの順番を入れ替え可能に構成されている。よって、優先度の高いバスパケットを優先的に転送することができる。なお、このような機能はリングバス１５の内部の帯域が増えた場合や、特定のスレーブがアクセスを一時的に受け付けられず、局所的に停滞する箇所が発生した場合等に特に有効である。
【０１１２】
例えば、実施の形態１にかかるデータ処理装置のように、リクエストパケットが通過する中継回路の数に応じて閾値（図５参照）を定めて優先度を調整したとしても、バッファ回路においてリクエストパケットが停滞してしまう場合がある。このような場合に、バッファ回路において優先度に従って順番を入れ替える（リオーダー）ことで、バスアクセスのレイテンシにばらつきが生じることをより効果的に抑制することができる。
【０１１３】
＜実施の形態４＞
次に、実施の形態４について説明する。図１０は、実施の形態４にかかるデータ処理装置の構成例を示すブロック図である。実施の形態４にかかるデータ処理装置では、実施の形態１〜３で説明したデータ処理装置と比べて、データ処理装置が両方向にデータを転送可能なリングバス、すなわち、時計回りにデータを転送可能なリングバスに加えて、反時計回りにデータを転送可能なリングバスを備える点が異なる。これ以外の構成および動作については、実施の形態１〜３で説明したデータ処理装置と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
【０１１４】
図１０に示すように、データ処理装置３は、複数のバスマスタ１１_０〜１１_９、複数の中継回路１２１_０〜１２１_９、１２２_０〜１２２_９、及び複数のスレーブ１３_０〜１３_９を備える。
【０１１５】
各々の中継回路１２１_０〜１２１_９は、各々のバスマスタ１１_０〜１１_９および各々の中継回路１２２_０〜１２２_９と接続されている。各々の中継回路１２１_０〜１２１_９は、時計回りにデータを転送可能なリングバス１２５を介してリング状に接続されている。
【０１１６】
各々の中継回路１２２_０〜１２２_９は、各々のスレーブ１３_０〜１３_９および各々の中継回路１２１_０〜１２１_９と接続されている。各々の中継回路１２２_０〜１２２_９は、反時計回りにデータを転送可能なリングバス１２６を介してリング状に接続されている。
【０１１７】
各々のバスマスタ１１_０〜１１_９は、各々の中継回路１２１_０〜１２１_９、１２２_０〜１２２_９およびリングバス１２５、１２６を経由して各々のスレーブ１３_０〜１３_９にアクセスすることができる。
【０１１８】
例えば、バスマスタ１１_１がスレーブ１３_４にバスパケットを送信する場合は、中継回路１２１_１、１２１_２、１２１_３、１２１_４の順に経由し、更に中継回路１２２_４を経由してスレーブ１３_４にバスパケットを送信する。
【０１１９】
各々の中継回路１２１_０〜１２１_９、１２２_０〜１２２_９は、図２に示した中継回路１２_１と同様の構成を備える。したがって、各々の中継回路１２１_０〜１２１_９、１２２_０〜１２２_９は、競合するリクエストパケットを、各々のリクエストパケットの優先度に応じて調停することができる。
【０１２０】
例えば、中継回路１２１_１には、バスマスタ１１_１からのリクエストパケットの他に、隣接する中継回路１２１_０（つまり、一つ手前の中継回路）からのリクエストパケットが供給される。中継回路１２１_１は、隣接する中継回路１２１_０のリクエストパケットと、直近のバスマスタ１１_１のリクエストパケットとが競合する場合、これらのリクエストパケットを調停して、調停後のリクエストパケットをリングバス１２６の中継回路１２２_１または次の中継回路１２１_２に送信する。このとき、中継回路１２１_１は、各々のリクエストパケットの優先度を用いて、各々のリクエストパケットを調停する。
【０１２１】
また、例えば、中継回路１２２_１には、リングバス１２５の中継回路１２１_１からのリクエストパケットと、隣接する中継回路１２２_２（つまり、一つ手前の中継回路）からのリクエストパケットが供給される。中継回路１２２_１は、中継回路１２１_１からのリクエストパケットと中継回路１２２_２からのリクエストパケットとが競合する場合、これらのリクエストパケットを調停して、調停後のリクエストパケットを次の中継回路１２２_０またはスレーブ１３_１に送信する。このとき、中継回路１２２_１は、各々のリクエストパケットの優先度を用いて、各々のリクエストパケットを調停する。
【０１２２】
また、各々の中継回路１２１_０〜１２１_９は、各々のバスマスタ１１_０〜１１_９のリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じてリクエストパケットの優先度を調整する優先度調整回路を備える。優先度調整回路については、図４に示した優先度調整回路７３と同様であるので重複した説明は省略する。
【０１２３】
なお、本実施の形態では、優先度調整回路７３が備えるテーブル７５に格納する所定の閾値は、時計回りのリングバス１２５および反時計回りのリングバス１２６の両方を考慮したルートに基づいて決定される。例えば、バスマスタ１１_１を基準とすると、スレーブ１３_６がバスマスタ１１_１から最も遠い（つまり、通過する中継回路の数が最も多い）アクセス先となる。また、例えばスレーブ１３_５とスレーブ１３_７は、バスマスタ１１_１から同一距離のアクセス先となる。また、スレーブ１３_１がバスマスタ１１_１から最も近い（つまり、通過する中継回路の数が最も少ない）アクセス先となる。
【０１２４】
本実施の形態にかかるデータ処理装置３では、時計回りにデータを転送可能なリングバス１２５と反時計回りにデータを転送可能なリングバス１２６とを備えるので、各々のバスマスタ１１_０〜１１_９が各々のスレーブ１３_０〜１３_９にリクエストパケットを送信する際の経路を短くすることができる。
【０１２５】
また、時計回りのリングバスを経由する場合はテーブルに定義する閾値（図５参照）を小さく設定しなければならない場合でも、反時計回りのリングバスを使用できる場合には、テーブルに定義する閾値を大きく設定できる（つまり、閾値を無駄に小さくする必要はない）。これにより、真に優先度が高いリクエストを送信しやすくできる。
【０１２６】
＜実施の形態５＞
次に、実施の形態５について説明する。図１１は、実施の形態５にかかるデータ処理装置の構成例を示すブロック図である。実施の形態５にかかるデータ処理装置４では、実施の形態１〜４で説明したデータ処理装置と比べて、各々のスレーブ１３_０〜１３_９が各々のバスマスタ１１_０〜１１_９にレスポンスパケットを返している点が異なる。これ以外の構成および動作については、実施の形態１〜４で説明したデータ処理装置と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
【０１２７】
図１１に示すように、データ処理装置４は、複数のバスマスタ１１_０〜１１_９、複数の中継回路１３１_０〜１３１_９、及び複数のスレーブ１３_０〜１３_９を備える。
【０１２８】
各々の中継回路１３１_０〜１３１_９はレスポンス用の中継回路であり、各々のバスマスタ１１_０〜１１_９および各々のスレーブ１３_０〜１３_９と接続されている。各々の中継回路１３１_０〜１３１_９は、レスポンス用のリングバス１３５を介してリング状に接続されている。よって、各々のスレーブ１３_０〜１３_９は、各々の中継回路１３１_０〜１３１_９およびリングバス１３５を経由して各々のバスマスタ１１_０〜１１_９にレスポンスパケットを返すことができる。リングバス１３５は、一方向（図１１では時計回り）にデータを転送可能に構成されている。なお、レスポンスパケットは、図６に示したリクエストパケット８０と基本的には同様の構成を備える。ただし、「マスタＩＤ」は「スレーブＩＤ」となる。
【０１２９】
例えば、スレーブ１３_１がバスマスタ１１_８にレスポンスパケットを返す場合、つまり、レスポンスパケットに含まれている送信先のアドレスがバスマスタ１１_８を示す場合、スレーブ１３_１から出力されたレスポンスパケットは、リングバス１３５に接続されている中継回路１３１_１〜１３１_８を順番に経由してバスマスタ１１_８に送信される。
【０１３０】
なお、図１１に示すデータ処理装置４では、一例としてバスマスタ１１_０〜１１_９、中継回路１３１_０〜１３１_９、及びスレーブ１３_０〜１３_９をそれぞれ１０個備える構成を示しているが、本実施の形態では、データ処理装置１が備えるバスマスタ、中継回路、及びスレーブの数は任意に決定することができる。
【０１３１】
本実施の形態にかかるデータ処理装置１では、中継回路１３１_１には、スレーブ１３_１からのレスポンスパケットの他に、隣接する中継回路１３１_０（つまり、一つ手前の中継回路）からのレスポンスパケットが供給される。中継回路１３１_１は、隣接する中継回路１３１_０のレスポンスパケットと、直近のスレーブ１３_１のレスポンスパケットとが競合する場合、これらのレスポンスパケットを調停して、調停後のレスポンスパケットをバスマスタ１１_１または次の中継回路１３１_２に送信する。このとき、中継回路１３１_１は、各々のレスポンスパケットの優先度を用いて、各々のレスポンスパケットを調停する。
【０１３２】
本実施の形態にかかるデータ処理装置４が備える中継回路１３１_０〜１３１_９の構成は、基本的には図２〜図３に示した中継回路１２_１の構成と同様である。ただし、図２〜図４におけるバスマスタのリクエストパケットは、スレーブのレスポンスパケットに置き換わる。つまり、バスマスタのアドレス（Mst.address）、有効信号（Mst.valid）、優先度（Mst.priority）、パケット（Mst.packet）はそれぞれ、スレーブのアドレス（Slv.address）、有効信号（Slv.valid）、優先度（Slv.priority）、パケット（Slv.packet）に置き換わる。
【０１３３】
本実施の形態にかかるデータ処理装置４においても、中継回路１３１_０〜１３１_９は、スレーブのレスポンスパケットが送信先に到達するまでに通過する中継回路の数に応じてレスポンスパケットの優先度を調整する優先度調整回路（図４の優先度調整回路７３参照）を備える。例えば、優先度調整回路７３は、スレーブ１３_１のレスポンスパケットの送信先に応じてレスポンスパケットの優先度を調整する。具体的には、優先度調整回路７３は、調停回路７１においてスレーブ１３_１のレスポンスパケットが拒否された回数が所定の閾値を超えた場合に、スレーブ１１_１のレスポンスパケットの優先度（Slv.priority）が高くなるように調整する。このとき、所定の閾値は、スレーブ１３_１のレスポンスパケットが送信先に到達するまでに通過する中継回路１３１_０〜１３１_９の数が多くなるほど小さくなるように設定される。なお、優先度調整回路７３においてレスポンスパケットの優先度（Slv.priority）が調整されていない場合、優先度調整回路７３は、優先度（Mod.priority）として優先度（Slv.priority）を調停回路７１に出力する。
【０１３４】
優先度調整回路がスレーブのレスポンスパケットの送信先に応じてレスポンスパケットの優先度を調整する動作については、実施の形態１で説明した場合と同様であるので、重複した説明は省略する。本実施の形態にかかるデータ処理装置においても、スレーブがバスマスタへアクセスする際のレイテンシにばらつきが生じることを抑制することができる。
【０１３５】
例えば、実施の形態１で説明したリクエストパケットの調停において、カウンタ７８（図４参照）の値からテーブル７５で定義した閾値を差し引いた値が正のときは、この値（カウンタ値−閾値）が負け回数の許容値を超えた回数を意味している。この値が大きい場合は、リクエスト側で負け回数が多く、アクセスに時間がかかったことを意味しており、レスポンス側においてレスポンスパケットの優先度を上げる必要がある。よって、この値をリクエストパケットに付加するようにすれば、この値に応じてレスポンスパケットの優先度や閾値を設定することができ、リクエスト側のアクセス状況をレスポンス側に反映することができる。これにより、往復のアクセス時間を総合的に考慮したアクセスレイテンシの調整を実現できる。
【０１３６】
なお、データ処理装置では、バスマスタがスレーブにリクエストパケットを送信し、スレーブがバスマスタにレスポンスパケットを返すという動作を繰り返している。よって、データ処理装置は、実施の形態１で説明したデータ処理装置の構成（リクエスト側の構成）と、実施の形態５で説明したデータ処理装置の構成（レスポンス側の構成）とを併せ持つことが好ましい。
【０１３７】
ただし、データ処理装置のリクエスト側のみに優先度調整回路を設けてもよく（実施の形態１の構成）、またデータ処理装置のレスポンス側のみに優先度調整回路を設けてもよい（実施の形態５の構成）。
【０１３８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１３９】
１、２、３、４  データ処理装置
１１_０〜１１_９  バスマスタ
１２_０〜１２_９  中継回路
１３_０〜１３_９  スレーブ
１５  リングバス
２１、３１  アドレスデコーダ
２２、３２  調停部
２３、３３  バッファ回路
４１_１、５１_０  リクエストパケット
６１、７１  調停回路
６２、７２  選択回路
７３  優先度調整回路
７５  テーブル
７６  比較回路
７７  加算回路
７８  カウンタ
【図１】
2019113917.tif 000003
【図２】
2019113917.tif 000004
【図３】
2019113917.tif 000005
【図４】
2019113917.tif 000006
【図５】
2019113917.tif 000007
【図６】
2019113917.tif 000008
【図７】
2019113917.tif 000009
【図８】
2019113917.tif 000010
【図９】
2019113917.tif 000011
【図１０】
2019113917.tif 000012
【図１１】
2019113917.tif 000013