CN107608817B - 解码方法、存储器存储装置及存储器控制电路单元 - Google Patents
解码方法、存储器存储装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN107608817B CN107608817B CN201610543451.9A CN201610543451A CN107608817B CN 107608817 B CN107608817 B CN 107608817B CN 201610543451 A CN201610543451 A CN 201610543451A CN 107608817 B CN107608817 B CN 107608817B
- Authority
- CN
- China
- Prior art keywords
- codeword
- decoding
- preset
- decoding engine
- error
- 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.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种解码方法、存储器存储装置及存储器控制电路单元。此解码方法包括:从存储器模块中读取码字并评估码字的错误等级信息;通过第一信息通道与第二信息通道分别将码字与错误等级信息输入至错误检查与校正电路;判断错误等级信息是否符合预设条件;若是,将码字输入至错误检查与校正电路的第一解码引擎以解码此码字;否则,将码字输入至错误检查与校正电路的第二解码引擎以解码所述码字,其中第一解码引擎的耗电量低于第二解码引擎的耗电量,且第一解码引擎的解码成功率低于第二解码引擎的解码成功率。借此,本发明可在解码电路的耗电量与解码成功率之间取得平衡。
Description
技术领域
本发明是有关于一种解码技术,且特别是有关于一种解码方法、存储器存储装置及存储器控制电路单元。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储介质的需求也急速增加。由于可重写非易失性存储器模块(例如,闪速存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种便携式多媒体装置中。
在某些存储器装置中,数据会先被编码然后才会被存储。稍后,当需要读取此数据时,读取出来的数据会被解码,以尝试更正其中的错误。例如,此错误可能包括存储器模块本身引起的错误以及数据在传输过程中产生的通道噪声。一般来说,解码电路的耗电量与解码成功率是成负相关。也即,若解码电路采用解码成功率和/或复杂度越高的解码演算法,则执行解码所耗费的耗电量也越高。但是,某些时候使用简单的演算法也可以完成解码,并可节省耗电量。因此,如何在解码电路的耗电量与解码成功率之间取得平衡,实为本领域技术人员所致力研究的课题之一。
发明内容
本发明提供一种解码方法、存储器存储装置及存储器控制电路单元,可在解码电路的耗电量与解码成功率之间取得平衡。
本发明的一范例实施例提供一种解码方法,其用于包括多个物理单元的可重写非易失性存储器模块,所述解码方法包括:配置第一信息通道与第二信息通道于错误检查与校正电路中;从所述物理单元中的第一物理单元读取码字并评估所述码字的错误等级信息;通过所述第一信息通道将所述码字输入至所述错误检查与校正电路并通过所述第二信息通道将所述码字的所述错误等级信息输入至所述错误检查与校正电路;判断所述码字的所述错误等级信息是否符合预设条件;若所述码字的所述错误等级信息符合所述预设条件,将所述码字输入至所述错误检查与校正电路的第一解码引擎并由所述第一解码引擎解码所述码字;以及若所述码字的所述错误等级信息不符合所述预设条件,将所述码字输入至所述错误检查与校正电路的第二解码引擎并由所述第二解码引擎解码所述码字,其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。
在本发明的一范例实施例中,判断所述码字的所述错误等级信息是否符合所述预设条件的步骤包括:若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于预设校验子总合中的任一个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
在本发明的一范例实施例中,判断所述码字的所述错误等级信息是否符合所述预设条件的步骤包括:若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于预设校验子总合中的多个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
在本发明的一范例实施例中,评估所述码字的所述错误等级信息的步骤包括:对所述码字执行奇偶检验操作以获得所述码字的多个校验子;以及累加所述校验子以获得所述校验子总合。
在本发明的一范例实施例中,所述的解码方法还包括:若提供给所述错误检查与校正电路的电池电量低于预设电量且所述电池电量未连接至外部充电电源,直接将所述码字输入至所述第一解码引擎并由所述第一解码引擎解码所述码字。
在本发明的一范例实施例中,所述的解码方法还包括:若所述第一解码引擎未更正所述码字中的所有错误,将所述码字或所述第一解码引擎的解码结果输入至所述第二解码引擎。
本发明的另一范例实施例提供一种存储器存储装置,其包括连接接口单元、可重写非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述可重写非易失性存储器模块包括多个物理单元。所述存储器控制电路单元连接至所述连接接口单元与所述可重写非易失性存储器模块,所述存储器控制电路单元用以配置第一信息通道与第二信息通道于所述存储器控制电路单元的错误检查与校正电路中,所述存储器控制电路单元用以发送读取指令序列以指示从所述物理单元中的第一物理单元读取码字并评估所述码字的错误等级信息,所述存储器控制电路单元还用以通过所述第一信息通道将所述码字输入至所述错误检查与校正电路并通过所述第二信息通道将所述码字的所述错误等级信息输入至所述错误检查与校正电路,所述存储器控制电路单元还用以判断所述码字的所述错误等级信息是否符合预设条件,若所述码字的所述错误等级信息符合所述预设条件,所述存储器控制电路单元还用以将所述码字输入至所述错误检查与校正电路的第一解码引擎以由所述第一解码引擎解码所述码字,若所述码字的所述错误等级信息不符合所述预设条件,所述存储器控制电路单元还用以将所述码字输入至所述错误检查与校正电路的第二解码引擎以由所述第二解码引擎解码所述码字,其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。
在本发明的一范例实施例中,所述存储器控制电路单元判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于预设校验子总合中的任一个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
在本发明的一范例实施例中,所述存储器控制电路单元判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于预设校验子总合中的多个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
在本发明的一范例实施例中,所述存储器控制电路单元评估所述码字的所述错误等级信息的操作包括:对所述码字执行奇偶检验操作以获得所述码字的多个校验子;以及累加所述校验子以获得所述校验子总合。
在本发明的一范例实施例中,若提供给所述存储器控制电路单元的电池电量低于预设电量且所述电池电量未连接至外部充电电源,所述存储器控制电路单元还用以直接将所述码字输入至所述第一解码引擎以由所述第一解码引擎解码所述码字。
在本发明的一范例实施例中,若所述第一解码引擎未更正所述码字中的所有错误,所述存储器控制电路单元还用以将所述码字或所述第一解码引擎的一解码结果输入至所述第二解码引擎。
本发明的另一范例实施例提供一种存储器控制电路单元,其用于控制包括多个物理单元的可重写非易失性存储器模块,所述存储器控制电路单元包括主机接口、存储器接口、错误检查与校正电路及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可重写非易失性存储器模块。所述错误检查与校正电路包括第一解码引擎与第二解码引擎。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述错误检查与校正电路,所述存储器管理电路用以配置第一信息通道与第二信息通道于所述错误检查与校正电路中,所述存储器管理电路用以发送读取指令序列以指示从所述物理单元中的第一物理单元读取码字并评估所述码字的错误等级信息,所述存储器管理电路还用以通过所述第一信息通道将所述码字输入至所述错误检查与校正电路并通过所述第二信息通道将所述码字的所述错误等级信息输入至所述错误检查与校正电路,所述错误检查与校正电路用以判断所述码字的所述错误等级信息是否符合预设条件,若所述码字的所述错误等级信息符合所述预设条件,所述错误检查与校正电路还用以将所述码字输入至所述第一解码引擎并由所述第一解码引擎解码所述码字,若所述码字的所述错误等级信息不符合所述预设条件,所述错误检查与校正电路还用以将所述码字输入至所述第二解码引擎并由所述第二解码引擎解码所述码字,其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。
在本发明的一范例实施例中,所述错误等级信息包括所述码字的比特错误率、用于传输所述码字的传输媒介的通道噪声强度、所述第一物理单元的编程次数、所述第一物理单元的读取次数、所述第一物理单元的擦除次数、及所述码字的校验子总合的至少其中之一。
在本发明的一范例实施例中,所述错误检查与校正电路判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于预设校验子总合中的任一个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
在本发明的一范例实施例中,所述错误检查与校正电路判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于预设校验子总合中的多个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
在本发明的一范例实施例中,所述存储器管理电路评估所述码字的所述错误等级信息的操作包括:对所述码字执行奇偶检验操作以获得所述码字的多个校验子;以及累加所述校验子以获得所述校验子总合。
在本发明的一范例实施例中,若提供给所述存储器控制电路单元的电池电量低于预设电量且所述电池电量未连接至外部充电电源,所述错误检查与校正电路还用以直接将所述码字输入至所述第一解码引擎并由所述第一解码引擎解码所述码字。
在本发明的一范例实施例中,若所述第一解码引擎未更正所述码字中的所有错误,所述错误检查与校正电路还用以将所述码字或所述第一解码引擎的解码结果输入至所述第二解码引擎。
在本发明的一范例实施例中,若所述第一解码引擎基于比特翻转演算法执行低密度奇偶检验码的第一解码操作,则所述第二解码引擎基于梯度下降比特翻转演算法、最小总合演算法或总合乘积演算法执行所述低密度奇偶检验码的第二解码操作,若所述第一解码引擎基于所述梯度下降比特翻转演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述最小总合演算法或所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作,若所述第一解码引擎基于所述最小总合演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作。
基于上述,在获得欲解码的码字之后,此码字的错误等级信息会被评估并作为使用耗电量较低且解码成功率也较低的解码引擎或使用耗电量较高且解码成功率也较高的解码引擎来解码此码字的参考。借此,本发明可在解码电路的耗电量与解码成功率之间取得平衡。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图;
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图;
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;
图6是根据本发明的一范例实施例所示出的管理可重写非易失性存储器模块的示意图;
图7是根据本发明的一范例实施例所示出的奇偶检验矩阵的示意图;
图8是根据本发明的一范例实施例所示出的存储单元的阈值电压分布的示意图;
图9是根据本发明的一范例实施例所示出的奇偶检验操作的示意图;
图10是根据本发明的一范例实施例所示出的错误检查与校正电路的示意图;
图11是根据本发明的一范例实施例所示出的解码方法的流程图。
附图标记说明:
10:存储器存储装置;
11:主机系统;
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(A):物理单元;
610(A+1)~610(B):物理单元;
612(0)~612(C):逻辑单元;
700、900:奇偶检验矩阵;
801:读取电压;
810、820:状态;
830:重叠区域;
901:码字;
902:校验向量;
1001、1002:信息通道;
1010:决策电路;
1012、1014:暂存器;
1020、1030:解码引擎;
S1101:步骤(配置第一信息通道与第二信息通道于错误检查与校正电路中);
S1102:步骤(从第一物理单元读取码字并评估所述码字的错误等级信息);
S1103:步骤(通过第一信息通道将所述码字输入至错误检查与校正电路并通过第二信息通道将所述码字的错误等级信息输入至错误检查与校正电路);
S1104:步骤(判断所述码字的错误等级信息是否符合预设条件);
S1105:步骤(将所述码字输入至错误检查与校正电路的第一解码引擎并由第一解码引擎解码所述码字);
S1106:步骤(将所述码字输入至错误检查与校正电路的第二解码引擎并由第二解码引擎解码所述码字,其中第一解码引擎耗费在解码所述码字的第一耗电量低于第二解码引擎耗费在解码所述码字的第二耗电量,且第一解码引擎解码所述码字的第一解码成功率低于第二解码引擎解码所述码字的第二解码成功率)。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可重写非易失性存储器模块(rewritable non-volatile memory module)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess 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 High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,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可以是单阶存储单元(SingleLevel Cell,SLC)NAND型闪速存储器模块(即,一个存储单元中可存储1个比特的闪速存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型闪速存储器模块(即,一个存储单元中可存储2个比特的闪速存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型闪速存储器模块(即,一个存储单元中可存储3个比特的闪速存储器模块)、其他闪速存储器模块或其他具有相同特性的存储器模块。
可重写非易失性存储器模块406中的每一个存储单元是以电压(以下也称为阈值电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的阈值电压。此改变阈值电压的操作也称为“把数据写入至存储单元”或“编程存储单元”。随着阈值电压的改变,可重写非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,借此取得此存储单元所存储的一或多个比特。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504、存储器接口506及错误检查与校正电路508。
存储器管理电路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。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
错误检查与校正电路508是连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可重写非易失性存储器模块406中。之后,当存储器管理电路502从可重写非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器510与电源管理电路512。
缓冲存储器510是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可重写非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
图6是根据本发明的一范例实施例所示出的管理可重写非易失性存储器模块的示意图。必须了解的是,在以下范例实施例中描述可重写非易失性存储器模块406的物理单元的运作时,以“分组”等词来操作物理单元是逻辑上的概念。也就是说,可重写非易失性存储器模块406的物理单元的实际位置并未更动,而是逻辑上对可重写非易失性存储器模块406的物理单元进行操作。
在本范例实施例中,可重写非易失性存储器模块406的存储单元会构成多个物理编程单元,并且此些物理编程单元会构成多个物理擦除单元。具体来说,同一条字元线上的存储单元会组成一或多个物理编程单元。若每一个存储单元可存储2个以上的比特,则同一条字元线上的物理编程单元至少可被分类为下物理编程单元与上物理编程单元。例如,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下物理编程单元,并且一存储单元的最高有效比特(Most Significant Bit,MSB)是属于上物理编程单元。一般来说,在MLC NAND型闪速存储器中,下物理编程单元的写入速度会大于上物理编程单元的写入速度,和/或下物理编程单元的可靠度是高于上物理编程单元的可靠度。
在本范例实施例中,物理编程单元为编程的最小单元。即,物理编程单元为写入数据的最小单元。例如,物理编程单元为物理页面(page)或是物理扇(sector)。若物理编程单元为物理页面,则此些物理编程单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个物理扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个物理扇,且一个物理扇的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的物理扇,并且每一个物理扇的大小也可以是更大或更小。另一方面,物理擦除单元为擦除的最小单位。也即,每一物理擦除单元含有最小数目的一并被擦除的存储单元。例如,物理擦除单元为物理区块(block)。
请参照图6,存储器管理电路502会将可重写非易失性存储器模块406的物理单元610(0)~610(B)逻辑地分组为存储区601与替换区602。存储区601中的物理单元610(0)~610(A)是用以存储数据,而替换区602中的物理单元610(A+1)~610(B)则是用以替换存储区601中损坏的物理擦除单元。在本范例实施例中,物理单元610(0)~610(B)中的每一个物理单元是指一或多个物理擦除单元。然而,在另一范例实施例中,物理单元610(0)~610(B)中的每一个物理单元则是指一或多个物理编程单元或者由任意数目的存储单元所组成。
存储器管理电路502会配置逻辑单元612(0)~612(C)以映射存储区601中的物理单元610(0)~610(A)。例如,在本范例实施例中,主机系统11是通过逻辑地址(logicaladdress,LA)来存取存储区601中的数据,因此,逻辑单元612(0)~612(C)中的每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,逻辑单元612(0)~612(C)中的每一个逻辑单元也可以是指一个逻辑编程单元、一个逻辑擦除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(C)中的每一个逻辑单元可被映射至一或多个物理单元。
存储器管理电路502会将逻辑单元与物理单元之间的映射关系(也称为逻辑-物理映射关系)记录于至少一逻辑-物理映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-物理映射表来执行对于存储器存储装置10的数据存取。
在本范例实施例中,错误检查与校正电路508支持低密度奇偶检验(low-densityparity-check,LDPC)码。例如,错误检查与校正电路508可利用低密度奇偶检验码来编码与解码。在低密度奇偶检验码中,是用一个检查矩阵(也称为奇偶检验矩阵)来定义有效的码字。以下将奇偶检验矩阵标记为矩阵H,并且将一个码字标记为V。依照以下方程式(1),若奇偶检验矩阵H与码字V的相乘是零向量,表示码字V为有效的码字(valid codeword)。其中运算子表示模2(mod 2)的矩阵相乘。换言之,矩阵H的零空间(null space)便包含了所有的有效码字。然而,本发明并不限制码字V的内容。例如,码字V也可以包括用任意演算法所产生的错误更正码或是错误检查码。
在方程式(1)中,矩阵H的维度是k-乘-n(k-by-n),码字V的维度是1-乘-n,其中k与n皆为正整数。码字V中包括了信息比特与奇偶比特。例如,码字V可以表示成[U P],其中向量U是由信息比特所组成,而向量P是由奇偶比特所组成。向量U的维度是1-乘-(n-k),而向量P的维度是1-乘-k。在一范例实施例中,一个码字中的信息比特与奇偶比特统称为数据比特。例如,码字V具有n个数据比特,其中信息比特的长度为(n-k)比特,并且奇偶比特的长度是k比特。因此,码字V的码率(code rate)为(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不是有效的码字。
在方程式(5)中,向量S的维度是k-乘-1,并且向量S中的每一个元素也称为一个校验子(syndrome)。若码字V不是有效的码字,则错误检查与校正电路508会执行一个解码操作,以尝试更正码字V中的错误。
图7是根据本发明的一范例实施例所示出的奇偶检验矩阵的示意图。
请参照图7,奇偶检验矩阵700的维度是k-乘-n。例如,k为8,并且n为9。然而,本发明并不限制正整数k与n为多少。奇偶检验矩阵700的每一列(row)也代表了一限制(constraint)。以奇偶检验矩阵700的第一列为例,若某一个码字是有效码字,则将此码字中第3、5、8与第9个比特做模2的加法之后,会得到比特“0”。在此领域有通常知识者应能理解如何用奇偶检验矩阵700来编码,在此便不再赘述。此外,奇偶检验矩阵700仅为一个范例矩阵,实际使用的奇偶检验矩阵可视实务上的需求加以调整。当存储器管理电路502要将多个比特存储至可重写非易失性存储器模块406时,错误检查与校正电路508会对每(n-k)个欲存储的比特(即,信息比特)产生相应的k个奇偶比特。接下来,存储器管理电路502会把这n个比特(即,数据比特)作为一个码字写入至可重写非易失性存储器模块406。
图8是根据本发明的一范例实施例所示出的存储单元的阈值电压分布的示意图。
请参照图8,横轴代表存储单元的阈值电压,而纵轴代表存储单元个数。例如,图8是表示一个物理编程单元中各个存储单元的阈值电压分布,其中状态810对应于比特“1”并且状态820对应于比特“0”。若某一个存储单元的阈值电压属于状态810,表示此存储单元所存储的是比特“1”;相反地,若某一个存储单元的阈值电压属于状态820,表示此存储单元所存储的是比特“0”。值得一提的是,在本范例实施例中,阈值电压分布中的一个状态对应至一个比特值(即,“1”或“0”),并且存储单元的阈值电压分布有两种可能的状态(即,状态810与820)。然而,在其他范例实施例中,阈值电压分布中的每一个状态也可以对应至多个比特值(例如,“00”、“010”等)并且存储单元的阈值电压分布也可能有四种、八种或其他任意个状态。此外,本发明也不限制每一个状态所代表的比特。例如,在图8的另一范例实施例中,状态810也可以对应于比特“0”,而状态820则对应于比特“1”。
在本范例实施例中,当要从可重写非易失性存储器模块406读取数据时,存储器管理电路502会发送一读取指令序列至可重写非易失性存储器模块406,以指示可重写非易失性存储器模块406从一个物理单元(以下也称为第一物理单元)读取数据。例如,根据此读取指令序列,可重写非易失性存储器模块406可使用图8中的读取电压801来读取第一物理单元中的存储单元。若某一个存储单元的阈值电压小于读取电压801,则此存储单元会被导通并且存储器管理电路502会读到比特“1”。相反地,若某一个存储单元的阈值电压大于读取电压801,则此存储单元不会被导通并且存储器管理电路502会读到比特“0”。
在本范例实施例中,状态810与状态820之间包含一个重叠区域830。重叠区域830的面积正相关于阈值电压落于重叠区域830内的存储单元的总数。例如,重叠区域830表示某一存储单元所存储的应是比特“1”(属于状态810),但其阈值电压大于所施加的读取电压801;或者,某一存储单元所存储的应是比特“0”(属于状态820),但其阈值电压小于所施加的读取电压801。换言之,通过施加读取电压801所读取的数据中,有部份的比特会有错误。特别是,随着存储器存储装置10的使用时间增加,重叠区域830的面积也会逐渐扩大,并且读取到的数据可能会包含越来越多错误。
在本范例实施例中,在从可重写非易失性存储器模块406接收所读取的数据之后,存储器管理电路502会执行一个奇偶检验操作以验证此数据中是否存在错误。若判定数据中存在错误,则错误检查与校正电路508会执行解码操作来解码此数据,从而尝试更正数据中的错误。例如,奇偶检验操作与解码操作都是以一个码字为单位进行。此外,错误检查与校正电路508可支持比特翻转(bit flipping)演算法、梯度下降比特翻转(gradientdescent bit flipping)演算法、最小总合(min sum)演算法及总合乘积(sum product)演算法等常见的低密度奇偶检验码的解码演算法中的至少两种解码演算法。
图9是根据本发明的一范例实施例所示出的奇偶检验操作的示意图。
请参照图9,假设从第一物理单元读取的数据包含码字901,则在奇偶检验操作中,根据方程式(5),奇偶检验矩阵900会与码字901相乘并且获得校验向量902(即,向量S),其中码字901中的每一个比特是对应到校验向量902中的至少一个元素(即,校验子)。例如,码字901中的比特V0(对应至奇偶检验矩阵900中的第一行(column))是对应到校验子S1、S4及S7;比特V1(对应至奇偶检验矩阵900中的第二行)是对应到校验子S2、S3及S6,以此类推。若比特V0是错误比特,则校验子S1、S4及S7的至少其中之一可能会是“1”。若比特V1是错误比特,则校验子S2、S3及S6的至少其中之一可能会是“1”,以此类推。若校验子S0~S7皆是“0”,表示码字901有很高的机率是没有错误比特,因此错误检查与校正电路508可直接输出码字901。然而,若码字901中具有至少一个错误比特(即,校验子S0~S7的至少其中之一可能会是“1”),因此错误检查与校正电路508会解码码字901,以尝试更正码字901中的错误。
图10是根据本发明的一范例实施例所示出的错误检查与校正电路的示意图。
请参照图10,错误检查与校正电路508包括决策电路1010、解码引擎1020(以下也称为第一解码引擎)及解码引擎1030(以下也称为第二解码引擎)。存储器管理电路502会配置信息通道1001(以下也称为第一信息通道)与信息通道1002(以下也称为第二信息通道)于错误检查与校正电路508中。例如,信息通道1001与信息通道1002可以是彼此独立的物理线路通道或虚拟的分流通道。在获得欲解码的码字CW0之后,存储器管理电路502会评估码字CW0的错误等级信息SI。例如,错误等级信息SI可为任意形式的量化信息并且错误等级信息SI的值与码字CW0可能包含的错误比特的总数呈正相关。存储器管理电路502会通过信息通道1001将码字CW0输入至错误检查与校正电路508中并且通过信息通道1002将错误等级信息SI输入至错误检查与校正电路508中。例如,通过信息通道1001,码字CW0会被暂存在决策电路1010的暂存器1012中,并且通过信息通道1002,错误等级信息SI会被暂存在决策电路1010的暂存器1014中。
决策电路1010还包含至少一个处理电路(未示出)。在获得错误等级信息SI之后,决策电路1010会判断错误等级信息SI是否符合一预设条件。若错误等级信息SI符合预设条件,决策电路1010会将码字CW1输入至解码引擎1020并由解码引擎1020解码码字CW1,其中码字CW1相同于码字CW0。然而,若错误等级信息SI不符合预设条件,决策电路1010会将码字CW1输入至解码引擎1030并由解码引擎1030解码码字CW1。在使用解码引擎1020或解码引擎1030来解码码字CW1之后,若所执行的解码操作成功(即码字CW1中所有的错误皆被更正),码字CW2会被输出。
需注意的是,解码引擎1020的解码效能低于解码引擎1030的解码效能,例如,解码引擎1020所采用的解码演算法和/或电路结构的复杂度低于解码引擎1030所采用的解码演算法和/或电路结构的复杂度,因此解码引擎1020耗费在解码码字CW1的耗电量(以下也称为第一耗电量)会低于解码引擎1030耗费在解码码字CW1的耗电量(以下也称为第二耗电量)。此外,若码字CW1包含较多的错误比特,则解码引擎1020解码码字CW1的解码成功率(以下也称为第一解码成功率)会低于解码引擎1030解码码字CW1的解码成功率(以下也称为第二解码成功率)。或者,从另一角度来看,解码引擎1020的解码效能低于解码引擎1030的解码效能低,也可以是指,对于同一个码字,解码引擎1020可更正的错误比特的总数少于解码引擎1030可更正的错误比特的总数。
换言之,根据错误等级信息SI,决策电路1010可概略地估计码字CW0所包含的错误比特是多还是少。若码字CW0所包含的错误比特有较高的机率是较少的,决策电路1010会指示由解码引擎1020解码码字CW1,从而在不大幅降低解码成功率的前提下节省耗费在执行解码操作的耗电量。反之,若码字CW0所包含的错误比特有较高的机率是较多的,则决策电路1010会指示由解码引擎1030解码码字CW1,从而确保码字CW1可以被成功地解码。
在本范例实施例中,码字CW0的错误等级信息SI包括码字CW0的比特错误率、用于传输码字CW0的传输媒介的通道噪声强度、第一物理单元的编程次数、第一物理单元的读取次数、第一物理单元的擦除次数、及码字CW0的校验子总合的至少其中之一。码字CW0的比特错误率是指错误比特在码字CW0(或从第一物理单元中读取的每一个码字)中占的比例。用于传输码字CW0的传输媒介的通道噪声强度是指存储器控制电路单元404与可重写非易失性存储器模块406之间的传输通道的通道噪声强度。第一物理单元的编程次数是指第一物理单元被编程了几次。第一物理单元的读取次数是指第一物理单元被读取了几次。第一物理单元的擦除次数是指第一物理单元被擦除了几次。上述错误等级信息SI皆可以通过查表而获得。此外,关于码字CW0的校验子总合,存储器管理电路502可对码字CW0执行如方程式(5)的奇偶检验操作以获得码字CW0的多个校验子并累加此些校验子以获得码字CW0的校验子总合。以图9为例,若码字901为码字CW0,通过累加校验子S0~S7,码字CW0的校验子总合可被获得。例如,若校验子S0~S7中有P个校验子是“1”,则码字CW0的校验子总合即为“P”。
对应于不同类型的错误等级信息SI,决策电路1010可执行相应的判断来决定码字CW0的错误等级信息SI是否符合预设条件。例如,决策电路1010可判断所获得的比特错误率是否低于一预设比特错误率、所获得的通道噪声强度是否低于一预设通道噪声强度、所获得的编程次数是否低于一预设编程次数、所获得的读取次数是否低于一预设读取次数、所获得的擦除次数是否低于一预设擦除次数、和/或所获得的校验子总合低于一预设校验子总合。
在一范例实施例中,只要上述判断中的任一个条件成立,例如,所获得的比特错误率低于预设比特错误率、所获得的通道噪声强度低于预设通道噪声强度、所获得的编程次数低于预设编程次数、所获得的读取次数低于预设读取次数、所获得的擦除次数低于预设擦除次数或所获得的校验子总合低于预设校验子总合,决策电路1010会判定码字CW0的错误等级信息SI符合预设条件并将码字CW1输入至解码引擎1020。原因在于,若上述判断中的任一个条件成立,都有很高的机率是包含在码字CW0(或码字CW1)中的错误比特的总数不多,因此使用解码引擎1020来执行解码操作相对省电且对于解码效能影响不大。反之,若上述判断中的所有条件皆不成立,例如,所获得的比特错误率不低于预设比特错误率、所获得的通道噪声强度不低于预设通道噪声强度、所获得的编程次数不低于预设编程次数、所获得的读取次数不低于预设读取次数、所获得的擦除次数不低于预设擦除次数或所获得的校验子总合不低于预设校验子总合,则决策电路1010会判定码字CW0的错误等级信息SI不符合预设条件并将码字CW1输入至解码引擎1030。原因在于,若上述判断中的所有条件皆不成立,表示有很高的机率是包含在码字CW0(或码字CW1)中的错误比特的总数很多,因此直接使用解码引擎1030来执行解码操作较有效率。
在另一范例实施例中,只有当上述判断中的多个条件成立时,例如,所获得的比特错误率低于预设比特错误率且所获得的校验子总合低于预设校验子总合,决策电路1010才会判定码字CW0的错误等级信息SI符合预设条件并将码字CW1输入至解码引擎1020。需注意的是,相对于只要任一个判断条件成立就使用解码引擎1020来解码码字CW1的操作,虽然基于多个判断条件的成立来限制使用解码引擎1020会降低解码引擎1020的使用率(或增加解码引擎1030的使用率)从而增加错误检查与校正电路508整体的电力消耗,但是相对地也会因解码引擎1030的解码能力较强而提升错误检查与校正电路508的解码效能和/或解码稳定度。
在一范例实施例中,存储器存储装置10的电池的剩余电量也可以作为选择使用解码引擎1020或解码引擎1030的参考。例如,若提供给错误检查与校正电路508的电池电量(即,存储器存储装置10本身电池的剩余电量)低于一预设电量且此电池电量未连接至外部充电电源,决策电路1010也会直接将码字CW1输入至解码引擎1020以由解码引擎1020解码码字CW1,而略过上述判断码字CW0的错误等级信息SI是否符合预设条件的操作。反之,若存储器存储装置10的电池的剩余电量高于此预设电量或虽然存储器存储装置10的电池的剩余电量低于此预设电量但存储器存储装置10有连接至外部充电电源,则上述判断码字CW0的错误等级信息SI是否符合预设条件的操作可接续被执行。
在一范例实施例中,在使用解码引擎1020来解码码字CW1之后,若解码引擎1020未更正码字CW1中的所有错误(即解码引擎1020执行的解码操作失败),码字CW0或解码引擎1020的解码结果(即解码引擎1020输出的码字CW3)会被作为待解码的码字CW1输入至解码引擎1030,以尝试利用解码能力较强的解码引擎1030来再次解码初始的码字CW0,或者基于解码引擎1020的解码结果来进一步解码码字CW3。例如,相对于初始的码字CW0,码字CW3所包含的错误比特的总数可能会减少。因此,解码引擎1030解码码字CW3的解码成功率和/或解码速度可能会高于直接解码码字CW0的解码成功率和/或解码速度。
以下表1用以表示在多个范例实施例中,解码引擎1020与解码引擎1030所采用的解码演算法的几种范例组合。需注意的是,在部分未提及的范例实施例中,任何符合解码引擎1020与解码引擎1030的上述特性的解码演算法的组合也可以被采用,本发明不加以限制。
表1
基于表1,在一范例实施例中,若解码引擎1020是基于比特翻转演算法执行低密度奇偶检验码的解码操作(以下也称为第一解码操作),则解码引擎1030例如是基于梯度下降比特翻转演算法、最小总合演算法或总合乘积演算法执行低密度奇偶检验码的另一解码操作(以下也称为第二解码操作);在另一范例实施例中,若解码引擎1020是基于梯度下降比特翻转演算法执行低密度奇偶检验码的第一解码操作,则解码引擎1030例如是基于最小总合演算法或总合乘积演算法执行低密度奇偶检验码的第二解码操作;或者,在另一范例实施例中,若解码引擎1020是基于最小总合演算法执行低密度奇偶检验码的第一解码操作,则解码引擎1030例如是基于总合乘积演算法执行低密度奇偶检验码的第二解码操作。本领域技术人员应当可以明了如何基于所述各种解码演算法来执行相应的解码操作以及可支持特定解码演算法的硬体电路结构,在此便不赘述。
在一范例实施例中,解码引擎1020所执行的第一解码操作与解码引擎1030所执行的第二解码操作皆为硬比特模式解码。例如,在硬比特模式解码中,码字CW0中的每一个比特都是基于单一个硬决策电压来读取一个存储单元而获得。在另一范例实施例中,解码引擎1020所执行的第一解码操作和/或解码引擎1030所执行的第二解码操作也可以为软比特模式解码。例如,在软比特模式解码中,码字CW0中的至少一个比特是基于多个软决策电压来读取相同的存储单元而获得,使得码字CW0包含更多的解码信息。一般来说,软比特模式解码的解码成功率会高于硬比特模式解码的解码成功率。
此外,在一范例实施例中,解码引擎1020所执行的第一解码操作和/或解码引擎1030所执行的第二解码操作也可以在硬比特模式解码与软比特模式解码之间切换。例如,在一范例实施例中,解码引擎1020所执行的第一解码操作和/或解码引擎1030所执行的第二解码操作预设都是使用硬比特模式解码,但是在解码引擎1020解码失败之后,解码引擎1030会自动地切换为软比特模式解码来继续执行解码操作。借此,可更进一步增加错误检查与校正电路的操作弹性。
图11是根据本发明的一范例实施例所示出的解码方法的流程图。
请参照图11,在步骤S1101中,配置第一信息通道与第二信息通道于错误检查与校正电路中。在步骤S1102中,从第一物理单元读取码字并评估所述码字的错误等级信息。在步骤S1103中,通过第一信息通道将所述码字输入至错误检查与校正电路并通过第二信息通道将所述码字的错误等级信息输入至错误检查与校正电路。在步骤S1104中,判断所述码字的错误等级信息是否符合预设条件。若所述码字的错误等级信息符合所述预设条件,在步骤S1105中,将所述码字输入至错误检查与校正电路的第一解码引擎并由第一解码引擎解码所述码字。若所述码字的错误等级信息不符合所述预设条件,在步骤S1106中,将所述码字输入至错误检查与校正电路的第二解码引擎并由第二解码引擎解码所述码字,其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。在一范例实施例中,第一解码引擎解码所述码字的第一解码成功率会低于第二解码引擎解码所述码字的第二解码成功率。
然而,图11中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图11中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图11的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,在获得欲解码的码字之后,此码字的错误等级信息会被评估并作为使用耗电量较低且解码成功率也较低的解码引擎或使用耗电量较高且解码成功率也较高的解码引擎来解码此码字的参考。借此,本发明可在解码电路的耗电量与解码成功率之间取得平衡。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视随附的权利要求书所界定的范围为准。
Claims (21)
1.一种解码方法,用于包括多个物理单元的可重写非易失性存储器模块,所述解码方法包括:
配置第一信息通道与第二信息通道于错误检查与校正电路中;
从所述多个物理单元中的第一物理单元读取码字并评估所述码字的错误等级信息,所述评估所述码字的所述错误等级信息的步骤包括:
对所述码字执行奇偶检验操作以获得所述码字的多个校验子;以及
累加所述多个校验子以获得校验子总合;
通过所述第一信息通道将所述码字输入至所述错误检查与校正电路并通过所述第二信息通道将所述码字的所述错误等级信息输入至所述错误检查与校正电路;
至少通过判定所述校验子总合是否低于预设校验子总合以判断所述码字的所述错误等级信息是否符合预设条件;
若所述码字的所述错误等级信息符合所述预设条件,将所述码字输入至所述错误检查与校正电路的第一解码引擎并由所述第一解码引擎解码所述码字;以及
若所述码字的所述错误等级信息不符合所述预设条件,将所述码字输入至所述错误检查与校正电路的第二解码引擎并由所述第二解码引擎解码所述码字,
其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。
2.根据权利要求1所述的解码方法,其中所述错误等级信息包括所述码字的比特错误率、用于传输所述码字的传输媒介的通道噪声强度、所述第一物理单元的编程次数、所述第一物理单元的读取次数、所述第一物理单元的擦除次数、及所述码字的校验子总合的至少其中之一。
3.根据权利要求2所述的解码方法,其中判断所述码字的所述错误等级信息是否符合所述预设条件的步骤包括:
若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于所述预设校验子总合中的任一个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
4.根据权利要求2所述的解码方法,其中判断所述码字的所述错误等级信息是否符合所述预设条件的步骤包括:
若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于所述预设校验子总合中的多个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
5.根据权利要求1所述的解码方法,还包括:
若提供给所述错误检查与校正电路的电池电量低于预设电量且所述电池电量未连接至外部充电电源,直接将所述码字输入至所述第一解码引擎并由所述第一解码引擎解码所述码字。
6.根据权利要求1所述的解码方法,还包括:
若所述第一解码引擎未更正所述码字中的所有错误,将所述码字或所述第一解码引擎的解码结果输入至所述第二解码引擎。
7.根据权利要求1所述的解码方法,其中若所述第一解码引擎基于比特翻转演算法执行低密度奇偶检验码的第一解码操作,则所述第二解码引擎基于梯度下降比特翻转演算法、最小总合演算法或总合乘积演算法执行所述低密度奇偶检验码的第二解码操作,
其中若所述第一解码引擎基于所述梯度下降比特翻转演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述最小总合演算法或所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作,
其中若所述第一解码引擎基于所述最小总合演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作。
8.一种存储器存储装置,包括:
连接接口单元,用以连接至主机系统;
可重写非易失性存储器模块,包括多个物理单元;以及
存储器控制电路单元,连接至所述连接接口单元与所述可重写非易失性存储器模块,
其中所述存储器控制电路单元用以配置第一信息通道与第二信息通道于所述存储器控制电路单元的错误检查与校正电路中,
其中所述存储器控制电路单元用以发送读取指令序列以指示从所述多个物理单元中的第一物理单元读取码字并评估所述码字的错误等级信息,其中所述存储器控制电路单元评估所述码字的所述错误等级信息的操作包括:
对所述码字执行奇偶检验操作以获得所述码字的多个校验子;以及
累加所述多个校验子以获得校验子总合;
其中所述存储器控制电路单元还用以通过所述第一信息通道将所述码字输入至所述错误检查与校正电路并通过所述第二信息通道将所述码字的所述错误等级信息输入至所述错误检查与校正电路,
其中所述存储器控制电路单元还用以至少通过判定所述校验子总合是否低于预设校验子总合以判断所述码字的所述错误等级信息是否符合预设条件,
其中若所述码字的所述错误等级信息符合所述预设条件,所述存储器控制电路单元还用以将所述码字输入至所述错误检查与校正电路的第一解码引擎以由所述第一解码引擎解码所述码字,
若所述码字的所述错误等级信息不符合所述预设条件,所述存储器控制电路单元还用以将所述码字输入至所述错误检查与校正电路的第二解码引擎以由所述第二解码引擎解码所述码字,
其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。
9.根据权利要求8所述的存储器存储装置,其中所述错误等级信息包括所述码字的比特错误率、用于传输所述码字的传输媒介的通道噪声强度、所述第一物理单元的编程次数、所述第一物理单元的读取次数、所述第一物理单元的擦除次数、及所述码字的校验子总合的至少其中之一。
10.根据权利要求9所述的存储器存储装置,其中所述存储器控制电路单元判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:
若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于所述预设校验子总合中的任一个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
11.根据权利要求9所述的存储器存储装置,其中所述存储器控制电路单元判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:
若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于所述预设校验子总合中的多个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
12.根据权利要求8所述的存储器存储装置,其中若提供给所述存储器控制电路单元的电池电量低于预设电量且所述电池电量未连接至外部充电电源,所述存储器控制电路单元还用以直接将所述码字输入至所述第一解码引擎以由所述第一解码引擎解码所述码字。
13.根据权利要求8所述的存储器存储装置,其中若所述第一解码引擎未更正所述码字中的所有错误,所述存储器控制电路单元还用以将所述码字或所述第一解码引擎的解码结果输入至所述第二解码引擎。
14.根据权利要求8所述的存储器存储装置,其中若所述第一解码引擎基于比特翻转演算法执行低密度奇偶检验码的第一解码操作,则所述第二解码引擎基于梯度下降比特翻转演算法、最小总合演算法或总合乘积演算法执行所述低密度奇偶检验码的第二解码操作,
其中若所述第一解码引擎基于所述梯度下降比特翻转演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述最小总合演算法或所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作,
其中若所述第一解码引擎基于所述最小总合演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作。
15.一种存储器控制电路单元,用于控制包括多个物理单元的可重写非易失性存储器模块,所述存储器控制电路单元包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述可重写非易失性存储器模块;
错误检查与校正电路,包括第一解码引擎与第二解码引擎;以及
存储器管理电路,连接至所述主机接口、所述存储器接口及所述错误检查与校正电路,
其中所述存储器管理电路用以配置第一信息通道与第二信息通道于所述错误检查与校正电路中,
其中所述存储器管理电路用以发送读取指令序列以指示从所述多个物理单元中的第一物理单元读取码字并评估所述码字的错误等级信息,其中所述存储器管理电路评估所述码字的所述错误等级信息的操作包括:
对所述码字执行奇偶检验操作以获得所述码字的多个校验子;以及
累加所述多个校验子以获得校验子总合;
其中所述存储器管理电路还用以通过所述第一信息通道将所述码字输入至所述错误检查与校正电路并通过所述第二信息通道将所述码字的所述错误等级信息输入至所述错误检查与校正电路,
其中所述错误检查与校正电路用以至少通过判定所述校验子总合是否低于预设校验子总合以判断所述码字的所述错误等级信息是否符合预设条件,
其中若所述码字的所述错误等级信息符合所述预设条件,所述错误检查与校正电路还用以将所述码字输入至所述第一解码引擎并由所述第一解码引擎解码所述码字,
若所述码字的所述错误等级信息不符合所述预设条件,所述错误检查与校正电路还用以将所述码字输入至所述第二解码引擎并由所述第二解码引擎解码所述码字,
其中所述第一解码引擎耗费在解码所述码字的第一耗电量低于所述第二解码引擎耗费在解码所述码字的第二耗电量。
16.根据权利要求15所述的存储器控制电路单元,其中所述错误等级信息包括所述码字的比特错误率、用于传输所述码字的传输媒介的通道噪声强度、所述第一物理单元的编程次数、所述第一物理单元的读取次数、所述第一物理单元的擦除次数、及所述码字的校验子总合的至少其中之一。
17.根据权利要求16所述的存储器控制电路单元,其中所述错误检查与校正电路判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:
若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于所述预设校验子总合中的任一个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
18.根据权利要求16所述的存储器控制电路单元,其中所述错误检查与校正电路判断所述码字的所述错误等级信息是否符合所述预设条件的操作包括:
若所述比特错误率低于预设比特错误率、所述通道噪声强度低于预设通道噪声强度、所述编程次数低于预设编程次数、所述读取次数低于预设读取次数、所述擦除次数低于预设擦除次数、及所述校验子总合低于所述预设校验子总合中的多个条件成立,判定所述码字的所述错误等级信息符合所述预设条件。
19.根据权利要求15所述的存储器控制电路单元,其中若提供给所述存储器控制电路单元的电池电量低于预设电量且所述电池电量未连接至外部充电电源,所述错误检查与校正电路还用以直接将所述码字输入至所述第一解码引擎并由所述第一解码引擎解码所述码字。
20.根据权利要求15所述的存储器控制电路单元,其中若所述第一解码引擎未更正所述码字中的所有错误,所述错误检查与校正电路还用以将所述码字或所述第一解码引擎的解码结果输入至所述第二解码引擎。
21.根据权利要求15所述的存储器控制电路单元,其中若所述第一解码引擎基于比特翻转演算法执行低密度奇偶检验码的第一解码操作,则所述第二解码引擎基于梯度下降比特翻转演算法、最小总合演算法或总合乘积演算法执行所述低密度奇偶检验码的第二解码操作,
其中若所述第一解码引擎基于所述梯度下降比特翻转演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述最小总合演算法或所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作,
其中若所述第一解码引擎基于所述最小总合演算法执行所述低密度奇偶检验码的所述第一解码操作,则所述第二解码引擎基于所述总合乘积演算法执行所述低密度奇偶检验码的所述第二解码操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543451.9A CN107608817B (zh) | 2016-07-12 | 2016-07-12 | 解码方法、存储器存储装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543451.9A CN107608817B (zh) | 2016-07-12 | 2016-07-12 | 解码方法、存储器存储装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107608817A CN107608817A (zh) | 2018-01-19 |
CN107608817B true CN107608817B (zh) | 2020-11-10 |
Family
ID=61055276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610543451.9A Active CN107608817B (zh) | 2016-07-12 | 2016-07-12 | 解码方法、存储器存储装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608817B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10824504B2 (en) * | 2018-04-16 | 2020-11-03 | International Business Machines Corporation | Common high and low random bit error correction logic |
US10901839B2 (en) | 2018-09-26 | 2021-01-26 | International Business Machines Corporation | Common high and low random bit error correction logic |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307868B1 (en) * | 1995-08-25 | 2001-10-23 | Terayon Communication Systems, Inc. | Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops |
JP4988563B2 (ja) * | 2004-05-28 | 2012-08-01 | フランス・テレコム | 局所的な誤り検出符号を備えた誤り訂正符号化の方法、それに対応する復号化の方法、送信装置、受信装置、および、記憶装置、およびプログラム |
US8074011B2 (en) * | 2006-12-06 | 2011-12-06 | Fusion-Io, Inc. | Apparatus, system, and method for storage space recovery after reaching a read count limit |
CN104424045B (zh) * | 2013-09-09 | 2017-07-28 | 群联电子股份有限公司 | 解码方法、存储器储存装置与非易失性存储器模块 |
CN104572334B (zh) * | 2013-10-14 | 2017-11-21 | 群联电子股份有限公司 | 解码方法、存储器存储装置与存储器控制电路单元 |
CN104733044B (zh) * | 2013-12-24 | 2018-04-24 | 群联电子股份有限公司 | 译码方法、存储器存储装置、存储器控制电路单元 |
CN104851458B (zh) * | 2014-02-18 | 2019-02-05 | 群联电子股份有限公司 | 解码方法、存储器存储装置与存储器控制电路单元 |
TWI540586B (zh) * | 2014-04-15 | 2016-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 |
CN105022674B (zh) * | 2014-04-25 | 2019-02-01 | 群联电子股份有限公司 | 解码方法、存储器存储装置、存储器控制电路单元 |
-
2016
- 2016-07-12 CN CN201610543451.9A patent/CN107608817B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107608817A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10256844B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10062418B2 (en) | Data programming method and memory storage device | |
US10445002B2 (en) | Data accessing method, memory controlling circuit unit and memory storage device | |
US10318379B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20170294217A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10116335B2 (en) | Data processing method, memory storage device and memory control circuit unit | |
CN107146638B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
US10447314B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US10997067B2 (en) | Data storing method, memory controlling circuit unit and memory storage device | |
CN106681856B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107305510B (zh) | 数据处理方法、存储器存储装置及存储器控制电路单元 | |
US9996415B2 (en) | Data correcting method, memory control circuit unit, and memory storage device | |
CN107608817B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US10713160B1 (en) | Data writing method, memory control circuit unit and memory storage device | |
US20180046542A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US9941907B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN111326186B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN107301873B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
CN108428464B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 | |
CN107590018B (zh) | 译码方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190404 Address after: Room 609, 6th Floor, Taibang Science and Technology Building, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Da Xin Electronic Technology Co., Ltd. Address before: 2nd Floor, No. 5, 91 Lane, Dongmei Road, Xinzhu, Taiwan, China Applicant before: Big heart electronic Limited by Share Ltd |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |