内存储存空间管理方法

文档序号:6464050阅读:188来源:国知局

专利名称::内存储存空间管理方法
技术领域
:本发明涉及一种内存储存空间管理方法,特别是利用一常驻程序监控储存空间与文件系统分配使用情形,以适时释放占用而未用的实体记忆区块。
背景技术
:一般计算机相关的应用系统常通过文件系统(filesystem)来存取储存装置,而文件系统的寻址方法通常是以容量为512字节(Byte)的扇区(Sector)为单位的逻辑区块地址(LogicalBlockAddress,LBA)为主。储存装置实际记录数据时,则须以能够明确界定数据存放位置的实体地址进行寻址,例如装置(device)、记忆区块、记忆页等地址。在应用系统要求读取/写入的逻辑地址与实际存放记录数据的实体地址之间进行转换,就是逻辑/实体地址转换功能,亦即Logical國to-PhysicalAddressTranslation。逻辑/实体区块地址对应关系如图1所示,其中显示有逻辑地址(logicaladdress,11),地址由0至2047999,此例中每个地址对应512字节(byte)的记忆容量;内存更区分有多个区段(segment),此例中有segment0至segment31,而逻辑地址0至63999形成一个区段。图中另显示逻辑区块地址(LBA,12)与实体区块地址(PBA,14),之间以一保存逻辑/实体对应表(L2PMappingTable,13)对应。上例中,每个区段区分有256的逻辑区块地址(12),其中保留6个冗余区块,在合计256个实体区块(physicalblock)中,对应250个逻辑区块(logicalblock),其中保留6个记忆区块作为冗余区块(spareblock,freeblock),以备记录控制数据,例如保存逻辑/实体对应表(13),或是用于取代不良区块(badblock),或于更新数据时用于记录更新数据。原本保存数据的实体区块,于数据更新记录到新的位置,经删除操作后则回复纳入可用的冗余区块。从逻辑寻址空间(LogicalAddress)来看,合计共32个区段(segment031),每个区段内包含250个逻辑区块,每个逻辑区块通过对应表(13)对应到一个实体区块,并可保存128KB的数据;每个逻辑区块中,配合实体区块的记忆页(memorypage)容量,划分为64个连续的记忆页,每个记忆页可容纳2KB,涵盖4个连续扇区(sector),亦即每个4逻辑区块涵盖连续256个扇区的记录空间。从实体寻址空间(PhysicalAddress)来看,每个区段内包含256个实体区块,每个实体记忆区块包含64个记忆页,可保存128KB的数据;并可通过对应表(13)对应到一个逻辑区块。其中未界定对应关系者为可用的冗余区块,或因其特性不良而为不良区块(badblock,图中未显示),或用作启动区块(bootblock)等。在图1所示的公知的逻辑寻址空间与实体地址的转换关系中,逻辑地址(11)中的每一地址代表一个扇区,可存放512字节的使用者数据,直接除以单位区块容量(每一逻辑区块容量128KB相当于256个扇区,也就是128KB的使用者数据),取其整数部分为逻辑区块地址(LogicalBlockAddress,12),取其余数除以单位记忆页容量所代表扇区的数量。举例来说,单位记忆页容量2KB代表连续4个扇区,即可算出逻辑页地址,如逻辑寻址100/256=0,对应的逻辑区块地址(12)为0,对应的记忆页地址为100/4=25第25个记忆页;逻辑寻址256/256=1,对应的逻辑区块地址(12)为1,对应的记忆页地址为0。所以应用系统根据文件系统得知逻辑区块地址(12)后,即需査找上述逻辑/实体地址转换对应表(13)并自表中查知该逻辑区块所对应的实体区块地址(14)。公知为节省存放转换对应表所需空间,一般将对应表(13)划分为多个区段,每个区段由一个对应表(13)进行转换。每一区段由一独立的转换对应表记录一连续的逻辑寻址空间与一连续的实体寻址空间之间的转换关系。例如区段0(Segment0)记录逻辑寻址0-63999,逻辑区块寻址0~249合计250个逻辑区块共32MB的使用者数据存放空间转换至实体逻辑寻址0~255合计256个实体记忆区块之间的转换关系;依此类推至区段31(Segment31)记录逻辑寻址19840002047999,逻辑区块寻址7750-7999合计亦为250个逻辑区块共32MB的使用者数据存放空间转换至实体逻辑寻址7936~8191合计256个实体记忆区块之间的转换关系。由逻辑寻址至实体区块寻址的转换是采固定连续的转换关系,借此通过逻辑区块寻址除以单一区段代表的逻辑区块数量,即可轻易转换得知存放该逻辑区块的区段编号,进而加载与査找该一区段的转换对应表取得该实际存放该逻辑区块使用者数据的实体区块地址(14)。然而,一般应用系统常用的文件系统是针对磁性储存媒体(例如硬盘机)所设计,例如微软操作系统(Windows⑧)常用的FAT16、FAT32、NTFS等,或MacOS常用的HFS、HFS+等,于删除文件时,其均直接在文件配置表(AllocationTable或AllocationBit-Map)中直接清除分配的注记,例如在FAT文件系统下,删除文件操作仅将根目录或子目录中标记该文件的文件名称予以删除,并将该文件原本占用的磁丛集链接结构(ClusterChain)予以归零。而这样的操作对公知储存装置而言,均是针对特定逻辑地址(LogicalAddress)执行更新数据的写入操作,并无法据以得知相关实体地址上所储存的数据己经无效。对闪存而言也一样,且更将导致在进行有效数据的更新操作及进行删除平均化操作时,受到无效数据占用实体记忆区块的影响,产生搬移无效数据的现象,进而影响存取速度以及縮短储存媒体寿命的现象。
发明内容本发明要解决的技术问题在于,为克服公知技术文件系统的运作可能造成无效数据占用实体记忆区块的问题,本发明提出一种内存储存空间管理方法,通过加载操作系统的常驻程序周期性或是依照使用者指示监控储存装置中的储存空间与文件系统的资源分配情形,并于检查到有删除的无效数据的逻辑地址对应到一完整的实体区块时,先读取逻辑/实体对应表对应到实体区块地址,并接着产生数据删除指令给储存装置的控制器,接着控制器执行取消该实体区块与逻辑区块间的连接关系的步骤,并接着删除该实体区块以释放储存的空间。最后再储存完成检査文件系统的位置,或是接着根据上述的程序持续执行文件系统下一个位置的检查,释放无效数据占有储存装置的空间。本发明接着将上述删除数据的流程应用于储存空间的管理,利用上述监控系统内存与文件系统运作的常驻程序,或是利用储存装置控制器直接执行监控,控制器在检查文件系统前需先辨识分割表与其中的文件系统,若符合支持的型态后,即着手检查文件系统,根据分割表、文件系统的形式检査逻辑区块/页是否有未分配使用的实体记忆区块。之后则通过修改L2P对应表去解除逻辑区块地址与实体区块地址间的连结关系,并删除该实体区块,最后再储存此次检査的位置,借以能改善储存装置的存取速度,并延长储存媒体的使用期限。换句话说,本发明提供了一种内存储存空间管理方法,所述的方法包括有监控一储存装置中的储存空间与文件系统的无效数据分配情形;当无效数据的逻辑地址对应到的实体区块的容量为该储存装置的一预设单位容量时;修改该逻辑/实体地址对应表,以取消该实体区块与逻辑地址间的连接关系。本发明可释放无效数据所占的储存空间,减少数据更新及执行删除时搬移实体区块中无效数据的情形,以延长记忆装置的使用期限。图1为公知技术的逻辑与实体区块地址对应关系图;图2为利用常驻程序检査文件系统释放可用实体记忆区块的操作流程;图3为完成检查操作之后的系统程序;图4为逻辑地址内容示意图;图5为无效数据的逻辑地址对应至实体区块示意图;图6为无效数据的逻辑地址区块对应至实体区块示意图;图7为本发明的内存储存空间管理方法中删除数据的流程图;图8为本发明的内存储存空间管理方法流程图。主要元件附图标记说明逻辑地址11L2P对应表13系统区41有效数据51,55无效数据61逻辑区块地址12实体区块地址14数据区43无效数据53实体区块63,具体实施方式在公知文件系统的运作下,删除文件的操作常常仅将目录中标记该文件的文件名称删除,并将该文件原本占用的磁丛集链接结构归零,而非实际删除占用的实体记忆空间,但此方式将会使执行数据更新与写入时无法得知相关实体地址所储存的数据的状态。为避免或改善上述问题,本发明提出一种内存储存空间管理方法,主要是由应用系统执行一常驻程序,能循序检査储存装置提供的储存空间与文件系统分配使用的情形,并于发现未分配使用的空间,且该一连续空间的容量为储存装置分配使用的删除单位容量时,下达专属指令通知储存装置控制器释放原本分配给该逻辑区块的实体记忆区块。上述常驻程序是在应用系统开机后自动加载,随时监控储存空间与文件系统间的资源分配,以适时释放占用而未用的实体记忆区块,而利用此常驻程序检査文件系统释放可用实体记忆区块的操作流程如图2所示。当系统(如计算机系统)启动后(步骤S201),即加载一用于监控系统内存与文件系统运作的常驻程序(步骤S203),能于一般运作中能检査文件系统释放储存装置中可用实体记忆区块,包括检査文件配置表(AllocationTable)、各目录下的文件标记,或各磁丛集链接结构(ClusterChain)的状态。此常驻程序于启动时将检査是否有前次系统的记录,若是第一次启动系统执行常驻程序,则加载默认值来检査文件系统;若非第一次启动系统执行常驻程序,则加载上次完成的位置以继续检查文件系统。接着系统开始侦测系统内建或外挂的储存装置(步骤S205),以确认储存装置上的控制器是否有支持释放实体记忆区块的功能(步骤S207),若不支持即结束操作(步骤S209)。若侦测后有支持该功能,则接着撷取储存装置的参数(步骤S211),包括储存装置的区块大小、区块中记忆页的数目、记忆页的大小、制造商或装置的信息等。然后,由文件系统中下一个位置(因为前一个检查流程已经完成,接着进行下一个位置的检查)开始检查(步骤S213),并根据分割表(partitiontable)、文件系统的形式检査逻辑区块/页是否有未分配使用(free)的实体记忆区块(步骤S215),若是没有任何未分配使用的实体记忆区块,则储存本次检査记录(步骤S219),如检查的位置。而若是存在有未分配使用的实体记忆区块,且有连续空间的容量为储存装置分配使用的删除单位容量时,则下达指令释放其中被无效数据占用的空间(步骤S217),并同样储存本次检査记录(步骤S219)。即完成检查操作完成,此常驻程序接着即依据设定,在一定时间内进行下一次检查是否有未分配使用的实体记忆区块的操作。图3显示在完成前次检查操作之后的系统程序,上述的常驻程序将进行一般的判断规则,包括经过一定时间的延迟或是操作暂停的指令(步骤S301),判断此计算机系统是否关闭?(步骤S303),作将关闭,则结束操作(步骤S309),若不关闭,此常驻程序则接着判断是否继续操作?(步骤S305),若不继续操作,则结束(步骤S309),若继续则进行下一次检查操作(步骤S307)。依据上述流程,本发明所述的内存储存空间管理方法将涉及文件系统中的寻址方法,包括利用其中的逻辑地址(LA)、实体区块地址(PBA)、对应逻辑区块地址(LBA)与实体区块地址的逻辑/实体对应表(L2Pmappingtable),其中,如图4所示的逻辑地址内容示意图。逻辑地址中的每一地址代表一个扇区,除了对应到保留的区域之外的部分,另主要包括有系统区(systemarea)41与数据区(dataarea)43两个扇区的地址,其中系统区中是对应包括分割表、基本输出入系统参数区块(BIOSParameterBlock,BPB)、文件系统(如FAT)等的扇区;而数据区则记录对应储存数据的扇区,数据是可以丛集(cluster,假设为4K的大小)为单位来寻址。本发明利用检査逻辑区块/页判断是否未分配使用的方法需要考虑逻辑地址的数据区上无效数据的大小,及逻辑与实体地址的对应关系。再请参考图5所示的无效数据的逻辑地址对应至实体区块示意图,其中包括实体区块上的有效数据51,55,无效数据53。此例中,根据文件系统的信息发现逻辑地址数据区中的无效数据(53)大小为2个丛集(duster),有8K的大小,其逻辑地址经上述L2P转换表对应至一实体区块地址,即占有4个记忆页(即图中记忆页pagen,pagen+l,pagen+2,pagen+3,每个记忆页2K)的空间,表示实体区块中的4个记忆页为无效数据,但该实体区块中其它记忆页仍为有效数据。另外,以闪存为例,其中删除数据的单位为区块,而逻辑地址上无效数据的大小可能未满储存装置中一个实体区块大小,所以不能将还存有有效数据的实体区块删除。接着,再参阅图6所示的无效数据的逻辑地址区块对应至实体区块示意图,图中显示有三个部分,包括有逻辑区块地址(LBA)、逻辑/实体对应表(L2P)与实体区块地址(PBA),此逻辑/实体对应表即用于对应逻辑区块地址与实体区块地址。图中显示逻辑地址数据区中的无效数据(61,斜线部分)大小有32个丛集,共128K的大小,但此段逻辑区块地址经L2P对应表转换对应至实体区块地址,分配到储存装置中两个实体区块63,65,此例中,两个实体区块63,65中分别包含有有效数据及无效数据(斜线部分),由于删除数据的最小单位为区块(如FAT文件系统中为128K),因此仍不可删除上述同时存有有效数据与无效数据的实体区块。上述方法显示出,若无效数据与有效数据位于同一实体区块(block)中,则仍无法删除数据,所以释放实体区块的空间的条件,必须在检査逻辑地址上无效数据的大小外,还需考虑其对应的实体区块地址。本发明所提供的内存储存空间管理方法中删除数据的流程如图7所示,主要是利用上述常驻程序周期性或是依照使用者指示监控储存装置中的储存空间与文件系统的资源分配情形,包括检査一文件配置表、各目录下的文件标记,或各磁丛集链接结构的状态,以得知该储存装置的储存空间与文件系统的资源分配情形。当有删除的无效数据的逻辑地址对应到一完整的实体区块时,即有连续空间的容量为储存装置分配使用的删除单位容量时(步骤S701),表示该区块可被删除,即产生一专属的数据删除指令给储存装置的控制器(步骤S703),当控制器接收到此数据删除指令后,便执行相关步骤,包括取消该实体区块与逻辑区块间的连接关系,并删除该实体区块以释放储存的空间,如以下详细内容。接着,储存装置控制器则在收到应用系统执行常驻程序下达的数据删除指令时,检查该指令所指定的逻辑区块(步骤S705),并读取逻辑/实体对应表(步骤S707),借以对应到实体区块地址,并判断是否有分配实体记忆区块,而其仍保存已被删除无效的数据(步骤S709),若指令参数所指定的逻辑区块并没有分配实体记忆区块,则此操作结束,而会等到下一次检査到有无效数据的逻辑地址对应到一实体区块时,进行下一次流程;若上述指令参数所指定的逻辑区块有分配实体记忆区块,则控制器通过更新/修改逻辑/实体对应表来解除该逻辑区块与该实体区块的连结关系(步骤S711)。控制器可在上述对应表中修改该逻辑区块对应实体区块关系的记录,以表示该逻辑区块并未分配实体记忆区块,也未记录保存有效的数据,并将该实体记忆区块予以删除(步骤S713)。并且,储存完成检查文件系统的位置(步骤S715),或是接着根据上述的程序持续执行文件系统下一个位置的检查,以释放无效数据占有储存装置的空间。借此流程可释放无效数据所占的储存空间,减少数据更新及执行删除时搬移实体区块中无效数据的情形,以延长记忆装置的使用期限。之后,本发明更将图7所示删除数据的流程应用于内存储存空间管理流程,如图8所示的步骤。当系统启动后,即加载本发明用于监控系统内存与文件系统运作的常驻程序,此常驻程序用以检査文件系统分配使用状况的操作,但是除此常驻程序以外,亦可由系统的储存装置控制器自动执行进行辨识检查,但是在此储存装置上执行辨识的操作则须限于应用系统使用该储存装置进行格式化时所采用的文件系统,换言之,该文件系统为储存装置内的控制器能够辨识使用区间是否记录有效数据(包括是否被分配用于记录文件数据,以及文件是否被删除)的文件系统。所以,于启动连接至系统的储存装置(步骤S801)后,将检查是否有前次检査的记录,若有,则加载默认值来检查文件系统;若非第一次启动,则可加载上次完成的位置。之后,其中的控制器在检査文件系统前需先辨识分割表(步骤S803),识别出储存装置的配置之后,再辨识其中文件系统(步骤S805),并判断是否为控制器所支持的文件系统(步骤S807),若并非控制器所支持的文件系统(否),则结束操作;但是若确认为支持的文件系统格式(是),则接着撷取储存装置的参数,包括储存装置的区块大小、区块中记忆页的数目、记忆页的大小、制造商或装置的信息等。再接着开始检査文件系统的使用状态,由次一位置开始(步骤S809),包括检査文件配置表、各目录下的文件标记,或/与各磁丛集链接结构的状态。其中因此次检查流程之前可能10己储存了前次的检査结果,故须由下一个内存地址开始检査。接着根据分割表、文件系统的形式检査逻辑区块与当中记忆页是否有未分配使用的实体记忆区块(步骤S811),若是没有任何未分配使用的实体记忆区块(否),则至步骤S821,储存本次检查记录,如检査的位置;若是逻辑区块/页有未分配使用的实体记忆区块(是),则读取逻辑/实体对应表(步骤S813),借以对应逻辑区块地址与实体区块地址,判断是否有已删除文件的逻辑区块分配实体记忆区块,其仍保存己被删除无效的数据(步骤S815)。于步骤S815的判断步骤中,若所指定的逻辑区块并没有分配实体记忆区块,则进行步骤S821储存步骤并操作结束,直到检査流程发现有未分配使用的实体记忆区块时进行下一次流程。但是于步骤S815的步骤中判断出己删除文件的逻辑区块仍有分配实体记忆区块,若有且占一整个实体区块,则通过修改L2P对应表去解除逻辑区块地址与实体区块地址间的连结关系(步骤S817),并删除该实体区块(步骤S819)。最后,步骤将接着进行储存此次检查的位置(步骤S821),并可经一段时间的延迟后(步骤S823),再检查文件系统之下一位置(步骤S809),继续下一阶段的内存管理流程。本发明中,所述删除单位容量不限为记忆体本身的删除单位容量,亦可为用户自行定义预设的容量。综上所述,本发明为一种内存储存空间管理方法,可利用加载操作系统的常驻程序监控储存空间与文件系统分配使用情形,通过修改文件系统中逻辑区块与实体区块的对应表,释放占用而未用的实体记忆区块,能改善储存装置的存取速度,并延长储存媒体的使用期限。以上所述仅为本发明的较佳可行实施例,并非因此局限本发明的权利范围,所以凡运用本发明说明书及附图内容所做的等效结构变化,均同理包含于本发明范围之内,特此说明。权利要求1.一种内存储存空间管理方法,其特征在于所述的方法包括有监控一储存装置中的储存空间与文件系统的无效数据分配情形;当无效数据的逻辑地址对应到的实体区块的容量为该储存装置的一预设单位容量时;修改该逻辑/实体地址对应表,以取消该实体区块与逻辑地址间的连接关系。2.如权利要求1所述的内存储存空间管理方法,其特征在于,更包括加载操作系统的常驻程序;检査一文件配置表;以及检查各目录下的文件标记,或各磁丛集链接结构的状态。3.如权利要求1所述的内存储存空间管理方法,其特征在于,利用一该储存装置的控制器执行该内存储存空间管理方法的各步骤。4.如权利要求1所述的内存储存空间管理方法,其特征在于所述修改该逻辑/实体地址对应表的步骤前,判断该逻辑地址是否有分配实体区块;若逻辑地址有分配实体区块,则该控制器执行该修改逻辑/实体地址对应表的步骤,以取消逻辑地址与该实体区块的对应关系,并删除该实体区块以释放区间;若逻辑地址没有分配实体区块,则操作结束。5.如权利要求1所述的内存储存空间管理方法,其特征在于最后储存完成该次检査的位置。6.如权利要求3所述的储存装置的控制器,其特征在于所述的辨识储存装置的文件系统的步骤包括启动储存装置;判断该文件系统是否为控制器所支持的文件系统;若并非该控制器所支持的文件系统,则结束操作;若确认为支持的文件系统格式,则进行该撷取储存装置参数的步骤。7.如权利要求6所述的内存储存空间管理方法,其特征在于所述的储存装置的参数包括该储存装置的区块大小、区块中记忆页的数目、记忆页的大小。8.如权利要求6所述的内存储存空间管理方法,其特征在于,在启动该储存装置后,判断包括若是第一次启动,则加载一默认值来检査该文件系统;若非第一次启动,则加载上次完成的位置以继续检查该文件系统。全文摘要一种内存储存空间管理方法,利用一加载操作系统的常驻程序或是储存装置内控制器监控储存装置中的储存空间与文件系统的资源分配情形,通过一逻辑/实体地址对应表检查删除的无效数据的逻辑地址与其对应的实体区块的状态,利用特定数据删除指令,控制器将修正此对应关系,取消该实体区块与逻辑地址间的连接关系,并接着删除该实体区块以释放储存的空间,最后再储存此次检查的位置,提供下一次检查的依据,借此储存空间的管理步骤改善储存装置的存取速度,并延长储存媒体的使用期限。文档编号G06F12/02GK101609430SQ20081011146公开日2009年12月23日申请日期2008年6月19日优先权日2008年6月19日发明者谢祥安,陈明达申请人:威刚科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1