JP2017527219A - ネットワークオンチップトポロジー内のトンネリング - Google Patents

ネットワークオンチップトポロジー内のトンネリング Download PDF

Info

Publication number
JP2017527219A
JP2017527219A JP2017512935A JP2017512935A JP2017527219A JP 2017527219 A JP2017527219 A JP 2017527219A JP 2017512935 A JP2017512935 A JP 2017512935A JP 2017512935 A JP2017512935 A JP 2017512935A JP 2017527219 A JP2017527219 A JP 2017527219A
Authority
JP
Japan
Prior art keywords
data packet
data
signal
tunnel
noc
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
JP2017512935A
Other languages
English (en)
Other versions
JP6254331B2 (ja
Inventor
マーティン、フィリップ
ブカール、フィリップ
Original Assignee
クゥアルコム・テクノロジーズ・インコーポレイテッド
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 クゥアルコム・テクノロジーズ・インコーポレイテッド filed Critical クゥアルコム・テクノロジーズ・インコーポレイテッド
Publication of JP2017527219A publication Critical patent/JP2017527219A/ja
Application granted granted Critical
Publication of JP6254331B2 publication Critical patent/JP6254331B2/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/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/628Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first

Abstract

システムおよび方法は、第1の方向においてデータパケットを搬送するように構成された1つまたは複数のチャネル、第1の方向が、アップストリーム端とダウンストリーム端とを有する、を含むネットワークオンチップ(NoC)に関係する。トンネルが、アップストリーム端におけるアップストリーム要素とダウンストリーム端におけるダウンストリーム要素との間に構成される。トンネルは、1つまたは複数のチャネルによって共有される共通ワイヤを含む。トンネルは、共通信号に基づいて共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成される。共通信号は、共通ワイヤ上でデータパケットに属するデータ、制御、またはデバッグ情報のうちの1つまたは複数を送信するためのデータ信号と、共通ワイヤ上でのデータ信号の送信を制御するためのフレーミング信号とを備える。

Description

[0001]開示する態様は、トンネルを使用するネットワークオンチップ(NoC)中のデータ通信を対象とする。例示的な態様では、トンネルは、パケットフォーマットアグノスティック(agnostic)であり、共通信号を使用してNoCの1つまたは複数のチャネルによって共有されるトンネルの共通ワイヤ上で、2つまたはそれ以上のフォーマットのデータパケットを送信するように構成される。
[0002]処理システムの場合、システムオンチップ(SoC)の設計は、半導体チップ上に組み込まれる様々なシステム構成要素間のルーティングを伴う。ワイヤルーティング輻輳は、SoCの様々なルーティング要件のためにネットワークオンチップ(NoC)を設計することにおける課題である傾向がある。長いワイヤおよびバスは、ルーティングのために特に困難であり、エラーおよびデータ損失を起こしやすいことがある。さらに、2つのエンティティ間のデータ通信のための専用ワイヤの使用は、非効率性につながり得る。たとえば、いくつかのワイヤが過剰利用され得るが、十分に利用されないいくつかのワイヤがあり得る。さらに、データがパッケージングされ得る異なるパケットフォーマットは、異なるタイプのワイヤおよび伝送プロトコルを必要とし得る。均一な利用を促進しようとしてワイヤにわたってデータトラフィックを共有することは、NoCの様々なワイヤ間で通信されるデータの様々なタイプまたはフォーマット間の競合につながり得る。
[0003]したがって、ワイヤの数を低減し、ならびに、ネットワークオンチップ(NoC)の既存のワイヤの利用の効率を改善する必要がある。
[0004]本開示の例示的な態様は、第1の方向においてデータパケットを搬送するように構成された1つまたは複数のチャネル、第1の方向が、アップストリーム端とダウンストリーム端とを有する、を含むネットワークオンチップ(NoC)に関係するシステムおよび方法を含む。トンネルが、アップストリーム端におけるアップストリーム要素とダウンストリーム端におけるダウンストリーム要素との間に構成される。トンネルは、1つまたは複数のチャネルによって共有される共通ワイヤを含む。トンネルは、共通信号に基づいて共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成される。共通信号は、共通ワイヤ上でデータパケットに属するデータ、制御、またはデバッグ情報のうちの1つまたは複数を送信するためのデータ信号と、共通ワイヤ上でのデータ信号の送信を制御するためのフレーミング信号とを備える。
[0005]たとえば、例示的な態様は、第1の方向においてデータパケットを搬送するように構成された1つまたは複数のチャネルと、第1の方向が、アップストリーム端とダウンストリーム端とを備える、トンネルとを備えるネットワークオンチップ(NoC)を含む。トンネルは、アップストリーム端におけるアップストリーム要素とダウンストリーム端におけるダウンストリーム要素との間に構成される。トンネルは、1つまたは複数のチャネルによって共有される共通ワイヤを備え、トンネルが、共通信号を使用して共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成される。
[0006]別の例示的な態様は、ネットワークオンチップ(NoC)を動作させる方法であって、方法は、第1の方向においてデータパケットを搬送するように1つまたは複数のチャネルを構成することと、第1の方向が、アップストリーム端とダウンストリーム端とを備える、1つまたは複数のチャネルによって共有される共通ワイヤを備えるトンネル上で、アップストリーム端上のアップストリーム要素から、ダウンストリーム要素上のダウンストリーム要素にデータパケットを送信することとを備える、方法を含む。データパケットを送信することが、共通信号を使用してトンネルの共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信することを備える。
[0007]また別の例示的な態様は、第1の方向においてデータパケットを搬送するための1つまたは複数のチャネルと、第1の方向が、アップストリーム端とダウンストリーム端とを備える、アップストリーム端上のアップストリーム要素からダウンストリーム要素上のダウンストリーム要素にデータパケットを送信するための手段とを備える、システムを含む。送信するための手段が、すべてのチャネルによって共有される共通ワイヤを備え、送信するための手段が、共通信号を使用して共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成される。
[0008]添付の図面は、本発明の実施形態の説明を助けるために提示され、実施形態の限定ではなく、実施形態の例示のみのために与えられるものである。
[0009]送信機と受信機との間のデータ通信のために構成された例示的なシステムを示す図。 [0010]送信機と受信機との間のデータ通信のための例示的な方法のフローチャート図。
[0011]本発明の特定の実施形態を対象とする以下の説明および関連する図面において、本発明の態様が開示される。本発明の範囲から逸脱することなく、代替実施形態が考案され得る。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素については詳細に説明しないか、または省略する。
[0012]「本発明の実施形態」という用語は、本発明のすべての実施形態が、説明する特徴、利点または動作モードを含むことを必要としない。
[0013]本明細書で使用する用語は、特定の実施形態について説明するためのものにすぎず、本発明の実施形態を限定するものではない。本明細書で使用する単数形「a」、「an」および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、本明細書で使用する「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことを理解されよう。
[0014]さらに、多くの実施形態について、たとえば、コンピューティングデバイスの要素によって実行されるべき一連のアクションに関して説明する。特定の回路(たとえば、特定用途向け集積回路(ASIC))、プログラム命令を実行する1つまたは複数のプロセッサ、または両方の組合せが、本明細書で説明する様々なアクションを実施し得ることを認識されよう。さらに、本明細書で説明する一連のアクションは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるであろうコンピュータ命令の対応するセットを記憶した任意の形態のコンピュータ可読記憶媒体内で全体として実施されるべきものと見なされ得る。したがって、本発明の様々な態様は、すべてが請求する主題の範囲内に入ることが企図されているいくつかの異なる形態で実施され得る。さらに、本明細書で説明する実施形態の各々について、任意のそのような実施形態の対応する形式について、本明細書では、たとえば、説明するアクションを実行する「ように構成された論理」として説明することがある。
[0015]本開示の態様は、物理ワイヤの共有セットを通してネットワークオンチップ(NoC)の2つまたはそれ以上のネットワーク要素を結合またはリンクするように構成されたトンネルの実装を対象とする。トンネルは、データのストリーム、またはより詳細には、データパケットのストリームを搬送し得る。本明細書で使用する「データ」および「データ信号」という用語は、データに関係する信号または情報、ならびに制御情報、デバッグ情報など他の情報を含むことがある。本開示では、トンネル上で送信またはトランスポートされるデータ信号は、データ、制御、デバッグなど、すべてのそのような関係情報を含むことがあるが、一方、トンネル自体上での送信に関して、「フレーミング信号」という用語に関して説明される、さらなる制御信号が使用される。
[0016]したがって、データまたはデータ信号の上記の定義を念頭に置いて、データ「パケット」は、データの1つまたは複数のワードを含むことがあり、ここで、「ワード」は、1つまたは複数のデータビットのグループの最も低いグラニュラリティを指すことがある。例示的なデータパケットは、ヘッダおよびデータペイロードを含み得る(データペイロードは以下で単にデータと呼ばれることがある)。ヘッダは、データに関する情報を含んでいることがあり、ここで、そのような情報は、データパケットの識別および処理を容易にし得る、制御情報、ならびに/またはパケットサイズ、開始および終了ワード/フィールドに関する情報などを含み得る。したがって、トンネルは、システムの2つまたはそれ以上の構成要素またはNoCの2つまたはそれ以上のポイントがそれを通して通信することができる、物理媒体を備え得る。トンネルは、異なるフォーマットまたはタイプのものであり得る、データパケットのストリームを搬送し得る。トンネルは、特定のタイプまたはフォーマットに限定されないデータパケットストリームをサポートすることができるので、様々なデータパケットストリームのための専用ワイヤが回避され得る。
[0017]いくつかの態様では、異なるフォーマットのデータパケットは、「共通信号」を使用して、トンネル中のワイヤの共通セット上で送られ得る。「共通信号」は、送信されているデータビットを表す「データ信号」、ならびに上述の「フレーミング信号」を含む。「フレーミング信号」という用語は、それらの機能を、送信されているデータ信号中に含まれ得る制御情報と区別するために、本開示で採用された。したがって、「フレーミング信号」は、より詳細には、トンネルの共通ワイヤ上でデータ信号の送信の様々な態様を制御するために使用される制御情報を指す。フレーミング信号は、トンネル上での様々なフォーマットのデータパケットの送信を制御することができる。データ信号は、トンネル中のワイヤの共通セット上で送信されるどんなフォーマットのデータまたはデータパケットをも含むことがある。したがって、データ信号ならびにフレーミング信号を含む共通信号は、トンネル中のワイヤの共通セット上での2つまたはそれ以上のデータパケットフォーマットの送信のために使用され得る。このようにして、例示的なトンネルは、フォーマットアグノスティックであるように構成され、データパケットの異なるフォーマットおよびタイプの送信をフレキシブルにサポートすることができる。
[0018]概して、トンネルによって結合された2つのネットワーク要素間のデータ転送の第1の方向または順方向に言及すると、アップストリーム要素が、トンネル上でデータを送るかまたは送信するように構成され得る。ダウンストリーム要素が、データを受信するように構成され得る。データ通信の第2の方向または逆方向も、トンネル上で可能であり、ここで、アップストリーム要素およびダウンストリーム要素の機能が反転され得、したがって、逆方向の詳細な説明は簡潔のために繰り返されない。
[0019]引き続き第1の方向に言及すると、1つまたは複数のチャネルからのデータが、アップストリーム要素にデータを供給し、トンネル中のワイヤの共有セットを通過し、ダウンストリーム要素によって受信され得る。ダウンストリーム要素は、次いで、NoCのダウンストリーム側の1つまたは複数のチャネルにデータをフォワーディングし得る。概して、アップストリーム要素にデータを供給する1つまたは複数のチャネルは、ダウンストリーム要素からデータを排出する1つまたは複数のチャネルとの間に1対1の対応を有する。したがって、例示的な態様では、トンネルは、NoCのアップストリーム端とダウンストリーム端との間にワイヤの共有セットを実装することによって、ワイヤ輻輳を軽減し得、したがって、ワイヤの専用セットと、これらの端間のワイヤの専用セットの各々についての関係するルーティング複雑さとを回避することがわかり得る。
[0020]トンネル中のワイヤの共有セットにわたるデータの共有について説明するために、NoCの3つのチャネルA、B、およびCの非限定的な例について考える。3つのチャネルは、データを搬送するように構成され、アップストリーム端上の任意の数の1つまたは複数のエンティティと、ダウンストリーム端上の任意の数の1つまたは複数のエンティティとに接続され得る。トンネルは、たとえば、チャネルA上のデータが、アップストリーム端上でトンネルに入り、トンネルを出て、チャネルA上でダウンストリームに続くように、NoCの2つのポイントまたは部分との間に実装され得る。チャネルBおよびCについても同様である。チャネルA、B、およびCの各々は、異なるフォーマットのデータパケットを搬送し得、これらのチャネルは、トンネルに入る/から出る異なる帯域幅、および/またはワイヤの数を有し得る。しかしながら、トンネル内で、データが再整形され得る。データパケットは、トンネル内で、再整形され、共有または共通ワイヤのセットにマッピングされ得る。データパケットを再整形することは、それを介してデータパケットが送信される共通ワイヤの数、送信のクロックレート、または送信によって消費されるクロックサイクルの数のうちの1つまたは複数に関する変更を含むことができる。データパケットを再整形するか、変更するか、またはトンネルの共通ワイヤ上に再マッピングすることの態様は、「シリアル化」と呼ばれることもある。トンネル中の共通ワイヤは、チャネルA、B、およびCからのデータパケットが、これらのデータパケットが異なるフォーマットのものである場合でも共通ワイヤ上にシリアル化され得るように、データパケットのフォーマットにアグノスティックである。
[0021]したがって、トンネルは、パケット送信ユニットとして働く。しかしながら、トンネルは、データパケットのビットレベルコンテンツを変更してはならない。例示的な態様では、トンネルは、共有または共通ワイヤ上に競合を有し得るデータパケット間のアービトレーションのために、送信されているデータパケットのコンテンツをルックアップし得、トンネルは、本明細書で説明するように、データパケットの送信によって消費される、ワイヤの数、クロックレートまたはクロックサイクルの数に関係し得る、データパケットの「形状」を変更し得る。
[0022]アップストリーム端において、本明細書では「トンネリングマルチプレクサ」(またはより簡単に、「トンネルmux」または「mux」)と呼ばれるネットワーク要素が、チャネルA、B、およびCからデータを受信し、それらをトンネル中のワイヤの共有セット上に配置する。muxは、チャネルA、B、およびCのうちのいずれか1つまたは複数から受信されたデータパケットを再整形し得る。さらに、チャネルA、B、Cは、異なる性能要件を有し得、より詳細には、いくつかのデータパケット自体が、個々の優先度を搬送し得る。したがって、データパケット間またはチャネル間で競合が起こり得る。以下のセクションでさらに説明する競合がある場合、本明細書では「チャネルアービタ」、または単に「アービタ」と呼ばれる別のネットワーク要素が、競合を解決することと、どのデータパケットが優先権を入手し得るかを決定することとを支援し得る。
[0023]ダウンストリーム端において、「トンネリングデマルチプレクサ」(またはより簡単に、「トンネルdemux」または「demux」)と呼ばれる対応するネットワーク要素が、トンネルからデータパケットを受信し、それらをチャネルA、B、およびC上に再マッピングする。データパケットが再整形され得るので、先入れ先出し(FIFO)など、1つまたは複数のバッファが、データパケットの様々なワードまたはビットを集めるために、demux中で実装され得る。各チャネルは、データパケットを再パックするかまたは再マッピングするために使用され得る、対応するFIFOを有し得る。データパケットは、データパケットの送信がチャネル上で開始されると、それは中断され得ず、同じチャネル上での別のデータパケットの送信が開始される前にデータパケットの送信が完了されなければならないという意味で、アトミックであることが意図される。FIFOは、再整形されたデータパケットの部分を、それらが様々な共通ワイヤから受信されたときに記憶し、次いでそれらをチャネル上にフォワーディングするために使用され得る。FIFOのこの機能は、蓄積転送(store-and-forward)機能と呼ばれることもある。
[0024]例示的な態様では、いわゆる「フレーミング信号」がトンネル中に含まれる。これらのフレーミング信号は、共通ワイヤ上で送信されるデータパケットに関係する制御情報を含む。フレーミング信号は、データパケットの開始/停止フィールド(または「ワード」)、トンネルの共通ワイヤがデータパケットのワードを現在送信しているのか、アイドルである(たとえば、待機サイクル中である)のか、またはそれらが無効であるのか、待機サイクルと等価のものであるのか、ワードがヘッダであるかどうかなど、データパケットに関係する情報を含み得る。共通ワイヤ上のフレーミング信号は、例示的な態様ではデータパケットの形状を具備する。フレーミング信号は、共通ワイヤ上で搬送されるデータパケットを扱うためのmux、ならびにdemuxによって使用される。競合解決、優先度割当てなどの態様は、これらのフレーミング信号に基づき得る。いくつかの態様では、優先度割当ては、フレーミング信号がデータパケットの形状に加えて優先度情報をも与える場合のみ、フレーミング信号に基づき得る。
[0025]より詳細には、トンネル上で送信されているデータパケットは、ワードごとにまたはパケットごとにアービトレーションされ得る。ワードごとにアービトレーションされるデータパケットは、様々な共通ワイヤにわたって自由に分解され得るデータパケットを指す。ワードごとにアービトレーションされるデータパケットは、パフォーマンスクリティカルでなく、それらの送信は、たとえば、より優先度の高いデータパケットに進路を譲るために、任意のワード境界において中断され得る。一方、パケットごとにアービトレーションされるデータパケットは、これらのデータパケットが、より優先度が高く、トンネルにわたって無中断で送信される必要があることを意味する。一方、アービタが高優先度データパケットを中断すべき場合、対応するFIFOは、中断によりデータパケット中に挿入された、挿入された待機サイクルを除去するために、蓄積転送しなければならないことになる。したがって、中断は、データパケットをダウンストリームにフォワーディングすることにおいてレイテンシペナルティを誘起する。したがって、アービタがそのような高優先度データパケットを中断することを防ぐことが望ましい。
[0026]これらの高優先度データパケットを扱うために、いくつかの態様では「従事中(engaged)」パケットの概念が利用され得、ここで、「従事中」パケットは、中断され得ないデータパケットの高優先度ステータスを指す。従事中パケットは、再整形され得るが、無中断様式で送信されなければならない。従事中パケットは、データパケットのビットが受信されるとすぐに、それらを対応するダウンストリームチャネルにフォワーディングすることを開始するように、対応するダウンストリームFIFOに通知する、フレーミング信号を伴い得る。パケットアービトレーションされるチャネルの例示的な態様では、データパケットは、データパケットのヘッドの送信が開始するとすぐに、従事中であると指定されることになる。
[0027]例示的な態様では、トンネルが、このデータパケットの高優先度送信に適応することができることを保証するために、一度に単一の従事中パケットのみを有することが望ましい。複数の従事中パケットがある場合、複数の高優先度の間のアービトレーションは困難であろう。したがって、従事中パケットを搬送するチャネルのための宛先FIFOが満杯でないか、あるいはそのチャネルのための従事中パケットがトンネルに入る前にトンネル中にバブルまたは待機サイクルがある限り、単一の従事中パケットが、トンネルにわたって無中断で送信され得ると仮定される。この挙動は、1つのチャネルのFIFOが満杯になったとき、他のチャネルが損なわれないことを保証する。
[0028]図1を参照すると、ネットワークオンチップまたはNoC100が示されている。NoC100は、アップストリームmux102とダウンストリームdemux108とを含む。アップストリーム側のチャネルA、B、およびCは、A_u、B_u、およびC_uとして指定され、チャネルは、ダウンストリーム側でA_d、B_d、およびC_dとして指定される。mux102とdemux108との間に実装されるトンネル105は、データ信号104とフレーミング信号106とを含む共通信号に基づいて動作する。データ信号104は、トンネル105中で搬送されているデータパケットのデータのビットを表し、フレーミング信号106は、データ信号104上で送信されるデータに関係する情報を含む。これらの共通信号は、トンネル105が、共通ワイヤの同じセット上で2つまたはそれ以上のフォーマットのデータパケットを搬送または送信することを可能にする。言い換えれば、任意のフォーマットのデータパケットは、これらの共通信号に関して表され、したがって、トンネル105は、どんなパケットフォーマットの特定の必要にも適合するように変更される必要がない。
[0029]チャネルアービタ126は、チャネルA_u、B_u、およびC_uによって供給されるデータパケット間でアービトレーションし得る。demux108は、トンネル105から受信されたデータを記憶し、それらを対応するチャネルA_d、B_d、およびC_d上にフォワーディングするためのFIFO120A、120B、および120Cを含み得る。
[0030]概して、トンネル105上でクロックサイクルごとに1つのワードが送信され得る。mux102は、チャネルA_u、B_u、およびC_uからの受信されたデータパケットを1つまたは複数のフラグメントに分解し、ここにおいて、各フラグメントは、1つまたは複数のワードを備え得る。demux108は、FIFO120A、120B、および120Cを利用することによって、様々なチャネルからのデータ信号104上で受信されたワードをそれらのそれぞれのデータパケットにアセンブルし得る。データパケットは、異なるフォーマットおよび優先度のものであり得るので、フレーミング信号106が、データ信号104を介した様々なフォーマットおよび優先度のデータパケットの送信のために使用され得る。
[0031]フレーミング信号106は、データ信号104上で送信されるデータパケットに関係するいくつかの制御信号を含み得る。たとえば、mux102からdemux108に送信され得るフレーミング信号116は、有効信号110、テール信号112(および/またはヘッド信号(図示せず))、チャネル信号114、および進行(go)信号118を含み得る。これらの信号の組合せは、データ信号104上で送信されるデータパケットに関係する情報を伝達するために使用され得る異なる意味を有し得る。フレーミング信号116は、demux108からmux102に送信され得る、逆方向におけるフロー制御(FC)信号116をも含み得る。次に、これらの信号およびそれらの組合せについて、さらに詳細に説明する。
[0032]FC信号116から開始すると、この信号は、demux108によって設定され得、demux108がデータ信号104上のデータを受信することが可能である、または受信する準備が完了しているかどうかを示し得る。1つのチャネルのみが存在した場合、単純な「準備完了」信号は、十分であり得るが、本明細書で説明するような複数のチャネルに関係する図示された態様の場合、FC信号116は、チャネルごとのフロー制御信号を表す。より詳細には、FC信号116は、そのチャネル上のトラフィックのフローを制御するために、チャネルごとに少なくとも1つの信号を含む。フロー制御は、特に、チャネルが、パイプラインステージおよび/またはクロックドメインクロッシング(clock domain crossing)を含む場合、チャネルごとに2つ以上の信号を有することがある。そのような場合、フレーミング信号106は、両方の方向における各チャネルについてのフロー制御のために「クレジット(credit)」またはクレジットベースのシステムを実装する、2つまたはそれ以上のフロー制御信号またはマルチビットフロー制御信号を含むことができる。たとえば、チャネルアービタ126は、特定のチャネルのために利用可能なクレジットに基づいて、データパケットをチャネルに送り得、フロー制御は、チャネルごとにクレジットに基づき得る。
[0033]チャネルごとの単一のフロー制御信号の例に関して、FIFO120A〜C中に残された記憶スペースの量に応じて、FC信号116は、それぞれチャネルA、B、およびCに対応するコンポーネント信号(たとえば、116A、116B、116C、図示せず)を有し得、ここで、これらのコンポーネント信号は、チャネルごとにアサートまたはアサート解除され得る。demux108が、特定のチャネルのためのデータを受信するかまたは受け付けることができないかまたはできなくなった場合、そのチャネルに対応するFC信号116はアサート解除され、これは、残りのフレーミング信号をオーバーライドすることになる。言い換えれば、特定のチャネルのためのFC信号116がアサートされない場合、そのチャネル上のデータワードまたはデータパケットのデータ送信は、mux102からdemux108に送信されない。
[0034]次に、有効信号110は、データ信号104上の信号が有効なワードを表すかどうかを示し得る。たとえば、場合によっては、対応するデータパケットを受信するチャネルが、いくつか1つのクロックサイクル中に送るべきデータを有しない場合、そのクロックサイクル中に、アイドルまたは待機サイクルがワードのストリーム中に挿入され得る。そのような場合、有効信号110は、有効なワードが送信されていないことを示すためにアサート解除され得る。残りのフレーミング信号は、有効信号110がアサートされる場合のみ有意味であり得る。
[0035](有効信号110がアサートされるときの)テール信号112は、現在送信されているワードがそれの対応するデータパケットの終端であるかどうかを示し得る。同様に、現在送信されているワードがそれの対応するデータパケットの始端であるかどうかを示すために、「ヘッド」信号が使用され得る。図示されたテール信号が使用されるのかヘッド信号が使用されるのかは、それらが同じ情報を伝達するために使用され得るので、データパケット内のコンテキストに依存し得る。したがって、テール信号112は、場合によっては、テール信号またはヘッド信号を含むように広く解釈され得る。
[0036](有効信号110がアサートされるときの)チャネル信号114は、特定のワードまたはデータパケットが関連付けられたチャネルを示す。テール信号112と組み合わせて、チャネル信号114は、データパケットがmux102によって整形された様式に基づいて、データパケットの最後のワードが特定のチャネル上にあるかどうかを伝達し得る。
[0037]前に説明したように、「進行」信号は、高優先度または従事中パケット送信のために使用され得る。図示のように、(有効信号110がアサートされるときの)進行信号118は、データビットまたはワードが、それらが受信されるとすぐに、対応するダウンストリームチャネルA_d、B_d、またはC_dにフォワーディングされる必要があり得ることをdemux108に示し得る。
[0038]さらに、誤り制御コーディング(ECC)ビットなど、誤り検査またはパリティ信号も、データパケット中の誤りを検出/訂正するために、フレーミング信号として追加され得る。ECCビットは、ワードごとに送信され得る。
[0039]mux102によって送信されている様々なデータパケット間に競合がある場合、チャネルアービタ126は、これらの競合を解決するように構成され得る。説明したように、様々なタイプのデータパケットが、優先度またはサービス品質(QoS)レベルに応じて、異なる方法で扱われ得る。パケットアービトレーションされたまたは従事中パケットのために、チャネルアービタ126は、データパケットがdemux102において受信されるとき、ワードのフォワーディングを示すために、進行信号118を設定し得る。特定のチャネル上の従事中パケットに関連するワードの転送は、たとえば、demux108中のそのチャネルのためのFIFOが満杯であり、これにより、そのチャネルのための対応するFC信号116がアサート解除され得る場合、または従事中パケットがトンネルに入る前に従事中パケット中にバブルが存在する場合のみ、中断され得る。バブルは、バブル中に有効なワードが送信されないことを示すので、バブルは、代替ワードまたはデータパケットの送信のために利用され得る。たとえば、ワードアービトレーションされたデータパケットのワードが、従事中の第1のデータパケットがトンネルに入るより前に、従事中の第1のデータパケット中の既存したバブル中に送信され得る。
[0040]送信のために利用可能な、ワードアービトレーションされたデータパケットに関連付けられたデータパケットがない場合、第2のパケットアービトレーションされたデータパケットが、送信のために利用可能な場合、従事中の第1のデータパケットのバブル中にワードを送信するために選択され得る。いくつかのプロトコルオプションが、そのような状況では適用可能であり得る。たとえば、いくつかの態様では、この第2のデータパケットは、最初は「従事」しない(すなわち、この第2のデータパケットは、依然として、「従事中」の第1のデータパケットよりも低い優先度をもつままである)。したがって、第2のデータパケットが、ダウンストリームに発行され得、無中断である必要があることをdemux108中の対応するFIFOに通知するために、進行信号118は、第2のデータパケットに関してアサートされない。この態様では、仮定は、従事中の第1のデータパケットが停止させられ、バブルを導入する条件が一時的であり得る、というものであり得る。したがって、仮定は、従事中の第1のデータパケットが、送信を再開し、データ信号104中のトンネルのすべての利用可能な帯域幅を潜在的に消費するということを与える。この態様が適用可能であり得る例示的な状況は、従事中の第1のデータパケット中に存在する、単一のバブルまたは空の送信スロットを伴い得る。したがって、この例では、従事中の第1のデータパケットがトンネル105を介した送信を終了するとすぐに、第2のデータパケットは、「従事中」ステータスを獲得する。したがって、アービタ126は、この段階で、現在従事中の第2のデータパケットに関係するであろう次のワードを発行するときにdemux108にシグナリングするために、進行信号118をアサートし得る。
[0041]しかしながら、代替シナリオでは、従事中の第1のデータパケットを停止させる条件が持続するかまたはそれ自体を繰り返す場合、第2のデータパケットのいくつかのワードが、従事中の第1のデータパケットのバブルによって生成される送信スロットを介して送信され得る。このシナリオでは、停止させられた従事中の第1のデータパケットが送信を終了する前に、第2のデータパケットを「従事中」ステータスに昇格させることが望ましいことがある。
[0042]次に、停止させられた従事中の第1のデータパケットの送信の完了より前に、第2のデータパケットを従事中ステータスに昇格させるための1つまたは複数のプロトコルオプションについて説明する。1つのオプションでは、第2のデータパケットを従事中ステータスに昇格させるという決定は、従事中の第1のデータパケットが停止させられた期間中に(すなわち、バブル中に)第2のデータパケットによって送信されたワードの数に基づき得る。第2のデータパケットのすでに送信されたワードのこの数が、従事中の第1のデータパケットが停止する前に、従事中の第1のデータパケットによって送信されたワードの数よりも高くなる場合、第2のデータパケットは、従事中ステータスに昇格させられ得る。いくつかの随意の態様では、第2のデータパケットが従事中ステータスに昇格させられる場合、第1のデータパケットは、それの従事中ステータスから降格させられ得る。チャネルアービタ126は、第2のデータパケットが従事中であり、したがって、従事中の第2のデータパケットが、次いで、送信のための最高優先度、または従事中の第1のデータパケットが与えられたのと少なくとも同程度の高優先度が与えられることをdemux108に通知するために、進行信号118をアサートし得る。
[0043]別のプロトコルオプションは、第2のデータパケットの送信されたワードの数があらかじめ定義されたしきい値を超える(すなわち、この場合、第2のデータパケットの送信されたワードのあらかじめ定義された数が、第1のデータパケットの送信されたワードの数とのどんな比較にも基づかない)場合に、第2のデータパケットを従事中ステータスに昇格させることに関係する。このしきい値は、たとえば、demux108中のFIFOの深度またはエントリの数に基づくかまたはそれに等しくあり得る。これは、FIFOが満杯である場合、demux108は、デッドロックを回避するために、それのワードがFIFOを占有している現在のデータパケット(たとえば、停止させられた従事中の第1のデータパケット)のヘッドを送信し始めなければならないことを意味する。したがって、demux108は、第2のデータパケットのさらなる送信中にバブルを挿入することを回避するために、現在のデータパケットができるだけ早く送信されることを保証する必要がある。この場合について、FIFOが最大データパケットサイズよりも大きい場合、単一のデータパケットのみが常に従事中であることが諒解されよう。一方、FIFOが最大データパケットサイズよりも小さい場合、2つまたはそれ以上のデータパケットが従事中になることができる。しかしながら、FIFOサイズが平均データパケット長よりも大きい場合、2つまたはそれ以上のデータパケットが従事中ステータスを獲得することは、非常にまれな事象である可能性がある。したがって、いくつかの態様では、2つまたはそれ以上のデータパケットが同時に従事中ステータスを獲得することの可能性を最小限に抑えるために、バッファのサイズまたはFIFOのサイズが平均データパケット長に基づいて設計され得る。
[0044]実施形態は、本明細書で開示するプロセス、機能および/またはアルゴリズムを実行するための様々な方法を含むことが諒解されよう。たとえば、図2に示されているように、実施形態は、ネットワークオンチップ(たとえば、NoC100)を動作させる方法(200)を含むことができ、本方法は、ブロック202において、第1の方向においてデータパケットを搬送するように1つまたは複数のチャネル(たとえば、A、B、C)を構成することと、第1の方向が、アップストリーム端とダウンストリーム端とを備える、ブロック206において、トンネル(たとえば、トンネル105)上で、アップストリーム端におけるアップストリーム要素から、ダウンストリーム端におけるダウンストリーム要素にデータパケットを送信することと、ここにおいて、トンネルが、すべてのチャネルに共通の共通ワイヤ(たとえば、データ信号104とフレーミング信号106と)を備え、トンネルが、共通信号に基づいて共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成された、を備える。点線で示されているように、方法はまた、ブロック204において、チャネル(たとえば、A_u、B_u、C_u)のアップストリーム端からアップストリーム要素(たとえば、mux102)においてデータパケットを受信するステップと、ブロック208において、トンネルからダウンストリーム要素(たとえば、demux108)においてデータを受信するステップと、ブロック210において、チャネル(たとえば、A_d、B_d、C_d)のダウンストリーム端にデータを送信するステップとをさらに含むことができる。
[0045]情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを、当業者は諒解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
[0046]さらに、本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明する機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
[0047]本明細書で開示する実施形態に関して説明した方法、シーケンスおよび/またはアルゴリズムは、ハードウェアで直接実装されるか、プロセッサによって実行されるソフトウェアモジュールで実装されるか、またはそれらの2つの組合せで実装され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。
[0048]したがって、本発明の一実施形態は、ネットワークオンチップトポロジー内のトンネリングのための方法を実施するコンピュータ可読媒体を含むことができる。したがって、本発明は、図示の例に限定されず、本明細書で説明した機能を実施するための任意の手段が本発明の実施形態に含まれる。
[0049]上記の開示は本発明の例示的な実施形態を示しているが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が行われ得ることに留意されたい。本明細書で説明した本発明の実施形態による方法クレームの機能、ステップおよび/またはアクションは、特定の順序で実施されなくてもよい。さらに、本発明の要素は、単数形で説明または請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
[0049]上記の開示は本発明の例示的な実施形態を示しているが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が行われ得ることに留意されたい。本明細書で説明した本発明の実施形態による方法クレームの機能、ステップおよび/またはアクションは、特定の順序で実施されなくてもよい。さらに、本発明の要素は、単数形で説明または請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
第1の方向においてデータパケットを搬送するように構成された1つまたは複数のチャネルと、前記第1の方向が、アップストリーム端とダウンストリーム端とを備える、
前記アップストリーム端におけるアップストリーム要素と前記ダウンストリーム端におけるダウンストリーム要素との間に構成されたトンネルと
を備え、
ここにおいて、前記トンネルが、前記1つまたは複数のチャネルによって共有される共通ワイヤを備え、前記トンネルが、共通信号を使用して前記共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成された、
ネットワークオンチップ(NoC)。
[C2]
前記アップストリーム要素が、前記チャネルの前記アップストリーム端からデータパケットを受信することと、前記トンネルに前記データパケットを送信することとを行うように構成され、前記ダウンストリーム要素が、前記トンネルから前記データパケットを受信することと、前記チャネルの前記ダウンストリーム端に前記データパケットを送信することとを行うように構成された、C1に記載のNoC。
[C3]
前記アップストリーム要素が、2つまたはそれ以上のチャネルの前記アップストリーム端からデータパケットを受信することと、前記データパケットを再整形することと、前記トンネル上に前記再整形されたデータパケットを送信することとを行うように構成されたトンネリングマルチプレクサを備える、C2に記載のNoC。
[C4]
再整形されたデータパケットは、前記データパケットが送信される前記共通ワイヤの数、送信のクロックレート、または前記送信によって消費されるクロックサイクルの数のうちの1つまたは複数に関する変更を備える、C3に記載のNoC。
[C5]
前記アップストリーム要素が、前記チャネルのうちの2つまたはそれ以上の前記アップストリーム端からの2つまたはそれ以上のデータパケット間の競合を解決するように構成されたチャネルアービタをさらに備える、C3に記載のNoC。
[C6]
前記チャネルアービタが、ワードごとにまたはパケットごとに、前記2つまたはそれ以上のデータパケット間の競合を解決するように構成された、C5に記載のNoC。
[C7]
パケットごとにアービトレーションされるデータパケットが、ワードごとにアービトレーションされるデータパケットよりも高い優先度を有する、C6に記載のNoC。
[C8]
前記ダウンストリーム要素が、前記1つまたは複数のチャネルに対応する1つまたは複数のバッファを備えるトンネリングデマルチプレクサを備え、前記バッファが、前記トンネルから受信された前記データパケットに関係するデータを記憶することと、前記データパケットを前記チャネルの前記ダウンストリーム端にフォワーディングすることとを行うように構成された、C2に記載のNoC。
[C9]
前記バッファが、先入れ先出し(FIFO)要素として構成された、C8に記載のNoC。
[C10]
FIFOの深度が、前記対応するチャネル上のデータパケットの平均データパケット長に基づく、C9に記載のNoC。
[C11]
前記共通信号が、前記共通ワイヤ上で前記データパケットに属するデータ、制御、またはデバッグ情報のうちの1つまたは複数を送信するためのデータ信号と、前記共通ワイヤ上での前記データ信号の送信を制御するためのフレーミング信号とを備える、C1に記載のNoC。
[C12]
前記第1の方向において送信される前記フレーミング信号が、前記トンネル上で送信された1つまたは複数のワードを備えるデータパケットが有効であるかどうかを示すための有効信号、前記データパケットの最後のワードを示すためのテール信号、前記データパケットの第1のワードを示すためのヘッド信号、前記データパケットに対応する前記チャネルを示すためのチャネル信号、および前記データパケットの従事中ステータスを示すための進行信号のうちの1つまたは複数を備え、ここにおいて、前記従事中ステータスが、前記トンネル上の前記データパケット送信が中断されるべきでないことを示すための高優先度ステータスを表す、C11に記載のNoC。
[C13]
従事中の第1のデータパケットの前記送信は、前記ダウンストリーム要素が、前記従事中の第1のデータパケットのワードを受信することおよび対応するチャネルの前記ダウンストリーム端にフォワーディングすることが不可能にならない限り、または前記従事中の第1のデータパケットが、前記アップストリーム要素に入る前に既存のバブルを有する場合、中断されない、C12に記載のNoC。
[C14]
前記アップストリーム要素は、前記従事中の第1のデータパケットの前記送信が中断されるとき、第2のデータパケットのワードを送信するように構成された、C13に記載のNoC。
[C15]
前記アップストリーム要素は、前記第2のデータパケットの送信されたワードの数が、あらかじめ定義されたしきい値、または前記従事中の第1のデータパケットの送信の中断より前の前記従事中の第1のデータパケットの送信されたワードの数を超える場合、前記第2のデータパケットを従事中ステータスに昇格させるように構成された、C14に記載のNoC。
[C16]
前記あらかじめ定義されたしきい値が、前記ダウンストリーム要素において実装されるバッファのサイズに基づき、前記バッファが、前記トンネルから受信されたデータを記憶することと、前記受信されたデータを前記チャネルの前記ダウンストリーム端にフォワーディングすることとを行うように構成された、C15に記載のNoC。
[C17]
前記フレーミング信号が、前記1つまたは複数のチャネルの各々のための少なくとも1つのフロー制御信号を備え、特定のチャネルのための前記フロー制御信号は、前記ダウンストリーム要素が前記特定のチャネル上のデータを受信する準備が完了しているかどうかを示すために、前記ダウンストリーム要素から前記アップストリーム要素に第2の方向において送信される、C11に記載のNoC。
[C18]
前記フレーミング信号が、前記1つまたは複数のチャネルのうちの少なくとも1つのための2つまたはそれ以上のフロー制御信号を備え、ここにおいて、前記2つまたはそれ以上のフロー制御信号が、前記第1の方向または前記第2の方向のうちの少なくとも1つに関連するデータ送信のためのクレジットを備える、C17に記載のNoC。
[C19]
ネットワークオンチップ(NoC)を動作させる方法であって、前記方法は、
第1の方向においてデータパケットを搬送するように1つまたは複数のチャネルを構成することと、前記第1の方向が、アップストリーム端とダウンストリーム端とを備える、 前記1つまたは複数のチャネルによって共有される共通ワイヤを備えるトンネル上で、前記アップストリーム端上のアップストリーム要素から、前記ダウンストリーム要素上のダウンストリーム要素に前記データパケットを送信することと
を備え、
ここにおいて、前記データパケットを送信することが、共通信号を使用して前記トンネルの前記共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信することを備える、
方法。
[C20]
前記アップストリーム要素において、2つまたはそれ以上のチャネルの前記アップストリーム端からデータパケットを受信することと、前記データパケットを再整形することと、前記トンネル上に前記再整形されたデータパケットを送信することとを備える、C19に記載の方法。
[C21]
データパケットを再整形することが、前記データパケットが送信される前記共通ワイヤの数、送信のクロックレート、または前記送信によって消費されるクロックサイクルの数のうちの1つまたは複数を変更することを備える、C20に記載の方法。
[C22]
前記アップストリーム要素中でワードごとにまたはパケットごとに、2つまたはそれ以上のデータパケット間の競合を解決することを備える、C19に記載の方法。
[C23]
パケットごとにアービトレーションされるデータパケットが、ワードごとにアービトレーションされるデータパケットよりも高い優先度を有する、C22に記載の方法。
[C24]
前記ダウンストリーム要素において、前記トンネルから受信された前記データパケットに関係するデータを記憶することと、前記データパケットを前記チャネルの前記ダウンストリーム端にフォワーディングすることとを備える、C19に記載の方法。
[C25]
前記共通信号が、前記共通ワイヤ上で前記データパケットに属するデータ、制御、またはデバッグ情報のうちの1つまたは複数を送信するためのデータ信号と、前記共通ワイヤ上での前記データ信号の送信を制御するためのフレーミング信号とを備える、C19に記載の方法。
[C26]
前記フレーミング信号が、前記トンネル上で送信された1つまたは複数のワードを備えるデータパケットが有効であるかどうかを示すための有効信号、前記データパケットの最後のワードを示すためのテール信号、前記データパケットの第1のワードを示すためのヘッド信号、前記データパケットに対応する前記チャネルを示すためのチャネル信号、前記データパケットの従事中ステータスを示すための進行信号のうちの1つまたは複数を備え、ここにおいて、前記従事中ステータスが、前記トンネル上の前記データパケット送信が中断されるべきでないことを示すための高優先度ステータスを表す、C25に記載の方法。
[C27]
前記ダウンストリーム要素が、従事中の第1のデータパケットのワードを受信することおよび対応するチャネルの前記ダウンストリーム端にフォワーディングすることが不可能にならない限り、または前記従事中の第1のデータパケットが、前記アップストリーム要素に入る前に既存のバブルを有する場合、前記従事中の第1のデータパケットの前記送信を中断しないことを備える、C26に記載の方法。
[C28]
前記フレーミング信号が、前記1つまたは複数のチャネルの各々のための少なくとも1つのフロー制御信号を備え、特定のチャネルのための前記フロー制御信号は、前記ダウンストリーム要素が前記特定のチャネル上のデータを受信する準備が完了しているかどうかを示すために、前記ダウンストリーム要素から前記アップストリーム要素に第2の方向において送信される、C25に記載の方法。
[C29]
第1の方向においてデータパケットを搬送するための1つまたは複数のチャネルと、前記第1の方向が、アップストリーム端とダウンストリーム端とを備える、
前記アップストリーム端上のアップストリーム要素から前記ダウンストリーム要素上のダウンストリーム要素に前記データパケットを送信するための手段と
を備え、
ここにおいて、送信するための前記手段が、前記1つまたは複数のチャネルによって共有される共通ワイヤを備え、送信するための前記手段が、共通信号を使用して前記共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成された、
システム。
[C30]
前記アップストリーム要素が、2つまたはそれ以上のチャネルの前記アップストリーム端からデータパケットを受信するための手段と、前記データパケットを再整形するための手段と、前記トンネル上に前記再整形されたデータパケットを送信するための手段とを備える、C29に記載のシステム。

Claims (30)

  1. 第1の方向においてデータパケットを搬送するように構成された1つまたは複数のチャネルと、前記第1の方向が、アップストリーム端とダウンストリーム端とを備える、
    前記アップストリーム端におけるアップストリーム要素と前記ダウンストリーム端におけるダウンストリーム要素との間に構成されたトンネルと
    を備え、
    ここにおいて、前記トンネルが、前記1つまたは複数のチャネルによって共有される共通ワイヤを備え、前記トンネルが、共通信号を使用して前記共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成された、
    ネットワークオンチップ(NoC)。
  2. 前記アップストリーム要素が、前記チャネルの前記アップストリーム端からデータパケットを受信することと、前記トンネルに前記データパケットを送信することとを行うように構成され、前記ダウンストリーム要素が、前記トンネルから前記データパケットを受信することと、前記チャネルの前記ダウンストリーム端に前記データパケットを送信することとを行うように構成された、請求項1に記載のNoC。
  3. 前記アップストリーム要素が、2つまたはそれ以上のチャネルの前記アップストリーム端からデータパケットを受信することと、前記データパケットを再整形することと、前記トンネル上に前記再整形されたデータパケットを送信することとを行うように構成されたトンネリングマルチプレクサを備える、請求項2に記載のNoC。
  4. 再整形されたデータパケットは、前記データパケットが送信される前記共通ワイヤの数、送信のクロックレート、または前記送信によって消費されるクロックサイクルの数のうちの1つまたは複数に関する変更を備える、請求項3に記載のNoC。
  5. 前記アップストリーム要素が、前記チャネルのうちの2つまたはそれ以上の前記アップストリーム端からの2つまたはそれ以上のデータパケット間の競合を解決するように構成されたチャネルアービタをさらに備える、請求項3に記載のNoC。
  6. 前記チャネルアービタが、ワードごとにまたはパケットごとに、前記2つまたはそれ以上のデータパケット間の競合を解決するように構成された、請求項5に記載のNoC。
  7. パケットごとにアービトレーションされるデータパケットが、ワードごとにアービトレーションされるデータパケットよりも高い優先度を有する、請求項6に記載のNoC。
  8. 前記ダウンストリーム要素が、前記1つまたは複数のチャネルに対応する1つまたは複数のバッファを備えるトンネリングデマルチプレクサを備え、前記バッファが、前記トンネルから受信された前記データパケットに関係するデータを記憶することと、前記データパケットを前記チャネルの前記ダウンストリーム端にフォワーディングすることとを行うように構成された、請求項2に記載のNoC。
  9. 前記バッファが、先入れ先出し(FIFO)要素として構成された、請求項8に記載のNoC。
  10. FIFOの深度が、前記対応するチャネル上のデータパケットの平均データパケット長に基づく、請求項9に記載のNoC。
  11. 前記共通信号が、前記共通ワイヤ上で前記データパケットに属するデータ、制御、またはデバッグ情報のうちの1つまたは複数を送信するためのデータ信号と、前記共通ワイヤ上での前記データ信号の送信を制御するためのフレーミング信号とを備える、請求項1に記載のNoC。
  12. 前記第1の方向において送信される前記フレーミング信号が、前記トンネル上で送信された1つまたは複数のワードを備えるデータパケットが有効であるかどうかを示すための有効信号、前記データパケットの最後のワードを示すためのテール信号、前記データパケットの第1のワードを示すためのヘッド信号、前記データパケットに対応する前記チャネルを示すためのチャネル信号、および前記データパケットの従事中ステータスを示すための進行信号のうちの1つまたは複数を備え、ここにおいて、前記従事中ステータスが、前記トンネル上の前記データパケット送信が中断されるべきでないことを示すための高優先度ステータスを表す、請求項11に記載のNoC。
  13. 従事中の第1のデータパケットの前記送信は、前記ダウンストリーム要素が、前記従事中の第1のデータパケットのワードを受信することおよび対応するチャネルの前記ダウンストリーム端にフォワーディングすることが不可能にならない限り、または前記従事中の第1のデータパケットが、前記アップストリーム要素に入る前に既存のバブルを有する場合、中断されない、請求項12に記載のNoC。
  14. 前記アップストリーム要素は、前記従事中の第1のデータパケットの前記送信が中断されるとき、第2のデータパケットのワードを送信するように構成された、請求項13に記載のNoC。
  15. 前記アップストリーム要素は、前記第2のデータパケットの送信されたワードの数が、あらかじめ定義されたしきい値、または前記従事中の第1のデータパケットの送信の中断より前の前記従事中の第1のデータパケットの送信されたワードの数を超える場合、前記第2のデータパケットを従事中ステータスに昇格させるように構成された、請求項14に記載のNoC。
  16. 前記あらかじめ定義されたしきい値が、前記ダウンストリーム要素において実装されるバッファのサイズに基づき、前記バッファが、前記トンネルから受信されたデータを記憶することと、前記受信されたデータを前記チャネルの前記ダウンストリーム端にフォワーディングすることとを行うように構成された、請求項15に記載のNoC。
  17. 前記フレーミング信号が、前記1つまたは複数のチャネルの各々のための少なくとも1つのフロー制御信号を備え、特定のチャネルのための前記フロー制御信号は、前記ダウンストリーム要素が前記特定のチャネル上のデータを受信する準備が完了しているかどうかを示すために、前記ダウンストリーム要素から前記アップストリーム要素に第2の方向において送信される、請求項11に記載のNoC。
  18. 前記フレーミング信号が、前記1つまたは複数のチャネルのうちの少なくとも1つのための2つまたはそれ以上のフロー制御信号を備え、ここにおいて、前記2つまたはそれ以上のフロー制御信号が、前記第1の方向または前記第2の方向のうちの少なくとも1つに関連するデータ送信のためのクレジットを備える、請求項17に記載のNoC。
  19. ネットワークオンチップ(NoC)を動作させる方法であって、前記方法は、
    第1の方向においてデータパケットを搬送するように1つまたは複数のチャネルを構成することと、前記第1の方向が、アップストリーム端とダウンストリーム端とを備える、
    前記1つまたは複数のチャネルによって共有される共通ワイヤを備えるトンネル上で、前記アップストリーム端上のアップストリーム要素から、前記ダウンストリーム要素上のダウンストリーム要素に前記データパケットを送信することと
    を備え、
    ここにおいて、前記データパケットを送信することが、共通信号を使用して前記トンネルの前記共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信することを備える、
    方法。
  20. 前記アップストリーム要素において、2つまたはそれ以上のチャネルの前記アップストリーム端からデータパケットを受信することと、前記データパケットを再整形することと、前記トンネル上に前記再整形されたデータパケットを送信することとを備える、請求項19に記載の方法。
  21. データパケットを再整形することが、前記データパケットが送信される前記共通ワイヤの数、送信のクロックレート、または前記送信によって消費されるクロックサイクルの数のうちの1つまたは複数を変更することを備える、請求項20に記載の方法。
  22. 前記アップストリーム要素中でワードごとにまたはパケットごとに、2つまたはそれ以上のデータパケット間の競合を解決することを備える、請求項19に記載の方法。
  23. パケットごとにアービトレーションされるデータパケットが、ワードごとにアービトレーションされるデータパケットよりも高い優先度を有する、請求項22に記載の方法。
  24. 前記ダウンストリーム要素において、前記トンネルから受信された前記データパケットに関係するデータを記憶することと、前記データパケットを前記チャネルの前記ダウンストリーム端にフォワーディングすることとを備える、請求項19に記載の方法。
  25. 前記共通信号が、前記共通ワイヤ上で前記データパケットに属するデータ、制御、またはデバッグ情報のうちの1つまたは複数を送信するためのデータ信号と、前記共通ワイヤ上での前記データ信号の送信を制御するためのフレーミング信号とを備える、請求項19に記載の方法。
  26. 前記フレーミング信号が、前記トンネル上で送信された1つまたは複数のワードを備えるデータパケットが有効であるかどうかを示すための有効信号、前記データパケットの最後のワードを示すためのテール信号、前記データパケットの第1のワードを示すためのヘッド信号、前記データパケットに対応する前記チャネルを示すためのチャネル信号、前記データパケットの従事中ステータスを示すための進行信号のうちの1つまたは複数を備え、ここにおいて、前記従事中ステータスが、前記トンネル上の前記データパケット送信が中断されるべきでないことを示すための高優先度ステータスを表す、請求項25に記載の方法。
  27. 前記ダウンストリーム要素が、従事中の第1のデータパケットのワードを受信することおよび対応するチャネルの前記ダウンストリーム端にフォワーディングすることが不可能にならない限り、または前記従事中の第1のデータパケットが、前記アップストリーム要素に入る前に既存のバブルを有する場合、前記従事中の第1のデータパケットの前記送信を中断しないことを備える、請求項26に記載の方法。
  28. 前記フレーミング信号が、前記1つまたは複数のチャネルの各々のための少なくとも1つのフロー制御信号を備え、特定のチャネルのための前記フロー制御信号は、前記ダウンストリーム要素が前記特定のチャネル上のデータを受信する準備が完了しているかどうかを示すために、前記ダウンストリーム要素から前記アップストリーム要素に第2の方向において送信される、請求項25に記載の方法。
  29. 第1の方向においてデータパケットを搬送するための1つまたは複数のチャネルと、前記第1の方向が、アップストリーム端とダウンストリーム端とを備える、
    前記アップストリーム端上のアップストリーム要素から前記ダウンストリーム要素上のダウンストリーム要素に前記データパケットを送信するための手段と
    を備え、
    ここにおいて、送信するための前記手段が、前記1つまたは複数のチャネルによって共有される共通ワイヤを備え、送信するための前記手段が、共通信号を使用して前記共通ワイヤ上で2つまたはそれ以上のフォーマットのデータパケットを送信するように構成された、
    システム。
  30. 前記アップストリーム要素が、2つまたはそれ以上のチャネルの前記アップストリーム端からデータパケットを受信するための手段と、前記データパケットを再整形するための手段と、前記トンネル上に前記再整形されたデータパケットを送信するための手段とを備える、請求項29に記載のシステム。
JP2017512935A 2014-09-08 2015-08-24 ネットワークオンチップトポロジー内のトンネリング Active JP6254331B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/479,728 US9608935B2 (en) 2014-09-08 2014-09-08 Tunneling within a network-on-chip topology
US14/479,728 2014-09-08
PCT/US2015/046557 WO2016039972A2 (en) 2014-09-08 2015-08-24 Tunneling within a network-on-chip topology

Publications (2)

Publication Number Publication Date
JP2017527219A true JP2017527219A (ja) 2017-09-14
JP6254331B2 JP6254331B2 (ja) 2017-12-27

Family

ID=54035341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017512935A Active JP6254331B2 (ja) 2014-09-08 2015-08-24 ネットワークオンチップトポロジー内のトンネリング

Country Status (5)

Country Link
US (1) US9608935B2 (ja)
EP (1) EP3191974A2 (ja)
JP (1) JP6254331B2 (ja)
CN (1) CN106716394A (ja)
WO (1) WO2016039972A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075392B1 (en) 2017-03-02 2018-09-11 Micron Technology, Inc. Methods and apparatuses for processing multiple communications signals with a single integrated circuit chip
US11055657B2 (en) 2017-03-02 2021-07-06 Micron Technology, Inc. Methods and apparatuses for determining real-time location information of RFID devices
CN112491715B (zh) * 2020-11-30 2022-06-03 清华大学 路由装置及片上网络的路由设备
CN112437021B (zh) * 2020-11-30 2022-03-29 清华大学 路由控制方法、装置、路由设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012132264A (ja) * 2010-12-22 2012-07-12 Miraku Roofsystem Co Ltd 屋根パネル及び屋根パネルの連結構造
US20130179613A1 (en) * 2010-06-03 2013-07-11 Arteris S.A. Network on chip (noc) with qos features

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2883116B1 (fr) 2005-03-08 2007-04-13 Commissariat Energie Atomique Architecture de communication globalement asynchrone pour systeme sur puce.
CN100433718C (zh) * 2005-10-31 2008-11-12 华为技术有限公司 保障数据分组业务服务等级的方法及速率限制方法
CN101753388B (zh) * 2008-11-28 2011-08-31 中国科学院微电子研究所 适用于多核处理器片上和片间扩展的路由及接口装置
US8885657B2 (en) * 2009-11-06 2014-11-11 Brocade Communications Systems, Inc. Automatic switch port selection
US8711867B2 (en) 2011-08-26 2014-04-29 Sonics, Inc. Credit flow control scheme in a router with flexible link widths utilizing minimal storage
EP2592800A1 (en) 2011-11-09 2013-05-15 STMicroelectronics (Grenoble 2) SAS Networks on-chip router
US8824295B2 (en) 2011-12-30 2014-09-02 Qualcomm Technologies, Inc. Link between chips using virtual channels and credit based flow control
US9680740B2 (en) * 2013-11-08 2017-06-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Service multiplexing and demultiplexing using a single pseudowire service/label switched path label in a multiprotocol label switching network
US9699079B2 (en) * 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179613A1 (en) * 2010-06-03 2013-07-11 Arteris S.A. Network on chip (noc) with qos features
JP2012132264A (ja) * 2010-12-22 2012-07-12 Miraku Roofsystem Co Ltd 屋根パネル及び屋根パネルの連結構造

Also Published As

Publication number Publication date
WO2016039972A3 (en) 2016-08-11
CN106716394A (zh) 2017-05-24
US20160072731A1 (en) 2016-03-10
EP3191974A2 (en) 2017-07-19
JP6254331B2 (ja) 2017-12-27
US9608935B2 (en) 2017-03-28
WO2016039972A2 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
JP5335892B2 (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
US9444740B2 (en) Router, method for controlling router, and program
US8085801B2 (en) Resource arbitration
JP5895202B2 (ja) 中継器、中継器の制御方法、およびコンピュータプログラム
US8718065B2 (en) Transmission using multiple physical interface
US8316171B2 (en) Network on chip (NoC) with QoS features
US20160154756A1 (en) Unordered multi-path routing in a pcie express fabric environment
JP6254331B2 (ja) ネットワークオンチップトポロジー内のトンネリング
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
JP2005182818A (ja) オンチップバス
WO2013073172A1 (ja) 中継装置、中継装置の制御方法、およびコンピュータプログラム
US9436642B2 (en) Bus system for semiconductor circuit
US20180077649A1 (en) Communications fabric with split paths for control and data packets
JP2011128989A (ja) データ処理装置、データ処理方法、及びプログラム
WO2012149742A1 (zh) 信号保序方法和装置
JP2009194510A (ja) 優先調停システム及び優先調停方法
CN114679415A (zh) 一种满足AXI5-Lite协议标准的无阻塞banyan网络
US9621487B2 (en) Method and apparatus for protection switching based on memory control in packet transport system
US20150095523A1 (en) Information processing apparatus, data transfer apparatus, and data transfer method
US9356873B2 (en) Backbone channel management method and backbone channel management apparatus
Chen PCI express-based ethernet switch
JP5428937B2 (ja) 性能情報収集システム、及び、性能情報収集方法
JP2011199461A (ja) データ通信装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170510

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170511

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170822

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: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171129

R150 Certificate of patent or registration of utility model

Ref document number: 6254331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250