CN107092536A - 解码方法、存储器存储装置及存储器控制电路单元 - Google Patents
解码方法、存储器存储装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN107092536A CN107092536A CN201710242978.2A CN201710242978A CN107092536A CN 107092536 A CN107092536 A CN 107092536A CN 201710242978 A CN201710242978 A CN 201710242978A CN 107092536 A CN107092536 A CN 107092536A
- Authority
- CN
- China
- Prior art keywords
- bit
- reliability information
- memory cell
- log likelihood
- likelihood ratio
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种解码方法、存储器存储装置及存储器控制电路单元,所述方法包括:从多个第一存储单元读取多个比特;根据第一可靠度信息对所述比特执行第一解码操作;以及若第一解码操作失败且符合预设条件,根据第二可靠度信息对所述比特执行第二解码操作,其中第二可靠度信息不同于第一可靠度信息,且第二可靠度信息对于所述比特中的第一类错误的更正能力高于第一可靠度信息对于所述第一类错误的更正能力。此外,所述第一类错误是基于错误数据对第一存储单元执行特定程序化操作而产生的。
Description
技术领域
本发明涉及一种解码技术,尤其涉及一种解码方法、存储器存储装置及存储器控制电路单元。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritable non-volatilememory module)(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
许多存储器控制器配置有错误检查与校正电路。此错误检查与校正电路用以对从可复写式非易失性存储器模块中读取出的数据进行错误检查与更正。然而,基于现有的错误检查与校正机制,某些特定类型的错误(例如,在可复写式非易失性存储器模块中进行数据的重复写入或搬移而引起的错误)不容易被找到,使得解码失败的机率增加。
发明内容
本发明提供一种解码方法、存储器存储装置及存储器控制电路单元,可提高解码效率。
本发明的一范例实施例提供一种解码方法,其用于包括多个存储单元的可复写式非易失性存储器模块,所述存储单元包括多个第一存储单元,所述第一存储单元中的每一个存储单元存储有第一数据比特与第二数据比特,所述第一数据比特的比特值对应于第一程序化操作的程序化结果,所述第二数据比特的比特值对应于第二程序化操作的程序化结果,所述第二程序化操作是基于所述第一程序化操作的所述程序化结果而执行。所述解码方法包括:发送第一读取指令序列,其用以指示从所述第一存储单元读取多个比特;根据第一可靠度信息对所述比特执行第一解码操作;以及若所述第一解码操作失败且所述第一解码操作符合预设条件,根据第二可靠度信息对所述比特执行第二解码操作,其中所述第二可靠度信息不同于所述第一可靠度信息,且所述第二可靠度信息对于所述比特中的第一类错误的更正能力高于所述第一可靠度信息对于所述第一类错误的更正能力,其中所述第一类错误是基于错误数据对所述第一存储单元执行所述第二程序化操作而产生。
在本发明的一范例实施例中,根据所述第二可靠度信息对所述比特执行所述第二解码操作的步骤包括:基于所述第一可靠度信息动态产生所述第二可靠度信息。
在本发明的一范例实施例中,在执行所述第二解码操作之前,所述第二可靠度信息不存储于存储器存储装置中,其中所述存储器存储装置包括所述可复写式非易失性存储器模块与错误检查与校正电路,且所述第一解码操作与所述第二解码操作是由所述错误检查与校正电路执行。
本发明的另一范例实施例提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述可复写式非易失性存储器模块包括多个存储单元。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储单元包括多个第一存储单元,所述第一存储单元中的每一个存储单元存储有第一数据比特与第二数据比特,所述第一数据比特的比特值对应于第一程序化操作的程序化结果,所述第二数据比特的比特值对应于第二程序化操作的程序化结果,且所述第二程序化操作是基于所述第一程序化操作的所述程序化结果而执行。所述存储器控制电路单元用以发送第一读取指令序列,其用以指示从所述第一存储单元读取多个比特。所述存储器控制电路单元还用以根据第一可靠度信息对所述比特执行第一解码操作。若所述第一解码操作失败且所述第一解码操作符合预设条件,所述存储器控制电路单元还用以根据第二可靠度信息对所述比特执行第二解码操作,其中所述第二可靠度信息不同于所述第一可靠度信息,且所述第二可靠度信息对于所述比特中的第一类错误的更正能力高于所述第一可靠度信息对于所述第一类错误的更正能力,其中所述第一类错误是所述可复写式非易失性存储器模块基于错误数据对所述第一存储单元执行所述第二程序化操作而产生的。
在本发明的一范例实施例中,所述存储器控制电路单元根据所述第二可靠度信息对所述比特执行所述第二解码操作的操作包括:基于所述第一可靠度信息动态产生所述第二可靠度信息。
在本发明的一范例实施例中,在所述存储器控制电路单元执行所述第二解码操作之前,所述第二可靠度信息不存储于所述存储器存储装置中。
本发明的另一范例实施例提供一种存储器控制电路单元,其用于控制包括多个存储单元的可复写式非易失性存储器模块,其中所述存储器控制电路单元包括主机接口、存储器接口、错误检查与校正电路及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述错误检查与校正电路。所述存储单元包括多个第一存储单元,所述第一存储单元中的每一个存储单元存储有第一数据比特与第二数据比特,所述第一数据比特的比特值对应于第一程序化操作的程序化结果,所述第二数据比特的比特值对应于第二程序化操作的程序化结果,且所述第二程序化操作是基于所述第一程序化操作的所述程序化结果而执行。所述存储器管理电路用以发送第一读取指令序列,其用以指示从所述第一存储单元读取多个比特。所述错误检查与校正电路用以根据第一可靠度信息对所述比特执行第一解码操作。所述若所述第一解码操作失败且所述第一解码操作符合预设条件,所述错误检查与校正电路还用以根据第二可靠度信息对所述比特执行第二解码操作,其中所述第二可靠度信息不同于所述第一可靠度信息,且所述第二可靠度信息对于所述比特中的第一类错误的更正能力高于所述第一可靠度信息对于所述第一类错误的更正能力,其中所述第一类错误是所述可复写式非易失性存储器模块基于错误数据对所述第一存储单元执行所述第二程序化操作而产生的。
在本发明的一范例实施例中,所述第一可靠度信息包括所述比特中的第一比特的第一对数可能性比值,所述第二可靠度信息包括所述第一比特的第二对数可能性比值,且所述第二对数可能性比值的绝对值小于所述第一对数可能性比值的绝对值。
在本发明的一范例实施例中,所述第一可靠度信息还包括所述比特中的第二比特的第三对数可能性比值,所述第二可靠度信息还包括所述第二比特的第四对数可能性比值,且所述第四对数可能性比值的绝对值小于所述第三对数可能性比值的绝对值,其中所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间具有第一差值,所述第三对数可能性比值的所述绝对值与所述第四对数可能性比值的所述绝对值之间具有第二差值,且所述第一差值不同于所述第二差值。
在本发明的一范例实施例中,所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间的差值正相关于所述第一对数可能性比值的所述绝对值。
在本发明的一范例实施例中,所述第一可靠度信息包括第一收敛参数,且所述第二可靠度信息包括第二收敛参数,其中所述第一收敛参数的值影响所述比特中的第一比特的比特值在所述第一解码操作中被改变的机率,所述第二收敛参数的值影响所述第一比特的所述比特值在所述第二解码操作中被改变的机率,且所述第二收敛参数不同于所述第一收敛参数。
在本发明的一范例实施例中,所述错误检查与校正电路根据所述第二可靠度信息对所述比特执行所述第二解码操作的操作包括:基于所述第一可靠度信息动态产生所述第二可靠度信息。
在本发明的一范例实施例中,在所述错误检查与校正电路执行所述第二解码操作之前,所述第二可靠度信息不存储于存储器存储装置中,其中所述存储器存储装置包括所述存储器控制电路单元与所述可复写式非易失性存储器模块。
在本发明的一范例实施例中,所述第二可靠度信息对于所述比特中的第二类错误的更正能力低于所述第一可靠度信息对于所述第二类错误的更正能力,其中所述第二类错误不是所述可复写式非易失性存储器模块基于所述错误数据对所述第一存储单元执行所述第二程序化操作而产生的。
在本发明的一范例实施例中,所述第一程序化操作是对于所述存储单元中的至少一第二存储单元执行,所述第二程序化操作是对于所述第一存储单元执行,且所述第二存储单元不属于所述第一存储单元。
在本发明的一范例实施例中,所述第一程序化操作与所述第二程序化操作皆是对于所述第一存储单元执行。
基于上述,在从第一存储单元读取多个比特之后,对于所述比特的第一解码操作会根据第一可靠度信息而被执行。若第一解码操作失败且符合预设条件,表示所述比特中可能存在特定类型的错误。例如,所述特定类型的错误可能包括第一类错误,其是基于错误数据对所述第一存储单元执行程序化操作而产生的。因此,对于所述比特的第二解码操作会根据第二可靠度信息而被执行,其中第二可靠度信息不同于第一可靠度信息。特别是,第二可靠度信息对于所述比特中的第一类错误的更正能力会高于第一可靠度信息对于所述第一类错误的更正能力。藉此,可提高解码效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。
图7是根据本发明的一范例实施例所示出的存储单元的临界电压分布的示意图。
图8是根据本发明的一范例实施例所示出的从存储单元中读取数据的示意图。
图9是根据本发明的另一范例实施例所示出的从存储单元中读取数据的示意图。
图10是根据本发明的一范例实施例示出奇偶检查矩阵的示意图。
图11是根据本发明的一范例实施例所示出的存储单元的临界电压分布发生变化的示意图。
图12是根据本发明的一范例实施例所示出的硬比特模式解码操作的示意图。
图13是根据本发明的一范例实施例所示出的软比特模式解码操作的示意图。
图14是根据本发明的一范例实施例所示出的程序化存储单元的示意图。
图15是根据本发明的一范例实施例所示出的解码方法的流程图。
图16至图18是根据本发明的另一范例实施例所示出的解码方法的流程图。
附图标记说明
10、30:存储器存储装置
11、31:主机系统
110:系统总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:U盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位系统模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
502:存储器管理电路
504:主机接口
506:存储器接口
508:错误检查与校正电路
510:缓冲存储器
512:电源管理电路
601:存储区
602:替换区
610(0)~610(B):实体单元
612(0)~612(C):逻辑单元
1030:二分图
1032(1)~1032(k):奇偶节点
1034(1)~1034(n):信息节点
1110、1120、1111、1121、1112、1122、1210、1220、1310、1320、1400、1410、1420、1411、1421、1431~1434:状态
1131、1141:重叠区域
1301~1306:电压区间
1331、1341:软比特信息
S1501:步骤(发送第一读取指令序列以指示从多个第一存储单元读取多个比特)
S1502:步骤(根据第一可靠度信息对所述比特执行第一解码操作)
S1503:步骤(判断第一解码操作是否失败)
S1504:步骤(输出成功解码的比特)
S1505:步骤(判断第一解码操作是否符合预设条件)
S1506:步骤(根据第二可靠度信息对所述比特执行第二解码操作)
S1601:步骤(发送读取指令序列以指示从多个第一存储单元读取多个硬比特)
S1602:步骤(对所述硬比特执行硬比特模式解码操作)
S1603:步骤(判断所执行的硬比特模式解码操作是否失败)
S1604:步骤(输出成功解码的比特)
S1605:步骤(判断所执行的硬比特模式解码操作的次数是否达到第一次数)
S1606:步骤(调整硬决策读取电压电平)
S1701:步骤(发送读取指令序列以指示从多个第一存储单元读取多个软比特)
S1702:步骤(根据第一可靠度信息对所述软比特执行第一软比特模式解码操作)
S1703:步骤(判断所执行的第一软比特模式解码操作是否失败)
S1704:步骤(输出成功解码的比特)
S1705:步骤(判断所执行的第一软比特模式解码操作的次数是否达到第二次数)
S1706:步骤(更新第一可靠度信息)
S1801:步骤(基于第一可靠度信息获得第二可靠度信息)
S1802:步骤(根据第二可靠度信息对所述软比特执行第二软比特模式解码操作)
S1803:步骤(判断所执行的第二软比特模式解码操作是否失败)
S1804:步骤(输出成功解码的比特)
S1805:步骤(判断所执行的第二软比特模式解码操作的次数是否达到第三次数)
S1806:步骤(更新第二可靠度信息)
S1807:步骤(判定解码失败)
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(random access memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆连接至系统总线(system bus)110。
在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10连接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式连接至存储器存储装置10。存储器存储装置10可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110连接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的安全数字(SecureDigital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded Multi MediaCard,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
连接接口单元402用以将存储器存储装置10连接至主机系统11。在本范例实施例中,连接接口单元402是相容于串行高级附件(Serial Advanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra HighSpeed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬体型式或固体型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作也称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。
在本范例实施例中,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字元线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字元线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,在一范例实施例中,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。然而,在另一范例实施例中,一存储单元的最低有效比特(LSB)也可以是属于上实体程序化单元,并且一存储单元的最高有效比特(MSB)也可以是属于下实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路502的控制指令是以固体型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路502的控制指令也可以一硬体型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
主机接口504是连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器位址等信息。
在一范例实施例中,存储器控制电路单元404还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。
错误检查与校正电路508是连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
在本范例实施例中,错误检查与校正电路508所使用的是低密度奇偶检查码(lowdensity parity-check code,LDPC code)。然而,在另一范例实施例中,错误检查与校正电路508所使用的也可以是BCH码、回旋码(convolutional code)、涡轮码(turbo code)等,本发明不加以限制。
缓冲存储器510是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。请参照图6,存储器管理电路502会将可复写式非易失性存储器模块406的实体单元610(0)~610(B)逻辑地分组至存储区601与替换区602。存储区601中的实体单元610(0)~610(A)是用以存储数据,而替换区602中的实体单元610(A+1)~610(B)则是用以替换存储区601中损坏的实体单元。例如,若从某一个实体单元中读取的数据所包含的错误过多而无法被更正时,此实体单元会被视为是损坏的实体单元。须注意的是,若替换区602中没有可用的实体抹除单元,则存储器管理电路502可能会将整个存储器存储装置10宣告为写入保护(write protect)状态,而无法再写入数据。
在本范例实施例中,每一个实体单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体单元也可以是指一个实体位址、一个实体程序化单元或由多个连续或不连续的实体位址组成。存储器管理电路502会配置逻辑单元612(0)~612(C)以映射存储区601中的实体单元610(0)~610(A)。在本范例实施例中,每一个逻辑单元是指一个逻辑位址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑位址组成。此外,逻辑单元612(0)~612(C)中的每一者可被映射至一或多个实体单元。
在本范例实施例中,存储器管理电路502会将逻辑单元与实体单元之间的映射关系(也称为逻辑-实体位址映射关系)记录于至少一逻辑-实体位址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体位址映射表来执行对于存储器存储装置10的数据存取操作。
图7是根据本发明的一范例实施例所示出的存储单元的临界电压分布的示意图。图8是根据本发明的一范例实施例所示出的从存储单元中读取数据的示意图。请参照图7与图8,以MLC NAND型快闪存储器为例,基于不同的临界电压,每一存储单元具有4种存储状态,并且此些存储状态分别地代表"11"、"10"、"01"与"00"等比特。换言之,每一个存储状态包括LSB以及MSB。在本范例实施例中,每一个存储状态中从左侧算起的第1个比特为LSB,而从左侧算起的第2个比特为MSB。因此,在此范例实施例中,每一存储单元可存储2个比特。必须了解的是,图7所示出的临界电压及其存储状态的对应仅为一个范例。在另一范例实施例中,临界电压与存储状态的对应也可是随着临界电压越大而以"11"、"10"、"00"与"01"排列,或是其他排列。此外,在另一范例实施例中,也可定义从左侧算起的第1个比特为MSB,而从左侧算起的第2个比特为LSB。
存储单元的读取运作是通过施予读取电压于控制栅极,通过存储单元通道的导通状态,来识别存储单元存储的数据。以MLC NAND型快闪存储器为例,验证比特(VA)是用以指示施予读取电压VA时存储单元通道是否为导通;验证比特(VB)是用以指示施予读取电压VB时,存储单元通道是否为导通;验证比特(VC)是用以指示施予读取电压VC时,存储单元通道是否为导通。在此假设验证比特是“1”时表示对应的存储单元通道导通,而验证比特是“0”时表示对应的存储单元通道没有导通。如图8所示,通过验证比特(VA)~(VC)可以判断存储单元是处于哪一个存储状态,进而取得所存储的比特。
图9是根据本发明的另一范例实施例所示出的从存储单元中读取数据的示意图。请参照图9,以TLC NAND型快闪存储器为例,每一个存储状态代表一个存储单元所存储的3个比特。例如,在本范例实施例中,每一个存储状态包括从左侧算起的第1个比特的LSB、从左侧算起的第2个比特的中间有效比特(Center Significant Bit,CSB)以及从左侧算起的第3个比特的MSB。在此范例实施例中,依照不同的临界电压,存储单元具有8种存储状态(即,"111"、"110"、"101"、"100"、"011"、"010"、"001"与"000")。通过施加读取电压VA~VG于控制栅极,可以识别存储单元所存储的比特。其中,值得说明的是,此8种存储状态的排列顺序,可依制造商的设计而订,本发明不加以限制。此外,在另一范例实施例中,一个存储单元所存储的3个比特中的某一个比特为LSB、CSB或MSB,可视实务上需求调整。
须注意的是,为了说明方便,在以下范例实施例中,若某一个存储单元可存储2个比特,则假设这2个比特中从左侧算起的第1个比特为LSB并且属于下实体程序化单元,而从左侧算起的第2个比特为MSB并且属于上实体程序化单元。此外,若某一个存储单元可存储3个比特,则假设这3个比特中从左侧算起的第1个比特为LSB并且属于下实体程序化单元,从左侧算起的第2个比特为CSB并且属于中实体程序化单元,并且从左侧算起的第3个比特为MSB并且属于上实体程序化单元。
在低密度奇偶检查校正码中,是用一个奇偶检查矩阵来定义有效的码字。以下将奇偶检查矩阵标记为矩阵H,并且一码字标记为CW。依照以下方程序(1),若奇偶检查矩阵H与码字CW的相乘是零向量,表示码字CW为有效的码字。其中运算子表示模2(mod 2)的矩阵相乘。换言之,矩阵H的零空间(null space)便包含了所有的有效码字。然而,本发明并不限制码字CW的内容。例如,码字CW也可以包括用任意演算法所产生的错误更正码或是错误检查码。
其中矩阵H的维度是k-乘-n(k-by-n),码字CW的维度是1-乘-n。k与n为正整数。码字CW中包括了信息比特与奇偶比特,即码字CW可以表示成[M P],其中向量M是由信息比特所组成,向量P是由奇偶比特所组成。向量M的维度是1-乘-(n-k),而向量P的维度是1-乘-k。以下将信息比特与奇偶比特统称为数据比特。换言之,码字CW中具有n个数据比特,其中信息比特的长度为(n-k)比特,并且奇偶比特的长度是k比特,即码字CW的码率(code rate)为(n-k)/n。
一般来说在编码时会使用一个产生矩阵(以下标记为G),使得对于任意的向量M都可满足以下方程序(2)。其中产生矩阵G的维度是(n-k)-乘-n。
由方程序(2)所产生的码字CW为有效的码字。因此可将方程序(2)代入方程序(1),藉此得到以下方程序(3)。
由于向量M可以是任意的向量,因此以下方程序(4)必定会满足。也就是说,在决定奇偶检查矩阵H以后,对应的产生矩阵G也可被决定。
在解码一个码字CW时,会先对码字中的数据比特执行一个奇偶检查程序,例如将奇偶检查矩阵H与码字CW相乘以产生一个向量(以下标记为S,如以下方程序(5)所示)。若向量S是零向量,则可直接输出码字CW。若向量S不是零向量,则表示码字CW不是有效的码字。
向量S的维度是k-乘-1,其中每一个元素也称为校验子(syndrome)。若码字CW不是有效的码字,则错误检查与校正电路1108会执行一个解码程序(也称为解码操作),以尝试更正码字CW中的错误(即,错误比特)。
图10是根据本发明的一范例实施例示出奇偶检查矩阵的示意图。请参照图10,一般来说,奇偶检查矩阵H可以表示为二分图(bipartite graph)1030,其包括奇偶节点1032(1)~1032(k)与信息节点1034(1)~1034(n)。每一个奇偶节点1032(1)~1032(k)是对应到一个校验子,而每一个信息节点1034(1)~1034(n)是对应一个数据比特。数据比特与校验子之间的对应关系(即,信息节点1034(1)~1034(n)与奇偶节点1032(1)~1032(k)之间的连结)是根据奇偶检查矩阵H所产生。具体来说,若奇偶检查矩阵H中第i列(row)第j行(column)的元素为1,则第i个奇偶节点1032(i)便会连接到第j个信息节点1034(j),其中i与j为正整数。
当存储器管理电路502从可复写式非易失性存储器模块406中读取n个数据比特(形成一个码字)时,则存储器管理电路502也会取得每一个数据比特的可靠度信息(也称为通道可靠度信息)。此可靠度信息是用以表示对应的数据比特被解码为比特“1”或是“0”的机率(或称信心度)。在二分图1030中,信息节点1034(1)~1034(n)也会接收到对应的可靠度信息。例如,信息节点1032(1)会接收第1个数据比特的可靠度信息L1,而信息节点1032(j)会接收第j个数据比特的可靠度信息Lj。
错误检查与校正电路508会根据二分图1030的结构与可靠度信息L1~Ln来执行解码操作。例如,此解码操作会包括叠代解码。在叠代解码中,信息节点1034(1)~1034(n)会计算出可靠度信息给奇偶节点1032(1)~1032(k),并且奇偶节点1032(1)~1032(k)也会计算出可靠度信息给信息节点1034(1)~1034(n)。这些可靠度信息会沿着这些二分图1030中的边(edge)来传送。例如,奇偶节点1032(i)传送给信息节点1034(j)的是可靠度信息Li→j,而信息节点1034(j)传送给奇偶节点1032(i)是可靠度信息Lj→i。这些可靠度信息是用来表示一个节点认为某一个数据比特被解码为“1”或是“0”的机率(即,信心度)。例如,可靠度信息Lj→i表示信息节点1034(j)认为第j个数据比特被解码为“1”或是“0”的信心度(可为正或是负),而可靠度信息Li→j表示奇偶节点1032(i)认为第j个数据比特被解码为“1”或是“0”的信心度。此外,信息节点1034(1)~1034(n)与奇偶节点1032(1)~1032(k)会根据输入的可靠度信息来计算输出的可靠度信息,其近似于计算一个数据比特被解码为“1”或是“0”的条件机率。因此,上述传送可靠度信息的过程又被称为置信传播(belief propagation)。
基于不同的演算法,信息节点1034(1)~1034(n)和/或奇偶节点1032(1)~1032(k)会计算出不同的可靠度信息。例如,错误检查与校正电路508可以采用总和-乘积演算法(Sum-Product Algorithm)、最小值-总和演算法(Min-Sum Algorithm)、或是比特翻转(bit-flipping Algorithm)等演算法,本发明不加以限制。
在叠代解码的每一次叠代中,信息节点1034(1)~1034(n)会传递可靠度信息给奇偶节点1032(1)~1032(k),并且奇偶节点1032(1)~1032(k)也会传递可靠度信息给信息节点1034(1)~1034(n)。在每一次叠代过后,信息节点1034(1)~1034(n)会根据目前的可靠度信息计算出每一个数据比特应该被解码为比特“1”或是“0”。在对这些计算出的数据比特执行奇偶检查程序(例如,将数据比特所形成的码字与奇偶检查矩阵相乘)后,可判断该码字是否为有效的码字。若所产生的码字为有效的码字,表示解码成功并且叠代解码会停止。然而,若所产生的码字不是有效的码字,则会进行下一次的叠代。若叠代解码的叠代次数达到一个预设值,则表示解码失败并且叠代解码也会停止。
在本范例实施例中,可靠度信息包括对数可能性比值(Log Likelihood Ratio,LLR)。例如,图10中的可靠度信息L1~Ln、Li→j及Lj→i分别是一个对数可能性比值。一般来说,某一个数据比特的对数可能性比值(可能是正或负的)的绝对值越大,表示此数据比特的可靠度越高。因此,此数据比特当前的比特值就有越高的机率被视为是正确的。反之,某一个数据比特的对数可能性比值的绝对值越小,则表示此数据比特的可靠度越低。因此,此数据比特当前的比特值就有越高的机率被视为是错误的并且在当前的叠代解码中被更正。在一范例实施例中,叠代解码中使用的可靠度信息(例如,对数可能性比值)是通过查表而获得。然后,在另一范例实施例中,叠代解码中使用的可靠度信息也可以是在叠代解码中根据特定的演算法而动态地计算产生。
在可复写式非易失性存储器模块406对于存储单元的程序化操作中,若欲程序化的数据(即,欲存储的数据)是正确的,则被程序化的存储单元的临界电压可能会因不同存储单元的损耗程度不一而发生小幅度的偏移。受到此偏移影响,后续从此存储单元读取的数据可能会存在错误。一般来说,这种错误有很高的机率可以由错误检查与校正电路508执行解码操作来加以更正。例如,错误检查与校正电路508可以通过小幅度地调整用于读取此存储单元的读取电压电平或执行几次的叠代解码操作即可有效纠错。
图11是根据本发明的一范例实施例所示出的存储单元的临界电压分布发生变化的示意图。请参照图11,假设一开始可复写式非易失性存储器模块406中的多个存储单元的损耗程度很低(例如,此些存储单元的P/E计数很小)。因此,在程序化可复写式非易失性存储器模块406中的多个存储单元后,一部分被程序化的存储单元的临界电压属于状态1110,而另一部分被程序化的存储单元的临界电压属于状态1120。若要读取此些存储单元中的至少一存储单元所存储的数据,存储器管理电路502会发送一个读取指令序列至可复写式非易失性存储器模块406。根据此读取指令序列,可复写式非易失性存储器模块406会使用一个(预设的)读取电压电平Vdefault来读取此些存储单元并且将所获得的数据比特传送给存储器管理电路502。以每一个存储单元存储一个比特的比特数据为例,若某一个存储单元的临界电压小于读取电压电平Vdefault(例如,临界电压属于分布1110的存储单元),则存储器管理电路502可能会读到比特“1”;或者,若某一个存储单元的临界电压大于读取电压电平Vdefault(例如,临界电压属于分布1120的存储单元),则存储器管理电路502可能会读到比特“0”。
然而,随着可复写式非易失性存储器模块406的使用时间增加(例如,P/E计数增加)和/或操作环境改变,可复写式非易失性存储器模块406中的存储单元可能会发生性能衰退(degradation)。例如,在属于分布1110与1120的存储单元发生性能衰退后,状态1110与1120可能会逐渐相互靠近甚至相互重叠。例如,状态1111与1121分别用来表示性能衰退后的状态1110与1120。相对于状态1110与1120,状态1111与1121包含一个重叠区域1131(以斜线表示)。
发生性能衰退后,若持续使用相同的读取电压电平Vdefault来读取此些存储单元,则读取到的数据比特可能会包含许多错误。例如,此些错误包括将属于状态1111的存储单元误判为属于状态1121,和/或将属于状态1121的存储单元误判为属于状态1111。在一范例实施例中,错误检查与校正电路508会根据所获得的数据比特执行一预设解码操作(也称为第一预设解码操作),从而尝试快速地更正数据比特中的错误。在一范例实施例中,第一预设解码操作也称为硬比特模式(hard-bit mode)解码操作,并且硬比特模式解码操作是用于解码所读取的硬比特。
图12是根据本发明的一范例实施例所示出的硬比特模式解码操作的示意图。请参照图12,假设可复写式非易失性存储器模块406中一部分被程序化的存储单元的临界电压属于状态1210,而另一部分被程序化的存储单元的临界电压属于状态1220。当欲读取存储于此些存储单元中的数据时,存储器管理电路502会发送一个读取指令序列(也称为硬决策读取指令序列)至可复写式非易失性存储器模块406。根据此硬决策读取指令序列,可复写式非易失性存储器模块406会使用一个硬决策读取电压电平(例如,读取电压电平VH1)来读取此些存储单元并且将所获得的数据比特(例如,硬比特HB1)传送给存储器管理电路502。
错误检查与校正电路508会根据所获得的硬比特HB1执行硬比特模式解码操作,以尝试更正此些硬比特HB1中可能存在的错误。若错误皆被更正,表示解码成功,则错误检查与校正电路508会输出解码成功的比特。若错误并未全部被更正,表示解码失败,则存储器管理电路502会调整硬决策读取电压电平(例如,将硬决策读取电压电平从读取电压电平VH1调整为读取电压电平VH2)并且发送另一个硬决策读取指令序列至可复写式非易失性存储器模块406。根据此硬决策读取指令序列,可复写式非易失性存储器模块406会使用读取电压电平VH2来再次读取此些存储单元并且将所获得的数据比特(例如,硬比特HB2)传送给存储器管理电路502。
错误检查与校正电路508会根据所获得的硬比特HB2再次执行硬比特模式解码操作,以尝试更正此些硬比特HB2中可能存在的错误。若错误皆被更正,表示解码成功,则错误检查与校正电路508会输出解码成功的比特。此外,若错误并未全部被更正,则存储器管理电路502可再次调整用来读取此些存储单元的硬决策读取电压电平并且更多的硬比特模式解码操作可被执行。
请回到图11,对于临界电压属于状态1111与1121的存储单元来说,若持续地使用此些存储单元,则此些存储单元可能会持续地发生性能衰退。例如,状态1111与1121可能会进一步改变为状态1112与1122。例如,状态1112与1122包含一个重叠区域1141(以斜线表示)。重叠区域1141的面积会大于重叠区域1131的面积。或者,临界电压属于重叠区域1141的存储单元的总数会多于临界电压属于重叠区域1131的存储单元的总数。此时,受限于硬比特模式解码操作的解码能力(或错误更正能力),即便使用再多的硬决策读取电压电平来读取存储单元并对应执行再多次的硬解码程序,可能都无法通过单次读取的硬比特来更正所有错误。
在一范例实施例中,对于临界电压属于状态1112与1122(或类似分布)的存储单元,错误检查与校正电路508会根据所获得的数据比特执行另一预设解码操作(也称为第二预设解码操作),从而尝试使用更多信息来侦错。在一范例实施例中,第二预设解码操作也称为软比特模式(soft-bit mode)解码操作,并且软比特模式解码操作是用于解码所读取的软比特。
图13是根据本发明的一范例实施例所示出的软比特模式解码操作的示意图。请参照图13,存储器管理电路502会发送一个读取指令序列(也称为软决策读取指令序列)至可复写式非易失性存储器模块406。根据此软决策读取指令序列,可复写式非易失性存储器模块406会使用多个读取电压电平VS1~VS5(也称为软决策读取电压电平)来读取此些存储单元并且将所获得的数据比特(例如,软比特信息1331)传送给存储器管理电路502。其中,所获得的软比特信息1331会包含从某一个存储单元读取的多个软比特SB1~SB5。
在一范例实施例中,在传送软比特信息给存储器管理电路502之前,可复写式非易失性存储器模块406会将对应于同一个存储单元的至少部分软比特作逻辑运算,以减少所需传送的软比特的总数。以图13为例,可复写式非易失性存储器模块406可对应于某一个存储单元的软比特SB2与SB3作逻辑上的异或(Exclusive OR,XOR)运算以获得第一运算结果,对应于此存储单元的软比特SB4与SB5作逻辑上的异或运算以获得第二运算结果,并且将此存储单元的软比特SB1、第一运算结果及第二运算结果作为对应于此存储单元的软比特信息1341传送给存储器管理电路502。其中,第一运算结果及第二运算结果也可分别视为是一个软比特。相对于传送软比特信息1331,由于软比特信息1341所包含的软比特的总数较少,软比特信息1341可以更快地传送给存储器管理电路502。此外,软比特信息1331或1341也可以用来判断某一个存储单元的临界电压是属于图13中的电压区间1301~1306中的哪一个。
在图13的一范例实施例中,读取电压电平VS1~VS5的其中之一会被设定为正负号(sign)读取电压电平。此正负号读取电压电平是用来决定数据比特的比特值。例如,若读取电压电平VS3为正负号读取电压,则数据比特的比特值会相同于软比特SB3的比特值;若读取电压电平VS2为正负号读取电压,则数据比特的比特值会相同于验证比特软比特SB2的比特值,以此类推。
在一范例实施例中,错误检查与校正电路508会根据某一个数据比特所对应的软比特信息来获得此数据比特的可靠度信息。例如,在图13的一范例实施例中,若对应于某一个数据比特的软比特信息为“100”,则错误检查与校正电路508会根据此软比特信息查询一查找表,以获得对应于电压区间1301的对数可能性比值。此对数可能性比值会被视为是此数据比特的可靠度信息。然后,错误检查与校正电路508会根据此数据比特与此数据比特的可靠度信息执行软比特模式解码操作。此外,此数据比特的可靠度信息也可能在软比特模式解码操作中经由查询其他的查找表或动态产生而被更新至少一次。关于软比特模式解码操作的细节可参照图10的范例实施例,在此便不赘述。
须注意的是,根据上述关于硬比特模式解码操作与软比特模式解码操作的说明可知,若数据比特中的错误只是单纯地因为存储单元的临界电压发生小幅度的偏移而产生(例如,存在于图11中重叠区域1131或1141),则错误检查与校正电路508执行硬比特模式解码操作或软比特模式解码操作可有效地加以更正。以图13为例,若某一个数据比特所对应的存储单元的临界电压越接近状态1310与1320之间的V形处(例如,位于电压区间1303或1304),则配置给此数据比特的对数可能性比值的绝对值可能会越小;反之,若某一个数据比特所对应的存储单元的临界电压越远离状态1310与1320之间的V形处(例如,位于电压区间1301或1306),则配置给此数据比特的对数可能性比值的绝对值可能会越大。
一般来说,相对于对数可能性比值的绝对值较大(例如,14)的数据比特,对数可能性比值的绝对值较小(例如,1)的数据比特较容易被视为是错误比特并且被更新其比特值。因此,根据数据比特的对数可能性比值的分布状态,数据比特中的错误会逐渐地被更正。但是,根据实务经验,某些类型的错误难以经由常规的硬比特模式解码操作或软比特模式解码操作来检测。
图14是根据本发明的一范例实施例所示出的程序化存储单元的示意图。须注意的是,图14的操作情境也可套用至TLC NAND型存储单元或其他类型的用于存储两个以上的数据比特的存储单元。请参照图14,假设可复写式非易失性存储器模块406中的多个存储单元为MLCNAND型存储单元。在程序化此些存储单元前,此些存储单元的临界电压皆属于状态1400。属于状态1400的存储单元也可视为处于抹除状态“ERA”。在程序化此些存储单元时,一个程序化操作(也称为第一程序化操作)会先被执行。在第一程序化操作中,电子会被注入此些存储单元。例如,第一程序化操作可视为是用以将部分数据存入此些存储单元。
在完成第一程序化操作之后,另一个程序化操作(也称为第二程序化操作)会接续被执行,以再次将更多的电子注入至部分的存储单元,从而完成此些存储单元的程序化操作。须注意的是,第二程序化操作是基于第一程序化操作的程序化结果而执行的。例如,在执行第二程序化操作之前,每一个存储单元所存储的数据会被从相应的存储单元中读取出来。然后,在第二程序化操作中,所读取的数据与部分尚未存储的数据会同时被存入存储单元中。
在一范例实施例中,经第二程序化操作的每一个存储单元会被视为存储有2个数据比特。以下为了说明方便,将经过第二程序化操作的每一个存储单元视为存储有第一数据比特与第二数据比特,并且将为了执行第二程序化操作而从特定存储单元中读取的数据称为第三数据比特。须注意的是,第一数据比特的比特值会对应于第一程序化操作的程序化结果,并且第二数据比特的比特值会对应于第二程序化操作的程序化结果。
回到图14,在理想状态下,经第一程序化操作的存储单元的临界电压会属于状态1410(例如,存储比特“1”)或1420(例如,存储比特“0”)。例如,状态1410与1420可用以表示第一程序化操作的程序化结果。对应于状态1410与1420,若使用读取电压电平VB来读取此些存储单元,则可以正确地读取到此些存储单元所存储的数据(即,第三数据比特)。根据读到的第三数据比特,在对于此些存储单元的第二程序化操作中,每一个存储单元的临界电压会被程序化至属于状态1431~1434的其中之一。例如,若使用读取电压电平VB从某一存储单元读取的第三数据比特为比特“1”,则在对此存储单元执行第二程序化操作之后,此存储单元的临界电压会属于状态1431或1432,视欲存储于此存储单元的第二数据比特的比特值而定。或者,若使用读取电压电平VB从某一存储单元读取的第三数据比特为比特“0”,则在对此存储单元执行第二程序化操作之后,此存储单元的临界电压会属于状态1433或1434,视欲存储于此存储单元的第二数据比特的比特值而定。
在本范例实施例中,临界电压属于状态1431的每一个存储单元是用以存储比特“11”,其中第一数据比特与第二数据比特的比特值皆为“1”;临界电压属于状态1432的每一个存储单元是用以存储比特“10”,其中第一数据比特与第二数据比特的比特值分别为“1”与“0”;临界电压属于状态1433的每一个存储单元是用以存储比特“01”,其中第一数据比特与第二数据比特的比特值分别为“0”与“1”;并且临界电压属于状态1434的每一个存储单元是用以存储比特“00”,其中第一数据比特与第二数据比特的比特值皆为“0”。
但是,实际上若存储单元的损耗程度较高,则经第一程序化操作的存储单元的临界电压可能会属于状态1411(例如,存储比特“1”)或1421(例如,存储比特“0”)。例如,状态1411与1421同样用以表示第一程序化操作的程序化结果。对应于状态1411与1421,若在执行第二程序化操作之前使用读取电压电平VB来读取此些存储单元,则部份读取到的第三数据比特可能是错的。根据读取到的错误的第三数据比特,在第二程序化操作中,原先应该被程序化为属于状态1431以存储比特“11”的存储单元可能被错误地程序化为属于状态1433而存储比特“01”;或者,原先应该被程序化为属于状态1432以存储比特“10”的存储单元也可能被错误地程序化为属于状态1434而存储比特“00”。换言之,部分存储单元所存储的第一数据比特的比特值可能会受到错误的第三数据比特影响而发生错误。
例如,若某一个存储单元的临界电压属于状态1411中的斜线区域,则此存储单元实际上存储的数据是比特“1”,但根据读取电压电平VB从此存储单元读取的第三数据比特却是比特“0”。然后,在第二程序化操作中,根据这个错误的第三数据比特(即,比特“0”)与另一欲存储的数据(例如,比特“1”),此存储单元的临界电压可能会被错误地程序化为属于一错误状态(例如,状态1433)。换言之,在此范例中,此存储单元的临界电压应当被程序化为属于状态1431以存储正确的两个数据比特(例如,比特“11”)。但是,基于所读取到的错误数据(例如,错误的第三数据比特),此存储单元会在第二程序化操作中被错误地程序化为存储有错误的第一数据比特(例如,比特“0”)与正确的第二数据比特(例如,比特“1”)。或者,在第二程序化操作中,根据错误的第三数据比特(例如,比特“0”)与另一欲存储的数据(例如,比特“0”),一个存储单元的临界电压可能会被错误地程序化为属于另一错误状态(例如,状态1434)。一般来说,若待解码的数据中存在上述基于错误数据(例如,错误的第三数据比特)而在第二程序化操作中引起的错误,往往难以通过调整读取电压电平(例如,图14中的读取电压电平VA或VC)或常规的解码机制来找到,使得解码操作失败。
在本范例实施例中,存储器管理电路502会发送一个读取指令序列(也称为第一读取指令序列)至可复写式非易失性存储器模块406,其用以指示可复写式非易失性存储器模块406从多个存储单元(也称为第一存储单元)读取多个比特。例如,所读取的比特即为数据比特。错误检查与校正电路508会根据可靠度信息(也称为第一可靠度信息)对此些比特执行一个解码操作(也称为第一解码操作)。若第一解码操作失败且第一解码操作符合一个预设条件,错误检查与校正电路508会根据另一可靠度信息(也称为第二解码操作)对此些比特执行另一解码操作(也称为第二解码操作)。须注意的是,第二可靠度信息不同于第一可靠度信息,且第二可靠度信息对于此些比特中的第一类错误的更正能力会高于第一可靠度信息对于第一类错误的更正能力。此外,所述第一类错误是指基于错误数据对此些第一存储单元执行上述第二程序化操作而产生的错误。
在一范例实施例中,所述错误数据包括经由读取可复写式非易失性存储器模块406中的至少一第二存储单元而获得的数据。在一范例实施例中,第二存储单元与第一存储单元是指相同的存储单元。例如,在图14的一范例实施例中,所述错误数据包括在对第一存储单元执行第二程序化操作之前通过读取第一存储单元而获得的错误的第三数据比特。此外,在另一范例实施例中,第二存储单元不属于第一存储单元。也即,第二存储单元与第一存储单元是指不同的存储单元。例如,在搬移数据的过程中,可复写式非易失性存储器模块406可能会从某些存储单元(即,第二存储单元)中读取到错误数据并通过第二程序化操作将此错误数据存储至其他的存储单元(即第一存储单元)中,从而引起所述第一类错误。
在一范例实施例中,若可复写式非易失性存储器模块406支援两种程序化模式,例如,第一程序化模式与第二程序化模式,则可复写式非易失性存储器模块406可能会在第一程序化操作中使用第一程序化模式将数据(例如,来自主机系统11的数据)程序化至第二存储单元中。然后,在特定时间点(例如,使用第一程序化模式来存储的数据的数据量达到一预设容量时),可复写式非易失性存储器模块406会将数据从此些已于第一程序化操作中使用第一程序化模式来程序化的第二存储单元读取出来,并且切换为在第二程序化操作中将读取出来的数据使用第二程序化模式程序化至第一存储单元中。在一范例实施例中,所述从已使用第一程序化模式来程序化的第二存储单元读取出来的数据也可视为上述第三数据比特,并且第三数据比特的比特值会对应于第一程序化操作的程序化结果。在此情况下,若根据第一程序化操作的程序化结果所读取的数据存在错误(即,读到错误的第三数据比特),则此错误也有可能在第二程序化操作中引发上述第一类错误。
在一范例实施例中,第一程序化模式是指单层存储单元(single layer memorycell,SLC)模式、下实体程序化(lower physical programming)模式、混合程序化(mixtureprogramming)模式及少层存储单元(less layer memory cell)模式的其中之一。在单层存储单元模式中,一个存储单元只存储一个比特的数据。在下实体程序化模式中,只有下实体程序化单元会被程序化,而此下实体程序化单元所对应之上实体程序化单元可不被程序化。在混合程序化模式中,有效数据(或,真实数据)会被程序化于下实体程序化单元中,而同时虚拟数据(dummy data)会被程序化至存储有效数据之下实体程序化单元所对应的上实体程序化单元中。在少层存储单元模式中,一个存储单元存储一第一数目的比特的数据。例如,此第一数目可设为“1”。
在一范例实施例中,第二程序化模式是指多阶存储单元(MLC)程序化模式、复数阶(TLC)存储单元程序化模式或类似模式。在第二程序化模式中,一个存储单元存储有一第二数目的比特的数据,其中此第二数目等于或大于“2”。例如,此第二数目可设为2或3。在另一范例实施例中,上述第一程序化模式中的第一数目与第二程序化模式中的第二数目皆可以是其他数目,只要满足第二数目大于第一数目即可。
在第二存储单元不属于第一存储单元的一范例实施例中,图14的分布1411与1421也可用于表示对第二存储单元执行的第一程序化操作的程序化结果,并且图14的分布1431~1434也可用于表示对第一存储单元执行的第二程序化操作的程序化结果。此外,在图14的一范例实施例中,经第二程序化操作的每一个第一存储单元也可以是存储有3个或更多的数据比特,本发明不加以限制。
在一范例实施例中,在可复写式非易失性存储器模块406中执行垃圾回收操作以收集有效数据时,从部份存储单元读取的有效数据也可视为上述第三数据比特并且可能包含错误数据。在将此有效数据回存至可复写式非易失性存储器模块406时,也可能引起所述第一类错误。例如,有效数据可视为是从第二存储单元中收集并且被回存至第一存储单元中。
在一范例实施例中,第一数据比特与第二数据比特也可分别称为下页比特与上页比特。在一范例实施例中,所述第一类错误(只)会发生于下页比特。例如,在存储两个或三个比特的存储单元中,所述下页比特(或第一数据比特)为LSB或属于下实体程序化单元的比特。
在一范例实施例中,第一解码操作与第二解码操作皆为图13的范例实施例中提及的第二预设解码操作(即,软比特模式解码操作)。在一范例实施例中,第一解码操作符合一个预设条件是指已执行的第一解码操作的次数达到一预设次数、已切换使用一预设数目的第一可靠度信息(例如,对数可能性比值)、和/或已查询此预设数目的查找表以获得第一可靠度信息。此外,在一范例实施例中,第一解码操作符合一个预设条件则是指可用于获得第一可靠度信息的查找表已经用尽。
在一范例实施例中,所述第一类错误也称为高信赖度错误。由于欲存储的数据本身即存在错误(例如,错误的第三数据比特),因此在基于此错误数据来执行第二程序化操作以程序化存储单元之后,从此存储单元读取的数据比特(例如,经由第二程序化操作存入的第一数据比特和/或第二数据比特)的可靠度可能会很高(例如,配置给此数据比特的对数可能性比值的绝对值可能很大),使得第一解码操作始终不会将此数据比特视为错误比特。
在一范例实施例的某一个第一解码操作中,待解码的数据比特中的某一个比特(也称为第一比特)具有一对数可能性比值(也称为第一对数可能性比值)。在判定第一解码操作失败且符合预设条件之后,错误检查与校正电路508会配置另一对数可能性比值(也称为第二对数可能性比值)给此第一比特。须注意的是,第二对数可能性比值的绝对值会小于第一对数可能性比值的绝对值。藉此,在第二解码操作中,由于第一比特的对数可能性比值的绝对值变小,此第一比特被视为错误比特的机率可被提高。在一范例实施例中,若第一解码操作的失败原因就是因为此第一比特始终没有被视为错误比特,则可能因为在第二解码操作中降低了此第一比特的比特值而使得第二解码操作成功完成。
在一范例实施例的某一个第一解码操作中,待解码的数据比特中的另一个比特(也称为第二比特)也具有一对数可能性比值(也称为第三对数可能性比值)。在配置第二对数可能性比值给第一比特的同时,错误检查与校正电路508也会配置另一对数可能性比值(也称为第四对数可能性比值)给此第二比特。第四对数可能性比值的绝对值也会小于第三对数可能性比值的绝对值。须注意的是,第一对数可能性比值的绝对值与第二对数可能性比值的绝对值之间具有一差值(也称为第一差值),第三对数可能性比值的绝对值与第四对数可能性比值的绝对值之间也具有一差值(也称为第二差值),且第一差值不同于第二差值。换言之,在执行某一个第二解码操作之前,错误检查与校正电路508会不均匀地降低待解码的数据比特中不同比特的对数可能性比值的绝对值。
在一范例实施例,在不均匀地降低待解码的数据比特中不同比特的对数可能性比值的绝对值的操作中,某一个数据比特的对数可能性比值的绝对值的下降幅度正相关于此对数可能性比值的绝对值。例如,若某一个数据比特当前的对数可能性比值为“-14”,则在下一次的第二解码操作中,此数据比特的对数可能性比值可能会被设为“-10”。但是,若某一个数据比特当前的对数可能性比值为“9”,则在下一次的第二解码操作中,此数据比特的对数可能性比值可能会被设为“7”。
在图10的一范例实施例中,降低第i个数据比特的对数可能性比值的绝对值可包括直接调整可靠度信息Li、Li→j及Lj→i的至少其中之一。须注意的是,对数可能性比值只是在上述部分范例实施例中作为可靠度信息的范例。在另一范例实施例中,可靠度信息也可以包含其他类型的参数,只要可以经由调整此参数来影响某一比特的比特值在解码操作中被改变的机率,从而提升对于第一类错误(即,高信赖度错误)的解码效率即可。
在一范例实施例中,可调整的可靠度信息还包括收敛参数。例如,在图10的一范例实施例中,此收敛参数可用于与可靠度信息Li、Li→j及Lj→i的至少其中之一相乘,从而改变输出的可靠度信息Li、Li→j及Lj→i的至少其中之一的值。例如,此收敛参数可以是小于或等于1的正数,例如,0.875、0.625、0.5或0.375等。
在一范例实施例的某一个第一解码操作中,若当前采用的收敛参数(也称为第一收敛参数)的数值为1,则在判定第一解码操作失败且符合预设条件之后,错误检查与校正电路508会采用另一个收敛参数(也称为第二收敛参数),例如,此第二收敛参数的数值为0.875。通过降低收敛参数,也可降低对数可能性比值的绝对值。
在一范例实施例中,第二可靠度信息是基于第一可靠度信息而动态产生。例如,在执行第二解码操作之前,错误检查与校正电路508可根据在某一个第一解码操作中配置给某一个数据比特过的第一可靠度信息来动态产生一个新的可靠度信息。然后,在第二解码操作中,错误检查与校正电路508可将此新的可靠度信息配置给此数据比特作为此数据比特的第二可靠度信息。换言之,在动态产生第二可靠度信息的一范例实施例中,在错误检查与校正电路508执行第二解码操作之前,第二可靠度信息不存储于存储器存储装置10中。
在一范例实施例中,第二可靠度信息也可以是记录于至少一特定查找表中。特别是,此特定查找表并不会在第一解码操作中被使用。例如,可将此特定查找表标记为专用于解决所述第一类错误的查找表。
须注意的是,在前述范例实施例中,虽然使用第二可靠度信息可提高对于第一类错误的更正能力,但是,对于不是可复写式非易失性存储器模块406基于错误数据对第一存储单元执行程序化操作而产生的错误(也称为第二类错误)来说,第二可靠度信息对于第二类错误的更正能力是低于第一可靠度信息对于第二类错误的更正能力。更具体来看,第二类错误例如是经由读取临界电压属于图11中的重叠区域1131或1141的存储单元而获得的错误比特,或者经由读取图14的状态1431~1434中任两个相邻状态之间的重叠区域(或附近区域)的存储单元而获得的错误比特。但是,须注意的是,相对于第一类错误,第二类错误在存储时(例如,在第二程序化操作中)是基于正确的数据,而非错误数据。
例如,在图14的一范例实施例中,若某一个存储单元存储有比特“1”且其临界电压不属于斜线区域(例如,此存储单元的临界电压小于电压电平VB),则根据所读取的正确的第三数据比特(即,比特“1”)以及欲存储的另一数据,第二程序化操作会将此存储单元程序化为属于状态1431与1432的其中之一。尔后,若从此存储单元读取的数据比特中存在错误(例如,错误的第一数据比特和/或错误的第二数据比特),则此错误将被视为第二类错误,而非第一类错误。同理,若第二程序化操作是根据正确的第三数据比特(例如,比特“0”)以及欲存储的另一数据而将某一存储单元程序化为属于状态1433与1434的其中之一,则后续从此存储单元读取的数据比特中的错误也会被视为第二类错误,而非第一类错误。
在一范例实施例中,由于采用的第二可靠度信息是为了增加具有高可靠度的数据比特被视为错误比特的机率,因此,若某一个数据比特的可靠度很高(例如,此数据比特的对数可能性比值的绝对值很大),则可能因为配置了第二可靠度信息给此数据比特而反而降低解码效率。藉此,在一范例实施例中,只有当所有已知的第一可靠度信息(或查找表)皆已使用过后,才会切换为使用第二可靠度信息来执行第二解码操作,减少在解码操作初期就发生误判的机率。
图15是根据本发明的一范例实施例所示出的解码方法的流程图。请参照图15,在步骤S1501中,发送第一读取指令序列以指示从多个第一存储单元读取多个比特。在步骤S1502中,根据第一可靠度信息对所述比特执行第一解码操作。在步骤S1503中,判断第一解码操作是否失败。若第一解码操作未失败(即,成功),在步骤S1504中,输出成功解码的比特。若第一解码操作失败,在步骤S1505中,判断第一解码操作是否符合预设条件。若第一解码操作不符合预设条件,回到步骤S1502,持续使用第一可靠度信息来执行第一解码操作。若第一解码操作符合预设条件,在步骤S1506中,根据第二可靠度信息对所述比特执行第二解码操作。
图16至图18是根据本发明的另一范例实施例所示出的解码方法的流程图。请参照图16,在步骤S1601中,发送读取指令序列以指示从多个第一存储单元读取多个硬比特。在步骤S1602中,对所述硬比特执行硬比特模式解码操作。在步骤S1603中,判断所执行的硬比特模式解码操作是否失败。若所执行的硬比特模式解码操作未失败(即,成功),在步骤S1604中,输出成功解码的比特。若所执行的硬比特模式解码操作失败,在步骤S1605中,判断所执行的硬比特模式解码操作的次数是否达到第一次数。若所执行的硬比特模式解码操作的次数未达到第一次数,在步骤S1606,调整硬决策读取电压电平,然后回到步骤S1601,使用调整过的硬决策读取电压电平来重新读取第一存储单元以获得新的硬比特。然后,步骤S1602接续执行。此外,若所执行的硬比特模式解码操作的次数达到第一次数,在步骤S1605之后进入图17的步骤S1701。
请参照图17,在步骤S1701中,发送读取指令序列以指示从多个第一存储单元读取多个软比特。在步骤S1702中,根据第一可靠度信息对所述软比特执行第一软比特模式解码操作。在步骤S1703中,判断所执行的第一软比特模式解码操作是否失败。若所执行的第一软比特模式解码操作未失败,在步骤S1704中,输出成功解码的比特。若所执行的第一软比特模式解码操作失败,在步骤S1705中,判断所执行的第一软比特模式解码操作的次数是否达到第二次数。若所执行的第一软比特模式解码操作的次数未达到第二次数,在步骤S1706中,更新第一可靠度信息,然后回到步骤S1702,根据更新过的第一可靠度信息对所述软比特执行第一软比特模式解码操作。然后,步骤S1703接续执行。此外,若所执行的第一软比特模式解码操作的次数达到第二次数,在步骤S1705之后进入图18的步骤S1801。
请参照图18,在步骤S1801中,基于第一可靠度信息获得第二可靠度信息。此外,在另一范例实施例中,第二可靠度信息也可以是独立产生而与第一可靠度信息无关。在步骤S1802中,根据第二可靠度信息对所述软比特执行第二软比特模式解码操作。在步骤S1803中,判断所执行的第二软比特模式解码操作是否失败。若所执行的第二软比特模式解码操作未失败,在步骤S1804中,输出成功解码的比特。若所执行的第二软比特模式解码操作失败,在步骤S1805中,判断所执行的第二软比特模式解码操作的次数是否达到第三次数。若所执行的第二软比特模式解码操作的次数未达到第三次数,在步骤S1806中,更新第二可靠度信息。例如,在步骤S1806中,可进一步降低某一个数据比特的对数可能性比值的绝对值或所使用的收敛参数。然后,回到步骤S1802,根据更新过的第二可靠度信息对所述软比特执行第二软比特模式解码操作。然后,步骤S1803接续执行。此外,若所执行的第二软比特模式解码操作的次数达到第三次数,在步骤S1807中,判定解码失败。
然而,图15至图18中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图15至图18中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图15至图18的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明提出的解码方法、存储器存储装置及存储器控制电路单元主要是针对用于存储两个以上的数据比特的存储单元提出的解码效率改善方案。在从第一存储单元读取多个比特之后,对于所述比特的第一解码操作会根据第一可靠度信息而被执行。若第一解码操作失败且符合预设条件,表示所述比特中可能存在特定类型的错误。例如,所述特定类型的错误可能包括第一类错误,其是基于错误数据对所述第一存储单元执行程序化操作而产生的。因此,对于所述比特的第二解码操作会根据第二可靠度信息而被执行,其中第二可靠度信息不同于第一可靠度信息。特别是,第二可靠度信息对于所述比特中的第一类错误的更正能力会高于第一可靠度信息对于所述第一类错误的更正能力。藉此,可提高解码效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求所界定者为准。
Claims (28)
1.一种解码方法,用于包括多个存储单元的可复写式非易失性存储器模块,所述多个存储单元包括多个第一存储单元,所述多个第一存储单元中的每一个存储单元存储有第一数据比特与第二数据比特,所述第一数据比特的比特值对应于第一程序化操作的程序化结果,所述第二数据比特的比特值对应于第二程序化操作的程序化结果,所述第二程序化操作是基于所述第一程序化操作的所述程序化结果而执行,且所述解码方法包括:
发送第一读取指令序列,其用以指示从所述多个第一存储单元读取多个比特;
根据第一可靠度信息对所述多个比特执行第一解码操作;以及
若所述第一解码操作失败且所述第一解码操作符合预设条件,根据第二可靠度信息对所述多个比特执行第二解码操作,
所述第二可靠度信息不同于所述第一可靠度信息,且所述第二可靠度信息对于所述多个比特中的第一类错误的更正能力高于所述第一可靠度信息对于所述第一类错误的更正能力,
所述第一类错误是基于错误数据对所述多个第一存储单元执行所述第二程序化操作而产生。
2.根据权利要求1所述的解码方法,所述第一可靠度信息包括所述多个比特中的第一比特的第一对数可能性比值,所述第二可靠度信息包括所述第一比特的第二对数可能性比值,且所述第二对数可能性比值的绝对值小于所述第一对数可能性比值的绝对值。
3.根据权利要求2所述的解码方法,所述第一可靠度信息还包括所述多个比特中的第二比特的一第三对数可能性比值,所述第二可靠度信息还包括所述第二比特的第四对数可能性比值,且所述第四对数可能性比值的绝对值小于所述第三对数可能性比值的绝对值,
所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间具有第一差值,所述第三对数可能性比值的所述绝对值与所述第四对数可能性比值的所述绝对值之间具有第二差值,且所述第一差值不同于所述第二差值。
4.根据权利要求2所述的解码方法,所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间的差值正相关于所述第一对数可能性比值的所述绝对值。
5.根据权利要求1所述的解码方法,所述第一可靠度信息包括第一收敛参数,且所述第二可靠度信息包括第二收敛参数,
所述第一收敛参数的值影响所述多个比特中的第一比特的比特值在所述第一解码操作中被改变的机率,所述第二收敛参数的值影响所述第一比特的所述比特值在所述第二解码操作中被改变的机率,且所述第二收敛参数不同于所述第一收敛参数。
6.根据权利要求1所述的解码方法,其中根据所述第二可靠度信息对所述多个比特执行所述第二解码操作的步骤包括:
基于所述第一可靠度信息动态产生所述第二可靠度信息。
7.根据权利要求1所述的解码方法,其中在执行所述第二解码操作之前,所述第二可靠度信息不存储于存储器存储装置中,所述存储器存储装置包括所述可复写式非易失性存储器模块与错误检查与校正电路,且所述第一解码操作与所述第二解码操作是由所述错误检查与校正电路执行。
8.根据权利要求1所述的解码方法,所述第二可靠度信息对于所述多个比特中的第二类错误的更正能力低于所述第一可靠度信息对于所述第二类错误的更正能力,
所述第二类错误不是基于所述错误数据对所述多个第一存储单元执行所述第二程序化操作而产生的。
9.根据权利要求1所述的解码方法,所述第一程序化操作是对于所述多个存储单元中的至少一第二存储单元执行,所述第二程序化操作是对于所述多个第一存储单元执行,且所述至少一第二存储单元不属于所述多个第一存储单元。
10.根据权利要求1所述的解码方法,所述第一程序化操作与所述第二程序化操作皆是对于所述多个第一存储单元执行。
11.一种存储器存储装置,包括:
连接接口单元,用以连接至主机系统;
可复写式非易失性存储器模块,包括多个存储单元;以及
存储器控制电路单元,连接至所述连接接口单元与所述可复写式非易失性存储器模块,
所述多个存储单元包括多个第一存储单元,所述多个第一存储单元中的每一个存储单元存储有第一数据比特与第二数据比特,所述第一数据比特的比特值对应于第一程序化操作的程序化结果,所述第二数据比特的比特值对应于第二程序化操作的程序化结果,且所述第二程序化操作是基于所述第一程序化操作的所述程序化结果而执行,
所述存储器控制电路单元用以发送第一读取指令序列,其用以指示从所述多个第一存储单元读取多个比特,
所述存储器控制电路单元还用以根据第一可靠度信息对所述多个比特执行第一解码操作,
若所述第一解码操作失败且所述第一解码操作符合预设条件,所述存储器控制电路单元还用以根据第二可靠度信息对所述多个比特执行第二解码操作,
所述第二可靠度信息不同于所述第一可靠度信息,且所述第二可靠度信息对于所述多个比特中的第一类错误的更正能力高于所述第一可靠度信息对于所述第一类错误的更正能力,
所述第一类错误是所述可复写式非易失性存储器模块基于错误数据对所述多个第一存储单元执行所述第二程序化操作而产生的。
12.根据权利要求11所述的存储器存储装置,所述第一可靠度信息包括所述多个比特中的第一比特的第一对数可能性比值,所述第二可靠度信息包括所述第一比特的第二对数可能性比值,且所述第二对数可能性比值的绝对值小于所述第一对数可能性比值的绝对值。
13.根据权利要求12所述的存储器存储装置,所述第一可靠度信息还包括所述多个比特中的第二比特的第三对数可能性比值,所述第二可靠度信息还包括所述第二比特的第四对数可能性比值,且所述第四对数可能性比值的绝对值小于所述第三对数可能性比值的绝对值,
所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间具有第一差值,所述第三对数可能性比值的所述绝对值与所述第四对数可能性比值的所述绝对值之间具有第二差值,且所述第一差值不同于所述第二差值。
14.根据权利要求12所述的存储器存储装置,所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间的差值正相关于所述第一对数可能性比值的所述绝对值。
15.根据权利要求11所述的存储器存储装置,所述第一可靠度信息包括第一收敛参数,且所述第二可靠度信息包括第二收敛参数,
所述第一收敛参数的值影响所述多个比特中的第一比特的比特值在所述第一解码操作中被改变的机率,所述第二收敛参数的值影响所述第一比特的所述比特值在所述第二解码操作中被改变的机率,且所述第二收敛参数不同于所述第一收敛参数。
16.根据权利要求11所述的存储器存储装置,所述存储器控制电路单元根据所述第二可靠度信息对所述多个比特执行所述第二解码操作的操作包括:
基于所述第一可靠度信息动态产生所述第二可靠度信息。
17.根据权利要求11所述的存储器存储装置,其中在所述存储器控制电路单元执行所述第二解码操作之前,所述第二可靠度信息不存储于所述存储器存储装置中。
18.根据权利要求11所述的存储器存储装置,所述第二可靠度信息对于所述多个比特中的第二类错误的更正能力低于所述第一可靠度信息对于所述第二类错误的更正能力,
所述第二类错误不是所述可复写式非易失性存储器模块基于所述错误数据对所述多个第一存储单元执行所述第二程序化操作而产生的。
19.根据权利要求11所述的存储器存储装置,所述第一程序化操作是对于所述多个存储单元中的至少一第二存储单元执行,所述第二程序化操作是对于所述多个第一存储单元执行,且所述至少一第二存储单元不属于所述多个第一存储单元。
20.一种存储器控制电路单元,用于控制包括多个存储单元的可复写式非易失性存储器模块,所述存储器控制电路单元包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述可复写式非易失性存储器模块;
错误检查与校正电路;以及
存储器管理电路,连接至所述主机接口、所述存储器接口及所述错误检查与校正电路,
所述多个存储单元包括多个第一存储单元,所述多个第一存储单元中的每一个存储单元存储有第一数据比特与第二数据比特,所述第一数据比特的比特值对应于第一程序化操作的程序化结果,所述第二数据比特的比特值对应于第二程序化操作的程序化结果,且所述第二程序化操作是基于所述第一程序化操作的所述程序化结果而执行,
所述存储器管理电路用以发送第一读取指令序列,其用以指示从所述多个第一存储单元读取多个比特,
所述错误检查与校正电路用以根据第一可靠度信息对所述多个比特执行第一解码操作,
若所述第一解码操作失败且所述第一解码操作符合预设条件,所述错误检查与校正电路还用以根据第二可靠度信息对所述多个比特执行第二解码操作,
所述第二可靠度信息不同于所述第一可靠度信息,且所述第二可靠度信息对于所述多个比特中的第一类错误的更正能力高于所述第一可靠度信息对于所述第一类错误的更正能力,
所述第一类错误是所述可复写式非易失性存储器模块基于错误数据对所述多个第一存储单元执行所述第二程序化操作而产生的。
21.根据权利要求20所述的存储器控制电路单元,所述第一可靠度信息包括所述多个比特中的第一比特的第一对数可能性比值,所述第二可靠度信息包括所述第一比特的第二对数可能性比值,且所述第二对数可能性比值的绝对值小于所述第一对数可能性比值的绝对值。
22.根据权利要求21所述的存储器控制电路单元,所述第一可靠度信息还包括所述多个比特中的第二比特的第三对数可能性比值,所述第二可靠度信息还包括所述第二比特的第四对数可能性比值,且所述第四对数可能性比值的绝对值小于所述第三对数可能性比值的一绝对值,
所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间具有第一差值,所述第三对数可能性比值的所述绝对值与所述第四对数可能性比值的所述绝对值之间具有第二差值,且所述第一差值不同于所述第二差值。
23.根据权利要求21所述的存储器控制电路单元,所述第一对数可能性比值的所述绝对值与所述第二对数可能性比值的所述绝对值之间的差值正相关于所述第一对数可能性比值的所述绝对值。
24.根据权利要求20所述的存储器控制电路单元,所述第一可靠度信息包括第一收敛参数,且所述第二可靠度信息包括第二收敛参数,
所述第一收敛参数的值影响所述多个比特中的第一比特的比特值在所述第一解码操作中被改变的机率,所述第二收敛参数的值影响所述第一比特的所述比特值在所述第二解码操作中被改变的机率,且所述第二收敛参数不同于所述第一收敛参数。
25.根据权利要求20所述的存储器控制电路单元,所述错误检查与校正电路根据所述第二可靠度信息对所述多个比特执行所述第二解码操作的操作包括:
基于所述第一可靠度信息动态产生所述第二可靠度信息。
26.根据权利要求20所述的存储器控制电路单元,其中在所述错误检查与校正电路执行所述第二解码操作之前,所述第二可靠度信息不存储于存储器存储装置中,所述存储器存储装置包括所述存储器控制电路单元与所述可复写式非易失性存储器模块。
27.根据权利要求20所述的存储器控制电路单元,所述第二可靠度信息对于所述多个比特中的第二类错误的更正能力低于所述第一可靠度信息对于所述第二类错误的更正能力,
所述第二类错误不是所述可复写式非易失性存储器模块基于所述错误数据对所述多个第一存储单元执行所述第二程序化操作而产生的。
28.根据权利要求20所述的存储器控制电路单元,所述第一程序化操作是对于所述多个存储单元中的至少一第二存储单元执行,所述第二程序化操作是对于所述多个第一存储单元执行,且所述第二存储单元不属于所述多个第一存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710242978.2A CN107092536B (zh) | 2017-04-14 | 2017-04-14 | 解码方法、存储器存储装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710242978.2A CN107092536B (zh) | 2017-04-14 | 2017-04-14 | 解码方法、存储器存储装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107092536A true CN107092536A (zh) | 2017-08-25 |
CN107092536B CN107092536B (zh) | 2020-05-26 |
Family
ID=59637663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710242978.2A Active CN107092536B (zh) | 2017-04-14 | 2017-04-14 | 解码方法、存储器存储装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107092536B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647109A (zh) * | 2018-03-27 | 2018-10-12 | 深圳忆联信息系统有限公司 | 一种固态硬盘提升ldpc纠错能力的方法 |
CN109491828A (zh) * | 2017-09-13 | 2019-03-19 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109697134A (zh) * | 2017-10-20 | 2019-04-30 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109960603A (zh) * | 2017-12-25 | 2019-07-02 | 群联电子股份有限公司 | 比特标记方法、存储器控制电路单元以及存储器存储装置 |
CN110874282A (zh) * | 2018-08-31 | 2020-03-10 | 群联电子股份有限公司 | 数据存取方法、存储器控制电路单元与存储器存储装置 |
CN111258791A (zh) * | 2018-12-03 | 2020-06-09 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111326186A (zh) * | 2018-12-13 | 2020-06-23 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111863099A (zh) * | 2020-07-31 | 2020-10-30 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111949321A (zh) * | 2020-08-21 | 2020-11-17 | 群联电子股份有限公司 | 固件码执行方法、存储器存储装置及存储器控制电路单元 |
CN112925481A (zh) * | 2021-03-09 | 2021-06-08 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN113140253A (zh) * | 2021-04-29 | 2021-07-20 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
US11726709B2 (en) | 2020-07-23 | 2023-08-15 | Phison Electronics Corp. | Memory control method, memory storage device and memory control circuit unit |
US11809706B2 (en) | 2021-04-26 | 2023-11-07 | Phison Electronics Corp. | Memory management method, memory storage device, and memory control circuit unit |
CN117632579A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器控制方法和存储器存储装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601178A (zh) * | 2013-10-30 | 2015-05-06 | 群联电子股份有限公司 | 解码方法、解码电路、存储器存储装置与控制电路单元 |
CN104598169A (zh) * | 2012-12-31 | 2015-05-06 | 苏州国芯科技有限公司 | 用于flash存储器的高可靠性数据读取方法 |
US20150169401A1 (en) * | 2013-12-12 | 2015-06-18 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
US20150254130A1 (en) * | 2013-12-03 | 2015-09-10 | Kabushiki Kaisha Toshiba | Error correction decoder |
TW201603039A (zh) * | 2014-07-10 | 2016-01-16 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元及記憶體儲存裝置 |
CN105468292A (zh) * | 2014-09-05 | 2016-04-06 | 群联电子股份有限公司 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
CN106297883A (zh) * | 2015-06-05 | 2017-01-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
-
2017
- 2017-04-14 CN CN201710242978.2A patent/CN107092536B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598169A (zh) * | 2012-12-31 | 2015-05-06 | 苏州国芯科技有限公司 | 用于flash存储器的高可靠性数据读取方法 |
CN104601178A (zh) * | 2013-10-30 | 2015-05-06 | 群联电子股份有限公司 | 解码方法、解码电路、存储器存储装置与控制电路单元 |
US20150254130A1 (en) * | 2013-12-03 | 2015-09-10 | Kabushiki Kaisha Toshiba | Error correction decoder |
US20150169401A1 (en) * | 2013-12-12 | 2015-06-18 | Phison Electronics Corp. | Decoding method, memory storage device, and memory controlling circuit unit |
TW201603039A (zh) * | 2014-07-10 | 2016-01-16 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元及記憶體儲存裝置 |
CN105468292A (zh) * | 2014-09-05 | 2016-04-06 | 群联电子股份有限公司 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
CN106297883A (zh) * | 2015-06-05 | 2017-01-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491828B (zh) * | 2017-09-13 | 2022-04-19 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109491828A (zh) * | 2017-09-13 | 2019-03-19 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109697134A (zh) * | 2017-10-20 | 2019-04-30 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109960603A (zh) * | 2017-12-25 | 2019-07-02 | 群联电子股份有限公司 | 比特标记方法、存储器控制电路单元以及存储器存储装置 |
CN109960603B (zh) * | 2017-12-25 | 2022-08-30 | 群联电子股份有限公司 | 比特标记方法、存储器控制电路单元以及存储器存储装置 |
CN108647109A (zh) * | 2018-03-27 | 2018-10-12 | 深圳忆联信息系统有限公司 | 一种固态硬盘提升ldpc纠错能力的方法 |
CN110874282A (zh) * | 2018-08-31 | 2020-03-10 | 群联电子股份有限公司 | 数据存取方法、存储器控制电路单元与存储器存储装置 |
CN110874282B (zh) * | 2018-08-31 | 2023-03-21 | 群联电子股份有限公司 | 数据存取方法、存储器控制电路单元与存储器存储装置 |
CN111258791B (zh) * | 2018-12-03 | 2023-05-02 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111258791A (zh) * | 2018-12-03 | 2020-06-09 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111326186B (zh) * | 2018-12-13 | 2022-05-31 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111326186A (zh) * | 2018-12-13 | 2020-06-23 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
US11726709B2 (en) | 2020-07-23 | 2023-08-15 | Phison Electronics Corp. | Memory control method, memory storage device and memory control circuit unit |
CN111863099A (zh) * | 2020-07-31 | 2020-10-30 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN111949321A (zh) * | 2020-08-21 | 2020-11-17 | 群联电子股份有限公司 | 固件码执行方法、存储器存储装置及存储器控制电路单元 |
CN112925481A (zh) * | 2021-03-09 | 2021-06-08 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN112925481B (zh) * | 2021-03-09 | 2024-04-05 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
US11809706B2 (en) | 2021-04-26 | 2023-11-07 | Phison Electronics Corp. | Memory management method, memory storage device, and memory control circuit unit |
CN113140253A (zh) * | 2021-04-29 | 2021-07-20 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN113140253B (zh) * | 2021-04-29 | 2024-03-26 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN117632579A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器控制方法和存储器存储装置 |
CN117632579B (zh) * | 2024-01-25 | 2024-04-30 | 合肥兆芯电子有限公司 | 存储器控制方法和存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107092536B (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092536A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI540586B (zh) | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI670715B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN106158040B (zh) | 读取电压准位估测方法、存储器存储装置及控制电路单元 | |
CN104572334B (zh) | 解码方法、存储器存储装置与存储器控制电路单元 | |
TW201642266A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN105022674B (zh) | 解码方法、存储器存储装置、存储器控制电路单元 | |
US20190189228A1 (en) | Bit tagging method, memory control circuit unit and memory storage device | |
TW202008365A (zh) | 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN105304142B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109901945A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109491828A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109901784B (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
CN106681856A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN105575440B (zh) | 错误处理方法、存储器储存装置及存储器控制电路单元 | |
CN104778975A (zh) | 译码方法、存储器存储装置、存储器控制电路单元 | |
CN109697134A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109559774B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN107025935B (zh) | 译码方法、内存储存装置及内存控制电路单元 | |
US11146295B1 (en) | Decoding method, memory storage device, and memory controlling circuit unit | |
CN109213614A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN107590018A (zh) | 译码方法、存储器控制电路单元及存储器存储装置 | |
CN109508252A (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device |
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 |