CN105335299B - 数据存储方法、存储器控制电路单元及存储器存储装置 - Google Patents
数据存储方法、存储器控制电路单元及存储器存储装置 Download PDFInfo
- Publication number
- CN105335299B CN105335299B CN201410394322.9A CN201410394322A CN105335299B CN 105335299 B CN105335299 B CN 105335299B CN 201410394322 A CN201410394322 A CN 201410394322A CN 105335299 B CN105335299 B CN 105335299B
- Authority
- CN
- China
- Prior art keywords
- physical programming
- unit
- programming unit
- data
- physical
- 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
- 230000005055 memory storage Effects 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013500 data storage Methods 0.000 title claims abstract description 30
- 238000007726 management method Methods 0.000 claims description 197
- 238000012937 correction Methods 0.000 claims description 97
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 239000000284 extract Substances 0.000 description 7
- 238000013507 mapping Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种数据存储方法、存储器控制电路单元及存储器存储装置。本方法包括:依据第一数据产生一奇偶信息。本方法还包括:将第一数据程序化至第一实体程序化单元时,将至少一标记程序化至所述第一实体程序化单元之中的冗余比特区。此方法还包括:将所述奇偶信息程序化至排列在所述第一实体程序化单元之后的至少一第二实体程序化单元中,其中上述至少一标记指示所述奇偶信息被程序化至所述至少一第二实体程序化单元中。
Description
技术领域
本发明是有关于一种数据存储方法,且特别是有关于一种用于可复写式非易失性存储器的数据存储方法、存储器控制电路单元及存储器存储装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,因此,近年可复写式非易失性存储器产业成为电子产业中相当热门的一环。例如,以快闪存储器作为存储媒体的固态硬盘(Solid-state drive)已广泛应用作为电脑主机的硬盘,以提升电脑的存取效能。
由于存储在可复写式非易失性存储器的数据可能会因各种因素(例如,存储器单元的漏电、程序化失败、损毁等)而产生错误比特,因此,在存储器存储系统中一般会配置错误检查与校正电路并为所存储的数据产生错误检查与校正码以确保数据的正确性。然而,当数据中的错误比特数目超过错误检查与校正电路所能检测与校正的错误比特数时,含有错误比特的数据就无法被校正,而造成数据遗失。一般来说,当此情况发生时,可根据存储在可复写式非易失性存储器中对应于所欲校正的数据的奇偶性(Parity)来校正此数据。传统上,由于此些奇偶信息所在的实体程序化单元的数据比特区与冗余比特区中的数据也是通过其他受保护的数据所计算出来的,即,无法通过冗余比特区中的信息得知此些实体程序化单元即是奇偶信息所在的实体程序化单元。因此,传统的方法会将奇偶信息放置在固定的位置上。
例如,假设存储器存储系统具有八个存储器晶粒,则使用其中最后一个存储器晶粒来存储奇偶信息。倘若来自主机系统的数据仅需写入一个实体程序化单元时,则必须要将其中间的六个存储器晶粒中相对应的实体程序化单元填上虚构数据(dummy data),以产生欲存放在第八个存储器晶粒中相对应的实体程序化单元中的奇偶信息。也就是说,此种作法将造成存储器存储装置中存储空间的浪费。基此,如何在避免存储器存储装置中存储空间的浪费下增加并提升错误校正的更正能力与效率是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据存储方法、存储器控制电路单元及存储器存储装置,其可以有效地避免存储器存储装置中存储空间的浪费并且当无法由错误检查与校正码校正数据的错误比特时,可通过所存储的奇偶信息来更正此数据的错误比特,由此提升错误校正的能力。
本发明的一范例实施例提供一种用于可复写式非易失性存储器模块的数据存储方法,所述可复写式非易失性存储器模块包括多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元,以及其中每一实体程序化单元包括数据比特区与冗余比特区,本数据存储方法包括:依据第一数据产生一奇偶信息;将所述数据程序化至所述实体程序化单元之中的第一实体程序化单元中;以及将所述奇偶信息程序化至所述实体程序化单元之中的至少一第二实体程序化单元中,其中所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之后。在上述将所述数据程序化至所述实体程序化单元之中的所述第一实体程序化单元的步骤包括:将至少一标记程序化至所述第一实体程序化单元之中的冗余比特区,其中所述至少一标记指示所述奇偶信息被程序化至所述至少一第二实体程序化单元中。
在本发明的一实施例中,上述第一数据包括一使用者数据与对应所述使用者数据的一管理信息,其中所述使用者数据被程序化至所述第一实体程序化单元之中的数据比特区,其中对应所述使用者数据的所述管理信息被程序化至所述第一实体程序化单元之中的冗余比特区。
在本发明的一实施例中,上述第一数据包括一使用者数据、对应所述使用者数据的一管理信息以及对应所述使用者数据的一错误检查与校正码。其中所述错误检查与校正码是根据所述使用者数据所产生的。其中所述使用者数据被程序化至所述第一实体程序化单元之中的数据比特区,其中对应所述使用者数据的所述管理信息被程序化至所述第一实体程序化单元之中的冗余比特区,其中对应所述使用者数据的所述错误检查与校正码被程序化至所述第一实体程序化单元之中的冗余比特区。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的步骤包括:将第一标记程序化至所述第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区,其中所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之中的所述最后一个实体程序化单元之后,其中所述第一标记指示所述至少一第二实体程序化单元存储所述奇偶信息;以及将第二标记程序化至所述实体程序化单元之中的至少一第三实体程序化单元的冗余比特区,其中所述至少一第三实体程序化单元是排列在所述至少一第二实体程序化单元之后,其中所述第二标记指示所述至少一第二实体程序化单元存储所述奇偶信息。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的步骤还包括:建立一奇偶信息地址对应表;以及将一第三标记记录在所述奇偶信息地址对应表,其中所述第三标记指示所述至少一第二实体程序化单元存储所述奇偶信息。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的步骤包括:计数所述第一实体程序化单元的个数;以及根据所述第一实体程序化单元的个数,在每一所述第一实体程序化单元的冗余比特区中记录一标记值,其中记录在所述第一实体程序化单元中的所述标记值依据所述第一实体程序化单元的排列依序地递减。
在本发明的一实施例中,上述标记值之中的第一标记值为1,且所述第一标记值被记录在所述第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区中,且所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之中的所述最后一个实体程序化单元之后,其中所述标记值之中的第二标记值为2,且所述第二标记值被记录在所述第一实体程序化单元之中相邻且排列在所述最后一个实体程序化单元之前的实体程序化单元的冗余比特区中,其中所述标记值之中的第三标记值为3,且所述第三标记值被记录在所述第一实体程序化单元之中相邻且排列在记录所述第二标记值的实体程序化单元之前的实体程序化单元的冗余比特区中。
在本发明的一实施例中,上述第一数据包括一第二数据以及一错误检查与校正码,并且上述数据存储方法,还包括:当无法通过使用所述错误检查与校正码来校正所述第二数据时,根据所述至少一标记获得记录所述奇偶信息的所述至少一第二实体程序化单元的地址,从所述至少一第二实体程序化单元中读取所述奇偶信息以及依据所读取的所述奇偶信息来校正所述第二数据。
本发明的一范例实施例提供一种用于可复写式非易失性存储器模块的数据存储方法,所述可复写式非易失性存储器模块包括多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元,以及其中每一实体程序化单元包括数据比特区与冗余比特区,本数据存储方法包括:建立一奇偶信息地址对应表;依据第一数据产生一奇偶信息;将所述数据程序化至所述实体程序化单元之中的第一实体程序化单元中;将所述奇偶信息程序化至所述实体程序化单元之中的至少一第二实体程序化单元中,以及将至少一标记记录在所述奇偶信息地址对应表,其中所述标记指示所述奇偶信息被程序化至所述至少一第二实体程序化单元中。
本发明的一范例实施例提出一种用于控制可复写式非易失性存储器模块的存储器控制电路单元,其中所述可复写式非易失性存储器模块包括多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元,以及其中每一实体程序化单元包括数据比特区与冗余比特区。此存储器控制电路单元包括主机接口、存储器接口与存储器管理电路。主机接口用以耦接至主机系统,存储器接口用以耦接至可复写式非易失性存储器模块,以及存储器管理电路耦接至主机接口与存储器接口。存储器管理电路用以依据第一数据产生一奇偶信息并且将所述第一数据程序化至所述实体程序化单元之中的第一实体程序化单元中,其中所述存储器管理电路还用以将所述奇偶信息程序化至所述实体程序化单元之中的至少一第二实体程序化单元中,其中所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之后。在上述将所述数据程序化至所述实体程序化单元之中的所述第一实体程序化单元的操作中,存储器管理电路将至少一标记程序化至所述第一实体程序化单元之中的冗余比特区,其中所述至少一标记指示所述奇偶信息被程序化至所述至少一第二实体程序化单元中。
在本发明的一实施例中,上述第一数据包括一使用者数据与对应所述使用者数据的一管理信息,其中所述使用者数据被程序化至所述第一实体程序化单元之中的数据比特区,其中对应所述使用者数据的所述管理信息被程序化至所述第一实体程序化单元之中的冗余比特区。
在本发明的一实施例中,上述第一数据包括一使用者数据、对应所述使用者数据的一管理信息以及对应所述使用者数据的一错误检查与校正码。其中所述错误检查与校正码是根据所述使用者数据所产生的。其中所述使用者数据被程序化至所述第一实体程序化单元之中的数据比特区,其中对应所述使用者数据的所述管理信息被程序化至所述第一实体程序化单元之中的冗余比特区,其中对应所述使用者数据的所述错误检查与校正码被程序化至所述第一实体程序化单元之中的冗余比特区。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的操作中,存储器管理电路将第一标记程序化至所述第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区,其中所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之中的所述最后一个实体程序化单元之后,其中所述第一标记指示所述至少一第二实体程序化单元存储所述奇偶信息,其中存储器管理电路还用以将第二标记程序化至所述实体程序化单元之中的至少一第三实体程序化单元的冗余比特区,其中所述第三实体程序化单元是排列在所述至少一第二实体程序化单元之后,并且所述第二标记指示所述至少一第二实体程序化单元存储所述奇偶信息。
本发明的一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以耦接至主机系统。可复写式非易失性存储器模块包括多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元,其中每一实体程序化单元包括数据比特区与冗余比特区。存储器控制电路单元耦接至连接接口单元与可复写式非易失性存储器模块,并且用以依据第一数据产生一奇偶信息,并且将所述第一数据程序化至所述实体程序化单元之中的一第一实体程序化单元中。此外,存储器控制电路单元还用以将所述奇偶信息程序化至所述实体程序化单元之中的至少一第二实体程序化单元中,其中所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之后。在上述将所述第一数据程序化至所述实体程序化单元之中的所述第一实体程序化单元的操作中,存储器控制电路单元将至少一标记程序化至所述第一实体程序化单元之中的冗余比特区,其中所述至少一标记指示所述奇偶信息被程序化至所述至少一第二实体程序化单元中。
在本发明的一实施例中,上述第一数据包括一使用者数据与对应所述使用者数据的一管理信息,其中所述使用者数据被程序化至所述第一实体程序化单元之中的数据比特区,其中对应所述使用者数据的所述管理信息被程序化至所述第一实体程序化单元之中的冗余比特区。
在本发明的一实施例中,上述第一数据包括一使用者数据、对应所述使用者数据的一管理信息以及对应所述使用者数据的一错误检查与校正码。其中所述错误检查与校正码是根据所述使用者数据所产生的。其中所述使用者数据被程序化至所述第一实体程序化单元之中的数据比特区,其中对应所述使用者数据的所述管理信息被程序化至所述第一实体程序化单元之中的冗余比特区,其中对应所述使用者数据的所述错误检查与校正码被程序化至所述第一实体程序化单元之中的冗余比特区。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的操作中,存储器控制电路单元将一第一标记程序化至所述第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区,其中所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之中的所述最后一个实体程序化单元之后,其中所述第一标记指示所述至少一第二实体程序化单元存储所述奇偶信息,其中存储器控制电路单元还用以将第二标记程序化至所述实体程序化单元之中的至少一第三实体程序化单元的冗余比特区,其中所述至少一第三实体程序化单元是排列在所述至少一第二实体程序化单元之后,并且所述第二标记指示所述至少一第二实体程序化单元存储所述奇偶信息。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的操作中,存储器控制电路单元建立一奇偶信息地址对应表并且将第三标记记录在所述奇偶信息地址对应表,其中所述第三标记指示所述至少一第二实体程序化单元存储所述奇偶信息。
在本发明的一实施例中,上述将所述至少一标记程序化至所述第一实体程序化单元之中的冗余比特区的操作中,存储器控制电路单元计数所述第一实体程序化单元的个数,并且根据所述第一实体程序化单元的个数,在每一第一实体程序化单元的冗余比特区中记录一标记值,其中记录在所述第一实体程序化单元中的所述标记值依据所述第一实体程序化单元的排列依序地递减。
在本发明的一实施例中,上述标记值之中的第一标记值为1,且所述第一标记值被记录在所述第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区中,且所述至少一第二实体程序化单元是排列在所述第一实体程序化单元之中的所述最后一个实体程序化单元之后。其中标记值之中的第二标记值为2,且所述第二标记值被记录在所述第一实体程序化单元之中相邻且排列在所述最后一个实体程序化单元之前的实体程序化单元的冗余比特区中。其中所述标记值之中的第三标记值为3,且所述第三标记值被记录在所述第一实体程序化单元之中相邻且排列在记录所述第二标记值的实体程序化单元之前的实体程序化单元的冗余比特区中。
在本发明的一实施例中,上述第一数据包括一第二数据以及一错误检查与校正码,当无法通过使用所述错误检查与校正码来校正所述第二数据时,存储器控制电路单元还用以根据所述至少一标记获得记录所述奇偶信息的所述至少一第二实体程序化单元的地址,从所述至少一第二实体程序化单元中读取所述奇偶信息以及依据所读取的所述奇偶信息来校正所述第二数据。
基于上述,当从可复写式非易失性存储器模块中读取的数据比特存在错误时,本发明的一范例实施例可以根据记录在实体程序化单元中的至少一标记,快速地获得奇偶信息所在的实体程序化单元地址。据此,本发明范例实施例提出的数据存储方法、存储器控制电路单元与存储器存储装置可有效地增加错误校正的更正能力与效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明第一范例实施例所示出的主机系统与存储器存储装置的示意图;
图1B是根据本发明的第一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;
图1C是根据本发明第一范例实施例所示出的主机系统与存储器存储装置的示意图;
图2是示出图1A所示的存储器存储装置的概要方块图;
图3是根据本发明第一范例实施例所示出的存储器控制电路单元的概要方块图;
图4A与图4B是根据第一范例实施例所示出的管理实体抹除单元的范例示意图;
图5A至图5B是根据本发明第一范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码以及用以记录奇偶信息的至少一标记写入至实体程序化单元的范例示意图;
图6是根据本发明第一范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码以及用以记录奇偶信息的至少一标记写入至实体程序化单元的另一个范例示意图;
图7是根据本发明的第一范例实施例所示出的数据存储方法的流程图;
图8A至图8B是根据本发明第二范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码以及用以记录奇偶信息的至少一标记写入至实体程序化单元的范例示意图;
图9是根据本发明第三范例实施例所示出的根据写入数据欲写入的每一实体程序化单元的个数将其排列与记录标记值的范例示意图;
图10是根据本发明第三范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码与用以记录奇偶信息的至少一标记写入至实体程序化单元的另一范例示意图;
图11是根据本发明第四范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码程序化至实体程序化单元以及将用以记录奇偶信息的至少一标记记录在奇偶信息地址对应表的范例示意图;
图12是根据本发明的第四范例实施例所示出的数据存储方法的流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器(RAM);
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:优盘;
1214:存储卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:存储棒;
1318:CF卡;
1320:嵌入式存储装置;
100:存储器存储装置;
102:连接接口单元;
104:存储器控制电路单元;
106:可复写式非易失性存储器模块;
410(0)~410(N):实体抹除单元;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
208:缓冲存储器;
210:电源管理电路;
212:错误检查与校正电路;
502:数据区;
504:闲置区;
506:系统区;
508:取代区;
510(0)~510(D):逻辑地址;
520:数据比特区;
540:冗余比特区;
542:第一记录区;
544:第二记录区;
800、110:奇偶信息地址对应表;
602、702、802:第一实体程序化单元;
604、704、804:第二实体程序化单元;
606、706、806:第三实体程序化单元;
808:第四实体程序化单元;
810:第五实体程序化单元;
812:第六实体程序化单元;
900:排序;
D1、D1-1~D1-4:第一使用者数据;
D2、D2-1、D2-2:第二使用者数据;
D3、D3-1、D3-2:第三使用者数据;
S1、S1-1~S1-4:第一使用者数据的管理信息;
S2、S2-1、S2-2:第二使用者数据的管理信息;
S3-1、S3-2:第三使用者数据的管理信息;
M1:第一标记;
M2:第二标记;
M3:第三标记;
ECC1-1~ECC1-4、ECC2、ECC2-1、ECC2-2、ECC3-1、ECC3-2:错误检查与校正码;
P:奇偶信息;
P1:第一奇偶信息;
P2:第二奇偶信息;
P3:第三奇偶信息;
S701、S703、S705、S707、S1201、S1203、S1205、S1207、S1209:数据存储方法的步骤。
具体实施方式
[第一范例实施例]
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图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所示的优盘1212、存储卡1214或固态硬盘(Solid StateDrive,简称SSD)1216等的可复写式非易失性存储器存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来做说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为图1C中的数码相机(摄影机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接在主机系统的基板上。
图2是示出图1A所示的存储器存储装置的概要方块图。
请参照图2,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本范例实施例中,连接接口单元102是符合串行高级技术附件(SerialAdvanced Technology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合平行高级技术附件(Parallel Advanced TechnologyAttachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,简称IEEE)1394标准、高速外围组件互连接口(PeripheralComponent Interconnect Express,简称PCI Express)标准、通用串行总线(UniversalSerial Bus,简称USB)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、安全数位(Secure Digital,简称SD)接口标准、存储棒(Memory Stick,简称MS)接口标准、多媒体存储卡(Multi MediaCard,简称MMC)接口标准、小型快闪(Compact Flash,简称CF)接口标准、电子集成驱动器接口(Integrated Device Electronics,简称IDE)标准或其他适合的标准。在本范例实施例中,连接器可与存储器控制电路单元封装在一个芯片中,或布设在一包含存储器控制电路单元的芯片外。
存储器控制电路单元104用以执行以硬件型式或固件型式实现的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取、抹除与合并等运作。
可复写式非易失性存储器模块106是耦接至存储器控制电路单元104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体抹除单元410(0)~410(R)。例如,实体抹除单元410(0)~410(R)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。此外,每一实体抹除单元可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体抹除单元,并且实体程序化单元为实体程序化单元或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块106为多层单元(Multi LevelCell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单层单元(Single Level Cell,简称SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特数据的快闪存储器模块)、三层单元(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图3是根据本发明第一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图3与图2,存储器控制电路单元104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制电路单元104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实现。例如,存储器管理电路202具有微处理器单元(未示出)与唯读存储器(未示出),并且此些控制指令是被刻录至此唯读存储器中。当存储器存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序码型式存储在可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、唯读存储器(未示出)及随机存取存储器(未示出)。特别是,此唯读存储器具有驱动码,并且当存储器控制电路单元104被致能时,微处理器单元会先执行此驱动码段来将存储在可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
主机接口204是耦接至存储器管理电路202并且用以耦接至连接接口单元102,以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是符合SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是耦接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器208、电源管理电路210与错误检查与校正电路212。
缓冲存储器208是耦接至存储器管理电路202并且用以寄存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路210是耦接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路212是耦接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路212会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路212会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4A与图4B是根据第一范例实施例所示出的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块106的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
请参照图4A,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410-(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路202会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的运作中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
请参照图4B,如上所述,数据区502、闲置区504的实体抹除单元是以轮替方式来存储主机系统1000所写入的数据。在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会配置逻辑地址510(0)~510(D)给主机系统1000,以映射至数据区502中部分的实体抹除单元414(0)~410(F-1),以利于在以上述轮替方式来存储数据的实体抹除单元中进行数据存取。特别是,主机系统1000会通过逻辑地址510(0)~510(D)来存取数据区502中的数据。此外,存储器控制电路单元104(或存储器管理电路202)会建立逻辑地址-实体抹除单元映射表(logical address-physical erasing unit mapping table),以记录逻辑地址与实体抹除单元之间的映射关系。此逻辑地址-实体抹除单元映射表还可以例如是记录逻辑地址与实体程序化单元、逻辑程序化单元与实体程序化单元及/或逻辑程序化单元与实体抹除单元之间的映射关系等各种逻辑与实体的对应关系,本发明不加以限制。
图5A至图5B是根据本发明第一范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码以及用以记录奇偶信息的至少一标记写入至实体程序化单元的范例示意图。
请参照图5A,在本范例实施例中,每一实体程序化单元会包括数据比特区520与冗余比特区540。其中,冗余比特区540包括第一记录区542及第二记录区544。举例来说,当一个实体程序化单元的容量为8千字节(Kilobyte,简称KB)时,冗余比特区540的容量有22字节。
具体而言,当主机系统1000传送写入指令与对应此写入指令的第一使用者数据D1给存储器存储装置100时,存储器控制电路单元104(或存储器管理电路202)会判断第一使用者数据D1的大小,并且根据第一使用者数据D1的大小获得写入此第一使用者数据D1所需的实体程序化单元的数目。在此,假设需两个实体程序化单元来写入此第一使用者数据D1。因此,如图5A所示,存储器控制电路单元104(或存储器管理电路202)会产生对应第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1与ECC1-2以及对应第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2(例如,实体程序化单元的好坏标记等),并且自闲置区504提取实体抹除单元410(F)作为替换实体抹除单元。之后,存储器控制电路单元104(或存储器管理电路202)会将此些第一使用者数据、对应此些第一使用者数据的管理信息,以及对应此些第一使用者数据的多个错误检查与校正码依序地写入至实体抹除单元410(F)的第0个与第1个实体程序化单元中。在此假设此些第一使用者数据所写入的实体程序化单元为第一实体程序化单元602,也就是说,第一使用者数据D1-1与D1-2是被程序化至第一实体程序化单元602的数据比特区520中,且对应此些第一使用者数据的错误检查与校正码ECC1-1与ECC1-2是被程序化至第一实体程序化单元602中冗余比特区540的第二记录区544。特别是,当主机系统1000欲从存储器存储装置100中读取第一使用者数据D1时,存储器控制电路单元104(或存储器管理电路202)会从第一实体程序化单元602中读取错误检查与校正码ECC1-1与ECC1-2,并且错误检查与校正电路212会分别地依据错误检查与校正码ECC1-1与ECC1-2,来对第一使用者数据D1-1与D1-2进行错误检查与校正程序。基此,在错误检查与校正电路212的错误校正能力范围内,错误检查与校正电路212可校正数据中的错误比特,由此确保数据的正确性。
在本范例实施例中,假设一第一数据包括第一使用者数据以及对应第一使用者数据的管理信息,因此,当存储器存储装置100接收到上述第一使用者数据并且产生对应第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2后,存储器控制电路单元104(或存储器管理电路202)会依据此第一数据(即,第一使用者数据D1-1与D1-2与对应于第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2)产生一奇偶信息P。此外,在另一范例实施例中,第一数据包括使用者数据、对应该使用者数据的管理信息以及对应使用者数据的错误检查与校正码,也就是说,存储器控制电路单元104(或存储器管理电路202)会根据整个实体程序化单元来产生奇偶信息,例如,存储器控制电路单元104(或存储器管理电路202)会依据第一使用者数据D1-1与D1-2、对应第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2以及对应第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1与ECC1-2来产生奇偶信息。值得一提的是,在本范例实施例中,第一数据为两笔第一使用者数据以及对应此些第一使用者数据的管理信息所组成(即,第一使用者数据D1-1与D1-2与对应于第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2),然而,本发明并不加以限制第一数据的大小,例如,在另一范例实施例中,第一数据可为一笔或多笔第一使用者数据以及对应第一使用者数据的管理信息所组成,或是由一笔或多笔第一使用者数据、对应第一使用者数据的管理信息以及对应第一使用者数据的错误检查与校正码所组成。值得注意的是,本发明并不限制奇偶信息的产生时间点与产生方式,具体而言,在本范例实施例中,所产生的奇偶信息可以是奇偶校正码(parity checking code)、通道编码(channel coding)或是其他类型。例如,汉明码(hamming code)、低密度奇偶检查码(low density parity check code,简称LDPC code)、涡旋码(turbo code)或里德-所罗门码(Reed-solomon code,简称RS code)。特别是,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)也可以使用异或(XOR)运算来为第一数据产生的奇偶信息。
请再参照图5A,存储器控制电路单元104(或存储器管理电路202)会将奇偶信息P程序化至实体抹除单元410(F)的实体程序化单元之中的第2个实体程序化单元(即,第二实体程序化单元604)。值得一提的是,在上述将第一使用者数据、对应第一使用者数据的管理信息与对应第一使用者数据的错误检查与校正码程序化至实体程序化单元之中的第一实体程序化单元602的操作中,存储器控制电路单元104(或存储器管理电路202)会将至少一标记程序化至实体抹除单元410(F)的第1个实体程序化单元的冗余比特区的第一记录区542(即,图5A中所示第一标记M1),并且此第一标记M1会指示奇偶信息P被程序化至实体抹除单元410(F)的第二实体程序化单元604中。
特别是,第二实体程序化单元604是排列于第一实体程序化单元602之中的最后一个实体程序化单元之后,并且第一标记M1会指示第二实体程序化单元604存储奇偶信息P。
请参照图5B,当主机系统1000传送另一个写入指令与对应此写入指令的第二使用者数据D2给存储器存储装置100时,存储器控制电路单元104(或存储器管理电路202)也会判断第二使用者数据D2的大小,并且根据第二使用者数据D2的大小获得写入此第二使用者数据D2所需的实体程序化单元的数目。在此,假设需一个实体程序化单元来写入此第二使用者数据D2。因此,如图5B所示,存储器管理电路202会产生对应第二使用者数据D2的错误检查与校正码ECC2以及对应第二使用者数据D2的管理信息S2。之后,存储器控制电路单元104(或存储器管理电路202)会将此第二使用者数据、对应此第二使用者数据的管理信息,以及对应此第二使用者数据的错误检查与校正码写入至实体抹除单元410(F)的第3个实体程序化单元(即,第三实体程序化单元606)中。在存储器控制电路单元104(或存储器管理电路202)将对应此第二使用者数据D2的管理信息S2写入至实体抹除单元410(F)的第三实体程序化单元606中的同时,存储器控制电路单元104(或存储器管理电路202)会将一第二标记M2程序化至第三实体程序化单元606的冗余比特区540的第一记录区542中,其中第三实体程序化单元606是排列在第二实体程序化单元604之后,并且第二标记M2也会指示第二实体程序化单元604存储奇偶信息P。
此后,当存储器控制电路单元104(或存储器管理电路202)接收到主机系统1000所传送的欲读取上述第一使用者数据D1的读取指令时,存储器控制电路单元104(或错误检查与校正电路212)会依据所读取的错误检查与校正码对所读取的第一使用者数据D1-1与D1-2进行上述的错误检查与校正程序。举例而言,在本发明范例实施例中,上述第一数据包括一第二数据以及一错误检查与校正码,其中第二数据可仅包括第一使用者数据,或是同时包括第一使用者数据与对应第一使用者数据的管理信息,而错误检查与校正码即为对应第一使用者数据的错误检查与校正码。当无法通过使用对应第一使用者数据的错误检查与校正码来校正所述第二数据时,存储器控制电路单元104(或存储器管理电路202)会根据上述至少一标记获得记录奇偶信息的至少一第二实体程序化单元的地址,并从至少一第二实体程序化单元中读取奇偶信息以及依据所读取的该奇偶信息来校正第二数据。例如,倘若无法通过使用第一使用者数据D1-1与D1-2的错误检查与校正码(即,ECC1、ECC2)来校正第一使用者数据D1-1与D1-2时,存储器控制电路单元104(或存储器管理电路202)会根据上述的至少一标记来获得记录奇偶信息P的第二实体程序化单元604的地址,并从第二实体程序化单元604中读取此奇偶信息P以及依据所读取的第一奇偶信息P来校正第一使用者数据D1。例如,当无法通过使用第一使用者数据D1-1的错误检查与校正码ECC1来校正第一使用者数据D1-1时,存储器控制电路单元104(或存储器管理电路202)会先从第一实体程序化单元602中邻近于第一使用者数据D1-1所在的第0个实体程序化单元的实体程序化单元(例如,实体抹除单元410(F)的第1个实体程序化单元)中获得第一标记M1,并由此来识别存储奇偶信息P的地址。在另一范例实施例中,倘若无法通过使用第一使用者数据D1-2的错误检查与校正码ECC2来校正第一使用者数据D1-2且无法从对应于第一使用者数据D1-2的冗余比特区的第一记录区获得第一标记值M1时,存储器控制电路单元104(或存储器管理电路202)则会从邻近于第一使用者数据D1-2所在的第1个实体程序化单元的实体程序化单元(例如,实体抹除单元410(F)的第0个实体程序化单元、第二实体程序化单元604与第三实体程序化单元606)中寻找以获得位于第三实体程序化单元606中的第二标记M2,并由此来识别存储有奇偶信息P的实体程序化单元的地址。
在本范例实施例中,可复写式非易失性存储器模块106为多层单元MLC NAND型快闪存储器模块,因此,每一存储单元可存储多个比特。具体来说,在对SLC NAND型快闪存储器模块的存储单元进行程序化时仅能执行单层的程序化,因此每一存储单元仅能存储一个比特。而MLC NAND型快闪存储器模块的实体抹除单元的程序化可分为多层。例如,以2层存储单元为例,实体程序化单元的程序化可分为2阶段。第一阶段是下实体程序化单元的写入部分,其物理特性类似于单层存储单元SLC NAND快闪存储器,在完成第一阶段之后才会程序化上实体程序化单元,其中下实体程序化单元的写入速度会快于上实体程序化单元。因此,每一实体抹除单元的实体程序化单元可区分为慢速实体程序化单元(即,上实体程序化单元)与快速实体程序化单元(即,下实体程序化单元)。
图6是根据本发明第一范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码以及用以记录奇偶信息的至少一标记写入至实体程序化单元的另一个范例示意图。
在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)也可以将第一使用者数据D1-1与D1-2、对应第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2以及错误检查与校正码ECC1-1与ECC1-2程序化至实体程序化单元之中的多个实体程序化单元中。例如,存储器控制电路单元104(或存储器管理电路202)会将第一使用者数据D1-1与D1-2、对应第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2以及对应第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1与ECC1-2仅程序化至第一实体程序化单元702中的快速实体程序化单元。因此,如图6所示,存储器控制电路单元104(或存储器管理电路202)会将第一使用者数据D1-1、管理信息S1-1以及错误检查与校正码ECC1-1程序化至实体抹除单元410(F)的第0个实体程序化单元,并且将第一使用者数据D1-2、管理信息S1-2、第一标记M1以及错误检查与校正码ECC1-2程序化至实体抹除单元410(F)的第2个实体程序化单元。此外,存储器控制电路单元104(或存储器管理电路202)会产生对应于第一使用者数据D1-1、D1-2与对应于第一使用者数据D1-1、D1-2的管理信息S1-1、S1-2的奇偶信息P,并且将此奇偶信息P写入至第二实体程序化单元704中的快速实体程序化单元(即,实体抹除单元410(F)的第4个实体程序化单元)。之后,当主机系统1000传送另一个写入指令与对应此写入指令的第二使用者数据D2给存储器存储装置100时,存储器控制电路单元104(或存储器管理电路202)会将其所产生的对应第二使用者数据D2的错误检查与校正码ECC2、对应第二使用者数据D2的管理信息S2以及一第二标记M2写入至实体抹除单元410(F)的第三实体程序化单元706中的快速实体程序化单元(即,实体抹除单元410(F)的第6个实体程序化单元)。在此,相同于图5A与图5B所示的范例,第一标记M1与第二标记M2都会指示第二实体程序化单元704中的快速实体程序化单元存储有奇偶信息P。
也就是说,在本范例实施例中,倘若无法通过使用第一使用者数据D1-1的错误检查与校正码ECC1来校正第一使用者数据D1-1时,存储器控制电路单元104(或存储器管理电路202)会先从第一实体程序化单元702中接近于第一使用者数据D1-1所在的第0个实体程序化单元的快速实体程序化单元(例如,实体抹除单元410(F)的第2个实体程序化单元)中获得第一标记M1,并由此来识别存储奇偶信息P的地址。在另一范例实施例中,倘若无法通过使用第一使用者数据D1-2的错误检查与校正码ECC1-2来校正第一使用者数据D1-2且无法从对应于第一使用者数据D1-2的冗余比特区的第一记录区获得第一标记值M1时,存储器控制电路单元104(或存储器管理电路202)则会从接近于第一使用者数据D1-2所在的第2个实体程序化单元的快速实体程序化单元(例如,实体抹除单元410(F)的第0个实体程序化单元、实体抹除单元410(F)的第4个实体程序化单元与实体抹除单元410(F)的第6个实体程序化单元)中寻找以获得位于第三实体程序化单元706的快速实体程序化单元中的第二标记M2,并由此来识别存储奇偶信息P的地址。
值得一提的是,在此范例实施例中,由于用以记录奇偶信息所属的实体程序化单元地址的实体程序化单元会分别是位于奇偶信息所属的实体程序化单元的之前与之后的实体程序化单元,因此,倘若当用以记录奇偶信息所属的实体程序化单元地址的实体程序化单元中的其中一个损坏时(即,实体抹除单元中数据比特区所记录的数据与冗余比特区所记录的标记及错误检查与校正码遗失或损坏时),存储器控制电路单元104(或存储器管理电路202)可还通过相邻于或接近于此笔所读取的数据的另一个实体程序化单元来识别出奇偶信息所属的实体程序化单元的地址。据此,在数据无法通过错误检查与校正码来校正时,通过实体程序化单元中所存储的标记可有效地识别出存储此笔数据的奇偶信息的地址并且获取此奇偶信息,由此使用所获取的奇偶信息来校正数据中的错误比特。
图7是根据本发明的第一范例实施例所示出的数据存储方法的流程图。
请参照图7,在步骤S701中,存储器控制电路单元(或存储器管理电路)会依据一第一数据产生一奇偶信息。在步骤S703中,存储器控制电路单元(或存储器管理电路)会将第一数据程序化至第一实体程序化单元。接着,在步骤S705中,存储器控制电路单元(或存储器管理电路)会将至少一标记程序化至所述第一实体程序化单元之中的冗余比特区,并且在步骤S707中,存储器控制电路单元(或存储器管理电路)将所述奇偶信息程序化至排列在所述第一实体程序化单元之后的至少一第二体程序化单元中,其中上述至少一标记会指示所述奇偶信息被程序化至所述至少一第二实体程序化单元中。
[第二范例实施例]
本发明第二范例实施例的存储器存储装置与主机系统本质上是相同于第一范例实施例的存储器存储装置与主机系统,其中差异在于第二范例实施例的存储器控制电路单元(或存储器管理电路)会建立一奇偶信息地址对应表,并且同时使用实体程序化单元与奇偶信息地址对应表来记录一个奇偶信息所属的实体程序化单元地址。以下将使用图1A、图2与图3的装置结构来描述第二范例实施例与第一范例实施例的差异部分。
图8A与图8B是根据本发明第二范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码以及用以记录奇偶信息的至少一标记写入至实体程序化单元的范例示意图。
请参照图8A与图8B,其中图8A所示的将第一使用者数据、对应于第一使用者数据的错误检查与校正码、用以记录奇偶信息的地址的第一标记以及对应于第一使用者数据及其管理信息的奇偶信息写入至实体程序化单元的方法是相同于图5A所示的方法,在此不再重复。其不同之处在于,在本范例实施例中,在将第一使用者数据D1-1与D1-2以及对应第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1与ECC1-2程序化至实体程序化单元之中的第一实体程序化单元602,并且将对应第一使用者数据D1-1与D1-2与第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2的奇偶信息P程序化至实体程序化单元之中的第二实体程序化单元604的操作中,存储器控制电路单元104(或存储器管理电路202)会建立一奇偶信息地址对应表800(如图8B所示)。例如,奇偶信息地址对应表800会被存储在缓冲存储器208或随机存取存储器1104中。特别是,存储器控制电路单元104(或存储器管理电路202)会将第三标记M3记录在奇偶信息地址对应表800中,其中第三标记M3也会指示第二实体程序化单元604存储有奇偶信息P。
在本范例实施例中,在图8A中所示将第一使用者数据D1-1与D1-2以及对应第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1与ECC1-2程序化至实体程序化单元之中的第一实体程序化单元602,并且将对应第一使用者数据D1-1与D1-2与其管理信息S1-1与S1-2的奇偶信息P程序化至实体程序化单元之中的第二实体程序化单元604的操作之后,主机系统1000又再传送另一个写入指令与对应此写入指令的第二使用者数据D2给存储器存储装置100。此时,倘若在存储器控制电路单元104(或存储器管理电路202)将此第二使用者数据、对应此第二使用者数据的管理信息、指示奇偶信息P位于第二实体程序化单元604的第三标记M3以及对应此第二使用者数据的错误检查与校正码写入第三实体程序化单元606之前,主机系统1000或存储器存储装置100发生断电时,会造成用以记录奇偶信息P所在地址的第三标记M3无法被写入第三实体程序化单元606,或是造成第一实体程序化单元602中的数据遗失或损坏。
在上述排列在第二实体程序化单元604之后的第三实体程序化单元606为空实体单元或因断电所造成的第一实体程序化单元602中的数据遗失或损坏的情况下,并且当存储器控制电路单元104(或存储器管理电路202)接收到主机系统1000所传送的欲读取上述第一使用者数据D1-1与D1-2的读取指令时,存储器管理电路202(或错误检查与校正电路212)会依据所读取的错误检查与校正码对所读取的第一使用者数据D1-1与D1-2进行上述的错误检查与校正程序。倘若无法通过使用第一使用者数据D1-1与D1-2的错误检查与校正码(即,ECC1-1、ECC1-2)来校正第一使用者数据D1-1与D1-2时,存储器控制电路单元104(或存储器管理电路202)会还用以根据上述的至少一标记来获得记录奇偶信息P的第二实体程序化单元604的地址,并从第二实体程序化单元604中读取此奇偶信息P以及依据所读取的奇偶信息P来校正第一使用者数据D1-1与D1-2。举例而言,存储器管理电路202会先判断所读取的实体抹除单元410(F)中对应于第一使用者数据D1-2的冗余比特区的第一记录区是否具有第一标记M1,倘若此第一标记M1存在并且可通过其得知奇偶信息P所在的地址,则存储器控制电路单元104(或存储器管理电路202)会根据此奇偶信息P来校正第一使用者数据D1-1或D1-2。反之,倘若第一标记M1不存在或是记录此第一标记M1的冗余比特区损坏,则存储器管理电路202会读取上述奇偶信息地址对应表800并且根据奇偶信息地址对应表800中的第三标记M3获得奇偶信息P所在的实体程序化单元的地址。
[第三范例实施例]
本发明第三范例实施例的存储器存储装置与主机系统本质上是相同于第一范例实施例的存储器存储装置与主机系统,其中差异在于第三范例实施例的存储器控制电路单元(或存储器管理电路)会根据每一笔写入数据所需写入的实体程序化单元的个数将标记值记录在此些实体程序化单元中,并且通过此些标记值来获得奇偶信息所属的实体程序化单元地址。以下将使用图1A、图2与图3的装置结构来描述第三范例实施例与第一范例实施例的差异部分。
相同于第一范例实施例,当主机系统1000传送写入指令与对应此写入指令的第一使用者数据D1给存储器存储装置100时,存储器控制电路单元104(或存储器管理电路202)会判断第一使用者数据D1的大小,并且根据第一使用者数据D1的大小获得写入此第一使用者数据D1所需的实体程序化单元的数目。在此,假设需四个实体程序化单元来写入此第一使用者数据D1。在此范例中,存储器控制电路单元104(或存储器管理电路202)会产生对应第一使用者数据D1-1~D1-4的错误检查与校正码ECC1-1~ECC1-4以及对应第一使用者数据D1-1~D1-4的管理信息S1-1~S1-4。特别是,存储器控制电路单元104(或存储器管理电路202)在接收到上述第一使用者数据D1时,并不会立刻将此第一使用者数据D1写入至实体抹除单元中。举例而言,存储器控制电路单元104(或存储器管理电路202)会继续等待主机系统1000传送其他写入指令与对应此些指令的第二使用者数据D2与第三使用者数据D3给存储器存储装置100,并且计数此第二使用者数据D2与第三使用者数据D3所需写入的实体程序化单元的个数。在此假设本范例实施例中的存储器控制电路单元104(或存储器管理电路202)会在写入每三个实体程序化单元后,对此三个实体程序化单元中的数据产生一个奇偶信息。在此范例实施例中,存储器控制电路单元104(或存储器管理电路202)会判断写入第二使用者数据D2与第三使用者数据D3所需的实体程序化单元的个数都为两个,并且存储器控制电路单元104(或存储器管理电路202)还会根据每一笔数据所需写入的实体程序化单元的个数以及每一笔数据被接收的先后顺序,将欲写入每一实体程序化单元的此些数据如图9中排序900所示的顺序来排序。
在另一范例实施例中,也可以在写入三个以上或三个以下的实体程序化单元后,对此三个以上或三个以下的实体程序化单元中的数据产生一个奇偶信息,本发明不加以限制。此外,存储器控制电路单元104(或存储器管理电路202)等待主机系统1000所传送的其他写入指令与对应此些指令的数据笔数也不限于三笔。
图9是根据本发明第三范例实施例所示出的根据写入数据欲写入的每一实体程序化单元的个数将其排列与记录标记值的范例,且图10是根据本发明第三范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码与用以记录奇偶信息的至少一标记写入至实体程序化单元的另一范例示意图。
请参照图9,如上所述,由于存储器控制电路单元104(或存储器管理电路202)会在写入每三个实体程序化单元后,对每三个实体程序化单元中的数据产生一个奇偶信息,因此存储器控制电路单元104(或存储器管理电路202)会进一步地根据排序900为欲写入每一实体程序化单元的此些数据记录一标记值。具体而言,第一使用者数据D1-1的标记值会被记录为3,第一使用者数据D1-2的标记值会被记录为2,第一使用者数据D1-3的标记值会被记录为1,第一使用者数据D1-4的标记值会被记录为3,以及第二使用者数据D2-1的标记值会被记录为2且第二使用者数据D2-2的标记值会被记录为1。特别是,其余的第三使用者数据D3所需写入的实体程序化单元仅有两个,因此,存储器管理电路202会将第三使用者数据D3-1的标记值会被记录为2并且将第三使用者数据D3-2的标记值会被记录为1。
之后,存储器控制电路单元104(或存储器管理电路202)会自闲置区504提取实体抹除单元410(F+1)作为替换实体抹除单元,并且根据图9中所示的排序,将此些数据、对应此些数据的管理信息,以及对应此些数据的多个错误检查与校正码依序地写入至实体抹除单元410(F+1)。
请参照图10,存储器控制电路单元104(或存储器管理电路202)会将第一使用者数据D1-1~D1-3与对应此些第一使用者数据的管理信息S1-1~S1-3,以及对应此些第一使用者数据的多个错误检查与校正码ECC1-1~ECC1-3依序地写入至实体抹除单元410(F+1)的第0个至第2个实体程序化单元中,其中在存储器控制电路单元104(或存储器管理电路202)将对应第一使用者数据D1-1~D1-3的管理信息S1-1~S1-3写入实体抹除单元410(F+1)中第0个至第2个实体程序化单元的冗余比特区中第一记录区的同时,存储器控制电路单元104(或存储器管理电路202)还会根据先前为第一使用者数据D1-1~D1-3所记录的标记值,在对应于第一使用者数据D1-1~D1-3的实体程序化单元的冗余比特区的第一记录区中记录此些标记值。此外,存储器控制电路单元104(或存储器管理电路202)会产生对应于第一使用者数据D1-1~D1-3与对应于第一使用者数据D1-1~D1-3的管理信息S1-1~S1-3的第一奇偶信息P1。举例来说,在此假设第一使用者数据D1-1~D1-3所写入的实体抹除单元410(F+1)中第0个至第2个实体程序化单元为第一实体程序化单元802,则存储器管理电路202会将应于第一使用者数据D1-1~D1-3及其管理信息S1-1~S1-3的奇偶信息P1写入至实体抹除单元410(F+1)中第3个实体程序化单元,在此假设实体抹除单元410(F+1)中的第3个实体程序化单元为第二实体程序化单元804,即,存储器控制电路单元104(或存储器管理电路202)会将对应于第一使用者数据D1-1~D1-3及其管理信息S1-1~S1-3的第一奇偶信息P1写入排列在第一实体程序化单元802之中的最后一个实体程序化单元(即,实体抹除单元410(F+1)中的第2个实体程序化单元)之后的第二实体程序化单元804。并且,以此类推,存储器控制电路单元104(或存储器管理电路202)会根据图9中的排序900接续地以第一使用者数据D1-4、第二使用者数据D2-1与第二使用者数据D2-2为一组,将对应此欲写入三个实体程序化单元中的数据的三个管理信息、三个错误检查与校正码以及奇偶信息分别且依序地写入实体抹除单元410(F+1)中的第三实体程序化单元806与第四实体程序化单元808中。特别是,由于其余的第三使用者数据D3欲写入的实体程序化单元的个数为2,因此存储器控制电路单元104(或存储器管理电路202)仅会以第三使用者数据D3-1与第三使用者数据D3-2为一组,并且将对应此欲写入两个实体程序化单元中的数据的两个管理信息、两个错误检查与校正码以及奇偶信息分别且依序地写入实体抹除单元410(F+1)中的第五实体程序化单元810与第六实体程序化单元812中。
具体而言,分别位于实体抹除单元410(F+1)的第一实体程序化单元802、第三实体程序化单元806与第五实体程序化单元810中的第一标记值为1,第二标记值为2以及第三标记值为3。请再参照图10,第一标记值会被记录在第一实体程序化单元802之中的最后一个实体程序化单元(即,实体抹除单元410(F+1)中的第2个实体程序化单元)中冗余比特区的第一记录区,第二标记值会被记录在第一实体程序化单元802之中相邻且排列在最后一个实体程序化单元之前的实体程序化单元(即,实体抹除单元410(F+1)中的第1个实体程序化单元)的冗余比特区中,以及第三标记值会被记录在第一实体程序化单元802之中相邻且排列在记录第二标记值的实体程序化单元之前的实体程序化单元(即,实体抹除单元410(F+1)中的第0个实体程序化单元)的冗余比特区中。并且,以此类推,第三实体程序化单元806中的标记值会以图10中所示的排列方式排序。值得一提的是,第三使用者数据D3仅须写入两个实体程序化单元,因此,第五实体程序化单元810中仅会有第一标记值与第二标记值。
之后,倘若存储器控制电路单元104(或存储器管理电路202)接收到主机系统1000所传送的欲读取上述第一使用者数据D1的读取指令时,存储器管理电路202(或错误检查与校正电路212)会依据所读取的错误检查与校正码对所读取的第一使用者数据D1进行上述的错误检查与校正程序。倘若无法通过使用第一使用者数据D1-1~D1-4的错误检查与校正码(即,ECC1-1~ECC1-4)来校正第一使用者数据D1-1~D1-4时,存储器控制电路单元104(或存储器管理电路202)会根据上述的至少一个标记值来获得记录第一奇偶信息P1与第二奇偶信息P2的实体程序化单元的地址。在此假设当无法通过使用第一使用者数据D1-2的错误检查与校正码ECC1-2来校正第一使用者数据D1-2且无法从对应于第一使用者数据D1-2的冗余比特区的第一记录区获得第二标记值时,存储器控制电路单元104(或存储器管理电路202)会从第一实体程序化单元802中邻近于第一使用者数据D1-2所在的第1个实体程序化单元的实体程序化单元(例如,实体抹除单元410(F+1)的第0个或第2个实体程序化单元)中获得至少一个标记值。在此假设存储器控制电路单元104(或存储器管理电路202)是从第一实体程序化单元802中的第2个实体程序化单元获得其冗余比特区的标记值为1,则存储器控制电路单元104(或存储器管理电路202)会判断对应于第一使用者数据D1-1~D1-3的第一奇偶信息P1所在的地址即为相邻于第一实体程序化单元802之中的最后一个实体程序化单元的实体程序化单元(即,第二实体程序化单元804),并且存储器控制电路单元104(或存储器管理电路202)会读取此第一奇偶信息P1以及依据所读取的第一奇偶信息P1来校正第一使用者数据D1。此外,假设存储器控制电路单元104(或存储器管理电路202)也可以从第一实体程序化单元802中的第0个实体程序化单元获得其冗余比特区的标记值为3,则存储器控制电路单元104(或存储器管理电路202)会判断对应于第一使用者数据D1-1~D1-3的第一奇偶信息P1所在的地址即为距离本身(即,第一实体程序化单元802中的第0个实体程序化单元)3个的实体程序化单元的第二实体程序化单元804。接着,存储器控制电路单元104(或存储器管理电路202)会读取此第一奇偶信息P1以及依据所读取的第一奇偶信息P1来校正第一使用者数据D1。据此,倘若对应每一实体化程序单元中的数据无法通过各自的错误检查与校正码而被校正时,或是每一实体化程序单元中的数据所对应的用以记录标记值的区域部分损坏时,存储器控制电路单元104(或存储器管理电路202)可根据相邻的实体程序化单元来获得用以指示奇偶信息的地址的标记值,由此也可以有效的预防所读取的数据发生无法校正的情况。
[第四范例实施例]
本发明第四范例实施例的存储器存储装置与主机系统本质上是相同于第一范例实施例的存储器存储装置与主机系统,其中差异在于第四范例实施例的存储器控制电路单元(或存储器管理电路)会建立一奇偶信息地址对应表,并且使用此奇偶信息地址对应表来记录每一奇偶信息所属的实体程序化单元地址。以下将使用图1A、图2与图3的装置结构来描述第四范例实施例与第一范例实施例的差异部分。
图11是根据本发明第四范例实施例所示出的将写入数据、对应于写入数据的错误检查与校正码程序化至实体程序化单元以及将用以记录奇偶信息的至少一标记记录在奇偶信息地址对应表的范例示意图。
请参照图11,图11所示的将第一使用者数据、对应于第一使用者数据的错误检查与校正码以及对应于第一使用者数据的奇偶信息写入至实体程序化单元的方法是相同于第一范例实施例中的图5A与图5B所示的方法,在此不再重复。其不同之处在于,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会先建立一奇偶信息地址对应表110,并且奇偶信息地址对应表110会被存储在缓冲存储器208或随机存取存储器1104中。并且在存储器控制电路单元104(或存储器管理电路202)将第一使用者数据D1-1与D1-2、对应第一使用者数据D1-1与D1-2的管理信息S1-1与S1-2以及对应第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1与ECC1-2程序化至实体程序化单元之中的第一实体程序化单元602,以及将对应第一使用者数据D1-1与D1-2及其管理信息S1-1与S1-2的第一奇偶信息P1程序化至实体程序化单元之中的第二实体程序化单元604的操作中,存储器控制电路单元104(或存储器管理电路202)不会将用以记录第一奇偶信息P1的地址的第一标记M1程序化至第一实体程序化单元602中的至少其中一个实体程序化单元,而是将第一标记M1记录在先前所建立的奇偶信息地址对应表110。在另一范例实施例中,倘若主机系统1000传送一个写入指令与对应此写入指令的第二使用者数据D2给存储器存储装置100时,存储器控制电路单元104(或存储器管理电路202)会将此第二使用者数据D2与其所产生的对应此第二使用者数据D2的错误检查与校正码ECC2以及对应第二使用者数据D2的管理信息S2写入至实体抹除单元410(F)的第三实体程序化单元606中,特别是,存储器控制电路单元104(或存储器管理电路202)可以另外地提取一个实体抹除单元410(F+1),并将对应第二使用者数据D2及其管理信息S2的第二奇偶信息P2程序化至实体抹除单元410(F+1)中的第一实体程序化单元802,此外,存储器控制电路单元104(或存储器管理电路202)会将用以记录第二奇偶信息P2的地址的第二标记M2同样地记录在奇偶信息地址对应表110中。值得一提的是,在本范例实施例中,并不加以限制奇偶信息所存放的实体抹除单元,即,存储器控制电路单元104(或存储器管理电路202)所提取的用以记录奇偶信息的实体抹除单元也可以是不同于对应此奇偶信息的写入数据所在的实体抹除单元所对应的存储器晶粒。换言之,当无法通过使用第一使用者数据D1-1与D1-2的错误检查与校正码ECC1-1、ECC1-2来校正第一使用者数据D1-1或D1-2时,存储器控制电路单元104(或存储器管理电路202)即可根据奇偶信息地址对应表110获得记录第一奇偶信息P1的地址的第一标记M1,或是当无法通过使用第二使用者数据D2的错误检查与校正码ECC2来校正第二使用者数据D2时,存储器控制电路单元104(或存储器管理电路202)即可根据奇偶信息地址对应表110获得记录第二奇偶信息P2的地址的第二标记M2,据此,存储器控制电路单元104(或存储器管理电路202)可根据奇偶信息地址对应表110快速地获得奇偶信息是属于哪一个实体程序化单元。
图12是根据本发明的第四范例实施例所示出的数据存储方法的流程图。
请参照图12,在步骤S1201中,存储器控制电路单元(或存储器管理电路)会建立一奇偶信息地址对应表。在步骤S1203中,存储器控制电路单元(或存储器管理电路)会依据第一数据产生一奇偶信息。接着,在步骤S1205中,存储器控制电路单元(或存储器管理电路)会将第一数据程序化至第一实体程序化单元的数据比特区。在步骤S1207中,存储器控制电路单元(或存储器管理电路)将所述奇偶信息程序化至至少一第二实体程序化单元中。并且在步骤S1209中,存储器控制电路单元(或存储器管理电路)将至少一标记记录于所述奇偶信息地址对应表,其中所述至少一标记会指示所述奇偶信息被程序化至所述第二实体程序化单元中。
综上所述,本发明范例实施例的数据存储方法、存储器控制电路单元与存储器存储装置会在写入数据的同时,将对应此些写入数据的奇偶信息的地址记录在至少一个标记中并且将此至少一标记写入所接收的数据所欲写入的至少一实体程序化单元,据此,当从可复写式非易失性存储器模块中读取的数据比特存在错误时,可以根据所述至少一标记,快速地获得奇偶信息是属于哪一个实体程序化单元,进而有效地增加错误校正的更正能力与效率。此外,本发明范例实施例的用以校正读取数据的奇偶信息所写入的实体程序化单元是排列在所写入之数据所在的实体程序化单元之后,基此,通过本发明范例实施例的数据存储方法不需要将对应于多笔写入数据的奇偶信息放置在系统中的固定的存储器晶粒,以有效地避免存储器存储装置中存储空间的浪费。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种数据存储方法,其特征在于,用于可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元,其中每一该些实体程序化单元包括数据比特区与冗余比特区,该数据存储方法包括:
依据第一数据产生奇偶信息;
将该第一数据程序化至该些实体程序化单元之中的第一实体程序化单元中;以及
将该奇偶信息程序化至该些实体程序化单元之中的至少一第二实体程序化单元中,其中该至少一第二实体程序化单元是排列在该第一实体程序化单元之后;
其中在上述将该第一数据程序化至该些实体程序化单元之中的该第一实体程序化单元的步骤包括:将至少一标记程序化至该第一实体程序化单元之中的冗余比特区,其中该至少一标记指示该奇偶信息被程序化至该至少一第二实体程序化单元中。
2.根据权利要求1所述的数据存储方法,其特征在于,该第一数据包括使用者数据与对应该使用者数据的管理信息;
其中该使用者数据被程序化至该第一实体程序化单元之中的数据比特区,其中对应该使用者数据的该管理信息被程序化至该第一实体程序化单元之中的冗余比特区。
3.根据权利要求1所述的数据存储方法,其特征在于,该第一数据包括使用者数据、对应该使用者数据的管理信息以及对应该使用者数据的错误检查与校正码;
其中该错误检查与校正码是根据该使用者数据所产生的;
其中该使用者数据被程序化至该第一实体程序化单元之中的数据比特区,其中对应该使用者数据的该管理信息被程序化至该第一实体程序化单元之中的冗余比特区,其中对应该使用者数据的该错误检查与校正码被程序化至该第一实体程序化单元之中的冗余比特区。
4.根据权利要求2或3所述的数据存储方法,其特征在于,将该至少一标记程序化至该第一实体程序化单元之中的冗余比特区的步骤包括:
将第一标记程序化至该第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区,其中该至少一第二实体程序化单元是排列在该第一实体程序化单元之中的该最后一个实体程序化单元之后,其中该第一标记指示该至少一第二实体程序化单元存储该奇偶信息;以及
将第二标记程序化至该些实体程序化单元之中的至少一第三实体程序化单元的冗余比特区,其中该至少一第三实体程序化单元是排列在该至少一第二实体程序化单元之后,其中该第二标记指示该至少一第二实体程序化单元存储该奇偶信息。
5.根据权利要求4所述的数据存储方法,其特征在于,将该至少一标记程序化至该第一实体程序化单元之中的冗余比特区的步骤还包括:
建立奇偶信息地址对应表;以及
将第三标记记录在该奇偶信息地址对应表,其中该第三标记指示该至少一第二实体程序化单元存储该奇偶信息。
6.根据权利要求1所述的数据存储方法,其特征在于,将该至少一标记程序化至该第一实体程序化单元之中的冗余比特区的步骤包括:
计数该第一实体程序化单元的个数;以及
根据该第一实体程序化单元的个数,在每一该第一实体程序化单元的冗余比特区中记录一标记值,其中记录在该第一实体程序化单元中的该标记值依据该第一实体程序化单元的排列依序地递减。
7.根据权利要求6所述的数据存储方法,其特征在于,该标记值之中的第一标记值为1,且该第一标记值被记录在该第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区中,且该至少一第二实体程序化单元是排列在该第一实体程序化单元之中的该最后一个实体程序化单元之后;
其中该标记值之中的第二标记值为2,且该第二标记值被记录在该些第一实体程序化单元之中相邻且排列在该最后一个实体程序化单元之前的实体程序化单元的冗余比特区中;
其中该标记值之中的第三标记值为3,且该第三标记值被记录在该些第一实体程序化单元之中相邻且排列在记录该第二标记值的实体程序化单元之前的实体程序化单元的冗余比特区中。
8.根据权利要求1所述的数据存储方法,其特征在于,该第一数据包括第二数据以及错误检查与校正码,该数据存储方法还包括:
当无法通过使用该错误检查与校正码来校正该第二数据时,根据该至少一标记获得记录该奇偶信息的该至少一第二实体程序化单元的地址,从该至少一第二实体程序化单元中读取该奇偶信息以及依据所读取的该奇偶信息来校正该第二数据。
9.一种数据存储方法,其特征在于,用于可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元,其中每一该些实体程序化单元包括数据比特区与冗余比特区,该数据存储方法包括:
建立奇偶信息地址对应表;
依据第一数据产生奇偶信息;
将该第一数据程序化至该些实体程序化单元之中的第一实体程序化单元中;
将该奇偶信息程序化至该些实体程序化单元之中的至少一第二实体程序化单元中;以及
将至少一标记记录在该奇偶信息地址对应表,其中该至少一标记指示该奇偶信息被程序化至该至少一第二实体程序化单元中。
10.一种存储器控制电路单元,其特征在于,用于控制可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元,其中每一该些实体程序化单元包括数据比特区与冗余比特区,该存储器控制电路单元包括:
主机接口,用以耦接至主机系统;
存储器接口,用以耦接至该可复写式非易失性存储器模块;以及
存储器管理电路,耦接至该主机接口与该存储器接口;
其中该存储器管理电路用以依据第一数据产生奇偶信息;
其中该存储器管理电路还用以将该第一数据程序化至该些实体程序化单元之中的第一实体程序化单元中;
其中该存储器管理电路还用以将该奇偶信息程序化至该些实体程序化单元之中的至少一第二实体程序化单元中,其中该至少一第二实体程序化单元是排列在该第一实体程序化单元之后;
其中在上述将该第一数据程序化至该些实体程序化单元之中的该第一实体程序化单元的操作中,该存储器管理电路将至少一标记程序化至该第一实体程序化单元之中的冗余比特区,其中该至少一标记指示该奇偶信息被程序化至该至少一第二实体程序化单元中。
11.根据权利要求10所述的存储器控制电路单元,其特征在于,该第一数据包括使用者数据与对应该使用者数据的管理信息;
其中该使用者数据被程序化至该第一实体程序化单元之中的数据比特区,其中对应该使用者数据的该管理信息被程序化至该些第一实体程序化单元之中的冗余比特区。
12.根据权利要求10所述的存储器控制电路单元,其特征在于,该第一数据包括一使用者数据、对应该使用者数据的一管理信息以及对应该使用者数据的一错误检查与校正码;
其中该错误检查与校正码是根据该使用者数据所产生的;
其中该使用者数据被程序化至该第一实体程序化单元之中的数据比特区,其中对应该使用者数据的该管理信息被程序化至该第一实体程序化单元之中的冗余比特区,其中对应该使用者数据的该错误检查与校正码被程序化至该第一实体程序化单元之中的冗余比特区。
13.根据权利要求11或12所述的存储器控制电路单元,其特征在于,将该至少一标记程序化至该些第一实体程序化单元之中的冗余比特区的操作中,该存储器管理电路将第一标记程序化至该第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区,其中该至少一第二实体程序化单元是排列在该第一实体程序化单元之中的该最后一个实体程序化单元之后,其中该第一标记指示该至少一第二实体程序化单元存储该奇偶信息;
其中该存储器管理电路还用以将第二标记程序化至该些实体程序化单元之中的至少一第三实体程序化单元的冗余比特区,其中该至少一第三实体程序化单元是排列在该至少一第二实体程序化单元之后,并且该第二标记指示该至少一第二实体程序化单元存储该奇偶信息。
14.一种存储器存储装置,其特征在于,包括:
连接接口单元,用以耦接至主机系统;
可复写式非易失性存储器模块,包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元,其中每一该些实体程序化单元包括数据比特区与冗余比特区;以及
存储器控制电路单元,耦接至该连接接口单元与该可复写式非易失性存储器模块;
其中该存储器控制电路单元用以依据第一数据产生奇偶信息;
其中该存储器控制电路单元还用以将该第一数据程序化至该些实体程序化单元之中的第一实体程序化单元中;
其中该存储器控制电路单元还用以将该奇偶信息程序化至该些实体程序化单元之中的至少一第二实体程序化单元中,其中该至少一第二实体程序化单元是排列在该第一实体程序化单元之后;
其中在上述将该第一数据程序化至该些实体程序化单元之中的该第一实体程序化单元的操作中,该存储器控制电路单元将至少一标记程序化至该第一实体程序化单元之中的冗余比特区,其中该至少一标记指示该奇偶信息被程序化至该至少一第二实体程序化单元中。
15.根据权利要求14所述的存储器存储装置,其特征在于,每一该第一数据包括使用者数据与对应该使用者数据的管理信息;
其中该使用者数据被程序化至该第一实体程序化单元之中的数据比特区,其中对应该使用者数据的该管理信息被程序化至该些第一实体程序化单元之中的冗余比特区。
16.根据权利要求14所述的存储器存储装置,其特征在于,该第一数据包括使用者数据、对应该使用者数据的管理信息以及对应该使用者数据的错误检查与校正码;
其中该错误检查与校正码是根据该使用者数据所产生的;
其中该使用者数据被程序化至该第一实体程序化单元之中的数据比特区,其中对应该使用者数据的该管理信息被程序化至该第一实体程序化单元之中的冗余比特区,其中对应该使用者数据的该错误检查与校正码被程序化至该第一实体程序化单元之中的冗余比特区。
17.根据权利要求15或16所述的存储器存储装置,其特征在于,将该至少一标记程序化至该些第一实体程序化单元之中的冗余比特区的操作中,该存储器控制电路单元将第一标记程序化至该第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区,其中该至少一第二实体程序化单元是排列在该第一实体程序化单元之中的该最后一个实体程序化单元之后,其中该第一标记指示该至少一第二实体程序化单元存储该奇偶信息;
其中该存储器控制电路单元还用以将第二标记程序化至该些实体程序化单元之中的至少一第三实体程序化单元的冗余比特区,其中该至少一第三实体程序化单元是排列在该至少一第二实体程序化单元之后,其中该第二标记指示该至少一第二实体程序化单元存储该奇偶信息。
18.根据权利要求17所述的存储器存储装置,其特征在于,将该至少一标记程序化至该第一实体程序化单元之中的冗余比特区的操作中,该存储器控制电路单元建立奇偶信息地址对应表并且将第三标记记录在该奇偶信息地址对应表,其中该第三标记指示该至少一第二实体程序化单元存储该奇偶信息。
19.根据权利要求14所述的存储器存储装置,其特征在于,将该至少一标记程序化至该些第一实体程序化单元之中的冗余比特区的操作中,该存储器控制电路单元计数该第一实体程序化单元的个数,并且根据该第一实体程序化单元的个数,在每一该第一实体程序化单元的冗余比特区中记录一标记值,其中记录在该第一实体程序化单元中的该标记值依据该第一实体程序化单元的排列依序地递减。
20.根据权利要求19所述的存储器存储装置,其特征在于,该标记值之中的第一标记值为1,且该第一标记值被记录在该第一实体程序化单元之中的最后一个实体程序化单元的冗余比特区中,且该至少一第二实体程序化单元是排列在该第一实体程序化单元之中的该最后一个实体程序化单元之后;
其中该标记值之中的第二标记值为2,且该第二标记值被记录在该些第一实体程序化单元之中相邻且排列在该最后一个实体程序化单元之前的实体程序化单元的冗余比特区中;
其中该些标记值之中的第三标记值为3,且该第三标记值被记录在该些第一实体程序化单元之中相邻且排列在记录该第二标记值的实体程序化单元之前的实体程序化单元的冗余比特区中。
21.根据权利要求14所述的存储器存储装置,其特征在于,该第一数据包括第二数据以及错误检查与校正码,其中当无法通过使用该错误检查与校正码来校正该第二数据时,该存储器控制电路单元还用以根据该至少一标记获得记录该奇偶信息的该至少一第二实体程序化单元的地址,从该至少一第二实体程序化单元中读取该奇偶信息以及依据所读取的该奇偶信息来校正该第二数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394322.9A CN105335299B (zh) | 2014-08-12 | 2014-08-12 | 数据存储方法、存储器控制电路单元及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394322.9A CN105335299B (zh) | 2014-08-12 | 2014-08-12 | 数据存储方法、存储器控制电路单元及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335299A CN105335299A (zh) | 2016-02-17 |
CN105335299B true CN105335299B (zh) | 2018-10-02 |
Family
ID=55285850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410394322.9A Active CN105335299B (zh) | 2014-08-12 | 2014-08-12 | 数据存储方法、存储器控制电路单元及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335299B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473308A (zh) * | 2006-05-18 | 2009-07-01 | 矽玛特公司 | 非易失性存储器纠错系统和方法 |
CN102498472A (zh) * | 2009-09-16 | 2012-06-13 | 国际商业机器公司 | 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 |
CN103827833A (zh) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | 存储数据的系统和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010152542A (ja) * | 2008-12-24 | 2010-07-08 | Toshiba Corp | メモリシステム |
TWI383399B (zh) * | 2009-03-03 | 2013-01-21 | Wistron Corp | 嵌入式電子裝置及資料儲存方法 |
US8321775B2 (en) * | 2009-04-21 | 2012-11-27 | Micron Technology, Inc. | Non-volatile memory with extended error correction protection |
US8316175B2 (en) * | 2009-11-03 | 2012-11-20 | Inphi Corporation | High throughput flash memory system |
TWI447739B (zh) * | 2010-03-22 | 2014-08-01 | Phison Electronics Corp | 錯誤校正方法、記憶體控制器與儲存系統 |
US8458568B2 (en) * | 2010-09-24 | 2013-06-04 | International Business Machines Corporation | Systems and methods for memory devices |
TWI475385B (zh) * | 2012-03-14 | 2015-03-01 | Phison Electronics Corp | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
-
2014
- 2014-08-12 CN CN201410394322.9A patent/CN105335299B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473308A (zh) * | 2006-05-18 | 2009-07-01 | 矽玛特公司 | 非易失性存储器纠错系统和方法 |
CN102498472A (zh) * | 2009-09-16 | 2012-06-13 | 国际商业机器公司 | 以从raid控制器接收的数据和奇偶性的使用信息为基础的固态盘的损耗均衡 |
CN103827833A (zh) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | 存储数据的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105335299A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201539455A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104866429B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN103514096B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN105320464B (zh) | 防止读取干扰的方法、存储器控制电路单元与存储装置 | |
TW202009942A (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201603031A (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US8966344B2 (en) | Data protecting method, memory controller and memory storage device | |
TWI725416B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW201606503A (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN104252317B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN104252600B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
TWI709850B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104731710A (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
TWI512750B (zh) | 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN105573661B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN105335299B (zh) | 数据存储方法、存储器控制电路单元及存储器存储装置 | |
CN105573662A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
TW202109542A (zh) | 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI738390B (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 |