回收废弃区块中自由页的闪存转换层的管理方法

文档序号:6467404阅读:140来源:国知局

专利名称::回收废弃区块中自由页的闪存转换层的管理方法
技术领域
:本发明涉及一种闪存转换层的管理方法,尤其涉及一种闪存转换层利用混合式对应(hybrid-mappingscheme)的管理方法。
背景技术
:一般来说,利用存储装置的写入特性来做区分,存储装置可分为同位置更新(inplaceupdate)以及异位置更新(outplaceupdate)的存储装置。所谓同位置更新的存储装置可在存储装置的相同实体地址(physicaladdress)进行数据更新,例如硬式磁盘机(harddiskdrive)、随机存取存储器(mndomaccessmemory,RAM)。而所谓异位置更新的存储装置不可在存储装置的相同实体地址进行数据更新,例如闪存(flashmemory)。为了要让异位置更新的存储装置能够模拟(emulate)同位置更新的存储装置,异位置更新的存储装置中必须要有一个转换层(tmnsitionlayer)用来管理数据的存放位置以及管理主机传递过来的写入/读取数据,并且在数据更新时不会造成更新数据的遗失。以闪存为例,闪存中必须利用一快闪转换层(flashtranslationlayer,以下简称FTL)以及一对应表(mappingtable)来在背后(background)进行写入之前抹除(erase-before-write)的动作,使得主机端(host)可以更新数据。也就是,当主机(host)对第一逻辑地址(logicaladdress)进行数据更新时,FTL必须另外寻找一个空的实体地址来存储更新的数据,并且在对应表中将此实体地址对应至该第一逻辑地址,而原先对应至该第一逻辑地址的旧的实体地址内的数据则予以抹除。以下详细的介绍闪存的存储架构。基本上,闪存的存储空间是由许多的区块(block)所组成,而每个区块又可以被区分为多个页(page),例如每个区块有32页或64页,而每页为512(也就是2,字节(byte)。当然,根据闪存的规格,每页并不一定会被限定是512字节。因此,FTL即是利用对应表(mappingtable)来管理闪存中的所有区块以及所有页。再者,根据闪存的特性,每次的写入动作是以一页(page)为单位,而抹除是以一区块(block)为单位。再者,由于闪存的寿命和抹除的次数息息相关,多层单元(multi-levelcell,简称MLC)型闪存约可抹除一万次、而单层单元(singlelevelcell,简称SLC)型闪存约可抹除十万次。再者,闪存执行一次抹除动作约需耗费2ms,而执行一次写入动作约需耗费200us。因此,基于产品寿命和效能的考量,除了管理闪存的存储空间之外,FTL也必须有效率地管理抹除与写入的次数。一般来说,FTL最简单的管理方式即是利用页对应(pagelevelmappingscheme)的管理方法。页对应的管理方法即是以一页为最小管理单位,每一个逻辑页码(logicpagenumber,以下简称LPN)皆可对应至一个实体页码(physicalpagenumber,以下简称PPN)。利用页对应的管理方法可以有效率的管理每一个LPN以及PPN之间的关系。但是,利用页对应的管理方法需要一个大空间(space)的对应表。一般来说,对应表中每记录一个最小管理单位需要4字节(byte)的空间。以IG字节的闪存为例,1G(也就是2,字节的闪存中,假设每一页为512字节,则此闪存中有221页(23°/29),因此对应表的空间必须为8M(4bytes+2")字节。如此大空间(space)的对应表,对于闪存在嵌入式系统的应用来说,是非常不实际的。为了要降低对应表的空间,另一种FTL的管理方式即是利用区块对应(blocklevelmappingscheme)的管理方法。区块对应的管理方法即是以一区块为最小管理单位。也就是说,一个逻辑区块码(logicblocknumber,以下简称LBN)对应至一个实体区块码(physicalblocknumber,以下简称PBN)。以1区块有32页的1G字节的闪存为例,1G(也就是2,字节的闪存中有2"区块[23G/(29*25)],因此对应表的空间仅为256K(4bytes*216)字节。如此可以节省对应表的空间。为了简化说明,假设一闪存中有8个实体区块(也就是PBNO至PBN7)每个区块都是自由区块(freeblock)。再者,每个区块有4页,而所有的页都是自由页(freepage)。其中,所谓的自由区块与自由页即为没有任何数据的区块与页。假设主机发出写入指令(writecommand)由LPN7开始连续写入7页的数据(LPN7至LPN13)。图IA至图IF则示出利用区块对应管理方法的闪存。首先,主机送出LPN7数据。由于每个区块有4页,FTL将7(LPN7)除以4得到除数为1而余数为3,所以FTL得知主机发出LPN7的数据必须写入LBN1并且位移(offset)为3。因此,如图1A所示,FTL在对应表中将LBN1对应至PBN3,LBN2对应至PBN6,LBN3对应至PBN4。而LPN7的数据就写入PBN3位移3的位置。接着,主机会传输LPN8的数据。同理,FTL将8(LPN8)除以4得到除数为2而余数为0,所以FTL得知主机发出LPN8的数据必须写入LBN2并且位移O。因此,如图1B所示,LPN8的数据就写入PBN6位移0的位置。同理,由于接下来主机会依序送出LPN9、LPNIO、LPNll、LPN12、与LPN13的数据,因此相同的动作FTL必须再连续执行五次并将此五页的数据写入闪存。如图1C所示,即为完成写入动作后闪存的存储数据示意图。假设主机再次发出写入指令,1页的更新LPN13'数据。因此,FTL得知更新LPN13'数据必须写入PBN4位移1的位置。由于该位置已经有旧的LPN13数据,因此发生页碰撞(pagecollision)。此时,PBN4中旧的LPN13数据会变成无效页(deadpage)并以括号表示,而LPN12数据维持为有效页(livepage)。而当页碰撞发生时,FTL必须在背后进行写入之前抹除(erase-before-write)的动作。如图1D所示,FTL必须先将LBN3对应至尚未使用的PBN,例如PBNO,而原PBN4即成为废弃区块(obsoleteblock,以下简称OB)。接着,如图1E所示,将OB(PBN4)中的有效页LPN12以及接收的更新LPN13,合并(merge)至PBN0,因此,PBN0位移0的位置即写入LPN12数据,位移1的位置即写入更新LPN13'数据。最后,如图1F所示将OB(PBN4)中的整个区块抹除成为自由区块。在使用区块对应管理方法,每当页碰撞发生时,FTL必须将OB中的有效页与更新页合并,并且写入新的区块,之后抹除此OB。很明显地,假设主机连续发出N次写入命令更新LPN13数据,就会发生N次页碰撞,而闪存就会进行抹除N次OB的动作。再者,由图1D可知,即OB(PBN4)中实际上还有两个自由页尚未使用,即位移2和位移3的位置。而自由页尚未使用即被抹除会使得闪存的效率大打折扣。因此,发生页碰撞就必须抹除一个OB是使用区块对应管理方法的一缺点。为了要改善区块对应管理方法的缺点,以色列M-system公司的美国专利US5937425提出一种取代区块(replacementblockscheme)的管理方法。如图2A,假设主机发出写入指令由LPN7开始连续写入7页的数据(LPN7至LPN13)并且写入完成。如图2B,当主机再次发出写入指令,1页的更新LPN13,数据。FTL得知更新LPN13,数据会发生页碰撞,因此,PBN4中旧的LPN13数据会变成无效页(deadpage)而LPN12数据维持为有效页(livepage)。再者,FTL会产生一取代区块,也就是RBN3(replacementblocknumber3)对应至一自由区块,例如PBN7。接着,如图2C,以先进先出的方式(fistinfirstout,FIFO)放置更新LPN13'数据。如图2D,当主机再次发出写入命令,一页的更新LPN13"数据。PBN7中的LPN13'数据会变为无效页,而更新LPN13"数据依序置于PBN7的次页。如图2E,当主机连续发出二次写入命令,更新LPN13"'数据以及更新LPN13""数据。最后,PBN7中的LPN13"数据与LPN13'"数据会变为无效页,而更新LPN13""数据置于PBN7的最后页。如图2F,当主机再次发出写入命令,更新LPN13A数据时,LPN13""数据改变为无效页。再者,由于PBN7已满,因此FTL先将LBN3对应至一自由区块,例如PBN0,而原PBN4以及PBN7皆改为OB。如图2G,将OB(PBN4)中的有效页LPN12以及接收的更新LPN13八合并(merge)并写入PBNO。最后,如图2H,将两个OB(PBN4与PBN7)抹除。由以上的描述可知,利用取代区块来存储更新页的管理方法可有效地降低闪存的抹除次数。然而,由于每个LBN会伴随着一个RBN。因此,当闪存处存容量尚未超过一半时,该发明可以很有效率地管理闪存;但是,当闪存存储容量超过一半时,FTL有可能不断地在抹除区块并找寻新的自由区块用以对应至LBN以及RBN,如此,反而大幅地降低闪存的效率。美国计算机协会嵌入式计算系统汇刊(ACMTransactionsonEmbeddedComputingSystems)在2007年刊登了一篇论文《使用全相联扇区转化的日志型基于缓冲器的快闪转换层ALogBuffer-BasedFlashTranslationLayerUsingFully-AssociativeSectorTranslation》,其中提出一种名为FAST的混合式对应(hybrid-mappingscheme)的管理方法。混合式对应的管理方法是结合页对应(pagelevelmappingscheme)以及区块对应(blocklevelmappingscheme)的管理方法。以下说明即介绍混合式对应的管理方法。如图3A所示,将闪存区分为一冷区(coldarea)以及一热区(hotarea),其中,冷区中进行区块对应的管理方法,而热区中进行页对应的管理方法并作为放置更新页的用途。为了简化说明,闪存中有8个实体区块(也就是PBN0至PBN7)每个区块都是自由区块(freeblock)。再者,每个区块有4页,而所有的页都是自由页(freepage)。而由对应表得知冷区包括PBNO至PBN5(实线区块)而热区包括PBN6与PBN7(虚线区块);而LBN1对应至PBN3,LBN2对应至PBN4。当主机发出写入指令由LPN7开始连续写入4页的数据(LPN7至LPNIO)。由于每个区块有4页,FTL将7(LPN7)除以4得到除数为1而余数为3,所以FTL得知主机发出LPN7的数据必须写入LBN1并且位移(offset)为3。因此,如图3B所示,LPN7的数据就写入PBN3位移3的位置。同理,主机会依序送出LPN8、LPN9与LPN10数据,因此相同的动作FTL必须再连续执行3次并将3页的数据完全写入闪存。如图3C所示,即为完成写入动作后闪存的存储数据示意图。如图3D,当主机发出写入指令,1页的更新LPN9'数据,FTL得知更新LPN9,数据会发生页碰撞,因此FTL将PBN4中旧的LPN9数据变成无效页(deadpage),并且将更新LPN9'数据写入热区。由于热区是属于完全连结段转换(fullyassociativesectortranslation,简称FAST),因此,FTL可将更新LPN9'数据写入热区中的任一页,例如PBN6位移1位置。如图3E,当主机连续发出三写入命令,依序为更新LPN9"数据、更新LPN9"'数据、与更新LPN9""数据,FTL得知更新LPN9"数据、更新LPN9'"数据、与更新LPN9""数据皆会发生页碰撞,因此FTL依序将LPN9"数据、更新LPN9"'数据、与更新LPN9""数据任意地放置于热区。而最后仅剩下更新LPN9""数据为有效页,其他则为无效页。如图3F,当主机发出一写入命令,更新LPN10,数据,FTL得知更新LPN10,数据会发生页碰撞,因此FTL将LPN10,数据任意地放置于热区。而更新LPN10'数据为有效页,原LPN10为无效页。如图3G,当主机连续发出三写入命令,依序更新LPN7,数据、更新LPN7"数据、与更新LPN7"'数据,FTL得知更新LPN7'数据、更新LPN7"数据与更新LPN7,"数据皆会发生页碰撞,因此FTL依序将LPN7,数据、更新LPN7"数据、与更新LPN7"'数据任意地放置于热区。而最后仅剩下更新LPN7,"数据为有效页,其他则为无效页。再者,当主机再次发出写入指令,更新LPN10"数据时,FTL会得知发生页碰撞。由于热区已满(full)无法再放置,FTL必须选取及抹除热区中一个区块。由于FAST采取的是循环式(round-robin)选取方式。因此,FTL会循环地选择热区中的PBN6与PBN7来进行抹除,例如先抹除PBN6,而下一次热区再次满时,再选择抹除PBN7。举例来说,当FTL抹除PBN6时,由于PBN6中还有一有效页(LPN7"),因此,此有效页在被抹除之前必须先与LBN1中的数据合并。如图3H所示,LPN1会对应至一自由区块,例如PBNO,而原PBN3会设定成为OB。接着,如图31所示,将热区PBN6中的有效页(LPN7")与OB中的数据合并后写入PBN0位移3的位置。并将OB(PBN3)以及PBN6两个区块抹除。接着,如图3J所示,热区中的PBN6还有自由页,因此更新的LPN10"即可写入热区中,例如PBN6位移1的位置。由图3A至图3J即为上述论文所提出的混合式对应的管理方法。然而,上述的混合式对应的管理方法还有多处流程可再改进并且提高闪存的效率。
发明内容本发明的目的是提出一种回收废弃区块中自由页的闪存转换层的管理方法,此管理方法可运用于以混合式对应(hybrid-mappingscheme)来管理闪存并达成更有效率地管理闪存。因此,本发明提出一种回收废弃区块中自由页的闪存转换层的管理方法,运用于以混合式对应管理之一闪存,该方法包括下列步骤当该闪存的一热区已满且在冷区发生一页碰撞时,由该热区中决定抹除一第一区块;根据该第一区块的内容,决定该闪存的一冷区中至少一第二区块可设定为一废弃区块;比较该第二区块中多个自由页的数目与该热区内一第三区块中多个有效页的数目;当所述多个自由页的数目大于所述多个有效页的数目时,执行该第二区块与该第三区块的一切换动作;以及,至少抹除该第一区块与该第三区块。再者,本发明提出一种回收废弃区块中自由页的闪存转换层的管理方法,运用于一闪存的一混合式对应的管理方法,该方法包括下列步骤当该闪存的一热区已满且在一冷区发生一页碰撞时,由该热区中决定抹除一第一区块;根据该第一区块的一页密度,决定该闪存被抹除N个区块;根据该第一区块的内容,设定该闪存的一冷区中的(N-1)个废弃区块;以及,当(N-1)个废弃区块中有P个废弃区块被判断可不被抹除时,则在该热区中寻找P个区块来抹除。由上述可知,运用本发明的方法可以延缓下次热区再次满(full)的时间,所以更可以提高闪存的效率。相较于公知的快闪转换层(FTL)会将所有的废弃区块(OB)抹除,本发明会判断OB的内容,如果OB的内容还有利用价值,则FTL会继续利用此OB,而不会将OB抹除。图1A至图1F为公知利用区块对应的闪存转换层管理方法。图2A至图2H为公知利用取代区块的闪存转换层管理方法。图3A至图3J为公知混合式对应的闪存转换层管理方法。图4A至图4F为本发明混合式对应的闪存转换层管理方法的实施例。图5所示出为本发明回收废弃区块中自由页的闪存转换层的管理方法流程图。具体实施例方式根据混合式对应的管理方法,当热区已满且主机发出的写入指令在冷区发生页碰撞时,FTL必须选择热区中的一个特定区块来抹除,使得热区中还有自由页可供运用。也就是说,此时热区中所有的区块都是热满区块(fullhotblock),FTL必须在热区中选择一特定区块来抹除。而FTL选择的方式可为循环式(round-robin)选取方式,或者根据热区中所有区块的页密度(pagedensity)来决定此一特定区块。当FTL是根据所有区块的页密度来决定此特定区块时,FTL会选择页密度较低的区块来抹除。所谓页密度的定义为一个区块中的有效页分属于冷区中不同区块的数目。举例来说,在图4A(同图3G)的状况时,热区已满(full)无法再放置,而热区中的PBN6中有一有效页(LPN7'")对应至冷区的PBN3,因此,PBN6的页密度为1。同理,热区中的PBN7中有两个有效页(LPN9""与LPN10')对应至冷区的PBN4,因此,PBN7的页密度为1。再者,当热区中的特定区块决定之后,FTL即可根据此特定区块的页密度得知此闪存需要被抹除的区块数目(erasecoimt)。其关系为抹除的区块数目等于页密度加l(erasecount=pagedensity+l)。也就是说,根据公知FAST的混合式对应管理方法,当FTL决定要抹除区块的数目为N,则冷区必定将会有(N-l)个区块被设定为废弃区块(OB)并被抹除。然而根据本发明的实施例,本发明必须再次判断每个OB是否可以不被抹除,当(N-1)个OB中有P个OB被判断可以不被抹除时,则FTL会在热区中寻找P个区块来抹除。接下来将以图4A至图4M来介绍本发明的实施例。在图4A(同图3G)的状况时,当主机再次发出写入指令,更新LPN10"数据时,FTL会得知发生页碰撞。由于热区己满(full)无法再放置,FTL必须抹除热区中一第一区块,使该第一区块成为自由区块。假设FTL第一区块是根据所有热区中所有区块的页密度来产生时,FTL必须计算热区中每个区块的页密度(pagedensity),并且抹除页密度较低的区块。由于PBN6中有一页有效页属于冷区的PBN3,因此页密度为l;PBN7中有2有效页皆属于冷区的PBN4,因此页密度为1。因此,FTL可选择热区中的PBN6与PBN7其中之一来进行抹除,例如抹除的该第一区块为PBN6。再者,由于抹除的次数(erasecoimt)与页密度的关系为抹除次数等于页密度加l,因此,FTL会执行2个区块的抹除(N二2)。由于即将抹除热区中的该第一区块(PBN6),所以该第一区块(PNB6)中的有效页(LPN7"')所对应的第二区块(即PBN3)会被设定为OB,而LPN1则对应至另一自由区块,例如PBN0,如图4B所示。再者,FTL将热区中该第一区块(PNB6)中的有效页(LPN7,")复制到PBN0位移3的位置,如图4C所示。再者,本发明需进一步判断此第二区块(OB,PBN3)是否可以不被抹除。很明显地,此第二区块(OB,PBN3)中还有3个自由页,如果将此第二区块(OB,PBN3)抹除,则会降低闪存的空间使用效率(spaceutilization)。根据本发明的实施例,当热区中的一第三区块(即PBN7)中的有效页小于等于第二区块(OB,PBN3)的自由页时,此第二区块(OB,PBN3)不被抹除,而抹除热区的第三区块(PBN7)。当FTL决定不抹除第二区块(OB,PBN3)而抹除第三区块(PBN7)时,第二区块(OB,PBN3)与抹除第三区块(PBN7)要执行一切换动作(swapoperation)。也就是将第三区块(PBN7)中的有效页,LPN9",与LPN10,复制到第二区块(OB,PBN3)。并且,将位于冷区的第二区块(OB,PBN3)设定为热区;而将热区的第三区块(PBN7)设定为冷区,如图4D所示。当切换动作完成后,原热区中第一区块(PBN6)的有效页可复制到热区的第二区块(PBN3)。之后,即可以抹除两个区块,也就是第一区块(PBN6)与第三区块(PBN7)成为自由区块,如图4E所示。最后,将更新LPN10"写入热区,而原LPN10'数据设定为无效页,并完成写入动作,如图4F所示。由图4A至图4F的描述可知,相较于本发明的实施例与公知的做法。当执行完相同的写入命令之后,同样都会抹除两个区块,但是本发明闪存热区内所剩的自由页会比公知闪存热区内的自由页还多。请参照图5,其所示出为本发明回收废弃区块中自由页的闪存转换层的管理方法流程图。此方法是运用于以混合式对应管理的闪存。首先,当该闪存的热区已满且在冷区发生页碰撞(如步骤S10所示)发生时,可选择抹除热区中的第一区块,如步骤S12所示。接着,由第一区块的内容,决定冷区中至少有一第二区块可被设定为一废弃区块,如步骤S14所示。此时,可在热区中选择一第三区块,如步骤S16所示。接着,比较第二区块中自由页的数目与第三区块中有效页的数目,如步骤S18所示。当第二区块中自由页的数目大于第三区块中有效页的数目时,执行第二区块与第三区块的一切换动作,如步骤S20所示。之后,抹除第一区块与第三区块,如步骤S22所示。反之,当第二区块中自由页的数目不大于第三区块中有效页的数目时,抹除第一区块与第二区块,如步骤S24所示。由上述可知,运用本发明可以延缓下次热区再次满(full)的时间,所以更可以提高闪存的效率。相较于公知FTL会将所有的OB抹除,本发明会判断OB的内容,如果OB的内容还有利用价值,贝IJFTL会继续利用此OB,而不会将OB抹除。综上所述,虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可作各种更动与润饰,因此本发明的保护范围当视随附的权利要求所界定的范围为准。权利要求1.一种回收废弃区块中自由页的闪存转换层的管理方法,运用于以一混合式对应管理的一闪存,该方法包括下列步骤当该闪存的一热区已满且在一冷区发生一页碰撞时,由该热区中决定抹除一第一区块;根据该第一区块的内容,决定该闪存的该冷区中至少一第二区块可设定为一废弃区块;比较该第二区块中多个自由页的数目与该热区内一第三区块中多个有效页的数目;当所述多个自由页的数目大于所述多个有效页的数目时,执行该第二区块与该第三区块的一切换动作;以及抹除该第一区块与该第三区块。2.如权利要求1所述的闪存转换层的管理方法,其中该第一区块是利用一循环式选取方式所决定。3.如权利要求1所述的闪存转换层的管理方法,其中该第一区块具有最小的一页密度。4.如权利要求1所述的闪存转换层的管理方法,其中该第一区块中具有一有效页可对应至该第二区块。5.如权利要求1所述的闪存转换层的管理方法,其中该冷区是执行一区块对应的管理方法,而该热区是执行一页对应的管理方法。6.—种回收废弃区块中自由页的闪存转换层的管理方法,运用于以一混合式对应管理的一闪存,该方法包括下列步骤当该闪存的一热区已满且在一冷区发生一页碰撞时,由该热区中决定抹除一第一区块;根据该第一区块的一页密度,决定在该闪存中抹除N个区块;根据该第一区块的内容,设定该闪存的该冷区中的(N-1)个废弃区块;以及当(N-1)个废弃区块中有P个废弃区块被判断可不被抹除时,则在该热区中寻找P个区块来抹除,其中N为大于1的正整数、P为正整数。7.如权利要求6所述的闪存转换层的管理方法,其中该第一区块的该页密度为(N-1)以及该第一区块中至少有(N-1)个有效页可对应至该(N-1)个废弃区块。8.如权利要求6所述的闪存转换层的管理方法,其中该冷区是执行一区块对应的管理方法,而该热区是执行一页对应的管理方法。9.如权利要求6所述的闪存转换层的管理方法,其中该P个废弃区块中至少包含一第二区块,而该热区中至少包含一第三区块,且该第二区块中多个自由页的数目大于该第三区块中多个有效页的数目。10.如权利要求9所述的闪存转换层的管理方法,其中还包括执行该第二区块与该第三区块的一切换动作。全文摘要本发明公开一种回收废弃区块中自由页的闪存转换层的管理方法,运用于以混合式对应管理的闪存,包括下列步骤当该闪存的热区已满且在冷区发生页碰撞时,由该热区中决定抹除第一区块;根据该第一区块的内容,决定该闪存的冷区中至少第二区块可设定为废弃区块;比较该第二区块中多个自由页的数目与该热区内第三区块中多个有效页的数目;当所述多个自由页的数目大于所述多个有效页的数目时,执行该第二区块与该第三区块的切换动作;以及,至少抹除该第一区块与该第三区块。本发明提供的方法能够判断废弃区块(OB)的内容,如果OB的内容还有利用价值,则快闪转换层(FTL)会继续利用此OB,而不会将OB抹除,从而该方法可以提高闪存的效率。文档编号G06F12/02GK101369253SQ20081016941公开日2009年2月18日申请日期2008年10月16日优先权日2008年10月16日发明者乔梦麟,张大纬申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1