IP Library Granted Patent US 9,552,290
Granted Patent B2
US 9,552,290 · App. 14/602,481 · Granted Jan 24, 2017

Partial R-block recycling

Inventors: Leonid Baryudin (San Jose, CA); Alex G. Tang (Cupertino, CA); Earl T. Cohen (Oakland, CA)
Assignee: Seagate Technology LLC
G06F12/0246G06F11/0793G06F11/1008G06F12/02G06F2211/109G06F2212/7205G11C16/3418G11C29/82G11C2029/0409G11C2029/0411
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 9,552,290
App. No.
14/602,481
Granted
Jan 24, 2017
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 (29)

1. An apparatus comprising:

a memory comprising a plurality of memory devices; and

a controller coupled to the memory, wherein the controller is configured to (i) write data using 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.

2. The apparatus according to claim 1 , wherein the controller is further configured to implement a plurality of memory channels and the plurality of memory devices are distributed across the plurality of memory channels.

3. The apparatus according to claim 2 , wherein the plurality of memory devices are accessible in parallel.

4. The apparatus according to claim 2 , wherein each of the memory devices comprises a plurality of memory dies.

5. The apparatus according to claim 1 , wherein the memory and the controller implement a solid-state drive (SSD).

6. The apparatus according to claim 5 , wherein data stored on the SSD is compressed, encrypted, or compressed and encrypted.

7. The apparatus according to claim 5 , wherein a location and a length of each data portion on the SSD is stored in a meta-data map.

8. The apparatus according to claim 7 , wherein the meta-data map further includes data span information in physically readable units.

9. The apparatus according to claim 7 , wherein the controller is further configured to calculate data span information from the length information based on worst case spanning conditions.

10. The apparatus according to claim 1 , wherein the controller is further configured to stripe data across multiple groups of the memory devices.

11. The apparatus according to claim 10 , wherein each of the groups of memory devices is independently accessible.

12. The apparatus according to claim 1 , wherein the controller is configured to recycle a portion less than all of a single R-block and defer recycling other parts of the single R-block to a later time.

13. The apparatus according to claim 12 , wherein the controller determines when to recycle a particular portion less than all of the single R-block based on one or both of a Read Disturb Count (RDC) and a Block Error Rate (BER) associated with the particular portion of the single R-block.

14. An apparatus comprising:

an interface configured to process a plurality of read/write operations from/to a memory; and

a controller coupled to the interface, wherein the controller is configured to (i) write data using 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.

15. A method for maintaining data integrity in a memory comprising the steps of:

reading a memory page in a selected memory block;

locating a valid data unit within the memory page;

determining whether a span of the valid data unit within the memory page extends outside the selected memory block;

if the span of the valid data unit extends to neighbor memory pages, reading any neighbor memory pages so all portions of the valid data unit are available along with any related meta-data associated with the span of the valid data unit; and

recycling the valid data unit to another memory location outside an area being recycled.

16. The method according to claim 15 , further comprising combining a number of memory blocks into an R-block to provide cross-die redundancy for error correction.

17. The method according to claim 16 , wherein the recycling is performed selectively on either an entire R-block or a portion less than all of the R-block.

18. The method according to claim 15 , wherein the span of the valid data unit comprises one or both of (i) a data unit starting in one or more previous memory blocks and (ii) a data unit continuing into one or more subsequent memory blocks.

19. The method according to claim 15 , further comprising determining the neighbor memory pages based on worst case spanning conditions or meta-data within the data configured to indicate spanning of data units.

20. The method according to claim 15 , further comprising updating map information with a new location and size for each data unit recycled.

Continuity (3)
Continuation 13788303 · Mar 7, 2013
Provisional Application 61773437 · Mar 6, 2013
Related Publication 20150134894A1 · May 14, 2015