IP Library Granted Patent US 9,195,470
Granted Patent B2
US 9,195,470 · App. 13/947,250 · Granted Nov 24, 2015

Dynamic data dimensioning by partial reconfiguration of single or multiple field-programmable gate arrays using bootstraps

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 9,195,470
App. No.
13/947,250
Granted
Nov 24, 2015
Kind
B2
Abstract

An approach is presented for managing resources of a field-programmable gate array (FPGA). At runtime, first data is extracted and processed. At runtime and via a very high speed integrated circuit hardware description language (VHDL) interface, a change in a size, a structure, or a load schedule of next data is received. The change is determined by a quantitative method analyzing the first data and executing external to the FPGA. At runtime, a first bootstrap code in the FPGA executes, and in response, other bootstrap codes in the FPGA are updated. The first bootstrap code is configured to update the structure of the next data. The other bootstrap codes are configured to extract and process, and to determine an order of processing and a configuration of the next data. The next data is extracted and processed based on the updated other bootstrap codes.

Claims (68)

1. A method of managing resources of a field-programmable gate array (FPGA), the method comprising the steps of:

a computer at a runtime extracting and processing a first set of data;

via a very high speed integrated circuit hardware description language (VHDL) interface, the computer at the runtime receiving a change in a size of a next set of data to be processed, a structure of the next set of data to be processed, or a load schedule of the next set of data to be processed, the change determined by a quantitative method analyzing the first set of data, the quantitative method executing external to the FPGA;

based on the received change, the computer at the runtime executing a first bootstrap code in the FPGA;

in response to the step of executing the first bootstrap code and based on the received change, the computer at the runtime updating at least one bootstrap code included in a plurality of other bootstrap codes in the FPGA, the first bootstrap code configured to dimension the next set of data, the plurality of other bootstrap codes including a second bootstrap code configured to extract the next set of data from a data source, a third bootstrap code configured to process the next set of data extracted by the second bootstrap code, a fourth bootstrap code configured to determine an order in which the next set of data is processed by the third bootstrap code, and a fifth bootstrap code configured to determine a configuration of the next set of data; and

based on the received change and the updated at least one bootstrap code, the computer extracting and subsequently processing the next set of data.

2. The method of claim 1 , further comprising the steps of:

the computer determining at least one new rule based on the updated at least one bootstrap code;

the computer storing the at least one new rule in a data warehouse; and

based on the at least one new rule, the computer determining the configuration, the configuration including a filter for extracting the next set of data, wherein the step of extracting the next set of data is based on the filter, and wherein the step of processing the next set of data is based on the at least one new rule and the configuration.

3. The method of claim 2 , further comprising the step of based on the updated at least one bootstrap code, the computer generating a model for the next set of data, wherein the step of determining the configuration includes determining the configuration as including a mapping of the next set of data to the model, and wherein the step of processing the next set of data is further based on the mapping.

4. The method of claim 1 , further comprising the steps of:

the computer executing the updated at least one bootstrap code; and

in response to the step of executing the updated at least one bootstrap code, the computer determining the configuration of the next set of data, wherein the step of processing the next set of data is based on the configuration.

5. The method of claim 1 , further comprising the steps of:

prior to the step of extracting the first set of data and based on the at least one bootstrap code, the computer allocating resources of the FPGA; and

subsequent to the step of processing the next set of data and based on the updated at least one bootstrap code, the computer reallocating the resources of the FPGA.

6. The method of claim 5 , further comprising the steps of:

the computer determining a first scenario of a business, wherein the step of allocating the resources is based on the first scenario; and

the computer determining a second scenario of the business, the second scenario being different from the first scenario, wherein the step of reallocating the resources is based on the second scenario.

7. The method of claim 5 , wherein the step of reallocating the resources of the FPGA includes reallocating memory space of the FPGA.

8. The method of claim 1 , further comprising the step of:

providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable program code in the computer, the program code being executed by a processor of the computer to implement the steps of extracting and processing the first set of data, receiving the change, executing the first bootstrap code, updating the at least one bootstrap code, and extracting and subsequently processing the next set of data.

9. A computer system comprising:

a central processing unit (CPU);

a memory coupled to the CPU;

a computer-readable, tangible storage device coupled to the CPU, the storage device containing instructions that are executed by the CPU via the memory to implement a method of managing resources of a field-programmable gate array (FPGA), the method comprising:

the computer system at a runtime extracting and processing a first set of data;

via a very high speed integrated circuit hardware description language (VHDL) interface, the computer system at the runtime receiving a change in a size of a next set of data to be processed, a structure of the next set of data to be processed, or a load schedule of the next set of data to be processed, the change determined by a quantitative method analyzing the first set of data, the quantitative method executing external to the FPGA;

based on the received change, the computer system at the runtime executing a first bootstrap code in the FPGA;

in response to the step of executing the first bootstrap code and based on the received change, the computer system at the runtime updating at least one bootstrap code included in a plurality of other bootstrap codes in the FPGA, the first bootstrap code configured to dimension the next set of data, the plurality of other bootstrap codes including a second bootstrap code configured to extract the next set of data from a data source, a third bootstrap code configured to process the next set of data extracted by the second bootstrap code, a fourth bootstrap code configured to determine an order in which the next set of data is processed by the third bootstrap code, and a fifth bootstrap code configured to determine a configuration of the next set of data; and

based on the received change and the updated at least one bootstrap code, the computer system extracting and subsequently processing the next set of data.

10. The computer system of claim 9 , wherein the method further comprises the steps of:

the computer system determining at least one new rule based on the updated at least one bootstrap code;

the computer system storing the at least one new rule in a data warehouse; and

based on the at least one new rule, the computer system determining the configuration, the configuration including a filter for extracting the next set of data, wherein the step of extracting the next set of data is based on the filter, and wherein the step of processing the next set of data is based on the at least one new rule and the configuration.

11. The computer system of claim 10 , wherein the method further comprises the step of based on the updated at least one bootstrap code, the computer system generating a model for the next set of data, wherein the step of determining the configuration includes determining the configuration as including a mapping of the next set of data to the model, and wherein the step of processing the next set of data is further based on the mapping.

12. The computer system of claim 9 , wherein the method further comprises the steps of:

the computer system executing the updated at least one bootstrap code; and

in response to the step of executing the updated at least one bootstrap code, the computer system determining the configuration of the next set of data, wherein the step of processing the next set of data is based on the configuration.

13. The computer system of claim 9 , wherein the method further comprises the steps of:

prior to the step of extracting the first set of data and based on the at least one bootstrap code, the computer system allocating resources of the FPGA; and

subsequent to the step of processing the next set of data and based on the updated at least one bootstrap code, the computer system reallocating the resources of the FPGA.

14. The computer system of claim 13 , wherein the method further comprises the steps of:

the computer system determining a first scenario of a business, wherein the step of allocating the resources is based on the first scenario; and

the computer system determining a second scenario of the business, the second scenario being different from the first scenario, wherein the step of reallocating the resources is based on the second scenario.

15. A computer program product, comprising:

a computer-readable, tangible storage device; and

a computer-readable program code stored in the computer-readable, tangible storage device, the computer-readable program code containing instructions that are executed by a central processing unit (CPU) of a computer system to implement a method of managing resources of a field-programmable gate array (FPGA), the method comprising:

the computer system at a runtime extracting and processing a first set of data;

via a very high speed integrated circuit hardware description language (VHDL) interface, the computer system at the runtime receiving a change in a size of a next set of data to be processed, a structure of the next set of data to be processed, or a load schedule of the next set of data to be processed, the change determined by a quantitative method analyzing the first set of data, the quantitative method executing external to the FPGA;

based on the received change, the computer system at the runtime executing a first bootstrap code in the FPGA;

in response to the step of executing the first bootstrap code and based on the received change, the computer system at the runtime updating at least one bootstrap code included in a plurality of other bootstrap codes in the FPGA, the first bootstrap code configured to dimension the next set of data, the plurality of other bootstrap codes including a second bootstrap code configured to extract the next set of data from a data source, a third bootstrap code configured to process the next set of data extracted by the second bootstrap code, a fourth bootstrap code configured to determine an order in which the next set of data is processed by the third bootstrap code, and a fifth bootstrap code configured to determine a configuration of the next set of data; and

based on the received change and the updated at least one bootstrap code, the computer system extracting and subsequently processing the next set of data.

16. The program product of claim 15 , wherein the method further comprises the steps of:

the computer system determining at least one new rule based on the updated at least one bootstrap code;

the computer system storing the at least one new rule in a data warehouse; and

based on the at least one new rule, the computer system determining the configuration, the configuration including a filter for extracting the next set of data, wherein the step of extracting the next set of data is based on the filter, and wherein the step of processing the next set of data is based on the at least one new rule and the configuration.

17. The program product of claim 16 , wherein the method further comprises the step of based on the updated at least one bootstrap code, the computer system generating a model for the next set of data, wherein the step of determining the configuration includes determining the configuration as including a mapping of the next set of data to the model, and wherein the step of processing the next set of data is further based on the mapping.

18. The program product of claim 15 , wherein the method further comprises the steps of:

the computer system executing the updated at least one bootstrap code; and

in response to the step of executing the updated at least one bootstrap code, the computer system determining the configuration of the next set of data, wherein the step of processing the next set of data is based on the configuration.

19. The program product of claim 18 , wherein the method further comprises the steps of:

prior to the step of extracting the first set of data and based on the at least one bootstrap code, the computer system allocating resources of the FPGA; and

subsequent to the step of processing the next set of data and based on the updated at least one bootstrap code, the computer system reallocating the resources of the FPGA.

20. The program product of claim 19 , wherein the method further comprises the steps of:

the computer system determining a first scenario of a business, wherein the step of allocating the resources is based on the first scenario; and

the computer system determining a second scenario of the business, the second scenario being different from the first scenario, wherein the step of reallocating the resources is based on the second scenario.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 036328 FRAME: 0809. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGMENT. Recorded Oct 21, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S.2 LLC
Reel/Frame 036920/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC COMPANY
Reel/Frame 036328/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2013
From: ADIKI, SREENIVAS; KANAMATAREDDY, RAVI KUMAR REDDY; SATAPATHY, SIBA P.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030846/0053 →