CN102623052B - 用于非易失性存储器的数据写入方法与系统及控制器 - Google Patents
用于非易失性存储器的数据写入方法与系统及控制器 Download PDFInfo
- Publication number
- CN102623052B CN102623052B CN201110034686.2A CN201110034686A CN102623052B CN 102623052 B CN102623052 B CN 102623052B CN 201110034686 A CN201110034686 A CN 201110034686A CN 102623052 B CN102623052 B CN 102623052B
- Authority
- CN
- China
- Prior art keywords
- physical
- data
- sector
- sectors
- writing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims description 99
- 238000009826 distribution Methods 0.000 claims description 44
- 238000012937 correction Methods 0.000 claims description 40
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000005055 memory storage Effects 0.000 description 34
- 238000013507 mapping Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Abstract
本发明提供一种用于可复写式非易失性存储器模组数据写入方法与系统及存储器控制器,其中此可复写式非易失性存储器模组具有多个实体写入单元,并且每一实体写入单元具有多个实体写入区段页面。本数据写入方法包括识别每一实体写入单元的实体写入区段之中的至少一不使用区段;以及将多个区段数据写入至此些实体写入单元之中,其中每一实体写入单元之中的不使用区段不会被用来写入此些区段数据。基此,本方法可有效地利用实体写入单元中的正常实体写入区段。
Description
技术领域
本发明涉及一种数据写入方法,尤其涉及一种能够重新使用具大量坏实体区块的非易失性存储器模组的数据写入方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于作为电子产品的储存媒体。固态硬盘(Solid State Drive,SSD)就是一种以NAND型快闪存储器模组作为储存媒体的储存装置。由于快速存储器体积小容量大,所以已广泛用于个人重要数据的储存。因此,近年快速存储器产业成为电子产业中相当热门的一环。
一般来说,在可复写式非易失性存储器储存装置中,可复写式非易失性存储器模组的实体区块会由存储器控制器逻辑地分组为数据区(data area)、闲置区(free area)、系统区(system area)与取代区(replacement area)。
归类为数据区的实体区块中会储存由写入指令所写入的有效数据,而闲置区中的实体区块是用以在执行写入指令时替换数据区中的实体区块。具体来说,当可复写式非易失性存储器储存装置接受到主机系统的写入指令而欲更新数据区的实体区块上的数据时,可复写式非易失性存储器储存装置会从闲置区中提取实体区块并且将在数据区中欲更新的实体区块中的有效旧数据与欲写入的新数据写入至从闲置区中提取的实体区块,将已写入新数据的实体区块关联为数据区,并且将原本数据区的实体区块进行抹除并关联为闲置区。为了能够让主机系统能够顺利地存取以轮替方式储存数据的实体区块,可复写式非易失性存储器储存装置会配置逻辑扇区以供主机系统进行存取,其中逻辑扇区会分组为多个逻辑页面并且逻辑页面会被分组为多个逻辑区块。特别是,可复写式非易失性存储器储存装置会建立逻辑区块-实体区块对映表(logicalblock-physical block mapping table),并且在此表中记录与更新逻辑区块与数据区的实体区块之间的对映关系来反映实体区块的轮替。所以主机系统仅需要针对所提供逻辑扇区进行存取而可复写式非易失性存储器储存装置会依据逻辑区块-实体区块对映表来对所对映的实体区块进行读取或写入数据。
系统区的实体区块是用以储存可复写式非易失性存储器储存装置的相关重要信息,而取代区的实体区块是用以取代系统区、数据区或闲置区中已损坏的实体区块(即,坏实体区块)。具体来说,在目前的区块管理技术中,当写入至一个实体区块内的一个实体页面或一个实体扇区的数据存在无法藉由错误检查与校正程序校正的错误位元时,此实体区块会被标记为坏实体区块,并且存储器控制器会从取代区中提取一个实体区块中来取代此坏实体区块。并且,当可复写式非易失性存储器模组中正常的实体区块的不足够来执行以上述轮替方式的写入时,可复写式非易失性存储器储存装置将无法被用来写入数据。
由于制程上的限制,可复写式非易失性存储器模组的实体区块中会有部分实体扇区因生产瑕疵而无法正常储存数据,由此被识别为坏实体区块而不再使用。特别是,当坏实体区块的数目过多而造成可复写式非易失性存储器储存装置无法运作时,此可复写式非易失性存储器模组将被判定为不良品,而无法被使用。然而,事实上,在此些被判定为坏实体区块中仍有许多正常的储存空间可用于储存数据。基此,如果能够有效地使用此些具缺陷的实体区块,将可使原本在制造过程中被视为不良品的可复写式非易失性存储器模组重新被使用。
发明内容
本发明提供一种数据写入方法与系统及存储器控制器,其能够有效地使用实体区块中的正常储存空间。
本发明实施例提出一种数据写入方法,用于一可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有数据区及备用区,数据区用以储存数据,备用区用以写入数据并与数据区替换,其中备用区具有多个实体写入单元并且每一实体写入单元包括一数据位元区及一冗余位元区,数据位元区包含多个实体写入区段。本数据写入方法包括:识别每一实体写入单元的实体写入区段之中的至少一实体写入区段为一不使用区段;以及将多笔区段数据写入至此些实体写入单元之中,其中各实体写入单元的不使用区段不被用来写入此些区段数据。
在本发明的一实施例中,上述数据写入方法还包括:测试此些实体写入单元的实体写入区段以产生一损坏区段分布表;根据此损坏区段分布表决定每一实体写入单元的实体写入区段之中的不使用区段;以及使用此些实体写入单元的其中一个实体写入单元来储存一坏区段信息,其中此坏区段信息包括关于每一实体写入单元的实体写入区段之中的不使用区段的信息。在此,上述的识别每一实体写入单元的实体写入区段之中的不使用区段的步骤包括:根据此坏区段信息来识别每一实体写入单元的实体写入区段之中的不使用区段。
在本发明的一实施例中,上述测试此些实体写入单元的实体写入区段以产生上述的损坏区段分布表的步骤包括:将一测试数据写入至此些实体写入单元之中的多个测试实体写入单元的每一实体写入区段中;藉由一错误检查与校正程序识别写入此测试数据的实体写入区段之中的多个损坏实体写入区段;以及统计在此些测试实体写入单元中的此些损坏实体写入区段的一分布状态以产生上述损坏区段分布表。
在本发明的一实施例中,上述数据写入方法还包括:配置多个逻辑写入单元以映射部分的上述实体写入单元,其中每一逻辑写入单元的容量等于每一实体写入单元的容量减去每一实体写入单元的不使用区段的容量。
本发明实施例提出一种数据写入方法,用于可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,每一实体页面包括一数据位元区与一冗余位元区并且每一数据位元区包括多个实体扇区。本数据写入方法包括识别每一实体页面的数据位元区的实体扇区之中的至少一不使用扇区;以及以每一实体页面为单位将多个扇区数据写入至此些实体页面之中的一第一实体页面中,其中此第一实体页面的数据位元区的实体扇区之中的至少一不使用扇区不会被用来写入此些扇区数据。
在本发明的一实施例中,上述数据写入方法还包括:测试此些实体区块的实体页面以产生一损坏扇区分布表;根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区;以及使用此些实体区块的其中一个实体区块来储存一坏扇区信息,其中此坏扇区信息包括关于每一实体页面的数据位元区的实体扇区之中的不使用扇区的信息。此外上述识别每一实体页面的数据位元区的实体扇区之中的不使用扇区的步骤包括:根据此坏扇区信息来识别每一实体页面的数据位元区的实体扇区之中的不使用扇区。
本发明实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,每一实体页面包括一数据位元区与一冗余位元区并且每一数据位元区包括多个实体扇区。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以耦接至主机系统,存储器接口用以耦接至可复写式非易失性存储器模组并且存储器管理电路耦接至主机接口与存储器接口。在此,存储器管理电路包括:用以识别每一实体页面的数据位元区的实体扇区之中的至少一不使用扇区的装置;以及用以以每一实体页面为单位将多个扇区数据写入至此些实体页面之中的第一实体页面中的装置,其中此第一实体页面的数据位元区的实体扇区之中的不使用扇区不会被用来写入此些扇区数据。
在本发明的一实施例中,上述存储器管理电路还包括:用以测试此些实体区块的实体页面以产生一损坏扇区分布表的装置;用以根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区的装置;以及用以使用此些实体区块的其中一个实体区块来储存一坏扇区信息的装置,其中此坏扇区信息包括关于每一实体页面的数据位元区的实体扇区之中的不使用扇区的信息。在此,上述用以识别每一实体页面的数据位元区的实体扇区之中的至少一不使用扇区的装置根据此坏扇区信息来识别每一实体页面的数据位元区的实体扇区之中的不使用扇区。
在本发明的一实施例中,上述存储器控制器还包括一错误检查与校正电路。在此,存储器管理模组还包括:用以将测试数据写入至此些实体页面之中的多个测试实体页面的每一实体扇区中的装置,其中上述错误检查与校正电路识别写入此测试数据的实体扇区之中的多个损坏实体扇区。此外,存储器管理电路还包括用以统计在此些测试实体页面中的损坏实体扇区的一分布状态以产生损坏扇区分布表的装置。
在本发明的一实施例中,上述存储器管理电路还包括:用以根据上述损坏扇区分布表以多种写入测试分别地以每一实体页面为单位将测试数据写入至此些实体区块的实体页面中的装置,其中在每一写入测试中测试数据被写入至此些实体区块的实体页面的部分实体扇区中,并且上述错误检查与校正电路分别地识别在对应此些写入测试中的多个坏实体区块。此外,上述存储器管理电路还包括:用以分别地根据所识别的坏实体区块计算对应此些写入测试的可用容量的装置,其中上述用以根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区的装置根据此些可用容量决定每一实体页面的数据位元区的实体扇区之中的不使用扇区。
在本发明的一实施例中,上述用以根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区的装置根据此些可用容量之中的一最大可用容量来决定每一实体页面的数据位元区的实体扇区之中的不使用扇区。
在本发明的一实施例中,上述存储器管理电路还包括:用以配置多个逻辑页面以映射部分的实体页面的装置,其中上述扇区数据属于此些逻辑页面之中的一第一逻辑页面,并且此第一逻辑页面的容量等于上述第一实体页面的容量减去第一实体页面的不使用扇区的容量。
在本发明的一实施例中,上述存储器管理电路还包括:用以从主机系统中接收至少一数据并且将此整理为上述扇区数据的装置。
本发明实施例提出一种数据写入系统,用于可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,每一实体页面包括一数据位元区与一冗余位元区并且每一数据位元区包括多个实体扇区。此数据写入系统包括:用以识别每一实体页面的数据位元区的实体扇区之中的至少一不使用扇区的装置以及用以以每一实体页面为单位将多个扇区数据写入至此些实体页面之中的一第一实体页面中的装置,其中此第一实体页面的数据位元区的实体扇区之中的不使用扇区不会被用来写入此些扇区数据。
在本发明的一实施例中,上述数据写入系统还包括用以测试此些实体区块的实体页面以产生一损坏扇区分布表的装置;用以根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区的装置;以及用以使用此些实体区块的其中一个实体区块来储存一坏扇区信息的装置。在此,上述用以识别每一实体页面的数据位元区的实体扇区之中的至少一不使用扇区的装置根据此坏扇区信息来识别每一实体页面的数据位元区的实体扇区之中的不使用扇区,其中此坏扇区信息包括关于每一实体页面的数据位元区的实体扇区之中的不使用扇区的信息。
在本发明的一实施例中,上述数据写入系统还包括错误检查与校正电路;以及用以将测试数据写入至此些实体页面之中的多个测试实体页面的每一实体扇区中的装置,其中此错误检查与校正电路识别写入测试数据的实体扇区之中的多个损坏实体扇区。此外,上述数据写入系统还包括用以统计在此些测试实体页面中的损坏实体扇区的一分布状态以产生损坏扇区分布表的装置。
在本发明的一实施例中,上述的数据写入系统还包括用以根据此损坏扇区分布表以多种写入测试分别地以每一实体页面为单位将测试数据写入至此些实体区块的实体页面中的装置,其中在每一写入测试中测试数据被写入至此些实体区块的实体页面的部分实体扇区中,并且上述错误检查与校正电路分别地识别对应在此些写入测试中的多个坏实体区块。上述数据写入系统还包括用以分别地根据所识别的坏实体区块计算对应此些写入测试的多个可用容量的装置,其中用以根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区的装置根据此些可用容量决定每一实体页面的数据位元区的实体扇区之中的不使用扇区。
在本发明的一实施例中,上述用以根据此损坏扇区分布表决定每一实体页面的数据位元区的实体扇区之中的不使用扇区的装置根据此些可用容量之中的一最大可用容量来决定每一实体页面的实体扇区之中的不使用扇区。
在本发明的一实施例中,上述数据写入系统还包括用以配置多个逻辑页面以映射部分的实体页面的装置,其中此些扇区数据属于此些逻辑页面之中的一第一逻辑页面,并且此第一逻辑页面的容量等于上述第一实体页面的容量减去第一实体页面的不使用扇区的容量。
在本发明的一实施例中,上述数据写入系统还包括用以从主机系统中接收至少一数据并且将此数据整理为上述扇区数据的装置。
基于上述,本发明实施例的数据写入方法与系统及存储器控制器能够有效地使用可复写式易失性存储器模组中正常的实体扇区。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明实施例所示出的主机系统与存储器储存装置。
图1B是根据本发明实施例所示出的电脑、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明另一实施例所示出的主机系统与存储器储存装置的示意图。
图2是图1A所示的存储器储存装置的概要方框图。
图3是根据本发明实施例所示出的实体区块的数据位元区的示意图。
图4是根据本发明实施例所示出的存储器控制器的概要方框图。
图5是根据本发明实施例所示出的管理可复写式非易失性存储器模组的实体区块的示意图。
图6是根据本发明实施例所示出的程式化指令的范例示意图。
图7是根据本发明实施例所示出的逻辑区块与实体区块的映射示意图。
图8根据本发明实施例所示出的逻辑区块的逻辑页面与实体区块的实体页面的数据位元区的映射范例示意图。
图9是根据本发明实施例所示出的数据写入方法的流程图。
图10是本发明实施例的数据写入方法中决定不使用扇区的流程图。
主要元件符号说明:
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:可复写式非易失性存储器模组
202:存储器管理电路
204:主机接口
206:存储器接口
208:错误校正电路
252:缓冲存储器
254:电源管理电路
304(0)-304(R):实体区块
PP(0)-PP(127):实体页面
PS(0)-PS(7):实体扇区
402:数据区
404:闲置区
406:系统区
408:取代区
W1、W2、W3:指令
SD(0)-SD(6):扇区数据
510(0)-510(H):逻辑区块
LP(0)-LP(127):逻辑页面
LS(0)-LS(7):逻辑扇区
S901、S903、S905、S907:数据写入的步骤
S1001、S1003、S1005、S1007、S1009、S1011:决定不使用扇区的步骤
具体实施方式
在可复写式非易失性存储器模组的管理中,可复写式非易失性存储器模组的实体写入单元会被区分为是属于数据区或备用区,其中数据区的实体写入单元用以储存数据,而备用区的实体写入单元用以写入数据并与数据区替换。此外,每一实体写入单元包括数据位元区及冗余位元区,其中数据位元区包含多个实体写入区段。在本发明的数据写入方法中,每一实体写入单元的实体写入区段之中的至少一不使用实体写入区段(简称为不使用区段)会被识别,并且当写入区段数据至每一实体写入单元时,每一实体写入单元的不使用区段不被用来写入此些区段数据。基此,配置给主机系统所存取的每一逻辑写入单元的容量是等于每一实体写入单元的容量减去每一实体写入单元的不使用区段的容量。
具体来说,在本发明的数据写入方法中,测试数据会被写入至此些实体写入单元之中的多个测试实体写入单元的数据位元区的每一实体写入区段中。之后,写入此测试数据的实体写入区段之中的损坏实体写入区段会藉由错误检查与校正程序来被识别并且在此些测试实体写入单元中的此些损坏实体写入区段的一分布状态会被统计以产生损坏区段分布表。然后,会根据此损坏区段分布表来决定每一实体写入单元的实体写入区段之中的不使用区段。在本实施例中,每一实体写入单元的实体写入区段之中的不使用区段都会相同,亦即,在方便管理的考量下,部分实体写入单元的不使用区段可以是良好的实体写入区段,但不被用于写于有效数据,并且关于每一实体写入单元的实体写入区段之中的不使用区段的坏区段信息会被储存在其中一个实体写入单元中。基此,每当执行写入指令时,每一实体写入单元中的不使用区段就可根据所储存的坏区段信息被跳过,而不用来写入区段信息。基此,能够较有效地使用可复写式易失性存储器模组中至少部分仍正常的实体写入区段来储存数据。
在本发明中,实体(逻辑)写入单元可为实体(逻辑)区块、实体(逻辑)页面或其他适当的单位,其中数据位元区可为单一页面中的数据位元区(databit area)或由数个页面的数据位元区组合而成,并且冗余位元区亦可为单一页面中的冗余位元区(redundant bit area)或由数个页面的冗余位元区组合而成。为了方便更具体地描述本发明,以下将一实施例及其附图来作说明,其中在此实施例中,实体写入单元为对应可复写式非易失性存储器模组的实体页面,实体写入区段对应可复写式非易失性存储器模组的实体扇区,并且区段数据为扇区数据,但不应以此为限。
图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 State Drive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信装置、音讯播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图2是图1A所示的存储器储存装置的概要方框图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模组106。
在本实施例中,连接器102是相容于序列先进附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Institute ofElectrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数码(SecureDigital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬体型式或韧体型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模组106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器模组106具有多个实体区块(即,实体区块304(0)-304(R))。在本实施例中,例如,R为(2048-1)。也就是说,可复写式非易失性存储器模组106具有2048个实体区块。然而,必须了解的是,本发明不限于此,在本发明另一实施例中,R可以是大于0的任意数目。在此,此些实体区块可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。
图3是根据本发明实施例所示出的实体区块的数据位元区的示意图。由于每一实体区块的结构是相同的,在此,仅示出实体区块304(0)来进行说明。
请参照图3,实体区块304(0)具有依序排列的实体页面PP(0)-实体页面PP(127),并且每一实体页面具有依序排列的实体扇区PS(0)-实体扇区PS(7),其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目的一并被抹除的记忆胞。实体页面为程式化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体扇区包括使用者数据(user data)位元区与冗余(redundancy)位元区。使用者数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误校正码)。例如,每一实体扇区的使用主数据位元区的容量为1千位元组(Kilobyte,K),基此,每一个实体页面可储存8K的使用者数据。
尽管在本发明实施例中,每一实体区块是由128个实体页面所组成。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。类似地,尽管在本实施例中,每一实体页面是由8个实体扇区所组成,但本发明不限于此。
例如,可复写式非易失性存储器模组106为多阶记忆胞(Multi LevelCell,MLC)NAND快闪存储器模组。然而,本发明不限于此,可复写式非易失性存储器模组106亦可是单阶记忆胞(Single Level Cell,SLC)NAND快闪存储器模组、其他快闪存储器模组或其他具有相同特性的存储器模组。
图4是根据本发明实施例所示出的存储器控制器的概要方框图。
请参照图4,存储器控制器104包括存储器管理电路202、主机接口204、存储器接口206与错误校正电路208。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本实施例中,存储器管理电路202的控制指令是以韧体型式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一实施例中,存储器管理电路202的控制指令亦可以程式码型式储存于可复写式非易失性存储器模组106的特定区域(例如,非易失性存储器模组中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模组106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一实施例中,存储器管理电路202的控制指令亦可以一硬体型式来实作。
主机接口204是耦接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是耦接至存储器管理电路202并且用以存取可复写式非易失性存储器模组106。也就是说,欲写入至可复写式非易失性存储器模组106的数据会经由存储器接口206转换为可复写式非易失性存储器模组106所能接受的格式。
错误校正电路208是耦接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,在执行写入指令时,错误校正电路208会为欲写入的数据产生对应的错误校正码,并且存储器管理电路202会将此数据与对应的错误校正码写入至可复写式非易失性存储器模组106中。之后,当存储器管理电路202从可复写式非易失性存储器模组106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正电路208会依据此错误校正码对所读取的数据执行错误检查与校正程序。值得一提的是,错误校正电路208能够校正的错误位元的数目会与所产生的错误校正码的长度成正比。也就是说,当错误校正电路208被设计能够校正的错误位元的数目越多时,则需要越多储存空间来储存所产生的错误校正码。如上所述,用以储存错误校正码的冗余位元区的容量是固定的(根据不同种类的可复写式非易失性存储器模组而不同)。因此,实作于错误校正电路208中的错误校正演算法会受限于可复写式非易失性存储器模组106的类型。例如,在本实施例中,错误校正电路208最多能够校正40个错误位元。也就是说,只要发生在所读取的数据上的错误位元的数目不超过40,错误校正电路208皆能够顺利地将错误位元更正。
在本发明一实施例中,存储器控制器104还包括缓冲存储器252。缓冲存储器252是耦接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模组106的数据。
在本发明一实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。
图5是根据本发明实施例所示出的管理可复写式非易失性存储器模组的实体区块的示意图。
必须了解的是,在此描述非易失性存储器模组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中的实体区块是用以取代损坏的实体区块(即,坏实体区块(badblock))。因此,倘若取代区408中仍存有正常的实体区块且发生实体区块损毁时,存储器管理电路202会从取代区408中提取正常的实体区块来更换损毁的实体区块。倘若取代区408中无正常的实体区块且发生实体区块损毁时,则存储器管理电路202会将整个非易失性存储器储存装置100宣告为写入保护(write protect)状态,而无法再写入数据。
特别是,数据区402、闲置区404、系统区406与取代区408的实体区块的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在非易失性存储器储存装置100的运作中,实体区块关联至数据区402、闲置区404、系统区406与取代区408的分组关系会动态地变动。例如,当备用区中的实体区块损坏而被取代区的实体区块取代时,则原本取代区的实体区块会被关联至备用区。
特别是,在本实施例中,存储器管理电路202会识别实体区块中的不使用扇区(un-used sector)并且在以实体页面单位写入数据至非易失性存储器模组106时跳过所识别的不使用扇区,亦即不将由主机端接收欲写入非易失性存储器模组106的数据储存在不使用扇区中。
具体来说,非易失性存储器模组106中的其中一个实体区块会储存坏扇区信息,并且此坏扇区信息会记录关于在非易失性存储器模组106中不被允许使用的扇区(即,不使用扇区)的信息。例如,倘若坏扇区信息中记录实体扇区PS(5)为不使用扇区时,存储器管理电路202不会使用实体扇区PS(5)来写入有效数据。也就是说,在非易失性存储器模组106中所有实体页面的实体扇区PS(5)皆不会被用来储存有效数据。其中,在本实施例中,存储器管理电路202可在判断要写入的扇区为不使用扇区时,跳过该扇区不去写入该笔数据,或者在该不使用扇区另填入一无效数据。
例如,当存储器控制器104欲将多个扇区数据(即,数据量为一个实体扇区的数据)写入至实体区块304(0)的实体页面PP(0)时,存储器管理电路202会将此些扇区数据依序写入至从实体页面PP(0)的实体扇区PS(0)、实体扇区PS(1)、实体扇区PS(2)、实体扇区PS(3)、实体扇区PS(4)、实体扇区PS(6)与实体扇区PS(7)。例如,存储器控制器104会使用含有跳过指令的程式化指令将扇区数据写入至实体页面PP(0)中。
图6是根据本发明实施例所示出的程式化指令的范例示意图。
请参照图6,假设扇区数据SD(0)-SD(6)欲被写入至实体区块304(0)的实体页面PP(0)的实体扇区PS(0)-PS(3)及PS(5)-PS(6),即跳过其实体扇区PS(4)不写。存储器控制器104的存储器管理电路202会对可复写式非易失性存储器模组106下达由“指令W1”、“实体地址”、“数据”、“指令W2”与“指令W3”等字串所组成的指令。
具体来说,存储器管理电路202藉由“指令W1”指示可复写式非易失性存储器模组106准备输入欲程式化的串流数据,藉由“304(0)PP(0)PS(0)”指示可复写式非易失性存储器模组106欲开始程式化的地址为实体区块304(0)的实体页面PP(0)的实体扇区PS(0),藉由“SD(0)-SD(4)”指示可复写式非易失性存储器模组106欲程式化的扇区数据SD(0)-SD(4),即扇区数据SD(0)-SD(4)会被写入实体扇区PS(0)-PS(4),藉由“指令W2”指示可复写式非易失性存储器模组106跳至另一个实体地址,藉由“304(0)PP(0)PS(6)”指示可复写式非易失性存储器模组106跳至实体区块304(0)的实体页面PP(0)的实体扇区PS(6)来程式化数据,藉由“SD(5)-SD(6)”指示可复写式非易失性存储器模组106欲程式化的扇区数据SD(5)-SD(6),即扇区数据SD(5)-SD(6)会被写入实体扇区PS(6)-PS(7),以及藉由“指令W3”指示可复写式非易失性存储器模组106开始执行程式化。基此,非易失性存储器模组106就会根据此程式化指令将扇区数据程式化至实体区块304(0)的实体页面PP(0)中,并且跳过实体扇区PS(5)。
值得一提的是,如上所述,数据区402与闲置区404的实体区块是以轮替方式来储存主机系统1000所写入的数据。在本实施例中,存储器管理电路202会配置逻辑扇区给主机系统1000以利于在以上述轮替方式来储存数据的实体区块中进行数据存取。特别是,存储器管理电路202会将所提供的逻辑地址(在此,亦称为逻辑扇区)分组成多个逻辑页面并且此些逻辑页面会被分组为多个逻辑区块。此外,存储器管理电路202会维护逻辑区块-实体区块映射表(logical block-physical block mapping table),以记录用以储存属于此些逻辑区块的数据的实体区块和此些逻辑区块的映射关系。
图7是根据本发明实施例所示出的逻辑区块与实体区块的映射示意图。
请参照图7,逻辑区块510(0)-510(H)是映射至数据区402的实体区块。例如,当非易失性存储器储存装置100被主机系统1000的作业系统以档案系统(例如,FAT 32)格式化时,逻辑区块510(0)510(H)分别地映射至数据区402的实体区块304(0)-304(D)。也就是说,一个逻辑区块会映射数据区402中的一个实体区块。之后,当闲置区404的实体区块被提取来写入数据以替换数据区的实体区块时,逻辑区块-实体区块映射表中的映射关系会被更新。例如,当逻辑区块510(0)是映射至实体区块304(0)的映射状态并且存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑区块510(0)的逻辑扇区时,存储器管理电路202会依据逻辑区块-实体区块映射表识别逻辑区块510(0)目前是映射至实体区块304(0)并且从备用区404中提取实体区块304(D+1)作为替换实体区块来轮替实体区块304(0)。例如,存储器管理电路202会将实体区块304(0)中对应逻辑区块510(0)的有效数据以及欲写入的新数据写入至实体区块304(D+1)中,将实体区块304(0)抹除并关联至备用区404,并且在逻辑区块-实体区块映射表中将逻辑区块510(0)重新映射至304(D+1),由此将实体区块304(D+1)关联至数据区402。
在本实施例中,当配置逻辑扇区并且将逻辑扇区分组为映射实体页面的逻辑页面时,存储器管理电路202不会配置对应的逻辑扇区给不使用的实体扇区。基此,每一个逻辑页面的容量会小于其所映射的实体页面的容量。也就是说,逻辑页面的容量等于实体页面的容量减去不使用扇区的容量。
图8根据本发明实施例所示出的逻辑区块的逻辑页面与实体区块的实体页面的数据位元区的映射范例示意图。在此假设逻辑区块510(0)目前是映射实体区块304(0)并且以逻辑区块510(0)与实体区块304(0)为例进行说明页面的映射方式。相同的映射方式适用于本实施例中所有逻辑区块的逻辑页面与实体区块的实体页面的映射。
请参照图8,倘若坏扇区信息中记录实体扇区PS(5)为不使用扇区(如虚线所示)时,存储器管理电路202仅会在将7个逻辑扇区分组为1个逻辑页面。因此,在逻辑区块510(0)内每一逻辑页面会包含逻辑扇区LS(0)-LS(6)。并且,在逻辑页面的逻辑扇区与实体页面的实体扇区的映射关系中,逻辑扇区LS(0)是映射实体扇区PS(0);逻辑扇区LS(1)是映射实体扇区PS(2);逻辑扇区LS(3)是映射实体扇区PS(3);逻辑扇区LS(4)是映射实体扇区PS(4);逻辑扇区LS(5)是映射实体扇区PS(6)并且逻辑扇区LS(6)是映射实体扇区PS(7)。也就是说,主机系统1000欲储存至逻辑扇区LS(5)的数据会被写入至实体扇区PS(6)中并且主机系统1000欲储存至逻辑扇区LS(6)的数据会被写入至实体扇区PS(7)中,由此跳过实体扇区PS(5)。
图9是根据本发明实施例所示出的数据写入方法的流程图,其示出写入数据至实体页面(以下称为第一实体页面)的步骤。
请参照图9,在步骤S901中,存储器管理电路202会接收来自于主机系统1000的写入指令与欲写入的数据。在此,写入指令会包含欲写入的逻辑扇区并且存储器管理电路202会识别此些逻辑扇区所属的逻辑页面(以下称为第一逻辑页面)。并且,在步骤S903中,存储器管理电路202会将此数据整理成多个扇区数据。例如,存储器管理电路202会将此数据整理成符合预设的错误校正码框的扇区数据。
之后,在步骤S905中,存储器管理电路202会识别每一实体页面的数据位元区中不使用的实体扇区(即,不使用扇区)。
然后,在步骤S907中,存储器管理电路202会以每一实体页面为单位将多个扇区数据写入至实体页面(以下称为第一实体页面)中。特别是,在步骤S907中,扇区数据不会被写入至第一实体页面中的不使用扇区中。例如,如图6与图8所示,存储器管理电路202会根据第一逻辑页面与第一实体页面之间的映射关系使用指令W2来跳过不使用扇区,以将扇区数据以实体页面为单位写入至实体区块中。
如上所述,在存储器储存装置100运作,存储器控制器104的存储器管理电路202会根据所储存的坏扇区信息来识别不使用扇区并且据此在以实体页面为单位写入数据时跳过不使用扇区。以下将根据本发明一实施例描述坏扇区信息的建立,然而,必须了解的是,以下仅为一个范例,本发明不限于此。
在存储器储存装置100出厂并且进行开卡时,存储器管理电路202会测试非易失性存储器模组106的实体区块的实体页面以产生一损坏扇区分布表。具体来说,存储器管理电路202会将测试数据写入的测试实体页面的实体扇区中。例如,测试实体页面可以为非易失性存储器模组106的所有实体页面或者以抽样方式随机挑选的部分实体页面。
之后,存储器管理电路202会从测试实体页面的实体扇区中读取所写入的数据,并且错误校正电路208会对从每一实体扇区中所读出的数据进行错误检查与校正程序,以判断是否发生无法校正的错误位元。当所读取的数据发生无法错误校正的错误位元时,存储器管理电路202会再次写入测试数据来确认实体扇区是否存有缺陷。
例如,在程式化数据时,邻近的实体扇区可能会受到干扰。因此,当储存于实体扇区S(0)与实体扇区S(1)中,存储器管理电路202会仅在实体扇区S(0)中写入测试数据来判断储存于实体扇区S(0)中的数据是否发生无法校正的错误位元,并且仅在实体扇区S(1)中写入测试数据来判断储存于实体扇区S(1)中的数据是否发生无法校正的错误位元,由此,确认实体扇区S(0)与实体扇区S(1)是否皆存有缺陷。
在经过上述测试及再次测试程序后,当所读取的数据仍发生无法错误校正的错误位元时,用以储存此数据的实体扇区会被标记为损坏实体扇区。然后,存储器管理电路202会统计在此些测试实体页面中损坏实体扇区的分布状态,以产生损坏扇区分布表。
在本实施例中,存储器管理电路202根据此损坏扇区分布表执行多种写入测试,以决定不使用扇区。
具体来说,如前所述,在非易失性存储器模组的坏实体区块管理中,当储存于实体区块中的数据发生无法校正的错误位元时,此实体区块会被标记坏实体区块,而不会再被使用。在此,存储器管理电路202根据损坏扇区分布表以试误法(try and error)来选择地使用每一个实体页面中的部分实体扇区来写入数据,由此决定不使用扇区。
例如,假设存储器管理电路202仅使用每一实体页面的实体扇区PS(0)、PS(1)、PS(2)、PS(3)、PS(4)、PS(6)与PS(7)来写入测试数据,并且因此有50个实体区块会因此被判定为坏实体区块时,由此而获得仅使用每一实体页面的实体扇区PS(0)、PS(1)、PS(2)、PS(3)、PS(4)、PS(6)与PS(7)的情况下可复写式非易失性存储器模组106的数据位元区的可用容量等于447552K(即,2k(位元组)×7/8)×128(页面)×(2048-50)区块)。其中,此范例是适用于具有2k页面,2048区块的储存装置。
例如,假设存储器管理电路202仅使用每一实体页面的实体扇区PS(1)、PS(2)、PS(3)、PS(4)、PS(6)与PS(7)来写入测试数据,并且有40个实体区块会因此被判定为坏实体区块时,由此而获得仅使用每一实体页面的实体扇区PS(1)、PS(2)、PS(3)、PS(4)、PS(6)与PS(7)的情况下可复写式非易失性存储器模组106的数据位元区的可用容量等于383616K(即,2k(位元组)×6/8)×128(页面)×(2048-50)区块)。
基此,存储器管理电路202可计算出各种写入测试所对应的可用容量。例如,存储器管理电路202可选择对应最大可用容量的写入方式并且由此决定不使用扇区。
在本发明实施例中,存储器管理电路202会使用非易失性存储器模组106中的其中一个实体区块来储存关于不使用扇区的信息,以作为坏扇区信息。例如,此储存此坏扇区信息的实体区块为系统区406的实体区块。或者,存储器管理电路202亦可使用闲置区404的其中一个实体区块来储存此坏扇区数据并且将此实体区块标记为坏实体区块,以避免被其他数据所覆写。
图10是本发明实施例数据写入方法中决定不使用扇区的流程图。
请参照图10,在步骤S1001中,测试数据会被写入至可复写式非易失性存储器模组106的多个测试实体页面的每一实体扇区中。如上所述,测试实体页面可以是可复写式非易失性存储器模组106的所有实体页面或部分的实体页面。
然后,在步骤S1003中,写入测试数据的实体扇区之中的多个损坏实体扇区会藉由错误检查与校正程序被识别。并且,在步骤S1005中,在测试实体页面中的损坏实体扇区的分布状态会被统计,以产生对应的损坏扇区分布表。
之后,在步骤S1007中,测试数据会以多种写入测试分别地以每一实体页面为单位被写入至实体区块的实体页面中。并且,在步骤S1009中,对应各种写入测试的坏实体区块的数目会藉由错误检查与校正程序分别地被识别。
然后,在步骤S1011中,对应各种写入测试的可用容量会被计算,并且每一实体页面的数据位元区中的不使用扇区会根据所计算的可用容量来被决定。例如,所计算的可用容量之中的最大可用容量会被识别并且由此决定每一实体页面的不使用扇区。
综上所述,本发明实施例的数据写入方法及使用此方法的存储器控制器与存储器储存装置能够有效地使用可复写式非发性存储器模组的正常储存空间,由此重新利用已视为不良品可复写式非发性存储器模组。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域的普通技术人员,当可作些许的更动与润饰,而不脱离本发明的精神和范围。
Claims (18)
1.一种数据写入方法,用于一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有一数据区及一备用区,该数据区用以储存数据,该备用区用以写入数据并与该数据区替换,其中该备用区具有多个实体写入单元并且每一该些实体写入单元包括一数据位元区及一冗余位元区,该数据位元区包含多个实体写入区段,该数据写入方法包括:
根据一损坏区段分布表以多种写入测试分别地以每一该些实体写入单元为单位将一测试数据写入至该些实体写入单元中,其中在每一该些写入测试中该测试数据被写入至该些实体写入单元的部分实体写入区段中;
透过一错误校正电路分别地识别在该些写入测试中该些实体写入区段之中的多个坏实体写入区段;
分别地根据所识别的该些坏实体写入区段计算对应该些写入测试的多个可用容量;
根据该些可用容量识别该可复写式非易失性存储器模组的所有该些实体写入单元的每一个的该些实体写入区段之中对应相同地址的至少一实体写入区段为一不使用区段;以及
将多笔区段数据写入至该些实体写入单元之中,其中各该实体写入单元的该至少一不使用区段不被用来写入该些区段数据。
2.根据权利要求1所述的数据写入方法,其中还包括:
测试该些实体写入单元的该些实体写入区段以产生该损坏区段分布表;以及
使用该些实体写入单元的其中一个实体写入单元来储存一坏区段信息,其中该坏区段信息包括关于每一该些实体写入单元的该些实体写入区段之中的该至少一不使用区段的信息,
其中识别每一该些实体写入单元的该些实体写入区段之中的该至少一不使用区段的步骤包括:
根据该坏区段信息来识别每一该些实体写入单元的该些实体写入区段之中的该至少一不使用区段。
3.根据权利要求2所述的数据写入方法,其中测试该些实体写入单元的该些实体写入区段以产生该损坏区段分布表的步骤包括:
将该测试数据写入至该些实体写入单元之中的多个测试实体写入单元的每一该些实体写入区段中;
藉由该错误校正电路识别写入该测试数据的该些实体写入区段之中的多个损坏实体写入区段;以及
统计在该些测试实体写入单元中的该些损坏实体写入区段的一分布状态以产生该损坏区段分布表。
4.根据权利要求1所述的数据写入方法,其中还包括:
配置多个逻辑写入单元以映射部分的该些实体写入单元,
其中每一该些逻辑写入单元的一容量等于每一该些实体写入单元的一容量减去每一该些实体写入单元的该至少一不使用区段的一容量。
5.一种数据写入方法,用于一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,每一该些实体页面包括一数据位元区与一冗余位元区并且每一该些数据位元区包括多个实体扇区,该数据写入方法包括:
根据一损坏扇区分布表以多种写入测试分别地以每一该些实体页面为单位将一测试数据写入至该些实体区块的该些实体页面中,其中在每一该些写入测试中该测试数据被写入至该些实体区块的该些实体页面的部分实体扇区中;
透过一错误校正电路分别地识别在该些写入测试中该些实体区块之中的多个坏实体区块;
分别地根据所识别的该些坏实体区块计算对应该些写入测试的多个可用容量;
根据该些可用容量识别该可复写式非易失性存储器模组的所有该些实体页面的每一个的该些实体扇区之中对应相同地址的至少一实体扇区为不使用扇区;以及
以每一该些实体页面为单位将多个扇区数据写入至该些实体页面之中的一第一实体页面中,其中该第一实体页面的该些实体扇区之中的该至少一不使用扇区不会被用来写入该些扇区数据。
6.根据权利要求5所述的数据写入方法,其中还包括:
测试该些实体区块的该些实体页面以产生该损坏扇区分布表;以及
使用该些实体区块的其中一个实体区块来储存一坏扇区信息,其中该坏扇区信息包括关于每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的信息,
其中识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的步骤包括:
根据该坏扇区信息来识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区。
7.一种存储器控制器,用于控制一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,每一该些实体页面包括一数据位元区与一冗余位元区并且每一该些数据位元区包括多个实体扇区,该存储器控制器包括:
一主机接口,用以耦接至一主机系统;
一存储器接口,用以耦接至该可复写式非易失性存储器模组;
一存储器管理电路,耦接至该主机接口与该存储器接口;以及
一错误校正电路,耦接至该存储器管理电路,其中该存储器管理电路包括:
用以根据一损坏扇区分布表以多种写入测试分别地以每一该些实体页面为单位将一测试数据写入至该些实体区块的该些实体页面中的装置,其中在每一该些写入测试中该测试数据被写入至该些实体区块的该些实体页面的部分实体扇区中,并且透过该错误校正电路分别地识别在该些写入测试中该些实体区块之中的多个坏实体区块;
用以分别地根据所识别的该些坏实体区块计算对应该些写入测试的多个可用容量的装置;
用以根据该些可用容量识别该可复写式非易失性存储器模组的所有该些实体页面的每一个的该些实体扇区之中对应相同地址的至少一实体扇区为不使用扇区的装置;以及
用以以每一该些实体页面为单位将多个扇区数据写入至该些实体页面之中的一第一实体页面中的装置,其中该第一实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区不会被用来写入该些扇区数据。
8.根据权利要求7所述的存储器控制器,其中该存储器管理电路还包括:
用以测试该些实体区块的该些实体页面以产生该损坏扇区分布表的装置;以及
用以使用该些实体区块的其中一个实体区块来储存一坏扇区信息的装置,
其中该坏扇区信息包括关于每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的信息,
其中上述用以识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的装置根据该坏扇区信息来识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区。
9.根据权利要求8所述的存储器控制器,其中该存储器管理电路还包括:
用以将该测试数据写入至该些实体页面之中的多个测试实体页面的每一该些实体扇区中的装置,其中该错误校正电路识别写入该测试数据的该些实体扇区之中的多个损坏实体扇区;以及
用以统计在该些测试实体页面中的该些损坏实体扇区的一分布状态以产生该损坏扇区分布表的装置。
10.根据权利要求7所述的存储器控制器,其中上述用以识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的装置,根据该些可用容量之中的一最大可用容量来决定每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区。
11.根据权利要求7所述的存储器控制器,其中该存储器管理电路还包括:
用以配置多个逻辑页面以映射部分的该些实体页面的装置,
其中该些扇区数据属于该些逻辑页面之中的一第一逻辑页面,并且该第一逻辑页面的一容量等于该第一实体页面的一容量减去该第一实体页面的该至少一不使用扇区的一容量。
12.根据权利要求7所述的存储器控制器,其中该存储器管理电路还包括:
用以从该主机系统中接收至少一数据并且将该至少一数据整理为该些扇区数据的状态。
13.一种数据写入系统,用于一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,每一该些实体页面包括一数据位元区与一冗余位元区并且每一该些数据位元区包括多个实体扇区,该数据写入系统包括:
用以根据一损坏扇区分布表以多种写入测试分别地以每一该些实体页面为单位将一测试数据写入至该些实体区块的该些实体页面中的装置,其中在每一该些写入测试中该测试数据被写入至该些实体区块的该些实体页面的部分实体扇区中,并且透过一错误校正电路分别地识别在该些写入测试中该些实体区块之中的多个坏实体区块;
用以分别地根据所识别的该些坏实体区块计算对应该些写入测试的多个可用容量的装置;
用以根据该些可用容量识别该可复写式非易失性存储器模组的所有该些实体页面的每一个的该些实体扇区之中对应相同地址的至少一实体扇区为不使用扇区的装置;以及
用以以每一该些实体页面为单位将多个扇区数据写入至该些实体页面之中的一第一实体页面中的装置,其中该第一实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区不会被用来写入该些扇区数据。
14.根据权利要求13所述的数据写入系统,其中还包括:
用以测试该些实体区块的该些实体页面以产生该损坏扇区分布表的装置;以及
用以使用该些实体区块的其中一个实体区块来储存一坏扇区信息的装置,其中该坏扇区信息包括关于每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的信息,
其中上述用以识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的装置根据该坏扇区信息来识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区。
15.根据权利要求14所述的数据写入系统,其中还包括:
用以将该测试数据写入至该些实体页面之中的多个测试实体页面的每一该些实体扇区中的装置,其中该错误校正电路识别写入该测试数据的该些实体扇区之中的多个损坏实体扇区;以及
用以统计在该些测试实体页面中的该些损坏实体扇区的一分布状态以产生该损坏扇区分布表的装置。
16.根据权利要求13所述的数据写入系统,其中上述用以识别每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区的装置,根据该些可用容量之中的一最大可用容量来决定每一该些实体页面的该数据位元区的该些实体扇区之中的该至少一不使用扇区。
17.根据权利要求13所述的数据写入系统,其中还包括:
用以配置多个逻辑页面以映射部分的该些实体页面的装置,
其中该些扇区数据属于该些逻辑页面之中的一第一逻辑页面,并且该第一逻辑页面的一容量等于该第一实体页面的一容量减去该第一实体页面的该至少一不使用扇区的一容量。
18.根据权利要求13所述的数据写入系统,其中还包括:
用以从一主机系统中接收至少一数据并且将该至少一数据整理为该些扇区数据的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110034686.2A CN102623052B (zh) | 2011-01-30 | 用于非易失性存储器的数据写入方法与系统及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110034686.2A CN102623052B (zh) | 2011-01-30 | 用于非易失性存储器的数据写入方法与系统及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102623052A CN102623052A (zh) | 2012-08-01 |
CN102623052B true CN102623052B (zh) | 2016-12-14 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9201785B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
US9213629B2 (en) | Block management method, memory controller and memory stoarge apparatus | |
US9141476B2 (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI459393B (zh) | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
CN105320464B (zh) | 防止读取干扰的方法、存储器控制电路单元与存储装置 | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
CN102467459B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103488579A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN102623052B (zh) | 用于非易失性存储器的数据写入方法与系统及控制器 | |
CN106469019A (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
TWI804236B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN106326131B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |