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
US9507708B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9507708-B2 |
| Application number | US-201414335939-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 20, 2014 |
| Priority date | Aug 5, 2013 |
| Publication date | Nov 29, 2016 |
| Grant date | Nov 29, 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 NV memory element; and when a specific signal is received and it is detected that specific data having not been written into a same location in a specific block configured to be an MLC memory block within a specific NV memory element of the at least one NV memory element for a predetermined number of times exists in the received data, immediately writing the specific data into another block in the at least one NV memory element.
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 being applied to a controller of the memory apparatus, the controller arranged to control the at least one NV memory 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 demands to write the data; and when a specific signal is received and it is detected that specific data having been written into a same location in 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 for at least once but less than a predetermined number of times exists in the received data, immediately writing the specific data into another block in the at least one NV memory element, to prevent the specific data from being lost, wherein the specific signal indicates that power of the controller is abnormal or the memory apparatus is going to be powered off, the predetermined number of times is larger than one, and the other block is configured as 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 the 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. 3. The method of claim 2 , further comprising: when a data amount of partial data of the received data reaches a predetermined data amount threshold, immediately writing the partial 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 at least one set of data in the plurality of sets of data from the volatile memory, to directly write the at least one set of data into the specific block, wherein a number of times the at least one set of data is written into the specific block does not reach the predetermined number of times yet; wherein the specific data comprises the at least one set of data. 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 at least one page of a set of data comprising a plurality of pages from the host device in a page-by-page manner, and temporarily storing the at least one page of the set of data into the volatile memory, wherein the specific data comprises the at least one page of the set of data, and before a total received data amount of the set of data reaches the predetermined data amount threshold, the set of data is not written into the specific block; and reading the at least one page of the set of data from the other block, and temporarily storing the at least one page read from the other block into the volatile memory, for writing the specific block. 7. The method of claim 6 , further comprising: respectively receiving one other page of the set of data from the host device in a page-by-page manner, and temporarily storing the at least one other page into the volatile memory; and when the total received data amount of the set of data reaches the predetermined data amount threshold, reading at least a portion of the set of data from the volatile memory to directly write the 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 6 , further comprising: respectively receiving another set of data comprising a plurality of pages from the host device in a page-by-page manner, and temporarily storing the other set of data into the volatile memory, until a total received data amount of the other set of data reaches the predetermined data amount threshold, wherein before the total received data amount of the other set of data reaches the predetermined data amount threshold, the other set of data is not written into the specific block; and when the total received data amount of the other set of data reaches the predetermined data amount threshold, reading at least a portion of the other set of data from the volatile memory to directly write the other set of data into the specific block, and directly writing the set of data into the specific block again; wherein by directly writing the set of data into the specific block several times, each bit of data of any page of the set of data is correctly stored into the specific block for further reading. 9. The method of claim 1 , wherein the specific signal comprises at least one of a power-off command and a power detection signal, where the power detection signal is used to indicate at least one of occurrence of power loss and occurrence of power down. 10. The method of claim 1 , wherein a storage capacity of each memory cell of any block in the at least NV memory element is larger than one bit. 11. A memory apparatus, comprising: at least one non-volatile (NV) memory element, each comprising a plurality of blocks; and a controller, arranged to control the at least one NV element, the controller comprising a processing unit arranged to manage the memory apparatus according to a program code embedded in the processing unit or received from outside of the processing unit, wherein the controller temporarily stores data received from a host device into a volatile memory in the controller and utilizes the data in the volatile memory as received data, and dynamically monitors 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 demands to write the data; wherein when a specific signal is received and it is detected that specific data having been written into a same location in 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 for at least once but less than a predetermined number of times exists in the received data, the controller immediately writes the specific data into another block in the
in block erasable memory, e.g. flash memory · CPC title
Allocation control and policies · CPC title
using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title
Multiconfiguration, e.g. local and global addressing · CPC title
Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.