CN102779551A - 数据写入方法、存储器控制器与存储器储存装置 - Google Patents
数据写入方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN102779551A CN102779551A CN2011101198092A CN201110119809A CN102779551A CN 102779551 A CN102779551 A CN 102779551A CN 2011101198092 A CN2011101198092 A CN 2011101198092A CN 201110119809 A CN201110119809 A CN 201110119809A CN 102779551 A CN102779551 A CN 102779551A
- Authority
- CN
- China
- Prior art keywords
- physical blocks
- lpage
- blocks
- data
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提出一种数据写入方法、存储器控制器与存储器储存装置,数据写入方法用于写入属于一个逻辑页面的数据至可复写式非易失性存储器模组中。此方法包括为所有逻辑页面设定标记计数值。本方法还包括:判断对应此逻辑页面的标记计数值是否大于预先定义门槛值;若否,计数对应此逻辑页面的标记计数值并且将上述数据与标记计数值写入至第一储存区或第二储存区中;并且,若是,将上述数据与标记计数值写入至第二储存区中。基此,可有效地识别所储存的数据,并且避免数据因异常断电而遗失。
Description
技术领域
本发明涉及一种数据写入方法以及使用此方法的存储器控制器与存储器储存装置,尤其涉及一种用于可复写式非易失性存储器模组的数据写入方法以及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本式计算机。固态硬盘就是一种以快闪存储器作为储存媒体的储存装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
快闪存储器模组的存储器子模组具有多个实体区块,且每一实体区块具有多个实体页面(physical page),其中在实体区块中写入数据时必须依据实体页面的顺序依序地写入数据。此外,已被写入数据的实体页面必需先被抹除后才能再次用于写入数据。特别是,实体区块为抹除的最小单位,并且实体页面为程式化(亦称写入)的最小单元。因此,在快闪存储器模组的管理中,实体区块会被区分为数据区与闲置区。
数据区的实体区块(亦称为数据实体区块)是已储存数据并且已被映射至逻辑区块的实体区块。具体来说,存储器储存装置的存储器管理电路会将主机系统欲写入的逻辑存取地址转换为逻辑区块的逻辑页面,将欲写入数据的数据写入至某一个实体区块的实体页面并且将此逻辑区块的逻辑页面映射至此实体区块的实体页面。也就是说,在可复写式非易失性存储器模组的管理上,数据区的实体区块单元是被视为已被使用的实体区块(例如,已储存主机系统所写入的数据)。例如,存储器管理电路会使用逻辑区块-实体区块映射表来记载逻辑区块与数据区的实体区块的映射关系,其中逻辑区块中的逻辑页面是依序的对应所映射的实体区块的实体页面。
闲置区的实体区块是用以轮替数据区中的实体区块。具体来说,如上所述,已写入数据的实体区块必须被抹除后才可再次用于写入数据,因此,闲置区的实体区块是被设计用于写入更新数据以替换原先映射逻辑区块的实体区块。基此,在闲置区中的实体区块为空或可使用的实体区块,即无记录数据或标记为已没用的无效数据。
也就是说,在可复写式非易失性存储器模组的管理上,数据区与闲置区的实体区块的实体页面是以轮替方式来映射逻辑区块的逻辑页面,以储存主机系统所写入的数据。甚至,在某些情况下,存储器管理电路会从闲置区提取多个实体区块来分别地储存属性不同但属于同一逻辑区块的数据。例如,存储器管理电路会从闲置区提取实体区块作为全域混乱实体区块以储存小量的更新数据,并且从闲置区提取实体区块作为某一数据实体区块的日志(log)实体区块(亦称为子实体区块)以储存连续的大量更新数据。特别是,一个逻辑页面的数据可能会重复地被更新并且此些更新数据被分散地储存于不同的实体区块中。基此,可复写式非易失性存储器模组可能会同时储存有属于同一个逻辑页面的旧数据与新数据。为了能够识别新旧数据,在目前的技术中,每当执行写入指令时,存储器管理电路需一并更新用以记录页面映射关系的映射表。
在存储器储存装置运作过程中,由存储器管理电路所维护的映射表会储存在缓冲存储器中,以利于更新。由于缓冲存储器为易失性存储器,为避免数据遗失,例如,存储器管理电路会在预定的时间间隔下周期地将所维护的映射表储存至可复写式非易失性存储器模组,或者当存储器储存装置接收到关机指令时,存储器管理电路会将所维护的映射表储存至可复写式非易失性存储器模组。然而,在缓冲存储器中尚未被储存至可复写式非易失性存储器模组的映射表可能会因为存储器储存装置的不正常断电而遗失。也就是说,在发生不正常断电下,存储器电路将无法即时将缓冲存储器内的映射表储存于可复写式非易失性存储器模组中,当存储器储存装置重新启动时,存储器管理电路将无法识别全域混乱实体区块与子实体区块中的哪些数据是新的或哪些数据为旧的。此时,因此,如何能够在异常断电(power failure)后,有效地识别最新的数据,是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据写入方法,其能够在存储器储存装置异常断电后正确地识别所储存的数据,以避免数据遗失。
本发明提供一种存储器控制器,其能够在存储器储存装置异常断电后正确地识别所储存的数据,以避免数据遗失。
本发明提供一种存储器储存装置,其能够在异常断电时避免数据遗失。
本发明实施例提出一种数据写入方法,用于写入数据至可复写式非易失性存储器模组中,其中此可复写式非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,此些实体区块被逻辑地分组为至少一数据区与一闲置区,多个逻辑区块被配置以映射数据区的实体区块,每一逻辑区块具有多个逻辑页面,欲写入的数据属于此些逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。本数据写入方法包括:为此些逻辑页面设定多个标记计数值,其中每一逻辑页面对应此些标记计数值的其中之一。本数据写入方法还包括从闲置区的实体区块之中提取至少一实体区块作为第一储存区;从闲置区的实体区块之中提取至少另一实体区块作为第二储存区;并且判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。本数据写入方法亦包括,当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,计数对应第一逻辑页面的标记计数值并且将欲写入的数据与对应第一逻辑页面的标记计数值写入至第一储存区或第二储存区中。本数据写入方法还包括,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,将欲写入的数据与对应第一逻辑页面的标记计数值写入至第二储存区中。
本发明实施例提出一种数据写入方法,用于写入数据至一可复写式非易失性存储器模组中,其中此可复写式非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,此些实体区块被逻辑地分组为至少一数据区与一闲置区,多个逻辑区块被配置以映射数据区的实体区块,每一逻辑区块具有多个逻辑页面,上述数据属于此些逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。本数据写入方法包括为此些逻辑页面设定多个标记计数值,其中每一逻辑页面对应此些标记计数值的其中之一。本数据写入方法还包括从闲置区的实体区块之中提取一实体区块作为全域混乱实体区块,从闲置区的实体区块之中提取另一实体区块作为对应第一实体区块的子实体区块并且判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。本数据写入方法还包括,当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,计数对应第一逻辑页面的标记计数值并且将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块或对应第一实体区块的子实体区块中。本数据写入方法还包括,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,将上述数据与对应第一逻辑页面的标记计数值写入至对应第一实体区块的子实体区块中。
在本发明的一实施例中,上述的将上述数据与对应第一逻辑页面的标记计数值一起写入至全域混乱实体区块或对应第一实体区块的子实体区块中的步骤包括:将上述数据写入至全域混乱实体区块或对应第一实体区块的子实体区块之中的第一实体页面的数据位区中;以及将对应第一逻辑页面的标记计数值写入至第一实体页面的冗余位区中。
在本发明的一实施例中,上述的数据写入方法还包括:从闲置区的实体区块之中提取一第二实体区块;从全域混乱实体区块、第一实体区块或对应第一实体区块的子实体区块中读取属于第一逻辑区块的逻辑页面之中的一目标逻辑页面的有效数据;判断全域混乱实体区块是否储存有属于目标逻辑页面的数据;以及当全域混乱实体区块未储存有属于目标逻辑页面的数据时,重置对应目标逻辑页面的标记计数值。此外,上述的数据写入方法还包括将所读取的有效数据、对应目标逻辑页面的逻辑地址信息与对应目标逻辑页面的标记计数值写入至第二实体区块中。
在本发明的一实施例中,上述的数据写入方法还包括将对应第一逻辑页面的逻辑地址信息写入至第一实体页面的冗余位区中。
本发明实施例提出一种数据写入方法,用于写入数据至一可复写式非易失性存储器模组中,其中此可复写式非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,此些实体区块被逻辑地分组为至少一数据区与一闲置区,多个逻辑区块被配置以映射数据区的实体区块,每一逻辑区块具有多个逻辑页面,上述数据属于此些逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。本数据写入方法包括为此些逻辑页面设定多个标记计数值,其中每一逻辑页面对应此些标记计数值的其中之一。本数据写入方法还包括从闲置区的实体区块之中提取一实体区块作为全域混乱实体区块,从闲置区的实体区块之中提取另一实体区块作为对应第一实体区块的子实体区块并且判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。本数据写入方法还包括,当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,计数对应第一逻辑页面的标记计数值并且将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块或对应第一实体区块的子实体区块中。本数据写入方法还包括,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块中。
本发明实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块,并且每一实体区块具有依序排列的多个实体页面。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模组。存储器管理电路电性连接至存储器接口,并且用以将此些实体区块逻辑地分组为至少一数据区与一闲置区。此外,存储器管理电路还用以配置多个逻辑区块以映射数据区些实体区块,并且每一逻辑区块具有多个逻辑页面。另外,存储器管理电路为此些逻辑页面设定多个标记计数值,并且每一逻辑页面对应此些标记计数值的其中之一。在此,存储器管理电路还用以从闲置区的该些实体区块之中提取一实体区块作为全域混乱实体区块并且还用以从主机系统中接收一数据,其中此数据属于此些逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。再者,存储器管理电路还用以从闲置区的该些实体区块之中提取另一实体区块作为对应第一实体区块的子实体区块,并且存储器管理电路还用以判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,存储器管理电路计数对应第一逻辑页面的标记计数值并且将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块或对应第一实体区块的子实体区块中。并且,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,存储器管理电路将上述数据与对应第一逻辑页面的标记计数值写入至对应第一实体区块的子实体区块中。
在本发明的一实施例中,上述的存储器管理电路将上述数据写入至全域混乱实体区块或对应第一实体区块的子实体区块之中的一第一实体页面的一数据位区中,并且将对应第一逻辑页面的标记计数值写入至此第一实体页面的一冗余位区中。
在本发明的一实施例中,上述的存储器管理电路还用以从闲置区的这些实体区块之中提取一第二实体区块,从全域混乱实体区块、第一实体区块或对应第一实体区块的子实体区块中读取属于第一逻辑区块的逻辑页面之中的一目标逻辑页面的有效数据,并且判断全域混乱实体区块是否储存有属于此目标逻辑页面的数据。当全域混乱实体区块未储存有属于此目标逻辑页面的数据时,存储器管理电路重置对应目标逻辑页面的标记计数值。此外,上述的存储器管理电路将所读取的有效数据、对应此目标逻辑页面的逻辑地址信息与对应此目标逻辑页面的标记计数值写入至第二实体区块中。
在本发明的一实施例中,上述的存储器管理电路还用以将对应第一逻辑页面的逻辑地址信息写入至第一实体页面的冗余位区中。
一种存储器控制器,用于控制可复写式非易失性存储器模组,其中此可复写式非易失性存储器模组具有多个实体区块,并且每一实体区块具有依序排列的多个实体页面。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模组。存储器管理电路电性连接至存储器接口,并且用以将此些实体区块逻辑地分组为至少一数据区与一闲置区。此外,存储器管理电路还用以配置多个逻辑区块以映射数据区些实体区块,并且每一逻辑区块具有多个逻辑页面。另外,存储器管理电路为此些逻辑页面设定多个标记计数值,并且每一逻辑页面对应此些标记计数值的其中之一。在此,存储器管理电路还用以从闲置区的该些实体区块之中提取一实体区块作为全域混乱实体区块并且还用以从主机系统中接收一数据,其中此数据属于此些逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。再者,存储器管理电路还用以从闲置区的该些实体区块之中提取另一实体区块作为对应第一实体区块的子实体区块,并且存储器管理电路还用以判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,存储器管理电路计数对应第一逻辑页面的标记计数值并且将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块或对应第一实体区块的子实体区块中。并且,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,存储器管理电路将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块中。
本发明实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性存储器模组与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模组具有多个实体区块,并且每一实体区块具有依序排列的多个实体页面。存储器控制器电性连接至连接器接口与可复写式非易失性存储器模组,并且用以将此些实体区块逻辑地分组为至少一数据区与一闲置区。此外,存储器控制器还用以配置多个逻辑区块以映射数据区的该些实体区块,并且每一逻辑区块具有多个逻辑页面。另外,存储器控制器为此些逻辑页面设定多个标记计数值,并且每一逻辑页面对应此些标记计数值的其中之一。存储器控制器还用以从闲置区的实体区块之中提取至少一实体区块作为全域混乱实体区块。此外,存储器控制器还用以从主机系统中接收一数据,其中此数据属于上述逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。存储器控制器还用以从闲置区的实体区块之中提取至少另一实体区块作为对应第一实体区块的子实体区块。再者,存储器控制器还用以判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,存储器控制器计数对应第一逻辑页面的标记计数值并且将上述数据与对应第一逻辑页面的标记计数值写入至全域混乱实体区块或对应第一实体区块的子实体区块中。并且,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,存储器控制器将上述数据与对应第一逻辑页面的标记计数值写入至对应第一实体区块的子实体区块中。
在本发明的一实施例中,上述的存储器控制器将上述数据写入至全域混乱实体区块或对应第一实体区块的子实体区块的一第一实体页面的一数据位区中,并且将对应第一逻辑页面的标记计数值写入至第一实体页面的一冗余位区中。
在本发明的一实施例中,上述的存储器控制器还用以从闲置区的实体区块之中提取一第二实体区块,从全域混乱实体区块、第一实体区块或对应第一实体区块的子实体区块中读取属于第一逻辑区块的逻辑页面之中的一目标逻辑页面的有效数据,并且判断全域混乱实体区块是否储存有属于目标逻辑页面的数据。当全域混乱实体区块未储存有属于此目标逻辑页面的数据时,存储器控制器重置对应目标逻辑页面的标记计数值。此外,上述的存储器控制器还将所读取的有效数据、对应目标逻辑页面的逻辑地址信息与对应目标逻辑页面的标记计数值写入至第二实体区块中。
在本发明的一实施例中,上述的存储器控制器还将对应第一逻辑页面的逻辑地址信息写入至第一实体页面的冗余位区中。
本发明实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性存储器模组与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模组具有多个实体区块,并且每一实体区块具有依序排列的多个实体页面。存储器控制器电性连接至连接器接口与可复写式非易失性存储器模组,并且用以将此些实体区块逻辑地分组为至少一数据区与一闲置区。此外,存储器控制器还用以配置多个逻辑区块以映射数据区的该些实体区块,并且每一逻辑区块具有多个逻辑页面。另外,存储器控制器为此些逻辑页面设定多个标记计数值,并且每一逻辑页面对应此些标记计数值的其中之一。存储器控制器还用以从闲置区的实体区块之中提取至少一实体区块作为全域混乱实体区块。此外,存储器控制器还用以从主机系统中接收一数据,其中此数据属于上述逻辑区块之中的第一逻辑区块的第一逻辑页面并且第一逻辑区块映射数据区的实体区块之中的第一实体区块。存储器控制器还用以从闲置区的实体区块之中提取至少另一实体区块作为对应第一实体区块的子实体区块。再者,存储器控制器还用以判断此些标记计数值之中对应第一逻辑页面的标记计数值是否大于预先定义门槛值。当对应第一逻辑页面的标记计数值非大于预先定义门槛值时,存储器控制器计数对应第一逻辑页面的标记计数值并且将上述数据、对应该第一逻辑页面的一逻辑地址信息与对应第一逻辑页面的标记计数值写入至全域混乱实体区块或对应第一实体区块的子实体区块中。并且,当对应第一逻辑页面的标记计数值大于预先定义门槛值时,存储器控制器将上述数据、对应该第一逻辑页面的一逻辑地址信息与对应第一逻辑页面的标记计数值写入至全域混乱实体区块中。
基于上述,本发明的数据写入方法、存储器控制器与存储器储存装置能够在发生异常断电后,有效地识别所储存的数据之中最新的数据,以避免数据遗失。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A与1B是根据本发明所示的数据写入方法的概要流程图。
图2A是根据本发明实施例所示的主机系统与存储器储存装置。
图2B是根据本发明实施例所示的计算机、输入/输出装置与存储器储存装置的示意图。
图2C是根据本发明另一实施例所示的主机系统与存储器储存装置的示意图。
图3为图2A所示的存储器储存装置的概要方框图。
图4是根据本发明实施例所示的存储器控制器的概要方框图。
图5与图6是根据本发明实施例所示管理可复写式非易失性存储器模组的实体区块的示意图。
图7~图9是根据本发明实施例所示的使用子实体区块来写入更新数据的范例。
图10是根据本发明实施例所示的使用子实体区块与全域混乱实体区块写入数据的示意图。
图11是根据本发明实施例所示的实体页面的数据结构的范例示意图。
图12是根据本发明实施例所示的写入来自于主机系统的数据的流程图。
图13是根据本发明一实施例所示的使用全域混乱实体区块来写入数据的流程图。
图14是根据本发明一实施例所示的使用子实体区块来写入数据的流程图。
图15是根据本发明实施例所示的执行数据合并程序的流程图。
附图标记:
S101、S103、S105、S107、S109、S111:数据写入的步骤
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):逻辑存取地址
S1201、S1203、S1205、S1207、S1209:数据写入的步骤
S1301、S1303、S1305、S1307、S1309:使用全域混乱实体单区块数据写入的详细步骤
S1401、S1403、S1405、S1407:使用子实体单区块数据写入的详细步骤
S1501、S1503、S1505、S1507、S1509、S1511、S1513:数据合并的步骤
具体实施方式
图1A与1B是根据本发明所示的数据写入方法的概要流程图。
请参照图1A与图1B,在本发明的数据写入方法中,闲置区的至少一实体区块会被提取作为第一储存区(S101)并且闲置区的至少另一实体区块会被提取作为一第二储存区(S103)。在此,第一储存区与第二储存区是用以写入来自于主机系统的数据。例如,第一储存区(或第二储存区)可以为全域混乱实体区块或子实体区块。此外,对应每一逻辑页面的标记计数值会被设定(S105),其中标记计数值为一累计数值,用以识别最新的数据。再者,当欲写入数据至某一逻辑页面(以下称为第一逻辑页面)时,对应第一逻辑页面的标记计数值会被判断是否大于预先定义门槛值(S107)。倘若对应第一逻辑页面的标记计数值被判断非大于预先定义门槛值,对应第一逻辑页面的标记计数值会被计数并且此数据与对应第一逻辑页面的标记计数值会被写入至第一储存区或第二储存区中(S109)。倘若对应第一逻辑页面的标记计数值被判断大于预先定义门槛值,对应第一逻辑页面的标记计数值不会再被计数并且此数据与对应第一逻辑页面的标记计数值会被写入至第二储存区中(S111)。也就是说,当对应某一逻辑页面的标记计数值大于预先定义门槛值时,欲写入此逻辑页面的数据仅会被写入至特定储存区中依序排列的实体页面中。基此,对应此逻辑页面的最新数据能可被正确地识别。对能够更了解本发明,以下将举一实施例中,详细描述本发明。
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模组与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图2A是根据本发明实施例所示的主机系统与存储器储存装置。
请参照图2A,主机系统1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、系统总线1108与数据传输接1110。输入/输出装置1106包括如图2B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接1110与主机系统1000的其他元件电性连接。藉由微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图2B所示的随身盘1212、记忆卡1214或固态硬盘(SolidState Drive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000可实质地为可与存储器储存装置100配合以储存数据的任意系统。虽然在本实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄像机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memorystick)1316、CF卡1318或内嵌式储存装置1320(如图2C所示)。内嵌式储存装置1320包括内嵌式多媒体卡(Embedded MMC,eMMC)。值得一提的是,内嵌式多媒体卡是直接电性连接于主机系统的基板上。
图3为图2A所示的存储器储存装置的概要方框图。
请参照图3,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模组106。
在本实施例中,连接器102是相容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速接口外设部件互连总线(Peripheral ComponentInterconnect Express,PCI Express)标准、通用串行总线(UniversalSerial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、小型快闪(Compact Flash,CF)接口标准、集成式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取、抹除与合并等运作。
可复写式非易失性存储器模组106是电性连接至存储器控制器104,并且具有多个实体区块以储存主机系统1000所写入的数据。在本实施例中,每一实体区块分别具有多个实体页面,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面的容量为4千位组(Kilobyte,KB)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目的一并被抹除的存储单元。实体页面为程式化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位区(data bit area)与冗余位区(redundancybit area)。数据位区用以储存使用者的数据,而冗余位区用以储存系统的数据(例如,错误检查与纠正码)。
在本实施例中,可复写式非易失性存储器模组106为多阶存储单元(Multi Level Cell,MLC)NAND快闪存储器模组。然而,本发明不限于此,可复写式非易失性存储器模组106亦可是单阶存储单元(SingleLevel Cell,SLC)NAND快闪存储器模组、其他快闪存储器模组或其他具有相同特性的存储器模组。
图4是根据本发明实施例所示的存储器控制器的概要方框图。
请参照图4,存储器控制器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标准、IEEE 1394标准、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会依据此错误检查与纠正码对所读取的数据执行错误检查与纠正程序。
图5与图6是根据本发明实施例所示管理可复写式非易失性存储器模组的实体区块的示意图。
请参照图5,可复写式非易失性存储器模组106具有实体区块410(0)~410(N),并且存储器控制器104的存储器管理电路202会将实体区块410(0)~410-(N)逻辑地分组为数据区(data area)502、闲置区(free area)504、系统区(system area)506与取代区(replacementarea)508。
逻辑上属于数据区502与闲置区504的实体区块是用以储存来自于主机系统1000的数据。具体来说,数据区502的实体区块(亦称为数据实体区块)是被视为已储存数据的实体区块,而闲置区504的实体区块(亦称为闲置实体区块)是用以写入新数据的实体区块。例如,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体区块作为日志(log)实体区块,并且将数据写入至此日志实体区块中。再例如,当对某一逻辑区块执行数据合并程序时,存储器管理电路202会从闲置区504中提取实体区块作为对应此逻辑区块的新数据实体区块来写入数据,并且替换原先映射此逻辑区块的数据实体区块。
逻辑上属于系统区506的实体区块是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模组的制造商与型号、可复写式非易失性存储器模组的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区508中的实体区块是用于坏实体区块取代程序,以取代损坏的实体区块。具体来说,倘若取代区508中仍存有正常的实体区块并且数据区502的实体区块损坏时,存储器管理电路202会从取代区508中提取正常的实体区块来更换损坏的实体区块。
基于上述,在存储器储存装置100的运作中,数据区502、闲置区504、系统区506与取代区508的实体区块会动态地变动。例如,用以轮替储存数据的实体区块会变动地属于数据区502或闲置区504。
值得一提的是,在本实施例中,存储器管理电路202是以每一实体区块为单位来进行管理。然而,本发明不限于此,在另一实施例中,存储器管理电路202亦可将实体区块分组为多个实体单元,并且以实体单元为单位来进行管理。例如,每一实体单元可由同一存储器子模组或不同存储器子模组中的至少一个实体区块所组成。
请参照图6,存储器管理电路202会配置逻辑区块610(0)~610(H)以映射数据区502的实体区块,其中每一逻辑区块具有多个逻辑页面并且此些逻辑页面是依序地映射对应的数据实体区块的实体页面。例如,在存储器储存装置100被格式化时,逻辑区块610(0)~610(H)会初始地映射数据区502的实体区块410(0)~410(F-1)。
在本发明实施例中,存储器管理电路202会维护逻辑区块-实体区块映射表(logical block-physical block mapping table)以记录逻辑区块610(0)~610(H)与数据区502的实体区块之间的映射关系。此外,由于主机系统1000是以逻辑存取地址(例如,扇区(Sector))为单位来存取数据,当主机系统1000存取数据时存储器管理电路202会将对应存储器储存装置100的逻辑存取地址710(0)~710(K)转换成对应的逻辑页面。例如,当主机系统1000欲存取某一逻辑存取地址时,存储器管理电路202会将主机系统1000所存取的逻辑存取地址转换为以对应的逻辑区块与逻辑页面所构成的多维地址,并且通过逻辑区块-实体区块映射表于对应的实体页面中存取数据。
图7~图9是根据本发明实施例所示的使用子实体区块来写入更新数据的范例。
请同时参照图7~图9,例如,在逻辑区块610(0)是映射至实体区块410(0)的映射状态下,当存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑区块610(0)的逻辑页面时,存储器管理电路202会依据逻辑区块-实体区块映射表识别逻辑区块610(0)目前是映射至实体区块410(0)并且从闲置区504中提取实体区块410(F)作为子实体区块来轮替实体区块410(0)。然而,当存储器管理电路202将新数据写入至实体区块410(F)的同时,存储器管理电路202不会立刻将实体区块410(0)中的所有有效数据搬移至实体区块410(F)而抹除实体区块410(0)。具体来说,存储器管理电路202会将实体区块410(0)中欲写入实体页面之前的有效数据(即,实体区块410(0)的第0实体页面与第1实体页面中的数据)复制至实体区块410(F)的第0实体页面与第1实体页面中(如图7所示),并且将新数据写入至实体区块410(F)的第2~4个实体页面中(如图8所示)。此时,存储器管理电路202即完成写入的运作。因为实体区块410(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块410(0)中的其他有效数据搬移至实体区块410(F)可能会造成无谓的搬移。此外,数据必须依序地写入至实体区块内的实体页面,因此,存储器管理电路202仅会先搬移欲写入实体页面之前的有效数据(即,储存在实体区块410(0)的第0实体页面与第0实体页面中数据),并且暂不搬移其余有效数据(即,储存在实体区块410(0)的第5~K实体页面中数据)。
在本实施例中,暂时地维持此等暂态关系的运作称为开启(open)母子区块,并且原实体区块(例如,上述实体区块410(0))称为母实体区块而日志(log)实体区块(例如,上述与实体区块410(F))称为子实体区块。在此,一个母实体区块以及其对应的至少一子实体区块称为母子区块组。
之后,当需要将实体区块410(0)与实体区块410(F)的数据合并(merge)时,存储器管理电路202会将实体区块410(0)与实体区块410(F)的数据整并至一个实体区块,由此提升实体区块的使用效率。在此,合并母子区块的运作称为数据合并程序或关闭(close)母子区块。例如,如图9所示,当进行关闭母子区块时,存储器管理电路202会将实体区块410(0)中剩余的有效数据(即,实体区块410(0)的第5~K实体页面中的数据)复制至替换实体区块410(F)的第5实体页面~第K实体页面中,然后对实体区块410(0)执行抹除操作并将抹除后的实体区块410(0)关联至闲置区504,同时,将实体区块410(F)关联至数据区502。也就是说,存储器管理电路202会在逻辑区块-实体区块映射表中将逻辑区块610(0)重新映射至实体区块410(F)。此外,在本实施例中,存储器管理电路202会建立闲置区实体区块表(未示出)来记录目前被关联至闲置区504的实体区块。值得一提的是,闲置区504中实体区块的数目是有限的,基此,在存储器储存装置100运作期间,已开启的母子区块组的数目亦会受到限制。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子区块组的数目达到上限时,存储器管理电路202需关闭至少一组目前已开启的母子区块组后才可执行此写入指令。
除了上述使用日志实体区块来写入更新数据外,在本实施例中,在本实施例中,存储器管理电路202还会从闲置区504中提取至少一实体区块作为全域混乱(Global Random)实体区块并且使用全域混乱实体区块来写入更新数据。例如,倘若主机系统1000欲更新的逻辑页面的数据已被写入至日志实体区块时,此更新数据会被写入至全域混乱实体区块,以避免反复执行上述数据合并程序。
图10是根据本发明实施例所示的使用子实体区块与全域混乱实体区块写入数据的示意图。
请参照图10,假设实体区块410(S-1)被提取作为全域混乱实体区块并且在图8所示的储存状态下主机系统1000欲写入更新数据至逻辑区块610(0)的第1逻辑页面时,存储器管理电路202会将此更新数据写入至全域混乱实体区块中第一个空的实体页面(例如,实体区块410(S-1)的第0实体页面)中。
在本实施例中,当目前所使用的全域混乱实体区块已被写满时,存储器管理电路202会再从闲置区504中提取另一个实体区块作为新的全域混乱实体区块,直到作为全域混乱实体区块的实体区块的数目达到预设值为止。具体来说,闲置区504的实体区块是有限的,因此,作为全域混乱实体区块的实体区块的数目亦会受到限制。当作为全域混乱实体区块的实体区块的数目达到预设值时,存储器管理电路202会执行上述数据合并程序,对所储存的数据皆为无效数据的全域混乱实体区块执行抹除运作并且将已抹除的实体区块关联至闲置区504。由此,在执行下一个写入指令时,存储器管理电路202就可再从闲置区504提取空的实体区块作为全域混乱实体区块。
如图10所示,在此储存状态下,母实体区块410(0)的第1实体页面、子实体区块410(F)的第1实体页面以及全域混乱实体区块410(S-1)皆储存有属于逻辑区块610(0)的第1逻辑页面的数据。为了识别全域混乱实体区块410(S-1)所储存的数据为最新的数据,如上所述,存储器管理电路202会维护页面映射表以记录此更新关系,并且周期地将页面映射表储存至可复写式非易失性存储器模组106中。例如,存储器储存装置100运作所需的映射表会储存于系统区506中。
在本发明一实施例中,存储器管理电路202会为所有逻辑页面设定多个标记计数值,以记录逻辑页面被更新的次数。具体来说,每当写入某一逻辑页面的数据时,对应此逻辑页面的标记计数值会被加1。在本实施例中,一个逻辑页面会对应一个标记计数值。然而,本发明不限于此,例如,在本发明另一实施例中,数个逻辑页面对应同一个标记计数值。此外,在本发明另一实施例中,标记计数值亦可以其他预定数值来增加。
特别是,当写入数据至实体页面时,存储器管理电路202会一并将欲写入的逻辑页面的逻辑地址信息(例如,编号)以及对应此逻辑页面的标记计数值写入至此实体页面的冗余位区(如图11所示)。基此,当暂存于缓冲存储器252中的映射表因存储器储存装置100不正常断电而遗失时,存储器管理电路202可根据每一实体页面的冗余位区中的信息(即,逻辑地址信息)识别每一逻辑页面所映射的实体页面。特别是,存储器管理电路202可根据标记计数值来识别最新的数据。
值得一提的是,冗余位区的储存空间有限,所以所记录的标记计数值仅能在一有限的范围。在本实施例中,当标记计数值大于一预先定义门槛值时,存储器管理电路202将不会再计数此标记计数值。例如,标记计数值的范围是介于0~255时,此预先定义门槛值会被设定为254。
在本发明实施例中,当欲写入更新数据至实体页面时,存储器管理电路202会判断欲写入的更新数据所属的逻辑页面的标记计数值是否大于预先定义门槛值。当标记计数值非大于预先定义门槛值时,存储器管理电路202会计数此标记计数值并且根据更新数据的特征使用日志实体区块来写入此更新数据(如图7与8所示)或使用全域混乱实体区块来写入此更新数据(如图10所示)。然而,当标记计数值大于预先定义门槛值时,存储器管理电路202不会计数此标记计数值并且仅使用日志实体区块来写入此更新数据。具体来说,由于标记计数值无法再被计数,因此,无法再用于识别最新的更新数据。在本实施例中,由于实体区块的实体页面必须依序地被写入,因此,仅使用日志实体区块来写入后续的更新数据下,存储器管理电路202仍可根据实体页面的顺序识别最新的数据。
必须了解的,在本实施例中,当标记计数值大于预先定义门槛值时,存储器管理电路202仅使用日志实体区块来写入此更新数据。然而,在本发明另一实施例中,当标记计数值大于预先定义门槛值时,存储器管理电路202亦可仅使用全域混乱实体区块来写入此更新数据,由此有效地识别最新数据。
如上所述,在适当时机,存储器管理电路202会选择一个逻辑区块执行数据合并程序,并且属于此逻辑区块的逻辑页面会被依序地复制到从闲置区504中所提取的一个实体区块中。特别是,在执行数据合并程序以复制逻辑页面的有效数据时,存储器管理电路202会一并判断全域混乱实体区是否储存有属于此逻辑页面的数据。倘若全域混乱实体区未储存有属于此逻辑页面的数据时,存储器管理电路202会重置此逻辑页面的标记计数值。例如,标记计数值会被重置为0。
具体来说,当对一个逻辑区块执行数据合并程序时,属于此逻辑区块的最新数据都会被复制到从闲置区504中所提取的实体区块并且对应此逻辑区块的所有日志实体区块都会进行抹除运作。因此,倘若全域混乱实体区未储存有属于此逻辑区块的逻辑页面的数据时,在执行数据合并之后可复写式非易失性存储器模组106中将不会存有属于此逻辑页面的数据,因此,逻辑页面的标记计数值可被重置,而不会影响新旧数据的识别。
基于上述,本发明实施例的存储器储存装置及其存储器控制器可在发生异常断电并重新启动之后,根据实体页面中的逻辑地址信息以及标记计数值来识别所储存的数据,由此避免数据遗失。
图12是根据本发明实施例所示的写入来自于主机系统的数据的流程图。为方便说明,在此假设欲写入的数据是属于第一逻辑区块的第一逻辑页面并且第一逻辑区块原始地映射数据区502的第一实体区块。
请参照图12,在步骤S1201,存储器管理电路202会为每一逻辑页面设定一标记计数值。之后,在步骤S1203中存储器管理电路202会判断对应第一逻辑页面的标记计数值是否大于预先定义门槛值。
倘若对应第一逻辑页面的标记计数值非大于预先定义门槛值时,在步骤S1205中,存储器管理电路202会计数对应第一逻辑页面的标记计数值。然后,在步骤S1207中,存储器管理电路202会将欲写入的数据、对应第一逻辑页面的逻辑地址信息与对应第一逻辑页面的标记计数值依序地写入至全域混乱实体区块或对应第一实体区块的子实体区块的一个实体页面中。具体来说,在步骤S1207中,存储器管理电路202会根据欲写入的数据的特性,判断使用全域混乱实体区块或子实体区块来写入数据。
倘若对应第一逻辑页面的标记计数值大于预先定义门槛值时,在步骤S1209中,存储器管理电路202会将欲写入的数据、对应第一逻辑页面的逻辑地址信息与对应第一逻辑页面的标记计数值依序地写入至对应第一实体区块的子实体区块的一个实体页面中。
图13是根据本发明一实施例所示的使用全域混乱实体区块来写入数据的流程图。
请参照图13,在步骤S1301中,存储器管理电路202会判断是否需要执行数据合并程序。
倘若判断需要执行数据合并程序时,在步骤S1303中,存储器管理电路202会选择一个逻辑区块并且对此逻辑区块执行数据合并程序。
之后,在步骤S1305中,存储器管理电路202会判断全域混乱实体区块是否已被写满。
倘若全域混乱实体区块已被写满时,在步骤S1307中,存储器管理电路202会从闲置区504中提取一个实体区块作为新的全域混乱实体区块。
最后,在步骤S1309中,存储器管理电路202会将欲写入的数据写入至全域混乱实体区块中。
图14是根据本发明一实施例所示的使用子实体区块来写入数据的流程图。
请参照图14,在步骤S1401中,存储器管理电路202会判断是否需要执行数据合并程序。
倘若判断需要执行数据合并程序时,在步骤S1403中,存储器管理电路202会选择一个逻辑区块并且对此逻辑区块执行数据合并程序。
之后,在步骤S1405中存储器管理电路202会从闲置区504中提取一个实体区块作为对应欲写入的逻辑区块所映射的实体区块的子实体区块。最后,在步骤S1407中,存储器管理电路202会将欲写入的数据写入至此子实体区块中。
图15是根据本发明实施例所示的执行数据合并程序的流程图。为方便说明,在此假设欲对第一逻辑区块执行数据合并程序并且第一逻辑区块原始地映射数据区502的第一实体区块。
请参照图15,在步骤S1501中,存储器管理电路202会从闲置区504中提取一个实体区块(以下称为第二实体区块)。
在步骤S1503中,存储器管理电路202会从全域混乱实体区块、第一实体区块或对应第一实体区块的子实体区块中依序地读取属于第一逻辑区块的其中一个逻辑页面(以下称为目标逻辑页面)的有效数据(即,最新的数据)。并且,在步骤S1505中,存储器管理电路202会判断全域混乱实体区块是否储存有属于此逻辑页面的数据。
倘若全域混乱实体区块未储存有属于目标逻辑页面的数据时,在步骤S1507中,存储器管理电路202会重置对应目标逻辑页面的标记计数值。
之后,在步骤S1509中,存储器管理电路202会将属于目标逻辑页面的有效数据、对应目标逻辑页面的逻辑地址信息与对应目标逻辑页面的标记计数值写入至第二实体区块的对应实体页面中。
然后,在步骤S1511中,存储器管理电路202会判断是否仍有属于第一逻辑区块的所有有效数据未被写入至第二实体区块中。
倘若仍有属于第一逻辑区块的有效数据未被写入至第二实体区块时,步骤S1503会被执行。
倘若属于第一逻辑区块的所有有效数据皆已被写入至第二实体区块时,在步骤S1513中,存储器管理电路202会在逻辑区块-实体区块映射表中将第一逻辑区块重新映射至第二实体区块并且对第一实体区块与其子实体区块执行抹除运作。
综上所述,本发明实施例的数据写入方法是为每一逻辑页面设定对应的标记计数值并且在写入数据时一并将逻辑页面的逻辑地址信息和标记计数值写入至实体页面中。基此,当存储器储存装置异常断电时,在多个实体页面中属于同一个逻辑页面的数据可正确的被识别,由此避免数据遗失。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许更动与润饰,而不脱离本发明的精神和范围。
Claims (16)
1.一种数据写入方法,用于写入一数据至一可复写式非易失性存储器模组中,其中该可复写式非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,该些实体区块被逻辑地分组为至少一数据区与一闲置区,多个逻辑区块被配置以映射该数据区的该些实体区块,每一该些逻辑区块具有多个逻辑页面,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,该数据写入方法包括:
为该些逻辑页面设定多个标记计数值,其中每一该些逻辑页面对应该些标记计数值的其中之一;
从该闲置区的该些实体区块之中提取至少一实体区块作为一第一储存区;
从该闲置区的该些实体区块之中提取至少另一实体区块作为一第二储存区;
判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值;
当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,计数对应该第一逻辑页面的该标记计数值并且将该数据与对应该第一逻辑页面的该标记计数值写入至该第一储存区或该第二储存区中;以及
当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,将该数据与对应该第一逻辑页面的该标记计数值写入至该第二储存区中。
2.一种数据写入方法,用于写入一数据至一可复写式非易失性存储器模组中,其中该可复写式非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,该些实体区块被逻辑地分组为至少一数据区与一闲置区,多个逻辑区块被配置以映射该数据区的该些实体区块,每一该些逻辑区块具有多个逻辑页面,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,该数据写入方法包括:
为该些逻辑页面设定多个标记计数值,其中每一该些逻辑页面对应该些标记计数值的其中之一;
从该闲置区的该些实体区块之中提取一实体区块作为一全域混乱实体区块;
从该闲置区的该些实体区块之中提取另一实体区块作为对应该第一实体区块的一子实体区块;
判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值;
当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,计数对应该第一逻辑页面的该标记计数值并且将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中;以及
当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,将该数据与对应该第一逻辑页面的该标记计数值写入至对应该第一实体区块的该子实体区块中。
3.根据权利要求2所述的数据写入方法,其中将该数据与对应该第一逻辑页面的该标记计数值一起写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中的步骤包括:
将该数据写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块之中的一第一实体页面的一数据位区中;以及
将对应该第一逻辑页面的该标记计数值写入至该第一实体页面的一冗余位区中。
4.根据权利要求2所述的数据写入方法,其中还包括:
从该闲置区的该些实体区块之中提取一第二实体区块;
从该全域混乱实体区块、该第一实体区块或对应该第一实体区块的该子实体区块中读取属于该第一逻辑区块的该些逻辑页面之中的一目标逻辑页面的有效数据;
判断该全域混乱实体区块是否储存有属于该目标逻辑页面的数据;以及
当该全域混乱实体区块未储存有属于该目标逻辑页面的数据时,重置对应该目标逻辑页面的该标记计数值;以及
将所读取的有效数据、对应该目标逻辑页面的一逻辑地址信息与对应该目标逻辑页面的该标记计数值写入至该第二实体区块中。
5.根据权利要求3所述的数据写入方法,其中还包括:
将对应该第一逻辑页面的一逻辑地址信息写入至该第一实体页面的该冗余位区中。
6.一种数据写入方法,用于写入一数据至一可复写式非易失性存储器模组中,其中该可复写式非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,该些实体区块被逻辑地分组为至少一数据区与一闲置区,多个逻辑区块被配置以映射该数据区的该些实体区块,每一该些逻辑区块具有多个逻辑页面,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,该数据写入方法包括:
为该些逻辑页面设定多个标记计数值,其中每一该些逻辑页面对应该些标记计数值的其中之一;
从该闲置区的该些实体区块之中提取一实体区块作为一全域混乱实体区块;
从该闲置区的该些实体区块之中提取另一实体区块作为对应该第一实体区块的一子实体区块;
判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值;
当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,计数对应该第一逻辑页面的该标记计数值并且将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中;以及
当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块中。
7.一种存储器控制器,用于控制一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,并且每一该些实体区块具有依序排列的多个实体页面,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模组;以及
一存储器管理电路,电性连接至该存储器接口,并且用以将该些实体区块逻辑地分组为至少一数据区与一闲置区,
其中该存储器管理电路还用以配置多个逻辑区块以映射该数据区的该些实体区块,并且每一该些逻辑区块具有多个逻辑页面,
其中该存储器管理电路为该些逻辑页面设定多个标记计数值,并且每一该些逻辑页面对应该些标记计数值的其中之一,
其中该存储器管理电路还用以从该闲置区的该些实体区块之中提取一实体区块作为一全域混乱实体区块,
其中该存储器管理电路还用以从该主机系统中接收一数据,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器管理电路还用以从该闲置区的该些实体区块之中提取另一实体区块作为对应该第一实体区块的一子实体区块,
其中该存储器管理电路还用以判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值,
其中当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,该存储器管理电路计数对应该第一逻辑页面的该标记计数值并且将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中;以及
其中当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,该存储器管理电路将该数据与对应该第一逻辑页面的该标记计数值写入至对应该第一实体区块的该子实体区块中。
8.根据权利要求7所述的存储器控制器,
其中该存储器管理电路将该数据写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块之中的一第一实体页面的一数据位区中,并且将对应该第一逻辑页面的该标记计数值写入至该第一实体页面的一冗余位区中。
9.根据权利要求7所述的存储器控制器,
其中该存储器管理电路还用以从该闲置区的该些实体区块之中提取一第二实体区块,
其中该存储器管理电路还用以从该全域混乱实体区块、该第一实体区块或对应该第一实体区块的该子实体区块中读取属于该第一逻辑区块的该些逻辑页面之中的一目标逻辑页面的有效数据,
其中该存储器管理电路还用以判断该全域混乱实体区块是否储存有属于该目标逻辑页面的数据,
其中当该全域混乱实体区块未储存有属于该目标逻辑页面的数据时,该存储器管理电路重置对应该目标逻辑页面的该标记计数值,
其中该存储器管理电路将所读取的有效数据、对应该目标逻辑页面的一逻辑地址信息与对应该目标逻辑页面的该标记计数值写入至该第二实体区块中。
10.根据权利要求7所述的存储器控制器,其中该存储器管理电路还将对应该第一逻辑页面的一逻辑地址信息写入至该第一实体页面的一冗余位区中。
11.一种存储器控制器,用于控制一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,并且每一该些实体区块具有依序排列的多个实体页面,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模组;以及
一存储器管理电路,电性连接至该存储器接口,并且用以将该些实体区块逻辑地分组为至少一数据区与一闲置区,
其中该存储器管理电路还用以配置多个逻辑区块以映射该数据区的该些实体区块,并且每一该些逻辑区块具有多个逻辑页面,
其中该存储器管理电路为该些逻辑页面设定多个标记计数值,并且每一该些逻辑页面对应该些标记计数值的其中之一,
其中该存储器管理电路还用以从该闲置区的该些实体区块之中提取一实体区块作为一全域混乱实体区块,
其中该存储器管理电路还用以从该主机系统中接收一数据,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器管理电路还用以从该闲置区的该些实体区块之中提取另一实体区块作为对应该第一实体区块的一子实体区块,
其中该存储器管理电路还用以判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值,
其中当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,该存储器管理电路计数对应该第一逻辑页面的该标记计数值并且将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中;以及
其中当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,该存储器管理电路将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块中。
12.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,并且每一该些实体区块具有依序排列的多个实体页面;以及
一存储器控制器,电性连接至该连接器接口与该可复写式非易失性存储器模组,并且用以将该些实体区块被逻辑地分组为至少一数据区与一闲置区,
其中该存储器控制器还用以配置多个逻辑区块以映射该数据区的该些实体区块,并且每一该些逻辑区块具有多个逻辑页面,
其中该存储器控制器为该些逻辑页面设定多个标记计数值,并且每一该些逻辑页面对应该些标记计数值的其中之一,
其中该存储器控制器还用以从该闲置区的该些实体区块之中提取至少一实体区块作为一全域混乱实体区块,
其中该存储器控制器还用以从该主机系统中接收一数据,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器控制器还用以从该闲置区的该些实体区块之中提取至少另一实体区块作为对应该第一实体区块的一子实体区块,
其中该存储器控制器还用以判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值,
其中当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,该存储器控制器计数对应该第一逻辑页面的该标记计数值并且将该数据与对应该第一逻辑页面的该标记计数值写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中;以及
其中当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,该存储器控制器将该数据与对应该第一逻辑页面的该标记计数值写入至对应该第一实体区块的该子实体区块中。
13.根据权利要求12所述的存储器储存装置,
其中该存储器控制器将该数据写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块的一第一实体页面的一数据位区中,并且将对应该第一逻辑页面的该标记计数值写入至该第一实体页面的一冗余位区中。
14.根据权利要求12所述的存储器储存装置,
其中该存储器控制器还用以从该闲置区的该些实体区块之中提取一第二实体区块,
其中该存储器控制器还用以从该全域混乱实体区块、该第一实体区块或对应该第一实体区块的该子实体区块中读取属于该第一逻辑区块的该些逻辑页面之中的一目标逻辑页面的有效数据,
其中该存储器控制器还用以判断该全域混乱实体区块是否储存有属于该目标逻辑页面的数据,
其中当该全域混乱实体区块未储存有属于该目标逻辑页面的数据时,该存储器控制器重置对应该目标逻辑页面的该标记计数值,
其中该存储器控制器将所读取的有效数据、对应该目标逻辑页面的该逻辑地址信息与对应该目标逻辑页面的该标记计数值写入至该第二实体区块中。
15.根据权利要求12所述的存储器储存装置,其中该存储器控制器还将对应该第一逻辑页面的一逻辑地址信息写入至该第一实体页面的一冗余位区中。
16.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块,并且每一该些实体区块具有依序排列的多个实体页面;以及
一存储器控制器,电性连接至该连接器接口与该可复写式非易失性存储器模组,并且用以将该些实体区块被逻辑地分组为至少一数据区与一闲置区,
其中该存储器控制器还用以配置多个逻辑区块以映射该数据区的该些实体区块,并且每一该些逻辑区块具有多个逻辑页面,
其中该存储器控制器为该些逻辑页面设定多个标记计数值,并且每一该些逻辑页面对应该些标记计数值的其中之一,
其中该存储器控制器还用以从该闲置区的该些实体区块之中提取至少一实体区块作为一全域混乱实体区块,
其中该存储器控制器还用以从该主机系统中接收一数据,该数据属于该些逻辑区块之中的一第一逻辑区块的一第一逻辑页面并且该第一逻辑区块映射该数据区的该些实体区块之中的一第一实体区块,
其中该存储器控制器还用以从该闲置区的该些实体区块之中提取至少另一实体区块作为对应该第一实体区块的一子实体区块,
其中该存储器控制器还用以判断该些标记计数值之中对应该第一逻辑页面的一标记计数值是否大于一预先定义门槛值,
其中当对应该第一逻辑页面的该标记计数值非大于该预先定义门槛值时,该存储器控制器计数对应该第一逻辑页面的该标记计数值并且将该数据、对应该第一逻辑页面的一逻辑地址信息与对应该第一逻辑页面的该标记计数值一起写入至该全域混乱实体区块或对应该第一实体区块的该子实体区块中;以及
其中当对应该第一逻辑页面的该标记计数值大于该预先定义门槛值时,该存储器控制器将该数据、对应该第一逻辑页面的该逻辑地址信息与对应该第一逻辑页面的该标记计数值一起写入至该全域混乱实体区块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110119809.2A CN102779551B (zh) | 2011-05-10 | 2011-05-10 | 数据写入方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110119809.2A CN102779551B (zh) | 2011-05-10 | 2011-05-10 | 数据写入方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102779551A true CN102779551A (zh) | 2012-11-14 |
CN102779551B CN102779551B (zh) | 2015-01-07 |
Family
ID=47124433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110119809.2A Active CN102779551B (zh) | 2011-05-10 | 2011-05-10 | 数据写入方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102779551B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577554A (zh) * | 2016-07-05 | 2018-01-12 | 慧荣科技股份有限公司 | 检测使用中逻辑页面的数据储存装置与数据储存方法 |
CN108681509A (zh) * | 2018-04-20 | 2018-10-19 | 江苏华存电子科技有限公司 | 一种快速建立闪存映射表的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265505A1 (en) * | 2008-04-18 | 2009-10-22 | Phison Electronics Corp. | Data writing method, and flash storage system and controller using the same |
US20100169544A1 (en) * | 2008-12-31 | 2010-07-01 | Eom Young-Ik | Methods for distributing log block associativity for real-time system and flash memory devices performing the same |
CN101788955A (zh) * | 2009-01-23 | 2010-07-28 | 群联电子股份有限公司 | 闪存数据的存取方法及其储存系统与控制系统 |
-
2011
- 2011-05-10 CN CN201110119809.2A patent/CN102779551B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265505A1 (en) * | 2008-04-18 | 2009-10-22 | Phison Electronics Corp. | Data writing method, and flash storage system and controller using the same |
US20100169544A1 (en) * | 2008-12-31 | 2010-07-01 | Eom Young-Ik | Methods for distributing log block associativity for real-time system and flash memory devices performing the same |
CN101788955A (zh) * | 2009-01-23 | 2010-07-28 | 群联电子股份有限公司 | 闪存数据的存取方法及其储存系统与控制系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577554A (zh) * | 2016-07-05 | 2018-01-12 | 慧荣科技股份有限公司 | 检测使用中逻辑页面的数据储存装置与数据储存方法 |
CN107577554B (zh) * | 2016-07-05 | 2020-12-01 | 慧荣科技股份有限公司 | 检测使用中逻辑页面的数据储存装置与数据储存方法 |
CN108681509A (zh) * | 2018-04-20 | 2018-10-19 | 江苏华存电子科技有限公司 | 一种快速建立闪存映射表的方法 |
CN108681509B (zh) * | 2018-04-20 | 2022-04-08 | 江苏华存电子科技有限公司 | 一种快速建立闪存映射表的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102779551B (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN103514096B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN102193869A (zh) | 存储器管理与写入方法及其存储器控制器与储存系统 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN102968385B (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103377155B (zh) | 存储器储存装置及其存储器控制器与电源控制方法 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102592670A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN103678162A (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN102915273A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102200946A (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN104238956A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN103019952B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102779551B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102110056B (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 |