JP6974588B2 - 仮想fpgaの管理及び最適化システム - Google Patents
仮想fpgaの管理及び最適化システム Download PDFInfo
- Publication number
- JP6974588B2 JP6974588B2 JP2020507062A JP2020507062A JP6974588B2 JP 6974588 B2 JP6974588 B2 JP 6974588B2 JP 2020507062 A JP2020507062 A JP 2020507062A JP 2020507062 A JP2020507062 A JP 2020507062A JP 6974588 B2 JP6974588 B2 JP 6974588B2
- Authority
- JP
- Japan
- Prior art keywords
- macro
- design
- components
- fpga
- macro components
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
- G06F15/7875—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for multiple contexts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7892—Reconfigurable logic embedded in CPU, e.g. reconfigurable unit
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17732—Macroblocks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/02—Data centres
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本発明は、DOEから与えられたLawrence Livermore National Security(主契約番号DE−AC52−07NA27344、サブ契約番号B620717)のPathForward Projectの下で政府の支援を受けてなされたものである。政府は、本発明において一定の権利を有する。
上記コードにおいて、「myAccelerator」は、4つのマクロコンポーネント(すなわち、入力レジスタ「inA」及び「inB」、出力レジスタ「outC」、並びに、タイル「myLogic」)を含むマクログラフである。タイル「myLogic」は、タイルをプログラミングするための構成データを含むビットファイル「tile_file.bit」を示すコンストラクタ「MGTile()」を用いてインスタンス化される。「myLogic.setInputs()」関数は、タイル「myLogic」を入力レジスタ「inA」及び「inB」に接続する。「myLogic.setOutput()」関数は、「myLogic」を出力レジスタ「outC」に接続する。最後に、「myAccelerator.addComponent()」関数を用いて、タイル「myLogic」を、アクセラレータのマクログラフ「myAccelerator」に加える。
「getFreeFPGAaccelerator()」関数は、未使用のFPGAを「myFPGA」変数に返す。次の関数呼び出し「myFPGA.program(myAccelerator)」は、例示的な設計定義で先に定義されているように、返されたFPGAのプログラミングを「myAccelerator」マクログラフに基づいて呼び出す。次の関数「inA.writeDataSequence(1,2,3,4,5)」及び「inB.writeDataSequence(6,7,8,9,10)」は、入力バッファ「inA」及び「inB」に対する入力データを指定する。代替の実施形態では、(例えば、FPGA上の)メモリへのポインタを、値のアレイではなく入力バッファに記憶することができる。関数呼び出し「myFPGA.execute()」は、構成されたアクセラレータにおいてタスクの実行を開始し、「myResults=outC.read()」は、出力レジスタ「outC」から実行結果を読み出す。したがって、タスク定義は、タスクに使用されるマクログラフを指定し、入力データを指定し、実行を要求し、結果として得られる出力データの読み出しを要求する。
Claims (20)
- フィールドプログラマブルゲートアレイ(FPGA)デバイスのセットの複数のマクロコンポーネントを列挙するデータベースを更新するように構成されたリソース追跡モジュールと、
設計のための1つ以上の指定されたマクロコンポーネントを示す第1設計定義を第1クライアントデバイスから受信するように構成された通信インタフェースと、
前記第1設計定義に示された前記1つ以上の指定されたマクロコンポーネント毎に前記複数のマクロコンポーネントのうち1つを割り当てることによって、前記設計のためのマクロコンポーネントの第1セットを割り当てるように構成されたリソース割り当てロジックと、
割り当てられたマクロコンポーネントの前記第1セットを前記第1設計定義に従って構成することによって、前記FPGAデバイスのセットに前記設計を実装するように構成された構成ロジックと、を備える、
マクロスケジューラ。 - 前記第1設計定義は、前記1つ以上の指定されたマクロコンポーネント間の接続を定義し、前記1つ以上の指定されたマクロコンポーネントの各々のタイプを示すマクログラフを含む、
請求項1のマクロスケジューラ。 - 前記1つ以上の指定されたマクロコンポーネントは、1つ以上の指定されたタイルと、1つ以上の指定された固定関数ユニットと、1つ以上の指定されたレジスタと、を含み、
前記第1設計定義は、前記1つ以上の指定されたタイルの各々のビットファイルを示し、
前記構成ロジックは、前記1つ以上の指定されたタイル毎に、マクロコンポーネントの前記第1セット内の割り当てられたタイルを、前記指定されたタイルのビットファイルに基づいてプログラムするように構成されている、
請求項2のマクロスケジューラ。 - 前記リソース追跡モジュールは、マクロコンポーネントの前記第1セットの各々を、前記第1クライアントデバイスのネットワークアドレスと、前記第1クライアントデバイスによって要求された第1タスクと関連付けるようにさらに構成されている、
請求項1のマクロスケジューラ。 - 前記リソース追跡モジュールは、前記複数のマクロコンポーネント毎に、FPGAデバイスのセットにおける前記マクロコンポーネントの位置及び前記マクロコンポーネントの利用可能性を前記データベースに記録するようにさらに構成されている、
請求項1のマクロスケジューラ。 - 前記FPGAデバイスのセットの初期構成におけるタスクの実行中に、前記設計のための最適化された構成を生成するように構成された合成ロジックをさらに備え、
前記初期構成は前記第1設計定義によって示され、
前記構成ロジックは、前記FPGAデバイスのセットの最適化された構成でタスクの実行を再開する前に前記初期構成を前記最適化された構成に置き換えるように、前記FPGAデバイスのセットを再プログラムするように構成されており、
前記合成ロジックは、前記初期構成における初期ポートの位置を、前記最適化された構成における最適化されたポートの位置と相関させる再マッピング通知を生成するように構成されている、
請求項1のマクロスケジューラ。 - 前記第1設計定義は、アクセラレータの定義を含み、
前記リソース割り当てロジックは、
第1期間中に前記第1クライアントデバイスからの第1タスクのアクセラレータにおける実行をスケジューリングし、
第2期間中に第2クライアントデバイスからの第2タスクのアクセラレータにおける実行をスケジューリングする、ように構成されている、
請求項1のマクロスケジューラ。 - 前記リソース割り当てロジックは、前記複数のマクロコンポーネントの第2セットを、第2クライアントデバイスから受信した第2設計定義によって定義された第2設計に対して割り当てるように構成されており、マクロコンポーネントの前記第1セット内のマクロコンポーネントの第1サブセットは、マクロコンポーネントの前記第2セット内のマクロコンポーネントの第2サブセットとして、前記FPGAデバイスのセットのうち同じFPGAデバイスに配置される、
請求項1のマクロスケジューラ。 - マクロコンポーネントの前記第1セットは、前記複数のFPGAデバイスのうち少なくとも2つの異なるFPGAデバイスのマクロコンポーネントを含む、
請求項1のマクロスケジューラ。 - フィールドプログラマブルゲートアレイ(FPGA)デバイスのセットの複数のマクロコンポーネントを列挙するデータベースを更新することと、
設計のための1つ以上の指定されたマクロコンポーネントを示す第1設計定義を第1クライアントデバイスから受信することと、
前記第1設計定義に示された前記1つ以上の指定されたマクロコンポーネント毎に前記複数のマクロコンポーネントのうち1つを割り当てることによって、前記設計のためのマクロコンポーネントの第1セットを割り当てることと、
割り当てられたマクロコンポーネントの前記第1セットを前記第1設計定義に従って構成することによって、前記FPGAデバイスのセットに前記設計を実装することと、を含む、
方法。 - 前記1つ以上の指定されたマクロコンポーネントは、1つ以上の指定されたタイルを含み、
前記第1設計定義は、前記1つ以上の指定されたタイルの各々のビットファイルをさらに示し、
前記方法は、
前記1つ以上の指定されたタイル毎に、マクロコンポーネントの前記第1セット内の割り当てられたタイルを、前記指定されたタイルの前記ビットファイルに基づいてプログラムすることを含む、
請求項10の方法。 - マクロコンポーネントの前記第1セットの各々を、前記第1クライアントデバイスのネットワークアドレスと、前記第1クライアントデバイスによって要求された第1タスクと関連付けることをさらに含む、
請求項10の方法。 - 前記複数のマクロコンポーネント毎に、前記FPGAデバイスのセットにおける前記マクロコンポーネントの位置及び前記マクロコンポーネントの利用可能性を前記データベースに記録することをさらに含む、
請求項10の方法。 - 前記FPGAデバイスのセットの初期構成であって、前記第1設計定義によって示される初期構成におけるタスクの実行中に、前記設計のための最適化された構成を生成することと、
前記FPGAデバイスのセットの前記最適化された構成でタスクの実行を再開する前に前記初期構成を前記最適化された構成に置き換えるように、前記FPGAデバイスのセットを再プログラムすることと、
前記初期構成における初期ポートの位置を、前記最適化された構成における最適化されたポートの位置と相関させる再マッピング通知を生成することと、をさらに含む、
請求項10の方法。 - 前記第1設計定義は、アクセラレータの定義を含み、
前記方法は、
第1期間中に前記第1クライアントデバイスからの第1タスクのアクセラレータにおける実行をスケジューリングすることと、
第2期間中に第2クライアントデバイスからの第2タスクのアクセラレータにおける実行をスケジューリングすることと、をさらに含む、
請求項10の方法。 - 前記複数のマクロコンポーネントの第2セットを、第2クライアントデバイスから受信した第2設計定義によって定義された第2設計に対して割り当てることであって、マクロコンポーネントの前記第1セット内のマクロコンポーネントの第1サブセットは、マクロコンポーネントの前記第2セット内のマクロコンポーネントの第2サブセットとして、前記FPGAデバイスのセットのうち同じFPGAデバイスに配置される、ことをさらに含む、
請求項10の方法。 - 複数のマクロコンポーネントを含むフィールドプログラマブルゲートアレイ(FPGA)デバイスのセットと、
前記複数のマクロコンポーネントを列挙するように構成されたデータベースと、
スタンドアロンマクロスケジューラと、を備え、
前記スタンドアロンマクロスケジューラは、
前記データベースを更新するように構成されたリソース追跡モジュールと、
設計のための1つ以上の指定されたマクロコンポーネントを示す第1設計定義を第1クライアントデバイスから受信するように構成された通信インタフェースと、
前記第1設計定義に示された前記1つ以上の指定されたマクロコンポーネント毎に前記複数のマクロコンポーネントのうち1つを割り当てることによって、前記設計のためのマクロコンポーネントの第1セットを割り当てるように構成されたリソース割り当てロジックと、
割り当てられたマクロコンポーネントの前記第1セットを前記第1設計定義に従って構成することによって、前記FPGAデバイスのセットに前記設計を実装するように構成された構成ロジックと、を備える、
システム。 - 第1クライアントデバイスをさらに備え、
前記スタンドアロンマクロスケジューラは、
前記第1クライアントデバイスからのコマンドに応じて、前記リソース割り当てロジックによる割り当て、及び、前記構成ロジックによる構成を開始するように構成されたアプリケーションプログラミングインタフェース(API)をさらに備える、
請求項17のシステム。 - 前記FPGAデバイスのセットのうち1つ以上のFPGAデバイスの各々は、前記1つ以上のFPGAデバイス内の前記割り当てられたマクロコンポーネントのうち少なくとも1つの配置を決定するように構成されたローカルマクロスケジューラを備える、
請求項17のシステム。 - 前記FPGAデバイスのセットを前記スタンドアロンマクロスケジューラに接続する複数のネットワークチャネルをさらに備える、
請求項17のシステム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/812,411 | 2017-11-14 | ||
| US15/812,411 US10164639B1 (en) | 2017-11-14 | 2017-11-14 | Virtual FPGA management and optimization system |
| PCT/US2018/042172 WO2019099067A1 (en) | 2017-11-14 | 2018-07-13 | Virtual fpga management and optimization system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2021503109A JP2021503109A (ja) | 2021-02-04 |
| JP6974588B2 true JP6974588B2 (ja) | 2021-12-01 |
Family
ID=63244953
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020507062A Active JP6974588B2 (ja) | 2017-11-14 | 2018-07-13 | 仮想fpgaの管理及び最適化システム |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US10164639B1 (ja) |
| EP (1) | EP3710948B1 (ja) |
| JP (1) | JP6974588B2 (ja) |
| KR (1) | KR102189231B1 (ja) |
| CN (1) | CN111108492B (ja) |
| WO (1) | WO2019099067A1 (ja) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104657211A (zh) * | 2015-02-03 | 2015-05-27 | 百度在线网络技术(北京)有限公司 | 一种用于操作对应设备上目标应用的方法与设备 |
| US10540200B2 (en) | 2017-11-10 | 2020-01-21 | Advanced Micro Devices, Inc. | High performance context switching for virtualized FPGA accelerators |
| US11144357B2 (en) | 2018-05-25 | 2021-10-12 | International Business Machines Corporation | Selecting hardware accelerators based on score |
| US10977098B2 (en) * | 2018-08-14 | 2021-04-13 | International Business Machines Corporation | Automatically deploying hardware accelerators based on requests from users |
| US10447273B1 (en) * | 2018-09-11 | 2019-10-15 | Advanced Micro Devices, Inc. | Dynamic virtualized field-programmable gate array resource control for performance and reliability |
| US10892944B2 (en) | 2018-11-29 | 2021-01-12 | International Business Machines Corporation | Selecting and using a cloud-based hardware accelerator |
| US10853548B1 (en) * | 2020-02-11 | 2020-12-01 | Capital One Services, Llc | Reconfiguration of hardware components of an integrated circuit |
| CN111310396B (zh) * | 2020-02-13 | 2023-10-03 | 深圳航天科技创新研究院 | 一种fpga虚拟平台及实现fpga虚拟平台的方法 |
| US12579611B2 (en) * | 2020-09-30 | 2026-03-17 | US Technology International Private Limited | Method and system for image processing through an artificial neural network implemented in an adapter card in a host-computing system |
| CN112906332B (zh) * | 2021-03-25 | 2022-08-23 | 山东高云半导体科技有限公司 | Fpga设计的综合实现方法和装置 |
| US20220321403A1 (en) * | 2021-04-02 | 2022-10-06 | Nokia Solutions And Networks Oy | Programmable network segmentation for multi-tenant fpgas in cloud infrastructures |
| CN114117981B (zh) * | 2022-01-26 | 2022-04-22 | 湖南泛联新安信息科技有限公司 | 一种基于先验信息的rtl级逻辑划分方法 |
| CN115550451B (zh) * | 2022-09-22 | 2025-01-21 | 湖南泛联新安信息科技有限公司 | 基于交换架构的多fpga仿真验证云平台调度管理方法和系统 |
| US20230027807A1 (en) * | 2022-09-29 | 2023-01-26 | Rahul Pal | Method and Apparatus to Enable CPU Host-Unaware Dynamic FPGA Reconfiguration |
| US20240330070A1 (en) * | 2023-03-31 | 2024-10-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | System and method to switch operating modes in a partitioned system |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5737631A (en) | 1995-04-05 | 1998-04-07 | Xilinx Inc | Reprogrammable instruction set accelerator |
| 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 |
| US6237054B1 (en) | 1998-09-14 | 2001-05-22 | Advanced Micro Devices, Inc. | Network interface unit including a microcontroller having multiple configurable logic blocks, with a test/program bus for performing a plurality of selected functions |
| US6678646B1 (en) * | 1999-12-14 | 2004-01-13 | Atmel Corporation | Method for implementing a physical design for a dynamically reconfigurable logic circuit |
| US7243221B1 (en) | 2004-02-26 | 2007-07-10 | Xilinx, Inc. | Method and apparatus for controlling a processor in a data processing system |
| US7180324B2 (en) | 2004-05-28 | 2007-02-20 | Altera Corporation | Redundancy structures and methods in a programmable logic device |
| US7410884B2 (en) | 2005-11-21 | 2008-08-12 | Intel Corporation | 3D integrated circuits using thick metal for backside connections and offset bumps |
| US8458720B2 (en) * | 2007-08-17 | 2013-06-04 | International Business Machines Corporation | Methods and systems for assigning non-continual jobs to candidate processing nodes in a stream-oriented computer system |
| US7902865B1 (en) | 2007-11-15 | 2011-03-08 | Lattice Semiconductor Corporation | Compression and decompression of configuration data using repeated data frames |
| US8922243B2 (en) | 2012-12-23 | 2014-12-30 | Advanced Micro Devices, Inc. | Die-stacked memory device with reconfigurable logic |
| US8928351B1 (en) | 2013-03-13 | 2015-01-06 | Xilinx, Inc. | Emulating power domains in an integrated circuit using partial reconfiguration |
| US10489200B2 (en) * | 2013-10-23 | 2019-11-26 | Nvidia Corporation | Hierarchical staging areas for scheduling threads for execution |
| US10097478B2 (en) * | 2015-01-20 | 2018-10-09 | Microsoft Technology Licensing, Llc | Controlling fair bandwidth allocation efficiently |
| US9740809B2 (en) | 2015-08-27 | 2017-08-22 | Altera Corporation | Efficient integrated circuits configuration data management |
| US10069681B2 (en) | 2015-12-31 | 2018-09-04 | Amazon Technologies, Inc. | FPGA-enabled compute instances |
| JP6620595B2 (ja) * | 2016-02-25 | 2019-12-18 | 富士通株式会社 | 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 |
-
2017
- 2017-11-14 US US15/812,411 patent/US10164639B1/en active Active
-
2018
- 2018-07-13 WO PCT/US2018/042172 patent/WO2019099067A1/en not_active Ceased
- 2018-07-13 CN CN201880060727.5A patent/CN111108492B/zh active Active
- 2018-07-13 EP EP18755952.1A patent/EP3710948B1/en active Active
- 2018-07-13 KR KR1020207006327A patent/KR102189231B1/ko active Active
- 2018-07-13 JP JP2020507062A patent/JP6974588B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021503109A (ja) | 2021-02-04 |
| KR20200029600A (ko) | 2020-03-18 |
| CN111108492B (zh) | 2023-03-14 |
| KR102189231B1 (ko) | 2020-12-10 |
| EP3710948B1 (en) | 2024-05-01 |
| CN111108492A (zh) | 2020-05-05 |
| WO2019099067A1 (en) | 2019-05-23 |
| EP3710948A1 (en) | 2020-09-23 |
| US10164639B1 (en) | 2018-12-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6974588B2 (ja) | 仮想fpgaの管理及び最適化システム | |
| US10540200B2 (en) | High performance context switching for virtualized FPGA accelerators | |
| US10275288B2 (en) | Virtualization manager for reconfigurable hardware accelerators | |
| NL2011315C2 (en) | A computing platform, a reconfigurable hardware device and a method for simultaneously executing processes on dynamically reconfigurable hardware device, such as an fpga, as well as instruction set processors, such as a cpu, and a related computer readable medium. | |
| Steiger et al. | Operating systems for reconfigurable embedded platforms: Online scheduling of real-time tasks | |
| CN107015845B (zh) | Gpu虚拟化 | |
| JP4510353B2 (ja) | コンピュータのための再構成可能なロジック | |
| US8868894B2 (en) | Computing system with hardware scheduled reconfiguration mechanism and method of operation thereof | |
| Ahmadinia et al. | Task scheduling for heterogeneous reconfigurable computers | |
| US10042659B1 (en) | Caching virtual contexts for sharing of physical instances of a hardware resource | |
| Bucknall et al. | Build automation and runtime abstraction for partial reconfiguration on Xilinx Zynq Ultrascale+ | |
| US20020010825A1 (en) | Memory resource arbitrator for multiple gate arrays | |
| Nollet et al. | Hierarchical Run-Time Reconfiguration Managed by an Operating System for Reconfigurable Systems. | |
| US10379899B2 (en) | Systems and methods for frame presentation and modification in a networking environment | |
| Hecht et al. | A distributed object system approach for dynamic reconfiguration | |
| CN101535956A (zh) | 多处理器系统、多处理器系统中的系统构成方法及其程序 | |
| JP2024047740A (ja) | 電子制御装置、車両制御システム、及びタスクの制御方法 | |
| US20240345884A1 (en) | IC Device Resource Sharing | |
| Jozwik et al. | Rainbow: an OS extension for hardware multitasking on dynamically partially reconfigurable FPGAs | |
| Jara-Berrocal et al. | Hardware module reuse and runtime assembly for dynamic management of reconfigurable resources | |
| Oliver et al. | Towards Run-Time Re-Configurable Techniques for Real-Time Embedded Applications. | |
| Ferreira et al. | FPGA architectures for reconfigurable computing | |
| Gericota et al. | FPGA Architectures for Reconfigurable Computing | |
| Kulkarni et al. | Reconfigurable Hardware Operating Systems: Online Scheduling of Hard Real-Time Tasks to Partially Reconfigurable Devices. | |
| de Almeida | FPGA Architectures for Reconfigurable Computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210713 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210714 |
|
| 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: 20211019 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211104 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6974588 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |