JPWO2012029215A1 - 中継装置 - Google Patents

中継装置 Download PDF

Info

Publication number
JPWO2012029215A1
JPWO2012029215A1 JP2011535746A JP2011535746A JPWO2012029215A1 JP WO2012029215 A1 JPWO2012029215 A1 JP WO2012029215A1 JP 2011535746 A JP2011535746 A JP 2011535746A JP 2011535746 A JP2011535746 A JP 2011535746A JP WO2012029215 A1 JPWO2012029215 A1 JP WO2012029215A1
Authority
JP
Japan
Prior art keywords
destination
virtual channel
relay device
data
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011535746A
Other languages
English (en)
Other versions
JP4880802B1 (ja
Inventor
篤 吉田
篤 吉田
山口 孝雄
孝雄 山口
石井 友規
友規 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2011535746A priority Critical patent/JP4880802B1/ja
Application granted granted Critical
Publication of JP4880802B1 publication Critical patent/JP4880802B1/ja
Publication of JPWO2012029215A1 publication Critical patent/JPWO2012029215A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

NoC上の中継装置において、全ての仮想チャネルが同一の宛先へ向うパケットによって占有されると、別の宛先へと向うパケットが中継装置を通過できなくなり、パケットの伝送性能(スループットや遅延時間)が低下する。中継装置は、複数の宛先の情報が付加されたヘッダおよびヘッダに関連するデータを含むデータ単位を受信する入力バッファと、宛先の情報に対応するデータ単位を格納する複数の仮想チャネルと、宛先が同一か否かにより、複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定する宛先比較部と、送信先の中継装置の仮想チャネルの割り当てが決定された仮想チャネルから、格納されたデータ単位を出力する出力部とを備えている。

Description

本発明は、分散型のバスを備える半導体の集積体回路において、バス間を接続する複数の中継器間を流れる複数のトラヒックの送信スケジューリングを調整する技術に関する。
図1(A)は、集中型のバス制御の例を示す。集中型のバス制御を行う従来の集積回路では、主に複数のバスマスタ(BM)とメモリ(MEM)との間は1つのバスによって接続され、アービタによって各バスマスタからメモリへのアクセスが調停される。しかし、集積回路の高機能化、マルチコア化により、回路の規模が増大し、トラヒックも複雑に変動しながらバスを流れており、集中型のバス制御による集積回路の設計が困難になってきている。
その一方で、近年、並列計算機での接続技術や、ATM(Asynchronous Transfer Mode)網などのネットワーク制御の技術を取り入れた分散型のバスを有する半導体集積回路の開発が進んでいる。図1(B)は、分散型のバス制御の例を示す。分散型のバスを有する半導体集積回路は、複数の中継装置(R)が複数のバスで接続されて構成されている。近年、図1(B)に示すような分散型のバスを用いることにより、大規模化した集積回路内のトラヒックを、複数のバスに分散して伝送するネットワークオンチップ(Network on Chip)の取り組みがある。
図2は、NoC(Network on chip)や並列計算機、ATM網などで利用される、中継装置の基本的な構成の概略である。これらの中継装置では、トラヒックデータはパケットやセルの単位に分割されて、宛先のノードまで送信される。中継装置に送られたデータは、一旦バッファに蓄えられる。
また、異なるパケットを入力ポート毎に並行して送信処理するために、入力ポート毎に複数のバッファを並列化した仮想的なチャネル(「バーチャルチャネル」または「VC」(Virtual Channel)とも呼ばれる)を備える。バーチャルチャネルの実体は中継装置のバッファメモリであるが、入力ポート毎に、かつ、各入力ポートに対して複数のバッファを物理的に実装して良いし、又は、複数のバッファが存在するかのようにバッファメモリ上のデータを管理することにより、仮想的なチャネルを実装することが可能である。
クロスバスイッチは、各入力ポートと出力ポートの排他的な接続を決定するスイッチである。また、クロスバスイッチによる入力ポートと出力ポートの排他的な接続はアービタによって決定される。
このように、中継装置では、アービタにより、クロスバスイッチの接続を切り替えることで、バッファ内に格納されたデータを目的の宛先へと中継する。
次に、中継装置の入力ポートと出力ポートの接続の切り替えについて説明する。中継器の入力ポートと出力ポートはクロスバスイッチによって、それぞれ排他的に接続される。ここで「排他的な接続」とは、複数の入力ポートと複数の出力ポートとを同時に接続する場合に、1つの出力ポートには、多くても1つの入力ポートだけが接続されている状態と定義する。
図3(A)は、中継装置内の入力ポートから出力ポートへの接続要求(送信要求)の一例を示した図である。ここでは、入力ポート毎に仮想チャネルが2つあり、入力ポート0の仮想チャネル0は出力ポート0、入力ポート0の仮想チャネル1は出力ポート2、入力ポート1の仮想チャネル0は出力ポート0、入力ポート1の仮想チャネル1は出力ポート1、入力ポート2の仮想チャネル0は出力ポート2、入力ポート2の仮想チャネル1は出力ポート3、入力ポート3の仮想チャネル0は出力ポート0、入力ポート3の仮想チャネル1は出力ポート2へとパケットの送信が要求されている。
アービタは、複数の入力チャネルから出力チャネルへの接続要求の中から、入力ポートと出力ポートが排他的に接続される組み合わせを選択し、クロスバスイッチの切り替えを行う。図3(A)に示した接続要求に対して、アービタが選択する排他的な入力ポートと出力ポートの組み合わせとしては、例えば図3(B)に示すように、入力ポート0と出力ポート2、入力ポート1と出力ポート1、入力ポート2と出力ポート3、入力ポート3と出力ポート0とを排他的に接続する組み合わせが選択される。
クロスバスイッチによる入力ポートと出力ポートの排他的な接続は、入力ポートと出力ポートを同時に接続できる数が多いほど、より多くのパケットを同時に送信できる。
このため、一般的に並列計算機やATMでは、入力ポートと出力ポートの全ての組み合わせの中から最適な組み合わせを探索するWavefront allocatorや、入力ポート側と出力ポート側で、それぞれ独立して部分的な最適解を求め、これを繰り返すことで精度を上げるParallel Iterative Matchingなどの方法が用いられている。(例えば、非特許文献1)。
また、複数の仮想チャネルが同じ出力ポートへの接続を要求する場合、パケットが送信された順番を維持し、また、パケット間での遅延時間の増加やバラツキを抑制するために、送信からの経過時間の長さや中継したホップ数に基づいてAgeと呼ばれる値を定義し、Ageが最も大きい(または小さい)パケットを、先に送信するAge−Based方式が提案されている。(例えば特許文献1)
米国特許第6674720号明細書
W. DALLY, B. TOWLES, "PRINCIPLES AND PRACTICES OF INTERCONNETION NETOWRKS", MORGAN KAUFMANN PUBLISHERS
これに対し、NoCでは集積回路上に複数の中継装置を構成する必要があるため、並列計算機やATM網の中継装置に比べて、各中継装置上で構成できる仮想チャネルの数やサイズを多く設けることができない。たとえば、1個の仮想チャネルのサイズはパケット1つ分程度である。
このため、NoCでは、より短い遅延時間内に、限られた仮想チャネルを効率的に利用しなければならず、中継装置内で入力ポートと出力ポートの接続数を最大にするだけでなく、送信先の中継装置においても、入力ポートと出力ポートの接続数が大きくなるよう配慮した送信スケジュールの制御が重要になる。
また、NoC上に構成する中継装置では、集積回路の規模や、許容できる遅延時間、消費電力などの制約を受ける。このため、Wavefront Allocatorのような大規模な組み合せから最適な組み合わせを探索するアルゴリズムや、Pallal Matching Interaterのように繰り返し処理を行うアルゴリズムを、そのままNoC上の各中継装置に設けることは好ましくない。並列計算機やATMで用いられている一般的な中継装置の仕組みをそのまま、NoCの中継装置に適用した場合には、アービタの回路規模や処理時間、消費電力が大きくなり、NoCの性能の低下や、処理時間の増加を引き起こしてしまうといった課題がある。
この課題を、以下、より具体的に説明する。
図4は、本発明が解決しようとする課題の具体的な一例を説明する図である。
中継装置401は4つの入力ポートを介してパケットの送信元となる4つの中継装置(中継装置A、中継装置B、中継装置C、中継装置D)と接続し、送られてくるパケットを受信する。また中継装置401は、4つの出力ポートを介してパケットの送信先となる4つの中継装置(中継装置E、中継装置F、中継装置G、中継装置H)と接続し、パケットの送信を行う。
中継装置401の入力ポートには、それぞれ2個の仮想チャネルが備えられており、入力ポート毎に最大で2箇所の出力ポートに対して送信要求を行うことができる。
しかし、送信元の中継装置から、同一の宛先に向けて連続してパケットが送信されると、例えばAge−Basedのように、送信された順番を単純に維持してパケットを中継する場合には、1.同じ先に向かうパケットが連続して送信されることで、2.同じ宛先のパケットが入力ポート内の全仮想チャネル(VC)を占有が発生し、3.仮想チャネル(VC)間による出力ポートの獲得において、出力ポートを獲得できなかった入力ポートは、別の出力ポートが空いていてもパケットを送信できないため、中継装置の伝送性能を低下させることになる。さらに、中継装置401で送信待ちが発生すると、4.送信元の中継装置でも送信待ちが発生し、送信待ちのパケットの宛先とは別の宛先へ向うパケットがあっても、中継装置401内のパケットを追い越して先に送信することができない。
例えば図4において、中継装置401は送信元の中継装置から、特定の宛先のパケットを連続して受信したことで、中継装置401の入力ポート0と入力ポート1の全ての仮想チャネルに出力ポート0へ送信されるパケットが格納され、また、中継装置401の入力ポート2と入力ポート3の全ての仮想チャネルに、出力ポート2へ送信されパケットが格納されている状態にあるとする。この時、各仮想チャネルが出力ポートに対してパケットの送信要求を行った結果、入力ポート0の仮想チャネル0が出力ポート0を獲得し、また、入力ポート2の仮想チャネル0が出力ポート1を獲得したとすると、入力ポート1と入力ポート3は、出力ポート1と出力ポート3が空いていても、これらの出力ポートに向けて送信するパケットが無いため、送信待ちの状態となってしまう。
また、送信元の中継装置Bや中継装置Dに、出力ポート1や出力ポート3へ向かうパケットが格納されていたとしても、中継装置401内の入力ポート1と入力ポート3の仮想チャネル内のパケットを追い越して先に送信することができない。
このように、入力ポート毎に全ての仮想チャネルが特定のパケットによって占有が、中継装置の伝送性能の低下を引き起こす。
並列計算機やATMでは、比較的、仮想チャネルの数やサイズに対する制約や、遅延時間に対する制約が小さいため、同じ宛先に向かうパケットが連続して送信されても、中継装置内の仮想チャネルが同じ宛先に向かうパケットによって全て占有される状況が発生しにくい。また、同じ宛先に向かうパケットによって全ての仮想チャネルが占有されたとしても、占有状態が続く時間に比べ、並列計算やATMで許容できるパケットの遅延時間が長いため伝送性能への影響は少ない。
一方、NoCでは、半導体回路上に中継装置を実装するため、仮想チャネルの数やサイズ、遅延時間に対する制約が大きく、中継装置内の仮想チャネルの不足が発生しやすく、NoC全体の伝送性能に対し大きく影響する。
本発明は上記課題を解決するためになされたものであり、その目的は、パケットの伝送性能(スループットや遅延時間)の低下を抑制し、NoC全体の伝送性能を向上させる中継装置を提供することにある。
本発明による中継装置は、複数の宛先の情報が付加されたヘッダおよび前記ヘッダに関連するデータを含むデータ単位を受信する入力バッファと、前記宛先の情報に対応するデータ単位を格納する複数の仮想チャネルと、前記宛先が同一か否かにより、前記複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定する宛先比較部と、前記送信先の中継装置の仮想チャネルの割り当てが決定された仮想チャネルから、格納されたデータ単位を出力する出力部とを備えている。
前記宛先比較部は、データ単位の宛先を区別し、送信先の中継装置の仮想チャネルが未割り当ての宛先へ送られるデータに対し、優先的に送信先の中継装置の仮想チャネルを割り当てるよう、前記割当順序を決定してもよい。
前記宛先比較部は、前記宛先が同一であるデータ単位に対して、前記ヘッダに付与された時間情報に基づいて、前記送信先の中継装置の仮想チャネルの割当順序を決定してもよい。
前記宛先比較部は、前記時間情報としてデータが送信されてからの経過時間を用い、前記経過時間が長いデータから優先的に前記送信先の中継装置の仮想チャネルを割り当ててもよい。
前記宛先比較部は、前記時間情報として宛先に届くまでの締切時刻を用い、前記締切時刻の残り時間が少ないデータから優先的に前記送信先の中継装置の仮想チャネルを割り当ててもよい。
前記中継装置は、宛先が定められたデータを各々が受け取る複数の入力ポートをさらに備え、前記出力部は、各々がデータを出力する複数の出力ポートと、各入力ポートに対応して設けられ、受け取ったデータを格納する複数の仮想チャネルと、前記仮想チャネルに格納されたデータの宛先ごとに、時間情報に基づく優先度が最も高いデータを格納する仮想チャネルと、前記優先度が最も高いデータの宛先に到達可能なバスに接続された出力ポートとを接続することで、前記データを各出力ポートから出力するクロスバスイッチとを備えていてもよい。
仮想チャネルに格納されたデータが送信されてからの経過時間が長いほど、前記時間情報に基づく優先度が高くてもよい。
仮想チャネルに格納されたデータが宛先に届くまでの締切時刻までの残り時刻が短いほど、前記時間情報に基づく優先度が高くてもよい。
前記データのパケットは複数のフリットから構成されており、前記データは、フリット単位で前記バス上を伝送されており、前記中継装置は、自中継装置を通過するデータの負荷を測定する負荷測定部をさらに備え、前記負荷測定部により測定された負荷が予め定められた閾値よりも大きい場合は、前記クロスバスイッチは、1フリットを送信する毎に、仮想チャネルと出力ポートとの接続を切り替え、負荷が閾値以下の場合は、1パケット分のフリットの送信が完了する毎に、仮想チャネルと出力ポートとの接続を切り替えてもよい。
前記負荷測定部は、自中継装置内の仮想チャネル内に格納されているフリットの量を、前記中継装置を通過するデータの負荷として測定してもよい。
前記クロスバスイッチは、1フリットを送信する毎に、常に仮想チャネルと出力ポートとの接続を切り替えてもよい。
前記中継装置は、宛先の異なるパケット間で、重複する宛先までの伝送経路を特定する伝送経路解析部と、前記時間情報に基づいて、前記仮想チャネルの宛先ごとに、前記時間情報に基づく優先度が最も高いデータを格納する仮想チャネルと接続される出力チャネルを選択する出力チャネル選択部とをさらに備え、前記出力チャネル選択部は、前記伝送経路解析部によって特定された伝送経路に基づいて、互いに伝送経路の重複が相対的に少ない宛先のパケットを格納する中継装置から順番に、送信先の中継器の仮想チャネルを割り当ててもよい。
前記宛先比較部は、前記宛先までの経路上において通過する前記中継装置が同一か否かにより、前記複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定してもよい。
本発明による他の中継装置は、各々が、宛先に届くまでの締め切り時間情報が付加されたヘッダおよび前記ヘッダに関連するデータを含むデータ単位を格納する複数の仮想チャネルと、前記時間情報が示す時刻に応じて、前記複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定する宛先比較部とを備え、前記送信先の中継装置の仮想チャネルの割り当てが決定された仮想チャネルから、格納されたデータ単位を出力し、集積回路内を伝送されるデータ単位を中継してもよい。
本発明によれば、中継装置内の仮想チャネルのサイズや数を増やすことなく、宛先の異なるパケットに対して仮想チャネルをより均一に割り当てることで、同一の宛先のパケットによる中継装置内の仮想チャネルが占有を回避する。これにより、各中継装置においてより多くの宛先に対して同時にパケットが送信できるため、次の中継装置においてデータが流れにくくなることを防ぐことができる。その結果、NoC全体の伝送性能(スループット、遅延時間、ジッター)を向上させることができる。
(A)は集中型のバス制御の例を示す図であり、(B)は分散型のバス制御の例を示す図である。 中継装置の基本的な構成の概略図である。 (A)は、中継装置内の入力ポートから出力ポートへの接続要求(送信要求)の一例を示した図であり、(B)は入力ポートと出力ポートとを排他的に接続する組み合せの例を示す図である。 本発明が解決しようとする課題の具体的な一例を説明する図である。 本発明の中継装置501の動作の概要を示す図である。 実施形態1において想定する分散型のバスの構成図である。 パケット1100の伝送フォーマットの一例と、パケット1000を複数のフリットに分割した例を示す図である。 実施形態1における中継装置1201の構成図である。 仮想チャネル情報管理部1207で管理され保持される仮想チャネル情報1301の一例を示す図である。 中継装置1201の動作の手順を示すフローチャートである。 (A)は中継装置1201が未だフリットを受信していない状態における入力ポート0に関する仮想チャネル情報1301を示す図であり、(B)は各バッファの様子を示す図である。 (A)は、中継装置1201にヘッダーフリット1104が受信された場合の仮想チャネル情報1301を示す図であり、(B)は、入力ポート0で受信されたヘッダーフリット1104が仮想チャネル0に格納された場合の各バッファの様子を示す図である。 (A)は、中継装置1201において仮想チャネルの出力ポートが設定された後の仮想チャネル情報1301を示す図であり、(B)は各チャネルの様子を示す図である。 (A)は中継装置1201において出力チャネルの決定された後の仮想チャネル情報1301を示す図であり、(B)は各チャネルの様子を示す図である。 (A)は中継装置1201がフリットを送信している状態の仮想チャネル情報1301を示す図であり、(B)は各チャネルの様子を示す図である。 (A)はテイルフリット1106が送信された後の仮想チャネル情報1301を示す図であり、(B)は各チャネルの様子を示す図である。 仮想チャネル1216に対する出力バッファ1206の割り当ての手順を示すフローチャートである。 (A)および(B)は、中継装置1201内に複数のパケットを構成するフリットが格納されているときの、バッファ管理情報1301及び各バッファの状態の一例を示す図である。 入力ポートと出力ポートを排他的に接続するクロスバスイッチの切り替え処理方法を示すフローチャートである。 時間情報、および、時間情報の比較基準の例を示す図である。 (A)および(B)は、中継装置R1からみた種々の宛先の定義および各定義に該当し得る宛先の具体例を示す図である。 (A)および(B)はそれぞれ、4つの受信ノードA〜Dに対して、パケットを中継器1〜3を介してパケットを送信した場合の、各中継装置における送信スケジューリングの方法と、各バスを通過するフリットの送信順序の関係を示す図である。 パケットの送信スケジューリングをパケット毎に行った場合と、フリット毎に行った場合のバスの利用効率とクロスバスイッチの切り替え回数の相対的な比較を説明する図である。 実施形態2の中継装置の構成を示す図である。 実施形態2の中継装置での仮想チャネルと出力ポートの接続の切り替え処理動作を示すフローチャートである。 実施形態3において、多段接続網型のトポロジーによって構成されるNoCにおける重複するバスの例を示す図である。 実施形態による中継装置の構成を示す図である。 実施形態3による中継装置の処理の手順を示すフローチャートである。 (A)〜(C)は、集積回路のトポロジーの例を示す図である。 本発明の中継装置をメモリバスに利用した例を説明する図である。 本発明の中継装置をマルチコアプロセッサ上で利用した例を説明する図である。
以下、添付の図面を参照しながら、本発明による中継装置の動作原理、および、実施形態を説明する。
図5は、本発明の中継装置501の動作の概要を示している。
並列計算機やATMなどで利用される中継装置では、仮想チャネル内のパケットをより多く送信することを主眼にパケットの送信スケジューリングが行われている。上述の利用環境では、NoCに比べて仮想チャネルの数やサイズに対する制約や、遅延時間への制約が少ないため、送信先の中継装置の仮想チャネルが全て同じ宛先へ送信されるパケットで占有されることを考慮する必要はなかった。実際、仮想チャネルに宛先の異なるパケットを格納するように配慮した仮想チャネルの割り当て制御は行われていなかった。
これに対し、本発明では、仮想チャネルの数やサイズに対する制約を受け、また、遅延時間の制約を受けるNoCのような通信環境において利用される中継装置を想定している。具体的には、本発明による中継装置は、中継装置内に宛先の異なるパケットが複数存在する場合には、パケットが送信された順序を単純に維持して中継するのではなく、宛先の異なるパケットが、送信先の中継装置の仮想チャネルにおいて、できるだけ均一に格納されるように、パケットの送信スケジューリングを行う。
たとえば図5に示すように、1.送信元の中継装置が、宛先の異なるパケットを選別し、中継装置501の仮想チャネルにおいて、宛先の異なるパケットが均一に格納されるようにパケットを送信することで、2.宛先が同じパケットが全ての仮想チャネル(VC)を占有してしまう状況を回避する。これにより3.入力ポートと出力ポートの排他的な接続の組合せが増加し、送信待ち状態が削減されることで、伝送性能の低下が抑制される。
以下、本発明の各実施形態にかかる中継装置を説明する。
(実施形態1)
図6は、本実施形態において想定する分散型のバスの構成図である。
本実施形態では、送信ノードとしての複数のバスマスタ(BM)と、受信ノードとしての複数のメモリとを、複数の中継装置を介して接続した構成(多段接続網、MIN:Multistage Interconnection Network)を例に説明する。各中継装置は、2入力および2出力であるとする。
図6では、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)である。
多段接続網を構成する各中継装置は、2入力2出力のクロスバスイッチを備えている。図6(b)に示すように、スイッチを切り替えることによって入力と出力の組合せを変更することで、トラヒックの流れを2種類の伝送経路へ切り替えて送信できる。なお、出力先の伝送経路が異なっていれば、中継装置は2つのトラヒックを各伝送経路に同時に出力することが可能である。
多段接続網では、各中継装置でのスイッチの切り替えによって、全バスマスタと全メモリ間で、必ず1つ以上の伝送経路を構築することができる。
一般的に、クロスバスイッチによって、N個のバスマスタとM個のメモリの全てを接続するためには、スイッチがN×M個の必要となる。そしてバスマスタやメモリの数が増えるにつれてスイッチの数は急激に増加してしまう。これに対し、多段接続網(MIN)では、入出力数の小さいクロスバスイッチを階層的に接続することで少ないスイッチでバスマスタとメモリ間の接続を切り替えることができるという特徴がある。
なお、本実施形態においては多段接続網を例に挙げて説明するが、これは一例である。集積回路の構成がその他のトポロジーであっても本発明を適用することが可能である。また、本実施形態では、バスマスタからメモリへのデータ転送は、パケット交換方式により複数の中継装置を介して行われるとして説明する。
パケットは、図6(a)に示すように、フリットと呼ばれる、バスを使って1サイクルで伝送可能なサイズに分割されて、隣接する中継装置へと送信される。
図7は、パケット1100の伝送フォーマットの一例と、パケット1000を複数のフリットに分割した例を示す。
パケット1100は、ヘッダフィールド1101、データフィールド1102および制御コードフィールド1103を備えている。
ヘッダフィールド1101には、たとえば、送信先のアドレス、送信元のアドレス、パケットが送信されてから経過した時刻の情報(時間情報)が記述される。時間情報の記述方法は任意であるが、そのパケットがバスマスタに送信されてからの経過時間を他のパケットとの間で比較できる値であれば良い。例えば、バスマスタに送信された時刻を直接記載する方法や、送信されてからの経過時刻、また、現在までに通過した中継装置のホップ数などを記載しても良い。
データフィールド1102には、たとえば映像データ、音声データが記述される。制御コードフィールド1103には、たとえば、予め定められたパケット1100の終了コードが記述される。
上述のヘッダフィールド1101のデータのうち、送信先のアドレスと、送信元のアドレスとに基づいて、パケット1100の中継処理と、受信側での受信処理とが行われる。
送信側のバスマスタは、パケット1100を、フリットと呼ばれる小さなパケット単位に分解して伝送する。1フリットは、バスを使って1サイクルで伝送可能なデータであり、そのサイズはバス幅の大きさによって決定される。パケット1100を分割したフリットのうち、最初に送信されるフリットは、ヘッダーフリット1104と呼ばれる。ヘッダーフリット1104には、パケットの先頭であることを示すフラグ情報、及びパケットの送信先のアドレス情報が付与されている。
なお、ヘッダーフリット1104に続く各フリットには、送信先を特定するアドレス情報は格納されていない。その理由は、ヘッダーフリット1104に続くフリットは、ヘッダーフリット1104と同じ宛先に送られるためである。ヘッダーフリット1104によって宛先が決まり、そのトラヒックのフリットを出力する出力バッファが決まると、後に続くフリットは、ヘッダーフリット1104と同じ出力バッファを利用してヘッダーフリット1104が示す宛先に伝送される。
また、パケットの最終のフリットはテイルフリット1106と呼ばれる。テイルフリット1106には、そのフリットがパケットを構成する最後のフリットであることを示すフラグ情報が付与されている。また、ヘッダーフリット1104とテイルフリット1106以外のフリットは、主にデータを伝送するフリットでありデータフリット1105と呼ぶ。
受信側のメモリは、制御コードフィールド1103に記述された終了コードを検出すると、その終了コードに基づき、伝送されたフリットをパケットへ再構築する。
たとえば、1パケットのサイズは128バイト、1フリットのサイズは32ビットまたは64ビットである。ただし、1パケットのサイズおよび1フリットのサイズはアプリケーションによって異なり得るため、上述のサイズは一例に過ぎないことに留意されたい。フリットの長さは、送信先のアドレスと、送信元のアドレスなど、制御データを記述できる長さを基準としてもよい。
各中継装置には、送られてきたフリットを蓄えるためのバッファが用意されている。フリットは一旦そのバッファに蓄えられた後、スイッチの切り替えによって目的の経路へと続く中継装置や、宛先のメモリへ送信される。なお図6は、バスマスタからメモリにフリットが送信される例を想定しているが、これは一例である。フリットの宛先はメモリには限られず、たとえば他のバスマスタや、周辺機器と接続するため入出力インターフェイスであってもよい。
図8は、本実施形態における中継装置1201の構成図である。
中継装置1201は、入力バッファ1204と、スイッチ1205と、出力バッファ1206と、仮想チャネル情報管理部1207と、時間情報比較部1210と、宛先比較部1211と、出力チャネル選択部1212と、送信チャネル選択部1213と、スイッチ切替部1215と、競合検出部1214とを有している。
以下、各構成要素の機能を説明する。
入力ポート1218は、隣接する中継装置、又は他の送信ノードから送られてきたフリットを受信する。
入力バッファ1204は、入力ポート側で隣接する中継装置(又は送信ノード)から送られてきたフリットを蓄えるバッファである。
入力バッファ1204を構成する一時バッファは、中継装置1201の入力ごとに1つ設けられていてもよいし、または、異なるパケット毎に個別のチャネルを利用して送信スケジュール制御ができるように、入力ごとに複数の仮想チャネル1216が設けられていてもよい。本実施形態では、図8に示すように入力バッファ1204ごとに4個ずつ仮想チャネル1216を備えているとする。
クロスバスイッチ1205は、中継装置1201の入力ポートと出力ポートの排他的な接続を切り替えるスイッチである。
出力ポート1219は中継装置から、隣接する中継装置、又は受信ノードへフリットを送信する送信部である。
出力バッファ1206は、出力ポート先の中継装置群1203へフリットを送信する際に利用する一時バッファである。
出力バッファ1206には、さらに複数の出力チャネル1217が設けられている。出力チャネル1217は、出力ポート1219の先に接続された中継装置1203の入力バッファ内の仮想チャネルと同じ数だけ設けられており、隣接の中継装置群1203の仮想チャネルと1対1の対応関係が決められている。
中継装置1201から送信されるフリットは、送信に利用した出力チャネルに対応する出力ポートの先に接続された中継装置群1203の仮想チャネルに蓄えられる。すなわち、中継装置1201は、フリットの送信に利用する出力チャネルを選択することで、出力ポートの先に接続された中継装置1203へ送信されたフリットが格納される中継装置1203の仮想チャネルを指定できる。
仮想チャネル情報管理部1207は、各仮想チャネル1216に格納されるフリットの情報を管理する。仮想チャネル情報管理部1207が管理している情報の内容については、図9を用いて後で説明する。
出力ポート選択部1208は、入力バッファ1204に新しいヘッダーフリットが送られてくると、それを受け取り、ヘッダーフリットに記述された宛先情報を基に、次に受け渡す中継装置を特定する。
時間情報比較部1210は、各仮想チャネル内に格納されているパケットに付与された時間情報に基づく優先度を比較し、優先度の高い順に仮想チャネルに順番をつける。
なお、本実施形態では、パケットに付与される時間情報として、パケットの送信時刻を想定し、また時間情報に基づく優先度は、パケットが送信されてからの経過時間が長いもの、すなわちパケットの送信時刻が古いものほど優先度が高いとする。
宛先比較部1211は、各仮想チャネル内に格納されているパケットの宛先で、仮想チャネルをグループ分けし、グループ毎に格納しているパケットの経過時間の長い順に仮想チャネルの割当順序を決定する。
出力チャネル選択部1212は、各仮想チャネル内に格納されているフリットのうち、送信時刻比較部1210による送信時刻の比較結果と、宛先比較部1211による宛先の違いの比較結果をもとに、出力バッファ1206で利用されていない出力チャネル1217を選択する。
送信チャネル選択部1213は、入力ポートごとに複数の仮想チャネルの中から、フリットを送信する仮想チャネルを1つ選択する。
スイッチ切替部1214は、クロスバスイッチ1205を制御して、送信チャネル選択部1213によって、入力ポートごとに1つ選択された仮想チャネルに対し、排他的な出力ポートが割り当てられるようにクロスバスイッチ1205を切り替える。
競合検出部1215は、1つの出力ポートに対して、複数の仮想チャネルでフリット送信の競合が発生した場合に、スイッチ切替部1214により出力ポートが割り当てられなかった入力ポートに対し、別の出力ポートに送信する仮想チャネルを選択するように指示する。競合が発生したか否かは、スイッチ切替部1214がクロスバスイッチ1205を切り替えられたか否かで判断することができる。
なお、本発明では、中継装置が受信したフリットを仮想チャネルに格納する処理に関与する入力ポート1218、入力バッファ1204、仮想チャネル1216の集まりをまとめて入力部120aと定義する。また、仮想チャネルに格納されているフリットを中継装置から出力する処理に関与するクロスバスイッチ1205、送信チャネル選択部1213、スイッチ切替部1214、出力バッファ1206、出力チャネル1217、出力ポート1219の集まりをまとめて、出力部120bと定義する。
図9は、仮想チャネル情報管理部1207で管理され保持される仮想チャネル情報1301の一例である。
仮想チャネル情報として、各仮想チャネルを区別するために、入力ポートと仮想チャネルの識別番号が割り当てられており、さらに、仮想チャネルにパケットが格納されると、そのパケットの宛先を特定するためのアドレス情報、パケットが送信されてからの経過時間を示す時間情報、フリットを宛先まで送信するための出力ポートの番号、出力チャネルの番号が管理される。なお、時間情報は経過時間でなくてもよく、たとえばパケットの送信時刻であってもよい。
次に、各中継装置1201の動作の概要を、図10のフローチャートと、図11から図18を用いて説明する。なお、図11から図18において、図8、図9と同じ構成には、同じ番号を付与し説明を省略する。
回路全体が起動すると中継装置1201は、入力ポート1218を介して隣接する中継装置1202、又は送信ノードから送信されるフリットの受信待ち状態となる。
図11(A)は中継装置1201が未だフリットを受信していない状態における入力ポート0に関する仮想チャネル情報1301を示し、図11(B)は各バッファの様子を示す。以下、本明細書では入力ポート0に関する仮想チャネル情報を1301のみを例示する。参考のため、図11(B)にはヘッダフリット(H)1104、データフリット(D)1105およびテイルフリット(T)1106が示されている。
未だフリットが届いていないため、仮想チャネルは未使用状態となる。
図10のステップ1400において、入力ポート1218は、フリットを受信したかどうかを判断する。フリットを受信した場合には処理はステップ1401に進み、フリットを受信していない場合には処理はステップ1402に進む。ステップ1401において、入力ポート1218は仮想チャネル1216に受信したフリットを格納する。なお格納先の仮想チャネル1216は、隣接する中継装置1202で決定される。
ステップ1402において、仮想チャネル1216は入力バッファにフリットが存在するか否かを判断する。フリットが存在する場合には処理はステップ1403に進み、フリットが存在しない場合には処理はステップ1400に戻る。
ステップ1403において、中継装置内の仮想チャネル1216は、格納されたフリットがヘッダーフリット1104であるかどうかを判定する。先頭フリットがヘッダーフリットである場合はステップ1404に進み、そうでない場合はステップ1407に進む。なお、ステップ1403からステップ1407へ進む例は、パケットの送信途中であっても、仮想チャネルと出力ポートの接続の切り替えが必要な状況がある。たとえば送信時刻が古いフリットが別の送信ノードから遅れて到着した場合である。そのため、ステップ1103からステップ1407に進むように構成している。既に排他接続が確保されている場合には、形式的にはステップ1407の処理を行わずステップ1408に進むことになる。
ステップ1404において、格納されたフリットがヘッダーフリットであった場合、仮想チャネル情報管理部1207は、ヘッダーフリットに記録されている宛先のアドレスと、パケットが送信ノードから送信されてから経過した時間を表す時間情報を仮想チャネル情報1301に記録する。
図12(A)は、中継装置1201にヘッダーフリット1104が受信された場合の仮想チャネル情報1301を示す。
図12(B)は、入力ポート0で受信されたヘッダーフリット1104が、ステップ1402により、仮想チャネル0に格納された場合の各バッファの様子を示している。
ヘッダーフリット1104が、仮想チャネルに届くと、ヘッダーフリット1104に記載されている宛先のアドレスと、パケット(及びそれを構成するヘッダーフリット1401)が送信された時刻情報を仮想チャネル情報1301に記録する。
図12(A)は、ヘッダーフリット1104に付与された宛先のアドレスと、送信時刻情報を記録した後の仮想チャネル情報1301の様子を示している。
ここでは、パケットの宛先としてメモリ0のアドレス000と、送信された時刻20(サイクル)が仮想チャネル情報1301に記録されたものとする。
図12のステップ1405において、出力ポート選択部1208は、ヘッダーフリットを受け取り、仮想チャネル管理情報1207の出力ポートの番号が未だ設定されていない仮想チャネルに対し出力ポートを決定する。
例えば、図6に示した多段接続網の場合では、各メモリに対し3桁の2進数でアドレスが割り当てられ、各パケットのヘッダーフリットには、宛先となるメモリのアドレスが、3桁の2進数が付与されている。
各中継装置の出力ポート選択部1208は、ヘッダーフリットに付与された3桁のアドレスのうち、左から中継装置の段数と同じ桁の数字を読み取る。そしてその値が0ならば図5における右上の中継装置へフリットを送り、値が1ならば図5における右下の中継装置へフリットを送るように経路を決定する。
例えば、バスマスタBM2から、メモリ5(アドレス:101)へデータを送る場合には、アドレスに記載された3桁の数字に従って、まず中継装置R1では右下の中継装置R7へフリットが送信され、次に中継装置R7では右上の中継装置R10にフリットが送信され、最後に中継装置R10で右下のメモリ5へフリットが送信される。これにより、バスマスタBM5からメモリ2へとフリットが伝送される。
なお、出力ポート選択部1208で出力ポートの選択方法としては、分散バスのトポロジーに応じて、適切に目的地までフリットが送られる方法であれば、上記以外の方法であってもよい。
図13(A)は、中継装置1201において仮想チャネルの出力ポートが設定された後の仮想チャネル情報1301を示し、図13(B)は各チャネルの様子を示す。
図13(A)では、入力ポート0の仮想チャネル0には、宛先のアドレスが000のメモリ0へ送信されるフリットが格納されているため、仮想チャネル1216は、フリットをメモリ0へと向う出力ポート0から送信するために、出力ポート番号を0に設定する。
図10のステップ1406において、時間情報比較部1210と、宛先比較部1211と、出力チャネル選択部1212は、仮想チャネル情報管理部1207において、出力チャネルが未設定の仮想チャネルに対して、フリットの宛先と、時間情報に基づく優先度としてパケットの送信時刻の古さを基に、宛先ごとにパケットの送信時刻がもっとも古い仮想チャネルに対して、出力チャネルの割り当てを行う。
図14(A)は中継装置1201において出力チャネルの決定された後の仮想チャネル情報1301を示し、図14(B)は各チャネルの様子を示す。
図14(B)では、出力ポート0の出力チャネルはいずれも未使用である。本実施形態においては、入力ポート0の仮想チャネル0に出力チャネル0を利用させるために、図14(A)では出力チャネル番号に0が設定される。
なお、中継装置内に複数のパケットが存在する場合の出力チャネルの割り当ての詳細については、図17を用いて後で説明する。
図10のステップ1407において、送信チャネル選択部1213は、仮想チャネル情報1301を参照し、入力ポート毎に出力チャネルが設定済みの仮想チャネルを1つ選択する。
またスイッチ切替部1214は、仮想チャネル情報1301を参照し、送信チャネル選択部1213で選択された仮想チャネルで設定されている出力ポートで競合しているものがないかを判定し、競合が発生した場合、競合している仮想チャネルのいずれか1つを選択する。
これにより、入力ポートと出力ポートの間で排他的な接続が選択され、その結果に基づきスイッチ切替部1214はクロスバスイッチ1205を切り替える。
ステップ1408において、クロスバスイッチの切り替えが終わると、送信チャネル選択部1213により選択された仮想チャネル1216は、それぞれで決定された出力ポートの出力チャネル1206を利用してフリットを送信する。
図15(A)は中継装置1201がフリットを送信している状態の仮想チャネル情報1301を示し、図15(B)は各チャネルの様子を示す。
図15(A)および(B)では、中継装置内でパケットが1種類しかないため、入力ポート0の仮想チャネル0内のフリットが順番に、仮想チャネル情報1301に記録されている出力ポートの出力チャネルを通して、メモリ0へと送信される。
図10のステップ1409において、仮想チャネル1216は、フリットを送信する際に、送信したフリットがパケットを構成する最後のフリットであるかどうかを判定する。
ステップ1410において、送信したフリットがパケットを構成する最後のフリットであった場合には、別のパケットがその仮想チャネルを利用できるように開放する必要がある。そこで仮想チャネル情報管理部1207は、該当する仮想チャネルの情報を初期化する。
図16(A)はテイルフリット1106が送信された後の仮想チャネル情報1301を示し、図16(B)は各チャネルの様子を示す。
図16(A)および(B)では、テイルフリット1106が送信されたことにより、入力ポート0の仮想チャネル0内のフリットが全て送信され、未使用状態となる。よって、仮想チャネル情報1301は、仮想チャネル0の内容を初期化する。
以上、ステップ1401からステップ1410の処理を繰り返すことにより、中継装置1201は、送られてきたパケットを宛先の受信ノードに向けて送信することができる。
以下、図17を参照しながら、ステップ1406における処理、すなわち仮想チャネルにヘッダーフリット1104が格納された際に、利用する出力チャネルの詳細な割り当て処理を説明する。また図19を参照しながら、ステップ1407における、入力ポートと出力ポートとの接続を排他的に切り替える処理を詳細に説明する。
図17は、仮想チャネル1216に対する出力バッファ1206の割り当ての手順を示している。
ここでは、中継装置1201内に複数のパケットを構成するフリットが格納されており、バッファ管理情報1301、及び各バッファの状態が、それぞれ図18(A)、図18(B)に示す状態にある場合を例に説明する。図18(B)では、ヘッダーフリットH、データフリットD、テイルフリットTが示されている。これは、複数のパケットが並列的に入力ポート0および1にそれぞれ受信され、かつ、各出力されていることを意味する。
ステップ1501において、中継装置1201の出力チャネル選択部1212は、各仮想チャネルのうち、出力ポートは設定されているが、出力チャネルが未設定の仮想チャネルがあるか確認する。
図18(A)に示すバッファ管理情報1301では、入力ポート0の仮想チャネル1、及び入力ポート1の仮想チャネル1番に対して出力チャネルが未設定の状態にある。
ステップ1502において、出力ポートが設定されているが、出力チャネルが未設定の仮想チャネルがある場合は、バッファ管理情報1301に記録されている出力ポートの中で出力チャネルに空きがあるかどうかを確認する。
図18(A)の仮想チャネル情報1301では、入力ポート0の仮想チャネル1、及び入力ポート1の仮想チャネル1番は、ともに出力ポート1が設定されている。
また、出力ポートの出力チャネルは、図18(A)の仮想チャネル情報1301より、出力チャネル2のみが入力ポート1の仮想チャネル2に利用されており、残り利用されていないため空き状態にある。
ステップ1503において、時間情報比較部1201は、出力チャネルが未設定の仮想チャネル内の時間情報に基づく優先度(バスマスタBMから送信され時刻の古さ)を比較し、優先度の高い(送信時刻が古い)仮想チャネルから順序を付け、送信時刻が最も古く出力チャネルが未設定の仮想チャネルを1つ選択する。
図18(A)のバッファ管理情報1301では、送信時刻が小さい入力ポート1の仮想チャネル1の方が、出力チャネルが未設定状態にある仮想チャネルの中で、最も古いパケットを格納しており、出力チャネルを設定する候補として選択する。
ステップ1504において、宛先比較部1211は、選択された仮想チャネルの宛先と同じ宛先で、既に出力チャネル1217が割り当てられている仮想チャネル1216が存在するか否かを判定する。存在する場合には処理はステップ1505に進み、存在しない場合には処理はステップ1507に進む。
図18(A)に示す仮想チャネル情報1301では、入力ポート1の仮想チャネル1と同じ宛先アドレスの入力ポート1の仮想チャネル2が既に出力ポートが割り当てられているため、処理はステップ1505に進む。
次に図17のステップ1505において、出力チャネル選択部1212は、選択中の仮想チャネルの次に送信時刻が古いパケットを格納し、さらに出力チャネルが未設定の仮想チャネルがあるか判定する。存在する場合には処理はステップ1506に進み、存在しない場合には処理はステップ1508に進む。
図18(A)に示す仮想チャネル情報1301では、選択中の入力ポート1の仮想チャネル1の次に送信時刻が古いパケットを格納し、さらに出力チャネルが未設定の仮想チャネルが存在するため、処理はステップ1506に進む。
ステップ1506において、出力チャネル選択部1212は、パケットの送信時刻が選択中の仮想チャネルに次いで古いパケットを格納し、出力チャネルが未設定の仮想チャネルを新たに出力チャネルを設定する候補として選択する。
図18(A)に示す仮想チャネル情報1301では、現在、出力チャネルを設定する候補として選択中の入力ポート1の仮想チャネル1の次に送信時刻が古く、出力ポートが未設定の入力ポート0の仮想チャネル1を新たな候補に選択する。出力チャネル選択部1212は、選択した仮想チャネルが格納するパケットと同じ宛先へ送信されるパケットを格納する仮想チャネルに出力チャネルが既に設定されていないかの確認(ステップ1504)を繰り返す。
ステップ1504において、同じ宛先が設定されている仮想チャネルが無い場合には、ステップ1507に移り、空いている出力チャネルを選択中の仮想チャネルに割り当てる。
ステップ1504において、同じ宛先が設定されている仮想チャネルが無い場合には、処理はステップ1507に進み、出力チャネル選択部1212は空いている出力チャネルを選択中の仮想チャネルに割り当てる。
図18(A)に示す仮想チャネル情報1301では、新たに出力チャネルを設定する候補となった出力ポートが未設定の入力ポート0の仮想チャネル1と、パケットの宛先が同じ、かつ出力チャネルが設定済みの仮想チャネルが存在しないので、ステップ1507に移り、出力チャネルが割り当てられる。
また、ステップ1504からステップ1506を繰り返した結果、ステップ1505において、出力チャネルが未設定の仮想チャネルが他に存在しないと判定された場合には、ステップ1508に移り、最初に選択した(送信時刻が最も古く、出力チャネルが未設定)仮想チャネルに、空いている出力チャネルを割り当てる。これは、全ての宛先に対し出力チャネルが1つ以上割り当てられているため、異なる宛先間で均一に出力チャネルを割り当てるよりも、送信時刻の古いパケットに出力チャネルを割り当てることを優先したためである。
ステップS1508において、出力チャネル選択部1212は空いている出力チャネルを、最初に選択した仮想チャネルに設定する。
ステップ1504からステップ1508を行うことで、図18(A)の仮想チャネル情報1301では、経過時間のみで比較すると入力ポート1の仮想チャネル1は、出力チャネルが未設定の仮想チャネルの中で、送信時刻が最も古いフリットを格納している。しかしながら、そのフリットの宛先(アドレス011)は、入力ポート1の仮想チャネル2に格納されているフリットの宛先と同じである。そして入力ポート1の仮想チャネル2には、既に出力チャネル2が割り当てられている。よって、入力ポート0の仮想チャネル1には、出力ポート1の空きチャネルが割り当てられる。
以上のように、図17に示されるステップ1501からステップ1508を繰り返すことにより、宛先ごとに最も古いパケットを格納する仮想チャネルにのみ出力チャネルを割り当てることが可能となる。よって、全ての出力チャネル、すなわちそれに対応した出力ポート先の仮想チャネルを全て同じ宛先のパケットが占有するのを回避することが可能になる。
図19は、入力ポートと出力ポートを排他的に接続するクロスバスイッチの切り替え方法を示している。
中継装置1201は、パケットの送信時の順番を維持し、また伝送遅延の増加を抑制するために、複数の仮想チャネル1216に格納されたパケット(フリット)のうち、送信ノードで送信されてから経過時間の古いパケットから順番に送信を行う。
クロスバスイッチの切り替えにより、入力ポートと出力ポートを排他的に接続する場合、複数の入力ポートと出力ポートの要求に対し、より多くの入力ポートと出力ポートを同時に接続することで、より多くのフリットを転送することができる。
このため、並列計算機やATM網などでは、非特許文献1のように、クロスバスイッチの1回の切り替えに、入力ポートと出力ポートの全ての組み合わせから、より最適な組み合わせを探索するWavefront Allocatorや、フリットを送信する仮想チャネルの選択を入力ポート側と出力ポート側で独立して決定する処理を複数回繰り返すことでより最適な組み合わせを決定するParallel Interative Matchingなどの方法がとられている。
しかし、NoCは、集積回路上に中継装置を構成するため、実装面積や許容される遅延時間、消費電力の制約により、並列計算機やATMなどで用いられる処理量や繰り返し回数が多い方法をそのまま適用するのは困難であり、より簡単な構成と処理量で、より多くの入力ポートと出力ポートを接続することが望ましい。
このため、本発明の実施例では、フリットを送信する仮想チャネルの選択を入力ポート側と出力ポート側でそれぞれ独立して1回だけ決定し、出力ポート側での選択結果を、次回の入力切替の結果にフィードバックさせることで、クロスバスイッチによる入力ポートと出力ポートの接続がより多くなる組み合わせを決定する。
そのため、送信チャネル選択部1213は、ステップ1601において、入力ポート毎に、送信されてからの経過時間が最も古いパケットを格納する仮想チャネルを1つ選択する。
次に、ステップ1602において、スイッチ切替部1214は、ステップ1601で、送信チャネル選択部1213が選択した各入力ポートの仮想チャネル間で、出力ポートの利用で競合が発生した場合、出力ポート毎に経過時間の最も古いパケットを格納する仮想チャネルを1つ選択し、選択された仮想チャネルと出力ポートが接続するようにクロスバスイッチ1205の切り替えを行う。
ステップ1603において、クロスバスイッチの切り替えが終わると、スイッチ切替部1214で選択された仮想チャネルは、格納しているフリットを送信する。
ステップ1604において、競合検出部1213は、ステップ1602において、送信チャネル選択部1213によって選択されたが仮想チャネル間で、出力ポートの獲得で競合が発生したかどうかを判定する。具体的には、競合検出部1213は、スイッチ切替部1214から、スイッチの切り替えができたか否かの情報を受け取る。スイッチの切り替えができたときは競合が発生していないといえる。逆にスイッチの切り替えができなかったときは競合が発生していたといえる。この基準に基づいて、競合検出部1213は競合が発生したかどうかを判定する。
ステップ1605において、仮想チャネル間で、出力ポートの獲得で競合が発生した場合には、競合検出部1213はスイッチ切替部1214により選択されなかった仮想チャネルを送信チャネル選択部1213に通知し、送信チャネル選択部1213は、出力ポートを獲得できなかった入力ポートに対し、別の出力ポートへ送信する仮想チャネルの中で、送信時刻が最も古い仮想チャネルを1つ選択し、ステップ1602に戻る。
ステップ1601からステップ1605の処理を繰り返すことにより、より多くの入力チャネルと出力チャネルの排他的な接続数を多くし、伝送性能が向上するようにクロスバスイッチの切り替えを行う。
このように、実施形態1の中継装置1201では、パケットの宛先を区別して、NoCの中継装置において限られた仮想チャネルを異なる宛先のパケットに対して割り当てることで、同じ宛先のパケットが1部の中継装置の仮想チャネルを占有し、他の宛先へと送信されるパケットが送信できなくなる状況を回避し、伝送性能(スループット、遅延時間、ジッター)の低下を抑制する。
本実施形態では、時間情報比較部1201において、パケットに付与された時間情報に基づく優先度として、パケットが送信された時刻の古さを優先度と定義し、送信時刻の古いパケットから優先的に出力チャネルの割り当てを行った。しかしながら、送信時刻以外の時間情報を基準に優先度を定義し、出力チャネルを割り当ててもよい。
図20は、時間情報、および、時間情報に基づく優先度の比較基準の例を示す。
時間情報としては、例えば、パケットが送信されてからの経過時間を用いても良い。
時間情報として送信時刻を管理するためには、半導体システムが動作している期間を表現できるだけの桁数が必要である。よって、半導体システムが長時間動作する場合には時間情報の桁数が大きくなる。
これに対し、時間情報としてパケットが送信されてからの経過時間を用いる場合には、パケットが送信されてから受信されるまでにかかる時間を表現するだけの桁数があればよいので、比較的、時間情報の桁数を小さくすることが可能になる。時間情報として扱う値の桁数が小さければ、時間情報比較部1210における時間情報の比較回路を小さくできるため、半導体システムのリソース削減に有効である。
また、送信時刻を用いるとしても、年月日時分秒で表現される送信時刻の一部(たとえばM桁の送信時刻の位の小さい方からn桁の値(n:M>nとなる整数))を用いることで、時間情報として扱う桁数を小さくすることができる。n桁の値としては、例えばパケットが送信されてから受信されるまでにかかる時間を表現するだけの桁数を用いることができる。
この場合、時間情報比較部1201において、パケットに付与された時間情報に基づく優先度として、パケットが送信されてからの経過時間が大きいパケットから優先的に出力チャネルの割り当てを行う。
また、時間情報として、パケットが受信ノードに届くまでの締切時刻を用いて、締切時刻が近いパケットから順に出力チャネルを割り当てても良い。
一般的に、バスマスタの種類や処理の内容によって、パケットが受信ノードに届くまでに許容できる遅延時間が異なる。このため、送信ノードから、締切時刻までの時間が比較的に長いパケットが複数送信された後に、締切時刻までの時間が短いパケットが送信される状況を想定すると、中継装置において、送信時刻の古いパケットから順番に出力チャネルを割り当ててパケットを送信するよりも、締切時刻までの残り時間の短いパケットから出力チャネルを割り当ててパケットを送信する方が、より多くのパケットに対し、許容できる遅延時間を遵守できる。
この場合、時間情報比較部1201において、パケットに付与された時間情報に基づく優先度として、パケットが受信ノードに届くまでの締切時刻が現時刻に近いパケットから優先的に出力チャネルの割り当てを行う。
また、時間情報として、締切り時刻の代わりに締切り時刻までの残り時間を用いても良い。
この場合、時間情報比較部1201において、パケットに付与された時間情報に基づく優先度として、パケットが受信ノードに届くまでの締切り時刻までの残り時間が短いパケットから優先的に出力チャネルの割り当てを行う。
本実施形態では、宛先比較部1211において、宛先の区別を受信ノードのアドレスとして例に説明を行った。しかしながら、宛先の区別の定義は受信ノードのアドレスに限定されるものではない。
たとえば宛先として、中継器を指定してもよい。図21(A)および(B)は、中継装置R1からみた種々の宛先の定義および各定義に該当し得る宛先の具体例を示している。例えば、図21(A)の構成において、パケットが受信ノードに届くまでの伝送経路上で通過する途中の中継装置を、宛先と定義する。
図21(A)の中継装置R1に対して、宛先の定義を受信ノード(メモリ)とすると、中継装置R1にとってメモリ0からメモリ7までの8個が宛先となるが、宛先の定義を2つ先までの中継装置とすると、4つの中継装置R8〜R11が宛先となり得る。さらに、宛先の定義を1つ先の中継装置とすると、2つの中継装置R5およびR7が宛先となり得る。
このように宛先の定義を伝送経路上の途中の中継装置とすることで、受信ノードであるメモリを宛先とした場合よりも、宛先比較部1211で比較する宛先数を削減ができ、仮想チャネル間での宛先の比較にかかる処理を削減できる。
宛先とされた中継装置にパケットが到達した場合には、その中継装置は再び、図21(B)のいずれかの定義にしたがって宛先を設定し、パケットを送出すればよい。
(実施形態2)
実施形態1では、仮想チャネルの数やサイズに制約の多いNoCにおいて、中継装置内の仮想チャネルを宛先が異なるパケット間で均一に割り当てのスケジューリング制御により、仮想チャネルの利用を効率化し、NoC全体の伝送性能を向上させた。
これに対し、本実施形態の中継装置では、さらに入力ポートと出力ポートを接続するクロスバスイッチの切替を、パケットよりもサイズの小さい1フリット送信する毎に行うことで、NoC全体のバスの利用を効率化し、NoCの伝送性能を向上させる。
図22を用いて、本実施形態による中継装置の動作の概要を説明する。
図22(A)および(B)はそれぞれ、4つの受信ノード(受信ノードA、受信ノードB、受信ノードC、受信ノードD)に対して、パケットを中継器1、中継装置2、中継装置3を介してパケットを送信した場合、各中継装置における送信スケジューリングの方法と、各バスを通過するフリットの送信順序の関係を表している。図22(A)は、バスの利用率に偏りが発生している状態を示している。図22(B)は、バスの利用率が均一化されている状態を示している。
図22(A)は、各中継装置がクロスバスイッチの切り替えを、1パケットを送信する毎に行った場合に、各バス上を流れるフリットの送信順序を示している。
1パケット毎に送信スケジューリングを行った場合には、1パケットを構成する全てのフリットの送信が完了するまで、同じバスが利用されるため、図22(A)に示すように、フリットの流れが混雑するバスとフリットの流れが空いている(利用されていない)バスに分かれ、バスの利用率に偏りが発生しやすい。
また、図22(B)は、各中継装置がクロスバスイッチの切り替えを1フリット送信する毎に行った場合に、各バス上を流れるフリットの送信順序を示している。
1フリット毎に送信スケジューリングを行った場合には、宛先の異なるパケットを1サイクル毎に交代しながら同時に送信できるため、異なる宛先へと向うバス間で利用負荷が均一となり、バス全体を効率的に利用しやすい。
図23は、パケットの送信スケジューリングをパケット毎に行った場合と、フリット毎に行った場合のバスの利用効率とクロスバスイッチの切り替え回数の相対的な比較を示している。
図22(B)に示すようなクロスバスイッチの切り替えをフリット毎に行う場合、パケット毎に行う場合と比較すると、クロスバスイッチの切り替えの回数が多くなる。そのためクロスバの切り替えに必要な処理量が増える。その一方、異なる宛先へと向かうバスを同時に利用できるため、NoC全体でのバスの利用効率が向上し、伝送性能を向上させることができる。
このため、本実施形態による中継装置は、仮想チャネルの利用負荷に基づき、負荷が低い場合は、省電力化のためにスイッチの切り替え回数を少ないパケットを送信する毎にクロスバスイッチの切り替えを行い、負荷が所定の閾値よりも高い場合には、バスの伝送性能の向上が見込めるフリットを送信する毎にクロスバスイッチの切り替えを行う。
図24は、実施形態2の中継装置の構成を示す。
実施形態1と同じ構成については、図8と同じ番号を付与し、説明を省略する。なお、図8に示されている「入力部120a」および「出力部120b」は、図24には示されていないが、図24の構成においても同様に定義できる。
負荷測定部2301は、入力バッファ1204の伝送負荷が、所定の閾値を超えているかどうかの判定を行う。入力バッファ1204での伝送負荷の測定方法としては、例えば入力バッファ1204内で、現在利用されている仮想チャネル1216の数や、仮想チャネル1216内に格納されているフリット数、フリットの滞在時間などを用いることで、負荷の大きさを定量的に測定することができる。
図25は、実施形態2の中継装置での仮想チャネルと出力ポートの接続の切り替え動作を表している。
実施形態1と同じ処理については、図19と同じ番号を付与し、説明を省略する。図25は、ステップS2401〜S2404が追加されている点において図19と相違する。
ステップ2401において、負荷測定部2301は入力バッファ1204の負荷を測定する。そしてステップS2402において、測定した負荷が閾値以下か否かを判定する。
負荷が閾値以下であれば、ステップ1601に移り、経過時間の最も古いパケットを格納している仮想チャネルを選択する。負荷が閾値より大きい場合には、ステップ2403に移行する。
ステップ2403において、負荷が閾値以下であれば、送信チャネル選択部1213は、入力ポート毎に、出力チャネルが設定されている仮想チャネルをラウンドロビンで順番に1つ選択する。
ステップ2404において、さらに、スイッチ切り替え部1214は、送信チャネル選択部1213が選択した仮想チャネルのうち、出力ポートが同じ仮想チャネルがある場合は、ラウンドロビンで順番に1つ選択を行う。
なお、ステップ2403と、ステップ2404は、中継装置から1フリット送信されるたびに、宛先の異なるフリットが送信される方法であれば、例えばランダムに仮想チャネルを選択するなど、別の方法であっても良い。
以上のように、実施形態2の中継装置は、中継装置での伝送負荷の大きさに応じて、自動的に低負荷時にはスイッチの切り替えに必要な処理量が少ないモードと、負荷が高い場合には伝送性能が高いモードを切り分けた送信を行うことができる。
なお、本実施形態では、入力バッファの負荷に応じて、仮想チャネルの切り替えをパケット毎に行うか、フリット毎に行うかを選択するとした。しかしながら、仮想チャネルの切り替えを常にフリット毎に行うとしてもよい。すなわち、中継装置は、複数のパケットをフリット単位でインターリーブして複数のパケットを見かけ上並列的に出力してもよい。これは出力バッファが複数存在する場合には特に効果的である。
(実施形態3)
実施形態1においては、宛先毎に送信時刻が最も古いパケットを格納する仮想チャネルに対して出力チャネルを割り当てた。
本実施形態では、既に出力チャネルを設定済みのパケットと、宛先までの伝送経路上で、重複する中継装置の数がより少ないパケットから優先して出力チャネルを割り当てることで、伝送経路上でのパケット間の干渉を削減し、NoC全体の伝送性能を向上させる。
図26は、本実施形態の概要を示している。
多段接続網の中継装置R3において、メモリ0、メモリ1、メモリ3宛のパケットが仮想チャネルに格納されている状態にあり、メモリ0へ送信するパケットを格納する仮想チャネルは既に出力チャネルが設定済みであり、メモリ1とメモリ3宛のパケットを格納する仮想チャネルに対して出力チャネルを割り当てる状況を想定している。
既に出力チャネルが割り当てられているメモリ0宛てのパケットの伝送経路に対し、メモリ1宛てのパケットは中継装置R5においても同じ出力ポートを利用するのに対し、メモリ3宛てのパケットは、中継装置R5では、別の出力ポートを利用する。
このため、実施形態3の中継装置では、伝送経路上で出力ポートでの競合を抑制するために、パケットの送信時刻の古さに加えて、既に出力チャネルが割り当てられた宛先と宛先までの伝送経路上において重複するバスの数が少ない宛先へ送信されるパケットを格納する仮想チャネルに対して、優先的に出力チャネルを割り当てる。
図27は、本実施形態による中継装置の構成を示している。また図28は、本実施形態による中継装置の処理の手順を示している。
図27および図28では、実施形態1と同じ構成および処理については図8および図17と同じ番号を付与し、説明を省略する。なお、図8に示されている「入力部120a」および「出力部120b」は、図27には示されていないが、図27の構成においても同様に定義できる。
図28のステップ3301において、伝送経路解析部3201は、出力チャネル設定済みの仮想チャネルが存在するか否かを判定する。存在する場合には処理はステップ3302に進み、存在しない場合には処理はステップ1503に進む。ステップ3302において、伝送経路解析部3201は、中継装置から各宛先の受信ノードまでの伝送経路上で、重複するバスの数を解析し、出力チャネル設定済みの宛先までの経路と、重複するバスの数が最も少ない宛先の仮想チャネルを選択する。
例えば、図26の多段接続網型のトポロジーによって構成されるNoCでは、比較したい宛先の2進数で示されたアドレスの各桁の数値を左から比較し、数値が同じ桁数が、バスが重複する数となる。図26では、メモリ0(アドレス000)とメモリ1(アドレス001)では、左から2桁目までが一致するため、それぞれの伝送経路上の2カ所でバスが重複する。メモリ0(アドレス000)とメモリ3(アドレス011)では、左から1桁目までが一致するので、それぞれの伝送経路上の1カ所でバスが重複することを特定できる。
図28は、実施形態3の中継装置での出力チャネルの割り当ての動作を表している。実施形態1と同じ動作については、図15と同じ番号を付与し説明を省略する。
ステップ3301において、伝送経路解析部3201は、出力チャネルが設定済みの仮想チャネルが存在するかどうかを判定する。存在しない場合にはステップ1503に進み、存在する場合にはステップ3302に移る。
図26の中継装置R3の例では、中継装置R3は、メモリ0へ向かうパケットを格納する仮想チャネルに対して出力チャネルが設定済であるため、ステップ3302に進む。
次にステップ3302において、伝送経路解析部3201は、出力チャネルが設定済みの宛先までの経路上で重複するバスの数が最も少ない宛先を特定し、出力チャネルを割り当てる候補として、その宛先へ向かうパケットを格納する仮想チャネルを選択する。その後、処理はステップ1507に進む。
図26の中継装置R3の例では、中継装置R3は、既に出力チャネルが設定済みのメモリ0までの経路上で重複するバスの数が、メモリ1へ向かう経路とメモリ3へ向かう経路のいずれの方で少ないかを比較する。
図26の例では、メモリ0への経路とメモリ1への経路ではバスの重複は2回、メモリ0への経路とメモリ3への経路ではバスの重複は1回である。よって、中継装置R3は、出力チャネルを割り当てる候補として、メモリ3宛てのパケットを格納する仮想チャネルを選択する。
以上の図27の構成を持ち、図28の処理を行うことにより、実施形態3の中継装置は、既に出力チャネルが設定されているパケットと、宛先までの伝送経路上で重複するバスの少ないパケットから優先的に出力チャネルを設定するため、伝送経路上での出力ポートでの競合を減らし、伝送性能を向上させることができる。
なお、伝送経路解析部3201は、重複する経路の解析をリアルタイムで行ってもよい。しかしながら、各中継装置から各メモリまでの経路は設計時点で特定可能である。したがって、重複する経路の数を予め求めておき、その情報をたとえばテーブル形式で伝送経路解析部3201に保持させておけばよい。これにより、伝送経路解析部3201は、そのテーブルを参照することにより、重複する経路の程度を特定してもよい。
以上、本発明の実施形態を説明した。
実施形態1から3では、各中継装置の出力バッファ1206には、複数の出力バッファ1217を備える構成を用いて、各仮想チャネル1216で格納されるパケットに対し、出力チャネル選択部1212が出力チャネル1217の割り当てる例を説明した。
図8の構成で説明したように、複数の出力チャネル1217は、出力ポート1219を介して接続された送信先の中継装置1203内の仮想チャネルと同じ数だけ設けられており、中継装置1203の仮想チャネルと1対1の対応関係が決まっている。このため、出力チャネル選択部1212が出力チャネル1217を選択することは、間接的に送信先の中継装置1203の入力ポートの仮想チャネルを選択していることと同義となる。
この考えをより発展させると、本実施形態1から3の中継装置は、出力チャネル選択部1212が、直接、送信先の中継装置1203の仮想チャネルを選択することで、出力チャネル1217や出力バッファ1206を持たない構成によっても実現されることが理解される。この場合、出力チャネル選択部1212は、(1)たとえば、送信先の中継器1203から、仮想チャネルの状態の情報を取得し、送信先の中継装置1203内の仮想チャネルの空き状態を参照し、(2)自身の仮想チャネル1216に格納されている各パケットに対し、送信先の中継装置1203において格納する仮想チャネルを選択し、(3)さらにフリットを仮想チャネルから送信する際に、中継装置1203に対してフリットを格納する中継装置1203の仮想チャネルの指示を行えばよい。このような、出力チャネル1217や出力バッファ1206を持たない構成によれば、中継装置1201内のバッファを減らすことが可能になるため、実装面積の削減や、制御回路の簡略化などの効果を期待できる。
また、実施形態1から3では、集積回路のトポロジーが多段接続網の場合を例に説明したが、本発明の中継装置は多段接続網での利用に限定されるものではない。例えば、図29(A)に示すように中継装置を格子状に並べてメッシュ型トポロジーを構成してもよい。また図29(B)に示すように上下左右で中継装置をリング状に接続したトーラス型トポロジーを構成してもよい。さらに図29(C)に示すようにバスを階層的に接続した階層型トポロジーなどを構成してもよい。複数のバスマスタを分散型のバスを介して接続したトポロジーであれば、同様に本発明の中継装置の適用が可能である。
図30は、本発明の中継装置をメモリバスに利用した例を説明する図である。
図30では、携帯電話やPDA(Personal Digital Assistants)、電子書籍リダーなどの携帯端末や、TV、ビデオレコーダ、ビデオカメラ、監視カメラ等で用いられる半導体回路上のバスマスタ(CUP,DSP、伝送処理部、画像処理部など)と複数のメモリを分散型のバスを利用して接続させた利用例を示している。
複数の映像や音楽などの再生、記録、トランスコード、書籍や写真、地図でタの閲覧や編集、ゲームのプレイなど、複数のアプリケーションやサービスを同時に利用する場合、各バスマスタからメモリへのアクセスが増える。各バスマスタからアクセスするメモリの数が1つだけの場合、アクセスが1箇所に集中してしまう。アクセス集中の解決のめには、メモリ側の入出力の伝送帯域を広げる必要があり、コストが高くなってしまう。
このメモリアクセスの集中を回避する方法として、アプリケーションやサービス等の種類によってバスマスタが利用するメモリを物理的に分け、これらのバスマスタとメモリを分散型のバスで接続させることで、メモリアクセスの集中の回避が可能となる。
しかし、例えば図30において、あるバスマスタが、映像データを保存するためにメモリAに対して高いレートでデータパケットを送信した場合、各中継装置が送られてきたデータパケットの順序を単純に維持したまま中継すると、伝送経路上の仮想チャネルが全てメモリA宛のパケットで占有される頻度が多くなる。その結果、他のメモリへデータが流れにくくなり、他のアプリケーションやサービスの性能が低下や処理時間の増加が発生してしまう。
これに対し、本発明の中継装置を用いた場合には、各中継装置の仮想チャネルにおいて、宛先の異なるパケットに対して、均一に仮想チャネルを割り当てられるため、特定のメモリに向うパケットによる仮想チャネルの占有が回避され、半導体回路上の全てのアプリケーションやサービスの性能の向上や、処理時間の短縮化ができる。
なお、上述のメモリは、揮発性のDRAMであってもよいし、不揮発性のフラッシュメモリであってもよい。揮発性メモリおよび不揮発性メモリが混在していてもよい。
図31は、本発明の中継装置をマルチコアプロセッサ(multi−core processor)上で利用した例を説明する図である。マルチコアプロセッサ内のコアは、たとえばCPU、GPU、DSPなどである。
図31では、CPUやGPU,DSP等のコアプロセッサの処理能力を向上させるために、複数のコアプロセッサをメッシュ状に並べ、これらを分散バスで接続したマルチコアプロセッサである。
マルチコアプロセッサ上では、各コアプロセッサ間で通信が行われており、例えば、各コアプロセッサには、演算処理に必要なデータを記憶しておくキャッシュメモリが備えられており、コアプロセッサ間で互いのキャッシュメモリの情報をやり取りし、共有が可能であり、これにより性能を向上させることができる。
しかし、マルチコアプロセッサ上で発生するコアプロセッサ間の通信は、それぞれ配置や距離(中継ホップ数)、通信頻度が異なる。このため、データパケットの順序を単純に維持したまま中継すると、仮想チャネルが全て特定のコアプロセッサ宛のパケットにより占有されパケットデータが流れにくい中継装置が発生し、マルチコアプロセッサの性能の低下や、処理時間の増加を引き起こす。
これに対し、本発明の中継装置を用いた場合には、各中継装置の仮想チャネルにおいて、宛先の異なるパケットに対して、均一に仮想チャネルを割り当てられるため、特定のコアプロセッサに向うパケットにより仮想チャネルが占有された中継装置の発生が回避され、各コアプロセッサの性能の向上や、処理時間の短縮化ができる。
本発明にかかる中継装置は、分散型のバスを備える集積回路において、送信パケットに対する各中継装置での仮想チャネルの割り当て順番のスケジューリングを効率的に行うことで、NoC全体での伝送性能(スループット、伝送遅延、ジッター)を向上できる。当該中継装置によれば、実装時の制約の大きい仮想チャネルを増やす必要はない。このため、例えば複数のメディア処理用のDSPや、高速なファイル転送を行うCPUなどを、分散バスを用いて1つのSoC(System on Chip)上に集積化する際に、実装に必要なリソースの省資源化と、処理の低遅延化の双方を実現する上で有用である。
また、リソースの省資源化と処理の低遅延化による、集積回路全体での省電化に対しても有用である。
1100 パケット
1101 ヘッダフィールド
1102 データフィールド
1103 制御コードフィールド
1201 中継装置
1202 入力ポート先の隣接の中継装置
1203 出力ポート先の隣接の中継装置
1204 入力バッファ
1205 クロスバスイッチ
1206 出力バッファ
1207 仮想チャネル情報管理部
1208 出力ポート選択部
1210 時間情報比較部
1211 宛先比較部
1212 出力チャネル選択部
1213 送信チャネル選択部
1214 スイッチ切替部
1215 競合検出部
1216 仮想チャネル
1217 出力チャネル
1218 入力ポート
1219 出力ポート
1301 バッファ管理情報
2301 負荷測定部
3201 伝送経路解析部

Claims (14)

  1. 複数の宛先の情報が付加されたヘッダおよび前記ヘッダに関連するデータを含むデータ単位を受信する入力バッファと、
    前記宛先の情報に対応するデータ単位を格納する複数の仮想チャネルと、
    前記宛先が同一か否かにより、前記複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定する宛先比較部と、
    前記送信先の中継装置の仮想チャネルの割り当てが決定された仮想チャネルから、格納されたデータ単位を出力する出力部と
    を備えた、中継装置。
  2. 前記宛先比較部は、データ単位の宛先を区別し、送信先の中継装置の仮想チャネルが未割り当ての宛先へ送られるデータに対し、優先的に送信先の中継装置の仮想チャネルを割り当てるよう、前記割当順序を決定する、請求項1に記載の中継装置。
  3. 前記宛先比較部は、前記宛先が同一であるデータ単位に対して、前記ヘッダに付与された時間情報に基づいて、前記送信先の中継装置の仮想チャネルの割当順序を決定する、請求項2に記載の中継装置。
  4. 前記宛先比較部は、前記時間情報としてデータが送信されてからの経過時間を用い、前記経過時間が長いデータから優先的に前記送信先の中継装置の仮想チャネルを割り当てる、請求項3に記載の中継装置。
  5. 前記宛先比較部は、前記時間情報として宛先に届くまでの締切時刻を用い、前記締切時刻の残り時間が少ないデータから優先的に前記送信先の中継装置の仮想チャネルを割り当てる、請求項3に記載の中継装置。
  6. 宛先が定められたデータを各々が受け取る複数の入力ポートをさらに備え、
    前記出力部は、
    各々がデータを出力する複数の出力ポートと、
    各入力ポートに対応して設けられ、受け取ったデータを格納する複数の仮想チャネルと、
    前記仮想チャネルに格納されたデータの宛先ごとに、時間情報に基づく優先度が最も高いデータを格納する仮想チャネルと、前記優先度が最も高いデータの宛先に到達可能なバスに接続された出力ポートとを接続することで、前記データを各出力ポートから出力するクロスバスイッチと
    を備える、請求項1に記載の中継装置。
  7. 仮想チャネルに格納されたデータが送信されてからの経過時間が長いほど、前記時間情報に基づく優先度は高い、請求項6に記載の中継装置。
  8. 仮想チャネルに格納されたデータが宛先に届くまでの締切時刻までの残り時刻が短いほど、前記時間情報に基づく優先度は高い、請求項6に記載の中継装置。
  9. 前記データのパケットは複数のフリットから構成されており、前記データは、フリット単位で前記バス上を伝送されており、
    自中継装置を通過するデータの負荷を測定する負荷測定部をさらに備え、
    前記負荷測定部により測定された負荷が予め定められた閾値よりも大きい場合は、前記クロスバスイッチは、1フリットを送信する毎に、仮想チャネルと出力ポートとの接続を切り替え、負荷が閾値以下の場合は、1パケット分のフリットの送信が完了する毎に、仮想チャネルと出力ポートとの接続を切り替える、請求項6に記載の中継装置。
  10. 前記負荷測定部は、自中継装置内の仮想チャネル内に格納されているフリットの量を、前記中継装置を通過するデータの負荷として測定する、請求項9に記載の中継装置。
  11. 前記クロスバスイッチは、1フリットを送信する毎に、常に仮想チャネルと出力ポートとの接続を切り替える、請求項9に記載の中継装置。
  12. 宛先の異なるパケット間で、重複する宛先までの伝送経路を特定する伝送経路解析部と、
    前記時間情報に基づいて、前記仮想チャネルの宛先ごとに、前記時間情報に基づく優先度が最も高いデータを格納する仮想チャネルと接続される出力チャネルを選択する出力チャネル選択部と
    をさらに備え、
    前記出力チャネル選択部は、前記伝送経路解析部によって特定された伝送経路に基づいて、互いに伝送経路の重複が相対的に少ない宛先のパケットを格納する中継装置から順番に、送信先の中継器の仮想チャネルを割り当てる、請求項1に記載の中継装置。
  13. 前記宛先比較部は、前記宛先までの経路上において通過する前記中継装置が同一か否かにより、前記複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定する、請求項1に記載の中継装置。
  14. 各々が、宛先に届くまでの締め切り時間情報が付加されたヘッダおよび前記ヘッダに関連するデータを含むデータ単位を格納する複数の仮想チャネルと、
    前記時間情報が示す時刻に応じて、前記複数の仮想チャネルの各々に格納されているデータ単位の送信先の中継装置の仮想チャネルの割当順序を決定する宛先比較部と
    を備え、前記送信先の中継装置の仮想チャネルの割り当てが決定された仮想チャネルから、格納されたデータ単位を出力し、集積回路内を伝送されるデータ単位を中継する中継装置。
JP2011535746A 2010-09-03 2011-05-31 中継装置 Active JP4880802B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011535746A JP4880802B1 (ja) 2010-09-03 2011-05-31 中継装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010197604 2010-09-03
JP2010197604 2010-09-03
JP2011535746A JP4880802B1 (ja) 2010-09-03 2011-05-31 中継装置
PCT/JP2011/003020 WO2012029215A1 (ja) 2010-09-03 2011-05-31 中継装置

Publications (2)

Publication Number Publication Date
JP4880802B1 JP4880802B1 (ja) 2012-02-22
JPWO2012029215A1 true JPWO2012029215A1 (ja) 2013-10-28

Family

ID=45772342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011535746A Active JP4880802B1 (ja) 2010-09-03 2011-05-31 中継装置

Country Status (5)

Country Link
US (1) US8234435B2 (ja)
EP (1) EP2613479B1 (ja)
JP (1) JP4880802B1 (ja)
CN (1) CN102523764B (ja)
WO (1) WO2012029215A1 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014017069A1 (ja) 2012-07-24 2014-01-30 パナソニック株式会社 バスシステムおよび中継器
JP5975446B2 (ja) * 2012-08-13 2016-08-23 パナソニックIpマネジメント株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム
US9130885B1 (en) 2012-09-11 2015-09-08 Mellanox Technologies Ltd. End-to-end cache for network elements
US9229895B2 (en) * 2012-09-13 2016-01-05 Intel Corporation Multi-core integrated circuit configurable to provide multiple logical domains
US9526285B2 (en) 2012-12-18 2016-12-27 Intel Corporation Flexible computing fabric
JP6229985B2 (ja) 2013-03-12 2017-11-15 パナソニックIpマネジメント株式会社 バスシステムおよびコンピュータプログラム
US9237093B2 (en) * 2013-03-14 2016-01-12 Silicon Graphics International Corp. Bandwidth on-demand adaptive routing
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9325641B2 (en) * 2014-03-13 2016-04-26 Mellanox Technologies Ltd. Buffering schemes for communication over long haul links
US9584429B2 (en) 2014-07-21 2017-02-28 Mellanox Technologies Ltd. Credit based flow control for long-haul links
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9812873B2 (en) 2014-12-01 2017-11-07 Hamilton Sundstrand Corporation Virtual channel abstraction layer for solid state power controls
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
JP6583029B2 (ja) * 2016-02-03 2019-10-02 株式会社デンソー 中継装置
JP6586666B2 (ja) * 2016-02-23 2019-10-09 富士通株式会社 並列処理装置、ノード情報採取方法、およびノード情報採取プログラム
JP6805562B2 (ja) * 2016-06-14 2020-12-23 株式会社デンソー データ処理システム
CN106161254B (zh) * 2016-07-18 2019-06-18 中国科学院计算技术研究所 一种多目的数据传输网路路由装置、方法、芯片、路由器
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
JP6633499B2 (ja) * 2016-11-28 2020-01-22 日本電信電話株式会社 通信装置
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
JP6418291B1 (ja) 2017-07-27 2018-11-07 日本電気株式会社 中継装置
US10498631B2 (en) * 2017-08-15 2019-12-03 Hewlett Packard Enterprise Development Lp Routing packets using distance classes
US10374943B2 (en) 2017-08-16 2019-08-06 Hewlett Packard Enterprise Development Lp Routing packets in dimensional order in multidimensional networks
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
CN108650160B (zh) * 2018-04-26 2020-07-17 西安微电子技术研究所 一种基于链式端口的总线桥接器及其工作方法
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
US10951549B2 (en) 2019-03-07 2021-03-16 Mellanox Technologies Tlv Ltd. Reusing switch ports for external buffer network
KR20220102160A (ko) 2021-01-11 2022-07-20 삼성전자주식회사 패킷 전송을 위한 스위치, 그것을 갖는 네트워크 온 칩, 및 그것의 동작 방법
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6359861B1 (en) * 1997-10-08 2002-03-19 Massachusetts Institute Of Technology Method for scheduling transmissions in a buffered switch
US6760328B1 (en) * 1999-10-14 2004-07-06 Synchrodyne Networks, Inc. Scheduling with different time intervals
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US7391786B1 (en) * 2002-11-27 2008-06-24 Cisco Technology, Inc. Centralized memory based packet switching system and method
FR2883117B1 (fr) * 2005-03-08 2007-04-27 Commissariat Energie Atomique Architecture de noeud de communication dans un systeme de reseau sur puce globalement asynchrone.
US8135024B2 (en) * 2005-11-14 2012-03-13 Corning Incorporated Method and system to reduce interconnect latency
WO2007099644A1 (ja) 2006-03-03 2007-09-07 Hitachi, Ltd. クロスバスイッチ
US8412867B2 (en) 2007-06-08 2013-04-02 Nec Corporation Semiconductor integrated circuit and filter and informational delivery method using same
WO2009133918A1 (ja) * 2008-04-30 2009-11-05 日本電気株式会社 ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法

Also Published As

Publication number Publication date
EP2613479B1 (en) 2015-09-30
US8234435B2 (en) 2012-07-31
US20120072635A1 (en) 2012-03-22
EP2613479A1 (en) 2013-07-10
EP2613479A4 (en) 2013-08-28
WO2012029215A1 (ja) 2012-03-08
CN102523764B (zh) 2015-02-18
JP4880802B1 (ja) 2012-02-22
CN102523764A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
JP4880802B1 (ja) 中継装置
JP5603481B2 (ja) 中継装置
US9426099B2 (en) Router, method for controlling router, and program
JP5320512B2 (ja) 中継器、中継器の制御方法、およびプログラム
US9130856B2 (en) Creating multiple NoC layers for isolation or avoiding NoC traffic congestion
US8934377B2 (en) Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
US20170063697A1 (en) Qos in a system with end-to-end flow control and qos aware buffer allocation
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
JP5552196B2 (ja) 中継装置、中継装置の制御方法、およびコンピュータプログラム
JP2011517903A (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
JP5834178B2 (ja) 半導体回路のバスシステム
US20140223053A1 (en) Access controller, router, access controlling method, and computer program
US20110317691A1 (en) Interprocessor communication system and communication method, network switch, and parallel calculation system
JP5842174B2 (ja) バス制御装置、中継装置およびバスシステム
Chen et al. Combined centralized and distributed connection allocation in large TDM circuit switching NoCs
Chen et al. Combined tdm and sdm circuit switching nocs with dedicated connection allocator
CN117750552A (zh) 一种无线网络的通信资源管理方法及节点
Kearney et al. Evaluation of network topologies for a run time re-routable network on a programmable chip
Tong et al. Exploration of slot allocation for On-Chip TDM virtual circuits

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111201

R150 Certificate of patent or registration of utility model

Ref document number: 4880802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3