Open block handling to reduce write errors

US9933963B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9933963-B1
Application numberUS-201715446576-A
CountryUS
Kind codeB1
Filing dateMar 1, 2017
Priority dateMar 1, 2017
Publication dateApr 3, 2018
Grant dateApr 3, 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.

Systems and methods presented herein provide for open block handling of an SSD. In one embodiment, an SSD includes a buffer, and an MLC flash device. The SSD also includes a controller operable to write data in the buffer based on an Input/Output (I/O) request (e.g., from a host), to begin copying the data from the buffer to a block of the MLC flash device, to copy a portion of the data associated with open word lines of the block to another location in the buffer after a power cycle, and to update a lookup table for the copied portion of the data with the other location so that the copied portion of the data can be accessed via a subsequent I/O request.

First claim

Opening claim text (preview).

What is claimed is: 1. A Solid State Drive (SSD), comprising: a buffer; a multi-level cell (MLC) flash device; and a controller operable to write data in the buffer based on an Input/Output (I/O) request, to begin copying the data from the buffer to a block of the MLC flash device, to copy a portion of the data associated with open word lines of the block to another location in the buffer after a power cycle, and to update a lookup table for the copied portion of the data with the other location so that the copied portion of the data can be accessed via a subsequent I/O request. 2. The SSD of claim 1 , wherein: the controller is further operable to abandon the open word lines of the MLC flash device after the power cycle until garbage collection is performed. 3. The SSD of claim 1 , wherein: the controller is further operable to generate a pointer to the other location in the lookup table, and to direct a read I/O request for the copied portion of the data to the other location of the buffer using the pointer. 4. The SSD of claim 1 , wherein: the controller is further operable to copy the portion of the data to another location of the MLC flash device after the power cycle. 5. The SSD of claim 4 , wherein: the controller is further operable to generate a pointer to the other location of the MLC flash device, and to direct a read I/O request for the copied portion of the data to the other location of the MLC flash device using the pointer. 6. The SSD of claim 1 , wherein: the buffer comprises a single level cell device. 7. The SSD of claim 1 , wherein: the controller is further operable to close the block of the MLC device after the power cycle, and to retain fully programmed data in the block so that the fully programmed data in the block can be accessed via a subsequent I/O request. 8. A method operable with a controller of a Solid State Drive (SSD), the method comprising: writing data in a buffer based on an Input/Output (I/O) request; begin copying the data from the buffer to a block of a multi-level cell (MLC) flash device; copying a portion of the data associated with open word lines of the block to another location in the buffer after a power cycle; and updating a lookup table for the copied portion of the data with the other location so that the copied portion of the data can be accessed via a subsequent I/O request. 9. The method of claim 8 , further comprising: abandoning the open word lines of the MLC flash device after the power cycle until garbage collection is performed. 10. The method of claim 8 , further comprising: generating a pointer to the other location in the lookup table; and directing a read I/O request for the copied portion of the data to the other location of the buffer using the pointer. 11. The method of claim 8 , further comprising: copying the portion of the data to another location of the MLC flash device after the power cycle. 12. The method of claim 11 , further comprising: generating a pointer to the other location of the MLC flash device; and directing a read I/O request for the copied portion of the data to the other location of the MLC flash device using the pointer. 13. The method of claim 8 , wherein: the buffer comprises a single level cell device. 14. The method of claim 8 , further comprising: closing the block of the MLC device after the power cycle; and retaining fully programmed data in the block so that the fully programmed data in the block can be accessed via a subsequent I/O request. 15. A non-transitory computer readable medium comprising instructions that, when executed by a controller of a Solid State Drive (SSD), direct the controller to: write data in a buffer based on an Input/Output (I/O) request; begin copying the data from the buffer to a block of a multi-level cell (MLC) flash device; copy a portion of the data associated with open word lines of the block to another location in the buffer after a power cycle; and update a lookup table for the copied portion of the data with the other location so that the copied portion of the data can be accessed via a subsequent I/O request. 16. The computer readable medium of claim 15 , further comprising instructions that direct the controller to: abandon the open word lines of the MLC flash device after the power cycle until garbage collection is performed. 17. The computer readable medium of claim 15 , further comprising instructions that direct the controller to: generate a pointer to the other location in the lookup table; and direct a read I/O request for the copied portion of the data to the other location of the buffer using the pointer. 18. The computer readable medium of claim 15 , further comprising instructions that direct the controller to: copy the portion of the data to another location of the MLC flash device after the power cycle. 19. The computer readable medium of claim 18 , further comprising instructions that direct the controller to: generate a pointer to the other location of the MLC flash device; and direct a read I/O request for the copied portion of the data to the other location of the MLC flash device using the pointer. 20. The computer readable medium of claim 15 , wherein: the buffer comprises a single level cell device. 21. The computer readable medium of claim 15 , further comprising instructions that direct the controller to: close the block of the MLC device after the power cycle; and to retain fully programmed data in the block so that the fully programmed data in the block can be accessed via a subsequent I/O request.

Assignees

Inventors

Classifications

  • Replication mechanisms · CPC title

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

  • Conservative garbage collection · CPC title

  • Power saving in storage systems · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · 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 US9933963B1 cover?
Systems and methods presented herein provide for open block handling of an SSD. In one embodiment, an SSD includes a buffer, and an MLC flash device. The SSD also includes a controller operable to write data in the buffer based on an Input/Output (I/O) request (e.g., from a host), to begin copying the data from the buffer to a block of the MLC flash device, to copy a portion of the data associa…
Who is the assignee on this patent?
Seagate Technology Llc, Seagate Technology
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 03 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).