CN102650971B - 存储器管理方法、存储器控制器与存储器储存装置 - Google Patents
存储器管理方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN102650971B CN102650971B CN201110048430.7A CN201110048430A CN102650971B CN 102650971 B CN102650971 B CN 102650971B CN 201110048430 A CN201110048430 A CN 201110048430A CN 102650971 B CN102650971 B CN 102650971B
- Authority
- CN
- China
- Prior art keywords
- district
- universe
- those
- chaotic
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种用于管理可复写式非易失性存储器模块的实体单元的存储器管理方法、存储器控制器与存储器储存装置。在本方法中,实体单元至少被分组为数据区与闲置区。本方法包括从闲置区中提取空的实体单元作为第一全域混乱区,从数据区中提取空的实体单元作为第二全域混乱区并且使用第一全域混乱区的实体单元写入更新页面数据。本方法还包括,在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入其他更新页面数据。基此,本方法可扩大全域混乱区的储存空间,减少数据合并程序的执行且缩短执行写入指令的时间。
Description
技术领域
本发明涉及一种存储器管理方法,且特别涉及一种用于管理可复写式非易失性存储器模块的存储器管理方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatile memory)具有数据非丢失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记型电脑。固态硬盘就是一种以闪存作为储存媒体的储存装置。因此,近年闪存产业成为电子产业中相当热门的一环。
闪存模块的存储器子模块具有多个实体单元,每一实体单元是由一个或多个实体区块(physical block)所组成,且每一实体区块具有多个实体页面(physical page),其中在实体区块中写入数据时必须依据实体页面的顺序依序地写入数据。此外,已被写入数据的实体页面必需先被抹除后才能再次用于写入数据。特别是,实体区块为抹除的最小单位,并且实体页面为程式化(亦称写入)的最小单元。因此,在闪存模块的管理中,实体单元会被区分为数据区与闲置区。
数据区的实体单元是用以储存主机系统所储存的数据。具体来说,存储器管理电路会将主机系统所存取的逻辑存取位址转换为逻辑单元的逻辑页面并且将逻辑单元的逻辑页面映射至数据区的实体单元的实体页面。也就是说,在可复写式非易失性存储器模块的管理上数据区的实体单元是被视为已被使用的实体单元(例如,已储存主机系统所写入的数据)。例如,存储器管理电路会使用逻辑单元-实体单元映射表来记载逻辑单元与数据区的实体单元的映射关系,其中逻辑单元中的逻辑页面是依序的对应所映射的实体单元的实体页面。
闲置区的实体单元是用以轮替数据区中的实体单元。具体来说,如上所述,已写入数据的实体区块必须被抹除后才可再次用于写入数据,因此,闲置区的实体单元是被设计用于写入更新数据以替换原先映射逻辑单元的实体单元。基此,在闲置区中的实体单元为空或可使用的实体单元,即无记录数据或标记为已没用的无效数据。
也就是说,在可复写式非易失性存储器模块的管理上,数据区与闲置区的实体单元的实体页面是以轮替方式来映射逻辑单元的逻辑页面,以储存主机系统所写入的数据。因此,如何有效地管理数据区与闲置区的实体单元,以缩短执行写入指令的时间,是此领域技术人员所致力的目标。
发明内容
本发明提供一种存储器管理方法、存储器控制器与存储器储存装置,其能够有效地缩短执行写入指令的时间。
本发明范例实施例提出一种存储器管理方法,用于管理可复写式非易失性存储器模块的多个实体单元,其中每一实体单元具有依序排列的多个实体页面,此些实体单元至少被分组为数据区与闲置区,并且闲置区的实体单元用以替换数据区的实体单元以写入数据。本存储器管理方法包括配置多个逻辑单元以映射数据区的实体单元,其中每一逻辑单元具有多个逻辑页面。本存储器管理方法还包括从闲置区中提取多个空的实体单元作为第一全域混乱区,从数据区中提取多个空的实体单元作为第二全域混乱区并且使用第一全域混乱区的实体单元来写入多笔更新页面数据,其中此些更新页面数据是属于上述逻辑单元之中的多个已更新逻辑单元。本存储器管理方法亦包括判断第一全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第一预设数目门槛值;并且当第一全域混乱区的实体单元的中未被写入数据的实体单元的数目小于第一预设数目门槛值时,计算对应第一全域混乱区的储存状态评估值并且判断此储存状态评估值是否大于预设评估门槛值。本存储器管理方法还包括,当储存状态评估值不大于预设评估门槛值时,在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入多笔其他更新页面数据。
在本发明的一实施例中,上述的存储器管理方法还包括判断此些更新页面数据之中是否存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据。并且,本存储器管理方法还包括,当此储存状态评估值大于预设评估门槛值且此些更新页面数据之中存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据时,取消第二全域混乱区。
在本发明的一实施例中,上述的存储器管理方法还包括,当储存状态评估值大于预设评估门槛值且上述更新页面数据之中不存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据时,且在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入多笔其他更新页面数据。
在本发明的一实施例中,上述的计算对应第一全域混乱区的储存状态评估值的步骤包括:根据上述更新页面数据计算对应每一已更新逻辑单元的更新页面数;识别此些更新页面数之中的最大更新页面数;以及将此最大更新页面数乘上第二全域混乱区域的实体单元的数目以获得上述储存状态评估值。
在本发明的一实施例中,上述的计算对应第一全域混乱区的储存状态评估值的步骤包括:根据此些更新页面数据计算对应每一已更新逻辑单元的更新页面数;计算对应此些更新页面数的平均更新页面数;以及将此平均更新页面数乘上第二全域混乱区域的实体单元的数目以获得上述储存状态评估值。
在本发明的一实施例中,上述的计算对应第一全域混乱区的储存状态评估值的步骤包括:识别此些更新页面数据之中属于第二全域混乱区的实体单元所映射的逻辑单元的多个更新页面数据;以及以此些更新页面数据之中属于第二全域混乱区的实体单元所映射的逻辑单元的更新页面数据的数目作为上述储存状态评估值。
在本发明的一实施例中,上述的存储器管理方法还包括:判断第二全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第二预设数目门槛值。上述的存储器管理方法还包括:当第二全域混乱区的实体单元之中未被写入数据的实体单元的数目小于第二预设数目门槛值时,从上述逻辑单元之中选择第一逻辑单元并且执行对应此第一逻辑单元的数据合并程序。在此,此第一逻辑单元是映射上述实体单元之中的第一实体单元并且此数据合并程序包括判断第一实体单元是否属于第二全域混乱区。此数据合并程序包括,当第一实体单元非属于第二全域混乱区时,从闲置区中提取第三实体单元,从第一实体单元、第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的有效页面数据搬移至第三实体单元中,将第一逻辑单元重新映射至第三实体单元并且将第一实体单元关联至闲置区。
在本发明的一实施例中,上述的存储器管理方法还包括,当第一实体单元属于第二全域混乱区时,判断数据区中是否存有第二实体单元,其中此第二实体单元映射上述逻辑单元之中的第二逻辑单元并且为空的。上述的存储器管理方法还包括,当该数据区中存有第二实体单元时,将第一逻辑单元重新映射至此第二实体单元,将第二逻辑单元重新映射至第一实体单元,从第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的至少一更新页面数据搬移至第二实体单元中。
在本发明的一实施例中,上述的存储器管理方法还包括,当数据区中无存有此第二实体单元时,从第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的至少一更新页面数据搬移至第二全域混乱区中的多个连续实体页面中。
在本发明的一实施例中,上述的预设评估门槛值是藉由公式(4)来计算:
DET=(SDNT-1)×NPP (4)
其中DET表示预设评估门槛值,SDNT表示第二预设数目门槛值,并且NPP表示任一实体单元的实体页面的数目。
在本发明的一实施例中,上述的存储器管理方法还包括:根据整理指令来识别上述逻辑单元之中的多个已删除逻辑单元;以及将此些已删除逻辑单元所映射的实体单元识别为空的。
本发明范例实施例提出一种存储器控制器,用于控制一可复写式非易失性存储器模块,其中此可复写式非易失性存储器模块具有多个实体单元,并且每一实体单元具有依序排列的多个实体页面。本存储器控制器包括存储器接口与存储器管理电路。存储器接口用以电性连接至此可复写式非易失性存储器模块并且存储器管理电路电性连接至此存储器接口。存储器管理电路用以将此些实体单元至少分组为一数据区与一闲置区,其中闲置区的实体单元用以替换数据区的实体单元以写入数据。此外,存储器管理电路配置多个逻辑单元以映射数据区的该些实体单元,其中每一逻辑单元具有多个逻辑页面。另外,存储器管理电路从闲置区的实体区块之中提取多个空的实体单元作为一第一全域混乱区,从数据区的该些实体区块之中提取多个空的实体单元作为第二全域混乱区,并且使用第一全域混乱区的实体单元写入多笔更新页面数据,其中此些更新页面数据是属于上述逻辑单元之中的多个已更新逻辑单元。再者,存储器管理电路更用以判断第一全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第一预设数目门槛值。当第一全域混乱区的实体单元之中未被写入数据的实体单元的数目小于第一预设数目门槛值时,该存储器管理电路更用以计算对应第一全域混乱区的储存状态评估值并且判断该储存状态评估值是否大于预设评估门槛值。并且,当储存状态评估值非大于预设评估门槛值时,存储器管理电路更用以在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
在本发明的一实施例中,上述的存储器管理电路还用以判断该些更新页面数据之中是否存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据。当储存状态评估值大于预设评估门槛值且上述更新页面数据之中存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据时,存储器管理电路还用以取消第二全域混乱区。
在本发明的一实施例中,当储存状态评估值大于预设评估门槛值且上述更新页面数据之中无存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据时,上述的存储器管理电路还用以在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入多笔其他更新页面数据。
在本发明的一实施例中,上述的存储器管理电路根据上述更新页面数据计算对应每一已更新逻辑单元的更新页面数,识别此些更新页面数之中的一最大更新页面数并且将最大更新页面数乘上第二全域混乱区域的实体单元的数目以获得上述储存状态评估值。
在本发明的一实施例中,上述的存储器管理电路根据上述更新页面数据计算对应每一已更新逻辑单元的更新页面数,计算对应此些更新页面数的平均更新页面数并且将此平均更新页面数乘上第二全域混乱区域的实体单元的数目以获得上述储存状态评估值。
在本发明的一实施例中,上述的存储器管理电路识别上述更新页面数据之中属于第二全域混乱区的实体单元所映射的逻辑单元的多个更新页面数据并且以此些更新页面数据之中属于第二全域混乱区的实体单元所映射的逻辑单元的更新页面数据的数目作为上述储存状态评估值。
在本发明的一实施例中,上述的存储器管理电路判断第二全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第二预设数目门槛值。并且,当第二全域混乱区的实体单元之中未被写入数据的实体单元的数目小于第二预设数目门槛值时,存储器管理电路从上述逻辑单元之中选择第一逻辑单元,并且判断映射第一逻辑单元的第一实体单元是否属于第二全域混乱区。当第一实体单元不属于第二全域混乱区时,存储器管理电路从闲置区中提取第三实体单元,从第一实体单元、第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的有效页面数据搬移至第三实体单元中,将第一逻辑单元重新映射至第三实体单元并且将第一实体单元关联至闲置区。
在本发明的一实施例中,当第一实体单元属于第二全域混乱区时,存储器管理电路判断数据区中是否存有第二实体单元,其中此第二实体单元映射上述逻辑单元之中的第二逻辑单元并且为空的。当数据区中存有第二实体单元时,存储器管理电路将第一逻辑单元重新映射至第二实体单元,将第二逻辑单元重新映射至第一实体单元,从第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的至少一更新页面数据搬移至第二实体单元中。
在本发明的一实施例中,当数据区中不存有第二实体单元时,存储器管理电路从第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的至少一更新页面数据搬移至第二全域混乱区中的多个连续实体页面中。
本发明范例实施例提出一种存储器储存装置,其包括可复写式非易失性存储器模块与存储器控制器。可复写式非易失性存储器模块具有多个实体区块,其中每一实体单元具有依序排列的多个实体页面。存储器控制器电性连接至此可复写式非易失性存储器模块。存储器控制器用以将上述实体单元至少分组为数据区与闲置区,其中闲置区的实体单元用以替换数据区的实体单元以写入数据。此外,存储器控制器还用以配置多个逻辑单元以映射数据区的实体单元,其中每一逻辑单元具有多个逻辑页面。另外,存储器控制器从闲置区中提取多个空的实体单元作为第一全域混乱区,从数据区中提取多个空的实体单元作为第二全域混乱区,并且使用第一全域混乱区的实体单元写入多笔更新页面数据,其中此些更新页面数据是属于上述逻辑单元中的多个已更新逻辑单元。再者,存储器控制器还用以判断第一全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第一预设数目门槛值。当第一全域混乱区的实体单元之中未被写入数据的实体单元的数目小于第一预设数目门槛值,存储器控制器还用以计算对应第一全域混乱区的储存状态评估值,并且判断储存状态评估值是否大于预设评估门槛值。并且,当储存状态评估值不大于预设评估门槛值时,存储器控制器还用以在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入多笔其他更新页面数据。
在本发明的一实施例中,上述的存储器控制器还用以判断此些更新页面数据的中是否存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据。当储存状态评估值大于预设评估门槛值且此些更新页面数据之中存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据时,存储器控制器还用以取消上述第二全域混乱区。
在本发明的一实施例中,当储存状态评估值大于预设评估门槛值且上述更新页面数据的中不存有属于第二全域混乱区的实体单元所映射的逻辑单元的至少一更新页面数据时,上述的存储器控制器还用以在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入多笔其他更新页面数据。
在本发明的一实施例中,上述的存储器控制器根据上述更新页面数据计算对应每一已更新逻辑单元的更新页面数,识别此些更新页面数之中的最大更新页面数并且将此最大更新页面数乘上第二全域混乱区域的实体单元的数目以获得上述储存状态评估值。
在本发明的一实施例中,上述的存储器控制器根据上述更新页面数据计算对应每一已更新逻辑单元的更新页面数,计算对应此些更新页面数的平均更新页面数并且将此平均更新页面数乘上第二全域混乱区域的实体单元的数目以获得上述储存状态评估值。
在本发明的一实施例中,上述的存储器控制器识别上述更新页面数据的中属于第二全域混乱区的实体单元所映射的逻辑单元的多个更新页面数据并且以此些更新页面数据之中属于第二全域混乱区的实体单元所映射的逻辑单元的更新页面数据的数目作为上述储存状态评估值。
在本发明的一实施例中,上述的存储器控制器判断第二全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第二预设数目门槛值。当第二全域混乱区的实体单元之中未被写入数据的实体单元的数目小于第二预设数目门槛值时,存储器控制器从此些逻辑单元之中选择一第一逻辑单元,并且判断映射第一逻辑单元的第一实体单元是否属于第二全域混乱区。当第一实体单元不属于第二全域混乱区时,存储器控制器从闲置区中提取第三实体单元,从第一实体单元、第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的至少一更新页面数据搬移至第三实体单元中,将第一逻辑单元重新映射至第三实体单元并且将第一实体单元关联至该闲置区。
在本发明的一实施例中,当第一实体单元属于第二全域混乱区,存储器控制器判断数据区中是否存有第二实体单元,其中第二实体单元映射上述逻辑单元之中的第二逻辑单元并且为空的。当数据区中存有第二实体单元时,存储器控制器将第一逻辑单元重新映射至第二实体单元,将第二逻辑单元重新映射至第一实体单元,从第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的至少一更新页面数据搬移至第二实体单元中。
在本发明的一实施例中,当数据区中不存有第二实体单元时,存储器控制器从第一全域混乱区与第二全域混乱区的实体单元中将属于第一逻辑单元的有效页面数据搬移至第二全域混乱区中的多个连续实体页面中。
基于上述,本发明范例实施例的存储器管理方法、存储器控制器与存储器储存装置能够利用数据区中未写入数据的实体单元来扩充全域混乱区的储存空间,由此减少执行数据合并程序,进而缩短执行写入指令的时间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明第一范例实施例所显示的主机系统与存储器储存装置。
图1B是根据本发明范例实施例所显示的电脑、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明另一范例实施例所显示的主机系统与存储器储存装置的示意图。
图2是显示图1A所示的存储器储存装置的概要方块图。
图3是根据本发明范例实施例所显示的存储器控制器的概要方块图。
图4A与图4B是根据本发明范例实施例所显示的管理实体区块的范例示意图。
图5是根据本发明范例实施例所显示的管理数据区与闲置区的实体单元的范例示意图。
图6A是根据本发明范例实施例的存储器管理方法所显示的设定第一与第二全域混乱区的流程图。
图6B是根据本发明范例实施例的存储器管理方法所显示的决定是否取消第二全域混乱区的流程图。
图6C是根据本发明范例实施例的存储器管理方法所显示的写入更新页面数据的流程图。
图7是根据本发明一范例实施例所显示的图6C的步骤S621的详细步骤。
【主要元件符号说明】
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:错误检查与校正电路
410(0)~410(N):实体区块
502:数据区
504:闲置区
506:系统区
508:取代区
610(0)~610(K):实体单元
710(0)~710(H):逻辑单元
520:第一全域混乱区
530:第二全域混乱区
S601、S603:设定第一全域混乱区与第二全域混乱区的步骤
S605、S607、S609、S611:决定是否取消第二全域混乱区的步骤
S613、S615、S617、S619、S621、S623:写入更新页面数据的步骤
S701、S703、S705、S707、S709、S711、S713、S715:使用第二全域混乱区写入更新页面数据的步骤
具体实施方式
本发明所提出的存储器管理方法包括从闲置区的实体单元之中提取多个空的实体单元作为第一全域混乱区并且从数据区的实体单元之中提取多个空的实体单元作为第二全域混乱区。此外,本方法还包括在使用第一全域混乱区的实体单元写入多笔更新页面数据之后,判断第一全域混乱区的实体单元之中未被写入数据的实体单元的数目是否小于第一预设数目门槛值。再者,本方法还包括,当第一全域混乱区的实体单元之中未被写入数据的实体单元的数目小于第一预设数目门槛值时,计算对应第一全域混乱区的储存状态评估值并且判断所计算的储存状态评估值是否大于预设评估门槛值。并且,本方法还包括,当储存状态评估值不大于预设评估门槛值时,在第一全域混乱区的实体单元被写满之后,使用第二全域混乱区的实体单元来写入多笔其他更新页面数据。基此,本发明所提出的存储器管理方法能够配置更多实体单元作为全域混乱区,由此提升数据写入的效率。为更清楚地了解本发明,以下将配合附图,以一范例实施例来作详细说明。
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图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可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是显示图1A所示的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
在本范例实施例中,连接器102是相容于序列先进附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Instituteof Electrical 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具有实体区块410(0)~410(N)。例如,实体区块410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体区块分别具有多个实体页面,并且每一实体页面具有至少一实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面具有8个实体扇区(sector)。也就是说,在每一实体扇区为512字节(byte)的例子中,每一实体页面的容量为4千字节(Kilobyte,KB)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目的一并被抹除的记忆胞。实体页面为程式化的最小单元。即,实体页面为写入数据的最小单元。在此,将欲写入至实体页面的数据称为页面数据,即,数据量等于一个实体页面的容量的数据。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位元区(data bit area)与冗余位元区(redundant bit area)。数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可复写式非易失性存储器模块106为多阶记忆胞(Multi Level Cell,MLC)NAND闪存模块。然而,本发明不限于此,可复写式非易失性存储器模块106亦可是单阶记忆胞(Single Level Cell,SLC)NAND闪存模块、其他闪存模块或其他具有相同特性的存储器模块。
图3是根据本发明范例实施例所显示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以韧体型式来实作。例如,存储器管理电路202具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程式码型式储存于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未显示)、只读存储器(未显示)及随机存取存储器(未显示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬体型式来实作。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE1394标准、PCI Express标准、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会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4A与图4B是根据本发明范例实施例所显示的管理实体区块的范例示意图。
请参照图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中提取正常的实体单元来更换损坏的实体区块。
请参照图4B,存储器管理电路202会将数据区502与闲置区504的实体区块410(0)~410(S-1)分组为实体单元610(0)~610(K),并且以实体单元为单位来管理实体区块。在本范例实施例中,每一实体单元是由1个实体区块所组成。然而,必须了解的是,本发明不限于此。在另一范例实施例中,每一实体单元亦可由属于同一存储器子模块或属于不同存储器子模块中的至少2个实体区块所组成。此外,在本发明另一范例实施例中,系统区506与取代区508的实体区块亦可被分组为实体单元来管理。
在本范例实施例中,存储器管理电路202会配置逻辑单元710(0)~710(H)以映射数据区502的实体单元,其中每一逻辑单元具有多个逻辑页面,以依序地映射对应的实体单元的实体页面。在本范例实施例中,每一逻辑页面是映射1个实体页面(即,每一逻辑页面的容量为1个实体页面的容量)。然而,在每一实体单元是由多个实体区块所组成的例子中,每一逻辑页面亦可映射多个实体页面(即,每一逻辑页面的容量为多个实体页面的容量)。
在本范例实施例中,存储器管理电路202会维护逻辑单元-实体单元映射表(logical unit-physical unit mapping table)以记录逻辑单元710(0)~710(H)与数据区502的实体单元的映射关系。例如,当主机系统1000欲存取某一逻辑存取位址时,存储器管理电路202会将主机系统1000所存取的逻辑存取位址转换为以对应的逻辑单元、逻辑页面与逻辑扇区所构成的位址,并且通过逻辑单元-实体单元映射表于对应的实体单元的实体页面中存取数据。
在本范例实施例中,存储器管理电路202会配置部分的实体单元作为全域混乱区(Global Random Area)并且将包含于来自主机系统1000的写入指令中的数据(亦称为更新数据)写入至全域混乱区中。具体来说,存储器管理电路202会从闲置区504中提取数个空的实体单元作为第一全域混乱区并且从数据区502中提取数个空的实体单元作为第二全域混乱区。在此,所谓空的实体单元表示未被写入数据的实体单元或者储存于其中的数据皆为无效且可被抹除的实体单元。
图5是根据本发明范例实施例所显示的管理数据区与闲置区的实体单元的范例示意图。为了方便说明,在此假设数据区502的实体单元的数目为1910(即,实体单元610(0)~610(1909)),闲置区504的实体单元的数目44(即,实体单元610(1910)~610(1953)),并且每一实体单元的实体页面的数目为100。
请参照图5,当存储器储存装置100被制造完成并且初始化时,存储器管理电路202会将逻辑单元710(0)~710(1909)映射至数据区502的实体单元610(0)~610(1909)。此时,既使实体单元610(0)~610(1909)尚未被用来写入数据,存储器管理电路202亦会将实体单元610(0)~610(1909)视为已储存数据。另外,存储器管理电路202会从闲置区504中提取40个空的实体单元(即,实体单元610(1910)~610(1949))来设定为第一全域混乱区520并且从数据区502中提取90个空的实体单元(即,实体单元610(1820)~610(1909))来设定为第二全域混乱区530。
之后,倘若主机系统1000欲储存更新数据至逻辑单元时,存储器管理电路202会将此更新数据写入至第一全域混乱区520或第二全域混乱区530中。特别是,当将更新数据写入至第一全域混乱区520及/或第二全域混乱区530后,存储器管理电路202就会将指示已完成指令的回应传送给主机系统1000,由此缩短执行写入指令的时间。在此,当某一逻辑单元的更新数据被暂存于第一全域混乱区520或第二全域混乱区530时,此逻辑单元亦称为已更新逻辑单元。之后,存储器管理电路202会于适当时机再执行数据合并(merge)程序,以将属于同一个逻辑单元的数据从第一全域混乱区520或第二全域混乱区530中搬移至一个空的实体单元中并在逻辑单元-实体单元映射表中已更新逻辑单元与实体单元的映射关系。值得一提的是,在第一全域混乱区520或第二全域混乱区530中,存储器管理电路202会根据实体页面的顺序来将更新数据写入至每一实体单元中并且当一个实体单元被写满时存储器管理电路202才会使用另一个实体单元来写入更新数据。
例如,当主机系统1000欲储存更新页面数据至逻辑单元710(0)的第0逻辑页面时,存储器管理电路202会将此更新页面数据写入至第一全域混乱区520的实体单元610(1910)的第0个实体页面中。之后,当主机系统1000欲储存更新页面数据至逻辑单元710(1)的第99逻辑页面时,存储器管理电路202会将此更新页面数据写入至第一全域混乱区520的实体单元610(1910)的第1个实体页面中。并且,当实体单元610(1910)被写满时,第一全域混乱区520或第二全域混乱区530中的另一个实体单元才会被用来储存更新页面数据。
之后,例如,当全域混乱区快被写满时,存储器管理电路202会执行数据合并程序,以将属于逻辑单元710(0)的有效资页面料整理至闲置区504的实体单元610(1950)中,对原始映射逻辑单元710(0)的实体单元610(0)执行抹除运作,将实体单元610(0)关联至闲置区504并且在逻辑单元-实体单元映射表中将逻辑单元710(0)重新映射至实体单元610(1950)。
值得一提的是,在本范例实施例中,当第一全域混乱区520的实体单元中未被写入数据的实体单元的数目小于第一预设数目门槛值时,存储器管理电路202会计算对应第一全域混乱区520的储存状态评估值并且根据所计算的储存状态评估值决定是否使用第二全域混乱区530来暂存来自于主机系统1000的更新数据。在此,第一预设数目门槛值是设定为3,但本发明不限于此。
具体来说,在本发明范例实施例中,存储器管理电路202会根据被写入在第一全域混乱区520的更新页面数据来计算对应每一已更新逻辑单元的更新页面数,根据已更新逻辑单元的更新页面数来计算第一全域混乱区520的储存状态评估值并且根据此储存状态评估值决定是否使用第二全域混乱区530来暂存来自于主机系统1000的更新数据。
在此,某一已更新逻辑单元的更新页面数是指在此已更新逻辑单元中已被更新的逻辑页面的数目。例如,如图5所示,假设属于逻辑单元710(0)的第0~3逻辑页面的更新页面数据已被写入至第一全域混乱区520的实体页面时,存储器管理电路202识别已更新逻辑单元710(0)的更新页面数为4。例如,假设属于逻辑单元710(99)的第50~99逻辑页面的更新页面数据已被写入至第一全域混乱区520的实体页面时,存储器管理电路202识别已更新逻辑单元710(99)的更新页面数为50。
在本发明范例实施例中,储存状态评估值会根据下述公式(1)来计算:
SSEV=MaxUP×NSGR (1)
在此,SSEV表示第一全域混乱区520的储存状态评估值,MaxUP表示所有已更新逻辑单元的更新页面数之中的最大更新页面数,并且NSGR表示第二全域混乱区530的实体单元的数目。
值得一提的是,储存状态评估值不限于以公式(1)来计算。在本发明另一范例实施例中,储存状态评估值亦可根据下述公式(2)来计算:
SSEV=AVGUP×NSGR (2)
在此,SSEV表示第一全域混乱区520的储存状态评估值,AVGUP表示所有已更新逻辑单元的更新页面数的平均值,并且NSGR表示第二全域混乱区530的实体单元的数目。
另外,在本发明另一范例实施例中,储存状态评估值亦可根据下述公式(3)来计算:
在此,SSEV表示第一全域混乱区520的储存状态评估值,UPi表示第i个实体单元的更新页面数,并且SGR表示第二全域混乱区530的实体单元的集合。
在本发明范例实施例中,倘若所计算的储存状态评估值小于一预设评估门槛值时,存储器管理电路202会在第一全域混乱区520被写满时使用所设定的第二全域混乱区530来写入更新页面数据。在此,预设评估门槛值是藉由公式(4)来计算:
DET=(SDNT-1)×NPP (4)
其中DET表示预设评估门槛值,SDNT表示第二预设数目门槛值,并且NPP表示一个实体单元的实体页面的数目。
例如,如图5所示,第二预设数目门槛值会被设定为7并且由此预设评估门槛值会被设定为600。然而,必须了解的是,第二预设数目门槛值不限于7。
在本发明范例实施例中,倘若所计算的储存状态评估值非小于预设评估门槛值时,存储器管理电路202会更判断在第一全域混乱区520中是否储存有属于第二全域混乱区530的实体单元所映射的逻辑单元的更新页面数据。
倘若第一全域混乱区520中无储存有属于第二全域混乱区530的实体单元所映射的逻辑单元的更新页面数据时,存储器管理电路202会在第一全域混乱区520被写满之后使用所设定的第二全域混乱区530来写入更新页面数据。
倘若在第一全域混乱区520中储存有属于第二全域混乱区530的实体单元所映射的逻辑单元的更新页面数据时,存储器管理电路202会取消第二全域混乱区530,并且执行上述数据合并程序。也就是说,第二全域混乱区530不会被使用来写入更新数据。在此,所谓取消第二全域混乱区530是指将被设定作为第二全域混乱区530的实体单元(例如,实体单元610(1820)~610(1909))回复至数据区502。
值得一提的是,在存储器储存装置100继续运作之后,存储器管理电路202可于适当时机再重新从数据区502中提取空的实体单元来作为第二全域混乱区530。例如,在本发明另一范例实施例中,存储器管理电路202可根据主机系统1000所下达的整理(Trim)指令来识别逻辑单元之中的已删除逻辑单元并且将已删除逻辑单元所映射的实体单元识别为空的。在此,已删除逻辑单元是指储存于其上的数据已被主机系统1000通过文件配置表(File Allocation Table)所删除的逻辑单元,并且当主机系统1000的作业系统为微软视窗7时,主机系统1000会藉由整理指令来告知存储器储存装置100哪些逻辑单元上的数据已被删除。基此,在主机系统1000将数据删除之后,存储器管理电路202可识别数据区502中空的实体单元并且再重新从数据区502中提取空的实体单元来作为第二全域混乱区530。
图6A是根据本发明范例实施例的存储器管理方法所显示的设定第一与第二全域混乱区的流程图。
请参照图6A,在步骤S601中,存储器管理电路202会从闲置区504的实体单元之中提取空的多个实体单元作为第一全域混乱区520。并且在步骤S603中,存储器管理电路202会从数据区502的实体单元之中提取空的多个实体单元作为第二全域混乱区530。
图6B是根据本发明范例实施例的存储器管理方法所显示的决定是否取消第二全域混乱区的流程图,其显示当第二全域混乱区530已被设定并且第一全域混乱区520快被写满时决定是否继续使用第二全域混乱区530来储存更新页面数据的步骤。
请参照图6B,在步骤S605中,存储器管理电路202会判断第一全域混乱区520中未被写入数据的实体单元的数目是否小于第一预设数目门槛值。
倘若第一全域混乱区520中未被写入数据的实体单元的数目非小于第一预设数目门槛值时,则图6B的流程会被结束(即,不取消已设定的第二全域混乱区530)。
倘若第一全域混乱区520中未被写入数据的实体单元的数目小于第一预设数目门槛值时,在步骤S607中,存储器管理电路202会计算对应第一全域混乱区520的储存状态评估值,并且判断储存状态评估值是否大于预设评估门槛值。在此,计算第一全域混乱区520的储存状态评估值的方法已详细描述如上,在此不再重复描述。
倘若储存状态评估值不大于预设评估门槛值时,则图6B的流程会被结束(即,不取消已设定的第二全域混乱区530)。
倘若储存状态评估值大于预设评估门槛值时,在步骤S609中,存储器管理电路202会判断储存在第一全域混乱区520中的更新页面数据之中是否存有属于第二全域混乱区530的实体单元所映射的逻辑单元的更新页面数据。
倘若储存在第一全域混乱区520中的更新页面数据之中未存有属于第二全域混乱区530的实体单元所映射的逻辑单元的更新页面数据,则图6B的流程会被结束(即,不取消已设定的第二全域混乱区530)。
倘若储存在第一全域混乱区520中的更新页面数据之中存有属于第二全域混乱区530的实体单元所映射的逻辑单元的更新页面数据,则在步骤S611中,存储器管理电路202会取消第二全域混乱区530。
图6C是根据本发明范例实施例的存储器管理方法所显示的写入更新页面数据的流程图。
参照图6C,当欲写入更新页面数据时,在步骤S613中,存储器管理电路202会判断第一全域混乱区520中未被写入数据的实体单元的数目是否小于第一预设数目门槛值。
倘若第一全域混乱区520中未被写入数据的实体单元的数目非小于第一预设数目门槛值,在步骤S615中,存储器管理电路202会将更新页面数据写入至第一全域混乱区520中。
倘若第一全域混乱区520中未被写入数据的实体单元的数目小于第一预设数目门槛值,在步骤S617中,存储器管理电路202会判断第二全域混乱区530是否已被取消。
倘若第二全域混乱区530未已被取消时,在步骤S619中,存储器管理电路202会判断第一全域混乱区520是否已被写满。
倘若第一全域混乱区520未已被写满时,步骤S615会被执行。
倘若第一全域混乱区520已被写满时,在步骤S621中,存储器管理电路202会使用第二全域混乱区530来写入更新页面数据。
倘若在步骤S617中,判断第二全域混乱区530已被取消时,在步骤S623中,存储器管理电路202会执行数据合并程序并且将更新页面数据写入至第一全域混乱区520中。
图7是根据本发明一范例实施例所显示的图6C的步骤S621的详细步骤。
请参照图7,在步骤S701中,存储器管理电路202会在接续于第二全域混乱区530中目前已被写入的最后一个实体页面的实体页面中写入更新页面数据。并且,在步骤S703中,存储器管理电路202会判断第二全域混乱区530的实体单元中未被写入数据的实体单元的数目是否小于第二预设数目门槛值。
倘若第二全域混乱区530的实体单元中未被写入数据的实体单元的数目不小于第二预设数目门槛值时,图7的流程被结束。
倘若第二全域混乱区530的实体单元中未被写入数据的实体单元的数目小于第二预设数目门槛值时,在步骤S705中存储器管理电路202会从已更新逻辑单元中选择一个逻辑单元(以下称为第一逻辑单元),并且在步骤S707中,存储器管理电路202会根据逻辑单元-实体单元映射表判断第一逻辑单元所映射的实体单元(以下称为第一实体单元)是否被设定用于第二全域混乱区530。
倘若第一实体单元非被设定用于第二全域混乱区530时,在步骤S709中,存储器管理电路202会从闲置区504提取一个实体单元(以下称为第三实体单元),将属于第一逻辑单元的有效页面数据从第一实体单元、第一全域混乱区520与第二全域混乱区530的至少其中之一中搬移至第三实体单元,将第一逻辑单元重新映射至第三实体单元,对第一实体单元执行抹除运作并且将第一实体单元关联至闲置区504。
倘若第一实体单元被设定用于第二全域混乱区530时,在步骤S711中存储器管理电路202会判断数据区502是否仍存有未被写入数据的实体单元(即,空的实体单元)。
倘若数据区502不存有空的实体单元时,在步骤S713中,存储器管理电路202会将属于第一逻辑单元的更新页面数据搬移至第二全域混乱区530的多个空的连续实体页面中,其中此些连续实体页面是接续于第二全域混乱区530中目前已被写入的最后一个实体页面。具体来说,属于第一逻辑单元的更新页面数据可能已被分散地写入至第一全域混乱区520及/或第二全域混乱区530中,并且存储器管理电路202会将此些更新页面数据整理并接续于第二全域混乱区530中目前已被写入的最后一个实体页面来写入至第二全域混乱区530中。
倘若数据区502存有空的实体单元时,在步骤S715中,存储器管理电路202会从数据区502中选择一个空的实体单元(以下称为第二实体单元),将第一逻辑单元重新映射至第二实体单元,将第二实体单元原始映射的逻辑单元(以下称为第二逻辑单元)重新映射至第一实体单元并且将属于第一逻辑单元的更新页面数据搬移至第二实体单元中。具体来说,属于第一逻辑单元的更新页面数据可能已被分散地写入至第一全域混乱区520及/或第二全域混乱区530中,并且存储器管理电路202会将此些更新页面数据整理并搬移至第二实体单元中。
值得一提的是,在本范例实施例中,判断第二全域混乱区530的实体单元中未被写入数据的实体单元的数目是否小于第二预设数目门槛值的步骤(即,步骤S703)是在写入更新页面数据的步骤(即,步骤S701)之后被执行,并且在判断第二全域混乱区530的实体单元中未被写入数据的实体单元的数目小于第二预设数目门槛值时,执行对应的步骤以避免第二全域混乱区530的实体单元被耗尽。然而,必须了解的是,本发明不限于此,在本发明另一范例实施例中,写入更新页面数据的步骤(即,步骤S701)亦可在步骤S703、S705、S707、S709、S711、S713与S715之后才被执行。
综上所述,本发明范例实施例的存储器管理方法及使用此方法的存储器控制器与存储器储存装置能够将数据区中还未被用来储存数据的实体单元暂时地当作第二全域混乱区的实体单元来使用。基此,当第一全域混乱区的实体单元快被写满时,无需执行数据合并程序亦可藉由第二全域混乱区的实体单元来完成写入指令,由此缩短执行写入指令的时间。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许的更动与润饰,而不脱离本发明的精神和范围。
Claims (31)
1.一种存储器管理方法,用于管理一可复写式非易失性存储器模块的多个实体单元,其中每一该些实体单元具有依序排列的多个实体页面,该些实体单元至少被分组为一数据区与一闲置区,并且该闲置区的该些实体单元用以替换该数据区的该些实体单元以写入数据,该存储器管理方法包括:
配置多个逻辑单元以映射该数据区的该些实体单元,其中每一该些逻辑单元具有多个逻辑页面;
从该闲置区的该些实体单元之中提取多个空的实体单元作为一第一全域混乱区;
从该数据区的该些实体单元之中提取多个空的实体单元作为一第二全域混乱区;
使用该第一全域混乱区的该些实体单元写入多笔更新页面数据,其中该些更新页面数据是属于该些逻辑单元之中的多个已更新逻辑单元;
判断该第一全域混乱区的该些实体单元之中未被写入数据的实体单元的数目是否小于一第一预设数目门槛值;
当该第一全域混乱区的该些实体单元之中未被写入数据的实体单元的数目小于该第一预设数目门槛值时,计算对应该第一全域混乱区的一储存状态评估值并且判断该储存状态评估值是否大于一预设评估门槛值;以及
当该储存状态评估值不大于该预设评估门槛值时,在该第一全域混乱区的该些实体单元被写满之后,使用该第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
2.根据权利要求1所述的存储器管理方法,还包括:
判断该些更新页面数据之中是否存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据;以及
当该储存状态评估值大于该预设评估门槛值且该些更新页面数据之中存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据时,取消该第二全域混乱区。
3.根据权利要求2所述的存储器管理方法,还包括:
当该储存状态评估值大于该预设评估门槛值且该些更新页面数据之中不存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据时,且在该第一全域混乱区的该些实体单元被写满之后,使用该第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
4.根据权利要求1所述的存储器管理方法,
其中计算对应该第一全域混乱区的该储存状态评估值的步骤包括:
根据该些更新页面数据计算对应每一该些已更新逻辑单元的一更新页面数;
识别该些更新页面数之中的一最大更新页面数;以及
将该最大更新页面数乘上该第二全域混乱区域的该些实体单元的数目以获得该储存状态评估值。
5.根据权利要求1所述的存储器管理方法,
其中计算对应该第一全域混乱区的该储存状态评估值的步骤包括:
根据该些更新页面数据计算对应每一该些已更新逻辑单元的一更新页面数;
计算对应该些更新页面数的一平均更新页面数;以及
将该平均更新页面数乘上该第二全域混乱区域的该些实体单元的数目以获得该储存状态评估值。
6.根据权利要求1所述的存储器管理方法,
其中计算对应该第一全域混乱区的该储存状态评估值的步骤包括:
识别该些更新页面数据之中属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的多个更新页面数据;以及
以该些更新页面数据之中属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的该些更新页面数据的数目作为该储存状态评估值。
7.根据权利要求1所述的存储器管理方法,还包括:
判断该第二全域混乱区的该些实体单元之中未被写入数据的实体单元的数目是否小于一第二预设数目门槛值;以及
当该第二全域混乱区的该些实体单元之中未被写入数据的实体单元的数目小于该第二预设数目门槛值时,从该些逻辑单元之中选择一第一逻辑单元并且执行对应该第一逻辑单元的一数据合并程序,其中该第一逻辑单元是映射该些实体单元之中的一第一实体单元并且该数据合并程序包括:
判断该第一实体单元是否属于该第二全域混乱区;以及
当该第一实体单元不属于该第二全域混乱区时,从该闲置区中提取一第三实体单元,从该第一实体单元、该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的有效页面数据搬移至该第三实体单元中,将该第一逻辑单元重新映射至该第三实体单元并且将该第一实体单元关联至该闲置区。
8.根据权利要求7所述的存储器管理方法,还包括:
当该第一实体单元属于该第二全域混乱区,判断该数据区中是否存有一第二实体单元,其中该第二实体单元映射该些逻辑单元之中的一第二逻辑单元并且为空的;
当该数据区中存有该第二实体单元时,将该第一逻辑单元重新映射至该第二实体单元,将该第二逻辑单元重新映射至该第一实体单元,从该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的至少一更新页面数据搬移至该第二实体单元中。
9.根据权利要求8所述的存储器管理方法,还包括:
当该数据区中不存有该第二实体单元时,从该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的至少一更新页面数据搬移至该第二全域混乱区中的多个连续实体页面中。
10.根据权利要求7所述的存储器管理方法,其中该预设评估门槛值是藉由公式(4)来计算:
DET=(SDNT-1)×NPP (4)
其中DET表示该预设评估门槛值,SDNT表示该第二预设数目门槛值,并且NPP表示任一该些实体单元的实体页面的数目。
11.根据权利要求1所述的存储器管理方法,还包括:
根据一整理指令来识别该些逻辑单元之中的多个已删除逻辑单元;以及
将该些已删除逻辑单元所映射的该些实体单元识别为空的。
12.一种存储器控制器,用于控制一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体单元,并且每一该些实体单元具有依序排列的多个实体页面,该存储器控制器包括:
一存储器接口,用以电性连接至该可复写式非易失性存储器模块;以及
一存储器管理电路,电性连接至该存储器接口,
其中该存储器管理电路用以将该些实体单元至少分组为一数据区与一闲置区,其中该闲置区的该些实体单元用以替换该数据区的该些实体单元以写入数据,
其中该存储器管理电路配置多个逻辑单元以映射该数据区的该些实体单元,其中每一该些逻辑单元具有多个逻辑页面,
其中该存储器管理电路从该闲置区的该些实体单元之中提取多个空的实体单元作为一第一全域混乱区,从该数据区的该些实体单元之中提取多个空的实体单元作为一第二全域混乱区,并且使用该第一全域混乱区的该些实体单元写入多笔更新页面数据,其中该些更新页面数据是属于该些逻辑单元之中的多个已更新逻辑单元,
其中该存储器管理电路还用以判断该第一全域混乱区的该些实体单元之中未被写入数据的实体单元的数目是否小于一第一预设数目门槛值,
其中当该第一全域混乱区的该些实体单元之中未被写入数据的实体单元的数目小于该第一预设数目门槛值,该存储器管理电路还用以计算对应该第一全域混乱区的一储存状态评估值,并且判断该储存状态评估值是否大于一预设评估门槛值,
其中当该储存状态评估值不大于该预设评估门槛值时,该存储器管理电路更用以在该第一全域混乱区的该些实体单元被写满之后,使用该第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
13.根据权利要求12所述的存储器控制器,
其中该存储器管理电路还用以判断该些更新页面数据之中是否存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据,
其中当该储存状态评估值大于该预设评估门槛值且该些更新页面数据之中存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据时,该存储器管理电路还用以取消该第二全域混乱区。
14.根据权利要求13所述的存储器控制器,
其中当该储存状态评估值大于该预设评估门槛值且该些更新页面数据之中不存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据时,该存储器管理电路还用以在该第一全域混乱区的该些实体单元被写满之后,使用该第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
15.根据权利要求12所述的存储器控制器,
其中该存储器管理电路根据该些更新页面数据计算对应每一该些已更新逻辑单元的一更新页面数,识别该些更新页面数之中的一最大更新页面数并且将该最大更新页面数乘上该第二全域混乱区域的该些实体单元的数目以获得该储存状态评估值。
16.根据权利要求12所述的存储器控制器,
其中该存储器管理电路根据该些更新页面数据计算对应每一该些已更新逻辑单元的一更新页面数,计算对应该些更新页面数的一平均更新页面数并且将该平均更新页面数乘上该第二全域混乱区域的该些实体单元的数目以获得该储存状态评估值。
17.根据权利要求12所述的存储器控制器,
其中该存储器管理电路识别该些更新页面数据之中属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的多个更新页面数据并且以该些更新页面数据之中属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的该些更新页面数据的数目作为该储存状态评估值。
18.根据权利要求12所述的存储器控制器,
其中该存储器管理电路还用以判断该第二全域混乱区的该些实体单元之中未被写入数据的实体单元的数目是否小于一第二预设数目门槛值,
其中当该第二全域混乱区的该些实体单元之中未被写入数据的实体单元的数目小于该第二预设数目门槛值时,该存储器管理电路从该些逻辑单元之中选择一第一逻辑单元,并且判断该些实体单元之中映射该第一逻辑单元的一第一实体单元是否属于该第二全域混乱区,
其中当该第一实体单元不属于该第二全域混乱区时,该存储器管理电路从该闲置区中提取一第三实体单元,从该第一实体单元、该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的有效页面数据搬移至该第三实体单元中,将该第一逻辑单元重新映射至该第三实体单元并且将该第一实体单元关联至该闲置区。
19.根据权利要求18所述的存储器控制器,
其中当该第一实体单元属于该第二全域混乱区,该存储器管理电路判断该数据区中是否存有一第二实体单元,其中该第二实体单元映射该些逻辑单元之中的一第二逻辑单元并且为空的;
其中当该数据区中存有该第二实体单元时,该存储器管理电路将该第一逻辑单元重新映射至该第二实体单元,将该第二逻辑单元重新映射至该第一实体单元,从该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的至少一更新页面数据搬移至该第二实体单元中。
20.根据权利要求19所述的存储器控制器,
其中当该数据区中不存有该第二实体单元时,该存储器管理电路从该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的至少一更新页面数据搬移至该第二全域混乱区中的多个连续实体页面中。
21.根据权利要求18所述的存储器控制器,其中该预设评估门槛值是藉由公式(4)来计算:
DET=(SDNT-1)×NPP (4)
其中DET表示该预设评估门槛值,SDNT表示该第二预设数目门槛值,并且NPP表示任一该些实体单元的实体页面的数目。
22.一种存储器储存装置,包括:
一可复写式非易失性存储器模块,具有多个实体单元,其中每一该些实体单元具有依序排列的多个实体页面;以及
一存储器控制器,电性连接至该可复写式非易失性存储器模块,
其中该存储器控制器用以将该些实体单元至少分组为一数据区与一闲置区,其中该闲置区的该些实体单元用以替换该数据区的该些实体单元以写入数据,
其中该存储器控制器还用以配置多个逻辑单元以映射该数据区的该些实体单元,其中每一该些逻辑单元具有多个逻辑页面,
其中该存储器控制器从该闲置区的该些实体单元之中提取多个空的实体单元作为一第一全域混乱区,从该数据区的该些实体单元之中提取多个空的实体单元作为一第二全域混乱区,并且使用该第一全域混乱区的该些实体单元写入多笔更新页面数据,其中该些更新页面数据是属于该些逻辑单元之中的多个已更新逻辑单元,
其中该存储器控制器更用以判断该第一全域混乱区的该些实体单元之中未被写入数据的实体单元的数目是否小于一第一预设数目门槛值,
其中当该第一全域混乱区的该些实体单元之中未被写入数据的实体单元的数目小于该第一预设数目门槛值时,该存储器控制器还用以计算对应该第一全域混乱区的一储存状态评估值,并且判断该储存状态评估值是否大于一预设评估门槛值,
其中当该储存状态评估值不大于该预设评估门槛值时,该存储器控制器还用以在该第一全域混乱区的该些实体单元被写满之后,使用该第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
23.根据权利要求22所述的存储器储存装置,
其中该存储器控制器还用以判断该些更新页面数据之中是否存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据,
其中当该储存状态评估值大于该预设评估门槛值且该些更新页面数据之中存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据时,该存储器控制器还用以取消该第二全域混乱区。
24.根据权利要求23所述的存储器储存装置,
其中当该储存状态评估值大于该预设评估门槛值且该些更新页面数据之中不存有属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的至少一更新页面数据时,该存储器控制器还用以在该第一全域混乱区的该些实体单元被写满之后,使用该第二全域混乱区的该些实体单元来写入多笔其他更新页面数据。
25.根据权利要求22所述的存储器储存装置,
其中该存储器控制器根据该些更新页面数据计算对应每一该些已更新逻辑单元的一更新页面数,识别该些更新页面数之中的一最大更新页面数并且将该最大更新页面数乘上该第二全域混乱区域的该些实体单元的数目以获得该储存状态评估值。
26.根据权利要求22所述的存储器储存装置,
其中该存储器控制器根据该些更新页面数据计算对应每一该些已更新逻辑单元的一更新页面数,计算对应该些更新页面数的一平均更新页面数并且将该平均更新页面数乘上该第二全域混乱区域的该些实体单元的数目以获得该储存状态评估值。
27.根据权利要求22所述的存储器储存装置,
其中该存储器控制器识别该些更新页面数据之中属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的多个更新页面数据并且以该些更新页面数据之中属于该第二全域混乱区的该些实体单元所映射的该些逻辑单元的该些更新页面数据的数目作为该储存状态评估值。
28.根据权利要求22所述的存储器储存装置,
其中该存储器控制器还用以判断该第二全域混乱区的该些实体单元之中未被写入数据的实体单元的数目是否小于一第二预设数目门槛值,
其中当该第二全域混乱区的该些实体单元之中未被写入数据的实体单元的数目小于该第二预设数目门槛值时,该存储器控制器从该些逻辑单元之中选择一第一逻辑单元,并且判断该些实体单元之中映射该第一逻辑单元的一第一实体单元是否属于该第二全域混乱区,
其中当该第一实体单元非属于该第二全域混乱区,该存储器控制器从该闲置区中提取一第三实体单元,从该第一实体单元、该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的至少一更新页面数据搬移至该第三实体单元中,将该第一逻辑单元重新映射至该第三实体单元并且将该第一实体单元关联至该闲置区。
29.根据权利要求28所述的存储器储存装置,
其中当该第一实体单元属于该第二全域混乱区时,该存储器控制器判断该数据区中是否存有一第二实体单元,其中该第二实体单元映射该些逻辑单元之中的一第二逻辑单元并且为空的;
其中当该数据区中存有该第二实体单元时,该存储器控制器将该第一逻辑单元重新映射至该第二实体单元,将该第二逻辑单元重新映射至该第一实体单元,从该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的至少一更新页面数据搬移至该第二实体单元中。
30.根据权利要求29所述的存储器储存装置,
其中当该数据区中不存有该第二实体单元时,该存储器控制器从该第一全域混乱区与该第二全域混乱区的该些实体单元中将属于该第一逻辑单元的有效页面数据搬移至该第二全域混乱区中的多个连续实体页面中。
31.根据权利要求28所述的存储器储存装置,其中该预设评估门槛值是藉由公式(4)来计算:
DET=(SDNT-1)×NPP (4)
其中DET表示该预设评估门槛值,SDNT表示该第二预设数目门槛值,并且NPP表示任一该些实体单元的实体页面的数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110048430.7A CN102650971B (zh) | 2011-02-24 | 2011-02-24 | 存储器管理方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110048430.7A CN102650971B (zh) | 2011-02-24 | 2011-02-24 | 存储器管理方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102650971A CN102650971A (zh) | 2012-08-29 |
CN102650971B true CN102650971B (zh) | 2014-12-03 |
Family
ID=46692979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110048430.7A Active CN102650971B (zh) | 2011-02-24 | 2011-02-24 | 存储器管理方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102650971B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775479A (zh) * | 2016-12-21 | 2017-05-31 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170060206A (ko) * | 2015-11-23 | 2017-06-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI615710B (zh) | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111142B2 (en) * | 2002-09-13 | 2006-09-19 | Seagate Technology Llc | System for quickly transferring data |
CN101499316A (zh) * | 2008-01-30 | 2009-08-05 | 群联电子股份有限公司 | 快闪存储器区块管理方法及使用此方法的控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101194238B (zh) * | 2005-06-24 | 2010-05-19 | 松下电器产业株式会社 | 存储器控制器、非易失性存储装置、非易失性存储系统及数据写入方法 |
-
2011
- 2011-02-24 CN CN201110048430.7A patent/CN102650971B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111142B2 (en) * | 2002-09-13 | 2006-09-19 | Seagate Technology Llc | System for quickly transferring data |
CN101499316A (zh) * | 2008-01-30 | 2009-08-05 | 群联电子股份有限公司 | 快闪存储器区块管理方法及使用此方法的控制器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775479A (zh) * | 2016-12-21 | 2017-05-31 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
CN106775479B (zh) * | 2016-12-21 | 2020-05-12 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN102650971A (zh) | 2012-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN103377129B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
US8667210B2 (en) | Memory management method, memory controller and memory storage apparatus | |
CN104679437A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN104732153A (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN106708416B (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN103514096A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
US9032135B2 (en) | Data protecting method, memory controller and memory storage device using the same | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
US20120317346A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN103678162A (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN105988950A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit | |
CN102650971B (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN103544118A (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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20161216 Address after: 12-13 floor, building F3, No. two, innovation industrial park, Hefei high tech Zone, Anhui, China Patentee after: Hefei core Electronics Co., Ltd. Address before: Taiwan, Miaoli, China Town, the southern part of the road 1 Patentee before: Phison Electronics Corp. |