一種高可靠性斷電保護方法
2024-03-24 04:03:05
一種高可靠性斷電保護方法
【專利摘要】本發明公開了一種高可靠性斷電保護方法,其引入斷電保護內存緩衝區,將存放於非易失性存儲介質中的斷電恢復信息依次一次性讀入斷電保護內存緩衝區,通過斷電保護內存緩衝區做斷電數據的恢復。本發明通過斷電保護內存緩衝區做數據恢復,杜絕斷電後非易失性存儲介質中的數據不穩定性對系統的不可控影響。
【專利說明】一種高可靠性斷電保護方法
【技術領域】
[0001]本發明涉及數據安全技術,具體涉及智慧卡的斷電保護技術。
【背景技術】
[0002]斷電保護屬於智慧卡行業的核心技術一智慧卡斷電後的安全性和穩定性,如果得不到安全可靠的保證,往往會出現各種理論無法預知的產品事故。輕者數據的一致性無法保證,嚴重的話將會導致系統崩潰,產品報廢,其重要性不言而喻。斷電保護機制若無法保證,產品就絕對得不到認可,更不能得以發行。
[0003]晶片技術發展日新月異,且晶片製造工藝各不相同,晶片性能也良莠不齊。中國國產晶片迅速崛起成為智慧卡晶片市場的重要組成部分。目前,各種類型的晶片充斥市場。中國國產晶片往往因為起步晚,發展快,晶片性能穩定性往往無法保證。由此在實際開發中,斷電保護總會遇到各種各樣的問題。很有可能在某些晶片上非常穩定的斷電保護安全機制,移植到其它晶片上往往會因為晶片本身的不穩定性而產生各種各樣的問題。
[0004]由此可見,提高智慧卡晶片斷電保護機制的兼容性、容錯性以及可靠性是本領域亟需解決的問題。
【發明內容】
[0005]針對上述現有智慧卡晶片斷電保護機制在兼容性和可靠性方面所存在的問題,本發明的目的在於提供一種高可靠性斷電保護機制,最大限度的提高程序的壯健性,晶片的兼容性,保證斷電保護的高可靠性,有效幫助開發人員避免晶片缺陷導致的不穩定性幹擾,縮短開發周期。
[0006]為了達到上述目的,本發明採用如下的技術方案:
[0007]一種高可靠性斷電保護方法,所述保護方法將存放於非易失性存儲介質中的斷電恢復信息依次一次性讀入斷電保護內存緩衝區,通過斷電保護內存緩衝區做斷電數據的恢復。
[0008]在該保護方法的優選方案中,進一步的,所述方法在RAM內存區指定一頁大小的區間作為斷電保護內存緩衝區。
[0009]再進一步的,所述方法中從非易失性存儲介質中的斷電保護區首地址依次讀取一整頁的數據存入斷電保護內存緩衝區。
[0010]進一步的,所述方法在斷電保護內存緩衝區中採用ALVC格式的斷電數據恢復項,其中A為斷電數據恢復項中待恢復數據的首地址;L為斷電數據恢復項中待恢復數據V的長度為斷電數據恢復項中待恢復數據;C為斷電數據恢復項中待恢復數據的CRC校驗值。
[0011]再進一步的,所述方法進行斷電保護的過程如下:
[0012](I)讀取非易失性存儲介質中的斷電保護區,把非易失性存儲介質中的斷電保護區的內容依次一次性讀入到斷電保護內存緩衝區,在斷電保護內存緩衝區建立相應的ALVC格式的斷電數據恢復項;
[0013](2)當發生斷電後,首先判斷非易失性存儲介質中的斷電保護區是否有恢復數據,若有則轉入步驟(3)進行數據恢復;若沒有,則不進行數據恢復;
[0014](3)根據斷電保護內存緩衝區中的ALVC格式的斷電數據恢復項進行CRC校驗,若一致,則恢復相關數據;若不一致,不進行恢復。
[0015]再進一步的,恢復數據時,根據斷電保護內存緩衝區建立的ALVC格式的斷電數據恢復項,將非易失性存儲介質中斷電保護區中從ALVC格式的斷電數據恢復項中A項指定的地址開始,L項指定長度的數據,替換成V項提供的新數據。
[0016]本發明通過斷電保護內存緩衝區做數據恢復,杜絕斷電後非易失性存儲介質中的數據不穩定性對系統的不可控影響。
[0017]同時,每一個斷電數據恢復項都有自身的校驗,保證斷電數據恢復項有效性。
[0018]本方案在具體應用時,能夠最大限度的提高程序的壯健性,晶片的兼容性,保證斷電保護的高可靠性,有效幫助開發人員避免晶片缺陷導致的不穩定性幹擾,縮短開發周期。
【專利附圖】
【附圖說明】
[0019]以下結合附圖和【具體實施方式】來進一步說明本發明。
[0020]圖1為ALVC格式的斷電數據恢復項的結構示意圖;
[0021]圖2為添加首個斷電數據恢復項示意圖;
[0022]圖3為添加第2個斷電數據恢復項示意圖;
[0023]圖4為斷電保護內存緩衝區中的斷電數據恢復項示意圖;
[0024]圖5為本發明對比實例I中沒有斷電保護內存緩衝區的晶片進行斷電數據恢復的示意圖;
[0025]圖6為本發明對比實例2中需要處理的數據項示意圖;
[0026]圖7為本發明對比實例2中在斷電保護內存緩衝區建立ALVC格式的斷電數據恢復項示意圖。
【具體實施方式】
[0027]為了使本發明實現的技術手段、創作特徵、達成目的與功效易於明白了解,下面結合具體圖示,進一步闡述本發明。
[0028]CPU卡性能的主要因素是對非易失性存儲介質的擦寫操作。在擦寫的過程中,時刻有斷電的可能性。由於晶片的性能不同,擦寫過程中斷電後的非易失性存儲介質性能表現也各不相同,存在數據不穩定的晶片,造成每次讀取的數據不同。
[0029]據此,本方案針對各種CPU卡,提供一種高兼容性、高可靠性斷電保護方案。該方案通過引入斷電保護內存緩衝區,把存放於非易失性存儲介質中的斷電恢復信息依次一次性讀入斷電保護內存緩衝區,通過斷電保護內存緩衝區做斷電數據的恢復。
[0030]為此,本方案指定一頁大小的內存(RAM區)專用區間作為斷電保護內存緩衝區,專門用於掉電保護。該斷電保護內存緩衝區的空間大小與非易失性存儲介質中的斷電保護區的空間大小一致,且作用相同。
[0031]在進行讀入數據時從非易失性存儲介質中的斷電保護區首地址依次讀取一整頁的數據存入斷電保護內存緩衝區。
[0032]在此基礎上,本方案還引入ALVC格式的斷電數據恢復項,保證每一個斷電數據恢復項的正確性。
[0033]參見圖1,其所示為本方案中引入的ALVC格式的斷電數據恢復項的結構。
[0034]其中,A為斷電數據恢復項中待恢復數據的首地址;
[0035]L為斷電數據恢復項中待恢復數據V的長度;
[0036]V為斷電數據恢復項中待恢復數據;
[0037]C為斷電數據恢復項中待恢復數據的CRC校驗值;
[0038]A、L、V、C後括號內數字表示佔用字節數。
[0039]基於上述的ALVC格式的斷電數據恢復項,本方案進行斷電恢復信息讀入和斷電數據恢復的過程如下:
[0040]首先,根據依次一次性讀入的存放於非易失性存儲介質中的斷電恢復信息,在斷電保護內存緩衝區建立相應的ALVC格式的斷電數據恢復項。
[0041]參見圖2,其所示為斷電保護內存緩衝區添加首個斷電數據恢復項L1V1A1C1。
[0042]參見圖3,其所示為在首個斷電數據恢復項L1V1A1C1後繼續添加第2個斷電數據恢復項L2V2A2C2
[0043]參見圖4,其所示為斷電保護內存緩衝區中最終形成的ALVC格式的斷電數據恢復項。
[0044]在斷電數據恢復時,首先判斷非易失性存儲介質中的斷電保護區是否有恢復數據,若有,把非易失性存儲介質中斷電保護區的數據讀取到斷電保護內存緩衝區,進行CRC校驗,若一致,則恢復相關數據。
[0045]以圖4所示的斷電數據恢復項為例,說明一下斷電數據恢復的過程:
[0046]若讀到斷電保護內存緩衝區的數據如圖4所示,首先,系統發現斷電保護內存緩衝區中有非O數據,依據ALVC的格式定位找到最後一個C,此處為C2,通過CRC計算Al LIVl C1,A2 L2 V2的值是否等於C2。如相等,恢復相關數據;如不相等,則不需要斷電恢復。
[0047]如果斷電保護內存緩衝區只有一組ALVC格式的斷電數據恢復項,S卩如果不存在A2 L2 V2C2,則 CRC 計算 Al LI Vl 得 Cl。
[0048]最後進行恢復數據時,只要把A指定地址開始,L指定長度的數據,替換成V提供的新數據即可。具體如下:
[0049]根據斷電保護內存緩衝區建立的ALVC格式的斷電數據恢復項,將非易失性存儲介質中斷電保護區中從ALVC格式的斷電數據恢復項中A項指定的地址開始,L項指定長度的數據,替換成V項提供的新數據。
[0050]以下通過一對比應用實例,來進一步說明本方案:
[0051]對比實例1,基於現有技術,沒有斷電保護內存緩衝區機制:
[0052]若晶片的擦寫過程中斷電後的非易失性存儲介質性能不穩定(即:圖2中標示的數據L2V2A2C2每次讀取的數據可能不同)。在數據恢復時,首次讀出來的L2V2A2C2數據是正確的,通過C2的鑑定為有效的斷電數據恢復項;但是當第二次再來讀取L2V2A2C2數據時由於不穩定A2變為其他數據,由於此時已經騙過了 C2的有效性檢查,將導致系統把數據V2恢復到A2地址指定的錯誤位置,導致斷電保護功能失敗甚至系統崩潰。
[0053]參見圖5,若晶片沒有設定斷電保護內存緩衝區機制,其在將數據03 56 78 9099 00 C2寫入非易失性存儲介質中的斷電保護區時斷電,此時由於晶片不穩定,99可能變成11。
[0054]如果首次計算時,非易失性存儲介質中的斷電保護區讀出的數據為99,那麼C2通過校驗,開始恢復;但是恢復時再次讀非易失性存儲介質中的斷電保護區,發現99變成11,這樣造成將數據56 78 90寫到地址0x1100,造成無法預計的影響。
[0055]對比實例2,基本方案在晶片中設置相應的斷電保護內存緩衝區機制:
[0056]參見圖6,需要把非易失性介質地址0x8800的前兩個字節1234修改為00,00 ;非易失性介質地址0x9900的前3個字節567890修改為AA,AA。
[0057]修改之前,先根據非易失性介質地址0x8800和0x9900需要修改的數據依次一次性讀入斷電保護內存緩衝區,並在斷電保護內存緩衝區建立相應的ALVC格式的斷電數據恢復項,如圖7所示(具體如上,此處不贅述)。
[0058]如果要進行數據的修改,需要先把斷電保護內存緩衝區中的數據寫入非易失性存儲介質中的斷電保護區,之後再修改地址0x8800,0x9900地址的數據。
[0059]如果修改過程發生斷電,0x8800、0x9900處的數據可能發生混亂,此時可以通過把非易失性存儲介質中的斷電保護區的數據讀取到斷電保護內存緩衝區,進行進行CRC校驗,判斷C值是否和CRC計算結果一致進行恢復。
[0060]該過程中,通過斷電保護內存緩衝區保證非易失性存儲介質中的斷電保護區的內容只讀I次,之後用於斷電恢復。
[0061]通過對比可知:
[0062]沒有C(CRC)校驗的斷電保護方案,很難保證每一個斷電數據恢復項的有效性。
[0063]舊的方案沒有斷電保護內存緩衝區的機制,數據恢復時反覆讀取非易失性存儲介質中的斷電數據恢復項。如果遇到斷電後的非易失性存儲介質性能不穩定的晶片,保護機制將會失效。
[0064]而本方案一次性把斷電保護數據從非易失性存儲介質中的斷電數據恢復區讀到斷電保護內存緩衝區,從斷電保護內存緩衝區做斷電恢復,杜絕了非易失性存儲介質性能不穩定對於斷電保護方案的影響。
[0065]以上顯示和描述了本發明的基本原理、主要特徵和本發明的優點。本行業的技術人員應該了解,本發明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發明的原理,在不脫離本發明精神和範圍的前提下,本發明還會有各種變化和改進,這些變化和改進都落入要求保護的本發明範圍內。本發明要求保護範圍由所附的權利要求書及其等效物界定。
【權利要求】
1.一種高可靠性斷電保護方法,其特徵在於,所述保護方法將存放於非易失性存儲介質中的斷電恢復信息依次一次性讀入斷電保護內存緩衝區,通過斷電保護內存緩衝區做斷電數據的恢復。
2.根據權利要求1所述的一種高可靠性斷電保護方法,其特徵在於,所述方法在RAM內存區指定一頁大小的區間作為斷電保護內存緩衝區。
3.根據權利要求2所述的一種高可靠性斷電保護方法,其特徵在於,所述方法中從非易失性存儲介質中的斷電保護區首地址依次讀取一整頁的數據存入斷電保護內存緩衝區。
4.根據權利要求1至3中任一項所述的一種高可靠性斷電保護方法,其特徵在於,所述方法在斷電保護內存緩衝區中採用ALVC格式的斷電數據恢復項,其中A為斷電數據恢復項中待恢復數據的首地址山為斷電數據恢復項中待恢復數據V的長度;V為斷電數據恢復項中待恢復數據;C為斷電數據恢復項中待恢復數據的CRC校驗值。
5.根據權利要求4所述的一種高可靠性斷電保護方法,其特徵在於,所述方法進行斷電保護的過程如下: (1)讀取非易失性存儲介質中的斷電保護區,把非易失性存儲介質中的斷電保護區的內容依次一次性讀入到斷電保護內存緩衝區,在斷電保護內存緩衝區建立相應的ALVC格式的斷電數據恢復項; (2)當發生斷電後,首先判斷非易失性存儲介質中的斷電保護區是否有恢復數據,若有則轉入步驟(3)進行數據恢復;若沒有,則不進行數據恢復; (3)根據斷電保護內存緩衝區中的ALVC格式的斷電數據恢復項進行CRC校驗,若一致,則恢復相關數據;若不一致,不進行恢復。
6.根據權利要求5所述的一種高可靠性斷電保護方法,其特徵在於,恢復數據時,根據斷電保護內存緩衝區建立的ALVC格式的斷電數據恢復項,將非易失性存儲介質中斷電保護區中從ALVC格式的斷電數據恢復項中A項指定的地址開始,L項指定長度的數據,替換成V項提供的新數據。
【文檔編號】G06F12/16GK104199786SQ201410425708
【公開日】2014年12月10日 申請日期:2014年8月26日 優先權日:2014年8月26日
【發明者】王翔平, 沈勇堅, 胡永剛 申請人:上海動聯信息技術股份有限公司