Write suppression in non-volatile memory

US10126958B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10126958-B2
Application numberUS-201514875160-A
CountryUS
Kind codeB2
Filing dateOct 5, 2015
Priority dateOct 5, 2015
Publication dateNov 13, 2018
Grant dateNov 13, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques are disclosed for write suppression to improve endurance rating of non-volatile memories, such as QLC-NAND SSDs or other relatively slow, low endurance non-volatile memories. In an embodiment, an SSD is configured with a fast frontend non-volatile memory, a relatively slow lower endurance backend non-volatile memory, and a frontend manager that selectively transfers data from the fast memory to the slow memory based on transfer criteria. In operation, write data from the host is initially written to the fast memory by the frontend manager. The data is moved from the fast memory to the slow memory in bands. For each data band stored in the fast memory, the frontend manager tracks invalid data counts and data age. Only bands that still remain valid are transferred to the slow memory. After a given band has been fully transferred, it is erased and re-usable for other incoming writes by the frontend manager.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving data to be written to a non-volatile memory; writing the data to a fast non-volatile memory for storing one or more bands of data; evaluating each of the bands of the fast non-volatile memory to identify one or more target bands for eviction from the fast non-volatile memory to a slow non-volatile memory having a lower durability rating than the fast non-volatile memory, wherein evaluating each of the bands of the fast non-volatile memory comprises: determining a number of valid data blocks for each of the bands of the fast non-volatile memory; determining an age of data of each of the bands of the fast non-volatile memory; computing a merit score for each of the bands of the fast non-volatile memory based on a ratio of a number of invalid data blocks to the number of valid data blocks for each of the bands and further based on the age of the data for each of the bands, wherein any band having the merit score above a given eviction threshold is designated as a target band; and moving valid data of the one or more target bands from the fast non-volatile memory to the slow non-volatile memory, wherein only valid data of the one or more target bands are moved from the fast non-volatile memory to the slow non-volatile memory. 2. The method of claim 1 wherein determining the number of valid blocks for each band comprises determining a number of valid logical block addresses (LBAs) for each band, and determining the age of the data of each band comprises determining how may bytes ago the LBA data was written. 3. The method of claim 1 wherein after moving the valid data of the one or more target bands from the fast non-volatile memory to the slow non-volatile memory, the method further comprises: erasing the one or more target bands from the fast non-volatile memory. 4. The method of claim 1 , further comprising: retaining specific logical block address (LBA) ranges in the fast non-volatile memory so as to eliminate need to duplicate the same content in the slow non-volatile memory. 5. A non-transitory computer program product comprising instructions encoded thereon that that when executed by one or more processors cause a process to be carried out, the process comprising: receiving host data to be written to a solid-state storage device; writing the host data to a fast non-volatile memory for storing one or more bands of data; evaluating each of the bands of the fast non-volatile memory to identify one or more target bands for eviction from the fast non-volatile memory to a slow non-volatile memory having a lower durability rating than the fast non-volatile memory, wherein evaluating each of the bands of the fast non-volatile memory comprises: determining a number of valid data blocks for each of the bands of the fast non-volatile memory; determining an age of data of each of the bands of the fast non-volatile memory; computing a merit score for each of the bands of the fast non-volatile memory based on a ratio of a number of invalid data blocks to the number of valid data blocks for each of the bands and further based on the age of the data for each of the bands, wherein any band having a score above a given eviction threshold is designated as a target band; and moving valid data of the one or more target bands from the fast non-volatile memory to the slow non-volatile memory, wherein only valid data of the one or more target bands are moved from the fast to slow non-volatile memory. 6. The computer program product of claim 5 , the process further comprising at least one of: temporarily buffering the host data prior to it being written to the fast non-volatile memory; and acknowledging to the host that the write is complete prior to the host data being transferred to the slow non-volatile memory. 7. The computer program product of claim 5 wherein each band of data is associated with a plurality logical block addresses (LBAs), and moving valid data of the one or more target bands from the fast non-volatile memory to the slow non-volatile memory comprises moving valid LBAs from the fast non-volatile memory to the slow non-volatile memory, wherein only valid LBAs of the one or more target bands are moved from the fast to slow non-volatile memory. 8. The computer program product of claim 5 wherein determining the number of valid blocks for each band comprises determining a number of valid logical block addresses (LBAs) for each band, and determining the age of the data of each band comprises determining how may bytes ago the LBA data was written. 9. The computer program product of claim 5 wherein after moving the valid data of the one or more target bands from the fast non-volatile memory to the slow non-volatile memory, the process further comprises: erasing the one or more target bands from the fast non-volatile memory. 10. The computer program product of claim 5 wherein evaluating each of the bands of the fast non-volatile memory to identify the one or more target bands for eviction from the fast non-volatile memory to a slow non-volatile memory comprises continuously monitoring the bands of the fast non-volatile memory independent of data being written. 11. The computer program product of claim 5 , further comprising: retaining specific logical block address (LBA) ranges in the fast non-volatile memory so as to eliminate need to duplicate the same content in the slow non-volatile memory. 12. An apparatus comprising: a host interface to receive data for storage; and one or more controllers to facilitate write suppression, the one or more controllers configured to: receive host data to be written to a non-volatile memory, the non-volatile memory including a fast non-volatile memory for storing one or more bands of data and a slow non-volatile memory having a lower durability rating than the fast non-volatile memory; write the host data to the fast non-volatile memory; evaluate each of the bands of the fast non-volatile memory to identify one or more target bands for eviction from the fast non-volatile memory to the slow non-volatile memory, wherein evaluating each of the bands of the fast non-volatile memory comprises: determine a number of valid data blocks for each of the bands of the fast non-volatile memory; determine an age of data of each of the bands of the fast non-volatile memory; and compute a merit score for each of the bands of the fast non-volatile memory based on a ratio of a number of invalid data blocks to the number of valid data blocks for each of the bands and further based on the age of the data for each of the bands, wherein any band having the merit score above a given eviction threshold is designated as a target band; and move valid data of the one or more target bands for eviction from the fast non-volatile memory to the slow non-volatile memory, wherein only valid data of the one or more target bands are moved from the fast to slow non-volatile memory. 13. The apparatus of claim 12 wherein each band of data is associated with a plurality logical block addresses (LBAs), and the one or more controllers are configured to move valid data blocks of the one or more target bands from the fast non-volatile memory to the slow non-volatile memory by moving valid LBAs from the fast non-volatile memory to the slow non-volatile memory, wherein only valid LBAs of the one or more target bands are moved from the fast to slow non-volatile memory. 14. The apparatus of claim 12 , wherein determining the number of valid blocks for each band comprises determining a number of valid logical block addresses (LBAs) for each band, and determining

Assignees

Inventors

Classifications

  • Migration mechanisms · CPC title

  • Management of blocks · CPC title

  • G06F3/0616Primary

    in relation to life time, e.g. increasing Mean Time Between Failures [MTBF] · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10126958B2 cover?
Techniques are disclosed for write suppression to improve endurance rating of non-volatile memories, such as QLC-NAND SSDs or other relatively slow, low endurance non-volatile memories. In an embodiment, an SSD is configured with a fast frontend non-volatile memory, a relatively slow lower endurance backend non-volatile memory, and a frontend manager that selectively transfers data from the fas…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F3/0616. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 13 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).