説明

中継器

【課題】集積回路全体の遅延時間やジッターの増加、スループットの低下などを抑制させるよう、トラヒックの流量を制御する。
【解決手段】分散型のバスを備える集積回路において、複数のバスを接続する中継器は、トラヒックデータの入出力の組み合わせを切り替えるスイッチと、複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑情報と自中継器におけるトラヒックごとの混雑情報とを取得する混雑情報処理部と、各混雑情報に基づいて、トラヒックごとの流れにくさを示す混雑度の情報を求める混雑情報比較部と、混雑度に基づいて、トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する調整部と、割り当て結果に基づきスイッチを切り替える割当部と、混雑度が閾値よりも大きいトラヒックのパケットを廃棄する廃棄部と、廃棄されたパケットの再送を送信元のバッファに要求する要求部とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散型のバスを備える半導体の集積体回路において、バス間を接続する複数の中継器間を流れる複数のトラヒックの送信スケジューリングを調整する技術に関する。
【背景技術】
【0002】
図1(a)は、集中型のバス制御の例を示す。集中型のバス制御を行う従来の集積回路では、主に複数のバスマスタとメモリとの間は1つのバスによって接続され、アービターによって各バスマスタからメモリへのアクセスが調停される。しかし、集積回路の高機能化、マルチコア化により、回路の規模が増大し、トラヒックも複雑に変動しながらバスを流れており、集中型のバス制御による集積回路の設計が困難になってきている。
【0003】
その一方で、近年、並列計算機での接続技術や、ネットワーク制御の技術を取り入れた分散型のバスを有する半導体集積回路の開発が進んでいる。図1(b)は、分散型のバス制御の例を示す。分散型のバスを有する半導体集積回路は、複数の中継器が複数のバスで接続されて構成されている。近年、図1(b)に示すような分散型のバスを用いることにより、大規模化した集積回路内のトラヒックを、複数のバスに分散して伝送するネットワークオンチップ(Network on Chip)の取り組みがある。
【0004】
しかしながら、分散型のバスでは、中継器によって隔てられたバスマスタ間で、互いの送信スケジュールで調停が行われない。そのため、中継器において、トラヒックが合流する数やトラヒックの流量の変化によって干渉が発生し、遅延時間やジッターの増加、スループットの低下など、伝送品質の低下を引き起こす。
【0005】
分散型バスを流れるトラヒックの伝送品質の低下を回避する技術として、中継器において、トラヒックごとの送信スケジューリングを調整することで、中継器でのトラヒック間の干渉を抑制する技術が従来知られていた(例えば、特許文献1参照)。
【0006】
図2は、特許文献1に記載された、従来の送信スケジューリングを制御する中継器の構成、および、トラヒックA〜Cの送信経路を示す。トラヒックAは、バスマスタAから、中継器Eおよび中継器Fを介してメモリDへ送信される。トラヒックBは、バスマスタBから、中継器Eおよび中継器Fを介してメモリDへ送信される。トラヒックCは、バスマスタCから、中継器Fを介してメモリDへ送信される。
【0007】
図2に示す中継器は、複数の送信バッファを備えている。また、バスマスタA〜Cから送信されるデータパケットには、そのデータパケットがどのトラヒックのデータパケットであるかを特定するための情報が付与されている。
【0008】
各中継器は、データパケットを受信するとトラヒックごとに区別して各データパケットを異なるバッファに蓄える。そして、次の中継器へデータパケットを送信する際に、各トラヒックの伝送品質(遅延時間やスループット)が公平となるように、各バッファ内のデータパケットを送信する。この処理は、「スケジューリング調整処理」と呼ばれる。
【0009】
図2の例では、トラヒックAとトラヒックBとが合流する中継器Eでは、それぞれのトラヒックを中継器2へ中継する際に、50%ずつ公平に帯域が割り当てられるように、送信スケジューリングが調整される。さらに、トラヒックA、トラヒックB、トラヒックCが合流する中継器Fでは、同様に各トラヒックに33%ずつ公平に帯域が割り当てられるように、送信スケジューリングが調整される。
【0010】
これにより、3つのバスマスタからメモリDへの各トラヒックには公平に伝送帯域が割り当てられるため、トラヒック間の干渉による伝送性能の低下を抑制することができる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2008−541647号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
従来の中継器では、中継器ごとに自身を通過するトラヒックの状態のみに基づいて、送信スケジューリングが調整され、局所的には伝送性能が公平となるように制御が行われている。言い換えると、各中継器は、独立して利己的に送信スケジューリングを調整している。これでは、優先度が高く設定されたトラヒックなどの、回路を流れるトラヒックの条件によっては、各中継器が行う送信スケジュールの調整によってトラヒック間の競合が発生し、却って回路全体の伝送性能(遅延時間やスループット)を低下させることがあった。
【0013】
この課題を、以下、より具体的に説明する。
【0014】
図3は、トラヒック間で競合が発生したときのトラヒックA〜Cを示している。
【0015】
図3において、バスマスタAはトラヒックAを、中継器Eと中継器Fを介してメモリGへ送信し、バスマスタBはトラヒックBを、中継器Eと中継器Fを介してメモリDへ送信し、バスマスタCはトラヒックCを、中継器Fを介してメモリDへ送信している。
【0016】
さらに、図3では、トラヒックCは、緊急時に送信される、相対的に高い優先度が設定されていると想定している。このようなトラヒックCに、中継器Fは優先的にメモリDへのバスの全ての伝送帯域(100%)を割り当てる。この結果、トラヒックBにはメモリDへのバスの帯域が割り当てられていないことになる。
【0017】
中継器Eと中継器Fにおける送信スケジュールの調整を、従来のように、各中継器が自身を通過するトラヒックの状態のみに基づいて行ってしまうと、トラヒックBの送信先の中継器FがトラヒックBにバスの帯域を割り当てていないにもかかわらず、中継器Eは、トラヒックAとトラヒックBに、それぞれ50%の伝送帯域を公平に割り当ててしまう。これでは、回路全体では、中継器Eによる送信スケジューリング制御は、中継器Eから中継器Fへのバスの利用効率を却って低下させることになる。
【0018】
本発明は上記課題を解決するためになされたものであり、その目的は、回路全体の遅延時間やジッターの増加、スループットの低下などを抑制させるよう、中継器におけるトラヒックの流量を制御することにある。
【課題を解決するための手段】
【0019】
本発明による中継器は、分散型のバスを備える集積回路において、複数のバスを接続する中継器であって、前記バス上を伝送される各トラヒックのトラヒックデータは、パケットに分割されており、前記中継器は、トラヒックデータを受け取る入力および前記トラヒックデータを送出する出力の組み合わせを切り替えるスイッチと、複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑の程度を示す混雑情報と、自中継器における前記トラヒックごとの混雑情報とを取得する混雑情報処理部と、前記隣接の中継器から取得した前記混雑情報および自中継器における前記混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求める混雑情報比較部と、前記混雑度に基づいて、前記トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する送信スケジュール調整部と、前記バスの伝送帯域の割り当て結果に基づき、前記スイッチを切り替えるスイッチ割当部と、前記混雑度が予め定められた閾値よりも大きいトラヒックのパケットを入力バッファから廃棄するパケット廃棄部と、廃棄されたパケットの再送を送信元のバッファに要求する再送要求部とを備えている。
【0020】
本発明による他の中継器は、分散型のバスを備える集積回路において、複数のバスを接続する中継器であって、前記バス上を伝送される各トラヒックのトラヒックデータは、パケットに分割されており、前記中継器は、トラヒックデータを受け取る入力および前記トラヒックデータを送出する出力の組み合わせを切り替えるスイッチと、複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑の程度を示す混雑情報と、自中継器における前記トラヒックごとの混雑情報とを取得する混雑情報処理部と、前記隣接の中継器から取得した前記混雑情報および自中継器における前記混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求める混雑情報比較部と、前記混雑度に基づいて、前記トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する送信スケジュール調整部と、前記バスの伝送帯域の割り当て結果に基づき、前記スイッチを切り替えるスイッチ割当部と、異なるバスにデータを送出する複数の出力にそれぞれ接続された複数の出力バッファと、前記混雑度が予め定められた閾値よりも大きいトラヒックの連続するパケットに対して、同じ出力バッファを割当て、さらにトラヒックが送信される次の中継器に対して、ルーティングの設定の再利用を通知するルーティング再利用通知部とを備えている。
【0021】
本発明による中継器は、分散型のバスを備える集積回路において、複数のバスを接続する中継器であって、トラヒックデータを受け取る入力および前記トラヒックデータを送出する出力の組み合わせを切り替えるスイッチと、複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑の程度を示す混雑情報と、自中継器における前記トラヒックごとの混雑情報とを取得する混雑情報処理部と、前記隣接の中継器から取得した前記混雑情報および自中継器における前記混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求める混雑情報比較部と、前記混雑度に基づいて、前記トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する送信スケジュール調整部と、前記バスの伝送帯域の割り当て結果に基づき、前記スイッチを切り替えるスイッチ割当部と備えている。
【0022】
前記混雑情報は、自中継器において各トラヒックのトラヒックデータが自中継器を通過するのに要する遅延時間を示しており、前記混雑情報比較部は、前記隣接の中継器から取得したトラヒックごとの遅延時間および自中継器におけるトラヒックごとの遅延時間に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求めてもよい。
【0023】
前記混雑度は、伝送経路上でのトラヒックごとの流れにくさを示す数値であって、トラヒックが流れやすいほど小さい数値が与えられ、流れにくいほど大きい数値が与えられ、前記送信スケジュール調整部は、前記混雑度が相対的に小さいトラヒックに対して前記バスの伝送帯域を優先的に割り当ててもよい。
【0024】
前記送信スケジュール調整部は、前記混雑度が相対的に小さいトラヒックに対して前記バスの伝送帯域を相対的に広く確保し、前記バスの伝送帯域を先に利用可能にし、または、前記バスの伝送帯域の利用可能時間を相対的に長く確保することによって、前記バスの伝送帯域を優先的に割り当ててもよい。
【0025】
各トラヒックのトラヒックデータは、パケットに分割されて前記バス上を伝送されており、前記中継器は、前記混雑度が予め定められた閾値よりも大きいトラヒックのパケットを入力バッファから廃棄するパケット廃棄部と、廃棄されたパケットの再送を送信元のバッファに要求する再送要求部とをさらに備えていてもよい。
【0026】
各トラヒックのトラヒックデータは、パケットに分割されて前記バス上を伝送されており、前記中継器は、異なるバスにデータを送出する複数の出力にそれぞれ接続された複数の出力バッファと、前記混雑度が予め定められた閾値よりも大きいトラヒックの連続するパケットに対して、同じ出力バッファを割当て、さらにトラヒックが送信される次の中継器に対して、ルーティングの設定の再利用を通知するルーティング再利用通知部とをさらに備えていてもよい。
【0027】
前記バスの動作クロックは変更可能であり、前記中継器は、前記混雑度が予め定められた閾値よりも大きいトラヒックが送信されるときは、前記出力が接続されたバスの動作クロックを向上させる動作クロック制御部をさらに備えていてもよい。
【0028】
前記中継器は、自中継器において予め定められた閾値よりも大きな遅延が発生したときにおいて、自中継器における前記トラヒックデータが自中継器を通過するのに要する遅延時間にのみ基づいて前記混雑度を決定する協調制御停止部をさらに備えていてもよい。
【0029】
本発明による他の中継器は、分散型のバスを備える集積回路において、複数のバスを接続する中継器であって、トラヒックデータを受け取る入力バッファおよび前記トラヒックデータを送出する出力バッファの組み合わせを切り替えるスイッチと、複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑の程度を示す混雑情報と、自中継器における前記トラヒックごとの混雑情報とを取得する混雑情報処理部と、前記隣接の中継器から取得した前記混雑情報および自中継器における前記混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求める混雑情報比較部と、各トラヒックの混雑度を各トラヒックのトラヒックデータを格納する入力バッファの混雑度とし、前記入力バッファの混雑度に応じて、前記トラヒックデータが格納される出力バッファの重みの値を決定し、決定した重みの値に応じて前記トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する送信スケジュール調整部と、前記バスの伝送帯域の割り当て結果に基づき、前記スイッチを切り替えるスイッチ割当部と備えている。
【0030】
前記送信スケジュール調整部は、送信要求を受けた入力バッファに対し、各出力バッファに付与された重みの値に応じた確率でスイッチを接続してもよい。
【0031】
前記送信スケジュール調整部は、前記伝送帯域を時間的に複数のタイムスロットに分割し、前記重みの値によって指定された数のタイムスロットをそれぞれの出力バッファに割り当ててもよい。
【0032】
前記送信スケジュール調整部は、前記重みの値によって予め指定された割合で、確率的に前記出力バッファを選択してもよい。
【発明の効果】
【0033】
本発明の中継器によれば、隣接の中継器から取得した混雑情報および自中継器における混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報が求められる。そして、当該混雑度に基づいて、トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールが調整される。これにより、各トラヒックの伝送経路上でのトラヒック間の干渉による伝送品質(遅延時間、スループットなど)の低下を抑えることができる。分散バス全体の利用効率を向上させることで、集積回路全体の伝送性能の向上(低遅延、高スループット)を実現できる。
【図面の簡単な説明】
【0034】
【図1】(a)は、集中型のバス制御の例を示す図であり、(b)は、分散型のバス制御の例を示す図である。
【図2】特許文献1に記載された、従来の送信スケジューリングを制御する中継器の構成、および、トラヒックA〜Cの送信経路を示す図である。
【図3】トラヒック間で競合が発生したときのトラヒックA〜Cを示す図である。
【図4】本発明による中継器の動作の概要を示す図である。
【図5】実施形態1における分散型のバスの構成図である。
【図6】パケット60の伝送フォーマットの一例と、パケット60を複数のフリットに分割した例を示す図である。
【図7】実施形態1における中継器700の構成図である。
【図8】実施形態1における中継器700の動作の流れを説明するフローチャートである。
【図9】伝送経路ごとに各トラヒックのパケットデータの流れにくさを混雑情報として定量的に測定可能な対象を説明する図である。
【図10】中継器自身700と隣接する中継器711の混雑状態を比較して、自中継器700において、トラヒックAとトラヒックBの混雑度を算出する方法を説明する図である。
【図11】送信スケジュール調整部709と、バッファ割当部705による出力バッファ703の割り当て方法を説明する図である。
【図12】スイッチ割当部706による出力バッファが割り当てられたトラヒック間での送信スケジューリングの方法を説明する図である。
【図13】重み付きラウンドロビンにより、スイッチを切り替える場合の、重みの割り当て方法を説明する図である。
【図14】図5の多段接続網における、トラヒックA〜Cの各伝送経路を示す図である。
【図15】トラヒックAとトラヒックBとが同時に流れている場合の、トラヒックAの伝送経路上での各中継器の遅延時間の例を示す図である。
【図16】トラヒックAとトラヒックBに加えて、トラヒックCが同時に流れる場合の各中継器内でのトラヒックの遅延時間の例を示す図である。
【図17】混雑度の定義として、自中継器と隣接中継器との混雑情報の比率の変わりに、差分を用いた例を示す図である。
【図18】中継器R6に、トラヒックの流れの上流側にある中継器R0での遅延時間と、中継器R2での遅延時間とを基に、トラヒックAおよびトラヒックCに対して中継器R10へのバスの伝送帯域の割り当てを説明する図である。
【図19】中継器を格子状に並べた種々のトポロジーを示す図である。
【図20】実施形態2における中継器800の構成図の構成図である。
【図21】実施形態2においてバスマスタから送信されるパケットとそのフリット群、および、ヘッダーフリットに記載される情報を示す図である。
【図22】実施形態2における中継器800の動作を説明する図である。
【図23】実施形態3における中継器810の構成図である。
【図24】実施形態3における中継器810の動作を説明する図である。
【図25】実施形態4における中継器820の構成図である。
【図26】実施形態4における中継器820の動作を説明する図である。
【図27】実施形態5における中継器830の構成を示す図である。
【図28】実施形態5における中継器830の動作を説明する図である。
【図29】パケット交換方式と回線交換方式の違いを説明する図である。
【図30】実施形態6による、回線交換方式の中継器840の構成を示す図である。
【発明を実施するための形態】
【0035】
本発明の各実施形態の説明に先立って、まず本発明による中継器の動作原理を説明する。
【0036】
図4は、本発明による中継器の動作の概要を示す。
【0037】
図4では、図3と同様、バスマスタAがトラヒックAを、中継器Eおよび中継器Fを介してメモリGへ送信し、バスマスタBが中継器Eおよび中継器Fを介してメモリDへトラヒックを送信し、バスマスタCが中継器Fを介してメモリDへトラヒックを送信することを想定している。
【0038】
本発明による中継器Eは、トラヒックAおよびトラヒックBを、中継器Fに送信する。トラヒックAおよびトラヒックBの伝送帯域を決定するに際して、中継器Eは、隣接する中継器Fに要求を出し、中継器FにおけるトラヒックAおよびトラヒックBのデータパケットの流れにくさを定量的に示した値を中継器Fに通知してもらう。以下に説明する実施形態では、この値を「混雑情報」と呼ぶ。本明細書では、各トラヒックのデータパケットがそれぞれその中継器を通過するのに要する時間(以下、各トラヒックの「遅延時間」と呼ぶ)を混雑情報として利用する。
【0039】
中継器Fから混雑情報を受け取った中継器Eは、各トラヒックについて、自中継器Eにおける遅延時間と、隣接する中継器Fにおける遅延時間とを比較する。そして中継器Eは、トラヒックごとに経路上でのデータパケットの流れにくさを定量的に示す情報を算出する。本明細書においては、この情報を「混雑度」とも呼ぶ。トラヒックごとの混雑度が求められると、中継器Eは、その値の大きさに基づいて中継器Fへのバスの伝送帯域が割り当てられるように、各トラヒックの送信スケジュールを調整する。
【0040】
図4では、バスマスタCからメモリDへ、緊急時用の優先トラヒックCが送信される状況を想定している。このとき、中継器Fにおいて中継器FからメモリDへのバスの伝送帯域がトラヒックCによって一時的に占有される。緊急時の優先トラヒックCの発生により、トラヒックBのデータパケットがメモリDへと送信できないため、中継器F内でのトラヒックBの遅延時間が長くなる。
【0041】
中継器Fは、トラヒックAおよびトラヒックBの各遅延時間を自身の混雑情報として中継器Eに通知する。中継器Eは、中継器Fから通知された遅延時間および自中継器での遅延時間を比較する。その結果中継器Eは、中継器Fにおいて、トラヒックAよりもトラヒックBのデータパケットが流れにくくなったことを特定することができる。そこで中継器Eは、トラヒックAに対しては、中継器Fに至るバスの伝送帯域を50%から100%へと優先的に割り当てるように送信スケジュールを調整する。一方トラヒックBに対しては、バスの伝送帯域を50%から0%へと削減するように送信スケジュールを調整する。
【0042】
なお、本願明細書において、バスの伝送帯域を「優先的に割り当てる」とは、上述のように伝送帯域を相対的に広く確保することを意味することに限られない。その他、そのトラヒックがバスの伝送帯域を先に利用できるように解放してそのトラヒックを相対的に先に伝送させることを意味してもよいし、その伝送帯域の利用可能時間(許容時間)を相対的に長く確保することを意味してもよい。
【0043】
本発明では、優先度が高いトラヒックを優先して伝送しつつ、優先度が低いトラヒック、または、優先度が設定されていないトラヒック同士のフロー制御をどのように行うかを問題としている。
【0044】
以下、添付の図面を参照しながら、本発明による中継器の実施形態を説明する。
【0045】
(実施形態1)
図5は、本実施形態における分散型のバスの構成図である。
【0046】
本実施形態では、複数のバスマスタ(BM)とメモリとを、複数の中継器をバスで多段に接続した構成(多段接続網:MIN(Multistage Interconnection Network))を例に説明する。
【0047】
図5では、8個のバスマスタ(BM0〜BM7)と、12個の中継器(R0〜R11)と、8個のメモリ(メモリ0〜7)とがバスで接続される回路の様子を示している。12個の中継器は、4個ずつ3つのグループに分類されている。3つのグループは、8個のバスマスタに接続されるグループ(R0、R1、R2、R3)、8個のメモリに接続されるグループ(R8、R9、R10、R11)、及び、バスマスタ、又はメモリに接続する中継器を結ぶグループ(R4、R5、R6、R7)である。
【0048】
多段接続網を構成する各中継器は、2入力2出力のクロスバースイッチを備えている。図5(b)に示すように、スイッチを切り替えることによって入力と出力の組合せを変更することで、トラヒックの流れを2種類の伝送経路へ切り替えて送信できる。なお、出力先の伝送経路が異なっていれば、中継器は2つのトラヒックを各伝送経路に同時に出力することが可能である。
【0049】
多段接続網では、各中継器でのスイッチの切り替えによって、全バスマスタと全メモリ間で、必ず1つ以上の伝送経路を構築することができる。
【0050】
一般的に、クロスバースイッチによって、N個のバスマスタとM個のメモリの全てを接続するためには、スイッチがN×M個の必要となる。そしてバスマスタやメモリの数が増えるにつれてスイッチの数は急激に増加してしまう。これに対し、多段接続網(MIN)では、入出力数の小さいクロスバースイッチを階層的に接続することで少ないスイッチでバスマスタとメモリ間の接続を切り替えることができるという特徴がある。
【0051】
なお、本実施形態においては多段接続網を例に挙げて説明するが、これは一例である。集積回路の構成がその他のトポロジーであっても本発明を適用することが可能である。また、本実施形態では、バスマスタからメモリへのデータ転送は、パケット交換方式により複数の中継器を介して行われるとして説明する。
【0052】
パケットは、図5(a)に示すように、フリットと呼ばれるサイズに分割されて、隣接する中継器へと送信される。
【0053】
図6は、パケット60の伝送フォーマットの一例と、パケット60を複数のフリットに分割した例を示す。
【0054】
パケット60は、ヘッダフィールド61、データフィールド62および制御コードフィールド63を備えている。
【0055】
ヘッダフィールド61には、たとえば、送信先のアドレス、送信元のアドレス、トラヒックの優先度を示す情報が記述される。優先度の記述方法は任意であるが、多値で表現されてもよい。多値で記述する場合、高い応答性が必要なユーザインターフェースの処理には高い数値を割り当てて優先度を高く設定することができる。一方、バックグラウンド処理で対応可能な映像のトランスコード処理には低い数値を割り当てて優先度を低く設定できる。これらの情報の後に、伝送すべきデータが記述される。
【0056】
データフィールド62には、たとえば映像データ、音声データが記述される。制御コードフィールド63には、たとえば、予め定められたパケット60の終了コードが記述される。
【0057】
上述のヘッダフィールド61のデータのうち、送信先のアドレスと、送信元のアドレスとに基づいて、パケット60の中継処理と、受信側での受信処理とが行われる。
【0058】
送信側のバスマスタは、パケット60を、フリットと呼ばれる小さなパケット単位に分解して伝送する。1フリットは、バスを使って1サイクルで伝送可能なデータであり、そのサイズはバス幅の大きさによって決定される。パケット60を分割したフリットのうち、最初に送信されるフリットは、ヘッダーフリットと呼ばれる。ヘッダーフリットには、パケットの先頭であることを示すフラグ情報、及びパケットの送信先のアドレス情報が付与されている。
【0059】
なお、ヘッダーフリットに続く各フリットには、送信先を特定するアドレス情報は格納されていない。その理由は、ヘッダーフリットに続くフリットは、ヘッダーフリットと同じ宛先に送られるためである。ヘッダーフリットによって宛先が決まり、そのトラヒックのフリットを出力する出力バッファが決まると、後に続くフリットは、ヘッダーフリットと同じ出力バッファを利用してヘッダーフリットが示す宛先に伝送される。
【0060】
受信側のメモリは、制御コードフィールド63に記述された終了コードを検出すると、その終了コードに基づき、伝送されたフリットをパケットへ再構築する。
【0061】
たとえば、1パケットのサイズは128バイト、1フリットのサイズは32ビットまたは64ビットである。ただし、1パケットのサイズおよび1フリットのサイズはアプリケーションによって異なり得るため、上述のサイズは一例に過ぎないことに留意されたい。フリットの長さは、送信先のアドレスと、送信元のアドレスなど、制御データを記述できる長さを基準としてもよい。
【0062】
各中継器には、送られてきたフリットを蓄えるためのバッファが用意されている。フリットは一旦そのバッファに蓄えられた後、スイッチの切り替えによって目的の経路へと続く中継器や、宛先のメモリへ送信される。
【0063】
図7は、本実施形態における中継器700の構成図である。
【0064】
図7の中継器700は、隣接する中継器群710、711と、バスによって接続されており、隣接の中継器群710から送信されたフリットを、正しい宛先へとつながる隣接中継器711群へ中継するために、スイッチを切り替えて、フリットの送信スケジュールを制御する。
【0065】
中継器700は、入力バッファ701と、スイッチ702と、出力バッファ703と、ルーティング処理部704と、バッファ割当部705と、スイッチ割当部706と、混雑情報処理部707と、混雑情報比較部708と、送信スケジュール調整部709とを有している。
【0066】
以下、各構成要素の機能を説明する。
【0067】
入力バッファ701は、隣接する中継器(またはバスマスタ)から送られてきたフリットを蓄える一時バッファである。入力バッファ701を構成する一時バッファは、中継器700の入力ごとに1つ設けられていてもよいし、または、宛先の異なるパケットを区別して個別に蓄えて、それぞれ個別に送信スケジュール制御ができるように、入力ごとに複数の一時バッファが設けられていてもよい。本実施形態では、図7に示すように、入力毎に2個ずつ入力バッファを備えているとする。
【0068】
スイッチ702は、中継器700の入力と出力の接続の組合せを切り替えるためのクロスバースイッチである。
【0069】
出力バッファ703は、隣接する中継器711へフリットを送信する際に利用する一時バッファである。出力バッファ703は、隣接する中継器711の入力バッファと同じ数だけ設けられている。中継器700の各出力バッファと、中継器711の各入力バッファとの間には、1対1の対応関係が決められている。中継器700の出力バッファから送信されたフリットは、その出力バッファ703に対応する隣接の中継器711の入力バッファに蓄えられる。したがって、中継器700は、フリットの送信に利用する出力バッファを選択することで、隣接する中継器711の入力バッファを指定できる。
【0070】
ルーティング処理部704は、入力バッファ701に新しいヘッダーフリットが送られてくると、それを受け取り、ヘッダーフリットに記述された宛先情報を基に、次に受け渡す中継器を特定する。
【0071】
バッファ割当部705は、フリットが適切な経路へと中継されるように、フリットが蓄えられている入力バッファに対して、フリットを送信するための専用の出力バッファを割り当てる。
【0072】
バッファ割当部705では、入力バッファにヘッダーフリットが到着すると、ルーティング処理部704で特定された送信経路に接続されている出力バッファ703の中から、その時点で利用されていない出力バッファを選択し、フリットを送信するための専用のバッファとして出力バッファ703を1つ割り当てる。
【0073】
バッファ割当部705により、入力バッファと出力バッファとの組合せは、1つのパケット全体が中継器を通過するまで維持される。
【0074】
スイッチ割当部706は、バッファ割当部705によって決定された入力バッファ701と出力バッファ703の組合せの中から、実際に隣接の中機器711に対してフリットを送信する組合せを決定し、入力バッファ701と出力バッファ703間のスイッチ702を切り替える。
【0075】
混雑情報処理部707は、複数のトラヒックを共通して扱う近隣の中継器群710、711に対して要求を出し、トラヒックごとの混雑の程度を示す混雑情報を取得する。また混雑情報処理部707は、近隣の中継器群710、711から混雑情報の要求を受けたときは、その中継器に対して、各伝送経路のトラヒックごとにデータパケットの流れにくさを定量的に示した混雑情報を測定することによって取得し、取得した混雑情報をその中継器に出力する。
【0076】
なお、混雑情報としては、例えばデータパケットが中継器を通過するまでにかかる遅延時間を測定し、その値を用いる。
【0077】
伝送経路上でデータパケットが流れにくくなるほど、中継器700内からバスへフリットが送信されなくなるため、データパケットの遅延時間が長くなるため、各伝送経路でのデータパケットの流れにくさを遅延時間から定量的に特定することができる。
【0078】
混雑情報比較部708は、近隣の中継器710、711から通知されたトラヒックごとの混雑情報と、ヘッダに記述されている送信先によって定まる、トラヒックごとの中継器700自身の混雑情報とを比較し、各トラヒックの経路上での流れにくさを定量的に示す混雑度を算出する。
【0079】
送信スケジュール調整部709は、混雑情報比較部708で求められた混雑度に基づき、各トラヒックに対して、バスの伝送帯域の割り当てを調整する。
【0080】
中継器700における伝送帯域の割り当ての調整には、バッファ割当部705で出力バッファ703において一時バッファをどのように割り当てるかのスケジューリングの調整と、スイッチ割当部706がスイッチ702をどのように切り替えるかのスケジューリングの調整とが含まれている。
【0081】
次に、各中継器700の動作について説明する。
【0082】
図8は、本実施形態における中継器700の動作の流れを説明するフローチャートである。
【0083】
中継器700は、近隣の中継器710からフリットが送られてくると、入力バッファ701のうち、所定のバッファにそのフリットを蓄積する(ステップ801)。フリットを蓄積するバッファの選択方法は種々考えられる。たとえば先に説明したように、前段の中継器710の出力バッファから送信されたフリットを、その出力バッファ703に対応する隣接の中継器711の入力バッファに蓄えればよい。前段の中継器が存在せず、バスマスタからフリットが直接送信される場合には、バスマスタ側でフリットを蓄積する入力バッファを指定し、中継器700はバスマスタ側で指定された入力バッファにフリットを蓄積すればよい。これ以外にも、フリットがヘッダーフリットの場合には、空のバッファへ蓄積し、ヘッダーフリットでない場合には、そのフリットに対応するヘッダーフリットが蓄積されたバッファへ蓄積してもよい。同じパケットを構成するフリットごとに区別して、異なる入力バッファを選択すればよい。
【0084】
入力バッファ701は蓄積されたフリットがヘッダーフリットであるかどうかを判定する(ステップ802)。
【0085】
蓄積されたフリットがヘッダーフリットであった場合には、ステップ803に進んでデータの次の送信先を特定するための処理に移り、ヘッダーフリットでない場合には、ステップ807に進み、そのフリットに対応するヘッダーフリットと同じ経路を送信先とする。
【0086】
ルーティング処理部704は、入力バッファに送られてきたフリットがヘッダーフリットの場合、ヘッダーフリットに付与されている宛先のアドレス情報を基に、次に送る中継器を決定する(ステップ803)。
【0087】
図5に示した多段接続網の場合では、各メモリに対し3桁の2進数でアドレスが割り当てられ、各パケットのヘッダーフリットには、宛先となるメモリのアドレスが、3桁の2進数が付与されている。
【0088】
各中継器のルーティング制御部704は、ヘッダーフリットに付与された3桁のアドレスのうち、中継器の段数と同じ桁の数字を読み取る。そしてその値が0ならば図5における右上の中継器へフリットを送り、値が1ならば図5における右下の中継器へフリットを送るように経路を決定する。
【0089】
例えば、バスマスタBM2から、メモリ5(アドレス:101)へデータを送る場合には、アドレスに記載された3桁の数字に従って、まず中継器R1では右下の中継器R7へフリットが送信され、次に中継器R7では右上の中継器R10にフリットが送信され、最後に中継器R10で右下のメモリ5へフリットが送信される。これにより、バスマスタBM5からメモリ2へとフリットが伝送される。
【0090】
なお、ルーティング処理部704でのルーティング(経路)制御の方法としては、分散バスのトポロジーに応じて、適切に目的地までフリットが送られる方法であれば、上記以外の方法であってもよい。
【0091】
フリットを送信する隣接の中継器が決まると、中継器700は、混雑情報処理部707を介して、隣接する中継器711と中継器710から混雑情報を取得・参照する(ステップ804)。
【0092】
図9は、伝送経路ごとに各トラヒックのパケットデータの流れにくさを定量的に測定可能な対象を説明する図である。測定された結果が混雑情報として取り扱われる。混雑情報は、中継器700内での(1)データパケットが中継器700を通過するまでにかかる遅延時間や、(2)入力バッファ内に残っているフリット数、(3)バスの空帯域等である。
【0093】
集積回路では、実装面積やコスト等の課題から、回路上のバッファのサイズをできるだけ小さくすることが望まれる場合が多い。このため、入力バッファのサイズが小さい場合には、入力バッファ内のフリット数(2)を混雑の程度を測る指標として採用しては精度が低くなってしまう。また、バスの空帯域(3)を測定する場合には、所定の時間、バスの状態を記録ためのメモリ(バッファ)が必要となる。これに対し中継器内のフリットの遅延時間(1)を混雑の程度を測る指標とする場合には、少ないバッファサイズでも混雑の程度を精度よく測ることができる。
【0094】
また、本実施形態では、中継器間を接続するバス(3)として電気信号を伝えるバスを想定しているが、これ以外にも、光信号によりデータを伝える有線バスや、磁気や電磁波を利用して信号を伝える無線バスであっても良い。さらに、光信号や電磁波による通信では、1つのバス上で異なる波長や周波数を同時に用いることができる。このためバス上で利用されている波長や周波数の利用数、又は空き数を基に混雑度と定義しても良い。
【0095】
以下の説明では、中継器700内のバッファサイズが少ない場合を想定し、(1)データパケットが中継器700を通過するまでにかかる遅延時間を混雑情報として説明する。なお、バッファを確保できるのであれば、上述の(2)または(3)を採用してもよい。この混雑情報は、混雑情報処理部707によって取得される。
【0096】
次に、混雑情報比較部708により、中継器700と、隣接する中継器710(中継器711)との間での混雑情報を比較し、経路上でのトラヒックごとの流れにくさを示す混雑度を求める(ステップ805)。
【0097】
図10は、中継器自身700と隣接する中継器711の混雑状態を比較して、自中継器700において、トラヒックAとトラヒックBの混雑度の算出方法を説明する図である。
【0098】
本実施形態では、混雑度の値は、混雑情報比較部706により、トラヒックごとに下流側にある中継器711から通知されたデータパケットの遅延時間と、自中継器700でのデータパケットの遅延時間の比率を混雑度として定義する。
【0099】
例えば、図10において、トラヒックAは、データパケットが中継器700を通過するまでに10サイクル、下流側の中継器711を通過するのに5サイクルの遅延が発生しているとする。このとき、トラヒックAの混雑度は以下のように算出できる。
トラヒックAの混雑度: 5/10 = 0.5
【0100】
一方、トラヒックBでは、データパケットが中継器700を通過するために12サイクル、中継器711を通過するために15サイクルかかるとする。このとき、トラヒックAの混雑度は以下のように算出できる。
トラヒックBの混雑度: 15/12 = 1.25
ここで、混雑度の値が大きいほど、データパケットが流れにくいものとすると、中継器700の近隣では、トラヒックAの方がトラヒックBよりもデータパケットの流れやすさを定量的に特定できる。
【0101】
図10では、混雑度を中継器1の遅延時間と、中継器2の遅延時間の比率として定義したが、これ以外にも、例えば中継器1での遅延時間と中継器2での遅延時間の差分や、遅延時間の総和など、自中継器700と隣接する中継器711の混雑情報の比較した値を混雑度として定義し、その値を用いてもよい。
【0102】
また、中継器間の遅延時間の値と混雑度の値との対応関係を予めテーブル情報として定義しておき、通知された遅延時間に対応する混雑度をテーブル情報を参照することで求める方法であってもよい。
【0103】
次に、図8のステップ806において、送信スケジュール調整部709は、トラヒックの混雑度に基づき、混雑度が求まっている入力バッファに対してフリットを送信するための優先順位を決定する。「混雑度が求まっている入力バッファ」とは、各トラヒックの混雑度と同じである。すなわち、混雑度xを有するトラヒックtが存在するとき、そのトラヒックtのフリットが入力される入力バッファの混雑度は、xとなる。そしてバッファ割当部705は、入力バッファの優先順位に基づいて出力バッファを割り当てる。
【0104】
図11は、送信スケジュール調整部709と、バッファ割当部705とによる出力バッファ703の割り当て方法を説明する図である。
【0105】
中継器内で入力バッファには、トラヒックごとに区別されてフリットが蓄えられ、出力バッファを介して次の中継器へと送信される。
【0106】
図11では、入力0からのトラヒックに対して入力バッファ0と入力バッファ1が用意されており、入力1からのトラヒックに対しては、入力バッファ2と入力バッファ3が用意されている。そして、混雑情報比較部708により入力バッファ0、入力バッファ1、入力バッファ2に対して、混雑度がそれぞれ1.0、0.25、0.5と求められているとする。
【0107】
入力バッファがどの出力バッファに対して割り当てを要求するかは、先に説明したように、入力バッファに蓄積されている各トラヒックのフリットがどの送信経路でメモリに送信されるかによって特定される。異なる入力バッファが同じ出力に接続された2つの出力バッファに対して割り当てを要求することがあるため、出力バッファの割り当てを決定する必要がある。
【0108】
送信スケジュール調整部709は、混雑情報比較部708によって求められた混雑度の情報を基に、各入力バッファに対して、出力バッファの割り当ての優先順位を付与する。図11の例では、各入力バッファの混雑度を、そのまま出力バッファの割り当ての優先順序として用いる場合を想定して説明する。なお、出力バッファの割り当ての優先順序は、その出力バッファから送出されるフリットが格納された入力バッファの混雑度の値が小さいものほど優先されるものとする。
【0109】
各入力バッファの優先度が決まると、各入力バッファは、ルーティング処理部704によって特定された次の中継器へ接続する出力側の出力バッファのうち、利用されていない出力バッファに対して、出力バッファの割り当てを要求する。
【0110】
バッファ割当部705は、各出力バッファに対して割り当て要求をしている入力バッファの中から、最も混雑度の小さいものに対して割り当ての決定を通知する。
【0111】
図11の例では、入力バッファ0、入力バッファ1、入力バッファ2が、出力0側の出力バッファに対して、それぞれ割り当てを要求している。そして、要求のあった出力バッファごとに混雑度の最も小さかった入力バッファ0と、入力バッファ2に対して割り当ての決定がなされる。
【0112】
出力バッファの割り当ては、ヘッダーフリットを送信する際に決定され、そのヘッダーフリットに対応するパケットを構成する全てのフリットが送信されるまで、出力バッファが割り当てられている状態が継続される。
【0113】
次にスイッチ割当部706は、入力バッファの混雑度の小さいものから順番に入力バッファと出力バッファ間のスイッチを接続し、入力バッファ内のフリットを、隣接する中継器へと送信する(ステップ807)。
【0114】
図12は、スイッチ割当部706によって出力バッファが割り当てられたトラヒック間で、送信スケジューリングを調整する方法を説明する図である。
【0115】
本実施形態における中継器での送信スケジューリングは、入力バッファと出力バッファ間でのスイッチの接続の切り替えによって行われる。
【0116】
図12では、全ての入力バッファに対して、出力バッファの割り当てが完了している。入力バッファ0には出力バッファ0が割り当てられ、入力バッファ1には出力バッファ3が割り当てられている。また、入力バッファ2には出力バッファ1が割り当てられ、入力バッファ3には出力バッファ2が割り当てられている。
【0117】
スイッチ割当部706は、それぞれの出力に接続する出力バッファに接続する入力バッファの中で混雑度が小さい入力バッファに対してスイッチを接続し、隣接する中継器へフリットの送信を許可する。入力および出力の組が異なっていれば、スイッチ割当部706は、当該異なる組についてはスイッチを同時並列的に接続できる。
【0118】
図12に示す、出力0に接続する出力バッファ0と出力バッファ1について検討すると、出力バッファ1を割り当てられた入力バッファ2の混雑度0.5の方が、出力バッファ0を割り当てられた入力バッファ0の混雑度1.0よりも小さい。そのため、入力バッファ2と出力バッファ1との間でスイッチの接続が行われる。スイッチが接続された入力バッファの中身が空になり、そのフリットの送信が終了すると、入力バッファ0と出力バッファ0との間でスイッチの接続が行われ、フリットが送信される。
【0119】
同様に、出力1に接続する出力バッファ2と出力バッファ3について検討すると、出力バッファ3を割り当てられた入力バッファ1の混雑度0.25の方が、出力バッファ2を割り当てられた入力バッファ3の混雑度2.0より小さい。そのため、入力バッファ3と出力バッファ2との間でスイッチの接続が行われる。スイッチが接続された入力バッファの中身が空になり、そのフリットの送信が終了すると、入力バッファ1と出力バッファ3との間でスイッチの接続が行われ、フリットが送信される。その結果、それぞれフリットが隣接する異なる中継器に送信される。
【0120】
このように、各トラヒックの混雑度の値に基づいて、スイッチの割り当ての優先順序を調整することにより、各トラヒックに対して出力側のバスに対して伝送帯域の割り当て量を調整することができる。
【0121】
なお、スイッチの切り替え方法としては、混雑度の小さい入力バッファからスイッチの接続を切り替えて、順番に入力バッファの中身を空にする方法以外にも、例えば、重み付きラウンドロビン(Weighted Round Robin:WRR)を用いる方法がある。
【0122】
図13は、重み付きラウンドロビンにより、スイッチを切り替える場合の、重みの割り当て方法を説明する図である。
【0123】
重み付きラウンドロビンでは、フリットの送信要求のあった全ての入力バッファに対して、1フリット送信するごとに、各出力バッファに付与された重みの値に応じた(比例した)確率でスイッチを接続する方法である。以下に説明する重みの算出処理や、割り当て処理は、送信スケジュール調整部709によって実行される。
【0124】
図13の例では、各出力バッファの重みは、その出力バッファが割り当てられた入力バッファの混雑度に基づき、その逆数を重みとして用いている。具体的には、出力バッファ0に付与された重みは、入力バッファ0の混雑度1.0の逆数で1.0となる。出力バッファ1に付与された重みは、入力バッファ2の混雑度0.5の逆数で2.0となる。出力バッファ2に付与された重みは、入力バッファ3の混雑度2.0の逆数で0.5となる。出力バッファ3に付与された重みは、入力バッファ1の混雑度0.25の逆数で4となる。
【0125】
重み付きラウンドロビンを使ってスイッチを切り替えた場合、出力0は、出力バッファ0と出力バッファ1のそれぞれの重みから、1対2の割合でそれぞれの出力バッファを経由してフリットを送信する。また出力1は、出力バッファ2と出力バッファ3のそれぞれの重みから、約1対8の割合でそれぞれの出力バッファを経由してフリットを送信する。
【0126】
このように、重み付きラウンドロビンによる送信スケジューリングでは、重みの値によって、出力バッファ間で、出力側のバスに対して伝送帯域の割り当ての割合を調整することができる。
【0127】
なお、図8のステップ806および809では、混雑度の値を、そのまま出力バッファの割り当てに用い、及びスイッチの割り当てに用いる場合を例に説明した。しかしながら、混雑度の値を反映したものであれば、別の定義を用いても良い。また出力バッファとスイッチの割り当てを優先させたい入力バッファに対して、優先度の値を小さくする例を説明したが、逆に大きい値を与え、値の大きいものから出力バッファとスイッチを与えるようにしてもよい。
【0128】
また、重み付きラウンドロビンによる各出力バッファへの伝送帯域の割り当ての具体的な調整方法としては、伝送帯域を時間的に複数のタイムスロットに分割し、重みの値によって指定された数のタイムスロットをそれぞれの出力バッファに割り当てる方法や、重みの値によって予め指定された割合で、確率的に出力バス(出力バッファ)を選択する方法などがある。
【0129】
ヘッダーフリット以外のフリットを送信する場合には、ステップ803のルーティングおよびステップ806の出力バッファの割り当ては行われない。混雑情報処理部707は、隣接する中継器の混雑情報の取得と参照(ステップ807)を行い、混雑情報比較部708は近隣の中継器と互いの混雑状況の比較(ステップ808)のみを行う。隣接する中継器の混雑情報の取得・参照方法(ステップ807)と近隣の中継器と互いの混雑情報の比較方法(ステップ808)については、それぞれ(ステップ804)と(ステップ805)の処理と同じであるため、説明を省略する。
【0130】
中継器700は、スイッチ割当部706によってスイッチ702の割り当てが決定すると入力バッファ内のフリットを、割り当てられた出力バッファを介して隣接する中継器711へと送信する(ステップ810)。
【0131】
混雑情報処理部707は、フリット送信後の中継器の混雑情報を近隣の中継器710、711に通知する(ステップ811)。
【0132】
次に図14、図15、図16を用いて、本実施形態における中継器の動作を詳細に説明する。
【0133】
図14は、図5の多段接続網における、トラヒックA〜Cの各伝送経路を示す。トラヒックAはバスマスタBM0からメモリ4へ伝送される。トラヒックBは、バスマスタBM1からメモリ6へ伝送される。トラヒックCは、バスマスタBM5からメモリ5へ伝送される。
【0134】
トラヒックAとトラヒックBが同時に流れる場合には、中継器R0から中継器R6へのバス上で干渉が発生する。また、トラヒックAとトラヒックCが同時に流れる場合には、中継器R6から中継器R10へのバス上で干渉が発生する。
【0135】
図15は、トラヒックAとトラヒックBとが同時に流れている場合の、トラヒックAの伝送経路上での各中継器の遅延時間の例を示す。
【0136】
図15において、中継器R0内でのトラヒックAとトラヒックBの遅延時間は、互いの干渉により、それぞれ10サイクルとする。また、中継器R6内でのトラヒックAとトラヒックBの遅延時間はそれぞれ別の経路に流れるため、それぞれ5サイクルとする。すると、中継器R0でのトラヒックAの混雑度は0.5、トラヒックBの混雑度は0.5となり、伝送経路上の流れにくさは、どちらのトラヒックも同じになる。そのため、中継器R0は、中継器R6へのバスの伝送帯域を、トラヒックAとトラヒックBに対して均等に50%ずつ割り当てるように送信のスケジューリングを調整する。スケジューリングとは出力バッファの割り当てと、スイッチの割り当てを意味する。以下も同様である。
【0137】
次に、図16は、トラヒックAとトラヒックBに加えて、トラヒックCが同時に流れる場合の各中継器内でのトラヒックの遅延時間の例を示す。
【0138】
図16において、中継器R0内でのトラヒックAとトラヒックBの遅延時間は互いの干渉によりそれぞれ10サイクルとする。また、中継器R6内では、トラヒックAとトラヒックCとが互いに干渉することにより、遅延時間がそれぞれ10サイクルとする。一方、別の経路へ流れるトラヒックBは、他のトラヒックと干渉しないため、遅延時間が5サイクルとする。すると、中継器R0でのトラヒックAの混雑度は1、トラヒックBの混雑度は0.5となり、トラヒックAの方がトラヒックBよりも伝送経路上において流れにくいことが特定される。
【0139】
中継器R0は、トラヒックAとトラヒックBの混雑度の大きさに合わせて、中継器R6へのバスの伝送帯域を割り当てる。例えば、中継器R1が重み付きラウンドロビンを用いて各トラヒックに混雑度の値に反比例させた伝送帯域を割り当てた場合には、中継器R0は、トラヒックAには伝送帯域の33%、トラヒックBには伝送帯域の66%を割り当てるように送信のスケジューリングを調整する。
【0140】
また、中継器R0によってトラヒックAの伝送帯域の割り当てが少なくなると、中継器R0では、トラヒックAとトラヒックBの干渉が弱められるため、トラヒックBの遅延時間が削減される。また、R6ではトラヒックAとトラヒックCの干渉が弱められるため、トラヒックCの遅延時間が削減される。
【0141】
このように、トラヒック数や流量の変化に対し、伝送経路上において複数のトラヒックと干渉しているトラヒックCの伝送帯域を減らすことで、互いに干渉しないトラヒックBとトラヒックCの伝送帯域を増やし、優先的にトラヒックBとトラヒックCを流すことで、回路全体の利用効率の低下を防ぎ、遅延の増加やスループットの低下を抑止することができる。
【0142】
図17は、混雑度の定義として、自中継器と隣接中継器との混雑情報の比率の変わりに、差分を用いた例を示す。
【0143】
図17では、トラヒックごとに自中継器での遅延時間から、送信先の隣接中継での遅延時間を引いた値を混雑度として定義している。なお、図17の式では、混雑度を重み付きラウンドロビンで扱えるようにするために、定数αを加えている。これにより、混雑度を正の数として扱うことが可能となる。定数αの具体的な値としては、混雑度が負の値とならないように、中継内で許容できる遅延時間の最大値の値を設定する方法が考えられる。
【0144】
また、本実施形態では、トラヒックが流れる下流側の中継器の混雑情報を基に、送信スケジューリング(出力バッファの割り当て、スイッチの割り当て)が調整される例を説明した。しかしながら、トラヒックが流れてきた上流側の中継器の混雑情報を基に送信スケジューリングが調整されてもよい。
【0145】
図18は、トラヒックの流れの上流側にある中継器R0での遅延時間と、中継器R2での遅延時間とを基に、中継器R6がトラヒックAとトラヒックCに中継器R10へのバスの伝送帯域をどのように割り当てるかを説明する図である。
【0146】
図18では、中継器R0内でのトラヒックAとトラヒックBの遅延時間は、互いの干渉によりそれぞれ10サイクルとする。また、中継器R6内では、トラヒックAとトラヒックCが互いに干渉し、遅延時間はそれぞれ10サイクルとする、中継器R2では、トラヒックCのみが流れているため遅延時間が5サイクルであるとする。
【0147】
中継器R6は、中継器R0より、トラヒックAとトラヒックBの遅延時間を取得し、中継器R2より、トラヒックCの遅延時間を取得し、自中継器内でのそれぞれのトラヒックの遅延時間との比較から混雑度を算出する。ここでトラヒックが流れる下流側の中継器から通知された遅延時間を使って混雑度を算出した場合と同様に、混雑度の定義として、トラヒックが流れる上流側の中継器での遅延時間に対する、その下流にある自中継器R6での遅延時間の比率の値を用いる。
【0148】
トラヒックAの混雑度は、1(=10÷10)、トラヒックBの混雑度は0.5(=5÷10)と求められる。
【0149】
混雑度が求まると、中継器R6は、例えば、中継器R1が重み付きラウンドロビンを用いて、混雑度の値に反比例させて各トラヒックに伝送帯域を割り当てた場合には、トラヒックAには伝送帯域の33%、トラヒックCには伝送帯域の66%が割り当てるように送信のスケジューリングの調整が行われる。
【0150】
また、中継器R6において、トラヒックが流れる上流側の中継器からの混雑情報だけでなく、下流側の中継器からの混雑情報も用いて伝送経路上での混雑度を求め、これを送信スケジューリングの調整に用いてもよい。
【0151】
例えば、トラヒックごとに上流側の混雑度と下流側の混雑度を求め、その平均値を混雑度と定義してもよい。
【0152】
以上のように、図7を用いて説明した構成と、図8で説明した処理とにより、伝送経路上の各中継器が、隣接する中継器間で混雑情報を交換し、その比較から伝送経路上でのトラヒックの流れにくさを示す混雑度を基に、各トラヒックの送信スケジューリングを調整する。これにより、トラヒック間の干渉による遅延の増加を抑制が可能となる。
【0153】
なお、本実施形態では、集積回路のトポロジーが多段接続網の場合を例に説明したが、図19に示すように中継器を格子状に並べてメッシュ型や、トーラス型、バスを階層的に接続したトポロジーなど中継器やスイッチを介して複数のバスを経由するトポロジーでも同様に適用できる。
【0154】
(実施形態2)
実施形態1では、隣接する中継器間で混雑情報を交換し、トラヒックごとに伝送経路上でのデータパケットの流れにくさを示す混雑度に基づいて、各トラヒックの送信スケジューリングを調整した。
【0155】
これに対し、本実施形態の中継器は、求められた混雑度を比較し、データパケットの流れにくい方のパケットをいったん廃棄し、再度、廃棄したパケットの送信元となるバスマスタにパケットの再送を要求する。これにより、混雑度の小さいトラヒックの遅延時間の増加を抑制することができる。なお、バスマスタにパケットの再送を直接要求するのではなく、宛先をそのバスマスタとする再送要求を含むフリットを、そのパケットを送信してきた隣接する中継器のバッファに送信することに留意されたい。隣接する中継器は、その再送要求をさらに上流の中継器または当該バスマスタに送信することになる。
【0156】
中継器は、再送要求を、1サイクルで送信可能なデータ量である1フリットで送信することができる。しかしながら、フリット数は2以上であってもよい。または、再送要求をパケットで送信してもよい。再送要求は通常のトラヒックが流れる伝送経路上を送信されてもよいが、再送要求専用の伝送経路を設けてもよい。
【0157】
インターネットや無線LAN等でのネットワーク制御では、一般的に中継器での混雑(輻輳)を抑制する方法としてパケットを廃棄が用いられる。しかしながら、集積回路では信頼性への要求が高いため、回路内を流れるトラヒックのデータロスが発生すると、混雑時に廃棄したパケットを再度、送信元から再送する必要がある。
【0158】
図20は、本実施形態における中継器800の構成図の構成図である。図20の構成要素のうち図7と同じ構成については、同じ参照符号を付与し説明を省略する。
【0159】
パケット廃棄部1401は、混雑情報比較部708によって求められたトラヒックごとの混雑度のうち、所定の閾値を越えるトラヒックを検出した場合に、該当するトラヒックのパケットを入力バッファ701から削除する。
【0160】
再送要求部1402は、前記パケット廃棄部により、削除されたパケットの再送要求を、送信元のバスマスタに通知する。
【0161】
図21は、本実施形態においてバスマスタから送信されるパケットとそのフリット群、および、ヘッダーフリットに記載される情報を示す。ヘッダーフリットには、ヘッダフラグや宛先アドレスの他、送信元のアドレス、及び、パケットのIDが記載されている。パケット廃棄部1401がパケットを廃棄する場合に備えて、再送要求部1402はそのパケットのヘッダーフリットの情報(少なくとも送信元のアドレス、及び、パケットのID)をヘッダーフリットが到着するたびに記憶しておく。そして、保持していたその情報に基づいて、送信元のバスマスタに、特定のIDを有するパケットの再送を要求する。
【0162】
パケットを廃棄されたバスマスタは、混雑を避けるために所定の時間待機し、再びパケットの送信を開始する。
【0163】
図22は、本実施形態における中継器800の動作を説明する図である。
【0164】
図8と同様の動作については、同じ参照符号を付与し説明を省略する。
【0165】
中継器800は、隣接する中継器710と互いの混雑情報を交換し、トラヒックごとに経路上でのトラヒックの流れにくさを混雑度として算出し、その値が所定の閾値以内に収まっているかどうかを判定する(ステップ2401)。混雑度の値が、閾値以下であれば、入力バッファ内のフリットを送信するためにスイッチの割り当て処理を行うためにステップ809に移る。
【0166】
ステップ2401において、混雑度が所定の閾値を超えたと判定された場合には、中継器800のパケット廃棄部1401は、該当する入力バッファ内のフリットを全て廃棄し、また、その入力バッファに割り当てられた出力バッファを開放する(ステップ2402)。
【0167】
混雑度が所定の閾値以上を越えた入力バッファ内のフリットが廃棄されると、中継器内の再送要求部1402は、廃棄したパケットの送信元に、廃棄したパケットの再送を要求する(ステップ2403)。
【0168】
再送要求部1402から送信元に再送を通知する方法として、トラヒックが流れてきた伝送経路を、逆方向に、再送要求を伝えるパケットを転送する方法や、中継器800と送信元との間で再送を通知するための、専用の制御信号線を用いる方法が挙げられる。
【0169】
以上の構成と処理を加えることにより、本実施形態における中継器800は、混雑度が所定の閾値よりも高いトラヒックのパケットを廃棄するので、パケットデータの流れにくいトラヒックによる、回路全体での伝送性能の低下を抑制できる。
【0170】
(実施形態3)
本実施形態では、宛先が共通するパケットを連続して次の中継器に送信する際に、同じ出力バッファを利用して次の中継器に送信し、さらに、連続して送ったパケットが同じ宛先に向かうパケットであることを次の中継器に通知することで、後続のパケットで行われるルーティング処理(ステップ803)と出力バッファの割り当て(ステップ806)省略し、中継器内での遅延時間を短縮する。
【0171】
図23は、本実施形態における中継器810の構成図である。図23の構成要素のうち図7と同じ構成については、同じ参照符号を付与し説明を省略する。
【0172】
ルーティング再利用通知部1501は、宛先が共通するパケットが、同じ出力バッファを介して、次の中継器711に伝送される際に、連続して送ったパケットが同じ宛先に送られるパケットであることを次の中継器711に通知する処理部である。なお、同じ出力バッファを介して次の中継器711に送られたパケットは、次の中継器711において同じ入力バッファに送られるものとする。
【0173】
図24は、本実施形態における中継器810の動作を説明する図である。
【0174】
図8と同様の動作については、同じ参照符号を付与して説明を省略する。
【0175】
連続して送ったパケットが同じ宛先に送られるパケットである場合には、中継器810のルーティング再利用通知部1501は、ルーティング処理の再利用を行わせるための通知を次の中継器711に送信する。以下、この処理を行う中継器810の処理を説明する。
【0176】
隣接する中継器710からフリットが送られてくると、中継器810は、自らの入力バッファ701のうち、所定の入力バッファにフリットを蓄積する(ステップ801)。
【0177】
ステップ802において、受信したフリットがヘッダーフリットである場合には、ルーティング処理部701は、中継器710からルーティングの再利用通知を受信しているか否かを確認する(ステップ2601)。
【0178】
ルーティングの再利用通知がない場合には、次の送信先を特定する必要がある。そこで、ルーティング処理部704はルーティング処理を行う(ステップ803)。
【0179】
一方、ルーティングの再利用通知がある場合には、ルーティング処理部704はルーティング処理を省略し、1つ前のパケットの送信時に用いたルーティングの処理結果を利用できるか否か、言い換えると、出力バッファの再利用が可能か否かを判断する(ステップ2602)。
【0180】
バッファ割当部705は、再利用通知を受信した入力バッファを継続して利用でき、かつ、1つ前のパケットの送信時に利用した出力バッファが他の入力バッファからの要求によって割り当てられていない場合には、出力バッファの再利用が可能であると判断する。このとき、バッファ割当部705は、出力バッファの割当の決定(ステップ806)を省略し、1つ前のパケットの送信時に用いた出力バッファを再利用する。さらに、ルーティング再利用通知部1501は、次の中継器711にルーティングの再利用を通知する(ステップ2603)。
【0181】
1つ前のパケットの送信時に利用した出力バッファを継続して利用できない場合には、処理はステップ804に進み、バッファ割当部705は利用する出力バッファを再度決定する。
【0182】
ステップ806において、バッファ割当部705により、入力バッファに対して出力バッファが割り当てられると、ルーティング再利用通知部1501は、入力バッファ内のパケットの宛先が、1つ前のパケットの宛先と同じかどうか判定する(ステップ2604)。同じ出力バッファに宛先が同じパケットが連続して割り当てられると、ルーティング再利用通知1501は、ルーティング処理が不要であることをパケットが中継される次の中継器に通知する(ステップ2605)。
【0183】
このように、本実施形態の中継器810は、ルーティング再利用通知部1501により、ルーティングの再利用の可否を判定し、再利用が可能な場合には、ルーティングの再利用が可能であることを次の中継器711に通知する。そして次の中継器711でのルーティング処理(ステップ803)および出力バッファの割り当て(ステップ806)を省略する。これにより、中継器内での遅延時間の削減できる。
【0184】
また、バッファ割当部705において、各入力バッファに対して、出力バッファを割り当てる際に、混雑情報に基づいて、宛先が同じパケットを、同じ出力バッファに連続して割り当てるようにしても良い。
【0185】
例えば、中継器を通過するトラヒックの数に対して、入出力バッファの数が少ない場合には、トラヒック間で入出力バッファを交代して利用しなければならない。このため、混雑度の低いトラヒックに対してのみ、優先的に同じ入出力バッファを割り当てて、連続して同じ宛先のパケットが、同じ出力バッファを介して次の中継器に送信されるようにする。これにより混雑度が低いトラヒックの遅延時間をさらに削減することができる。
【0186】
以上の構成と処理を加えることにより、本実施形態における中継器810は、混雑度が低いトラヒックに対するルーティング処理と出力バッファの割り当てに必要な処理を省略できるため、回路全体での伝送性能の低下を抑制することができる。
【0187】
なお、本実施形態の説明では、混雑度の低いトラヒックには、同じ出力バッファを優先的に割り当てる場合を例に説明した。しかしながら、逆に混雑度の高いトラヒックに同じ出力バッファを優先的に割り当てることによって、混雑度の高いトラヒックの遅延時間を抑制してもよい。これにより、伝送遅延の改善をするようにしてもよい。
【0188】
なお、本実施形態では、ルーティング再利用通知により、ルーティング処理を省略するとした。ルーティング処理のための計算処理、および再利用の可否判定は、いずれも最低1サイクルかかる。したがって、トラヒックを受信した中継器自らがルーティングを行わないことにより、処理時間を改善することが可能になる。
【0189】
ルーティング再利用通知の「判定処理」は、たとえば、ヘッダーフリットの「判定処理」と並行して行うことができる。よって、処理時間を増加させることはない。
【0190】
よって、前段の中継器でのルーティングの結果を、次の中継器に順番に伝えて同じ処理を省略することにより、処理時間の削減が可能になる。
【0191】
(実施形態4)
本実施形態では、中継器により、分散バスの動作クロックを個別変更ができる場合を想定し、混雑度の大きいトラヒックが流れる経路上のバスの動作クロックを上げ、フリットを他のバスよりも早く送信することで、伝送遅延を抑制する。
【0192】
図25は、本実施形態における中継器820の構成図である。図25の構成要素のうち図7と同じ構成については、同じ参照符号を付与し説明を省略する。
【0193】
動作クロック調整部1601は、送信スケジュール調整部709により、混雑度が大きく優先度の低いトラヒックを検出すると、トラヒックが出力される側のバスの動作クロックを向上させる。
【0194】
図26は、本実施形態における中継器820の動作を説明する図である。
【0195】
図8と同じ動作については、同じ参照符号を付与し説明を省略する。
【0196】
動作クロック調整部1601は、スイッチ割当部706によって、各入力バッファと出力バッファ間でのスイッチの割り当てが決定されると、バッファの混雑度が所定の閾値よりも高いかどうかを判定する(ステップ2701)。
【0197】
混雑度が閾値を超える入力バッファが存在しなければ、動作クロック調整部1601は、対応するバスの動作速度を、通常の利用時を想定して事前に設定した動作速度に設定する(ステップ2702)。
【0198】
混雑度が閾値を越える入力バッファが存在する場合には、動作クロック調整部1601は、対応するバスの動作速度を、通常の利用時を想定して事前に設定した動作速度よりも早い動作速度に設定する(ステップ2703)。
【0199】
以上の構成を加えることにより、本実施形態の中継器820は、混雑度の高いトラヒックを素早く次の中継器へ送信し、遅延時間を削減することが可能になる。よって、回路全体の伝送性能の低下を抑制することができる。
【0200】
(実施形態5)
本実施形態1から4においては、隣接する中継器間でトラヒックごとの遅延時間を交換し、互いの遅延時間の比較によってトラヒックごとに経路上での流れにくさを求め、その値に基づいて各トラヒックへの送信スケジューリングを調整する。このため、実施形態1から実施形態4の中継器は、隣接する中継器どうしが連携し、協調した送信スケジューリング制御を行う。
【0201】
このような中継器間で協調した送信スケジューリング制御では、ある中継器において、あるトラヒックの遅延時間が、所定の閾値よりも大きくなった場合。このトラヒックの遅延時間を抑制しようとしても、隣接する中継器と協調した送信スケジューリングが優先され、すぐに自中継器内でトラヒックの遅延が発生する。
【0202】
これに対し、本実施形態では、自中継器での混雑度が所定の閾値よりも高い場合は、隣接する中継器と協調した送信スケジューリングを行わず、自中継器内での混雑の状況にのみに基づいて、自中継器内での遅延を抑制するように利己的な送信スケジューリングを行う。
【0203】
図27は、本実施形態における中継器830の構成を示す図である。図27の構成要素のうち図7と同じ構成については、同じ参照符号を付与し説明を省略する。
【0204】
内部混雑情報監視部2801は、自中継器830でのトラヒックの遅延時間が、所定の閾値を越えているかどうかを判定する処理部である。
【0205】
協調制御停止部2802は、自中継器830でのトラヒックの遅延時間が、所定の閾値を超えた場合に、隣接する中継器711との遅延時間の比較による混雑度の算出をやめて、代わりに自中継器での遅延時間にのみ基づいて、混雑度を特定する処理部である。
【0206】
図28は、本実施形態における中継器830の動作を説明する図である。
【0207】
図8と同じ動作については、同じ参照符号を付与し説明を省略する。
【0208】
中継器830の内部混雑度監視部2801は、自中継器830内の入力バッファの遅延時間が、所定の閾値よりも大きいかどうかを判定する(ステップ2801)。
【0209】
自中継器830内の入力バッファの遅延時間が、所定の閾値よりも小さい場合には、協調制御停止部2802は、混雑情報比較部708に指示して、隣接する中継器711での遅延時間と自中継器830での遅延時間の比較により混雑度を求め、送信スケジュール調整部709に混雑度を伝える(ステップ2802)。
【0210】
一方、自中継器830内の入力バッファの遅延時間が、所定の閾値よりも大きい場合には、協調制御停止部2802は、混雑情報比較部708に代わり自中継器830での遅延時間の大きさだけを利用して混雑度を求め、送信スケジュール調整部709に混雑度を伝える(ステップ2802)。
【0211】
以上の構成を加えることにより、本実施形態の中継器830は、自中継器で発生している遅延時間が所定の閾値よりも高い場合には、隣接する中継器の混雑の状況に合わせることなく、利己的な送信スケジューリング制御によって、自中継器内での遅延時間の削減を最優先させることができるため、回路全体の伝送性能の低下を抑制しながらも、局所的な伝送性能の低下も抑制することができる。
【0212】
(実施形態6)
実施形態6では、回線交換方式の中継器が送信スケジュールを調整する処理を説明する。
【0213】
図29はパケット交換方式と回線交換方式の違いを説明する図である。
【0214】
図29(a)、(b)のグラフは、それぞれ交換方式でのデータの流れ方を表しており、グラフの縦軸はデータの位置、横軸は時間の流れを表している。
【0215】
パケット交換方式では、図29(a)に示すように、トラヒックはフリット単位でバスマスタから順番に中継器へと送信される。
【0216】
これに対し、回線交換方式では、図29(b)に示すように、最初に回線交換のための信号がバスマスタから順番に中継器を通って宛先まで送られる。これにより回線が切り替えられ、その後、データが送信される。
【0217】
図30は、本実施形態による、回線交換方式の中継器840の構成を示す。中継器840では、図30に示すように、入力バッファ701は、スイッチの切り替え信号を蓄えるための1フリット分のサイズだけあればよい。それ以外は図7のパケット交換方式の構成と同じであるため説明は省略する。
【0218】
回線交換方式では、回線が確保された後は、トラヒック間で干渉が発生しないため、データの送信前のスイッチの切り替え用の信号についてのみ送信スケジューリングを調整すればよく、その調整は、パケット交換方式のヘッダーフリットと同様の方法で調整できる。
【0219】
以上、本発明の各実施形態を説明した。本明細書においては、各実施形態の中継器の構成要素はいずれもハードウェアによって実現されることを想定して説明した。ハードウェアは、構成要素ごとに設けられてもよいし、複数の構成要素を統合した回路などとして設けられてもよい。ハードウェアとして設けることにより、各中継器の処理が高速化され、内部処理遅延を最小限に抑えることが可能になる。なお、内部処理遅延が問題とならない程度に高速に処理できる場合には、上述の構成要素の1つまたは複数の機能をマイコンがソフトウェアを実行することにより、ソフトウェア的に実現してもよい。
【産業上の利用可能性】
【0220】
本発明にかかる中継器は、分散型のバスを備える集積回路において、複数のトラヒックの干渉による遅延やジッターの増加を抑制することができるため、メディア処理などリアルタイムで複数のトラヒック伝送が発生するSoC(System on Chip)などでの分散バス制御において有用である。
【0221】
また、遅延時間を抑制による処理時間の短縮化により、集積回路の省電化にも有用である。
【符号の説明】
【0222】
700 中継器
701 入力バッファ
702 スイッチ
703 出力バッファ
704 ルーティング処理部
705 バッファ割当部
706 スイッチ割当部
707 混雑情報処理部
708 混雑情報比較部
709 送信スケジュール調整部
710 隣接の中継器(受信側)
711 隣接の中継器(送信側)
1401 パケット廃棄部
1402 再送要求部
1501 ルーティング再利用通知部
1601 動作クロック調整部
2801 内部混雑情報監視部
2802 協調制御停止部

【特許請求の範囲】
【請求項1】
分散型のバスを備える集積回路において、複数のバスを接続する中継器であって、前記バス上を伝送される各トラヒックのトラヒックデータは、パケットに分割されており、
トラヒックデータを受け取る入力および前記トラヒックデータを送出する出力の組み合わせを切り替えるスイッチと、
複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑の程度を示す混雑情報と、自中継器における前記トラヒックごとの混雑情報とを取得する混雑情報処理部と、
前記隣接の中継器から取得した前記混雑情報および自中継器における前記混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求める混雑情報比較部と、
前記混雑度に基づいて、前記トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する送信スケジュール調整部と、
前記バスの伝送帯域の割り当て結果に基づき、前記スイッチを切り替えるスイッチ割当部と、
前記混雑度が予め定められた閾値よりも大きいトラヒックのパケットを入力バッファから廃棄するパケット廃棄部と、
廃棄されたパケットの再送を送信元のバッファに要求する再送要求部と
を備えた、中継器。
【請求項2】
分散型のバスを備える集積回路において、複数のバスを接続する中継器であって、前記バス上を伝送される各トラヒックのトラヒックデータは、パケットに分割されており、
トラヒックデータを受け取る入力および前記トラヒックデータを送出する出力の組み合わせを切り替えるスイッチと、
複数のトラヒックを共通して扱う隣接の中継器からのトラヒックごとの混雑の程度を示す混雑情報と、自中継器における前記トラヒックごとの混雑情報とを取得する混雑情報処理部と、
前記隣接の中継器から取得した前記混雑情報および自中継器における前記混雑情報に基づいて、伝送経路上でのトラヒックごとの流れにくさを定量的に示す混雑度の情報を求める混雑情報比較部と、
前記混雑度に基づいて、前記トラヒックごとにバスの伝送帯域を割り当てて送信スケジュールを調整する送信スケジュール調整部と、
前記バスの伝送帯域の割り当て結果に基づき、前記スイッチを切り替えるスイッチ割当部と、
異なるバスにデータを送出する複数の出力にそれぞれ接続された複数の出力バッファと、
前記混雑度が予め定められた閾値よりも大きいトラヒックの連続するパケットに対して、同じ出力バッファを割当て、さらにトラヒックが送信される次の中継器に対して、ルーティングの設定の再利用を通知するルーティング再利用通知部と
を備えた、中継器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2011−229192(P2011−229192A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2011−178907(P2011−178907)
【出願日】平成23年8月18日(2011.8.18)
【分割の表示】特願2011−532372(P2011−532372)の分割
【原出願日】平成23年1月7日(2011.1.7)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】