Extending flash storage lifespan and data quality with data retention protection
AssigneeAlibaba Group Holding Limited
InventorShu Li
Life of this patent
Estimating the term…
Abstract
One technique for extending flash storage lifespan and data quality with data retention protection includes: determining whether page data included in a page in a solid state drive (SSD) has been copied to another storage; in the event that the page data has not been copied to the other storage: determining whether the page data is to be refreshed; and in the event that the page data is determined to be refreshed, refreshing at least the page data. Another technique includes determining whether a number of times a page has been read exceeds a read threshold, or an amount of time since the page was written exceeds a retention threshold.
Claims30
A system, comprising:
- a solid state drive (SSD);
- and
- a controller coupled to the SSD, configured to:
- determine whether page data included in a page in the SSD has been copied to another storage, including to check a flag associated with the page, the flag indicating whether the page data has been copied to another storage;
- and
- in response to a determination that the page data has not been copied to the other storage:
- determine whether page data is to be refreshed, including to check version information associated with the page;
- and
- in response to a determination that the page data is to be refreshed, refresh at least the page data.
A system, comprising:
- a solid state drive (SSD);
- and
- a controller coupled to the SSD, configured to:
- determine whether a number of times a page has been read exceeds a read threshold, or an amount of time since the page was written exceeds a retention threshold, the page being a page of storage included in a solid state drive (SSD);
- in response to a determination that the number of times the page has been read is determined to exceed the read threshold, the amount of time since the page was written is determined to exceed the retention threshold, or both, perform a background read of page data associated with the page;
- in response to a determination that the page data from the background read exceeds an error threshold, perform an in-place page-level fix of the page;
- wherein to perform the in-place page-level fix of the page includes to:
- perform finer grained quantization to detect a threshold voltage of a cell in the page;
- and
- reprogram the page to move the threshold voltage of the cell in the page;
- and
- in response to a determination that the in-place page-level fix of the page fails, write the page data to a new physical location in the SSD.
A system, comprising:
- a solid state drive (SSD);
- and
- a controller coupled to the SSD, configured to:
- detect a threshold voltage of a cell in a page of a Not And (NAND) flash in the SSD, the threshold voltage being detected using a finer grained quantization level than what is used in a background read;
- and
- reprogram the page to move the threshold voltage of the cell, including to apply pulses of variable step sizes to the cell.
A system, comprising:
- a solid state drive (SSD);
- and
- a controller coupled to the SSD, configured to:
- determine whether a request sent by a host to a solid state drive (SSD) is associated with a first type of application or a second type of application;
- and
- in response to a determination that the request is associated with the first type of application:
- determine whether a page associated with the request includes page data that has been copied to another storage, including to check a flag associated with the page, the flag indicating whether the page data has been copied to another storage;
- and
- in response to a determination that the page is determined not to include page data that has been copied to another storage:
- determine whether the page data that has not been copied to the other storage is to be refreshed, including to check version information associated with the page;
- and
- in response to a determination that the page data is determined to be refreshed, refresh at least the page data;
- and
- in response to a determination that the request is associated with a second type of application:
- determine whether a number of times the page has been read exceeds a read threshold, or an amount of time since the page was written exceeds a retention threshold;
- and
- in response to a determination that the number of times the page has been read exceeds the read threshold, the amount of time since the page was written exceeds the retention threshold, or both, perform an in-place page-level fix of page data associated with the page.
A computer program product embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
- determining whether page data included in a page in a solid state drive (SSD) has been copied to another storage, including checking a flag associated with the page, the flag indicating whether the page data has been copied to another storage;
- in response to a determination that the page data has not been copied to the other storage:
- determining whether the page data is to be refreshed, including to check version information associated with the page;
- and
- in response to a determination that the page data is to be refreshed, refreshing at least the page data.
A computer program product embodied in a tangible computer readable storage medium and comprising computer instructions for:
- determining whether a number of times a page has been read exceeds a read threshold, or an amount of time since the page was written exceeds a retention threshold, the page being a page of storage included in a solid state drive (SSD);
- in response to a determination that the number of times the page has been read is determined to exceed the read threshold, the amount of time since the page was written is determined to exceed the retention threshold, or both, performing a background read of page data associated with the page;
- in response to a determination that the page data from the background read exceeds an error threshold, performing an in-place page-level fix of the page;
- wherein performing the in-place page-level fix of the page includes:
- performing finer grained quantization to detect a threshold voltage of a cell in the page;
- and
- reprogramming the page to move the threshold voltage of the cell in the page;
- and
- in response to a determination that the in-place page-level fix of the page fails, writing the page data to a new physical location in the SSD.
A computer program product embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
- detecting a threshold voltage of a cell in a page of a Not And (NAND) flash in a solid state drive (SSD), the threshold voltage being detected using a finer grained quantization level than what is used in a background read;
- and
- reprogramming the page to move the threshold voltage of the cell, including by applying pulses of variable step sizes to the cell.
A computer program product embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
- determining whether a request sent by a host to a solid state drive (SSD) is associated with a first type of application or a second type of application;
- and
- in response to a determination that the request is associated with the first type of application:
- determining whether a page associated with the request includes page data that has been copied to another storage, including checking a flag associated with the page, the flag indicating whether the page data has been copied to another storage;
- and
- in response to a determination that the page is determined not to include page data that has been copied to another storage:
- determining whether the page data that has not been copied to the other storage is to be refreshed, including checking version information associated with the page;
- and
- in response to a determination that the page data is determined to be refreshed, refreshing at least the page data;
- and
- in response to a determination that the request is associated with a second type of application:
- determining whether a number of times the page has been read exceeds a read threshold, or an amount of time since the page was written exceeds a retention threshold;
- and
- in response to a determination that the number of times the page has been read exceeds the read threshold, the amount of time since the page was written exceeds the retention threshold, or both, performing an in-place page-level fix of page data associated with the page.
Dependencies are inferred from the claim text.