(57)【特許請求の範囲】
【請求項１】
少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置であって、
前記少なくとも１つのバスマスタは、予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を付与したパケットを出力し、
前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送し、
前記中継装置は、
前記品質要求の情報が付与されたパケットを受信する入力ポートと、
受信した前記パケットに付与された前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類以下のバッファを有するバッファ部と、
送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するバッファ割当部と、
前記バッファ部に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御する送信制御部と
を備え、前記（Ｎ＋１）種類の品質要求の種類に応じてトラヒックの送信スケジュールを制御する、中継装置。
【請求項２】
前記（Ｎ＋１）種類の品質要求は３種類であり、
前記第２のバスでは、前記バッファ部に格納されるトラヒックの品質要求の種類が２種類以下であり、
前記Ｎ種類のバッファは、品質要求の異なる２種類のトラヒックを区別する第１バッファおよび第２バッファである、請求項１に記載の中継装置。
【請求項３】
前記パケットには、前記第１のバス上で適用される品質要求の情報と、前記第２のバス上で適用される品質要求の情報とが格納されており、
前記バッファ部は、パケットを受信した前記入力ポートが接続するバスの種別と、パケットの送信先のバスの種別と、前記品質要求の種類とに基づいて定められるバッファの種類に基づいて、前記パケットを区別して格納する、請求項２に記載の中継装置。
【請求項４】
前記第１のバス上で適用される品質要求と、前記第２のバス上で適用される品質要求とが異なる、請求項３に記載の中継装置。
【請求項５】
前記パケットに格納された品質要求の情報が示す品質要求の種類に基づいて、前記バスマスタが利用する伝送経路を変更する、請求項１に記載の中継装置。
【請求項６】
前記パケットに格納された品質要求の情報に基づいて、前記パケットの品質要求の種類を判定する品質要求判定部と、
判定された前記品質要求の種類に応じて、前記パケットの伝送経路を定義したルーティングテーブルの内容を変更するルーティングテーブル変更部と
をさらに備えた、請求項５に記載の中継装置。
【請求項７】
前記品質要求判定部は、パケットの品質要求の種類が変更されたことを判定し、
前記ルーティングテーブル変更部は、送信中のパケットに関連して前記第１のバスから第２のバスへと戻るトラヒックの伝送経路を定義する、請求項６に記載の中継装置。
【請求項８】
隣接する中継装置の休止状態を制御する電源管理部をさらに備え、
前記電源管理部は、品質要求の変更に伴う伝送経路の変更に応じて、隣接する中継装置の機能のオンとオフとを制御する、請求項５に記載の中継装置。
【請求項９】
自装置の休止状態を制御する電源管理部をさらに備え、
前記電源管理部は、品質要求の変更に伴う伝送経路の変更に応じて、自装置の少なくとも一部の機能のオンとオフとを制御する、請求項５に記載の中継装置。
【請求項１０】
少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置の制御方法であって、
前記少なくとも１つのバスマスタは、優先度が予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を格納したパケットを出力し、
前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送し、
前記中継装置は、前記品質要求の情報が付与されたパケットを受信する入力ポート、および、前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類のバッファを有するバッファ部を備えており、
前記制御方法は、
送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、
前記バッファ部に格納されたパケットが、品質要求の優先度が高い順に伝送されるよう伝送経路を割り当てるステップと、
割り当てる前記ステップによって伝送経路が割り当てられた前記パケットを出力するステップと
を包含し、それにより、（Ｎ＋１）種類の品質要求の種類に応じてトラヒックの送信スケジュールを制御する、中継装置の制御方法。
【請求項１１】
少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置のシミュレーションを行うためのコンピュータプログラムであって、
前記少なくとも１つのバスマスタは、優先度が予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を格納したパケットを出力し、
前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送し、
前記コンピュータプログラムは、コンピュータに対し、
前記中継装置の入力ポートにおいて、前記Ｎ種類以下の品質要求のパケットを受信するステップと、
受信した前記パケットに付与された前記品質要求の情報に応じて、前記中継装置のＮ種類以下のバッファに、前記パケットを区別して格納するステップと、
送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、
前記バッファ部に格納されたパケットが、品質要求の優先度が高い順に伝送されるよう伝送経路を割り当てるステップと、
割り当てる前記ステップによって伝送経路が割り当てられた前記パケットを出力するステップと
を実行させる、コンピュータプログラム。
【請求項１２】
第１のバス、および第２のバスを有するバスシステムにおいて、前記第１のバス、および前記第２のバスを接続してパケットを中継する中継装置であって、
前記第１のバスには、（Ｎ＋１）種類以下の品質要求のパケットが伝送され、
前記第２のバスには、Ｎ種類以下の品質要求のパケットが伝送され、
前記（Ｎ＋１）種類以下の品質要求の情報が付与されたパケットを受信する入力ポートと、
受信した前記パケットに付与された前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類以下のバッファを有するバッファ部と、
前記品質要求の種類に応じて、前記第２のバスに配置された送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するバッファ割当部と、
前記バッファ部に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御する送信制御部と
を備えた、中継装置。
【請求項１３】
第１のバス、および第２のバスを有するバスシステムにおいて、前記第１のバス、および前記第２のバスを接続してパケットを中継する中継装置の制御方法であって、
前記第１のバスには、（Ｎ＋１）種類以下の品質要求のパケットが伝送され、
前記第２のバスには、Ｎ種類以下の品質要求のパケットが伝送され、
前記制御方法は、
前記中継装置の入力ポートにおいて、前記（Ｎ＋１）種類以下の品質要求の情報が付与されたパケットを受信するステップと、
受信した前記パケットに付与された前記品質要求の情報に応じて、Ｎ種類以下のバッファに、前記パケットを区別して格納するステップと、
前記品質要求の種類に応じて、前記第２のバスに配置された送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、
前記Ｎ種類以下のバッファに格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御するステップと
を包含する、中継方法。
【請求項１４】
第１のバス、および第２のバスを有するバスシステムにおいて、前記第１のバス、および前記第２のバスを接続してパケットを中継する中継装置のシミュレーションを行うためのコンピュータプログラムであって、
前記第１のバスには、（Ｎ＋１）種類以下の品質要求のパケットが伝送され、
前記第２のバスには、Ｎ種類以下の品質要求のパケットが伝送され、
前記コンピュータプログラムは、コンピュータに対し、
前記中継装置の入力ポートにおいて、前記（Ｎ＋１）種類以下の品質要求の情報が付与されたパケットを受信するステップと、
受信した前記パケットに付与された前記品質要求の情報に応じて、前記中継装置のＮ種類以下のバッファに、前記パケットを区別して格納するステップと、
前記品質要求の種類に応じて、前記第２のバスに配置された送信先の中継装置が有するＮ種類のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、
前記Ｎ種類以下のバッファに格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御するステップと
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型のバスを備える半導体の集積回路において伝送される複数のトラヒック毎の要求品質を保証した送信スケジューリング技術に関する。
【背景技術】
【０００２】
バスを備えた半導体集積回路におけるデータの伝送制御には種々の方式がある。図１（ａ）は、集中型のバス制御の例を示している。集中型のバス制御を行う従来の集積回路では、主に複数のバスマスタとメモリとの間は１つのバスによって接続され、アービターによって各バスマスタからメモリへのアクセスが調停される。このような構成により、複数のバスマスタとメモリとの間のトラヒック干渉を防ぎながらデータを伝送することができる。しかしながら、集積回路の高機能化およびマルチコア化による回路規模の増大、および伝送路を流れるトラヒックの変動の複雑化が進んでおり、集中型のバス制御による集積回路の設計が困難になってきている。【０００３】
その一方で、近年、並列計算機における接続技術や、ネットワーク制御技術を取り入れた分散型のバスを有する半導体集積回路の開発が進んでいる。図１（ｂ）は、そのような分散型のバス制御の例を示している。分散型のバスを有する半導体集積回路は、複数の中継装置（Ｒ）が複数のバスで接続された構成を有している。近年、図１（ｂ）に示すような分散型のバス制御を用いることにより、大規模化した集積回路内のトラヒックを、複数のバスに分散して伝送する、ネットワークオンチップ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ：ＮｏＣ）の取り組みが広がっている。【０００４】
半導体集積回路上で扱われる複数のトラヒックの品質要求は、送信元のバスマスタの種類やアプリケーション種類、トラヒックの種別や優先度によって異なる。図２は、主な集積回路上で扱われるトラヒックの種別に基づく伝送品質の種類の一例を示す。ここでは、トラヒックの種別として、（Ａ）品質保証型、（Ｂ）出来高型リアルタイムおよび（Ｃ）出来高型の３種類を挙げて説明する。
（Ａ）品質保証型のトラヒックは、遅延やスループットなどの伝送性能に対して、常に所定の品質保証が要求されるトラヒックである。例えば、電話などの音声通話やリモコンの操作など、リアルタイム性が要求される用途があげられる。
（Ｂ）出来高型リアルタイムのトラヒックは、一定の品質を保証しつつ、バスの伝送帯域に空きがあれば、送信量を増やし処理内容の品質向上を行うトラヒックである。例えば、映像再生において、各映像フレームを所定の品質でリアルタイムに描画しつつ、伝送帯域に空きがあれば符号化レートをあげて各映像フレームの画質を向上させることで、高品質な映像再生を実現する用途があげられる。
（Ｃ）出来高型トラヒックは、伝送品質に対する要求が低く、他のトラヒックが流れていない空き帯域を利用して伝送されるトラヒックである。例えば、ウェブアプリやファイル転送などの用途があげられる。【０００５】
なお、３種類のトラヒックの品質要求の各々には、品質要求の厳しい順に優先度が設定される。ここでは、品質要求が厳しい順に、（Ａ）品質保証型、（Ｂ）出来高リアルタイム、（Ｃ）出来高型の優先度が高いとする。【０００６】
このように、品質要求の異なる複数のトラヒックが存在し、また、伝送されるトラヒックの総量に対し、バスの伝送帯域が狭い場合には、（Ａ）品質保証型や（Ｂ）出来高型リアルタイムの性能保証のために、伝送系路上の各中継装置Ｒにおいて、トラヒックの品質要求の違いを区別し、品質要求の優先度に応じてトラヒックの送信スケジュールを制御する必要がある。【０００７】
なお、トラヒックの品質要求は、トラヒックの種別の違い以外の条件に基づいて区別しても良い。例えば、トラヒックの種別が全て（Ａ）品質保証型である場合には、トラヒックが宛先に届くまでの許容遅延時間（締切時間の長さ）によって要求品質を区別してもよい。または、許容遅延時間が短いトラヒックほど品質要求の厳しい（優先度の高い）トラヒックとして定義しても良い。【０００８】
図３は、従来の中継装置の構成を示している。【０００９】
従来の中継装置では、上述した３種類のトラヒックの品質要求を区別して送信スケジュールを制御するために、各中継装置には、それぞれ（Ａ）品質保証型のトラヒック専用のバッファ、（Ｂ）出来高型リアルタイムのトラヒック専用のバッファ、（Ｃ）出来高型のトラヒック専用のバッファを用意する。中継装置Ｒ、に届いたトラヒック（のパケット）は、いったん、それぞれ専用のバッファに区別して格納される。【００１０】
たとえば特許文献１は、このような従来の中継装置を開示する。具体的には、特許文献１では、各中継装置には品質要求の異なるトラヒックの種類に応じた専用のバッファが用意されている。各専用バッファは、各々に対応する品質要求のトラヒックのパケットを格納する。中継装置は、各トラヒックの品質要求の優先度に応じてパケットの送信スケジュールを制御し、決定された送信スケジュールにしたがって各専用バッファからパケットを出力する。【００１１】
さらに、中継装置のアービターは品質要求の大きいバッファから優先的にバッファと出力ポートとを接続する。これにより、各トラヒックの品質要求の程度の大きさに応じた送信スケジュールの制御を実現している。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００４−５６３２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述した従来の技術では、バッファの設置面積という制約を考慮しつつ、各トラヒックの送信スケジュールを制御することが求められていた。【００１４】
本願の、限定的ではない例示的なある実施形態は、品質要求毎にトラヒックを格納する専用バッファを必要としない中継装置を提供する。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明の一態様は、少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置である。前記少なくとも１つのバスマスタは、予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を付与したパケットを出力する。前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送する。中継装置は、前記品質要求の情報が付与されたパケットを受信する入力ポートと、受信した前記パケットに付与された前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類以下のバッファを有するバッファ部と、送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するバッファ割当部と、前記バッファ部に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御する送信制御部とを備え、前記（Ｎ＋１）種類の品質要求の種類に応じてトラヒックの送信スケジュールを制御する。【００１６】
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
【発明の効果】
【００１７】
本発明の一態様にかかる中継装置によれば、半導体集積回路において品質要求の異なるトラヒックを伝送する際に、中継装置内のバッファの増加を抑制しつつ、トラヒック毎の品質要求を保証した送信スケジュールの制御ができる。バッファの増加を抑制できるため、集積回路の実装面積を有効に削減できる。
【図面の簡単な説明】
【００１８】
【図１】（ａ）は集中型のバス制御の例を示し、（ｂ）は分散型のバス制御の例を示す図である。
【図２】主な集積回路上で扱われるトラヒックの主な伝送品質の種類を示す図である。
【図３】従来の中継装置の構成を示す図である。
【図４】分散型バスで接続された半導体集積回路のネットワーク構成を示す図である。
【図５】品質要求の異なる３種類のバスマスタ（ＢＭ）を４個の中継装置と１個のゲートウェイから構成されるローカルバスを介して、基幹バスへと接続している構成を示す図である。
【図６】品質要求の異なるトラヒックが、ローカルバスと基幹バスのそれぞれで取得する伝送帯域を示す図である。
【図７】実施形態１による中継装置７００の構成を示す図である。
【図８】バス種別比較部７０９が管理する情報の一例を示す図である。
【図９】中継装置７００が、受信したパケットを隣接する中継装置（又はゲートウェイＧＷ）に送信するまでの一連の動作を説明する図である。
【図１０】実施形態１におけるパケット９００とフリットとの関係を示す図である。
【図１１】（Ａ）および（Ｂ）は、ルーティングテーブルの一例を示す図である。
【図１２】スイッチ割当部７１３により、複数のバッファの中から出力ポート７０４と接続するバッファを決定する動作を説明する図である。
【図１３】中継装置Ｒを通過するトラヒックの品質要求の種類が３種類となる接続構成例を示す図である。
【図１４】図１３の構成において、ローカルバスと基幹バスでの格納バッファの種類の相違を示す図である。
【図１５】中継装置Ｒを通過するトラヒックの品質要求の種類が２種類となる接続構成例を示す図である。
【図１６】図１５の構成における、ローカルバスと基幹バスでの格納バッファの種類の相違を示す図である。
【図１７】（Ａ）および（Ｂ）は、実施形態２の概要を説明する図である。
【図１８】実施形態２における中継装置８００およびゲートウェイ７０２の構成を示す図である。
【図１９】実施形態２における中継装置８００（またはゲートウェイ７０２）の動作を説明するフローチャートである。
【図２０】実施形態２における中継装置Ｒ４（図１７）で利用されるルーティングテーブルを示す図である。
【図２１】（Ａ）および（Ｂ）は、品質要求の変更により、バスマスタから基幹バスへのトラヒックの伝送経路が変更した際に、基幹バスからバスマスタに戻るトラヒックの伝送経路を変更にかかる処理時間を短縮する方法を示す図である。
【図２２】基幹バスからバスマスタへの戻りの伝送経路の変更を含む、中継装置７００の動作を説明する図である。
【図２３】（Ａ）および（Ｂ）は、品質要求の変更により、伝送経路を変化させた場合の電源の管理方法を示す図である。
【図２４】中継装置８００の電源の管理動作を説明する図である。
【図２５】休止状態管理部１５０３の動作を説明する図である。
【図２６】実施形態の変形例にかかる中継装置８０１の構成を示す図である。
【図２７】本発明の適用例を示す図である。
【図２８】（Ａ）〜（Ｄ）は、ローカルバスのトポロジーの例を示す図である。
【図２９】品質要求決定部７１０が保持する品質要求決定規則２９０１ａの一例を示す図である。
【図３０】図５に示した構成において、中継装置Ｒ１と中継装置Ｒ３を、１つの中継装置Ｒ４に集約した構成例を示す図である。
【図３１】図３０のゲートウェイＧＷの品質要求決定規則３１０１の一例を示す図である。
【図３２】他の半導体集積回路のバスシステムの例を示す図である。
【発明を実施するための形態】
【００１９】
本願発明者らは、従来の中継装置の問題を考察した。
【００２０】
すなわち、従来の中継装置には、品質要求の違いに応じてトラヒック毎の送信スケジュール制御を行うために、品質要求の異なるトラヒックの種類に応じた専用のバッファを設けていた。しかしながら、品質要求の種類だけバッファを用意すると、中継装置内のバッファ面積がバッファの種類に応じて増大する。このような構成を、たとえば同じネットワーク上のゲートウェイに適用した場合にも同様である。
【００２１】
半導体集積回路上では、実装コストの削減のために、中継装置やゲートウェイ内のバッファ面積を小さくすることが求められる。このため並列計算機やＡＴＭ交換機、インターネットなどで利用される中継装置と比べ、半導体集積回路上の中継装置では、利用可能なバッファ量の制約が大きく、従来技術をそのまま利用することが難しい。
【００２２】
また、仕様変更によりトラヒックの品質要求の定義が変更になった場合には、その都度、半導体集積回路上の中継装置やゲートウェイのバッファ構成の再設計が必要になる。その面積も変わるため中継装置やゲートウェイを集積回路上での配置についても再設計が必要となる。
【００２３】
このように、半導体集積回路上の中継装置ＲやゲートウェイＧＷでは、バッファの面積を増やすことなく、トラヒック毎の品質要求に応じた送信スケジュール制御が必要である。イーサネット（登録商標）規格に準拠してデータが伝送されるような一般的なネットワークでは、バッファの面積増加はある程度許容される。しかしながら、半導体集積回路上の中継装置等においてそのようなバッファの面積増加を許容することは現状では困難である。
【００２４】
本発明の一態様の概要は以下のとおりである。
【００２５】
本発明の一態様である中継装置は、少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置であって、前記少なくとも１つのバスマスタは、予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を付与したパケットを出力し、前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送し、前記中継装置は、前記品質要求の情報が付与されたパケットを受信する入力ポートと、受信した前記パケットに付与された前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類以下のバッファを有するバッファ部と、送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するバッファ割当部と、前記バッファ部に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御する送信制御部とを備え、前記（Ｎ＋１）種類の品質要求の種類に応じてトラヒックの送信スケジュールを制御する。
【００２６】
ある実施形態において、前記（Ｎ＋１）種類の品質要求は３種類であり、前記第２のバスでは、前記バッファ部に格納されるトラヒックの品質要求の種類が２種類以下であり、前記Ｎ種類のバッファは、品質要求の異なる２種類のトラヒックを区別する第１バッファおよび第２バッファである。
【００２７】
ある実施形態において、前記パケットには、前記第１のバス上で適用される品質要求の情報と、前記第２のバス上で適用される品質要求の情報とが格納されており、前記バッファ部は、パケットを受信した前記入力ポートが接続するバスの種別と、パケットの送信先のバスの種別と、前記品質要求の種類とに基づいて定められるバッファの種類に基づいて、前記パケットを区別して格納する。
【００２８】
ある実施形態において、前記第１のバス上で適用される品質要求と、前記第２のバス上で適用される品質要求とが異なっている。
【００２９】
ある実施形態において、前記パケットに格納された品質要求の情報が示す品質要求の種類に基づいて、前記バスマスタが利用する伝送経路を変更する。
【００３０】
ある実施形態において、前記中継装置は、前記パケットに格納された品質要求の情報に基づいて、前記パケットの品質要求の種類を判定する品質要求判定部と、判定された前記品質要求の種類に応じて、前記パケットの伝送経路を定義したルーティングテーブルの内容を変更するルーティングテーブル変更部とをさらに備えている。
【００３１】
ある実施形態において、前記品質要求判定部は、パケットの品質要求の種類が変更されたことを判定し、前記ルーティングテーブル変更部は、送信中のパケットに関連して前記第１のバスから第２のバスへと戻るトラヒックの伝送経路を定義する。
【００３２】
ある実施形態において、前記中継装置は、隣接する中継装置の休止状態を制御する電源管理部をさらに備え、前記電源管理部は、品質要求の変更に伴う伝送経路の変更に応じて、隣接する中継装置の機能のオンとオフとを制御する。
【００３３】
ある実施形態において、前記中継装置は、自装置の休止状態を制御する電源管理部をさらに備え、前記電源管理部は、品質要求の変更に伴う伝送経路の変更に応じて、自装置の少なくとも一部の機能のオンとオフとを制御する。
【００３４】
本発明のある一態様である中継装置の制御方法は、少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置の制御方法であって、前記少なくとも１つのバスマスタは、優先度が予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を格納したパケットを出力し、前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送し、前記中継装置は、前記品質要求の情報が付与されたパケットを受信する入力ポート、および、前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類のバッファを有するバッファ部を備えており、前記制御方法は、送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、前記バッファ部に格納されたパケットが、品質要求の優先度が高い順に伝送されるよう伝送経路を割り当てるステップと、割り当てる前記ステップによって伝送経路が割り当てられた前記パケットを出力するステップとを包含し、それにより、（Ｎ＋１）種類の品質要求の種類に応じてトラヒックの送信スケジュールを制御する。
【００３５】
本発明のある一態様であるコンピュータプログラムは、少なくとも１つのバスマスタ、第１のバス、および前記少なくとも１つのバスマスタと前記第１のバスとを接続する第２のバスを有するバスシステムにおいて、前記第２のバスに配置されてパケットを中継する中継装置のシミュレーションを行うためのコンピュータプログラムであって、前記少なくとも１つのバスマスタは、優先度が予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を格納したパケットを出力し、前記第２のバスは、Ｎ種類以下の品質要求のパケットを伝送し、前記コンピュータプログラムは、コンピュータに対し、前記中継装置の入力ポートにおいて、前記Ｎ種類以下の品質要求のパケットを受信するステップと、受信した前記パケットに付与された前記品質要求の情報に応じて、前記中継装置のＮ種類以下のバッファに、前記パケットを区別して格納するステップと、送信先の中継装置においてバスの種別が変化する場合において、前記品質要求の種類に応じて、前記送信先の中継装置が有するＮ種類のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、前記バッファ部に格納されたパケットが、品質要求の優先度が高い順に伝送されるよう伝送経路を割り当てるステップと、割り当てる前記ステップによって伝送経路が割り当てられた前記パケットを出力するステップとを実行させる。
【００３６】
本発明のさらに他の一態様である中継装置は、第１のバス、および第２のバスを有するバスシステムにおいて、前記第１のバス、および前記第２のバスを接続してパケットを中継する中継装置であって、前記第１のバスには、（Ｎ＋１）種類以下の品質要求のパケットが伝送され、前記第２のバスには、Ｎ種類以下の品質要求のパケットが伝送され、前記（Ｎ＋１）種類以下の品質要求の情報が付与されたパケットを受信する入力ポートと、受信した前記パケットに付与された前記品質要求の情報に応じて、パケットを区別して格納するためのＮ種類以下のバッファを有するバッファ部と、前記品質要求の種類に応じて、前記第２のバスに配置された送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するバッファ割当部と、前記バッファ部に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御する送信制御部とを備えている。
【００３７】
本発明のさらに他の一態様である中継装置の制御方法は、第１のバス、および第２のバスを有するバスシステムにおいて、前記第１のバス、および前記第２のバスを接続してパケットを中継する中継装置の制御方法であって、前記第１のバスには、（Ｎ＋１）種類以下の品質要求のパケットが伝送され、前記第２のバスには、Ｎ種類以下の品質要求のパケットが伝送され、前記制御方法は、前記中継装置の入力ポートにおいて、前記（Ｎ＋１）種類以下の品質要求の情報が付与されたパケットを受信するステップと、受信した前記パケットに付与された前記品質要求の情報に応じて、Ｎ種類以下のバッファに、前記パケットを区別して格納するステップと、前記品質要求の種類に応じて、前記第２のバスに配置された送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、前記Ｎ種類以下のバッファに格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御するステップとを包含する。
【００３８】
本発明のさらに他の一態様であるコンピュータプログラムは、第１のバス、および第２のバスを有するバスシステムにおいて、前記第１のバス、および前記第２のバスを接続してパケットを中継する中継装置のシミュレーションを行うためのコンピュータプログラムであって、前記第１のバスには、（Ｎ＋１）種類以下の品質要求のパケットが伝送され、前記第２のバスには、Ｎ種類以下の品質要求のパケットが伝送され、前記コンピュータプログラムは、コンピュータに対し、前記中継装置の入力ポートにおいて、前記（Ｎ＋１）種類以下の品質要求の情報が付与されたパケットを受信するステップと、受信した前記パケットに付与された前記品質要求の情報に応じて、前記中継装置のＮ種類以下のバッファに、前記パケットを区別して格納するステップと、前記品質要求の種類に応じて、前記第２のバスに配置された送信先の中継装置が有するＮ種類のバッファのうち、どの種類のバッファに前記パケットを格納させるかを決定するステップと、前記Ｎ種類以下のバッファに格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、前記パケットの送信を制御するステップとを実行させる。
【００３９】
以下、添付の図面を参照しながら、本発明による中継装置および、中継装置をチップ上に実装するための設計及び検証を行うシミュレーションプログラムの実施形態を説明する。
【００４０】
図４は、本発明で対象とする分散型バスで接続された半導体集積回路のネットワーク構成である。このようなネットワークを半導体集積回路のバスシステムと呼ぶこともある。
【００４１】
なお、図面では、バスマスタがローカルバスを構成する要素として記載されているが、バスマスタは必ずしも構成要素に含めなくてもよい。すなわち、バスマスタとゲートウェイＧＷとを接続する伝送経路が「ローカルバス」であるとしてもよい。以下の図面ではバスマスタと中継装置とが１つのローカルバスに含められている例と、含められていない例とが記載されている。たとえば、複数のローカルバスが基幹バスに接続されている場合には、便宜的に、バスマスタも含めたローカルバスを１つのまとまりとして記載している。これは記載の便宜のためであり、バスマスタが当該ローカルバスに含められなくてもよい。
【００４２】
トラヒック量の増加や回路規模の増大に対し、集積回路上全体のバスの伝送帯域を一様に広げた場合、バスの省電力の増加や、配置配線が複雑化を引き起こす。このため、本発明で対象とする集積回路のバスでは、複数のトラヒックが集中する第１のバス（以下、「基幹バス」という。）に対しては伝送帯域の広いバスを配線し、基幹バスから各バスマスタへは伝送帯域の狭い第２のバス（以下、「ローカルバス」という。）を介して接続する構成をとる。
【００４３】
このように、集積回路内で伝送帯域の広いバスの範囲を限定することで、消費電力の増加の抑制や、バス配線の複雑化を解消する。
【００４４】
ローカルバスは、基幹バスに対して複数存在してもよく、ローカルバスを構成する中継装置の数や接続を変えることで、用途に応じた配置が可能である。
【００４５】
基幹バスとローカルバスの間でのトラヒックのやり取りは、ゲートウェイにより行う。ゲートウェイは、ローカルネットワーク内の中継装置と同じ機能に加え、伝送帯域の異なるバス間でトラヒックの伝送を行う。
【００４６】
基幹バスとローカルバスとの間の伝送帯域は、ゲートウェイの数を増やすことで増加できる。
【００４７】
図５は、品質要求の異なる３種類のバスマスタ（ＢＭ）を４個の中継装置と１個のゲートウェイから構成されるローカルバスを介して、基幹バスへと接続している構成を示す。
【００４８】
まず品質要求について説明する。この例では、トラヒックの種別の違いに基づいて（Ａ）品質保証型、（Ｂ）出来高型リアルタイム、および（Ｃ）出来高型の３種類の品質要求を想定している。相互の優先度の関係は、品質要求が厳しいトラヒックの種別から優先度が高く設定されており、本実施例では（Ａ）品質保証型、（Ｂ）出来高型リアルタイム、（Ｃ）出来高型の順に優先度が高く設定されている。なお、これらの優先度は、半導体集積回路ネットワークまたはＮｏＣの設計段階で予め分かっている。
【００４９】
各中継装置、およびゲートウェイ内のバッファの種類を増やすことなく、品質要求に応じたトラヒック伝送を実現するために、本実施形態では、各中継装置Ｒを通過するトラヒックの品質要求の種類が２種類以下となるように、（１）同じゲートウェイＧＷを利用するバスマスタを複数のローカルバスに所属するものとして分類する。
【００５０】
また、（２）中継装置Ｒ、及びゲートウェイＧＷのバッファの種類を相対的に品質要求の高いパケットを格納するＨｉバッファと、品質要求の低いパケットを格納するＬｏバッファの２種類に限定し、中継装置Ｒのバッファ面積の増加を抑制する。さらに、分類されたローカルバスと基幹バスとの間でトラヒックを伝送する際に（３）品質要求の種類に応じてパケットを格納するバッファの種類を変更する。
【００５１】
具体的に図５では、中継装置Ｒ０とＲ１から構成されるローカルバス１と、中継装置Ｒ２とＲ３から構成されるローカルバス２に分類する。
【００５２】
これにより、ローカルバス１では（Ａ）品質保証型のトラヒックと（Ｂ）出来高型リアルタイムのトラヒックのみが伝送され、ローカルバス２では（Ａ）品質保証型のトラヒックと（Ｃ）出来高型のトラヒックのみが伝送される。
【００５３】
ローカルバス１において（Ａ）品質保証型のトラヒックは、Ｈｉバッファを利用して伝送し、（Ｂ）出来高リアルタイムのトラヒックはＬｏバッファを利用して伝送する。また、ローカルバス２において（Ａ）品質保証型のトラヒックはＨｉバッファを利用して伝送し、（Ｃ）出来高型のトラヒックはＬｏバッファを利用して伝送する。
【００５４】
各中継装置Ｒ、及びゲートウェイＧＷにおける送信スケジュールの制御は、常にＨｉバッファ内にパケットが存在する場合には、Ｈｉバッファ内のパケットが先に送信される。Ｈｉバッファ内が空の状態で、Ｌｏバッファ内にパケットが存在する場合には、Ｌｏバッファ内のパケットが送信される。
【００５５】
このため、ローカルバス１、ローカルバス２において、Ｈｉバッファを利用して伝送される（Ａ）品質保証型のトラヒックは、常に最優先で伝送され品質保証がなされる。
【００５６】
次に（Ｂ）出来高型リアルタイムのトラヒックは、低速のローカルバス１においては、（Ａ）品質保証型トラヒックの要求品質保証を優先させるために、Ｌｏバッファを利用して伝送する。
【００５７】
一方、基幹バスでは、（Ｂ）出来高型リアルタイムのトラヒックを（Ｃ）出来高型のトラヒックより優先して伝送するために、格納するバッファをＨｉバッファに変更し、伝送を行う。
【００５８】
（Ｃ）出来高型のトラヒックについては、品質要求がないため、ローカルバス２、及び基幹バスの両方においてＬｏバッファを利用して伝送する。
【００５９】
品質要求の種類に応じてパケットを格納するバッファの種類を変更する処理は、ローカルバス１から基幹バスへ送信されるトラヒックに関しては中継装置Ｒ１によって行われる。ローカルバス２から基幹バスへ送信されるトラヒックに関しては中継装置Ｒ３によって行われる。
【００６０】
ローカルバスから基幹バスへ送信されるトラヒックに注目すると、本実施形態では、ローカルバス側の３種類のバッファから、基幹バス側の２種類のバッファへの変更が行われる。
【００６１】
一方、基幹バスからローカルバス１およびローカルバス２に送信されるトラヒックに関しては、バッファの種類の変更はゲートウェイＧＷによって行われる。基幹バスからローカルバスへ送信されるトラヒックを格納するバッファは、基幹バス側の２種類のバッファから、ローカルバス全体（ローカルバス１とローカルバス２）で３種類のバッファ（品質保証型、出来高リアルタイム、出来高型）へ変更される。
【００６２】
このように、ローカルバスと基幹バスの間では、トラヒックが流れる向きによって、送信先でトラヒックを格納するバッファの種類に違いが発生する。
【００６３】
図６は、品質要求の異なるトラヒックが、ローカルバスと基幹バスのそれぞれで取得する伝送帯域を示す。
【００６４】
伝送帯域が少ないローカルバス１、ローカルバス２では、Ｈｉバッファを利用して伝送される（Ａ）品質保証型のトラヒックが必要な伝送帯域を取得する。
【００６５】
トラヒックの送信量の調整が可能な（Ｂ）出来高型リアルタイムのトラヒックと（Ｃ）出来高型のトラヒックは、Ｌｏバッファを利用して伝送することで空き帯域の大きさに応じた伝送が行われる。
【００６６】
（Ｂ）出来高型リアルタイムのトラヒックと（Ｃ）出来高型のトラヒックが合流する基幹バスでは、（Ｂ）出来高型リアルタイムのトラヒックを（Ｃ）出来高型のトラヒックよりも優先して伝送するために、（Ａ）品質保証型のトラヒックと一緒に、（Ｂ）出来高型リアルタイムのトラヒックを、Ｈｉバッファを利用して伝送する。
【００６７】
なお、基幹バスの伝送帯域の大きさは、（Ａ）品質保証型のトラヒックと（Ｂ）出来高リアルタイムのトラヒックの取得帯域よりも、十分に大きい伝送帯域が事前に設計されているものとする。
【００６８】
このように、中継装置Ｒ、及びゲートウェイＧＷ内のバッファの種類を２種類に限定し、さらに、トラヒックの要求品質の種類と、伝送経路上でのバスの伝送帯域の変化に応じて格納するバッファの種類を変更することで、３種類の要求品質を区別したトラヒック伝送が可能となる。
【００６９】
なお、トラヒックの種類数は一例である。本開示は、たとえば以下のように一般化することが可能である。すなわちバスマスタが、予め定められた（Ｎ＋１）種類の品質要求のうちの少なくとも１種類の品質要求の情報を付与したパケットをローカルバスに出力し、ローカルバスがＮ種類以下の品質要求のパケットを伝送する。バスマスタは、特定の種類の品質要求のパケットのみを出力してもよいし、品質要求の種類を動的に変更してもよい。
【００７０】
ローカルバスに配置される中継装置は、品質要求の情報が付与されたパケットを受信する入力ポートと、受信したパケットに付与された品質要求の情報に応じて、パケットを区別して格納するためのＮ種類以下のバッファを有するバッファ部と、送信先の中継装置において、品質要求の種類に応じて、送信先の中継装置が有するＮ種類以下のバッファのうち、どの種類のバッファにパケットを格納させるかを決定するバッファ割当部と、バッファ部に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、パケットの送信を制御する送信制御部とを備えている。（Ｎ＋１）種類の品質要求の種類に応じてトラヒックの送信スケジュールを制御する。
【００７１】
以下、中継装置の具体的な構成および動作を説明する。
【００７２】
（実施形態１）
図７は、実施形態１による中継装置７００の構成を示す図である。図７には、トラヒックを送受信するバスマスタ７０１、中継装置７００に隣接する他の中継装置７００ａ、および、ローカルバスと基幹バスとを接続するゲートウェイ７０２も記載されている。
【００７３】
中継装置７００は、入力ポート７０３と、出力ポート７０４と、バッファ部７０５と、ルーティング処理部７０８と、バス種別比較部７０９と、品質要求決定部７１０と、バッファ割当部７１１と、送信制御部７１５とを備えている。
【００７４】
入力ポート７０３は、隣接する中継装置７０１ａやバスマスタ７０１から送信されたパケットを受信する。
【００７５】
出力ポート７０４は、中継装置７００から隣接する中継装置、又はゲートウェイ７０２に対してパケットを送信する。
【００７６】
バッファ部７０５は、入力ポート７０３で受信したパケットを格納する。バッファ部７０５は、品質要求の異なるパケットを区別して格納するために、入力ポート７０３毎に、Ｈｉバッファ７０６とＬｏバッファ７０７をそれぞれ１つ以上備える。
【００７７】
ルーティング処理部７０８は、バッファ部７０５に格納された各パケットに対し、パケット記載された送信先のアドレス情報に基づいて、パケットを送信するための出力ポート７０４を選択する。
【００７８】
バス種別比較部７０９は、入力ポート７０３側のバスの種別に対し、ルーティング処理部７０８で選択された出力ポート７０４側のバスの種別が同じかどうかを判定する。各入力ポート、及び出力ポートが接続するバスの種別については設計時に決定されている。バス種別比較部７０９は各入力ポート、及び出力ポートが接続するバスの種別の対応関係の情報を保持している。
【００７９】
図８は、バス種別比較部７０９が管理する情報の一例を示す。図８では入力ポート０、入力ポート１、及び出力ポート０はローカルバスと接続され、出力ポート１は基幹バスと接続されていることを示している。
【００８０】
なお、「出力ポート１は基幹バスと接続されている」という表現は、出力ポート１が基幹バスと直接接続されていることのみを意味しない。図７に示すように、出力ポート１がゲートウェイ７０２に至る経路と接続され、そのゲートウェイ７０２が基幹バスに接続されている場合にも、「出力ポート１は基幹バスと接続されている」ということができる。
【００８１】
品質要求決定部７１０は、出力ポート側のバスの種別と、パケットの品質用要求の種類の組合せ対し、送信先の中継装置７００（またはゲートウェイ７０２）で格納するためのバッファの種類を定義した品質要求決定規則２９０１を備えている。バス種別比較部７０９で入力ポート７０３側のバスの種別と、出力ポート７０４側のバスの種別との間に差異があると判定した場合、品質要求決定部７１０は以下の処理を行う。すなわち、品質要求決定部７１０は、品質要求決定規則２９０１を参照し、これから送信を行うパケットの品質要求の種類と出力ポート先のバスの種別の組み合わせに基づき、これから送信するパケットを格納するための、送信先の中継装置７００（またはゲートウェイ７０２）におけるバッファの種類（Ｈｉバッファ７０６又はＬｏバッファ７０７）を再決定する。
【００８２】
バッファ割当部７１１は、送信先のゲートウェイ７０２（又は中継装置）において、品質要求決定部７１０で決定された種類のバッファ（Ｈｉバッファ、またはＬｏバッファ）に空きがあれば、その１つをこれから送信するパケットの格納用のバッファとして割り当てる。
【００８３】
送信制御部７１５は、バッファ部７０５に格納されたパケットに対し、品質要求が高い順に伝送されるよう、送信スケジューリングを行い、パケットの送信を制御する。送信制御部７１５は、クロスバスイッチ７１２と、スイッチ割当部７１３とを備えている。
【００８４】
クロスバスイッチ７１２は、複数のバッファ（Ｈｉバッファ７０６とＬｏバッファ７０７）を備えたバッファ部７０５と出力ポートの接続を切り替えるスイッチである。
【００８５】
スイッチ割当部７１３は、クロスバスイッチ７１２を切り替えることで、バッファ部７０５と出力ポート７０４との接続を変更し、バッファ部７０５の各バッファに格納されたパケットの送信スケジュール制御を行う。
【００８６】
図９は、中継装置７００が、受信したパケットを隣接する中継装置（又はゲートウェイＧＷ）に送信するまでの一連の動作を説明する図である。
【００８７】
ステップ８０１において、中継装置７００は、隣接する中継装置７０１ａ、またはバスマスタ７０１からパケットを入力ポート７０３で受信する。
【００８８】
本実施形態では、中継装置７００に対して伝送されるパケットは、バスクロックが１サイクル進む間に１度に伝送可能なデータサイズであるフリット単位に分割して伝送される。
【００８９】
実施形態１におけるパケット９００とフリットとの関係を、図１０を用いて説明する。パケット９００には、パケット自体を送信先まで届けるために必要な制御情報９０１と、送信するデータ９０２、そしてパケットが終端を示す終了コード９０３が記載される。
【００９０】
パケット９００は、バスマスタ７０１から送信される際に、複数のフリットに分割され、１フリットずつ順番に伝送される。分割された複数のフリットのうち、先頭のフリットであるヘッダフリット９０４には制御情報９０１が記録される。それに続くデータフリット９０５には、データの中身９０２が記載され、最後尾のフリットであるテイルフリット９０６には、終了コード９０３が記載される。
【００９１】
制御情報９０１としては、パケットの送信先アドレス、送信元のアドレス、トラヒックの品質要求の種類などが記載される。
【００９２】
本実施形態では、ヘッダフリット９０４には、品質要求の種類を示す情報として、２ビットの情報が付与されており、品質要求の種類が（Ａ）品質保証型の場合は「１１」、（Ｂ）出来高型リアルタイムの場合は「０１」、（Ｃ）出来高型の場合は「００」と記載される。
【００９３】
図１０には、理解を容易にする目的で、上記（Ａ）〜（Ｃ）の各値が並べて記載されている。実際には、上述の通り品質要求の種類に応じて「１１」、「０１」、「００」のいずれかが記載されることに留意されたい。
【００９４】
ステップ８０２（図９）において、入力ポート７０３は、送信元の中継装置７０１ａ、又はバスマスタ７０１で既に決定されているバッファにパケットを格納する。
【００９５】
中継装置７００のバッファ部７０５のいずれかパケットが格納されると、ルーティング処理部７０８は、バッファ部７０５に格納されたパケットのヘッダフリットに記載された、パケットの送信先アドレスを参照し、パケットを送信する出力ポート７０４を選択する。
【００９６】
ルーティング処理部７０８での具体的な出力ポートの選択方法としては、パケットの送信先アドレスと出力ポートの関係を１対１で対応づけたルーティングテーブルを予め中継装置毎に定義し、これから送信するパケットの送信先アドレスに対応した出力ポートをルーティングテーブルから取得する。
【００９７】
図１１はルーティングテーブルの一例を示す。
【００９８】
図１１（Ａ）では、パケットの送信先のアドレスが３ビットで表現され、３ビットで表現される８種類の全てのアドレスに対して、出力ポートを１対１で定義したルーティングテーブルである。
【００９９】
図１１（Ａ）のルーティング処理部７０８は、パケットの送信先のアドレスが０００、００１、０１０、０１１の場合は出力ポート０を選択し、パケットの送信先のアドレスが１００、１０１、１１０、１１１の場合には出力ポート１を選択する。
【０１００】
また、図１１（Ａ）以外にも、図１１（Ｂ）のように、ルーティングテーブルのサイズを小さくするために、送信先のアドレスの一番左の値のみに基づき出力ポートを定義するルーティングテーブルを用いるなど、送信先のアドレスと出力ポートを一意に決定できる方法であればよい。
【０１０１】
パケットを出力する出力ポート７０４が決定されると、ステップ８０４（図９）において、中継装置７００のバス種別比較部７０９は、ステップ８０３で決定された出力ポート７０４側のバスの種別と、入力ポート７０３側のバスの種別が異なるかどうかを判定する。なお、各入力ポート、及び出力ポートが接続するバスの種別は、設計時に決定され、図８に示すように各入力ポート、出力ポートの種別が定義されている。
【０１０２】
バスの種別が同じ場合は８０６に移る。バスの種別が異なる場合には、ステップ８０５に移る。
【０１０３】
ステップ８０５において、品質要求決定部７１０は、パケットの品質要求の種類と、出力ポート７０４先でのバスの伝送帯域の大きさに基づいて、これから送信するパケットを、出力ポート７０４先の中継装置（またはゲートウェイ）で格納するバッファの種類（Ｈｉバッファ、またはＬｏバッファ）を決定する。
【０１０４】
図２９は、品質要求決定部７１０が保持する品質要求決定規則２９０１ａの一例を示す。品質要求決定規則２９０１ａは、出力ポート側のバスの種別と、パケットの品質要求の種類（ヘッダフリットに記載の品質要求）の組合せに対し、送信先の中継装置での格納バッファの種類を定義する。
【０１０５】
図２９では、出力ポート側のバスの種別が基幹バスの場合、送信先の中継装置での格納バッファとして、ヘッダフリットに記載された品質要求の種類を示す２ビットの数字のうち左側の１ビットの数字が「１」となるパケットにはＨｉバッファが定義され、左側の１ビットの数字が「０」となるパケットにはＬｏバッファが定義される。
【０１０６】
また、出力ポート側のバスの種別がローカルバスの場合、送信先の中継装置での格納バッファとして、ヘッダフリットに記載された品質要求の種類を示す２ビットの数字のうち右側の１ビットの数字が「１」となるパケットにはＨｉバッファが定義され、右側の１ビットの数字が「０」となるパケットにはＬｏバッファが定義される。
【０１０７】
本実施形態では、品質要求決定部７１０は、出力ポート先のバスがローカルバスの場合には、図１０のヘッダフリットに記載されている品質要求左側の１ビットの値を参照し、値が「１」であれば格納バッファの種類をＨｉバッファに決定し、「０」であればＬｏバッファに決定する。
【０１０８】
また、出力ポート先のバスが基幹バスの場合は、図１０のヘッダフリットに記載されている品質要求の右側１ビットの値を参照し、値が「１」であれば格納バッファの種類をＨｉバッファに決定し、「０」であればＬｏバッファに決定する。
【０１０９】
このため、出力ポート７０４先がローカルバスの場合、（Ａ）品質保証型のトラヒックの格納バッファはＨｉバッファと決定され、（Ｂ）出来高型リアルタイムのトラヒックと（Ｃ）出来高型トラヒックの格納バッファはＬｏバッファ決定される。一方、出力ポート７０４先が基幹バスの場合は、（Ａ）品質保証型のトラヒックと（Ｂ）出来高型リアルタイムのトラヒックの格納バッファはＨｉバッファと決定され、（Ｃ）出来高型トラヒックの格納バッファはＬｏバッファ決定される。
【０１１０】
これから送信するパケットを出力ポート先の中継装置（またはゲートウェイ）で格納するバッファの種類が決定すると、ステップ８０６において、バッファ割当部７１１は、これから送信するパケットを出力ポート先の中継装置（またはゲートウェイ）で格納する空きバッファを１つ選択する。空きがない場合には、バッファ割当部７１１は、出力ポート先の中継装置で、バッファに空きができるまでステップ８０６を繰り返す。
【０１１１】
なお、図２９は、品質要求決定規則の一例であり、これ以外の定義を用いても良い。例えば、出力ポート側のバスの種別（ローカルバス１、ローカルバス２、基幹バス）と、パケットの品質要求の種類（品質保証型、出来高リアルタイム、出来高型）の組み合わせに対し、送信先の中継装置での格納バッファの種類を定義した規則を用いても良い。
【０１１２】
また、図１０では、ヘッダフリットに記載される品質要求は、予めローカルバス用の品質要求と基幹バス用の品質要求が設定されている例を説明した。しかしながら、異なる種類のバスに送信する毎に、中継装置でヘッダフリットに記載される品質要求の値を動的に変更してもよい。例えば図５のバスマスタ１に注目する。バスマスタ１の品質要求は「出来高リアルタイム」である。そのため、ローカルバス１では、Ｌｏバッファを利用するために、ヘッダフリットの品質要求の値を「０」に変更する。一方、基幹バスに送信する際には、Ｈｉバッファを利用するために、ヘッダフリットの品質要求の値を「１」に変更する。
【０１１３】
出力ポート先での格納バッファが決定すると、ステップ８０７において、スイッチ割当部７１３は、バッファ部７０５の複数のバッファの中から、出力ポート７０４と接続させるバッファを決定し、パケットの送信スケジュールを制御する。
【０１１４】
図１２は、スイッチ割当部７１３により、複数のバッファの中から出力ポート７０４と接続するバッファを決定する動作を説明する図である。
【０１１５】
ステップ１１０１において、Ｈｉバッファ内に、既に出力ポート先の格納バッファが決まっているパケットがあれば、ステップ１１０２に進みＨｉバッファと出力ポートを接続する。
【０１１６】
中継装置内に既に出力ポート先の格納バッファが決まっているＨｉバッファが複数存在する場合は、そのうちの１つを選択し、出力ポートとの接続を行う。複数のＨｉバッファから１つを選択する方法として、例えば、パケットの送信時刻を制御情報としてパケットに記載し、送信時刻が古いパケットを格納するＨＩバッファから順番に出力ポートを接続してもよい。これによりパケットが送信された順序を維持しつつ送信先まで伝送が可能となる。
【０１１７】
また、送信時刻の代わりに、パケットと送信先に到着すべき締切り時間を制御情報に記載し、締切り時間までの残り時間が短いパケットを格納するＨｉバッファから順番に出力ポートを接続してもよい。これにより伝送遅延に対する品質要求の低下を抑制できる。
【０１１８】
さらに、出力ポートと接続させるパケットをランダムに選択する方法や、バッファを順場に変更する方法（ラウンドロビン）などを用いてもよい。
【０１１９】
Ｈｉバッファ内に、既に出力ポート先の格納バッファが決まっているパケットがなければ、ステップ１１０３に進む。
【０１２０】
ステップ１１０３において、Ｌｏバッファ内に、既に出力ポート先の格納バッファが決まっているパケットがあれば、ステップ１１０４に進み、Ｌｏバッファと出力ポートを接続する。
【０１２１】
中継装置内に出力ポート先の格納バッファが決まっているＬｏバッファが複数存在する場合には、Ｈｉバッファの場合と同様に、複数のＬｏバッファのいずれか１つを選択し、出力ポートと接続する。
【０１２２】
Ｌｏバッファ内に、既に出力ポート先の格納バッファが決まっているパケットがなければ、ステップ１１０１に戻る。
【０１２３】
ステップ８０８において、出力ポート７０２と接続されたバッファは、パケットを隣接する中継装置（又はゲートウエイ）に送信する。
【０１２４】
以上、説明した中継装置の構成と動作により、実施形態１では、中継装置内のバッファの種類を増やすことなく、品質要求の異なる３種類のトラヒックに対し、それぞれの品質要求に応じた送信スケジュールの制御ができる。
【０１２５】
なお、実施形態１では、品質要求の異なる３種類のトラヒックに対し、２種類のバッファを備える中継装置を用いて伝送を行う場合を説明したが、トラヒックの品質要求の種類、及びバッファの種類は、それぞれ３種類と２種類に限定されるものではない。
【０１２６】
たとえば、（Ａ）品質保証型をさらに２つの種類に分けることにより、４種類の品質要求を定義できる。具体的には、（Ａ１）トラヒックが送信先までに届く遅延時間を保証する遅延時間保証型と、（Ａ２）トラヒックが一定の時間内に一定のデータ転送を保証するスループット保障型である。なお、ここでは（Ａ１）遅延時間保証型のトラヒックは、（Ａ２）スループット保障型のトラヒックに対し伝送帯域が優先的に割当てられるものとする。
【０１２７】
本実施形態の中継装置を用いた半導体集積回路では、例えば図１３に示すように、中継装置Ｒを通過するトラヒックの品質要求の種類が３種類となるように、（１）同じゲートウェイＧＷを利用するバスマスタを複数のローカルバスに所属するものとして分類する。また、中継装置Ｒ、及びゲートウェイＧＷ内では、（２）バッファの種類を相対的に品質要求の高いパケットを格納するＨｉバッファ、次いで品質要求の高いパケットを格納するＭｉｄバッファ、最も品質要求の低いパケットを格納するＬｏバッファの３種類に限定する。
【０１２８】
さらに、分類されたローカルバスの中継装置Ｒと基幹バスに接続するゲートウェイＧＷとの間でトラヒックを中継する際に、（３）品質要求の種類に応じてパケットを格納するバッファの種類を変更する。
【０１２９】
ローカルバス１では、（Ａ１）遅延時間保証型、（Ａ２）スループット保証型、（Ｂ）出来高型リアルタイムの３種類のトラヒックを伝送し、また、ローカルバス２では（Ａ１）遅延時間保証型、（Ａ２）スループット保証型、（Ｃ）出来高型の３種類のトラヒックを伝送する。
【０１３０】
各中継装置Ｒでの送信スケジュールの制御は、Ｈｉバッファ内にパケットがある場合は、Ｈｉバッファが優先して送信される。次に、Ｍｉｄバッファからのパケット送信は、Ｈｉバッファにパケットがない場合にのみ行われる。最後にＬｏバッファからのパケット送信は、Ｈｉバッファ、Ｌｏバッファそれぞれにパケットがない場合にのみ行われるものとする。
【０１３１】
図１４は、図１３の構成において、ローカルバスと基幹バスでの格納バッファの種類の相違を示す。
【０１３２】
４種類のトラヒックの中で最も優先度の高い（Ａ１）遅延保証型のトラヒックは、常にＨｉバッファを用いて伝送する。一方、優先度の最も低い（Ｃ）出来高型のトラヒックはＬｏバッファを用いて伝送する。
【０１３３】
（Ａ２）スループット保証型のトラヒックについては、伝送速度の低いローカルバスでは（Ａ１）遅延保証型のトラヒックに対する影響をなくすためにＭｉｄバッファを利用し、伝送速度の高い基幹バスでは、（Ｂ）出来高型リアルタイムや（Ｃ）出来高型よりも優先してトラヒックを伝送するためにＨｉバッファを用いて伝送する。
【０１３４】
（Ｂ）出来高型リアルタイムのトラヒックについては、伝送速度の低いローカルバスでは、（Ａ１）遅延保証型のトラヒック、（Ａ２）スループット保証型のトラヒックへの干渉をなくすためにＬｏバッファを利用し、伝送速度の高い基幹バスでは、（Ｃ）出来高型よりも優先してトラヒックを伝送するためにＭｉｄバッファを用いる。
【０１３５】
また、図１５に示すように、ローカルバス１では、（Ａ１）遅延保証型トラヒックと（Ｃ）出来高型トラヒックを収容し、ローカルバス２では（Ａ２）スループット型トラヒックと（Ｂ）出来高型リアルタイムを収容することで、それぞれのローカルバスでトラヒックの品質要求の種類を２種類にした場合には、中継装置内のバッファの種類も２種類にまで削減ができる。
【０１３６】
図１６は、図１５の構成における、ローカルバスと基幹バスでの格納バッファの種類の相違を示す。
【０１３７】
ローカルバス１では、優先度の最も高い（Ａ１）遅延保証型のトラヒックに対しては、ＨｉＩバッファを用いて伝送し、（Ｃ）出来高型トラヒックに対しては、Ｌｏバッファを用いて伝送する。
【０１３８】
また、ローカルバス２では、相対的に優先度の高い（Ａ２）スループット保障型のトラヒックはＨｉバッファを用いて伝送を行い、優先度の低い（Ｂ）出来高リアルタイムのトラヒックはＬｏバッファを用いて伝送する。さらに伝送帯域の広い基幹バスでは、（Ｃ）出来高型のトラヒックよりも、（Ｂ）出来高型リアルタイムを優先させて伝送を行うために、（Ｂ）出来高型リアルタイムはＨｉバッファを利用して伝送し、（Ｃ）出来高型トラヒックはＬｏバッファを利用して伝送を行う。
【０１３９】
このように、トラヒックの品質要求の種類数によらず、品質要求の種類の数よりも、少ない種類のバッファを用いて、品質要求の違いに応じた送信スケジュールの制御できる。
【０１４０】
なお、実施形態１では、全ての中継装置ＲとゲートウェイＧＷが保持するバッファの種類が全て同じである場合を例に説明した。しかしながら、一部の中継装置Ｒやゲートウェイが備えるバッファの種類が異なっていても良い。
【０１４１】
図３０は、図５に示した構成において、中継装置Ｒ１と中継装置Ｒ３を、１つの中継装置Ｒ４に集約した構成例を示している。
【０１４２】
中継装置Ｒ４は、ローカルバス１とローカルバス２の両方で利用される中継装置であり、３種類のトラヒックを区別するために、ＨｉバッファとＬｏバッファに加え、Ｍｉｄバッファの３種類のバッファを備えている。
【０１４３】
優先度はＨｉバッファ、Ｍｉｄバッファ、Ｌｏバッファの順に定義されている。品質保証型のトラヒックはＨｉバッファ、出来高リアルタイムのトラヒックはＭｉｄバッファ、出来高型のトラヒックはＬｏバッファを利用して伝送される。
【０１４４】
また、中継装置Ｒ４、及び中継装置Ｒ４と接続する中継装置Ｒ０、中継装置Ｒ２、ゲートウェイＧＷにおいて、送信するパケットを格納するバッファの種別の変更は、品質要求決定部７１０で定義される品質要求決定規則３１０１を個別に設定することで実現できる。
【０１４５】
図３１は、図３０のゲートウェイＧＷの品質要求決定規則３１０１の一例を示す。
【０１４６】
図３１では、出力ポート側のバスの種別が基幹バスの場合、送信先の中継装置（ゲートウェイ）での格納バッファとして、品質要求型と出来高リアルタイム型のトラヒックにはＨｉバッファが定義され、出来高型のトラヒックにはＬｏバッファが定義される。
【０１４７】
また、出力ポート側のバスの種別がローカルバスである場合、送信先の中継装置Ｒ４での格納バッファとして、品質保証型のトラヒックに対してＨｉバッファが定義され、出来高リアルタイムのトラヒックにはＭｉｄバッファが定義され、出来高型のトラヒックにはＬｏバッファが定義される。
【０１４８】
図３０の中継装置Ｒ０、中継装置Ｒ２、中継装置Ｒ４に対しても、同様に個別に品質要求決定規則を設定する。
【０１４９】
このように、２種類のバッファを備える中継装置２個を、３種類のバッファを備える中継装置１個に置き換えた場合には、１個の中継装置が備えるバッファの数は増加するが、中継装置の数が減ったことで集積回路全体の面積を削減する効果を期待できる。
【０１５０】
（実施形態２）
実施形態１では、各バスマスタの品質要求が変化しない場合を想定し、品質要求の違いに応じた送信スケジュール制御について説明した。
【０１５１】
さらに、実施形態２では、アプリケーションやサービスの変化よりバスマスタの品質要求が変化するトラヒックに対し、品質要求の違いに応じた送信スケジュール制御を行う中継装置について説明を行う。
【０１５２】
図１７は、実施形態２の概要を示す。
【０１５３】
図１７では、バスマスタ０、１、３、４は、品質要求が固定されており、バスマスタ２は用途の変化によって品質要求が（Ｂ）出来高型リアルタイムと（Ｃ）出来高型のいずれかに変化する。
【０１５４】
ローカルバス１は、（Ａ）品質保証型と（Ｂ）出来高型リアルタイムの２種類のトラヒックを伝送するローカルバスであり、バスマスタ０および１が接続されている。また、ローカルバス２は、（Ａ）品質保証型と（Ｃ）出来高型の２種類のトラヒックを伝送するローカルバスであり、バスマスタ３、４が接続されている。
【０１５５】
バスマスタ３は、中継装置Ｒ４を介して、ローカルバス１とローカルバス２の両方に接続する経路を持つ。
【０１５６】
図１７（Ａ）は、バスマスタ３が（Ｂ）出来高型リアルタイムのトラヒックを送信している場合の伝送経路を示している。一方、図１７（Ｂ）は、バスマスタ３が、（Ｃ）ローカルバス１を介して送信している場合の伝送経路を示している。
【０１５７】
図１７（Ａ）において、バスマスタ３の品質要求が（Ｃ）出来高型のトラヒックに変わると、ローカルバス１では（Ｃ）出来高型のトラヒック用のバッファが用意されていないため、そのままトラヒックを伝送してしまうと他のバスマスタのトラヒックと干渉し、品質要求を適切に保証できなくなる。
【０１５８】
このため、図１７（Ｂ）に示すように、バスマスタ３から送信されたトラヒックの品質要求が（Ｃ）出来高型のトラヒックに変更された場合には、中継装置Ｒ４でローカルバス２側に伝送経路を変更することで、品質要求を保証した伝送を実現する。
【０１５９】
図１８は、実施形態２における中継装置８００およびゲートウェイ７０２の構成を示す図である。
【０１６０】
実施形態１と同じ構成については図７と同じ番号を付与し、説明を省略する。
【０１６１】
本実施形態による中継装置８００は、新たに品質要求判定部１５０１と、ルーティングテーブル変更部１５０２と、休止状態管理部１５０３とを有している。
【０１６２】
品質要求判定部１５０１は、バッファ部７０５に格納されているこれから送信を行うパケットの品質要求を判定する。
【０１６３】
ルーティングテーブル変更部１５０２は、品質要求判定部１５０１で判定されたパケットの品質要求に応じて、パケットの送信先と出力ポートの関係の対応関係を定義した、ルーティングテーブルの変更を行う処理部である。
【０１６４】
休止状態管理部１５０３は、中継装置７００、及び隣接する中継装置７００ａの少なくとも一方の電源のオン、オフを管理する処理部である。以下では、中継装置７００、及び隣接する中継装置７００ａの両方の電源を管理するとして説明する。
【０１６５】
図１９は、実施形態２における中継装置８００（またはゲートウェイ７０２）の動作を説明するフローチャートである。
【０１６６】
実施形態１と同じ動作については図９と同じ番号を付与し、説明を省略する。
【０１６７】
ステップ１６０１において、品質要求判定部１５０１は、バッファ部７０５内に格納されているパケットのヘッダフリットに記載されている品質要求の種類を参照する。
【０１６８】
ステップ１６０２において、参照した品質要求に適したルーティングテーブルが利用されているかどうかを判定する。適切なルーティングテーブルが利用されている場合は、ステップ８０３に移る。適切なルーティングテーブルが利用されていない場合は、ステップ１６０３において、ルーティングテーブル変更部１５０２が、ルーティングテーブルの内容をパケットの品質要求の種類に対応するテーブルに変更する。
【０１６９】
図２０は、実施形態２における図１７の中継装置Ｒ４で利用されるルーティングテーブルを示す。図２０の左側のテーブルが出来高型リアルタイムトラヒック用のルーティングテーブルを示し、右側のテーブルが出来高型トラヒック用のルーティングテーブルを示す。
【０１７０】
実施形態２の中継装置Ｒ４では、品質要求毎に異なるルーティングテーブルが用意されており、トラヒックの品質要求が出来高型リアルタイムトラヒックの場合は、常に出力ポート０となるルーティングテーブルが利用される。出来高型のトラヒックの場合には、常に出力ポートが１となるルーティングテーブルが利用される。
【０１７１】
品質要求の変更による伝送経路は、バスマスタから基幹バスへ伝送されるトラヒックだけでなく、基幹バスからバスマスタへ戻ってくるトラヒックについても同様の経路変更が必要である。
【０１７２】
図２１は、品質要求の変更により、バスマスタから基幹バスへのトラヒックの伝送経路が変更した際に、基幹バスからバスマスタに戻るトラヒックの伝送経路を変更にかかる処理時間を短縮する方法を示している。
【０１７３】
図２１（Ａ）では、基幹バスからバスマスタへの戻りのトラヒックがゲートウェイに届いた時点で、ゲートウェイ内のルーティングテーブルを変更し、適切な伝送経路の選択を行う。この場合、ルーティングテーブルが変更される間、トラヒックをローカルバスに対して送信できないため遅延が発生する。
【０１７４】
これに対して図２１（Ｂ）では、バスマスタから基幹バスへ送信されるトラヒックがゲートウェイを通過する際に、ゲートウェイのルーティングテーブルを事前に変更し、戻りの伝送経路を構築しておく。これにより、戻りのトラヒックがゲートウェイに到着すると、すぐに品質要求に適した伝送経路へトラヒックを送信することが可能となり、戻りのトラヒックの伝送遅延を削減できる。
【０１７５】
図２２は、基幹バスからバスマスタへの戻りの伝送経路の変更を含む、中継装置７００の動作を説明する図である。
【０１７６】
図１９と同じ動作については、同じ記号を付与し説明を省略する。
【０１７７】
ステップ１６０４において、品質要求判定部１５０１は、戻りの伝送経路について、トラヒックの品質要求の種類に対し、適切なルーティングテーブルが利用されているかどうかを判定し、適切なルーティングテーブルが利用されている場合はステップ８０３に移る。適切なルーティングテーブルが利用されていない場合には、ステップ１６０５に移る。
【０１７８】
ステップ１６０５において、ルーティングテーブル変更部１５０２は、戻りの伝送経路に対し、トラヒックの品質要求の種類に応じた、ルーティングテーブルに変更を行う。
【０１７９】
なお、バスマスタから基幹バスへの伝送経路を変更時に、戻りの伝送経路も事前に変更するかどうかを、トラヒック毎に個別決定しても良い。
【０１８０】
例えば、戻りの伝送経路の事前変更をしたいトラヒックについては、パケットの制御情報に事前変更を実行するためのフラグを記載し、フラグが有効な場合のみ戻りの伝送経路のルーティングテーブルを事前変更する。
【０１８１】
図２３は、品質要求の変更により、伝送経路を変化させた場合の電源の管理方法を示す図である。バスマスタとゲートウェイは、３つの中継装置により、上側と下側の２通りの伝送経路で接続されている。
【０１８２】
図２３（Ａ）では、トラヒックは上側の伝送経路のみが利用されている様子を示している。この場合、トラヒックが流れていない下側の伝送経路上の中継装置の電源をオフにすることで、集積回路全体の消費電力を削減することができる。
【０１８３】
一方、図２３（Ｂ）は、トラヒックの品質要求の変更により、伝送経路を変更した場合を示している。この場合、下側の伝送経路を介してトラヒックを伝送するために、下側の伝送経路上にある中継装置の電源を起動する必要がある。また、トラヒックが流れなくなった上側の伝送経路上の中継装置については、電源をオフにすることで消費電力を削減することができる。
【０１８４】
なお、電源オフは一例である。電源オフにする代わりに、休止状態（スリープ）に移行させてもよい。この場合も、消費電力の削減に寄与する。
【０１８５】
図２４は、中継装置８００の電源の管理動作を説明する図である。
【０１８６】
図９、図１９と同じ動作については同じ記号を付与し説明を省略する。
【０１８７】
中継装置は、ステップ８０３においてルーティング処理部７０８により、パケットを送信する出力ポートの決定が終了すると、ステップ２１０１において、電源管理部１５０３は、出力ポート先の中継装置の休止状態の管理を行う。
【０１８８】
図２５は、休止状態管理部１５０３の動作を説明する図である。
【０１８９】
ステップ２２０１において、伝送経路の変更が発生したかどうかを判定する。
【０１９０】
伝送経路の変更が発生した場合にはステップ２２０２に移る。伝送経路の変更が発生していない場合には処理を終了する。
【０１９１】
ステップ２２０２において、休止状態管理部１５０３は、伝送経路を変更する前にトラヒックを送信していた中継装置に対して、トラヒックの送信が終了したことを通知する。
【０１９２】
通知された中継装置は、他に中継するトラヒックがなければ電源をオフにする。
【０１９３】
ステップ２２０３において、休止状態管理部１５０３は、変更後の伝送経路上の中継装置の電源がオンかオフかを判定する。電源がオフの場合はステップ２２０４に移る。電源がオンの場合は処理を終了する。
【０１９４】
ステップ２２０４において、休止状態管理部１５０３は、出力ポート先の中継装置に対して電源をオンにするように指示を出す。指示を受けた中継装置は電源をオンする。
【０１９５】
このように、トラヒックの品質要求の変更に伴い、トラヒックの伝送経路が変更になる場合、トラヒックの伝送に必要な伝送経路上の電源のオンとオフを細かく制御することで、集積回路全体の消費電力を削減できる。
【０１９６】
なお、ここでは休止状態管理部１５０３が、中継装置全体の電源を管理する場合を例に説明を行ったが、中継装置の電源はオンにしたまま、中継装置の一部の機能（例えば、ルーティング処理部７０８やバッファ割当部７１１など）だけを停止させてもよい。
【０１９７】
この場合、中継装置の電源を直接オフにした場合よりも消費電力の削減効果は小さくなるが、再び中継装置を動作させ際に、完全に電源がオフの状態よりも、早く中継装置の機能を回復することができる。このため、アプリケーションやサービスの変化よるバスマスタの品質要求の変化に対し、より遅延時間の少ない対応ができる。また、機能の一部だけでなく、処理の一部を省略してもよい。
【０１９８】
なお、本実施形態の変形例として、休止状態管理部１５０３を設けない構成も考えられる。
【０１９９】
図２６は、本実施形態の変形例にかかる中継装置８０１の構成を示す。中継装置８０１は、図１８に示す中継装置８００から休止状態管理部１５０３が省略されて構成されている。休止状態管理部１５０３が存在しない場合には、自中継装置の電源管理のみならず、出力ポート先の中継装置の電源管理ができなくなるが、上述した、ルーティングテーブル変更部１５０２を設けることによる利点は存在する。
【０２００】
以上、本発明の実施形態を説明した。
【０２０１】
上述の実施形態は一例であり、種々の変形および応用が考えられる。
【０２０２】
図２７は、本発明の適用先の一例を示す図である。ここでは、複数のバスマスタとメモリ（ＤＲＡＭやＳＲＡＭ）を分散バスで接続した例を示している。
【０２０３】
品質要求の異なる複数のバスマスタ（例えばペリフェラル、ＡＶ処理、信号処理、プロセッサ）は、その機能や互いの依存関係に応じて複数のローカルバスに所属するものとして分類されており、また各ローカルバスはゲートウェイを介して伝送帯域の広い基幹バスと接続している。
【０２０４】
上述の実施形態では、中継装置をアドホックに配置した例を用いて説明したが、これ以外のトポロジーであってもよい。
【０２０５】
図２８（Ａ）〜（Ｄ）はローカルバスのトポロジーの例を示している。
【０２０６】
図２８のバスに本発明の中継装置、及びゲートウェイを適用した場合、品質要求の種類だけ、ローカルバス内の中継装置や基幹バス上のゲートウェイにおいて、バッファの種類を増やす必要がないため、集積回路の面積や消費電力を増やすことなく、各バスマスタとメモリ間で各トラヒックの品質保証を実現できる。
【０２０７】
例えば、図２８（Ａ）に示すように中継装置を格子状に並べたメッシュ型トポロジーを構成してもよい。また、図２８（Ｂ）に示すように上下左右で中継装置をリング状に接続したトーラス型トポロジーであってもよい。また、図２８（Ｃ）に示すようにバスを階層的に接続した階層型トポロジーなどを構成してもよい。さらに、図２８（Ｄ）に示すように、複数のバスマスタとゲートウェイ間で中継装置の数が一定となるバタフライ型のトポロジーを構成しても良い。複数のバスマスタを分散型のバスを介して接続したトポロジーであれば、同様に本発明の中継装置の適用が可能である。
【０２０８】
図３２は、本開示において適用可能な、他の半導体集積回路のバスシステムの例を示す図である。ここでは、異なるＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）同士を接続して動作させる際に、中継装置を介してＳｏＣ同士を接続している。
【０２０９】
ただし、一般には、異なる用途を目的として開発されたＳｏＣ間では、ＳｏＣ内のバスを流れるトラヒックの要求品質の定義が異なるため、直接、ＳｏＣ間でトラヒックをやりとりしても要求品質は保証できない。
【０２１０】
図３２の例では、ＳｏＣ１では、品質要求が異なる「高」、「中」、「低」の３種類のバスマスタを備え、一方、ＳｏＣ２では、品質要求が異なる「遅延制約あり」、「遅延制約なし」の２種類のバスマスタを備えているとする。なお、「遅延制約」とは、パケットが宛先に届くまでにかかる遅延時間が、予め定められた所定の時間よりも短いことを要求する制約である。
【０２１１】
ＳｏＣ１とＳｏＣ２では品質要求の定義が異なるため、例えばＳｏＣ１で要求品質が「高」のトラヒックを、ＳｏＣ２へ送信しても、ＳｏＣ２では要求品質「高」が定義されていないため、正しく品質要求を保証した伝送を行うことができない。同様に、品質要求が「中」や「低」のバスマスタから送信されたトラヒックをＳｏＣ１からＳｏＣ２へ送信する場合や、ＳｏＣ２からＳｏＣ１にトラヒックを送信する場合についても、要求品質を保証できない。
【０２１２】
なお、ＳｏＣ１では、「高」、「中」、「低」の順に品質要求が厳しく、ＳｏＣ２では、「遅延制約あり」、「遅延制約性なし」の順に品質要求が厳しいものとする。
【０２１３】
上述の例のような、要求品質の定義が異なる場合には、図３２においてＳｏＣ１とＳｏＣ２とを接続する中継装置（例えば中継装置Ａや中継装置Ｂ）において、品質要求が異なるＳｏＣ内のバスへ送信されるトラヒックの要求品質を送信先のバスの定義に応じて変換を行う。例えば中継装置Ａは、ＳｏＣ１側において品質要求が厳しい「高」、「中」のトラヒックをＳｏＣ２へ送信する際には、品質要求が厳しいを「遅延制約あり」に変換する。また中継装置Ａは、ＳｏＣ１側において品質要求が緩い「低」のトラヒックをＳｏＣ２へ送信する際には、品質要求が緩い「遅延制約なし」に変換する。そして、それぞれ対応するバッファに格納して、送信を行う。
【０２１４】
これにより、ＳｏＣ１とＳｏＣ２を接続することで発生する品質要求の異なる５種類のトラヒックに対して、既存のＳｏＣ自身の変更を行うことなく、中継装置での優先度変更規則の定義を変更するだけで、要求品質の保証した伝送ができる。このため、複数のＳｏＣを統合した開発において、コストを低く抑えることができる。
【０２１５】
以上の説明では、中継装置の各構成要素は、ブロック化された個別の機能部として表されているが、これらの機能部の処理を規定するプログラムを中継装置に実装されたプロセッサ（コンピュータ）に実行させることによって中継装置の動作が実現されていてもよい。そのようなプログラムの処理手順は、例えば図９、１２、１９、２２のフローチャートに記載されているとおりである。
【０２１６】
上述の実施形態および利用例では、本願発明がチップ上で実装された際の構成を説明した。本願発明は、チップ上に実装されるだけでなく、チップ上に実装するための設計及び検証を行うシミュレーションプログラムとしても実施され得る。そのようなシミュレーションプログラムは、コンピュータによって実行される。例えば、図７に示される各構成要素は、シミュレーションプログラム上のオブジェクト化されたクラスとして実装される。各クラスは、予め定められたシミュレーションシナリオを読み込むことにより、各構成要素に対応する動作をコンピュータ上で実現する。言い換えると、各構成要素に対応する動作は、コンピュータの処理ステップとして直列的または並列的に実行される。
【０２１７】
中継装置として実装されたクラスは、シミュレータで定義されたシミュレーションシナリオを読み込むことにより、優先度閾値等の条件を決定する。また、他の中継装置のクラスから送信されるパケットの送信タイミング、送信先、優先度、締切時間等の条件を決定する。
【０２１８】
中継装置として実装されたクラスは、シミュレーションシナリオに記述されたシミュレーションの終了条件が成立する迄の間、動作を行う。動作中のスループットやレイテンシ、バスの流量の変動の様子、動作周波数、消費電力の見積値等を算出しプログラムの利用者に提供する。これらに基づき、プログラムの利用者はトポロジや性能の評価を行い、設計及び検証を行う。
【０２１９】
シミュレーションシナリオの各行には、例えば、送信元ノードのＩＤ、宛先ノードのＩＤ、送信するパケットのサイズ、送信するタイミング等の情報が記述されるのが普通である。また複数のシミュレーションシナリオをバッチ処理的に評価することで、想定した全てのシナリオで所望の性能が保証できているか否かを効率的に検証できる。またバスのトポロジやノード数、送信ノード、中継器、宛先ノードの配置を変化させて性能比較することにより、シミュレーションシナリオに最も適したネットワーク構成を特定することもできる。上記の実施形態のいずれもが本態様の設計及び検証ツールとしても適用可能である。このように、本願発明は、設計及び検証ツールとして実施される際にも適用可能である。
【産業上の利用可能性】
【０２２０】
本発明にかかる中継装置は、分散型のバスを備える集積回路において、実装時の制約が大きいバッファサイズを増やすことなく、トラヒックの品質要求に応じた送信スケジュール制御が実現できる。【０２２１】
このため、例えば複数のメディア処理用のＤＳＰや、高速なファイル転送を行うＣＰＵなどを、分散バスを用いて１つのＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）上に集積化する際に、実装に必要なリソースの省資源化を実現する上で有用である。【０２２２】
また、リソースの省資源化による、集積回路全体での省電化に対しても有用である。
【符号の説明】
【０２２３】
７００    中継装置
７００ａ  隣接する中継装置
７０１  バスマスタ
７０２  ゲートウェイ
７０３  入力ポート
７０４  出力ポート
７０５  バッファ部
７０６  Ｈｉバッファ
７０７  Ｌｏバッファ
７０８  ルーティング処理部
７０９  バス種別比較部
７１０  品質要求決定部
７１１  バッファ割当部
７１２  クロスバスイッチ
７１３  スイッチ割当部
９００  パケット
９０１  制御情報
９０２  データ
９０３  終了コード
９０４  ヘッダフリット
９０５  データフリット
９０６  テイルフリット
１５０１  品質要求判定部
１５０２  ルーティングテーブル変更部
１５０３  休止状態管理部
【図１】
0005552196.tif 000002
【図２】
0005552196.tif 000003
【図３】
0005552196.tif 000004
【図４】
0005552196.tif 000005
【図５】
0005552196.tif 000006
【図６】
0005552196.tif 000007
【図７】
0005552196.tif 000008
【図８】
0005552196.tif 000009
【図９】
0005552196.tif 000010
【図１０】
0005552196.tif 000011
【図１１】
0005552196.tif 000012
【図１２】
0005552196.tif 000013
【図１３】
0005552196.tif 000014
【図１４】
0005552196.tif 000015
【図１５】
0005552196.tif 000016
【図１６】
0005552196.tif 000017
【図１７】
0005552196.tif 000018
【図１８】
0005552196.tif 000019
【図１９】
0005552196.tif 000020
【図２０】
0005552196.tif 000021
【図２１】
0005552196.tif 000022
【図２２】
0005552196.tif 000023
【図２３】
0005552196.tif 000024
【図２４】
0005552196.tif 000025
【図２５】
0005552196.tif 000026
【図２６】
0005552196.tif 000027
【図２７】
0005552196.tif 000028
【図２８】
0005552196.tif 000029
【図２９】
0005552196.tif 000030
【図３０】
0005552196.tif 000031
【図３１】
0005552196.tif 000032
【図３２】
0005552196.tif 000033