IP Library Granted Patent US 11,500,674
Granted Patent B2
US 11,500,674 · App. 16/019,338 · Granted Nov 15, 2022

Circuitry with adaptive memory assistance capabilities

Inventors: Robert L. Pelt (Austin, TX); Hong Wang (Santa Clara, CA); Arifur Rahman (Santa Clara, CA)
Assignee: Intel Corporation
G06F9/4881G06F8/445G06F8/4442G06F9/44505G06F9/5016G06F9/52G06F12/0811G06F12/0862G06F12/0871G06F12/0888G06F12/126G06F30/30G06F30/327G06F30/34G06F2212/1016G06F2212/601
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,500,674
App. No.
16/019,338
Granted
Nov 15, 2022
Kind
B2
Abstract

A system for running one or more applications is provided. Each application may require memory services that can be accelerated using configurable memory assistance circuits associated with different levels of a memory hierarchy. Integrated circuit design tools may be used to generate configuration data for programming the configurable memory assistance circuits. During compile time, the design tools may identify memory service patterns in a source code, match the identified memory service patterns to corresponding templates, parameterize the matching templates, and then synthesize the parameterized templates to produce the configuration data. During run time, a memory assistance scheduler may map the memory services required by each application to available memory assistance circuits in the system. The mapped memory assistance circuits are programmed by the configuration data to provide the desired memory service capability.

Claims (48)

1. A system, comprising:

a processor used to run an application;

a first cache memory coupled to the processor, wherein the application issues a memory service request to the first cache memory; and

a programmable memory assistance circuit configured to accelerate the memory service request for the application,

wherein the memory service request issued by the application comprises a memory barrier service that comprises an application isolation operation for preventing the application from accessing a second cache memory associated with other applications running on the system, and wherein a library of predetermined memory service templates comprises a template for the memory barrier service.

2. The system of claim 1 , further comprising:

a third cache memory coupled to the processor, wherein the application issues an additional memory service request to the third cache memory, and wherein the memory service request and the additional memory service request are different types of memory service requests; and

an additional programmable memory assistance circuit configured to accelerate the additional memory service request for the application.

3. The system of claim 2 , wherein the first cache memory comprises a cache of a first level, and wherein the third cache memory comprises a cache of a second level different than the first level.

4. The system of claim 1 , further comprising:

an additional processor used to run an additional application;

a third cache memory coupled to the additional processor, wherein the additional application issues an additional memory service request to the third cache memory; and

an additional programmable memory assistance circuit configured to accelerate the additional memory service request for the additional application.

5. The system of claim 1 , wherein the memory service request issued by the application comprises a memory movement service for moving data from the first cache memory to another location in the system.

6. The system of claim 5 , wherein the memory movement service comprises a memory prefetch operation for retrieving data blocks with a size determined by the application.

7. The system of claim 1 , wherein the memory barrier service monitors and controls access to the first cache memory.

8. The system of claim 1 further comprising:

an additional processor used to run an additional application.

9. The system of claim 1 , wherein the memory service request issued by the application comprises a memory maintenance service for governing policies for the first cache memory.

10. The system of claim 9 , wherein the memory maintenance service comprises setting a cache replacement policy for determining data priority when memory access conflicts arise at the first cache memory.

11. The system of claim 1 , wherein the memory service request issued by the application comprises a memory computation service for performing computations on data stored at the first cache memory.

12. The system of claim 11 , wherein the memory computation service comprises a matching operation for comparing the data stored at the first cache memory to a predetermined pattern.

13. A method for implementing a system that includes a processor that issues a memory service request to a cache, the method comprising:

obtaining a source code;

identifying opportunities for memory assistance by detecting a candidate memory service pattern in the source code;

matching the candidate memory service pattern to a selected memory service template in a library of predetermined memory service templates; and

using the candidate memory service pattern to generate configuration data for programming a memory assistance circuit in the system, wherein the memory assistance circuit is configured to accelerate the memory service request at the cache.

14. The method of claim 13 , wherein the library of predetermined memory service templates comprises at least a selected one of: a memory movement service template, a memory barrier service template, a memory maintenance service template, and a memory computation service template.

15. The method of claim 14 , further comprising:

extracting parameters from the source code;

using the extracted parameters to parameterize the selected memory service template to generate a parameterized memory service template; and

generating the configuration data based on the parameterized memory service template.

16. The method of claim 13 , further comprising:

using the source code to generate an executable file that controls the processor at runtime; and

combining the executable file with the configuration data.

17. A method of operating a system having a central processing unit (CPU) that communicates with a cache, the method comprising:

receiving an application startup request for an application;

interrogating the application to gather application resource requirements;

sending the application resource requirements to a memory assistance scheduler;

using the memory assistance scheduler to map the application resource requirements to corresponding memory assistance circuits on the system, wherein the memory assistance circuits are configured to accelerate memory service requests for the application at the cache;

assessing, using the memory assistance scheduler, existing hardware resources on the system to determine what types of the memory assistance circuits are physically present and to determine whether the physically present memory assistance circuits are in use by another application; and

using the CPU to run the application.

18. The method of claim 17 , further comprising:

reviewing, using the memory assistance scheduler, the application resource requirements to determine how many of the memory assistance circuits are required and a required location of each of the memory assistance circuits in the system.

19. The method of claim 18 , further comprising:

notifying, using the memory assistance scheduler, an operating system about whether resources required by the application are available.

20. The method of claim 17 , further comprising:

reprioritizing existing applications running on the system to free up at least one memory assistance circuit currently in use by one of the existing applications to help meet the application resource requirements of the application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2026
From: INTEL CORPORATION
To: INTEL PRODUCTS IP LLC
Reel/Frame 076025/0828 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2018
From: PELT, ROBERT L.; WANG, HONG; RAHMAN, ARIFUR
To: INTEL CORPORATION
Reel/Frame 046858/0011 →
Continuity (1)
Related Publication 20190042306A1 · Feb 7, 2019