JP2023544288A - データ処理エンジンアレイを有するマルチダイ集積回路 - Google Patents

データ処理エンジンアレイを有するマルチダイ集積回路 Download PDF

Info

Publication number
JP2023544288A
JP2023544288A JP2023518889A JP2023518889A JP2023544288A JP 2023544288 A JP2023544288 A JP 2023544288A JP 2023518889 A JP2023518889 A JP 2023518889A JP 2023518889 A JP2023518889 A JP 2023518889A JP 2023544288 A JP2023544288 A JP 2023544288A
Authority
JP
Japan
Prior art keywords
die
interface
dpe
circuit
memory
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.)
Pending
Application number
JP2023518889A
Other languages
English (en)
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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2023544288A publication Critical patent/JP2023544288A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Multi Processors (AREA)

Abstract

マルチダイ集積回路(IC)は、インターポーザと、インターポーザに結合されている第1のダイとを含むことができる。第1のダイは、データ処理エンジン(DPE)アレイを含むことができ、DPEアレイは、複数のDPEと、複数のDPEに結合されているDPEインターフェースとを含む。DPEインターフェースは、論理インターフェース及び物理インターフェースを有する。マルチダイICはまた、インターポーザに結合されている第2のダイも含むことができる。第2のダイは、ダイインターフェースを含むことができる。DPEインターフェース及びダイインターフェースは、インターポーザを通じて通信するように構成されている。

Description

技術分野
本開示は、集積回路(IC)に関し、より詳細には、データ処理エンジンアレイを含むマルチダイICに関する。
背景
集積回路(IC)は、様々な異なるタイプのアーキテクチャを使用して実装され得る。単一ダイアーキテクチャは、単一のダイがパッケージ内に含まれるアーキテクチャである。ダイは、ダイが複数の類似又は同様の回路を含むという点で均質であり得る。他の場合では、ダイは、ダイが様々な異なるタイプの回路及び/又はシステムを含むという点で異種であり得る。マルチダイアーキテクチャは、複数のダイが単一のパッケージに含まれるアーキテクチャである。パッケージ内では、ダイは通信可能に連結されている。
概要
一態様では、マルチダイ集積回路(IC)は、インターポーザと、インターポーザに結合されている第1のダイとを含む。第1のダイは、データ処理エンジン(DPE)アレイを含み、DPEアレイは、複数のDPEと、複数のDPEに結合されているDPEインターフェースとを含む。DPEインターフェースは、論理インターフェース及び物理インターフェースを有する。マルチダイICはまた、インターポーザに結合されている第2のダイも含むことができる。第2のダイは、ダイインターフェースを含むことができる。DPEインターフェース及びダイインターフェースは、インターポーザを通じて通信するように構成されている。
別の態様において、マルチダイICは、パッケージ基板と、パッケージ基板に結合されている第1のダイであって、第1のダイは相互接続ブリッジとして構成されている、第1のダイと、パッケージ基板及び第1のダイに結合されている第2のダイとを含む。第2のダイは、DPEアレイを含み、DPEアレイは、複数のDPEと、複数のDPEに結合されているDPEインターフェースとを含む。DPEインターフェースは、論理インターフェース及び物理インターフェースを有する。マルチダイICはまた、パッケージ基板及び第1のダイに結合されている第3のダイを含むことができ、第3のダイはダイインターフェースを含む。DPEインターフェース及びダイインターフェースは、第1のダイを通じて通信するように構成されている。
この概要の節は、特定の概念を紹介するためにのみ提供され、特許請求される主題の任意の重要な又は本質的な特徴を特定するためのものではない。本発明の構成の他の特徴は、添付の図面及び以下の詳細な説明から明らかになるであろう。
図面の簡単な説明
本発明の構成が、例として添付の図面に示されている。しかしながら、図面は、本発明の構成を示された特定の実施態様のみに限定するものと解釈されるべきではない。以下の詳細な説明を検討し、図面を参照すると、様々な態様及び利点が明らかになるであろう。
複数のダイを有するデバイスの例示的な実施態様を示す図である。 複数のダイを有するデバイスの例示的な実施態様を示す図である。 複数のダイを有するデバイスの別の例示的な実施態様を示す図である。 複数のダイを有するデバイスの別の例示的な実施態様を示す図である。 複数のダイを有するデバイスの別の例示的な実施態様を示す図である。 データ処理エンジン(DPE)アレイの例示的な実施態様を示す図である。 DPEアレイのDPEの例示的なアーキテクチャを示す図である。 DPEアレイのDPEの例示的なアーキテクチャを示す図である。 DPEインターフェースの論理インターフェースのタイルの例示的なアーキテクチャを示す図である。 DPEインターフェースの論理インターフェースのタイルの例示的なアーキテクチャを示す図である。 DPEインターフェースの論理インターフェースのタイルの例示的なアーキテクチャを示す図である。 論理インターフェースのタイルのインターフェースの例示的な実施態様を示す図である。 論理インターフェースのタイルのインターフェースの別の例示的な実施態様を示す図である。 論理インターフェースのタイルのダイレクトメモリアクセスエンジンの例示的な実施態様を示す図である。 複数のダイを有するデバイスの物理インターフェースの例示的な実施態様を示す図である。 複数のダイを有するデバイスの物理インターフェースの別の例示的な実施態様を示す図である。 複数のダイを有するデバイスの物理インターフェースの別の例示的な実施態様を示す図である。 複数のDPEインターフェースを含む例示的な実施態様を示す図である。 複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。 複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。 複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。 複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。
詳細な説明
本開示には、新規な特徴を規定する特許請求の範囲が添付されているが、本開示内で説明される様々な特徴は、図面と併せてこの説明を考慮することによってよりよく理解されると考えられる。本明細書に記載のプロセス(複数可)、機械(複数可)、製造物(複数可)、及びそれらの任意の変形は、例示の目的で提供される。本開示内で説明されている特定の構造的及び機能的詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、及び、実質的に任意の適切に詳述されている構造を様々に採用するために当業者を教示するための表現の基礎として解釈されるべきである。さらに、本開示内で使用される用語及び語句は、限定することを意図するものではなく、説明されている特徴の理解可能な説明を提供することを意図する。
本開示は、集積回路(IC)に関し、より詳細には、データ処理エンジン(DPE)アレイを含むマルチダイICに関する。DPEアレイは、DPEインターフェースと組み合わせてデータ処理エンジン(DPE)と呼ばれる複数のハードワイヤード及び構成可能な回路ブロックを指す。各DPEは、メモリモジュールと組み合わせてデータ処理動作を実施することができるコアを含むことができる。DPEアレイ内のDPEは、様々な異なるメカニズムを通じて互いに通信することができる。一態様では、DPEは、コアが同じDPE内のメモリモジュール及び他の異なるDPEに位置する1つ以上の他のメモリモジュールにアクセスすることができる共有メモリアーキテクチャを介して互いに通信することができる。別の態様では、DPEは、DPE間でデータストリームを搬送することができるストリームスイッチを介して互いに通信することができる。さらに別の態様では、DPEアレイのコアは、1つのコアがコアの内部レジスタからDPEアレイ内の他のDPEの1つ以上の他のコアにデータを直接送信することを可能にするカスケード接続によって直接接続されてもよい。
DPEインターフェースは、1つ以上の他の回路がDPEアレイと通信するための回路要素を実装する。これらの異なる回路は、DPEアレイと同じダイ内に、DPEアレイと同じパッケージ内の他のダイ内に、又はDPEアレイを含むパッケージの外部に実装されてもよい。例えば、ダイのうちの1つ(以上)がDPEアレイを含む複数のダイを使用して実装されるデバイスの文脈において、DPEインターフェースは、同じダイ上の他の回路、デバイスの異なるダイに実装される1つ以上の回路、DPEアレイを含むパッケージの外部の回路、又は上記の任意の組み合わせとの通信を容易にする。
DPEアレイのDPEインターフェースは、論理インターフェース及び物理インターフェースを含むことができる。論理インターフェースは、各タイルがDPEアレイのDPEのサブセットと通信することができるタイルアーキテクチャを使用して実装することができる。物理インターフェースは、図面を参照して本明細書で説明されるような1つ以上の異なるアーキテクチャを使用して実装されてもよい。場合によっては、物理インターフェースは、異なるタイプのダイがパッケージに含まれ、標準化されたインターフェースを使用してDPEアレイと通信することを可能にする標準化されたインターフェースを使用して実装されてもよい。
特定のダイ又はそれ自体の専用ダイ内にDPEアレイを実装し、同じパッケージ内に様々なタイプの他のダイを含めることによって、IC設計者に多大な柔軟性が提供される。これに関して、本開示内に記載された本発明の構成は、他のタイプのモノリシック、単一ダイ構造にまさる様々な利点を提供する。例えば、DPEアレイを実装するダイは、特定のタイプのプロセス技術(例えば、特徴サイズ、技術ノード、又はプロセスノード)を使用して実装されてもよく、一方、DPEアレイと通信可能に連結された他のダイは、異なるプロセス技術を使用して実装されてもよい。「プロセス技術」という用語は、特定の半導体製造プロセス及びその特定の半導体製造プロセスの設計規則を意味する。異なるプロセス技術は、異なる回路生成及びアーキテクチャを意味することが多く、一般に、プロセス技術に関して、技術ノードが小さいほど、電子構成要素の特徴サイズが小さくなる。
1つ以上の例示的な実施態様において、パッケージの異なるダイは、異なるパワードメインに含まれてもよい。パワードメインは、同じ電源又は電力レールによって給電される回路要素を指す。異なるパワードメインは、異なる電位を有してもよく、他のパワードメインとは独立してオン及び/又はオフにされてもよい。本明細書に記載の例示的な実施態様では、各ダイは、他の1つ以上のダイとは独立して電源をオン又はオフにすることができる。
1つ以上の例示的な実施態様において、パッケージの異なるダイは、異なるクロックドメインに含まれてもよい。クロックドメインは、同じクロックソースによって供給される回路要素を指す。異なるクロックドメインは、異なるクロックソースを有することができ、したがって、互いに独立したクロック信号を使用することができる。例えば、異なるクロックドメインのクロック信号は、異なるクロック周波数及び/又は位相を有し得る。本明細書に記載の例示的な実施態様では、各ダイは、異なるクロックソースによってクロックされ、したがって、異なる周波数及び/又は位相のクロック信号に基づいて動作することができる。
本発明の構成のさらなる態様は、図面を参照して以下により詳細に説明される。説明を単純かつ明瞭にするために、図に示す要素は必ずしも原寸に比例して描かれていない。例えば、いくつかの要素の寸法は、明瞭にするために他の要素に対して誇張されている場合がある。さらに、適切であると考えられる場合、対応する、類似の、又は同様の特徴を示すために、図面間で参照符号が繰り返される。
図1A及び図1Bは、まとめて、IC100の例示的な実施態様を示す。説明の目的のために、図1A及び図1Bはまとめて「図1」と呼ばれる場合がある。図1の例では、IC100は、マルチダイICとして実装されている。さらに、ダイのうちの1つ以上は、DPEアレイ110を含む。本開示内で、「マルチダイIC」という用語は、通信可能に連結されて単一のパッケージ内に含まれる2つ以上のダイを含むように実装されている集積回路を意味する。
図1Aは、IC100のトポグラフィ図を示す。図1Aの例では、IC100は、複数のダイを積層することによって形成される「積層型ダイ」タイプのデバイスとして実装される。IC100は、インターポーザ102と、ダイ104と、ダイ106と、パッケージ基板108とを含む。ダイ104及び106の各々は、インターポーザ102の表面、例えば上面に取り付けられる。一態様では、ダイ104及び106は、フリップチップ技術を使用してインターポーザ102に取り付けられる。インターポーザ102は、パッケージ基板108の上面に取り付けられている。
一般に、インターポーザ102は、ダイ104、106とパッケージ基板108との間に配置される中間ダイである。インターポーザ102は、相互接続、ルーティング、及び/又は接地面/電力面を提供するように実装される。パッケージ基板108は、パッケージに機械的ベース支持を提供し、パッケージの外部のノードに接続するための電気的インターフェースを提供する。IC100は、図解を容易にするために図1又は図2には示されていないキャップ部分を含むことができる。
図1Aの例では、インターポーザ102は、ダイ104及び106が水平に積層される平坦な表面を有するダイである。図示のように、ダイ104及び106は、インターポーザ102の平坦な表面上に隣り合って位置する。図1Aのインターポーザ102に示されているダイの数は、例示を目的としており、限定するものではない。他の例示的な実施態様において、3つ以上のダイがインターポーザ102上に搭載されてもよい。
インターポーザ102は、ダイ104及び106の各々に対して共通の搭載面及び電気的結合を提供する。インターポーザ102の製造は、パターニングされてワイヤを形成する1つ以上の導電層の堆積を可能にする1つ以上のプロセスステップを含むことができる。これらの導電層は、アルミニウム、金、銅、ニッケル、様々なケイ化物、及び/又は他の適切な材料から形成されてもよい。インターポーザ102は、例えば二酸化ケイ素などの1つ以上の誘電体又は絶縁層(複数可)の堆積を可能にする1つ以上の追加のプロセスステップを使用して製造されてもよい。インターポーザ102はまた、ビア及び貫通ビア(TV)も含んでもよい。TVは、インターポーザ102及びその基板を実装するために使用される特定の材料に応じて、貫通シリコンビア(TSV)、貫通ガラスビア(TGV)、又は他のビア構造であってもよい。インターポーザ102がパッシブダイとして実装される場合、インターポーザ102は、様々なタイプのはんだバンプ、ビア、ワイヤ、TV、及びバンプ下冶金層(UBM)のみを有することができる。インターポーザ102がアクティブダイとして実装される場合、インターポーザ102は、PN接合を含むトランジスタ、ダイオードなどの電気素子を参照して、1つ以上の能動素子を形成する追加のプロセス層を含むことができる。
ダイ104は、アクティブダイとして実装され、1つ以上のDPEアレイ110を含むことができる。アクティブダイは、1つ以上の能動素子を含むダイである。一態様では、ダイ104は、DPEアレイ110のみ(例えば、ダイ104の外に位置する他の回路と通信するのに必要な任意の回路要素を包含するDPEアレイ110のみ)を含んでもよい。別の態様では、ダイ104は、DPEアレイ110と、他の機能を実施することができる追加の回路ブロックとを含んでもよい。ダイ106は、パッシブダイ又はアクティブダイとして実装されてもよい。例示の目的のために、ダイ104は、1つ以上のDPEアレイ110を含んでもよく、一方、ダイ106は、1つ以上の異なるサブシステムを実装する。例示的なサブシステムを本明細書に記載する。一態様では、ダイ106もまた、1つ以上のDPEアレイ110を含んでもよい。本明細書で提供される例は、例示を目的とするものであり、限定することを意図するものではない。IC100は、例えば、ダイが異なるタイプであり、及び/又は本開示内に記載されたものとは異なる機能を提供する、3つ以上のダイを含んでもよい。
図1Bは、図1AのIC100の側断面図である。図1Bは、図1AのIC100を切断線1B-1Bに沿って見た図を示す。ダイ104及び106の各々は、はんだバンプ112を介してインターポーザ102の第1の平坦な表面に電気的及び機械的に結合される。一例では、はんだバンプ112はマイクロバンプとして実装される。さらに、様々な他の技法のいずれかを使用して、ダイ104及び106をインターポーザ102に取り付けることができる。例えば、ボンドワイヤ又はエッジワイヤを使用して、ダイ104及び106をインターポーザ102に機械的及び電気的に取り付けることができる。別の例では、接着材料を使用して、ダイ104及び106をインターポーザ102に機械的に取り付けることができる。はんだバンプ112を使用したインターポーザ102へのダイ104及び106の取り付けは、図1Bに示すように、例示を目的として提供されており、限定として意図されているものではない。
インターポーザ102は、インターポーザ102内に破線又は点線として示されている1つ以上の導電層114を含む。導電層114は、前述のような様々な金属層のいずれかを使用して実装される。導電層114は、インターポーザ102のワイヤ116を実装するパターン化金属層を形成するように処理される。少なくとも2つの異なるダイ、例えばダイ104及び106を結合するワイヤは、ダイ間ワイヤと呼ばれる。図1Bの例では、インターポーザ102内のパターン化金属層114から形成されたワイヤ116は、ダイ間ワイヤである。ワイヤ116は、ダイ104とダイ106との間でダイ間信号を通過させる。例えば、ワイヤ116の各々は、ダイ104の下のはんだバンプ112をダイ106の下のはんだバンプ112と結合し、それによってダイ104とダイ106との間のダイ間信号の交換を可能にする。ワイヤ116は、データワイヤであってもよい。別の態様では、ワイヤ116は、1つ以上の電力ワイヤを含んでもよい。電力ワイヤは、電位を搬送するワイヤ、又は、接地電位若しくは基準電位を有するワイヤであってもよい。
複数の異なる導電層114及びワイヤ116が、ビア118を使用して互いに結合されてもよい。一般に、ビア構造は、垂直導電経路を実装するために使用される。垂直導電経路は、デバイスのプロセス層に垂直な導電経路を指す。これに関して、はんだバンプ112と接触するワイヤ116の垂直部分が、ビア118として実装される。インターポーザ102内の相互接続を実装するために複数の導電層を使用することにより、より多くの数の信号をルーティングすることができ、インターポーザ102内で信号のより複雑なルーティングを達成することができる。
TV122は、インターポーザ102の全体ではないにしても相当の部分を通って垂直に横断する、例えば延在する電気接続を形成するビアである。TV122は、ワイヤ及びビアのように、銅、アルミニウム、金、ニッケル、様々なケイ化物、及び/又は他の適切な材料を含むがこれらに限定されない様々な異なる導電性材料のいずれかから形成されてもよい。図示のように、TV122の各々は、インターポーザ102の底面からインターポーザ102の導電層114まで延在する。TV122はさらに、1つ以上のビア118と組み合わせて、導電層114のうちの1つ以上を通じてはんだバンプ112に結合されてもよい。
はんだバンプ120を使用して、インターポーザ102の第2の平坦な表面をパッケージ基板108に機械的及び電気的に結合することができる。特定の例示的な実施態様では、はんだバンプ120は、破壊抑制チップ接続(C4)ボールとして実装される。パッケージ基板108は、複数の異なるはんだバンプ120をパッケージ基板108の下の1つ以上のノード及び回路基板などの他の回路構造に結合する導電経路124を含む。したがって、はんだバンプ120のうちの1つ以上は、パッケージ基板108内の回路要素又は配線を通じて、インターポーザ102内の回路をIC100の外部のノードに結合する。
図2A及び図2Bは、まとめて、IC100の別の例示的な実施態様を示す。説明の目的のために、図2A及び図2Bはまとめて「図2」と呼ばれる場合がある。図2の例では、IC100は、マルチダイICとして実装されている。ダイ104及び106は、図1に関連して説明したように実装されてもよい。例えば、ダイ104は、1つ以上のDPEアレイ(複数可)110を含むアクティブダイであってもよい。ダイ104の回路要素は、ダイ104の外側に位置するノードを通信するために必要な任意の回路要素を包含するDPEアレイ110のみを含んでもよい。別の例では、ダイ104は、DPEアレイ110及び追加の回路要素を含んでもよい。ダイ106は、アクティブ又はパッシブであってもよい。ダイ106もまた、1つ以上のDPEアレイを含んでもよい。
図2Aは、IC100のトポグラフィ図を示す。図2Aの例では、ダイ104及び106はブリッジダイ202によって通信可能に連結される。ブリッジダイ202は、パッケージ基板108内に埋め込まれてもよい。ブリッジダイ202の一例は、カリフォルニア州サンタクララのIntel Corporationから入手可能な埋め込みマルチダイ相互接続ブリッジ(EMIB:Embedded Multi-Die Interconnect Bridge)である。本明細書において提供される例示的なブリッジダイは、例示を目的としており、限定するものではないことを理解されたい。
ブリッジダイ202を含むパッケージ基板108は、ダイ104及び106の各々に対して共通の搭載面及び電気的結合を提供する。ブリッジダイ202は、ダイ104をダイ106に通信可能に連結することができる相互接続回路要素、例えば、1つ以上のパターン化金属層を実装する。一態様では、ブリッジダイ202はパッシブダイである。別の態様では、ブリッジダイ202はアクティブダイである。ダイ104及び106は、パッケージ基板108及びブリッジダイ202から形成される平坦な表面上に隣り合って位置する。図2Aに示されているダイの数は、例示を目的としており、限定するものではない。他の例示的な実施態様では、3つ以上のダイがパッケージ基板108上に搭載され、追加のブリッジダイ202によって通信可能に連結されてもよい。
図2Aの例において、ダイ104は、1つ以上のDPEアレイ110を含むアクティブダイとして実装されてもよい。ダイ106は、パッシブダイ又はアクティブダイとして実装されてもよい。ダイ106は、1つ以上の追加のDPEアレイを含む、本明細書に記載の複数の異なるサブシステムのいずれかを実装するように構成されてもよい。本明細書で提供される例は、例示を目的とするものであり、限定することを意図するものではない。例えば、図2のIC100は、ダイのタイプ及び/又は機能が異なる3つ以上のダイを含んでもよい。
図2Bは、図2AのIC100の側断面図である。図2Bは、図2AのIC100を切断線2B-2Bに沿って見た図を示す。ダイ104及び106の各々は、はんだバンプ204及び206を介してパッケージ基板108の第1の平坦な表面及びブリッジ回路202の第1の表面に電気的及び機械的に結合される。一例では、はんだバンプ204及び/又は206はマイクロバンプとして実装される。一態様では、ダイ104及びダイ106をパッケージ基板108に接続するために使用されるはんだバンプは、ダイ104及びダイ106をブリッジダイ202に接続するために使用されるはんだバンプよりも大きいサイズであってもよく、及び/又はより大きい間隔を有してもよい。例えば、はんだバンプ206は、はんだバンプ204よりも、ともに近接して離間されてもよい。
ブリッジダイ202は、ダイ104をダイ106と通信可能に連結する回路要素を実装する。したがって、ダイ104とダイ106との間で交換される信号は、ブリッジダイ202を通って搬送される。これに関して、図2Bの例におけるダイ間ワイヤ116はブリッジダイ202内に実装される。1つの例示的な実施態様では、ブリッジダイ202は、ダイ104をダイ106に通信可能に連結するための短い相互接続ワイヤを含む。ブリッジダイ202は、ダイ104とはんだバンプ208との間の通信又はダイ106とはんだバンプ208との間の通信を可能にするTVを一切含まない。すなわち、ブリッジダイ202は、ダイ104とダイ106との間の通信のためだけに確保されて利用され、ダイ104又はダイ106によるIC100の外部のノードへのアクセスを一切提供しない。
図2Bの例では、ダイ104及び106は、パッケージトレース210によって、例えばはんだバンプ208を介して、パッケージの外部の回路要素と通信する。ブリッジダイ202がアクティブダイとして実装される例では、ブリッジダイは、図2Bには示されていない1つ以上の追加のパッケージトレース210によってはんだバンプ208のうちの1つ以上に結合されてもよい。
例示的な一実施態様では、図1及び/又は図2に関連して説明したように、IC100は、ダイ104及び106が同じパワードメイン上にあるように実装されてもよい。別の例示的な実施態様では、図1及び/又は図2のダイ104及び106は、異なるパワードメインに実装されてもよく、互いに独立して電源をオン及びオフにされてもよい。さらに、説明したように、ダイ104及び106は、異なるパワードメインに実装される場合、異なる電圧レベルで動作することができる。異なる電圧レベルで動作する際に、ダイ104及び106、インターポーザ102、及び/又はブリッジダイ202は、信号が異なるパワードメイン間を通過することを可能にする適切なインターフェース回路要素を含むことができる。
別の例示的な一実施態様では、図1及び/又は図2に関連して説明したように、IC100は、ダイ104及び106が同じクロックドメインの一部として動作するように実装されてもよい。したがって、図1及び/又は図2のダイ104及び106は、異なるクロックドメインにおいて実装されてもよく、したがって、異なる周波数でクロックされてもよい。
例示的な一実施態様では、図1及び/又は図2に関連して説明したように、IC100は、ダイ104、106、インターポーザ102、及び/又はブリッジダイ202が異なるプロセス技術(例えば、異なる特徴サイズを有する)を使用して実装されるように実装されてもよい。一例では、DPEアレイ110を含むダイ104は3nmプロセス技術を使用して実装されてもよく、一方、ダイ106は16nm技術を使用して実装される。
図3は、IC100の別の例を示す。図3の例では、ダイ104及び106のみが示されている。一態様では、ダイ104及び106は、図1に関連して説明したようなインターポーザを使用してダイ間ワイヤ116によって結合されてもよい。別の態様では、ダイ104及び106は、図2に関連して説明したように、パッケージ基板に埋め込まれたブリッジダイを使用してダイ間ワイヤ116によって結合されてもよい。
ダイ104は、DPEアレイ110を含む。DPEアレイ110は、論理インターフェース304及び物理インターフェース306を有するDPEインターフェース302を含む。ダイ106は、論理インターフェース310及び物理インターフェース312を有するダイインターフェース308を含む。ダイ間ワイヤ116は、物理インターフェース306を物理インターフェース312と接続することができる。ダイ間ワイヤ116は、前述のようにインターポーザ又はブリッジダイ内に実装されてもよい。
図3の例では、物理インターフェース306は、本明細書でより詳細に説明するような1つ以上の異なる技術を使用して実装されてもよい。例示的な実施態様では、物理インターフェース306は、1つ以上のチャネルを有する並列インターフェースとして実装される。場合によっては、チャネルは互いに独立して動作し、別個のクロッキングを使用してもよい。並列インターフェースの例は、1つ以上のLagunaサイト(カリフォルニア州サンノゼのXilinx,Inc.から入手可能)を使用する実施態様、及び1つ以上の高帯域幅メモリ(HBM)インターフェースを使用する実施態様を含むことができるが、これに限定されない。別の例示的な実施態様では、物理インターフェース306は、1つ以上の高速シリアルトランシーバを使用して実装されてもよい。そのようなトランシーバは、ギガビット範囲の速度でシリアル化データを送受信することができる。
図4は、DPEアレイ110の例示的な実施態様を示す。図4の例において、DPEアレイ110は、複数の相互接続されたプログラマブルDPE402として実装される。DPE402は、アレイ状に配置構成することができ、配線接続されている。各DPE402は、1つ以上のコア404及びメモリモジュール(図4において「MM」と略記)406を含むことができる。一態様では、各コア404は、それぞれの各コア内に含まれるコア固有プログラムメモリ(図示せず)に記憶されたプログラムコード(例えば、コンピュータ可読又は実行可能命令)を実行することができる。各コア404は、同じDPE402内のメモリモジュール406、及び、DPE402のコア404に上下左右の方向に隣接する任意の他のDPE402のメモリモジュール406に直接アクセスすることができる。例えば、コア404-5は、メモリモジュール406-5、406-8、406-6、及び406-2を直接読み出し及び/又は書き込むことができる(例えば、図示されていないそれぞれのメモリインターフェースを介して)。コア404-5は、メモリモジュール406-5、406-8、406-6、及び406-2の各々をアドレス指定可能なメモリの統合領域(例えば、コア404-5にとってアクセス可能なローカルメモリの一部)と見なす。これにより、DPEアレイ110内の異なるDPE402間のデータ共有が容易になる。他の例では、コア404-5は、他のDPE内のメモリモジュール406に直接接続されてもよい。
DPE402は、プログラマブルDPE相互接続によって相互接続される。プログラマブルDPE相互接続は、まとめて利用されて、1つ以上の異なる独立したネットワークを形成する。例えば、プログラマブルDPE相互接続は、まとめて、ストリーミング接続から形成されるストリーミングネットワーク(陰影付き矢印)、及び、メモリマップド接続から形成されるメモリマップドネットワーク(網掛け矢印)を形成することができる。
メモリマップド接続を介して構成データをDPE402の制御レジスタにロードすることにより、各DPE402及びその中の構成要素を独立して制御することができる。DPE402は、DPE毎に有効化/無効化することができる。各コア404は、例えば、コア404又はクラスタとして動作する複数のコア404の分離を達成するために、説明したようなメモリモジュール406又はそのサブセットのみにアクセスするように構成することができる。各ストリーミング接続は、DPE402又はクラスタとして動作する複数のDPE402の分離を達成するために、選択されたDPE402のみの間の論理接続を確立するように構成することができる。各コア404は、そのコア404に固有のプログラムコードをロードすることができるため、各DPE402は、その中に1つ以上の異なるカーネルを実装することができる。
他の態様では、DPEアレイ110内のプログラマブルDPE相互接続は、各々が互いから、並びに、ストリーミング接続及びメモリマップド接続から独立した(例えば、これらとは明確に区別され、かつ別個のものである)デバッグネットワーク及びイベントブロードキャストネットワークなどの追加の独立したネットワークを含むことができる。いくつかの態様では、デバッグネットワークは、メモリマップド接続から形成され、及び/又はメモリマップドネットワークの一部である。
コア404は、カスケード接続を介して1つ以上の隣接するコア404と直接接続することができる。一態様では、カスケード接続は、コア404間の一方向の直接的な接続である。一般に、カスケード接続は、あるコア404が別のコア404と直接データを共有することを可能にする直接コア間接続である。例えば、カスケード接続を通じて、コア404-2の内部レジスタに記憶されたコンテンツは、コア404-3に直接又はコア404-5に直接提供され得る。同様に、カスケード接続を通じて、コア404-5は、コア404-6の内部レジスタからのコンテンツ又はコア404-2の内部レジスタからのコンテンツを直接受信することができる。
例示的な一実施態様では、コンテンツ(例えば、ソースコア)を送信しているコア404は、カスケード接続を介して内部レジスタからコンテンツを直接送信することができる。同様に、コンテンツは、受信コア(例えば、ターゲットコア)の内部レジスタにおいて直接受信されてもよい。例示的な実施態様では、内部レジスタは、コアの累積レジスタ、又は累積レジスタに接続(例えば、直接)及び/又は供給することができる別の内部レジスタであってもよい。カスケード接続の各々は、構成データをそれぞれのDPE402の制御レジスタにロードすることによって、独立して、例えば別個に、有効化又は無効化されてもよい。
例示的な実施態様では、DPE402はキャッシュメモリを含まない。キャッシュメモリを省略することにより、DPEアレイ110は、予測可能な、例えば決定論的な性能を達成することができる。さらに、異なるDPE402に配置されるキャッシュメモリ間の一貫性を維持する必要がないため、重大な処理オーバーヘッドが回避される。さらなる例では、コア404は入力割り込みを有しない。したがって、コア404は、中断されずに動作することができる。コア404への入力割り込みを省略することもまた、DPEアレイ110が予測可能な、例えば決定論的な性能を達成することを可能にする。
DPEインターフェースブロック302は、DPE402を他の回路要素に接続するインターフェースとして動作する。図4の例では、他の回路要素は、DPEアレイ110を含むダイ以外のダイ内に位置する回路ブロックを含む。図4の例では、DPEインターフェースブロック302の論理インターフェース304は、一行に編成された複数の相互接続されたタイル408を含む。特定の例では、DPEインターフェースブロック302内にタイル408を実装するために異なるアーキテクチャを使用することができ、そこでは各異なるタイルアーキテクチャが、IC100の異なるリソースとの通信をサポートする。タイル408は、あるタイルから別のタイルへと双方向にデータが伝播することができるように接続される。各タイル408は、直上のDPE402の列のインターフェースとして動作することができる。
タイル408は、図示のようにストリーミング接続及びメモリマップド接続を使用して、隣接するタイル、直上のDPE402、及び下方の回路要素、例えば、物理インターフェース306に接続される。タイル408はまた、DPEアレイ110内に実装されたデバッグネットワークに接続するデバッグネットワークを含むことができる。タイル408は、物理インターフェース306によって、DPE402からIC100の他の回路ブロックにデータを送信することができる。物理インターフェース306は、上述のようにダイ間ワイヤ116によってIC100のそのような他の回路ブロックと通信することができる。ダイ106に含まれ得るIC100の他の回路ブロックの例は、これらに限定するものではないが、1つ以上のプロセッサ若しくはプロセッサシステム、プログラマブル論理、1つ以上のハードワイヤード回路ブロック、及び/又はプログラマブルネットワークオンチップ(NoC)を含んでもよい。
タイル408は、他の回路ブロックからDPE402にデータを送信することができる。タイル408-1は、例えば、他の列のDPE402にアドレス指定されたデータを、例えば408-2又は408-3などの他のタイル408に送信しながら、上の列のDPE402にアドレス指定されたデータのそれらの部分を、アプリケーション又は構成にかかわらず、そのようなDPE402に提供することができ、結果、そのようなタイル408は、したがってそれぞれの列のDPE402にアドレス指定されたデータをルーティングすることができる。
1つ以上の他の例示的な実施態様において、1つ以上のタイル又はすべてのタイル408はまた、ダイ104上に位置する回路要素及び/又は回路ブロックへの接続も含んでもよいことを理解されたい。例えば、タイル408のうちの1つ以上は、ダイ104内に位置する回路ブロックに結合するために、メモリマップド接続及び/又はストリーミング接続を利用してもよい。別の例では、DPEアレイ110は、DPEアレイ110と同じダイ(例えば、ダイ104)内に位置する回路要素に結合するタイル408と通信するDPE402のいくつかの列と、DPEアレイ110を含むダイとは異なるダイに位置する回路要素に(例えば、ダイ106内の回路要素に)結合するタイルと通信するDPE402の他の列とを含んでもよい。
説明したように、他のタイプの回路要素の例には、プログラマブル論理、プロセッサシステム、NoC、プラットフォーム管理コントローラ、及び/又は特定用途向け集積回路(ASIC)などのハードワイヤード回路ブロックが含まれるが、これらに限定されない。プログラマブル論理は、指定された機能を実施するようにプログラムされ得る回路要素である。一例として、プログラマブル論理は、フィールドプログラマブルゲートアレイタイプの回路要素として実装されてもよい。プログラマブル論理は、プログラマブル回路ブロックのアレイを含むことができる。本明細書において定義される場合、「プログラマブル論理」という用語は、再構成可能デジタル回路を構築するために使用される回路要素を意味する。プログラマブル論理は、基本機能を提供する多くのプログラマブル回路ブロックから形成される。プログラマブル論理のトポロジは、ハードワイヤード回路要素とは異なり、高度に構成可能である。プログラマブル論理の各プログラマブル回路ブロックは、典型的には、プログラマブル機能要素及びプログラマブル相互接続を含む。プログラマブル相互接続は、プログラマブル論理の高度に構成可能なトポロジを提供する。プログラマブル相互接続は、プログラマブル論理のプログラマブル回路ブロックのプログラマブル機能要素間の接続を提供するためにワイヤ毎に構成することができ、例えば、ストリームスイッチを介してパケット化データによって通信することが可能である、DPE402間の接続とは異なりビット毎(例えば、各ワイヤが1ビットの情報を搬送する)に構成可能である。
使用前に、プログラマブル論理は、構成ビットストリームと呼ばれるデータを中にある内部構成メモリセルにロードすることによってプログラム又は「構成」されなければならない。構成メモリセルは、構成ビットストリームをロードされると、プログラマブル論理が、例えばトポロジなど、どのように構成され、どのように動作するか(例えば、実施される特定の機能)を定義する。本開示内で、「構成ビットストリーム」は、プロセッサ又はコンピュータによって実行可能なプログラムコードと同等ではない。
プロセッサシステムは、ダイの一部として作製されるハードワイヤード回路要素を指す。プロセッサシステムは、プログラムコードを実行することができる1つ以上のプロセッサとして実装されてもよく、又はそれを含んでもよい。プロセッサは、複数の異なる種類のプロセッサ(例えば、アプリケーションプロセッサ、リアルタイムプロセッサなど)を含んでもよい。一例において、プロセッサシステムは、例えば、プログラムコードを実行することができる単一のコアなどの、個別のプロセッサとして実装される。別の例では、プロセッサシステムは、マルチコアプロセッサとして実装される。さらに別の例では、プロセッサシステムは、1つ以上のコア、モジュール、コプロセッサ、I/Oインターフェース、及び/又は他のリソースを含むか否かにかかわらず、1つ以上のプロセッサを含む。プロセッサシステムは、様々な異なるタイプのアーキテクチャのいずれかを用いて実装されてもよい。プロセッサシステムを実装するために使用され得る例示的なアーキテクチャは、ARMプロセッサアーキテクチャ、x86プロセッサアーキテクチャ、グラフィックスプロセッシングユニット(GPU)アーキテクチャ、モバイルプロセッサアーキテクチャ、DSPアーキテクチャ、前述のアーキテクチャの組み合わせ、又はコンピュータ可読命令若しくはプログラムコード(例えば、ユーザアプリケーション)を実行することが可能な他の適切なアーキテクチャを含んでもよいが、これらに限定されない。
NoCは、IC100内のエンドポイント回路間でデータを共有するためのプログラマブル相互接続ネットワークを指す。エンドポイント回路は、DPEアレイ110、又は、本明細書に記載のIC100の様々なタイプの回路ブロック及び/若しくはリソース(例えば、プログラマブル論理、プロセッサシステム、及び/又はハードワイヤード回路ブロック)のいずれかの中に配置することができる。NoCは、専用スイッチングによる高速データパスを含むことができる。一例では、NoCは、1つ以上の水平パス、1つ以上の垂直パス、又は水平パスと垂直パスの両方を含む。
NoC内では、NoCを通じてルーティングされるべきネットは、IC100内での実装のためのユーザ回路設計が作成されるまで未知である。NoCは、エンドポイント回路を接続するためにスイッチ間及びNoCインターフェース間でデータを渡すために、スイッチ及びインターフェースなどのNoC内の要素がどのように構成され、動作するかを定義する構成データを、内部構成レジスタにロードすることによってプログラムすることができる。NoCは、IC100の一部として作製され(例えば、配線接続され)、したがって、物理的に修正可能ではないが、NoCは、ユーザ回路設計の複数の異なるマスタ回路と複数の異なるスレーブ回路との間の接続を確立するようにプログラムすることができる。場合によっては、NoCは、電源投入時に、その中にいかなるデータパス又はルートも実装しない。しかしながら、構成されていると、NoCは、エンドポイント回路間でデータパス又はルートを実装する。
回路ブロックの別の例は、プラットフォーム管理コントローラ(PMC)である。PMCは、IC100の管理を担当することができる回路ブロックである。例えば、PMCは、IC100全体にわたって他の回路リソースを管理することができるIC100内のサブシステムとして実装されてもよい。PMCは、安全でセキュアな環境を維持し、IC100をブートし、通常動作中にIC100を管理することができる。例えば、PMCは、IC100の複数の異なる回路リソース(例えば、DPEアレイ110、プログラマブル論理、NoC、及び/又はハードワイヤード回路ブロック)の電源投入、ブート/構成、セキュリティ、電力管理、安全性監視、デバッグ、及び/又はエラー処理に対する統合されたプログラマブル制御を提供することができる。PMCは、プロセッサシステムをプログラマブル論理から切り離す専用プラットフォームマネージャとして動作することができる。したがって、プロセッサシステム及びプログラマブル論理は、互いに独立して管理、構成、並びに/あるいは電源をオフ及び/又はオフにすることができる。
PMCは、専用リソースを有するプロセッサとして実装されてもよい。PMCは、複数の冗長プロセッサを含んでもよい。PMCのプロセッサは、ファームウェアを実行することができる。ファームウェアの使用は、別個の処理ドメイン(ダイ及び/又はサブシステム特有のものであり得る「パワードメイン」から区別される)を作成する際の柔軟性を提供するために、リセット、クロッキング、及び保護などの、IC100のグローバル機能の構成可能性及びセグメント化をサポートする。処理ドメインは、IC100の1つ以上の異なるプログラマブル回路リソースの混合又は組み合わせを含むことができる(例えば、処理ドメイン又はパーティションは、DPEアレイ110、プロセッサシステム、プログラマブル論理、NoC、及び/又はハードワイヤード回路ブロックからの異なる組み合わせ又はデバイスを含むことができる)。
ハードワイヤード回路ブロックは、IC100の一部として作製された専用回路ブロックを含む。配線接続されるが、ハードワイヤード回路ブロックは、1つ以上の異なる動作モードを実施するために、構成データを制御レジスタにロードすることによって構成することができる。ハードワイヤード回路ブロックの例は、入力/出力(I/O)ブロック、IC100の外部の回路及び/又はシステムに信号を送受信するためのトランシーバ、メモリコントローラなどを含むことができる。複数の異なるI/Oブロックの例は、シングルエンド及び疑似差分I/Oを含むことができる。トランシーバの例は、高速差動クロックトランシーバを含むことができる。ハードワイヤード回路ブロックの他の例は、暗号化エンジン、デジタル-アナログ変換器(DAC)、アナログ-デジタル変換器(ADC)などを含むが、これらに限定されない。一般に、ハードワイヤード回路ブロックは、特定用途向けの回路ブロックである。
DPEアレイ110は、ダイ104に実装される場合、記載されたもの以外の様々な他のタイプの回路のいずれかに結合されてもよい。例えば、ダイ104は、RAM、他の特殊回路要素(例えば、ASIC)、モデム、トランシーバなどを含むか又は実装するダイに結合されてもよい。
図5A及び図5Bは、DPEアレイ110のDPE402の例示的なアーキテクチャを示す。説明の目的のために、図5A及び図5Bはまとめて「図5」と呼ばれる場合がある。
図5Aを参照すると、DPE402は、コア404と、メモリモジュール406とを含む。DPE402は、ストリームスイッチ502及びメモリマップドスイッチ504を含むDPE相互接続をさらに含む。
コア404は、DPE402のデータ処理能力を提供する。コア404は、様々な異なる処理回路のいずれかとして実装されてもよい。図5の例では、コア404は、オプションのプログラムメモリ506を含む。1つ以上の例示的な実施態様では、コア404は、プログラムコード、例えばコンピュータ可読命令を実行することができるプロセッサとして実装される。プログラムメモリ506は、コア404によって実行される命令を記憶することができる。コア404は、例えば、CPU、GPU、DSP、ベクトルプロセッサ、又は命令を実行することができる他のタイプのプロセッサとして実装されてもよい。コアは、本明細書に記載の様々なCPU及び/又はプロセッサアーキテクチャのいずれかを使用して実装されてもよい。別の例では、コア404は、超長命令語(VLIW)ベクトルプロセッサ又はDSPとして実装される。
特定の例示的な実施態様では、プログラムメモリ506は、コア404用の専用プログラムメモリとして実装される。プログラムメモリ506は、同じDPE402のコアによってのみ使用されてもよい。したがって、プログラムメモリ506は、コア404によってのみアクセスされ得、DPEアレイ110内の任意の他のDPE402又は別のDPE402の構成要素と共有されない。プログラムメモリ506は、読み出し及び書き込み動作のための単一のポートを含むことができ、メモリマップドスイッチ504を介してDPEアレイ110のメモリマップドネットワーク部分を使用してアドレス指定可能である。メモリマップドスイッチ504を介して、例えば、プログラムメモリ506は、DPEアレイ110の外部のマスタ回路によってプログラムコードをロードされてもよい。プログラムメモリ506にロードされたプログラムコードは、コア404によって実行されてもよい。
1つ以上の例示的な実施態様では、コア404は、アプリケーション固有の命令セットをサポートするようにカスタマイズされたアーキテクチャを有することができる。例えば、コア404は、無線用途のためにカスタマイズされ、無線特有の命令を実行するように構成されてもよい。別の例では、コア404は、機械学習のためにカスタマイズされ、機械学習固有の命令を実行するように構成されてもよい。
1つ以上の他の例示的な実施態様では、コア404は、特定の動作を実施するために専用のハード知的財産(IP)コアなどのハードワイヤード回路要素として実装される。その場合、コア404は、プログラムコードを実行しなくてもよい。コア404がプログラムコードを実行しない実施態様では、プログラムメモリ506は省略されてもよい。例示的かつ非限定的な例として、コア404は、ハード前方誤り訂正(FEC)エンジン又は他の回路ブロックとして実装されてもよい。
いくつかの例示的な実施態様では、DPEアレイ110の異なるDPE402は、異なるタイプのコア404を含んでもよい。例えば、他のDPE402のコア404がプログラムコードを実行することができない一方で、1つ以上のコア404がプログラムコードを実行するように実装されてもよい。いずれの場合でも、各コア404は、プログラムコード/命令の実施によるか否かにかかわらず計算を実施するように構成され、本開示内で説明されるカスケード接続と共に使用され得る内部レジスタ又はレジスタ526を含むことができる。
コア404は、制御レジスタ508を含んでもよい。制御レジスタ508には、DPE402の動作を制御するための構成データをロードすることができる。例えば、制御レジスタ508にロードされた構成データは、本明細書でより詳細に説明するDPE402のコア404、メモリモジュール406、ストリームスイッチ502、及びカスケードインターフェース522、524の動作を構成及び/又は制御することができる。1つ以上の例示的な実施態様では、DPE402は、制御レジスタ508にロードされた構成データに基づいて、例えば、全体として、アクティブ化及び/又は非アクティブ化されてもよい。同様に、コア404は、制御レジスタ508にロードされた構成データに基づいてアクティブ化及び/又は非アクティブ化されてもよい。コア404は、メモリモジュール406が1つ以上の他のコアによってアクセスされ得るように、メモリモジュール406から独立してアクティブ化及び/又は非アクティブ化されてもよい。図5Aの例では、制御レジスタ508は、メモリマップドスイッチ504を通じてメモリマップドネットワークを介してアドレス指定可能である(例えば、読み出し及び/又は書き込みされ得る)。非アクティブ化とは、回路ブロックを低電力モードにすること、又は回路ブロックから電力(例えば、電源電圧)を切断することを指す。
1つ以上の例示的な実施態様では、メモリモジュール406は、本明細書ではアプリケーションデータと呼ばれる、コア404(又は別のDPE402の別のコア)によって使用及び/又は生成されるデータを記憶することができる。メモリモジュール406は、ランダムアクセスメモリなどの読み出し/書き込みメモリを含むことができる。したがって、メモリモジュール406は、コア404によって読み出され消費され得るデータを記憶することができる。メモリモジュール406はまた、コア404によって書き込まれるデータ(例えば、結果)を記憶することができる。
1つ以上の他の例示的な実施態様では、メモリモジュール406は、DPEアレイ110内の他のDPE402の1つ以上の他のコア404によって使用及び/又は生成され得るデータ、例えばアプリケーションデータを記憶することができる。DPE402の1つ以上の他のコア404はまた、メモリモジュール406から読み出し、及び/又はメモリモジュール406に書き込むことができる。特定の例示的な実施態様では、メモリモジュール406から読み出し及び/又はメモリモジュール406に書き込むことができる他のコア404は、1つ以上の隣りのDPE402のコア404であってもよい。図5AのDPE402のメモリモジュール406と境界線又は境界を共有する別のDPE(例えば、隣接するDPE)は、図5AのDPE402に対して「隣りの」DPEであると言われる。図5Aのコア404及び隣りのDPE(例えば、図5Aの対象DPE402の上下左右のDPE)からの1つ以上の他のコア404がメモリモジュール406に読み書きすることを可能にすることによって、メモリモジュール406は、メモリモジュール406にアクセスすることができる異なるDPE402及び/又はコア404間の通信をサポートする共有メモリを実装する。
1つ以上の例示的な実施態様では、DPEアレイ110のDPE相互接続回路要素は、2つの異なるネットワークを含む。第1のネットワークは、DPEアレイ110の他のDPE402及び/又はIC100の他のシステムとデータを交換することができる。例えば、第1のネットワークは、アプリケーションデータを交換することができる。第2のネットワークは、DPE(複数可)402のための構成、制御、及び/又はデバッグデータなどのデータを交換することができる。
図5の例では、DPE相互接続回路要素の第1のネットワークは、ストリームスイッチ502及び他のDPE402の1つ以上のストリームスイッチから形成される。図示されているように、ストリームスイッチ502は、図5AのDPE402の上下左右にあるDPE402のストリームスイッチに結合されている。図5AのDPE402が最下行にある場合、ストリームスイッチ502はDPEインターフェース302のタイル408に結合される。
ストリームスイッチ502は、コア404に結合され、コア404と通信可能である。コア404は、例えば、ストリームスイッチ502に接続し、それによってコア404がDPE相互接続回路要素を介して他のDPE402と直接通信することを可能にするストリームインターフェースを含む。例えば、コア404は、コア404がストリームスイッチ502を介して直接アプリケーションデータを送信及び/又は受信することを可能にする命令又はハードワイヤード回路要素を含んでもよい。
ストリームスイッチ502は、メモリモジュール406に結合され、メモリモジュール406と通信可能である。メモリモジュール406は、例えば、ストリームスイッチ502に接続し、それによって他のDPE402がDPE相互接続回路要素を介して図5のメモリモジュール406と通信することを可能にするストリームインターフェースを含む。ストリームスイッチ502は、隣りにないDPE及び/又は図5Aのメモリモジュール406のメモリインターフェースに結合されていないDPEが、DPEアレイ110のそれぞれのDPE402のストリームスイッチを含むDPE相互接続回路要素を介してコア404及び/又はメモリモジュール406と通信することを可能にすることができる。したがって、図5のコア404及び/又は図5のメモリモジュール406はまた、DPE402内のDPE相互接続回路要素を介してDPEアレイ110内のDPE402のいずれかと通信することができる。
ストリームスイッチ502はまた、プログラマブル論理、NoC、又は他の回路ブロックなどの他のサブシステムと通信するために使用されてもよい。一般に、ストリームスイッチ502は、回路交換ストリーム相互接続又はパケット交換式ストリーム相互接続として動作するようにプログラムされてもよい。回路交換ストリーム相互接続は、DPE402間の高帯域幅通信に適したポイントツーポイント専用ストリームを実装することができる。パケット交換ストリーム相互接続により、ストリームを共有して、複数の論理ストリームを中帯域幅通信のための1つの物理ストリームに時間多重化することが可能になる。
ストリームスイッチ502は、制御レジスタ508を介して構成されてもよい。制御レジスタ508にロードされる構成データは、例えば、図5AのDPE402がいずれの他のDPE402及び/又はIC100のシステムと通信するか、及びそのような通信が回路交換式ポイントツーポイント接続として確立されるか、又はパケット交換式接続として確立されるかを指示する。
DPE相互接続回路要素の第2のネットワークは、DPEアレイ110の他のメモリマップドスイッチに接続されているものとしてのメモリマップドスイッチ504から形成される。読み出し及び/又は書き込みされ得る図5のDPE402の各構成要素、例えば、制御レジスタ508、プログラムメモリ506、及びメモリモジュール406は、マップドスイッチ504を使用して読み出し又は書き込みされてもよい。メモリマップドスイッチ504はまた、DPE402の構成、制御、及びデバッグデータを交換するために使用されてもよい。図5の例では、メモリマップドスイッチ504は、DPE402を構成するために使用される構成データを受信することができる。メモリマップドスイッチ504は、図5のDPE402の下方に位置するDPE402のメモリマップドスイッチから、及び/又はDPEインターフェース302(例えば、図5のDPE402がDPEアレイ110の最下行に位置する場合)から構成データを受信してもよい。メモリマップドスイッチ504は、受信した構成データを、図5のDPE402の上方の1つ以上の他のDPE402に、図5のコア404に(例えば、プログラムメモリ506及び/又は制御レジスタ508に)、及び/又は図5のメモリモジュール406に(例えば、メモリモジュール406内のメモリに)転送することができる。したがって、図5のメモリマップドスイッチ504は、下方のDPEインターフェース302のDPE402若しくはタイル408のメモリマップドスイッチ及び/又は上方のDPE402のメモリマップドスイッチと通信する。
まとめて考慮すると、DPEアレイ110の様々なDPE402のDPE相互接続は、DPE相互接続ネットワーク(ストリームネットワーク及び/又はメモリマップドネットワークを含むことができる)を形成する。それぞれのDPE402の制御レジスタ508は、それぞれのメモリマップドスイッチ504を通じて構成データをロードすることによってプログラムされてもよい。構成を通じて、ストリームスイッチ502及び/又はストリームインターフェースは、パケット交換式であるか又は回路交換式であるかにかかわらず、1つ以上の他のDPE402及び/又はDPEインターフェース302内にあるかにかかわらず、他のエンドポイントとの接続を確立するようにプログラムされる。
例えば、DPEアレイ110は、プロセッサ(例えば、プロセッサシステム又はPMCのプロセッサ)のアドレス空間にマッピングされてもよい。したがって、DPEアレイ110のDPE402内の任意の制御レジスタ及び/又はメモリは、メモリマップドインターフェースを介してアクセスされてもよい。例えば、メモリモジュール406内のメモリ、プログラムメモリ506、及び/又は制御レジスタ508は、それぞれのDPE402内のメモリマップドスイッチ504を介して読み出し及び/又は書き込みされてもよい。
図5のメモリマップドスイッチ504は、他のDPE402のメモリマップドスイッチ504と組み合わせて、トランザクションがメモリマップドスイッチからメモリマップドスイッチに伝播する共有トランザクション交換式ネットワークを実装する。メモリマップドスイッチ504の各々は、例えば、アドレスに基づいてトランザクションを動的にルーティングすることができる。メモリマップドスイッチ504は、IC100の他のサブシステムがDPE402のリソース(例えば、構成要素)にアクセスすることを可能にする。
図5の例では、メモリモジュール406は、複数のメモリインターフェース510-1、510-2、510-3、及び510-4を備える。図5内で、メモリインターフェース510-1及び510-2は、「MI」と略される。メモリモジュール406は、複数のメモリバンク512-1~512-Nをさらに含む。特定の例示的な実施態様では、メモリモジュール406は、8つのメモリバンクを含む。他の例示的な実施態様では、メモリモジュール406は、より少ない又はより多いメモリバンク512を含んでもよい。図5の例では、メモリバンク512-1~512-Nの各々は、それぞれのアービタ514-1~514-Nを有する。各アービタ514は、アービトレーション論理を含むことができる。さらに、各アービタ514は、クロスバーを含むことができる。したがって、任意のマスタが、メモリバンク512の任意の特定の1つ以上に書き込むことができる。
メモリモジュール406は、メモリマップドスイッチ504と通信するメモリマップドインターフェース(図示せず)を含むことができる。メモリモジュール406内のメモリマップドインターフェースは、メモリバンク512に対する読み出し及び/又は書き込みのために、ダイレクトメモリアクセス(DMA)エンジン516、メモリインターフェース510、及びアービタ514に結合するメモリモジュール406内の通信線に接続することができる。
DMAエンジン516は、2つ以上のインターフェースを含んでもよい。例えば、1つ以上のインターフェースが、受信したデータをメモリバンク512に書き込む他のDPE402内のストリームスイッチ502から入力データストリームを受信することができる。1つ以上の他のインターフェースは、メモリバンク512からデータを読み出し、DMAエンジン516のストリームインターフェースを介して他のDPE402にデータを送出することができる。
メモリモジュール406は、複数の異なるDPE402によってアクセスされ得る共有メモリとして動作することができる。図5Aの例では、メモリインターフェース510-1は、コア404に含まれるコアインターフェース518-1を介してコア404に結合されている。メモリインターフェース510-1は、アービタ514を通じてメモリバンク512へのアクセス(例えば、読み出し及び書き込み能力)をコア404に提供する。メモリインターフェース510-2は、図5のDPE402の上方のDPEアレイ110のDPE402のコアインターフェースに結合されている。メモリインターフェース510-2は、図5のDPE402の上方のDPE402のコア404に、メモリバンク512へのアクセスを提供する。メモリインターフェース510-3は、図5のDPE402の右方のDPEアレイ110のDPE402のコアインターフェースに結合されている。メモリインターフェース510-3は、図5のDPE402の右方のDPE402のコア404に、メモリバンク512へのアクセスを提供する。メモリインターフェース510-4は、図5のDPE402の下方のDPEアレイ110のDPE402のコアインターフェースに結合されている。メモリインターフェース510-4は、図5のDPE402の下方のDPE402のコア404に、メモリバンク512へのアクセスを提供する。
コア404は、コアインターフェース518-2、518-3、及び518-4を介して他の隣りのDPEのメモリモジュールにアクセスすることができる。図5の例では、コアインターフェース518-2は、図5のDPE402の下方のDPE402のメモリインターフェースに結合されている。したがって、コア404は、図5のDPE402の下方のDPE402のメモリモジュール406にアクセスすることができる。コアインターフェース518-3は、図5のDPE402の左方のDPE402のメモリインターフェースに結合されている。したがって、コア404は、図5のDPE402の左方のDPE402のメモリモジュール406にアクセスすることができる。コアインターフェース518-4は、図5のDPE402の上方のDPE402のメモリインターフェースに結合されている。したがって、コア404は、図5のDPE402の上方のDPE402のメモリモジュール406にアクセスすることができる。
上述したように、コア404は、読み出し及び/又は書き込み動作を、そのような動作のアドレスに基づいて、コアインターフェース518-1、518-2、518-3、及び/又は518-4を通じて正しい方向にマッピングすることができる。コア404がメモリアクセスのためのアドレスを生成すると、コア404は、方向(例えば、アクセスされるべき特定のDPE402)を決定するためにアドレスを復号することができ、決定された方向において正しいコアインターフェースにメモリ動作を転送する。
メモリモジュール406は、ハードウェア同期回路要素(HSC)520を含むことができる。一般に、HSC520は、異なるコア404(例えば、隣りのDPE402のコア404)、図5のコア404、DMAエンジン516、及びDPE相互接続回路要素を介して図5AのDPE402などのDPEと通信することができる他の外部マスタ(例えば、プロセッサ)の動作を同期させることができる。例示的かつ非限定的な例として、HSC520は、図5Aのメモリモジュール406内の同じ、例えば共有バッファにアクセスする異なるDPE402内の2つの異なるコア404を同期させることができる。HSC520は、コア404及び/若しくは隣りのDPEのコア(例えば、メモリインターフェース510に接続された他のDPE402のコア404)によって、並びに/又は他のDPE402のメモリマップドスイッチ504によってアクセスされ得る。
DPE相互接続回路要素を介して共有メモリモジュール406並びに隣りの及び/又は隣りにないDPE402を通じて隣りのDPE402と通信することに加えて、コア404は、カスケード入力(「CI」522として示される)及びカスケード出力(「CI」524として示される)などの1つ以上のカスケードインターフェース522、524を含むことができる。カスケードインターフェース522及び524は、隣接するDPE402の他のコア404との直接通信を提供することができる。図示されているように、コア405のカスケードインターフェース522は、隣接するDPE402(例えば、左方、上方、又は下方のDPE402)のコア404から直接、入力データストリームを受信することができる。カスケードインターフェース522を介して受信されたデータストリームは、コア404内のデータ処理回路に提供することができる。コア404のカスケードインターフェース524は、隣接するDPE402(例えば、右方、上方、又は下方のDPE402)のコア404へと直接、出力データストリームを送信することができる。
図5の例では、カスケードインターフェース522及びカスケードインターフェース524の各々は、バッファリングのための先入れ先出し(FIFO)インターフェースを含んでもよい(図示せず)。例示的な実施態様では、カスケードインターフェース522及び524は、幅が数百ビットであり得るデータストリームを搬送することができる。カスケードインターフェース522及び524の特定のビット幅は、限定として意図されていない。図5の例では、カスケードインターフェース522は、コア404内の内部レジスタ(複数可)526に結合されている。内部レジスタ526は、コア404内のデータ処理回路要素によって生成及び/又は演算されるデータを記憶することができる。
一態様において、内部レジスタ526は累積レジスタであってもよい。コア404の累積レジスタは、コア404によって実施された演算の中間結果が記憶され得る内部レジスタである。累積レジスタは、コア404が、コア404の外部に位置する別のメモリにそのようなコンテンツ/データを書き込む必要なしに、そのような中間計算結果を記憶することを可能にする。別の態様では、内部レジスタ526は、累積レジスタに接続され得る別のレジスタである。例えば、内部レジスタ526は、累積レジスタに結合され、カスケードインターフェース522を介してデータを受信し、カスケードインターフェース524を介して累積レジスタにデータを書き込み、及び/又は累積レジスタからデータを出力するように特定的にアクセス可能なレジスタであってもよい。カスケードインターフェース524は、内部レジスタ526のコンテンツを出力することができ、クロックサイクルごとに出力することができる。
図5の例では、カスケードインターフェース522及び524は、制御レジスタ508にロードされた構成データに基づいてプログラムすることができる。例えば、制御レジスタ508に基づいて、カスケードインターフェース522をアクティブ化又は非アクティブ化することができる。同様に、制御レジスタ508に基づいて、カスケードインターフェース524をアクティブ化又は非アクティブ化することができる。カスケードインターフェース522は、カスケードインターフェース524から独立してアクティブ化及び/又は非アクティブ化されてもよい。
例示的な実施態様では、カスケードインターフェース522及び524はコア404によって制御される。例えば、コア404は、カスケードインターフェース522及び/又は524に読み書きするための命令を含んでもよい。別の例では、コア404は、カスケードインターフェース522及び/又は524に対する読み取り及び/又は書き込みが可能なハードワイヤード回路を含んでもよい。特定の例示的な実施態様では、カスケードインターフェース522及び524は、コア404の外部のエンティティによって制御されてもよい。
1つ以上の例示的な実施態様では、DPEアレイ110は、1つ以上のDPE402の複数のグループ、例えばクラスタに機能的に分離されてもよい。例えば、特定のコアインターフェース518及び/又はメモリインターフェース510は、構成データを介して有効化及び/又は無効化されて、DPE402の1つ以上のクラスタを作成することができ、各クラスタは、DPEアレイ110のDPE402のうちの1つ以上(例えば、サブセット)、選択されたDPE402のメモリモジュール406、選択されたDPE402のコア404、又はそれらの異なる組み合わせを含む。加えて、又は代替形態において、ストリームインターフェースは、同じクラスタ内のDPE402の他のコア404及び/若しくはメモリモジュール406と、並びに/又は指定された入力ソース及び/若しくは出力先と(例えば、それらのみと)通信するように、クラスタごとに独立して構成することができる。加えて、又は代替形態において、カスケードインターフェース522、524は、同じクラスタ内のコア404のみがカスケードインターフェース522、524を介して通信することができるように構成されてもよい。これにより、異なるクラスタが独立してかつ分離して異なるアプリケーションを実行できるように、DPE402のクラスタが効果的に分離される。
DPE402はクラスタに編成することができ、それによって、あるクラスタの特定のDPE402(複数可)又はすべてのDPE402(複数可)は、ストリームスイッチ502、共有メモリ(例えば、コアインターフェース518及び/又はメモリインターフェース510)、及び/又はカスケードインターフェース522、524のうちの1つ以上又はすべての任意の組み合わせを通じて同じクラスタ内の他のDPE402に接続することができることを理解されたい。加えて、あるクラスタの特定のDPE(複数可)402は、ストリームスイッチ502、共有メモリ、及び/又はカスケードインターフェース522、524のうちの1つ以上を使用してクラスタ間で通信することができないが、ストリームスイッチ502、共有メモリ、及び/又はカスケードインターフェース522、524のサブセットを使用してクラスタ間で通信することができるという点で、別のクラスタのDPE(複数可)402から分離することができる。
説明したように、1つ以上の例示的な実施態様では、DPEアレイ110は、均質なDPE402から形成されてもよい。1つ以上の他の例示的な実施態様では、DPEアレイ110は、異なるタイプのDPE402から形成されてもよい。例えば、DPE402は、プログラムコードを実行するコア404、プログラムコードを実行しないハードワイヤードコア、特殊目的コア、又はそれらの任意の組み合わせなどの異なるタイプのコア404を含んでもよい。さらに別の例示的な実施態様では、DPEアレイ110は、ダミーDPEである、例えば機能性DPEではない1つ以上のDPEを含むことができる。同じダイに実装されるか又は異なるダイに実装されるかにかかわらず、各異なるDPEアレイは、異なる数のDPE及び/又は異なるタイプのDPEを含んでもよい。
図5Bは、DPE402内のイベント処理回路要素の一例を示す。DPEは、他のDPEのイベント処理回路要素に相互接続されたイベント処理回路要素を含んでもよい。図5Bの例では、イベント処理回路要素は、コア404内及びメモリモジュール406内に実装される。コア404は、イベントブロードキャスト回路要素552及びイベント論理554を含むことができる。メモリモジュール406は、イベントブロードキャスト回路要素562及びイベント論理564を含む別個のイベント処理回路要素を含んでもよい。
イベントブロードキャスト回路要素552は、図5のDPE402の上下の隣りのDPEの各コア内のイベントブロードキャスト回路要素に接続することができる。イベントブロードキャスト回路要素552はまた、図5のDPE402の左隣りのDPEのメモリモジュール内のイベントブロードキャスト回路要素に接続することもできる。図示されているように、イベントブロードキャスト回路要素552はイベントブロードキャスト回路要素562に接続されている。イベントブロードキャスト回路要素562はまた、図5に示すDPE402の上下の隣りのDPEの各メモリモジュール内のイベントブロードキャスト回路要素に接続することもできる。イベントブロードキャスト回路要素562はまた、図5のDPE402の右隣りのDPEのコア内のイベントブロードキャスト回路要素に接続することもできる。
このようにして、DPEのイベント処理回路要素は、DPEアレイ110内に独立したイベントブロードキャストネットワークを形成することができる。DPEアレイ110内のイベントブロードキャストネットワークは、本明細書に記載の他のネットワークから独立して存在してもよい。さらに、イベントブロードキャストネットワークは、適切な構成データを制御レジスタ508にロードすることによって個別に構成可能であってもよい。
図5の例では、制御レジスタ508は、コア404及びメモリモジュール406内でそれぞれ発生する特定のタイプのイベントを検出するようにイベント論理554及び564をプログラムする。制御レジスタ508にロードされたデータは、例えば、複数の異なるタイプの所定のイベントのうちのいずれがイベント論理552及び562によって検出されるかを決定する。イベントブロードキャスト回路要素552によって検出され得るイベントの例は、コア404内で発生するイベントである。これらのイベントは、コア404による読み出し動作の開始及び/又は終了、コア404による書き込み動作の開始及び/又は終了、ストール、並びにコア404によって実施される他の動作の発生を含んでもよいが、これらに限定されない。イベントブロードキャスト回路要素562によって検出され得るイベントの例は、メモリモジュール406内で発生するイベントである。これらのイベントは、DMAエンジン516による読み出し動作の開始及び/又は終了、DMAエンジン516による書き込み動作の開始及び/又は終了、ストール、並びにメモリモジュール406によって実施される他の動作の発生を含んでもよいが、これらに限定されない。制御レジスタ508にロードされたデータは、例えば、複数の異なるタイプの所定のイベントのうちのいずれがイベント論理554及び/又は564によって検出されるかを決定する。イベント論理554及び/又はイベント論理564は、DMAエンジン516、メモリマップドスイッチ504、ストリームスイッチ502、メモリインターフェース510、コアインターフェース518、カスケードインターフェース522、524、及び/又はDPE内に位置する他の構成要素から生じる及び/又はそれらに関連するイベントを検出することができることを理解されたい。
例えば、制御レジスタ508にロードされた構成データは、イベントブロードキャスト回路要素552及び/又は562によって他のイベントブロードキャスト回路要素から受信されたイベントのうちのいずれが、さらに他のイベントブロードキャスト回路要素又は他の回路要素に伝搬されるかを決定することができる。構成データはまた、イベント論理554及び/又は564によって内部的に生成されたいずれのイベントが他のイベントブロードキャスト回路要素及び/又は他の回路要素に伝搬されるかを指定することができる。
したがって、イベント論理554及び564によって生成されたイベントは、イベントブロードキャスト回路要素552及び562にそれぞれ提供され、他のDPEにブロードキャストされてもよい。図5Bの例では、イベントブロードキャスト回路要素552及び/又は562は、内部で生成されたか又は他のDPEから受信されたかにかかわらず、上方のDPE、左方のDPE、及び下方のDPE又は論理インターフェース304にイベントをブロードキャストすることができる。イベントブロードキャスト回路要素552はまた、メモリモジュール406内のイベントブロードキャスト回路要素562にイベントをブロードキャストすることができる。
図5Aの例では、コア内に位置するイベントブロードキャスト回路要素は、上方及び/又は下方の隣りのDPEのコア内に位置するイベントブロードキャスト回路要素と垂直に通信する。DPEが論理インターフェース304の直上方にある(又は隣接する)場合、そのDPEのコア内のイベントブロードキャスト回路要素は、論理インターフェース304と通信することができる。同様に、メモリモジュール内に位置するイベントブロードキャスト回路要素は、上方及び/又は下方の隣りのDPEのメモリモジュール内に位置するイベントブロードキャスト回路要素と垂直に通信する。DPEが論理インターフェース304の直上方にある(例えば、隣接する)場合、そのDPEのメモリモジュール内のイベントブロードキャスト回路要素は、論理インターフェース304と通信することができる。イベントブロードキャスト回路要素はさらに、そのようなイベントブロードキャスト回路要素が別のDPE内及び/又はコア若しくはメモリモジュール内に位置するか否かにかかわらず、すぐ左方及び/又は右方のイベントブロードキャスト回路要素と通信することができる。
制御レジスタ508が書き込まれると、イベント論理554及びイベント論理564はバックグラウンドで動作することができる。1つ以上の例示的な実施態様では、イベント論理554は、コア404内の特定の状態の検出に応答してのみイベントを生成し、イベント論理562は、メモリモジュール406内の特定の状態の検出に応答してのみイベントを生成する。
図6A、図6B、及び図6Cは、論理インターフェース304のタイルを実装するための例示的なアーキテクチャを示す。図6Aは、タイル408の例示的な実施態様を示す。図6Aに示されたアーキテクチャはまた、論理インターフェース304に含まれる他のタイルのいずれかを実装するために使用されてもよい。
タイル408は、メモリマップドスイッチ602を含む。メモリマップドスイッチ602は、複数の異なる方向の各々において通信するための複数のメモリマップドインターフェースを含むことができる。例示的かつ非限定的な例として、メモリマップドスイッチ602は、メモリマップドインターフェースが、直上のDPE402のメモリマップドインターフェースに垂直に接続するマスタを有する、1つ以上のメモリマップドインターフェースを含むことができる。したがって、メモリマップドスイッチ602は、DPE402のうちの1つ以上のメモリマップドインターフェースに対するマスタとして動作することができる。特定の例では、メモリマップドスイッチ602は、DPE402のサブセットのマスタとして動作することができる。例えば、メモリマップドスイッチ602は、タイル408の上のDPE402の列のマスタとして動作することができる。メモリマップドスイッチ602は、DPEアレイ110内の複数の異なる回路(例えば、DPE)に接続するための追加のメモリマップドインターフェースを含んでもよいことを理解されたい。メモリマップドスイッチ602のメモリマップドインターフェースはまた、タイル408の上方に位置する回路要素(例えば、1つ以上のDPE(複数可))と通信することができる1つ以上のスレーブも含むことができる。
図6Aの例では、メモリマップドスイッチ602は、論理インターフェース304の隣りのタイル内のメモリマップドスイッチへの水平方向の通信を容易にする1つ以上のメモリマップドインターフェースを含むことができる。例示の目的のために、メモリマップドスイッチ602は、メモリマップドインターフェースを介して水平方向において隣りのタイルに接続することができ、そのようなメモリマップドインターフェースの各々は、1つ以上のマスタ及び/又は1つ以上のスレーブを含む。したがって、メモリマップドスイッチ602は、そのようなDPEがタイル408の上方の列にあるか、又は論理インターフェース304の別のタイルがインターフェースとして動作する別のサブセットにあるかにかかわらず、データ(例えば、構成、制御、及び/又はデバッグデータ)をあるタイルから別のタイルに移動させて、複数のDPE402の正しいDPE402及び/又はサブセットに到達させ、データをターゲットDPEに向けることができる。例えば、メモリマップドトランザクションが物理インターフェース306から受信される場合、メモリマップドスイッチ602は、トランザクション(複数可)を水平方向に、例えば論理インターフェース304内の他のタイルに分配することができる。
メモリマップドスイッチ602はまた、タイル408内の制御レジスタ636に結合されている1つ以上のマスタ及び/又はスレーブを有するメモリマップドインターフェースを含むことができる。メモリマップドスイッチ602を通じて、構成データを制御レジスタ636にロードして、タイル408内の構成要素によって実施される様々な機能及び動作を制御することができる。図6A、図6B、及び図6Cは、制御レジスタ636とタイル408の1つ以上の要素との間の接続を示す。しかしながら、制御レジスタ636は、タイル408の他の要素を制御することができ、したがって、そのような他の要素への接続を有することができるが、そのような接続は図6A、図6B、及び/又は図6Cには示されていないことを理解されたい。
メモリマップドスイッチ602は、ブリッジ618を介して物理インターフェース306に結合されているメモリマップドインターフェースを含むことができる。メモリマップドインターフェースは、1つ以上のマスタ及び/又はスレーブを含むことができる。ブリッジ618は、物理インターフェース306からのメモリマップドデータ転送(例えば、構成、制御、及び/又はデバッグデータ)を、メモリマップドスイッチ602によって受信され得るメモリマップドデータに変換することができる。
タイル408はまた、イベント処理回路要素を含むことができる。例えば、タイル408はイベント論理632を含む。イベント論理632は、制御レジスタ636によって構成されてもよい。図6Aの例では、イベント論理632は、制御、デバッグ、及びトレース(CDT)回路620に結合されている。制御レジスタ636にロードされた構成データは、タイル408内でローカルに検出され得る特定のイベントを定義する。イベント論理632は、DMAエンジン612、メモリマップドスイッチ602、ストリームスイッチ606、ビットワイズインターフェース610内に位置する先入れ先出し(FIFO)メモリ、及び/又はストリームインターフェース614から発生し、及び/又はそれに関連する、様々な異なるイベントを制御レジスタ636ごとに検出することができる。イベントの例は、DMA転送完了、ロック解放、ロック取得、ビット単位転送の終了、又はタイル408を通るデータフローの開始若しくは終了に関連する他のイベントを含んでもよいが、これらに限定されない。イベント論理632は、そのようなイベントをイベントブロードキャスト回路要素604及び/又はCDT回路620に提供することができる。別の例示的な実施態様では、イベント論理632は、CDT回路620への直接接続を有しなくてもよく、むしろイベントブロードキャスト回路要素604を介してCDT回路620に接続してもよい。
タイル408は、イベントブロードキャスト回路要素604及びイベントブロードキャスト回路要素630を含む。イベントブロードキャスト回路要素604及びイベントブロードキャスト回路要素630の各々は、DPEアレイ110のイベントブロードキャストネットワークと論理インターフェース304の他のタイルとの間のインターフェースを提供する。イベントブロードキャスト回路要素604は、論理インターフェース304の隣接するか又は隣りのタイル内のイベントブロードキャスト回路要素及びイベントブロードキャスト回路要素630に結合されている。イベントブロードキャスト回路要素630は、論理インターフェース304の隣接するか又は隣りのタイル内のイベントブロードキャスト回路要素に結合されている。論理インターフェース304のタイルがグリッド又はアレイに配列される1つ以上の他の例示的な実施態様では、イベントブロードキャスト回路要素604及び/又はイベントブロードキャスト回路要素630は、タイル408の上方及び/又は下方の他のタイルに位置するイベントブロードキャスト回路要素に接続されてもよい。
図6Aの例では、イベントブロードキャスト回路要素604は、(例えば、上方の)タイル408に直に隣接するDPE402のコア内のイベントブロードキャスト回路要素に結合されている。イベントブロードキャスト回路要素604はまた、ビットワイズインターフェース610にも結合される。イベントブロードキャスト回路要素630は、(例えば、上方の)タイル408に直に隣接するDPE402のメモリモジュール内のイベントブロードキャスト回路要素に結合されている。図示されていないが、別の例示的な実施態様では、イベントブロードキャスト回路要素630はまた、ビットワイズインターフェース610に結合されてもよい。
イベントブロードキャスト回路要素604及びイベントブロードキャスト回路要素630は、イベント論理632によって内部的に生成されたイベント、論理インターフェース304の他のタイル408から受信されたイベント、及び/又はDPE402から受信されたイベントを他のタイルに送信することができる。イベントブロードキャスト回路要素604はさらに、ビットワイズインターフェース610を介してそのようなイベントを他のダイに送信することができる。別の例では、イベントは、ビットワイズインターフェース610(図示せず)を使用して、イベントブロードキャスト回路要素604から、DPEアレイ110の外側に位置するASIC及び/又はPL回路ブロックなどのIC100内の他のブロック及び/又はシステムに送信されてもよい。さらに、ビットワイズインターフェース610は、他のダイからイベントを受信し、そのようなイベントをイベントブロードキャストスイッチ604及び/又はストリームスイッチ606に提供することができる。一態様において、イベントブロードキャスト回路要素604は、ビットワイズインターフェース610を介してIC100の他のダイから受信した任意のイベントを論理インターフェース304の他のタイル408及び/又はDPEアレイ110のDPE402に送信することができる。イベントは論理インターフェース304内のタイル408間でブロードキャストされ得るため、イベントは、論理インターフェース304内のタイル408及びイベントブロードキャスト回路要素を通じてターゲット(例えば、意図される)DPE402へとトラバースすることによって、DPEアレイ110内の任意のDPE402に到達することができる。例えば、1つ以上のターゲットDPE(複数可)を含むタイル408によって管理されるDPE402の列(又はサブセット)の下の論理インターフェース304のタイル408内のイベントブロードキャスト回路要素は、イベントをターゲットDPEに伝搬することができる。
図6Aの例では、イベントブロードキャスト回路要素604及びイベント論理632は、CDT回路620に結合されている。イベントブロードキャスト回路要素604及びイベント論理632は、イベントをCDT回路620に送信することができる。CDT回路620は、受信したイベントをパケット化し、イベントブロードキャスト回路要素604及び/又はイベント論理632からストリームスイッチ606にイベントを送信することができる。特定の例示的な実施態様では、イベントブロードキャスト回路要素630は、ストリームスイッチ606及び/又はCDT回路620にも接続され得る。
1つ以上の例示的な実施態様では、イベントブロードキャスト回路要素604及びイベントブロードキャスト回路要素630は、図6Aに示されるように(例えば、図6Aに示す接続のいずれかを介して)、1つ以上又はすべての方向からブロードキャストイベントを集めることができる。場合によっては、イベントブロードキャスト回路要素604及び/又はイベントブロードキャスト回路要素630は、信号の論理「OR」を実施し、結果を1つ以上又はすべての方向に(例えば、CDT回路620へを含む)転送することができる。イベントブロードキャスト回路要素604及びイベントブロードキャスト回路要素630からの各出力は、制御レジスタ636にロードされた構成データによって構成可能なビットマスクを含むことができる。ビットマスクは、いずれのイベントが各方向に個別にブロードキャストされるかを決定する。そのようなビットマスクは、例えば、イベントの望ましくない又は重複する伝播を排除することができる。
割り込みハンドラ634は、イベントブロードキャスト回路要素604に結合されており、イベントブロードキャスト回路要素604からブロードキャストされたイベントを受信することができる。1つ以上の例示的な実施態様において、割り込みハンドラ634は、イベントブロードキャスト回路要素604からの選択されたイベント及び/又はイベントの組み合わせ(例えば、DPE生成イベント及び/又はタイル408内で生成されたイベント)に応答して物理インターフェース306に対する割り込みを生成するように、制御レジスタ636にロードされる構成データによって構成されてもよい。割り込みハンドラ634は、構成データに基づいて、IC100の他のダイ内に位置する回路への割り込みを生成することができる。例えば、割り込みハンドラ634は、割り込みハンドラ634によって生成される割り込み(複数可)に基づいて、DPEアレイ110内で発生するイベント及び/又は論理インターフェース304のタイル408内で発生するイベントを、プロセッサ又はプロセッサシステムなどの他のデバイスレベル管理ブロックに通知することができる。
ビットワイズインターフェース610は、物理インターフェース306に結合する。1つ以上の例示的な実施態様では、ビットワイズインターフェース610は、DPEアレイ110と別のクロックドメインとの間の非同期クロックドメイン交差を提供する。ビットワイズインターフェース610はまた、電力レールと統合するためのレベルシフタ及び/又はアイソレーションセルを提供することができる。特定の例示的な実施態様では、ビットワイズインターフェース610は、背圧を処理するためのFIFOサポートを有する32ビット、64ビット、及び/又は128ビットインターフェースを提供するように構成されてもよい。ビットワイズインターフェース610の特定の幅は、制御レジスタ636にロードされた構成データによって制御されてもよい。
1つ以上の他の例示的な実施態様では、ビットワイズインターフェース610は、物理インターフェース306を介して他のダイ内の他のタイプの回路ブロック及び/又はシステムに結合される。例えば、ビットワイズインターフェース610は、ASIC、アナログ/混合信号回路要素、及び/又は他のシステムに結合されてもよい。したがって、ビットワイズインターフェース610は、タイル408とそのような他のシステム及び/又は回路ブロックとの間でデータを転送することができる。
図6Aの例では、タイル408はストリームスイッチ606を含む。ストリームスイッチ606は、隣接するか又は隣りのタイル408内のストリームスイッチ及び隣接するか又は隣りのタイル408内のストリームスイッチに、1つ以上のストリームインターフェースを通じて結合される。各ストリームインターフェースは、1つ以上のマスタ及び/又は1つ以上のスレーブを含むことができる。特定の例示的な実施態様では、隣り合うストリームスイッチの各対は、各方向の1つ以上のストリームを介してデータを交換することができる。ストリームスイッチ606はまた、1つ以上のストリームインターフェースによってタイル408の直上のDPE内のストリームスイッチに結合される。ストリームスイッチ606はまた、ストリームマルチプレクサ/デマルチプレクサ608(図6Aにおいてはストリームmux/demuxと略記)を介してビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614に結合される。蒸気スイッチ606は、例えば、ストリームマルチプレクサ/デマルチプレクサ608を通じてビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614の各々と通信するために使用される1つ以上のストリームインターフェースを含んでもよい。
ストリームスイッチ606は、制御レジスタ636にロードされる構成データによって構成可能であってもよい。ストリームスイッチ606は、例えば、構成データに基づいてパケット交換式及び/又は回路交換式動作をサポートするように構成されてもよい。さらに、構成データは、ストリームスイッチ606が通信する特定のDPE(複数可)402を定義する。1つ以上の例示的な実施態様では、構成データは、ストリームスイッチ606が通信するタイル408の直上のDPE402の列内の特定のDPE402及び/又はDPE402のサブセットを定義する。
ストリームマルチプレクサ/デマルチプレクサ608は、ビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614から受信したデータをストリームスイッチ606に誘導することができる。同様に、ストリームマルチプレクサ/デマルチプレクサ608は、ストリームスイッチ606から受信したデータをビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614に誘導することができる。例えば、ストリームマルチプレクサ/デマルチプレクサ608は、選択されたデータをビットワイズインターフェース610にルーティングし、選択されたデータをDMAエンジン612にルーティングし(そのようなデータはメモリマップドトランザクションとして物理インターフェース306に送信される)、及び/又は選択されたデータをストリームインターフェース614にルーティングする(データは1つ以上のデータストリームとして物理インターフェース306を介して送信される)ように、制御レジスタ636に記憶された構成データによってプログラムすることができる。
DMAエンジン612は、セレクタブロック616を通じて物理インターフェース306にデータを誘導するためのマスタとして動作することができる。DMAエンジン612は、DPE402からデータを受信し、そのようなデータをメモリマップドデータトランザクションとして物理インターフェース306に提供することができる。1つ以上の例示的な実施態様において、DMAエンジン612は、DMAエンジン612に含まれる複数のチャネル及び/又はDMAエンジン612内の1つのチャネルを、ロック要求をポーリングして駆動するマスタと同期させるために使用することができるハードウェア同期回路要素を含む。例えば、マスタは、IC100の別のダイ内のプロセッサ及び/又はプロセッサシステムであってもよい。マスタはまた、DMAエンジン612内のハードウェア同期回路要素によって生成された割り込みを受信することもできる。
1つ以上の例示的な実施態様では、DMAエンジン612は、外部メモリ(例えば、IC100の外部のメモリ)及び/又はIC100の別のダイ(例えば、RAMのみを含むダイ)に実装されたメモリにアクセスすることができる。例えば、DMAエンジン612は、DPE402からデータストリームを受信し、物理インターフェース306を通じてメモリにデータストリームを送信することができる。同様に、DMAエンジン612は、外部メモリからデータを受信することができ、データは、論理インターフェース304の他のタイル(複数可)408に、及び/又は、ターゲットDPE402まで分散され得る。
1つ以上の例示的な実施態様において、DMAエンジン612は、DPEグローバル制御設定レジスタ(DPE GCSレジスタ)638を使用して設定され得るセキュリティビットを含む。メモリは、異なる領域又はパーティションに分割されてもよく、DPEアレイ110は、メモリの特定の領域にアクセスすることのみを許可される。DMAエンジン612内のセキュリティビットは、DPEアレイ110が、DMAエンジン612によって、セキュリティビットごとに許可されるメモリの特定の領域(複数可)にのみアクセスできるように設定されてもよい。例えば、DPEアレイ110によって実装されるアプリケーションは、メモリの特定の領域のみにアクセスするように制約されてもよく、メモリの特定の領域からの読み出しのみに制約されてもよく、及び/又はこのメカニズムを使用してメモリへの書き込みが完全に制約されてもよい。
メモリへのアクセスを制御するDMAエンジン612内のセキュリティビットは、DPEアレイ110を全体として制御するように実装されてもよく、或いは、メモリへのアクセスがDPEごとに、例えばコアごとに、又は例えばカーネル及び/若しくは他のアプリケーションを実装するために協調的に動作するように構成されたコアのグループに対して指定及び/又は制御され得る、より細分化された様式で実装されてもよい。
ストリームインターフェース614は、物理インターフェース306からデータを受信し、そのデータをマルチプレクサ/デマルチプレクサ608へのストリームに転送することができる。ストリームインターフェース614はさらに、ストリームマルチプレクサ/デマルチプレクサ608からデータを受信し、そのデータを物理インターフェース306に転送することができる。セレクタブロック616は、DMAエンジン612又はストリームインターフェース614から物理インターフェース306にデータを渡すように構成可能である。
CDT回路620は、タイル408内で制御、デバッグ、及びトレース動作を実施することができる。デバッグに関して、タイル408内に位置するレジスタの各々は、メモリマップドスイッチ602を介してアクセス可能なメモリマップ上にマッピングされる。CDT回路620は、例えば、トレースハードウェア、トレースバッファ、性能カウンタ、及び/又はストール論理などの回路を含むことができる。CDT回路620のトレースハードウェアは、トレースデータを収集することができる。CDT回路620のトレースバッファは、トレースデータをバッファリングすることができる。さらに、CDT回路620は、トレースデータをストリームスイッチ606に出力することができる。
1つ以上の例示的な実施態様では、CDT回路620は、データ、例えばトレース及び/又はデバッグデータを収集し、そのようなデータをパケット化し、次いでストリームスイッチ606を介してパケット化されたデータを出力することができる。例えば、CDT回路620は、パケット化されたデータを出力し、そのようなデータをストリームスイッチ606に供給することができる。さらに、制御レジスタ636又はその他は、それぞれのタイルのメモリマップドスイッチ602を通じたメモリマップドトランザクションを介してデバッグ中に読み出し又は書き込むことができる。同様に、CDT回路620内の性能カウンタは、それぞれのタイルのメモリマップドスイッチ602を通じたメモリマップドトランザクションを介してプロファイリング中に読み出し又は書き込むことができる。
1つ以上の例示的な実施態様では、CDT回路620は、イベントブロードキャスト回路要素604(又はイベントブロードキャスト回路要素630)によって伝搬された任意のイベント、又はCDT回路620に結合されているイベントブロードキャスト回路要素604のインターフェースによって利用されるビットマスクごとの選択されたイベントを受信することができる。CDT回路620はさらに、イベント論理632によって生成されたイベントを受信することができる。例えば、CDT回路620は、DPE402、タイル408(例えば、イベント論理632及び/又はイベントブロードキャストスイッチ604)、及び/又は論理インターフェース304の他のタイルからブロードキャストイベントを受信することができる。CDT回路620は、複数のそのようなイベントをパケットにともにパッキング、例えばパケット化し、パケット化されたイベントをタイムスタンプ(複数可)と関連付けることができる。CDT回路620はさらに、パケット化されたイベントを、ストリームスイッチ606を介してタイル408の外部の宛先に送信することができる。イベントは、ストリームスイッチ606及びストリームマルチプレクサ/デマルチプレクサ608によって、ビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614を介して物理インターフェース306に送信され得る。
DPE GCSレジスタ638は、DPEアレイ110への及び/又はDPEアレイ110からの安全なアクセスを有効化又は無効化するために使用されるDPEグローバル制御設定/ビット(本明細書においては「セキュリティビット」とも呼ばれる)を記憶することができる。DPE GCSレジスタ638は、図6Cに関連して以下により詳細に説明するSoCセキュア/初期化インターフェースを介してプログラムすることができる。SoCセキュア/初期化インターフェースから受信されたセキュリティビット(複数可)は、図6Aに示すように、バスを介して論理インターフェース304のあるタイルから次のタイルに伝播することができる。
1つ以上の例示的な実施態様では、DPEアレイ110への外部メモリマップドデータ転送は、セキュアでないか又は信頼できない場合がある。DPE GCSレジスタ638内にセキュリティビットを設定することなく、メモリマップドデータ転送によって通信することができるIC100内の任意のエンティティは、DPEアレイ110と通信することができる。DPE GCSレジスタ638内にセキュリティビットを設定することにより、DPEアレイ110との通信を許可される特定のエンティティは、セキュアトラフィックを生成することができる指定されたエンティティのみがDPEアレイ110と通信することができるように定義され得る。
1つ以上の例示的な実施態様では、メモリマップドデータ転送は、トランザクションがセキュアであるか又はセキュアでないかを指定する追加のサイドバンド信号、例えばビットを含むことができる。DPE GCSレジスタ638内のセキュリティビットが設定されると、論理インターフェース304、例えばタイル408に入るメモリマップドトランザクションは、論理インターフェース304に到達するメモリマップドトランザクションがセキュアであることを示すようにサイドバンド信号を設定しなければならない。論理インターフェース304に到達するメモリマップドトランザクションにサイドバンドビットが設定されておらず、セキュリティビットがDPE GCSレジスタ638内で設定されている場合、論理インターフェース304は、トランザクションがDPE402に入るか又は渡ることを許可しない。
1つ以上の例示的な実施態様では、IC100は、ルートオブトラストとして動作するセキュアエージェント(例えば、回路)を含む。PMCは、例えば、セキュアエージェントであってもよい。セキュアエージェントは、DPE GCSレジスタ638のセキュリティビットが設定されたときにDPEアレイ110にアクセスするためにメモリマップドトランザクション内のサイドバンドビットを設定するのに必要な許可を用いてIC100内の異なるエンティティ(例えば、回路)を構成することができる。セキュアエージェントは、IC100が構成された時点で、その中に実装され得る異なるマスタに許可を与え、それによって、そのようなマスタに、セキュアトランザクションをDPEアレイ110に発行する能力を与える。
図6Bは、タイル408の別の例示的な実施態様を示す。図6Bに示された例示的なアーキテクチャはまた、論理インターフェース304に含まれる他のタイルのいずれかを実装するために使用されてもよい。図6Bの例は、図6Aに示されたアーキテクチャの単純化されたバージョンを示す。図6Bのタイルアーキテクチャは、DPE402並びにIC100内の他のシステム及び/又はダイの間の接続性を提供する。例えば、図6Bのタイル408は、DPE402と、アナログ/混合信号回路ブロック、ASIC、又は本明細書に記載の他のシステムとの間のインターフェースを提供することができる。図6Bの例では、DMAエンジン612、ストリームインターフェース614、セレクタブロック616、ブリッジ618、及びストリームマルチプレクサ/デマルチプレクサ608は省略されている。したがって、図6Bのタイル408は、より少ない面積のIC100を使用して実装することができる。さらに、図示されているように、ストリームスイッチ606はビットワイズインターフェース610に直接結合されている。
図6Bの例示的なアーキテクチャは、DPE402を構成する目的でメモリマップドデータ、例えば構成データを受信することができない。そのような構成データは、メモリマップドスイッチ602を介して隣りのタイルから受信され、タイル408が管理するDPEのサブセットへと(例えば、図6Bのタイル408の上方のDPE402の列まで)方向付けられてもよい。
図6Cは、タイル408の別の例示的な実施態様を示す。特定の例示的な実施態様では、図6Cに示すアーキテクチャを使用して、論理インターフェース304内に1つのみのタイルを実装することができる。図6Cに示すアーキテクチャは、図6Bに示すアーキテクチャと同様である。図6Cには、セキュア/初期化インターフェース640、クロック信号発生器642、及びグローバルタイマ644などの追加の構成要素が含まれている。
図6Cの例では、セキュア/初期化インターフェース640は、DPEアレイ110のグローバルリセットレジスタ(図示せず)及びDPE GCSレジスタ638へのアクセスを提供することができる。DPE GCSレジスタ638は、クロック信号発生器642のための制御レジスタを含むことができる。図示されているように、セキュア/初期化インターフェース640は、DPE GCSレジスタ638にセキュリティビットを提供し、論理インターフェース304の他のタイル内の他のDPE GCSレジスタ638にセキュリティビットを伝搬することができる。セキュア/初期化インターフェース640は、論理インターフェース304のための単一のスレーブエンドポイントを実装することができる。
図6Cの例では、クロック信号発生器642は、1つ以上のクロック信号(複数可)646及び/又は1つ以上のリセット信号650を生成することができる。クロック信号(複数可)646及び/又はリセット信号650は、DPE402の各々及び/又はDPEアレイ110の論理インターフェース304の他のタイルに分配することができる。例えば、クロック信号発生器642は、1つ以上の位相ロックループ回路(PLL)を含んでもよい。図示のように、クロック信号発生器642は、DPEアレイ110と同じダイ上に位置してもよい、DPEアレイ110の外部の別の回路によって生成された基準クロック信号を受信することができる。別の例では、基準クロックは、物理インターフェース306から受信されてもよい。クロック信号発生器642は、受信した基準クロック信号に基づいてクロック信号(複数可)646を生成することができる。
図6Cの例では、クロック信号発生器642は、セキュア/初期化インターフェース640を通じて構成されている。例えば、クロック信号発生器642は、データをDPE GCSレジスタ638にロードすることによって構成されてもよい。したがって、DPEアレイ110の1つ以上のクロック周波数、及び、リセット信号650の生成は、セキュア/初期化インターフェース640を通じて適切な構成データをDPE GCSレジスタ638に書き込むことによって設定することができる。試験目的のために、クロック信号(複数可)646及び/又はリセット信号650はまた、物理インターフェース306に直接ルーティングされてもよい。
セキュア/初期化インターフェース640は、制御/デバッグ(回路)ブロック(例えば、図示されていないIC100の制御及び/又はデバッグシステム)に結合することができる。1つ以上の例示的な実施態様では、セキュア/初期化インターフェース640は、制御/デバッグブロックにステータス信号を提供することができる。例示的かつ非限定的な例として、セキュア/初期化インターフェース640は、クロック信号発生器642の内部から生成される「PLLロック」信号を制御/デバッグブロックに提供することができる。PLLロック信号は、PLLが基準クロック信号に対するロックをいつ取得するかを示すことができる。
セキュア/初期化インターフェース640は、物理インターフェース306を介して命令及び/又はデータを受信することができる。データは、本明細書に記載のセキュリティビット、クロック信号発生器構成データ、及び/又はDPE GCSレジスタ638に書き込むことができる他のデータを含むことができる。
グローバルタイマ644は、CDT回路620とインターフェースすることができる。例えば、グローバルタイマ644は、CDT回路620に結合されてもよい。グローバルタイマ644は、追跡に使用されるタイムスタンピングイベントのためにCDT回路620によって使用される信号を提供することができる。1つ以上の例示的な実施態様では、グローバルタイマ644は、論理インターフェース304のタイルのうちの他のタイル内のCDT回路620に結合されてもよい。例えば、グローバルタイマ644は、図6A、図6B、及び/又は図6Cの例示的なタイル内のCDT回路620に結合されてもよい。グローバルタイマ644はまた、制御/デバッグブロックに結合されてもよい。
図6A、図6B、及び図6Cのアーキテクチャをまとめて参照すると、タイル408は、様々な異なるデータパスを使用してDPE402と通信することができる。一例では、タイル408は、DMAエンジン612を使用してDPE402と通信することができる。例えば、タイル408は、DMAエンジン612を使用して、DPEアレイ110の1つ以上のDPE402のDMAエンジンと通信することができる。通信は、DPE402から論理インターフェース304のタイル408に、又は論理インターフェース304のタイル408からDPE402に流れることができる。別の例では、DMAエンジン612は、それぞれのDPE内のストリームスイッチによって、DPEアレイ110の1つ以上のDPE402の1つ以上のコア404と通信することができる。通信は、1つ以上のコア404から論理インターフェース304のタイル408に、及び/又は論理インターフェース304のタイル408からDPEアレイ110の1つ以上のDPE402の1つ以上のコア404に流れることができる。
1つ以上の例示的な実施態様において、ビットワイズインターフェース610、DMAエンジン612、及びストリームインターフェース614の各々は、選択的にオンにされて物理インターフェース306に接続されてもよく、又は、オフにされて物理インターフェース306から切断されてもよい。したがって、ビットワイズインターフェース610、DMAエンジン612、及びストリームインターフェース614の任意の1つ以上又は任意の組み合わせは、タイル408の構成データに基づいて物理インターフェース306に接続されてもよく、又は、物理インターフェース306から切断されてもよい。一態様では、そのような構成データは、制御レジスタ636にロードされてもよい。別の態様では、そのような構成データは、IC100の構成ピンによって提供されてもよい。
物理インターフェース306に接続されるか、又は物理インターフェース306から切断される特定のインターフェース(複数可)は、タイル408ごとに異なり得る。例えば、第1のタイル408において、1つ以上のインターフェースの特定の組み合わせが物理インターフェース306に接続されてもよく、一方で、1つ以上のインターフェースの異なる組み合わせが第2の異なるタイル408において物理インターフェース306に接続されてもよい。さらに、物理インターフェース306に対して接続及び/又は切断される特定のインターフェース及び/又は複数のインターフェースは、それぞれの各タイル408に含まれるインターフェースの特定のタイプに基づいて変化してもよい。
例示的な一実施態様では、タイル408の構成データは、ビットワイズインターフェース610及び/又はDMAエンジン612が物理インターフェース306から切断されている間に、ストリームインターフェース614を有効化し、物理インターフェース306に接続する。例示の目的のために、ストリームインターフェース614は、低いレイテンシで、IC100の他のダイにおけるハード機能を容易にするか又はアクセスするために、物理インターフェース306に接続されてもよい。
別の例示的な一実施態様では、タイル408の構成データは、ビットワイズインターフェース610及び/又はストリームインターフェース614が物理インターフェース306から切断されている間に、DMAエンジン612(例えば、メモリマップドインターフェース)を有効化し、物理インターフェース306に接続する。例示の目的のために、DMAエンジン612は、チップ外又はIC100外に位置するメモリを参照して外部メモリにアクセスするか、又は異なるダイ内のIC100内に実装されたメモリにアクセスするために、物理インターフェース306に接続されてもよい。メモリの例は、IC100の他のダイに実装されるか、及び/又はIC100の外部に実装されるかにかかわらず、RAM(例えば、DDR)及び/又は高帯域幅メモリ(HBM)を含むが、これらに限定されない。
別の例示的な一実施態様では、タイル408の構成データは、DMAエンジン612及び/又はストリームインターフェース614が物理インターフェース306から切断されている間に、ビットワイズインターフェース610を有効化し、物理インターフェース306に接続する。例示の目的のために、ビットワイズインターフェース610は、エラー通知及び/又は割り込みをIC100の他のダイに提供するために、物理インターフェース306に接続されてもよい。
図7は、ビットワイズインターフェース610の例示的な実施態様を示す。図7の例では、ビットワイズインターフェース610は、使用される特定のタイルアーキテクチャに応じて、物理インターフェース306をストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608に結合する複数のチャネルを含む。ビットワイズインターフェース610内の図7に示されているチャネルの特定の数は、例示を目的としており、限定するものではない。他の実施形態では、ビットワイズインターフェース610は、図7に示すよりも少ない又は多いチャネルを含んでもよい。さらに、ビットワイズインターフェース610は物理インターフェース306に接続するが、1つ以上の他の例示的な実施態様では、ビットワイズインターフェース610は、IC100の1つ以上の他のシステム及び/又は回路ブロックに結合することができる。
1つ以上の例示的な実施態様において、物理インターフェース306及び/又はそれに結合されている他のダイは、DPE402とは異なる基準電圧及び異なるクロック速度で動作する。したがって、図7の例では、ビットワイズインターフェース610は、複数のシフト・アイソレーション回路702と、複数の非同期FIFOメモリ704とを含む。チャネルの各々が、シフトアイソレーション回路702及び非同期FIFOメモリ704を含む。チャネルの第1のサブセットは、物理インターフェース306(及び/又は他の回路要素)からストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608にデータを搬送する。チャネルの第2のサブセットは、ストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608から物理インターフェース306及び/又は他の回路要素にデータを搬送する。
シフト・アイソレーション回路702は、異なる電圧のドメイン間をインターフェースすることができる。この場合、シフト・アイソレーション回路702は、物理インターフェース306及び/又は他の回路要素の動作電圧とDPE402の動作電圧との間を遷移するインターフェースを提供することができる。非同期FIFOメモリ704は、2つの異なるクロックドメイン間でインターフェースすることができる。この場合、非同期FIFOメモリ704は、物理インターフェース306若しくは他の回路要素及び/又はそれに結合される他の回路要素のクロックレートとDPE402のクロックレートとの間を遷移するインターフェースを提供することができる。
1つ以上の例示的な実施態様では、非同期FIFOメモリ704は、DPEアレイ110に対する32ビットインターフェースを有する。非同期FIFOメモリ704とシフト・アイソレーション回路702との間の接続、及び、シフト・アイソレーション回路702と物理インターフェース306との間の接続は、幅がプログラム可能(例えば、構成可能)であってもよい。例えば、非同期FIFOメモリ704とシフト・アイソレーション回路702との間の接続、及び、シフト・アイソレーション回路702と物理インターフェース306との間の接続は、幅が32ビット、64ビット、又は128ビットであるように構成されてもよい。説明したように、ビットワイズインターフェース610は、記載されたビット幅を達成するために、メモリマップドスイッチ602が構成データを制御レジスタ636に書き込むことによって構成可能である。メモリマップドスイッチ602を使用して、物理インターフェース306側の非同期FIFOメモリ704の側は、32ビット、64ビット、又は128ビットのいずれかを使用するように構成可能であってもよい。本明細書で提供されるビット幅は、例示を目的としている。他の実施形態では、他のビット幅が使用されてもよい。いずれの場合でも、様々な構成要素について説明した幅は、制御レジスタ636にロードされた構成データに基づいて変えることができる。
図8は、ストリームインターフェース614の例示的な実施態様を示す。一態様では、DPE402は、ストリームスイッチ606を使用してDMAエンジン612にアクセスすることができる。DMAエンジン612は、物理インターフェース306からのメモリマップドトランザクションを、DPEに送信するためのデータストリームに変換し、DPEからのデータストリームを、物理インターフェース306を介して送信するためのメモリマップドトランザクションに変換することができる。別の態様では、データストリームは、ストリームインターフェース614へと方向付けられてもよい。
図8の例では、ストリームインターフェース614は、物理インターフェース306をストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608に結合する複数のチャネルを含む。各チャネルは、FIFOメモリと、アップサイズ回路又はダウンサイズ回路のいずれかとを含むことができる。チャネルの第1のサブセットは、物理インターフェース306からストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608にデータを搬送する。チャネルの第2のサブセットは、ストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608から物理インターフェース306にデータを搬送する。NoCストリームインターフェース614内の図8に示されているチャネルの特定の数は、例示を目的としており、限定するものではない。他の例示的な実施態様では、ストリームインターフェース614は、図8に示すよりも少ない又は多いチャネルを含んでもよい。
1つ以上の例示的な実施態様では、アップサイズ回路808(図8において「US回路」と略記)の各々は、データストリームを受信し、受信したデータストリームの幅を増大することができる。例えば、各アップサイズ回路808は、32ビットのデータストリームを受信し、128ビットのデータストリームを対応するFIFOメモリ810に出力してもよい。FIFOメモリ810の各々は、アービトレーション・マルチプレクサ回路812に結合されている。アービトレーション・マルチプレクサ回路812は、結果として得られる出力データストリームを物理インターフェース306に提供するための特定のアービトレーション方式又は優先度(例えば、ラウンドロビン又は他のスタイル)を使用して、受信データストリーム間でアービトレーションすることができる。アービトレーション・マルチプレクサ回路812は、クロックサイクルごとに新しい要求を処理して受け入れることができる。DPE402と物理インターフェース306との間のクロックドメイン交差は、例えばFIFOメモリ804を使用してタイル408内で処理することができる。
デマルチプレクサ802は、物理インターフェース306からデータストリームを受信可能である。例示の目的のために、データストリームは、幅が128ビットであってもよい。DPE402と物理インターフェース306との間のクロックドメイン交差は、前述のようにビットワイズインターフェース610内で処理されてもよい。デマルチプレクサ802は、受信したデータストリームをFIFOメモリ804のうちの1つに転送することができる。デマルチプレクサ802がデータストリームを提供する特定のFIFOメモリ804は、データストリーム自体の中に符号化されてもよい。FIFOメモリ804は、ダウンサイズ回路806(図8において「DS回路」と略記)に結合される。ダウンサイズ回路806は、時分割多重化を使用してバッファリングした後に、受信ストリームをより小さい幅にダウンサイズすることができる。例えば、ダウンサイズ回路806は、ストリームを128ビット幅から32ビット幅にダウンサイズしてもよい。
図示されるように、ダウンサイズ回路806及びアップサイズ回路808は、使用される論理インターフェース304のタイルの特定のアーキテクチャに応じて、ストリームスイッチ606又はストリームマルチプレクサ/デマルチプレクサ608に結合される。図8は、例示を目的として提供されており、限定として意図されていない。チャネル内の構成要素の順序及び/又は接続性(例えば、アップサイズ/ダウンサイズ回路及びFIFOメモリ)は、変化してもよい。
1つ以上の他の例示的な実施態様では、図7に関連して説明したように、ビットワイズインターフェース610は、図8に関連して説明したようなアップサイズ回路及び/又はダウンサイズ回路を含んでもよい。例えば、物理インターフェース308(又は他の回路要素)からストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608にデータを搬送する各チャネル内に、ダウンサイズ回路が含まれてもよい。ストリームスイッチ606及び/又はストリームマルチプレクサ/デマルチプレクサ608から物理インターフェース306(又は他の回路要素)にデータを搬送する各チャネル内に、アップサイズ回路が含まれてもよい。
1つ以上の他の例示的な実施態様では、独立した要素として示されているが、各ダウンサイズ回路806は、例えば単一のブロック又は回路として、対応するFIFOメモリ804と組み合わされてもよい。同様に、各アップサイズ回路808は、例えば単一のブロック又は回路として、対応するFIFOメモリ810と組み合わされてもよい。
図9は、DMAエンジン612の例示的な実施態様を示す。図9の例では、DMAエンジン612はDMAコントローラ902を含む。DMAコントローラ902は、2つの別個のモジュール又はインターフェースに分割されてもよい。各モジュールは、互いに独立して動作することができる。DMAコントローラ902は、メモリマップド-ストリームインターフェース(インターフェース)904にマップされたメモリと、ストリーム-メモリマップドインターフェース(インターフェース)906とを含むことができる。インターフェース904及びインターフェース906の各々は、2つ以上の別個のチャネルを含んでもよい。したがって、DMAエンジン612は、インターフェース906を介してストリームスイッチ606から2つ以上の入来ストリームを受信し、インターフェース904を介してストリームスイッチ606に2つ以上の出来ストリームを送信することができる。DMAコントローラ902は、マスタメモリマップドインターフェース914をさらに含むことができる。マスタメモリマップドインターフェース914は、物理インターフェース306をインターフェース904及びインターフェース906に結合する。
DMAエンジン612はまた、ハードウェア同期回路要素910及びバッファ記述子レジスタファイル908を含むことができる。ハードウェア同期回路要素910及びバッファ記述子レジスタファイル908には、マルチプレクサ912を介してアクセスすることができる。したがって、ハードウェア同期回路要素910とバッファ記述子レジスタファイル908の両方には、制御インターフェースを介して外部的にアクセスすることができる。そのような制御インターフェースの例には、DPE402からのメモリマップドインターフェース又は制御ストリームインターフェースが含まれるが、これらに限定されない。DPEの制御ストリームインターフェースの例は、DPEのコアからのストリーミングインターフェース出力である。
ハードウェア同期回路要素910は、DMAエンジン612に含まれる複数のチャネル及び/又はDMAエンジン612内の1つのチャネルを、ロック要求をポーリングして駆動するマスタと同期させるために使用することができる。例えば、マスタは、物理インターフェース306を介してDMAエンジン612に結合されている別のシステムであってもよい。別の例では、マスタはまた、ロックが利用可能である場合に、DMAエンジン612内のハードウェア同期回路要素910によって生成された割り込みを受信することもできる。
DMA転送は、バッファ記述子レジスタファイル908内に記憶されたバッファ記述子によって定義することができる。インターフェース906は、バッファ記述子内の情報に基づいて、物理インターフェース306への読み出し転送を要求することができる。インターフェース904からストリームスイッチ606への出来ストリームは、ストリームスイッチの構成レジスタに基づいて、パケット交換式又は回路交換式として構成することができる。
図10は、物理インターフェース306及び312の例示的な実施態様を示す。物理インターフェース306は、複数の回路ブロック1002(例えば、図10において1002-1~1002-Nとして示されている)を含んでもよい。図10の例では、物理インターフェース306は、回路ブロック1002の各々がチャネルに対応するマルチチャネルインターフェースとして実装される。ダイ106の物理インターフェース312もまた、複数の回路ブロック1006(例えば、1006-1~1006-Nとして示されている)を含む。物理インターフェース312は、ブロック1006の各々がチャネルに対応するマルチチャネルインターフェースとして実装される。図10の例では、チャネルは、一対の回路ブロック、例えば、「対応する回路ブロック」とも呼ばれる回路ブロック1002-1と回路ブロック1006-1で構成され、単一のチャネルを形成する。例示的な実施態様では、ブロック1002及び1004の各々は、Lagunaサイト(カリフォルニア州サンノゼのXilinx,Inc.から入手可能)として実装されてもよい。
回路ブロック1002-1は、複数のフリップフロップ1004(図10では「FF」とラベル付けされている)を含む。図10の例では、6つのフリップフロップ1004(例えば、FF1004-1~FF1004-6)がチャネルを形成している。各フリップフロップ1004には、クロック信号(TX-CLK)、クロックイネーブル信号(CE)、及びセットリセット(SR)信号が与えられる。同様に、回路ブロック1006-1は、複数のフリップフロップ1008(図10では「FF」とラベル付けされている)を含む。図10の例では、6つのフリップフロップ1008(例えば、FF1008-1~FF1008-6)がチャネルを形成している。各フリップフロップ1008には、クロック信号(RX-CLK)、クロックイネーブル信号(CE)、及びセットリセット(SR)信号が与えられる。送信及び受信フリップフロップ(例えば、FF1004-6及びFF1008-6)の各対が、セルを形成する。したがって、図10に示す例示的なチャネルは6つのセルを含む。
図10の例では、ダイ間ワイヤ116は、回路ブロック1002-1のフリップフロップ1004を回路ブロック1006-1のフリップフロップ1008に接続する。1つ以上の例示的な実施態様では、ダイ間ワイヤ116は、図1に関連して説明したようにインターポーザ内に実装されてもよい。1つ以上の他の例示的な実施態様では、ダイ間ワイヤ116は、図2に関連して説明したようにブリッジダイ内に実装されてもよい。
例示的な一実施態様では、各回路ブロック1002は、同じ又は共通のクロック信号を使用してもよい。他の例示的な実施態様では、各回路ブロック1002は、他の回路ブロック1002から独立したクロック信号を使用してもよい。互いに独立したクロック信号は、互いの導関数ではないか、又は、例えば位相、周波数、デューティサイクルなどの1つ以上の特性が異なるクロック信号であってもよい。さらに他の例示的な実施態様では、1つ以上の回路ブロック1002の異なるグループ分けは、同じ又は共通のクロック信号を利用してもよく、あるグループから別のグループへのクロック信号は互いに独立している。回路ブロック1006に提供されるクロック信号は、対応する回路ブロック1002のクロック信号に対応してもよく、又は一致してもよい。これに関して、異なるチャネルは互いに同期している必要はない。
別の例示的な実施態様では、各回路ブロック1002内のフリップフロップは、送信又は受信フリップフロップであるように構成されてもよい。対応する回路ブロック1006内の対応するフリップフロップは逆に構成されている。図10の例では、回路ブロック1002-1内の各フリップフロップ1004は送信フリップフロップとして構成され、対応する回路ブロック1006-1内の各フリップフロップ1008は受信フリップフロップとして構成されている。別の例では、回路ブロック1002-1内の各フリップフロップ1004は受信フリップフロップとして構成されてもよく、対応する回路ブロック1006-1内の各フリップフロップ1008は送信フリップフロップとして構成されてもよい。各回路ブロック1002は、逆に構成された対応する回路ブロック1006とは独立して構成されてもよい。
別の例では、回路ブロック1002-1のフリップフロップ1004のうちの1つ以上は、送信フリップフロップ(例えば、FF1004-1及びFF1004-2)として構成されてもよく、一方、フリップフロップ1004のうちの1つ以上の他のフリップフロップ(例えば、FF1004-3、1004-4、1004-5、及び1004-6)は、受信フリップフロップとして構成される。対応する回路ブロック1006-1は逆に構成され、フリップフロップ1008のうちの1つ以上は受信フリップフロップ(例えば、FF1008-1及びFF1008-2)として構成されてもよく、一方、フリップフロップ1008のうちの1つ以上の他のフリップフロップ(例えば、FF1008-3、1008-4、1008-5、及び1008-6)は送信フリップフロップとして構成される。このようにして、各回路ブロック1002は所望の数の送信及び受信フリップフロップを用いて構成することができ、一方、各対応する回路ブロック1006は逆に構成される。
例示的な一実施態様では、タイル408のインターフェース(例えば、ビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614)から受信された任意のデータストリームは、ビット対ビット(例えば、ワイヤツーワイヤ)の対応関係で異なる回路ブロック1002に提供されてもよい。例えば、タイル408のインターフェースからの32ビットのデータストリームは、物理インターフェース306に提供されてもよく、6つの回路ブロック1002を利用してもよい。タイル408のインターフェースから提供される128ビットストリームは、22個の回路ブロック1002にマッピングすることができる。しかしながら、各回路ブロック1002及び/又は1006に含まれる信号線(例えば、フリップフロップ)の数は、例示を目的としていることを理解されたい。他の例示的な実施態様では、信号線の数は6本未満であってもよく、一方で、他の場合では6本超であってもよい。
図11は、物理インターフェース306及び312の別の例示的な実施態様を示す。物理インターフェース306及び312は、マルチチャネルインターフェースとして実装される。図11の例では、回路ブロック1002及び1006は、高帯域幅メモリ(HBM)物理インターフェース(PHY)として実装される。例示的な実施態様では、物理インターフェース306及び312は、2013年の高帯域幅メモリ(HBM)DRAMメモリ規格(JESD235)又は2020年のHBM DRAMメモリ規格(JESD235A)に準拠するように実装されてもよい。
回路ブロック1002-1は、データチャネル回路1102と、コマンドアドレス回路1104と、クロック・電力マネージャ1106とを含む。対応する回路ブロック1006-1は、データチャネル回路1108と、コマンドアドレス回路1110と、クロック・電力マネージャ回路1112とを含む。データチャネルブロック1102及び1108は各々、チャネル当たり4つの32ビットワードを有する8つのチャネルを提供する。図11の例は、回路ブロックの各対(例えば、1002-1及び1006-1)が8つのチャネルを含み、したがって、1028ビットの並列データを交換することができることを示している。
例示的な実施態様では、8つのチャネルの各々は、クロック・電力マネージャ1106及び1112によってサポートされるように、独立したクロッキング及び電力の管理を有することができる。これに関して、異なるチャネルは互いに同期している必要はない。さらに、8つのチャネルの各々は、双方向通信をサポートする。図11の例では、ダイ間ワイヤ116は、回路ブロック1002-1を回路ブロック1006-1に接続する。1つ以上の例示的な実施態様では、ダイ間ワイヤ116は、図1に関連して説明したようにインターポーザ内に実装されてもよい。1つ以上の他の例示的な実施態様では、ダイ間ワイヤ116は、図2に関連して説明したようにブリッジダイ内に実装されてもよい。
例示的な一実施態様では、タイル408のインターフェース(例えば、ビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614)から受信された任意のデータストリームは、ビット対ビット(例えば、ワイヤツーワイヤ)の対応関係で異なる回路ブロック1002に提供されてもよい。例えば、タイル408のインターフェースから出力される32ビットのデータストリームは、物理インターフェース306に提供されてもよく、回路ブロック1002-1内のチャネルの1つの32ビットワードを利用してもよい。128ビットデータストリームが、回路ブロック1002-1の1つのチャネル全体にマッピングされてもよい。
図12は、物理インターフェース306及び312の別の例示的な実施態様を示す。物理インターフェース306は、1つ以上の回路ブロック1002を含み、一方、物理インターフェース312は、1つ以上の回路ブロック1006を含む。図12の例では、各回路ブロック1002、1006はトランシーバを実装する。トランシーバは、例えば、ギガビット毎秒の範囲の高いデータレートでデータを送受信することができる高速トランシーバとして実装されてもよく、回路ブロック1002、1006の各対(例えば、1002-1及び1006-1)がチャネルを実装する。各チャネルは、シリアル化送信経路及びシリアル化受信経路を含む。
物理インターフェース306を参照すると、回路ブロック1002は、シリアライザ/デシリアライザ(SERDES)1202及びトランシーバ1204を含むことができる。SERDES1202は、タイル408のインターフェース(例えば、ビットワイズインターフェース610、DMAエンジン612、及び/又はストリームインターフェース614)からデータストリーム(例えば、並列データ)を受信し、データストリームをトランシーバ1204に出力されるシリアル化データに変換することができる。タイル408のインターフェースから受信されるデータストリームは、様々な異なるビット幅のいずれかであってもよい。例示的なビット幅は、32、64、128、及び256ビットを含むが、これらに限定されない。
SERDES1202はさらに、トランシーバ1204からシリアル化データを受信し、受信したシリアル化データを、並列データを含むデータストリームに変換することができる。SERDES1202によって生成された結果として得られるデータストリームは、前述のような様々なビット幅のいずれかであってもよい。SERDES1202は、結果として得られるデータストリームをタイル408のインターフェースに出力することができる。
トランシーバ1204は、送信物理符号化副層(PCS)回路1206、受信PCS回路1208、送信物理媒体接続(PMA)回路1210、及び受信PMA1212を含むことができる。送信PCS回路1206は、シリアル化データをSERDES1202から受信することができる。送信PCS回路1206は、例えば、データ符号化、スクランブリング、アライメントマーカ挿入、ブロック及びシンボル再分配、並びにレーンブロック同期及びデスキューなどの動作を実施することができる。送信PMA1210は、送信PCS1206からデータを受信し、例えば、PMAフレーミング、オクテット同期/検出、及びさらなるスクランブリングなどの動作を実施することができる。送信PMA1210は、ダイ間ワイヤ116を介して物理インターフェース312にシリアル化データを送信することができる。
受信PMA1212は、物理インターフェース312からダイ間ワイヤ116を介してデータを受信することができる。受信PMA1212は、例えば、PMAフレーミング、オクテット同期/検出、及びデスクランブリングなどの動作を実施することができる。受信PMA1212は、受信PCS1208にデータを出力する。受信PCS1208は、例えば、データ復号、デスクランブリング、アライメントマーカ除去、ブロック及びシンボル再分配、並びにレーンブロック同期及びデスキューなどの動作を受信データに対して実施することができる。受信PCS1208は、タイル408のインターフェースに提供されるデータストリームに変換するために、処理されたデータをSERDES1202に送信する。
回路ブロック1006は、トランシーバ1214を含むことができる。トランシーバ1214は、受信PCS1216、受信PMA1220、送信PMA1222、及び送信PCS1218を含むことができる。回路ブロック1006は、DPEアレイ110にデータを送信し、及び/又はDPEアレイ110からデータを受信するダイ106に実装された回路ブロックの特定のタイプに応じて、SERDESを含んでもよく、又は含まなくてもよい。
例示的な実施態様では、トランシーバ1204及びトランシーバ1214は各々、カリフォルニア州サンノゼのXilinx,Inc.から入手可能なギガビットトランシーバ(GT)として実装されてもよい。図12の例では、ダイ間ワイヤ116は、図示のようにトランシーバ1204をトランシーバ1214に接続する。1つ以上の例示的な実施態様では、ダイ間ワイヤ116は、図1に関連して説明したようにインターポーザ内に実装されてもよい。1つ以上の他の例示的な実施態様では、ダイ間ワイヤ116は、図2に関連して説明したようにブリッジダイ内に実装されてもよい。
図10、図11、及び図12に関連して説明した例示的な実施態様は、ダイ104をダイ106と通信可能に連結するために使用することができるいくつかの異なるタイプの物理インターフェースを説明する。他の例示的な実施態様において、物理インターフェース306は、複数の異なるタイプの回路ブロック1002を含んでもよい。例えば、物理インターフェース306は、図10の回路ブロック1002のうちの1つ以上、図11の回路ブロック1002のうちの1つ以上、図12の回路ブロック1002のうちの1つ以上、又はそれらの任意の組み合わせを含んでもよい。
一態様において、物理インターフェース306のそのような異種実施態様では、あるダイ(例えば、ダイ106)に接続するために同様のタイプの回路ブロックが使用されてもよく、一方で、別のタイプの回路ブロック(例えば、この文脈における「タイプ」は、図10、図11、又は図12などの特定の実施態様を指す)は、異なるダイ(例えば、ブリッジダイ以外の追加のダイ)と通信するために使用される。
別の態様において、物理インターフェース306の異種実施態様では、異なるタイプの回路ブロックが含まれてダイ106に接続してもよい。例えば、物理インターフェースは、ダイ106の物理インターフェース312の対応する実施態様と通信する、図10の回路ブロック1002のうちの1つ以上、図11の回路ブロック1002のうちの1つ以上、図12の回路ブロック1002のうちの1つ以上、又はそれらの任意の組み合わせを含んでもよい。
図13は、複数のDPEインターフェースを含む例示的な実施態様を示す図である。図13の例では、IC100のダイ104及び106が示されている。ダイ間ワイヤは、図1又は図2に関連して説明したように実装されてもよい。図示のように、ダイ104は、2つのDPEアレイ110-1及び110-2を含む。DPEアレイ110-1は、DPEインターフェース302-1に接続される。DPEインターフェース302-1は、論理インターフェース304-1及び物理インターフェース306-1を含む。DPEアレイ110-2は、DPEインターフェース302-2に接続される。DPEインターフェース302-2は、論理インターフェース304-2及び物理インターフェース306-2を含む。
ダイ106は、物理インターフェース312-1及び物理インターフェース312-2を含む。物理インターフェース312-1は、物理インターフェース306-1に接続する。物理インターフェース312-2は、物理インターフェース306-2に接続する。1つ以上の例示的な実施態様では、物理インターフェース306-1、312-1、306-2、及び312-2は、同じインターフェース(例えば、一致しており、図10、図11、又は図12のうちの1つに示されているようなものである)として実装される。1つ以上の他の例示的な実施態様では、物理インターフェース306-1及び312-1は同じタイプのインターフェースであり(例えば、一致しており、図10、図11、又は図12のうちの1つに示されているようなものである)、一方、物理インターフェース306-2及び312-2は同じタイプのインターフェースである(例えば、一致している)が、物理インターフェース306-1及び312-1のタイプとは異なる。
図13の例では、追加のDPEインターフェースを含むことにより、ダイ104への帯域幅及びダイ104からの帯域幅が増大する。この例では、別個のDPEアレイとして実装されているDPEアレイ110-1及びDPEアレイ110-2は、互いに通信可能に連結されておらず、それによってDPEアレイ110-1がDPEアレイ110-2と通信することが防止される。すなわち、DPEアレイ110-1のDPE402は、ダイ間ワイヤ116を介して(例えば、ダイ106を介して)通信しなければ、DPEアレイ110-2のDPE402と通信することができない。
図14は、複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。図14の例では、IC100のダイ104及び106が示されている。ダイ間ワイヤは、図1又は図2に関連して説明したように実装されてもよい。図示のように、ダイ104は、1つのDPEアレイ110を含む。DPEアレイ110は、DPEインターフェース302-1及びDPEインターフェース302-2に接続される。DPEインターフェース302-1は、論理インターフェース304-1及び物理インターフェース306-1を含む。DPEインターフェース302-2は、論理インターフェース304-2及び物理インターフェース306-2を含む。
ダイ106は、物理インターフェース312-1及び物理インターフェース312-2を含む。物理インターフェース312-1は、物理インターフェース306-1に接続する。物理インターフェース312-2は、物理インターフェース306-2に接続する。1つ以上の例示的な実施態様では、物理インターフェース306-1、312-1、306-2、及び312-2は、同じインターフェース(例えば、一致しており、図10、図11、又は図12のうちの1つに示されているようなものである)として実装される。1つ以上の他の例示的な実施態様では、物理インターフェース306-1及び312-1は同じタイプのインターフェースであり(例えば、一致しており、図10、図11、又は図12のうちの1つに示されているようなものである)、一方、物理インターフェース306-2及び312-2は同じタイプのインターフェースである(例えば、一致している)が、物理インターフェース306-1及び312-1のタイプとは異なる。
図14の例では、追加のDPEインターフェースを含むことにより、ダイ104への帯域幅及びダイ104からの帯域幅が増大する。この例では、DPEアレイ110は単一のDPEアレイとして実装されているため、各DPE402は他の各DPE402と通信することができる。DPE402と論理インターフェース304-1及び304-2との間の通信は、タイル408の直上のDPE402を介して行われる。図14の例は、論理インターフェース304-1の上方に位置するDPE402が論理インターフェース304-2の上方のDPE402と通信することを可能にし、その逆も可能にする。そのような実施形態では、論理インターフェース304-1又は304-2のいずれを使用するか又はクラスタに接続することができるかに関して限定することなく、DPE402のクラスタを形成することができる。すなわち、DPE402のクラスタは、論理インターフェース304-1の上方の1つ以上のDPE402又はDPE402の列と、論理インターフェース304-2の上方の1つ以上のDPE402又はDPE402の列とを含むことができる。
図15は、複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。図15の例は、IC100に3つのダイが含まれることを除いて、図13の例と同様である。IC100は、ダイ104、106-1及び106-2を含む。物理インターフェース312-1はダイ106-1内に実装される。物理インターフェース312-2はダイ106-2内に実装される。したがって、DPEアレイ110-1はダイ106-1とのみ通信することができ、一方、DPEアレイ110-2はダイ106-2とのみ通信することができる。さらに、追加のDPEインターフェースは、ダイ104に出入りする帯域幅を増加させる。
図16は、複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。図16の例は、IC100に3つのダイが含まれることを除いて、図14の例と同様である。IC100は、ダイ104、106-1及び106-2を含む。物理インターフェース312-1はダイ106-1内に実装される。物理インターフェース312-2はダイ106-2内に実装される。図16の例では、DPE402のうちのいずれか1つ以上は、ダイ106-1、ダイ106-2、又はその両方と通信することができる。追加のDPEインターフェースは、ダイ104に出入りする帯域幅を増加させる。
図17は、複数のDPEインターフェースを含む別の例示的な実施態様を示す図である。図17の例では、ダイ104-1及びダイ104-2として示されている2つのダイ104が、異なるDPEアレイを含んで示されている。ダイ104-1及び104-2は、IC100のダイ106に接続する。ダイ間ワイヤは、図1又は図2に関連して説明したように実装されてもよい。図示のように、ダイ104-1は、DPEアレイ110-1を含む。ダイ104-2は、DPEアレイ110-2を含む。DPEアレイ110-1は、DPEインターフェース302-1に接続される。DPEアレイ110-2は、DPEインターフェース302-2に接続される。DPEインターフェース302-1は、論理インターフェース304-1及び物理インターフェース306-1を含む。DPEインターフェース302-2は、論理インターフェース304-2及び物理インターフェース306-2を含む。
ダイ106は、物理インターフェース312-1及び物理インターフェース312-2を含む。物理インターフェース312-1は、物理インターフェース306-1に接続する。物理インターフェース312-2は、物理インターフェース306-2に接続する。1つ以上の例示的な実施態様では、物理インターフェース306-1、312-1、306-2、及び312-2は、同じインターフェース(例えば、一致しており、図10、図11、又は図12のうちの1つに示されているようなものである)として実装される。1つ以上の他の例示的な実施態様では、物理インターフェース306-1及び312-1は同じタイプのインターフェースであり(例えば、一致しており、図10、図11、又は図12のうちの1つに示されているようなものである)、一方、物理インターフェース306-2及び312-2は同じタイプのインターフェースである(例えば、一致している)が、物理インターフェース306-1及び312-1のタイプとは異なる。
図17の例では、追加のDPEインターフェースを含むことにより、各DPEアレイ110-1及び110-2に出入りする帯域幅が増大する。さらに、図17の例は、各DPEアレイ110が、互いに分離して動作することを可能にする。これにより、例えば、1つのアプリケーション又はユーザがDPEアレイ110-1を利用する一方で、別の異なるアプリケーション及び/又はユーザがDPEアレイ110-2を使用することが可能になり、各DPEアレイは他から物理的に分離される。
図13~図17に関連して提供される例は、1つ以上のDPEアレイを含む様々なマルチダイIC実施態様を示す。本明細書に記載の例の1つ以上において、DPEアレイを含むダイは、その中に含まれるDPEアレイ及びDPEインターフェースのための、又はそれに対応する回路要素のみを含むことができることを理解されたい。すなわち、そのようなダイは、専用又は特殊目的DPEアレイダイであってもよい。他の例では、DPEアレイ及びDPEインターフェースを含むダイは、DPEアレイ及び/又はDPEインターフェースと協調して動作する追加の回路要素を含むことができる。さらに、図13~図17の例に示されているダイの数は、例示のみを目的としている。追加のDPEアレイダイ及び/又は他のダイが含まれてもよく、各ダイは、本明細書に記載の適切なインターフェースを介して1つ以上の他のダイと通信することができる。
説明の目的で、本明細書に開示される様々な発明概念の完全な理解を提供するために、特定の命名法が記載される。しかしながら、本明細書で使用する用語は、本発明の構成の特定の態様を説明するためのものにすぎず、限定するものではないことも理解されたい。
本明細書において定義されているものとして、単数形「a」、「an」及び「the」は、文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。
本明細書において定義されているものとして、「少なくとも1つ、」、「1つ以上」、及び「及び/又は、」という用語は、特に明記しない限り、動作において連言的及び選言的の両方であるオープンエンド表現である。例えば、「A、B、及びCのうちの少なくとも1つ」、「A、B、又はCのうちの少なくとも1つ、」、「A、B、及びCのうちの1つ以上」、「A、B、又はCのうちの1つ以上」及び「A、B、及び/又はC」という表現の各々は、Aのみ、Bのみ、Cのみ、AとB、AとC、BとC、又はAとBとCを意味する。
本明細書において定義されているものとして、「自動的に」という用語は、人間の介入がないことを意味する。本明細書において定義されているものとして、用語「ユーザ」は、人類を意味する。
本明細書で定義されるように、用語「~である場合」は、文脈に応じて「~であるとき」又は「~に応答して」又は「~に応じて」を意味する。したがって、語句「~であると判定された場合」又は「[記載された状態又は事象]が検出された場合」は、文脈に応じて、「判定を受けて」又は「判定に応答して」又は「[記載された状態又は事象]の検出を受けて」又は「[記載された状態又は事象]の検出に応答して、」又は「[記載された状態又は事象]の検出に応じて」を意味すると解釈され得る。
本明細書で定義されるように、「~に応じて」という用語及び上記と同様の用語、例えば「~である場合」、「~であるとき」又は「~であることを受けて」は、アクション又はイベントに容易に応答又は反応することを意味する。応答又は反応は自動的に行われる。したがって、第2のアクションが第1のアクション「に応じて」実施されるとき、第1のアクションの発生と第2のアクションの発生との間に因果関係がある。「~に応じて」は因果関係を示す。
本明細書において定義されるものとして、「プロセッサ」という用語は、プログラムコードに含まれる命令を実践することができる少なくとも1つの回路を意味する。回路は、集積回路であってもよく、又は集積回路に組み込まれていてもよい。
本明細書において定義されているものとして、「実質的に」という用語は、記載された特性、パラメータ、又は値が正確に達成される必要はないが、例えば公差、測定誤差、測定精度限界、及び当業者に知られている他の要因を含む偏差又は変動が、特性が提供しようとした効果を排除しない量で発生し得ることを意味する。
第1、第2などの用語が、様々な要素を説明するために本明細書で使用され得る。これらの要素は、特に明記しない限り、又は文脈が明らかにそうでないことを示さない限り、これらの用語は1つの要素を別の要素から区別するためにのみ使用されるため、これらの用語によって限定されるべきではない。
添付の特許請求の範囲に見出すことができるすべてのミーンズプラスファンクション又はステッププラスファンクションの要素の対応する構造、材料、動作、及び均等物は、具体的に特許請求されている他の特許請求されている要素と組み合わせて機能を実施するための任意の構造、材料、又は動作を含むことが意図されている。
1つ以上の例示的な実施態様において、マルチダイICは、インターポーザと、インターポーザに結合されている第1のダイとを含む。第1のダイは、DPEアレイを含み、DPEアレイは、複数のDPEと、複数のDPEに結合されているDPEインターフェースとを含む。DPEインターフェースは、論理インターフェース及び物理インターフェースを有する。マルチダイICはまた、インターポーザに結合されており、ダイインターフェースを有する第2のダイも含むことができる。DPEインターフェース及びダイインターフェースは、インターポーザを通じて通信するように構成されている。
前述及び他の実施態様は各々、単独で又は組み合わせて、以下の特徴のうちの1つ以上を任意選択的に含むことができる。いくつかの例示的な実施態様は、以下の特徴のすべてを組み合わせて含む。
別の態様では、DPEインターフェースの論理インターフェースは、複数のタイルを含み、各タイルは、DPEアレイの複数のDPEのサブセットと通信するように構成されている。
別の態様では、物理インターフェースは、論理インターフェースの複数のタイルに結合されている複数の回路ブロックを含む。
別の態様では、物理インターフェースの複数の回路ブロックは、少なくとも、1つ以上の並列マルチビットチャネルを実装する第1の回路ブロックと、シリアル動作向けに構成されたトランシーバを実装する第2の回路ブロックとを含む。
別の態様では、物理インターフェースの複数の回路ブロックのうちの少なくとも1つは、並列マルチビットチャネルを実装する。
別の態様では、物理インターフェースの回路ブロックの各々は、独立して動作するように構成されている。
別の態様では、物理インターフェースの複数の回路ブロックのうちの少なくとも1つは、高帯域幅メモリインターフェースを実装する。
別の態様では、物理インターフェースの複数の回路ブロックのうちの少なくとも1つは、シリアル動作向けに構成されたトランシーバを含む。
別の態様では、物理インターフェースの回路ブロックのうちの少なくとも1つは、トランシーバに結合されているシリアライザ/デシリアライザ回路を含む。シリアライザ/デシリアライザ回路は、論理インターフェースの選択されたタイルから受信された第1のデータストリームから第1のシリアル化データを生成し、第1のシリアル化データをトランシーバに提供するように構成されている。シリアライザ/デシリアライザ回路はまた、トランシーバから受信された第2のシリアル化データから第2のデータストリームを生成し、第2のデータストリームを論理インターフェースの選択されたタイルに提供するように構成されている。
別の態様では、マルチダイICは、インターポーザに結合されているパッケージ基板を含む。
別の態様では、第1のダイ及び第2のダイは異なるクロックドメインにある。
1つ以上の他の例示的な実施態様において、マルチダイICは、パッケージ基板と、パッケージ基板に結合されている第1のダイであって、第1のダイは相互接続ブリッジとして構成されている、第1のダイと、パッケージ基板及び第1のダイに結合されている第2のダイとを含む。第2のダイは、DPEアレイを含み、DPEアレイは、複数のDPEと、複数のDPEに結合されているDPEインターフェースとを含む。DPEインターフェースは、論理インターフェース及び物理インターフェースを有する。マルチダイICはまた、パッケージ基板及び第1のダイに結合されている第3のダイを含むことができ、第3のダイはダイインターフェースを含む。DPEインターフェース及びダイインターフェースは、第1のダイを通じて通信するように構成されている。
前述及び他の実施態様は各々、単独で又は組み合わせて、以下の特徴のうちの1つ以上を任意選択的に含むことができる。いくつかの例示的な実施態様は、以下の特徴のすべてを組み合わせて含む。
別の態様では、DPEインターフェースの論理インターフェースは、複数のタイルを含み、各タイルは、DPEアレイの複数のDPEのサブセットと通信するように構成されている。
別の態様では、物理インターフェースは、論理インターフェースの複数のタイルに結合されている複数の回路ブロックを含む。
別の態様では、物理インターフェースの複数の回路ブロックのうちの少なくとも1つは、並列マルチビットチャネルを実装する。
別の態様では、物理インターフェースの回路ブロックの各々は、独立して動作するように構成されている。
別の態様では、物理インターフェースの複数の回路ブロックのうちの少なくとも1つは、高帯域幅メモリインターフェースを実装する。
別の態様では、物理インターフェースの複数の回路ブロックのうちの少なくとも1つは、シリアル動作向けに構成されたトランシーバを含む。
別の態様では、物理インターフェースの回路ブロックのうちの少なくとも1つは、トランシーバに結合されているシリアライザ/デシリアライザ回路を含む。シリアライザ/デシリアライザ回路は、論理インターフェースの選択されたタイルから受信された第1のデータストリームから第1のシリアル化データを生成し、第1のシリアル化データをトランシーバに提供するように構成されている。シリアライザ/デシリアライザ回路はまた、トランシーバから受信された第2のシリアル化データから第2のデータストリームを生成し、第2のデータストリームを論理インターフェースの選択されたタイルに提供するように構成することもできる。
別の態様では、第1のダイ及び第3のダイは異なるクロックドメインにある。
本明細書において提供される本発明の構成の説明は、例示のために提示されているが、網羅的であることは意図されておらず、又は開示された形態及び例に限定されるものではない。本明細書で使用される用語は、本発明の構成の原理、実際の用途又は市場で見られる技術に対する技術的改善を説明するために、及び/又は他の当業者が本明細書に開示される本発明の構成を理解することを可能にするために選択されている。説明されている本発明の構成の範囲及び精神から逸脱することなく、変更及び変形が当業者には明らかであろう。したがって、そのような特徴及び実施態様の範囲を示すものとして、前述の開示ではなく、添付の特許請求の範囲を参照すべきである。

Claims (15)

  1. マルチダイ集積回路であって、
    インターポーザと、
    前記インターポーザに結合されている第1のダイであって、前記第1のダイは、データ処理エンジン(DPE)アレイを含み、前記DPEアレイは、複数のDPEと、前記複数のDPEに結合されているDPEインターフェースとを含み、前記DPEインターフェースは、論理インターフェース及び物理インターフェースを有する、第1のダイと、
    前記インターポーザに結合されており、ダイインターフェースを有する第2のダイと
    を備え、
    前記DPEインターフェース及び前記ダイインターフェースは、前記インターポーザを通じて通信するように構成されている、マルチダイ集積回路。
  2. 前記DPEインターフェースの前記論理インターフェースは複数のタイルを含み、
    各タイルは、前記DPEアレイの前記複数のDPEのサブセットと通信するように構成されており、
    前記物理インターフェースは、前記論理インターフェースの前記複数のタイルに結合されている複数の回路ブロックを含む、請求項1に記載のマルチダイ集積回路。
  3. 前記物理インターフェースの前記複数の回路ブロックは、少なくとも、1つ以上の並列マルチビットチャネルを実装する第1の回路ブロックと、シリアル動作向けに構成されたトランシーバを実装する第2の回路ブロックとを含む、請求項2に記載のマルチダイ集積回路。
  4. 前記物理インターフェースの前記複数の回路ブロックのうちの少なくとも1つは、高帯域幅メモリインターフェースを実装する、請求項2に記載のマルチダイ集積回路。
  5. 前記物理インターフェースの前記複数の回路ブロックのうちの少なくとも1つは、シリアル動作向けに構成されたトランシーバを含み、
    前記物理インターフェースの前記回路ブロックのうちの前記少なくとも1つは、
    前記トランシーバに結合されているシリアライザ/デシリアライザ回路であって、
    前記論理インターフェースの選択されたタイルから受信された第1のデータストリームから第1のシリアル化データを生成し、前記第1のシリアル化データを前記トランシーバに提供し、
    前記トランシーバから受信された第2のシリアル化データから第2のデータストリームを生成し、前記第2のデータストリームを前記論理インターフェースの前記選択されたタイルに提供するように構成されている、シリアライザ/デシリアライザ回路
    を備える、請求項2に記載のマルチダイ集積回路。
  6. 前記第1のダイ及び前記第2のダイは異なるクロックドメインにある、請求項1に記載のマルチダイ集積回路。
  7. 前記第1のダイ及び前記第2のダイは異なるパワードメインにある、請求項1に記載のマルチダイ集積回路。
  8. 前記第1のダイ及び前記第2のダイは、異なるプロセス技術を使用して実装される、請求項1に記載のマルチダイ集積回路。
  9. マルチダイ集積回路であって、
    パッケージ基板と、
    前記パッケージ基板に結合されている第1のダイであって、前記第1のダイは相互接続ブリッジとして構成されている、第1のダイと、
    前記パッケージ基板及び前記第1のダイに結合されている第2のダイであって、前記第2のダイは、データ処理エンジン(DPE)アレイを含み、前記DPEアレイは、複数のDPEと、前記複数のDPEに結合されているDPEインターフェースとを含み、前記DPEインターフェースは、論理インターフェース及び物理インターフェースを有する、第2のダイと、
    前記パッケージ基板及び前記第1のダイに結合されている第3のダイであって、前記第3のダイはダイインターフェースを含む、第3のダイ
    とを備え、
    前記DPEインターフェース及び前記ダイインターフェースは、前記第1のダイを通じて通信するように構成されている、マルチダイ集積回路。
  10. 前記DPEインターフェースの前記論理インターフェースは複数のタイルを含み、
    各タイルは、前記DPEアレイの前記複数のDPEのサブセットと通信するように構成されており、
    前記物理インターフェースは、前記論理インターフェースの前記複数のタイルに結合されている複数の回路ブロックを含む、請求項9に記載のマルチダイ集積回路。
  11. 前記物理インターフェースの前記複数の回路ブロックのうちの少なくとも1つは、高帯域幅メモリインターフェースを実装する、請求項10に記載のマルチダイ集積回路。
  12. 前記物理インターフェースの前記複数の回路ブロックのうちの少なくとも1つは、シリアル動作向けに構成されたトランシーバを含み、
    前記物理インターフェースの前記回路ブロックのうちの前記少なくとも1つは、
    前記トランシーバに結合されているシリアライザ/デシリアライザ回路であって、
    前記論理インターフェースの選択されたタイルから受信された第1のデータストリームから第1のシリアル化データを生成し、前記第1のシリアル化データを前記トランシーバに提供し、
    前記トランシーバから受信された第2のシリアル化データから第2のデータストリームを生成し、前記第2のデータストリームを前記論理インターフェースの前記選択されたタイルに提供するように構成されている、シリアライザ/デシリアライザ回路
    を備える、請求項10に記載のマルチダイ集積回路。
  13. 前記第2のダイ及び前記第3のダイは異なるクロックドメインにある、請求項9に記載のマルチダイ集積回路。
  14. 前記第2のダイ及び前記第3のダイは異なるパワードメインにある、請求項9に記載のマルチダイ集積回路。
  15. 前記第2のダイ及び前記第3のダイは、異なるプロセス技術を使用して実装される、請求項9に記載のマルチダイ集積回路。
JP2023518889A 2020-09-28 2021-09-21 データ処理エンジンアレイを有するマルチダイ集積回路 Pending JP2023544288A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/035,368 2020-09-28
US17/035,368 US11288222B1 (en) 2020-09-28 2020-09-28 Multi-die integrated circuit with data processing engine array
PCT/US2021/051382 WO2022066672A1 (en) 2020-09-28 2021-09-21 Multi-die integrated circuit with data processing engine array

Publications (1)

Publication Number Publication Date
JP2023544288A true JP2023544288A (ja) 2023-10-23

Family

ID=78414061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023518889A Pending JP2023544288A (ja) 2020-09-28 2021-09-21 データ処理エンジンアレイを有するマルチダイ集積回路

Country Status (6)

Country Link
US (3) US11288222B1 (ja)
EP (1) EP4217879A1 (ja)
JP (1) JP2023544288A (ja)
KR (1) KR20230074169A (ja)
CN (1) CN116368481A (ja)
WO (1) WO2022066672A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11528029B2 (en) * 2018-06-29 2022-12-13 Intel Corporation Apparatus to synchronize clocks of configurable integrated circuit dies through an interconnect bridge
CN112817905A (zh) * 2021-02-05 2021-05-18 中国电子科技集团公司第五十八研究所 互联裸芯、互联微组件、互联微系统及其通信方法
US11960435B2 (en) 2021-12-17 2024-04-16 Advanced Micro Devices, Inc. Skew matching in a die-to-die interface
US20230195664A1 (en) * 2021-12-22 2023-06-22 Advanced Micro Devices, Inc. Software management of direct memory access commands
US11888693B2 (en) * 2022-04-05 2024-01-30 Xilinx, Inc. Time-division multiplexing (TDM) in integrated circuits for routability and runtime enhancement
CN117749736B (zh) * 2024-02-19 2024-05-17 深圳市纽创信安科技开发有限公司 一种芯片及密文计算方法

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3776137A (en) 1971-09-24 1973-12-04 Aai Corp Projectile and cartridge arrangement
GB8618943D0 (en) 1986-08-02 1986-09-10 Int Computers Ltd Data processing apparatus
US6091263A (en) 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
US6204687B1 (en) 1999-08-13 2001-03-20 Xilinx, Inc. Method and structure for configuring FPGAS
US6526557B1 (en) 2000-07-25 2003-02-25 Xilinx, Inc. Architecture and method for partially reconfiguring an FPGA
US6836842B1 (en) 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US6462579B1 (en) 2001-04-26 2002-10-08 Xilinx, Inc. Partial reconfiguration of a programmable gate array using a bus macro
US6759869B1 (en) 2002-06-05 2004-07-06 Xilinx, Inc. Large crossbar switch implemented in FPGA
US6810514B1 (en) 2002-07-03 2004-10-26 Xilinx, Inc. Controller arrangement for partial reconfiguration of a programmable logic device
US6907595B2 (en) 2002-12-13 2005-06-14 Xilinx, Inc. Partial reconfiguration of a programmable logic device using an on-chip processor
US7124338B1 (en) 2003-10-10 2006-10-17 Xilinx, Inc. Methods of testing interconnect lines in programmable logic devices using partial reconfiguration
US7224184B1 (en) 2004-11-05 2007-05-29 Xilinx, Inc. High bandwidth reconfigurable on-chip network for reconfigurable systems
US7635987B1 (en) 2004-12-13 2009-12-22 Massachusetts Institute Of Technology Configuring circuitry in a parallel processing environment
US7509617B1 (en) 2005-09-12 2009-03-24 Xilinx, Inc. Design methodology to support relocatable bit streams for dynamic partial reconfiguration of FPGAs to reduce bit stream memory requirements
US7546572B1 (en) 2005-09-20 2009-06-09 Xilinx, Inc. Shared memory interface in a programmable logic device using partial reconfiguration
US7302625B1 (en) 2005-11-21 2007-11-27 Xilinx, Inc. Built-in self test (BIST) technology for testing field programmable gate arrays (FPGAs) using partial reconfiguration
US7477072B1 (en) 2006-01-17 2009-01-13 Xilinx, Inc. Circuit for and method of enabling partial reconfiguration of a device having programmable logic
US7640527B1 (en) 2006-06-29 2009-12-29 Xilinx, Inc. Method and apparatus for partial reconfiguration circuit design for a programmable device
US7478357B1 (en) 2006-08-14 2009-01-13 Xilinx, Inc. Versatile bus interface macro for dynamically reconfigurable designs
US7636816B2 (en) 2006-09-29 2009-12-22 Broadcom Corporation Global address space management
US7724815B1 (en) 2007-02-27 2010-05-25 Xilinx, Inc. Method and apparatus for a programmably terminated receiver
US7518396B1 (en) 2007-06-25 2009-04-14 Xilinx, Inc. Apparatus and method for reconfiguring a programmable logic device
US8250342B1 (en) 2008-01-09 2012-08-21 Xilinx, Inc. Digital signal processing engine
US7746099B1 (en) 2008-01-11 2010-06-29 Xilinx, Inc. Method of and system for implementing a circuit in a device having programmable logic
US9229887B2 (en) * 2008-02-19 2016-01-05 Micron Technology, Inc. Memory device with network on chip methods, apparatus, and systems
US8045546B1 (en) 2008-07-08 2011-10-25 Tilera Corporation Configuring routing in mesh networks
SG175041A1 (en) 2009-03-30 2011-11-28 Sanyo Electric Co Solar cell
US9035443B2 (en) * 2009-05-06 2015-05-19 Majid Bemanian Massively parallel interconnect fabric for complex semiconductor devices
US8359448B1 (en) 2009-07-17 2013-01-22 Xilinx, Inc. Specific memory controller implemented using reconfiguration
US9081501B2 (en) 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8415974B1 (en) 2011-03-09 2013-04-09 Xilinx, Inc. Methods and circuits enabling dynamic reconfiguration
RU2012127580A (ru) 2012-07-02 2014-01-10 ЭлЭсАй Корпорейшн Подход многоэтапного планирования на уровне исходных кодов для разработки и тестирования программного обеспечения для многопроцессорных сред
US9091727B1 (en) * 2012-10-16 2015-07-28 Xilinx, Inc. Configuration and testing of multiple-die integrated circuits
US9081634B1 (en) 2012-11-09 2015-07-14 Xilinx, Inc. Digital signal processing block
US8719750B1 (en) 2012-11-12 2014-05-06 Xilinx, Inc. Placement and routing of a circuit design
CN107239420B (zh) * 2012-11-21 2020-05-05 相干逻辑公司 具有散布处理器dma-fifo的处理系统
US9368489B1 (en) * 2013-02-28 2016-06-14 International Business Machines Corporation Interconnect circuits at three-dimensional (3-D) bonding interfaces of a processor array
US8928351B1 (en) 2013-03-13 2015-01-06 Xilinx, Inc. Emulating power domains in an integrated circuit using partial reconfiguration
US9830210B2 (en) 2013-03-15 2017-11-28 Nvidia Corporation CPU-to-GPU and GPU-to-GPU atomics
US9436785B1 (en) 2014-09-19 2016-09-06 Xilinx, Inc. Hierarchical preset and rule based configuration of a system-on-chip
US9245870B1 (en) * 2014-10-17 2016-01-26 Qualcomm Incorporated Systems and methods for providing data channels at a die-to-die interface
US9324397B1 (en) * 2015-01-16 2016-04-26 Qualcomm Incorporated Common die for supporting different external memory types with minimal packaging complexity
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
US9722613B1 (en) 2015-09-28 2017-08-01 Xilinx, Inc. Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device
US20170220499A1 (en) * 2016-01-04 2017-08-03 Gray Research LLC Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications
US9946674B2 (en) 2016-04-28 2018-04-17 Infineon Technologies Ag Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller
US9911465B1 (en) * 2016-11-08 2018-03-06 Xilinx, Inc. High bandwidth memory (HBM) bandwidth aggregation switch
US10056155B2 (en) * 2016-09-30 2018-08-21 Intel Corporation Systems, methods, and apparatuses for implementing testing of a far memory subsystem within two-level memory (2LM) stacked die subsystems
US10795853B2 (en) * 2016-10-10 2020-10-06 Intel Corporation Multiple dies hardware processors and methods
US10747690B2 (en) 2018-04-03 2020-08-18 Xilinx, Inc. Device with data processing engine array
US10635622B2 (en) 2018-04-03 2020-04-28 Xilinx, Inc. System-on-chip interface architecture
US11036578B2 (en) * 2018-04-12 2021-06-15 Samsung Electronics Co., Ltd. Semiconductor memory devices and memory systems including the same
US11528029B2 (en) * 2018-06-29 2022-12-13 Intel Corporation Apparatus to synchronize clocks of configurable integrated circuit dies through an interconnect bridge
US10909652B2 (en) * 2019-03-15 2021-02-02 Intel Corporation Enabling product SKUs based on chiplet configurations
US10637462B1 (en) 2019-05-30 2020-04-28 Xilinx, Inc. System and method for SoC power-up sequencing
US11107770B1 (en) * 2019-06-27 2021-08-31 Xilinx, Inc. Integrated electrical/optical interface with two-tiered packaging
US20220199537A1 (en) * 2020-12-18 2022-06-23 Intel Corporation Power-forwarding bridge for inter-chip data signal transfer

Also Published As

Publication number Publication date
US20230289311A1 (en) 2023-09-14
CN116368481A (zh) 2023-06-30
EP4217879A1 (en) 2023-08-02
WO2022066672A1 (en) 2022-03-31
KR20230074169A (ko) 2023-05-26
US20220100691A1 (en) 2022-03-31
US11693808B2 (en) 2023-07-04
US11288222B1 (en) 2022-03-29
US20220197846A1 (en) 2022-06-23

Similar Documents

Publication Publication Date Title
US11972132B2 (en) Data processing engine arrangement in a device
US10635622B2 (en) System-on-chip interface architecture
US10747690B2 (en) Device with data processing engine array
US11693808B2 (en) Multi-die integrated circuit with data processing engine array
US10916516B2 (en) High bandwidth memory (HBM) bandwidth aggregation switch
KR102381158B1 (ko) 적층형 실리콘 상호 연결(ssi) 기술 통합을 위한 독립형 인터페이스
JP7405822B2 (ja) プログラマブルデバイスのためのコンフィギュラブル・ネットワーク・オン・チップ
EP4123469A2 (en) Scalable computing device