数据写入方法、存储器控制电路单元与存储器储存装置的制造方法【
技术领域:
】[0001]本发明是有关于一种数据写入方法,且特别是有关于用于可复写式非易失性存储器模块的数据写入方法、存储器控制电路单元与存储器储存装置。【
背景技术:
】[0002]数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于便携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为储存媒体的存储器储存装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。[0003]依据每个存储单元可储存的比特数,与非(NAND)型快闪存储器可区分为单阶储存单元(SingleLevelCell,简称SLC)NAND型快闪存储器、多阶储存单元(MultiLevelCell,简称MLC)NAND型快闪存储器与三阶储存单元(TrinaryLevelCell,简称TLC)NAND型快闪存储器,其中SLCNAND型快闪存储器的每个存储单元可储存I个比特的数据(即,“I”与“0”),MLCNAND型快闪存储器的每个存储单元可储存2个比特的数据并且TLCNAND型快闪存储器的每个存储单元可储存3个比特的数据。[0004]在NAND型快闪存储器中,实体程序化单元是由排列在同一条字线上的数个存储单元所组成。由于SLCNAND型快闪存储器的每个存储单元可储存I个比特的数据,因此,在SLCNAND型快闪存储器中,排列在同一条字线上的数个存储单元是对应一个实体程序化单元。[0005]相对于SLCNAND型快闪存储器来说,MLCNAND型快闪存储器的每个存储单元的浮动门储存层可储存2个比特的数据,其中每一个储存状态(B卩,“11”、“10”、“01”与“00”)包括最低有效比特(LeastSignificantBit,简称LSB)以及最高有效比特(MostSignificantBit,简称MSB)。例如,储存状态中从左侧算起的第I个比特的值为LSB,而从左侧算起的第2个比特的值为MSB。因此,排列在同一条字线上的数个存储单元可组成2个实体程序化单元,其中由此些存储单元的LSB所组成的实体程序化单元称为下实体程序化单元(lowphysicalprogrammingunit),并且由此些存储单元的MSB所组成的实体程序化单元称为上实体程序化单元(upperphysicalprogrammingunit)。特别是,下实体程序化单元的写入速度会快于上实体程序化单元的写入速度,并且当程序化上实体程序化单元发生错误时,下实体程序化单元所储存的数据也可能因此遗失。[0006]类似地,在TLCNAND型快闪存储器中,每个存储单元可储存3个比特的数据,其中每一个储存状态(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”与“000”)包括每一个储存状态包括左侧算起的第I个比特的LSB、从左侧算起的第2个比特的中间有效比特(CenterSignificantBit,简称CSB)以及从左侧算起的第3个比特的MSB。因此,排列在同一条字线上的数个存储单元可组成3个实体程序化单元,其中由此些存储单元的LSB所组成的实体程序化单元称为下实体单元,由此些存储单元的CSB所组成的实体程序化单元称为中实体程序化单元,并且由此些存储单元的MSB所组成的实体程序化单元称为上实体程序化单元。特别是,对排列在同一条字线上的数个存储单元进行程序化时,仅能选择仅程序化下实体程序化单元或者同时下实体单元、中实体程序化单元与上实体程序化单元,否则所储存的数据可能会遗失。[0007]一般而言,使用TLCNAND型快闪存储器的存储器模块,会将其中的部分实体抹除单元分组为使用只操作于下实体程序化单元的一单页模式来模拟SLCNAND型快闪存储器的运作,藉此也提高了寿命(抹除次数上限),也因为只操作于下实体程序化单元,写入、读取速度也增进许多。而此模拟SLCNAND型快闪存储器操作模式的部分实体抹除单元,会被使用于作为存储器模块的缓冲区,用来暂存数据,或是用来储存系统数据。但,若是大量使用此缓冲区来做数据暂存,会使此缓冲区的实体抹除单元抹除次数快速增加导致老化,而使之后暂存其中的数据容易发生不可恢复的数据错误。[0008]基于上述,如何避免因为此缓冲区的实体抹除单元老化所导致的数据错误,以及提升每一存储单元可储存多个比特的快闪存储器的可靠度与效能是此领域技术人员所致力的目标。【
发明内容】[0009]本发明提供一种数据写入方法、存储器控制电路单元及存储器储存装置,其能够有效地延长存储器储存装置的寿命。[0010]本发明的一范例实施例提出一种数据写入方法,用于可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个实体抹除单元。本数据写入方法包括:将这些实体抹除单元至少分组为闲置区与暂驻存储区;接收第一数据,其中第一数据欲被储存至第一逻辑单元的多个逻辑子单元中;根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的多个暂存实体抹除单元;使用单页模式将第一数据写入至第一暂存实体抹除单元组的这些暂存实体抹除单元;以及从闲置区中的这些实体抹除单元中提取第一实体抹除单元,从第一暂存实体抹除单元组的这些暂存实体抹除单元中将第一数据复制至第一实体抹除单元中并且将第一逻辑单元映射至第一实体抹除单元,其中这些第一数据会被写入至第一实体抹除单元的每个实体程序单元组的下实体程序化单元与上实体程序化单元中并且第一实体抹除单元的每个实体程序化单元组的下实体程序化单元与上实体程序化单元会同时被程序化。[0011]在本发明的一范例实施例中,上述根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的多个暂存实体抹除单元的步骤包括:判断暂驻存储区的实体抹除单元的平均抹除次数是否小于第一预设门槛值;以及倘若暂驻存储区的实体抹除单元的平均抹除次数小于第一预设门槛值时,仅从暂驻存储区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元。[0012]在本发明的一范例实施例中,上述根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的多个暂存实体抹除单元的步骤还包括:判断暂驻存储区的实体抹除单元的平均抹除次数是否大于第二预设门槛值;以及倘若暂驻存储区的实体抹除单元的平均抹除次数大于第二预设门槛值时,仅从闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元。[0013]在本发明的一范例实施例中,上述根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的多个暂存实体抹除单元的步骤还包括:倘若暂驻存储区的实体抹除单元的平均抹除次数介于第一预设门槛值与第二预设门槛值之间时,从暂驻存储区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的一部分且从闲置区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的另一部分。[0014]在本发明的一范例实施例中,上述根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的多个暂存实体抹除单元的步骤还包括:根据暂驻存储区的实体抹除单元的平均抹除次数计算暂驻存储区提取比率;建立随机乱数模块,其中随机乱数模块是由多个第一数值与多个第二数值所组成并且这些第一数值的数目与这些第二数值的数目的比率相同于暂驻存储区提取比率;从随机乱数模块中的这些第一数值与这些第二数值之中随机取得数值,并且判断此数值是否属于这些第一数值的其中之一;倘若此数值属于这些第一数值的其中之一时,则从暂驻存储区的实体抹除单元之中提取一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的其中之一;以及倘若数值不属于这些第一数值的其中之一时,则从闲置区的实体抹除单元之中提取一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的其中之另一。[0015]在本发明的一范例实施例中,上述闲置区的这些实体抹除单元和暂驻存储区的这些实体抹除单元是彼此独立地被操作。[0016]在本发明的一范例实施例中,在第一数据复制至第一实体抹除单元之后,作为该第一暂存实体抹除单元组的该些暂存实体抹除单元之中取自该暂驻存储区的实体抹除单元会被关联回该暂驻存储区,并且作为该第一暂存实体抹除单元组的该些暂存实体抹除单元之中取自该闲置区的实体抹除单元会被关联回该闲置区。[0017]在本发明的一范例实施例中,上述仅从暂驻存储区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的步骤包括:从暂驻存储区的这些实体抹除单元之中提取3个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的第一暂存实体抹除单元、第二暂存实体抹除单元与第三暂存实体抹除单元。[0018]在本发明的一范例实施例中,上述仅从闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的步骤包括:从闲置区的这些实体抹除单元之中提取3个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的第一暂存实体抹除单元、第二暂存实体抹除单元与第三暂存实体抹除单元。[0019]在本发明的一范例实施例中,上述从暂驻存储区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的一部分且从闲置区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的另一部分的步骤包括:从暂驻存储区的这些实体抹除单元之中提取I个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的第一暂存实体抹除单元;以及从闲置区的这些实体抹除单元之中提取2个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的第二暂存实体抹除单元与第三暂存实体抹除单元。[0020]在本发明的一范例实施例中,上述从暂驻存储区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的一部分且从闲置区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的另一部分的步骤包括:从暂驻存储区的这些实体抹除单元之中提取2个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的第一暂存实体抹除单元与第二暂存实体抹除单元;以及从闲置区的这些实体抹除单元之中提取I个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的第三暂存实体抹除单元。[0021]本发明一范例实施例提供一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个实体抹除单元。此存储器控制电路单元包括:用以电性连接至主机系统的主机接口;用以电性连接至可复写式非易失性存储器模块的存储器接口;以及电性连接至主机接口与存储器接口的存储器管理电路。存储器管理电路用以将此些实体抹除单元至少分组为闲置区与暂驻存储区,并且从主机系统中接收第一数据,其中主机系统指示将第一数据储存至第一逻辑单元的多个逻辑子单元中。此外,存储器管理电路还用以根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的多个暂存实体抹除单元。再者,存储器管理电路还使用单页模式将第一数据写入至第一暂存实体抹除单元组的这些暂存实体抹除单元。另外,存储器管理电路还用以从闲置区中的这些实体抹除单元中提取第一实体抹除单元,从第一暂存实体抹除单元组的这些暂存实体抹除单元中将第一数据合并至第一实体抹除单元中并且将第一逻辑单元映射至第一实体抹除单元,其中这些第一数据会被写入至第一实体抹除单元的每个实体程序化单元组的下实体程序化单元与上实体程序化单元中并且第一实体抹除单元的每个实体程序化单元组的下实体程序化单元与上实体程序化单元会同时被程序化。[0022]在本发明的一范例实施例中,在根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的运作中,存储器管理电路还用以判断暂驻存储区的实体抹除单元的平均抹除次数是否大于第二预设门槛值,其中倘若暂驻存储区的实体抹除单元的平均抹除次数大于第二预设门槛值时,存储器管理电路仅从闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元。[0023]在本发明的一范例实施例中,在根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的运作中,倘若暂驻存储区的实体抹除单元的平均抹除次数介于第一预设门槛值与第二预设门槛值之间时,存储器管理电路从暂驻存储区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的一部分且从闲置区的实体抹除单元之中提取至少一个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的另一部分。[0024]在本发明的一范例实施例中,上述存储器管理电路还用以根据暂驻存储区的实体抹除单元的平均抹除次数计算暂驻存储区提取比率,并且设定随机乱数模块,其中随机乱数模块是由多个第一数值与多个第二数值所组成并且这些第一数值的数目与这些第二数值的数目的比率相同于暂驻存储区提取比率。并且,在根据暂驻存储区的实体抹除单元的平均抹除次数,从暂驻存储区、或闲置区、或者暂驻存储区及闲置区的实体抹除单元之中提取多个实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的运作中,存储器管理电路从随机乱数模块中的这些第一数值与这些第二数值之中随机取得数值,并且判断数值是否属于这些第一数值的其中之一。倘若数值属于这些第一数值的其中之一时,存储器管理电路从暂驻存储区的实体抹除单元之中提取实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的其中之一;并且倘若数值不属于这些第一数值的其中之一时,存储器管理电路从闲置区的实体抹除单元之中提取实体抹除单元作为对应第一逻辑单元的第一暂存实体抹除单元组的这些暂存实体抹除单元的其中之另一。[0025]在本发明的一范例实施例中,在第一数据复制至第一实体抹除单元之后,上述存储器管理电路还将作为该第一暂存实体抹除单元当前第1页1 2 3 4 5 6