CN102208212B - 错误校正方法、存储器控制器与存储器储存系统 - Google Patents
错误校正方法、存储器控制器与存储器储存系统 Download PDFInfo
- Publication number
- CN102208212B CN102208212B CN201010141792.6A CN201010141792A CN102208212B CN 102208212 B CN102208212 B CN 102208212B CN 201010141792 A CN201010141792 A CN 201010141792A CN 102208212 B CN102208212 B CN 102208212B
- Authority
- CN
- China
- Prior art keywords
- data
- coordination information
- physical page
- physical
- instance
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种错误校正方法、存储器控制器与存储器储存系统,其中方法用于一存储器晶片。该存储器晶片具有多个实体区块,每一实体区块具有多个实体页面并且每一实体区块的实体页面可独立地被写入且同时地被抹除。本方法包括将多个数据依序地写入至第一实体区块的实体页面中,并且依据该些数据产生一同位信息。本方法还包括接续该些数据将所产生的同位信息写入至第一实体区块的实体页面的其中之一中,并且依据该同位信息校正在第一实体区块中的数据。基此,当错误检查与校正电路无法校正数据的错误码元时,该数据的错误码元可通过所储存的同位信息来更正,因此,采用本发明技术方案,可以提升错误校正的能力。
Description
技术领域
本发明涉及一种用于校正储存在可复写式非易失性存储器中的数据的错误校正方法、存储器控制器与存储器储存系统。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatilememory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合可便携式应用,最适合使用于这类可便携式由电池供电的产品上。固态硬盘就是一种以可复写式非易失性存储器作为储存媒体的储存装置。由于可复写式非易失性存储器体积小容量大,所以已广泛用于个人重要数据的储存。因此,近年可复写式非易失性存储器产业成为电子产业中相当热门的一环。
由于储存在可复写式非易失性存储器的数据可能会因各种因素(例如,存储单元的漏电、程序化失败、损毁等)而产生错误位元,因此,在存储器储存系统中一般会配置错误检查与校正电路并为所储存的数据产生错误检查与校正码以确保数据的正确性。然而,当数据中的错误码元数目超过错误检查与校正电路所能侦测与校正的错误码元数时,含有错误码元的数据就无法被校正,而造成数据遗失。基于此,如何能够更正已无法通过错误检查码所校正的错误码元是本领域技术人员所致力的目标。
发明内容
本发明提供一种错误校正方法,其能够有效地提升错误校正能力。
本发明提供一种存储器控制器,其能够有效地提升错误校正能力。
本发明提供一种存储器储存系统,其能够有效地提升错误校正能力。
本发明实施例提供一种错误校正方法,用于一存储器晶片。此存储器晶片具有多个实体区块,每一实体区块具有多个实体页面并且每一实体区块的实体页面可独立地被写入且同时地被抹除。本错误校正方法包括将产生对应多个数据的多个错误检查与校正码并且将该些数据与对应该些数据的错误检查与校正码依序地写入至第一实体区块的实体页面中,并且依据该些数据产生一第一同位信息。本错误校正方法还包括接续该些数据将所产生的第一同位信息写入至第一实体区块的实体页面的其中之一中。本错误校正方法还包括使用对应该些数据的错误检查与校正码来校正该些数据,并且当无法通过使用该些数据的错误检查与校正码来校正该些数据时依据该第一同位信息来校正储存在第一实体区块中的数据。
本发明实施例提供一种存储器控制器,用于管理一存储器晶片。该存储器晶片具有多个实体区块,其中每一实体区块具有多个实体页面并且该些实体页面可独立地被写入且同时地被抹除。本存储器控制器包括主机界面、存储器界面与存储器管理电路。主机界面用以电性连接至主机系统,并且存储器界面用以电性连接至存储器晶片。存储器管理电路电性连接至该主机界面与该存储器界面,并且用以执行上述错误校正方法。
本发明实施例提供一种存储器储存系统,其包括连接器、存储器晶片与存储器控制器。存储器晶片具有多个实体区块,每一实体区块具有多个实体页面,并且每一实体区块的实体页面可独立地被写入且同时地被抹除。存储器控制器电性连接至该存储器晶片与该连接器,并且用以执行上述错误校正方法。
基于上述,本发明实施例的错误校正方法、存储器控制器与存储器储存系统能够有效地提升错误校正的能力。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并结合附图作详细说明如下。
附图说明
图1A是本发明第一实施例的使用存储器储存装置的主机系统。
图1B是本发明另一实施例的主机系统与存储器储存装置。
图1C是本发明另一实施例的主机系统与存储器储存装置的示意图。
图2是图1A所示的存储器储存装置的概要方块图。
图3是本发明第一实施例的存储器控制器的概要方块图。
图4是本发明第一实施例的将数据与对应的错误检查与校正码写入至实体页面的范例。
图5与图6是本发明第一实施例的管理存储器晶片的范例示意图。
图7~图10是本发明第一实施例的写入数据至存储器晶片的范例。
图11是本发明第一实施例的产生同位信息并储存该同位信息的范例。
图12是本发明第一实施例的错误校正方法的流程图。
图13是本发明第二实施例的在混乱写入模式中产生同位信息并储存该同位信息的范例。
图14是本发明第二实施例的错误校正方法的流程图。
图15是本发明第三实施例的依据实体页面的种类来产生子同位信息并储存子同位信息的范例。
图16是本发明第三实施例的错误校正方法的流程图。
图17是本发明第四实施例的产生与储存子同位信息的示意图。
图18是本发明第四实施例的错误校正方法的流程图。
主要元件符号说明:
1000:主机系统; 1100:电脑;
1106:输入/输出装置; 1102:微处理器;
1104:随机存取存储器; 1108:系统总线;
1110:数据传输界面; 1202:鼠标;
1204:键盘; 1206:显示器;
1208:打印机; 1212:U盘;
1214:存储卡; 1216:固态硬盘;
1310:数码相机; 1312:SD卡;
1314:MMC卡; 1316:记忆棒;
1318:CF卡; 1320:嵌入式储存装置;
100:存储器储存装置; 102:连接器;
104:存储器控制器; 106:存储器晶片;
202:存储器管理电路; 204:主机界面;
206:存储器界面; 252:缓冲存储器;
254:电源管理电路; 256:错误检查与校正电路;
D:数据; F1~F4:码框;
304(0)~304(R):实体区块; 402:数据区;
404:备用区; 406:系统区;
408:取代区; 510(0)~510(H):逻辑区块;
PD0、PD1、PD2、PD3:数据; PI0、PI1:同位信息
SPI0、SPI1:子同位信息; EF1~EF20:错误校正码框;
EFG1~EFG4:错误校正码框群; GPI1~GPI4:子同位信息;
ECC1~ECC4:错误检查与校正码;
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215、S1217:错误校正方法的步骤;
S1401、S1403、S1405、S1407、S1409、S1411、S1413、S1415、S1417、S1419、S1421、S1423:错误校正方法的步骤;
S1601、S1603、S1605、S1607、S1609、S1611、S1613、S1615、S1617、S1619、S1621、S1623:错误校正方法的步骤;
S1801、S1803、S1805、S1807、S1809、S1811、S1813、S1815、S1817、S1819、S1821:错误校正方法的步骤。
具体实施方式
一般而言,存储器储存装置(也称,存储器储存系统)包括存储器晶片与控制器(也称,控制电路)。通常存储器储存装置会与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。另外,也有存储器储存装置是包括嵌入式存储器与可执行于主机系统上以实质地作为该嵌入式存储器的控制器的软体。
第一实施例
图1A是本发明第一实施例的使用存储器储存装置的主机系统。
请参照图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的处理可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的U盘1212、存储卡1214或固态硬盘(Solid State Drive,简称为:SSD)1216。
一般而言,主机系统1000可实质地为可储存数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信装置、影音播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,简称为:eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是图1A所示的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与存储器晶片106。
在本实施例中,连接器102为序列先进附件(Serial Advanced TechnologyAttachment,简称为:SATA)连接器。然而,必须了解的是,本发明不限于此,连接器102也可以是通用序列总线(Universal Serial Bus,简称为:USB)连接器、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称为:IEEE)1394连接器、高速外围零件连接界面(Peripheral ComponentInterconnect Express,简称为:PCI Express)连接器、安全数码(secure digital,简称为:SD)界面连接器、记忆棒(Memory Stick,简称为:MS)界面连接器、多媒体储存卡(Multi Media Card,简称为:MMC)界面连接器、小型快闪(Compact Flash,简称为:CF)界面连接器、整合式驱动电子界面(IntegratedDevice Electronics,简称为:IDE)连接器或其他适合的连接器。
存储器控制器104用以执行以硬体型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在存储器晶片106中进行数据的写入、读取与抹除等运作。特别是,存储器控制器104用以执行根据本实施例的数据存取机制与存储器管理机制。
存储器晶片106是电性连接至存储器控制器104,并且用以储存主机系统1000所写入的数据。存储器晶片106包括实体区块304(0)~304(R)。各实体区块分别具有复数个页面,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。更详细来说,实体区块为抹除的最小单位。即,每一实体区块含有最小数目的一并被抹除的存储单元。实体页面为程序化的最小单元。即,实体页面为写入数据的最小单元。
在本实施例中,存储器晶片106为可复写式非易失性存储器。例如,存储器晶片106为多层存储单元(Multi Level Cell,简称为:MLC)NAND快闪存储器晶片。然而,本发明不限于此,存储器晶片106也可是单层存储单元(SingleLevel Cell,简称为:SLC)NAND快闪存储器晶片、其他快闪存储器晶片或其他具有相同特性的存储器晶片。
图3是本发明第一实施例的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机界面204与存储器界面206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,该些控制指令会被执行以根据本实施例的错误校正机制、数据存取机制与存储器管理机制来管理存储器晶片106。该错误校正机制、数据存取机制与存储器管理机制将在以下结合附图作详细说明。
在本实施例中,存储器管理电路202的控制指令是以韧体型式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且该些控制指令是被刻录至该只读存储器中。当存储器储存装置100运作时,该些控制指令会由微处理器单元来执行以完成根据本发明实施例的错误校正机制、数据存取机制与存储器管理机制。
在本发明另一实施例中,存储器管理电路202的控制指令也可以程序代码型式储存于存储器晶片106的特定区域(例如,存储器晶片中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,该只读存储器具有驱动码段,并且当存储器控制器104被致能时,微处理器单元会先执行该驱动码段来将储存于存储器晶片106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转该些控制指令以执行本发明实施例的错误校正机制、数据存取机制与存储器管理机制。此外,在本发明另一实施例中,存储器管理电路202的控制指令也可以一硬体型式来实作。
主机界面204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机界面204来传送至存储器管理电路202。在本实施例中,主机界面204是对应连接器102为SATA界面。然而,必须了解的是本发明不限于此,主机界面204也可以是PATA界面、USB界面、IEEE 1394界面、PCI Express界面、SD界面、MS界面、MMC界面、CF界面、IDE界面或其他适合的数据传输界面。
存储器界面206是电性连接至存储器管理电路202并且用以存取存储器晶片106。也就是说,欲写入至存储器晶片106的数据会经由存储器界面206转换为存储器晶片106所能接受的格式。
在本发明一实施例中,存储器控制器104还包括缓冲存储器252。缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于存储器晶片106的数据。
在本发明一实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
在本发明一实施例中,存储器控制器104还包括错误检查与校正电路256。错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行一错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应该写入指令的数据产生对应的错误检查与校正码(Error Checking andCorrecting Code,简称为:ECC Code),并且存储器管理电路202会将对应该写入指令的数据与对应的错误检查与校正码写入至存储器晶片106中。之后,当存储器管理电路202从存储器晶片106中读取数据时会同时读取该数据对应的错误检查与校正码,并且错误检查与校正电路256会依据该错误检查与校正码对所读取的数据执行错误校正程序。
图4是本发明第一实施例的将数据与对应的错误检查与校正码写入至实体页面的范例。
请参照图4,当主机系统1000传送写入指令与对应该写入指令的数据D给存储器储存装置100时,存储器管理电路202会将数据D以一预设大小为单位分割为至少一码框。在此,此预设大小会根据错误检查与校正电路256的设计而有所不同。例如,数据D被分割为码框F1~F4。之后,错误检查与校正电路256会分别地为码框F1~F4产生对应的错误检查与校正码ECC1~ECC4。然后,错误检查与校正电路256会将码框F1~F4与错误检与校正码ECC1~ECC4合并以形成错误校正码框EF1~EF4。接着,存储器管理电路202会将所形成的错误校正码框EF1~EF4写入至实体页面中。例如,当一个实体页面的容量可储存4个错误校正码框时,则错误校正码框EF1~EF4会被依序地写入至一个实体页面中。例如,当一个实体页面的容量可储存2个错误校正码框时,则错误校正码框EF1~EF4会被依序地写入至2个实体页面中。之后,当主机系统1000欲从存储器储存装置100中读取数据D时,存储器管理电路202会从实体页面中读取错误校正码框EF1~EF4,并且错误检查与校正电路256会分别地依据错误检查与校正码ECC1~ECC4来对码框F1~F4进行错误检查与校正程序。基于此,在错误检查与校正电路256的错误校正能力范围内,错误检查与校正电路256可校正数据中的错误码元,由此确保数据的正确性。
图5与图6是本发明第一实施例的管理存储器晶片的范例示意图。
必须了解的是,在此描述存储器晶片106的实体区块的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体区块是逻辑上的概念。也就是说,存储器晶片106的实体区块的实际位置并未改变,而是逻辑上对存储器晶片106的实体区块进行操作。
请参照图5,存储器管理电路202会将存储器晶片106的实体区块304(0)~304(R)逻辑地分组为数据区402、备用区404、系统区406与取代区408。
数据区402与备用区404的实体区块是用以储存来自于主机系统1000的数据。具体来说,数据区402是已储存数据的实体区块,而备用区404的实体区块是用以替换数据区402的实体区块。因此,备用区404的实体区块为空或可使用的实体区块,即无记录数据或标记为已没用的无效数据。也就是说,在备用区中的实体区块已被执行抹除运作,或者当备用区中的实体区块被提取用于储存数据之前所提取的实体区块会被执行抹除运作。因此,备用区的实体区块为可被使用的实体区块。
逻辑上属于系统区406的实体区块是用以记录系统数据,其中该系统数据包括关于存储器晶片的制造商与型号、存储器晶片的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区408中的实体区块是替代实体区块。例如,存储器晶片106在出厂时会预留4%的实体区块作为更换使用。也就是说,当数据区402、备用区404与系统区406中的实体区块损毁时,预留于取代区408中的实体区块是用以取代损坏的实体区块(即,坏实体区块(bad block))。因此,倘若取代区408中仍存有正常的实体区块且发生实体区块损毁时,存储器管理电路202会从取代区408中提取正常的实体区块来更换损毁的实体区块。倘若取代区408中无正常的实体区块且发生实体区块损毁时,则存储器管理电路202会将存储器储存装置100宣告为写入保护(write protect)状态,而无法再写入数据。
特别是,数据区402、备用区404、系统区406与取代区408的实体区块的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的运作中,实体区块关联至数据区402、备用区404、系统区406与取代区408的分组关系会动态地变动。例如,当备用区中的实体区块损坏而被取代区的实体区块取代时,则原本取代区的实体区块会被关联至备用区。
请参照图6,如上所述,数据区402与备用区404的实体区块是以轮替方式来储存主机系统1000所写入的数据。在本实施例中,存储器管理电路202配置逻辑存取位址给主机系统1000以利于在以上述轮替方式来储存数据的实体区块中进行数据存取。特别是,存储器管理电路202会将所提供的逻辑存取位址分组为逻辑区块510(0)~510(H),并且将逻辑区块510(0)~510(H)映射至数据区402的实体区块。例如,当存储器储存装置100被初始化(例如,格式化)时,逻辑区块510(0)~510(H)分别地映射至数据区402的实体区块304(0)~304(D)。也就是说,一个逻辑区块会映射数据区402中的一个实体区块。在此,存储器管理电路202会建立逻辑区块-实体区块映射表(logical block-physical block mapping table),以记录逻辑区块与实体区块之间的映射关系。
图7~图10是本发明第一实施例的写入数据至存储器晶片的范例。
请同时参照图7~图10,例如,在逻辑区块510(0)是映射至实体区块304(0)的映射状态下,当存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑区块510(0)的逻辑存取位址时,存储器管理电路202会依据逻辑区块-实体区块映射表识别逻辑区块510(0)目前是映射至实体区块304(0)并且从备用区404中提取实体区块304(D+1)作为替换实体区块来轮替实体区块304(0)。然而,当存储器管理电路202将新数据写入至实体区块304(D+1)的同时,存储器管理电路202不会立刻将实体区块304(0)中的所有有效数据搬移至实体区块304(D+1)而抹除实体区块304(0)。具体来说,存储器管理电路202会将实体区块304(0)中欲写入实体页面之前的有效数据(即,实体区块304(0)的第0实体页面与第1实体页面中的数据)复制至实体区块304(D+1)的第0实体页面与第1实体页面中(如图7所示),并且将新数据写入至实体区块304(D+1)的第2实体页面与第3实体页面中(如图8所示)。此时,存储器管理电路202即完成写入的运作。因为实体区块304(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块304(0)中的有效数据搬移至实体区块304(D+1)可能会造成无谓的搬移。此外,数据必须依序地写入至实体区块内的实体页面,因此,存储器管理电路202仅会先搬移欲写入实体页面之前的有效数据。
在本实施例中,暂时地维持此等母子暂态关系(即,实体区块304(0)与实体区块304(D+1))的运作称为开启(open)母子区块,并且原实体区块称为母实体区块而替换实体区块称为子实体区块。
之后,当需要将实体区块304(0)与实体区块304(D+1)的内容真正合并时,存储器管理电路202才会将实体区块304(0)与实体区块304(D+1)的数据整并至一个实体区块,由此提升实体区块的使用效率。在此,合并母子区块的运作称为关闭(close)母子区块。例如,如图9所示,当进行关闭母子区块时,存储器管理电路202会将实体区块304(0)中剩余的有效数据(即,实体区块304(0)的第4实体页面~第(K-1)实体页面中的数据)复制至替换实体区块304(D+1)的第4实体页面~第(K-1)实体页面中,然后将实体区块304(0)抹除并关联至备用区404,同时,将实体区块304(D+1)关联至数据区402。也就是说,存储器管理电路202会在逻辑区块-实体区块映射表中将逻辑区块510(0)重新映射至304(D+1)。此外,在本实施例中,存储器管理电路202会建立备用区实体区块表(未示出)来记录目前被关联至备用区的实体区块。值得一提的是,在开启母子区块时存储器管理电路202需使用更多缓冲存储器252的储存空间来储存管理变数,以记录更详细的储存状态。例如,该些管理变数会记录属于逻辑区块510(0)的有效数据被分散地储存在实体区块304(0)与实体区块304(D+1)的哪些实体页面中(如图8所示)。基此,在存储器储存装置100运作期间,母子区块的组数是有限的。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子区块的组数达到上限时,存储器管理电路202需关闭至少一组目前已开启的母子区块(即,执行关闭母子区块运作)以执行该写入指令。
值得一提的是,除了上述错误检查与校正程序之外,存储器管理电路202还会为储存在实体区块内的数据产生同位信息(Parity),以在上述错误检查与校正程序无法校正数据中的错误码元时,通过同位信息来更正该错误位元。
具体来说,存储器管理电路202会以实体区块的实体页面为单位使用异或(XOR)运算为储存在实体区块内的所有数据产生一组同位信息并且保留实体区块内的最后一个实体页面来储存该同位信息。也就是说,在本实施例中,存储器管理电路202会使用实体区块内的最后一个实体页面来储存关于该实体区块内所有数据的同位信息。例如,如图10所示,当实体区块304(D+1)的实体页面P(0)~P(K-1)皆已被写入数据后,存储器管理电路202会为储存在实体区块304(D+1)的第0实体页面~第(K-1)实体页面中的数据产生同位信息并且将该同位信息储存在实体区块304(D+1)的第K实体页面中。
图11是本发明第一实施例的产生同位信息并储存该同位信息的范例。为方便说明,在图11所示的实施例中,假设实体区块304(D+1)具有6个实体页面,并且每一实体页面的容量为4个码元。然而必须了解的是,在实际的存储器晶片中,一个实体区块的实体页面数可为64、128或192,且一个实体页面的容量可为2千码元组、4千码元组或8千码元组。
请参照图11,假设在″1010″、″1011″、″1100″、″0101″、″0011″等数据被依序地写入至实体区块304(D+1)的第0实体页面~第4实体页面之后,存储器管理电路202会依据第0实体页面中的数据与第1实体页面中的数据来执行异或运算而获得″0001″。然后,存储器管理电路202会依据所获得的″0001″与第2实体页面中的数据来执行异或运算而获得″1101″。之后,存储器管理电路202会依据所获得的″1101″与第3实体页面中的数据来执行异或运算而获得″1000″。最后,存储器管理电路202会依据所获得的″1000″与第4实体页面中的数据来执行异或运算而获得″1011″,并且将″1011″作为对应储存在实体区块304(D+1)中的数据的同位信息并将该同位信息储存在实体区块304(D+1)的第5实体页面中。
之后,倘若储存在实体区块304(D+1)的第0实体页面~第4实体页面的其中一个实体页面中的数据存有错误码元且该错误码元无法通过错误检查与校正电路256所校正时,存储器管理电路202会反向地执行上述异或运算而获得正确的值。
例如,倘若储存在实体区块304(D+1)的第3实体页面中的数据存有错误码元且该错误码元无法通过错误检查与校正电路256而校正时,存储器管理单元电路202会依据储存在实体区块304(D+1)的第5实体页面中的同位信息(即,″1011″)与实体区块304(D+1)的第4实体页面中的数据来执行异或运算而获得″1000″。此外,存储器管理电路202会依据第0实体页面中的数据与第1实体页面中的数据来执行异或运算而获得″0001″;并且依据所获得的″0001″与第2实体页面中的数据执行异或运算而获得″1101″。最后,存储器管理电路202会依据所获得的″1000″与″1101″来执行异或运算而获得储存在实体区块304(D+1)的第3实体页面中的正确数据(即,″0101″)。
图12是本发明第一实施例的错误校正方法的流程图。
请参照图12,当存储器储存装置100从主机系统1000中接收到主机指令时,在步骤S1201中存储器管理电路202会判断主机指令为写入指令或读取指令。
当该主机指令为写入指令时,在步骤S1203中存储器管理电路202会完成数据的写入,并且在步骤S1205中存储器管理电路202会判断被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面是否已被写满。
倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面已被写满时,则在步骤S1207中存储器管理电路202会依据该实体区块内的数据来产生同位信息并且将所产生的同位信息储存在该实体区块的最后一个实体页面中。产生同位信息的方法已详细描述如上,在此不重复描述。倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面未被写满时,则图12的流程会被结束。
当该主机指令为读取指令时,在步骤S1209中存储器管理电路202会从存储器晶片106中读取对应的数据。并且,在步骤S1211中错误检查与校正电路256会对所读取的数据执行错误检查与校正程序。
之后,在步骤S1213中存储器管理电路202会判断所读取的数据是否存有无法通过错误检查与校正电路256校正的错误码元。
倘若所读取的数据存有无法通过错误检查与校正电路256校正的错误码元时,则在步骤S1215中存储器管理电路202会使用储存该数据的实体区块内的同位信息来更正所读取的数据。使用同位信息来更正数据中的错误码元的方法已详细描述如上,在此不重复描述。之后,在步骤S1217中存储器管理电路202会将所读取的数据传送给主机系统1000。
倘若所读取的数据无存有无法通过错误检查与校正电路256校正的错误码元时,则步骤S1217会被执行。
第二实施例
第二实施例的存储器储存装置本质上是与第一实施例的存储器储存装置相同,在此,仅针对差异部分进行描述。以下将利用第一实施例的图2与图3来描述第二实施例。
第二实施例的存储器管理电路202也会如图4~11所示的错误校正机制、数据存取机制与存储器管理机制来对存储器晶片106进行操作。在本实施例中,除了执行上述开启母子实体区块运作与关闭母子实体区块运作来写入数据外,存储器管理电路202还用以执行一混乱写入模式(Random Writing Mode)来写入数据。
具体来说,由于快闪存储器晶片106的程序化规格要求必须从每一实体区块的第一实体页面开始写入至最后一个实体页面并且在每个码元仅能程序化一次(即由仅能“1”变为“0”)的条件下,一旦存储器实体区块的实体页面被写入数据后,若欲更新已写入的数据就必须如图7所示,从备用区404中提取一实体区块重新进行图7~9所示的步骤。因此,当实体区块在未进行图9所示的关闭母子区块运作之前(即处于图8所示的暂态),而发生必须更新刚搬移的数据(例如图7所示的第0实体页面与第1实体页面中的数据)时,则所搬移的旧数据就必须再搬移一次,称为混乱写入模式。当执行混乱写入模式时,存储器管理电路202会从备用区404中提取一个实体区块作为混乱实体区块并直接从所提取的实体区块的第1实体页面开始写入新数据而不进行图7所示的动作(即,复制有效数据的动作)。并且,当混乱写入模式结束后再从备用区404中提取另一实体区块来写入所有的有效数据。
特别是,在混乱写入模式中,存储器管理电路202会以每个写入指令为单位来为所写入的数据产生同位信息。
图13是本发明第二实施例的在混乱写入模式中产生同位信息并储存该同位信息的范例。
请参照图13,当从主机系统1000接收到写入指令与对应两个实体页面的数据PD0与PD1与并且从备用区404中提取实体区块304(D+2)作为混乱实体区块而进入混乱写入模式时,存储器管理电路202会将数据及其对应的错误检查与校正码写入至实体区块304(D+2)的第0实体页面与第1实体页面。之后,存储器管理电路202会使用异或运算来产生对应第0实体页面与第1实体页面中的数据的同位信息PI0并接续地将同位信息PI0写入至第2实体页面中。在此,产生同位信息的方法是相同于图11所示的方法,在此不重复描述。
之后,当再次从主机系统1000接收到写入指令与对应两个实体页面的数据PD2与PD3时,存储器管理电路202会将数据及其对应的错误检查与校正码写入至实体区块304(D+2)的第3实体页面与第4实体页面。之后,存储器管理电路202会使用异或运算来产生对应第3实体页面与第4实体页面中的数据的同位信息PI1并接续地将同位信息PI1写入至第5实体页面中。也就是说,在执行混乱写入模式期间,当混乱实体区块被写入对应多个写入指令的数据时,存储器管理电路202会在混乱实体区块中使用多个实体页面来储存对应该些写入指令的数据的多个同位信息。并且,在执行混乱写入模式期间,当储存于混乱实体区块的数据发生无法通过错误检查与校正电路256校正的错误码元时,存储器管理电路202能够根据混乱实体区块中的同位信息来更正该错误码元。
特别是,当混乱写入模式结束时,存储器管理电路202会以实体区块为单位为实体区块内的所有有效数据产生同位信息。
图14是本发明第二实施例的错误校正方法的流程图。
请参照图14,当存储器储存装置100从主机系统1000中接收到主机指令时,在步骤S1401中存储器管理电路202会判断主机指令为写入指令或读取指令。
当该主机指令为写入指令时,在步骤S1403中存储器管理电路202会完成数据的写入,并且在步骤S1405中存储器管理电路202会判断数据是否是以混乱写入模式被写入。
倘若数据是以混乱写入模式被写入时,则在步骤S1407中存储器管理电路202会为该写入指令的数据产生同位信息并且接续地在写入该数据的实体页面的下一个实体页面中储存所产生的同位信息。
倘若数据非以混乱写入模式被写入时,在步骤S1409中存储器管理电路202会判断被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面是否已被写满。
倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面已被写满时,则在步骤S1411中存储器管理电路202会依据该实体区块内的数据来产生同位信息并且将所产生的同位信息储存在该实体区块的最后一个实体页面中。倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面未被写满时,则图14的流程会被结束。
当该主机指令为读取指令时,在步骤S1413中存储器管理电路202会从存储器晶片106中读取对应的数据。并且在步骤S1415中错误检查与校正电路256会对所读取的数据执行错误检查与校正程序。
之后,在步骤S1417中存储器管理电路202会判断所读取的数据是否存有无法通过错误检查与校正电路256校正的错误码元。
倘若所读取的数据存有无法通过错误检查与校正电路256校正的错误码元时,则在步骤S1419中存储器管理电路202会判断储存所读取的数据的实体区块是否为混乱实体区块。
倘若储存所读取的数据的实体区块为混乱实体区块时,则在步骤S1421中存储器管理电路202会从混乱实体区块中读取对应该数据的同位信息。具体来说,同位信息被储存在用于储存数据的实体页面之后的实体页面,因此存储器管理电路202可正确地读取对应的同位信息。之后,在步骤S1423中存储器管理电路202会使用所读取的同位信息来更正所读取的数据,并且在步骤S1425中存储器管理电路202会将所读取的数据传送给主机系统1000。
倘若储存所读取的数据的实体区块不为混乱实体区块时,则在步骤S1427中存储器管理电路202会使用储存该数据的实体区块内的同位信息来更正所读取的数据(如第一实施例所示)。之后,步骤S1425会被执行。
倘若所读取的数据无存有无法通过错误检查与校正电路256校正的错误码元时,则步骤S1425会被执行。
第三实施例
第三实施例的存储器储存装置本质上与第一实施例的存储器储存装置相同,在此,仅针对差异部分进行描述。以下将利用第一实施例的图2与图3来描述第三实施例。
第三实施例的存储器管理电路202也会如图4~10所示的数据存取机制与存储器管理机制来对存储器晶片106进行操作。
存储器晶片106为MLC NAND快闪存储器,因此,每一存储单元可储存多个码元。具体来说,在对SLC NAND型快闪存储器的存储单元进行程序化(program)时仅能执行单阶的程序化,因此每一存储单元仅能储存一个码元。而MLC NAND型快闪存储器的实体区块的程序化可分为多阶段。例如,以2层存储单元为例,实体区块的程序化可分为2阶段。第一阶段是下实体页面(lower physical page)的写入部分,其物理特性类似于单层存储单元(SingleLevel Cell,简称为:SLC)NAND快闪存储器,在完成第一阶段之后才会程序化上实体页面(upper physical page),其中下实体页面的写入速度会快于上实体页面。因此,每一实体区块的实体页面可区分为慢速实体页面(即,上实体页面)与快速实体页面(即,下实体页面)。
类似地,在8层存储单元或16层存储单元的案例中,存储单元会包括更多个实体页面并且会以更多阶段来写入。在此,将写入速度最快的实体页面称为下实体页面,其他写入速度较慢的页面统称为上实体页面。例如,上实体页面包括具有不同写入速度的多个实体页面。此外,在其他实施例中,上实体页面也可为写入速度最慢的实体页面,或者写入速度最慢与部分写入速度快于写入速度最慢实体页面的实体页面。例如,在4层存储单元中,下实体页面为写入速度最快与写入速度次快的实体页面,上实体页面则为写入速度最慢与写入速度次慢的实体页面。
特别是,快速实体页面与其对应的慢速实体页面彼此具有电荷耦合效应。因此,当储存在慢速实体页面中的数据发生无法通过错误检查与校正电路256错误校正的错误码元时,储存在该慢速实体页面所对应的快速实体页面中的数据也可能出现错误码元。
在本实施例中,在一个实体区块中,存储器管理电路202会为储存在该实体区块的快速实体页面中的数据产生子同位信息,并且为储存在该实体区块的慢速实体页面中的数据产生另一子同位信息。
图15是本发明第三实施例的依据实体页面的种类来产生子同位信息并储存子同位信息的范例。为方便说明,在此以2层存储单元NAND快闪存储器为例来进行说明,然而必须了解的是,存储器晶片106不限于此,在本发明另一实施例中,存储器晶片106也可以是3或更多层存储单元NAND快闪存储器。
请参照图15,实体区块304(0)的第0实体页面、第1实体页面、第3实体页面、第5实体页面、第7实体页面...第K-6实体页面、第K-4实体页面与第K-2实体页面为快速实体页面,并且实体区块304(0)的第2实体页面、第4实体页面、第6实体页面、第8实体页面、第10实体页面、第12实体页面...第K-3实体页面、第K-1实体页面与第K实体页面为慢速实体页面。
当实体区块304(0)的第0实体页面~第K-2实体页面已被写满数据时,存储器管理电路202会使用异或运算为第0实体页面、第1实体页面、第3实体页面、第5实体页面、第7实体页面...第K-6实体页面、第K-4实体页面与第K-2实体页面中的数据产生子同位信息SPI0,并且为第2实体页面、第4实体页面、第6实体页面、第8实体页面、第10实体页面、第12实体页面...第K-3实体页面、第K-1实体页面与第K实体页面中的数据产生子同位信息SPI1。在此,使用异或运算产生子同位信息的方法是相同于图11所示的方法,在此不重复描述。此外,存储器管理电路202会将子同位信息SPI0储存在实体区块304(0)的第K-1实体页面中,并且将子同位信息SPI1储存在实体区块304(0)的第K实体页面中。藉此,当储存在实体区块304(0)的快速实体页面中的数据发生无法通过错误检查与校正电路256校正的错误码元时,存储器管理电路202会使用子同位信息SPI0来更正该数据的错误码元,并且当储存在实体区块304(0)的慢速实体页面中的数据发生无法通过错误检查与校正电路256所校正的错误码元时,存储器管理电路202会使用子同位信息SPI1来更正该数据的错误码元。
图16是本发明第三实施例的错误校正方法的流程图。
请参照图16,当存储器储存装置100从主机系统1000中接收到主机指令时,在步骤S1601中存储器管理电路202会判断主机指令为写入指令或读取指令。
当该主机指令为写入指令时,在步骤S1603中存储器管理电路202会完成数据的写入,并且在步骤S1605中存储器管理电路202会判断被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面是否已被写满。具体来说,在本实施例中,存储器管理电路202会保留2个实体页面来储存对应2种写入速度的实体页面的子同位信息。此外,在存储器晶片为3层存储器单元快闪存储器的另一实施例中,存储器管理电路202会保留3个实体页面来储存对应3种写入速度的实体页面的子同位信息。
倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面已被写满时,则在步骤S1607中存储器管理电路202会依据该实体区块内的储存在快速实体页面的数据来产生对应的子同位信息并且依据该实体区块内的储存在慢速实体页面的数据来产生对应的子同位信息。然后,在步骤S1609中存储器管理电路202会将对应快速实体页面的子同位信息储存在倒数第二个慢速实体页面中并且将对应慢速实体页面的子同位信息储存在最后一个慢速实体页面中。倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面未被写满时,则图16的流程会被结束。
当此主机指令为读取指令时,在步骤S1611中存储器管理电路202会从存储器晶片106中读取对应的数据。并且,在步骤S1613中错误检查与校正电路256会对所读取的数据执行错误检查与校正程序。
之后,在步骤S1615中存储器管理电路202会判断所读取的数据是否存有无法通过错误检查与校正电路256校正的错误码元。
倘若所读取的数据存有无法通过错误检查与校正电路256校正的错误码元时,则在步骤S1617中存储器管理电路202会判断储存该数据的实体页面是否为快速实体页面。倘若储存该数据的实体页面为快速实体页面时,在步骤S1619中存储器管理电路202会使用对应快速实体页面的子同位信息来更正所读取的数据。倘若储存该数据的实体页面不为快速实体页面时,在步骤S1621中存储器管理电路202会使用对应慢速实体页面的子同位信息来更正所读取的数据。之后,在步骤S1623中存储器管理电路202会将所读取的数据传送给主机系统1000。
倘若所读取的数据无存有无法通过错误检查与校正电路256校正的错误码元时,则步骤S1623会被执行。
第四实施例
第四实施例的存储器储存装置本质上与第一实施例的存储器储存装置相同,在此,仅针对差异部分进行描述。以下将利用第一实施例的图2与图3来描述第四实施例。
第四实施例的存储器管理电路202也会如图4~10所示的数据存取机制与存储器管理机制来对存储器晶片106进行操作。
在本实施例中,一个实体页面的容量可储存多个错误校正码框。并且,存储器管理电路202会将储存在实体区块内错误校正码框分组为多个错误校正码框群,并且为每一错误校正码框群产生子同位信息。也就是说,储存在一个实体页面的多个错误校正码框分别地属于其中一个错误校正码框群,并且存储器管理电路202是以错误校正码框群为单位来产生对应的子同位信息。
图17是本发明第四实施例的产生与储存子同位信息的示意图。为方便说明,在图17所示的实施例中,假设每一实体区块具有6个实体页面,并且每一实体页面的容量可储存4个错误校正码框。然而,必须了解的是,本发明不限于此,在本发明另一实施例中,每一实体页面的容量可储存的错误校正码框的数目可以为1、2或其他是适当的数值。
请参照图17,在错误校正码框EF1~EF20被写入至实体区块304(D+1)的第0实体页面~第4实体页面之后,存储器管理单元202会将错误校正码框EF1、EF5、EF9、EF13、EF17分组为错误校正码框群EFG1;将错误校正码框EF2、EF6、EF10、EF14、EF18分组为错误校正码框群EFG2;将错误校正码框EF3、EF7、EF11、EF15、EF19分组为错误校正码框群EFG3;并且将错误校正码框EF4、EF8、EF12、EF16、EF20分组为错误校正码框群EFG4。必须了解的是,在此,错误校正码框群的个数是根据实体页面中可储存的错误校正码框的个数所决定,并且每一实体页面中的每一错误校正码框会被分组至其中一个错误校正码框群。但,分组方式不限于图17所示的方式,在本发明另一实施例中,存储器管理电路202可使用任何可将每一实体页面中的每一错误校正码框分组至其中一个错误校正码框群的方法来将实体区块内的错误校正码框进行分组。
在本实施例中,存储器管理电路202会分别地使用异或运算为错误校正码框群EFG1、EFG2、EFG3与EFG4产生子同位信息GPI1、GPI2、GPI3与GPI4,并且将所产生的子同位信息GPI1、GPI2、GPI3与GPI4储存在实体区块304(D+1)的第5实体页面中。在此,使用异或运算产生子同位信息的方法是相同图11所示的方法,在此不重复描述。
藉此,当储存在实体区块304(0)的实体页面中的数据(即,包含在错误校正码框中的数据)发生无法通过错误检查与校正电路256校正的错误码元时,存储器管理电路202会使用对应的子同位信息来更正该错误码元。值得一提的是,由于每一错误校正码框群对应一个子同位信息,因此,存储器管理电路202在每一错误校正码框群中能够更正一个错误校正码框中无法通过错误检查与校正电路256所校正的错误码元。
在第一实施例中,由于数据是以实体页面为单位来进行异或运算以产生同位信息,因此,在每一实体区块中存储器管理电路202仅能更正在一个实体页面中所发生的错误码元。然而,在本实施例,数据是根据所分组的错误校正码框群来进行异或运算以产生同位信息,因此,存储器管理电路202有机会能够更正多个实体页面中所发生的错误位元。例如,在图17所示的实施例中,在实体区块中有4个错误校正码框发生无法通过错误检查与校正电路256所校正的错误码元的情况下,倘若该4个错误校正码框分别地被储存在4个不同的实体页面中且属于不同的错误校正码框群时,存储器管理电路202将能够更正4个实体页面中的数据。
图18是本发明第四实施例的错误校正方法的流程图。
请参照图18,当存储器储存装置100从主机系统1000中接收到主机指令时,在步骤S1801中存储器管理电路202会判断主机指令为写入指令或读取指令。
当该主机指令为写入指令时,在步骤S1803中存储器管理电路202会完成数据的写入,并且在步骤S1805中存储器管理电路202会判断被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面是否已被写满。
倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面已被写满时,则在步骤S1807中存储器管理电路202会将该实体区块内的错误校正码框分组为多个错误校正码框群。之后,在步骤S1809中存储器管理电路202会以错误校正码框群为单位来产生对应的多个子同位信息并且将所产生的子同位信息储存在该实体区块的最后一个实体页面中。产生同位信息的方法已详细描述如上,在此不重复描述。倘若被写入的实体区块中除了保留用于储存同位信息之外的其他实体页面未被写满时,则图18的流程会被结束。
当该主机指令为读取指令时,在步骤S1811中存储器管理电路202会从存储器晶片106中读取对应的数据。并且,在步骤S1813中错误检查与校正电路256会对所读取的数据执行错误检查与校正程序。
之后,在步骤S1815中存储器管理电路202会判断所读取的数据是否存有无法通过错误检查与校正电路256校正的错误码元。
倘若所读取的数据存有无法通过错误检查与校正电路256校正的错误码元时,则在步骤S1817中存储器管理电路202会使用储存该数据的实体区块内对应的子同位信息来更正所读取的数据。使用子同位信息来更正具错误码元的数据的方法已详细描述如上,在此不重复描述。之后,在步骤S1819中存储器管理电路202会将所读取的数据传送给主机系统1000。
倘若所读取的数据无存有无法通过错误检查与校正电路256校正的错误码元时,则步骤S1819会被执行。
综上所述,在本发明实施例中储存在存储器储存装置的实体区块中的数据除了由错误检查与校正电路执行错误检查与校正程序之外,存储器管理电路还会在实体区块中储存对应该实体区块内的数据的同位信息。基于此,存储器控制电路的错误校正能力能够更为提升,由此更确保数据的正确性。
虽然本发明已以实施例揭示如上,但其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可作适当改变与等同替换,故本发明的保护范围应以权利要求书所界定的范围为准。
Claims (11)
1.一种错误校正方法,其特征在于,用于一存储器晶片,所述存储器晶片具有多个实体区块,其中每一实体区块具有多个实体页面并且每一实体区块的所述多个实体页面可独立地被写入且同时地被抹除,所述错误校正方法包括:
产生对应多个数据的多个错误检查与校正码并且将所述多个数据与对应所述多个数据的错误检查与校正码依序地写入至所述多个实体区块之中的一第一实体区块的所述多个实体页面中;
判断所述第一实体区块的所述多个实体页面中除了用于储存一同位信息的一特定实体页面之外的其他实体页面是否会被写满;
倘若所述其他实体页面会被写满时,则依据所述多个数据产生一第一同位信息;
接续所述多个数据将所述第一同位信息写入至所述特定实体页面;
使用对应所述多个数据的错误检查与校正码来校正所述多个数据;以及
当无法通过使用所述多个数据的错误检查与校正码来校正所述多个数据时依据所述第一同位信息校正在所述第一实体区块中的所述多个数据。
2.根据权利要求1所述的错误校正方法,其特征在于,产生对应所述多个数据的错误检查与校正码并且将所述多个数据与对应所述多个数据的错误检查与校正码依序地写入至所述多个实体区块之中的所述第一实体区块的所述多个实体页面中的步骤包括:
将所述多个数据分割为多个码框;
产生对应每一码框的一错误检查与校正码;
合并所述多个码框与对应的所述多个错误检查与校正码以分别地产生多个错误校正码框;以及
将所述多个错误校正码框写入至所述第一实体区块的所述多个实体页面中。
3.根据权利要求1所述的错误校正方法,其特征在于,依据所述多个数据产生所述第一同位信息的步骤包括:
依序地依据每一数据执行一异或运算以产生所述第一同位信息。
4.根据权利要求2所述的错误校正方法,其特征在于,其中依据所述多个数据产生所述第一同位信息的步骤包括:
将所述多个错误校正码框分组为多个错误校正码框群;以及
为每一错误校正码框群产生对应的一子同位信息。
5.根据权利要求1所述的错误校正方法,其特征在于,所述第一同位信息可校正的码元数的数目与所述第一同位信息的码元数相同。
6.根据权利要求1所述的错误校正方法,其特征在于,还包括:
产生对应多个其他数据的多个错误检查与校正码并且将所述多个其他数据与对应所述多个其他数据的错误检查与校正码依序地写入至所述第一实体区块的所述多个实体页面中;
依据所述多个其他数据产生一第二同位信息;
接续所述多个其他数据将所述第二同位信息写入至所述第一实体区块的所述多个实体页面的其中之一中;
使用对应所述多个其他数据的错误检查与校正码来校正所述多个其他数据;以及
当无法通过使用所述多个其他数据的错误检查与校正码来校正所述多个其他数据时依据所述第二同位信息来校正在所述第一实体区块中的所述多个其他数据。
7.根据权利要求1所述的错误校正方法,其特征在于,所述第一实体区块的所述多个实体页面包括多个第一实体页面与对应所述多个第一实体页面的多个第二实体页面,并且写入数据至所述多个第一实体页面的速度不同于写入数据至所述多个第二实体页面的速度,
其中依据所述多个数据产生所述第一同位信息的步骤包括:
为所述多个数据之中被写入至所述多个第一实体页面的数据产生一第一子同位信息;以及
为所述多个数据之中被写入至所述多个第二实体页面的数据产生一第二子同位信息,
其中接续所述多个数据将所述第一同位信息写入至所述多个实体页面的其中之一的步骤包括:
将所述第一子同位信息写入至所述多个第二实体页面的其中之一中;以及
将所述第二子同位信息写入至所述多个第二实体页面的其中之一中,
其中写入所述第一子同位信息的第二实体页面与写入所述第二子同位信息的第二实体页面属于不同的存储单元。
8.一种错误校正系统,其特征在于,用于管理一存储器晶片,所述存储器晶片具有多个实体区块,其中每一实体区块具有多个实体页面并且所述多个实体页面可独立地被写入且同时地被抹除,所述错误校正系统包括:
一第一模块,用以产生对应多个数据的多个错误检查与校正码并且将所述多个数据与对应所述多个数据的错误检查与校正码依序地写入至所述多个实体区块之中的一第一实体区块的所述多个实体页面中;
一第二模块,用以依据所述多个数据产生一第一同位信息;
一第三模块,用以接续所述多个数据将所述第一同位信息写入至所述第一实体区块的所述多个实体页面的其中之一中;
一第四模块,用以使用对应所述多个数据的错误检查与校正码来校正所述多个数据;以及
一第五模块,用以当无法通过使用所述多个数据的错误检查与校正码来校正所述多个数据时依据所述第一同位信息校正在所述第一实体区块中的所述多个数据,其中所述第一实体区块的所述多个实体页面包括多个第一实体页面与对应所述多个第一实体页面的多个第二实体页面,并且写入数据至所述多个第一实体页面与对应的所述多个第二实体页面彼此具有电荷耦合效应,
其中所述第二模块更用以为所述多个数据之中被写入至所述多个第一实体页面的数据产生一第一子同位信息并且为所述多个数据之中被写入至所述多个第二实体页面的数据产生一第二子同位信息,
其中所述第三模块更用以将所述第一子同位信息写入至所述多个第二实体页面的其中之一中并且将所述第二子同位信息写入至所述多个第二实体页面的其中之一中,
其中写入所述第一子同位信息的第二实体页面与写入所述第二子同位信息的第二实体页面属于不同的存储单元。
9.根据权利要求8所述的错误校正系统,其特征在于,所述第二模块更用以依序地依据每一数据执行一异或运算以产生所述第一同位信息。
10.根据权利要求8所述的错误校正系统,其特征在于,所述第一同位信息可校正的码元数的数目与所述第一同位信息的码元数相同。
11.根据权利要求8所述的错误校正系统,其特征在于,所述错误校正系统,更包括:
一第六模块,用以产生对应多个其他数据的多个错误检查与校正码并且将所述多个其他数据与对应所述多个其他数据的错误检查与校正码依序地写入至所述第一实体区块的所述多个实体页面中;
一第七模块,用以依据所述多个其他数据产生一第二同位信息;
一第八模块,用以接续所述多个其他数据将所述第二同位信息写入至所述第一实体区块的所述多个实体页面的其中之一中;
一第九模块,用以使用对应所述多个其他数据的错误检查与校正码来校正所述多个其他数据;以及
一第十模块,用以当无法通过使用所述多个其他数据的错误检查与校正码来校正所述多个其他数据时依据所述第二同位信息来校正在所述第一实体区块中的所述多个其他数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010141792.6A CN102208212B (zh) | 2010-03-30 | 2010-03-30 | 错误校正方法、存储器控制器与存储器储存系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010141792.6A CN102208212B (zh) | 2010-03-30 | 2010-03-30 | 错误校正方法、存储器控制器与存储器储存系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102208212A CN102208212A (zh) | 2011-10-05 |
CN102208212B true CN102208212B (zh) | 2014-10-22 |
Family
ID=44697003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010141792.6A Active CN102208212B (zh) | 2010-03-30 | 2010-03-30 | 错误校正方法、存储器控制器与存储器储存系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102208212B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI533316B (zh) * | 2013-03-18 | 2016-05-11 | 慧榮科技股份有限公司 | 錯誤修正方法以及記憶體裝置 |
CN104252600B (zh) * | 2013-06-27 | 2017-08-11 | 群联电子股份有限公司 | 数据保护方法、存储器控制器与存储器储存装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832049A (zh) * | 2005-01-07 | 2006-09-13 | 阿尔卡特公司 | 存储器寻址错误检测系统和方法 |
CN101243417A (zh) * | 2005-07-15 | 2008-08-13 | 松下电器产业株式会社 | 非易失性存储装置、存储控制器以及不良区域检测方法 |
CN101271733A (zh) * | 2007-03-22 | 2008-09-24 | 海力士半导体有限公司 | 半导体存储装置 |
CN101379563A (zh) * | 2006-02-08 | 2009-03-04 | 三星电子株式会社 | 纠错块、产生纠错块的设备和方法以及纠错方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1145595A (ja) * | 1997-07-24 | 1999-02-16 | Nec Corp | 多値セル用誤り訂正回路 |
US7681109B2 (en) * | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
KR101254185B1 (ko) * | 2006-08-03 | 2013-04-18 | 삼성전자주식회사 | 엑스트라 ecc가 적용된 정보 저장 매체에 데이터를기록하거나 상기 매체로부터 데이터를 재생하는 장치 및방법 |
-
2010
- 2010-03-30 CN CN201010141792.6A patent/CN102208212B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832049A (zh) * | 2005-01-07 | 2006-09-13 | 阿尔卡特公司 | 存储器寻址错误检测系统和方法 |
CN101243417A (zh) * | 2005-07-15 | 2008-08-13 | 松下电器产业株式会社 | 非易失性存储装置、存储控制器以及不良区域检测方法 |
CN101379563A (zh) * | 2006-02-08 | 2009-03-04 | 三星电子株式会社 | 纠错块、产生纠错块的设备和方法以及纠错方法 |
CN101271733A (zh) * | 2007-03-22 | 2008-09-24 | 海力士半导体有限公司 | 半导体存储装置 |
Non-Patent Citations (1)
Title |
---|
JP特开平11-45595A 1999.02.16 |
Also Published As
Publication number | Publication date |
---|---|
CN102208212A (zh) | 2011-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI447739B (zh) | 錯誤校正方法、記憶體控制器與儲存系統 | |
US9317418B2 (en) | Non-volatile memory storage apparatus, memory controller and data storing method | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN103514096B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
CN104765695A (zh) | 一种nand flash坏块管理系统及方法 | |
CN103699491A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102193869A (zh) | 存储器管理与写入方法及其存储器控制器与储存系统 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN102592670B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102866861B (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
CN102193870B (zh) | 存储器管理与写入方法、存储器控制器与存储器存储系统 | |
CN104252317A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN103577344A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102208212B (zh) | 错误校正方法、存储器控制器与存储器储存系统 | |
TWI464585B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI428743B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |