一種ecc糾錯能力的調節方法及調節裝置製造方法
2023-07-08 21:32:41 1
一種ecc糾錯能力的調節方法及調節裝置製造方法
【專利摘要】本發明提供一種ECC糾錯能力的調節方法及調節裝置,所述方法包括:根據目前所有Flash中最大存儲空間確定ECC的最大糾錯能力和最長碼長;根據最大糾錯能力和最長碼長配置所需的最大個數的計算單元;根據當前Flash的存儲空間配置當前Flash所需的當前糾錯能力和當前碼長;根據當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數;在當前Flash進行編程操作時,在最大個數的計算單元中調用與編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算;在當前Flash進行讀取操作時,在最大個數的計算單元中調用與解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
【專利說明】—種ECC糾錯能力的調節方法及調節裝置
【技術領域】
[0001]本發明涉及快閃記憶體存儲【技術領域】,特別是涉及一種ECC糾錯能力的調節方法及調節
>J-U ρ?α裝直。
【背景技術】
[0002]由於Flash (快閃記憶體)的材料和工藝原因,在Flash的讀寫使用和存放過程中很容易產生壞塊,所以使用錯誤檢查和糾正(ECC,Error Correcting Code)來保證數據完整性。即在Flash的每一個頁面上用額外的存儲空間來保存ECC數據,當寫入數據時,計算出固定長度數據的ECC數據,並更新;當數據讀取時,也會讀取ECC代碼,來檢驗讀取的數據是否正確,如讀取數據不正確時,通過ECC代碼來校正數據。
[0003]由於在不同的Flash中,存儲容量是一定的,而ECC糾錯需要的糾錯碼是佔用空間的,所以給出的存儲空間直接決定了 ECC碼的糾錯能力和碼長。不同工藝下的Flash所需要的ECC糾錯能力是不同的,工藝決定了出錯的概率,從而決定了所需的糾錯能力。由於不同的糾錯能力所需要的空間不同,所以Flash的存儲空間必須能夠滿足糾錯所需空間的需要,才能正常使用Flash。如果針對每種工藝需求都單獨設計處理,成本將非常高,因此當需要支持多種工藝需求時,就需要ECC的糾錯能力和碼長可調。
【發明內容】
[0004]本發明提供一種ECC糾錯能力的調節方法及調節裝置,以解決對每種工藝的Flash單獨處理造成的效率低、成本高的問題。
[0005]為了解決上述問題,本發明公開了一種ECC糾錯能力的調節方法,包括:
[0006]根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長;
[0007]根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元;
[0008]根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長;
[0009]根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數;
[0010]在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算;
[0011]在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
[0012]可選地,所述根據所述當前糾錯能力計算編碼所需的計算單元個數,包括:
[0013]調用所述當前糾錯能力的ECC編碼計算編碼對應的計算單元個數。
[0014]可選地,所述根據所述當前糾錯能力計算解碼所需的計算單元個數,包括:
[0015]調用所述當前糾錯能力的ECC解碼計算解碼對應的計算單元個數。
[0016]可選地,所述當前糾錯能力小於所述最大糾錯能力;
[0017]所述當前碼長小於所述最長碼長。
[0018]可選地,還包括:
[0019]根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。
[0020]本發明還公開了一種ECC糾錯能力的調節裝置,其特徵在於,包括:
[0021]確定模塊,用於根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長;
[0022]計算單元配置模塊,用於根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元;
[0023]糾錯能力配置模塊,用於根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力;
[0024]碼長配置模塊,用於根據當前Flash的存儲空間配置當前Flash所需的ECC的當前碼長;
[0025]計算模塊,用於根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數;
[0026]編碼模塊,用於在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算;
[0027]解碼模塊,用於在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
[0028]可選地,所述計算模塊包括:
[0029]編碼計算子模塊,用於調用所述當前糾錯能力的ECC編碼計算編碼對應的計算單元個數。
[0030]可選地,所述計算模塊包括:
[0031]解碼計算子模塊,用於調用所述當前糾錯能力的ECC解碼計算解碼對應的計算單元個數。
[0032]可選地,所述當前糾錯能力小於所述最大糾錯能力;
[0033]所述當前碼長小於所述最長碼長。
[0034]可選地,還包括:
[0035]糾錯模塊,用於根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。
[0036]與現有技術相比,本發明包括以下優點:
[0037]本發明首先根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長,然後根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元,接著根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長,之後根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數,最後在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算;在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。這樣雖然不同工藝的Flash需要的糾錯能力和碼長不同,對應的計算單元個數也不同,但是都可以從最大個數的計算單元中選擇一部分計算單元來實現。也就是說,最大個數的計算單元可以實現不同糾錯能力和碼長的編碼和解碼,本發明可以根據當前存儲空間配置當前糾錯能力和當前碼長,並且可以復用同一個計算單元(最大個數計算單元)來實現編碼和解碼,因此可以支持多種ECC糾錯能力和碼長,不需要針對不同工藝的Flash進行單獨設計,加快了開發周期,降低了開發成本。
【專利附圖】
【附圖說明】
[0038]圖1是本發明實施例一種ECC糾錯能力的調節方法的流程圖;
[0039]圖2是本發明另一實施例一種ECC糾錯能力的調節方法的流程圖;
[0040]圖3是本發明實施例一種ECC糾錯能力的調節裝置的結構框圖;
[0041]圖4是本發明實施例一種ECC糾錯能力的調節原理圖。
【具體實施方式】
[0042]為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本發明作進一步詳細的說明。
[0043]本發明提出了一種ECC糾錯能力的調節方法,旨在Flash應用中,可以在一個設計裡實現同時支持不同糾錯能力和糾錯碼碼長的BCH糾錯碼,從而可以在不同的Flash中,動態調整ECC的糾錯能力。
[0044]實施例一:
[0045]參照圖1,示出了本發明一種ECC糾錯能力的調節方法的流程圖,本實施例具體可以包括以下步驟:
[0046]步驟101,根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長。
[0047]不同工藝下的Flash所需要的ECC糾錯能力是不同的,工藝決定了出錯的概率,從而決定了所需的糾錯能力。由於不同的糾錯能力所需要的空間不同,所以Flash的存儲空間必須能夠滿足糾錯所需空間的需要,才能正常使用Flash。因此需要根據目前所有Flash中的最大存儲空間來確定其所支持的最大糾錯能力和最長碼長。目前所有的Flash中,工藝不同的Flash對應的最大存儲空間也不同,首先找出目前所有Flash中最大的那個存儲空間,接著確定該最大存儲空間所能支持的ECC的最大糾錯能力和最長碼長。
[0048]步驟102,根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元。
[0049]根據步驟101中所確定的ECC的最大糾錯能力和最長碼長配置所需要的最大個數的計算單元,這裡最大個數的計算單元是指最大糾錯能力和最長碼長所需要的全部計算單
J Li ο
[0050]步驟103,根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長。
[0051]當前Flash選定之後,就確定了存儲器,根據存儲空間配置當前Flash所支持的糾錯能力和碼長作為當前糾錯能力和當前碼長。由於當前Flash的存儲空間小於所有Flash中的最大存儲空間,因此當前糾錯能力小於步驟102中所配置的最大糾錯能力,當前碼長小於步驟101中所配置的最長碼長。
[0052]步驟104,根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數。
[0053]可以在Flash進行編碼操作的時候,計算編碼所需的計算單元個數。在Flash進行讀取操作的時候,計算解碼所需的計算單元個數。由於糾錯能力與所需要的計算單元個數是成正比的,而當前糾錯能力小於最大糾錯能力,因此依據當前糾錯能力計算出來的編碼所需的計算單元個數小於步驟102中配置的最大個數的計算單元的個數。同樣,依據當前糾錯能力計算出來的解碼所需的計算單元的個數也小於步驟102中配置的最大個數的計算單元的個數。也就是說,只需要從最大個數的計算單元中選取一部分計算單元,就可以完成編碼計算,同理,從最大個數的計算單元中選擇一部分計算單元,也可以完成解碼計算。
[0054]步驟105,在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算。
[0055]例如,最大個數計算單元是20個計算單元,編碼所需的計算單元的個數是5個,那麼在20個最大個數計算單元中,調用任意5個計算單元即可實現編碼操作。需要說明的是,本實施例不限定具體調用20個計算單元中的哪5個計算單元,只要從20個計算單元中選擇個數滿足5個的計算單元即可。
[0056]步驟106,在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
[0057]例如,最大個數計算單元是20個計算單元,解碼所需的計算單元的個數是10個,那麼在20個最大個數計算單元中,調用任意10個計算單元即可實現讀取操作。需要說明的是,本實施例不限定具體調用20個計算單元中的哪10個計算單元,只要從20個計算單元中選擇個數滿足10個的計算單元即可。
[0058]本實施例首先根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長,然後根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元,接著根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長,之後根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數,最後在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算;在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。這樣雖然不同工藝的Flash需要的糾錯能力和碼長不同,對應的計算單元個數也不同,但是都可以從步驟102中配置的最大個數的計算單元中選擇一部分計算單元來實現。也就是說,步驟102中配置的最大個數的計算單元可以實現不同糾錯能力和碼長的編碼和解碼,即可以支持多種ECC糾錯能力和碼長,不需要針對不同工藝的Flash進行單獨設計,加快了開發周期,降低了開發成本。
[0059]實施例二:
[0060]參照圖2示出了本發明一種ECC糾錯能力的調節方法的流程圖,本實施例具體可以包括以下步驟:[0061 ] 步驟201,根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長。
[0062]不同工藝下的Flash,需要的糾錯能力可能不同,由工藝決定了出錯的概率,從而決定了所需的糾錯能力。由於不同的糾錯能力所需要的空間不同,所以Flash的存儲空間必須能滿足糾錯所需空間的需要,才能正常使用Flash。因此需要根據Flash的存儲空間來確定ECC的糾錯能力和碼長,本實施例中選擇目前所有Flash中的最大存儲空間來確定ECC的最大糾錯能力和最長碼長。
[0063]步驟202,根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元。
[0064]根據步驟201中所確定的ECC的最大糾錯能力和最長碼長配置所需要的最大個數的計算單元,這裡最大個數的計算單元是指最大糾錯能力和最長碼長所需要的全部計算單
J Li ο
[0065]步驟203,根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長。
[0066]當前Flash選定之後,就確定了存儲器,根據存儲空間配置當前Flash所支持的糾錯能力和碼長作為當前糾錯能力和當前碼長。由於當前Flash的存儲空間小於所有Flash中的最大存儲空間,因此當前糾錯能力小於步驟202中所配置的最大糾錯能力,當前碼長小於步驟201中所配置的最長碼長。
[0067]步驟204,根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數。
[0068]可以在Flash進行編碼操作的時候,計算編碼所需的計算單元個數。在Flash進行讀取操作的時候,計算解碼所需的計算單元個數。由於糾錯能力與所需要的計算單元個數是成正比的,而當前糾錯能力小於最大糾錯能力,因此依據當前糾錯能力計算出來的編碼所需的計算單元個數小於步驟202中配置的最大個數的計算單元的個數。同樣,依據當前糾錯能力計算出來的解碼所需的計算單元的個數也小於步驟202中配置的最大個數的計算單元的個數。也就是說,只需要從最大個數的計算單元中選取一部分計算單元,就可以完成編碼計算,同理,從最大個數的計算單元中選擇一部分計算單元,也可以完成解碼計算。
[0069]本實施例中,所述根據所述當前糾錯能力計算編碼所需的計算單元個數,具體可以包括:調用所述當前糾錯能力的ECC編碼計算編碼對應的計算單元個數。本實施例中所述根據所述當前糾錯能力計算解碼所需的計算單元個數,具體可以包括:調用所述當前糾錯能力的ECC解碼計算解碼對應的計算單元個數。
[0070]步驟205,在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算。
[0071]需要說明的是,最大個數的計算單元相當於在不同糾錯能力和碼長的情況下,提出來的公共單元,這樣就可以在不同的糾錯需要時復用同一計算單元,這裡的同一計算單元指的是最大個數的計算單元這一整體,當然具體糾錯的時候可以根據糾錯能力選擇最大個數的計算單元中的一部分進行編解碼的計算。例如,最大個數計算單元是20個計算單元,編碼所需的計算單元的個數是5個,那麼在20個最大個數計算單元中,調用任意5個計算單元即可實現編碼操作。需要說明的是,本實施例不限定具體調用20個計算單元中的哪5個計算單元,只要從20個計算單元中選擇個數滿足5個的計算單元即可。
[0072]步驟206,在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
[0073]例如,最大個數計算單元是20個計算單元,解碼所需的計算單元的個數是10個,那麼在20個最大個數計算單元中,調用任意10個計算單元即可實現讀取操作。需要說明的是,本實施例不限定具體調用20個計算單元中的哪10個計算單元,只要從20個計算單元中選擇個數滿足10個的計算單元即可。
[0074]步驟207,根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。
[0075]BCH解碼包括伴隨式計算、計算錯誤位置多項式、查找錯誤位置和糾錯四個步驟,通過解碼結果可以判斷Flash讀取的數據是否有錯。在讀取的數據出錯時,可以根據步驟203配置的ECC的當前碼長和解碼結果所確定的錯誤個數對Flash的存儲數據進行對應的糾錯處理。在讀取的數據沒有出錯時,直接退出解碼即可。
[0076]本實施例首先根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長,然後根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元,接著根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長,之後根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數,然後在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算;在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。最後根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。這樣雖然不同工藝的Flash需要的糾錯能力和碼長不同,對應的計算單元個數也不同,但是都可以從步驟102中配置的最大個數的計算單元中選擇一部分計算單元來實現。也就是說,步驟102中配置的最大個數的計算單元可以實現不同糾錯能力和碼長的編碼和解碼,本實施例可以根據當前存儲空間配置當前糾錯能力和當前碼長,並且可以復用最大計算單元中的部分計算單元來實現編碼和解碼,因此可以支持多種ECC糾錯能力和碼長,不需要針對不同工藝的Flash進行單獨設計,加快了開發周期,降低了開發成本。
[0077]實施例三:
[0078]參照圖3示出了本發明一種ECC糾錯能力的調節裝置的結構框圖,本實施例具體可以包括:確定模塊11、計算單元配置模塊12、糾錯能力配置模塊13、碼長配置模塊14、計算模塊15、編碼模塊16和解碼模塊17,其中:
[0079]確定模塊11,用於根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長。
[0080]計算單元配置模塊12,用於根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元。
[0081]糾錯能力配置模塊13,用於根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力。
[0082]碼長配置模塊14,用於根據當前Flash的存儲空間配置當前Flash所需的ECC的當前碼長。
[0083]計算模塊15,用於根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數。
[0084]編碼模塊16,用於在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算。
[0085]解碼模塊17,用於在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
[0086]本實施例提供的ECC糾錯能力的調節裝置,可以支持多種ECC糾錯能力和碼長,不需要針對不同工藝的Flash進行單獨設計,加快了開發周期,降低了開發成本。
[0087]在本發明的一種優選實施例中,所述計算模塊15可以包括:編碼計算子模塊。編碼計算子模塊,用於調用所述當前糾錯能力的ECC編碼計算編碼對應的計算單元個數。
[0088]在本發明的另一種優選實施例中,所述計算模塊15可以包括:解碼計算子模塊。解碼計算子模塊,用於調用所述當前糾錯能力的ECC解碼計算解碼對應的計算單元個數。
[0089]需要說明的是,由於糾錯能力與所需要的計算單元個數是成正比的,而當前糾錯能力小於最大糾錯能力,因此編碼計算子模塊依據當前糾錯能力計算出來的編碼所需的計算單元個數小於計算單元配置模塊中配置的最大個數的計算單元的個數。同樣,解碼計算子模塊依據當前糾錯能力計算出來的解碼所需的計算單元的個數也小於計算單元配置模塊中配置的最大個數的計算單元的個數。
[0090]在本發明的一種優選實施例中,所述ECC糾錯能力的調節裝置,還包括:糾錯模塊。糾錯模塊,用於根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。
[0091]可以結合圖4所述的原理圖來理解本發明。如圖4所示,包括:糾錯能力配置單元21、碼長配置單元22、計算控制模塊23、各個糾錯能力計算單元24和糾錯控制單元25。首先,需要配置糾錯能力和碼長,進入糾錯能力配置單元21配置糾錯能力,進入碼長配置單元22配置碼長。其次,將配置信息傳送到計算控制模塊23之後,計算控制模塊23調用當前糾錯能力對應的編解碼的各步驟計算單元(各個糾錯能力計算單元中的一部分計算單元)進行編解碼的計算。在解碼結束之後,如果解碼結果顯示有錯,則調用糾錯控制單元25,根據當前碼長和錯誤個數做對應的糾錯。其中各個糾錯能力計算單元24是在不同糾錯能力和碼長的情況下,提出來的公共單元,這樣就可以在不同的糾錯需要時復用同一計算單元(都是各個糾錯能力計算單元),可以節省面積,同時由於不需要針對每種需求單獨做設計,可以加快開發周期,降低開發成本。
[0092]對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見圖1方法實施例的部分說明即可。
[0093]本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0094]以上對本發明所提供的一種ECC糾錯能力的調節方法及調節裝置,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
【權利要求】
1.一種ECC糾錯能力的調節方法,其特徵在於,包括: 根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長; 根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元; 根據當前Flash的存儲空間配置當前Flash所需的ECC的當前糾錯能力和當前碼長; 根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數; 在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算; 在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
2.根據權利要求1所述的方法,其特徵在於,所述根據所述當前糾錯能力計算編碼所需的計算單元個數,包括: 調用所述當前糾錯能力的ECC編碼計算編碼對應的計算單元個數。
3.根據權利要求1所述的方法,其特徵在於,所述根據所述當前糾錯能力計算解碼所需的計算單元個數,包括: 調用所述當前糾錯能力的ECC解碼計算解碼對應的計算單元個數。
4.根據權利要求1所述的方法,其特徵在於: 所述當前糾錯能力小於所述最大糾錯能力; 所述當前碼長小於所述最長碼長。
5.根據權利要求1所述的方法,其特徵在於,還包括: 根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。
6.一種ECC糾錯能力的調節裝置,其特徵在於,包括: 確定模塊,用於根據目前所有Flash中的最大存儲空間確定ECC的最大糾錯能力和最長碼長; 計算單元配置模塊,用於根據所述ECC的最大糾錯能力和最長碼長配置所需的最大個數的計算單元; 糾錯能力配置模塊,用於根據當前Flash的存儲空間配置當前Flash所需的ECC的當iu糾錯能力; 碼長配置模塊,用於根據當前Flash的存儲空間配置當前Flash所需的ECC的當前碼長; 計算模塊,用於根據所述當前糾錯能力分別計算編碼所需的計算單元個數和解碼所需的計算單元個數; 編碼模塊,用於在當前Flash進行編程操作時,在最大個數的計算單元中調用與所述編碼所需的計算單元個數一致的計算單元對Flash中的數據進行編碼計算; 解碼模塊,用於在當前Flash進行讀取操作時,在最大個數的計算單元中調用與所述解碼所需的計算單元個數一致的計算單元對Flash中的數據進行解碼計算。
7.根據權利要求6所述的裝置,其特徵在於,所述計算模塊包括: 編碼計算子模塊,用於調用所述當前糾錯能力的ECC編碼計算編碼對應的計算單元個數。
8.根據權利要求6所述的裝置,其特徵在於,所述計算模塊包括: 解碼計算子模塊,用於調用所述當前糾錯能力的ECC解碼計算解碼對應的計算單元個數。
9.根據權利要求6所述的裝置,其特徵在於: 所述當前糾錯能力小於所述最大糾錯能力; 所述當前碼長小於所述最長碼長。
10.根據權利要求6所述的裝置,其特徵在於,還包括: 糾錯模塊,用於根據解碼結果判斷讀取的數據是否有錯;當讀取的數據有錯時,根據所述當前碼長和解碼計算中確定的讀取的數據的錯誤個數對Flash存儲數據進行對應的糾錯處理;當讀取的數據沒錯時,退出解碼。
【文檔編號】G11C29/42GK104376876SQ201310352454
【公開日】2015年2月25日 申請日期:2013年8月13日 優先權日:2013年8月13日
【發明者】蘇志強, 劉會娟 申請人:北京兆易創新科技股份有限公司