This application claims the priority benefit of China application serial no. 201310471811.5, filed on Oct. 11, 2013. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.
1. Field of the Invention
The invention relates to a solid state storage device, and particularly to a solid state storage device having a plurality of programming schemes and a controlling method thereof.
2. Description of Related Art
The growth of digital cameras, mobile phones, and MP3 players has been rapid in recent years. Consequently, the consumers' demand for storage media has increased tremendously. Since flash memory has the characteristics of non-volatility, low power consumption, small volume, non-mechanical structure, and high read-and-write speed, it is most adaptable in portable electronic products, such as laptops, digital cameras, mobile phones and so on. A solid state storage device is a storage device adopting flash memory as storage medium. Therefore, flash memory has become an important part of the electronic industries.
The flash memory used in a solid state storage device is usually a non-volatile memory element. Namely, when data is written into the flash memory, it is stored in the solid state storage device even if system power is turned off.
Referring to
During programming and erasing data into and from the flash memory unit 1, the flash memory unit 1 may be deteriorated through multiple times of injection and removal, making the threshold voltage of the programmed flash memory unit 1 unable to be maintained and become deviated. Once the threshold voltage of the programmed flash memory unit 1 is deviated, a storage state of the programmed flash memory unit 1 may not be correctly identified, thus having error bits. Besides, through multiple times of programming and erasing data into and from the flash memory unit 1, the lifetime of the flash memory unit 1 is gradually shortened through deterioration of the tunnel oxide layer 4.
The invention provides a solid state storage device and a controlling method thereof capable of setting a programming scheme according to a bit error parameter found when reading data and using different programming schemes at different stages of time to prolong lifetime of the flash memory.
The invention provides a controlling method of a solid state storage device. The solid state storage device includes a flash memory module for storing data, and the flash memory module has a plurality of memory cells. Each of the plurality of memory cells has a plurality of storage states. The controlling method includes the following steps. A first programming scheme is used to program the data into the flash memory module. A data error parameter of the flash memory module is determined. If the data error parameter exceeds an error predefine value, a second programming scheme is used to program the data into the flash memory module. The first programming scheme and the second programming scheme respectively map to a first threshold voltage frame and a second threshold voltage frame, and a voltage interval of the second threshold voltage frame is broader than a voltage interval of the first threshold voltage frame.
In an embodiment of the invention, the controlling method further includes computing at least one of a parameter of erasing times, a parameter of reading times, and a parameter of writing times of the memory cells. When the at least one of the parameter of erasing times, the parameter of reading times, and the parameter of writing times exceeds a predefined value, it is switched from the first programming scheme to the second programming scheme.
In an embodiment of the invention, the storage states include an erase state and at least one non-erase state, and the first programming scheme has at least one first verification voltage to distinguish the storage states. The second programming scheme has at least one second verification voltage to distinguish the storage states. The first verification voltage and the second verification voltage corresponding to the same storage state have different voltage values.
In an embodiment of the invention, the at least one non-erase state has a corresponding at least one first verification voltage in the first programming scheme, the at least one non-erase state has a corresponding second verification voltage in the second programming scheme. The second verification voltage is higher than the first verification voltage corresponding to the identical non-erase state.
In an embodiment of the invention, the erase state has a corresponding first threshold voltage lower limit in the first programming scheme, and the erase state has a corresponding second threshold voltage lower limit in the second programming scheme. The voltage interval of the first threshold voltage frame is categorized into a plurality of first threshold voltage sub-frames corresponding to the storage states according to the at least one first verification voltage and the first threshold voltage lower limit. The voltage interval of the second threshold voltage frame is categorized into a plurality of second threshold voltage sub-frames corresponding to the storage states according to the at least one second verification voltage and the second threshold voltage lower limit. Voltage intervals of the second threshold voltage sub-frames are broader than voltage intervals of the first threshold voltage sub-frames corresponding to the same storage state.
In an embodiment of the invention, the step of determining the data error parameter of the flash memory module includes computing a corrected bit number found when the data is read by using an error correction code (ECC), and using the corrected bit number as the data error parameter.
In an embodiment of the invention, the step of determining the data error parameter of the flash memory module includes computing a bit error rate found when the data is read, and using the bit error rate as the data error parameter.
From another perspective, the invention provides a solid state storage device, including a connector, a flash memory module, and a memory controller. The flash memory module has a plurality of memory cells, each of the memory cells having a plurality of storage states. The memory controller is coupled to the connector and the flash memory module. The memory controller uses a first programming scheme to program data into the flash memory module and determines a data error parameter of the flash memory module. If the data error parameter exceeds an error predefine value, the memory controller uses a second programming scheme to program the data into the flash memory module. The first programming scheme and the second programming scheme respectively map to a first threshold voltage frame and a second threshold voltage frame, and a voltage interval of the second threshold voltage frame is broader than a voltage interval of the first threshold voltage frame.
In view of the above, in the solid state storage device and the controlling method thereof according to the embodiments, the appropriate programming scheme is used according to the data error parameter detected when the data is read. In this way, different verification voltages are used for programming and reading data at different stages of time, thereby prolonging the lifetime of the flash memory module.
To make the above features and advantages of the invention more comprehensible, several embodiments accompanied with drawings are described in detail as follows.
The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.
Generally speaking, a solid state storage device includes a flash memory module and a memory controller. The solid state storage device is usually used with a host system, so that the host system may write data into or read data from the solid state storage device.
In this exemplary embodiment, the connector 102 is compatible with the Universal Serial Bus (USB) standard. However, it should be noted that the invention is not limited thereto. The connector 102 may also meet the Parallel Advanced Technology Attachment (PATA) standard, Institute of Electrical and Electronic Engineers (IEEE) 1394 standard, Peripheral Component Interconnect (PCI) Express standard, Secure Digital (SD) interface standard, Serial Advanced Technology Attachment (SATA) standard, Memory Stick (MS) interface standard, Multi Media Card (MMC) interface standard, Embedded Multimedia Card (eMMC) interface standard, Universal Flash Storage (UFS) interface standard, Compact Flash (CF) interface standard, Integrated Device Electronics (IDE) standard, or other compatible standards.
The memory controller 104 executes a plurality of logic gates or control commands implemented in a hardware form or in a firmware form, and performs operations of writing, reading or erasing data in the flash memory module 106 according to the command of the host system.
The flash memory module 106 is coupled to the memory controller 104 for storing data. The flash memory module 106 may be a single level cell (SLC) NAND flash memory module (i.e. a flash memory module where one memory cell stores one bit of data), a multi-level cell (MLC) NAND flash memory module (i.e. a flash memory module where one memory cell stores two bits of data), a trinary level cell (TLC) NAND flash memory module (i.e. a flash memory module where one memory cell stores three bits of data), other flash memory modules, or other memory modules having the similar characteristics.
Referring to
Referring to
Memory cells in the flash memory module 106 represent bit data that are stored with a threshold voltage. Specifically speaking, each memory cell in the memory cell array 2202 has a plurality of storage states, and the storage states are distinguished with a plurality of predefined voltages.
When the data is to be read from the memory cell, the memory controller 104 commands the controlling circuit 2212 of the flash memory module 106 to apply a predefined reading voltage set to the word line of the memory cell to be read, and determines the storage state of the memory cell according to a conductive state of the memory cell. However, multiple times of injection and removal of electrons during writing and erasing may result in deterioration of a part of the structure of the memory cells 702 of the flash memory module 106, such as deterioration of a tunnel oxide layer. Namely, the threshold voltage of the memory cells may be deviated through the multiple times of injection and removal of electrons. In other words, threshold voltage distributions of the storage states of the flash memory module consequently become broader (as shown in dotted lines in
Based on the characteristics of flash memory above, the invention provides a solid state storage device having a plurality of programming schemes. The solid state storage device may choose the corresponding programming scheme to program the data into the flash memory module according to different conditions.
At Step 801, the memory controller 104 uses a first programming scheme to program data into the memory storage module 106. Then, at Step 803, the memory controller 104 determines a data error parameter of the memory storage module 106. At Step 805, if the data error parameter exceeds an error predefine value, the memory controller 104 uses a second programming scheme to program the data into the flash memory module 106. In this embodiment of the invention, the first programming scheme and the second programming scheme are respectively maps to a first threshold voltage frame and a second threshold voltage frame. Also, a voltage interval of the second threshold voltage frame is broader than a voltage interval of the first threshold voltage frame.
As previously described, the memory cells in the flash memory module 106 may be categorized into a plurality of storage states according to the predetermined verification voltages. In an embodiment of the invention, the threshold voltage frame may be defined as a voltage interval formed between a maximal verification voltage and a predefined voltage. In an embodiment of the invention, the predefined voltage is a threshold voltage lower limit of the erase state “ER” of the memory cells.
Nevertheless, the invention is not limited thereto. In another embodiment, the predefined voltage may be set to be a voltage value lower than the threshold voltage lower limit of the erase state “ER”.
Besides, in
It should be understood based on the description of
On the contrary, if the voltage interval of the threshold voltage frame is defined to be too broad in the programming scheme (i.e. the intervals between the threshold voltage distributions corresponding to the storage states are too broad) in order to avoid overlapping of the threshold voltage distributions of the memory cells in the flash memory module and read the data normally, the higher threshold voltage facilitates deterioration of the tunnel oxide layer and shortens the lifetime of the flash memory module 106, even though overlapping of the threshold voltage distributions of the memory cells may be reduced. Therefore, in this embodiment of the invention, the memory controller 104 may choose the corresponding programming scheme according to different conditions to program the data into the flash memory module 106, and the different programming schemes have different threshold voltage frames. Thus, the flash memory module 106 may perform programming with the appropriate programming scheme at different stages.
In an embodiment of the invention, the data error parameter may be a bit error parameter, and the error predefine value may be an allowable threshold value. At Step 803, the memory controller 104 performs an error detection process to obtain the bit error parameter. When the bit error parameter exceeds the allowable threshold value, the memory controller 104 switches from the first programming scheme P_1 to the second programming scheme P_2, and alternatively uses the second programming scheme P_2 to program the data into the flash memory module 106. The voltage interval of the second threshold voltage frame f_2 is broader than the voltage interval of the first threshold voltage frame f_1. More specifically, when the threshold voltage distributions of the memory cells become broader, the chance of incorrect categorization under the same programming scheme increases as well, and the bit error parameter of data bits increases as well. Therefore, when the memory controller 104 finds that the bit error parameter exceeds the allowable threshold value, the memory controller 104 switches from the first programming scheme P_1 to the second programming scheme P_2 with a broader threshold voltage frame, so as to improve the chance of data reading error. In this embodiment of the invention, the bit error parameter is a corrected bit number or a bit error rate (RBER).
Specifically speaking, the memory controller 104 usually has an error correction unit (ECU) for performing an error checking and correcting process to ensure data correctness. In this exemplary embodiment, when the memory controller 104 receives a writing command from the host system, the error correction unit generates a corresponding error checking and correcting (ECC) code for the data corresponding to the writing command, and the memory controller 104 writes the data corresponding to the writing command and the corresponding error checking and correcting code into the flash memory module 106. Then, when the memory controller 104 reads the data from the flash memory module 106, the memory controller 104 simultaneously reads the error checking and correcting code corresponding to the data, and the error correction unit performs the error checking and correcting process to the data that is read according to the error checking and correcting code.
Specifically, the error correction unit is designed to be capable of correcting a certain number of error bits (the number is referred to as the maximally correctable error bit number). For example, the maximally correctable error bit number is 24. If a number of error bits in the data being read is no more than 24, the error correction unit is capable of correcting the error bits back to correct values according to the error correcting code. Namely, the data is error-correctable. If the number of error bits in the data being read is more than 24, the error correction unit reports a failure of error correction. Namely, the data is not error-correctable.
Therefore, in the exemplary embodiment described herein, the memory controller 104 computes the corrected bit number found when the data being read is read according to the error checking and correcting code, and determines whether the corrected bit number exceeds an allowable threshold value. When the corrected bit number exceeds the allowable threshold value, the first programming scheme P_1 is switched to the second programming scheme P_2. In this embodiment, the allowable threshold value may be the maximally correctable error bit number of the ECU or a value smaller than the maximally correctable error bit number. For example, given that the maximally correctable error bit number is 24, the allowable threshold value may be set at a value equal to or less than 24. Namely, when the memory controller 104 is still capable of correcting the data back to the original and correct data, it is not necessary for the memory controller 104 to switch the programming scheme. However, once the corrected bit number gradually increases, it is indicated that the memory controller 104 may not be capable of accurately restoring the data. At this time, the memory controller 104 switches to a programming scheme having a broader threshold voltage breadth to avoid incorrect reading of data.
In another embodiment, the memory controller 104 may also compute the bit error rate found when the data being read is read and determines whether the bit error rate exceeds the allowable threshold value. When the bit error rate exceeds the allowable threshold value, the first programming scheme P_1 is switched to the second programming scheme P_2. However, even though the embodiment described above uses the data error parameter as a criterion for switching the programming scheme, the memory controller 104 may also switch the programming scheme with other determination mechanisms in another embodiment. For example, the memory controller 104 may compute at least one of a parameter of erasing times, a parameter of reading times, and a parameter of writing times of the memory cells in the flash memory module 106. When the at least one of the parameters of erasing, reading, and writing times exceeds a predefined value, the memory controller 104 switches from the first programming scheme P_1 to the second programming scheme P_2. Therefore, the memory controller 104 may use different programming schemes to program the data into the flash memory module 106 at different stages.
Based on the above, it is understood that at the earlier stage when the memory storage device is used, the variance of the threshold voltage distributions of the memory cells in the flash memory module 106 is smaller, so it does not require a broad interval between the threshold voltages of the storage states. Consequently, a threshold voltage frame of an initial programming scheme may be set with a narrower voltage interval. Namely, the memory cells may be programmed into a storage state as required with a smaller programming voltage value, and the smaller programming voltage value may slow down deterioration of the oxide layer of the flash memory module 106. When the memory controller 104 determines that the data error parameter is too high, the memory controller 104 switches the programming scheme of the flash memory module 106 and uses the programming scheme having a broader voltage interval. In this way, lifetime of the solid state storage apparatus 100 may increase.
In this embodiment, each of the programming schemes has the corresponding verification voltages to distinguish the plurality of storage states. The plurality of storage states include the erase state and at least one non-erase state. In addition, in different programming schemes, voltage values of verification voltages corresponding to the same storage state are different. In other words, when the programming scheme is switched from the first programming scheme to the second programming scheme, the verification voltages corresponding to the storage states change as the voltage interval of the threshold voltage frame becomes broader. Two examples are described below for further details.
Referring to
In addition, in this embodiment, the memory controller 104 determines whether to switch from the first programming scheme PS_1 to the second programming scheme PS_2 based on whether the data error parameter exceeds a first error predefine value, and determines whether to further switch from the second programming scheme PS_2 to the third programming scheme PS_3 based on whether the data error parameter exceeds a second error predefine value. In this embodiment, the first and second error predefine values may be identical or different, and the first and second error predefine values may be set in correspondence with practical application of the data error parameter.
In this exemplary embodiment, the erase state “ER” has a corresponding threshold voltage lower limit VS_1er in the first programming scheme PS_1, a corresponding threshold voltage lower limit VS_2er in the second programming scheme PS_2, and a corresponding threshold voltage lower limit VS_3er in the third programming scheme PS_3. Besides, a non-erase state “A” has a corresponding verification voltage VS_1a in the first programming scheme PS_1, a corresponding verification voltage VS_2a in the second programming scheme PS_2, and a corresponding verification voltage VS_3a in the third programming scheme PS_3. Similarly, as shown in
In the example shown in
Referring to
Specifically, as shown in
In view of the foregoing, the controlling method of the solid state storage device and the solid state storage device provided in the invention are capable of adaptively adjusting the programming schemes according to a result of determination of the data error parameter, and the programming schemes have the threshold voltage frames with the voltage intervals of different breadths. Therefore, the deterioration of the flash memory module is slowed down, and the life time of the solid state storage device is increased. In addition, the incorrect reading of data incorrectly is improved by adaptively adjusting the programming schemes.
It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the present invention cover modifications and variations of this invention provided they fall within the scope of the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
201310471811.5 | Oct 2013 | CN | national |