專利名稱:提高閃存壽命的可靠性存儲方法
技術領域:
本發明涉及閃存技術領域,特別涉及ー種提高閃存壽命的可靠性存儲方法。
背景技術:
在エ業控制領域中,經常會使用閃存(FLASH)進行數據存儲,對現場設備的運行狀態進行實時的記錄;在設備下線后,再將閃存中存儲的設備運行數據拷出,對現場狀況、 設備運行或是控制效果進行數據分析,以便在后期工作中進行評價、調整或是改迸。上述應用中使用的閃存一般是安裝在電路板上,體積和容量通常較小;此外,上述應用中記錄的是的現場設備的實時運行狀態,對閃存進行的數據存儲的特點是記錄次數多、每次記錄數據量小、拷貝頻繁。雖然現有的閃存形式有多種,讀寫方式也分串行或并行等多種,但基本的閃存寫操作都是基于頁寫(Sector Write,或稱扇區、區段、區塊寫入等)方式進行的。頁寫方式有 ー個特點,即如果要寫入或修改某頁中的1個字節,該頁整頁都需要被刷新一遍。由于閃存的使用壽命與刷新次數有關,每一閃存單元可寫入的次數是有限的,一般僅有10000次 100000次,如果寫入頻率過于頻繁,勢必造成閃存的實際使用壽命降低。為避免對閃存単元頻繁進行寫入,一般閃存寫入的解決方案都是將數據積攢滿ー頁后再執行寫入,通過這種方式來延長閃存的使用壽命。但由于閃存的處理速度雖然高于磁盤但相對于高速緩存或普通易失性存儲器仍有一定差距,閃存頁寫的時間可能會高達IOms之多,在這個過程中如果發生設備掉電或者瞬時干擾,很容易造成寫入失敗,數據丟失或數據錯誤。而在エ業控制領域,對設備記錄的可靠性要求較高,設備突然掉電造成的數據丟失或數據錯誤都會影響記錄的準確性,若想進行準確的數據分析,對エ業控制進行正確的監控、管理或是維護,需要保證閃存中記錄的設備運行數據的有效性,并且要能識別錯誤數據。現有技術中,為確保數據完整型,通常是采用大容量閃存,并使用一定的數據記錄幀格式來進行數據備份或恢復。但現有技術的恢復手段有限,通常不能恢復由于偶然故障導致的寫入失敗,仍然會造成數據丟失現象,另外增加的記錄幀也會加重對閃存的寫入頻度,導致閃存的使用壽命降低。
發明內容
(一)要解決的技術問題針對現有技術的上述缺陷,本發明為了解決現有技術中閃存數據寫入可靠性低影響壽命的技術問題,提供了ー種提高閃存壽命的可靠性存儲方法。( ニ )技術方案為實現上述目的,本發明采用如下技術方案ー種提高閃存壽命的可靠性存儲方法,所述方法包括步驟Si,毎次上電后,進行 NVRAM臨時頁的檢查,判斷4個臨時頁的內容是否有至少兩頁相同,若沒有,則認為數據無法恢復,將臨時頁擦除,執行步驟S4 ;若有則執行步驟S2 ;S2,判斷4個臨時頁中內容是兩兩相同還是多數頁相同,若是兩兩相同,則使用第一臨時頁中內容將序號靠后的頁中內容恢復后,執行步驟S3;若是多數頁相同,則使用多數頁中內容將少數頁中內容恢復后,執行步驟S3 ;S3,使用臨時頁中內容將閃存當前記錄頁內容恢復;S4,正常進行閃存數據讀寫。優選地,每個臨時頁的字節數與閃存文件系統劃分的每頁字節數相同。優選地,步驟S4中,在閃存讀寫過程中,毎次有數據需要記錄吋,首先將數據按臨時頁的編號順序順次寫入NVRAM的各臨時頁中。優選地,當臨時頁數據寫滿ー頁后,再將這ー頁數據寫入閃存的當前記錄頁中。優選地,數據寫入閃存吋,按閃存文件系統劃分的頁編號順序寫入。優選地,在臨時頁中維持有閃存的頁索引,根據所述頁索引確定所述閃存的當前記錄頁。優選地,所述NVRAM與閃存FLASH集成在同一存儲系統中。(三)有益效果本發明的方案中,充分利用了 NVRAM的寫入時間快的優勢,使用NVRAM臨時頁作為數據寫入的緩沖和冗余,在下次上電時根據臨時頁內容把數據恢復,避免閃存中存在不完整的“臟”數據。此外,由于對閃存的寫入是在數據寫滿1頁后才開始向閃存記錄頁中進行整頁寫入,降低了對閃存的寫入刷新頻度,保證了閃存的使用壽命。
圖1為本發明的實施例中提高閃存壽命的可靠性存儲方法流程圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明的一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。在本發明中,通過在閃存中引入一個靜態非易失性RAM (Random Access Memory, 隨機存取存儲器),即NVRAM (Non-Volatile Random Access Memory),來輔助閃存進行數據記錄和恢復。由于NVRAM掉電后數據不會丟失,且掉電后數據存儲時間超長,可有效保證數據的完整性;另一方面,NVRAM寫入速度快,如字節寫入時間通常小于70ns,同樣是寫入1頁數據,NVRAM 一般僅需要不到17us,幾乎比普通閃存快1000倍。本發明中,首先將NVRAM的存儲空間分割出一部分,建立4個臨時頁并將臨時頁編號(比如編號為0、1、2、3),每個臨時頁的字節數與閃存文件系統劃分的每頁字節數相同, 比如,常見閃存文件系統ー頁256字節,則NVRAM中建立臨時頁每頁字節數也為256字節。在閃存讀寫過程中,毎次有數據需要記錄吋,首先將數據按臨時頁的編號順序順次寫入NVRAM的各臨時頁,如在上文的順次示例中,按臨時頁0、1、2、3的順序分別寫入要同一個記錄的數據。在正常情況下,每個臨時頁相同偏移地址對應的內容是完全一祥的。當臨時頁數據寫滿ー頁后,再將這ー頁數據寫入閃存;數據寫入閃存吋,按閃存文件系統劃分的頁編號順序寫入(即臨時頁第一次寫滿時數據寫入閃存第0頁、臨時頁第二次寫滿時數
據寫入閃存第1頁......在閃存全部頁均寫過后,再重新從閃存第0頁開始寫入)。為保
證對閃存的正確寫入,在臨時頁中維持有閃存的頁索引。最后,圖1展示了本發明中利用NVRAM提高閃存壽命的可靠性存儲方法,其方法包括步驟Si,每次上電后,進行NVRAM臨時頁的檢查,判斷4個臨時頁的內容是否有至少兩頁相同,若沒有,則認為數據無法恢復,將臨時頁擦除,執行步驟S4 ;若有則執行步驟S2 ;S2,判斷4個臨時頁中內容是兩兩相同還是多數頁相同,若是兩兩相同,則使用第一臨時頁中內容將序號靠后的頁中內容恢復后,執行步驟S3;若是多數頁相同,則使用多數頁中內容將少數頁中內容恢復后,執行步驟S3 ;S3,根據臨時頁中的閃存頁索弓丨,使用臨時頁中內容將閃存當前記錄頁內容恢復;S4,正常進行閃存數據讀寫。本發明中,采用“時間優先+多數表決”的原則,可以推斷出數據是否最新且完整, 并根據判斷結果進行相應的數據恢復。具體地,由于閃存數據正常寫入吋,首先是按照臨時頁的編號順序在臨時頁中記錄數據,若在數據記錄過程中系統發生掉電,掉電時數據必然處于這4個臨時頁之間。而按照上面的閃存數據正常寫入的流程,這4個臨時頁中數據是按編號順序“順次寫入”的,這樣,序號靠前的臨時頁(如頁0)的權重最高,其內容為新數據的概率最大。因此,若上電時發現頁1與頁0內容相同,則可以判斷出頁0中存儲的是最新且完整的內容,此時根據頁0的內容對數據進行恢復能最大限度的保證數據的及時性和完整性;而若頁1、2、3相同、并與頁0不同,也可以判斷出頁0中存儲的是最新數據,但此時頁0中數據并不一定完整,可能會存在錯誤數據,此時根據多數頁的內容對頁0內容進行恢復至少可以保證數據的正確性;若前3頁內容相同而最后ー頁內容不同,則與第一種情況相類似,用靠前的頁內容進行數據恢復即可;若4個臨時頁內容完全相同,則可知上次掉電時并沒有記錄新數據。最后ー種情況,若沒有兩頁內容是相同的,則可以認為NVRAM臨時頁未被使用或發生了數據錯誤,此時數據無法恢復,則強制擦除NVRAM臨時頁內容。對NVRAM 臨時頁的數據進行恢復完成后,再根據索引表將對應的閃存記錄頁的內容進行與臨時頁相同的恢復。通過上述方式,由于NVRAM的寫入時間非常快,在短時間內受到干擾或掉電的概率降低,能夠有效地保證數據的正確性和完整性;而即使是發生掉電現象,由于有臨時頁作為緩沖、冗余,在下次上電時也可以根據臨時頁內容把數據恢復,避免閃存中存在不完整的 “臟”數據。此外,由于對閃存的寫入是在數據寫滿1頁后才開始向閃存記錄頁中進行整頁寫入,降低了對閃存的寫入刷新頻度,保證了閃存的使用壽命。以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。
權利要求
1.ー種提高閃存壽命的可靠性存儲方法,其特征在干,所述方法包括步驟Si,毎次上電后,進行NVRAM臨時頁的檢查,判斷4個臨時頁的內容是否有至少兩頁相同,若沒有,則認為數據無法恢復,將臨時頁擦除,執行步驟S4 ;若有則執行步驟S2 ;S2,判斷4個臨時頁中內容是兩兩相同還是多數頁相同,若是兩兩相同,則使用第一臨時頁中內容將序號靠后的頁中內容恢復后,執行步驟S3;若是多數頁相同,則使用多數頁中內容將少數頁中內容恢復后,執行步驟S3 ;S3,使用臨時頁中內容將閃存當前記錄頁內容恢復;S4,正常進行閃存數據讀寫。
2.根據權利要求1所述的方法,其特征在干,每個臨時頁的字節數與閃存文件系統劃分的每頁字節數相同。
3.根據權利要求1所述的方法,其特征在干,步驟S4中,在閃存讀寫過程中,毎次有數據需要記錄吋,首先將數據按臨時頁的編號順序順次寫入NVRAM的各臨時頁中。
4.根據權利要求3所述的方法,其特征在干,當臨時頁數據寫滿ー頁后,再將這ー頁數據寫入閃存的當前記錄頁中。
5.根據權利要求4所述的方法,其特征在干,數據寫入閃存吋,按閃存文件系統劃分的頁編號順序寫入。
6.根據權利要求1所述的方法,其特征在干,在臨時頁中維持有閃存的頁索引,根據所述頁索引確定所述閃存的當前記錄頁。
7.根據權利要求1所述的方法,其特征在干,所述NVRAM與閃存FLASH集成在同一存儲系統中。
全文摘要
本發明涉及閃存技術領域,特別涉及一種提高閃存壽命的可靠性存儲方法。該方法包括步驟S1,每次上電后,進行NVRAM臨時頁的檢查,判斷4個臨時頁是否有至少兩頁內容相同,若沒有,則將臨時頁擦除執行步驟S4;若有則執行步驟S2;S2,判斷4個臨時頁是否兩兩相同,若是則使用第一臨時頁將序號靠后的臨時頁恢復后,執行步驟S3;否則使用多數頁將少數頁恢復后,執行步驟S3;S3,使用臨時頁中內容將閃存當前記錄頁內容恢復;S4,正常進行閃存數據讀寫。本發明中,充分利用了NVRAM的寫入時間快的優勢,使用NVRAM臨時頁作為數據寫入的緩沖和冗余,保證了閃存數據完整性并提高了閃存壽命。
文檔編號G06F12/02GK102567216SQ201110452498
公開日2012年7月11日 申請日期2011年12月29日 優先權日2011年12月29日
發明者姜宏飛, 李超, 樓宇偉 申請人:北京交控科技有限公司