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

文档序号:12368885阅读:175来源:国知局
本发明是有关于一种解码技术,且特别是有关于一种解码方法、存储器存储装置及存储器控制电路单元。
背景技术
::数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种便携式多媒体装置中。一般来说,为了确保数据的正确性,在将某一笔数据写入至可复写式非易失性存储器模块之前,此数据会被编码。而编码后的数据会被写入至可复写式非易失性存储器模块中。当欲读取此笔数据时,编码后的数据会被读取出来并且被解码。若数据可以成功地解码,表示其中的错误比特的数目不多且此些错误比特可以被更正。然而,若数据无法成功地解码(即,解码失败),则更多的读取电压(也称为软决策读取电压)可能会被用来读取更多的辅助解码信息(也称为软信息)。根据此辅助解码信息,数据被成功解码的机率将可提升。一般来说,多个软决策读取电压彼此之间的电压差是固定的并且可通过查表而获得。然而,对于使用程度不一的可复写式非易失性存储器模块来说,使用具有固定电压差的多个软决策读取电压可能会导致解码效率低落。技术实现要素:本发明提供一种解码方法、存储器存储装置及存储器控制电路单元,可改善对于区块码的解码效率。本发明的一范例实施例提供一种解码方法,其用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个存储单元,所述解码 方法包括:根据所述存储单元中多个第一存储单元的损耗程度来决定第一软决策读取电压电平与第二软决策读取电压电平,其中所述第一软决策读取电压电平与所述第二软决策读取电压电平之间具有差值;以所述第一软决策读取电压电平来读取所述第一存储单元以获得第一软决策编码单元,其中所述第一软决策编码单元属于区块码;对所述第一软决策编码单元执行第一软决策解码程序;若所述第一软决策解码程序失败,以所述第二软决策读取电压电平来读取所述第一存储单元以获得第二软决策编码单元,其中所述第二软决策编码单元属于所述区块码;以及对所述第二软决策编码单元执行第二软决策解码程序。在本发明的一范例实施例中,所述解码方法还包括:接收读取指令并且以硬决策读取电压电平来读取所述第一存储单元以获得硬决策编码单元,其中所述硬决策编码单元属于所述区块码;以及对所述硬决策编码单元执行硬决策解码程序,其中以所述第一软决策读取电压电平来读取所述第一存储单元的步骤是在所述硬决策解码程序失败之后执行。在本发明的一范例实施例中,所述解码方法还包括:在执行所述第二软决策解码程序之前,将所述第二软决策编码单元中的至少一比特设定为在所述第一软决策解码程序中更正的比特值。在本发明的一范例实施例中,根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的步骤包括:获得所述第一存储单元的电压分布状态,其中所述电压分布状态至少包括第一状态与第二状态;以及根据所述第一状态与所述第二状态之间的间隙宽度或所述第一状态与所述第二状态的重叠程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是负相关于所述第一状态与所述第二状态之间的所述重叠程度。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是正相关于与所述第一状态与所述第二状态之间的所述间隙宽度。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二 软决策读取电压电平之间的所述差值是负相关于所述第一存储单元的所述损耗程度,其中根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的步骤包括:根据所述第一存储单元的读取次数、所述第一存储单元的写入次数、所述第一存储单元的擦除次数及所述第一存储单元的一比特错误率的至少其中之一,来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平的其中之一为对应于所述第一存储单元的最佳读取电压电平,其中根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的步骤包括:执行最佳读取电压电平追踪程序(optimalreadvoltageleveltrackingprocess)以决定所述最佳读取电压电平。在本发明的一范例实施例中,所述区块码由多个子编码单元组成,所述子编码单元中的预设比特是由多个编码程序决定。在本发明的一范例实施例中,所述编码程序具有不同的编码方向。本发明的另一范例实施例提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以电性连接至主机系统。所述可复写式非易失性存储器模块包括多个存储单元。所述存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,其中所述存储器控制电路单元用以根据所述存储单元中多个第一存储单元的损耗程度来决定第一软决策读取电压电平与第二软决策读取电压电平,其中所述第一软决策读取电压电平与所述第二软决策读取电压电平之间具有差值,其中所述存储器控制电路单元还用以发送第一软决策读取指令序列,其中所述第一软决策读取指令序列用以指示以所述第一软决策读取电压电平来读取所述第一存储单元以获得第一软决策编码单元,其中所述第一软决策编码单元属于区块码,其中所述存储器控制电路单元还用以对所述第一软决策编码单元执行第一软决策解码程序,其中若所述第一软决策解码程序失败,所述存储器控制电路单元还用以发送第二软决策读取指令序列,其中所述第二软决策读取指令序列用以指示以所述第二软决策读取电压电平来读取所述第一存储单元以获得第二软决策编码单元,其中 所述存储器控制电路单元还用以对所述第二软决策编码单元执行第二软决策解码程序。在本发明的一范例实施例中,所述存储器控制电路单元还用以接收读取指令并且发送硬决策读取指令序列,其中所述硬决策读取指令序列用以指示以硬决策读取电压电平来读取所述第一存储单元以获得硬决策编码单元,其中所述硬决策编码单元属于所述区块码,其中所述存储器控制电路单元还用以对所述硬决策编码单元执行硬决策解码程序,其中所述存储器控制电路单元发送所述第一软决策读取指令序列的操作是在所述硬决策解码程序失败之后执行。在本发明的一范例实施例中,在执行所述第二软决策解码程序之前,所述存储器控制电路单元还用以将所述第二软决策编码单元中的至少一比特设定为在所述第一软决策解码程序中更正的比特值。在本发明的一范例实施例中,所述存储器控制电路单元根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的操作包括:获得所述第一存储单元的电压分布状态,其中所述电压分布状态包括第一状态与第二状态;以及根据所述第一状态与所述第二状态之间的间隙宽度或所述第一状态与所述第二状态的重叠程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是负相关于所述第一状态与所述第二状态之间的所述重叠程度。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是正相关于与所述第一状态与所述第二状态之间的所述间隙宽度。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是负相关于所述第一存储单元的所述损耗程度,其中所述存储器控制电路单元根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的操作包括:根据所述第一存储单元的读取次数、所述第一存储单元的写入次数、所述第一存储单元的擦除次数及所述第一存储单元的比特错误率的至少其中 之一,来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平的其中之一为对应于所述第一存储单元的最佳读取电压电平,其中所述存储器控制电路单元根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的操作包括:执行最佳读取电压电平追踪程序以决定所述最佳读取电压电平。在本发明的一范例实施例中,所述区块码由多个子编码单元组成,所述子编码单元中的预设比特是由多个编码程序决定。在本发明的一范例实施例中,所述编码程序具有不同的编码方向。本发明的另一范例实施例提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个存储单元,所述存储器控制电路单元包括主机接口、存储器接口、错误检查与校正电路及存储器管理电路。所述主机接口用以电性连接至主机系统。所述存储器接口用以电性连接至所述可复写式非易失性存储器模块。所述存储器管理电路电性连接至所述主机接口、所述存储器接口及所述错误检查与校正电路,其中所述存储器管理电路用以根据所述存储单元中多个第一存储单元的损耗程度来决定第一软决策读取电压电平与第二软决策读取电压电平,其中所述第一软决策读取电压电平与所述第二软决策读取电压电平之间具有差值,其中所述存储器管理电路还用以发送第一软决策读取指令序列,其中所述第一软决策读取指令序列用以指示以所述第一软决策读取电压电平来读取所述第一存储单元以获得第一软决策编码单元,其中所述第一软决策编码单元属于区块码,其中所述错误检查与校正电路用以对所述第一软决策编码单元执行第一软决策解码程序,其中若所述第一软决策解码程序失败,所述存储器管理电路还用以发送第二软决策读取指令序列,其中所述第二软决策读取指令序列用以指示以所述第二软决策读取电压电平来读取所述第一存储单元以获得第二软决策编码单元,其中所述第二软决策编码单元属于所述区块码,其中所述错误检查与校正电路还用以对所述第二软决策编码单元执行第二软决策解码程序。在本发明的一范例实施例中,所述存储器管理电路还用以接收读取指令并且发送硬决策读取指令序列,其中所述硬决策读取指令序列用以指示以硬 决策读取电压电平来读取所述第一存储单元以获得硬决策编码单元,其中所述硬决策编码单元属于所述区块码,其中所述错误检查与校正电路还用以对所述硬决策编码单元执行硬决策解码程序,其中所述存储器管理电路发送所述第一软决策读取指令序列的操作是在所述硬决策解码程序失败之后执行。在本发明的一范例实施例中,在执行所述第二软决策解码程序之前,所述存储器管理电路还用以将所述第二软决策编码单元中的至少一比特设定为在所述第一软决策解码程序中更正的比特值。在本发明的一范例实施例中,所述存储器管理电路根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的操作包括:获得所述第一存储单元的电压分布状态,其中所述电压分布状态包括第一状态与第二状态;以及根据所述第一状态与所述第二状态之间的间隙宽度或所述第一状态与所述第二状态的重叠程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是负相关于所述第一状态与所述第二状态之间的所述重叠程度。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是正相关于与所述第一状态与所述第二状态之间的所述间隙宽度。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平之间的所述差值是负相关于所述第一存储单元的所述损耗程度,其中所述存储器管理电路根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的操作包括:根据所述第一存储单元的读取次数、所述第一存储单元的写入次数、所述第一存储单元的擦除次数及所述第一存储单元的比特错误率的至少其中之一,来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平。在本发明的一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平的其中之一为对应于所述第一存储单元的最佳读取电压电平,其中所述存储器管理电路根据所述第一存储单元的所述损耗程度来决定所述第一软决策读取电压电平与所述第二软决策读取电压电平的操作包 括:执行最佳读取电压电平追踪程序以决定所述最佳读取电压电平。在本发明的一范例实施例中,所述区块码由多个子编码单元组成,所述子编码单元中的预设比特是由多个编码程序决定。在本发明的一范例实施例中,所述编码程序具有不同的编码方向。基于上述,本发明可以根据具有与存储单元的损耗程度有关的差值的第一软决策读取电压电平与第二软决策读取电压电平来分别读取都属于区块码的第一软决策编码单元与第二软决策编码单元,并且分别执行对应的软决策解码程序。借此,可改善对于区块码的解码效率。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图;图2是本发明的一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;图3是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图;图4是示出图1所示的存储器存储装置的概要方块图;图5是本发明的一范例实施例所示出的可复写式非易失性存储器模块的概要方块图;图6是本发明的一范例实施例所示出的存储单元阵列的示意图;图7是本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;图8是本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图;图9是本发明的一范例实施例所示出的多个存储单元的临界电压分布的示意图;图10是本发明的一范例实施例所示出的区块码的示意图;图11是本发明的一范例实施例所示出的软决策读取电压电平与存储单 元的临界电压分布状态的示意图;图12是本发明的一范例实施例所示出的解码方法的流程图。附图标记说明:10:存储器存储装置;11:主机系统;12:电脑;122:微处理器;124:随机存取存储器(RAM);126:系统总线;128:数据传输接口;13:输入/输出(I/O)装置;21:鼠标;22:键盘;23:显示器;24:打印机;25:随身碟;26:记忆卡;27:固态硬盘;31:数码相机;32:SD卡;33:MMC卡;34:记忆棒;35:CF卡;36:嵌入式存储装置;402:连接接口单元;404:存储器控制电路单元;406:可复写式非易失性存储器模块;502:存储单元阵列;504:字元线控制电路;506:位元线控制电路;508:行解码器;510:数据输入/输出缓冲器;512:控制电路;602:存储单元;604:位元线;606:字元线;608:共用源极线;612、614:晶体管;702:存储器管理电路;704:主机接口;706:存储器接口;708:错误检查与校正电路;710:缓冲存储器;712:电源管理电路;800(0)~800(R):物理擦除单元;810(0)~810(D):逻辑单元;802:存储区;806:系统区;901、902、911、912:分布;913:重叠区域;1010:编码单元;1020(1)~1020(n):子编码单元;1110、1120、1130、1140:电压分布状态;1111、1112、1121、1122、1131、1132、1141、1142:状态;Vread-0:读取电压电平;VRead-1~VRead-18:软决策读取电压电平;S1201~S1211:步骤;b11~bnm:比特。具体实施方式一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。图1是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图。图2是本发明的一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图。请参照图1,主机系统11一般包括电脑12与输入/输出(input/output,简称:I/O)装置13。电脑12包括微处理器122、随机存取存储器(randomaccessmemory,简称:RAM)124、系统总线126与数据传输接口128。输入/输出装置13包括如图2的鼠标21、键盘22、显示器23与打印机24。必须了解的是,图2所示的装置非限制输入/输出装置13,输入/输出装置13可还包括其他装置。在一范例实施例中,存储器存储装置10是通过数据传输接口128与主机系统11的其他元件电性连接。通过微处理器122、随机存取存储器124与输入/输出装置13的运作可将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。例如,存储器存储装置10可以是如图2所示的随身碟25、记忆卡26或固态硬盘(SolidStateDrive,简称:SSD)27等的可复写式非易失性存储器存储装置。图3是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图。一般而言,主机系统11为可实质地与存储器存储装置10配合以存储数据的任意系统。虽然在本范例实施例中,主机系统11是以电脑系统来做说明,然而,另一范例实施例中,主机系统11可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄像机)31时,可复写式非易失性存储器存储装置则为其所使用的SD卡32、MMC卡33、记忆棒(memorystick)34、CF卡35或嵌入式存储装置36(如图3所示)。嵌入式存储装置36包括嵌入式多媒体卡(EmbeddedMMC,简称:eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。图4是示出图1所示的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。在本范例实施例中,连接接口单元402是兼容于串行高级技术附件(SerialAdvancedTechnologyAttachment,简称:SATA)标准。然而,必须了解的是,本发明不限于此。在另一范例实施例中,连接接口单元402也可以是符合并行高级技术附件(ParallelAdvancedTechnologyAttachment,简称:PATA)标准、电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,简称:IEEE)1394标准、高速周边零件连接接口(PeripheralComponentInterconnectExpress,简称:PCIExpress)标准、通用串行总线(UniversalSerialBus,简称:USB)标准、安全数字(SecureDigital,简称:SD)接口标准、超高速一代(UltraHighSpeed-I,简称:UHS-I)接口标准、超高速二代(UltraHighSpeed-II,简称:UHS-II)接口标准、记忆棒(MemoryStick,简称:MS)接口标准、多媒体存储卡(MultiMediaCard,简称:MMC)接口标准、嵌入式多媒体存储卡(EmbeddedMultimediaCard,简称:eMMC)接口标准、通用快闪存储器(UniversalFlashStorage,简称:UFS)接口标准、小型快闪(CompactFlash,简称: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个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存 储器模块。图5是本发明的一范例实施例所示出的可复写式非易失性存储器模块的概要方块图。图6是本发明的一范例实施例所示出的存储单元阵列的示意图。请参照图5,可复写式非易失性存储器模块406包括存储单元阵列502、字元线控制电路504、位元线控制电路506、行解码器(columndecoder)508、数据输入/输出缓冲器510与控制电路512。在本范例实施例中,存储单元阵列502可包括用以存储数据的多个存储单元602、多个选择栅漏极(selectgatedrain,简称:SGD)晶体管612与多个选择栅源极(selectgatesource,简称:SGS)晶体管614、以及连接此些存储单元的多条位元线604、多条字元线606、与共用源极线608(如图6所示)。存储单元602是以阵列方式(或立体堆叠的方式)配置在位元线604与字元线606的交叉点上。当从存储器控制电路单元404接收到写入指令或读取指令时,控制电路512会控制字元线控制电路504、位元线控制电路506、行解码器508、数据输入/输出缓冲器510来写入数据至存储单元阵列502或从存储单元阵列502中读取数据,其中字元线控制电路504用以控制施予至字元线606的电压,位元线控制电路506用以控制施予至位元线604的电压,行解码器508依据指令中的列地址以选择对应的位元线,并且数据输入/输出缓冲器510用以暂存数据。可复写式非易失性存储器模块406中的每一个存储单元是以临界电压的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,因而改变了存储单元的临界电压。此改变临界电压的程序也称为“把数据写入至存储单元”或“编程存储单元”。随着临界电压的改变,存储单元阵列502的每一个存储单元具有多个存储状态。并且通过读取电压可以判断存储单元是属于哪一个存储状态,借此取得存储单元所存储的一或多个比特。图7是本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图7,存储器控制电路单元404包括存储器管理电路702、主机接口704、存储器接口706及错误检查与校正电路708。存储器管理电路702用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路702具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与擦除等运作。以下说明存储器管理电路702的操作时,等同于说明存储器控制电路单元404的操作。在本范例实施例中,存储器管理电路702的控制指令是以软件型式来实作。例如,存储器管理电路702具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与擦除等运作。在另一范例实施例中,存储器管理电路702的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路702具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被使能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路702的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与擦除等运作。此外,在另一范例实施例中,存储器管理电路702的控制指令也可以一硬件型式来实作。例如,存储器管理电路702包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路是电性连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的物理擦除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据;存储器擦除电路用以对可复写式非易失性存储器模块406下达擦除指令序列以将数据从可复写式非易失性存储器模块406中擦除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写 式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及擦除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及擦除等操作。主机接口704是电性连接至存储器管理电路702并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口704来传送至存储器管理电路702。在本范例实施例中,主机接口704是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口704也可以是兼容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。存储器接口706是电性连接至存储器管理电路702并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会通过存储器接口706转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路702要存取可复写式非易失性存储器模块406,存储器接口706会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示擦除数据的擦除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收程序等等)的相对应的指令序列,在此不一一赘述。这些指令序列例如是由存储器管理电路702产生并且通过存储器接口706传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。错误检查与校正电路708是电性连接至存储器管理电路702并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路702从主机系统11中接收到写入指令时,错误检查与校正电路708会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,简称:ECC)和/或错误检查码(errordetectingcode,简称:EDC),并且存储器管理电路702会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路702从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正 码和/或错误检查码,并且错误检查与校正电路708会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。在一范例实施例中,存储器控制电路单元404还包括缓冲存储器710与电源管理电路712。缓冲存储器710是电性连接至存储器管理电路702并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路712是电性连接至存储器管理电路702并且用以控制存储器存储装置10的电源。图8是本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。必须了解的是,在此描述可复写式非易失性存储器模块406的物理擦除单元的运作时,以“选择”、“分组”、“划分”、“关联”等词来操作物理擦除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的物理擦除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的物理擦除单元进行操作。可复写式非易失性存储器模块406的存储单元会构成多个物理编程单元,并且此些物理编程单元会构成多个物理擦除单元。具体来说,同一条字元线上的存储单元会组成一或多个物理编程单元。若每一个存储单元可存储2个以上的比特,则同一条字元线上的物理编程单元至少可被分类为下物理编程单元与上物理编程单元。例如,一存储单元的最低有效比特(LeastSignificantBit,简称:LSB)是属于下物理编程单元,并且一存储单元的最高有效比特(MostSignificantBit,简称:MSB)是属于上物理编程单元。一般来说,在MLCNAND型快闪存储器中,下物理编程单元的写入速度会大于上物理编程单元的写入速度,或下物理编程单元的可靠度是高于上物理编程单元的可靠度。在此范例实施例中,物理编程单元为编程的最小单元。即,物理编程单元为写入数据的最小单元。例如,物理编程单元为物理页面或是物理扇(sector)。若物理编程单元为物理页面,则每一个物理编程单元通常包括数据比特区与冗余比特区。数据比特区包含多个物理扇,用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个物理扇,且一个物理扇的大小为512比特组(byte,简称:B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的物理扇,本发明并不限制物理扇的大小以及个数。 另一方面,物理擦除单元为擦除的最小单位。也即,每一物理擦除单元含有最小数目之一并被擦除的存储单元。例如,物理擦除单元为物理区块。请参照图8,存储器管理电路702可将可复写式非易失性存储器模块406的物理擦除单元800(0)~800(R)逻辑地划分为多个区域,例如为存储区802与系统区806。存储区802的物理擦除单元是用以存储来自主机系统11的数据。存储区802中会存储有效数据与无效数据。例如,当主机系统要删除一份有效数据时,被删除的数据可能还是存储在存储区802中,但会被标记为无效数据。没有存储有效数据的物理擦除单元也被称为闲置(spare)物理擦除单元。例如,被擦除以后的物理擦除单元便会成为闲置物理擦除单元。若存储区802或系统区806中有物理擦除单元损坏时,存储区802中的物理擦除单元也可以用来替换损坏的物理擦除单元。倘若存储区802中没有可用的物理擦除单元来替换损坏的物理擦除单元时,则存储器管理电路702可能会将整个存储器存储装置10宣告为写入保护(writeprotect)状态,而无法再写入数据。此外,有存储有效数据的物理擦除单元也被称为非闲置(non-spare)物理擦除单元。系统区806的物理擦除单元是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的物理擦除单元数、每一物理擦除单元的物理编程单元数等。存储区802与系统区806的物理擦除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,物理擦除单元关联至存储区802与系统区806的分组关系可能会动态地变动。例如,当系统区806中的物理擦除单元损坏而被存储区802的物理擦除单元取代时,则原本在存储区802的物理擦除单元会被关联至系统区806。存储器管理电路702会配置逻辑单元810(0)~810(D)以映射至存储区802中的物理擦除单元800(0)~800(A)。例如,在本范例实施例中,主机系统11是通过逻辑地址来存取存储区802中的数据,因此,每一个逻辑单元810(0)~810(D)是指一个逻辑地址。此外,在一范例实施例中,每一个逻辑单元810(0)~810(D)也可以是指一个逻辑扇、一个逻辑编程单元、一个逻辑擦除单元或者由多个连续的逻辑地址组成。每一个逻辑单元810(0)~810(D)是映射至一或多个物理单元。在本范例实施例中,一个物理单元是指一个物理擦除 单元。然而,在另一范例实施例中,一个物理单元也可以是一个物理地址、一个物理扇、一个物理编程单元或者是由多个连续的物理地址组成,本发明不加以限制。存储器管理电路702会将逻辑单元与物理单元之间的映射关系记录于至少一逻辑-物理映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路702可根据此逻辑-物理映射表来执行对于存储器存储装置10的数据存取。图9是本发明的一范例实施例所示出的多个存储单元的临界电压分布的示意图。请参照图9,横轴代表存储单元的临界电压,而纵轴代表存储单元个数。例如,图9是表示一个物理单元中各个存储单元的临界电压。在此假设当某一个存储单元的临界电压是落在分布901时,此存储单元所存储的是比特“1”;若某一个存储单元的临界电压是落在分布902时,此存储单元所存储的是比特“0”。值得一提的是,在本范例实施例中,每一个存储单元是用以存储一个比特,故临界电压的分布有两种可能。然而,在其他范例实施例中,若一个存储单元是用以存储多个比特,则对应的临界电压的分布则可能有四种、八种或其他任意个可能。此外,本发明也不限制每一个分布所代表的比特。例如,在图9的另一范例实施例中,分布901是代表比特“0”,并且分布902是代表比特“1”。若要从可复写式非易失性存储器模块406读取数据,存储器管理电路702会发送一读取指令序列至可复写式非易失性存储器模块406。此读取指令序列用以指示读取某一逻辑单元或物理单元中的多个存储单元以取得多个比特。例如,根据此读取指令序列,可复写式非易失性存储器模块406会根据读取电压电平Vread-0来读取多个存储单元并且将所获得的比特数据传送给存储器管理电路702。例如,若某一个存储单元的临界电压小于读取电压电平Vread-0(例如,属于分布901的存储单元),则存储器管理电路702会读到比特“1”;若某一个存储单元的临界电压大于读取电压电平Vread-0(例如,属于分布902的存储单元),则存储器管理电路702会读到比特“0”。然而,随着可复写式非易失性存储器模块406的使用时间增加和/或操作环境改变,分布901与902会发生性能衰退(degradation)。发生性能衰退后,分布901与902可能会逐渐相互靠近甚至相互重叠。例如,分布911与分布 912分别用来表示性能衰退后的分布901与902。分布911与分布912包含一个重叠区域913(以斜线表示)。重叠区域913表示有一些存储单元中所存储的应该是比特“1”,但其临界电压大于读取电压电平Vread-0;或者,有一些存储单元中所存储的应该是比特“0”,但其临界电压小于读取电压电平Vread-0。发生性能衰退后,若持续使用读取电压电平Vread-0来读取属于分布911或分布912的存储单元,则读取到的比特可能会包含较多错误。例如,将属于分布911的存储单元误判为属于分布912,或者将属于分布912的存储单元误判为属于分布911。因此,在本范例实施例中,错误检查与校正电路708会对读取到的比特数据进行解码,从而更正其中的错误。在本范例实施例中,若要将数据存储至可复写式非易失性存储器模块406中,错误检查与校正电路708会编码欲存储至可复写式非易失性存储器模块406的数据并产生一个编码单元。例如,此编码单元是由编码后的数据组成。此编码单元是属于区块码。尔后,存储器管理电路702会发送一个写入指令序列至可复写式非易失性存储器模块406。此写入指令序列用以指示将此编码单元存储在可复写式非易失性存储器模块406中的一个区域。例如,此区域可以是至少一个物理单元并且包括多个存储单元(以下也称为第一存储单元)。根据此写入指令序列,可复写式非易失性存储器模块406会将此编码单元存储至此些第一存储单元中。尔后,当存储器管理电路702指示读取此区域中的数据时,可复写式非易失性存储器模块406会从此些第一存储单元中读取此编码单元,并且错误检查与校正电路708会执行对应的解码程序以解码此编码单元。图10是本发明的一范例实施例所示出的区块码的示意图。请参照图10,编码单元1010属于区块码并且包括比特b11~bnm。比特b11~bnm可被分组为子编码单元1020(1)~1020(n)。每一个子编码单元1020(1)~1020(n)具有m个比特。n与m都可以是大于1的任意正整数。在本范例实施例中,编码单元1010中部分的比特(以下也称为预设比特)是由多个编码程序所决定。例如,可将编码方向为行(row)方向(例如,由左至右)的编码程序视为第一类编码程序,并将编码方向为列方向(例如,由上至下)的编码程序视为第二类编码程序。在一范例实施例中,第一类编码程序也称为行(row)编码程序,而第二类编码程序也称为列(column)编码程序。在本范例实施例中,第一类编码程序会先被执行,而根据第一类编码程序的编码结果,第二类编码程序会接续被执行。例如,假设欲存储的使用者数据包含比特b11~b1p、b21~b2p、…、br1~brp(以斜线表示),则在第一类编码程序中,比特b11~b1p、b21~b2p、…、br1~brp会分别被编码以获得比特b11~b1m(即,子编码单元1020(1))、b21~b2m(即,子编码单元1020(2))、…、br1~brm(即,子编码单元1020(n))。比特b1q~b1m为对应于比特b11~b1p的错误更正码,比特b2q~b2m为对应于比特b21~b2p的错误更正码,比特brq~brm为对应于比特br1~brp的错误更正码,以此类推,其中q等于p+1。在获得子编码单元1020(1)~1020(n)之后,第二类编码程序会被执行。例如,在第二类编码程序中,比特b11~br1(即,每一个子编码单元1020(1)~1020(n)中的第1个比特)、比特b12~br2(即,每一个子编码单元1020(1)~1020(n)中的第2个比特)、…、比特b1m~brm(即,每一个子编码单元1020(1)~1020(n)中的第m个比特)会分别被编码以获得比特b11~bn1、b12~bn2、…、b1m~bnm。比特bs1~bn1为对应于比特b11~br1的错误更正码,比特bs2~bn2为对应于比特b12~br2的错误更正码,比特bsm~bnm为对应于比特b1m~brm的错误更正码,以此类推,其中s等于r+1。在将编码单元1010读取出来之后,对应于所采用的编码顺序,编码单元1010会被解码。例如,在本范例实施例中,解码方向为列方向的解码程序(也称为第二类解码程序)会先被执行,而根据第二类解码程序的解码结果,解码方向为行方向的解码程序(也称为第一类解码程序)会接续被执行。例如,在第二类解码程序中,比特bs1~bn1、bs2~bn2、…、bsm~bnm会被分别用来对比特b11~br1、b12~br2、…、b1m~brm进行解码。在获得解码后的比特b11~br1、b12~br2、…、b1m~brm之后,第一类解码程序会被执行。例如,在第一类解码程序中,由第二类解码程序解码后的比特b1q~b1m、b2q~b2m、…、brq~brm会分别被用来对由第二类解码程序解码后的比特b11~b1p、b21~b2p、…、br1~brp进行解码以获得解码后的使用者数据。值得一提的是,上述范例实施例中提及的编码单元的组成以及编/解码顺序只是一个范例而非用以限制本发明。例如,在另一范例实施例中,所产生的错误更正码也可以是排列在对应的使用者数据之前或者穿插在对应的使用者数据中。例如,在一范例实施例中,在编码使用者数据时,也可以是先执行第二类编码程序,然后再依照第二类编码程序的编码结果执行第一类编码 程序;相对应的,在解码编码单元时,也可以是先执行第一类解码程序,然后再根据第一类解码程序的解码结果来执行第二类解码程序。此外,在另一范例实施例中,若在编码使用者数据时是先执行第一类编码程序再执行第二类编码程序,则在解码编码单元时也可以是先执行第一类解码程序再执行第二类解码程序;或者,若在编码使用者数据时是先执行第二类编码程序再执行第一类编码程序,则在解码编码单元时也可以是先执行第二类解码程序再执行第一类解码程序。在本范例实施例中,第一类编码程序(或第一类解码程序)与第二类编码程序(或第二类解码程序)的编码方向不同,但是第一类编码程序(或第一类解码程序)与第二类编码程序(或第二类解码程序)可采用相同或不同的编/解码算法。例如,第一类编码程序与对应的第一类解码程序可以是包含低密度奇偶检查校正码(lowdensityparitycode,简称:LDPC)、BCH码及里德-所罗门码(Reed-solomoncode,简称:RScode)、方块涡轮码(blockturbocode,简称:BTC)等各式编/解码算法的至少其中之一;而第二类编码程序与对应的第二类解码程序也可以是包含上述编/解码算法的至少其中之一或者其他类型的编/解码算法,本发明不加以限制。此外,在图10的另一范例实施例中,用以产生编码单元1010的多个编码/解码程序的方向也可以是任意方向或符合任意规则,而不限于上述行方向与列方向。例如,在一范例实施例中,也可以是沿着对角线方向来对比特b11、b22、b33等进行编码,而解码时则可以沿着对角线方向来对特定的比特执行解码。或者,在另一范例实施例中,编/解码时也可以跳过某些行、某些列或某些比特等等。在本范例实施例中,存储器管理电路702会从主机系统11接收一读取指令。此读取指令例如是指示读取映射至第一存储单元所在的物理单元的至少一逻辑单元。根据此读取指令,存储器管理电路702会发送一读取指令序列(以下也称为硬决策读取指令序列)至可复写式非易失性存储器模块406。此外,在另一范例实施例中,此硬决策读取指令序列也可能是在执行垃圾回收(garbagecollection)等任意存储器内部的数据管理程序时被使用。此硬决策读取指令序列用以指示以一读取电压电平(以下也称为硬决策读取电压电平)来从第一存储单元读取数据。此硬决策读取电压电平可以是指定于硬决策读取指令序列中或者由可复写式非易失性存储器模块406根据此硬决策读取指令 序列自行查表而获得。根据硬决策读取指令序列,可复写式非易失性存储器模块406会施予对应于此硬决策读取电压电平的一个读取电压(例如,图9中的读取电压电平VRead-0)至第一存储单元并且据以回传多个比特数据。此些比特数据可组成一个编码单元(以下也称为硬决策编码单元)。此硬决策编码单元属于区块码。关于区块码的介绍已详述于上,故在此便不赘述。然后,错误检查与校正电路708会对此硬决策编码单元执行一解码程序(以下也称为硬决策解码程序)。在本范例实施例中,硬决策解码程序是属于叠代解码程序。例如,在硬决策解码程序中,错误检查与校正电路708会执行至少一次的叠代解码运算,以通过叠代地更新硬决策编码单元中至少一个比特的可靠度信息(例如,解码初始值)来提高硬决策编码单元的解码成功率。每一次的叠代解码运算可包含相同或相似于图10的范例实施例所介绍的解码操作。一般来说,根据硬决策编码单元中错误(也称为错误比特)的数目,硬决策解码程序可能成功或失败。例如,经过至少一次的叠代解码运算之后,若硬决策解码程序成功(例如,错误检查与校正电路708判定硬决策编码单元中的错误都已被更正),则错误检查与校正电路708会输出解码后的硬决策编码单元。例如,此解码后的硬决策编码单元可被传送至主机系统11或用以执行其他操作(例如,回存至可复写式非易失性存储器模块406中原始或其他的存储单元)。反之,若因为硬决策编码单元中错误比特的数目过多和/或此些错误比特的分布刚好处于无法被更正的位置等等,错误检查与校正电路708可能会因为所执行的叠代解码运算的次数达到一预设次数而判定硬决策解码程序失败。此外,虽然在本范例实施例中硬决策解码程序是属于叠代解码程序,然而,在另一范例实施例中,硬决策解码程序也可以是属于非叠代解码程序。若硬决策解码程序失败,存储器管理电路702会发送另一读取指令序列(以下也称为第一软决策读取指令序列)至可复写式非易失性存储器模块406。第一软决策读取指令序列用以指示根据另一读取电压电平(以下也称为第一软决策读取电压电平)来从第一存储单元读取数据。例如,此第一软决策读取电压电平可以指定在第一软决策读取指令序列中,或者也可以由可复写式非易失性存储器模块406根据第一软决策读取指令序列自行查表而获得。在接收到第一软决策读取指令序列之后,可复写式非易失性存储器模块 406会以此第一软决策读取电压电平来读取第一存储单元以获得另一编码单元(以下也称为第一软决策编码单元)。例如,根据第一软决策读取指令序列,可复写式非易失性存储器模块406会施予对应于此第一软决策读取电压电平的一个读取电压至第一存储单元并且据以回传多个比特数据。此些比特数据可组成此第一软决策编码单元。此第一软决策编码单元也属于区块码。然后,错误检查与校正电路708会对第一软决策编码单元执行另一解码程序(以下也称为第一软决策解码程序)。若第一软决策解码程序成功,错误检查与校正电路708会输出解码后的第一软决策编码单元。例如,此解码后的第一软决策编码单元可被传送至主机系统11或用以执行其他操作。然而,若第一软决策解码程序失败,存储器管理电路702会发送另一读取指令序列(以下也称为第二软决策读取指令序列)至可复写式非易失性存储器模块406。第二软决策读取指令序列用以指示根据另一读取电压电平(以下也称为第二软决策读取电压电平)来从第一存储单元读取数据。在接收到第二软决策读取指令序列之后,可复写式非易失性存储器模块406会以此第二软决策读取电压电平来读取第一存储单元以获得另一编码单元(以下也称为第二软决策编码单元)。例如,根据第二软决策读取指令序列,可复写式非易失性存储器模块406会施予对应于此第二软决策读取电压电平的一个读取电压至第一存储单元并且据以回传多个比特数据。此些比特数据可组成此第二软决策编码单元。此第二软决策编码单元也属于区块码。然后,错误检查与校正电路708会对第二软决策编码单元执行另一解码程序(以下也称为第二软决策解码程序)。在一范例实施例中,在执行第一软决策解码程序与执行第二软决策解码程序之间还可以包括执行其他的软决策解码程序。例如,在一范例实施例中,在第一软决策解码程序失败之后,另一软决策读取电压电平会被用来读取第一存储单元以获得另一软决策编码单元,并且另一软决策解码程序(以下也称为第三软决策解码程序)会被执行。在此第三软决策解码程序失败之后,上述获得第二软决策编码单元并执行第二软决策解码程序的操作才会被执行。此外,更多或更少的软决策读取电压电平可以被决定并使用,更多或更少的软决策解码程序也可以被执行,在此便不赘述。值得一提的是,本文的范例实施例中提及的“硬决策”与“软决策”只 是用来区别对应的读取操作与解码操作。例如,在一范例实施例中,软决策解码程序一定是在硬决策解码程序失败之后执行。然而,在另一范例实施例中,若根据通道状态(例如,存储单元的损耗程度或临界电压分布)而在执行解码之前就识别出某一笔已编码数据的解码难度较高,则也可以不执行硬决策解码程序而直接读取软决策编码单元并执行对应的软决策解码程序。在本范例实施例中,第一软决策读取电压电平与第二软决策读取电压电平之间的差值与第一存储单元的损耗程度有关。例如,第一存储单元的损耗程度与第一存储单元的使用状况或当前操作环境有关。例如,若第一存储单元的读取次数、第一存储单元的写入次数和/或第一存储单元的擦除次数增加,则第一存储单元的损耗程度可能会对应增加。例如,若某数据存放在第一存储单元中的时间区间增加,则第一存储单元的损耗程度可能会对应增加。例如,若当前可复写式非易失性存储器模块106的操作环境的温度或湿度太高或太低,则第一存储单元的损耗程度也可能会对应增加。此外,第一存储单元的损耗程度也可能会与存储在第一存储单元中的数据的正确性/错误率有关。例如,若第一存储单元的损耗程度越高,则存储在第一存储单元中的数据的正确性越低或者存储在第一存储单元中的数据的错误率越高。在一范例实施例中,第一存储单元的损耗程度可以用一个损耗程度值来表示。此损耗程度值的大小可以是与第一存储单元的损耗程度成正相关或负相关。例如,若损耗程度值越大,表示第一存储单元的损耗程度越高,则此损耗程度值的大小是正相关于第一存储单元的损耗程度;若损耗程度值越大,表示第一存储单元的损耗程度越低,则此损耗程度值的大小是负相关于第一存储单元的损耗程度。根据第一存储单元的损耗程度(例如,损耗程度值),存储器管理电路702可以决定第一软决策读取电压电平与第二软决策读取电压电平。在本范例实施例中,第一软决策读取电压电平与第二软决策读取电压电平之间的差值与第一存储单元的损耗程度成负相关。也就是说,若第一存储单元的损耗程度越高,则第一软决策读取电压电平与第二软决策读取电压电平之间的差值会越小;若第一存储单元的损耗程度越低,则第一软决策读取电压电平与第二软决策读取电压电平之间的差值会越大。一般来说,存储单元的损耗程度往往会影响到存储单元的临界电压分布,因此,在一范例实施例中,存储器管理电路702也可以根据第一存储单元的 电压分布状态(即,临界电压分布状态)来决定第一软决策读取电压电平与第二软决策读取电压电平。第一存储单元的电压分布状态可以是通过扫描至少部分的第一存储单元、根据存储单元的损耗程度值来查表、或者通过分析某一次的解码程序(例如,硬决策解码程序)中统计的错误(即,错误比特)的数目等方式获得,本发明并不限制获得第一存储单元的电压分布状态的作法。此外,在一范例实施例中,存储器管理电路702是通过分析第一存储单元完整的电压分布状态来决定第一软决策读取电压电平与第二软决策读取电压电平。然而,在另一范例实施例中,存储器管理电路702也可以仅分析第一存储单元的电压分布状态中错误率较高的区域(例如,图9中的重叠区域913及其附近)即可决定第一软决策读取电压电平与第二软决策读取电压电平,而不需要去获得第一存储单元完整的电压分布状态,以节省操作时间。在一范例实施例中,存储器管理电路702可以根据第一存储单元的电压分布状态中相邻的两个状态(也称为第一状态与第二状态)之间的间隙宽度和/或此两个状态的重叠程度来决定第一软决策读取电压电平与第二软决策读取电压电平。例如,在一范例实施例中,第一存储单元的电压分布状态中相邻的两个状态之间的间隙宽度会与第一软决策读取电压电平与第二软决策读取电压电平之间的差值成正相关。例如,若第一状态与第二状态之间的间隙宽度越大,则第一软决策读取电压电平与第二软决策读取电压电平之间的差值也越大。此间隙宽度可以是指相邻的两个状态的最高峰之间的距离,或者也可以是指相邻的两个状态的相邻的两个端点(例如,图9中,分布901的右端点与分布902的左端点)之间的距离。此外,在一范例实施例中,第一存储单元的电压分布状态中相邻的两个状态的重叠程度会与第一软决策读取电压电平与第二软决策读取电压电平之间的差值成负相关。例如,若第一状态与第二状态的重叠程度越高(例如,图9中重叠区域913中存储单元的数目越多),则第一软决策读取电压电平与第二软决策读取电压电平之间的差值也越大。图11是本发明的一范例实施例所示出的软决策读取电压电平与存储单元的临界电压分布状态的示意图。请参照图11,假设每一个第一存储单元用以存储一个比特数据并且在4个时间点(即,第一时间点、第二时间点、第三时间点及第四时间点),第一存储单元的电压分布状态分别为电压分布状态1110、1120、1130及1140。在本范例实施例中,电压分布状态1120中的状态1121与1122之间的间隙宽度小于电压分布状态1110中的状态1111与1112之间的间隙宽度,因此,对应于电压分布状态1120而可以被使用的软决策读取电压电平VRead-4~VRead-6中任两个相邻的软决策读取电压电平之间的差值会小于对应于电压分布状态1110而可以被使用的软决策读取电压电平VRead-1~VRead-3中任两个相邻的软决策读取电压电平之间的差值。在本范例实施例中,电压分布状态1130中的状态1131与1132相互重叠,故状态1131与1132之间不具有间隙(即,间隙宽度为零)。因此,对应于电压分布状态1130而可以被使用的软决策读取电压电平VRead-7~VRead-11中任两个相邻的软决策读取电压电平之间的差值会小于对应于电压分布状态1120而可以被使用的软决策读取电压电平VRead-4~VRead-6中任两个相邻的软决策读取电压电平之间的差值。在本范例实施例中,电压分布状态1140中的状态1141与1142的重叠程度大于电压分布状态1130中的状态1131与1132的重叠程度,因此,软决策读取电压电平VRead-12~VRead-18中任两个相邻的软决策读取电压电平之间的差值会小于软决策读取电压电平VRead-7~VRead-11中任两个相邻的软决策读取电压电平之间的差值。一般来说,若存储单元的电压分布状态中相邻的状态之间的间隙宽度越小或相邻的状态的重叠程度越高,则从此些存储单元读取出来的数据所包含的错误比特的数目往往越多,并且可能需要执行更多次的软决策解码程序才能成功地将读取出来的数据解码。因此,在一范例实施例中,除了缩小所使用的软决策读取电压电平之间的差值之外,还可以增加可以使用的软决策读取电压电平的数目,来提升解码成功率。例如,在图11的范例实施例中,电压分布状态1140中的状态1141与1142的重叠程度大于电压分布状态1130中的状态1131与1132的重叠程度,因此,对应于电压分布状态1140而可以被使用的软决策读取电压电平VRead-12~VRead-18的数目会被设定为多于对应于电压分布状态1130而可以被使用的软决策读取电压电平VRead-7~VRead-11的数目。依此类推,在另一范例实施例中,随着相邻的状态之间的间隙宽度改变,对应可以被使用的软决策读取电压电平的数目也可以被增加或减少。在一范例实施例中,对应于第一存储单元当前的电压分布状态或损耗程 度而决定的多个软决策读取电压电平可以视为是属于同一个软决策读取电压电平组。属于同一个软决策读取电压电平组的多个软决策读取电压电平中任两个相邻的软决策读取电压电平之间的差值可以相同或不同。若硬决策解码程序失败,则对应的软决策读取电压电平组中的多个软决策读取电压电平可以逐一被用来读取对应的软决策编码单元。例如,以图11中的软决策读取电压电平VRead-12~VRead-18为例,若硬决策解码程序失败,则软决策读取电压电平VRead-12会先被用来读取第一存储单元并且一个软决策解码程序会被执行;若此软决策解码程序失败,则软决策读取电压电平VRead-13会接续被用来读取第一存储单元并且一个对应的软决策解码程序会被执行;若此软决策解码程序仍失败,则软决策读取电压电平VRead-14会接续被用来读取第一存储单元并且一个对应的软决策解码程序会被执行;若此软决策解码程序仍失败,则软决策读取电压电平VRead-15会接续被用来读取第一存储单元并且一个对应的软决策解码程序会被执行;若此软决策解码程序仍失败,则软决策读取电压电平VRead-16会接续被用来读取第一存储单元并且一个对应的软决策解码程序会被执行,以此类推,直到某一个软决策解码程序成功或软决策读取电压电平组中所有的软决策读取电压电平都被使用过为止。此外,本发明并不限制属于同一个软决策读取电压电平组中的各个软决策读取电压电平的使用顺序。例如,在另一范例实施例中,软决策读取电压电平VRead-12~VRead-18是依照电压值的大小或任意规则来依次被使用。在一范例实施例中,属于同一个软决策读取电压电平组的各个软决策读取电压电平可以被一次性地决定。例如,根据第一存储单元的损耗程度,记录有对应的软决策读取电压电平组的查找表可以被选择或产生并且此软决策读取电压电平组中所有的软决策读取电压电平可被获得。然而,在另一范例实施例中,属于同一个软决策读取电压电平组的各个软决策读取电压电平则是在需要使用到时才会即时地决定。例如,在一范例实施例中,若硬决策解码程序失败,则只有软决策读取电压电平VRead-12会先被决定并且被使用;尔后,若对应于软决策读取电压电平VRead-12的软决策解码程序也失败,则属于同一个软决策读取电压电平组的下一个软决策读取电压电平才会接续被决定并且被使用。在一范例实施例中,若硬决策解码程序失败,存储器管理电路702会执 行一个最佳读取电压电平追踪程序(optimalreadvoltageleveltrackingprocess)以决定对应于第一存储单元的最佳读取电压电平。例如,在图11的范例实施例中,在电压分布状态1110中,对应于第一存储单元的最佳读取电压电平可能是软决策读取电压电平VRead-1;在电压分布状态1120中,对应于第一存储单元的最佳读取电压电平可能是软决策读取电压电平VRead-4;在电压分布状态1130中,对应于第一存储单元的最佳读取电压电平可能是软决策读取电压电平VRead-7;在电压分布状态1140中,对应于第一存储单元的最佳读取电压电平可能是软决策读取电压电平VRead-12。属于同一个软决策读取电压电平组的其他软决策读取电压电平可以是根据此最佳读取电压电平来设定。例如,在一范例实施例中,存储器管理电路702可以根据第一存储单元的损耗程度或电压分布状态来决定任两个相邻的软决策读取电压电平之间的差值。关于如何根据第一存储单元的损耗程度或电压分布状态来决定两个相邻的软决策读取电压电平之间的差值已详述于上,在此便不重复赘述。在获得最佳读取电压电平之后,存储器管理电路702可以根据此最佳读取电压电平以及所决定的差值来逐一决定其他的软决策读取电压电平。例如,在图11的范例实施例中,在电压分布状态1140中,对应于第一存储单元的最佳读取电压电平是软决策读取电压电平VRead-12,则在决定一个差值之后,软决策读取电压电平VRead-13可以通过将软决策读取电压电平VRead-12减去此差值而获得,并且软决策读取电压电平VRead-14则可以通过将软决策读取电压电平VRead-12加上此差值而获得。在另一范例实施例中,所决定的差值也可以是同一个软决策读取电压电平组中电压值最大与最小的软决策读取电压电平之间的差值。例如,在图11的一范例实施例中,存储器管理电路702可以根据第一存储单元的损耗程度或电压分布状态来决定软决策读取电压电平VRead-17与VRead-18之间的差值。然后,存储器管理电路702可以根据软决策读取电压电平VRead-12以及软决策读取电压电平VRead-17与VRead-18之间的差值来设定软决策读取电压电平VRead-12~VRead-18。此外,在另一范例实施例中,所决定的差值也可以是任意两个不相邻的软决策读取电压电平之间的差值。在一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平的其中之一会是对应于第一存储单元的最佳读取电压电平。更具体来说,所述第一软决策读取电压电平与所述第二软决策读取电压电平的其 中之一是对应于第一存储单元当前的电压分布状态的最佳读取电压电平,并且所述第一软决策读取电压电平与所述第二软决策读取电压电平的其中之另一则是与此最佳读取电压电平相邻的软决策读取电压电平。然而,在另一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平则可以是指对应于第一存储单元当前的电压分布状态的软决策读取电压电平组中任意两个相邻的软决策读取电压电平(例如,图11中的软决策读取电压电平VRead-1与VRead-2)。或者,在另一范例实施例中,所述第一软决策读取电压电平与所述第二软决策读取电压电平也可以是指对应于第一存储单元当前的电压分布状态的软决策读取电压电平组中任意的两个不相邻的软决策读取电压电平(例如,图11中的软决策读取电压电平VRead-2与VRead-3)。请参照回图10,从图10的范例实施例可知,对应于某一行的第一类解码程序或对应于某一列的第二类解码程序都可能成功或失败。每一次执行的第一类解码程序是各自独立的,并且每一次执行的第二类解码程序也是各自独立的。例如,对于子编码单元1020(1)的第一类解码程序可能成功或失败,并且对于子编码单元1020(2)的第一类解码程序也可能成功或失败,两者可能无关。因此,即使对于某一个编码单元的解码程序失败,但其中仍然可能存在成功解码的行、列或者比特。在一范例实施例中,在执行解码程序的过程中,部分成功被解码(或,更正)的位置上的比特值可以被视为是正确的比特值并且被记录下来。例如,在第一软决策解码程序中,若某一个行或列被解码成功,则这个行或列中各个位置的比特值可以被记录下来。尔后,若第一软决策解码程序失败,则在执行第二软决策解码程序之前,存储器管理电路702会将所获得的第二软决策编码单元中的至少一个比特设定为在先前的第一软决策解码程序(或,硬决策解码程序)中决定(或,更正)的至少一比特值。例如,在图10的范例实施例中,假设对于所获得的编码单元1010的解码是失败的但解码结果表示编码单元1010中的比特b11是正确的,则比特b11的比特值会被记录下来。在后续调整读取电压电平来读取同一笔数据并且对读取出的数据执行的下一次解码中,所读取出的编码单元中在同一个位置上的比特b11会被直接更正为先前被记录的比特值。换言之,在根据不同的读取电压电平执行对应的解码程序的过程中,每一次所获得的编码单元中部分已经在先前的解码程序中被成功解码 的比特可逐渐地被决定(例如,被更正)。例如,在图11的范例实施例中,在逐一使用软决策读取电压电平VRead-12~VRead-18中的一部分软决策读取电压电平来读取软决策编码单元并执行对应的软决策解码程序之后,即使所执行的软决策解码程序还是失败,但下一次的软决策解码程序中真正需要被解码的比特(即,还没有被成功地解码的比特)的数目会逐渐减少。借此,接下来的软决策解码程序的解码成功率将可逐渐提升。此外,本发明并不限制可以传递下去的额外的解码信息的种类,任何可以传递给下一次的解码程序使用的解码信息都可以被记录下来并且在下一次的解码程序中被采用。在一范例实施例中,硬决策解码程序中被成功解码出来的至少部分比特也可以被应用在后续执行的软决策解码程序(例如,第一软决策解码程序和/或第二软决策解码程序)中。相关的应用方式已详述于上,在此便不赘述。借此,即使前几次执行的硬决策解码程序与软决策解码程序都失败,但此些失败的解码程序仍可以对后续的解码程序作出帮助。值得一提的是,在一范例实施例中,使用硬决策读取电压电平所获得的硬决策编码单元的数据大小是与后续的每一次使用软决策读取电压电平所获得的软决策编码单元的数据大小相等。因此,在上述范例实施例中,用以暂存硬决策编码单元与软决策编码单元的暂存区的大小并不需要因为从执行硬决策解码程序切换为执行软决策解码程序而加大。此外,在上述范例实施例中,软决策解码程序所使用的算法/解码规则是相同或相似于硬决策解码程序的所使用的算法/解码规则,在此便不重复赘述。图12是本发明的一范例实施例所示出的解码方法的流程图。请参照图12,在步骤S1201中,接收一读取指令。在步骤S1202中,根据一个硬决策读取电压电平来读取可复写式非易失性存储器模块中的多个存储单元(例如,第一存储单元)以获得硬决策编码单元。此硬决策编码单元属于区块码。在步骤S1203中,对所述硬决策编码单元执行硬决策解码程序。在步骤S1204中,判断硬决策解码程序是否成功。若硬决策解码程序成功,在步骤S1205中,输出解码成功的数据(即,解码成功的硬决策编码单元)。若硬决策解码程序不成功(即,失败),在步骤S1206中,以一个软决策读取电压电平来读取所述存储单元(例如,第一存储单元)以获得一软决策编码单元。此软决策编码单元也属于区块码。在步骤S1207中,对所述软决策编码单元执行软决策 解码程序。在步骤S1208中,判断所执行的软决策解码程序是否成功。若所执行的软决策解码程序成功,执行步骤S1205。若所执行的软决策解码程序不成功(即,失败),在步骤S1209中,判断解码失败的软决策解码程序的次数是否超过一预设次数。若解码失败的软决策解码程序的次数没有超过此预设次数(即,还有可以使用的软决策读取电压电平),在步骤S1210中,改变软决策读取电压电平,并且步骤S1206会根据改变后的软决策读取电压电平而被重复执行。例如,在步骤S1210中,若软决策读取电压电平被从先前在步骤S1206中使用的第一软决策读取电压电平调整为电压值更大或更小的第二软决策读取电压电平,则在后续执行的步骤S1206中,第二软决策读取电压电平会被用来再次读取所述存储单元(例如,第一存储单元)。此外,若解码失败的软决策解码程序的次数已超过此预设次数(即,所有软决策读取电压电平都已被使用),则在步骤S1211中,执行一预设操作。例如,此预设操作可包括传送一读取失败信息至主机系统和/或执行其他的错误处理程序等等。值得一提的是,在图12的范例实施例中,所有可以使用的软决策读取电压电平是根据欲读取的存储单元(例如,第一存储单元)的损耗程度来决定(例如,通过查表或算法运算)。每一个可以使用的软决策读取电压电平可以是一起决定或需要用到时才分别决定。然而,图12中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图12中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图12的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,本发明可以根据存储单元的损耗程度来使用第一软决策读取电压电平与第二软决策读取电压电平分别读取属于区块码的第一软决策编码单元与第二软决策编码单元,并且分别执行对应的软决策解码程序。借此,可改善对于区块码的解码效率。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1