IP Library › Granted Patent US 10,546,156
Granted Patent B2
US 10,546,156 · App. 15/410,123 · Granted Jan 28, 2020

MRC training in FPGA-in-memory-controller

Inventors: Rajesh Poornachandran (Portland, OR); Vincent Zimmer (Federal Way, WA); Ned Smith (Beaverton, OR); Nadhiya Chandramohan (Hillsboro, OR)
Assignee: INTEL CORPORATION
G06F21/76
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,546,156
App. No.
15/410,123
Granted
Jan 28, 2020
Kind
B2
Abstract

MRC training can include providing a hot add notification to a UEFI BIOS FW, receiving, at an MRC agent of the FIMC and from the UEFI BIOS FW, the MRC training request, and performing, at the MRC agent in response to the MRC training request, an MRC training independent of an SMM associated with the apparatus.

Claims (38)

1. An apparatus for performing memory reference code (MRC) training, comprising:

one or more electronic memory to store an MRC training request;

a field programmable gate array (FPGA)-in-memory-controller (FIMC) comprising an MRC agent; and

a memory controller configured to host the FIMC and to provide a hot add notification to a unified extensible firmware interface (UEFI) basic input/output system (BIOS) firmware (FW);

wherein the FIMC is configured to:

receive, at the MRC agent of the FIMC and from the UEFI BIOS FW, the MRC training request; and

perform, at the MRC agent in response to the MRC training request, an MRC training independent of a system management mode (SMM) associated with the apparatus.

2. The apparatus of claim 1 , wherein the memory controller configured to provide the hot add notification is further configured to provide the hot add notification to an advance configuration power interface (ACPI) via a trusted execution environment (TEE).

3. The apparatus of claim 2 , wherein the memory controller is further configured to receive the MRC training request from the TEE.

4. The apparatus of claim 1 , wherein the memory controller comprises internal memory that stores MRC code used to execute the MRC agent.

5. The apparatus of claim 4 , wherein the memory controller is further configured to modify the MRC code stored in the internal memory to update the MRC agent in response to a performance of the MRC training.

6. The apparatus of claim 4 , wherein the MRC agent of the FMIC is further configured to perform the MRC training using the internal memory.

7. A non-transitory computer-readable storage medium having stored thereon instructions that, when implemented by a computing device, cause the computing device to:

receive, at a memory reference code (MRC) agent implemented in a field programmable gate array (FPGA), an MRC training request;

perform, at the MRC agent implemented in the FPGA, an MRC training independent of a system management mode (SMM) associated with the computing device;

generate analytics data, at an analytics agent hosted by the FPGA, from the MRC training;

provide the analytics data to a remote computing device; and

implement a plurality of updates to at least one of the MRC agent and the analytics agent, wherein the plurality of updates are provided by the remote computing device.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions to provide the analytics data further comprise instructions to provide the analytics data to a trusted execution environment (TEE).

9. The non-transitory computer-readable storage medium of claim 8 , wherein the instructions to provide the analytics data further comprises instructions to provide the analytics data to an admin computing device from the TEE using a secure out of band (OOB) channel.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the OOB channel connects the TEE to the admin computing device via a network.

11. The non-transitory computer-readable storage medium of claim 7 , wherein the FPGA resides in a memory controller.

12. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions to generate the analytics data further comprise instructions to generate the analytics data using memory internal to a memory controller.

13. The non-transitory computer-readable storage medium of claim 7 , wherein the FPGA resides in at least one of a processing unit and a memory controller.

14. The non-transitory computer-readable storage medium of claim 7 , wherein the FPGA has direct memory access.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the direct memory access is provided through bus access to system memory.

16. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions to implement the plurality of updates further comprises instructions to implement the plurality of updates independently of an operating system (OS).

17. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions to implement the plurality of updates further comprises instructions to implement the plurality of updates independently of a basic input/output system (BIOS).

18. A method for performing memory reference code (MRC) training, comprising:

detecting and providing a notification to a field programmable gate array (FPGA)-in-memory-controller (FIMC) driver of a hot plug event;

providing an MRC training request from the FIMC driver to an FPGA comprising an MRC agent;

performing, at the FPGA comprising the MRC agent independent of a unified extensible firmware interface (UEFI) basic input/output system (BIOS) firmware (FW), MRC training;

executing advance configuration power interface (ACPI) procedures based on successful MRC training, wherein the ACPI procedures are specific to the hot plug event; and

updating the FPGA comprising the MRC agent with an update provided by a computing device.

19. The method of claim 18 , wherein the ACPI procedures include mechanisms to perform implementation-specific operations based on the hot plug event.

20. The method of claim 19 , wherein the ACPI procedures include updating a memory map.

21. The method of claim 18 , wherein the update is generated by the computing device by performing machine learning on MRC analytics data from at least the MRC training.

22. The method of claim 18 , further comprising paying to crank-up memory access bandwidth for improved input/output (I/O).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2017
From: POORNACHANDRAN, RAJESH; ZIMMER, VINCENT; SMITH, NED; CHANDRAMOHAN, NADHIYA
To: INTEL CORPORATION
Reel/Frame 041049/0561 →
Continuity (1)
Related Publication 20180203629A1 · Jul 19, 2018