JP2020535659A - 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積 - Google Patents

集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積 Download PDF

Info

Publication number
JP2020535659A
JP2020535659A JP2020517780A JP2020517780A JP2020535659A JP 2020535659 A JP2020535659 A JP 2020535659A JP 2020517780 A JP2020517780 A JP 2020517780A JP 2020517780 A JP2020517780 A JP 2020517780A JP 2020535659 A JP2020535659 A JP 2020535659A
Authority
JP
Japan
Prior art keywords
programmable
interface
processing system
coupled
package
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.)
Granted
Application number
JP2020517780A
Other languages
English (en)
Other versions
JP7244497B2 (ja
Inventor
レジー,オースティン・エイチ
モハン,サンダララジャラオ
トリンバーガー,スティーブン・エム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2020535659A publication Critical patent/JP2020535659A/ja
Priority to JP2023036854A priority Critical patent/JP2023078246A/ja
Application granted granted Critical
Publication of JP7244497B2 publication Critical patent/JP7244497B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • G06F15/7892Reconfigurable logic embedded in CPU, e.g. reconfigurable unit
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/48Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor
    • H01L23/50Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor for integrated circuit devices, e.g. power bus, number of leads
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/52Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
    • H01L23/538Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames the interconnection structure between a plurality of semiconductor chips being formed on, or in, insulating substrates
    • H01L23/5386Geometry or layout of the interconnection structure

Abstract

例示的な集積回路(IC)パッケージは、基板(118)上に配設される処理システム(104)およびプログラマブルIC(106)を含み、処理システムは、基板の配線(112)を通じてプログラマブルICに結合され、処理システムは、リング配線(210)に結合される構成要素(202・・・208)を含み、構成要素は、プロセッサ(202)およびインターフェイスコントローラ(214)を含む。プログラマブルICは、配線を通じてインターフェイスコントローラに結合されるインターフェイス終点(218)と、インターフェイス終点に結合されかつインターフェイス終点およびインターフェイスコントローラを通じての処理システムのリング配線との通信のために構成される少なくとも1つの周辺機器(230)とを含む。

Description

本開示の例は、概して、電子回路、ならびに特に集積回路(IC)パッケージへのプログラマブルデバイスおよび処理システムの集積に関する。
背景
最近の中央処理装置(CPU)は、単一の半導体ダイ上に複数のマイクロプロセッサコア、グラフィックスエンジン、および他の固定機能を集積する複雑なシステムオンチップ(SoC)デバイスである。CPUは、周辺構成要素相互接続エクスプレス(Peripheral Component Interconnect Express)(PCIe)インターフェイスなどの拡張バスインターフェイスを含むことができる。典型的な構成では、CPUを有する集積回路(IC)パッケージは、プリント回路基板(PCB)に搭載される。固定されたまたは着脱可能な態様で、さまざまな周辺機器がCPU ICパッケージの外部のPCBに搭載される。周辺機器は、PCBおよびCPU ICパッケージのピンを通じてCPUのPCIeインターフェイスに結合される。そのような構成は、少なくともPCB上に搭載される複数個のICと最悪の場合は周辺機器を有する他のPCBを挿入可能な拡張ポートのための空間とを必要とする大きな設置面積を有する。
プログラマブル集積回路(IC)はしばしば、ユーザが構成可能な入力に応じてデジタル論理演算を実現するのに用いられる。例示的なプログラマブルICは、コンプレックスプログラマブル論理デバイス(CPLD)およびフィールドプログラマブルゲートアレイ(FPGA)を含む。CPLDは、積和論理を有するプログラマブル論理アレイ(PLA)アーキテクチャに基づくいくつかの機能ブロックを含むことが多い。コンフィギュラブル相互接続マトリックスは、機能ブロック同士の間で信号を伝送する。
ある種類のFPGAはプログラマブルタイルのアレイを含む。プログラマブルタイルは、さまざまな種類の論理ブロックを備え、これは、たとえば、入出力ブロック(IOB)、コンフィギュラブル論理ブロック(CLB)、専用ランダムアクセスメモリブロック(BRAM)、乗算器、デジタル信号処理ブロック(DSP)、プロセッサ、クロックマネージャ、遅延ロックループ(DLL)、バス、または周辺構成要素相互接続エクスプレス(PCIe)およびイーサネット(登録商標)などのネットワークインターフェイスを含むことができる。各々のプログラマブルタイルは典型的に、プログラマブル配線とプログラマブル論理との両方を含む。プログラマブル配線は典型的に、プログラマブルインターコネクトポイント(PIP)によって相互接続される異なる長さの多数の相互接続線を含む。プログラマブル論理は、たとえば、関数生成器、レジスタ、算術論理などを含み得るプログラマブル素子を用いてユーザ設計の論理を実現する。
プログラマブルICを用いて、ハードウェアアクセラレータとしての使用のためなど、CPUによる使用のための周辺機器を実現することができる。ハードウェアアクセラレーションは、汎用CPU上で実行されるソフトウェアよりも効率的にある機能を実行するためのハードウェアの使用に係る。ハードウェアアクセラレータは、何らかのアプリケーションのためのハードウェアアクセラレーションを実現するように設計される専用用途ハードウェアである。例示的なアプリケーションは、ニューラルネットワーク、映像の符号化、復号、コード変換など、ネットワークデータ処理などを含む。そのようなハードウェアアクセラレータは典型的に、マザーボード上のスロットに挿入されるPCIeカードとして実現される。CPUおよびプログラマブルICは、マザーボード上の構成要素によって物理的に分離される2つの別個のICである。周辺機器として用いられるプログラマブルICおよびCPUを有するコンピューティングシステムのより効率的な実現例を提供することが望まれる。
要約
集積回路(IC)パッケージ中へのプログラマブルデバイスおよび処理システムの集積を説明する。ある例では、ICパッケージは、基板上に配設される処理システムおよびプログラマブルICを含み、処理システムは、基板の配線を通じてプログラマブルICに結合され、処理システムは、リング配線に結合される構成要素を含み、構成要素は、プロセッサおよびインターフェイスコントローラを含む。プログラマブルICは、配線を通じてインターフェイスコントローラに結合されるインターフェイス終点と、インターフェイス終点に結合されかつインターフェイス終点およびインターフェイスコントローラを通じての処理システムのリング配線との通信のために構成される少なくとも1つの周辺機器とを含む。
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
ある実施形態では、インターフェイスコントローラおよびインターフェイス終点は、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
ある実施形態では、基板はパッケージインターフェイスを含み得、プログラマブルICはパッケージインターフェイスに結合され得る。
ある実施形態では、ICパッケージは、処理システムおよびプログラマブルICに結合される1つ以上の他のICをさらに含み得る。
別の例では、ICパッケージでは、半導体ダイ上に配設される処理システムおよびプログラマブルICを含み、処理システムはリング配線に結合される構成要素を含み、構成要素はプロセッサおよびインターフェイス回路を含み、プログラマブルICは、リング配線に結合されかつリング配線との通信のために構成される少なくとも1つの周辺機器を含む。
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
ある実施形態では、プロセッサおよびプログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
別の例では、ICパッケージは、半導体ダイ上に配設される処理システムおよびプログラマブルICを含み、処理システムはリング配線に結合される構成要素を含み、構成要素は、プロセッサ、インターフェイス回路、およびメモリを含み、プログラマブルICは、リング配線に結合されかつリング配線および少なくとも1つのメモリとの通信のために構成される少なくとも1つの周辺機器を含む。
ある実施形態では、プログラマブルICの少なくとも1つのメモリは、リング配線に結合されなくてもよい。
ある実施形態では、プログラマブルICの少なくとも1つのメモリは、リング配線に結合されてもよい。
ある実施形態では、ICパッケージはパッケージインターフェイスをさらに含み得、プログラマブルICはパッケージインターフェイスに結合され得る。
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
ある実施形態では、プロセッサおよびプログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
別の例では、ICパッケージは、半導体ダイ上に配設される処理システムおよびプログラマブルICを含み、処理システムはリング配線に結合される構成要素を含み、リング配線は、リング間コネクタを通じて第2のサブリングに結合される第1のサブリングを含み、構成要素はプロセッサおよびインターフェイス回路を含み、プログラマブルICは、第1のサブリングに結合されかつ第1のサブリングとの通信のために構成される少なくとも1つの周辺機器を含む。
ある実施形態では、構成要素は、第2のサブリングに結合されるグラフィックス処理装置(GPU)をさらに含み得る。
ある実施形態では、プログラマブルICはプログラマブルファブリックを含み得る。
ある実施形態では、プログラマブルICは、プログラマブルファブリックに結合される埋込処理システムを含み得る。
ある実施形態では、少なくとも1つの周辺機器はプログラマブルファブリック中にプログラムされ得る。
ある実施形態では、プロセッサおよびプログラマブルICは、各々、少なくとも1つのストリーミングインターフェイスを用いた通信のために構成される1つ以上のポートを含み得る。
以下の詳細な説明を参照して、これらおよび他の局面を理解し得る。
以上に記載の特徴を詳細に理解できるように、そのいくつかを添付の図面に示す例示的実現例を参照することによって、以上に簡単に要約した説明のより特定的な説明を有し得る。しかしながら、添付の図面は、典型的な例示的実現例のみを示すもので、したがって図面をその範囲の限定と考えてはならないことに留意すべきである。
一例に従う集積回路(IC)パッケージを描くブロック図である。 図1のICパッケージ中の処理システムおよびプログラマブルICの例を描くブロック図である。 一例に従うプログラマブルIC中の周辺回路構成を描くブロック図である。 一例に従う図3の周辺回路構成をより詳細に描くブロック図である。 一例に従うコンピューティングシステムを描くブロック図である。 一例に従うプログラマブルICを描くブロック図である。 一例に従うプログラマブルICのシステムオンチップ(SoC)実現例を描くブロック図である。 プログラマブルICのフィールドプログラマブルゲートアレイ(FPGA)実現例を示す図である。 一例に従うICパッケージ中のプログラマブルICを動作させる方法を描くフロー図である。 別の例に従うICパッケージを描くブロック図である。 図10のICパッケージ中の処理システムの例示的実現例を描くブロック図である。 図10のICパッケージ中の処理システムのまた別の例示的実現例を描くブロック図である。 図10のICパッケージ中の処理システムのまた別の例示的実現例を描くブロック図である。 ストリーミングインターフェイスを用いた通信のために構成される図1のICパッケージの例示的実現例を描くブロック図である。 ストリーミングインターフェイスを用いた通信のために構成される図10のICパッケージの例示的実現例を描くブロック図である。 一例に従う周辺回路構成をより詳細に描くブロック図である。 一例に従う処理システム中のプログラマブルICを動作させる方法を描くフロー図である。
詳細な説明
理解を容易にするため、可能な場合、図に共通の同一の要素を示すのに同一の参照番号を用いる。有用な場合には、1つの例の要素を他の例に組入れ得ることが企図される。
図を参照して以下にさまざまな特徴を説明する。図は、縮尺通りに描かれていることも描かれていないこともあり、かつ同様の構造または機能の要素を図を通じて同じ参照番号で表わすことに留意すべきである。図は、特徴の説明を容易にすることしか意図していないことに留意すべきである。それらは、請求される発明の網羅的な説明として、または請求される発明の範囲に対する限定として意図されるものではない。加えて、示される例は、示されるすべての局面または利点を有する必要はない。特定の例に関連して説明される局面または利点は、必ずしもその例に限定されるわけではなく、そのように描かれていなくてもまたはそのように明示的に記載されていなくても、任意の他の例で実践可能である。
集積回路(IC)パッケージ中へのプログラマブルデバイスおよび処理システムの集積が記載される。本明細書中に記載される例示的な技術は、フィールドプログラマブルゲートアレイ(FPGA)ファブリックなどのプログラマブルファブリックをリング配線を有する高性能処理システムに集積する。1つの例では、ICパッケージは、基板上に配設される処理システムおよびプログラマブルICを含む。処理システムおよびプログラマブルICは、基板の配線を通じて結合される。処理システムはプロセッサおよびインターフェイスコントローラを含み、リング配線に結合される構成要素を含む。プログラマブルICは、基板上の配線を通じてインターフェイスコントローラに結合されるインターフェイス終点を含む。プログラマブルICは、インターフェイス終点に結合されかつ配線終点およびインターフェイスコントローラを通じての処理システムのリング配線との通信のために構成される周辺機器も含む。一例では、プログラマブルICは、周辺構成要素インターフェイスエクスプレス(PCIe)接続を通じて処理システムのリング配線に接続される。例では、プログラマブルICと処理システムとの間のPCIe接続の物理層を、プログラマブルICと処理システムとの間の基板配線の公知の特徴に基づいて最適化することができる。他の例では、PCIeの代わりに、インテル(登録商標)クイックパス配線(Quickpath Interconnect)(QPI)、オムニパス(Omnipath)、インフィニバンド(Infiniband)などの他のチップ間配線プロトコルの最適化版を用いることができる。このように、PCIeソケットおよびPCIeコネクタを有するプログラマブルICを有する付加的な基板のための付加的な基板空間を必要とすることなく、プログラマブルIC中に実現される周辺機器を処理システムのためのアクセラレータとして用いることができる。
別の例では、ICパッケージは、(同じパッケージ中に配設されるのに対して)半導体ダイ上に配設される処理システムおよびプログラマブルICを含む。処理システムは、リング配線に結合される構成要素(たとえば、プロセッサおよびインターフェイス回路)を含む。プログラマブルICはリング配線に結合され、かつリング配線との通信のために構成される周辺機器を含む。
別の例では、ICパッケージは、(同じパッケージ中に配設されるのに対して)半導体ダイ上に配設される処理システムおよびプログラマブルICを含む。処理システムは、リング配線に結合される構成要素(たとえば、プロセッサインターフェイス回路およびメモリ)を含む。プログラマブルICはリング配線に結合され、リング配線およびメモリとの通信のために構成される周辺機器を含む。
別の例では、ICパッケージは、(同じパッケージ中に配設されるのに対し)半導体ダイ上に配設される処理システムおよびプログラマブルICを含む。処理システムは、リング配線に結合される構成要素を含む。リング配線は、リング間コネクタを通じて第2のサブリングに結合される第1のサブリングを含む。構成要素はプロセッサおよびインターフェイス回路を含む。プログラマブルICは第1のサブリングに結合され、かつ第1のサブリングとの通信のために構成される少なくとも1つの周辺機器を含む。
図面を参照して、例示的な技術のこれらおよびさらなる局面を以下に説明する。
図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中に配設され、これは蓋またはその上に半導体ダイを封入する何らかの他の形態の封入体を含むことができる。
処理システム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に結合される回路を含むことができる。
パッケージインターフェイス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、および/または周辺機器と称されることがある。
プログラマブルIC106は、周辺回路構成110を含む。周辺回路構成110は、インターフェイス(たとえば、PCIeインターフェイス)を通じた処理システム104との通信のために構成される。周辺回路構成110は、ハード化回路、被プログラミング回路(programmed circuit)、またはその組合せを含む。
本明細書中で用いるように、「ハード化回路」はICの一部として製造される。プログラマブル論理とは異なり、ハード化回路構成は、プログラマブルIC中のプログラマブル論理の構成によって形成されるのではない。ハード化回路構成は一般的に、たとえば、特定の機能性を有しかつプログラマブルIC106にコンフィギュレーションビットストリームをまずロードしなくても機能的である専用回路ブロックおよび配線を有すると考えられる。ハード化回路構成は、パラメータ設定に応じて設定または選択可能な1つ以上の動作モードを有することができる。パラメータ設定は、たとえば、プログラマブルIC106内の1つ以上のメモリ素子(たとえば、レジスタ)中に値を記憶することによって実現可能である。動作モードは、たとえば、プログラマブルIC106にコンフィギュレーションビットストリームをロードすることによって設定可能である。このようにできるにも拘わらず、ハード化回路構成は「プログラマブル論理」とは考えられない。ハード化回路に対し、被プログラミング回路は、コンフィギュレーションビットストリームのロードによってプログラマブルICのプログラマブル論理中に構成される回路である。
ICパッケージ102は、処理システム104が用いるための周辺回路構成110を含む。周辺回路構成110の一部は、プログラマブルIC106のプログラマブル論理中に構成される被プログラミング回路構成であることができ、これにより、特定の種類および数の周辺機器が動的に経時変化できるようになる。周辺回路構成110の例を以下にさらに説明する。周辺回路構成110は、ICパッケージ102の外部の周辺機器136に対して、オンチップまたは内部周辺機器を実現する。
一例では、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と同様のデバイスであることができる。
以上の例では、処理システム104およびプログラマブルIC106は、ICパッケージ102内で基板118に搭載される2つの別個の半導体ダイを用いて実現される。代替例では、処理システム104およびプログラマブルIC106は、ICパッケージ102に配設される単一の半導体ダイを用いて実現される。そのような場合、単一の半導体ダイを基板118に搭載することができるか、または基板118を省略することができる。他のIC120は、処理システム104およびプログラマブルIC106とは別個の1つ以上のダイ上に実現可能である。代替的に、他のIC120のうち1つ以上を、処理システム104および/またはプログラマブルIC106と同じダイ上に実現することができる。
動作の際、処理システム104は、RAM132および/またはNVM134中に記憶可能なソフトウェアコードを実行する。処理システム104は、ソフトウェアコードの実行に応答して、プログラマブルIC106中の周辺回路構成110と通信することができる。たとえば、周辺回路構成110は、処理システム104の代わりにハードウェア(たとえば、ハードウェアアクセラレータ)中で1つ以上の機能を果たすことができる。ICパッケージ102に電力が供給されると、プログラマブルIC106は、NVM124および/またはNVM134中に記憶されるコンフィギュレーションデータ(たとえば、コンフィギュレーションビットストリーム)を用いて周辺回路構成110の少なくとも一部を実現するように構成可能である。初期コンフィギュレーションの後、プログラマブルIC106を、周辺回路構成110のすべてまたは一部の機能性を変更するように動的に(たとえば、部分的再構成を用いて)再構成可能である。一例では、処理システム104は、ソフトウェアコードを実行して(たとえば、PCIeインターフェイスを通じて)プログラマブルIC106を再構成する。
図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)へのオフダイインターフェイスを設ける。
一例では、リング配線210は、各々の接続される構成要素毎にインターフェイスを有するリングベーストポロジーを含む。リング配線210は、要求、スヌープ、および受信確認のための別個の線とともに特定の幅のデータバスを有する双方向リングであることができる。CPU202の各々は、リング配線210上の一意の構成要素である。同様に、(存在する場合)GPU208は、リング配線210上の一意の構成要素である。インターフェイス回路206がリング配線210へのインターフェイスを共有することができるか、またはインターフェイス回路206中の各々のインターフェイス構成要素がリング配線210へのそれ自身のインターフェイスを含むことができる。リング配線210は、さまざまなトポロジー(たとえば、リング、星、メッシュなど)を含むことができる。
キャッシュメモリ204は、リング配線210に接続される共有最終レベルキャッシュ(LLC)を設けることができる。各々のCPU202には、共有LLCキャッシュのスライスを割当てることができる。キャッシュメモリ204によって実現されるLLCキャッシュは、リング配線210上の他の構成要素(たとえば、GPU208)によってもアクセス可能であり得る。
一例では、インターフェイス回路206は、PCIeコントローラ214および1つ以上の他のコントローラ216を含む。他のコントローラ216は、リング配線210に結合される構成要素に応じて、メモリコントローラ、ディスプレイコントローラなどを含むことができる。CPU202は、リング配線210を通じてPCIeコントローラ214に結合される。PCIeコントローラ214は、CPU202の代わりにPCIeルートコンプレックス(root complex)を実現する。
プログラマブル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内のハード化回路構成、またはその組合せを含むことができる。
他の例では、各々の周辺機器230は、周辺機器230同士の間で共有されかつプログラマブルIC106中のスイッチとして機能する単一のPCIe終点を含むよりもむしろ、それ自身のPCIe終点を含むことができる。別の例では、プログラマブルIC106は、複数のPCIe終点を含むことができ、その各々は周辺機器230の群の間で共有される。
例では、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からの読出およびそれらへの書込のための回路構成を含むことができる。
一例では、他の回路構成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中の専用の配線および/またはプログラマブル配線を用いて実現可能である。
示される例では、プログラマブルIC106中の周辺回路構成110は、PCIeコントローラ214およびPCIe終点218によって実現されるPCIeインターフェイスを通じてリング配線210およびその上の構成要素に結合される。他の種類のインターフェイスを用いることができる。たとえば、PCIeコントローラ214およびPCIe終点218をクイックパス配線(QPI)コントローラおよびQPI終点と置換えることができる。別の例では、PCIeコントローラ214およびPCIe終点218を、処理システム104とプログラマブルIC106との間の通信をサポートするように特定的に設計されるカスタムインターフェイスコントローラおよびカスタムインターフェイス終点と置換えることができる。当業者は、プログラマブルIC106中の周辺回路構成110とリング配線210上の処理システム104中の構成要素との間の通信を可能にするようにさまざまな種類のインターフェイスを用いることができることを認めるであろう。
図3は、一例に従う周辺回路構成110を描くブロック図である。周辺回路構成110は一般的に、静的領域302およびプログラマブル領域304を含む。静的領域302は、インターフェイス回路306(たとえば、図2に示されるPCIe終点218)を含む。プログラマブル領域304は周辺機器230を含むことができる。ある例では、プログラマブル領域304は、いくつかのインターフェイス回路306Aも含む。ある例では、周辺回路構成110は、1つよりも多くのプログラマブル領域304を含むことができ、その各々は、周辺機器230を用いて個別に構成可能である。
静的領域302は、その回路構成がプログラマブル領域304の再構成にわたって一定のままである点で「静的」である。一例では、インターフェイス回路306は、PCIe終点回路、直接メモリアクセス(DMA)コントローラ、配線、メモリコントローラ、メモリインターフェイス回路(たとえば、DDRインターフェイス)、(部分再構成をサポートする)デカプラ回路、フラッシュプログラマー、デバッグ回路などを含む。ある例では、プログラマブル領域304は、インターフェイス回路306のいずれも含まない。他の例では、上述のインターフェイス回路のいくつか(たとえば、DMAコントローラ)を、(インターフェイス回路306Aとして)プログラマブル領域304の中に実現することができる。
図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動作を容易にする。
配線406は、DMAコントローラ404、周辺機器230、メモリコントローラ410、および他のインターフェイス414を結合する。メモリコントローラ410はメモリインターフェイス412に結合される。メモリインターフェイス412は、プログラマブルIC106外部のRAM(たとえば、RAM122および/またはRAM132)、プログラマブルIC106内部のRAM(以下に記載される例)、またはその組合せに結合可能である。他のインターフェイス414は、プログラマブルIC106中の他の回路構成224(たとえば、他のハード化回路および/または被プログラミング回路)に結合可能である。
例では、配線406は、ARM(登録商標)アドバンストマイクロコントローラバスアーキテクチャ(Advanced Microcontroller Bus Architecture)(AMBA(登録商標))標準の一部として規定されるアドバンスト拡張可能インターフェイス(Advanced Extensible Interface)(AXI)配線を用いて実現される。たとえば、配線406は、AXI4、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スレーブを含む。
動作の際、処理システム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にとって専用である。
処理システム104は、他のインターフェイス414に直接にデータを移動しそこから直接にデータを受信することもできる。これに代えて、直接に他のインターフェイス414にデータを送りそこから受信するよりもむしろ、処理システム104は、DMAトランザクションを用いてメモリコントローラ410にデータを移動してRAM中に記憶させることができる。他のインターフェイス414は、RAM中に記憶されるデータにアクセスし、これを処理することができる。次に処理システム104は、DMAトランザクションを用いてRAMから処理済みデータを取出すことができる。他の例では、他のインターフェイス414のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
図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のいずれかまたは両方の中に配設可能である)。
OS508は、リナックス(登録商標)、マイクロソフトウインドウズ(登録商標)、Mac OS(登録商標)などの当該技術分野で公知の任意の汎用オペレーティングシステムであることができる。ドライバスタック510は、指令およびその制御のための周辺回路構成110にアプリケーションプログラミングインターフェイス(API)を設けるドライバおよびライブラリを含む。アプリケーション512は、何らかの作業を行なうようにドライバスタック510を通じて周辺回路構成110を呼出すソフトウェアを含む。アプリケーション512は、ニューラルネットワーク、映像処理、ネットワーク処理、または処理システム104から周辺回路構成110にいくつかの機能を肩代わりさせる同種のアプリケーションを含むことができる。アプリケーション512は、周辺回路構成110の機能性を変更するようにプログラマブルIC106の構成を制御することもできる。
ドライバスタック510は、DMAドライバ、ハードウェア抽象化層(HAL)ドライバ、およびランタイムライブラリなどの、さまざまなライブラリ、ドライバなどを含むことができる。ランタイムライブラリは、アプリケーション512による使用のためのAPIを設ける。ランタイムライブラリは、アプリケーション512とHALドライバとの間のインターフェイスを設ける。同様に、HALドライバは、ランタイムライブラリによる使用のためのAPIを含む。HALドライバは、ランタイムライブラリとDMAドライバとの間のインターフェイスを設ける。DMAドライバは、周辺回路構成110を制御するためのAPIを含む。特に、DMAドライバは、周辺機器230、メモリコントローラ410、および/または他のインターフェイス414にDMAコントローラ404を通じてアクセスするためのAPIを含む。
図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からの区別のために「埋込」処理システムと称されることがある。
図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を含むことができる。
図7の例では、周辺回路構成110はPL3中に配設される、被プログラミング回路、ハード化回路、またはその組合せであることができる。別の例では、周辺回路構成110のある部分をPS2を用いて実現可能である。別の例では、PS2には、周辺回路構成110の他のインターフェイス414を通じてアクセス可能であり得る。そのような例では、処理システム104および/または周辺機器230は、PS2にアクセスすることができる。
PS2を参照して、処理装置の各々は、1つ以上のCPUと、メモリ、割込コントローラ、DMAコントローラ、メモリ管理ユニット(MMU)、浮動小数点ユニット(FPU)などの関連回路とを含む。配線16は、処理装置を相互接続し、またPS2中の他の構成要素を処理装置に相互接続するように構成されるさまざまなスイッチ、バス、通信リンクなどを含む。
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などを含むことができる。
図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なども含むことができる。
あるFPGAでは、各々のプログラマブルタイルは、図8のいちばん上に含まれる例に示されるように、同じタイル内にプログラマブル論理素子の入出力端子48への接続を有する少なくとも1つのプログラマブル相互接続素子(「INT」)43を含むことができる。各々のプログラマブル相互接続素子43は、同じタイルまたは他のタイルの中に、隣接するプログラマブル相互接続素子の配線セグメント49への接続も含むことができる。各々のプログラマブル相互接続素子43は、論理ブロック(図示せず)同士の間の一般的なルーティングリソースの配線セグメント50への接続も含むことができる。一般的なルーティングリソースは、配線セグメント(たとえば、配線セグメント50)のトラックおよび配線セグメントを接続するためのスイッチブロック(図示せず)を備える論理ブロック(図示せず)同士の間のルーティングチャネルを含むことができる。一般的なルーティングリソース(たとえば、配線セグメント50)の配線セグメントは1つ以上の論理ブロックに跨ることができる。一般的なルーティングリソースとともに、プログラマブル相互接続素子43は、図示されるFPGAのためのプログラマブル配線構造(「プログラマブル配線」)を実現する。
例示的な実現例では、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の区域に閉じ込められるわけではない。
描かれる例では、(図8に示される)ダイの中心近くの水平方向区域をコンフィギュレーション、クロック、および他の制御論理のために用いる。この水平方向区域またはカラムから延在する垂直方向カラム51は、FPGAの幅にわたってクロックおよびコンフィギュレーション信号を分配するのに用いられる。
図8に示されるアーキテクチャを利用するいくつかのFPGAは、FPGAの大きな部分を構成する規則的なカラムナ構造を中断させる付加的な論理ブロックを含む。付加的な論理ブロックは、プログラマブルブロックおよび/または専用論理であり得る。
なお、図8は、例示的なFPGAアーキテクチャしか示さないことが意図される。たとえば、列中の論理ブロックの数、列の相対的な幅、列の数および順序、列に含まれる論理ブロックの種類、論理ブロックの相対的な大きさ、ならびに図8のいちばん上に含まれる相互接続/論理実現例は、純粋に例示的である。たとえば、実際のFPGAでは、ユーザ論理の効率的な実現を容易にするために、CLBが現われる場所にはどこにでも、1つよりも多くのCLBの隣接する列が典型的に含まれるが、隣接するCLB列の数はFPGAの全体サイズによって異なる。
図9は、一例に従うICパッケージ102中のプログラマブルIC106を動作させる方法900を描くフロー図である。方法900の局面は、以上の図1−図8を参照して理解することができる。方法900は3つの主な段階を含む。ブロック902で、ICパッケージ102の起動の際に、プログラマブルIC106が構成される。ブロック908で、デバイスはプログラマブルIC106と通信する。ブロック916で、ICパッケージ102の電源オンの間、プログラマブルIC106が再構成される。プログラマブルIC106を動作させる3つの主な段階の各々毎にさまざまな使用ケースが存在する。
ICパッケージ102の電源オンの際、プログラマブルIC106を構成するのに用いることができるいくつかの異なるプロセスが存在する。プログラマブルIC106のコンフィギュレーション論理25は、多数の異なるコンフィギュレーションモードを含み、これをマスタモードとスレーブモードとに分類可能である。マスタモードでは、コンフィギュレーション論理25は構成プロセスを駆動する。例示的なマスタモードは、マスタシリアル周辺インターフェイス(SPI)モード、マスタバイト周辺インターフェイス(BPI)モード、マスタシリアルモード、およびマスタセレクトマップ(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に供給する。
ブロック904で、周辺回路構成110の少なくとも一部が、プログラマブルIC106中に構成される。任意の他の回路構成224が存在すれば、ブロック904で、そのような他の回路構成224のすべてまたは一部を構成することもできる。たとえば、ブロック904で、周辺回路構成110の静的領域302を構成することができる。ブロック904で、マスタおよびスレーブモードのうち任意のものをプログラマブルIC106の構成に用いることができる。ブロック904での構成は、典型的には、ハードウェア駆動であり、すなわち、電力がICパッケージ102に印加されるものであり、構成プロセスは、コンフィギュレーション論理25(マスタモード)または外部デバイス(スレーブモード)によって行なわれる。
ある場合、ブロック904では、周辺回路構成110の一部(たとえば、静的領域302)しか構成されない。そのような場合、ブロック906で、周辺回路構成110の残余の部分を構成することができる。ブロック906での構成は、上述のように、ハードウェア駆動またはソフトウェア駆動であることができる。ソフトウェア駆動プロセスでは、たとえば、プログラマブルIC106を部分的に再構成して、処理システム104を用いてMCAP402を通じて周辺機器230を実現することができる。
ブロック908で、プログラマブルIC106との通信を3つの一般的なカテゴリに分けることができる。ブロック910で、通信は、処理システム104と周辺回路構成110との間で行なわれる。ブロック912で、通信は、外部デバイス(プログラマブルIC106外部)と周辺回路構成110との間で行なわれる。ブロック914で、通信は、内部デバイス(プログラマブルIC106内部)と周辺回路構成110との間で行なわれる。
ブロック910で、処理システム104は、PCIeなどのインターフェイスを介して周辺回路構成110にデータを送るおよび/またはそれからデータを受信する。処理システム104は、DMAトランザクションを用いて、インターフェイスを介して周辺回路構成110におよびそれからデータを転送することができる。これに代えて、処理システム104は、インターフェイスを介して周辺回路構成110にデータをストリーミングすることができる。ある場合、処理システム104は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110におよびそれからデータを間接的に与えることができる。
ブロック912で、プログラマブルIC106外部のデバイスが周辺回路構成110と通信する。たとえば、他のIC120、サポート回路138、または周辺機器136の中の回路が周辺回路構成110と直接に通信することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。
ブロック914で、プログラマブルIC106内部のデバイスが周辺回路構成110と通信する。たとえば、他の回路構成224中の回路が周辺回路構成110と直接に通信することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。そのような回路は、プログラマブルIC106のプログラマブル論理中の被プログラミング回路またはプログラマブルIC106中のハード化回路(たとえば、埋込処理システム)であることができる。
ブロック916で、電力がICパッケージ102に印加されている間、プログラマブルIC106を再構成することができる。たとえば、ブロック918で、ブロック902に記載したのと同様のプロセスを用いてプログラマブルIC106を完全に再構成することができる。これに代えて、ブロック920で、プログラマブルIC106を部分的に再構成することができる。たとえば、周辺回路構成110の1つ以上の周辺機器230を再構成して異なる機能性を実現することができる。
図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とは異なっている。
図11は、ICパッケージ1002中の処理システム104の例示的な実現例を描くブロック図である。本例では、処理システム104は、以上の例に記載したように、各々がリング配線210に結合される、CPU202、キャッシュメモリ204、およびインターフェイス回路206を含む。この例に特定的に、プログラマブルIC106もリング配線210に結合される。プログラマブルIC106中のハード化回路として、プログラマブルIC106のプログラマブル論理中の被プログラミング回路として、またはその組合せとして、周辺回路構成110を実現可能である。インターフェイス回路206は、上述のように、PCIeコントローラ214および他のコントローラ216を含む。これに代えて、PCIeコントローラ214を任意の他の同様のインターフェイスコントローラ(たとえば、QPIコントローラ)と置換えることができる。例では、処理システム104は、GPU208などの、リング配線210に結合される他の構成要素を含むことができる。
本例では、プログラマブルIC106は、リング配線210に結合される処理システム104中の任意の他の構成要素(たとえば、CPU202、キャッシュメモリ204、インターフェイス回路206、GPU208など)と通信することができる。プログラマブルIC106には、インターフェイス回路206を通じて、処理システム104外部の回路からアクセス可能である。
図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中にこれを含むことができる。
図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をサブリングに分割することが有利であろう。
処理システムをプログラマブルICと組合せる場合、これら2つの間のストリーミングインターフェイスを用いた通信が、リアルタイムデータ処理などのさまざまな適用例におけるより優れた通信モードである。代替案は、支配的な通信パラダイムである直接メモリアドレシングである。例では、処理システム104とプログラマブルIC106との間の配線は、メモリアドレシングモードに加えてストリーミングモードをサポートすることができる。
図14は、ストリーミングインターフェイスを用いての通信のために構成されるICパッケージ102の例示的な実現例を描くブロック図である。当該例では、PCIeコントローラ214およびPCIe終点218の各々は、1つ以上のポート1402を含む。1つのモードでは、メモリアドレシングを用いて通信するようにポート1402を構成することができる。別のモードでは、ストリーミングインターフェイスを用いて通信するようにポート1402を構成することができる。例示的なストリーミングインターフェイスは、AMBA(登録商標)AXI4ストリーミングインターフェイスであるが、他のストリーミングインターフェイスを用いることができる。例では、ポート1402は、1つよりも多くのストリーミングインターフェイスをサポートすることができる。
図15は、ストリーミングインターフェイスを用いての通信のために構成されるICパッケージ1002の例示的な実現例を描くブロック図である。当該例では、リング配線210に結合される各々の構成要素が1つ以上のポート1402を含むことができる。1つのモードでは、メモリアドレシングを用いて通信するようにポート1402を構成することができる。別のモードでは、ストリーミングインターフェイスを用いて通信するようにポート1402を構成することができる。例示的なストリーミングインターフェイスは、AMBA(登録商標)AXI4ストリーミングインターフェイスであるが、他のストリーミングインターフェイスを用いることができる。例では、ポート1402は、1つよりも多くのストリーミングインターフェイスをサポートすることができる。
図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に結合することができる。
配線1606は、DMAコントローラ1604、周辺機器230、メモリコントローラ1610、および他のインターフェイス1614を結合する。メモリコントローラ410はメモリインターフェイス1612に結合される。メモリインターフェイス1612は、プログラマブルIC106外部のRAM、プログラマブルIC106内部のRAM(たとえば、メモリ1202および/またはキャッシュ1204)、またはその組合せに結合可能である。他のインターフェイス1614は、プログラマブルIC106中の他の回路構成(たとえば、他のハード化回路および/または被プログラミング回路)に結合可能である。
例では、配線1606は、ARM(登録商標)アドバンストマイクロコントローラバスアーキテクチャ(AMBA(登録商標))標準の一部として規定されるAXI配線を用いて実現される。たとえば、配線406は、AXI4、AXI4−ライト、およびAXI4−ストリームプロトコルをサポートすることができる。DMAコントローラ1604、周辺機器230、他のインターフェイス1614、およびメモリコントローラ1610の各々は、互いの間での通信のために1つ以上のAXIマスタおよび1つ以上のAXIスレーブを含む。
動作の際、処理システム104は、リングインターフェイス回路1602を通じて周辺回路構成110にアクセスする。処理システム104は、メモリマップトランザクションまたはストリーミングトランザクションを用いて周辺回路構成110にデータを移動し、そこからデータを受信することができる。処理システム104は、直接に周辺機器230にデータを移動し、そこからデータを受信することができる。処理システム104は、メモリコントローラ1610にデータを移動し、そこからデータを受信することもできる。たとえば、周辺機器230に直接にデータを送りそこから受信するよりもむしろ、処理システム104は、DMAトランザクションを用いてデータをメモリコントローラ1610に移動してRAM中に記憶させることができる。周辺機器230は、RAM中に記憶されるデータにアクセスし、これを処理することができる。処理システム104は次に、RAMから処理済みデータを取出すことができる。他の例では、メモリコントローラ1610のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
処理システム104は、直接に他のインターフェイス1614にデータを移動し、そこからデータを受信することもできる。これに代えて、直接に他のインターフェイス1614にデータを送り、そこから受信するよりもむしろ、処理システム104は、メモリコントローラ1610にデータを移動してRAM中に記憶させることができる。他のインターフェイス1614は、RAM中に記憶されるデータにアクセスし、これを処理することができる。次に処理システム104は、RAMから処理済みデータを取出すことができる。他の例では、他のインターフェイス1614のうち1つ以上は、処理システム104によってアクセス可能ではなく、周辺機器230にとって専用である。
図17は、一例に従う処理システム104中のプログラマブルIC106を動作させる方法1700を描くフロー図である。方法900の局面は、以上の図10−図16を参照して理解することができる(すなわち、プログラマブルIC106は、処理システム104と同じICダイ上に配設される)。方法1700は、3つの主な段階を含む。ブロック1702で、処理システム104の起動の際に、プログラマブルIC106が構成される。ブロック1708で、デバイスはプログラマブルIC106と通信する。ブロック1716で、ICパッケージ102の電源オンの間、プログラマブルIC106が再構成される。プログラマブルIC106を動作させる3つの主な段階の各々毎にさまざまな使用ケースが存在する。
処理システム104の電源オンの際、プログラマブルIC106を構成するのに用いることができるいくつかの異なるプロセスが存在する。マスタコンフィギュレーションモードを用いて、処理システム104中に配設されるまたは処理システム104の外部に配設されるNVMを用いてプログラマブルIC106を構成することができる。スレーブコンフィギュレーションモードを用いて、処理システム104上に配設されるCPU202もしくは他のデバイスを用いてまたは処理システム104外部のデバイスを用いて、プログラマブルIC106を構成することができる。
ブロック1704で、周辺回路構成110の少なくとも一部がプログラマブルIC106中に構成される。任意の他の回路構成が存在すれば、ブロック1704でそのような他の回路構成のすべてまたは一部を構成することもできる。ブロック1704で、マスタおよびスレーブモードのうち任意のものをプログラマブルIC106の構成に用いることができる。ブロック1704での構成は典型的にハードウェア駆動であり、すなわち、電力が処理システム104に印加されるものであり、構成プロセスは、コンフィギュレーション論理25(マスタモード)または外部デバイス(スレーブモード)によって行なわれる。
ある場合、ブロック1704では、周辺回路構成110の一部しか構成されない。そのような場合、ブロック1706で、周辺回路構成110の残余の部分を構成することができる。ブロック1706での構成は、上述のようにハードウェア駆動またはソフトウェア駆動であることができる。ソフトウェア駆動プロセスでは、たとえば、プログラマブルIC106を部分的に再構成して、CPU202を用いて内部構成アクセスポート(ICAP)1616(図16)を通じて周辺機器230を実現することができる。
ブロック1708で、プログラマブルIC106との通信を3つの一般的なカテゴリに分けることができる。ブロック1710で、通信は、CPU202と周辺回路構成110との間で行なわれる。ブロック1712で、通信は、外部デバイス(プログラマブルIC106の外部)と周辺回路構成110との間で行なわれる。ブロック1714で、通信は、(プログラマブルIC106内部の)内部デバイスと周辺回路構成110との間で行なわれる。
ブロック1710で、CPU202は、リング配線210を介して周辺回路構成110にデータを送るおよび/またはそれからデータを受信する。処理システム104は、メモリマップトランザクションまたはストリーミングトランザクションを用いて、リング配線210を介して周辺回路構成110におよびそれからデータを転送することができる。ある場合、処理システム104は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて、周辺回路構成110におよびそれからデータを間接的に与えることができる。
ブロック1712で、プログラマブルIC106外部のデバイスが周辺回路構成110と通信する。外部デバイスを処理システム104の内部(たとえばリング配線210の上)または処理システム104の外部に配設することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。
ブロック1714で、プログラマブルIC106内部のデバイスが周辺回路構成110と通信する。たとえば、プログラマブルIC106中の被プログラミング回路またはハード化回路は、周辺回路構成110と直接に通信することができる。これに代えて、そのような回路は、プログラマブルIC106内部またはプログラマブルIC106外部に配設可能な共有メモリを通じて周辺回路構成110と間接的に通信することができる。
ブロック1716で、電力が処理システム104に印加されている間、プログラマブルIC106を再構成することができる。たとえば、ブロック1718で、ブロック1702において記載したのと同様のプロセスを用いて、プログラマブルIC106を完全に再構成することができる。これに代えて、ブロック1720で、プログラマブルIC106を部分的に再構成することができる。たとえば、周辺回路構成110の1つ以上の周辺機器230を再構成して異なる機能性を実現することができる。
以上は具体例に向けられるが、その基本的範囲から逸脱することなく、他のおよびさらなる例を考案し得、その範囲は引続く請求項によって定められる。

Claims (15)

  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パッケージ。
JP2020517780A 2017-09-28 2018-09-24 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積 Active JP7244497B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023036854A JP2023078246A (ja) 2017-09-28 2023-03-09 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/719,288 US10573598B2 (en) 2017-09-28 2017-09-28 Integration of a programmable device and a processing system in an integrated circuit package
US15/719,288 2017-09-28
PCT/US2018/052413 WO2019067352A1 (en) 2017-09-28 2018-09-24 INTEGRATION OF A PROGRAMMABLE DEVICE AND A PROCESSING SYSTEM IN AN INTEGRATED CIRCUIT BOX

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023036854A Division JP2023078246A (ja) 2017-09-28 2023-03-09 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積

Publications (2)

Publication Number Publication Date
JP2020535659A true JP2020535659A (ja) 2020-12-03
JP7244497B2 JP7244497B2 (ja) 2023-03-22

Family

ID=63858108

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020517780A Active JP7244497B2 (ja) 2017-09-28 2018-09-24 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積
JP2023036854A Pending JP2023078246A (ja) 2017-09-28 2023-03-09 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023036854A Pending JP2023078246A (ja) 2017-09-28 2023-03-09 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積

Country Status (6)

Country Link
US (2) US10573598B2 (ja)
EP (2) EP3688604B1 (ja)
JP (2) JP7244497B2 (ja)
KR (1) KR20200062244A (ja)
CN (1) CN111183419B (ja)
WO (1) WO2019067352A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11320995B2 (en) * 2018-10-31 2022-05-03 Western Digital Technologies, Inc. Transferring computational operations to controllers of data storage devices
US10673439B1 (en) * 2019-03-27 2020-06-02 Xilinx, Inc. Adaptive integrated programmable device platform
US11474826B1 (en) * 2019-04-18 2022-10-18 Xilinx, Inc. Boot image file having a global partition for data processing engines of a programmable device
US10990547B2 (en) * 2019-08-11 2021-04-27 Xilinx, Inc. Dynamically reconfigurable networking using a programmable integrated circuit
US11580057B2 (en) 2019-10-28 2023-02-14 Xilinx, Inc. Subsystem for configuration, security, and management of an adaptive system
US10720926B1 (en) * 2019-11-13 2020-07-21 Xilinx, Inc. Programmable device having hardened circuits for predetermined digital signal processing functionality
US11481317B2 (en) * 2020-06-26 2022-10-25 Micron Technology, Inc. Extended memory architecture
KR102427978B1 (ko) * 2020-12-23 2022-08-02 주식회사 뉴티씨 (Newtc) Avr 기반 아두이노 호환 보드를 위한 통합 프로그래머 및 기능 자동 설정 방법
US11456951B1 (en) 2021-04-08 2022-09-27 Xilinx, Inc. Flow table modification for network accelerators
US11606317B1 (en) 2021-04-14 2023-03-14 Xilinx, Inc. Table based multi-function virtualization
US20240118671A1 (en) * 2022-10-10 2024-04-11 Schneider Electric Systems Usa, Inc. Systems and methods for using memory-mapped memories in a microcontroller-based instrument

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6120349A (ja) * 1984-07-06 1986-01-29 Hitachi Ltd Lsi集合体
JP2002016489A (ja) * 2000-06-30 2002-01-18 Fuji Xerox Co Ltd プログラマブル論理回路装置、及び情報処理システム
JP2006186546A (ja) * 2004-12-27 2006-07-13 Renesas Technology Corp 半導体装置及び半導体装置の設計方法
JP2011054041A (ja) * 2009-09-03 2011-03-17 Fuji Xerox Co Ltd 画像処理装置
US20170153892A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Instruction And Logic For Programmable Fabric Hierarchy And Cache

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642058A (en) * 1995-10-16 1997-06-24 Xilinx , Inc. Periphery input/output interconnect structure
US6088421A (en) * 1998-07-28 2000-07-11 Intel Corporation Method and apparatus for providing scaled ratio counters to obtain agent profiles
US20030189940A1 (en) * 2001-07-02 2003-10-09 Globespan Virata Incorporated Communications system using rings architecture
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US7187709B1 (en) 2002-03-01 2007-03-06 Xilinx, Inc. High speed configurable transceiver architecture
US7551564B2 (en) * 2004-05-28 2009-06-23 Intel Corporation Flow control method and apparatus for single packet arrival on a bidirectional ring interconnect
US7925802B2 (en) * 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
US8914672B2 (en) * 2009-12-28 2014-12-16 Intel Corporation General purpose hardware to replace faulty core components that may also provide additional processor functionality
US9037688B2 (en) * 2011-12-27 2015-05-19 Intel Mobile Communications GmbH System having trace resources
CN103678250B (zh) * 2013-12-31 2017-04-05 赵建东 系统级芯片及其设计方法
US10523585B2 (en) * 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US10942815B2 (en) * 2015-07-09 2021-03-09 Hitachi, Ltd. Storage control system managing file-level and block-level storage services, and methods for controlling such storage control system
US9880966B1 (en) * 2015-09-03 2018-01-30 Xilinx, Inc. Encapsulating metadata of a platform for application-specific tailoring and reuse of the platform in an integrated circuit
US10229470B2 (en) * 2016-08-05 2019-03-12 Intel IP Corporation Mechanism to accelerate graphics workloads in a multi-core computing architecture
US10540318B2 (en) * 2017-04-09 2020-01-21 Intel Corporation Graphics processing integrated circuit package
US10102149B1 (en) * 2017-04-17 2018-10-16 Intel Corporation Replacement policies for a hybrid hierarchical cache
US11080810B2 (en) * 2017-04-21 2021-08-03 Intel Corporation Dynamically reconfigurable memory subsystem for graphics processors
US20180329855A1 (en) * 2017-05-12 2018-11-15 Intel Corporation Alternate protocol negotiation in a high performance interconnect
US11394649B2 (en) * 2018-06-29 2022-07-19 Intel Corporation Non-random flowlet-based routing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6120349A (ja) * 1984-07-06 1986-01-29 Hitachi Ltd Lsi集合体
JP2002016489A (ja) * 2000-06-30 2002-01-18 Fuji Xerox Co Ltd プログラマブル論理回路装置、及び情報処理システム
JP2006186546A (ja) * 2004-12-27 2006-07-13 Renesas Technology Corp 半導体装置及び半導体装置の設計方法
JP2011054041A (ja) * 2009-09-03 2011-03-17 Fuji Xerox Co Ltd 画像処理装置
US20170153892A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Instruction And Logic For Programmable Fabric Hierarchy And Cache

Also Published As

Publication number Publication date
EP3688604B1 (en) 2023-08-23
US10573598B2 (en) 2020-02-25
JP2023078246A (ja) 2023-06-06
CN111183419B (zh) 2024-04-16
US20200161247A1 (en) 2020-05-21
EP4254214A3 (en) 2023-12-13
WO2019067352A1 (en) 2019-04-04
US11024583B2 (en) 2021-06-01
EP3688604A1 (en) 2020-08-05
EP4254214A2 (en) 2023-10-04
CN111183419A (zh) 2020-05-19
US20190096813A1 (en) 2019-03-28
KR20200062244A (ko) 2020-06-03
JP7244497B2 (ja) 2023-03-22

Similar Documents

Publication Publication Date Title
JP7244497B2 (ja) 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積
US7856546B2 (en) Configurable processor module accelerator using a programmable logic device
US11080449B2 (en) Modular periphery tile for integrated circuit device
JP7405822B2 (ja) プログラマブルデバイスのためのコンフィギュラブル・ネットワーク・オン・チップ
US9934175B2 (en) Direct memory access for programmable logic device configuration
US20080028186A1 (en) FPGA Co-Processor For Accelerated Computation
CN108139916B (zh) 可编程逻辑设备的多阶段引导映像加载和配置
US9983889B1 (en) Booting of integrated circuits
US11182110B1 (en) On-chip memory block circuit
JP2018531461A6 (ja) マルチステージブートイメージロードおよびプログラマブルロジックデバイスの構成
US20170123815A1 (en) Multistage boot image loading by configuration of a bus interface
US11474555B1 (en) Data-driven platform characteristics capture and discovery for hardware accelerators
JP7383645B2 (ja) システムオンチップにおけるプログラマブル論理マスタのためのハードウェアベースの仮想-物理アドレス変換
US10936486B1 (en) Address interleave support in a programmable device
US11874768B1 (en) Flash memory emulation
Bradley Migrating from TMS320DM6446 to TMS320DM6437
JP2010191833A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200529

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230309

R150 Certificate of patent or registration of utility model

Ref document number: 7244497

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150