CN105468292A - 数据存取方法、存储器储存装置及存储器控制电路单元 - Google Patents
数据存取方法、存储器储存装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN105468292A CN105468292A CN201410450432.2A CN201410450432A CN105468292A CN 105468292 A CN105468292 A CN 105468292A CN 201410450432 A CN201410450432 A CN 201410450432A CN 105468292 A CN105468292 A CN 105468292A
- Authority
- CN
- China
- Prior art keywords
- verification code
- data
- programming unit
- physical programming
- unit
- 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
- Read Only Memory (AREA)
Abstract
本发明提供一种数据存取方法、存储器储存装置及存储器控制电路单元。所述数据存取方法包括:判断储存第一数据的第一实体程序化单元属于第一类实体程序化单元或第二类实体程序化单元;若第一实体程序化单元属于第一类实体程序化单元,产生对应于第一数据的第一验证码与用以与第一验证码结合的第二验证码,并且将第一数据与第一验证码写入至第一实体程序化单元;以及当使用第一验证码无法成功地解码第一数据时,结合第二验证码与第一验证码来解码第一数据。
Description
技术领域
本发明是有关于一种数据存取方法,且特别是有关于一种用于可复写式非易失性存储模块的数据存取方法、存储器储存装置及存储器控制电路单元。
背景技术
数码相机、行动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储模块(例如,快闪存储器)具有数据非挥发性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,为了确保数据的完整性,欲写入至可复写式非易失性存储模块的数据会被编码。编码过的数据才会被写入至可复写式非易失性存储模块。从可复写式非易失性存储模块中读取出的数据则会经过对应的解码程序。在出厂时,每个可复写式非易失性存储模块的数据保护能力取决于编码时所产生的错误校验与校正码的强度。但,所产生的错误校验与校正码的强度并不会根据快闪存储器的特性而作调整。
发明内容
本发明提供一种数据存取方法、存储器储存装置及存储器控制电路单元,其可提升对于具有不同可靠度的实体程序化单元的使用效率。
本发明的一范例实施例提供一种数据存取方法,其用于可复写式非易失性存储模块,其中可复写式非易失性存储模块包含多个实体抹除单元,其中每一实体抹除单元具有多个实体程序化单元,所述数据存取方法包括:判断所述实体程序化单元中用以储存第一数据的第一实体程序化单元属于第一类实体程序化单元或第二类实体程序化单元;若第一实体程序化单元属于第一类实体程序化单元,产生对应于第一数据的第一验证码与用以与第一验证码结合的第二验证码,并且将第一数据与第一验证码写入至第一实体程序化单元中;以及若使用第一验证码无法成功地解码第一数据,结合第二验证码与第一验证码来解码第一数据。
在本发明的一范例实施例中,所述数据存取方法还包括:若第一实体程序化单元属于第二类实体程序化单元,产生对应于第一数据的第三验证码,并且将第一数据、第三验证码及用以与第五验证码结合的第四验证码写入至第一实体程序化单元,其中第五验证码用以验证第二数据,第二数据与第五验证码储存于所述实体程序化单元中属于第一类实体程序化单元的第二实体程序化单元,并且第三验证码的数据长度短于第一验证码的数据长度。
在本发明的一范例实施例中,所述数据存取方法还包括:若使用第五验证码无法成功地解码第二数据,结合第四验证码与第五验证码来解码第二数据。
在本发明的一范例实施例中,若使用第五验证码无法成功地解码第二数据,所述结合第四验证码与第五验证码来解码第二数据的步骤包括:根据读取指令从第二实体程序化单元中读取第二数据与第五验证码;根据第五验证码对第二数据执行第一解码,并且判断第一解码是否产生有效码字;以及若第一解码没有产生有效码字,从第一实体程序化单元读取第四验证码,结合第四验证码与第五验证码为第六验证码,并且根据第六验证码对第二数据执行第二解码。
在本发明的一范例实施例中,所述第五验证码的数据长度等于第三验证码的数据长度与第四验证码的数据长度的总和。
在本发明的一范例实施例中,所述数据存取方法还包括:将第二验证码写入至所述实体程序化单元中属于第二类实体程序化单元的第三实体程序化单元。
在本发明的一范例实施例中,若使用第一验证码无法成功地解码第一数据,所述结合第二验证码与第一验证码来解码第一数据的步骤包括:根据读取指令从第一实体程序化单元中读取第一数据与第一验证码;根据第一验证码对第一数据执行第一解码,并且判断第一解码是否产生有效码字;以及若第一解码没有产生有效码字,读取第二验证码,结合第一验证码与第二验证码为第七验证码,并且根据第七验证码对第一数据执行第二解码。
在本发明的一范例实施例中,所述第一类实体程序化单元是上实体程序化单元,并且第二类实体程序化单元是下实体程序化单元。
在本发明的一范例实施例中,若第一实体程序化单元属于第一类实体程序化单元,所述数据存取方法还包括:结合第一验证码与第二验证码以获得由N个比特组成的第七验证码,其中第一验证码是由N个比特中的第1至第M个比特组成,并且第二验证码是由N个比特中的第M+1至第N个比特组成。
在本发明的一范例实施例中,所述数据存取方法是使用低密度奇偶校验码演算法来编码与解码。
本发明的一范例实施例提供一种存储器控制电路单元,其用于控制可复写式非易失性存储模块,其中可复写式非易失性存储模块包含多个实体抹除单元,其中每一实体抹除单元具有多个实体程序化单元,所述存储器控制电路单元包括主机接口、存储器接口、存储器管理电路及错误校验与校正电路。主机接口用以電性連接至主机系统。存储器接口用以電性連接至可复写式非易失性存储模块。存储器管理电路電性連接至主机接口与存储器接口并且用以发送读取指令序列以从可复写式非易失性存储模块中读取数据,或是用以发送写入指令序列以写入数据至可复写式非易失性存储模块中。错误校验与校正电路電性連接至存储器管理电路。存储器管理电路用以判断所述实体程序化单元中用以储存第一数据的第一实体程序化单元属于第一类实体程序化单元或第二类实体程序化单元。若第一实体程序化单元属于第一类实体程序化单元,存储器管理电路还用以指示错误校验与校正电路产生对应于第一数据的第一验证码与用以与第一验证码结合的第二验证码,并且存储器管理电路还用以发送写入指令序列以将第一数据与第一验证码写入至第一实体程序化单元中。若使用第一验证码无法成功地解码第一数据,错误校验与校正电路还用以结合第二验证码与第一验证码来解码第一数据。
在本发明的一范例实施例中,若第一实体程序化单元属于第二类实体程序化单元,所述存储器管理电路还用以指示错误校验与校正电路产生对应于第一数据的第三验证码,并且存储器管理电路还用以发送写入指令序列以将第一数据、第三验证码及用以与第五验证码结合的第四验证码写入至第一实体程序化单元中,其中第五验证码用以验证第二数据,第二数据与第五验证码储存于所述实体程序化单元中属于第一类实体程序化单元的第二实体程序化单元,并且第三验证码的数据长度短于第一验证码的数据长度。
在本发明的一范例实施例中,若使用第五验证码无法成功地解码第二数据,所述错误校验与校正电路还用以结合第四验证码与第五验证码来解码第二数据。
在本发明的一范例实施例中,若使用第五验证码无法成功地解码第二数据时,所述错误校验与校正电路结合第四验证码与第五验证码来解码第二数据的操作包括:由存储器管理电路根据读取指令,发送读取指令序列以从第二实体程序化单元中读取第二数据与第五验证码,其中第二实体程序化单元属于第一类实体程序化单元;由错误校验与校正电路根据第五验证码对第二数据执行第一解码,并且判断第一解码是否产生有效码字;以及若第一解码没有产生有效码字,由存储器管理电路发送读取指令序列以从第一实体程序化单元读取第四验证码,结合第四验证码与第五验证码为第六验证码,并且由错误校验与校正电路根据第六验证码对第二数据执行第二解码。
在本发明的一范例实施例中,存储器管理电路还用以发送写入指令序列以将第二验证码写入至所述实体程序化单元中属于第二类实体程序化单元的第三实体程序化单元。
在本发明的一范例实施例中,若使用第一验证码无法成功地解码第一数据时,所述错误校验与校正电路结合第二验证码与第一验证码来解码第一数据的操作包括:由存储器管理电路根据读取指令,发送读取指令序列以从第一实体程序化单元中读取第一数据与第一验证码;由错误校验与校正电路根据第一验证码对第一数据执行第一解码,并且判断第一解码是否产生有效码字;以及若第一解码没有产生有效码字,由存储器管理电路发送读取指令序列以读取第二验证码,由错误校验与校正电路结合第一验证码与第二验证码为第七验证码并且根据第七验证码对第一数据执行第二解码。
在本发明的一范例实施例中,若第一实体程序化单元属于第二类实体程序化单元,所述存储器管理电路还用以结合第一验证码与第二验证码以获得由N个比特组成的第七验证码,其中第一验证码是由N个比特中的第1至第M个比特组成,并且第二验证码是由N个比特中的第M+1至第N个比特组成。
在本发明的一范例实施例中,所述错误校验与校正电路是使用低密度奇偶校验码演算法来编码与解码。
本发明的一范例实施例提供一种存储器储存装置,其包括连接接口单元、可复写式非易失性存储模块及存储器控制电路单元。连接接口单元用以電性連接至主机系统。可复写式非易失性存储模块包含多个实体抹除单元,其中每一所述实体抹除单元具有多个实体程序化单元。存储器控制电路单元電性連接至连接接口单元与可复写式非易失性存储模块。存储器控制电路单元用以判断所述实体程序化单元中用以储存第一数据的第一实体程序化单元属于第一类实体程序化单元或第二类实体程序化单元。若第一实体程序化单元属于第一类实体程序化单元,存储器控制电路单元还用以产生对应于第一数据的第一验证码与用以与第一验证码结合的第二验证码,并且将第一数据与第一验证码写入至第一实体程序化单元中。若使用第一验证码无法成功地解码第一数据,存储器控制电路单元还用以结合第二验证码与第一验证码来解码第一数据。
在本发明的一范例实施例中,若第一实体程序化单元属于第二类实体程序化单元,所述存储器控制电路单元还用以产生对应于第一数据的第三验证码,并且将第一数据、第三验证码及用以与第五验证码结合的第四验证码写入至第一实体程序化单元中,其中第五验证码用以验证第二数据,第二数据与第五验证码储存于所述实体程序化单元中属于第一类实体程序化单元的第二实体程序化单元,并且第三验证码的数据长度短于第一验证码的数据长度。
在本发明的一范例实施例中,若使用第五验证码无法成功地解码第二数据,所述存储器控制电路单元还用以结合第四验证码与第五验证码来解码第二数据。
在本发明的一范例实施例中,若使用第五验证码无法成功地解码第二数据,所述存储器控制电路单元结合第四验证码与第五验证码来解码第二数据的操作包括:根据读取指令从第二实体程序化单元中读取第二数据与第五验证码;根据第五验证码对第二数据执行第一解码,并且判断第一解码是否产生有效码字;以及若第一解码没有产生有效码字,从第一实体程序化单元读取第四验证码,结合第四验证码与第五验证码为第六验证码,并且根据第六验证码对第二数据执行第二解码。
在本发明的一范例实施例中,所述存储器控制电路单元还用以将第二验证码写入至所述实体程序化单元中属于第二类实体程序化单元的第三实体程序化单元。
在本发明的一范例实施例中,若使用第一验证码无法成功地解码第一数据,所述存储器控制电路单元结合第二验证码与第一验证码来解码第一数据的操作包括:根据读取指令从第一实体程序化单元中读取第一数据与第一验证码,其中第一实体程序化单元属于第一类实体程序化单元;根据第一验证码对第一数据执行第一解码,并且判断第一解码是否产生有效码字;以及若第一迭代解码没有产生有效码字,读取第二验证码,结合第一验证码与第二验证码为第七验证码,并且根据第七验证码对第一数据执行第二解码。
在本发明的一范例实施例中,若第一实体程序化单元是属于第一类实体程序化单元,存储器控制电路单元还用以结合第一验证码与第二验证码以获得由N个比特组成的第七验证码,其中第一验证码是由N个比特中的第1至第M个比特组成,并且第二验证码是由N个比特中的第M+1至第N个比特组成。
在本发明的一范例实施例中,所述存储器控制电路单元是使用低密度奇偶校验码演算法来编码与解码。
本发明的一范例实施例提供一种存储器储存装置,其包括连接接口单元、可复写式非易失性存储模块及存储器控制电路单元。连接接口单元用以電性連接至主机系统。可复写式非易失性存储模块包含多个实体抹除单元,其中每一所述实体抹除单元具有多个实体程序化单元。存储器控制电路单元電性連接至连接接口单元与可复写式非易失性存储模块。存储器控制电路单元用以判断所述实体程序化单元中用以储存第一数据的第一实体程序化单元的可靠度是属于第一类可靠度或第二类可靠度。若第一实体程序化单元的可靠度是属于第一类可靠度,存储器控制电路单元还用以产生对应于第一数据的第一主验证码,其中第一主验证码具有第一长度。若第一实体程序化单元的可靠度是属于第二类可靠度,存储器控制电路单元还用以产生对应于第一数据的第二主验证码,其中第二主验证码具有第二长度,并且第一长度长于第二长度。
在本发明的一范例实施例中,若第一实体程序化单元的可靠度是属于第一类可靠度,所述存储器控制电路单元还用以产生对应于第一数据的副验证码,其中副验证码用以与第一主验证码结合使用、提供解码信息或者在预解码程序中使用。
在本发明的一范例实施例中,所述存储器控制电路单元产生对应于第一数据的副验证码的操作包括:获得产生矩阵并且根据产生矩阵来产生预设验证码,其中第一主验证码包含于预设验证码中;以及根据预设验证码与第一主验证码来产生副验证码。
在本发明的一范例实施例中,所述第二类可靠度高于所述第一类可靠度。
基于上述,根据欲储存数据的实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元,本发明可选择产生一个验证码或可结合使用的多个验证码,并且在无法成功解码时使用结合后的验证码来解码。藉此,可提升对于具有不同可靠度的实体程序化单元的使用效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所绘示的主机系统与存储器储存装置的范例示意图;
图2是根据本发明的一范例实施例所绘示的电脑、输入/输出装置与存储器储存装置的范例示意图;
图3是根据本发明的一范例实施例所绘示的主机系统与存储器储存装置的范例示意图;
图4是绘示图1所示的存储器储存装置的概要方块图;
图5是根据本发明的一范例实施例所绘示的可复写式非易失性存储模块的概要方块图;
图6是根据本发明的一范例实施例所绘示的记忆胞阵列的范例示意图;
图7是根据一范例实施例所绘示储存于记忆胞阵列中的写入数据所对应的栅极电压的统计分配图;
图8是根据一范例实施例所绘示的从记忆胞中读取数据的示意图;
图9是根据另一范例实施例所绘示的从记忆胞中读取数据的示意图;
图10是根据一范例实施例所绘示的管理可复写式非易失性存储模块的示意图;
图11是根据一范例实施例所绘示的存储器控制电路单元的概要方块图;
图12是根据一范例实施例绘示奇偶检验矩阵的示意图;
图13是根据一范例实施例绘示读取验证比特的示意图;
图14与图15是根据本发明的一范例实施例所绘示的写入数据的示意图;
图16是根据本发明的另一范例实施例所绘示的写入数据的示意图;
图17是根据本发明的一范例实施例所绘示的数据存取方法的流程图;
图18是根据本发明的另一范例实施例所绘示的数据存取方法的流程图。
附图标记说明:
11:主机系统;
12:电脑;
122:微处理器;
124:随机存取存储器;
13:输入/输出装置;
126:系统总线;
128:数据传输接口;
21:鼠标
22:键盘;
23:显示器;
24:打印机;
25:随身盘;
26:记忆卡;
27:固态硬盘;
31:数码相机;
32:SD卡;
33:MMC卡;
34:记忆棒;
35:CF卡;
36:嵌入式储存装置;
10:存储器储存装置;
402:连接接口单元;
404:存储器控制电路单元;
406:可复写式非易失性存储模块;
502:记忆胞阵列;
504:字符线控制电路;
506:比特线控制电路;
508:行解码器;
510:数据输入/输出缓冲器;
512:控制电路;
602:记忆胞;
604:比特线;
606:字符线;
608:共用源极线;
612、614:晶体管;
400(0)~400(N):实体抹除单元;
1102:存储器管理电路;
1104:主机接口;
1106:存储器接口;
1108:错误校验与校正电路;
1110:缓冲存储器;
1112:电源管理电路;
1230:二分图;
1232(1)~1232(k):奇偶节点;
1234(1)~1234(n):讯息节点;
Lj→i、Li→j:可靠度信息
1301~1306:区间;
1310、1320:储存状态;
b1、b2、b3、b4、b5:验证比特;
1401、1402、1403、1601、1602、1603、1604:实体程序化单元;
1411、1412、1512、D1、D2、D3、D4:数据;
1421、1422、1431、1521、1531、1532、H1_1、H1_2、L1、H2_1、H2_2、L2:验证码;
S1701~S1703、S1801~S1810:步骤。
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图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型快闪存储模块、多阶记忆胞(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,以MLCNAND型快闪存储器为例,随着不同的临界电压,每一记忆胞具有4种储存状态,并且此些储存状态分别地代表"11"、"10"、"00"与"01"等比特。换言之,每一个储存状态包括最低有效比特(LeastSignificantBit,LSB)以及最高有效比特(MostSignificantBit,MSB)。在本范例实施例中,储存状态(即,"11"、"10"、"00"与"01")中从左侧算起的第1个比特为LSB,而从左侧算起的第2个比特为MSB。因此,在此范例实施例中,每一记忆胞可储存2个比特。必须了解的是,图7所绘示的临界电压及其储存状态的对应仅为一个范例。在本发明另一范例实施例中,临界电压与储存状态的对应亦可是随着临界电压越大而以"11"、"10"、"01"与"00"排列,或是其他排列。此外,在另一范例实施例中,亦可定义从左侧算起之第1个比特为MSB,而从左侧算起之第2个比特为LSB。
图8是根据一范例实施例所绘示的从记忆胞中读取数据的示意图,其是以MLCNAND型快闪存储器为例。
请参照图8,记忆胞阵列502的记忆胞的读取运作是藉由施予读取电压于控制栅极,藉由记忆胞通道的导通状态,来识别记忆胞储存的数据。验证比特(VA)是用以指示施予读取电压VA时记忆胞通道是否为导通;验证比特(VC)是用以指示施予读取电压VC时,记忆胞通道是否为导通;验证比特(VB)是用以指示施予读取电压VB时,记忆胞通道是否为导通。在此假设验证比特是”1”时表示对应的记忆胞通道导通,而验证比特是”0”时表示对应的记忆胞通道没有导通。如图8所示,通过验证比特(VA)~(VC)可以判断记忆胞是处于哪一个储存状态,进而取得所储存的比特。
图9是根据另一范例实施例所绘示的从记忆胞中读取数据的示意图。
请参照图9,以一TLCNAND型快闪存储器为例,每一个储存状态包括左侧算起的第1个比特的最低有效比特LSB、从左侧算起的第2个比特的中间有效比特(CenterSignificantBit,CSB)以及从左侧算起的第3个比特的最高有效比特MSB。在此范例中,依照不同的临界电压,记忆胞具有8种储存状态(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"与"011")。藉由施加读取电压VA~VG于控制栅极,可以识别记忆胞所储存的比特。其中,值得说明的是,此8种储存状态的排列顺序,可依制造商的设计而订,非以本范例的排列方式为限。
图10是根据一范例实施例所绘示的管理可复写式非易失性存储模块的示意图。
请参照图10,可复写式非易失性存储模块406的记忆胞702会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元400(0)~400(N)。具体来说,同一条字符线上的记忆胞会组成一或多个实体程序化单元。若每一个记忆胞可储存2个以上的比特,则同一条字符线上的实体程序化单元可被分类为下实体程序化单元与上实体程序化单元。例如,每一记忆胞的LSB是属于下实体程序化单元,并且每一记忆胞的MSB是属于上实体程序化单元。一般来说,在MLCNAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度。此外,在一般情况下,下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在此范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面或是实体扇(sector)。若实体程序化单元为实体页面,则每一个实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体扇,用以储存使用者的数据,而冗余比特区用以储存系统的数据(例如,错误更正码)。在本范例实施例中,每一个数据比特区包含32个实体扇,且一个实体扇的大小为512比特组(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,本发明并不限制实体扇的大小以及个数。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的记忆胞。例如,实体抹除单元为实体区块。
图11是根据一范例实施例所绘示的存储器控制电路单元的概要方块图。必须了解的是,图11所示的存储器控制电路单元的结构仅为一范例,本发明不以此为限。
请参照图11,存储器控制电路单元404包括存储器管理电路1102、主机接口1104、存储器接口1106与错误校验与校正电路1108。
存储器管理电路1102用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路1102具有多个控制指令,并且在存储器储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路1102的操作时,等同于说明存储器控制电路单元404的操作,以下并不再赘述。
在本范例实施例中,存储器管理电路1102的控制指令是以韧体型式来实作。例如,存储器管理电路1102具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路1102的控制指令亦可以程序码型式储存于可复写式非易失性存储模块406的特定区域(例如,存储模块中专用于存放系统数据的系统区)中。此外,存储器管理电路1102具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储模块406中的控制指令载入至存储器管理电路1102的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路1102的控制指令亦可以一硬体型式来实作。例如,存储器管理电路1102包括微控制器、记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是電性連接至微控制器。其中,记忆胞管理电路用以管理可复写式非易失性存储模块406的实体区块;存储器写入电路用以对可复写式非易失性存储模块406下达写入指令以将数据写入至可复写式非易失性存储模块406中;存储器读取电路用以对可复写式非易失性存储模块406下达读取指令以从可复写式非易失性存储模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储模块406下达抹除指令以将数据从可复写式非易失性存储模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储模块406的数据以及从可复写式非易失性存储模块406中读取的数据。
主机接口1104是電性連接至存储器管理电路1102并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口1104来传送至存储器管理电路1102。在本范例实施例中,主机接口1104是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口1104亦可以是相容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口1106是電性連接至存储器管理电路1102并且用以存取可复写式非易失性存储模块406。也就是说,欲写入至可复写式非易失性存储模块406的数据会经由存储器接口1106转换为可复写式非易失性存储模块406所能接受的格式。具体来说,若存储器管理电路1102要存取可复写式非易失性存储模块406时,存储器接口1106会传送对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
错误校验与校正电路1108是電性連接至存储器管理电路1102并且用以执行错误校验与校正程序以确保数据的正确性。具体来说,当存储器管理电路1102从主机系统11中接收到写入指令时,错误校验与校正电路1108会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ECCcode)及/或错误校验码(errordetectingcode,EDC),并且存储器管理电路1102会将对应此写入指令的数据与对应的错误更正码或错误校验码写入至可复写式非易失性存储模块406中。之后,当存储器管理电路1102从可复写式非易失性存储模块406中读取数据时会同时读取此数据对应的错误更正码及/或错误校验码,并且错误校验与校正电路1108会依据此错误更正码及/或错误校验码对所读取的数据执行错误校验与校正程序。在此范例实施例中,错误校验与校正电路1108所使用的是低密度奇偶校验码(lowdensityparitycode,LDPC)。然而,在另一范例实施例中,错误校验与校正电路1108所使用的也可以是BCH码、回旋码(convolutionalcode)、涡轮码(turbocode),但不限于此。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器1110与电源管理电路1112。
缓冲存储器1110是電性連接至存储器管理电路1102并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储模块406的数据。
电源管理电路1112是電性連接至存储器管理电路1102并且用以控制存储器储存装置10的电源。
在低密度奇偶校验码中,是用一个奇偶检验矩阵来定义有效的码字。以下将奇偶检验矩阵标记为矩阵H,并且一码字标记为CW。依照以下方程序(1),若奇偶检验矩阵H与码字CW的相乘是零向量,表示码字CW为有效的码字。其中运算子表示模2(mod2)的矩阵相乘。换言之,矩阵H的零空间(nullspace)便包含了所有的有效码字。然而,本发明并不限制码字CW的内容。例如,码字CW也可以包括用任意演算法所产生的错误更正码或是错误校验码。
其中矩阵H的维度是k-乘-n(k-by-n),码字CW的维度是1-乘-n。k与n为正整数。码字CW中包括了讯息比特与奇偶比特,即码字CW可以表示成[MP],其中向量M是由讯息比特所组成,向量P是由奇偶比特所组成。向量M的维度是1-乘-(n-k),而向量P的维度是1-乘-k。以下将讯息比特与奇偶比特统称为数据比特。换言之,码字CW中具有n个数据比特,其中讯息比特的长度为(n-k)比特,并且奇偶比特的长度是k比特,即码字CW的码率(coderate)为(n-k)/n。
一般来说在编码时会使用一个产生矩阵(以下标记为G),使得对于任意的向量M都可满足以下方程序(2)。其中产生矩阵G的维度是(n-k)-乘-n。
由方程序(2)所产生的码字CW为有效的码字。因此可将方程序(2)代入方程序(1),藉此得到以下方程序(3)。
由于向量M可以是任意的向量,因此以下方程序(4)必定会满足。也就是说,在决定奇偶检验矩阵H以后,对应的产生矩阵G也可被决定。
在解码一个码字CW时,会先对码字中的数据比特执行一个奇偶校验程序,例如将奇偶检验矩阵H与码字CW相乘以产生一个向量(以下标记为S,如以下方程序(5)所示)。若向量S是零向量,则可直接输出码字CW。若向量S不是零向量,则表示码字CW不是有效的码字。
向量S的维度是k-乘-1,其中每一个元素亦称为校验子(syndrome)。若码字CW不是有效的码字,则错误校验与校正电路1108会执行一个解码程序,以尝试更正码字CW中的错误比特。
图12是根据一范例实施例绘示奇偶检验矩阵的示意图。
请参照图12,一般来说,奇偶校验矩阵H可以表示为二分图(bipartitegraph)1230,其中包括奇偶节点1232(1)~1232(k)与讯息节点1234(1)~1234(n)。每一个奇偶节点1232(1)~1232(k)是对应到一个校验子,而每一个讯息节点1234(1)~1234(n)是对应一个数据比特。数据比特与校验子之间的对应关系(即,讯息节点1234(1)~1234(n)与奇偶节点1232(1)~1232(k)之间的连结关系)是根据奇偶检验矩阵所产生。具体来说,若奇偶校验矩阵中第i列第j行的元素为1,则第i个奇偶节点1232(i)便会连接到第j个讯息节点1234(j),其中i与j为正整数。
当存储器管理电路1102从可复写式非易失性存储模块406中读取n个数据比特(形成一个码字)时,则存储器管理电路1102也会取得每一个数据比特的一通道可靠度信息。此通道可靠度信息是用以表示对应的数据比特被解码为比特”1”或是”0”的机率(或称信心度),以下再详细说明。在二分图1230中,讯息节点1234(1)~1234(n)也会接收到对应的通道可靠度信息。例如,讯息节点1232(1)会接收第1个数据比特的通道可靠度信息L1,而讯息节点1232(j)会接收第j个数据比特的通道可靠度信息Lj。
错误校验与校正电路1108会根据二分图1230的结构与通道可靠度信息L1~Ln来执行解码程序。此解码程序会包括迭代解码。具体来说,在迭代解码中,讯息节点1234(1)~1234(n)会计算出可靠度信息给奇偶节点1232(1)~1232(k),并且奇偶节点1232(1)~1232(k)也会计算出可靠度信息给讯息节点1234(1)~1234(n)。这些可靠度信息会沿着这些二分图1230中的边(edge)来传送。例如,奇偶节点1232(i)传送给讯息节点1234(j)的是可靠度信息Li→j,而讯息节点1234(j)传送给奇偶节点1232(i)是可靠度信息Lj→i。这些可靠度信息是用来表示一个节点认为某一个数据比特被解码为”1”或是”0”的机率(亦称为信心度)有多少。举例来说,可靠度信息Lj→i表示讯息节点1234(j)认为第j个数据比特被解码为”1”或是”0”的信心度(可为正或是负),而可靠度信息Li→j表示奇偶节点1232(i)认为第j个数据比特被解码为”1”或是”0”的信心度。而讯息节点1234(1)~1234(n)与奇偶节点1232(1)~1232(k)会根据输入的可靠度信息来计算输出的可靠度信息,其近似于计算一个数据比特被解码为”1”或是”0”的条件机率。因此,上述传送可靠度信息的过程又被称为置信传播(beliefpropagation)。
当采用不同的演算法,讯息节点1234(1)~1234(n)及/或奇偶节点1232(1)~1232(k)会计算出不同的可靠度信息。例如,错误校验与校正电路1108可以采用总和-乘积演算法(Sum-ProductAlgorithm)、最小值-总和演算法(Min-SumAlgorithm)、或是比特翻转(bit-flippingAlgorithm),本发明并不限制采用何种演算法。
在迭代解码的每一次迭代中,讯息节点1234(1)~1234(n)会传递可靠度信息给奇偶节点1232(1)~1232(k),并且奇偶节点1232(1)~1232(k)会传递可靠度信息给讯息节点1234(1)~1234(n)。在每一次迭代过后,讯息节点1234(1)~1234(n)会根据目前的可靠度信息计算出每一个数据比特应该被解码为比特”1”或是”0”。接下来对这些计算出的数据比特执行奇偶校验程序,即将数据比特所形成的码字与奇偶检验矩阵相乘,藉此判断该码字是否为有效的码字。若所产生的码字为有效的码字,则迭代解码会停止。若所产生的码字不是有效的码字,则会进行下一次的迭代。若迭代解码的迭代次数超过一个预设值,则迭代解码也会停止,表示解码失败。
图13是根据一范例实施例绘示读取验证比特的示意图。请参照图13,在此假设属于储存状态1310的记忆胞所储存的是比特”1”,而属于储存状态1320的记忆胞所储存的是比特”0”。储存状态1310与储存状态1320有部份的重迭,亦即在某些读取电压,部份属于储存状态1310的记忆胞会被判别为属于储存状态1320,而部份属于储存状态1320的记忆胞会被判别为属于储存状态1310。在一范例实施例中,当施加读取电压于记忆胞的控制栅极以后,随着记忆胞通道是否导通,存储器管理电路1102所取得的验证比特会是”0”或是”1”。在此假设若记忆胞通道没有导通时则对应的验证比特是”0”,反之则是”1”。若存储器管理电路1102施加了读取电压V1~V5至某一记忆胞,则存储器管理电路1102会取得5个验证比特。具体来说,读取电压V1是对应到验证比特b1;读取电压V2是对应到验证比特b2;读取电压V3是对应到验证比特b3;读取电压V4是对应到验证比特b4;读取电压V5是对应到验证比特b5。若一个记忆胞的临界电压是在区间1301,则从验证比特b1至验证比特b5,存储器管理电路1102所取得的验证比特会是”11111”;若记忆胞的临界电压是在区间1302,则验证比特会是”01111”;若记忆胞的临界电压是在区间1303,则验证比特会是”00111”;若记忆胞的临界电压是在区间1304,则验证比特会是”00011”;若记忆胞的临界电压是在区间1305,则验证比特会是”00001”;若记忆胞的临界电压是在区间1306,则验证比特会是”00000”。在另一范例实施例中,可复写式非易失性存储模块406也可以将对验证比特b1~b5做运算以后,把运算后的验证比特传送给存储器管理电路1102。例如,验证比特b2与b4会进行互斥或运算,而验证比特b1与b5会进行互斥或运算。如此一来,存储器管理电路1102只会取得3个验证比特。本发明并不限制验证比特的个数与内容。
在此范例实施例中,读取电压V1~V5的其中之一会被设定为正负号(sign)读取电压。此正负号读取电压是用来决定数据比特为何。例如,若读取电压V3为正负号读取电压,则数据比特会相同于验证比特b3;若读取电压V2为正负号读取电压,则数据比特会相同于验证比特b2,以此类推。在每一个区间中,根据记忆胞属于储存状态1310的机率与属于储存状态1320的机率,可以计算出对数似然比(LogLikelihoodRatio,LLR),而在此范例实施例中此对数似然比亦被称为数据比特的通道可靠度信息。在一范例实施例中,各个区间所对应的对数似然比可以事先被计算出来并且储存在一个查找表中。存储器管理电路1102可以将验证比特b1~b5输入此查找表中,藉此取得对应的对数似然比以作为通道可靠度信息。所取得的通道可靠度信息(即,图12中的L1~Ln)便可以来执行上述的迭代解码。在一范例实施例中,若设定不同的正负号读取电压,则会使用不同的查找表来取得通道可靠度信息。
在上述的范例实施例中,若读取电压的个数为x个,则可以分出x+1个区间,其中x为正整数。然而,在另一范例实施例中,若读取电压的个数为x个,则可以分出y个区间,其中y可为任意的正整数。本发明并不限制x个读取电压会产生几个区间。若读取电压的个数为1(例如,仅使用读取电压V3),则所进行的解码程序亦被称为硬比特模式解码程序。若读取电压的个数大于1,则所进行的解码程序亦被称为软比特模式解码程序。一般来说,软比特模式解码程序所使用的信息较多,因此能更正较多的错误比特,但执行速度也比较慢。此外,在一范例实施例中,当进行硬比特模式解码程序时,存储器管理电路1102可以直接根据所取得的验证比特来计算出通道可靠度信息,并不会通过查找表。例如,若验证比特为”1”,则通道可靠度信息可设定为z;若验证比特为”0”,则通道可靠度信息可设定为-z,其中z为实数。
在本范例实施例中,可复写式非易失性存储模块406中部份或全部的实体程序化单元会被分组为第一类实体程序化单元或第二类实体程序化单元。在本范例实施例中,是依据一个实体程序化单元的可靠度来区别此实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元。属于第一类实体程序化单元的实体程序化单元的可靠度(reliability)会低于属于第二类实体程序化单元的实体程序化单元的可靠度。一个实体程序化单元的可靠度与储存在此实体程序化单元中的数据发生错误的机率有关。若一个实体程序化单元的可靠度越高,则储存在此实体程序化单元中的数据发生错误的机率越低。若一个实体程序化单元的可靠度越低,则储存在此实体程序化单元中的数据发生错误的机率越高。换言之,储存在第一类实体程序化单元中的数据发生错误的机率会高于储存在第二类实体程序化单元中的数据发生错误的机率。
在本范例实施例中,存储器管理电路1102是根据一个实体程序化单元的预设属性来决定此实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元。此预设属性通常不会随着时间或实体程序化单元的使用程度而改变。在本范例实施例中,一个实体程序化单元的预设属性包括指示一个实体程序化单元是属于上实体程序化单元或下实体程序化单元。若一个实体程序化单元是属于上实体程序化单元,则此实体程序化单元会被判定为属于第一类实体程序化单元。若一个实体程序化单元是属于下实体程序化单元,则此实体程序化单元会被判定为属于第二类实体程序化单元。此外,在一范例实施例中,一个实体程序化单元的预设属性也可以包括指示一个实体程序化单元是否是用以储存较重要的数据(例如,系统数据或使用者数据)。若一个实体程序化单元是用以储存较重要的数据,则此实体程序化单元会被判定为属于第一类实体程序化单元。
在一范例实施例中,一个实体程序化单元的可靠度可能会随着时间或使用程度而改变,因此,一个实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元可能也会随着使用时间及/或使用程度而改变。例如,在一范例实施例中,存储器管理电路1102会判断一个实体程序化单元的可靠度是否低于一门槛值。若一个实体程序化单元的可靠度低于此门槛值,存储器管理电路1102会判定此实体程序化单元属于第一类实体程序化单元。若一个实体程序化单元的可靠度不低于此门槛值,存储器管理电路1102会判定此实体程序化单元属于第二类实体程序化单元。例如,在一范例实施例中,对于一个没有被使用过的可复写式非易失性存储模块来说,此可复写式非易失性存储模块中所有或大部分的实体程序化单元可能都是第二类实体程序化单元。随着每一个实体程序化单元的使用时间及/或使用程度增加,例如,被重复的写入或抹除超过了一预定次数,则此可复写式非易失性存储模块中部份属于第二类实体程序化单元的实体程序化单元可能会转变为第一类实体程序化单元。
在一范例实施例中,一个实体程序化单元的可靠度是与此实体程序化单元的比特错误率(BitErrorRate,BER)有关。例如,在一范例实施例中,一个实体程序化单元的可靠度是负相关于(negativelycorrelated)此实体程序化单元的比特错误率,因此,属于第一类实体程序化单元的实体程序化单元的比特错误率会高于属于第二类实体程序化单元的实体程序化单元的比特错误率。在另一范例实施例中,一个实体程序化单元的可靠度也可以是与此实体程序化单元的使用程度有关。每一个实体程序化单元会被对应至一个使用程度值。此使用程度值用以指示一个实体程序化单元的使用程度。例如,一个实体程序化单元的使用程度包括此实体程序化单元的抹除次数、写入次数、读取次数、数据储存时间的至少其中之一或其组合,且不限于此。存储器管理电路1102可以根据一个实体程序化单元的比特错误率及/或使用程度值来决定此实体程序化单元的可靠度。
在本范例实施例中,一个实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元可以是被预先决定并且记录于至少一查找表中,或者是被即时地决定。例如,若一个实体程序化单元被选择来储存对应于一写入指令或一垃圾回收(garbagecollection)程序的一笔数据,存储器管理电路1102可以通过查询此至少一查找表或者是即时地根据此实体程序化单元的上述预设属性、错误比特率、使用程度值及/或可靠度等信息来决定此实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元。若用来储存数据的实体程序化单元是属于第一类实体程序化单元,则存储器管理电路1102会使用数据长度较长的错误更正码及/或错误校验码来保护此数据。若用来储存数据的实体程序化单元是属于第二类实体程序化单元,则存储器管理电路1102会使用数据长度较短的错误更正码及/或错误校验码来保护此数据。若错误更正码及/或错误校验码的数据长度较长,则可用以检测出更多的错误比特。错误更正码与错误校验码可以单独使用或一并使用,本发明不加以限制。以下将以验证码作为错误更正码及/或错误校验码的统称。
在一范例实施例中,存储器管理电路1102会辨识使用第一程序化模式(Firstprogrammingmode)的实体程序化单元为第一类实体程序化单元,并且辨识使用第二程序化模式(Secondprogrammingmode)的实体程序化单元为第二类实体程序化单元。若一个实体程序化单元使用第一程序化模式(也称为多层记忆胞模式),则此实体程序化单元中的每一个记忆胞储存有一第一数量的比特数据,其中此第一数量不小于2。例如,在本范例实施例中,此第一数量为2或3。在本范例实施例中,第二程序化模式可以是单层记忆胞模式(SLCmode)、下实体程序化模式(lowerphysicalprogrammingunitprogrammingmode)、混合程序化模式(mixtureprogrammingmode)及少层记忆胞模式的至少其中之一或其组合。若一个实体程序化单元使用单层记忆胞模式,则此实体程序化单元中的每一个记忆胞只储存一个比特数据。若一个实体程序化单元是使用下实体程序化模式,则此实体程序化单元是属于下实体程序化单元,并且只有此实体程序化单元会被程序化,而此实体程序化单元所对应的上实体程序化单元可以程序化也可以不程序化。若一个实体程序化单元使用混合程序化模式且此实体程序化单元属于下实体程序化单元,则有效数据会被程序化于此实体程序化单元中。若一个实体程序化单元使用混合程序化模式且此实体程序化单元属于上实体程序化单元,则有效数据不会被程序化于此实体程序化单元中。若一个实体程序化单元使用混合程序化模式且此实体程序化单元属于下实体程序化单元,则真实数据会被程序化于此实体程序化单元中。若一个实体程序化单元使用混合程序化模式且此实体程序化单元属于上实体程序化单元,则对应于真实数据的虚拟数据则会被程序化于此实体程序化单元中。若一个实体程序化单元使用少层记忆胞模式,则此实体程序化单元中的每一个记忆胞储存有一第二数量的比特数据,其中此第二数量小于第一数量。在本范例实施例中,此第二数量为1。在本范例实施例中,使用第一程序化模式的实体程序化单元之可靠度通常低于使用第二程序化模式的实体程序化单元。
图14与图15是根据本发明的一范例实施例所绘示的写入数据的示意图。
请参照图14,在本范例实施例中,反应于一垃圾回收程序或来自主机系统11的一写入指令,若存储器管理电路1102欲将数据1411(亦称为第一数据)写入至实体程序化单元1401(亦称为第一实体程序化单元)中,存储器管理电路1102会判断实体程序化单元1401属于第一类实体程序化单元或是第二类实体程序化单元。关于如何判断一个实体程序化单元属于第一类实体程序化单元或是第二类实体程序化单元已详述于上,在此不重复赘述。若实体程序化单元1401是属于第一类实体程序化单元,错误校验与校正电路1108会对应数据1411产生验证码1421(亦称为第一验证码)与验证码1422(亦称为第二验证码)。其中,验证码1421可单独使用或者是与验证码1422结合使用。然而,验证码1422不可以单独使用。验证码1421或者验证码1421与验证码1422的结合可用以验证数据1411。存储器管理电路1102会将数据1411与验证码1421写入至实体程序化单元1401中,并且将验证码1422储存在属于第二类实体程序化单元的一或多个实体程序化单元中。
值得注意的是,本发明并不限于将上述验证码1422(不可单独使用的验证码)储存在属于第二类实体程序化单元的一或多个实体程序化单元中。即,在另一范例实施例中,不可以单独使用的验证码可以根据厂商的设计规划,储存在预先规划的储存区域(如,预先定义的多个实体抹除单元)中。
请参照图15,若实体程序化单元1401是属于第二类实体程序化单元,则错误校验与校正电路1108会对应数据1411产生验证码1521(亦称为第三验证码)。其中,验证码1521可单独用以验证数据1411。存储器管理电路1102会将数据1411、验证码1521及验证码1532(亦称为第四验证码)写入至实体程序化单元1401中。此外,在图15的另一范例实施例中,当程序化实体程序化单元1401时,存储器管理电路1102会判断验证码1532是否存在。若验证码1532存在,存储器管理电路1102会将数据1411、验证码1521及验证码1532一并写入至实体程序化单元1401中。若验证码1532不存在,则存储器管理电路1102仅将数据1411与验证码1521写入至实体程序化单元1401中。值得一提的是,虽然验证码1421与1521都可以单独用来验证数据1411,但是,验证码1521的数据长度会短于验证码1421的数据长度。验证码1532不可以单独使用。验证码1532的数据长度例如是与验证码1422的数据长度相等。在本范例实施例中,验证码1532用以与储存在属于第一类实体程序化单元的实体程序化单元1403(亦称为第二实体程序化单元)中的验证码1531(亦称为第五验证码)结合使用。其中,验证码1531是错误校验与校正电路1108对应数据1512(亦称为第二数据)产生的。验证码1531的数据长度例如是与验证码1421的数据长度相等。验证码1531或者验证码1531与验证码1532的结合可用以验证数据1512。
在图14的一范例实施例中,若存储器管理电路1102欲将数据1412(亦称为第三数据)与验证码1431(亦称为第八验证码)写入至实体程序化单元1402(亦称为第三实体程序化单元),且实体程序化单元1402属于第二类实体程序化单元,则存储器管理电路1102会将数据1412、验证码1431及验证码1422一并写入至实体程序化单元1402中。其中,验证码1431是错误校验与校正电路1108对应数据1412产生的。验证码1431可单独用以验证数据1412。验证码1431的数据长度与验证码1521的数据长度相等。此外,在一范例实施例中,验证码1421的数据长度会与验证码1431的数据长度与验证码1422的数据长度的总和相等。类似地,在一范例实施例中,验证码1531的数据长度会与验证码1521的数据长度与验证码1532的数据长度的总和相等。
图16是根据本发明的另一范例实施例所绘示的写入数据的示意图。
请参照图16,反应于至少一垃圾回收程序或来自主机系统11的写入指令,存储器管理电路1102欲分别将数据D1~D4写入至实体抹除单元400(0)中的实体程序化单元1601~1604。其中,实体程序化单元1601与1603是属于第一类实体程序化单元,并且实体程序化单元1602与1604是属于第二类实体程序化单元。对于数据D1,错误校验与校正电路1108会产生对应于数据D1的验证码H1_1与用以与验证码H1_1结合的验证码H1_2,并且在程序化实体程序化单元1601时,存储器管理电路1102会将数据D1与验证码H1_1写入至实体程序化单元1601中。对于数据D2,错误校验与校正电路1108会产生对应于数据D2的验证码L1,并且在程序化实体程序化单元1602时,存储器管理电路1102会将数据D2、验证码L1及验证码H1_2写入至实体程序化单元1602。对于数据D3,错误校验与校正电路1108会产生对应于数据D3的验证码H2_1与用以与验证码H2_1结合的验证码H2_2,并且在程序化实体程序化单元1603时,存储器管理电路1102会将数据D3与验证码H2_1写入至实体程序化单元1603中。对于数据D4,错误校验与校正电路1108会产生对应于数据D4的验证码L2,并且在程序化实体程序化单元1604时,存储器管理电路1102会将数据D4、验证码L2及验证码H2_2写入至实体程序化单元1604中。虽然图16的范例实施例是以循序写入(sequentialwrite)作为范例,然而,在另一范例实施例中,随机写入(randomwrite)亦可以使用上述方式来操作。
在一范例实施例中,在接收到来自主机系统11的一读取指令之后,存储器管理电路1102会判断储存有欲读取的数据的实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元。存储器管理电路1102与错误校验与校正电路1108会根据储存有欲读取的数据的实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元执行相对应的解码操作。
请再次参照图14,在接收到来自主机系统11的指示读取数据1411的一读取指令之后,根据此读取指令,存储器管理电路1102会从实体程序化单元1401中读取数据1411与验证码1421。错误校验与校正电路1108会根据验证码1421对数据1411执行解码(亦称为第一解码),并且判断是否成功地解码。若无法成功地解码,存储器管理电路1102会结合验证码1421与验证码1422来重新解码。具体而言,错误校验与校正电路1108会判断根据验证码1421对数据1411执行的第一解码是否产生有效码字。若第一解码产生有效码字(即,解码成功),存储器管理电路1102会输出此有效码字或者对应于此有效码字的数据。若第一解码没有产生有效码字(即,解码不成功),存储器管理电路1102会从实体程序化单元1402读取验证码1422,结合验证码1421与验证码1422为一个新的验证码(亦称为第七验证码),并且根据此第七验证码对数据1411执行另一解码(亦称为第二解码)。值得注意的是,在本范例实施例中,第一解码与第二解码是属于迭代解码,例如,使用低密度奇偶校验码演算法。然而,在另一范例实施例中,上述的第一解码与第二解码也可以是使用任意的解码演算法,本发明不加以限制。
具体而言,存储器管理电路1102会结合验证码1421与验证码1422以获得由N个比特组成的新的验证码,其中验证码1421是由此N个比特中的第1至第M个比特组成,并且验证码1422是由此N个比特中的第M+1至第N个比特组成。也就是说,若验证码1421的数据长度是M个比特,且验证码1422的数据长度是N-M个比特,则通过结合验证码1421与验证码1422而获得的新的验证码的数据长度是N个比特。其中,N与M是正整数。特别是,在一范例实施例中,通过结合验证码1421与验证码1422而获得的新的验证码是对应至一个预设的产生矩阵G,并且验证码1421是对应至此预设的产生矩阵G的一个子矩阵。其中,此子矩阵是由此预设的产生矩阵G的部分行与部份列组成。然而,在另一范例实施例中,用来相互结合的验证码(例如,验证码1421与验证码1422)也可以是通过任何经过设计的演算法来产生,本发明不加以限制。在一范例实施例中,第一解码与第二解码是属于上述硬比特模式解码程序。若使用新的验证码仍无法成功解码,则存储器管理电路1102会指示可复写式非易失性存储模块406使用新的读取电压来重新读取数据1411以执行另一解码(亦称为第三解码),及/或指示错误校验与校正电路1108使用软比特模式解码程序来执行第三解码。然而,在另一范例实施例中,第一解码及/或第二解码也可以是属于软比特模式解码程序或使用任意的解码演算法。
此外,在接收到来自主机系统11的指示读取数据1412的读取指令之后,根据此读取指令,存储器管理电路1102会从实体程序化单元1402中读取数据1412与验证码1431。错误校验与校正电路1108会根据验证码1431对数据1412执行解码,并且判断解码是否产生有效码字。若解码产生有效码字(即,解码成功),存储器管理电路1102会输出此有效码字或者对应于此有效码字的数据。若解码没有产生有效码字(即,解码不成功或是解码失败),则存储器管理电路1102会指示可复写式非易失性存储模块406使用新的读取电压来重新读取数据1412以执行另一解码,及/或指示错误校验与校正电路1108使用软比特模式解码程序来执行另一解码。
请再次参照图15,在接收到来自主机系统11的指示读取数据1512的读取指令之后,根据此读取指令,存储器管理电路1102会从实体程序化单元1403中读取数据1512与验证码1531。错误校验与校正电路1108会根据验证码1531对数据1512执行第一解码,并且判断第一解码是否产生有效码字。若第一解码产生有效码字(即,解码成功),存储器管理电路1102会输出此有效码字或对应于此有效码字的数据。若第一解码没有产生有效码字(即,解码不成功),存储器管理电路1102会从实体程序化单元1401读取验证码1532,结合验证码1531与验证码1532为一个新的验证码(亦称为第六验证码),并且根据此第六验证码对数据1512执行第二解码。
具体而言,存储器管理电路1102会结合验证码1531与验证码1532以获得由N个比特组成的新的验证码,其中验证码1531是由此N个比特中的第1至第M个比特组成,并且验证码1532是由此N个比特中的第M+1至第N个比特组成。验证码1531与验证码1532的架构与使用方式类似于验证码1421与验证码1422,在此便不赘述。此外,图15的范例实施例中对于数据1512与数据1411的解码操作分别相同或相似于图14的范例实施例中对于数据1411与数据1412的解码操作,在此便不赘述。此外,上述解码操作亦可以套用至图16的范例实施例中,以实施对于数据D1~D4的读取与验证。
在一范例实施例中,存储器管理电路1102会根据用以储存一数据的实体程序化单元的可靠度来产生具有特定长度的验证码。以上述用以储存第一数据的第一实体程序化单元为例,在一范例实施例中,存储器管理电路1102会判断第一实体程序化单元的可靠度是属于第一类可靠度或第二类可靠度。例如,若第一实体程序化单元的可靠度低于一门槛值,存储器管理电路1102会判定此第一实体程序化单元的可靠度是属于第一类可靠度;若第一实体程序化单元的可靠度不低于此门槛值,存储器管理电路1102会判定此第一实体程序化单元的可靠度是属于第二类可靠度。或者,在一范例实施例中,类似于上述依据一个实体程序化单元的可靠度来区别此实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元的操作,若一个实体程序化单元会被识别为第一类实体程序化单元,则此实体程序化单元的可靠度是属于第一类可靠度;若一个实体程序化单元会被识别为第二类实体程序化单元,则此实体程序化单元的可靠度是属于第二类可靠度。
若第一实体程序化单元的可靠度是属于第一类可靠度,存储器管理电路1102会产生对应于第一数据的一主验证码(亦称为第一主验证码),其中此第一主验证码具有一第一长度;若第一实体程序化单元的可靠度是属于第二类可靠度,存储器管理电路1102会产生对应于第一数据的另一主验证码(亦称为第二主验证码),其中此第二主验证码具有一第二长度,并且第一长度长于第二长度。也就是说,若一个实体程序化单元的可靠度越低,则用来保护此实体程序化单元中的数据的主验证码的数据长度就会越长。
在一范例实施例中,若上述第一实体程序化单元的可靠度是属于第一类可靠度,存储器管理电路1102还会产生对应于第一数据的一副验证码。此副验证码可以用以与第一主验证码结合使用、提供一解码信息或者在一预解码程序中使用。例如,将此副验证码与第一主验证码结合使用的方式相同或相似于图14的范例实施例中验证码1421与验证码1422结合使用的方式。其中,验证码1421可视为第一主验证码,而验证码1422可视为副验证码。例如,此副验证码所提供的解码信息可以是任意可提升第一主验证码的解码能力或者可辅助此第一主验证码进行解码的信息。例如,此第一主验证码与此副验证码可分别用以验证第一数据中的不同部分等等。此外,在预解码程序中使用此副验证码的方式例如是在使用第一主验证码来解码某一数据之前,先使用此副验证码来找出此数据中一部份的错误,并且在将所找到的错误标记或更正之后,再使用第一主验证码来找出此数据中其余的错误。藉此,即可提升使用第一主验证码来侦错的能力。然而,任何可利用副验证码来辅助第一主验证码进行数据验证或错误更正的方式都可以套用至本发明,本发明不加以限制。
在一范例实施例中,通过结合第一主验证码与副验证码而获得的新的验证码是对应至一个预设的产生矩阵G,并且第一主验证码是对应至此预设的产生矩阵G的一个子矩阵。其中,此子矩阵是由此预设的产生矩阵G的部分行与部份列组成。此外,在一范例实施例中,存储器管理电路1102可获得一个经设计的产生矩阵并且根据此产生矩阵来产生一个预设验证码,其中此第一主验证码包含于此预设验证码中。存储器管理电路1102可根据此预设验证码与第一主验证码来产生副验证码。例如,存储器管理电路1102可将此预设验证码中不包括第一主验证码的码的一部份或全部作为此副验证码。此外,通过任何经过设计的演算法都可以用来产生第一主验证码及/或对应的副验证码,本发明不加以限制。此外,第一主验证码与对应的副验证码的使用方式与产生方式也可以是结合或套用至上述各个范例实施例来使用。
图17是根据本发明的一范例实施例所绘示的数据存取方法的流程图。
请参照图17,在步骤S1701中,判断多个实体程序化单元中用以储存第一数据的第一实体程序化单元属于第一类实体程序化单元或第二类实体程序化单元。若第一实体程序化单元属于第一类实体程序化单元,在步骤S1702中,产生对应于第一数据的第一验证码与用以与第一验证码结合的第二验证码,并且将第一数据与第一验证码写入至第一实体程序化单元中。在步骤S1703中,若使用第一验证码无法成功地解码第一数据,结合第二验证码与第一验证码来解码第一数据。
图18是根据本发明的另一范例实施例所绘示的数据存取方法的流程图。
请参照图18,在步骤S1801中,接收指示读取第一数据的读取指令。在步骤S1802中,判断用以储存第一数据的第一实体程序化单元是属于第一类实体程序化单元或第二类实体程序化单元。若第一实体程序化单元属于第一类实体程序化单元,在步骤S1803中,从第一实体程序化单元中读取第一数据与第一验证码,并且根据第一验证码对第一数据执行第一解码。在步骤S1804中,判断第一解码是否产生有效码字。若第一解码有产生有效码字,在步骤S1805中,判定解码成功,并且输出此有效码字或者对应于此有效码字的数据。若第一解码没有产生有效码字,在步骤S1806中,从第三实体程序化单元中读取第二验证码,结合第一验证码与第二验证码为第七验证码,并且根据第七验证码执行第二解码。在步骤S1807中,判断第二解码是否产生有效码字。若第二解码有产生有效码字,执行步骤S1805。若第二解码没有产生有效码字,在步骤S1808中,判定解码不成功。此外,若第一实体程序化单元属于第二类实体程序化单元,在步骤S1809中,从第一实体程序化单元中读取第一数据与第三验证码,并且根据第三验证码对第一数据执行解码。在步骤S1810中,判断是否产生有效码字。若有产生有效码字,执行步骤S1805。若没有产生有效码字,执行步骤S1808。在判定解码失败后,可利用新的读取电压来重新读取第一数据、改为使用软比特模式解码程序或传送失败讯息等,本发明不加以限制。
然而,图17与图18中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图17与图18中各步骤可以实作为多个程序码或是电路,本发明并不在此限。此外,图17与图18的方法可以搭配以上实施例使用,也可以单独使用,本发明并不在此限。
综上所述,对于数据的储存,本发明可提供可靠度较高的实体程序化单元的部份储存空间来储存用来保护储存在可靠度较低的实体程序化单元中的数据的验证码的一部分,从而可增加用来保护储存在可靠度较低的实体程序化单元中的数据的验证码的数据长度。此外,在读取数据时,根据储存数据的实体程序化单元的特性,对于储存在可靠度较低的实体程序化单元中的数据,本发明可先根据具有预设的数据长度的验证码来对此数据执行解码,并且在无法成功解码时,增加验证码的数据长度以根据数据长度较长的验证码来对此数据执行另一次解码。藉此,可提升对于具有不同可靠度的实体程序化单元的使用效率,并且可有效延长可复写式非易失性存储模块的使用寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (34)
1.一种数据存取方法,用于一可复写式非易失性存储模块,其特征在于,该可复写式非易失性存储模块包含多个实体抹除单元,其中每一实体抹除单元具有多个实体程序化单元,该数据存取方法包括:
判断该些实体程序化单元中用以储存一第一数据的一第一实体程序化单元属于一第一类实体程序化单元或一第二类实体程序化单元;
若该第一实体程序化单元属于该第一类实体程序化单元,产生对应于该第一数据的一第一验证码与用以与该第一验证码结合的一第二验证码,并且将该第一数据与该第一验证码写入至该第一实体程序化单元中;以及
若使用该第一验证码无法成功地解码该第一数据,结合该第二验证码与该第一验证码来解码该第一数据。
2.根据权利要求1所述的数据存取方法,其特征在于,还包括:
若该第一实体程序化单元属于该第二类实体程序化单元,产生对应于该第一数据的一第三验证码,并且将该第一数据、该第三验证码及用以与一第五验证码结合的一第四验证码写入至该第一实体程序化单元,其中该第五验证码用以验证一第二数据,该第二数据与该第五验证码储存于该些实体程序化单元中属于该第一类实体程序化单元的一第二实体程序化单元,并且该第三验证码的一数据长度短于该第一验证码的该数据长度。
3.根据权利要求2所述的数据存取方法,其特征在于,还包括:
若使用该第五验证码无法成功地解码该第二数据,结合该第四验证码与该第五验证码来解码该第二数据。
4.根据权利要求3所述的数据存取方法,其特征在于,若使用该第五验证码无法成功地解码该第二数据,结合该第四验证码与该第五验证码来解码该第二数据的步骤包括:
根据一读取指令从该第二实体程序化单元中读取该第二数据与该第五验证码;
根据该第五验证码对该第二数据执行一第一解码,并且判断该第一解码是否产生一有效码字;以及
若该第一解码没有产生该有效码字,从该第一实体程序化单元读取该第四验证码,结合该第四验证码与该第五验证码为一第六验证码,并且根据该第六验证码对该第二数据执行一第二解码。
5.根据权利要求2所述的数据存取方法,其特征在于,该第五验证码的该数据长度等于该第三验证码的该数据长度与该第四验证码的该数据长度的一总和。
6.根据权利要求1所述的数据存取方法,其特征在于,还包括:
将该第二验证码写入至该些实体程序化单元中属于该第二类实体程序化单元的一第三实体程序化单元。
7.根据权利要求1所述的数据存取方法,其特征在于,若使用该第一验证码无法成功地解码该第一数据,结合该第二验证码与该第一验证码来解码该第一数据的步骤包括:
根据一读取指令从该第一实体程序化单元中读取该第一数据与该第一验证码;
根据该第一验证码对该第一数据执行一第一解码,并且判断该第一解码是否产生一有效码字;以及
若该第一解码没有产生该有效码字,读取该第二验证码,结合该第一验证码与该第二验证码为一第七验证码,并且根据该第七验证码对该第一数据执行一第二解码。
8.根据权利要求1所述的数据存取方法,其特征在于,该第一类实体程序化单元是一上实体程序化单元,并且该第二类实体程序化单元是一下实体程序化单元。
9.根据权利要求1所述的数据存取方法,其特征在于,若该第一实体程序化单元属于该第一类实体程序化单元,该数据存取方法还包括:
结合该第一验证码与该第二验证码以获得由N个比特组成的一第七验证码,其中该第一验证码是由该N个比特中的第1至第M个比特组成,并且该第二验证码是由该N个比特中的第M+1至第N个比特组成。
10.根据权利要求1所述的数据存取方法,其特征在于,该数据存取方法是使用一低密度奇偶校验码演算法来编码与解码。
11.一种存储器控制电路单元,用于控制一可复写式非易失性存储模块,其特征在于,该可复写式非易失性存储模块包含多个实体抹除单元,其中每一实体抹除单元具有多个实体程序化单元,该存储器控制电路单元包括:
一主机接口,用以電性連接至一主机系统;
一存储器接口,用以電性連接至该可复写式非易失性存储模块;
一存储器管理电路,電性連接至该主机接口与该存储器接口,并且用以发送一读取指令序列以从该可复写式非易失性存储模块中读取数据,或是用以发送一写入指令序列以写入数据至该可复写式非易失性存储模块中;以及
一错误校验与校正电路,電性連接至该存储器管理电路,
其中该存储器管理电路用以判断该些实体程序化单元中用以储存一第一数据的一第一实体程序化单元属于一第一类实体程序化单元或一第二类实体程序化单元,
其中若该第一实体程序化单元属于该第一类实体程序化单元,该存储器管理电路还用以指示该错误校验与校正电路产生对应于该第一数据的一第一验证码与用以与该第一验证码结合的一第二验证码,并且该存储器管理电路还用以发送该写入指令序列以将该第一数据与该第一验证码写入至该第一实体程序化单元中,
其中若使用该第一验证码无法成功地解码该第一数据,该错误校验与校正电路还用以结合该第二验证码与该第一验证码来解码该第一数据。
12.根据权利要求11所述的存储器控制电路单元,其特征在于,若该第一实体程序化单元属于该第二类实体程序化单元,该存储器管理电路还用以指示该错误校验与校正电路产生对应于该第一数据的一第三验证码,并且该存储器管理电路还用以发送该写入指令序列以将该第一数据、该第三验证码及用以与一第五验证码结合的一第四验证码写入至该第一实体程序化单元中,其中该第五验证码用以验证一第二数据,该第二数据与该第五验证码储存于该些实体程序化单元中属于该第一类实体程序化单元的一第二实体程序化单元,并且该第三验证码的一数据长度短于该第一验证码的该数据长度。
13.根据权利要求12所述的存储器控制电路单元,其特征在于,若使用该第五验证码无法成功地解码该第二数据,该错误校验与校正电路还用以结合该第四验证码与该第五验证码来解码该第二数据。
14.根据权利要求13所述的存储器控制电路单元,其特征在于,若使用该第五验证码无法成功地解码该第二数据时,该错误校验与校正电路结合该第四验证码与该第五验证码来解码该第二数据的操作包括:
由该存储器管理电路根据一读取指令,发送该读取指令序列以从该第二实体程序化单元中读取该第二数据与该第五验证码,其中该第二实体程序化单元属于该第一类实体程序化单元;
由该错误校验与校正电路根据该第五验证码对该第二数据执行一第一解码,并且判断该第一解码是否产生一有效码字;以及
若该第一解码没有产生该有效码字,由该存储器管理电路发送该读取指令序列以从第一实体程序化单元读取该第四验证码,结合该第四验证码与该第五验证码为一第六验证码,并且由该错误校验与校正电路根据该第六验证码对该第二数据执行一第二解码。
15.根据权利要求12所述的存储器控制电路单元,其特征在于,该第五验证码的该数据长度等于该第三验证码的该数据长度与该第四验证码的该数据长度的一总和。
16.根据权利要求11所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以发送该写入指令序列以将该第二验证码写入至该些实体程序化单元中属于该第二类实体程序化单元的一第三实体程序化单元。
17.根据权利要求11所述的存储器控制电路单元,其特征在于,若使用该第一验证码无法成功地解码该第一数据时,该错误校验与校正电路结合该第二验证码与该第一验证码来解码该第一数据的操作包括:
由该存储器管理电路根据一读取指令,发送该读取指令序列以从该第一实体程序化单元中读取该第一数据与该第一验证码;
由该错误校验与校正电路根据该第一验证码对该第一数据执行一第一解码,并且判断该第一解码是否产生一有效码字;以及
若该第一解码没有产生该有效码字,由该存储器管理电路发送该读取指令序列以读取该第二验证码,由该错误校验与校正电路结合该第一验证码与该第二验证码为一第七验证码并且根据该第七验证码对该第一数据执行一第二解码。
18.根据权利要求11所述的存储器控制电路单元,其特征在于,该第一类实体程序化单元是一上实体程序化单元,并且该第二类实体程序化单元是一下实体程序化单元。
19.根据权利要求11所述的存储器控制电路单元,其特征在于,若该第一实体程序化单元属于该第二类实体程序化单元,该存储器管理电路还用以结合该第一验证码与该第二验证码以获得由N个比特组成的一第七验证码,其中该第一验证码是由该N个比特中的第1至第M个比特组成,并且该第二验证码是由该N个比特中的第M+1至第N个比特组成。
20.根据权利要求11所述的存储器控制电路单元,其特征在于,该错误校验与校正电路是使用一低密度奇偶校验码演算法来编码与解码。
21.一种存储器储存装置,其特征在于,包括:
一连接接口单元,用以電性連接至一主机系统;
一可复写式非易失性存储模块,包含多个实体抹除单元,其中每一该些实体抹除单元具有多个实体程序化单元;
一存储器控制电路单元,電性連接至该连接接口单元与该可复写式非易失性存储模块,
其中该存储器控制电路单元用以判断该些实体程序化单元中用以储存一第一数据的一第一实体程序化单元属于一第一类实体程序化单元或一第二类实体程序化单元,
其中若该第一实体程序化单元属于该第一类实体程序化单元,该存储器控制电路单元还用以产生对应于该第一数据的一第一验证码与用以与该第一验证码结合的一第二验证码,并且将该第一数据与该第一验证码写入至该第一实体程序化单元中,
其中若使用该第一验证码无法成功地解码该第一数据,该存储器控制电路单元还用以结合该第二验证码与该第一验证码来解码该第一数据。
22.根据权利要求21所述的存储器储存装置,其特征在于,还包括:
若该第一实体程序化单元属于该第二类实体程序化单元,该存储器控制电路单元还用以产生对应于该第一数据的一第三验证码,并且将该第一数据、该第三验证码及用以与一第五验证码结合的一第四验证码写入至该第一实体程序化单元中,其中该第五验证码用以验证一第二数据,该第二数据与该第五验证码储存于该些实体程序化单元中属于该第一类实体程序化单元的一第二实体程序化单元,并且该第三验证码的一数据长度短于该第一验证码的该数据长度。
23.根据权利要求22所述的存储器储存装置,其特征在于,若使用该第五验证码无法成功地解码该第二数据,该存储器控制电路单元还用以结合该第四验证码与该第五验证码来解码该第二数据。
24.根据权利要求23所述的存储器储存装置,其特征在于,若使用该第五验证码无法成功地解码该第二数据,该存储器控制电路单元结合该第四验证码与该第五验证码来解码该第二数据的操作包括:
根据一读取指令从该第二实体程序化单元中读取该第二数据与该第五验证码;
根据该第五验证码对该第二数据执行一第一解码,并且判断该第一解码是否产生一有效码字;以及
若该第一解码没有产生该有效码字,从该第一实体程序化单元读取该第四验证码,结合该第四验证码与该第五验证码为一第六验证码,并且根据该第六验证码对该第二数据执行一第二解码。
25.根据权利要求22所述的存储器储存装置,其特征在于,该第五验证码的该数据长度等于该第三验证码的该数据长度与该第四验证码的该数据长度的一总和。
26.根据权利要求21所述的存储器储存装置,其特征在于,该存储器控制电路单元还用以将该第二验证码写入至该些实体程序化单元中属于该第二类实体程序化单元的一第三实体程序化单元。
27.根据权利要求21所述的存储器储存装置,其特征在于,若使用该第一验证码无法成功地解码该第一数据,该存储器控制电路单元结合该第二验证码与该第一验证码来解码该第一数据的操作包括:
根据一读取指令从该第一实体程序化单元中读取该第一数据与该第一验证码,其中该第一实体程序化单元属于该第一类实体程序化单元;
根据该第一验证码对该第一数据执行一第一解码,并且判断该第一解码是否产生一有效码字;以及
若该第一迭代解码没有产生该有效码字,读取该第二验证码,结合该第一验证码与该第二验证码为一第七验证码,并且根据该第七验证码对该第一数据执行一第二解码。
28.根据权利要求21所述的存储器储存装置,其特征在于,该第一类实体程序化单元是一上实体程序化单元,并且该第二类实体程序化单元是一下实体程序化单元。
29.根据权利要求21所述的存储器储存装置,其特征在于,若该第一实体程序化单元是属于该第一类实体程序化单元,该存储器控制电路单元还用以结合该第一验证码与该第二验证码以获得由N个比特组成的一第七验证码,其中该第一验证码是由该N个比特中的第1至第M个比特组成,并且该第二验证码是由该N个比特中的第M+1至第N个比特组成。
30.根据权利要求21所述的存储器储存装置,其特征在于,该存储器控制电路单元是使用一低密度奇偶校验码演算法来编码与解码。
31.一种存储器储存装置,其特征在于,包括:
一连接接口单元,用以電性連接至一主机系统;
一可复写式非易失性存储模块,包含多个实体抹除单元,其中每一该些实体抹除单元具有多个实体程序化单元;
一存储器控制电路单元,電性連接至该连接接口单元与该可复写式非易失性存储模块,
其中该存储器控制电路单元用以判断该些实体程序化单元中用以储存一第一数据的一第一实体程序化单元的一可靠度是属于一第一类可靠度或一第二类可靠度,
若该第一实体程序化单元的该可靠度是属于该第一类可靠度,该存储器控制电路单元还用以产生对应于该第一数据的一第一主验证码,其中该第一主验证码具有一第一长度,
若该第一实体程序化单元的该可靠度是属于该第二类可靠度,该存储器控制电路单元还用以产生对应于该第一数据的一第二主验证码,其中该第二主验证码具有一第二长度,并且该第一长度长于该第二长度。
32.根据权利要求31所述的存储器储存装置,其特征在于,还包括:
若该第一实体程序化单元的该可靠度是属于该第一类可靠度,该存储器控制电路单元还用以产生对应于该第一数据的一副验证码,
其中该副验证码用以与该第一主验证码结合使用、提供一解码信息或者在一预解码程序中使用。
33.根据权利要求32所述的存储器储存装置,其特征在于,该存储器控制电路单元产生对应于该第一数据的该副验证码的操作包括:
获得一产生矩阵并且根据该产生矩阵来产生一预设验证码,其中该第一主验证码包含于该预设验证码中;以及
根据该预设验证码与该第一主验证码来产生该副验证码。
34.根据权利要求31所述的存储器储存装置,其特征在于,该第二类可靠度高于该第一类可靠度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410450432.2A CN105468292B (zh) | 2014-09-05 | 2014-09-05 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410450432.2A CN105468292B (zh) | 2014-09-05 | 2014-09-05 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468292A true CN105468292A (zh) | 2016-04-06 |
CN105468292B CN105468292B (zh) | 2019-04-23 |
Family
ID=55606047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410450432.2A Active CN105468292B (zh) | 2014-09-05 | 2014-09-05 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468292B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681856A (zh) * | 2016-08-23 | 2017-05-17 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN107092536A (zh) * | 2017-04-14 | 2017-08-25 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN107305510A (zh) * | 2016-04-21 | 2017-10-31 | 合肥兆芯电子有限公司 | 数据处理方法、存储器存储装置及存储器控制电路单元 |
CN107918524A (zh) * | 2016-10-07 | 2018-04-17 | 慧荣科技股份有限公司 | 数据储存装置及数据维护方法 |
CN109643257A (zh) * | 2016-08-26 | 2019-04-16 | 高通股份有限公司 | 存储器系统中的链路纠错 |
CN109901784A (zh) * | 2017-12-08 | 2019-06-18 | 群联电子股份有限公司 | 数据存取方法、存储器控制电路单元以及存储器储存装置 |
CN110162493A (zh) * | 2018-02-12 | 2019-08-23 | 深圳大心电子科技有限公司 | 存储器管理方法及使用所述方法的储存控制器 |
CN111309249A (zh) * | 2018-12-11 | 2020-06-19 | 佳能株式会社 | 信息处理装置及其控制方法 |
CN112185435A (zh) * | 2019-07-03 | 2021-01-05 | 旺宏电子股份有限公司 | 电子装置、存储器装置及其存储数据的读取方法 |
CN117632579A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器控制方法和存储器存储装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009114618A3 (en) * | 2008-03-11 | 2009-11-26 | Agere Systems Inc. | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding |
TW201101317A (en) * | 2009-06-17 | 2011-01-01 | A Data Technology Co Ltd | Nonvolatile storage device and control method thereof |
CN102890645A (zh) * | 2011-07-20 | 2013-01-23 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据写入方法 |
US20140006898A1 (en) * | 2012-07-02 | 2014-01-02 | Eran Sharon | Flash memory with random partition |
-
2014
- 2014-09-05 CN CN201410450432.2A patent/CN105468292B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009114618A3 (en) * | 2008-03-11 | 2009-11-26 | Agere Systems Inc. | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding |
CN101999116A (zh) * | 2008-03-11 | 2011-03-30 | 艾格瑞系统有限公司 | 通过交叉页面扇区、多页面编码以及每一页面编码将数据存储在多级单元闪速存储器装置中的方法和设备 |
TW201101317A (en) * | 2009-06-17 | 2011-01-01 | A Data Technology Co Ltd | Nonvolatile storage device and control method thereof |
CN102890645A (zh) * | 2011-07-20 | 2013-01-23 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据写入方法 |
US20140006898A1 (en) * | 2012-07-02 | 2014-01-02 | Eran Sharon | Flash memory with random partition |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107305510A (zh) * | 2016-04-21 | 2017-10-31 | 合肥兆芯电子有限公司 | 数据处理方法、存储器存储装置及存储器控制电路单元 |
CN107305510B (zh) * | 2016-04-21 | 2020-12-15 | 合肥兆芯电子有限公司 | 数据处理方法、存储器存储装置及存储器控制电路单元 |
CN106681856B (zh) * | 2016-08-23 | 2020-03-17 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN106681856A (zh) * | 2016-08-23 | 2017-05-17 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109643257A (zh) * | 2016-08-26 | 2019-04-16 | 高通股份有限公司 | 存储器系统中的链路纠错 |
CN109643257B (zh) * | 2016-08-26 | 2020-07-03 | 高通股份有限公司 | 用于存储器系统中的链路纠错的方法和设备 |
CN107918524B (zh) * | 2016-10-07 | 2021-03-12 | 慧荣科技股份有限公司 | 数据储存装置及数据维护方法 |
CN107918524A (zh) * | 2016-10-07 | 2018-04-17 | 慧荣科技股份有限公司 | 数据储存装置及数据维护方法 |
CN107092536A (zh) * | 2017-04-14 | 2017-08-25 | 合肥兆芯电子有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN109901784A (zh) * | 2017-12-08 | 2019-06-18 | 群联电子股份有限公司 | 数据存取方法、存储器控制电路单元以及存储器储存装置 |
CN110162493A (zh) * | 2018-02-12 | 2019-08-23 | 深圳大心电子科技有限公司 | 存储器管理方法及使用所述方法的储存控制器 |
CN111309249A (zh) * | 2018-12-11 | 2020-06-19 | 佳能株式会社 | 信息处理装置及其控制方法 |
CN111309249B (zh) * | 2018-12-11 | 2024-05-07 | 佳能株式会社 | 信息处理装置及其控制方法 |
CN112185435A (zh) * | 2019-07-03 | 2021-01-05 | 旺宏电子股份有限公司 | 电子装置、存储器装置及其存储数据的读取方法 |
CN117632579A (zh) * | 2024-01-25 | 2024-03-01 | 合肥兆芯电子有限公司 | 存储器控制方法和存储器存储装置 |
CN117632579B (zh) * | 2024-01-25 | 2024-04-30 | 合肥兆芯电子有限公司 | 存储器控制方法和存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105468292B (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI550615B (zh) | 資料存取方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI508082B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI537966B (zh) | 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI540586B (zh) | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 | |
CN105468292A (zh) | 数据存取方法、存储器储存装置及存储器控制电路单元 | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI521529B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN104601178B (zh) | 解码方法、解码电路、存储器存储装置与控制电路单元 | |
TWI523018B (zh) | 解碼方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI612527B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN104572334B (zh) | 解码方法、存储器存储装置与存储器控制电路单元 | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN104733044B (zh) | 译码方法、存储器存储装置、存储器控制电路单元 | |
TW201517524A (zh) | 解碼方法、解碼電路、記憶體儲存裝置與控制電路單元 | |
CN105022674A (zh) | 解码方法、存储器存储装置、存储器控制电路单元 | |
CN105023613A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104424045B (zh) | 解码方法、存储器储存装置与非易失性存储器模块 | |
CN105304142A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN105575440B (zh) | 错误处理方法、存储器储存装置及存储器控制电路单元 | |
CN105304143B (zh) | 解码方法、存储器控制电路单元及存储器存储装置 | |
CN104778975B (zh) | 译码方法、存储器存储装置、存储器控制电路单元 | |
TWI721842B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN105320573A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |