CN113113076A - 解码方法及相关的闪存控制器与电子装置 - Google Patents

解码方法及相关的闪存控制器与电子装置 Download PDF

Info

Publication number
CN113113076A
CN113113076A CN202110416447.7A CN202110416447A CN113113076A CN 113113076 A CN113113076 A CN 113113076A CN 202110416447 A CN202110416447 A CN 202110416447A CN 113113076 A CN113113076 A CN 113113076A
Authority
CN
China
Prior art keywords
data
flash memory
bit value
memory module
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110416447.7A
Other languages
English (en)
Other versions
CN113113076B (zh
Inventor
杨宗杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from TW107124970A external-priority patent/TWI667656B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN202110416447.7A priority Critical patent/CN113113076B/zh
Publication of CN113113076A publication Critical patent/CN113113076A/zh
Application granted granted Critical
Publication of CN113113076B publication Critical patent/CN113113076B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了本一种应用于闪存控制器的解码方法,其包括有以下步骤:自闪存模块中读取第一数据;对所述第一数据进行解码,并根据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到所述第一数据中具有高可靠度错误的数据;自所述闪存模块中读取第二数据;以及参考所述特定地址来对所述第二数据进行解码。通过本发明可以在解码过程中降低这些会发生高可靠度错误的浮闸晶体管的影响,以提升解码成功的机率。

Description

解码方法及相关的闪存控制器与电子装置
本申请是申请日为2018年08月08日、申请号为201810898689.2、发明创造名称为“解码方法及相关的闪存控制器与电子装置”的中国发明申请的分案申请。
技术领域
本发明涉及解码方法,尤其涉及一种应用在闪存控制器的解码方法。
背景技术
为了进一步提升存储装置的容量,立体NAND型闪存(3D NAND-type flash)模块被开发出来,以通过多层堆栈的制程来提升闪存的存储密度。然而,由于立体NAND型闪存模块中的位线(bit line)是具有较大宽高比(aspect ratio)的垂直线,因此其蚀刻制程并无法使得位线的每一个区段都具有相同的宽度,例如位线的上方端具有较粗的宽度,而位线的上方端则较细,因此容易造成位线与字线(word line)之间的短路,或是其他的短路/断路问题。特别地,上述短路问题可能会使得立体NAND型闪存中某些特定地址出现高可靠度错误(High Reliability Error,HRE),也就是当读取所述多个特定地址上的信息并进行软解码的过程中,会出现某些具有较高可靠度的错误位,而这些具有较高可靠度的错误位会严重影响到解码操作,并有可能造成解码失败。
发明内容
因此,本发明的目的之一在于提供一种解码方法,其可以解决闪存模块因为上述高可靠度错误而造成解码负担的问题。
在本发明的一个实施例中,公开了一种应用于一闪存控制器的解码方法,其包括有以下步骤:自一闪存模块中读取一第一数据;对所述第一数据进行解码,并根据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到所述第一数据中具有高可靠度错误的数据;自所述闪存模块中读取一第二数据;以及参考所述特定地址来对所述第二数据进行解码。
在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一只读存储器、一微处理器以及一解码器,其中所述只读存储器是用来存储一程序代码,且所述微处理器是用来执行所述程序代码以控制对所述闪存模块的存取。在所述闪存控制器的操作中,所述解码器自所述闪存模块中读取一第一数据后对所述第一数据进行解码,并根据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到带第一数据中具有高可靠度错误的数据;所述解码器自所述闪存模块中读取一第二数据,并参考所述特定地址来对所述第二数据进行解码。
在本发明的另一个实施例中,公开了一种电子装置,其包括有一闪存模块以及一闪存控制器。在所述电子装置的操作中,所述闪存控制器自所述闪存模块中读取一第一数据后对所述第一数据进行解码,并根据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到所述第一数据中具有高可靠度错误的数据;所述闪存控制器自所述闪存模块中读取一第二数据,并参考所述特定地址来对所述第二数据进行解码。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为一立体NAND型闪存的范例示意图。
图3所示为本发明一实施例的解码器的示意图。
图4为解码器依序处理自八个浮闸晶体管所读取的数据的示意图。
图5为本发明一实施例的表格的示意图。
图6为本发明一实施例的解码方法的流程图。
其中,附图标记说明如下:
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 界面逻辑
120 闪存模块
130 主装置
132 编码器
134 解码器
202、202_1~202_8 浮闸晶体管
134 解码器
310 数字处理电路
320 LDPC解码电路
330 高可靠度错误判断电路
340 存储单元
342 表格
600~614 步骤
BL1~BL3 位线
WL0~WL2、WL4~WL6 字线
D_soft 软信息
D_hard 最终位值
具体实施方式
请参考图1,图1为依据本发明一实施例的一种记忆装置100的示意图。记忆装置100包括有一闪存(Flash Memory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(ReadOnly Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一界面逻辑118。只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存模块120的存取(Access)。控制逻辑114包括了一编码器132与一解码器134。在本实施例中,编码器132与解码器134是用来进行准循环低密度奇偶校检(Quasi-Cyclic Low DensityParty-Check,QC-LDPC)码的编解码操作。
于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(Block),而所述控制器(例如:通过微处理器112执行程序代码112C的闪存控制器110)对闪存模块120进行抹除等运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(Page),其中所述控制器(例如:通过微处理器112执行程序代码112C的存储器控制器110)对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,闪存模块120为一立体NAND型闪存(3D NAND-type flash)。
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用界面逻辑118来与一主装置(Host Device)130沟通。缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式存储装置,以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机的中,而此时主装置130可以是所述电子装置的一处理器。
在本实施例中,闪存模块120是一立体NAND型闪存(3D NAND-type flash)模块,请参考图2,其为一立体NAND型闪存的范例示意图。如图2所示,立体NAND型闪存包括了多个浮闸晶体管202,其通过多条位线(图示仅绘示了BL1~BL3)及多条字线(例如图示的WL0~WL2、WL4~WL6)来构成立体NAND型闪存架构。在图2中,以最上面的一个平面为例,字线WL0上的所有浮闸晶体管构成了至少一数据页,字线WL1上的所有浮闸晶体管构成了另至少一数据页,而字线WL2的所有浮闸晶体管构成了另外至少一数据页…以此类堆。此外,根据闪存写入方式的不同,字线WL0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式存储(Single-Level Cell,SLC)的方式写入时,字线WL0上的所有浮闸晶体管仅对应到单一逻辑数据页;当使用多层式存储(Multi-Level Cell,MLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到两个、三个或是四个逻辑数据页,其中字线WL0上的所有浮闸晶体管对应到三个逻辑数据页的情形可以称为三层式存储(Triple-Level Cell,TLC)架构,而字线WL0上的所有浮闸晶体管对应到四个逻辑数据页的情形可以称为四层式存储(Quad-Level Cell,QLC)架构。由于本技术领域中具有通常知识者应能了解立体NAND型闪存的结构以及字线及数据页之间的关系,故相关的细节在此不予赘述。另外,在闪存控制器110的操作中,“数据页”为一最小写入单位,且“区块”为一最小抹除单位。
在一实施例中,每一个浮闸晶体管的栅极及浮闸是围绕在源极与漏极周围(gateall around),以增强通道感应能力。
需注意的是,图2所示的仅为立体NAND型闪存与浮闸晶体管202的范例,而并非是作为本发明的限制,本技术领域中具有通常知识者应能了解立体NAND型闪存尚有其他种型式,例如部分的字线可彼此连接..等等。
如现有技术中所述,立体NAND型闪存模块中的位线BL1~BL3具有较大宽高比,因此其蚀刻制程并无法使得位线的每一个区段都具有相同的宽度,因此容易造成位线BL1~BL3与字线WL0~WL2、WL4~WL6之间的短路,或是其他的短路/断路问题,上述短路问题可能会使得某些浮闸晶体管202上所存储的位出现高可靠度错误(High Reliability Error,HRE),也就是当读取所述浮闸晶体管202上的信息并进行软解码的过程中,会出现某些具有较高可靠度的错误位,而这些具有较高可靠度的错误位会严重影响到解码操作,并有可能造成解码失败。特别地,上述短路问题会随着写入抹除次数(program/erase cycle,P/Ecycle)的增加而变的严重,也就是当写入抹除次数增加,出现高可靠度错误的浮闸晶体管202的数量也会增加,因而成解码上的困扰。因此,本实施例中的解码器134是设计用来在解码过程中记录具有高可靠度错误的浮闸晶体管202的实体地址,以作为解码时的辅助来增加解码成功的机率。
图3所示为本发明一实施例的解码器134的示意图。如图3所示,解码器134包括了一数字处理电路310、一低密度奇偶检查码(Low-density parity-check code,LDPC)解码电路320、一高可靠度错误判断电路330以及一存储单元340,其中存储单元340包括了一表格342。在解码器134的操作中,首先,解码器134自闪存模块120中读取一第一数据,其中所述第一数据可以是闪存模块120中一区块内的一数据页的一个区段(sector)或是组块(chunk)。在本实施例中,所述第一数据是通过使用至少两个不同的感测电压来对闪存模块120中的浮闸晶体管202进行存取所得到,且所述第一数据包括了多个位的软信息D_soft,而每一个位的软信息D_soft包括了一初始位值(或可称为标记位(sign bit))以及至少两个软位(soft bit),其中每一个位的信息中的所述初始位值是“0”或是“1”,而每一个位的信息中的所述至少两个软位是用来表示/计算所述初始位值的可靠度,举例来说,假设所述初始位值为“1”且两个软位为(1,1),则表示所述初始位值“1”具有很高的可靠度(或可以称作很高的机率);假设所述初始位值为“1”且两个软位为(1,0),则表示所述初始位值“1”具有较高的可靠度;假设所述初始位值为“1”且两个软位为(0,1),则表示所述初始位值“1”具有较低的可靠度;而假设所述初始位值为“1”且两个软位为(0,0),则表示所述初始位值“1”具有最低的可靠度。在另一例子中,假设所述初始位值为“0”且两个软位为(1,1),则表示所述初始位值“1”具有很低的可靠度(或可以称作很高的机率);假设所述初始位值为“0”且两个软位为(1,0)或是(0,1),则表示所述初始位值“0”具有中等的可靠度;而假设所述初始位值为“0”且两个软位为(0,0),则表示所述初始位值“0”具有最高的可靠度。
需注意的是,上述使用两个软位来判断可靠度的方式仅为一范例说明,而并非是作为本发明的限制。在本发明的其他实施例中,两个软位可以在闪存模块120便已经根据一映像表或是其他计算方式而转换为不同的可靠度表现方式,及/或可靠度的判断可以同时根据初始位值以及软位的位值来判断。
接着,LDPC解码电路320对软信息D_soft进行解码,以产生所述第一数据的多个最终位值D_hard。
由于上述有关于软信息D_soft或是LDPC解码电路320的细节操作并非本发明的重点,且相关的细节可以参考中国台湾地区专利申请案:申请号100102086,或是其他的相关文献,故数字处理电路310以及LDPC解码电路320的细节在此不予赘述。
接着,高可靠度错误判断电路330逐位地比对所述第一数据的软信息D_soft以及最终位值D_hard,以判断出所述第一数据中哪些位具有高可靠度但是其位值是错误的,并将这些具有高可靠度但是其位值是错误的位所对应的实体地址记录在表格342中。以图4为例来进行说明,图4绘示了解码器134依序处理自八个浮闸晶体管202_1~202_8所读取的数据的示意图。在图4中,首先解码器134读取浮闸晶体管202_1,假设其所产生的软信息D_soft中的初始位值为“1”且两个软位为(1,1),而LDPC解码电路320输出的最终位值D_hard则是“0”,因此,由于初始位值不同于最终位值(也就是说,初始位值是错误的),再加上两个软位(1,1)代表着高可靠度,故浮闸晶体管202_1是被判断为对应至具有高可靠度错误的位(也就是说,浮闸晶体管202_1所记录的信息在被读出之后是具有高可靠度的错误位),且浮闸晶体管202_1的实体地址会被记录在表格342中。接着,解码器134读取浮闸晶体管202_2,假设其所产生的软信息D_soft中的初始位值为“1”且两个软位为(1,0),而LDPC解码电路320输出的最终位值D_hard则是“1”,因此,由于初始位值相同于最终位值(也就是说,初始位值是正确的),故浮闸晶体管202_2是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_2的实体地址不会被记录在表格342中。接着,解码器134读取浮闸晶体管202_3,假设其所产生的软信息D_soft中的初始位值为“1”且两个软位为(0,1),而LDPC解码电路320输出的最终位值D_hard则是“1”,因此,由于初始位值相同于最终位值(也就是说,初始位值是正确的),故浮闸晶体管202_3是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_3的实体地址不会被记录在表格342中。接着,解码器134读取浮闸晶体管202_4,假设其所产生的软信息D_soft中的初始位值为“1”且两个软位为(0,0),而LDPC解码电路320输出的最终位值D_hard则是“1”,虽然初始位值不同于最终位值(也就是说,初始位值是错误的),但由于两个软位(0,0)代表着低可靠度,故浮闸晶体管202_4是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_4的实体地址不会被记录在表格342中。接着,解码器134读取浮闸晶体管202_5,假设其所产生的软信息D_soft中的初始位值为“0”且两个软位为(0,0),而LDPC解码电路320输出的最终位值D_hard则是“0”,因此,由于初始位值相同于最终位值(也就是说,初始位值是正确的),故浮闸晶体管202_5是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_5的实体地址不会被记录在表格342中。接着,解码器134读取浮闸晶体管202_6,假设其所产生的软信息D_soft中的初始位值为“0”且两个软位为(0,1),而LDPC解码电路320输出的最终位值D_hard则是“0”,因此,由于初始位值相同于最终位值(也就是说,初始位值是正确的),故浮闸晶体管202_6是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_6的实体地址不会被记录在表格342中。接着,解码器134读取浮闸晶体管202_7,假设其所产生的软信息D_soft中的初始位值为“0”且两个软位为(1,0),而LDPC解码电路320输出的最终位值D_hard则是“1”,虽然初始位值不同于最终位值(也就是说,初始位值是错误的),但由于两个软位(1,0)代表着中等可靠度而非高可靠度,故浮闸晶体管202_7是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_7的实体地址不会被记录在表格342中。最后,解码器134读取浮闸晶体管202_8,假设其所产生的软信息D_soft中的初始位值为“0”且两个软位为(1,1),而LDPC解码电路320输出的最终位值D_hard则是“0”,因此,由于初始位值相同于最终位值(也就是说,初始位值是正确的),故浮闸晶体管202_8是被判断为并非对应至具有高可靠度错误的位,且浮闸晶体管202_8的实体地址不会被记录在表格342中。
图5为本发明一实施例的表格342的示意图。如图5所示,表格342所记录的发生过高可靠度错误的浮闸晶体管202的区块编号、数据页编号、组块编号以及地址信息。此外,表格342也会记录浮闸晶体管202在解码过程中发生过高可靠度错误的次数。
在一实施例中,图3所示的解码器134可以另外包括一缓存器,以暂存高可靠度错误判断电路330所产生的具有高可靠度错误的位的浮闸晶体管202的地址,并等待所暂存的地址数量到达一临界值(例如,10笔地址)之后,再一并写入到表格342中。
另外,由于存储单元342的空间有限,故表格342在写入的过程中可以使用一最近最少使用(Least recently used,LRU)算法,也就是将一段时间没有发生高可靠度错误位的浮闸晶体管202的地址自表格342中移除。
图6为本发明一实施例的解码方法的流程图,其流程步骤如下所述:
步骤600:流程开始。
步骤602:闪存控制器110自闪存模块120中读取一数据。
步骤604:解码器134对所述数据进行解码,其中当解码成功时(也就是说,LDPC解码电路320可以产生最终位值),流程进入步骤606;而若是解码失败时,流程进入步骤608。
步骤606:解码器134输出解码后数据,且高可靠度错误判断电路判断出所述数据中哪些位具有高可靠度但是其位值却是错误的,并将这些具有高可靠度但是其位值错误的位所对应的实体地址记录在表格342中。
步骤608:判断所述数据所对应到的闪存模块120中的地址是否有一部分被记录在表格342中,若是,流程进入步骤612;若否,流程进入步骤610。
步骤610:采用其他解码方式,例如采用类似容错式磁盘阵列(Redundant Arrayof Independent Disks,RAID)的错误更正方式、或是磁盘救援的方法,来帮助解码进行。
步骤612:将所述数据中对应具有高可靠度错误地址的多个位的至少一部分位进行修改以产生一修改后数据。
步骤614:对所述修改后数据进行解码。
在步骤612中,解码器134可以先将一个位进行修改后进行解码,其中所述位对应到高可靠度错误发生次数最多的浮闸晶体管,之后若是解码再次失败的话则在修改其他的位。举例来说,假设所述数据中的第1、5、6、8个位所对应到的浮闸晶体管202有被记录在表格342中,且第5个位所对应的浮闸晶体管202具有最多高可靠度错误的发生次数,因此当所述数据解码失败时,解码器134可以先将第5个位的初始位值翻转(例如“0”改为“1”,或是“1”改为“0”)以产生修改后数据进行解码。若是解码仍然失败,则再将第1、6、8个位的初始位值翻转以产生修改后数据后再次进行解码。
需注意的是,上一段落所述的仅是作为范例说明,而并非是本发明的限制。在其他的实施例中,解码器134也可以一开始就将第1、5、6、8个位的初始位值翻转以产生修改后数据后进行解码。只要位翻转的选择是基于表格342中所记录的有发生高可靠度错误的地址,相关设计上的变化应隶属于本发明的范畴。
在一实施例中,表格342中所记录的信息也可用来判断区块中时常发生高可靠度错误的浮闸晶体管202的数量是否过多,并据以判断是否要据此抹除并不再使用此区块。具体来说,当表格342的内容指出一特定区块内对应到高可靠度错误的地址高于一临界值时,为了避免后续所述特定区块内对应到高可靠度错误的地址持据增加而导致数据完全无法成功解码的问题,微处理器112可以先将所述特定区块内的有效数据搬移至其他区块中(也就是说,垃圾收集(garbage collection)操作),之后再将所述特定区块标记为无效,并设定闪存控制器110后续不会再将数据写入至所述特定区块中。
简要归纳本发明,在本发明的解码方法中,是在解码过程中不断在一表格中记录发生高可靠度错误的位所对应到的实体地址,且所述表格的内容可以供后续解码失败时使用。由于会发生高可靠度错误的浮闸晶体管持续发生错误的机率很高,因此会严重影响解码的成功与否,因此,通过本发明可以在解码过程中降低这些会发生高可靠度错误的浮闸晶体管的影响,以提升解码成功的机率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种应用于一闪存控制器的解码方法,其特征在于,包括有:
自一闪存模块中读取一第一数据;
对所述第一数据进行解码,并依据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到所述第一数据中具有高可靠度错误的数据;
自所述闪存模块中读取包含所述特定位址的一第二数据;
对所述第二数据进行解码;
若是对所述第二数据解码失败,则将所述第二数据中对应所述特定位址的位进行修改以产生一修改后第二数据;以及
对所述修改后第二数据进行解码。
2.如权利要求1所述的解码方法,其特征在于,对所述第一数据进行解码,并依据所述第一数据的解码结果标记所述闪存模块中所述至少一特定地址的步骤包括有:
根据所述第一数据的解码结果于一表格中记录所述闪存模块中所述至少一特定地址。
3.如权利要求1所述的解码方法,其特征在于,依据所述第一数据的解码结果标记所述闪存模块中所述至少一特定地址的步骤包括有:
针对所述第一数据的每一个位:
读取所述闪存模块以得到对应到所述位的所述初始位值以及至少两个软位,其中每一个位的信息中的所述至少两个软位是用来表示/计算所述初始位值的可靠度;
对所述初始位值以及所述至少两个软位进行软解码,以得到所述位的一最终位值以及所述可靠度;
判断所述最终位值以及所述初始位值是否相同;
若是所述最终位值不同于所述初始位值,且所述位具有高的所述可靠度,则判断所述位为具有高可靠度错误的位,并将所述位于所述闪存模块中的地址作为所述特定地址以记录在表格中。
4.一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,其特征在于,所述闪存控制器包括有:
一只读存储器,用来存储一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一解码器;
其中所述解码器自所述闪存模块中读取一第一数据后对所述第一数据进行解码,并根据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到所述第一数据中具有高可靠度错误的数据;所述解码器自所述闪存模块中读取包含所述特定位址的一第二数据,对所述第二数据进行解码,若是对所述第二数据解码失败,则将所述第二数据中对应所述特定位址的位进行修改以产生一修改后第二数据;以及对所述修改后第二数据进行解码。
5.如权利要求4所述的闪存控制器,其特征在于,所述微处理器是在一表格中记录所述闪存模块中至少一特定地址。
6.如权利要求4所述的闪存控制器,其特征在于,针对所述第一数据的每一个位:所述解码器读取所述闪存模块以得到对应到所述位的所述初始位值以及至少两个软位,其中每一个位的信息中的所述至少两个软位是用来表示/计算所述初始位值的可靠度,对所述初始位值以及所述至少两个软位进行软解码以得到所述位的一最终位值以及所述可靠度,判断所述最终位值以及所述初始位值是否相同,且若是所述最终位值不同于所述初始位值,且所述位具有高的所述可靠度,则判断所述位为具有高可靠度错误的位,并将所述位于所述闪存模块中的地址作为所述特定地址以记录在表格中。
7.一种电子装置,其特征在于,包括有:
一闪存模块;以及
一闪存控制器,用来存取所述闪存模块;
其中所述闪存控制器自所述闪存模块中读取一第一数据后对所述第一数据进行解码,并依据所述第一数据的解码结果标记所述闪存模块中至少一特定地址,其中所述特定地址对应到所述第一数据中具有高可靠度错误的数据;所述闪存控制器自所述闪存模块中读取包含所述特定位址的一第二数据,对所述第二数据进行解码,若是对所述第二数据解码失败,则将所述第二数据中对应所述特定位址的位进行修改以产生一修改后第二数据;以及对所述修改后第二数据进行解码。
8.如权利要求7所述的电子装置,其特征在于,针对所述第一数据的每一个位:所述闪存控制器读取所述闪存模块以得到对应到所述位的所述初始位值以及至少两个软位,其中每一个位的信息中的所述至少两个软位是用来表示/计算所述初始位值的可靠度,对所述初始位值以及所述至少两个软位进行软解码以得到所述位的一最终位值以及所述可靠度,判断所述最终位值以及所述初始位值是否相同,且若是所述最终位值不同于所述初始位值,且所述位具有高的所述可靠度,则判断所述位为具有高可靠度错误的位,并将所述位于所述闪存模块中的地址作为所述特定地址以记录在表格中。
CN202110416447.7A 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置 Active CN113113076B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110416447.7A CN113113076B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762542318P 2017-08-08 2017-08-08
US62/542,318 2017-08-08
TW107124970 2018-07-19
TW107124970A TWI667656B (zh) 2017-08-08 2018-07-19 解碼方法及相關的快閃記憶體控制器與電子裝置
CN202110416447.7A CN113113076B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置
CN201810898689.2A CN109390027B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810898689.2A Division CN109390027B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置

Publications (2)

Publication Number Publication Date
CN113113076A true CN113113076A (zh) 2021-07-13
CN113113076B CN113113076B (zh) 2024-07-26

Family

ID=65275108

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810898689.2A Active CN109390027B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置
CN202110416447.7A Active CN113113076B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810898689.2A Active CN109390027B (zh) 2017-08-08 2018-08-08 解码方法及相关的闪存控制器与电子装置

Country Status (2)

Country Link
US (2) US10621038B2 (zh)
CN (2) CN109390027B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109390027B (zh) * 2017-08-08 2021-05-07 慧荣科技股份有限公司 解码方法及相关的闪存控制器与电子装置
US11327551B2 (en) 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
US12118056B2 (en) 2019-05-03 2024-10-15 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array
US10867655B1 (en) * 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025359A1 (en) * 2000-03-14 2001-09-27 Tsuyoshi Tanaka Error detection and correction method in a computer system and main memory controller of the same
CN2922056Y (zh) * 2006-06-07 2007-07-11 创惟科技股份有限公司 闪存资料存取可靠性提升装置
TW200746156A (en) * 2006-04-11 2007-12-16 Sandisk Il Ltd Method for generating soft bits in flash memories
CN102568593A (zh) * 2010-12-07 2012-07-11 慧荣科技股份有限公司 读取快闪存储器中储存数据的方法、存储器控制器与装置
US20150006999A1 (en) * 2013-07-01 2015-01-01 Asolid Technology Co., Ltd. Flash memory apparatus, memory controller and method for controlling flash memory
CN104681100A (zh) * 2013-11-29 2015-06-03 慧荣科技股份有限公司 用于闪存装置的错误更正码单元、自我测试方法及控制器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
JPH10334695A (ja) * 1997-05-27 1998-12-18 Toshiba Corp キャッシュメモリ及び情報処理システム
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US20060081971A1 (en) * 1997-09-30 2006-04-20 Jeng Jye Shau Signal transfer methods for integrated circuits
JP3834323B2 (ja) * 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
JP5118562B2 (ja) * 2008-06-20 2013-01-16 株式会社東芝 デバッグ支援装置
CN102163165B (zh) * 2011-05-26 2012-11-14 忆正存储技术(武汉)有限公司 一种闪存错误预估模块及其预估方法
KR102025340B1 (ko) * 2012-11-27 2019-09-25 삼성전자 주식회사 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템
KR102065664B1 (ko) * 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
TWI537966B (zh) * 2014-10-03 2016-06-11 群聯電子股份有限公司 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元
KR20160075001A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 플래시 메모리 시스템 동작 방법
KR20170075065A (ko) * 2015-12-22 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
US9904594B2 (en) * 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US9933963B1 (en) * 2017-03-01 2018-04-03 Seagate Technology Open block handling to reduce write errors
CN109390027B (zh) * 2017-08-08 2021-05-07 慧荣科技股份有限公司 解码方法及相关的闪存控制器与电子装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025359A1 (en) * 2000-03-14 2001-09-27 Tsuyoshi Tanaka Error detection and correction method in a computer system and main memory controller of the same
TW200746156A (en) * 2006-04-11 2007-12-16 Sandisk Il Ltd Method for generating soft bits in flash memories
CN2922056Y (zh) * 2006-06-07 2007-07-11 创惟科技股份有限公司 闪存资料存取可靠性提升装置
CN102568593A (zh) * 2010-12-07 2012-07-11 慧荣科技股份有限公司 读取快闪存储器中储存数据的方法、存储器控制器与装置
US20150006999A1 (en) * 2013-07-01 2015-01-01 Asolid Technology Co., Ltd. Flash memory apparatus, memory controller and method for controlling flash memory
CN104681100A (zh) * 2013-11-29 2015-06-03 慧荣科技股份有限公司 用于闪存装置的错误更正码单元、自我测试方法及控制器

Also Published As

Publication number Publication date
US10621038B2 (en) 2020-04-14
US20190050287A1 (en) 2019-02-14
CN109390027B (zh) 2021-05-07
US20200226021A1 (en) 2020-07-16
CN113113076B (zh) 2024-07-26
CN109390027A (zh) 2019-02-26
US11030041B2 (en) 2021-06-08

Similar Documents

Publication Publication Date Title
US10324789B2 (en) Flash memory controller and memory device for accessing flash memory module, and associated method
CN109390027B (zh) 解码方法及相关的闪存控制器与电子装置
CN110837340B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
CN111399751B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
US10938419B2 (en) Encoding method and system for memory device including QLC cells
US11907571B2 (en) Read threshold optimization systems and methods using domain transformation
CN111951855B (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
TWI720852B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US11508446B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
US11087846B1 (en) Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder
TWI691967B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
US11687290B1 (en) Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device
US11809748B2 (en) Control method of flash memory controller and associated flash memory controller and electronic device
TWI836610B (zh) 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置
TWI837829B (zh) 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置
CN112214348A (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
TW201707004A (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant