Method and system of enhanced reliability and error immunity in flash storage

US10198217B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10198217-B2
Application numberUS-201615343546-A
CountryUS
Kind codeB2
Filing dateNov 4, 2016
Priority dateNov 4, 2016
Publication dateFeb 5, 2019
Grant dateFeb 5, 2019

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.

A last written page in an open block in NAND flash is identified where the NAND flash includes a plurality of pages and the last written page has first content. Second content is written to an adjacent page in the open block, wherein the adjacent page is physically adjacent to the last written page in the open block and the second content enhances robustness of the first content.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a memory including negative AND (NAND) flash, the NAND flash comprising a plurality of pages; and a NAND flash controller, wherein the NAND flash controller includes a processor and is configured to: identify a last written page in an open block in the NAND flash, the last written page having first content; and write second content to an adjacent page in the open block, wherein: the adjacent page is physically adjacent to the last written page in the open block; the second content enhances robustness of the first content; and the adjacent page is written in response to a criteria associated with a time threshold and a second criteria associated with an error correction decoding result both being satisfied. 2. The system of claim 1 , further comprising a plurality of NAND flash, wherein the system includes a solid state drive (SSD). 3. The system of claim 1 , wherein to identify the last written page includes to: write a page of a write job to the open block in the NAND flash; determine whether the written page is a last page of the write job; in the event that it is determined that the written page is the last page of the write job, flag the written page as the last written page and start a timer; and determine whether the timer exceeds or meets the time threshold, wherein the second content is written to the adjacent page in the event it is determined that the timer exceeds or meets the time threshold. 4. The system of claim 1 , wherein to identify the last written page includes to: write a page of a write job to the open block in the NAND flash; determine whether the written page is a last page of the write job; in the event it is determined that the written page is the last page of the write job, flag the written page as the last written page and start a timer; determine whether the timer exceeds or meets a time threshold; and in the event it is determined that the timer exceeds or meets the time threshold: read the last written page to obtain a read page and perform error correction decoding on the read page to obtain a number of errors; determine whether the error correction decoding has failed, wherein the second content is written to the adjacent page in the event it is determined that the error correction decoding has failed; and in the event it is determined that the error correction decoding is successful, determine whether the number of errors exceeds or meets an error threshold, wherein the second content is written to the adjacent page in the event it is determined that the number of errors exceeds or meets the error threshold. 5. The system of claim 1 , wherein: to write the second content to the adjacent page includes to write a pseudorandom sequence to the adjacent page; and the NAND flash controller is further configured to: generate a single parity check sequence based at least in part on the last written page and one or more previously written pages; and write the single parity check sequence to an intervening page which is between the last written page and the adjacent page in a write sequence, wherein pages which are sequentially adjacent to each other in the write sequence are not necessarily physically adjacent to each other. 6. The system of claim 1 , wherein: to write the second content to the adjacent page includes to write a pseudo-random binary sequence to the adjacent page; and the NAND flash controller is further configured to: generate a single parity check sequence based at least in part on the last written page and one or more previously written pages; write the single parity check sequence to an intervening page which is between the last written page and the adjacent page in a write sequence, wherein pages which are sequentially adjacent to each other in the write sequence are not necessarily physically adjacent to each other; read the last written page to obtain a read page and perform error correction decoding on the read page to obtain a number of errors; determine whether the error correction decoding has failed, wherein in the event it is determined that the error correction decoding has failed, recovered data for the last written page is generated and the recovered data is written to the last written page; and in the event it is determined that error correction decoding is successful, determine whether the number of errors exceeds or meets an error threshold, wherein in the event it is determined that the number of errors exceeds or meets the error threshold, error corrected data is written to the last written page. 7. The system of claim 1 , wherein the memory is configured to provide the processor with further instructions which when executed cause the processor to: receive a write job to write to one or more pages; determine a least number of open pages associated a plurality of open blocks; and determine whether the number of pages in the write job exceeds or meets the least number of open pages, wherein in the event it is determined that the number of pages in the write job exceeds or meets the least number of open pages: an open block with the least number of open pages is selected from the plurality of open blocks in order to obtain a selected open block; and the write job is written to the selected open block. 8. The system of claim 1 , wherein the memory is configured to provide the processor with further instructions which when executed cause the processor to: determine a number of erased blocks in a free block pool from which blocks are selected to be written to; determine whether the number of erased blocks is less than or equal to a threshold number of erased blocks; and in the event it is determined that the number of erased blocks is less than the threshold number of erased blocks, erase an empty block so that the erased block is added to the free block pool. 9. The system of claim 1 , wherein to write the second content to the adjacent page includes to: record, in a bitmap associated with the open block, an indication that the last written page includes valid data; and record, in the bitmap, an indication that the adjacent page includes invalid data. 10. The system of claim 1 , wherein to write the second content to the adjacent page includes to: generate a single parity check sequence based at least in part on the last written page and one or more previously written pages; write the single parity check sequence to an intervening page that is between the last written page and the adjacent page in a write sequence, wherein pages which are sequentially adjacent to each other in the write sequence are not necessarily physically adjacent to each other; write a pseudorandom binary sequence to the adjacent page; record, in a bitmap associated with the open block, an indication that the last written page contains valid data; record, in the bitmap, an indication that the adjacent page includes invalid data; and record, in the bitmap, an indication that the intervening page includes invalid data. 11. A method, comprising: using a negative AND (NAND) flash controller to identify a last written page in an open block in NAND flash, wherein: the NAND flash includes a plurality of pages; and the last written page has first content; and using the NAND flash controller to write second content to an adjacent page in the open block, wherein: the adjacent page is physically adjacent to the last written page in the open block; the second content enhances robustness of the first content; and the adjacent page is written in response to a criteria associated with a time threshold and a second criteria associated with an error correctio

Assignees

Inventors

Classifications

  • in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence) · CPC title

  • G06F3/0659Primary

    Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Management of blocks · 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 US10198217B2 cover?
A last written page in an open block in NAND flash is identified where the NAND flash includes a plurality of pages and the last written page has first content. Second content is written to an adjacent page in the open block, wherein the adjacent page is physically adjacent to the last written page in the open block and the second content enhances robustness of the first content.
Who is the assignee on this patent?
Alibaba Group Holding Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/1068. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 05 2019 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).