專利名稱:Bch碼控制器接口電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種控制器接口電路,特別是涉及在Flash型存儲(chǔ)設(shè)備控制芯 片中的一種BCH ( Bose-Chaudhuri-Hocquenghem )碼控制器的接口電路。
背景技術(shù):
存儲(chǔ)器裝置通常被分為易失性存儲(chǔ)器裝置和非易失性存儲(chǔ)器裝置。非易 失性存儲(chǔ)器裝置在斷電情況下保持所存儲(chǔ)的數(shù)據(jù),而易失性存儲(chǔ)器裝置在斷 電情況下釋放所存儲(chǔ)的數(shù)據(jù)。易失性存儲(chǔ)器裝置包括動(dòng)態(tài)隨機(jī)存取存儲(chǔ) (DRAM)的存儲(chǔ)器裝置。非易失性存儲(chǔ)器裝置包括快閃存儲(chǔ)器裝置、只讀存 儲(chǔ)器(ROM)裝置、電可編程只讀存儲(chǔ)器裝置(EPROM)以及電可擦除可編程只 讀(EEPROM)存儲(chǔ)器裝置。
快閃存儲(chǔ)器裝置具有許多有益特征。例如,盡管不像動(dòng)態(tài)隨機(jī)存取存儲(chǔ) 裝置(DRAM)那樣快,但也具有較快的讀取速度。此外,與硬盤相比,快閃 存儲(chǔ)器裝置可經(jīng)受對(duì)其自身的更加強(qiáng)烈的撞擊。盡管快閃存儲(chǔ)器裝置可以通 過電擦除和復(fù)寫數(shù)據(jù),但是與EEPROM不同,快閃存儲(chǔ)器裝置可以以塊為 單位擦除和寫入數(shù)據(jù)。此外,快閃存儲(chǔ)器裝置成本低于EEPROM。由于這些 特點(diǎn),快閃存儲(chǔ)器裝置可廣泛地應(yīng)用于大容量、非易失性、固態(tài)存儲(chǔ)裝置。 例如,快閃存儲(chǔ)器裝置一般用于蜂窩電話、數(shù)碼相機(jī)以及數(shù)字錄音設(shè)備。 SRAM (Static Random Access Memory)是一種具有靜止存取功能的內(nèi)存, 不需要刷新電路即能保存它內(nèi)部存儲(chǔ)的數(shù)據(jù)。不像DRAM內(nèi)存那樣需要刷 新電路,每隔一段時(shí)間,固定要對(duì)DRAM刷新充電一次,否則內(nèi)部的數(shù)據(jù) 即會(huì)消失,因此SRAM具有較高的性能。
隨著嵌入式系統(tǒng)的發(fā)展,NandFlash正^L越來越多地應(yīng)用到嵌入式系統(tǒng) 中。NandFlash以其相對(duì)于NorFlash具有更小的體積,更快的寫入和擦除速 度,更多次的可擦除次數(shù)從而得到了迅速發(fā)展。大容量的NandFlash特別適 合現(xiàn)在數(shù)碼設(shè)備中大數(shù)據(jù)量的存儲(chǔ)攜帶,可以降低成本,提高性能。而 NandFlash與處理器的連接需要接口支持,其可以是純硬件的接口,即SoC 中本身設(shè)計(jì)有NandFlash硬件控制器,只要根據(jù)具體信號(hào)線直接連接;也可 以是純軟件接口,即SoC中本身沒有專門的NandFlash硬件控制器,這時(shí)可 以將信號(hào)線連接到GPIO 口或是外部存貯器接口上,通過軟件實(shí)現(xiàn)NandFlash 的各種操作。純軟件接口雖然可以很好地解決因?yàn)楦鞣N型號(hào)NandFlash命令鐘周期,讀寫速度將大大下降。
DMA控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),可以將其視為 一種
能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)器與每個(gè)具有DMA能力的外設(shè)連 接起來的控制器。它之所以屬于外設(shè),是因?yàn)樗窃谔幚砥鞯木幊炭刂葡聛?執(zhí)行傳輸?shù)?。值得注意的是,通常只有?shù)據(jù)流量較大(kBps或者更高)的外設(shè) 才需要支持DMA能力,這些應(yīng)用方面典型的例子包括視頻、音頻和網(wǎng)絡(luò)接 口 。
在NandFlash型結(jié)構(gòu)大容量存儲(chǔ)設(shè)備的控制芯.片中,由于NandFlash型結(jié) 構(gòu)的特點(diǎn)以及噪聲干擾等因素,傳輸?shù)臄?shù)據(jù)會(huì)出錯(cuò)是不可避免的,為了保證 數(shù)據(jù)讀出時(shí)能進(jìn)行誤碼檢測和校正,通常都是當(dāng)數(shù)據(jù)寫入存儲(chǔ)單元時(shí),需要 按一定規(guī)則人為地寫入一部分冗余數(shù)據(jù),用于差錯(cuò)控制。BCH碼是可糾正多 個(gè)隨機(jī)錯(cuò)誤的碼,這與NandFlash存儲(chǔ)設(shè)備的常規(guī)出錯(cuò)類型相符。
BCH碼是一種能糾正多個(gè)隨機(jī)錯(cuò)誤的循環(huán)碼,它的生成多項(xiàng)式與最小碼 距之間有密切的關(guān)系,可以用生成多項(xiàng)式g(x)的根來描述。它具有嚴(yán)格的代 數(shù)結(jié)構(gòu),糾錯(cuò)能力強(qiáng),構(gòu)造簡單,人們可以根據(jù)所要求的糾錯(cuò)能力t很容易 構(gòu)造出BCH碼,其編碼和解碼器也較其他碼容易實(shí)現(xiàn),是線性分組碼中應(yīng) 用最普遍的一類碼。
BCH碼糾錯(cuò)的實(shí)現(xiàn)途徑有軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)兩種。軟件實(shí)現(xiàn)方法靈活 性強(qiáng)且較易實(shí)現(xiàn),但是實(shí)現(xiàn)方法的工作速度不夠理想,很難滿足在動(dòng)態(tài)實(shí)時(shí) 的數(shù)據(jù)通信中的糾錯(cuò)要求。而硬件實(shí)現(xiàn)方法的工作速度快,在高數(shù)據(jù)速率和 長幀應(yīng)用場合時(shí)具有優(yōu)勢,但目前的實(shí)現(xiàn)性能還不是特別的突出,主要體現(xiàn) 在要么硬件實(shí)現(xiàn)面積大,要么硬件實(shí)現(xiàn)速度還有待進(jìn)一步提高,還有些硬件 實(shí)現(xiàn)的控制器的設(shè)計(jì)不夠靈活,例如,硬件處理數(shù)據(jù)所支持的數(shù)據(jù)位寬單一, 不能提高硬件實(shí)現(xiàn)電路的重復(fù)使用率等,同時(shí)也大大的增加了軟件設(shè)計(jì)和處 理的難度,從整體上影響了 BCH碼糾錯(cuò)的工作性能和效率。
發(fā)明內(nèi)容
本發(fā)明提供一種BCH碼控制器接口電路,其目的是要通過寄存器控制位 的設(shè)計(jì)來改善接口電路的性能,提高BCH碼控制器的處理速度和性能,滿 足不同應(yīng)用環(huán)境的需要。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是 一種BCH碼控制器接口電 路,包括一個(gè)系統(tǒng)總線接口,該系統(tǒng)總線接口連接在嵌入式CPU與BCH碼 控制器中的BCH編解碼電路之間,BCH編解碼電^各由BCH并行編碼電路和BCH并行解碼電路兩部分組成,其中BCH并行解碼電路由伴隨式校正子運(yùn) 算電路、錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路組成,其創(chuàng)新在于 所述系統(tǒng)總線接口中設(shè)有寄存器組,該寄存器組中設(shè)有非零錯(cuò)測試控制位、 零錯(cuò)測試控制位以及解碼完成次數(shù)狀態(tài)位,其中
非零錯(cuò)測試控制位經(jīng)第一反相器后得到第一取反信號(hào),第一取反信號(hào)和 錯(cuò)誤地址搜索電路的使能信號(hào)經(jīng)第一與門得到第一控制信號(hào),用于控制錯(cuò)誤 地址搜索電路;非零錯(cuò)測試控制位由CPU在Flash壞塊測試時(shí)使能,在Flash 壞塊測試掃描中BCH并行解碼電路中的伴隨式校正子運(yùn)算電路和錯(cuò)誤位置 多項(xiàng)式迭代電路工作,得到Flash塊中數(shù)據(jù)出錯(cuò)的比特個(gè)數(shù),用來定義對(duì)應(yīng) 的Flash塊是否為壞塊,而使能后的非零錯(cuò)測試控制位使錯(cuò)誤地址搜索電路 不工作;
零錯(cuò)測試控制位經(jīng)第二反相器后得到第二取反信號(hào),第二取反信號(hào)和錯(cuò) 誤位置多項(xiàng)式迭代電路的使能信號(hào)經(jīng)第二與門得到第二控制信號(hào),用于控制 錯(cuò)誤位置多項(xiàng)式迭代電路;第二取反信號(hào)和錯(cuò)誤地址搜索電路的使能信號(hào)經(jīng) 第三與門得到第三控制信號(hào),用于控制錯(cuò)誤地址搜索電路;零錯(cuò)測試控制位 由CPU在Flash壞塊測試時(shí)使能,在Flash壞塊測試掃描中BCH并行解碼電 路中的伴隨式校正子運(yùn)算電路工作,得到Flash塊中數(shù)據(jù)是否出錯(cuò)的結(jié)果, 用來定義對(duì)應(yīng)的Flash塊是否為壞塊,而使能后的零錯(cuò)測試控制位使錯(cuò)誤位 置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路不工作;
解碼完成次數(shù)狀態(tài)位為一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器用于記錄BCH并行解碼電 路完成Flash扇區(qū)的次數(shù),同時(shí)該計(jì)數(shù)器向CPU提供了 一種比響應(yīng)BCH并 行解碼電路中斷信號(hào)更快的狀態(tài)信號(hào),CPU直接讀取該計(jì)數(shù)器的值,來通知 相應(yīng)^^莫塊讀取解碼完成以后的數(shù)據(jù)。
上述技術(shù)方案中的有關(guān)內(nèi)容解釋如下
1、 上述方案中,所述第一反相器、第一與門、第二反相器以及第二與門 在本發(fā)明中指的一種廣義上的邏輯電路,其等效電路也應(yīng)包含在本發(fā)明的保 護(hù)范圍之內(nèi)。比如,第一反相器可以由一個(gè)反相器構(gòu)成,也可以由三個(gè)反相 器串聯(lián)構(gòu)成,甚至可以由奇數(shù)個(gè)反相器串聯(lián)構(gòu)成,其結(jié)果是一致的,而電路 是等效的??傊?,根據(jù)現(xiàn)有技術(shù)采用其它多個(gè)邏輯元件組合構(gòu)成的具有等效 效果的電路均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
2、 上述方案中,所述相應(yīng)模塊是指需要使用到BCH解碼以后正確數(shù)據(jù) 的模塊,比如USB模塊等。3、上述方案中,所述寄存器組中還可以設(shè)有下列控制位 (1 ) Flash格式控制位,該控制位由CPU根據(jù)Flash格式賦值成"0"或
528個(gè)字節(jié)Flash格式的數(shù)據(jù)生成13個(gè)字節(jié)的數(shù)據(jù)冗余位,另一種狀態(tài)使 BCH并行編碼電路在編碼中對(duì)應(yīng)每扇區(qū)為540個(gè)字節(jié)Flash才各式的數(shù)據(jù)生成 26個(gè)字節(jié)的數(shù)據(jù)冗余位,所述數(shù)據(jù)冗余位的位數(shù)決定BCH并行解碼電路的 糾錯(cuò)能力。
(2) 流水線控制位,該控制位由CPU使能,使能后的流水線控制位使 BCH并行解碼電路中的伴隨式校正子運(yùn)算電路在處理完本扇區(qū)Flash數(shù)據(jù)后 產(chǎn)生中斷信號(hào),通知CPU讀取下一扇區(qū)Flash數(shù)據(jù),而錯(cuò)誤位置多項(xiàng)式迭代 電路和錯(cuò)誤地址搜索電路在處理本扇區(qū)Flash數(shù)據(jù)時(shí),伴隨式校正子運(yùn)算電 路同時(shí)處理下一扇區(qū)Flash數(shù)據(jù)。
(3) 異常復(fù)位控制位,該控制位由CPU根據(jù)BCH編解碼電路出現(xiàn)的異 常進(jìn)行使能,使能后的異常復(fù)位控制位使BCH編解碼電路強(qiáng)制復(fù)位。
由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn)和效果
1、 提高了 Flash壞塊測試速度。本發(fā)明在系統(tǒng)總線接口中設(shè)有非零錯(cuò)測 試控制位和零錯(cuò)測試控制位。非零錯(cuò)測試控制位由CPU在Flash壞塊測試時(shí) 使能,使能后的非零錯(cuò)測試控制位使BCH編解碼電路中錯(cuò)誤地址搜索電路 不工作,提高了 Flash壞塊測試速度,減少了電路功耗。零錯(cuò)測試控制位由 CPU在Flash壞塊測試時(shí)使能,使能后的零錯(cuò)測試控制位使BCH編解碼電路 中錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路不工作,更進(jìn)一步提高了 Flash壞塊測試速度,減少了電路功耗。同時(shí)提供兩種選擇,方便軟件的應(yīng)用。
2、 提高了系統(tǒng)的解碼速度。第一,本發(fā)明在系統(tǒng)總線接口中設(shè)有解碼完 成次數(shù)狀態(tài)位,該計(jì)數(shù)器用于記錄BCH并行解碼電路完成Flash扇區(qū)的次數(shù), 同時(shí)該計(jì)數(shù)器向CPU提供了一種比響應(yīng)BCH并行解碼電路中斷信號(hào)更快的 狀態(tài)信號(hào),CPU直接讀取該計(jì)數(shù)器的值,來通知相應(yīng)模塊讀取解碼完成以后 的數(shù)據(jù),減少了 CPU執(zhí)行中斷服務(wù)程序的時(shí)間,提高了系統(tǒng)的解碼速度,此 方法相對(duì)于傳統(tǒng)的方法從Flash讀取數(shù)據(jù)的速度提高了 10%(2MB/s)。第二, 本發(fā)明在系統(tǒng)總線接口中設(shè)有流水線控制位,該控制位使能后可以使BCH 并行解碼電路中的伴隨式校正子運(yùn)算電路在處理完本扇區(qū)Flash數(shù)據(jù)后產(chǎn)生 中斷信號(hào),通知CPU讀取下一扇區(qū)Flash數(shù)據(jù),而錯(cuò)誤位置多項(xiàng)式迭代電路 和錯(cuò)誤地址搜索電路在處理本扇區(qū)Flash數(shù)據(jù)時(shí),伴隨式校正子運(yùn)算電路同時(shí)處理下一扇區(qū)Flash數(shù)據(jù)。這種同時(shí)處理不同任務(wù)的方式提高了整個(gè)數(shù)據(jù) 流的解碼速度。如果不使能該控制位,則BCH控制器接口電路控制并行解 碼電路進(jìn)行串行運(yùn)算,先判斷數(shù)據(jù)是否有錯(cuò),再計(jì)算出錯(cuò)個(gè)數(shù),再糾錯(cuò),糾 錯(cuò)完成再給出中斷信號(hào),相比之下解碼速度較慢。
3、 適用于多種Flash數(shù)據(jù)格式。本發(fā)明在系統(tǒng)總線接口中設(shè)有Flash格式 控制位,該控制位由CPU根據(jù)Flash格式賦值成"O"或"l"兩種狀態(tài),其中一
數(shù)據(jù)生成13個(gè)字節(jié)的數(shù)據(jù)冗余位,另一種狀態(tài)使BCH并行編碼電路在編碼 中對(duì)應(yīng)每扇區(qū)為540個(gè)字節(jié)Flash格式的數(shù)據(jù)生成26個(gè)字節(jié)的數(shù)據(jù)冗余位, 所述數(shù)據(jù)冗余位的位數(shù)決定BCH并行解碼電路的糾錯(cuò)能力。適用面更加廣泛。
4、 BCH編解碼電路工作更穩(wěn)定。本發(fā)明在系統(tǒng)總線接口中設(shè)有異常復(fù)位 控制位,該控制位由CPU根據(jù)BCH編解碼電路出現(xiàn)的異常進(jìn)行使能,使能 后的異常復(fù)位控制位使BCH編解碼電路強(qiáng)制復(fù)位,讓BCH編解碼電路工作 更穩(wěn)定。
附圖1為本發(fā)明Flash型存儲(chǔ)設(shè)備原理圖; 附圖2為本發(fā)明BCH碼控制器原理附圖3為本發(fā)明系統(tǒng)總線接口提供六個(gè)控制位或狀態(tài)位的原理圖; 附圖4為本發(fā)明SRAM 4妄口原理圖; 附圖5為本發(fā)明Flash傳輸監(jiān)視j接口原理圖; 附圖6為本發(fā)明解碼并行流水操作示意圖; 附圖7為本發(fā)明支持多種數(shù)據(jù)位寬的轉(zhuǎn)換方式圖。
具體實(shí)施例方式
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述
如圖1所示,F(xiàn)lash型存儲(chǔ)設(shè)備通常由USB接口、嵌入式CPU、 BCH碼 控制器和Flash存儲(chǔ)器組成。其中,USB接口是標(biāo)準(zhǔn)連接接口, CPU是嵌入 式的中央處理器,F(xiàn)lash存儲(chǔ)器是數(shù)據(jù)存儲(chǔ)單元,BCH碼控制器是Flash型存 儲(chǔ)設(shè)備讀寫數(shù)據(jù)過程中采用BCH碼算法進(jìn)行編碼和解碼(包括糾錯(cuò))的控 制器。
如圖2所示,BCH碼控制器由BCH編解碼電路、SRAM存儲(chǔ)器(StaticRandom Access Memory,靜態(tài)隨機(jī)存儲(chǔ)器)、DMA模塊(直接存儲(chǔ)器訪問模 塊)和接口電路(指本發(fā)明BCH碼控制器接口電路)組成。BCH編解碼電 路由BCH并行編碼電路和BCH并行解碼電路兩部分組成,其中,BCH并行 編碼電路用來對(duì)寫入Flash存儲(chǔ)器的數(shù)據(jù)進(jìn)行編碼,而BCH并行解碼電路用 來對(duì)讀出Flash存儲(chǔ)器的數(shù)據(jù)進(jìn)行解碼(包括糾4昔)。BCH并行解碼電路由 伴隨式校正子運(yùn)算電路、錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路組 成,其中,伴隨式校正子運(yùn)算電路用來判斷數(shù)據(jù)是否有錯(cuò),錯(cuò)誤位置多項(xiàng)式 迭代電路用來計(jì)算數(shù)據(jù)實(shí)際出錯(cuò)的個(gè)數(shù),錯(cuò)誤地址搜索電路用來搜索錯(cuò)誤位 置并糾錯(cuò)。
從圖2中可以看出,發(fā)明BCH碼控制器接口電路由系統(tǒng)總線接口、 Flash 傳輸監(jiān)視接口、 SRAM接口、 DMA模塊接口和Flash接口組成。其中
系統(tǒng)總線接口連接在嵌入式CPU與BCH編解碼電路之間,實(shí)現(xiàn)CPU對(duì) BCH控制器的訪問。
Flash傳輸監(jiān)視接口連接在BCH編解碼電路與Flash接口之間,實(shí)現(xiàn)監(jiān)視 Flash傳輸信號(hào),能夠支持多種數(shù)據(jù)位寬操作,包括字(32比特),半字(16 比特),字節(jié)(8比特),把相應(yīng)的數(shù)據(jù)字節(jié)送至BCH編解碼電路進(jìn)行編解碼。
SRAM接口連接在BCH編解碼電路與SRAM存儲(chǔ)器之間,實(shí)現(xiàn)從SRAM 存儲(chǔ)器中取出有錯(cuò)誤的數(shù)據(jù),與BCH編解碼電路給出的錯(cuò)誤圖樣處理以后 得到正確的數(shù)據(jù),再回寫到SRAM存儲(chǔ)器的過程。
DMA模塊接口連接在BCH編解碼電路與DMA模塊之間,實(shí)現(xiàn)DMA模 塊直接讀取BCH編解碼電路在編碼過程中產(chǎn)生的數(shù)據(jù)冗余位,再寫入到 Flash存儲(chǔ)器中,不需要CPU來訪問,提高了傳輸速度。
Flash接口用于連接Flash存儲(chǔ)器。
如圖3所示,本發(fā)明的創(chuàng)新在于在嵌入式CPU與BCH編解碼電^各之 間的系統(tǒng)總線接口中設(shè)有寄存器組,該寄存器組中設(shè)置了六個(gè)控制位或狀態(tài) 位來提高BCH碼控制器的編解碼速度、性能和工作可靠性。具體說明如下 (l )非零錯(cuò)測試控制位
非零錯(cuò)測試控制位經(jīng)第一反相器后得到第一取反信號(hào),第一取反信號(hào)和 錯(cuò)誤地址搜索電路的使能信號(hào)經(jīng)第一與門得到第一控制信號(hào),用于控制錯(cuò)誤 地址搜索電路;非零錯(cuò)測試控制位由CPU在Flash壞塊測試時(shí)使能,在Flash 壞塊測試掃描中BCH并行解碼電路中的伴隨式校正子運(yùn)算電路和錯(cuò)誤位置 多項(xiàng)式迭代電路工作,得到Flash塊中數(shù)據(jù)出錯(cuò)的比特個(gè)數(shù),用來定義對(duì)應(yīng)的Flash塊是否為壞塊,而使能后的非零錯(cuò)測試控制位使錯(cuò)誤地址搜索電路 不工作。
(2)零錯(cuò)測試控制位
零錯(cuò)測試控制位經(jīng)第二反相器后得到第二取反信號(hào),第二取反信號(hào)和錯(cuò) 誤位置多項(xiàng)式迭代電路的使能信號(hào)經(jīng)第二與門得到第二控制信號(hào),用于控制 錯(cuò)誤位置多項(xiàng)式迭代電路;第二取反信號(hào)和錯(cuò)誤地址搜索電路的使能信號(hào)經(jīng) 第三與門得到第三控制信號(hào),用于控制錯(cuò)誤地址搜索電路;零錯(cuò)測試控制位 由CPU在Flash壞塊測試時(shí)使能,在Flash壞塊測試掃描中BCH并行解碼電 路中的伴隨式校正子運(yùn)算電路工作,得到Flash塊中數(shù)據(jù)是否出錯(cuò)的結(jié)果, 用來定義對(duì)應(yīng)的Flash塊是否為壞塊,而使能后的零錯(cuò)測試控制位使錯(cuò)誤位 置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路不工作。
以上所述非零錯(cuò)測試控制位和零錯(cuò)測試控制位均用于Flash型存儲(chǔ)設(shè)備出 廠前的Flash壞塊測試掃描,用來測試Flash存儲(chǔ)單元中的壞塊。 一般方法是 將大量隨機(jī)數(shù)據(jù)經(jīng)BCH并行編碼電^各編碼后存儲(chǔ)到Flash中,然后再解碼才全 測Flash塊中保存的數(shù)據(jù)錯(cuò)誤情況來定義對(duì)應(yīng)的Flash塊是否為壞塊。由于 BCH并行解碼電路中的伴隨式校正子運(yùn)算電路、錯(cuò)誤位置多項(xiàng)式迭代電路和 錯(cuò)誤地址搜索電路組成相對(duì)獨(dú)立,而且解碼工作順序是先由伴隨式校正子 運(yùn)算電路判斷數(shù)據(jù)是否有錯(cuò),再由錯(cuò)誤位置多項(xiàng)式迭代電路來計(jì)算數(shù)據(jù)實(shí)際 出錯(cuò)的個(gè)數(shù),當(dāng)出錯(cuò)個(gè)數(shù)在糾錯(cuò)能力范圍時(shí)(比如糾錯(cuò)能力為8位,實(shí)際出 錯(cuò)《8位),最后由錯(cuò)誤地址搜索電路搜索錯(cuò)誤位置并糾錯(cuò)。在解碼過程中如 果數(shù)據(jù)有錯(cuò)是要依次經(jīng)過伴隨式校正子運(yùn)算電路、錯(cuò)誤位置多項(xiàng)式迭代電路 和錯(cuò)誤地址搜索電路進(jìn)行糾錯(cuò)。在Flash壞塊測試掃描中,非零錯(cuò)測試控制 位使能后假設(shè)為"1",經(jīng)過第一反相器后得到第一取反信號(hào)為"0",第一取 反信號(hào)"0"和錯(cuò)誤地址搜索電路的使能信號(hào)'T,經(jīng)第一與門得到第一控制 信號(hào)為"0",用于控制BCH并行解碼電路中的錯(cuò)誤地址搜索電路不需工作, 而伴隨式校正子運(yùn)算電路用來判斷存儲(chǔ)在Flash塊中的數(shù)據(jù)是否有錯(cuò),錯(cuò)誤 位置多項(xiàng)式迭代電路用來計(jì)算數(shù)據(jù)實(shí)際出錯(cuò)的個(gè)數(shù),然后將數(shù)據(jù)出錯(cuò)個(gè)數(shù)與 BCH編解碼電路的糾錯(cuò)能力進(jìn)行比較,當(dāng)檢測到的Flash塊中數(shù)據(jù)的出錯(cuò)個(gè) 數(shù)超出糾錯(cuò)能力范圍時(shí),則通過軟件標(biāo)記該Flash塊為壞塊,不能使用,當(dāng) 出錯(cuò)個(gè)數(shù)未超出糾錯(cuò)能力范圍時(shí),則通過軟件標(biāo)記該Flash塊為好塊,可以 使用(以上說明中,假設(shè)非零錯(cuò)測試控制位使能后為"1",假設(shè)錯(cuò)誤地址搜 索電路的使能信號(hào)為"1",但在實(shí)際應(yīng)用中假設(shè)非零錯(cuò)測試控制位使能后為"0",假設(shè)錯(cuò)誤地址搜索電路的使能信號(hào)為"0"也是可以的,其效果不變)。
在Flash壞塊測試掃描中,零錯(cuò)測試控制位使能后假設(shè)為'T,,經(jīng)過第二反 相器后得到第二取反信號(hào)為"0",第二取反信號(hào)"0"和錯(cuò)誤位置多項(xiàng)式迭 代電路的使能信號(hào)"1"經(jīng)第二與門得到第二控制信號(hào)為"0",用于控制錯(cuò) 誤位置多項(xiàng)式迭代電路不需工作;同時(shí)第二取反信號(hào)"0"和錯(cuò)誤地址搜索 電路的使能信號(hào)'T,經(jīng)第三與門得到第三控制信號(hào)為"0",用于控制錯(cuò)誤 地址搜索電路不需工作。只要伴隨式校正子運(yùn)算電路來判斷存儲(chǔ)在Flash塊 中的數(shù)據(jù)是否有錯(cuò)就可以定義該Flash塊是否為壞塊,如果有錯(cuò)則通過軟件 標(biāo)記該Flash塊為壞塊,反之為好塊(以上說明中,假設(shè)零錯(cuò)測試控制位使 能后為'T,,假設(shè)錯(cuò)誤地址搜索電路的使能信號(hào)為'T,,假設(shè)錯(cuò)誤地址搜索 電路的使能信號(hào)為"1",但在實(shí)際應(yīng)用中假設(shè)零錯(cuò)測試控制位使能后為"0", 假設(shè)錯(cuò)誤地址搜索電路的使能信號(hào)為"0",假設(shè)錯(cuò)誤地址搜索電路的使能信 號(hào)為"0",也是可以的,其效果不變)。
以上,零錯(cuò)誤測試掃描過程由于只要知道Flash塊中數(shù)據(jù)是否有錯(cuò)就可以 定義該Flash塊是否為壞塊,不需要通過錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地 址搜索電路來計(jì)算實(shí)際出錯(cuò)個(gè)數(shù)和糾錯(cuò),因此零錯(cuò)測試控制位的設(shè)置可以提 高Flash壞塊的測試掃描速度。同理,非零錯(cuò)誤測試掃描過程只要知道Flash 塊中數(shù)據(jù)是否有錯(cuò)以及出錯(cuò)個(gè)數(shù)就可以定義該Flash塊是否為壞塊,不需要 通過錯(cuò)誤地址搜索電路來完成糾錯(cuò),因此非零錯(cuò)測試控制位的設(shè)置也可以提 高Flash壞塊的測試掃描速度。零錯(cuò)測試控制位與非零錯(cuò)測試控制位的區(qū)別 主要是定義Flash壞塊的要求不同,零錯(cuò)測試控制位定義Flash壞塊的要求嚴(yán) 格,非零錯(cuò)測試控制位適當(dāng)寬松。 (3)解碼完成次數(shù)狀態(tài)位
解碼完成次數(shù)狀態(tài)位為一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器用于記錄BCH并行解碼電 路完成Flash扇區(qū)的次數(shù),同時(shí)該計(jì)數(shù)器向CPU提供了 一種比響應(yīng)BCH并 行解碼電路中斷信號(hào)更快的狀態(tài)信號(hào),CPU直接讀取該計(jì)數(shù)器的值,來通知 相應(yīng)模塊讀取解碼完成以后的數(shù)據(jù)。
解碼完成次數(shù)狀態(tài)位是Flash型存儲(chǔ)設(shè)備實(shí)際使用時(shí)應(yīng)用的一種狀態(tài)位, 特別是從Flash型存儲(chǔ)設(shè)備中讀取數(shù)據(jù)時(shí)記錄解碼完成次數(shù)的狀態(tài)位。解碼 完成次數(shù)狀態(tài)位的作用通常是記錄BCH并行解碼電路完成Flash扇區(qū)的次 數(shù),BCH并行解碼電路每完成一次解碼過程,該狀態(tài)位自動(dòng)遞增。軟件可以 配置該狀態(tài)位的初值,讓該狀態(tài)位在此基數(shù)上開始計(jì)數(shù)。CPU可以讀取該狀態(tài)位的值從而知道BCH并行解碼電路完成解碼的次數(shù)。但在本發(fā)明中需要 強(qiáng)調(diào)的是該狀態(tài)位向CPU提供了一種比響應(yīng)BCH并行解碼電路中斷信號(hào) 更快的狀態(tài)信號(hào),CPU可以直接讀取該狀態(tài)位的值,而不需要等待BCH并 行解碼電路中斷信號(hào)的產(chǎn)生,就可以通知相應(yīng)模塊來讀取解碼完成以后的數(shù) 據(jù),因此,減少了 CPU每次需要執(zhí)行中斷服務(wù)程序的時(shí)間,提高了執(zhí)行效率。 所述相應(yīng)模塊是指需要使用到BCH解碼以后正確數(shù)據(jù)的模塊,比如USB模 塊等。
(4) Flash格式控制位
Flash格式控制位用于BCH碼控制器在對(duì)數(shù)據(jù)進(jìn)行編碼時(shí)選擇不同F(xiàn)lash 格式,即用于控制BCH并行編碼電路對(duì)數(shù)據(jù)編碼時(shí)產(chǎn)生數(shù)據(jù)冗余位ECC的 位數(shù),數(shù)據(jù)冗余位ECC的位數(shù)決定了 BCH并行解碼電路的糾錯(cuò)能力。Flash 格式控制位由CPU根據(jù)Flash格式賦值成"0"或"1"兩種狀態(tài),其中一種 狀態(tài)使BCH并行編碼電路在編碼中對(duì)應(yīng)每扇區(qū)為528個(gè)字節(jié)Flash格式的數(shù) 據(jù)生成13個(gè)字節(jié)的數(shù)據(jù)冗余位,另一種狀態(tài)使BCH并行編碼電路在編碼中 對(duì)應(yīng)每扇區(qū)為540個(gè)字節(jié)Flash格式的數(shù)據(jù)生成26個(gè)字節(jié)的數(shù)據(jù)冗余位,所 述數(shù)據(jù)冗余位的位數(shù)決定BCH并行解碼電路的糾錯(cuò)能力。
(5) 流水線控制位
流水線控制位用來提高了整個(gè)數(shù)據(jù)流的解碼速度。其原理是利用BCH并 行解碼電路中的伴隨式校正子運(yùn)算電路、錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地 址搜索電路組成相對(duì)獨(dú)立的特點(diǎn),通過流水線控制位可以使不同電路在同一 時(shí)間內(nèi)處理不同F(xiàn)lash扇區(qū)的數(shù)據(jù),使不同F(xiàn)lash扇區(qū)的數(shù)據(jù)在處理時(shí)間上重 疊,以提高解碼速度。流水線控制位由CPU使能,使能后的流水線控制位使 BCH并行解碼電路中的伴隨式校正子運(yùn)算電路在處理完本扇區(qū)Flash數(shù)據(jù)后 產(chǎn)生中斷信號(hào),通知CPU讀取下一扇區(qū)Flash數(shù)據(jù),而錯(cuò)誤位置多項(xiàng)式迭代 電路和錯(cuò)誤地址搜索電路在處理本扇區(qū)Flash數(shù)據(jù)時(shí),伴隨式校正子運(yùn)算電 路同時(shí)處理下一扇區(qū)Flash數(shù)據(jù)。圖6為解碼并行流水操作示意圖,圖中上 一排Codec表示伴隨式^f交正子運(yùn)算電路處理數(shù)據(jù)的過程,而下一排Correct 表示錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路處理數(shù)據(jù)的過程,①、②、 ③、④分別表示Flash不同扇區(qū)的數(shù)據(jù),下一排③的空白表示數(shù)據(jù)沒有出錯(cuò)。 從該圖可以看出錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路在處理本扇 區(qū)Flash數(shù)據(jù)時(shí),伴隨式校正子運(yùn)算電路同時(shí)處理下一扇區(qū)Flash數(shù)據(jù)。
如果不使能該控制位,BCH控制器接口電路控制BCH并行解碼電路進(jìn)行串行運(yùn)算,先判斷數(shù)據(jù)是否有錯(cuò),再計(jì)算出錯(cuò)個(gè)數(shù),再糾錯(cuò),糾錯(cuò)完成再給
出中斷信號(hào),相比之下解碼速度較慢,僅適合軟件從Flash中讀取少量扇區(qū) 的情況。
(6)異常復(fù)位控制位
異常復(fù)位控制位用于對(duì)BCH編解碼電^各進(jìn)行異常復(fù)位,即當(dāng)BCH編解 碼電路出現(xiàn)異常狀態(tài)或者軟件需要清除一次尚未完成的解碼過程時(shí),利用異 常復(fù)位控制位對(duì)BCH編解碼電路復(fù)位,將BCH編解碼電路中的各寄存器清 零。異常復(fù)位控制位由CPU根據(jù)BCH編解碼電路出現(xiàn)的異常進(jìn)行使能,使 能后的異常復(fù)位控制位使BCH編解碼電路強(qiáng)制復(fù)位。
如圖4所示,SRAM接口連接在BCH編解碼電路與SRAM存儲(chǔ)器之間, 圖中各信號(hào)描述如下
輸出信號(hào)
sram—addr[12:0]:錯(cuò)誤數(shù)據(jù)在SRAM中的地址信號(hào),該信號(hào)由BCH編解碼 電路給出的錯(cuò)誤字節(jié)地址偏移量加上存儲(chǔ)到SRAM中數(shù)據(jù)的起始地址得到。
sran^wdata[7:0]:寫入到SRAM中的正確數(shù)據(jù),該信號(hào)由從SRAM中取出 的錯(cuò)誤數(shù)據(jù)與BCH編解碼電路給出的錯(cuò)誤圖樣相異或以后得到。
sram—wr[3:0]:SRAM數(shù)據(jù)寫使能信號(hào),該信號(hào)由BCH編解碼電路給出的 錯(cuò)誤字節(jié)地址的低兩位解碼得到,使得寫入到SRAM中相應(yīng)字節(jié)有效。
sram一rd: SRAM數(shù)據(jù)讀選擇信號(hào),該信號(hào)由BCH編解碼電路給出,標(biāo)識(shí) 該字節(jié)有錯(cuò),需要糾正。
輸入信號(hào)
sram—rdata[31:0]: SRAM數(shù)據(jù)輸出信號(hào),該數(shù)據(jù)信號(hào)中至少有一個(gè)字節(jié)有 錯(cuò)誤數(shù)據(jù),通過BCH編解碼電路給出的錯(cuò)誤字節(jié)地址信號(hào)的低兩位選擇其 進(jìn)行糾錯(cuò)。
bch—addr[9:0]: BCH編解碼電路給出的錯(cuò)誤字節(jié)地址。 bch_dout[7:0]: BCH編解碼電路給出的錯(cuò)誤圖樣。
bch—wr:由BCH編解碼電路給出,標(biāo)識(shí)該字節(jié)有錯(cuò),和bch—dout[7:0]同時(shí)有效。
如圖5所示,F(xiàn)lash傳輸監(jiān)視接口連接在BCH編解碼電路與Flash接口之 間,圖中各信號(hào)描述如下 輸出信號(hào)
bch一din[7:0]:輸入到BCH編解碼電路需要編碼或者解碼的數(shù)據(jù)。din—valid:輸入到BCH編解碼電^各的數(shù)據(jù)有效標(biāo)識(shí),BCH編解碼電路在此 信號(hào)為高電平時(shí)釆樣bch—din。
encode:輸入到BCH編解碼電路編碼或者解碼控制信號(hào),該電平為高電平 時(shí)控制BCH編解碼電路進(jìn)入編碼模式,為低電平時(shí)控制BCH編解碼電路進(jìn) 入解碼模式。
輸入信號(hào)
io—rw—b: Flash讀寫控制信號(hào),高電平為讀操作,數(shù)據(jù)流為從Flash傳遞 到片內(nèi)SRAM;低電平為寫操作,數(shù)據(jù)流為從片內(nèi)SRAM到Flash。
io—tsize[l:0]: Flash傳輸大小控制信號(hào),2,b00表示字傳輸(32比特),2'M0 表示半字傳輸(16比特),2,b01表示字節(jié)傳輸(8比特)。
io—data[31:0]: Flash傳輸數(shù)據(jù)信號(hào)。
bch—select: Flash傳輸選擇信號(hào),該信號(hào)從CPU或者DMA發(fā)出的地址解 碼得來,當(dāng)發(fā)出的地址在給定的范圍內(nèi)則使能BCH功能,否則不使能BCH功能。
BCH編解碼電^各主要分為編碼和解碼兩部分。其中編碼和解碼電^各都工 作在有限域GF(2,上,同時(shí)可以擴(kuò)展到其他有限域GF(2,上,只需將13替 換位n。
編碼過程編碼過程即為4巴SRAM中的數(shù)據(jù)通過BCH編碼通道寫入到 Flash的過程,傳輸大小可以為字、半字、字節(jié)。BCH控制器根據(jù)Flash傳輸 大小控制信號(hào)io—tsize分一個(gè)或多個(gè)時(shí)鐘周期把Flash傳輸數(shù)據(jù)信號(hào)io—data 中相應(yīng)的字節(jié)傳遞到BCH編解碼電路進(jìn)行編碼。如圖7所示,如果傳輸為 字節(jié)傳輸,則只需要一個(gè)時(shí)鐘周期就可以把需要傳遞的數(shù)據(jù)io—data傳遞至 BCH編解碼電路;如果傳輸是半字傳輸,則BCH控制器需要分成兩個(gè)時(shí)鐘 周期把數(shù)據(jù)拆分成兩個(gè)字節(jié)傳遞給BCH編解碼電路;如果傳輸是字傳輸, 則需要分成四個(gè)時(shí)鐘周期把數(shù)據(jù)拆分成四個(gè)字節(jié)傳遞給BCH編解碼電路。 每個(gè)時(shí)鐘周期并行進(jìn)入BCH編解碼電路的8比特?cái)?shù)據(jù)bch一din按從高到低位 分別與上一個(gè)時(shí)鐘周期得到的數(shù)據(jù)冗余位ecc—tmp的高8位異或,將結(jié)果和 數(shù)據(jù)冗余位ecc—tmp的剩下位一起送入一個(gè)除法器除以生成多項(xiàng)式g(x),從 而更新數(shù)據(jù)冗余位ecc—tmp,當(dāng)所需的512個(gè)字節(jié)傳遞完成后,將最后更新 的數(shù)據(jù)冗余位ecc一tmp保存在BCH控制器中相應(yīng)的寄存器中作為512個(gè)字節(jié) 數(shù)據(jù)的冗余位ECC, CPU或者DMA可以訪問這些寄存器取走512個(gè)字節(jié)數(shù) 據(jù)的冗余位ECC,再寫入到Flash中。解碼過程解碼過程即為4巴Flash中的數(shù)據(jù)通過BCH解碼通道寫入到 SRAM的過程,傳輸大小可以為字、半字、字節(jié)。BCH控制器根據(jù)Flash傳 輸大小控制信號(hào)io_tsize把Flash傳輸數(shù)據(jù)信號(hào)io—data中相應(yīng)的字節(jié)傳遞到 BCH編解碼電路進(jìn)行解碼,對(duì)應(yīng)的傳輸字節(jié)拆分方式和上述編碼過程類似。 當(dāng)所需的512個(gè)數(shù)據(jù)字節(jié)以及相應(yīng)的數(shù)據(jù)冗余位ECC傳遞完成后,BCH編 解碼電路可以給出所傳遞的數(shù)據(jù)中有無錯(cuò)誤的標(biāo)識(shí),當(dāng)有錯(cuò)誤時(shí),BCH編解 碼電路先計(jì)算錯(cuò)誤的個(gè)數(shù),當(dāng)錯(cuò)誤范圍在BCH編解碼電路可以糾錯(cuò)的范圍 內(nèi)并且是否糾錯(cuò)控制位設(shè)置使能時(shí),BCH編解碼電路逐位搜索并開始糾錯(cuò)。 當(dāng)流水線控制位使能時(shí),BCH編解碼電路可以按上述流水線控制位方式進(jìn)行 解碼。糾錯(cuò)時(shí)BCH編解碼電路對(duì)傳輸?shù)?12個(gè)數(shù)據(jù)字節(jié)及相應(yīng)的數(shù)據(jù)冗余 位ECC進(jìn)行逐位搜索,如果發(fā)現(xiàn)錯(cuò)誤,則BCH控制器從SRAM中取出數(shù)據(jù) 與BCH編解碼電路給出的錯(cuò)誤圖樣進(jìn)行異或操作以后,再由BCH控制器回 寫到SRAM中。當(dāng)BCH編解碼電路糾正所有錯(cuò)誤位以后,糾錯(cuò)完成。當(dāng)傳 輸?shù)臄?shù)據(jù)出錯(cuò)的個(gè)數(shù)超過BCH編解碼電路的糾錯(cuò)能力時(shí),則BCH控制器給 出糾錯(cuò)失敗標(biāo)識(shí)。
解碼包括伴隨式校正子的計(jì)算,錯(cuò)誤位置多項(xiàng)式的計(jì)算和錯(cuò)誤地址搜索。 伴隨式校正子計(jì)算主要通過8比特?cái)?shù)據(jù)data同時(shí)輸入的并行運(yùn)算電路完成伴 隨式校正子的計(jì)算;錯(cuò)誤位置多項(xiàng)式迭代的計(jì)算主要通過IBM迭代算法中的 一輪多拍方式實(shí)現(xiàn)電路,復(fù)用有限域GF(2")上的一個(gè)混合運(yùn)算器,其中該混 合運(yùn)算器包含有限域GF(2")上的二輸入的乘法器和一個(gè)二輸入的加法器;錯(cuò) 誤地址搜索則先采用全組合邏輯的4比特預(yù)搜索方法進(jìn)行錯(cuò)誤地址的預(yù)搜索 處理,然后再送入Chien搜索電路完成錯(cuò)誤地址的搜索。
上述實(shí)施例只為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng) 技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保 護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明 的寸呆護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種BCH碼控制器接口電路,包括一個(gè)系統(tǒng)總線接口,該系統(tǒng)總線接口連接在嵌入式CPU與BCH碼控制器中的BCH編解碼電路之間,BCH編解碼電路由BCH并行編碼電路和BCH并行解碼電路兩部分組成,其中BCH并行解碼電路由伴隨式校正子運(yùn)算電路、錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路組成,其特征在于所述系統(tǒng)總線接口中設(shè)有寄存器組,該寄存器組中設(shè)有非零錯(cuò)測試控制位、零錯(cuò)測試控制位以及解碼完成次數(shù)狀態(tài)位,其中非零錯(cuò)測試控制位經(jīng)第一反相器后得到第一取反信號(hào),第一取反信號(hào)和錯(cuò)誤地址搜索電路的使能信號(hào)經(jīng)第一與門得到第一控制信號(hào),用于控制錯(cuò)誤地址搜索電路;非零錯(cuò)測試控制位由CPU在Flash壞塊測試時(shí)使能,在Flash壞塊測試掃描中BCH并行解碼電路中的伴隨式校正子運(yùn)算電路和錯(cuò)誤位置多項(xiàng)式迭代電路工作,得到Flash塊中數(shù)據(jù)出錯(cuò)的比特個(gè)數(shù),用來定義對(duì)應(yīng)的Flash塊是否為壞塊,而使能后的非零錯(cuò)測試控制位使錯(cuò)誤地址搜索電路不工作;零錯(cuò)測試控制位經(jīng)第二反相器后得到第二取反信號(hào),第二取反信號(hào)和錯(cuò)誤位置多項(xiàng)式迭代電路的使能信號(hào)經(jīng)第二與門得到第二控制信號(hào),用于控制錯(cuò)誤位置多項(xiàng)式迭代電路;第二取反信號(hào)和錯(cuò)誤地址搜索電路的使能信號(hào)經(jīng)第三與門得到第三控制信號(hào),用于控制錯(cuò)誤地址搜索電路;零錯(cuò)測試控制位由CPU在Flash壞塊測試時(shí)使能,在Flash壞塊測試掃描中BCH并行解碼電路中的伴隨式校正子運(yùn)算電路工作,得到Flash塊中數(shù)據(jù)是否出錯(cuò)的結(jié)果,用來定義對(duì)應(yīng)的Flash塊是否為壞塊,而使能后的零錯(cuò)測試控制位使錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路不工作;解碼完成次數(shù)狀態(tài)位為一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器用于記錄BCH并行解碼電路完成Flash扇區(qū)的次數(shù),同時(shí)該計(jì)數(shù)器向CPU提供了一種比響應(yīng)BCH并行解碼電路中斷信號(hào)更快的狀態(tài)信號(hào),CPU直接讀取該計(jì)數(shù)器的值,來通知相應(yīng)模塊讀取解碼完成以后的數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的BCH碼控制器接口電路,其特征在于所述寄 存器組中設(shè)有Flash格式控制位,該控制位由CPU根據(jù)Flash格式賦值成"0" 或"1"兩種狀態(tài),其中一種狀態(tài)使BCH并行編碼電路在編碼中對(duì)應(yīng)每扇區(qū)為 528個(gè)字節(jié)Flash格式的數(shù)據(jù)生成13個(gè)字節(jié)的數(shù)據(jù)冗余位,另 一種狀態(tài)使BCH 并行編碼電路在編碼中對(duì)應(yīng)每扇區(qū)為540個(gè)字節(jié)Flash格式的數(shù)據(jù)生成26個(gè)力。 、 、 '— 、
3、 根據(jù)權(quán)利要求1所述的BCH碼控制器接口電路,其特征在于所述寄存器組中設(shè)有流水線控制位,該控制位由CPU使能,使能后的流水線控制位使BCH并行解碼電路中的伴隨式校正子運(yùn)算電路在處理完本扇區(qū)Flash數(shù)據(jù) 后產(chǎn)生中斷信號(hào),通知CPU讀取下一扇區(qū)Flash數(shù)據(jù),而錯(cuò)誤位置多項(xiàng)式迭 代電路和錯(cuò)誤地址搜索電路在處理本扇區(qū)Flash數(shù)據(jù)時(shí),伴隨式校正子運(yùn)算電 ^^同時(shí)處理下一扇區(qū)Flash ^:據(jù)。
4、根據(jù)權(quán)利要求1所述的BCH碼控制器接口電路,其特征在于所述寄 存器組中設(shè)有異常復(fù)位控制位,該控制位由CPU根據(jù)BCH編解碼電路出現(xiàn)的 異常進(jìn)行使能,使能后的異常復(fù)位控制位使BCH編解碼電路強(qiáng)制復(fù)位。
全文摘要
一種BCH碼控制器接口電路,特征是在嵌入式CPU與BCH編解碼電路之間的系統(tǒng)總線接口中設(shè)有寄存器組,寄存器組中設(shè)有非零錯(cuò)測試控制位、零錯(cuò)測試控制位以及解碼完成次數(shù)狀態(tài)位。在Flash型存儲(chǔ)設(shè)備壞塊測試掃描中,非零錯(cuò)測試控制位使能后讓錯(cuò)誤地址搜索電路不工作,零錯(cuò)測試控制位使能后讓錯(cuò)誤位置多項(xiàng)式迭代電路和錯(cuò)誤地址搜索電路不工作,提高了Flash壞塊測試速度,減少了電路功耗。在Flash型存儲(chǔ)設(shè)備使用中,解碼完成次數(shù)狀態(tài)位作為記錄完成Flash扇區(qū)解碼次數(shù)的計(jì)數(shù)器,同時(shí)向CPU提供一種比響應(yīng)解碼電路中斷信號(hào)更快的狀態(tài)信號(hào),CPU直接讀取該計(jì)數(shù)器的值來通知相應(yīng)模塊讀取解碼完成以后的數(shù)據(jù),速度提高了10%(2MB/s)。
文檔編號(hào)G11C29/04GK101488369SQ20091002517
公開日2009年7月22日 申請日期2009年2月20日 優(yōu)先權(quán)日2009年2月20日
發(fā)明者匡啟和, 林雄鑫, 偉 章, 肖佐楠, 茳 鄭, 鐘名富 申請人:蘇州國芯科技有限公司