(57)【要約】  ネットワーク・オン・チップ（ＮｏＣ）において、様々な遅延要求のトラヒックが混在しても省電力伝送を実現する。  中継器は、データを送信する第１ノードと、第１ノードから送信されたデータを受信する第２ノードと、第１および第２ノードの間で伝送されるデータを中継する複数の中継器とを備えたデータ伝送システムにおいて用いられる。中継器は、通信バスに接続された他の中継器における負荷値の情報を取得する負荷値処理部と、複数のトラヒックが発生しているときにおいて、各中継器から得られた負荷値の情報に基づき、各トラヒックに要求される伝送品質に応じて、複数のトラヒックが伝送される伝送経路、および、複数のトラヒックのデータの宛先の少なくとも一方を集約する集約判定部とを備えている。
2011142087.tif 000002
【特許請求の範囲】
【請求項１】
データを送信する第１ノードと、前記第１ノードから送信された前記データを受信する第２ノードと、前記第１および第２ノードの間で伝送される前記データを中継する複数の中継器とを備えたデータ伝送システムにおいて用いられる中継器であって、
前記通信バスに接続された他の中継器における負荷値の情報を取得する負荷値処理部と、
複数のトラヒックが発生しているときにおいて、各中継器から得られた前記負荷値の情報に基づき、各トラヒックに要求される伝送品質に応じて、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータの宛先の少なくとも一方を集約する集約判定部と
を備えた中継器。
【請求項２】
前記負荷値は、伝送遅延時間、スループット、遅延時間の揺らぎ、中継器内でのデータ残留時間、バッファ量、取得可能帯域のいずれかである、請求項１に記載の中継器。
【請求項３】
前記伝送品質は、遅延時間、スループット、取得可能帯域のいずれかである、請求項１に記載の中継器。
【請求項４】
バスマスターと複数のメモリとの間において、ネットワーク化された通信バス上で、トラヒックを中継する中継器であって、
前記通信バスに接続された他の中継器における処理遅延時間の情報を取得する遅延時間処理部と、
複数のトラヒックが発生しているときにおいて、各中継器から得られた前記伝送遅延時間の情報に基づき、各トラヒックの許容遅延時間に応じて、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約する集約判定部と
を備えた中継器。
【請求項５】
データを受信する受信部と、
前記処理遅延時間の情報を送信する送信部と
をさらに備え、前記中継器が前記複数のメモリのいずれかに接続されているときは、前記遅延時間処理部は、前記送信部を介して、前記受信部での前記処理遅延時間の情報を他の中継器へ転送する、請求項４に記載の中継器。
【請求項６】
前記処理遅延時間の情報を受信する受信部をさらに備え、前記中継器が前記バスマスターに接続されているときは、前記遅延時間処理部は、前記受信部を介して、前記他の中継器における前記処理遅延時間の情報を収集する、請求項４に記載の中継器。
【請求項７】
前記集約判定部は、低遅延を要求するトラヒックの遅延時間、中継段数、および、前記通信バスを流れる伝送単位のデータ長を少なくとも１つ用いて評価値を生成し、前記評価値に応じて、前記伝送経路および前記メモリの少なくとも一方を決定する、請求項４に記載の中継器。
【請求項８】
トラヒックのデータを受信する受信部と、
前記データに基づいて前記トラヒックの振幅を解析する解析部をさらに備え、
前記集約判定部は、前記トラヒックの振幅の大きさに基づいて前記伝送経路、および、前記メモリの少なくとも一方を集約する、請求項４に記載の中継器。
【請求項９】
前記複数のトラヒックの送信先に基づいてトラヒックの交差の有無を判定し、トラヒックの交差が発生しているときは、前記複数のトラヒックのうちの少なくとも１つのトラヒックの送信先を変更することにより、交差を抑制する交差フロー判定部をさらに備えた、請求項４に記載の中継器。
【請求項１０】
前記集約判定部は、前記複数のトラヒックが連続して発生する場合には前記伝送経路および前記メモリの少なくとも一方を集約し、前記複数のトラヒックが間欠的に発生する場合には集約の対象から除外する、請求項４に記載の中継器。
【請求項１１】
少なくとも１つのバスマスターと、
複数のメモリと、
前記少なくとも１つのバスマスターおよび前記複数のメモリの間のネットワーク化された通信バス上に複数設けられた、請求項１に記載の中継器と
を備えた、チップ回路。
【請求項１２】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約し、
集約された結果、トラヒックを伝送しなくなった中継器の動作を停止させる、請求項１１に記載のチップ回路。
【請求項１３】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約し、
集約された結果、トラヒックのデータが収容されないメモリの動作を停止させる、請求項１１に記載のチップ回路。
【請求項１４】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約し、
集約された結果、トラヒックのデータが収容されないメモリの動作を停止させる、請求項１２に記載のチップ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス等の負荷の分散を実現する半導体システムにおける、省電力伝送かつ低遅延なネットワーク伝送技術に関する。
【背景技術】
【０００２】
従来から、半導体チップ回路でのメモリアクセス負荷の分散化を図るために、実現コストと処理性能とを加味してアクセス速度の異なるメモリを有機的に結合した階層型メモリの半導体システム回路が提案されている。特に、バスの負荷集中の課題を解決するために、半導体チップ回路内のネットワーク、すなわちネットワークオンチップ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ；以下本願明細書で「ＮｏＣ」と記述する。）により、複数の伝送経路にトラヒックを分散させる研究開発が行われている。【０００３】
ＮｏＣでは多くのメモリが必要であり消費電力が大きくなるため、ＮｏＣ内の中継器（「ルータ」とも呼ばれる。）における消費電力を低減することが課題となっている。従来から、トラヒックの中継動作の有無に応じて、中継器の動作を停止させたり、動作を再開させる方式（パワーゲーティング）が提案されている。【０００４】
非特許文献１では、中継器の動作を再開させる際に課題となる起動時間の隠蔽方法について、ルーティングを用いた解決法が提案されている。また、中継器の動作を停止、再開させる単位を細粒度で行う技術も公開されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】松谷  宏紀，  鯉渕  道紘，  中村  宏，  天野  英晴，”ＣＭＰにおけるオンチップルータのランタイムパワーゲーティングの評価”，  情報処理学会研究報告  ２００９−ＡＲＣ−１８５，  ｎｏ．２，  Ｏｃｔ  ２００９．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＮｏＣにおいては、メモリアクセスは時々刻々と変化するため、メモリアクセスの要求に追随できるようメモリアクセスの負荷を分散することが必要とされている。それを実現するためには、データを格納するメモリの決定と、バスマスター（例えば、ＣＰＵやＤＳＰ）からメモリまでの伝送経路の決定の両方が必要である。【０００７】
トラヒックが複数のメモリおよび複数の伝送経路に分散されるように、メモリおよび伝送経路をそれぞれ決定することで、メモリや伝送経路の負荷の低減は可能である。そして、メモリや伝送経路の負荷を分散することで、負荷のピーク値を下げることができる。その結果、必要となる伝送経路の最大性能を設計時に抑えることができ、より低い動作周波数で動作する伝送経路の採用で省電力化を図ることが可能となる。【０００８】
上述した省電力化のためのパワーゲーティング技術には、各中継器で負荷の有無を計測して中継器の電源供給を遮断する（スリープ制御）と、負荷が発生した時点ですばやく、電力供給を再開（ウェイクアップ制御）とが含まれる。【０００９】
パワーゲーティングでは、トラヒックの発生状況によってはスリープ制御およびウェイクアップ制御が多発するため、遅延が増大することがある。このような問題に対し、非特許文献１では、各中継器で、その遅延の隠蔽のための制御部を設けて対処している。【００１０】
しかしながら、そのような制御部を特別に設けると、複雑な制御に要する設計コストや部品コストが増大するという問題が生じる。【００１１】
本発明は上記課題に鑑みてなされたものであり、その目的は、中継器で遅延の隠蔽を行う特別な制御部を必要とせずに、パワーゲーティングによる遅延を低減しながら、ＮｏＣにおける省電力化を図ることにある。
【課題を解決するための手段】
【００１２】
本発明のある実施形態による中継器は、データを送信する第１ノードと、前記第１ノードから送信された前記データを受信する第２ノードと、前記第１および第２ノードの間で伝送される前記データを中継する複数の中継器とを備えたデータ伝送システムにおいて用いられる中継器であって、前記通信バスに接続された他の中継器における負荷値の情報を取得する負荷値処理部と、複数のトラヒックが発生しているときにおいて、各中継器から得られた前記負荷値の情報に基づき、各トラヒックに要求される伝送品質に応じて、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータの宛先の少なくとも一方を集約する集約判定部とを備えている。【００１３】
前記負荷値は、伝送遅延時間、スループット、遅延時間の揺らぎ、中継器内でのデータ残留時間、バッファ量、取得可能帯域のいずれかであってもよい。【００１４】
前記伝送品質は、遅延時間、スループット、取得可能帯域のいずれかであってもよい。【００１５】
本発明の他の実施形態による中継器は、バスマスターと複数のメモリとの間において、ネットワーク化された通信バス上で、トラヒックを中継する中継器であって、前記通信バスに接続された他の中継器における処理遅延時間の情報を取得する遅延時間処理部と、複数のトラヒックが発生しているときにおいて、各中継器から得られた前記伝送遅延時間の情報に基づき、各トラヒックの許容遅延時間に応じて、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約する集約判定部とを備えている。【００１６】
前記中継器は、データを受信する受信部と、前記処理遅延時間の情報を送信する送信部とをさらに備え、前記中継器が前記複数のメモリのいずれかに接続されているときは、前記遅延時間処理部は、前記送信部を介して、前記受信部での前記処理遅延時間の情報を他の中継器へ転送してもよい。【００１７】
前記中継器は、前記処理遅延時間の情報を受信する受信部をさらに備え、前記中継器が前記バスマスターに接続されているときは、前記遅延時間処理部は、前記受信部を介して、前記他の中継器における前記処理遅延時間の情報を収集してもよい。【００１８】
前記集約判定部は、低遅延を要求するトラヒックの遅延時間、中継段数、および、前記通信バスを流れる伝送単位のデータ長を少なくとも１つ用いて評価値を生成し、前記評価値に応じて、前記伝送経路および前記メモリの少なくとも一方を決定してもよい。【００１９】
前記中継器は、トラヒックのデータを受信する受信部と、前記データに基づいて前記トラヒックの振幅を解析する解析部をさらに備え、前記集約判定部は、前記トラヒックの振幅の大きさに基づいて前記伝送経路、および、前記メモリの少なくとも一方を集約してもよい。【００２０】
前記中継器は、前記複数のトラヒックの送信先に基づいてトラヒックの交差の有無を判定し、トラヒックの交差が発生しているときは、前記複数のトラヒックのうちの少なくとも１つのトラヒックの送信先を変更することにより、交差を抑制する交差フロー判定部をさらに備えていてもよい。【００２１】
前記集約判定部は、前記複数のトラヒックが連続して発生する場合には前記伝送経路および前記メモリの少なくとも一方を集約し、前記複数のトラヒックが間欠的に発生する場合には集約の対象から除外してもよい。【００２２】
本発明によるさらに他の実施形態によるチップ回路は、少なくとも１つのバスマスターと、複数のメモリと、前記少なくとも１つのバスマスターおよび前記複数のメモリの間のネットワーク化された通信バス上に複数設けられた、請求項１に記載の中継器とを備えている。【００２３】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約し、集約された結果、トラヒックを伝送しなくなった中継器の動作を停止させてもよい。【００２４】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約し、集約された結果、トラヒックのデータが収容されないメモリの動作を停止させてもよい。
【発明の効果】
【００２５】
本発明による中継器は、同時に複数のトラヒックが発生しているときにおいて、各中継器から得られた各中継器における処理遅延時間の情報に基づき、各トラヒックに要求される品質に応じて、複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの少なくとも一方を集約する。これにより、ネットワークオンチップＮｏＣにおいて、中継装置で遅延の隠蔽を行う特別な制御部を必要とせずに、パワーゲーティングによる遅延を低減しながら、省電力化を図ることができる。
【図面の簡単な説明】
【００２６】
【図１】（ａ）および（ｂ）は、ＮｏＣの一部の構成を示す図である。
【図２】２次元メッシュ型でバスマスターを結合した一般的なＮｏＣの構成例を示す図である。
【図３】実施形態１による経路制御方法に従って伝送経路の制御が行われるＮｏＣの一例を模式的に示す図である。
【図４】中継器の接続構成例を示す図である。
【図５】中継器の内部構成例を示す図である。
【図６】ユーザが携帯電話の内蔵カメラやムービーカメラなどの撮像装置で映像を撮影し、撮影内容を確認する際の撮像装置の処理に関連するデータの流れを示す図である。
【図７】低遅延伝送を実現するＮｏＣのネットワーク構造を示す図である。
【図８】パケット６０の伝送フォーマットの一例、および、パケット６０を複数のフリットに分割した例を示す図である。
【図９】ＮｏＣ上を流れるトラヒックフローの特性例を示す図である。
【図１０】遅延時間の情報の収集と転送の処理手順を示すフローチャートである。
【図１１】（Ａ）および（Ｂ）は、評価式に基づいてトラヒックの集約を行い、中継器動作の有無を制御する例を示す図である。
【図１２】トラヒックの特性に応じて決定したメモリと伝送経路の例を示す図である。
【図１３】（Ａ）および（Ｂ）は、中継器でのトラヒックの交差回数の削減前後のトラヒックのフローの例を示す図である。
【図１４】（Ａ）は交差するトラヒックのフローを示す図であり、（Ｂ）および（Ｃ）は交差フロー判定部２１３が管理する交差情報テーブルの構成を示す図である。
【図１５】中継器の処理手順を示すフローチャートである。
【図１６】図１５のステップＳ７０４の処理の詳細な手順を示すフローチャートである。
【図１７】メモリと経路の選択基準となる評価値の具体例を示す図である。
【図１８】メモリと経路の選択基準となる評価値に基づいてメモリと経路を選択する具体例を示す図である。
【図１９】（Ａ）および（Ｂ）は、機能ブロックごとにバスマスターや中継器の回路の電源を切る場合の利用例を示す図である。
【発明を実施するための形態】
【００２７】
以下、添付の図面を参照して、本発明による中継器の実施形態を説明する。中継器は、低遅延でデータの伝送を行う。
【００２８】
まず、図１（ａ）および図１（ｂ）は、ＮｏＣの一部の構成を示す。図１（ａ）はハードウェア接続構成例を示す図であり、図１（ｂ）はその模式図である。図１（ａ）および（ｂ）によれば、チップ１０上に設けられたバスマスター１ａ〜１ｃが、それぞれ中継器（Ｒ）２を介してバス３に接続されていることが示されている。
【００２９】
図２は、２次元メッシュ型でバスマスターを結合した一般的なＮｏＣの構成例を示す。マイクロプロセッサやＤＳＰ、メモリ、入出力回路等のバスマスター毎に、データ転送経路の制御を行う中継器Ｒが配置される。そして、中継器Ｒ間が短配線で接続（リンク）される。
【００３０】
なお、図２に示す構成では、各中継器とバスマスターとは直結されている。しかしながら、各中継器とバスマスターとの間は、ネットワークインタフェースコントローラ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ；以後「ＮＩＣ」と記述する。）等の他の機能部が接続される。
【００３１】
例えば、ＮＩＣは、バスプロトコルの変換処理機能や、バスマスターが要求するメモリサイズを確保できるメモリを複数のメモリの中から選択し、選択したメモリをバスマスターに通知する機能を備えている。また、中継器とメモリとの間には、ＮＩＣおよびメモリコントローラが接続される。ＮＩＣは、バスプロトコル変換処理や、データ伝送の往路と復路の対応関係付けを行い、往路に対する復路の応答をＮＩＣへ返信する。メモリコントローラは、ＮＩＣに接続され、メモリへのアクセス順序の制御などを行う。
【００３２】
次に、本発明の実施形態において想定するＮｏＣバスの構成を説明する。
【００３３】
図３は、本実施形態による経路制御方法に従って伝送経路の制御が行われるＮｏＣの一例を模式的に示す。図３のシステムには、一方でメモリに接続され、他方で１または複数のチップに接続されているアービター（調停器）が設けられている。１または複数のチップは、それぞれがインターネット処理やマルチメディア処理を行う。アービターおよびメモリの詳細な構成が、図３右側のブロックに示されている。なお、図３右側のアービターとメモリとをまとめたブロックは、最上段に記載された複数のチップと２本の接続線で接続されている。しかしこの記載は単なる例である。本数は任意である。
【００３４】
複数のチップはアービター（調停器）を介してメモリアクセスを行う。そして、アービター内部がＮｏＣで構成されている。図３右側のブロックに示すように、ＮｏＣを用いて複数のメモリへアクセスを分散化することで、バスの負荷を集中することなく、低い動作クロックでＮｏＣを動作することが可能となる。図の例では、インターネットの処理とメディア処理の２種類のトラヒックが混在し、アービター内のＮｏＣの伝送経路上でのトラヒック干渉により、伝送遅延が発生する。
【００３５】
具体的には、インターネット機能を内蔵したテレビや携帯電話のバスをネットワークオンチップで構成した場合、ネットワークオンチップのネットワーク上には、低遅延伝送が要求されるトラヒックと、そうでないトラヒックとが伝送される。例えば、低遅延要求レベルの高い伝送として、テレビのチャンネル切替えにおけるユーザ操作のように、高い応答性が必要な処理がある。一方、低遅延要求レベルの低い伝送として、インターネットのコンテンツ表示での背景描写のように応答性が必要でないトラヒックが存在する。これらのトラヒックが同一のネットワーク上で混在する場合、トラヒックの相互干渉により、遅延を許容できるトラヒック（低遅延要求レベルの低いトラヒック）が、低遅延伝送を必要とするトラヒック（低遅延要求レベルの高いトラヒック）に影響を与える。
【００３６】
本実施形態では、トラヒックの特性の違いがある伝送を想定する。トラヒックの特性として、例えば、トラヒックレート、アプリケーション毎のパケットサイズ、トラヒックフローの数、アプリケーションが必要とする低遅延の度合い（低遅延要求レベル）が挙げられる。
【００３７】
本実施形態によるＮｏＣでは、規定の時間長の伝送スロットを設け、伝送スロットに同期して対象情報を伝送してもよいし、非同期で対象情報を伝送してもよい。また、中継器ではパケットの廃棄は発生せず、伝送が可能になるまでパケットは保持されるものとする。さらに、フロー制御を導入して、送信するパケット間隔を調整してもよい。なお、本実施形態では、伝送するデータの単位を、パケット又はフリットとよぶ。
【００３８】
図４および図５は、中継器の構成を示す。
【００３９】
図４は、複数のバスマスター２００１、中継器２００２およびメモリ２００３の接続関係を示している。バスマスター２００１（たとえばＤＳＰ、ＣＰＵ、ＩＯなど）からの要求に従い、複数段の中継器２００２を介して、複数のメモリ２００３のうちの適切なメモリへアクセスが行われる。トラヒックの負荷を分散させるために、複数の中継器２００２を多段接続することで、伝送経路上での輻輳が抑制される。また、複数のメモリ２００３を用意して、アクセス先を集中させないことで、メモリへのアクセス負荷を軽減する。
【００４０】
図５は、中継器内部の構成例を示す。この構成では、バスマスターからメモリへの伝送と、メモリからバスマスターへの伝送が独立して制御される。
【００４１】
中継器は、受信部２０１および２０２と、送信部２０５および２０６とを有している。受信部（Ｂ１、・・・、ＢＸ）２０１は、他の中継器またはバスマスターから命令やデータ列を受信する。受信部（Ｍ１、・・・、ＭＺ）２０２は、他の中継器またはメモリからの命令やデータ列を受信する。送信部（Ｂ１、・・・、ＢＮ）２０５および送信部（Ｍ１、・・・、ＭＹ）２０６は、決定された伝送先（他の中継器またはメモリ）に命令やデータ列を送信する。
【００４２】
受信部を２系統有している理由は、複数の中継器、バスマスター、メモリからのトラヒックを同時に処理できるようにするためである。また送信部を２系統有している理由は、複数の中継器、バスマスター、メモリへのトラヒックを同時に処理できるようにするためである。なお、受信部および送信部の少なくとも一方が３系統以上設けられていてもよいし、一方または両方が１系統であってもよい。
【００４３】
また、図の構成では、バスマスターからのアクセス要求と、メモリからのアクセス要求を同時に処理できるようにするため、行き先ごと（バスマスター側又は、メモリ側）に受信バッファ（図示せず）を設けている。
【００４４】
中継器はさらに、パケット構造解析部２０３（またはパケット構造解析部２０４）と、遅延時間処理部２０７と、接続関係データベース２０８と、経路情報部２０９と、経路・メモリ集約判定部２１０と、交差フロー判定部２１３とを備えている。
【００４５】
パケット構造解析部２０３（またはパケット構造解析部２０４）は、受信したパケットの構造を解析し、低遅延伝送の要求の有無を判定する。なお、パケットの構造（伝送フォーマット）は図８を参照しながら後に詳述する。
【００４６】
遅延時間処理部２０７は、中継器の接続関係を示す情報を格納した接続関係データベース２０８を参照して、トラヒックの遅延時間の収集又は、送信のいずれかの動作を決定する。より具体的には、遅延時間処理部２０７は、受信部（Ｂ１、・・・、ＢＸ）２０１を介して、バスマスター側にある他の中継器、又は、バスマスターから受信状況の情報を受信する。この中継器は前述のＮＩＣであってもよい。受信状況の情報は、例えば、伝送遅延時間だけではなく、受信部のバッファ量やパケットの残留時間、遅延時間のゆらぎ（ジッター）、伝送効率（スループット）や取得可能な帯域など、伝送路や受信先のバスマスター（例えば、メモリ）の負荷値であってもよい。そして送信部（Ｍ１〜ＭＹ）２０６を介して受信状況の情報を、他の中継器又は、メモリへ伝送する。また遅延時間処理部２０７は、受信部（Ｍ１〜ＭＺ）２０２を介して、メモリ側にある他の中継器からの受信情報の情報、又は、メモリから受信状況の情報を受信し、送信部（Ｂ１〜ＢＮ）２０５を用いて他の中継器又は、バスマスターへ伝送する。これにより、決定された伝送先にデータが送信される。
【００４７】
経路情報部２０９は経路情報を管理する。
【００４８】
経路・メモリ集約判定部２１０は、伝送先の中継器、又はメモリを決定する。経路・メモリ集約判定部２１０が行う決定処理は、本実施形態では「集約」とも呼ぶ。「集約」とは、トラヒックを伝送するメモリと伝送経路との少なくとも一方が複数存在し得る場合において、その数をより少ない数に減らすことをいう。たとえば、複数のプロセッサ間で同時に複数のトラヒックが発生する場合、一部または全てのトラヒックを同一のメモリに送信することを「メモリの集約」と呼ぶ。また、一部または全てのトラヒックが共通する伝送経路を経て伝送されるよう伝送経路を決定することを、「伝送経路の集約」と呼ぶ。以下では、「メモリの集約」および「伝送経路の集約」の少なくとも一方を含むとき、「トラヒックの集約」と記述する。
【００４９】
経路・メモリ集約判定部２１０は、連続して発生する一連のトラヒックを集約し、間欠的に発生するトラヒックは集約しない。トラヒックを上述のように分別して集約することにより、間欠的なトラヒックが多く発生してもそれらは集約の対象から除外する。これにより、集約処理が多発することを防止でき、経路やメモリの集約処理に必要となる処理のオーバーヘッドを削減できる。なお、ここでいう「間欠的なトラヒック」とは、バスマスターやメモリがそれぞれ独立して発行する複数のトラヒックをいう。間欠的なトラヒック間では、互いの送信元および送信先に関連がない。一方、「連続して発生する一連のトラヒック」とは、バスマスターやメモリが相互に関連する複数のトラヒックをいう。一連のトラヒック間では、送信元および／または送信先に関連がある。なお、間欠的なトラヒックは連続的に伝送されているトラヒックと同じメモリや同じ伝送経路を用いて伝送される。
【００５０】
交差フロー判定部２１３は、中継器での交差フローの有無を判定する。交差フローの判定処理は、図１４を参照しながら後に詳述する。
【００５１】
図６は、ユーザが携帯電話の内蔵カメラやムービーカメラなどの撮像装置で映像を撮影し、撮影内容を確認する際の撮像装置の処理に関連するデータの流れを示す。図６には、バスマスターの種々の処理に関連して行われるメモリの動作と、中継器を介してバスマスターとメモリとの間で授受されるデータの例が示されている。
【００５２】
たとえばバスマスターが行う撮像処理では、映像データおよび音声データがメモリに送信されてメモリに記録される。また、変換処理では、映像データおよび音声データがメモリから読み出され、バスマスターによって変換された映像データおよび音声データがメモリに送られてメモリに記録される。
【００５３】
以下、この例を用いて本実施形態で対象とするトラヒックを具体的に説明する。
【００５４】
バスマスターは、端末を構成する撮像処理、変換処理、再生指示、表示処理の各処理を実現するプロセッサ、Ｉ／Ｏなどに対応する。メモリは、ＤＲＡＭやＳＤメモリカードのような外部メモリや、ＳＲＡＭのような内部メモリなどが対応する。メモリは複数存在していてもよい。そして、その各々の性能は一致している必要はない。また、メモリは物理的に１箇所に設けられる必要はなく、複数の位置に必要とされる個数配置されていてればよい。
【００５５】
撮像装置は、図示される撮像処理、変換処理、再生指示、表示処理の順に処理を進める。以下、上記の処理順に従い、発生するトラヒックのフローを説明する。
【００５６】
まず撮像処理では、カメラとマイクから得られた映像データ、音声データは、メモリに一旦記録される。映像、音声データはリアルタイムで生成されるため、バスマスターからメモリへのデータ伝送時には低遅延伝送の要求は高い。
【００５７】
次に、変換処理では、撮影処理で得られた映像データの画像符号化方式が再生処理に適した画像符号化方式に変換される（例：ＪＰＥＧからＭＰＥＧ）。また、音声データについても、必要な場合には符号化方式が変換される。上述の符号化方式の変換処理はトランスコード処理とも呼ばれる。
【００５８】
トランスコード処理の際には、メモリに記録された映像データ、音声データが読み出され、ＤＳＰなどによって変換処理が行われ、その結果がメモリへ記録される。トランスコード処理は、撮影処理のバックグランドで処理可能であるため、変換処理時のバスマスターとメモリ間の伝送には低遅延伝送の要求は最も低い。
【００５９】
次の再生指示は、端末を操作するユーザからの指示に応答して発せられる。再生指示が発せられた場合、該当するメモリに格納された映像、音声データの読み出し要求に関する制御データが、バスマスターからメモリへ送信される。また、その応答を示す制御データがメモリからバスマスターへ返信される。送受信される制御データは、低遅延伝送の要求が最も高い。その理由は、ユーザの操作性を高めるために、他の全てのデータよりも優先的に処理されるためである。
【００６０】
最後にユーザの再生指示に従い、メモリから該当する映像データ、音声データが読み出されてバスマスターへ伝送される。ユーザの操作性を高めるために、バスマスターに伝送される映像データおよび音声データの低遅延伝送の要求は、撮像処理と同様に低遅延伝送要求は高い。
【００６１】
以下では、本アプリケーションを例に具体的に説明する。なお、本実施形態は、このアプリケーションには限定されない。
【００６２】
図７は、低遅延伝送を実現するＮｏＣのネットワーク構造を示す。図の例では、中継すべき処理をバイパスする経路と、バイパスしない普通の経路とが区別されている。また、低遅延要求レベルが所定レベルより高いメモリと、そうでないメモリとが区別されて記載されている。例えば、低遅延要求レベルが予め定められたレベルよりも高いトラヒック（たとえば撮像処理のトラヒック）のみを収容するメモリとして、ＳＲＡＭなどの物理的に高速なメモリを利用してもよい。低遅延要求レベルが予め定められたレベルよりも高くはないトラヒックを収容するメモリとして、上述の物理的に高速なメモリ以外のメモリ（たとえばＤＲＡＭなどの比較的低速なメモリ）を利用してもよい。バイパスする経路を選択する方法や、低遅延要求が高いトラヒックを収容するメモリを選択する方法は、後に詳細に説明する。なお、バイパスする経路の設定は、図に示した例に制限されず、全ての中継器にバイパスする経路を設定しても良い。また、低遅延を要求するメモリは必ずしも設定する必要はない。
【００６３】
図８はパケット６０の伝送フォーマットの一例、および、パケット６０を複数のフリット群６４、６５に分割した例を示す。
【００６４】
パケット６０は、ヘッダフィールド６１、データフィールド６２および制御コードフィールド６３を備えている。フリット６４は、主にヘッダフィールド６１を伝送するフリットである。フリット群６５は、主にデータフィールド６２を伝送するフリットである。
【００６５】
ヘッダフィールド６１には、図面右側から順に、送信先のアドレス、送信元のアドレス、フローＩＤ、データ種別、要求する品質を区別するための情報（例えば、低遅延要求レベル（低遅延要求のタイプ））、振幅を示す情報がそれぞれ記述される。これらの情報の後に、伝送するデータが記述される。
【００６６】
低遅延要求のタイプの記述方法は任意であるが、多値で表現されてもよい。例えば、低遅延要求レベルが高く、高い応答性が必要なユーザインターフェース（図６の例では、再生指示）の処理は低い数値を割り当てる。一方、低遅延要求レベルが低く、バックグラウンド処理で対応可能な映像のトランスコード処理（図６の例では、変換処理）には高い数値を割当てる。低遅延要求が高いほど低い数値を割り当てればよい。
【００６７】
次に、トラヒックの振幅を説明する。たとえば、映像再生のスピードによって、必要とする映像データの量も変化するため、メモリからバスマスターへの転送速度やトラヒックの振幅は異なる。より具体的には、２倍速再生であれば、２倍のトラヒック量とトラヒックの振幅が必要になる。トラヒックの振幅は、利用するデータの種類（たとえばテキストデータであるか、動画データであるか等）や再生速度などにより決まる。
【００６８】
データフィールド６２には、たとえば映像データ、音声データが記述される。制御コードフィールド６３には、たとえば、予め定められたパケット６０の終了コードが記述される。
【００６９】
上述のヘッダフィールド６１のデータのうち、送信先のアドレスと、送信元のアドレスとに基づいて、パケットの中継処理と、受信側での受信処理とが行われる。また、低遅延要求のタイプに基づき、伝送経路が決定される。
【００７０】
送信側のバスマスターは、パケットを、フリットと呼ばれる小さなパケット単位に分解して伝送する。受信側のメモリでは、終了コードに基づき、伝送されたフリットをパケットへ再構築する。図の例で示したように、フリットの長さは、送信先のアドレスと、送信元のアドレス、低遅延要求のタイプを記述するフィールドなど、制御データを記述できる長さを基準としてもよい。
【００７１】
たとえば、１パケットのサイズは１２８バイト、１フリットのサイズは３２ビットまたは６４ビットである。ただし、１パケットのサイズおよび１フリットのサイズはアプリケーションによって異なり得るため、上述のサイズは一例に過ぎないことに留意されたい。
【００７２】
図９は、ＮｏＣ上を流れるフローの特性例を示す。
【００７３】
フローを識別するＩＤと、データ種別を識別する項目、低遅延伝送の要求の程度の高さ示す項目、トラヒックの特性を示す項目を用意する。低遅延伝送の要求の程度の高さについては、図９の例では、数値が低いほど要求が高い。図６の例で示したように再生指示のような制御データは要求が最も高い。
【００７４】
本実施形態では、トラヒックの振幅をトラヒックの特性として採用する。「トラヒックの振幅」とは、トラヒック量の大きさの時間的な変動幅を示し、平均的な振幅（トラヒック量）に対して、どの程度のずれがあるかを示している。たとえば「±３０％」は、平均の振幅に対して±３０％のずれがあることを示す。この数値が大きい程、トラヒックの負荷変動が高くなる。
【００７５】
なお、トラヒックがパケット化されてネットワーク上で伝送される場合、振幅が大きく、その周期が短いトラヒックは、相対的に長いパケットで、短い送信間隔で伝送される。逆に、振幅が小さく、その周期が長いトラヒックは、相対的に短いパケットで、長い送信間隔で伝送される。このように、トラヒックの周期も含めてトラヒックの特性として定義してもよい。
【００７６】
上述したデータ種別、低遅延伝送の要求の高低、トラヒックの振幅の情報は、半導体の設計時に想定されるトラヒックを評価することにより、事前に把握されてもよい。または、現実的には、ユーザ操作などの、半導体の設計時点では見積もりきれないトラヒックが発生することに鑑み、半導体の動作時に各中継器を利用してそれらの情報を収集してもよい。このフローの特性に基づき、後述の方法で伝送経路やメモリを選択する。なお、経路・メモリ集約判定部２１０で記憶するフロー特性に関する情報は、各フローが一定時間以上、伝送されなくなると消去する。また、経路・メモリ集約判定部２１０に記憶されたフロー特性に基づいて、ルーティングを決定しても良い。
【００７７】
中継器の受信部２０１、２０２は、図８で示した伝送フォーマットのパケットを受信する。パケット構造解析部２０３、２０４は、受信したパケットを解析し、解析した結果を経路・メモリ集約判定部２１０に記憶する。経路・メモリ集約判定部２１０が記憶する項目は、図９に示す項目であればよい。上述のとおり、本実施形態では、トラヒックの「振幅」をトラヒックの特性の一例としている。
【００７８】
図１０は、遅延時間の情報の収集と転送の処理手順を示すフローチャートである。
【００７９】
ステップＳ４０１において、遅延時間処理部２０７は、接続関係データベース２０８を参照して、中継器の接続関係を把握する。ステップＳ４０２において遅延時間処理部２０７は、自身が所属する中継器（以下「自中継器」と記述する。）がバスマスターに接続されているか否かを判定する。図７の中継器群Ｘのように、バスマスターに接続されていれば処理はステップＳ４０３に進み、接続されていなければ処理はステップＳ４０４に進む。ステップＳ４０３では、遅延時間処理部２０７は、メモリに直接接続された全ての中継器の遅延時間の情報を収集し、その情報を内部に記憶する。
【００８０】
ステップＳ４０４では、遅延時間処理部２０７は、自中継器がメモリに接続されているか否かを判定する。図７の中継器群Ｙのようにメモリに接続されていれば処理はステップＳ４０５に進み、接続されていなければ処理はステップＳ４０１に戻る。
【００８１】
ステップＳ４０５では、遅延時間処理部２０７は、自中継器の受信部２０１での処理遅延時間の情報を、バスマスターに直接接続された全ての中継器へ送信する。送信先は、問い合わせをしてきた中継器のアドレス、または、予め設定されたアドレスである。バスマスターに接続された中継器（図７の中継器群Ｘ）は、得られた遅延時間に基づき、伝送経路とメモリを決定する。なお、中継器（図７の中継器群Ｘ）は、前述のＮＩＣであってもよい。また、一般に実時間制約のあるアプリケーションは、設計時に定められた遅延時間内（許容遅延時間）に伝送しなければならない場合が多い。この許容遅延時間に基づき、各バスマスターは伝送経路とメモリを決定してもよい。さらに、許容遅延時間の大きなアプリケーションは、スループットが重視されることが多く、スループットまたは取得可能な帯域に基づき、各バスマスターは伝送経路とメモリを決定してもよい。
【００８２】
遅延時間の情報は、上述の中継器から定期的に送信されてもよいし、遅延時間処理部２０７から上述の中継器に対して要求を送信し、その要求に基づく中継器からの応答として送信されてもよい。遅延時間の情報は、受信部２０１でのデータの滞在時間で表現されてもよいし、単位時間当たりに処理したパケット数で表現されてもよい。
【００８３】
なお、次元順ルーティングなどＮｏＣにおいて一般的なルーティングで実装した場合や、メモリへの伝送経路が一意に決定されるネットワークの構造（例えば、バタフライ）を設計時に定義して宛先のメモリを選択する場合には、経路は一意に決定される。メモリに接続された中継器の遅延時間の情報を収集することで、主に、メモリのアクセス負荷を収集することが可能となる。
【００８４】
上述の伝送遅延は、バスマスターからメモリまでの経路で測定してもよい。また、遅延時間の情報のみならず、振幅の値を収集してもよい。
【００８５】
以上、バスマスターからメモリへのデータ伝送時に、メモリの直前に接続された中継器の受信部２０１の受信状態に基づいて遅延時間の収集を行う方法を説明した。バスマスターからメモリへのデータ伝送要求により、メモリからバスマスターへのデータ伝送時に、メモリの直前に接続された中継器の受信部２０２の受信状態に基づいて遅延時間を収集することで、バスマスターからメモリへの往路だけでなく、メモリからバスマスターへの復路についても、遅延時間を用いたメモリと伝送経路の選択が可能となる。本実施形態は、メモリからバスマスターへのデータ伝送時の往路についての説明を中心とするが、メモリからバスマスターへの復路についても同じ方法が適用可能である。
【００８６】
なお、中継器で生じる伝送遅延も含めたメモリと伝送経路の選択方法の詳細は後述する。
【００８７】
次に、本実施形態による、トラヒックを集約する処理を説明する。まず初めに、トラヒックが集約される態様を説明し、その後、集約のための中継器の動作を説明する。
【００８８】
図１１は、評価式に基づくトラヒックの集約を行い中継器動作の有無を制御する例を示す。
【００８９】
図１１（Ａ）は、マスタｋからメモリｋ（ｋ：１〜４の整数）へトラヒックが伝送されている状態を示している（伝送の初期状態）。初期状態では、全ての中継器がトラヒックの中継動作を行っている。なお、低遅延伝送の要求の高い一部のトラヒックは、低遅延伝送のために設けられた伝送経路を経由している。
【００９０】
初期状態で、トラヒックの伝送レートが低い伝送経路や書き込み速度が遅いメモリがあると、中継転送するトラヒックが少ないにもかかわらず、中継器は動作し続けなければならない。そこで、利用するメモリおよび／または伝送経路を他のメモリおよび／または伝送経路に集約して、その資源（リソース）の能力を最大限に使う。これにより、トラヒック伝送を行わないメモリおよび／または伝送経路を作り出すことが可能になる。そしてトラヒックを中継しない中継器の動作を停止させることにより、省電力化を図る。
【００９１】
図１１（Ｂ）は、評価式に基づくトラヒックの集約を行い、トラヒックを中継する中継器のみ動作させた場合の具体例である。後述の評価式を適用して、メモリや伝送経路の集約を行うことで、トラヒックを中継しない伝送経路を作り出し、トラヒックを中継しない中継器Ｒ０の動作を停止させる。「動作を停止させる」とは、電源オフ（OFF）状態にすること、または、休止状態に移行することを意味する。これにより、省電力化を図ることが可能となる。なお「電源オフ状態」とは、中継器内の全ての内部回路群への電源供給を遮断することをいう。また「休止状態」とは、中継器の内部回路群の一部への電源またはクロックの供給を停止すること、または、供給は行うが供給量を低下させることを言う。
【００９２】
図１２は、トラヒックの特性に応じて決定したメモリと伝送経路の例を示す。
【００９３】
図の例では、トラヒックの振幅の大きさ毎に、トラヒックのデータを収容するメモリを使い分けている。メモリ１は±５％の振幅のトラヒックのデータを収容し、メモリ２およびメモリ３は、それぞれ、±１０％、±３０％の振幅のトラヒックのデータを収容する。また、低遅延伝送の要求の高いトラヒックは低遅延の伝送経路を経由する。その他のトラヒックは、割当てられたメモリへ最小の中継回数で伝送できる伝送経路を選択する。
【００９４】
図示されるように伝送経路およびメモリを集約すると、複数の中継器Ｒ０はトラヒックを中継する必要はなくなり、またメモリ４はトラヒックのデータを収容する必要がなくなる。よって中継器Ｒ０およびメモリ４の動作を停止することが可能になる。
【００９５】
以上のように、伝送品質を加味しながら特定のメモリや特定の伝送経路を利用するようトラヒックを集約する。これにより、トラヒックを中継しない伝送経路を作り出し、トラヒックを中継しない中継器およびトラヒックのデータを収容しないメモリを電源オフ状態または休止状態に遷移させることで省電力化を図ることが可能になる。
【００９６】
図の例では、トラヒックの振幅が近いトラヒック同士が同じメモリへ割当てられるように、各メモリへトラヒックが割り当てられている。ただし、この割り当て方法は一例である。逆に、なるべく、異なる振幅のトラヒックが各メモリへ割当てられるように、メモリと伝送経路を決定してもよい。同じ振幅のトラヒックを同じメモリに収容することで、伝送品質の保証が行いやすくなり、逆に、異なる振幅のトラヒックを各メモリへ割当てることで、各メモリへの負荷が均一になることが期待できる。
【００９７】
次に、トラヒックのフローの交差を低減することによって輻輳を抑制し、資源（リソース）の能力のより効率的な利用を可能にするための伝送経路を決定する方法を説明する。
【００９８】
図１３（Ａ）および図１３（Ｂ）は、中継器でのトラヒックの交差回数の削減前後のトラヒックのフローの例を示す。
【００９９】
図１３（Ａ）は、図１２の例で示した、トラヒックの特性に応じてメモリと伝送経路を選択した例である。
【０１００】
いま、マスタ２およびマスタ３直下の各中継器によって中継されるトラヒックに注目する。まず、マスタ４からメモリ１に向かうトラヒックのフローと、マスタ２からメモリ２へ向かうトラヒックのフローとが交差している。さらにマスタ４からメモリ１に向かうトラヒックのフローは、マスタ３からメモリ３へ向かうトラヒックのフローとも交差している。
【０１０１】
「交差」は、中継器が異なるトラヒックのデータを中継する際、図５に示す送信部（Ｂ１〜ＢＮ）２０５および送信部（Ｍ１〜ＭＹ）２０６のうち、異なる送信部を用いるときに発生する。言い換えると、異なるトラヒックのデータを送信するために送信部を切り換えなければならないとき、トラヒックのフローが交差しているといえる。
【０１０２】
図１４（Ａ）は、交差するトラヒックのフローを示す。図の例では、送信先アドレスＢおよびＤは、異なる送信部を利用して送信されるとする。アドレスＡからアドレスＢへ伝送されるトラヒック（主経路上のトラヒック）のフローに着目すると、アドレスＣからアドレスＤへ伝送される２本のトラヒックのフローが交差している。したがって、アドレスＡからアドレスＢへ伝送されるトラヒックと、アドレスＣからアドレスＤへ伝送される２本のトラヒックとは交差しているといえる。
【０１０３】
図５に示す交差フロー判定部２１３は、上述の交差が発生しているか否かを判定する。図１４の（Ｂ）および（Ｃ）は、交差フロー判定部２１３が管理する交差情報テーブルの構成を示す。
【０１０４】
交差情報テーブルには、交差するフローに関する情報が記述されている。
【０１０５】
図１４の（Ｂ）の例では、交差情報テーブルには、トラヒックのフローを識別する識別番号（フローＩＤ）、フローの送信元アドレス、送信先アドレスが記述されている。図の例では、識別番号の１は、送信元アドレスがＡ、送信先アドレスがＢである。交差情報テーブルに記述された送信元アドレスと送信先アドレスの組合せから交差フローの有無を判定する。
【０１０６】
また、図１４の（Ｃ）の例では、交差情報テーブルには、フローを識別する識別番号（フローＩＤ）およびその中継器が利用する送信部が記述されている。図の例では、識別番号の１のフローは、送信部Ｍ１を利用して他の中継器またはメモリに伝送される。交差フロー判定部２１３は、交差情報テーブルに記述された送信部が複数のトラヒックのフロー間で一致するか否かを判定する。一致していれば交差は発生しない。一方、一致していない場合には、交差が発生する。
【０１０７】
交差が発生している中継器では、パケット転送の振分け処理が発生するため、輻輳の原因になりやすい。中継器での交差を防ぐことで、輻輳の抑制が期待できる。
【０１０８】
図１３（Ｂ）は、交差を回避してメモリと伝送経路を選択した例である。マスタ４からメモリ１へのトラヒック伝送を、マスタ４からメモリ４への伝送へ切替えることで交差を減らすることができる。また、マスタ１からメモリ３へのトラヒック伝送を、マスタ１からメモリ２へのトラヒック伝送へ切替えることで交差を減らすことができ、それにより、中継器でのトラヒック干渉を抑制でき、輻輳の抑制が期待できる。
【０１０９】
以上の方法で、伝送品質（トラヒックの特性、交差の有無）を加味しながら特定のメモリや特定の伝送経路へ集約することでトラヒックを中継しない伝送路を作り出し、トラヒックを中継しない中継器の動作を停止させることで省電力化を図る。なお、図１２で示した方法に対して、集約処理が複雑となるが、図１２の伝送品質を改善しながら省電力化を図ることが可能である。
【０１１０】
図１５は、中継器の処理手順を示すフローチャートである。まず、図１５の処理は全ての中継器で行われる処理ではないことに留意されたい。図１５の処理は、バスマスターと直接接続されている中継器（図７の中継器群Ｘに属する中継器）が、そのバスマスターからデータ（フリット）を受信したときに行う。トラヒックの集約は、トラヒックを中継する中継器によって行われるのではない。トラヒック発生直後にそのトラヒックを受信した中継器によって行うことにより、資源（リソース）の能力をより効率的に利用できる。
【０１１１】
なお、メモリからバスマスターに送信されるトラヒックも存在する。その場合には、メモリと直接接続されている中継器（図７の中継器群Ｙに属する中継器）が、そのメモリからデータ（フリット）を受信したときに行えばよい。
【０１１２】
他の中継器は、受けたトラヒックをそのまま通常どおり中継すればよい。他の中継器が行う処理手順の説明は省略する。
【０１１３】
図１５に記載の処理を実行する中継器は、他の中継器又はバスマスターからフリットを受信し、以下の処理手順に従って、メモリ又は中継器へフリットを転送する。
【０１１４】
図１５の処理によれば、音声データや制御データのように、トラヒックの振幅が小さく、かつ、高い低遅延伝送が望まれるアプリケーション（例えば、ＮｏＣで実装された多機能携帯電話で実現されるＩＰ電話や、オーディオ再生）が動作している場合は、評価式を用いたトラヒックの集約を行う。評価式を用いることで、遅延となる様々な要素（例えば、中継器の負荷、中継段数、データ長）を加味した、メモリと伝送経路に集約することが可能となる。
【０１１５】
また、映像やウェブ（Ｗｅｂ）機能に関するトラヒックのようにトラヒックの振幅が大きいアプリケーション（例えば、地上デジタル放送の受信処理、映像再生）が動作している場合は、トラヒックの振幅に応じたメモリと伝送経路の決定を行う。映像に関するトラヒックおよびウェブ（Ｗｅｂ）機能に関するトラヒックのような、振幅が類似するトラヒックを集約することで、トラヒックの多重効果により、集約を行いながら伝送効率の改善が期待できる。なお、振幅が大きいトラヒックを集約したとしても、伝送帯域が不足することがないように回路を設計することは可能である。統計的にみると、バスマスターやメモリが、同時にかつ継続して最大振幅に近い振幅でトラヒックを伝送させることがないためである（トラヒックの多重効果）。いずれかのトラヒックの振幅が小さくなったとき、他のトラヒックの振幅が大きくなることで、伝送帯域を効率的に利用できる。
【０１１６】
ステップＳ７０１において、受信部２０１は、バスマスターからフリット単位でデータを受信する。パケット構造解析部２０３は、受信したフリット単位のデータから、図８に示されるデータ列（パケット）を構築して送信先を特定し、再びフリットに分解して中継処理を行う。
【０１１７】
ステップＳ７０２において、経路・メモリ集約判定部２１０は、評価式を利用してトラヒックの集約を行うか否かを判定する。評価式でトラヒックの集約を行うかは、設計時に静的に決定しておいてもよいし、アプリケーションが要求する品質要求（図８で示したフリットの“低遅延要求”のフィールドで区別）に応じて集約方法を動的に決定してもよい。
【０１１８】
ステップＳ７０２において、評価式でトラヒックの集約を行うのであれば処理はステップＳ７０３に進み、そうでない場合には処理はステップＳ７０６に進む。
【０１１９】
ステップＳ７０３では、経路・メモリ集約判定部２１０は、各経路の遅延時間（Ｄ）を収集する。そして、ステップＳ７０４において、経路・メモリ集約判定部２１０は、低遅延要求の高い要求を収容するメモリを選択し、そのメモリへの遅延時間が最も小さい経路を選択する。ここで「低遅延要求の高い要求を収容するメモリ」は、設計時や実装時に予め特定されている、ＳＲＡＭなどの高速メモリである。なお、経路の具体的な選択方法については図１６で説明する。
【０１２０】
一方、ステップＳ７０６では、パケット構造解析部２０３は、受信データに基づいてトラヒックの振幅の大きさを解析し、ステップＳ７０７において各メモリのトラヒックの振幅を取得する。なお、各中継器に予めメモリ毎に収容するトラヒック振幅を定義してもよいし、各メモリとトラヒックの振幅について定義した記憶部からトラヒックの振幅の情報を取得してもよい。
【０１２１】
その結果、パケットの解析結果と各メモリで収容するトラヒックの振幅の定義から、経路・メモリ集約判定部２１０は、トラヒックの振幅の最も近いメモリを選択する（ステップ７０８）。
【０１２２】
次に、各中継器の経路・メモリ集約判定部２１０は、交差が発生しているかを探索し（ステップ７０９）、中継器で交差が発生しているか否かを判定する（ステップＳ７１０）。中継器で交差が発生していると判断された場合には、処理はステップ７１１に進む。ステップＳ７１１では、経路・メモリ集約判定部２１０は、他のメモリを再選択し、交差の解消を試みる（ステップ７１１）。なお、全メモリへ再選択しても、全て交差が検出された場合、ランダムにメモリを選択するか、最短経路のメモリを選択する。一方、中継器で交差が発生していないと判断された場合は、バスマスターからデータの送信を開始する。
【０１２３】
図１６は、図１５のステップＳ７０４の処理の詳細な手順を示すフローチャートである。本実施形態では、伝送先のメモリおよび伝送経路の少なくとも一方を集約するために評価式を定義する。この評価式では、主にメモリのアクセス負荷を反映したパラメータである「低遅延を要求するトラヒックの遅延時間（Ｄ）」だけではなく、中継器での中継処理によって生じる遅延時間に影響する「対象とするメモリまでの中継段数（Ｈ）」や「伝送対象とするデータのデータ長（Ｌ）」を加味する。これにより、伝送先のメモリと伝送経路を選択する。評価式は、Ｈ×Ｌ×Ｄによって定義される。
【０１２４】
具体的には、ステップＳ９０１において、まず、ある中継器から、低遅延を要求するトラヒックの遅延時間（Ｄ）、対象とするメモリまでの中継段数（Ｈ）、伝送対象とするデータのデータ長（Ｌ）の各情報が収集される。
【０１２５】
低遅延要求のトラヒックの遅延時間（Ｄ）については、図５で示した遅延時間処理部２０７が収集する。遅延時間処理部２０７は、メモリに接続された中継器（図７の中継器群Ｙに属する中継器）から遅延時間を収集する。メモリに接続された中継器の遅延時間処理部２０７については、受信部２０１でのパケットの残留時間や残留時間のバラツキ、残留量などの情報が遅延時間の情報として収集される。
【０１２６】
「対象とするメモリまでの中継段数（Ｈ）」は、対象とするメモリまでに介在する中継器の数である。上述の通り、中継段数は、設計時に、バスマスターやメモリの構成方法で一意に決定される。そこで、各メモリまでの中継段数の情報を各中継器に与えておけばよい。または、システム構成の変更の容易さを考慮して、システム上に１箇所に各中継器から各メモリまでの中継段数に関する情報を集めておき、それを読み出しても良い。
【０１２７】
「伝送対象とするデータのデータ長（Ｌ）」は、設計時に、決定されるデータであり、中継器、バスマスター、メモリで処理を行う基本単位である、設計時に決定したデータ長で、データの処理が行われる。システム構成の変更の容易さを考慮して、システム上に１箇所に各中継器から各メモリまでの中継段数に関する情報を集めておき、それを読み出して、中継器、バスマスター、メモリの各部が動作してもよい。
【０１２８】
一般に、データ長はアプリケーションで必要とされる伝送品質に応じて決定する。例えば、低遅延要求が高いアプリケーションに対しては、データ長を小さくすることで低遅延伝送を実現することができる。また、高いスループットが必要な場合は、データ長を長くすることで高スループット伝送を実現する。
【０１２９】
ステップＳ９０２では、経路・メモリ集約判定部２０３は、これらの情報に基づいて、経路選択を計算する（評価式＝Ｈ×Ｌ×Ｄ）。そして、評価式によって計算された評価値の閾値内で、最も小さい評価値の経路を対象に、フロー数が多い順に、又は、フロー数が均一になるように、転送先を決定する。
【０１３０】
図１５および図１６で説明した方法により、メモリのアクセス負荷だけではなく、中継器により生じる伝送遅延も含めたメモリと伝送経路の選択が可能となる。
【０１３１】
図１７は、メモリと経路の選択基準となる評価値の具体例を示す。
【０１３２】
評価値を算出するパラメータとして、バスマスターからメモリまでの中継段数（Ｈ）、パケットの長さ（Ｌ）、バスマスターからメモリまでの伝送遅延時間（Ｄ）を用いる。評価値の算出方法の具体例として、各パラメータ数値の掛け算が考えられる。
【０１３３】
ただし、本実施形態では掛け算で評価式を構築したが、必ずしも、本実施形態は評価式の演算方法には限定されない。たとえば、評価式は加減算であっても良い。評価値を加算式（例えば、評価値＝Ｈ＋Ｌ＋Ｄ）で構成した場合には、少ない演算量で、特定の項目（例えば、伝送遅延時間の項目）だけを重み付けして、その項目を重視した評価が可能となる。また、バスマスターからメモリまでの中継段数（Ｈ）、パケットの長さ（Ｌ）、バスマスターからメモリまでの伝送遅延時間（Ｄ）に応じた評価結果を算出できる評価式であればよい。また、全ての中継段数（Ｈ）、パケットの長さ（Ｌ）、伝送遅延時間（Ｄ）の全ての指標を用いる必要はなく、１つ以上の指標を用いてメモリおよび伝送経路を選択できればよい。
【０１３４】
図１７の例から理解されるように、中継段数が増加するほど、評価値は高くなる（図１７の（１））。また、データ長も長くなるほど評価値は高くなる（図１７の（２））。さらに、遅延時間も長くなるほど評価値は高くなる（図１７の（３））。図の例では評価値が高いほど、低遅延伝送には向かない経路であることがわかる。前述のフローの特性の低遅延要求レベルを示す数値に基づき、得られた評価値に合致した伝送経路とメモリを選択する。なお、低遅延要求レベルを示す数値と評価値の関係を事前に（設計時に）決めておき、動作時には、その関係から伝送経路とメモリを選択する。
【０１３５】
図１７を参照しながら、集約の方法を具体的に説明する。
【０１３６】
図１７の例では、経路毎の評価値として“４”、“８”、“１６”の値が算出されている。いま、閾値が８であると定義する。図１７の例では、最も小さい評価値の経路を対象に、フロー数が均一になるように、転送先を決定する。最も小さい評価値の経路は、評価値が“４”である経路１と経路３である。図１７の例では、フロー数の格差が小さくなるように経路１が選択される。この方法によれば、ある程度の集約効果に代えて、経路の評価値が閾値を越えにくく、伝送品質を容易に確保することができる。
【０１３７】
集約の効果を高める他の方法として、閾値である８、又は８に最も近い経路を選択候補とする。図の例では、経路２、経路４、経路５が候補として挙げられる。フロー数が最も大きい経路（図の例では、経路５）を選択することで、経路の集約効果を高めることができる。後者の方法は、高い経路の集約効果を得やすい。
【０１３８】
図１８は、メモリと経路の選択基準となる評価値に基づいてメモリと経路を選択する具体例を示す。
【０１３９】
この図は、バスマスターからメモリまでの経路を各中継器で管理する例を示している。図の例では、中継器（５）の経路情報（マスタ２から、各メモリへ伝送するための伝送経路）を示している。図の例（マスタ２  →  中継器（３）  →  メモリ１）ではマスタ２から中継器（１）を経てメモリ１に経路が設定されている。中継器（５）において、設定された各経路に対して評価値が算出されており、低遅延伝送が必要な場合、評価値の低い、「マスタ２  →  中継器（３）  →  メモリ１」の経路が選択される。
【０１４０】
これらの経路情報は、適応ルーティングに代表されるような方法で動的に構築されてもよいし、設計時に事前に決められていてもよい。適応ルーティングによるルーティング方法で実現した場合、設計時には想定していなかった負荷上昇などへの対応が容易になる。
【０１４１】
一方、図の例のように、設計時にバスマスターからメモリへルーティングを固定的に決めておいた場合、ルーティングの実装やチップ回路の消費電力を抑えることができる。この評価値を用いた方法を実現することで、メモリアクセスの負荷と中継器で発生する遅延の両方を加味したメモリと経路の選択が可能となる。
【０１４２】
図１９（Ａ）および（Ｂ）は、機能ブロックごとにバスマスターや中継器の回路の電源を切る場合の利用例を示す。
【０１４３】
図１９（Ａ）は、全てのバスマスターや中継器の回路の電源がＯＮにされたときの伝送経路の例を示す。図１９（Ｂ）は、一部のバスマスターや中継器の回路の電源がＯＦＦにされたときの伝送経路の例を示す。後者の例は、ウェブ（Ｗｅｂ）機能と映像処理機能とをＮｏＣによって実装する多機能携帯電話で想定される。具体的には、カメラの撮影処理時にはＷｅｂ機能に関連するバスマスター群や中継器群の電源をＯＦＦにし、映像処理機能に関連するバスマスター群や中継器群の電源をＯＮにしたときが想定される。
【０１４４】
図１９（Ａ）および図１９（Ｂ）において、最上段のバスマスターに直接接続されている中継器Ｒが図７の中継器群Ｘに属する中継器に相当し、最下段の中継器が図７の中継器群Ｙに属する中継器に相当する。メモリは記載されていないが、図面上のバスマスターの一部をメモリに置き換えればよい。
【０１４５】
図１９（Ａ）では、各トラヒックが独立して伝送されるよう、各伝送経路が選択されている。これにより、トラヒックの伝送負荷は分散されている。
【０１４６】
一方の図１９（Ｂ）では、電源がＯＦＦになった経路を避けて、利用する伝送経路を共通化し、伝送経路を集約している。これにより、動作させる中継器を抑え消費電力の低減を図っている。なお、電源がＯＦＦされることによってどの経路が利用できなくなったかは、バスマスターがアプリケーションレベルで取得する情報に基づいて特定することが可能である。
【０１４７】
本実施形態によれば、伝送品質を加味しながら特定のメモリや特定の伝送経路へ集約することでトラヒックを中継しない伝送路を作り出し、トラヒックを中継しない中継器の動作を停止させる。これにより、省電力化を可能としている。さらに、それだけではなく、アプリケーション動作の休止などにより、一部のバスマスターや中継器の回路の電源をＯＦＦした場合に、限られた伝送経路を用いて伝送するために、伝送品質を加味したトラヒックの集約を行う用途にも利用できる。加えて、設計ツールとしては、集約の結果、設計時に遊休となった中継器を実装時に削除することが可能となり、実装面積が小さな半導体の実現や、バスマスターの追加・修正なども容易になるため、半導体の最適設計に応用することも可能である。
【０１４８】
本願発明は、チップ（ＮｏＣ）上に実装されるだけでなく、チップ上に実装するための設計及び検証を行うシミュレーションプログラムとしても実施される。そのようなシミュレーションプログラムは、コンピュータによって実行される。本実施形態においては、図５に示される各構成要素は、シミュレーションプログラム上のオブジェクト化されたクラスとして実装される。各クラスは、予め定められたシミュレーションシナリオを読み込むことにより、上述した実施形態の各構成要素に対応する動作をコンピュータ上で実現する。言い換えると、各構成要素に対応する動作は、コンピュータの処理ステップとして直列的または並列的に実行される。
【０１４９】
バスマスターとして実装されたクラスは、シミュレータで定義されたシミュレーションシナリオを読み込むことにより、中継器のクラスにパケットを仮想的に送信するタイミング等の条件を決定する。そして、各経路での送信状態および本実施形態による処理をシミュレーションし、メモリおよび送信経路を決定する動作を行う。
【０１５０】
バスマスターとして実装されたクラスは、シミュレーションシナリオに記述されたシミュレーションの終了条件が成立する迄の間、動作を行い、動作中のスループットやレイテンシ、バスの流量の変動の様子、動作周波数、消費電力の見積値等を算出しプログラムの利用者に提供する。これらに基づき、プログラムの利用者はトポロジーや性能の評価を行い、設計及び検証を行う。
【０１５１】
例えばシミュレーションシナリオの各行には、送信元バスマスターのＩＤ、宛先バスマスターまたはメモリのＩＤ、送信するパケットまたはフリットのサイズ、送信するタイミング等の情報が記述されるのが普通である。また複数のシミュレーションシナリオをバッチ処理的に評価することで、想定した全てのシナリオで所望の性能が保証できているか否かを効率的に検証できる。またバスのトポロジーやノード数、プロセッサやＤＳＰ、メモリ、周辺ＩＯの配置を変化させて性能比較することにより、シミュレーションシナリオに最も適した網構成を特定することもできる。本実施形態による構成は、本態様の設計及び検証ツールとしても適用可能である。本願発明は、設計及び検証ツールとして実施される際にも適用可能である。
【産業上の利用可能性】
【０１５２】
本発明にかかる中継器（省電力伝送装置）は、システムＬＳＩ上のデータ伝送に利用できる。中継装置の代表的な用途として、プロセッサ、Ｉ／Ｏなどのバスマスターからメモリへアクセスする用途が想定される。但し、本発明にかかる中継装置の用途は、プロセッサからメモリへのアクセスの用途に制約されるわけではない。他の例は、メモリに代えて、マルチコアやグラフィックス・プロセッサとして、複数のプロセッサやＤＳＰとの間のデータ伝送用途を対象としてもよい。
【符号の説明】
【０１５３】
２０１、２０２  受信部
２０３、２０４  パケット構造解析部
２０５、２０６  送信部
２０７  遅延時間処理部
２０８  接続関係データベース
２０９  経路情報部
２１０  経路・メモリ集約判定部
２１３  交差フロー判定部
２００１  バスマスター
２００２  中継器
２００３  メモリ
【図１】
2011142087.tif 000003
【図２】
2011142087.tif 000004
【図３】
2011142087.tif 000005
【図４】
2011142087.tif 000006
【図５】
2011142087.tif 000007
【図６】
2011142087.tif 000008
【図７】
2011142087.tif 000009
【図８】
2011142087.tif 000010
【図９】
2011142087.tif 000011
【図１０】
2011142087.tif 000012
【図１１】
2011142087.tif 000013
【図１２】
2011142087.tif 000014
【図１３】
2011142087.tif 000015
【図１４】
2011142087.tif 000016
【図１５】
2011142087.tif 000017
【図１６】
2011142087.tif 000018
【図１７】
2011142087.tif 000019
【図１８】
2011142087.tif 000020
【図１９】
2011142087.tif 000021
【手続補正書】
【提出日】平成23年12月28日(2011.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを送信する第１ノードと、前記第１ノードから送信された前記データを受信することが可能な複数の第２ノードと、前記第１ノードおよび各第２ノードの間で伝送される前記データを中継する複数の中継器とを備えたデータ伝送システムにおいて用いられる中継器であって、
通信バスに接続された他の中継器における遅延時間、およびスループットの少なくとも一方に関する負荷値の情報を取得する負荷値処理部と、
複数のトラヒックが発生しているときにおいて、各中継器から得られた前記負荷値の情報と、前記第１ノードから前記各第２ノードまでの中継段数および伝送するデータ長の少なくとも一方に関する、設計時に決定される情報とを用いて、前記複数の第２ノードのうちから、データを受信する第２ノードを決定し、決定された前記第２ノードと前記第１ノードの間の伝送経路を決定する集約判定部と
を備えた中継器。
【請求項２】
（削除）
【請求項３】
（削除）
【請求項４】
（削除）
【請求項５】
データを受信する受信部と、
前記処理遅延時間の情報を送信する送信部と、
前記通信バスに接続された他の中継器における処理遅延時間の情報を取得する遅延時間処理部と
をさらに備え、前記中継器が前記複数のメモリのいずれかに接続されているときは、前記遅延時間処理部は、前記送信部を介して、前記受信部での前記処理遅延時間の情報を他の中継器へ転送する、請求項１に記載の中継器。
【請求項６】
（削除）
【請求項７】
（削除）
【請求項８】
トラヒックのデータを受信する受信部と、
前記データに基づいて前記トラヒックの振幅を解析する解析部をさらに備え、
前記集約判定部は、前記トラヒックの振幅の大きさに基づいて前記伝送経路、および、前記メモリの両方を集約する、請求項１に記載の中継器。
【請求項９】
前記複数のトラヒックの送信先に基づいてトラヒックの交差の有無を判定し、トラヒックの交差が発生しているときは、前記複数のトラヒックのうちの少なくとも１つのトラヒックの送信先を変更することにより、交差を抑制する交差フロー判定部をさらに備えた、請求項１に記載の中継器。
【請求項１０】
前記集約判定部は、前記複数のトラヒックが連続して発生する場合には前記伝送経路および前記メモリの両方を集約し、前記複数のトラヒックが間欠的に発生する場合には集約の対象から除外する、請求項１に記載の中継器。
【請求項１１】
少なくとも１つのバスマスターと、
複数のメモリと、
前記少なくとも１つのバスマスターおよび前記複数のメモリの間のネットワーク化された通信バス上に複数設けられた、請求項１に記載の中継器と
を備えた、チップ回路。
【請求項１２】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの両方を集約し、
集約された結果、トラヒックを伝送しなくなった中継器の動作を停止させる、請求項１１に記載のチップ回路。
【請求項１３】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの両方を集約し、
集約された結果、トラヒックのデータが収容されないメモリの動作を停止させる、請求項１１に記載のチップ回路。
【請求項１４】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの両方を集約し、
集約された結果、トラヒックのデータが収容されないメモリの動作を停止させる、請求項１２に記載のチップ回路。
【手続補正書】
【提出日】平成24年7月2日(2012.7.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを送信する第１ノードと、前記第１ノードから送信された前記データを受信することが可能な複数の第２ノードと、前記第１ノードおよび各第２ノードの間で伝送される前記データを中継する複数の中継器とを備えたデータ伝送システムにおいて用いられる中継器であって、
通信バスに接続された他の中継器における遅延時間、およびスループットの少なくとも一方に関する負荷値の情報を取得する負荷値処理部と、
複数のトラヒックが発生しているときにおいて、各中継器から得られた前記負荷値の情報と、前記第１ノードから前記各第２ノードまでの中継段数および伝送するデータ長の少なくとも一方に関する、設計時に決定される情報とを用いて、前記複数の第２ノードのうちから、データを受信する第２ノードを決定し、決定された前記第２ノードと前記第１ノードの間の伝送経路を決定する集約判定部と
を備え、
前記集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの両方を集約し、
集約された結果、トラヒックを伝送しなくなった中継器の動作を停止させる、中継器。
【請求項２】
データを受信する受信部と、
前記処理遅延時間の情報を送信する送信部と、
前記通信バスに接続された他の中継器における処理遅延時間の情報を取得する遅延時間処理部と
をさらに備え、前記中継器が前記複数のメモリのいずれかに接続されているときは、前記遅延時間処理部は、前記送信部を介して、前記受信部での前記処理遅延時間の情報を他の中継器へ転送する、請求項１に記載の中継器。
【請求項３】
トラヒックのデータを受信する受信部と、
前記データに基づいて前記トラヒックの振幅を解析する解析部をさらに備え、
前記集約判定部は、前記トラヒックの振幅の大きさに基づいて前記伝送経路、および、前記メモリの両方を集約する、請求項１に記載の中継器。
【請求項４】
前記複数のトラヒックの送信先に基づいてトラヒックの交差の有無を判定し、トラヒックの交差が発生しているときは、前記複数のトラヒックのうちの少なくとも１つのトラヒックの送信先を変更することにより、交差を抑制する交差フロー判定部をさらに備えた、請求項１に記載の中継器。
【請求項５】
前記集約判定部は、前記複数のトラヒックが連続して発生する場合には前記伝送経路および前記メモリの両方を集約し、前記複数のトラヒックが間欠的に発生する場合には集約の対象から除外する、請求項１に記載の中継器。
【請求項６】
前記の第２ノードはメモリであり、
前記集約判定部は、
（Ａ）設計時あるいは実装時に決定される、メモリの速度情報と、
（Ｂ）前記第１ノードから前記第２ノードまでの中継段数および伝送するデータ長の少なくとも一方の情報と
を用いて、前記複数の第２ノードのうちから、データを受信する第２ノードを決定し、決定された前記第２ノードと前記第１ノードの間の伝送経路を決定する、請求項１に記載の中継器。
【請求項７】
少なくとも１つのバスマスターと、
複数のメモリと、
前記少なくとも１つのバスマスターおよび前記複数のメモリの間のネットワーク化された通信バス上に複数設けられた、請求項１に記載の中継器と
を備えた、チップ回路。
【請求項８】
複数の前記中継器のうち、少なくとも１つの中継器に備えられた集約判定部は、前記複数のトラヒックが伝送される伝送経路、および、前記複数のトラヒックのデータが格納されるメモリの両方を集約し、
集約された結果、トラヒックのデータが収容されないメモリの動作を停止させる、請求項７に記載のチップ回路。
【国際調査報告】
2011142087.tif 000022
2011142087.tif 000023
2011142087.tif 000024
2011142087.tif 000025