IP Library › Granted Patent US 11,275,503
Granted Patent B2
US 11,275,503 · App. 16/863,700 · Granted Mar 15, 2022

Controlling access to previously-stored logic in a reconfigurable logic device

Inventors: Mark Bradley Davis (Austin, TX); Erez Izenberg (Tel Aviv, IL); Robert Michael Johnson (Austin, TX); Asif Khan (Austin, TX); Islam Mohamed Hatem Abdulfattah Mohamed Atta (Vancouver, CA); Nafea Bshara (San Jose, CA); Christopher Joseph Pettey (Woodinville, WA)
Assignee: Amazon Technologies, Inc.
G06F3/0607G06F3/0635G06F3/0644G06F3/0685G06F13/28G06F15/7871G06F21/51G11C7/1072G06F2221/2143
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,275,503
App. No.
16/863,700
Granted
Mar 15, 2022
Kind
B2
Abstract

Methods and apparatus are disclosed for securely erasing partitions of reconfigurable logic devices such as FPGAs in a multi-tenant server environment. In one example, a method of securely erasing an FPGA includes identifying one partition of previously-programmed resources in the FPGA, erasing the identified partition by storing new values in memory or storage elements of the identified partition, and storing new values in memory or storage elements of additional external resources electrically connected to the integrated circuit and associated with the identified partition. Thus, other partitions and subsequent users of the identified partition are prevented from accessing the securely erased data. A configuration circuit, accessible by a host computer via DMA, can be programmed into the FPGA reconfigurable logic for performing the disclosed erasing operations.

Claims (42)

1. A method comprising:

responsive to receiving a request to erase application data from a reconfigurable hardware platform:

identifying a previously-programmed logic partition in a reconfigurable logic device of the reconfigurable hardware platform;

storing new values in memory or storage elements of the identified logic partition;

identifying additional resources of the reconfigurable hardware platform associated with the identified logic partition; and

storing new values in memory or storage elements of the identified additional resources.

2. The method of claim 1 , wherein the storing new values in memory or storage elements of the identified logic partition comprises clearing logic in the reconfigurable logic device through a configuration port of the reconfigurable logic device to change values in the memory or storage elements.

3. The method of claim 1 , wherein the request is generated when terminating a virtual machine instance on the reconfigurable hardware platform.

4. The method of claim 1 , wherein the request is received from a supervisor process executing on a host computer coupled to the reconfigurable hardware platform.

5. The method of claim 1 , wherein the reconfigurable logic device comprises a host partition controlled by a supervisor process executing on a host computer, and

wherein storing new values in memory or storage elements of the identified logic partition comprises operating a circuit within the host partition to scrub values stored in memory or storage elements of the identified logic partition.

6. The method of claim 1 , further comprising:

reconfiguring logic of the identified logic partition to comprise a scrubber circuit,

wherein the scrubber circuit performs the storing new values in memory or storage elements of the identified logic partition or the storing new values in memory or storage elements of the identified additional resources.

7. The method of claim 1 , wherein the identified logic partition comprises a scrubber circuit coupled to the additional resources, and wherein the method further comprises operating the scrubber circuit to perform the storing new values in memory or storage elements of the identified additional resources.

8. The method of claim 1 , wherein the storing new values in memory or storage elements of the partition comprises storing a known pattern values in the memory or storage elements, the known pattern of values including: all zero values; all one values; all of a predetermined set of one or more values; or random values.

9. The method of claim 1 , wherein the reconfigurable logic device comprises a plurality of other logic partitions, the method further comprising:

continuing operation of circuitry in the plurality of other logic partitions while performing the storing new values in memory or storage elements of the identified logic partition.

10. The method of claim 1 , wherein the additional resources include at least one of the following devices coupled to an integrated circuit comprising the reconfigurable logic device:

a synchronous dynamic random access memory device (DRAM);

a hybrid memory cube (HMC);

a co-processor;

a network interface comprising network address information; or

a pseudorandom number generator.

11. The method of claim 1 , further comprising:

receiving a clearing bitstream from a logic repository database via a host computer coupled to the reconfigurable hardware platform,

wherein the storing new values in memory or storage elements of the identified partition comprises applying the clearing bitstream to an internal or external configuration port of the reconfigurable logic device.

12. The method of claim 1 , further comprising:

receiving, from a host computer coupled to the reconfigurable logic device, a description of application logic to be programmed into the identified logic partition;

generating configuration data comprising the application logic and an internal configuration circuit; and

programming the reconfigurable logic device with the configuration data to implement a circuit for the application logic and the internal configuration circuit,

wherein the internal configuration circuit is configured to perform the storing new values in memory or storage elements of the identified portion or storing new values in memory or storage elements of the additional resources.

13. The method of claim 1 , further comprising:

launching a virtual machine instance coupled to the identified logic partition of the reconfigurable logic device and the identified additional resources;

with the identified logic partition, performing operations specified in instructions received from the virtual machine instance via a computer network; and

terminating the virtual machine instance,

wherein the storing new values in memory or storage elements of the identified portion and storing new values in memory or storage elements of the identified additional resources is performed in response to terminating the virtual machine instance.

14. The method of claim 1 , further comprising:

launching a first virtual machine instance coupled to the identified logic partition of the reconfigurable logic device and the identified additional resources;

terminating the first virtual machine instance; and

launching a second virtual machine instance,

wherein the second launching comprises erasing the identified logic partition by delaying the storing of new values in memory or storage elements of the identified logic portion and the storing of new values in memory or storage elements of the additional resources until the second launching is initiated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2020
From: DAVIS, MARK BRADLEY; IZENBERG, EREZ; JOHNSON, ROBERT MICHAEL; KHAN, ASIF; MOHAMED ATTA, ISLAM MOHAMED HATEM ABDULFATTAH; BSHARA, NAFEA; PETTEY, CHRISTOPHER JOSEPH
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 052574/0894 →
Continuity (2)
Division 15282148 · Sep 30, 2016
Related Publication 20200257454A1 · Aug 13, 2020
Cited By (2)
US 12,204,481 US 12,423,493