将文件储存至一数据储存装置的方法及该数据储存装置的制作方法

文档序号:6574821阅读:163来源:国知局

专利名称::将文件储存至一数据储存装置的方法及该数据储存装置的制作方法
技术领域
:本发明有关于数据储存装置,尤其是有关于可一并储存大型文件及小型文件的数据储存方法及其相关装置(METHODOFSTORINGBOTHLARGEANDSMALLFILESINADATASTORAGEDEVICEANDDATASTORAGEDEVICETHEREOF)。
背景技术
:现今数据储存机制普遍利用一种将数据分割信息列表至一文件配置表(FileAllocationTable,FAT)中的方法来储存数据。一个分割区(partition)被划分为相同大小的复数个储存单元,而在一些FAT系统中,这些储存单元通常被称为丛集(cluster),通常丛集为具有相同大小及连续储存空间的小区块。丛集的大小则依据所使用的FAT系统的类型和分割区的大小而改变,一般来说,丛集的大小介于2KB和32KB之间。每个文件可能依据其大小而储存于一个或是多个丛集中,因此,一个文件可表示为一连串的丛集(即称之为一单一链接(singlylinkedlist))。然而,这些丛集串行并不一定相邻地储存于磁盘片表面上,而是可能分散地储存于数据区中。请参阅图1,图1为现有文件配置表100的部分示意图。文件配置表为复数个数据项(entry)的窗体,其中该复数个数据项分别映像至分割区中每一个丛集。每一数据项纪录下列五个项目的其中一项一串行中下一个丛集的地址(如图1所示的以数字标记的数据项)。一个特殊的文件结尾(endoffile,EOF)字符,用来指示一个串行的结尾(如图1所示的字母‘E’)。一个特殊的字符,用来标示一个坏的丛集(未显示于图1)。一个特殊的字符,用来标示一个保留的丛集(未显示于图1)。一个特殊的字符,用来标示丛集未被使用(如图1所示的‘X’)。每一种版本的FAT系统使用不同大小的文件配置表数据项(FATentry)来管理存储器空间,且从命名上即可判断出其文件配置表数据项的大小,举例来说,FAT16即表示每个文件配置表数据项采用16个位,而FAT32即表示每个文件配置表数据项系采用32个位,因此,FAT32系统则可以管理比FAT16系统更多的丛集,并且可以允许更大的分割区容量。此外,在相同硬盘之下,由于FAT32可以标示出较小的丛集,因此FAT32也比FAT16较不会浪费储存空间因而更能有效率地使用储存空间。在盘片式储存介质中(例如磁盘驱动器系统和数字影像/多功能光盘系统),有两个主要因素会影响文件存取的效能存取参考数据(metadata)的时间以及跳至盘片上连续储存单元的时间。存取参考数据的时间包含了处理文件配置表信息来决定所要数据储存于盘片中哪个位置的时间,举例来说,存取参考数据的时间包含有因为文件配置表通常位于盘片的内圈区域而需执行搜寻操作的时间,而当连续地读取文件中的数据时,必须要花费一段时间搜寻盘片内圈区域以读取参考数据并决定出串行中的下一储存单元,然后才又往回搜寻盘片外圈区域以继续读取出文件中的数据,由上述可知,机械性的操作(mechanicaloperation)是极为费时的。另一方面,跳至盘片中连续储存单元的时间则包含当执行其它搜寻操作及光盘片旋转而从一个储存单元移动至下一个储存单元的对该盘片所施加的机械性操作所需的时间。在决定每一个储存单元的大小(例如丛集大小)时,为了要减少机械性地移动读取头进入盘片不同区域所需的时间,一个较大的储存单元是需要的,如此一来,便可自储存介质中相邻的数据中读取出每一个文件的更多信息,因此数据处理量(throughput)即会增加。然而,使用大容量储存单元的结果会造成有些较小的文件可能无法完全填满一个储存单元,或是可能在最后一个储存单元留下一大部分空白,这种情况通常被称为内部数据碎片(internalfragmentation),其会降低储存系统的储存空间使用效率,换句话说,内部数据碎片会浪费储存系统的内部储存空间。因此,必须在可有效利用储存空间的小储存单元和具有高速数据传输量的大储存单元当中选取一个折衷的方案。
发明内容因此,本发明的目的之一在于提供一种可同时储存大型文件及小型文件的数据储存方法及其相关装置,以解决上述的问题并且可一并提供有效率的储存空间使用率以及高速的数据传输率。根据本发明的目的在于,揭露一种用来将复数个文件储存于一数据储存装置的方法。该方法包含有将该数据储存装置的一储存介质划分为复数个具有相同预定大小的储存单元,并且在该储存介质的一文件配置表中指示出每一储存单元及储存相同文件的相关储存单元串行的一状态;将该复数个储存单元区分为复数个具有一预设数目的相邻储存单元的群组;当一文件被产生并且被储存于该储存介质时,指定一文件容量分类值至该文件,该文件容量分类值对应于储存于该储存介质的该文件中数据的一预估数据量;以及若该文件容量分类值大于一默认值,则指派具有相邻储存单元的至少一群组以储存该文件。根据本发明的另一目的在于,揭露一种数据储存装置。该数据储存装置包含有一储存介质,其划分为复数个具有相同预定大小的储存单元;一文件配置表,储存于该储存介质中,用来指示出每一储存单元及储存相同文件的相关储存单元串行的一状态;以及一中央处理器,用来将该复数个储存单元区分为复数个具有一预设数目的相邻储存单元的群组;当一文件被产生并且被储存于该储存介质时,该中央处理器指定一文件容量分类值(filesizeclassification)至该文件,该文件容量分类值对应于储存于该储存介质的该文件中数据的一预估数据量;以及若该文件容量分类值大于一默认值,则该中央处理器指派具有相邻储存单元的至少一群组以储存该文件。本发明可有效利用储存空间。图1为现有文件配置表的部分示意图。图2为本发明将文件储存至一数据储存装置的方法的一实施例的流程图。图3为本发明文件配置表和文件配置快取的实施例的示意图。图4为本发明数据储存装置的一实施例的功能方块图。主要组件符号说明100、300、406文件配置表350、410文件配置快取400数据储存装置402中央处理器404盘片式储存介质408动态随机存取存储器具体实施方式图2为本发明将文件储存至一数据储存装置的方法的一实施例的流程图。若大致上可得到相同的结果,则图2中所示的流程图中的步骤不一定要依所揭露的执行顺序来执行,也就是说,其它步骤也可以插入其中。在这个实施例中,将文件储存于一数据储存装置包含下列步骤步骤200将该数据储存装置的一储存介质划分为复数个具有相同预定大小的储存单元,并且在该储存介质的一文件配置表中指示出每一储存单元及储存相同文件的相关储存单元串行的状态。举例来说,步骤200可依据图1所述的现有文件配置表技术来加以实施。步骤202将该复数个储存单元区分为复数个具有一预设数目的相邻储存单元的群组。在图2中,本实施例的复数个储存单元已经被分为四个群组。请注意,群组的个数仅用来作为范例说明,而在实施上,群组的个数会较大,然而,任何群组个数均可被使用。步骤203当一文件预定要被储存于该储存介质时,指定一文件容量分类值(filesizeclassification)至该文件,该文件容量分类值对应于储存于该储存介质的该文件中数据的预估数据量。举例来说,在本实施例中,复数个文件被分类成大于一预设文件容量值的大型文件,以及小于该预设文件容量值的小型文件。步骤204若文件容量分类值大于一默认值,则指派具有相邻储存单元的至少一群组以储存该文件。换句话说,大型文件利用相邻储存单元的一群组来加以储存,在本实施例中,若是该文件的容量够大而需要一个以上的群组时,则本发明便使用复数个具有相邻储存单元的群组来加以储存。请参阅图3,图3为本发明文件配置表300和文件配置快取(fileallocationtablecache,FATcache)350的实施例的示意图。文件配置表300中的每一个储存单元系对应于FAT-16储存系统、FAT-32储存系统或兼容于其它文件配置表的兼容储存系统中一个丛集。文件配置快取350用来更进一步地减少存取文件配置表300的参考数据(metadata)的时间,而文件配置快取350的运作详述于后。对文件配置表300而言,其指示出复数个储存单元(即复数个丛集)被分组为具有相邻储存单元的群组302、304、306、308和310。举例来说,每一个群组302、304、306、308和310显示为包含有四个相邻的储存单元,然而,如先前所述,其它大小的群组也可被使用在本发明中。本实施例的主要操作原则在于优先考虑利用具有相邻储存单元的空白群组来将大型文件储存于储存介质中,如此一来,大型文件的数据传输量即会达到最佳化,这对于大型文件来说是很重要,因为大型文件显然包含较大量的数据需要被传送。如图3所示,大型文件‘b.mpg’被储存在群组304和群组308中,当存取(不论读出或写入)‘b.mpg’文件时,储存装置中的读取头仅需要搜寻一次位于群组304的起始部份的储存区块4的位置即可,然后再接着存取后续三个相邻的储存区块5、6和7,因为这四个储存区块4、5、6和7为相邻区块,因此当读取头从一区块跳至另一区块时即不需要多余的搜寻动作。储存装置的机械性操作因此仅只需要搜寻对应于储存区块4的位置,然后连续读取至对应储存区块7的位置。如文件配置表300所示,在储存区块7的后,下一个储存区块为储存区块12,因此便接着对储存区块12进行搜寻动作,而储存区块12为群组308中第一个区块,并且也与其它三个包含有‘b.mpg’文件数据的储存区块相邻。当储存新数据至大型文件中时,储存系统即会配置具有相邻且空白的储存单元的群组。举例来说,群组310便可被用来储存大型文件的数据。另一方面,对于比预设文件容量值小的小型文件而言,本发明则利用现有单一储存单元(或是单一储存单元的连接串行)来储存,如此一来,对于小型文件来说,储存介质的内部数据碎片便降低了,而对于大型文件来说,数据传输量却提升了。除了文件配置表300编组成上述的群组302、304、306、308和310之外,文件配置表300的实际组态和结构则与现有组态与结构一样,如此一来,经由本实施例所写入的储存介质和现有储存装置所写入的储存介质是可以完全兼容的。如前所述,为了减少文件配置表300的参考数据的读取时间,在本发明的另一实施例中,具有相邻储存单元的每一群组302、304、306、308和310的状态(status)被储存在文件配置快取350中。文件配置快取350包含了文件配置表300中每一群组的状态,其可为下列几种表示之一‘F’表示一特定群组的所有相邻储存单元都是空白的。‘U’表示一特定群组的某些相邻储存单元是被使用的,而某些则是空白的。‘A’表示一特定群组的所有相邻储存单元被具有文件容量分类值小于默认值的文件所使用。‘数字’表示一特定群组的所有相邻储存单元被具有文件容量分类值大于默认值的单一个文件所使用,并且一指针pointer)指示到继续储存该具有文件容量分类值大于默认值的文件中储存数据的具有相邻储存单元的下一个群组。为了加快存取文件配置表300的参考数据的速度,文件配置快取350被储存在动态随机存取存储器(DynamicRandomAccessMemory,DRAM)中,并且在储存介质中所有文件储存、配置、读取的操作都是先利用文件配置快取350来进行。举例来说,当储存一大型文件时,只有具有‘F’状态(即表示此群组的所有储存单元都是空白的)的群组被配置并且被使用来储存大型数据;同样地,当读取一大型文件时,文件配置快取350中的状态值提供了储存有大型文件的数据的具有相邻储存单元的下一群组中第一储存单元的号码。当储存小型文件时,只有具有‘F’或‘U’状态(即表示此群组中至少一储存单元是空白的)的群组被用来储存小型数据,举例来说,在一实施例中,当文件系统被产生时,所有群组具有‘F’状态,而当一个储存单元被分配来储存一小型文件时,则具有‘U’状态的群组将会优先被使用,若未发现具有‘U’状态的群组,则具有‘F’状态的群组将会被使用。当一群组中的储存单元完全被小型文件填满时,若要储存额外的小型文件时,该群组的状态便成为‘A’以避免浪费时间于检测该群组。事实上,对大型文件来说,在正常的运作下并不需要存取储存介质中的文件配置表,相反地,文件配置表可仅于系统关机时与文件配置快取进行数据同步即可,这个操作是可能的,主要因为文件配置快取已经为每一个大型文件指示出下一个储存单元了,并且具有相邻储存单元的整个目前群组会被大型文件所使用,如此一来,针对大型文件,系统即可在关机时依据文件配置快取的信息来将个别的储存单元之间的连接串行细节填入文件配置表中。请参阅图4,图4为本发明数据储存装置400的一实施例的功能方块图。如图4所示,本实施例的数据储存装置400包含一中央处理器(CentralProcessingUnit,CPU)402、一盘片式储存介质(例如硬盘)404以及一动态随机存取存储器(DynamicRandomAccessMemory,DRAM)408。盘片式储存介质(例如硬盘)404更包含有一个文件配置表(FATtable)406,而动态随机存取存储器408则更包含有一文件配置快取(FATcache)410。在本实施例中,盘片式储存介质404被划分为具有特定相同大小的储存单元(即丛集),而盘片式储存介质404中的文件配置表406用来指示出每个储存单元及用来储存相同文件的相关储存单元串行的状态,以及中央处理器402将该储存单元区分为复数个具有一预设数目的相邻储存单元的群组。此外,当一个文件被产生并被储存至储存介质中时,中央处理器402会指定一对应于预定储存在储存介质的该文件中数据量的文件容量分类值;若文件容量分类值比一默认值大,则中央处理器402指派具有相邻储存单元的至少一群组以储存该文件;以及若文件容量分类值比默认值小,则中央处理器402则会指派至少一个未被使用的储存单元来储存该文件,举例来说,若该文件容量分类值小于一默认值并且该文件大于单一储存单元的储存容量,则本发明便指派复数个未使用的储存单元以储存该文件。本发明提供一种将数据储存于一数据储存装置的方法,其包含有将该数据储存装置的一储存介质划分为复数个具有相同预定大小的储存单元,并且指示出每一储存单元及该储存介质的一文件配置表中用来储存相同文件的相关储存单元串行的状态;将该复数个储存单元区分为复数个具有一预设数目的相邻储存单元的群组;当一文件被产生并且被储存于该储存介质时,指定一文件容量分类值至该文件,其中该文件容量分类值对应于储存于该储存介质的该文件中数据的一预估数据量;以及若该文件容量分类值大于一默认值,则指派具有相邻储存单元的至少一群组以储存该文件。以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,都应属本发明的涵盖范围。权利要求1.一种用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法包含有将所述数据储存装置的一储存介质划分为复数个具有相同预定大小的储存单元,并且在所述储存介质的一文件配置表中指示出每一储存单元及储存相同文件的相关储存单元串行的一状态;将所述复数个储存单元区分为复数个具有一预设数目的相邻储存单元的群组;当一文件被产生并且被储存于所述储存介质时,指定一文件容量分类值至所述文件,所述文件容量分类值对应于储存于所述储存介质的所述文件中数据的一预估数据量;以及若所述文件容量分类值大于一默认值,则指派具有相邻储存单元的至少一群组以储存所述文件。2.如权利要求1所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有若所述文件容量分类值大于一默认值,并且所述文件大于具有相邻储存单元的单一群组的储存容量,则指派具有相邻储存单元的复数个未使用的群组以储存所述文件。3.如权利要求1所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有若所述文件容量分类值小于一默认值,则指派至少一未使用的储存单元以储存所述文件。4.如权利要求3所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有若所述文件容量分类值小于一默认值,并且所述文件大于单一储存单元的储存容量,则指派复数个未使用的储存单元以储存所述文件。5.如权利要求1所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有将具有相邻储存单元的每一群组的一状态储存至一文件配置快取中。6.如权利要求5所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,具有相邻储存单元的每一群组的可能状态包含有一第一状态,表示一特定群组的所有相邻储存单元都是空白的;一第二状态,表示一特定群组的某些相邻储存单元是被使用的,而某些是空白的;一第三状态,表示一特定群组的所有相邻储存单元被具有文件容量分类值小于默认值的文件所使用;以及一第四状态,表示一特定群组的所有相邻储存单元被具有文件容量分类值大于默认值的单一文件所使用,并且一指针指示到储存着具有文件容量分类值大于默认值的所述文件中数据的具有相邻储存单元的下一个群组。7.如权利要求5所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有提供一动态随机存取存储器,用来储存所述文件配置快取。8.如权利要求5所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有当存取所述储存介质中的文件时,参考所述文件配置快取。9.如权利要求5所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,所述方法还包含有在关机时,对所述文件配置表以及所述文件配置快取进行数据同步。10.如权利要求1所述的用来将复数个文件储存于一数据储存装置的方法,其特征在于,每一储存单元对应于一FAT-16储存系统或一FAT-32储存系统的一丛集。11.一种数据储存装置,其特征在于,所述数据存储装置包含有一储存介质,其划分为复数个具有相同预定大小的储存单元;一文件配置表,其储存于所述储存介质中,用来指示出每一储存单元及储存相同文件的相关储存单元串行的一状态;以及一中央处理器,用来将所述复数个储存单元区分为复数个具有一预设数目的相邻储存单元的群组;当一文件被产生并且被储存于所述储存介质时,所述中央处理器指定一文件容量分类值至所述文件,所述文件容量分类值对应于储存于所述储存介质的所述文件中数据的一预估数据量;以及若所述文件容量分类值大于一默认值,则所述中央处理器指派具有相邻储存单元的至少一群组以储存所述文件。12.如权利要求11所述的数据储存装置,其特征在于,若所述文件容量分类值大于一默认值,并且所述文件大于具有相邻储存单元的单一群组的储存容量,则所述中央处理另外指派具有相邻储存单元的复数个未使用的群组以储存所述文件。13.如权利要求11所述的数据储存装置,其特征在于,若所述文件容量分类值小于一默认值,则所述中央处理器另外指派至少一未使用的储存单元以储存所述文件。14.如权利要求13所述的数据储存装置,其特征在于,若所述文件容量分类值小于一默认值,并且所述文件大于单一储存单元的储存容量,则所述中央处理另外指派复数个未使用的储存单元以储存所述文件。15.如权利要求11所述的数据储存装置,其特征在于,所述数据存储装置还包含有一文件配置快取,用来储存具有相邻储存单元的每一群组的一状态。16.如权利要求15所述的数据储存装置,其特征在于,具有相邻储存单元的每一群组的可能状态包含有一第一状态,表示一特定群组的所有相邻储存单元都是空白的;一第二状态,表示一特定群组的某些相邻储存单元是被使用的,而某些是空白的;一第三状态,表示一特定群组的所有相邻储存单元被具有文件容量分类值小于默认值的文件所使用;以及一第四状态,表示一特定群组的所有相邻储存单元被具有文件容量分类值大于默认值的单一文件所使用,并且一指针指示到储存着具有文件容量分类值大于默认值的所述文件中数据的具有相邻储存单元的下一个群组。17.如权利要求15所述的数据储存装置,其特征在于,所述数据存储装置还包含有一动态随机存取存储器,用来储存所述文件配置快取。18.如权利要求15所述的数据储存装置,其特征在于,当存取所述储存介质中的文件时,所述中央处理器另参考所述文件配置快取。19.如权利要求15所述的数据储存装置,其特征在于,在关机时,所述中央处理器另对所述文件配置表以及所述文件配置快取进行数据同步。20.如权利要求11所述的数据储存装置,其特征在于,每一储存单元对应于一FAT-16储存系统或一FAT-32储存系统的一丛集。全文摘要一种将文件储存至一数据储存装置的方法及该数据储存装置,该方法包含有将该数据储存装置的一储存介质划分为复数个具有相同预定大小的储存单元,并且在该储存介质的一文件配置表中指示出每一储存单元及储存相同文件的相关储存单元串行的一状态;将该储存单元区分为复数个具有一预设数目的相邻储存单元的群组;当一文件被产生并且被储存于该储存介质时,指定一文件容量分类值至该文件,该文件容量分类值对应于储存于该储存介质的该文件中数据的一预估数据量;以及若该文件容量分类值大于一默认值,则指派具有相邻储存单元的至少一群组以储存该文件。本发明可有效利用储存空间。文档编号G06F17/30GK101051315SQ20071009105公开日2007年10月10日申请日期2007年4月6日优先权日2006年4月7日发明者林松青申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1