# US 8,751,753 B1 · Coherence de-coupling buffer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,753 B1
- Document ID: US8751753B1
- Status: Granted
- Kind: B1
- Application number: 11/102,171
- Filed: 2005-04-07
- Granted: 2014-06-10
- Earliest claimed: 2003-04-09
- Applicants: Guillermo J. Rozas
- Inventors: Guillermo J. Rozas
- Web page: https://patentgrep.com/patent/US8751753B1

## CPC

- G06F 12/0815: Cache consistency protocols
- G06F 12/0808: with cache invalidating means (G06F12/0815 takes precedence)
- G06F 12/0831: using a bus scheme, e.g. with bus monitoring or watching means
- G06F 12/084: with a shared cache
- G06F 12/128: adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
- G06F 12/0817: using directory methods
- G06F 12/0822: {Copy directories (local copy tags for implementing a bus snooping protocol G06F12/0831)}
- G06F 2212/1008: Correctness of operation, e.g. memory ordering
- G06F 2212/1021: Hit rate improvement
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A coherence decoupling buffer. In accordance with a first embodiment of the present invention, 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

### Claim 1

A cache system comprising:
a cache memory including a plurality of cache lines, wherein the cache memory is configured to receive a local access; and
a coherence decoupling buffer configured to store at least a portion of a cache line evicted from the cache memory and configured to receive a snoop, wherein if the snoop causes a miss, the snoop is propagated to the cache memory, wherein if the local access causes a cache miss in the cache memory, the local access is propagated to the coherence decoupling buffer, wherein responsive to the local access being propagated from the cache memory to the coherence decoupling buffer, if the local access causes a hit in the coherence decoupling buffer, an entry of the coherence decoupling buffer is re-inserted from the coherence decoupling buffer into the cache memory and removed from the coherence decoupling buffer.

### Claim 2 (depends on 1)

The system of claim 1 wherein the coherence decoupling buffer comprises a capacity that is of substantially less capacity than a total capacity of the cache memory.

### Claim 3 (depends on 1)

The system of claim 1 wherein the coherence decoupling buffer is configured to be free of value information of the cache memory.

### Claim 4 (depends on 1)

The system of claim 1 wherein the cache memory is within a single caching agent.

### Claim 5

A method comprising:
determining if a tag of a snooped cache line is present in a coherence decoupling buffer coupled to a cache, wherein the cache includes a plurality of cache lines, wherein the cache is configured to receive a local access, wherein the coherence decoupling buffer is configured to store at least a portion of a cache line evicted from the cache and is configured to receive a snoop, wherein if the snoop causes a miss, the snoop is propagated to the cache, wherein if the local access causes a cache miss in the cache, the local access is propagated to the coherence decoupling buffer, wherein responsive to the local access being propagated from the cache to the coherence decoupling buffer, if the local access causes a hit in the coherence decoupling buffer, an entry of the coherence decoupling buffer is re-inserted from the coherence decoupling buffer into the cache and removed from the coherence decoupling buffer; and
granting, by the coherence decoupling buffer, access to the cache line responsive to a presence of the tag.

### Claim 6 (depends on 5)

The method of claim 5 further comprising propagating the snoop to the cache responsive to an absence of the tag.

### Claim 7 (depends on 6)

The method of claim 6 further comprising inserting permissions of an evicted cache line into the coherence decoupling buffer.

### Claim 8 (depends on 7)

The method of claim 7 further comprising granting access to the evicted cache line.

### Claim 9

A computer system comprising:
a main memory;
a cache memory including a plurality of cache lines, wherein the cache memory is configured to receive a local access; and
a coherence decoupling buffer coupled to the main memory and to the cache memory, wherein the coherence decoupling buffer is configured to store at least a portion of a cache line evicted from the cache memory and is configured to receive a snoop, wherein if the snoop causes a miss, the snoop is propagated to the cache memory, wherein if the local access causes a cache miss in the cache memory, the local access is propagated to the coherence decoupling buffer, wherein responsive to the local access being propagated from the cache memory to the coherence decoupling buffer, if the local access causes a hit in the coherence decoupling buffer, an entry of the coherence decoupling buffer is re-inserted from the coherence decoupling buffer into the cache memory and removed from the coherence decoupling buffer.

### Claim 10 (depends on 9)

The computer system of claim 9 wherein the coherence decoupling buffer has a capacity that is of substantially less capacity than a total capacity of the cache memory.

### Claim 11 (depends on 9)

The computer system of claim 9 wherein the coherence decoupling buffer comprises a FIFO buffer.
