IP Library Granted Patent US 10,936,529
Granted Patent B2
US 10,936,529 · App. 16/455,085 · Granted Mar 2, 2021

System and method of configuring field programmable logic arrays

Inventors: Shyamkumar Thiyagarajan Iyer (Austin, TX); Timothy M. Lambert (Austin, TX); Duk Moon Kim (Cedar Park, TX)
Assignee: Dell Products L.P.
G06F13/4282G06F9/45558G06F15/7867G06F2009/45595G06F2213/0026
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 10,936,529
App. No.
16/455,085
Granted
Mar 2, 2021
Kind
B2
Abstract

In one or more embodiments, one or more systems, methods, and/or processes may determine a Peripheral Component Interconnect Express (PCIe) endpoint, associated with a PCIe destination endpoint identification, includes a field programmable gate array (FPGA); may access a partial configuration for the FPGA; may construct multiple packets that include the PCIe destination endpoint identification and respective portions of the partial configuration for the FPGA; and may provide the multiple packets to the PCIe endpoint. In one or more embodiments, the one or more systems, methods, and/or processes may further map at least a portion of the FPGA to a virtual machine. In one or more embodiments, the one or more systems, methods, and/or processes may further combine the portions of the partial configuration for the FPGA to reconstruct the partial configuration for the FPGA; and may further program the FPGA with the partial configuration for the FPGA.

Claims (70)

1. An information handling system coupled to a network, the information handling system comprising:

an information handling system processor; and

an information handling system memory medium, coupled to the information handling system processor, that stores instructions executable by the information handling system processor;

a Peripheral Component Interconnect Express (PCIe) root complex;

a baseboard management controller (BMC) coupled to the PCIe root complex; and

a PCIe endpoint, which includes a field programmable gate array (FPGA), coupled to the PCIe root complex, wherein the FPGA comprises a FPGA memory medium storing a set of configurations for the FPGA;

wherein the BMC is configured to:

receive an at least partial configuration over the network;

determine, from the at least partial configuration, a PCIe destination endpoint identification corresponding to the PCIe endpoint;

determine the PCIe endpoint includes the FPGA;

construct a plurality of packets, wherein each packet of the plurality of packets comprises a PCIe target identification, the PCIe destination endpoint identification and a respective portion of a plurality of portions of the at least partial configuration for the FPGA; and

provide, via the PCIe root complex, the plurality of packets to the PCIe endpoint without involving the information handling system processor or the information handling system memory medium; and

wherein the information handling system instructions, which when executed by the information handling system processor, cause the information handling system processor to map at least a portion of the FPGA with the at least partial configuration to a virtual machine.

2. The information handling system of claim 1 , wherein the PCIe endpoint is configured to receive, via the PCIe root complex, the plurality of packets, the PCIe endpoint comprising:

a PCIe core configured to decode each packet of the plurality of packets;

a first memory medium configured to buffer each decoded packet as a portion of the at least partial configuration;

a combiner configured to retrieve two or more portions of the at least partial configuration from the first memory medium and combine the portions of the partial configuration for the FPGA to reconstruct the partial configuration for the FPGA; and

a second memory medium configured to store the at least partial configuration, the second memory medium associated with the FPGA,

wherein the PCIe endpoint is configured to at least FPGA; and

the information handling system instructions, which when executed by the information handling system processor, cause the information handling system processor to map the FPGA to a hypervisor associated with the virtual machine.

3. The information handling system of claim 2 , wherein the FPGA is configured to process information while the PCIe endpoint programs the FPGA with the at least partial configuration for the FPGA.

4. The information handling system of claim 1 , wherein the BMC is configured to provide, via the PCIe root complex, the plurality of packets to the PCIe endpoint without involving a volatile memory medium of the information handling system memory medium.

5. The information handling system of claim 1 , wherein the BMC is configured to provide, via the PCIe root complex, the plurality of packets to the PCIe endpoint without involving a host operating system executing on the information handling system processor.

6. The information handling system of claim 1 , wherein the BMC is configured to receive the at least partial configuration for the FPGA from a remote access controller via a network.

7. The information handling system of claim 1 , wherein the FPGA is configurable as a hardware component; and

the BMC processor is configured to:

determine one or more attributes of a workload;

determine a hardware component utilized by the workload; and

determine a configuration of the set of configurations for the FPGA for utilizing the FPGA as the hardware component.

8. The information handling system of claim 1 , wherein, to map the at least the portion of the FPGA with the at least partial configuration to the virtual machine, the instructions are executable by the information handling system processor to map the at least the portion of the FPGA with the at least partial configuration to the virtual machine via a hypervisor associated with the virtual machine.

9. A computer-implemented method, comprising:

receiving, by a baseboard management controller (BMC) in an information handling system, a request for a set of configuration capabilities of a Peripheral Component Interconnect Express (PCIe) endpoint in the information handling system;

determining, by the BMC, that a PCIe endpoint associated with a PCIe destination endpoint identification includes a field programmable gate array (FPGA);

receiving an at least partial configuration for the FPGA;

constructing a plurality of packets, wherein each packet of the plurality of packets comprises a PCIe target identification, the PCIe destination endpoint identification and a respective portion of a plurality of portions of the at least partial configuration for the FPGA;

providing, via a PCIe root complex, the plurality of packets to the PCIe endpoint without involving an information handling system processor or an information handling system memory medium;

reconstructing the at least partial configuration by the PCIe endpoint;

programming the FPGA with the at least partial configuration by the PCIe endpoint; and

after the providing, via the PCIe root complex, the plurality of packets to the PCIe endpoint, mapping at least a portion of the FPGA to a virtual machine.

10. The method of claim 9 , wherein reconstructing the at least partial configuration by the PCIe endpoint comprises:

receiving, via the PCIe root complex, the plurality of packets;

decoding each packet by a message decoder in the PCIe endpoint;

buffering the decoded packet in a first memory medium communicatively coupled to the message decoder;

retrieving two or more portions of the at least partial configuration from the first memory medium by a combiner;

combining the two or more portions of the at least partial configuration for the FPGA to reconstruct the at least partial configuration for the FPGA; and

storing the at least partial configuration in a second memory medium associated with the FPGA.

11. The method of claim 9 , wherein the programming the FPGA with the at least partial configuration for the FPGA comprises programming the FPGA with the at least partial configuration for the FPGA while the FPGA is processing information.

12. The method of claim 9 , wherein the providing, via the PCIe root complex, the plurality of packets to the PCIe endpoint comprises providing, via the PCIe root complex, the plurality of packets to the PCIe endpoint without involving a memory medium of a host information handling system.

13. The method of claim 9 , wherein the providing, via the PCIe root complex, the plurality of packets to the PCIe endpoint comprises providing, via the PCIe root complex, the plurality of packets to the PCIe endpoint without involving a host operating system of a host information handling system.

14. The method of claim 9 , wherein the receiving the at least partial configuration for the FPGA comprises receiving the at least partial configuration for the FPGA via a network.

15. The method of claim 9 , wherein the receiving the at least partial configuration for the FPGA comprises receiving the at least partial configuration for the FPGA from a non-volatile memory medium.

16. A system for configuring a field programmable gate array (FPGA) in a Peripheral Component Interconnect Express (PCIe) endpoint in an information handling system, the system comprising:

a baseboard management controller, comprising:

at least one processor; and

a memory medium, coupled to the at least one processor, that stores:

a plurality of configurations associated with the FPGA; and

a set of instructions executable by the at least one processor, which when executed by the at least one processor, cause the baseboard management controller to:

receive an at least partial configuration for the FPGA;

determine a Peripheral Component Interconnect Express (PCIe) endpoint, associated with a PCIe destination endpoint identification, includes the FPGA;

separate the at least partial configuration into a plurality of packets, wherein each packet of the plurality of packets comprises a PCIe target identification, the PCIe destination endpoint identification and a respective portion of a plurality of portions of the at least partial configuration for the FPGA; and

provide, via the PCIe root complex, the plurality of packets to the PCIe endpoint corresponding to the PCIe endpoint identification without involving the information handling system processor or the information handling system memory medium; and

the PCIe endpoint comprises:

the FPGA;

a PCIe core having a message decoder configured to decode each packet of the plurality of packets to determine the respective portion of the plurality of portions;

a first memory medium communicatively configured to buffer the plurality of portions;

a combiner configured to combine the plurality of portions to reconstruct the at least partial configuration; and

a second memory medium configured to store the at least partial configuration, the second memory medium associated with the FPGA,

wherein the PCIe endpoint is configured to program the FPGA with the at least partial configuration stored in the second memory medium.

17. The system of claim 16 , wherein, to receive the at least partial configuration for the FPGA, the set of instructions are executable to receive the at least partial configuration for the FPGA from a remote access controller via a network.

18. The system of claim 16 , wherein, to provide, via the PCIe root complex, the plurality of packets to the PCIe endpoint, the set of instructions are executable to provide, via the PCIe root complex, the plurality of packets to the PCIe endpoint without involving a volatile memory medium of the information handling system and without involving a host operating system of the information handling system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2019
From: IYER, SHYAMKUMAR THIYAGARAJAN; LAMBERT, TIMOTHY M.; KIM, DUK MOON
To: DELL PRODUCTS L.P.
Reel/Frame 049614/0843 →