專利名稱::將文件儲存至一數據儲存裝置的方法及該數據儲存裝置的制作方法
技術領域:
:本發明有關于數據儲存裝置,尤其是有關于可一并儲存大型文件及小型文件的數據儲存方法及其相關裝置(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日發明者林松青申請人:聯發科技股份有限公司