IP Library Granted Patent US 8,954,823
Granted Patent B2
US 8,954,823 · App. 14/173,271 · Granted Feb 10, 2015

Redundant data storage schemes for multi-die memory systems

Inventors: Ofir Shalvi (Ra'anana, IL); Naftali Sommer (Rishon Lezion, IL); Uri Perlmutter (Ra'anana, IL); Julian Vlaiko (Kfar Saba, IL); Moshe Neerman (Hadera, IL)
Assignee: Apple Inc.
G06F11/1666G06F11/14G06F11/1016G06F11/1068G06F12/023
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,954,823
App. No.
14/173,271
Granted
Feb 10, 2015
Kind
B2
Abstract

A method for data storage includes storing data in a memory that includes one or more memory units, each memory unit including memory blocks. The stored data is compacted by copying at least a portion of the data from a first memory block to a second memory block, and subsequently erasing the first memory block. Upon detecting a failure in the second memory block after copying the portion of the data and before erasure of the first memory block, the portion of the data is recovered by reading the portion from the first memory block.

Claims (26)

1. A method for data storage, comprising:

in a memory that includes at least N memory units, defining a mapping between logical addresses and respective physical storage locations in the at least N memory units;

selecting a set of N logical addresses, which are mapped to N respective physical storage locations in different ones of the memory units, such that K of the logical addresses in the set of N logical addresses, 1≦K<N, are assigned for data storage and N-K logical addresses in the set of N logical addresses, other than the K logical addresses, are assigned for storing redundancy information;

accepting data for storage in the K logical addresses in the set of N logical addresses;

computing the redundancy information for the data;

storing the data in the K logical addresses at a first storage density; and

storing the redundancy information in the N-K logical addresses at a second storage density that is lower than the first storage density.

2. The method according to claim 1 , and comprising selecting an additional set of the logical addresses for storing additional data and additional redundancy information, such that the logical addresses that are assigned for storing the additional redundancy information in the additional set of logical addresses are mapped to a different subset of the memory units, in comparison with the logical addresses that are assigned for storing the redundancy information in the set of N logical addresses.

3. The method according to claim 1 , wherein each memory unit of the at least N memory units is assigned a respective range of logical addresses from a plurality of non-overlapping ranges of logical addresses, and wherein selecting the set of N logical addresses comprises choosing the N logical addresses from each range of logical address of the plurality of non-overlapping ranges of logical addresses.

4. The method according to claim 1 , wherein accepting the data comprises receiving the data from a host, and wherein selecting the set of N logical addresses comprises assigning the N-K logical addresses from a range of the logical addresses that is not accessible to the host.

5. The method according to claim 1 , and comprising reserving at least one spare memory unit in addition to the N memory units, and replacing a failed memory unit from among the N memory units with the spare memory unit.

6. The method according to claim 5 , and comprising temporarily using the spare memory unit for improving performance of data storage in the N memory units.

7. The method according to claim 1 , wherein the memory units are partitioned into multiple groups that are associated with respective multiple processors, and wherein storing the data and the redundancy information comprises distributing storage of the data and the redundancy information among the respective multiple processors.

8. A data storage apparatus, comprising:

an interface, which is configured to communicate with a memory that includes at least N memory units; and

a processor, which is configured to:

define a mapping between logical addresses and respective physical storage locations in the at least N memory units;

select a set of N logical addresses, which are mapped to N respective physical storage locations in different ones of the memory units, such that K of the logical addresses in the set of N logical addresses, 1≦K<N, are assigned for data storage and N-K logical addresses in the set of N logical addresses, other than the K logical addresses;

accept data for storage in the K logical addresses in the set of N logical Addresses;

compute the redundancy information for the data to store the data in the K logical addresses at a first storage density; and

store the redundancy information in the N-K logical addresses at a second storage density that is lower than the first storage density.

9. The apparatus according to claim 8 , wherein each memory unit of the at least N the memory units is assigned a respective range of logical addresses from a plurality of non-overlapping ranges of logical addresses, and wherein the processor is further configured to select the N logical addresses from each range of logical addresses of the plurality of non-overlapping ranges of logical addresses.

10. The apparatus according to claim 8 , wherein the interface is configured to receive the data from a host, and wherein the processor is further configured to assigned the N-K logical addresses from a range of the logical addresses that is not accessible to the host.

11. The apparatus according to claim 8 , wherein the processor is further configured to reserve at least one spare memory unit in addition to the N memory units, and to replace a failed memory unit from among the N memory units with the spare memory unit.

12. The apparatus according to claim 11 , wherein the processor is further configured to temporarily use the spare memory unit for improving performance of data storage in the N memory units.

13. The apparatus according to claim 8 , wherein the memory units are partitioned into multiple groups that are associated with respective multiple processors, and wherein the processor is further configured to distribute storage of the data and the redundancy information among the respective multiple processors.

Continuity (5)
Division 12987175 · Jan 10, 2011
Provisional Application 61293808 · Jan 11, 2010
Provisional Application 61364406 · Jul 15, 2010
Provisional Application 61373883 · Aug 16, 2010
Related Publication 20140157083A1 · Jun 5, 2014