理單元13便進一步地將第一次要元數據表格Stablel的單一已使用元數據項的內容轉換至第二次要元數據表格Stable2的未使用元數據項,并將第一次要元數據表格Stablel的單一已使用元數據項以及第二次要元數據表格Stable2的未使用元數據項相應地記錄至間接元數據對應表格INDtable中。
[0087]須特別說明,間接元數據對應表格INDtable中具有一來源地址src以及一目的地址des,來源地址src用以標示第一次要元數據表格Stablel的單一已使用元數據項,目的地址des用以標示第二次要元數據表格Stable2的未使用元數據項。于第二實施例中,假設第一次要元數據表格Stablel的單一已使用元數據項系為元數據X,而第二次要元數據表格Stable2的未使用元數據項系為元數據Y。
[0088]據此,處理單元13便可于后續存取的過程中,透過間接元數據對應表格INDtable的內容得知,原第一次要元數據表格Stablel的單一已使用元數據項X的內容已轉換至原第二次要元數據表格Stable2的未使用元數據項Y,如此一來,處理單元13便可將第一次要元數據表格Stablel移除,以回收空間再使用。
[0089]請參考圖3,其為本發明第三實施例的字節尋址儲存系統1儲存數據的示意圖。須特別說明者,第三實施例中與先前實施例的系統架構及連接環境相同,因此符號相同的組件功能亦同,于此不再贅述。而第三實施例主要系用以說明數據的儲存方式。
[0090]須先說明,于第三實施例中,處理單元13先于字節尋址儲存裝置2中劃分多個儲存區塊blocks 1?m,并將儲存區塊blocks 1?m系分為多個子儲存區塊sub-blocks 1?η。接著,處理單元13更用以于字節尋址儲存裝置2建立一子區塊使用狀態表格SUBtable,以記錄子儲存區塊的使用狀態Bstatus。須特別說明,儲存區塊主要系用以儲存數據,然其亦可根據前述實施例動態元數據調整的需要存放元數據及其相關表格。惟于第三實施中例,將著重于數據的儲存方式。
[0091]更進一步來說,子區塊使用狀態表格SUBtable主要系用以記錄子儲存區塊sub-blocks 1?η的使用狀態,而當有足夠且連續的子儲存區塊空間時,處理單元13會將檔案直接配置于連續的子儲存區塊空間。惟字節尋址儲存裝置2于一段時間的使用后,儲存區塊中常常具有非連續的儲存空間。而由于本發明的技術系使用于字節尋址儲存裝置2,因此,利用其硬件特性,當有檔案的大小增加時,若增加的部分無法透過連續空間進行儲存,則處理單元13無須移動原檔案的儲存狀態,其僅需將新增的數據部分,于子儲存區塊中以非序列性的方式進行存儲即可。
[0092]舉例而言,如圖所示,原檔案已儲存于子儲存區塊sub-blocks 5、6、7、8及9之中,當檔案大小增加需多使用一子儲存區塊時,新增的數據部分,將可以非序列性的方式,利用字節尋址的方式直接存儲于可用的子儲存區塊sub-block 11中。如此一來,將可避免移動原數據內容已大幅節省裝置存取時間。
[0093]請參考圖4A?4B,其為本發明第四實施例的字節尋址儲存系統1儲存數據的示意圖。須特別說明者,第四實施例中與先前實施例的系統架構及連接環境相同,因此符號相同的組件功能亦同,于此不再贅述。而第四實施例主要系用以說明更為詳細的數據儲存方式。
[0094]請先參考圖4A。具體而言,類似地,處理單元13先于字節尋址儲存裝置2中劃分多個儲存區塊blocks 1?m。其中,多個儲存區塊blocks 1?m中包含一第一儲存區塊Fblock,第一儲存區塊Fblock劃分為多個第一子儲存區塊Fsub-blocks 1?η而子區塊使用狀態表格SUBtable中具有與第一儲存區塊Fblock相關的一第一子儲存區塊個數字段Bcntl、一第一子儲存區塊位圖Bbitmapl以及一第一子儲存區塊所屬儲存區塊指針Bptrl。
[0095]第一子儲存區塊個數字段Bcntl系用以記錄第一子儲存區塊Fsub-blocks 1?η的可使用子儲存區塊個數。第一子儲存區塊位圖Bbitmapl系用以記錄第一子儲存區塊Fsub-blocks 1?η的使用狀態。第一子儲存區塊所屬儲存區塊指針Bptrl系用以指向第一儲存區塊Fblock。處理單元13系根據子儲存區塊使用狀態表格SUBtable的內容,判斷第一儲存區塊Fblock中有非連續的可使用空間Fsub-blocks 1、2及6,并據以將檔案以字節尋址的方式,直接于第一子儲存區塊Fsub-blocks 1、2及6中非序列性地進行存儲。
[0096]請參考圖4B。具體而言,多個儲存區塊blocks 1?m中更包含一第二儲存區塊Sblock,第二儲存區塊Sblock劃分為多個第二子儲存區塊Ssub-blocks 1?η而子區塊使用狀態表格SUBtable中具有與第二儲存區塊Sblock相關的一第二子儲存區塊個數字段Bcnt2、一第二子儲存區塊位圖Bbitmap2以及一第二子儲存區塊所屬儲存區塊指針Bptr2。
[0097]第二子儲存區塊個數字段Bcnt2系用以記錄第二子儲存區塊Ssub-blocks 1?η的可使用子儲存區塊個數。第二子儲存區塊位圖Bbitmap2系用以記錄第二子儲存區塊Ssub-blocks 1?η的使用狀態。第二子儲存區塊所屬儲存區塊指針Bptr2系用以指向第二儲存區塊Sblock。處理單元13系根據子儲存區塊使用狀態表格SUBtable的內容,判斷第一儲存區塊Fblock以及第二儲存區塊Sblock中有非連續的可使用空間Fsub-blocks1、2、6及Ssub-blocks 3、5,并據以將檔案以字節尋址的方式,直接于第一子儲存區塊Fsub-blocks 1、2、6及Ssub-blocks 3、5中非序列性地進行存儲。
[0098]請參考圖5A-5B,其為本發明第五實施例的字節尋址儲存系統1的元數據多層次記錄數據的示意圖。須特別說明者,第五實施例中與先前實施例的系統架構及連接環境相同,因此符號相同的組件功能亦同,于此不再贅述。而第五實施例主要系用以說明動態多層次的數據儲存記錄方式。
[0099]具體而言,處理單元13于建立檔案時,將會同時建立一元數據meta,元數據meta具有一元數據區塊指針metaPtr,元數據區塊指針metaPtr具有一第一指向字段Mptrl。接著。處理單元13先判斷欲儲存檔案的一檔案尺寸(未繪示),并根據檔案尺寸預備配置字節尋址儲存裝置2的多個儲存區塊予此一檔案,并將第一指向字段Mptrl指向配置的儲存區塊BLK。
[0100]更進一步來說,前述“將第一指向字段Mptrl指向配置的儲存區塊”的動作可根據檔案尺寸,動態地(如圖5A所示):直接將第一指向字段Mptrl指向儲存區塊其中之一;或是動態地(如圖5B所示):將第一指向字段Mptrl指向一儲存區塊表格blockTable。其中,儲存區塊表格blockTable具有一第二指向字段Mptr2。第二指向字段Mptr2指向儲存區塊其中之一。
[0101]請參考圖6,其為本發明第六實施例的字節尋址儲存系統1的元數據多層次記錄數據的示意圖。須特別說明者,第六實施例中與先前實施例的系統架構及連接環境相同,因此符號相同的組件功能亦同,于此不再贅述。而第六實施例主要系用以更詳細地說明動態多層次的數據儲存記錄方式。
[0102]具體而言,處理單元13于建立檔案時,將會同時建立元數據meta,元數據meta具有元數據區塊指針metaPtr,元數據區塊指針metaPtr具有多個指向字段Mptra、Mptrb等。接著。處理單元13先判斷欲儲存檔案的檔案尺寸,并根據檔案尺寸預備配置字節尋址儲存裝置2的多個儲存區塊予此一檔案,并將指向字段指向配置的儲存區塊。
[0103]同樣地,更進一步來說,前述“將指向字段指向配置的儲存區塊”的動作可根據檔案尺寸,動態地(如圖所示):直接將指向字段Mptra指向儲存區塊BLK1。同時動態地(如圖所示):將指向字段Mptrb指向一儲存區塊表格blockTablel。其中,儲存區塊表格blockTablel具有多個指向字段Mptrx、Mptry等。
[0104]而指向字段Mptrx直接指向儲存區塊BLK2,指向字段Mptry再指向一儲存區塊表格blockTable2。其中,儲存區塊表格blockTable2具有多個指向字段Mptrz等,而指向字段Mptrz直接指向儲存區塊BLK3。
[0105]須特別說明者,本發明的元數據區塊指針metaPtr主要系根據檔案動態地調整需“直接指向儲存區塊”或“間接指向儲存區塊表格”,且儲存區塊包含至少三種不同尺寸的儲存區塊。如此一來,本發明的字節尋址儲存系統將可不受限于傳統索引式檔案系統固定的儲存區塊指向方式,以動態的指向以及多種尺寸儲存區塊,更有彈性