非易失性存儲器的管理方法和裝置制造方法
【專利摘要】本發(fā)明涉及一種非易失性存儲器的管理方法和裝置。所述方法包括:在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和所述目標頁地址對應的頁,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一個頁作為輪換頁,根據(jù)所述目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù),將所述新的頁數(shù)據(jù)寫入所述輪換頁中;在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到所述目標頁地址對應的頁,當所述目標頁地址對應兩個頁時,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一個頁作為有效頁,讀取所述有效頁中的數(shù)據(jù)。本發(fā)明可以提高寫數(shù)據(jù)的效率,提高NVM的壽命。
【專利說明】非易失性存儲器的管理方法和裝置
【技術領域】
[0001]本發(fā)明涉及存儲器領域,尤其涉及一種非易失性存儲器的管理方法和裝置。
【背景技術】
[0002]在社會高速發(fā)展的今天,非易失性存儲器(Nonvolatile memory,簡稱:NVM)的使用已經隨處可見,并跟生活息息相關,常見的NVM有,電可擦可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory,簡稱:EEPROM)和閃存(FlashMemory,簡稱:FLASH)。比如,公交、社保、銀行、電力、身份識別等各個領域都用到的智能卡都廣泛使用了 NVM。因此,保證NVM中數(shù)據(jù)高效安全存儲就顯得尤為重要。智能卡在工作過程中,如果發(fā)生斷電或其他不可預知的錯誤,導致智能卡擦除或者寫入數(shù)據(jù)過程異常終止,將會使寫入數(shù)據(jù)不正確,這樣就嚴重威脅數(shù)據(jù)完整性和安全性。因此需要有一種解決方案來完成數(shù)據(jù)的斷電保護問題。
[0003]當前,解決斷電保護問題一般是采用備份區(qū)來完成,S卩,在存儲區(qū)申請一塊備份區(qū),用戶更新數(shù)據(jù)的流程如下:
[0004]步驟1、寫舊數(shù)據(jù)到備份區(qū);
[0005]步驟2、寫備份區(qū)標識;
[0006]步驟3、寫新數(shù)據(jù)到原數(shù)據(jù)區(qū);
[0007]步驟4、寫備份區(qū)清空標識。
[0008]通過上述方法來完成數(shù)據(jù)安全寫入,這樣,可以保證數(shù)據(jù)要么就全部寫對,要么就沒有寫數(shù)據(jù),不會出現(xiàn)其他情況,從而保證了數(shù)據(jù)的完整性。但是利用這種方法,安全更新一次數(shù)據(jù)需要寫4次,導致寫數(shù)據(jù)的效率較低。而且,每更新一次數(shù)據(jù)就需要更新一次備份區(qū),而備份區(qū)又是固定的,頻繁的對固定區(qū)域的操作將大大減少NVM的壽命。
【發(fā)明內容】
[0009]本發(fā)明提供一種非易失性存儲器的管理方法和裝置,用以實現(xiàn)提高寫數(shù)據(jù)的效率,提聞NVM的壽命。
[0010]本發(fā)明提供一種非易失性存儲器的管理方法,所述非易失性存儲器包括一個以上區(qū)塊,每個區(qū)塊包括復數(shù)個頁,每頁包括數(shù)據(jù)區(qū)和控制信息區(qū),所述控制信息區(qū)保存頁地址、用于標識目標頁地址為所述頁地址的寫操作的順序的頁標識、和校驗碼,所述方法包括;
[0011]在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和所述目標頁地址對應的頁,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一個頁作為輪換頁,根據(jù)所述目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù),將所述新的頁數(shù)據(jù)寫入所述輪換頁中;
[0012]在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到所述目標頁地址對應的頁,當所述目標頁地址對應兩個頁時,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一個頁作為有效頁,讀取所述有效頁中的數(shù)據(jù)。
[0013]本發(fā)明還提供一種非易失性存儲器的管理裝置,所述非易失性存儲器包括一個以上區(qū)塊,每個區(qū)塊包括復數(shù)個頁,每頁包括數(shù)據(jù)區(qū)和控制信息區(qū),所述控制信息區(qū)保存頁地址、用于標識目標頁地址為所述頁地址的寫操作的順序的頁標識、和校驗碼,所述裝置包括:
[0014]第一查詢模塊,用于在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和所述目標頁地址對應的頁;
[0015]輪換頁獲取模塊,與所述第一查詢塊連接,用于根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一頁作為輪換頁;
[0016]新數(shù)據(jù)獲取模塊,與所述第一查詢模塊連接,用于根據(jù)所述目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù);
[0017]數(shù)據(jù)寫模塊,用于將所述新的頁數(shù)據(jù)寫入所述輪換頁中;
[0018]第二查詢模塊,用于在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到所述目標頁地址對應的頁;
[0019]有效頁獲取模塊,與所述第二查詢模塊連接,用于當所述目標頁地址對應兩個頁時,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一頁作為有效頁;
[0020]數(shù)據(jù)讀模塊,與所述有效頁獲取模塊連接,用于讀取所述有效頁中的數(shù)據(jù)。
[0021]在本發(fā)明實施例中,每更新一次數(shù)據(jù)只需要寫一次NVM,只需要花費現(xiàn)有技術中1/4的時間,大大提高了寫數(shù)據(jù)的效率。此外,每更新一次數(shù)據(jù)需要寫一次輪換頁,而輪換頁是不固定的,所以在一定程度上增加了 NVM的壽命。
【專利附圖】
【附圖說明】
[0022]圖1為本發(fā)明NVM的管理方法實施例中NVM的結構示意圖;
[0023]圖2為本發(fā)明非易失性存儲器的管理方法實施例中讀操作的流程示意圖;
[0024]圖3為本發(fā)明非易失性存儲器的管理方法實施例中寫操作的流程示意圖;
[0025]圖4為本發(fā)明NVM的管理裝置實施例中進行寫操作的裝置的結構示意圖;
[0026]圖5為本發(fā)明NVM的管理裝置實施例中進行讀操作的裝置的結構示意圖。
【具體實施方式】
[0027]下面結合說明書附圖和【具體實施方式】對本發(fā)明作進一步的描述。
[0028]NVM的管理方法實施例
[0029]如圖1所示,為本發(fā)明NVM的管理方法實施例中NVM的結構示意圖,該NVM包括一個以上區(qū)塊:區(qū)塊1、區(qū)塊2...區(qū)塊n,n為大于或等于I的自然數(shù),每個區(qū)塊包括復數(shù)個頁:頁1、頁2...頁m和I個輪換頁,m為大于或等于2的自然數(shù),每頁包括數(shù)據(jù)區(qū)和控制信息區(qū),數(shù)據(jù)區(qū)保存數(shù)據(jù),控制信息區(qū)保存頁地址、頁標識和校驗碼。其中,該頁地址為邏輯頁地址,頁標識用于標識目標頁地址為該頁地址的寫操作的順序,校驗碼根據(jù)該頁的數(shù)據(jù)計算得到。
[0030]可選地,頁標識可以采用順序計數(shù)的方式標識寫操作的順序,這樣的話,進行一次寫操作,頁標識加I?;蛘?,頁標識也可以采用循環(huán)計數(shù)的方式標識寫操作的順序,例如:頁標識的長度為2比特,頁標識的值可以有4種選擇:00、01、10、11,循環(huán)計數(shù)方式為:OO — Ol — 10 — 11 — 00。當采用循環(huán)計數(shù)的方式時,不應出現(xiàn)無法判斷操作順序的情況,當無法判斷操作順序時,說明頁標識的長度不夠。
[0031]如圖2所示,為本發(fā)明非易失性存儲器的管理方法實施例中讀操作的流程示意圖,可以包括如下步驟;
[0032]步驟21、在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到該目標頁地址對應的頁,執(zhí)行步驟22;
[0033]其中,目標區(qū)塊為目標頁地址所在的區(qū)塊。
[0034]步驟22、判斷該目標頁地址對應的頁的數(shù)量是否為兩個,如果是,執(zhí)行步驟23,否則執(zhí)行步驟24。
[0035]步驟23、當該目標頁地址對應兩個頁時,根據(jù)該兩個頁的校驗碼和頁標識從該兩個頁中選取一頁作為有效頁,執(zhí)行步驟25 ;
[0036]可選地,首先判斷該兩個頁的校驗碼是否正確;當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼正確的頁作為有效頁,校驗碼錯誤說明寫該頁時發(fā)生斷電或者其他不可預知的情況導致該頁的數(shù)據(jù)錯誤,校驗碼正確說明該頁中的數(shù)據(jù)是正確的;當該兩個頁的校驗碼都正確時,根據(jù)該兩個頁的頁標識選取最近操作的頁作為有效頁,有效頁中存儲的數(shù)據(jù)為最新數(shù)據(jù),另外一個頁中存儲的數(shù)據(jù)為舊數(shù)據(jù),換句話說,當兩個頁的數(shù)據(jù)都正確時,選擇存儲有最新數(shù)據(jù)的頁作為有效頁。
[0037]步驟24、當該目標頁地址對應一個頁時,將該頁作為有效頁,執(zhí)行步驟25 ;
[0038]步驟25、讀取該有效頁中的數(shù)據(jù)。
[0039]如圖3所示,為本發(fā)明非易失性存儲器的管理方法實施例中寫操作的流程示意圖,可以包括如下步驟:
[0040]步驟31、在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和該目標頁地址對應的頁。
[0041]步驟32、根據(jù)該兩個頁的校驗碼和頁標識從該兩個頁中選取一頁作為輪換頁;
[0042]可選地,判斷該兩個頁的校驗碼是否正確;當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼錯誤的頁作為輪換頁,校驗碼錯誤說明寫該頁時發(fā)生斷電或者其他不可預知的情況導致該頁的數(shù)據(jù)錯誤,校驗碼正確說明該頁的數(shù)據(jù)正確;當該兩個頁的校驗碼都正確時,根據(jù)該兩個頁的頁標識選取最早操作的頁作為輪換頁,最早操作的頁中存儲的數(shù)據(jù)為舊數(shù)據(jù),換句話說,當兩個頁的數(shù)據(jù)都正確時,選擇存儲有舊數(shù)據(jù)的頁作為輪換頁。
[0043]步驟33、根據(jù)該目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù);
[0044]具體地,讀出該目標頁地址對應的頁的頁數(shù)據(jù),修改該目標頁地址對應的頁的頁數(shù)據(jù)中的頁標識和數(shù)據(jù)區(qū)的數(shù)據(jù),得到新的頁數(shù)據(jù)。
[0045]步驟34、將該新的頁數(shù)據(jù)寫入該輪換頁中;
[0046]由于輪換頁中存儲的是舊數(shù)據(jù)或錯誤的數(shù)據(jù),所以可以將新數(shù)據(jù)寫入輪換頁中來覆蓋原來的舊數(shù)據(jù)。
[0047]在圖3所示流程示意圖中,會出現(xiàn)一種特殊情況:查詢目標區(qū)塊后,發(fā)現(xiàn)目標頁地址對應的頁的數(shù)量為兩個,并且與頁地址相同的兩個頁的頁地址相同。為了處理這種情況,將該兩個頁中除該輪換頁外的另一頁作為該目標頁地址對應的頁。
[0048]采用上述方法對NVM進行操作,在輪換頁中寫入新的數(shù)據(jù),保存舊數(shù)據(jù)的頁的內容保持不變,這樣即使在寫數(shù)據(jù)的過程中發(fā)生斷電或其他不可預知的錯誤,在重新上電后根據(jù)頁標識和校驗碼進行判斷,保證數(shù)據(jù)要么就全部寫對,要么就沒有寫,不會出現(xiàn)其他情況,從而保證了數(shù)據(jù)的安全。
[0049]在本實施例中,每更新一次數(shù)據(jù)只需要寫一次NVM,只需要花費現(xiàn)有技術中1/4的時間,大大提高了寫數(shù)據(jù)的效率。此外,每更新一次數(shù)據(jù)需要寫一次輪換頁,而輪換頁是不固定的,所以在一定程度上增加了 NVM的壽命。
[0050]NVM的管理裝置實施例
[0051]在本實施例中,該NVM的結構與圖1所示結構示意圖相同,在此不再贅述。
[0052]如圖4所示,為本發(fā)明NVM的管理裝置實施例中進行寫操作的裝置的結構示意圖,該進行寫操作的裝置可以包括第一查詢模塊41、輪換頁獲取模塊42、新數(shù)據(jù)獲取模塊43、數(shù)據(jù)寫模塊44,輪換頁獲取模塊42與第一查詢模塊41連接,新數(shù)據(jù)獲取模塊43與第一查詢模塊41連接,數(shù)據(jù)寫模塊44與新數(shù)據(jù)獲取模塊43和輪換頁獲取模塊42連接。
[0053]第一查詢模塊41用于在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和該目標頁地址對應的頁;其中,目標區(qū)塊為目標頁地址所在的區(qū)塊。輪換頁獲取模塊42用于根據(jù)該兩個頁的校驗碼和頁標識從該兩個頁中選取一頁作為輪換頁。新數(shù)據(jù)獲取模塊43用于根據(jù)該目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù)。數(shù)據(jù)寫模塊44用于將該新的頁數(shù)據(jù)寫入該輪換頁中。
[0054]該進行寫操作的裝置的工作過程如下:在根據(jù)目標頁地址進行寫操作時,第一查詢模塊41查詢目標區(qū)塊得到頁地址相同的兩個頁和該目標頁地址對應的頁,輪換頁獲取模塊42根據(jù)該兩個頁的校驗碼和頁標識從該兩個頁中選取一頁作為輪換頁,新數(shù)據(jù)獲取模塊43根據(jù)該目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù),數(shù)據(jù)寫模塊44將該新的頁數(shù)據(jù)寫入該輪換頁中。
[0055]如圖5所示,為本發(fā)明NVM的管理裝置實施例中進行讀操作的裝置的結構示意圖,該進行讀操作的裝置可以包括第二查詢模塊45、有效頁獲取模塊46和數(shù)據(jù)讀模塊47。有效頁獲取模塊46與該第二查詢模塊45連接,數(shù)據(jù)讀模塊47與該有效頁獲取模塊46連接。
[0056]其中,第二查詢模塊45用于在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到該目標頁地址對應的頁。有效頁獲取模塊46用于當該目標頁地址對應兩個頁時,根據(jù)該兩個頁的校驗碼和頁標識從該兩個頁中選取一頁作為有效頁。數(shù)據(jù)讀模塊47用于讀取該有效頁中的數(shù)據(jù)。
[0057]該進行讀操作的裝置的工作過程如下:在根據(jù)目標頁地址進行讀操作時,第二查詢模塊45查詢目標區(qū)塊得到該目標頁地址對應的頁,當該目標頁地址對應兩個頁時,有效頁獲取模塊46根據(jù)該兩個頁的校驗碼和頁標識從該兩個頁中選取一頁作為有效頁,數(shù)據(jù)讀模塊47讀取該有效頁中的數(shù)據(jù)。當目標頁地址對應一個頁時,數(shù)據(jù)讀模塊47直接讀取該一個頁中的數(shù)據(jù)。
[0058]在本實施例中,每更新一次數(shù)據(jù)只需要數(shù)據(jù)寫模塊44寫一次NVM,只需要花費現(xiàn)有技術中1/4的時間,大大提高了寫數(shù)據(jù)的效率。此外,每更新一次數(shù)據(jù)需要寫一次輪換頁,而輪換頁是不固定的,所以在一定程度上增加了 NVM的壽命。[0059]可選地,為了找到輪換頁,輪換頁獲取模塊42可以包括第一判斷單元421、第一輪換頁獲取單元422和第二輪換頁獲取單元423。第一判斷單元421與第一查詢模塊41連接,第一輪換頁獲取單元422和第二輪換頁獲取單元423與第一判斷單元421連接,數(shù)據(jù)寫模塊44與第一輪換頁獲取單元422和第二輪換頁獲取單元423連接。
[0060]其中,第一判斷單元421用于判斷該兩個頁的校驗碼是否正確。第一輪換頁獲取單元422用于根據(jù)第一判斷單元421的判斷結果,當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼錯誤的頁作為輪換頁,驗碼錯誤說明寫該頁時發(fā)生斷電或者其他不可預知的情況導致該頁的數(shù)據(jù)錯誤,校驗碼正確說明該頁中的數(shù)據(jù)是正確的。第二輪換頁獲取單元423用于根據(jù)第一判斷單元421的判斷結果,當該兩個頁的校驗碼都正確時,根據(jù)該兩個頁的頁標識選取最早操作的頁作為輪換頁,最早操作的頁中存儲的數(shù)據(jù)為舊數(shù)據(jù),換句話說,當兩個頁的數(shù)據(jù)都正確時,選擇存儲有舊數(shù)據(jù)的頁作為輪換頁。
[0061]可選地,為了找到有效頁,有效頁獲取模塊46可以包括第二判斷單元461、第一有效頁獲取單元462和第二有效頁獲取單元463。第二判斷單元461與第二查詢模塊45連接,第一輪換頁獲取單元422和第二輪換頁獲取單元423與第二判斷單元461連接,數(shù)據(jù)讀模塊47與第一有效頁獲取單元462和第二有效頁獲取單元463連接。
[0062]第二判斷單元461用于判斷該兩個頁的校驗碼是否正確。第一有效頁獲取單元462用于根據(jù)該第二判斷單元461的判斷結果,當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼正確的頁作為有效頁,校驗碼錯誤說明寫該頁時發(fā)生斷電或者其他不可預知的情況導致該頁的數(shù)據(jù)錯誤,校驗碼正確說明該頁中的數(shù)據(jù)是正確的。第二有效頁獲取單元463用于根據(jù)該第二判斷單元461的判斷結果,當該兩個頁的校驗碼都正確時,根據(jù)該兩個頁的頁標識選取最近操作的頁作為有效頁,有效頁中存儲的數(shù)據(jù)為最新數(shù)據(jù),另外一個頁中存儲的數(shù)據(jù)為舊數(shù)據(jù),換句話說,當兩個頁的數(shù)據(jù)都正確時,選擇存儲有最新數(shù)據(jù)的頁作為有效頁。
[0063]可選地,為了得到新的頁數(shù)據(jù),新數(shù)據(jù)獲取模塊43可以包括讀單元431和修改單元432,讀單元431與第一查詢模塊41連接,修改單元432與讀單元431連接,數(shù)據(jù)寫模塊44與修改單元43連接。
[0064]讀單元431用于讀出該目標頁地址對應的頁的頁數(shù)據(jù)。修改單元432用于修改該目標頁地址對應的頁的頁數(shù)據(jù)中的頁標識和數(shù)據(jù)區(qū)的數(shù)據(jù),得到新的頁數(shù)據(jù)??蛇x地,將目標頁地址對應的頁的頁數(shù)據(jù)中的頁標識加1,修改數(shù)據(jù)區(qū)中需要修改的數(shù)據(jù),從而得到新的頁數(shù)據(jù)。
[0065]可選地,在寫操作的過程中還可能會發(fā)生一種特殊情況:查詢目標區(qū)塊后,目標頁地址對應的頁的數(shù)量為兩個并且與頁地址相同的兩個頁的頁地址相同。為了處理該特殊情況,本實施例還可以包括異常處理模塊48,與第一查詢模塊41和輪換頁獲取模塊42連接,新數(shù)據(jù)獲取模塊43還與異常處理模塊48連接。異常處理模塊48用于在根據(jù)目標頁地址進行寫操作時,當該目標頁地址與該兩個頁的頁地址相同時,將該兩個頁中除該輪換頁外的另一頁作為該目標頁地址對應的頁。
[0066]最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
【權利要求】
1.一種非易失性存儲器的管理方法,其特征在于,所述非易失性存儲器包括一個以上區(qū)塊,每個區(qū)塊包括復數(shù)個頁,每頁包括數(shù)據(jù)區(qū)和控制信息區(qū),所述控制信息區(qū)保存頁地址、用于標識目標頁地址為所述頁地址的寫操作的順序的頁標識、和校驗碼,所述方法包括; 在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和所述目標頁地址對應的頁,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一個頁作為輪換頁,根據(jù)所述目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù),將所述新的頁數(shù)據(jù)寫入所述輪換頁中; 在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到所述目標頁地址對應的頁,當所述目標頁地址對應兩個頁時,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一個頁作為有效頁,讀取所述有效頁中的數(shù)據(jù)。
2.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一頁作為輪換頁包括: 判斷所述兩個頁的校驗碼是否正確; 當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼錯誤的頁作為輪換頁; 當所述兩個頁的校驗碼都正確時,根據(jù)所述兩個頁的頁標識選取最早操作的頁作為輪換頁。
3.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一頁作為有效頁包括: 判斷所述兩個頁的校驗碼是否正確; 當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼正確的頁作為有效頁; 當所述兩個頁的校驗碼都正確時,根據(jù)所述兩個頁的頁標識選取最近操作的頁作為有效頁。
4.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù)具體為: 讀出所述目標頁地址對應的頁的頁數(shù)據(jù); 修改所述目標頁地址對應的頁的頁數(shù)據(jù)中的頁標識和數(shù)據(jù)區(qū)的數(shù)據(jù),得到新的頁數(shù)據(jù)。
5.根據(jù)權利要求1所述的方法,其特征在于,還包括: 在根據(jù)目標頁地址進行寫操作時,當所述目標頁地址與所述兩個頁的頁地址相同時,將所述兩個頁中除所述輪換頁外的另一頁作為所述目標頁地址對應的頁。
6.一種非易失性存儲器的管理裝置,其特征在于,所述非易失性存儲器包括一個以上區(qū)塊,每個區(qū)塊包括復數(shù)個頁,每頁包括數(shù)據(jù)區(qū)和控制信息區(qū),所述控制信息區(qū)保存頁地址、用于標識目標頁地址為所述頁地址的寫操作的順序的頁標識、和校驗碼,所述裝置包括: 第一查詢模塊,用于在根據(jù)目標頁地址進行寫操作時,查詢目標區(qū)塊得到頁地址相同的兩個頁和所述目標頁地址對應的頁;輪換頁獲取模塊,與所述第一查詢塊連接,用于根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一頁作為輪換頁; 新數(shù)據(jù)獲取模塊,與所述第一查詢模塊連接,用于根據(jù)所述目標頁地址對應的頁的頁數(shù)據(jù)得到新的頁數(shù)據(jù); 數(shù)據(jù)寫模塊,用于將所述新的頁數(shù)據(jù)寫入所述輪換頁中; 第二查詢模塊,用于在根據(jù)目標頁地址進行讀操作時,查詢目標區(qū)塊得到所述目標頁地址對應的頁; 有效頁獲取模塊,與所述第二查詢模塊連接,用于當所述目標頁地址對應兩個頁時,根據(jù)所述兩個頁的校驗碼和頁標識從所述兩個頁中選取一頁作為有效頁; 數(shù)據(jù)讀模塊,與所述有效頁獲取模塊連接,用于讀取所述有效頁中的數(shù)據(jù)。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述輪換頁獲取模塊包括: 第一判斷單元,用于判斷所述兩個頁的校驗碼是否正確; 第一輪換頁獲取單元,用于根據(jù)所述第一判斷單元的判斷結果,當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼錯誤的頁作為輪換頁; 第二輪換頁獲取單元,用于根據(jù)所述第一判斷單元的判斷結果,當所述兩個頁的校驗碼都正確時,根據(jù)所述兩個頁的頁標識選取最早操作的頁作為輪換頁。
8.根據(jù)權利要求6所述的裝置,其特征在于,所述有效頁獲取模塊包括: 第二判斷單元,用于判斷所述兩個頁的校驗碼是否正確; 第一有效頁獲取單元,用于根據(jù)所述第二判斷單元的判斷結果,當其中一頁的校驗碼正確并且另外一頁的校驗碼錯誤時,選取校驗碼正確的頁作為有效頁; 第二有效頁獲取單元,用于根據(jù)所述第二判斷單元的判斷結果,當所述兩個頁的校驗碼都正確時,根據(jù)所述兩個頁的頁標識選取最近操作的頁作為有效頁。
9.根據(jù)權利要求6所述的裝置,其特征在于,所述新數(shù)據(jù)獲取模塊包括: 讀單元,用于讀出所述目標頁地址對應的頁的頁數(shù)據(jù); 修改單元,用于修改所述目標頁地址對應的頁的頁數(shù)據(jù)中的頁標識和數(shù)據(jù)區(qū)的數(shù)據(jù),得到新的頁數(shù)據(jù)。
10.根據(jù)權利要求6所述的裝置,其特征在于,還包括: 異常處理模塊,用于在根據(jù)目標頁地址進行寫操作時,當所述目標頁地址與所述兩個頁的頁地址相同時,將所述兩個頁中除所述輪換頁外的另一頁作為所述目標頁地址對應的頁。
【文檔編號】G06F12/02GK103559141SQ201310535530
【公開日】2014年2月5日 申請日期:2013年11月1日 優(yōu)先權日:2013年11月1日
【發(fā)明者】馮強, 王俊杰, 孫馬秋 申請人:北京昆騰微電子有限公司