專利名稱::數(shù)據存儲系統(tǒng)及其存儲方法
技術領域:
:本發(fā)明涉及一種邀:據存儲系統(tǒng)及其數(shù)據存儲方法,特別涉及一種當正在存儲的實時性(rea1-1ime)數(shù)據串流不正常中斷時,仍可對已存儲的數(shù)據串流進行讀取或釋放其所占用的存儲空間等動作的數(shù)據存儲系統(tǒng)及其數(shù)據存儲方法。
背景技術:
:一般而言,數(shù)據存儲于硬盤時是以叢集(cluster)為單位,并以文件系統(tǒng)紀錄該筆數(shù)據的文件名以及其在硬盤中所占用的叢集的編號。以文件配置表(fileallocationtable,FAT)系統(tǒng)為例,其是i殳置一目錄項(directoryentry)紀錄文件名以及該筆數(shù)據所使用的第1個叢集編號,再以叢集鏈接(clusterlink)的方式紀錄所使用的其它叢集圖1所示的文件配置表即表示該筆數(shù)據是依序存儲在叢集3、叢集4、叢集5、叢集10以及叢集12,其中,EOF代表文件結尾(endoffile)。當操作系統(tǒng)在讀取文件時,即依據文件的目錄項與文件配置表自硬盤中依序讀取出數(shù)據,同樣地,操作系統(tǒng)在刪除文件時也是將目錄項以及文件配置表內所紀錄的鏈接清除。只要清除了目錄項,文件系統(tǒng)就認為文件已被刪除,而清除了叢集鏈接就代表將文件所占用的叢集空間釋放出來。然而,此數(shù)據存儲方式在存儲實時性(realtime)的不定大小的文件時可能會發(fā)生問題由于文件大小未知,文件系統(tǒng)在建立目錄項后需隨著數(shù)據的存儲而同步更新文件配置表中的叢集鏈接,若在數(shù)據存儲完成前發(fā)生系統(tǒng)斷電或硬盤被移除的意外情況,造成叢集鏈接不完整(缺少EOF),不但所存儲的不完整文件無法運用,叢集鏈接也無法被清除,即使使用者將目錄項刪除了,所占用的磁盤空間還是無法被釋放。
發(fā)明內容有鑒于此,本發(fā)明的目'的之一即在于提供一種數(shù)據存儲系統(tǒng)及其數(shù)據存儲方法,當正在存儲的實時性數(shù)據串流不正常中斷時,仍可對已存儲的數(shù)據串流進行刪除或讀取等動作,W在不影響實時性操作的需求下,使存儲裝置(例如硬盤、隨身^乘或存儲卡等)發(fā)揮最大的使用效率。根據本發(fā)明的一實施例,其提供一種數(shù)據存儲方法。該方法包含有提供一存儲空間,接收一數(shù)據串流,將該數(shù)據串流存儲至該存儲空間中,并紀錄該數(shù)據串流在該存儲空間中所使用的叢集編號以建立一叢集鏈接(clusterlink),其中,該存儲空間在存儲該數(shù)據串流時,還存儲包含有該叢集鏈接中的一第一特定節(jié)點(node)編號以及該第一特定節(jié)點所對應的下一叢集編號的一第一信息。根據本發(fā)明的另一實施例,其提供一種數(shù)據存儲系統(tǒng)。該數(shù)據存儲系統(tǒng)包含有一存取系統(tǒng)以及耦接于該存取系統(tǒng)的一處理器,其中,存取系統(tǒng)內配置有一存儲空間,而處理器是用來處理一數(shù)據串流的存取,將該數(shù)據串流存儲至該存取系統(tǒng)中,紀錄該數(shù)據串流在該存取系統(tǒng)中所^f吏用的叢集編號以建立一叢集鏈接,并在該數(shù)據串流被完全存儲在該存取系統(tǒng)之前,另存儲包含有該叢集鏈接中的一第一特定節(jié)點編號以及該第一特定節(jié)點所對應的下一叢集編號的一第一信息。圖1是現(xiàn)有FAT系統(tǒng)當存儲一文件時所建立的文件配置表一實施例的示意圖。圖2是本發(fā)明的數(shù)據存儲系統(tǒng)一實施例的示意圖。圖3(a)至圖3(c)是顯示本發(fā)明的數(shù)據存儲系統(tǒng)當存儲一文件時所建立的文件配置表以及所存儲的端點信息的一實施例。圖4是顯示本發(fā)明的數(shù)據存儲系統(tǒng)當存儲一文件時所建立的文件配置表以及所存儲的端點信息的另一實施例。附圖符號說明<table>tableseeoriginaldocumentpage5</column></row><table>具體實施例方式本發(fā)明所提供的數(shù)據存儲系統(tǒng)及其數(shù)據存儲方法可確保當存儲實時性數(shù)據串流(例如視頻或音頻串流)不正常中斷時,系統(tǒng)仍可對已存儲的數(shù)據串流進行讀取或刪除以釋放其所占用的存儲空間;在不影響實時性操作的需求下,使存儲媒體發(fā)揮最大的使用效率,可解決現(xiàn)有文件系統(tǒng)在存儲實時性的視頻或音頻串流時,若電源不穩(wěn)或存儲媒體被不當移除,造成存儲過程中斷,使得已建立的文件損毀以及文件系統(tǒng)無法被完整刪除的問題。請參考圖2,其是本發(fā)明的數(shù)據存儲系統(tǒng)一實施例的示意圖。數(shù)據存儲系統(tǒng)200包含有一模擬/數(shù)字轉換電路(ADC)210、一處理器220以及一存取系統(tǒng)230,其中,存取系統(tǒng)230內配置有一第一存儲空間232以及一第二存儲空間234,第一存儲空間232用于存儲模擬/數(shù)字轉換電路210輸出的數(shù)字數(shù)據串流,以及該數(shù)據串流的叢集鏈接,而第二存儲空間234則用來寄存該叢集鏈接中一些特定節(jié)點(node)的信息,提供給處理器220使用。在本實施例中,第一存儲空間232位于一存儲裝置236,例如一光盤、硬盤、存儲卡或外接隨身碟內,而第二存儲空間234位于一存儲器238,例如一靜態(tài)隨機存取存儲器(SRAM)內,當然,第一存儲空間232以及第二存儲空間234亦可均位于存儲裝置236或存儲器238內。模擬/數(shù)字轉換電路210將數(shù)據來源(source)轉換成數(shù)字的數(shù)據串流后,處理器220將該數(shù)據串流存儲至第一存儲空間232中,并以叢集鏈接的方式紀錄該數(shù)據串流所使用的叢集的編號,此外,在數(shù)據串流被完全存儲在第一存儲空間232之前,處理器220會另將該叢集鏈接中一特定節(jié)點的編號(例如數(shù)據串流最近使用的一個叢集的編號)以及該特定節(jié)點所對應的下一叢集編號的信息存儲在第二存儲空間234中,并將該特定節(jié)點的內容設為文件結尾(EOF)。為了說明方便起見,以下將以圖1所示的文件配置為例來說明處理器220在數(shù)據存儲過程所進行的動作,然而,本發(fā)明并不限定僅應用于FAT文件系統(tǒng)。請參考圖3(a)至圖3(c),處理器220在第一存儲空間232中建立一文件配置表,以紀錄數(shù)據串流被存儲在第一存儲空間232時所使用的叢集的編號。在存儲數(shù)據串流以及建立叢集鏈接的過程中,處理器220在間隔一段時間后便紀錄叢集鏈接中最近使用過的一個叢集的編號以及該叢集所對應的下一叢集的編號,在一實施例中,處理器220系將叢集4的編號以及叢集4所對應的下一叢集,亦即叢集5的編號存儲在第二存儲空間234,并將叢集4的內容更改成文件結尾,如圖3(a)所示;接著,在間隔一段時間后,如圖3(b)所示,處理器220再將凝:據串流最近^f吏用的叢集編號(在本實施例中為叢集5),以及該叢集所對應的下一叢集編號(在本實施例中為叢集IO)紀錄在第二存儲空間234,將叢集5的內容設為文件結尾,并根據之前存儲在第二存儲空間234的信息將叢集4的內容恢復為指向叢集5。處理器220將重復上述步驟直到數(shù)據串流完全存儲在第一存儲空間232,此時如圖3(c)所示,處理器220將最后一個叢集(叢集12)的內容設為文件結尾,并根據第二存儲空間234中所存儲的一筆最新信息,將該最新信息所對應的一節(jié)點的內容設為上一節(jié)點所對應的下一叢集編號,也就是將叢集5的內容還原成指向叢集10。請注意,圖3(a)至圖3(c)僅為本發(fā)明的一實施例,實際運用時并不一定是每經過一個叢集的時間便進行一次紀錄節(jié)點信息與以文件結尾取代原本叢集內容的動作,而是依據使用者的需求來設定適當?shù)臅r間間隔。藉由每隔一段特定的時間間隔便于文件配置表中設定一文件結尾,數(shù)據存儲系統(tǒng)200便可確保在實時性文件的建立過程中,所建立的叢集鏈接在任何時間點均會包含有一個文件結尾,且透過根據系統(tǒng)效能設定存儲的間隔時間可令該文件結尾十分接近數(shù)據串流的存儲進度,使得本發(fā)明可有效解決現(xiàn)有技術所面臨的問題,亦即,當數(shù)據串流在存儲的過程中因系統(tǒng)斷電或存儲裝置236被不正常移除等因素而不正常中斷時,數(shù)據存儲系統(tǒng)200所建立的叢集鏈接因為仍具有一文件結尾而可被操作系統(tǒng)視為一合法的叢集鏈接,因此,使用者仍可自存儲裝置236讀取大部分的數(shù)據串流(從叢集3到目前的EOF),或者可藉由刪除文件的動作釋放該數(shù)據串流在存儲裝置236中所占用的大部分空間,以提升存儲裝置236的使用效率。圖4顯示另一種可能發(fā)生的數(shù)據存儲情況系統(tǒng)斷電或存儲裝置236被不正常移除等意外是發(fā)生在4理器220將最近使用的一叢集的內容更改為文件結尾,但尚未將前一個被更動的叢集的內容修正回來之前。在圖4中,處理器220已經將叢集4的內容更改成文件結尾,并在間隔一段時間后,又將叢集5的編號,以及叢集5所對應的下一叢集編號(叢集10)紀錄在第二存儲空間234,并將叢集5的內容設為文件結尾,但在還沒根據之前存儲在第二存儲空間234的信息將叢集4的內容恢復為指向叢集5時,存儲過程便被不正常中斷,造成叢集鏈接中具有兩個文件結尾。在這種情況下,從叢集3到叢集4的E0F會被視為一個合法的叢集鏈接,因此,使用者仍可自存儲裝置236讀取出叢集3至叢集4的數(shù)據,或者可藉由刪除文件的動作釋放叢集3至叢集4的空間,仍然可提升存儲裝置236的使用效率。在另一實施例中,數(shù)據存儲系統(tǒng)200可不須利用上述的第二存儲空間234以及存儲器238,而是將該些特定節(jié)點以及所對應的下一叢集編號等信息直接存于第一存儲空間,如系統(tǒng)原有的閃存(flash)中;亦即不須經由第二存儲空間寄存該些特定節(jié)點以及所對應的下一叢集編號等信息,而是處理器直接將數(shù)字數(shù)據串流、該數(shù)據串流的叢集鏈接以及該些特定節(jié)點以及所對應的下一叢集編號等信息寫入第一存儲空間,同樣可達到存儲裝置236對已存儲的數(shù)據串流進行讀取或刪除以釋放其所占用的存儲空間的優(yōu)點。以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應屬本發(fā)明的涵蓋范圍。權利要求1.一種數(shù)據存儲方法,包含有提供一存儲空間;以及接收一數(shù)據串流,將該數(shù)據串流存儲到該存儲空間中,并紀錄該數(shù)據串流在該存儲空間中所使用的叢集編號以建立一叢集鏈接,其中,該存儲空間在存儲該數(shù)據串流時,另存儲包含有該叢集鏈接中的一第一特定節(jié)點編號以及該第一特定節(jié)點所對應的下一叢集編號的一第一信息。2.如權利要求1所述的方法,還包含有將該第一特定節(jié)點的內容設為文件結尾。3.如權利要求2所述的方法,在該存儲空間存儲該數(shù)據串流步驟中,還包含有存入包含有該叢集鏈接中的一第二特定節(jié)點編號以及該第二特定節(jié)點所對應的下一叢集編號的一第二信息;以及將該第二特定節(jié)點的內容設為文件結尾。4.如權利要求3所述的方法,其中,該叢集鏈接至少包含一個文件結尾。5.如權利要求3所述的方法,還包含有根據所存儲的該第一信息,將該第二特定節(jié)點的內容設為該第一特定節(jié)點所對應的該下一叢集編號。6.如權利要求1所述的方法,還包含有當該數(shù)據串流已被完全存儲在該存儲空間時,根據最后所存儲的一筆最新信息,將該最新信息所對應的節(jié)點的內容設為上一個節(jié)點所對應的下一叢集編號。7.如權利要求1所述的方法,其中,該數(shù)據串流是一實時性的視頻或音頻串流。8.如權利要求l所述的方法,其中,該存儲空間包含有一第一存儲空間以及一第二存儲空間,該數(shù)據串流是存儲在該第一存儲空間中,而該第二存儲空間可寄存該第一信息于其中。9.一種數(shù)據存儲系統(tǒng),包含有一存取系統(tǒng);以及一處理器,耦接于該存取系統(tǒng),用來處理一數(shù)據串流的存取,將該數(shù)據串流存儲到該存取系統(tǒng)中,紀錄該數(shù)據串流在該存取系統(tǒng)中所使用的叢集編號以建立一叢集鏈接,并在該數(shù)據串流被完全存儲在該存取系統(tǒng)之前,另存儲包含有該叢集鏈接中的一第一特定節(jié)點編號以及該第一特定節(jié)點所對應的下一叢集編號的一第一信息。10.如權利要求9所述的系統(tǒng),其中,該處理器更將該第一特定節(jié)點的內容設為文件結尾。11.如權利要求IO所述的系統(tǒng),其中,該處理器更在該數(shù)據串流被完全存儲于該存取系統(tǒng)之前,存儲包含有該叢集鏈接中的一第二特定節(jié)點編號以及該第二特定節(jié)點所對應的下一叢集編號的第二信息于該存取系統(tǒng)中,以及將該第二特定節(jié)點的內容設為文件結尾。12.如權利要求11所述的系統(tǒng),其中,該叢集鏈接至少包含一個文件結尾。13.如權利要求9所述的系統(tǒng),其中,該存取系統(tǒng)配置有一第一存儲空間以及一第二存儲空間,而該處理器將該數(shù)據串流存儲在該第一存儲空間中,以及將該第一信息暫時存儲在該第二存儲空間中。14.如權利要求9所述的系統(tǒng),其中,該第一存儲空間位于一可移除式裝置中。全文摘要本發(fā)明提供一種數(shù)據存儲系統(tǒng)及其存儲方法,可在正在存儲的實時性數(shù)據串流不正常中斷時,對已存儲的數(shù)據串流進行讀取或藉由刪除文件釋放已存儲的數(shù)據串流所占用的空間。該存儲方法包含有提供一存儲空間,接收一數(shù)據串流,將該數(shù)據串流以叢集鏈接的方式存儲至該存儲空間中,以及在該數(shù)據串流被完全存儲在該存儲空間之前,存儲包含有該叢集鏈接中的一特定節(jié)點編號以及該特定節(jié)點所對應的下一叢集編號的信息,并將該特定節(jié)點的內容設為文件結尾。文檔編號G06F17/30GK101566992SQ20081009549公開日2009年10月28日申請日期2008年4月24日優(yōu)先權日2008年4月24日發(fā)明者王惠萱,郭哲宏申請人:揚智科技股份有限公司