本發明涉及閃存
技術領域:
,具體涉及一種提高NANDFLASH可靠性的方法及裝置。
背景技術:
:由于NANDFLASH具有容量大、成本低、改寫速度快的優點,已經逐漸在支付終端、車載導航、工控設備、機頂盒等嵌入式設備上得到了使用,替代了原來NORFLASH等存儲設備的地位。但NANDFLASH的可靠性卻不如以往的存儲設備,而且隨著工藝的提高,可靠性不斷下降。NANDFLASH的較低可靠性特別表現在終端掉電的時候。在擦除或編程過程中掉電,會導致相應區域的數據處于不穩定狀態,這使得終端中存儲的數據發生錯誤,甚至導致終端無法使用。目前,由于NANDFLASH具備眾多不可靠性,通常使用在帶電池的終端產品(或使用備份電池)上,這樣產品有電池供電,很少出現突然掉電導致的問題。而一些有高可靠性要求的工控類設備,則還是使用原來的NORFLASH等存儲設備,以避免可靠性問題。在一個使用NANDFLASH作為存儲器的終端上,NANDFLASH劃分為多個分區,有的分區存放整體鏡像(比如Linux內核/UBOOT),除非是更新,否則都是讀取;有的分區則是基于文件系統,可以以讀寫文件或目錄。所以掉電過程中可能在編程和擦除的區域基本都是屬于文件系統分區。對于NANDFLASH,常用的文件系統有JFFS2和UBIFS,目前基本都是使用UBIFS。UBIFS還需要通過一個存儲設備管理層UBI實現基于NAND的文件系統操作。NANDFLASH在編程和擦除過程中,如果遇到掉電,會產生不穩定的位(unstablebits)。由于編程或擦除沒有完成,所以正在進行編程或擦除區域的位的電荷不穩定,存在著一些位的值有時為0,有時為1的情況,即不穩定位。不穩定位對文件系統或者其保存的數據會造成致命影響。比如:正在編程過程中掉電,重新啟動后,不穩定位都是正確值;這樣,啟動過程中文件系統驅動進行的恢復操作就認為該頁內容正確,并按相應內容進行了恢復操作。可是,后續重新上電或重啟后,該頁內的不穩定位突然跳變,而且超過ECC糾錯能力,這樣使得該頁數據非法。文件系統分區中如果一個有效數據頁內容非法,可能造成某個文件數據異常導致數據丟失,或者文件系統的原數據異常導致分區無法正常掛載文件系統從而導致整個分區無法訪問。所以,掉電時需要對編程操作進行保護。技術實現要素:本發明所要解決的技術問題是:提高一種提高NANDFLASH可靠性的方法及裝置。為了解決上述技術問題,本發明采用的技術方案為:提供一種提高NANDFLASH可靠性的方法,包括如下步驟:在使用過程中,NANDFLASH進行讀取、擦除或編程的操作;NAND控制器接收到中斷信號后,判斷NANDFLASH當前的操作的類型;所述NANDFLASH包括支持完成一次NAND的編程操作的電容;若為編程操作,利用所述電容完成編程操作,通過NANDFLASH控制器復位NANDFLASH,結束當前正在進行的操作;若不為編程操作,通過NANDFLASH控制器復位NANDFLASH,結束當前正在進行的操作。優選的,上述的提高NANDFLASH可靠性的方法中,所述NANDFLASH包括IO口線,用于觸發電平發送中斷信號至NANDFLASH控制器。本發明的另一技術方案為提供一種提高NANDFLASH可靠性的裝置,包括:IO口線,用于觸發電平發送中斷信號至NANDFLASH控制器;電容,用于支持完成一次NAND的編程操作的電容;NAND控制器,用于接收到中斷信號后,判斷NANDFLASH當前的操作的類型;若為編程操作,利用所述電容完成編程操作,復位NANDFLASH,結束當前正在進行的操作;若不為編程操作,復位NANDFLASH,結束當前正在進行的操作。本發明的有益效果在于:與現有技術相比,本發明抓住了掉電需要保護的關鍵操作-編程操作,通過保證掉電時完成整個編程操作,有效避免了掉電對NANDFLASH數據的損壞,保證了使用NANDFLASH終端的數據可靠性。此外,本發明技術方案實現難度不大,且增加的成本有限,可用于產業化生產產品。附圖說明圖1為本發明具體實施方式的提高NANDFLASH可靠性的裝置的結構框圖:1、提高NANDFLASH可靠性的裝置;11、IO口線;12、電容;13、NAND控制器。具體實施方式為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式并配合附圖予以說明。NANDFLASH:一種非易失閃存技術,內部采用非線性宏單元模式,為固態大容量內存的實現提供了廉價有效的解決方案。具有容量較大,改寫速度快等優點,適用于大量數據的存儲。NORFLASH:一種非易失閃存技術,讀速度快,改寫速度慢,容量較小。擦除:將FLASH中一個塊/扇區的所有數據位都變為1,NANDFLASH擦除以塊為單位,一個塊包含多個頁。編程:將FLASH中一個頁/字節的某些數據位變為0,NANDFLASH編程以頁為單位。UBI:FLASH的邏輯卷管理層,實現磨損平衡、邏輯塊管理、卷管理和壞塊管理。UBIFS:一種用于FLASH的日志文件系統,基于UBI實現。NANDFLASH的一個塊需要擦除后才能重新編程,而編程是以頁為單位,所以編程單位小于擦除單位。這樣,UBIFS等用于NAND的文件系統,如果需要擦除一個塊時,這個塊中內容已經是標記為無效數據;也就是說,擦除的塊中數據都是無效的。所以,文件系統分區如果在擦除過程中掉電,且出現了不穩定位,也不會影響這個分區文件系統的有效性和包含數據的有效性。由此,對于文件系統分區,掉電時只需要對編程操作進行保護,而不需要對擦除操作進行保護。而且,擦除操作時間長達幾毫秒,也難以保證完成。基于上面的原理,我們只需要實現在掉電時保證一個頁的擦除操作完成即可。本發明最關鍵的構思在于:本發明通過保證編程過程不受掉電干擾,從而有效避免了掉電對NANDFLASH數據的損壞,保證了使用NANDFLASH終端的數據可靠性。請參照圖1,本發明提供一種提高NANDFLASH可靠性的方法,包括如下步驟:在使用過程中,NANDFLASH進行讀取、擦除或編程的操作;NAND控制器接收到中斷信號后,判斷NANDFLASH當前的操作的類型;所述NANDFLASH包括支持完成一次NAND的編程操作的電容;所述NANDFLASH包括IO口線,用于觸發電平發送中斷信號至NANDFLASH控制器。若為編程操作,利用所述電容完成編程操作,通過NANDFLASH控制器復位NANDFLASH,結束當前正在進行的操作;若不為編程操作,通過NANDFLASH控制器復位NANDFLASH,結束當前正在進行的操作。使處理器一直在上述步驟“判斷NANDFLASH當前的操作的類型”后至步驟結束中循環而不返回,避免中斷處理程序返回后進行其他操作,等待系統掉電關機。本發明還提供一種提高NANDFLASH可靠性的裝置1,包括:IO口線11,用于觸發電平發送中斷信號至NANDFLASH控制器;電容12,用于支持完成一次NAND的編程操作的電容;NAND控制器13,用于接收到中斷信號后,判斷NANDFLASH當前的操作的類型;若為編程操作,利用所述電容完成編程操作,復位NANDFLASH,結束當前正在進行的操作;若不為編程操作,復位NANDFLASH,結束當前正在進行的操作。本發明上述提高NANDFLASH可靠性的方法及裝置中:硬件上實現了下面特性:1)、掉電中斷:在掉電時,IO口線觸發電平,并產生中斷信號;2)、在掉電時,電容可支持完成一次NAND的編程操作。對于頁大小2KB的NAND,一頁編程操作最大時間大約700微秒,典型值200微秒。軟件上的實現具體如下(NAND控制器接收中斷信號后):1)檢查NAND控制器,確定是否有操作正在進行中,如果有,確定操作類型(編程/擦除/讀取);2)如果是編程操作,等待編程操作完成,通過控制器復位NAND,結束當前正在進行的操作;如果不是編程操作,通過控制器復位NAND,結束當前正在進行的操作;3)用while(1);等語句讓處理器一直在上述1)和步驟2)中循環而不返回,避免中斷處理程序返回后進行其他操作,等待系統掉電關機。通過上面的軟硬件結合措施,保證了掉電時編程操作完成,從而有效避免了因為掉電導致文件系統分區數據損壞甚至整個分區損壞,提高了終端可靠性。綜上所述,本發明提供的提高NANDFLASH可靠性的方法及裝置抓住了掉電需要保護的關鍵操作-編程操作,通過保證掉電時完成整個編程操作,有效避免了掉電對NANDFLASH數據的損壞,保證了使用NANDFLASH終端的數據可靠性。此外,本發明技術方案實現難度不大,且增加的成本有限,可用于產業化生產產品。以上所述僅為本發明的實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的
技術領域:
,均同理包括在本發明的專利保護范圍內。當前第1頁1 2 3