IP Library Granted Patent US 10,540,283
Granted Patent B2
US 10,540,283 · App. 15/400,167 · Granted Jan 21, 2020

Coherence de-coupling buffer

Inventor: Guillermo J. Rozas (Los Gatos, CA)
Assignee: Facebook, Inc.
G06F12/0815G06F12/084G06F12/0808G06F12/0831G06F12/128G06F12/0817G06F12/0822G06F2212/1008G06F2212/1021
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 10,540,283
App. No.
15/400,167
Granted
Jan 21, 2020
Kind
B2
Abstract

A coherence decoupling buffer. In accordance with a first embodiment, a coherence decoupling buffer is for storing tag information of cache lines evicted from a plurality of cache memories. A coherence decoupling buffer may be free of value information of the plurality of cache memories. A coherence decoupling buffer may also be combined with a coherence memory.

Claims (31)

1. A method comprising: receiving a communication from a remote source to a local caching agent that is configured to interact with a local cache memory; initiating a responsive action to the communication by using a coherence memory and a coherence decoupling buffer, which are each configured to filter different types of communications from the remote source to the local caching agent, the coherence decoupling buffer being configured to filter queries to cache lines that are known not to be included within the local cache memory, and the coherence memory being configured to filter read-only queries for cache lines that are already contained within the local cache memory, preventing such read-only queries from being sent to the local cache memory; and upon determining that communication from the remote source to the local caching agent was unfiltered by the coherence decoupling buffer and the coherence memory, propagating the communication to the local caching agent to perform the responsive acting in the local cache memory.

2. The method of claim 1 , wherein the communication comprises status information of a cache line including a cache line tag comprising the status information.

3. The method of claim 2 , wherein the status information comprises permission information associated with a cache coherence protocol.

4. The method of claim 3 , wherein the cache coherence protocol comprises MESI (Modified, Exclusive, Shared, Invalid).

5. The method of claim 2 , wherein said initiating a responsive action to the communication comprises:

determining whether first cache line tag content of the coherence memory includes the cache line tag;

if the cache line tag is not in the coherence memory, determining whether second cache line tag content of the coherence decoupling buffer includes the cache line tag; and

if the coherence memory or the coherence decoupling buffer includes the cache line tag and is sufficient for the responsive action, completing the responsive action to the communication.

6. The method of claim 5 , wherein the first cache line tag content of the coherence memory comprises cache line tags stored in at least one local cache memory associated with the local caching agent.

7. The method of claim 6 , wherein the second cache line tag content of the coherence decoupling buffer comprises evicted cache line tags of cache lines evicted from the at least one local cache memory in response to unavailability of space for a new cache line in the at least one local cache memory.

8. A method comprising: receiving a cache line status message from a remote source to a local caching agent, the local caching agent being configured to interact with a local cache memory; initiating a responsive action to the cache line status message by using cache line tag content associated with the local caching agent and stored in a coherence memory and a coherence decoupling buffer, wherein the coherence memory and the coherence decoupling buffer are each configured to filter different types of cache line status messages from the remote source to the local caching agent, the coherence decoupling buffer being configured to filter queries to cache lines that are known not to be included within the local cache memory, and the coherence memory being configured to filter read-only queries for cache lines that are already contained within the local cache memory, preventing such read-only queries from being sent to the local cache memory; and upon determining that at least one of the cache line status messages from the remote source to the local caching agent was not filtered by the coherence decoupling buffer and the coherence memory, propagating the cache line status message to the local caching agent to perform the responsive action in the local cache memory.

9. The method of claim 8 , wherein the cache line status message comprises status information of a cache line including a cache line tag comprising the status information.

10. The method of claim 9 , wherein the status information comprises permission information associated with a cache coherence protocol.

11. The method of claim 10 , wherein the cache coherence protocol comprises MESI (Modified, Exclusive, Shared, Invalid).

12. The method of claim 9 , wherein said initiating a responsive action to the cache line status message comprises:

determining whether the cache line tag content stored in the coherence memory includes the cache line tag;

if the cache line tag is not stored in the coherence memory, determining whether the cache line tag content stored in the coherence decoupling buffer includes the cache line tag; and

if the coherence memory or the coherence decoupling buffer stores the cache line tag and is sufficient for the responsive action, completing the responsive action to the cache line status message.

13. The method of claim 12 , wherein the cache line tag content stored in the coherence memory comprises cache line tags stored in at least one local cache memory associated with the local caching agent.

14. The method of claim 13 , wherein the cache line tag content stored in the coherence decoupling buffer comprises evicted cache line tags of cache lines evicted from the at least one local cache memory in response to unavailability of space for a new cache line in the at least one local cache memory.

15. A method comprising:

receiving a remote snoop from a remote source to a local caching agent that is configured to interact with a local cache memory;

initiating a responsive action to the remote snoop by using first cache line tag content associated with the local caching agent and stored in a coherence memory;

if the first cache line tag content stored in the coherence memory is insufficient for the responsive action, using second cache line tag content associated with the local caching agent and stored in a coherence decoupling buffer for the responsive action, wherein the coherence memory and the coherence decoupling buffer are each configured to filter different types of remote snoops from the remote source to the local caching agent, the coherence decoupling buffer being configured to filter queries to cache lines that are known not to be included within the local cache memory, and the coherence memory being configured to filter read-only queries for cache lines that are already contained within the local cache memory, preventing such read-only queries from being sent to the local cache memory; and

upon determining that the remote snoop from the remote source to the local caching agent was unfiltered by the coherence decoupling buffer and the coherence memory, propagating the remote snoop to the local caching agent to perform the responsive action in the local cache memory.

16. The method of claim 15 , wherein the remote snoop comprises status information of a cache line including a cache line tag comprising the status information.

17. The method of claim 16 , wherein the status information comprises permission information associated with a cache coherence protocol.

18. The method of claim 17 , wherein the cache coherence protocol comprises MESI (Modified, Exclusive, Shared, Invalid).

19. The method of claim 16 , further comprising:

if the coherence memory or the coherence decoupling buffer stores the cache line tag and is sufficient for the responsive action, completing the responsive action to the remote snoop.

20. The method of claim 15 , wherein the first cache line tag content stored in the coherence memory comprises cache line tags stored in at least one local cache memory associated with the local caching agent, and wherein the second cache line tag content stored in the coherence decoupling buffer comprises evicted cache line tags of cache lines evicted from the at least one local cache memory in response to unavailability of space for a new cache line in the at least one local cache memory.

Assignments (9)
CHANGE OF NAME Recorded Mar 4, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059320/0484 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYANCE TYPE TO MERGER PREVIOUSLY RECORDED AT REEL: 058996 FRAME: 0895. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER . Recorded Feb 25, 2022
From: TRANSMETA CORPORATION
To: TRANSMETA LLC
Reel/Frame 059248/0579 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: ROZAS, GUILLERMO J.
To: TRANSMETA CORPORATION
Reel/Frame 058996/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: TRANSMETA CORPORATION
To: TRANSMETA LLC
Reel/Frame 058996/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2019
From: INTELLECTUAL VENTURES ASSETS 88 LLC
To: FACEBOOK, INC.
Reel/Frame 048136/0179 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2018
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES ASSETS 88 LLC
Reel/Frame 047014/0629 →
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE IN ASSIGNEE ADDRESS PREVIOUSLY RECORDED AT REEL: 044097 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded May 25, 2018
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 046245/0753 →
MERGER Recorded Nov 10, 2017
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 044097/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: TRANSMETA LLC
To: INTELLECTUAL VENTURE FUNDING LLC
Reel/Frame 044037/0039 →
Continuity (4)
Continuation 14295062 · Jun 3, 2014
Continuation 11102171 · Apr 7, 2005
Continuation In Part 10411168 · Apr 9, 2003
Related Publication 20170116126A1 · Apr 27, 2017