將如何在標準3操作數(shù)CPU上實施,其中所述3個操作數(shù)將表示2個源操作數(shù)和I個目的地操作數(shù)。此處,可看到,必須將操作劃分為至少3個順序指令。這歸因于指令操作數(shù)格式限制,其不允許足夠的位用于編碼足夠的寄存器且還一般將為對寄存器堆在一個周期中接受一個以上寫入操作的能力的限制。在此編碼中,在每一操作碼中顯式地編碼所有寄存器且所有寄存器存在于通用寄存器堆中。
[0078]在下部部分中,使用對一些寄存器的隱式編碼且將這些特殊字段實施為與通用寄存器堆分開的專用寄存器來說明相同操作。
[0079]圖8和圖9涉及本發(fā)明的一方面,其中通過使寄存器尋址隱含于指令中來獲得圖3的最佳途徑。
[0080]圖9的圖展示維特比指令所實施的實際功能。在此圖中,選擇一對先前狀態(tài)(Sa,Sb),其對應于用于新狀態(tài)Sc的所述對潛在前驅(qū)者狀態(tài)。由多路復用器(901)選擇以將產(chǎn)生新狀態(tài)的方式解譯新符號的對應成本,且由加法器(902)將其加到這些先前狀態(tài)的對應成本,從而產(chǎn)生到達狀態(tài)Sc的一對潛在成本(903)。這些成本經(jīng)比較且由選擇器(904)選擇最低成本前驅(qū)者狀態(tài),指示對應的位轉(zhuǎn)變(905)且輸出對應成本(906)。這些對應成本將可能隨著施加每一新符號而針對每一狀態(tài)增加,然而由于狀態(tài)存儲器限于有限數(shù)目的狀態(tài)(在此情況下為6個狀態(tài)),所以在對應于所有狀態(tài)的成本的任何例子處存在一組值,其中最小值與最大值之間的范圍由最大狀態(tài)轉(zhuǎn)變成本和最大狀態(tài)存儲器限制。在此實例中,這小于64以便防止狀態(tài)成本無限增長,當任何狀態(tài)成本超過128時輸出指示(907)。
[0081]將先前狀態(tài)成本中的至少一者> 128的指示(908)供應到規(guī)格化塊909,且此規(guī)格化塊通過減去64來規(guī)格化狀態(tài)成本,這保證所有狀態(tài)成本將保持在有限整數(shù)范圍內(nèi)。
[0082]從所述指令輸出所得新狀態(tài)成本910且其還由最小成本塊911使用。此塊的目的在于監(jiān)視在新符號處理期間計算的所有狀態(tài)成本且確定所有所得的新狀態(tài)成本集合中的最低成本。
[0083]—旦已確定了產(chǎn)生狀態(tài)的轉(zhuǎn)變,便計算用于所述狀態(tài)的新成本且更新狀態(tài)成本表。
[0084]供應新符號,由多路復用器901選擇將符號解譯為I或O的相關聯(lián)成本中的每一者,在加法器902中將這些成本加到先前符號成本,從而產(chǎn)生與所述符號的2個可能解譯相關聯(lián)的一對成本903。
[0085]由于所述結(jié)果和控制變量中的若干者在長度上小于32位,所以這些可合并為單個32位核心寄存器的子字段。
[0086]為了使得能夠在多個占先任務中操作指令集擴展,還有必要保存這些寄存器和任何狀態(tài),這在這些狀態(tài)旗標也被合并到相同控制寄存器中的情況下進一步被簡化。
[0087]—旦已處理了足夠的符號,便有必要執(zhí)行追溯操作以確定產(chǎn)生當前狀態(tài)的分支序列。這是相對簡單的操作,但再次涉及大量的地址計算、位操縱和數(shù)據(jù)加載操作。再次,這些可使用用以執(zhí)行每一追溯步驟的專用指令和用于尋址追溯歷史的專用寄存器來有效地實施。
[0088]考慮在圖10的網(wǎng)格圖中發(fā)射的位序列。在此編碼中,Rx和Ry表示存在于通用寄存器堆外部的特殊寄存器中的4個所需源操作數(shù)中的2個操作數(shù),且Rp、Rq表示保存在寄存器堆外部的特殊寄存器中的結(jié)果中的2個結(jié)果,且因此可為寄存器的子字段且可甚至與Rx和Ry重疊。
[0089]在發(fā)射所述數(shù)據(jù)之后,接收器計算成本和追溯,且實現(xiàn)圖2的成本和追溯歷史。
[0090]如果追溯在T = 6處開始且發(fā)現(xiàn)狀態(tài)10為最低成本狀態(tài),那么接收器解碼序列101101,其處于發(fā)射數(shù)據(jù)的相反次序且接著需要如圖11中那樣被倒轉(zhuǎn)。
[0091]在接收另一符號且再次從最低成本路徑(其再次假設為狀態(tài)“10”)開始之后,接收器現(xiàn)在解碼1000101,如圖12所示;顯然,在一些符號之后,路徑會聚且沒有必要追溯超過狀態(tài)T = 3。
[0092]在追溯期間,在添加每一新符號之后,除了偏移I個位之外,路徑將通常不顯著改變,還明白,一旦新追溯歷史在先前歷史中會聚于一狀態(tài),其便將永遠不會再次分叉,因而有可能通過用先前追溯操作檢測會聚來減少在追溯上花費的努力。在SW中,這是復雜的任務,其涉及在比較之前掩蔽并旋轉(zhuǎn)位字段,此操作的開銷向每一迭代添加足以使得其益處被否定的額外周期,然而使用專用硬件來使用追溯索引選擇字段來存取這些位字段意味著其可透明地執(zhí)行且大大減少追溯操作所消耗的功率和周期。
[0093]一旦已執(zhí)行了追溯,便通常一次I字節(jié)地提取最舊的數(shù)據(jù)位,然而在初始階段期間,通常正在搜索同步模式且不知道位對準,這進一步使用于SW的初始追溯操作復雜化,但再次可通過添加用于以對準到CPU寄存器中的正確次序提取最舊位的特定指令和用于在若干位已被使用時“消耗”所述位的單獨指令來進行優(yōu)化,以此方式可提取并比較字節(jié),從而一次丟棄一個位,直到已檢測到同步為止,此后以應用程序處理位的速率來消耗所述位。
[0094]作為最后的功能,維特比處理中的每一者需要數(shù)據(jù)結(jié)構含有維特比狀態(tài)、追溯歷史、追溯表和狀態(tài)成本表。這些需要針對每一信道而分開,且因此所有地址將需要某一偏移。這可再次通過將維特比數(shù)據(jù)結(jié)構基礎地址實施為維特比控制/狀態(tài)字的部分來向處理器隱藏。
[0095]為了最小化對其它處理的影響,優(yōu)選隱式維特比寄存器作為對核心cpu寄存器的補充,且SW能夠在上下文切換時有效地保存其狀態(tài),然而大多數(shù)處理將不使用這些寄存器,因而其不需要保存所述寄存器。
[0096]為了最小化對其進行保存的次數(shù),在OS不需要針對每一處理知道是否需要其的情況下,可將額外狀態(tài)位添加到維特比狀態(tài)/控制寄存器以指示何時維特比塊處于使用中,這些可由維特比指令根據(jù)處理的狀態(tài)來自動設定/清除,以此方式,上下文切換可測試這些旗標以確定是否存在將要保存的任何上下文,以此方式,其不從未使用所述功能性的處理中占用有價值的堆??臻g,且其在未有效處于使用中的情況下不被存儲,因此可在多線程環(huán)境中有效地使用維特比。
[0097]根據(jù)本發(fā)明的另一方面,本發(fā)明涉及一種根據(jù)以上描述的本發(fā)明的方法針對解碼經(jīng)卷積編碼的數(shù)據(jù)而優(yōu)化的處理器。所述處理器經(jīng)布置以用虛幻寄存器擴展處理器的寄存器集合,所述虛幻寄存器在物理上不具有任何寄存器存儲裝置,而是基于用作循環(huán)控制寄存器的核心寄存器字段以及指示當前狀態(tài)成本集合分配和數(shù)據(jù)結(jié)構的基礎地址且選擇當前和下一狀態(tài)表的映射的狀態(tài)寄存器字段來返回用于源和目的地狀態(tài)成本操作數(shù)的地址。
[0098]參看圖13,本發(fā)明的處理器的操作由以包含多個字段的單個字(或操作碼)的形式存儲在存儲器中的指令控制。在所說明的實例中,舉例來說,操作碼147說明典型的3操作數(shù)指令,其由兩個源操作數(shù)148、指令字段150和目的地寄存器地址(149)組成。
[0099]操作數(shù)OPl、OP2用以借助于多路復用器142從寄存器堆141選擇兩個源操作數(shù),所述源操作數(shù)被傳遞到ALU 146。ALU的輸出通常使用地址149通過未說明的路徑而被寫回到寄存器堆141中。
[0100]在所說明的實例中,寄存器堆141包含32個位置或寄存器RO到R31,但這并不是對本發(fā)明的限制。還必須了解,圖14是打算說明處理器中的邏輯數(shù)據(jù)流的簡化功能圖,且其并不限制本發(fā)明的處理器的結(jié)構。明確地說,本發(fā)明還包括管線式架構,其中在不同時間執(zhí)行這些操作。
[0101]根據(jù)本發(fā)明,操作碼147可包括去往“虛幻寄存器”143的地址,其不對應于寄存器堆141中的單獨存儲空間,而是為在寄存器RO到R31中的值和/或在CPU內(nèi)部或外部的額外值151、152的邏輯函數(shù)。當由指令尋址時,虛幻寄存器返回根據(jù)信號和/或并未由指令顯式尋址的寄存器而計算的值。
[0102]在此實例中,操作碼147以每一者6個位的方式存儲操作數(shù)地址148,因而給出尋址比32個物理寄存器多的操作數(shù)的能力。可例如通過對在寄存器堆141中沒有配對物的一個地址進行編碼來存取虛幻寄存器。
[0103]盡管圖14的圖展示算術指令的典型格式和處理,但CPU通常還具有非算術指令,例如加載/存儲指令。根據(jù)本發(fā)明,這些指令的操作數(shù)也可為虛幻寄存器143。還希望本發(fā)明可包括多個虛幻寄存器,且其可彼此交互,例如其中一些虛幻寄存器尤其取決于其它虛幻寄存器的值。本發(fā)明還包括其中一些虛幻寄存器與獨立存儲器元件有關且其可保持例如額外隱臧的寄存器等狀態(tài)的情況。
[0104]有利的是,虛幻寄存器經(jīng)布置以基于用作循環(huán)控制寄存器的核心寄存器字段以及指示當前狀態(tài)成本集合分配和數(shù)據(jù)結(jié)構的基礎地址且選擇當前和下一狀態(tài)表的映射的狀態(tài)寄存器字段來返回用于源和目的地狀態(tài)成本操作數(shù)的地址。
【主權項】
1.一種用于解碼經(jīng)卷積編碼的數(shù)據(jù)的處理器,所述處理器經(jīng)配置以: 將轉(zhuǎn)變成本設置為處于范圍O到M內(nèi)的非負值,其中M為在K個步驟中獲得的最大成本,其中K為所述經(jīng)卷積編碼的數(shù)據(jù)中的存儲器位的數(shù)目;以及 為每個累積路徑成本分配N個位,其中(2~(K+1)*M)-1 < 2~N-1, 其中所述處理器進一步經(jīng)配置以執(zhí)行用以實施加-比-選