Method of operating a nonvolatile memory device having read disturbed page
US-9093171-B2 · Jul 28, 2015 · US
US10101931B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10101931-B1 |
| Application number | US-201715613240-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jun 4, 2017 |
| Priority date | Jun 4, 2017 |
| Publication date | Oct 16, 2018 |
| Grant date | Oct 16, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Read errors following programming in a multi-level non-volatile memory are mitigated by a controller of the non-volatile memory. The controller temporarily buffers, in a cache, pages of data programmed into the non-volatile memory. In response to receiving a read request for a target page of data programmed into the non-volatile memory, where the read request is received during a delay time affecting the target page, the controller services the read request by accessing data of the target page in the cache in response to the read request hitting in the cache. The controller instead services the read request from the non-volatile memory in response to the read request missing in the cache. When servicing the read request from the non-volatile memory, the controller preferably reads the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on the read-after-write delay.
Opening claim text (preview).
What is claimed is: 1. A method of mitigating read errors following programming in a multi-level non-volatile memory, the method comprising: in response to a write request, a controller of the non-volatile memory programming data into the non-volatile memory to service the write request and temporarily buffering, in a cache, pages of the data programmed into the non-volatile memory for at least a predetermined time period following the programming; receiving an initial read request after the programming for a target page of the data programmed into the non-volatile memory; in response to receiving the initial read request during the predetermined time period after programming, the initial read request hitting in the cache and the controller servicing the initial read request by accessing data of the target page in the cache and not from the non-volatile memory; and in response to the initial read request missing in the cache, the controller servicing the initial read request from the non-volatile memory. 2. The method of claim 1 , wherein servicing the initial read request from the non-volatile memory includes reading the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on an applicable read-after-write delay. 3. The method of claim 2 , wherein the set of read voltage thresholds is further determined based on a program/erase cycle count applicable to the target page. 4. The method of claim 2 , wherein the set of read voltage thresholds is further determined based on whether a type of the target page is an upper page or a lower page. 5. The method of claim 2 , wherein: the set of read voltage thresholds is one of a plurality of sets of read voltage thresholds; and the reading includes reading data of the target page from the non-volatile memory utilizing multiple of the plurality of sets of read voltage thresholds and returning the data containing a fewest number of errors. 6. The method of claim 1 , wherein: the target page is a lower page with an associated upper page already programmed; and servicing the initial read request from the non-volatile memory includes reading the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on whether an associated upper page is in the cache. 7. A data storage system, comprising: a controller for a non-volatile memory, wherein the controller is configured to perform: in response to a write request, programming data into the non-volatile memory to service the write request and temporarily buffering, in a cache, pages of the data programmed into the non-volatile memory for at least a predetermined time following the programming; receiving an initial read request after the programming for a target page of the data programmed into the non-volatile memory; in response to receiving the initial read request during the predetermined time period, servicing the initial read request by accessing data of the target page in the cache and not the non-volatile memory; and servicing the initial read request from the non-volatile memory and not the cache memory in response to the initial read request missing in the cache. 8. The data storage system of claim 7 , wherein servicing the initial read request from the non-volatile memory includes reading the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on an applicable read-after-write delay. 9. The data storage system of claim 8 , wherein the set of read voltage thresholds are further determined based on a program/erase cycle count applicable to the target page. 10. The data storage system of claim 8 , wherein the set of read voltage thresholds are further determined based on whether a type of the target page is an upper page or a lower page. 11. The data storage system of claim 8 , wherein: the set of read voltage thresholds is one of a plurality of sets of read voltage thresholds; and the reading includes reading data of the target page from the non-volatile memory utilizing multiple of the plurality of sets of read voltage thresholds and returning the data containing a fewest number of errors. 12. The data storage system of claim 7 , wherein: the target page is a lower page with an associated upper page already programmed; and servicing the initial read request from the non-volatile memory includes reading the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on whether an associated upper page is in the cache. 13. The data storage system of claim 7 , and further comprising the non-volatile memory coupled to the controller. 14. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a controller of a non-volatile memory to cause the controller to perform: in response to a write request, programming data into the non-volatile memory to service the write request and temporarily buffering, in a cache, pages of the data programmed into the non-volatile memory for at least a predetermined time period following the programming; receiving an initial read request after the programming for a target page of the data programmed into the non-volatile memory; in response to receiving the initial read request during the predetermined time period after programming, servicing the initial read request by accessing data of the target page in the cache and not from the non-volatile memory; and servicing the initial read request from the non-volatile memory and not the cache memory in response to the initial read request missing in the cache. 15. The computer program product of claim 14 , wherein servicing the initial read request from the non-volatile memory includes reading the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on an applicable read-after-write delay. 16. The computer program product of claim 15 , wherein the set of read voltage thresholds are further determined based on a program/erase cycle count applicable to the target page. 17. The computer program product of claim 15 , wherein the set of read voltage thresholds are further determined based on whether a type of the target page is an upper page or a lower page. 18. The computer program product of claim 15 , wherein: the set of read voltage thresholds is one of a plurality of sets of read voltage thresholds; and the reading includes reading data of the target page from the non-volatile memory utilizing multiple of the plurality of sets of read voltage thresholds and returning the data containing a fewest number of errors. 19. The computer program product of claim 14 , wherein: the target page is a lower page with an associated upper page already programmed; and servicing the initial read request from the non-volatile memory includes reading the target page from the non-volatile memory utilizing a set of read voltage thresholds determined based on whether an associated upper page is in the cache.
using page tables, e.g. page table structures · CPC title
Details of virtual memory and virtual address translation · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Power saving in storage systems · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.