(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024161478
(43)【公開日】2024-11-19
(54)【発明の名称】集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積
(51)【国際特許分類】
G06F 15/173 20060101AFI20241112BHJP
G06F 15/78 20060101ALI20241112BHJP
H01L 25/00 20060101ALI20241112BHJP
【FI】
G06F15/173 683B
G06F15/78 560
G06F15/78 530
H01L25/00 B
【審査請求】有
【請求項の数】18
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024135331
(22)【出願日】2024-08-14
(62)【分割の表示】P 2023036854の分割
【原出願日】2018-09-24
(31)【優先権主張番号】15/719,288
(32)【優先日】2017-09-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】レジー,オースティン・エイチ
(72)【発明者】
【氏名】モハン,サンダララジャラオ
(72)【発明者】
【氏名】トリンバーガー,スティーブン・エム
(57)【要約】 (修正有)
【課題】周辺機器として用いられるプログラマブルICおよびCPUを有するコンピューティングシステムのより効率的な実現のための集積回路(IC)パッケージを提供する。
【解決手段】基板上に配設される処理システム104およびプログラマブルIC106を含むICパッケージにおいて、処理システムは、基板の配線112を通じてプログラマブルICに結合され、リング配線210に結合される構成要素202~208を含む。構成要素は、プロセッサ202及びインターフェイスコントローラ214を含む。プログラマブルICは、配線を通じてインターフェイスコントローラに結合されるインターフェイス終点218と、インターフェイス終点に結合されかつインターフェイス終点およびインターフェイスコントローラを通じての処理システムのリング配線との通信のために構成される少なくとも1つの周辺機器230と、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
集積回路(IC)パッケージであって、
基板上に配設される処理システムおよびプログラマブルICを備え、前記処理システムは、前記基板の配線を通じて前記プログラマブルICに結合され、
前記処理システムはリング配線に結合される構成要素を含み、前記構成要素はプロセッサおよびインターフェイスコントローラを含み、
前記プログラマブルICは、前記配線を通じて前記インターフェイスコントローラに結合されるインターフェイス終点と、前記インターフェイス終点に結合されかつ前記インターフェイス終点および前記インターフェイスコントローラを通じての前記処理システムの前記リング配線との通信のために構成される少なくとも1つの周辺機器とを含む、集積回路(IC)パッケージ。
【請求項2】
前記プログラマブルICはプログラマブルファブリックを含む、請求項1に記載のICパッケージ。
【請求項3】
前記プログラマブルICは、前記プログラマブルファブリックに結合される埋込処理システムを含む、請求項2に記載のICパッケージ。
【請求項4】
前記少なくとも1つの周辺機器は前記プログラマブルファブリック中にプログラムされる、請求項2に記載のICパッケージ。
【請求項5】
前記インターフェイスコントローラおよび前記インターフェイス終点は、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含む、請求項1に記載のICパッケージ。
【請求項6】
前記基板はパッケージインターフェイスを含み、前記プログラマブルICは前記パッケージインターフェイスに結合される、請求項1に記載のICパッケージ。
【請求項7】
前記処理システムおよび前記プログラマブルICに結合される1つ以上の他のICをさらに備える、請求項1に記載のICパッケージ。
【請求項8】
集積回路(IC)パッケージであって、
半導体ダイ上に配設される処理システムおよびプログラマブルICを備え、
前記処理システムはリング配線に結合される構成要素を含み、前記構成要素はプロセッサおよびインターフェイス回路を含み、
前記プログラマブルICは、前記リング配線に結合されかつ前記リング配線との通信のために構成される少なくとも1つの周辺機器を含む、集積回路(IC)パッケージ。
【請求項9】
前記プログラマブルICはプログラマブルファブリックを含む、請求項8に記載のICパッケージ。
【請求項10】
前記プログラマブルICは、前記プログラマブルファブリックに結合される埋込処理システムを含む、請求項9に記載のICパッケージ。
【請求項11】
前記少なくとも1つの周辺機器は前記プログラマブルファブリック中にプログラムされる、請求項9に記載のICパッケージ。
【請求項12】
前記プロセッサおよび前記プログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含む、請求項
8に記載のICパッケージ。
【請求項13】
集積回路(IC)パッケージであって、
半導体ダイ上に配設される処理システムおよびプログラマブルICを備え、
前記処理システムはリング配線に結合される構成要素を含み、前記構成要素は、プロセッサ、インターフェイス回路、およびメモリを含み、
前記プログラマブルICは、前記リング配線に結合されかつ前記リング配線および少なくとも1つのメモリとの通信のために構成される少なくとも1つの周辺機器を含む、集積回路(IC)パッケージ。
【請求項14】
前記プログラマブルICの前記少なくとも1つのメモリは前記リング配線に結合されない、請求項13に記載のICパッケージ。
【請求項15】
前記プログラマブルICの前記少なくとも1つのメモリは前記リング配線に結合される、請求項13に記載のICパッケージ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の例は、概して、電子回路、ならびに特に集積回路(IC)パッケージへのプログラマブルデバイスおよび処理システムの集積に関する。
【背景技術】
【0002】
背景
最近の中央処理装置(CPU)は、単一の半導体ダイ上に複数のマイクロプロセッサコア、グラフィックスエンジン、および他の固定機能を集積する複雑なシステムオンチップ(SoC)デバイスである。CPUは、周辺構成要素相互接続エクスプレス(Peripheral
Component Interconnect Express)(PCIe)インターフェイスなどの拡張バスイン
ターフェイスを含むことができる。典型的な構成では、CPUを有する集積回路(IC)パッケージは、プリント回路基板(PCB)に搭載される。固定されたまたは着脱可能な態様で、さまざまな周辺機器がCPU ICパッケージの外部のPCBに搭載される。周辺機器は、PCBおよびCPU ICパッケージのピンを通じてCPUのPCIeインターフェイスに結合される。そのような構成は、少なくともPCB上に搭載される複数個のICと最悪の場合は周辺機器を有する他のPCBを挿入可能な拡張ポートのための空間とを必要とする大きな設置面積を有する。
【0003】
プログラマブル集積回路(IC)はしばしば、ユーザが構成可能な入力に応じてデジタル論理演算を実現するのに用いられる。例示的なプログラマブルICは、コンプレックスプログラマブル論理デバイス(CPLD)およびフィールドプログラマブルゲートアレイ(FPGA)を含む。CPLDは、積和論理を有するプログラマブル論理アレイ(PLA)アーキテクチャに基づくいくつかの機能ブロックを含むことが多い。コンフィギュラブル相互接続マトリックスは、機能ブロック同士の間で信号を伝送する。
【0004】
ある種類のFPGAはプログラマブルタイルのアレイを含む。プログラマブルタイルは、さまざまな種類の論理ブロックを備え、これは、たとえば、入出力ブロック(IOB)、コンフィギュラブル論理ブロック(CLB)、専用ランダムアクセスメモリブロック(BRAM)、乗算器、デジタル信号処理ブロック(DSP)、プロセッサ、クロックマネージャ、遅延ロックループ(DLL)、バス、または周辺構成要素相互接続エクスプレス(PCIe)およびイーサネット(登録商標)などのネットワークインターフェイスを含むことができる。各々のプログラマブルタイルは典型的に、プログラマブル配線とプログラマブル論理との両方を含む。プログラマブル配線は典型的に、プログラマブルインターコネクトポイント(PIP)によって相互接続される異なる長さの多数の相互接続線を含む。プログラマブル論理は、たとえば、関数生成器、レジスタ、算術論理などを含み得るプログラマブル素子を用いてユーザ設計の論理を実現する。
【0005】
プログラマブルICを用いて、ハードウェアアクセラレータとしての使用のためなど、CPUによる使用のための周辺機器を実現することができる。ハードウェアアクセラレーションは、汎用CPU上で実行されるソフトウェアよりも効率的にある機能を実行するためのハードウェアの使用に係る。ハードウェアアクセラレータは、何らかのアプリケーションのためのハードウェアアクセラレーションを実現するように設計される専用用途ハードウェアである。例示的なアプリケーションは、ニューラルネットワーク、映像の符号化、復号、コード変換など、ネットワークデータ処理などを含む。そのようなハードウェアアクセラレータは典型的に、マザーボード上のスロットに挿入されるPCIeカードとして実現される。CPUおよびプログラマブルICは、マザーボード上の構成要素によって
物理的に分離される2つの別個のICである。周辺機器として用いられるプログラマブルICおよびCPUを有するコンピューティングシステムのより効率的な実現例を提供することが望まれる。
【発明の概要】
【課題を解決するための手段】
【0006】
要約
集積回路(IC)パッケージ中へのプログラマブルデバイスおよび処理システムの集積を説明する。ある例では、ICパッケージは、基板上に配設される処理システムおよびプログラマブルICを含み、処理システムは、基板の配線を通じてプログラマブルICに結合され、処理システムは、リング配線に結合される構成要素を含み、構成要素は、プロセッサおよびインターフェイスコントローラを含む。プログラマブルICは、配線を通じてインターフェイスコントローラに結合されるインターフェイス終点と、インターフェイス終点に結合されかつインターフェイス終点およびインターフェイスコントローラを通じての処理システムのリング配線との通信のために構成される少なくとも1つの周辺機器とを含む。
【0007】
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
【0008】
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
【0009】
ある実施形態では、インターフェイスコントローラおよびインターフェイス終点は、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
【0010】
ある実施形態では、基板はパッケージインターフェイスを含み得、プログラマブルICはパッケージインターフェイスに結合され得る。
【0011】
ある実施形態では、ICパッケージは、処理システムおよびプログラマブルICに結合される1つ以上の他のICをさらに含み得る。
【0012】
別の例では、ICパッケージでは、半導体ダイ上に配設される処理システムおよびプログラマブルICを含み、処理システムはリング配線に結合される構成要素を含み、構成要素はプロセッサおよびインターフェイス回路を含み、プログラマブルICは、リング配線に結合されかつリング配線との通信のために構成される少なくとも1つの周辺機器を含む。
【0013】
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
【0014】
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
【0015】
ある実施形態では、プロセッサおよびプログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
【0016】
別の例では、ICパッケージは、半導体ダイ上に配設される処理システムおよびプログラマブルICを含み、処理システムはリング配線に結合される構成要素を含み、構成要素は、プロセッサ、インターフェイス回路、およびメモリを含み、プログラマブルICは、リング配線に結合されかつリング配線および少なくとも1つのメモリとの通信のために構成される少なくとも1つの周辺機器を含む。
【0017】
ある実施形態では、プログラマブルICの少なくとも1つのメモリは、リング配線に結合されなくてもよい。
【0018】
ある実施形態では、プログラマブルICの少なくとも1つのメモリは、リング配線に結合されてもよい。
【0019】
ある実施形態では、ICパッケージはパッケージインターフェイスをさらに含み得、プログラマブルICはパッケージインターフェイスに結合され得る。
【0020】
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
【0021】
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
【0022】
ある実施形態では、プロセッサおよびプログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
【0023】
別の例では、ICパッケージは、半導体ダイ上に配設される処理システムおよびプログラマブルICを含み、処理システムはリング配線に結合される構成要素を含み、リング配線は、リング間コネクタを通じて第2のサブリングに結合される第1のサブリングを含み、構成要素はプロセッサおよびインターフェイス回路を含み、プログラマブルICは、第1のサブリングに結合されかつ第1のサブリングとの通信のために構成される少なくとも1つの周辺機器を含む。
【0024】
ある実施形態では、構成要素は、第2のサブリングに結合されるグラフィックス処理装置(GPU)をさらに含み得る。
【0025】
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
【0026】
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
【0027】
ある実施形態では、プロセッサおよびプログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
【0028】
以下の詳細な説明を参照して、これらおよび他の局面を理解し得る。
以上に記載の特徴を詳細に理解できるように、そのいくつかを添付の図面に示す例示的
実現例を参照することによって、以上に簡単に要約した説明のより特定的な説明を有し得る。しかしながら、添付の図面は、典型的な例示的実現例のみを示すもので、したがって図面をその範囲の限定と考えてはならないことに留意すべきである。
【図面の簡単な説明】
【0029】
【
図1】一例に従う集積回路(IC)パッケージを描くブロック図である。
【
図2】
図1のICパッケージ中の処理システムおよびプログラマブルICの例を描くブロック図である。
【
図3】一例に従うプログラマブルIC中の周辺回路構成を描くブロック図である。
【
図4】一例に従う
図3の周辺回路構成をより詳細に描くブロック図である。
【
図5】一例に従うコンピューティングシステムを描くブロック図である。
【
図6】一例に従うプログラマブルICを描くブロック図である。
【
図7】一例に従うプログラマブルICのシステムオンチップ(SoC)実現例を描くブロック図である。
【
図8】プログラマブルICのフィールドプログラマブルゲートアレイ(FPGA)実現例を示す図である。
【
図9】一例に従うICパッケージ中のプログラマブルICを動作させる方法を描くフロー図である。
【
図10】別の例に従うICパッケージを描くブロック図である。
【
図11】
図10のICパッケージ中の処理システムの例示的実現例を描くブロック図である。
【
図12】
図10のICパッケージ中の処理システムのまた別の例示的実現例を描くブロック図である。
【
図13】
図10のICパッケージ中の処理システムのまた別の例示的実現例を描くブロック図である。
【
図14】ストリーミングインターフェイスを用いた通信のために構成される
図1のICパッケージの例示的実現例を描くブロック図である。
【
図15】ストリーミングインターフェイスを用いた通信のために構成される
図10のICパッケージの例示的実現例を描くブロック図である。
【
図16】一例に従う周辺回路構成をより詳細に描くブロック図である。
【
図17】一例に従う処理システム中のプログラマブルICを動作させる方法を描くフロー図である。
【発明を実施するための形態】
【0030】
詳細な説明
理解を容易にするため、可能な場合、図に共通の同一の要素を示すのに同一の参照番号を用いる。有用な場合には、1つの例の要素を他の例に組入れ得ることが企図される。
【0031】
図を参照して以下にさまざまな特徴を説明する。図は、縮尺通りに描かれていることも描かれていないこともあり、かつ同様の構造または機能の要素を図を通じて同じ参照番号で表わすことに留意すべきである。図は、特徴の説明を容易にすることしか意図していないことに留意すべきである。それらは、請求される発明の網羅的な説明として、または請求される発明の範囲に対する限定として意図されるものではない。加えて、示される例は、示されるすべての局面または利点を有する必要はない。特定の例に関連して説明される局面または利点は、必ずしもその例に限定されるわけではなく、そのように描かれていなくてもまたはそのように明示的に記載されていなくても、任意の他の例で実践可能である。
【0032】
集積回路(IC)パッケージ中へのプログラマブルデバイスおよび処理システムの集積が記載される。本明細書中に記載される例示的な技術は、フィールドプログラマブルゲー
トアレイ(FPGA)ファブリックなどのプログラマブルファブリックをリング配線を有する高性能処理システムに集積する。1つの例では、ICパッケージは、基板上に配設される処理システムおよびプログラマブルICを含む。処理システムおよびプログラマブルICは、基板の配線を通じて結合される。処理システムはプロセッサおよびインターフェイスコントローラを含み、リング配線に結合される構成要素を含む。プログラマブルICは、基板上の配線を通じてインターフェイスコントローラに結合されるインターフェイス終点を含む。プログラマブルICは、インターフェイス終点に結合されかつ配線終点およびインターフェイスコントローラを通じての処理システムのリング配線との通信のために構成される周辺機器も含む。一例では、プログラマブルICは、周辺構成要素インターフェイスエクスプレス(PCIe)接続を通じて処理システムのリング配線に接続される。例では、プログラマブルICと処理システムとの間のPCIe接続の物理層を、プログラマブルICと処理システムとの間の基板配線の公知の特徴に基づいて最適化することができる。他の例では、PCIeの代わりに、インテル(登録商標)クイックパス配線(Quickpath Interconnect)(QPI)、オムニパス(Omnipath)、インフィニバンド(Infiniband)などの他のチップ間配線プロトコルの最適化版を用いることができる。このように、PCIeソケットおよびPCIeコネクタを有するプログラマブルICを有する付加的な基板のための付加的な基板空間を必要とすることなく、プログラマブルIC中に実現される周辺機器を処理システムのためのアクセラレータとして用いることができる。
【0033】
別の例では、ICパッケージは、(同じパッケージ中に配設されるのに対して)半導体ダイ上に配設される処理システムおよびプログラマブルICを含む。処理システムは、リング配線に結合される構成要素(たとえば、プロセッサおよびインターフェイス回路)を含む。プログラマブルICはリング配線に結合され、かつリング配線との通信のために構成される周辺機器を含む。
【0034】
別の例では、ICパッケージは、(同じパッケージ中に配設されるのに対して)半導体ダイ上に配設される処理システムおよびプログラマブルICを含む。処理システムは、リング配線に結合される構成要素(たとえば、プロセッサインターフェイス回路およびメモリ)を含む。プログラマブルICはリング配線に結合され、リング配線およびメモリとの通信のために構成される周辺機器を含む。
【0035】
別の例では、ICパッケージは、(同じパッケージ中に配設されるのに対し)半導体ダイ上に配設される処理システムおよびプログラマブルICを含む。処理システムは、リング配線に結合される構成要素を含む。リング配線は、リング間コネクタを通じて第2のサブリングに結合される第1のサブリングを含む。構成要素はプロセッサおよびインターフェイス回路を含む。プログラマブルICは第1のサブリングに結合され、かつ第1のサブリングとの通信のために構成される少なくとも1つの周辺機器を含む。
【0036】
図面を参照して、例示的な技術のこれらおよびさらなる局面を以下に説明する。
図1は、例に従う集積回路(IC)パッケージ102を描くブロック図である。ICパッケージ102は、処理システム104およびプログラマブルIC106を含む。処理システム104は半導体ダイ上に実現され、1つ以上の中央処理装置(CPU)および周辺機器インターフェイスコントローラ(たとえば、周辺構成要素相互接続エクスプレス(PCIe)インターフェイスコントローラなど)を含む他の固定機能を含む。処理システム104の例示的な実現例を、
図2を参照して以下に説明する。プログラマブルIC106は別の半導体ダイ上に実現され、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブル論理デバイス(CPLD)、FPGA/CPLD機能性を有するシステムオンチップ(SoC)、または他の種類のプログラマブルデバイスであることができる。処理システム104およびプログラマブルIC106は、インターポーザ、パッケージ基板などの基板118に電気的かつ機械的に搭載される。基板118はIC
パッケージ102中に配設され、これは蓋またはその上に半導体ダイを封入する何らかの他の形態の封入体を含むことができる。
【0037】
処理システム104は、基板118上に形成される配線112を通じてまたは直接ダイ積層を通じてプログラマブルIC106に電気的に結合され得る。以下にさらに記載するように、処理システム104は、配線112を通じてプログラマブルIC106中のインターフェイス終点(たとえば、PCIe終点)に結合されるインターフェイスコントローラ(たとえば、PCIeコントローラ)を含むことができる。ICパッケージ102はパッケージインターフェイス108を含む。パッケージインターフェイス108は、はんだボール、はんだバンプ、金属ピンなどを含むことができる。パッケージインターフェイス108は、ICパッケージ102を電気的かつ機械的に搭載するようにプリント回路基板(PCB)などとインターフェイスするように構成される。処理システム104は、基板118上に形成される配線116を通じてパッケージインターフェイス108に結合される回路を含むことができる。プログラマブルIC106は、基板118上に形成される配線114を通じてパッケージインターフェイス108に結合される回路を含むことができる。
【0038】
パッケージインターフェイス108は、たとえば、ランダムアクセスメモリ(RAM)132、不揮発性メモリ(NVM)134、周辺機器136、およびサポート回路138を含む他の回路構成に結合可能である。RAM132は、ダイナミックRAM(DRAM)(たとえば、ダブルデータレート(DDR)RAMなど)、スタティックRAM(SRAM)などを含むことができる。NVM134は、読出専用メモリ(ROM)(たとえば、電子的に消去可能なプログラマブルROM(EEPROM)など)および/または不揮発性RAM(NVRAM)(たとえば、フラッシュメモリ、固体状態記憶など)を含むことができる。周辺機器136は、当該技術分野で公知のコンピューティングシステムで用いられる任意の種類の周辺回路を含むことができる。サポート回路138は、電源と、ICパッケージ102をサポートするための同種の回路とを含むことができる。RAM132、NVM134、および周辺機器136は、本明細書中にさらに記載するように、これらの回路をICパッケージ102の内部で実現されるRAM、NVM、および/または周辺機器から区別するために、「外部」RAM、NVM、および/または周辺機器と称されることがある。
【0039】
プログラマブルIC106は、周辺回路構成110を含む。周辺回路構成110は、インターフェイス(たとえば、PCIeインターフェイス)を通じた処理システム104との通信のために構成される。周辺回路構成110は、ハード化回路、被プログラミング回路(programmed circuit)、またはその組合せを含む。
【0040】
本明細書中で用いるように、「ハード化回路」はICの一部として製造される。プログラマブル論理とは異なり、ハード化回路構成は、プログラマブルIC中のプログラマブル論理の構成によって形成されるのではない。ハード化回路構成は一般的に、たとえば、特定の機能性を有しかつプログラマブルIC106にコンフィギュレーションビットストリームをまずロードしなくても機能的である専用回路ブロックおよび配線を有すると考えられる。ハード化回路構成は、パラメータ設定に応じて設定または選択可能な1つ以上の動作モードを有することができる。パラメータ設定は、たとえば、プログラマブルIC106内の1つ以上のメモリ素子(たとえば、レジスタ)中に値を記憶することによって実現可能である。動作モードは、たとえば、プログラマブルIC106にコンフィギュレーションビットストリームをロードすることによって設定可能である。このようにできるにも拘わらず、ハード化回路構成は「プログラマブル論理」とは考えられない。ハード化回路に対し、被プログラミング回路は、コンフィギュレーションビットストリームのロードによってプログラマブルICのプログラマブル論理中に構成される回路である。
【0041】
ICパッケージ102は、処理システム104が用いるための周辺回路構成110を含む。周辺回路構成110の一部は、プログラマブルIC106のプログラマブル論理中に構成される被プログラミング回路構成であることができ、これにより、特定の種類および数の周辺機器が動的に経時変化できるようになる。周辺回路構成110の例を以下にさらに説明する。周辺回路構成110は、ICパッケージ102の外部の周辺機器136に対して、オンチップまたは内部周辺機器を実現する。
【0042】
一例では、ICパッケージ102は1つ以上の他のIC120を含むことができる。各々のIC120は、機械的かつ電気的に基板118に結合される半導体ダイ上に実現される。他のIC120は、基板118上の配線126を通じて処理システム104に、および/または基板118上の配線130を通じてプログラマブルIC106に電気的に接続可能である。他のIC120は、基板118上の配線128を通じてパッケージインターフェイス108に結合される回路を含むことができる。一例では、他のIC120は、RAM122および/または不揮発性メモリ(NVM)124を含むことができる。RAM122は、プログラマブルIC106、処理システム104、またはプログラマブルIC106と処理システム104との両方(たとえば、共有メモリ)に結合可能である。同様に、NVM124は、プログラマブルIC106、処理システム104、またはプログラマブルIC106と処理システム104との両方に結合可能である。RAM122および/またはNVM124は、パッケージインターフェイス108に結合可能である。RAM122およびNVM124は、それぞれ、RAM132およびNVM134と同様のデバイスであることができる。
【0043】
以上の例では、処理システム104およびプログラマブルIC106は、ICパッケージ102内で基板118に搭載される2つの別個の半導体ダイを用いて実現される。代替例では、処理システム104およびプログラマブルIC106は、ICパッケージ102に配設される単一の半導体ダイを用いて実現される。そのような場合、単一の半導体ダイを基板118に搭載することができるか、または基板118を省略することができる。他のIC120は、処理システム104およびプログラマブルIC106とは別個の1つ以上のダイ上に実現可能である。代替的に、他のIC120のうち1つ以上を、処理システム104および/またはプログラマブルIC106と同じダイ上に実現することができる。
【0044】
動作の際、処理システム104は、RAM132および/またはNVM134中に記憶可能なソフトウェアコードを実行する。処理システム104は、ソフトウェアコードの実行に応答して、プログラマブルIC106中の周辺回路構成110と通信することができる。たとえば、周辺回路構成110は、処理システム104の代わりにハードウェア(たとえば、ハードウェアアクセラレータ)中で1つ以上の機能を果たすことができる。ICパッケージ102に電力が供給されると、プログラマブルIC106は、NVM124および/またはNVM134中に記憶されるコンフィギュレーションデータ(たとえば、コンフィギュレーションビットストリーム)を用いて周辺回路構成110の少なくとも一部を実現するように構成可能である。初期コンフィギュレーションの後、プログラマブルIC106を、周辺回路構成110のすべてまたは一部の機能性を変更するように動的に(たとえば、部分的再構成を用いて)再構成可能である。一例では、処理システム104は、ソフトウェアコードを実行して(たとえば、PCIeインターフェイスを通じて)プログラマブルIC106を再構成する。
【0045】
図2は、処理システム104およびプログラマブルIC106の例を描くブロック図である。処理システム104は、1つ以上のCPU(たとえば、複数のCPU202が示される)、1つ以上のキャッシュメモリ(たとえば、複数のキャッシュメモリ204が示さ
れる)、およびインターフェイス回路206を含む。CPU202は、1つ以上のコアと、関連の回路構成(たとえば、キャッシュメモリ、メモリ管理ユニット(MMU)、割込コントローラなど)とを含むことができる。例では、処理システム104は、グラフィックス処理装置(GPU)208、特定用途向け回路(たとえば、機械学習回路)などの付加的な構成要素を含むことができる。CPU202、キャッシュメモリ、インターフェイス回路206、および他の構成要素(たとえば、GPU208、テンソル処理装置(TPU)209など)は、リング配線210に結合される。リング配線210は、それに結合されるさまざまな構成要素同士の間のオンダイバスである。各々の構成要素は、リング配線210へのローカルインターフェイスを含む。処理システム104のさまざまな構成要素は、リング配線210を通じて互いと通信することができる。インターフェイス回路206は、リング配線210に結合される他の構成要素(たとえば、CPU202およびGPU208)へのオフダイインターフェイスを設ける。
【0046】
一例では、リング配線210は、各々の接続される構成要素毎にインターフェイスを有するリングベーストポロジーを含む。リング配線210は、要求、スヌープ、および受信確認のための別個の線とともに特定の幅のデータバスを有する双方向リングであることができる。CPU202の各々は、リング配線210上の一意の構成要素である。同様に、(存在する場合)GPU208は、リング配線210上の一意の構成要素である。インターフェイス回路206がリング配線210へのインターフェイスを共有することができるか、またはインターフェイス回路206中の各々のインターフェイス構成要素がリング配線210へのそれ自身のインターフェイスを含むことができる。リング配線210は、さまざまなトポロジー(たとえば、リング、星、メッシュなど)を含むことができる。
【0047】
キャッシュメモリ204は、リング配線210に接続される共有最終レベルキャッシュ(LLC)を設けることができる。各々のCPU202には、共有LLCキャッシュのスライスを割当てることができる。キャッシュメモリ204によって実現されるLLCキャッシュは、リング配線210上の他の構成要素(たとえば、GPU208)によってもアクセス可能であり得る。
【0048】
一例では、インターフェイス回路206は、PCIeコントローラ214および1つ以上の他のコントローラ216を含む。他のコントローラ216は、リング配線210に結合される構成要素に応じて、メモリコントローラ、ディスプレイコントローラなどを含むことができる。CPU202は、リング配線210を通じてPCIeコントローラ214に結合される。PCIeコントローラ214は、CPU202の代わりにPCIeルートコンプレックス(root complex)を実現する。
【0049】
プログラマブルIC106中の周辺回路構成110は、PCIe終点回路(「PCIe終点218」)および1つ以上の周辺機器230を含む。プログラマブルIC106は他の回路構成224も含み得る。PCIe終点218は、配線112を通じてPCIeコントローラ214に結合される。PCIe終点218は、周辺機器230をPCIeコントローラ214に結合するスイッチを実現する。一例では、周辺機器230は、プログラマブルIC106のプログラマブル論理の中に構成され、PCIe終点218は、プログラマブルIC106内のハード化回路である。他の例では、プログラマブルIC106のプログラマブル論理中にPCIe終点218の少なくとも一部を構成することができる。他の例では、周辺機器230のうち1つ以上がプログラマブルIC106中のハード化回路であることができる。他の回路構成224は、プログラマブルIC106のプログラマブル論理中に構成される被プログラミング回路構成、プログラマブルIC106内のハード化回路構成、またはその組合せを含むことができる。
【0050】
他の例では、各々の周辺機器230は、周辺機器230同士の間で共有されかつプログ
ラマブルIC106中のスイッチとして機能する単一のPCIe終点を含むよりもむしろ、それ自身のPCIe終点を含むことができる。別の例では、プログラマブルIC106は、複数のPCIe終点を含むことができ、その各々は周辺機器230の群の間で共有される。
【0051】
例では、PCIeコントローラ214は、ICパッケージ102のパッケージインターフェイス108に結合されるインターフェイス220を含む。これにより、処理システム104は、所望によりICパッケージ102外部の付加的な周辺機器(たとえば、周辺機器136)と通信できるようになる。ある例では、インターフェイス220を省略することができ、PCIeコントローラ214は、プログラマブルIC106中のPCIe終点のみと通信する。他のコントローラ216は、ICパッケージ102および/または他のIC120のパッケージインターフェイス108に結合されるインターフェイス222を含む。インターフェイス220および222は、処理システム104とパッケージインターフェイス108との間の配線116を用いて実現可能である。たとえば、他のコントローラ216は、RAM132および/またはRAM122へのアクセスを制御するためのメモリコントローラを含むことができる。他のコントローラ216は、NVM134および/またはNVM124からの読出およびそれらへの書込のための回路構成を含むことができる。
【0052】
一例では、他の回路構成224はインターフェイス228を含む。インターフェイス228は、ICパッケージ102のパッケージインターフェイス108に結合可能であるか、他のIC120(たとえば、
図1に示されるNVM124)に結合可能であるか、またはその組合せであることができる。例では、周辺回路構成110は、ICパッケージ102のパッケージインターフェイス108に結合されるか、他のIC120(たとえば、
図1に示されるRAM122)に結合されるか、またはその組合せであるインターフェイス226を含む。これにより、プログラマブルIC106の外部の回路は、周辺回路構成110と直接に通信できるようになる。ある例では、インターフェイス226を省略することができる。インターフェイス226および228は、プログラマブルIC106とパッケージインターフェイス108との間の配線114および/またはプログラマブルIC106と他のIC120との間の配線130を用いて実現可能である。一例では、周辺回路構成110は、他の回路構成224へのインターフェイス229を含む。インターフェイス229は、プログラマブルIC106中の専用の配線および/またはプログラマブル配線を用いて実現可能である。
【0053】
示される例では、プログラマブルIC106中の周辺回路構成110は、PCIeコントローラ214およびPCIe終点218によって実現されるPCIeインターフェイスを通じてリング配線210およびその上の構成要素に結合される。他の種類のインターフェイスを用いることができる。たとえば、PCIeコントローラ214およびPCIe終点218をクイックパス配線(QPI)コントローラおよびQPI終点と置換えることができる。別の例では、PCIeコントローラ214およびPCIe終点218を、処理システム104とプログラマブルIC106との間の通信をサポートするように特定的に設計されるカスタムインターフェイスコントローラおよびカスタムインターフェイス終点と置換えることができる。当業者は、プログラマブルIC106中の周辺回路構成110とリング配線210上の処理システム104中の構成要素との間の通信を可能にするようにさまざまな種類のインターフェイスを用いることができることを認めるであろう。
【0054】
図3は、一例に従う周辺回路構成110を描くブロック図である。周辺回路構成110は一般的に、静的領域302およびプログラマブル領域304を含む。静的領域302は、インターフェイス回路306(たとえば、
図2に示されるPCIe終点218)を含む。プログラマブル領域304は周辺機器230を含むことができる。ある例では、プログ
ラマブル領域304は、いくつかのインターフェイス回路306Aも含む。ある例では、周辺回路構成110は、1つよりも多くのプログラマブル領域304を含むことができ、その各々は、周辺機器230を用いて個別に構成可能である。
【0055】
静的領域302は、その回路構成がプログラマブル領域304の再構成にわたって一定のままである点で「静的」である。一例では、インターフェイス回路306は、PCIe終点回路、直接メモリアクセス(DMA)コントローラ、配線、メモリコントローラ、メモリインターフェイス回路(たとえば、DDRインターフェイス)、(部分再構成をサポートする)デカプラ回路、フラッシュプログラマー、デバッグ回路などを含む。ある例では、プログラマブル領域304は、インターフェイス回路306のいずれも含まない。他の例では、上述のインターフェイス回路のいくつか(たとえば、DMAコントローラ)を、(インターフェイス回路306Aとして)プログラマブル領域304の中に実現することができる。
【0056】
図4は、一例に従う周辺回路構成110をより詳細に描くブロック図である。周辺回路構成110は、インターフェイス回路306および周辺機器230を含む。当該例では、インターフェイス回路306は、PCIe終点218、DMAコントローラ404、配線回路(「配線406」)、メモリコントローラ410、メモリインターフェイス412、他のインターフェイス414を含む。インターフェイス回路306は他の回路を含むことができるが、明確さのためにこれら(たとえば、デカプラ回路、デバック回路など)を省略している。PCIe終点218は、周辺バスへの(たとえば、PCIeコントローラ214への)物理的インターフェイスを設ける。PCIe終点218は、周辺機器230を実現するプログラマブル論理の再構成を制御するための媒体構成アクセスポート(media configuration access port)(MCAP)402を含むことができる。DMAコントロ
ーラ404は、処理システム104と周辺回路構成110との間のDMA動作を容易にする。
【0057】
配線406は、DMAコントローラ404、周辺機器230、メモリコントローラ410、および他のインターフェイス414を結合する。メモリコントローラ410はメモリインターフェイス412に結合される。メモリインターフェイス412は、プログラマブルIC106外部のRAM(たとえば、RAM122および/またはRAM132)、プログラマブルIC106内部のRAM(以下に記載される例)、またはその組合せに結合可能である。他のインターフェイス414は、プログラマブルIC106中の他の回路構成224(たとえば、他のハード化回路および/または被プログラミング回路)に結合可能である。
【0058】
例では、配線406は、ARM(登録商標)アドバンストマイクロコントローラバスアーキテクチャ(Advanced Microcontroller Bus Architecture)(AMBA(登録商標)
)標準の一部として規定されるアドバンスト拡張可能インターフェイス(Advanced Extensible Interface)(AXI)配線を用いて実現される。たとえば、配線406は、AX
I4、AXI4-ライト(AXI4-Lite)、およびAXI4-ストリーム(AXI4-Stream)プロトコルをサポートすることができる。AXI4プロトコルは、高性能メモリマップインターフェイスを規定する。AXI4-ライトプロトコルは、低スループットメモリマップインターフェイスを規定する。AXI-ストリームプロトコルは、高速ストリーミングインターフェイスを規定する。AXI仕様は、単一のAXIマスタと単一のAXIスレーブとの間のインターフェイスを規定する。配線406は、AXIマスタをAXIスレーブに結合する。AXI4およびAXI4-ライトインターフェイスは、5つの異なるチャネル(すなわち、読出および書込アドレスチャネル、読出および書込データチャネル、ならびに書込応答チャネル)を含む。AXI4-ストリームプロトコルは、マスタとスレーブとの間でのストリーミングデータの伝送のための単一のチャネルを規定する。メモリマップ
AXI(たとえば、AXI4またはAXI4-ライト)において、すべてのトランザクションは、メモリ空間および転送すべきデータ内の目標アドレスに係る。ストリーミングAXI(たとえば、AXI-ストリーム)では、アドレスの概念は存在しないか、または要件ではない。DMAコントローラ404、周辺機器230、他のインターフェイス414、およびメモリコントローラ410の各々は、互いの間での通信のために1つ以上のAXIマスタおよび1つ以上のAXIスレーブを含む。
【0059】
動作の際、処理システム104は、PCIe終点218を通じて周辺回路構成110にアクセスする。処理システム104は、DMAコントローラ404によって取扱われるDMAトランザクションを用いて周辺回路構成110にデータを移動し、データをそこから受信することができる。処理システム104は、周辺機器230に直接にデータを移動し、そこから直接にデータを受信することができる。処理システム104は、メモリコントローラ410にデータを移動し、そこからデータを受信することもできる。たとえば、直接に周辺機器230にデータを送り、そこから受信するよりもむしろ、処理システム104は、DMAトランザクションを用いてデータをメモリコントローラ410に移動してRAM中に記憶させることができる。周辺機器230は、RAM中に記憶されるデータにアクセスし、これを処理することができる。処理システム104は次に、DMAトランザクションを用いてRAMから処理済みデータを取出すことができる。他の例では、メモリコントローラ410のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
【0060】
処理システム104は、他のインターフェイス414に直接にデータを移動しそこから直接にデータを受信することもできる。これに代えて、直接に他のインターフェイス414にデータを送りそこから受信するよりもむしろ、処理システム104は、DMAトランザクションを用いてメモリコントローラ410にデータを移動してRAM中に記憶させることができる。他のインターフェイス414は、RAM中に記憶されるデータにアクセスし、これを処理することができる。次に処理システム104は、DMAトランザクションを用いてRAMから処理済みデータを取出すことができる。他の例では、他のインターフェイス414のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
【0061】
図5は、一例に従うコンピューティングシステム500を描くブロック図である。コンピューティングシステム500は、ハードウェア504およびハードウェア504上で実行されるソフトウェア506を含む。ハードウェア504は、処理システム104およびプログラマブルICD106を少なくとも有するICパッケージ102を含む(明確さのため、他のIC120は
図5から省略されている)。ハードウェア504は、RAM132、NVM134、サポート回路138、および周辺機器136などの、ICパッケージ102に結合される回路構成も含む。ソフトウェア506はオペレーティングシステム(OS)508、ドライバスタック510、およびアプリケーション512を含む。処理システム104は、RAM132または他の記憶デバイスに記憶可能なソフトウェア506を実行して、本明細書中に記載される1つ以上の動作を行なうように構成される。一実施形態では、ICパッケージ102は、処理システム104とプログラマブルIC106との間に配設されるFIFOバッファを含むことができる(たとえば、FIFOバッファを、処理システム104および/またはプログラマブルIC106のいずれかまたは両方の中に配設可能である)。
【0062】
OS508は、リナックス(登録商標)、マイクロソフトウインドウズ(登録商標)、Mac OS(登録商標)などの当該技術分野で公知の任意の汎用オペレーティングシステムであることができる。ドライバスタック510は、指令およびその制御のための周辺回路構成110にアプリケーションプログラミングインターフェイス(API)を設ける
ドライバおよびライブラリを含む。アプリケーション512は、何らかの作業を行なうようにドライバスタック510を通じて周辺回路構成110を呼出すソフトウェアを含む。アプリケーション512は、ニューラルネットワーク、映像処理、ネットワーク処理、または処理システム104から周辺回路構成110にいくつかの機能を肩代わりさせる同種のアプリケーションを含むことができる。アプリケーション512は、周辺回路構成110の機能性を変更するようにプログラマブルIC106の構成を制御することもできる。
【0063】
ドライバスタック510は、DMAドライバ、ハードウェア抽象化層(HAL)ドライバ、およびランタイムライブラリなどの、さまざまなライブラリ、ドライバなどを含むことができる。ランタイムライブラリは、アプリケーション512による使用のためのAPIを設ける。ランタイムライブラリは、アプリケーション512とHALドライバとの間のインターフェイスを設ける。同様に、HALドライバは、ランタイムライブラリによる使用のためのAPIを含む。HALドライバは、ランタイムライブラリとDMAドライバとの間のインターフェイスを設ける。DMAドライバは、周辺回路構成110を制御するためのAPIを含む。特に、DMAドライバは、周辺機器230、メモリコントローラ410、および/または他のインターフェイス414にDMAコントローラ404を通じてアクセスするためのAPIを含む。
【0064】
図6は、一例に従うプログラマブルIC106を描くブロック図である。プログラマブルIC106は、プログラマブル論理3、コンフィギュレーション論理25、およびコンフィギュレーションメモリ26を含む。プログラマブル論理3は、論理セル30、サポート回路31、およびプログラマブル配線32を含む。論理セル30は、複数の入力の一般的な論理機能を実現するように構成可能である。サポート回路31は、トランシーバ、入出力ブロック、デジタル信号プロセッサ、メモリなどの専用回路を含む。サポート回路31は、論理セル30への入力およびそれからの出力のためのFIFOバッファを含むことができる。論理セルおよびサポート回路31は、プログラマブル配線32を用いて相互接続可能である。論理セル30をプログラムするため、サポート回路31のパラメータを設定するため、およびプログラマブル配線32をプログラムするための情報は、コンフィギュレーション論理25によってコンフィギュレーションメモリ26中に記憶される。コンフィギュレーション論理25は、不揮発性メモリ27または任意の他のソース(たとえば、DRAM28または他の回路29から)からコンフィギュレーションデータを取得することができる。ある例では、プログラマブルIC106は処理システム2を含む。処理システム2は、マイクロプロセッサ、メモリ、サポート回路、IO回路などを含むことができる。処理システム2は、ICパッケージ102中の処理システム104からの区別のために「埋込」処理システムと称されることがある。
【0065】
図7は、一例に従うプログラマブルIC106のシステムオンチップ(SoC)実現例を描くブロック図である。当該例では、プログラマブルIC106は、処理システム2およびプログラマブル論理3を含む。処理システム2は、リアルタイム処理装置(RPU)4、アプリケーション処理装置(APU)5、グラフィックス処理装置(GPU)6、コンフィギュレーションおよびセキュリティユニット(CSU)12、プラットフォーム管理ユニット(PMU)122などのさまざまな処理装置を含む。処理システム2は、オンチップメモリ(OCM)14、トランシーバ7、周辺機器8、配線16、DMA回路9、メモリコントローラ10、周辺機器15、および多重化IO(MIO)回路13などのさまざまなサポート回路も含む。処理装置およびサポート回路は配線16によって相互接続される。PL3も配線16に結合される。トランシーバ7は外部ピン24に結合される。PL3は外部ピン23に結合される。メモリコントローラ10は外部ピン22に結合される。MIO13は外部ピン20に結合される。PS2は一般的に外部ピン21に結合される。APU5は、CPU17、メモリ18、およびサポート回路19を含むことができる。
【0066】
図7の例では、周辺回路構成110はPL3中に配設される、被プログラミング回路、ハード化回路、またはその組合せであることができる。別の例では、周辺回路構成110のある部分をPS2を用いて実現可能である。別の例では、PS2には、周辺回路構成110の他のインターフェイス414を通じてアクセス可能であり得る。そのような例では、処理システム104および/または周辺機器230は、PS2にアクセスすることができる。
【0067】
PS2を参照して、処理装置の各々は、1つ以上のCPUと、メモリ、割込コントローラ、DMAコントローラ、メモリ管理ユニット(MMU)、浮動小数点ユニット(FPU)などの関連回路とを含む。配線16は、処理装置を相互接続し、またPS2中の他の構成要素を処理装置に相互接続するように構成されるさまざまなスイッチ、バス、通信リンクなどを含む。
【0068】
OCM14は、PS2を通じて分散可能な1つ以上のRAMモジュールを含む。たとえば、OCM14は、バッテリバックアップ付きRAM(BBRAM)、密結合メモリ(TCM)などを含むことができる。メモリコントローラ10は、外部DRAMにアクセスするためのDRAMインターフェイスを含むことができる。周辺機器8,15ぱ、PS2へのインターフェイスを設ける1つ以上の構成要素を含むことができる。たとえば、周辺機器136は、グラフィックス処理装置(GPU)、ディスプレイインターフェイス(たとえば、ディスプレイポート、高精細度マルチメディアインターフェイス(HDMI(登録商標))ポートなど)、ユニバーサルシリアルバス(USB)ポート、イーサネット(登録商標)ポート、汎用非同期送受信機(UART)ポート、シリアル周辺機器インターフェイス(SPI)ポート、汎用IO(GPIO)ポート、シリアルアドバンスト技術装着(serial advanced technology attachment)(SATA)ポート、PCIeポートなど
を含むことができる。周辺機器15はMIO13に結合可能である。周辺機器8はトランシーバ7に結合可能である。トランシーバ7はシリアライザ/デシリアライザ(SERDES)回路、MGTなどを含むことができる。
【0069】
図8は、プログラマブルIC106のフィールドプログラマブルゲートアレイ(FPGA)実現例を示す。
図7に示されるプログラマブルIC106のSoC実現例中のPL3も、
図8に示される構造を有することができる。FPGA実現例は、トランシーバ37、コンフィギュレーション論理ブロック(「CLB」)33、ランダムアクセスメモリブロック(「BRAM」)34、入出力ブロック(「IOB」)36、コンフィギュレーションおよびクロック発生論理(「CONFIG/CLOCKS」)42、デジタル信号処理ブロック(「DSP」)35、特化された入出力ブロック(「I/O」)41(たとえば、コンフィギュレーションポートおよびクロックポート)、およびデジタルクロックマネージャ、アナログ-デジタル変換器、システム監視論理などの他のプログラマブル論理39を含む多数の異なるプログラマブルタイルを含む。FPGAは、PCIeインターフェイス40、アナログ-デジタル変換器(ADC)38なども含むことができる。
【0070】
あるFPGAでは、各々のプログラマブルタイルは、
図8のいちばん上に含まれる例に示されるように、同じタイル内にプログラマブル論理素子の入出力端子48への接続を有する少なくとも1つのプログラマブル相互接続素子(「INT」)43を含むことができる。各々のプログラマブル相互接続素子43は、同じタイルまたは他のタイルの中に、隣接するプログラマブル相互接続素子の配線セグメント49への接続も含むことができる。各々のプログラマブル相互接続素子43は、論理ブロック(図示せず)同士の間の一般的なルーティングリソースの配線セグメント50への接続も含むことができる。一般的なルーティングリソースは、配線セグメント(たとえば、配線セグメント50)のトラックおよび配線セグメントを接続するためのスイッチブロック(図示せず)を備える論理ブロッ
ク(図示せず)同士の間のルーティングチャネルを含むことができる。一般的なルーティングリソース(たとえば、配線セグメント50)の配線セグメントは1つ以上の論理ブロックに跨ることができる。一般的なルーティングリソースとともに、プログラマブル相互接続素子43は、図示されるFPGAのためのプログラマブル配線構造(「プログラマブル配線」)を実現する。
【0071】
例示的な実現例では、CLB33は、ユーザ論理プラス単一のプログラマブル相互接続素子(「INT」)43を実現するようにプログラムされ得るコンフィギュラブル論理素子(「CLE」)44を含むことができる。BRAM34は、1つ以上のプログラマブル相互接続素子に加えて、BRAM論理素子(「BRL」)45を含むことができる。典型的に、タイルに含まれる相互接続素子の数はタイルの高さに依存する。描かれる例では、BRAMタイルは5つのCLBと同じ高さを有するが、他の数(たとえば4)も用いることもできる。DSPタイル35は、適切な数のプログラマブル相互接続素子に加えて、DSP論理素子(「DSPL」)46を含むことができる。IOB36は、プログラマブル相互接続素子43の1つのインスタンスに加えて、たとえば入出力論理素子(「IOL」)47の2つのインスタンスを含むことができる。当業者には明らかなように、たとえば、I/O論理素子47に接続される実際のI/Oパッドは典型的に、入出力論理素子47の区域に閉じ込められるわけではない。
【0072】
描かれる例では、(
図8に示される)ダイの中心近くの水平方向区域をコンフィギュレーション、クロック、および他の制御論理のために用いる。この水平方向区域またはカラムから延在する垂直方向カラム51は、FPGAの幅にわたってクロックおよびコンフィギュレーション信号を分配するのに用いられる。
【0073】
図8に示されるアーキテクチャを利用するいくつかのFPGAは、FPGAの大きな部分を構成する規則的なカラムナ構造を中断させる付加的な論理ブロックを含む。付加的な論理ブロックは、プログラマブルブロックおよび/または専用論理であり得る。
【0074】
なお、
図8は、例示的なFPGAアーキテクチャしか示さないことが意図される。たとえば、列中の論理ブロックの数、列の相対的な幅、列の数および順序、列に含まれる論理ブロックの種類、論理ブロックの相対的な大きさ、ならびに
図8のいちばん上に含まれる相互接続/論理実現例は、純粋に例示的である。たとえば、実際のFPGAでは、ユーザ論理の効率的な実現を容易にするために、CLBが現われる場所にはどこにでも、1つよりも多くのCLBの隣接する列が典型的に含まれるが、隣接するCLB列の数はFPGAの全体サイズによって異なる。
【0075】
図9は、一例に従うICパッケージ102中のプログラマブルIC106を動作させる方法900を描くフロー図である。方法900の局面は、以上の
図1-
図8を参照して理解することができる。方法900は3つの主な段階を含む。ブロック902で、ICパッケージ102の起動の際に、プログラマブルIC106が構成される。ブロック908で、デバイスはプログラマブルIC106と通信する。ブロック916で、ICパッケージ102の電源オンの間、プログラマブルIC106が再構成される。プログラマブルIC106を動作させる3つの主な段階の各々毎にさまざまな使用ケースが存在する。
【0076】
ICパッケージ102の電源オンの際、プログラマブルIC106を構成するのに用いることができるいくつかの異なるプロセスが存在する。プログラマブルIC106のコンフィギュレーション論理25は、多数の異なるコンフィギュレーションモードを含み、これをマスタモードとスレーブモードとに分類可能である。マスタモードでは、コンフィギュレーション論理25は構成プロセスを駆動する。例示的なマスタモードは、マスタシリアル周辺インターフェイス(SPI)モード、マスタバイト周辺インターフェイス(BP
I)モード、マスタシリアルモード、およびマスタセレクトマップ(SelectMAP)モード
を含む。マスタSPIモードでは、コンフィギュレーション論理25は、SPIプロトコルを用いてNVMからコンフィギュレーションビットストリームをロードする。NVMは、ICパッケージ102の内部のもの(たとえば、NVM124)またはICパッケージ102の外部のもの(たとえば、NVM134)であることができる。マスタBPIモードは同様に動作するが、SPIプロトコルの代わりにBPIプロトコルを用いる。マスタシリアルは同様に動作するが、シリアルプロトコルを用いる。マスタセレクトマップモードは同様に動作するが、シリアルインターフェイスよりもむしろ、パラレルインターフェイスを用いる。スレーブモードでは、外部デバイスが構成プロセスを駆動する。例示的なスレーブモードは、スレーブシリアルモードおよびスレーブセレクトマップモード(パラレル)を含む。これらのスレーブモードのうちいずれかにおいて、外部デバイスは、処理システム104または何らかの他のマイクロプロセッサもしくはマイクロコントローラ(たとえば、ICパッケージ102中の他のIC120の一部またはICパッケージ102の外部のサポート回路138)であることができる。外部デバイスは、コンフィギュレーションデータをメモリ(たとえば、NVM124またはNVM134)から読出し、コンフィギュレーションデータをコンフィギュレーション論理25に供給する。
【0077】
ブロック904で、周辺回路構成110の少なくとも一部が、プログラマブルIC106中に構成される。任意の他の回路構成224が存在すれば、ブロック904で、そのような他の回路構成224のすべてまたは一部を構成することもできる。たとえば、ブロック904で、周辺回路構成110の静的領域302を構成することができる。ブロック904で、マスタおよびスレーブモードのうち任意のものをプログラマブルIC106の構成に用いることができる。ブロック904での構成は、典型的には、ハードウェア駆動であり、すなわち、電力がICパッケージ102に印加されるものであり、構成プロセスは、コンフィギュレーション論理25(マスタモード)または外部デバイス(スレーブモード)によって行なわれる。
【0078】
ある場合、ブロック904では、周辺回路構成110の一部(たとえば、静的領域302)しか構成されない。そのような場合、ブロック906で、周辺回路構成110の残余の部分を構成することができる。ブロック906での構成は、上述のように、ハードウェア駆動またはソフトウェア駆動であることができる。ソフトウェア駆動プロセスでは、たとえば、プログラマブルIC106を部分的に再構成して、処理システム104を用いてMCAP402を通じて周辺機器230を実現することができる。
【0079】
ブロック908で、プログラマブルIC106との通信を3つの一般的なカテゴリに分けることができる。ブロック910で、通信は、処理システム104と周辺回路構成110との間で行なわれる。ブロック912で、通信は、外部デバイス(プログラマブルIC106外部)と周辺回路構成110との間で行なわれる。ブロック914で、通信は、内部デバイス(プログラマブルIC106内部)と周辺回路構成110との間で行なわれる。
【0080】
ブロック910で、処理システム104は、PCIeなどのインターフェイスを介して周辺回路構成110にデータを送るおよび/またはそれからデータを受信する。処理システム104は、DMAトランザクションを用いて、インターフェイスを介して周辺回路構成110におよびそれからデータを転送することができる。これに代えて、処理システム104は、インターフェイスを介して周辺回路構成110にデータをストリーミングすることができる。ある場合、処理システム104は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110におよびそれからデータを間接的に与えることができる。
【0081】
ブロック912で、プログラマブルIC106外部のデバイスが周辺回路構成110と通信する。たとえば、他のIC120、サポート回路138、または周辺機器136の中の回路が周辺回路構成110と直接に通信することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。
【0082】
ブロック914で、プログラマブルIC106内部のデバイスが周辺回路構成110と通信する。たとえば、他の回路構成224中の回路が周辺回路構成110と直接に通信することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。そのような回路は、プログラマブルIC106のプログラマブル論理中の被プログラミング回路またはプログラマブルIC106中のハード化回路(たとえば、埋込処理システム)であることができる。
【0083】
ブロック916で、電力がICパッケージ102に印加されている間、プログラマブルIC106を再構成することができる。たとえば、ブロック918で、ブロック902に記載したのと同様のプロセスを用いてプログラマブルIC106を完全に再構成することができる。これに代えて、ブロック920で、プログラマブルIC106を部分的に再構成することができる。たとえば、周辺回路構成110の1つ以上の周辺機器230を再構成して異なる機能性を実現することができる。
【0084】
図10は、別の例に従うICパッケージ1002を描くブロック図である。本例では、ICパッケージ1002は、単一の半導体ダイ上に形成される処理システム104およびプログラマブルIC106を含む。プログラマブルIC106は、上述のように、周辺回路構成110を含む。プログラマブルIC106は、以下の例に記載されるように、1つ以上のリング配線を通じて処理システム104中の他の構成要素に結合される。処理システム104は、ICパッケージ1002中の配線1003を通じてパッケージインターフェイス1008に結合される。例では、ICパッケージ1002は、処理システム104に結合される1つ以上の他のIC1020を含むことができる。このように、本例は、プログラマブルIC106が、PCIe、QPIなどのインターフェイスを通じてよりもむしろ、処理システム104内の内部リング配線に結合される点で、
図1とは異なっている。
【0085】
図11は、ICパッケージ1002中の処理システム104の例示的な実現例を描くブロック図である。本例では、処理システム104は、以上の例に記載したように、各々がリング配線210に結合される、CPU202、キャッシュメモリ204、およびインターフェイス回路206を含む。この例に特定的に、プログラマブルIC106もリング配線210に結合される。プログラマブルIC106中のハード化回路として、プログラマブルIC106のプログラマブル論理中の被プログラミング回路として、またはその組合せとして、周辺回路構成110を実現可能である。インターフェイス回路206は、上述のように、PCIeコントローラ214および他のコントローラ216を含む。これに代えて、PCIeコントローラ214を任意の他の同様のインターフェイスコントローラ(たとえば、QPIコントローラ)と置換えることができる。例では、処理システム104は、GPU208などの、リング配線210に結合される他の構成要素を含むことができる。
【0086】
本例では、プログラマブルIC106は、リング配線210に結合される処理システム104中の任意の他の構成要素(たとえば、CPU202、キャッシュメモリ204、インターフェイス回路206、GPU208など)と通信することができる。プログラマブルIC106には、インターフェイス回路206を通じて、処理システム104外部の回
路からアクセス可能である。
【0087】
図12は、ICパッケージ1002中の処理システム104の別の例示的な実現例を描くブロック図である。本例では、プログラマブルIC106は、
図11の例で上述したように、リング配線210に結合される。一例では、プログラマブルIC106は、メモリ1202(たとえば、ランダムアクセスメモリ(RAM))および/またはキャッシュ1204などの専用メモリを含む。専用メモリ1202,1204は、リング配線210を通じて直接にアクセス可能ではない。別の例では、プログラマブルIC106中のメモリ1202,1204をリング配線210に結合することができ、これらにはリング配線210上の他の構成要素からアクセス可能である。いずれの場合も、プログラマブルIC106は、処理システム104の外部の回路によるアクセス用の外部インターフェイス1206をさらに含むことができる。これにより、プログラマブルIC106には、インターフェイス回路206のみを通じてよりもむしろ、外部インターフェイス1206を通じて直接にアクセス可能になる。たとえば、外部インターフェイス1206は、プログラマブルIC106を構成するためのコンフィギュレーションインターフェイスを含むことができる。外部インターフェイス1206は、PCIe、QPIなどの任意の種類のインターフェイスを用いることができる。明確さの目的のため、オプションのGPU208を省略するが、
図11に示される処理システム104中にこれを含むことができる。
【0088】
図13は、ICパッケージ1002中の処理システム104のまた別の例示的な実現例を描くブロック図である。本例では、処理システム104は、リング間コネクタ1302によって結合される2つのサブリング210Aおよび210Bを含む。リング間コネクタ1302は、ルータ、ブリッジなどであることができる。プログラマブルIC106は、CPU202、キャッシュメモリ204、およびインターフェイス回路206とともに、サブリング210Bに結合される。CPU202およびキャッシュメモリ204は、サブリング210Aに結合される。一例では、他の構成要素をサブリング210Aおよび/または210Bに結合することができる。たとえば、GPU208をサブリング210Aに結合することができる。サブリング210A,210Bを除き、
図13に示される構成は
図11の構成と同様である。本構成は、帯域幅が十分に大きいプログラマブルIC106をサポートすることができ、その場合はリング配線210をサブリングに分割することが有利であろう。
【0089】
処理システムをプログラマブルICと組合せる場合、これら2つの間のストリーミングインターフェイスを用いた通信が、リアルタイムデータ処理などのさまざまな適用例におけるより優れた通信モードである。代替案は、支配的な通信パラダイムである直接メモリアドレシングである。例では、処理システム104とプログラマブルIC106との間の配線は、メモリアドレシングモードに加えてストリーミングモードをサポートすることができる。
【0090】
図14は、ストリーミングインターフェイスを用いての通信のために構成されるICパッケージ102の例示的な実現例を描くブロック図である。当該例では、PCIeコントローラ214およびPCIe終点218の各々は、1つ以上のポート1402を含む。1つのモードでは、メモリアドレシングを用いて通信するようにポート1402を構成することができる。別のモードでは、ストリーミングインターフェイスを用いて通信するようにポート1402を構成することができる。例示的なストリーミングインターフェイスは、AMBA(登録商標)AXI4ストリーミングインターフェイスであるが、他のストリーミングインターフェイスを用いることができる。例では、ポート1402は、1つよりも多くのストリーミングインターフェイスをサポートすることができる。
【0091】
図15は、ストリーミングインターフェイスを用いての通信のために構成されるICパ
ッケージ1002の例示的な実現例を描くブロック図である。当該例では、リング配線210に結合される各々の構成要素が1つ以上のポート1402を含むことができる。1つのモードでは、メモリアドレシングを用いて通信するようにポート1402を構成することができる。別のモードでは、ストリーミングインターフェイスを用いて通信するようにポート1402を構成することができる。例示的なストリーミングインターフェイスは、AMBA(登録商標)AXI4ストリーミングインターフェイスであるが、他のストリーミングインターフェイスを用いることができる。例では、ポート1402は、1つよりも多くのストリーミングインターフェイスをサポートすることができる。
【0092】
図16は、一例に従う周辺回路構成110をより詳細に描くブロック図である。周辺回路構成110のこの例は、以上のさまざまな実施形態(たとえば、
図10-
図15)に記載されるように、プログラマブルIC106が処理システム104と同じICダイ上に配設される場合に用いることができる。周辺回路構成110は、インターフェイス回路1603および周辺機器230を含む。当該例では、インターフェイス回路1603は、リングインターフェイス1602、DMAコントローラ1604、配線回路(「配線1606」)、メモリコントローラ1610、メモリインターフェイス1612、他のインターフェイス1614を含む。インターフェイス回路1603は他の回路を含むことができ、これら(たとえば、デカプラ回路、デバッグ回路など)は明確さのために省略されている。リングインターフェイス回路1602は、リング配線210への物理的インターフェイスを設ける。リングインターフェイス回路1602は、リング配線210のプロトコルと配線1606のプロトコルとの間を変換する。DMAコントローラ1604は、処理システム104と周辺回路構成110との間のDMA動作を容易にする。ある例では、DMAコントローラ1604を省略することができ、リングインターフェイス回路1602を配線1606に結合することができる。
【0093】
配線1606は、DMAコントローラ1604、周辺機器230、メモリコントローラ1610、および他のインターフェイス1614を結合する。メモリコントローラ410はメモリインターフェイス1612に結合される。メモリインターフェイス1612は、プログラマブルIC106外部のRAM、プログラマブルIC106内部のRAM(たとえば、メモリ1202および/またはキャッシュ1204)、またはその組合せに結合可能である。他のインターフェイス1614は、プログラマブルIC106中の他の回路構成(たとえば、他のハード化回路および/または被プログラミング回路)に結合可能である。
【0094】
例では、配線1606は、ARM(登録商標)アドバンストマイクロコントローラバスアーキテクチャ(AMBA(登録商標))標準の一部として規定されるAXI配線を用いて実現される。たとえば、配線406は、AXI4、AXI4-ライト、およびAXI4-ストリームプロトコルをサポートすることができる。DMAコントローラ1604、周辺機器230、他のインターフェイス1614、およびメモリコントローラ1610の各々は、互いの間での通信のために1つ以上のAXIマスタおよび1つ以上のAXIスレーブを含む。
【0095】
動作の際、処理システム104は、リングインターフェイス回路1602を通じて周辺回路構成110にアクセスする。処理システム104は、メモリマップトランザクションまたはストリーミングトランザクションを用いて周辺回路構成110にデータを移動し、そこからデータを受信することができる。処理システム104は、直接に周辺機器230にデータを移動し、そこからデータを受信することができる。処理システム104は、メモリコントローラ1610にデータを移動し、そこからデータを受信することもできる。たとえば、周辺機器230に直接にデータを送りそこから受信するよりもむしろ、処理システム104は、DMAトランザクションを用いてデータをメモリコントローラ1610
に移動してRAM中に記憶させることができる。周辺機器230は、RAM中に記憶されるデータにアクセスし、これを処理することができる。処理システム104は次に、RAMから処理済みデータを取出すことができる。他の例では、メモリコントローラ1610のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
【0096】
処理システム104は、直接に他のインターフェイス1614にデータを移動し、そこからデータを受信することもできる。これに代えて、直接に他のインターフェイス1614にデータを送り、そこから受信するよりもむしろ、処理システム104は、メモリコントローラ1610にデータを移動してRAM中に記憶させることができる。他のインターフェイス1614は、RAM中に記憶されるデータにアクセスし、これを処理することができる。次に処理システム104は、RAMから処理済みデータを取出すことができる。他の例では、他のインターフェイス1614のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
【0097】
図17は、一例に従う処理システム104中のプログラマブルIC106を動作させる方法1700を描くフロー図である。方法900の局面は、以上の
図10-
図16を参照して理解することができる(すなわち、プログラマブルIC106は、処理システム104と同じICダイ上に配設される)。方法1700は、3つの主な段階を含む。ブロック1702で、処理システム104の起動の際に、プログラマブルIC106が構成される。ブロック1708で、デバイスはプログラマブルIC106と通信する。ブロック1716で、ICパッケージ102の電源オンの間、プログラマブルIC106が再構成される。プログラマブルIC106を動作させる3つの主な段階の各々毎にさまざまな使用ケースが存在する。
【0098】
処理システム104の電源オンの際、プログラマブルIC106を構成するのに用いることができるいくつかの異なるプロセスが存在する。マスタコンフィギュレーションモードを用いて、処理システム104中に配設されるまたは処理システム104の外部に配設されるNVMを用いてプログラマブルIC106を構成することができる。スレーブコンフィギュレーションモードを用いて、処理システム104上に配設されるCPU202もしくは他のデバイスを用いてまたは処理システム104外部のデバイスを用いて、プログラマブルIC106を構成することができる。
【0099】
ブロック1704で、周辺回路構成110の少なくとも一部がプログラマブルIC106中に構成される。任意の他の回路構成が存在すれば、ブロック1704でそのような他の回路構成のすべてまたは一部を構成することもできる。ブロック1704で、マスタおよびスレーブモードのうち任意のものをプログラマブルIC106の構成に用いることができる。ブロック1704での構成は典型的にハードウェア駆動であり、すなわち、電力が処理システム104に印加されるものであり、構成プロセスは、コンフィギュレーション論理25(マスタモード)または外部デバイス(スレーブモード)によって行なわれる。
【0100】
ある場合、ブロック1704では、周辺回路構成110の一部しか構成されない。そのような場合、ブロック1706で、周辺回路構成110の残余の部分を構成することができる。ブロック1706での構成は、上述のようにハードウェア駆動またはソフトウェア駆動であることができる。ソフトウェア駆動プロセスでは、たとえば、プログラマブルIC106を部分的に再構成して、CPU202を用いて内部構成アクセスポート(ICAP)1616(
図16)を通じて周辺機器230を実現することができる。
【0101】
ブロック1708で、プログラマブルIC106との通信を3つの一般的なカテゴリに
分けることができる。ブロック1710で、通信は、CPU202と周辺回路構成110との間で行なわれる。ブロック1712で、通信は、外部デバイス(プログラマブルIC106の外部)と周辺回路構成110との間で行なわれる。ブロック1714で、通信は、(プログラマブルIC106内部の)内部デバイスと周辺回路構成110との間で行なわれる。
【0102】
ブロック1710で、CPU202は、リング配線210を介して周辺回路構成110にデータを送るおよび/またはそれからデータを受信する。処理システム104は、メモリマップトランザクションまたはストリーミングトランザクションを用いて、リング配線210を介して周辺回路構成110におよびそれからデータを転送することができる。ある場合、処理システム104は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて、周辺回路構成110におよびそれからデータを間接的に与えることができる。
【0103】
ブロック1712で、プログラマブルIC106外部のデバイスが周辺回路構成110と通信する。外部デバイスを処理システム104の内部(たとえばリング配線210の上)または処理システム104の外部に配設することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。
【0104】
ブロック1714で、プログラマブルIC106内部のデバイスが周辺回路構成110と通信する。たとえば、プログラマブルIC106中の被プログラミング回路またはハード化回路は、周辺回路構成110と直接に通信することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。
【0105】
ブロック1716で、電力が処理システム104に印加されている間、プログラマブルIC106を再構成することができる。たとえば、ブロック1718で、ブロック1702において記載したのと同様のプロセスを用いて、プログラマブルIC106を完全に再構成することができる。これに代えて、ブロック1720で、プログラマブルIC106を部分的に再構成することができる。たとえば、周辺回路構成110の1つ以上の周辺機器230を再構成して異なる機能性を実現することができる。
【0106】
以上は具体例に向けられるが、その基本的範囲から逸脱することなく、他のおよびさらなる例を考案し得、その範囲は引続く請求項によって定められる。
【手続補正書】
【提出日】2024-09-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
集積回路(IC)パッケージであって、
基板上に配設される処理システムおよびプログラマブルICを備え、前記処理システムは、前記基板の配線を通じて前記プログラマブルICに結合され、
前記処理システムはリング相互接続に結合される構成要素を含み、前記構成要素はプロセッサおよびインターフェイスコントローラを含み、
前記プログラマブルICは、
前記配線を通じて前記インターフェイスコントローラに結合されるインターフェイス終点と、
前記インターフェイス終点に結合されかつ前記インターフェイス終点および前記インターフェイスコントローラを通じて前記処理システムの前記リング相互接続に送信するように構成される少なくとも1つの周辺機器とを含み、
前記少なくとも1つの周辺機器は、前記プログラマブルICにコンフィギュレーションビットストリームをまずロードしなくても機能的であるハード化回路を含み、
前記少なくとも1つの周辺機器は、前記ハード化回路を用いて、前記インターフェイス終点および前記インターフェイスコントローラを通じて前記処理システムの前記リング相互接続にデータを送信するように構成されている、ICパッケージ。
【請求項2】
前記プログラマブルICは、前記プログラマブルICのプログラマブル論理中に構成されるプログラマブル回路を有する他の回路構成をさらに含む、請求項1に記載のICパッケージ。
【請求項3】
集積回路(IC)パッケージであって、
半導体ダイ上に配設される処理システムおよびプログラマブルICを備え、
前記処理システムはリング相互接続に結合される構成要素を含み、前記構成要素はプロセッサおよびインターフェイス回路を含み、
前記プログラマブルICは、
前記リング相互接続に結合され、
前記リング相互接続との通信のために構成される少なくとも1つの周辺機器を含み、
前記リング相互接続を通じてアクセス可能でない少なくとも1つの専用メモリと、前記少なくとも1つの周辺機器を介して前記リング相互接続を通じてアクセス可能な少なくとも1つのメモリとをさらに含み、
前記少なくとも1つの周辺機器は、前記プログラマブルICにコンフィギュレーションビットストリームをまずロードしなくても機能的であるハード化回路を含み、
前記少なくとも1つの周辺機器は、前記ハード化回路を用いた前記リング相互接続との通信のために構成されている、ICパッケージ。
【請求項4】
前記プログラマブルICは、前記プログラマブルICのプログラマブル論理中に構成されるプログラマブル回路を有する他の回路構成をさらに含む、請求項3に記載のICパッケージ。
【請求項5】
前記プログラマブルICはプログラマブルファブリックを含む、請求項1~4のいずれか1項に記載のICパッケージ。
【請求項6】
前記プログラマブルICは、前記プログラマブルファブリックに結合される埋込処理システムを含む、請求項5に記載のICパッケージ。
【請求項7】
前記少なくとも1つの周辺機器は前記プログラマブルファブリック中にプログラムされる、請求項5に記載のICパッケージ。
【請求項8】
前記インターフェイスコントローラおよび前記インターフェイス終点は、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含む、請求項1に記載のICパッケージ。
【請求項9】
前記基板はパッケージインターフェイスを含み、前記プログラマブルICは前記パッケージインターフェイスに結合される、請求項1に記載のICパッケージ。
【請求項10】
前記処理システムおよび前記プログラマブルICに結合される1つ以上の他のICをさらに備える、請求項1~4のいずれか1項に記載のICパッケージ。
【請求項11】
集積回路(IC)パッケージであって、
半導体ダイ上に配設される処理システムおよびプログラマブルICを備え、
前記処理システムはリング相互接続に結合される構成要素を含み、前記構成要素は、プロセッサ、複数のインターフェイス回路および複数のメモリを含み、
前記プログラマブルICは、
前記リング相互接続に結合され、
前記リング相互接続および少なくとも1つのメモリとの通信のために構成される周辺回路を含み、
前記周辺回路は前記プログラマブルICの静的領域および前記プログラマブルICのプログラマブル領域を含み、前記静的領域は前記リング相互接続および前記少なくとも1つのメモリとの通信のために構成されるインターフェイス回路を含み、前記プログラマブル領域は前記インターフェイス回路と通信する少なくとも1つの周辺機器を含み、
前記少なくとも1つの周辺機器は、前記プログラマブルICにコンフィギュレーションビットストリームをまずロードしなくても機能的であるハード化回路を含み、
前記少なくとも1つの周辺機器は、前記ハード化回路を用いた前記リング相互接続および少なくとも1つのメモリとの通信のために構成されている、ICパッケージ。
【請求項12】
前記プログラマブルICは、前記プログラマブルICのプログラマブル論理中に構成されるプログラマブル回路を有する他の回路構成をさらに含む、請求項11に記載のICパッケージ。
【請求項13】
前記プログラマブルICの前記少なくとも1つのメモリは前記リング相互接続に結合されない、請求項11に記載のICパッケージ。
【請求項14】
前記プログラマブルICの前記少なくとも1つのメモリは前記リング相互接続に結合される、請求項11に記載のICパッケージ。
【請求項15】
パッケージインターフェイスをさらに備え、前記プログラマブルICは前記パッケージインターフェイスに結合される、請求項11に記載のICパッケージ。
【請求項16】
前記プログラマブルICはプログラマブルファブリックを含み、前記プログラマブル領域は前記プログラマブルファブリック内に配設される、請求項11に記載のICパッケージ。
【請求項17】
前記プログラマブルICは、前記プログラマブルファブリックに結合される埋込処理システムを含む、請求項16に記載のICパッケージ。
【請求項18】
前記プロセッサおよび前記プログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含む、請求項11に記載のICパッケージ。
【外国語明細書】