IP Library Granted Patent US 9,535,611
Granted Patent B2
US 9,535,611 · App. 15/160,683 · Granted Jan 3, 2017

Cache memory for hybrid disk drives

Inventor: Avraham Meir (Rishon Le-Zion, IL)
Assignee: Apple Inc.
G06F3/061G06F3/064G06F3/0614G06F3/0655G06F3/0685G06F3/0688G06F11/00G06F12/0246G06F12/0806G06F12/0871G06F12/0893G06F12/0848G06F12/0864G06F12/0866G06F2212/222G06F2212/621
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,535,611
App. No.
15/160,683
Granted
Jan 3, 2017
Kind
B2
Abstract

A method for data storage in a data storage system, which includes a main storage device and a non-volatile memory, includes assessing quality levels of respective memory blocks of the non-volatile memory. One or more of the memory blocks whose assessed quality levels are lower than a predefined quality threshold are identified. The identified memory blocks are assigned to serve as read cache memory. Data is read from the main storage device via the read cache memory, including the assigned memory blocks.

Claims (33)

1. An apparatus, comprising:

a non-volatile memory including a plurality of memory blocks, wherein each memory block of the plurality of memory blocks includes a plurality of memory cells;

an interface circuit configured to communicate with the non-volatile memory; and

a processor configured to:

determine a quality level of a given memory block of the plurality of memory blocks dependent upon a time required to complete an operation on at least one memory cell of the plurality of memory cells included in the given memory block; and

assign the given memory block to serve as a portion of a read cache memory in response to a determination that the quality level of the given memory block is less than a predetermined quality threshold and to otherwise assign the given memory block as a portion of a write cache memory.

2. The apparatus of claim 1 , wherein the processor is further configured to assign the given memory block to serve as a portion of a write cache memory in response to a determination that the quality level of the given memory block is greater than or equal to the predetermined quality threshold.

3. The apparatus of claim 1 , wherein the operation includes an erase operation.

4. The apparatus of claim 1 , wherein the operation includes a programming operation.

5. The apparatus of claim 1 , wherein the processor is further configured to determine the quality level of the given memory block in response to a change in temperature.

6. The apparatus of claim 1 , wherein the processor is further configured to determine the quality level of the given memory block in response to a determination that a retention time has elapsed.

7. A method, comprising:

determining a quality level of a given memory block included in a plurality of memory blocks dependent upon a time required to complete an operation on at least one memory cell of a plurality of memory cells included in the given memory block; and

determining whether to assign the given memory block to serve as a portion of a write cache memory based on a determination that the quality level of the given memory block meets a predetermined quality threshold, or to otherwise assign the given memory block to a portion of a read cache memory.

8. The method of claim 7 , further comprising assigning the given memory block to serve as a portion of a read cache memory in response to a determination that the quality level of the given memory block is less than the predetermined quality threshold.

9. The method of claim 7 , further comprising assign the given memory block to serve as a portion of a write cache memory in response to a determination that the quality level of the given memory block is greater than or equal to the predetermined quality threshold.

10. The method of claim 7 , wherein the operation includes an erase operation.

11. The method of claim 7 , wherein the operation includes a programming operation.

12. The method of claim 7 , further comprising determining the quality level of the given memory block in response to a change in temperature.

13. The method of claim 7 , further comprising determining the quality level of the given memory block in response determining that a retention time has elapsed.

14. The method of claim 7 , wherein the predetermined quality threshold is dependent upon a size of the read cache memory.

15. A system, comprising:

a main storage device;

a non-volatile memory, wherein the non-volatile memory includes a plurality of memory blocks, and wherein each memory block of the plurality of memory blocks includes a plurality of memory cells; and

a memory controller, configured to:

determine a quality level of a given memory block of the plurality of memory blocks dependent upon a time required to complete an operation on at least one memory cell of the plurality of memory cells included in given memory block; and

assign the given memory block to serve as a portion of a read cache memory in response to a determination that the quality level of the given memory block is less than a predetermined quality threshold and to otherwise assign the given memory block as a portion of a write cache memory.

16. The system of claim 15 , wherein the memory controller is further configured to assign the given memory block to serve as a portion of a write cache memory in response to a determination that the quality level of the given memory block is greater than or equal to the predetermined quality threshold.

17. The system of claim 15 , wherein the operation includes an erase operation.

18. The system of claim 15 , wherein the operation includes a programming operation.

19. The system of claim 15 , wherein the memory controller is further configured to determine the quality level of the given memory block in response to a change in temperature.

20. The system of claim 15 , wherein the memory controller is further configured to determine the quality level of the given memory block in response to a determination that a retention time has elapsed.

21. The system of claim 15 , wherein the predetermined quality threshold is dependent upon a size of the read cache memory.

Continuity (4)
Continuation 14797292 · Jul 13, 2015
Continuation 13069406 · Mar 23, 2011
Provisional Application 61367894 · Jul 27, 2010
Related Publication 20160266798A1 · Sep 15, 2016