一種用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)校正等技術(shù)領(lǐng)域,特別涉及一種用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置及方法。
【背景技術(shù)】
[0002]目前存儲(chǔ)系統(tǒng)采用糾錯(cuò)碼(errorcorrect1n codes,ECC)來進(jìn)行檢測(cè)和校正出錯(cuò)的數(shù)據(jù)。通常,通過在一系列固定長(zhǎng)度的數(shù)據(jù)位后添加若干位固定的監(jiān)督位來實(shí)現(xiàn)。在檢測(cè)8比特?cái)?shù)據(jù)時(shí),若隨機(jī)定位錯(cuò)誤的數(shù)量由變量P表示,已知位置的符號(hào)錯(cuò)誤的數(shù)量由變量q表示,之后提供m個(gè)ECC的監(jiān)督位,貝Ijm,p與q之間的關(guān)系為m = 2p+q。
[0003]雖然ECC能夠?qū)Υ鎯?chǔ)系統(tǒng)中讀出的數(shù)據(jù)進(jìn)行校正,存放于存儲(chǔ)系統(tǒng)中的出錯(cuò)數(shù)據(jù)并沒有被校正。所以存儲(chǔ)系統(tǒng)中的數(shù)據(jù)錯(cuò)誤會(huì)不斷積累,導(dǎo)致錯(cuò)誤的數(shù)量太多,出現(xiàn)校正失敗的問題。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置,包括:
[0005]存儲(chǔ)裝置模塊,用于存儲(chǔ)數(shù)據(jù),其中所述存儲(chǔ)裝置模塊包括用于存儲(chǔ)數(shù)據(jù)的區(qū)域與用于存儲(chǔ)監(jiān)督位的區(qū)域;
[0006]編碼器模塊,用于獲取數(shù)據(jù),并根據(jù)所述數(shù)據(jù)生成對(duì)應(yīng)的監(jiān)督位;
[0007]解碼器模塊,用于當(dāng)所述存儲(chǔ)裝置模塊讀取所述數(shù)據(jù)時(shí),所述解碼器模塊根據(jù)所述監(jiān)督位檢驗(yàn)所述數(shù)據(jù)的正確性,當(dāng)發(fā)現(xiàn)所述數(shù)據(jù)中存在錯(cuò)誤數(shù)據(jù)時(shí),發(fā)送錯(cuò)誤信號(hào),同時(shí)將所述錯(cuò)誤數(shù)據(jù)進(jìn)行校正,并將校正后的數(shù)據(jù)發(fā)送給讀寫單元,讀寫單元將校正后數(shù)據(jù)重新寫回存儲(chǔ)裝置,以避免數(shù)據(jù)錯(cuò)誤增加。
[0008]所述的用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置,還包括讀寫單元模塊,用于讀寫數(shù)據(jù)及讀寫與所述數(shù)據(jù)相對(duì)應(yīng)的監(jiān)督位。
[0009]所述的用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置,所述編碼器模塊包括監(jiān)督位生成模塊與合并模塊;其中所述監(jiān)督位生成模塊用于根據(jù)所述數(shù)據(jù)生成監(jiān)督位;所述合并模塊用于將所述數(shù)據(jù)與所述監(jiān)督位按特定順序合并到一起,并將合并的數(shù)據(jù)輸出。
[0010]所述的用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置,所述解碼器模塊包括校驗(yàn)子生成模塊、數(shù)據(jù)解析模塊、糾錯(cuò)碼生成模塊、數(shù)據(jù)糾錯(cuò)模塊;其中所述校驗(yàn)子生成模塊用于根據(jù)所述數(shù)據(jù)與所述監(jiān)督位生成校驗(yàn)子,校驗(yàn)子用于生成糾錯(cuò)碼;所述數(shù)據(jù)解析模塊用于將所述數(shù)據(jù)與所述監(jiān)督位分離,輸出待校驗(yàn)數(shù)據(jù);所述糾錯(cuò)碼生成模塊用于根據(jù)所述校驗(yàn)子生成糾錯(cuò)碼與錯(cuò)誤信息;所述數(shù)據(jù)糾錯(cuò)模塊用于根據(jù)所述糾錯(cuò)碼對(duì)所述待校驗(yàn)數(shù)據(jù)進(jìn)行糾錯(cuò)O
[0011]本發(fā)明還提出一種用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的方法,包括:
[0012]步驟I,獲取數(shù)據(jù),并根據(jù)所述數(shù)據(jù)生成對(duì)應(yīng)的監(jiān)督位;
[0013]步驟2,當(dāng)所述存儲(chǔ)裝置讀取所述數(shù)據(jù)時(shí),所述解碼器根據(jù)所述監(jiān)督位檢驗(yàn)所述數(shù)據(jù)的正確性,當(dāng)發(fā)現(xiàn)所述數(shù)據(jù)中存在錯(cuò)誤數(shù)據(jù)時(shí),發(fā)送錯(cuò)誤信號(hào),同時(shí)將所述錯(cuò)誤數(shù)據(jù)進(jìn)行校正,并將校正后的數(shù)據(jù)發(fā)送給讀寫單元,讀寫單元將校正后數(shù)據(jù)重新寫回存儲(chǔ)裝置,以避免數(shù)據(jù)錯(cuò)誤增加。
[0014]所述的用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的方法,還包括讀寫數(shù)據(jù)及讀寫與所述數(shù)據(jù)相對(duì)應(yīng)的監(jiān)督位。
[0015]所述的用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的方法,所述步驟I包括根據(jù)所述數(shù)據(jù)生成監(jiān)督位;將所述數(shù)據(jù)與所述監(jiān)督位按特定順序合并到一起,并將合并的數(shù)據(jù)輸出。
[0016]所述的用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的方法,所述步驟2包括根據(jù)所述數(shù)據(jù)與所述監(jiān)督位生成校驗(yàn)子,校驗(yàn)子用于生成糾錯(cuò)碼;將所述數(shù)據(jù)與所述監(jiān)督位分離,輸出待校驗(yàn)數(shù)據(jù);根據(jù)所述校驗(yàn)子生成糾錯(cuò)碼與錯(cuò)誤信息;根據(jù)所述糾錯(cuò)碼對(duì)所述待校驗(yàn)數(shù)據(jù)進(jìn)行糾錯(cuò)。
[0017]由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0018]本發(fā)明在遇到無法校正錯(cuò)誤的時(shí)候返回錯(cuò)誤信號(hào),當(dāng)出現(xiàn)可校正的錯(cuò)誤時(shí),則將校正后的數(shù)據(jù)重新寫會(huì)存儲(chǔ)裝置,從而實(shí)現(xiàn)了數(shù)據(jù)自動(dòng)校正的目的,避免了數(shù)據(jù)錯(cuò)誤增多導(dǎo)致最后校正失敗的情況。
【附圖說明】
[0019]圖1示出了本發(fā)明的概要構(gòu)成圖。
[0020]圖2示出了本發(fā)明的編碼器模塊的概要構(gòu)成圖。
[0021 ]圖3示出了本發(fā)明編碼過程的流程圖。
[0022]圖4示出了本發(fā)明的解碼器模塊的概要構(gòu)成圖。
[0023]圖5示出了本發(fā)明解碼過程的流程圖。
[0024]其中附圖標(biāo)記為:
[0025]步驟101、步驟102、步驟103、步驟104。
【具體實(shí)施方式】
[0026]本發(fā)明提出一種用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的裝置,包括:
[0027]存儲(chǔ)裝置模塊,用于存儲(chǔ)數(shù)據(jù),其中所述存儲(chǔ)裝置模塊包括用于存儲(chǔ)數(shù)據(jù)的區(qū)域與用于存儲(chǔ)監(jiān)督位的區(qū)域;
[0028]編碼器模塊,用于獲取數(shù)據(jù),并根據(jù)所述數(shù)據(jù)生成對(duì)應(yīng)的監(jiān)督位;
[0029]解碼器模塊,用于當(dāng)所述存儲(chǔ)裝置模塊讀取所述數(shù)據(jù)時(shí),所述解碼器模塊根據(jù)所述監(jiān)督位檢驗(yàn)所述數(shù)據(jù)的正確性,當(dāng)發(fā)現(xiàn)所述數(shù)據(jù)中存在錯(cuò)誤數(shù)據(jù)時(shí),發(fā)送錯(cuò)誤信號(hào),同時(shí)將所述錯(cuò)誤數(shù)據(jù)進(jìn)行校正,并將校正后的數(shù)據(jù)發(fā)送給讀寫單元,讀寫單元將校正后數(shù)據(jù)重新寫回存儲(chǔ)裝置,以避免數(shù)據(jù)錯(cuò)誤增加。
[0030]還包括讀寫單元模塊,用于讀寫數(shù)據(jù)及讀寫與所述數(shù)據(jù)相對(duì)應(yīng)的監(jiān)督位。
[0031]所述編碼器模塊包括監(jiān)督位生成模塊與合并模塊;其中所述監(jiān)督位生成模塊用于根據(jù)所述數(shù)據(jù)生成監(jiān)督位;所述合并模塊用于將所述數(shù)據(jù)與所述監(jiān)督位按特定順序合并到一起,并將合并的數(shù)據(jù)輸出。
[0032]所述解碼器模塊包括校驗(yàn)子生成模塊、數(shù)據(jù)解析模塊、糾錯(cuò)碼生成模塊、數(shù)據(jù)糾錯(cuò)模塊;其中所述校驗(yàn)子生成模塊用于根據(jù)所述數(shù)據(jù)與所述監(jiān)督位生成校驗(yàn)子,校驗(yàn)子用于生成糾錯(cuò)碼;所述數(shù)據(jù)解析模塊用于將所述數(shù)據(jù)與所述監(jiān)督位分離,輸出待校驗(yàn)數(shù)據(jù);所述糾錯(cuò)碼生成模塊用于根據(jù)所述校驗(yàn)子生成糾錯(cuò)碼與錯(cuò)誤信息;所述數(shù)據(jù)糾錯(cuò)模塊用于根據(jù)所述糾錯(cuò)碼對(duì)所述待校驗(yàn)數(shù)據(jù)進(jìn)行糾錯(cuò)。
[0033]本發(fā)明還提出一種用于自動(dòng)校正訪問存儲(chǔ)裝置數(shù)據(jù)的方法,包括:
[0034]步驟I,獲取數(shù)據(jù),并根據(jù)所述數(shù)據(jù)生成對(duì)應(yīng)的監(jiān)督位;
[0035]步驟2,當(dāng)所述存儲(chǔ)裝置讀取所述數(shù)據(jù)時(shí),所述解碼器根據(jù)所述監(jiān)督位檢驗(yàn)所述數(shù)據(jù)的正確性,當(dāng)發(fā)現(xiàn)所述數(shù)據(jù)中存在錯(cuò)誤數(shù)據(jù)時(shí),發(fā)送錯(cuò)誤信號(hào),同時(shí)將所述錯(cuò)誤數(shù)據(jù)進(jìn)行校正,并將校正后的數(shù)據(jù)發(fā)送給讀寫單元,讀寫單元將校正后數(shù)據(jù)重新寫回存儲(chǔ)裝置,以避免數(shù)據(jù)錯(cuò)誤增加。
[0036]還包括讀寫數(shù)據(jù)及讀寫與所述數(shù)據(jù)相對(duì)應(yīng)的監(jiān)督位。
[0037]所述步驟I包括根據(jù)所述數(shù)據(jù)生成監(jiān)督位;將所述數(shù)據(jù)與所述監(jiān)督位按特定順序合并到一起,并將合并的數(shù)據(jù)輸出。
[0038]所述步驟2包括根據(jù)所述數(shù)據(jù)與所述監(jiān)督位生成校驗(yàn)子,校驗(yàn)子用于生成糾錯(cuò)碼;將所述數(shù)據(jù)與所述監(jiān)督位分離,輸出待校驗(yàn)數(shù)據(jù);根據(jù)所述校驗(yàn)子生成糾錯(cuò)碼與錯(cuò)誤信息;根據(jù)所述糾錯(cuò)碼對(duì)所述待校驗(yàn)數(shù)據(jù)進(jìn)行糾錯(cuò)。
[0039]以下為本發(fā)明實(shí)施例,如下所示:
[0040]本發(fā)明提供一種訪問數(shù)據(jù)中監(jiān)督位快速生成的方法并且在出現(xiàn)無法糾正的錯(cuò)誤時(shí)返回錯(cuò)誤信號(hào)并進(jìn)行校正后重新寫回存儲(chǔ)裝置,當(dāng)出現(xiàn)可校正的錯(cuò)誤時(shí),將校正后的數(shù)據(jù)重新寫回存儲(chǔ)裝置,達(dá)到自動(dòng)校正的目的。
[0041]本發(fā)明的具體技術(shù)如下:
[0042]在使用ECC算法解碼的過程中,同時(shí)生成錯(cuò)誤信號(hào),標(biāo)志著數(shù)據(jù)中錯(cuò)誤的個(gè)數(shù)和錯(cuò)誤是否可修復(fù)信號(hào),當(dāng)出現(xiàn)可校正的錯(cuò)誤時(shí),則將校正后的數(shù)據(jù)重新寫回存儲(chǔ)裝置。
[0043]本發(fā)明的原理是:在ECC解碼的過程中,利用糾錯(cuò)碼去檢查是否出現(xiàn)了不可校正的錯(cuò)誤。如果出現(xiàn)了不可校正的錯(cuò)誤,ECC解碼模塊則輸出一個(gè)錯(cuò)誤信號(hào),當(dāng)出現(xiàn)可校正的錯(cuò)誤時(shí),則將校正后的數(shù)據(jù)重新寫回存儲(chǔ)裝置。
[0044]通過本發(fā)明提供的監(jiān)督位生成方法,使得在解碼的過程中的發(fā)生的不可校正的數(shù)據(jù)錯(cuò)誤可以及時(shí)的表現(xiàn)出來,并且當(dāng)出現(xiàn)可校正的錯(cuò)誤時(shí),將校正后的數(shù)據(jù)重新寫回存儲(chǔ)裝置,實(shí)現(xiàn)自動(dòng)校正數(shù)據(jù),避免了數(shù)據(jù)錯(cuò)誤的增加最后導(dǎo)致校正失敗的情況。
[0045]如圖1所示,為本發(fā)明的結(jié)構(gòu)圖,在寫數(shù)據(jù)時(shí),ECC編碼器根據(jù)寫數(shù)據(jù)生成監(jiān)督位,并將數(shù)據(jù)和監(jiān)督位一同發(fā)送給讀寫單元;讀寫單元將數(shù)據(jù)和監(jiān)督位一起寫入到存儲(chǔ)裝置。在讀數(shù)據(jù)時(shí),讀寫單元將數(shù)據(jù)和監(jiān)督位一起從存儲(chǔ)裝置讀出并且發(fā)送給ECC解碼器,ECC解碼器根據(jù)數(shù)據(jù)監(jiān)督位判斷有沒有出現(xiàn)錯(cuò)誤,如果錯(cuò)誤可校正,將校正后的數(shù)據(jù)和錯(cuò)誤信號(hào)輸出,如果錯(cuò)誤不可校正,輸出一個(gè)不可校正的錯(cuò)誤信號(hào),當(dāng)出現(xiàn)可校正的錯(cuò)誤時(shí),則將校正后的數(shù)據(jù)發(fā)送給ECC編碼器,ECC編碼器將校正后的數(shù)據(jù)重新編碼后,由讀寫單元重新寫回到存儲(chǔ)裝置。
[