專(zhuān)利名稱(chēng):存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼和譯碼方法,裝置以及存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼和譯碼方法,裝置以及 存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備。
背景技術(shù):
目前,閃存已具備很多傳統(tǒng)硬盤(pán)無(wú)法比擬的良好特性,諸如小尺寸、大容量、非易 失性、低功耗等。閃存控制器中必須設(shè)計(jì)糾錯(cuò)碼(ECC,Err0r Correct Code)電路對(duì)數(shù)據(jù)進(jìn) 行保護(hù),在一定錯(cuò)誤范圍內(nèi)能夠恢復(fù)數(shù)據(jù)。數(shù)據(jù)寫(xiě)入閃存數(shù)據(jù)區(qū)的同時(shí)對(duì)數(shù)據(jù)編碼,編碼完 成后將編碼計(jì)算得到的校驗(yàn)位寫(xiě)入閃存校驗(yàn)區(qū)。從閃存讀取數(shù)據(jù)時(shí)需將校驗(yàn)位一同讀出, 進(jìn)行譯碼,檢測(cè)數(shù)據(jù)是否發(fā)生錯(cuò)誤,如果有錯(cuò),糾正數(shù)據(jù)錯(cuò)誤。對(duì)閃存糾錯(cuò)而言,常用的糾錯(cuò)碼ECC主要有兩種RS碼和BCH碼。RS碼是一類(lèi)具 有很強(qiáng)糾錯(cuò)能力的多進(jìn)制BCH碼,具有同時(shí)糾正突發(fā)錯(cuò)誤和隨機(jī)錯(cuò)誤的能力,因而廣泛應(yīng) 用于數(shù)據(jù)通信和數(shù)據(jù)存儲(chǔ)系統(tǒng)的差錯(cuò)控制中,目前RS碼已經(jīng)成為存儲(chǔ)系統(tǒng)的標(biāo)準(zhǔn)碼。BCH 碼主要糾正隨機(jī)單比特錯(cuò)誤,適合目前閃存芯片的數(shù)據(jù)出錯(cuò)模式,因而在閃存控制設(shè)計(jì)中 得到更多的應(yīng)用。一般情況下,對(duì)單層單元閃存多使用RS碼,對(duì)多層單元閃存多使用BCH 碼?,F(xiàn)有技術(shù)中,包括閃存在內(nèi)的存儲(chǔ)設(shè)備控制器設(shè)計(jì)通常需要根據(jù)設(shè)計(jì)需求,分別 設(shè)計(jì)使用RS碼糾錯(cuò)的存儲(chǔ)設(shè)備控制器、使用BCH碼糾錯(cuò)的存儲(chǔ)設(shè)備控制器或者使用其他糾 錯(cuò)方式的存儲(chǔ)設(shè)備控制器。從現(xiàn)有技術(shù)的方案可以看出,現(xiàn)有的存儲(chǔ)設(shè)備控制器糾錯(cuò)模式 的配置和糾錯(cuò)碼間的切換不靈活,當(dāng)切換到另一種糾錯(cuò)模式需要通過(guò)更換存儲(chǔ)設(shè)備控制器 或者進(jìn)行糾錯(cuò)碼切換,即更新存儲(chǔ)設(shè)備控制器的糾錯(cuò)電路部分,嚴(yán)重消耗成本,增加復(fù)雜度 和糾錯(cuò)效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼和譯碼方法,裝置以及存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè) 備,以提升糾錯(cuò)碼配置和糾錯(cuò)碼間的切換的靈活性,實(shí)現(xiàn)不同糾錯(cuò)模式的兼容。本發(fā)明的實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼方法,該方法包括接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編 碼采用的糾錯(cuò)碼模式;根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù)進(jìn)行編碼采用的 糾錯(cuò)碼模式;對(duì)所述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn) 位;將所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)。本發(fā)明的實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼方法,該方法包括
5
接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行 譯碼采用的糾錯(cuò)碼模式;根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定從存儲(chǔ)數(shù)據(jù)區(qū)讀取的所述 需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式;對(duì)所述存儲(chǔ)數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼;將譯碼后的所述存儲(chǔ)數(shù)據(jù)傳送給所述存儲(chǔ)數(shù)據(jù)的需求端。本發(fā)明的實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼裝置,該裝置包括糾錯(cuò)控制單元,用于提供糾錯(cuò)控制信號(hào),指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼 采用的糾錯(cuò)碼模式;模式編碼單元,用于解析所述糾錯(cuò)控制信號(hào),從至少兩種糾錯(cuò)碼模式中確定所述 數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元的控制下對(duì)所述數(shù)據(jù)采用所述確定 的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn)位;數(shù)據(jù)傳送單元,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述 數(shù)據(jù)、所述編碼校驗(yàn)位以及將編碼后的所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū)。本發(fā)明的實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼裝置,該裝置包括糾錯(cuò)控制單元,用于提供糾錯(cuò)控制信號(hào),指示從存儲(chǔ)數(shù)據(jù)區(qū)讀取的需傳送給需求 端的數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式;模式譯碼單元,用于解析所述糾錯(cuò)控制信號(hào),從至少兩種糾錯(cuò)碼模式中確定所述 數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元的控制下對(duì)所述數(shù)據(jù)采用所述確定 的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼;數(shù)據(jù)傳送單元,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述 數(shù)據(jù)以及將譯碼后的所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端。本發(fā)明的實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備,該設(shè)備包括糾錯(cuò)控制器,用于提供糾錯(cuò)控制信號(hào),指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采 用的糾錯(cuò)碼模式或從存數(shù)數(shù)據(jù)區(qū)讀取出來(lái)需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的糾 錯(cuò)碼模式;至少兩種糾錯(cuò)模式的編碼電路,用于接收和解析指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn) 行編碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),采用所述確定的糾錯(cuò)碼模式的編碼電路對(duì)所述 數(shù)據(jù)進(jìn)行編碼并生成編碼校驗(yàn)位至少兩種糾錯(cuò)模式的譯碼電路,用于接收和解析指示需傳送給需求端的數(shù)據(jù)進(jìn)行 譯碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼。數(shù)據(jù)傳送裝置,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述 數(shù)據(jù)、以及將譯碼后的所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端或?qū)⒕幋a后的所述數(shù)據(jù)和所述編 碼校驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū)。由上述本發(fā)明的實(shí)施例提供的技術(shù)方案可以看出,通過(guò)接收糾錯(cuò)控制信號(hào),所述 糾錯(cuò)控制信號(hào)用于指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式,根據(jù)所述糾 錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式,對(duì)所述數(shù) 據(jù)采用所述確定的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn)位,將所述數(shù)據(jù)和所述
6編碼校驗(yàn)位寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū),可以靈活的根據(jù)存儲(chǔ)設(shè)備芯片的出錯(cuò)模式配置更為合適的糾 錯(cuò)碼,使得存儲(chǔ)設(shè)備控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切換變得更加靈活,從而 實(shí)現(xiàn)糾錯(cuò)模式存儲(chǔ)設(shè)備對(duì)糾錯(cuò)模式的兼容性提升。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼方法示意圖;圖2為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼方法示意圖;圖3為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的方法示意圖;圖4為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼方法下數(shù)據(jù)位寬轉(zhuǎn)換示意圖;圖5為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼方法下數(shù)據(jù)位寬轉(zhuǎn)換示意圖;圖6為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼裝置示意圖;圖7為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼裝置示意圖;圖8為本發(fā)明一實(shí)施例存儲(chǔ)數(shù)據(jù)糾錯(cuò)的設(shè)備示意具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。要實(shí)現(xiàn)存儲(chǔ)設(shè)備對(duì)糾錯(cuò)模式的兼容性提升采用的兩種糾錯(cuò)模式可配置實(shí)際上就 是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì)為可兼容兩種糾錯(cuò)模式的形式?;诳刂菩?號(hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制 器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切換變得更加靈活,下面結(jié)合存儲(chǔ)數(shù)據(jù)糾錯(cuò)方法、 裝置和存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備的實(shí)施例加以描述。如下的存儲(chǔ)數(shù)據(jù)糾錯(cuò)方法、裝置以及設(shè)備適 用于對(duì)存儲(chǔ)數(shù)據(jù)的寫(xiě)入和讀取過(guò)程,寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)均可采用下述的實(shí)施例執(zhí)行。本發(fā)明一實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼方法,如圖1所示,包括如下的步驟S101,接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù) 進(jìn)行編碼采用的糾錯(cuò)碼模式。本實(shí)施例描述數(shù)據(jù)寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的編碼方法??梢允菓?yīng)用戶(hù)端的要求或者其他 需求,需要做寫(xiě)入數(shù)據(jù)的編碼操作,所述編碼操作由糾錯(cuò)控制信號(hào)觸發(fā),糾錯(cuò)控制信號(hào)在可 實(shí)施的多種糾錯(cuò)碼中指示所述編碼方法中對(duì)所述數(shù)據(jù)采用的糾錯(cuò)碼模式。S102,根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù)進(jìn)行編碼采 用的糾錯(cuò)碼模式。多種糾錯(cuò)碼模式共存的編碼電路下,根據(jù)糾錯(cuò)控制信號(hào)的指示從多種糾錯(cuò)碼模式 編碼電路中確定對(duì)所述數(shù)據(jù)進(jìn)行編碼的糾錯(cuò)碼模式。
S103,對(duì)所述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校 驗(yàn)位。若所述糾錯(cuò)控制信號(hào)指示按照多種糾錯(cuò)碼模式中的第一糾錯(cuò)碼模式進(jìn)行編碼,則 按照所述第一糾錯(cuò)碼模式對(duì)所述數(shù)據(jù)進(jìn)行編碼,生成編碼校驗(yàn)位。若所述糾錯(cuò)控制信號(hào)指示按照第二糾錯(cuò)碼模式進(jìn)行編碼,并且所述第二糾錯(cuò)碼模 式編碼占用的位寬非所述數(shù)據(jù)編碼可操作的數(shù)據(jù)位寬時(shí),對(duì)所述數(shù)據(jù)進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換, 當(dāng)轉(zhuǎn)化為可操作的數(shù)據(jù)位寬時(shí),對(duì)所述存儲(chǔ)數(shù)據(jù)采用第二糾錯(cuò)碼模式進(jìn)行編碼,同樣的,生 成編碼校驗(yàn)位。S104,將所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)。包括所述存儲(chǔ)數(shù)據(jù)區(qū)的存儲(chǔ)設(shè)備可以為閃存,可讀可寫(xiě)存儲(chǔ)器、存儲(chǔ)盤(pán)等。采用本實(shí)施例的上述方案實(shí)現(xiàn)不同糾錯(cuò)碼模式在同一存儲(chǔ)設(shè)備中的模式兼容,采 用兩種及其以上糾錯(cuò)模式可配置實(shí)際上就是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì) 為可兼容的多種糾錯(cuò)模式的形式?;诳刂菩盘?hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的 糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切 換變得更加靈活。本發(fā)明一實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼方法,如圖2所示,包括如下的步驟S201,接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示需傳送給需求端的存儲(chǔ)數(shù) 據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式。本實(shí)施例描述存儲(chǔ)數(shù)據(jù)讀取時(shí)的糾錯(cuò),即讀出存儲(chǔ)數(shù)據(jù)的糾錯(cuò)譯碼方法。接收存 儲(chǔ)數(shù)據(jù)糾錯(cuò)控制信號(hào),根據(jù)控制信號(hào)的指示對(duì)應(yīng)于需要讀取的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼時(shí)采用的 糾錯(cuò)碼模式。從存儲(chǔ)區(qū)讀取出來(lái)的存儲(chǔ)數(shù)據(jù)要發(fā)送到客戶(hù)端需要經(jīng)過(guò)譯碼處理,根據(jù)存儲(chǔ) 數(shù)據(jù)的特性以及不同糾錯(cuò)碼的適用,對(duì)于不同的存儲(chǔ)數(shù)據(jù)可能適用于不同的糾錯(cuò)碼模式。S202,根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定從存儲(chǔ)數(shù)據(jù)區(qū)讀取的 所述需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式。根據(jù)控制信號(hào)中攜帶的糾錯(cuò)模式指示確定讀取出的存儲(chǔ)數(shù)據(jù)的糾錯(cuò)碼模式。每一 譯碼系統(tǒng)中存在多種糾錯(cuò)碼模式,多種糾錯(cuò)碼模式的并存為數(shù)據(jù)譯碼提供了通用的譯碼方 法以及有效對(duì)不同存儲(chǔ)數(shù)據(jù)采用不同糾錯(cuò)碼模式進(jìn)行兼容,當(dāng)接收到糾錯(cuò)控制信號(hào)后,通 過(guò)控制信號(hào)的指示從譯碼系統(tǒng)中存在的多種糾錯(cuò)碼模式中選擇和所述控制信號(hào)指示對(duì)應(yīng) 的糾錯(cuò)碼模式,確定用來(lái)對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼錯(cuò)作。S203,對(duì)所述存儲(chǔ)數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼。若所述控制信號(hào)指示按照第一糾錯(cuò)碼模式進(jìn)行譯碼,則按照所述第一糾錯(cuò)碼模式 對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼。若所述控制信號(hào)指示按照第二糾錯(cuò)碼模式進(jìn)行編碼,則按照所 述第二糾錯(cuò)碼模式對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼,也可以是其他糾錯(cuò)碼模式。若其中任一采用 的糾錯(cuò)碼模式下譯碼占用的位寬非常規(guī)的位寬時(shí),如8bit,對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行數(shù)據(jù)位寬 轉(zhuǎn)換,當(dāng)轉(zhuǎn)化為可接受的數(shù)據(jù)位寬時(shí),對(duì)所述存儲(chǔ)數(shù)據(jù)采用對(duì)應(yīng)的糾錯(cuò)碼模式進(jìn)行譯碼S204,將譯碼后的所述存儲(chǔ)數(shù)據(jù)傳送給所述存儲(chǔ)數(shù)據(jù)的需求端。當(dāng)沒(méi)有進(jìn)行位寬轉(zhuǎn)換時(shí),將譯碼后的所述存儲(chǔ)數(shù)據(jù)直接傳送給所述存儲(chǔ)數(shù)據(jù)的需 求端。當(dāng)進(jìn)行位寬轉(zhuǎn)換則將同時(shí)讀取出存放在數(shù)據(jù)緩存中的所述存儲(chǔ)數(shù)據(jù)傳送給所述存儲(chǔ) 數(shù)據(jù)的需求端。所述存儲(chǔ)設(shè)備可以為閃存,可讀可寫(xiě)存儲(chǔ)器、存儲(chǔ)盤(pán)等。
采用本實(shí)施例的上述方案實(shí)現(xiàn)不同糾錯(cuò)碼模式在同一存儲(chǔ)設(shè)備中的模式兼容,采 用兩種及其以上糾錯(cuò)模式可配置實(shí)際上就是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì) 為可兼容的多種糾錯(cuò)模式的形式?;诳刂菩盘?hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的 糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切 換變得更加靈活。本發(fā)明一實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的方法,本實(shí)施例以一存儲(chǔ)數(shù)據(jù)從寫(xiě)入到讀取 的糾錯(cuò)編譯碼處理存儲(chǔ)數(shù)據(jù)從寫(xiě)入到讀取的糾錯(cuò)全過(guò)程由控制器控制在整個(gè)ECC電路中 實(shí)施,其中包括數(shù)據(jù)傳輸以及數(shù)據(jù)流向的控制。以閃存為例,如圖3所示,包括如下的步驟S301、進(jìn)行閃存寫(xiě)數(shù)據(jù)操作時(shí),控制器發(fā)送糾錯(cuò)控制信號(hào)指示數(shù)據(jù)寫(xiě)入采用的糾 錯(cuò)碼模式。數(shù)據(jù)寫(xiě)入閃存時(shí),需要進(jìn)行數(shù)據(jù)編碼操作以提升閃存的存儲(chǔ)性能和寫(xiě)入數(shù)據(jù)的可 靠性,所述數(shù)據(jù)可以是用戶(hù)數(shù)據(jù)或者其他需要進(jìn)行存儲(chǔ)的終端數(shù)據(jù)、服務(wù)器數(shù)據(jù)等。對(duì)待寫(xiě) 入數(shù)據(jù)的編碼操作通過(guò)編碼電路實(shí)施,本實(shí)施例的編譯碼系統(tǒng)中存在多種編碼電路,不同 的編碼電路可以采用的編碼模式不同,即不同的糾錯(cuò)碼模式,本實(shí)施例中由于可兼容不同 的糾錯(cuò)碼模式,所以提供了寫(xiě)數(shù)據(jù)時(shí)編碼的通用性,無(wú)需配置不同的編譯碼系統(tǒng),在一個(gè)編 譯碼系統(tǒng)中實(shí)現(xiàn)不同糾錯(cuò)碼模式的兼容。對(duì)于在不同的糾錯(cuò)碼模式中選擇對(duì)待寫(xiě)入數(shù)據(jù)采 用的糾錯(cuò)碼模式由控制器控制,通過(guò)糾錯(cuò)控制信號(hào)觸發(fā)??刂破靼l(fā)送控制信號(hào),所述控制信 號(hào)指示所述數(shù)據(jù)需要寫(xiě)入閃存的同時(shí)指示所述數(shù)據(jù)編碼時(shí)的糾錯(cuò)碼模式,所述糾錯(cuò)碼模式 可以包括BCH模式、RS模式或者其他已有或未來(lái)將會(huì)存在的其他糾錯(cuò)碼模式,這里稱(chēng)其為 第三糾錯(cuò)模式。S302、根據(jù)糾錯(cuò)控制信號(hào)攜帶的信息,從多種編碼電路對(duì)應(yīng)的糾錯(cuò)碼模式中確定 對(duì)待寫(xiě)入數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式。接收到所述控制信號(hào)后,按照控制信號(hào)的指示確定所述數(shù)據(jù)的編碼模式。當(dāng)待編 碼數(shù)據(jù)通過(guò)控制器控制輸入編譯碼系統(tǒng),控制器發(fā)送的控制信號(hào)指示了所述待編碼數(shù)據(jù)采 用的編碼模式,如按照步驟S301中的模式所示,若指示按照BCH模式進(jìn)行編碼,則對(duì)所述數(shù) 據(jù)進(jìn)行BCH模式的編碼,若按照RS模式進(jìn)行編碼,則對(duì)所述數(shù)據(jù)進(jìn)行RS模式的編碼,或者 指示按照第三模式進(jìn)行編碼。若沒(méi)有所述糾錯(cuò)控制信號(hào)指示的糾錯(cuò)碼模式對(duì)應(yīng)的編碼電 路,則默認(rèn)為預(yù)設(shè)的糾錯(cuò)碼模式對(duì)應(yīng)的編碼電路進(jìn)行數(shù)據(jù)編碼操作。S303、對(duì)所述采用的糾錯(cuò)碼模式占用位寬和數(shù)據(jù)傳輸占用的位寬進(jìn)行比較,若滿(mǎn) 足設(shè)定條件,則執(zhí)行步驟S305,否則轉(zhuǎn)至步驟S304執(zhí)行。進(jìn)行確定編碼模式操作還需要對(duì)適用的編碼模式進(jìn)行位寬轉(zhuǎn)換。由于不同糾錯(cuò)碼 模式適用的位寬不同,當(dāng)數(shù)據(jù)傳輸占用的位寬和不同模式編碼位寬不一致時(shí),需要進(jìn)行位 寬的轉(zhuǎn)換。比較不同糾錯(cuò)碼的位寬和數(shù)據(jù)傳輸位寬,當(dāng)一致,轉(zhuǎn)至步驟S305執(zhí)行。通過(guò)步 驟S302,若按照BCH模式編碼,由于BCH模式碼的位寬為8bits,和閃存端口數(shù)據(jù)傳輸位寬 一致,應(yīng)此可直接按照確定的BCH模式碼編碼。S304、進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換到確定的糾錯(cuò)碼模式占用位寬和數(shù)據(jù)編碼所需位寬一 致。若按照RS模式編碼,與所述BCH模式編碼不同的是在所述數(shù)據(jù)進(jìn)行RS編碼前需 對(duì)所述數(shù)據(jù)進(jìn)行數(shù)據(jù)位寬的轉(zhuǎn)換,對(duì)RS模式而言,RS模式碼以symbol為單位,symbol的位寬由數(shù)據(jù)長(zhǎng)度決定。閃存的糾錯(cuò)處理通常是對(duì)1個(gè)SeCtor(512ByteS)數(shù)據(jù)進(jìn)行操作。對(duì)1 個(gè)sector長(zhǎng)度的數(shù)據(jù)而言,RS碼的每一個(gè)symbol位寬是9bits,而閃存端口數(shù)據(jù)傳輸是以 字節(jié)為單位,因此,需要對(duì)RS模式下的數(shù)據(jù)進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換,如圖4所示。結(jié)合RS模式 以及閃存端口數(shù)據(jù)傳輸位寬的要求,在進(jìn)行RS模式編碼前要先對(duì)數(shù)據(jù)進(jìn)行Sbits到9bits 轉(zhuǎn)換,對(duì)數(shù)據(jù)位寬轉(zhuǎn)化后的數(shù)據(jù)進(jìn)行RS模式編碼,生成Sbits數(shù)據(jù)和Sbits的編碼校驗(yàn)位。上述的數(shù)據(jù)位寬的轉(zhuǎn)換可以采用下述的步驟實(shí)現(xiàn)將第1個(gè)9bits數(shù)據(jù)的低Sbits作為第1個(gè)Sbits數(shù)據(jù)輸出;將第1個(gè)9bits數(shù)據(jù)的最高bit與第2個(gè)9bits數(shù)據(jù)低7bits組合作為第2個(gè) Sbits數(shù)據(jù)輸出;...將第8個(gè)9bits數(shù)據(jù)的高8bits作為第9個(gè)8bits數(shù)據(jù)輸出;重復(fù)上述步驟,直到完成所有數(shù)據(jù)轉(zhuǎn)換完成。S305、采用確定的糾錯(cuò)碼模式對(duì)應(yīng)的編碼電路對(duì)數(shù)據(jù)進(jìn)行編碼,將編碼后的數(shù)據(jù) 和生成的編碼校驗(yàn)位寫(xiě)入閃存。糾錯(cuò)碼模式確定并且糾錯(cuò)碼位寬和數(shù)據(jù)傳輸位寬一致,采用確定的糾錯(cuò)碼模式對(duì) 應(yīng)的編碼電路對(duì)數(shù)據(jù)進(jìn)行編碼,生成編碼校驗(yàn)位,連同所述數(shù)據(jù)一并寫(xiě)入閃存中,所述寫(xiě)入 閃存的數(shù)據(jù)稱(chēng)為存儲(chǔ)數(shù)據(jù)。如上所述,由于存數(shù)設(shè)備端口數(shù)據(jù)傳輸?shù)奈粚挼南拗?,可能?huì)產(chǎn) 生和編碼的就錯(cuò)碼模式的數(shù)據(jù)位寬不一致的情況,此時(shí)通過(guò)控制信號(hào)的指示獲知糾錯(cuò)碼模 式后,需要根據(jù)存儲(chǔ)設(shè)備端口數(shù)據(jù)傳輸模式確定是否進(jìn)行數(shù)據(jù)位寬的轉(zhuǎn)換以保證編碼的有 效實(shí)施。待數(shù)據(jù)寫(xiě)入閃存獲得存儲(chǔ)數(shù)據(jù)編碼過(guò)程結(jié)束。譯碼的方法似編碼方法的逆過(guò)程,包括的步驟如下S306、進(jìn)行從閃存讀數(shù)據(jù)操作時(shí),接收糾錯(cuò)控制信號(hào),讀取所述控制信號(hào)指示對(duì)應(yīng) 的存儲(chǔ)數(shù)據(jù),所述糾錯(cuò)控制信號(hào)指示所述存儲(chǔ)數(shù)據(jù)譯碼采用的糾錯(cuò)碼模式。根據(jù)控制信號(hào)的指示首先從閃存中讀取數(shù)據(jù)需求端所需的存儲(chǔ)數(shù)據(jù),對(duì)所述存儲(chǔ) 數(shù)據(jù)進(jìn)行緩存和譯碼,由于在糾錯(cuò)碼模式下的譯碼不能和數(shù)據(jù)同步,需要額外消耗譯碼時(shí) 間,即檢錯(cuò)再糾錯(cuò),所以進(jìn)行檢錯(cuò)時(shí)需要將數(shù)據(jù)緩存,若數(shù)據(jù)無(wú)錯(cuò)則讀取緩存數(shù)據(jù)傳送給存 儲(chǔ)數(shù)據(jù)需求端。同編碼,此時(shí)的糾錯(cuò)控制信號(hào)用于指示存儲(chǔ)數(shù)據(jù)譯碼所采用的糾錯(cuò)碼模式。 編譯碼系統(tǒng)中同時(shí)存在支持不同糾錯(cuò)碼模式的編解碼電路,采用不同糾錯(cuò)碼模式的編解碼 電路對(duì)數(shù)據(jù)進(jìn)行編譯碼操作,對(duì)譯碼而言,多譯碼電路共存為在同一系統(tǒng)下對(duì)不同糾錯(cuò)碼 模式的選擇提供了通用性,使得不用糾錯(cuò)碼模式的譯碼可以在同一系統(tǒng)下實(shí)現(xiàn)兼容。譯碼 的處理同樣取決于糾錯(cuò)碼模式,對(duì)于采用系統(tǒng)中眾多糾錯(cuò)碼模式的譯碼電路中哪一種需要 根據(jù)控制信號(hào)的指示確定。S307、根據(jù)糾錯(cuò)控制信號(hào)攜帶的信息,從多種譯碼電路對(duì)應(yīng)的糾錯(cuò)碼模式中確定 對(duì)從閃存中讀出的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式。此步驟同步驟S302,不同在于,確定的糾錯(cuò)碼模式將用于對(duì)閃存中讀出的存儲(chǔ)數(shù) 據(jù)進(jìn)行譯碼。S308、對(duì)所述譯碼采用的糾錯(cuò)碼模式占用位寬和數(shù)據(jù)傳輸占用的位寬進(jìn)行比較, 若滿(mǎn)足設(shè)定條件,則執(zhí)行步驟S310,否則轉(zhuǎn)至步驟S309執(zhí)行。此步驟同步驟S303。不同在于,此時(shí)進(jìn)行的位寬比較為譯碼方法過(guò)程中的操作。
10
S309、進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換到確定的糾錯(cuò)碼模式占用位寬和數(shù)據(jù)編碼所需位寬一致。若控制信號(hào)指示糾錯(cuò)碼模式為RS模式,則進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換,與編碼時(shí)的數(shù)據(jù)位 寬轉(zhuǎn)換不同在于此時(shí)進(jìn)行的是9bits到Sbits轉(zhuǎn)換如圖5所示,轉(zhuǎn)換的步驟可以如下實(shí)現(xiàn):將第1個(gè)Sbits數(shù)據(jù)與第二個(gè)Sbits數(shù)據(jù)的最低位組合成第1個(gè)9bits數(shù)據(jù);將第2個(gè)Sbits數(shù)據(jù)的高位與第3個(gè)數(shù)據(jù)低2bit組合成第2個(gè)9bits數(shù)據(jù);將第3個(gè)Sbits數(shù)據(jù)的高位與第4個(gè)數(shù)據(jù)低3bit組合成第3個(gè)9bits數(shù)據(jù);將第8個(gè)Sbits數(shù)據(jù)的高位與第9個(gè)數(shù)據(jù)組合成第9個(gè)9bits數(shù)據(jù)。完成上述9步轉(zhuǎn)換后,數(shù)據(jù)組合方式又回到第一步的情況。重復(fù)9步轉(zhuǎn)換直到將 所有數(shù)據(jù)都轉(zhuǎn)換成9bits位寬。S310、采用確定的糾錯(cuò)碼模式對(duì)應(yīng)的譯碼電路對(duì)數(shù)據(jù)進(jìn)行譯碼,將譯碼后的存數(shù) 數(shù)據(jù)發(fā)送給存儲(chǔ)數(shù)據(jù)需求端。若確定為RCH模式譯碼,則按照RCH模式對(duì)應(yīng)的譯碼電路對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行譯 碼操作,對(duì)從閃存中讀取的存儲(chǔ)數(shù)據(jù)首先進(jìn)行檢錯(cuò),若沒(méi)有錯(cuò)誤則將緩存的所述存儲(chǔ)數(shù)據(jù) 傳送給用戶(hù)端,若發(fā)生錯(cuò)誤,則對(duì)緩存的所述存數(shù)數(shù)據(jù)進(jìn)行糾錯(cuò),將糾錯(cuò)后的正確存數(shù)數(shù)據(jù) 傳送給用戶(hù)端。同一編譯碼系統(tǒng)下,對(duì)不同數(shù)據(jù)的編譯碼操作,當(dāng)不同的糾錯(cuò)碼模式之間具有繼 承性或者貫連性時(shí),不同糾錯(cuò)碼模式對(duì)應(yīng)的電路可以部分復(fù)用,以RS碼和BCH碼為例,由于 RS碼是一種特殊的BCH碼,因此,兩種碼有很大一部分電路是可以復(fù)用的,如乘法器等,對(duì) 編解碼電路的復(fù)用可以有效的節(jié)約邏輯資源。采用本實(shí)施例的上述方案實(shí)現(xiàn)不同糾錯(cuò)碼模式在同一存儲(chǔ)設(shè)備中的模式兼容,采 用兩種及其以上糾錯(cuò)模式可配置實(shí)際上就是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì) 為可兼容的多種糾錯(cuò)模式的形式。基于控制信號(hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的 糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切 換變得更加靈活。本發(fā)明一實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼裝置,如圖6所示,由糾錯(cuò)控制單元 601、模式編碼單元602和數(shù)據(jù)傳送單元603組成,具體的糾錯(cuò)控制單元601用于提供糾錯(cuò)控制信號(hào),指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編 碼采用的糾錯(cuò)碼模式;模式編碼單元602用于解析所述糾錯(cuò)控制信號(hào),從至少兩種糾錯(cuò)碼 模式中確定所述數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元601的控制下對(duì)所 述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn)位;數(shù)據(jù)傳送單元 603用于在所述糾錯(cuò)控制單元601的控制下傳送所述糾錯(cuò)控制信號(hào)、所述數(shù)據(jù)、所述編碼校 驗(yàn)位以及將編碼后的所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū)。本實(shí)施例的裝置還包括數(shù)據(jù)位寬轉(zhuǎn)換單元604,用于確定采用的糾錯(cuò)碼模式后,對(duì) 所述采用的糾錯(cuò)碼模式下的數(shù)據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述存儲(chǔ)數(shù)據(jù)編碼可 操作數(shù)據(jù)位寬一致。本實(shí)施例所述模式編碼單元602具體包括模式選擇單元6021和至少兩種編碼電 路6022,所述模式選擇單元602解析指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼
11模式的糾錯(cuò)控制信號(hào),確定所述數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元601 的控制下選擇至少兩種編碼電路6022中和所述采用的糾錯(cuò)碼模式一致的編碼電路,至少 兩種編碼電路6022,根據(jù)模式選擇單元6021結(jié)果,所述選擇的編碼電路對(duì)所述數(shù)據(jù)進(jìn)行編 碼生成編碼校驗(yàn)位。本實(shí)施例中,糾錯(cuò)控制單元601對(duì)存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼裝置的工作及數(shù)據(jù)傳輸和 流向進(jìn)行控制,包括為模式編碼單元602提供控制信號(hào)用以指示模式編碼單元602對(duì)糾錯(cuò) 模式的確定,控制數(shù)據(jù)、信號(hào)在各個(gè)單元間的傳輸和流向以及控制數(shù)據(jù)位寬的轉(zhuǎn)換。模式編 碼單元602獲得糾錯(cuò)控制單元601的控制信號(hào)后確定進(jìn)行糾錯(cuò)編碼的編碼模式,以及根據(jù) 確定的糾錯(cuò)模式進(jìn)一步確定是否進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換,當(dāng)需要進(jìn)行數(shù)據(jù)位寬的轉(zhuǎn)換時(shí),在糾 錯(cuò)控制單位601的控制下由所述數(shù)據(jù)位寬轉(zhuǎn)換單元604進(jìn)行位寬轉(zhuǎn)換,數(shù)據(jù)位寬轉(zhuǎn)換單元 604處理后的數(shù)據(jù)被模式編碼單元按照確定的編碼模式進(jìn)行編碼,模式編碼單元602編碼 后的數(shù)據(jù)連同編碼生成的編碼校驗(yàn)位寫(xiě)入存儲(chǔ)設(shè)備的存儲(chǔ)數(shù)據(jù)區(qū)605。采用本實(shí)施例的上述方案實(shí)現(xiàn)不同糾錯(cuò)碼模式在同一存儲(chǔ)設(shè)備中的模式兼容,采 用兩種及其以上糾錯(cuò)模式可配置實(shí)際上就是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì) 為可兼容的多種糾錯(cuò)模式的形式?;诳刂菩盘?hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的 糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切 換變得更加靈活。本發(fā)明一實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼裝置,如圖7所示,包括如下糾錯(cuò)控制 單元701、模式譯碼單元702和數(shù)據(jù)傳送單元703,具體的,糾錯(cuò)控制單元701用于提供糾錯(cuò)控制信號(hào),指示從存儲(chǔ)數(shù)據(jù)區(qū)讀取的需傳送給 需求端的數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式;模式譯碼單元702,用于解析所述糾錯(cuò)控制信 號(hào),從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制 單元的控制下對(duì)所述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼;數(shù)據(jù)傳送單元 703,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述數(shù)據(jù)以及將譯碼后的 所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端。本實(shí)施例的裝置還包括數(shù)據(jù)位寬轉(zhuǎn)換單元704,用于確定采用的糾錯(cuò)碼模式后,對(duì) 所述采用的糾錯(cuò)碼模式下的數(shù)據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述數(shù)據(jù)譯碼可操作 數(shù)據(jù)位寬一致。本實(shí)施例所述模式譯碼單元702包括模式選擇單元7021和至少兩種譯碼電路 7022,所述模式選擇單元702解析指示從存數(shù)數(shù)據(jù)區(qū)讀取出來(lái)需傳送給需求端的數(shù)據(jù)進(jìn)行 譯碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),確定所述數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式,在所 述糾錯(cuò)控制單元701的控制下選擇至少兩種譯碼電路7022中和所述采用的糾錯(cuò)碼模式一 致的譯碼電路,至少兩種譯碼電路,根據(jù)模式選擇單元7021的結(jié)果,所述選擇的譯碼電路 對(duì)所述數(shù)據(jù)進(jìn)行譯碼。所述模式譯碼單元702還包括數(shù)據(jù)緩存單元7023,所述譯碼電路由 譯碼檢錯(cuò)電路和譯碼糾錯(cuò)電路組成,所述數(shù)據(jù)緩存單元7023對(duì)所述從存儲(chǔ)數(shù)據(jù)區(qū)讀取的 數(shù)據(jù)進(jìn)行緩存,當(dāng)譯碼檢錯(cuò)電路檢測(cè)出所述數(shù)據(jù)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存單元7023中提 取所述數(shù)據(jù)進(jìn)入譯碼糾錯(cuò)電路糾錯(cuò),或當(dāng)譯碼檢錯(cuò)電路檢測(cè)出所述數(shù)據(jù)沒(méi)有錯(cuò)誤,從所述 數(shù)據(jù)緩存單元7023中提取所述數(shù)據(jù)傳送給需求端。本實(shí)施例中,糾錯(cuò)控制單元701對(duì)存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼裝置的工作及存儲(chǔ)數(shù)據(jù)傳輸和流向進(jìn)行控制,包括為模式譯碼單元702提供控制信號(hào)用以指示模式譯碼單元702對(duì) 糾錯(cuò)模式的確定,控制存儲(chǔ)數(shù)據(jù)、信號(hào)在各個(gè)單元間的傳輸和流向以及控制數(shù)據(jù)位寬的轉(zhuǎn) 換。模式譯碼單元702獲得糾錯(cuò)控制單元701的控制信號(hào)后確定進(jìn)行糾錯(cuò)譯碼的譯碼模式, 以及根據(jù)確定的糾錯(cuò)模式進(jìn)一步確定是否進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換,當(dāng)需要進(jìn)行數(shù)據(jù)位寬的轉(zhuǎn)換 時(shí),在糾錯(cuò)控制單位701的控制下由所述數(shù)據(jù)位寬轉(zhuǎn)換單元704進(jìn)行位寬轉(zhuǎn)換,數(shù)據(jù)位寬轉(zhuǎn) 換單元704處理后的存儲(chǔ)數(shù)據(jù)被模式譯碼單元702按照確定的譯碼模式進(jìn)行編碼,模式譯 碼單元702譯碼后,將緩存的所述數(shù)據(jù)傳送給數(shù)據(jù)需求端706。采用本實(shí)施例的上述方案實(shí)現(xiàn)不同糾錯(cuò)碼模式在同一存儲(chǔ)設(shè)備中的模式兼容,采 用兩種及其以上糾錯(cuò)模式可配置實(shí)際上就是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì) 為可兼容的多種糾錯(cuò)模式的形式?;诳刂菩盘?hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的 糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切 換變得更加靈活。本發(fā)明一實(shí)施例提供存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備,包括糾錯(cuò)控制裝置,用于提供糾錯(cuò)控制信號(hào),指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼 采用的糾錯(cuò)碼模式或從存數(shù)數(shù)據(jù)區(qū)讀取出來(lái)需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的 糾錯(cuò)碼模式;至少兩種糾錯(cuò)模式的編碼電路,用于接收和解析指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù) 據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),采用所述確定的糾錯(cuò)碼模式的編碼電路對(duì) 所述數(shù)據(jù)進(jìn)行編碼并生成編碼校驗(yàn)位;至少兩種糾錯(cuò)模式的譯碼電路,用于接收和解析指 示需傳送給需求端的數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),采用所述確定的糾 錯(cuò)碼模式的譯碼電路進(jìn)行譯碼;數(shù)據(jù)傳送裝置,用于在所述糾錯(cuò)控制裝置的控制下傳送所 述糾錯(cuò)控制信號(hào)、所述數(shù)據(jù)、以及將譯碼后的所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端或?qū)⒕幋a 后的所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū);進(jìn)一步的,還可以包括數(shù)據(jù)位寬轉(zhuǎn) 換裝置,用于確定采用的糾錯(cuò)碼模式后,對(duì)糾錯(cuò)碼位寬和數(shù)據(jù)傳輸位寬不一致時(shí)的所述采 用的糾錯(cuò)碼模式下的數(shù)據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述數(shù)據(jù)編碼或譯碼可操作 數(shù)據(jù)位寬一致;進(jìn)一步的,還可以包括數(shù)據(jù)緩存裝置,所述譯碼電路由譯碼檢錯(cuò)電路和譯碼 糾錯(cuò)電路組成,所述數(shù)據(jù)緩存裝置對(duì)從存儲(chǔ)數(shù)據(jù)區(qū)讀取的數(shù)據(jù)進(jìn)行緩存,當(dāng)譯碼檢錯(cuò)電路 檢測(cè)出所述數(shù)據(jù)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存裝置中提取所述數(shù)據(jù)進(jìn)入譯碼糾錯(cuò)電路糾錯(cuò), 或當(dāng)譯碼檢錯(cuò)電路檢測(cè)出所述數(shù)據(jù)沒(méi)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存裝置中提取所述數(shù)據(jù)傳送 給需求端。本實(shí)施例采用的編碼電路和譯碼電路根據(jù)不同糾錯(cuò)碼模式的相關(guān)性可部分復(fù)用, 如圖8所示復(fù)用電路。下面具體以RS糾錯(cuò)碼和BCH糾錯(cuò)碼并存的設(shè)備為例加以說(shuō)明,如圖8所示。糾錯(cuò)控制裝置根據(jù)設(shè)計(jì)需求選擇RS糾錯(cuò)碼或BCH糾錯(cuò)碼實(shí)現(xiàn)糾錯(cuò)功能??刂茢?shù) 據(jù)流向,如果選擇RS碼,需要經(jīng)過(guò)數(shù)據(jù)位寬轉(zhuǎn)換裝置。數(shù)據(jù)位寬轉(zhuǎn)換裝置,主要針對(duì)RS碼。RS碼糾錯(cuò)以symbol為單位,symbol位寬由 數(shù)據(jù)長(zhǎng)度決定。閃存糾錯(cuò)通常是對(duì)1個(gè)SeCtor(512ByteS)數(shù)據(jù)進(jìn)行操作。對(duì)Ifsector 長(zhǎng)度的數(shù)據(jù)而言,RS碼的每一個(gè)symbol位寬是9bits,而flash端數(shù)據(jù)傳輸是以字節(jié)為單 位,因此,糾錯(cuò)單元到Flash之間必須要進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換。數(shù)據(jù)送往算法可選單元(選擇 RS碼)進(jìn)行RS編碼前,要先對(duì)數(shù)據(jù)進(jìn)行8b-9b轉(zhuǎn)換,編碼輸出數(shù)據(jù)和校驗(yàn)位位寬為Sbits ;
13數(shù)據(jù)從flash讀出送往算法可選單元進(jìn)行RS譯碼前,也需要先對(duì)數(shù)據(jù)進(jìn)行8b-9b轉(zhuǎn)換。此 外,譯碼輸出的錯(cuò)誤位置也是symbol為基本單位(9bits位寬),為與數(shù)據(jù)位寬一致,譯碼輸 出也需要數(shù)據(jù)位寬轉(zhuǎn)換單元進(jìn)行9b_8b位寬轉(zhuǎn)換。轉(zhuǎn)換過(guò)程為分為如下9步1、將第1個(gè)Sbits數(shù)據(jù)與第二個(gè)Sbits數(shù)據(jù)的最低位組合成第1個(gè)9bits數(shù)據(jù);2、將第2個(gè)Sbits數(shù)據(jù)的高位與第3個(gè)數(shù)據(jù)低2bit組合成第2個(gè)9bits數(shù)據(jù);3、將第3個(gè)Sbits數(shù)據(jù)的高位與第4個(gè)數(shù)據(jù)低3bit組合成第3個(gè)9bits數(shù)據(jù);9、將第8個(gè)Sbits數(shù)據(jù)的高位與第9個(gè)數(shù)據(jù)組合成第9個(gè)9bits數(shù)據(jù)。完成上述9步轉(zhuǎn)換后,數(shù)據(jù)組合方式又回到1的情況。重復(fù)9步轉(zhuǎn)換直到將所有 數(shù)據(jù)都轉(zhuǎn)換成9bits位寬。對(duì)RS譯碼過(guò)程,譯碼輸出的錯(cuò)誤位置也是symbol為基本單位(9bits位寬),為與 數(shù)據(jù)位寬一致,需要進(jìn)行9b-8b位寬轉(zhuǎn)換,該轉(zhuǎn)換是8b-9b位寬轉(zhuǎn)換的逆過(guò)程,轉(zhuǎn)換過(guò)程如 下圖所示轉(zhuǎn)換過(guò)程分為如下9步1、將第1個(gè)9bits數(shù)據(jù)的低Sbits作為第1個(gè)Sbits數(shù)據(jù)輸出;2、將第1個(gè)9bits數(shù)據(jù)的最高bit與第2個(gè)9bits數(shù)據(jù)低7bits組合作為第2個(gè) Sbits數(shù)據(jù)輸出;3、將第8個(gè)9bits數(shù)據(jù)的高8bits作為第9個(gè)8bits數(shù)據(jù)輸出。重復(fù)上述9步,直到完成所有數(shù)據(jù)轉(zhuǎn)換。至少兩種糾錯(cuò)模式的編碼電路和譯碼電路,以RS糾錯(cuò)碼模式和BCH糾錯(cuò)碼模式為 例,每一種糾錯(cuò)碼實(shí)現(xiàn)部分都包含編碼和譯碼,編碼是針對(duì)數(shù)據(jù)寫(xiě)入閃存過(guò)程,而譯碼則是 針對(duì)數(shù)據(jù)從閃存的讀過(guò)程。包含RS碼編/譯碼電路RS-Encoder和RS-Decoder,BCH碼編 /譯碼電路BCH-Encoder和BCH-Decoder。兩部分分別完成RS碼和BCH碼譯碼功能。RS糾 錯(cuò)以symbol為單位(9bits位寬),因此RS-Encoder和RS-Decoder的輸入輸出端口位寬都 為9bits,而B(niǎo)CH-Encoder和BCH-Decoder的輸入輸出端口位寬則都為8bits。所述編譯碼 電路由糾錯(cuò)控制裝置控制,根據(jù)糾錯(cuò)控制裝置發(fā)送的糾錯(cuò)控制信號(hào)選擇RS/BCH兩種糾錯(cuò) 碼中的一種進(jìn)行編碼和譯碼。一旦糾錯(cuò)碼選定,另一種糾錯(cuò)碼的非公用部分電路會(huì)自動(dòng)屏 蔽。根據(jù)糾錯(cuò)控制單元的選擇信號(hào)選擇RS與BCH中一種實(shí)現(xiàn)數(shù)據(jù)糾錯(cuò)。RS碼是一種特殊 的BCH碼,因此,兩種碼有很大一部分電路是可以復(fù)用的,如乘法器等,復(fù)用電路可以節(jié)約 邏輯資源。數(shù)據(jù)緩存裝置數(shù)據(jù)緩存裝置主要針對(duì)譯碼,編碼不需要數(shù)據(jù)緩存,這是因?yàn)镽S/ BCH編碼可以與數(shù)據(jù)傳輸同步進(jìn)行,而譯碼則不能做到與數(shù)據(jù)傳輸同步,需要消耗額外譯碼 時(shí)間。當(dāng)數(shù)據(jù)從閃存中讀回時(shí),同時(shí)送入數(shù)據(jù)緩存裝置和譯碼電路。完成譯碼基本運(yùn)算后, 將數(shù)據(jù)從緩存讀出,通過(guò)糾錯(cuò)控制裝置送往數(shù)據(jù)需求端,同時(shí)對(duì)數(shù)據(jù)進(jìn)行糾正。RS/BCH譯碼 都不能做到與數(shù)據(jù)同步,需要額外消耗譯碼時(shí)間,需要先檢錯(cuò)再糾錯(cuò)。檢錯(cuò)的同時(shí)要將數(shù)據(jù) 寄存下來(lái)。若數(shù)據(jù)無(wú)錯(cuò),直接將數(shù)據(jù)讀出送往數(shù)據(jù)需求端,若數(shù)據(jù)有錯(cuò),糾錯(cuò)時(shí)將數(shù)據(jù)讀出, 同時(shí)進(jìn)行錯(cuò)誤糾正。數(shù)據(jù)緩存裝置作用就是緩存數(shù)據(jù)。為彌補(bǔ)譯碼延遲時(shí)間,增大數(shù)據(jù)緩存裝置的存儲(chǔ)容量,可以設(shè)計(jì)流水譯碼結(jié)構(gòu),保證閃存讀數(shù)據(jù)帶寬不受譯碼影響。數(shù)據(jù)傳送裝置,用于在所述糾錯(cuò)控制裝置的控制下傳送所述糾錯(cuò)控制信號(hào)、所述 數(shù)據(jù)、以及將譯碼后的所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端或?qū)⒕幋a后的所述數(shù)據(jù)和所述編 碼校驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū)。具體體現(xiàn)為硬件裝置或者不以單獨(dú)的實(shí)體裝置存在于所述 設(shè)備中,可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成。上述實(shí)施例的存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備可以是閃存控制器等具有存儲(chǔ)數(shù)據(jù)編譯碼能力 的設(shè)備,如在閃存控制器中,同時(shí)設(shè)計(jì)了兩種常用糾錯(cuò)碼RS和BCH。根據(jù)具體設(shè)計(jì)需求,只 需要在初始時(shí)對(duì)閃存控制器進(jìn)行配置,即可任意選擇RS和BCH中的一種,不需要修改控制 器。閃存控制器同時(shí)兼容多種糾錯(cuò)碼,可靈活配置,這樣做使得閃存控制器兼容性更好。同 時(shí),考慮到RS碼和BCH碼的相似性,在具體實(shí)現(xiàn)時(shí),有很大一部分電路是可以復(fù)用的,也就 是說(shuō),兼容這樣兩種特殊的算法,有效減少邏輯資源的使用。采用本實(shí)施例的上述方案實(shí)現(xiàn)不同糾錯(cuò)碼模式在同一存儲(chǔ)設(shè)備中的模式兼容,采 用兩種及其以上糾錯(cuò)模式可配置實(shí)際上就是要把存儲(chǔ)設(shè)備控制器中的糾錯(cuò)電路部分設(shè)計(jì) 為可兼容的多種糾錯(cuò)模式的形式?;诳刂菩盘?hào)來(lái)選擇存儲(chǔ)數(shù)據(jù)的糾錯(cuò)模式,基于不同的 糾錯(cuò)模式進(jìn)行相應(yīng)的位寬轉(zhuǎn)化以使得內(nèi)存控制器中對(duì)各內(nèi)存設(shè)備的糾錯(cuò)模式的配置和切 換變得更加靈活。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍 為準(zhǔn)。
權(quán)利要求
一種存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼方法,其特征在于,該方法包括接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式;根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式;對(duì)所述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn)位;將所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)。
2.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模 式的編碼電路進(jìn)行編碼前還包括對(duì)所述確定采用的糾錯(cuò)碼模式下的數(shù)據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述數(shù)據(jù) 編碼可操作數(shù)據(jù)位寬一致。
3.一種存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼方法,其特征在于,該方法包括接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼 采用的糾錯(cuò)碼模式;根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定從存儲(chǔ)數(shù)據(jù)區(qū)讀取的所述需傳 送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式;對(duì)所述存儲(chǔ)數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼;將譯碼后的所述存儲(chǔ)數(shù)據(jù)傳送給所述存儲(chǔ)數(shù)據(jù)的需求端。
4.如權(quán)利要求3所述的方法,其特征在于,所述對(duì)所述存儲(chǔ)數(shù)據(jù)采用所述確定的糾錯(cuò) 碼模式的譯碼電路進(jìn)行譯碼前還包括對(duì)所述確定采用的糾錯(cuò)碼模式下的數(shù)據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述存儲(chǔ) 數(shù)據(jù)譯碼可操作數(shù)據(jù)位寬一致。
5.如權(quán)利要求3或4所述的方法,其特征在于,所述對(duì)所述存儲(chǔ)數(shù)據(jù)采用所述確定的糾 錯(cuò)碼模式的譯碼電路進(jìn)行譯碼包括對(duì)從存儲(chǔ)數(shù)據(jù)區(qū)讀取的所述存儲(chǔ)數(shù)據(jù)進(jìn)行緩存;對(duì)所述存儲(chǔ)數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼檢錯(cuò);若發(fā)生錯(cuò)誤數(shù)據(jù),對(duì)緩存的所述存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼糾錯(cuò),否則將緩存的存儲(chǔ)數(shù)據(jù)作為 譯碼后的存儲(chǔ)數(shù)據(jù)。
6.一種存儲(chǔ)數(shù)據(jù)糾錯(cuò)的編碼裝置,其特征在于,包括糾錯(cuò)控制單元,用于提供糾錯(cuò)控制信號(hào),指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用 的糾錯(cuò)碼模式;模式編碼單元,用于解析所述糾錯(cuò)控制信號(hào),從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù) 進(jìn)行編碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元的控制下對(duì)所述數(shù)據(jù)采用所述確定的糾 錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn)位;數(shù)據(jù)傳送單元,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述數(shù)據(jù)、 所述編碼校驗(yàn)位以及將編碼后的所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括數(shù)據(jù)位寬轉(zhuǎn)換單元,用于確定采用的糾錯(cuò)碼模式后,對(duì)所述采用的糾錯(cuò)碼模式下的數(shù) 據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述存儲(chǔ)數(shù)據(jù)編碼可操作數(shù)據(jù)位寬一致。
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述模式編碼單元包括模式選擇單元和 至少兩種編碼電路,所述模式選擇單元解析指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式的 糾錯(cuò)控制信號(hào),確定所述數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元的控制下 選擇至少兩種編碼電路中和所述采用的糾錯(cuò)碼模式一致的編碼電路,至少兩種編碼電路,根據(jù)模式選擇單元的結(jié)果,所述選擇的編碼電路對(duì)所述數(shù)據(jù)進(jìn)行 編碼生成編碼校驗(yàn)位。
9.一種存儲(chǔ)數(shù)據(jù)糾錯(cuò)的譯碼裝置,其特征在于,包括糾錯(cuò)控制單元,用于提供糾錯(cuò)控制信號(hào),指示從存儲(chǔ)數(shù)據(jù)區(qū)讀取的需傳送給需求端的 數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式;模式譯碼單元,用于解析所述糾錯(cuò)控制信號(hào),從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù) 進(jìn)行譯碼采用的糾錯(cuò)碼模式,在所述糾錯(cuò)控制單元的控制下對(duì)所述數(shù)據(jù)采用所述確定的糾 錯(cuò)碼模式的譯碼電路進(jìn)行譯碼;數(shù)據(jù)傳送單元,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述數(shù)據(jù) 以及將譯碼后的所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端。
10.如權(quán)利要求9所述的裝置,其特征在于,還包括數(shù)據(jù)位寬轉(zhuǎn)換單元,用于確定采用的糾錯(cuò)碼模式后,對(duì)所述采用的糾錯(cuò)碼模式下的數(shù) 據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述數(shù)據(jù)譯碼可操作數(shù)據(jù)位寬一致。
11.如權(quán)利要求9或11所述的裝置,其特征在于,所述模式譯碼單元包括模式選擇單元 和至少兩種譯碼電路,所述模式選擇單元解析指示從存數(shù)數(shù)據(jù)區(qū)讀取出來(lái)需傳送給需求端的數(shù)據(jù)進(jìn)行譯碼 采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),確定所述數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式,在所述糾 錯(cuò)控制單元的控制下選擇至少兩種譯碼電路中和所述采用的糾錯(cuò)碼模式一致的譯碼電路,至少兩種譯碼電路,根據(jù)模式選擇單元的結(jié)果,所述選擇的譯碼電路對(duì)所述數(shù)據(jù)進(jìn)行 譯碼。
12.如權(quán)利要求11所述的裝置,其特征在于,所述模式譯碼單元還包括數(shù)據(jù)緩存單元, 所述譯碼電路由譯碼檢錯(cuò)電路和譯碼糾錯(cuò)電路組成,所述數(shù)據(jù)緩存單元對(duì)所述從存儲(chǔ)數(shù)據(jù)區(qū)讀取的數(shù)據(jù)進(jìn)行緩存,當(dāng)譯碼檢錯(cuò)電路檢測(cè)出 所述數(shù)據(jù)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存單元中提取所述數(shù)據(jù)進(jìn)入譯碼糾錯(cuò)電路糾錯(cuò),或當(dāng)譯 碼檢錯(cuò)電路檢測(cè)出所述數(shù)據(jù)沒(méi)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存單元中提取所述數(shù)據(jù)傳送給需求 端。
13.一種存儲(chǔ)數(shù)據(jù)糾錯(cuò)設(shè)備,其特征在于,包括糾錯(cuò)控制器,用于提供糾錯(cuò)控制信號(hào),指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用的 糾錯(cuò)碼模式或從存數(shù)數(shù)據(jù)區(qū)讀取出來(lái)需傳送給需求端的存儲(chǔ)數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼 模式;至少兩種糾錯(cuò)模式的編碼電路,用于接收和解析指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編 碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),采用所述確定的糾錯(cuò)碼模式的編碼電路對(duì)所述數(shù)據(jù) 進(jìn)行編碼并生成編碼校驗(yàn)位至少兩種糾錯(cuò)模式的譯碼電路,用于接收和解析指示需傳送給需求端的數(shù)據(jù)進(jìn)行譯碼采用的糾錯(cuò)碼模式的糾錯(cuò)控制信號(hào),采用所述確定的糾錯(cuò)碼模式的譯碼電路進(jìn)行譯碼。數(shù)據(jù)傳送裝置,用于在所述糾錯(cuò)控制單元的控制下傳送所述糾錯(cuò)控制信號(hào)、所述數(shù)據(jù)、 以及將譯碼后的所述數(shù)據(jù)傳送給所述數(shù)據(jù)的需求端或?qū)⒕幋a后的所述數(shù)據(jù)和所述編碼校 驗(yàn)位寫(xiě)入所述存儲(chǔ)數(shù)據(jù)區(qū)。
14.如權(quán)利要求13所述的設(shè)備,其特征在于,所述設(shè)備還包括數(shù)據(jù)位寬轉(zhuǎn)換單元,用于確定采用的糾錯(cuò)碼模式后,對(duì)所述采用的糾錯(cuò)碼模式下的數(shù) 據(jù)位寬進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換所述數(shù)據(jù)位寬與所述數(shù)據(jù)編碼或譯碼可操作數(shù)據(jù)位寬一致。
15.如權(quán)利要求13或14所述的設(shè)備,其特征在于,所述設(shè)備還包括數(shù)據(jù)緩存裝置,所述 譯碼電路由譯碼檢錯(cuò)電路和譯碼糾錯(cuò)電路組成,所述數(shù)據(jù)緩存單元對(duì)從存儲(chǔ)數(shù)據(jù)區(qū)讀取的數(shù)據(jù)進(jìn)行緩存,當(dāng)譯碼檢錯(cuò)電路檢測(cè)出所述 數(shù)據(jù)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存單元中提取所述數(shù)據(jù)進(jìn)入譯碼糾錯(cuò)電路糾錯(cuò),或當(dāng)譯碼檢 錯(cuò)電路檢測(cè)出所述數(shù)據(jù)沒(méi)有錯(cuò)誤時(shí),從所述數(shù)據(jù)緩存單元中提取所述數(shù)據(jù)傳送給需求端。
16.如權(quán)利要求13所述的設(shè)備,其特征在于,所述采用的編碼電路和所述采用的譯碼 電路根據(jù)對(duì)應(yīng)的糾錯(cuò)碼模式間的相關(guān)性可部分復(fù)用。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種存數(shù)據(jù)糾錯(cuò)的方法、裝置和設(shè)備,具體包括接收糾錯(cuò)控制信號(hào),所述糾錯(cuò)控制信號(hào)用于指示待寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式;根據(jù)所述糾錯(cuò)控制信號(hào)從至少兩種糾錯(cuò)碼模式中確定所述數(shù)據(jù)進(jìn)行編碼采用的糾錯(cuò)碼模式;對(duì)所述數(shù)據(jù)采用所述確定的糾錯(cuò)碼模式的編碼電路進(jìn)行編碼并生成編碼校驗(yàn)位;將所述數(shù)據(jù)和所述編碼校驗(yàn)位寫(xiě)入存儲(chǔ)數(shù)據(jù)區(qū),以實(shí)現(xiàn)在同一存儲(chǔ)數(shù)據(jù)的編譯碼系統(tǒng)下對(duì)不同糾錯(cuò)碼模式的兼容提供通用的技術(shù)手段。
文檔編號(hào)G11C29/42GK101894590SQ20091005938
公開(kāi)日2010年11月24日 申請(qǐng)日期2009年5月21日 優(yōu)先權(quán)日2009年5月21日
發(fā)明者張琴 申請(qǐng)人:成都市華為賽門(mén)鐵克科技有限公司