IP Library Granted Patent US 12,360,843
Granted Patent B2
US 12,360,843 · App. 17/364,620 · Granted Jul 15, 2025

Multicore shared cache operation engine

Inventors: Kai Chirca (Dallas, TX); Timothy David Anderson (University Park, TX); Joseph Zbiciak (San Jose, CA); David E. Smith (Allen, TX); Matthew David Pierson (Frisco, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
G06F3/0604G06F3/0607G06F3/0632G06F3/064G06F3/0658G06F3/0659G06F3/0673G06F3/0679G06F9/30101G06F9/30123G06F9/3897G06F9/4881G06F9/5016G06F12/0607G06F12/0811G06F12/0815G06F12/0828G06F12/0831G06F12/084G06F12/0855G06F12/0857G06F12/0875G06F12/0891G06F12/10G06F12/1009G06F13/124G06F13/1642G06F13/1663G06F13/1668G06F13/4027H03M13/015H03M13/098H03M13/1575H03M13/276H03M13/2785G06F12/0833G06F12/0846G06F12/0851G06F12/0862G06F2212/1008G06F2212/1016G06F2212/1024G06F2212/1048G06F2212/304G06F2212/452G06F2212/6024G06F2212/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 12,360,843
App. No.
17/364,620
Granted
Jul 15, 2025
Kind
B2
Abstract

Techniques for accessing memory by a memory controller, comprising receiving, by the memory controller, a memory management command to perform a memory management operation at a virtual memory address, translating the virtual memory address to a physical memory address, wherein the physical memory address comprises an address within a cache memory, and outputting an instruction to the cache memory based on the memory management command and the physical memory address.

Claims (40)

1. A circuit comprising:

a memory mapped register configured to receive a memory access command;

a buffer coupled to the memory mapped register and configured to store the memory access command;

a trigger control channel configured to receive a trigger event associated with the memory access command and in response to the trigger control channel receiving the trigger event:

obtain the memory access command; and

load the memory access command into a subtiler, wherein the subtiler is configured to translate the memory access command into an instruction associated with a physical memory location; and

a queue configured to receive the instruction and output the instruction to a memory associated with the physical memory location.

2. The circuit of claim 1 , wherein:

the memory access command includes one of a transfer request (TR) command to move data from a source location to a destination location, and a cache request command to send messages to prewarm a specified cache.

3. The circuit of claim 2 , further comprising a packet streaming interface link coupled to the buffer and configured to receive a second memory access command.

4. The circuit of claim 1 , wherein:

the memory mapped register is configured to perform one of a validity check, a channel ownership check, and a fullness check of the buffer.

5. The circuit of claim 2 , wherein:

the TR command is a single 64 byte TR command; and

the memory mapped register includes an atomic submission register configured to receive the TR command and store the TR command in the buffer.

6. The circuit of claim 2 , wherein:

the memory mapped register includes a non-atomic submission register configured to receive the TR command over multiple clock cycles and store the TR command in the buffer.

7. The circuit of claim 1 , wherein:

the trigger event includes one of a local event and a global event; and

the local event is associated with a return status message indicating a result of a previous TR command to the memory access command.

8. The circuit of claim 1 , wherein:

in response to the memory access command exceeding a threshold size, the subtiler is configured to break up the memory access command into a subset of instructions.

9. The circuit of claim 1 , wherein:

the queue includes one of a priority queue and a round robin queue.

10. A circuit comprising:

a plurality of interfaces configured to receive a memory access command, wherein the plurality of interfaces includes a memory mapped register and a packet streaming interface;

a buffer coupled to the plurality of interfaces and configured to store the memory access command;

a trigger control channel configured to receive a trigger event associated with the memory access command, wherein a trigger control channel configuration indicates which of the plurality of interfaces is used to obtain the memory access command, and in response to the trigger control channel receiving the trigger event:

obtain the memory access command; and

load the memory access command into a subtiler, wherein the subtiler is coupled to the buffer and configured to translate the memory access command into an instruction associated with a physical memory location; and

a queue coupled to the subtiler and configured to receive the instruction and output the instruction to a memory associated with the physical memory location.

11. The circuit of claim 10 , wherein the memory mapped register is configured to perform one of a validity check, a channel ownership check, and a fullness check of the buffer.

12. The circuit of claim 10 , wherein the memory mapped register includes an atomic submission register configured to receive a transfer request (TR) command and store the TR command in the buffer.

13. The circuit of claim 12 , wherein the TR command includes a single 64-byte command.

14. The circuit of claim 10 , wherein the memory mapped register includes a non-atomic submission register configured to receive a transfer request (TR) command over multiple clock cycles and store the TR command in the buffer.

15. The circuit of claim 10 , wherein:

the trigger event includes one of a local event and a global event; and

the local event is associated with a return status message indicating a result of a previous TR command to the memory access command.

16. The circuit of claim 10 , wherein in response to the memory access command exceeding a threshold size, the subtiler is configured to break up the memory access command into a subset of instructions.

17. The circuit of claim 10 , wherein the queue includes a priority queue or a round robin queue.

Continuity (3)
Continuation 16601813 · Oct 15, 2019
Provisional Application 62745842 · Oct 15, 2018
Related Publication 20210326260A1 · Oct 21, 2021
References Cited (18)
US 6138173A · Hisano · 2000 [cited by examiner]
US 7200734B2 · Hyser · 2007 [cited by applicant]
US 7788467B2 · Hatakeyama · 2010 [cited by examiner]
US 8281075B2 · Arimilli · 2012 [cited by examiner]
US 8627312B2 · Weber · 2014 [cited by applicant]
US 8732370B2 · Chirca et al. · 2014 [cited by applicant]
US 8793426B2 · Lundstrum · 2014 [cited by examiner]
US 8824236B2 · Morimoto · 2014 [cited by examiner]
US 8880809B2 · Loh et al. · 2014 [cited by applicant]
US 9152586B2 · Wu et al. · 2015 [cited by applicant]
US 9298665B2 · Pierson et al. · 2016 [cited by applicant]
US 9652404B2 · Pierson et al. · 2017 [cited by applicant]
US 20080091886A1 · Terakawa · 2008 [cited by examiner]
US 20130019069A1 · Yamashita et al. · 2013 [cited by applicant]
US 20160140356A1 · Tasher · 2016 [cited by examiner]
US 20180285290A1 · Luan et al. · 2018 [cited by applicant]
US 20200081655A1 · Hsiao · 2020 [cited by examiner]
US 20210200695A1 · Magro · 2021 [cited by examiner]