CN103631670B - 存储器储存装置、存储器控制器与数据处理方法 - Google Patents
存储器储存装置、存储器控制器与数据处理方法 Download PDFInfo
- Publication number
- CN103631670B CN103631670B CN201210299861.5A CN201210299861A CN103631670B CN 103631670 B CN103631670 B CN 103631670B CN 201210299861 A CN201210299861 A CN 201210299861A CN 103631670 B CN103631670 B CN 103631670B
- Authority
- CN
- China
- Prior art keywords
- data
- correcting code
- error checking
- original
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储器储存装置、存储器控制器与数据处理方法,该数据处理方法用于可擦写式非易失性存储器模块。此方法包括接收第一数据,并对第一数据进行错误校正编码程序以产生对应第一数据的原始错误检查与校正码。此方法还包括依据第二数据重整规则将原始错误检查与校正码转换为第二错误检查与校正码,其中第二错误检查与校正码不同于原始错误检查与校正码。此方法还包括将第一数据与第二错误检查与校正码分别写入可擦写式非易失性存储器模块中相同或相异的实体程序化单元的数据字符区与错误校正码字符区。
Description
技术领域
本发明是有关于一种数据处理方法,且特别是有关于一种存储器储存装置、存储器控制器与数据处理方法。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可擦写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合便携式应用,最适合使用于这类便携式由电池供电的产品上。固态硬盘就是一种以可擦写式非易失性存储器作为储存媒体的储存装置。由于可擦写式非易失性存储器体积小容量大,所以已广泛用于个人重要数据的储存。因此,近年可擦写式非易失性存储器产业成为电子产业中相当热门的一环。
由于储存在可擦写式非易失性存储器的数据可能会因各种因素(例如,存储器单元的漏电、程序程序化失败、损毁等)而产生错误字符,因此,在存储器储存系统中一般会配置错误检查与校正电路并为所储存的数据产生错误检查与校正码以确保数据的正确性。当数据中的错误字符数目超过错误检查与校正电路所能检测与校正的错误字符数时,含有错误字符的数据就无法被校正,而导致数据遗失。
然而,在读取数据时若因读取信号受到干扰而发生数据位移(shift)的情况,某些错误检查与校正机制无法有效地检测出不能被校正的错误字符,因而会产生不正确的检测结果。因此,如何更精确地检查出错误字符便是此领域技术人员所致力的目标。
发明内容
有鉴于此,本发明提供一种存储器储存装置、存储器控制器与数据处理方法,能在进行错误检查与校正程序时有效地检测出无法校正的错误字符。
本发明提出一种数据处理方法,用于可擦写式非易失性存储器模块,此可擦写式非易失性存储器模块具有多个实体程序化单元,且各实体程序化单元包括数据字符区与错误校正码字符区。此方法包括接收第一数据,并对第一数据进行错误校正编码程序以产生对应第一数据的原始错误检查与校正码。此方法还包括依据第二数据重整规则将原始错误检查与校正码转换为第二错误检查与校正码,其中第二错误检查与校正码不同于原始错误检查与校正码。此方法还包括将第一数据与第二错误检查与校正码分别写入上述实体程序化单元中相同或相异的实体程序化单元的数据字符区与错误校正码字符区。
从另一观点来看,本发明提出一种存储器控制器,以管理可擦写式非易失性存储器模块,此存储器控制器包括主机系统接口、存储器接口、错误检查与校正电路、第二数据重整电路以及存储器管理电路。其中,主机系统接口用以电连接主机系统。存储器接口用以电连接可擦写式非易失性存储器模块,其中可擦写式非易失性存储器模块具有多个实体程序化单元,且各实体程序化单元包括数据字符区与错误校正码字符区。错误检查与校正电路用以执行相互对应的错误校正编码程序与错误校正解码程序。第二数据重整电路电连接错误检查与校正电路。存储器管理电路电连接至主机系统接口、存储器接口、错误检查与校正电路与第二数据重整电路。其中,错误检查与校正电路对存储器控制器所接收到的第一数据进行错误校正编码程序以产生对应第一数据的原始错误检查与校正码。第二数据重整电路依据第二数据重整规则将原始错误检查与校正码转换为第二错误检查与校正码,其中第二错误检查与校正码不同于原始错误检查与校正码。存储器管理电路将第一数据与第二错误检查与校正码分别写入上述实体程序化单元中相同或相异的实体程序化单元的数据字符区与错误校正码字符区。
从又一观点来看,本发明提出一种存储器储存装置,包括可擦写式非易失性存储器模块、连接器以及存储器控制器。可擦写式非易失性存储器模块具有数个实体程序化单元,且各实体程序化单元包括数据字符区与错误校正码字符区。连接器用以电连接主机系统。存储器控制器电连接至可擦写式非易失性存储器模块与连接器,用以接收第一数据,并对第一数据进行错误校正编码程序以产生对应第一数据的原始错误检查与校正码,依据第二数据重整规则将原始错误检查与校正码转换为第二错误检查与校正码,其中第二错误检查与校正码不同于原始错误检查与校正码,将第一数据与第二错误检查与校正码分别写入所有实体程序化单元中的相同或相异的实体程序化单元的数据字符区与错误校正码字符区。
从又一观点来看,本发明提出一种存储器控制器,包括缓冲存储器、错误校正编码电路、第一数据重整电路、第二数据重整电路、错误校正解码电路,以及控制单元。其中,错误校正编码电路用以对第一数据进行错误校正编码程序以产生对应第一数据的原始错误检查与校正码。第一数据重整电路电连接缓冲存储器、错误校正编码电路,与可擦写式非易失性存储器模块。第一数据重整电路用以依据第一数据重整规则将来自缓冲存储器的原始写入数据转换为第一数据,其中第一数据不同于原始写入数据。第二数据重整电路电连接错误校正编码电路与可擦写式非易失性存储器模块。第二数据重整电路用以依据第二数据重整规则将来自错误校正编码电路的原始错误检查与校正码转换为第二错误检查与校正码,并用以根据第二数据重整规则将来自可擦写式非易失性存储器模块的第二错误检查与校正码反转换为原始错误检查与校正码,其中第二错误检查与校正码不同于原始错误检查与校正码,且第一数据重整规则不同于第二数据重整规则。错误校正解码电路电连接第二数据重整电路与可擦写式非易失性存储器模块。错误校正解码电路用以依据原始错误检查与校正码对来自可擦写式非易失性存储器模块的第一数据执行对应错误校正编码程序的错误校正解码程序,以识别第一数据是否存在无法校正的错误字符。控制单元则电连接至缓冲存储器、错误校正编码电路、第一数据重整电路、第二数据重整电路、错误校正解码电路与可擦写式非易失性存储器模块。
基于上述,本发明在将数据写入可擦写式非易失性存储器模块之前,除了将数据本身重整为不同的数据之外,也会依照特定规则处理对应于经过重整的数据的错误检查与校正码,尔后才将以不同规则进行重整处理的数据及错误检查与校正码写入可擦写式非易失性存储器模块。如此一来,在要读出数据时便能利用经过重整处理的错误检查与校正码来更正确且有效地识别数据中是否出现无法校正的错误字符。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所示附图作详细说明如下。
附图说明
图1A是本发明一实施例示出的使用存储器储存装置的主机系统的示意图;
图1B是本发明实施例所示出的电脑、输入/输出装置与存储器储存装置的示意图;
图1C是本发明另一实施例所示出的主机系统与存储器储存装置的示意图;
图2A是图1A所示的存储器储存装置的概要方块图;
图2B是本发明一范例实施例所示出的实体程序化单元的示意图;
图3是本发明一实施例示出的存储器控制器的概要方块图;
图4、5是本发明的一实施例所示出的管理可擦写式非易失性存储器模块的示意图;
图6A、6B是本发明一实施例示出的将原始错误检查与校正码转换为第二错误检查与校正码的示意图;
图7A、7B、7C、7D是本发明另一实施例示出的将原始错误检查与校正码转换为第二错误检查与校正码的示意图;
图8A、8B、8C是本发明又一实施例示出的将原始错误检查与校正码转换为第二错误检查与校正码的示意图;
图9A、9B是本发明再一实施例示出的将原始错误检查与校正码转换为第二错误检查与校正码的示意图;
图10A、10B是本发明一实施例示出的将原始错误检查与校正码转换为第二错误检查与校正码的示意图;
图11是本发明一实施例示出的第二错误检查与校正码的示意图;
图12是本发明的一实施例所示出的数据处理方法的流程图;
图13是本发明的另一实施例所示出的存储器控制器的示意图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器;
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身盘;
1214:记忆卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式储存装置;
100:存储器储存装置;
102:连接器;
104:存储器控制器;
106:可擦写式非易失性存储器模块;
210(0)、210(1)、210(P):实体程序化单元;
230:数据字符区;
240:错误校正码字符区;
1041:主机系统接口;
1042:第一数据重整电路;
1043:存储器管理电路;
1044:错误检查与校正电路;
1045:存储器接口;
1046:第二数据重整电路;
3004:缓冲存储器;
3006:电源管理电路;
410(0)~410(N):实体抹除单元;
502:数据区;
504:闲置区;
506:系统区;
508:取代区;
610(0)~610(L):逻辑抹除单元;
B0-1~B0-i、B1-1~B1-i、B0~B15、B0-1~B0-j、B1-1~B1-j:数据;
SD0~SD7:子数据;
G0~G7:子数据群组;
S1210~S1270:本发明的一实施例所述的数据处理方法的各步骤;
1340:错误校正编码电路;
1350:错误校正解码电路;
1330:控制单元。
具体实施方式
一般而言,存储器储存装置(也称,存储器储存系统)包括可擦写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是本发明一实施例所示出的使用存储器储存装置的主机系统的示意图。
主机系统1000包括电脑1100与输入/输出(Input/Output,简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(Random Access Memory,简称RAM)1104、系统总线1108以及数据传输接口1110。输入/输出装置1106包括如图1B所示的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接1110与主机系统1000的其他元件电连接。通过微处理器1102、随机存取存储器1104以及输入/输出装置1106的操作,主机系统1000可将数据写入至存储器储存装置100,或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的记忆卡1214、随身盘1212、或固态硬盘(Solid State Drive,简称SSD)1216。
一般而言,主机系统1000为可储存数据的任意系统。虽然在本实施例中主机系统1000是以电脑系统来作说明,然而,在本发明另一实施例中,主机系统1000也可以是手机、数码相机、摄影机、通讯装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机1310时,存储器储存装置则为其所使用的安全数字(Secure Digital,简称SD)卡1312、多媒体记忆(Multimedia Card,简称MMC)卡1314、记忆棒(Memory Stick)1316、闪存紧凑型闪存(Compact Flash,简称CF)卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电连接于主机系统的基板上。
图2A是图1A所示的存储器储存装置100的概要方块图。请参照图2A,存储器储存装置100包括连接器102、存储器控制器104与可擦写式非易失性存储器模块106。
连接器102电连接至存储器控制器104,并且用以电连接主机系统1000。在本实施例中,连接器102所支援的传输接口种类为串行高级技术附件(Serial AdvancedTechnology Attachment,简称SATA)接口。然而在其他实施例中,连接器102的传输接口种类也可以是通用串行总线(Universal Serial Bus,简称USB)接口、多媒体储存卡(Multimedia Card,简称MMC)接口、并行高级技术附件(Parallel Advanced TechnologyAttachment,简称PATA)接口、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,简称IEEE)1394接口、高速外围组件互联(Peripheral ComponentInterconnect Express,简称PCI Express)接口、安全数字(Secure Digital,简称SD)接口、记忆棒(Memory Stick,简称MS)接口、闪存紧凑型闪存(Compact Flash,简称CF)接口,或电子集成驱动器(Integrated Drive Electronics,简称IDE)接口等任何适用的接口,在此并不加以限制。
存储器控制器104会执行以硬件硬件形式或固件固件形式实作的多个逻辑栅或控制指令,并根据主机系统1000的指令在可擦写式非易失性存储器模块106中进行数据的写入、读取与抹除等操作。其中,存储器控制器104还特别用以根据本实施例的数据处理方法来处理主机系统1000欲写入可擦写式非易失性存储器模块106的数据,并依据处理结果在主机系统1000欲读取该笔数据时进行错误字符的检测。本实施例的数据处理方法将于后配合附图再作说明。
可擦写式非易失性存储器模块106电连接至存储器控制器104。可擦写式非易失性存储器模块106为多阶存储单元(Multi Level Cell,简称MLC)NAND闪存存储器模块,但本发明不限于此,可擦写式非易失性存储器模块106也可以是单阶存储单元(Single LevelCell,简称SLC)NAND闪存存储器模块、其他闪存存储器模块或任何具有相同特性的存储器模块。进一步来说,可擦写式非易失性存储器模块106具有数个实体程序化单元210(0)~210(P),且如图2B所示,每个实体程序化单元包括数据字符区230与错误校正码字符区240。其中,数据字符区230用以储存使用者的数据与系统管理数据(例如,地址对映关系等),而错误校正码字符区240则用以储存对应于数据的错误检查与校正码。在本实施例中,数个实体程序化单元构成一实体抹除单元。属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。也就是说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。在一实施例中,实体抹除单元为实体区块,而实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
图3是本发明一实施例所示出的存储器控制器的概要方块图。请参照图3,存储器控制器104包括主机系统接口1041、第一数据重整电路1042、存储器管理电路1043、错误检查与校正电路1044、存储器接口1045,以及第二数据重整电路1046。
主机系统接口1041电连接至存储器管理电路1043,并通过连接器102以电连接主机系统1000。主机系统接口1041用以接收与识别主机系统1000所传送的指令与数据。据此,主机系统1000所传送的指令与数据会通过主机系统接口1041而传送至存储器管理电路1043。在本实施例中,主机系统接口1041对应连接器102而为SATA接口,而在其他实施例中,主机系统接口1041也可以是USB接口、MMC接口、PATA接口、IEEE 1394接口、PCI Express接口、SD接口、MS接口、CF接口、IDE接口或符合其他接口标准的接口。
存储器管理电路1043用以控制存储器控制器104的整体操作。具体来说,存储器管理电路1043具有多个控制指令,在存储器储存装置100被运转(power on)时,上述控制指令会被执行以将数据写入可擦写式非易失性存储器模块106,或从可擦写式非易失性存储器模块106读出数据。
在一实施例中,存储器管理电路1043的控制指令是以固件形式来实作。例如,存储器管理电路1043具有微处理器单元(未示出)与只读存储器(未示出),且上述控制指令是被烧录在只读存储器中。当存储器储存装置100操作时,上述控制指令会由微处理器单元来执行以对可擦写式非易失性存储器模块106进行数据存取。
在本发明另一实施例中,存储器管理电路1043的控制指令也可以程序码形式储存于可擦写式非易失性存储器模块106的特定区域(例如,可擦写式非易失性存储器模块106中专用于存放系统数据的系统区)中。此外,存储器管理电路1043具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。其中,只读存储器具有驱动码段,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于可擦写式非易失性存储器模块106中的控制指令载入至存储器管理电路1043的随机存取存储器中。之后,微处理器单元会运转上述控制指令以对可擦写式非易失性存储器模块106进行数据存取。
此外,在本发明另一实施例中,存储器管理电路1043的控制指令也可以一硬件形式来实作。举例来说,存储器管理电路1043包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元是电连接至微控制器。其中,存储器管理单元用以管理可擦写式非易失性存储器模块106中的实体抹除单元。存储器写入单元用以对可擦写式非易失性存储器模块106下达写入指令以将数据写入至可擦写式非易失性存储器模块106中。存储器读取单元用以对可擦写式非易失性存储器模块106下达读取指令以从可擦写式非易失性存储器模块106中读取数据。存储器抹除单元用以对可擦写式非易失性存储器模块106下达抹除指令以将数据从可擦写式非易失性存储器模块106中抹除。而数据处理单元用以处理欲写入至可擦写式非易失性存储器模块106的数据以及从可擦写式非易失性存储器模块106中读取的数据。
存储器接口1045电连接至存储器管理电路1043,以使存储器控制器104与可擦写式非易失性存储器模块106相电连接。据此,存储器控制器104可对可擦写式非易失性存储器模块106进行相关操作。也就是说,欲写入至可擦写式非易失性存储器模块106的数据会经由存储器接口1045转换为可擦写式非易失性存储器模块106所能接受的格式。
第一数据重整电路1042、第二数据重整电路1046,以及错误检查与校正电路1044分别电连接至存储器管理电路1043。且错误检查与校正电路1044分别电连接第一数据重整电路1042与第二数据重整电路1046。其中,第一数据重整电路1042用以依据第一数据重整规则将来自主机系统1000的写入数据重整、编辑或打乱。错误检查与校正电路1044用以执行相互对应的错误校正编码程序与错误校正解码程序以确保数据的正确性。而第二数据重整电路1046用以依据第二数据重整规则将错误检查与校正电路1044所产生的错误检查与校正码重整、编辑或打乱。其中,第一数据重整电路1042、第二数据重整电路1046与错误检查与校正电路1044的详细操作方式将于后配合附图再作说明。
在本发明之另一实施例中,存储器控制器104还包括缓冲存储器3004。缓冲存储器3004可以是静态随机存取存储器(Static Random Access Memory,简称SRAM)、或动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)等,本发明并不加以限制。缓冲存储器3004电连接至存储器管理电路1043,用以暂存来自于主机系统1000的指令与数据,或暂存来自于可擦写式非易失性存储器模块106的数据。
在本发明又一实施例中,存储器控制器104还包括电源管理电路3006。电源管理电路3006电连接至存储器管理电路1043,用以控制存储器储存装置100的电源。
图4、5是本发明的一实施例所示出的管理可擦写式非易失性存储器模块的示意图。
在以下描述可擦写式非易失性存储器模块106的实体抹除单元的操作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体抹除单元是逻辑上的概念。也就是说,可擦写式非易失性存储器模块106的实体抹除单元的实际位置并未变动,而是逻辑上对可擦写式非易失性存储器模块106的实体抹除单元进行上述操作。
请参照图4,本实施例的可擦写式非易失性存储器模块106包括实体抹除单元410(0)~410(N)。存储器控制器104中的存储器管理电路1043会将实体抹除单元410(0)~410(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。其中,图4所标示的F、S、R与N为正整数,代表各区配置的实体抹除单元数量,其可由存储器储存装置100的制造商依据所使用的可擦写式非易失性存储器模块106的容量来设定。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以储存来自于主机系统1000的数据。举例来说,数据区502的实体抹除单元是被视为已储存数据的实体抹除单元,而闲置区504的实体抹除单元是用以写入新数据的实体抹除单元。换句话说,闲置区504的实体抹除单元为空或可使用的实体抹除单元(无记录数据或标记为已没用的无效数据)。当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路1043会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。或者,当需要对一逻辑抹除单元执行数据合并程序时,存储器管理电路1043会从闲置区504提取实体抹除单元并将数据写入其中,以替换原先映射此逻辑抹除单元的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。举例来说,系统数据包括关于可擦写式非易失性存储器模块106的制造商与型号、可擦写式非易失性存储器模块106的实体抹除单元数、每一实体抹除单元的实体程序化单元数等等。
逻辑上属于取代区508的实体抹除单元是用以在数据区502、闲置区504或系统区506中的实体抹除单元损毁时,取代损坏的实体抹除单元。具体而言,在存储器储存装置100操作期间,倘若取代区508中仍存有正常的实体抹除单元且数据区502的实体抹除单元损坏时,存储器管理电路1043会从取代区508中提取正常的实体抹除单元来更换数据区502中损坏的实体抹除单元。倘若取代区508中无正常的实体抹除单元且发生实体抹除单元损毁时,则存储器管理电路1043会将整个存储器储存装置100宣告为写入保护(write protect)状态,而无法再写入数据。
也因此,在存储器储存装置100的操作过程中,数据区502、闲置区504、系统区506与取代区508的实体抹除单元会动态地变动。例如,用以轮替储存数据的实体抹除单元会变动地属于数据区502或闲置区504。
请参照图5,为了让主机系统1000能对可擦写式非易失性存储器模块106进行存取,存储器管理电路1043会配置数个逻辑抹除单元610(0)~610(L)以映射数据区502中的实体抹除单元410(0)~410(F-1)。其中,每一逻辑抹除单元包括多个逻辑程序化单元,而逻辑抹除单元610(0)~610(L)中的逻辑程序化单元会映射实体抹除单元410(0)~410(F-1)中的实体程序化单元。
详言之,存储器管理电路1043将所配置的逻辑抹除单元610(0)~610(L)提供给主机系统1000,并维护逻辑地址-实体地址映射表以记录逻辑抹除单元610(0)~610(L)与实体抹除单元410(0)~410(F-1)的映射关系。因此,当主机系统1000欲存取一逻辑地址时,存储器管理电路1043会确认此逻辑地址所对应的逻辑抹除单元与逻辑程序化单元,再通过逻辑地址-实体地址映射表找到其所映射的实体程序化单元来进行存取。
在本实施例中,为了确保数据的正确性以提升存储器储存装置100的可靠度,当存储器管理电路1043接收到来自主机系统1000的写入指令时,将先由第一数据重整电路1042、第二数据重整电路1046,以及错误检查与校正电路1044对主机系统欲写入的数据进行特别处理。尔后,存储器管理电路1043再将经过处理的数据写入可擦写式非易失性存储器模块106。而当主机系统1000欲读取上述数据时,第二数据重整电路1046及错误检查与校正电路1044会对数据的正确性进行检测。若通过检测,则存储器管理电路1043会将第一数据重整电路1042所还原出的数据传送至主机系统1000。
为了方便说明,以下将来自主机系统1000的写入指令所对应的写入数据称为原始写入数据。当存储器管理电路1043接收到原始写入数据时,第一数据重整电路1042依据第一数据重整规则将原始写入数据转换为第一数据。其中,第一数据重整规则例如是以随机(random)方式或依一演算法来改变数据的序列。也即,第一数据重整电路1042会随机或有规则地调换原始写入数据的每个字符中的数据的顺序或样式(pattern),进而产生第一数据,其中此第一数据因已经过第一数据重整电路1042的处理,故其会不同于原始写入数据。
接着,错误检查与校正电路1044对第一数据进行错误校正编码程序,以产生对应第一数据的原始错误检查与校正码。在本实施例中,错误校正编码程序例如是采用博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,简称BCH)演算法、低密度同位检查(Low-Density Parity-Check,简称LDPC)演算法,汉明(Hamming)演算法,或雷德-所罗门(Reed-Solomon)演算法,然而本发明并不以此为限。
尔后,第二数据重整电路1046依据第二数据重整规则将原始错误检查与校正码转换为第二错误检查与校正码,其中第二错误检查与校正码在经过转换后将不同于原始错误检查与校正码。必须特别说明的是,第二数据重整规则不同于第一数据重整规则。也就是说,在本范例实施例中,来自主机系统1000的原始写入数据及其对应的原始错误检查与校正码会分别被第一数据重整电路1042与第二数据重整电路1046以不同的规则打散为两个独立的散乱数据。值得一提的是,在本实施例中,第二数据重整电路1046仅用以重整错误检查与校正码,而不对与写入数据相关的系统管理数据进行数据重整处理。在另一实施例中,第二数据重整电路1046也对与写入数据相关的系统管理数据进行数据重整处理。
以下将以数个实施例来说明第二数据重整电路1046产生第二错误检查与校正码的方式。
请参阅图6A,在本实施例中假设原始错误检查与校正码包括2i个字符,其中i为正整数,且各字符中的数据是以B0-1~B0-i、B1-1~B1-i来表示。第二数据重整电路1046会依照一预设数据单位将原始错误检查与校正码划分为数个子数据,其中预设数据单位的大小为i个字符。因此如图6A所示,原始错误检查与校正码被划分为两个子数据(即,子数据SD0与SD1)。在所有的子数据中,第二数据重整电路1046以两个或两个以上的子数据为一组,并将属于同组的子数据相互对调(swap),进而产生第二错误检查与校正码。如图6A所示,第二数据重整电路1046会将子数据SD0与SD1相互对调以产生如图6B所示的第二错误检查与校正码。而参照图6A与图6B可以发现,在本实施例中是以子数据作为对调的单位,子数据所包括的各个字符中的数据则维持原有的顺序。例如,在第二数据重整电路1046进行处理前后,子数据SD0所包括的i个字符中的数据B0-1~B0-i均保持相同的顺序(即,数据B0-1位于子数据SD0中的最左字符,而数据B0-i位于子数据SD0中的最右字符)。
以下将以图7A至图7D以及图8A至图8C这两组实施例来更具体说明第二数据重整电路1046如何以子数据作为对调单位来产生第二错误检查与校正码。
请参照图7A至图7D,在本范例实施例中原始错误检查与校正码包括16个字符,且各字符中的数据以B0至B15来表示。假设预设数据单位是1个字符,则原始错误检查与校正码会被第二数据重整电路1046划分为16个子数据(即,子数据SD0至SD15)。也就是说,每个字符中的数据都是一个子数据。
倘若第二数据重整电路1046以两个子数据为一组,则图7A所示的子数据SD0至SD15将被分为8组。而属于同组的子数据被相互调换所产生的第二错误检查与校正码则可如图7B所示。举例来说,在经过第二数据重整电路1046的处理后,子数据群组G0包括的两个子数据SD0、SD1(即,数据B0、B1)已被相互调换,与其在原始错误检查与校正码中的位置不同。子数据群组G1包括的两个子数据SD2、SD3(即,数据B2、B3)也被相互调换,与其在原始错误检查与校正码中的位置不同,以此类推。
倘若第二数据重整电路1046以3个子数据为一组,则图7A所示的子数据SD0至SD15将被分为6组,其中5个子数据群组个别包括3个子数据,而最后一个子数据群组仅包括1个子数据。第二数据重整电路1046将属于同组的子数据相互对调所产生的第二错误检查与校正码可如图7C所示。以子数据群组G0为例,其中的3个子数据SD0、SD1与SD2(即,数据B0、B1与B2)在经过第二数据重整电路1046的处理后被相互对调。而对于仅包括1个子数据的子数据群组G5来说,由于子数据SD15(即,数据B15)缺乏其他同组的子数据,故在本实施例中会维持数据B15的位置而不进行调换。
然而在另一实施例中,对于落单的子数据则会被并入其他子数据群组,并与所并入的子数据群组中的其他子数据相互对调。如图7D所示,在本实施例中子数据群组G4包括4个子数据SD12、SD13、SD14与SD14(即,数据B12、B13、B14与B15),且这4个子数据因被相互调换而具有与其在原始错误检查与校正码中不同的位置。
在图8A至图8C所示的实施例中,原始错误检查与校正码包括16个字符,且各字符中的数据以B0至B15来表示。假设预设数据单位是2个字符,则如图8A所示,原始错误检查与校正码会被第二数据重整电路1046划分为8个子数据SD0至SD7。
若第二数据重整电路1046以两个子数据为一组,则产生的第二错误检查与校正码如图8B所示。同时对照图8A与图8B可以发现,同属于子数据群组G0的子数据SD0与SD1已被相互调换,然而以子数据SD0为例,其所包括的两个字符中的数据B0与B1在第二数据重整电路1046处理前后仍维持同样的相对位置(即,数据B0位于左边的字符而数据B1位于右边的字符)。
倘若第二数据重整电路1046以3个子数据为一组,则产生的第二错误检查与校正码可如图8C所示。以子数据群组G0为例,其包括的子数据SD0至SD2已被相互调换,但各个子数据所包括的所有字符中的数据则维持同样的相对位置。
必须特别说明的是,在上述实施例中第二数据重整电路1046是以子数据为单位进行属于同组的子数据间的相互调换。然而本发明并不对如何相互调换属于同组的子数据的方式加以限制。举例来说,属于同组的子数据可以两两相互调换,或以子数据为单位向特定方向移动等。此领域技术人员可轻易地依照上述精神实现其他形式的对调交换或重组方式。
请参阅图9A,在本实施例中假设原始错误检查与校正码包括2j个字符,其中j为大于1的正整数,且各字符中的数据是以B0-1~B0-j、B1-1~B1-j来表示。第二数据重整电路1046会依照一预设数据单位将原始错误检查与校正码划分为数个子数据,其中预设数据单位的大小为j个字符。在图9A中,第二数据重整电路1046将原始错误检查与校正码划分为两个子数据(即,子数据SD0与SD1)。当要产生第二错误检查与校正码时,第二数据重整电路1046会将每一子数据所具有的j个字符中的数据相互对调,以产生第二错误检查与校正码。详细地说,如图9B所示,第二数据重整电路1046维持子数据SD0与SD1之间的相对位置,但会针对每一子数据去相互对调其中所有字符中的数据。
请参照图10A与图10B,在本实施例中原始错误检查与校正码包括16个字符,且各字符中的数据是以B0至B15来表示。假设预设数据单位是8个字符,则原始错误检查与校正码会被第二数据重整电路1046划分为2个子数据SD0至SD1。即,每个子数据的大小为一个字符组。
在产生第二错误检查与校正码时,如图10B所示,第二数据重整电路1046将子数据SD0所具有的8个字符中的数据相互对调,相互对调的方式例如是向右回旋(rotate)1个字符。并且,第二数据重整电路1046将子数据SD1所具有的8个字符中的数据相互对调,例如向右回旋1个字符。必须特别说明的是,本发明并不对子数据的各字符数据的相互对调的方式加以限制。此领域技术人员可轻易地依照上述精神实现其他形式的对调交换或重新排列方式。
在另一实施例中,第二数据重整电路1046不会将原始错误检查与校正码划分为数个子数据,而是将原始错误检查与校正码向一特定方向回旋k个字符以产生第二错误检查与校正码,其中k为正整数,特定方向例如为向左或向右。在另一实施例中,第二数据重整电路1046是利用一演算电路,将原始错误检查与校正码以一演算法重新整理后产生第二错误检查与校正码,例如,将原始错误检查与校正码与一特定数据进行异或(XOR)逻辑运算以产生第二错误检查与校正码。
在完成上述动作后,存储器管理电路1043查找逻辑地址-实体地址映射表找出写入指令中的逻辑地址所映射的实体程序化单元(以下称之为特定实体程序化单元),并将第一数据重整电路1042所产生的第一数据与第二数据重整电路1046所产生的第二错误检查与校正码分别写入特定实体程序化单元的数据字符区与错误校正码字符区。在另一实施例中,存储器管理电路1043也可将第一数据及第二错误检查与校正码分别写入不同实体程序化单元的数据字符区与错误校正码字符区,并以一数据-错误校正码对应表来记录用以写入第一数据与第二错误检查与校正码是哪些实体程序化单元。
也就是说,每当要将数据写入可擦写式非易失性存储器模块106时,错误检查与校正电路1044会针对已被第一数据重整电路1042所打散的第一数据产生对应的原始错误检查与校正码,而原始错误检查与校正码会在被第二数据重整电路1046转换为第二错误检查与校正码后才被写入可擦写式非易失性存储器模块106。
当主机系统1000欲读取原始写入数据时,存储器管理电路1043分别自特定实体程序化单元的数据字符区与错误校正码字符区读出第一数据与第二错误检查与校正码(或者,参照数据-错误校正码对应表而从不同的实体程序化单元读取第一数据与第二错误检查与校正码)。而第二数据重整电路1046根据第二数据重整规则将第二错误检查与校正码反转换为原始错误检查与校正码。反转换的方式对应产生第二错误检查与校正码而采用的第二数据重整规则。例如,将属于同组的子数据相互调换以还原为原始错误检查与校正码、将同一子数据的各字符中的数据相互对调以还原为原始错误检查与校正码、向与特定方向相反的方向回旋k个字符以还原为原始错误检查与校正码,或再以演算法对第二错误检查与校正码进行整理以还原出原始错误检查与校正码。
接着,错误检查与校正电路1044依据第二数据重整电路1046所还原出的原始错误检查与校正码对第一数据执行错误校正解码程序,进而识别第一数据是否存在无法校正的错误字符。
详言之,倘若在存储器管理电路1043读取数据之际,因读取信号受到干扰而发生数据位移的情况,则第二数据重整电路1046无法将读取自错误校正码字符区的第二错误检查与校正码还原为数据被写入时错误检查与校正电路1044所产生的原始错误检查与校正码,因此错误检查与校正电路1044在进行错误校正解码程序时便能察觉此无法校正的错误。
此外,倘若主机系统1000欲读取的是已被抹除的数据(也即,特定实体程序化单元的数据被抹除为0×FF数据),由于错误校正码字符区所记录的是0×FF数据,其在经过第二数据重整电路1046的还原操作后依旧是0×FF数据,因而再此情况下也可避免误判不可修复的错误。
图12是本发明的一实施例所示出的数据处理方法的流程图,请参阅图12。
当接收到来自主机系统1000的原始写入数据时,如步骤S1210所示,第一数据重整电路1042依据第一数据重整规则将原始写入数据转换为第一数据。
接着在步骤S 1220中,错误检查与校正电路1044对第一数据进行错误校正编码程序,以产生对应第一数据的原始错误检查与校正码。
如步骤S1230所示,第二数据重整电路1046依据第二数据重整规则将原始错误检查与校正码转换为第二错误检查与校正码。其中,第一数据重整规则与第二数据重整规则并不相同。
在步骤S1240中,存储器管理电路1043将第一数据与第二错误检查与校正码分别写入可擦写式非易失性存储器模块106中相同或相异的实体程序化单元的数据字符区与错误校正码字符区。
尔后如步骤S1250所示,当主机系统1000欲读取被写入可擦写式非易失性存储器模块106的原始写入数据时,存储器管理电路1043自相同或相异的实体程序化单元读出第一数据与第二错误检查与校正码。
接着在步骤S1260中,第二数据重整电路1046根据第二数据重整规则将第二错误检查与校正码反转换为原始错误检查与校正码。
最后如步骤S1270所示,错误检查与校正电路1044依据原始错误检查与校正码对第一数据执行对应错误校正编码程序的错误校正解码程序,以识别第一数据是否存在无法校正的错误字符。
图13是本发明的一实施例所示出的存储器控制器的示意图。请参阅图13,存储器控制器104包括缓冲存储器3004、错误校正编码电路1340、第一数据重整电路1042、第二数据重整电路1046、错误校正解码电路1350,以及控制单元1330。其中,控制单元1330可以是控制晶片,分别电连接至缓冲存储器3004、错误校正编码电路1340、第一数据重整电路1042、第二数据重整电路1046、错误校正解码电路1350与可擦写式非易失性存储器模块106。
第一数据重整电路1042分别电连接至缓冲存储器3004、错误校正编码电路1340以及可擦写式非易失性存储器模块106。第二数据重整电路1046分别电连接至错误校正编码电路1340与可擦写式非易失性存储器模块106。错误校正解码电路1350分别电连接至第二数据重整电路1046与可擦写式非易失性存储器模块106。
在本实施例中,错误校正编码电路1340与错误校正解码电路1350可实现图3所示的错误检查与校正电路1044的部份或全部功能,其中错误校正编码电路1340用以执行错误校正编码程序,且错误校正解码电路1350用以执行错误校正解码程序。而缓冲存储器3004、第一数据重整电路1042与第二数据重整电路1046与图3中具有相同编号的元件具有相同或相似的功能。
在主机系统1000欲写入数据时,欲写入的原始写入数据会先暂存在缓冲存储器3004,接着传送至第一数据重整电路1042以转换为第一数据。第一数据除了被传送至可擦写式非易失性存储器模块106储存之外,也会被传送至错误校正编码电路1340以产生对应的原始错误检查与校正码。尔后,第二数据重整电路1046将原始错误检查与校正码转换为第二错误检查与校正码,再将第二错误检查与校正码传送至可擦写式非易失性存储器模块106储存。
在主机系统1000欲读取所写入的数据时,从可擦写式非易失性存储器模块106读出的第一数据将会被传送至第一数据重整电路1042以反转换为原始写入数据。此外,从可擦写式非易失性存储器模块106读出的第一数据也将被传送至错误校正解码电路1350,对应第一数据的第二错误检查与校正码也将被传送至第二数据重整电路1046以反转换为原始错误检查与校正码,而原始错误检查与校正码将被传送至错误校正解码电路1350。据此,错误校正解码电路1350可根据原始错误检查与校正码判断第一数据是否有无法修复的错误。若判断发生可修复的错误,则由修正电路(未示出)对第一数据重整电路1042所还原的原始写入数据进行修正。没有错误或经过修正的原始写入数据将先暂存在缓冲存储器3004,尔后回传至主机系统1000。
必须说明的是,在上述实施例中,来自主机系统1000的原始写入数据是先经过第一数据重整电路1042的处理而转换为第一数据,尔后才由错误检查与校正电路1044产生对应第一数据的原始错误检查与校正码,然而本发明并不局限于此。在另一实施例中,当主机系统1000要将原始写入数据写入至可擦写式非易失性存储器模块106时,原始写入数据将不经第一数据重整电路1042的处理而被直接传送至错误检查与校正电路1044来产生原始错误检查与校正码(也即,在此实施例中原始写入数据即为第一数据)。接着由第二数据重整电路1046将原始错误检查与校正码转换为第二错误检查与校正码,并由存储器管理电路1043将原始写入数据及第二错误检查与校正码分别写入可擦写式非易失性存储器模块106中相同或相异的实体程序化单元的数据字符区与错误校正码字符区。当主机系统1000欲读取原始写入数据时,存储器管理电路1043从可擦写式非易失性存储器模块106读出原始写入数据及第二错误检查与校正码,并由第二数据重整电路1046将第二错误检查与校正码反转换为原始错误检查与校正码,而错误检查与校正电路1044据此原始错误检查与校正码对原始写入数据执行错误校正解码程序,便可以识别出原始写入数据是否存在无法校正的错误字符。
综上所述,本发明所述的存储器储存装置、存储器控制器与数据处理方法是对要写入的数据所对应的错误检查与校正码进行重整,据此当要读取该笔数据时,便可利用经过重整的错误检查与校正码来识别数据中是否存在无法修复的错误。如此一来,即便数据在被读取时发生数据位移的情况,也能正确地检测其是否具有不可修复的错误字符,而能提高存储器储存装置的可靠度。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (19)
1.一种数据处理方法,用于一可擦写式非易失性存储器模块,该可擦写式非易失性存储器模块具有多个实体程序化单元,且各该些实体程序化单元包括一数据字符区与一错误校正码字符区,其特征在于,该方法包括:
接收一第一数据;
对该第一数据进行一错误校正编码程序以产生对应该第一数据的一原始错误检查与校正码;
依据一第二数据重整规则将该原始错误检查与校正码转换为一第二错误检查与校正码,其中该第二错误检查与校正码不同于该原始错误检查与校正码,该原始错误检查与校正码的比特数相同于该第二错误检查与校正码的比特数,且该第二数据重整规则不用于转换该第一数据;以及
将该第一数据与该第二错误检查与校正码分别写入该些实体程序化单元中的该些数据字符区其中之一与该些错误校正码字符区其中之一。
2.根据权利要求1所述的数据处理方法,其特征在于,该第一数据是对来自一主机系统的一原始写入数据依据一第一数据重整规则转换而得,其中该第一数据不同于该原始写入数据,且该第一数据重整规则不同于该第二数据重整规则。
3.根据权利要求1所述的数据处理方法,其特征在于,依据该第二数据重整规则将该原始错误检查与校正码转换为该第二错误检查与校正码的步骤包括:
将该原始错误检查与校正码划分为多个子数据,其中各该些子数据分别具有i个字符,且i为正整数;以及
在该些子数据中,以至少两个子数据为一组并将属于同组的该至少两个子数据相互对调,以产生该第二错误检查与校正码。
4.根据权利要求1所述的数据处理方法,其特征在于,依据该第二数据重整规则将该原始错误检查与校正码转换为该第二错误检查与校正码的步骤包括:
将该原始错误检查与校正码划分为多个子数据,其中各该些子数据分别具有j个字符,且j为大于1的正整数;以及
针对各该些子数据,将该子数据所具有的该j个字符中的数据相互对调,以产生该第二错误检查与校正码。
5.根据权利要求1所述的数据处理方法,其特征在于,依据该第二数据重整规则将该原始错误检查与校正码转换为该第二错误检查与校正码的步骤包括:
将该原始错误检查与校正码向一特定方向回旋k个字符以产生该第二错误检查与校正码,其中k为正整数。
6.根据权利要求2所述的数据处理方法,其特征在于,还包括:
当该主机系统欲读取该原始写入数据时,分别自该些实体程序化单元中的该些数据字符区其中之一与该些错误校正码字符区其中之一读出该第一数据与该第二错误检查与校正码;
根据该第二数据重整规则将该第二错误检查与校正码反转换为该原始错误检查与校正码;以及
依据该原始错误检查与校正码对该第一数据执行对应该错误校正编码程序的一错误校正解码程序,以识别该第一数据是否存在无法校正的错误字符。
7.一种存储器控制器,以管理一可擦写式非易失性存储器模块,其特征在于,该存储器控制器包括:
一主机系统接口,用以电连接一主机系统;
一存储器接口,用以电连接该可擦写式非易失性存储器模块,其中该可擦写式非易失性存储器模块具有多个实体程序化单元,且各该些实体程序化单元包括一数据字符区与一错误校正码字符区;
一错误检查与校正电路,用以执行相互对应的一错误校正编码程序与一错误校正解码程序;
一第二数据重整电路,电连接该错误检查与校正电路;以及
一存储器管理电路,电连接至该主机系统接口、该存储器接口、该错误检查与校正电路与该第二数据重整电路,
其中该错误检查与校正电路用以对一第一数据进行该错误校正编码程序以产生对应该第一数据的一原始错误检查与校正码,
该第二数据重整电路用以依据一第二数据重整规则将该原始错误检查与校正码转换为一第二错误检查与校正码,其中该第二错误检查与校正码不同于该原始错误检查与校正码,该原始错误检查与校正码的比特数相同于该第二错误检查与校正码的比特数,且该第二数据重整规则不用于转换该第一数据,
该存储器管理电路用以将该第一数据与该第二错误检查与校正码分别写入该些实体程序化单元中的该些数据字符区其中之一与该些错误校正码字符区其中之一。
8.根据权利要求7所述的存储器控制器,其特征在于,还包括:
一第一数据重整电路,电连接该错误检查与校正电路与该存储器管理电路,
其中该存储器控制器用以在经由该主机系统接口接获来自该主机系统的一原始写入数据时,该第一数据重整电路依据一第一数据重整规则将该原始写入数据转换为该第一数据,其中该第一数据不同于该原始写入数据,且该第一数据重整规则不同于该第二数据重整规则。
9.根据权利要求7所述的存储器控制器,其特征在于,该第二数据重整电路用以将该原始错误检查与校正码划分为多个子数据,并在该些子数据中,以至少两个子数据为一组并将属于同组的该至少两个子数据相互对调,以产生该第二错误检查与校正码,其中各该些子数据分别具有i个字符,且i为正整数。
10.根据权利要求7所述的存储器控制器,其特征在于,该第二数据重整电路用以将该原始错误检查与校正码划分为多个子数据,其中各该些子数据分别具有j个字符,且j为大于1的正整数,
针对各该些子数据,该第二数据重整电路将该子数据所具有的该j个字符中的数据相互对调,以产生该第二错误检查与校正码。
11.根据权利要求7所述的存储器控制器,其特征在于,该第二数据重整电路用以将该原始错误检查与校正码向一特定方向回旋k个字符以产生该第二错误检查与校正码,其中k为正整数。
12.根据权利要求8所述的存储器控制器,其特征在于,当该主机系统欲读取该原始写入数据时,该存储器管理电路用以分别自该些实体程序化单元中的该些数据字符区其中之一与该些错误校正码字符区其中之一读出该第一数据与该第二错误检查与校正码,
该第二数据重整电路用以根据该第二数据重整规则将该第二错误检查与校正码反转换为该原始错误检查与校正码,
该错误检查与校正电路依据该原始错误检查与校正码用以对该第一数据执行该错误校正解码程序,以识别该第一数据是否存在无法校正的错误字符。
13.一种存储器储存装置,其特征在于,包括:
一可擦写式非易失性存储器模块,该可擦写式非易失性存储器模块具有多个实体程序化单元,且各该些实体程序化单元包括一数据字符区与一错误校正码字符区;
一连接器,用以电连接一主机系统;以及
一存储器控制器,电连接至该可擦写式非易失性存储器模块与该连接器,用以对一第一数据进行一错误校正编码程序以产生对应该第一数据的一原始错误检查与校正码,
该存储器控制器还用以依据一第二数据重整规则将该原始错误检查与校正码转换为一第二错误检查与校正码,其中该第二错误检查与校正码不同于该原始错误检查与校正码,该原始错误检查与校正码的比特数相同于该第二错误检查与校正码的比特数,且该第二数据重整规则不用于转换该第一数据,
该存储器控制器还用以将该第一数据与该第二错误检查与校正码分别写入该些实体程序化单元中的该些数据字符区其中之一与该些错误校正码字符区其中之一。
14.根据权利要求13所述的存储器储存装置,其特征在于,该存储器控制器用以在经由该连接器接获来自该主机系统的一原始写入数据时,依据一第一数据重整规则将该原始写入数据转换为该第一数据,其中该第一数据不同于该原始写入数据,且该第一数据重整规则不同于该第二数据重整规则。
15.根据权利要求13所述的存储器储存装置,其特征在于,该存储器控制器用以将该原始错误检查与校正码划分为多个子数据,并在该些子数据中,以至少两个子数据为一组并将属于同组的该至少两个子数据相互对调,以产生该第二错误检查与校正码,其中各该些子数据分别具有i个字符,且i为正整数。
16.根据权利要求13所述的存储器储存装置,其特征在于,该存储器控制器用以将该原始错误检查与校正码划分为多个子数据,其中各该些子数据分别具有j个字符,且j为大于1的正整数,
针对各该些子数据,该存储器控制器用以将该子数据所具有的该j个字符中的数据相互对调,以产生该第二错误检查与校正码。
17.根据权利要求13所述的存储器储存装置,其特征在于,该存储器控制器用以将该原始错误检查与校正码向一特定方向回旋k个字符以产生该第二错误检查与校正码,其中k为正整数。
18.根据权利要求14所述的存储器储存装置,其特征在于,当该主机系统欲读取该原始写入数据时,该存储器控制器用以分别自该些实体程序化单元中的该些数据字符区其中之一与该些错误校正码字符区其中之一读出该第一数据与该第二错误检查与校正码,根据该第二数据重整规则将该第二错误检查与校正码反转换为该原始错误检查与校正码,依据该原始错误检查与校正码对该第一数据执行对应该错误校正编码程序的一错误校正解码程序,以识别该第一数据是否存在无法校正的错误字符。
19.一种存储器控制器,其特征在于,包括:
一缓冲存储器;
一错误校正编码电路,用以对一第一数据进行一错误校正编码程序以产生对应该第一数据的一原始错误检查与校正码;
一第一数据重整电路,电连接该缓冲存储器、该错误校正编码电路,与一可擦写式非易失性存储器模块,该第一数据重整电路用以依据一第一数据重整规则将来自该缓冲存储器的一原始写入数据转换为该第一数据,其中该第一数据不同于该原始写入数据;
一第二数据重整电路,电连接该错误校正编码电路与该可擦写式非易失性存储器模块,该第二数据重整电路用以依据一第二数据重整规则将来自该错误校正编码电路的该原始错误检查与校正码转换为一第二错误检查与校正码,并用以根据该第二数据重整规则将来自该可擦写式非易失性存储器模块的该第二错误检查与校正码反转换为该原始错误检查与校正码,其中该第二错误检查与校正码不同于该原始错误检查与校正码,该原始错误检查与校正码的比特数相同于该第二错误检查与校正码的比特数,该第二数据重整规则不用于转换该第一数据,且该第一数据重整规则不同于该第二数据重整规则;
一错误校正解码电路,电连接该第二数据重整电路与该可擦写式非易失性存储器模块,该错误校正解码电路用以依据该原始错误检查与校正码对来自该可擦写式非易失性存储器模块的该第一数据执行对应该错误校正编码程序的一错误校正解码程序,以识别该第一数据是否存在无法校正的错误字符;以及
一控制单元,电连接至该缓冲存储器、该错误校正编码电路、该第一数据重整电路、该第二数据重整电路、该错误校正解码电路与该可擦写式非易失性存储器模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210299861.5A CN103631670B (zh) | 2012-08-22 | 2012-08-22 | 存储器储存装置、存储器控制器与数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210299861.5A CN103631670B (zh) | 2012-08-22 | 2012-08-22 | 存储器储存装置、存储器控制器与数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631670A CN103631670A (zh) | 2014-03-12 |
CN103631670B true CN103631670B (zh) | 2018-08-31 |
Family
ID=50212759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210299861.5A Active CN103631670B (zh) | 2012-08-22 | 2012-08-22 | 存储器储存装置、存储器控制器与数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103631670B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970763B (zh) * | 2016-01-14 | 2020-02-14 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN107305510B (zh) * | 2016-04-21 | 2020-12-15 | 合肥兆芯电子有限公司 | 数据处理方法、存储器存储装置及存储器控制电路单元 |
US10853233B2 (en) * | 2016-10-18 | 2020-12-01 | Toshiba Memory Corporation | Reconstruction of address mapping in a host of a storage system |
CN106776109B (zh) * | 2016-12-26 | 2020-01-24 | 湖南国科微电子股份有限公司 | 固态硬盘读错误检测装置及读不可纠错误原因的检测方法 |
KR20180087496A (ko) * | 2017-01-23 | 2018-08-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
TWI657336B (zh) * | 2017-08-28 | 2019-04-21 | 慧榮科技股份有限公司 | 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置 |
KR20200079811A (ko) * | 2018-12-26 | 2020-07-06 | 에스케이하이닉스 주식회사 | 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 |
CN112799973B (zh) * | 2021-02-09 | 2023-05-02 | 群联电子股份有限公司 | 编码控制方法、存储器存储装置及存储器控制电路单元 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117230A (zh) * | 2009-12-31 | 2011-07-06 | 群联电子股份有限公司 | 数据写入方法、闪存控制器与闪存储存装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691276B2 (en) * | 2001-06-25 | 2004-02-10 | Intel Corporation | Method for detecting and correcting failures in a memory system |
KR101554159B1 (ko) * | 2008-10-08 | 2015-09-21 | 삼성전자주식회사 | 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
KR101607307B1 (ko) * | 2009-07-09 | 2016-03-30 | 삼성전자주식회사 | 정보 부호화 방법, 정보 복호화 방법, 기록/재생 장치 및 정보 저장 매체 |
US8341498B2 (en) * | 2010-10-01 | 2012-12-25 | Sandisk Technologies Inc. | System and method of data encoding |
-
2012
- 2012-08-22 CN CN201210299861.5A patent/CN103631670B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117230A (zh) * | 2009-12-31 | 2011-07-06 | 群联电子股份有限公司 | 数据写入方法、闪存控制器与闪存储存装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103631670A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631670B (zh) | 存储器储存装置、存储器控制器与数据处理方法 | |
TWI521528B (zh) | 記憶體儲存裝置、其記憶體控制器與資料處理方法 | |
US8725944B2 (en) | Implementing raid in solid state memory | |
CN103699344B (zh) | 非易失性存储器装置及其操作方法 | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US10339343B2 (en) | Storage system and method for improved generation and storage of data protection information | |
TWI527040B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制器 | |
US20120254694A1 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
CN104733051B (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
CN105023613B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104182293B (zh) | 数据写入方法、存储器存储装置与存储器控制器 | |
CN106297883A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN102890645A (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
CN104252317B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN109491828A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TW201407614A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US11520491B2 (en) | Parity protection in non-volatile memory | |
CN104252600B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN111796774B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
TWI541809B (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107179960A (zh) | 解码方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |