Garbage collection in hybrid memory system
First Claim
Patent Images
1. A method of performing garbage collection in a hybrid memory system that includes a primary memory and a secondary memory, the method comprising:
- performing a read operation comprising reading data from a first cluster of a plurality of clusters;
responsive to a determination that the read operation failed;
unmapping the first cluster without writing the data to a second cluster;
determining a programming time for the first cluster;
if the programming time is greater than a first threshold, continuing to use the first cluster for subsequent data storage;
if the programming time is less than or equal to the first threshold, increment a counter;
determining if the counter is greater than a second threshold; and
if the programming time is less than or equal to the second threshold, defectingthe first cluster; and
responsive to a determination that the read operation did not fail, writing the data to the second cluster.
1 Assignment
0 Petitions
Accused Products
Abstract
A hybrid memory system includes a primary memory and a secondary memory. A garbage collection operation is performed on the hybrid memory system. A read operation comprising reading data from a first cluster of a plurality of clusters is performed. Responsive to a determination that the read operation failed, the first cluster is unmapped without writing the data to a second cluster and the first cluster continues to be used for subsequent data storage. Responsive to a determination that the read operation did not fail, data is written to the second cluster.
52 Citations
20 Claims
-
1. A method of performing garbage collection in a hybrid memory system that includes a primary memory and a secondary memory, the method comprising:
-
performing a read operation comprising reading data from a first cluster of a plurality of clusters; responsive to a determination that the read operation failed; unmapping the first cluster without writing the data to a second cluster; determining a programming time for the first cluster; if the programming time is greater than a first threshold, continuing to use the first cluster for subsequent data storage; if the programming time is less than or equal to the first threshold, increment a counter; determining if the counter is greater than a second threshold; and if the programming time is less than or equal to the second threshold, defecting the first cluster; and responsive to a determination that the read operation did not fail, writing the data to the second cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A device, comprising:
a hybrid controller configured to manage data transfers between a host processor and a secondary memory, the secondary memory configured to serve as a cache for a primary memory, the controller configured to; perform a read operation comprising reading data from a first cluster of a of a plurality of clusters of the secondary memory; responsive to a determination that the read operation failed; unmap the first cluster without writing the data to a second cluster; determine a programming time for the first cluster; if the programming time is greater than a first threshold, continue to use the first cluster for subsequent data storage; if the programming time is less than or equal to the first threshold, increment a counter; determine if the counter is greater than a second threshold; and if the programming time is less than or equal to the second threshold, defect the first cluster; and responsive to a determination that the read operation did not fail write the data to the second cluster. - View Dependent Claims (14, 15, 16, 17)
-
18. A controller system for a hybrid memory system, the controller comprising:
a hybrid controller configured data transfers between the host processor and a flash memory, the flash memory configured to serve as a cache for a magnetic disk, the hybrid controller configured to; perform a read operation comprising reading data from a first cluster of a plurality of clusters; responsive to a determination that the read operation failed; unmap the first cluster without writing the data to a second cluster; determine a programming time for the first cluster; if the programming time is greater than a first threshold, continue to use the first cluster for subsequent data storage; and if the programming time is less than or equal to the first threshold, increment a counter; determine if the counter is greater than a second threshold; and if it is determined that the counter is greater than the second threshold, defect the first cluster; and responsive to a determination that the read operation did not fail, write the data to the second cluster. - View Dependent Claims (19, 20)
Specification