Virtual FPGA management and optimization system

US10164639B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10164639-B1
Application numberUS-201715812411-A
CountryUS
Kind codeB1
Filing dateNov 14, 2017
Priority dateNov 14, 2017
Publication dateDec 25, 2018
Grant dateDec 25, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A macro scheduler includes a resource tracking module configured to update a database enumerating a plurality of macro components of a set of field programmable gate array (FPGA) devices, a communication interface configured to receive from a first client device a first design definition indicating one or more specified macro components for a design, resource allocation logic configured to allocate a first set of macro components for the design by allocating one of the plurality of macro components for each of the one or more specified macro components indicated in the first design definition, and configuration logic configured to implement the design in the set of FPGA devices by configuring the first set of allocated macro components according to the first design definition.

First claim

Opening claim text (preview).

What is claimed is: 1. A macro scheduler, comprising: a resource tracking module configured to update a database enumerating a plurality of macro components of a set of field programmable gate array (FPGA) devices; a communication interface configured to receive from a first client device a first design definition indicating one or more specified macro components for a design; resource allocation logic configured to allocate a first set of macro components for the design by allocating one of the plurality of macro components for each of the one or more specified macro components indicated in the first design definition; and configuration logic configured to implement the design in the set of FPGA devices by configuring the first set of allocated macro components according to the first design definition. 2. The macro scheduler of claim 1 , wherein the first design definition comprises a macro graph defining connections between the one or more specified macro components and indicating a type of each of the one or more specified macro components. 3. The macro scheduler of claim 2 , wherein: the one or more specified macro components comprise one or more specified tiles, one or more specified fixed function units, and one or more specified registers; the first design definition further indicates a bitfile for each of the one or more specified tiles; and for each specified tile of the one or more specified tiles, the configuration logic is configured to program an allocated tile in the first set of macro components based on the bitfile for the specified tile. 4. The macro scheduler of claim 1 , wherein the resource tracking module is further configured to associate each of the first set of macro components with a network address of the first client device and with a first task requested by the first client device. 5. The macro scheduler of claim 1 , wherein the resource tracking module is further configured to, for each macro component of the plurality of macro components, record in the database a location of the macro component in the set of FPGA devices and an availability of the macro component. 6. The macro scheduler of claim 1 , further comprising synthesis logic configured to: during execution of a task in an initial configuration of the set of FPGA devices, wherein the initial configuration is indicated by the first design definition, generate an optimized configuration for the design, wherein the configuration logic is further configured to reprogram the set of FPGA devices to replace the initial configuration with the optimized configuration prior to restarting execution of the task in the optimized configuration of the set of FPGA devices; and generate a remap notification correlating initial port locations in the initial configuration with optimized port locations in the optimized configuration. 7. The macro scheduler of claim 1 , wherein the first design definition comprises a definition for an accelerator, and wherein the resource allocation logic is further configured to: schedule execution in the accelerator of a first task from the first client device during a first time period, and schedule execution in the accelerator of a second task from a second client device during a second time period. 8. The macro scheduler of claim 1 , wherein the resource allocation logic is further configured to allocate a second set of the plurality of macro components for a second design defined by a second design definition received from a second client device, wherein a first subset of macro components in the first set of macro components is located in the same FPGA device of the set of FPGA devices as a second subset of macro components in the second set of macro components. 9. The macro scheduler of claim 1 , wherein the first set of macro components comprises macro components of at least two different FPGA devices of the plurality of FPGA devices. 10. A method, comprising: updating a database enumerating a plurality of macro components of a set of field programmable gate array (FPGA) devices; receiving from a first client device a first design definition indicating one or more specified macro components for a design; allocating a first set of macro components for the design by allocating one of the plurality of macro components for each of the one or more specified macro components indicated in the first design definition; and implementing the design in the set of FPGA devices by configuring the first set of allocated macro components according to the first design definition. 11. The method of claim 10 , wherein: the one or more specified macro components comprise one or more specified tiles; the first design definition further indicates a bitfile for each of the one or more specified tiles; and the method further comprises: for each specified tile of the one or more specified tiles, programming an allocated tile in the first set of macro components based on the bitfile for the specified tile. 12. The method of claim 10 , further comprising: associating each of the first set of macro components with a network address of the first client device and with a first task requested by the first client device. 13. The method of claim 10 , further comprising: for each macro component of the plurality of macro components, recording in the database a location of the macro component in the set of FPGA devices and an availability of the macro component. 14. The method of claim 10 , further comprising: during execution of a task in an initial configuration of the set of FPGA devices, wherein the initial configuration is indicated by the first design definition, generating an optimized configuration for the design; reprogramming the set of FPGA devices to replace the initial configuration with the optimized configuration prior to restarting execution of the task in the optimized configuration of the set of FPGA devices; and generating a remap notification correlating initial port locations in the initial configuration with optimized port locations in the optimized configuration. 15. The method of claim 10 , wherein the first design definition comprises a definition for an accelerator, and wherein the method further comprises: scheduling execution in the accelerator of a first task from the first client device during a first time period, and scheduling execution in the accelerator of a second task from a second client device during a second time period. 16. The method of claim 10 , further comprising: allocating a second set of the plurality of macro components for a second design defined by a second design definition received from a second client device, wherein a first subset of macro components in the first set of macro components is located in the same FPGA device of the set of FPGA devices as a second subset of macro components in the second set of macro components. 17. A system, comprising: a set of field programmable gate array (FPGA) devices comprising a plurality of macro components; a database configured to enumerate the plurality of macro components; and a standalone macro scheduler, comprising: a resource tracking module configured to update the database; a communication interface configured to receive from a first client device a first design definition indicating one or more specified macro components for a design; resource allocation logic configured to allocate a first set of macro components for the design by allocating one of the plurality of macro components for each of the one or more specified macro components indicated in the first

Assignees

Inventors

Classifications

  • the resources being hardware resources other than CPUs, Servers and Terminals · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • for memories · CPC title

  • for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD] · CPC title

  • by program, e.g. task dispatcher, supervisor, operating system · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10164639B1 cover?
A macro scheduler includes a resource tracking module configured to update a database enumerating a plurality of macro components of a set of field programmable gate array (FPGA) devices, a communication interface configured to receive from a first client device a first design definition indicating one or more specified macro components for a design, resource allocation logic configured to allo…
Who is the assignee on this patent?
Advanced Micro Devices Inc
What technology area does this patent fall under?
Primary CPC classification H03K19/17732. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 25 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).