IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザイリンクス インコーポレイテッドの特許一覧

特表2024-514888高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト
<>
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図1
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図2
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図3
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図4
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図5
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図6
  • 特表-高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-03
(54)【発明の名称】高帯域幅インターフェースのためのローカライズされたNOCスイッチングインターコネクト
(51)【国際特許分類】
   G06F 15/78 20060101AFI20240327BHJP
【FI】
G06F15/78 530
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023562959
(86)(22)【出願日】2022-03-08
(85)【翻訳文提出日】2023-10-13
(86)【国際出願番号】 US2022019366
(87)【国際公開番号】W WO2022220959
(87)【国際公開日】2022-10-20
(31)【優先権主張番号】17/232,207
(32)【優先日】2021-04-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】グプタ,アマン
(72)【発明者】
【氏名】アーマド,サグヒーア
(72)【発明者】
【氏名】アーベル,イガル
(72)【発明者】
【氏名】モーシェッド,アッバス
(72)【発明者】
【氏名】キム,ウン・ミ
【テーマコード(参考)】
5B062
【Fターム(参考)】
5B062AA01
5B062AA05
5B062FF05
(57)【要約】
本明細書における実施形態は、少なくとも2つのレベルのスイッチング、すなわち、スパースネットワーク及びノンブロッキングネットワークを有するNoCを含む集積回路について説明する。一実施形態では、ノンブロッキングネットワークは、NoC内のスパースネットワークと、HBM2/3又はDDR5などの追加の帯域幅を必要とするメモリシステムとの間のインターフェースを提供するローカライズされたインターコネクトである。ノンブロッキングネットワークによって提供される追加の利益を必要としないNoCに接続されたハードウェア要素は、単独でスパースネットワークに接続することができる。このようにして、NoCは、より低い帯域幅のハードウェア要素間の通信を提供するためのスパースネットワーク(スイッチング要素の密度がより低い)と、スパースネットワークとより高い帯域幅のハードウェア要素との間の通信を容易にするためのローカライズされたノンブロッキングネットワークとを提供する。
【特許請求の範囲】
【請求項1】
第1のハードウェアエンティティと、
第2のハードウェアエンティティと、
前記第1のハードウェアエンティティと前記第2のハードウェアエンティティとの間の接続性を提供するネットワークオンチップ(NoC)と、を備え、前記NoCは、
前記第1のハードウェアエンティティに結合されたスパースネットワークと、
前記第2のハードウェアエンティティに結合されたノンブロッキングネットワークと、を備え、前記ノンブロッキングネットワークは、前記スパースネットワークと前記第2のハードウェアエンティティとの間にローカライズされたインターフェースを提供する、
集積回路。
【請求項2】
第1のハードウェア回路と、
第2のハードウェア回路と、
前記第1のハードウェア回路と前記第2のハードウェア回路との間の接続性を提供するネットワークオンチップ(NoC)と、を備え、前記NoCは、
前記第1のハードウェア回路に結合されたスパースネットワークと、
前記第2のハードウェア回路に結合されたノンブロッキングネットワークと、を備え、前記ノンブロッキングネットワークは、前記スパースネットワークと前記第2のハードウェア回路との間にローカライズされたインターフェースを提供する、
集積回路。
【請求項3】
前記ノンブロッキングネットワークは、少なくとも1つのノンブロッキングクロスバーを備え、前記スパースネットワークは、ノンブロッキング通信を保証しない、請求項1又は2に記載の集積回路。
【請求項4】
前記ノンブロッキングネットワークは、各々が前記スパースネットワークに結合された複数のノンブロッキングクロスバーを備える、請求項3に記載の集積回路。
【請求項5】
前記スパースネットワークは、複数の相互接続されたスイッチを備え、前記少なくとも1つのノンブロッキングクロスバーは、前記複数の相互接続されたスイッチのうちの少なくとも2つに結合されている、請求項3に記載の集積回路。
【請求項6】
前記少なくとも1つのノンブロッキングクロスバーは、複数のエグレス論理ブロックに接続されており、前記複数のエグレス論理ブロックは、複数の高帯域幅メモリ(HBM)擬似チャネル(PC)に接続されている、請求項3に記載の集積回路。
【請求項7】
前記少なくとも1つのノンブロッキングクロスバーは、前記HBM PCの偶数チャネル及び奇数チャネルを表す2つの4×4クロスバーを含む8×8クロスバーであり、前記2つの4×4クロスバーの各入力は、それぞれの前記4×4クロスバーの各出力にアクセスすることができる、請求項6に記載の集積回路。
【請求項8】
前記少なくとも1つのノンブロッキングクロスバーは、複数のエグレス論理ブロックに接続されており、前記複数のエグレス論理ブロックは、同じダブルデータレート5(DDR5)メモリコントローラに接続されている、請求項3に記載の集積回路。
【請求項9】
前記少なくとも1つのノンブロッキングクロスバーは、4×2クロスバーであり、前記4×2クロスバーへの4つの前記入力の各々は、前記4×2クロスバーの2つの前記出力の各々にアクセスすることができる、請求項8に記載の集積回路。
【請求項10】
前記スパースネットワークは、前記ノンブロッキングネットワークが前記第2のハードウェア回路に提供する第2の接続よりも狭い帯域幅を有する、前記第1のハードウェア回路への第1の接続を提供する、請求項1又は2に記載の集積回路。
【請求項11】
スパースネットワークとノンブロッキングネットワークとを備えるNoCを提供することと、
前記NoC内の前記スパースネットワークにおいて第1のハードウェアエンティティからデータであって、前記データの意図された宛先が、前記ノンブロッキングネットワークに接続された第2のハードウェアエンティティである、データを受信することと、
前記スパースネットワークを介して前記データを前記ノンブロッキングネットワークに送信することと、
前記ノンブロッキングネットワークを介して前記データを前記第2のハードウェアエンティティに送信することと、を含み、前記ノンブロッキングネットワークは、前記スパースネットワークと前記第2のハードウェアエンティティとの間にローカライズされたインターフェースを提供する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施例は、概して、高帯域幅要素とインターフェースするために、ネットワークオンチップ(network on chip、NoC)内に、ローカライズされたノンブロッキングインターコネクトを追加することに関する。
【背景技術】
【0002】
システムオンチップ(system on chip、SoC)(例えば、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、プログラマブル論理デバイス(programmable logic device、PLD)、又は特定用途向け集積回路(application specific integrated circuit、ASIC))は、SoC内の論理ブロック(例えば、プログラマブル論理ブロック、プロセッサ、メモリなど)間でデータパケットをルーティングするために、ネットワークオンチップ(NoC)として知られるパケットネットワーク構造を含むことができる。
【0003】
NoCは、エグレス論理ブロック(例えば、二次回路)への読み出し又は書き込み要求を実行するイングレス論理ブロック(例えば、一次回路)を含むことができる。今日では、デバイスが、PCIe及び高速IOのような高帯域幅インターフェースをサポートし、高帯域幅メモリ(high bandwidth memory、HBM2/3)又はダブルデータレート5(double date rate、DDR5)ランダムアクセスメモリ(RAM)などの高帯域幅メモリシステムをサポートするので、オンチップデータ移動の要件が増加している。集積回路は、そのような高速トラフィックをルーティングするためにハード化されたNoCを使用することができる。しかしながら、典型的なNoC構造は、しばしば、高帯域幅を必要とするメモリを効率的かつ効果的に使用するために必要なスイッチ密度を提供しない。
【発明の概要】
【課題を解決するための手段】
【0004】
NoCにおいてスパースネットワーク及びノンブロッキングネットワークを動作させるための技法が説明される。一実施例は、第1のハードウェアエンティティと、第2のハードウェアエンティティと、第1のハードウェアエンティティと第2のハードウェアエンティティとの間の接続性を提供するNoCとを含む、集積回路である。NoCは、第1のハードウェアエンティティに結合されたスパースネットワークと、第2のハードウェアエンティティに結合されたノンブロッキングネットワークとを含み、ノンブロッキングネットワークは、スパースネットワークと第2のハードウェアエンティティとの間にローカライズされたインターフェースを提供する。
【0005】
本明細書で説明される一実施例は、第1のハードウェア回路と、第2のハードウェア回路と、第1のハードウェア回路と第2のハードウェア回路との間の接続性を提供するNoCとを含む、集積回路である。NoCは、第1のハードウェア回路に結合されたスパースネットワークと、第2のハードウェア回路に結合されたノンブロッキングネットワークとを含み、ノンブロッキングネットワークは、スパースネットワークと第2のハードウェア回路との間にローカライズされたインターフェースを提供する。
【0006】
本明細書で説明される一実施例は、スパースネットワークとノンブロッキングネットワークとを含むNoCを提供することと、NoC内のスパースネットワークにおいて第1のハードウェアエンティティからデータであって、データの意図された宛先が、ノンブロッキングネットワークに接続された第2のハードウェアエンティティである、データを受信することと、スパースネットワークを介してノンブロッキングネットワークにデータを送信することと、ノンブロッキングネットワークを介して第2のハードウェアエンティティにデータを送信することと、を含み、ノンブロッキングネットワークは、スパースネットワークと第2のハードウェアエンティティとの間にローカライズされたインターフェースを提供する、方法である。
【0007】
上記の特徴が詳細に理解され得るように、上記で簡潔に要約されたより具体的な説明が、例示的な実装形態を参照することによって行われ得、それらの実装形態のうちのいくつかが添付の図面に示される。しかしながら、添付の図面は、典型的な例示の実装形態のみを示しており、したがって、その範囲を限定するものと見なされるべきではないことに留意されたい。
【図面の簡単な説明】
【0008】
図1】一実施例による、スパースネットワークとノンブロッキングネットワークとを含むNoCを有する集積回路のブロック図である。
図2】実施例による、HBMのためのローカライズされたインターコネクトを含むNoCを有するICのブロック図である。
図3】一実施例による、図2に図示されたクロスバーのブロック図である。
図4】一実施例による、図3に図示されたクロスバーのブロック図である。
図5】一実施例による、DDR5のためのローカライズされたインターコネクトを含むNoCを有するICのブロック図である。
図6】一実施例による、図5のクロスバーのブロック図である。
図7】一実施例による、NoC内でデータを送信するための方法700のフロー図である。
【発明を実施するための形態】
【0009】
理解を容易にするために、可能な場合には、図面に共通する同一の要素を示すために同一の参照番号が使用されている。一例の要素は、他の例に有益に組み込まれ得ることが企図される。
【0010】
様々な特徴が、図面を参照して以下に記載される。図面は縮尺どおりに描かれている場合もあるし、描かれていない場合もあり、同様の構造又は機能の要素は図面全体を通して同様の参照番号によって表されていることに留意されたい。図面は、特徴の説明を容易にすることのみを意図していることに留意されたい。それらは、明細書の網羅的な説明として、又は特許請求の範囲に対する限定として意図されていない。加えて、図示された例は、示された全ての態様又は利点を有する必要はない。特定の実施例に関連して説明される態様又は利点は、必ずしもその実施例に限定されず、そのように例解されていない場合、又はそのように明示的に説明されていない場合であっても、任意の他の実施例において実施することができる。
【0011】
本明細書における実施形態は、少なくとも2つのレベルのスイッチング、すなわち、スパースネットワーク及びノンブロッキングネットワークを有するNoCを含む集積回路(例えば、SoC)について説明する。一実施形態では、ノンブロッキングネットワークは、NoC内のスパースネットワークと、HBM2/3又はDDR5などの追加の帯域幅を必要とするメモリシステムとの間のインターフェースを提供するローカライズされたインターコネクトである。ノンブロッキングネットワークによって提供される追加の利益を必要としないNoCに接続されたハードウェア要素は、単独でスパースネットワークに接続することができる。このようにして、NoCは、より低い帯域幅のハードウェア要素間の通信を提供するためのスパースネットワーク(スイッチング要素の密度がより低い)と、スパースネットワークとより高い帯域幅のハードウェア要素との間の通信を容易にするためのローカライズされたノンブロッキングネットワークとを提供する。
【0012】
図1は、一実施例による、スパースネットワーク125とノンブロッキングネットワーク130とを含むNoC120を有する集積回路100のブロック図である。一実施形態では、IC100は、ASIC内にハード化された回路のみを含む。別の実施形態では、IC100(例えば、SoC)は、ハード化された論理とプログラマブル論理との混合を含む。それにもかかわらず、NoC120は、IC100内のそのフットプリントが低減されるように、プログラマブル回路ではなくハード化された回路を使用して形成され得る。
【0013】
図示のように、NoC120は、処理要素(processing element、PE)105と二次ユニット135とを相互接続する。PE105は、プログラマブル論理ブロック又はハード化されたプロセッサを含むことができる。つまり、NoC120は、IC100内の異なるハード化された回路要素又はプログラマブル回路要素が通信することを可能にするために、IC100内で使用され得る。例えば、PE105Aは、1つのNoCマスタユニット110A(例えば、イングレス論理ブロック)を使用して、二次ユニット135Aと通信することができる。1つのNMU110に接続されているように示されているが、PE105は、複数のNMU110に結合することができる。いずれの場合も、別の実施形態では、PE105Aは、同じNMU110Aを使用して、複数の二次ユニット135(これらのエンドポイントが同じ通信プロトコルを使用すると仮定する)と通信することができる。構成中、コンパイラが、二次ユニット135及び他のPE105と通信するためにNoC120内でPE105が使用するデータ経路を決定する。つまり、経路は、NoC120が動作を開始する前に設定されてもよく、NoC120が再構成されない限り変更されない。したがって、PE105Aが二次ユニット135Bにデータを送信するたびに、NoC120が再構成されるまで、NoC120を通る同じ経路を使用する。
【0014】
データをルーティングするために、NoC120は、スパースネットワーク125及びノンブロッキングネットワーク130を含み、これらは、それら自体と、イングレス論理ブロック(例えば、NMU110)及びエグレス論理ブロック(例えば、NoCスレーブユニット(NoC Slave Unit、NSU)115)との間に接続を有する。上述したように、いくつかのハードウェア要素(例えば、HBM又はDDR5などの二次ユニット135B及び135C)は、他のハードウェア要素よりも高い帯域幅でより効率的に動作する。二次ユニット135B及び135Cに追加の利益を提供するために、NoCは、二次ユニット135B及び135CとNoC120の残りの部分、すなわちスパースネットワーク125との間のインターフェースとして機能するノンブロッキングネットワーク130を含む。一実施形態では、ノンブロッキングネットワーク130は、ノンブロッキングネットワーク130への入力とノンブロッキングネットワークからの出力との間の完全なノンブロッキング接続を提供するスイッチング要素(例えば、クロスバー)を備える。つまり、ノンブロッキングネットワーク130への入力は、ノンブロッキングネットワーク130の任意の出力へのアクセスを有する。対照的に、スパースネットワーク125は、ノンブロッキング入力/出力を保証しない。結果として、スパースネットワーク125は、接続されたPE105及び二次ユニット135Aに対して、ノンブロッキングネットワーク130ほど多くの帯域幅を提供しないが、スパースネットワーク125におけるスイッチング要素の密度は低くてもよく、これは、ノンブロッキングネットワークと比較して、IC100において必要な面積は少なくてすみ、コストが低減され得ることを意味する。
【0015】
図1では、全ての二次ユニット135が、ノンブロッキングネットワーク130によって提供される追加の利益を効率的に使用することができるわけではない。例えば、二次ユニット135Aはプログラマブル論理又はより低速のメモリシステムであってもよく、二次ユニット135BはnHBMシステムであってもよく、二次ユニット135CはDDR5メモリシステムである。図示のように、二次ユニット135Aはスパースネットワーク125につながれていて、二次ユニット135B及び135Cはノンブロッキングネットワーク130につながれている。したがって、2つのPE105間、又はPE105と二次ユニット135Aとの間のNoC120内の接続は、単独でスパースネットワーク125内に配置され得る。対照的に、スパースネットワーク125及びノンブロッキングネットワーク130の両方を含む、PE105と二次ユニット135B又は135Cのうちの1つとの間の接続。
【0016】
NoC120は、PE105が、同様にNoC120に接続された他の全てのハードウェア論理ブロックと通信することを可能にするように構成され得るが、他の実施形態では、PE105は、NoC120に接続された他のハードウェア論理ブロック(例えば、他のPE及び二次ユニット135)のサブセットのみと通信し得る。例えば、NoC120の1つの構成では、PE105Aは、PE105Bと通信することができるが、PE105Cとは通信することができないか、又は二次ユニット135のサブセットのみと通信することができる場合がある。しかしながら、NoC120は、PE105Aが全てのこれらのハードウェア要素とNoC120において通信経路を確立するように再構成されてもよい。
【0017】
一実施形態では、IC100は、ユーザ設計に従ってPE105を構成するFPGAである。つまり、この実施例では、FPGAは、プログラマブル論理ブロックとハード化された論理ブロックの両方を含む。しかしながら、他の実施形態では、IC100は、ハード化された論理ブロックのみを含むASICである。つまり、IC100は、プログラマブル論理(programmable logic、PL)ブロックを含まなくてもよく、その場合、PE105はハード化されたプロセッサ又は処理回路である。この実施例では、論理ブロックはプログラム不可能であるが、NoC120は依然として、異なる通信プロトコル間で切り替え、インターフェースにおけるデータ幅を変更し、又はその動作周波数を調整するようにプログラム可能であり得る。
【0018】
図2は、実施例による、HBMのためのローカライズされたインターコネクトを含むNoC120を有するIC100のブロック図である。つまり、ノンブロッキングネットワーク130は、NoC120の残りの部分(例えば、スパースネットワーク125)とHBM内の構成要素、すなわち、HBM疑似チャネル(pseudo channel、PC)215、HBMコントローラ220、並びにHBM物理(physical、PHY)及び入力/出力(input/output、I/O)層225との間のローカライズされたインターコネクトとして機能する。
【0019】
この実施例では、スパースネットワーク125は、複数の相互接続されたスイッチ205を含む。上述したように、これらのスイッチは、スパースネットワーク125への任意の入力がスパースネットワーク125の任意の出力と通信することができるノンブロッキング接続を保証しない場合がある。これは、スパースネットワーク125によって提供される帯域幅を低減するが、IC100内のNoC120のコスト及びフットプリントも低減する。NoCに接続された多くのハードウェア要素にとって、相互接続されたスイッチ205によって提供される帯域幅は十分である。
【0020】
しかしながら、HBMは増加した帯域幅から利益を得ることができるので、NoCは、HBM PC215(HBM PCポートとも呼ぶことができる)への完全なノンブロッキング接続を提供するための8×8クロスバー210を有するノンブロッキングネットワーク130を含む。この実施例では、各HBMコントローラ220は、同じアドレス空間、すなわち、HBMコントローラ220に対応するアドレス空間を共有する2つのHBM PC215を有する。HBM PC215は、次に、NoC120のノンブロッキングネットワーク130へのアクセスを提供するそれぞれのNSU115に結合される。
【0021】
一実施形態では、スパースネットワーク125及びノンブロッキングネットワーク130は、データを送信するために同じNoCプロトコルを使用する。しかし、データがNoCから外部ハードウェア要素(例えば、HBM PC215)に出る(NoCからエグレスする)ときに、NSU115は、データをNoCプロトコルからHBMプロトコル(例えば、AXI-メモリマップド(AXI-memory mapped、AXI-MM)などのアドバンスド拡張インターフェース(Advanced eXtensible Interface、AXI)プロトコルに変換する。別の変換プロセスは、データがNMU(図2には図示せず)からNoC120に転送されるときに実行される。例えば、NMUは、データをアドバンスド拡張インターフェース(AXI)プロトコルからNoCプロトコルに変換することができる。
【0022】
図示のように、8×8クロスバー210は、8つの入力及び8つの出力を含む。クロスバー210は、データがスパースネットワーク125からHBM PC215に転送され、最終的にHBM PHY/IO層225に転送されることを可能にする。それに応答して、クロスバー210はまた、データがHBM PC215からスパースネットワーク125に転送され、最終的にNMU及びPE(図2には図示せず)に転送されることを可能にする。一実施形態では、8×8クロスバー210は、ノンブロッキングであるため、入力が全ての出力(又は図3及び図4に示されるように出力のサブセット)にアクセスすることができる。つまり、入力は、出力の全てにアクセスする必要がなく、その場合、入力がクロスバー210の出力の8つ全てを使用する能力を有していなくても、クロスバー210は、完全にノンブロッキングであり得る。
【0023】
図2は、HBMスタックの一部のみを図示している。一実施形態では、HBMは、1つのHBMメモリスタックに供給する複数の独立したメモリコントローラを使用する。例えば、1つのHBM2Eスタックは、最大8つのHBMコントローラ220を有することができ、各々が2つのPC215に分割されている。各HBM PC215は、1つ又は2つのNoCチャネルに接続されて所望の帯域幅をサポートする。一実施例では、HBM2Eデバイスは3200Mbpsで動作し、各々が16個のHBM PCを有し、各PCは最大25.6GBpsの帯域幅をサポートすることができる。特定のNoC周波数に応じて、NoC120内の1~2チャネルの128ビットデータを使用して、HBM PC帯域幅を維持することができる。更に、複数のPEを複数のHBMコントローラ220に接続することができる。クロスバー210は、NoCトラフィックをそれぞれのHBM PC215に「ローカライズ」する。これにより、スパースネットワーク125は、NoC120内のトラフィックルーティングの「力仕事」を行うことができ、一方、ローカライズされたクロスバー210は、トラフィックを特定のロケーション(すなわち、HBMスタックに結合されたNSU115)にルーティングする。
【0024】
つまり、8×8スイッチクロスバー210は、8つのHBM PC215にわたってトラフィックをローカライズする。一実施例では、各NoCチャネルは128ビット幅(1GHzにおいて)であるように設計され、その場合、2つのNoCチャネルが各HBM PC215をサポートすることができる。
【0025】
図3は、一実施例による、図2に図示された8×8クロスバー210のブロック図である。ここで、8×8クロスバー210は、2つの4×4クロスバー305に分割される。具体的には、8×8クロスバー210は、4×4偶数クロスバー305Aと、4×4奇数クロスバー305Bとを含む。
【0026】
各HBM PCから出てくる2つのポートは、同じアドレスをターゲットとする。このようなポートは、「偶数」ポート及び「奇数」ポートとして定義され、HBM境界で負荷バランシングのために使用される。したがって、8×8クロスバー210は、2つの真の4×4クロスバー305(クロスバースイッチと呼ぶこともできる)に分割することができる。つまり、このHBM実装形態では、偶数ポートが奇数ポートと通信することを可能にする利点はなく、その逆も同様である。偶数クロスバー305Aは、HBM PCの偶数ポートにのみ接続し、奇数クロスバー305Bは、奇数ポートにのみ接続する。これにより、偶数及び奇数クロスバー305間の水平ルーティング/接続の必要性がなくなる。言い換えれば、8×8クロスバー210のこの実装形態では、データはクロスバー305間を流れない。8×8クロスバー210のこの最適化は、クロスバー305Aの偶数入力のみがクロスバー305Aの偶数出力と通信することができ、クロスバー305Bの奇数入力がクロスバー305Bの奇数出力と通信することができるのではなく、各入力が8つの出力全てと通信することができる8×8クロスバー実装形態と比べて、クロスバー210内の論理を低減することを可能にする。これは、8×8クロスバー210の全体のフットプリントを低減し得る。
【0027】
図3の8×8クロスバー210は、「真の」クロスバーではないが、それにもかかわらず、このHBM例では入力が入力の8つ全てにアクセスする必要がないので、すなわち、偶数入力は偶数出力へのアクセスのみを必要とし、奇数入力は奇数出力へのアクセスのみを必要とするので、ノンブロッキングクロスバーである。しかしながら、他の実施形態では、8×8クロスバーは、各入力が8つの出力全てにアクセスすることができる真の8×8クロスバーを使用して実装され得る。
【0028】
8×8クロスバー210は、静的実装形態であり、NoCのスパースネットワーク部分におけるNoCスイッチのようなルーティングテーブル/アドレス変換論理を有していない場合がある。これは、NoCコンパイラが、パケットがHBM入力ポートに到達するまでパケットをルーティングする必要がなく、クロスバースイッチの入力における可能な最良のロケーションにパケットをルーティングするだけであることを意味する。偶数及び奇数クロスバー305は、8×8クロスバー310への入力パケットから来るアドレス情報に2つの追加ビットを付加し、それに応じてパケットをルーティングする。HBMスタックから受信された応答データは、2ビットを使用して8×8クロスバーを通るのと同じ経路をたどる。2ビットは、パケットが8×8クロスバー210から出てくるときに応答からドロップされ、NoC内のスパースネットワークを介してルーティングされる。
【0029】
図4は、一実施例による、図3に図示されたクロスバーのブロック図である。つまり、図4は、図3で紹介した偶数及び奇数クロスバー305の一実装形態を図示している。図4は、任意の入力(I0~I3)が任意の出力(O0~O3)にアクセスすることができる4×4クロスバー305のノンブロッキング属性を図示している。更に、4×4クロスバー305は、受信されたパケット(スパースネットワークから受信されたデータ、又はHBMスタックから受信された応答データのいずれか)のアドレス情報に2ビットを付加して、4×4クロスバー305を介して図3の8×8クロスバー210からパケットをルーティングするルーティング論理405を含む。
【0030】
上記で説明したアーキテクチャは、ローカライズされたHBMトラフィックのためのハード化されたNoCにおける輻輳を改善し、全てのNoC物理チャネルからの全てのHBMポートを接続するために必要なスイッチの数を低減する。接続トポロジは、特にHBMインターリーブアクセスの場合に、水平NoCレイテンシを大幅に低減し(スパースネットワークによって提供される)、電力消費を改善し、メモリ効率を改善する。これはまた、NoCを構成するときにコンパイラの複雑さを低減するのに役立つ。
【0031】
図5は、一実施例による、DDR5のためのローカライズされたインターコネクトを含むNoC120を有するIC100のブロック図である。図5は、ノンブロッキングネットワーク130が、HBMスタックではなくDDR5メモリスタックを接続するために最適化されていることを除いて、図2と同様である。ここで、ノンブロッキングネットワーク130は、NoCトラフィックをそれぞれのDDR5コントローラ510(DDR5コントローラポートとも呼ばれる)にローカライズする4×2クロスバー505を含む。上記のように、このアーキテクチャは、スパースネットワーク125内のスイッチ205が、NoC120内でデータをルーティングする力仕事を行うことを可能にし、一方、ローカライズされた4×2クロスバー505(クロスバースイッチと呼ぶこともできる)は、トラフィックをDDR5スタックに接続された特定のNSU115にルーティングする。
【0032】
図5では、4×2スイッチクロスバーは、2つのDDR5チャネルポートにわたってトラフィックをローカライズする。各DDR5コントローラ510は、少なくとも1つのNSU115に接続され、これは、NoCプロトコルを、例えば、DDR5スタックによって使用されるAXI-MMに変換する。一実施例では、各NoCチャネルは、(1GHzにおいて)128ビット幅であるように設計される。したがって、2つのNoCチャネルが各DDR5コントローラ510をサポートする。各DDR5コントローラ510を出る2つのポートは、x32モードにおいて同じアドレスをターゲットとし得る。
【0033】
図2の8×8クロスバーと同様に、一実施形態では、4×2クロスバー505は静的実装形態であり、スパースネットワーク125内のスイッチ205残りのようなルーティングテーブル/アドレス変換論理を有さない。これは、NoCコンパイラが、パケットがDDR5入力ポートに到着するまでパケットをルーティングする必要がなく、クロスバー505の入力における可能な最良のロケーションにパケットをルーティングするだけであることを意味する。
【0034】
図6は、一実施例による、図5の4×2クロスバー505のブロック図である。つまり、図6は、図5で紹介したクロスバー505の一実装形態を図示している。ここで、4×2クロスバー505は、トップツーボトムトラフィックのために最適化され、4つのNoCパケットプロトコル(NPP)スイッチ205から受信されたデータを、DDR5コントローラ510の2つのポートのいずれかにルーティングする。4×2クロスバー505は、スパースネットワーク内のスイッチ205の4つの物理チャネル全てに接続され、これにより、各DDRポートへの×16モードのアクセスが可能になる。
【0035】
クロスバー505はまた、DDR5コントローラ510のための仮想チャネル(virtual channel、VC)要件をサポートすることができる。要求VC優先順位サポートには、LL(Low Latency、低レイテンシ)、ISOC(Isochronous、等時性)及びBE(Best Effort、ベストエフォート)の3つのレベルがある。
【0036】
ルートテーブルルックアップの代わりに、クロスバー505は、(2つのNSU115に対応する)DDRポートのための2つの宛先IDのうちの1つに一致する宛先IDを使用することができる。DDR要求トークンは、5つの要求VC:LLR/ISR/BER/ISW/BEWに従って指定され得る。クロスバー505は、各々5つのVCを有する4つの要求ポートと、3つの優先順位レベルとをサポートすることができる。対照的に、DDR応答トークンは、4つの応答VC(各々4つのVCを有する2つの応答ポートと、2つの優先順位レベル)に従って指定することができる。
【0037】
上記で説明したNoCアーキテクチャは、ローカライズされたDDR5トラフィックのためのハード化されたNoCでの輻輳を改善し、全てのNoC物理チャネルからの全てのDDR5ポートを接続するために必要なスイッチの数を低減することができる。接続トポロジは、特にDDR5インターリーブアクセスの場合に、(スパースネットワークにおいて)水平NoCレイテンシを大幅に低減し、電力消費を改善し、DDRポートごとにより多くのVCサポートを提供し、メモリ効率を改善する。これはまた、NoCを構成するときにコンパイラの複雑さを低減するのに役立つ。
【0038】
図7は、一実施例による、スパースネットワーク部分とノンブロッキングネットワーク部分とを含むNoC内でデータを送信する方法700のフローチャートである。ブロック705において、NoCのスパースネットワークは、第1のハードウェアエンティティからデータを受信する。第1のハードウェアエンティティは、NoC上でトランザクションを開始する、NoCに結合された任意の一次ハードウェア要素(例えば、図1のPE)であってよい。データ(例えば、1以上のパケット)は、NoCがアドレス情報の形態でデータをルーティングすべき意図された宛先を示すことができる。一実施形態では、意図された宛先は、NoCのノンブロッキングネットワークに接続された第2のハードウェアエンティティである。しかしながら、第1のハードウェアエンティティはまた、NoCに結合された他のハードウェアエンティティにデータを送信することもでき、NoCは、ノンブロッキングネットワークに結合されることもでき、又はその代わりに、第1のハードウェアエンティティのようにスパースネットワークに結合されることもできる。
【0039】
ブロック710において、スパースネットワークは、データをノンブロッキングネットワークに送信する。一実施例では、スパースネットワークは、データがNoC内のノンブロッキングネットワークに到達するまで、スイッチ及び事前に構成されたルートを使用してデータをルーティングする。
【0040】
ブロック715において、ノンブロッキングネットワーク(例えば、1以上のクロスバー)は、ノンブロッキングネットワークを介してデータを第2のハードウェアエンティティに送信する。つまり、ノンブロッキングネットワークは、第2のハードウェアエンティティとスパースネットワークとの間でNoC内に配置される。このようにして、ノンブロッキングネットワークは、スパースネットワークと第2のハードウェアエンティティとの間にローカライズされたインターフェースを提供する。
【0041】
第2のハードウェアエンティティは、二次又は一次ハードウェア要素であってもよい。一実施形態では、第2のハードウェアエンティティは、スパースネットワークに接続された第1のハードウェアエンティティよりも大きい帯域幅使用量を有する。一実施形態では、第2のハードウェアエンティティは、HBM又はDDR5などのメモリシステムである。
【0042】
前述では、本開示において提示される実施形態が参照される。しかしながら、本開示の範囲は、特定の記載された実施形態に限定されない。代わりに、説明される特徴及び要素の任意の組み合わせは、異なる実施形態に関連するか否かにかかわらず、企図される実施形態を実装及び実践するために企図される。更に、本明細書に開示される実施形態は、他の可能な解決策又は従来技術に勝る利点を達成し得るが、特定の利点が所与の実施形態によって達成されるか否かは、本開示の範囲を限定するものではない。したがって、前述の態様、特徴、実施形態、及び利点は、単に例示的なものであり、特許請求の範囲に明示的に記載されている場合を除き、添付の特許請求の範囲の要素又は限定とは見なされない。
【0043】
上記は特定の例を対象とするが、他の例及び更なる例が、その基本的な範囲から逸脱することなく考案され得、その範囲は、以下の「特許請求の範囲」によって決定される。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】