IP Library Granted Patent US 10,872,039
Granted Patent B2
US 10,872,039 · App. 16/208,499 · Granted Dec 22, 2020

Managing redundancy contexts in storage devices using eviction and restoration

Inventors: James P. Crowley (Longmont, CO); Yuriy Pavlenko (Lake Forest, CA); Karl D. Schuh (Santa Cruz, CA)
Assignee: MICRON TECHNOLOGY, INC.
G06F12/0871G06F9/5016G06F11/073G06F11/2089G06F12/0891G06F2212/312
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,872,039
App. No.
16/208,499
Granted
Dec 22, 2020
Kind
B2
Abstract

A controller selects a redundancy context for eviction in response to a request for a redundancy context. The redundancy context includes buffer data and an identifier. The redundancy context is evicted by instructing a redundancy component to send the buffer data and identifier to a memory component to store in a buffer as an evicted context. The controller instructs the memory component to provide the evicted context for storage in a controller buffer. A new redundancy context is allocated to the requester following the eviction.

Claims (58)

1. A computer-implemented method comprising:

receiving a first request to allocate a portion of a first memory as a redundancy context, wherein the first memory includes a plurality of redundancy contexts temporarily storing data used to calculate redundancy values for the data;

selecting an idle redundancy context for eviction in response to the first request, wherein the idle redundancy context includes a first buffer of data and a context identifier;

evicting contents of the idle redundancy context by sending the first buffer of data and the context identifier to a memory component of a second memory;

retrieving the contents of the evicted context from the memory component of the second memory;

storing the retrieved contents of the evicted context in a second buffer; and

allocating the portion of the first memory as a new redundancy context in response to the first request and the eviction.

2. The method of claim 1 , further comprising:

receiving a second request, the second request directed to the contents of the evicted context;

restoring the contents of the evicted context stored in the third second buffer to an available redundancy context; and

providing the restored redundancy context in response to the second request.

3. The method of claim 2 , wherein the first request is from a first process writing data at a first rate and wherein the second request is from a second process writing data at a second rate and wherein the first rate is greater than the second rate.

4. The method of the claim 2 , wherein restoring the contents of the evicted context comprises:

clearing contents of a third buffer;

storing in the third buffer a result of performing a logical operation on the cleared contents of the third buffer and the data from the contents of the evicted context; and

storing the context identifier from the contents of the evicted context in the available redundancy context.

5. The method of claim 4 , wherein the logical operation is a bitwise exclusive-or (XOR) operation.

6. The method of claim 1 , wherein the plurality of redundancy contexts is stored in a circular list and wherein each redundancy context is accessed through a sliding window within the circular list.

7. The method of claim 6 , wherein selecting the idle redundancy context for eviction includes determining that the redundancy context is preventing the sliding window from advancing to a next available redundancy context.

8. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

receive a first request to allocate a portion of a first memory as a redundancy context, wherein the first memory includes a plurality of redundancy contexts temporarily storing data used to calculate redundancy values for the data;

select an idle redundancy context for eviction in response to the first request, wherein the idle redundancy context includes a first buffer of data and a context identifier;

evict contents of the idle redundancy context by sending the first buffer of data and the context identifier to a memory component of a second memory;

retrieve the contents of the evicted context from the memory component of the second memory;

store the retrieved contents of the evicted context in a second buffer; and

allocate the portion of the first memory as a new redundancy context in response to the first request and the eviction.

9. The storage medium of claim 8 , the instructions further causing the processing device to:

receive a second request, the second request directed to the contents of the evicted context;

restore the contents of the evicted context stored in the second buffer to an available redundancy context; and

provide the restored redundancy context in response to the second request.

10. The storage medium of claim 9 , wherein the first request is from a first process writing data at a first rate and wherein the second request is from a second process writing data at a second rate and wherein the first rate is greater than the second rate.

11. The storage medium of the claim 9 , wherein instructions causing the processing device to restore the available redundancy context further includes instructions causing the processing device to:

clear contents of a third buffer;

store in the third buffer a result of performing a logical operation on the cleared contents of the third buffer and the data from the contents of the evicted context; and

store the context identifier from the contents of the evicted context in the available redundancy context.

12. The storage medium of claim 11 , wherein the logical operation is a bitwise exclusive-or (XOR) operation.

13. The storage medium of claim 12 , wherein the plurality of redundancy contexts is stored in a circular list and wherein each redundancy context is accessed through a sliding window within the circular list.

14. The storage medium of claim 13 , wherein selecting the redundancy context for eviction includes determining that the redundancy context is preventing the sliding window from advancing to a next available redundancy context.

15. A system comprising:

a memory component; and

a processing device, coupled to the memory component, configured to:

receive a first request to allocate a portion of a first memory as a redundancy context, wherein the first memory includes a plurality of redundancy contexts temporarily storing data used to calculate redundancy values for the data;

select an idle redundancy context for eviction in response to the first request, wherein the idle redundancy context includes a first buffer of data and a context identifier;

evict contents of the idle redundancy context by sending the first buffer of data and the context identifier to a memory component of a second memory;

retrieve the contents of the evicted context from the memory component of the second memory;

store the retrieved contents of the evicted context in a second buffer; and

allocate the portion of the first memory as a new redundancy context in response to the first request and the eviction,

receive a second request, the second request directed to the contents of the evicted context;

restore the contents of the evicted context stored in the third second buffer to an available redundancy context; and

provide the restored redundancy context in response to the second request.

16. The system of claim 15 , wherein the first request is from a first process writing data at a first rate and wherein the second request is from a second process writing data at a second rate and wherein the first rate is greater than the second rate.

17. The system of the claim 15 , wherein restoring the available redundancy context further configures the processing device to:

clear contents of a third buffer;

store in the third buffer a result of performing a logical operation on the cleared contents of the third buffer and the data from the contents of the evicted context; and

store the context identifier from the contents of the evicted context in the available redundancy context.

18. The system of claim 17 , wherein the logical operation is a bitwise exclusive-or (XOR) operation.

19. The system of claim 18 , wherein the plurality of redundancy contexts is stored in a circular list and wherein each redundancy context is accessed through a sliding window within the circular list.

20. The system of claim 19 , wherein selecting the redundancy context for eviction includes determining that the redundancy context is preventing the sliding window from advancing to a next available redundancy context.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2018
From: CROWLEY, JAMES P.; PAVLENKO, YURIY; SCHUH, KARL D.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047680/0131 →