CN102902626B - 区块管理方法、存储器控制器与存储器储存装置 - Google Patents

区块管理方法、存储器控制器与存储器储存装置 Download PDF

Info

Publication number
CN102902626B
CN102902626B CN201110211864.4A CN201110211864A CN102902626B CN 102902626 B CN102902626 B CN 102902626B CN 201110211864 A CN201110211864 A CN 201110211864A CN 102902626 B CN102902626 B CN 102902626B
Authority
CN
China
Prior art keywords
block
blocks
physical blocks
logical blocks
those
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
Application number
CN201110211864.4A
Other languages
English (en)
Other versions
CN102902626A (zh
Inventor
叶志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN201110211864.4A priority Critical patent/CN102902626B/zh
Publication of CN102902626A publication Critical patent/CN102902626A/zh
Application granted granted Critical
Publication of CN102902626B publication Critical patent/CN102902626B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种用于可复写式非易失性存储器模组的区块管理方法及使用此方法的存储器控制器与存储器储存装置,其中此可复写式非易失性存储器模组具有多个实体区块。本方法包括将此些实体区块逻辑地至少分组为数据区、闲置区与取代区,并且配置多个逻辑区块,以映射属于数据区的实体区块。本方法亦包括将一个或多个坏实体区块指派至数据区并且将映射坏实体区块的逻辑区块标记为坏逻辑地址,由此禁止对映射坏实体区块的逻辑地址的存取。基此,本方法可使存有过多坏实体区块的可复写式非易失性存储器模组仍可被用来储存数据。

Description

区块管理方法、存储器控制器与存储器储存装置
技术领域
本发明涉及一种区块管理方法,且尤其涉及一种用于管理可复写式非易失性存储器的实体区块的区块管理方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本式计算机。固态硬盘就是一种以闪速存储器作为储存媒体的储存装置。因此,近年闪速存储器产业成为电子产业中相当热门的一环。
可复写式非易失性存储器模组具有多个实体区块(physicalblock),且每一实体区块具有多个实体页面(physicalpage),其中在实体区块中写入数据时必须依据实体页面的顺序依序地写入数据。此外,已被写入数据的实体页面并需先被抹除后才能再次用于写入数据。特别是,实体区块为抹除的最小单位,并且实体页面为程序化(亦称写入)的最小单元。
因此,当可复写式非易失性存储器储存装置(以下称为存储器储存装置)被制造完成而进行第一次格式化(亦称为开卡)时,存储器储存装置的存储器控制器会对可复写式非易失性存储器模组的所有实体区块进行磁盘扫瞄以识别好的实体区块,将此些好的实体区块优先分组至数据区与闲置区并且将剩余的实体区块分组至取代区。
数据区的实体区块是用以储存主机系统所储存的数据,而闲置区的实体区块是用以轮替数据区中的实体区块。因此,在闲置区中的实体区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。也就是说,数据区与闲置区的实体区块的实体页面是以轮替方式来映射逻辑区块的逻辑页面,以储存主机系统所写入的数据。例如,当主机系统欲将数据写入至储存装置的某一逻辑区块的某一逻辑页面时,存储器控制器会从闲置区中提取实体区块作为替换实体区块,将此数据写入至所提取的替换实体区块的实体页面中,并且记录此逻辑页面的数据被储存于此实体页面中。此外,在数据区中原先映射此逻辑页面的实体页面会被标记为无效。
取代区的实体区块是用以在存储器储存装置运作过程中取代发生损坏的实体区块。更详细来说,在一个实体区块经过多次抹除(例如,10000次)后,此实体区块可能会损坏而无法再被程序化。因此,当数据区中有实体区块损坏时,存储器控制器会尝试从取代区中提取可用实体区块来取代坏实体区块。特别是,倘若取代区无可用实体区块可取代坏实体区块时,则此储存装置将会被宣告无法再被用来储存数据,即进入写入保护模式。
然而,事实上,当取代区无可用实体区块可取代坏实体区块时,数据区与闲置区中仍存许多未损坏的实体区块,可用以储存数据。因此,如果可继续利用此些未损坏的实体区块来储存数据,将可有效地延长存储器储存装置的寿命。
发明内容
本发明提供一种区块管理方法、存储器控制器与存储器储存装置,其能够有效地使用未损坏的实体区块。
本发明范例实施例提出一种区块管理方法,用于一可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块。本区块管理方法包括将此些实体区块逻辑地至少分组为数据区、闲置区与取代区,其中数据区的实体区块包括一个或多个坏实体区块。本区块管理方法亦包括配置多个逻辑区块,以映射属于数据区的实体区块,其中每一逻辑区块独立地映射数据区的实体区块的其中之一。本区块管理方法还包括将此些逻辑区块之中映射坏实体区块的逻辑区块标记为属于坏逻辑地址。
在本发明的一实施例中,上述的将逻辑区块之中映射坏实体区块的坏逻辑区块标记为属于坏逻辑地址的步骤包括:在区块映射表中记录逻辑区块与属于数据区的实体区块之间的多个映射;在区块映射表中为每一逻辑区块对应地配置一识别标记;以及在区块映射表中将对应属于坏逻辑地址的逻辑区块的识别标记分别地记录成损坏状态。
在本发明的一实施例中,上述的区块管理方法还包括:从主机系统接收第一写入指令与对应第一写入指令的第一写入数据,其中第一写入数据是属于第一逻辑区块并且在区块映射表中第一逻辑区块目前映射数据区的实体区块之中的第一实体区块并且,上述本区块管理方法还包括判断对应第一逻辑区块的识别标记是否被记录为损坏状态;以及当对应第一逻辑区块的识别标记被记录为损坏状态时,将错误信息传送给主机系统以回应此第一写入指令。
在本发明的一实施例中,上述的区块管理方法还包括:当对应第一逻辑区块的识别标记非被记录为损坏状态时,从闲置区中提取第二实体区块,并且下达第一程序化指令以将第一写入数据写入至第二实体区块。
在本发明的一实施例中,上述的区块管理方法还包括判断第一写入数据是否正常地被写入至第二实体区块中;以及当第一写入数据无法正常地被写入至第二实体区块中时,判断取代区的实体区块之中是否存有可用实体区块。上述本区块管理方法还包括,当取代区的实体区块之中无存有可用实体区块时,在区块映射表中将第一逻辑区块重新映射至第二实体区块,在区块映射表中将对应第一逻辑区块的识别标记记录成损坏状态并且将第一实体区块关联至闲置区。
本发明范例实施例提出一种区块管理方法,用于可复写式非易失性存储器模组,其中可复写式非易失性存储器模组具有多个实体区块。本区块管理方法包括将此些实体区块逻辑地至少分组为数据区、闲置区与取代区;并且配置多个逻辑区块,以映射数据区的实体区块,其中每一逻辑区块独立地映射数据区的实体区块的其中之一。本区块管理方法也包括从主机系统接收第一写入指令与对应第一写入指令的第一写入数据,其中第一写入数据是属于第一逻辑区块并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。本区块管理方法还包括从闲置区中提取第二实体区块,下达第一程序化指令以将第一写入数据写入至第二实体区块中并且判断第一写入数据是否正常地被写入至第二实体区块中。本区块管理方法还包括,当第一写入数据无法正常地被写入至第二实体区块中时,判断取代区中是否存有可用实体区块;以及当取代区中无存有可用实体区块时,将第一逻辑区块重新映射至第二实体区块,将第一逻辑区块标记为属于坏逻辑地址并且将第一实体区块关联至闲置区。
在本发明的一实施例中,上述的区块管理方法还包括,当取代区中存有可用实体区块时,下达第二程序化指令以将第一写入数据写入至可用实体区块中。
在本发明的一实施例中,上述的区块管理方法还包括:在区块映射表中记录逻辑区块与属于数据区的实体区块之间的多个映射;以及在区块映射表中为每一逻辑区块对应地配置一识别标记。此外,上述的将第一逻辑区块标记为属于坏逻辑地址的步骤包括:在区块映射表中将对应第一逻辑区块的识别标记记录成损坏状态。
本发明范例实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模组。存储器管理电路电性连接至主机接口与存储器接口,并且用以将此些实体区块逻辑地至少分组为数据区、闲置区与取代区,其中数据区的实体区块包括一个或多个坏实体区块。此外,存储器管理电路还用以配置多个逻辑区块,以映射属于数据区的实体区块,其中每一逻辑区块独立地映射数据区的实体区块的其中之一。再者,存储器管理电路还用以将逻辑区块之中映射坏实体区块的逻辑区块标记为属于坏逻辑地址。
在本发明的一实施例中,上述的存储器管理电路在区块映射表中记录逻辑区块与属于数据区的实体区块之间的映射。此外,存储器管理电路在区块映射表中为每一逻辑区块对应地配置识别标记。再者,存储器管理电路在区块映射表中将对应属于坏逻辑地址的逻辑区块的识别标记分别地记录成损坏状态。
在本发明的一实施例中,上述的存储器管理电路通过主机接口从主机系统接收第一写入指令与对应第一写入指令的第一写入数据,其中第一写入数据是属于第一逻辑区块并且在区块映射表中第一逻辑区块目前映射数据区的实体区块之中的第一实体区块。再者,存储器管理电路判断对应第一逻辑区块的识别标记是否被记录为损坏状态。当对应第一逻辑区块的识别标记被记录为损坏状态时,存储器管理电路将错误信息传送给主机系统以回应此第一写入指令。
在本发明的一实施例中,当对应第一逻辑区块的识别标记非被记录为损坏状态时,存储器管理电路从闲置区的实体区块中提取第二实体区块,并且下达第一程序化指令以将第一写入数据写入至第二实体区块。
在本发明的一实施例中,上述的存储器管理电路判断第一写入数据是否正常地被写入至第二实体区块中。当第一写入数据无法正常地被写入至第二实体区块中时,存储器管理电路判断取代区的实体区块之中是否存有可用实体区块。当取代区的实体区块之中无存有可用实体区块时,存储器管理电路在区块映射表中将第一逻辑区块重新映射至第二实体区块,在区块映射表中将对应第一逻辑区块的识别标记记录成损坏状态并且将第一实体区块关联至闲置区。
本发明范例实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模组。存储器管理电路电性连接至主机接口与存储器接口,并且用以将此些实体区块逻辑地至少分组为数据区、闲置区与取代区。此外,存储器管理电路还用以配置多个逻辑区块,以映射数据区的实体区块,其中每一逻辑区块独立地映射数据区的实体区块的其中之一。另外,存储器管理电路通过主机接口从主机系统接收第一写入指令与对应第一写入指令的第一写入数据,其中第一写入数据是属于第一逻辑区块并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。并且,存储器管理电路还用以从闲置区的实体区块中提取第二实体区块,下达第一程序化指令以将第一写入数据写入至第二实体区块中并且判断第一写入数据是否正常地被写入至第二实体区块中。当第一写入数据无法正常地被写入至第二实体区块中时,存储器管理电路判断取代区的实体区块之中是否存有可用实体区块。当取代区的实体区块之中无存有可用实体区块时,其中存储器管理电路将第一逻辑区块重新映射至第二实体区块,将第一逻辑区块标记为属于坏逻辑地址并且将第一实体区块关联至闲置区。
在本发明的一实施例中,当取代区的实体区块之中存有可用实体区块时,存储器管理电路下达第二程序化指令以将第一写入数据写入至可用实体区块中。
在本发明的一实施例中,上述的存储器管理电路在区块映射表中记录逻辑区块与属于数据区的实体区块之间的映射,在区块映射表中为每一逻辑区块对应地配置一识别标记,并且在区块映射表中将对应第一逻辑区块的识别标记记录成损坏状态,以将第一逻辑区块标记为属于坏逻辑地址。
本发明范例实施例提出一种存储器储存装置,其包括具有多个实体区块的可复写式非易失性存储器模组、用以电性连接至主机系统的连接器与存储器控制器。存储器控制器电性连接至可复写式非易失性存储器模组与连接器,并且用以将实体区块逻辑地至少分组为数据区、闲置区与取代区,其中数据区的实体区块包括一个或多个坏实体区块。此外,存储器控制器还用以配置多个逻辑区块,以映射属于数据区的实体区块,其中每一逻辑区块独立地映射数据区的实体区块的其中之一。再者,存储器控制器还用以将逻辑区块之中映射坏实体区块的逻辑区块标记为属于坏逻辑地址。
在本发明的一实施例中,上述的存储器控制器在区块映射表中记录逻辑区块与属于数据区的实体区块之间的映射。此外,存储器控制器在区块映射表中为每一逻辑区块对应地配置识别标记。再者,存储器控制器在区块映射表中将对应属于坏逻辑地址的逻辑区块的识别标记分别地记录成损坏状态。
在本发明的一实施例中,上述的存储器控制器通过连接器从主机系统接收第一写入指令与对应第一写入指令的第一写入数据,其中第一写入数据是属于第一逻辑区块并且在区块映射表中第一逻辑区块目前映射数据区的实体区块之中的第一实体区块。再者,存储器控制器判断对应第一逻辑区块的识别标记是否被记录为损坏状态。当对应第一逻辑区块的识别标记被记录为损坏状态时,存储器控制器将错误信息传送给主机系统以回应此第一写入指令。
在本发明的一实施例中,当对应第一逻辑区块的识别标记非被记录为损坏状态时,存储器控制器从闲置区的实体区块中提取第二实体区块,并且下达第一程序化指令以将第一写入数据写入至第二实体区块。
在本发明的一实施例中,上述的存储器控制器判断第一写入数据是否正常地被写入至第二实体区块中。当第一写入数据无法正常地被写入至第二实体区块中时,存储器控制器判断取代区的实体区块之中是否存有可用实体区块。当取代区的实体区块之中无存有可用实体区块时,存储器控制器在区块映射表中将第一逻辑区块重新映射至第二实体区块,在区块映射表中将对应第一逻辑区块的识别标记记录成损坏状态并且将第一实体区块关联至闲置区。
本发明范例实施例提出一种存储器储存装置,其包括具有多个实体区块的可复写式非易失性存储器模组、用以电性连接至主机系统的连接器与存储器控制器。存储器控制器电性连接至可复写式非易失性存储器模组与连接器,并且用以将实体区块逻辑地至少分组为数据区、闲置区与取代区。此外,存储器控制器还用以配置多个逻辑区块,以映射数据区的实体区块,其中每一逻辑区块独立地映射数据区的实体区块的其中之一。另外,存储器控制器通过连接器从主机系统接收第一写入指令与对应第一写入指令的第一写入数据,其中第一写入数据是属于第一逻辑区块并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。另外,存储器控制器还用以从闲置区中提取第二实体区块,下达第一程序化指令以将第一写入数据写入至第二实体区块中并且判断第一写入数据是否正常地被写入至第二实体区块中。当第一写入数据无法正常地被写入至第二实体区块中时,存储器控制器判断取代区的实体区块之中是否存有可用实体区块。当取代区的实体区块之中无存有可用实体区块时,存储器控制器将第一逻辑区块重新映射至第二实体区块,将第一逻辑区块标记为属于坏逻辑地址并且将第一实体区块关联至闲置区。
在本发明的一实施例中,当取代区的实体区块之中存有可用实体区块时,存储器控制器下达第二程序化指令以将第一写入数据写入至可用实体区块中。
在本发明的一实施例中,上述的存储器控制器在区块映射表中记录逻辑区块与属于数据区的实体区块之间的映射,在区块映射表中为每一逻辑区块对应地配置一识别标记,并且在区块映射表中将对应第一逻辑区块的识别标记记录成损坏状态,以将第一逻辑区块标记为属于坏逻辑地址。
基于上述,本发明范例实施例的区块管理方法、存储器控制器与存储器储存装置能够有效地利用未损坏的实体区块,以使得坏实体区块过多个可复写式非易失性存储器模组亦可继续被用来储存数据并且延长存储器储存装置的寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明第一范例实施例显示主机系统与存储器储存装置。
图1B是根据本发明第一范例实施例所显示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明另一范例实施例所显示的主机系统与存储器储存装置的示意图。
图2是显示图1A所示的存储器储存装置的概要方框图。
图3是根据本发明第一范例实施例所显示的存储器控制器的概要方框图。
图4A与图4B是根据本发明第一范例实施例所显示管理可复写式非易失性存储器模组的实体区块的示意图。
图5~图7是根据本发明第一范例实施例所显示的写入数据至可复写式非易失性存储器模组的范例。
图8是根据本发明第一范例实施所显示的区块映射表的范例。
图9是根据第一范例实施例的区块管理方法所显示的分组实体区块与配置逻辑区块的流程图。
图10是根据第一范例实施例的区块管理方法所显示的执行来自于主机系统的写入指令的流程图。
图11是根据第二范例实施例所显示的开卡时所建立的区块映射表的范例。
图12是根据本发明第二范例实施例所显示的区块映射表的另一范例。
图13是根据第二范例实施例的区块管理方法所显示的分组实体区块与配置逻辑区块的流程图。
图14是根据第二范例实施例的区块管理方法所显示的执行来自于主机系统的写入指令的流程图。
附图标记:
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:存储器接口
252:缓冲存储器
254:电源管理电路
256:错误检查与校正电路
502:数据区
504:闲置区
506:系统区
508:取代区
410(0)~410(N):实体区块
610(0)~610(H):逻辑区块
710(0)~710(K):逻辑存取地址
800:区块映射表
S901、S903、S905、S907、S909:分组实体区块与配置逻辑区块的步骤
S1001、S1003、S1005、S1007、S1009:执行来自于主机系统的写入指令的步骤
S1301、S1303:分组实体区块与配置逻辑区块的步骤
S1401、S1403、S1405、S1407、S1409、S1411、S1413、S1415:执行来自于主机系统的写入指令的步骤
具体实施方式
[第一范例实施例]
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模组与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据本发明第一范例实施例所显示的主机系统与存储器储存装置。
请参照图1A,主机系统1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(randomaccessmemory,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或固态硬盘(SolidStateDrive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000可实质地为可与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是显示图1A所示的存储器储存装置的概要方框图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模组106。
在本范例实施例中,连接器102是相容于序列先进附件(SerialAdvancedTechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,IEEE)1394标准、平行先进附件(ParallelAdvancedTechnologyAttachment,PATA)标准、高速周边零件连接接口(PeripheralComponentInterconnectExpress,PCIExpress)标准、通用串行总线(UniversalSerialBus,USB)标准、安全数位(SecureDigital,SD)接口标准、记忆棒(MemoryStick,MS)接口标准、多媒体储存卡(MultiMediaCard,MMC)接口标准、小型闪速(CompactFlash,CF)接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取、抹除与合并等运作。
可复写式非易失性存储器模组106是电性连接至存储器控制器104,并且具有多个实体区块以储存主机系统1000所写入的数据。在本范例实施例中,每一实体区块分别具有复数个实体页面,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面的容量为4千字节(Kilobyte,KB)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的存储单元。实体页面为程序化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位元区与冗余位元区。数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可复写式非易失性存储器模组106为多阶存储单元(MultiLevelCell,MLC)NAND闪速存储器模组。然而,本发明不限于此,可复写式非易失性存储器模组106亦可是单阶存储单元(SingleLevelCell,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是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、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会为对应此写入指令的数据产生对应的错误检查与校正码(ErrorCheckingandCorrectingCode,ECCCode),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模组106中。之后,当存储器管理电路202从可复写式非易失性存储器模组106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4A与图4B是根据本发明范例实施例所显示管理可复写式非易失性存储器模组的实体区块的示意图。
请参照图4A,可复写式非易失性存储器模组106具有实体区块410(0)~410(N),并且存储器控制器104的存储器管理电路202会将实体区块410(0)~410(N)逻辑地分组为(或指派至)数据区(dataarea)502、闲置区(freearea)504、系统区(systemarea)506与取代区(replacementarea)508。
逻辑上属于数据区502与闲置区504的实体区块是用以储存来自于主机系统1000的数据。具体来说,数据区502的实体区块(亦称为数据实体区块)是被视为已储存数据的实体区块,而闲置区504的实体区块(亦称为闲置实体区块)是用以写入新数据的实体区块。例如,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体区块,并且将数据写入至所提取的实体区块中。再例如,当对某一逻辑区块执行数据合并程序时,存储器管理电路202会从闲置区504中提取实体区块作为对应此逻辑区块的新数据实体区块来写入数据,并且替换原先映射此逻辑区块的数据实体区块。
在本范例实施例中,存储器管理电路202是以每一实体区块为单位来对数据区502与闲置区504的实体区块进行管理。然而,本发明不限于此,在另一范例实施例中,存储器管理电路202亦可将数据区502与闲置区504的实体区块分组为多个实体单元,并且以实体单元为单位来进行管理。例如,每一实体单元可由同一存储器子模组或不同存储器子模组中的至少一个实体区块所组成。
逻辑上属于系统区506的实体区块是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模组的制造商与型号、可复写式非易失性存储器模组的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区508中的实体区块是用于坏实体区块取代程序,以取代损坏的实体区块。具体来说,在存储器储存装置100运作期间,倘若数据区502或闲置区504的实体区块损坏时,存储器管理电路202会从取代区508中提取正常的实体区块来更换损坏的实体区块。基于上述,在存储器储存装置100的运作中,数据区502、闲置区504、系统区506与取代区508的实体区块会动态地变动。例如,用以轮替储存数据的实体区块会变动地属于数据区502或闲置区504。
值得一提的是,在存储器储存装置100被制造完成而进行第一次被初始化(亦称为开卡)时,存储器管理电路202会对可复写式非易失性存储器模组106的所有实体区块410(0)~410(N)进行磁盘扫瞄以识别好实体区块,将此些好实体区块分组为数据区502、闲置区504与系统区506并且将剩余好的实体区块分组至取代区508,其中数据区502、闲置区504与系统区506的实体区块的数量是固定的。具体来说,可复写式非易失性存储器模组106在制造过程中,可能会产生具缺陷的实体区块(以下称为坏实体区块),因此,存储器管理电路202会先识别出可用的实体区块。此外,存储器储存装置100会被配置具有固定数目的实体区块的数据区502、闲置区504与系统区506。特别是,在本范例实施例中,存储器管理电路202会判断在开卡程序中被分组至取代区508中好实体区块的数量是否小于一预定数目。例如,此预定数目会被设定为10,但本发明不以此为限。倘若被分组至取代区508中好实体区块的数量小于预定数目时,存储器管理电路202会将部分坏实体区块分组至数据区502并且将部分好实体区块从数据区502移至取代区508,以使得取代区508中好实体区块的数量等于预定数目。也就是说,在开卡程序中,至少会将预定数目的好实体区块分组至取代区508,并且倘若好实体区块的数目不足时,部分坏实体区块会被分组至数据区502。为了方便说明,在第一范例实施例中,假设在开卡过程中,被分组至数据区502的实体区块410(P)为坏实体区块。
请参照图4B,存储器管理电路202会配置逻辑区块610(0)~610(H)以映射数据区502的实体区块,其中每一逻辑区块具有多个逻辑页面并且此些逻辑页面是依序地映射对应的数据实体区块的实体页面。例如,在存储器储存装置100被格式化时,逻辑区块610(0)~610(H)会初始地映射数据区502的实体区块410(0)~410(F-1)。
在本发明范例实施例中,存储器管理电路202会维护区块映射表(例如,逻辑区块-实体区块映射表(logicalblock-physicalblockmappingtable))以记录逻辑区块610(0)~610(H)与数据区502的实体区块之间的映射。此外,由于主机系统1000是以逻辑存取地址(例如,扇区(Sector))为单位来存取数据,当主机系统1000存取数据时存储器管理电路202会将对应存储器储存装置100的逻辑存取地址710(0)~710(K)转换成对应的逻辑页面。例如,当主机系统1000欲存取某一逻辑存取地址时,存储器管理电路202会将主机系统1000所存取的逻辑存取地址转换为以对应的逻辑区块与逻辑页面所构成的多维地址,并且通过区块映射表于对应的实体页面中存取数据。
图5~图7是根据一范例实施例所显示的使用子实体区块来写入更新数据的范例。
请同时参照图5~图7,例如,在逻辑区块610(0)是映射至实体区块410(0)的映射状态下,当存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑区块610(0)的逻辑页面时,存储器控制器104会依据逻辑区块-实体区块映射表识别逻辑区块610(0)目前是映射至实体区块410(0)并且从闲置区504中提取实体区块410(F)来轮替实体区块410(0)。然而,当新数据写入至实体区块410(F)的同时,存储器控制器104不会立刻将实体区块410(0)中的所有有效数据搬移至实体区块410(F)而抹除实体区块410(0)。具体来说,存储器控制器104会从实体区块410(0)中读取欲写入实体页面之前的有效数据(即,实体区块410(0)的第0实体页面与第1实体页面中的数据)。之后,存储器控制器104会将实体区块410(0)中欲写入实体页面之前的有效数据写入至实体区块410(F)的第0实体页面与第1实体页面中(如图5所示),并且将新数据写入至实体区块410(F)的第2~4个实体页面中(如图6所示)。此时,存储器控制器104即完成写入的运作。因为实体区块410(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块410(0)中的有效数据搬移至实体区块410(F)可能会造成无谓的搬移。此外,数据必须依序地写入至实体区块内的实体页面,因此,存储器控制器104仅会先搬移欲写入实体页面之前的有效数据(即,储存在实体区块410(0)的第0实体页面与第0实体页面中数据),并且暂不搬移其余有效数据(即,储存在实体区块410(0)的第5~K实体页面中数据)。
在本范例实施例中,暂时地维持此等暂态关系的运作称为开启(open)母子区块,并且原实体区块(例如,上述实体区块410(0))称为母实体区块而用以替换母实体区块的实体区块(例如,上述与实体区块410(F))称为子实体区块。
之后,当需要将实体区块410(0)与实体区块410(F)的数据合并(merge)时,存储器控制器104会将实体区块410(0)与实体区块410(F)的数据整并至一个实体区块,由此提升实体区块的使用效率。在此,合并母子区块的运作称为数据合并程序或关闭(close)母子区块。例如,如图7所示,当进行关闭母子区块时,存储器控制器104会从实体区块410(0)中读取剩余的有效数据(即,实体区块410(0)的第5~K实体页面中的数据),之后,存储器控制器104会将实体区块410(0)中剩余的有效数据写入至实体区块410(F)的第5实体页面~第K实体页面中,然后存储器控制器104会对实体区块410(0)执行抹除操作并存储器控制器104会将抹除后的实体区块410(0)关联至闲置区504并且将实体区块410(F)关联至数据区502。也就是说,存储器控制器104会在逻辑区块-实体区块映射表中将逻辑区块610(0)重新映射至实体区块410(F)。此外,在本范例实施例中,存储器控制器104会建立闲置区实体区块表(未示出)来记录目前被关联至闲置区504的实体区块。值得一提的是,闲置区504中实体区块的数目是有限的,基此,在存储器储存装置100运作期间,已开启的母子区块组的数目亦会受到限制。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子区块组的数目达到上限时,存储器控制器104需关闭至少一组目前已开启的母子区块组后才可执行此写入指令。
图8是根据本发明第一范例实施所显示的区块映射表的范例。
请参照图8,区块映射表800包括逻辑区块地址栏位、实体区块地址栏位、识别标记栏位。
逻辑区块地址栏位用以记录提供给主机系统1000存取的逻辑区块,并且实体区块地址栏位用以记录每一逻辑区块所映射的实体区块。
识别标记栏位用以记录每一逻辑区块为好逻辑地址或坏逻辑地址。具体来说,如上所述,在好实体区块不足的情况下,一个或多个坏实体区块会被分组至数据区502,因此,部分逻辑区块会映射至坏实体区块。在本范例实施例中,当对应一个逻辑区块的识别标记被记录成表示“非损坏状态”的‘0’时表示此逻辑区块为好逻辑地址;并且当对应一个逻辑区块的识别标记被记录成表示“损坏状态”的‘1’时表示此逻辑区块为坏逻辑地址。必须了解的是,本发明不限于此,其他符号亦可被用于区别好逻辑地址与坏逻辑地址。例如,在本范例实施例中,数据区502中的坏实体区块410(P)在格式化过程中被映射至逻辑区块610(K)。基此,存储器管理电路202会将对应逻辑区块610(K)的识别标记记录成‘1’。
在完成上述初始化与格式化之后,存储器储存装置100即可根据主机系统1000的指令来存取数据。
值得一提的是,在本范例实施例中,当存储器管理电路202通过主机接口204从主机系统1000接收到写入指令与对应此写入指令的写入数据时,存储器管理电路202会识别对应此写入指令的逻辑区块并且判断对应此逻辑区块的识别标记是否被记录成损坏状态。倘若对应此逻辑区块的识别标记被记录成损坏状态时,存储器管理电路202会将指示写入失败的错误信息传送给主机系统1000以回应此写入指令,而不进行写入运作。基此,主机系统1000会根据此错误信息将此逻辑地址标记为坏轨区,而不再使用此逻辑地址来存取数据。
例如,在完成上述初始化与格式化之后,当主机系统1000传送指示将数据储存于逻辑区块610(K)的写入指令给存储器储存装置100时,存储器管理电路202会根据对应逻辑区块610(K)的识别标记传送错误信息给主机系统1000,而不进行写入运作。也就是说,在本范例实施例中,逻辑区块610(K)与实体区块410(P)之间的映射将会被固定而不会再被做任何更动。
图9是根据第一范例实施例的区块管理方法所显示的分组实体区块与配置逻辑区块的的流程图。
请参照图9,在步骤S901中,实体区块会被逻辑地至少分组为数据区、闲置区与取代区。例如,如上所述,存储器控制器104的存储器管理电路202会识别可复写式非易失性存储器模组106中的好实体区块并且将好实体区块分组至数据区502、闲置区504、系统区506与取代区508中。
之后,在步骤S903中,取代区508中好实体区块的数目会被判断是否小于预定数目。
倘若取代区508中好实体区块的数目小于预定数目时,在步骤S905中,一个或多个坏实体区块会被分组至数据区502并且数据区502中一个或多个好实体区块会被重新分组至取代区508,以使得取代区508中好实体区块的数目等于预定数目。
之后,在步骤S907中,多个逻辑区块会被配置,以映射属于数据区504的实体区块。并且,在步骤S909中,逻辑区块的中映射坏实体区块的逻辑区块会被标记为属于坏逻辑地址。具体来说,在步骤S907与步骤S909中,存储器管理电路202会在区块映射表500中将每一逻辑区块独立地映射至数据区的实体区块的其中之一并且将对应映射坏实体区块的逻辑区块的识别标记记录成损坏状态(如图8所示)。
图10是根据第一范例实施例的区块管理方法所显示执行来自于主机系统的写入指令的流程图。
请参照图10,在步骤S1001中,来自于主机系统1000的写入指令(以下称为第一写入指令)与对应第一写入指令的写入数据(以下称为第一写入数据)会被接收。在此,假设第一写入数据是欲被储存至一个逻辑区块(即,第一写入数据是属于此逻辑区块(以下称为第一逻辑区块))并且第一逻辑区块目前是映射于数据区502中的一个实体区块(以下称为第一实体区块)。
之后,在步骤S1003中,对应第一逻辑区块的识别标记会被判断是否被记录为损坏状态。
倘若对应第一逻辑区块的识别标记被记录为损坏状态时,在步骤S1005中,错误信息会被传送给主机系统1000以回应第一写入指令。也就是说,存储器管理电路202不会对可复写式非易失性存储器模组106下达程序化指令,并且直接将指示写入失败的错误信息传送给主机系统1000。
倘若对应第一逻辑区块的识别标记未被记录为损坏状态时,在步骤S1007中,一个实体区块(以下称为第二实体区块)会从闲置区504中被提取,并且在步骤S1009中,第一程序化指令会被下达以将第一写入数据写入至第二实体区块中。也就是说,存储器管理电路202会对可复写式非易失性存储器模组106下达程序化指令,以将主机系统1000欲储存的数据写入至从闲置区504中所提取的第二实体区块中。
此外,在本发明另一范例实施例中,倘若属于第一逻辑区块的有效数据皆已被写入至第二实体区块(例如,如图7所示)时,存储器管理电路202还会在第一程序化指令成功地被完成之后,在区块映射表500中将第一逻辑区块重新映射至第二实体区块并且将原始映射第一逻辑区块的第一实体区块关联至闲置区504。
基于上述,在第一范例实施例中,倘若在开卡程序中识别出存储器储存装置100存有过多坏实体区块时,根据本范例实施例的区块管理方法,存储器储存装置100中其他好实体区块仍可被有效地利用来储存数据。
[第二范例实施例]
第一范例实施例是揭示在开卡过程中固定地将部分逻辑区块标记为坏逻辑地址的区块管理方法。也就是说,坏逻辑地址是在开卡过程中被标记,由此使得其他好实体区块仍可继续被使用来储存数据。然而,如上所述,在存储器储存装置运作期间,好实体区块亦可能会因多次的抹除而损坏。在第二范例实施例中,存储器管理电路是根据实体区块的使用状态来将逐步将逻辑区块标记为坏逻辑地址,由此有效地延长存储器储存装置的寿命。以下将使用第一范例实施例的图1A、2、3的硬件架构来描述第二范例实施例。
在本范例实施例中,存储器控制器104的存储器管理电路202亦会如图4A、4B、5~7所示来管理实体区块及写入数据并且亦会建立与维护的区块映射表。
图11是根据第二范例实施例所显示的开卡时所建立的区块映射表的范例。
请参照图11,在本范例实施例中,在初始化(即,开卡程序)与格式化过程中,存储器管理电路202会在区块映射表800中将数据区502的实体区块410(0)~410(F-1)分别地映射至逻辑区块610(0)~610(H),并且将对应每一逻辑区块的识别标记记录成指示“未损坏状态”的‘0’。在本范例实施例中,存储器管理电路202不会将坏实体区块分组至数据区502。
在本范例实施例中,当主机系统1000传送写入指令而欲将写入数据储存至一个逻辑区块时,存储器管理电路202会而下达程序化指令以将写入数据写入至从闲置区504中提取的实体区块中。特别是,当写入数据无法正常地被写入至所提取的实体区块并且取代区508中无存有可取代坏实体区块的可用实体区块时,存储器管理电路202会将此逻辑区块重新映射至所提取的实体区块,将第一逻辑区块标记为属于坏逻辑地址,将原始映射此逻辑区块的实体区块关联至闲置区504并且将指示写入失败的错误信息传送给主机系统1000。之后,只要主机系统1000欲将写入数据储存至此逻辑区块时,存储器管理电路202都会将错误信息传送给主机系统1000。
图12是根据本发明第二范例实施例所显示的区块映射表的另一范例。
请参照图12,在此假设主机系统1000所欲储存的写入数据是属于逻辑区块610(1),实体区块410(F)被提取作为子实体区块来写入此写入数据,实体区块410(F)发生程序化错误而被判定已损坏并且取代区508已无可用实体区块。此时,存储器管理电路202会在区块映射表800中将逻辑区块610(1)重新映射至实体区块410(F),将对应逻辑区块610(1)的识别标记记录成损坏状态,将原始映射逻辑区块610(1)的实体区块410(1)关联至闲置区504并且传送指示写入失败的错误信息给主机系统1000。特别是,后续当主机系统1000欲写入数据至标记为损坏状态的逻辑区块时,存储器管理电路202会直接将错误信息传送给主机系统1000,而不对可复写式非易失性存储器模组106进行写入运作。
更详细来说,由于实体区块410(F)已损坏并且取代区508已无可用实体区块,因此,存储器管理电路202通过将原始映射逻辑区块的好实体区块与从闲置区504中所提取的坏实体区块交换并且将此逻辑区块标记为属于坏逻辑地址,可使闲置区504仍有足够实体区块来执行对其他好逻辑地址的写入运作。基此,存储器储存装置100仍可继续储存数据,直到所有逻辑区块皆被标记为属于坏逻辑地址为止。
图13是根据第二范例实施例的区块管理方法所显示的分组实体区块与配置逻辑区块的流程图。
请参照图13,在步骤S1301中,实体区块会被逻辑地至少分组为数据区、闲置区与取代区。例如,如上所述,存储器控制器104的存储器管理电路202会识别可复写式非易失性存储器模组106中的好实体区块并且将好实体区块分组至数据区502、闲置区504、系统区506与取代区508中。
之后,在步骤S1303中,多个逻辑区块会被配置,以映射属于数据区504的实体区块。具体来说,在步骤S1303中,存储器管理电路202会在区块映射表500中将每一逻辑区块独立地映射至数据区的实体区块的其中之一并且将每一逻辑区块的识别标记记录成非损坏状态(如图11所示)。
图14是根据第二范例实施例的区块管理方法所显示的执行来自于主机系统的写入指令的流程图。
请参照图14,在步骤S1401中,来自于主机系统1000的写入指令(以下称为第一写入指令)与对应第一写入指令的写入数据(以下称为第一写入数据)会被接收。在此,假设第一写入数据是欲被储存至一个逻辑区块(即,第一写入数据是属于此逻辑区块(以下称为第一逻辑区块))并且第一逻辑区块目前是映射于数据区502中的一个实体区块(以下称为第一实体区块)。
之后,在步骤S1403中,对应第一逻辑区块的识别标记会被判断是否被记录为损坏状态。
倘若对应第一逻辑区块的识别标记被记录为损坏状态时,在步骤S1405中,错误信息会被传送给主机系统1000。也就是说,存储器管理电路202不会对可复写式非易失性存储器模组106下达程序化指令,而直接将指示写入失败的错误信息传送给主机系统1000。
倘若对应第一逻辑区块的识别标记未被记录为损坏状态时,在步骤S1407中,一个实体区块(以下称为第二实体区块)会从闲置区504中被提取,并且在步骤S1409中,程序化指令(以下称为第一程序化指令)会被下达以将第一写入数据写入至第二实体区块中。也就是说,存储器管理电路202会对可复写式非易失性存储器模组106下达程序化指令,以将主机系统1000欲储存的数据写入至从闲置区504中所提取的第二实体区块中。
之后,在步骤S1411中,第一写入数据会被判断是否正常地被写入至第二实体区块中。
倘若第一写入数据无法正常地被写入至第二实体区块中时,在步骤S1413中,取代区的实体区块之中会被判断是否存有可用实体区块。
倘若取代区的实体区块之中无存有可用实体区块时,在步骤S1415中,第一逻辑区块会被重新映射至第二实体区块,第一逻辑区块会被标记为属于坏逻辑地址(即,第一逻辑区块的识别标记会被标记为损坏状态),第一实体区块会被关联至闲置区并且错误信息会被传送至主机系统1000。
倘若取代区的实体区块之中存有可用实体区块时,在步骤S1417中,程序化指令(以下称为第二程序化指令)会被下达以将第一写入数据写入至此可用实体区块中。
基于上述,在第二范例实施例中,倘若在存储器储存装置运作期间有实体区块损坏且取代区508无可用实体区块时,根据上述区块管理方法存储器储存装置100中其他好实体区块仍可被有效地使用,以供主机系统1000进行存取。
值得一提的是,在上述第一范例实施例中坏逻辑地址是在开卡期间被标记并且在上述第二范例实施例中,坏逻辑地址是在存储器储存装置运作期间逐步被标记。然而,在本发明另一范例实施例中,坏逻辑地址可在开卡期间被标记并且在存储器储存装置运作期间亦会逐步被标记。例如,存储器管理电路202可执行图9所示的步骤来执行初始化(即,开卡程序)并且根据图14的步骤来写入数据。
综上所述,当在开卡程序中发现可复写式非易失性存储器模组中损坏实体区块过多时,本发明范例实施例的区块管理方法、存储器控制器与存储器储存装置会将损坏实体区块分组至数据区并且将其对应的逻辑区块标记为坏逻辑地址,由此开卡程序仍可被正常完成而有效地使用此可复写式非易失性存储器模组中的好实体区块。此外,在存储器储存装置运作期间发生实体区块损坏且取代区无可用实体区块时,本发明范例实施例的区块管理方法、存储器控制器与存储器储存装置会将损坏实体区块映射至逻辑区块并且将此逻辑区块标记为坏逻辑地址,由此使其他好实体区块仍可继续被使用并且延长存储器储存装置的寿命。
虽然本发明已以实施例揭示如上,任何所属技术领域中的普通技术人员,当可作些许更动与润饰,而不脱离本发明的精神和范围。

Claims (24)

1.一种区块管理方法,用于一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,该区块管理方法包括:
将该些实体区块逻辑地至少分组为一数据区、一闲置区与一取代区,其中该数据区的该些实体区块包括一个或多个坏实体区块;
配置多个逻辑区块,以映射属于该数据区的该些实体区块,其中每一该些逻辑区块独立地映射该数据区的该些实体区块的其中之一;以及
将该些逻辑区块之中映射该一个或多个坏实体区块的一个或多个逻辑区块标记为属于一坏逻辑地址,
其中该一个或多个逻辑区块与该一个或多个坏实体区块之间的映射是固定且不会改变。
2.根据权利要求1所述的区块管理方法,其中将该些逻辑区块之中映射该一个或多个坏实体区块的该一个或多个逻辑区块标记为属于该坏逻辑地址的步骤包括:
在一区块映射表中记录该些逻辑区块与属于该数据区的该些实体区块之间的多个映射;
在该区块映射表中为每一该些逻辑区块对应地配置一识别标记;以及
在该区块映射表中将该些识别标记之中对应属于该坏逻辑地址的该一个或多个逻辑区块的一个或多个识别标记分别地记录成一损坏状态。
3.根据权利要求2所述的区块管理方法,其中还包括:
从一主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据,其中该第一写入数据是属于该些逻辑区块之中的一第一逻辑区块并且在该区块映射表中该第一逻辑区块目前映射该数据区的该些实体区块之中的一第一实体区块;
判断该些识别标记之中对应该第一逻辑区块的一识别标记是否被记录为该损坏状态;以及
当对应该第一逻辑区块的该识别标记被记录为该损坏状态时,将一错误信息传送给该主机系统以回应该第一写入指令。
4.根据权利要求3所述的区块管理方法,其中还包括:
当对应该第一逻辑区块的该识别标记非被记录为该损坏状态时,从该闲置区的该些实体区块中提取一第二实体区块,并且下达一第一程序化指令以将该第一写入数据写入至该第二实体区块。
5.根据权利要求4所述的区块管理方法,其中还包括:
判断该第一写入数据是否正常地被写入至该第二实体区块中;
当该第一写入数据无法正常地被写入至该第二实体区块中时,判断该取代区的该些实体区块之中是否存有一可用实体区块;以及
当该取代区的该些实体区块之中无存有该可用实体区块时,在该区块映射表中将该第一逻辑区块重新映射至该第二实体区块,在该区块映射表中将对应该第一逻辑区块的该识别标记记录成该损坏状态并且将该第一实体区块关联至该闲置区。
6.一种区块管理方法,用于一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,该区块管理方法包括:
将该些实体区块逻辑地至少分组为一数据区、一闲置区与一取代区;
配置多个逻辑区块,以映射该数据区的该些实体区块,其中每一该些逻辑区块独立地映射该数据区的该些实体区块的其中之一;
从一主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据,其中该第一写入数据是属于该些逻辑区块之中的一第一逻辑区块并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块;
从该闲置区的该些实体区块中提取一第二实体区块,下达一第一程序化指令以将该第一写入数据写入至该第二实体区块中并且判断该第一写入数据是否正常地被写入至该第二实体区块中;
当该第一写入数据无法正常地被写入至该第二实体区块中时,判断该取代区的该些实体区块之中是否存有一可用实体区块;以及
当该取代区的该些实体区块之中无存有该可用实体区块时,将该第一逻辑区块重新映射至该第二实体区块,将该第一逻辑区块标记为属于一坏逻辑地址并且将该第一实体区块关联至该闲置区,其中该第一逻辑区块与该第二实体区块之间的映射是固定且不会改变。
7.根据权利要求6所述的区块管理方法,其中还包括:
当该取代区的该些实体区块之中存有该可用实体区块时,下达一第二程序化指令以将该第一写入数据写入至该可用实体区块中。
8.根据权利要求6所述的区块管理方法,其中还包括:
在一区块映射表中记录该些逻辑区块与属于该数据区的该些实体区块之间的多个映射;以及
在该区块映射表中为每一该些逻辑区块对应地配置一识别标记,
其中将该第一逻辑区块标记为属于该坏逻辑地址的步骤包括:
在该区块映射表中将该些识别标记之中对应该第一逻辑区块的一识别标记记录成一损坏状态。
9.一种存储器控制器,用于控制一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模组;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且用以将该些实体区块逻辑地至少分组为一数据区、一闲置区与一取代区,其中该数据区的该些实体区块包括一个或多个坏实体区块,
其中该存储器管理电路还用以配置多个逻辑区块,以映射属于该数据区的该些实体区块,其中每一该些逻辑区块独立地映射该数据区的该些实体区块的其中之一,
其中该存储器管理电路还用以将该些逻辑区块之中映射该一个或多个坏实体区块的一个或多个逻辑区块标记为属于一坏逻辑地址,其中该一个或多个逻辑区块与该一个或多个坏实体区块之间的映射是固定且不会改变。
10.根据权利要求9所述的存储器控制器,
其中该存储器管理电路在一区块映射表中记录该些逻辑区块与属于该数据区的该些实体区块之间的多个映射,
其中该存储器管理电路在该区块映射表中为每一该些逻辑区块对应地配置一识别标记,
其中该存储器管理电路在该区块映射表中将该些识别标记之中对应属于该坏逻辑地址的该一个或多个逻辑区块的一个或多个识别标记分别地记录成一损坏状态。
11.根据权利要求10所述的存储器控制器,
其中该存储器管理电路通过该主机接口从该主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据,其中该第一写入数据是属于该些逻辑区块之中的一第一逻辑区块并且在该区块映射表中该第一逻辑区块目前映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器管理电路判断该些识别标记之中对应该第一逻辑区块的一识别标记是否被记录为该损坏状态,
其中当对应该第一逻辑区块的该识别标记被记录为该损坏状态时,该存储器管理电路将一错误信息传送给该主机系统以回应该第一写入指令。
12.根据权利要求11所述的存储器控制器,
其中当对应该第一逻辑区块的该识别标记非被记录为该损坏状态时,该存储器管理电路从该闲置区的该些实体区块中提取一第二实体区块,并且下达一第一程序化指令以将该第一写入数据写入至该第二实体区块。
13.根据权利要求12所述的存储器控制器,
其中该存储器管理电路判断该第一写入数据是否正常地被写入至该第二实体区块中,
其中当该第一写入数据无法正常地被写入至该第二实体区块中时,该存储器管理电路判断该取代区的该些实体区块之中是否存有一可用实体区块,
其中当该取代区的该些实体区块之中无存有该可用实体区块时,该存储器管理电路在该区块映射表中将该第一逻辑区块重新映射至该第二实体区块,在该区块映射表中将对应该第一逻辑区块的该识别标记记录成该损坏状态并且将该第一实体区块关联至该闲置区。
14.一种存储器控制器,用于控制一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模组;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且用以将该些实体区块逻辑地至少分组为一数据区、一闲置区与一取代区;
其中该存储器管理电路还用以配置多个逻辑区块,以映射该数据区的该些实体区块,其中每一该些逻辑区块独立地映射该数据区的该些实体区块的其中之一,
其中该存储器管理电路通过该主机接口从该主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据,其中该第一写入数据是属于该些逻辑区块之中的一第一逻辑区块并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器管理电路还用以从该闲置区的该些实体区块中提取一第二实体区块,下达一第一程序化指令以将该第一写入数据写入至该第二实体区块中并且判断该第一写入数据是否正常地被写入至该第二实体区块中;
其中当该第一写入数据无法正常地被写入至该第二实体区块中时,该存储器管理电路判断该取代区的该些实体区块之中是否存有一可用实体区块,
其中当该取代区的该些实体区块之中无存有该可用实体区块时,该存储器管理电路将该第一逻辑区块重新映射至该第二实体区块,将该第一逻辑区块标记为属于一坏逻辑地址并且将该第一实体区块关联至该闲置区,其中该第一逻辑区块与该第二实体区块之间的映射是固定且不会改变。
15.根据权利要求14所述的存储器控制器,
其中当该取代区的该些实体区块之中存有该可用实体区块时,该存储器管理电路下达一第二程序化指令以将该第一写入数据写入至该可用实体区块中。
16.根据权利要求14所述的存储器控制器,
其中该存储器管理电路在一区块映射表中记录该些逻辑区块与属于该数据区的该些实体区块之间的多个映射,
其中该存储器管理电路在该区块映射表中为每一该些逻辑区块对应地配置一识别标记,
其中该存储器管理电路在该区块映射表中将该些识别标记之中对应该第一逻辑区块的一识别标记记录成一损坏状态,以将该第一逻辑区块标记为属于该坏逻辑地址。
17.一种存储器储存装置,包括:
一可复写式非易失性存储器模组,具有多个实体区块;
一连接器,用以电性连接至一主机系统;
一存储器控制器,电性连接至该可复写式非易失性存储器模组与该连接器,并且用以将该些实体区块逻辑地至少分组为一数据区、一闲置区与一取代区,其中该数据区的该些实体区块包括一个或多个坏实体区块,
其中该存储器控制器还用以配置多个逻辑区块,以映射属于该数据区的该些实体区块,其中每一该些逻辑区块独立地映射该数据区的该些实体区块的其中之一,
其中该存储器控制器还用以将该些逻辑区块之中映射该一个或多个坏实体区块的一个或多个逻辑区块标记为属于一坏逻辑地址,其中该一个或多个逻辑区块与该一个或多个坏实体区块之间的映射是固定且不会改变。
18.根据权利要求17所述的存储器储存装置,
其中该存储器控制器在一区块映射表中记录该些逻辑区块与属于该数据区的该些实体区块之间的多个映射,
其中该存储器控制器在该区块映射表中为每一该些逻辑区块对应地配置一识别标记,
其中该存储器控制器在该区块映射表中将该些识别标记之中对应属于该坏逻辑地址的该一个或多个逻辑区块的一个或多个识别标记分别地记录成一损坏状态。
19.根据权利要求18所述的存储器储存装置,
其中该存储器控制器通过该连接器从该主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据,其中该第一写入数据是属于该些逻辑区块之中的一第一逻辑区块并且在该区块映射表中该第一逻辑区块目前映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器控制器判断该些识别标记之中对应该第一逻辑区块的一识别标记是否被记录为该损坏状态,
其中当对应该第一逻辑区块的该识别标记被记录为该损坏状态时,该存储器控制器将一错误信息传送给该主机系统以回应该第一写入指令。
20.根据权利要求19所述的存储器储存装置,
其中当对应该第一逻辑区块的该识别标记非被记录为该损坏状态时,该存储器控制器从该闲置区的该些实体区块中提取一第二实体区块,并且下达一第一程序化指令以将该第一写入数据写入至该第二实体区块。
21.根据权利要求20所述的存储器储存装置,
其中该存储器控制器判断该第一写入数据是否正常地被写入至该第二实体区块中,
其中当该第一写入数据无法正常地被写入至该第二实体区块中时,该存储器控制器判断该取代区的该些实体区块之中是否存有一可用实体区块,
其中当该取代区的该些实体区块之中无存有该可用实体区块时,该存储器控制器在该区块映射表中将该第一逻辑区块重新映射至该第二实体区块,在该区块映射表中将对应该第一逻辑区块的该识别标记记录成该损坏状态并且将该第一实体区块关联至该闲置区。
22.一种存储器储存装置,包括:
一可复写式非易失性存储器模组,具有多个实体区块;
一连接器,用以电性连接至一主机系统;
一存储器控制器,电性连接至该可复写式非易失性存储器模组与该连接器,并且用以将该些实体区块逻辑地至少分组为一数据区、一闲置区与一取代区;
其中该存储器控制器还用以配置多个逻辑区块,以映射该数据区的该些实体区块,其中每一该些逻辑区块独立地映射该数据区的该些实体区块的其中之一,
其中该存储器控制器通过该连接器从该主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据,其中该第一写入数据是属于该些逻辑区块之中的一第一逻辑区块并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器控制器还用以从该闲置区的该些实体区块中提取一第二实体区块,下达一第一程序化指令以将该第一写入数据写入至该第二实体区块中并且判断该第一写入数据是否正常地被写入至该第二实体区块中;
其中当该第一写入数据无法正常地被写入至该第二实体区块中时,该存储器控制器判断该取代区的该些实体区块之中是否存有一可用实体区块,
其中当该取代区的该些实体区块之中无存有该可用实体区块时,该存储器控制器将该第一逻辑区块重新映射至该第二实体区块,将该第一逻辑区块标记为属于一坏逻辑地址并且将该第一实体区块关联至该闲置区,其中该第一逻辑区块与该第二实体区块之间的映射是固定且不会改变。
23.根据权利要求22所述的存储器储存装置,
其中当该取代区的该些实体区块之中存有该可用实体区块时,该存储器控制器下达一第二程序化指令以将该第一写入数据写入至该可用实体区块中。
24.根据权利要求22所述的存储器储存装置,
其中该存储器控制器在一区块映射表中记录该些逻辑区块与属于该数据区的该些实体区块之间的多个映射,
其中该存储器控制器在该区块映射表中为每一该些逻辑区块对应地配置一识别标记,
其中该存储器控制器在该区块映射表中将该些识别标记之中对应该第一逻辑区块的一识别标记记录成一损坏状态,以将该第一逻辑区块标记为属于该坏逻辑地址。
CN201110211864.4A 2011-07-27 2011-07-27 区块管理方法、存储器控制器与存储器储存装置 Active CN102902626B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110211864.4A CN102902626B (zh) 2011-07-27 2011-07-27 区块管理方法、存储器控制器与存储器储存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110211864.4A CN102902626B (zh) 2011-07-27 2011-07-27 区块管理方法、存储器控制器与存储器储存装置

Publications (2)

Publication Number Publication Date
CN102902626A CN102902626A (zh) 2013-01-30
CN102902626B true CN102902626B (zh) 2016-02-03

Family

ID=47574871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110211864.4A Active CN102902626B (zh) 2011-07-27 2011-07-27 区块管理方法、存储器控制器与存储器储存装置

Country Status (1)

Country Link
CN (1) CN102902626B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765568B (zh) * 2014-01-08 2018-09-18 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置
KR20160032910A (ko) * 2014-09-17 2016-03-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN109766055A (zh) * 2017-11-09 2019-05-17 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
TWI661299B (zh) * 2018-04-30 2019-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
CN110471612B (zh) * 2018-05-09 2022-09-16 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
CN111913647B (zh) * 2019-05-08 2022-10-11 华为技术有限公司 一种存储设备的磨损均衡方法、装置及相关设备
CN113050878A (zh) * 2019-12-27 2021-06-29 北京兆易创新科技股份有限公司 一种开卡划分块的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043724A (zh) * 2009-10-15 2011-05-04 群联电子股份有限公司 用于闪存的区块管理方法、控制器与存储系统
CN102109965A (zh) * 2009-12-23 2011-06-29 群联电子股份有限公司 闪存储存系统、闪存控制器、电脑系统及模拟方法
CN102122233A (zh) * 2010-01-08 2011-07-13 群联电子股份有限公司 区块管理与数据写入方法、闪存储存系统与控制器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
TWI426528B (zh) * 2009-09-30 2014-02-11 Phison Electronics Corp 用於快閃記憶體的區塊管理方法、控制器與儲存系統

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043724A (zh) * 2009-10-15 2011-05-04 群联电子股份有限公司 用于闪存的区块管理方法、控制器与存储系统
CN102109965A (zh) * 2009-12-23 2011-06-29 群联电子股份有限公司 闪存储存系统、闪存控制器、电脑系统及模拟方法
CN102122233A (zh) * 2010-01-08 2011-07-13 群联电子股份有限公司 区块管理与数据写入方法、闪存储存系统与控制器

Also Published As

Publication number Publication date
CN102902626A (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
US8806301B2 (en) Data writing method for a flash memory, and controller and storage system using the same
TWI443512B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
CN102902626B (zh) 区块管理方法、存储器控制器与存储器储存装置
TWI436212B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103514096B (zh) 数据储存方法、存储器控制器与存储器储存装置
TWI479314B (zh) 系統資料儲存方法、記憶體控制器與記憶體儲存裝置
CN102890655B (zh) 存储器储存装置、其存储器控制器与有效数据识别方法
CN104765568A (zh) 数据存储方法、存储器控制电路单元与存储器存储装置
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
CN103377129A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103678162B (zh) 系统数据储存方法、存储器控制器与存储器储存装置
US8943264B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN103593296A (zh) 数据储存方法、存储器控制器与存储器储存装置
CN102915273B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102446137B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102129353B (zh) 数据写入系统与数据写入方法
CN103577344B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN104536906A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN105022695A (zh) 数据存储方法、存储器控制电路单元与存储器存储装置
US8572350B2 (en) Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system
CN102890653A (zh) 指令执行方法、存储器控制器与存储器储存装置
CN106354651B (zh) 平均磨损方法、存储器控制电路单元及存储器储存装置
CN102467459B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102779551B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103488579A (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