IP Library Granted Patent US 10,769,014
Granted Patent B2
US 10,769,014 · App. 16/235,385 · Granted Sep 8, 2020

Disposable parity

Inventor: Giuseppe Cariello (Boise, ID)
Assignee: Micron Technology, Inc.
G06F11/1068G06F3/0619G06F3/0647G06F3/0658G06F3/0679G06F12/0253
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,769,014
App. No.
16/235,385
Granted
Sep 8, 2020
Kind
B2
Abstract

Devices and techniques for disposable parity are described herein. First and second portions of data can be obtained, and respective parity values stored in adjacent memory locations. An entry mapping the respective parity values to the first and second portions of data is updated when the parity values are stored. If an error occurs when writing a portion of data, the mapping entry is used to retrieve the parity data to correct the error. Otherwise, the parity data is discarded.

Claims (59)

1. An array controller for disposable parity in a NAND device, the array controller comprising:

a volatile memory; and

processing circuitry to:

obtain a first portion of data;

store a first parity value for the first portion of data in a first memory location;

update a data-to-parity table with a first entry that includes a mapping between the first portion of data and the first memory location;

obtain a second portion of data;

store a second parity value for the second portion of data in a second memory location that is adjacent to the first memory location;

update the data-to-parity table with a second entry that including a mapping between the second portion of data and the second memory location;

detect an error during a write of the first portion of data;

use the first parity value via a lookup in the data-to-parity table to correct the error; and

discard the first memory location and second memory location in response to a successful write of the first data portion and the second data portion.

2. The array controller of claim 1 , wherein the first data portion and the second data portion are a block as defined by the NAND device.

3. The array controller of claim 2 , wherein the first data portion is a user data block received at the NAND device.

4. The array controller of claim 3 , wherein the second data portion is a garbage collection (GC) block.

5. The array controller of claim 1 , wherein the first memory location and second memory location are segments of a circular buffer.

6. The array controller of claim 1 , wherein the first memory location and the second memory location are originally stored in volatile memory.

7. The array controller of claim 6 , wherein the processing circuitry is arranged to:

flush the volatile memory to a non-volatile memory in response to a trigger; and

update the entries of the data-to-parity table that correspond to flushed parity values to point to the non-volatile memory.

8. The array controller of claim 1 , wherein there is no error before the successful write of the second portion of data, and wherein the second parity value is discarded without being used.

9. A method for disposable parity in a NAND device, the method comprising:

obtaining a first portion of data;

storing a first parity value for the first portion of data in a first memory location;

updating a data-to-parity table with a first entry that includes a mapping between the first portion of data and the first memory location;

obtaining a second portion of data;

storing a second parity value for the second portion of data in a second memory location that is adjacent to the first memory location;

updating the data-to-parity table with a second entry that including a mapping between the second portion of data and the second memory location;

detecting an error during a write of the first portion of data;

using the first parity value via a lookup in the data-to-parity table to correct the error; and

discarding the first memory location and second memory location in response to a successful write of the first data portion and the second data portion.

10. The method of claim 9 , wherein the first data portion and the second data portion are a block as defined by the NAND device.

11. The method of claim 10 , wherein the first data portion is a user data block received at the NAND device.

12. The method of claim 11 , wherein the second data portion is a garbage collection (GC) block.

13. The method of claim 9 , wherein the first memory location and second memory location are segments of a circular buffer.

14. The method of claim 9 , wherein the first memory location and the second memory location are originally stored in volatile memory.

15. The method of claim 14 , comprising:

flushing the volatile memory to a non-volatile memory in response to a trigger; and

updating the entries of the data-to-parity table that correspond to flushed parity values to point to the non-volatile memory.

16. The method of claim 9 , wherein there is no error before the successful write of the second portion of data, and wherein the second parity value is discarded without being used.

17. A machine readable medium including instructions for disposable parity in a NAND device, the instructions, when executed by processing circuitry, cause the processing circuitry to perform operations comprising:

obtaining a first portion of data;

storing a first parity value for the first portion of data in a first memory location;

updating a data-to-parity table with a first entry that includes a mapping between the first portion of data and the first memory location;

obtaining a second portion of data;

storing a second parity value for the second portion of data in a second memory location that is adjacent to the first memory location;

updating the data-to-parity table with a second entry that including a mapping between the second portion of data and the second memory location;

detecting an error during a write of the first portion of data;

using the first parity value via a lookup in the data-to-parity table to correct the error; and

discarding the first memory location and second memory location in response to a successful write of the first data portion and the second data portion.

18. The machine readable medium of claim 17 , wherein the first data portion and the second data portion are a block as defined by the NAND device.

19. The machine readable medium of claim 18 , wherein the first data portion is a user data block received at the NAND device.

20. The machine readable medium of claim 19 , wherein the second data portion is a garbage collection (GC) block.

21. The machine readable medium of claim 17 , wherein the first memory location and second memory location are segments of a circular buffer.

22. The machine readable medium of claim 17 , wherein the first memory location and the second memory location are originally stored in volatile memory.

23. The machine readable medium of claim 22 , wherein the operations comprise:

flushing the volatile memory to a non-volatile memory in response to a trigger; and

updating the entries of the data-to-parity table that correspond to flushed parity values to point to the non-volatile memory.

24. The machine readable medium of claim 17 , wherein there is no error before the successful write of the second portion of data, and wherein the second parity value is discarded without being used.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2019
From: CARIELLO, GIUSEPPE
To: MICRON TECHNOLOGY, INC.
Reel/Frame 049442/0101 →
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 →