專(zhuān)利名稱(chēng):維特比譯碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明系一種如權(quán)利要求第1項(xiàng)所述之用來(lái)解回旋碼的譯碼器。
背景技術(shù):
在以下的說(shuō)明中提及的現(xiàn)有技術(shù)系取材自下列專(zhuān)業(yè)文獻(xiàn)[1]G.D.Forney,jr.“The Viterbi AlAlgorithm”;Proc.IEEE,Vol.61,No.3,March 1973,pp.268-278. P.Black等人“A 140-Mb/s,32-State,基數(shù)-4 ViterbiDecoder”;IEEE Journal OF Solid-State Circuits,Vol.27,No.12,December 1992,pp.1877-1885. G.Fettweis等人“A 100-Mb/s Viterbi Decoder ChipNovel Architecture and its Realization”,Proc.IEEE ICC,Vol.2,Atlanta August 1990,pp.1877-1885. A.Yeng等人“A 210Mb/s基數(shù)-4 Bit-level PipelinedViterbi Decoder”;1995 IEEE International Solid-State CircuitsConference,pp.88-89. V.S.Gierenz等人“A 550Mb/s基數(shù)-4 Bit-levelPipelined Viterbi Decoder”;Proc.IEEE Inter.Conf.OnApplication-Specific System,Architectures,and Processors;Boston,July 2001,pp.195-201. R.Krambeck等人“High-Speed Compact Circitus withCMOS”;IEEE Journal OF Solid-State Circuits Vol.SC-17,No.3,June 1992,pp.614-619.
使用一種所謂的回旋碼技術(shù)將一連串的數(shù)字?jǐn)?shù)據(jù)從一信息源經(jīng)由一受干擾的信道傳輸?shù)揭恍畔⒔邮掌鞯姆绞揭呀?jīng)變得愈來(lái)愈普遍?;匦幋a器會(huì)按照一選定的函數(shù)將來(lái)自信息源的原始序列的每一單元或”字”與特定數(shù)量的各個(gè)直接在前的字連結(jié)在一起,以便輸出一連串傳輸字,而且這些傳輸字的位寬度均大于原始序列中的字的位寬度。由于在這些傳輸字中有冗余碼的存在,因此在接收端接收的字可以辨識(shí)并修正傳輸字中可能存在的錯(cuò)誤。
如果能夠明確定義編碼的連結(jié)函數(shù)被辨認(rèn)出來(lái),就可以確定一組由兩個(gè)或多個(gè)連續(xù)的接收字與編碼的格式的”相稱(chēng)程度”。為此一回旋碼必須將字組與所有的”許可”字組作一比較,此處所謂的”許可”字組是指在編碼器的運(yùn)作完全沒(méi)有錯(cuò)誤或缺失而且傳輸信道也沒(méi)有受到任干擾的情況下,理論上(包括所有可能的原始序列)可以接收到的所有字組。利用前述的比較結(jié)果可以計(jì)算出所謂的”計(jì)量”,這些計(jì)量的大小可以指出出接收字組與各個(gè)許可字組靠的有多近或是離的有多遠(yuǎn),也就是說(shuō)可以指出接收字組有多大的可能性或是有多大的不可能性是來(lái)自被比較的字組。下一比較步驟是將經(jīng)上述方式獲得的所有計(jì)量拿來(lái)作一比較,并將被計(jì)算而得的計(jì)量評(píng)定為具有最大可能性(機(jī)率最大)的許可字組選定為有效的字組。
作為計(jì)量計(jì)算的基礎(chǔ)的距離函數(shù)最好能夠與所使用傳輸信道的特性及所使用的調(diào)制格式的特性相配合。此項(xiàng)作業(yè)是以機(jī)率理論分析為基礎(chǔ)完成的。距離函數(shù)的一種可能的設(shè)計(jì)方式是當(dāng)比較對(duì)象愈靠近,計(jì)量就變得愈小。在此情況下,使Mertic變得最小的許可字組就會(huì)被選定為有效字組,所以這種方式是經(jīng)由最小值選擇進(jìn)行譯碼。距離函數(shù)的另外一種可能的設(shè)計(jì)方式是當(dāng)比較對(duì)象愈靠近,計(jì)量就變得愈大。在此情況下,使Mertic變得最大的許可字組就會(huì)被選定為有效字組,所以這種方式是經(jīng)由最大值選擇進(jìn)行譯碼。
在考量過(guò)所有想象得到可能可以實(shí)現(xiàn)以上說(shuō)明的回旋譯碼的運(yùn)算法之后,目前在實(shí)務(wù)上發(fā)現(xiàn)一種所謂的維特比運(yùn)算法(Viterbialgorithm)是一種可行的方式,這種運(yùn)算方法的一般原理在[1]中有詳細(xì)的說(shuō)明。本發(fā)明的內(nèi)容是提出一種以維特比運(yùn)算法工作的維特比譯碼器的電路構(gòu)造。為了便于說(shuō)明本發(fā)明的內(nèi)容,以下先配合附圖1-10說(shuō)明以現(xiàn)有技術(shù)設(shè)計(jì)之維特比譯碼器的基本原理及構(gòu)造。
維特比運(yùn)算法是以一種所謂的”Trellis”(格子欄)為基礎(chǔ),這種格子欄可以明確且唯一的以一種分支圖形的形式描述所使用的回旋碼。附圖1顯示一回旋碼的格子欄,這個(gè)回旋碼從一每一單元只含一位的原始序列形成一每一單元含有兩個(gè)位的傳輸序列。原始序列的兩個(gè)最新的位的4種可能的狀態(tài)(00,01,10,11)被稱(chēng)為”格子欄狀態(tài)”,并沿著縱坐標(biāo)軸分別被標(biāo)示在坐標(biāo)A,B,C,D上。沿著橫坐標(biāo)軸則標(biāo)示一循環(huán)周期的時(shí)間記號(hào)t0,t1......等。在格子欄的狀態(tài)圖上的圓圈代表節(jié)點(diǎn),這些節(jié)點(diǎn)是由行(沿著橫坐標(biāo)軸的方向,也就是沿著時(shí)間軸的方向)及列(沿著縱坐標(biāo)軸的方向)構(gòu)成的矩陣所形成。每一節(jié)點(diǎn)都代表一由節(jié)點(diǎn)在圖形中的行位置(縱坐標(biāo))確定的格子欄狀態(tài)。從每一列的4個(gè)節(jié)點(diǎn)中的每一節(jié)點(diǎn)都會(huì)分出兩個(gè)通往下一列的兩個(gè)節(jié)點(diǎn)并以箭號(hào)標(biāo)示的分支。這就是”基數(shù)-2”-格子欄這個(gè)名稱(chēng)的由來(lái)。
在附圖1中是將編碼的連結(jié)規(guī)則以書(shū)寫(xiě)在分支箭號(hào)的起點(diǎn)位置及終點(diǎn)位置的二進(jìn)制數(shù)(圖中以細(xì)線(xiàn)條書(shū)寫(xiě)的數(shù)字)表示。位于一分支的起點(diǎn)位置的個(gè)位數(shù)的二進(jìn)制數(shù)(0或1)代表原始序列的一新位的二進(jìn)制值,在以下的說(shuō)明中將稱(chēng)這個(gè)個(gè)位數(shù)的二進(jìn)制數(shù)為”輸入數(shù)”。位于一分支的終點(diǎn)位置的兩位數(shù)的二進(jìn)制數(shù)則是說(shuō)明因?yàn)樵夹蛄械妮斎霐?shù)產(chǎn)生了那一種新的輸出狀態(tài)(傳輸序列的兩個(gè)新位的二進(jìn)制值),在以下的說(shuō)明中將稱(chēng)這個(gè)兩位數(shù)的二進(jìn)制數(shù)為”輸出數(shù)”。例如,如果格子欄狀態(tài)(也就是原始序列的兩個(gè)最新的位)等于00(一A節(jié)點(diǎn)),同時(shí)一新的位被加到二進(jìn)制值1,就會(huì)形成新的格子欄狀態(tài)01(輸入值1的分支從一列的A節(jié)點(diǎn)到下一列的B節(jié)點(diǎn)),新的輸出值則變成11(也就是如該分支終點(diǎn)位置所記載的數(shù)字)。但是,如果原始序列的新位的值是0,則新的格子欄狀態(tài)也是等于00(分支從一列的A節(jié)點(diǎn)到下一列的A節(jié)點(diǎn)),所形成的新的輸出值為00。以類(lèi)似的方式也可以從附圖1中的說(shuō)明文字辨識(shí)出經(jīng)由回旋碼確定的關(guān)系,也就是說(shuō)一方面可以辨識(shí)出其它三種可能的格子欄狀態(tài)中的每一種格子欄狀態(tài)與原始序列的新位之間的關(guān)系,另一方面也可以辨識(shí)出所產(chǎn)生的新的輸出數(shù)。
兩個(gè)相鄰列的節(jié)點(diǎn)之間的分支路徑及填寫(xiě)在每一對(duì)列組的分支上的輸入數(shù)及輸出數(shù)都完全相同,這些資料唯一且完整的描述回旋碼。因此只需顯示一對(duì)列組作為描述編碼的格子欄。但是附圖1卻沿著時(shí)間軸顯示多個(gè)依序出現(xiàn)的列,也就是顯示格子欄隨時(shí)間開(kāi)展的情況,目的是為了顯示從一一位寬度的原始序列到傳輸序列的兩位輸出數(shù)的變化情況。
茲以一位順序?yàn)?-1-1-0...的原始序列為例(如圖形上方的表格所示),并假定在原始序列的第一位之前的格子欄狀態(tài)等于00(第一列的A節(jié)點(diǎn))為經(jīng)確定的初始狀態(tài)。這個(gè)作為例子的原始序列的第一位是0,這會(huì)導(dǎo)致產(chǎn)生一新的格子欄狀態(tài)00(第二個(gè)列的A節(jié)點(diǎn)),以及傳輸序列的第一輸出數(shù)00。原始序列的第二個(gè)位是1,這會(huì)導(dǎo)致產(chǎn)生一新的格子欄狀態(tài)01(第三個(gè)列的B節(jié)點(diǎn)),以及傳輸序列的第二個(gè)輸出數(shù)11。原始序列的第三個(gè)位也是1,這會(huì)導(dǎo)致產(chǎn)生一新的格子欄狀態(tài)11(第四個(gè)列的D節(jié)點(diǎn)),以及傳輸序列的第三個(gè)輸出數(shù)01。原始序列的第四個(gè)位是0,這會(huì)導(dǎo)致產(chǎn)生一新的格子欄狀態(tài)10(第五個(gè)列的C節(jié)點(diǎn)),以及傳輸序列的第四個(gè)輸出數(shù)01。也就是說(shuō)從原始序列0-1-1-0-...會(huì)形成如圖形上方的表格所示的經(jīng)過(guò)編碼的傳輸序列00-11-01-10-...。在前述編碼過(guò)程中被通過(guò)的分支共同形成一條能夠反映原始序列之特性的橫越格子欄圖形的”路徑”,附圖1中是以粗黑線(xiàn)繪出這條”路徑”。
在進(jìn)行譯碼時(shí),可以經(jīng)由分析傳輸序列接收到的版本在接收端對(duì)這條特性路徑進(jìn)行重組。這個(gè)步驟用到的維特比運(yùn)算法將在后面以附圖1所示的編碼情況為例加以說(shuō)明。
首先假設(shè)傳輸序列的輸出數(shù)是以?xún)晌蛔值臄?shù)字方式被傳輸。在這種情況下,傳輸錯(cuò)誤唯一可能造成的影響是接收序列中的個(gè)別位可能會(huì)被顛倒。當(dāng)每一接收記號(hào)都出現(xiàn)的時(shí)候,也就是說(shuō)在每一兩位字都出現(xiàn)在接收序列中的時(shí)候,在如附圖1中的格子欄內(nèi)的相鄰列之間的所有分支(共8個(gè))相對(duì)于這個(gè)接收記號(hào)的”分支”計(jì)量就會(huì)被計(jì)算出來(lái)。這個(gè)計(jì)算的基礎(chǔ)是標(biāo)示在附圖2中的所有分支的終點(diǎn)位置的輸出數(shù)。如果如假設(shè)的情況所言,傳輸錯(cuò)誤只可能以位于顛倒的方式出現(xiàn),則只需計(jì)算在被拿來(lái)比較的輸出數(shù)中一致的位的數(shù)量作為分支計(jì)量即已足夠(相當(dāng)于2減去漢明碼距(Hamming distance))。如果所有的位均一致,則分支計(jì)量就等于2,如果只有一位一致,則分支計(jì)量就等于1,如果所有的位都不一致,則分支計(jì)量就等于0。
附圖1將十進(jìn)制數(shù)的分支計(jì)量(ZM)以粗體字標(biāo)示在所有可能會(huì)被一切可能的接收序列經(jīng)過(guò)的分支上,不過(guò)前提是以格子欄狀態(tài)00(附圖1第一列的A節(jié)點(diǎn))作為初始狀態(tài),也就是說(shuō)要從如前面定義過(guò)的初始狀態(tài)開(kāi)始。因此從一開(kāi)始就將所有起源于第一列的節(jié)點(diǎn)B、C、以及D的路徑上的所有分支排除在外。也就是說(shuō),這些分支都”不可能”是輸入分支,所以從頭到尾都不需要考慮這些分支的分支計(jì)量,因此附圖1將這些分支的分支計(jì)量以”X”標(biāo)示。
接收端的第一工作步驟,也就是第一接收記號(hào)的處理,是從第一列的A節(jié)點(diǎn)開(kāi)始。在第二個(gè)列中只有節(jié)點(diǎn)A及節(jié)點(diǎn)B”可能”會(huì)有輸入分支,而且說(shuō)的更精確一點(diǎn)就是只會(huì)有一輸入分支。這些分支的計(jì)量會(huì)以相關(guān)的節(jié)點(diǎn)”路徑計(jì)量(PM)”(Path計(jì)量)的名稱(chēng)被儲(chǔ)存起來(lái),也就是附圖1以粗體字填寫(xiě)在代表節(jié)點(diǎn)的圓圈內(nèi)的十進(jìn)制數(shù)。
接下來(lái)的每一步驟都要為所有的節(jié)點(diǎn)計(jì)算出新的路徑計(jì)量并加以?xún)?chǔ)存。為了計(jì)算出填寫(xiě)在代表相應(yīng)的格子欄節(jié)點(diǎn)的圓圈內(nèi)的各個(gè)新的路徑計(jì)量,需要計(jì)算出兩個(gè)代數(shù)和分別為節(jié)點(diǎn)上的兩個(gè)輸入分支的每一分支計(jì)算出這個(gè)分支的分支計(jì)量及這個(gè)分支的原始節(jié)點(diǎn)的路徑計(jì)量的代數(shù)和。然后將這兩個(gè)代數(shù)和加以比較,并將其中較大的一代數(shù)和作為相應(yīng)節(jié)點(diǎn)的累加的新路徑計(jì)量加以?xún)?chǔ)存。只有產(chǎn)生這個(gè)新的路徑計(jì)量的輸入分支會(huì)作為相應(yīng)之節(jié)點(diǎn)的”幸存者”(Survivor)被保留下來(lái),以便供重組特性路徑之用。
如果有一”不可能”的輸入分支匯入一節(jié)點(diǎn),這個(gè)分支當(dāng)然必須不會(huì)對(duì)路徑計(jì)量計(jì)算造成任何影響。要達(dá)到這個(gè)要求是很簡(jiǎn)單的,例如只要在進(jìn)行第一步驟(在第一列的節(jié)點(diǎn)上)之前,將第一列的起始節(jié)點(diǎn)處的路徑計(jì)量設(shè)定為比第一列的其它節(jié)點(diǎn)處的路徑計(jì)量至少大上一最大可能的分支計(jì)量,以附圖1的情況為例就是將第一列的起始節(jié)點(diǎn)處的路徑計(jì)量設(shè)定為比第一列的其它節(jié)點(diǎn)處的路徑計(jì)量至少大上2。例如,如果將第一列的起始節(jié)點(diǎn)的路徑計(jì)量設(shè)定為0(如附圖1所示的情況),則第一列的其它節(jié)點(diǎn)的路徑計(jì)量都必須被設(shè)定為等于或小于負(fù)數(shù)2的數(shù)值。當(dāng)然也可以將起始節(jié)點(diǎn)的路徑計(jì)量設(shè)定為一大于或等于2的數(shù)值,并將其它節(jié)點(diǎn)的路徑計(jì)量都設(shè)定為0。
從附圖1中填為在格子欄節(jié)點(diǎn)中的數(shù)字可以看出,特性路徑可以由后往前被重組,其作法是從一列中具有最大的路徑計(jì)量的節(jié)點(diǎn)開(kāi)始退回在前一列中具有最大的路徑計(jì)量的節(jié)點(diǎn)。這樣原始序列就會(huì)重新還原這個(gè)路徑的分支的輸入數(shù)序列。
由于編碼有冗余量的存在,因此特性路徑對(duì)傳輸錯(cuò)誤有某種程度的承受能力。例如,假設(shè)在接收第三個(gè)傳輸記號(hào)的第一位0的時(shí)候,因傳輸錯(cuò)誤而收到1(或是被誤計(jì)成1),如附圖1中括號(hào)()所示。在進(jìn)行到第三個(gè)譯碼步驟時(shí),就會(huì)產(chǎn)生記載在括號(hào)內(nèi)的分支計(jì)量,進(jìn)行導(dǎo)致括號(hào)內(nèi)標(biāo)示的路徑計(jì)量的改變狀況。從附圖1可以看出,經(jīng)過(guò)特性路徑的重組后,即使是發(fā)生上述錯(cuò)誤也可以得到和沒(méi)有發(fā)生傳輸錯(cuò)誤時(shí)相同的結(jié)果。也就是說(shuō)盡管發(fā)生上述的傳輸錯(cuò)誤,原始序列仍然可以被正確的還原出來(lái)。
在許多情況下,傳輸序列并不是以數(shù)字格式被傳輸,而是以模擬值的格式被傳輸。這表示對(duì)在附圖1中的原始序列0-1-1-0而言,回旋編碼器輸出的數(shù)字字00-11-01-01會(huì)被轉(zhuǎn)換成相應(yīng)的模擬值0-3-1-1,以便如附圖2所示將傳輸電壓調(diào)整到介于0到3伏特之間。這個(gè)電壓在接收端會(huì)以同步化的方式被掃描。由于在傳輸信道中存在無(wú)可避免的變形/失真及其它干擾,描值無(wú)法高度準(zhǔn)確的與傳輸序列的數(shù)值一致,而是會(huì)與傳輸序列的數(shù)值存在或多或少的偏差。如附圖2的例子所示,從傳輸序列0-3-1-1酬得的接收端掃描值為0.2-2.7-1.6-1.1。
在附圖2的情況中以維特比運(yùn)算法進(jìn)行編碼的過(guò)程與在附圖1中的過(guò)程十分類(lèi)似,唯一不同之處是路徑計(jì)量并不是由漢明碼距(Hamming distance)的二進(jìn)制補(bǔ)碼計(jì)算而得,而是以算術(shù)方式計(jì)算而得。例如可以經(jīng)由以下的方式計(jì)算出路徑計(jì)量先計(jì)算出輸出數(shù)(附圖2中的十進(jìn)制數(shù))及接收掃描值之間的差異量,然后將這個(gè)差異量減去任意一大于或等于最大可能的掃描值的固定數(shù)值。附圖以是以3作為這個(gè)固定的數(shù)值,然后將按照這種方法計(jì)算出來(lái)的分支計(jì)量(ZM)及由此產(chǎn)生的最大路徑計(jì)量填寫(xiě)進(jìn)去。從附圖2中可以看出,雖然接收序列的掃描值與傳輸序列之間存在有偏差,但是譯碼時(shí)通過(guò)每一最大路徑計(jì)量由終端向前追溯回去的路徑(以粗線(xiàn)繪制的路徑)與能夠正確還原原始序列的特性路徑是完全一致的。
從以上的基本原理說(shuō)明可以得知,一維特比譯碼器至少需具備附圖3以區(qū)塊繪制的各個(gè)子組件第一,需要有一分支計(jì)量計(jì)算單元(通??s寫(xiě)成BMU),BMU的作用是接收輸入序列(接收序列),并與所使用的回旋碼的格子欄一起被程序化,以便計(jì)算出格子欄內(nèi)的分支計(jì)量(以輸入序列為函數(shù));第二,需要有一相加-比較-選擇單元(通??s寫(xiě)成ACSU),ACSU的作用是經(jīng)由前面說(shuō)明過(guò)的相加過(guò)程及比較過(guò)程計(jì)算出路徑計(jì)量,并根據(jù)選擇最大路徑計(jì)量的原則決定正確的格子欄節(jié)點(diǎn);第三,需要有一路徑儲(chǔ)存器(通??s寫(xiě)對(duì)SMU),SMU的作用是儲(chǔ)存ACSU作出的決定,也就是將每一”幸存者”(Survivor)儲(chǔ)存起來(lái),然后再根據(jù)這些決定重組特性路徑,以便重新恢復(fù)原始序列。
格子欄所有狀態(tài)(A、B、C、D)的分支計(jì)量,也就是沿著一列的所有節(jié)點(diǎn)的分支計(jì)量,都可以在BMU內(nèi)被同時(shí)計(jì)算出來(lái)。在A(yíng)CSU內(nèi)會(huì)經(jīng)由選擇前一路徑計(jì)量及新的分支路徑計(jì)量的最大的代數(shù)和的方式(如前面配合附圖1說(shuō)明的方式)計(jì)算出每一新的路徑計(jì)量。為此ACSU需要一帶有如附圖3所示用來(lái)儲(chǔ)存前一路徑計(jì)量的數(shù)據(jù)寄存器的反饋回路。由于具有這個(gè)反饋回路的關(guān)系,ACSU對(duì)于譯碼器的時(shí)間特性曲線(xiàn)(限制通過(guò)譯碼器的數(shù)據(jù)量)具有決定性的影響力。在A(yíng)CSU對(duì)各個(gè)路徑進(jìn)行相加-比較-選擇的運(yùn)算工作時(shí),由于在一接一的計(jì)算步驟之間存在數(shù)據(jù)相互依存的關(guān)系,因此不能在A(yíng)CSU內(nèi)裝置一能夠提高數(shù)據(jù)通過(guò)量的”管線(xiàn)流通”(Pipelining,也就是為中間值插入管線(xiàn)寄存器以便以流水線(xiàn)的方式工作)。也就是說(shuō)要先計(jì)算出前一輸入記號(hào)的路徑計(jì)量才能開(kāi)始計(jì)算下一輸入記號(hào)的路徑計(jì)量。在設(shè)法解決數(shù)據(jù)通過(guò)量的問(wèn)題時(shí)必須注意到的其它重要的邊界條件是用電量的限制(譯碼器的耗電量應(yīng)盡可能的低),以及應(yīng)盡可能以最低的制造成本使譯碼器能夠在標(biāo)準(zhǔn)CMOS程序中執(zhí)行工作的要求。因此成本高昂且耗電量極大的雙極技術(shù)及/或ECL技術(shù)雖然具有運(yùn)算速度快的優(yōu)點(diǎn),但通常卻不會(huì)被考慮使用。從專(zhuān)業(yè)文獻(xiàn)上可以找到許多以各種不同的構(gòu)造方式為方法提高譯碼器的數(shù)據(jù)通過(guò)量的方法。
第一種提高數(shù)據(jù)通過(guò)量的方法是文獻(xiàn)[4]提出的以一在格子欄節(jié)點(diǎn)的輸入端及輸出端各有4個(gè)分支的基數(shù)-4-格子欄取代如附圖1所示的一基數(shù)-2-格子欄(在格子欄節(jié)點(diǎn)的輸入端及輸出端各有兩個(gè)分支)的方法。附圖4顯示一基數(shù)-4-格子欄的時(shí)間展開(kāi)狀況圖,附圖4中的回旋碼、原始序列、以及傳輸序列均與附圖1相同。比較附圖1及附圖4可以發(fā)現(xiàn),在基數(shù)-4-格子欄中,每一次都會(huì)將在基數(shù)-2-格子欄的兩個(gè)小步驟合并成單一的一大步驟。在附圖4中的第一大步驟的起點(diǎn)及終點(diǎn)的節(jié)點(diǎn)相當(dāng)于在附圖1中的第一小步驟的起點(diǎn)及第二個(gè)小步驟的終點(diǎn)的節(jié)點(diǎn)。在附圖4中的第二個(gè)大步驟(此處原文為”第一大步驟”,應(yīng)是原作者筆誤,此處應(yīng)該是”第二個(gè)大步驟”-譯者說(shuō)明)的起點(diǎn)及終點(diǎn)的節(jié)點(diǎn)相當(dāng)于在附圖1中的第三個(gè)小步驟的起點(diǎn)及第四個(gè)小步驟的終點(diǎn)的節(jié)點(diǎn)。
由于將每?jī)蓚€(gè)小步驟都合并成一大步驟,因此附圖4中的每一節(jié)點(diǎn)的輸出分支的數(shù)量及匯入的分支數(shù)量都從2加倍為4。同樣的,填寫(xiě)在分支起點(diǎn)處的并標(biāo)示這個(gè)分支的每一輸入數(shù)所占的位數(shù)也會(huì)是附圖1的情況的兩倍,也就是從1個(gè)位加倍為兩個(gè)位。填寫(xiě)在附圖4的分支終點(diǎn)處并標(biāo)示編碼特性的輸出數(shù)則有4個(gè)位。在每一譯碼步驟中,接收序列的4個(gè)連續(xù)的位都會(huì)被拿來(lái)與所有分支的輸出數(shù)作比較,以計(jì)算出每一分支計(jì)量。附圖4也是以粗體字書(shū)寫(xiě)的十進(jìn)制數(shù)及以粗線(xiàn)繪制的線(xiàn)條來(lái)突出表示原始序列的分支計(jì)量、路徑計(jì)量、以及特性路徑。從附圖4中還可以看出,在譯碼時(shí)通過(guò)每一最大路徑計(jì)量由終端向前追溯回去的路徑(以粗線(xiàn)繪制的路徑)與能夠正確還原原始序列的特性路徑是完全一致的。和附圖1的情況一樣,在附圖4的情況中即使有出現(xiàn)傳輸錯(cuò)誤,這個(gè)路徑也是會(huì)與能夠正確還原原始序列的特性路徑完全一致,這一點(diǎn)是很容易理解的。
附圖5在經(jīng)由模擬值進(jìn)行傳輸及經(jīng)由掃描接收到的模擬訊號(hào)獲得接收序列的情況下(如同附圖2的情況)一基數(shù)-4-格子欄的時(shí)間展開(kāi)狀況圖。與附圖4的情況類(lèi)似(此處原文為”附圖3”,應(yīng)是原作者筆誤,此處應(yīng)該是”附圖4”-譯者說(shuō)明),附圖5的情況也是將每?jī)蓚€(gè)連續(xù)的接收記號(hào)加工成一共同的”大”步驟。在每一步驟中,輸出值在每一種情況的第一接收記號(hào)e0及高位部分s0的差異值,以及輸出值在每一種情況的第二個(gè)接收記號(hào)e1及低位部分s1的差異值都會(huì)被計(jì)算出來(lái)(s0及s1在附圖5中均以二進(jìn)制數(shù)表示),然后從中再計(jì)算這兩個(gè)差異值的和,以便計(jì)算出分支計(jì)量。從上句提及的和減去一固定的數(shù)值,在附圖5的例子中,這個(gè)固定的數(shù)值被設(shè)定為6,也就是附圖2的例子的設(shè)定值3的兩倍。因此附圖5的例子和附圖2的例子具有相同的路徑計(jì)量。
利用將基數(shù)-2-格子欄改為基數(shù)-4-格子欄的方法讓譯碼時(shí)的每一步驟都有雙倍的時(shí)間可供使用。但是在基數(shù)-4-格子欄中,每一種格子欄狀態(tài)都會(huì)有4種可能的前一種狀態(tài),因此比較路徑計(jì)量并從中選出每一次的最大的路徑計(jì)量,以便找出最可能的前一種狀態(tài),然后再盡可能正確的重組特性路徑的工作會(huì)變得比較復(fù)雜。不過(guò)將這兩個(gè)各有利弊的因素都考慮進(jìn)去后發(fā)現(xiàn)這種方法是可以提高譯碼器的數(shù)據(jù)通過(guò)量的。
當(dāng)然回旋碼及其適用的譯碼器并非受限于只能有A至D等4種格子欄狀態(tài)。附圖6顯示一具有A至H等8種格子欄的基數(shù)-4-格子欄的例子,關(guān)于這個(gè)例子在文獻(xiàn)[2]中有說(shuō)明。同樣的,回旋碼及其適用的譯碼器還可以有更多種格子欄狀態(tài),例如16種或32種格子欄狀態(tài)。但無(wú)論如何,只要是使用基數(shù)-4-格子欄,那么每一種格子欄狀態(tài)要處理的都是4個(gè)分支計(jì)量。在附圖6中并未將在分支起點(diǎn)處的4個(gè)輸入數(shù)(相當(dāng)于附圖4或附圖5的輸入數(shù))填入,以免使圖面變得過(guò)于復(fù)雜?;谕瑯拥睦碛?,在附圖6中也沒(méi)有將描述編碼的在分支的終點(diǎn)處的輸出數(shù)填入。
附圖7是將附圖3所示的維特比譯碼器的構(gòu)造繪制得更為詳細(xì),而且附圖7的譯碼器構(gòu)造是用于附圖6的例子,也就是一具有A、B、C、D、E、F、G、H等8種格子欄狀態(tài)的基數(shù)-4-格子欄。ACSU也含有相應(yīng)的8個(gè)部閘(A至H),以便能夠?yàn)槊恳环N格子欄狀態(tài)在周期周T的每一時(shí)鐘周期計(jì)算出最大累加路徑計(jì)量PMM(t)。這個(gè)計(jì)算過(guò)程是將BMU為這個(gè)時(shí)鐘周期產(chǎn)生的4個(gè)分支計(jì)量(ZM1-ZM4)中的每一分支計(jì)量分別與前一計(jì)算過(guò)程計(jì)算出的屬于該分支的最大路徑計(jì)量(PMM)相加,然后再比較這4個(gè)相加結(jié)果,并從中選出最大值。在附圖7中僅繪出ASCU的A部閘(用于格子欄狀態(tài)A)的運(yùn)作情況。在A(yíng)部閘內(nèi),第一分支計(jì)量(ZM1)與來(lái)自同一部閘的最大路徑計(jì)量(PMM)相加;第二個(gè)分支計(jì)量(ZM2)與來(lái)自C部閘的最大路徑計(jì)量(PMM)相加;第三個(gè)分支計(jì)量(ZM3)與來(lái)自G部閘的最大路徑計(jì)量(PMM)相加;第四個(gè)分支計(jì)量(ZM4)與來(lái)自G部閘的最大路徑計(jì)量(PMM)相加;以上的相加方式系依照附圖6的格子欄圖形。至于在其它部閘內(nèi)(B-H)的4個(gè)分支計(jì)量(ZM1-ZM4)應(yīng)該與來(lái)自那一部閘的最大路徑計(jì)量(PMM)當(dāng)然是與A部閘的情況不同,其具體的情況完全由格子欄圖形決定。
由于累加路徑Mrtrics(PM)從一周期到一周不斷的與分支計(jì)量(ZM)相加,因此累加路徑Mrtrics(PM)的數(shù)值籍不斷的變大,也就是說(shuō)累加路徑Mrtrics(PM)的數(shù)值范圍會(huì)大于分支路徑Mrtrics(ZM)的數(shù)值范圍。因此ACSU內(nèi)的處理單元的位寬度”m”必須能夠與累加路徑Mrtrics(PM)的數(shù)值范圍相配合。附圖7對(duì)路徑Mrtrics及分支Mrtrics的位寬度均以相同的數(shù)值”m”標(biāo)示。也就是說(shuō),以二進(jìn)制數(shù)表示的二進(jìn)制編碼的分支計(jì)量值的最前面加上一0位,使其位寬度變?yōu)椤眒”。
ACSU的8個(gè)部閘(A--H)中的每一部閘計(jì)算出來(lái)的最大數(shù)值都會(huì)被儲(chǔ)存在該部閘的寄存器中作為下一步驟的新的路徑計(jì)量(PMM)。在一部閘中的4個(gè)路徑計(jì)量(PM1-PM4)中的那一是該部閘的最大路徑計(jì)量的資料就是該部閘的”幸存者”(Survivor)的資料。這8個(gè)”幸存者”(Survivor)的資料會(huì)被儲(chǔ)存在SMU。
如果在A(yíng)CSU中處理的數(shù)值是多位數(shù)的數(shù)值,就會(huì)造成一特別的問(wèn)題。同樣的,即使是在模擬傳輸及接收序列的掃描工作中,在實(shí)務(wù)上后續(xù)的處理工作(將掃描值描述編碼的輸出值作比較,以及接下來(lái)的計(jì)量計(jì)算)也都要用到數(shù)字技術(shù)。因此必須將掃描值數(shù)字化。為了達(dá)到很高的精確性,需要相當(dāng)高的數(shù)字化分辨率,也就是說(shuō),數(shù)字化的分支計(jì)量(ZM)及數(shù)字化的累加路徑計(jì)量都會(huì)具有相當(dāng)大的位寬度,以及需要用到很大位數(shù)的數(shù)值及/或字長(zhǎng)。在A(yíng)CSU中進(jìn)行多位數(shù)的二進(jìn)制數(shù)的相加運(yùn)算時(shí),”攜帶傳輸”(carry propagation)需要相當(dāng)多的小步驟,所謂”攜帶傳輸”(carry propagation)是指進(jìn)位位的累加及傳送是從最后一位數(shù)LSB到第一位數(shù)MSB。這種所謂的”脈動(dòng)傳輸”(Ripple)會(huì)隨著字長(zhǎng)及/或位寬度的變大使相加作業(yè)愈得更長(zhǎng)、更慢。
文獻(xiàn)[3]記載的采用”傳輸節(jié)約記數(shù)法”的”位管線(xiàn)流通”(bit-pipelining)是一種已知的用來(lái)減少上述的脈動(dòng)傳輸效應(yīng)并進(jìn)一步提高維特比譯碼器的數(shù)據(jù)通過(guò)量的方法。此處所謂的”位管線(xiàn)流通”(bit-pipelining)是指以流水線(xiàn)的作業(yè)方處理帶有冗余量的位,使輸送過(guò)程得以簡(jiǎn)化。在此情況下,在A(yíng)CSU中進(jìn)行的相加及比較工作是從MSB開(kāi)始一位接著一位的進(jìn)行,也就是說(shuō)是從最有意義位的位開(kāi)始,并以路徑計(jì)量的冗余記數(shù)法為作業(yè)的基礎(chǔ),同時(shí)相加作業(yè)是在不連貫的攜帶傳輸方式下完成的。文獻(xiàn)[4]提出的一種進(jìn)一步改良方式是,經(jīng)由對(duì)路徑計(jì)量的冗余記數(shù)法重新編碼將最大識(shí)別(maximumidentification)縮減為一簡(jiǎn)單的”或”運(yùn)算。最后就可以如文獻(xiàn)[5]提出的以位為單位同時(shí)進(jìn)行比較的工作,也就是將基數(shù)-4-格子欄的情況下為一格子欄計(jì)算出來(lái)的所有4個(gè)路徑計(jì)量(PM1-PM4)同時(shí)與3個(gè)其它的路徑計(jì)量作比較。由于這個(gè)比較工作可以在局部為每一分支進(jìn)行,因此可以達(dá)到很高的速度及效率。由于使用冗余記數(shù)法的關(guān)系,因此每一分支的決定都是以?xún)蓚€(gè)位編碼其中一代表”初步”的決定,另外一位則代表”最后”的決定。
目前的技術(shù)水準(zhǔn)是將這4種提高數(shù)據(jù)通過(guò)量的方法/措施結(jié)合在一起,以滿(mǎn)足CMOS執(zhí)行工作時(shí)對(duì)于最大數(shù)據(jù)通過(guò)量要夠大、同時(shí)耗電量又要盡可能的小的要求,這4種提高數(shù)據(jù)通過(guò)量的方法/措施分別為i)改用基數(shù)-4-格子欄ii)以冗余記數(shù)法進(jìn)行管線(xiàn)流通iii)經(jīng)由”或”運(yùn)算進(jìn)行最大識(shí)別(maximum identification)iv)以位為單位同時(shí)進(jìn)行比較工作附圖8的方塊圖顯示以現(xiàn)有技術(shù)設(shè)計(jì)出的如附圖7(此處原文為”附圖6”,應(yīng)是原作者筆誤,此處應(yīng)該是”附圖7”-譯者說(shuō)明)的ACSU中的A部閘的詳細(xì)構(gòu)造方式。事實(shí)上ACSU的所有8個(gè)部閘的構(gòu)造方式都相同,唯一的區(qū)別僅在于應(yīng)該將8個(gè)最大路徑Mrtrics(PMM)中的那一最大路徑Mrtric(PMM)與在該部閘中處理的4個(gè)分支計(jì)量(ZM)相加。
從附圖8可以看出,4個(gè)分支計(jì)量(ZM1-ZM4)中的每一分支計(jì)量都有一串級(jí)(cascade)的串聯(lián)在一起的處理器單元(PE)。串級(jí)內(nèi)的每一處理器單元(PE)都會(huì)從屬于相關(guān)分支計(jì)量的位計(jì)算出m個(gè)路徑計(jì)量位中的一路徑計(jì)量位。由于每一串級(jí)都含有m個(gè)處理器單元,因此為每一格子欄狀態(tài)的配置共含有4m個(gè)處理器單元。附圖8中僅繪出其中的兩個(gè),其中一對(duì)應(yīng)于在m位字中位值為2n的任意一位,也就是位n,另外一則對(duì)應(yīng)于位n+1(下一更高的位值2n+1)。每一處理器單元都含有3個(gè)功能區(qū)塊一相加區(qū)塊(ADD)、一記號(hào)修改區(qū)塊(MOD)、以及一比較區(qū)塊(VGL)。對(duì)應(yīng)于相同位位值的所有4個(gè)處理器單元都經(jīng)由一條8芯配電線(xiàn)組彼此形成導(dǎo)電連接,以及與一最大識(shí)別區(qū)塊(MAX)的8個(gè)輸入端形成導(dǎo)電連接。
在接下來(lái)的附圖及說(shuō)明都將處理器單元及參與處理的位縮寫(xiě)成帶有一字尾的大寫(xiě)字母。字尾部分的阿拉伯?dāng)?shù)字1、2、3、4(或是寫(xiě)成通式”i”)代表分別對(duì)應(yīng)于分支計(jì)量ZM1、ZM2、ZM3、ZM4(或是寫(xiě)成通式ZMi),括號(hào)內(nèi)的部分則代表與該分支計(jì)量定的位位值的對(duì)應(yīng)關(guān)系。兩個(gè)字尾之間的冒號(hào)””代表”直到”。
每一處理器單元內(nèi)的功能區(qū)塊ADD、MOD、以及VGL的構(gòu)造及作用方式均相同。附圖9以處理器單元PE4(n)的構(gòu)造(也就是分支計(jì)量ZM4的位n對(duì)應(yīng)的處理器單元的構(gòu)造)為例,作為所有處理器單元的代表,另外在附圖9中也有將功能區(qū)塊MAX(n)繪出。
譯碼器運(yùn)轉(zhuǎn)時(shí),一串級(jí)PE(MSBLSB)內(nèi)的處理器單元是以半個(gè)時(shí)鐘周期(T/2)為從左向右循環(huán)運(yùn)作,也就是說(shuō)從MSB(最有意義位的位)開(kāi)始一直到LSB(最小意義位的位)。每一處理器單元PE(n)都是由ADD接收對(duì)應(yīng)于分支計(jì)量(ZMi)的位n及用于最大路徑計(jì)量的位n的一以冗余2位記數(shù)法表示的PMMab(n)。ADD會(huì)產(chǎn)生一和數(shù)字元SUi(n)及一進(jìn)位位CAi(n),這個(gè)和數(shù)字元SUi(n)會(huì)在半個(gè)時(shí)鐘周期ΦA(chǔ)內(nèi)經(jīng)由一閂鎖緩存器LΦA(chǔ)被傳送出去,而這個(gè)進(jìn)位位CAi(n)則會(huì)被反饋至同一串級(jí)中的前一處理器單元PE(n+1)。
MOD具有一用來(lái)接收以半個(gè)時(shí)鐘周期為位差傳送過(guò)來(lái)的和數(shù)字元SU的和數(shù)字元輸入端、一用來(lái)接收從同一串級(jí)中的下一處理器單元的ADD反饋回來(lái)的進(jìn)位位SU的傳輸輸入端、以及兩個(gè)用來(lái)接收前一處理器單元PE(n+1)的VGL產(chǎn)生的一初步?jīng)Q定位EBP(n+1)及一最后決定位EBF(n+1)的決定位輸入端。由”與”閘(AND gates)及”或”閘(OR gates)系統(tǒng)構(gòu)成的MOD會(huì)連結(jié)這4個(gè)接收到的位,以產(chǎn)生4個(gè)輸出位用于路徑計(jì)量的位n的一以冗余初步2位記數(shù)法表示的PMPab,以及用于路徑計(jì)量的位n的一以冗余最后2位記數(shù)法的PMFab。以上情況的真值表如下表1
表2
上表中的x代表”任意值”。4個(gè)MOD輸出位PMPab及PMFab會(huì)以半個(gè)時(shí)鐘周期ΦB循環(huán)經(jīng)由一閂鎖緩存器LΦA(chǔ)被傳送出去,因此閂鎖緩存器LΦA(chǔ)及閂鎖緩存器LΦB具有管線(xiàn)寄存器的功能。
說(shuō)得詳細(xì)一些,初步路徑計(jì)量位PMPab會(huì)從MOD以半個(gè)時(shí)鐘周期ΦB為位差被送至8芯配電線(xiàn)組的一與之對(duì)應(yīng)的芯線(xiàn)對(duì)。這個(gè)8芯配電線(xiàn)組共含有4個(gè)不同的由兩條芯線(xiàn)組成的芯線(xiàn)對(duì),而且每一芯線(xiàn)對(duì)都分別唯一對(duì)應(yīng)于4個(gè)處理器單元PE14中的一處理器單元。
最后路徑計(jì)量位PMFab是以半個(gè)時(shí)鐘周期ΦB為位差被傳送至比較區(qū)塊(VGL)。VGL會(huì)在同一時(shí)鐘周期接收另外3個(gè)處理器單元PE的初步路徑計(jì)量位PMPa的一”或”運(yùn)算的結(jié)果,以及另外3個(gè)處理器單元PE的初步路徑計(jì)量位PMPb的一”或”運(yùn)算的結(jié)果,這些位(PMPa及PMPb)都是經(jīng)由與其對(duì)應(yīng)的配電線(xiàn)組的芯線(xiàn)對(duì)被傳送至VGL。此外,VGL還會(huì)以半個(gè)時(shí)鐘周期ΦB循環(huán)接收前一處理器單元PE(n+1)的初步?jīng)Q定位EBP(n+1)。為了能夠產(chǎn)生初步?jīng)Q定位EBP(n)及最后決定位EBF(n),VGL還具有一多路轉(zhuǎn)換器。
MAX具有兩個(gè)”或”閘,以便產(chǎn)生用于最大路徑計(jì)量的位n的冗余2元記數(shù)法的兩個(gè)位PMMab(n)。其中一”或”閘會(huì)接收來(lái)自4個(gè)處理器單元PE14(n)的所有4個(gè)初步路徑計(jì)量位PMP14a(n),而且如果在這4個(gè)接收到的位中至少有一位是等于1,那么這個(gè)”或”閘還會(huì)將位PMMa(n)調(diào)整為剛好等于一二進(jìn)制值1。另外一”或”閘會(huì)接收來(lái)自4個(gè)處理器單元PE14(n)的所有4個(gè)初步路徑計(jì)量位PMP14b(n),而且如果在這4個(gè)接收到的位中至少有一位是等于1,那么這個(gè)”或”閘還全將位PMMb(n)調(diào)整為剛好等于一二進(jìn)制值1。
以上依據(jù)附圖8及附圖9說(shuō)明的以現(xiàn)有技術(shù)設(shè)計(jì)的ACSU系統(tǒng)在每一部閘(A--H)中都是以下述的方式工作,以便能夠從輸入路徑計(jì)量(ZM14)的4個(gè)m位字及到目前為止累加的舊路徑計(jì)量(PPM)的資料為每一格子欄狀態(tài)(A--H)作出關(guān)于新的最大路徑計(jì)量的決定在開(kāi)始運(yùn)轉(zhuǎn)之前,先完成一初始化步驟,以便將所有的決定位(EBPi及EBFi)及在所有的處理器單元中所有用于最大路徑計(jì)量PMMiab的位均設(shè)定為0。接著將BMU產(chǎn)生的分支計(jì)量(ZM)的連續(xù)的m位字按時(shí)間間隔T應(yīng)用上去,說(shuō)得更精確一些就是將每一字(ZMi)以”時(shí)間錯(cuò)位排列平行格式”(time-staggered parallel format)的方式將位于同一字內(nèi)的位以半個(gè)時(shí)鐘周期(T/2)為間隔按照下表的方式相互錯(cuò)位移動(dòng)表3
這樣每一分支計(jì)量字的m個(gè)位2m-1、2m-2、2m-3、...、20就會(huì)以半個(gè)時(shí)鐘周期(T/2)的間隔依序向串級(jí)發(fā)出脈沖,這個(gè)過(guò)程是從MSB開(kāi)始,并以時(shí)鐘頻率2/T通過(guò)由串級(jí)形成的管線(xiàn)(pipeline)。當(dāng)?shù)谝环种в?jì)量字的2m-1位(也就是MSB)出現(xiàn)時(shí),第一串級(jí)階段的的所有決定位(也就是位EBPi(m-1)及位EBFi(m-1))都被設(shè)定為二進(jìn)制值1,而且在之后的整個(gè)時(shí)間都保持在這個(gè)值不變。
在每一處理器單元PE(n)的ADD內(nèi),分支計(jì)量位ZMi(n)會(huì)被加上來(lái)自作用中的ACSU部閘的最大路徑計(jì)量(PMM(n))的2位數(shù)(PMMa(n)及PMMb(n)),然后從4個(gè)新的路徑計(jì)量中選出最大的一,并為4個(gè)分中的每一分支都產(chǎn)生兩個(gè)決定位EBP(q)及EBFi(q)。分支計(jì)量位ZMi(n)涵蓋數(shù)值范圍(01)*2n(此處的*號(hào)代表相乘的意思),2位數(shù)PMMab(n)是新的最大路徑計(jì)量的相對(duì)應(yīng)的位的一種修改過(guò)的記數(shù)法;這個(gè)數(shù)字涵蓋數(shù)值范圍(02)*2n。ADD的輸出端涵蓋數(shù)值范圍(03)*2n,其中數(shù)值為2*2n的進(jìn)位位CAi(n)會(huì)被傳輸?shù)角耙惶幚砥鲉卧狿E(n+1)。因此在MOD的輸入端又會(huì)出現(xiàn)一涵蓋數(shù)值范圍(02)*2n的路徑計(jì)量位記數(shù)法,這個(gè)路徑計(jì)量位記數(shù)法是由下一處理器單元PE(n-1)的和數(shù)字元SU(n)及進(jìn)位位CA(n-1)所構(gòu)成。
MOD以下表的方式修改這個(gè)記數(shù)法表4
利用經(jīng)過(guò)上述方式修改過(guò)的記數(shù)法就可以經(jīng)由兩個(gè)4-“或”運(yùn)算在MAX中找出4個(gè)初步2位路徑計(jì)量記數(shù)法PMP1ab(n)、PMP2ab(n)、PMP3ab(n)、PMP4ab(n)中最大一初步2位路徑計(jì)量記數(shù)法的冗余2位記數(shù)法PMMab(n)。
MOD及VGL是按照下表的邏輯規(guī)則產(chǎn)生決定位EBPi(n)及EBFi(n)
表5
上表中的DIFFi(n)代表以2位PMFiab(n)表示的最后路徑計(jì)量(PMFi(n))及3個(gè)初步路徑計(jì)量(PMj(n))之間的最大差異,這3個(gè)初步路徑計(jì)量(PMj(n))系來(lái)自另外3個(gè)處理器單元PEj(n),而且都是以2位PMPjab(n)表示,其中j代表i以外的1、2、3、或4。X代表”任意值”。
如果最后決定位EBFi(n)等于0,則這個(gè)值被評(píng)定為是可以明確的將所涉及的分支i排除在外的訊息。EBFi(n)=1及EBFi(n)=0的組合被評(píng)定為大概可以將所涉及的分支排除在外的信息。EBFi(n)=1及EBFi(n)=1的組合代表的意義是所涉及的分支很可能就是所謂的”幸存者”(Survivor)。初步?jīng)Q定位及最后決定位是從分支計(jì)量的MSB(也就是第(m-1)個(gè)位)開(kāi)始被計(jì)算,而且一直計(jì)算到LSB(也就是第0個(gè)位)并得到唯一明確的決定為止。
從附圖8及附圖9可以看出,在閘電路與閘電路之間供傳輸訊號(hào)用的線(xiàn)路相當(dāng)?shù)拈L(zhǎng),所以需要有適當(dāng)?shù)木€(xiàn)路驅(qū)動(dòng)器。為了使圖面簡(jiǎn)化,附圖8及附圖9并未將這些線(xiàn)路驅(qū)動(dòng)器繪出,但是附圖10有將線(xiàn)路驅(qū)動(dòng)器繪出,附圖10顯示的是”關(guān)鍵路徑”,所謂”關(guān)鍵路徑”是指訊號(hào)從一寄存器(或是一閂鎖緩存器)傳送到下一寄存器(或是下一閂鎖緩存器)的最長(zhǎng)路徑。”關(guān)鍵路徑”代表的訊號(hào)路徑就是整個(gè)系統(tǒng)的最大可能工作速度的限制者。只有加速訊號(hào)在這個(gè)”關(guān)鍵路徑”上的傳輸速度,直到另外一條路徑成為新的關(guān)鍵路徑才能真正提高整個(gè)系統(tǒng)的工作速度(升高時(shí)鐘脈沖頻率)。
雖然在附圖8及附圖9中的ACSU構(gòu)造就數(shù)據(jù)通過(guò)量及損耗功率而言已經(jīng)是現(xiàn)有技術(shù)中最好的,但是仍不能完全滿(mǎn)足吾人對(duì)于數(shù)據(jù)傳輸系統(tǒng)的性能日益升高的要求,此點(diǎn)對(duì)于目前仍處于開(kāi)發(fā)階段的新一代的硬盤(pán)控制器所要求的大于2000Mbit/s的數(shù)據(jù)傳送率而言尤為明顯。
在前面關(guān)于現(xiàn)有技術(shù)的說(shuō)明系假定計(jì)量計(jì)算是以一種為基礎(chǔ),而在使用這種距離函數(shù)時(shí),譯碼的工作必須經(jīng)由選擇最大值的方式來(lái)進(jìn)行。如果改用另外一種以選擇最小值的方式運(yùn)作的距離函數(shù)來(lái)取代之前使用的以選擇最大值的方式運(yùn)作的距離函數(shù),所要面對(duì)的問(wèn)題仍然是同樣的問(wèn)題。不論在任何情況下都不會(huì)改變的一點(diǎn)是,在進(jìn)行譯碼時(shí)必須按照一事先設(shè)定的”定義”為每一種格子欄狀態(tài)從多個(gè)計(jì)量中挑選出一最”極端”的計(jì)量,這個(gè)事先設(shè)定的”定義”不是以最大值為矛標(biāo)就是以最小值為目標(biāo),完全視所使用的距離函數(shù)而定。
發(fā)明內(nèi)容
本發(fā)明的目的是要對(duì)一種以位管線(xiàn)流通(bit pipelining)方式工作的維特比譯碼器進(jìn)行改良,使其能夠達(dá)到比目前技術(shù)更大的數(shù)據(jù)通過(guò)量。采用具有本發(fā)發(fā)明之權(quán)利要求第1項(xiàng)之特征的維特比譯碼器就可以達(dá)到這個(gè)目的。
本發(fā)明的維特比譯碼器是用來(lái)對(duì)回旋碼進(jìn)行譯碼,這種回旋碼是以一具有2z種狀態(tài)的基數(shù)-2x-格子欄為基礎(chǔ),其中x及z均為大于或等于的整數(shù),同時(shí)本發(fā)明的維特比譯碼器主要含有三個(gè)計(jì)算單元。第一計(jì)算單元的任務(wù)是為每一種格子欄狀態(tài)從一輸入序列中的周期性連續(xù)出現(xiàn)的多位字計(jì)算出2x個(gè)分支計(jì)量作為多位字。第二個(gè)計(jì)算單元(就是所謂的ACSU)的任務(wù)是為每一種格子欄狀態(tài)在每一脈沖重復(fù)周期將2x個(gè)分支計(jì)量分別與從2x種之前的格子欄狀態(tài)已經(jīng)累加出來(lái)的2x個(gè)路徑計(jì)量相加,并按照事先設(shè)定的定義從按照此種方式計(jì)算出來(lái)的2x個(gè)路徑計(jì)量中挑選出最極端的路徑計(jì)量作為下一周期的相加作業(yè)的新的累加路徑計(jì)量。第三個(gè)計(jì)算單元的任務(wù)是儲(chǔ)存從第二個(gè)計(jì)算單元獲得的關(guān)于路徑計(jì)量的身分的資料,這些路徑計(jì)量都是第二個(gè)計(jì)算單元在連續(xù)的脈沖重復(fù)周期中挑選出來(lái)的。第二個(gè)計(jì)算單元為每一種格子欄狀態(tài)都含有2x個(gè)處理器單元的并聯(lián)串級(jí),這些處理器單元依序串聯(lián)在一起,以便對(duì)分支計(jì)量的位及極端的路徑計(jì)量的位按照位的位值逐步降低的方式進(jìn)行管線(xiàn)處理(pipeline processing)。此外,第二個(gè)計(jì)算單元為每一種格子欄狀態(tài)都含有一用于管線(xiàn)內(nèi)相同序號(hào)的所有處理器單元的極端值選擇裝置。本發(fā)明之維特比譯碼器的特征是每一串級(jí)所含的處理器單元的數(shù)量都小于路徑計(jì)量的數(shù)值范圍的二進(jìn)制數(shù)記數(shù)法所使用的位數(shù)m,每一串級(jí)都含有等于m/p的整數(shù)部分INT(m/p)的數(shù)量的處理器單元,其中p是一大于或等于2但是小于m的整數(shù),而且串級(jí)內(nèi)的INT(m/p)個(gè)處理器單元中的每一處理器單元都唯一對(duì)應(yīng)于m位的INT(m/p)個(gè)連續(xù)分離的p字節(jié)中的一。
m/p可能是一整數(shù)也可能不是一整數(shù)。如果是第一種情況(m/p是一整數(shù)),則INT(m/p)等于m/p,而且每一串級(jí)都只需由m/p個(gè)處理器單元組成,同時(shí)每一處理器單元均唯一對(duì)應(yīng)于一p字節(jié),也就是唯一對(duì)應(yīng)于m位的m/p個(gè)連續(xù)分離的”p-tuples”。在p的數(shù)值已經(jīng)給求的情況下,為了使m/p是一整數(shù),必要時(shí)可以為路徑計(jì)量所使用的位寬度m加上適當(dāng)數(shù)量的0位,以便使m成為p的整數(shù)倍。當(dāng)然m/p也可以是第二種情況(m/p不是一整數(shù)),在這種情況下應(yīng)在每一串級(jí)的INT(m/p)個(gè)分別與一p字節(jié)唯一對(duì)應(yīng)的處理器單元之外,另外再增加一與剩下的r個(gè)位(r小于p)對(duì)應(yīng)的處理器單元。這個(gè)增加的處理器單元最好是對(duì)應(yīng)于m位順序中的r個(gè)最有意義位或r個(gè)最小意義位。
按照”事先設(shè)定的定義”挑選出來(lái)的的計(jì)量不是最大的計(jì)量就是最小的計(jì)量,至于到底是最大的計(jì)量還是最小的計(jì)量則完全由計(jì)算分支計(jì)量時(shí)所使用的距離函數(shù)決定。
本發(fā)明對(duì)以現(xiàn)有技術(shù)設(shè)計(jì)的ACSU的構(gòu)造有加以改良。改良的內(nèi)容包括以多位處理器單元取代現(xiàn)有技術(shù)使用的1位處理器單元,本發(fā)明是以P位處理器單元(2≤p<m,而且最好是p=2)取代1位處理器單元。由于吾人經(jīng)常將此種情況誤說(shuō)成位管線(xiàn)流通(bit pipelining)原理,因此乍聽(tīng)之下這種改良方式似乎反而會(huì)造成反效果。但事實(shí)證明本發(fā)明使用的這種多位結(jié)構(gòu)不但可以提高譯碼器的數(shù)據(jù)通過(guò)量,而且還具有一些其它的優(yōu)點(diǎn)。在位于寬度m已經(jīng)給定的情況下,本發(fā)明使用的多位結(jié)構(gòu)需要的處理器單元的數(shù)量只有使用1位結(jié)構(gòu)時(shí)的1/p。因此可以使管線(xiàn)(pipeline)的執(zhí)行時(shí)間縮短為只有使用1位結(jié)構(gòu)時(shí)的1/p。另外一優(yōu)點(diǎn)是每一處理器單元能夠分配到的能源會(huì)增加為使用1位結(jié)構(gòu)時(shí)的p倍。
不過(guò)使用大于或等于2位結(jié)構(gòu)會(huì)導(dǎo)致計(jì)算的復(fù)雜性大幅升高,而這通常會(huì)對(duì)譯碼器的工作速度及最大數(shù)據(jù)通過(guò)量造成負(fù)面的影響。不過(guò)通過(guò)本發(fā)明之特殊的實(shí)施方式引進(jìn)的一種新的冗余記數(shù)法可以使這種可能的負(fù)面影響獲得大幅的改善,因?yàn)檫@種新的冗余記數(shù)法能夠成功的將關(guān)鍵路徑保持在與使用1位結(jié)構(gòu)時(shí)的關(guān)鍵路徑大略相同的長(zhǎng)度,特別是在以最大值作為極端選擇的標(biāo)準(zhǔn)的情況下更是如此。不過(guò)事實(shí)上本發(fā)明的方法也會(huì)使個(gè)別的閘電路級(jí)的復(fù)雜性變大。在本發(fā)明的一種實(shí)施方式中,經(jīng)由使用如文獻(xiàn)[6]提出的DOMINO logic動(dòng)態(tài)電路技術(shù)可以在不需增加表面積及耗電量的情況下使運(yùn)算速度獲得明顯的提升。
以下以本發(fā)明的一種實(shí)施方式并結(jié)合附圖對(duì)本發(fā)明的內(nèi)容作進(jìn)一步的說(shuō)明圖1顯示在進(jìn)行數(shù)字傳輸?shù)那闆r下,一具有4種狀態(tài)的基數(shù)-2-格子欄的時(shí)間展開(kāi)狀況圖。
圖2顯示在進(jìn)行模擬傳輸?shù)那闆r下,一具有4種狀態(tài)的基數(shù)-2-格子欄的時(shí)間展開(kāi)狀況圖。
圖3顯示一維特比譯碼器的最重要的組成部分。
圖4顯示將附圖1的圖形轉(zhuǎn)換為具有4種狀態(tài)的基數(shù)-4-格子欄的時(shí)間展開(kāi)狀況圖。
圖5顯示將附圖2的圖形轉(zhuǎn)換為具有4種狀態(tài)的基數(shù)-4-格子欄的時(shí)間展開(kāi)狀況圖。
圖6顯示具有8種狀態(tài)的基數(shù)-4-格子欄的一例子。
圖7顯示一種具有8種狀態(tài)的基數(shù)-4-格子欄的維特比譯碼器的總體示意圖。
圖8以方塊圖顯示以現(xiàn)有技術(shù)設(shè)計(jì)的一以位管線(xiàn)流通(bitpipelining)方式工作的基數(shù)-4維特比譯碼器的構(gòu)造及處理器組件之間的連接方式。
圖9顯示附圖8的一處理器組件的細(xì)部構(gòu)造圖。
圖10顯示如附圖8所示之處理器組件之間的臨界路徑。
圖11以方塊圖的方式顯示在一種按照本發(fā)明方式設(shè)計(jì)的ACSU(p=2,也就是使用2位結(jié)構(gòu))結(jié)構(gòu)中的兩個(gè)相鄰的處理器單元。
圖12顯示附圖11中的一處理器單元的詳細(xì)構(gòu)造。
圖13單獨(dú)顯示在按照本發(fā)明的方式設(shè)計(jì)的ACSU中的關(guān)鍵路徑的組成成分。
圖14顯示動(dòng)態(tài)電路技術(shù)的一例子。
具體實(shí)施例方式
以下關(guān)于本發(fā)明的的一種實(shí)施方式的說(shuō)明和前面以現(xiàn)有技術(shù)為例所作的說(shuō)明一樣,都是涉及ACSU的一用于具有8種狀態(tài)的基數(shù)一2一格子欄的部閘的結(jié)構(gòu),這個(gè)ACSU的部閘的任務(wù)是從4個(gè)輸入分支的分支計(jì)量(ZM114)及對(duì)應(yīng)于輸入分支的之前的格子欄狀態(tài)的舊的最大路徑計(jì)量PMM(t)為一種格子欄狀態(tài)計(jì)算出新的最大路徑計(jì)量PMM(t+T)。就某些觀(guān)點(diǎn)而言,附圖11及附圖12顯示的電路方塊圖如附圖8及附圖9顯示的以現(xiàn)有技術(shù)設(shè)計(jì)的方塊圖,因此附圖11及附圖12仍沿用在附圖8及附圖9中使用的縮寫(xiě)符號(hào);訊號(hào)位及其使用的縮寫(xiě)符號(hào)也是同樣的情況。
本發(fā)明的實(shí)施方式與現(xiàn)有技術(shù)的實(shí)施方式之間最大的區(qū)別是,在本發(fā)明的實(shí)施方式中,每一處理器單元每次都是處理一m位數(shù)路徑計(jì)量字的兩個(gè)位,也就是說(shuō)p=2。此外,本發(fā)明是還設(shè)定m/p是一整數(shù),也就是說(shuō)m也是一整數(shù)。因此每一路徑計(jì)量(PM14)都可以分配到m/2個(gè)處理器單元。如果是從最小意義位的位LSB開(kāi)始數(shù),1≤n≤m就是連續(xù)位的序號(hào);如果是從最小意義位的字節(jié)開(kāi)始數(shù),1≤q≤m/2就是直接連續(xù)分離的字節(jié)的序號(hào)。一任意的處理器單元PE(q)處理第q個(gè)字節(jié),也就是處理第2n個(gè)及第2n+1個(gè)位。如果存在前一處理器單元PE(q+1)的話(huà),則這個(gè)處理器單元PE(q+1)就是處理第q+1個(gè)字節(jié),也就是處理第2n+2個(gè)及第2n+3個(gè)位。如果存在后一處理器單元PE(q-1)的話(huà),則這個(gè)處理器單元PE(q-1)就是處理第q-1個(gè)字節(jié),也就是處理第2n-2個(gè)及第2n-1個(gè)位。在以下的說(shuō)明及附圖11及附圖12中,每一字節(jié)的最小意義位的位是以”-0”的符號(hào)標(biāo)示在位名稱(chēng)的字尾中,每一字節(jié)的最有意義位的位則是以”-1”的符號(hào)標(biāo)示在位名稱(chēng)的字尾中。
共有m/2乘以4個(gè)處理器單元用于4個(gè)分支計(jì)量(ZM14),這些處理器單元都具有相同的結(jié)構(gòu)并形成一含有4個(gè)列的配置方式。附圖11顯示用于分支計(jì)量(ZM4)的第q個(gè)位及第q+1個(gè)位的兩個(gè)相鄰的處理器單元PE4(q)及PE4(q+1),這兩個(gè)處理器單元PE4(q)及PE4(q+1)均屬于A(yíng)CSU對(duì)應(yīng)于格子欄狀態(tài)A的部閘A。此外,附圖11還顯示用于產(chǎn)生位的MAX,MAX產(chǎn)生的位代表來(lái)自ACSU的部閘A的所有處理器單元PE14(q)及/或PE14(q+1)的路徑計(jì)量位的最大PMM(q)及/或PMM(q+1)。附圖1 2顯示附圖11中的一處理器單元的PE4(q)的詳細(xì)構(gòu)造。
在運(yùn)轉(zhuǎn)過(guò)程中,每一列的m/2個(gè)串聯(lián)在一起的處理器單元都是按照時(shí)間錯(cuò)位排列的方式以半個(gè)時(shí)鐘周期(T/2)的間隔由左向右移動(dòng),也就是從最有意義位的字節(jié)開(kāi)始一直到最小意義位的字節(jié)一接著一移動(dòng)。
在每一處理器單元PE(q)中,ADD會(huì)接收第q個(gè)字節(jié)ZMi-0(q)、分支計(jì)量(ZMi)的ZMi-1(q)、以及最大路徑計(jì)量的第q個(gè)字節(jié)的一冗余4位記數(shù)法PMMiad(q)。ADD會(huì)以半個(gè)時(shí)鐘周期ΦA(chǔ)為位差產(chǎn)生出兩個(gè)和數(shù)字元SUi-0及SUi-1,此外ADD還會(huì)產(chǎn)生一反饋至同一列上的前一處理器單元PE(q+1)的進(jìn)位位CAi。ADD含有附圖12顯示的由具有邏輯函數(shù)”及”(AND)、”反及”(NAND)、”或”(OR)、”異或”(X0R)、以及”XNOR”等閘電路構(gòu)成的邏輯運(yùn)算系統(tǒng),以便從以4位溫度計(jì)記數(shù)法(thermometerrepresentation)表示的路徑計(jì)量(PPMiad(q))的和數(shù)形成出以二進(jìn)制記數(shù)法表示的分支計(jì)量(ZMi-01(q))。ADD輸出的SUi-0、SUi-1、以及CAi是以二進(jìn)制記號(hào)法表示這個(gè)和數(shù),其中SUi-0具有22n個(gè)有效位、SUi-1具有2(2n+1)個(gè)有效位、CAi具有2(2n+2)個(gè)有效位。
MOD具有兩個(gè)用來(lái)接收以半個(gè)時(shí)鐘周期ΦA(chǔ)為位差被傳送過(guò)來(lái)的和數(shù)字元SUi-0及SUi-1的和數(shù)字元輸入端、一用來(lái)接收從下一處理器單元PEi(q-1)的ADD反饋回來(lái)的進(jìn)位位的傳輸輸入端、以及兩個(gè)用來(lái)接收前一處理器單元PE(q+1)的VGL產(chǎn)生的一初步?jīng)Q定位EBP(q+1)及一最后決定位EBF(q+1)的決定位輸入端。由”與”閘(ANDgates)及”或”閘(OR gates)系統(tǒng)構(gòu)成的MOD會(huì)連結(jié)這4個(gè)接收到的位,以產(chǎn)生8個(gè)輸出位用于路徑計(jì)量的第q個(gè)字節(jié)的一以冗余初步4位記數(shù)法表示的PMPad,以及用于路徑計(jì)量的第q個(gè)字節(jié)的一以冗余最后4位記數(shù)法表示的PMFad。
NOD的邏輯函數(shù)的運(yùn)作方式是以來(lái)自前一處理器單元Pei(q+1)的一決定位的二進(jìn)制值0將與之對(duì)應(yīng)的處理器單元PEi(q)的MOD的4個(gè)輸出位”遮蓋住”,也就是將它們?nèi)吭O(shè)定為0。也就是說(shuō),如果初步?jīng)Q定位EBPi(q+1)的二進(jìn)制值為0,則4個(gè)輸出位PMPiad(q)也都會(huì)變成0,如果最后初步?jīng)Q定位EBFi(q+1)的二進(jìn)制值為0,則4個(gè)輸出位PMFiad(q)也都會(huì)變成0。
8個(gè)MOD輸出位PMPiad及PMFiad都會(huì)經(jīng)由閂鎖緩存器LΦB以半個(gè)時(shí)鐘周期ΦB為位差被傳送出去。說(shuō)得詳細(xì)一些,初步路徑計(jì)量位PMPiad會(huì)從MOD以半個(gè)時(shí)鐘周期ΦB為位差被送至與之對(duì)應(yīng)的16芯配電線(xiàn)組的一由4條芯線(xiàn)組成的芯線(xiàn)組。這個(gè)16芯配電線(xiàn)組共含有4個(gè)不同的由4條芯線(xiàn)組成的芯線(xiàn)組,而且每一芯線(xiàn)組都分別唯一對(duì)應(yīng)4個(gè)處理器單元PE14(q)中的一處理器單元。
4個(gè)最后路徑計(jì)量位PMFiab(q)是以半個(gè)時(shí)鐘周期ΦB為位差被傳送至比較區(qū)塊(VGL)。VGL會(huì)在同一時(shí)鐘周期接收另外3個(gè)處理器單元PEj(q)的初步路徑計(jì)量位PMPja的一”或”運(yùn)算的結(jié)果、另外3個(gè)處理器單元PEj(q)的初步路徑計(jì)量位PMPjb的一”或”運(yùn)算的結(jié)果、另外3個(gè)處理器單元PEj(q)的初步路徑計(jì)量位PMPjc的一”或”運(yùn)算的結(jié)果、以及另外3個(gè)處理器單元PEj(q)的初步路徑計(jì)量位PMPjd的一”或”運(yùn)算的結(jié)果。此外,VGL還會(huì)以半個(gè)時(shí)鐘周期ΦB循環(huán)接收前一處理器單元PEj(q+1)的初步?jīng)Q定位EBPj(q+1)。為了能夠產(chǎn)生初步?jīng)Q定位EBPj(q)及最后決定位EBFj(q),VGL還具有一多路轉(zhuǎn)換器。
MAX具有4個(gè)”或”閘,以便產(chǎn)生用于最大路徑計(jì)量的第q個(gè)字節(jié)的冗余4元記數(shù)法的4個(gè)位PMMiad(q)。第一”或”閘會(huì)接收來(lái)自4個(gè)處理器單元PE14(q)的所有4個(gè)初步路徑計(jì)量位PMP14a(q),而且如果在這4個(gè)接收到的位中至少有一位是等于1,那么這個(gè)”或”閘還會(huì)將位PMMa(q)調(diào)整為剛好等于一二進(jìn)制值1。第二、第三、以及第四個(gè)”或”閘會(huì)按照與第一”或”閘相同的處理方式分別接收來(lái)自4個(gè)處理器單元PE14(q)的初步路徑計(jì)量位PMP14b(q)、PMP14c(q)、以及PMP14d(q)。
以上依據(jù)附圖11及附圖12說(shuō)明的新的ACSU都是以下述的方式工作,以便能夠從輸入路徑計(jì)量(ZM14)的4個(gè)m位字及到目前為止累加的舊路徑計(jì)量(PPM)的資料為每一種格子欄狀態(tài)(A--H)作出關(guān)于新的最大路徑計(jì)量的決定
在開(kāi)始運(yùn)轉(zhuǎn)之前,先完成一初始化步驟,以便將所有的決定位(EBPi及EBFi)及在所有的處理器單元中所有用于最大路徑計(jì)量(PMMiad)的位均設(shè)定為0。接著將BMU產(chǎn)生的分支計(jì)量(ZM)的連續(xù)的m位字按時(shí)間間隔T應(yīng)用上去,說(shuō)得更精確一些就是將在同一字內(nèi)的連續(xù)分離的字節(jié)以半個(gè)時(shí)鐘周期(T/2)為間隔按照下表的方式相互錯(cuò)位移動(dòng)表6
這樣每一分支計(jì)量字的m/2個(gè)字節(jié)(2m-1,2m-2)、(2m-3,2m-4)、(2m -5,2m-6)、...、(21,20)就會(huì)以半個(gè)時(shí)鐘周期(T/2)的間隔依序發(fā)出脈沖進(jìn)入串級(jí),這個(gè)過(guò)程是從最有意義位的字節(jié)(2m-1,2m-2)。由于分支計(jì)量(ZMi)的數(shù)值小于路徑計(jì)量(PMi)可能達(dá)到的累加值,同時(shí)處理的位寬度m必須與這個(gè)累加值配合,因此這個(gè)最有意義位的分支計(jì)量字節(jié)是由0構(gòu)成,而且直接跟在其后的一或多個(gè)字節(jié)同樣也是由0構(gòu)成。分支計(jì)量以時(shí)鐘頻率2/T通過(guò)由串級(jí)形成的管線(xiàn)(pipeline)。當(dāng)?shù)谝环种в?jì)量字的2m-1位(也就是MSB)出現(xiàn)時(shí),第一串級(jí)階段的的所有決定位(也就是位EBPi((m/2)-1)及位EBFi((m/2)-1))都被設(shè)定為二進(jìn)制值1,而且在之后的時(shí)間都保持在這個(gè)值不變。按照以上說(shuō)明的如附圖11及附圖12所使用的字節(jié)的標(biāo)示方式,字節(jié)的輸入順序?yàn)榈?m/2)個(gè)字節(jié)、第(m/2)個(gè)字節(jié)、第((m/2)-1)個(gè)字節(jié)、第((m/2)-2)個(gè)字節(jié)、...、第一字節(jié)。也就是說(shuō),”第q個(gè)”字節(jié)含有位22n+2及位22n+3,其中n其從0到m-1,q是從0到(m/2)-1。
在每一第q個(gè)處理器單元PEi(q)的ADD內(nèi),分支計(jì)量(ZMi)的字節(jié)22n及位視組22n+1(第q個(gè)字節(jié))會(huì)被加上以4位PMMad(q)表示的數(shù)字。這是來(lái)自作用中的ACSU部閘的最大路徑計(jì)量的第q個(gè)字節(jié)的一種冗余記數(shù)法。然后從4個(gè)新的路徑計(jì)量中選出最大的一,并為4個(gè)分中的每一分支都產(chǎn)生兩個(gè)決定位EBP(q)及EBFi(q)(附圖11)。分支計(jì)量字節(jié)涵蓋數(shù)值范圍(03)*2n(此處的*號(hào)代表相乘的意思),4位記數(shù)PMMad(q)涵蓋數(shù)值范圍(04)*2n。ADD的輸出端涵蓋數(shù)值范圍(07)*2n,其中數(shù)值為4*2n的進(jìn)位位CAi(q)會(huì)被傳輸?shù)角耙惶幚砥鲉卧狿E(q+1)。因此在MOD的輸入端又會(huì)出現(xiàn)一涵蓋數(shù)值范圍(04)*2n的路徑計(jì)量記數(shù)法,這個(gè)路徑計(jì)量記數(shù)法是由下一處理器單元PE(q-1)的和數(shù)字元SU0i(q)、和數(shù)字元SU1i(q)、以及進(jìn)位位CAi(q-1)所構(gòu)成。
MOD以下表的方式修改這個(gè)記數(shù)法
表7
利用經(jīng)過(guò)上述方式修改過(guò)的記數(shù)法就可以經(jīng)由兩個(gè)4-“或”運(yùn)算在MAX中找出4個(gè)初步4位記數(shù)法PMP1ad(q)、PMP2ad(q)、PMP3ad(q)、PMP4ad(q)中最大的一初步4位記數(shù)法的冗余4位記數(shù)法PMMad(q)。
經(jīng)過(guò)修改的記數(shù)法是一種所謂的溫度計(jì)記數(shù)法(thermometerrepresentation),這種記數(shù)法需要的位數(shù)多于二進(jìn)制記數(shù)法。一般而言,一數(shù)字范圍0u的任意自然數(shù)”v”的溫度計(jì)記數(shù)法是由一u位字所構(gòu)成,其中數(shù)字”v”是由從事先約定的結(jié)尾開(kāi)始計(jì)數(shù)(也就是從數(shù)字范圍的最前面或最后面開(kāi)始計(jì)數(shù))的所有v個(gè)第一位的二進(jìn)制值1來(lái)表示。二進(jìn)制記數(shù)法需要INT[1d(u+1)]個(gè)位,也就是u+1的以2為底的對(duì)數(shù)的整數(shù)部分個(gè)位。雖然二進(jìn)制記數(shù)法需要的位寬度較大,以及因?yàn)檩^大的位寬度帶來(lái)的處理上的麻煩(尤其是對(duì)路徑計(jì)量的分配造成的麻煩)都是二進(jìn)制記數(shù)法的缺點(diǎn),但采用二進(jìn)制記數(shù)法也具有最大值的產(chǎn)生過(guò)程容易及做決定的過(guò)程容易的優(yōu)點(diǎn)。最大值的產(chǎn)生方式和習(xí)見(jiàn)的1位結(jié)構(gòu)經(jīng)由”或”運(yùn)算產(chǎn)生最大值的方式是一樣的(附圖12)。
MOD及VGL是按照下表的規(guī)則產(chǎn)生決定位EBP及EBF
表8
上表中的DIFFi(q)代表以4位PMFiad(q)表示的最后路徑計(jì)量(PMFi(q))及3個(gè)初步路徑計(jì)量(PMj(q))之間的最大差異,這3個(gè)初步路徑計(jì)量(PMj(q))系來(lái)自另外3個(gè)處理器單元PEj(q),而且都是以4位PMPjad(q)表示,其中j代表i以外的1、2、3、或4。X代表”任意值”。
如果最后決定位EBFi(q)等于0,則這個(gè)值被評(píng)定為是可以明確的將所涉及的分支i排除在外的訊息。EBFi(q)=1及EBFi(q)=0的組合被評(píng)定為大概可以將所涉及的分支排除在外的信息。EBFi(q)=1及EBFi(q)=1的組合代表的意義是所涉及的分支很可能就是所謂的”幸存者”(Survivor)。初步?jīng)Q定位及最后決定位是從最有意義位的字節(jié)(也就是第(m/2-1)個(gè)字節(jié))開(kāi)始被計(jì)算,而且一直計(jì)算到最位值的字節(jié)(也就是第0個(gè)字節(jié))并得到唯一明確的決定為止。
附圖13顯示新的2位結(jié)構(gòu)的關(guān)鍵路徑。新的2位結(jié)構(gòu)的關(guān)鍵路徑需要的閘電路數(shù)量和現(xiàn)有技術(shù)使用的1位結(jié)構(gòu)的關(guān)鍵路徑(附圖10)完全相同。不過(guò)在2位結(jié)構(gòu)中的閘電路會(huì)變得比較復(fù)雜,這對(duì)于通過(guò)關(guān)鍵路徑所需的時(shí)間可能會(huì)有不利的影響。為了防止這種不利影響的出現(xiàn),本發(fā)明建議采用動(dòng)態(tài)電路技術(shù)來(lái)設(shè)計(jì)閘電路,尤其是以采用文獻(xiàn)[6]提出的DOMINO logic動(dòng)態(tài)電路技術(shù)為最佳解決方案。使用這種動(dòng)態(tài)電路技術(shù)可以將在附圖11及附圖12中被特別單獨(dú)標(biāo)示出來(lái)閂鎖緩存器LΦA(chǔ)及/或LΦB的功能整合到ADD及MOD中。這個(gè)整合作業(yè)有利于縮短通過(guò)關(guān)鍵路徑所需的時(shí)間。
至于目前在集成電路中最常用到的“靜態(tài)”邏輯閘則是以完全互補(bǔ)CMOS技術(shù)來(lái)制作。在此情況下,共制作兩套由輸入變量的二進(jìn)制值決定接通或關(guān)閉的控制開(kāi)關(guān)組件的網(wǎng)絡(luò)(network),其中一套開(kāi)關(guān)網(wǎng)絡(luò)是經(jīng)由MOS場(chǎng)效應(yīng)晶體管形成的n型信道(N-FETs),另外一套開(kāi)關(guān)網(wǎng)絡(luò)是以互補(bǔ)的方式經(jīng)由MOS場(chǎng)效應(yīng)晶體管形成的p型信道(P-FETs)。將這兩套開(kāi)關(guān)網(wǎng)絡(luò)一接一在電源電壓之間接通,其輸出變量則在連接點(diǎn)處被量測(cè)。這種配置方式的優(yōu)點(diǎn)是,只有在輸入端或輸出端的狀態(tài)發(fā)生變化的短初步間里才有電流流動(dòng)。不過(guò)由于晶體管的數(shù)量很多,特別是復(fù)雜的邏輯運(yùn)算需要數(shù)量龐大的晶體管,因此這種閘電路需占用相當(dāng)大的空間。但是如果以單獨(dú)一PFET開(kāi)關(guān)網(wǎng)絡(luò)作為牽引晶體管來(lái)取代這種互補(bǔ)PFET開(kāi)關(guān)網(wǎng)絡(luò),雖然可以縮小用空間,但缺點(diǎn)是靜態(tài)牽引電流消耗的功率很大,而且會(huì)使下拉的動(dòng)作變慢。動(dòng)態(tài)邏輯閘只需設(shè)置一前面提及的開(kāi)關(guān)網(wǎng)絡(luò),而且是使用NFETs,原因是NFETs占用的空間小于PFETs。以預(yù)充電電路、測(cè)定電路、以及保持電路等晶體管需求數(shù)量較小電路取代第二個(gè)開(kāi)關(guān)網(wǎng)絡(luò)或一牽引晶體管。
附圖14顯示動(dòng)態(tài)電路術(shù)的一例子,特別是應(yīng)用顧按下以下之bollean方程式進(jìn)行邏輯運(yùn)算的閘電路y=[(x1·x2)+x3]·x4附圖12的MOD電路含有多個(gè)這種閘電路。上式中的符號(hào)”·”是”與”(AND)邏輯運(yùn)算的一算子(operator),符號(hào)”+”是代表”或”(OR)邏輯運(yùn)算。
附圖14的最上方部分是以習(xí)用的符號(hào)(如附圖12所用的符號(hào))繪出這個(gè)”與-或-與”(AND-OR--AND)閘及接在其后的閂鎖緩存器,此處的閂鎖緩存器可以是附圖12中的一閂鎖緩存器LΦB。附圖14的中間部分顯示使用動(dòng)態(tài)電路技術(shù)設(shè)計(jì)的閘電路的構(gòu)造。以虛線(xiàn)框起來(lái)的部分是由N-FETs的N1、N2、N3、以及N4構(gòu)成的邏輯運(yùn)算開(kāi)關(guān)網(wǎng)絡(luò)。為了接收輸入變量x1、x2、x3、以及x4,所以這個(gè)N-FETs的閘電路有被接通。這個(gè)開(kāi)關(guān)網(wǎng)絡(luò)的一端連接到兩個(gè)電源電壓中負(fù)的程度較大的一(例如接地),這個(gè)電源電壓可能是二進(jìn)制值”0”代表的”低”邏輯電位。這個(gè)開(kāi)關(guān)網(wǎng)絡(luò)的另外一端經(jīng)由一作為N-FET的測(cè)定晶體管N5(可以經(jīng)由測(cè)定訊號(hào)EVL控制這個(gè)測(cè)定晶體管)的串聯(lián)電路及一作為P-FET的預(yù)充電晶體管P1(可以經(jīng)由預(yù)充電訊號(hào)PRC控制這個(gè)預(yù)充電晶體管)的串聯(lián)電路與正的程度比較大的電源電壓連接,這個(gè)電源電壓可能是二進(jìn)制值”1”代表的””邏輯電位。另外還有一保持電路,這個(gè)保持電路是由一與預(yù)充電晶體管P1并聯(lián)的P-FET P2及一反向器INV所構(gòu)成,P-FET P2的汲極經(jīng)由這個(gè)反向器INV被反饋至閘電路。輸出變量y是在反向器INV的輸出端被測(cè)定。
附圖14的最下方部分顯示測(cè)定訊號(hào)EVL、預(yù)充電訊號(hào)PRC、以及輸出訊號(hào)y的一時(shí)間圖形。根據(jù)附圖14,動(dòng)態(tài)閘電路操作的方式為為了測(cè)定輸入條件首先要執(zhí)行預(yù)充電模式,執(zhí)行預(yù)充電模式的方式是先將測(cè)定訊號(hào)EVL從高電平降到低電平,過(guò)一會(huì)兒后接著將預(yù)充電訊號(hào)PRC從高電平降到低電平,這樣預(yù)充電晶體管P1就會(huì)被接通,同時(shí)預(yù)充電晶體管P1及測(cè)定晶體管N5之間的節(jié)點(diǎn)會(huì)升高到高電平。這樣反向器INV的輸出端就會(huì)變成”0”,之后下久預(yù)充電訊號(hào)PRC又回到高電平;但由于經(jīng)P2傳送過(guò)來(lái)的反饋,因此反向器INV的狀態(tài)保持不變,同時(shí)節(jié)點(diǎn)K2也保持在高電平。預(yù)充電模式執(zhí)行完畢后,接著就進(jìn)行實(shí)際的測(cè)定,測(cè)定的過(guò)程是測(cè)定訊號(hào)EVL將回升到高電平,這樣就會(huì)使測(cè)定晶體管N5被接通。如果輸入變量滿(mǎn)足以下方程式的條件[(x1·x2)+x3]·x4=1則表示位于虛線(xiàn)框內(nèi)的開(kāi)關(guān)網(wǎng)絡(luò)是低電阻的,這樣節(jié)點(diǎn)K就會(huì)變到低電平,同時(shí)反向器產(chǎn)生一”1”。如果輸入變量不能滿(mǎn)足上述的條件,則表示開(kāi)關(guān)網(wǎng)絡(luò)是高電阻的,這樣反向器輸出端就會(huì)保持于”0”。
按照以上說(shuō)明的方式,只需使用相當(dāng)少量的晶體管就可以把任意一邏輯閘建構(gòu)成”動(dòng)態(tài)”閘,也就是只要按照希望有的邏輯運(yùn)算方式建構(gòu)虛線(xiàn)框內(nèi)的開(kāi)關(guān)網(wǎng)絡(luò)即可。這樣就可以將本發(fā)明的ACSU內(nèi)的MOD及ADD的復(fù)雜的閘電路造成的負(fù)面影響控制在可以接受的程度。另外一優(yōu)點(diǎn)是,由于位于每一動(dòng)態(tài)閘的輸出端的保持電路(反向器I NV及晶體管P2)都可以執(zhí)行閉鎖功能,因此位于MOD的輸出端的閂鎖緩存器(附圖11及附圖12)本身不需要有專(zhuān)用的電路。為了這個(gè)目的可以將用于半個(gè)時(shí)鐘周期ΦA(chǔ)及ΦB的時(shí)鐘脈沖訊號(hào)加以適當(dāng)?shù)奶幚?,使其扮演在?dòng)態(tài)閘的測(cè)定訊號(hào)EVL角色。
在本發(fā)明的一種有利的實(shí)施方式中,動(dòng)態(tài)閘是以在文獻(xiàn)[6]中有詳細(xì)說(shuō)明的所謂的DOMINO技術(shù)設(shè)計(jì)而成。在此情況下,當(dāng)通往低電位的路徑被打開(kāi)時(shí),輸出端就被預(yù)充電到高電平,當(dāng)通往低電位的路徑被活化時(shí),預(yù)充電的作業(yè)就會(huì)被停下來(lái)。
以上根據(jù)附圖11至附圖14說(shuō)明的只是關(guān)于本發(fā)明的一種的實(shí)施方式(使用基數(shù)-4-格子欄)。但是本發(fā)明的原理的適用范圍并不僅限于這種格子欄,而是可以普遍應(yīng)用于所有想象得到的基數(shù)-2x-格子欄(x1)。在此情況下,為每一種格子欄狀態(tài)必須處理的分支計(jì)量的數(shù)量,以及需要比較的累加路徑計(jì)量的數(shù)量當(dāng)然會(huì)相對(duì)的增加或減少。此外,格子欄的狀態(tài)數(shù)量也可以是大于8或是小于8;目前在實(shí)務(wù)上是使用8種或16種(甚至更多)格子欄狀態(tài)。
雖然前面是以2位結(jié)構(gòu)為例說(shuō)明本發(fā)明的原理,但是本發(fā)明的范圍并不僅限于2位結(jié)構(gòu)。串級(jí)內(nèi)的處理器單元配置方式也可以被設(shè)計(jì)成可以同時(shí)處理p>2分支計(jì)量位。此種配置方式當(dāng)然也屬于本發(fā)明的范圍。
另外需要說(shuō)明的一點(diǎn)是,附圖12顯示的ADD、MOD、VGL、以及MAX的結(jié)構(gòu)/配置方式只是一種范例或是一種有利的實(shí)施方式。真正重要的是這些功能區(qū)塊須執(zhí)行的邏輯運(yùn)算,而這些)運(yùn)算也可以利用不同于附圖12的例子的電路設(shè)計(jì)來(lái)完成。
在以上的說(shuō)明中ACSU是以選擇最大值的方式運(yùn)作。如果在BMU內(nèi)是以一種利用選擇最小值的方式找出”幸存者”(Survivor)的間隔函數(shù)來(lái)計(jì)算分支計(jì)量,則ACSU中的一些邏輯運(yùn)算必須反向進(jìn)行。此項(xiàng)修改工作并不困難,一般專(zhuān)業(yè)人士都應(yīng)該可以自行完成。
權(quán)利要求
1.一種用來(lái)對(duì)回旋碼進(jìn)行譯碼的維特比譯碼器,這種回旋碼是以一具有2z種狀態(tài)的基數(shù)-2x-格子欄為基礎(chǔ),其中x及z均為大于或等于1的整數(shù),此種維特比譯碼器含有第一計(jì)算單元(BMU)的任務(wù)是為每一種格子欄狀態(tài)從一輸入序列中的周期性連續(xù)出現(xiàn)的多位字計(jì)算出2x個(gè)分支計(jì)量(ZMi)作為多位字;第二個(gè)計(jì)算單元(ACSU)的任務(wù)是為每一種格子欄狀態(tài)在每一脈沖重復(fù)周期將2x個(gè)分支計(jì)量(ZMi)分別與從2x種之前的格子欄狀態(tài)已經(jīng)累加出來(lái)的2x個(gè)路徑計(jì)量(PMM)相加,并按照事先設(shè)定的定義從按照此種方式計(jì)算出來(lái)的2x個(gè)路徑計(jì)量(PMi)中挑選出最極端的路徑計(jì)量作為下一周期的相加作業(yè)的新的累加路徑計(jì)量(PPM);第三個(gè)計(jì)算單元(SMU)的任務(wù)是儲(chǔ)存從第二個(gè)計(jì)算單元(ACSU)獲得的關(guān)于路徑計(jì)量(PMi)的身分(i)的資料,這些路徑計(jì)量(PMi)都是第二個(gè)計(jì)算單元在連續(xù)的脈沖重復(fù)周期中挑選出來(lái)的;其中第二個(gè)計(jì)算單元(ACSU)為每一種格子欄狀態(tài)都含有2x個(gè)處理器單元(PE)的并聯(lián)串級(jí),這些處理器單元依序串聯(lián)在一起,以便對(duì)分支計(jì)量的位及極端的路徑計(jì)量(PPM)的位按照位的位值逐步降低的方式進(jìn)行管線(xiàn)處理(pipeline processing),此外第二個(gè)計(jì)算單元(ACSU)為每一種格子欄狀態(tài)都含有一用于管線(xiàn)內(nèi)相同序號(hào)(q)的所有處理器單元的極端值選擇裝置(MAX);其特征是每一串級(jí)所含的處理器單元(PE)的數(shù)量都小于路徑計(jì)量(PM)的數(shù)值范圍的二進(jìn)制數(shù)記數(shù)法所使用的位數(shù)m,每一串級(jí)都含有對(duì)應(yīng)于m/p的整數(shù)部分INT(m/p)的數(shù)量的處理器單元(PE1m/p),其中p是一大于或等于2但是小于m的整數(shù),而且串級(jí)內(nèi)的INT(m/p)個(gè)處理器單元中的每一處理器單元都唯一對(duì)應(yīng)于m位的INT(m/p)個(gè)連續(xù)分離的p字節(jié)中的一。
2.如權(quán)利要求第1項(xiàng)的維特比譯碼器,其特征為數(shù)值m及數(shù)值p之間具有以下的關(guān)系m/p是一整數(shù),因此每一串級(jí)都是由m/p個(gè)處理器單元組成,而且每一處理器單元都唯一對(duì)應(yīng)于一p字節(jié)。
3.如權(quán)利要求第1項(xiàng)的維特比譯碼器,其特征為m/p不是一整數(shù),因此每一串級(jí)除了含有INT(m/p)個(gè)處理器單元之外,還要另外再增加一對(duì)應(yīng)于r字節(jié)的處理器單元,這個(gè)r字節(jié)是由全部的位扣掉INT(m/p)個(gè)p字節(jié)后剩下的r個(gè)字節(jié)成的字節(jié)。
4.如權(quán)利要求第3項(xiàng)的維特比譯碼器,其特征為另外增加的這個(gè)處理器單元對(duì)應(yīng)于m位的r個(gè)最有意義位或r個(gè)最小意義位。
5.如權(quán)利要求第1-4項(xiàng)中任一項(xiàng)的維特比譯碼器,其特征為每一處理器單元(PEi)均含有以下的裝置一相加裝置(ADD),用來(lái)產(chǎn)生兩個(gè)數(shù)字的以二進(jìn)制數(shù)表示的和數(shù),這兩個(gè)數(shù)字中的一是經(jīng)由相對(duì)應(yīng)的分支計(jì)量字節(jié)表示的二進(jìn)制數(shù),另外一是到目前為止累加的極端路徑計(jì)量的相對(duì)應(yīng)的字節(jié)的一種冗余記數(shù)(PMMad);一修改裝置(MOD),接收前面提及的和數(shù)的p最小意義位(SUi-0,SUi-1)、來(lái)自串級(jí)內(nèi)下一處理器單元(序號(hào)q-1)的相加裝置的進(jìn)位位(CAi)、以及來(lái)自串級(jí)內(nèi)前一處理器單元(序號(hào)q+1)的一初步?jīng)Q定位(EBP)及一最后決定位(EBF)作為輸入變量,以便產(chǎn)生一初步路徑計(jì)量(PMP)的一相對(duì)應(yīng)的字節(jié)的一種冗余記數(shù)(PMPiad)及一最后路徑計(jì)量(PMF)的一相對(duì)應(yīng)的字節(jié)的一種冗余記數(shù)(PMFiad);一比較裝置(VGL),連結(jié)來(lái)自所涉及的處理單元(PEi)的最后路徑計(jì)量記數(shù)(PMPiad)及來(lái)自同一序號(hào)(q)的其它處理器單元(EBPi)的2x-1個(gè)初步路徑計(jì)量記數(shù)(PMFjad),以便為下一處理器單元(序號(hào)q-1)產(chǎn)生初步?jīng)Q定位(EBPi)及最后決定位(EBFi)。
6.如權(quán)利要求第5項(xiàng)的維特比譯碼器,其特征為在相加裝置(ADD)的輸出端及修改裝置(MOD)的輸入端之間設(shè)有第一閂鎖緩存器(LΦA(chǔ)或LΦB);在修改裝置(MOD)的輸出端設(shè)有第二個(gè)閂鎖緩存器(LΦB或LΦA(chǔ));這兩個(gè)閂鎖緩存器以半個(gè)時(shí)鐘周期為位差發(fā)出時(shí)鐘脈沖。
7.如權(quán)利要求第1-6項(xiàng)中任一項(xiàng)的維特比譯碼器,其特征為以最大路徑計(jì)量作為極端路徑計(jì)量(PMM)。
8.如權(quán)利要求第5-7項(xiàng)中任一項(xiàng)的維特比譯碼器,其特征為冗余記數(shù)法為一種溫度計(jì)記數(shù)法,由一u位字構(gòu)成,其中u是所要表示的自然數(shù)的最大值,而真實(shí)的值v是經(jīng)由一相同的預(yù)先選定的二進(jìn)制值由從事先約定字的結(jié)尾開(kāi)始計(jì)數(shù)的所有v個(gè)第一位的二進(jìn)制值1來(lái)表示;每一極端值選擇裝置(MAX)都具有u個(gè)邏輯”或”閘,每一邏輯”或”閘都接收來(lái)自對(duì)應(yīng)于分支計(jì)量字節(jié)之初步路徑計(jì)量位(PMPi)的溫度計(jì)記數(shù)的相同序號(hào)的2x個(gè)位,因此每一邏輯”或”閘在其輸出端都會(huì)產(chǎn)生到目前為止累加的極端路徑計(jì)量的相對(duì)應(yīng)的字節(jié)的溫度計(jì)記數(shù)(PPMad)的u個(gè)位中的一位。
9.如權(quán)利要求第8項(xiàng)的維特比譯碼器,其特征為p=2,且u=4。
10.如權(quán)利要求第1-7項(xiàng)中任一項(xiàng)的維特比譯碼器,其特征為p=2。
11.如權(quán)利要求第1-10項(xiàng)中任一項(xiàng)的維特比譯碼器,其特征為x=2。
12.如權(quán)利要求第5-11項(xiàng)中任一項(xiàng)的維特比譯碼器,其特征為每一處理器單元的相加裝置(ADD)要修改裝置(MOD)、以及比較裝置(VGL)均含有邏輯閘;在第二個(gè)計(jì)算單元(ACSU)內(nèi)的所有的邏輯閘都是動(dòng)態(tài)電路,而且最好是使用DOMINO技術(shù)的動(dòng)態(tài)電路。
13.如權(quán)利要求第6項(xiàng)及第12項(xiàng)的維特比譯碼器,其特征為閂鎖緩存器(LΦA(chǔ),LΦB)的功能在相加裝置(ADD)及修改裝置(MOD)的動(dòng)態(tài)閘中被實(shí)施。
全文摘要
一種維特比譯碼器,具有一用于基數(shù)-文檔編號(hào)H03M13/41GK1512673SQ20031012071
公開(kāi)日2004年7月14日 申請(qǐng)日期2003年11月28日 優(yōu)先權(quán)日2002年11月28日
發(fā)明者N·布雷勒, N 布雷勒 申請(qǐng)人:因芬尼昂技術(shù)股份公司