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