Semiconductor storage device with volatile and nonvolatile memories to allocate blocks to a memory and release allocated blocks
US-9134924-B2 · Sep 15, 2015 · US
US9514042B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9514042-B2 |
| Application number | US-201414334684-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 18, 2014 |
| Priority date | Aug 5, 2013 |
| Publication date | Dec 6, 2016 |
| Grant date | Dec 6, 2016 |
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.
A method for managing a memory apparatus and the associated memory apparatus thereof and the associated controller thereof are provided, where the method includes: temporarily storing data received from a host device into a volatile memory in the controller and utilizing the data in the volatile memory as received data, and dynamically monitoring the data amount of the received data to determine whether to immediately write the received data into at least one non-volatile memory element; and when determining to immediately write the received data into the at least one non-volatile memory element, directly writing the received data into a specific block configured to be a Multiple Level Cell memory block within a specific non-volatile memory element, rather than indirectly writing the received data into the specific block by first temporarily writing the received data into any other block configured to be Single Level Cell memory block.
Opening claim text (preview).
What is claimed is: 1. A method for managing a memory apparatus, the memory apparatus comprising at least one non-volatile (NV) memory element, each of the at least one NV memory element comprising a plurality of blocks, the method applied to a controller of the memory apparatus, the controller being used to control the at least one NV element, the method comprising following steps: temporarily storing data received from a host device into a volatile memory in the controller and utilizing the data in the volatile memory as received data, and dynamically monitoring a data amount of the received data to determine whether to immediately write the received data into the at least one NV memory element, wherein at least one write command received from the host device indicates that the host device requests to write the data; and when determining to immediately write the received data into the at least one NV memory element, directly writing the received data into a specific block configured to be a Multiple Level Cell (MLC) memory block within a specific NV memory element of the at least one NV memory element, rather than indirectly writing the received data into the specific block by first temporarily writing the received data into any other block configured to be a Single Level Cell (SLC) memory block. 2. The method of claim 1 , wherein under a situation that a memory cell in the specific block is used to store a plurality of bits, the plurality of bits need to be repeatedly written into the memory cell for a predetermined number of times, so that the memory cell is correctly programmed in the specific NV memory element, thus making each of the plurality of bits correctly stored into the memory cell for further reading; and the predetermined number of times is larger than 1. 3. The method of claim 2 , wherein the step of dynamically monitoring the data amount of the received data comprises: when the data amount of the received data reaches a predetermined data amount threshold, determining to immediately write the received data into the at least one NV memory element; wherein a storage capacity of the volatile memory is larger than or equal to a product of the predetermined data amount threshold and the predetermined number of times, to allow at least a portion of the received data to be used in a repeated write operation of the memory cell. 4. The method of claim 3 , wherein the predetermined data amount threshold is equal to a storage capacity of a set of memory cells belonging to a word-line in the specific NV memory element. 5. The method of claim 4 , wherein any of the plurality of blocks comprises a predetermined number of pages; and the method further comprises: receiving a plurality of sets of data from the host device, respectively, and temporarily storing the plurality of sets of data into the volatile memory, wherein each of the plurality of sets of data comprises a plurality of pages, and a data amount of each of the plurality of sets of data is equal to the predetermined data amount threshold; and reading the plurality of sets of data from the volatile memory, to directly write the plurality of sets of data into the specific block, respectively, and directly writing a first set of data of the plurality of sets of data into the specific block several times, wherein a number of times the first set of data is written into the specific block reaches the predetermined number of times, so that a specific set of memory cells belonging to a specific word-line in the specific block is correctly programmed in the specific NV memory element, thus making each bit of the first set of data correctly stored in the specific set of memory cells for further reading. 6. The method of claim 2 , wherein any of the plurality of blocks comprises a predetermined number of pages; and the method further comprises: respectively receiving a first set of data comprising a plurality of pages from the host device in a page-by-page manner until a total received data amount of the first set of data reaches a predetermined data amount threshold, and temporally storing the first set of data into the volatile memory, wherein before the total received data amount of the first set of data reaches the predetermined data amount threshold, the first set of data is not written into the specific block; and when the total received data amount of the first set of data reaches the predetermined data amount threshold, reading at least a portion of the first set of data from the volatile memory to directly write the first set of data into the specific block. 7. The method of claim 6 , further comprising: respectively receiving a second set of data comprising a plurality of pages from the host device in a page-by-page manner until a total received data amount of the second set of data reaches the predetermined data amount threshold, and temporally storing the second set of data into the volatile memory, wherein before the total received data amount of the second set of data reaches the predetermined data amount threshold, the second set of data is not written into the specific block; and when the total received data amount of the second set of data reaches the predetermined data amount threshold, reading at least a portion of the second set of data from the volatile memory to directly write the second set of data into the specific block, and directly writing the first set of data into the specific block for a second time. 8. The method of claim 7 , further comprising: respectively receiving a third set of data comprising a plurality of pages from the host device in a page-by-page manner until a total received data amount of the third set of data reaches the predetermined data amount threshold, and temporally storing the third set of data into the volatile memory, wherein before the total received data amount of the third set of data reaches the predetermined data amount threshold, the third set of data is not written into the specific block; and when the total received data amount of the third set of data reaches the predetermined data amount threshold, reading at least a portion of the third set of data from the volatile memory to directly write the third set of data into the specific block, directly writing the second set of data into the specific block for a second time, and directly writing the first set of data into the specific block for a third time, so that each bit of data of any page of the first set of data is correctly stored into the specific block for further reading. 9. The method of claim 1 , further comprising: before determining to immediately write the received data into the at least one NV memory element: when at least one read command received from the host device indicates that the host device requests to read at least a portion of the data, reading at least the portion of the data from the volatile memory to respond to the host device, instead of reading at least the portion of the data from the specific NV memory element. 10. The method of claim 1 , further comprising: directly writing the received data into the specific block several times, wherein under control of the controller, a number of times the received data is written into the specific block reaches a predetermined number of times, so that a specific set of memory cells belonging to a specific word-line in the specific block is correctly programmed in the NV memory element, thus making each bit in the received data correctly stored into the specific set of memory cells for further reading. 11. A memory apparatus, comprising: at least one non-volatile (NV) memory element, each comprising a plurality of blocks; and a controller, arranged to co
Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers · CPC title
Multilevel memory having cells with different number of storage levels · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
in block erasable memory, e.g. flash memory · CPC title
Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.