CN103365790A - 存储器控制器、存储装置与数据写入方法 - Google Patents
存储器控制器、存储装置与数据写入方法 Download PDFInfo
- Publication number
- CN103365790A CN103365790A CN2012100879965A CN201210087996A CN103365790A CN 103365790 A CN103365790 A CN 103365790A CN 2012100879965 A CN2012100879965 A CN 2012100879965A CN 201210087996 A CN201210087996 A CN 201210087996A CN 103365790 A CN103365790 A CN 103365790A
- Authority
- CN
- China
- Prior art keywords
- those
- logical block
- data
- solid element
- solid
- 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
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储器控制器、存储装置与数据写入方法。此方法用于具有多个实体单元集合的存储装置,其中每个实体单元集合具有多个下实体单元与上实体单元。此方法包括:将实体单元集合划分为具有数据区与闲置区的储存区;配置多个逻辑单元以映射数据区的实体单元集合;且从主机***中接收更新数据。本方法还包括:从闲置区中提取多个实体单元集合作为缓冲实体单元集合;仅使用各缓冲实体单元集合的一部分来写入此更新数据;以及使用复制程序将更新数据从缓冲实体单元集合搬移至储存区。藉此,本方法可有效地缩短执行写入指令的时间并延长存储装置的寿命。
Description
技术领域
本发明是有关于一种用于可复写式非易失存储器的存储器控制器、存储装置与数据写入方法。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记型电脑。固态硬盘就是一种以闪存作为储存媒体的储存装置。因此,近年闪存产业成为电子产业中相当热门的一环。
依据每个记忆胞可储存的比特数,反及(NAND)型闪存可区分为单阶储存单元(Single Level Cell,SLC)NAND型闪存、多阶储存单元(MultiLevel Cell,MLC)NAND型闪存与三阶储存单元(Trinary Level Cell,TLC)NAND型闪存,其中SLC NAND型闪存的每个记忆胞可储存1个比特的数据(即,“1”与“0”),MLC NAND型闪存的每个记忆胞可储存2个比特的数据并且TLC NAND型闪存的每个记忆胞可储存3个比特的数据。
在NAND型闪存中,实体页面是由排列在同一条字符线上的数个记忆胞所组成。由于SLC NAND型闪存的每个记忆胞可储存1个比特的数据,因此,在SLC NAND型闪存中,排列在同一条字符线上的数个记忆胞是对应一个实体页面。
相对于SLC NAND型闪存来说,MLC NAND型闪存的每个记忆胞的浮动闸储存层可储存2个比特的数据,其中每一个储存状态(即,“11”、“10”、“01”与“00”)包括最低有效位(Least Significant Bit,LSB)以及最高有效位(Most Significant Bit,MSB)。例如,储存状态中从左侧算起的第1个比特的值为LSB,而从左侧算起的第2个比特的值为MSB。因此,排列在同一条字符线上的数个记忆胞可组成2个实体页面,其中由此些记忆胞的LSB所组成的实体页面称为下实体页面(low physical page),并且由此些记忆胞的MSB所组成的实体页面称为上实体页面(upperphysical page)。特别是,下实体页面的写入速度会快于上实体页面的写入速度,并且当程序化上实体页面发生错误时,下实体页面所储存的数据也可能因此遗失。
类似地,在TLC NAND型闪存中,每个记忆胞可储存3个比特的数据,其中每一个储存状态(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”与“000”)包括左侧算起的第1个比特的LSB、从左侧算起的第2个比特的中间有效比特(Center Significant Bit,CSB)以及从左侧算起的第3个比特的MSB。因此,排列在同一条字符线上的数个记忆胞可组成3个实体页面,其中由此些记忆胞的LSB所组成的实体页面称为下实体页面,由此些记忆胞的CSB所组成的实体页面称为中实体页面,并且由此些记忆胞的MSB所组成的实体页面称为上实体页面。特别是,对排列在同一条字符线上的数个记忆胞进行程序化时,仅能在程序化下实体页面以后或者是在程序化下实体页面、中实体页面与上实体页面之后才进行读取,否则所储存的数据可能会遗失。除此之外,闪存的抹除次数会有一上限,若抹除次数到达此上限则无法继续使用。并且,若选择程序化下实体页面、中实体页面与上实体页面,则闪存的抹除次数的上限会较少,也就是说闪存的使用寿命会较短。
另一方面,在闪存储存***中,数个实体页面会组成一个实体区块,其中在实体区块中写入数据时必须依据实体页面的排列顺序依序地写入数据。此外,已被写入数据的实体页面必需先被抹除后才能再次用于写入数据,并且实体区块为抹除的最小单位。因此,一般来说,实体区块为管理闪存的最小单位。例如,倘若一个实体区块中仅部分页面的数据被更新时,此实体区块中的有效数据必须被搬移至另一个空的实体区块,此实体区块才能被执行抹除操作。在此,搬移有效数据的操作称为数据合并运作。
特别是,为了能够以平行写入模式(parallel write mode)同时对多个实体区块来进行写入以提升写入速度,多个实体区块会被分组为一个实体单元群来管理。在以实体单元群为管理单位的闪存储存***中,进行上述数据合并操作也是以实体单元群为单位。具体来说,倘若一个实体单元群中仅部分页面的数据被更新时,此实体单元群中的有效数据必须被搬移至另一个空的实体单元群,此实体单元群才能被执行抹除操作。由于一个实体单元群是由多个实体区块所组成,因此,以实体单元群为单位进行数据合并操作需要花费更长的时间,并且大幅增加执行数据写入所需的时间。
此外,在以实体单元群为管理单位的闪存储存***中,若主机***频繁地写入小数据(即数据量小于一个实体单元群的容量的数据)时,实体区块的抹除次数会无谓地增加。具体来说,倘若主机***仅更新一个实体单元群中部分实体区块内的数据时,为了执行上述数据合并操作,未被更新的实体区块内的数据仍需被搬移至另一个实体单元群的实体区块而被进行抹除操作,因此,未被更新的实体区块也会耗损。
基于上述,如何增加闪存模块的寿命,并且同时兼顾闪存储存***的写入速度,为此领域技术人员所关心的议题。
发明内容
本发明一范例实施例提出一种存储器控制器、及存储装置与数据写入方法,能够有效地增加数据写入的速度并且延长存储装置的寿命。
本发明一范例实施例提出一种用于存储装置的数据写入方法,其中此存储装置包括可复写式非易失性存储器模块,此可复写式非易失性存储器模块具有多个实体单元集合,每一个实体单元集合具有多个实体单元组,每一个实体单元组至少具有一下实体单元与一上实体单元并且写入数据至下实体单元的速度会快于写入数据至上实体单元的速度。此数据写入方法包括:将上述的实体单元集合至少划分(partition)为一储存区,其中该储存区包括一数据区与一闲置区;并且配置多个逻辑单元以映射至数据区的实体单元集合,其中每一个逻辑单元具有多个逻辑页面。此数据写入方法还包括:从主机***中接收第一更新数据,其中此第一更新数据是欲被写入至逻辑单元之中的第一逻辑单元的至少一逻辑页面中。本数据写入方法还包括:从闲置区的实体单元集合之中提取多个实体单元集合独立地作为对应第一逻辑单元的多个缓冲实体单元集合;仅使用对应该第一逻辑单元的各缓冲实体单元集合的一部分来写入第一更新数据,其中所写入部分的一写入速度大于缓冲实体单元集合中其他部分的写入速度;以及使用一复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区。
在一范例实施例中,上述使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的步骤包括:从闲置区的实体单元集合之中提取至少一个实体单元集合作为对应第一逻辑单元的替换实体单元集合;以及使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的替换实体单元集合,其中第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至此替换实体单元集合的每一实体单元组的下实体单元与上实体单元中。
在一范例实施例中,上述每一个实体单元组还具有一中实体单元,并且写入数据至下实体单元的速度快于写入数据至中实体单元的速度。上述使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的步骤包括:从闲置区的实体单元集合之中提取多个实体单元集合作为对应第一逻辑单元的多个暂存实体单元集合;使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的暂存实体单元集合,其中只有第一逻辑单元的暂存实体单元集合的下实体单元会被用来写入属于第一逻辑单元的所有逻辑页面的有效数据;以及从对应第一逻辑单元的暂存实体单元集合中将属于第一逻辑单元的所有逻辑页面的有效数据搬移至数据区的实体单元集合之中的至少一第一实体单元集合中,其中第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至第一实体单元集合的每一实体单元组的下实体单元、中实体单元与上实体单元中。
在一范例实施例中,上述数据写入方法还包括:在使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的同时,从主机***中接收第二更新数据。
在一范例实施例中,上述数据写入方法还包括:从主机***中接收第三更新数据,其中第三更新数据是欲被写入至上述逻辑单元之中的一第二逻辑单元的至少一逻辑页面中;从闲置区的实体单元集合之中提取多个实体单元集合,这些提取的实体单元集合是独立地作为对应第二逻辑单元的多个缓冲实体单元集合。在此范例实施例中,数据写入方法还包括:仅使用对应该第二逻辑单元的缓冲实体单元集合中写入速度较大的一部分来写入第三更新数据;以及,使用复制程序将第三更新数据从对应第二逻辑单元的缓冲实体单元集合搬移至储存区。
在一范例实施例中,上述使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的步骤和使用复制程序将第三更新数据从对应第二逻辑单元的缓冲实体单元集合搬移至储存区的步骤是以一平行方式同时被执行。
以另外一个角度来说,本发明一范例实施例提出一种存储装置,其包括可复写式非易失性存储器模块、连接器以及存储器控制器。此可复写式非易失性存储器模块具有多个实体单元集合,每一个实体单元集合则具有多个实体单元组,并且每一个实体单元组至少具有一下实体单元与一上实体单元,其中写入数据至下实体单元的速度快于写入数据至上实体单元的速度。连接器是用以电性连接至主机***。存储器控制器是用以电性连接至连接器与可复写式非易失性存储器模块。存储器控制器会将实体单元集合至少划分(partition)为一储存区,其中该储存区包括一数据区与一闲置区。存储器控制器也会配置多个逻辑单元以映射数据区的实体单元集合,其中每一个逻辑单元具有多个逻辑页面。存储器控制器还会从主机***中接收第一更新数据,其中此第一更新数据是欲被写入至上述逻辑单元之中的一第一逻辑单元的至少一逻辑页面中。并且,存储器控制器会从闲置区的实体单元集合之中提取多个实体单元集合独立地作为对应第一逻辑单元的多个缓冲实体单元集合。存储器控制器仅使用对应第一逻辑单元的缓冲实体单元集合的一部分来写入第一更新数据,其中所写入部分的一写入速度大于缓冲实体单元集合中其他部分的写入速度。此外,存储器控制器会使用一复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区。
在一范例实施例中,上述存储器控制器从闲置区的实体单元集合之中提取至少一个实体单元集合作为对应第一逻辑单元的至少一替换实体单元集合,并且使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的替换实体单元集合,其中第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至替换实体单元集合的每一实体单元组的下实体单元与上实体单元中。
在一范例实施例中,上述每一个实体单元组还具有一中实体单元,并且写入数据至下实体单元的速度快于写入数据至中实体单元的速度。并且,存储器控制器还用以从闲置区的实体单元集合之中提取多个实体单元集合作为对应第一逻辑单元的多个暂存实体单元集合,并使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的暂存实体单元集合,其中存储器控制器仅使用暂存实体单元集合的下实体单元会来写入属于第一逻辑单元的所有逻辑页面的有效数据。存储器控制器还会从对应第一逻辑单元的暂存实体单元集合中将属于第一逻辑单元的所有逻辑页面的有效数据搬移至数据区的实体单元集合之中的至少一第一实体单元集合中,其中第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至第一实体单元集合的每一实体单元组的下实体单元、中实体单元与上实体单元中。
在一范例实施例中,上述存储器控制器在使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的同时,会从主机***中接收第二更新数据。
在一范例实施例中,上述存储器控制器还用以从主机***中接收一第三更新数据,此第三更新数据是欲被写入至逻辑单元之中的第二逻辑单元的至少一逻辑页面中。存储器控制器也用以从闲置区的实体单元集合之中提取多个实体单元集合独立地作为对应第二逻辑单元的多个缓冲实体单元集合,并且仅使用对应第二逻辑单元的缓冲实体单元集合中写入速度较大的一部分来写入第三更新数据。存储器控制器还用以使用复制程序将第三更新数据从对应第二逻辑单元的缓冲实体单元集合搬移至储存区。
在一范例实施例中,上述存储器控制器是以一平行方式同时执行使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的步骤和使用复制程序将第三更新数据从对应第二逻辑单元的缓冲实体单元集合搬移至储存区的步骤。
以另外一个角度来说,本发明一范例实施例还提出一种存储器控制器,用以控制一可复写式非易失性存储器模块。此可复写式非易失性存储器模块具有多个实体单元集合。每一个实体单元集合具有多个实体单元组,并且每一个实体单元组至少具有一下实体单元与一上实体单元,其中写入数据至下实体单元的速度会快于写入数据至上实体单元的速度。此存储器控制器包括主机接口、存储器接口以及存储器管理电路。主机接口是用以电性连接至主机***。存储器接口是用以电性连接至可复写式非易失性存储器模块。存储器管理电路是电性连接至主机接口与存储器接口,并将实体单元集合至少划分(partition)为储存区,其中此储存区包括数据区与闲置区。存储器管理电路会配置多个逻辑单元以映射数据区的实体单元集合,其中每一个逻辑单元具有多个逻辑页面。存储器管理电路也会从主机***中接收第一更新数据,其中第一更新数据是欲被写入至逻辑单元之中的第一逻辑单元的至少一逻辑页面中。存储器管理电路也会从闲置区的实体单元集合之中提取多个实体单元集合独立地作为对应第一逻辑单元的多个缓冲实体单元集合,且仅使用对应第一逻辑单元的缓冲实体单元集合的一部分来写入第一更新数据,其中所写入部分的一写入速度大于缓冲实体单元集合中其他部分的写入速度。存储器管理电路还会使用一复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区。
在一范例实施例中,上述存储器管理电路还用以从闲置区的实体单元集合之中提取至少一个实体单元集合作为对应第一逻辑单元的至少一替换实体单元集合,并使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的该至少一替换实体单元集合,其中第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至第一实体单元集合的每一实体单元组的下实体单元、中实体单元与上实体单元中。
在一范例实施例中,上述存储器管理电路在使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的同时,会从主机***中接收第二更新数据。
在一范例实施例中,上述存储器管理电路还用以从主机***中接收第三更新数据,其中第三更新数据是欲被写入至逻辑单元之中的第二逻辑单元的至少一逻辑页面中。存储器管理电路还会从闲置区的实体单元集合之中提取多个实体单元集合独立地作为对应第二逻辑单元的多个缓冲实体单元集合,且仅使用对应第二逻辑单元的缓冲实体单元集合中写入速度较大的一部分来写入第三更新数据。存储器管理电路还用以使用复制程序将第三更新数据从对应第二逻辑单元的缓冲实体单元集合搬移至储存区。
在一范例实施例中,上述存储器管理电路是以一平行方式同时执行使用复制程序将第一更新数据从对应第一逻辑单元的缓冲实体单元集合搬移至储存区的步骤和使用复制程序将第三更新数据从对应第二逻辑单元的缓冲实体单元集合搬移至储存区的步骤。
基于上述,本发明一范例实施例所提出的存储器控制器、存储装置与数据写入方法,由于将数据写入至缓冲实体单元集合时仅使用较快速的一部分,使得可复写式非易失性存储器的使用寿命可以增加。另一方面,在将数据写入至缓冲实体单元集合时,会同时的使用复制程序来将数据写入至数据取,藉此可以增加数据写入的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A是根据第一范例实施例所绘示的主机***与存储装置;
图1B是根据第一范例实施例所绘示的电脑、输入/输出装置与存储装置的示意图;
图1C是根据第一范例实施例所绘示的主机***与存储装置的示意图;
图2是绘示图1A所示的存储装置的概要方块图;
图3A与图3B是根据第一范例实施例所绘示的记忆胞储存架构与实体区块的范例示意图;
图4是根据第一范例实施例所绘示的存储器控制器的概要方块图;
图5是根据第一范例实施例所绘示管理可复写式非易失性存储器模块的实体区块的范例示意图;
图6是根据第一范例实施例所绘示写入更新数据的范例示意图;
图7是根据另一范例所绘示的写入更新数据的范例示意图;
图8、图9与图10是根据第一范例实施例所绘示的将第一逻辑单元的数据从缓冲实体区块搬移至储存区的范例示意图;
图11是根据第一范例实施例所绘示的数据写入方法的流程图;
图12是根据第二范例实施例所绘示的存储装置的概要示意图;
图13是根据第二范例实施例所绘示的MLC NAND型闪存模块的实体区块的范例示意图;
图14是根据本发明第二范例实施例所绘示管理可复写式非易失性存储器模块的实体区块的范例示意图;
图15~图17是根据第二范例实施例所绘示的使用子实体区块写入数据的范例示意图;
图18是根据第二范例实施例所绘示的将更新数据写入至缓冲实体区块的示意图;
图19是依照第二范例实施例所绘示的将更新数据写入至储存区的范例示意图;
图20是根据第二范例实施例所绘示的数据写入方法的流程图。
附图标记说明:
1000:主机***;
1100:电脑;
1102:微处理器;
1104:RAM;
1106:I/O装置;
1108:***总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:闪存盘;
1214:存储卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式储存装置;
100、1200:存储装置;
102:连接器;
104、124:存储器控制器;
106、126:可复写式非易失性存储器模块;
302、122:存储器管理电路;
304:主机接口;
306:存储器接口;
308:缓冲存储器;
310:电源管理电路;
312:错误检查校正电路;
410(0)~410(N)、1410(0)~1410(N):实体区块;
502、1408:取代区;
504、1404:闲置区;
506、1402:数据区;
508、1410:储存区;
1406:***区;
610(0)~610(H)、1610(0)~1610(H):逻辑单元;
602:第一更新数据;
410(R+1)~410(R+6):暂存实体区块;
410(T+1)、410(T+2):实体区块;
604(0)~604(B)、624(0)~624(B)、1604(0)~1604(P):逻辑页面;
606a~606f、626a~626f、1506a~1506d:缓冲实体区块;
622:第三更新数据;
640:第二更新数据;
S1102、S1104、S1106、S1108、S1110、S1112、S1114、S1116:数据写入方法的步骤;
S2002、S2004、S2006、S2008、S2010、S2012、S2014:数据写入方法的步骤。
具体实施方式
在本说明书中,所指的实体单元也被称为实体页面,实体单元集合也被称为实体区块,实体单元组也被称为实体页面组。其中,实体单元集合是被抹除的最小单位。并且,被一个逻辑单元映射的多个实体区块可以被称为一个实体单元群。此外,上实体单元也被称为上实体页面,中实体单元也被称为中实体页面,而下实体单元也被称为下实体页面。然而,在其他范例实施例中,实体单元可以为其他具有可复写与非易失特性的一或多个电子元件,例如实体扇,本发明并不在此限。
第一范例实施例
一般而言,存储装置(亦称,存储***)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储装置是与主机***一起使用,以使主机***可将数据写入至存储装置或从存储装置中读取数据。
图1A是根据第一范例实施例所绘示的主机***与存储装置。
请参照图1A,主机***1000一般包括电脑1100与输入/输出(input/output)I/O装置1106。电脑1100包括微处理器1102、随机存储器(randomaccess memory,RAM)1104、***总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储装置100是通过数据传输接口1110与主机***1000的其他元件电性连接。通过微处理器1102、随机存储器1104与输入/输出装置1106的运作可将数据写入至存储装置100或从存储装置100中读取数据。例如,存储装置100可以是如图1B所示的闪存盘1212、存储卡1214或固态硬盘(Solid State Drive,SSD)1216等的可复写式非易失性存储装置。
一般而言,主机***1000为可实质地与存储装置100配合以储存数据的任意***。虽然在本范例实施例中,主机***1000是以电脑***来作说明,然而,在本发明另一范例实施例中主机***1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等***。例如,在主机***为数码相机(摄影机)1310时,可复写式非易失性存储装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接在主机***的基板上。
图2是绘示图1A所示的存储装置的概要方块图。
请参照图2,存储装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
在本范例实施例中,连接器102是相容于串行高级附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102也可以是符合电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、平行先进附件(Parallel AdvancedTechnology Attachment,PATA)标准、高速周边零件连接接口(PeripheralComponent Interconnect 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所写入的数据。
在本范例实施例中,每一实体区块分别具有复数个实体页面组并且每一实体页面组包括由位于同一条字符线的记忆胞所构成的至少一个实体页面,其中属于同一个实体区块的实体页面必须被同时地抹除。更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目的一并被抹除的记忆胞。
每一实体页面通常包括数据比特区与冗余比特区。数据比特区用以储存使用者的数据,而冗余比特区用以储存***的数据(例如,错误检查校正码)。在本范例实施例中,每一实体区块是由258个实体页面所组成,并且每一实体页面的容量为8千字节(Kilobyte,KB)。然而,必须了解的是,本发明不限于此。
在本范例实施例中,可复写式非易失性存储器模块106为一三阶储存单元(Trinary Level Cell,TLC)NAND型闪存模块。然而,必须了解的是,可复写式非易失性存储器模块106并非限于TLC NAND型闪存模块。在本发明另一范例实施例中,可复写式非易失性存储器模块106也可是四阶,多阶或其他具有相同特性的存储器模块。
图3A与图3B是根据第一范例实施例所绘示的记忆胞储存架构与实体区块的范例示意图。
请参照图3A,可复写式非易失性存储器模块106的每个记忆胞的储存状态可被识别为“111”、“110”、“101”、“100”、“011”、“010”、“001”或“000”(如图3A所示),其中左侧算起的第1个比特为LSB、从左侧算起的第2个比特为CSB以及从左侧算起的第3个比特为MSB。此外,排列在同一条字符线上的数个记忆胞可组成3个实体页面,其中由此些记忆胞的LSB所组成的实体页面称为下实体页面,由此些记忆胞的CSB所组成的实体页面称为中实体页面,并且由此些记忆胞的MSB所组成的实体页面称为上实体页面。
请参照图3B,一个实体区块是由多个实体页面组所组成,其中每个实体页面组包括由排列在同一条字符线上的数个记忆胞所组成的下实体页面、中实体页面与上实体页面。例如,在实体区块中,属于下实体页面的第0个实体页面、属于中实体页面页面的第1个实体页面和属于上实体页面的第2个实体页面会被视为一个实体页面组。类似地,第3、4、5个实体页面会被视为一个实体页面组,并且以此类推其他实体页面也是依据此方式被区分为多个实体页面组。
图4是根据第一范例实施例所绘示的存储器控制器的概要方块图。必须了解的是,图4所绘示的存储器控制器仅为一个范例,本发明不限于此。
请参照图4,存储器控制器104包括存储器管理电路302、主机接口304、存储器接口306、缓冲存储器308、电源管理电路310以及错误检查校正电路312。
存储器管理电路302用以控制存储器控制器104的整体运作。具体来说,存储器管理电路302具有多个控制指令,并且在存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路302的控制指令是以固件型式来实现。例如,存储器管理电路302具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制指令是被烧录至此只读存储器中。当存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路302的控制指令也可以程序码型式储存在可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放***数据的***区)中。此外,存储器管理电路302具有微处理器单元、只读存储器及随机存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被激活时,微处理器单元会先执行此驱动码段来将储存在可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路302的随机存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路302的控制指令也可以一硬件型式来实现。例如,存储器管理电路302包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器模块106的实体区块;存储器写入单元用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取单元用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除单元用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理单元用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口304是电性连接至存储器管理电路302并且用以接收与识别主机***1000所传送的指令与数据。在本范例实施例中,主机接口304是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口304也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口306是电性连接至存储器管理电路302并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口306转换为可复写式非易失性存储器模块106所能接受的格式。
缓冲存储器308是电性连接至存储器管理电路302并且用以暂存来自于主机***1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。例如,缓冲存储器302可以是静态随机存储器、动态随机存储器等。
电源管理电路310是电性连接至存储器管理电路302并且用以控制存储装置100的电源。
错误检查校正电路312是电性连接至存储器管理电路302并且用以执行一错误校正程序以确保数据的正确性。具体来说,当主机接口304从主机***1000中接收到主机写入指令时,错误检查校正电路会为对应此主机写入指令的写入数据(亦称为更新数据)产生对应的错误检查校正码(Error Checkingand Correcting Code,ECC Code),并且存储器管理电路302会将此更新数据与对应的错误校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路302从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误校正码,并且错误检查校正电路312会依据此错误校正码对所读取的数据执行错误校正程序。
图5是根据第一范例实施例所绘示的管理可复写式非易失性存储器模块的实体区块的范例示意图。
请参照图5,可复写式非易失性存储器模块106具有实体区块410(0)~410(N),并且存储器控制器104的存储器管理电路302可将实体区块410(0)~410(N)划分(partition)为数个区,例如取代区(replacement area)502与包括闲置区(spare area)504与数据区(data area)506的储存区508。在另一范例实施例中,取代区502也可与闲置区504共用包含无效数据的实体区块。
取代区502的实体区块是用于坏实体区块取代程序,以取代损坏的实体区块。具体来说,倘若取代区502中仍存有正常的实体区块并且数据区506或闲置区504的实体区块损坏时,存储器管理电路302会从取代区502中提取正常的实体区块来取代损坏的实体区块。
闲置区504的实体区块是用于暂存主机***1000所写入的数据。详细的写入方法,将配合图示说明如后。值得一提的是,在本范例实施例中,存储器管理电路302是使用单页模式来操作闲置区504的实体区块。具体来说,在单页模式中,仅下实体页面会被用来储存数据。也就是说,在单页模式中,存储器管理电路302仅会对实体区块的下实体页面进行数据的写入、读取、抹除等运作。在另一范例实施例中,单页模式是指对一实体页面中的每个细胞仅储存一个比特的数据。多页模式是指对一实体页面中的每个细胞储存多个比特的数据。
数据区506的实体区块是用于储存主机***1000所写入的数据。具体来说,存储器管理电路302会将主机***1000所存取的逻辑存取地址转换为对应的逻辑单元与对应的逻辑页面并且将此逻辑单元的逻辑页面映射至数据区的实体区块的实体页面。也就是说,数据区506的实体区块是被视为已被使用的实体区块(例如,已储存主机***所写入的数据)。例如,存储器管理电路302会使用逻辑单元-实体区块映射表(logical unit-physical block mappingtable)来记载逻辑单元与数据区506的实体区块之间的映射关系,其中逻辑单元中的逻辑页面可依序的对应所映射的实体区块的实体页面。例如,在本范例实施例中,逻辑单元610(0)~610(H)会被配置以映射数据区506的实体区块,其中一个逻辑单元的容量等于两个实体区块的容量。然而,在另一范例实施例中,一个逻辑单元的容量也可以等于一个或是三个以上实体区块的容量,本发明并不在此限。数据区506的实体区块的数量会影响存储装置100的容量,其中所有实体区块410(T+1)~410(N)的容量的总和必须大于逻辑单元610(0)~610(H)的容量的总和。然而,在另一范例实施例中,存储器管理电路302会使用逻辑单元-实体页面映射表(logical unit-physical page mappingtable)来记载逻辑单元与数据区506的实体区块中的实体页面之间的映射关系。本发明并不限定逻辑单元与实体页面或实体区块之间的映射关系。
在本范例实施例中,存储器管理电路302是使用多页模式来操作数据区506的实体区块。具体来说,在多页模式中,实体区块的下实体页面、中实体页面与上实体页面皆会被用来储存数据。值得一提的是,在本范例实施例中,使用多页模式来操作数据区506的实体区块时,同一个实体页面组的实体页面会全被程式化以后才能被读取。具体来说,当一个实体区块的下实体页面与中实体页面储存数据并且此实体区块的上实体页面未储存数据时,存储器管理电路302不能对此实体区块的下实体页面与中实体页面进行读取运作。并且当一个实体区块的下实体页面、中实体页面与上实体页面皆已储存数据时,存储器管理电路302才能对此实体区块的下实体页面、中实体页面与上实体页面进行读取运作。
再者,相较于以单页模式来操作的实体区块,以多页模式来操作的实体区块的寿命较短。具体来说,每个实体区块能够被写入或抹除的次数是有限的,当一个实体区块被写入的次数超过一临界值时,此实体区块能就会损坏而无法再被写入数据,其中对应以多页模式来操作的实体区块的临界值会低于对应以单页模式来操作的实体区块的临界值。
如上所述,闲置区504的实体区块与数据区506的实体区块是通过使用不同的模式来操作,因此,当一个实体区块被划分至闲置区504或数据区506后,此实体区块将仅能用于特定划分区。也就是说,存储器管理电路302会独立地操作数据区506的实体区块和闲置区504的实体区块,而不会混用此些实体区块。例如,当一个实体区块被划分至闲置区504后,存储器管理电路302会以单页模式在闲置区504中操作此实体区块,直到此实体区块损坏为止;或者当一个实体区块被划分至数据区506后,存储器管理电路302会以多页模式在数据区506中操作此实体区块,直到此实体区块不再属于数据区506。
在本范例实施例中,当主机***1000欲储存数据至一个逻辑单元时,存储器管理电路302会从闲置区504的实体区块中提取多个实体区块,将所提取的实体区块独立地作为此逻辑单元的缓冲实体区块并且将主机***1000欲储存的数据暂时地写入至此些缓冲实体区块中写入速度较大的一部分,以缩短执行写入指令的时间。
图6是根据第一范例实施例所绘示写入更新数据的范例示意图。
请参照图6,存储器管理电路302接收主机***1000欲储存的数据(以下称为第一更新数据602)。例如,第一更新数据602是欲被写入至逻辑单元610(0)的至少一逻辑页面(例如,逻辑页面604(0)~604(A))中。然而,本发明并不限制第一更新数据602欲写入的逻辑单元以及逻辑页面,且不限制第一更新数据602的大小与内容。
在此范例中,存储器管理电路302会从闲置区504中提取多个实体区块作为逻辑单元610(0)的缓冲实体区块606a~606f,并且使用缓冲实体区块606a~606f的一部分来写入第一更新数据602。其中,缓冲实体区块606a~606f中用来写入数据的部分的写入速度会大于缓冲实体区块中其他部分的写入速度。例如,在本范例实施例中,存储器管理电路302是使用缓冲实体区块的下实体页面来写入数据,而下实体页面的写入速度会大于中实体页面与上实体页面的写入速度。在其他范例实施例中,存储器管理电路302也可使用缓冲实体区块的下实体页面与中实体页面来写入数据,本发明并不限定缓冲实体区块用来写入数据的部分。例如,逻辑单元610(0)的每一个逻辑页面都会对应至缓冲实体区块606a~606f的一个下实体页面。也就是说,缓冲实体区块606a~606f的下实体页面的空间总和会等于逻辑单元610(0)的容量。
在本范例实施例中,一个逻辑单元是对应至数据区506中的两个实体区块,且每个数据区506中的实体区块是使用上实体页面、中实体页面以及下实体页面来储存数据。因此,一个逻辑单元的容量会等于6个缓冲实体区块的下实体页面的空间总和。然而,在另一范例实施例中,一个逻辑单元的空间总和也可以等于其他个数的缓冲实体区块的下实体页面的空间总和,本发明并不在此限。
值得一提的是,在本范例实施例中,缓冲实体区块606a~606f是独立地作为第一逻辑单元610(0)的缓冲实体区块。也就是说,配置给逻辑单元的缓冲实体区块不会被共用。例如,当主机***1000欲储存数据至逻辑单元610(1)时,存储器管理电路302会从闲置区504中提取其他实体区块作逻辑单元610(1)的缓冲实体区块。
在将第一更新数据602写入至缓冲实体区块606a~606f以后,存储器管理电路302会回复确认信息给主机***1000以告知数据写入运作已完成。由于,数据写入至实体区块的下实体页面的速度较快,因此,执行数据写入指令的时间可有效地被缩短。之后,存储器管理电路302会利用适当的时机将暂存在缓冲实体区块中的更新数据正确地写入至储存区508的实体区块中。例如,存储器管理电路302会使用一复制程序将第一更新数据602从缓冲实体区块606a~606f中搬移至储存区508中。其中,此复制程序是指将数据从可复写式非易失性存储器模块106中的一页面至少读出至可复写式非易失性存储器模块106中的一缓冲存储器(未绘示),接着再将数据写入至可复写式非易失性存储器模块106中另一页面。例如,复制程序中包括使用一复制回指令(copyback command),而复制回指令为在同一区块面(plane)的实体区块之间搬移数据的指令。
值得一提的是,由于在将第一更新数据602写入至缓冲实体区块606a~606以后,存储器管理电路302就会回复确认信息给主机***1000,因此,存储器管理电路302可在接收主机***1000欲储存的下一笔数据(以下称为第二更新数据640)的同时,使用复制程序将第一更新数据602从缓冲实体区块606a~606f搬移至数据区506。例如,第二更新数据640是欲写入至逻辑页面604(A+1)~604(B),并且存储器管理电路302会在将第二更新数据640写入至缓冲实体区块606a~606f的同时,使用复制程序将第一更新数据602从缓冲实体区块606a~606c搬移至数据区506。如此,存储装置100的效能可被大幅地提升。
必须了解的是,尽管上述第一更新数据602与第二更新数据640是欲写入至同一个逻辑单元(即,第一逻辑单元610(0))。然而,在另一范例实施例中,存储器管理电路302也可以接收欲写入至两个以上不同逻辑单元的更新数据,来进行数据的写入(如图7所示)。
图7是根据另一范例所绘示的写入更新数据的范例示意图。
请参考图7,存储器管理电路302会从主机***1000接收到第一更新数据602与第三更新数据622,其中第一更新数据602欲被写入至第一逻辑单元610(0)的逻辑页面604(0)~604(A)中并且第三更新数据622是欲被写入至第二逻辑单元610(1)的逻辑页面624(0)~624(B)中。然而,本发明并不限制第三更新数据622欲写入的逻辑单元以及逻辑页面,且不限制第三更新数据622的大小与内容。
在此范例中,存储器管理电路302会从闲置区504中提取多个实体区块作为逻辑单元610(0)的缓冲实体区块606a~606f,并且使用缓冲实体区块606a~606f的下实体页面来写入第一更新数据602。此外,存储器管理电路302还会从闲置区504中提取多个实体区块作为逻辑单元610(1)的缓冲实体区块626a~626f并且使用缓冲实体区块626a~626f的下实体页面来写入第三更新数据622。
特别是,后续,存储器管理电路302会使用复制程序以一平行方式将第一更新数据602从缓冲实体区块606a~606f搬移至该数据区506并且将第三更新数据622从缓冲实体区块626a~626f中搬移至数据区506中。具体来说,第一更新数据602与第三更新数据622是欲被写入至数据区506中不同的实体区块,因此使用复制程序时,第一更新数据602与第三更新数据622可以同时的被写入至不同的实体区块当中,藉此提升写入的速度。
除了可以增加写入的速度以外,上述使用缓冲实体区块的架构可以增加存储装置100的寿命。具体来说,当主机***1000所要写入的数据较小(例如,数据量小于一个逻辑单元的大小的数据),且要对同一个逻辑地址重复地写入数据时,存储器管理电路302仅需要抹除部分的缓冲实体区块。举例来说,当主机***1000重复地更新逻辑页面604(0)~604(A)中的数据,且逻辑页面604(0)~604(A)是对应至缓冲实体区块606a~606c的下实体页面时,存储器管理电路302仅需要抹除缓冲实体区块606a~606c,不需要抹除缓冲实体区块606d~606f,由此避免因无谓的抹除而缩短实体区块的寿命。
图8、图9与图10是根据第一范例实施例所绘示的将第一逻辑单元的数据从缓冲实体区块搬移至储存区的范例示意图。
请参照图8。缓冲实体区块606a~606c中储存了逻辑单元610(0)的部分有效数据。当要将缓冲实体区块606a~606c写入至储存区508时,存储器管理电路302会从闲置区504中提取实体区块410(R+1)~410(R+3)作为对应第一逻辑单元610(0)的暂存实体区块来写入第一更新数据602。并且,存储器管理电路302会使用复制程序将缓冲实体区块606a~606c的有效数据搬移至暂存实体区块410(R+1)~410(R+3),其中只有暂存实体区块410(R+1)~410(R+3)的下实体页面会被用来写入属于第一逻辑单元610(0)的所有逻辑页面的有效数据。例如,存储器管理电路302是将缓冲实体区块606a中的有效数据写入至暂存实体区块410(R+1)的第0、3...255个实体页面,将缓冲实体区块606b中的有效数据写入至暂存实体区块410(R+2)的第0、3...255个实体页面,以及将缓冲实体区块606c中的有效数据写入至暂存实体区块410(R+3)的第0、3...255个实体页面。换句话说,由于缓冲实体区块606a~606c是对应至逻辑单元610(0),因此,存储器管理电路302是使用复制程序将属于逻辑单元610(0)的所有逻辑页面的有效数据搬移至暂存实体区块410(R+1)~410(R+3)。
接着,存储器管理电路302会将暂存实体区块410(R+1)~410(R+3)中的有效数据搬移至数据区504的实体区块。具体来说,存储器管理电路302会从数据区504中选择一个空的实体区块或者所储存的数据为无效数据的实体区块。特别是,倘若所提取的实体区块是储存无效数据的实体区块时,存储器管理电路302会先对此实体区块执行抹除运作。也就是说,实体区块上的无效数据必须先被抹除。
例如,存储器管理电路302会从数据区504中选择实体区块410(T+1)并且将第一逻辑单元610(0)的所有逻辑页面的有效数据分别地搬移至实体区块410(T+1)的下实体页面(第0、3、6...255个实体页面)、中实体页面(第1、4、7...256个实体页面)以及上实体页面(第2、5、8...257个实体页面)。具体来说,存储器管理电路302会从第一暂存实体区块410(R+1)的下实体页面中将有效数据搬移至实体区块410(T+1)的对应页面(例如,第0~85个实体页面)。接着,存储器管理电路302会从第二暂存实体区块410(R+2)的下实体页面中将有效数据搬移至实体区块410(T+1)的对应页面(例如,第86~171个实体页面)。然后,存储器管理电路302会从第三暂存实体区块410(R+3)的下实体页面中将有效数据搬移至实体区块410(T+1)的对应页面(例如,第172~257个实体页面)。
在本范例实施例中,一个逻辑单元是对应至两个实体区块,因此,除了将第一逻辑单元610(0)的一部分数据写入至实体区块410(T+1)之外,存储器管理电路302还会提取另一实体区块来储存第一逻辑单元610(0)中另一部分的有效数据。
请参照图9,缓冲实体区块606d~606f存有第一逻辑单元610(0)的另一部分有效数据。在此范例中,存储器管理电路302会使用复制程序将缓冲实体区块606d~606f的有效数据写入至暂存实体区块410(R+4)~410(R+6)的下实体页面,并且将暂存实体区块410(R+4)~410(R+6)中的有效数据搬移至实体区块410(T+2)。存储器管理电路302将有效数据从缓冲实体区块606d~606f搬移至实体区块410(T+2)的方法是类似于将有效数据从缓冲实体区块606a~606c搬移至实体区块410(T+1)的方法,在此不重复说明。
请参照图10,在将逻辑单元610(0)的有效数据写入至实体区块410(T+1)与410(T+2)之后,存储器管理电路302会在逻辑单元-实体区块映射表中将第一逻辑单元610(0)重新映射至实体区块410(T+1)与410(T+2),并且对暂存实体区块410(R+1)~410(R+6)执行抹除运作。也就是说,在执行下一个写入指令时,已被抹除的暂存实体区块410(R+1)~410(R+6)就可再被选择作为欲写入的逻辑单元的暂存实体区块。
图11是根据第一范例实施例所绘示的数据写入方法的流程图。
请参照图11,在步骤S1102中,存储器管理电路302会将实体区块至少划分(partition)为一储存区,此储存区包括一数据区与一闲置区。
在步骤S1104中,存储器管理电路302会配置多个逻辑单元以映射至数据区的实体区块,其中每一个逻辑单元具有多个逻辑页面。
之后,在步骤S1106中,存储器管理电路302会从一主机***中接收欲写入的数据(以下称为第一更新数据),其中此第一更新数据是欲被写入至一逻辑单元(以下称为第一逻辑单元)的至少一逻辑页面中。并且,在步骤S1108中,存储器管理电路302会从闲置区的实体区块之中提取多个实体区块独立地作为对应第一逻辑单元的多个缓冲实体区块。
然后,在步骤S1110中,存储器管理电路302仅使用对应第一逻辑单元的各个缓冲实体区块中的一部分写入第一更新数据,其中此部分的写入速度会大于缓冲实体区块中其他部分的写入速度。
之后,在步骤S1112中,存储器管理电路302会从闲置区的实体区块之中提取多个实体区块作为对应该第一逻辑单元的多个暂存实体区块。并且在步骤S1114中,存储器管理电路302会使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的暂存实体区块,其中仅暂存实体区块的下实体页面会被用来写入属于第一逻辑单元的所有逻辑页面的有效数据。然后,在步骤S1116中,存储器管理电路302会从对应第一逻辑单元的暂存实体区块中将属于第一逻辑单元的所有逻辑页面的有效数据搬移至数据区的至少一个实体区块(以下称为第一实体区块)中,其中第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至第一实体区块的每一实体页面组的下实体页面、中实体页面与上实体页面中。
第二范例实施例
第二范例实施例与第一范例实施例相似,不同之处在于存储装置的可复写式非易失性存储器模块为多阶储存单元(Multiple Level Cell,MLC)NAND型闪存模块。也就是说,可复写式非易失性存储器模块中的每一个实体区块具有多个实体页面组,并且每一个实体页面组仅具有下实体页面与上实体页面。
图12是根据第二范例实施例所绘示的存储装置的概要示意图。
请参考图12,存储装置1200包括连接器102、存储器控制器124与可复写式非易失性存储器模块126,其中连接器102的功能已说明如上,在此不再重复描述。
存储器控制器124用以执行以硬件型式或固件型式实现的多个逻辑门或控制指令,并且根据主机***1000的指令在可复写式非易失性存储器模块126中进行数据的写入、读取、抹除与合并等运作。存储器控制器124包括存储器管理电路122、主机接口304、存储器接口306、缓冲存储器308、电源管理电路310以及错误检查校正电路312。
主机接口304、存储器接口306、缓冲存储器308、电源管理电路310以及错误检查校正电路312的功能已说明如上,在此不再重复描述。
存储器管理电路122用以控制存储器控制器124的整体运作。具体来说,存储器管理电路122具有多个控制指令,并且在存储装置1200运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路122的控制指令是以固件型式来实现。例如,存储器管理电路122具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制指令是被烧录至此只读存储器中。当存储装置1200运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路122的控制指令也可以程式码型式储存在可复写式非易失性存储器模块126的特定区域(例如,存储器模块中专用于存放***数据的***区)中。此外,存储器管理电路122具有微处理器单元、只读存储器及随机存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器124被致能时,微处理器单元会先执行此驱动码段来将储存在可复写式非易失性存储器模块126中的控制指令载入至存储器管理电路122的随机存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路122的控制指令也可以一硬件型式来实现。例如,存储器管理电路122包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器模块122的实体区块;存储器写入单元用以对可复写式非易失性存储器模块126下达写入指令以将数据写入至可复写式非易失性存储器模块126中;存储器读取单元用以对可复写式非易失性存储器模块126下达读取指令以从可复写式非易失性存储器模块126中读取数据;存储器抹除单元用以对可复写式非易失性存储器模块126下达抹除指令以将数据从可复写式非易失性存储器模块126中抹除;而数据处理单元用以处理欲写入至可复写式非易失性存储器模块126的数据以及从可复写式非易失性存储器模块126中读取的数据。
可复写式非易失性存储器模块126是电性连接至存储器控制器124,并且具有实体区块1210(0)~1210(N)。
在本范例实施例中,可复写式非易失性存储器模块126为MLC NAND型闪存模块。然而,必须了解的是,可复写式非易失性存储器模块126并非限于MLC NAND型闪存模块。在本发明另一范例实施例中,可复写式非易失性存储器模块126也可是其他与MLC NAND型闪存模块具有相同特性的存储器模块。
图13是根据第二范例实施例所绘示的MLC NAND型闪存模块的实体区块的范例示意图。
请参照图13,一个实体区块具有多个实体页面组并且每一个实体页面组具有一个下实体页面与一个上实体页面。例如,实体区块的第0、2...、254个实体页面属于下实体页面,而第1、3、...、255个实体页面则属于上实体页面。写入数据至下实体页面的速度会快于写入数据至上实体页面的速度。与第一范例实施例不同的是,数据区506与闲置区504中的实体区块都会使用下实体页面与上实体页面来储存数据。除此之外,与第一范例实施例不同的是,数据区506中的实体区块与闲置区504的实体区块会互相轮替。
图14是根据本发明第二范例实施例所绘示管理可复写式非易失性存储器模块的实体区块的范例示意图。
请参照图14,存储器控制器124的存储器管理电路122可将实体区块1210(0)~1210-(N)逻辑地分组为数个区,例如包含数据区1402与闲置区1404的储存区1410以及***区1406与取代区1408。在另一范例实施例中,取代区1408也可与闲置区1404共用包含无效数据的实体区块。
逻辑上属于储存区1410的实体区块是用以储存来自于主机***1000的数据。具体来说,数据区1402的实体区块是被视为已储存数据的实体区块,而闲置区1404的实体区块是用以替换数据区1402的实体区块。也就是说,当从主机***1000接收到写入指令与欲写入的数据时,存储器管理电路122会从闲置区1404中提取实体区块,并且将数据写入至所提取的实体区块中,以替换数据区1402的实体区块。
逻辑上属于***区1406的实体区块是用以记录***数据。例如,***数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区1408中的实体区块是用于坏实体区块取代程序,以取代损坏的实体区块。具体来说,倘若取代区1408中仍存有正常的实体区块并且数据区1402的实体区块损坏时,存储器管理电路122会从取代区1408中提取正常的实体区块来更换损坏的实体区块。
存储器管理电路122会配置逻辑单元1610(0)~1610(H)以映射数据区1402的实体区块,其中每一逻辑区块具有多个逻辑页面并且此些逻辑页面是依序地映射2个实体区块的实体页面。例如,存储器管理电路122会维护逻辑单元-实体区块映射表以记录逻辑单元610(0)~610(H)与数据区1402的实体区块的映射关系。必须了解的是,尽管在本范例实施例中,一个逻辑单元是映射2个实体区块,即,一个逻辑单元的容量是由2个实体区块的容量所构成。但本发明不限于此,在另一范例实施例中,一个逻辑单元也可映射1个实体区块或更多实体区块。
此外,由于主机***1000是以逻辑存取地址(例如,扇区(Sector))为单位来存取数据,当主机***1000存取数据时存储器管理电路122会将对应存储装置1200的逻辑存取地址转换成对应的逻辑页面。例如,当主机***1000欲存取某一逻辑存取地址时,存储器管理电路122会将主机***1000所存取的逻辑存取地址转换为以对应的逻辑区块与逻辑页面所构成的多维地址,并且通过逻辑单元-实体区块映射表在对应的实体页面中存取数据。
图15~图17是根据第二范例实施例所绘示的使用子实体区块写入数据的范例示意图。
请参照图15~图17,当存储器管理电路122从主机***1000中接收到写入指令而欲写入数据至逻辑单元1210(0)时,会从闲置区1404中提取实体区块1210(F)作为替换实体区块来轮替实体区块1210(0)。然而,当存储器管理电路122将新数据写入至实体区块1210(F)的同时,存储器管理电路122不会立刻将实体区块1210(0)中的所有有效数据搬移至实体区块1210(F)而抹除实体区块1210(0)。具体来说,存储器管理电路1202会将实体区块1210(0)中欲写入实体页面之前的有效数据(即,实体区块1210(0)的第0实体页面与第1实体页面中的数据)复制至实体区块1210(F)的第0实体页面与第1实体页面中(如图15所示),并且将新数据写入至实体区块1210(F)的第2~4个实体页面中(如图16所示)。此时,存储器管理电路122即完成写入的运作。因为实体区块1210(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块1210(0)中的其他有效数据搬移至实体区块1210(F)可能会造成无谓的搬移。此外,数据必须依序地写入至实体区块内的实体页面,因此,存储器管理电路122仅会先搬移欲写入实体页面之前的有效数据(即,储存在实体区块1210(0)的第0实体页面与第1实体页面中的数据),并且暂不搬移其余有效数据(即,储存在实体区块1210(0)的第5~K实体页面中数据)。
在本范例实施例中,暂时地维持此等暂态关系的运作称为开启(open)母子区块,并且原实体区块(例如,上述实体区块1210(0))称为母实体区块而替换实体区块(例如,上述与实体区块1210(F))称为子实体区块。在此,一个母实体区块以及其对应的至少一子实体区块称为母子区块组。
之后,当需要将实体区块1210(0)与实体区块1210(F)的数据合并(merge)时,存储器管理电路122会将实体区块1210(0)与实体区块1210(F)的数据整并至一个实体区块,由此提升实体区块的使用效率。在此,合并母子区块的运作称为数据合并运作或关闭(close)母子区块。例如,如图17所示,当进行关闭母子区块时,存储器管理电路122会将实体区块1210(0)中剩余的有效数据(即,实体区块1210(0)的第5~K实体页面中的数据)复制至替换实体区块1210(F)的第5实体页面~第K实体页面中,然后对实体区块1210(0)执行抹除运作并将抹除后的实体区块1210(0)关联至闲置区1404,同时,将实体区块1210(F)关联至数据区1402。也就是说,存储器管理电路122将原本映射至实体区块1210(0)的逻辑单元重新映射至实体区块1210(F)。因此,与第一范例实施例不同的是,原本属于闲置区1404的实体区块1210(F)再经过上述步骤以后会属于数据区1402,而原本属于数据区1402的实体区块1210(0)会被关联至闲置区1404。值得一提的是,闲置区1404中实体区块的数目是有限的,基此,在存储装置100运作期间,已开启的母子区块组的数目也会受到限制。因此,当存储装置1200接收到来自于主机***1000的写入指令时,倘若已开启母子区块组的数目达到上限时,存储器管理电路122需关闭至少一组目前已开启的母子区块组后才可执行此写入指令。
相同于第一范例实施例,当执行写入指令时,存储器管理电路122会从闲置区1404中提取实体区块作为欲写入数据的逻辑单元的缓冲实体区块并且仅使用缓冲实体区块的下实体页面来暂存更新数据。在本范例实施例中,一个逻辑单元的容量是由2个实体区块的容量所构成,因此,存储器管理电路122会从闲置区1404中提取4个实体区块作为对应一个逻辑单元的缓冲实体区块。
图18是根据第二范例实施例所绘示的将更新数据写入至缓冲实体区块的示意图。
请参照图18,当第一更新数据602欲被写入至逻辑单元1610(0)的逻辑页面1604(0)~1604(P)的至少其中之一时,存储器管理电路122会从闲置区504的实体区块之中提取多个实体区块独立地作为对应逻辑单元1610(0)的缓冲实体区块1506a~1506c。存储器管理电路122会使用缓冲实体区块1506a~1506c中写入速度较大的一部分来写入第一更新数据602。例如,存储器管理电路122是使用缓冲实体区块的下实体页面来写入第一更新数据602,而下实体页面的写入速度会大于上实体页面的写入速度。并且,之后,存储器管理电路122会使用复制程序将第一更新数据602从缓冲实体区块1506a~1506c中搬移至储存区1410,以将数据最后地写入至对应的实体区块中(例如,如图15~图17所示的运作)。例如,此复制程序包括使用一复制回指令(copyback command)。
图19是依照第二范例实施例所绘示的将更新数据写入至储存区的范例示意图。
请参照图19,假设缓冲实体区块1506a~1506c的下实体页面储存了属于逻辑单元1610(0)的所有有效数据。首先,存储器管理电路122会先从数据区1402中提取两个实体区块1210(0)与1210(1),并且使用复制程序将属于逻辑单元1610(0)的所有有效数据从缓冲实体区块1506a~1506c的下实体页面中依序地写入至实体区块1210(0)与1210(1)的下实体页面和上实体页面中。具体来说,存储器管理电路122会将缓冲实体区块1506a的第0、2、...、254个实体页面中的有效数据搬移至实体区块1210(0)的第0~127个实体页面中,并且将缓冲实体区块1506b的第0、2、...、254个实体页面中的有效数据搬移至实体区块1210(0)的第128~255个实体页面中。另一方面,存储器管理电路122会将缓冲实体区块1506c的第0、2、...、254个实体页面中的有效数据移动至实体区块1210(1)的第0~127个实体页面中,并且将缓冲实体区块1506d的第0、2、...、254个实体页面中的有效数据移动至实体区块410(T+2)的第128~255个实体页面中。
接着,存储器管理电路122会将逻辑单元1610(0)的逻辑页面1604(0)~1604(P)重新映射至实体区块1210(0)与实体区块1210(1)的实体页面。具体来说,存储器管理电路122会在逻辑单元-实体区块映射表中将逻辑单元1610(0)映射至实体区块1210(0)与实体区块1210(1)。
图20是根据第二范例实施例所绘示的数据写入方法的流程图。
请参照图20,在步骤S2002中,存储器管理电路122会将实体区块至少划分(partition)为一储存区,此储存区包括数据区与闲置区。在步骤S2004中,存储器管理电路122会配置多个逻辑单元以映射至数据区的实体区块,其中每一个逻辑单元具有多个逻辑页面。在步骤S2006中,存储器管理电路122会从主机***1000中接收第一更新数据,其中第一更新数据是欲被写入其中一个逻辑单元(以下称为第一逻辑单元)的至少一逻辑页面中。在步骤S2008中,存储器管理电路122会从闲置区的实体区块之中提取多个实体区块独立地作为对应第一逻辑单元的多个缓冲实体区块。在步骤S2010中,存储器管理电路122仅使用对应第一逻辑单元的缓冲实体区块的一部分来写入第一更新数据,其中此部分的写入速度会大于缓冲实体区块中其他部分的写入速度。之后,在步骤S2012中,存储器管理电路122会从闲置区的实体区块之中提取至少一实体区块作为对应该第一逻辑单元的替换实体区块(亦称为子实体区块)。并且在步骤S2014中,存储器管理电路122会使用复制程序将属于第一逻辑单元的所有逻辑页面的有效数据搬移至第一逻辑单元的替换实体区块中。
综上所述,本发明实施例所提出的数据写入方法、存储器控制器与存储装置,可以在接收更新数据至缓冲实体区块时,同时以复制程序将其他更新数据写入至储存区,藉此提升写入速度。或者,两个不同的更新数据是分别写入至所对应的缓冲实体区块,并且是以平行的方式同时根据复制程序写入至储存区,藉此提升写入速度。另一方面,由于缓冲实体区块只使用了下实体页面,因此在一范例实施例中可以增加存储装置的使用寿命。并且,当将多个实体区块视为一实体单元以增加写入速度时,本发明中的实体区块的抹除次数可以减少,因此并不会减少使用寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种数据写入方法,用于一存储装置,其中该存储装置包括一可复写式非易失性存储器模块,该可复写式非易失性存储器模块具有多个实体单元集合,每一该些实体单元集合具有多个实体单元组,每一该些实体单元组至少具有一下实体单元与一上实体单元,写入数据至该些下实体单元的速度快于写入数据至该些上实体单元的速度,该数据写入方法包括:
将该些实体单元集合至少划分为一储存区,其中该储存区包括一数据区与一闲置区;
配置多个逻辑单元以映射该数据区的该些实体单元集合,其中每一该些逻辑单元具有多个逻辑页面;
从一主机***中接收一第一更新数据,其中该第一更新数据欲被写入至该些逻辑单元之中的一第一逻辑单元的至少一逻辑页面中;
从该闲置区的该些实体单元集合之中提取多个实体单元集合独立地作为对应该第一逻辑单元的多个缓冲实体单元集合;
仅使用对应该第一逻辑单元的各该些缓冲实体单元集合的一部分来写入该第一更新数据,其中该部分的一写入速度大于各该些缓冲实体单元集合的一其他部分的一写入速度;以及
使用一复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区。
2.根据权利要求1所述的数据写入方法,其中使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的步骤包括:
从该闲置区的该些实体单元集合之中提取至少一个实体单元集合作为对应该第一逻辑单元的至少一替换实体单元集合;以及
使用该复制程序将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该第一逻辑单元的该至少一替换实体单元集合,其中该第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至该至少一替换实体单元集合的每一实体单元组的下实体单元与上实体单元中。
3.根据权利要求1所述的数据写入方法,其中每一该些实体单元组还具有一中实体单元,并且写入数据至该些下实体单元的速度快于写入数据至该些中实体单元的速度,
其中使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的步骤包括:
从该闲置区的该些实体单元集合之中提取多个实体单元集合作为对应该第一逻辑单元的多个暂存实体单元集合;
使用该复制程序将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该第一逻辑单元的该些暂存实体单元集合,其中仅该第一逻辑单元的该些暂存实体单元集合的该些下实体单元会被用来写入属于该第一逻辑单元的所有逻辑页面的有效数据;以及
从对应该第一逻辑单元的该些暂存实体单元集合中将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该数据区的该些实体单元集合之中的至少一第一实体单元集合中,其中该第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至该至少一第一实体单元集合的每一实体单元组的下实体单元、中实体单元与上实体单元中。
4.根据权利要求1所述的数据写入方法,还包括:
在使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的同时,从该主机***中接收一第二更新数据。
5.根据权利要求1所述的数据写入方法,还包括:
从该主机***中接收一第三更新数据,其中该第三更新数据欲被写入至该些逻辑单元之中的一第二逻辑单元的至少一逻辑页面中;
从该闲置区的该些实体单元集合之中提取多个实体单元集合独立地作为对应该第二逻辑单元的多个缓冲实体单元集合;
仅使用对应该第二逻辑单元的各该些缓冲实体单元集合的该部分来写入该第三更新数据;以及
使用该复制程序将该第三更新数据从对应该第二逻辑单元的该些缓冲实体单元集合搬移至该储存区。
6.根据权利要求5所述的数据写入方法,其中使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的步骤和使用该复制程序将该第三更新数据从对应该第二逻辑单元的该些缓冲实体单元集合搬移至该储存区的步骤是以一平行方式同时被执行。
7.一种存储装置,包括:
一可复写式非易失性存储器模块,具有多个实体单元集合,每一该些实体单元集合具有多个实体单元组,每一该些实体单元组至少具有一下实体单元与一上实体单元,写入数据至该些下实体单元的速度快于写入数据至该些上实体单元的速度;
一连接器,用以电性连接至一主机***;以及
一存储器控制器,用以电性连接至该连接器与该可复写式非易失性存储器模块,
其中,该存储器控制器将该些实体单元集合至少划分为一储存区,其中该储存区包括一数据区与一闲置区,
其中,该存储器控制器配置多个逻辑单元以映射该数据区的该些实体单元集合,其中每一该些逻辑单元具有多个逻辑页面,
其中,该存储器控制器从该主机***中接收一第一更新数据,其中该第一更新数据欲被写入至该些逻辑单元之中的一第一逻辑单元的至少一逻辑页面中,
其中,该存储器控制器从该闲置区的该些实体单元集合之中提取多个实体单元集合独立地作为对应该第一逻辑单元的多个缓冲实体单元集合,
其中,该存储器控制器仅使用对应该第一逻辑单元的各该些缓冲实体单元集合的一部分来写入该第一更新数据,其中该部分的一写入速度大于各该些缓冲实体单元集合的一其他部分的一写入速度,
其中,该存储器控制器使用一复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区。
8.根据权利要求7所述的存储装置,其中该存储器控制器从该闲置区的该些实体单元集合之中提取至少一个实体单元集合作为对应该第一逻辑单元的至少一替换实体单元集合,并且使用该复制程序将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该第一逻辑单元的该至少一替换实体单元集合,其中该第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至该至少一替换实体单元集合的每一实体单元组的下实体单元与上实体单元中。
9.根据权利要求7项所述的存储装置,其中每一该些实体单元组还具有一中实体单元,并且写入数据至该些下实体单元的速度快于写入数据至该些中实体单元的速度,
其中该存储器控制器还用以从该闲置区的该些实体单元集合之中提取多个实体单元集合作为对应该第一逻辑单元的多个暂存实体单元集合,并使用该复制程序将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该第一逻辑单元的该些暂存实体单元集合,其中仅该第一逻辑单元的该些暂存实体单元集合的该些下实体单元会被用来写入属于该第一逻辑单元的所有逻辑页面的有效数据,
该存储器控制器还用以从对应该第一逻辑单元的该些暂存实体单元集合中将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该数据区的该些实体单元集合之中的至少一第一实体单元集合中,其中该第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至该至少一第一实体单元集合的每一实体单元组的下实体单元、中实体单元与上实体单元中。
10.根据权利要求7所述的存储装置,其中该存储器控制器在使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的同时,从该主机***中接收一第二更新数据。
11.根据权利要求7所述的存储装置,其中该存储器控制器还用以从该主机***中接收一第三更新数据,其中该第三更新数据欲被写入至该些逻辑单元之中的一第二逻辑单元的至少一逻辑页面中,
其中,该存储器控制器还用以从该闲置区的该些实体单元集合之中提取多个实体单元集合独立地作为对应该第二逻辑单元的多个缓冲实体单元集合,并且仅使用对应该第二逻辑单元的各该些缓冲实体单元集合的该部分来写入该第三更新数据,
其中,该存储器控制器还用以使用该复制程序将该第三更新数据从对应该第二逻辑单元的该些缓冲实体单元集合搬移至该储存区。
12.根据权利要求11所述的存储装置,其中该存储器控制器是以一平行方式同时执行使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该数据区的步骤和使用该复制程序将该第三更新数据从对应该第二逻辑单元的该些缓冲实体单元集合搬移至该数据区的步骤。
13.一种存储器控制器,用以控制一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体单元集合,每一该些实体单元集合具有多个实体单元组,每一该些实体单元组至少具有一下实体单元与一上实体单元,写入数据至该些下实体单元的速度快于写入数据至该些上实体单元的速度,该存储器控制器包括:
一主机接口,用以电性连接至一主机***;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并将该些实体单元集合至少划分为一储存区,其中该储存区包括一数据区与一闲置区,
其中,该存储器管理电路配置多个逻辑单元以映射该数据区的该些实体单元集合,其中每一该些逻辑单元具有多个逻辑页面,
其中,该存储器管理电路从该主机***中接收一第一更新数据,其中该第一更新数据欲被写入至该些逻辑单元之中的一第一逻辑单元的至少一逻辑页面中,
其中,该存储器管理电路从该闲置区的该些实体单元集合之中提取多个实体单元集合独立地作为对应该第一逻辑单元的多个缓冲实体单元集合,
其中,该存储器管理电路仅使用对应该第一逻辑单元的各该些缓冲实体单元集合的一部分来写入该第一更新数据,其中该部分的一写入速度大于各该些缓冲实体单元集合的一其他部分的一写入速度,
其中,该存储器管理电路使用一复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区。
14.根据权利要求13所述的存储器控制器,其中该存储器管理电路从该闲置区的该些实体单元集合之中提取至少一个实体单元集合作为对应该第一逻辑单元的至少一替换实体单元集合,并使用该复制程序将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该第一逻辑单元的该至少一替换实体单元集合,
其中该第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至该至少一替换实体单元集合的每一实体单元组的下实体单元与上实体单元中。
15.根据权利要求13所述的存储器控制器,其中每一该些实体单元组还具有一中实体单元,并且写入数据至该些下实体单元的速度快于写入数据至该些中实体单元的速度,
其中该存储器管理电路还用以从该闲置区的该些实体单元集合之中提取多个实体单元集合作为对应该第一逻辑单元的多个暂存实体单元集合,并使用该复制程序将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该第一逻辑单元的该些暂存实体单元集合,其中仅该第一逻辑单元的该些暂存实体单元集合的该些下实体单元会被用来写入属于该第一逻辑单元的所有逻辑页面的有效数据,
该存储器管理电路还用以从对应该第一逻辑单元的该些暂存实体单元集合中将属于该第一逻辑单元的所有逻辑页面的有效数据搬移至该数据区的该些实体单元集合之中的至少一第一实体单元集合中,其中该第一逻辑单元的所有逻辑页面的有效数据会依序地被写入至该至少一第一实体单元集合的每一实体单元组的下实体单元、中实体单元与上实体单元中。
16.根据权利要求13所述的存储器控制器,其中该存储器管理电路在使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的同时,从该主机***中接收一第二更新数据。
17.根据权利要求13所述的存储器控制器,其中该存储器管理电路还用以从该主机***中接收一第三更新数据,其中该第三更新数据欲被写入至该些逻辑单元之中的一第二逻辑单元的至少一逻辑页面中,
其中,该存储器管理电路还用以从该闲置区的该些实体单元集合之中提取多个实体单元集合独立地作为对应该第二逻辑单元的多个缓冲实体单元集合,且仅使用对应该第二逻辑单元的各该些缓冲实体单元集合的该部分来写入该第三更新数据,
其中,该存储器管理电路还用以使用该复制程序将该第三更新数据从对应该第二逻辑单元的该些缓冲实体单元集合搬移至该储存区。
18.根据权利要求17所述的存储器控制器,其中该存储器管理电路是以一平行方式同时执行使用该复制程序将该第一更新数据从对应该第一逻辑单元的该些缓冲实体单元集合搬移至该储存区的步骤和使用该复制程序将该第三更新数据从对应该第二逻辑单元的该些缓冲实体单元集合搬移至该储存区的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210087996.5A CN103365790B (zh) | 2012-03-29 | 2012-03-29 | 存储器控制器、存储装置与数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210087996.5A CN103365790B (zh) | 2012-03-29 | 2012-03-29 | 存储器控制器、存储装置与数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365790A true CN103365790A (zh) | 2013-10-23 |
CN103365790B CN103365790B (zh) | 2016-03-02 |
Family
ID=49367193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210087996.5A Active CN103365790B (zh) | 2012-03-29 | 2012-03-29 | 存储器控制器、存储装置与数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365790B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679437A (zh) * | 2013-11-27 | 2015-06-03 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
CN105279103A (zh) * | 2015-09-29 | 2016-01-27 | 浪潮集团有限公司 | 一种数据管理方法及装置 |
CN106201932A (zh) * | 2015-05-07 | 2016-12-07 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN106708416A (zh) * | 2015-11-13 | 2017-05-24 | 群联电子股份有限公司 | 数据重建方法与***及其存储器控制电路单元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110004723A1 (en) * | 2009-07-03 | 2011-01-06 | Phison Electronics Corp. | Data writing method for flash memory and control circuit and storage system using the same |
CN101944384A (zh) * | 2009-07-06 | 2011-01-12 | 群联电子股份有限公司 | 用于闪速存储器的数据写入方法及其控制电路与储存*** |
CN101957799A (zh) * | 2009-07-16 | 2011-01-26 | 群联电子股份有限公司 | 用于闪速存储器的数据写入方法及其控制电路与存储*** |
US20110161565A1 (en) * | 2009-12-31 | 2011-06-30 | Phison Electronics Corp. | Flash memory storage system and controller and data writing method thereof |
TW201133236A (en) * | 2010-03-17 | 2011-10-01 | Phison Electronics Corp | Data access method, memory controller, memory storage system |
-
2012
- 2012-03-29 CN CN201210087996.5A patent/CN103365790B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110004723A1 (en) * | 2009-07-03 | 2011-01-06 | Phison Electronics Corp. | Data writing method for flash memory and control circuit and storage system using the same |
CN101944384A (zh) * | 2009-07-06 | 2011-01-12 | 群联电子股份有限公司 | 用于闪速存储器的数据写入方法及其控制电路与储存*** |
CN101957799A (zh) * | 2009-07-16 | 2011-01-26 | 群联电子股份有限公司 | 用于闪速存储器的数据写入方法及其控制电路与存储*** |
US20110161565A1 (en) * | 2009-12-31 | 2011-06-30 | Phison Electronics Corp. | Flash memory storage system and controller and data writing method thereof |
TW201133236A (en) * | 2010-03-17 | 2011-10-01 | Phison Electronics Corp | Data access method, memory controller, memory storage system |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679437A (zh) * | 2013-11-27 | 2015-06-03 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
CN104679437B (zh) * | 2013-11-27 | 2017-12-08 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
CN106201932A (zh) * | 2015-05-07 | 2016-12-07 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN106201932B (zh) * | 2015-05-07 | 2019-03-05 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN105279103A (zh) * | 2015-09-29 | 2016-01-27 | 浪潮集团有限公司 | 一种数据管理方法及装置 |
CN106708416A (zh) * | 2015-11-13 | 2017-05-24 | 群联电子股份有限公司 | 数据重建方法与***及其存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN103365790B (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090222643A1 (en) | Block management method for flash memory and controller and storage sysetm using the same | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN111158579A (zh) | 固态硬盘及其数据存取的方法 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN102866861B (zh) | 闪存储存***、闪存控制器与数据写入方法 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
CN103678162A (zh) | ***数据储存方法、存储器控制器与存储器储存装置 | |
CN103365790B (zh) | 存储器控制器、存储装置与数据写入方法 | |
CN102915273A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104252600B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN103914391A (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN103544118A (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN102890653A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN103218308B (zh) | 缓冲存储器管理方法、存储器控制器与存储器储存装置 | |
US10824340B2 (en) | Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus | |
CN104731710A (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN104166558B (zh) | 固件码载入方法、存储器控制器与存储器存储装置 | |
CN102467459B (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 |