基於ecc糾錯碼的nand-flash壞塊恢復方法
2023-05-23 16:24:56 1
基於ecc糾錯碼的nand-flash壞塊恢復方法
【專利摘要】本發明屬於航空電子【技術領域】,特別是涉及到基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,針對由m片NAND-FLASH且每片FLASH有n個Block塊構成的大容量數據存儲設備,首先將數據編碼寫入前m-k片NAND-FLASH的Block塊中,然後在後k片NAND-FLASH的Block塊中放入該行數據編碼後的效驗碼,此後的編碼以此類推。本發明應用於由多片NAND-FLASH組成的大容量數據存儲設備中,如果在擦寫NAND-FLASH過程中遇到壞塊,不需要像傳統方法那樣拷貝數據到完好的NAND-FLASH數據塊中,降低了NAND-FLASH壞塊管理的難度。
【專利說明】基於ECC糾錯碼的NAND-FLASH壞塊恢復方法
【技術領域】
[0001]本發明屬於航空電子【技術領域】,涉及到大容量數據存儲速度及可靠性技術,特別是涉及到基於ECC糾錯碼的NAND-FLASH壞塊恢復方法。
【背景技術】
[0002]NAND-FLASH因其體積小、非易失性、多次可擦除性、更快的寫入和擦除速度以及更低廉的每比特價格等特點在電子產品應用市場中得到了迅猛的發展。
[0003]NAND-FLASH在產品出廠時會做一次壞塊標定。在使用過程中,由於程序設計者在編程過程中對NAND-FLASH的反覆擦除與寫入會導致NAND-FLASH —定程度上的磨損,從而出現壞塊,導致存儲數據的不可靠或丟失。目前傳統的針對NAND-FLASH使用過程中產生的壞塊處理主要有兩種方法:第一種方法是首先標記出當前出現的壞塊,然後將已寫入的數據全部拷貝至新的數據塊中,接著依次寫入後續數據。第二種方法是直接標記出NAND-FLASH的壞塊,同時丟掉該壞塊中已寫入的數據,跳轉到新的數據塊中進行數據寫入。
[0004]然而,採用方法一進行壞塊處理時,會導致數據寫入速度不穩定,並且當壞塊已寫入數據無法正常讀取時會造成數據的丟失。而採用方法二進行壞塊處理時,會直接導致已寫入當前壞塊中的數據丟失。
【發明內容】
[0005]發明目的:本發明的目的是提出一種基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,解決在NAND-FLASH使用過程中,尤其是大容量數據存儲過程中出現的壞塊恢復處理問題。相對於傳統的兩種處理方法,該技術即不影響數據流的寫入速度,也不會導致當前壞塊的數據丟失。
[0006]技術方案:基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,針對由m片NAND-FLASH且每片FLASH有n個Block塊構成的大容量數據存儲設備,其特徵在於,首先將數據編碼寫入前m-k片NAND-FLASH的Block塊中,然後在後k片NAND-FLASH的Block塊中放入該行數據編碼後的效驗碼,此後的編碼以此類推,每一行的前m-k片NAND-FLASH的Block塊FLASH1-FLASHnrit 中存儲編碼數據,而後 k 片 NAND-FLASH 的 Block 塊 FLASHn^1-FLASHni 中存放該行數據編碼後的效驗碼;當某一行出現壞塊要對存儲數據進行恢復還原時,首先對壞塊區設定一個初值,然後利用該行的後k片NAND-FLASH的Block塊中的效驗碼進行解碼,對壞塊中的數據進行糾錯,從而完成對壞塊中數據的恢復。
[0007]2、根據權利要求1所述的基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,其特徵在於,該效驗碼可由BCH編碼或者RS編碼方法產生。
[0008]3、根據權利要求1或2所述的基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,其特徵在於,具體包括以下 步驟:
[0009]步驟1:將所要記錄和存儲的數據依次寫入FLASH1-FLASHk晶片中Blockl的第一行,即Byte1-Byte4依次存入FLASHrFLASHK,每片FLASH都為8bit數據;[0010]步驟2:通過ECC編碼計算所寫入數據的效驗碼;
[0011]步驟3:寫完第一行數據後,進行第二行數據及其校驗碼錄入,之後依次類推;
[0012]步驟4:讀取數據時,對於出錯的FLASH數據塊,則對應的Byte數據無法讀取,只能讀取未出錯FLASH數據塊對應的Byte數據及其對應的校驗碼;
[0013]步驟5:對出錯FLASH數據塊對應的Byte數據賦以固定初值,然後通過BCH解碼完成該Byte數據的糾正。
[0014]有益效果:
[0015](I)本發明應用於由多片NAND-FLASH組成的大容量數據存儲設備中,如果在擦寫NAND-FLASH過程中遇到壞塊,不需要像傳統方法那樣拷貝數據到完好的NAND-FLASH數據塊中,可以完全不考慮壞塊的情況,簡單易行,降低了 NAND-FLASH壞塊管理的難度,同時不會因為壞塊丟失數據。
[0016](2)應用本發明可以避免因為外力或者使用壽命造成個別FLASH損壞而造成的數據丟失。
[0017](3)應用本發明可以避免傳統方法中壞塊造成的數據寫入速度不穩定情況。
[0018](4)應用本發明可以在不丟失或備份數據的情況對大容量數據存儲設備中個別壽命到期的NAND-FLASH進行更換和數據恢復。
【專利附圖】
【附圖說明】
[0019]圖1為本發明實施例中存儲設備中數據存儲區示意圖;
[0020]圖2數據存儲內容示例。
【具體實施方式】
[0021]下面結合附圖及實施例對本發明做進一步詳細描述,請參閱圖1至圖2。
[0022]基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,針對由m片NAND-FLASH且每片FLASH有n個Block塊構成的大容量數據存儲設備,首先將Byte數據寫入前m_k片NAND-FLASH的Block塊中,然後在後k片NAND-FLASH的Block塊中放入該行Byte數據編碼後的校驗碼,此後的編碼以此類推,每一行的前m-k片NAND-FLASH (FLASH1-FLASHm^k)的Block塊中存儲Byte數據,而後k片NAND-FLASH (FLASHm_k+1-FLASHm)的Block塊中存放該行Byte數據編碼後的效驗碼;當某一行出現壞塊要對存儲Byte數據進行恢復還原時,首先對壞塊區對應的Byte數據設定一個初值,然後利用該行的後k片NAND-FLASH的Block塊中的校驗碼進行解碼,對壞塊中的Byte數據的初值進行糾錯,從而完成對壞塊中數據的恢復。
[0023]該校驗碼可由BCH編碼或者RS編碼方法產生。存儲校驗碼的NAND-FLASH片數K,可根據糾正的錯誤位數按照所選擇編碼的理論進行選擇。
[0024]實施例:假設該設備由8片NAND FLASH晶片,分別對應FLASHl~FLASH8,每片FLASH有n個塊,分別對應Block1~Blockn,具體包括以下步驟:
[0025]步驟1:將所要記錄和存儲的數據依次寫入Flash1-Flash4晶片中Biocki的第一行,即Bytel-Byte4依次存入FLASH1-FLASH4,每片FLASH都為8bit數據;
[0026]步驟2:通過ECC編碼計算所寫入數據的效驗碼,並將其寫入FLASH5~FLASH8中;[0027]步驟3:寫完第一行數據後,進行第二行數據及其校驗碼,之後依次類推;
[0028]步驟4:讀取數據時,對於出錯的FLASH數據塊,則對應的Byte數據無法讀取,只能讀取未出錯FLASH數據塊對應的Byte數據及其對應的校驗碼;
[0029]步驟5:對出錯FLASH數據塊對應的Byte數據賦以固定初值,然後通過BCH解碼完成該Byte數據的糾正。
【權利要求】
1.基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,針對由m片NAND-FLASH且每片FLASH有n個Block塊構成的大容量數據存儲設備,其特徵在於,首先將數據編碼寫入前m-k片NAND-FLASH的Block塊中,然後在後k片NAND-FLASH的Block塊中放入該行數據編碼後的效驗碼,此後的編碼以此類推,每一行的前m-k片NAND-FLASH的Block塊FLASH1-FLASHnHt中存儲編碼數據,而後k片NAND-FLASH的Block塊FLASHm_k+1-FLASHm中存放該行數據編碼後的效驗碼;當某一行出現壞塊要對存儲數據進行恢復還原時,首先對壞塊區設定一個初值,然後利用該行的後k片NAND-FLASH的Block塊中的效驗碼進行解碼,對壞塊中的數據進行糾錯,從而完成對壞塊中數據的恢復。
2.根據權利要求1所述的基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,其特徵在於,該效驗碼可由BCH編碼或者RS編碼方法產生。
3.根據權利要求1或2所述的基於ECC糾錯碼的NAND-FLASH壞塊恢復方法,其特徵在於,具體包括以下步驟: 步驟1:將所要記錄和存儲的數據依次寫入FLASH1-FLASHk晶片中Blockl的第一行,即 Byte1-Byte4 依次存入 FLASHrFLASHK,每片 FLASH 都為 8bit 數據; 步驟2:通過ECC編碼計算所寫入數據的效驗碼; 步驟3:寫完第一行數據後,進行第二行數據及其校驗碼錄入,之後依次類推; 步驟4:讀取數據時,對於出錯的FLASH數據塊,則對應的Byte數據無法讀取,只能讀取未出錯FLASH數據塊對應的Byte數據及其對應的校驗碼; 步驟5:對出錯FLASH數據塊對應的Byte數據賦以固定初值,然後通過BCH解碼完成該Byte數據的糾正。
【文檔編號】G06F11/10GK103645965SQ201310632106
【公開日】2014年3月19日 申請日期:2013年11月28日 優先權日:2013年11月28日
【發明者】程金, 賈寧 申請人:陝西千山航空電子有限責任公司