一種動態調整的閃存錯誤檢測方法及裝置的制造方法
【技術領域】
[0001]本發明涉及一種動態調整的閃存錯誤檢測方法及裝置,特別是涉及一種適用于包含Nand Flash閃存介質的動態調整的閃存錯誤檢測方法及裝置。
【背景技術】
[0002]目前,Nand Flash作為非易失存儲介質,從TF卡、SD卡到SSD硬盤及各種電子設備,都得到了廣泛的應用。Nand Flash閃存的對外封裝形式是顆粒設計,每個顆粒中有一個或多個Die,每個Die有數個塊組成,而塊則由頁組成,頁中包含數個數據單元,這些數據單元根據設計可以存儲Ibit到幾bit的數據。在操作上,必須要先擦除才能寫入,擦除以塊為最小單位,寫入和讀取以頁為最小單位。Nand Flash閃存存在壽命,以擦除/寫入周期作為衡量標準指標。
[0003]Nand Flash閃存本身存在著固有缺陷,存儲數據的單元中的電子數目會隨著時間發生變化,當這種變化累積到一定程度之后,就會出現讀取狀態的變化,即該Bit的值發生了翻轉。同時,隨著加工工藝的進步,Nand Flash顆粒的制程進一步縮小,也加劇了該問題的發生概率。
[0004]在Bit翻轉問題的處理上,通用的處理方式是加入ECC校驗功能。將一個頁中的數據劃分為數個ECC單元,當ECC單元內的數據發生翻轉的Bit數是在ECC引擎的糾錯能力范圍內,則該ECC單元中的數據都可以保證正確。但Bit翻轉數會隨著時間的增長而增加,隨著時間累積,ECC單元中Bit翻轉的總數目會超過ECC引擎能力,從而導致整個ECC單元的數據失效。這種情況在現實應用中是存在的,比如數據中心的某條歷史記錄,存放進Nand Flash介質之后只會在查閱時被讀取,而不會再次寫入。
[0005]為解決長期存儲的數據有可能超過ECC引擎能力的問題,有一種通用的處理方法,業界稱為巡檢,即存儲器的控制器將按照塊的順序,依次讀取塊中的每個頁,設定一個統一的ECC門限值,讀取時發現超過門限值的頁,數據會被寫入到新頁中,由于讀取過程中經過了 ECC引擎的糾錯,則重新寫入的數據中無ECC,避免了在本周期內出現數據不可糾正的問題。在一個塊讀取完成后,繼續對下一個塊執行同樣的操作。
【發明內容】
[0006]巡檢技術在解決問題的同時,也引入了新的問題。如圖1所示,在一個產品中,其ECC最大可糾值是固定的,代表了一個ECC單元內最大允許出錯的Bit數。現有的巡檢技術中,ECC巡檢門限值也是一個全局的值。但實際觀測發現,一個塊內,不同的頁在同一周期內,其ECC增幅是不一樣的。由于ECC巡檢門限采用全局統一值,表示需要考慮一個塊內最惡劣的頁,要保證一個巡檢周期內,其ECC的增幅不超過ECC最大可糾值和ECC巡檢門限值的差值,而這之中,ECC最大可糾值和巡檢周期是在設計初期定下來的,則可調整的是ECC巡檢門限值。
[0007]采用統一的ECC巡檢門限值,覆蓋了情況最惡劣的頁,但是對于ECC情況較好的頁,則在該頁離ECC最大可糾值還有很長一段時間的情況下,就會將該頁進行重寫,會增加擦除/寫入周期,這個是對產品壽命的犧牲。特別是在情況惡劣的頁在塊內的數量較少的情況下,對整個產品的壽命影響犧牲更大。對此,可以基于顆粒特性,對頁進行分組,不同的組設定不同的ECC門限值,從而可以獲得顆粒壽命上的提升。然而,該分組技術的來源是靜態情況下的顆粒特性,雖然在延長顆粒壽命方面有較大的效果,但在實際應用中也存在問題。
[0008]實際的應用中,存在冷熱數據帶來的物理特性差異的問題,如圖2所示,因此,根據顆粒特性設定固定不變的分組,不能將顆粒的壽命發揮到最大。
[0009]本發明要解決的技術問題是提供一種延長產品壽命、提升巡檢操作效率的動態調整的閃存錯誤檢測方法及裝置。
[0010]本發明采用的技術方案如下:一種動態調整的閃存錯誤檢測方法,根據閃存中各頁所在位置的物理特性差異,將一個塊中的頁按照ECC增長的速度差異分為不同的組,在實際巡檢操作中,根據不同的頁組的ECC增長速度的差異分配不同的ECC巡檢門限值,ECC增長越快的頁面,ECC巡檢門限值越低,反之越高;在執行巡檢過程中,先查詢本頁面所在的物理位置所處的冷熱分區,以單位時間內本區域寫入的數據量作為依據,寫入數據量越多則區域越熱,得出冷熱分區的系數對巡檢門限值進行調整。
[0011]作為優選,根據冷熱分區的系數調整具體的巡檢門限值的具體方法為:啟動巡檢之后,根據定時器的提醒對當前任務鏈上的頁面進行讀取操作,在等待讀取結果的同時,查詢該頁面的冷熱狀態,并由此得到一個冷熱分區的系數,將舊的ECC門限值+該冷熱分區的系數得到用于進行對比操作的新的ECC門限值。
[0012]作為優選,所述冷熱分區系數的計算方法為:Y=AX+B ;其中Y為冷熱分區系數,X為單位時間的寫入量,A和B為常數,同一分組的A和B的值為定值,根據實驗獲得。關于A和B的取值:根據實際實驗,記錄下ECC增長的速度和單位時間寫入的數據量,例如,ECC的增長值區間為[10,20],則取中間值15為基準值,則Y的區間為ECC增長值區間減去基準值,即[_5,5],寫入的數據量區間如果為[O, 1000],則根據區間[-5,5]和區間[O, 1000]的線性關系得出A和B的值。
[0013]作為優選,所述方法還包括,對某個塊中的某一頁的讀取操作完成后,判斷該頁當前ECC值是否已經超過該頁所在組的巡檢門限,否,則等待一個定時周期后,繼續讀取下一個頁;是,則將新數據寫入新的頁面,并讓所述新頁面內數據中的ECC歸零。
[0014]作為優選,所述方法還包括,在將所述新頁面內數據中的ECC歸零的同時,將該塊內,后面還沒有被讀取過的頁面,不等待巡檢的定時器,依次讀完,在確認讀操作的過程中,依然和本頁面所在的組對應的巡檢門限值進行對比。
[0015]作為優選,所述方法還包括,將所述塊讀取完成后,選擇下一個塊的第一頁,巡檢的定時器重新工作。
[0016]一種動態調整的閃存錯誤檢測裝置,其特征在于,包括
頁分組模塊,根據閃存中各頁所在位置的物理特性,將一個塊中的頁按照ECC增長的速度差異分為不同的組;
巡檢門限值分配模塊,根據不同的頁組的ECC增長速度的差異分配不同的ECC巡檢門限值,ECC增長越快的頁面,ECC巡檢門限值越低,反之越高; ECC門限值調整模塊,在執行巡檢過程中,先查詢本頁面所在的物理位置所處的冷熱分區,以單位時間內本區域寫入的數據量作為依據,得出冷熱分區的系數對巡檢門限值進行調整。
[0017]作為優選,還包括,
巡檢門限超出判斷模塊,對某個塊中的某一頁的讀取操作完成后,判斷該頁當前ECC值是否已經超過該頁所在組的巡檢門限;
超出巡檢門限處理模塊,將超出的新數據寫入新的頁面,并讓所述新頁面內數據中的ECC歸零。
[0018]作為優選,還包括,讀取操作模塊,在將所述新頁面內數據中的ECC歸零的同時,將該塊內,后面還沒有被讀取過的頁面,不等待巡檢的定時器,依次讀完。
[0019]與現有技術相比,本發明的有益效果是:通過動態調整,能夠更好的符合顆粒的實際情況,在保證數據可靠性的前提下,保證產品壽命的最大實現。
【附圖說明】
[0020]圖1為ECC累積值示意圖。
[0021]圖2為冷熱區ECC增長示意圖。
[0022]圖3為本發明其中一實施例的帶動態調整門限的巡檢控制流程示意圖。
[0023]圖4為本發明其中一實施例的ECC門限動態調整示意圖。
[0024]圖5為本發明其中一實施例的ECC超限處理流程示意圖。
【具體實施方式】
[0025]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
[0026]本說明書(包括任何附加權利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0027]Nand Flash閃存以頁作為其操作過程中最小的讀寫單位,若干個頁Page (128/256/512)組成一個塊Block。現有的巡檢方案按照塊的順序依次讀取塊中的每一個頁,以此確定是否有頁出現了超過ECC門限的情況。由于采用的全局統一的ECC門限值,很多ECC情況較好的頁也會在超過這個統一門限值的情況下被重寫,浪費了一部分壽命O
[0028]如圖3和圖4所示的動態調整的閃存錯誤檢測方法,基于顆粒實際的情況,根據閃存中各頁所在位置的物理特性差異,將一個塊中的頁按照ECC增長的速度差異分為不同的組,在實際巡檢操作中,根據不同的頁組的ECC增長速度的差異分配不同的ECC巡檢門限值,ECC增長越快