專利名稱:具有數(shù)據(jù)臨時(shí)保護(hù)功能的存儲裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明提供一種具有數(shù)據(jù)臨時(shí)保護(hù)功能的存儲裝置及方法。
背景技術(shù):
各種移動存儲設(shè)備如閃存盤、移動硬盤等,由于其便攜性,人們 越來越多的使用其作為數(shù)據(jù)交換的介質(zhì)。在使用移動存儲設(shè)備時(shí),電 腦開啟移動存儲設(shè)備中的文件至內(nèi)存中進(jìn)行編輯,在編輯過程中產(chǎn)生 的臨時(shí)數(shù)據(jù)將存放在內(nèi)存中。當(dāng)該臨時(shí)數(shù)據(jù)尚未保存至該文件時(shí),如 果遇到移動存儲設(shè)備與電腦的連接異常斷開的情況,如斷電、電腦死 機(jī)、未卸載移動存儲裝置即人為的將其拔掉等,則編輯所產(chǎn)生的臨時(shí) 數(shù)據(jù)將丟失,無法保存至文件中,用戶花費(fèi)了大量精力及時(shí)間進(jìn)行的 編輯操作也將白費(fèi),如果數(shù)據(jù)十分重要,很可能給用戶帶來巨大的經(jīng) 濟(jì)損失。為了解決上述問題, 一些應(yīng)用軟件本身提供了定時(shí)自動保存 的功能,其每過一段時(shí)間,自動對編輯的內(nèi)容進(jìn)行保存,通過此方法 可在一定程度上降低數(shù)據(jù)丟失的機(jī)率,但仍有可能因未及時(shí)保存而造 成數(shù)據(jù)丟失。
發(fā)明內(nèi)容
有鑒于此,有必要提供一種存儲裝置及數(shù)據(jù)臨時(shí)保護(hù)方法,其可 自動存儲編輯一文件過程中產(chǎn)生的臨時(shí)數(shù)據(jù),并在存儲裝置與主機(jī)連 接出現(xiàn)異常中斷后再次連接時(shí),自動恢復(fù)至連接斷開之前的編輯狀態(tài)。 該存儲裝置包括一用于連接一主機(jī)的接口單元, 一用于存儲文件 及一記錄表的存儲單元, 一數(shù)據(jù)暫存單元及一微處理單元。其中,該 微處理單元包括一存儲控制模塊、 一記錄控制模塊、 一暫存控制模塊 及一恢復(fù)控制模塊。該存儲控制模塊用于控制該存儲單元及該數(shù)據(jù)暫
存單元進(jìn)4亍讀寫及擦除操作。當(dāng)所述主才幾調(diào)用一應(yīng)用考呈序開啟所述存 儲單元中的 一 文件進(jìn)行編輯時(shí),該暫存控制模塊從該主機(jī)的內(nèi)存中查 找用于存放該應(yīng)用程序運(yùn)行時(shí)所需相關(guān)數(shù)據(jù)、該文件的存儲地址及因 編輯該文件所產(chǎn)生的臨時(shí)文件的一編輯區(qū)域,讀取該編輯區(qū)域中的數(shù) 據(jù),控制該存儲控制模塊將所讀取的數(shù)據(jù)寫入該數(shù)據(jù)暫存單元,生成 一編輯區(qū)域鏡像文件,并當(dāng)該編輯區(qū)域中的數(shù)據(jù)變動時(shí)實(shí)時(shí)更新該鏡 像文件。該記錄控制模塊控制所述記錄表產(chǎn)生一對應(yīng)于開啟文件的記 錄,記錄的內(nèi)容為所述鏡像文件名稱及其在該數(shù)據(jù)暫存單元中的存儲 位置。該暫存控制模塊判斷該文件是否正常關(guān)閉,當(dāng)該文件正常關(guān)閉 時(shí),該暫存控制模塊從該數(shù)據(jù)暫存單元中刪除該文件對應(yīng)的鏡像文件, 該記錄控制模塊從該記錄表中刪除該文件對應(yīng)的記錄。當(dāng)該存儲裝置 與該主機(jī)連接時(shí),所述恢復(fù)控制模塊在該記錄表中查找記錄,如果所 述恢復(fù)控制模塊在該記錄表中查找到記錄,該恢復(fù)控制模塊控制存儲 控制模塊根據(jù)該條記錄對應(yīng)的存儲位置讀取該鏡像文件,并將該鏡像 文件調(diào)入該主才幾的內(nèi)存中。
所述數(shù)據(jù)臨時(shí)保護(hù)方法,用于一存儲裝置,該存儲裝置包括一用 于存儲文件的存儲單元,該存儲單元提供一數(shù)據(jù)暫存單元,該方法包
括步驟該主機(jī)調(diào)用一應(yīng)用程序讀取所述存儲單元中的一文件進(jìn)行編 輯;從該主機(jī)的內(nèi)存中查找用于存放該應(yīng)用程序運(yùn)行時(shí)所需相關(guān)數(shù)據(jù)、 該文件存儲地址及因編輯該文件所產(chǎn)生的臨時(shí)文件的編輯區(qū)域;將該 編輯區(qū)域中的數(shù)據(jù)復(fù)制至該數(shù)據(jù)暫存單元,生成一鏡像文件;在一記 錄表中建立一記錄,該記錄包括所述鏡像文件的名稱及其存儲位置; 當(dāng)該編輯區(qū)域中的數(shù)據(jù)被更新時(shí)實(shí)時(shí)更新該鏡像文件;當(dāng)該文件被正 常關(guān)閉時(shí),該存儲裝置從該數(shù)據(jù)暫存單元中刪除該文件對應(yīng)的鏡像文 件,并從該記錄表中刪除該文件對應(yīng)的記錄;該存儲裝置與該主機(jī)斷 開連接后再次連接時(shí),自動在該記錄表中查找記錄,并從所查找到的 記錄對應(yīng)的鏡像文件存儲位置中讀取該鏡像文件;及將該鏡像文件調(diào) 入該主才幾的內(nèi)存中。
相較于現(xiàn)有技術(shù),通過使用該存儲裝置及方法,可將在編輯文件 時(shí)產(chǎn)生的臨時(shí)數(shù)據(jù)保存起來,在出現(xiàn)異常后將編輯數(shù)據(jù)恢復(fù),可避免數(shù)據(jù)的丟失,從而減少損失。
圖1是本發(fā)明第一實(shí)施方式存儲裝置的硬件架構(gòu)圖。
圖2是本發(fā)明存儲裝置作業(yè)示意圖。
圖3是本發(fā)明第二實(shí)施方式存儲裝置的硬件架構(gòu)圖。
圖4是本發(fā)明數(shù)據(jù)臨時(shí)保護(hù)方法存儲數(shù)據(jù)過程的流程圖。
圖5是本發(fā)明數(shù)據(jù)臨時(shí)保護(hù)方法恢復(fù)數(shù)據(jù)過程的流程圖。
圖6是本發(fā)明第三實(shí)施方式存儲裝置的硬件架構(gòu)圖。
具體實(shí)施例方式
如圖1所示,是本發(fā)明第一實(shí)施方式存儲裝置的硬件架構(gòu)圖。一 存儲裝置l,其包括一接口單元2、 一微處理單元3、 一數(shù)據(jù)暫存單元 4及一存儲單元7。該接口單元2用于與一主4幾IO連接進(jìn)行數(shù)據(jù)傳輸。 該存儲單元7用于存儲文件及一記錄表。
所述微處理單元3包括一記錄控制模塊31、 一暫存控制模塊32、 一恢復(fù)控制模塊33及一存儲控制模塊34。該存儲控制模塊34用于控 制該存儲單元7及數(shù)據(jù)暫存單元4進(jìn)行讀寫及擦除操作。
請一并參照圖2,該存儲單元7存儲多個(gè)文件,如一文件a、 一文 件b、 一文件c及一記錄表70。當(dāng)主機(jī)10調(diào)用一應(yīng)用程序X開啟該文 件a進(jìn)行編輯時(shí),該主機(jī)IO將該應(yīng)用程序X運(yùn)行時(shí)所需的相關(guān)數(shù)據(jù)調(diào) 入內(nèi)存11的應(yīng)用程序X存放區(qū)41中,將該文件a的存儲地址等相關(guān) 信息調(diào)入內(nèi)存11的文件a信息存放區(qū)43中,并將在編輯該文件a的 過程中所產(chǎn)生的臨時(shí)文件放置于臨時(shí)文件a存放區(qū)42中。該應(yīng)用程序 X存》文區(qū)41、文件a信息存放區(qū)43及臨時(shí)文件a,存放區(qū)42統(tǒng)稱為該 開啟文件a的編輯區(qū)域A。
所述暫存控制模塊32從該主機(jī)IO的內(nèi)存11中查找所述編輯區(qū)域 A的存放地址,讀取該編輯區(qū)域A中的數(shù)據(jù),并控制該存儲控制模塊 34將所讀取的數(shù)據(jù)寫入該數(shù)據(jù)暫存單元4(在本發(fā)明第一實(shí)施方式中,
該數(shù)據(jù)暫存單元4為一獨(dú)立的非易失性存儲介質(zhì),如閃存;而在如圖 3所示的本發(fā)明第二實(shí)施方式中,該數(shù)據(jù)暫存單元4也可為存儲單元7 中的一存儲區(qū)域),生成編輯區(qū)域A的鏡像文件A401,當(dāng)該編輯區(qū)域 A中的數(shù)據(jù)變動時(shí)或每達(dá)到一周期時(shí)間時(shí),該暫存控制模塊32實(shí)時(shí)讀 取變動的數(shù)據(jù),更新該鎮(zhèn) 像文件A401。
如果該電腦IO調(diào)用一應(yīng)用程序Y開啟文件b,則同前所述,暫存 控制才莫塊32從該主機(jī)10的內(nèi)存11中查找應(yīng)用程序Y存放區(qū)51、文 件b信息存放區(qū)53及臨時(shí)文件^存放區(qū)52所組成的編輯區(qū)域B的存 放地址,讀取該編輯區(qū)域B中的數(shù)據(jù),并控制該存儲控制模塊34將所 讀取的數(shù)據(jù)寫入該數(shù)據(jù)暫存單元4,生成編輯區(qū)域B的鏡像文件B 402, 當(dāng)該編輯區(qū)域B中的數(shù)據(jù)變動時(shí)或每達(dá)到一周期時(shí)間時(shí),該暫存控制 才莫塊32實(shí)時(shí)讀取變動的數(shù)據(jù),更新該鎮(zhèn):像文件B 402。
該電腦10每開啟該存儲單元7中一文件時(shí),所述記錄控制4莫塊 31控制所述記錄表70產(chǎn)生一條記錄,該記錄的內(nèi)容為所述鏡像文件 的名稱及其在該數(shù)據(jù)暫存單元4中的存儲位置。例如,根據(jù)上述的例 子,記錄表70中有兩條記錄分別對應(yīng)于所開啟的文件a及文件b。
該暫存控制模塊32判斷該文件b是否正常關(guān)閉,即該文件b是否 通過正常操作進(jìn)行關(guān)閉,而非因斷電、進(jìn)程死鎖等造成的異常結(jié)束。 如果該文件b正常關(guān)閉,主機(jī)10控制內(nèi)存11釋》文編輯區(qū)域B的所有 存儲空間,此時(shí),該暫存控制模塊32控制該數(shù)據(jù)暫存單元4刪除該文 件b對應(yīng)的鏡像文件B 402,該記錄控制模塊31從該記錄表70中刪除 該文件b對應(yīng)的序號為2的記錄。如果文件b未正常關(guān)閉,主機(jī)10與 該存儲裝置l發(fā)生異常斷開連接,則該數(shù)據(jù)暫存單元4及該記錄表70 將保留在斷開連接之前的存儲狀態(tài)。
當(dāng)該存儲裝置1每次與該主機(jī)10的連接時(shí),所述恢復(fù)控制模塊 33從該記錄表70中查找是否有記錄存在?,F(xiàn)假設(shè)在編輯文件a時(shí),該 主機(jī)10與該存儲裝置1的連接異常斷開,則該恢復(fù)控制模塊33查找 獲得序號為1的記錄,并控制存儲控制模塊34根據(jù)該條記錄對應(yīng)的存 儲位置讀取該鏡像文件A 401,將該鏡像文件A 401調(diào)入該主機(jī)10的 內(nèi)存ll中,此時(shí),該主機(jī)10將恢復(fù)至在斷開連接之前對該文件a的編輯狀態(tài),所有已經(jīng)修改但未保存的數(shù)據(jù)也將存在于內(nèi)存中,故用戶 可對未保存的編輯數(shù)據(jù)進(jìn)行保存。
如圖4所示,是本發(fā)明數(shù)據(jù)臨時(shí)保護(hù)方法存儲數(shù)據(jù)過程的流程圖。 在該流程中以文件a為例,該流程包括步驟該主機(jī)10調(diào)用一應(yīng)用程 序X開啟所述存儲單元7中的該文件a進(jìn)行編輯(步驟S101 )。暫存 控制模塊32從該主機(jī)10的內(nèi)存11中查找編輯區(qū)域A的地址(步驟 S102)。暫存控制模塊32讀取該編輯區(qū)域A中的數(shù)據(jù),并控制存儲控 制模塊34將所讀取的數(shù)據(jù)寫入該數(shù)據(jù)暫存單元4,生成一鏡像文件A 401 (步驟S103)。記錄控制模塊31控制所述記錄表70產(chǎn)生一記錄, 該記錄的內(nèi)容為所述鏡像文件A401的名稱及其在該數(shù)據(jù)暫存單元4 中的存儲位置(步驟S104)。當(dāng)該編輯區(qū)域A中的數(shù)據(jù)變動時(shí)或每達(dá) 到一周期時(shí)間時(shí),該暫存控制模塊32實(shí)時(shí)更新該鏡像文件A401 (步 驟S105 )。該暫存控制模塊32判斷該文件a是否正常關(guān)閉(步驟S106)。 如果步驟S106的判斷結(jié)果為是,則流程轉(zhuǎn)至步驟S107;如果步驟S106 的判斷結(jié)果為否,則流程結(jié)束。該暫存控制模塊32控制該數(shù)據(jù)暫存單 元4刪除該文件a對應(yīng)的鏡像文件A 401,該記錄控制纟莫塊31從該記 錄表70中刪除該文件對應(yīng)的序號為1的記錄(步驟S107)。
如圖5所示,是本發(fā)明數(shù)據(jù)臨時(shí)保護(hù)方法恢復(fù)數(shù)據(jù)過程的流程圖。 該流程包括步驟該裝置1與該主機(jī)10的連接斷開后再次連接(步驟 S108 )?;謴?fù)控制模塊33從該記錄表70中查找是否有記錄存在(步驟 S109)。如果步驟S109的查找結(jié)果為是,則流程轉(zhuǎn)至步驟S110;如果 步驟S109的查找結(jié)果為否,則流程結(jié)束?;謴?fù)控制模塊33控制存儲 控制模塊34根據(jù)該條記錄對應(yīng)的存儲位置讀取該鏡像文件A401 (步 驟S110)?;謴?fù)控制模塊33將該鏡像文件A401調(diào)入該主機(jī)10的內(nèi)存 11中(步驟Sill )。
如圖6所示,是本發(fā)明第三實(shí)施方式的硬件架構(gòu)圖。該實(shí)施方式 與前述第一實(shí)施方式的不同之處在亍所述數(shù)據(jù)暫存單元4為一易失 性存儲介質(zhì),如隨機(jī)訪問存儲(RAM),此種存儲介質(zhì)在斷電后其存儲 內(nèi)容將消失,但其優(yōu)點(diǎn)是讀寫速度較一般非易失性存儲介質(zhì)快。
該存儲裝置1還包括一電源管理單元5及一供電單元6,該存儲
裝置1與主機(jī)IO正常連接時(shí),該電源管理單元5由外部取得電能(如 通過接口單元2取得主機(jī)的電能),給存儲裝置1的元件進(jìn)行供電,并 控制該供電單元6充電。當(dāng)該存儲裝置1與主機(jī)IO在出現(xiàn)異常斷開連 接時(shí),該電源管理單元5控制該供電單元6為該存儲裝置1供電,該 暫存控制模塊32將數(shù)據(jù)暫存單元4中的所述鏡像文件A401存儲至該 存儲單元7,所述記錄控制模塊31將記錄所述鏡像文件A401的名稱 及其在該存儲單元7中的存儲位置。在完成上述操作后,該電源管理 單元5關(guān)閉該存儲裝置1。
因在第三實(shí)施方式中采用了讀寫速度較快的易失性存儲介質(zhì),所 以能更及時(shí)的將內(nèi)存中變更的數(shù)據(jù)存儲到數(shù)據(jù)暫存單元中,能更有效 的避免因發(fā)生異常斷開連接所造成的數(shù)據(jù)丟失。
權(quán)利要求
1.一種存儲裝置,其包括一用于連接一主機(jī)的接口單元,一用于存儲文件的存儲單元,及一微處理單元;該微處理單元包括一用于控制該存儲單元進(jìn)行讀寫及擦除操作的存儲控制模塊,其特征在于所述存儲單元中還存儲一記錄表;該存儲裝置還包括一數(shù)據(jù)暫存單元;所述存儲控制模塊還控制該數(shù)據(jù)暫存單元進(jìn)行讀寫及擦除操作;所述微處理單元還包括一記錄控制模塊、一暫存控制模塊及一恢復(fù)控制模塊;當(dāng)所述主機(jī)調(diào)用一應(yīng)用程序開啟所述存儲單元中的一文件進(jìn)行編輯時(shí),該暫存控制模塊從該主機(jī)的內(nèi)存中查找用于存放該應(yīng)用程序運(yùn)行時(shí)所需相關(guān)數(shù)據(jù)、該文件的存儲地址及因編輯該文件所產(chǎn)生的臨時(shí)文件的一編輯區(qū)域,讀取該編輯區(qū)域中的數(shù)據(jù),控制該存儲控制模塊將所讀取的數(shù)據(jù)寫入該數(shù)據(jù)暫存單元,生成一編輯區(qū)域鏡像文件,并當(dāng)該編輯區(qū)域中的數(shù)據(jù)變動或每達(dá)到一周期時(shí)間時(shí),實(shí)時(shí)更新該鏡像文件;該記錄控制模塊控制所述記錄表產(chǎn)生一對應(yīng)于開啟文件的記錄,記錄的內(nèi)容為鏡像文件名稱及其在該數(shù)據(jù)暫存單元中的存儲位置;該暫存控制模塊判斷該文件是否正常關(guān)閉,當(dāng)該文件正常關(guān)閉時(shí),該暫存控制模塊從該數(shù)據(jù)暫存單元中刪除該文件對應(yīng)的鏡像文件,該記錄控制模塊從該記錄表中刪除該文件對應(yīng)的記錄;當(dāng)該存儲裝置與該主機(jī)連接時(shí),所述恢復(fù)控制模塊在該記錄表中查找記錄,如果所述恢復(fù)控制模塊在該記錄表中查找到有記錄存在,該恢復(fù)控制模塊控制存儲控制模塊根據(jù)該條記錄對應(yīng)的存儲位置讀取鏡像文件,并將該鏡像文件調(diào)入該主機(jī)的內(nèi)存中。
2. 如權(quán)利要求1所述的存儲裝置,其特征在于,所述數(shù)據(jù)暫存單 元為所述存儲單元中的一存儲區(qū)域。
3. 如權(quán)利要求1所述的存儲裝置,其特征在于,所述數(shù)據(jù)暫存單 元為一易失性存儲介質(zhì)。
4. 如杈利要求3所迷的存儲裝置,其特征在子,該存儲裴置還包 括一電源管理單元及一供電單元,該存儲裝置與主機(jī)正常連接時(shí),該 電源管理單元控制該供電單元充電;當(dāng)該存儲裝置與主機(jī)斷開連接后, 該電源管理單元控制該供電單元為該存儲裝置供電,該暫存控制模塊 將數(shù)據(jù)暫存單元中的所述鏡像文件存儲至該存儲單元后,該電源管理 單元關(guān)閉該存儲裝置。
5. —種數(shù)據(jù)臨時(shí)保護(hù)方法,用于一存儲裝置,該存儲裝置包括一 用于存儲文件的存儲單元,該存儲單元提供一數(shù)據(jù)暫存單元,其特征 在于,該方法包括步驟該主機(jī)調(diào)用一應(yīng)用程序讀取所述存儲單元中的一文件進(jìn)行編輯; 從該主機(jī)的內(nèi)存中查找用于存放該應(yīng)用程序運(yùn)行時(shí)所需相關(guān)數(shù)據(jù)、該文件存儲地址及因編輯該文件所產(chǎn)生的臨時(shí)文件的編輯區(qū)域; 將該編輯區(qū)域中的數(shù)據(jù)復(fù)制至該數(shù)據(jù)暫存單元,生成一鏡像文件; 在一記錄表中建立一記錄,該記錄包括所述鏡像文件的名稱及其存儲位置;當(dāng)該編輯區(qū)域中的數(shù)據(jù)被更新時(shí)實(shí)時(shí)更新該鏡像文件;當(dāng)該文件被正常關(guān)閉時(shí),該存儲裝置從該數(shù)據(jù)暫存單元中刪除該 文件對應(yīng)的鎮(zhèn) 像文件,并/人該記錄表中刪除該文件對應(yīng)的記錄;該存儲裝置與該主機(jī)斷開連接后再次連接時(shí),自動在該記錄表中 查找記錄,并從所查找到的記錄對應(yīng)的鏡像文件存儲位置中讀取該鏡 像文件;及將該鏡4象文件調(diào)入該主才幾的內(nèi)存中。
6. 如權(quán)利要求5所述的數(shù)據(jù)臨時(shí)保護(hù)方法,其中,該存儲單元提 供一電源管理單元及一供電單元,該方法還包括步驟該存儲裝置與主機(jī)正常連接時(shí),該電源管理單元接收主機(jī)的電力 給該供電單元充電;當(dāng)該裝置與主機(jī)斷開連接后,該電源管理單元控制該供電單元為 該存儲裝置供電;暫存控制模塊將數(shù)據(jù)暫存單元中的鏡像文件存儲至該存儲單元;該電源管理單元關(guān)閉該存儲裝置。
全文摘要
本發(fā)明提供一種具有數(shù)據(jù)臨時(shí)保護(hù)功能的存儲裝置及方法。該方法包括步驟主機(jī)調(diào)用一應(yīng)用程序編輯一文件;從主機(jī)內(nèi)存中查找用于存放應(yīng)用程序相關(guān)數(shù)據(jù)、文件相關(guān)信息及編輯文件產(chǎn)生的臨時(shí)文件的編輯區(qū)域;在一記錄表中建立一記錄,記錄包括鏡像文件的名稱及存儲位置;將編輯區(qū)域中的數(shù)據(jù)復(fù)制至數(shù)據(jù)暫存單元,生成一鏡像文件;當(dāng)編輯區(qū)域中的數(shù)據(jù)被更新時(shí)實(shí)時(shí)更新鏡像文件;當(dāng)文件正常關(guān)閉時(shí),刪除文件對應(yīng)的鏡像文件及對應(yīng)的記錄;存儲裝置與主機(jī)斷開連接后再次連接時(shí),在記錄表中查找記錄,并從記錄對應(yīng)的所述鏡像文件的存儲位置中讀取鏡像文件;將鏡像文件調(diào)入主機(jī)的內(nèi)存中。
文檔編號G06F11/14GK101187887SQ200610156848
公開日2008年5月28日 申請日期2006年11月15日 優(yōu)先權(quán)日2006年11月15日
發(fā)明者喻志華, 莊宗仁, 翁世芳 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司