用于采用了nand flash的電力采集終端的糾錯方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及用于采用了 NAND FLASH的電力采集終端的糾錯方法。
【背景技術(shù)】
[0002]目前市面上的電力采集終端通常使用NAND FLASH作為存儲設備,NAND FLASH存在兩種架構(gòu)方式,分別是SLC架構(gòu)以及MLC架構(gòu),SLC架構(gòu)的特點是成本高、容量小、讀寫速度快;MLC架構(gòu)的特點是容量大、成本低,但是讀寫速度相對偏慢,此類存儲器,由于工藝問題,最小寫入單元(通常情況下為512字節(jié))會產(chǎn)生1個或多個位變位,其中,SLC工藝容量相對小,通常512字節(jié)只會產(chǎn)生1位位翻轉(zhuǎn);MLC工藝容量大,通常512字節(jié)容易產(chǎn)生4位位翻轉(zhuǎn)。現(xiàn)有市面上的電力采集終端大多數(shù)采用1Gbit SLC架構(gòu)的NAND FLASH,相對來說SLC架構(gòu)的NAND FLASH出錯概率比較低,所采用的糾錯算法只需糾錯1位,因此使用一個糾錯能力不強的Hanming糾錯碼就可以了,其占用資源較小。
[0003]隨著大數(shù)據(jù)時代的到來,電力采集系統(tǒng)逐步升級,電力采集終端所需要的存儲芯片的容量要求越來越大。電力采集終端需要升級到2GbitNAND FLASH,若升級到2Gbit NANDFLASH,會帶來以下技術(shù)難度、風險:升級到2Gbit NAND FLASH,需要采用4位糾錯算法(針對4位位翻轉(zhuǎn)現(xiàn)象),其中4位糾錯算法,一般采用的是BCH糾錯算法,但是由于BCH糾錯算法在動態(tài)運行時由輸入?yún)?shù)決定糾錯基本單元字節(jié)數(shù)、糾錯位數(shù),能夠針對糾錯位數(shù)分別為4位,8位,16位,糾錯位數(shù)為4位是指能夠糾錯1、2、3和4位位翻轉(zhuǎn)的情況,由于參數(shù)可變,構(gòu)建索引表會占用較大的內(nèi)存,針對512字節(jié)4位糾錯時,至少需要70k RAM,在內(nèi)存較小的嵌入式平臺運行代價太大,然而現(xiàn)有電力采集終端存在大內(nèi)存(arm+linnux平臺,外擴數(shù)十兆內(nèi)存)、小內(nèi)存(cortex M3/M4平臺,無外擴RAM)兩種。上述該糾錯算法無法在小內(nèi)存平臺、無外擴內(nèi)存平臺運行。必須提高其內(nèi)存容量,才能運行BCH糾錯算法,最終才能升級到2Gbit MLC NAND FLASH,但是這樣子一來提高了電力采集終端的生產(chǎn)成本。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是,提供一種占用電力采集終端系統(tǒng)RAM內(nèi)存較小,運行速度快的用于采用了 NAND FLASH的電力采集終端的糾錯方法。
[0005]為解決上述技術(shù)問題,本發(fā)明提供的技術(shù)方案為:用于采用了 MLC型的NANDFLASH的電力采集終端的糾錯方法,步驟一:確立采用BCH CODE算法實現(xiàn)數(shù)據(jù)糾錯;
步驟二:在BCH CODE算法中,確立最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4
位;
步驟三:利用最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4位這一規(guī)則,生成一張用于糾錯位翻轉(zhuǎn)的索引表;
步驟四:將索引表存儲在電力采集終端的所需的代碼的存儲區(qū)ROM中;
步驟五:當電力采集終端上的應用程序向Nand Flash寫入數(shù)據(jù)操作,BCH算法通過寫入的數(shù)據(jù)和該索引表計算生成ECC校驗,其中,按照每寫入512字節(jié)的數(shù)據(jù)生成7字節(jié)ECC校驗碼這一規(guī)則生成;
步驟六:電力采集終端上的應用程序?qū)and Flash進行讀取數(shù)據(jù)操作,按照512字節(jié)數(shù)據(jù)長度,7字節(jié)ECC校驗碼分4次進行BCH CODE糾錯運算,若沒有出現(xiàn)位翻轉(zhuǎn),BCH算法運行結(jié)束,若其中512字節(jié)出現(xiàn)1或者2或者3或者4位位翻轉(zhuǎn),BCH CODE算法利用步驟四中存儲在存儲區(qū)ROM中的索引表,通過BCH算法實現(xiàn)數(shù)據(jù)糾正。
[0006]采用上述方法后,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點:其中,最主要的改進點包括了兩點,我們截取了 BCH CODE算法只針對4位位翻轉(zhuǎn)的部分,使得BCH CODE算法得到了精簡,算法本身容量變小,其運行內(nèi)存縮小到40K左右,其次的話,我們的BCH CODE算法所生成的一張用于糾錯4位位翻轉(zhuǎn)的索引表,將該索引表固化在電力采集終端的ROM區(qū)后,電力采集終端每次上電首先需要初始化索引表指針,將內(nèi)存中的索引表指針,指向ROM中的索引表,然后才能開始調(diào)用,無需動態(tài)創(chuàng)建索引表,降低算法運行負載,提高了糾錯算法的運行速率,當NAND FLASH存讀取數(shù)據(jù)時候出現(xiàn)位翻轉(zhuǎn)(1位,2位,3位或者4位)時候,通過BCH算法實現(xiàn)數(shù)據(jù)糾正,進一步解決了電力采集終端的RAM的空間,最終本糾錯算法使得占用電力采集終端系統(tǒng)RAM內(nèi)存較小,最終使得小內(nèi)存(cortex M3/M4平臺,無外擴RAM)的電力采集終端,能夠運行BCH CODE算法,實現(xiàn)糾錯。
[0007]作為一種優(yōu)選,在步驟六中,電力采集終端在上電后,BCH CODE算法通過初始化索引表指針,將內(nèi)存中的索引表指針,指向固化在ROM中的索引表,然后開始使用固化在ROM中的索引表。采用這樣子設計的目的是BCH CODE算法,運行過程中只需要調(diào)用固化在ROM中的索引表,無需再創(chuàng)建了索引表,提高了 BCH CODE算法的運行速率。
【附圖說明】
[0008]圖1是本發(fā)明的流程圖。
【具體實施方式】
[0009]下面結(jié)合附圖1對本發(fā)明做進一步的詳細說明。
[0010]如附圖1所示,本發(fā)明用于采用了 MLC型的NAND FLASH的電力采集終端的糾錯方法,
步驟一:確立采用BCH CODE算法實現(xiàn)數(shù)據(jù)糾錯;
步驟二:在BCH CODE算法中,確立最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4
位;
步驟三:利用最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4位這一規(guī)則,生成一張用于糾錯位翻轉(zhuǎn)的索引表;
步驟四:將索引表存儲在電力采集終端的所需的代碼的存儲區(qū)ROM中;
步驟五:當電力采集終端上的應用程序向Nand Flash寫入數(shù)據(jù)操作,BCH算法通過寫入的數(shù)據(jù)和該索引表計算生成ECC校驗,生成ECC校驗按照每寫入512字節(jié)的數(shù)據(jù)生成7字節(jié)ECC校驗碼這一規(guī)則生成;
步驟六:電力采集終端上的應用程序?qū)and Flash進行讀取數(shù)據(jù)操作,按照512字節(jié)數(shù)據(jù)長度,7字節(jié)ECC校驗碼分4次進行BCH CODE糾錯運算,若沒有出現(xiàn)位翻轉(zhuǎn),BCH算法運行結(jié)束,若其中512字節(jié)出現(xiàn)1或者2或者3或者4位位翻轉(zhuǎn),BCH CODE算法利用步驟四中存儲在存儲區(qū)ROM中的索引表,通過BCH算法實現(xiàn)數(shù)據(jù)糾正,其中,BCH算法利用索引表實現(xiàn)數(shù)據(jù)糾,是BCH算法自身所能夠解決的,只要確立采用BCH CODE算法實現(xiàn)數(shù)據(jù)糾錯,再找到所需的索引表,就能夠達到糾錯的目的。
[0011]在步驟六中,電力采集終端在上電后,BCH CODE算法通過初始化索引表指針,將內(nèi)存中的索引表指針,指向固化在ROM中的索引表,然后開始使用固化在ROM中的索引表。
[0012]本申請的工作原理分析如下:BCH CODE算法,能夠糾錯針對1一16位翻轉(zhuǎn)的情況,實現(xiàn)數(shù)據(jù)糾錯,我們簡單地去理解就相當于精簡了 BCH CODE算法,只保留了針對1一4位翻轉(zhuǎn)的情況,并且將精簡了的BCH CODE算法生成的索引表,固化后存儲在存儲區(qū)ROM中,而并非像原本的BCH CODE算法一樣,每次糾錯過程需要動態(tài)生成索引表,也并非將索引表存儲在RAM中(原本的BCH CODE算法生成的索引表存儲在RAM中,每次運行均需重新生成,),通過固化后存儲在存儲區(qū)ROM中的索引表,只需要建立指針,等需要用到索引表時候,通過指針指引,找到索引表就好。上述過程不僅提高了 BCH CODE算法的運算效率,減小了 BCHCODE算法所需平臺的內(nèi)存容量,拓展了 BCH CODE算法的應用范圍。
[0013]以上僅就本發(fā)明的最佳實施例作了說明,但不能理解為是對權(quán)利要求的限制。本發(fā)明不僅限于以上實施例,凡在本發(fā)明獨立權(quán)利要求的保護范圍內(nèi)所作的各種變化均在本發(fā)明的保護范圍內(nèi)。
【主權(quán)項】
1.用于采用了NANDFLASH的電力采集終端的糾錯方法,步驟一:確立采用BCH CODE算法實現(xiàn)數(shù)據(jù)糾錯;其特征在于: 步驟二:在BCH CODE算法中,確立最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4位; 步驟三:利用最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4位這一規(guī)則,生成一張用于糾錯位翻轉(zhuǎn)的索引表; 步驟四:將索引表存儲在電力采集終端的所需的代碼的存儲區(qū)ROM中; 步驟五:當電力采集終端上的應用程序向Nand Flash寫入數(shù)據(jù)操作,BCH算法通過寫入的數(shù)據(jù)和該索引表生成ECC校驗,其中,按照每寫入512字節(jié)的數(shù)據(jù)生成7字節(jié)ECC校驗碼這一規(guī)則生成; 步驟六:電力采集終端上的應用程序?qū)and Flash進行讀取數(shù)據(jù)操作,按照512字節(jié)數(shù)據(jù)長度,7字節(jié)ECC校驗碼分4次進行BCH CODE算法運算,若沒有出現(xiàn)位翻轉(zhuǎn),BCH CODE算法運行結(jié)束,若其中512字節(jié)出現(xiàn)I或者2或者3或者4位位翻轉(zhuǎn),BCH CODE算法利用步驟四中存儲在存儲區(qū)ROM中的索引表,通過BCH CODE算法實現(xiàn)數(shù)據(jù)糾正。2.根據(jù)權(quán)利要求1所述的用于采用了NAND FLASH的電力采集終端的糾錯方法,其特征在于:在步驟六中,電力采集終端在上電后,通過初始化索引表指針,將內(nèi)存中的索引表指針,指向固化在ROM中的索引表,然后開始使用固化在ROM中的索引表。
【專利摘要】本發(fā)明公開了用于采用了NAND?FLASH的電力采集終端的糾錯方法,確立采用BCH?CODE算法實現(xiàn)數(shù)據(jù)糾錯;在BCH?CODE算法中,確立最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4位;利用最小糾錯單元固定為512字節(jié),糾錯位數(shù)固定為4位這一規(guī)則,生成一張用于糾錯位翻轉(zhuǎn)的索引表;將索引表存儲在電力采集終端的所需的代碼的存儲區(qū)ROM中;電力采集終端上的應用程序?qū)and?Flash進行讀取數(shù)據(jù)操作,出現(xiàn)1或者2或者3或者4位位翻轉(zhuǎn),BCH?CODE算法利用步驟四中存儲在存儲區(qū)ROM中的索引表,通過BCH算法實現(xiàn)數(shù)據(jù)糾正。本發(fā)明的優(yōu)點是在斷電后又能夠調(diào)用備用電源實現(xiàn)衛(wèi)生間的燈正常照明。
【IPC分類】G06F11/10
【公開號】CN105242982
【申請?zhí)枴緾N201510689479
【發(fā)明人】鄭堅江, 劉寧, 陳杰
【申請人】寧波三星醫(yī)療電氣股份有限公司
【公開日】2016年1月13日
【申請日】2015年10月22日