Data reading method of flash memory and memory controller

文档序号:1044832 发布日期:2020-10-09 浏览:29次 中文

阅读说明:本技术 快闪存储器的数据读取方法和存储器控制器 (Data reading method of flash memory and memory controller ) 是由 杨宗杰 于 2013-02-22 设计创作,主要内容包括:本发明公开一种快闪存储器的数据读取方法和存储器控制器。其中上述快闪存储器包括多个存储器单元,且该多个存储器单元包括一第一群组及一第二群组,上述方法包括:读取该第一群组的该多个存储器单元以得到一第一计数数字;依据该第一计数数字以得到该第一群组的该多个存储器单元的一第一电压特性;读取该第二群组的该多个存储器单元以得到一第二计数数字;依据该第二计数数字以得到该第二群组的该多个存储器单元的一第二电压特性;以及利用该第二电压特性以对该第一群组的该多个存储器单元进行一读取操作;其中该第一群组的该多个存储器单元包含至少一部分的该第二群组的该多个存储器单元。(The invention discloses a data reading method of a flash memory and a memory controller. The flash memory comprises a plurality of memory units, and the plurality of memory units comprise a first group and a second group, and the method comprises the following steps: reading the plurality of memory cells of the first group to obtain a first counting number; obtaining a first voltage characteristic of the plurality of memory cells of the first group according to the first counting number; reading the plurality of memory cells of the second group to obtain a second counting number; obtaining a second voltage characteristic of the plurality of memory cells of the second group according to the second counting number; and performing a read operation on the plurality of memory cells of the first group using the second voltage characteristic; wherein the plurality of memory cells of the first group includes at least a portion of the plurality of memory cells of the second group.)

1. A data reading method of a flash memory is characterized in that the flash memory comprises a plurality of memory units, and the memory units comprise a first group and a second group, the method comprises the following steps:

reading the plurality of memory cells of the first group to obtain a first counting number;

obtaining a first voltage characteristic of the plurality of memory cells of the first group according to the first counting number;

reading the plurality of memory cells of the second group to obtain a second counting number;

obtaining a second voltage characteristic of the plurality of memory cells of the second group according to the second counting number; and

performing a read operation on the plurality of memory cells of the first group using the second voltage characteristic;

wherein the plurality of memory cells of the first group includes at least a portion of the plurality of memory cells of the second group.

2. The data reading method of claim 1, wherein the first voltage characteristic is different from the second voltage characteristic.

3. The method of claim 1, wherein reading the plurality of memory cells of the first group using the second voltage characteristic comprises:

determining an offset direction according to the first counting number and the second counting number; and

adjusting a control gate voltage for performing the read operation according to the offset direction.

4. A data reading method of a flash memory, wherein the flash memory comprises a plurality of memory cells and each of the plurality of memory cells has a specific threshold voltage, the method comprising:

obtaining a first threshold voltage distribution representing threshold voltages of a first group of the memory cells;

obtaining a second threshold voltage distribution representing threshold voltages of a second group of the memory cells, wherein the second threshold voltage distribution is different from the first threshold voltage distribution, and the first group of the memory cells includes at least a portion of the second group of the memory cells; and

controlling the flash memory to perform at least one read operation on the first group of the memory cells according to the second threshold voltage distribution.

5. The method as claimed in claim 4, wherein a first pitch of the first threshold voltage distribution is smaller than a second pitch of the second threshold voltage distribution.

6. The method as claimed in claim 4, wherein the second threshold voltage distribution includes at least part of the information of the first threshold voltage.

7. The method as claimed in claim 5, wherein the first threshold voltage distribution comprises a first number set, each number of the first number set corresponding to each specific voltage range, and the second threshold voltage distribution comprises a second number set, each number of the second number set corresponding to each specific voltage range,

wherein the step of obtaining the second threshold voltage distribution representing the threshold voltages of the second group of memory cells further comprises:

and selecting a part of the first number set as the second number set.

8. The method as claimed in claim 4, wherein the step of obtaining the first threshold voltage distribution representing the threshold voltages of the first group of the memory cells further comprises:

determining a first pitch to obtain the first threshold voltage distribution according to a characteristic of the first group of memory cells.

9. The method as claimed in claim 8, wherein the characteristic of the first group of memory cells includes a program/erase count.

10. The method as claimed in claim 4, wherein the step of controlling the flash memory by the first group of the memory cells performing the read operation according to the second threshold voltage distribution further comprises:

determining an offset direction according to the second threshold voltage distribution; and

and adjusting a control gate voltage according to the offset direction to perform the reading operation.

11. A memory controller for reading data stored in a flash memory, wherein the flash memory includes a plurality of memory cells, the plurality of memory cells including a first group and a second group, and each memory cell corresponding to a particular threshold voltage, the memory controller comprising:

a control logic circuit for reading the plurality of memory cells of the first group to obtain a first comparison result of a first codeword and a second codeword, obtaining a first voltage characteristic of the plurality of memory cells of the first group according to a first count number of the first comparison result, reading the plurality of memory cells of the second group to obtain a second comparison result of the second codeword and a second codeword, obtaining a second voltage characteristic of the plurality of memory cells of the second group according to the first comparison result and the second comparison result, and performing a read operation on the plurality of memory cells of the first group by using the second voltage characteristic;

wherein the plurality of memory cells of the first group includes at least a portion of the plurality of memory cells of the second group.

12. The memory controller of claim 11, wherein the first voltage characteristic is different from the second voltage characteristic.

13. The memory controller of claim 11, wherein when the second voltage characteristic is utilized to perform the read operation on the plurality of memory cells of the first group, the memory controller further determines an offset direction according to the first comparison result and the second comparison result, and adjusts a control gate voltage for performing the read operation according to the offset direction.

Technical Field

The present invention relates to a data reading method for a flash memory, and more particularly, to a memory control device and method for reading data stored in a flash memory according to binary allocation characteristics of bit sequences in memory cells.

Background

Flash memory is characterized by the ability to electronically erase and program stored data. It is widely used in memory cards, solid state drives, and portable multimedia players (portable multimedia players). Since the flash memory is a non-volatile memory, it does not need to consume power to store information in the memory. In addition, the flash memory has the characteristics of quick reading and better shock resistance. These characteristics explain why flash memory is commonly used.

The flash memory may be classified into a NOR type flash memory and a NAND type flash memory. Regarding the NAND type flash memory, the characteristics of the NAND type flash memory are that the erasing and programming time is shortened and the chip area required for each cell is reduced, so the NAND type flash memory has better storage density and lower cost compared to the NOR type flash memory. Generally, flash memory stores data in an array of memory cells, wherein the memory cells are comprised of floating gate transistors. Each memory cell can store one bit of information or more than one bit of information by appropriately adjusting the number of electrons in the floating gate (floating gate) to configure the voltage threshold required to turn on the memory cell formed by the floating gate. In this manner, when one or more predetermined control gate voltages are applied to a control gate of the floating gate transistor, the conductive state of the floating gate transistor will indicate the binary bit stored by the floating gate transistor.

However, the number of electrons stored in a flash memory cell can be affected or disturbed due to certain factors. For example, write (program) disturb, read disturb, and/or hold disturb (retention disturb) can generate noise within the memory. A memory cell of a NAND type flash memory can store more than one bit of information, for example, a physical page (physical page) includes a plurality of logical pages, and each logical page is read using one or more control gate voltages. For example, a flash memory cell capable of storing three bits of information has eight different states (i.e., charge levels) representing different numbers of charges (i.e., different threshold voltages). However, as the number of program/erase operations and/or retention time increases, the threshold voltage of the memory cells in the flash memory may change. Therefore, reading a stored bit from a memory cell using the original control gate voltage setting (i.e., the threshold voltage setting) may result in failure to obtain correct stored information due to the change in threshold voltage.

Disclosure of Invention

The present invention is directed to a method, a memory control device and a system for reading data stored in a flash memory, which solve the above problems by allocating threshold voltages.

According to an embodiment of the present invention, a method for reading data stored in a flash memory is disclosed. The flash memory comprises a plurality of memory cells and each memory cell has a specific threshold voltage. Embodiments include obtaining a first threshold voltage distribution representing threshold voltages of a first group of memory cells; obtaining a second distribution of threshold voltages representing threshold voltages of a second group of memory cells, wherein the second threshold voltage is different from the first threshold voltage, and the first group of memory cells includes at least a portion of the second group of memory cells; and controlling the flash memory to perform at least one read operation on the first group of memory bits according to the second threshold voltage distribution.

Drawings

FIG. 1 shows a system architecture diagram of a memory;

FIG. 2 is a simplified diagram of adjusting the control gate voltage for reading LSB data;

FIG. 3 is a simplified diagram showing the determination of the offset direction of the control gate voltage for the purpose of finding the optimum voltage value;

FIG. 4 is another simplified diagram of adjusting the control gate voltage for reading LSB data;

FIG. 5 is a simplified diagram illustrating the adjustment of the control gate voltage of the target physical page P _1 for reading the data of the LSB;

FIG. 6 is a simplified diagram illustrating the determination of the offset direction of the control gate voltage of the target physical page P _1, wherein the control gate voltage is adjusted to find an optimal voltage value;

FIG. 7A is a simplified diagram of adjusting the control gate voltage for reading LSB data;

FIG. 7B shows a distribution of threshold voltages according to the average threshold voltage of FIG. 7A;

FIG. 7C is a graph showing a distribution of threshold voltages according to a portion of the threshold voltages selected from FIG. 7A;

FIG. 8 shows a flow chart of an embodiment of the present invention.

Description of the reference numerals

1000-memory system

1100-flash memory

1110. M _0, M _1, …, M _ K-memory cells

1200-memory control device

1210-control logic

1212 to control unit

1214 to counting unit

1216 to comparison unit

1220-receiving circuit

1222 storage device

1230 ECC Circuit

1232 ECC detector

1234-ECC corrector

800-flow chart

810. 820, 830, 840, 850-step

BS-bit sequence

Cw-coding

DS-offset direction

B. C, D, N number set

P-target entity page

V-Voltage Range

VG、VLSB-control gate voltage

Detailed Description

The invention aims to read data stored in a flash memory. The flash memory comprises a plurality of memory cells, and each memory cell has a plurality of threshold voltages. The memory cells read information according to a first threshold voltage distribution of a first group and a second threshold voltage distribution of a second group, wherein the distribution of the second threshold voltage is different from the distribution of the first threshold voltage, the first group includes at least a portion of the second group, and the flash memory is controlled to perform a read operation of at least the first group based on the second threshold voltage distribution. Therefore, better threshold voltage can be used during the reading operation and the probability of reading bit errors is reduced. A more detailed description will be presented below.

It is noted that the threshold voltage distributions and the mentioned values of the control gate voltages illustrated below are only described as examples and are not limiting for the present invention. In addition, the present invention will describe in a simple and unambiguous manner the reading operation of the bits stored by the memory cells in a physical page of the NAND-type flash memory. Regardless of whether the type of flash memory is a NAND type flash memory or a type of flash memory therein (e.g., a NOR type flash memory), the principles of the present invention perform read operations according to a smooth threshold voltage distribution.

FIG. 1 is a system architecture diagram of an embodiment of the present invention. The memory system 1000 includes a memory control device 1200 and a flash memory 1100 (e.g., a NAND type flash memory) as described in the previous paragraph. The data stored in the memory cells M _0 to M _ K of the target physical page P _0 can be read by appropriately setting a control gate voltage VG _1-VG _ N. For example, the control gate voltages VG _1-VG _ N are set to confirm that all memory cells 103 (floating gate transistors) of the target physical pages P _ 1-P _ N are in a conductive state. In one embodiment, each memory cell is configured to store N bits (e.g., three bits including a Least Significant Bit (LSB), a median significant bit (CSB), and a Most Significant Bit (MSB), and the flash memory 102 sets the logic level of the control voltage VG _0 to (2)N-1) to identify the N bits of each memory cell 103 of the target physical page P _ 0. In one embodiment, each memory cell 1110 is configured to store 3 bits, including a LSB, a CSB, and a MSB. Thus, the memory control device 1200 will determine seven control gate voltages VLSB、VCSB1、VCSB2、VMSB1、VMSB2、VMSB3And VMSB4And controls the flash memory 1100 to perform a read operation according to the control gate voltage. In the following embodiments, the read operation is performed on the LSB of the bit cell, but the operation is only for illustrative purposes and is not limited thereto.

The memory control device 1200 functions to control read/write operations of the flash memory 1100. In one embodiment, the memory control device 1200 includes a control logic 1210, a receiving circuit 1220 and an ECC (error checking and correction) circuit 1230, wherein the control logic 1210 has a control unit 1212, a counting unit 1214 and a comparing unit 1216, the receiving circuit 1220 has a storage device 1222 (e.g., a memory device), and the ECC circuit 1230 has an ECC detector 1232 and an ECC corrector 1234. It is noted that fig. 1 only shows an embodiment in a simple and clear manner. The memory control device 1200 may provide other functions by adding additional components. As previously described, the threshold voltage distribution of the memory cells 1110 of the flash memory 1100 is changed due to certain factors, such as read disturb, write/program disturb, and/or retention disturb. One of ordinary skill in the art will recognize that a physical page of partial memory cells 1110 is used to store ECC information (e.g., an ECC code). Thus, the ECC circuitry 1230 performs an ECC operation with information (e.g., an encoding) read from a physical page. More specifically, the ECC detector 1232 will verify the correctness of the read information to detect the existence of the error bit. When ECC detector 1232 detects an error, ECC corrector 1234 is enabled to correct the error bit contained in the detected read information. However, when the number of error bits existing in the read information exceeds the maximum value of the load of the ECC corrector 1234, the ECC corrector 1234 will indicate that the read information includes error bits that cannot be corrected. Therefore, the control logic 1210 will enable the threshold voltage tracking mechanism to determine whether the read information can pass the ECC parity check (ECC parity check) of the ECC circuit 1230. A more detailed description will be presented below.

In one embodiment, the ECC circuit 1230 may be a BCH (Bose-Chaudhuri-Hocquenghem) decoder. The control logic 1210 is used for controlling the flash memory 1100 to perform a plurality of read operations on the memory cells M _0 to M _ K of the target physical page P _0, and determining read information of the memory cells M _0 to M _ K according to binary distribution characteristics of the bit sequences BS _0 to BS _ K. The read operations include at least a first read operation, a second read operation, and a third read operation, which determine a control gate voltage shift direction to obtain a preferred control gate voltage. A more detailed description will be presented below.

Please refer to fig. 2 with reference to fig. 3. Fig. 2 shows a simple diagram of adjusting the control gate voltage for reading LSB data. FIG. 3 shows the determination of the bias of the control gate voltageA simple diagram of the shift direction, wherein the purpose of the control gate voltage adjustment is to find the optimum voltage value. Due to the change in the distribution of the threshold voltages, the initial programming of the threshold voltages of some memory cells, which are distributed between the voltage range V5 and the voltage range V9, stores the LSB as 1, and the initial programming of the threshold voltages of some memory cells, which have the electron level L4 distributed in the voltage range V1-V5, stores the LSB as 0. In order to minimize the number of error bits of the read information of the target physical page P _0, the control gate voltage for reading the LSB data should be set by V5 of fig. 2. When the control unit 1212 initially controls the gate voltage VLSBSet V7, and flash memory 1100 based on the initial control gate voltage VLSBWhen the first read operation is performed from the memory cell M _0 to the memory cell M _ K, the number of error bits contained in the read information (i.e., the first code CW _1 composed of the first bits of the bit sequence BS _0 to the bit sequence BS _ K) exceeds the maximum number of error bits that can be corrected by the ECC circuit, thereby enabling the threshold voltage tracking mechanism. Next, the control unit 1212 updates the initial control gate voltage V6 distributed over the voltage range V6 generated by the first read operationLSBWherein the voltage of V6 is lower than the voltage of V7 and has a minimum pitch (Δ V), so that the memory control device 1200 can control the trimming of the flash memory 1100. Then the control unit 1212 controls the flash memory 1100 from the memory cell M _0 to the memory cell M _ K according to the control gate voltage VLSB' perform a second read operation. Therefore, the receiving circuit 1220 receives a second code CW _2 formed by the second bits of the bit sequences BS _0 to BS _ K. It is noted that the bits of the first code CW _1 and the bits of the first code CW _1 buffered in the storage device 1222 are transmitted to the comparing unit 1216 one by one before the bits of the next second code CW _2 are overwritten. The comparing unit 1216 is used to compare the bits of the first code CW _1 (i.e., the first bits of the bit sequence BS _0 to BS _ K) with the bits of the second code CW _2 (i.e., the second bits of the bit sequence BS _0 to BS _ K). The comparison result indicates which bit position of the first bit is changed from a first binary bit (e.g., '1') to a second binary bitE.g., "0") to be inverted. The counting unit 1214 is coupled to the comparing unit 1216 and the control unit 1212, and is configured to count the number of first bit inversions between the first code CW _1 and the second code CW _ 2. That is, the counting unit 1214 generates a first counting number N1 by counting the number of first bit inversions between the first code CW _1 and the second code CW _2, wherein the first bit inversion occurs when the first bit and the second bit of the bit sequence are the first binary bit (e.g., "1") and the second binary bit (e.g., "0"), respectively.

Then, the control unit 1212 updates the control gate voltage V generated by the second read operation and distributed over the voltage range V8LBS', where the voltage of V8 is higher than the voltage of V7, and then controlling the flash memory from the memory cell M _0 to the memory cell M _ K according to the updated control gate voltage VLSB"perform the third read operation. Therefore, the receiving circuit 1220 receives a third code CW _3 composed of the third bits of the bit sequences BS _0 to BS _ K. The comparing unit 1216 is further configured to compare the bits of the second code CW _2 (i.e., the second bits of the bit sequence BS _0 through BS _ K) with the bits of the third code CW _3 (i.e., the third bits of the bit sequence BS _0 through BS _ K). The comparison result will indicate which bit position of the second bit is inverted as a result of the transition from a second binary bit (e.g., "0") to a first binary bit (e.g., "1"). The counting unit 1214 is further configured to count the number of second bit inversions between the second code CW _2 and the third code CW _ 3. That is, the counting unit 1214 generates a second counting number N2 by counting the number of second bit inversions between the second bit and the third bit of the bit sequence BS _0 to BS _ K, wherein the second bit inversion occurs when the second bit and the third bit of the bit sequence are the second binary bit (e.g., "0") and the first binary bit (e.g., "1"), respectively.

After receiving the first count number N1 and the second count number N2 generated by the control unit 1214, the control unit 1214 determines which readout is to be read by referring to the first count number N1 and the second count number N2The information may pass a parity check of the ECC circuit. For example, the control unit 1212 determines the shift direction DS of the control gate voltage according to the first count number N1 and the second count number N2. More specifically, as shown in fig. 2, a first count number N1 represents all numbers deemed to be 0 due to shifting the control gate voltage from V7 to V6, while a second count number N2 represents all numbers deemed to be 1 when shifting the control gate voltage from V6 to V8. Thus, the numbers (N2-N1) represent all numbers identified as 1 when the control gate voltage is shifted from V7 to V8. In one embodiment, the value of the number (N2-N1) is greater than N1, indicating that the minimum of the original threshold voltage distribution corresponding to logic values "1" and "0" is at the initial control gate voltage VLSBTo the left of (c). Based on the above result, the control unit 1212 determines the offset direction DS accordingly. Further, the first count number N1 represents the number of memory cells having a threshold voltage between V7 and V6. The numbers (N2-N1) represent the number of memory cells with threshold voltages between V7 and V8. The first count number N1 and numbers (N2-N1) represent a portion of the threshold voltage distributions of memory cells M _0 through M _ K.

After determining the offset direction DS, the control logic 1210 determines a new control gate voltage according to the offset direction DS. When a new control gate voltage is applied to each of the control gates of memory cells M _0 through M _ K of the target physical page P _0, the obtained read information (i.e., a new code) passes the parity check of the ECC circuit, indicating that the code processed by the ECC circuit 1230 is error-free. When the control unit 1212 determines the data of the LSB successfully, the control unit 1212 records the control gate voltage currently used as an initial control gate voltage, and uses the initial control gate voltage for the next LSB reading operation on the target physical page P _0, wherein the control unit 1212 updates the control gate voltage according to the offset direction.

However, when a new control gate voltage is applied to each control gate of the memory cells M _0 to M _ K of the target physical page P _0, and the obtained read information (i.e., a new code) does not pass the parity check of the ECC circuit, the code processed by the ECC circuit 1230 still includes uncorrectable bits, and the control logic 1210 determines another control gate voltage according to the offset direction DS. The control gate voltage is continuously updated according to the offset direction DS until the code is error-free or all error bits are correctable. It is noted that the ECC circuitry 1230 (e.g., a BCH code) has error correction capability. Therefore, the control unit 1212 does not need to correctly shift the control gate voltage to the optimum value V5 according to the shift direction DS.

In the above embodiment, the control unit 1212 controls the flash memory 1100 to sequentially use the control gate voltage VLSBPerforming a first read operation with a relatively low control gate voltage VLSB' performing a second read operation, and using a relatively high control gate voltage VLSB"perform the third read operation. Thus, the initial control gate voltage VLSBThe lower control gate voltage and the higher control gate voltage are sequentially provided to the control gates of each of the memory cells M _0 through M _ K. However, the above embodiments are described in a simple and clear manner, but are only for illustrative purposes and are not limited thereto.

As previously mentioned, the threshold voltage distribution of the memory cells 1110 in the flash memory 1100 may be affected or disturbed due to certain factors, such as write (program) disturb, read disturb, and/or save disturb. In some cases, the threshold voltage distribution of the memory cells will change to a non-uniform distribution. FIG. 4 shows another simple diagram of adjusting the control gate voltage for reading LSB data. As shown in fig. 4, the threshold voltage distributions of the memory cells M _0 to M _ K of the target physical page P _1 are non-uniform. The optimal control gate voltage to read the memory cell should be V5. In other words, the control gate voltage V5 can be considered the minimum specification of the threshold voltage distribution of the memory cell. Since the non-uniform distribution is between the voltage V6 and the voltage V8, however, the optimal control threshold voltage V5 cannot be found. It is noted that the pitch of each of the different threshold voltages V1-V9 is the minimum pitch, so that the memory control device 1200 can control the trimming of the flash memory 1100. According to the aforesaid thresholdThe concept of the Vt tracking mechanism is to separately find a first count number N1, a second count number and numbers (N2-N1) of the memory cells of the target physical page P _ 1. The first count number N1 represents the number of memory cell threshold voltages of the target physical page P _1 that lie between V6 and V7. The numbers (N2-N1) represent the number of memory cell threshold voltages of the target physical page P _1 that lie between V7 and V8. The first count number V1 and numbers (N2-N1) represent the number of memory cell threshold voltage distributions for target physical page P _1 that lie between V6-V8. In addition, according to the concept of the threshold voltage tracking mechanism, the offset direction DS may be a wrong offset direction, i.e. towards a voltage higher than the control gate voltage VLSBIn the direction of (a). Therefore, the control gate voltage updated according to the offset direction DS is not helpful for obtaining an error-free code or a correctable code. When a correctable code is not available, the control unit 1212 adjusts the control gate voltage to be higher than the initial voltage VLSBAnd relative readout information is constantly obtained (e.g., V8, V9, etc.). After a plurality of ECC failure (uncorrectable) operations (e.g. 3 times), the control unit 1222 stops operating and operates according to a voltage higher than the initial voltage VLSBThe offset direction of the voltage adjusts the control gate voltage and enters a further threshold voltage tracking mechanism state. A more detailed description will be presented next.

Please refer to fig. 5 with reference to fig. 6. FIG. 5 shows a simplified schematic diagram of adjusting the control gate voltage of the target physical page P _1, wherein the control gate voltage is used to read the data of the LSB. FIG. 6 is a simplified diagram illustrating the determination of the offset direction of the control gate voltage of the target page P _1, wherein the control gate voltage is adjusted to find an optimal voltage value. In order to minimize the error bits in the read information of the target physical page P _1, the control gate voltage for reading the LSB data should be preferably set. Since the finally obtained offset direction DS is not helpful to find a correctable code, the control unit 1212 will increase the control gate voltage adjustment pitch in the further threshold voltage tracking scheme state to eliminate the error-free effect of the threshold voltage distribution. Control unit 1212 will initially control the gatePole voltage VLSBSet at V7, and the flash memory 1100 is programmed according to the initial control gate voltage V for the memory cells M _ 0-M _ K of the target physical page P _1LSBA first read operation is performed and a first code CW _ 1' consisting of a first bit of the bit sequence BS _0 through BS _ K is obtained. Next, the control unit 1212 updates the initial control gate voltage V by the first read operation of V5LSBWherein V5 is two minimum distances Δ V (i.e., 2 Δ V) lower than V7. The control unit 1212 controls the flash memory 1100 according to the updated control gate voltage V from the memory cell M _0 to the memory cell M _ KLSB' perform a second read operation. Then, the receiving circuit 1220 receives a second code CW _ 2' consisting of the second bits of the bit sequences BS _0 to BS _ K. It is noted that the bits of the first code CW _1 and the bits of the first code CW _1 buffered in the storage device 1222 are transmitted to the comparing unit 1216 one by one before the bits of the next second code CW _2 are overwritten. The comparing unit 1216 is used to compare the bits of the first code CW _1 '(i.e., the first bits of the bit sequence BS _0 to BS _ K) with the bits of the second code CW _ 2' (i.e., the second bits of the bit sequence BS _0 to BS _ K). The comparison result will indicate which bit position causes the first bit to invert when a first binary bit (e.g., "1") transitions to a second binary bit (e.g., "0"). The counting unit 1214 is coupled to the comparing unit 1216 and the control unit 1212, and is configured to count the number of first bit inversions between the first code CW _1 'and the second code CW _ 2'. That is, the counting unit 1214 generates a first counting number a1 by counting the number of first bit inversions between the first code CW _1 'and the second code CW _ 2', wherein the first bit inversion occurs when the first bit of a bit sequence is a first binary bit (e.g., "1") and the second bit is a second binary bit (e.g., "0").

Then, the control unit 1212 updates the control gate voltage V generated by the second read operation and distributed over the voltage range V9LBS' where V9 is two minimum pitches Δ V (i.e., 2 Δ V) higher than V7, and then controlling the flash memory from memory cell M _0 to memory cellElement M _ K according to the updated control gate voltage VLBS"perform the third read operation. Therefore, the receiving circuit 1220 receives a third code CW _ 3' consisting of the third bits of the bit sequences BS _0 to BS _ K. It is noted that the first code CW _1 'originally buffered in the storage device 1222 is overwritten by the second code CW _ 2'; in addition, the bits of the second code CW _2 'buffered in the storage device 1222 are transferred to the comparing unit 1216 one by one before the bits of the next third code CW _ 3' are overwritten. The comparing unit 1216 is further configured to compare the bits of the second code CW _2 '(i.e., the second bits of the bit sequences BS _0 through BS _ K) with the bits of the third code CW _ 3' (i.e., the third bits of the bit sequences BS _0 through BS _ K). The comparison result will indicate which bit position of the second bit is inverted as a result of the transition from a second binary bit (e.g., "0") to a first binary bit (e.g., "1"). The counting unit 1214 is further configured to count the number of second bit inversions between the second encoding CW _2 'and the third encoding CW _ 3'. That is, the counting unit 1214 generates a second counting number a2 by counting the number of second bit inversions between the second bit and the third bit of the bit sequence BS _0 to BS _ K, wherein the second bit inversion occurs when the second bit and the third bit of the bit sequence are the second binary bit (e.g., "0") and the first binary bit (e.g., "1"), respectively.

After receiving the first count number a1 and the second count number a2 generated by the control unit 1214, the control unit 1214 determines which read information can pass the parity check of the ECC circuit by referring to the first count number a1 and the second count number a 2. For example, the control unit 1212 determines the shift direction DS of the control gate voltage according to the first count number a1 and the second count number a 2. More specifically, as shown in fig. 5, a first count number a1 represents the number of reputations of 0 for shifting the control gate voltage from V7 to V5, and a second count number a2 represents the number of reputations of 1 for shifting the control gate voltage from V5 to V9. Thus, the numbers (A2-A1) represent all numbers identified as 1 when the control gate voltage is shifted from V7 to V9. In one embodiment, the numbers (A2-A1)A value greater than a1, indicating that the minimum of the original threshold voltage distribution corresponding to logic values "1" and "0" is at the initial control gate voltage VLSBTo the left of (c). Based on the above result, the control unit 1212 determines the offset direction DS accordingly. Further, the first count number A1 represents the number of memory cells having a threshold voltage between V7 and V5. The numbers (A2-A1) represent the number of memory cells with threshold voltages between V7 and V9. The first count number A1 and numbers (A2-A1) represent a partial threshold voltage distribution of memory cells M _0 through M _ K of the target physical page P _ 1. It is noted that the threshold voltage distribution of fig. 4 is different from the threshold voltage distribution of fig. 5, the pitch of fig. 4 is the minimum pitch Δ V, and the pitch of fig. 5 is two minimum pitches (i.e., 2 Δ V). The threshold voltage distribution at the pitch of 2 Δ V (referred to as a second threshold voltage distribution) is gentler than the threshold voltage distribution at the pitch of Δ V (referred to as a first threshold voltage distribution). The first threshold voltage distribution represents threshold voltages of a first group of memory cells having threshold voltages between V6 and V8. The second threshold voltage distribution represents threshold voltages of a second group of memory cells having threshold voltages between V5 and V9. The first group of memory cells includes a second group of partial memory cells.

The spacing for adjusting the control gate voltage may be referenced to the program/erase times that the memory cell can be read. Generally, memory cells with higher program/erase counts will experience a worse error-free threshold voltage effect. The pitch must be increased to eliminate this effect. The control unit 1212 may find a program/erase count of the target memory cell from a look-up table of the control logic 1210 and determine the spacing of the adjusted control gate voltages for the threshold voltage tracking mechanism. It is noted that the pitch may be sized according to other characteristics of the target memory cell.

After determining the correct offset direction DS according to the second threshold voltage distribution, the control logic 1210 determines a new control gate voltage according to the correct offset direction DS. A correct code can be found according to the correct offset direction DS. The method for finding a correctable code according to the correct offset direction DS is similar to the method mentioned in fig. 2 and 3, and therefore will not be described.

FIG. 7A shows a simplified schematic of adjusting the control gate voltage used to read the LSB data. Due to the change in the threshold voltage distribution, some of the memory cells initially programmed to store the LSB of 1 have their threshold voltages distributed between the voltage range V5 to the voltage range V11, and some of the memory cells initially programmed to store the LSB of 0 have their threshold voltages distributed between the voltage range V1 to the voltage range V5. In order to minimize the number of erroneous bits of the read information of the target physical page P _2, as shown in fig. 7, the control gate voltage for reading LSB data should be set at V5. When the control unit 1212 initially controls the gate voltage VLSB0Set at V7 and flash memory 1100 in target physical page P _2 memory cell M _0 to memory cell M _ K according to initial control gate voltage VLSB0When the first read operation is performed, the number of error bits (i.e. a first code CW _1 consisting of the first bit of the bit sequence BS _0 to BS _ K) of the read information exceeds the maximum number that can be corrected by the ECC circuit 1230. Therefore, the threshold voltage tracking mechanism is enabled. Next, the control unit 1212 updates the bit at V6 (V) used in the first read operationLSB1) Is initially controlled by the gate voltage VLSB0Wherein V6 is below V7 by a minimum pitch, so that the memory control device 1200 can control trimming the flash memory 1100. Then the control unit 1212 selects the memory cells M _0 to M _ K according to the initial control gate voltage V on the target physical page P _2LSB1Controls the flash memory 1100 to perform the second read operation. Therefore, the receiving circuit 1220 receives a second code CW _2 formed by the second bits of the bit sequences BS _0 to BS _ K. It is noted that the bits of the first code CW _1 and the first code CW _1 buffered in the storage device 1222 are transferred to the comparing unit 1216 one by one before the bits of the next second code CW _2 are overwritten. The comparing unit 1216 is used to compare the bits of the first code CW _1 (i.e., the first bits of the bit sequence BS _0 to BS _ K) with the bits of the second code CW _2 (i.e., the second bits of the bit sequence BS _0 to BS _ K). The comparison result indicates the first bit factor of which bit positionIs inverted from a first binary bit (e.g., "1") to a second binary bit (e.g., "0"). The counting unit 1214 is coupled to the comparing unit 1216 and the control unit 1212, and is configured to count the number of first bit inversions between the first code CW _1 and the second code CW _ 2. That is, the counting unit 1214 generates a first counting number B1 by counting the number of first bit inversions between the first bit and the second bit of the bit sequence BS _0 to BS _ K, wherein the first bit inversion occurs when the first bit of the bit sequence is a first binary bit (e.g., "1") and the second bit is a second binary bit (e.g., "0").

Then, the control unit 1212 updates the control gate voltage V generated by the second read operation and distributed over the voltage range V8LBS1Wherein V8 is higher than V7 by a minimum distance Δ V, and then controlling the flash memory from the memory cell M _0 to the memory cell M _ K according to the updated control gate voltage VLBS3A third read operation is performed. Therefore, the receiving circuit 1220 receives a third code CW _3 composed of the bit sequence 0 of the target physical page P _2 to the third bit of the bit sequence BS _ K. It is noted that the first code CW _1 originally buffered in the storage device 1222 is overwritten by the second code CW _ 2; in addition, the bits of the second code CW _2 buffered in the storage device 1222 are transferred to the comparing unit 1216 one by one before the bits of the next third code CW _3 are overwritten. The comparing unit 1216 is further configured to compare the bits of the second code CW _2 (i.e., the second bits of the bit sequence BS _0 through BS _ K) with the bits of the third code CW _3 (i.e., the third bits of the bit sequence BS _0 through BS _ K). The comparison result will indicate which bit position causes the second bit to invert when a second binary bit (e.g., "0") transitions to a first binary bit (e.g., "1"). The counting unit 1214 is further configured to count the number of second bit inversions between the second code CW _2 and the third code CW _ 3. That is, the counting unit 1214 generates a second counting number B2 by counting the number of second bit inversions between the second bit and the third bit of the bit sequence BS _0 to BS _ K, wherein the second bit inversion occursWhen the second bit and the third bit of a bit sequence are the second binary bit (e.g., "0") and the first binary bit (e.g., "1"), respectively.

As shown in fig. 7A, the first count number B1 represents all numbers deemed to be 0 due to shifting the control gate voltage from V7 to V6, while the second count number N2 represents all numbers deemed to be 1 when shifting the control gate voltage from V6 to V8. Thus, when the control gate voltage is shifted from V7 to V8, the numbers (B2' -B1) represent all numbers identified as 1. The first count number B1 indicates the control gate voltage range V7 to V6 and represents the number of memory cells with threshold voltages between the voltage range V7 and the voltage range V6. As shown in FIG. 7A at B1, the numbers (B2' -B1) indicate the control gate voltage ranges V7-V8 and indicate the number of memory cells with threshold voltages between voltage range V7 and voltage range V8. As with the techniques described in the previous embodiments, one of ordinary skill in the art can readily understand how to determine VLSB3、VLSB4、VLSB5、VLSB6、VLSB7And VLSBThe control gate voltages are adjusted and the sets of numbers B3, B4, B5, B6, B7 and B8 indicating each particular control gate voltage range are obtained by the control logic 1210 and therefore not described. It is noted that the setting of the numbers B1, B2, B3, B4, B5, B6, B7, and B8 and the corresponding range of particular control gate voltages can be considered a first threshold voltage distribution for memory cells having threshold voltages between V3 and V11 and can be stored in the control logic 1210. The control gate voltage adjustment method of the above embodiments is described in a simple and clear manner, but is only for illustrative purposes and is not limited thereto. One of ordinary skill in the art can determine the number of control gate voltages to adjust.

FIG. 7B shows a distribution of threshold voltages according to the average threshold voltage of FIG. 7A. Since the threshold voltage distribution (first threshold voltage distribution) shown in FIG. 7A is not even, determining a control gate voltage to perform a read operation on the target physical page P _2 using the first threshold voltage distribution will not result in a correctable code. Therefore, the control logic performs an averaging operation on the first threshold voltage distribution to eliminate the non-uniform effect and obtain a flat threshold voltage distribution (a second threshold voltage distribution). A more detailed description will be presented next.

As shown in FIG. 7B, the second threshold voltage distribution includes the settings of the sets of numbers C1, C2, C3, C4, C5, and C6. Each numeral designating a particular control gate voltage range. The number C1 indicates the control gate voltage range V7 to V6 and represents the number of memory cells with threshold voltages between the voltage range V7 and the voltage range V6. Similarly, the number C2 indicates the control gate voltage range V7 to V8 and indicates the number of memory cells with threshold voltages between the voltage range V7 and the voltage range V8, and so on. The control logic 1210 obtains the number C1 by averaging B1, B2, and B3. In the first threshold voltage distribution, the number B1 indicates a voltage range V6-V7. The relevant range denoted by the numeral B1 is identical to the relevant range denoted by the numeral C1. The number B2 indicates a voltage range V7-V8, which is a voltage range (i.e., V6-V7) adjacent to the voltage range indicated by the number C1. The number B3 indicates a voltage range V5-V6, which is another voltage range (i.e., V6-V7) adjacent to the voltage range indicated by the number C1. The numbers C2, C3, C4, C5, and C6 can be derived in the same manner by the control logic 1210.

It is noted that many other prior art methods different from the above embodiments can obtain a smooth second threshold voltage distribution according to the first threshold voltage. For example, the number C1 may be derived from the average number B1 to the number B5, the number B1 to the number B2, or the number B1 and the number B3. Alternatively, the control logic 1210 may perform a running sum operation on the numbers B1-B8 to obtain the numbers C1-C6. For example, the number C1 can be obtained by summing the number B1 to the number B3. The number C2 can be obtained by summing the number B1, the number B2, and the number B4, and so on. It is noted that the second threshold voltage distribution can be determined by performing an averaging operation or a cumulative sum operation on the first threshold voltage operation. In other words, the second threshold voltage distribution can be obtained by processing the information (the number of memory cells and their mapping) of the first threshold distribution.

Please refer to fig. 7C in conjunction with fig. 7A. FIG. 7C shows a distribution of threshold voltages, wherein the distribution of threshold voltages is based on a portion of the threshold voltages selected from FIG. 7A. A gentle threshold voltage distribution can be obtained according to the partial information of the selected first threshold voltage. As shown in FIG. 7C, a flat second threshold voltage includes the sets D1, D2, D3, and D4. Each numeral designating a particular control gate voltage range. The number D1 indicates the control gate voltages V7 through V6 and represents the number of memory cells with threshold voltages between the voltage range V7 and the voltage range V6. Similarly, the number D2 indicates the control gate voltages V8 to V9 and indicates the number of memory cells with threshold voltages between the voltage range V8 and the voltage range V9, and so on. The control logic 1210 obtains the number D1 and obtains its mapping relationship by selecting B1 as D1. The control logic 1210 takes the number D2 and its mapping by choosing B4 as D2, and so on. The sets B1, B4, B5 and B8 are selected from a discrete voltage interval of the first threshold voltage distribution.

A more gradual threshold voltage distribution can be obtained by adjusting the distance for obtaining the first threshold voltage. In other words, the control logic 1210 may adjust the spacing for obtaining the first threshold voltage distribution according to FIG. 5 and related concepts, and smoothly obtain the first threshold voltage distribution for the second threshold voltage distribution according to concepts used in the foregoing embodiments.

As shown in fig. 7B and 7C, the second threshold voltage distribution is gentle and uniform. The control logic 1210 obtains a correct offset direction DS according to the second threshold voltage. The concept of obtaining the correct offset voltage according to the threshold voltage distribution is similar to the previous embodiment. Therefore, the related description is omitted for brevity.

After determining that the correct offset direction DS is obtained according to the second threshold voltage distribution, the control logic 1212 determines a new control gate voltage for performing a read operation on the target physical page P _2 according to the correct offset direction DS. A correctable code is found according to the correct offset direction DS. The concept of obtaining the correctable code according to the correct offset direction DS is similar to the concept of the aforementioned embodiments (see fig. 2 and 3, and the related description). Therefore, the related description is omitted for brevity.

In another embodiment, the control logic 1212 determines a control gate voltage according to a minimum value of the second threshold voltage distribution for the target physical page P _2 to perform a read operation. For example, the minimum value of the second threshold voltage distribution shown in FIG. 7B is C5. Therefore, the control logic 1212 determines a new control gate voltage for performing the read operation at the target physical page P _2 according to the voltage range denoted by the numeral C5. The number C5 indicates a voltage range V4 to V5. The new control gate voltage may be determined to be a voltage value of V4 or V5 or other adjacent voltage range V4-V5.

FIG. 8 shows a flow chart of an embodiment of the present invention. The sequence of the steps in the flowchart is an exemplary embodiment of the present invention, but is for illustrative purposes only and is not limited thereto. The flow chart 800 includes the following steps:

step 810: controlling the flash memory to perform a first read operation on a portion of the memory cells based on an initial control gate voltage;

step 820: when the read information of the first read operation cannot be corrected, controlling the flash memory to execute a plurality of read operations on part of the memory units;

step 830: obtaining a first threshold voltage distribution according to read information of a plurality of read operations;

step 840: smoothing the first threshold voltage distribution to obtain a second threshold voltage distribution; and

step 850: and controlling the flash memory to execute a second read operation on the part of the memory cells according to the second threshold voltage distribution.

In step 810, the control logic 1210 determines an initial control gate voltage (e.g., V) for a portion of the memory cells (e.g., the target physical page P _1) of the flash memory 1100 according to an initial control gate voltageLSB0) The flash memory 1100 is controlled to perform a first read operation. When the read information of the first read operation is uncorrectable, the control logic 1210 controls the flash memory 1100 to execute on the target physical page P _1 in step 820A plurality of read operations. Since the readout information is uncorrectable information, a better control gate voltage should be found to perform the reading operation and obtain correct (correctable) readout information. In step 830, the control logic 1210 obtains a first threshold voltage distribution according to read information of a plurality of read operations. However, the first threshold voltage distribution is non-uniform. Therefore, in step 840, the control logic 1210 processes the first threshold voltage distribution to obtain a smooth second threshold voltage distribution. After the second threshold voltage distribution is obtained, an offset direction for adjusting the control gate voltage can be correspondingly determined, or a better control gate voltage can be obtained according to a minimum value of the second threshold voltage distribution. At step 850, control logic 1210 controls flash memory 1110 to perform a second read operation on target physical page P _1 according to the second threshold voltage distribution. Thus, correct (or correctable) readout information can be obtained.

Although the present invention has been described with respect to the preferred embodiments, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:非易失性存储器装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!