解码方法、存储器存储装置及存储器控制电路单元与流程

文档序号:11918029阅读:209来源:国知局
本发明是有关于一种解码技术,且特别是有关于一种解码方法、存储器存储装置及存储器控制电路单元。
背景技术
::数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储介质的需求也急速增加。由于可重写非易失性存储器模块(例如,快速存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种便携式多媒体装置中。一般来说,存储器装置会内建有一或多种解码机制,其用以更正从存储器装置读取的数据中可能具有的错误。例如,此些解码机制可能包括比特翻转(Bit-Flipping)演算法、最小-总合(Min-Sum)演算法及总和-乘积(Sum-Product)演算法等解码演算法。在存储器装置出厂时,存储器装置内建的解码演算法会被配置为使用最佳化的操作参数。但是,随着存储器装置的使用时间和/或使用频率增加,存储器装置的通道状态也会发生变化。若存储器装置的通道状态变化太大,即便使用最佳化的操作参数也往往导致存储器装置的解码效率低落。技术实现要素:本发明提供一种解码方法、存储器存储装置及存储器控制电路单元,可提升存储器存储装置的解码效率。本发明的一范例实施例提供一种解码方法,其用于包括多个存储单元的可重写非易失性存储器模块,所述解码方法包括:从所述多个存储单元中的多个第一存储单元读取第一数据;基于第一解码条件对所述第一数据执行第一解码操作;以及若所述第一解码操作符合第一预设状态,基于第二解码条件对所述第一数据执行第二解码操作,其中基于所述第二解码条件定位所述第一数据中的错误比特的严谨度高于基于所述第一解码条件定位所述第一数据中的所述错误比特的严谨度。在本发明的一范例实施例中,所述解码方法还包括:若所述第一解码操作符合第二预设状态,基于第三解码条件对所述第一数据执行第三解码操作,其中基于所述第三解码条件定位所述第一数据中的所述错误比特的严谨度低于基于所述第一解码条件定位所述第一数据中的所述错误比特的所述严谨度。在本发明的一范例实施例中,所述的解码方法还包括:若所述第一解码条件符合阶段条件,计数所述第一解码操作的迭代计数值;以及若所述迭代计数值符合计数条件,判定所述第一解码操作符合所述第一预设状态。在本发明的一范例实施例中,所述的解码方法还包括:若所述第一解码条件不符合所述阶段条件且所述第一解码操作所翻转的比特的总数符合数目条件,判定所述第一解码操作符合所述第二预设状态。在本发明的一范例实施例中,所述的解码方法还包括:从第一候选计数条件与第二候选计数条件中选择所述计数条件,其中所述第一候选计数条件对应于第一计数值,所述第二候选计数条件对应于第二计数值,并且所述第一计数值不同于所述第二计数值。在本发明的一范例实施例中,所述的解码方法还包括:从第一候选解码条件与第二候选解码条件中选择所述第二解码条件,其中基于所述第一候选解码条件定位数据中的错误比特的严谨度高于基于所述第二候选解码条件定位所述数据中的所述错误比特的严谨度。在本发明的一范例实施例中,所述的解码方法还包括:对所述第一数据执行奇偶检查操作以获得所述第一数据的校验子总合;若所述校验子总合小于预设值,将所述第一数据中的比特的错误权重值从第一错误权重值减少为第二错误权重值;以及若所述第二错误权重值大于对应于所述第一解码条件的翻转门槛值,在所述第一解码操作中翻转所述比特。本发明的另一范例实施例提供一种存储器存储装置,其包括连接接口单元、可重写非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述可重写非易失性存储器模块包括多个存储单元。所述存储器控制电路单元连接至所述连接接口单元与所述可重写非易失性存储器模块,所述存储器控制电路单元用以发送读取指令序列,其中所述读取指令序列指示从所述多个存储单元中的多个第一存储单元读取第一数据,所述存储器控制电路单元还用以基于第一解码条件对所述第一数据执行第一解码操作,若所述第一解码操作符合第一预设状态,所述存储器控制电路单元还用以基于第二解码条件对所述第一数据执行第二解码操作,其中基于所述第二解码条件定位所述第一数据中的错误比特的严谨度高于基于所述第一解码条件定位所述第一数据中的所述错误比特的严谨度。在本发明的一范例实施例中,若所述第一解码操作符合第二预设状态,所述存储器控制电路单元还用以基于第三解码条件对所述第一数据执行第三解码操作,其中基于所述第三解码条件定位所述第一数据中的所述错误比特的严谨度低于基于所述第一解码条件定位所述第一数据中的所述错误比特的所述严谨度。在本发明的一范例实施例中,若所述第一解码条件符合阶段条件,所述存储器控制电路单元还用以计数所述第一解码操作的迭代计数值,若所述迭代计数值符合计数条件,所述存储器控制电路单元判定所述第一解码操作符合所述第一预设状态。在本发明的一范例实施例中,若所述第一解码条件不符合所述阶段条件且所述第一解码操作所翻转的比特的总数符合数目条件,所述存储器控制电路单元判定所述第一解码操作符合所述第二预设状态。在本发明的一范例实施例中,所述存储器控制电路单元还用以从第一候选计数条件与第二候选计数条件中选择所述计数条件,其中所述第一候选计数条件对应于第一计数值,所述第二候选计数条件对应于第二计数值,并且所述第一计数值不同于所述第二计数值。在本发明的一范例实施例中,所述存储器控制电路单元还用以从第一候选解码条件与第二候选解码条件中选择所述第二解码条件,其中基于所述第一候选解码条件定位数据中的错误比特的严谨度高于基于所述第二候选解码条件定位所述数据中的所述错误比特的严谨度。在本发明的一范例实施例中,所述存储器控制电路单元还用以对所述第一数据执行奇偶检查操作以获得所述第一数据的校验子总合,若所述校验子总合小于预设值,所述存储器控制电路单元还用以将所述第一数据中的比特的错误权重值从第一错误权重值减少为第二错误权重值,若所述第二错误权重值大于对应于所述第一解码条件的翻转门槛值,所述存储器控制电路单元还用以在所述第一解码操作中翻转所述比特。本发明的另一范例实施例提供一种存储器控制电路单元,其用以控制包括多个存储单元的可重写非易失性存储器模块,所述存储器控制电路单元包括主机接口、存储器接口、错误检查与校正电路及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可重写非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述错误检查与校正电路,所述存储器管理电路用以发送读取指令序列,其中所述读取指令序列指示从所述多个存储单元中的多个第一存储单元读取第一数据,所述错误检查与校正电路用以基于第一解码条件对所述第一数据执行第一解码操作,若所述第一解码操作符合第一预设状态,所述错误检查与校正电路还用以基于第二解码条件对所述第一数据执行第二解码操作,其中所述错误检查与校正电路基于所述第二解码条件定位所述第一数据中的错误比特的严谨度高于所述错误检查与校正电路基于所述第一解码条件定位所述第一数据中的所述错误比特的严谨度。在本发明的一范例实施例中,若所述第一解码操作符合第二预设状态,所述错误检查与校正电路还用以基于第三解码条件对所述第一数据执行第三解码操作,其中所述错误检查与校正电路基于所述第三解码条件定位所述第一数据中的所述错误比特的严谨度低于所述错误检查与校正电路基于所述第一解码条件定位所述第一数据中的所述错误比特的所述严谨度。在本发明的一范例实施例中,若所述第一解码条件符合阶段条件,所述存储器管理电路还用以计数所述第一解码操作的迭代计数值,若所述迭代计数值符合计数条件,所述存储器管理电路判定所述第一解码操作符合所述第一预设状态。在本发明的一范例实施例中,若所述第一解码条件不符合所述阶段条件且所述第一解码操作所翻转的比特的总数符合数目条件,所述存储器管理电路判定所述第一解码操作符合所述第二预设状态。在本发明的一范例实施例中,所述存储器管理电路还用以从第一候选计数条件与第二候选计数条件中选择所述计数条件,其中所述第一候选计数条件对应于第一计数值,所述第二候选计数条件对应于第二计数值,并且所述第一计数值不同于所述第二计数值。在本发明的一范例实施例中,所述存储器管理电路还用以从第一候选解码条件与第二候选解码条件中选择所述第二解码条件,其中所述错误检查与校正电路基于所述第一候选解码条件定位数据中的错误比特的严谨度高于所述错误检查与校正电路基于所述第二候选解码条件定位所述数据中的所述错误比特的严谨度。在本发明的一范例实施例中,所述错误检查与校正电路还用以对所述第一数据执行奇偶检查操作以获得所述第一数据的校验子总合,若所述校验子总合小于预设值,所述错误检查与校正电路还用以将所述第一数据中的比特的错误权重值从第一错误权重值减少为第二错误权重值,若所述第二错误权重值大于对应于所述第一解码条件的翻转门槛值,所述错误检查与校正电路还用以在所述第一解码操作中翻转所述比特。基于上述,在第一解码操作符合第一预设状态之后,解码演算法所采用的解码条件会被更新为更加严谨地定位待解码数据中的错误比特,从而提升解码操作遭遇错误无法收敛情形的处理效率。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。图6是根据本发明的一范例实施例所示出的奇偶检查矩阵的示意图。图7是根据本发明的一范例实施例所示出的存储单元的临界电压分布的示意图。图8是根据本发明的一范例实施例所示出的在一个迭代解码操作中切换阶段的示意图。图9A是根据本发明的一范例实施例所示出的切换阶段的示意图。图9B是根据本发明的另一范例实施例所示出的切换阶段的示意图。图9C是根据本发明的另一范例实施例所示出的切换阶段的示意图。图10是根据本发明的一范例实施例所示出的奇偶检查操作的示意图。图11是根据本发明的一范例实施例所示出的解码方法的流程图。图12是根据本发明的另一范例实施例所示出的解码方法的流程图。附图标号说明: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:电源管理电路;600、1000:奇偶检查矩阵;710、720:状态;701:读取电压;730:重叠区域;1001:码字;1002:校验向量;S1101:步骤(从可重写非易失性存储器模块的多个第一存储单元读取第一数据);S1102:步骤(基于第一解码条件对第一数据执行第一解码操作);S1103:步骤(判断第一解码操作是否符合第一预设状态);S1104:步骤(基于第二解码条件对第一数据执行第二解码操作);S1105:步骤(判断第一解码操作是否符合第二预设状态);S1106:步骤(基于第三解码条件对第一数据执行第三解码操作);S1201:步骤(从可重写非易失性存储器模块的多个第一存储单元读取第一数据);S1202:步骤(对第一数据执行奇偶检查操作以获得第一数据的校验子总合);S1203:步骤(判断校验子总合是否小于预设值);S1204:步骤(将第一数据中各比特的错误权重值从第一错误权重值减少为第二错误权重值);S1205:步骤(基于一解码条件对第一数据执行解码操作);S1206:步骤(判断解码操作是否符合第一预设状态);S1207:步骤(将解码条件更新为第二解码条件);S1208:步骤(判断解码操作是否符合第二预设状态);S1209:步骤(将解码条件更新为第三解码条件)。具体实施方式一般而言,存储器存储装置(也称,存储器存储系统)包括可重写非易失性存储器模块(rewritablenon-volatilememorymodule)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccessmemory,RAM)112、只读存储器(readonlymemory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆连接至系统总线(systembus)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、固态硬盘(SolidStateDrive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(NearFieldCommunication,NFC)存储器存储装置、无线保真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110连接至全球定位系统(GlobalPositioningSystem,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄像机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的安全数字(SecureDigital,SD)卡32、小型快速(CompactFlash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedMultiMediaCard,eMMC)341和/或嵌入式多芯片封装(embeddedMultiChipPackage,eMCP)存储装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可重写非易失性存储器模块406。在本范例实施例中,连接接口单元402是相容于序列先进附件(SerialAdvancedTechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并列先进附件(ParallelAdvancedTechnologyAttachment,PATA)标准、电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,IEEE)1394标准、高速周边零件连接接口(PeripheralComponentInterconnectExpress,PCIExpress)标准、通用串行总线(UniversalSerialBus,USB)标准、SD接口标准、超高速一代(UltraHighSpeed-I,UHS-I)接口标准、超高速二代(UltraHighSpeed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快速存储器(UniversalFlashStorage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。存储器控制电路单元404用以执行以硬件或软件实作的多个逻辑门或控制指令并且根据主机系统11的指令在可重写非易失性存储器模块406中进行数据的写入、读取与抹除等运作。可重写非易失性存储器模块406是连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可重写非易失性存储器模块406可以是单阶存储单元(SingleLevelCell,SLC)NAND型快速存储器模块(即,一个存储单元中可存储1个比特的快速存储器模块)、多阶存储单元(MultiLevelCell,MLC)NAND型快速存储器模块(即,一个存储单元中可存储2个比特的快速存储器模块)、复数阶存储单元(TripleLevelCell,TLC)NAND型快速存储器模块(即,一个存储单元中可存储3个比特的快速存储器模块)、其他快速存储器模块或其他具有相同特性的存储器模块。在本范例实施例中,可重写非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。例如,同一条字节线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字节线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效比特(LeastSignificantBit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效比特(MostSignificantBit,MSB)是属于上实体程序化单元。一般来说,在MLCNAND型快速存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。在本范例实施例中,可重写非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变临界电压的操作也称为“把数据写入至存储单元”或“程序化存储单元”。随着临界电压的改变,可重写非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,借此取得此存储单元所存储的一或多个比特。图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504、存储器接口506及错误检查与校正电路508。存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。在本范例实施例中,存储器管理电路502的控制指令是以软件来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可重写非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可重写非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在另一范例实施例中,存储器管理电路502的控制指令也可以一硬件来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可重写非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可重写非易失性存储器模块406下达写入指令序列以将数据写入至可重写非易失性存储器模块406中。存储器读取电路用以对可重写非易失性存储器模块406下达读取指令序列以从可重写非易失性存储器模块406中读取数据。存储器抹除电路用以对可重写非易失性存储器模块406下达抹除指令序列以将数据从可重写非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可重写非易失性存储器模块406的数据以及从可重写非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可重写非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可重写非易失性存储器模块406以指示执行相对应的操作。在本范例实施例中,存储器管理电路502会配置多个逻辑单元以映射可重写非易失性存储器模块406中的实体抹除单元。其中一个逻辑单元可以是指一个逻辑地址、一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,一个逻辑单元可被映射至一或多个实体抹除单元。在本范例实施例中,存储器管理电路502会将逻辑单元与实体抹除单元之间的映射关系(也称为逻辑-实体映射关系)记录于至少一逻辑-实体映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体映射表来执行对于存储器存储装置10的数据存取。主机接口504是连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE1394标准、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。这些指令序列可包括一或多个信号,或是在总线上的数据。此外,这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。错误检查与校正电路508是连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ECC)和/或错误检查码(errordetectingcode,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可重写非易失性存储器模块406中。之后,当存储器管理电路502从可重写非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。在一范例实施例中,存储器控制电路单元404还包括缓冲存储器510与电源管理电路512。缓冲存储器510是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可重写非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。在本范例实施例中,错误检查与校正电路508支持低密度奇偶检查(low-densityparity-check,LDPC)码。例如,错误检查与校正电路508可利用低密度奇偶检查码来编码与解码。在低密度奇偶检查码中,是用一个检查矩阵(也称为奇偶检查矩阵)来定义有效的码字。以下将奇偶检查矩阵标记为矩阵H,并且一码字标记为V。依照以下方程式(1),若奇偶检查矩阵H与码字V的相乘是零向量,表示码字V为有效码字(validcodeword)。其中运算子表示模2(mod2)的矩阵相乘。换言之,矩阵H的零空间(nullspace)便包含了所有的有效码字。然而,本发明并不限制码字V的内容。例如,码字V也可以包括用任意演算法所产生的错误更正码或是错误检查码。其中矩阵H的维度是k-乘-n(k-by-n),码字V的维度是1-乘-n。k与n为正整数。码字V中包括了信息比特与奇偶比特,即码字V可以表示成[UP],其中向量U是由信息比特所组成,而向量P是由奇偶比特所组成。向量U的维度是1-乘-(n-k),而向量P的维度是1-乘-k。在一个码字中,奇偶比特即是用来保护信息比特并且可视为是对应于信息比特产生的错误更正码或错误检查码。其中,保护信息比特例如是指维持信息比特的正确性。例如,当从可重写非易失性存储器模块406中读取一笔数据时,此数据中的奇偶比特即可用来更正相应的数据中可能存在的错误。在一范例实施例中,一个码字中的信息比特与奇偶比特统称为数据比特。例如,码字V中具有n个数据比特,其中信息比特的长度为(n-k)比特,并且奇偶比特的长度是k比特。因此,码字V的码率(coderate)为(n-k)/n。一般来说,在使用低密度奇偶检查码来编码时会使用一个产生矩阵(以下标记为G),使得对于任意的向量U都可满足以下方程式(2)。其中产生矩阵G的维度是(n-k)-乘-n。由方程式(2)所产生的码字V为有效码字。因此可将方程式(2)代入方程式(1),借此得到以下方程式(3)。由于向量U可以是任意的向量,因此以下方程式(4)必定会满足。也就是说,在决定奇偶检查矩阵H以后,对应的产生矩阵G也可被决定。在解码一个码字V时,会先对码字V中的数据比特执行一个奇偶检查操作,例如将奇偶检查矩阵H与码字V相乘以产生一个向量(以下标记为S,如以下方程式(5)所示)。若向量S是零向量(即,向量S中的每一个元素都是零),则表示解码成功并且可直接输出码字V。若向量S不是零向量(即,向量S中的至少一个元素不是零),则表示码字V中存在至少一个错误并且码字V不是有效码字。向量S的维度是k-乘-1。向量S中的每一个元素也称为校验子(syndrome)。若码字V不是有效的码字,错误检查与校正电路508会执行一个解码操作,以尝试更正码字V中的错误。图6是根据本发明的一范例实施例所示出的奇偶检查矩阵的示意图。请参照图6,奇偶检查矩阵600的维度是k-乘-n。例如,k为8,并且n为9。然而,本发明并不限制正整数k与n为多少。奇偶检查矩阵600的每一列(row)也代表了一限制(constraint)。以奇偶检查矩阵600的第一列为例,若某一个码字是有效码字,则将此码字中第3、5、8与第9个比特做模2的加法之后,会得到比特“0”。在此领域有通常知识者应能理解如何用奇偶检查矩阵600来编码,在此便不再赘述。此外,奇偶检查矩阵600仅为一个范例矩阵,而非用以限制本发明。当存储器管理电路502要将多个比特存储至可重写非易失性存储器模块406时,错误检查与校正电路508会对应于每(n-k)个欲存储的比特(即,信息比特)产生k个奇偶比特。接下来,存储器管理电路502会把这n个比特(即,数据比特)作为一个码字写入至可重写非易失性存储器模块406。图7是根据本发明的一范例实施例所示出的存储单元的临界电压分布的示意图。请参照图7,横轴代表存储单元的临界电压,而纵轴代表存储单元个数。例如,图7是表示一个实体程序化单元中各个存储单元的临界电压分布状况。假设状态710对应于比特“1”并且状态720对应于比特“0”,若某一个存储单元的临界电压属于状态710,此存储单元所存储的是比特“1”;相反地,若某一个存储单元的临界电压属于状态720时,此存储单元所存储的是比特“0”。须注意的是,在本范例实施例中,临界电压分布中的一个状态对应至一个比特值(即,“0”或“1”),并且存储单元的临界电压分布有两种可能的状态。然而,在其他范例实施例中,临界电压分布中的每一个状态也可以对应至多个比特值并且存储单元的临界电压的分布也可能有四种、八种或其他任意个状态。此外,本发明也不限制每一个状态所代表的比特。例如,在图7的另一范例实施例中,状态710也可以对应于比特“0”,而状态720则对应于比特“1”。在本范例实施例中,当要从可重写非易失性存储器模块406读取数据时,存储器管理电路502会发送一读取指令序列至可重写非易失性存储器模块406。此读取指令序列用以指示可重写非易失性存储器模块406从多个存储单元(以下也称为第一存储单元)读取数据(以下也称为第一数据)。在本范例实施例中,第一存储单元是属于同一个实体程序化单元。然而,在另一范例实施例中,第一存储单元也可以是属于不同的实体程序化单元。根据此读取指令序列,可重写非易失性存储器模块406可使用图7中的读取电压701来读取第一存储单元。若第一存储单元中的某一者的临界电压小于读取电压701,则此存储单元会被导通并且存储器管理电路502会读到比特“1”。相反地,若第一存储单元中的某一者的临界电压大于读取电压701,则此存储单元不会被导通并且存储器管理电路502会读到比特“0”。在本范例实施例中,状态710与状态720之间包含一个重叠区域730。重叠区域730的面积正相关于第一存储单元中临界电压落于重叠区域730内的存储单元的总数。重叠区域730表示在第一存储单元中有一些存储单元所存储的应该是比特“1”(属于状态710),但其临界电压大于所施加的读取电压701;或者,在第一存储单元中有一些存储单元所存储的应该是比特“0”(属于状态720),但其临界电压小于所施加的读取电压701。换言之,通过施加读取电压701所读取的数据中,有部份的比特会有错误。一般来说,若第一存储单元的使用时间很短(例如,数据在第一存储单元中存放时间不长)和/或第一存储单元的使用程度很低(例如,第一存储单元的读取计数、写入计数和/或抹除计数不高),重叠区域730的面积通常很小,甚至可能不存在重叠区域730(即,状态710与720不重叠)。或者,若存储器存储装置10才刚出厂,则重叠区域730通常不存在。若重叠区域730的面积很小,通过施加读取电压701而从第一存储单元读取到的数据中的错误比特往往较少。然而,随着可重写非易失性存储器模块406(或第一存储单元)的使用时间和/或使用程度增加,重叠区域730的面积会逐渐加大。例如,若第一存储单元的使用时间很长(例如,数据在第一存储单元中存放时间很长)和/或第一存储单元的使用程度很高(例如,第一存储单元的读取计数、写入计数和/或抹除计数很高),则重叠区域730的面积会变大(例如,状态710与720会变更平坦和/或状态710与720彼此更靠近)。若重叠区域730的面积很大,则通过施加读取电压701而从第一存储单元读取到的数据中的错误比特往往较多。换言之,重叠区域730的面积会正相关于从第一存储单元读取出来的数据中错误比特的发生机率。在本范例实施例中,在从可重写非易失性存储器模块406接收所读取的第一数据之后,错误检查与校正电路508会执行一奇偶检查操作以验证第一数据中是否存在错误。若判定第一数据中存在错误,则错误检查与校正电路508会执行解码操作来尝试更正第一数据中的错误。在本范例实施例中,错误检查与校正电路508是执行迭代(iteration)解码操作。一个迭代解码操作是用来解码来自于可重写非易失性存储器模块406的一个解码单位。例如,一个解码单位为一个码字。在一个迭代解码操作中,用于检查数据的正确性的奇偶检查操作与用于更正数据中的错误的解码操作会重复执行,直到成功的解码或总迭代次数到达一预定次数为止。若总迭代次数到达此预定次数,表示对于此数据的整个迭代解码操作失败,并且错误检查与校正电路508会停止解码。此外,若通过奇偶检查操作判定某一数据中不存在错误,则错误检查与校正电路508会输出此数据。在本范例实施例中,错误检查与校正电路508可基于不同的解码条件来对第一数据执行多个解码操作。须注意的是,基于不同的解码条件,错误检查与校正电路508定位第一数据中错误比特所使用的严谨度(strictlevel)也会不同。例如,在某些情况下,错误检查与校正电路508会基于定位错误比特的严谨度较高(即,较严格)的解码条件来执行一迭代解码操作中的至少一解码操作。此外,在某些情况下,错误检查与校正电路508会改为基于定位错误比特的严谨度较低(即,较宽松)的解码条件来执行同一个迭代解码操作中的至少一解码操作。在本范例实施例中,定位错误比特的严谨度较高是指对于第一数据中的错误比特的判断与筛选较为严格,从而第一数据中的一或多个比特较不容易被判定为是错误比特。相反的,定位错误比特的严谨度较低则是指对于第一数据中的错误比特的判断与筛选较为宽松,从而第一数据中的一或多个比特较容易被判定为是错误比特。换言之,基于定位错误比特的严谨度较低的解码条件来对某一码字执行解码操作有较高的机率翻转更多的比特,但是也增加翻转到不需要翻转的比特(即,误翻)的机率;反之,基于定位错误比特的严谨度较高的解码条件来对此码字执行解码操作则有较高的机率是翻转较少的比特,但是也降低翻转到不需要翻转的比特的机率。须注意的是,在此提及的翻转某一个比特是指改变此比特的比特值,例如将某一比特的比特值从“1”改变为“0”或从“0”改变为“1”。在本范例实施例中,错误检查与校正电路508配置有多个阶段(stage),其中每一个阶段对应于一个解码条件。在对于第一数据的同一个迭代解码操作中,错误检查与校正电路508可在此些阶段中切换。此外,在每一个阶段中,错误检查与校正电路508可执行一或多个解码操作。图8是根据本发明的一范例实施例所示出的在一个迭代解码操作中切换阶段的示意图。请参照图8,假设有阶段0~阶段15供错误检查与校正电路508使用,其中阶段0是定位错误比特的严谨度最高(即,最严谨)的阶段,而阶段15是定位错误比特的严谨度最低(即,最宽松)的阶段。在阶段0~阶段15中,定位错误比特的严谨度逐渐下降。例如,阶段0的严谨度高于阶段1的严谨度,阶段1的严谨度高于阶段2的严谨度,并且阶段14的严谨度高于阶段15的严谨度。在本范例实施例中,若错误检查与校正电路508当前是操作于阶段0(即,基于阶段0的解码条件来执行解码操作)且判定需要切换解码条件,错误检查与校正电路508会切换至阶段1。若错误检查与校正电路508当前是操作于阶段1(即,基于阶段1的解码条件来执行解码操作)且判定需要切换解码条件,错误检查与校正电路508会切换至阶段2。依此类推,错误检查与校正电路508可在对于第一数据的同一个迭代解码操作中从阶段0逐一切换至阶段15,直到某一个解码操作成功或总迭代次数达到预定次数为止。须注意的是,在从阶段0逐一切换至阶段15的过程中,错误检查与校正电路508对于待解码数据中错误比特的定位越来越宽松,从而在每一个解码操作中被翻转的错误比特的总数可能会逐渐增加。但是,这也代表着在每一个解码操作中被“误翻”的比特的总数也可能逐渐增加。在某些情况下,若在解码操作中被“误翻”的比特过多,可能会导致连续执行的多个解码操作维持在错误发散的状态。在错误发散的状态下,即便执行更多的解码操作,数据中错误比特的总数可能不会减少或者会处于上下震荡的状况,从而最终导致整个迭代解码操作失败(例如,总迭代次数达到预定次数)。因此,在本范例实施例中,错误检查与校正电路508可从阶段15回到阶段0~阶段14中的某一个阶段。通过重新提高解码操作中定位错误比特的严谨度,所执行的解码操作有很高的机率可脱离错误发散的状态,提高后续的解码成功率。此外,相较于一般使用噪音干扰(noising)(即,随机地改变待解码数据之一或多个比特值)或类似方式以尝试脱离错误发散的状态,通过重新提高解码操作中定位错误比特的严谨度也有更高的机率翻转到真正的错误比特。回到图8,若错误检查与校正电路508当前是操作于阶段15(即,基于阶段15的解码条件来执行解码操作)且判定需要切换解码条件,错误检查与校正电路508会切换回至阶段0~阶段14中的某一个阶段,从而在下一次执行的解码操作中提高定位错误比特的严谨度。在从阶段15切换回严谨度较高的阶段之后,错误检查与校正电路508可继续切换至阶段15,除非其间执行的某一个解码操作成功或总迭代次数达到预定次数为止。此外,在同一个迭代解码操作中,若错误检查与校正电路508多次地从阶段15切换回现有的阶段,每一次切换回去的阶段可能不同。以图8为例,若前一次从阶段15切换为现有的阶段是回到阶段7(图8中标记为“1”),下一次从阶段15切换为现有的阶段可能是回到阶段9(图8中标记为“2”)。须注意的是,图8中的阶段0~阶段15仅是一个范例。在其他未提及的范例实施例中,错误检查与校正电路508可操作的阶段的总数也可以是更多或更少。此外,错误检查与校正电路508也可以在一次的切换中跳过一或多个阶段,例如,从阶段0直接切换到阶段2等等。具体来看,假设错误检查与校正电路508当前是基于某一解码条件(以下也称为第一解码条件)对第一数据执行某一解码操作(以下也称为第一解码操作)。若第一解码操作失败,存储器管理电路502会判断第一解码操作是否符合一预设状态(以下也称为第一预设状态)。若第一解码操作符合第一预设状态,错误检查与校正电路508会基于另一解码条件(以下也称为第二解码条件)对第一数据执行另一解码操作(以下也称为第二解码操作),其中基于第二解码条件定位第一数据中的错误比特的严谨度高于基于第一解码条件定位第一数据中的错误比特的严谨度。此外,存储器管理电路502还会判断第一解码操作是否符合另一预设状态(以下也称为第二预设状态)。若第一解码操作符合第二预设状态,错误检查与校正电路508会基于另一解码条件(以下也称为第三解码条件)对第一数据执行另一解码操作(以下也称为第三解码操作),其中基于第三解码条件定位第一数据中的错误比特的严谨度低于基于第一解码条件定位第一数据中的错误比特的严谨度。若第一解码操作不符合第一预设状态也不符合第二预设状态,错误检查与校正电路508会再次基于第一解码条件对第一数据执行第一解码操作。图9A是根据本发明的一范例实施例所示出的切换阶段的示意图。请参照图9A,假设错误检查与校正电路508当前是操作于阶段n(即,第一解码条件)。若操作于阶段n的第一解码操作失败且尚未达到整个迭代解码操作的停止条件(例如,总迭代次数达到预定次数),存储器管理电路502会判断第一解码条件是否符合一阶段条件。例如,存储器管理电路502会判断阶段n是否是定位错误比特的严谨度最低的阶段(例如,图8中的阶段15)。若阶段n不是定位错误比特的严谨度最低的阶段(例如,阶段n可能是图8中的阶段0~阶段14中的任一者),存储器管理电路502会判定第一解码条件不符合阶段条件。此外,存储器管理电路502会判断第一解码操作所翻转的比特的总数是否符合一数目条件。例如,若第一解码操作所翻转的比特的总数为零(即,没有任何一个比特在第一解码操作中被翻转),存储器管理电路502会判定第一解码操作所翻转的比特的总数符合数目条件。反之,若第一解码操作所翻转的比特的总数不为零(即,至少一个比特在第一解码操作中被翻转),则存储器管理电路502会判定第一解码操作所翻转的比特的总数不符合数目条件。若第一解码条件不符合阶段条件且第一解码操作所翻转的比特的总数符合数目条件,错误检查与校正电路508会切换到操作于阶段n+1(即,第三解码条件)。换言之,在本范例实施例中,由于前一次执行的解码操作(即,第一解码操作)中没有翻转任何比特且还有严谨度更低的解码条件可以使用,故错误检查与校正电路508会在下一次的解码操作(即,第三解码操作)中降低定位错误比特的严谨度,从而提高待解码数据中至少一个比特被翻转的机率。图9B是根据本发明的另一范例实施例所示出的切换阶段的示意图。请参照图9B,假设错误检查与校正电路508当前是操作于阶段m(即,第一解码条件)。若操作于阶段m的第一解码操作失败且尚未达到整个迭代解码操作的停止条件,存储器管理电路502会判断第一解码条件是否符合阶段条件。由于阶段m已经是定位错误比特的严谨度最低的阶段(例如,图8中的阶段15),存储器管理电路502会判定第一解码条件符合阶段条件。在判定第一解码条件符合阶段条件之后,存储器管理电路502会计数第一解码操作的一迭代计数值,其中此迭代计数值表示操作于阶段m的第一解码操作已经反复(iteratively)执行了几次。然后,存储器管理电路502会判断迭代计数值是否符合一计数条件。若迭代计数值不符合计数条件,错误检查与校正电路508会继续执行操作于阶段m的第一解码操作。若迭代计数值符合计数条件,例如,迭代计数值达到10次,错误检查与校正电路508会切换回定位错误比特的严谨度较高的阶段p(即,第二解码条件)。换言之,在本范例实施例中,操作于阶段m的第一解码操作已经反复执行过很多次(例如,10次)且仍然无法成功地解码第一数据,表示有很高的机率是重复翻转到太多不需要翻转的比特。因此,错误检查与校正电路508会在下一次的解码操作(即,第二解码操作)中提高定位错误比特的严谨度,从而减少部分比特被误翻的机率。此外,在操作于阶段p之后,错误检查与校正电路508可接续被操作于阶段p+1等等,如图9A的范例实施例,在此便不赘述。图9C是根据本发明的另一范例实施例所示出的切换阶段的示意图。请参照图9C,接续于图9B的范例实施例,若错误检查与校正电路508再次被操作于阶段m、当前操作于阶段m的解码操作(即,第一解码操作)失败且尚未达到整个迭代解码操作的停止条件,存储器管理电路502会再次判定第一解码操作符合阶段条件并计数第一解码操作的迭代计数值。例如,此迭代计数值表示从阶段p再次回到阶段m之后,操作于阶段m的第一解码操作总共执行了几次。然后,存储器管理电路502会判断迭代计数值是否符合一计数条件。例如,存储器管理电路502会判断对应于此次操作于阶段m的第一解码操作的迭代计数值是否等于7。若迭代计数值不符合计数条件(例如,迭代计数值小于7),错误检查与校正电路508会重复执行操作于阶段m的第一解码操作。若迭代计数值符合计数条件,例如,迭代计数值达到7,错误检查与校正电路508会切换回定位错误比特的严谨度较高的阶段q(即,新的第二解码条件)。在操作于阶段q之后,错误检查与校正电路508可接续被操作于阶段q+1等等,如图9A的范例实施例,在此便不赘述。须注意的是,在图9B与图9C的一范例实施例中,用于决定是要回到现有阶段p(或q)或持续维持在阶段m的计数条件不同。例如,在对于第一数据的同一迭代解码操作中,存储器管理电路502可以从多个候选计数条件中选择对应于不同计数值的计数条件,以作为判断是要回到现有阶段的依据。例如,在图9B的一范例实施例中,存储器管理电路502可以从多个候选计数条件中选择一个候选计数条件(以下也称为第一候选计数条件)作为当前使用的计数条件,其中第一候选计数条件对应于第一计数值(例如,10)。然后,在图9C的一范例实施例中,存储器管理电路502改为从此些候选计数条件中选择另一个候选计数条件(以下也称为第二候选计数条件)作为当前使用的计数条件,其中第二候选计数条件对应于第二计数值(例如,7)。通过减少依序使用的计数条件的计数值,可提高整个迭代解码操作的执行效率。然而,在另一范例实施例中,在对于第一数据的同一迭代解码操作中,所使用的计数条件也可以是不变的。在图9B与图9C的一范例实施例中,阶段p与阶段q也不同(即,p不等于q),其中阶段p对于定位错误比特的严谨度高于阶段q对于定位错误比特的严谨度。例如,在对于第一数据的同一迭代解码操作中,存储器管理电路502可从多个候选解码条件中选择适当的解码条件作为第二解码条件。例如,在图9B的一范例实施例中,存储器管理电路502可以从多个候选解码条件中选择一个候选解码条件(以下也称为第一候选解码条件)作为即将使用的第二解码条件,其对应于阶段p。然后,在图9C的一范例实施例中,存储器管理电路502改为从此些候选解码条件中选择另一个候选解码条件(以下也称为第二候选解码条件)作为即将使用的第二解码条件,其对应于阶段q。通过将第二解码条件从阶段p改变为阶段q,也可提高整个迭代解码操作的执行效率。然而,在另一范例实施例中,在对于第一数据的同一迭代解码操作中,错误检查与校正电路508也可以是始终从阶段m切换到同一个阶段(例如阶段p或阶段q),而非不同的阶段。图10是根据本发明的一范例实施例所示出的奇偶检查操作的示意图。请参照图10,假设从第一存储单元中读取的第一数据包含码字1001,则在奇偶检查操作中,根据方程式(5),奇偶检查矩阵1000会与码字1001相乘并且获得校验向量1002(即,向量S)。其中,码字1001中的每一个比特是对应到校验向量1002中的至少一个元素(即,校验子)。举例来说,码字1001中的比特V0(对应至奇偶检查矩阵1000中的第一行)是对应到校验子S1、S4及S7;比特V1(对应至奇偶检查矩阵1000中的第二行)是对应到校验子S2、S3及S6,以此类推。若比特V0是错误比特,则校验子S1、S4及S7的至少其中之一可能会是“1”。若比特V1是错误比特,则校验子S2、S3及S6的至少其中之一可能会是“1”,以此类推。换言之,若校验子S0~S7皆是“0”,表示码字1001中可能没有错误,因此错误检查与校正电路508可直接输出码字1001。然而,若码字801中具有错误,则校验子S0~S7的至少其中之一可能会是“1”,并且错误检查与校正电路508会对码字1001执行解码操作。在本范例实施例中,错误检查与校正电路508是使用比特翻转(Bit-Flipping)演算法来执行解码操作,因此错误检查与校正电路508是基于一个翻转门槛值来识别第一数据中需要被翻转的比特(即,错误比特),其中每一个阶段(或解码条件)是对应于一个翻转门槛值。例如,在图8的一范例实施例中,阶段0所对应的翻转门槛值最大,阶段15所对应的翻转门槛值最小,并且阶段0至阶段15的翻转门槛值逐渐降低。然而,在另一范例实施例中,错误检查与校正电路508也可以是使用最小-总合(Min-Sum)演算法或总和-乘积(Sum-Product)演算法等解码演算法来执行解码操作。在本范例实施例中,错误检查与校正电路508会根据奇偶检查矩阵1000与校验向量1002来计算码字1001中每一个比特的错误权重。例如,错误检查与校正电路508会将对应至码字1001中同一个比特的校验子相加以取得此比特的错误权重。例如,E0~E8分别用来表示比特V0~V8的错误权重,其中比特V0的错误权重E0等于校验子S1、S4及S7的相加;比特V1的错误权重E1等于校验子S2、S3及S6的相加,以此类推。须注意的是,在此对校验子S0~S7所做的加法是一般的加法,而不是模2的加法。例如,错误检查与校正电路508可以通过以下方程式(6)来取得码字1001中每一个比特的错误权重,其中向量f中的每一个元素即可用来表示码字中每一个比特的错误权重。f=ST×H…(6)在获得错误权重之后,错误检查与校正电路508会翻转码字1001中错误权重大于所使用的翻转门槛值的全部或至少一部分比特。因此,通过切换阶段(或解码条件),错误检查与校正电路508用来识别错误比特的翻转门槛值也会被调整,从而错误检查与校正电路508在某一解码操作中定位错误比特是严谨还是宽松也可被决定。在一范例实施例中,错误检查与校正电路508是通过以下方程式(7)来定义第一数据中每一个比特的错误权重,其中方程式(7)也称为成本函式(costfunction)。EWi=αAi+βBi…(7)在方程式(7)中,EWi表示第一数据中第i个比特(即,比特Vi)的错误权重,Ai等于图10的范例实施例中的Ei,而Bi的值则对应于比特Vi的当前值是否等于其初始值而设定。例如,假设比特Vi的初始值是“1”,在经过至少一次的解码操作之后,若比特Vi被改变为“0”,则Bi的值会被设为“1”,以表示比特Vi的当前值与其初始值不同;反之,在经过至少一次的解码操作之后,若比特Vi仍然是“1”,则Bi的值会被设为“0”,以表示比特Vi的当前值等于其初始值。此外,α与β皆为常数。相较于直接以Ei作为比特Vi的错误权重,方程式(7)使用更多的参数来调节比特Vi的错误权重EWi。在某些情况下,错误权重EWi相较于错误权重Ei对于错误比特的定位更加的精确。在一范例实施例中,在获得第一数据的校验向量之后,错误检查与校正电路508会获得第一数据的校验子总合。以图10为例,错误检查与校正电路508会累加校验子S0~S7以获得对应于码字1001的校验子总合。例如,若校验子S0~S7中有k个“1”,则码字1001的校验子总合即为k。错误检查与校正电路508会判断此校验子总合是否小于一预设值。若此校验子总合小于预设值,错误检查与校正电路508会将第一数据中各比特的错误权重值减少,例如从第一错误权重值减少为第二错误权重值。在减少第一数据中各比特的错误权重值之后,下一个解码操作可被执行。例如,在下一个解码操作(例如,第一解码操作)中,若某一个比特的减少后的错误权重值(即,第二错误权重值)大于对应于所使用的第一解码条件的翻转门槛值,错误检查与校正电路508会在此第一解码操作中翻转此比特。然而,若所统计的校验子总合不小于预设值,错误检查与校正电路508不会主动减少第一数据中各比特的错误权重值。在一范例实施例中,若判定第一数据的校验子总合小于预设值,错误检查与校正电路508会改为使用以下方程式(8)来计算第一数据中各比特的错误权重。相较于使用方程式(7),使用方程式(8)可以减少计算出来的错误权重的值。EWi=αAi…(8)须注意的是,虽然上述范例实施例皆是以比特翻转演算法作为范例,但是在其他未提及的实施例中,错误检查与校正电路508也可以是使用最小-总合演算法或总和-乘积演算法等解码演算法来执行解码操作。所属
技术领域
:具有通常知识者应当知晓需要通过调整哪些参数来调整各种解码演算法中用于定位错误比特的严谨度,在此便不赘述。图11是根据本发明的一范例实施例所示出的解码方法的流程图。请参照图11,在步骤S1101中,从可重写非易失性存储器模块的多个第一存储单元读取第一数据。在步骤S1102中,基于第一解码条件对第一数据执行第一解码操作。须注意的是,本发明并不限制此第一解码操作是在读取第一数据之后执行的第几次解码操作,只要属于对于第一数据的同一个迭代解码操作即可。在步骤S1103中,判断第一解码操作是否符合第一预设状态。若第一解码操作符合第一预设状态,在步骤S1104中,基于第二解码条件对第一数据执行第二解码操作,其中基于第二解码条件定位第一数据中的错误比特的严谨度高于基于第一解码条件定位第一数据中的错误比特的严谨度。若第一解码操作不符合第一预设状态,在步骤S1105中,判断第一解码操作是否符合第二预设状态。若第一解码操作符合第二预设状态,在步骤S1106中,基于第三解码条件对第一数据执行第三解码操作,其中基于第三解码条件定位第一数据中的错误比特的严谨度低于基于第一解码条件定位第一数据中的错误比特的严谨度。若第一解码操作不符合第一预设状态也不符合第二预设状态,在步骤S1105之后,步骤S1102可被重复执行。须注意的是,在图11的解码方法中,只要达到整个迭代解码操作的停止条件(例如,解码成功或总迭代次数达到预定次数),则整个迭代解码操作就会停止。图12是根据本发明的另一范例实施例所示出的解码方法的流程图。请参照图12,在步骤S1201中,从可重写非易失性存储器模块的多个第一存储单元读取第一数据。在步骤S1202中,对第一数据执行奇偶检查操作以获得第一数据的校验子总合。在步骤S1203中,判断校验子总合是否小于预设值。若校验子总合小于预设值,在步骤S1204中,将第一数据中各比特的错误权重值从第一错误权重值减少为第二错误权重值。在步骤S1205中,基于一解码条件对第一数据执行解码操作。例如,此时的解码条件为第一解码条件。此外,若校验子总合不小于预设值,则在步骤S1203之后也进入步骤S1205。在步骤S1206中,判断解码操作是否符合第一预设状态。若解码操作符合第一预设状态,在步骤S1207中,将解码条件更新为第二解码条件,其中基于第二解码条件定位第一数据中的错误比特的严谨度高于基于第一解码条件定位第一数据中的错误比特的严谨度。若解码操作不符合第一预设状态,在步骤S1208中,判断解码操作是否符合第二预设状态。若解码操作符合第二预设状态,在步骤S1209中,将解码条件更新为第三解码条件,其中基于第三解码条件定位第一数据中的错误比特的严谨度低于基于第一解码条件定位第一数据中的错误比特的严谨度。若解码操作不符合第一预设状态也不符合第二预设状态,在步骤S1208之后,步骤S1202可被重复执行。此外,在步骤S1207与S1209之后,步骤S1202也可被重复执行。须注意的是,在图12的解码方法中,只要达到整个迭代解码操作的停止条件(例如,解码成功或总迭代次数达到预定次数),则整个迭代解码操作就会停止。然而,图11与图12中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图11与图12中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图11与图12的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,本发明可在迭代解码操作中弹性地调整解码操作定位错误比特的严谨度。此外,通过所设定的切换规则,存储器存储装置的解码效率可被提升。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1