# US 12,216,586 B2 · Dynamically sized redundant write buffer with sector-based tracking

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

- Number: US 12,216,586 B2
- Document ID: US12216586B2
- Status: Granted
- Kind: B2
- Application number: 18/405,946
- Filed: 2024-01-05
- Published: 2024-05-02
- Granted: 2025-02-04
- Earliest claimed: 2020-05-18
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Cagdas Dirik; Robert M. Walker
- Web page: https://patentgrep.com/patent/US12216586B2

## CPC

- G06F 12/0891: using clearing, invalidating or resetting means
- G06F 11/0772: {Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers}
- G06F 11/1666: {where the redundant component is memory or memory area}
- G06F 11/3037: {where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00)}
- G06F 12/0815: Cache consistency protocols
- G06F 12/0893: Caches characterised by their organisation or structure
- G06F 13/1673: {using buffers}
- G06F 2212/7207: management of metadata or control data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Exemplary methods, apparatuses, and systems include detecting an operation to write dirty data to a cache. The cache is divided into a plurality of channels. In response to the operation, the dirty data is written to a first cache line in the cache, the first cache line being accessed via a first channel. Additionally, a redundant copy of the dirty data is written to a second cache line in the cache. The second cache line serves as a redundant write buffer and is accessed via a second channel, the first and second channels differing from one another. A metadata entry for the second cache line is updated to reference a location of the dirty data in the first cache line.

## Claims

### Claim 1

A method comprising:
detecting an operation to read data from a cache, wherein the cache is divided into a plurality of channels and further divided into a plurality of sets addressed via set values;
determining that an attempt to read the data from a first cache line in the cache failed, wherein the first cache line is accessed via a first channel;
in response to the determination, selecting a second cache line for reading a redundant copy of the data, wherein the second cache line is accessed via a second channel and selected because the first and second cache lines have a same set value on different channels; and
reading the redundant copy of the data from the second cache line in the cache.

### Claim 2 (depends on 1)

The method of claim 1, wherein reading the redundant copy of the data includes parsing the same set value on the second channel for a way marked as a redundant write buffer and locating a metadata entry for the redundant write buffer that references a location of the attempted read of the first cache line.

### Claim 3 (depends on 2)

The method of claim 2, wherein the cache is further divided into a plurality of ways and sectors, and wherein the metadata entry includes a value for a way for the first cache line and a value for a sector within the first cache line.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
writing the redundant copy of the data to non-volatile media in response to detecting that the failed read request was directed to dirty data.

### Claim 5 (depends on 4)

The method of claim 4, where in detecting the failed request was directed to dirty data includes locating the metadata entry.

### Claim 6 (depends on 4)

The method of claim 4, wherein detecting the failed request was directed to dirty data includes reading a metadata entry for the first cache line that indicates the data has not been saved to non-volatile media.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
writing the redundant copy of the data to first cache line in response to failed read request.

### Claim 8

A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
detect an operation to read data from a cache, wherein the cache is divided into a plurality of channels and further divided into a plurality of sets addressed via set values;
determine that an attempt to read the data from a first cache line in the cache failed, wherein the first cache line is accessed via a first channel;
in response to the determination, select a second cache line for reading a redundant copy of the data, wherein the second cache line is accessed via a second channel and selected because the first and second cache lines have a same set value on different channels; and
read the redundant copy of the data from the second cache line in the cache.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein reading the redundant copy of the data includes parsing the same set value on the second channel for a way marked as a redundant write buffer and locating a metadata entry for the redundant write buffer that references a location of the attempted read of the first cache line.

### Claim 10 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the cache is further divided into a plurality of ways and sectors, and wherein the metadata entry includes a value for a way for the first cache line and a value for a sector within the first cache line.

### Claim 11 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the processing device is further to:
write the redundant copy of the data to non-volatile media in response to detecting that the failed read request was directed to dirty data.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, where in detecting the failed request was directed to dirty data includes locating the metadata entry.

### Claim 13 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein detecting the failed request was directed to dirty data includes reading a metadata entry for the first cache line that indicates the data has not been saved to non-volatile media.

### Claim 14 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the processing device is further to:
write the redundant copy of the data to first cache line in response to failed read request.

### Claim 15

A system comprising:
a plurality of memory components; and
a processing device, operatively coupled with the plurality of memory components, to:
detect an operation to read data from a cache, wherein the cache is divided into a plurality of channels and further divided into a plurality of sets addressed via set values;
determine that an attempt to read the data from a first cache line in the cache failed, wherein the first cache line is accessed via a first channel;
in response to the determination, select a second cache line for reading a redundant copy of the data, wherein the second cache line is accessed via a second channel and selected because the first and second cache lines have a same set value on different channels; and
read the redundant copy of the data from the second cache line in the cache, wherein reading the redundant copy of the data includes parsing the same set value on the second channel for a way marked as a redundant write buffer and locating a metadata entry for the redundant write buffer that references a location of the attempted read of the first cache line.

### Claim 16 (depends on 15)

The system of claim 15, wherein the cache is further divided into a plurality of ways and sectors, and wherein the metadata entry includes a value for a way for the first cache line and a value for a sector within the first cache line.

### Claim 17 (depends on 15)

The system of claim 15, wherein the processing device is further to:
write the redundant copy of the data to non-volatile media in response to detecting that the failed read request was directed to dirty data.

### Claim 18 (depends on 17)

The system of claim 17, where in detecting the failed request was directed to dirty data includes locating the metadata entry.

### Claim 19 (depends on 17)

The system of claim 17, wherein detecting the failed request was directed to dirty data includes reading a metadata entry for the first cache line that indicates the data has not been saved to non-volatile media.

### Claim 20 (depends on 15)

The system of claim 15, wherein the processing device is further to:
write the redundant copy of the data to first cache line in response to failed read request.
