Cache memory for hybrid disk drives
First Claim
Patent Images
1. A method for data storage, comprising:
- in a data storage system that includes a main storage device and a non-volatile memory, assessing a respective quality level of each memory block of a plurality of memory blocks of the non-volatile memory;
identifying a first subset of memory blocks of the plurality of memory blocks, wherein the quality level of each memory block of the first subset of memory blocks is less than a predefined quality threshold;
adjusting the predefined quality threshold to generate an updated quality threshold, wherein a second number of memory blocks included in a second subset of memory blocks of the plurality of memory blocks is different than a first number of memory blocks included in the first subset of memory blocks, and wherein each memory block included in the second subset of memory blocks has an assessed quality level less than the updated quality threshold;
assigning the second subset of memory blocks to serve as read cache memory; and
reading data from the main storage device via the read cache memory, including the assigned memory blocks;
wherein assessing the respective quality level of each memory block of the plurality of memory blocks in the non-volatile memory includes determining a respective number of post-programming errors in each memory block;
wherein the predefined quality threshold corresponds to a number of post-programming errors in a given memory block; and
wherein determining the respective number of post-programming errors in each memory block includes determining the respective number of post-programming errors in each memory block responsive to a determination that a period of time has elapsed since a first group of memory cells in each memory block has been programmed prior to programming a second group of memory cells in each memory block, and responsive to a determination that a temperature change has occurred since the first group of memory cells in each memory block has been programmed.
2 Assignments
0 Petitions
Accused Products
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.
601 Citations
13 Claims
-
1. A method for data storage, comprising:
-
in a data storage system that includes a main storage device and a non-volatile memory, assessing a respective quality level of each memory block of a plurality of memory blocks of the non-volatile memory; identifying a first subset of memory blocks of the plurality of memory blocks, wherein the quality level of each memory block of the first subset of memory blocks is less than a predefined quality threshold; adjusting the predefined quality threshold to generate an updated quality threshold, wherein a second number of memory blocks included in a second subset of memory blocks of the plurality of memory blocks is different than a first number of memory blocks included in the first subset of memory blocks, and wherein each memory block included in the second subset of memory blocks has an assessed quality level less than the updated quality threshold; assigning the second subset of memory blocks to serve as read cache memory; and reading data from the main storage device via the read cache memory, including the assigned memory blocks; wherein assessing the respective quality level of each memory block of the plurality of memory blocks in the non-volatile memory includes determining a respective number of post-programming errors in each memory block; wherein the predefined quality threshold corresponds to a number of post-programming errors in a given memory block; and wherein determining the respective number of post-programming errors in each memory block includes determining the respective number of post-programming errors in each memory block responsive to a determination that a period of time has elapsed since a first group of memory cells in each memory block has been programmed prior to programming a second group of memory cells in each memory block, and responsive to a determination that a temperature change has occurred since the first group of memory cells in each memory block has been programmed. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus, comprising:
-
an interface for communicating at least with a non-volatile memory; and a processor, configured to; assess a respective quality level of each memory block of a plurality of memory blocks of the non-volatile memory; identify a first subset of memory blocks of the plurality of memory blocks, wherein the quality level of each memory block of the first subset of memory blocks is less than a predefined quality threshold; adjust the predefined quality threshold to generate an updated quality threshold, wherein a second number of memory blocks included in a second subset of memory blocks of the plurality of memory blocks is different than a first number of memory blocks included in the first subset of memory blocks, and wherein each memory block included in the second subset of memory blocks has an assessed quality level less than the updated quality threshold; and assign the second subset of memory blocks to serve as read cache memory for readout from a main storage device; wherein to assess the respective quality level of each memory block in the non-volatile memory, the processor is further configured to determine a respective number of post-programming errors of each memory block; wherein the predefined quality threshold corresponds to a number of post-programming errors in a given memory block; and wherein to determine the respective number of post-programming errors in each memory block, the processor is further configured to determine the respective number of post-programming errors in each memory block responsive to a determination that a period of time has elapsed since a first group of memory cells in each memory block has been programmed prior to programming a second group of memory cells in each memory block, and responsive to a determination that a temperature change has occurred since the first group of memory cells in each memory block has been programmed. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A data storage apparatus, comprising:
-
a main storage device; a non-volatile memory; and a processor, configured to; assess a respective quality level of each memory block of a plurality of memory blocks of the non-volatile memory; identify a first subset of memory blocks of the plurality of memory blocks, wherein the quality level of each memory block of the first subset of memory blocks is less than a predefined quality threshold; adjust the predefined quality threshold to generate an updated quality threshold, wherein a second number of memory blocks included in a second subset of memory blocks of the plurality of memory blocks is different than a first number of memory blocks included in the first subset of memory blocks, and wherein each memory block included in the second subset of memory blocks has an assessed quality level less than the updated quality threshold; and assign the second subset of memory blocks to serve as read cache memory for readout from the main storage device; wherein to assess the respective quality level of each memory block in the non-volatile memory, the processor is further configured to determine a respective number of post-programming errors of each memory block; wherein the predefined quality threshold corresponds to a number of post-programming errors in a given memory block; and wherein to determine the respective number of post-programming errors in each memory block, the processor is further configured to determine the respective number of post-programming errors in each memory block responsive to a determination that a period of time has elapsed since a first group of memory cells in each memory block has been programmed prior to programming a second group of memory cells in each memory block, and responsive to a determination that a temperature change has occurred since the first group of memory cells in each memory block has been programmed.
-
Specification