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