国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      適用于存儲(chǔ)裝置的編碼操作的進(jìn)度記錄方法和恢復(fù)方法

      文檔序號(hào):6379578閱讀:138來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):適用于存儲(chǔ)裝置的編碼操作的進(jìn)度記錄方法和恢復(fù)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種進(jìn)度記錄方法和恢復(fù)方法,且特別涉及一種適用于存儲(chǔ)裝置的編碼操作的進(jìn)度記錄方法和恢復(fù)方法。
      背景技術(shù)
      硬盤(pán)可說(shuō)是計(jì)算機(jī)必備的存儲(chǔ)裝置,從筆記型計(jì)算機(jī)、桌上型計(jì)算機(jī)到專(zhuān)業(yè)級(jí)的服務(wù)器,都需要硬盤(pán)來(lái)存儲(chǔ)大量數(shù)據(jù)。一般的硬盤(pán)會(huì)劃分為一或多個(gè)存儲(chǔ)區(qū)(partition或volume),每一個(gè)存儲(chǔ)區(qū)可用來(lái)安裝操作系統(tǒng)(operatingsystem),也可以用來(lái)存儲(chǔ)數(shù)據(jù)。
      對(duì)于硬盤(pán)的存儲(chǔ)區(qū),除了一般的讀取數(shù)據(jù)和寫(xiě)入數(shù)據(jù)的操作以外,也可進(jìn)行加密(encryption)、解密(decryption)、重加密和反向重加密等編碼操作。上述的加密操作必須設(shè)定相對(duì)應(yīng)的密碼。加密操作可將存儲(chǔ)區(qū)中的數(shù)據(jù)從明文轉(zhuǎn)換為密文,以保護(hù)上述數(shù)據(jù),而解密操作可將存儲(chǔ)區(qū)中的數(shù)據(jù)從密文轉(zhuǎn)回加密之前的明文。上述的重加密操作是在更換密碼時(shí),先將存儲(chǔ)區(qū)中的密文數(shù)據(jù)用舊密碼解密,然后用新密碼加密。反向重加密操作則是在暫停重加密操作后,對(duì)重加密過(guò)的密文數(shù)據(jù)用新密碼解密,然后用舊密碼加密,使存儲(chǔ)區(qū)中的密文數(shù)據(jù)恢復(fù)到重加密之前的狀態(tài)。大型服務(wù)器的硬盤(pán)通常存儲(chǔ)大量數(shù)據(jù),一次加密操作可能需要數(shù)天才能完成,導(dǎo)致斷電等意外發(fā)生的機(jī)率大增。如果在加密操作中發(fā)生斷電等意外,可能發(fā)生存儲(chǔ)區(qū)中的數(shù)據(jù)損壞、丟失或?qū)е抡麄€(gè)存儲(chǔ)區(qū)無(wú)法再存取等問(wèn)題。上述的傳統(tǒng)編碼操作會(huì)在存儲(chǔ)區(qū)中設(shè)置一個(gè)標(biāo)頭(header),用來(lái)存儲(chǔ)一個(gè)表示編碼操作的進(jìn)度的偏移量(offset)。上述偏移量是每次完成一定數(shù)量的數(shù)據(jù)編碼時(shí)更新一次,例如每次完成32MB (megabytes)的數(shù)據(jù)編碼時(shí)更新一次。但即使如此也不能有效避免斷電所導(dǎo)致的數(shù)據(jù)損壞等問(wèn)題。例如圖I所示,圖I是一個(gè)硬盤(pán)存儲(chǔ)區(qū)100的編碼操作示意圖。存儲(chǔ)區(qū)100的標(biāo)頭120存儲(chǔ)上述的偏移量,這個(gè)偏移量是每次完成b位元(bytes)的數(shù)據(jù)編碼時(shí)更新一次。編碼操作是以從偏移量S到偏移量O的方向進(jìn)行,其中b和S都是預(yù)設(shè)常數(shù)。當(dāng)編碼操作進(jìn)行到偏移量為S-b的位置時(shí),會(huì)更新標(biāo)頭120存儲(chǔ)的偏移量。如果不發(fā)生意外,當(dāng)編碼操作進(jìn)行到偏移量為S-2b的位置時(shí),會(huì)再次更新標(biāo)頭120存儲(chǔ)的偏移量。但如果在編碼操作進(jìn)行到偏移量為P的位置時(shí)發(fā)生斷電,而且在復(fù)電后根據(jù)標(biāo)頭120的記錄,從偏移量為S-b的位置繼續(xù)編碼操作,則偏移量從S-b到P的數(shù)據(jù)會(huì)被編碼兩次,造成數(shù)據(jù)損壞。

      發(fā)明內(nèi)容
      本發(fā)明提供一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法和恢復(fù)方法??稍跀嚯姷纫馔庵笳_恢復(fù)存儲(chǔ)區(qū)的數(shù)據(jù)與先前的編碼操作,避免數(shù)據(jù)損壞、丟失以及存儲(chǔ)區(qū)無(wú)法再存取等問(wèn)題。本發(fā)明提出一種進(jìn)度記錄方法,適用于一存儲(chǔ)裝置的一存儲(chǔ)區(qū)的一編碼操作,此進(jìn)度記錄方法包括下列步驟初始化并存儲(chǔ)一變量集合,其中上述編碼操作包括多個(gè)子操作,每一上述子操作對(duì)應(yīng)變量集合其中至少一標(biāo)記變量,上述標(biāo)記變量用以記錄上述子操作的執(zhí)行進(jìn)度;以及在執(zhí)行每一上述子操作時(shí),根據(jù)子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的變量集合中對(duì)應(yīng)的標(biāo)記變量。在本發(fā)明的一實(shí)施例中,上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量其中的一第一標(biāo)記變量和一第二標(biāo)記變量,而且根據(jù)子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的標(biāo)記變量的步驟包括根據(jù)該子操作的下一次執(zhí)行之后的進(jìn)度更新第一標(biāo)記變量,此時(shí)第一標(biāo)記變量不等于第二標(biāo)記變量;執(zhí)行該子操作;以及根據(jù)該子操作的上述執(zhí)行之后的進(jìn)度更新第二標(biāo)記變量,此時(shí)第一標(biāo)記變量等于第二標(biāo)記變量。在本發(fā)明的一實(shí)施例中,上述的編碼操作包括一備份子操作,而且備份子操作在對(duì)應(yīng)第一標(biāo)記變量和第二標(biāo)記變量的上述子操作執(zhí)行之前,在不同于上述存儲(chǔ)區(qū)的另一存儲(chǔ)區(qū)備份上述存儲(chǔ)區(qū)的數(shù)據(jù)。 本發(fā)明另提出一種恢復(fù)方法,適用于上述編碼操作,包括下列步驟讀取上述的變量集合;根據(jù)變量集合判斷上述編碼操作的子操作之中是否有中斷;如果上述子操作之中有中斷,則根據(jù)中斷的子操作所對(duì)應(yīng)的標(biāo)記變量恢復(fù)中斷的子操作;以及根據(jù)上述變量集合的上述標(biāo)記變量所記錄的進(jìn)度繼續(xù)執(zhí)行上述編碼操作。在本發(fā)明的一實(shí)施例中,上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量其中的一第一標(biāo)記變量和一第二標(biāo)記變量,而且恢復(fù)上述編碼操作的步驟包括若第一標(biāo)記變量不等于第二標(biāo)記變量,則將第一標(biāo)記變量設(shè)定為等于第二標(biāo)記變量。在本發(fā)明的一實(shí)施例中,上述編碼操作包括一備份子操作,此備份子操作在對(duì)應(yīng)第一標(biāo)記變量和第二標(biāo)記變量的上述子操作執(zhí)行之前,在不同于上述存儲(chǔ)區(qū)的另一存儲(chǔ)區(qū)備份上述存儲(chǔ)區(qū)的數(shù)據(jù),而且恢復(fù)上述編碼操作的步驟還包括使用上述存儲(chǔ)區(qū)的上述備份數(shù)據(jù),恢復(fù)存儲(chǔ)區(qū)中位于第一標(biāo)記變量和第二標(biāo)記變量所定義的區(qū)段的數(shù)據(jù)?;谏鲜?,本發(fā)明使用編碼操作的子操作所對(duì)應(yīng)的標(biāo)記變量記錄子操作的執(zhí)行進(jìn)度,并且在必要時(shí)備份存儲(chǔ)區(qū)中的數(shù)據(jù),所以能在發(fā)生斷電等意外事件后恢復(fù)并繼續(xù)執(zhí)行原先的編碼操作。為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說(shuō)明如下。


      圖I是已知的一種存儲(chǔ)裝置其中的一個(gè)存儲(chǔ)區(qū)的一種加密操作的示意圖。圖2是依照本發(fā)明一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法的流程圖。圖3是依照本發(fā)明一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的恢復(fù)方法的流程圖。圖4是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法的流程圖。圖5是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的恢復(fù)方法的流程圖。圖6是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法的流程圖。圖7是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的恢復(fù)方法的流程圖。主要元件符號(hào)說(shuō)明100 :存儲(chǔ)裝 置的存儲(chǔ)區(qū)120 :標(biāo)頭220 240、320 380、410 490、510 570、605 655、705 760 :流程步驟0、S-2b、p、S_b、S :偏移量
      具體實(shí)施例方式圖2是依照本發(fā)明一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法的流程圖。上述存儲(chǔ)裝置可以是任何非易失性(nonvolatile)存儲(chǔ)裝置,例如快閃存儲(chǔ)器(flash memory)、存儲(chǔ)卡或硬盤(pán)。上述編碼操作可以是前述的加密、解密、重加密或反向重加密。上述編碼操作可包括多個(gè)子操作。為了在發(fā)生斷電、系統(tǒng)故障或人為錯(cuò)誤操作等意外事件后恢復(fù)并繼續(xù)執(zhí)行編碼操作,可將每個(gè)子操作對(duì)應(yīng)到一個(gè)或多個(gè)標(biāo)記變量,用來(lái)記錄對(duì)應(yīng)的子操作的執(zhí)行進(jìn)度,這些標(biāo)記變量可構(gòu)成一個(gè)變量集合。此變量集合可存儲(chǔ)在進(jìn)行上述編碼操作的存儲(chǔ)區(qū),或存儲(chǔ)在不同于上述存儲(chǔ)區(qū)的另一個(gè)存儲(chǔ)區(qū)。變量集合可用文件形式存儲(chǔ)在不同于上述存儲(chǔ)區(qū)的另一個(gè)存儲(chǔ)區(qū),或獨(dú)立于文件系統(tǒng)之外,直接存儲(chǔ)在所屬存儲(chǔ)區(qū)或不同于所屬存儲(chǔ)區(qū)的另一個(gè)存儲(chǔ)區(qū)的某一特定區(qū)域。以下說(shuō)明圖2的進(jìn)度記錄方法的流程。在步驟220,初始化并存儲(chǔ)上述的變量集合。在步驟240,在執(zhí)行編碼操作的每一個(gè)子操作時(shí),根據(jù)該子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的變量集合中該子操作所對(duì)應(yīng)的標(biāo)記變量。如此,上述的變量集合隨時(shí)反映編碼操作的執(zhí)行進(jìn)度,如果有意外發(fā)生而使編碼操作中斷,上述變量集合可作為恢復(fù)與繼續(xù)執(zhí)行編碼操作的依據(jù)。圖3是依照本發(fā)明一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的恢復(fù)方法的流程圖。圖3的恢復(fù)方法對(duì)應(yīng)圖2的進(jìn)度記錄方法,可在斷電等意外事件導(dǎo)致編碼操作中斷之后執(zhí)行。在步驟320,讀取上述的變量集合。在步驟340,根據(jù)變量集合判斷編碼操作的子操作之中是否有中斷。如果有中斷的子操作,則在步驟360根據(jù)中斷的子操作所對(duì)應(yīng)的標(biāo)記變量恢復(fù)中斷的上述子操作。上述的恢復(fù)中斷的子操作是指將該子操作涉及的數(shù)據(jù)恢復(fù)到執(zhí)行該子操作之前的狀態(tài),或?qū)⒃撟硬僮魃婕暗臄?shù)據(jù)恢復(fù)成不受中斷而正確執(zhí)行該子操作之后的狀態(tài)。然后,在步驟380根據(jù)上述變量集合的標(biāo)記變量所記錄的進(jìn)度繼續(xù)執(zhí)行上述編碼操作。反之,如果在步驟340判斷出沒(méi)有中斷的子操作,表示編碼操作是在兩個(gè)子操作之間中斷,所以流程可跳過(guò)步驟360,直接進(jìn)入步驟380。圖4是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法的流程圖。本實(shí)施例的編碼操作主要有兩個(gè)子操作,分別是步驟430的數(shù)據(jù)備份和步驟470的寫(xiě)回編碼后的數(shù)據(jù)。步驟430的數(shù)據(jù)備份對(duì)應(yīng)一個(gè)標(biāo)記變量BackupSuccess,步驟470的寫(xiě)回編碼后的數(shù)據(jù)則對(duì)應(yīng)兩個(gè)標(biāo)記變量Noffset和Eoffset。編碼操作的子操作中,有一種是可重復(fù)執(zhí)行的,例如設(shè)定初始值,這種子操作不需要備份數(shù)據(jù)。有一種子操作不可重復(fù)執(zhí)行,例如某些編碼操作,重復(fù)執(zhí)行兩次的結(jié)果不同于僅執(zhí)行一次的結(jié)果,這種子操作需要先備份數(shù)據(jù)以供意外發(fā)生后的恢復(fù)之用。步驟470的子操作就屬于需要備份數(shù)據(jù)的那一種。以下說(shuō)明圖4的進(jìn)度記錄方法的流程。在步驟410,初始化并存儲(chǔ)一變量集合。此變量集合包括標(biāo)記變量BackupSuccess、Noffset和Eoffset,用于記錄編碼操作的執(zhí)行進(jìn)度。在步驟420,將已存儲(chǔ)的標(biāo)記變量BackupSuccess的數(shù)值設(shè)為O。在步驟430,備份即將進(jìn)行上述編碼操作的存儲(chǔ)區(qū)的數(shù)據(jù)。本實(shí)施例的備份數(shù)據(jù)存放在不同于進(jìn)行上述編碼操作的存儲(chǔ)區(qū)的另一個(gè)存儲(chǔ)區(qū)。備份數(shù)據(jù)可用文件形式存儲(chǔ)在上述的另一個(gè)存儲(chǔ)區(qū),或獨(dú)立于文件系統(tǒng)之外,直接存儲(chǔ)在上述的另一個(gè)存儲(chǔ)區(qū)的某一特定區(qū)域。然后在步驟440將已存儲(chǔ)的標(biāo)記變量BackupSuccess的數(shù)值設(shè)為I。對(duì)于標(biāo)記變量BackupSuccess,數(shù)值O表示對(duì)應(yīng)的子操作未完成,數(shù)值I則表示對(duì)應(yīng)的子操作已完成。在其他實(shí)施例中,可以用任意兩個(gè) 不同數(shù)值取代上述的O與I。在步驟450,讀取一段數(shù)據(jù)并加以編碼,上述編碼可以是上述的加密、解密、重加密或反向重加密。步驟450的編碼是以a為單位進(jìn)行,a是預(yù)設(shè)參數(shù),例如是2MB (megabyte)。步驟450的編碼可以從偏移量最大或最小的位置開(kāi)始,每次讀取長(zhǎng)度為a的一段數(shù)據(jù)并加以編碼。在步驟460,更新已存儲(chǔ)的標(biāo)記變量Noffset。如果步驟450的編碼是從偏移量最大的位置開(kāi)始,則上述更新是將Noffset減去a,以記錄步驟470的下一次執(zhí)行之后的進(jìn)度。如果步驟450的編碼是從偏移量最小的位置開(kāi)始,則上述更新是將Noffset加上a,以記錄步驟470的下一次執(zhí)行之后的進(jìn)度。此時(shí)標(biāo)記變量Noffset不等于標(biāo)記變量Eoffset。在步驟470,將上述編碼之后的數(shù)據(jù)寫(xiě)回存儲(chǔ)區(qū)。在步驟480,更新已存儲(chǔ)的標(biāo)記變量Eoffset。如果步驟450的編碼是從偏移量最大的位置開(kāi)始,則上述更新是將Eoffset減去a,以記錄步驟470的上述執(zhí)行之后的進(jìn)度。如果步驟450的編碼是從偏移量最小的位置開(kāi)始,則上述更新是將Eoffset加上a,以記錄步驟470的上述執(zhí)行之后的進(jìn)度。此時(shí)標(biāo)記變量Noffset等于標(biāo)記變量Eoffset。如果步驟450的編碼是從偏移量最大的位置開(kāi)始,則步驟450所讀取的,就是偏移量從Noffset到Noffset-a的一段數(shù)據(jù)。如果步驟450的編碼是從偏移量最小的位置開(kāi)始,則步驟450所讀取的,就是偏移量從Noffset到Noffset+a的一段數(shù)據(jù)。然后在步驟490,檢查存儲(chǔ)區(qū)中是否還有應(yīng)該編碼卻尚未編碼的數(shù)據(jù)。如果是,流程返回步驟450。如果不是,流程至此結(jié)束。圖5是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的恢復(fù)方法的流程圖。圖5的恢復(fù)方法對(duì)應(yīng)圖4的進(jìn)度記錄方法,可在斷電等意外事件導(dǎo)致編碼操作中斷之后執(zhí)行。以下說(shuō)明圖5的恢復(fù)方法的流程。在步驟510,自上述變量集合讀取標(biāo)記變量BackupSuccess。在步驟 520,檢查 BackupSuccess 的數(shù)值。如果 BackupSuccess 等于 I,表示步驟430的子操作已經(jīng)完成,流程進(jìn)入步驟530。如果BackupSuccess等于O,表示步驟430的子操作尚未完成就中斷,必須恢復(fù)步驟430的子操作,并繼續(xù)執(zhí)行上述的編碼操作。在此情況下,流程進(jìn)入步驟570,根據(jù)上述變量集合中的標(biāo)記變量所記錄的執(zhí)行進(jìn)度,繼續(xù)執(zhí)行上述編碼操作。這里的繼續(xù)執(zhí)行是回到步驟410,從頭執(zhí)行整個(gè)編碼操作,其中包括重新執(zhí)行步驟430,這樣可以恢復(fù)步驟430的子操作。在步驟530,自變量集合讀取標(biāo)記變量Noffset和Eoffset。在步驟540,檢查Noffset和Eoffset是否相等。如果相等,表示上述編碼操作并沒(méi)有中斷的子操作,所以流程進(jìn)入步驟570,根據(jù)上述變量集合中的標(biāo)記變量所記錄的執(zhí)行進(jìn)度,繼續(xù)執(zhí)行上述編碼操作。這里的繼續(xù)執(zhí)行是回到步驟490。反之,如果Noffset和Eoffset不相等,表示步驟470的子操作尚未完成就中斷,必須恢復(fù)步驟470的子操作,并繼續(xù)執(zhí)行上述的編碼操作。在此情況下,流程進(jìn)入步驟550,使用步驟430的備份數(shù)據(jù),恢復(fù)存儲(chǔ)區(qū)中位于Noffset和Eoffset所定義的區(qū)段的數(shù)據(jù),并且在步驟560修正Noff set,也就是將Noffset設(shè)定為等于Eoffset。如果步驟450的編碼是從偏移量最大的位置開(kāi)始,則Noffset和Eoffset所定義的區(qū)段就是偏移量從Noffset到Eoffset的數(shù)據(jù)。如果步驟450的編碼是從偏移量最小的位置開(kāi)始,則Noffset和Eoffset所定義的區(qū)段就是偏移量從Eoffset到Noffset的數(shù)據(jù)。步驟550和560是為了恢復(fù)步驟470的子操作。然后,在步驟570,根據(jù)上述變量集合中的標(biāo)記變量所記錄的執(zhí)行進(jìn)度,繼續(xù)執(zhí)行上述編碼操作。這里的繼續(xù)執(zhí)行是回到步驟450。圖6是依照本發(fā)明另一實(shí)施例的一種適用于存儲(chǔ)裝置的存儲(chǔ)區(qū)的編碼操作的進(jìn)度記錄方法的流程圖。本實(shí)施例的編碼操作包括四個(gè)主要子操作,分別是步驟610的初始化變量集合、步驟615的數(shù)據(jù)備份、步驟630的寫(xiě)回編碼后的數(shù)據(jù)、以及步驟645的更新存儲(chǔ)區(qū)標(biāo)頭。步驟610的初始化變量集合對(duì)應(yīng)一個(gè)標(biāo)記變量InitFlag,步驟615的數(shù)據(jù)備份對(duì)應(yīng)一個(gè)標(biāo)記變量BackupSuccess,步驟630的寫(xiě)回編碼后的數(shù)據(jù)對(duì)應(yīng)兩個(gè)標(biāo)記變量Noffset和Eoffset,步驟645的更新存儲(chǔ)區(qū)標(biāo)頭對(duì)應(yīng)一個(gè)標(biāo)記變量Uoffset。本實(shí)施例的進(jìn)度記錄方法會(huì)在不同于即將進(jìn)行編碼操作的存儲(chǔ)區(qū)的另一個(gè)存儲(chǔ)區(qū)創(chuàng)建一個(gè)備份文件,然后將變量集合與備份數(shù)據(jù)存儲(chǔ)在此備份文件。下列的表I說(shuō)明此備份文件的格式?!?br> 存儲(chǔ)區(qū)路徑(VolumePath)
      編碼操作種類(lèi)(OperationType)
      編碼操作方向(OperationDirection)
      初始化標(biāo)記變量(InitFlag)
      備份標(biāo)記變量(BackupSuccess)
      編碼偏移標(biāo)記變量(Noffset)
      編碼偏移標(biāo)記變量(Eoffset)
      更新標(biāo)頭前偏移變量(Uoffset)
      權(quán)利要求
      1.一種進(jìn)度記錄方法,適用于一存儲(chǔ)裝置的一存儲(chǔ)區(qū)的一編碼操作,包括初始化并存儲(chǔ)一變量集合,其中該編碼操作包括多個(gè)子操作,每一上述子操作對(duì)應(yīng)該變量集合其中至少一標(biāo)記變量,上述標(biāo)記變量用以記錄上述子操作的執(zhí)行進(jìn)度;以及在執(zhí)行每一上述子操作時(shí),根據(jù)該子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的該變量集合中該子操作所對(duì)應(yīng)的上述標(biāo)記變量。
      2.如權(quán)利要求I所述的進(jìn)度記錄方法,其中該變量集合還包括該存儲(chǔ)區(qū)的路徑,以及該編碼操作的種類(lèi)與方向,該編碼操作的種類(lèi)為加密、解密、重加密或反向重加密。
      3.如權(quán)利要求I所述的進(jìn)度記錄方法,其中該變量集合存儲(chǔ)在該存儲(chǔ)區(qū)或不同于該存儲(chǔ)區(qū)的另一存儲(chǔ)區(qū)。
      4.如權(quán)利要求I所述的進(jìn)度記錄方法,其中上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量其中之一,而且根據(jù)該子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的上述標(biāo)記變量的步驟包括將該標(biāo)記變量設(shè)定為一第一數(shù)值;執(zhí)行該子操作;以及將該標(biāo)記變量設(shè)定為一第二數(shù)值。
      5.如權(quán)利要求I所述的進(jìn)度記錄方法,其中上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量其中之一,該子操作為更新存儲(chǔ)于該存儲(chǔ)區(qū)的一進(jìn)度變量,而且根據(jù)該子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的上述標(biāo)記變量的步驟包括在更新該進(jìn)度變量之前,將該標(biāo)記變量設(shè)定為該子操作所欲更新的該進(jìn)度變量的數(shù)值。
      6.如權(quán)利要求I所述的進(jìn)度記錄方法,其中上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量中的一第一標(biāo)記變量和一第二標(biāo)記變量,而且根據(jù)該子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的上述標(biāo)記變量的步驟包括根據(jù)該子操作的下一次執(zhí)行之后的進(jìn)度更新該第一標(biāo)記變量,此時(shí)該第一標(biāo)記變量不等于該第二標(biāo)記變量;執(zhí)行該子操作;以及根據(jù)該子操作的上述執(zhí)行之后的進(jìn)度更新該第二標(biāo)記變量,此時(shí)該第一標(biāo)記變量等于該第二標(biāo)記變量。
      7.如權(quán)利要求6所述的進(jìn)度記錄方法,其中該編碼操作包括一備份子操作,該備份子操作在對(duì)應(yīng)該第一標(biāo)記變量和該第二標(biāo)記變量的該子操作執(zhí)行之前,在不同于該存儲(chǔ)區(qū)的另一存儲(chǔ)區(qū)備份該存儲(chǔ)區(qū)的數(shù)據(jù)。
      8.如權(quán)利要求7所述的進(jìn)度記錄方法,還包括在完成該編碼操作后,刪除已存儲(chǔ)的該變量集合以及該存儲(chǔ)區(qū)的上述備份數(shù)據(jù)。
      9.一種恢復(fù)方法,適用于一存儲(chǔ)裝置的一存儲(chǔ)區(qū)的一編碼操作,包括讀取一變量集合,其中該編碼操作包括多個(gè)子操作,每一上述子操作對(duì)應(yīng)該變量集合其中至少一標(biāo)記變量;根據(jù)該變量集合判斷上述子操作之中是否有中斷;如果上述子操作之中有中斷,則根據(jù)中斷的該子操作所對(duì)應(yīng)的上述標(biāo)記變量恢復(fù)該子操作;以及根據(jù)該變量集合的上述標(biāo)記變量所記錄的進(jìn)度繼續(xù)執(zhí)行該編碼操作。
      10.如權(quán)利要求9所述的恢復(fù)方法,其中該變量集合還包括該存儲(chǔ)區(qū)的路徑,以及該編碼操作的種類(lèi)與方向,該編碼操作的種類(lèi)為加密、解密、重加密或反向重加密,而且該恢復(fù)方法還包括根據(jù)該存儲(chǔ)區(qū)的路徑、該編碼操作的種類(lèi)與方向、以及該變量集合的上述標(biāo)記變量所記錄的進(jìn)度繼續(xù)執(zhí)行該編碼操作。
      11.如權(quán)利要求9所述的恢復(fù)方法,其中該變量集合存儲(chǔ)在該存儲(chǔ)區(qū)或不同于該存儲(chǔ)區(qū)的另一存儲(chǔ)區(qū)。
      12.如權(quán)利要求9所述的恢復(fù)方法,其中上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量其中之一,該標(biāo)記變量等于一第一數(shù)值或一第二數(shù)值,而且該恢復(fù)方法還包括如果該標(biāo)記變量等于該第一數(shù)值,則重新執(zhí)行該子操作。
      13.如權(quán)利要求9所述的恢復(fù)方法,其中上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量其中之一,該子操作為更新存儲(chǔ)于該存儲(chǔ)區(qū)的一進(jìn)度變量,而且恢復(fù)中斷的該子操作的步驟包括如果該標(biāo)記變量不等于該進(jìn)度變量,則將該進(jìn)度變量設(shè)定為等于該標(biāo)記變量。
      14.如權(quán)利要求9所述的恢復(fù)方法,其中上述子操作其中之一對(duì)應(yīng)上述標(biāo)記變量中的一第一標(biāo)記變量和一第二標(biāo)記變量,而且恢復(fù)中斷的該子操作的步驟包括如果該第一標(biāo)記變量不等于該第二標(biāo)記變量,則將該第一標(biāo)記變量設(shè)定為等于該第二標(biāo)記變量。
      15.如權(quán)利要求14所述的恢復(fù)方法,其中該編碼操作包括一備份子操作,該備份子操作在對(duì)應(yīng)該第一標(biāo)記變量和該第二標(biāo)記變量的該子操作執(zhí)行之前,在不同于該存儲(chǔ)區(qū)的另一存儲(chǔ)區(qū)備份該存儲(chǔ)區(qū)的數(shù)據(jù),而且恢復(fù)中斷的該子操作的步驟還包括使用該存儲(chǔ)區(qū)的上述備份數(shù)據(jù),恢復(fù)該存儲(chǔ)區(qū)中位于該第一標(biāo)記變量和該第二標(biāo)記變量所定義的區(qū)段的數(shù)據(jù)。
      16.如權(quán)利要求9所述的恢復(fù)方法,還包括根據(jù)是否存在已存儲(chǔ)的該變量集合,判斷是否執(zhí)行該恢復(fù)方法。
      全文摘要
      一種適用于存儲(chǔ)裝置的編碼操作的進(jìn)度記錄方法和恢復(fù)方法。上述進(jìn)度記錄方法包括下列步驟初始化并存儲(chǔ)一變量集合,其中上述編碼操作包括多個(gè)子操作,每一上述子操作對(duì)應(yīng)變量集合其中至少一標(biāo)記變量,上述標(biāo)記變量用以記錄上述子操作的執(zhí)行進(jìn)度;以及在執(zhí)行每一上述子操作時(shí),根據(jù)子操作的執(zhí)行進(jìn)度更新已存儲(chǔ)的變量集合中對(duì)應(yīng)的標(biāo)記變量。
      文檔編號(hào)G06F12/16GK102929806SQ20121040864
      公開(kāi)日2013年2月13日 申請(qǐng)日期2012年10月24日 優(yōu)先權(quán)日2012年10月24日
      發(fā)明者李壽弟, 吳光輝, 沈海斌 申請(qǐng)人:威盛電子股份有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1