Block management in non-volatile memory system with non-blocking control sync system

US9817593B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9817593-B1
Application numberUS-201615207212-A
CountryUS
Kind codeB1
Filing dateJul 11, 2016
Priority dateJul 11, 2016
Publication dateNov 14, 2017
Grant dateNov 14, 2017

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.

In a non-volatile memory system, the controller maintains in its volatile memory two free block lists for the assignment of memory circuit blocks when writing user and system data. Copies of the free block lists are maintained in the non-volatile memory. While allocating blocks from a first of the free block lists, the controller can update a second of the free block lists as part of a control sync operation preparing control data stored in non-volatile memory. This allows the memory system to operate in a non-blocking manner during the control sync. Once the second free block lists is prepared and the control sync completed, the second block can subsequently be used for block allocations and a control sync operation can be done to update the first block.

First claim

Opening claim text (preview).

It is claimed: 1. A method of operating a non-volatile memory system, comprising: storing data, including user and control data, in a non-volatile memory circuit having a plurality of non-volatile memory cells formed as a plurality of multi-cell blocks; and managing the storage of data on the memory circuit by a controller, the managing comprising: maintaining in volatile memory of two or more free block lists, the two or more free block lists being formed of blocks available for the writing of data; maintaining copies of the two of more free block lists in the non-volatile memory; allocating blocks from a first free block list of the two or more free block lists; while allocating the blocks from the first free block list, performing a synchronizing operation for a second free block list of the two or more free block lists, the synchronizing operation comprising: updating the second free block list; and preparing control data related to the updating of the second free block list; and allocating blocks from the updated second free block list and discontinuing allocating the blocks from the first free block list after the synchronizing operation is completed. 2. The method of claim 1 , further comprising: receiving a notification that the synchronizing operation for the second free block list is completed; storing the control data related to the updating of the second free block list in the non-volatile memory; and in response to the notification, allocating the blocks from the updated second free block list. 3. The method of claim 1 , wherein updating the second free block list comprises: adding one or more blocks without valid data; and removing the blocks allocated from the first free block list. 4. The method of claim 3 , wherein adding the one or more blocks without valid data comprises: selecting blocks from a pool of available blocks including previously allocated, but subsequently released blocks. 5. The method of claim 4 , wherein updating the second free block list comprises: replacing the one or more blocks with a corresponding number of one or more blocks from the pool of available blocks based on characteristics of the one or more blocks being replaced and the one or more blocks from the pool of available blocks used as replacements. 6. The method of claim 1 , wherein the two or more free block lists are allowed to have common elements. 7. The method of claim 1 , further comprising: during an initialization process, reestablishing the two or more free block lists maintained in the volatile memory from the copies of the two or more free block lists from the non-volatile memory into the volatile memory. 8. The method of claim 1 , wherein the managing is implemented as firmware executed by the controller. 9. The method of claim 1 , wherein the non-volatile memory circuit is a monolithic three-dimensional semiconductor memory device in which the memory cells are arranged in multiple physical levels above a silicon substrate and comprise a charge storage medium. 10. A controller for a non-volatile memory system, comprising: a volatile memory; logic circuitry configured to manage the storage of data on a non-volatile memory circuit having a plurality of non-volatile memory cells formed as a plurality of multi-cell blocks, wherein managing of the storage of data on the non-volatile memory circuit comprises: maintaining in volatile memory of two or more free block lists, the two or more free block lists being formed of blocks available for the writing of data; maintaining copies of the two or more free block lists in the non-volatile memory; allocating blocks from a first free block list of the two or more free block lists; while allocating the blocks from the first free block list, performing a synchronizing operation for a second free block list of the two or more free block lists, the synchronizing operation comprising: updating the second free block list; and preparing control data related to the updating of the second free block list; and allocating blocks from the updated second free block list and discontinuing allocating the blocks from the first free block list after the synchronizing operation is completed. 11. The controller of claim 10 , the managing further comprising: receiving a notification that the synchronizing operation for the second free block list is completed; storing the control data related to the updating of the second free block list in the non-volatile memory; and in response to the notification, allocating the blocks from the updated second free block list. 12. The controller of claim 10 , wherein updating the second free block list comprises: adding one or more blocks without valid data; and removing the blocks allocated from the first free block list. 13. The controller of claim 10 , wherein during an initialization process, the logic circuitry reestablishes the two or more free block lists maintained in the volatile memory from the copies of the two or more free block lists from the non-volatile memory into the volatile memory. 14. The controller of claim 10 , wherein the managing is implemented as firmware executed by the controller. 15. The controller of claim 10 , wherein the non-volatile memory circuit is a monolithic three-dimensional semiconductor memory device in which the memory cells are arranged in multiple physical levels above a silicon substrate and comprise a charge storage medium. 16. A non-volatile memory system, comprising: a non-volatile memory circuit having a plurality of non-volatile memory cells formed as a plurality of multi-cell blocks; and a controller, including: a volatile memory; logic circuitry configured to manage the storage of data on a non-volatile memory circuit having a plurality of non-volatile memory cells formed as a plurality of multi-cell blocks, wherein managing of the storage of data on the non-volatile memory circuit includes: maintaining in volatile memory of two or more free block lists, the two or more free block lists being formed of blocks available for the writing of data; maintaining copies of the two or more block lists in the non-volatile memory; allocating blocks from a first free block list of the two or more free block lists; while allocating the blocks from the first free block list, performing a synchronizing operation for a second free block list of the two or more free block lists, the synchronizing operation including: updating the second free block list; and preparing control data related to the updating of the second free block list and allocating blocks from the updated second free block list and discontinuing allocating the blocks from the first free block list after the synchronizing operation is completed. 17. The non-volatile memory system of claim 16 , the managing further comprising: receiving a notification that the synchronizing operation for the second free block list is completed; storing the control data related to the updating of the second free block list in the non-volatile memory; and in response to the notification, allocating the blocks from the updated second free block list. 18. The non-volatile memory system of claim 16 , wherein updating the second free block list comprises: adding one or more blocks without valid data; and removing the blocks allocated from the first free block list. 19. The non-volatile memory system of claim 16 , wherein during an initialization process, the logic circuitry reestablishes the two or more free block list

Assignees

Inventors

Classifications

  • Sensing or reading circuits; Data output circuits · CPC title

  • Replication mechanisms · CPC title

  • Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down · CPC title

  • Programming or data input circuits · 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 US9817593B1 cover?
In a non-volatile memory system, the controller maintains in its volatile memory two free block lists for the assignment of memory circuit blocks when writing user and system data. Copies of the free block lists are maintained in the non-volatile memory. While allocating blocks from a first of the free block lists, the controller can update a second of the free block lists as part of a control …
Who is the assignee on this patent?
Sandisk Technologies Llc
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 Nov 14 2017 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).