欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

糾錯譯碼器中的雙chien搜索塊的制作方法

文檔序號:6752549閱讀:179來源:國知局
專利名稱:糾錯譯碼器中的雙chien搜索塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字通信系統(tǒng)檢錯和糾錯。
背景技術(shù)
任何現(xiàn)代數(shù)字通信系統(tǒng)的重要功能是錯誤控制編碼。錯誤控制編碼是通信中涉及數(shù)字系統(tǒng)檢錯和糾錯技術(shù)的領(lǐng)域。通常,每當希望保證在傳輸期間或在貯存數(shù)字數(shù)據(jù)時不把錯誤引入數(shù)據(jù)中,或替換地,當錯誤被引入到數(shù)據(jù)時要糾正引入的錯誤,于是就要利用檢錯/糾錯方案。檢測和/或糾正數(shù)據(jù)錯誤的能力是通過給數(shù)據(jù)添加冗余度而完成的。在傳輸?shù)幕虼鎯Φ臄?shù)據(jù)中包括冗余比特,可導(dǎo)致編碼的信號或區(qū)比起原先的未編碼的信號或區(qū)包括更多的比特。
一種經(jīng)常使用的、用于檢錯/糾錯的方案是所謂的里德-所羅門(Reed-Solomon)碼。里德-所羅門碼是非二進制系統(tǒng)循環(huán)線性塊代碼。非二進制碼作用于由幾個比特組成的碼元。諸如里德-所羅門碼這樣的非二進制碼善于糾正突發(fā)錯誤,因為通過這些代碼的糾錯是在碼元級別上完成的。諸如里德-所羅門碼這樣的系統(tǒng)碼生成這樣的碼字,它們包含未改變形式的消息碼元。編碼器把可逆的數(shù)學函數(shù)用于消息碼元上,以便生成冗余度或奇偶校驗碼元。然后通過把奇偶校驗碼元附加到消息碼元而形成碼字。里德-所羅門碼被看作為循環(huán)碼,因為任何有效的碼字的環(huán)形移位也產(chǎn)生另一個有效的碼字。循環(huán)碼是流行的,因為存在有效的和便宜的譯碼技術(shù)來實施循環(huán)碼。最后,里德-所羅門碼被認為是線性的,因為任何兩個有效的碼字相加會導(dǎo)致另一個有效的碼字。
典型的里德-所羅門譯碼器包括以下的主要部件塊(i)出錯位組(syndrom)生成塊,(ii)錯誤多項式塊,(iii)錯誤位置塊,(iv)錯誤大小塊,(v)糾錯塊,以及(vi)延時塊。出錯位組生成塊被使用來接收碼字和從碼字生成出錯位組。出錯位組用于在錯誤多項式塊中建立錯誤多項式。錯誤多項式被傳送到錯誤位置塊和錯誤大小塊,在其中分別確定碼字的錯誤位置和大小。從錯誤位置和大小生成錯誤矢量。接收的碼字的延時的版本通過糾錯塊使用與特定的碼字相對應(yīng)的錯誤矢量而被糾正。
發(fā)明概要本發(fā)明是一種由譯碼器確定碼字的錯誤位置和大小的方法和設(shè)備。計算相應(yīng)于碼字錯誤的數(shù)目的數(shù)值。如果與碼字錯誤的數(shù)目相對應(yīng)的數(shù)值大于閾值,則碼字作為譯碼器的輸出被轉(zhuǎn)發(fā)。如果與碼字錯誤的數(shù)目相對應(yīng)的數(shù)值小于或等于閾值,則確定與碼字相對應(yīng)的錯誤位置和錯誤大小。本發(fā)明的特征在于,對與第一碼字相對應(yīng)的數(shù)據(jù)執(zhí)行與該碼字錯誤的數(shù)目相對應(yīng)的數(shù)值的計算操作,同時,也對與第二碼字相對應(yīng)的數(shù)據(jù)并行地執(zhí)行確定錯誤位置和錯誤大小的操作。
附圖簡述現(xiàn)在結(jié)合附圖參考本發(fā)明的以下說明,其中

圖1是含有糾錯方案的數(shù)字數(shù)據(jù)傳遞系統(tǒng)的方框圖;圖2是顯示典型的糾錯方案方法的流程圖;圖3是各種糾錯方案的分級結(jié)構(gòu)示意圖;圖4是里德-所羅門(RS)譯碼器的方框圖;圖5是按照本發(fā)明的原理使用的、里德-所羅門(RS)譯碼器的示例性實施例的方框圖;圖6是顯示按照本發(fā)明的原理的、示例的譯碼器內(nèi)握手協(xié)議的方框圖7是顯示按照本發(fā)明的原理的、在里德-所羅門(RS)譯碼器的示例性實施例的功能塊之間的握手協(xié)議的方框圖;圖8是按照本發(fā)明的原理的、顯示與使用譯碼器內(nèi)握手有關(guān)的效率的、示例性里德-所羅門(RS)譯碼器的時序圖;圖9是按照本發(fā)明的原理的、在利用Chien/Forney塊以外還利用Chien塊的里德-所羅門(RS)譯碼器的示例性實施例的方框圖;圖10是在里德-所羅門(RS)譯碼器中實施的典型的現(xiàn)有技術(shù)Chien搜索單元的方框圖;以及圖11是按照本發(fā)明的原理的、在其中減小了存儲器要求和延時的里德-所羅門(RS)譯碼器中實施的改進的Chien搜索單元的方框圖。
發(fā)明詳細描述參照圖1,圖上顯示按照在本發(fā)明中體現(xiàn)的原理的、含有檢錯/糾錯方案的數(shù)字數(shù)據(jù)傳遞系統(tǒng)100的方框圖。通常,每當希望保證在傳輸期間或在貯存數(shù)字數(shù)據(jù)時不把錯誤引入數(shù)據(jù)中,或替換地,當錯誤被引入到數(shù)據(jù)時要糾正引入的錯誤,于是就要利用檢錯/糾錯方案。檢測和/或糾正數(shù)據(jù)錯誤的能力是通過給數(shù)據(jù)加上冗余度而完成的。在傳輸?shù)幕虼鎯Φ臄?shù)據(jù)中包括冗余比特,導(dǎo)致編碼的信號或區(qū)比起原先的未編碼的信號或區(qū)包括更多的比特。對于容忍這種附加開銷的補償物是檢錯或檢錯與糾錯的能力。通過使用錯誤控制編碼而得到的性能改進常常用編碼增益來測量。假設(shè)未編碼的通信系統(tǒng)在30dB的信號噪聲比(SNR)下達到給定的誤碼率(BER)。如果具有3dB的編碼增益的錯誤控制編碼方案被加到系統(tǒng),則編碼系統(tǒng)能夠在27dB的甚至更低的SNR下達到該BER。替換地,如果系統(tǒng)工作在30dB的SNR下,則編碼系統(tǒng)達到的BER是未編碼系統(tǒng)在33dB的SNR下達到相同的BER。編碼增益的能力在于,它允許通信系統(tǒng)(i)以比起未編碼時可能達到的更低的SNR下保持想要的BER,或(ii)在給定的SNR下,得到比起未編碼系統(tǒng)所能得到的BER更好的BER。
例如,編碼器110的功能正是從數(shù)據(jù)源接受數(shù)字數(shù)據(jù)以及經(jīng)由信道發(fā)送數(shù)據(jù)或把數(shù)據(jù)存儲在貯存媒體(一起顯示為信道或存儲裝置115)或者再不然就變換或處理該數(shù)據(jù)。經(jīng)常是這樣的情形,在傳輸或存儲期間,數(shù)據(jù)可能引入噪聲或錯誤125,因此變?yōu)槌鲥e或在原先的數(shù)字數(shù)據(jù)的形式上發(fā)生改變。譯碼器120用來檢測和糾正,或在替換例中僅僅去檢測數(shù)字數(shù)據(jù)的規(guī)定的部分是否出錯。
參照圖2,圖上顯示在發(fā)射機/信道/接收機環(huán)境方面可提供的各種檢錯/糾錯處理過程的流程圖。雖然在這一含義上進行描述,但本領(lǐng)域技術(shù)人員將會看到,這樣的檢錯/糾錯處理過程也同樣可應(yīng)用到廣播傳輸,數(shù)字數(shù)據(jù)存儲或其中數(shù)字數(shù)據(jù)(無論是數(shù)據(jù)區(qū),分組,數(shù)據(jù)流等的形式)被處理或變換的任何其他處理。作為僅僅是說明性而不是意味著窮舉的或排他的例子,以下的技術(shù)/設(shè)備,可以利用檢測/糾錯方案來改進性能、整體性和可靠性(i)各種存儲裝置,包括但不限于磁帶、光盤(CD)、數(shù)字通用盤(DVD)、條形碼等,(ii)有線或移動通信(包括蜂窩電話、雙向收發(fā)信機、微波鏈路等),(iii)衛(wèi)星通信,(iv)數(shù)字無線電、數(shù)字電視機(DTV)、數(shù)字視頻廣播(DVB)、等,(v)調(diào)制解調(diào)器,包括但不限于電纜、V.pcm、ADSL、xDSL等。
按照步驟210,在初始建立鏈路和協(xié)商傳輸信道參量后,發(fā)送源以適合于傳輸?shù)男问教幚頂?shù)字數(shù)據(jù)。按照步驟215,在傳輸之前,該源生成錯誤碼;錯誤碼至少部分地基于要被發(fā)送的數(shù)字數(shù)據(jù)的數(shù)值,因此提供數(shù)據(jù)冗余度。按照步驟220,生成的錯誤碼被附加、附著、復(fù)接,或以其它方式與數(shù)字數(shù)據(jù)被包括在一起,并從發(fā)射機發(fā)送到接收機。按照步驟225,數(shù)字數(shù)據(jù)和錯誤碼在接收機處被接收。按照步驟230,在接收機處實施初始信號處理,如果需要的話。按照步驟235,接收機選取錯誤碼冗余比特,和按照所利用的錯誤控制碼方案處理被包含在其中的信息。按照步驟240,如果所處理的冗余的比特對于接收的數(shù)字數(shù)據(jù)的檢驗是肯定的,則數(shù)據(jù)被假設(shè)為未出錯的。按照步驟245,在接收機處繼續(xù)進行數(shù)字信號的信號處理(如果有的話)。
然而,按照步驟250,如果所處理的冗余的比特表示接收的數(shù)字數(shù)據(jù)是出錯的(包含至少一個比特錯誤),則對數(shù)據(jù)錯誤進行評估,以確定該錯誤在所利用的錯誤控制方案內(nèi)是否為可糾正的。也就是,某些錯誤控制方案只能進行檢測,但不包括允許對這些錯誤進行糾正所需的冗余數(shù)據(jù)的質(zhì)量和類型。其他錯誤控制方案可能只利用它們的檢錯能力,而不管它們可能具有檢錯和糾錯能力。通常,這是在任何特定的數(shù)據(jù)信號、消息、或分組的準確性不是最重要,而數(shù)據(jù)的一致的和及時的傳遞是最重要時所利用的方案。這樣的應(yīng)用的一個例子是用于話音、音頻和視頻應(yīng)用的同步流數(shù)據(jù)。另外,即使當檢錯方案被利用來檢錯和糾錯時,如果所檢測的錯誤的數(shù)目或突發(fā)大于糾錯能力(也就是,超過了錯誤碼比特所提供的冗余信息),則數(shù)據(jù)是不可恢復(fù)的。按照步驟255,如果數(shù)據(jù)是可糾錯的,則數(shù)據(jù)錯誤被糾正,以及在接收機處繼續(xù)進行另外的信號處理(如果有的話)。然而,按照步驟260,如果錯誤是不可糾正的,則執(zhí)行評估以確定數(shù)據(jù)精度是否必不可少。按照步驟265,如果數(shù)據(jù)準確性是必不可少的,如在純數(shù)據(jù)系統(tǒng)中那樣,則很可能單個比特錯誤就是關(guān)鍵的,以及把重發(fā)請求發(fā)回到發(fā)射源。然而,按照步驟270,如果不可糾正的數(shù)據(jù)的準確性是不重要的,如同步性質(zhì)的數(shù)據(jù)傳送(諸如,話音、音頻、或視頻)的情形,則出錯的和不可糾正的數(shù)據(jù)僅僅被丟棄,而處理下一個接連的數(shù)據(jù)消息。
參照圖3,圖上顯示用于各種錯誤碼分類和方案的分級結(jié)構(gòu)。錯誤碼310可被劃分成兩個基本類別(i)自動重發(fā)請求(ARQ)或檢錯碼315,以及(ii)前向糾錯(FEC)碼320。ARQ是只有檢錯類型的編碼,其中傳輸中的錯誤可被接收機檢測,但不能糾正。接收機必須請求任何接收的數(shù)據(jù),并請求重發(fā)收到但已檢測到錯誤的數(shù)據(jù)。因為這些重發(fā)將竊取寶貴的帶寬,ARQ碼常常被使用于“干凈”傳輸媒體(具有較低的出錯概率的傳輸)。一個最普通的例子是簡單的奇偶校驗檢查325,它常常用于檢測RAM中的數(shù)據(jù)錯誤。另一個例子是循環(huán)冗余檢查(CRC)330,它被使用來檢測在例如通過以太網(wǎng)傳輸中的錯誤。如果檢測到錯誤,消息將被重發(fā)。因為以太網(wǎng)主要是通過有線發(fā)送的,出錯的機會小于對于某些其他媒體的情形。CRC和ARQ僅僅是檢錯碼方案的兩個說明性例子;其他檢錯碼方案對于本領(lǐng)域技術(shù)人員是已知的。僅僅檢測錯誤而不糾正錯誤的錯誤碼比起進行糾錯的錯誤碼增加少得多的冗余度。而且,檢錯譯碼器比起糾錯譯碼器在復(fù)雜性上簡單得多。利用檢錯碼方案的系統(tǒng)對于由于數(shù)據(jù)重發(fā)引起的附加開銷通常在帶寬上是能夠承受的。也就是,數(shù)據(jù)重發(fā)并不很大地影響總的系統(tǒng)通過量。
由于噪聲多的媒體有很大機會把錯誤引入到給定的傳輸,ARQ方法的使用意味著經(jīng)常重發(fā)數(shù)據(jù),使得系統(tǒng)通過量減小到無法接受的程度。在這些情形下,糾錯碼(正如其名稱暗示的)不單允許在接收端檢測錯誤,也允許糾正錯誤。這減小了數(shù)據(jù)重發(fā)的需要,它只在錯誤的數(shù)目大于所利用的糾錯方法可糾正的錯誤數(shù)目時才需要重發(fā)。糾錯也被使用于單向通信,其中接收機請求發(fā)送者重發(fā)的機會是無法得到的。這些單向路徑的說明性例子包括某些衛(wèi)星傳輸和磁帶存儲媒體。
糾錯碼可被劃分成兩種主要的子類別。第一種是塊碼335,第二種是卷積碼340。塊碼335是經(jīng)常使用的糾錯碼,它作用于確定的有限長度的消息塊。塊碼335所以起這樣的名稱是因為該子類別利用一個處理消息碼元塊和然后生成碼字碼元塊的編碼器。塊碼通??杀环诸悶閮煞N類型二進制碼345和非二進制碼355。二進制碼345的一個例子是漢明(Hamming)碼350,其特征在于每個字符具有四個信息比特和三個檢驗比特。非二進制碼的例子是里德-所羅門碼360。
相反,卷積碼340編碼器作用于連續(xù)的消息碼元流,以及同時生成連續(xù)的編碼的輸出流。這些碼所以得到這樣的名稱是因為編碼過程可被看作為消息碼元的卷積和編碼器的脈沖響應(yīng)。卷積碼340的兩個例子是網(wǎng)格編碼調(diào)制(TCM)365和二進制卷積編碼370。
圖4是示例性里德-所羅門(RS)譯碼器的方框圖。如前所述,里德-所羅門碼是非二進制系統(tǒng)循環(huán)信息塊碼。非二進制碼作用于由幾個比特組成的碼元。非二進制碼的通常的碼元大小是8比特或一個字節(jié)。非二進制碼,諸如里德-所羅門碼,善于糾正突發(fā)錯誤,因為這些碼的糾錯是在碼元級別上完成的。通過在譯碼過程中作用于碼元,這些碼可以糾正具有8個錯誤的突發(fā)的碼元,同它們糾正具有單個比特錯誤的碼元一樣容易。系統(tǒng)碼,諸如里德-所羅門碼,生成包含未改變形式的消息碼元的碼字。編碼器把可逆的數(shù)學函數(shù)應(yīng)用于消息碼元上,以便生成冗余度或奇偶校驗的碼元。然后通過把奇偶校驗碼元附著到消息碼元而形成碼字。里德-所羅門碼被看作為循環(huán)碼,因為任何有效的碼字的環(huán)形移位也產(chǎn)生另一個有效的碼字。循環(huán)碼是流行的,因為存在有效的和便宜的譯碼技術(shù)來實施循環(huán)碼。最后,里德-所羅門碼被認為是線性的,因為任何兩個有效的碼字相加導(dǎo)致另一個有效的碼字。
錯誤控制碼的理論利用被稱為有限區(qū)或Galois區(qū)的數(shù)學結(jié)構(gòu)。Galois區(qū)是包含有限數(shù)目的元素的組。對于這個組的加法和乘法運算被定義,以及這些運算相當于通常的算術(shù)所預(yù)期的結(jié)果。例如,相加的單位元素是0,以及相乘的單位元素是1。里德-所羅門碼是通過利用Galois區(qū)數(shù)學實施的,它決定了碼的循環(huán)和線性性質(zhì)以及作用于階數(shù)q=pm的Galois區(qū),其中p是正質(zhì)數(shù),以及m是正數(shù)。階數(shù)q的Galois區(qū)被表示為GF(q),以及它包含q個不同的元素。
這樣來表示已知的里德-所羅門碼,即將它稱為(n,k)碼。參量n代表用碼字中的碼元數(shù)所表示的碼字長度。參量k表示碼字中的消息碼元的數(shù)目。因此加上的奇偶校驗碼元的數(shù)目是n-k。該代碼的糾錯能力是t=(n-k)/2。該代碼可檢測和糾正T個錯誤,其中0≤T≤t。碼字是基于消息碼元的,并由里德-所羅門編碼器生成。由于里德-所羅門碼是系統(tǒng)碼,所以n個消息碼元按照其原樣發(fā)送,而n-k個奇偶校驗碼元則被附著到消息碼元而形成碼字。奇偶校驗碼元的數(shù)值取決于消息碼元,這些奇偶校驗碼元增加了發(fā)送碼字的冗余度。這個冗余度被接收機的譯碼器利用來檢錯和糾錯。
在接收機的譯碼器處,碼字作為供到出錯位組生成塊410的輸入被接收。由譯碼器執(zhí)行的第一步驟是由出錯位組生成塊410(也經(jīng)常稱為出錯位組生成模塊,或簡稱為出錯位組生成器)執(zhí)行的出錯位組計算。出錯位組由n-k個碼元組成,以及它的值從接收的碼字計算。出錯位組只取決于錯誤矢量,它與發(fā)送的碼字無關(guān)。也就是說,每個錯誤矢量具有唯一的出錯位組矢量,但許多不同的接收的碼字如果它們的錯誤圖案相同,則將具有相同的出錯位組。首先計算出錯位組的原因是因為,這樣做將使得錯誤矢量的搜索區(qū)變窄。首先知道出錯位組將能從2n個可能的總的錯誤矢量減小為2n-k個確切的錯誤矢量。
出錯位組生成塊410計算出錯位組的一個方法是使用Galois區(qū)代數(shù)把接收的碼字除以生成器多項式。這個除法的余數(shù)被稱為出錯位組多項式s(x)。實際的出錯位組矢量S(x)是通過估計s(x)在α到αn-k處的值而被計算的。然而,這個方法從硬件方面看來其效率可能不是最佳,則在硬件上經(jīng)常使用的替換的方法是直接估計在α到αn-k處的接收的碼字R(x)。出錯位組生成塊410通過估計在α到αn-k處的接收的碼字R,也就是R(α)到R(αn-k),而計算出錯位組S。在里德-所羅門碼中,n-k=2t,因此有2t個出錯位組值要計算[S1 S2S3...S(2t)]。這些數(shù)值典型地是并行地計算的,第一出錯位組生成器估計在α處的接收的碼字,以形成S1,下一個出錯位組生成器估計在α2處的接收的碼字,以形成S2,等等。
一旦出錯位組被出錯位組生成塊410算出,它的數(shù)值就被傳送到錯誤多項式塊420。在這里,出錯位組被利用來建立錯誤位置多項式。這個過程牽涉到求解t個未知數(shù)的聯(lián)立方程。幾種快速算法可提供用于這些計算,包括Beriekamp-Massey算法,或歐幾里得算法。這些算法利用里德-所羅門碼的專門的矩陣結(jié)構(gòu)從而大大地減小所需要的計算量。
錯誤多項式塊420把錯誤位置多項式(一旦被確定)傳送到錯誤位置塊430和錯誤大小塊440。錯誤位置塊430求解錯誤位置多項式的根,以確定錯誤位置。典型地,這是通過利用Chien搜索算法,或Chien單元而完成的。由錯誤位置塊430確定的錯誤位置連同以前確定的錯誤位置多項式一起被傳送到錯誤大小塊440。錯誤大小塊440通過求解t個未知數(shù)的聯(lián)立方程而確定錯誤大小。在實施錯誤大小塊440時使用的快速和廣泛使用的算法是Forney算法。
計算的錯誤位置和錯誤大小被轉(zhuǎn)發(fā)到糾錯塊450,用于恢復(fù)糾正的碼字,如果它出錯的話。通常,錯誤位置和錯誤大小的組合被稱為錯誤矢量。錯誤矢量是與碼字相同的尺寸,以及在相應(yīng)于錯誤的位置上包含非零值。所有其他的位置包含零。加到糾錯塊450的另一個輸入是延時塊460的輸出。延時塊460接收所收到的碼字,以及輸出相同但具有延時的所接收到的碼字。在一個實施例中,糾錯塊450是通過使用Galois區(qū)加法器452與LIFO(后進先出)塊454而實施的。在接收的碼字中的錯誤通過使用Galois區(qū)加法器452把接收的碼字加到錯誤矢量而被糾正。利用LIFO塊454是因為錯誤矢量是以接收的碼字的相反的次序生成的,所以必須對接收的碼字或錯誤矢量應(yīng)用LIFO運算,以便匹配這兩個矢量的字節(jié)的向上的次序。糾錯塊450的輸出是原先的碼字的譯碼器的估值。
圖5是里德-所羅門(RS)譯碼器的示例性實施例的方框圖。該輸入是轉(zhuǎn)發(fā)到出錯位組生成塊510而接收到的碼字。一旦出錯位組S(x)被出錯位組生成塊510計算,它的數(shù)值就被傳送到歐幾里得算法塊520。歐幾里得算法處理出錯位組S(x),以便生成錯誤位置多項式Λ(x)和錯誤大小多項式Ω(x)。也就是,它求解被稱為關(guān)鍵方程的以下的方程
Λ(x)[1+S(x)]=Ω(x)modx2t+1公式1在里德-所羅門譯碼時使用的算法是基于歐幾里得算法,用于找到兩個多項式的最大公因子(GCD)。歐幾里得算法是熟知的迭代多項式除法算法。
一旦錯誤位置多項式Λ(x)被計算,就需要對它進行估值以找出它的根。Chien搜索算法被使用來找出這些根。Chien搜索是一種強力算法,它對多項式的所有可能的輸入值都要計算,然后確定哪些輸出等于零。如果在位置i出現(xiàn)錯誤,則以下的方程等于零Σj=0tΛjα-ij=0,]]>其中i=0..(n-1)公式2Chien搜索對i和j的所有的數(shù)值都計算公式(2),并將該公式等于零的次數(shù)計數(shù)。零的位置是錯誤的位置,而零的數(shù)目是出錯的碼元的數(shù)目。
在示例性實施例中,具有(t+1)級用硬件實施的Chien搜索。這些級的每級(其中一級由一個乘法器、一個復(fù)接器和一個寄存器組成)代表在以上的Chien搜索方程中對于j的不同的數(shù)值。搜索運行n個時鐘循環(huán)(每個時鐘循環(huán)代表在以上方程中i的不同的數(shù)值),以及查看加法器的輸出是否等于零。如果它等于零,則零檢測塊將輸出一個1,否則,它輸出1個0。Chien搜索塊的輸出因此是具有’0’或’1’數(shù)值的n比特的一個串。每個’1’代表出錯碼元的位置。
對于第一時鐘循環(huán),復(fù)接器把錯誤位置多項式系數(shù)發(fā)送到寄存器。對于剩余的(n-1)時鐘循環(huán),乘法器的輸出經(jīng)由復(fù)接器被發(fā)送到寄存器。乘法器的指數(shù)具有負的數(shù)值。然而,這些數(shù)值可以通過使用取模算子預(yù)先進行計算。α-i的指數(shù)等于(-i模n)=(-i模255)。例如,α-1等于α254,α-2等于α253,等等。
Forney算法用來計算錯誤值Y1。為了計算這些值,F(xiàn)orney算法使用錯誤位置多項式Λ(x)和錯誤大小多項式Ω(x)。用于錯誤值的公式是,
Yi=Ω(x)Λ′(x)]]>對于x=α-i,其中α-i是Λ(x)的根 公式3對于x=α-i,其中α-i是Λ(x)的根。
形式導(dǎo)數(shù)Λ’(x)的計算實際上相當簡單。例如,假設(shè)Λ(x)=α4X3+α3X2+αX+α2。Λ’(x)因此等于Λ′(x)= 3α4X2+2α3X+α公式4=(α4+α4+α4)X2+(α3+α3)X+α=α4X2+α該導(dǎo)數(shù)是通過取X的奇次冪的系數(shù),以及把它們指派給X的接著的較低的冪(它將是偶次冪),而形成的。
然后通過使用與Chien搜索所使用的相同的類型的硬件來估計Ω(x)多項式和Ω’(x)多項式。為了估計Ω(x),把Ω0系數(shù)加上Ω1乘以α-1,Ω2乘以α-2,等等直至Ωt乘以α-t。這些乘法器的輸出然后被相加。
然后把分子與使用逆乘法的分母相乘。逆乘法包含一個查找表,它找出分母的倒數(shù)。例如,如果分母是α3,倒數(shù)是α-3。這可表示為α-i=α(-i mod n)=α(-3 mod 255)=α252。公式5由于對于Chien搜索和Forney算法需要相同的類型的硬件,這兩個功能可被組合在同一個塊,被顯示為Chien/Forney塊530。在本實施方案中,在Chien搜索的輸出端使用了兩個加法器。第一加法器相加偶數(shù)級的數(shù)值,以及另一個加法器相加奇數(shù)級的數(shù)值。為了形成最后的Chien搜索輸出,這兩個加法器的輸出然后相加,以及零檢測塊檢測根的位置。奇數(shù)級加法器的輸出也用于Forney算法。奇數(shù)級的和值代表Forney公式的分母。對這個和值計算倒數(shù),然后把它與計算錯誤大小多項式所形成的分子值相乘。該輸出和零檢測輸出進行’與’運算,因為錯誤值只對于實際的錯誤位置是有效的(不然它們應(yīng)當被設(shè)置為零)。
因此,Chien/Forney塊530使用錯誤位置多項式和錯誤大小多項式來生成錯誤矢量,并把它轉(zhuǎn)發(fā)到糾錯塊540。錯誤矢量是與碼字相同的大小,以及在相應(yīng)于錯誤的位置上包含非零值。所有其他的位置包含零。加到糾錯塊540的另一個輸入是延時塊550的輸出。延時塊550取接收的碼字,以及輸出經(jīng)延時的相同的接收的碼字。在本實施例中,糾錯塊540是用Galois區(qū)加法器544與LIFO塊542而實施的。在接收的碼字中的錯誤通過使用Galois區(qū)加法器544把接收的碼字加到錯誤矢量而被糾正。利用LIFO塊542是因為錯誤矢量是以接收的碼字的相反的次序生成的,所以必須對接收的碼字或錯誤矢量應(yīng)用LIFO運算,以便使這兩個矢量的字節(jié)的次序同步。糾錯塊540的輸出是原先的碼字的譯碼器的估值。
譯碼器內(nèi)部部件塊的消息傳送如前所述,里德-所羅門譯碼器具有至少四個主部件或功能塊。它們是出錯位組生成器,錯誤多項式塊,錯誤位置塊,和錯誤大小塊。如果譯碼器除了檢測錯誤以外還糾正錯誤,則譯碼器還包括糾錯塊。在現(xiàn)有技術(shù)的譯碼器中,這些塊形成“傳遞流水線”,因為,加到一個塊的輸入只取決于以前塊的輸出。也就是,從一個塊到以前的塊沒有反饋。里德-所羅門譯碼器在對特定的碼字(由圖4和5的延時塊表示)執(zhí)行譯碼過程時也需要存儲器或緩存器塊的實施方案以存儲接收的碼字。在完成譯碼過程時,錯誤位置/大小塊產(chǎn)生錯誤矢量,以及這個錯誤矢量與存儲在存儲器中的接收的碼字進行“異或”運算,以便形成譯碼器輸出。典型地,所使用的存儲器的大小等于一個碼字,因此,譯碼器一次只能處理單個碼字。
圖6是顯示按照本發(fā)明的原理的譯碼器內(nèi)握手協(xié)議的示例性實施例的方框圖。譯碼器內(nèi)部塊A 610和譯碼器內(nèi)部塊B 620代表里德-所羅門譯碼器內(nèi)任何兩個塊(根據(jù)上述的功能塊而選擇的),它們利用塊之間的反饋或通信。譯碼“傳遞流水線”是數(shù)據(jù)信道630,它代表在里德-所羅門譯碼器的功能塊之間的任何現(xiàn)有技術(shù)的單向信道。另外,按照本發(fā)明,也顯示反饋信道。反饋信道可被看作為一個功能塊把它的現(xiàn)在的和將來的不活動性輸送到上游或下游功能塊的手段。例如,假設(shè)譯碼器內(nèi)部塊A 610對特定的碼字完成了它的處理功能。譯碼器內(nèi)部塊A 610發(fā)送不活動消息到譯碼器內(nèi)部塊B 620,表示它準備好把它對于特定的碼字實施的計算功能的結(jié)果轉(zhuǎn)發(fā)到譯碼器內(nèi)部塊B 620。因此,這種類型的不活動消息被稱為“準備好發(fā)送”(RTS)消息650。相反,假設(shè)譯碼器內(nèi)部塊B 620對特定的碼字完成了它的處理功能。譯碼器內(nèi)部塊B 620發(fā)送不活動消息到譯碼器內(nèi)部塊A610,表示它準備好接收。因此,這種類型的不活動消息被稱為“準備好接收”(RTR)消息640。
本發(fā)明的這個實施例--帶有在功能塊之間的反饋或握手的譯碼器實施方案--具有這樣的優(yōu)點,即它使得用戶可配置的結(jié)構(gòu)能夠適用于智能特性(IP)核心,它允許用戶根據(jù)他希望使用的、用來實施譯碼器的存儲器的大小來定制譯碼器的性能。
圖7是顯示在里德-所羅門(RS)譯碼器的示例性實施例的功能塊之間的握手協(xié)議的方框圖。出錯位組生成塊410、錯誤多項式塊420、錯誤位置塊430、錯誤大小塊440、糾錯塊450(包括Galois區(qū)相加器452和LIFO塊454)和延時塊460的功能等的目的和運行已參照圖4作了充分描述,所以這里不再重復(fù)。圖7上顯示新包括的部分,即,上述的不活動消息(或握手信號)。握手信號(例如,RTS和RTR消息)被處理塊使用來表示它們何時發(fā)送數(shù)據(jù)和/或它們何時準備好接收數(shù)據(jù)。所以,出錯位組生成塊410和錯誤多項式塊420能夠經(jīng)由RTS信道710交換RTS消息或經(jīng)由RTR信道712交換RTR消息。錯誤多項式塊420和錯誤位置塊430能夠經(jīng)由RTS信道718交換RTS消息或經(jīng)由RTR信道720交換RTR消息。錯誤多項式塊420和錯誤大小塊440能夠經(jīng)由RTS信道724交換RTS消息或經(jīng)由RTR信道726交換RTR消息。錯誤多項式塊420和糾錯塊450能夠經(jīng)由RTS信道724交換RTS消息或經(jīng)由RTR信道726交換RTR消息。出錯位組生成塊410也適配于通過經(jīng)由RTR信道740發(fā)送RTR消息而請求下一個接收的碼字。糾錯塊450也適配于經(jīng)由RTS信道760發(fā)送RTS消息到輸出處理級。另外,取決于所選擇的本發(fā)明的實施方案,可能必須發(fā)送任何的RTR或RTS消息到延時塊460(經(jīng)由消息傳送信道750),以用于適當?shù)卣{(diào)節(jié)延時,使得被檢驗的和被糾正的接收的碼字在糾錯塊450處與錯誤矢量正確地同步。
從本發(fā)明得出的有利的功效在于,通過使得在譯碼器內(nèi)部功能塊之間能進行握手,功能塊能夠在它成為不活動時(也就是,它完成它的上一個程序過程)請求接收更多的要處理的數(shù)據(jù)。類似地,一個功能塊能夠發(fā)信號通知下游功能塊它已完成它的程序過程,以及無論何時下游功能塊能夠接收該結(jié)果時它就轉(zhuǎn)發(fā)該結(jié)果。例如,雖然典型地,出錯位組生成塊410利用固定的(和已知的)數(shù)目的時鐘周期來生成對于特定的長度的接收碼字的出錯位組,但錯誤多項式塊420是一個執(zhí)行時間可以變化的迭代過程。另外,典型地,錯誤位置塊430和錯誤大小塊440將花費固定的(和已知的)數(shù)目的時鐘周期,但如果確定了在碼字內(nèi)存在太多的錯誤以使得它是不可糾正的,則對于該碼字可停止進一步的處理,以及錯誤位置塊430和錯誤大小塊440可以通過經(jīng)由適當?shù)腞TR信道720,726發(fā)送RTR消息到錯誤多項式塊420而請求開始為下一個碼字工作。所以,錯誤位置塊430和錯誤大小塊440也可花費可變的數(shù)目的時鐘周期來完成。
應(yīng)當指出,圖7所示的本發(fā)明的實施例僅僅是可以不背離本發(fā)明的精神和范圍而被實施的幾個實施例中的一個實施例。例如,譯碼器的每個功能塊不必都有發(fā)送RTS和RTR消息的配備。而是,作為設(shè)計的選擇,可能希望只在出錯位組生成塊410與錯誤多項式塊420之間能夠進行握手。多個其他變例也是可能的。而且,雖然RTS和RTR消息被顯示和描述為通過RTS和RTR信道傳送的,但這樣的說明僅僅是邏輯說明,以及消息傳送信道可被合并到與數(shù)據(jù)信道分開的一個公共物理層消息傳送信道,或替換地,消息傳送信道可被合并到與數(shù)據(jù)信道本身相同的物理層。
按照本發(fā)明的原理,用戶可通過改變存儲器分配的大小而定制譯碼器的性能。所以,具有已分配的存儲器大小等于一個碼字的長度的實施例將具有硬件和功率上都經(jīng)濟的設(shè)計,但它一次只能處理一個碼字。具有已分配的存儲器大小大于一個碼字的長度的實施例可以在處理一個碼字時同時開始裝載第二碼字。具有已分配的存儲器大小為兩個碼字的長度的實施例將能夠同時處理兩個碼字,等等。當然,增加所含有的存儲器的大小,相應(yīng)地導(dǎo)致在硬件和功率方面更多的花費,但好處是譯碼處理的速度的相應(yīng)的增加,和等待時間減小,因為在給定的時間量內(nèi)可以處理更大數(shù)目的碼字。握手信號使得處理完全自動化,這樣,用戶只需要輸入譯碼器所利用的存儲器大小。通過控制這個單獨的參量,用戶可定制譯碼器在速度、功率和尺寸方面的性能(門計數(shù))。
圖8是按照本發(fā)明的原理的示例性里德-所羅門(RS)譯碼器的時序圖,它顯示與譯碼器使用塊內(nèi)握手有關(guān)的效率。時序圖810的上部顯示在不帶塊內(nèi)握手的典型譯碼器中處理所需要的時間。在這個方案下,碼字1(CW1)的處理在時間t0開始。在時間t1生成CW1出錯位組,以及其結(jié)果被傳送到錯誤多項式塊。錯誤多項式塊在時間t2完成CW1,等等,直至在時間t4完成CW1的處理。碼字2(CW2)的處理所以在時間t4開始。對于CW2繼續(xù)進行單功能順序處理,直至在時間t8,對于CW2的錯誤位置和錯誤大小計算完成為止。應(yīng)當指出,在不帶塊內(nèi)握手時處理兩個碼字總共花費(t8-t0)個單位的時間。
時序圖820的下部顯示在具有塊內(nèi)握手的譯碼器中的處理時間。應(yīng)當指出,通過實施存儲器足夠大到用于三個碼字,譯碼器可以一次同時處理三個碼字。由于每個塊在它完成處理的時刻時能夠接收更多的數(shù)據(jù),這個效率被達到,因為它通知以前的塊它已準備好。在這個說明性例子中,碼字3(CW3)的處理有時在時間t6和t7之間完成。
在糾錯譯碼器中的雙Chien搜索塊本發(fā)明的一個示例性實施例使用雙Chien搜索塊來實施糾錯過程。利用本發(fā)明的這個實施例的原理的譯碼器同時減小譯碼器等待時間與對譯碼器存儲裝置/存儲器的需要。
圖9是按照本發(fā)明的原理的、利用雙Chien搜索塊的里德-所羅門(RS)譯碼器的示例性實施例的方框圖。輸入是被轉(zhuǎn)發(fā)到出錯位組生成塊910的接收碼字。一旦出錯位組S(x)被出錯位組生成塊910計算出來,該出錯位組就被轉(zhuǎn)發(fā)到歐幾里得算法塊920。歐幾里得算法被使用來處理出錯位組S(x),以便生成錯誤位置多項式Λ(x)和錯誤大小多項式Ω(x)。
在本發(fā)明的本實施例中,新的Chien塊930被包含進來以便用來確定碼字中的錯誤的數(shù)目。一旦錯誤位置多項式Λ(x)被計算,Chien塊930就應(yīng)用Chien搜索算法來估計它的根。Chien搜索是一種強力算法,它計算多項式的所有可能的輸入值,然后確定哪些輸出等于零。如果在位置i出現(xiàn)錯誤,則以下的方程等于零Σj=0tΛjα-ij=0,]]>其中i=0..(n-1)公式6Chien塊930計算以上公式的i和j的所有的數(shù)值,并對該方程等于零的出現(xiàn)的次數(shù)計數(shù)。最終得到的數(shù)目是檢測到的錯誤數(shù)目。
如前所述,錯誤多項式必須同時為錯誤位置和錯誤大小而進行計算。由于對于實施Chien搜索個Forney算法需要相同的類型的硬件,兩種功能可被組合到同一個塊,被顯示為Chien/Forney塊940。在本實施方案中,在Chien搜索的輸出端處使用了兩個加法器。第一加法器相加偶數(shù)級的數(shù)值,以及另一個加法器相加奇數(shù)級的數(shù)值。為了形成最后的Chien搜索輸出,這兩個加法器的輸出然后進行相加,以及零檢測塊檢測根的位置。用于奇數(shù)級的加法器的輸出也被用于Forney算法。奇數(shù)級的和值代表Forney公式的分母。對這個和值計算其倒數(shù),然后把它與通過計算錯誤大小多項式所形成的分子值相乘。該輸出和該零檢測的輸出進行’與’運算,因為錯誤值只對于實際的錯誤位置是有效的(否則它們應(yīng)當被設(shè)置為零)。
因此,Chien/Forney塊940使用錯誤位置多項式和錯誤大小多項式來生成錯誤矢量,并把它轉(zhuǎn)發(fā)到糾錯塊950。錯誤矢量與碼字有相同的大小,以及在相應(yīng)于錯誤的位置上包含非零值。所有其他的位置包含零。加到糾錯塊950的另一個輸入是延時塊960的輸出。延時塊960取接收的碼字,以及輸出經(jīng)延時的相同的接收的碼字。在本實施例中,糾錯塊950是通過一起使用Galois區(qū)加法器954與LIFO塊952而實施的。在接收的碼字中的錯誤通過使用Galois區(qū)加法器954把接收的碼字加到錯誤矢量而被糾正。利用LIFO塊952是因為錯誤矢量是以接收的碼字相反的次序而生成的,所以必須對接收的碼字或錯誤矢量應(yīng)用LIFO運算,以使這兩個矢量的向上的字節(jié)的次序匹配。糾錯塊950的輸出是原先的碼字的譯碼器的估值。
里德-所羅門譯碼器只能糾正多達t個錯誤,其中所包括的奇偶校驗字節(jié)數(shù)是2t。如果檢測到大于t的個數(shù)的錯誤,則通常希望把接收的碼字不改變和不糾正地轉(zhuǎn)發(fā)到譯碼器輸出端,因為如果檢測到的錯誤數(shù)大于t,則碼字是無法糾正的。在現(xiàn)有技術(shù)Chien/Forney實施方案中,整個碼字必須在錯誤數(shù)目被確定之前處理。因此,運算要花費N個時鐘周期,其中N是碼字的長度。一旦完成了Chien/Forney計算,就確定錯誤的數(shù)目以及把它與t的數(shù)值進行比較。如果錯誤數(shù)小于或等于t,則來自Chien/Forney塊的錯誤值與接收的碼字進行“異或”(XOR)運算,以執(zhí)行糾錯,從而生成最后的譯碼器輸出。然而,如果錯誤數(shù)大于t,則接收的碼字不改變地作為譯碼器輸出被轉(zhuǎn)發(fā)。因此,現(xiàn)有技術(shù)方法需要存儲整個接收的碼字,直至由Chien/Forney塊進行的處理完成為止。這樣的方案也引入等待時間延時,因為在塊的整個N個時鐘循環(huán)完成之前譯碼器不能轉(zhuǎn)發(fā)輸出。
相反,本發(fā)明的本實施例把碼字提交到Chien算法兩次;第一次確定錯誤的數(shù)目,以及第二次確定錯誤的位置。因此,當Chien塊930檢測到錯誤數(shù)目大于閾值t時,接收的碼字作為譯碼器輸出被傳送,以及存儲器被釋放。相反,當錯誤數(shù)目小于或等于閾值t時,數(shù)據(jù)被傳送到Chien/Forney塊,以便確定實際的錯誤位置和大小。這樣的實施方案當結(jié)合圖6-8所示的本發(fā)明的握手實施例被利用時,將得到最佳化。這樣的組合使得Chien/Forney塊940能夠在Chien塊930正在確定下一個碼字的錯誤的數(shù)目的同時計算錯誤。因此,Chien/Forney塊940的輸出可被立即發(fā)送以及相應(yīng)的存儲器被釋放。
用于糾錯譯碼器的增強的Chien搜索單元如前所述,Chien/Forney塊接收兩個多項式作為輸入錯誤位置和錯誤大小多項式;以及生成錯誤矢量作為輸出。錯誤矢量是N字節(jié)的矢量,它代表譯碼器對接收的碼字中的錯誤的估值。錯誤矢量與接收的碼字進行“異或”(XOR)運算,以便糾錯而形成譯碼器對原先的碼字的估值。使用Chien/Forney塊以確定錯誤矢量的現(xiàn)有技術(shù)譯碼器以相對于碼字矢量相反的次序產(chǎn)生錯誤矢量。也就是,碼字和錯誤矢量在錯誤矢量(或相反地,碼字)沒有經(jīng)過進一步處理時,不能進行XOR運算。典型地,這個進一步處理是對錯誤矢量或接收碼字執(zhí)行LIFO(后進先出)運行,目的是顛倒輸入的次序,使得碼字和錯誤矢量可進行XOR運算。不幸地,這引入N個時鐘周期的延時,其中N是碼字中的字節(jié)數(shù)目。另外,某些現(xiàn)有技術(shù)實施方案使用的存儲器的大小大于單個碼字的長度,因此需要存儲器分解成兩個或多個分開的LIFO時鐘。這樣做會造成尋址的復(fù)雜性,而且也限制了存儲器尺寸為碼字長度的整數(shù)倍。
本發(fā)明的一個示例性實施例是新的Chien搜索單元,它產(chǎn)生與碼字正確地同步的輸出。也就是,錯誤矢量或碼字矢量在進行XOR運算之前都不需要顛倒,因此消除了對于LIFO塊或其他倒相裝置的需要。所以,得到較短的等待時間間隔,因為不需要N時鐘周期的延時。而且,本發(fā)明的本實施例簡化了尋址方案(相對于現(xiàn)有技術(shù)),以及支持僅為碼字長度整倍數(shù)之外的其它存儲器大小。例如,可以使用具有碼字長度的兩倍半的存儲器,它允許譯碼器在下一個碼字的一部分被裝載的同時處理兩個碼字。
圖10是典型的現(xiàn)有技術(shù)Chien搜索單元1000的方框圖,它是用于Chien搜索和Chien/Forney塊的基本構(gòu)建塊。Chien搜索塊用來計算錯誤位置多項式Λ,以便找到它的根。根的位置相應(yīng)于接收的碼字中出錯的位置。圖10的Chien搜索單元被使用來實施以下方程xi=Σj=0tΛjα-ij,]]>其中i=0..(N-1) 公式7方程7的計算導(dǎo)致碼字中的相應(yīng)于錯誤的字節(jié)位置處的零值。Chien搜索單元1000是用來實施以上方程的單個級的硬件結(jié)構(gòu)。每個級處理錯誤位置多項式Λ的單個系數(shù),因此總共有(t+1)級(因為錯誤位置多項式能夠具有的最大階數(shù)為t,而階數(shù)為t的多項式具有(t+1)個系數(shù))。
Chien搜索單元1000以迭代方式處理錯誤位置多項式系數(shù)。在第一迭代中,復(fù)接器1020接收相應(yīng)于正在被處理的碼字的適當?shù)亩囗検较禂?shù)1010,以及把多項式系數(shù)發(fā)送到寄存器1030。在以后的時鐘周期,寄存器的輸出首先被轉(zhuǎn)發(fā)到乘法器1040,在其中它被乘以α-j,然后被復(fù)接器1020發(fā)送回寄存器而被存儲。這個處理過程在全部N個時鐘周期內(nèi)執(zhí)行?;剡^來參照方程7,下標i表示迭代數(shù),以及下標j表示Chien搜索單元的級。也就是,j的數(shù)值從0增加到t,因此總共有以硬件實施的(t+1)個Chien搜索單元的級。
作為說明的例子,假設(shè)該單元代表第二級(j=1)。因此,在每個時鐘周期,寄存器輸出被乘以α-1,以及結(jié)果被存儲回寄存器。這產(chǎn)生以下的序列λ+λα-1X+(λα-1)α-1X2+((λα-1)α-1)α-1X3+...
其中Xn代表n個時鐘周期的延時。
通過合并項目,產(chǎn)生的最后的序列是λ+λα-1X+λα-2X2+λα-3X3+...+λα-(N-1)XN-1與這個實施方案有關(guān)的問題是,錯誤位置是以相應(yīng)的碼字字節(jié)的顛倒的次序產(chǎn)生的,因此,它們在加到碼字用于糾錯之前需要由LIFO塊進行顛倒。LIFO塊是包含多個寄存器的硬件存儲單元。一旦所有的寄存器被填滿,LIFO塊就發(fā)送出它的輸出。在輸入中的最后的元素成為輸出中的第一元素,等等。對于使用LIFO塊有兩個問題。一個問題是,它是大的存儲裝置/存儲器元件,因此它增加門計數(shù)和IC的功耗。另一個問題是,LIFO塊引入N時鐘周期的等待時間。這個等待時間的發(fā)生是因為LIFO塊初始填滿時要花費N個時鐘周期,而在最后一個元素讀到LIFO之前不產(chǎn)生輸出。
圖11是按照本發(fā)明的原理的改進的Chien搜索單元1100的方框圖,在其中對存儲器的要求和延時都減小了。本發(fā)明的本實施例的基本原理是使得Chien搜索塊能夠產(chǎn)生一個序列,它在數(shù)學上等價于通過標準Chien搜索生成的序列,但是具有以相反的次序生成的系數(shù)(此后稱為“正常化的次序”)。本實施例實現(xiàn)以下兩個方程(方程10和11),用來生成用于碼字糾正的正?;涡虻腻e誤位置。
xi=Σj=0tΛjα-j(N-1)]]>其中i=0 公式8xi=Σj=0tΛjαj]]>其中i=1..(N-1) 公式9回想起圖10的現(xiàn)有技術(shù)Chien搜索單元1000以迭代方式處理錯誤位置多項式系數(shù),從’0’的α指數(shù)值開始,并在每個時鐘周期從’0’遞減,直至指數(shù)減小到-j(N-1)的數(shù)值為止。對于圖11的Chien搜索單元1100的本實施例,從α指數(shù)的數(shù)值從-j(N-1)的數(shù)值開始,并在每個時鐘周期加增量,直至指數(shù)達到0為止。
所以,在第一時鐘周期期間,多項式系數(shù)1110由預(yù)乘法器1150乘以α-j(N-1)(其中j是級數(shù)),被轉(zhuǎn)發(fā)到復(fù)接器1120,以及被發(fā)送到寄存器1130以用于存儲。在以后的各時鐘周期,寄存器1130的輸出被轉(zhuǎn)發(fā)到乘法器1140,在其中它被乘以αj,然后被復(fù)接器1120發(fā)送回寄存器。
作為說明例,假設(shè)該單元代表第二級(j=1)。這產(chǎn)生以下序列λα-(N-1)X+(λα-(N-1))αX2+((λα-(N-1))α)αX3+...
合并項目,產(chǎn)生以下序列λα-(N-1)+λα-(N-2)X+λα-(N-3)X2+...+λα-1XN-2+λXN-1應(yīng)當指出,在這個序列中產(chǎn)生的系數(shù)是與圖10的標準Chien搜索單元1000產(chǎn)生的系數(shù)相同的,除了它們現(xiàn)在是以顛倒的次序(正如由延時系數(shù)的顛倒次序表示的)。圖11的Chien搜索單元1100確實利用額外的Galois區(qū)乘法器(不是一個而是兩個),但它們是小的,以及用硬件實施是便宜的。從不再需要LIFO塊用于顛倒和從避免由于填充LIFO所需要的延時所得到的優(yōu)點和功效超過了提供附加的Galois區(qū)乘法器給每個Chien搜索單元的缺點。
在單個塊內(nèi)組合Chien搜索和Forney算法是共同的設(shè)計實踐,因為這兩個算法都需要執(zhí)行類似的功能。結(jié)合圖11顯示的和描述的本發(fā)明的本實施例的原理也同樣應(yīng)用到Forney塊,因為Forney算法通過使用極其類似的硬件處理錯誤大小多項式。本領(lǐng)域技術(shù)人員將會看到,本發(fā)明的原理可以擴展到Forney塊單元和Chien/Forney塊單元的設(shè)計。
許多現(xiàn)有的系統(tǒng)使用“現(xiàn)成的”集成電路,這些電路對里德-所羅門碼進行編碼和譯碼。這些IC往往支持一定程度的可編程性(例如,RS(255,k)其中t=1到16碼元)。最新的趨勢是趨向于VHDL或Verilog設(shè)計(邏輯核心或智能特性核心)。它們比起標準IC具有多個優(yōu)點。邏輯核心可以與其他的VHDL或Verilog部件集成在一起,以及被合成為FPGA(現(xiàn)場可編程門陣列)或ASIC(專用集成電路)--這使能進行所謂的“芯片上的系統(tǒng)”設(shè)計,其中多個模塊可被組合在單個IC中。取決于生產(chǎn)規(guī)模,邏輯核心可提供比起“標準”IC常?;ㄙM低得多的系統(tǒng)成本。
雖然本發(fā)明是在硬件實施方案方面描述的,但本發(fā)明的原理不應(yīng)當被看作為限于這一點。迄今為止,實時的軟件實施方案即使對最簡單的里德-所羅門碼(即,具有小的t的碼)都需要太多的計算能力。用軟件實施里德-所羅門碼的主要的困難在于,通用處理器不支持Galoi區(qū)算術(shù)運算。例如,用軟件實施Galois區(qū)乘法需要一次對于0的測試,兩個對數(shù)查找表,模加法和反對數(shù)查找表。然而,仔細的設(shè)計連同處理器性能的提高,意味著軟件實施方案可以以相當高的數(shù)據(jù)速率運行。
雖然本發(fā)明是藉助于示例性實施例和/或配置被描述的,但本發(fā)明可被進一步修改而不背離揭示內(nèi)容的精神和范圍。所以,本專利申請打算覆蓋通過使用本發(fā)明的一般原理所作出的本發(fā)明的任何變化、使用、或調(diào)整。而且,本專利申請打算覆蓋像來自于本發(fā)明涉及到的已知的或傳統(tǒng)的實踐的以及屬于附屬權(quán)利要求的范圍的這樣一類不同于本揭示內(nèi)容的部分。
權(quán)利要求
1.一種用于在碼字內(nèi)執(zhí)行數(shù)據(jù)糾錯的譯碼器,包括用于從所述碼字計算出錯位組的裝置(910);用于從所述出錯位組生成錯誤多項式的裝置(920);用于從所述錯誤多項式確定相應(yīng)于所述碼字中的數(shù)據(jù)錯誤的數(shù)目的數(shù)值的裝置(930);用于從所述錯誤多項式確定錯誤位置的裝置(940);以及用于從所述錯誤多項式計算錯誤大小的裝置(950),所述譯碼器的特征在于,所述用于確定相應(yīng)于數(shù)據(jù)錯誤數(shù)目的數(shù)值的裝置(930)是對相應(yīng)于第一碼字的數(shù)據(jù)而執(zhí)行的,而所述用于確定所述錯誤位置的裝置(940)和用于確定所述錯誤大小的裝置(940)是對相應(yīng)于第二碼字的數(shù)據(jù)而執(zhí)行的。
2.權(quán)利要求1的譯碼器,其特征還在于,如果相應(yīng)于所述碼字內(nèi)的數(shù)據(jù)錯誤數(shù)目的數(shù)值大于閾值,則所述碼字作為所述譯碼器的輸出而被轉(zhuǎn)發(fā)。
3.權(quán)利要求2的譯碼器,還包括一種裝置(950),該裝置(950)響應(yīng)于接收到所述碼字、所述錯誤位置、和所述錯誤大小,用于糾正在所述碼字內(nèi)的錯誤,以及將結(jié)果作為所述譯碼器的所述輸出而進行轉(zhuǎn)發(fā)。
4.權(quán)利要求3的譯碼器,其特征還在于,如果相應(yīng)于所述碼字內(nèi)的數(shù)據(jù)錯誤數(shù)目的數(shù)值小于或等于閾值,則相應(yīng)于所述碼字的所述錯誤位置和所述錯誤大小被完全地計算出來。
5.權(quán)利要求1的譯碼器,其中所述用于生成錯誤多項式的裝置(920)是通過使用歐幾里得算法塊實現(xiàn)的。
6.權(quán)利要求1的譯碼器,其中所述用于確定相應(yīng)于所述碼字內(nèi)數(shù)據(jù)錯誤數(shù)目的數(shù)值的裝置(930)是通過使用第一Chien塊實現(xiàn)的。
7.權(quán)利要求6的譯碼器,其中所述用于從所述錯誤多項式確定錯誤位置的裝置(940)是通過使用第二Chien塊實現(xiàn)的。
8.權(quán)利要求7的譯碼器,其中所述用于從所述錯誤多項式確定錯誤大小的裝置(940)是通過使用Forney算法實現(xiàn)的。
9.權(quán)利要求6的譯碼器,其中所述用于從所述錯誤多項式確定錯誤位置的裝置(940)和所述用于從所述錯誤多項式確定錯誤大小的裝置(940)是通過使用Chien/Forney塊實現(xiàn)的。
10.在用于碼字糾錯的譯碼器中的一種用于確定錯誤位置和錯誤大小的方法,包括以下步驟計算相應(yīng)于碼字錯誤的數(shù)目的數(shù)值;如果相應(yīng)于碼字錯誤的數(shù)目的所述數(shù)值大于閾值,則將所述碼字作為譯碼器的輸出而進行轉(zhuǎn)發(fā);以及如果相應(yīng)于碼字錯誤的數(shù)目的所述數(shù)值小于或等于閾值,則確定相應(yīng)于所述碼字的所述錯誤位置和所述錯誤大小,所述方法的特征在于,在對相應(yīng)于第一碼字的數(shù)據(jù)執(zhí)行相應(yīng)于所述碼字錯誤數(shù)目的所述數(shù)值的計算操作的同時,也對相應(yīng)于第二碼字的數(shù)據(jù)并發(fā)地執(zhí)行確定所述錯誤位置和所述錯誤大小的操作。
11.權(quán)利要求10的方法,其特征還在于,所述計算相應(yīng)于碼字錯誤數(shù)目的數(shù)值的操作是通過使用第一Chien搜索塊實現(xiàn)的。
12.權(quán)利要求11的方法,其特征還在于,所述確定所述錯誤位置的操作是通過使用第二Chien搜索塊實現(xiàn)的。
13.權(quán)利要求12的方法,其特征還在于,所述確定所述錯誤大小的操作是通過使用Forney算法塊實現(xiàn)的。
14.權(quán)利要求11的方法,其特征還在于,所述確定所述錯誤位置和所述錯誤大小的操作是通過使用Chien/Forney塊實現(xiàn)的。
15.用于碼字糾錯的譯碼器,包括用于計算相應(yīng)于碼字錯誤的數(shù)目的數(shù)值的裝置;用于在相應(yīng)于碼字錯誤的數(shù)目的所述數(shù)值大于所述閾值將所述碼字作為所述譯碼器的輸出轉(zhuǎn)發(fā)的裝置;以及用于在相應(yīng)于碼字錯誤的數(shù)目的所述數(shù)值小于或等于所述閾值時確定相應(yīng)于所述碼字的所述錯誤位置和所述錯誤大小的裝置(940),所述譯碼器的特征在于,所述用于計算相應(yīng)于所述數(shù)據(jù)錯誤數(shù)目的所述數(shù)值的裝置(930)是對相應(yīng)于第一碼字的數(shù)據(jù)而執(zhí)行的,而所述用于確定所述錯誤位置和所述錯誤大小的裝置(940)是對相應(yīng)于第二碼字的數(shù)據(jù)而執(zhí)行的。
16.權(quán)利要求15的譯碼器,其特征還在于,所述用于計算相應(yīng)于所述碼字錯誤數(shù)目的所述數(shù)值的裝置是通過使用第一Chien搜索塊實現(xiàn)的。
17.權(quán)利要求16的譯碼器,其特征還在于,所述用于確定所述錯誤位置的裝置是通過使用第二Chien搜索塊實現(xiàn)的。
18.權(quán)利要求17的譯碼器,其特征還在于,所述用于確定所述錯誤大小的裝置是通過使用Forney算法塊實現(xiàn)的。
19.權(quán)利要求16的譯碼器,其特征還在于,所述用于確定所述錯誤位置和所述錯誤大小的裝置是通過使用Chien/Forney塊實現(xiàn)的。
全文摘要
一種譯碼器和譯碼方法,其中出錯位組生成器(410)從錯誤的碼字計算出錯位組矢量,錯誤多項式生成器(420)從出錯位組矢量計算錯誤位置多項式,錯誤位置生成器(430)從錯誤這多項式確定錯誤位置,錯誤大小生成器(440)從錯誤這多項式計算錯誤大小,以及校正碼字生成器(450)根據(jù)錯誤位置和錯誤大小校正碼字。在譯碼器內(nèi)部塊消息傳送方案中,一個或多個部件(410,420,430,440,450)生成不活動消息(640,650),以便發(fā)信號告知具有處理相應(yīng)于下一個碼字的能力。在雙Chien搜索塊(930,940)實施方案中,Chien塊(930)用來確定在特定的碼字中的錯誤的數(shù)目,這與由Chien/Forney塊(940)執(zhí)行的錯誤位置與大小的計算是分開的。
文檔編號G11B20/18GK1623280SQ03802657
公開日2005年6月1日 申請日期2003年1月22日 優(yōu)先權(quán)日2002年1月23日
發(fā)明者L·R·小利特溫, D·韋萊斯 申請人:湯姆森許可公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
临潭县| 马关县| 华蓥市| 枝江市| 澄城县| 镇赉县| 自贡市| 姜堰市| 舟曲县| 彭州市| 舞阳县| 视频| 土默特右旗| 昌都县| 永宁县| 景洪市| 泗洪县| 苏尼特右旗| 高安市| 田林县| 合川市| 濮阳市| 莱芜市| 阿拉善左旗| 防城港市| 临颍县| 汾西县| 漳浦县| 汤阴县| 正镶白旗| 怀远县| 兴安盟| 土默特右旗| 二连浩特市| 承德县| 清水县| 喀喇| 得荣县| 宜君县| 会同县| 霞浦县|