1. Field of the Invention
The invention is related to a non-volatile memory access method, a non-volatile memory controller which uses the method, an a non-volatile memory access system.
2. Description of Related Art
Digital cameras, cells phones, and digital music players have undergone rapid growth in recent years, so that consumer demand for storage media have also rapid increased. Since flash memory has properties such as non-volatility of data, low power consumption, small volume, and having no mechanical structures, flash memory is suitable for portable usage, in particular for usage in the above-mentioned portable devices which are powered by batteries. Solid state drives (SSD) are a type of storage device that uses not and (NAND) non-volatile memory as a storage medium. Since non-volatile memories have small volume and large storage capacity, non-volatile memories have been widely used in the storage of important personal information. Hence, the non-volatile memory industry has become one of the popular industries in the whole electronic industry.
In the design of a non-volatile memory access device, each non-volatile memory chip has a plurality of physical blocks, and each of the physical blocks has a plurality of physical pages. A single physical block is the smallest erase unit of the non-volatile memory, and a single physical page is the smallest write unit of the non-volatile memory. Due to the fact that when a memory cell of the non-volatile memory is programmed, only unidirectional programming is executed (i.e. programming the value of the memory cell from 1 to 0), data cannot be directly written to a physical page that has been programmed. In other words, a physical page with data stored therein can only be reprogrammed after this physical page has been erased. Therefore, because a physical block is the smallest erase unit of the non-volatile memory, when a physical page which has existing data is to be erased, the whole physical block to which the physical page belongs must be erased.
Generally, a non-volatile memory controller of the non-volatile memory access device logically groups the physical blocks in the non-volatile memory chip into a system area, a data area, a spare area, or a replacement area. The physical blocks in the system area are used to store important information which are relevant to the non-volatile memory access device, and the physical blocks in the replacement area are used to replace the physical blocks in the data area or in the spare area which are damaged (i.e. damaged physical blocks). Hence, under normal accessing conditions, a host system is unable to access the physical blocks in the system area or in the replacement area. On the other hand, the physical blocks of the data area are used to store effective data written by a write command, and the physical blocks of the spare area are used to substitute the physical blocks of the data area when a write command is executed. Hence it can be known that when the host system gives a write command, the command is usually accompanied by merging of two physical blocks (i.e. the physical block in the data area and the physical block in the spare area), so that the purpose of updating data is achieved.
However, in some applications of non-volatile memory, in particular those of micro secure digital (SD) memory cards which have smart cards therein, the above mechanism for updating data may not be timely performed in a write command period as defined by the current micro SD memory card specification. Generally, it is clearly defined by micro SD memory card specification that the completion time for each write command must be within 250 milliseconds.
Nothing herein should be construed as an admission of knowledge in the prior art of any portion of the present invention. Furthermore, citation or identification of any document in this application is not an admission that such document is available as prior art to the present invention, or that any reference forms a part of the common general knowledge in the art.
USPTO Backgrounds
USPTO Backgrounds