CN107590018A - 译码方法、存储器控制电路单元及存储器存储装置 - Google Patents
译码方法、存储器控制电路单元及存储器存储装置 Download PDFInfo
- Publication number
- CN107590018A CN107590018A CN201610530782.9A CN201610530782A CN107590018A CN 107590018 A CN107590018 A CN 107590018A CN 201610530782 A CN201610530782 A CN 201610530782A CN 107590018 A CN107590018 A CN 107590018A
- Authority
- CN
- China
- Prior art keywords
- frame
- code word
- code
- decoded operation
- estimated information
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种译码方法、存储器控制电路单元及存储器存储装置。本译码方法包括:对包括第一码字的第一讯框执行第一类译码操作以获得第二码字。本方法还包括:根据此第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息。本方法还包括:若所述错误估计信息符合第一条件,将所述第一讯框中的所述第一码字更新为所述第二码字;以及对包括第一讯框的区块码执行第二类译码操作。本发明可有效地提高译码的更正能力。
Description
技术领域
本发明涉及一种译码方法,尤其涉及一种用于可复写式非易失性存储器模块的译码方法、存储器控制电路单元及存储器存储装置。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,写入至可复写式非易失性存储器模块的数据都会根据一个错误更正码来编码。从可复写式非易失性存储器模块中所读取的数据也会经过对应的译码程序。在一些情况下,若所读取的数据中有错误位,并且这些错误位无法被更正,则需要的译码时间会更长。此外,传统的叠代译码的操作中,数据可能在一次的译码操作中被成功地校正其中的错误位而使得错误趋于收敛(convergence),或者因前次的译码操作中包含太多误判而导致其中的错误发散(divergence)。因此,倘若在数据的错误是发散的情况下,继续对此数据进行更改的译码操作则可能会导致数据中的错误增加,促使其更正能力下降。据此,如何增加译码的速度或增加译码的更正能力,为此领域技术人员所关心的议题。
发明内容
本发明提供一种译码方法、存储器控制电路单元及存储器存储装置,其可有效地提高译码的更正能力。
本发明的一范例实施例提供一种译码方法,其用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个记忆胞,所述译码方法包括:对包括第一码字的第一讯框执行第一类译码操作以获得第二码字;根据所述第一类译码操作的执行结果记录对应所述第一讯框的一误估计信息;若所述错误估计信息符合第一条件,将所述第一讯框中的所述第一码字更新为所述第二码字;以及对包括所述第一讯框的区块码执行第二类译码操作。
在本发明的一范例实施例中,所述译码方法还包括:发送第一读取指令序列,其中所述第一读取指令序列用以从记忆胞读取一数据;获得对应于所述数据的多个讯框,其中所述讯框包括所述第一讯框,且所述第一讯框包括所述第一码字。
在本发明的一范例实施例中,根据所述第一类译码操作的执行结果记录所述第一讯框的所述错误估计信息的步骤包括:获得对应所述第一码字的错误估计信息,其中所述错误估计信息用以表示所述第一码字的错误位总数的大小。
在本发明的一范例实施例中,获得对应所述第一码字的所述错误估计信息的步骤包括:对所述第一码字执行奇偶检查操作以取得多个第一校验子,且将所述错误估计信息的值记录为所述第一校验子的总和。
在本发明的一范例实施例中,所述第一条件为所述错误估计信息的值小于或等于所述错误位数量门槛值。
在本发明的一范例实施例中,所述区块码包括对应于所述数据的所述讯框,且对应所述区块码的一次的叠代译码操作包括分别对每一所述讯框进行所述第一类译码操作,以及对每一所述讯框进行所述第二类译码操作。
在本发明的一范例实施例中,所述对包括所述第一讯框的区块码执行所述第二类译码操作的步骤之前包括:判断所述讯框中是否存在其码字的错误估计信息符合所述第一条件的至少一讯框;若所述讯框中存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,在对包括所述第一讯框的所述区块码执行所述第二类译码操作后,执行下一次的对应所述区块码的叠代译码操作;以及若所述讯框中不存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,停止对应所述区块码的叠代译码操作。
在本发明的一范例实施例中,所述第一类译码操作包括低密度奇偶检查校正码演算法,且所述第二类译码操作包括里德-所罗门码演算法,且所述第一类译码操作是分别对每一所述讯框的所有位进行横向译码,所述第二类译码操作是同时对每一所述讯框各别的每一个第N位进行纵向译码。
本发明的另一范例实施例提供一种存储器控制电路单元,其用以控制可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个记忆胞,所述存储器控制电路单元包括主机接口、存储器接口、错误检查与校正电路及存储器管理电路。所述主机接口用以耦接至主机系统。所述存储器接口用以耦接至所述可复写式非易失性存储器模块。所述存储器管理电路耦接至所述主机接口、所述存储器接口及所述错误检查与校正电路。错误检查与校正电路用以对包括第一码字的第一讯框执行第一类译码操作以获得第二码字。存储器管理电路用以根据所述第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息,若所述错误估计信息符合第一条件,所述存储器管理电路更用以将所述第一讯框中的所述第一码字更新为所述第二码字。此外,错误检查与校正电路更用以对包括所述第一讯框的区块码执行第二类译码操作。
在本发明的一范例实施例中,所述存储器管理电路更用以发送第一读取指令序列,其中所述第一读取指令序列用以从所述记忆胞读取一数据。存储器管理电路更用以获得对应于所述数据的多个讯框,其中所述讯框包括所述第一讯框,且所述第一讯框包括所述第一码字。
在本发明的一范例实施例中,在根据所述第一类译码操作的执行结果记录所述第一讯框的所述错误估计信息的操作中,所述存储器管理电路更用以获得对应所述第一码字的错误估计信息,其中所述错误估计信息用以表示所述第一码字的错误位总数的大小。
在本发明的一范例实施例中,在获得对应所述第一码字的所述错误估计信息的操作中,错误检查与校正电路更用以对所述第一码字执行一奇偶检查操作以取得多个第一校验子,且所述存储器管理电路将所述错误估计信息的值记录为所述第一校验子的总和。
在本发明的一范例实施例中,所述第一条件为所述错误估计信息的值小于或等于错误位数量门槛值。
在本发明的一范例实施例中,所述区块码包括对应于所述数据的所述讯框,其中对应所述区块码的一次的叠代译码操作包括分别对每一所述讯框进行所述第一类译码操作,以及对每一所述讯框进行所述第二类译码操作。
在本发明的一范例实施例中,在对包括所述第一讯框的所述区块码执行所述第二类译码操作之后,存储器管理电路更用以判断所述讯框中是否存在其码字的错误估计信息符合所述第一条件的至少一讯框。若所述讯框中存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,存储器管理电路更用以在对包括所述第一讯框的所述区块码执行所述第二类译码操作后,执行下一次的对应所述区块码的所述叠代译码操作;以及若所述讯框中不存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,存储器管理电路更用以停止对应所述区块码的叠代译码操作。
在本发明的一范例实施例中,所述第一类译码操作包括低密度奇偶检查校正码演算法,且所述第二类译码操作包括里德-所罗门码演算法,其中所述第一类译码操作是分别对每一所述讯框的所有位进行横向译码,所述第二类译码操作是同时对每一所述讯框各别的每一个第N位进行纵向译码。
本发明的另一范例实施例提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以耦接至主机系统。所述可复写式非易失性存储器模块包括多个记忆胞。所述存储器控制电路单元耦接至所述连接接口单元与所述可复写式非易失性存储器模块。存储器控制电路单元用以对包括第一码字的第一讯框执行第一类译码操作以获得第二码字,以及根据所述第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息,若所述错误估计信息符合第一条件,存储器控制电路单元更用以将所述第一讯框中的所述第一码字更新为所述第二码字。此外,存储器控制电路单元更用以对包括所述第一讯框的区块码执行第二类译码操作。
在本发明的一范例实施例中,所述第一读取指令序列用以从所述记忆胞读取数据。存储器控制电路单元更用以获得对应于所述数据的多个讯框,其中所述讯框包括所述第一讯框,且所述第一讯框包括所述第一码字。
在本发明的一范例实施例中,在根据所述第一类译码操作的执行结果记录所述第一讯框的所述错误估计信息的操作中,所述存储器控制电路单元更用以获得对应所述第一码字的错误估计信息,其中所述错误估计信息用以表示所述第一码字的错误位总数的大小。
在本发明的一范例实施例中,在获得对应所述第一码字的所述错误估计信息的操作中,存储器控制电路单元更用以对所述第一码字执行一奇偶检查操作以取得多个第一校验子,且将所述错误估计信息的值记录为所述第一校验子的总和。
在本发明的一范例实施例中,所述第一条件为所述错误估计信息的值小于或等于错误位数量门槛值。
在本发明的一范例实施例中,所述区块码包括对应于所述数据的所述讯框,且对应所述区块码的一次的叠代译码操作包括分别对每一所述讯框进行所述第一类译码操作,以及对每一所述讯框进行所述第二类译码操作。
在本发明的一范例实施例中,在对包括所述第一讯框的所述区块码执行所述第二类译码操作之前,存储器控制电路单元更用以判断所述讯框中是否存在其码字的错误估计信息符合所述第一条件的至少一讯框。若所述讯框中存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,存储器控制电路单元更用以在对包括所述第一讯框的所述区块码执行所述第二类译码操作后,执行下一次的对应所述区块码的叠代译码操作;以及若所述讯框中不存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,存储器控制电路单元更用以停止对应所述区块码的叠代译码操作。
在本发明的一范例实施例中,所述第一类译码操作包括低密度奇偶检查校正码演算法,且所述第二类译码操作包括里德-所罗门码演算法,其中所述第一类译码操作是分别对每一所述讯框的所有位进行横向译码,所述第二类译码操作是同时对每一所述讯框各别的每一个第N位进行纵向译码。
基于上述,在本发明的一范例实施例中,藉由判断经译码后的数据中的错误是发散或收敛以决定是否以此数据进行接续的译码操作,由此可避免后续的译码操作产生更多的误判,而导致数据中错误的增加。藉此,可提高每一次的译码操作的译码成功率,从而提高存储器存储装置的译码效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所显示的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据本发明的另一范例实施例所显示的主机系统、存储器存储装置及I/O装置的示意图;
图3是根据本发明的另一范例实施例所显示的主机系统与存储器存储装置的示意图;
图4是根据本发明的一范例实施例所显示的存储器存储装置的概要方框图;
图5是根据本发明的一范例实施例所显示的管理可复写式非易失性存储器模块的范例示意图;
图6是根据本发明的一范例实施例所显示的存储器控制电路单元的概要方框图;
图7是根据本发明的一范例实施例所显示的区块码的示意图;
图8是根据本发明的一范例实施例所显示的奇偶检查矩阵的示意图;
图9是根据本发明的一范例实施例所显示的记忆胞的临界电压分布的示意图;
图10是根据本发明的一范例实施例所显示的奇偶检查操作的示意图;
图11是根据本发明的一范例实施例所显示的对一个区块码执行译码操作的示意图;
图12A~12B是根据本发明的一范例实施例所显示的对一个讯框执行译码操作的示意图;
图13是根据本发明的一范例实施例所显示的译码方法的流程图。
附图标记:
10、30:存储器存储装置
11、31:主机系统
110:系统总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:随身盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位系统模块
206:网路接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多晶片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
400(0)~400(N):实体程序化单元
602:存储器管理电路
604:主机接口
606:存储器接口
608:错误检查与校正电路
610:缓冲存储器
612:电源管理电路
700:编码单元
701(1)~701(p):讯框
702(1)~702(r):位置
710(0)~710(E):实体程序化单元
720、730:编码数据
800:奇偶检查矩阵
910、920:状态
901:读取电压
930:重叠区域
1001、1104、1106:码字
1002:校验向量
1100:区块码
1101(1):第一讯框
1101(2)、1101(3):讯框
1102、1202:第一码字
1204:第二码字
S1301:步骤(对包括第一码字的第一讯框执行第一类译码操作以获得第二码字)
S1303:步骤(根据所述第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息)
S1305:步骤(若所述错误估计信息符合一第一条件,将所述第一讯框中的第一码字更新为第二码字)
S1307:步骤(对包括所述第一讯框的区块码执行第二类译码操作)
具体实施方式
一般而言,存储器存储装置(也称,存储器储存系统)包括可复写式非易失性存储器模块(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可例如是随身盘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 MMC,eMMC)341和/或嵌入式多晶片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接耦接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所显示的存储器存储装置的概要方框图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是相容于序列先进附件(Serial AdvancedTechnology 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)接口标准、记忆棒(Memory Stick,MS)接口标准、多晶片封装(Multi-Chip Package)接口标准、多媒体储存卡(Multi Media Card,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,可复写式非易失性存储器模块406的记忆胞会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元400(0)~400(N)。具体来说,同一条字符在线的记忆胞会组成一或多个实体程序化单元。若每一个记忆胞可储存2个以上的位,则同一条字符在线的实体程序化单元可被分类为下实体程序化单元与上实体程序化单元。例如,每一记忆胞的LSB是属于下实体程序化单元,并且每一记忆胞的MSB是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。在此范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面或是实体扇(sector)。若实体程序化单元为实体页面,则每一个实体程序化单元通常包括数据位区与冗余位区。数据位区包含多个实体扇,用以储存使用者的数据,而冗余位区用以储存系统的数据(例如,错误更正码)。在本范例实施例中,每一个数据位区包含32个实体扇,且一个实体扇的大小为612位组(byte,B)。然而,在其他范例实施例中,数据位区中也可包含8个、16个或数目更多或更少的实体扇,本发明并不限制实体扇的大小以及个数。另一方面,实体抹除单元为抹除的最小单位。即,每一实体抹除单元含有最小数目之一并被抹除的记忆胞。例如,实体抹除单元为实体区块。
图6是根据本发明的一范例实施例所显示的存储器控制电路单元的概要方框图。
请参照图6,存储器控制电路单元404包括存储器管理电路602、主机接口604、存储器接口606及错误检查与校正电路608。
存储器管理电路602用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路602具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路602的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路602的控制指令是以固件型式来实作。例如,存储器管理电路602具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被刻录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路602的控制指令亦可以程序码型式储存于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路602具有微处理器单元(未显示)、只读存储器(未显示)及随机存取存储器(未显示)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将储存于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路602的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路602的控制指令也可以一硬件型式来实作。例如,存储器管理电路602包括微控制器、记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。记忆胞管理电路用以管理可复写式非易失性存储器模块406的记忆胞或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一个或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路602还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
主机接口604是耦接至存储器管理电路602并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口604来传送至存储器管理电路602。在本范例实施例中,主机接口604是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口604也可以是相容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口606是耦接至存储器管理电路602并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口606转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路602要存取可复写式非易失性存储器模块406,存储器接口606会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路602产生并且通过存储器接口606传送至可复写式非易失性存储器模块406。这些指令序列可包括一个或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
错误检查与校正电路608是耦接至存储器管理电路602并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路602从主机系统11中接收到写入指令时,错误检查与校正电路608会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路602会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路602从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路608会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器610与电源管理电路612。
缓冲存储器610是耦接至存储器管理电路602并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路612是耦接至存储器管理电路602并且用以控制存储器存储装置10的电源。
特别是,在本范例实施例中,上述错误检查与校正电路608将数据储存至可复写式非易失性存储器模块406的操作中,错误检查与校正电路608会编码欲储存至可复写式非易失性存储器模块406的数据并产生一个编码单元。例如,此编码单元是由编码后的数据组成。此编码单元是属于区块码。尔后,存储器管理电路602会发送一个写入指令序列至可复写式非易失性存储器模块406。此写入指令序列用以指示将此编码单元储存在可复写式非易失性存储器模块406中的一个区域。例如,此区域可以是至少一个实体程序化单元并且包括多个记忆胞。根据此写入指令序列,可复写式非易失性存储器模块406会将此编码单元储存至此些记忆胞中。尔后,当存储器管理电路602指示读取此区域中的数据时,可复写式非易失性存储器模块406会从此些记忆胞中读取此编码单元,并且错误检查与校正电路608会执行对应的译码程序以译码此编码单元。
图7是根据本发明的一范例实施例所显示的区块码的示意图。
请参照图7,编码单元700属于区块码,且包括对应多个实体程序化单元710(0)~710(E)的多个讯框701(1)~701(p),例如,实体程序化单元710(0)~710(E)中的每一者所储存的至少部分数据可视为一个讯框。在本范例实施例中,错误检查与校正电路608执行编码操作的基本单位是一个讯框(frame)。一个讯框包括多个数据位。在本范例实施例中,一个讯框包括256个位。然而,在另一范例实施例中,一个讯框也可以包括更多或更少的位。例如,错误检查与校正电路608可以针对储存于同一个实体程序化单元中的数据进行单讯框(single-frame)编码,也可以针对储存于多个实体程序化单元中的数据进行多讯框(multi-frame)编码。
在单讯框编码中,是对每一讯框701(1)~701(p)中的数据进行编码产生相对应的编码数据720。例如,讯框701(1)的位b11、位b12、…、位b1r会被编码为编码数据720中的错误更正码ECC1,讯框701(2)的位b21、位b22、…、位b2r会被编码为编码数据720中的错误更正码ECC2;以此类推,位于讯框701(p)的位bp1、位bp2、…、位bpr会被编码为编码数据720中的错误更正码ECCp。之后,根据编码数据720即可分别对从实体程序化单元710(0)~710(E)中读取的数据进行横向的译码操作来更正所读取的数据中可能存在的错误。例如,对应于讯框701(1)中一笔数据的错误更正码ECC1是对此笔数据的所有位b11、位b12、…、位b1r进行译码。
在多讯框编码中,是以每一个位(或,位组)所在的位置为依据来对讯框701(1)~701(p)中的数据进行编码。以编码讯框701(1)~701(p)所储存的数据来产生相对应的编码数据730为例,位于位置702(1)的位b11、位b21、…、位bp1会被编码为编码数据730中的位bo1,位于位置702(2)的位b12、位b22、…、位bp2会被编码为编码数据730中的位bo2;以此类推,位于位置702(r)的位b1r、位b2r、…、位bpr会被编码为编码数据730中的位bor。尔后,根据编码数据730即可对从实体程序化单元710(0)~710(E)中读取的数据进行纵向的译码操作,以尝试更正所读取的数据中可能存在的错误。举例而言,对应于多个讯框701(1)~701(p)的各别的第N位的编码数据是用以对此些讯框中的数据各别的第N位进行译码,例如,对应于多个讯框701(1)~701(p)的各别的第1位的位bo1是用以对位于位置702(1)的位b11、位b21、…、位bp1(即,讯框701(1)~701(p)中的数据各别的第1位)进行译码。
此外,在图7的另一范例实施例中,用于产生编码数据730的数据也可能包括实体程序化单元710(0)~710(E)所储存的数据中的数据位(data bits)所对应的冗余位(redundancy bits)。以实体程序化单元710(0)所储存的数据为例,其中的冗余位例如是对储存于实体程序化单元710(0)中的数据位进行单讯框编码而产生的错误更正码ECC1。
在本范例实施例中,单讯框编码是采用采用低密度奇偶检查校正码(low densityparity code,LDPC)(也称为第一类译码操作),而多讯框编码是采用里德-所罗门码(Reed-solomon codes,RS codes)演算法(也称为第二类译码操作)。然而,本发明并不限于此,例如,在另一范例实施例中,单讯框编码与多讯框编码可以分别采用低密度奇偶检查校正码、BCH码、回旋码(convolutional code)或涡轮码(turbo code)等编码演算法的至少其中之一。此外,在另一范例实施例中,更多未列于上的编码演算法也可以被采用,在此便不赘述。根据所采用的编码演算法,错误检查与校正电路608可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。
具体而言,在单讯框的编码与译码操作中,错误检查与校正电路608是采用低密度奇偶检查码来编码与译码。在低密度奇偶检查校正码中,是用一个奇偶检查矩阵来定义有效的码字。以下将奇偶检查矩阵标记为矩阵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不是有效的码字,则错误检查与校正电路608会执行一个译码操作,以尝试更正码字CW中的错误位。
图8是根据本发明的一范例实施例所显示的奇偶检查矩阵的示意图。
请参照图8,奇偶检查矩阵800的维度是k-乘-n。例如,k为8,并且n为9。然而,本发明并不限制正整数k与n为多少。奇偶检查矩阵800的每一列(row)也代表了一限制(constraint)。以奇偶检查矩阵800的第一列为例,若某一个码字是有效码字,则将此码字中第3个、第5个、第8个与第9个位做模2(modulo-2)的加法之后,会得到位“0”。在此领域普通技术人员应能理解如何用奇偶检查矩阵800来编码,在此便不再赘述。此外,奇偶检查矩阵800仅为一个范例矩阵,而非用以限制本发明。
当存储器管理电路602要将多个位储存至可复写式非易失性存储器模块406时,错误检查与校正电路608会对每(n-k)个欲被储存的位(即,信息位)都产生对应的k个奇偶位。接下来,存储器管理电路602会把这n个位(即,数据位)作为一个码字写入至可复写式非易失性存储器模块406。
图9是根据本发明的一范例实施例所显示的记忆胞的临界电压分布的示意图。
请参照图9,横轴代表记忆胞的临界电压,而纵轴代表记忆胞个数。例如,图9是表示一个实体程序化单元中各个记忆胞的临界电压。假设状态910对应于位“1”并且状态920对应于位“0”,当某一个记忆胞的临界电压属于状态910时,此记忆胞所储存的是位“1”;相反地,若某一个记忆胞的临界电压属于状态920时,此记忆胞所储存的是位“0”。值得一提的是,在本范例实施例中,临界电压分布中的一个状态对应至一个位值,并且记忆胞的临界电压分布有两种可能的状态。然而,在其他范例实施例中,临界电压分布中的每一个状态也可以对应至多个位值并且记忆胞的临界电压的分布也可能有四种、八种或其他任意个状态。此外,本发明也不限制每一个状态所代表的位。例如,在图9的另一范例实施例中,状态910也可以对应于位“0”,而状态920则对应于位“1”。
在本范例实施例中,当要从可复写式非易失性存储器模块406读取数据时,存储器管理电路602会发送一读取指令序列(也称为第一读取指令序列)至可复写式非易失性存储器模块406。此第一读取指令序列用以指示可复写式非易失性存储器模块406读取一个实体程序化单元中的多个记忆胞以获得储存于此些记忆胞中的数据。例如,根据此第一读取指令序列,可复写式非易失性存储器模块406可使用图9中的读取电压901来读取记忆胞。若所读取的记忆胞中的某一者的临界电压小于读取电压901,则此记忆胞会被导通,并且存储器管理电路602会读到位“1”。相反地,若所读取的记忆胞中的某一者的临界电压大于读取电压901,则此记忆胞不会被导通,并且存储器管理电路602会读到位“0”。此外,在另一范例实施例中,一次的读取操作也可以是读取多个实体程序化单元中的记忆胞或一个实体程序化单元中的部分记忆胞,本发明不加以限制。
在本范例实施例中,状态910与状态920之间包含一个重叠区域930。重叠区域930的面积正相关于所读取的记忆胞中临界电压落于重叠区域930内的记忆胞的总数。重叠区域930表示在此些记忆胞中有一些记忆胞所储存的应该是位“1”(属于状态910),但其临界电压大于所施加的读取电压901;或者,在此些记忆胞中有一些记忆胞所储存的应该是位“0”(属于状态920),但其临界电压小于所施加的读取电压901。换言之,经由施加读取电压901所读取的数据中,有部分的位会有错误。
在本范例实施例中,错误检查与校正电路608是执行叠代(iteration)译码操作。一个叠代译码操作是用来译码来自于可复写式非易失性存储器模块406的一笔数据。例如,数据中的一个译码单位为一个码字。在一个叠代译码操作中,用于检查数据的正确性的奇偶检查操作与用于更正数据中的错误的译码操作会重复执行,直到成功的译码或叠代次数到达一预定次数为止。若叠代次数到达此预定次数,表示译码失败,并且错误检查与校正电路608会停止译码。此外,若经由奇偶检查操作判定某一数据中不存在错误,则错误检查与校正电路608会输出此数据。
图10是根据本发明的一范例实施例所显示的奇偶检查操作的示意图。
请参照图10,假设从记忆胞所读取的数据包含码字1001,则在奇偶检查操作中,根据方程式(5),奇偶检查矩阵800会与码字1001相乘并且获得向量1002(即,向量S)。其中,码字1001中的每一个位是对应到向量1002中的至少一个元素(即,校验子)。举例来说,码字1001中的位V0(对应至奇偶检查矩阵800中的第一行)是对应到校验子S1、校验子S4及校验子S7;位V1(对应至奇偶检查矩阵800中的第二行)是对应到校验子S2、校验子S3及校验子S6,以此类推。若位V0是错误位,则校验子S1、校验子S4及校验子S7的至少其中之一可能会是“1”。若位V1是错误位,则校验子S2、校验子S3及校验子S6的至少其中之一可能会是“1”,以此类推。
换言之,若校验子S0~S7皆是“0”,表示码字1001中可能没有错误位,因此错误检查与校正电路608可直接输出码字1001。然而,若码字1001中具有至少一个错误位,则校验子S0~S7的至少其中之一可能会是“1”,并且错误检查与校正电路608会对码字1001执行用于更正码字中的错误的译码操作。
在本范例实施例中,错误检查与校正电路608支援一种或多种译码演算法。例如,错误检查与校正电路608可支援位翻转(Bit-Flipping)演算法、最小-总合(Min-Sum)演算法及总和-乘积(Sum-Product)演算法等译码演算法的至少其中之一,且可采用的译码演算法的类型不限于上述。在判定数据中存在错误之后,错误检查与校正电路608会基于一种译码演算法来执行一个译码操作。此外,连续执行的两个译码操作可以是基于相同或不同的译码演算法而执行。
图11是根据本发明的一范例实施例所显示的对一个区块码执行译码操作的示意图。图12A~12B是根据本发明的一范例实施例所显示的对一个讯框执行译码操作的示意图。
请参照图11,在存储器管理电路602发送第一读取指令序列至可复写式非易失性存储器模块406并从可复写式非易失性存储器模块406的记忆胞中读取数据后,存储器管理电路602会获得对应此数据的多个讯框1101(1)~1101(3),而错误检查与校正电路608会对此些讯框1101(1)~1101(3)所组成的区块码1100进行译码。具体而言,对应区块码1100的一次的叠代译码操作包括分别对区块码1100中每一讯框进行第一类译码操作,以及对每一讯框进行第二类译码操作。特别是,在本发明范例实施例中,在分别对区块码1100中每一讯框中的码字进行第一类译码操作,以及执行更正其中错误以产生另一码字的译码操作之后,存储器管理电路602会先判断此译码的结果(即,译码后所获得的另一码字)中的错误是发散或收敛以决定是否以目前的码字进行接续的第二类译码操作。以下将参照图12A~12B,以区块码1100中的一个讯框来说明如何判断其对应的码字中的错误是发散或收敛的操作。
请先参照图12A,错误检查与校正电路608会以区块码1100中的讯框1101(1)(也称为第一讯框1101(1))为单位对码字1202(也称为第一码字1202)进行译码。值得注意的是,所述第一码字1202可以是从记忆胞所读取的原始数据(即,上述第一码字1101),或是经过至少一次对应区块码1100的叠代译码操作的数据,本发明并不加以限制。具体而言,错误检查与校正电路608会判断第一码字1202是否具有一个或多个错误。例如,在本范例实施例中,错误检查与校正电路608会对第一码字1202执行第一类译码操作(即,奇偶检查操作)以取得多个校验子(也称为第一校验子),而此些第一校验子可以组成上述向量S。在一范例实施例中,上述向量S也称为校验向量。错误检查与校正电路608会根据校验向量S中的多个第一校验子判断第一码字1202是否具有一个或多个错误,而根据校验子来判断译码的结果中是否具有一个或多个错误的操作已说明于上述图10的范例中,在此不再重述。
具体而言,在对一个码字执行更正其中的错误的译码操作后,此码字可能在此次的译码操作中被成功地校正其中的错误位而使得错误趋于收敛,或者因此次的译码操作中包含太多误判而导致其中的错误发散。在错误收敛的情况下,由于随着码字中的错误逐渐被更正,码字中的错误位的总数会逐渐减少,并且对于此码字的译码成功率会提高。反之,在错误发散的情况下,若继续对此码字进行译码操作则可能会因误判而导致码字中的错误持续增加,甚至使得此码字的错误位发生率会渐趋上升而导致译码失败。因此,在本范例实施例中,在错误检查与校正电路608执行更正第一码字1202中的错误的译码操作(例如,翻转演算法、最小-总合演算法及总和-乘积演算法等译码演算法的至少其中之一)以获得另一码字1204(也称为第二码字1204)后,存储器管理电路602会进一步根据对第一码字1202执行第一类译码操作(即,奇偶检查操作)的执行结果来判断此时第二码字1204中的错误是发散或收敛。例如,在本范例实施例中,存储器管理电路602是计算第一校验子的总和以获得对应的错误估计信息,并以此错误估计信息判断码字中的错误是发散或收敛。
请再参照图10,在计算校验子总合的操作中,存储器管理电路602是累加校验向量1002中的校验子S0~S7以获得校验子总合。在此,累加是指一般加法,而非模2加法。此校验子总合可用以表示校验子S0~S7中有几个“1”(或几个“0”)。例如,若校验子S0~S7中有3个“1”,则此校验子总合会是“3”。或者,若校验子S0~S7中有7个“1”,则此校验子总合会是“7”。一般来说,若码字1001中的错误位越多,则校验子S0~S7中的“1”也会越多,并且校验子总合会越大。若码字1001中的错误位越少,则校验子S0~S7中的“1”也会越少,并且校验子总合会越小。因此,所获得的错误估计信息会正相关于此校验子总合。
在本范例实施例中,由于对应一个码字的错误估计信息是正相关于此码字校验子总合,因此,错误估计信息可用以表示此码字中错误位的总数的大小。藉此,在对第一码字1202执行第一类译码操作并判定其具有至少一错误的情况下,存储器管理电路602会根据错误估计信息判断译码的结果是发散或收敛。在此,存储器管理电路602是判断错误估计信息是否符合一条件(也称为第一条件)。具体而言,此第一条件为错误估计信息的值小于或等于错误位数量门槛值,因此当存储器管理电路602判断错误估计信息不符合此第一条件时,即相当于译码结果的错误位的总数大于错误位数量门槛值。据此,存储器管理电路602会判断译码的结果为发散,而不输出此译码的结果,即,不使用此第二码字1204进行接续的第二类译码操作。
反之,当存储器管理电路602判断错误估计信息符合此第一条件时,即相当于译码结果的错误位的总数小于错误位数量门槛值。藉此,存储器管理电路602会判断译码的结果为收敛,而输出此第二码字1204,并且使用此第二码字1204进行接续的第二类译码操作。例如,存储器管理电路602会先将第一讯框1101(1)中的第一码字1102字更新为第二码字1204(如图12B所示)。接着,错误检查与校正电路608会对区块码1100中的讯框1101(1)~讯框1101(3)进行第二类译码操作。
由于在本范例实施例中,错误检查与校正电路608会对每一笔属于同一个讯框的数据进行单讯框编码,以及对储存于多个讯框中的数据进行多讯框编码。因此,在错误检查与校正电路608执行译码操作的过程中,错误检查与校正电路608会先对区块码中每一讯框中所储存的码字进行用于检查数据的正确性的奇偶检查操作(即,第一类译码操作)与用于更正数据中之错误的译码操作后,再对区块码中多个讯框进行第二类译码操作。特别是,在本范例实施例中,在错误检查与校正电路608对一个讯框所储存的码字执行第一类译码操作并执行更正其中错误以产生另一码字的译码操作之后,存储器管理电路602会进一步判断译码的结果(即,译码后所获得的码字)是发散或收敛以决定是否以此码字进行接续的第二类译码操作,由此可避免尔后的译码操作产生更多的误判,而导致码字中错误的增加。
在此,以图12A与图12B中的译码操作为例,倘若存储器管理电路602判断第一码字1202中的错误收敛,其会将第一讯框1101(1)内的第一码字1202更新为第二码字1204,并且类似地,存储器管理电路602会对包含此第一讯框1101(1)的区块码1100中其他的讯框(即,讯框1101(2)与讯框1101(3))执行上述判断其译码的结果中的错误是发散或收敛的操作。由此可确保区块码中每一讯框所对应的码字的错误皆不会趋于发散,进而提高译码成功率与整体的译码速度。之后,存储器管理电路602会对区块码1100中的讯框1101(1)~讯框1101(3)执行上述第二类译码操作。在区块码中每一讯框所对应的码字的错误皆趋于收敛的前提下,错误检查与校正电路608对区块码中所有讯框进行第二类译码操作的译码成功率也整体地被提升。
在另一范例实施例中,在存储器管理电路602根据区块码1100中所有讯框(即,讯框1101(1)~讯框1101(3))的第一类译码操作的执行结果,分别对讯框1101(1)~讯框1101(3)执行判断其中码字的错误是发散或收敛的操作后,存储器管理电路602会进一步判断讯框1101(1)~讯框1101(3)中是否存在其码字的错误估计信息符合第一条件的至少一讯框,并且在此条件成立时才对讯框1101(1)~讯框1101(3)同时进行第二类译码操作,以完成一次的对应区块码1100的叠代译码操作;反之,存储器管理电路602会停止对应区块码1100的叠代译码操作。具体而言,若此些讯框1101(1)~1101(3)中不存在其码字的错误估计信息符合第一条件的至少一讯框,即代表区块码1100中所有讯框1101(1)~1101(3)中的码字中的错误皆是发散的,据此,存储器管理电路602并不会对讯框1101(1)~讯框1101(3)执行用以更正码字中的错误的译码操作,即,存储器管理电路602并不会更新讯框1101(1)~1101(3)中的码字。由于区块码1100中每一讯框1101(1)~1101(3)中的码字皆是维持前一次执行对应区块码1100的叠代译码操作所获得的结果,因此,在此状态下执行下一次的对应区块码1100的叠代译码操作仍会得到相同于此次的执行结果,即,存储器管理电路602根据对区块码1100中讯框1101(1)~讯框1101(3)执行第一类译码操作的执行结果,仍会得到讯框1101(1)~1101(3)中的码字的错误皆是发散的结果。也就是说,在此情况下,不管再经过几此的对应区块码1100的叠代译码操作,区块码1100中所有讯框1101(1)~1101(3)中的码字皆不会再被更动,据此,存储器管理电路602会判定译码失败,并停止对应区块码1100的叠代译码操作,以节省存储器管理电路602的运算资源。
图13是根据本发明的一范例实施例所显示的译码方法的流程图。
请参照图13,在步骤S1301中,存储器管理电路602会对包括第一码字的第一讯框执行第一类译码操作以获得第二码字。
在步骤S1303中,存储器管理电路602根据所述第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息。
接着,在步骤S1305中,若所述错误估计信息符合一第一条件,存储器管理电路602会将所述第一讯框中的第一码字更新为第二码字。
之后,在步骤S1307中,错误检查与校正电路608会对包括所述第一讯框的区块码执行第二类译码操作。
然而,图13中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图13中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图13的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明范例实施例提出的译码方法、存储器存储装置与存储器控制电路单元,可在对一个存在错误的数据执行更正其中错误的译码操作之后,判断此数据中的错误是发散或收敛,以决定是否以此数据进行接续的译码操作,由此可避免之后的译码操作产生更多的误判,而导致码字中错误的增加。藉此,可提高译码成功率与存储器存储装置的译码效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,均在本发明范围内。
Claims (24)
1.一种译码方法,用于可复写式非易失性存储器模块,其特征在于,所述可复写式非易失性存储器模块包括多个记忆胞,所述译码方法包括:
对包括第一码字的第一讯框执行第一类译码操作以获得第二码字;
根据所述第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息;
若所述错误估计信息符合第一条件,将所述第一讯框中的所述第一码字更新为所述第二码字;
对包括所述第一讯框的区块码执行第二类译码操作。
2.根据权利要求1所述的译码方法,其特征在于,还包括:
发送第一读取指令序列,其中所述第一读取指令序列用以从所述多个记忆胞读取数据;
获得对应于所述数据的多个讯框,其中所述多个讯框包括所述第一讯框,且所述第一讯框包括所述第一码字。
3.根据权利要求1所述的译码方法,其特征在于,根据所述第一类译码操作的执行结果记录所述第一讯框的所述错误估计信息的步骤包括:
获得对应所述第一码字的所述错误估计信息,其中所述错误估计信息用以表示所述第一码字的错误位总数的大小。
4.根据权利要求3所述的译码方法,其特征在于,获得对应所述第一码字的所述错误估计信息的步骤包括:
对所述第一码字执行奇偶检查操作以取得多个第一校验子,且将所述错误估计信息的值记录为所述多个第一校验子的总和。
5.根据权利要求4所述的译码方法,其特征在于,所述第一条件为所述错误估计信息的值小于或等于错误位数量门槛值。
6.根据权利要求2所述的译码方法,其特征在于,所述区块码包括对应于所述数据的所述多个讯框,
其中对应所述区块码的一次的叠代译码操作包括分别对每一所述多个讯框进行所述第一类译码操作,以及对每一所述多个讯框进行所述第二类译码操作。
7.根据权利要求6所述的译码方法,其特征在于,对包括所述第一讯框的所述区块码执行所述第二类译码操作的步骤之前包括:
判断所述多个讯框中是否存在其码字的错误估计信息符合所述第一条件的至少一讯框;
若所述多个讯框中存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,在对包括所述第一讯框的所述区块码执行所述第二类译码操作后,执行下一次的对应所述区块码的所述叠代译码操作;
若所述多个讯框中不存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,停止对应所述区块码的所述叠代译码操作。
8.根据权利要求6所述的译码方法,其特征在于,所述第一类译码操作包括一低密度奇偶检查校正码演算法,且所述第二类译码操作包括一里德-所罗门码演算法,
其中所述第一类译码操作是分别对每一所述多个讯框的所有位进行横向译码,所述第二类译码操作是同时对每一所述多个讯框各别的每一个第N位进行纵向译码。
9.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其特征在于,所述可复写式非易失性存储器模块包括多个记忆胞,其中所述存储器控制电路单元包括:
主机接口,用以耦接至主机系统;
存储器接口,用以耦接至所述可复写式非易失性存储器模块;
存储器管理电路,耦接至所述主机接口与所述存储器接口;
错误检查与校正电路,耦接至所述存储器管理电路,并且用以对包括第一码字的第一讯框执行第一类译码操作以获得第二码字,
其中所述存储器管理电路用以根据所述第一类译码操作的执行结果记录对应所述第一讯框的一错误估计信息,
其中若所述错误估计信息符合第一条件,所述存储器管理电路更用以将所述第一讯框中的所述第一码字更新为所述第二码字,
其中所述错误检查与校正电路更用以对包括所述第一讯框的区块码执行第二类译码操作。
10.根据权利要求9所述的存储器控制电路单元,其特征在于,所述存储器管理电路更用以发送第一读取指令序列,其中所述第一读取指令序列用以从所述多个记忆胞读取数据,
其中所述存储器管理电路更用以获得对应于所述数据的多个讯框,其中所述多个讯框包括所述第一讯框,且所述第一讯框包括所述第一码字。
11.根据权利要求9所述的存储器控制电路单元,其特征在于,在根据所述第一类译码操作的执行结果记录所述第一讯框的所述错误估计信息的操作中,所述存储器管理电路更用以获得对应所述第一码字的所述错误估计信息,
其中所述错误估计信息用以表示所述第一码字的错误位总数的大小。
12.根据权利要求11所述的存储器控制电路单元,其特征在于,在获得对应所述第一码字的所述错误估计信息的操作中,
所述错误检查与校正电路更用以对所述第一码字执行奇偶检查操作以取得多个第一校验子,且所述存储器管理电路将所述错误估计信息的值记录为所述多个第一校验子的总和。
13.根据权利要求12所述的存储器控制电路单元,其特征在于,所述第一条件为所述错误估计信息的值小于或等于错误位数量门槛值。
14.根据权利要求10所述的存储器控制电路单元,其特征在于,所述区块码包括对应于所述数据的所述多个讯框,
其中对应所述区块码的一次的叠代译码操作包括分别对每一所述多个讯框进行所述第一类译码操作,以及对每一所述多个讯框进行所述第二类译码操作。
15.根据权利要求14所述的存储器控制电路单元,其特征在于,在对包括所述第一讯框的所述区块码执行所述第二类译码操作之前,所述存储器管理电路更用以判断所述多个讯框中是否存在其码字的错误估计信息符合所述第一条件的至少一讯框,
其中若所述多个讯框中存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,所述存储器管理电路更用以在对包括所述第一讯框的所述区块码执行所述第二类译码操作后,执行下一次的对应所述区块码的所述叠代译码操作,
其中若所述多个讯框中不存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,所述存储器管理电路更用以停止对应所述区块码的所述叠代译码操作。
16.根据权利要求14所述的存储器控制电路单元,其特征在于,所述第一类译码操作包括一低密度奇偶检查校正码演算法,且所述第二类译码操作包括里德-所罗门码演算法,
其中所述第一类译码操作是分别对每一所述多个讯框的所有位进行横向译码,所述第二类译码操作是同时对每一所述多个讯框各别的每一个第N位进行纵向译码。
17.一种存储器存储装置,其特征在于,包括:
连接接口单元,用以耦接至一主机系统;
可复写式非易失性存储器模块,包括多个记忆胞;
存储器控制电路单元,耦接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以对包括第一码字的第一讯框执行第一类译码操作以获得第二码字,
其中所述存储器控制电路单元更用以根据所述第一类译码操作的执行结果记录对应所述第一讯框的错误估计信息,
其中若所述错误估计信息符合第一条件,所述存储器控制电路单元更用以将所述第一讯框中的所述第一码字更新为所述第二码字,
其中所述存储器控制电路单元更用以对包括所述第一讯框的区块码执行第二类译码操作。
18.根据权利要求17所述的存储器存储装置,其特征在于,所述存储器控制电路单元更用以发送第一读取指令序列,其中所述第一读取指令序列用以从所述多个记忆胞读取数据,
其中所述存储器控制电路单元更用以获得对应于所述数据的多个讯框,其中所述多个讯框包括所述第一讯框,且所述第一讯框包括所述第一码字。
19.根据权利要求17所述的存储器存储装置,其特征在于,在根据所述第一类译码操作的执行结果记录所述第一讯框的所述错误估计信息的操作中,所述存储器控制电路单元更用以获得对应所述第一码字的所述错误估计信息,
其中所述错误估计信息用以表示所述第一码字的错误位总数的大小。
20.根据权利要求19所述的存储器存储装置,其特征在于,在获得对应所述第一码字的所述错误估计信息的操作中,
所述存储器控制电路单元更用以对所述第一码字执行一奇偶检查操作以取得多个第一校验子,且将所述错误估计信息的值记录为所述多个第一校验子的总和。
21.根据权利要求20所述的存储器存储装置,其特征在于,所述第一条件为所述错误估计信息的值小于或等于错误位数量门槛值。
22.根据权利要求18所述的存储器存储装置,其特征在于,所述区块码包括对应于所述数据的所述多个讯框,
其中对应所述区块码的一次的叠代译码操作包括分别对每一所述多个讯框进行所述第一类译码操作,以及对每一所述多个讯框进行所述第二类译码操作。
23.根据权利要求22所述的存储器存储装置,其特征在于,在对包括所述第一讯框的所述区块码执行所述第二类译码操作之前,所述存储器控制电路单元更用以判断所述多个讯框中是否存在其码字的错误估计信息符合所述第一条件的至少一讯框,
其中若所述多个讯框中存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,所述存储器控制电路单元更用以在对包括所述第一讯框的所述区块码执行所述第二类译码操作后,执行下一次的对应所述区块码的所述叠代译码操作,
其中若所述多个讯框中不存在其码字的错误估计信息符合所述第一条件的所述至少一讯框,所述存储器控制电路单元更用以停止对应所述区块码的所述叠代译码操作。
24.根据权利要求22所述的存储器存储装置,其特征在于,所述第一类译码操作包括低密度奇偶检查校正码演算法,且所述第二类译码操作包括里德-所罗门码演算法,
其中所述第一类译码操作是分别对每一所述多个讯框的所有位进行横向译码,所述第二类译码操作是同时对每一所述多个讯框各别的每一个第N位进行纵向译码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610530782.9A CN107590018B (zh) | 2016-07-07 | 2016-07-07 | 译码方法、存储器控制电路单元及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610530782.9A CN107590018B (zh) | 2016-07-07 | 2016-07-07 | 译码方法、存储器控制电路单元及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590018A true CN107590018A (zh) | 2018-01-16 |
CN107590018B CN107590018B (zh) | 2020-12-01 |
Family
ID=61046319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610530782.9A Active CN107590018B (zh) | 2016-07-07 | 2016-07-07 | 译码方法、存储器控制电路单元及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590018B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347490A (zh) * | 2018-12-09 | 2019-02-15 | 江苏华存电子科技有限公司 | 一种用于数据纠错ecc译码核主控装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090241008A1 (en) * | 2008-03-18 | 2009-09-24 | Samsung Electronics Co., Ltd. | Memory devices and encoding and/or decoding methods |
US8001441B2 (en) * | 2006-11-03 | 2011-08-16 | Sandisk Technologies Inc. | Nonvolatile memory with modulated error correction coding |
US20110219284A1 (en) * | 2010-03-02 | 2011-09-08 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory system |
US8418015B2 (en) * | 2007-06-08 | 2013-04-09 | China Academy Of Telecommunications Technology | Method, apparatus and system for coding and decoding of LDPC codes |
US20140068379A1 (en) * | 2012-08-31 | 2014-03-06 | Kabushiki Kaisha Toshiba | Memory system |
US8713411B2 (en) * | 2008-03-18 | 2014-04-29 | Samsung Electronics Co., Ltd. | Encoding and/or decoding memory devices and methods thereof |
US20160013814A1 (en) * | 2014-07-10 | 2016-01-14 | International Business Machines Corporation | Decoding of product codes |
US9369152B2 (en) * | 2013-03-07 | 2016-06-14 | Marvell World Trade Ltd. | Systems and methods for decoding with late reliability information |
-
2016
- 2016-07-07 CN CN201610530782.9A patent/CN107590018B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001441B2 (en) * | 2006-11-03 | 2011-08-16 | Sandisk Technologies Inc. | Nonvolatile memory with modulated error correction coding |
US8418015B2 (en) * | 2007-06-08 | 2013-04-09 | China Academy Of Telecommunications Technology | Method, apparatus and system for coding and decoding of LDPC codes |
US20090241008A1 (en) * | 2008-03-18 | 2009-09-24 | Samsung Electronics Co., Ltd. | Memory devices and encoding and/or decoding methods |
US8713411B2 (en) * | 2008-03-18 | 2014-04-29 | Samsung Electronics Co., Ltd. | Encoding and/or decoding memory devices and methods thereof |
US20110219284A1 (en) * | 2010-03-02 | 2011-09-08 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory system |
US20140068379A1 (en) * | 2012-08-31 | 2014-03-06 | Kabushiki Kaisha Toshiba | Memory system |
US9369152B2 (en) * | 2013-03-07 | 2016-06-14 | Marvell World Trade Ltd. | Systems and methods for decoding with late reliability information |
US20160013814A1 (en) * | 2014-07-10 | 2016-01-14 | International Business Machines Corporation | Decoding of product codes |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347490A (zh) * | 2018-12-09 | 2019-02-15 | 江苏华存电子科技有限公司 | 一种用于数据纠错ecc译码核主控装置 |
WO2020118943A1 (zh) * | 2018-12-09 | 2020-06-18 | 江苏华存电子科技有限公司 | 一种用于数据纠错ecc译码核主控装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107590018B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106158040B (zh) | 读取电压准位估测方法、存储器存储装置及控制电路单元 | |
CN107092536A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104733051B (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
CN105023613B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN105022674B (zh) | 解码方法、存储器存储装置、存储器控制电路单元 | |
CN105304142B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI672698B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN107608818A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109901945A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TW201539465A (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN106843744A (zh) | 数据程序化方法与内存储存装置 | |
CN109491828A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US10997067B2 (en) | Data storing method, memory controlling circuit unit and memory storage device | |
CN105304143B (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN106681856A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109901784A (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
CN107305510A (zh) | 数据处理方法、存储器存储装置及存储器控制电路单元 | |
CN105575440B (zh) | 错误处理方法、存储器储存装置及存储器控制电路单元 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN112051963A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN107590018A (zh) | 译码方法、存储器控制电路单元及存储器存储装置 | |
CN107608817B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109559774A (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN109508252B (zh) | 数据编码方法、存储器控制电路单元与存储器存储装置 | |
CN106708649B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |