数据读取方法、存储器控制电路单元与存储器存储装置的制造方法

文档序号:10624518阅读:537来源:国知局
数据读取方法、存储器控制电路单元与存储器存储装置的制造方法
【专利摘要】本发明提供一种数据读取方法、存储器控制电路单元与存储器存储装置。本发明的数据读取方法,包括从主机系统接收读取指令;根据读取指令发送第一读取指令序列以从可复写式非易失性存储器模块的多个存储单元中获取第一数据串;对第一数据串执行错误校正译码程序以产生已译码第一数据串;以及,若已译码第一数据串中存有错误位,发送第二读取指令序列以从此些存储单元中获取第二数据串,对已译码第一数据串与第二数据串进行逻辑运算以获得调整数据串,依据调整数据串调整已译码第一数据串以获得已调整第一数据串,并且对已调整第一数据串再次执行错误校正译码程序而将译码后所获得的数据串作为已译码第一数据串。本发明可提供数据读取正确性。
【专利说明】
数据读取方法、存储器控制电路单元与存储器存储装置
技术领域
[0001]本发明是有关于一种数据读取方法,尤其涉及一种数据读取方法、存储器控制电路单元与存储器存储装置。
【背景技术】
[0002]数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内置于上述所举例的各种便携式多媒体装置中。
[0003]—般来说,写入至可复写式非易失性存储器模块的数据都会根据一个错误更正码来编码,并且从可复写式非易失性存储器模块中所读取的数据也会经过对应的程序来译码。然而,错误更正码的更正能力有其上限。例如,若使用涡轮码算法或是低密度奇偶检查校正码算法通过迭代方式来实施错误更正码,随着迭代译码的次数增加至一定次数后,在后续的迭代译码过程中会出现错误位数目不随着迭代次数的增加而减少的现象。此现象也称为错误饱和(error floor)。
[0004]基此,如何能够对所读取的数据顺利地进行译码,以获取原始数据是本领域技术人员所致力的目标。

【发明内容】

[0005]本发明提供一种数据读取方法、存储器控制电路单元与存储器存储装置,可以减少错误饱和的发生并且增加数据读取的正确性。
[0006]本发明的一实施例提供一种用于数据读取方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个存储单元;所述数据读取方法包括从主机系统接收读取指令,其中所述读取指令指示从该些存储单元中的多个第一存储单元读取数据;发送第一读取指令序列以从该些第一存储单元中获取第一数据串;以及对所述第一数据串执行错误校正译码程序以产生已译码第一数据串;所述数据读取方法还包括若所述已译码第一数据串中已无错误位,将所述已译码第一数据串作为已校正数据传送给所述主机系统以响应所述读取指令;以及,若所述已译码第一数据串中存有错误位,发送第二读取指令序列以从该些第一存储单元中获取第二数据串,对所述已译码第一数据串与第二数据串进行逻辑运算以获得调整数据串,依据所述调整数据串调整已译码第一数据串以获得已调整第一数据串,并且对所述已调整第一数据串再次执行所述错误校正译码程序而将译码后所获得的数据串作为所述已译码第一数据串。
[0007]在本发明的一实施例中,其中上述发送所述第一读取指令序列以从该些第一存储单元中获取所述第一数据串的步骤包括依据所述第一读取指令序列使用第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串;此外,上述发送所述第二读取指令序列以从该些第一存储单元中获取所述第二数据串的步骤包括依据所述第二读取指令序列使用第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。
[0008]在本发明的一实施例中,上述发送所述第一读取指令序列以从该些第一存储单元中获取所述第一数据串的步骤包括:依据所述第一读取指令序列使用一第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串;其中上述发送所述第二读取指令序列以从该些第一存储单元中获取所述第二数据串的步骤包括:依据所述第二读取指令序列使用一第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。
[0009]在本发明的一实施例中,其中将所述第一数据串与所述第二数据串进行所述逻辑运算以获得所述调整数据串的步骤包括对所述第一数据串与所述第二数据串进行互斥运算以产生所述调整数据串。
[0010]在本发明的一实施例中,其中上述依据所述调整数据串调整所述已译码第一数据串以获得所述已调整第一数据串的步骤包括识别所述已译码第一数据串之中多个无法识别数据与对应该些无法识别数据的多个无法识别数据地址,并且使用所述调整数据串中对应该些无法识别数据地址的数据对所述已译码第一数据串中的该些无法识别数据进行互斥运算来调整所述已译码第一数据串以获得所述已调整第一数据串。
[0011 ] 在本发明的一实施例中,所述的数据读取方法还包括记录对所述已调整第一数据串执行所述错误校正译码程序的次数;以及,若所述次数大于预定次数时,传送错误信息至所述主机系统。
[0012]在本发明的一实施例中,其中对所述第一数据串执行所述错误校正译码程序以产生所述已译码第一数据串的步骤包括使用区块涡轮码算法来执行所述错误校正译码程序。
[0013]在本发明的一实施例中,其中使用所述区块涡轮码算法来执行所述错误校正译码程序的步骤包括通过迭代方式对所述第一数据串使用博斯-乔赫里-霍克算法或低密度奇偶检查校正码算法作为辅助译码算法以获得对应所述第一数据串的最终译码结果;以及,将所述最终译码结果作为所述已译码第一数据串。
[0014]本发明的一实施例提供一种存储器控制电路单元,用于控制可复写式非易失性存储器模块;所述存储器控制电路单元包括主机接口、存储器接口与存储器管理电路;所述主机接口用以电性连接至主机系统;所述存储器接口用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个存储单元;所述存储器管理电路电性连接至所述主机接口与所述存储器接口 ;所述存储器管理电路用以从所述主机系统接收读取指令,其中所述读取指令指示从该些存储单元中的多个第一存储单元读取数据;所述存储器管理电路还用以发送第一读取指令序列以从该些第一存储单元中获取第一数据串,并且对所述第一数据串执行错误校正译码程序以产生已译码第一数据串;若所述已译码第一数据串中已无错误位,存储器管理电路还用以将所述已译码第一数据串作为已校正数据传送给所述主机系统以响应所述读取指令;若已译码第一数据串中存有错误位,所述存储器管理电路还用以发送第二读取指令序列以从该些第一存储单元中获取第二数据串,对所述已译码第一数据串与所述第二数据串进行逻辑运算以获得调整数据串,依据所述调整数据串调整所述已译码第一数据串以获得已调整第一数据串,并且对所述已调整第一数据串再次执行所述错误校正译码程序而将译码后所获得的数据串作为所述已译码第一数据串。
[0015]在本发明的一实施例中,在所述存储器管理电路还用以发送第一读取指令序列以从此些第一存储单元中获取所述第一数据串的运作中,所述存储器管理电路依据所述第一读取指令序列使用第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串;其中所述存储器管理电路还用以发送所述第二读取指令序列以从该些第一存储单元中获取所述第二数据串的运作中,所述存储器管理电路依据所述第二读取指令序列使用第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。
[0016]在本发明的一实施例中,在所述存储器管理电路将所述已译码第一数据串与所述第二数据串进行所述逻辑运算以获得所述调整数据串的运作中,所述存储器管理电路对所述已译码第一数据串与第二数据串进行互斥运算以产生所述调整数据串。
[0017]在本发明的一实施例中,在所述存储器管理电路依据所述调整数据串调整所述已译码第一数据串以获得所述已调整第一数据串的运作中,所述存储器管理电路识别所述已译码第一数据串之中的多个无法识别数据与对应该些无法识别数据的多个无法识别数据地址,并且通过使用所述调整数据串中对应该些无法识别数据地址的数据对所述已译码第一数据串中的该些无法识别数据进行互斥运算来调整所述已译码第一数据串以获得所述已调整第一数据串。
[0018]在本发明的一实施例中,所述存储器管理电路记录对所述已调整第一数据串执行所述错误校正译码程序的次数;以及,若所述次数大于预定次数时,所述存储器管理电路传送错误信息至所述主机系统。
[0019]在本发明的一实施例中,在所述存储器管理电路还用以对所述第一数据串执行所述错误校正译码程序以产生所述已译码第一数据串的运作中,所述存储器管理电路使用区块涡轮码算法来执行所述错误校正译码程序。
[0020]在本发明的一实施例中,在所述存储器管理电路使用所述区块涡轮码算法来执行所述错误校正译码程序的运作中,所述存储器管理电路通过迭代方式对所述第一数据串使用博斯-乔赫里-霍克算法或低密度奇偶检查校正码算法作为辅助译码算法以获得对应所述第一数据串的最终译码结果,并且将所述最终译码结果作为所述已译码第一数据串。
[0021]本发明的一实施例提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元,所述连接接口单元用以电性连接至主机系统;所述可复写式非易失性存储器模块具有多个存储单元;所述存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块;所述存储器控制电路单元用以从所述主机系统接收读取指令,其中所述读取指令指示从该些存储单元中的多个第一存储单元读取数据;其中所述存储器控制电路单元还用以发送第一读取指令序列以从该些第一存储单元中获取第一数据串,并且对所述第一数据串执行所述错误校正译码程序以产生已译码第一数据串;若已译码第一数据串中已无错误位,所述存储器控制电路单元还用以将所述已译码第一数据串作为已校正数据传送给所述主机系统以响应所述读取指令;以及,若所述已译码第一数据串中存有错误位,所述存储器控制电路单元还用以发送第二读取指令序列以从该些第一存储单元中获取第二数据串,对所述已译码第一数据串与所述第二数据串进行逻辑运算以获得调整数据串,依据所述调整数据串调整所述已译码第一数据串以获得已调整第一数据串,并且对所述已调整第一数据串再次执行所述错误校正译码程序而将译码后所获得的数据串作为所述已译码第一数据串。
[0022]在本发明的一实施例中,在所述存储器控制电路单元还用以发送第一读取指令序列以从该些第一存储单元中获取所述第一数据串的运作中,所述存储器控制电路单元依据所述第一读取指令序列使用第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串;此外,在所述存储器控制电路单元还用以发送第二读取指令序列以从该些第一存储单元中获取第二数据串的运作中,所述存储器控制电路单元依据所述第二读取指令序列使用第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。
[0023]在本发明的一实施例中,在所述存储器控制电路单元将所述已译码第一数据串与所述第二数据串进行逻辑运算以获得所述调整数据串的运作中,所述存储器控制电路单元对所述已译码第一数据串与所述第二数据串进行互斥运算以产生所述调整数据串。
[0024]在本发明的一实施例中,在所述存储器控制电路单元依据所述调整数据串调整所述已译码第一数据串以获得所述已调整第一数据串的运作中,所述存储器控制电路单元识别所述已译码第一数据串之中多个无法识别数据与对应此些无法识别数据的多个无法识别数据地址,并且通过使用所述调整数据串中对应此些无法识别数据地址的数据对所述已译码第一数据串中的该些无法识别数据进行互斥运算来调整所述已译码第一数据串以获得所述已调整第一数据串。
[0025]在本发明的一实施例中,所述存储器控制电路单元记录对所述已调整第一数据串执行所述错误校正译码程序的次数;以及,若所述次数大于预定次数,所述存储器控制电路单元传送错误信息至所述主机系统。
[0026]在本发明的一实施例中,在所述存储器控制电路单元还用以对所述第一数据串执行所述错误校正译码程序以产生所述已译码第一数据串的运作中,所述存储器控制电路单元使用区块涡轮码算法来执行所述错误校正译码程序。
[0027]在本发明的一实施例中,在所述存储器控制电路单元使用所述区块涡轮码算法来执行所述错误校正译码程序的运作中,所述存储器控制电路单元通过迭代方式对所述第一数据串使用博斯-乔赫里-霍克算法或低密度奇偶检查校正码算法作为辅助译码算法以获得对应所述第一数据串的最终译码结果,并且将最终译码结果作为所述已译码第一数据串O
[0028]基于上述,本发明所提供的数据读取方法、存储器控制电路单元与存储器存储装置,除了可以利用使用区块涡轮码来作错误校正编码以保护数据,还可以在译码的过程中,通过再次读取数据来对未能成功译码数据进行再次译码以成功地译码且读取数据,进而增进数据读取的正确性与对于所存储的数据的保护能力。
[0029]为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
【附图说明】
[0030]图1是本发明的一实施例的主机系统与存储器存储装置的示意图;
[0031]图2是本发明的一实施例的计算机、输入/输出装置与存储器存储装置的示意图;
[0032]图3是本发明的一实施例的主机系统与存储器存储装置的示意图;
[0033]图4是图1所示的存储器存储装置的概要方块图;
[0034]图5是本发明的一实施例的可复写式非易失性存储器模块的概要方块图;
[0035]图6是本发明的一实施例的错误检查与校正码框的示意图;
[0036]图7是本发明的一实施例的使用区块涡轮码进行错误校正编码程序的示意图;
[0037]图8?图17是本发明的一实施例的使用区块涡轮码进行错误校正译码程序的示意图;
[0038]图18是本发明的一实施例的数据读取方法的流程图。
[0039]附图标记说明:
[0040]11:主机系统;
[0041]12:计算机;
[0042]122:微处理器;
[0043]124:随机存取存储器;
[0044]13:输入/输出装置;
[0045]126:系统总线;
[0046]128:数据传输接口;
[0047]21:鼠标;
[0048]22:键盘;
[0049]23:显示器;
[0050]24:打印机;
[0051]25:随身盘;
[0052]26:存储卡;
[0053]27:固态硬盘;
[0054]31:数码相机;
[0055]32: SD 卡;
[0056]33:MMC 卡;
[0057]34:存储棒;
[0058]35:CF 卡;
[0059]36:嵌入式存储装置;
[0060]10:存储器存储装置;
[0061]402:连接接口单元;
[0062]404:存储器控制电路单元;
[0063]406:可复写式非易失性存储器模块;
[0064]502:存储器管理电路;
[0065]504:主机接口;
[0066]506:存储器接口;
[0067]508:缓冲存储器;
[0068]510:电源管理电路;
[0069]512:错误检查与校正电路;
[0070]ECCFl:错误检查与校正码框;
[0071]ECCl:错误检查与校正码;
[0072]UD:数据;
[0073]DBl?DB32:数据区块;
[0074]RGl ?RG4、CGl ?CG8:数据群组;
[0075]BCHl?BCHl2:错误校正码;
[0076]700、710、711、712、713、714、720、730、740、741、742:数据矩阵;
[0077]1200:无法识别数据;
[0078]1400:对应无法识别数据地址的数据;
[0079]S1801、S1803、S1805、S1807、S1809、S1811:数据读取方法的步骤。
【具体实施方式】
[0080]—般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
[0081]图1是本发明的一实施例的主机系统与存储器存储装置的示意图,并且图2是本发明的一实施例的计算机、输入/输出装置与存储器存储装置的示意图。
[0082]请参照图1,主机系统11 一般包括计算机12与输入/输出(input/output,简称I/O)装置13。计算机12包括微处理器122、随机存取存储器(random access memory,简称RAM) 124、系统总线126与数据传输接口 128。输入/输出装置13包括如图2的鼠标21、键盘22、显示器23与打印机24。必须了解的是,图2所示的装置非限制输入/输出装置13,输入/输出装置13还可包括其它装置。
[0083]在一实施例中,存储器存储装置10是通过数据传输接口 128与主机系统11的其它组件电性连接。通过微处理器122、随机存取存储器124与输入/输出装置13的运作可将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。例如,存储器存储装置10可以是如图2所示的随身盘25、存储卡26或固态硬盘(Solid State Drive,简称SSD) 27等的可复写式非易失性存储器存储装置。
[0084]图3是本发明的一实施例的主机系统与存储器存储装置的示意图。
[0085]—般而言,主机系统11为可实质地与存储器存储装置10配合以存储数据的任意系统。虽然在本实施例中,主机系统11是以计算机系统来作说明,然而,另一实施例中,主机系统11可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)31时,可复写式非易失性存储器存储装置则为其所使用的SD卡32、MMC卡33、存储棒(memory stick) 34、CF卡35或嵌入式存储装置36 (如图3所示)。嵌入式存储装置36包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
[0086]图4是图1所示的存储器存储装置的概要方块图。
[0087]请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406,其中可复写式非易失性存储器模块406具有多个实体擦除单元410 (O)?410 (N) ο
[0088]在本实施例中,连接接口单元402是兼容于串行高级附件(Serial AdvancedTechnology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级附件(Parallel Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical and ElectronicEngineers,简称 IEEE) 1394 标准、高速外设部件连接接口(Peripheral ComponentInterconnect Express,简称PCI Express)标准、通用串行总线(Universal Serial Bus,简称USB)标准、安全数字(Secure Digital,简称SD)接口标准、超高速一代(Ultra HighSpeed-1,简称 UHS-1)接口标准、超高速二代(Ultra High Speed-1I,简称 UHS-1I)接口标准、存储棒(Memory Stick,简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,简称eMMC)接口标准、通用闪存(Universal Flash Storage,简称 UFS)接口标准、小型快闪(Compact Flash,简称CF)接口标准、集成驱动电子接口(Integrated Device Electronics,简称IDE)标准或其它适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
[0089]存储器控制电路单元404用以执行以硬件形式或软件形式实作的多个逻辑栅或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与擦除等运作。
[0090]可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,简称SLC) NAND型闪存模块、多阶存储单元(Multi Level Cell,简称MLC) NAND型闪存模块(即,一个存储单元中可存储2个位数据的闪存模块)、复数阶存储单元(Triple Level Cell,简称TLC)NAND型闪存模块(即,一个存储单元中可存储3个位数据的闪存模块)、其它闪存模块或其它具有相同特性的存储器模块。
[0091 ] 图5是本发明的一实施例的存储器控制电路单元的概要方块图。
[0092]请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口 504、存储器接口 506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。
[0093]存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取与擦除等运作。
[0094]在本实施例中,存储器管理电路502的控制指令是以软件形式存在。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与擦除等运作。
[0095]在本发明另一实施例中,存储器管理电路502的控制指令也可以程序代码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令加载至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与擦除等运作。
[0096]此外,在本发明另一实施例中,存储器管理电路502的控制指令也可以一硬件形式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路是电性连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的实体擦除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器擦除电路用以对可复写式非易失性存储器模块406下达擦除指令以将数据从可复写式非易失性存储器模块406中擦除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。
[0097]主机接口 504是电性连接至存储器管理电路502并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过过主机接口 504来传送至存储器管理电路502。在本实施例中,主机接口 504是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口 504亦可以是兼容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-1接口标准、UHS-1I接口标准、MS标准、MMC标准、CF标准、IDE标准或其它适合的数据传输标准。
[0098]存储器接口 506是电性连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会通过存储器接口 506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406时,存储器接口 506会传送对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
[0099]缓冲存储器508是电性连接至存储器管理电路502并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块406的数据。存储器控制电路单元404在缓冲存储器508中预先暂存来自于主机系统1000的数据或来自于可复写式非易失性存储器模块406的数据,以使数据组织成预定单位大小或是成为传输单元大小,并写入到可复写式非易失性存储器模块406或是回传到主机系统。此外,缓冲存储器508还可暂存存储器控制电路单元404所使用的系统管理数据,例如,数据配置表或是逻辑-单元映射表等。
[0100]电源管理电路510是电性连接至存储器管理电路502并且用以控制存储器存储装置100的电源。
[0101]错误检查与校正电路512是电性连接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机系统1000中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据执行错误校正编码程序以产生对应的错误校正码(error correcting code,简称ECC code)及/或错误检查码(error detecting code,简称EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误校正码或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误校正码及/或错误检查码,并且错误检查与校正电路512会依据此错误校正码及/或错误检查码对所读取的数据执行错误校正译码程序。
[0102]如上所述,在存储器存储装置100的错误检查与校正电路512会被配置来验证可复写式非易失性存储器模块406中所存储的数据是否正确。然而,在执行错误校正程序时,无论是编码或译码步骤,错误检查与校正电路512都是需要清楚知道所要保护的数据长度为何,如此才能计算出正确的特征码,以检查出正确的错误位置,进而更正错误位。在本实施例中,当存储器控制电路单元404 (或存储器管理电路502)接收到数据时,存储器控制电路单元404 (或存储器管理电路502)会先将数据分割为多个码框(frame),之后错误检查与校正电路512再进行错误校正编码程序以产生各码框对应的错误校正码,以将这些码框与其各自所对应的错误校正码分别编码形成为错误检查与校正码框。在此,错误检查与校正码框的大小是根据传输单位的大小来分割,且此传输单位的大小是依据可复写式非易失性存储器模块406的规格书来决定。也就是说,每个传输单位须保护(protect)多少个位(bit)。例如,传输单位为512bytes,保护12个位,存储器控制电路单元404 (或存储器管理电路502)会将数据切割为每单位为512bytes。而错误检查与校正电路512则会针对每512bytes的数据进行错误校正编码程序,故每个错误检查与校正码框的大小就是512bytes。但必须了解的是,本发明不限于此,在另一实施例中,错误检查与校正码框的大小亦可以是IK bytes或2K bytes等等。
[0103]在本实施例中,存储器控制电路单元404 (或存储器管理电路502)会以错误检查与校正码框为单位来对数据译码以读取数据。举例来说,假设存储器控制电路单元404 (或存储器管理电路502)从主机系统接收到读取指令,其中读取指令指示从可复写式非易失性存储器模块406中的多个存储单元(也称,第一存储单元)中读取数据。在本实施例中,假设此欲读取的数据被划分为I个错误检查与校正码框,且存储在此些第一存储单元中。存储器控制电路单元404 (或存储器管理电路502)会发送读取指令序列(也称,第一读取指令序列)至可复写式非易失性存储器模块406以从存储对应欲读取数据的错误检查与校正码框的此些第一存储单元中获取数据串(也称,第一数据串),对第一数据串执行错误校正译码程序以产生对应欲读取数据的译码成功的已校正数据,并且将已校正数据传送给主机系统以响应读取指令。应注意的是,若欲读取的数据被划分为2个以上的错误检查与校正码框,存储器控制电路单元404 (或存储器管理电路502)会读取对应每一错误检查与校正码框的数据串,对所读取的数据串进行错误校正译码程序,并且在成功地校正所读取的数据串后合并数据串成为已校正数据并且传送至主机系统以响应读取指令。
[0104]在本实施例中,错误检查与校正电路512所使用的是区块涡轮码(block turbocode,简称BTC)来进行错误校正编码/译码程序。
[0105]图6是本发明的一实施例的错误检查与校正码框的示意图,并且图7是本发明的一实施例的使用区块涡轮码进行错误校正编码程序的示意图。必须了解的是,在此描述错误检查与校正电路512对数据的运作时,“选择”、“分割”、“划分”、“关联”、“排列”等词是逻辑上的概念。也就是说,错误检查与校正电路512所处理的数据本身的存储位置并未更动,而是逻辑上对数据进行操作。
[0106]请参照图6,假设错误检查与校正电路512对数据UD进行错误校正编码程序,且数据UD被划分为I个错误检查与校正码框ECCFl以进行错误校正编码程序,其中错误检查与校正码框ECCFl被存储于多个存储单元(也称,第一存储单元)中。在本实施例中,错误检查与校正电路512会使用区块涡轮码算法来对数据UD执行错误校正编码程序,将数据UD划分为多个数据群组,并且分别对此些数据群组进行编码以获得对应错误检查与校正码框ECCFl的错误校正码ECCl。
[0107]请参照图6与图7,举例来说,首先,错误检查与校正电路512会将数据UD分割为多个数据区块(data bits),如图6所示出的数据区块DBl?DB32。应注意的是,在本实施例中,为了便于说明,每一数据区块包含I个位数据,但本发明不限于此。例如,在其它实施例中,每一数据区块也可包含2个或是多于2个的位数据。
[0108]接着,错误检查与校正电路512将数据区块DBl?DB32排列为一个8乘以4的二维(横向与纵向)数据矩阵,并且依照维度来划分为多个纵向与横向的数据群组。例如,横向排列的数据区块DBl?DB8会被划分为数据群组RGl ;数据区块DB9?DB16会被划分为数据群组RG2 ;数据区块DB17?DB24会被划分为数据群组RG3 ;数据区块DB25?DB32会被划分为数据群组RG4。此外,纵向排列的数据区块DB1、DB9、DB17、DB25会被划分为数据群组CGl ;数据区块DB2、DB10、DB18、DB26会被划分为数据群组CG2 ;数据区块DB3、DBlUDB19、DB27会被划分为数据群组CG3 ;数据区块DB4、DB12、DB20、DB28会被划分为数据群组CG4 ;数据区块DB5、DB13、DB2UDB29会被划分为数据群组CG5 ;数据区块DB6、DB14、DB22、DB30会被划分为数据群组CG6 ;数据区块DB7、DB15、DB23、DB31会被划分为数据群组CG7 ;数据区块DB8、DB16、DB24、DB32会被划分为数据群组CG8。
[0109]在本实施例中,在将数据区块DBl?DB32划分为横向的数据群组RGl?RG4与纵向的数据群组CGl?CG8后,错误检查与校正电路512会使用博斯-乔赫里-霍克码(以下称BCH)作为辅助编码算法来分别对此些数据群组做编码,以产生对应此些数据群组的错误校正码。也就是说,对于横向的数据群组RGl?RG4,错误检查与校正电路512会通过BCH算法对划分至数据群组RGl的数据(即,数据区块DBl?DB8)进行编码以产生对应数据群组RGl的数据的错误校正码BCHl。依此类推,错误检查与校正电路512会产生对应数据群组RG2的错误校正码BCH2 ;产生对应数据群组RG3的错误校正码BCH3 ;产生对应数据群组RG4的错误校正码BCH4。此外,对于纵向的数据群组CGl?CG8,错误检查与校正电路512也会产生对应数据群组CGl的错误校正码BCH5 ;产生对应数据群组CG2的错误校正码BCH6 ;产生对应数据群组CG3的错误校正码BCH7 ;产生对应数据群组CG4的错误校正码BCH8 ;产生对应数据群组CG5的错误校正码BCH9 ;产生对应数据群组CG6的错误校正码BCHlO ;产生对应数据群组CG7的错误校正码BCHll ;产生对应数据群组CG8的错误校正码BCH12。因此,数据群组RGl?RG4与数据群组CGl?CG8中的数据可分别被对应的错误校正码BCHl?BCH4与错误校正码BCH5?BCH12保护。应注意的是,本发明并不限于使用博斯-乔赫里-霍克码作为辅助编码算法来分别对此些数据群组做编码。例如,在另一实施例中,错误检查与校正电路512会使用低密度奇偶检查校正码作为辅助编码算法来分别对此些数据群组做编码。
[0110]值得一提的是,在本实施例中,错误检查与校正电路512会先将数据区块划分至多个数据群组之后,再对每一数据群组进行编码以产生对应每一数据群组的错误校正码,但本发明不限于此。例如,在另一实施例中,错误检查与校正电路512可不先将数据区块划分为此些数据群组,并且直接根据数据区块的排列方式来对数据区块作错误校正编码。举例来说,错误检查与校正电路512会直接对数据区块DBl?DB8来进行错误校正编码程序,以产生对应数据区块DBl?DB8的错误校正码BCHl。
[0111]请参照图6,在本实施例中,错误检查与校正电路512会将错误校正码BCHl?BCHl2合并成为对应错误检查与校正码框ECCFl的错误检查与校正码ECCl,并且存储已完成错误校正编码程序的错误检查与校正码框ECCFl与错误检查与校正码ECCl。然后,存储器控制电路单元404 (或存储器管理电路502)可通过错误检查与校正码ECCl对错误检查与校正码框ECCFl进行错误校正译码程序以读取数据W。
[0112]图8?图17是本发明的一实施例的使用区块涡轮码进行错误校正译码程序的示意图。
[0113]请同时参照图6、图7与图8,举例来说,假设存储器控制电路单元404 (或存储器管理电路502)从主机系统接收到读取指令,其中读取指令指示从可复写式非易失性存储器模块406的多个存储单元(也称,第一存储单元)中读取数据UD。存储器控制电路单元404(或存储器管理电路502)会发送读取指令序列以从此些第一存储单元中获取数据串(也称,第一数据串)。应注意的是,存储器控制电路单元404(或存储器管理电路502)会依据第一读取指令序列使用第一读取电压读取此些第一存储单元以从此些第一存储单元中获取第一数据串。
[0114]如上所述,由于数据UD通过上述的错误校正编码程序成为错误检查与校正码框ECCFlo因此,在对数据UD的错误校正译码程序中,错误检查与校正电路512会将从存储错误检查与校正码框ECCFl的第一存储单元所读取的第一数据串分割为32个数据区块DBl?DB32,并且将数据区块DBl?DB32排列成二维数据矩阵710。其中,对应数据区块DBl?DB32的数据群组的划分方法相同于图7中的例子,在此不再赘述。错误检查与校正电路512会从对应错误检查与校正码框ECCFl的错误检查与校正码ECCl中获取对应每一数据群组的错误校正码BCHl?BCH12。在本实施例中,假设错误检查与校正电路512的保护能力是I个位。换言之,若对应错误校正码BCHl?BCH12的其中之一的数据群组中的数据存在有2个以上的错误位,错误检查与校正电路512便无法根据此数据群组所对应的错误校正码来成功地译码此数据群组的数据。
[0115]举例来说,假设在第一数据串中存在有多个错误位(如图8所示的网点区块),此些错误位分别是数据区块 DB4、DB 1、DB 11、DB 12、DB 13、DB 17、DB 18、DB23、DB24、DB31、DB32。如上所述,由于错误检查与校正电路512的保护能力是I个位且由数据区块DB9?DB16所形成的数据群组RG2的错误位数目为4个。因此,错误检查与校正电路512无法根据错误校正码BCH2来译码错误校正码BCH2所对应的数据群组RG2的数据。但是,错误检查与校正电路512却可以利用对应其它数据群组的错误校正码以迭代方式来进行错误位的校正。
[0116]假设错误检查与校正电路512会先对横向排列的数据区块所形成的多个数据群组与对应此些数据群组的错误校正码进行译码,再对纵向排列的数据区块所形成的多个数据群组与对应此些数据群组的错误校正码进行译码。请同时参照图7、图8与图9,在首次对第一数据串进行的错误校正译码程序中,错误检查与校正电路512进行了第一次的横向迭代译码。即,错误检查与校正电路512会通过错误校正码BCHl来译码数据区块DBl?DB8 ;通过错误校正码BCH2来译码数据区块DB9?DB16 ;通过错误校正码BCH3来译码数据区块DB17?DB24 ;通过错误校正码BCH4来译码数据区块DB25?DB32。应注意的是,上述横向译码或是纵向译码的先后顺序仅为说明之用,本发明不限于此。
[0117]由于在图8中的数据区块DBl?DB8所形成的数据群组RGl仅具有I个错误位(即,图8所示的数据区块DB4),错误检查与校正电路512可成功地通过对应数据群组RGl的错误校正码BCHl来译码出数据群组RGl的数据。但是,由于在图8中的数据区块DB9?DB16所形成的数据群组RG2具有4个错误位(S卩,图8所绘示的数据区块DB10、DB11、DB12、DB13),错误检查与校正电路512不能通过对应数据群组RG2的错误校正码BCH2来译码出数据群组RG2的数据。换言之,发生错误的数据区块DBlO?DB13没有被校正。依此类推,在经过第一次错误校正译码程序的第一次横向迭代译码后,如图9所示,错误检查与校正电路512成功地校正发生错误的数据区块DB4 (以粗体底线表示),并且获得数据矩阵711。
[0118]如上所述,在完成横向的译码且获得数据矩阵712后,错误检查与校正电路512会对数据矩阵712进行纵向的译码。即,错误检查与校正电路512会通过错误校正码BCH5来译码数据区块DB 1、DB9、DB 17、DB25 ;通过错误校正码BCH6来译码数据区块DB2、DB 1、DB 18、DB26 ;通过错误校正码BCH7来译码数据区块DB3、DBlU DB19、DB27 ;通过错误校正码BCH8来译码数据区块DB4、DB12、DB20、DB28 ;通过错误校正码BCH9来译码数据区块DB5、DB13、DB21、DB29 ;通过错误校正码BCHlO来译码数据区块DB6、DB14、DB22、DB30 ;通过错误校正码BCHll来译码数据区块DB7、DB15、DB23、DB31 ;通过错误校正码BCH12来译码数据区块DB8、DB16、DB24、DB32。
[0119]相似于上述横向的译码,由于在图9中的数据区块DB1、DB9、DB17、DB25所形成的数据群组CGl仅具有I个错误位(即,图9所示的数据区块DB17),错误检查与校正电路512可成功地通过对应数据群组CGl的错误校正码BCH5来译码出数据群组CGl的数据。但是,由于在图8中的数据区块DB2、DB10、DB18、DB26所形成的数据群组CG2具有2个错误位(即,图8所绘示的数据区块DB10、DB18),错误检查与校正电路512不能通过对应数据群组CG2的错误校正码BCH6来译码出数据群组CG2的数据。换言之,发生错误的数据区块DB10、DB18没有被校正。依此类推,在经过第一次错误校正译码程序的第一次纵向迭代译码后,如图10所示,错误检查与校正电路512成功地校正发生错误的数据区块DB4、DBlUDB12、DB13 (以粗体底线表示),并且获得数据矩阵712。
[0120]在完成第一次错误校正译码程序的第一次横向与纵向迭代译码之后,错误检查与校正电路512会继续以迭代方式来译码数据矩阵712。相同地,错误检查与校正电路512会先对数据矩阵712开始进行横向的译码。请同时参照图10与图11,由于经过第一次错误校正译码程序的第一次纵向迭代译码后,错误检查与校正电路512成功地校正不能通过第一次错误校正译码程序的第一次横向迭代译码校正的错误的数据区块DB11、DB12、DB13,并且对于数据区块DB9?DB16所形成的数据群组RG2仅具有I个错误位(即,数据区块DB10)。因此,在接续的第一次错误校正译码程序的第二次横向迭代译码中,错误检查与校正电路512可以使用对应数据群组RG2的错误校正码BCH2来译码数据群组RG2。换言之,数据区块DBlO可以被成功地校正。请参照图11,经过第一次错误校正译码程序的第二次横向迭代译码后,数据区块DBlO被成功地校正,错误位仅剩下数据区块DB18、DB23、DB24、DB31、DB32,并且产生数据矩阵713。
[0121]相似地,在完成第一次错误校正译码程序的第二次横向迭代译码之后,错误检查与校正电路512会继续进行第一次错误校正译码程序的第二次纵向迭代译码来译码数据矩阵713。请参照图10、图11与图12,原本在图10中,第一次错误校正译码程序的第一次纵向迭代译码无法校正发生错误的数据区块DB10、DB18。但是,由于第一次错误校正译码程序的第二次横向迭代译码成功地校正数据区块DB10,并且使得纵向排列的数据区块DB2、DB10、DB18、DB26所形成的数据群组CG2仅具有I个错误位(如图11所绘示的数据区块DB18)。因此,在图12中的第一次错误校正译码程序的第二次纵向迭代译码中,错误检查与校正电路512可以通过对应数据群组CG2的错误校正码BCH6来校正发生错误的数据区块DB18。请参照图12,在完成第一次错误校正译码程序的第二次纵向迭代译码后,错误位仅剩下数据区块DB23、DB24、DB31、DB32,并且产生了数据矩阵714。
[0122]应注意的是,相似于上述步骤,错误检查与校正电路512再次对数据矩阵714进行横向与纵向的迭代译码,但是发生错误的数据区块DB23、DB24、DB3UDB32依然不能被成功地校正。也就是说,数据矩阵714是本次错误译码校正程序的最终译码结果。错误检查与校正电路512会将数据矩阵714输出,并且存储器控制电路单元404 (或存储器管理电路502)会将数据矩阵714作为对应第一数据串的已译码第一数据串。
[0123]由于本次错误校正译码程序的最终译码结果的已译码第一数据串依然存在有不能被成功地校正的数据区块,在本实施例中,存储器控制电路单元404 (或存储器管理电路502)会继续处理已译码第一数据串。首先,存储器控制电路单元404(或存储器管理电路502)会判断在已译码第一数据串中的无法识别数据与对应无法识别数据的无法识别数据地址。具体来说,由于存储器控制电路单元404 (或存储器管理电路502)可判定在已译码第一数据串(即,数据矩阵714)中已经被成功地校正的数据区块为数据区块DBl?DB22、DB25?DB30,且存储器控制电路单元404 (或存储器管理电路502)无法判断在数据区块DB23、DB24、DB31、DB32是否均发生错误。因此,存储器控制电路单元404 (或存储器管理电路502)会识别数据区块DB23、DB24、DB31、DB32为无法识别数据,并且将对应此些无法识别数据的地址作为无法识别数据地址1200(如图12所示的黑色粗框区域1200)。
[0124]在本实施例中,若已译码第一数据串中存有错误位时,存储器控制电路单元404 (或存储器管理电路502)会发送另一读取指令序列(也称,第二读取指令序列)以从此些第一存储单元再次获取数据串(也称,第二数据串)。例如,在一范例实施例中,存储器控制电路单元404 (或存储器管理电路502)会依据第二读取指令序列使用第二读取电压读取此些第一存储单元以从此些第一存储单元中获取第二数据串,并且第二读取电压的电压值等于上述第一读取电压的电压值。然而,必须了解的是,第二读取电压的电压值也可不等于上述第一读取电压的电压值。例如,在另一实施例中,存储器控制电路单元404(或存储器管理电路502)会在使用第二读取电压读取此些第一存储单元之前,先检测第一存储单元的临界电压分布,再根据检测结果(如,临界电压分布的偏移量)来使用适当的第二读取电压的电压值以读取第一存储单元,其中第二读取电压的电压值会不同于第一读取电压的电压值。因此,存储器控制电路单元404 (或存储器管理电路502)会较正确地识别第一存储单元的存储状态。应注意的是,本发明并不限于调整第二读取电压的电压值的调整方法。例如,存储器控制电路单元404 (或存储器管理电路502)可不需进行检测,并且根据预定读取电压调整表来调整第二读取电压的电压值。
[0125]请参照图13,相似于上述步骤,存储器控制电路单元404 (或存储器管理电路502)会将第二数据串排列为数据矩阵720。假设在第二数据串(即,数据矩阵720)中具有多个错误位,此些错误位为数据区块DB4、DBlO?13、DB16、DB17?DB18、DB23?DB24、DB30?DB31o
[0126]请同时参照图12、图13与图14,存储器控制电路单元404(或存储器管理电路502)会对在上次错误校正译码程序所获得的已译码第一数据串(即,数据矩阵714)与第二数据串(即,数据矩阵720)做互斥运算以获得调整数据串(如图14所绘示的数据矩阵730),以判定第二数据串与已译码第一数据串的差异处(如图14所示的斜线数据区块DB16、DB30、DB32)。
[0127]在本实施例中,存储器控制电路单元404 (或存储器管理电路502)会依据调整数据串调整已译码第一数据串以获得已调整第一数据串。
[0128]具体来说,首先,存储器控制电路单元404 (或存储器管理电路502)会通过从已译码第一数据串所辨识的无法识别数据与无法识别数据地址,来辨识在调整数据串中对应无法识别数据地址的数据1400(如图14所示的黑色粗框区域1400)。
[0129]接着,请同时参照图12、图14与图15,存储器控制电路单元404 (或存储器管理电路502)会使用调整数据串中对应此些无法识别数据地址的数据1400对已译码第一数据串中的此些无法识别数据1200进行互斥运算以调整已译码第一数据串成为已调整第一数据串(即,图15中的数据矩阵740)。换言之,存储器控制电路单元404(或存储器管理电路502)不会去调整已译码第一数据串中已经成功校正的数据区块,而是会通过使用第二数据串与已译码数据串在无法识别数据地址上的数据差异来调整已译码第一数据串的无法识别数据。藉此,存储器控制电路单元404 (或存储器管理电路502)可继续对调整已译码第一数据串(即,数据矩阵714)所获得的已调整第一数据串(S卩,数据矩阵740)进行错误校正译码程序(即,第二次错误校正译码程序)。
[0130]请同时参照图15与图16,由于经过上述调整数据串的调整,已译码第一数据串成为已调整第一数据串,并且原本在已译码第一数据串(即,数据矩阵714)中具有2个错误位(即,数据区块DB3UDB32)的数据区块DB25?DB32所形成的数据群组成为已调整第一数据串(即,数据矩阵740)中仅具有I个错误位(S卩,数据区块DB31)的数据群组。也就是说,在图15的已调整第一数据串(数据矩阵740)中仅具有I个错误位的数据区块DB24?DB32可通过使用错误校正码BCH4来被校正。相似于上述步骤,经过第二次错误校正的第一次横向迭代译码后,原本发生错误的数据区块DB31被成功地校正,发生错误的数据区块仅剩下数据区块DB23、DB24,并且产生数据矩阵741。
[0131]请同时参照图16与图17,相似于上述步骤,存储器控制电路单元404(或存储器管理电路502)会继续进行纵向的译码。再经过第二次错误校正的第一次纵向迭代译码后,发生错误的数据区块DB23、DB24也被校正,并且产生已无任何错误位的数据矩阵742。错误检查与校正电路512会将已成功完成校正的数据矩阵742转换为已译码第一数据串输出。例如,已译码第一数据串是由成功译码的数据区块DBl?DB32循序排列而成。存储器控制电路单元404 (或存储器管理电路502)会判断已译码第一数据串是否存有错误位。由于已译码第一数据串(即,数据矩阵742)中已没有存在任何错误位,存储器控制电路单元404 (或存储器管理电路502)会将已译码第一数据串做为已校正数据并且传送已校正数据至主机系统以响应读取指令。
[0132]值得一提的是,上述将从此些第一存储单元中所读取的数据串分割为32个数据区块并且将此些数据区块排列成8乘以4的二维数据矩阵的方式仅为说明之用,本发明不限于此。例如,在其它实施例中,从此些第一存储单元所读取的数据串可被分割为少于32个或是多余32个的数据区块,并且此些分割后的数据区块可排列成二维或是三维的任意长宽(高)比例的数据矩阵。接着,再对此些数据区块所属的多个数据群组作错误校正编码或译码程序,以获得对应此些数据群组的错误校正码或是校正发生错误的数据区块。
[0133]应注意的是,存储器控制电路单元404(或存储器管理电路502)还会记录对已调整第一数据串执行该错误校正译码程序的次数。若所述次数大于预定次数时,存储器控制电路单元404(或存储器管理电路502)传送错误信息至主机系统以响应读取指令,其中所述错误信息用以表示无法读取读取指令所欲读取的数据。换言之,若是多个通过从再次读取第一存储单元所获得的数据串与经过前次错误译码程序所获得的已译码第一数据串所获得的已调整数据串皆不能被成功地译码,存储器控制电路单元404 (或存储器管理电路502)不再尝试去调整已译码第一数据串,而停止对所获得的数据串的错误校正译码程序,并且传送错误信息至主机系统。应注意的是,厂商可根据自身需求来设定所述预定次数的数值。
[0134]图18是本发明的一实施例的数据读取方法的流程图。
[0135]首先,在步骤S1801中,存储器控制电路单元404 (或存储器管理电路502)从主机系统接收读取指令,其中读取指令指示从此些存储单元中的多个第一存储单元读取数据。在步骤S1803中,存储器控制电路单元404 (或存储器管理电路502)发送第一读取指令序列以从此些第一存储单元中获取第一数据串。
[0136]在步骤S1805中,存储器控制电路单元404 (或存储器管理电路502)对第一数据串执行错误校正译码程序以产生已译码第一数据串。在步骤S1807中存储器控制电路单元404(或存储器管理电路502)判断已译码第一数据串是否存在错误位。
[0137]若已译码第一数据串中已无错误位,在步骤S1809中,存储器控制电路单元404(或存储器管理电路502)将已译码第一数据串作为已校正数据传送给主机系统以响应读取指令,并结束整个流程。若已译码第一数据串中存有错误位,在步骤S1811中,存储器控制电路单元404 (或存储器管理电路502)发送第二读取指令序列以从此些第一存储单元中获取第二数据串,对已译码第一数据串与第二数据串进行逻辑运算以获得调整数据串,依据调整数据串调整已译码第一数据串以获得已调整第一数据串,将对已调整第一数据串再次执行错误校正译码程序所获得的数据串作为已译码第一数据串,并且接续步骤S1807。
[0138]综上所述,本发明所提供的数据读取方法、存储器控制电路单元与存储器存储装置,除了可以利用区块涡轮码来作错误校正编码以保护数据,更可以在译码的过程中,通过再次读取数据来对未能成功译码数据进行再次译码以成功地译码且读取数据,进而增进数据读取的正确性与对于所存储的数据的保护能力。
[0139]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种数据读取方法,用于一可复写式非易失性存储器模块,其特征在于,所述可复写式非易失性存储器模块包括多个存储单元,所述数据读取方法包括: 从一主机系统接收一读取指令,其中所述读取指令指示从该些存储单元中的多个第一存储单元读取一数据; 发送一第一读取指令序列以从该些第一存储单元中获取一第一数据串; 对所述第一数据串执行一错误校正译码程序以产生一已译码第一数据串; 若所述已译码第一数据串中已无错误位,将所述已译码第一数据串作为一已校正数据传送给所述主机系统以响应所述读取指令;以及 若所述已译码第一数据串中存有错误位,发送一第二读取指令序列以从该些第一存储单元中获取一第二数据串,对所述已译码第一数据串与所述第二数据串进行一逻辑运算以获得一调整数据串,依据所述调整数据串调整所述已译码第一数据串以获得一已调整第一数据串,并且对所述已调整第一数据串再次执行所述错误校正译码程序而将译码后所获得的数据串作为所述已译码第一数据串。2.根据权利要求1所述的数据读取方法,其特征在于,所述发送所述第一读取指令序列以从该些第一存储单元中获取所述第一数据串的步骤包括: 依据所述第一读取指令序列使用一第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串, 其中上述发送所述第二读取指令序列以从该些第一存储单元中获取所述第二数据串的步骤包括: 依据所述第二读取指令序列使用一第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。3.根据权利要求1所述的数据读取方法,其特征在于,将所述已译码第一数据串与所述第二数据串进行所述逻辑运算以获得所述调整数据串的步骤包括: 对所述已译码第一数据串与所述第二数据串进行一互斥运算以产生所述调整数据串。4.根据权利要求1所述的数据读取方法,其特征在于,上述依据所述调整数据串调整所述已译码第一数据串以获得所述已调整第一数据串的步骤包括: 识别所述已译码第一数据串之中多个无法识别数据与对应该些无法识别数据的多个无法识别数据地址;以及 使用所述调整数据串中对应该些无法识别数据地址的数据对所述已译码第一数据串中的该些无法识别数据进行一互斥运算来调整所述已译码第一数据串以获得所述已调整第一数据串。5.根据权利要求1所述的数据读取方法,其特征在于,所述方法还包括: 记录对所述已调整第一数据串执行所述错误校正译码程序的一次数;以及 若所述次数大于一预定次数时,传送一错误信息至所述主机系统。6.根据权利要求1所述的数据读取方法,其特征在乎,对所述第一数据串执行所述错误校正译码程序以产生所述已译码第一数据串的步骤包括: 使用一区块涡轮码算法来执行所述错误校正译码程序。7.根据权利要求6所述的数据读取方法,其特征在于,使用所述区块涡轮码算法来执行所述错误校正译码程序的步骤包括: 通过一迭代方式对所述第一数据串使用一博斯-乔赫里-霍克码算法或一低密度奇偶检查校正码算法作为一辅助译码算法以获得对应所述第一数据串的一最终译码结果;以及将所述最终译码结果作为所述已译码第一数据串。8.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,所述存储器控制电路单元包括: 一主机接口,用以电性连接至一主机系统; 一存储器接口,用以电性连接至所述可复写所述非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个存储单元;以及 一存储器管理电路,电性连接至所述主机接口与所述存储器接口, 其中所述存储器管理电路用以从所述主机系统接收一读取指令,其中所述读取指令指示从该些存储单元中的多个第一存储单元读取一数据, 其中所述存储器管理电路还用以发送一第一读取指令序列以从该些第一存储单元中获取一第一数据串, 其中所述存储器管理电路还用以对所述第一数据串执行一错误校正译码程序以产生一已译码第一数据串, 其中若所述已译码第一数据串中已无错误位,该存储器管理电路还用以将所述已译码第一数据串作为一已校正数据传送给所述主机系统以响应所述读取指令, 其中若所述已译码第一数据串中存有错误位,所述存储器管理电路还用以发送一第二读取指令序列以从该些第一存储单元中获取一第二数据串,对所述已译码第一数据串与所述第二数据串进行一逻辑运算以获得一调整数据串,依据所述调整数据串调整所述已译码第一数据串以获得一已调整第一数据串,并且对所述已调整第一数据串再次执行所述错误校正译码程序而将译码后所获得的数据串作为所述已译码第一数据串。9.根据权利要求8所述的存储器控制电路单元,其特征在于,在所述存储器管理电路还用以发送所述第一读取指令序列以从该些第一存储单元中获取所述第一数据串的运作中, 所述存储器管理电路依据所述第一读取指令序列使用一第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串, 其中在上述所述存储器管理电路还用以发送所述第二读取指令序列以从该些第一存储单元中获取所述第二数据串的运作中, 所述存储器管理电路依据所述第二读取指令序列使用一第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。10.根据权利要求8所述的存储器控制电路单元,其特征在于,在所述存储器管理电路将所述已译码第一数据串与所述第二数据串进行所述逻辑运算以获得所述调整数据串的运作中, 所述存储器管理电路对所述已译码第一数据串与所述第二数据串进行一互斥运算以产生所述调整数据串。11.根据权利要求8所述的存储器控制电路单元,其特征在于,在所述存储器管理电路依据所述调整数据串调整所述已译码第一数据串以获得所述已调整第一数据串的运作中,所述存储器管理电路识别所述已译码第一数据串之中多个无法识别数据与对应该些无法识别数据的多个无法识别数据地址;以及 所述存储器管理电路通过使用所述调整数据串中对应该些无法识别数据地址的数据对所述已译码第一数据串中的该些无法识别数据进行一互斥运算来调整所述已译码第一数据串以获得所述已调整第一数据串。12.根据权利要求8所述的存储器控制电路单元,其特征在于,所述存储器管理电路记录对所述已调整第一数据串执行所述错误校正译码程序的一次数, 其中若所述次数大于一预定次数时,所述存储器管理电路传送一错误信息至所述主机系统。13.根据权利要求8所述的存储器控制电路单元,其特征在于,在所述存储器管理电路还用以对所述第一数据串执行所述错误校正译码程序以产生所述已译码第一数据串的运作中, 所述存储器管理电路使用一区块涡轮码算法来执行所述错误校正译码程序。14.根据权利要求13所述的存储器控制电路单元,其特征在于,在所述存储器管理电路使用所述区块涡轮码算法来执行所述错误校正译码程序的运作中, 所述存储器管理电路通过一迭代方式对所述第一数据串使用一博斯-乔赫里-霍克码算法或一低密度奇偶检查校正码算法作为一辅助译码算法以获得对应所述第一数据串的一最终译码结果, 其中所述存储器管理电路将所述最终译码结果作为所述已译码第一数据串。15.一种存储器存储装置,其特征在于,包括: 一连接接口单元,用以电性连接至一主机系统; 一可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个存储单元;以及 一存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块, 其中所述存储器控制电路单元用以从所述主机系统接收一读取指令,其中所述读取指令指示从该些存储单元中的多个第一存储单元读取一数据, 其中所述存储器控制电路单元还用以发送一第一读取指令序列以从该些第一存储单元中获取一第一数据串, 其中所述存储器控制电路单元还用以对所述第一数据串执行一错误校正译码程序以产生一已译码第一数据串, 其中若所述已译码第一数据串中已无错误位,所述存储器控制电路单元还用以将所述已译码第一数据串作为一已校正数据传送给所述主机系统以响应所述读取指令, 其中若所述已译码第一数据串中存有错误位,所述存储器控制电路单元还用以发送一第二读取指令序列以从该些第一存储单元中获取一第二数据串,对所述已译码第一数据串与该第二数据串进行一逻辑运算以获得一调整数据串,依据所述调整数据串调整所述已译码第一数据串以获得一已调整第一数据串,并且对所述已调整第一数据串再次执行所述错误校正译码程序而将译码后所获得的数据串作为所述已译码第一数据串。16.根据权利要求15所述的存储器存储装置,其特征在于,在所述存储器控制电路单元还用以发送所述第一读取指令序列以从该些第一存储单元中获取所述第一数据串的运作中, 所述存储器控制电路单元依据所述第一读取指令序列使用一第一读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第一数据串, 其中在所述存储器控制电路单元还用以发送所述第二读取指令序列以从该些第一存储单元中获取所述第二数据串的运作中, 所述存储器控制电路单元依据所述第二读取指令序列使用一第二读取电压读取该些第一存储单元以从该些第一存储单元中获取所述第二数据串,其中所述第二读取电压的电压值不等于所述第一读取电压的电压值。17.根据权利要求15所述的存储器存储装置,其特征在于,在所述存储器控制电路单元将所述已译码第一数据串与所述第二数据串进行所述逻辑运算以获得所述调整数据串的运作中, 所述存储器控制电路单元对所述已译码第一数据串与所述第二数据串进行一互斥运算以产生所述调整数据串。18.根据权利要求15所述的存储器存储装置,其特征在于,在所述存储器控制电路单元依据所述调整数据串调整所述已译码第一数据串以获得所述已调整第一数据串的运作中, 所述存储器控制电路单元识别所述已译码第一数据串之中多个无法识别数据与对应该些无法识别数据的多个无法识别数据地址;以及 所述存储器控制电路单元通过使用所述调整数据串中对应该些无法识别数据地址的数据对所述已译码第一数据串中的该些无法识别数据进行一互斥运算来调整所述已译码第一数据串以获得所述已调整第一数据串。19.根据权利要求15所述的存储器存储装置,其特征在于,所述存储器控制电路单元记录对所述已调整第一数据串执行所述错误校正译码程序的一次数, 其中若所述次数大于一预定次数,所述存储器控制电路单元传送一错误信息至所述主机系统。20.根据权利要求15所述的存储器存储装置,其特征在于,在所述存储器控制电路单元还用以对所述第一数据串执行所述错误校正译码程序以产生所述已译码第一数据串的运作中, 所述存储器控制电路单元使用一区块涡轮码算法来执行所述错误校正译码程序。21.根据权利要求20所述的存储器存储装置,其特征在于,在所述存储器控制电路单元使用所述区块涡轮码算法来执行所述错误校正译码程序的运作中, 所述存储器控制电路单元通过一迭代方式对所述第一数据串使用一博斯-乔赫里-霍克码算法或一低密度奇偶检查校正码算法作为一辅助译码算法以获得对应所述第一数据串的一最终译码结果, 其中所述存储器控制电路单元将所述最终译码结果作为所述已译码第一数据串。
【文档编号】G06F3/06GK105988732SQ201510096002
【公开日】2016年10月5日
【申请日】2015年3月4日
【发明人】林纬, 王天庆, 赖国欣
【申请人】群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1