IP Library Granted Patent US 11,099,993
Granted Patent B2
US 11,099,993 · App. 16/601,913 · Granted Aug 24, 2021

Multi-processor bridge with cache allocate awareness

Inventors: Kai Chirca (Dallas, TX); Daniel Wu (Plano, TX); Matthew David Pierson (Frisco, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F12/084G06F3/064G06F3/0604G06F3/0607G06F3/0632G06F3/0658G06F3/0659G06F3/0673G06F3/0679G06F9/30101G06F9/30123G06F9/3897G06F9/4881G06F9/5016G06F12/0607G06F12/0811G06F12/0815G06F12/0828G06F12/0831G06F12/0855G06F12/0857G06F12/0875G06F12/0891G06F12/10G06F12/1009G06F13/124G06F13/1642G06F13/1663G06F13/1668G06F13/4027H03M13/015H03M13/098H03M13/1575H03M13/276H03M13/2785G06F2212/1008G06F2212/1016G06F2212/1024G06F2212/304G06F2212/452G06F2212/657
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,099,993
App. No.
16/601,913
Granted
Aug 24, 2021
Kind
B2
Abstract

Techniques for loading data, comprising receiving a memory management command to perform a memory management operation to load data into the cache memory before execution of an instruction that requests the data, formatting the memory management command into one or more instruction for a cache controller associated with the cache memory, and outputting an instruction to the cache controller to load the data into the cache memory based on the memory management command.

Claims (47)

1. A processing system comprising:

one or more processors;

one or more memories, including a cache memory coupled to the one or more processors; and

a memory controller comprising:

circuitry configured to receive a memory management command to perform a memory management operation to load data into a first memory location of the cache memory before a first process of a plurality of processes executes an input/output instruction that requests the data from the one or more memories;

circuitry configured to format the memory management command into one or more instruction for a cache controller associated with the cache memory; and

memory access circuitry configured to output an instruction to the cache controller to load the data into the first memory location of the cache memory based on the memory management command;

wherein the memory controller is configured to determine, based on an identifier, a correlation of one or more of the plurality of processes with input/output requests to the one or more memories;

wherein the memory controller is configured to determine, based on the correlation, if the one or more memories storing the data is being accessed by one of the plurality of processes other than the first process; and

wherein in response to the one or more memories storing the data being accessed by one of the plurality of processes other than the first process, the memory controller is configured to stall the memory management operation to load the data into the first memory location of the cache memory.

2. The processing system of claim 1 , wherein the processing system includes two or more processors and the cache memory is a shared level 2 cache of the two or more processors.

3. The processing system of claim 2 , further comprising:

circuitry configured to receive a response indicating the data was loaded into the shared level 2 cache; and

circuitry configured to output an event based on the response.

4. The processing system of claim 2 , wherein the processing system further comprises a bridge coupling the two or more processors to the memory controller; and wherein the two or more processors are in a separate clock domain from the memory controller.

5. The processing system of claim 1 , wherein the cache memory comprises an internal cache memory of the memory controller.

6. The processing system of claim 3 , wherein the circuitry configured to receive the response is further configured to discard the response.

7. The processing system of claim 1 , wherein the memory management command includes a virtual memory address and wherein the memory controller further includes address translation circuitry configured to translate the virtual memory address to a physical memory address, wherein the physical memory address comprises an address within the cache memory.

8. The processing system of claim 1 , wherein:

the memory management command contains an indication that the data is owned; and

the correlation includes one or more tables.

9. A memory controller comprising:

circuitry configured to receive a memory management command to perform a memory management operation to load data into a first memory location of a cache memory coupled to one or more processors before a first process of a plurality of processes executes an input/output instruction that requests the data from one or more memories;

circuitry configured to format the memory management command into one or more instruction for a cache controller associated with the cache memory; and

memory access circuitry configured to output an instruction to the cache controller to load the data into the first memory location of the cache memory based on the memory management command;

wherein the memory controller is configured to determine, based on an identifier, a correlation of one or more of the plurality of processes with input/output requests to the one or more memories;

wherein the memory controller is configured to determine, based on the correlation, if the one or more memories storing the data is being accessed by one of the plurality of processes other than the first process; and

wherein in response to the one or more memories storing the data being accessed by one of the plurality of processes other than the first process, the memory controller is configured to stall the memory management operation to load the data into the first memory location of the cache memory.

10. The memory controller of claim 9 , wherein the cache memory is coupled to two or more processors and the cache memory is a shared level 2 cache of the two or more processors.

11. The memory controller of claim 10 , further comprising:

circuitry configured to receive a response indicating the data was loaded into the shared level 2 cache; and

circuitry configured to output an event based on the response.

12. The memory controller of claim 10 , wherein the memory controller is coupled to a bridge coupling the two or more processors to the memory controller; and wherein the two or more processors are in a separate clock domain from the memory controller.

13. The memory controller of claim 9 , wherein the cache memory comprises an internal cache memory of the memory controller.

14. The memory controller of claim 11 , wherein the circuitry configured to receive the response is further configured to discard the response.

15. The memory controller of claim 9 , wherein the memory management command includes a virtual memory address and wherein the memory controller further includes address translation circuitry configured to translate the virtual memory address to a physical memory address, wherein the physical memory address comprises an address within the cache memory.

16. The memory controller of claim 9 , wherein:

the memory management command contains an indication that the data is owned; and

the correlation includes one or more tables.

17. A method for loading data, comprising:

receiving a memory management command to perform a memory management operation to load data into a first memory location of the g cache memory before a first process of a plurality of processes of executes an input/output instruction that requests the data from one or more memories;

formatting the memory management command into one or more instruction for a cache controller associated with the cache memory;

outputting an instruction to the cache controller to load the data into the first memory location of the cache memory based on the memory management command;

determining, based on an identifier, a correlation of one or more of the plurality of processes with input/output requests to the one or more memories;

determining, based on the correlation, if the one or more memories storing the data is being accessed by one of the plurality of processes other than the first process; and

wherein in response to the one or more memories storing the data being accessed by one of the plurality of processes other than the first process, stalling the memory management operation to the cache controller to load the data into the first memory location of the cache memory.

18. The method of claim 17 , further comprising receiving a response from the cache memory indicating the data was loaded.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2019
From: CHIRCA, KAI; WU, DANIEL; PIERSON, MATTHEW DAVID
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 050780/0841 →
Continuity (2)
Provisional Application 62745842 · Oct 15, 2018
Related Publication 20200117395A1 · Apr 16, 2020