TWI514404B - Method, memory controller and system for reading data stored in flash memory - Google Patents
Method, memory controller and system for reading data stored in flash memory Download PDFInfo
- Publication number
- TWI514404B TWI514404B TW101106156A TW101106156A TWI514404B TW I514404 B TWI514404 B TW I514404B TW 101106156 A TW101106156 A TW 101106156A TW 101106156 A TW101106156 A TW 101106156A TW I514404 B TWI514404 B TW I514404B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- flash memory
- codeword
- error correction
- similarity
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明有關於讀取快閃記憶體(flash memory)中所儲存的資料,尤指一種藉由參照快閃記憶體之記憶單元(memory cell)所讀出的位元序列(bit sequence)的二進位數字分佈特性(binary digit distribution characteristic)來讀取快閃記憶體中所儲存之資料的方法與記憶體控制器。The invention relates to reading data stored in a flash memory, in particular to a bit sequence read by referring to a memory cell of a flash memory. A method and a memory controller for reading data stored in a flash memory by binary digit distribution characteristic.
快閃記憶體可透過電子式的抹除(erase)與寫入/程式化(program)以進行資料儲存,並且廣泛地應用於記憶卡(memory card)、固態硬碟(solid-state drive)與可攜式多媒體播放器等等。由於快閃記憶體係為非揮發性(non-volatile)記憶體,因此,不需要額外電力來維持快閃記憶體所儲存的資訊,此外,快閃記憶體可提供快速的資料讀取與較佳的抗震能力,而這些特性也說明了快閃記憶體為何會如此普及的原因。Flash memory can be stored electronically by erase and write/program, and is widely used in memory cards, solid-state drives and Portable multimedia player and more. Since the flash memory system is non-volatile memory, no additional power is required to maintain the information stored in the flash memory. In addition, the flash memory can provide fast data reading and better. The ability to withstand shocks, and these characteristics also explain why flash memory is so popular.
快閃記憶體可區分為NOR型快閃記憶體與NAND型快閃記憶體。對於NAND型快閃記憶體來說,其具有較短的抹除及寫入時間且每一記憶體單元需要較少的晶片面積,因而相較於NOR型快閃記憶體,NAND型快閃記憶體會允許較高的儲存密度以及較低之每一儲存位元的成本。一般來說,快閃記憶體係以記憶體單元陣列的方式來儲存資料,而記憶體單元是由一浮動閘極電晶體(floating-gate transistor)來加以實作,且每一記憶體單元可透過適當地控制浮動閘極電晶體之浮動閘極上的電荷個數來設定導通該浮動閘極電晶體所實作之該記憶體單元的所需臨界電壓,進而儲存單一個位元的資訊或者一個位元以上的資訊,如此一來,當一或多個預定控制閘極電壓施加於浮動閘極電晶體的控制閘極之上,則浮動閘極電晶體的導通狀態便會指示出浮動閘極電晶體中所儲存的一或多個二進位數字(binary digit)。The flash memory can be divided into a NOR type flash memory and a NAND type flash memory. For NAND type flash memory, it has a shorter erasing and writing time and requires less wafer area per memory cell, so NAND type flash memory is compared to NOR type flash memory. Experience allows for higher storage densities and lower cost per storage location. In general, a flash memory system stores data in the form of a memory cell array, and the memory cells are implemented by a floating-gate transistor, and each memory cell is permeable. Appropriately controlling the number of charges on the floating gate of the floating gate transistor to set a required threshold voltage for turning on the memory cell implemented by the floating gate transistor, thereby storing information or a bit of a single bit Above the information, when one or more predetermined control gate voltages are applied to the control gate of the floating gate transistor, the conduction state of the floating gate transistor indicates the floating gate One or more binary digits stored in the crystal.
然而,由於某些因素,快閃記憶體單元中原本儲存的電荷的個數可能會受到影響/擾亂,舉例來說,快閃記憶體中所存在的干擾可能來自於寫入干擾(write/program disturbance)、讀取干擾(read disturbance)及/或保持干擾(retention disturbance)。以具有各自儲存一個位元以上的資訊之記憶體單元的NAND型快閃記憶體為例,一個實體記憶體分頁(physical page)會包含多個邏輯記憶體分頁(logical page),且每一邏輯記憶體分頁係採用一或多個控制閘極電壓來進行讀取。舉例來說,對於一個用以儲存3個位元之資訊的快閃記憶體單元來說,該快閃記憶體單元會具有分別對應不同電荷個數(亦即不同臨界電壓)之8種狀態(亦即電荷位準)的其中之一,然而,由於寫入/抹除次數(program/erase count,P/E count)及/或資料保留時間(retention time)的緣故,快閃記憶體單元中的記憶體單元的臨界電壓分佈(threshold voltage distribution)便會有所改變,因此,使用原本的控制閘極電壓設定(亦即臨界電壓設定)來讀取記憶體單元中所儲存的資訊可能會因為改變後的臨界變壓分佈而無法正確地獲得所儲存的資訊。However, due to certain factors, the number of originally stored charges in the flash memory cell may be affected/disturbed. For example, the interference present in the flash memory may come from write disturb (write/program Disturbance, read disturbance, and/or retention disturbance. For example, a NAND-type flash memory having memory cells each storing information of one bit or more, a physical memory page contains a plurality of logical memory pages, and each logic Memory paging uses one or more control gate voltages for reading. For example, for a flash memory cell for storing information of 3 bits, the flash memory cell has 8 states corresponding to different numbers of charges (ie, different threshold voltages). One of the charge levels, however, due to the number of write/erase counts (program/erase count, P/E count) and/or retention time, in the flash memory cell. The threshold voltage distribution of the memory cell will change. Therefore, using the original control gate voltage setting (ie, threshold voltage setting) to read the information stored in the memory unit may be because The changed critical pressure distribution is not able to correctly obtain the stored information.
利用不同的控制閘極電壓設定以讀取快閃記憶體可能有較高的機會得到正確的儲存資訊。然而,儲存所有利用不同控制閘極電壓設定所取得的資訊可能需要更多的記憶空間。除此之外,利用不同的控制閘極電壓設定以讀取快閃記憶體可能會造成較長的讀取時間,因此,需要一個更有效率的讀取或解碼程序。Using different control gate voltage settings to read flash memory may have a higher chance of getting the correct stored information. However, storing all the information obtained with different control gate voltage settings may require more memory space. In addition, using different control gate voltage settings to read flash memory can result in longer read times and, therefore, requires a more efficient read or decode program.
因此,本發明的目的之一在於提供一種讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與裝置,以解決上述問題。讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與裝置。Accordingly, it is an object of the present invention to provide a method, memory controller and apparatus for reading data stored in a flash memory to solve the above problems. A method, a memory controller, and a device for reading data stored in a flash memory.
依據本發明之一實施例,一種用以讀取儲存在一快閃記憶體之資料的方法係被揭露,該方法包含:控制該快閃記憶體對該快閃記憶體之一第一記憶體分頁執行一讀取運作;取得該第一記憶體分頁之一第一碼字;依據一第一概似比對應規則取得該第一碼字之一第一組概似比對應值;依據該第一組概似比對應值進行一錯誤更正運作;若依據該第一組概似比對應值進行該錯誤更正運作指示一不可更正之結果,則依據一第二概似比對應規則取得該第一碼字之一第二組概似比對應值;以及依據該第二組概似比對應值進行該錯誤更正運作。According to an embodiment of the invention, a method for reading data stored in a flash memory is disclosed, the method comprising: controlling the flash memory to be a first memory of the flash memory Paging performing a read operation; obtaining a first codeword of one of the first memory pages; obtaining a first set of similarity ratios of the first codeword according to a first approximate ratio corresponding rule; A set of similarity is compared with the corresponding value for an error correction operation; if the error correction operation indication is uncorrectable according to the first set of similarity ratio corresponding values, the first one is obtained according to a second approximate ratio corresponding rule The second group of codewords is similar to the corresponding value; and the error correction operation is performed according to the second group of similarity ratio corresponding values.
依據本發明之另一實施例,揭露了一種用以讀取儲存在一快閃記憶體之資料之記憶體控制器,該記憶體控制器包含:一控制邏輯電路,用以控制該快閃記憶體對該快閃記憶體之一第一記憶體分頁執行一讀取運作以取得該第一記憶體分頁之一第一碼字;一概似比對應單元,用以依據一第一概似比對應規則取得該第一碼字之一第一組概似比對應值;以及一解碼電路,用以依據該第一組概似比對應值進行一錯誤更正運作,其中若依據該第一組概似比對應值進行該錯誤更正運作指示一不可更正之結果時,則該概似比對應單元係更用於依據一第二概似比對應規則取得該第一碼字之一第二組概似比對應值,而該解碼電路係更用於依據該第二組概似比對應值進行該錯誤更正運作。According to another embodiment of the present invention, a memory controller for reading data stored in a flash memory is disclosed. The memory controller includes: a control logic circuit for controlling the flash memory. Performing a read operation on the first memory page of the flash memory to obtain a first codeword of the first memory page; a similar ratio corresponding unit for corresponding to a first approximate ratio The rule obtains a first set of similarity ratio corresponding values of the first codeword; and a decoding circuit, configured to perform an error correction operation according to the first set of similarity ratio corresponding values, wherein if the first set is similar When the error correction operation result indicates an uncorrectable result than the corresponding value, the approximation is used to obtain a second group approximation ratio of the first codeword according to a second approximation ratio corresponding rule. Corresponding values, and the decoding circuit is further configured to perform the error correction operation according to the second set of similarity ratio corresponding values.
依據本發明另一實施例,揭露了一種用以讀取儲存在一快閃記憶體之資料之記憶體系統,該記憶體系統包含:一控制邏輯電路,用以控制該快閃記憶體對該快閃記憶體之一第一記憶體分頁執行一讀取運作以取得該第一記憶體分頁之一第一碼字;一概似比對應單元,用以依據一第一概似比對應規則取得該第一碼字之一第一組概似比對應值;以及一解碼電路,用以依據該第一組概似比對應值進行一錯誤更正運作,其中若依據該第一組概似比對應值進行該錯誤更正運作指示一不可更正之結果時,則該概似比對應單元係更用於依據一第二概似比對應規則取得該第一碼字之一第二組概似比對應值,而該解碼電路係更用於依據該第二組概似比對應值進行該錯誤更正運作。According to another embodiment of the present invention, a memory system for reading data stored in a flash memory is disclosed. The memory system includes: a control logic circuit for controlling the flash memory to One of the first memory banks of the flash memory performs a read operation to obtain one of the first memory words of the first memory page; a similar ratio corresponding unit for obtaining the first analog ratio corresponding rule One of the first codewords is similar to the corresponding value; and a decoding circuit is configured to perform an error correction operation according to the first set of similarity ratio corresponding values, wherein the corresponding value according to the first set of similarity ratios When the error correction operation indicates a result of the uncorrectable operation, the approximate ratio is used to obtain the second set of similarity ratio values of the first codeword according to a second approximate ratio corresponding rule. The decoding circuit is further configured to perform the error correction operation according to the second set of similarity ratio corresponding values.
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區別元件的方式,而是以元件在功能上的差異來作為區別的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置電性連接於一第二裝置,則代表該第一裝置可直接連接於該第二裝置,或透過其他裝置或連接手段間接地連接至該第二裝置。Certain terms are used throughout the description and following claims to refer to particular elements. It should be understood by those of ordinary skill in the art that manufacturers may refer to the same elements by different nouns. The scope of this specification and the subsequent patent application do not use the difference of the names as the means for distinguishing the elements, but the differences in the functions of the elements as the basis for the distinction. The term "including" as used throughout the specification and subsequent claims is an open term and should be interpreted as "including but not limited to". In addition, the term "coupled" is used herein to include any direct and indirect electrical connection. Therefore, if a first device is electrically connected to a second device, it means that the first device can be directly connected to the second device or indirectly connected to the second device through other devices or connection means.
請注意到,讀取NAND型快閃記憶體之實體記憶體分頁中的記憶體單元所儲存的多個位元僅是作為一實施例,以說明本發明的技術特徵,然而,無論快閃記憶體是NAND型快閃記憶體或是具有其它類型的快閃記憶體(例如NOR型快閃記憶體),只要是將從不同讀取運作中所取得的二進位數字編碼成碼字以進行錯誤更正運作,均符合本發明的精神。Please note that reading a plurality of bits stored in the memory unit in the physical memory page of the NAND type flash memory is only an embodiment to illustrate the technical features of the present invention, however, regardless of the flash memory. The body is a NAND type flash memory or has other types of flash memory (such as NOR type flash memory), as long as the binary digits obtained from different reading operations are encoded into code words for error. Corrective operation is in accordance with the spirit of the present invention.
請參閱第1圖,其為本發明記憶體系統之第一實施例的示意圖。記憶體系統1000包含有一快閃記憶體1100以及一記憶體控制器(memory controller)1200,於本實施例中,快閃記憶體1100可以是包含複數個實體記憶體分頁P_0、P_1、P_2、...、P_N的NAND型快閃記憶體,其中實體記憶體分頁P_0~P_N中的每一實體記憶體分頁包含有複數個記憶體單元(例如浮動閘極電晶體)1110,舉例來說,對於要被讀取之一目標實體記憶體分頁P_0來說,其包含有記憶體單元M_0~M_K。為了讀取目標實體記憶體分頁P_0之記憶體單元M_0~M_K中所儲存的資料,控制閘極電壓VG_0~VG_N便應該要適當地設定,例如,控制閘極電壓VG_0~VG_N應該要適當地設定以確保實體記憶體分頁P_1~P_N中所有的記憶體單元(浮動閘極記憶體)103均處於導通狀態。假若每一記憶體單元103是用以儲存N個位元(例如,包含最低有效位元(least significant bit,LSB)、中間有效位元(central significant bit,CSB)與最高有效位元(most significant bit,MSB)的3個位元),則快閃記憶體102會將控制閘極電壓VG_0設定為(2N -1)個電壓準位,以便辨識出目標實體記憶體分頁P_0中每一記憶體單元103的N個位元。Please refer to FIG. 1 , which is a schematic diagram of a first embodiment of a memory system of the present invention. The memory system 1000 includes a flash memory 1100 and a memory controller 1200. In this embodiment, the flash memory 1100 may include a plurality of physical memory pages P_0, P_1, P_2, . .., P_N NAND type flash memory, wherein each of the physical memory pages P_0 to P_N includes a plurality of memory cells (eg, floating gate transistors) 1110, for example, To be read, one of the target entity memory pages P_0 includes memory cells M_0 to M_K. In order to read the data stored in the memory cells M_0 to M_K of the target physical memory page P_0, the control gate voltages VG_0 to VG_N should be appropriately set. For example, the control gate voltages VG_0 to VG_N should be appropriately set. It is ensured that all the memory cells (floating gate memory) 103 in the physical memory pages P_1 to P_N are in an on state. If each memory unit 103 is used to store N bits (for example, a least significant bit (LSB), a central significant bit (CSB), and a most significant bit (most significant) Bit, MSB) 3 bits, the flash memory 102 sets the control gate voltage VG_0 to (2 N -1) voltage levels to identify each memory in the target entity memory page P_0 N bits of the volume unit 103.
請參閱第2圖,其為要被讀取之實體記憶體分頁P_0的第一種臨界電壓分佈的示意圖。實體記憶體分頁P_0的記憶體單元M_0~M_K可包含有具有浮動閘極被程式化(programmed)為具有電荷位準L0(亦即(MSB,CSB,LSB)=(1,1,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L1(亦即(MSB,CSB,LSB)=(0,1,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L2(亦即(MSB,CSB,LSB)=(0,0,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L3(亦即(MSB,CSB,LSB)=(1,0,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L4(亦即(MSB,CSB,LSB)=(1,0,0))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L5(亦即(MSB,CSB,LSB)=(0,0,0))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L6(亦即(MSB,CSB,LSB)=(0,1,0))的記憶體單元以及具有浮動閘極被程式化為具有電荷位準L7(亦即(MSB,CSB,LSB)=(1,1,0))的記憶體單元。Please refer to FIG. 2, which is a schematic diagram of the first threshold voltage distribution of the physical memory page P_0 to be read. The memory cells M_0 to M_K of the physical memory page P_0 may include a floating gate that is programmed to have a charge level L0 (ie, (MSB, CSB, LSB) = (1, 1, 1)) The memory cell having a floating gate is programmed into a memory cell having a charge level L1 (ie, (MSB, CSB, LSB) = (0, 1, 1)), having a floating gate is programmed into A memory cell having a charge level L2 (ie, (MSB, CSB, LSB) = (0, 0, 1)) having a floating gate is programmed to have a charge level L3 (ie, (MSB, CSB, A memory cell of LSB)=(1,0,1)), having a floating gate that is programmed to have a charge level L4 (ie, (MSB, CSB, LSB) = (1, 0, 0)) a body unit having a floating gate programmed into a memory cell having a charge level L5 (ie, (MSB, CSB, LSB) = (0, 0, 0)), having a floating gate is programmed to have a charge The memory cell of level L6 (ie (MSB, CSB, LSB) = (0, 1, 0)) and having a floating gate are programmed to have a charge level L7 (ie (MSB, CSB, LSB)) =(1,1,0)) memory unit.
為了辨識出記憶體單元M_0~M_K的最低有效位元,快閃記憶體102便將控制閘極電壓VG_0設定為第2圖所示之臨界電壓VT_4,接著,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的最低有效位元是”0”或”1”。於本實施例中,當實體記憶體分頁P_0中的一記憶體單元被施加於其控制閘極的臨界電壓VT_4所導通時,快閃記憶體1100將會輸出代表其最低有效位元的一個二進位數字”1”;否則,快閃記憶體1100將會輸出代表其最低有效位元的另一個二進位數字”0”。In order to identify the least significant bits of the memory cells M_0 to M_K, the flash memory 102 sets the control gate voltage VG_0 to the threshold voltage VT_4 shown in FIG. 2, and then, each memory in the physical memory page P_0. The conduction state of the body unit indicates that the least significant bit of the memory unit has "0" or "1". In this embodiment, when a memory cell in the physical memory page P_0 is turned on by the threshold voltage VT_4 applied to its control gate, the flash memory 1100 outputs a second representing its least significant bit. The carry number "1"; otherwise, the flash memory 1100 will output another binary digit "0" representing its least significant bit.
為了辨識出記憶體單元M_0~M_K的中間有效位元,快閃記憶體1100便將控制閘極電壓VG_0分別設定為第2圖所示之臨界電壓VT_2與VT_6,同樣地,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的中間有效位元是”0”或”1”。於本實施例中,當一記憶體單元會被施加於其控制閘極之臨界電壓VT_2與VT_6中的任一個所導通時,快閃記憶體1100將會輸出代表其中間有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_2所導通,但是卻會被施加於其控制閘極之臨界電壓VT_6所導通時,快閃記憶體102將會輸出代表其中間有效位元的一個二進位數字”0”;以及當該記憶體單元除了不會被施加於其控制閘極之臨界電壓VT_2所導通,也不會被施加於其控制閘極之臨界電壓VT_6所導通時,快閃記憶體1100將會輸出代表其中間有效位元的一個二進位數字”1”。In order to identify the intermediate effective bits of the memory cells M_0 to M_K, the flash memory 1100 sets the control gate voltage VG_0 to the threshold voltages VT_2 and VT_6 shown in FIG. 2, respectively, and the physical memory page P_0. The conduction state of each of the memory cells indicates that the intermediate effective bit of the memory cell is "0" or "1". In this embodiment, when a memory cell is turned on by any one of the threshold voltages VT_2 and VT_6 applied to its control gate, the flash memory 1100 outputs a second representing the middle effective bit. Carry number "1"; flash memory 102 when the memory cell is not turned on by the threshold voltage VT_2 applied to its control gate, but is applied to the threshold voltage VT_6 of its control gate. A binary digit "0" representing the middle effective bit will be output; and when the memory cell is turned on except for the threshold voltage VT_2 which is not applied to its control gate, it will not be applied to its control gate. When the threshold voltage VT_6 is turned on, the flash memory 1100 will output a binary digit "1" representing the middle significant bit.
為了辨識出記憶體單元M_0~M_K的最高有效位元,快閃記憶體1100便將控制閘極電壓VG_0分別設定為第2圖所示之臨界電壓VT_1、VT_3、VT_5與VT_7,同樣地,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的最高有效位元是”0”或”1”。於本實施例中,當一記憶體單元會被施加於其控制閘極之臨界電壓VT_1、VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1所導通,但是卻會被施加於其控制閘極之臨界電壓VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”0”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1與VT_3中的任一個所導通,但是卻會被施加於其控制閘極之臨界電壓VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1、VT_3與VT_5中的任一個所導通,但是卻會被施加於其控制閘極之臨界電壓VT_7所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”0”;以及當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1、VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”1”。In order to identify the most significant bits of the memory cells M_0 to M_K, the flash memory 1100 sets the control gate voltage VG_0 to the threshold voltages VT_1, VT_3, VT_5, and VT_7 shown in FIG. 2, respectively. The conduction state of each memory cell in the memory page P_0 indicates that the most significant bit of the memory cell has "0" or "1". In this embodiment, when a memory cell is turned on by any of the threshold voltages VT_1, VT_3, VT_5, and VT_7 applied to its control gate, the flash memory 1100 will output the most significant bit. A binary digit "1" of the element; when the memory cell is not turned on by the threshold voltage VT_1 applied to its control gate, but is applied to the threshold voltages VT_3, VT_5 and VT_7 of its control gate When any one of them is turned on, the flash memory 1100 will output a binary digit "0" representing its most significant bit; when the memory cell is not applied to its control gate threshold voltages VT_1 and VT_3 When any one of them is turned on, but is turned on by any one of the threshold voltages VT_5 and VT_7 applied to its control gate, the flash memory 1100 will output a binary digit representing its most significant bit. "1"; when the memory cell is not turned on by any one of the threshold voltages VT_1, VT_3, and VT_5 applied to its control gate, but is applied to the threshold voltage VT_7 of its control gate to be turned on , flash The memory 1100 will output a binary digit "0" representing its most significant bit; and any of the threshold voltages VT_1, VT_3, VT_5, and VT_7 when the memory cell is not applied to its control gate. When turned on, the flash memory 1100 will output a binary digit "1" representing its most significant bit.
然而,第2圖所示之臨界電壓分佈可能會因為某些因素(例如寫入/讀取次數及/或資料保留時間的增加)的影響而改變為另一個臨界電壓分佈,舉例來說,對應至每一電荷位準之圓形突出狀的分佈可能會變寬及/或產生偏移。請參閱第3圖,其為要被讀取之實體記憶體分頁P_0的第二種臨界電壓分佈的示意圖。由第3圖可得知,臨界電壓分佈係不同於第2圖所示之臨界電壓分佈。將控制閘極電壓VG_0設定為上述的臨界電壓VT_1~VT_7將無法正確地獲得目標實體記憶體分頁P_0之記憶體單元M_0~M_K的最低有效位元、中間有效位元與最高有效位元進一步來說,當記憶體單元M_0~M_K具有第3圖所示之臨界電壓分佈時,應該要採用新的臨界電壓VT_1’~VT_7’以便正確地獲得所儲存的資訊,否則的話,施加於記憶體單元M_0~M_K所讀出之碼字(codeword)的錯誤更正(error correction code,ECC)操作便會因為碼字中無法更正的(uncorrectable)錯誤而無法成功運行。於本實施例中,記憶體控制器1200是設計來適應性地對記憶體單元M_0~M_K所讀取的碼字執行軟解碼以增強解碼能力。細節於後詳述。However, the threshold voltage distribution shown in Figure 2 may change to another threshold voltage distribution due to certain factors (such as the number of writes/reads and/or the increase in data retention time), for example, corresponding The distribution of circular protrusions to each charge level may be broadened and/or offset. Please refer to FIG. 3, which is a schematic diagram of a second threshold voltage distribution of the physical memory page P_0 to be read. As can be seen from Fig. 3, the threshold voltage distribution is different from the threshold voltage distribution shown in Fig. 2. Setting the control gate voltage VG_0 to the above-mentioned threshold voltages VT_1 to VT_7 will not correctly obtain the least significant bit, the intermediate effective bit and the most significant bit of the memory cells M_0 to M_K of the target physical memory page P_0. It is said that when the memory cells M_0 to M_K have the threshold voltage distribution shown in FIG. 3, the new threshold voltages VT_1' to VT_7' should be used in order to correctly obtain the stored information, otherwise, applied to the memory unit. The error correction code (ECC) operation of the codeword read by M_0~M_K cannot be successfully run because of an uncorrectable error in the codeword. In the present embodiment, the memory controller 1200 is designed to adaptively perform soft decoding on the code words read by the memory cells M_0 to M_K to enhance the decoding capability. Details are detailed later.
請再次參閱第1圖。記憶體控制器104是用以控制快閃記憶體102的存取(讀取/寫入),並且包含有(但不侷限於)一控制邏輯電路1210以及一錯誤更正電路(ECC circuit,其具有一錯誤更正解碼器1222、一錯誤更正編碼器1229以及一臨界電壓追蹤單元1230)。請注意,第1圖僅顯示與本發明之技術特徵有關的元件,亦即,記憶體控制器104亦可包含額外的元件來支援其它的功能。一般來說,當接收到針對目標實體記憶體分頁P_0中記憶體單元M_0~M_K所儲存之資料的一讀取請求(read request)時,控制邏輯電路1210會因應該讀取請求而控制快閃記憶體1100來讀取所要求的資料(requested data),接著,當快閃記憶體102成功地辨識出記憶體單元M_0~M_K中每一記憶體單元所儲存的所有位元時,包含有記憶體單元M_0~M_K之已辨識出的位元的讀出資訊便會被接收電路1210所接收。如熟習技藝者所知,位於一實體記憶體分頁中的一部份記憶體單元是用來儲存錯誤更正資訊(例如一錯誤更正碼(ECC code)),因此,錯誤更正電路1220便是用來針對由快閃記憶體1100所讀取出來的讀出資訊(例如一碼字)進行一錯誤更正操作。於本實施例中,錯誤更正電路1220包含有一錯誤更正解碼器(ECC decoder) 1222以及一錯誤更正編碼器(ECC corrector)1229。錯誤更正解碼器1222是用來檢查讀出資訊的正確性,以藉此偵測任何錯誤位元的存在。錯誤更正解碼器1222亦用於對檢查過的讀出資訊中所發現到的錯誤位元進行更正然而,當讀出資訊中實際存在之錯誤位元的數量超過了錯誤更正解碼器1222有辦法依照硬解碼(例如BCH(Bose-Chaudhuri-Hocquenghem之方式))更正之錯誤位元的最大數量時,錯誤更正解碼器1222便會指示控制邏輯電路1210讀出資訊中包含有無法更正的錯誤。如此一來,控制邏輯電路1210將會啟動軟讀取(soft read)機制以取得軟資訊,該些軟資訊可被ECC解碼器1222用來進行軟解碼機制。該臨界電壓追蹤單元1230係用於藉由比較讀出資訊以判斷臨界電壓移動方向以及判斷一最佳臨界電壓。細節於後詳述。Please refer to Figure 1 again. The memory controller 104 is for controlling access (read/write) of the flash memory 102, and includes, but is not limited to, a control logic circuit 1210 and an error correction circuit (ECC circuit having An error correction decoder 1222, an error correction encoder 1229, and a threshold voltage tracking unit 1230). Please note that FIG. 1 only shows elements related to the technical features of the present invention, that is, the memory controller 104 may also include additional components to support other functions. In general, when a read request for the data stored in the memory cells M_0 to M_K in the target physical memory page P_0 is received, the control logic circuit 1210 controls the flash as it should read the request. The memory 1100 reads the requested data, and then, when the flash memory 102 successfully recognizes all the bits stored in each of the memory cells M_0 to M_K, the memory is included. The read information of the identified bit of the body cells M_0 to M_K is received by the receiving circuit 1210. As is known to those skilled in the art, a portion of the memory unit located in a physical memory page is used to store error correction information (e.g., an error correction code (ECC code)). Therefore, the error correction circuit 1220 is used. An error correction operation is performed on the read information (for example, a codeword) read by the flash memory 1100. In the present embodiment, the error correction circuit 1220 includes an error correction decoder (ECC decoder) 1222 and an error correction encoder (ECC corrector) 1229. The error correction decoder 1222 is used to check the correctness of the read information to thereby detect the presence of any error bits. The error correction decoder 1222 is also used to correct the error bits found in the checked read information. However, when the number of error bits actually present in the read information exceeds the error correction decoder 1222 has a way to follow When hard decoding (e.g., BCH (Bose-Chaudhuri-Hocquenghem mode)) corrects the maximum number of error bits, the error correction decoder 1222 instructs the control logic circuit 1210 to read the information containing an uncorrectable error. As such, the control logic circuit 1210 will initiate a soft read mechanism to obtain soft information that can be used by the ECC decoder 1222 to perform a soft decoding mechanism. The threshold voltage tracking unit 1230 is configured to determine the threshold voltage moving direction and determine an optimal threshold voltage by comparing the readout information. Details are detailed later.
於本實施例中,錯誤更正解碼器1222可由低密度同位檢查(low density parity-check,LDPC)解碼器來加以實作,控制邏輯電路1210控制快閃記憶體1100來提供要被LDPC解碼器所解碼的軟資訊(soft information),所以,在控制邏輯電路1210的控制之下,快閃記憶體1100便輸出多個二進位數字來作為各個記憶體單元M_0~M_K所讀取出來的軟位元(soft bit)。進一步來說,當進行最低有效位元資料的讀取、中間有效位元資料的讀取或最高有效位元資料的讀取時,控制邏輯電路1210是用以控制快閃記憶體1100來針對目標實體記憶體分頁之記憶體單元M_0~M_K中的每一記憶體單元執行複數次讀取操作(例如7次讀取操作)。In this embodiment, the error correction decoder 1222 can be implemented by a low density parity-check (LDPC) decoder, and the control logic circuit 1210 controls the flash memory 1100 to provide an LDPC decoder. Decoded soft information, so under the control of the control logic circuit 1210, the flash memory 1100 outputs a plurality of binary digits as soft bits read by the respective memory cells M_0 to M_K. (soft bit). Further, when the reading of the least significant bit data, the reading of the intermediate valid bit data, or the reading of the most significant bit data is performed, the control logic circuit 1210 is configured to control the flash memory 1100 to target the target. Each of the memory cells M_0 to M_K of the physical memory page performs a plurality of read operations (for example, seven read operations).
請參閱第4圖,其為從快閃記憶體1100之一記憶體單元中讀取一軟位元(亦即軟資訊數值)的最低有效位元讀取操作的示意圖。依據第2圖與第3圖所示之臨界電壓分布的範例,具有電荷位準L0~L3中任一個電荷位準的記憶體單元將會儲存LSB=1,以及具有電荷位準L4~L7中任一個電荷位準的記憶體單元則會儲存LSB=0。於本實施例中,控制單元1210決定一初始控制閘極電壓VLSB 以及一電壓間距(voltage spacing)D,接著控制快閃記憶體1100來針對記憶體單元M_0~M_K中的每一記憶體單元執行7次讀取操作,而基於電壓調整次序(voltage adjusting order)OD1,快閃記憶體1100會依序以VLSB 、VLSB +D、VLSB -D、VLSB +2D、VLSB -2D、VLSB +3D、VLSB -3D來設定控制閘極電壓VG_0,因此,由於所施加之閘極控制電壓VLSB 、VLSB +D、VLSB -D、VLSB +2D、VLSB -2D、VLSB +3D、VLSB -3D的緣故,位元序列BS_0~BS_M中的每一位元序列都會依序得到7個位元。請注意,位元序列BS_0~BS_M中的每一位元序列係作為一軟位元,其代表由一記憶體單元所讀取出來的軟資訊,且透過初始控制閘極電壓VLSB 所獲得的二進位數字可作為一正負號位元(sign bit)(亦即硬位元(hard bit)數值)。利用初始控制閘極電壓VLSB 所進行之讀取運作可視為一般讀取運作。而利用控制閘極電壓VLSB +D、VLSB -D、VLSB +2D、VLSB -2D、VLSB +3D、VLSB -3D所進行之讀取運作可分別視為重讀運作1~6。Please refer to FIG. 4, which is a schematic diagram of the least significant bit read operation of reading a soft bit (ie, a soft information value) from one of the memory cells of the flash memory 1100. According to the example of the threshold voltage distribution shown in FIGS. 2 and 3, a memory cell having any one of the charge levels L0 to L3 will store LSB=1 and have a charge level L4~L7. Any one of the charge level memory cells will store LSB=0. In this embodiment, the control unit 1210 determines an initial control gate voltage V LSB and a voltage spacing D, and then controls the flash memory 1100 for each memory cell in the memory cells M_0 M M_K. Perform 7 read operations, and based on the voltage adjusting order OD1, the flash memory 1100 will sequentially follow V LSB , V LSB +D , V LSB -D , V LSB +2D , V LSB -2D , V LSB +3D, V LSB -3D to set the control gate voltage VG_0, therefore, due to the applied gate control voltages V LSB , V LSB +D , V LSB -D , V LSB +2D , V LSB -2D For the sake of V LSB +3D and V LSB -3D, each bit sequence in the bit sequence BS_0~BS_M will get 7 bits in sequence. Please note that each bit sequence in the bit sequence BS_0~BS_M is used as a soft bit, which represents the soft information read by a memory cell and is obtained by the initial control gate voltage V LSB . The binary digit can be used as a sign bit (ie, a hard bit value). The read operation performed using the initial control gate voltage V LSB can be regarded as a general read operation. The read operations using the control gate voltages V LSB +D, V LSB -D, V LSB +2D, V LSB -2D, V LSB +3D, V LSB -3D can be regarded as reread operations 1~6 respectively. .
於本實施例中,每一位元序列具有八種可能的二進位數字組合BS1~BS8的其中之一。當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓高於VLSB +3D,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS8=”0000000”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB +2D與VLSB +3D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS7=”0000010”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB +D與VLSB +2D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS6=”0001010”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB 與VLSB +D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS5=”0101010”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓低於VLSB -3D,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS1=”1111111”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB -2D與VLSB -3D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS2=”1111110”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB -D與VLSB -2D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS3=”1111010”;以及當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB 與VLSB -D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS4=”1101010”。In this embodiment, each bit sequence has one of eight possible binary digital combinations BS1~BS8. When the charge currently stored in the floating gate of the memory cell is such that the threshold voltage of the memory cell is higher than V LSB +3D, the bit sequence read from the memory cell will have a binary digital combination BS8=""0000000"; when the charge currently stored in the floating gate of the memory cell is such that the threshold voltage of the memory cell is between V LSB +2D and V LSB +3D, the bit sequence read from the memory cell Will have a binary digit combination BS7 = "0000010"; when the charge currently stored in the floating gate of the memory cell is such that the threshold voltage of the memory cell is between V LSB +D and V LSB +2D, then from memory The bit sequence read by the body unit will have a binary number combination BS6 = "0001010"; when the charge currently stored in the floating gate of the memory cell is such that the threshold voltage of the memory cell is between V LSB and V LSB Between +D, the bit sequence read from the memory unit will have a binary number combination BS5 = "0101010"; when the charge currently stored in the floating gate of the memory cell causes the criticality of the memory cell Electricity Below V LSB -3D, the memory unit from the read out bit sequences will have a combination of binary digits BS1 = "1111111"; if the current charges stored in the floating gate memory cell of the memory cell such that The threshold voltage is between V LSB -2D and V LSB -3D, then the bit sequence read from the memory unit will have a binary digit combination BS2 = "1111110"; when currently stored in the memory unit The charge of the floating gate is such that the threshold voltage of the memory cell is between V LSB -D and V LSB -2D, then the bit sequence read from the memory cell will have a binary digital combination BS3 = "1111010"; and when the charge currently stored in the floating gate of the memory cell is such that the threshold voltage of the memory cell is between V LSB and V LSB -D, the sequence of bits read from the memory cell will There will be a binary digit combination BS4 = "1101010".
當一個位元序列中所有的二進位數字均為”1”時,此代表相對應的記憶體單元具有電荷位準L0、L1、L2或L3,且LSB=1的可靠度(reliability)很高。另一方面,當一個位元序列中所有的二進位數字均為”0”時,此代表相對應的記憶體單元具有電荷位準L5、L6、L7或L8,且LSB=0的可靠度很高。然而,當一個位元序列具有不同的二進位數字”0”與”1”混雜其中時,此代表相對應的記憶體單元具有電荷位準L3或L4,由於相對應記憶體單元的臨界電壓是介於VLSB -3D與VLSB +3D之間,LSB=1/LSB=0的可靠度便會由於錯誤率較高而較低,舉例來說,原本儲存LSB=0的記憶體單元會具有對應至電荷位準L4的電荷儲存數量以使得臨界電壓高於VLSB +3D,然而,當寫入/抹除次數或資料保留時間增加時,所儲存之電荷的數量便會有所改變,因而可能使得臨界電壓低於VLSB ;同樣地,原本儲存LSB=1的記憶體單元會具有對應至電荷位準L3的電荷儲存數量以使得臨界電壓低於VLSB -3D,相較於硬解碼,存在於軟資訊數值的可靠度將可增加在進行軟解碼時解碼正確的機率。然而軟資訊數值包含於一般讀取運作與後續的重讀運作1~6所取得的多個二進位數字,如前所述七個二進位數字。為了執行軟解碼,錯誤更正解碼器1222必須取得並儲存完整的軟資訊數值,因此,錯誤更正解碼器1222需要大量的儲存空間以儲存完整的軟資訊數值。這將會增加晶片面積與成本。When all the binary digits in a bit sequence are "1", this represents that the corresponding memory cell has a charge level L0, L1, L2 or L3, and the reliability of LSB=1 is high. . On the other hand, when all the binary digits in a bit sequence are "0", this represents that the corresponding memory cell has a charge level L5, L6, L7 or L8, and the reliability of LSB=0 is very high. high. However, when a bit sequence has different binary digits "0" and "1" mixed, this represents that the corresponding memory cell has a charge level L3 or L4, since the threshold voltage of the corresponding memory cell is Between V LSB -3D and V LSB +3D, the reliability of LSB=1/LSB=0 will be lower due to the higher error rate. For example, the memory unit that originally stored LSB=0 will have The amount of charge corresponding to the charge level L4 is stored such that the threshold voltage is higher than V LSB +3D, however, as the number of write/erase times or data retention time increases, the amount of stored charge changes. It is possible that the threshold voltage is lower than V LSB ; similarly, the memory cell that originally stores LSB=1 will have a charge storage amount corresponding to the charge level L3 such that the threshold voltage is lower than V LSB -3D compared to hard decoding. The reliability present in the soft information value will increase the probability of decoding correctly when performing soft decoding. However, the soft information value includes a plurality of binary digits obtained in the normal reading operation and subsequent re-reading operations 1 to 6, as described above for the seven binary digits. In order to perform soft decoding, the error correction decoder 1222 must fetch and store the complete soft information value. Therefore, the error correction decoder 1222 requires a large amount of storage space to store the complete soft information value. This will increase wafer area and cost.
為減少儲存空間,從讀取運作中取得之二進位數字可以在儲存或解碼前就先編碼為一個較短的碼字。請在參照第1圖,如前所述,錯誤更正電路1220係用來對從快閃記憶體1100中取得之讀取資訊進行錯誤更正運作。而錯誤更正解碼器1222係用來檢查讀取資訊的正確性。除此之外,錯誤更正解碼器1222更包含一編碼器1223、一儲存裝置1227以及一解碼單元1228。編碼器1223係用以依據從快閃記憶體1100讀取之二進位數字來產生一較短的碼字代表該二進位數字。儲存裝置1227係用以儲存由編碼器產生之碼字並提供所儲存之碼字給解碼單元1228。解碼單元1228係用以對該碼字執行錯誤更正運作。細節於後詳述。To reduce storage space, the binary digits obtained from the read operation can be encoded as a shorter codeword before being stored or decoded. Referring to FIG. 1, as described above, the error correction circuit 1220 is for performing an error correction operation on the read information obtained from the flash memory 1100. The error correction decoder 1222 is used to check the correctness of the read information. In addition, the error correction decoder 1222 further includes an encoder 1223, a storage device 1227, and a decoding unit 1228. The encoder 1223 is configured to generate a shorter codeword representing the binary digit based on the binary digits read from the flash memory 1100. The storage device 1227 is configured to store the codeword generated by the encoder and provide the stored codeword to the decoding unit 1228. Decoding unit 1228 is operative to perform an error correction operation on the codeword. Details are detailed later.
在一實施例中,控制邏輯電路1210控制快閃記憶體1100依照初始控制閘極電壓VLSB 對記憶體單元,例如實體記憶體分頁P_0的記憶體細胞單元M_0~M-K,進行一讀取運作以辨識記憶體細胞單元M_0~M-K的最低有效位元。依照初始控制閘極電壓VLSB 所進行的讀取運作可視為一般讀取運作。快閃記憶體1100提供包含了資料部分、備用部分與至少一校驗碼(parity)部分之一記憶分頁之二進位數字(a page of binary digits)至控制邏輯電路1210。控制邏輯電路1210傳送其所接收之二進位數字至錯誤更正電路1220。在一實施例中,錯誤更正電路1220將所接收的二進位數字區分為兩個部分。第一部分包含資料部分與其相對應的校驗碼部分。第二部分包含備用部分以及其相應的校驗碼部分。錯誤更正電路1220對第一部分進行軟式解碼運作(soft decode operation),而對第二部分進行硬式解碼運作(hard decode operation)。此乃例示性說明,而非本發明之限制。對該分頁之二進位數字之任一部分進行軟式解碼或硬式解碼運作均為本發明之範疇。在此實施例中,編碼器1223依據第一部分之二進位數字產生一碼字。細節於後詳述。In one embodiment, the control logic circuit 1210 controls the flash memory 1100 to perform a read operation on the memory cell unit, such as the memory cell unit M_0~MK of the physical memory page P_0, according to the initial control gate voltage V LSB . Identify the least significant bits of the memory cell unit M_0~MK. The read operation in accordance with the initial control gate voltage V LSB can be regarded as a general read operation. The flash memory 1100 provides a page of binary digits including a data portion, a spare portion, and at least one parity portion to the control logic circuit 1210. Control logic circuit 1210 transmits its received binary digits to error correction circuit 1220. In an embodiment, the error correction circuit 1220 divides the received binary digits into two parts. The first part contains the data part and its corresponding check code part. The second part contains the spare part and its corresponding check code part. The error correction circuit 1220 performs a soft decode operation on the first portion and a hard decode operation on the second portion. This is illustrative and not a limitation of the invention. It is within the scope of the present invention to perform either soft decoding or hard decoding operations on any of the two-digit digits of the page. In this embodiment, encoder 1223 generates a codeword based on the binary digits of the first portion. Details are detailed later.
請參照第5圖與第6圖,第5圖係示於第1圖之編碼器1223之方塊圖。第6圖係說明對讀自快閃記憶體單元的二進位數字進行編碼的示意圖。編碼器1223包含一比較單元1224以及一判斷單元1225。第5圖僅顯示與本發明之技術特徵有關的元件,亦即,編碼器1223亦可包含額外的元件來支援其它的功能。比較單元1223係用於比較從控制邏輯電路送來的第一部分之二進位數字以及儲存在儲存裝置1227之正負位元。當讀取一目標實體記憶體分頁(例如實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1210依照一初始控制閘極電壓VLSB 對記憶體細胞單元(例如實體記憶體分頁P_0之記憶體細胞M_0~M_K)進行一讀取運作以識別記憶體細胞M_0~M_K之最低有效位元。如第6圖所示,該實體記憶體分頁之第一部分之二進位數字係傳送至編碼器1223。請注意到,該些二進位數字之各個位元係代表該實體記憶體分頁P_0之記憶體細胞單元之最低有效位元之硬位元(hard bit,亦可稱為硬資訊(hard information))。例如,該些二進位數字最左邊的二進位數字係”1”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之硬位元係為”1”。該些二進位數字最左邊的二進位數字旁邊的二進位數字係”1”,其代表實體記憶體分頁P_0之記憶體細胞M_1之最低有效位元之硬位元係為”1”,以此類推。因第一部分之二進位數字係得自對該些記憶體細胞單元依照初始控制閘極電壓進行讀取運作,該些二進位數字可視為該些記憶體單元之正負號位元。據此,編碼器1223產生(並設定)一個高強度位元為”1”一個低強度位元為”1”,以代表正負位元”1”具有最高之可靠度。換言之,記憶體單元M_0被假設為”1”,且具有最高之可靠度。此外,包含硬位元”1”以及軟位元(soft bit,亦可稱為軟資訊(soft information))”11”的碼字”111”係用來代表記憶體單元M_0所儲存之資訊。用來代表其他記憶體單元之碼字亦依照類似的方式進行。接著,第一部分之二進位數字之碼字係傳送至儲存裝置1227。接著,儲存裝置1227將該碼字提供給解碼單元1228以執行錯誤更正運作。在一實施例中,該解碼單元1228依據該碼字執行一錯誤更正硬解碼(error correction hard decode)在另一實施例中,該解碼單元1228依據該正負號位元執行一錯誤更正硬解碼若錯誤更正運作指出該碼字係正確或可更正(換言之錯誤更正硬解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出該碼字(或該正負號位元)係不可更正(換言之錯誤更正硬解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB +D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。細節於後詳述。Please refer to FIG. 5 and FIG. 6. FIG. 5 is a block diagram of the encoder 1223 of FIG. Figure 6 is a diagram illustrating the encoding of binary digits read from a flash memory cell. The encoder 1223 includes a comparison unit 1224 and a determination unit 1225. Figure 5 only shows the components associated with the technical features of the present invention, i.e., the encoder 1223 may also include additional components to support other functions. The comparison unit 1223 is for comparing the binary digits of the first portion sent from the control logic circuit with the positive and negative bits stored in the storage device 1227. When reading a target physical memory page (eg, physical memory page P_0), control logic circuit 1210 controls flash memory 1210 to store memory cell units in accordance with an initial control gate voltage VLSB (eg, physical memory page P_0) The memory cells M_0~M_K) perform a read operation to identify the least significant bits of the memory cells M_0~M_K. As shown in FIG. 6, the binary digit of the first portion of the physical memory page is transmitted to the encoder 1223. Please note that each of the binary digits represents a hard bit (hard information) of the least significant bit of the memory cell unit of the physical memory page P_0. . For example, the leftmost digit of the binary digits is "1", and the hard bit of the least significant bit of the memory cell M_0 representing the physical memory page P_0 is "1". The binary digits "1" next to the leftmost binary digits of the binary digits represent "1" as the hardest digit of the least significant digit of the memory cell M_1 of the physical memory page P_0. analogy. Since the binary digits of the first part are obtained by reading the memory cell units according to the initial control gate voltage, the binary digits can be regarded as the sign bits of the memory cells. Accordingly, the encoder 1223 generates (and sets) a high-intensity bit of "1" and a low-intensity bit of "1" to represent the positive and negative bit "1" having the highest reliability. In other words, the memory cell M_0 is assumed to be "1" and has the highest reliability. In addition, the code word "111" including the hard bit "1" and the soft bit (also referred to as soft information) "11" is used to represent the information stored in the memory unit M_0. The codewords used to represent other memory cells are also performed in a similar manner. Next, the first part of the binary digit code word is transmitted to the storage device 1227. Next, storage device 1227 provides the codeword to decoding unit 1228 to perform an error correction operation. In an embodiment, the decoding unit 1228 performs an error correction hard decode according to the codeword. In another embodiment, the decoding unit 1228 performs an error correction hard decoding according to the sign bit. The error correction operation indicates that the codeword is correct or correctable (in other words, the error corrects the hard decoding to indicate a correctable result), then the error correction circuit 1220 notifies the control logic circuit 1210 of the result and provides the correct data to the control logic circuit. 1210. If the error correction operation indicates that the codeword (or the sign bit) is uncorrectable (in other words, the error corrects the hard decoding to indicate a non-correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic circuit The 1210 control flash memory 1100 performs a reread operation (D is a predetermined voltage interval) on the memory cell unit in accordance with the control gate voltage V LSB +D. Details are detailed later.
請參照第7圖,第7圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。在讀取一目標實體記憶體分頁(例如,實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1100依照第二控制閘極電壓VLSB +D對記憶體單元(例如,實體記憶體分頁P_0之記憶體單元M_0~M_K)執行一讀取運作以判讀記憶體單元M_0~M_K之最低有效位元。此重讀運作可被視為第一次重讀運作。如第7圖所示,該實體記憶體分頁之第一部分之二進位數字係送至編碼單元1223。請注意到,該些二進位數字之每個位元係代表一實體記憶體分頁P_0之一記憶體細胞單元之最低有效位元之軟位元。例如,該些二進位數字最左邊的二進位數字係”1”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之軟位元係為”1”。該些二進位數字最左邊的二進位數字旁邊的二進位數字係”0”,其代表實體記憶體分頁P_0之記憶體細胞M_1之最低有效位元之軟位元係為”0”,以此類推。請注意到,第7圖所示之二進位數字(重讀資料)可能不完全與正負號位元相同。因為用以進行第一次重讀運作之控制閘極電壓係VLSB +D,所以在利用閘極控制電壓VLSB 與VLSB +D讀取臨界電壓落在VLSB 與VLSB +D之記憶體單元時會得到不同的結果。例如,依照控制閘極電壓VLSB 所取得之記憶體單元M_1之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB +D所取得之記憶體單元M_1之最低有效位元之軟位元係”1”。因此,編碼器1223需要更新記憶體單元M_1之最低有效位元之之碼字之可靠度。細節於後詳述。Please refer to FIG. 7. FIG. 7 is a diagram illustrating the encoding of the binary digits read from the flash memory unit to obtain the correct data. When reading a target physical memory page (eg, physical memory page P_0), control logic circuit 1210 controls flash memory 1100 to store memory cells in accordance with second control gate voltage V LSB +D (eg, physical memory) The memory cells M_0 to M_K of the body page P_0 perform a read operation to interpret the least significant bits of the memory cells M_0 to M_K. This rereading operation can be considered as the first rereading operation. As shown in FIG. 7, the binary digit of the first portion of the physical memory page is sent to the encoding unit 1223. Please note that each of these binary digits represents a soft bit of the least significant bit of one of the memory cells of a physical memory page P_0. For example, the leftmost digit of the binary digits is "1", and the soft bit of the least significant bit of the memory cell M_0 representing the physical memory page P_0 is "1". The binary digits next to the leftmost binary digits of the binary digits are “0”, and the soft bit system representing the least significant bit of the memory cell M_1 of the physical memory page P_0 is “0”. analogy. Please note that the binary digits (rereading data) shown in Figure 7 may not be exactly the same as the sign digits. Because the control gate voltage system V LSB +D is used for the first reread operation, the memory whose threshold voltage falls in V LSB and V LSB +D is read by using the gate control voltages V LSB and V LSB +D . The unit will get different results. For example, the sign of the least significant bit of the memory cell M_1 obtained by controlling the gate voltage V LSB is “0”, and the minimum of the memory cell M_1 obtained according to the control gate voltage V LSB +D is obtained. The soft bit of the valid bit is "1". Therefore, the encoder 1223 needs to update the reliability of the codeword of the least significant bit of the memory unit M_1. Details are detailed later.
依照控制閘極電壓VLSB +D所取得重讀資料(二進位數字)係送至比較單元1224。比較單元1224存取儲存在儲存裝置1227之正負號位元,並比較正負號位元與重讀資料以更新碼字。若正負號位元與其相對應之重讀資料(二進位數字)係相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要維持該正負號位元之可靠度。換言之,用來表達相對應之記憶體單元之碼字不被改變。若正負號位元與其相對應之重讀資料(二進位數字)係不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要更新該正負號位元之可靠度至一最低可靠度。換言之,用來表達相對應之記憶體單元之碼字係被改變。例如,依照控制閘極電壓VLSB 所取得之記憶體單元M_1之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB +D所取得之記憶體單元M_1之最低有效位元之軟位元係”1”。據此,判斷單元1225判定一高強度位元”0”以及一低強度位元”0”以代表正負號位元”1”具有最低之可靠度。換言之,記憶體單元M_1之最低有效位元係被更新為有最低可靠度之”0”。此外,包含硬位元”0”以及軟位元”00”之碼字”000”係用來代表記憶體單元M_1之最低有效位元。用來表達其他記憶體單元之碼字亦依照類似的方式進行。接著,更新後的第一部分之二進位數字之碼字係送至儲存裝置1227用以更新原來的碼字。接著,儲存裝置1227將更新後的碼字提供給解碼單元1228以執行錯誤更正運作。在一實施例中,解碼單元1228依據更新後的碼字進行一錯誤更正軟解碼(error correction soft decode)請注意到,更新後的碼字係藉由比較依據控制閘及電壓VLSB +D所取得之重讀資料(二進位數字)以及依據控制閘及電壓VLSB 所取得之正負號位元而得。換言之,錯誤更正軟解碼係依據正負號位元與重讀資料(二進位數字)來進行的。若錯誤更正運作指出更新後的碼字係正確或可更正(換言之錯誤更正軟解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出更新後的碼字係不可更正(換言之錯誤更正軟解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB -D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。依照控制閘極電壓VLSB -D對記憶體細胞單元所進行之重讀運作可視為第二重讀運作。請注意到,一般讀取運作與第一重讀運作之電壓間隔係與一般讀取運作與第二重讀運作之電壓間隔相同。因此,更新碼字可靠度之規則應該類似,依照第二次重讀運作所取得之重讀資料產生與儲存碼字的細節在此省略。若錯誤更正運作指出第二次重讀運作所得之更新後的碼字係正確或可更正(換言之錯誤更正軟解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出第二次重讀運作所得之更新後的碼字係不可更正(換言之錯誤更正軟解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB +2D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。依照控制閘極電壓VLSB +2D對記憶體細胞單元所進行之重讀運作可視為第三重讀運作。除此之外,藉由比較從一般讀取運作與第一重讀運作所取得之二進位數字,可以得到在一般讀取運作與第一重讀運作中第一部分之二進位數字之位元變動(bit flopping)總數,並可將其記為位元變動數BF1。類似地,藉由比較從一般讀取運作與第二重讀運作所取得之二進位數字,可以得到在一般讀取運作與第二重讀運作中第一部分之二進位數字之位元變動總數,並可將其記為位元變動數BF2。位元變動數BF1與BF2可用來追蹤一最佳之臨界電壓。細節詳述於後。The reread data (binary digits) obtained in accordance with the control gate voltage V LSB +D is sent to the comparison unit 1224. Comparison unit 1224 accesses the sign bit stored in storage device 1227 and compares the sign bit with the reread data to update the code word. If the sign bit is the same as its corresponding reread data (binary number), the comparing unit 1224 indicates the result to the judging unit 1225. The judging unit 1225 determines that the reliability of the sign bit is to be maintained. In other words, the codeword used to express the corresponding memory unit is not changed. If the sign bit is not the same as its corresponding reread data (binary number), the comparing unit 1224 indicates the result to the judging unit 1225. The determining unit 1225 determines that the reliability of the sign bit is to be updated to a minimum reliability. In other words, the codeword used to express the corresponding memory unit is changed. For example, the sign of the least significant bit of the memory cell M_1 obtained by controlling the gate voltage V LSB is “0”, and the minimum of the memory cell M_1 obtained according to the control gate voltage V LSB +D is obtained. The soft bit of the valid bit is "1". Accordingly, the judging unit 1225 determines that a high-intensity bit "0" and a low-intensity bit "0"" to represent the sign bit "1" have the lowest reliability. In other words, the least significant bit of the memory cell M_1 is updated to have a minimum reliability of "0". Further, the code word "000" including the hard bit "0" and the soft bit "00" is used to represent the least significant bit of the memory cell M_1. The codewords used to express other memory cells are also performed in a similar manner. Then, the updated first part of the binary digit code word is sent to the storage device 1227 for updating the original code word. Next, the storage device 1227 provides the updated codeword to the decoding unit 1228 to perform an error correction operation. In an embodiment, the decoding unit 1228 performs an error correction soft decode according to the updated codeword. Please note that the updated codeword is compared by the control gate and the voltage V LSB +D. The obtained reread data (binary digits) and the positive and negative bits obtained from the control gate and voltage V LSB are obtained. In other words, error correction soft decoding is performed based on the sign bit and the reread data (binary number). If the error correction operation indicates that the updated codeword is correct or correctable (in other words, the error correction soft decode indicates a correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result and provides the correct material to Control logic circuit 1210. If the error correction operation indicates that the updated codeword is not correctable (in other words, the error correction soft decode indicates an uncorrectable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic circuit 1210 controls the flash memory. 1100 performs a reread operation on the memory cell unit in accordance with the control gate voltage V LSB -D (D is a predetermined voltage interval). The rereading operation performed on the memory cell unit in accordance with the control gate voltage V LSB -D can be regarded as the second rereading operation. Please note that the voltage interval between the normal read operation and the first reread operation is the same as the voltage interval between the normal read operation and the second reread operation. Therefore, the rules for updating the reliability of the codeword should be similar, and the details of generating and storing the codeword according to the reread data obtained by the second reread operation are omitted here. If the error correction operation indicates that the updated codeword resulting from the second reread operation is correct or correctable (in other words, the error correction soft decode indicates a correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result. The correct information is provided to control logic circuit 1210. If the error correction operation indicates that the updated codeword resulting from the second reread operation is not correctable (in other words, the error correction soft decode indicates an uncorrectable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic The circuit 1210 controls the flash memory 1100 to perform a reread operation (D is a predetermined voltage interval) on the memory cell unit in accordance with the control gate voltage V LSB + 2D. The rereading operation performed on the memory cell unit in accordance with the control gate voltage V LSB +2D can be regarded as the third rereading operation. In addition, by comparing the binary digits obtained from the normal read operation and the first reread operation, the bit changes of the second digit of the first part in the normal read operation and the first reread operation can be obtained (bit). The total number of floppings, and can be recorded as the number of bits BF1. Similarly, by comparing the binary digits obtained from the normal read operation and the second reread operation, the total number of bit changes in the first part of the second part of the normal read operation and the second reread operation can be obtained, and This is recorded as the bit change number BF2. The bit change numbers BF1 and BF2 can be used to track an optimal threshold voltage. Details are detailed later.
請參照第8圖,第8圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。在讀取一目標實體記憶體分頁(例如,實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1100依照第三控制閘極電壓VLSB +2D對記憶體單元(例如,實體記憶體分頁P_0之記憶體單元M_0~M_K)執行一讀取運作以判讀記憶體單元M_0~M_K之最低有效位元。此重讀運作可被視為第三次重讀運作。如第8圖所示,該實體記憶體分頁之第一部分之二進位數字係送至編碼單元1223。請注意到,該些二進位數字之每個位元係代表一實體記憶體分頁P_0之一記憶體細胞單元之最低有效位元之軟位元。例如,該些二進位數字最左邊的二進位數字係”0”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之軟位元。請注意到,第8圖所示之二進位數字(重讀資料)可能不完全與正負號位元相同。因為用以進行第三次重讀運作之控制閘極電壓係VLSB +2D,所以在利用閘極控制電壓VLSB 與VLSB +2D讀取臨界電壓落在VLSB 與VLSB +2D之記憶體單元時會得到不同的結果。例如,依照控制閘極電壓VLSB 所取得之記憶體單元M_0之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB +2D所取得之記憶體單元M_0之最低有效位元之軟位元係”1”。因此,編碼器1223需要更新記憶體單元M_0之最低有效位元之之碼字之可靠度。細節於後詳述。Please refer to FIG. 8. FIG. 8 is a diagram illustrating the encoding of the binary digits read from the flash memory unit to obtain the correct data. When reading a target physical memory page (eg, physical memory page P_0), control logic circuit 1210 controls flash memory 1100 to memory cells in accordance with third control gate voltage V LSB + 2D (eg, physical memory) The memory cells M_0 to M_K of the body page P_0 perform a read operation to interpret the least significant bits of the memory cells M_0 to M_K. This rereading operation can be considered as the third rereading operation. As shown in FIG. 8, the binary digit of the first portion of the physical memory page is sent to the encoding unit 1223. Please note that each of these binary digits represents a soft bit of the least significant bit of one of the memory cells of a physical memory page P_0. For example, the leftmost digit of the binary digits is "0", which represents the soft bit of the least significant bit of the memory cell M_0 of the physical memory page P_0. Please note that the binary digits (rereading data) shown in Figure 8 may not be exactly the same as the positive and negative digits. Because the control gate voltage system V LSB +2D is used for the third reread operation, the memory whose threshold voltage falls in V LSB and V LSB +2D is read using the gate control voltages V LSB and V LSB +2D . The unit will get different results. For example, the sign of the least significant bit of the memory cell M_0 obtained by controlling the gate voltage V LSB is “0”, and the minimum of the memory cell M_0 obtained according to the control gate voltage V LSB +2D is obtained. The soft bit of the valid bit is "1". Therefore, the encoder 1223 needs to update the reliability of the codeword of the least significant bit of the memory unit M_0. Details are detailed later.
依照控制閘極電壓VLSB +2D所取得重讀資料(二進位數字)係送至比較單元1224。比較單元1224存取儲存在儲存裝置1227之正負號位元,並比較正負號位元與重讀資料以更新碼字。請注意到,在第一次重讀運作與第二次重讀運作中某些二進位數字可能會與其相對應之正負號位元不同。該些二進位數字之可靠度將不再被更新。比較單元1224可忽略該些二進位數字。判斷單元1225則維持該更新後的碼字的之可靠度。換言之,當高強度位元及低強度位元已經被更新過了,判斷單元1225維持高強度位元與低強度位元之值。若正負號位元與其相對應之重讀資料(二進位數字)不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要維持該正負號位元之可靠度。換言之,用以表達相對應之記憶體單元之碼字係不改變。若正負號位元與其相對應之重讀資料(二進位數字)係不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要更新該正負號位元之可靠度至一較高之可靠度。換言之,用來表達相對應之記憶體單元之碼字係被改變。例如,依照控制閘極電壓VLSB 所取得之記憶體單元M_0之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB +2D所取得之記憶體單元M_0之最低有效位元之軟位元係”1”。據此,判斷單元1225判定一高強度位元”0”以及一低強度位元”1”以代表正負號位元”1”具有較高之可靠度。換言之,記憶體單元M_0之最低有效位元係被更新為有較高可靠度之”0”。此外,包含硬位元”0”以及軟位元”01”之碼字”001”係用來代表記憶體單元M_0之最低有效位元。用來表達其他記憶體單元之碼字亦依照類似的方式進行。接著,更新後的第一部分之二進位數字之碼字係送至儲存裝置1227用以更新原來的碼字。接著,儲存裝置1227將更新後的碼字提供給解碼單元1228以執行錯誤更正運作。在一實施例中,解碼單元1228依據更新後的碼字進行一錯誤更正軟解碼。請注意到,更新後的碼字係藉由比較依據控制閘及電壓VLSB +2D所取得之重讀資料(二進位數字)以及依據控制閘及電壓VLSB 所取得之正負號位元而得。換言之,錯誤更正軟解碼係依據正負號位元與重讀資料(二進位數字)來進行的。若錯誤更正運作指出更新後的碼字係正確或可更正(換言之錯誤更正軟解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出更新後的碼字係不可更正(換言之錯誤更正軟解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB -2D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。細節詳述於後。The reread data (binary digits) obtained in accordance with the control gate voltage V LSB + 2D is sent to the comparison unit 1224. Comparison unit 1224 accesses the sign bit stored in storage device 1227 and compares the sign bit with the reread data to update the code word. Please note that some binary digits may differ from the corresponding positive and negative digits in the first reread operation and the second reread operation. The reliability of these binary digits will no longer be updated. Comparison unit 1224 can ignore the binary digits. The determining unit 1225 maintains the reliability of the updated codeword. In other words, when the high-intensity bit and the low-intensity bit have been updated, the judging unit 1225 maintains the values of the high-intensity bit and the low-intensity bit. If the sign bit is not the same as its corresponding reread data (binary number), the comparing unit 1224 indicates the result to the judging unit 1225. The judging unit 1225 determines that the reliability of the sign bit is to be maintained. In other words, the code word used to express the corresponding memory unit does not change. If the sign bit is not the same as its corresponding reread data (binary number), the comparing unit 1224 indicates the result to the judging unit 1225. The determining unit 1225 determines that the reliability of the sign bit is to be updated to a higher reliability. In other words, the codeword used to express the corresponding memory unit is changed. For example, the sign of the least significant bit of the memory cell M_0 obtained by controlling the gate voltage V LSB is “0”, and the minimum of the memory cell M_0 obtained according to the control gate voltage V LSB +2D is obtained. The soft bit of the valid bit is "1". Accordingly, the judging unit 1225 determines that a high-intensity bit "0" and a low-intensity bit "1" to represent the sign bit "1" have higher reliability. In other words, the least significant bit of the memory cell M_0 is updated to have a higher reliability of "0". Further, the code word "001" including the hard bit "0" and the soft bit "01" is used to represent the least significant bit of the memory cell M_0. The codewords used to express other memory cells are also performed in a similar manner. Then, the updated first part of the binary digit code word is sent to the storage device 1227 for updating the original code word. Next, the storage device 1227 provides the updated codeword to the decoding unit 1228 to perform an error correction operation. In an embodiment, decoding unit 1228 performs an error correction soft decoding in accordance with the updated codeword. Please note that the updated codeword is obtained by comparing the reread data (binary digits) obtained from the gate and voltage V LSB +2D and the sign bits obtained from the gate and voltage V LSB . In other words, error correction soft decoding is performed based on the sign bit and the reread data (binary number). If the error correction operation indicates that the updated codeword is correct or correctable (in other words, the error correction soft decode indicates a correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result and provides the correct material to Control logic circuit 1210. If the error correction operation indicates that the updated codeword is not correctable (in other words, the error correction soft decode indicates an uncorrectable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic circuit 1210 controls the flash memory. 1100 performs a reread operation on the memory cell unit in accordance with the control gate voltage V LSB -2D (D is a predetermined voltage interval). Details are detailed later.
依照控制閘極電壓VLSB -2D對記憶體細胞單元所進行之重讀運作可視為第四重讀運作。請注意到,一般讀取運作與第三重讀運作之電壓間隔係與一般讀取運作與第四重讀運作之電壓間隔相同。因此,更新碼字可靠度之規則應該類似,依照第四次重讀運作所取得之重讀資料產生與儲存碼字的細節在此省略。若錯誤更正運作指出第四次重讀運作所得之更新後的碼字係正確或可更正(換言之錯誤更正軟解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出第四次重讀運作所得之更新後的碼字係不可更正(換言之錯誤更正軟解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB +3D對記憶體細胞單元進行一重讀運作。依照控制閘極電壓VLSB +3D對記憶體細胞單元所進行之重讀運作可視為第五重讀運作。除此之外,藉由比較從一般讀取運作與第三重讀運作所取得之二進位數字,可以得到在一般讀取運作與第三重讀運作中第一部分之二進位數字之位元變動(bit flopping)總數,並可將其記為位元變動數BF3。類似地,藉由比較從一般讀取運作與第四重讀運作所取得之二進位數字,可以得到在一般讀取運作與第四重讀運作中第一部分之二進位數字之位元變動總數,並可將其記為位元變動數BF4。位元變動數BF3與BF4可用來追蹤一最佳之臨界電壓。細節詳述於後。The rereading operation performed on the memory cell unit in accordance with the control gate voltage V LSB -2D can be regarded as the fourth reread operation. Please note that the voltage interval between the normal read operation and the third read operation is the same as the voltage interval between the normal read operation and the fourth read operation. Therefore, the rules for updating the reliability of codewords should be similar, and the details of generating and storing codewords according to the reread data obtained by the fourth reread operation are omitted here. If the error correction operation indicates that the updated codeword resulting from the fourth reread operation is correct or correctable (in other words, the error correction soft decode indicates a correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result. The correct information is provided to control logic circuit 1210. If the error correction operation indicates that the updated codeword resulting from the fourth reread operation is not correctable (in other words, the error correction soft decode indicates an uncorrectable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic The circuit 1210 controls the flash memory 1100 to perform a reread operation on the memory cell unit in accordance with the control gate voltage V LSB +3D. The rereading operation performed on the memory cell unit in accordance with the control gate voltage V LSB +3D can be regarded as the fifth reread operation. In addition, by comparing the binary digits obtained from the normal read operation and the third reread operation, the bit change of the second digit of the first part in the normal read operation and the third reread operation can be obtained. The total number of (bit flopping), and it can be recorded as the bit change number BF3. Similarly, by comparing the binary digits obtained from the normal read operation and the fourth reread operation, the total number of bit changes in the first part of the second part of the normal read operation and the fourth reread operation can be obtained, and This is recorded as the bit change number BF4. Bit change numbers BF3 and BF4 can be used to track an optimal threshold voltage. Details are detailed later.
請參照第9圖,第9圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。在讀取一目標實體記憶體分頁(例如,實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1100依照第五控制閘極電壓VLSB +5D對記憶體單元(例如,實體記憶體分頁P_0之記憶體單元M_0~M_K)執行一讀取運作以判讀記憶體單元M_0~M_K之最低有效位元。此重讀運作可被視為第五次重讀運作。如第9圖所示,該實體記憶體分頁之第一部分之二進位數字係送至編碼單元1223。請注意到,該些二進位數字之每個位元係代表一實體記憶體分頁P_0之一記憶體細胞單元之最低有效位元之軟位元。例如,該些二進位數字最右邊的二進位數字係”0”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之軟位元。 請注意到,第9圖所示之二進位數字(重讀資料)可能不完全與正負號位元相同。因為用以進行第五次重讀運作之控制閘極電壓係VLSB +3D,所以在利用閘極控制電壓VLSB 與VLSB +3D讀取臨界電壓落在VLSB 與VLSB +3D之記憶體單元時會得到不同的結果。例如,依照控制閘極電壓VLSB 所取得之記憶體單元M_K之最低有效位元之正負號位元係”1”,而依照控制閘極電壓VLSB +3D所取得之記憶體單元M_0之最低有效位元之軟位元係”1”。因此,編碼器1223需要更新記憶體單元M_K之最低有效位元之之碼字之可靠度。細節於後詳述。Please refer to FIG. 9. FIG. 9 is a schematic diagram showing the encoding of the binary digits read from the flash memory unit to obtain the correct data. When reading a target physical memory page (eg, physical memory page P_0), control logic circuit 1210 controls flash memory 1100 to memory cells in accordance with fifth control gate voltage V LSB +5D (eg, physical memory) The memory cells M_0 to M_K of the body page P_0 perform a read operation to interpret the least significant bits of the memory cells M_0 to M_K. This rereading operation can be considered as the fifth rereading operation. As shown in FIG. 9, the binary digit of the first portion of the physical memory page is sent to the encoding unit 1223. Please note that each of these binary digits represents a soft bit of the least significant bit of one of the memory cells of a physical memory page P_0. For example, the rightmost binary digit of the binary digits is "0", which represents the soft bit of the least significant bit of the memory cell M_0 of the physical memory page P_0. Please note that the binary digits (rereading data) shown in Figure 9 may not be exactly the same as the plus and minus digits. Because the control gate voltage system V LSB +3D is used for the fifth reread operation, the memory whose threshold voltage falls in V LSB and V LSB +3D is read using the gate control voltages V LSB and V LSB +3D . The unit will get different results. For example, according to the positive and negative bit line "1" of the least significant bit of the memory cell M_K obtained by controlling the gate voltage V LSB , the minimum of the memory cell M_0 obtained according to the control gate voltage V LSB +3D The soft bit of the valid bit is "1". Therefore, the encoder 1223 needs to update the reliability of the codeword of the least significant bit of the memory unit M_K. Details are detailed later.
依照控制閘極電壓VLSB +3D所取得重讀資料(二進位數字)係送至比較單元1224。比較單元1224存取儲存在儲存裝置1227之正負號位元,並比較正負號位元與重讀資料以更新碼字。請注意到,在第一、第二、第三、第四次重讀運作中某些二進位數字可能會與其相對應之正負號位元不同。該些二進位數字之可靠度將不再被更新。比較單元1224可忽略該些二進位數字。判斷單元1225則維持該更新後的碼字的之可靠度。換言之,當高強度位元及低強度位元已經被更新過了,判斷單元1225維持高強度位元與低強度位元之值。若正負號位元與其相對應之重讀資料(二進位數字)係相同,比較單元1224將該結果指示判斷單元1225。換言之,用以表達相對應之記憶體單元之碼字係不改變。若正負號位元與其相對應之重讀資料(二進位數字)係不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要更新該正負號位元之可靠度至一較高之可靠度。換言之,用來表達相對應之記憶體單元之碼字係被改變。例如,依照控制閘極電壓VLSB 所取得之記憶體單元M_K之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB +3D所取得之記憶體單元M_K之最低有效位元之軟位元係”1”。據此,判斷單元1225判定一高強度位元”1”以及一低強度位元”0”以代表正負號位元”1”具有較高之可靠度。換言之,記憶體單元M_K之最低有效位元係被更新為有較高可靠度之”0”。此外,包含硬位元”0”以及軟位元”10”之碼字”010”係用來代表記憶體單元M_K之最低有效位元。用來表達其他記憶體單元之碼字亦依照類似的方式進行。接著,更新後的第一部分之二進位數字之碼字係送至儲存裝置1227用以更新原來的碼字。接著,儲存裝置1227將更新後的碼字提供給解碼單元1228以執行錯誤更正運作。在一實施例中,解碼單元1228依據更新後的碼字進行一錯誤更正軟解碼。請注意到,更新後的碼字係藉由比較依據控制閘及電壓VLSB +3D所取得之重讀資料(二進位數字)以及依據控制閘及電壓VLSB 所取得之正負號位元而得。換言之,錯誤更正軟解碼係依據正負號位元與重讀資料(二進位數字)來進行的。若錯誤更正運作指出更新後的碼字係正確或可更正(換言之錯誤更正軟解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出更新後的碼字係不可更正(換言之錯誤更正軟解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB -3D對記憶體細胞單元進行一重讀運作。細節詳述於後。The reread data (binary digits) obtained in accordance with the control gate voltage V LSB +3D is sent to the comparison unit 1224. Comparison unit 1224 accesses the sign bit stored in storage device 1227 and compares the sign bit with the reread data to update the code word. Please note that some binary digits may differ from their corresponding sign digits in the first, second, third, and fourth reread operations. The reliability of these binary digits will no longer be updated. Comparison unit 1224 can ignore the binary digits. The determining unit 1225 maintains the reliability of the updated codeword. In other words, when the high-intensity bit and the low-intensity bit have been updated, the judging unit 1225 maintains the values of the high-intensity bit and the low-intensity bit. If the sign bit is the same as its corresponding reread data (binary number), the comparing unit 1224 indicates the result to the judging unit 1225. In other words, the code word used to express the corresponding memory unit does not change. If the sign bit is not the same as its corresponding reread data (binary number), the comparing unit 1224 indicates the result to the judging unit 1225. The determining unit 1225 determines that the reliability of the sign bit is to be updated to a higher reliability. In other words, the codeword used to express the corresponding memory unit is changed. For example, the sign of the least significant bit of the memory cell M_K obtained by controlling the gate voltage V LSB is “0”, and the minimum of the memory cell M_K obtained according to the control gate voltage V LSB +3D . The soft bit of the valid bit is "1". Accordingly, the judging unit 1225 determines that a high-intensity bit "1" and a low-intensity bit "0" to represent the sign bit "1" have a higher reliability. In other words, the least significant bit of the memory unit M_K is updated to have a higher reliability of "0". Further, the code word "010" including the hard bit "0" and the soft bit "10" is used to represent the least significant bit of the memory cell M_K. The codewords used to express other memory cells are also performed in a similar manner. Then, the updated first part of the binary digit code word is sent to the storage device 1227 for updating the original code word. Next, the storage device 1227 provides the updated codeword to the decoding unit 1228 to perform an error correction operation. In an embodiment, decoding unit 1228 performs an error correction soft decoding in accordance with the updated codeword. Please note that the updated codeword is obtained by comparing the reread data (binary digits) obtained from the control gate and voltage V LSB +3D and the sign bits obtained from the control gate and voltage V LSB . In other words, error correction soft decoding is performed based on the sign bit and the reread data (binary number). If the error correction operation indicates that the updated codeword is correct or correctable (in other words, the error correction soft decode indicates a correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result and provides the correct material to Control logic circuit 1210. If the error correction operation indicates that the updated codeword is not correctable (in other words, the error correction soft decode indicates an uncorrectable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic circuit 1210 controls the flash memory. The 1100 performs a reread operation on the memory cell unit in accordance with the control gate voltage V LSB -3D. Details are detailed later.
依照控制閘極電壓VLSB -3D對記憶體細胞單元所進行之重讀運作可視為第六重讀運作。請注意到,一般讀取運作與第五重讀運作之電壓間隔係與一般讀取運作與第六重讀運作之電壓間隔相同。因此,更新碼字可靠度之規則應該類似,依照第六重讀運作所取得之重讀資料產生與儲存碼字的細節在此省略。若錯誤更正運作指出第六次重讀運作所得之更新後的碼字係正確或可更正(換言之錯誤更正軟解碼指示一可更正的結果),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出第六次重讀運作所得之更新後的碼字係不可更正(換言之錯誤更正軟解碼指示一不可更正的結果),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB +4D對記憶體細胞單元進行一重讀運作。依照控制閘極電壓VLSB +4D對記憶體細胞單元所進行之重讀運作可視為第七重讀運作。或者,若錯誤更正運作指出第六次重讀運作所得之更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210判定對目標實體記憶體分頁P_0讀取失敗,並將讀取失敗回報給一主機(host)。讀取運作之次數可任意決定,其非為本發明之限制。除此之外,藉由比較從一般讀取運作與第五重讀運作所取得之二進位數字,可以得到在一般讀取運作與第五重讀運作中第一部分之二進位數字之位元變動(bit flopping)總數,並可將其記為位元變動數BF5。類似地,藉由比較從一般讀取運作與第六重讀運作所取得之二進位數字,可以得到在一般讀取運作與第六重讀運作中第一部分之二進位數字之位元變動總數,並可將其記為位元變動數BF6。位元變動數BF5與BF6可用來追蹤一最佳之臨界電壓。The rereading operation performed on the memory cell unit in accordance with the control gate voltage V LSB -3D can be regarded as the sixth reread operation. Please note that the voltage interval between the normal read operation and the fifth reread operation is the same as the voltage interval between the normal read operation and the sixth read operation. Therefore, the rules for updating the reliability of the codeword should be similar, and the details of generating and storing the codeword according to the reread data obtained by the sixth reread operation are omitted here. If the error correction operation indicates that the updated codeword resulting from the sixth reread operation is correct or correctable (in other words, the error correction soft decode indicates a correctable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result. The correct information is provided to control logic circuit 1210. If the error correction operation indicates that the updated codeword resulting from the sixth reread operation is not correctable (in other words, the error correction soft decode indicates an uncorrectable result), the error correction circuit 1220 notifies the control logic circuit 1210 of the result, and the control logic The circuit 1210 controls the flash memory 1100 to perform a reread operation on the memory cell unit in accordance with the control gate voltage V LSB +4D. The rereading operation performed on the memory cell unit in accordance with the control gate voltage V LSB +4D can be regarded as the seventh reread operation. Alternatively, if the error correction operation indicates that the updated codeword obtained from the sixth reread operation cannot be corrected (in other words, the data stored in the memory unit cannot be correctly obtained), the error correction circuit 1220 notifies the control logic circuit 1210 of the result. And the control logic circuit 1210 determines that the reading of the target entity memory page P_0 fails, and returns the read failure to a host. The number of reading operations can be arbitrarily determined, which is not a limitation of the present invention. In addition, by comparing the binary digits obtained from the normal read operation and the fifth reread operation, the bit change of the second carry digit of the first part in the normal read operation and the fifth reread operation can be obtained (bit). The total number of floppings, and can be recorded as the number of bit changes BF5. Similarly, by comparing the binary digits obtained from the normal read operation and the sixth reread operation, the total number of bit changes in the first part of the second part of the normal read operation and the sixth reread operation can be obtained, and This is recorded as the bit change number BF6. The bit variation BF5 and BF6 can be used to track an optimal threshold voltage.
請參照第10圖,第10圖係說明碼字與記憶體單元之對應關係之示意圖。例如,當收到依照初始控制閘極電壓VLSB所取得之一記憶體單元之硬位元時,編碼器1223將該硬位元視為該記憶體單元之最低有效位元之正負號位元並預設該正負號位元具有最高之可靠度,例如,碼字”011”代表非常強的”0”,而碼字”111”代表非常強的”1”。然而,在第一次重讀運作中,臨界電壓位於VLSB 與VLSB +D之間的記憶體單元將會被對應至非常弱的”0”,並編碼為”000”。在第二次重讀運作中,臨界電壓位於VLSB 與VLSB -D之間的記憶體單元將會被對應至非常弱的”1”,並編碼為”100”。在第三次重讀運作中,臨界電壓位於VLSB +D與VLSB +2D之間的記憶體單元將會被對應至弱的”0”,並編碼為”001”。在第四次重讀運作中,臨界電壓位於VLSB -D與VLSB -2D之間的記憶體單元將會被對應至弱的”1”,並編碼為”101”。在第五次重讀運作中,臨界電壓位於VLSB +2D與VLSB +3D之間的記憶體單元將會被對應至強的”0”,並編碼為”010”。在第六次重讀運作中,臨界電壓位於VLSB -2D與VLSB -3D之間的記憶體單元將會被對應至弱的”1”,並編碼為”110”。請注意到,碼字與臨界電壓的對應關係可以任意地決定,只要正負號位元的(硬位元)的可靠度可以藉由不同的碼字來辨識。此外,碼字的碼字長度係三個位元,其係比一個記憶體單元在一般讀取運作與第一到第六此讀取運作中所取得之二進位數字(字串)來得短。舉例來說,一個記憶體單元之臨界電壓係位於VLSB +2D與VLSB +3D之間。在一般讀取運作與第一到第六此讀取運作中所取得該記憶體單元之最低有效位元之二進位數字係”0000000”(二進位數字組合BS8)。該二進位數字包含七個位元,其係較碼字的碼字長度長。若錯誤更正解碼器1222需要儲存全部七個位元才能執行錯誤更正運作,而非只需要儲存三個位元,錯誤更正解碼器需要較多之記憶體空間。因此,將在不同讀取運作中所取得之二進位碼字編碼為較短的碼字可以減少記憶體空間,而成本亦可降低。Please refer to FIG. 10, which is a schematic diagram showing the correspondence between codewords and memory cells. For example, when receiving a hard bit of one of the memory cells obtained according to the initial control gate voltage VLSB, the encoder 1223 regards the hard bit as the sign bit of the least significant bit of the memory cell and It is preset that the sign bit has the highest reliability, for example, the code word "011" represents a very strong "0", and the code word "111" represents a very strong "1". However, in the first reread operation, the memory cell with a threshold voltage between V LSB and V LSB +D will be mapped to a very weak "0" and encoded as "000". In the second reread operation, the memory cell with a threshold voltage between V LSB and V LSB -D will be mapped to a very weak "1" and encoded as "100". In the third reread operation, the memory cell with a threshold voltage between V LSB +D and V LSB +2D will be mapped to a weak "0" and encoded as "001". In the fourth reread operation, the memory cell with a threshold voltage between V LSB -D and V LSB -2D will be mapped to a weak "1" and encoded as "101". In the fifth reread operation, the memory cell with a threshold voltage between V LSB +2D and V LSB +3D will be corresponding to a strong "0" and encoded as "010". In the sixth reread operation, the memory cell with a threshold voltage between V LSB -2D and V LSB -3D will be mapped to a weak "1" and encoded as "110". Please note that the correspondence between the codeword and the threshold voltage can be arbitrarily determined as long as the reliability of the (hard bit) of the sign bit can be identified by different code words. In addition, the codeword has a codeword length of three bits, which is shorter than a binary number (string) obtained by a memory cell in the normal read operation and the first to sixth read operations. For example, the threshold voltage of a memory cell is between V LSB +2D and V LSB +3D. The binary digit "0000000" (binary digit combination BS8) of the least significant bit of the memory unit obtained in the normal read operation and the first to sixth read operations. The binary digit contains seven bits, which are longer than the codeword length of the codeword. If the error correction decoder 1222 needs to store all seven bits in order to perform the error correction operation, instead of only storing three bits, the error correction decoder requires more memory space. Therefore, encoding the binary codewords obtained in different read operations into shorter codewords can reduce the memory space, and the cost can also be reduced.
在另一實施例中,若錯誤更正運作指示在第六次重讀運作中得到之更新碼字係不可更正(換言之,儲存在記憶體單元之資料無法被正確的取得)解碼單元1228啟動概似比(LLR,log-likelihood ratio)訓練程序以調整用以執行錯誤更正軟解碼之概似比對應規則(LLR mapping rule)。請對照第11圖,第11圖係用以說明解碼單元1228之方塊圖。解碼單元1228包含一概似比訓練單元12280、一概似比對應單元12282以及一解碼電路12284。請注意到,僅有與本發明相關之技術特徵才顯示於第11圖中。即,解碼單元1228可以包含其他元件用以進行其他功能。因為第六次重讀運作無法取得正確資料,故用來將更新後碼字對應成概似比值之概似比對應規則應該要做調整。細節於後詳述。In another embodiment, if the error correction operation indicates that the updated codeword obtained in the sixth reread operation cannot be corrected (in other words, the data stored in the memory unit cannot be correctly obtained), the decoding unit 1228 starts the approximate ratio. (LLR, log-likelihood ratio) training program to adjust the LLR mapping rule to perform error correction soft decoding. Please refer to FIG. 11 and FIG. 11 for explaining a block diagram of the decoding unit 1228. The decoding unit 1228 includes an approximate ratio training unit 12280, an analogy ratio corresponding unit 12282, and a decoding circuit 12284. Please note that only the technical features related to the present invention are shown in FIG. That is, decoding unit 1228 can include other components for performing other functions. Since the sixth re-read operation cannot obtain the correct data, the analogy used to map the updated codeword to the approximate ratio should be adjusted. Details are detailed later.
在第六次重讀運作中取得目標實體記憶分頁(例如實體記憶體分頁P_0)之更新後碼字。概似比對應單元12282依據預定之概似比對應規則將目標實體記憶體分頁之更新後碼字對應成一組第一概似比對應值。舉例來說,用來表達各個記憶體單元之各個碼字係對應至一特定之概似比對應值。第一組概似比對應值係提供給解碼電路12284。解碼電路12284依據該第一組概似比對應值進行一錯誤更正運作。若依據該該第一組概似比對應值進行之錯誤更正運作指示一不可更正之結果,概似比訓練單元12280蒐集該快閃記憶體1100的一個可以更正的錯誤更正單元的碼字以及可以更正的錯誤更正單元的碼字的正確資料的統計特徵。舉例來說,該目標實體記憶體分頁包含8個區段,而個區段係一個錯誤更正單元。在這8個區段中,第一區段S0係不可更正,而其他區段係可更正。概似比訓練單元12280自目標記憶體分頁之碼字中取得第二區段S1之碼字。第二區段S1係鄰近於第一區段S1並包含x個記憶體單元。在這x個記憶體單元中,有n0個記憶體單元編碼為碼字”000”、有n1個記憶體單元編碼為碼字”001”......以及有n7個記憶體單元編碼為碼字”111”。在對第二區段S1進行錯誤更正運作後,可以正確地取得第二區段S1之正確資料。對於那些被編碼為”000”的記憶體單元,有A0個記憶體單元被正確地解碼為1,而有A0個記憶體單元被正確地解碼為0。因此,碼字”000”之概似比對應值應該被建構為log(A0/B0)。碼字”001”、碼字”010”......以及碼字”111”之概似比對應值亦可類似地被取得。碼字以及從第二區段S1之碼字與第二區段S1之正確資料所蒐集到之統計特徵所得之概似比對應值之間的對應關係可以視為一個調整後的概似比對應規則。調整後的概似比對應規則可建成一個概似比對應表。因為第二區段S1係可更正,故從第二區段S1所取得之調整後的概似比對應規則可能示一個比預定之概似比對應規則還要適當之概似比對應規則。The updated codeword of the target entity memory page (eg, physical memory page P_0) is obtained during the sixth reread operation. The approximate ratio matching unit 12282 associates the updated codewords of the target entity memory pages into a set of first approximate ratio corresponding values according to a predetermined approximate ratio correspondence rule. For example, each code word used to express each memory unit corresponds to a specific approximate ratio corresponding value. The first set of approximate ratios are provided to the decoding circuit 12284. The decoding circuit 12284 performs an error correction operation according to the first set of similarity ratio corresponding values. If the error correction operation indication according to the first group approximate ratio corresponding value is a result of the uncorrectable, the training unit 12280 collects a correctable error correction unit code word of the flash memory 1100 and may The corrected error corrects the statistical characteristics of the correct data for the unit's codeword. For example, the target entity memory page contains 8 segments, and the segments are an error correction unit. Of the eight segments, the first segment S0 is not correctable, while the other segments are correctable. The codeword of the second segment S1 is obtained from the codeword of the target memory page by the training unit 12280. The second segment S1 is adjacent to the first segment S1 and includes x memory cells. Among the x memory cells, n0 memory cells are coded as codeword "000", n1 memory cells are coded as codeword "001"... and there are n7 memory cell codes. For the code word "111". After the error correction operation is performed on the second segment S1, the correct data of the second segment S1 can be correctly obtained. For those memory cells encoded as "000", there are A0 memory cells that are correctly decoded to 1, and A0 memory cells are correctly decoded to zero. Therefore, the approximate ratio of the codeword "000" should be constructed as log(A0/B0). The approximate ratio of the code word "001", the code word "010", and the code word "111" can also be similarly obtained. The correspondence between the codeword and the approximate ratio of the corresponding values obtained from the statistical features collected by the codeword of the second segment S1 and the correct data of the second segment S1 can be regarded as an adjusted approximation ratio corresponding rule. The adjusted approximate ratio can be compared with the corresponding rule to construct an approximate ratio correspondence table. Since the second segment S1 can be corrected, the adjusted approximation ratio corresponding rule obtained from the second segment S1 may indicate an approximation ratio corresponding rule that is more appropriate than the predetermined rule.
調整後的概似比對應規則可提供給概似比對應單元12282。如此一來,概似比對應單元12282依據調整後的概似比對應規則將自第六次重讀運作取得之目標實體記憶體分頁之碼字對應成第二組概似比對應值。第二組概似比對應值係提供給解碼電路12284。解碼電路12284依據第二組概似比對應值進行錯誤更正運作(例如錯誤更正軟解碼運作)。若錯誤更正運作指示一可更正之結果,調整後的概似比對應值可被用來對下一個實體記憶體分頁進行解碼。舉例來說,控制邏輯電路1210控制快閃記憶體1100對快閃記憶體1100的另一實體記憶體分頁(例如實體記憶體分頁P_1)進行讀取運作,並取得另一實體記憶體分頁之碼字。概似比對應單元12282依據該調整後的概似比對應規則取得該碼字之一組概似比對應值。解碼電路12284對該組概似比對應值進行錯誤更正運作。The adjusted approximate ratio correspondence rule may be provided to the approximate ratio corresponding unit 12282. In this way, the approximate ratio ratio unit 12282 corresponds the codeword of the target entity memory page obtained from the sixth reread operation to the second group approximate ratio corresponding value according to the adjusted approximate ratio correspondence rule. The second set of similarity ratios is provided to the decoding circuit 12284. The decoding circuit 12284 performs an error correction operation (eg, error correction soft decoding operation) according to the second set of similarity ratio corresponding values. If the error corrects the operational indication to a corrected result, the adjusted likelihood ratio corresponding value can be used to decode the next physical memory page. For example, the control logic circuit 1210 controls the flash memory 1100 to perform another read operation on the other physical memory page of the flash memory 1100 (for example, the physical memory page P_1), and obtain the code of another entity memory page. word. The approximate ratio unit 12282 obtains a set of similar ratios of the codewords according to the adjusted approximate ratio correspondence rule. The decoding circuit 12284 performs an error correction operation on the set of similarity ratio corresponding values.
請注意到,調整後的概似比對應規則可用不同之方式取得。例如,調整後的概似比對應規則可以透過其他區段(例如區段S2、S3......以及S7)的碼字以及該其他區段之正確資料的統計特徵而得。此外,調整後的概似比對應規則可以透過其他可更正實體記憶體分頁(例如實體記憶體分頁P_N)的碼字以及該可更正實體記憶體分頁之正確資料的統計特徵而得。該可更正實體記憶體分頁可以在物理上鄰近於該目標實體記憶分頁。而找出調整後的概似比對應規則的細節細雨前述之實施例類似。因此,為求簡潔將該些說明省略。Please note that the adjusted appearance is obtained in a different way than the corresponding rules. For example, the adjusted likelihood ratio can be obtained by translating the codewords of other sections (eg, sections S2, S3, ..., and S7) and the statistical characteristics of the correct data of the other sections. In addition, the adjusted likelihood ratio correspondence rule may be obtained by using other codewords that can correct the physical memory page (for example, the physical memory page P_N) and the statistical characteristics of the correct data of the correctable entity memory page. The correctable physical memory page can be physically adjacent to the target entity memory page. Finding the adjusted approximation is similar to the details of the corresponding rule. Therefore, the description will be omitted for brevity.
請參照第12圖,其係說明讀取儲存在快閃記憶體之資料之程序之流程圖。在步驟200中,控制邏輯電路1210控制快閃記憶體1100依據初始臨界電壓VLSB 對一目標實體記憶體分頁之記憶體單元進行一般讀取運作,以取得一個分頁之第一二進位數字用以分別代表各個記憶體單元之最低有效位元。在步驟202中,錯誤更正解碼器1222依據該分頁之第一二進位數字進行錯誤更正硬解碼。若錯誤更正硬解碼指示一個可以更正之結果,進入步驟214,讀取下一個實體記憶體分頁。在步驟204中,若錯誤更正硬解碼指示一個不可以更正之結果,控制邏輯電路1210控制快閃記憶體1100依據初始臨界電壓VLSB +D以及VLSB -D對目標實體記憶體分頁之記憶體單元進行第一與第二重讀運作,以取得兩個分頁之第二二進位數字用以分別代表各個記憶體單元之最低有效位元。錯誤更正解碼器1222依據從第一二進位數字與第二二進位數字編碼而得之碼字進行錯誤更正軟解碼。若錯誤更正軟解碼指示一個可更正之結果,則進入步驟212,進行臨界電壓追蹤程序。細節於後詳述。步驟206,若錯誤更正軟解碼指示一個不可更正之結果,控制邏輯電路1210控制快閃記憶體1100依據初始臨界電壓VLSB +2D以及VLSB -2D對目標實體記憶體分頁之記憶體單元進行第三與第四重讀運作,以取得兩個分頁之第三二進位數字用以分別代表各個記憶體單元之最低有效位元。錯誤更正解碼器1222依據從第一二進位數字、第二二進位數字與第三二進位數字編碼而得之碼字進行錯誤更正軟解碼。若錯誤更正軟解碼指示一個可更正之結果,則進入步驟212,進行臨界電壓追蹤程序。在步驟208,若錯誤更正軟解碼指示一個不可更正之結果,控制邏輯電路1210控制快閃記憶體1100依據初始臨界電壓VLSB +3D以及VLSB -3D對目標實體記憶體分頁之記憶體單元進行第五與第六重讀運作,以取得兩個分頁之第四二進位數字用以分別代表各個記憶體單元之最低有效位元。錯誤更正解碼器1222依據從第一二進位數字、第二二進位數字、第三二進位數字與第四二進位數字編碼而得之碼字進行錯誤更正軟解碼。若錯誤更正軟解碼指示一個可更正之結果,則進入步驟212,進行臨界電壓追蹤程序。在步驟210若錯誤更正軟解碼指示一個不可更正之結果,進入概似比訓練階段(LLR training stage),概似比訓練階段之細節係已詳述於第11圖以及相關說明。因此細節於此省略以求簡潔。Please refer to FIG. 12, which is a flowchart illustrating a procedure for reading data stored in a flash memory. In step 200, the control logic circuit 1210 controls the flash memory 1100 to perform a general read operation on the memory unit of a target physical memory page according to the initial threshold voltage V LSB to obtain a first binary digit of the page. Represents the least significant bits of each memory unit. In step 202, error correction decoder 1222 performs error correction hard decoding in accordance with the first binary digit of the page. If the error correction hard decode indicates a correctable result, proceed to step 214 to read the next physical memory page. In step 204, if the error correction hard decoding indicates a result that cannot be corrected, the control logic circuit 1210 controls the memory of the flash memory 1100 to page the target entity memory according to the initial threshold voltages V LSB +D and V LSB -D . The unit performs the first and second reread operations to obtain the second binary digits of the two pages for respectively representing the least significant bits of the respective memory unit. The error correction decoder 1222 performs error correction soft decoding based on the codeword obtained by encoding the first binary digit and the second binary digit. If the error correction soft decode indicates a correctable result, then step 212 is entered to perform a threshold voltage tracking procedure. Details are detailed later. Step 206, if the error correction soft decoding indicates a result of the uncorrectable, the control logic circuit 1210 controls the flash memory 1100 to perform the memory unit of the target physical memory page according to the initial threshold voltages V LSB +2D and V LSB -2D. The third and fourth reread operations operate to obtain the third binary digits of the two pages to represent the least significant bits of the respective memory cells. The error correction decoder 1222 performs error correction soft decoding based on the code words obtained by encoding the first binary digit, the second binary digit, and the third binary digit. If the error correction soft decode indicates a correctable result, then step 212 is entered to perform a threshold voltage tracking procedure. In step 208, if the error correction soft decoding indicates a result of the uncorrectable, the control logic circuit 1210 controls the flash memory 1100 to perform the memory unit of the target physical memory page according to the initial threshold voltages V LSB +3D and V LSB -3D. The fifth and sixth reread operations operate to obtain the fourth binary digits of the two pages for respectively representing the least significant bits of the respective memory cells. The error correction decoder 1222 performs error correction soft decoding based on the code words obtained by encoding the first binary digit, the second binary digit, the third binary digit, and the fourth binary digit. If the error correction soft decode indicates a correctable result, then step 212 is entered to perform a threshold voltage tracking procedure. If the error correction in step 210 indicates a non-correctable result, the LLR training stage is entered, and the details of the training phase are detailed in Figure 11 and the related description. Therefore, the details are omitted here for brevity.
請參照第13圖,其係說明目標實體記憶體分頁之臨界電壓分布之示意圖。標實體記憶體分頁之臨界電壓分布係得自不同之重讀運作。例如,臨界電壓位於VLSB 與VLSB +D之間的記憶體單元的數量係X1。而數量X1係等於位元變動數BF1。如前所述,位元變動數BF1係自比較一般讀取運作與第一重讀運作所得之二進位數字而得。類似地,臨界電壓位於VLSB 與VLSB -D之間的記憶體單元的數量係X2。而數量X2係等於位元變動數BF2。臨界電壓位於VLSB +D與VLSB +2D之間的記憶體單元的數量係X3。而數量X3係等於位元變動數BF3減去位元變動數BF1。類似地,臨界電壓位於VLSB -D與VLSB -2D之間的記憶體單元的數量係X4。而數量X4係等於位元變動數BF4減去位元變動數BF2。此外,臨界電壓位於VLSB +2D與VLSB +3D之間的記憶體單元的數量係X5。而數量X5係等於位元變動數BF5減去位元變動數BF3與位元變動數BF1。類似地,臨界電壓位於VLSB -2D與VLSB -3D之間的記憶體單元的數量係X6。而數量X6係等於位元變動數BF6減去位元變動數BF2與位元變動數BF4。臨界電壓追蹤單元1230找出數量X1~X6,並依據數量X1~X6判斷一臨界電壓移動方向SD。因為數量X1係大於數量X2,一個較佳之臨界電壓可能移往一個較低之電壓而非VLSB 。此外,該較佳之臨界電壓可能落於VLSB -D,因為數量X2與X4係相對的小。請注意到,在較佳之臨界電壓(例如VLSB -D)找到之後,控制邏輯電路1210可使用該較佳電壓做為讀取快閃記憶體電路1100之下一個實體記憶體分頁之初始臨界電壓(控制閘極電壓)。Please refer to Fig. 13, which is a schematic diagram showing the threshold voltage distribution of the target entity memory page. The threshold voltage distribution of the standard physical memory page is derived from different reread operations. For example, the number of memory cells having a threshold voltage between V LSB and V LSB +D is X1. The number X1 is equal to the number of bit changes BF1. As mentioned above, the bit change number BF1 is obtained by comparing the binary read numbers obtained by the general read operation and the first reread operation. Similarly, the number of memory cells whose threshold voltage is between V LSB and V LSB -D is X2. The number X2 is equal to the number of bit changes BF2. The number of memory cells whose threshold voltage is between V LSB +D and V LSB +2D is X3. The number X3 is equal to the bit change number BF3 minus the bit change number BF1. Similarly, the number of memory cells having a threshold voltage between V LSB -D and V LSB -2D is X4. The number X4 is equal to the bit change number BF4 minus the bit change number BF2. Further, the number of memory cells whose threshold voltage is between V LSB +2D and V LSB +3D is X5. The number X5 is equal to the bit change number BF5 minus the bit change number BF3 and the bit change number BF1. Similarly, the number of memory cells whose threshold voltage is between V LSB -2D and V LSB -3D is X6. The number X6 is equal to the bit change number BF6 minus the bit change number BF2 and the bit change number BF4. The threshold voltage tracking unit 1230 finds the numbers X1 to X6, and determines a threshold voltage moving direction SD according to the numbers X1 to X6. Since the number X1 is greater than the number X2, a preferred threshold voltage may move to a lower voltage than VLSB . In addition, the preferred threshold voltage may fall at V LSB -D because the number X2 is relatively small compared to the X4 system. Please note that after the preferred threshold voltage (eg, V LSB -D) is found, the control logic 1210 can use the preferred voltage as the initial threshold voltage for reading a physical memory page below the flash memory circuit 1100. (Control gate voltage).
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。The above are only the preferred embodiments of the present invention, and all changes and modifications made to the scope of the present invention should be within the scope of the present invention.
1000...記憶體系統1000. . . Memory system
1100...快閃記憶體1100. . . Flash memory
1110...記憶體單元1110. . . Memory unit
1200...記憶體控制器1200. . . Memory controller
1210...控制邏輯電路1210. . . Control logic
1220...錯誤更正電路1220. . . Error correction circuit
1222...錯誤更正解碼器1222. . . Error correction decoder
1223...編碼器1223. . . Encoder
1224...比較單元1224. . . Comparison unit
1225...判斷單元1225. . . Judging unit
1227...儲存裝置1227. . . Storage device
1228...解碼單元1228. . . Decoding unit
1229...錯誤更正編碼器1229. . . Error correction encoder
12280...概似比訓練單元12280. . . Proportional ratio training unit
12282...概似比對應單元12282. . . Approximate ratio
12284...解碼電路12284. . . Decoding circuit
200~214...步驟200~214. . . step
第1圖係為本發明記憶體系統之第一實施例的示意圖。Figure 1 is a schematic illustration of a first embodiment of a memory system of the present invention.
第2圖為要被讀取之實體記憶體分頁P_0的第一種臨界電壓分佈的示意圖。Figure 2 is a schematic diagram of the first threshold voltage distribution of the physical memory page P_0 to be read.
第3圖為要被讀取之實體記憶體分頁P_0的第二種臨界電壓分佈的示意圖。Figure 3 is a schematic illustration of a second threshold voltage distribution of the physical memory page P_0 to be read.
第4圖為從快閃記憶體1100之一記憶體單元中讀取一軟位元的最低有效位元讀取操作的示意圖。FIG. 4 is a schematic diagram of the least significant bit read operation of reading a soft bit from one of the memory cells of the flash memory 1100.
第5圖係示於第1圖之編碼器1223之方塊圖。Figure 5 is a block diagram of the encoder 1223 of Figure 1.
第6圖係說明對讀自快閃記憶體單元的二進位數字進行編碼的示意圖。Figure 6 is a diagram illustrating the encoding of binary digits read from a flash memory cell.
第7圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。Figure 7 is a diagram illustrating the encoding of the binary digits read from the flash memory unit to obtain the correct data.
第8圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。Figure 8 is a diagram illustrating the encoding of binary digits read from a flash memory cell to obtain correct data.
第9圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。Figure 9 is a diagram illustrating the encoding of binary digits read from a flash memory cell to obtain correct data.
第10圖係說明碼字與記憶體單元之對應關係之示意圖。Figure 10 is a diagram showing the correspondence between codewords and memory cells.
第11圖係用以說明解碼單元1228之方塊圖。Figure 11 is a block diagram showing the decoding unit 1228.
第12圖係說明讀取儲存在快閃記憶體之資料之程序之流程圖。Figure 12 is a flow chart showing the procedure for reading data stored in the flash memory.
第13圖係說明目標實體記憶體分頁之臨界電壓分布之示意圖。Figure 13 is a schematic diagram showing the threshold voltage distribution of the target entity memory page.
1228...解碼單元1228. . . Decoding unit
12280...概似比訓練單元12280. . . Proportional ratio training unit
12282...概似比對應單元12282. . . Approximate ratio
12284...解碼電路12284. . . Decoding circuit
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101106156A TWI514404B (en) | 2012-02-24 | 2012-02-24 | Method, memory controller and system for reading data stored in flash memory |
CN201310056538.XA CN103295634B (en) | 2012-02-22 | 2013-02-21 | Method, memory controller and system for reading data stored in flash memory |
CN201710423555.0A CN107240419B (en) | 2012-02-22 | 2013-02-21 | Method, memory controller and system for reading data stored in flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101106156A TWI514404B (en) | 2012-02-24 | 2012-02-24 | Method, memory controller and system for reading data stored in flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201335942A TW201335942A (en) | 2013-09-01 |
TWI514404B true TWI514404B (en) | 2015-12-21 |
Family
ID=49627456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101106156A TWI514404B (en) | 2012-02-22 | 2012-02-24 | Method, memory controller and system for reading data stored in flash memory |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI514404B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102265220B1 (en) * | 2015-03-09 | 2021-06-16 | 에스케이하이닉스 주식회사 | Controller, semiconductor memory system and operating method thereof |
TWI631570B (en) * | 2017-09-04 | 2018-08-01 | 威盛電子股份有限公司 | Error checking and correcting decoding method and apparatus |
TWI684106B (en) * | 2018-09-28 | 2020-02-01 | 大陸商深圳衡宇芯片科技有限公司 | Method of training artificial intelligence to correct log-likelihood ratio for storage device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244162A1 (en) * | 2007-03-29 | 2008-10-02 | Nima Mokhlesi | Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics |
US20090003057A1 (en) * | 2007-06-28 | 2009-01-01 | Samsung Electronics Co., Ltd. | Non-volatile memory devices and systems including multi-level cells using modified read voltages and methods of operating the same |
US20090319868A1 (en) * | 2008-06-23 | 2009-12-24 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by joint decoding and cell voltage distribution tracking |
TW201001430A (en) * | 2008-06-03 | 2010-01-01 | Marvell World Trade Ltd | Statistical tracking for flash memory |
US20100088575A1 (en) * | 2008-10-07 | 2010-04-08 | Eran Sharon | Low density parity code (ldpc) decoding for memory with multiple log likelihood ratio (llr) decoders |
US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
US20110145487A1 (en) * | 2008-07-01 | 2011-06-16 | Lsi Corporation | Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories |
US20110276747A1 (en) * | 2010-05-07 | 2011-11-10 | Qualcomm Incorporated | Software management with hardware traversal of fragmented llr memory |
-
2012
- 2012-02-24 TW TW101106156A patent/TWI514404B/en active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
US20080244162A1 (en) * | 2007-03-29 | 2008-10-02 | Nima Mokhlesi | Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics |
US20090003057A1 (en) * | 2007-06-28 | 2009-01-01 | Samsung Electronics Co., Ltd. | Non-volatile memory devices and systems including multi-level cells using modified read voltages and methods of operating the same |
TW201001430A (en) * | 2008-06-03 | 2010-01-01 | Marvell World Trade Ltd | Statistical tracking for flash memory |
US20090319868A1 (en) * | 2008-06-23 | 2009-12-24 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by joint decoding and cell voltage distribution tracking |
US20110145487A1 (en) * | 2008-07-01 | 2011-06-16 | Lsi Corporation | Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories |
US20100088575A1 (en) * | 2008-10-07 | 2010-04-08 | Eran Sharon | Low density parity code (ldpc) decoding for memory with multiple log likelihood ratio (llr) decoders |
US20110276747A1 (en) * | 2010-05-07 | 2011-11-10 | Qualcomm Incorporated | Software management with hardware traversal of fragmented llr memory |
Also Published As
Publication number | Publication date |
---|---|
TW201335942A (en) | 2013-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514388B (en) | Method, memory controller and system for reading data stored in flash memory | |
TWI466123B (en) | Method, memory controller, and apparatus for reading data stored in flash memory | |
US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9177664B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
US9286972B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
TWI576847B (en) | Method, memory controller and system for reading data stored in flash memory | |
US20190088336A1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US10685711B1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
CN111415692B (en) | Decoding method, memory control circuit unit and memory storage device | |
US10324787B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN107240419B (en) | Method, memory controller and system for reading data stored in flash memory | |
TWI514404B (en) | Method, memory controller and system for reading data stored in flash memory | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
TWI571885B (en) | Method, memory controller and system for reading data stored in flash memory | |
CN103295631A (en) | Method, memory controller and system for reading data stored in flash memory | |
US11146295B1 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
CN113496752B (en) | Decoding method, memory storage device and memory control circuit unit | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
CN113138947B (en) | Data writing method, memory control circuit unit and memory storage device | |
CN111324478B (en) | Decoding method, memory control circuit unit and memory storage device | |
TWI742509B (en) | Data writing method, memory controlling circuit unit and memory storage device | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
CN111258791B (en) | Memory control method, memory storage device and memory control circuit unit | |
CN111435604B (en) | Decoding method, memory control circuit unit and memory storage device | |
CN111508546B (en) | Decoding method, memory control circuit unit and memory storage device |