编程方法、存储器存储装置及存储器控制电路单元的制作方法_5

文档序号:9752243阅读:来源:国知局
⑷…906 (M-2)及906 (M))会被跳过。
[0170]在图11至图13的实施例中,在一个物理删除单元中,连续被编程且彼此不相邻的两条字符线中间是存在一条被跳过的字符线。然而,在另一实施例中,更多被跳过的字符线也可以存在连续被编程的两条彼此不相邻的字符线中间。也即,上述第二字符线及/或第五字符线的数目可以是大于I。
[0171]图14是根据本发明的一实施例所示出的编程的示意图,图15是根据本发明的一实施例所示出的编程的示意图。
[0172]请参照图14,在执行第一跳跃编程程序时,字符线906 (O)会被编程;然后,字符线906(1)?906(3)会被跳过且字符线906(4)会被编程;然后,字符线906(5)?906(7)会被跳过且字符线906(8)会被编程,以此类推。请参照图15,在将物理删除单元900 (O)删除之后,在执行第二跳跃编程程序时,字符线906(0)会被跳过且字符线906(1)会被编程;然后,字符线906(2)?906(4)会被跳过且字符线906(5)会被编程;然后,字符线906(6)?906(8)会被跳过且字符线906 (9)会被编程,以此类推。然而,本发明并不以此为限,在另一实施例中,连续被编程的两条彼此不相邻的字符线之间,也可以存在2条、4条或者更多的字符线。
[0173]在上述实施例中,预设都是以跳跃编程程序来编程第一存储区901中的每一个物理删除单元900 (O)?900 (A)的字符线。然而,在另一实施例中,也可以是在特定的条件被达成时,才会改为使用跳跃编程程序来编程某一个或多个物理删除单元的字符线。例如,存储器管理电路702会判断可复写式非易失性存储器模块406的状态(也称为目前状态)是否符合一或多个条件(也称为第一条件)。若可复写式非易失性存储器模块406的目前状态符合此第一条件,存储器管理电路702会发送上述第一跳跃写入指令序列或第二跳跃写入指令序列。若可复写式非易失性存储器模块406的目前状态不符合第一条件,存储器管理电路702则是会发送一正常写入指令序列。其中此正常写入指令序列指示可复写式非易失性存储器模块406执行正常编程程序。在正常编程程序中,相邻的字符线可被编程来存储数据。例如,在图11的另一实施例中,若可复写式非易失性存储器模块406是执行正常编程程序,则根据第一数据,字符线906 (O)会先被编程;在字符线906 (O)被编程之后,字符线906(1)会被编程;在字符线906(1)被编程之后,字符线906(2)也可被编程,以此类推。也就是说,在正常编程程序中,若一个物理删除单元的所有或部分彼此相邻的字符线都是可用的,则此些字符线的任一都不会被跳过。此外,上述判断可复写式非易失性存储器模块406的目前状态是否符合第一条件的操作可以是在接收到写入指令(例如,第一写入指令或第二写入指令)之后即时地执行。或者,上述判断可复写式非易失性存储器模块406的目前状态是否符合第一条件的操作也可以是指查询一查找表。例如,在一实施例中,判断可复写式非易失性存储器模块406的目前状态是否符合第一条件的操作可以是预先执行并且将判断结果记录于一查找表中。由此,在接收到写入指令(例如,第一写入指令或第二写入指令)之后,可即时根据此查找表得知此判断结果。
[0174]在一实施例中,存储器管理电路702可判断第一物理删除单元的使用程度是否达到预设程度。关于如何评估一个物理删除单元的使用程度已详述于上,在此不重复赘述。若第一物理删除单元的使用程度已达到预设程度,例如,第一物理删除单元的删除次数达到2万次,则存储器管理电路702可判定可复写式非易失性存储器模块406的目前状态符合第一条件。若该第一物理删除单元的使用程度没有达到此预设程度,例如,第一物理删除单元的删除次数没有达到2万次,则存储器管理电路702可判定可复写式非易失性存储器模块406的目前状态不符合此第一条件。此外,在一实施例中,存储器管理电路702可统计第一物理删除单元中属于特定类型的错误的数目。若第一物理删除单元中属于特定类型的错误超过一预设数目,也可判定为第一物理删除单元的使用程度已达到预设程度。例如,此属于特定类型的错误包括一高信任度错误(high reliability error)。此高信任度错误的特征在于其对应的对数可能性比值(Log Likelihood Rat1,简称LLR)的值(或绝对值)通常超过一预设值。此外,存储器管理电路702也可以在第一物理删除单元中的错误超过另一预设数目之后判定第一物理删除单元的使用程度已达到预设程度。
[0175]在一实施例中,存储器管理电路702可以判断存储器存储装置10或可复写式非易失性存储器模块406是否已经经过一高温工序。在高温工序中,存储单元的存储状态可能会改变。例如,此高温工序可以是指过锡炉。特别是,对于嵌入式多媒体卡的制程来说,此高温工序更为重要。若存储器存储装置10或可复写式非易失性存储器模块406已经经过此高温工序,存储器管理电路702可判定可复写式非易失性存储器模块406的目前状态符合第一条件。若存储器存储装置10或可复写式非易失性存储器模块406尚未经过此高温工序,存储器管理电路702可判定可复写式非易失性存储器模块406的目前状态不符合此第一条件。此外,在另一实施例中,上述高温工序也可以包括存储器存储装置10或可复写式非易失性存储器模块406的其他制程阶段或以存储器存储装置10或可复写式非易失性存储器模块406的任一制程阶段取代。
[0176]在一实施例中,存储器管理电路702可以判断第一存储区901的总可用大小是否小于一或多个写入指令所指示需要写入至可复写式非易失性存储器模块406的数据的数据大小。在本实施例中,第一存储区901的总可用大小等于第一存储区901的一总存储空间的大小的1/P。其中,P是大于I的正整数,并且P的值与所使用的跳跃规则有关。例如,在图11至图13的实施例中,每一次被跳过的字符线的数目是“1”,因此P的值是2。也就是说,在图11至图13的实施例中,以物理删除单元900(0)为例,由于物理删除单元900 (O)中可以被编程的存储单元只剩下物理删除单元900 (O)中所有的存储单元的一半。因此,若是依照图11或图12的范实施例所使用的跳跃规则来编程第一存储区901中的每一个物理删除单元900 (O)?900 (A),则每一次暂存在第一存储区901中的数据的数据大小不能超过第一存储区901的总存储空间的大小的1/2。此外,在图14与图15的实施例中,每一次被跳过的字符线的数目是“3”,因此P的值是4。也就是说,若是以图14与图15的实施例所使用的跳跃规则来编程第一存储区901中的每一个物理删除单元900 (O)?900 (A),则每一次暂存在第一存储区901中的数据的数据大小不能超过第一存储区901的总存储空间的大小的1/4。若第一存储区901的总可用大小小于此一或多个写入指令所指示需要写入至可复写式非易失性存储器模块406的数据的数据大小,存储器管理电路702可判定可复写式非易失性存储器模块406的目前状态不符合第一条件。若第一存储区901的总可用大小不小于此一或多个写入指令所指示需要写入至可复写式非易失性存储器模块406的数据的数据大小,则存储器管理电路702可判定可复写式非易失性存储器模块406的目前状态符合此第一条件。此外,在另一实施例中,在写入目前的数据之前若第一存储区901中已经有存储其他数据,则第一存储区901的总可用大小会小于第一存储区901的总存储空间的大小的I/P。
[0177]此外,上述各种用以判断可复写式非易失性存储器模块406的目前状态是否符合各种第一条件的判断操作可以选择两个合并使用、全部合并使用或者单独使用。例如,在一实施例中,只有在判定第一物理删除单元的使用程度已达到预设程度、存储器存储装置10或可复写式非易失性存储器模块406已经经过高温工序且第一存储区901的总可用大小不小于写入指令所指示需要写入至可复写式非易失性存储器模块406的数据的数据大小之后,存储器管理电路702才会判定可复写式非易失性存储器模块406的目前状态符合第一条件并且发送跳跃写入指令序列。
[0178]值得一提的是,虽然上述各实施例都是以第一存储区901中的物理删除单元作为执行跳跃编程程序的示例,然而,在另一实施例中,第二存储区902及/或系统区903中的一或多个物理删除单元也可以被执行上述跳跃编程程序。或者,上述各实施例中提及的操作也可以被应用于对于第二存储区902及/或系统区903的编程操作。此外,在一实施例中,所执行的跳跃编程程序中所跳过的字符线的选择与来自主机系统11的写入指令无关。例如,对于需要跳过或需要被编程的字符线的选择可能只与前一次执行的跳跃编程程序有关。此外,在一实施例中,上述跳跃编程程序与正常编程程序是由可复写式非易失性存储器模块406中的控制电路(例如,图5中的控制电路512)执行。
[0179]图16是根据本发明的一实施例所示出的编程方法的流程图。
[0180]请参照图16,在步骤S1601中,接收第一写入指令。在步骤S1602中,根据第一写入指令从多个物理删除单元中选择第一物理删除单元并且发送第一跳跃写入指令序列,其中,第一跳跃写入指令序列指示执行第一跳跃编程程序。
[0181]图17是根据本发明的一实施例所示出的编程方法的流程图。
[0182]请参照图17,在步骤S1701中,接收第一写入指令。在步骤S1702中,根据第一写入指令从多个物理删除单元中选择第一物理删除单元并且发送第一跳跃写入指令序列,其中,第一跳跃写入指令序列指示执行第一跳跃编程程序。在步骤S1703中,接收第二写入指令。在步骤S1704中,根据第二写入指令选择第三物理删除单元。此第三物理删除单元可以是与第一物理删除单元相同的物理删除单元也可以是与第一物理删除单元不相同的物理删除单元。在步骤S1705中,判断对于第三物理删除单元的第一跳跃写入指令序列是使用第一跳跃规则或第二跳跃规则。若对于第三物理删除单元的第一跳跃写入指令序列是使用第一跳跃规则,则在步骤S1706中,发送第二跳跃写入指令序列,其中第二跳跃写入指令序列指示根据第二跳跃规则执行第二跳跃编程程序。若对于第三物理删除单元的第一跳跃写入指令序列是使用第二跳跃规则,则在步骤S1707中,发送第二跳跃写入指令序列,其中第二跳跃写入指令序列指示根据第一跳跃规则执行第二跳跃编程程序。
[0183]图18是根据本发明的一实施例所示出的编程方法的流程图。
[0184]请参照图18,在步骤S1801中,接收第一写入指令。在步骤S1802中,根据第一写入指令从多个物理删除单元中选择第一物理删除单元。在步骤S1803中,判断第一物理删除单元的使用程度是否达到预设程度。若第一物理删除单元的使用程度已达到预设程度,在步骤S1804中,根据第一写入指令发送第一跳跃写入指令序列,其中,第一跳跃写入指令序列指示执行第一跳跃编程程序。若第一物理删除单元的使用程度尚未达到预设程度,在步骤S1805中,根据第一写入指令发送正常写入指令序列,其中,正常写入指令序列指示执行正常编程程序。
[0185]图19是根据本发明的一实施例所示出的编程方法的流程图。
[0186]请参照图19,在步骤S1901中,接收第一写入指令。在步骤S1902中,根据第一写入指令从多个物理删除单元中选择第一物理删除单元。在步骤S1903中,判断存储器存储装置或可复写式非易失性存储器模块是否已经经过高温工序。若存储器存储装置或可复写式非易失性存储器模块已经经过高温工序,在步骤S1904中,根据第一写入指令发送第一跳跃写入指令序列,其中,第一跳跃写入指令序列指示执行第一跳跃编程程序。若存储器存储装置或可复写式非易失性存储器模块尚未经过高温工序,在步骤S1905中,根据第一写入指令发送正常写入指令序列,其中,正常写入指令序列指示执行正常编程程序。
[0187]图20是根据本发明的一实施例所示出的编程方法的流程图。
[0188]请参照图20,在步骤S2001中,接收第一写入指令。在步骤S2002中,根据第一写入指令从多个物理删除单元中选择第一物理删除单元。在步骤S2003中,判断可复写式非易失性存储器模块的第一存储区的总可用大小是否小于第一写入指令所指示需要写入至可复写式非易失性存储器模块的数据的数据大小。若可复写式非易失性存储器模块的第一存储区的总可用大小不是小于第一写入指令所指示需要写入至可复写式非易失性存储器模块的数据的数据大小,在步骤S2004中,根据第一写入指令发送第一跳跃写入指令序列,其中,第一跳跃写入指令序列指示执行第一跳跃编程程序。若可复写式非易失性存储器模块的第一存储区的总可用大小是小于第一写入指令所指示需要写入至可复写式非易失性存储器模块的数据的数据大小,在步骤S2005中,根据第一写入指令发送正常写入指令序列,其中,正常写入指令序列指示执行正常编程程序。
[0189]图21是根据本发明的一实施例所示出的编程方法的流程图。
[0190]请参照图21,在步骤S2101中,接收第一写入指令。在步骤S2102中,根据第一写入指令从多个物理删除单元中选择第一物理删除单元。在步骤S2103中,判断可复写式非易失性存储器模块的目前状态是否符合第一条件。若可复写式非易失性存储器模块的目前状态符合第一条件,在步骤S2104中,根据第一写入指令发送第一跳跃写入指令序列,其中,第一跳跃写入指令序列指示执行第一跳跃编程程序。若可复写式非易失性存储器模块的目前状态不符合第一条件,在步骤S2105中,根据第一写入指令发送正常写入指令序列,其中,正常写入指令序列指示执行正常编程程序。在步骤S2106中,接收第二写入指令。在步骤S2107中,根据第二写入指令选择第三物理删除单元。此第三物理删除单元可以是与第一物理删除单元相同的物理删除单元也可以是与第一物理删除单元不相同的物理删除单元。在步骤S2108中,判断可复写式非易失性存储器模块的目前状态是否符合第一条件。若在步骤S2108中判定可复写式非易失性存储器模块的目前状态符合第一条件,则在步骤S2109中,判断对于第三物理删除单元的第一跳跃写入指令序列是使用第一跳跃规则或第二跳跃规则。若对于第三物理删除单元的第一跳跃写入指令序列是使用第一跳跃规则,则在步骤S2110中,发送第二跳跃写入指令序列,其中第二跳跃写入指令序列指示根据第二跳跃规则执行第二跳跃编程程序。若对于第三物理删除单元的第一跳跃写入指令序列是使用第二跳跃规则,则在步骤S2111中,发送第二跳跃写入指令序列,其中第二跳跃写入指令序列指示根据第一跳跃规则执行第二跳跃编程程序。若在步骤S2108中判定可复写式非易失性存储器模块的目前状态不符合第一条件,则在步骤S2112中,根据第二写入指令发送正常写入指令序列,其中,正常写入指令序列指示执行正常编程程序。
[0191]然而,图16至与图21中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图16至与图21中各步骤可以制作为多个程序代码或是电路,本发明不加以限制。此外,图16至与图21的方法可以搭配以上实施例使用,也可以单独使用,本发明不加以限制。
[0192]综上所述,本发明一实施例提出的跳跃写入指令序列是用以指示执行跳跃编程程序。在跳跃编程程序中,相邻的字符线不会被用来存储数据。由此,可减少因编程相邻的字符线所产生的错误。
[0193]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种编程方法,其特征在于,用于一可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1