(57)【要約】  経路切り換え時のリソース競合を効率的に抑制することで経路切換遅延を短縮し、バスの平均利用効率を向上させる。  バス制御装置は、バスマスタと、ネットワーク化された通信バスとの間に設けられ、通信バスに流れるパケットの送信経路を制御する。バス制御装置は、複数の送信経路および複数の送信経路の各々の送信状況を管理する経路表管理部と、所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、複数の送信経路の各々の送信状況とパラメータとに基き、送信経路を決定する決定部と、通信バス上を流れるパケットの中継処理を行う中継部とを備えている。
2011148583.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタと、ネットワーク化された通信バスとの間に設けられ、前記通信バスに流れるパケットの送信経路を制御するバス制御装置であって、
複数の送信経路および前記複数の送信経路の各々の送信状況を管理する経路表管理部と、
所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、
前記複数の送信経路の各々の送信状況と前記パラメータとに基き、送信経路を決定する決定部と、
前記通信バス上を流れるパケットの中継処理を行う中継部と
を備えたバス制御装置。
【請求項２】
前記パケットの送信経路を、前記決定部によって決定された新たな送信経路に切り換える切換部をさらに備え、
前記中継部は、前記切換部によって切り換えられた前記新たな送信経路を利用して前記パケットを送信する、請求項１に記載のバス制御装置。
【請求項３】
前記決定部は、前記パラメータが、前記送信状況を示す評価値に応じて算出される選択確率の範囲に含まれるか否かに応じて、前記選択確率に対応する送信経路に切り換えるか否かを決定する、請求項１記載のバス制御装置。
【請求項４】
前記決定部は、各経路の送信状況の良さに比例した確率分布を用いて経路の選択を行う、請求項１に記載のバス制御装置。
【請求項５】
前記決定部は、伝送レートが基準値よりも高いレートのパケットのフローに対しては、既に使用中の経路の選択確率を補正し、経路切換確率を制限する、請求項４に記載のバス制御装置。
【請求項６】
前記経路表管理部は、送信状況が予め定められた基準を下回った経路を切り換え対象の経路として特定し、
前記パラメータ生成部は、熱雑音を基にした乱数、または、一様分布、ポアソン分布または正規分布に基づく疑似乱数を利用して前記パラメータを生成し、
前記決定部は、前記切り換え対象の経路で伝送されるパケットのフローに関して、前記送信状況の悪化に応じて大きくなる評価値を算出し、前記パラメータが、前記評価値の範囲に含まれるか否かに応じて、前記評価値に対応する送信経路に切り換えるか否かを決定する、請求項３に記載のバス制御装置。
【請求項７】
前記経路表管理部は、送信状況が予め定められた基準を下回った経路を切り換え対象の経路として特定し、
前記パラメータ生成部は、規則的に変化するカウンタを利用して前記パラメータを生成し、
前記決定部は、前記切り換え対象の経路で伝送されるパケットのフローに関して、前記送信状況の悪化に応じて大きくなる評価値を算出し、前記パラメータが、前記評価値の範囲に含まれるか否かに応じて、前記評価値に対応する送信経路に切り換えるか否かを決定する、請求項３に記載のバス制御装置。
【請求項８】
バスマスタと、ネットワーク化された通信バスとの間に設けられたバス制御装置に指示を出力して、前記通信バスに流れるパケットの送信経路を制御する制御装置であって、
複数の送信経路および前記複数の送信経路の各々の送信状況を管理する経路表管理部と、
所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、
前記複数の送信経路の各々の送信状況と前記パラメータとに基き、送信経路を決定して、決定した前記送信経路に関する指示を前記バス制御装置に出力する決定部と、
を備えた制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク化された通信バスを備える半導体チップに於いて、通信バスの制御を行うための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）やプロセッサの高機能化に伴い、通常の通信バスに代わって、ネットワーク型のバスであるＮｏＣ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ）が注目されている。ＮｏＣでは、多数のバスマスタやメモリを相互に接続することが可能である。【０００３】
たとえば図１（ａ）および（ｂ）は、ＮｏＣバスの一部の構成を示す。図１（ａ）はハードウェア接続構成例を示す図であり、図１（ｂ）はその模式図である。図１（ａ）および（ｂ）によれば、チップ１０上に設けられたバスマスタ１ａ〜１ｃが、それぞれバス制御装置（Ｒ）２を介してバス３に接続されていることが示されている。なお、以下の本願図面のＮｏＣバスは、図１（ｂ）に示す模式図で記載する。【０００４】
図２は、２次元メッシュ型でバスマスタを結合したＮｏＣバスの構成例を示す。マイクロプロセッサやＤＳＰ、メモリ、入出力回路等のバスマスタ毎に、データ転送経路の制御を行う中継ノードＲが配置され、中継ノードＲ間を短配線で接続（リンク）する。本願明細書では、中継ノードＲは、中継装置またはバス制御装置とも呼ばれる。【０００５】
このような構成では、送信元のバスマスタから、受信先のバスマスタに対してデータ転送を行うための通信経路が複数存在する。たとえば図３は、送信元から送信先までの３本の経路（１）〜（３）を示す。【０００６】
複数の選択候補経路の中から、バスの負荷状況に合わせて、最適な経路を選択することで、転送データがチップ全体に効率的に分散することになり、平均的なバスの利用効率の向上を見込むことができる。このため、バス全体のスループットが向上し、設計時または動作時のバスの動作周波数を低減することが可能となり、チップの消費電力を低減できる。またバスマスタ間でのデータ転送のためのレイテンシ（遅延時間）が改善されるため、バスマスタのパフォーマンスを最大限に引き出すことができ、チップ全体の処理能力向上にも繋がる。【０００７】
バスマスタを相互に接続するバス上で、複数のデータ転送経路をバスの状態に合わせて選択する方法が特許文献１に開示されている。特許文献１の技術によれば、送信元のバスマスタから受信先のバスマスタ迄、転送対象のデータがフレーム単位で転送される。受信先でフレームが正常に受信された場合には、アクノリッジデータを返信し、そうでない場合にはアクノリッジデータを返信しない。送信元のバスマスタは、アクノリッジデータの返信がなかったことをもってフレーム転送の不具合を検出し、他の送信経路を選択してフレームを再送信することで、通信を継続する。受信したフレームのヘッダにエラーが検出された場合には、受信先のバスマスタでフレームが破棄されるため、送信元のバスマスタでアクノリッジデータを受信することはない。また利用中のデータ転送経路に於いて、フレームの転送遅延が大きくなり、規定時間内にフレームが受信先に着信しない場合にも、規定時間内にアクノリッジデータを受信することができず、経路の切換が発生する。データ転送経路の状態に合わせて経路をダイナミックに切り換えることにより、転送遅延やエラーが少ない経路で通信することが可能となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３８１６５３１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来技術である複数経路制御技術を用いる場合、送信元のバスマスタは、転送遅延時間の悪化を検出することでデータ転送経路の切り換えの必要性があると判定し、自らのデータ転送状態が最良となるよう経路の選択（利己的な経路選択）を行う。言い換えると、送信元のバスマスタは、高負荷な経路から低負荷な経路に使用経路を切り換えることで、転送遅延時間を改善しようとする。【００１０】
しかしながら、独立に動作する複数のバスマスタが存在するような一般的なＮｏＣにおいて、各バスマスタが従来の方法によって経路切り換えを行っても、データ転送性能の改善は必ずしも達成できない。その理由は、独立に動作する複数のバスマスタが競合して最良経路を選択しようとすることで、データ転送経路及びリンク資源の奪い合いが生じ、いくつかのリンクに複数の送信元からの転送データが集中するためである。その結果、各経路間を流れる転送データ流量の偏りが拡大する。【００１１】
この転送データ流量の偏りに起因する転送遅延時間の悪化により、各バスマスタは繰返し経路の再選択を行うため、経路切り換えに要する遅延時間が増大する。またデータ転送に要するレイテンシも増大し、それによって各バスマスタの動作速度が律速される。例えばプロセッサとメモリ間のデータ転送の場合には、メモリアクセスレイテンシに対応したプロセッサのウエイトサイクル数が増大し、処理性能の低下に繋がる。また競合によるスループットの低下により、バスで消費される電力も増加する。バスの動作周波数を上げなければ所望のバス転送能力が得られなくなるためである。バスの消費電力は、バスを構成するトランジスタの消費電力Ｐで表され、スイッチングレートα、回路の容量Ｃ、電源電圧Ｖ、動作周波数ｆとすると、数１で表される。
【数１】
2011148583.tif 000003
なお、ここでいう「バスを構成するトランジスタ」とは、データを送信するネットワーク要素とそのデータを受信するネットワーク要素との間に存在するネットワーク要素（たとえば中継ノード）のトランジスタを含む。【００１２】
また、動作周波数を抑えることにより、電源電圧も数２に示す関係で低減することが可能となる。
【数２】
2011148583.tif 000004
【００１３】
数２中のηはトランジスタの動作スレッショルド電圧と電源電圧の比であり、γはプロセスルールに依存する定数である。例えばγ＝２とした場合、動作周波数の低減は、消費電力Ｐに３乗のオーダーで寄与するため、高い転送レートを収容するためのリンクでは、スループットの偏りによる消費電力が非常に大きくなる。【００１４】
本発明は、上記課題を解決するためになされたものであり、その目的は、経路切り換え時のバスのリソース競合を効率的に抑制することで経路切り換え遅延を短縮し、バスの平均利用効率を向上させることが可能なバス制御装置（中継装置）を提供することにある。
【課題を解決するための手段】
【００１５】
本発明によるバス制御装置は、バスマスタと、ネットワーク化された通信バスとの間に設けられ、前記通信バスに流れるパケットの送信経路を制御するバス制御装置であって、複数の送信経路および前記複数の送信経路の各々の送信状況を管理する経路表管理部と、所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、前記複数の送信経路の各々の送信状況と前記パラメータとに基き、送信経路を決定する決定部と、前記通信バス上を流れるパケットの中継処理を行う中継部とを備えている。【００１６】
前記バス制御装置は、前記パケットの送信経路を、前記決定部によって決定された新たな送信経路に切り換える切換部をさらに備え、前記中継部は、前記切換部によって切り換えられた前記新たな送信経路を利用して前記パケットを送信してもよい。【００１７】
前記決定部は、前記パラメータが、前記送信状況を示す評価値に応じて算出される選択確率の範囲に含まれるか否かに応じて、前記選択確率に対応する送信経路に切り換えるか否かを決定してもよい。【００１８】
前記決定部は、各経路の送信状況の良さに比例した確率分布を用いて経路の選択を行ってもよい。【００１９】
前記決定部は、伝送レートが基準値よりも高いレートのパケットのフローに対しては、既に使用中の経路の選択確率を補正し、経路切換確率を制限してもよい。【００２０】
前記経路表管理部は、送信状況が予め定められた基準を下回った経路を切り換え対象の経路として特定し、前記パラメータ生成部は、熱雑音を基にした乱数、または、一様分布、ポアソン分布または正規分布に基づく疑似乱数を利用して前記パラメータを生成し、前記決定部は、前記切り換え対象の経路で伝送されるパケットのフローに関して、前記送信状況の悪化に応じて大きくなる評価値を算出し、前記パラメータが、前記評価値の範囲に含まれるか否かに応じて、前記評価値に対応する送信経路に切り換えるか否かを決定してもよい。【００２１】
前記経路表管理部は、送信状況が予め定められた基準を下回った経路を切り換え対象の経路として特定し、前記パラメータ生成部は、規則的に変化するカウンタを利用して前記パラメータを生成し、前記決定部は、前記切り換え対象の経路で伝送されるパケットのフローに関して、前記送信状況の悪化に応じて大きくなる評価値を算出し、前記パラメータが、前記評価値の範囲に含まれるか否かに応じて、前記評価値に対応する送信経路に切り換えるか否かを決定してもよい。【００２２】
本発明による制御装置は、バスマスタと、ネットワーク化された通信バスとの間に設けられたバス制御装置に指示を出力して、前記通信バスに流れるパケットの送信経路を制御する制御装置であって、複数の送信経路および前記複数の送信経路の各々の送信状況を管理する経路表管理部と、所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、前記複数の送信経路の各々の送信状況と前記パラメータとに基き、送信経路を決定して、決定した前記送信経路に関する指示を前記バス制御装置に出力する決定部とを備えている。
【発明の効果】
【００２３】
本発明によれば、所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータが生成され、そのパラメータと複数の送信経路の各々の送信状況とに基づき、新たな送信経路が決定される。これにより、独立して動作する複数のバスマスタが接続された一般的なネットワークバスに於いて、各バスマスタが利己的な判断のみで送信経路を変更することによって発生するリソース競合に伴うスループットの低下を防ぐことが可能となり、競合によるレイテンシの悪化を抑制することができる。またスループットの改善により、バス自体の動作周波数を低く設定できるため、バスにおける消費電力も低く抑えることが可能となる。
【図面の簡単な説明】
【００２４】
【図１】（ａ）および（ｂ）は、ＮｏＣバスの一部の構成を示す図である。
【図２】２次元メッシュ型でバスマスタを結合したＮｏＣバスの構成例を示す図である。
【図３】送信元から受信先までの３本の経路（１）〜（３）を示す図である。
【図４】組込機器に搭載されるシステム半導体のメモリ間インタフェースを、バタフライ形式の多段接続網であるＮｏＣバスを用いて構成した例を示す図である。
【図５】ＣＰＵからＤＲＡＭ０にアクセスする経路として、経路０００１０２と経路００１１０２の２本があることを示す図である。
【図６】ＣＰＵが実行するＯＳやアプリケーションが、経路０００１０２を用いてＤＲＡＭ０にアクセスしている状況を示す図である。
【図７】図６の状況で、更にＣＰＵのペリフェラルであるＤＭＡＣ０が、経路０００１０２を用いてＤＲＡＭ０へのデータ転送を開始したことを示す図である。
【図８】経路切り換えが行われた結果、中継ノードＲ１１、Ｒ００に各バスマスタのメモリアクセス負荷が集中した様子を示す図である。
【図９】確率的な経路の切り換え処理によって、ＣＰＵが経路０００１０２に留まり、ＤＭＡＣ０が経路００１１０２への切り換えを行った様子を示す図である。
【図１０】本発明の実施形態によるバス制御装置１００の構成例を示す図である。
【図１１】メモリへの書込アクセスを行うためのパケットの構成例を示す図である。
【図１２】ヘッダフリットの構成例を示す図である。
【図１３】ペイロードフリットの構成例を示す図である。
【図１４】物理アドレス空間とＤＲＡＭ０およびＤＲＡＭ１との対応関係を示す図である。
【図１５】図１４の対応関係を記述するアドレス対応表の例を示す図である。
【図１６】バス制御装置Ｒ００上の経路表管理部１０２で管理される経路表の例を示す図である。
【図１７】フロー表の一例を示す図である。
【図１８】図１７のフロー表に示される通信状況において、フローＩＤが２のフローの経路を切り換えたときのフロー表である。
【図１９】経路切換部１０４の処理手順を示すフローチャートである。
【図２０】バス制御装置に対して送信経路の切り換えを指示する制御装置の構成例を示す図である。
【発明を実施するための形態】
【００２５】
以下、添付の図面を参照しながら、本発明によるバス制御装置の実施形態を説明する。
【００２６】
（実施形態１）
本実施形態によるバス制御装置を具体的に説明するに先立って、ＮｏＣ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ）と呼ばれる通信バス、その通信バスで利用可能な送信経路、および、本実施形態によるバス制御装置の動作原理を説明する。
【００２７】
図４は、組込機器に搭載されるシステム半導体のメモリ間インタフェースを、バタフライ形式の多段接続網であるＮｏＣバスを用いて構成した例である。図４では、バスマスタにあたるＣＰＵ、ＤＭＡＣ、ＤＳＰと、メモリコントローラであるＤＲＡＭ０、ＤＲＡＭ１が、２入力２出力の中継ノードＲｘｙ（ｘ＝０、１、ｙ＝０、１、２）によって多段接続されている。この構成は、バスマスタ側からメモリコントローラ側への一方向性のバスである。ただし実際には、バスマスタからメモリ側へのアクセスだけではなく、メモリ側からバスマスタへの逆方向の転送も存在する。しかしながら、その構成に関しては本例と同様のバタフライ網が往路と復路とで二重化されるだけであり、いずれの網も動作原理は同じとなる。そこで、ここではバスマスタからメモリへの往路の網を用いて説明を行い、復路の動作は省略する。
【００２８】
図４では、各バスマスタからいずれのメモリコントローラにデータを転送するにも、異なる２つの転送経路を利用することができる。図５は、ＣＰＵからＤＲＡＭ０にアクセスする経路として、経路０００１０２と経路００１１０２の２本があることを示している。図中では省略されているが、同様に、他のバスマスタからいずれのメモリに対しても、それぞれ２本の利用可能な経路が存在している。
【００２９】
本実施形態の説明では、経路上の中継ノードに割り当てられた番号を連ねることによって、各経路を示す。例えば、図５のＣＰＵからＤＲＡＭ０に向かう経路のうち、中継ノードＲ００、Ｒ０１、Ｒ０２によって中継される経路は、「経路０００１０２」と表現される。また、中継ノードＲ００、Ｒ１１、Ｒ０２によって中継される経路は、「経路００１１０２」と表現される。
【００３０】
図６は、ＣＰＵが実行するＯＳやアプリケーションが、経路０００１０２を用いてＤＲＡＭ０にアクセスしている状況を示している。同様にＤＳＰ上で動作するマイクロコードが、経路１０１１０２を用いてＤＲＡＭ０にアクセスしている状況を示している。これらの状況においては、いずれのメモリアクセスフローによっても、許容される平均アクセスレイテンシの時間内でメモリアクセスが実現されるとする。
【００３１】
図７は、図６の状況で、更にＣＰＵのペリフェラルであるＤＭＡＣ０が、経路０００１０２を用いてＤＲＡＭ０へのデータ転送を開始したことを示す。新たに発生したメモリアクセスフローの影響によって、ＣＰＵ及びＤＭＡＣ０の平均アクセスレイテンシが許容値を超えると、ＣＰＵ及びＤＭＡＣ０がデータ転送経路の切り換えを行う。
【００３２】
いま、負荷が存在しない状態で、データ転送パケットがＮｏＣバスを通過するために必要な固定的な転送遅延を１２サイクルと仮定し、ＣＰＵまたはＤＭＡＣ０からＤＲＡＭ０にアクセスする際の平均レイテンシを、経路０００１０２で１１２サイクル、経路００１１０２で６２サイクルとする。レイテンシは、流れるデータの量と中継ノードの出力段に於けるアクセスの競合の強さによって増大する。したがって、経路０００１０２のレイテンシは、経路００１１０２のレイテンシに比べて大きい。
【００３３】
従来の経路切換方法によると、ＣＰＵ、ＤＭＡＣ０共に、平均レイテンシが高い経路０００１０２から、平均レイテンシが低い経路００１１０２へ経路切り換えを一斉に行う。図８は、経路切り換えが行われた結果、中継ノードＲ１１、Ｒ００に各バスマスタのメモリアクセス負荷が集中した様子を示している。中継ノードＲ１１、Ｒ００において負荷の集中を招くことで、各フローに基づくメモリアクセス状況は更に悪化する。
【００３４】
本実施形態においては、経路切換動作を行う際に、確率的な挙動を付加する（経路の切り換えを確率的に行う）ことで、このような経路競合による問題点を解決する。たとえば図７の事例においては、経路０００１０２の平均レイテンシ１１２サイクル、経路００１１０２の平均レイテンシ６２サイクルの比率に逆比例した割合により、確率的に経路を選択する。即ち、ＣＰＵ及びＤＭＡＣ０のいずれも、経路０００１０２を選択する確率は０．４、経路００１１０２を選択する確率は０．６となる。この結果、バスマスタが同時に経路切り換えを行おうとするときの、切り換え対象となる経路が確率的に分散されることになる。よって、図８に示されるような経路リソースの奪い合いによる競合状態に陥ることがなくなる。
【００３５】
図９は、確率的な経路の切り換え処理によって、ＣＰＵが経路０００１０２に留まり、ＤＭＡＣ０が経路００１１０２への切り換えを行った様子を示す。ＣＰＵのアクセス経路０００１０２は変化しないが、ＤＭＡＣ０のアクセスが経路００１１０２に移動している。そのため、ＣＰＵからＤＲＡＭ０への経路のレイテンシが１１２サイクルから６２サイクルに向上する。またＤＭＡＣ０のアクセス経路は、経路０００１０２から、経路００１１０２に移動することで、レイテンシが１１２サイクルから６２サイクルに向上する。さらに、ＤＳＰも経路１０１１０２により、６２サイクルのレイテンシでＤＲＡＭ０にアクセスする。ＤＲＡＭ０に向かう経路上の中継ノード間リンクの全てにアクセスフローが分散され、効率的にデータ転送帯域が利用されていることが分かる。
【００３６】
以下、図１０を参照しながら、上述の動作を行うためのバス制御装置の構成例を説明する。
【００３７】
図１０は、本実施形態によるバス制御装置１００の構成例を示す。
【００３８】
バス制御装置は、中継部１０１と、経路表管理部１０２と、パラメータ生成部１０３と、経路切換部１０４とを備えている。以下、各構成要素の機能を説明する。
【００３９】
（中継部１０１）
ネットワークバス上でのメモリアクセスは、パケット単位で行われる。中継部１０１はパケットを受け取り、そのパケットに記述された宛先アドレスを参照して、そのパケットを隣接する中継装置やＤＲＡＭ等のメモリに送信する。
【００４０】
図１１は、メモリへの書込アクセスを行うためのパケットの構成例を示す。本例のパケットは４つのフィールド、具体的にはＦＬＯＷ  ＩＤ、ＡＤＤＲ、ＲＷ、ＤＡＴＡの各フィールドから構成されている。
【００４１】
ＦＬＯＷ  ＩＤフィールドには、メモリへのアクセスを発行している主体を特定するための識別子が格納される。この値は、経路の切り換え単位を意味し、同一の値を持つパケット群は同じ経路で送信される。アプリケーション毎にメモリアクセスを管理する場合であれば、アプリケーションに固有のＩＤを格納してもよいし、アプリケーションを構成するプロセス毎に管理する場合であれば、プロセスＩＤを格納してもよい。更に細かいタスク単位で管理する場合であれば、タスクＩＤを格納してもよい。
【００４２】
ＡＤＤＲフィールドには、データの書込を行うメモリ番地の情報が格納される。ＲＷフィールドには、読出命令か書込命令かを区別するための情報が格納される。ＤＡＴＡフィールドには、書き込むデータのビットパターンが格納される。
【００４３】
パケットのサイズは、使用するメモリやアプリケーションが一度にアクセスするデータの長さなどに依存する。そのため、１パケットは、バスクロック毎に転送が可能なフリットと呼ばれるより小さい単位に分割される。一般的には、パケットはひとつのヘッダフリットと、複数のペイロードフリットとによって構成される。
【００４４】
図１２はヘッダフリットの構成例を示す。本例によるヘッダフリットは、４つのフィールドから構成されている。ＭＡＲＫＥＲフィールドにはヘッダフリットであることを示す情報が格納される。ＬＥＮＧＴＨフィールドにはフリット数に関する情報が格納される。ＳＲＣフィールドには送信元のノードのＩＤ情報が格納される。ＤＳＴフィールドにはアクセス先のメモリを識別するための情報、および、使用する経路に関する情報が格納される。
【００４５】
図１３はペイロードフリットの構成例を示す。ＭＡＲＫＥＲフィールドにはペイロードフリットであることを示す情報が格納される。ＰＡＣＫＥＴ  ＰＡＹＬＯＡＤフィールドには図１１に示したパケットが適切な個数に分割されて格納される。
【００４６】
物理的なアドレス空間と、パケットの送信先であるＤＲＡＭ０またはＤＲＡＭ１を識別するための情報との関係付けは、設計情報としてアドレスマップ上で定義される。図１４は、物理アドレス空間とＤＲＡＭ０およびＤＲＡＭ１との対応関係を示す。また図１５は、この対応関係を記述するアドレス対応表の例を示す。このアドレス対応表は、たとえばバスマスタの内部メモリ（図示せず）に保持され、管理されている。バスマスタは、このアドレス対応表を参照することにより、パケットの送信先を決定する。
【００４７】
図１５に示されるように、０ｘ００００００００から０ｘ３ＦＦＦＦＦＦＦの範囲にあるアドレスが記述されたアクセスパケットには００のメモリＩＤが割り当てられ、ＤＲＡＭ０にパケットが送信される。また０ｘ４０００００００から０ｘ７ＦＦＦＦＦＦＦの範囲にあるアドレスが記述されたアクセスパケットには１０のメモリＩＤが割り当てられ、ＤＲＡＭ１にパケットが送信される。図１２のＤＳＴフィールドには、経路切換部１０４が管理する経路番号と送信先のメモリの識別子とが格納される。例えばＣＰＵから経路０００１０２を用いてＤＲＡＭ０にアクセスする場合には、ＤＳＴには０００が格納される。またＤＭＡＣ０から経路００１１０２を用いてＤＲＡＭ０にアクセスする場合には、１００が格納される。各中継ノードは、ヘッダフリットに格納されたＤＳＴフィールドの各ビットの値を読んで、フリットの転送先のポートを決定することで、パケットをＤＲＡＭ０へと中継する。
【００４８】
（経路表管理部１０２）
図１６は、バス制御装置Ｒ００上の経路表管理部１０２で管理される経路表の例を示す。中継ノードＲ００からＤＲＡＭ０に向かう経路として、経路０００１０２および経路００１１０２が存在する。また、ＤＲＡＭ１に向かう経路として、経路０００１１２および経路００１１１２が存在する。したがって、経路表管理部１０２は、４本の経路の各々を経路表上で経路評価値と共に管理する。
【００４９】
ここで、「経路評価値」とは各経路の伝送品質（送信状況）を表す値であり、たとえば経路の通信レイテンシを経路評価値として利用してもよい。各経路の通信レイテンシは、当該経路を通じたパケットの送受信にかかるサイクル数を計測することにより得ることができる。あるいは経路のレイテンシを計測するための計測用のパケットを送受信するプロトコルを備えてもよい。
【００５０】
経路のレイテンシが予め定められた閾値を超えた場合、言い換えると、経路の伝送品質（送信状況）が閾値によって予め定められた基準を下回った場合には、経路表管理部１０２は、経路切換部１０４に対して、経路切換要求を発行する。レイテンシの閾値を５０とした場合、経路０００１０２と経路００１１０２が切換対象経路となり、経路切換部１０４に通知される。
【００５１】
（パラメータ生成部１０３）
パラメータ生成部１０３は、所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成する。本実施形態においては、パラメータ生成部１０３は、０．０から１．０の範囲上の値をランダムに発生する。例えばパラメータ生成部１０３は、熱雑音を基にした乱数発生用のハードウェアで構成される。または、パラメータ生成部１０３は、一様分布、ポアソン分布または正規分布などの確率分布に基づく疑似乱数を発生するソフトウェアで構成されてもよい。また、上述の方法によって発生させた確率のテーブルを用意し、それを読み出してもよい。これらは確率分布に従うパラメータの生成例である。
【００５２】
他方、パラメータ生成部１０３は予め定められた規則に従うパラメータを生成することもできる。ここでいう「予め定められた規則」とは、たとえば０．０１から１まで規則的にインクリメントまたはデクリメントするカウンタを用意し、一定時間ごとに０．０１単位で規則的にインクリメントさせる規則をいう。カウンタが示す各値をパラメータとして使うことにより、バスマスタが同時に経路切り換えを行おうとするときの切り換え対象となる経路が分散されることになる。よって、図８に示されるような経路リソースの奪い合いによる競合状態に陥ることがなくなる。
【００５３】
（経路切換部１０４）
経路切換部１０４は、決定部１０６および切換部１０８を有している。決定部１０６は、バスの負荷状況に合わせてどの経路を選択するかを決定する。切換部１０８は、これまで採用されていた経路を、データの伝送経路を決定部１０６によって決定された経路に切り換える。この「経路を切り換える」とは、パケット（またはフリット）を送信する中継装置を変更すること、または送信経路上で中継する中継装置を変更することをいう。決定部１０６および切換部１０８はハードウェアとして存在しなくてもよく、モジュール化されたプログラムとして実現されてもよい。
【００５４】
決定部１０６は、図１７に示すようなフロー表を管理している。決定部１０６は、経路表管理部１０２から経路切換要求を受けた経路でメモリにアクセスしている各フローに対し、どの経路に切り換えるかを決定する。切換部１０８は決定部１０６によって決定された経路への切換を実行する。図１８は、フローＩＤが２のフローの経路を切り換えたときのフロー表を示す。以下、図１９を参照しながら、フローの経路を切り換える処理の詳細を説明する。以下では、図１７のフロー表で示される状態から、図１８のフロー表で示される状態に書き換えられる例を説明する。図１７では、フローＩＤが１および２の各フローは経路０００１０２を使用し、フローＩＤが３のフローは経路１０１１０２を使用して伝送されるとする。
【００５５】
図１９は、経路切換部１０４の処理手順を示す。
【００５６】
経路切換部１０４の決定部１０６は、経路表管理部１０２から、経路０００１０２に対する経路切換要求を受信する（ステップＳ１）。このとき、決定部１０６は、図１７のフロー表を参照して、要求を受けた各経路に対するイテレーションを行う（ステップＳ２）。その結果、図１７で管理されるフロー１及びフロー２が経路切換対象のフローとして認識される（ステップＳ３）。決定部１０６は、各切り換え対象フローｉに対するイテレーションを行う（ステップＳ４）。
【００５７】
決定部１０４は、経路表管理部１０２で管理される経路表から、メモリＩＤが００のＤＲＡＭ０に対応する切換候補経路である経路０００１０２と経路００１１０２の経路評価値Ｅ１、Ｅ２を読み出す（ステップＳ５）。
【００５８】
図１６に示すように、経路評価値がＥ１＝１１２、Ｅ２＝６２であったとすると、決定部１０６は、それらの逆数の比率であるＥ１チルダ及びＥ２チルダを求める（ステップＳ６）。この例の場合は、Ｅ１チルダ＝６２／（１１２＋６２）＝０．４、Ｅ２チルダ＝１１２／（１１２＋６２）＝０．６となる。次に経路切り換えの対象フローであるフロー１とフロー２それぞれに対応する確率値として、パラメータ生成部１０３から２つの確率値Ｐ１及びＰ２を取得する（ステップＳ７）。いまそれぞれの確率値を、Ｐ１＝０．２及びＰ２＝０．７とすると、以下の関係を見て切り換え対象の経路を決定できる（ステップＳ８）。即ち、フロー１については、以下の基準によって経路が切り換えられる。
０＜＝Ｐ１＜０．６  →  Ｐ１が０．６（＝Ｅ２チルダ）より小さければ経路０００１０２に切り換え
０．６＜＝Ｐ１＜＝１．０  →  Ｐ１が０．６（Ｅ２チルダ）以上であり、且つ１．０（＝Ｅ１チルダ＋Ｅ２チルダ）以下であれば経路００１１０２に切り換え
【００５９】
またフロー２については、以下の基準によって経路が切り換えられる。
０＜＝Ｐ２＜０．６  →  Ｐ２が０．６（＝Ｅ２チルダ）より小さければ経路０００１０２に切り換え
０．６＜＝Ｐ２＜＝１．０  →  Ｐ２が０．６（Ｅ２チルダ）以上であり、且つ１．０（＝Ｅ１チルダ＋Ｅ２チルダ）以下であれば経路００１１０２に切り換え
【００６０】
上述の説明から理解されるとおり、上述のＥ２チルダは、選択確率として利用されているといえる。
【００６１】
この結果、決定部１０６は図１８に示すようにフロー表を更新する。すなわち、フロー１は経路０００１０２に留まり、フロー２は経路００１１０２に切り換えられる（ステップＳ１１）。この結果、切換部１０８はフロー２を経路００１１０２に切り換える。その後、決定部１０６は、各切換対象フローｉに対するイテレーションを行い（ステップＳ１２）、要求を受けた各経路に対するイテレーションを行う（ステップＳ１３）。以上の処理により、利用可能な複数の経路上にフローが確率的に分散されるため、経路の競合が抑制される。なお、上述した、フロー２を経路００１１０２に切り換える処理は、パケット（またはフリット）を送信する中継装置を図５に示すＲ００からＲ１１に変更する処理に相当する。
【００６２】
上述した処理は候補経路数が２本の場合の最も簡単な例である。そこで次に、候補経路が多いときの一般的な処理の例を示す。以下ではＮ本の候補経路が存在し、各候補経路の経路評価値がＥｉである場合、確率値の範囲判定の比率を算出するためにステップＳ６では次の数３にしたがって、正規化された値Ｅｉチルダを求めてもよい。
【数３】
2011148583.tif 000005
【００６３】
上述のＥｉチルダを用いて、ステップＳ８では生成した確率値Ｐｉが下記数４に示す確率範囲にあるとき、候補経路ｊを切り換え先の経路として選択する。
【数４】
2011148583.tif 000006
但し下記数５の条件を満たすとする。
【数５】
2011148583.tif 000007
【００６４】
また各フローの平均レートなどのレート情報が利用可能であれば、現在使用中の経路に対するＥｉチルダの値を次の数６ように補正してもよい。
【数６】
2011148583.tif 000008
但しｗは補正係数、ｕ（・）はステップ関数、ｒは当該フローの平均レート値、ｒｔｈは補正を行うかどうかを示す閾値である。
【００６５】
これによって、レートの大きなフローが他の経路に移動する確率が低くなり、レートの小さいフローが移動する確率が高まる。バスを流れる複数のメモリアクセスフローのレートのばらつきが大きく、高レートと低レートが混在するような用途においては、高レートのフロー同士が確率的に切り換え先経路で競合した場合の他のフローへの影響は大きいため、低レートのフローを優先的に経路切り換えしたほうがチップの動作をより安定させることができる。確率的な経路選択を行うことにより、低い負荷の経路が常に選択されるということが避けられる。したがって、従来行われていたような利己的な経路選択に起因する、リソース競合に伴うスループットの低下を防ぐことが可能となる。
【００６６】
また補正に用いる式は、数６には限られない。例えばシグモイド関数を用いて、数７のように定義してもよい。それ以外のさらに複雑な方法によって重み付けを行っても良い。
【数７】
2011148583.tif 000009
Ｋは、ｒｔｈ付近での補正の変化の度合いを調整するための係数である。
【００６７】
またステップＳ６において、読み出した経路評価値ＥｉからＥｉチルダに変換しているが、この部分は、予め変換テーブルとして準備しておいても良い。ステップＳ６は、ステップＳ５で読み出された経路評価値Ｅｉを検索のキーとして、変換テーブルを探索し、予めテーブルに格納されているＥｉチルダの値を取得する。変換テーブルを用いることにより、変換処理に要する演算時間を削減することができる。
【００６８】
以上、本発明の実施形態を説明した。本実施形態においては、経路を決定した後、決定された経路に切り換えて送信データを伝送するとしている。しかしながら本発明にかかる装置は、経路を実際に切り換える処理までを行う必要はなく、新たな経路を決定する処理までを行えればよい。経路を切り換える処理は、たとえば本発明の装置から指示を受けた既存のバス制御装置によって行われてもよい。そのため、たとえば図１０に示される切換部１０８や、中継部１０１は省略されてもよい。
【００６９】
上記変形例に関連して以下の点に留意されたい。
【００７０】
本願明細書では、バス制御装置は中継ノードであるとして説明したため、中継部１０１が省略された場合には厳密にはバス制御装置には該当しない。しかしながら、これは単に表現の問題である。中継部１０１が省略された構成は、データ転送経路の切り換えを制御するという意味においてはバス制御装置の範疇である。または、当該構成は、一般的なバス制御装置に対して送信経路の切り換えを指示する「制御装置」として捉えることもできる。
【００７１】
図２０は、制御装置１１０の構成例を示す。制御装置１１０の経路切換部１０４は、一般的なバス制御装置１１１からパケット（受信データ）を受け取り、上述の処理（説明は省略する。）を行うことによってそのパケットの出力経路を決定する。そして経路切換部１０４は、決定した送信経路で送信するよう、送信経路に関する指示を送信するとともに当該パケット（送信データ）を一般的なバス制御装置１１１に送信する。
【００７２】
上述の実施形態では、メモリはＤＲＡＭとしたが、ＳＲＡＭなどのオンチップメモリやキャッシュメモリであってもよい。またバスマスタとメモリ間だけではなく、プロセッサ同士の通信網に適用してもよい。またトポロジーもメッシュ網やトーラス網、その他の多段接続網であっても良い。またチップ設計時に使用する伝送性能や消費電力などを見積もるためのソフトウェア・シミュレータ上にアルゴリズムとして実装しても良い。設計ツールに本実施の形態を適用することで、マスキング前の評価段階でチップの性能向上を検証することができる。
【産業上の利用可能性】
【００７３】
本発明は、組込機器向けのＳｏＣに於けるオンチップバスや、汎用プロセッサ、ＤＳＰ上のローカルバスに於ける、データ転送経路の制御技術を備えたネットワークバス制御装置、制御方法、制御プログラムに利用可能である。
【符号の説明】
【００７４】
１００  バス制御装置
１０１  中継部
１０２  経路表管理部
１０３  パラメータ生成部
１０４  経路切換部
１１０  制御装置
１１１  一般的なバス制御装置
【図１】
2011148583.tif 000010
【図２】
2011148583.tif 000011
【図３】
2011148583.tif 000012
【図４】
2011148583.tif 000013
【図５】
2011148583.tif 000014
【図６】
2011148583.tif 000015
【図７】
2011148583.tif 000016
【図８】
2011148583.tif 000017
【図９】
2011148583.tif 000018
【図１０】
2011148583.tif 000019
【図１１】
2011148583.tif 000020
【図１２】
2011148583.tif 000021
【図１３】
2011148583.tif 000022
【図１４】
2011148583.tif 000023
【図１５】
2011148583.tif 000024
【図１６】
2011148583.tif 000025
【図１７】
2011148583.tif 000026
【図１８】
2011148583.tif 000027
【図１９】
2011148583.tif 000028
【図２０】
2011148583.tif 000029
【手続補正書】
【提出日】平成24年3月27日(2012.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々がパケットを送信する複数のバスマスタと、各バスマスタからのパケットが送信される少なくとも１つのノードとを接続する、ネットワーク化された複数の通信バス上に設けられ、前記複数の通信バスに流れるパケットの送信経路を制御するバス制御装置であって、
前記各バスマスタから前記少なくとも１つのノードまでの複数の送信経路および前記複数の送信経路の各々の送信状況を管理する経路表管理部と、
所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、
前記複数の送信経路の各々の送信状況と前記パラメータとに基づき、各バスマスタからのパケットが前記複数の送信経路に分散するよう、各バスマスタから前記少なくとも１つのノードまでの送信経路を決定する決定部と、
前記決定部によって決定された前記送信経路に基づいて、前記複数の通信バス上を流れるパケットの中継処理を行う中継部と
を備えたバス制御装置。
【請求項２】
前記パケットの送信経路を、前記決定部によって決定された新たな送信経路に切り換える切換部をさらに備え、
前記中継部は、前記切換部によって切り換えられた前記新たな送信経路を利用して前記パケットを送信する、請求項１に記載のバス制御装置。
【請求項３】
前記決定部は、前記パラメータが、前記送信状況を示す評価値に応じて算出される選択確率の範囲に含まれるか否かに応じて、前記選択確率に対応する送信経路に切り換えるか否かを決定する、請求項１記載のバス制御装置。
【請求項４】
前記決定部は、各経路の送信状況の良さに比例した確率分布を用いて経路の選択を行う、請求項１に記載のバス制御装置。
【請求項５】
前記決定部は、伝送レートが基準値よりも高いレートのパケットのフローに対しては、既に使用中の経路の選択確率を補正し、経路切換確率を制限する、請求項４に記載のバス制御装置。
【請求項６】
前記経路表管理部は、送信状況が予め定められた基準を下回った経路を切り換え対象の経路として特定し、
前記パラメータ生成部は、熱雑音を基にした乱数、または、一様分布、ポアソン分布または正規分布に基づく疑似乱数を利用して前記パラメータを生成し、
前記決定部は、前記切り換え対象の経路で伝送されるパケットのフローに関して、前記送信状況の悪化に応じて大きくなる評価値を算出し、前記パラメータが、前記評価値の範囲に含まれるか否かに応じて、前記評価値に対応する送信経路に切り換えるか否かを決定する、請求項３に記載のバス制御装置。
【請求項７】
前記経路表管理部は、送信状況が予め定められた基準を下回った経路を切り換え対象の経路として特定し、
前記パラメータ生成部は、規則的に変化するカウンタを利用して前記パラメータを生成し、
前記決定部は、前記切り換え対象の経路で伝送されるパケットのフローに関して、前記送信状況の悪化に応じて大きくなる評価値を算出し、前記パラメータが、前記評価値の範囲に含まれるか否かに応じて、前記評価値に対応する送信経路に切り換えるか否かを決定する、請求項３に記載のバス制御装置。
【請求項８】
各々がパケットを送信する複数のバスマスタと、各バスマスタからのパケットが送信される少なくとも１つのノードとを接続する、ネットワーク化された複数の通信バス上に設けられたバス制御装置に指示を出力して、前記複数の通信バスに流れるパケットの送信経路を制御する制御装置であって、
前記各バスマスタから前記少なくとも１つのノードまでの複数の送信経路および前記複数の送信経路の各々の送信状況を管理する経路表管理部と、
所定の確率分布に従うパラメータ、または、予め定められた規則に従うパラメータを生成するパラメータ生成部と、
前記複数の送信経路の各々の送信状況と前記パラメータとに基づき、各バスマスタからのパケットが前記複数の送信経路に分散するよう、各バスマスタから前記少なくとも１つのノードまでの送信経路を決定して、決定した前記送信経路に関する指示を前記バス制御装置に出力する決定部と、
を備えた制御装置。
【国際調査報告】
2011148583.tif 000030
2011148583.tif 000031
2011148583.tif 000032
2011148583.tif 000033