JP6383793B2 - 可変な数のコア群、入出力(i/o)装置、ディレクトリ構造、及びコヒーレンシポイントを有する、キャッシュコヒーレントnoc(ネットワークオンチップ) - Google Patents

可変な数のコア群、入出力(i/o)装置、ディレクトリ構造、及びコヒーレンシポイントを有する、キャッシュコヒーレントnoc(ネットワークオンチップ) Download PDF

Info

Publication number
JP6383793B2
JP6383793B2 JP2016543578A JP2016543578A JP6383793B2 JP 6383793 B2 JP6383793 B2 JP 6383793B2 JP 2016543578 A JP2016543578 A JP 2016543578A JP 2016543578 A JP2016543578 A JP 2016543578A JP 6383793 B2 JP6383793 B2 JP 6383793B2
Authority
JP
Japan
Prior art keywords
noc
network
chip
directory
cache coherency
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.)
Active
Application number
JP2016543578A
Other languages
English (en)
Other versions
JP2017502418A (ja
JP2017502418A5 (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 JP2017502418A publication Critical patent/JP2017502418A/ja
Publication of JP2017502418A5 publication Critical patent/JP2017502418A5/ja
Application granted granted Critical
Publication of JP6383793B2 publication Critical patent/JP6383793B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

概してキャッシュコヒーレント相互接続を対象とした、より具体的には、キャッシュコヒーレントネットワークオンチップ(NoC)の生成を対象とした、方法及び実施例に関する。
統合のレベル、システムの複雑化のレベル、及びトランジスタ配置の縮小化のレベルが増しているため、チップ上の構成要素の数が急速に増大している。複雑なシステムオンチップ(SoCs :System-on-Chips)は、種々の構成要素(例えば、プロセッサコア群、DSP群、ハードウェアアクセレータ群、メモリ、入出力(I/O))を含んでいる可能性がある。また、チップマルチプルプロセッサ(CMPs :Chip Multi-Processors)は、多数の同質なプロセッサコア群、メモリ、及び入出力サブシステム(I/O subsystems)を含んでいる可能性がある。SoCシステム及びCMPシステムの双方において、オンチップ相互接続は、種々の構成要素間におけるハイパフォーマンスなコミュニケーションを提供する役割を担っている。従来のバスの拡張性制限及びクロスバーに基づく相互接続の拡張性制限のため、ネットワークオンチップ(NoC:Network-on-Chip)が、チップ上の多数の構成要素を相互接続するためのパラダイム(枠組み)として浮かび上がっている。ネットワークオンチップは、ポイント間の(ポイントツーポイントの)物理リンク群を用いて互いに相互接続された複数のルーティングノードによって作られた、グローバルにシェアされた通信インフラである。
メッセージは送信元によって投入され、中間ノード群及び物理リンク群を亘って、その送信元ノードから送信先(目的地)に向けて転送される。そして、その送信先ノードは、そのメッセージを取り出して目的地へ提供する。以下では、「構成要素(components)」、「ブロック(blocks)」、「ホスト(hosts)」、又は「コア(cores)」は、NoCを用いて相互接続された種々のシステム構成要素に言及するために、ほとんど同じ意味で用いられる。また、「ルータ(routers)」及び「ノード(nodes)」もほとんど同じ意味で用いられる。マルチプルに相互接続された構成要素を持ったそのシステムは、それ自体、「マルチプルコアシステム」として言及されるが、これに限定されるものではなく一般性を失うものではない。
複数のルータがシステムネットワークを作るために互いに接続可能なトポロジがいくつかある。関連技術におけるトポロジの例としては、図1Aに示されるような双方向リング(Bi-directional rings)、図1Bに示されるような2-D(2次元)メッシュ、及び、図1Cに示されるようなトーラス(Torus)である。メッシュ及びトーラスは、2.5-D(2.5次元)組織又は3-D(3.5次元)組織にも拡張することができる。図1Dは、3DメッシュNoCを示しており、ここでは、3×3の2-Dメッシュが3層互いに重なっている。そのNoCのルータは、2つまで追加的なポートを有しており、そのうちの1つは上側のレイヤのルータと繋がっており、もう1つは下側のレイヤのルータと繋がっている。その例において真ん中のレイヤのルータ111では両ポートが用いられており、1つがそのトップレイヤのルータと繋がっており、もう1つがそのボトムレイヤのルータと繋がっている。ルータ110及びルータ112は、それぞれ、そのボトムメッシュレイヤ及びトップメッシュレイヤに在るので、上側に向いたポート113及び下側に向いたポート114がそれぞれ繋がった状態になっている。
パケットは、メッセージを搬送する単位であり、種々の構成要素間における相互通信に用いられる。ルーティングは、経路(path)を特定することを含む。この経路(path)は、パケットが送信元から送信先へ送信される、ネットワークのルータ群及び物理リンク群のセットから構成される。構成要素は、1つ又は複数のルータの1つ又は複数のポートと繋がっており、各ポートはユニークな識別子(ID)を有している。パケットは、中間のルータがそのパケットを送信先構成要素まで転送するために用いられる、送信先ルータのID及びポートのIDを含んでいる。
例えば、ルーティング技術には、確定的ルーティング(deterministic routing)が含まれ、この確定的ルーティングは、すべてのパケットに対して、AからBまでの同じ経路を選択する。このルーティングの形態は、ネットワークの状態とは関係なく、下層のネットワークに存在する可能性のあるパスダイバーシティによる、負荷均衡を図らない。しかしながら、そのような確定的ルーティングは、ハードウェアで実行されてもよく、パケットの順序を維持して、ネットワークレベルのデッドロックを回避してもよい。最短パスのルーティングは、送信元から送信先までのホップ数を低減できるので、待ち時間(latency:レイテンシ)を最小化することができる。このため、その最短パスは、また、2つの構成要素間における通信のための、最も電力のかからない経路である可能性がある。次元順ルーティング(Dimension-order routing)は、2-Dメッシュネットワーク、2.5-Dメッシュネットワーク、及び3-Dメッシュネットワークにおける確定的最短パスルーティングの一形態である。このルーティングスキームにおいては、メッセージが最終目的地に届くまで特定の手順によって各座標に沿ってルーティングされる。例えば、3-Dメッシュネットワークでは、最初に、メッセージは、送信先ルータのX座標と同じX座標を持つルータに到達するまで、X座標に沿って転送される。次に、メッセージは、向きを変えてY座標にそって転送され、最後に、向きを変えて、Z座標に沿って最終的な送信先ルータに到達するまで移動する。次元順ルーティングは、方向転換を最小とし且つ経路を最短とするルーティングである可能性がある。
図2Aは、2次元メッシュにおけるXYルーティングの一例を図示している。より具体的には、図2Aは、ノード34からノード00までのXYルーティングを図示している。図2Aに示した例では、各構成要素は、1つのルータの1つのポートにだけ繋がっている。パケットは、まず、ノード04に到達するまでx軸に沿って転送される。ここで、ノード04のx座標は、送信先ノードであるノード00のx座標と同じである。次に、そのパケットは、送信先ノードであるノード00に到達するまで、y軸に沿って転送される。
1つ又は複数のルータ又は1つ又は複数のリンクが欠落している、他のメッシュトポロジでは、特定の送信元ノードと送信先ノードとの間では次元順ルーティングを実行できない可能性があり、代わりの経路を選択する必要がある可能性がある。その代替パスは、最短ではないもしれないし、又は、方向転換を最小にしないかもしれない。
ソースルーティング(Source routing)及びテーブルを用いたルーティングは、NoCにおける、ルーティングに関する他のオプションである。適応的ルーティング(Adaptive routing)は、ネットワークの状態に基づいて、ネットワーク上の2点間の経路をダイナミックに変更することができる。ルーティングのこの形態は、分析や実装が複雑である。
NoC相互接続は、複数の物理的なネットワークを含んでいてもよい。各物理的ネットワークの全体に亘って、複数の仮想的ネットワークが存在していてもよい。ここで、異なるメッセージ種別は、異なる仮想的ネットワークを介して送信される。この場合、各物理リンク又は物理的チャネルには、複数の仮想的チャネルが存在する。各仮想的チャネルは、両終点においてバッファを有していてもよい。任意のクロックサイクルにおいて、1つの仮想的チャネルだけがその物理的チャネルにおいてデータを送信することができる。
NoC相互接続は、ワームホールルーティング(wormhole routing)を採用することができる。ここで、大きなメッセージ又はパケットは、フリット(フロー制御単位(flow control digits)とも呼ばれる)として知られる小さなピースに分割される。1番目のフリットは、ヘッダフリットである。このヘッダフリットは、このパケットのルートについての情報及びキーメッセージレベルの情報を保持しており、ペイロードデータが付加されている。また、このヘッダフリットは、このメッセージに関連付けられ且つ後に続くすべてのフリットのルーティング挙動をセットアップする。任意に、1つ又は複数のボディフリットがヘッダフリットに続いてもよく、この1つ又は複数のフリットは残りのデータペイロードを含んでいる。最後のフリットは、テールフリットであり、このテールフリットは、最後のペイロードを含むと共に、ブックキーピングとして機能してそのメッセージのためのコネクションを閉じる。ワームホールフロー制御では、仮想的チャネルがしばしば実装される。
物理的チャネル群は、仮想的チャネル群(VCs:virtual channels)と呼ばれる独立した論理的チャネル群にスライスされた、時間である。仮想的チャネル群は、複数の独立パスを提供してパケットを搬送する。仮想的チャネル群は、物理的チャネル上で時間分割多重されている。仮想的チャネルは、ステート(state)を保持している。このステートは、1つのチャネルにおいて1つのパケットのフリット群をハンドリングするために必要とされる。少なくとも、このステートは、ルート上の次のホップに向けた、現在のノードの出力チャネル、及び、その仮想的チャネルの状態(例えば、アイドル状態、リソースの待ち状態、又はアクティブ状態)を特定する。また、その仮想的チャネルは、現在のノードにおいてバッファされているフリット群に対するポインタ群、及び、次のノードにおいて利用可能なフリットバッファの数を含んでいてもよい。
「ワームホール」という表現は、複数のチャネルに亘る複数のメッセージが送信される、道を意味する。次のルータの出力ポートが短くて、ヘッダフリットにおける受信データが、メッセージ全体の到着前に、翻訳され得る。これにより、ルータは、ヘッダフリットが到着すると即座にルートをセットアップすることができ、残りの会話を回避することができる。メッセージはフリット毎に送信されるので、メッセージは異なる複数のルータにおいて経路に沿ったフリットバッファ群を占有する可能性があり、これが蠕虫のようなイメージを作っている。
種々の終点間のトラヒック、並びに、種々のメッセージのために用いられる、ルータ及び物理的ネットワークに基づいて、NoC相互接続の異なる物理的チャネル群は、異なるレベルの負荷及び輻輳を経験する可能性がある。NoC相互接続における種々の物理的チャネル群の容量は、チャネル幅(物理的なワイヤの数)、及び、動作に用いられるクロック周波数によって、決定される。NoCにおける種々のチャネル群は、異なるクロック周波数で動作してもよく、また、チャネルにおけるバンド幅(帯域幅)に関する要求に基づいて、異なる幅であってもよい。チャネルにおけるバンド幅に関する要求は、そのチャネルを横断するフロー群及びそれらのバンド幅値によって決まる。種々のNoCチャネルを横断するフロー群は、そのフロー群によって取られるルート群によって影響を受ける。メッシュNoC又はトーラスNoCでは、送信元ノードと送信先ノードとの任意のペア間の長さが等しいか又はホップ数が等しいルートパスが複数存在する可能性がある。例えば、図2Bでは、ノード34とノード00との間の標準XYルートの他に、YXルート203又は送信元から送信先までに1回よりも多い方向転換が為されるマルチターンルート202のような、利用可能な追加のルートが存在する。
種々のトラヒック渋滞について静的に割り当てられた複数のルートを持ったNoCにおいて、種々のフロー群についてルートを知的に選択することによって、種々のチャネル群の負荷をコントロールすることができる。多数のトラヒックフロー及び十分なパスダイバーシティが存在する場合、すべてのNoCチャネル群における負荷が略均一に釣り合うようにルートを選択することができ、これにより、ボトルネックの1つのポイントを回避することができる。ルートが決まると、複数のNoCチャネル幅を、そのチャネル群におけるフロー群のバンド幅に関する要求に基づいて決めることができる。あいにく、時間的な輻輳又は配線の輻輳のような物理的なハードウェアデザインの制限のため、複数のチャネル幅は任意の大きさとすることはできない。最大チャネル幅についての制限があってもよく、これにより、いかなる1つのNoCチャネルの最大バンド幅に対しても制限がかかる。
さらに、メッセージが短い場合、より広い物理的チャネル群がより速いバンド幅を実現するのに役立たない可能性がある。例えば、パケットが64ビット幅を持つ1フリットから成るパケットである場合、チャネルをどんなに広くしたところで、そのチャネルを通るすべてのパケットが同様ならば、そのチャネルは、データサイクル毎に64ビットしか運ぶことができない。このように、チャネル幅は、NoCにおけるメッセージサイズによっても制限される。最大NoCチャネル幅に対するこれらの制限のため、ルート群の均衡を保っていても、バンド幅が十分でない可能性がある。
上記のバンド幅に関する懸案に対処するために、複数の並列な物理的NoCが用いられてもよい。各NoCは、レイヤと呼んでもよく、これにより、マルチレイヤのNoC構造が作られる。ホストは、NoCレイヤにメッセージを投入し、このメッセージは、そのNoCレイヤ上で目的地に向けて送られる。ここで、そのメッセージは、NoCレイヤから目的地であるホストへ届けられる。このように、各レイヤは、互いにほとんど独立して動作し、レイヤ間の相互接続は、ホストからNoCレイヤへの投入時間及びNoCレイヤからホストへの放出時間の間だけ生じてもよい。図3Aは、2つのレイヤのNoCを図示している。ここで、2つのNoCレイヤは、互いに左右に隣り合わせで示されており、そのホスト群は、左右に複製されたNoCに接続されている。1つのホストは、この例では、2つのルータと繋がっている。第1のレイヤのルータはR1として示されており、第2レイヤのルータはR2として示されている。この例では、マルチレイヤNoCは、3DのNoCと異なっている。例えば、マルチプルレイヤは、単一のシリコンダイ上に存在し、同じシリコンダイ上のホスト間の通信に対する高いバンド幅要求に合うようになっている。メッセージは、1つのレイヤからもう1つのレイヤへは行かない。明確化のために、この出願では、垂直方向に互いに重なるように図示する3DのNoCと区別するために、マルチレイヤNoCを左右に横並びで図示する。
図3Bでは、各レイヤのルータR1及びルータR2にそれぞれ接続された、ホストが図示されている。各ルータは、そのレイヤ内で方向性のあるポート301を用いて他のルータと接続されると共に、投入及び放出ポート302を用いてホストと接続されている。ブリッジロジック303は、ホストと2つのNoCレイヤとの間に存在していてもよい。ここで、ブリッジロジック303は、メッセージが出て行くNoCレイヤを決定し、また、ホストからそのNoCレイヤへメッセージを送る。また、ブリッジロジック303は、2つのNoCレイヤから入力される複数のメッセージを仲裁して多重し、その複数のメッセージをホストへ届ける。
マルチレイヤNoCにおいて、必要なレイヤの数は、多くの因子(factors)に基づいてもよい。その多くの因子(factors)は、例えば、システムにおけるすべてのトラヒックフロー群の統合バンド幅に関する要求、種々のフロー群によって用いられるルータ群、メッセージサイズ分配、最大チャネル幅等である。NoC相互接続におけるNoCレイヤの数がデザインで決まると、異なるメッセージ群及びトラヒックフロー群は、異なるNoCレイヤ群を介して転送されてもよい。さらに、異なるレイヤがルータ、チャネル、及び接続の数について異なるトポロジを有するように、NoC相互接続をデザインしてもよい。レイヤが異なる複数のチャネルは、そのチャネルを通るフロー及びバンド幅要求に基づいて、異なるバンド幅を有していてもよい。
NoC相互接続において、トラヒックプロファイルが統一されておらず且つある程度の不均一が存在している場合(例えば、或るホスト群は、他のホスト群よりもより頻繁に互いに遣り取りする場合)、その相互接続のパフォーマンスは、主に、NoCトポロジと、種々のホストが互いにそのトポロジ上でどこに配置されており且つその種々のホストにどのルータが接続されているかと、に基づいている可能性がある。例えば、2つのホストが互いに頻繁に遣り取りしより速いバンド幅を必要とする場合、その1つのホストは、互いに隣接して配設されるべきである。このようにすることで、この通信のレイテンシは低減し、これにより、この通信の速いバンド幅が設定される、ルータノード及びリンクの数が減るだけでなく、全平均レイテンシが減る。すべてのホスト群は2次元平面NoCトポロジ内に互いにオーバーラップすることなく配置されているので、2つのホストを近づけると、或る他の2つのホストは遠ざかることになる。このように、適切なトレードオフが為される必要があり、また、ホスト群は、すべてのホスト同士のペア毎のバンド幅及びレイテンシについての要求を、全体のコスト及びパフォーマンスのメトリクス(指標)が最適化されるように、分析した後に、配設される必要がある。そのコスト及びパフォーマンスメトリクスは、ルータポップの数における、通信しているすべてのホスト間の平均的な構造上レイテンシ、又は、ホストの全ペアのバンド幅及び各ペアのホップ数における距離の総和、又は、それらの組み合わせを含んでいてもよい。この最適化の問題は、非決定性多項式時間困難(NP-hard:non-deterministic polynomial-time hard)として知られており、発見的アプローチ(heuristic based approaches)がしばしば用いられる。システムにおける複数のホストは、互いに種々の形及びサイズを取り得る。そのシステムは、2次元平面NoCトポロジに複数のホストを配置すること、複数のホストをスペースをほとんど空けずに詰め込むこと、複数のホストがオーバーラップすることを回避することに、付加的な複雑さがある。
NoCを作る際に、例えば、米国特許出願13/965,668(Attorney Docket: 120126-NET021)で説明されているように、NoCにおけるエージェント間のキャッシュコヒーレンシーを維持する必要がある。ここで、米国特許出願13/965,668の全体が本明細書に参考として組み込まれる。キャッシュコヒーレンシーを維持するための関連技術の方法は、キャッシュコヒーレントデータを維持するためのいくつかの方法を含んでいる。関連技術の方法の一例では、データの1つのユニバーサルコピーが維持され、エージェント群は、そのユニバーサルコピーのみを参照する。関連技術の他の一例では、エージェント群は、自身のキャッシュを含んでいてもよく、これにより、自身のデータコピーを維持することができる。エージェントが自身のキャッシュを有していても有していなくてもよい他の異種システムでは、上記の関連技術の方法の両方が、採用され、且つ、MESI(Modified Exclusive Shared Invalid)、MSI、MOESI(Modified Owned Exclusive Shared Invalid)等の種々のキャッシュコヒーレンシープロトコルを用いることによって管理されてもよい。
キャッシュコヒーレンシープロトコルについてのステート(状態)遷移を管理するために、関連技術の方法は、キャッシュリクエストのコヒーレントステートを参照する。コヒーレントステートの参照に基づいて、存在するキャッシュ群に対して、それらのステートを変化させるために遷移コマンドが発行されてもよい。コヒーレントステートの参照は、NoCに関連するすべてのエージェントに対するブロードキャスト、又は、現在のステートを追跡してキャッシュ群のステートを管理するために用いることができるディレクトリ構造を必要とする。
関連技術のシステムにおいて、キャッシュコヒーレンシーを維持するためのハードウェアベースの解決策が用いられている。しかしながら、そのようなハードウェアベースの解決策によれば、典型的には、構造の固定化を余儀なくされ、固定化されたシステムとしてデザインされる。例えば、知られた数及び種類のエージェント及び知られた入出力コントローラ(input/output (I/O) controllers)を有する固定化されたシステムでは、そのシステムを管理するための、特別にデザインされた、キャッシュコヒーレンシーインタフェースNoCが設けられてもよい。しかしながら、異なる複数のエージェントを必要とする場合(例えば、より多い又はより少ないエージェントを必要とする場合、内部キャッシュを用いることができるか又は用いることができない、異なる複数のエージェントを採用する場合等)、特別にデザインされた、キャッシュコヒーレンシーインタフェースNoCは、その異なる複数のエージェントに十分に対処できない可能性がある。それゆえ、新しいシステムのユーザは、他のハードウェアによる解決策(例えば、次世代のキャッシュコヒーレンシーインタフェースNoC)が提供されるまで、待たなければならない。このため、任意のハードウェアシステム内のキャッシュコヒーレンシーを管理するための、一般的なハードウェアによる解決策が求められている。
本出願は、仕様によるNoC相互接続構造をデザインすることを対象としている。このNoC相互接続構造は、これに限定されるものではないが、NoCエージェントインタフェースの数及びキャッシュコヒーレンシーコントローラの数を含む、実装パラメータを示すことができる。NoCエージェントインタフェース及びキャッシュコヒーレンシーコントローラの柔軟性のある識別子によって、仕様からNoCを構成する際に、任意の数のエージェントがNoCと関連付けられることが可能となる。
本出願の態様は、方法を含んでいてもよい。この方法は、NoC仕様に基づいて、1つ又は複数のNoCエージェントインタフェースを構成し、さらに、NoCエージェント群の前記仕様に基づいて、1つ又は複数のキャッシュコヒーレンシーコントローラを構成することを含む。追加的な態様では、キャッシュコヒーレンスは、ディレクトリによって管理されてもよく、ここで、1つ又は複数のキャッシュコヒーレンシーコントローラは、前記ディレクトリの一部分と関連付けられていてもよい。
本出願の態様は、コンピュータで読み取り可能な記録媒体を含んでいてもよい。この記録媒体は、プロセスを実行するための指示群を保持している。この指示群は、他のパラメータの中でとりわけ、1つ又は複数のエージェント、ハードウェア要素群、バンド幅要求群、レイテンシ要求群に関連する情報についての、NoC仕様を処理すること、及び、NoCの1つ又は複数のハードウェア要素をキャッシュコヒーレンシーコントローラ群又はNoCエージェントインタフェース群として決定するために、そのような処理された情報を用いること、を含んでいてもよい。その指示群は、プロトコル群、バス幅、及び仕様に基づき必要とされる他のパラメータ群を用いた、NoCエージェントインタフェース群及び/又はキャッシュコヒーレンシーコントローラ群の設定をさらに含んでいてもよい。
本出願の態様は、方法を含んでいてもよい。この方法は、異種の複数のルータ又は異種のメッシュ配置、リング配置、若しくはトーラス配置によって相互接続された、複数のコアを含む、ネットワークオンチップ(NoC)設定に関し、他のパラメータの中で、1つ又は複数のエージェント、ハードウェア要素群、バンド幅要求群、レイテンシ要求群に関連する情報についての、NoC仕様を処理すること、及び、NoCの1つ又は複数のハードウェア要素をキャッシュコヒーレンシーコントローラ群又はNoCエージェントインタフェース群として決定するために、そのような処理された情報を用いること、を含んでいてもよい。この方法は、さらに、仕様に基づいて必要とされる、プロトコル群、バス幅、及び他のパラメータを用いた、NoCエージェントインタフェース群及び/又はキャッシュコヒーレンシーコントローラ群の設定を含んでいてもよい。
本出願の態様は、システムを含んでいてもよい。このシステムは、NoC仕様処理モジュール、NoCエージェントインタフェース設定モジュール、及び、キャッシュコヒーレンシーコントローラ設定モジュールを含んでいる。NoC仕様処理モジュールは、他の属性の中でとりわけ、NoCエージェント群、ハードウェア要素群、バンド幅要求群、レイテンシ要求群のうちの1つ又は組み合わせに関連する情報を回収するため又は処理するための、NoC仕様を処理するように構成されていてもよい。NoCエージェントインタフェース設定モジュールは、NoCエージェント群に基づいてハードウェア要素群のリストから1つ又は複数のNoCエージェントインタフェースを決定するように、且つ、他のパラメータ群の中でとりわけ、プロトコル群、バス幅のような1つのパラメータ又は組み合わせパラメータに基づいて、NoCエージェントインタフェース群を設定するように、構成されていてもよい。これに対して、キャッシュコヒーレンシーコントローラ設定モジュールは、ハードウェア要素群のリストから、キャッシュコヒーレンシーコントローラ群を決定するように、且つ、これに限定されるものではないが、仕様に基づいて必要とされる、プロトコル群、バス幅、及び他のパラメータを含む、1つ又は複数のパラメータに基づいて、決定されたキャッシュコヒーレンシーコントローラ群を設定するように、構成されてもよい。
双方向リング型のNoCトポロジの一例を示す図である。 2次元メッシュ型のNoCトポロジの一例を示す図である。 2次元トーラス型のNoCトポロジの一例を示す図である。 3次元メッシュ型のNoCトポロジの一例を示す図である。 関連技術の二次元メッシュにおけるXYルーティングの一例を示す図である。 送信元ノードと送信先ノードとの間の3つの異なる経路を示す図である。 関連技術の2層NoC相互接続の一例を示す図である。 関連技術の、ホストと複数のNoCレイヤとの間のブリッジロジックを示す図である。 実施例の設定変更可能なNoCを示す図である。 実施例の、対応キャッシュコヒーレンシーコントローラに基づいて複数の部分に分割されたディレクトリの一例を示す図である。 マルチ符号化を含むディレクトリの一例を示す図である。 実施例の、ディレクトリ内のセット・アソシエイティブのエントリの一例を示す図である。 実施例の、NoCの構築及び設定についてのフロー図である。 実施例を実装可能な、コンピュータ/サーバのブロック図である。
以下の詳細な説明において、本出願の図面及び実施例について詳しく説明する。図面間で重複する要素の参照番号及び記載は明確化のために省略する。詳細な説明を通して用いられる表現は例示であり、これに限定されるものではない。例えば、「自動(automatic)」という表現は、本出願の実装を実施する技術における通常スキルの予期される履行に基づいて、全自動実装、又は、実装の特定態様に対するユーザ又は管理者のコントロールを含む半自動実装を含んでいてもよい。
ここで説明される例示の実装は、設定変更可能なネットワークオンチップ(configurable NoC)である。この設定変更可能なネットワークオンチップは、例えば、図1−3のトポロジに図示されるように、設定変更可能なハードウェア要素(例えば、ホスト)の配列を含んでいる。提案するNoC相互接続構造は、仕様によって構成することができる。このNoC相互接続構造は、これに限定されるものではないが、NoCエージェントインタフェースの数及びキャッシュコヒーレンシーコントローラの数を含む、NoCの実装パラメータを示すことができる。これにより、仕様からNoCを構成する際に、柔軟な数又は任意の数のエージェントがNoCと関連付けられることが可能となる。1つの態様において、ここで開示するNoCは、統合プロセッサ(IP:integrated processor)ブロック群、ルータ群、メモリ通信コントローラ群、及び、ネットワークインタフェースコントローラを含むことができる。このNoCでは、各IPブロックは、メモリ通信コントローラ及びネットワークインタフェースコントローラを介してルータに適応されている。他の態様では、メモリ通信コントローラは、さらに、1つ又は複数のキャッシュコヒーレンシーコントローラを含んでいてもよい。各キャッシュコヒーレンシーコントローラは、IPブロックとメモリとの間の通信を制御するように構成されてもよい。また、各ネットワークインタフェースコントローラは、ルータ群を介した、中間IPブロック通信を制御してもよい。ここで、メモリ通信コントローラは、メモリアクセス指示を実行するように、且つ、メモリアクセス指示によってアドレス指定されたキャッシュラインのステートを決定するように構成されてもよい。さらに、キャッシュラインのステートは、共有状態(shared)、独占状態(exclusive)、又は無効状態(invalid)のうちの1つとすることができる。
バンド幅要求及びレイテンシ要求を満たすために、ハードウェア要素群は、拡張性を提供できるように、或る配列で並べられてもよい。1つ又は複数のハードウェア要素は、仕様におけるエージェントの数及びバンド幅要求群に基づいて、キャッシュコヒーレンシーコントローラ群として構成されてもよい。NoCによって用いられるキャッシュコヒーレンシーコントローラ群の数は、仕様に基づいて柔軟性をもって決定されてもよい。
図4は、実施例の設定変更可能なNoC400を図示している。この実施例では、ハードウェア要素群は、仕様に基づいて、NoCエージェントインタフェース402−1,402−2,402−3,・・・,402−n、及び、キャッシュコヒーレンシーコントローラ404−1,404−2,404−3,・・・,404−nとして構成されてもよい。以下では、NoCエージェントインタフェース402−1,402−2,402−3,・・・,402−nを、纏めて、NoCエージェントインタフェース群402と呼び、キャッシュコヒーレンシーコントローラ404−1,404−2,404−3,・・・,404−nを、纏めて、キャッシュコヒーレンシーコントローラ群404と呼ぶ。また、この実施例では、NoCの入力/出力チャネル群は、対応するハードウェア要素と関連付けられていてもよい。NoCエージェントインタフェース群402及び/又はキャッシュコヒーレンシーコントローラ群404としてのハードウェア要素群の構成は、NoCを作るために用いられる仕様に基づいていてもよい。ハードウェア要素群は、NoCエージェントインタフェース群402及びキャッシュコヒーレンシーコントローラ群404のいずれか一方として構成され得るので、これにより、NoCは、そのハードウェアシステムにおいて用いられる、任意の数及び任意のタイプのエージェント群と関連付けられていてもよい。NoCエージェントインタフェース群402は、1つ又は複数のハードウェアエージェントと関連付けられていてもよく、また、そのハードウェアエージェントとの通信を促進するように柔軟性をもって構成されてもよい。これに対して、キャッシュコヒーレンシーコントローラ群404は、ハードウェアエージェント間のキャッシュコヒーレンシーを維持するように構成されてもよく、また、各NoCエージェントインタフェースと関連付けられた、任意の数及び任意のタイプのエージェント群に対するキャッシュコヒーレンシーを維持するように柔軟性をもって構成されてもよい。
NoCエージェントインタフェース群402として構成されたハードウェア要素群に関して、NoCエージェントインタフェース群402は、任意のエージェントとの通信を促進することができる必要がある。実施例では、1つ又は複数のNoCエージェントインタフェースは、MESI、MSI、及びMOESI等の複数のプロトコルをサポートするように構成されてもよい。このようなサポートは、当該技術におけるスキルとして知られているプロトコル群のすべての機能を組み入れたユニバーサルプロトコルに基づいていてもよい。ユニバーサルプロトコルの機能群に対する複数の改良のサブセットは、仕様において特定された各エージェントに対して用いられてもよい。例えば、MOESIをベースとするユニバーサルプロトコルを用いて構成されたNoCエージェントインタフェース402は、MESI及びMSIの機能を扱うように構成されてもよい。また、そのNoCエージェントインタフェース402は、MESI及びMSIの機能を扱うために、MOESIプロトコルのサブセットを活用できるように構成されてもよい。NoCエージェントインタフェース群402は、異なるバス幅群をサポートして、仕様からの対応するエージェント群の要求群(バンド幅、レイテンシ等)を満たすようにするために、実装されてもよい。
1つの態様では、NoCのハードウェア要素群は、活用されるエージェントの数及びタイプに基づいて、もし必要ならば、さらに所望の実装に基づいて、キャッシュコヒーレンシーコントローラ群404としてさらに構成されてもよい。このため、NoCは、ディレクトリを管理すると共に関連付けられたエージェント群に対するロジックを制御するために、1つ又は複数のキャッシュコヒーレンシーコントローラ404を含んでいてもよい。キャッシュコヒーレンシーコントローラ群404の数及びこれらの構成は、仕様におけるエージェント群の数に基づいてもよく、また、コヒーレントバンド幅要求、レイテンシ要求、及びスループット要求に基づいてもよい。
共通ディレクトリがキャッシュの管理に用いられると、共通ディレクトリの参照回数が増えるにつれて、レイテンシの問題が起こる可能性がある。このため、本出願の実施例では、キャッシュコヒーレンシーコントローラ404として用いられる各ハードウェア要素は、さらに、アドレスについて分割した、ディレクトリの一部を管理するように、構成されてもよい。ディレクトリは、NoCエージェント群のキャッシュコヒーレンスを管理するように構成されてもよく、ここで、各キャッシュコヒーレンシーコントローラは、ディレクトリの一部と関連付けられてもよい。そのようなディレクトリ群は、ブロードキャストベースのディレクトリ群であってもよく、一態様では、ハマープロトコル(Hammer protocol)のようなプロトコルに従ってもよい。図5は、例示のディレクトリ500を図示しており、ディレクトリ500は、実施例に従って、対応するキャッシュコヒーレンシーコントローラに基づいて、複数の部分に分割されている。ディレクトリ500は、ステート(例えば、読み出しのみ(read only)、読み出し/書き込み可能(read/write)等)、アドレスタグ、及び、ビットベクトルについてのエントリ群を含んでいてもよい。ここで、アドレスタグは、データを保持しているキャッシュ内のアドレスを示し、ビットベクトルは、データを保持するキャッシュを有するエージェントを示す。一態様では、ビットベクトルは、仕様に基づいて柔軟性をもって構成されてもよい。例えば、NoCが64個のエージェントと関連付けられている場合、ビットベクトルは、64ビット長のベクトルを有していてもよく、各ビットは、対応するエージェントにデータが保持されているか否かを示す。アドレスに基づく分割(Address slicing)を含む例では、NoCの1つのキャッシュコヒーレンシーコントローラは、アドレスブロック「000」を管理するように構成されてもよく、他のキャッシュコヒーレンシーコントローラは、アドレスブロック「001」,「010」,「011」を管理するように構成されてもよく、さらに他のキャッシュコヒーレンシーコントローラは、アドレスブロック「100」,「101」等を管理するように構成されてもよい。このため、キャッシュコヒーレンシーコントローラ群に対する、ディレクトリのアドレスに基づく分割は、柔軟なNoCの見積りを可能とし、エージェントの任意の数に合わせることができる。一態様では、キャッシュコヒーレンシーコントローラは、ディレクトリから、キャッシュラインのステートを取り出して、要求しているメモリ通信コントローラに対して、そのキャッシュラインのステートを返してもよい。他の態様では、ディレクトリ500は、各キャッシュラインについて、キャッシュラインインデックス、及びキャッシュラインを識別するキャッシュラインタグを含んでいてもよい。
他の実施例では、ディレクトリ500は、2次元以上で見積もられてもよい。そして、マルチ符号化(multiple encodings)を、実装の際にディレクトリにおいて用いることができる。例えば、ディレクトリ500は、ビットベクトルを含む第1フォーマット又は対応するエントリを示すポインタを含む第2フォーマットについての、エントリ群を含んでいてもよい。図6Aは、マルチ符号化を含んでいるディレクトリの一例を図示している。ビットベクトルを集約できるケースでは、例えばビットベクトルが重複している場合に、ビットベクトルの代わりに、ポインタを用いることができる。マルチ符号化をディレクトリに実装することにより、ディレクトリの領域(area)を減らすことができる。これにより、NoCに関連するエージェントの数が増えたときに拡張性をより良好にすることができる。図6Bのテーブル650に図示されるように、ポインタは、重複するビットベクトルのエントリを指すことができ、これにより、アドレスとビットベクトルとがセット・アソシエイティブ方式で関連付けられている。これにより、ポインタによって参照されるインデックスは、関連付けられたアドレスを見つけ出すために、ディレクトリ内の対応アドレスを参照することができる。アドレスが見つけられると、そのビットベクトルに到達するまで、ディレクトリは、隣接したエントリ群を調べられてもよい。これにより、この実装は、符号化及び次元をミックスした、任意の二次元ディレクトリを可能とする。このため、ディレクトリのサイズ及び形態は、セット・アソシエイティブに適応するために、任意に調整されてもよい。
ディレクトリのセット・アソシエイティブを含む実施例では、さらに、カッコウハッシュ(cuckoo hash)による組織化が為されてもよい。例えば、図6Bに図示されたようなエントリ群は、異なるインデックスメカニズムを用いて、別のハッシュテーブルに分離されてもよく、この場合、図6Aのポインタは、そのハッシュインデックスを参照することができる。エントリをポップしハッシュテーブルに再キューイングすることによって衝突を解決するために、カッコウハッシュを採用することができる。
図7は、実施例に従ったNoCの構築及び設定についてのフロー図700を図示している。そのフローは、エージェント群、バンド幅要求群、及びレイテンシ要求群等に関する情報についての、仕様が処理されるときに、ステップ701で始まる。ステップ702で、NoCトポロジが決定され、NoCの1つ又は複数のハードウェア要素が、キャッシュコヒーレンシーコントローラ群又はNoCエージェントインタフェース群として構成されてもよい。ステップ703で、NoCエージェントインタフェース群及び/又はキャッシュコヒーレンシーコントローラ群は、プロトコル群、バス幅、及び、仕様に基づき必要となる他のパラメータを用いて、設定される。また、ステップ703は、さらに、NoCエージェント群の仕様に基づく、キャッシュコヒーレンシーコントローラ群の設定を含んでいてもよい。
図8は、実施例が実装され得る、例示のコンピュータシステム800を図示している。コンピュータシステム800は、サーバ805と、入力/出力(I/O)ユニット835と、記憶装置(ストレージ)860と、この技術のスキルの1つとして知られている1つ又は複数のユニットを実行することができるプロセッサ810とを含んでいる。ここで用いられる「コンピュータ読み取り可能媒体(computer-readable medium)」という表現は、プロセッサ810が実行する指示をプロセッサ810へ与えることができる如何なる媒体を意味していてもよい。例えば、「コンピュータ読み取り可能媒体」は、コンピュータ読み取り可能記録媒体(computer readable storage mediums)の形態又はコンピュータ読み取り可能信号媒体(computer readable signal mediums)の形態であってもよい。コンピュータ読み取り可能記録媒体は、これに限定されるものではないが、光学ディスク、磁気ディスク、読み取り専用メモリ(read-only memories)、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、又は、電子情報の記録に適した有形媒体の他の形態である。コンピュータ読み取り可能信号媒体は、キャリア波のような媒体を含んでいてもよい。入力/出力(I/O)ユニットは、ユーザインタフェース840及びオペレータインタフェース845からの入力を処理する。ユーザインタフェース840及びオペレータインタフェース845は、キーボード、マウス、タッチデバイス、又は音声入力装置(verbal command)のような入力装置であってもよい。
また、サーバ805は、外部記憶装置(外部ストレージ)850に接続されていてもよい。外部記憶装置850は、ポータブルハードドライブ、光学媒体(CD又はDVD)、ディスク媒体、又は、コンピュータが実行コードを読み取ることができる他の媒体のような、リムーバブル記憶媒体(removable storage)を含んでいてもよい。また、サーバ805は、ユーザからの要求追加情報(request additional information)だけでなく、ユーザに対して出力データ及び他の情報を出力するディスプレイのような、出力デバイス855と接続されていてもよい。サーバ805から、ユーザインタフェース840、オペレータインタフェース845、外部記憶装置850、及び出力デバイス855への接続は、無線プロトコル(wireless protocols)を介した接続、又は、物理的な通信媒体(physical transmission media)を介した接続であってもよい。無線プロトコルは、例えば、802.11標準規格(802.11 standards)、Bluetooth(登録商標)、又は、セルラープロトコル(cellular protocols)である。物理的な通信媒体は、例えば、ケーブル又は繊維光学(fiber optics)である。このため、出力デバイス855は、ユーザと関わるための入力デバイスとして動作してもよい。
プロセッサ810は、1つ又は複数のモジュールを実行してもよい。システム800は、NoC仕様処理モジュール811、NoCエージェントインタフェース設定モジュール812、及び、キャッシュコヒーレンシーコントローラ設定モジュール813を含んでいてもよい。NoC仕様処理モジュール811は、他の属性の中でとりわけ、NoCエージェント群、ハードウェア要素群、バンド幅要求群、レイテンシ要求群のうちの1つ又は組み合わせに関連する情報を回収するため又は処理するための、NoC仕様を処理するように構成されていてもよい。NoCエージェントインタフェース設定モジュール812は、NoCエージェント群に基づいてハードウェア要素群のリストから1つ又は複数のNoCエージェントインタフェースを決定するように、且つ、他のパラメータ群の中でとりわけ、プロトコル群、バス幅のような1つのパラメータ又は組み合わせパラメータに基づいて、NoCエージェントインタフェース群を設定するように、構成されていてもよい。
キャッシュコヒーレンシーコントローラ設定モジュール813は、ハードウェア要素群のリストから、キャッシュコヒーレンシーコントローラ群を決定するように、且つ、これに限定されるものではないが、仕様に基づいて必要とされる、プロトコル群、バス幅、及び他のパラメータを含む、1つ又は複数のパラメータに基づいて、決定されたキャッシュコヒーレンシーコントローラ群を設定するように、構成されてもよい。一態様では、キャッシュコヒーレンシーコントローラ群及びNoCエージェントインタフェース群が準拠したプロトコル群は、他の類似のプロトコルの中でとりわけ、MESI(Modified Exclusive Shared Invalid)、MSI、MOESI(Modified Owned Exclusive Shared Invalid)を含んでいる。モジュール813は、さらに、キャッシュコヒーレンシーコントローラ群を管理するディレクトリを含み且つ処理するように構成されてもよい。ここで、各キャッシュコヒーレンシーコントローラは、ディレクトリの一部と関連付けられている。
実施例では、コンピュータシステム800は、クラウドのようなコンピュータ環境において実装されてもよい。そのようなコンピュータ環境は、コンピュータシステム800をそのまま含んでいてもよいし、コンピュータシステム800が1つ又は複数の他のデバイスにネットワークによって繋がれており且つ1つ又は複数のストレージデバイス群と繋がれている状態でコンピュータシステム800を含んでいてもよい。そのようなデバイス群は、移動可能なユーザイクイプメント(UE)(例えば、スマートフォン、車又は他の機械に搭載された装置、人間や動物によって持ち運ばれる装置等)、携帯装置(例えば、タブレット、ノートパソコン、ラップトップコンピュータ、パーソナルコンピュータ、ポータブルテレビ、ラジオ等)、及び、固定状態で使用される装置(例えば、デスクトップコンピュータ、他のコンピュータ、インフォメーションセンター、1つ又は複数のプロセッサが搭載され及び/又は繋がれたテレビ、ラジオ等)を含んでいてもよい。
これらのアルゴリズム的な記述及び象徴は、データ処理技術における当業者が他の当業者にイノベーションの本質を伝えるために用いる手段である。アルゴリズムは、所望の最終ステート又は最終結果へ導く工程群のシリーズである。その実施例では、実行される工程群は、具体的な結果を得るために、具体的な数の物理的な操作群を必要とする。
さらに、本出願の他の実施は、その仕様の考慮及びここに記述した実施例の実施から、当該技術の当業者にとって明らかであろう。記述してきた実施例の種々の態様及び/又は構成要素は、単独で又は任意の組み合わせで用いることができる。以上の仕様及び実施例は例示であり、本出願の真の範囲及び思想は以下の請求の範囲によって示されている。

Claims (14)

  1. 設定変更可能なネットワークオンチップ(NoC)であって、
    仕様に基づいて前記ネットワークオンチップのハードウェア要素群から構成された、前記仕様に基づく数の1つ又は複数のシステムエージェントインタフェースと、
    システムエージェント群の前記仕様に基づいて前記ネットワークオンチップの前記ハードウェア要素群から構成された、前記仕様に基づく他の数の1つ又は複数のキャッシュコヒーレンシーコントローラと、
    を具備する、ネットワークオンチップ。
  2. 請求項1記載のネットワークオンチップにおいて、
    前記システムエージェント群のキャッシュコヒーレンスを管理するように構成されたディレクトリをさらに具備し、
    前記1つ又は複数のキャッシュコヒーレンシーコントローラは、それぞれ、前記ディレクトリの一部分と関連付けられている、
    ネットワークオンチップ。
  3. 請求項2記載のネットワークオンチップにおいて、
    前記ディレクトリは、複数のアドレスを具備し、
    各アドレスは、各システムエージェントがプライベートキャッシュを有している前記システムエージェント群の1つ又は複数のキャッシュにおけるアドレスと関連付けられており、
    前記ディレクトリは、前記システムエージェントの各プライベートキャッシュにおける前記アドレスの有効性を示す、複数のビットベクトルをさらに具備する、
    ネットワークオンチップ。
  4. 請求項3記載のネットワークオンチップにおいて、
    カッコウハッシュによって前記ディレクトリを管理するように構成された、ハッシュテーブルをさらに具備する、
    ネットワークオンチップ。
  5. 請求項1記載のネットワークオンチップにおいて、
    前記1つ又は複数のシステムエージェントインタフェースは、複数のプロトコルをサポートするように構成されており、
    各システムエージェントインタフェースは、前記仕様に基づいて、前記複数のプロトコルのうちの少なくとも1つをサポートするように構成されている、
    ネットワークオンチップ。
  6. 請求項1記載のネットワークオンチップにおいて、
    前記1つ又は複数のキャッシュコヒーレンシーコントローラは、フレキシブルプロトコルを利用するように構成されており、
    各キャッシュコヒーレンシーコントローラは、前記フレキシブルプロトコルのサブセット群を利用するように構成され、各システムエージェントインタフェースと関連付けられた少なくとも1つのプロトコルに対する伝達を容易にする、
    ネットワークオンチップ。
  7. 請求項1記載のネットワークオンチップにおいて、
    前記1つ又は複数のシステムエージェントインタフェースは、異なる複数のバス幅をサポートするように構成されており、
    前記1つ又は複数のシステムエージェントインタフェースの各バスのバス幅は、前記仕様に基づいて設定されている、
    ネットワークオンチップ。
  8. 設定変更可能なネットワークオンチップ(NoC)のための方法において、
    仕様に基づいて、1つ又は複数のNoCエージェントインタフェースを構成し、
    NoCエージェント群の前記仕様に基づいて、1つ又は複数のキャッシュコヒーレンシーコントローラを構成
    前記1つ又は複数のNoCエージェントインタフェースを構成することは、前記仕様に基づく数の、前記ネットワークオンチップのハードウェア要素群を、前記1つ又は複数のNoCエージェントインタフェースに構成することを含み、
    前記1つ又は複数のキャッシュコヒーレンシーコントローラを構成することは、前記仕様に基づく他の数の、前記ネットワークオンチップのハードウェア要素群を、前記1つ又は複数のキャッシュコヒーレンシーコントローラに構成することを含む、
    方法。
  9. 請求項8記載の方法において、
    ディレクトリを用いて、前記NoCエージェント群のキャッシュコヒーレンスを管理し、
    前記1つ又は複数のキャッシュコヒーレンシーコントローラは、それぞれ、前記ディレクトリの一部分と関連付けられている、
    方法。
  10. 請求項9記載の方法において、
    前記ディレクトリは、複数のアドレスを具備し、
    各アドレスは、各NoCエージェントがキャッシュを有している前記NoCエージェント群の1つ又は複数のキャッシュにおけるエントリに対応しており、
    前記ディレクトリは、前記1つ又は複数のキャッシュのそれぞれにおけるキャッシュの有効性を示す、複数のビットベクトルをさらに具備する、
    方法。
  11. 請求項10記載の方法において、
    ハッシュテーブルを用いたカッコウハッシュによって前記ディレクトリを管理する、
    方法。
  12. 請求項8記載の方法において、
    前記1つ又は複数のNoCエージェントインタフェースを、複数のプロトコルをサポートするように構成し、
    各NoCエージェントインタフェースを、前記仕様に基づいて、前記複数のプロトコルのうちの少なくとも1つをサポートするように構成する、
    方法。
  13. 請求項8記載の方法において、
    前記1つ又は複数のキャッシュコヒーレンシーコントローラを、フレキシブルプロトコルを利用するように構成し、
    各キャッシュコヒーレンシーコントローラを、前記フレキシブルプロトコルのサブセット群を利用するように構成して、各NoCエージェントインタフェースと関連付けられた少なくとも1つのプロトコルに対する伝達を容易にする、
    方法。
  14. 請求項8記載の方法において、
    前記1つ又は複数のNoCエージェントインタフェースを、異なる複数のバス幅をサポートするように構成し、
    前記1つ又は複数のNoCエージェントインタフェースの各バスのバス幅は、前記仕様に基づいて設定されている、
    方法。
JP2016543578A 2013-12-30 2014-10-16 可変な数のコア群、入出力(i/o)装置、ディレクトリ構造、及びコヒーレンシポイントを有する、キャッシュコヒーレントnoc(ネットワークオンチップ) Active JP6383793B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/144,321 US20150186277A1 (en) 2013-12-30 2013-12-30 Cache coherent noc with flexible number of cores, i/o devices, directory structure and coherency points
US14/144,321 2013-12-30
PCT/US2014/060886 WO2015102725A1 (en) 2013-12-30 2014-10-16 Cache coherent noc with flexible number of cores, i/o devices, directory structure and coherency points

Publications (3)

Publication Number Publication Date
JP2017502418A JP2017502418A (ja) 2017-01-19
JP2017502418A5 JP2017502418A5 (ja) 2017-11-16
JP6383793B2 true JP6383793B2 (ja) 2018-08-29

Family

ID=53481911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016543578A Active JP6383793B2 (ja) 2013-12-30 2014-10-16 可変な数のコア群、入出力(i/o)装置、ディレクトリ構造、及びコヒーレンシポイントを有する、キャッシュコヒーレントnoc(ネットワークオンチップ)

Country Status (4)

Country Link
US (1) US20150186277A1 (ja)
JP (1) JP6383793B2 (ja)
KR (1) KR20160102445A (ja)
WO (1) WO2015102725A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727464B2 (en) 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US9886382B2 (en) * 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
EP3171418A1 (en) * 2015-11-23 2017-05-24 Novaled GmbH Organic semiconductive layer comprising phosphine oxide compounds
US10255181B2 (en) * 2016-09-19 2019-04-09 Qualcomm Incorporated Dynamic input/output coherency
NO344681B1 (en) 2017-09-05 2020-03-02 Numascale As Coherent Node Controller
CN108694156B (zh) * 2018-04-16 2021-12-21 东南大学 一种基于缓存一致性行为的片上网络流量合成方法
JP7003021B2 (ja) * 2018-09-18 2022-01-20 株式会社東芝 ニューラルネットワーク装置
CN110086709B (zh) * 2019-03-22 2021-09-03 同济大学 针对超大规模片上网络容忍众故障的确定性路径路由方法
CN116578523B (zh) * 2023-07-12 2023-09-29 上海芯高峰微电子有限公司 片上网络系统及其控制方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US7051150B2 (en) * 2002-07-29 2006-05-23 Freescale Semiconductor, Inc. Scalable on chip network
US7546422B2 (en) * 2002-08-28 2009-06-09 Intel Corporation Method and apparatus for the synchronization of distributed caches
US7382154B2 (en) * 2005-10-03 2008-06-03 Honeywell International Inc. Reconfigurable network on a chip
US8010750B2 (en) * 2008-01-17 2011-08-30 International Business Machines Corporation Network on chip that maintains cache coherency with invalidate commands
US8131944B2 (en) * 2008-05-30 2012-03-06 Intel Corporation Using criticality information to route cache coherency communications
GB2491588A (en) * 2011-06-06 2012-12-12 St Microelectronics Res & Dev Multiprocessor with different cache coherency protocols between different parts
US20130073811A1 (en) * 2011-09-16 2013-03-21 Advanced Micro Devices, Inc. Region privatization in directory-based cache coherence
US9448940B2 (en) * 2011-10-28 2016-09-20 The Regents Of The University Of California Multiple core computer processor with globally-accessible local memories
US9274960B2 (en) * 2012-03-20 2016-03-01 Stefanos Kaxiras System and method for simplifying cache coherence using multiple write policies
US20130318308A1 (en) * 2012-05-24 2013-11-28 Sonics, Inc. Scalable cache coherence for a network on a chip
US9229803B2 (en) * 2012-12-19 2016-01-05 Advanced Micro Devices, Inc. Dirty cacheline duplication

Also Published As

Publication number Publication date
JP2017502418A (ja) 2017-01-19
US20150186277A1 (en) 2015-07-02
WO2015102725A1 (en) 2015-07-09
KR20160102445A (ko) 2016-08-30

Similar Documents

Publication Publication Date Title
JP6383793B2 (ja) 可変な数のコア群、入出力(i/o)装置、ディレクトリ構造、及びコヒーレンシポイントを有する、キャッシュコヒーレントnoc(ネットワークオンチップ)
US9477280B1 (en) Specification for automatic power management of network-on-chip and system-on-chip
US8667439B1 (en) Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost
US9571420B2 (en) Integrated NoC for performing data communication and NoC functions
US9563735B1 (en) Automatic pipelining of NoC channels to meet timing and/or performance
US9294354B2 (en) Using multiple traffic profiles to design a network on chip
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
US9244845B2 (en) System and method for improving snoop performance
US9473388B2 (en) Supporting multicast in NOC interconnect
US9529400B1 (en) Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US9253085B2 (en) Hierarchical asymmetric mesh with virtual routers
US20140211622A1 (en) Creating multiple noc layers for isolation or avoiding noc traffic congestion
US9185023B2 (en) Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US10313269B2 (en) System and method for network on chip construction through machine learning
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US20180183672A1 (en) System and method for grouping of network on chip (noc) elements
US20180219738A1 (en) Cost Management Against Requirements for the Generation of a NoC
US9762474B2 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US9864728B2 (en) Automatic generation of physically aware aggregation/distribution networks
US9774498B2 (en) Hierarchical asymmetric mesh with virtual routers
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
Ben Abdallah et al. Multicore SoC On-Chip Interconnection Networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180718

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180806

R150 Certificate of patent or registration of utility model

Ref document number: 6383793

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