JP6247398B2 - オンチップネットワークにおける回線交換事前予約 - Google Patents

オンチップネットワークにおける回線交換事前予約 Download PDF

Info

Publication number
JP6247398B2
JP6247398B2 JP2016541943A JP2016541943A JP6247398B2 JP 6247398 B2 JP6247398 B2 JP 6247398B2 JP 2016541943 A JP2016541943 A JP 2016541943A JP 2016541943 A JP2016541943 A JP 2016541943A JP 6247398 B2 JP6247398 B2 JP 6247398B2
Authority
JP
Japan
Prior art keywords
noc
router
node
destination
setup message
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.)
Expired - Fee Related
Application number
JP2016541943A
Other languages
English (en)
Other versions
JP2016531529A (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.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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 Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of JP2016531529A publication Critical patent/JP2016531529A/ja
Application granted granted Critical
Publication of JP6247398B2 publication Critical patent/JP6247398B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

本明細書に特に指示がない限り、この項に記載される手法は、本出願の特許請求の範囲の先行技術ではなく、この項に含めることで先行技術と認めるものではない。
ムーアの法則に沿って、集積回路に実用的に組み込むことができるトランジスタの数は、およそ2年ごとに2倍になっている。この傾向は、半世紀以上続いており、少なくとも2015ないし2020年まで続くことが期待される。しかしながら、単純により多くのトランジスタをシングルスレッドのプロセッサに追加することでは、もはや大幅により高速のプロセッサは作成されない。代わりに、単一チップに複数のプロセッサコアを集積してチップマルチプロセッサを形成し、チップマルチプロセッサの複数のプロセッサコア間のプロセスを共有することによって、システム性能の増大を達成している。そのようなプロセッサは、複数の計算が互いに同時または並列に実行され得るアプリケーションのような高いレベルの同時並列性を有するアプリケーションの処理時間を大きく減少させることができる。
実際には、もはや、チップマルチプロセッサにおける漏れ電流により発生するスタティック消費電力の指数関数的増大なしに閾値電圧を低減できないため、高コア数チップマルチプロセッサのすべてのプロセッサコアの効率的使用は難しい。結果として、高コア数チップマルチプロセッサのコアあたりで使用可能なパワーバジェットは、将来の技術世代ごとに低下していくと予測される。この状況により、高コア数チップマルチプロセッサのますます多くの断片が完全な周波数で駆動されないもしくは全く駆動されない「パワーウォール」、「ユーティリティウォール」または「ダークシリコン」と呼ばれる現象がもたらされる。したがって、そのようなチップマルチプロセッサの性能の改善は、マルチプロセッサのエネルギー効率性に強く左右され得る。
本開示の少なくともいくつかの実施形態によれば、ネットワークオンチップは、NoCの宛先ノードに配設された宛先ルータを備える。宛先ルータは、宛先ノードに配設されたネットワークデバイスからメモリ要求を受信し、接続設定メッセージおよびメモリ要求を、NoCのソースノードに送信するように構成されることが可能であり、接続設定メッセージは、宛先ルータとソースノードに配設されたルータとの間の回線交換接続を事前予約するように構成される。
本開示の少なくともいくつかの実施形態によれば、ネットワークオンチップは、NoCの宛先ノードに配設されたルータを備える。ルータは、NoCの宛先ノードから発信された接続設定メッセージを受信するように構成されることが可能であり、接続設定メッセージは、回線交換接続においてルータを使用するための要求された時間フレームを示す予約ウィンドウを含む。ルータはさらに、要求された時間フレーム中の回線交換接続における使用のためのルータの使用可能性を判断し、要求された時間フレーム中にルータが使用可能であると判断すると、接続設定メッセージおよび確認応答メッセージを送信するように構成されることが可能である。
上記の概要は例示にすぎず、何ら限定を意図していない。上述の例示的な態様、実施形態、および特徴に加えて、他の態様、実施形態、および特徴が、図面および以下の詳細な説明を参照することにより明らかとなろう。
本開示の上記および他の特徴は、添付の図面と併せて以下の説明および添付の特許請求の範囲からより完全に明らかとなろう。これらの図面は、本開示によるいくつかの実施形態を示すにすぎず、したがって本開示の範囲を限定するとみなされるべきではない。本開示は、添付の図面の使用を通して付加的な特性および細部と共に説明される。
本開示の少なくともいくつかの実施形態に従って構成された、チップマルチロプロセッサの例示的実施形態のブロック図である。 本開示の少なくともいくつかの実施形態に従って構成された、ネットワークオンチップで実装された回線交換に関連した接続設定オーバヘッドおよび低減された帯域幅利用率を示す例示的タイミング図である。 本開示の少なくともいくつかの実施形態に従って構成された、図1におけるネットワークオンチップのネットワークルータの例示的実施形態の概略図である。 本開示の少なくともいくつかの実施形態に従って構成された、ネットワークオンチップにおける事前予約方式の例示的実施形態を示す例示的タイミング図である。 本開示の少なくともいくつかの実施形態に従って構成された、安全マージンを含む事前予約方式の例示的実施形態を示す例示的タイミング図である。 本開示の少なくともいくつかの実施形態に従って構成された、ネットワークルータのための予約レジスタを概略的に示す図である。 本開示の少なくともいくつかの実施形態に従って構成された、各時間期間が予約レジスタにおける1ビットで表される時間の長さに等しい3つの時間期間が経過した後の、図6の予約レジスタを概略的に示す図である。 本開示の少なくともいくつかの実施形態に従って構成された、NoCにおいてデータを送信する例示的方法800を要約して示すフローチャートである。 本開示の少なくともいくつかの実施形態に従って構成された、要求されたデータがソースノードから宛先ノードへの送信のために使用可能である前に、ソースノードと宛先ノードとの間の回線交換接続を事前予約するための方法を実装する、コンピュータプログラム製品の例示的な実施形態のブロック図である。 本開示の少なくともいくつかの実施形態に従って構成された、チップマルチロプロセッサ、たとえば、図1のチップマルチロプロセッサを使用して動作するように構成された例示的コンピューティングデバイスを示すブロック図である。
以下の詳細な説明では、その一部を形成する添付の図面を参照する。図中、同様の記号は、一般に、文脈で特に指示がない限り、同様のコンポーネントを特定する。詳細な説明、図面、および特許請求の範囲に記載される例示的な実施形態は限定を意図していない。本明細書で与えられる主題の趣旨または範囲から逸脱することなく、その他の実施形態が利用されてもよく、他の変更がなされてもよい。本明細書において概説され図で示される本開示の態様は、多種多様な構成で配置、置換、組合せ、および設計することが可能であり、それらすべてが明白に企図され本開示の一部とされる。
本開示は、一般に、とりわけチップマルチプロセッサに関係した方法、装置、システム、デバイス、および/またはコンピュータプログラム製品に関する。
簡潔に述べると、ネットワークオンチップは、要求されたデータがソースノードから宛先ノードへの送信のために使用可能である前に、ソースノードと宛先ノードとの間の回線交換接続を事前予約するように構成されたルータを含むことができる。要求されたデータがソースノードからの送信のために使用可能であるときに、回線交換接続がソースノードと宛先ノードとの間に既に確立されているので、回線交換接続の設定オーバヘッドによって引き起こされる遅延なしに、データを送信することができる。接続設定メッセージを宛先ノードからのメモリ要求と一緒に送信して、回線交換接続の事前予約を容易にすることができる。
図1は、本開示のいくつかの実施形態に従って構成された、チップマルチプロセッサ(CMP)100の例示的実施形態のブロック図である。CMP100は、複数のタイル120、メモリコントローラ100〜104、およびそれらの間に配設された通信サブシステム105を含むことができる。タイル120、メモリコントローラ100〜104、および通信サブシステム105は、単一のダイ109上に形成することができ、一緒にネットワークオンチップ108すなわちNoCとして構成することができる。NoC108は、CMP100内のオンチップ通信を実現するためにネットワーキング理論および方法を適用するように構成することができる。いくつかの実施形態では、CMP100は、アナログデバイス、混成信号デバイス、高周波デバイスなどのような、単一の集積回路ダイ109上に形成された追加のコンポーネントを含んでもよいが、明瞭にするためにそのような追加のコンポーネントは図1では省略されている。
タイル120のそれぞれは、NoC108のノードを形成することができ、L1、L2およびL3キャッシュのような関連付けられたキャッシュ階層を有するプロセッサコア121と、同じ場所に配置されたネットワークルータ122とを含むことができる。各プロセッサコア121は、集積回路ダイ109上に形成される任意の技術的に実現可能なプロセッサまたはプロセッサコア、たとえば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、アクセラレータ、リプログラマブル回路、または前述のコアの同種もしくは異種のクラスタ/グループなどにすることができる。各ネットワークルータ122は、パケット交換および回線交換をサポートするように構成された任意の技術的に実現可能なオンチップルータとすることができる。ネットワークルータ122の1つの例示的実施形態を図3と関連して後で説明する。通信サブシステム105は、図示のようにタイル120をメモリコントローラ101〜104と結合する相互接続を含むことができる。図1に示す実施形態では、通信サブシステム105が、2次元メッシュネットワークトポロジを用いてタイル120を結合する。しかしながら、通信サブシステム105は、本開示の範囲を超えずに任意の他の技術的に実現可能なネットワークトポロジによって構成されてもよい。いくつかの実施形態では、NoC108において次元順ルーティング(dimension-ordered routing)が使用され得る。次元順ルーティングでは、簡潔性および無デッドロック性のために、パケットがNoCにおいてy次元に沿ってルーティングされる前にx次元に沿ってルーティングされ得る。
メモリコントローラ101〜104は、CMP100に関連付けられたランダムアクセスメモリ(RAM)のようなオンチップまたはオフチップのメインメモリリソースとの間で行き来するデータの流れを管理するように構成されてよい。CMP100に関連付けられたRAMには、オフチップメモリリソースおよび/またはオンチップメモリリソース、たとえば、2Dまたは3Dで配列されたDRAM、SRAM、磁気抵抗RAM(MRAM),および/または相変化RAM(PRAM)が含まれ得る。いくつかの実施形態では、物理メモリアドレスは、ページインタリーブ様式でメモリコントローラ101〜104間でインタリーブされることがある。たとえば、第1のページおよび第5のページがメモリコントローラ101にマップされてよく、第2のページおよび第6のページがメモリコントローラ102にマップされてよく、第3のページおよび第7のページがメモリコントローラ103にマップされてよく、第4のページおよび第8のページがメモリコントローラ104にマップされてよく、以下同様にされてよい。したがって、メモリコントローラ101〜104のそれぞれは、CMP100に関連付けられたメインメモリの異なる部分を制御することができる。各プロセッサコア121に大きな物理メモリ空間を提供するために、各プロセッサコア121は、メモリコントローラ101〜104のいずれかによって制御されるメモリにアクセスを有することがある。その結果、プロセッサコア121は、メモリコントローラ101〜104のそれぞれにアクセスする際に互いに競合することがある。したがって、一般にNoC108におけるデータをルーティングするためにスイッチングポリシーを使用して、そのような競合に対処することができる。
NoC108上でパケットをルーティングする際に使用され得る様々なスイッチング技術には、回線交換およびパケット交換が含まれる。回線交換では、NoC108のソースノードと宛先ノードとの間の接続が完全に確立され、ソースノードと宛先ノードとの間のデータ転送が予約される。現在のマルチコアNoCで一般的に使用されるパケット交換では、各個別パケットが独立して移動し、パケットがNoC108を通って移動するときに増分的にポートおよびリンクリソースを予約する。回線交換は一般にデータ転送待ち時間が比較的短いが、十分に活用されない接続または競合する予約間の衝突により、帯域幅の利用率を高くできない可能性がある。対照的に、パケット交換では、各パケットは、ルータにおいて4段階の処理、すなわち、デコードおよびルーティング、仮想チャネル割当て、スイッチ割当て、ならびにスイッチ探査を経ることがある。これらのステップは、典型的には、パイプライン処理され、パケットが通過する各ノードにおいて数クロックサイクルのルーティング遅延を受ける。ルータにおいて、パケットの処理の各段階でエネルギーを消費する。また、データに対して仮想チャネルおよびスイッチ割当てが正常に完了するまでルータにデータを保持するために、比較的深いバッファが提供され得る。したがって、コンテキストによっては、パケット交換は、回線交換と比較してエネルギー効率が良くないことがある。
チップマルチプロセッサの性能改善は、「パワーウォール」と呼ばれる現象による設計のエネルギー効率性に強く左右され得る。さらに、チップマルチプロセッサNoCのルータが、高コア数チップマルチプロセッサの主なエネルギー消費要素であり得る。具体的には、チップマルチプロセッサのコアの数がxの比で増加すると、xの各コアがチップマルチプロセッサのその他のコアと通信するので、関連したNoCの通信ネットワークはxの比で増大し得る。したがって、より大きいコア数のチップマルチプロセッサでは、NoCは、チップマルチプロセッサのダイ面積および電力消費の大部分を消費し得る。たとえば、インテルのタイル状80コア試作チップにおいて、NoCは、チップ電力の約28%を消費する可能性があり、これは、キャッシュ(約21%)、クロック分配回路(約11%)、およびレジスタファイル(約4%)により消費される各電力より大きい。NoCにおけるパケット交換に関連した相対的なエネルギーの非効率性が、この傾向を大きく悪化させる可能性がある。不都合なことに、回線交換では、接続設定オーバヘッドおよび低い帯域幅利用率が問題となる可能性もあり、これについては図2と関連して後で説明する。
図2は、ある種のNoCで実装された回線交換に関連した接続設定オーバヘッドおよび低減された帯域幅利用率を示す例示的タイミング図200である。図2は、タイル状マルチコアアーキテクチャまたはNoCにおける、ソースノード、宛先ノード、および追加ノードを含む3つのノードに関係したアクティビティを時間に対して示している。宛先ノードは、プロセッサコアのキャッシュ階層に現在存在しないデータをプロセッサコアが要求するNoCのノードとすることができる。要求は、単一のキャッシュブロックまたは複数のキャッシュブロックを対象とすることができる。そのような要求201は、たとえば、プロセッサコアが遭遇したキャッシュミスまたはプロセッサコアが実行したプリフェッチに応答して、生成され得る。ソースノードは、宛先ノードに配置されたプロセッサコアによるデータ要求に応答して、NoCを介してデータを送る。たとえば、ソースノードは、NoCのメモリコントローラのうちの1つに結合されたNoCのノードとすることができ、したがって、メモリフェッチ203によってメインメモリからデータをフェッチするために使用することができる。あるいは、ソースノードは、データが位置する別のノードのキャッシュのうちの1つに結合されたNoCのノードであってもよい。追加ノードは、タイミング図200で示される時間の一部分において宛先ノードにおけるルータを活用できるNoCの別のノードとすることができる。図2では、ソースノードと宛先ノードは互いに隣接しているが、実際には、間接的に接続されて1または複数のネットワークホップだけ離れていてもよい。
動作中に、宛先ノードが、データ要求201をソースノードに送り、次いで、ソースノードが、メモリフェッチ203によってメインメモリからデータをフェッチする。ソースノードがメインメモリからフェッチしたデータを受信した後、ソースノードは、フェッチしたデータを宛先ノードに送信するために回線交換が使用可能なように、回線交換接続設定パケット202を宛先ノードに送る。ソースノードと宛先ノードとの間の接続経路に沿ったすべてのルータが正常に予約されると、宛先ノードは、確認応答パケット205をソースノードに返す。確認応答パケット205を受信した後、ソースノードは、要求されたデータをデータ送信204によって宛先ノードに送る。データ送信204の最後は、ソースノードと宛先ノードとの間の回線交換接続を分断するコマンドを含んでよい。
回線交換接続がソースノードと宛先ノードとの間に確立されるまでデータが送られることがないため、図示されるように、接続設定オーバヘッド210は、設定パケット202の送信とソースノードによる確認応答パケット205の受信との間に発生し得る。このデータ送信204の送信の遅延は、データ送信204が送達されるのを宛先ノードが待機する間の待ち時間コストを生じ得る。さらに、このデータ送信204の送信の遅延は、ソースノードにおけるフェッチされたデータのバッファリングに関連したエネルギーコストを生じ得る。加えて、宛先ノードに関連した延長された予約ウィンドウ220の結果として、帯域幅利用率の低下が発生し、その結果、ソースノードと宛先ノードとの間の回線交換経路の一部であるNoCにおけるルータおよびリンクが十分に活用されない可能性がある。詳細には、設定パケット202が宛先ノードによって受信されるとすぐに宛先ノードにおいて回線交換接続が予約されるので、NoCにおける帯域幅利用率が低下し得る。したがって、追加ノードまたはNoCにおける任意の他のノードによって要求されたデータ送信のために、宛先ノードを使用することができない。したがって、宛先ノードが、予約ウィンドウ220において追加のノードからパケット206を受信する場合、宛先ノードは、パケット206を否定応答207で拒否する。結果として、パケット206は遅延され、後で再送される可能性があり、したがって、NoCの全体的性能が低下する。
開示の実施形態によれば、NoCは、接続設定オーバヘッドを低減し帯域幅利用率を向上するやり方で回線交換を実装するように構成することができる。具体的には、NoCは、要求されたデータがソースノードから宛先ノードへの送信に使用可能である前に、ソースノードと宛先ノードとの間の回線交換接続を事前予約するように構成されるルータを含むことができる。したがって、要求されたデータがソースノードからの送信のために使用可能である前に、回線交換接続がソースノードと宛先ノードとの間に既に確立されることになる。結果として、図2の接続設定オーバヘッド210のような設定オーバヘッドによって引き起こされる遅延なしに、データを送信することができる。したがって、回線交換接続におけるノードでのデータのバッファリングに関連したエネルギーコストが低減され得る。ソースノードと宛先ノードとの間の回線交換接続を事前予約するように構成されたネットワークルータの1つの例示的実施形態を、図3と関連して以下に説明する。
図3は、図1のNoC108におけるネットワークルータ122の例示的実施形態の概略図である。ネットワークルータ122は、5つの入力ポート310、5つの出力ポート320、クロスバースイッチ330、ならびにルーティングおよび調停コントローラ340を含むことができる。ネットワークルータ122は、NoC108のトポロジおよびNoC108内のルータの位置に応じて、図3に示されるよりも多数または少数の入力ポート310または出力ポート320を含んでよい。たとえば、図3に示す実施形態において、ネットワークルータ122が2次元トポロジの一部であるとき、北、南、東、および西入力ポート用の入力ポート310A〜D、ならびに自己/ローカル入力ポート用の入力ポート310Eを含む。別の例では、ネットワークルータ122が、NoC108の角部のノードに配置されたタイル120に関連付けられているとき、その特定のネットワークルータ122が、ちょうど2つの他のノードに隣接し、自己/ローカル入力ポートも含むことができるので、ネットワークルータ122は、3つの入力ポート310および3つの出力ポート320のみを含むことができる。図3に示す実施形態では、ネットワークルータ122は、回線交換と共にパケット交換も実装できるハイブリッドルータとして構成することができる。しかしながら、他の実施形態では、ネットワークルータ122は、回線交換を実装するがパケット交換を実装しないように構成され得る。
入力ポート310のそれぞれを、回線交換仮想チャネル311およびパケット交換仮想チャネル312に関連付けることができる。各パケット交換仮想チャネル312は、NoC108の次の部分がデータ送信に使用可能になるまで、1つまたは複数の通信ユニット、たとえば、転送データを記憶するためのバッファ313を含むことができる。出力ポート320のそれぞれを、回線交換仮想チャネル321およびパケット交換仮想チャネル322に関連付けることができる。他の実施形態では、ネットワークルータ122は、異なる個数の回線交換仮想チャネルおよびパケット交換仮想チャネルと共に構成されてもよい。各パケット交換仮想チャネル322は、NoC108の次の部分がデータ送信に使用可能になるまで、1つまたは複数の通信ユニットを記憶するためのバッファ323を含むことができる。このように、図3に示す実施形態では、ネットワークルータ122は、入力および出力バッファリングを有するように構成することができる。しかしながら、他の実施形態では、ネットワークルータ122は、入力バッファリング(バッファ313)を有するが出力バッファリング(バッファ323)を有しないように、またはその逆に構成されてもよい。クロスバースイッチ330は、入力ポート310を出力ポート320と相互接続することができる。ルーティングおよび調停コントローラ340は、ネットワークルータ122のためのルーティングアルゴリズムおよびパケットフロー制御プロトコルを実装することができ、それに応じてクロスバースイッチ330を設定することができる。たとえば、ルーティングおよび調停コントローラ340は、同じ出力ポート320に対する同時の要求の間の競合を解決するように構成することができる。いくつかの実施形態では、ルーティングおよび調停コントローラ340は、ネットワークルータ122の出力ポート320ごとに1つの予約レジスタ600を含むことができる。予約レジスタ600の例示的実施形態を図6と関連して後で説明する。
例示として、ネットワークルータ122は、図3では、入力ポート310Aを出力ポート320Bと結合する回線交換チャネル350と共に示されている。図示されるように、回線交換チャネル350がこのように確立されると、バッファ313は、回線交換チャネル350がパケット交換仮想チャネル312のいずれも含まないので、いっぱいのときストールし、バッファ323は、回線交換チャネル350がパケット交換仮想チャネル322のいずれも含まないので、使用されることがない。結果として、バッファ313および/またはバッファ323に関連したエネルギーコストが回避され得る。加えて、回線交換チャネル350が使用されるとき、ルーティングおよび調停コントローラ340によってデコードおよびルーティング動作が必ずしも行われる必要がなく、これもエネルギーコストを節約し得る。さらに、デコードおよびルーティング、仮想チャネル割当て、ならびにスイッチ割当てを除去することにより、ルーティング遅延が低減され得る。
一般的にNoCにおける回線交換に関連する接続設定オーバヘッドおよび帯域幅利用率低下を最小限にするまたは別様に減少させるために、ルーティングおよび調停コントローラ340は、NoC108におけるソースノードと宛先ノードとの間の回線交換接続が事前予約されることを可能にする1つまたは複数の機能、行為、または動作を行うように構成され得る。これらの機能、行為、または動作は、ルーティングおよび調停コントローラ340が、NoC108内のソースノード、NoC108内の宛先ノード、またはNoC108の宛先ノードとソースノードとの間の回線交換経路に沿って配置された中間ノードとして現在動作しているネットワークルータ122内にあるかどうかに応じて異なり得る。
具体的には、ネットワークルータ122がNoC108の宛先ノードに配設されている場合、ルーティングおよび調停コントローラ340は、宛先ノードに配設されたネットワークデバイス(たとえばプロセッサコア121)からメモリ要求を受信し、応答メッセージのリターン経路のための回線交換接続に対応するポートを設定し、メモリ要求と共に接続設定メッセージをNoC108のソースノードに送信するように構成され得る。接続設定メッセージは、NoC108の宛先ノードおよびソースノードを含むその間のノードのそれぞれにおける回線交換接続を事前予約するための、ソースノードと宛先ノードとの間の各ネットワークルータに対するコマンドを含むように構成され得る。ネットワークルータ122は、たとえばルーティングおよび調停コントローラ340を介して、これらのコマンドを、要求メッセージの反対方向の適切なポートを伴う回線交換接続を事前予約するように実装することができる。メモリ要求の対象の特定のソースノードは、メモリ要求に関連付けられた物理メモリアドレスに応じて決めてもよい。
ネットワークルータ122が、宛先ノードとソースノードとの間の回線交換経路に沿って配置されたNoC108の中間ノードに配設されているとき、ルーティングおよび調停コントローラ340は、NoC108の宛先ノードから発信された接続設定メッセージを受信するように構成され得る。接続設定メッセージは、宛先ノードとソースノードとの間の回線交換接続においてネットワークルータ122が予約される要求された時間期間を示す事前予約ウィンドウを含むことができる。ルーティングおよび調停コントローラ340はまた、接続設定メッセージを受信すると、要求された時間期間中の回線交換接続における使用のためのネットワークルータ122の使用可能性を判断するように構成され得る。要求された時間期間中にネットワークルータ122が使用可能であると判断すると、ルーティングおよび調停コントローラ340は、接続設定メッセージの反対方向に対応する適切なポートを伴う回線交換接続を事前予約し、接続設定メッセージおよびさらに確認応答メッセージを、宛先ノードとソースノードとの間の対象とする回線交換接続における次のノードに送信するように構成され得る。
ネットワークルータ122がNoC108のソースノードに配設されている場合、ルーティングおよび調停コントローラ340は、メモリ要求、およびNoC108の宛先ノードから発信された接続設定メッセージを受信するように構成され得る。加えて、ルーティングおよび調停コントローラ340は、宛先ノードとソースノードとの間の所望の回線交換接続を構成する各ノードから確認応答メッセージを受信するように構成され得る。ルーティングおよび調停コントローラ340はまた、確認応答メッセージに基づいて、回線交換接続を形成するすべてのルータおよびリンクが正常に事前予約されたかどうかを決定するように構成され得る。ルーティングおよび調停コントローラ340はさらに、回線交換接続がNoC108において正常に事前予約されたとき、メモリ要求に基づいてメモリフェッチを開始し、事前予約された回線交換接続を介して、フェッチされたデータをNoC122の宛先ノードへ送信するように構成され得る。
図4は、本開示のいくつかの実施形態による、NoCにおける事前予約方式の例示的実施形態を示す例示的タイミング図400である。図4は、図1のNoC108のようなタイル状マルチコアアーキテクチャまたはNoCにおける、ソースノード、宛先ノード、中間ノード、および追加ノードに関係したアクティビティを時間に対して示している。中間ノードは、ソースノードと宛先ノードとの間に配設されたNoC108のノードとすることができ、事前予約方式の実施形態によってソースノードと宛先ノードとの間に形成された事前予約された回線交換接続の一部である。追加ノードは、ソースノードと宛先ノードとの間に位置しなくてよく、ソースノードと宛先ノードとの間に形成された事前予約された回線交換接続の一部でない。しかしながら、いくつかの実施形態では、追加ノードは、NoC108を構成するノードのいずれかであってよい。図4では、ソースノードと宛先ノードは、中間ノードによって直接接続でき、NoC108の他のノードで接続されていないが、実際には、ソースノードと宛先ノードは、NoC108のサイズ、および事前予約された回線交換接続のルーティングに応じて、互いに隣接する、またはNoC108の複数の中間ノードによって離されていることがある。
動作中に、宛先ノードが、中間ノードを介してメモリ要求401および接続設定メッセージ402をソースノードに送ることができる。いくつかの実施形態では、メモリ要求401および接続設定メッセージ402は、組み合わされたメッセージとして宛先ノードからソースノードへ送ることができる。言い換えれば、接続設定メッセージ402は、メモリ要求401上に「ピギーバック」されてよい。
メモリ要求401は、宛先ノードに配置されたネットワークデバイスたとえばプロセッサコアが遭遇したキャッシュミスに応答して生成され得る。あるいは、メモリ要求401は、宛先ノードに配置されたネットワークデバイスが実行したプリフェッチに応答して生成され得る。一般に、メモリ要求は、図1におけるメモリコントローラ101〜104の1つによってアクセスされるメインメモリの特定の部分に対応する1つまたは複数の物理メモリアドレスを含むことができる。
接続設定メッセージ402は、宛先ノードに配設されたネットワークルータ122とNoC108のソースノードに配設されたネットワークルータ122とを含むその間のノードのそれぞれにおける回線交換接続を事前予約するための、ソースノードと宛先ノードとの間の各ネットワークルータ122に対するコマンドを含むことができる。接続設定メッセージ402は、宛先ノードとソースノードとの間で使用されるべき回線交換接続を構成する各ネットワークルータ122のための事前予約ウィンドウを含むことができる。したがって、図4に示す実施形態において、接続設定メッセージ402は、宛先ノードのための事前予約ウィンドウ420Aの予約、中間ノードのための事前予約ウィンドウ420Bの予約、およびソースノードのための事前予約ウィンドウ420Cの予約を要求するコマンドを含むことができる。あるいは、宛先ノードのための事前予約ウィンドウ(事前予約ウィンドウ420A)は、接続設定メッセージ402を使用せずに確立されてもよい。図示されるように、事前予約ウィンドウ420Aおよび事前予約ウィンドウ420Bは、時間が重なることがあるが、中間ノードは宛先ノードの前にデータを扱うので、時間がちょうど一致することはない。言い換えれば、事前予約ウィンドウ420Bは、事前予約ウィンドウ420Aの開始前の時間に始まることができ、事前予約ウィンドウ420Aの終了前に終わることができる。
いくつかの実施形態では、接続設定メッセージ402は、所望の回線交換接続で使用するために事前予約されるNoC108の各ノードに関連付けられた確認応答または否定応答メッセージを含むこともできる。したがって、図4に示す実施形態では、接続設定メッセージ402が、宛先ノードおよび中間ノードによって生成される確認応答または否定応答メッセージを含むことができる。このように、接続設定メッセージ402は、ソースノードが宛先ノードにデータを送信する前に、事前予約された回線交換接続における各ノードの状態をソースノードに通知することができる。いくつかの実施形態では、各ノードについての上記確認応答または否定応答メッセージは、接続設定メッセージ402に付加することができる。他の実施形態では、上記確認応答または否定応答メッセージは、更新された値または状態として接続設定メッセージ402に反映することができる。さらに、メモリ要求401に応答して確立される回線交換接続におけるノードの事前予約状態を追跡する任意の他の技術的に実現可能な実装形態を、本開示の範囲を超えることなく接続設定メッセージ402に含めてもよい。
宛先ノードにおけるネットワークルータ122が、事前予約ウィンドウ420Aにおいて宛先ノードが使用可能であるかどうかを示す確認応答または否定応答メッセージを提供した後、宛先ノードにおけるネットワークルータ122は、メモリ要求401および接続設定メッセージ402を中間ノードに送信することができる。次いで、中間ノードが、メモリ要求401および接続設定メッセージ402を受信することができる。接続設定メッセージ402に応答して、中間ノードのネットワークルータ122は、所望の回線交換接続における使用のための中間ノードの使用可能性を判断し、確認応答または否定応答メッセージを接続設定メッセージ402に付加し、メモリ要求401および接続設定メッセージ402をソースノードに送信することができる。いずれの中間ノードも否定応答メッセージを受信した場合、それは回線交換接続が確立され得ないと結論することができる。この結論に応答して、それは事前予約ウィンドウを全く無視することができ、したがって、回線交換接続のためのルータリソースを事前予約しない。
図4に示すように、次いで、ソースノードは、メモリ要求401および接続設定メッセージ402を受信することができる。ソースノードは、受信したメモリ要求401に従ってメモリフェッチ403を行うことができる。図4では、ある有限の遅延を含むように示されているが、メモリ要求401が、ソースノードにキャッシュされたメモリアドレスに関する場合、メモリフェッチ403は、小さい遅延を有することがある。ソースノードと宛先ノードとの間の回線交換接続が(確認応答メッセージで示されるように)接続設定メッセージ402によって正常に事前予約されると、ソースノードは、メモリフェッチ403の結果を、1つまたは複数のデータ送信404A〜404Dで中間ノードを介して宛先ノードへ送ることができる。データ送信404A〜404Dは、事前予約ウィンドウ420Bにおいて中間ノードによって受信することができ、事前予約ウィンドウ420Aにおいて宛先ノードによって受信することができる。いくつかの実施形態では、回線交換接続は、たとえば、接続設定メッセージ402に含まれた否定応答メッセージに起因して、ソースノードと宛先ノードとの間で確立することができない。これらの実施形態では、メモリ要求401は、パケット交換を使用してソースノードによって取り扱われる。パケット交換は、回線交換接続での経路と比較して、ルーティングポリシーに従って異なる経路を使用することができる。
いくつかの実施形態では、ソースノードからの最後データ送信、たとえば、データ送信404Dは、回線交換接続を分断するコマンドを含むことができる。そのような実施形態では、たとえばルーティングおよび調停コントローラ340によって、分断コマンドが実行されると、ソースノードと宛先ノードとの間の回線交換接続がキャンセルされ得る。
メモリ要求401および接続設定メッセージ402が宛先ノードからソースノードに送信されている時間の間、およびソースノードがメモリフェッチ403を行っている間にも、所望の回線交換接続で使用するために事前予約されたNoC108のノードは、他の回線交換接続などの接続で依然として使用可能であり得ることに留意されたい。たとえば、図4に示す実施形態では、中間ノードは、時間期間410B中に他の接続で使用可能であり得る。宛先ノードは、時間期間410A中に他の接続によって使用可能であり得る。したがって、宛先ノードは、遅延なしに、または別様に低減された遅延を伴って、追加ノードからのパケット411および412を受信することができる。
事前予約ウィンドウ420Bの持続期間は、ソースノードからのデータ送信404A〜404Dの受信、および宛先ノードへのデータ送信404A〜404Dの送信に必要とされる時間を超えない時間で、中間ノードを予約するように選択され得る。同様に、事前予約ウィンドウ420Aの持続期間は、中間ノードからのデータ送信404A〜404Dの受信に使用されるべき時間を超えない時間で、宛先ノードを予約するようなサイズとされ得る。このようにして、帯域幅利用率は、NoC108において最大限にされるまたは別様に改善されることが可能である。実際には、事前予約ウィンドウ420Aおよび/または事前予約ウィンドウ420Bの最小持続期間は、高精度には予測可能ではない。たとえば、メモリフェッチ403を行う持続時間は変化し得る。いくつかの例では、メモリフェッチ403は、メモリ要求がメモリの行バッファでヒットに遭遇するときに短い持続時間で行われてよく、メモリ要求がメモリの行バッファでミスに遭遇するときにより長い持続時間で行われてよい。他の例では、メモリ要求401は、NoC108における競合によりソースノードに到達する際の遅延に遭遇することがある。いくつかの実施形態によれば、事前予約ウィンドウ420Aおよび/または事前予約ウィンドウ420Bは、メモリフェッチ403を行うために使用される持続時間の変動の存在、または、ソースノードから宛先ノードへのメモリ要求401の送信の遅延、または他の理由があっても、ソースノードと宛先ノードとの間の回線交換接続が適切に機能することを可能にする安全マージンを含むように選択され得る。1つのそのような実施形態を、図5と関連して以下に説明する。
図5は、本開示のいくつかの実施形態による、各ノードにおける事前予約ウィンドウにおいて安全マージンを含む事前予約方式の例示的実施形態を示す、例示的タイミング図500である。タイミング図500は、中間ノード(事前予約ウィンドウ520B)に関連付けられた事前予約ウィンドウが、最小送信時間524Bおよび安全マージン525Bを含むことができ、宛先ノード(事前予約ウィンドウ520A)に関連付けられた事前予約ウィンドウが、最小送信時間524Aおよび安全マージン525Aを含むことができ、ソースノード(事前予約ウィンドウ520C)に関連付けられた事前予約ウィンドウが、最小送信時間524Cおよび安全マージン525Cを含むことができることを除いて、タイミング図400と概ね類似し得る。
いくつかの実施形態では、事前予約ウィンドウ520Bの開始時間521B、終了時間522B、および安全マージンの持続期間525Bは、宛先ノードのネットワークルータ122によって決定することができる。いくつかの実施形態では、宛先ノードにおけるネットワークルータ122のルーティングおよび調停コントローラ340が、そのような決定を行うことができ、他の実施形態では、ネットワークルータ122に関連付けられた他のデバイスまたはソフトウェア構成が、そのような決定を行うことができる。中間ノードは、ネットワークルータ122間の1ホップの遅延を考慮する適切なオフセットを導入する。開始時間521B、終了時間522B、および安全マージンの持続期間525Bは、種々のファクタを少なくとも部分的に基づいて決定することができ、それらのファクタには、メモリ要求401および接続設定メッセージ402がソースノードから宛先ノードに到達するための最小(または別様に低減された)可能時間および平均時間、メモリフェッチ403をソースノードによって完了するための最小(または別様に低減された)可能時間および平均時間、ならびに接続ウィンドウを事前予約しているノードへのソースノードからのメッセージ伝播遅延が含まれる。同様にして、宛先ノードのネットワークルータは、事前予約ウィンドウ520Aの開始時間521A、終了時間522A、および安全マージンの持続期間525Aを決定することができる。簡潔にするために、中間ノードについての開始時間521B、終了時間522B、および安全マージンの持続期間525Bのみを本明細書では説明する。宛先ノードについての開始時間521A、終了時間522A、および安全マージンの持続期間525Aは、本明細書に開示される主題に基づいて容易に決定することができる。
いくつかの実施形態では、開始時間521Bは、決定値に基づいて選択することができ、それらの値には、メモリ要求401および接続設定メッセージ402が宛先ノードからソースノードに到達するための最小(または別様に低減された)可能時間、メモリフェッチ403をソースノードによって完了するための最小(または別様に低減された)可能時間、ならびにフェッチされたデータがソースノードを介して中間ノードに送信されるための時間が含まれる。メモリ要求401および接続設定メッセージ402が宛先ノードからソースノードに到達するための最小(または別様に低減された)可能時間は、一般に、メモリ要求401および接続設定メッセージ402がパケット交換を介してソースノードに送信されるときに競合が発生しないことを仮定することができる。メモリフェッチ403をソースノードによって完了するための最小(または別様に低減された)可能時間は、一般に、メモリ要求401に含まれた物理アドレスがメインメモリの行バッファにおいてヒットすること、およびメモリ要求401よりも他のメモリ要求が好まれないことを仮定することができる。フェッチされたデータがソースノードを介して中間ノードに送信されるための時間は、ソースノードと中間ノードとの間のネットワークホップの数に基づいて計算することができる。
いくつかの実施形態では、開始時間521Bの決定は、さらに、接続設定メッセージ402が宛先ノードからソースノードに到達する際およびメモリフェッチ403の完了の際に発生する可能性が高い推定遅延の包含に基づいてよい。そのような実施形態では、開始時間521Bは、データ送信404Bが中間ノードに到達できる最も早い可能な時間よりも遅くなるように選択でき、これは、そのようなシナリオが特定のNoCにおいて比較的起こりそうにないからである。たとえば、開始時間521Bは、接続設定メッセージ402が宛先ノードからソースノードに移動するときに平均競合率で送信遅延が発生すると仮定することによって決定することができる。代替的または追加的に、開始時間521Bは、ソースノードがメモリフェッチ403を完了するために平均時間が過ぎることを仮定することによって決定することができる。このようにして、NoC108における帯域幅利用率を向上することができ、その理由として、事前予約ウィンドウ520Bの開始時間521Bは、データ送信404Aが中間ノードに到着することが見込まれるより大幅に早く開始することがないからである。さらに、データ送信404Aが開始時間521Bより早く中間ノードに到着する比較的珍しい例では、その関連した遅延は、比較的短く、したがってNoC108の帯域幅利用率に対する影響はほとんどない可能性がある。
終了時間522Bおよび結果として安全マージンの持続期間525Bは、接続設定メッセージ402から宛先ノードからソースノードへの送信の不確実性、およびメモリフェッチ403をソースノードによって完了するための時間の不確実性を含む種々の推定ファクタに基づいて、決定することができる。これらの不確実性に影響するファクタには、NoC108のサイズおよびアーキテクチャ、通信サブシステム105の物理サイズ、使用される物理メモリのタイプ、ならびにメモリコントローラ101〜104の速度などが含まれ得る。
ソースノードから中間ノードへのデータ送信404Aの送信が、中間ノードにおける開始時間521Bより前のデータ送信404Aの到着をもたらす場合、ソースノードからの送信が遅延される。したがって、データ送信404Aがソースノードで使用可能であっても、いくつかの実施形態において、ある状況下では、中間ノードへのデータ送信404Aの送信にいくらかの遅延があり得る。逆に、いくつかの実施形態では、ソースノードからのデータ送信404Aの送信が、安全マージン525Bの期限切れ後の中間ノードへのデータの到着をもたらす場合、データ送信404Aは中間ノードへ送信されることがない。代わりに、ソースノードと宛先ノードとの間の回線交換接続がキャンセルでき、メモリ要求401は、他のメカニズムを使用して、たとえば、NoC108にわたるパケット交換接続を使用して満たされ得る。回線交換接続がもはや存続可能でないと決定されたときに接続をキャンセルすることによって、キャンセルされた接続のために事前予約されたノードは、合理的に可能な限り早く、他の動作に利用可能にされ得る。このようにして、NoC108の帯域幅利用率は、最大限にされまたは別様に増大され得る。
いくつかの実施形態では、ソースノードと宛先ノードとの間の回線交換接続は、ノードごとに自動的にキャンセルされ得る。言い換えれば、任意の特定のノードにおいて、ソースノードと宛先ノードとの間の回線交換接続は、そのノードに関連付けられた安全マージンの終端点より前に当該のノードによってデータ送信が受信されないときにキャンセルされ得る。たとえば、事前予約ウィンドウ520Bが中間ノードについて確立され、データ送信404Aが安全マージン525Bの期限切れより前に中間ノードによって受信されない場合、ソースノードと宛先ノードとの間の回線交換接続は直ちにキャンセルされ得る。したがって、事前予約ウィンドウ520Bはキャンセルされ、中間ノードは、NoC108における他の回線交換接続またはパケット交換接続で使用可能であるとみなされ得る。そして、回線交換接続における各後続ノードが(たとえば、ノードの事前予約ウィンドウに関連付けられた安全マージンの終端点より前に)データ送信404Aを適時に受信するのに失敗したとき、ノードがNoC108において使用可能になるように、ノードの事前予約ウィンドウがキャンセルされ得る。
前述のように、安全マージンの持続期間525Aおよび525Bは、NoCアーキテクチャ、チップサイズ、物理メモリ待ち時間、タイプなどを含む、特定NoCに特有の多くのファクタを考慮に入れて選択され得る。しかしながら、一般に、回線交換とパケット交換との間の性能およびエネルギー効率性の格差がより大きいとき、より長い安全マージンが事前予約ウィンドウに組み込まれ得る。これは、より大きな利益を得るために、ネットワーク帯域幅に関してより大きいリスクを取れるためである。言い換えれば、回線交換接続が正常に確立されたときに生じる、より小さい待ち時間およびエネルギーコストを利用するために、利用されていないノードが、より長い安全マージンが期限切れになるのを待機する間に遊休したままでいることを可能にされ得る。回線交換とパケット交換との間の性能およびエネルギー効率性の格差は、以下の状況、すなわち、送信されるデータの量が比較的大きい、たとえば、複数のブロックを含む、NoCトラフィック全体が比較的小さく、したがって安全マージンを有するNoC帯域幅の目詰まりのリスクが低い、および、データが多数のネットワークホップにわたって送信されることになる状況で大きくなる可能性がある。
いくつかの実施形態では、ネットワークルータのための事前予約ウィンドウが、ローカルで予約され、ネットワークルータそれ自体によって追跡され得る。そのような実施形態では、NoC108における各ネットワークルータ122は、将来の任意の長い時間ではなく将来の特定の時間期間において、ネットワークルータ122の事前予約を追跡することができる。いくつかの実施形態では、特定の時間期間は、NoC108のノードとCMP100のメモリコントローラとの間のNoC108で生じ得る最長のラウンドトリップ通信時間に少なくとも部分的に基づくことができる。言い換えれば、NoC108のネットワークルータ122について事前予約が追跡される特定の時間期間は、最大数のネットワークホップによって分離されるNoC108のノードとCMP100のメモリコントローラとの間のラウンドトリップ通信時間に基づくことができる。
たとえば、NoC108内のノードとメモリコントローラとの間のNoC108での最大距離がNのネットワークホップである場合、ネットワークホップあたりのパケットをルーティングする時間がT0サイクルであり、メモリアクセス時間がT1であり、データ送信時間がT2であり、NoC108のノードがそのノードについての事前予約されたウィンドウを追跡する最大時間が、(2*N*T0)+T1+T2と等しくなり得る。例示として、典型的な4×4タイル状マルチコアプロセッサにおいて、たとえば、N=6、T0=5クロックサイクル、T1=200クロックサイクル、およびT2=32クロックサイクルは、約292クロックサイクルのラウンドトリップ通信時間をもたらす。いくつかの実施形態では、この時間期間は、ネットワークノードのネットワークルータ122に関連付けられた予約レジスタによって、ネットワークノードごとに追跡されることが可能であり、レジスタは、追跡されるクロックサイクルごとにビットを含む。上記の例では、292クロックサイクルがそのような予約レジスタによって追跡され、したがって、レジスタは292ビットを含む。1つのそのような予約レジスタの実施形態を、図6と関連して以下で説明する。いくつかの実施形態では、そのような登録レジスタによって追跡される時間期間は、NoC108のすべてのノードで同じにすることができるが、他の実施形態では、そのような予約レジスタによって追跡される時間期間は、各ノードのNoC108における位置の関数として変動することができる。
図6は、本開示のいくつかの実施形態による、ネットワークルータのための予約レジスタ600を概略的に示す。予約レジスタ600は、複数のビット601を含むことができ、各ビットは、予約レジスタ600に関連付けられたネットワークルータが事前予約され得る将来の時間期間に対応する。いくつかの実施形態では、各ビット601は、NoC108の単一のクロックサイクルと同じ短さの時間単位に対応することができ、他の実施形態では、各ビット601は、複数のクロックサイクルに対応することができる。後者の場合、ノードについて事前予約されたウィンドウを追跡するために使用されるメモリが低減され得る。たとえば、ノードに対する予約時間が、単一のクロックサイクルより大きい粒度、たとえば、2、4、または8クロックサイズで追跡されるとき、予約レジスタ600におけるビット601の個数は、それに応じて減少され得る。上記の例示的4×4タイル状マルチコアプロセッサにおいて、予約レジスタ600内のビットによって表される各時間単位が2サイクルである場合、登録レジスタ600内のビット601の総数は、対象の最大データ送信時間を追跡するための少なくとも292/2=146(すなわち20バイト)であり得る。明瞭にするために、予約レジスタ600は、図6では16ビット601と共に示されている。
予約レジスタ600内の各ビット601は、「1」または「0」の値を与えられ得る。特定のビット601の値「1」は、関連したネットワークルータ122が、そのビットに対応する将来の時間期間において回線交換接続での使用のために予約されることを示すことができる。逆に、特定のビット601の値「0」は、関連したネットワークルータ122が、そのビットに対応する将来の時間期間において使用可能であることを示すことができる。図6に示すように、2つの事前予約ウィンドウ610および620は、予約レジスタ600において示され、それぞれが、4つの時間期間の持続期間を有する。したがって、予約レジスタ600内の各ビットが2クロックサイクルを表すとき、事前予約ウィンドウ610および620は、それぞれが8クロックサイクルの持続期間を有することができる。
一般に、NoC108のノードまたはネットワークルータ122は、回線交換接続のために事前予約され得るリソースごとに1つの予約レジスタ600を含むことができる。したがって、2Dメッシュでは、各ネットワークルータ122が5つの出力ポートを有することができ、したがって、5つの予約レジスタ600を含むことができる。予約レジスタ600がNoC108のノードのための事前予約されたウィンドウを追跡するメモリ効率の良い方法により、NoC108のネットワークルータ122ごとに5つの予約レジスタ600の維持は、メモリおよびエネルギーコストが比較的かなり小さくてよい。上記の例4×4タイル状マルチコアプロセッサにおいて、タイムスロット粒度が2サイクルである場合、各予約レジスタ600は、146ビット(すなわち20バイト)を有し、したがって合計の5つの予約レジスタ600で100バイトを使用する。結果として、NoC108内のネットワークルータ122のための5つの予約レジスタ600の実装により、NoC108においてハードウェアおよびエネルギーオーバヘッドは比較的非常に小さくてよい。
動作中に、予約レジスタ600のビット値は、ビット601の1つによって表されるタイムスロット粒度ごとに左にシフトされてよく、それによって、予約レジスタ600を含むネットワークルータ122の将来のリソース使用可能性を効率的に追跡することができる。予約レジスタ600は、図4における接続設定メッセージ402に含まれる事前予約要求のような新しい事前予約要求に対してリソース使用可能性を確認するために使用され得る。予約レジスタ600を含むネットワークルータ122が事前予約要求630を受信すると、ネットワークルータ122の使用可能性を判断するために、事前予約要求に対応する時間期間631が予約レジスタ600と比較され得る。時間期間631が、事前予約ウィンドウ610または620のいずれかの1または複数のビットと重なるので、事前予約要求はネットワークルータ122によって拒否され得る。いくつかの実施形態では、そのような比較は、登録レジスタ600と事前予約要求630との間のビット単位のAND演算を実行することで行うことができる。そのような実施形態では、結果がゼロと等しくないとき、それらの間に重複が存在し、事前予約要求が拒否され得る。あるいは、登録要求630と登録レジスタ600との間の重複を決定するために他の論理機能が使用されてもよい。
図7は、各時間期間がビット601で表される時間の長さに等しい3つの時間期間が経過した後の予約レジスタ600を概略的に示す。したがって、各ビット601が2クロックサイクルの時間期間を表すとき、図7は、図6の予約レジスタ600の例よりも6クロックサイクル後の予約レジスタ600を示す。3つの時間期間が経過しているので、事前予約ウィンドウ610または620に対応する「1」の値は、予約レジスタ600において3ビット左にシフトされ得る。したがって、やはり予約レジスタ600を含むネットワークルータ122が、予約レジスタ600の第1の7つの時間期間651〜657で発生する事前予約要求630(または任意の他の事前登録要求)を受信すると、ネットワークルータ122は、事前予約要求630を受け取ることができる。図7に示すように、事前予約要求630は、時間期間651〜657で発生する時間期間632にここで対応し、事前予約ウィンドウ610または620のいずれかと重ならない。結果として、この事例では、予約レジスタ600を含むネットワークルータ122が、事前予約要求630を受け取ることができ、それに応じてビット601を更新することができる。
図8は、本開示の実施形態による、NoCにおいてデータを送信する例示的方法800を要約するフローチャートを示す。方法800は、ブロック801および/または802の1つまたは複数によって示される1つまたは複数の動作、機能、またはアクションを含むことができる。ブロックは順番に示されているが、これらのブロックは、並行に、かつ/または本明細書で説明されるのと異なる順序で行われてもよい。また、様々なブロックが、所望の実装形態に基づいて、より少数のブロックに組み合わされ、さらなるブロックに分割され、かつ/または除去されてもよい。他の動作、機能、またはアクションを表す追加のブロックが与えられてもよい。方法800は図1のCMP100と関連して説明されているが、方法800を実施するように適宜に構成されたいかなるCMPも本開示の範囲内にある。
方法800は、ブロック801「ネットワークデバイスからメモリ要求を受信する」で開始することができる。ブロック801の後にブロック802「接続設定メッセージおよびメモリ要求をソースノードに送信する」が続くことができる。
ブロック801では、図1のネットワークルータ122などのネットワークルータが、CMP100上のNoCのネットワークデバイスからメモリ要求を受信する。たとえば、ネットワークデバイスは、NoCのタイルに配置されたプロセッサコアとすることができる。
ブロック802では、ネットワークルータは、ブロック801で受信した接続設定メッセージおよびメモリ要求をNoCにおけるソースノードに送信する。接続設定メッセージは、ソースルータから宛先ルータへの回線交換接続のための宛先ルータおよびソースルータを事前予約するコマンドを含むことができる。
図9は、要求されたデータがソースノードから宛先ノードへの送信のために使用可能である前に、ソースノードと宛先ノードとの間の回線交換接続を事前予約するための方法を実装する、コンピュータプログラム製品900の例示的な実施形態のブロック図である。コンピュータプログラム製品900は、信号伝達媒体904を含むことができる。信号伝達媒体904は、たとえば、コンピューティングデバイスのプロセッサによって実行されたときに、少なくとも図1〜8に関連して上述した機能性を提供することができる1つまたは複数のセットの実行可能命令902を含むことができる。
いくつかの実装形態では、信号伝達媒体904は、以下に限定されないが、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、メモリなど、非一時的コンピュータ可読媒体908を包含し得る。いくつかの実装形態では、信号伝達媒体904は、以下に限定されないが、メモリ、読取り/書込み(R/W)CD、R/W DVDなど、記録可能媒体910を包含し得る。いくつかの実装形態では、信号伝達媒体904は、以下に限定されないが、デジタルおよび/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波路、有線通信リンク、無線通信リンクなど)などの通信媒体906を包含し得る。コンピュータプログラム製品900は、非一時的コンピュータ可読媒体908または別の同様の記録可能媒体910上に記録され得る。
図10は、本開示の少なくともいくつかの実施形態に従って、CMP、たとえば、図1のCMP100を使用して動作するように構成された例示的コンピューティングデバイスを示すブロック図である。非常に基本的な構成1002において、コンピューティングデバイス1000が、一般的に1つまたは複数のプロセッサ1004およびシステムメモリ1006を含むことができる。メモリバス1008が、プロセッサ1004とシステムメモリ1006との間の通信のために使用されてよい。
所望の構成に応じて、プロセッサ1004は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはこれらの任意の組合せを含むがこれらに限定されない任意のタイプのものであってよい。プロセッサ1004は、レベル1キャッシュ1010およびレベル2キャッシュ1012など、1または複数のレベルのキャッシングと、プロセッサコア1014と、レジスタ1016とを含むことができる。例示的プロセッサコア1014には、算術論理ユニット(ALU)、浮動小数点演算ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはこれらの任意の組合せが含まれ得る。プロセッサ1004は、以下に限定されないがFPGA、パッチ可能ASIC、およびCPLDなどのプログラマブル論理回路を含んでよい。プロセッサ1004は、図1のCMP100と同様であってもよい。例示的メモリコントローラ1018はプロセッサ1004と共に使用されてよいが、いくつかの実装形態では、メモリコントローラ1018はプロセッサ1004の内部部品であってもよい。
所望の構成に応じて、システムメモリ1006は、揮発性メモリ(たとえば、RAM)、不揮発性メモリ(たとえば、ROM、フラッシュメモリなど)、またはこれらの任意の組合せを含むがこれらに限定されない任意のタイプのものであってよい。システムメモリ1006は、オペレーティングシステム1020、1つまたは複数のアプリケーション1022、およびプログラムデータ1024を含むことができる。プログラムデータ1024は、コンピューティングデバイス1000の動作に有用であり得るデータを含むことができる。いくつかの実施形態では、アプリケーション1022は、オペレーティングシステム1020上でプログラムデータ1024を用いて動作して、ネットワークオンチップ(NoC)においてデータを送信する方法をコンピューティングデバイス1000に実施させるように構成されてよい。図10では、この説明された基本構成1002が、内側の破線内のコンポーネントによって示されている。
コンピューティングデバイス1000は、基本構成1002と任意の必要なデバイスおよびインターフェースとの間の通信を容易にするために、追加の特徴または機能性および追加のインターフェースを有してもよい。たとえば、バス/インターフェースコントローラ1090が、ストレージインターフェースバス1094を介して基本構成1002と1つまたは複数のデータ記憶装置1092との間の通信を容易にするために使用されてもよい。データ記憶装置1092は、取外し式記憶装置1096、非取外し式記憶装置1098、またはこれらの組合せであってよい。取外し式記憶装置および非取外し式記憶装置の例として、いくつかの例を挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブがある。例示的コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性の取外し式および非取外し式の媒体が含まれ得る。
システムメモリ1006、取外し式記憶装置1096、および非取外し式記憶装置1098は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体としては、以下に限定されないが、所望の情報を記憶するために使用でき、またコンピュータデバイス1000によってアクセスできる、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは任意の他の媒体が含まれる。任意のそのようなコンピュータ記憶媒体が、コンピュータデバイス1000の一部であってもよい。
コンピュータデバイス1000は、様々なインターフェースデバイス(たとえば、出力装置1042、周辺インターフェース1044、および通信装置1046)からバス/インターフェースコントローラ1090を介して基本構成1002への通信を容易にするためのインターフェースバス1040を含むこともできる。例示的出力装置1042は、1つまたは複数のA/Vポート1052を介してディスプレイまたはスピーカなどの様々な外部装置へ通信するように構成され得るグラフィック処理ユニット1048およびオーディオ処理ユニット1050を含む。例示的周辺インターフェース1044は、1つまたは複数のI/Oポート1058を介して入力装置(たとえば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など)または他の周辺装置(たとえば、プリンタ、スキャナなど)などの外部装置と通信するように構成され得るシリアルインターフェースコントローラ1054またはパラレルインターフェースコントローラ1056を含む。例示的通信デバイス1046は、1つまたは複数の通信ポート1064を通ってネットワーク通信リンクを介して1つまたは複数の他のコンピューティングデバイス1062との通信を容易にするように構成され得る、ネットワークコントローラ1060を含み、ネットワーク通信リンクとしては、限定するものではないが、光ファイバ、ロングタームエボリューション(LTE)、3G、WiMaxなどがある。
ネットワーク通信リンクは、通信媒体の一例とすることができる。通信媒体は、一般に、搬送波や他の移送機構などの変調データ信号におけるコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって具現化されてよく、任意の情報送達媒体を含み得る。「変調データ信号」とは、その特性の1つまたは複数が信号において情報を符号化するように設定または変更されている信号とすることができる。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、および音響、無線周波数(RF)、マイクロ波、赤外線(IR)、他の無線媒体などの無線媒体が含まれ得る。本明細書で使用されるコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含み得る。
コンピューティングデバイス1000は、携帯電話、携帯情報端末(PDA)、パーソナルメディアプレーヤーデバイス、無線ウェブウォッチデバイス、パーソナルハンドセットデバイス、アプリケーション固有デバイス、上記機能のいずれかを含むハイブリッドデバイスなど、スモールフォームファクタ携帯(またはモバイル)電子デバイスの一部として実装されてもよい。コンピューティングデバイス1000は、ラップトップコンピュータ構成と非ラップトップコンピュータ構成の両方を含むパーソナルコンピュータとして実装されてもよい。
システムの実施形態でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができる様々な達成手段があり(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組合せを選択することができる。
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組合せにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組合せとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(たとえば、位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されているとみなすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」とみなすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。様々な単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む発明に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、通常、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、通常、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、通常、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
様々な態様および実施形態が本明細書に開示されているが、他の態様および実施形態も当業者には明らかであろう。本明細書に開示された様々な態様および実施形態は、例示を目的としており、限定を意図するものでなく、真の範囲および趣旨は、添付の特許請求の範囲によって示される。

Claims (28)

  1. ネットワークオンチップ(NoC)であって、
    ソースルータを含む前記NoCのソースノードと、
    前記ソースノードに通信可能に結合された前記NoCの宛先ノードと
    を備え、前記宛先ノードは、宛先ルータおよびネットワークデバイスを含み、前記宛先ルータは、
    前記ネットワークデバイスからメモリ要求を受信し、
    前記メモリ要求の反対方向のポートを伴う回線交換接続を事前予約し、
    接続設定メッセージおよび前記メモリ要求を前記ソースノードに送信する
    ように構成され、前記接続設定メッセージは、前記事前予約した回線交換接続のために前記ソースルータを事前予約するのに有効なコマンドを含む、ネットワークオンチップ。
  2. 前記ソースノードと前記宛先ノードとの間にある中間ノードをさらに備え、前記中間ノードは、中間ルータを含み、前記接続設定メッセージに含まれたコマンドはさらに、前記回線交換接続のために前記中間ルータを事前予約するのに有効である、請求項1に記載のNoC。
  3. 前記宛先ルータは、前記接続設定メッセージおよび前記メモリ要求を単一メッセージとして送信するようにさらに構成される、請求項1に記載のNoC。
  4. 前記ネットワークデバイスは、前記宛先ルータと同じ場所に配置されたプロセッサコアを含む、請求項1に記載のNoC。
  5. 前記宛先ルータは、特定の時間期間にわたって前記宛先ルータの事前予約を追跡するように構成された予約レジスタを含む、請求項1に記載のNoC。
  6. 前記特定の時間期間は、クロックサイクルに関して追跡され、前記予約レジスタは、複数のビットを含み、前記複数のビットの各々が、前記NoCに関連付けられた特定のセットのクロックサイクルについて前記宛先ルータの事前予約を追跡する、請求項5に記載のNoC。
  7. 前記特定の時間期間は、前記NoCのノードと前記NoCに結合されたメモリコントローラとの間で生じ得る最長のラウンドトリップ通信時間に少なくとも部分的に基づく、請求項5に記載のNoC。
  8. 前記特定の時間期間は、前記NoCのノードと前記NoCに結合されたメモリコントローラとの間で生じ得る最短のラウンドトリップ通信時間に少なくとも部分的に基づく、請求項5に記載のNoC。
  9. 前記接続設定メッセージは、前記宛先ルータを使用するための要求された時間期間を示す事前予約ウィンドウを含む、請求項1に記載のNoC。
  10. ネットワークオンチップ(NoC)であって、
    ソースルータを含む前記NoCのソースノードと、
    前記ソースノードに通信可能に結合された前記NoCの宛先ノードと
    を備え、前記宛先ノードは、宛先ルータおよびネットワークデバイスを含み、前記宛先ルータは、
    前記ネットワークデバイスからメモリ要求を受信し、
    前記メモリ要求の反対方向のポートを伴う回線交換接続を事前予約し、
    接続設定メッセージおよび前記メモリ要求を前記ソースノードに送信する
    ように構成され、前記接続設定メッセージは、前記事前予約した回線交換接続のために前記ソースルータを事前予約するのに有効なコマンドと、前記宛先ルータを使用するための要求された時間期間を示す事前予約ウィンドウとを含み、
    前記事前予約ウィンドウは、前記ソースノードにおけるデータの使用可能性の不確実性と、前記宛先ノードから前記ソースノードへの前記接続設定メッセージの送信時間の不確実性との少なくとも一方に少なくとも部分的に基づく安全マージンを含む、ネットワークオンチップ。
  11. ネットワークオンチップ(NoC)であって、
    ソースルータを含む前記NoCのソースノードと、
    前記ソースノードに通信可能に結合された前記NoCの宛先ノードと
    を備え、前記宛先ノードは、宛先ルータおよびネットワークデバイスを含み、前記宛先ルータは、
    前記ネットワークデバイスからメモリ要求を受信し、
    前記メモリ要求の反対方向のポートを伴う回線交換接続を事前予約し、
    接続設定メッセージおよび前記メモリ要求を前記ソースノードに送信する
    ように構成され、前記接続設定メッセージは、前記事前予約した回線交換接続のために前記ソースルータを事前予約するのに有効なコマンドと、前記宛先ルータを使用するための要求された時間期間を示す事前予約ウィンドウとを含み、
    前記宛先ルータは、前記ソースノードにおけるデータの使用可能推定時間に少なくとも部分的に基づいて、前記事前予約ウィンドウを計算するようにさらに構成される、ネットワークオンチップ。
  12. ネットワークオンチップ(NoC)であって、
    ソースルータを含む前記NoCのソースノードと、
    前記ソースノードに通信可能に結合された前記NoCの宛先ノードと
    を備え、前記宛先ノードは、宛先ルータおよびネットワークデバイスを含み、前記宛先ルータは、
    前記ネットワークデバイスからメモリ要求を受信し、
    前記メモリ要求の反対方向のポートを伴う回線交換接続を事前予約し、
    接続設定メッセージおよび前記メモリ要求を前記ソースノードに送信する
    ように構成され、前記接続設定メッセージは、前記事前予約した回線交換接続のために前記ソースルータを事前予約するのに有効なコマンドと、前記宛先ルータを使用するための要求された時間期間を示す事前予約ウィンドウとを含み、
    前記ソースノードと前記宛先ノードとの間の回線交換経路に沿って配置された前記NoCの中間ノードをさらに備え、前記中間ノードは、中間ルータを含み、前記接続設定メッセージは、前記中間ルータを事前予約するように構成された追加コマンドを含み、前記宛先ルータは、前記ソースノードにおけるデータの使用可能推定時間に少なくとも部分的に基づいて、前記中間ルータについての事前予約ウィンドウを決定するようにさらに構成される、ネットワークオンチップ。
  13. 前記事前予約ウィンドウは、前記メモリ要求に関連付けられたデータの量と、前記ソースノードと前記宛先ノードの間の送信時間とのうちの1または複数に基づく、請求項9に記載のNoC。
  14. ネットワークオンチップ(NoC)であって、前記NoCのノードに配設されたルータを備え、前記ルータは、
    前記NoCの宛先ノードから前記NoCのソースノード宛へ発信された接続設定メッセージであって、回線交換接続において前記ルータを使用するための要求された時間フレームを示す予約ウィンドウを含む、接続設定メッセージを受信し、
    前記要求された時間フレーム中の前記回線交換接続における使用のための前記ルータの使用可能性を判断し、
    前記要求された時間フレーム中に前記ルータが使用可能であるとの判断に応じて、前記接続設定メッセージの反対方向のポートを伴う前記回線交換接続を予約し、前記接続設定メッセージを送信する
    ように構成される、ネットワークオンチップ。
  15. 前記ルータは、前記接続設定メッセージおよび、前記接続設定メッセージに応じた確認応答メッセージを、前記NoCのソースノードに送信するようにさらに構成され、前記ソースノードは、前記接続設定メッセージ内で参照される、請求項14に記載のNoC。
  16. 前記ルータは、前記接続設定メッセージに応じた確認応答メッセージを前記接続設定メッセージに追加し、前記確認応答メッセージおよび前記接続設定メッセージを単一メッセージとして送信するようにさらに構成される、請求項14に記載のNoC。
  17. 前記接続設定メッセージは、前記宛先ノードに配設されたネットワークデバイスからのメモリ要求をさらに含む、請求項14に記載のNoC。
  18. 前記回線交換接続は、前記接続設定メッセージ内で参照される前記NoCのソースノードと前記宛先ノードとの間の回線交換接続を含み、前記回線交換接続は、前記NoCにおいて前記接続設定メッセージが辿るのと同じルートであるが反対方向にルートを辿る、請求項14に記載のNoC。
  19. 前記要求された時間フレームは、前記接続設定メッセージ内で参照される前記NoCのソースノードにおけるデータの使用可能推定時間に基づく、請求項14に記載のNoC。
  20. 前記ルータは、特定の時間期間にわたって前記ルータの事前予約を追跡するように構成された予約レジスタを介して、前記ルータの使用可能性を判断するようにさらに構成される、請求項14に記載のNoC。
  21. 回線交換およびパケット交換を行うように構成されたその他のルータをさらに備える、請求項14に記載のNoC。
  22. ネットワークオンチップ(NoC)においてデータを送信する方法であって、
    前記NoCの宛先ノードが、前記NoCのネットワークデバイスからメモリ要求を受信すること、ならびに
    前記宛先ノードが、接続設定メッセージおよび前記メモリ要求を前記NoCにおけるソースノードに送信することを含み、
    前記接続設定メッセージは、宛先ルータおよびソースルータを、前記ソースノードから前記宛先ルータへの回線交換接続のために事前予約するコマンドを含む、方法。
  23. 前記接続設定メッセージと共に、前記接続設定メッセージに応じた確認応答メッセージを前記NoCの前記ソースノードに送信することをさらに含む、請求項22に記載の方法。
  24. 前記接続設定メッセージは、前記ソースノードから前記宛先ルータへの前記回線交換接続のために、前記ソースノードと宛先ノードとの間の回線交換経路に沿って配置された前記NoCの中間ノードを事前予約するコマンドをさらに含む、請求項23に記載の方法。
  25. 前記接続設定メッセージを送信することは、前記ネットワークデバイスと同じ場所に配置された前記宛先ルータを事前予約するコマンドを含む前記接続設定メッセージを送信することを含む、請求項22に記載の方法。
  26. 前記宛先ルータを事前予約するための前記コマンドは、第1の時間期間に対応し、前記ソースルータを事前予約するための前記コマンドは、第2の時間期間に対応し、前記第1の時間期間は、前記第2の時間期間の一部分のみと重なる、請求項22に記載の方法。
  27. 前記宛先ルータを事前予約するための前記コマンドは、第1の時間期間に対応し、前記ソースルータを事前予約するための前記コマンドは、第2の時間期間に対応し、前記第1の時間期間は、前記第2の時間期間とは重ならない、請求項22に記載の方法。
  28. コンピュータ実行可能命令を具現化する非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータによる実行に応答して、請求項22に記載の方法を前記コンピュータに実施させる、非一時的コンピュータ可読記憶媒体。
JP2016541943A 2013-09-12 2013-09-12 オンチップネットワークにおける回線交換事前予約 Expired - Fee Related JP6247398B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/059335 WO2015038120A1 (en) 2013-09-12 2013-09-12 Circuit switch pre-reservation in an on-chip network

Publications (2)

Publication Number Publication Date
JP2016531529A JP2016531529A (ja) 2016-10-06
JP6247398B2 true JP6247398B2 (ja) 2017-12-13

Family

ID=52666074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016541943A Expired - Fee Related JP6247398B2 (ja) 2013-09-12 2013-09-12 オンチップネットワークにおける回線交換事前予約

Country Status (4)

Country Link
US (1) US10445287B2 (ja)
JP (1) JP6247398B2 (ja)
CN (1) CN105706403B (ja)
WO (1) WO2015038120A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015060820A1 (en) * 2013-10-22 2015-04-30 Hewlett-Packard Development Company, L.P. Hybrid circuit-packet switch
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9762474B2 (en) * 2014-04-07 2017-09-12 Netspeed Systems Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US9602587B2 (en) * 2014-06-26 2017-03-21 Altera Corporation Multiple plane network-on-chip with master/slave inter-relationships
US20180074959A1 (en) * 2014-07-22 2018-03-15 Hewlett Packard Enterprise Development Lp Node-based computing devices with virtual circuits
US9742630B2 (en) * 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US11321263B2 (en) * 2014-12-17 2022-05-03 Intel Corporation High bandwidth core to network-on-chip interface
US9787571B2 (en) * 2014-12-22 2017-10-10 Intel Corporation Link delay based routing apparatus for a network-on-chip
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
US10116557B2 (en) * 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US9577634B2 (en) * 2015-06-25 2017-02-21 Intel Corporation Scalable crossbar apparatus and method for arranging crossbar circuits
US10528509B2 (en) 2016-01-29 2020-01-07 Hewlett Packard Enterprise Development Lp Expansion bus devices comprising retimer switches
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
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
CN108512735B (zh) * 2017-02-25 2021-04-20 华为技术有限公司 一种数据传输方法和装置
US10587534B2 (en) 2017-04-04 2020-03-10 Gray Research LLC Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
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
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)
US10750433B1 (en) * 2018-09-14 2020-08-18 Amazon Technologies, Inc. Gateway selection in a mesh network
US11264361B2 (en) 2019-06-05 2022-03-01 Invensas Corporation Network on layer enabled architectures
CN112506850B (zh) * 2020-11-27 2024-05-14 北京大学 一种片上及片间互连网络

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3372797B2 (ja) * 1996-12-06 2003-02-04 日本電気株式会社 帯域予約制御方式
US6854059B2 (en) 2000-06-07 2005-02-08 Conexant Systems, Inc. Method and apparatus for medium access control in powerline communication network systems
US7570952B2 (en) 2001-09-10 2009-08-04 Telefonaktiebolaget Lm Ericsson (Publ) Advance resource allocations for association state transitions for wireless LAN system
WO2005067234A1 (en) * 2004-01-08 2005-07-21 Agency For Science, Technology & Research A control device and a method for controlling an optical data transmission, and a shared storage network system
US8014401B2 (en) * 2005-06-03 2011-09-06 Koninklijke Philips Electronics N.V. Electronic device and method of communication resource allocation
EP1744497B1 (en) 2005-07-14 2008-01-23 Interuniversitair Microelektronica Centrum Vzw Method for managing a plurality of virtual links shared on a communication line and network implementing said method
EP2041933A2 (en) * 2006-07-05 2009-04-01 Nxp B.V. Electronic device, system on chip and method for monitoring data traffic
US8284766B2 (en) * 2007-12-28 2012-10-09 Intel Corporation Multi-core processor and method of communicating across a die
US20090245257A1 (en) * 2008-04-01 2009-10-01 International Business Machines Corporation Network On Chip
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US8549249B1 (en) 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8593960B2 (en) * 2010-06-30 2013-11-26 Intel Corporation Providing a bufferless transport method for multi-dimensional mesh topology
EP2405362B1 (en) * 2010-07-08 2013-01-16 STMicroelectronics (Grenoble 2) SAS A connection arrangement
CN102368739A (zh) * 2011-12-02 2012-03-07 南京大学 面向包-电路交换片上路由器的广播机制路由算法
US9036482B2 (en) * 2011-12-08 2015-05-19 The Hong Kong University Of Science And Technology Bufferless nonblocking networks on chip
US8804689B2 (en) * 2012-05-16 2014-08-12 Qualcommm Incorporated Methods and apparatus for peer-to-peer communications resource scheduling
US9166930B2 (en) * 2012-10-30 2015-10-20 Empire Technology Development Llc Waved time multiplexing
US9652425B2 (en) * 2013-06-28 2017-05-16 Intel Corporation Method, apparatus and system for a source-synchronous circuit-switched network on a chip (NOC)

Also Published As

Publication number Publication date
US20150331831A1 (en) 2015-11-19
US10445287B2 (en) 2019-10-15
CN105706403A (zh) 2016-06-22
CN105706403B (zh) 2019-01-08
JP2016531529A (ja) 2016-10-06
WO2015038120A1 (en) 2015-03-19

Similar Documents

Publication Publication Date Title
JP6247398B2 (ja) オンチップネットワークにおける回線交換事前予約
US10564703B2 (en) Systems and methods for facilitating low power on a network-on-chip
Kumar et al. Token flow control
US7472299B2 (en) Low power arbiters in interconnection routers
US9294403B2 (en) Mechanism to control resource utilization with adaptive routing
KR101830762B1 (ko) 전체적 대기 시간이 최소화되고 인터커넥트 비용이 감소하도록 노드들을 상호연결하는 soc ip 코어 자동 연결 방법
Yoon et al. Virtual channels vs. multiple physical networks: a comparative analysis
Krishna et al. Smart: Single-cycle multihop traversals over a shared network on chip
Abousamra et al. Deja vu switching for multiplane nocs
US10210117B2 (en) Computing architecture with peripherals
US20150188829A1 (en) Priority-based routing
US20170060204A1 (en) Automatic generation of power management sequence in a soc or noc
EP3014818A1 (en) A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc)
JP2011517903A (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
US20160164689A1 (en) Reduced wake up delay for on-die routers
Teimouri et al. Power and performance efficient partial circuits in packet-switched networks-on-chip
US9766681B2 (en) Operations related to a retransmission buffer
Oh et al. Traffic steering between a low-latency unswitched TL ring and a high-throughput switched on-chip interconnect
Xu et al. Improving power and performance of on-chip network through virtual channel sharing and power gating
US8675444B2 (en) Synchronized command throttling for multi-channel duty-cycle based memory power management
Kline Jr et al. Mscs: Multi-hop segmented circuit switching
Huang et al. VBON: Toward efficient on-chip networks via hierarchical virtual bus
US9336172B2 (en) Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration
Mishkin et al. Temporal codes in on-chip interconnects
Chen Hardware-software co-design and optimization for point-to-point network-on-chip based many-core systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170512

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171116

R150 Certificate of patent or registration of utility model

Ref document number: 6247398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees