Peripheral component interconnect express controllers configured with non-volatile memory express interfaces
US-9841902-B2 · Dec 12, 2017 · US
US9933963B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9933963-B1 |
| Application number | US-201715446576-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 1, 2017 |
| Priority date | Mar 1, 2017 |
| Publication date | Apr 3, 2018 |
| Grant date | Apr 3, 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.
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.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.