非挥发性存储器的损耗平衡方法

文档序号:6448065阅读:191来源:国知局
专利名称:非挥发性存储器的损耗平衡方法
技术领域
本发明有关于损耗平衡方法,尤其有关于一种非挥发性存储器的每一储存块,其被擦除次数可平均化,以延长该非挥发性存储器的使用寿命的方法。
背景技术
嵌入式系统正广泛应于各个领域(如手机、电脑…等),其存储模组一般包括有一随机存取存储器(RAM)、只读存储器(ROM)和快闪存储器(FLASH)所组成。其中该随机存取存储器一般用于系统即时数据的存取,如系统处理完数据后将数据进行堆叠储存的媒介…等;该只读存储器则是用于存放系统数据,如字型、指令…等;而该快闪存储器可被分割为若干储存块,该储存块一般用于储存数据,其内所储存的数据,可在其中一个或多个储存块中进行修改,且该储存块修改其内所储存的数据时,需先擦除该储存块中数据,再重新写入该储存块中。此外,该快闪存储器倘若其中一个储存块损坏或不能使用,即令该快闪存储器损坏或无法继续使用。再者,该快闪存储器具有有限的擦除寿命(约100,000次擦除),若其中一个储存块达到该擦除寿命后,该快闪存储器立即就不能再使用。
而一般该快闪存储器所储存的数据被修改时,通常先将该储存块内数据全部读出,并合并新数据后,再擦除该储存块回写,由此可见,该快闪存储器内每一个储存块被读取或修改的次数,并不一致,故,延长该快闪存储器的使用寿命的最佳方法在于尽量使每个储存块的擦写次数相同,而对于延长该快闪存储器的使用寿命的方法,目前大致有两种做法1.记录日志结构化其优点是既能延长快闪存储器使用寿命,又能提供崩溃/断电的安全保护,而缺点是读取该储存块的记录时,需要透过一附加程序(如同微软的视窗软体的磁碟重组程序从一长列节点中,逐一恢复数据,且该记录越多,速度越慢。
2.采用损耗平衡方法当嵌入式系统工作时,该控制系统将藉由该损耗平衡方法对该快闪存储器读、写及修改数据,当该储存块的数据被修改时,先将储存块内数据全部读出,并与新数据合并后,选择读写次数较少,且是空白的储存块写入,并擦除原储存块内的数据,其优点是读写速度快,且不会产生碎片,但是不支持崩溃/断电的安全保护。

发明内容
有鉴于延长该快闪存储器的使用寿命的方法的缺点,发明人经过长久努力研究与实验,终于开发设计出本发明的一种非挥发性存储器的损耗平衡方法,是将一非挥发性存储器未被写入数据的储存块的块号,以队列结构进行排序,当该非挥发性存储器任一储存块被擦除数据时,该被擦除数据的储存块的块号,将被加入该队列尾部,而一数据欲写入该非挥发性存储器内时,将从该队列头部取得一储存块的块号,并将该数据写入对应该块号的储存块中,同时将该块号从该队列中清除。
为便于对本发明的目的、形状、构造装置特征及其功效,做更进一步的认识与了解,兹举实施例配合附图,详细说明如下


图1是嵌入式系统的架构示意图;图2是非挥发性存储器修改数据后,进行数据储存的流程图。
具体实施例方式
本发明是一种非挥发性存储器的损耗平衡方法,请参阅图1所示,该方法可运用在一嵌入式系统1中,该系统主要由一非挥发性存储器10(如快闪存储器)、一驱动程序12、一控制程序14、一随机存取存储器16及一运算器18(如中央处理单元)所组成,其中该非挥发性存储器10用以储存数据,该驱动程序12控制该非挥发性存储器10的读写,该控制程序14可对该非挥发性存储器10的块号,进行队列结构排序、将块号加入该队列或将块号由该队列中清除,即本发明的损耗平衡处理,而该随机存取存储器16乃存放该非挥发性存储器10的逻辑映射、该驱动程序12及该控制程序14代码,该运算器18可对该系统内所有元件进行操控处理。
在本发明中,该非挥发性存储器10可被分割设成多个储存块,这些储存块分别被授与一个唯一的块号,当该嵌入式系统1初始化时,该控制程序14将未写入数据的储存块的块号,以队列结构进行排序,而每当该驱动程序12对该非挥发性存储器10其中一个储存块,进行擦除数据处理时,将该被擦除数据的储存块的块号,将加入该队列尾部;当该驱动程序12对其中一个储存块内的数据,进行修改处理后,而欲写回该非挥发性存储器10内,或有新数据欲写入该非挥发性存储器10内时,该控制程序14将从该队列头部取得一储存块的块号,再将该新数据或被修改的数据,写入对应该块号的储存块中,同时将该块号从该队列中清除,如图2所示。
在本发明中,该队列占用该随机存取存储器16的储存空间为n×该非挥发性存储器10的储存块数;其中n为每一块号所占的字节(byte),且每一块号所占的字节是由该控制程序14而定,在本发明中该块号所占的字节为1≤n<≤4;而该队列将保存在该随机存取存储器16中,且由该控制程序14管理该队列的排序,并控制该驱动程序12的执行,该驱动程序12乃可完成对该非挥发性存储器10的读、写及擦除等操作,而该随机存取存储器16中,可同时存放从该储存块中读取、修改或要写入该储存块的数据。
藉由以上所述可知,其算法简便、结构简单,且该嵌入式系统1的额外负担小,执行速度快,不会产生碎片。而且对原先的文件系统具有较好的相容性,该嵌入式系统1中被修改的部份少。另,就传统嵌入式系统的操作过程为读取储存块内的数据→合并(或修改)数据→擦除被读取的储存块→写入合并(或修改)数据在储存块中。而本发明操作过程(如图2所示)与传统操作过程雷同,二者不同处,是在于本发明所擦除的储存块与写入新数据的储存块不同,且该队列运算皆在具有较快处理速度的该随机存取存储器16中完成,再者,本发明该随机存取存储器16的储存容量,仅被该队列占用极小的容量,而小容量的数据的数据运算,将不会增加该处理器18太多的运算负担,使其有别于传统的损耗平衡方法。
本发明的效率与修改或新增数据的规律有关,如任意一个储存块的数据在被再次修改之前,其他数据都被修改过一次,则每个储存块都有机会进入该队列中,故,各储存块被擦除次数的增长是同步的,均衡的,此时,该非挥发性存储器10被使用效率达到最高;倘若局部的储存块一直没有被读取或修改,则该局部的储存块无法进入该队列中,此时,各储存块的擦除次数的增长是不平衡的,只有在该队列中的储存块和被读取数据的储存块的擦除次数在增长,将使得本发明的效率达到最低,故,本发明的总体效率介于两者之间,端视该嵌入式系统2的使用者的使用状态而定。
为能了解采用损耗平衡与不采用损耗平衡的不同,且清楚采用损耗平衡的优点,乃进行说明如下当任意一储存块数据在被再次修改之前,其他储存块的数据都被修改过一次,则无论采用或不采用损耗平衡的嵌入式系统的效率,都达到二者最高的效率,先就不采用损耗平衡的嵌入式系统而言,其非挥发性存储器可写次数为Tmax×N;Tmax系每储存块非挥发性存储器可擦写次数;N系该非挥发性存储器已有数据的储存块的数量;而采用损耗平衡系统的嵌入式系统1而言,其非挥发性存储器10可写次数为Tmax×N+M;Tmax是每储存块非挥发性存储器10可擦写次数;N是该非挥发性存储器10已有数据的储存块的数量;M是该非挥发性存储器10未写入数据的储存块的数量;因此二者效率的比为(N+M)/N,由此可知,采用损耗平衡系统的嵌入式系统1效率较好,倘若采用损耗平衡系统的嵌入式系统1的非挥发性存储器10,被写满数据,即M为零,此时,无论采用或不采用损耗平衡的嵌入式系统的效率相同。
另,当该非挥发性存储器10同一个储存块的数据反复被修改,直至该储存块无法被擦除时,即该非挥发性存储器10损坏,则二者效率都将至最低。以不采用损耗平衡的传统嵌入式系统而言,其非挥发性存储器可写次数为Tmax(Tmax是每储存块非挥发性存储器可擦写次数。而采用损耗平衡的嵌入式系统1而言,其非挥发性存储器10可写次数为Tmax×(M+1);M是该非挥发性存储器10未写入数据的储存块的数量;因此效率的比为(M+1),由此可知,采用损耗平衡系统的嵌入式系统1效率较好,但当采用损耗平衡的嵌入式系统,若该非挥发性存储器10写满数据,即M为零,此时,无论采用或不采用损耗平衡的嵌入式系统的效率相同。
以上所述,仅为本发明最佳的一具体实施例,本发明的构造特征并不局限于此,任何熟悉本技术领域者在本发明领域内,可轻易思及的变化或修饰,皆可涵盖在以下本案的专利范围。
权利要求
1.一种非挥发性存储器的损耗平衡方法,该方法是将一非挥发性存储器未写入数据的一储存块的块号,以队列结构进行排序,该非挥发性存储器其中一个储存块被擦除数据时,该被擦除数据的储存块的块号,将加入该队列尾部,而一数据欲写入该非挥发性存储器内时,将从该队列头部取得一储存块的块号,再将该数据写入对应该块号的储存块中,同时将该块号从该队列中清除。
2.如权利要求1所述的方法,其特征在于,该非挥发性存储器可被设在一嵌入式系统中,该系统还包括一驱动程序、一控制程序、一随机存取存储器及一运算器所组成,其中该非挥发性存储器可储存数据,该驱动程序控制该非挥发性存储器的读、写及擦除处理,该控制程序可对该非挥发性存储器的块号,进行队列结构排序、将块号加入该队列或将块号由该队列中清除,而该随机存取存储器乃存放该非挥发性存储器的逻辑映射、该驱动程序及该控制程序代码,该运算器可对该系统内所有元件进行操控处理,该嵌入式系统初始化时,该控制程序将未写入数据的储存块的块号,以队列结构进行排序。
3.如权利要求2所述的方法,其特征在于,当该驱动程序对任一储存块进行数据擦除处理时,该被擦除数据的储存块的块号,将被加入该队列尾部。
4.如权利要求2所述的方法,其特征在于,当该驱动程序对任一储存块内的数据进行修改完毕后,而欲写回该非挥发性存储器内,该控制程序将从该队列头部取得一储存块的块号,再将该被修改的数据,写入对应该块号的储存块中,同时将该块号从该队列中清除。
5.如权利要求2所述的方法,其特征在于,当该驱动程序欲将新数据写入该非挥发性存储器内时,该控制程序将从该队列头部取得一储存块的块号,再将该新数据写入对应该块号的储存块中,同时将该块号从该队列中清除。
6.如权利要求2所述的方法,其特征在于,该队列将保存在该随机存取存储器中,且由该控制程序管理该队列的排序,并控制该驱动程序的执行,该驱动程序乃可完成对该非挥发性存储器的读、写及擦除等操作,而该随机存取存储器中,可同时存放从该储存块中读取、修改或要写入该储存块的数据。
全文摘要
本发明提供一种非挥发性存储器的损耗平衡方法,该方法可运用在一嵌入式系统中,该嵌入式系统初始化时,其所设的控制程序,可将其该嵌入式系统的非挥发性存储器中,未写入数据的储存块的块号,以队列结构进行排序,且每当一储存块被擦除数据时,将该被擦除数据的储存块的块号,将加入该队列尾部,而该储存块内的数据被修改完毕后,欲写回该非挥发性存储器内,或有新数据欲写入该非挥发性存储器内时,该控制程序将从该队列头部取得一储存块的块号,再将该新数据或被修改的数据,写入对应该块号的储存块中,同时将该块号从该队列中清除。
文档编号G06F9/38GK1536489SQ03116319
公开日2004年10月13日 申请日期2003年4月11日 优先权日2003年4月11日
发明者何代水, 蔡世光, 韩巍 申请人:英华达(上海)电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1