IP Library › Granted Patent US 11,294,707
Granted Patent B2
US 11,294,707 · App. 16/882,365 · Granted Apr 5, 2022

Global coherence operations

Inventors: Abhijeet Ashok Chachad (Plano, TX); Naveen Bhoria (Plano, TX); David Matthew Thompson (Dallas, TX); Neelima Muralidharan (Murphy, TX)
Assignee: Texas Instruments Incorporated
G06F9/467G06F9/30047G06F9/30079G06F9/30098G06F9/30101G06F9/30189G06F9/3867G06F9/4498G06F9/4881G06F9/544G06F11/3037G06F12/0811G06F12/0813G06F12/0824G06F12/0828G06F12/0831G06F12/0855G06F12/0871G06F12/0888G06F12/0891G06F12/12G06F13/1668G06F12/0804G06F12/121G06F2212/1016G06F2212/1044G06F2212/621
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,294,707
App. No.
16/882,365
Granted
Apr 5, 2022
Kind
B2
Abstract

A method includes receiving, by a L2 controller, a request to perform a global operation on a L2 cache and preventing new blocking transactions from entering a pipeline coupled to the L2 cache while permitting new non-blocking transactions to enter the pipeline. Blocking transactions include read transactions and non-victim write transactions. Non-blocking transactions include response transactions, snoop transactions, and victim transactions. The method further includes, in response to an indication that the pipeline does not contain any pending blocking transactions, preventing new snoop transactions from entering the pipeline while permitting new response transactions and victim transactions to enter the pipeline; in response to an indication that the pipeline does not contain any pending snoop transactions, preventing, all new transactions from entering the pipeline; and, in response to an indication that the pipeline does not contain any pending transactions, performing the global operation on the L2 cache.

Claims (53)

1. A method, comprising:

receiving, by a level two (L2) controller, a request to perform a global operation on a L2 cache;

preventing, by the L2 controller, new blocking transactions from entering a pipeline coupled to the L2 cache while permitting new non-blocking transactions to enter the pipeline;

wherein blocking transactions comprise read transactions and non-victim write transactions;

wherein non-blocking transactions comprise response transactions, snoop transactions, and victim transactions;

the method further comprising:

in response to an indication that the pipeline does not contain any pending blocking transactions, preventing, by the L2 controller, new snoop transactions from entering the pipeline while permitting new response transactions and victim transactions to enter the pipeline;

in response to an indication that the pipeline does not contain any pending snoop transactions, preventing, by the L2 controller, all new transactions from entering the pipeline; and

in response to an indication that the pipeline does not contain any pending transactions, performing, by the L2 controller, the global operation on the L2 cache.

2. The method of claim 1 , wherein the L2 cache comprises a plurality of banks, each bank coupled to an associated pipeline, the method further comprising performing the global operation on the plurality of banks in parallel in response to an indication that each pipeline does not contain any pending transactions.

3. The method of claim 1 , wherein the global operation comprises invalidating each cache line in the L2 cache.

4. The method of claim 1 , wherein the global operation comprises writing back cache lines in the L2 cache having a modified cache coherence state.

5. The method of claim 4 , wherein the global operation further comprises invalidating each cache line in the L2 cache after writing back the cache lines having a modified cache coherence state.

6. The method of claim 4 , wherein the global operation further comprises, after writing back the cache lines having a modified coherence state, updating the cache coherence state of those lines to a shared cache coherence state.

7. The method of claim 1 , wherein the global operation comprises querying and updating a cache coherence state associated with each cache line in the L2 cache.

8. The method of claim 1 , further comprising initiating the global operation by asserting, by an application executing on a central processing unit (CPU) core coupled to the L2 controller, a field of a control register.

9. The method of claim 8 , further comprising polling, by the application, the field of the control register to determine that the global operation is complete.

10. An apparatus, comprising:

a central processing unit (CPU) core;

a level one (L1) cache subsystem coupled to the CPU core, the L1 cache subsystem comprising:

a L1 cache;

a L1 controller; and

a level two (L2) cache subsystem coupled to the L1 cache subsystem, the L2 cache subsystem comprising:

a L2 cache; and

a L2 controller configured to:

receive a request to perform a global operation on the L2 cache;

prevent new blocking transactions from entering a pipeline coupled to the L2 cache and permit new non-blocking transactions to enter the pipeline;

wherein blocking transactions comprise read transactions and non-victim write transactions;

wherein non-blocking transactions comprise response transactions, snoop transactions, and victim transactions;

the L2 controller further configured to:

in response to an indication that the pipeline does not contain any pending blocking transactions, prevent new snoop transactions from entering the pipeline and permit new response transactions and victim transactions to enter the pipeline;

in response to an indication that the pipeline does not contain any pending snoop transactions, prevent all new transactions from entering the pipeline; and

in response to an indication that the pipeline does not contain any pending transactions, perform the global operation on the L2 cache.

11. The apparatus of claim 10 , wherein the L2 cache comprises a plurality of banks, each bank coupled to an associated pipeline, the L2 controller further configured to: perform the global operation on the plurality of banks in parallel in response to an indication that each pipeline does not contain any pending transactions.

12. The apparatus of claim 10 , wherein the global operation comprises invalidating each cache line in the L2 cache.

13. The apparatus of claim 10 , wherein the global operation comprises writing back cache lines in the L2 cache having a modified cache coherence state.

14. The apparatus of claim 13 , wherein the global operation further comprises invalidating each cache line in the L2 cache after writing back the cache lines having a modified cache coherence state.

15. The apparatus of claim 13 , wherein the global operation further comprises, after writing back the cache lines having a modified coherence state, updating the cache coherence state of those lines to a shared cache coherence state.

16. The apparatus of claim 10 , wherein the global operation comprises querying and updating a cache coherence state associated with each cache line in the L2 cache.

17. The apparatus of claim 10 , further comprising initiating the global operation by asserting, by an application executing on a central processing unit (CPU) core coupled to the L2 controller, a field of a control register.

18. The apparatus of claim 17 , further comprising polling, by the application, the field of the control register to determine that the global operation is complete.

19. A level two (L2) cache subsystem, comprising:

a L2 cache; and

a L2 controller configured to:

receive a request to perform a global operation on the L2 cache; and

prevent new blocking transactions from entering a pipeline coupled to the L2 cache and permit new non-blocking transactions to enter the pipeline;

wherein blocking transactions comprise read transactions and non-victim write transactions;

wherein non-blocking transactions comprise response transactions, snoop transactions, and victim transactions;

the L2 controller further configured to:

in response to an indication that the pipeline does not contain any pending blocking transactions, prevent new snoop transactions from entering the pipeline and permit new response transactions and victim transactions to enter the pipeline;

in response to an indication that the pipeline does not contain any pending snoop transactions, prevent all new transactions from entering the pipeline; and

in response to an indication that the pipeline does not contain any pending transactions, perform the global operation on the L2 cache.

20. The L2 cache subsystem of claim 19 , wherein the L2 cache comprises a plurality of banks, each bank coupled to an associated pipeline, the L2 controller further configured to: perform the global operation on the plurality of banks in parallel in response to an indication that each pipeline does not contain any pending transactions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2020
From: CHACHAD, ABHIJEET ASHOK; BHORIA, NAVEEN; THOMPSON, DAVID MATTHEW; MURALIDHARAN, NEELIMA
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 053868/0531 →
Continuity (2)
Provisional Application 62852461 · May 24, 2019
Related Publication 20200371926A1 · Nov 26, 2020
Cited By (3)
US 12,613,731 US 12,675,312 US 12,699,589