亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應(yīng)用于理德-所羅門碼的ecc控制器的制作方法

文檔序號(hào):7522263閱讀:469來源:國(guó)知局
專利名稱:應(yīng)用于理德-所羅門碼的ecc控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種編/解碼控制器,具體涉及一種應(yīng)用于理德-所羅門碼的ECC控制器,屬于數(shù)據(jù)存儲(chǔ)領(lǐng)域。
背景技術(shù)
隨著嵌入式技術(shù)在各種電子產(chǎn)品中的廣泛應(yīng)用,嵌入式系統(tǒng)中的數(shù)據(jù)存儲(chǔ)器成為必不可少的部件,這就存在大量的儲(chǔ)存介質(zhì),為了保證儲(chǔ)存介質(zhì)中數(shù)據(jù)的可靠性,系統(tǒng)通常包括一個(gè)編/解碼控制器,用來對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行編碼,將編碼后的數(shù)據(jù)存入儲(chǔ)存介質(zhì)中,當(dāng)用戶需要讀取儲(chǔ)存介質(zhì)內(nèi)數(shù)據(jù)時(shí),編/解碼控制器對(duì)讀回的數(shù)據(jù)進(jìn)行解碼,解碼過程中一旦發(fā)現(xiàn)有錯(cuò)誤碼,編/解碼控制器進(jìn)行糾錯(cuò)操作,保證了數(shù)據(jù)的可靠性。附圖1為現(xiàn)有的編/解碼控制器應(yīng)用框圖,現(xiàn)有的編/解碼控制器需要配合直接存儲(chǔ)訪問控制器102、內(nèi)部存儲(chǔ)器103和外部存儲(chǔ)器接口 206來工作。編碼時(shí),原始數(shù)據(jù)存儲(chǔ)在內(nèi)部存儲(chǔ)器103中,CPU使能直接存儲(chǔ)訪問控制器102,同時(shí)配置源地址為內(nèi)部存儲(chǔ)器103的地址,目的地址為外部存儲(chǔ)器207的地址,原始數(shù)據(jù)在直接存儲(chǔ)訪問控制器102的控制下,由系統(tǒng)總線傳輸經(jīng)外部存儲(chǔ)器接口 206將編碼數(shù)據(jù)傳入外部存儲(chǔ)器207中,同時(shí),通過外部存儲(chǔ)器接口 206的原始數(shù)據(jù)又經(jīng)過編/解碼控制器內(nèi)部系統(tǒng)總線傳入編/解碼模塊106進(jìn)行編碼運(yùn)算。當(dāng)原始數(shù)據(jù)全部傳輸結(jié)束后,編/解碼模塊106會(huì)將相應(yīng)生成的ECC碼存儲(chǔ)在總線接口中,CPU通過系統(tǒng)總線讀取該ECC碼,并通過外部存儲(chǔ)器接口 206將ECC碼存儲(chǔ)在外部存儲(chǔ)器207中,完成編碼過程。解碼時(shí),解碼數(shù)據(jù)存儲(chǔ)在外部存儲(chǔ)器207中,CPU使能直接存儲(chǔ)訪問控制器102,配置源地址為外部存儲(chǔ)器207的地址,目的地址為內(nèi)部存儲(chǔ)器103的地址,解碼數(shù)據(jù)在直接存儲(chǔ)訪問控制器102的控制下,由系統(tǒng)總線傳輸經(jīng)外部存儲(chǔ)器接口 206將解碼數(shù)據(jù)傳入內(nèi)部存儲(chǔ)器103中,同時(shí),通過外部存儲(chǔ)器接口 206的解碼數(shù)據(jù)又經(jīng)過編/解碼控制器內(nèi)部系統(tǒng)總線傳入編/解碼模塊106進(jìn)行解碼運(yùn)算。當(dāng)解碼數(shù)據(jù)全部傳輸結(jié)束后,如果沒有發(fā)現(xiàn)錯(cuò)誤,解碼運(yùn)算結(jié)束;如果發(fā)現(xiàn)錯(cuò)誤,編/解碼模塊106會(huì)計(jì)算出解碼數(shù)據(jù)中錯(cuò)誤碼的地址和糾錯(cuò)碼并存儲(chǔ)在總線接口模塊中,CPU通過系統(tǒng)總線讀取該錯(cuò)誤碼地址和糾錯(cuò)碼,并通過錯(cuò)誤碼地址從內(nèi)部存儲(chǔ)器103中讀回錯(cuò)誤碼,與糾錯(cuò)碼運(yùn)算后生成正確數(shù)據(jù)并通過系統(tǒng)總線將正確數(shù)據(jù)寫回到內(nèi)部存儲(chǔ)器103,完成解碼過程?,F(xiàn)有技術(shù),比較適合大批量數(shù)據(jù)進(jìn)行編/解碼運(yùn)算的場(chǎng)合,但是針對(duì)小批量數(shù)據(jù)的編/解碼運(yùn)算而言,傳統(tǒng)的應(yīng)用架構(gòu)不僅在結(jié)構(gòu)上比較繁雜,需要增加其它功能模塊來配合工作,且要配置各個(gè)模塊來協(xié)調(diào)工作,所以導(dǎo)致整個(gè)編/解碼過程耗時(shí)長(zhǎng)、控制復(fù)雜、效率低。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種采用單一數(shù)據(jù)流完成數(shù)據(jù)傳輸過程和相應(yīng)ECC碼或糾錯(cuò)碼產(chǎn)生的過程,且實(shí)現(xiàn)數(shù)據(jù)傳輸與ECC碼或糾錯(cuò)碼運(yùn)算并行處理的ECC控制器。為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是一種應(yīng)用于理德-所羅門碼的ECC控制器,該ECC控制器包括理德-所羅門碼編/解碼模塊,系統(tǒng)總線接口、數(shù)據(jù)分割邏輯以及控制|吳塊。所述理德-所羅門碼編/解碼模塊主要由編碼電路、譯碼求解電路、錯(cuò)誤符號(hào)地址求解電路和糾錯(cuò)碼求解電路組成,當(dāng)處于編碼狀態(tài)時(shí),用于對(duì)編碼數(shù)據(jù)進(jìn)行運(yùn)算生成相應(yīng)的ECC碼,當(dāng)處于解碼狀態(tài)時(shí),用于判斷解碼數(shù)據(jù)是否存在錯(cuò)誤符號(hào),如存在則計(jì)算生成錯(cuò)誤符號(hào)地址和對(duì)錯(cuò)誤符號(hào)進(jìn)行糾錯(cuò)的糾錯(cuò)碼。所述ECC控制器還包括系統(tǒng)總線接口、數(shù)據(jù)分割邏輯以及控制模塊。所述系統(tǒng)總線接口,主要由編碼寄存器、解碼寄存器、控制寄存器、狀態(tài)寄存器、糾錯(cuò)邏輯組成;編碼寄存器用于存放編碼數(shù)據(jù)和ECC碼,CPU將編碼數(shù)據(jù)寫入編碼寄存器,觸發(fā)理德-所羅門碼編/解碼模塊工作,編碼寄存器與數(shù)據(jù)分割邏輯連接;解碼寄存器用于存放解碼數(shù)據(jù),CPU將解碼數(shù)據(jù)寫入解碼寄存器,觸發(fā)理德-所羅門碼編/解碼模塊工作,解碼寄存器與所述數(shù)據(jù)分割邏輯連接;控制寄存器用于接收CPU輸出的控制信息,將其轉(zhuǎn)化為相應(yīng)的控制信號(hào)輸出到控制模塊,通過控制模塊實(shí)現(xiàn)CPU對(duì)編/解碼過程的控制,其與所述控制模塊連接;狀態(tài)寄存器,用于接收標(biāo)識(shí)所述ECC控制器的狀態(tài)信息,實(shí)現(xiàn)CPU對(duì)所述ECC控制器的狀態(tài)查詢,其與所述控制模塊連接;糾錯(cuò)邏輯用于對(duì)解碼數(shù)據(jù)進(jìn)行符號(hào)糾錯(cuò),糾錯(cuò)邏輯接收理德-所羅門碼編/解碼模塊在解碼過程中生成的錯(cuò)誤符號(hào)地址和對(duì)應(yīng)的糾錯(cuò)碼,同時(shí)接收解碼寄存器中錯(cuò)誤符號(hào)地址對(duì)應(yīng)的錯(cuò)誤符號(hào),對(duì)錯(cuò)誤符號(hào)和糾錯(cuò)碼進(jìn)行運(yùn)算后得到正確符號(hào)并將正確符號(hào)傳輸?shù)浇獯a寄存器,從而將錯(cuò)誤符號(hào)更新為正確符號(hào),其與解碼寄存器、理德-所羅門碼編/解碼模塊連接。所述數(shù)據(jù)分割邏輯,用于將編碼或解碼數(shù)據(jù)劃分為若干個(gè)符號(hào)分多個(gè)時(shí)鐘周期輸入所述理德-所羅門碼編/解碼模塊,同時(shí),會(huì)觸發(fā)外部總線至等待狀態(tài),禁止CPU的訪問,防止因CPU的誤操作而導(dǎo)致編/解碼無法正常結(jié)束的現(xiàn)象。所述控制模塊,包含一組狀態(tài)機(jī),響應(yīng)數(shù)據(jù)分割邏輯、理德-所羅門碼編/解碼模塊的反饋信號(hào)及CPU對(duì)編碼寄存器、解碼寄存器和控制寄存器的操作,產(chǎn)生相應(yīng)的控制信號(hào),控制編/解碼過程,并將理德-所羅門碼編/解碼模塊的狀態(tài)反饋到CPU可查詢的所述狀態(tài)寄存器內(nèi),同時(shí)完成不同狀態(tài)之間的跳轉(zhuǎn),其中一組狀態(tài)機(jī)包括
(O空閑狀態(tài),所述ECC控制器處于空閑狀態(tài),控制模塊正在監(jiān)測(cè)CPU的操作;
(2)編碼初始化狀態(tài),用于啟動(dòng)編碼流程,對(duì)理德-所羅門碼編/解碼模塊在編碼過程中使用到的相關(guān)變量進(jìn)行初始化。當(dāng)有數(shù)據(jù)寫入編碼寄存器時(shí),使能所述編碼電路,使得編碼電路處于編碼工作狀態(tài);
(3)解碼初始化狀態(tài),用于啟動(dòng)解碼流程,對(duì)理德-所羅門碼編/解碼模塊在解碼過程中使用到的相關(guān)變量進(jìn)行初始化。當(dāng)有數(shù)據(jù)寫入解碼寄存器時(shí),使能所述編碼電路,使得編碼電路處于解碼工作狀態(tài);
(4)正常編碼狀態(tài),用于響應(yīng)CPU對(duì)編碼寄存器的操作,觸發(fā)理德-所羅門碼編/解碼模塊對(duì)編碼寄存器內(nèi)數(shù)據(jù)進(jìn)行編碼操作;
(5)正常解碼狀態(tài),用于響應(yīng)CPU對(duì)解碼寄存器的操作,觸發(fā)理德-所羅門碼編/解碼模塊對(duì)解碼寄存器內(nèi)數(shù)據(jù)進(jìn)行解碼操作;
(6)編碼成功狀態(tài),用于判斷編碼是否結(jié)束,并將此編碼成功狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器內(nèi);
(7)解碼成功狀態(tài),用于判斷解碼是否結(jié)束,并將此解碼成功狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器內(nèi);
(8)譯碼狀態(tài),當(dāng)編碼電路工作在解碼狀態(tài)時(shí)輸出的解碼伴隨式S(X)不為‘0’時(shí)跳轉(zhuǎn)到該譯碼狀態(tài),使能所述譯碼求解電路產(chǎn)生錯(cuò)誤位置多項(xiàng)式LU)和錯(cuò)誤值多項(xiàng)式W(X);
(9)查錯(cuò)狀態(tài),用于使能錯(cuò)誤符號(hào)地址求解電路和糾錯(cuò)碼求解電路查找錯(cuò)誤符號(hào)的具體位置并計(jì)算糾錯(cuò)碼。上述技術(shù)方案中的有關(guān)內(nèi)容解釋如下1、上述方案中,還包括選通器,用于在編碼和解碼工作狀態(tài)下復(fù)用所述數(shù)據(jù)分割邏輯,其第一輸入端與所述編碼寄存器連接,第二輸入端與所述解碼寄存器連接,輸出端與數(shù)據(jù)分割邏輯連接。2、上述方案中,還包括第一與門,用于將控制模塊的錯(cuò)誤符號(hào)數(shù)目異常信號(hào)與控制寄存器內(nèi)解碼異常中斷使能位進(jìn)行`運(yùn)算,產(chǎn)生通知CPU的中斷信號(hào),其輸入端與控制寄存器的解碼異常中斷使能位、控制模塊連接,輸出端通過總線與CPU連接。3、上述方案中,還包括第二與門,用于將控制模塊監(jiān)測(cè)CPU非法操作而產(chǎn)生的非法編碼信號(hào)或非法解碼信號(hào)或非法模式切換信號(hào)與系統(tǒng)異常中斷使能位進(jìn)行運(yùn)算,產(chǎn)生通知CPU的中斷信號(hào),其輸入端與控制寄存器的系統(tǒng)異常中斷使能位、控制模塊連接,輸出端通過總線與CPU連接。4、上述方案中,所述控制寄存器的控制信息包含以下控制位
(1)解碼異常中斷使能位,用于使能解碼異常而產(chǎn)生的中斷。解碼異常中斷使能位狀態(tài)含義
有效中斷使能
無效中斷關(guān)閉
(2)系統(tǒng)異常中斷使能位,用于使能由CPU操作不當(dāng)導(dǎo)致所述理德-所羅門碼ECC控制器異常而產(chǎn)生的中斷,
系統(tǒng)異常中斷使能位狀態(tài)含義
有效中斷使能
無效中斷關(guān)閉
(3)復(fù)用模式選擇位,用于選擇所述ECC控制器是否工作在復(fù)用模式,
復(fù)用模式選擇位狀態(tài)含義
有效復(fù)用模式,編/解碼寄存器復(fù)用相同的地址
無效正常模式,編/解碼寄存器有獨(dú)立的地址
(4)復(fù)用地址工作模式選擇位,用于控制復(fù)用地址在復(fù)用模式時(shí)的工作模式選擇,
復(fù)用地址工作模式選擇位狀態(tài)含義
有效復(fù)用地址作為解碼寄存器的地址使用
無效復(fù)用地址作為編碼寄存器的地址使用
(5)強(qiáng)制解碼位,用于使能解碼初始化狀態(tài),強(qiáng)制觸發(fā)理德-所羅門碼編/解碼模塊進(jìn)行解碼運(yùn)算,解碼數(shù)據(jù)為存放在解碼寄存器中的值,
強(qiáng)制解碼位狀態(tài)含義
有效強(qiáng)制發(fā)生解碼
無效無作用
(6)強(qiáng)制編碼位,用于使能編碼初始化狀態(tài),強(qiáng)制觸發(fā)理德-所羅門碼編/解碼模塊進(jìn)行編碼運(yùn)算,編碼數(shù)據(jù)為存放在編碼寄存器中的值,
強(qiáng)制編碼位狀態(tài)含義
有效強(qiáng)制發(fā)生編碼
無效無作用
(7)復(fù)位位,用于生成所述理德-所羅門碼ECC控制器的同步復(fù)位信號(hào),可以復(fù)位控制模塊的狀態(tài)機(jī)和狀態(tài)標(biāo)志,
復(fù)位位狀態(tài)含義
有效復(fù)位控制模塊
無效無作用
以上為控制寄存器的各個(gè)控制位的作用。5、上述方案中,所述狀態(tài)寄存器的狀態(tài)信息包含以下狀態(tài)標(biāo)志位
(1)系統(tǒng)異常標(biāo)志位,用于表示ECC控制器的異常狀態(tài),如編/解碼數(shù)據(jù)寫入順序不正確導(dǎo)致系統(tǒng)進(jìn)入異常狀態(tài),當(dāng)系統(tǒng)異常中斷使能位有效時(shí)觸發(fā)中斷,
通過控制寄存器的復(fù)位位或通過開始一個(gè)新的編/解碼過程可以使系統(tǒng)異常標(biāo)志位變?yōu)闊o效,
系統(tǒng)異常標(biāo)志位狀態(tài)含義
有效系統(tǒng)異常
無效系統(tǒng)正常
(2)解碼異常標(biāo)志位,當(dāng)解碼數(shù)據(jù)的錯(cuò)誤符號(hào)個(gè)數(shù)超過了ECC控制器的糾錯(cuò)能力時(shí)有效,同時(shí),解碼異常中斷使能位有效時(shí)觸發(fā)中斷,
通過控制寄存器的復(fù)位位或通過開始一個(gè)新的編/解碼過程可以使解碼異常標(biāo)志位變?yōu)闊o效,
解碼異常標(biāo)志位狀態(tài)含義
有效解碼異常
無效其他
(3)解碼成功標(biāo)志位,會(huì)在兩種情況下有效,(a)解碼過程沒有發(fā)現(xiàn)錯(cuò)誤符號(hào),(b)解碼過程發(fā)現(xiàn)有錯(cuò)誤符號(hào),錯(cuò)誤符號(hào)個(gè)數(shù)在所述ECC控制器的糾錯(cuò)能力之內(nèi),可以發(fā)現(xiàn)并糾正所有的錯(cuò)誤符號(hào),
通過控制寄存器的復(fù)位位或通過開始一個(gè)新的編/解碼過程可以使解碼成功標(biāo)志位變?yōu)闊o效,
解碼成功標(biāo)志位狀態(tài)含義
有效解碼成功
無效其他
(4)解碼忙標(biāo)志位,會(huì)在兩種情況下使能,(a)CPU使能強(qiáng)制解碼位,強(qiáng)制發(fā)生解碼,(b)CPU向解碼寄存器內(nèi)寫數(shù)據(jù),
當(dāng)解碼結(jié)束,解碼成功標(biāo)志位或解碼異常標(biāo)志位有效后,解碼忙標(biāo)志位變?yōu)闊o效,也可以通過復(fù)位位或通過開始一個(gè)新的編碼過程使解碼忙標(biāo)志位變?yōu)闊o效,
解碼忙標(biāo)志位狀態(tài)含義
有效正在解碼
無效其他
(5)編碼成功標(biāo)志位,當(dāng)編碼數(shù)據(jù)通過數(shù)據(jù)分割邏輯全部輸入到理德一所羅門碼編/解碼模塊后,編碼過程結(jié)束,相應(yīng)的ECC碼存放在編碼寄存器中,編碼成功標(biāo)志位有效,
通過復(fù)位位或通過開始一個(gè)新的編/解碼過程可以使編碼成功標(biāo)志位變?yōu)闊o效, 編碼成功標(biāo)志位狀態(tài)含義
有效編碼結(jié)束,編碼寄存器已存儲(chǔ)了有效ECC碼
無效其他
(6)編碼忙標(biāo)志位,會(huì)在兩種情況下使能,(a)CPU使能強(qiáng)制編碼位,強(qiáng)制發(fā)生編碼,(b)CPU向編碼寄存器寫數(shù)據(jù),
當(dāng)編碼結(jié)束,編碼成功標(biāo)志位有效后,編碼忙標(biāo)志位變?yōu)闊o效,也可以通過復(fù)位位或通過開始一個(gè)新的解碼過程使編碼忙標(biāo)志位變?yōu)闊o效,
編碼忙標(biāo)志位狀態(tài)含義
有效正在編碼
無效其他
以上為狀態(tài)寄存器的各個(gè)狀態(tài)位的作用。6、上述方案中,所述控制模塊的狀態(tài)機(jī)還包括
(1)強(qiáng)制編碼狀態(tài),用于響應(yīng)CPU對(duì)控制寄存器中強(qiáng)制編碼控制位的設(shè)置,強(qiáng)制發(fā)起一個(gè)編碼過程,強(qiáng)制編碼過程中,觸發(fā)外部總線至等待狀態(tài),禁止CPU對(duì)所述ECC控制器的進(jìn)一步操作;
(2)強(qiáng)制解碼狀態(tài),用于響應(yīng)CPU對(duì)控制寄存器中強(qiáng)制解碼控制位的設(shè)置,強(qiáng)制發(fā)起一個(gè)解碼過程,強(qiáng)制解碼過程中,觸發(fā)外部總線至等待狀態(tài),禁止CPU對(duì)所述ECC控制器的進(jìn)
一步操作;
(3)系統(tǒng)異常狀態(tài),表示所述理德-所羅門碼ECC控制器發(fā)生異常,并將該ECC控制器異常的狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器內(nèi);
(4)解碼異常狀態(tài),表示解碼數(shù)據(jù)的錯(cuò)誤符號(hào)個(gè)數(shù)超過ECC控制器的糾錯(cuò)能力,并將此解碼異常的狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器內(nèi)。本發(fā)明工作原理是設(shè)有編碼寄存器、解碼寄存器、控制寄存器、狀態(tài)寄存器、糾錯(cuò)邏輯、數(shù)據(jù)分割邏輯,CPU在向編碼寄存器或解碼寄存器輸入數(shù)據(jù)的同時(shí),數(shù)據(jù)分割邏輯將編/解碼數(shù)據(jù)以符號(hào)的方式傳輸?shù)嚼淼?所羅門碼編/解碼模塊內(nèi),進(jìn)行編/解碼處理,CPU通過控制寄存器實(shí)現(xiàn)對(duì)編/解碼過程的控制,狀態(tài)寄存器用于標(biāo)識(shí)ECC控制器的狀態(tài)信息。由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn)和效果1、本發(fā)明編/解碼過程可以通過CPU對(duì)基于理德-所羅門碼的ECC控制器直接訪問完成,編碼時(shí),CPU將原始數(shù)據(jù)寫入編碼寄存器,數(shù)據(jù)分割邏輯對(duì)原始數(shù)據(jù)進(jìn)行處理后輸入到理德-所羅門碼編/解碼模塊,生成相應(yīng)的ECC碼;解碼時(shí),CPU將解碼數(shù)據(jù)寫入解碼寄存器,數(shù)據(jù)分割邏輯將解碼數(shù)據(jù)進(jìn)行處理后輸入到理德-所羅門碼編/解碼模塊進(jìn)行解碼。編/解碼過程不需要其它模塊配合工作,只需要提供和CPU之間的接口邏輯,簡(jiǎn)化了硬件結(jié)構(gòu),控制簡(jiǎn)單。2、本發(fā)明解碼過程發(fā)現(xiàn)錯(cuò)誤符號(hào)時(shí),硬件自動(dòng)根據(jù)理德-所羅門碼編/解碼模塊提供的錯(cuò)誤符號(hào)地址和糾錯(cuò)碼對(duì)解碼寄存器中的錯(cuò)誤符號(hào)進(jìn)行糾錯(cuò),糾錯(cuò)無需CPU參與,提聞了糾錯(cuò)效率。3、編碼時(shí),原始數(shù)據(jù)的輸入和編碼電路是并行工作的,一旦所有的原始數(shù)據(jù)經(jīng)數(shù)據(jù)分割邏輯后全部輸入到理德-所羅門碼編/解碼模塊,CPU即可讀編碼寄存器中的ECC碼,實(shí)現(xiàn)了從編碼數(shù)據(jù)寫入到有效ECC碼生成的零等待運(yùn)算過程,編碼效率高。4、編/解碼過程中,CPU將編碼數(shù)據(jù)或解碼數(shù)據(jù)寫入編碼寄存器或解碼寄存器,數(shù)據(jù)分割邏輯將編碼數(shù)據(jù)或解碼數(shù)據(jù)劃分為若干個(gè)符號(hào)分多個(gè)時(shí)鐘周期輸入理德-所羅門碼編/解碼模塊,這種基于寄存器傳輸?shù)姆绞讲粌H硬件結(jié)構(gòu)實(shí)現(xiàn)簡(jiǎn)單、且速度快、可靠性聞。


附圖1為現(xiàn)有編/解碼控制器系統(tǒng)示意 附圖2為本發(fā)明應(yīng)用于理德-所羅門碼的ECC控制器系統(tǒng)示意 附圖3為本發(fā)明應(yīng)用于理德-所羅門碼的ECC控制器邏輯結(jié)構(gòu) 附圖4為本發(fā)明數(shù)據(jù)分割邏輯工作示意 附圖5為本發(fā)明應(yīng)用于理德-所羅門碼的ECC控制器內(nèi)信號(hào)原理 附圖6為本發(fā)明控制模塊的狀態(tài)機(jī)工作原理圖。
具體實(shí)施例方式下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述
實(shí)施例一種應(yīng)用于理德-所羅門碼的ECC控制器
本實(shí)施例應(yīng)用于理德-所羅門碼的ECC控制器,其處理的數(shù)據(jù)符號(hào)由4個(gè)二進(jìn)制數(shù)據(jù)組成,基于有限域GF (24)運(yùn)算,可以保護(hù)9個(gè)符號(hào)即36位有效數(shù)據(jù),產(chǎn)生6個(gè)符號(hào)即24位ECC碼,可對(duì)隨機(jī)的3個(gè)符號(hào)糾錯(cuò),構(gòu)成RS( 15,9)編碼結(jié)構(gòu),從附圖2、3可知,基于理德-所羅門碼的ECC控制器由理德-所羅門碼編/解碼模塊202、系統(tǒng)總線接口 201、數(shù)據(jù)分割邏輯309、控制模塊203組成,其與外部存儲(chǔ)器接口 206、CPU104連接,附圖3為基于理德-所羅門碼的ECC控制器邏輯結(jié)構(gòu)圖,其各部分作用如下
理德-所羅門碼編/解碼模塊202,該理德-所羅門碼編/解碼模塊202主要由編碼電路501、譯碼求解電路502、錯(cuò)誤符號(hào)地址求解電路504和糾錯(cuò)碼求解電路503組成,當(dāng)處于編碼狀態(tài)時(shí),用于對(duì)編碼數(shù)據(jù)進(jìn)行運(yùn)算生成相應(yīng)的ECC碼,當(dāng)處于解碼狀態(tài)時(shí),用于判斷解碼數(shù)據(jù)是否存在錯(cuò)誤符號(hào),如存在則計(jì)算生成錯(cuò)誤符號(hào)地址和對(duì)錯(cuò)誤符號(hào)進(jìn)行糾錯(cuò)的糾錯(cuò)碼。系統(tǒng)總線接口,由編碼寄存器301、解碼寄存器302、控制寄存器303、狀態(tài)寄存器304、糾錯(cuò)邏輯310組成。編碼寄存器301用于存放編碼數(shù)據(jù)和ECC碼,CPU104將編碼數(shù)據(jù)寫入編碼寄存器301,觸發(fā)理德-所羅門碼編/解碼模塊202工作,編碼寄存器301與數(shù)據(jù)分割邏輯309連接。 解碼寄存器302用于存放解碼數(shù)據(jù),CPU104將解碼數(shù)據(jù)寫入解碼寄存器302,觸發(fā)理德-所羅門碼編/解碼模塊202工作,解碼寄存器302與所述數(shù)據(jù)分割邏輯309連接??刂萍拇嫫?03用于接收CPU104輸出的控制信息,實(shí)現(xiàn)CPU104對(duì)編/解碼過程的控制,其與所述控制模塊203連接,由以下控制位組成
(1)解碼異常中斷使能位TMEIE,用于使能解碼異常而產(chǎn)生的中斷,
解碼異常中斷使能位狀態(tài)含義
有效中斷使能
無效中斷關(guān)閉
(2)系統(tǒng)異常中斷使能位ISSIE,用于使能由CPU操作不當(dāng)導(dǎo)致所述理德-所羅門碼ECC控制器異常而產(chǎn)生的中斷,
系統(tǒng)異常中斷使能位狀態(tài)含義
有效中斷使能
無效中斷關(guān)閉
(3)復(fù)用模式選擇位SHARE,用于選擇所述ECC控制器是否工作在復(fù)用模式,
復(fù)用模式選擇位狀態(tài)含義
有效復(fù)用模式,編/解碼寄存器復(fù)用相同的地址
無效正常模式,編/解碼寄存器有獨(dú)立的地址
(4)復(fù)用地址工作模式選擇位SDIR,用于控制復(fù)用地址在復(fù)用模式SHARE=I時(shí)的工作模式選擇,
復(fù)用地址工作模式選擇位狀態(tài)含義
有效復(fù)用地址作為解碼寄存器的地址使用
無效復(fù)用地址作為編碼寄存器的地址使用
(5)強(qiáng)制解碼位FDE,用于使能解碼初始化狀態(tài)START_DE,強(qiáng)制觸發(fā)理德-所羅門碼編/解碼模塊202進(jìn)行解碼運(yùn)算,解碼數(shù)據(jù)為存放在解碼寄存器302中的值,
強(qiáng)制解碼位狀態(tài)含義
有效強(qiáng)制發(fā)生解碼
無效無作用
(6)強(qiáng)制編碼位FEN,用于使能編碼初始化狀態(tài)START_EN,強(qiáng)制觸發(fā)理德-所羅門碼編/解碼模塊202進(jìn)行編碼運(yùn)算,編碼數(shù)據(jù)為存放在編碼寄存器301中的值,
強(qiáng)制編碼位狀態(tài)含義
有效強(qiáng)制發(fā)生編碼
無效無作用
(7)復(fù)位位RST,用于生成所述理德-所羅門碼ECC控制器的同步復(fù)位信號(hào)RST_reSet,可以復(fù)位控制模塊203的狀態(tài)機(jī)和狀態(tài)標(biāo)志,
復(fù)位位狀態(tài)含義
有效復(fù)位控制模塊
無效無作用 以上為控制寄存器303的各個(gè)控制位的作用。狀態(tài)寄存器304用于接收標(biāo)識(shí)所述ECC控制器的狀態(tài)信息,實(shí)現(xiàn)CPU104對(duì)所述ECC控制器的狀態(tài)查詢,其與所述控制模塊203連接,由以下狀態(tài)位組成
(1)系統(tǒng)異常標(biāo)志位ISS_FLAG,用于表示ECC控制器的異常狀態(tài),如編/解碼數(shù)據(jù)寫入順序不正確導(dǎo)致系統(tǒng)進(jìn)入異常狀態(tài),當(dāng)系統(tǒng)異常中斷使能位有效時(shí)觸發(fā)中斷,
通過控制寄存器303的復(fù)位位RST或通過開始一個(gè)新的編/解碼過程可以使系統(tǒng)異常標(biāo)志位ISS_FLAG變?yōu)闊o效,
系統(tǒng)異常標(biāo)志位狀態(tài)含義
有效系統(tǒng)異常
無效系統(tǒng)正常
(2)解碼異常標(biāo)志位TME_FLAG,當(dāng)解碼數(shù)據(jù)的錯(cuò)誤符號(hào)個(gè)數(shù)超過了ECC控制器的糾錯(cuò)能力時(shí)有效,同時(shí),解碼異常中斷使能位有效時(shí)觸發(fā)中斷,
通過控制寄存器303的復(fù)位位RST或通過開始一個(gè)新的編/解碼過程可以使解碼異常標(biāo)志位TME_FLAG無效,
解碼異常標(biāo)志位狀態(tài)含義
有效解碼異常
無效其他
(3)解碼成功標(biāo)志位D0K_FLAG,會(huì)在兩種情況下有效,(a)解碼過程沒有發(fā)現(xiàn)錯(cuò)誤符號(hào),(b)解碼過程發(fā)現(xiàn)有錯(cuò)誤符號(hào),但錯(cuò)誤符號(hào)個(gè)數(shù)在ECC控制器的糾錯(cuò)能力之內(nèi),可以發(fā)現(xiàn)并糾正所有的錯(cuò)誤符號(hào),
通過控制寄存器303的復(fù)位位RST或通過開始一個(gè)新的編/解碼過程可以使解碼成功標(biāo)志位D0K_FLAG無效,
解碼成功標(biāo)志位狀態(tài)含義
有效解碼成功
無效其他
(4)解碼忙標(biāo)志位DBUSY,會(huì)在兩種情況下使能,(a)CPU使能強(qiáng)制解碼位FDE,強(qiáng)制發(fā)生解碼,(b) CPU向解碼寄存器302寫數(shù)據(jù),
當(dāng)解碼結(jié)束,解碼成功標(biāo)志位D0K_FLAG或解碼異常標(biāo)志位TME_FLAG有效后,解碼忙標(biāo)志位DBUSY變?yōu)闊o效,也可以通過復(fù)位位RST或通過開始一個(gè)新的編碼過程使解碼忙標(biāo)志位DBUSY無效,
解碼忙標(biāo)志位狀態(tài)含義
有效正在解碼
無效其他
(5)編碼成功標(biāo)志位E0K_FLAG,當(dāng)編碼數(shù)據(jù)通過數(shù)據(jù)分割邏輯309全部輸入到理德一所羅門碼編/解碼模塊202后,編碼過程結(jié)束,相應(yīng)的ECC碼存放在編碼寄存器中,編碼成功標(biāo)志位有效,
通過復(fù)位位RST或通過開始一個(gè)新的編/解碼過程可以使編碼成功標(biāo)志位E0K_FLAG無效,
編碼成功標(biāo)志位狀態(tài)含義 有效編碼結(jié)束,編碼寄存器已存儲(chǔ)了有效ECC碼
無效其他
(6)編碼忙標(biāo)志位EBUSY,會(huì)在兩種情況下使能,(a) CPU使能強(qiáng)制編碼位FEN,強(qiáng)制發(fā)生編碼,(b) CPU向編碼寄存器301寫數(shù)據(jù),
當(dāng)編碼結(jié)束,編碼成功標(biāo)志位有效后,編碼忙標(biāo)志位EBUSY變?yōu)闊o效,也可以通過復(fù)位位RST或通過開始一個(gè)新的解碼過程使編碼忙標(biāo)志位EBUSY無效,
編碼忙標(biāo)志位狀態(tài)含義
有效正在編碼
無效其他
以上為狀態(tài)寄存器304的各個(gè)狀態(tài)位的作用。糾錯(cuò)邏輯310用于對(duì)解碼數(shù)據(jù)進(jìn)行符號(hào)糾錯(cuò),糾錯(cuò)邏輯310接收理德_所羅門碼編/解碼模塊202在解碼過程中生成的錯(cuò)誤符號(hào)地址和對(duì)應(yīng)的糾錯(cuò)碼,同時(shí)接收解碼寄存器302中錯(cuò)誤符號(hào)地址對(duì)應(yīng)的錯(cuò)誤符號(hào),對(duì)錯(cuò)誤符號(hào)和糾錯(cuò)碼進(jìn)行運(yùn)算后得到正確符號(hào)并將正確符號(hào)傳輸?shù)浇獯a寄存器302,從而將錯(cuò)誤符號(hào)更新為正確符號(hào),其與解碼寄存器302、理德-所羅門碼編/解碼模塊202連接。數(shù)據(jù)分割邏輯309,用于將編碼或解碼數(shù)據(jù)劃分為若干個(gè)符號(hào)分多個(gè)時(shí)鐘周期輸入所述理德-所羅門碼編/解碼模塊202,同時(shí),會(huì)觸發(fā)外部總線至等待狀態(tài)wait-state,防止期間因CPU104的誤操作而導(dǎo)致編/解碼無法正常結(jié)束的現(xiàn)象;數(shù)據(jù)分割邏輯對(duì)編/解碼數(shù)據(jù)的分割處理過程如附圖4所示,基于符號(hào)編碼,以4-bit作為一個(gè)符號(hào)單元進(jìn)行分割,在編碼數(shù)據(jù)分割過程中,ENSO、ENS1、ENS2、ENS3、ENS4、ENS5、ENS6、ENS7、ENS8 為連續(xù)的符號(hào)單元,正常編碼FEN=O中的編碼數(shù)據(jù)分割分為以下三種情況,(a) CPU以字節(jié)向編碼寄存器301輸入數(shù)據(jù),會(huì)觸發(fā)外部總線即系統(tǒng)總線至等待狀態(tài)wait-state,寫入的字節(jié)分割為兩個(gè)符號(hào)ENSO和ENSl并依次輸入理德-所羅門碼編/解碼模塊202,在ENSO、ENSl傳輸結(jié)束的前一個(gè)時(shí)鐘周期,則使外部總線即系統(tǒng)總線的等待狀態(tài)wait-state變?yōu)闊o效,進(jìn)行下一輪字節(jié)輸入并分割為ENS2、ENS3 ; (b) CPU以半字向編碼寄存器301輸入數(shù)據(jù),會(huì)觸發(fā)外部總線即系統(tǒng)總線至等待狀態(tài)wait-state,寫入的半字分割為四個(gè)符號(hào)ENS0、ENS1、ENS2和ENS3并依次輸入理德-所羅門碼編/解碼模塊202,在ENSO、ENSl、ENS2、ENS3傳輸結(jié)束的前一個(gè)時(shí)鐘周期,則使外部總線即系統(tǒng)總線的等待狀態(tài)wait-state變?yōu)闊o效,進(jìn)行下一輪半字輸入并分割為ENS4、ENS5、ENS6、ENS7 ; (c) CPU以字向編碼寄存器301輸入數(shù)據(jù),會(huì)觸發(fā)外部總線即系統(tǒng)總線至等待狀態(tài)wait-state,寫入的字分割為八個(gè)符號(hào)ENSO, ENS1、ENS2、ENS3、ENS4、ENS5、ENS6和ENS7并依次輸入理德-所羅門碼編/解碼模塊 202,在 ENSO、ENS1、ENS2、ENS3、ENS4、ENS5、ENS6、ENS7 傳輸結(jié)束的前一個(gè)時(shí)鐘周期,則使外部總線即系統(tǒng)總線的等待狀態(tài)wait-state變?yōu)闊o效,進(jìn)行下一輪字輸入。在強(qiáng)制編碼FEN=I過程中,會(huì)觸發(fā)外部總線即系統(tǒng)總線至等待狀態(tài)wait-state,數(shù)據(jù)分割邏輯309將已經(jīng)儲(chǔ)存在編碼寄存器中的編碼數(shù)據(jù)分為ENSO、ENS1、ENS2、ENS3、ENS4、ENS5、ENS6、ENS7和ENS8共9個(gè)符號(hào)單元并依次輸出至理德-所羅門碼編/解碼模塊202,在ENSO、ENSUENS2、ENS3、ENS4、ENS5、ENS6、ENS7、ENS8傳輸結(jié)束后,則使外部總線即系統(tǒng)總線的等待狀態(tài)wait-state變?yōu)闊o效。數(shù)據(jù)分割邏輯309在正常解碼FDE=O和強(qiáng)制解碼FDE=I中對(duì)解碼數(shù)據(jù)的分割處理過程同在編碼中對(duì)編碼數(shù)據(jù)的分割處理過程所述。
控制模塊203,包含一組狀態(tài)機(jī),響應(yīng)數(shù)據(jù)分割邏輯309、理德-所羅門碼編/解碼模塊202的反饋信號(hào)及CPU對(duì)編碼寄存器301、解碼寄存器302和控制寄存器303的操作,產(chǎn)生相應(yīng)的控制信號(hào),控制編/解碼過程,并將理德-所羅門碼編/解碼模塊202的狀態(tài)反饋到CPU104可查詢的所述狀態(tài)寄存器304內(nèi),同時(shí)完成狀態(tài)之間的跳轉(zhuǎn),其中一組狀態(tài)機(jī)包括空閑狀態(tài)IDLE,編碼初始化狀態(tài)START_EN,解碼初始化狀態(tài)START_DE,正常編碼狀態(tài)USUAL_EN,正常解碼狀態(tài)USUAL_DE,編碼成功狀態(tài)Ε0Κ,解碼成功狀態(tài)D0K,譯碼狀態(tài)EUC,查錯(cuò)狀態(tài)FIND,強(qiáng)制編碼狀態(tài)F0RCE_EN,強(qiáng)制解碼狀態(tài)F0RCE_DE、系統(tǒng)異常狀態(tài)ISS和解碼異常狀態(tài)TME
Cl)空閑狀態(tài)IDLE,所述ECC控制器處于空閑狀態(tài),控制模塊203正在監(jiān)測(cè)CPU104的操作,
(2)編碼初始化狀態(tài)START_EN,用于啟動(dòng)編碼流程,對(duì)理德-所羅門碼編/解碼模塊202在編碼過程中使用到的相關(guān)變量進(jìn)行初始化。當(dāng)有數(shù)據(jù)寫入編碼寄存器時(shí),使能所述編碼電路501,使得編碼電路501處于編碼工作狀態(tài),
(3)解碼初始化狀態(tài)STA RT_DE,用于啟動(dòng)解碼流程,對(duì)理德-所羅門碼編/解碼模塊202在解碼過程中使用到的相關(guān)變量進(jìn)行初始化。當(dāng)有數(shù)據(jù)寫入解碼寄存器時(shí),使能所述編碼電路501,使得編碼電路501處于解碼工作狀態(tài),
(4)正常編碼狀態(tài)USUAL_EN,用于響應(yīng)CPU104對(duì)編碼寄存器301的操作,觸發(fā)理德-所羅門碼編/解碼模塊202對(duì)編碼寄存器301內(nèi)數(shù)據(jù)進(jìn)行編碼操作,
(5)正常解碼狀態(tài)USUAL_DE,用于響應(yīng)CPU104對(duì)解碼寄存器302的操作,觸發(fā)理德-所羅門碼編/解碼模塊202對(duì)解碼寄存器302內(nèi)數(shù)據(jù)進(jìn)行解碼操作,
(6)編碼成功狀態(tài)Ε0Κ,用于判斷編碼是否結(jié)束,并將此編碼成功狀態(tài)信息輸入可供CPU104查詢的狀態(tài)寄存器304內(nèi),
(7)解碼成功狀態(tài)D0K,用于判斷解碼是否結(jié)束,并將此解碼成功狀態(tài)信息輸入可供CPU104查詢的狀態(tài)寄存器304內(nèi),
(8)譯碼狀態(tài)EUC,當(dāng)編碼電路501工作在解碼狀態(tài)時(shí)輸出的解碼伴隨式S(X)不為‘0’時(shí)跳轉(zhuǎn)到該譯碼狀態(tài)EUC,使能所述譯碼求解電路502產(chǎn)生錯(cuò)誤位置多項(xiàng)式LU)和錯(cuò)誤值多項(xiàng)式W(X),
(9)查錯(cuò)狀態(tài)FIND,用于使能錯(cuò)誤符號(hào)地址求解電路504和糾錯(cuò)碼求解電路503,查找錯(cuò)誤符號(hào)的具體位置并計(jì)算糾錯(cuò)碼。(10)強(qiáng)制編碼狀態(tài)F0RCE_EN,用于響應(yīng)CPU對(duì)控制寄存器303中強(qiáng)制編碼控制位FEN的設(shè)置,強(qiáng)制發(fā)起一個(gè)編碼過程,強(qiáng)制編碼過程中,觸發(fā)外部總線至等待狀態(tài)wait-state,禁止CPU對(duì)所述ECC控制器的進(jìn)一步操作;
(11)強(qiáng)制解碼狀態(tài)F0RCE_DE,用于響應(yīng)CPU對(duì)控制寄存器303中強(qiáng)制解碼控制位FDE的設(shè)置,強(qiáng)制發(fā)起一個(gè)解碼過程,強(qiáng)制解碼過程中,觸發(fā)外部總線至等待狀態(tài)wait-state,禁止CPU對(duì)所述ECC控制器的進(jìn)一步操作;
(12)系統(tǒng)異常狀態(tài)ISS,表示所述理德-所羅門碼ECC控制器發(fā)生異常,并將該ECC控制器異常的狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器304內(nèi);
(13)解碼異常狀態(tài)TME,表示解碼數(shù)據(jù)的錯(cuò)誤符號(hào)個(gè)數(shù)超過ECC控制器的糾錯(cuò)能力,并將此解碼異常的狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器304內(nèi)。
由附圖6可以看出,空閑狀態(tài)IDLE、編碼初始化狀態(tài)START_EN、解碼初始化狀態(tài)START_DE和系統(tǒng)異常狀態(tài)ISS是四個(gè)比較特殊的狀態(tài),在滿足條件的前提下,狀態(tài)機(jī)可以由任意狀態(tài)到達(dá)空閑狀態(tài)IDLE狀態(tài)或編碼初始化狀態(tài)START_EN狀態(tài)或解碼初始化狀態(tài)START_DE狀態(tài),在編碼或解碼過程中,編碼數(shù)據(jù)或解碼數(shù)據(jù)寫入順序發(fā)生錯(cuò)誤或者復(fù)用模式選擇位SHARE、復(fù)用地址工作模式選擇位SDIR的非法改變會(huì)導(dǎo)致系統(tǒng)進(jìn)入系統(tǒng)異常狀態(tài)ISS狀態(tài)。
具體的條件如下1、空閑狀態(tài)IDLE,復(fù)位控制模塊203中狀態(tài)機(jī)至空閑狀態(tài)IDLE狀態(tài)有兩種情況
(1)、系統(tǒng)復(fù)位信號(hào)systemreset觸發(fā)下運(yùn)行空閑狀態(tài)IDLE ;
(2)、CPU使能控制寄存器303中的復(fù)位位RST,在同步復(fù)位信號(hào)RST_reset觸發(fā)下運(yùn)行空閑狀態(tài)IDLE。2、編碼初始化狀態(tài)START_EN,控制模塊203中狀態(tài)機(jī)跳轉(zhuǎn)到編碼初始化狀態(tài)START_EN狀態(tài)運(yùn)行的條件有兩種
(1)、復(fù)用模式選擇位SHARE=O或復(fù)用模式選擇位SHARE=I且復(fù)用地址工作模式選擇位SDIR=O,監(jiān)測(cè)到CPU向編碼寄存器301寫編碼數(shù)據(jù);
(2)、復(fù)用模式選擇位SHARE=O或復(fù)用模式選擇位SHARE=I且復(fù)用地址工作模式選擇位SDIR=O, CPU使能控制寄存器303的強(qiáng)制編碼位FEN。3、解碼初始化狀態(tài)START_DE,控制模塊203中狀態(tài)機(jī)跳轉(zhuǎn)到解碼初始化狀態(tài)START_DE狀態(tài)運(yùn)行的條件有兩種
(1)、復(fù)用模式選擇位SHARE=O或復(fù)用模式選擇位SHARE=I且復(fù)用地址工作模式選擇位SDIR=I,監(jiān)測(cè)到CPU向解碼寄存器302寫解碼數(shù)據(jù);
(2)、復(fù)用模式選擇位SHARE=O或復(fù)用模式選擇位SHARE=I且復(fù)用地址工作模式選擇位SDIR =1,CPU使能控制寄存器303的強(qiáng)制解碼位FDE。4、系統(tǒng)異常狀態(tài)ISS,控制模塊203跳轉(zhuǎn)到系統(tǒng)異常狀態(tài)ISS狀態(tài)運(yùn)行的轉(zhuǎn)換條件有三種
(1)、在編碼時(shí),CPU寫數(shù)據(jù)到編碼寄存器301的順序發(fā)生錯(cuò)誤;
(2)、在解碼時(shí),CPU寫數(shù)據(jù)到解碼寄存器302的順序發(fā)生錯(cuò)誤;
(3)、在編碼或解碼過程中,CPU改變控制寄存器303內(nèi)復(fù)用模式選擇位SHARE或復(fù)用地址工作模式選擇位SDIR的信息。復(fù)用模式選擇位SHARE或復(fù)用地址工作模式選擇位SDIR,只有在編碼或解碼過程結(jié)束后才能改變,即只有在空閑狀態(tài)IDLE狀態(tài)、編碼成功狀態(tài)EOK狀態(tài)、解碼成功狀態(tài)DOK狀態(tài)、解碼異常狀態(tài)TME狀態(tài)和系統(tǒng)異常狀態(tài)ISS狀態(tài)時(shí)可以改變,在其它狀態(tài)改變時(shí)會(huì)生成非法模式切換信號(hào)illegal_mode_change,導(dǎo)致狀態(tài)機(jī)跳轉(zhuǎn)到系統(tǒng)異常狀態(tài)ISS狀態(tài),并將系統(tǒng)異常狀態(tài)寫入狀態(tài)寄存器304的系統(tǒng)異常標(biāo)志位ISS_FLAG,系統(tǒng)異常標(biāo)志位ISS_FLAG與系統(tǒng)異常中斷使能位ISSIE經(jīng)第二與門308進(jìn)行與運(yùn)算產(chǎn)生通知CPU的中斷信號(hào)。除了以上四種狀態(tài)比較特殊外,其它的狀態(tài)的轉(zhuǎn)換都依賴于狀態(tài)機(jī)當(dāng)前所處的狀態(tài)和當(dāng)前的輸入。系統(tǒng)復(fù)位后,所述ECC控制器處于空閑狀態(tài)IDLE狀態(tài),控制模塊203開始監(jiān)測(cè)CPU的操作,主要的數(shù)據(jù)通路有兩種情況1、一旦發(fā)現(xiàn)滿足編碼初始化狀態(tài)START_EN的跳轉(zhuǎn)條件時(shí),控制模塊203中狀態(tài)機(jī)跳轉(zhuǎn)到編碼初始化狀態(tài)START_EN狀態(tài),在編碼初始化狀態(tài)START_EN下初始化理德-所羅門碼編/解碼模塊202,準(zhǔn)備開始一個(gè)新的編碼過程;同時(shí)要判斷引起狀態(tài)機(jī)跳轉(zhuǎn)到編碼初始化狀態(tài)START_EN的條件,來決定下一個(gè)時(shí)鐘周期狀態(tài)機(jī)的狀態(tài),有兩種情況
(a)復(fù)用模式選擇位SHARE =0或復(fù)用模式選擇位SHARE=I且復(fù)用地址工作模式選擇位SDIR=O,當(dāng)監(jiān)測(cè)到CPU向編碼寄存器301寫數(shù)據(jù)時(shí),觸發(fā)正常編碼使能信號(hào)usual_en_ena,狀態(tài)機(jī)跳轉(zhuǎn)到正常編碼狀態(tài)USUAL_EN。(b)復(fù)用模式選擇位SHARE=O或復(fù)用模式選擇位SHARE=I且復(fù)用地址工作模式選擇位SDIR=0,CPU使能控制寄存器303的強(qiáng)制編碼位FEN,觸發(fā)強(qiáng)制編碼使能信號(hào)force_en_ena,狀態(tài)機(jī)跳轉(zhuǎn)到強(qiáng)制編碼狀態(tài)F0RCE_EN。在正常編碼狀態(tài)下,正常編碼狀態(tài)USUAL_EN的跳轉(zhuǎn)又分為兩種情況
(a)CPU104按順序?qū)⒕幋a數(shù)據(jù)寫入到編碼寄存器301中,隨著編碼數(shù)據(jù)的寫入,同時(shí),數(shù)據(jù)分割邏輯309將其分解為若干個(gè)4-bit的符號(hào)單元輸出到理德-所羅門碼編/解碼模塊202,當(dāng)36位編碼數(shù)據(jù)全部輸入理德-所羅門碼編/解碼模塊202后,編碼結(jié)束,相應(yīng)的ECC碼存儲(chǔ)在編碼寄存器301中,此時(shí),觸發(fā)正常編碼結(jié)束信號(hào)uSual_en_end,狀態(tài)機(jī)從正常編碼狀態(tài)USUAL_EN跳轉(zhuǎn)到編碼成功狀態(tài)Ε0Κ,編碼結(jié)束;
(b)CPU寫入編碼數(shù)據(jù)的順序發(fā)生錯(cuò)誤,控制模塊203監(jiān)測(cè)到CPU104寫數(shù)據(jù)到編碼寄存器301的順序發(fā)生錯(cuò)誤而產(chǎn)生非法編碼信號(hào)illegal_en_aCC,在該非法編碼信號(hào)illegal_en_acc觸發(fā)下狀態(tài)機(jī)從正常編碼狀態(tài)USUAL_EN跳轉(zhuǎn)到系統(tǒng)異常狀態(tài)ISS狀態(tài),并將系統(tǒng)異常狀態(tài)寫入狀態(tài)寄存器304的系統(tǒng)異常標(biāo)志位ISS_FLAG,系統(tǒng)異常標(biāo)志位ISS_FLAG與系統(tǒng)異常中斷使能位ISSIE經(jīng)第二與門308進(jìn)行與運(yùn)算產(chǎn)生通知CPU的中斷信號(hào)。在強(qiáng)制編碼狀態(tài)下,會(huì)觸發(fā)外部總線即系統(tǒng)總線至等待狀態(tài)wait-state,數(shù)據(jù)分割邏輯309將已經(jīng)儲(chǔ)存在編碼寄存器中的編碼數(shù)據(jù)分為ENSO、ENSU ENS2、ENS3、ENS4、ENS5、ENS6、ENS7和ENS8共9個(gè)符號(hào)單元并依次輸出至理德-所羅門碼編/解碼模塊202,在 ENSO、ENSU ENS2、ENS3、ENS4、ENS5、ENS6、ENS7、ENS8 傳輸結(jié)束后,則使外部總線即系統(tǒng)總線的等待狀態(tài)wait-state變?yōu)闊o效。當(dāng)編碼寄存器301中的編碼數(shù)據(jù)全部輸出至理德-所羅門碼編/解碼模塊202后,編碼結(jié)束,相應(yīng)的ECC碼存儲(chǔ)在編碼寄存器301的ECC碼部分,此時(shí),觸發(fā)強(qiáng)制編碼結(jié)束信號(hào)forCe_en_end,狀態(tài)機(jī)從強(qiáng)制編碼狀態(tài)F0RCE_EN跳轉(zhuǎn)到編碼成功狀態(tài)Ε0Κ,編碼結(jié)束。強(qiáng)制編碼狀態(tài)F0RCE_EN主要適用于連續(xù)的兩組編碼數(shù)據(jù)相近的情況下,CPU可以改變編碼數(shù)據(jù)的一部分后,使能控制寄存器303的強(qiáng)制編碼位FEN,開始強(qiáng)制編碼,這樣不僅節(jié)省了編碼時(shí)間,而且減少了 CPU的操作。2、一旦發(fā)現(xiàn)滿足解碼初始化狀態(tài)START_DE的跳轉(zhuǎn)條件時(shí),觸發(fā)解碼使能信號(hào)start_decode,狀態(tài)機(jī)跳轉(zhuǎn)到解碼初始化狀態(tài)START_DE,在解碼初始化狀態(tài)START_DE下初始化理德-所羅門碼編/解碼模塊202,準(zhǔn)備開始一個(gè)新的解碼過程;同時(shí)要判斷引起狀態(tài)機(jī)跳轉(zhuǎn)到解碼初始化狀態(tài)START_DE的條件,來決定下一個(gè)時(shí)鐘周期狀態(tài)機(jī)的狀態(tài),有兩種情況
(a)復(fù)用模式選擇位SHARE = O或復(fù)用模式選擇位SHARE =1且復(fù)用地址工作模式選擇位SDIR=I,當(dāng)監(jiān)測(cè)到CPU向解碼寄存器302寫解碼數(shù)據(jù)時(shí),觸發(fā)正常解碼使能信號(hào)usual_de_ena,狀態(tài)機(jī)跳轉(zhuǎn)到正常解 碼狀態(tài)USUAL_DE ; (b)復(fù)用模式選擇位SHARE=O或復(fù)用模式選擇位SHARE =1且復(fù)用地址工作模式選擇位SDIR=L CPU使能控制寄存器303的強(qiáng)制解碼位FDE,觸發(fā)強(qiáng)制解碼使能信號(hào)forCe_de_ena,狀態(tài)機(jī)跳轉(zhuǎn)到強(qiáng)制解碼狀態(tài)FORCE_DE。在正常解碼狀態(tài)下,正常解碼狀態(tài)USUAL_DE的跳轉(zhuǎn)又分為兩種情況
(a)CPU按順序?qū)⒔獯a數(shù)據(jù)寫入到解碼寄存器中,隨著解碼數(shù)據(jù)的寫入,同時(shí),數(shù)據(jù)分割邏輯309將其分解為若干個(gè)4-bit的符號(hào)單元,依次輸出到理德-所羅門碼編/解碼模塊202,當(dāng)60-bit的解碼數(shù)據(jù)全部輸入理德-所羅門碼編/解碼模塊202后,理德-所羅門碼編/解碼模塊202生成有效的解碼伴隨式S(X);
(b)CPU寫入解碼數(shù)據(jù)的順序發(fā)生錯(cuò)誤,控制模塊203監(jiān)測(cè)CPU104寫數(shù)據(jù)到解碼寄存器的順序發(fā)生錯(cuò)誤而產(chǎn)生非法解碼信號(hào)illegal_de_acc,在非法解碼信號(hào)illegal_de_acc觸發(fā)下狀態(tài)機(jī)從正常解碼狀態(tài)USUAL_DE跳轉(zhuǎn)到系統(tǒng)異常狀態(tài)ISS,并將系統(tǒng)異常狀態(tài)寫入狀態(tài)寄存器304的系統(tǒng)異常標(biāo)志位ISS_FLAG,系統(tǒng)異常標(biāo)志位ISS_FLAG與系統(tǒng)異常中斷使能位ISSIE經(jīng)第二與門308進(jìn)行與運(yùn)算產(chǎn)生通知CPU的中斷信號(hào)。在強(qiáng)制解碼狀態(tài)下,會(huì)觸發(fā)外部總線即系統(tǒng)總線至等待狀態(tài)wait-state,數(shù)據(jù)分割邏輯309將已經(jīng)儲(chǔ)存在解碼寄存器中的解碼數(shù)據(jù)分為DESO、DESK DES2、DES3、DES4、DES5、DES6、DES7、DES8、DES9、DES10、DES11、DES12、DES13 和 DES14 共 15 個(gè)符號(hào)單元并依次輸出至理德-所羅門碼編/解碼模塊202,在DESO、DES1、DES2、DES3、DES4、DES5、DES6、DES7、DES8、DES9、DES10、DES11、DES12、DES13、DES14傳輸結(jié)束后,則使外部總線即系統(tǒng)總線的等待狀態(tài)rait-state變?yōu)闊o效。同時(shí)理德-所羅門碼編/解碼模塊202生成有效的解碼伴隨式S(X)。根據(jù)編碼電路501生成解碼伴隨式S(X)的值,狀態(tài)機(jī)又分為兩種通路
1、解碼伴隨式S(X)=O,表示解碼數(shù)據(jù)沒有錯(cuò)誤符號(hào);
2、解碼伴隨式S(X)古0,表示解碼數(shù)據(jù)有錯(cuò)誤符號(hào)。當(dāng)解碼伴隨式S(X)=O時(shí),表示解碼數(shù)據(jù)正確,不需要糾錯(cuò),觸發(fā)解碼結(jié)束信號(hào)de_no_err,狀態(tài)機(jī)直接跳轉(zhuǎn)到解碼成功狀態(tài)D0K。當(dāng)解碼伴隨式S(X)古O時(shí),表示解碼數(shù)據(jù)有錯(cuò)誤符號(hào),需要糾錯(cuò),觸發(fā)正常解碼結(jié)束信號(hào)usual_de_end或強(qiáng)制解碼結(jié)束信號(hào)force_de_end,狀態(tài)機(jī)跳轉(zhuǎn)到譯碼狀態(tài)EUC,在譯碼狀態(tài)EUC下,控制模塊203使能譯碼求解電路502,譯碼求解電路502根據(jù)解碼伴隨式S(X)計(jì)算出錯(cuò)誤位置多項(xiàng)式LU)和錯(cuò)誤值多項(xiàng)式W(x),且使能euclicLdone信號(hào)表示錯(cuò)誤位置多項(xiàng)式LU)和錯(cuò)誤值多項(xiàng)式W(X)計(jì)算完成。譯碼狀態(tài)EUC的跳轉(zhuǎn)分為兩種情況
(a)譯碼求解電路錯(cuò)誤信號(hào)euclicLerr無效,表示譯碼求解電路502工作正常,狀態(tài)機(jī)跳轉(zhuǎn)到查錯(cuò)狀態(tài)FIND狀態(tài);
(b)譯碼求解電路錯(cuò)誤信號(hào)euclicLerr有效,表示譯碼求解電路502工作不正常,狀態(tài)機(jī)跳轉(zhuǎn)到解碼異常狀態(tài)TME,并將解碼異常狀態(tài)寫入狀態(tài)寄存器304的解碼異常標(biāo)志位TME_FLAG,解碼異常標(biāo)志位TME_FLAG與解碼異常中斷使能位TMEIE經(jīng)第一與門進(jìn)行與運(yùn)算產(chǎn)生通知CPU的中斷信號(hào)。結(jié)合附圖5所示,在查錯(cuò)狀態(tài)FIND狀態(tài)時(shí),控制模塊203使能錯(cuò)誤符號(hào)地址求解電路504和糾錯(cuò)碼求解電路503。通過對(duì)錯(cuò)誤位置多項(xiàng)式LU)和錯(cuò)誤值多項(xiàng)式W(X)進(jìn)行運(yùn)算獲得錯(cuò)誤符號(hào)地址信號(hào)eaddr[3:0]和糾錯(cuò)碼信號(hào)val [3:0],糾錯(cuò)邏輯310會(huì)根據(jù)錯(cuò)誤符號(hào)地址信號(hào)eaddr[3:0]和糾錯(cuò)碼信號(hào)val [3:0]對(duì)解碼寄存器302內(nèi)相應(yīng)的錯(cuò)誤符號(hào)地址內(nèi)的解碼數(shù)據(jù)進(jìn)行硬件糾錯(cuò),其過程為糾錯(cuò)邏輯310接收錯(cuò)誤符號(hào)地址求解電路504在解碼過程中生成的錯(cuò)誤符號(hào)地址信號(hào)eaddr[3:0]和糾錯(cuò)碼求解電路503生成的糾錯(cuò)碼信號(hào)val[3:0];同時(shí)接收解碼寄存器302中錯(cuò)誤符號(hào)地址對(duì)應(yīng)的錯(cuò)誤符號(hào);對(duì)錯(cuò)誤符號(hào)和糾錯(cuò)碼進(jìn)行運(yùn)算后得到正確符號(hào)并將正確符號(hào)傳輸?shù)浇獯a寄存器302,從而將錯(cuò)誤符號(hào)更新為正確符號(hào)。控制模塊203根據(jù)錯(cuò)誤符號(hào)地址求解電路504輸出的found信號(hào)記錄下查錯(cuò)狀態(tài)FIND下系統(tǒng)查找到的錯(cuò)誤符號(hào)個(gè)數(shù)。控制模塊203在監(jiān)測(cè)到查錯(cuò)結(jié)束信號(hào)done后,狀態(tài)機(jī)的跳轉(zhuǎn)包括兩種情況
1、控制模塊203記錄的系統(tǒng)查找到的錯(cuò)誤符號(hào)數(shù)目不超過ECC控制器最大可糾錯(cuò)符號(hào)數(shù)目,表示系統(tǒng)可以正確糾錯(cuò),狀態(tài)機(jī)跳轉(zhuǎn)到解碼成功狀態(tài)DOK ;
2、控制模塊203記錄的系統(tǒng)查找到的錯(cuò)誤符號(hào)數(shù)目超過了ECC控制器的最大可糾錯(cuò)符號(hào)數(shù)目,表示系統(tǒng)不能正確糾錯(cuò),生成錯(cuò)誤符號(hào)數(shù)目異常信號(hào)t00_many_eiT0r,狀態(tài)機(jī)跳轉(zhuǎn)到解碼異常狀態(tài)TME,本實(shí)施例中,系統(tǒng)最大可糾錯(cuò)符號(hào)數(shù)目為3,當(dāng)錯(cuò)誤符號(hào)個(gè)數(shù)大于3個(gè)時(shí)產(chǎn)生錯(cuò)誤符號(hào)數(shù)目異常信號(hào)t00_many_enOr,狀態(tài)機(jī)跳轉(zhuǎn)到解碼異常狀態(tài)TME,并將解碼異常狀態(tài)寫入狀態(tài)寄存器304的解碼異常標(biāo)志位TME_FLAG,解碼異常標(biāo)志位TME_FLAG與解碼異常中斷使能位TMEIE經(jīng)第一與門進(jìn)行與運(yùn)算產(chǎn)生通知CPU的中斷信號(hào)。當(dāng)狀態(tài)機(jī)跳轉(zhuǎn)到不同的狀態(tài)時(shí),都會(huì)觸發(fā)狀態(tài)寄存器304中相應(yīng)的狀態(tài)標(biāo)志位,以供CPU查詢并獲知系統(tǒng)的工作狀態(tài)。編碼成功狀態(tài)Ε0Κ、解碼成功狀態(tài)D0K、解碼異常狀態(tài)TME和系統(tǒng)異常狀態(tài)ISS是四個(gè)結(jié)束狀態(tài),當(dāng)CPU開始一個(gè)新的編碼或解碼過程時(shí),狀態(tài)機(jī)會(huì)從結(jié)束狀態(tài)跳轉(zhuǎn)到編碼初始化狀態(tài)START_EN或解碼初始化狀態(tài)START_DE,開始新的工作流程。上述實(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.一種應(yīng)用于理德-所羅門碼的ECC控制器,該ECC控制器包括理德-所羅門碼編/解碼模塊(202),該理德-所羅門碼編/解碼模塊(202)主要由編碼電路(501)、譯碼求解電路(502)、錯(cuò)誤符號(hào)地址求解電路(504)和糾錯(cuò)碼求解電路(503)組成,當(dāng)處于編碼狀態(tài)時(shí),用于對(duì)編碼數(shù)據(jù)進(jìn)行運(yùn)算生成相應(yīng)的ECC碼,當(dāng)處于解碼狀態(tài)時(shí),用于判斷解碼數(shù)據(jù)是否存在錯(cuò)誤符號(hào),如存在則計(jì)算生成錯(cuò)誤符號(hào)地址和對(duì)錯(cuò)誤符號(hào)進(jìn)行糾錯(cuò)的糾錯(cuò)碼; 其特征在于所述ECC控制器還包括系統(tǒng)總線接口(201)、數(shù)據(jù)分割邏輯(309)以及控制模塊(203); 所述系統(tǒng)總線接口(201),主要由編碼寄存器(301)、解碼寄存器(302)、控制寄存器(303),狀態(tài)寄存器(304)、糾錯(cuò)邏輯(310)組成;編碼寄存器(301)用于存放編碼數(shù)據(jù)和ECC碼,CPU (104)將編碼數(shù)據(jù)寫入編碼寄存器(301),觸發(fā)理德-所羅門碼編/解碼模塊(202)工作,編碼寄存器(301)與數(shù)據(jù)分割邏輯(309)連接;解碼寄存器(302)用于存放解碼數(shù)據(jù),CPU (104)將解碼數(shù)據(jù)寫入解碼寄存器(302),觸發(fā)理德-所羅門碼編/解碼模塊(202)工作,解碼寄存器(302)與所述數(shù)據(jù)分割邏輯(309)連接;控制寄存器(303)用于接收CPU(104)輸出的控制信息,將其轉(zhuǎn)化為相應(yīng)的控制信號(hào)輸出到控制模塊(203),通過控制模塊(203)實(shí)現(xiàn)CPU (104)對(duì)編/解碼過程的控制,其與所述控制模塊(203)連接;狀態(tài)寄存器(304),用于接收標(biāo)識(shí)所述ECC控制器的狀態(tài)信息,實(shí)現(xiàn)CPU(104)對(duì)所述ECC控制器的狀態(tài)查詢,其與所述控制模塊(203)連接;糾錯(cuò)邏輯(310)用于對(duì)解碼數(shù)據(jù)進(jìn)行符號(hào)糾錯(cuò),糾錯(cuò)邏輯(310)接收理德-所羅門碼編/解碼模塊(202)在解碼過程中生成的錯(cuò)誤符號(hào)地址和對(duì)應(yīng)的糾錯(cuò)碼,同時(shí)接收解碼寄存器(302)中錯(cuò)誤符號(hào)地址對(duì)應(yīng)的錯(cuò)誤符號(hào),對(duì)錯(cuò)誤符號(hào)和糾錯(cuò)碼進(jìn)行運(yùn)算后得到正確符號(hào)并將正確符號(hào)傳輸?shù)浇獯a寄存器,從而將錯(cuò)誤符號(hào)更新為正確符號(hào),其與解碼寄存器(302)、理德-所羅門碼編/解碼模塊(202)連接; 所述數(shù)據(jù)分割邏輯(309),用于將編碼或解碼數(shù)據(jù)劃分為若干個(gè)符號(hào)分多個(gè)時(shí)鐘周期輸入所述理德-所羅門碼編/解碼模塊(202),同時(shí),會(huì)觸發(fā)外部總線至等待狀態(tài)(wait-state),禁止CPU (104)的訪問,防止期間因CPU (104)的誤操作而導(dǎo)致編/解碼無法正常結(jié)束的現(xiàn)象; 所述控制模塊(203),包含一組狀態(tài)機(jī),響應(yīng)數(shù)據(jù)分割邏輯(309)、理德-所羅門碼編/解碼模塊(202)的反饋信號(hào)及CPU對(duì)編碼寄存器(301)、解碼寄存器(302)和控制寄存器(303)的操作,產(chǎn)生相應(yīng)的控制信號(hào),控制編/解碼過程,并將理德-所羅門碼編/解碼模塊(202 )的狀態(tài)反饋到CPU (104 )可查詢的所述狀態(tài)寄存器(304 )內(nèi),同時(shí)完成不同狀態(tài)之間的跳轉(zhuǎn); 一第一與門(307),用于將控制模塊(203)的錯(cuò)誤符號(hào)數(shù)目異常信號(hào)(too_many_error)與控制寄存器(303)內(nèi)解碼異常中斷使能位(TMEIE)進(jìn)行運(yùn)算,產(chǎn)生通知CPU的中斷信號(hào),其輸入端與控制寄存器(303)的解碼異常中斷使能位(TMEIE)、控制模塊(203)連接,輸出端通過總線與CPU連接; 一第二與門(308),用于將控制模塊(203)監(jiān)測(cè)CPU (104)非法操作而產(chǎn)生的非法編碼信號(hào)(i I legal_en_acc )或非法解碼信號(hào)(i I legal_de_acc )或非法模式切換信號(hào)(iIlegal_mode_change)與系統(tǒng)異常中斷使能位進(jìn)行運(yùn)算,產(chǎn)生通知CPU的中斷信號(hào),其輸入端與控制寄存器(303)的系統(tǒng)異常中斷使能位(ISSIE)、控制模塊(203)連接,輸出端通過總線與CPU連接。
2.根據(jù)權(quán)利要求1所述的ECC控制器,其特征在于所述一組狀態(tài)機(jī)包括 (I)編碼初始化狀態(tài)(START_EN),用于啟動(dòng)編碼流程,對(duì)理德-所羅門碼編/解碼模塊(202)在編碼過程中使用到的相關(guān)變量進(jìn)行初始化,當(dāng)有數(shù)據(jù)寫入編碼寄存器時(shí),使能所述編碼電路(501),使得編碼電路(501)處于編碼工作狀態(tài), (2 )解碼初始化狀態(tài)(START_DE ),用于啟動(dòng)解碼流程,對(duì)理德-所羅門碼編/解碼模塊(202)在解碼過程中使用到的相關(guān)變量進(jìn)行初始化,當(dāng)有數(shù)據(jù)寫入解碼寄存器時(shí),使能所述編碼電路(501),使得編碼電路(501)處于解碼工作狀態(tài), (3)編碼成功狀態(tài)(EOK),用于判斷編碼是否結(jié)束,并將此編碼成功狀態(tài)信息輸入可供CPU (104)查詢的狀態(tài)寄存器(304)內(nèi), (4)解碼成功狀態(tài)(DOK),用于判斷解碼是否結(jié)束,并將此解碼成功狀態(tài)信息輸入可供CPU (104)查詢的狀態(tài)寄存器(304)內(nèi), (5)譯碼狀態(tài)(EUC),當(dāng)編碼電路(501)工作在解碼狀態(tài)時(shí)輸出的解碼伴隨式S(X)不為‘0’時(shí)跳轉(zhuǎn)到該譯碼狀態(tài)(EUC),使能所述譯碼求解電路(502)產(chǎn)生錯(cuò)誤位置多項(xiàng)式LU)和錯(cuò)誤值多項(xiàng)式W(X), (6 )查錯(cuò)狀態(tài)(FIND ),用于使能錯(cuò)誤符號(hào)地址求解電路(504 )和糾錯(cuò)碼求解電路(503 )查找錯(cuò)誤符號(hào)的具體位置并計(jì)算糾錯(cuò)碼。
3.根據(jù)權(quán)利要求2所述的ECC控制器,其特征在于所述控制模塊(203)的狀態(tài)機(jī)還包括 (1)系統(tǒng)異常狀態(tài)(ISS),表示所述理德-所羅門碼ECC控制器發(fā)生異常,并將該ECC控制器異常的狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器(304)內(nèi); (2)解碼異常狀態(tài)(TME),表示解碼數(shù)據(jù)的錯(cuò)誤符號(hào)個(gè)數(shù)超過ECC控制器的糾錯(cuò)能力,并將此解碼異常的狀態(tài)信息輸入可供CPU查詢的狀態(tài)寄存器(304)內(nèi)。
4.根據(jù)權(quán)利要求1所述的ECC控制器,其特征在于還包括選通器(306),用于在編碼和解碼工作狀態(tài)下復(fù)用所述數(shù)據(jù)分割邏輯(309),其第一輸入端與所述編碼寄存器(301)連接,第二輸入端與所述解碼寄存器(302)連接,輸出端與數(shù)據(jù)分割邏輯(309)連接。
5.根據(jù)權(quán)利要求1所述的ECC控制器,其特征在于所述控制寄存器(303)的控制信息包含以下控制位 (1)解碼異常中斷使能位(TMEIE),用于使能解碼異常而產(chǎn)生的中斷, 解碼異常中斷使能位狀態(tài)含義有效中斷使能無效中斷關(guān)閉 (2)系統(tǒng)異常中斷使能位(ISSIE),用于使能由CPU(104)操作不當(dāng)導(dǎo)致所述理德-所羅門碼ECC控制器異常而產(chǎn)生的中斷, 系統(tǒng)異常中斷使能位狀態(tài)含義有效中斷使能無效中斷關(guān)閉 (3)復(fù)用模式選擇位(SHARE),用于選擇所述ECC控制器是否工作在復(fù)用模式, 復(fù)用模式選擇位狀態(tài)含義 有效復(fù)用模式,編/解碼寄存器復(fù)用相同的地址無效正常模式,編/解碼寄存器有獨(dú)立的地址 (4)復(fù)用地址工作模式選擇位(SDIR),用于控制復(fù)用地址在復(fù)用模式(SHARE=I)時(shí)的工作模式選擇, 復(fù)用地址工作模式選擇位狀態(tài)含義 有效復(fù)用地址作為解碼寄存器的地址使用 無效復(fù)用地址作為編碼寄存器的地址使用 以上為控制寄存器(303)的各個(gè)控制位的作用。
6.根據(jù)權(quán)利要求1所述的ECC控制器,其特征在于所述狀態(tài)寄存器(304)的狀態(tài)信息包含以下狀態(tài)標(biāo)志位 (1)系統(tǒng)異常標(biāo)志位(ISS_FLAG),用于表示ECC控制器的異常狀態(tài),編/解碼數(shù)據(jù)寫入順序不正確導(dǎo)致系統(tǒng)進(jìn)入異常狀態(tài),當(dāng)系統(tǒng)異常中斷使能位有效時(shí)觸發(fā)中斷, 通過控制寄存器(303)的復(fù)位位(RST)或通過開始一個(gè)新的編/解碼過程可以使系統(tǒng)異常標(biāo)志位(ISS_FLAG)變?yōu)闊o效, 系統(tǒng)異常標(biāo)志位狀態(tài)含義有效系統(tǒng)異常無效系統(tǒng)正常 (2)解碼異常標(biāo)志位(TME_FLAG),當(dāng)解碼數(shù)據(jù)的錯(cuò)誤符號(hào)個(gè)數(shù)超過了ECC控制器的糾錯(cuò)能力時(shí)有效,同時(shí),解碼異常中斷使能位有效時(shí)觸發(fā)中斷, 通過控制寄存器(303)的復(fù)位位(RST)或通過開始一個(gè)新的編/解碼過程可以使解碼異常標(biāo)志位(TME_FLAG)變?yōu)闊o效, 解碼異常標(biāo)志位狀態(tài)含義有效解碼異常無效其他 (3)解碼成功標(biāo)志位(DOK_FLAG),會(huì)在兩種情況下有效,(a)解碼過程沒有發(fā)現(xiàn)錯(cuò)誤符號(hào),(b)解碼過程發(fā)現(xiàn)有錯(cuò)誤符號(hào),錯(cuò)誤符號(hào)個(gè)數(shù)在所述ECC控制器的糾錯(cuò)能力之內(nèi),可以發(fā)現(xiàn)并糾正所有的錯(cuò)誤符號(hào), 通過控制寄存器(303)的復(fù)位位(RST)或通過開始一個(gè)新的編/解碼過程可以使解碼成功標(biāo)志位(DOK_FLAG)變?yōu)闊o效, 解碼成功標(biāo)志位狀態(tài)含義有效解碼成功無效其他 (4)解碼忙標(biāo)志位(DBUSY),會(huì)在兩種情況下使能,(a)CPU使能強(qiáng)制解碼位(FDE),強(qiáng)制發(fā)生解碼,(b) CPU向解碼寄存器(302)寫數(shù)據(jù), 當(dāng)解碼結(jié)束,解碼成功標(biāo)志位(DOK_FLAG)或解碼異常標(biāo)志位(TME_FLAG)有效后,解碼忙標(biāo)志位(DBUSY)變?yōu)闊o效;或者通過復(fù)位位(RST)或通過開始一個(gè)新的編碼過程使解碼忙標(biāo)志位(DBUSY)變?yōu)闊o效, 解碼忙標(biāo)志位狀態(tài)含義有效正在解碼無效其他(5)編碼成功標(biāo)志位(EOK_FLAG),當(dāng)編碼數(shù)據(jù)通過數(shù)據(jù)分割邏輯(309)全部輸入到理德一所羅門碼編/解碼模塊(202)后,編碼過程結(jié)束,相應(yīng)的ECC碼存放在編碼寄存器中,編碼成功標(biāo)志位有效, 通過復(fù)位位(RST)或通過開始一個(gè)新的編/解碼過程可以使編碼成功標(biāo)志位(EOK_FLAG)變?yōu)闊o效, 編碼成功標(biāo)志位狀態(tài)含義 有效編碼結(jié)束,編碼寄存器已存儲(chǔ)了有效ECC碼無效其他 (6)編碼忙標(biāo)志位(EBUSY),會(huì)在兩種情況下使能,(a)CPU使能強(qiáng)制編碼位(FEN),強(qiáng)制發(fā)生編碼,(b) CPU向編碼寄存器(301)寫數(shù)據(jù), 當(dāng)編碼結(jié)束,編碼成功標(biāo)`志位(EOK_FLAG)有效后,編碼忙標(biāo)志位(EBUSY)變?yōu)闊o效;或者通過復(fù)位位(RST)或通過開始一個(gè)新的解碼過程使編碼忙標(biāo)志位(EBUSY)變?yōu)闊o效,編碼忙標(biāo)志位狀態(tài)含義有效正在編碼無效其他 以上為狀態(tài)寄存器(304)的各個(gè)狀態(tài)位的作用。
全文摘要
本發(fā)明涉及一種應(yīng)用于理德-所羅門碼的ECC控制器,設(shè)有編碼寄存器、解碼寄存器、控制寄存器、狀態(tài)寄存器、糾錯(cuò)邏輯、數(shù)據(jù)分割邏輯,控制模塊,CPU在向編碼寄存器或解碼寄存器輸入數(shù)據(jù)的同時(shí),數(shù)據(jù)分割邏輯將編/解碼數(shù)據(jù)以符號(hào)的方式傳輸?shù)嚼淼?所羅門碼編/解碼模塊內(nèi),進(jìn)行編/解碼處理,實(shí)現(xiàn)了單一數(shù)據(jù)流完成數(shù)據(jù)傳輸過程和相應(yīng)ECC碼或糾錯(cuò)碼產(chǎn)生的過程,且實(shí)現(xiàn)了數(shù)據(jù)傳輸與ECC碼或糾錯(cuò)碼運(yùn)算并行處理的ECC控制器。
文檔編號(hào)H03M13/15GK103067026SQ20121040616
公開日2013年4月24日 申請(qǐng)日期2009年8月21日 優(yōu)先權(quán)日2009年8月21日
發(fā)明者鄭茳, 肖佐楠, 張艷麗, 于麥口 申請(qǐng)人:蘇州國(guó)芯科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1