本發(fā)明涉及計(jì)算機(jī),特別是涉及一種flash數(shù)據(jù)備份及實(shí)時(shí)校驗(yàn)決策的方法。
背景技術(shù):
1、flash作為一種掉電非易失存儲(chǔ)器,使用flash存儲(chǔ)參數(shù)可以省去上電后重新注入?yún)?shù)的環(huán)節(jié),目前廣泛用于存儲(chǔ)需重復(fù)使用的重要參數(shù)。但是,由于flash的固有特性,其儲(chǔ)存的數(shù)據(jù)可能發(fā)生比特翻轉(zhuǎn)的現(xiàn)象,導(dǎo)致數(shù)據(jù)錯(cuò)誤。因此針對(duì)這一問題,通常需要對(duì)flash中的數(shù)據(jù)進(jìn)行校驗(yàn)。傳統(tǒng)的使用flash存儲(chǔ)數(shù)據(jù)的方法是在flash中劃分出兩個(gè)存儲(chǔ)區(qū)域,一個(gè)存儲(chǔ)區(qū)域用于存儲(chǔ)原始數(shù)據(jù),一個(gè)存儲(chǔ)區(qū)域用于存儲(chǔ)校驗(yàn)值,使用時(shí),一種方法是先讀出原始數(shù)據(jù),同時(shí)對(duì)原始數(shù)據(jù)計(jì)算校驗(yàn)和,將flash中的原始數(shù)據(jù)全部讀完后,再讀取flash中的校驗(yàn)和,將計(jì)算得到的校驗(yàn)和與讀出的校驗(yàn)和相比較,確認(rèn)flash中原始數(shù)據(jù)的正確性并對(duì)數(shù)據(jù)糾正。如果相同,則原始數(shù)據(jù)正確,如果不同,則數(shù)據(jù)發(fā)生了翻轉(zhuǎn),將校驗(yàn)結(jié)果上報(bào)處理器,由處理器進(jìn)一步?jīng)Q策。這種方法中讀數(shù)據(jù)、校驗(yàn)、決策使用正確數(shù)據(jù)是分時(shí)進(jìn)行的,因此實(shí)時(shí)性較差。另一種方法是采用兩片flash分別存儲(chǔ)原始數(shù)據(jù)和校驗(yàn)和據(jù),同時(shí)訪問數(shù)據(jù)flash和校驗(yàn)flash,實(shí)現(xiàn)對(duì)數(shù)據(jù)實(shí)時(shí)校驗(yàn),如果校驗(yàn)失敗則向處理器報(bào)告。但是上述兩種先讀取后校驗(yàn)或讀取校驗(yàn)后再上報(bào)糾正的方法均不能對(duì)flash中的原始數(shù)據(jù)實(shí)時(shí)取用,實(shí)時(shí)性較差,并且多片flash對(duì)管腳資源消耗較大。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有的flash數(shù)據(jù)校驗(yàn)和正確數(shù)據(jù)決策方法不能對(duì)flash中的原始數(shù)據(jù)實(shí)時(shí)取用,實(shí)時(shí)性較差,并且多片flash芯片對(duì)管腳資源消耗較大的問題,本發(fā)明提供一種flash數(shù)據(jù)備份及實(shí)時(shí)校驗(yàn)決策的方法。
2、為解決上述問題,本發(fā)明采取如下的技術(shù)方案:
3、一種flash數(shù)據(jù)備份及實(shí)時(shí)校驗(yàn)決策的方法,包括以下步驟:
4、步驟1:以相同長(zhǎng)度對(duì)原始數(shù)據(jù)進(jìn)行分組,每組原始數(shù)據(jù)輸入至校驗(yàn)和模塊,校驗(yàn)和模塊計(jì)算出當(dāng)前一組原始數(shù)據(jù)對(duì)應(yīng)的校驗(yàn)和并將計(jì)算得到的校驗(yàn)和緩存,計(jì)算完成校驗(yàn)和的該組原始數(shù)據(jù)經(jīng)寫flash模塊向flash芯片重復(fù)寫入兩遍,寫flash模塊再將緩存的校驗(yàn)和寫入flash芯片,直到所有分組的原始數(shù)據(jù)寫入完畢;
5、步驟2:讀flash模塊按照固定長(zhǎng)度從flash芯片每次讀出同一組數(shù)據(jù)中的兩份原始數(shù)據(jù)和對(duì)應(yīng)的校驗(yàn)和,并將兩份原始數(shù)據(jù)送入校驗(yàn)和模塊分別計(jì)算校驗(yàn)和,再將計(jì)算得到的兩個(gè)校驗(yàn)和和讀出的校驗(yàn)和送入決策模塊,讀flash模塊開始讀取下一組待決策的原始數(shù)據(jù)和校驗(yàn)和;
6、步驟3:決策模塊根據(jù)決策規(guī)則對(duì)三個(gè)校驗(yàn)和進(jìn)行比較,決策出正確的原始數(shù)據(jù)并輸出,并釋放緩存用于存儲(chǔ)讀flash模塊讀取完成的下一組待決策的原始數(shù)據(jù)和校驗(yàn)和。
7、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
8、本發(fā)明通過將原始數(shù)據(jù)按照相同長(zhǎng)度進(jìn)行分組,與校驗(yàn)和交疊存儲(chǔ),采用一片flash芯片存儲(chǔ)兩份原始數(shù)據(jù)和一份校驗(yàn)和數(shù)據(jù),每次讀出包括兩份原始數(shù)據(jù)和一份校驗(yàn)和數(shù)據(jù)的一組數(shù)據(jù)后,即可進(jìn)行校驗(yàn),根據(jù)校驗(yàn)結(jié)果決策出正確的原始數(shù)據(jù),實(shí)現(xiàn)了在節(jié)省管腳資源的前提下,對(duì)flash備份數(shù)據(jù)的實(shí)時(shí)校驗(yàn),并且能夠?qū)崟r(shí)決策取用正確的數(shù)據(jù),這種方法提高了程序運(yùn)行效率,能夠滿足對(duì)于實(shí)時(shí)性有較高要求的系統(tǒng)。
1.一種flash數(shù)據(jù)備份及實(shí)時(shí)校驗(yàn)決策的方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種flash數(shù)據(jù)備份及實(shí)時(shí)校驗(yàn)決策的方法,其特征在于,決策模塊的決策規(guī)則如下: