IP Library Granted Patent US 12,197,332
Granted Patent B2
US 12,197,332 · App. 18/584,181 · Granted Jan 14, 2025

Memory pipeline control in a hierarchical memory system

Inventors: Abhijeet Ashok Chachad (Plano, TX); Timothy Anderson (University Park, TX); Kai Chirca (Dallas, TX); David Matthew Thompson (Dallas, TX)
Assignee: Texas Instruments Incorporated
G06F12/0842G06F1/14G06F9/38G06F9/544G06F12/0811G06F12/0888G06F2212/1016
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,197,332
App. No.
18/584,181
Granted
Jan 14, 2025
Kind
B2
Abstract

In described examples, a processor system includes a processor core generating memory transactions, a lower level cache memory with a lower memory controller, and a higher level cache memory with a higher memory controller having a memory pipeline. The higher memory controller is connected to the lower memory controller by a bypass path that skips the memory pipeline. The higher memory controller: determines whether a memory transaction is a bypass write, which is a memory write request indicated not to result in a corresponding write being directed to the higher level cache memory; if the memory transaction is determined a bypass write, determines whether a memory transaction that prevents passing is in the memory pipeline; and if no transaction that prevents passing is determined to be in the memory pipeline, sends the memory transaction to the lower memory controller using the bypass path.

Claims (54)

1. A system, comprising:

a cache memory; and

a first cache controller comprising:

a pipeline associated with the cache memory; and

a bypass path configured to bypass the pipeline,

wherein the first cache controller is configured to:

receive a first transaction;

determine whether a transaction inhibiting use of the bypass path exists in the pipeline;

provide the first transaction to a second cache controller via the bypass path based on determining that no transaction inhibiting use of the bypass path exists in the pipeline;

receive a second transaction subsequent to the first transaction; and

provide the second transaction to the second cache controller via the bypass path without determining whether a transaction inhibiting use of the bypass path exists in the pipeline.

2. The system of claim 1 , wherein the first cache controller is configured to:

determine that a transaction inhibiting use of the bypass path exists in the pipeline; and

based on determining that a transaction inhibiting use of the bypass path exists in the pipeline, delay providing of the first transaction to the second cache controller via the bypass path until the transaction is cleared from the pipeline.

3. The system of claim 1 , wherein:

the cache memory is a level-two (L2) cache memory;

the first cache controller is a level-two (L2) cache controller; and

the second cache controller is a level-three (L3) cache controller.

4. The system of claim 3 , wherein the transaction inhibiting use of the bypass path is a write associated with a level-one (L1) cache.

5. The system of claim 4 , wherein the L1 cache is an L1 data cache.

6. The system of claim 4 , wherein the L1 cache is an L1 victim cache.

7. The system of claim 1 , wherein to provide the first transaction to the second cache controller via the bypass path, the first cache controller is configured to provide the first transaction to the second cache controller via the bypass path based on determining that the first transaction does not specify a write of data to the cache memory, in addition to determining that no transaction inhibiting use of the bypass path exists in the pipeline.

8. The system of claim 7 , wherein the first cache controller is configured to determine whether the first transaction specifies a write of data to the cache memory based on a data payload size associated with the first transaction.

9. The system of claim 1 , wherein:

the first cache controller comprises a first scheduler circuit;

the second cache controller comprises a second scheduler circuit;

the pipeline is configured to couple the first scheduler circuit to the second scheduler circuit; and

the bypass path is configured to couple the first scheduler circuit to the second scheduler circuit.

10. The system of claim 1 , wherein the pipeline comprises a set of banks.

11. A method, comprising:

receiving, at a first cache controller, a first transaction, wherein the first cache controller comprises a pipeline associated with a cache memory and a bypass path that bypasses the pipeline;

determining, using the first cache controller, whether a transaction inhibiting use of the bypass path exists in the pipeline;

providing, from the first cache controller, the first transaction to a second cache controller via the bypass path based on determining that no transaction inhibiting use of the bypass path exists in the pipeline;

receiving, at the first cache controller, a second transaction subsequent to the first transaction; and

providing, from the first cache controller, the second transaction to the second cache controller via the bypass path without determining whether a transaction inhibiting use of the bypass path exists in the pipeline.

12. The method of claim 11 , comprising:

determining that a transaction inhibiting use of the bypass path exists in the pipeline; and

based on determining that a transaction inhibiting use of the bypass path exists in the pipeline, delaying providing of the first transaction to the second cache controller via the bypass path until the transaction is cleared from the pipeline.

13. The method of claim 11 , wherein:

the cache memory is a level-two (L2) cache memory;

the first cache controller is a level-two (L2) cache controller; and

the second cache controller is a level-three (L3) cache controller.

14. The method of claim 13 , wherein the transaction inhibiting use of the bypass path is a write associated with a level-one (L1) cache.

15. The method of claim 14 , wherein the L1 cache is an L1 data cache.

16. The method of claim 14 , wherein the transaction inhibiting use of the bypass path is a write from a L1 victim cache to the L1 cache and is associated with a write-miss.

17. The method of claim 14 , wherein the transaction inhibiting use of the bypass path is a write from a L1 victim cache to the L1 cache and is not associated with a write-miss.

18. The method of claim 11 , wherein providing the first transaction to the second cache controller via the bypass path comprises providing the first transaction to the second cache controller via the bypass path based on determining that the first transaction does not specify a write of data to the cache memory, in addition to determining that no transaction inhibiting use of the bypass path exists in the pipeline.

19. The method of claim 18 , comprising:

determining whether the first transaction specifies a write of data to the cache memory based on a data payload size associated with the first transaction.

20. The method of claim 11 , wherein:

the first cache controller comprises a first scheduler circuit;

the second cache controller comprises a second scheduler circuit;

the pipeline couples the first scheduler circuit to the second scheduler circuit; and

the bypass path couples the first scheduler circuit to the second scheduler circuit.

Continuity (5)
Continuation 18167921 · Feb 13, 2023
Continuation 17492776 · Oct 4, 2021
Continuation 16879264 · May 20, 2020
Provisional Application 62852480 · May 24, 2019
Related Publication 20240193087A1 · Jun 13, 2024
References Cited (17)
US 6161208A · Dutton · 2000 [cited by examiner]
US 8463941B1 · Welch et al. · 2013 [cited by applicant]
US 8930309B2 · Dash · 2015 [cited by applicant]
US 9223710B2 · Alameldeen et al. · 2015 [cited by applicant]
US 9842053B2 · Joshi et al. · 2017 [cited by applicant]
US 10073778B1 · Agarwal et al. · 2018 [cited by applicant]
US 20100100683A1 · Guthrie et al. · 2010 [cited by applicant]
US 20120191913A1 · Damodaran et al. · 2012 [cited by applicant]
US 20120260031A1 · Chachad et al. · 2012 [cited by applicant]
US 20130036337A1 · Venkatasubramanian et al. · 2013 [cited by applicant]
US 20130226870A1 · Dash · 2013 [cited by applicant]
US 20140108730A1 · Avudaiyappan et al. · 2014 [cited by applicant]
US 20140281131A1 · Joshi et al. · 2014 [cited by applicant]
US 20150178204A1 · Ray et al. · 2015 [cited by applicant]
US 20190129850A1 · Chang et al. · 2019 [cited by applicant]
International Search Report for PCT/US2020/034498 mailed Aug. 13, 2020. [cited by applicant]
International Search Report for PCT/US2020/034507 mailed Aug. 20, 2020. [cited by applicant]