IP Library Granted Patent US 8,972,776
Granted Patent B2
US 8,972,776 · App. 13/788,303 · Granted Mar 3, 2015

Partial R-block recycling

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 8,972,776
App. No.
13/788,303
Granted
Mar 3, 2015
Kind
B2
Abstract

An apparatus includes a non-volatile memory and a controller. The non-volatile memory includes a plurality of R-blocks. The controller is coupled to the non-volatile memory. The controller is configured to (i) write data using the R-blocks as a unit of allocation and (ii) perform recycling operations selectively on either an entire one of the R-blocks or a portion less than all of one of the R-blocks.

Claims (44)

1. An apparatus comprising:

a non-volatile memory comprising a plurality of R-blocks; and

a controller coupled to said non-volatile memory, wherein said controller is configured to (i) write data using said R-blocks as a unit of allocation and (ii) perform recycling operations selectively on either an entire one of said R-blocks or a portion less than all of one of said R-blocks.

2. The apparatus according to claim 1 , wherein said controller is further configured to perform said recycling operations on said entire one of said R-blocks as part of garbage collection.

3. The apparatus according to claim 1 , wherein said controller is further configured to perform said recycling operations on said portion less than all of one of said R-blocks as part of error handling.

4. The apparatus according to claim 3 , wherein:

said error handling is enabled in response to detection of a program error in a block of said non-volatile memory; and

said portion less than all of one of said R-blocks is a portion of said block of said non-volatile memory.

5. The apparatus according to claim 3 , wherein:

said error handling is enabled in response to detection of a program error in a block of said non-volatile memory; and

said portion less than all of one of said R-blocks is an R-page.

6. The apparatus according to claim 3 , wherein:

said error handling is enabled in response to detection of a read disturb condition of a block of said non-volatile memory; and

said portion less than all of one of said R-blocks is said block of said non-volatile memory affected by said read disturb condition.

7. The apparatus according to claim 1 , wherein said controller is configured to perform said recycling operations on a granularity less than that of an entire one of said R-blocks by performing said recycling operations on said portion less than all of one of said R-blocks.

8. The apparatus according to claim 1 , wherein:

said portion less than all of one of said R-blocks comprises a plurality of pages of said non-volatile memory, with said plurality of pages storing at least a portion of one or more valid data items; and

said controller is configured to perform said recycling operations on said portion less than all of one of said R-blocks by making a determination whether a particular one of said one or more valid data items spans into or out of the portion less than all of one of said R-blocks and, based upon the determination, selectively performing recycling operations that recycle all of the one or more valid data items.

9. The apparatus according to claim 1 , wherein said portion less than all of one of said R-blocks comprises at least one of a single non-volatile memory block, a portion of said single non-volatile memory block, a single R-page, a single e-page.

10. A method for recycling non-volatile memory (NVM) blocks in an R-block comprising the steps of:

reading a NVM page in a selected NVM block;

locating data unit within said NVM page;

determining whether said data unit within said NVM page spans outside said selected NVM block;

determining whether said data unit is valid;

if said data unit is valid, also determining which, if any, neighbor NVM pages are affected;

if neighbor NVM pages are affected, reading any neighbor NVM pages so all portions of said data unit are available along with any related meta-data associated with the span of said data unit;

recycling the valid data unit by re-writing the data unit to another NVM location outside the area being recycled.

11. The method according to claim 10 , wherein said R-block comprises a combination of NVM blocks providing cross-die redundancy for error correction.

12. The method according to claim 10 , wherein said span of said data unit comprises one or both of (i) a data unit starting in one or more previous NVM blocks and (ii) a data unit continuing into one or more subsequent NVM blocks.

13. The method according to claim 12 , wherein meta-data within the data indicates spanning of data units.

14. The method according to claim 13 , further comprising parsing the meta-data to determine whether previous NVM blocks, subsequent NVM blocks, or both previous and subsequent NVM blocks are needed.

15. The method according to claim 10 , further comprising calculating the neighbor NVM pages based on worst case spanning conditions.

16. A method for recycling a single R-page comprising:

reading one or more NVM pages in a selected R-page;

locating data units within the one or more NVM pages;

determining if data units in the one or more NVM pages span outside the selected R-page;

determining which data units are valid;

for each data unit that is valid, also determining which neighbor NVM pages are affected;

if neighbor NVM pages are affected, reading the neighbor NVM pages so all portions of said data units along with any related meta-data associated with the span of data units are available;

recycling the valid data units by re-writing the data units to another NVM location.

17. The method according to claim 16 , wherein said R-page comprises a set of NVM pages and each neighbor NVM page as defined by a write order can be on one or both of a different NVM block and a different NVM die.

18. The method according to claim 16 , wherein said R-page contains cross-die or cross-block redundancy.

19. The method according to claim 16 , wherein the NVM pages in the selected R-page are read in sequence or concurrently.

20. The method according to claim 16 , further comprising updating the map information with a new location and size for each data unit being rewritten after the re-write.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 034770/0859 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2013
From: BARYUDIN, LEONID; TANG, ALEX G.; COHEN, EARL T.
To: LSI CORPORATION
Reel/Frame 029940/0943 →