1. Field of the Invention
The present invention generally relates to a non-volatile memory system, and more particularly to a method of initializing a non-volatile memory system.
2. Description of Related Art
A flash memory is one kind of a non-volatile solid state memory device that can be electrically erased and reprogrammed. The memory capacity of flash memories is improving at an exponential rate as predicted by Moore's law such that the flash memory is propelling into a new generation approximately every 1.5 years. The memory capacity, speed and applications are enhanced owing to improvement in process technology.
The flash memory, however, cannot be 100% flawless. A flash memory ordinarily has some defective (or bad) bits. The faulty flash memories with had bits of a prominent amount may be thrown away, therefore greatly wasting resources.
In the conventional flash memory industry, a flash memory is loaded with a flash ID that describes memory information such as vendor ID, size of a block or a page, process or ECC capability, at the factory by the flash memory makers. However, due to defect bits in the flash memory as discussed above, the loaded flash ID may probably be corrupted, and its associated memory information thus can no longer be recovered later in initializing the flash memory system by a memory controller.
In order to overcome the problems mentioned above, a need has thus arisen to propose a novel scheme of writing system information previously and then reading the system information later in the system initialization.
In view of the foregoing, one embodiment of the present invention provides a method of initializing a nonvolatile memory system in a more effective manner such that the non-volatile memories (particularly the faulty non-volatile memories) may be effectively used and system data may be correctly retrieved.
According to one embodiment, a non-volatile memory is provided, into which system data are written previously based on a formula rule. A plurality of copies of the system data are written to the non-volatile memory. The system data are searched in the non-volatile memory according to the formula rule and a selected data access mode in the initialization operation. At least one operating parameter of the selected data access mode is reconfigured. It is checked if the searched system data are successfully read. The system data are utilized to set the at least one operating parameter of the non-volatile memory system when the searched system data are successfully read from the non-volatile memory.
A method of initializing a non-volatile memory system according to one embodiment of the present invention is disclosed. The initialization is a process of preparing a non-volatile memory system 100, as shown in
The flash memory 11 (e.g., a NAND flash memory) of the embodiment may support, for example, single-level cell (SLC), multi-level cell (MLC) or triple-level cell (TLC) architectures of flash memory. Generally speaking, the embodiment may be adapted to downgraded or normal flash memories. A non-volatile memory system 100 made of, among others, the linked flash memory 11 and the memory controller 12 may be adapted to a storage device such as, but not limited to, solid-state drive (SSD), CompactFlash (CF) Card, CFast Card, MSPro, Secure Digital (SD) Card, uSD Card or Universal Serial Bus (USB) storage.
The embodiment adopts a formula rule, for example, a polynomial equation, based on which memory system data (hereinafter “system data”) are written to the flash memory 11 before initializing the non-volatile memory system 100. In one exemplary embodiment, a polynomial equation 2n (n is a non-negative integer) is used as the formula rule to determine an address, at which the system data can be stored. According to one aspect of the embodiment, the system data are later retrieved to perform the initialization, rather than retrieving (single) flash memory information, such as flash ID (provided by flash memory makers), which may probably be corrupted and therefore cannot be utilized to finish the initialization. Afterwards, according to the same formula rule, the system data searching performed later in the initialization may become more reliable.
As the flash memory 11 ordinarily has bad bits of an amount that may exceed recovering capability of error correcting code (ECC), a number of copies of the system data are thus written to the flash memory 11, as exemplified in
Upon successfully searching and retrieving the system data in the initialization, the system data may be utilized to get the appropriate system parameters for the memory controller 12 to control the flash memory 11. According to the appropriate system parameters, the flash memory 11 may then be effectively operated.
In step 52, the formula rule is used to obtain a row address (RA) of the flash memory 11. In step 53, at least one column address (CA) is obtained by selecting one or more sectors for partitions) in a page as exemplified in
The steps 51-53 are repeated until all available ECC capabilities, voltage levels and driving strength currents run out (steps 54-56). On the other hand, the flow stops if the searched system data have been successfully read (step 57). If the system data have not been successfully read (step 57) and the last CA has been reached (step 58), the flow goes to step 52 to obtain another RA according to the formula rule; otherwise, the RA is checked (step 59). If the last RA has not been reached, the flow goes to step 53 to obtain another CA. According to the flow shown in
In order to prevent a time lag of unacceptable length while searching the system data, a timeout scheme, as exemplified in FIG. 7, may be adopted in the embodiment. In step 71, data are read with an ECC capability. If a predetermined timeout has not occurred (step 72), RA or CA is incremented (step 73). If the timeout has occurred a predetermined times (step 74), RA or the ECC capability is changed (step 75).
Although specific embodiments have been illustrated and described, it will be appreciated by those skilled in the art that various modifications may be made without departing from the scope of the present invention, which is intended to be limited solely by the appended claims.