數(shù)字錯(cuò)誤校正的制作方法
【專利摘要】一種錯(cuò)誤校正電路,包括:組件、錯(cuò)誤檢測(cè)器、校正發(fā)生器以及輸出發(fā)生器,其中,所述組件布置成根據(jù)第一輸入和第二輸入產(chǎn)生第一輸出;所述錯(cuò)誤檢測(cè)器布置成基于所述第一輸出、所述第一輸入和所述第二輸入產(chǎn)生錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示在所述第一輸出中是否已經(jīng)檢測(cè)到錯(cuò)誤;所述校正發(fā)生器適合于基于所述第一輸出、所述第一輸入和所述第二輸入,在起始于時(shí)序事件的第一時(shí)間周期之后產(chǎn)生校正輸出;所述輸出發(fā)生器布置成在起始于時(shí)序事件的第二時(shí)間周期之后產(chǎn)生錯(cuò)誤校正電路的輸出。如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述第二時(shí)間周期可能比所述第一時(shí)間周期長,否則所述第二時(shí)間周期可能不比所述第一時(shí)間周期長。如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述錯(cuò)誤校正電路的輸出可以包括所述第一輸出和所述校正輸出的組合,從而在所述第一輸出中檢測(cè)到的錯(cuò)誤得以校正,否則所述錯(cuò)誤校正電路的輸出可能直接對(duì)應(yīng)于所述第一輸出。
【專利說明】數(shù)字錯(cuò)誤校正
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及錯(cuò)誤校正。其應(yīng)用在容錯(cuò)電路的設(shè)計(jì)中,例如在用于執(zhí)行算術(shù)運(yùn)算的電路中,但也在其他類型的電路中。本發(fā)明的一些方面也應(yīng)用在通信和存儲(chǔ)器設(shè)計(jì)中的其他領(lǐng)域,比如錯(cuò)誤校正。
【背景技術(shù)】
[0002]現(xiàn)代數(shù)字電路變得越來越大且復(fù)雜,并因此越來越易受出于各種各樣的原因的錯(cuò)誤的影響。例如,電路減小的規(guī)模,以及用于表示數(shù)據(jù)的降低的電壓,常常增加了錯(cuò)誤的可能性??赡軙?huì)出現(xiàn)錯(cuò)誤,例如,由于在使用的電路導(dǎo)致在電路中的位翻轉(zhuǎn)的環(huán)境中的高能粒子,或者簡(jiǎn)單地由于制造錯(cuò)誤。而且,刻意嘗試的在電路中引入錯(cuò)誤的利用高能粒子對(duì)電路的轟擊越來越成為錯(cuò)誤的來源,特別是在密碼系統(tǒng)中。因此,在數(shù)字電路中的錯(cuò)誤的檢測(cè)和/或校正變得越來越重要。
[0003]作為一個(gè)實(shí)例,比如在伽羅瓦域(Galois fields)GF(2k)上的算術(shù)的有限域算術(shù)用于包括密碼系統(tǒng)的諸多應(yīng)用中。在密碼系統(tǒng)中,例如,容錯(cuò)電路是合適的,尤其是因?yàn)榭梢栽陔娐穲?zhí)行密碼運(yùn)算的同時(shí)通過在電路中引起故障來學(xué)習(xí)秘密信息。為了實(shí)現(xiàn)用于密碼系統(tǒng)的容錯(cuò)電路,已經(jīng)提出了具有并行錯(cuò)誤檢測(cè)以及校正能力的有限域乘法電路。然而,這些往往或者非常大,或者僅校正單個(gè)錯(cuò)誤。
【發(fā)明內(nèi)容】
[0004]根據(jù)一個(gè)方面,本發(fā)明提供了一種錯(cuò)誤校正或容錯(cuò)電路,包括:組件、校正發(fā)生器以及組合器,其中,所述組件布置成根據(jù)第一輸入和第二輸入產(chǎn)生第一輸出;所述校正發(fā)生器布置成基于第一輸出、第一輸入和第二輸入產(chǎn)生適合于與所述第一輸出進(jìn)行組合的校正輸出,以便校正其中的錯(cuò)誤;所述組合器布置成將所述校正輸出和所述第一輸出進(jìn)行組合,從而產(chǎn)生第二輸出,其中已經(jīng)校正在所述第一輸出中的錯(cuò)誤。所述校正發(fā)生器優(yōu)選地布置成使用BCH解碼產(chǎn)生所述校正輸出。BCH編碼和解碼的使用為校正在布置成產(chǎn)生輸出的電路組件中的多個(gè)錯(cuò)誤的極其有效的方式。
[0005]可選擇地,電路能夠接收一個(gè)或更多個(gè)輸入(例如,第一和第二輸入),并且然后根據(jù)其產(chǎn)生與通過所述組件產(chǎn)生的第一結(jié)果并行的校正輸出,從而通過所述組件引入所述第一結(jié)果的錯(cuò)誤能夠得以校正,盡管在接收時(shí),一個(gè)或更多個(gè)輸入并不具有與其相關(guān)聯(lián)的錯(cuò)誤校正數(shù)據(jù)。在一些情況中,電路“聯(lián)機(jī)(on the fly)”產(chǎn)生校正數(shù)據(jù),并且在一些實(shí)例中,電路能夠在相同的時(shí)鐘周期中校正第一結(jié)果,在所述相同的時(shí)鐘周期中通過所述組件接收一個(gè)或更多個(gè)輸入。
[0006]可選擇地,電路進(jìn)一步包括校驗(yàn)位發(fā)生器,所述校驗(yàn)位發(fā)生器布置成基于所述第一輸入和所述第二輸入產(chǎn)生至少一個(gè)校驗(yàn)位,并且所述校正發(fā)生器布置成基于所述第一結(jié)果和所述至少一個(gè)校驗(yàn)位產(chǎn)生所述校正輸出。
[0007]可選擇地,所述校驗(yàn)位發(fā)生器布置成根據(jù)所述第一輸入和所述第二輸入直接產(chǎn)生所述至少一個(gè)校驗(yàn)位,而不單獨(dú)產(chǎn)生所述第一結(jié)果。這能夠幫助簡(jiǎn)化所述校驗(yàn)位發(fā)生器的設(shè)計(jì)。
[0008]可選擇地,所述錯(cuò)誤檢測(cè)器布置成基于所述第一結(jié)果和所述至少一個(gè)校驗(yàn)位產(chǎn)生所述錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示所述錯(cuò)誤檢測(cè)器是否已經(jīng)檢測(cè)到所述錯(cuò)誤檢測(cè)器布置成檢測(cè)的多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
[0009]可選擇地,所述校正發(fā)生器適合于基于所述第一輸出和所述至少一個(gè)校驗(yàn)位產(chǎn)生校正輸出,所述校正輸出適合于校正多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
[0010]可選擇地,所述校正發(fā)生器布置成通過產(chǎn)生錯(cuò)誤位置多項(xiàng)式并接著搜索所述錯(cuò)誤位置多項(xiàng)式的根來產(chǎn)生所述校正輸出,其中所述校正發(fā)生器僅搜索對(duì)應(yīng)于所述第一結(jié)果的根。這能夠顯著地幫助所述校正發(fā)生器大小的最小化。
[0011]可選擇地,布置成產(chǎn)生所述第一輸出的所述組件布置為通過對(duì)第一和第二輸入執(zhí)行算術(shù)運(yùn)算而產(chǎn)生所述第一輸出。
[0012]可選擇地,所述算術(shù)運(yùn)算為有限域算術(shù)運(yùn)算,比如在伽羅瓦域GF(2k)上的乘法。
[0013]在另一個(gè)方面,本發(fā)明提供了一種錯(cuò)誤校正電路,所述錯(cuò)誤校正電路布置成接收時(shí)鐘信號(hào),包括:組件、錯(cuò)誤檢測(cè)器、校正發(fā)生器以及輸出發(fā)生器,其中,所述組件布置成根據(jù)第一輸入和第二輸入產(chǎn)生第一輸出;所述錯(cuò)誤檢測(cè)器布置成基于所述第一輸出、所述第一輸入和所述第二輸入產(chǎn)生錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示在所述第一輸出中是否已經(jīng)檢測(cè)到錯(cuò)誤;所述校正發(fā)生器適合于基于所述第一輸出、所述第一輸入和所述第二輸入,在起始于在時(shí)鐘信號(hào)中的時(shí)序事件的第一時(shí)間周期之后產(chǎn)生校正輸出;所述輸出發(fā)生器布置成在始于在時(shí)鐘信號(hào)中的時(shí)序事件的第二時(shí)間周期之后產(chǎn)生錯(cuò)誤校正電路的輸出。如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述第二時(shí)間周期可能比所述第一時(shí)間周期長。否則,所述第二時(shí)間周期可能不比所述第一時(shí)間周期長。如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述錯(cuò)誤校正電路的輸出可以包括所述第一輸出和所述校正輸出的組合,從而在所述第一輸出中檢測(cè)到的錯(cuò)誤得以校正。否則,所述錯(cuò)誤校正電路的輸出可能直接對(duì)應(yīng)于所述第一輸出。
[0014]根據(jù)本發(fā)明的這個(gè)方面的電路能夠用于通信、存儲(chǔ)器和其他應(yīng)用,以及容錯(cuò)電路設(shè)計(jì)。它們能夠用于提高例如解密、通信或存儲(chǔ)器系統(tǒng)處理數(shù)據(jù)的速率。
[0015]可選擇地,所述輸出發(fā)生器包括具有輸出的輸出寄存器,所述輸出寄存器的輸出為所述錯(cuò)誤校正電路的輸出,并且其中所述輸出發(fā)生器布置成當(dāng)所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤時(shí),在更新其輸出時(shí)對(duì)所述輸出寄存器進(jìn)行延遲,從而使得所述第二時(shí)間周期比所述第一時(shí)間周期長。
[0016]可選擇地,所述輸出發(fā)生器包括輸出使能組件,所述輸出使能組件布置成基于所述時(shí)鐘信號(hào)和所述錯(cuò)誤標(biāo)記產(chǎn)生門控時(shí)鐘,并且其中所述輸出寄存器在其時(shí)鐘輸入處接收所述門控時(shí)鐘,從而在所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤時(shí),防止所述輸出寄存器更新其輸出。
[0017]例如,接收的時(shí)鐘信號(hào)可以具有比所述第二時(shí)間周期短的恒定周期;所述門控時(shí)鐘將具有與所述接收的時(shí)鐘信號(hào)大致相同的周期,直到在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,在該點(diǎn)處,所述門控時(shí)鐘的至少一個(gè)周期被延伸,以允許額外的時(shí)間使所述校正發(fā)生器產(chǎn)生合適的校正輸出。
[0018]可選擇地,電路進(jìn)一步包括校驗(yàn)位發(fā)生器,其中所述校驗(yàn)位發(fā)生器布置成基于所述第一輸入和所述第二輸入產(chǎn)生至少一個(gè)校驗(yàn)位,并且其中所述錯(cuò)誤檢測(cè)器和所述校正發(fā)生器布置成基于所述第一輸出和所述至少一個(gè)校驗(yàn)位分別產(chǎn)生所述錯(cuò)誤標(biāo)記和所述校正輸出。
[0019]可選擇地,所述錯(cuò)誤檢測(cè)器布置成基于所述第一結(jié)果和所述至少一個(gè)校驗(yàn)位產(chǎn)生所述錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示所述錯(cuò)誤檢測(cè)器是否已經(jīng)檢測(cè)到所述錯(cuò)誤檢測(cè)器布置成檢測(cè)的多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
[0020]相對(duì)于現(xiàn)有技術(shù),有利的是,可以檢測(cè)在所述校驗(yàn)位發(fā)生器中的錯(cuò)誤。
[0021]可選擇地,所述校正發(fā)生器適合于基于所述第一輸出和所述至少一個(gè)校驗(yàn)位產(chǎn)生校正輸出,所述校正輸出適合于校正多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
[0022]相對(duì)于現(xiàn)有技術(shù),有利的是,可以校正在所述校驗(yàn)位發(fā)生器中的錯(cuò)誤。
[0023]可選擇地,所述校驗(yàn)位發(fā)生器布置成根據(jù)所述第一輸入和所述第二輸入直接產(chǎn)生所述至少一個(gè)校驗(yàn)位,而不單獨(dú)產(chǎn)生所述第一輸出。
[0024]可選擇地,所述校正發(fā)生器布置成通過產(chǎn)生錯(cuò)誤位置多項(xiàng)式并接著搜索所述錯(cuò)誤位置多項(xiàng)式的根來產(chǎn)生所述校正輸出,其中所述校正發(fā)生器僅搜索對(duì)應(yīng)于所述第一輸出的根。
[0025]可選擇地,布置成產(chǎn)生所述第一輸出的所述組件布置為通過對(duì)第一和第二輸入執(zhí)行算術(shù)運(yùn)算而產(chǎn)生所述第一輸出。
[0026]可選擇地,所述算術(shù)運(yùn)算為有限域算術(shù)運(yùn)算,比如在伽羅瓦域GF (2k)上的乘法。
[0027]在本發(fā)明的第一和第二方面的兩者之一中,輸出可以包括多個(gè)位,并且所述校正發(fā)生器可以布置成將輸出位分配至第一組的集合并對(duì)所述第一組的集合的每一個(gè)執(zhí)行第一錯(cuò)誤檢測(cè)步驟,將所述輸出位分配至第二組的集合并對(duì)所述第二組的集合的每一個(gè)執(zhí)行第二錯(cuò)誤檢測(cè)步驟,使用第一和第二錯(cuò)誤檢測(cè)步驟的結(jié)果來執(zhí)行錯(cuò)誤定位步驟以在所述輸出中定位錯(cuò)誤。
[0028]根據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明提供了一種錯(cuò)誤校正電路,布置成接收包括多個(gè)輸出位的系統(tǒng)輸出,所述錯(cuò)誤校正電路將所述輸出位分配至第一組的集合并對(duì)所述第一組的集合的每一個(gè)執(zhí)行第一錯(cuò)誤檢測(cè)步驟,將所述輸出位分配至第二組的集合并對(duì)所述第二組的集合的每一個(gè)執(zhí)行第二錯(cuò)誤檢測(cè)步驟,使用第一和第二錯(cuò)誤校正步驟的結(jié)果來執(zhí)行錯(cuò)誤定位步驟以在所述輸出中定位錯(cuò)誤,并且根據(jù)接收的輸出和所述錯(cuò)誤定位步驟的結(jié)果產(chǎn)生校正的輸出。
[0029]根據(jù)本發(fā)明的這個(gè)方面的一些電路具有這樣的好處:所述錯(cuò)誤校正能夠以相對(duì)低的空間開銷合并到電路中,以及錯(cuò)誤校正能夠以通常有效的方式執(zhí)行,并且能夠校正相對(duì)大量的位錯(cuò)誤。
[0030]可選擇地,第一和第二組的集合布置成使得對(duì)于所述輸出位的任意一個(gè),來自其作為成員的第一集合的組的身份和來自其作為成員的第二集合的組的身份唯一識(shí)別所述輸出位。
[0031]例如,如果所述輸出位布置在行和列的矩形表格內(nèi),則所述第一組的集合可以包括行,并且所述第二組的集合可以包括列,反之亦然。然而,應(yīng)當(dāng)理解的是,在輸出中的位能夠以任意順序分配到表格中的位置。
[0032]電路可以包括布置成執(zhí)行每一個(gè)步驟的子電路,例如其可以包括以下中的任意一個(gè)或多個(gè):分配子電路、第一錯(cuò)誤檢測(cè)子電路、第二錯(cuò)誤檢測(cè)子電路、錯(cuò)誤定位子電路以及校正子電路。
[0033]所述錯(cuò)誤檢測(cè)步驟或子電路可每一個(gè)都布置成確定在相關(guān)組中位錯(cuò)誤的數(shù)量。例如,它們可以布置成對(duì)于每一個(gè)組產(chǎn)生錯(cuò)誤檢測(cè)代碼,例如奇偶校驗(yàn)碼。
[0034]在第一集合中的組可以全部是相同的大小,或者可以是不同的大小。在第二集合中的組可以全部是相同的大小,或者可以是不同的大小。第一集合中的組與第二集合中的組可以是相同的大小,或者可以是不同的大小。
[0035]系統(tǒng)可以是功能電路,比如乘法器,在該情況下所述輸出可以是對(duì)一個(gè)或多個(gè)輸入執(zhí)行功能的結(jié)果。在其他情況下,系統(tǒng)可以是在其上傳輸通信的通道,在該情況下所述輸出可以是如從所述通道接收的通信。在其他情況下,系統(tǒng)可以是存儲(chǔ)器電路,在該情況下所述輸出可以是從所述存儲(chǔ)器電路重新得到的數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0036]電路可以進(jìn)一步包括任意組合的本發(fā)明的任意一個(gè)或多個(gè)優(yōu)選實(shí)施方案的任意一個(gè)或多個(gè)特征,其將在現(xiàn)在僅通過實(shí)例的方式,參考所附附圖進(jìn)行描述,在所附附圖中:
[0037]圖1為根據(jù)第一實(shí)施方案的用于計(jì)算有限域乘法并具有并行錯(cuò)誤校正能力的電路的示意性方框圖;
[0038]圖2為顯示圖1的校正發(fā)生器塊的組件的示意性方框圖;
[0039]圖3為根據(jù)第二實(shí)施方案的用于計(jì)算有限域乘法并具有并行錯(cuò)誤校正能力的電路的示意性方框圖;以及
[0040]圖4為顯示圖3的錯(cuò)誤檢測(cè)子電路的組件的示意性方框圖;
[0041]圖5為顯示代表通過圖3的電路的不同組件的各自傳播延遲的一些時(shí)間同期的時(shí)間線;
[0042]圖6為顯示圖3的電路的一些信號(hào)的時(shí)序圖;
[0043]圖7為根據(jù)本發(fā)明的第三實(shí)施方案的錯(cuò)誤校正電路的示意性方框圖;
[0044]圖8為顯示在圖7的電路中產(chǎn)生的校驗(yàn)位的表格;
[0045]圖9A、圖9B、圖9C和圖9D為顯示能夠使用圖7的電路進(jìn)行校正的錯(cuò)誤的組合的一些實(shí)例的表格;
[0046]圖10為顯示對(duì)于圖7的實(shí)施方案的修改的能夠進(jìn)行校正的錯(cuò)誤的組合的一些實(shí)例的表格;
[0047]圖11為顯示在本發(fā)明的進(jìn)一步實(shí)施方案中能夠檢測(cè)的錯(cuò)誤的組合的一些實(shí)例的表格;
[0048]圖12為顯示使用180nm和90nm技術(shù)的不同大小的乘法器電路的面積的圖表;
[0049]圖13為顯不用于對(duì)位表格的每一行中的多個(gè)錯(cuò)誤校正使用海明碼的使用180nm和90nm技術(shù)的不同大小的乘法器的錯(cuò)誤檢測(cè)和校正電路的面積的圖表;
[0050]圖14為顯示用于使用BCH碼的使用180nm和90nm技術(shù)的不同大小的乘法器的錯(cuò)誤檢測(cè)和校正電路的面積的圖表;以及
[0051]圖15和圖16顯示了圖13和圖14的具有錯(cuò)誤檢測(cè)和校正的乘法器電路的功率消耗。
【具體實(shí)施方式】
[0052]參照?qǐng)D1,在本發(fā)明的第一實(shí)施方案中,電路100包括具有兩個(gè)并行輸入105a、105b以及并行輸出105c的有限域乘法子電路105。乘法子電路105布置成在輸出105c處產(chǎn)生乘積C。乘積C是將在兩個(gè)并行輸入105a、105b處接收的兩個(gè)操作數(shù)A、B在伽羅瓦域GF(2k)(在該域中兩個(gè)操作數(shù)為元素)上相乘的結(jié)果。兩個(gè)并行輸入105a、105b以及并行輸出105c寬為k位,也即,每一個(gè)由k個(gè)位組成。
[0053]在其他實(shí)施方案中,有限域乘法子電路105可以由用于執(zhí)行其他有限域算術(shù)(比如,乘法逆元(multiplicative inversion)或取冪(例如,平方)運(yùn)算)的電路進(jìn)行替代。例如,在一些實(shí)施方案中,有限域乘法子電路105可以由用于執(zhí)行并非有限域算術(shù)的算術(shù)(比如,二進(jìn)制補(bǔ)碼的二進(jìn)制算術(shù))的電路進(jìn)行替代。
[0054]在第一實(shí)施方案中,電路100還包括具有兩個(gè)k位并行輸入IlOaUlOb以及n_k位并行輸出IlOc的校驗(yàn)位發(fā)生器110,其在一些實(shí)施方案中可以為單位輸出。
[0055]校驗(yàn)位發(fā)生器110布置成在接收相同的兩個(gè)操作數(shù)A、B (其在乘法子電路105處接收),并且在并行輸出IlOc處產(chǎn)生奇偶校驗(yàn)字P。在一些實(shí)施方案中,奇偶校驗(yàn)字P可以由奇偶校驗(yàn)位進(jìn)行替代。
[0056]校驗(yàn)位發(fā)生器110包括邏輯電路以在并行輸出IlOc處產(chǎn)生奇偶校驗(yàn)字P。通過執(zhí)行對(duì)在兩個(gè)并行輸入IlOaUlOb處接收的兩個(gè)操作數(shù)A、B的BCH編碼和有限域乘法的組合而產(chǎn)生奇偶校驗(yàn)字P。校驗(yàn)位發(fā)生器110的邏輯電路布置成直接從兩個(gè)操作數(shù)A、B產(chǎn)生奇偶校驗(yàn)字P,而不是首先產(chǎn)生乘法結(jié)果,然后從該乘法結(jié)果產(chǎn)生奇偶校驗(yàn)字P,發(fā)明人發(fā)現(xiàn)這樣更有效率(例如,更小的延遲和/或更少的邏輯門)。校驗(yàn)位發(fā)生器110并不輸出對(duì)應(yīng)于乘積C的乘法結(jié)果。
[0057]在該實(shí)施方案中,通過將在伽羅瓦域GF (2k)上定義乘法的常規(guī)表達(dá)式-通過有限域乘法子電路105執(zhí)行的相同類型的乘法-代入定義二進(jìn)制(n,k,t)BCH代碼(其中k為在“消息”中的位的數(shù)量,例如,在兩個(gè)操作數(shù)A、B的每一個(gè)中以及在乘積C中,t為電路100通常能夠校正的錯(cuò)誤的數(shù)量,無論它們?cè)谀睦锇l(fā)生(有時(shí)能夠校正更大數(shù)量的錯(cuò)誤,但不是在所有情況下),以及n-k為在奇偶校驗(yàn)字P中的位的數(shù)量)的奇偶校驗(yàn)位的常規(guī)表達(dá)式中來推導(dǎo)校驗(yàn)位發(fā)生器110的邏輯電路。
[0058]電路100進(jìn)一步包括具有兩個(gè)輸入115a、115b以及輸出115c的校正發(fā)生器115。兩個(gè)輸入115a、115b以相同的寬度分別連接到乘法子電路105的輸出105c以及校驗(yàn)位發(fā)生器110的輸出110c。輸出115c為k位并行輸出。
[0059]校正發(fā)生器115布置成在其兩個(gè)輸入115a、115b處接收乘積C和奇偶校驗(yàn)字P,并且在其輸出115c處產(chǎn)生校正值E。在該實(shí)施方案中,校正發(fā)生器115包括邏輯電路以通過對(duì)乘積C和奇偶校驗(yàn)字P執(zhí)行BCH解碼來產(chǎn)生校正值E,如將在下面參照?qǐng)D2進(jìn)行更加詳細(xì)的描述。
[0060]電路100進(jìn)一步包括具有兩個(gè)k位并行輸入120a、120b以及k位并行輸出120c的組合子電路120,兩個(gè)k位并行輸入120a、120b分別連接到乘法子電路105的輸出105c和校正發(fā)生器115的輸出115c。
[0061]組合子電路120布置成接收乘積C和校正值E,并且在并行輸出120c處產(chǎn)生校正的乘積C’。在該實(shí)施方案中,組合子電路120由多個(gè)XOR門(未示出)組成,對(duì)于并行輸出120c的每一位都有各自的一個(gè)。乘積C的每一位經(jīng)由異或運(yùn)算(通過XOR門中各自的一個(gè))與校正值E的相應(yīng)位組合,這導(dǎo)致了乘積C的錯(cuò)誤位在校正的乘積C’中被反轉(zhuǎn)(即,邏輯O被轉(zhuǎn)換為邏輯1,反之亦然),從而校正了乘積C的錯(cuò)誤位。
[0062]參照?qǐng)D2,校正發(fā)生器115包括校驗(yàn)子發(fā)生器125和錯(cuò)誤定位器130,并且在其輸出115c處產(chǎn)生k位校正值E (在圖2中單獨(dú)顯示為ekyeQ)。
[0063]校驗(yàn)子發(fā)生器125具有兩個(gè)輸入125a、125b以及t位寬的并行輸出125c。兩個(gè)輸入125a、125b以相同的寬度分別連接到校正發(fā)生器115的兩個(gè)并行輸入115a、115b。校驗(yàn)子發(fā)生器125布置成接收乘積C和奇偶校驗(yàn)字P,并且在其輸出125c處產(chǎn)生錯(cuò)誤位置多項(xiàng)式St…SI。校驗(yàn)子發(fā)生器125布置成使用眾所周知的Peterson-Gorenstein-Zierler算法產(chǎn)生錯(cuò)誤位置多項(xiàng)式St…SI,但是產(chǎn)生錯(cuò)誤位置多項(xiàng)式St…SI的其它合適的方法對(duì)本領(lǐng)域技術(shù)人員來說將是很明顯的,并且可以用在其他實(shí)施方案中。[0064]錯(cuò)誤定位器130具有t位寬的并行輸入130a,并行輸入130a連接到校驗(yàn)子發(fā)生器125的輸出,并且具有連接到校正發(fā)生器115的輸出115c的k位寬的并行輸出130。。
[0065]錯(cuò)誤定位器130布置成接收錯(cuò)誤位置多項(xiàng)式St…SI,并且在其輸出130c處產(chǎn)生校正值E,校正值E由k個(gè)錯(cuò)誤定位器eky 組成。在該實(shí)施方案中,通過使用眾所周知的Chien搜索算法找到錯(cuò)誤位置多項(xiàng)式St…SI的根來產(chǎn)生錯(cuò)誤定位器。有利地,錯(cuò)誤定位器130并不搜索對(duì)應(yīng)于奇偶校驗(yàn)字P的根(這是由于在該實(shí)施方案中并不想要奇偶校驗(yàn)字P的校正),如果搜索對(duì)應(yīng)于奇偶校驗(yàn)字P的根,其趨于減少在錯(cuò)誤定位器130中邏輯電路的量(與需要的量相比)。在其他實(shí)施方案中,錯(cuò)誤定位器130可以搜索對(duì)應(yīng)于奇偶校驗(yàn)字P的根。在這樣的實(shí)施方案中,校正發(fā)生器的輸出可以為t+k位寬,并且校正發(fā)生器可以布置成在其輸出處產(chǎn)生適合于校正多個(gè)不同錯(cuò)誤中任意一個(gè)的校正值,所述多個(gè)不同錯(cuò)誤包括在奇偶校驗(yàn)子中的錯(cuò)誤和在乘積中的錯(cuò)誤。
[0066]參照?qǐng)D3,在本發(fā)明的第二實(shí)施方案中,電路200包括有限域乘法子電路205、校驗(yàn)位發(fā)生器210、校正發(fā)生器215以及組合子電路220。這些組件中的每一個(gè)都基本上與第一實(shí)施方案的相應(yīng)組件(相同名字的組件)相同。乘法子電路205、校驗(yàn)位發(fā)生器210和校正發(fā)生器215以與在第一實(shí)施方案中相同的方式連接在一起;這些組件不需要進(jìn)行進(jìn)一步的描述。
[0067]電路200還包括錯(cuò)誤檢測(cè)子電路250、位掩碼子電路255、輸出使能子電路260以及輸出寄存器265。
[0068]錯(cuò)誤檢測(cè)子電路250具有兩個(gè)輸入250a、250b以及一位輸出250c。兩個(gè)輸入250a、250b以相同的寬度分別連接到乘法子電路205的輸出205c以及校驗(yàn)位發(fā)生器210的輸出210c。錯(cuò)誤檢測(cè)子電路250布置成檢測(cè)在乘積C中的錯(cuò)誤,并且檢測(cè)在奇偶校驗(yàn)字P中的錯(cuò)誤,而無論那些錯(cuò)誤單獨(dú)發(fā)生還是同時(shí)發(fā)生。因此,錯(cuò)誤檢測(cè)子電路250能夠檢測(cè)多個(gè)不同錯(cuò)誤中的一個(gè)或多個(gè)。
[0069]由于錯(cuò)誤檢測(cè)子電路250連接到校驗(yàn)位發(fā)生器210,因此其并不需要直接從兩個(gè)操作數(shù)A、B產(chǎn)生校驗(yàn)位。這可能被視為在錯(cuò)誤檢測(cè)子電路250和校正發(fā)生器215之間共享的有利資源,這是由于共用模塊(校驗(yàn)位發(fā)生器210)被用于對(duì)于兩者而非每一個(gè)(包括其自己的邏輯電路)產(chǎn)生奇偶校驗(yàn)字P,以便直接從兩個(gè)操作數(shù)A、B推導(dǎo)奇偶校驗(yàn)字P。
[0070]參照?qǐng)D4,錯(cuò)誤檢測(cè)子電路250包括校驗(yàn)位發(fā)生模塊251和比較模塊252。
[0071]校驗(yàn)位發(fā)生模塊251具有k位并行輸入251a以及n_k位寬的并行輸出251c,k位并行輸入251a連接到錯(cuò)誤檢測(cè)子電路250的并行輸入250a中的第一個(gè)。
[0072]校驗(yàn)位發(fā)生模塊251布置成接收乘積C,并且在其輸出251c處產(chǎn)生進(jìn)一步的奇偶校驗(yàn)字P’。以對(duì)應(yīng)于由校驗(yàn)位發(fā)生器210使用以產(chǎn)生奇偶校驗(yàn)字P的BCH編碼的方式來產(chǎn)生進(jìn)一步的奇偶校驗(yàn)字P’。因此,如果沒有錯(cuò)誤出現(xiàn)在奇偶校驗(yàn)字P中,并且沒有錯(cuò)誤出現(xiàn)在乘積C中,則進(jìn)一步的奇偶校驗(yàn)字P’將等于奇偶校驗(yàn)字P。
[0073]比較模塊252具有兩個(gè)輸入252a、252b以及連接到錯(cuò)誤檢測(cè)子電路250的輸出250c的一位輸出252c。兩個(gè)輸入252a、252b以相同的寬度分別連接到校驗(yàn)位發(fā)生模塊251的輸出251c以及錯(cuò)誤檢測(cè)子電路250的并行輸入250b中的第二個(gè)。
[0074]比較模塊252布置成接收進(jìn)一步的奇偶校驗(yàn)字P’以及奇偶校驗(yàn)字P,并且在其輸出252c處產(chǎn)生錯(cuò)誤標(biāo)記F。錯(cuò)誤標(biāo)記F指示是否已經(jīng)檢測(cè)到多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在乘積C上的錯(cuò)誤和在奇偶校驗(yàn)字P中的錯(cuò)誤。
[0075]盡管可能有其他合適的布置,但在該實(shí)施方案中,比較模塊252由異或模塊253和評(píng)估模塊254組成。
[0076]異或模塊253具有兩個(gè)并行輸入253a、253b (每一個(gè)都為n-k位寬)以及相同寬度的并行輸出253c,兩個(gè)并行輸入253a、253b分別連接到校驗(yàn)位發(fā)生模塊251的輸出251c以及錯(cuò)誤檢測(cè)子電路250的并行輸入250b中的第二個(gè)。
[0077]異或模塊253布置成接收奇偶校驗(yàn)字P和進(jìn)一步的奇偶校驗(yàn)字P’,并且通過對(duì)奇偶校驗(yàn)字P和進(jìn)一步的奇偶校驗(yàn)字P’執(zhí)行按位異或運(yùn)算而在其輸出253c處產(chǎn)生第三奇偶校驗(yàn)字P’ ’。
[0078]評(píng)估模塊254具有為n-k位寬的并行輸入254a以及一位輸出254c,并行輸入254a連接到異或模塊253的并行輸出253c,一位輸出254c連接到比較模塊252的輸出252c。
[0079]評(píng)估模塊254布置成接收第三奇偶校驗(yàn)字P’ ’,對(duì)其進(jìn)行評(píng)估以便確定是否它的所有位都為邏輯0,并且在其輸出254c處產(chǎn)生錯(cuò)誤標(biāo)記F。如果第三奇偶校驗(yàn)字P’’的所有位都為零,則評(píng)估模塊254將錯(cuò)誤標(biāo)記F的值設(shè)定為邏輯1,以指示在乘積C中或在奇偶校驗(yàn)字P中不存在錯(cuò)誤,否則評(píng)估模塊254將錯(cuò)誤標(biāo)記F的值設(shè)定為邏輯0,以指示已經(jīng)檢測(cè)到多個(gè)錯(cuò)誤中的一個(gè)。
[0080]再次參照?qǐng)D3,位掩碼子電路255具有兩個(gè)輸入255a、255b以及k位并行輸出255c。兩個(gè)輸入255a、255b以相同的寬度分別連接到錯(cuò)誤檢測(cè)子電路250的輸出250c以及校正發(fā)生器215的輸出215c上。
[0081 ] 位掩碼子電路255布置成接收錯(cuò)誤標(biāo)記F和校正值E以及產(chǎn)物(produces),并且在其輸出255c處產(chǎn)生掩碼校正值E’。位掩碼子電路255布置成如果將錯(cuò)誤標(biāo)記F設(shè)定為邏輯I (也即,如果沒有檢測(cè)到錯(cuò)誤),則將掩碼校正值E’的每一個(gè)位都設(shè)定成邏輯0,或者其設(shè)定每一個(gè)位的值,以便等于校正值E的各自的對(duì)應(yīng)位。
[0082]應(yīng)當(dāng)理解,實(shí)際上,如果在例如乘積C中或在奇偶校驗(yàn)字P中沒有檢測(cè)到錯(cuò)誤,則位掩碼子電路255抑制校正值E。盡管可能有其他合適的布置,但是在該實(shí)施方案中,掩碼校正值E’為對(duì)校正值E以及錯(cuò)誤標(biāo)記F的邏輯反轉(zhuǎn)(也即,將邏輯I轉(zhuǎn)換成邏輯0,反之亦然)執(zhí)行按位AND運(yùn)算的結(jié)果。
[0083]組合子電路220具有兩個(gè)k位并行輸入220a、220b以及k位并行輸出220c,兩個(gè)k位并行輸入220a、220b分別連接到乘法子電路205的輸出205c和位掩碼子電路255的輸出 255c。
[0084]組合子電路220布置成接收掩碼校正值E’和乘積C,并且在其輸出220c處產(chǎn)生校正的乘積C’。盡管可能有其他合適的布置,但是在該實(shí)施方案中,組合子電路220由多個(gè)XOR門(未示出)組成,對(duì)于輸出220c的每一個(gè)位有各自的一個(gè)。乘積C的每一位都經(jīng)由XOR運(yùn)算(通過各自的一個(gè)XOR門)與掩碼校正值E’的對(duì)應(yīng)位進(jìn)行組合。
[0085]如果錯(cuò)誤標(biāo)記F被設(shè)定為邏輯O (也即,如果已經(jīng)檢測(cè)到錯(cuò)誤),掩碼校正值E’的值將等于校正值E的值。因此,對(duì)乘積C和掩碼校正值E’執(zhí)行的XOR運(yùn)算能夠使乘積C的錯(cuò)誤位在校正的乘積C’內(nèi)得到校正。
[0086]如果錯(cuò)誤標(biāo)記F被設(shè)定為邏輯I,則校正的乘積C’的值將與乘積C的值相同,這是因?yàn)檠诖a校正值E’的每一位將被設(shè)定為邏輯O。
[0087]輸出使能子電路260具有兩個(gè)一位輸入260a、260b以及一位輸出260c,兩個(gè)一位輸出260a、260b連接到電路的時(shí)鐘并且連接到錯(cuò)誤檢測(cè)子電路250的輸出250c。
[0088]輸出使能子電路260布置成接收錯(cuò)誤標(biāo)記F和時(shí)鐘信號(hào)CLK,并且在其輸出260c處產(chǎn)生門控時(shí)鐘信號(hào)ECLK。如果錯(cuò)誤標(biāo)記F被設(shè)定為邏輯0,則門控時(shí)鐘信號(hào)ECLK將被設(shè)定為邏輯O。在該實(shí)施方案中,輸出使能子電路260由AND門組成,其布置成在其輸入260a、260b處接收錯(cuò)誤標(biāo)記F和時(shí)鐘信號(hào)CLK,并且生成門控時(shí)鐘信號(hào)ECLK作為其輸出260c。
[0089]輸出寄存器265具有k位輸入265a、時(shí)鐘輸入265b以及k位輸出265c, k位輸入265a連接到組合子電路220的輸出220c,時(shí)鐘輸入265b連接到輸出使能子電路260的輸出 260c。
[0090]輸出寄存器265布置成接收校正的乘積C’和門控時(shí)鐘信號(hào)ECLK,并且響應(yīng)于門控時(shí)鐘信號(hào)ECLK的時(shí)序事件(例如,上升沿或下降沿)而在其輸出265c處生成對(duì)應(yīng)于校正的乘積C’的電路輸出Cout。
[0091]參考圖5的時(shí)間線500,在起始于時(shí)鐘信號(hào)CLK的第一上升時(shí)鐘沿(或者在時(shí)鐘信號(hào)CLK中的任意其他時(shí)序事件,比如下降沿)的第一時(shí)間周期T檢測(cè)之后,錯(cuò)誤檢測(cè)子電路250在其輸出250c處生成錯(cuò)誤標(biāo)記F。在第一時(shí)間周期T檢測(cè)結(jié)束之前,乘積子電路205將在其輸出205c處已生成乘積C。
[0092]時(shí)鐘信號(hào)CLK具有比第一時(shí)間周期T檢測(cè)更長的時(shí)鐘周期T時(shí)鐘。
[0093]如果錯(cuò)誤標(biāo)記F被設(shè)定為邏輯1,則指示在乘積C中沒有錯(cuò)誤,在輸出使能子電路260的輸入260b處接收的時(shí)鐘信號(hào)CLK中的上升沿(或者在時(shí)鐘信號(hào)CLK中的任何其他時(shí)序事件)將使邏輯I值在輸出使能子電路260的輸出260c處產(chǎn)生,例如,其將在門控時(shí)鐘信號(hào)ECLK中產(chǎn)生上升沿(或者對(duì)應(yīng)于在時(shí)鐘信號(hào)CLK中的時(shí)序事件的其他時(shí)序事件)。因此,如果錯(cuò)誤標(biāo)記F指示沒有檢測(cè)到錯(cuò)誤時(shí),則在大約等于時(shí)鐘周期T時(shí)鐘的周期之后,輸出寄存器265將在其輸出265c處產(chǎn)生對(duì)應(yīng)于乘積C的電路輸出Cout。
[0094]在起始于時(shí)鐘信號(hào)CLK的上升時(shí)鐘沿(或者在時(shí)鐘信號(hào)CLK中的任何其他時(shí)序事件)的第二時(shí)間周期T校正之后,校正發(fā)生器215在其輸出215c處產(chǎn)生校正輸出E。第二時(shí)間周期T校正比第一時(shí)間周期T檢測(cè)長,并且比時(shí)鐘周期T時(shí)鐘長。
[0095]在第二時(shí)間周期T校正的后面部分中,起始于當(dāng)?shù)谝粫r(shí)間周期T檢測(cè)結(jié)束時(shí)并且終止于當(dāng)?shù)诙r(shí)間周期T校正結(jié)束時(shí),乘法子電路205將在其輸出205c處已產(chǎn)生乘積C,但是校正發(fā)生器215還沒有在其輸出215c處產(chǎn)生對(duì)應(yīng)的校正輸出E。因此,在乘積C中的任何錯(cuò)誤都將不會(huì)在校正的乘積C’中進(jìn)行校正,直到第二時(shí)間周期T校正之后,這是因?yàn)樵诖酥靶Ul(fā)生器215將不會(huì)產(chǎn)生對(duì)應(yīng)的校正輸出E。
[0096]輸出使能子電路260布置成防止輸出寄存器265產(chǎn)生對(duì)應(yīng)于校正的乘積C’的電路輸出Cout,直到在乘積C中檢測(cè)到的錯(cuò)誤已經(jīng)在校正的乘積C’中被校正之后。在乘積C中的檢測(cè)到的錯(cuò)誤將導(dǎo)致在時(shí)鐘周期T時(shí)鐘結(jié)束之前錯(cuò)誤標(biāo)記F被設(shè)定為邏輯0,其反過來將門控時(shí)鐘信號(hào)ECLK設(shè)定為邏輯O。因此,在時(shí)鐘信號(hào)CLK中的接下來的上升沿(或者在時(shí)鐘信號(hào)CLK中的其他時(shí)序事件)將不在輸出使能子電路的輸出260c處傳播至門控時(shí)鐘信號(hào)ECLK,其將保持在邏輯0,至少直到在時(shí)鐘信號(hào)CLK中隨后的上升沿(或者在時(shí)鐘信號(hào)CLK中的其他時(shí)序事件)。這給了校正發(fā)生器215所需要的時(shí)間,以便在其輸出215c處產(chǎn)生用于與乘積C進(jìn)行組合的校正輸出E,從而校正在其中檢測(cè)到的錯(cuò)誤。
[0097]因?yàn)闀r(shí)鐘周期T時(shí)鐘比第二時(shí)間周期T校正短,所以如果時(shí)鐘周期T時(shí)鐘與第二時(shí)間周期T校正相同或比第二時(shí)間周期T校正更長的話,則電路200有可能能夠在給定的時(shí)間周期內(nèi)產(chǎn)生比其本能夠產(chǎn)生的更多的乘積結(jié)果。
[0098]本領(lǐng)域技術(shù)人員會(huì)期望時(shí)鐘周期T時(shí)鐘與第二時(shí)間周期T校正相同或比第二時(shí)間周期T校正更長,從而如果需要的話在任何時(shí)鐘周期內(nèi),在乘積C中檢測(cè)到的錯(cuò)誤能夠被校正。但是,通常錯(cuò)誤相對(duì)稀少。通過使用比第二時(shí)間周期T校正更短的時(shí)鐘周期T時(shí)鐘,并且防止輸出寄存器265在乘積C中已經(jīng)檢測(cè)到錯(cuò)誤時(shí)更新其輸出265c (為了允許產(chǎn)生校正輸出E所需的額外時(shí)間),可以在給定的時(shí)間周期內(nèi)產(chǎn)生更多的乘積結(jié)果。
[0099]通過實(shí)例的方式,將參照?qǐng)D6描述電路200的運(yùn)算。
[0100]起初,在時(shí)鐘信號(hào)elk的兩個(gè)周期期間,電路200接收操作數(shù)A、B值(A1、B1和A2、B2),根據(jù)操作數(shù)A、B值產(chǎn)生乘積C的校正值(Cl和C2)。在這兩個(gè)周期期間,錯(cuò)誤檢測(cè)子電路250將標(biāo)記F設(shè)定為邏輯0,以便指示沒有檢測(cè)到錯(cuò)誤。
[0101]當(dāng)在時(shí)鐘信號(hào)elk的第三周期中乘積C的值(C3)是錯(cuò)誤的時(shí)候,這是通過錯(cuò)誤檢測(cè)子電路250來檢測(cè)的,錯(cuò)誤檢測(cè)子電路250將標(biāo)記F設(shè)定為邏輯O。由于標(biāo)記F被設(shè)定為邏輯0,因此輸出使能子電路260將門控時(shí)鐘eclk設(shè)定為邏輯O。
[0102]在時(shí)鐘信號(hào)elk的接下來的上升沿處,做標(biāo)記于第四周期的開始,標(biāo)記F仍被設(shè)定為邏輯0,其防止了響應(yīng)于時(shí)鐘信號(hào)elk轉(zhuǎn)變?yōu)檫壿婭而門控時(shí)鐘eclk被設(shè)定為邏輯I。其結(jié)果是,乘積C的錯(cuò)誤的值(C3)沒有在輸出寄存器265的輸出265c處產(chǎn)生。這為校正發(fā)生器215提供了其需要的時(shí)間以便產(chǎn)生合適的校正值E。隨后,并且在第四周期結(jié)束之前,組合電路220接收對(duì)應(yīng)的掩碼校正值E’,其與乘積C的錯(cuò)誤的值(C3)進(jìn)行組合以產(chǎn)生校正的乘積C’。
[0103]在時(shí)鐘信號(hào)elk的接下來的(也即,第五)時(shí)鐘周期,引入了操作數(shù)A、B的兩個(gè)新值(A4、B4),其使得具有校正值(C4)的乘積C得以產(chǎn)生。由于在乘積C中已經(jīng)檢測(cè)出沒有錯(cuò)誤產(chǎn)生的時(shí)候,錯(cuò)誤檢測(cè)子電路250將標(biāo)記F設(shè)定為邏輯I。由于時(shí)鐘信號(hào)elk被設(shè)定為邏輯1,因此這導(dǎo)致門控時(shí)鐘eclk變?yōu)檫壿婭。門控時(shí)鐘eclk從邏輯O到邏輯I的變化導(dǎo)致校正的乘積C’的值得以作為在輸出寄存器265的輸出265c處的電路輸出Cout而產(chǎn)生。
[0104]在時(shí)鐘信號(hào)elk的第六時(shí)鐘周期處,乘積C的校正值(C4)作為在輸出寄存器265的輸出265c處的電路輸出Cout而產(chǎn)生。
[0105]參照?qǐng)D7,根據(jù)本發(fā)明的第三實(shí)施方案的錯(cuò)誤校正電路包括具有兩個(gè)并行輸入305a、305b以及輸出305c的功能塊或子電路305,兩個(gè)并行輸入305a、305b具有相等的寬度m,并且輸出305c也具有相等的寬度m。功能塊布置成在其輸入305a、305b處接收各自的操作數(shù)A、B,并且對(duì)操作數(shù)執(zhí)行功能以產(chǎn)生輸出C。在該實(shí)施方案中,功能為相乘并且功能塊305為乘法器,其與第一實(shí)施方案的相同。為了在功能塊305的運(yùn)算中檢測(cè)并校正錯(cuò)誤,電路進(jìn)一步包括奇偶校驗(yàn)預(yù)測(cè)器子電路310和校正塊或子電路315。奇偶校驗(yàn)預(yù)測(cè)器310具有兩個(gè)并行輸入310a、310b以及輸出310c,兩個(gè)并行輸入310a、310b中的每一個(gè)具有與功能塊的輸入相同的寬度m,而輸出310c的寬度為k。奇偶校驗(yàn)預(yù)測(cè)器310布置成在其輸入處接收操作數(shù)A、B,并且根據(jù)它們產(chǎn)生奇偶校驗(yàn)碼,其為應(yīng)當(dāng)作為對(duì)功能塊305的輸出執(zhí)行的編碼步驟的結(jié)果而得以產(chǎn)生的奇偶校驗(yàn)碼的預(yù)測(cè),如將在下面更加具體描述的。校正塊315具有與功能塊305的輸出305c為相同寬度m的第一輸入315a,以及與來自奇偶校驗(yàn)預(yù)測(cè)器310的輸出為相同寬度k的第二輸入315b,以及與功能塊305的輸出305c為相同寬度m的輸出315c。校正塊315布置成在其第一輸入315a處接收通過功能塊305輸出的結(jié)果C,并且根據(jù)它產(chǎn)生奇偶校驗(yàn)碼。奇偶校驗(yàn)預(yù)測(cè)器310布置成使得如果沒有出現(xiàn)錯(cuò)誤,則其產(chǎn)生的預(yù)測(cè)的奇偶校驗(yàn)碼對(duì)于任意給定的操作數(shù)A、B將是一樣的,正如在校正塊315內(nèi)所產(chǎn)生的。則校正塊布置成將其從奇偶校驗(yàn)預(yù)測(cè)器310接收的奇偶校驗(yàn)碼與其根據(jù)結(jié)果C產(chǎn)生的奇偶校驗(yàn)碼進(jìn)行比較,并且根據(jù)它們來在結(jié)果C中檢測(cè)并定位錯(cuò)誤,并且校正它們,從而產(chǎn)生校正的輸出C’。
[0106]參照?qǐng)D8,現(xiàn)在將描述根據(jù)在校正塊315內(nèi)的功能塊輸出產(chǎn)生的并且通過奇偶校驗(yàn)預(yù)測(cè)器310預(yù)測(cè)的奇偶校驗(yàn)碼。在該實(shí)施方案中,由功能塊輸出的結(jié)果C為包括20個(gè)位CO至C19的20位輸出代碼。一般地說,通過將結(jié)果位CO至C19分成第一組的集合(在這種情況下為四行,每一行有五位),并對(duì)于每一組或者行產(chǎn)生奇偶校驗(yàn)碼,并且還將結(jié)果分為第二組的集合(在這種情況下為五列,每一列有四位),并對(duì)于每一組或者列產(chǎn)生奇偶校驗(yàn)碼而生成奇偶校驗(yàn)碼。能夠以任何合適的方式生成對(duì)于每一個(gè)組的奇偶校驗(yàn)碼,比如海明碼或BCH碼,其用于確定在組中錯(cuò)誤的數(shù)量,而非在組中它們的位置。通過奇偶校驗(yàn)預(yù)測(cè)器輸出的奇偶校驗(yàn)碼包括奇偶校驗(yàn)碼的集合,每一個(gè)都對(duì)應(yīng)于對(duì)于在校正塊315中位的組的其中一個(gè)產(chǎn)生的奇偶校驗(yàn)碼的其中一個(gè)。通過將根據(jù)在校正塊315內(nèi)的輸出C產(chǎn)生的奇偶校驗(yàn)碼與在奇偶校驗(yàn)預(yù)測(cè)器310中產(chǎn)生的那些進(jìn)行比較,校正塊315能夠確定在第一組的集合的每一個(gè)(也即,每一行)中錯(cuò)誤的數(shù)量,以及在第二組的集合的每一個(gè)中(也即,在每一列中)錯(cuò)誤的數(shù)量。根據(jù)這些數(shù)量,提供的錯(cuò)誤的數(shù)量并不是非常大,錯(cuò)誤的確切位置能夠被確定。這是因?yàn)樵谳敵鲋幸恍泻鸵涣械娜魏谓M合都唯一地識(shí)別一位。一旦已經(jīng)定位了錯(cuò)誤,則校正塊布置成校正它們,以便產(chǎn)生校正的輸出C’。
[0107]應(yīng)當(dāng)理解,校正塊可以包括布置成執(zhí)行已描述的每一個(gè)步驟的分開的子電路。在該實(shí)施方案中,它包括第一分配子電路315d、第二分配子電路315e、第一奇偶校驗(yàn)碼產(chǎn)生子電路315f、第二奇偶校驗(yàn)碼產(chǎn)生子電路315g、第一錯(cuò)誤檢測(cè)子電路315h、第二錯(cuò)誤檢測(cè)子電路3151、錯(cuò)誤位置子電路315j以及錯(cuò)誤檢測(cè)子電路315k,其中,第一分配子電路315d布置成將輸出位分配至第一組的集合,第二分配子電路315e布置成將輸出位分配至第二組的集合,第一奇偶校驗(yàn)碼產(chǎn)生子電路315f布置成產(chǎn)生用于第一組的集合的每一個(gè)的奇偶校驗(yàn)碼,第二奇偶校驗(yàn)碼產(chǎn)生子電路315g布置成產(chǎn)生用于第二組的集合的每一個(gè)的奇偶校驗(yàn)碼,第一錯(cuò)誤檢測(cè)子電路315h布置成將第一奇偶校驗(yàn)碼的集合與由奇偶校驗(yàn)預(yù)測(cè)器產(chǎn)生的對(duì)應(yīng)的代碼進(jìn)行比較,并且確定在第一位組的集合的每一個(gè)中錯(cuò)誤的數(shù)量,第二錯(cuò)誤檢測(cè)子電路315i布置成將第二奇偶校驗(yàn)碼的集合與由奇偶校驗(yàn)預(yù)測(cè)器產(chǎn)生的對(duì)應(yīng)的代碼進(jìn)行比較,并且確定在第二位組的集合的每一個(gè)中錯(cuò)誤的數(shù)量,錯(cuò)誤位置子電路315j布置成根據(jù)兩個(gè)奇偶校驗(yàn)碼的集合的比較識(shí)別在輸出C中錯(cuò)誤的位置,錯(cuò)誤檢測(cè)子電路315k布置成校正輸出C以產(chǎn)生校正的輸出C’。然而,應(yīng)當(dāng)理解,這些功能中的每一個(gè)可以不通過電路的分開的專用部分來執(zhí)行,并且在其他實(shí)施方案中,子電路可以布置成以組合的形式執(zhí)行這些功能中的兩個(gè)或更多個(gè)。
[0108]此外,應(yīng)當(dāng)理解,當(dāng)兩個(gè)組的集合能夠通過行和列的矩形表格而容易看出時(shí),分配步驟僅需要將每個(gè)位分配至兩個(gè)組:一個(gè)來自第一集合并且一個(gè)來自第二集合。例如,對(duì)于在圖8中顯示的分配,假設(shè)在輸出中位CO至C19以數(shù)字順序進(jìn)行布置,則第一個(gè)五位能夠分配至在第一集合中的第一組(對(duì)應(yīng)于第一行),并且隨后的五位的塊能夠分配至在第一集合中隨后的組。然后,以第一位開始的每一個(gè)第五位能夠分配至在第二集合中的第一組(對(duì)應(yīng)于第一列),以第二位開始的每一個(gè)第五位能夠分配至第二組等等。也應(yīng)當(dāng)理解,哪些位分配至哪些組并不是關(guān)鍵??紤]圖8的表格格式,20位能夠在表格的20個(gè)單元格中以任何方式布置,并且位仍然能夠根據(jù)行和列而成組,盡管這可能與它們?cè)谳敵鲋械奈恢脹]有規(guī)律的關(guān)系。
[0109]在該實(shí)施方案中,奇偶校驗(yàn)碼利用簡(jiǎn)單的海明碼和BCH碼產(chǎn)生,所述海明碼能夠在每一列中檢測(cè)兩個(gè)錯(cuò)誤,所述BCH碼將在每一行中檢測(cè)多達(dá)6個(gè)錯(cuò)誤。為了更好地理解按行和按列編碼,現(xiàn)在將以考慮到作為功能塊的實(shí)例的20位的位并行有限域乘法器的實(shí)例電路更加詳細(xì)地描述如通過校正塊315執(zhí)行的奇偶校驗(yàn)碼過程。
[0110]使用海明碼奇偶校驗(yàn)的錯(cuò)誤檢測(cè)
[0111]20位布置在如圖8所示的四行和五列的表格中。輸出C的20位以CO至C19的順序進(jìn)行識(shí)別,并且每一個(gè)都分配至如圖8所示的表格中的位置。行利用海明碼進(jìn)行編碼,并且具體地,每一行都以Ham(9,5)碼編碼。換言之,需要4位奇偶校驗(yàn)以在一行中檢測(cè)兩個(gè)錯(cuò)誤(也即,至多兩個(gè)位錯(cuò)誤)。用于第一行的4個(gè)奇偶校驗(yàn)信息通過下面的表達(dá)式給出:
[0112]
[0113]類似地,每一行都單獨(dú)地進(jìn)行編碼并且視為不同的碼字,導(dǎo)致了四四-位的奇偶校驗(yàn)碼,一個(gè)用于每一行,如圖8所示。每一列都利用簡(jiǎn)單的奇偶校驗(yàn)進(jìn)行編碼。每兩個(gè)位都通過產(chǎn)生列奇偶校驗(yàn)位CP來保護(hù),如圖8所示。第一列和第二列的列奇偶校驗(yàn)由如下面示出的等式來確定。其他三個(gè)列奇偶校驗(yàn)以與CPO至CP3完全相同的方式產(chǎn)生,如在下面
中所表示的:
[0114]
【權(quán)利要求】
1.一種錯(cuò)誤校正電路,布置成接收時(shí)鐘信號(hào),包括: 組件,所述組件布置成根據(jù)第一輸入和第二輸入產(chǎn)生第一輸出; 錯(cuò)誤檢測(cè)器,所述錯(cuò)誤檢測(cè)器布置成基于所述第一輸出、所述第一輸入和所述第二輸入產(chǎn)生錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示在所述第一輸出中是否已經(jīng)檢測(cè)到錯(cuò)誤; 校正發(fā)生器,所述校正發(fā)生器適合于基于所述第一輸出、所述第一輸入和所述第二輸入,在起始于在時(shí)鐘信號(hào)中的時(shí)序事件的第一時(shí)間周期之后產(chǎn)生校正輸出;以及 輸出發(fā)生器,所述輸出發(fā)生器布置成在起始于在時(shí)鐘信號(hào)中的時(shí)序事件的第二時(shí)間周期之后產(chǎn)生錯(cuò)誤校正電路的輸出, 其中,如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述第二時(shí)間周期比所述第一時(shí)間周期長,或者如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中沒有檢測(cè)到錯(cuò)誤,則所述第二時(shí)間周期不比所述第一時(shí)間周期長, 并且其中,如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述錯(cuò)誤校正電路的輸出包括所述 第一輸出和所述校正輸出的組合,從而在所述第一輸出中檢測(cè)到的錯(cuò)誤得以校正,或者如果所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤,則所述錯(cuò)誤校正電路的輸出直接對(duì)應(yīng)于所述第一輸出。
2.根據(jù)權(quán)利要求1所述的電路,其中所述輸出發(fā)生器包括具有輸出的輸出寄存器,所述輸出寄存器的輸出為所述錯(cuò)誤校正電路的輸出,并且其中所述輸出發(fā)生器布置成當(dāng)所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤時(shí),在更新其輸出時(shí)對(duì)所述輸出寄存器進(jìn)行延遲,從而使得所述第二時(shí)間周期比所述第一時(shí)間周期長。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的電路,其中所述輸出發(fā)生器包括輸出使能組件,所述輸出使能組件布置成基于所述時(shí)鐘信號(hào)和所述錯(cuò)誤標(biāo)記產(chǎn)生門控時(shí)鐘,并且其中所述輸出寄存器在其時(shí)鐘輸入處接收所述門控時(shí)鐘,從而在所述錯(cuò)誤標(biāo)記指示在所述第一輸出中已經(jīng)檢測(cè)到錯(cuò)誤時(shí),在更新其輸出時(shí)對(duì)所述輸出寄存器進(jìn)行延遲。
4.根據(jù)任意一項(xiàng)前述權(quán)利要求所述的電路,進(jìn)一步包括校驗(yàn)位發(fā)生器, 其中所述校驗(yàn)位發(fā)生器布置成基于所述第一輸入和所述第二輸入產(chǎn)生至少一個(gè)校驗(yàn)位,以及 其中所述錯(cuò)誤檢測(cè)器和所述校正發(fā)生器布置成基于所述第一輸出和所述至少一個(gè)校驗(yàn)位,分別產(chǎn)生所述錯(cuò)誤標(biāo)記和所述校正輸出。
5.根據(jù)權(quán)利要求4所述的電路,其中所述錯(cuò)誤檢測(cè)器布置成基于第一結(jié)果和至少一個(gè)校驗(yàn)位產(chǎn)生所述錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示所述錯(cuò)誤檢測(cè)器是否已經(jīng)檢測(cè)到所述錯(cuò)誤檢測(cè)器布置成檢測(cè)的多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
6.根據(jù)權(quán)利要求4或權(quán)利要求5所述的電路,其中所述校正發(fā)生器適合于基于所述第一輸出和所述至少一個(gè)校驗(yàn)位產(chǎn)生校正輸出,所述校正輸出適合于校正多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
7.根據(jù)權(quán)利要求4至6中任一項(xiàng)所述的電路,其中所述校驗(yàn)位發(fā)生器布置成根據(jù)所述第一輸入和所述第二輸入直接產(chǎn)生所述至少一個(gè)校驗(yàn)位,而不單獨(dú)產(chǎn)生所述第一輸出。
8.根據(jù)任意一項(xiàng)前述權(quán)利要求所述的電路,其中所述校正發(fā)生器布置成通過產(chǎn)生錯(cuò)誤位置多項(xiàng)式并接著搜索所述錯(cuò)誤位置多項(xiàng)式的根來產(chǎn)生所述校正輸出,其中所述校正發(fā)生器僅搜索對(duì)應(yīng)于所述第一輸出的根。
9.根據(jù)任意一項(xiàng)前述權(quán)利要求所述的電路,其中布置成產(chǎn)生所述第一輸出的所述組件布置成通過對(duì)所述第一輸入和所述第二輸入執(zhí)行算術(shù)運(yùn)算而產(chǎn)生所述第一輸出。
10.根據(jù)權(quán)利要求9所述的電路,其中所述算術(shù)運(yùn)算為有限域算術(shù)運(yùn)算,比如在伽羅瓦域GF(2k)上的乘法。
11.一種錯(cuò)誤校正電路,基本上如在本文中參照?qǐng)D3至圖6所描述的。
12.—種錯(cuò)誤校正電路,包括: 組件,所述組件布置成根據(jù)第一輸入和第二輸入產(chǎn)生第一輸出; 校正發(fā)生器,所述校正發(fā)生器布置成基于所述第一輸出、所述第一輸入和所述第二輸入產(chǎn)生適合于與所述第一輸出進(jìn)行組合的校正輸出,以便校正其中的錯(cuò)誤;以及 組合器,所述組合器 布置成將所述校正輸出和所述第一輸出進(jìn)行組合,從而產(chǎn)生第二輸出,在所述第二輸出中已經(jīng)校正了在所述第一輸出中的錯(cuò)誤。
13.根據(jù)權(quán)利要求12的電路,進(jìn)一步包括校驗(yàn)位發(fā)生器, 其中所述校驗(yàn)位發(fā)生器布置成基于所述第一輸入和所述第二輸入產(chǎn)生至少一個(gè)校驗(yàn)位,以及 其中所述校正發(fā)生器布置成基于第一結(jié)果和所述至少一個(gè)校驗(yàn)位產(chǎn)生所述校正輸出。
14.根據(jù)權(quán)利要求13所述的電路,其中所述校驗(yàn)位發(fā)生器布置成根據(jù)所述第一輸入和所述第二輸入直接產(chǎn)生所述至少一個(gè)校驗(yàn)位,而不單獨(dú)產(chǎn)生所述第一結(jié)果。
15.根據(jù)權(quán)利要求13或權(quán)利要求14所述的電路,其中所述錯(cuò)誤檢測(cè)器布置成基于所述第一結(jié)果和所述至少一個(gè)校驗(yàn)位產(chǎn)生錯(cuò)誤標(biāo)記,所述錯(cuò)誤標(biāo)記指示所述錯(cuò)誤檢測(cè)器是否已經(jīng)檢測(cè)到所述錯(cuò)誤檢測(cè)器布置成檢測(cè)的多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
16.根據(jù)權(quán)利要求13至15中任一項(xiàng)所述的電路,其中所述校正發(fā)生器適合于基于所述第一輸出和所述至少一個(gè)校驗(yàn)位產(chǎn)生校正輸出,所述校正輸出適合于校正多個(gè)不同錯(cuò)誤中的任意一個(gè),所述多個(gè)不同錯(cuò)誤包括在所述第一輸出中的錯(cuò)誤和在所述至少一個(gè)校驗(yàn)位中的錯(cuò)誤。
17.根據(jù)權(quán)利要求12至16中任一項(xiàng)所述的電路,其中所述校正發(fā)生器布置成通過產(chǎn)生錯(cuò)誤位置多項(xiàng)式并接著搜索所述錯(cuò)誤位置多項(xiàng)式的根來產(chǎn)生所述校正輸出,其中所述校正發(fā)生器僅搜索對(duì)應(yīng)于所述第一結(jié)果的根。
18.根據(jù)權(quán)利要求12至17中任一項(xiàng)所述的電路,其中布置成產(chǎn)生所述第一輸出的所述組件布置為通過對(duì)所述第一輸入和所述第二輸入執(zhí)行算術(shù)運(yùn)算而產(chǎn)生所述第一輸出。
19.根據(jù)權(quán)利要求18所述的電路,其中所述算術(shù)運(yùn)算為有限域算術(shù)運(yùn)算,比如在伽羅瓦域GF(2k)上的乘法。
20.根據(jù)任意一項(xiàng)前述權(quán)利要求所述的電路,其中所述輸出包括多個(gè)位,并且所述校正發(fā)生器布置成將輸出位分配至第一組的集合并對(duì)所述第一組的集合的每一個(gè)執(zhí)行第一錯(cuò)誤檢測(cè)步驟,將所述輸出位分配至第二組的集合并對(duì)所述第二組的集合的每一個(gè)執(zhí)行第二錯(cuò)誤檢測(cè)步驟,并且使用所述第一錯(cuò)誤檢測(cè)步驟和所述第二錯(cuò)誤檢測(cè)步驟的結(jié)果來執(zhí)行錯(cuò)誤定位步驟以在所述輸出中定位錯(cuò)誤。
21.一種錯(cuò)誤校正電路,所述錯(cuò)誤校正電路布置成接收包括多個(gè)輸出位的系統(tǒng)輸出,將所述輸出位分配至第一組的集合并對(duì)所述第一組的集合的每一個(gè)執(zhí)行第一錯(cuò)誤檢測(cè)步驟,將所述輸出位分配至第二組的集合并對(duì)所述第二組的集合的每一個(gè)執(zhí)行第二錯(cuò)誤檢測(cè)步驟,使用所述第一錯(cuò)誤檢測(cè)步驟和所述第二錯(cuò)誤檢測(cè)步驟的結(jié)果來執(zhí)行錯(cuò)誤定位步驟以在所述輸出中定位錯(cuò)誤,并且根據(jù)接收的輸出和所述錯(cuò)誤定位步驟的結(jié)果產(chǎn)生校正的輸出。
22.根據(jù)權(quán)利要求20或權(quán)利要求21所述的電路,其中所述輸出位的每一個(gè)都為所述第一組的集合的其中之一和所述第二組的集合的其中之一的成員。
23.根據(jù)權(quán)利要求20至22中任一項(xiàng)所述的電路,其中所述第一組的集合和所述第二組的集合布置成使得對(duì)于所述輸出位中的任意一個(gè),來自其作為成員的所述第一集合的組的身份和來自其作為成員的所述第二集合的組的身份唯一識(shí)別所述輸出位。
24.根據(jù)權(quán)利要求20至23中任一項(xiàng)所述的電路,其包括以下中的至少一個(gè):分配子電路、第一錯(cuò)誤檢測(cè)子電路、第二錯(cuò)誤檢測(cè)子電路、錯(cuò)誤定位子電路以及校正子電路。
25.根據(jù)權(quán)利要求20至24中任一項(xiàng)所述的電路,其中所述錯(cuò)誤檢測(cè)步驟的每一個(gè)布置成確定在相關(guān)組中位錯(cuò)誤的數(shù)量。
26.根據(jù)權(quán)利 要求20至25中任一項(xiàng)所述的電路,其中所述錯(cuò)誤檢測(cè)步驟的每一個(gè)布置成產(chǎn)生用于相關(guān)組的錯(cuò)誤檢測(cè)代碼。
27.一種錯(cuò)誤校正電路,基本上如在本文中參照?qǐng)D1和圖2,或者圖3和圖4,或者圖7所描述的。
【文檔編號(hào)】G06F11/10GK103890732SQ201280052786
【公開日】2014年6月25日 申請(qǐng)日期:2012年8月10日 優(yōu)先權(quán)日:2011年8月26日
【發(fā)明者】M·波拉卡帕拉姆貝爾, A·賈比爾, J·馬修, D·K·普拉丹 申請(qǐng)人:牛津布魯克斯大學(xué)