IP Library › Granted Patent US 12,657,135
Granted Patent B2
US 12,657,135 · App. 18/907,746 · Granted Jun 16, 2026

Methods and apparatus for inflight data forwarding and invalidation of pending writes in store queue

Inventors: Naveen Bhoria (Plano, TX); Timothy David Anderson (University Park, TX); Pete Michael Hippleheuser (Murphy, TX)
Assignee: Texas Instruments Incorporated
G06F12/128G06F9/3001G06F9/30043G06F9/30047G06F9/546G06F11/1064G06F12/0215G06F12/0238G06F12/0292G06F12/0802G06F12/0804G06F12/0806G06F12/0811G06F12/0815G06F12/082G06F12/0853G06F12/0855G06F12/0864G06F12/0884G06F12/0888G06F12/0891G06F12/0895G06F12/0897G06F12/1027G06F12/12G06F12/121G06F12/126G06F12/127G06F13/1605G06F13/1642G06F13/1673G06F13/1689G06F15/8069G11C5/066G11C7/10G11C7/1015G11C7/106G11C7/1075G11C7/1078G11C7/1087G11C7/222G11C29/42G11C29/44G06F2212/1016G06F2212/1021G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/301G06F2212/454G06F2212/603G06F2212/6032G06F2212/6042G06F2212/608G06F2212/62
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,657,135
App. No.
18/907,746
Granted
Jun 16, 2026
Kind
B2
Abstract

Methods, apparatus, systems and articles of manufacture are disclosed to forward and invalidate inflight data in a store queue. An example apparatus includes a cache storage, a cache controller coupled to the cache storage and operable to receive a first memory operation, determine that the first memory operation corresponds to a read miss in the cache storage, determine a victim address in the cache storage to evict in response to the read miss, issue a read-invalidate command that specifies the victim address, compare the victim address to a set of addresses associated with a set of memory operations being processed by the cache controller, and in response to the victim address matching a first address of the set of addresses corresponding to a second memory operation of the set of memory operations, provide data associated with the second memory operation.

Claims (67)

1 . A system, comprising:

a cache memory; and

a store queue coupled to the cache memory and configured to:

receive data associated with a first address that is specified to be stored by an instruction;

receive a second address associated with an eviction from the cache memory; and

prior to completing storage of the data to the cache memory,

determine whether the first address matches the second address; and

based on the first address matching the second address, discontinue the storage of the data to the cache memory.

2 . The system of claim 1 , wherein the store queue is configured to:

receive a set of addresses that includes the first address; and

compare the second address to each of the set of addresses to determine whether any of the set of addresses, including the first address, matches the second address.

3 . The system of claim 1 , wherein:

the cache memory is a main cache memory;

the system further comprises a victim cache memory; and

the store queue is configured to, based on the first address matching the second address, provide the data for storage to the victim cache memory.

4 . The system of claim 3 , wherein:

the store queue includes a set of pipeline stages;

each stage of the set of pipeline stages includes a respective set of latches; and

the store queue includes a multiplexer that includes a respective input coupled to each set of latches of the sets of latches of the set of pipeline stages and an output configured to provide the data for storage to the victim cache memory.

5 . The system of claim 1 , wherein:

the cache memory is a level one (L1) cache memory;

the system further comprises a level two (L2) cache memory; and

the store queue is configured to, based on the first address and the second address being the same, provide the data for storage to the L2 cache memory.

6 . The system of claim 5 , wherein:

the store queue includes a set of pipeline stages;

each stage of the set of pipeline stages includes a respective set of latches; and

the store queue includes a multiplexer that includes a respective input coupled to each set of latches of the sets of latches of the set of pipeline stages and an output configured to provide the data for storage to the L2 cache memory.

7 . The system of claim 1 , further comprising:

a cache controller coupled to the cache memory and to the store queue and configured to:

receive a read instruction;

determine that the read instruction corresponds to a miss in the cache memory; and

based on the read instruction corresponding to the miss, determine the eviction from the cache memory.

8 . The system of claim 7 , further comprising:

a tag memory coupled to the cache controller,

wherein the cache controller is configured to determine that the read instruction corresponds to the miss in the cache memory based on the tag memory.

9 . The system of claim 1 , wherein the instruction is a write instruction.

10 . The system of claim 1 , wherein the store queue is configured to receive the second address by receiving a read-invalidate instruction that specifies the second address.

11 . A method, comprising:

receiving, by a store queue, data associated with a first address that is specified to be stored by an instruction;

receiving, by the store queue, a second address associated with an eviction from a cache memory; and

prior to completing storage of the data to the cache memory,

determining whether the first address matches the second address; and

based on the first address matches the second address, discontinuing the storage of data to the cache memory.

12 . The method of claim 11 , further comprising:

receiving a set of addresses including the first address; and

comparing the second address to each of the set of address to determine whether any of the set of addresses, including the first address, matches the second address.

13 . The method of claim 11 , wherein:

the cache memory is a main cache memory; and

the method further comprises, based on the first address matches the second address, forwarding the data for storage to a victim cache memory.

14 . The method of claim 13 , wherein:

the store queue includes a set of pipeline stages;

each stage of the set of pipeline stages includes a respective set of latches; and

the store queue includes a multiplexer that includes a respective input coupled to each set of latches of the sets of latches of the set of pipeline stages and an output coupled to the victim cache memory so as to forward the data for storage to the victim cache memory.

15 . The method of claim 11 , wherein:

the cache memory is a level one (L1) cache memory; and

the method further comprises, based on the first address matches the second address are, forwarding the data for storage to a level two (L2) cache memory.

16 . The method of claim 15 , wherein:

the store queue includes a set of pipeline stages;

each stage of the set of pipeline stages includes a respective set of latches; and

the store queue includes a multiplexer that includes a respective input coupled to each set of latches of the sets of latches of the set of pipeline stages and an output coupled to the L2 cache memory so as to forward the data for storage to the L2 cache memory.

17 . The method of claim 11 , further comprising:

receiving a read instruction;

determining whether the read instruction corresponds to a miss in the cache memory; and

based on the read instruction corresponding to the miss in the cache memory, determining the eviction from the cache memory.

18 . The method of claim 17 , wherein determining whether the read instruction corresponds to the miss comprises determining whether the read instruction corresponds to the miss based on a tag memory.

19 . The method of claim 11 , wherein the instruction is a write instruction.

20 . The method of claim 11 , wherein receiving the second address comprises receiving the second address by receiving a read-invalidate instruction that specifies the second address.

Continuity (4)
Continuation 18305437 · Apr 24, 2023
Continuation 16882252 · May 22, 2020
Provisional Application 62852494 · May 24, 2019
Related Publication 20250028645A1 · Jan 23, 2025
References Cited (3)
US 6085294A · Van Doren et al. · 2000 [cited by applicant]
US 20190034349A1 · Mcavoy et al. · 2019 [cited by applicant]
US 20190354489A1 · Gupta et al. · 2019 [cited by applicant]