專利名稱:Turbo解碼器的緩沖器結構的制作方法
背景I.領域本發明涉及數據通信。本發明特別涉及一種為Turbo解碼器存儲中間結果的新穎的且經改善的結構。
II.背景無線通信系統廣泛用于提供多種類型的通信諸如話音、數據等。這些系統可能基于碼分多址(CDMA)、時分多址(TDMA)或一些其它的多址技術。CDMA系統提供優于其它類型系統的一定優勢,包括增加的系統容量。
CDMA系統可能設計成支持一個或多個CDMA標準諸如(1)“TIA/EIA-95-BMobile Station-Base Station Compatibility Standard for Dual-ModeWideband Spread Spectrum Cellular System”(the IS-95 standard)(2)“TIA/EIA-98-D Recommended Minimum Standard for Dual-Mode WidebandSpread Spectrum Cellular Mobile Station”(the IS-98 standard)(3)由名為“3rdGeneration Partnership Project”(3GPP)的聯盟提供的標準,它們體現在一組文檔內,包括文檔號3G TS 25.211、3G TS 25.212、3G TS 25.213以及3G TS 25.214(W-CDMA標準),(4)由名為“3rdGeneration PartnershipProject 2”(3GPP2)的聯盟提供的標準,它們體現在一組文檔內,包括文檔號C.S0002-A、C.S0005-A、C.S0010-A、C.S0011-A、C.S0024以及C.S0026(cdma2000標準)以及(5)一些其它標準。這些標準在此引入作為參考。
每個標準具體定義了在前向和反向鏈路上數據傳輸的處理。例如,語音信息可能以特定數據率被編碼,格式化為一定義的幀格式并根據特定處理方案經處理(例如,為差錯糾正和/或檢測而編碼、經交織等)。特定標準(例如cdma2000標準)定義的幀格式和處理可能不同于其它標準(例如W-CDMA標準)。
W-CDMA標準支持靈活的操作。例如,數據可能以突發方式在一個或多個“物理”信道上傳輸,數據率可能隨每幀而變化,數據的處理還可能有變化(例如隨每個幀不同和/或隨“傳輸”信道和信道不同)等。
W-CDMA標準使用并行鏈接卷積編碼器(經常稱為Turbo編碼器),可能選用此以在傳輸前對碼段(即數據分組編碼。Turbo編碼器使用兩個并行操作的組成編碼器與碼交織器的組合。碼交織器根據特定定義的交織方案將分組內的信息攪亂(即交織)。一個編碼器對分組內的信息比特進行編碼以生成奇偶校驗位的第一序列,另一個編碼器對經攪亂的信息編碼以生成奇偶校驗位的第二序列。信息比特以及第一和第二序列的奇偶校驗位的所有或一些被發送。
互補(計算強度大的)Turbo解碼在接收機單元處實現。對每個經Turbo編碼的分組,接收到的比特被存儲在緩沖器內。第一編碼器的信息和奇偶校驗位從緩沖器中獲取并根據第一組成碼被解碼以提供指明信息比特的檢測到的值的置信度的調整的“外來”信息。包括從第一解碼器來的外部信息的中間結果然后以在發射機單元處所使用的碼交織相匹配的交織順序存儲在存儲單元內。
然后從它們相應的源獲取從第二編碼器來的中間結果和奇偶校驗位并根據第二組成碼經解碼以提供指明信息比特的檢測到的值內秘密調整的外部信息。包括從第二解碼器來的外部信息的中間結果然后以與在發射機單元處所使用的碼交織互補的解交織順序被存儲在存儲單元內。中間結果為第一組成解碼器在下一迭代中使用。第一和第二組成解碼器的解碼經多次迭代以產生最終結果。
對每個要被解碼的信息比特,存儲單元被訪問以獲得由先前解碼為該比特生成的中間結果(如果有的話)。為每個經編碼比特生成的中間結果也存儲回存儲單元用于下一次解碼。隨著分組內的比特被編碼存儲單元因此被連續訪問。有效的存儲器管理對有效的Turbo解碼是很關鍵的。
由此可見,是很需要可能用于有效存儲Turbo解碼器的中間結果的緩沖器結構的。
概述本發明的方面提供可能用于有效存儲Turbo解碼器中間結果的緩沖器結構(例如先驗概率(APP)數據)。為增加在Turbo解碼中的APP數據的訪問吞吐量,緩沖器結構設計成支持對于每個訪問循環兩個或多個信息比特的APP數據的進發訪問。每個比特的APP數據或是代表信息比特和其外部信息的組合或只是比特的外部信息。進發訪問可以通過將緩沖器分為多個存儲體而獲得,每個存儲體可獨立被訪。例如,六個或更多的存儲體可能用于在W-CDMA系統內使用的Turbo解碼器。
Turbo解碼器使用碼交織方案以在由第二組成編碼器編碼前攪亂數據分組內的信息比特。碼交織方案一般指定(1)將數據分組(或碼段)內的信息一行一行寫入二維數組,(2)在每行內攪亂元素以及(3)攪亂行。之后比特從數組內一列一列讀出。同樣的交織方案以及互補的解交織方案用于存儲/獲取Turbo解碼器的APP數據。
對Turbo解碼,APP數據可能通過“經交織”尋址模式或“線性”尋址模式。經交織的尋址模式對應在數據分組內“經交織”位置的APP數據的訪問,線性尋址模式對應分組內“線性”位置處的APP數據的訪問。為避免訪問爭用,存儲體被分配給數組的行列使得通過任一(或是線性或是經交織的)尋址模式訪問的相繼比特的APP數據是來自不同的存儲體。
為保證以線性尋址模式訪問兩個不同的存儲體以獲得兩個相繼比特的APP數據,存儲體能經安排并經分配使得一組存儲體用于數組的偶數列,而另一組存儲體用于奇數列。使用該奇/偶分配方案,相繼線性地址與兩個不同的存儲體組相關。
為保證以經交織尋址模式訪問兩個不同的存儲體以獲得兩個相繼比特的APP數據,存儲體能被分配給數組的行組。由于數據分組的比特以經交織尋址模式從數組一列一列地獲取,則行可以被安排成組使得經交織尋址模式的相鄰行被分配給不同組。行的分組一般取決于用于攪亂行的一個或多個排列模式。行分組在以下將詳細描述。
本發明的多個方面、實施例以及特征將在以下詳細描述。
附圖的簡要描述通過下面提出的結合附圖的詳細描述,本發明的特征、性質和優點將變得更加明顯,附圖中相同的符號具有相同的標識,其中
圖1是能實現本發明多個方面的通信系統的簡化框圖;圖2A和2B是根據W-CDMA標準分別用于下行鏈路數據傳輸在發射機單元和接收機單元處的信號處理圖;圖3是W-CDMA標準定義的Turbo編碼器的圖例;圖4是Turbo解碼器的設計的模塊圖;圖5是根據本發明實施例的Turbo解碼器的模塊圖6是根據特定行分組將R.C數組內的行列分配到六個存儲體的圖例;圖7是定義存儲Turbo解碼器的中間結果的緩沖器結構的處理實施例的流程圖,以及;圖8是可能用于實現圖5示出的APP存儲單元的緩沖器結構的實施例模塊圖。
詳細描述圖1是能實現本發明多個方面的通信系統100的簡化模塊圖。在特定的實施例中,通信系統100是符合W-CDMA標準的CDMA系統。在發射機單元110處,從數據源一般以分組發送到數據到發送(TX)數據處理器114,它對數據格式化、編碼并處理以生成一個或多個模擬信號。模擬信號然后提供給發射機(TMTR)116,它對信號實現(正交)調制、濾波、放大并上變頻以生成已調信號。已調信號然后通過一個或多個天線118發射(在圖1只示出一個)到一個或多個接收機單元。
在接收機單元130處,經發射的信號由一個或多個天線132(再次只示出一個)接收,并提供給接收機(RCVR)134。在接收機134內,接收到的信號經放大、濾波、下變頻、(正交)解調并數字化以生成采樣。采樣然后由接收(RX)數據處理器136經處理并解碼以恢復經發射的數據。接收機單元130處的處理和解碼以與在發射機單元110的處理和編碼互補的方式實現。經恢復的數據然后提供給數據宿138。
以上描述的信號處理支持單向的話音、視頻、分組數據、消息以及其它類型的通信。雙向通信系統支持雙向數據傳輸。然而,其它方向的信號處理因為簡潔的緣故未在圖1中示出。
圖2A是根據W-CDMA標準在發射機單元110處下行鏈路數據傳輸的信號處理圖。下行鏈路指的是從基站到用戶終端的傳輸(或用戶設備(UE)),上行鏈路是指從用戶終端到基站的傳輸。圖2A示出的信號處理一般由圖1的發射數據處理器實現。W-CDMA系統的上層信令層支持多個傳輸信道的同時傳輸,每個傳輸信道能攜帶特定通信的數據(例如話音、視頻、數據等)。以分組形式將每個傳輸信道的數據提供給相應的傳輸信道處理部分210,其中分組又稱為傳輸分組。
在傳輸信道處理部分210內,在框212內,每個傳輸分組被用于計算循環冗余校驗(CRC)比特。CRC比特附在傳輸分組上并在接收機單元用于差錯檢測。多個經CRC編碼的分組然后在框214內被串行鏈接起來。如果在鏈接后的比特總數大于碼分組的最大大小,則比特被分段為多個(等大小)的碼分組。每個碼分組然后以特定的編碼方案編碼。每個碼分組然后在框216內以特定的編碼方案(例如,卷積碼、Turbo碼)編碼或根本不編碼。
然后在碼比特上在框218內實現碼率匹配。碼率匹配根據更高信令層分配的碼率匹配特性而實現。在上行鏈路上,比特經重建或截短(即刪除)使得要發射的比特數與可用比特數匹配。在框220內,在下行鏈路上,未使用的比特位置用不連續發送(DTX)比特填充。DTX比特指明何時關閉傳輸以及實際沒有傳輸。
在框222內,比特然后根據特定交織方案經交織以提供時間分集。根據W-CDMA標準,實現交織的時間間隔能從一組可能的時間間隔中選出(即10msec、20msec、40msec以及80msec)。交織時間間隔還被稱為傳輸時間間隔(TTI)。TTI是與每個傳輸信道相關的屬性,并且根據W-CDMA標準,在通信對話持續時間內不改變。如在此使用的,“話務”包括特定傳輸信道的一個TTI內的比特。
當選擇的TTI大于10msec時,在框224內,話務被分段并映射到相繼的傳輸信道無線電幀內。每個傳輸信道無線電幀對應在(10msec)無線電幀時段上的傳輸。根據W-CDMA標準,話務可能在1、2、4或8個無線電幀時段上經交織。
在框232內,從所有活動傳輸信道處理部分210來的無線電幀然后經串行多路復用到經編碼的復合傳輸信道(CCTrCH)上。在框234內,DTX比特然后可能被插入多路復用的無線電幀使得要發射的比特數匹配用于數據傳輸的物理信道上的可用比特數。如果使用多于一個物理信道,則在框236內比特在物理信道間被分段。特定的物理信道能攜帶帶有不同TTIs的傳輸信道。在框238處,每個物理信道的每個無線電幀時段內的比特然后經交織以提供附加時間分集。在框240處經交織的物理信道無線電幀然后被映射到它們相應的物理信道。相繼的以生成合適傳輸到用戶終端的已調信號的信號處理在領域內是已知的,在此不作描述。
圖2B是根據W-CDMA標準下行鏈路數據傳輸在接收機單元130處的信號處理圖。圖2B示出的信號處理與圖2A示出的互補,且一般由圖1內的接收數據處理器實現。開始時,已調信號經接收、經調整、經數字化且經處理以提供碼元給用于數據傳輸的每個物理信道。每個碼元具有特定的分辨率(例如4比特或更多)并對應發送的比特。在框252內,在每個物理信道的每個無線電幀時段內的碼元經解交織,且從所有物理信道來的經解交織的碼元在框254內經鏈接。對下行鏈路傳輸,非發送的比特在框256內被檢測并被移去。在框258,各碼元然后被多路分解成各傳輸信道。每個傳輸信道的無線電幀然后被提供給相應的傳輸信道處理部分260。
在傳輸信道處理部分260內,在框262內傳輸信道無線電幀經鏈接成話務。每個話務包括一個或多個傳輸信道無線電幀并對應在發射機單元處使用的特定TTI。每個話務內的碼元在框264內經解交織,在框266內移去非發射的碼元。然后在框268內實現反碼率匹配以累加重復碼元并為截除的碼元插入“don’t care”。在框270內話務內的每個經編碼的分組然后經解碼。在框272內,經解碼的分組然后經鏈接并被分段為它們相應的傳輸分組。在框274內,每個傳輸分組然后使用CRC比特檢查差錯。
圖3是W-CDMA標準定義的并行鏈接卷積編碼器(又稱為Turbo編碼器)300的圖例。Turbo編碼器300可能用于實現圖2A內框216內的信道編碼。Turbo編碼器300包括一對組成編碼器312a和312b、碼交織器314以及截短器以及多路復用器316。碼交織器314根據W-CDMA標準定義的特定交織方案在碼段(即分組)內接收并對信息比特交織,以下將詳述。
每個組成編碼器312接收或是線性順序的或經交織的信息比特、用定義的組成編碼對接收到的信息比特編碼并提供奇偶校驗比特序列。截短器和多路復用器316從編碼器312a和312b接收信息比特以及奇偶校驗比特,截去(即刪除)零或更多的校驗比特以獲得期望的比特數,并對未截去的信息和奇偶校驗比特多路復用為經編碼的比特序列。
每個組成編碼器312包括三個串聯耦合的延時元件322、四個模2的加法器324以及開關326。開始時,延時元件322的狀態設為零,開關326處于向上位置。然后,對數據分組的每個信息比特,加法器324a對信息比特x實現與從加法器324d來的輸出比特的模2加法并將結果提供給延時元件322a。加法器324b和324c從加法器324a和延時元件322a和322c接收并實現比特的模2加法,并提供奇偶校驗比特y。加法器324d實現從延時元件322b和322c來的比特的模2加法。
在數據分組內的所有N信息比特都經編碼后,開關326變為向下位置且三個零(“0”)尾比特被提供給組成編碼器312a。組成編碼器312a然后對三個尾比特編碼并提供四個尾校驗比特。
對N個信息比特的每個分組,組成編碼器312a提供N個校驗比特y和開始的六個尾校驗比特,且組成編碼器312b提供N個校驗比特z和最后六個尾校驗比特。對每個分組,截短器和多路復用器316接收N個信息比特,從編碼器312a來的N+6個校驗比特以及從編碼器312b來的N+6個校驗比特。截短器和多路復用器316可能截去多個校驗比特以提供需要的經編碼比特數,它包括未截去的信息和校驗比特。
圖4是Turbo解碼器400的設計模塊圖。在該設計中,Turbo解碼器400包括兩個組成解碼器410a和410b、碼交織器412、碼解交織器414以及檢測器416。每個解碼器410一般實現為軟輸入/軟輸出(SISO)最大后驗(MAP)解碼器。然而,還可能使用其它類型的解碼器,諸如實現軟輸出Viterbi算法(SOVA)的解碼器。解碼器的設計一般取決于在發射機單元使用的特定Turbo編碼方案。
對應于發射的經編碼比特的接收到的(軟)比特由信道解交織器(圖4未示出)而經解交織以解除在發射機單元實現的第一和第二交織(圖2A的框222和238)。對每個要解碼的數據分組,提供給解碼器410a和410b需要的信道解交織比特。
在圖4示出的實施例內,加法器408a接收并對LLR(APP0)、LLR(x′)以及從解交織器414來的外部信息求和以提供解碼器410a的先驗概率(APP)。LLR(APP0)是從對信息比特采取的假設導出的對數似然比。如果數據分組內的每個信息比特為零(“0”)或為一(“1”)的概率相同,則LLR(APP0)對所有分組內接收到的比特均為零,并忽略任何與LLR(APP0)相關的部分。從解交織器414來的外部信息在第一次解碼迭代時設為零。LLR(x′)是接收到的信息比特x′的對數似然比。每個接收到信息的LLR和奇偶校驗位bm可計算如下LLR(bm)=log(P(bm=0)P(bm=1))]]>接收到比特的LLR是比特為零對比特為一的概率比的對數。概率P(bm=0)和P(bm=1)對每個接收到的比特一般是根據該比特的軟值。擦除(即截去比特)的LLR指明該比特為零或為一具有相等的可能(即LLR=0)。
解碼器410a接收來自求和器408a的APP以及LLR(y′),它們是從第一組成編碼器接收到的奇偶校驗比特y’的LLRs。LLR(y′)包括截除(即非發送的)校驗比特的擦除,如果有的話。解碼器410a然后根據MAP算法對APP和LLR(y′)解碼以生成后驗概率。APP然后由求和器408b從后驗概率中減去以提供外部信息e1,它指明對由接收到的奇偶校驗比特y’提供的接收到信息比特x’的值的置信度的糾正/調整。
從求和器408b來的外部信息e1與信息比特LLRsLLR(x′)一起求和且中間結果(是下一解碼器的APP)存儲在碼交織器412內。碼交織器412實現同樣的在Turbo編碼器處的碼交織方案(例如用于圖3的碼交織器的同樣的方案)。
解碼器410b從交織器412接收經交織的APP以及LLR(z′),這是從第二組成編碼器來的接收到的奇偶校驗比特z’的LLRs。解碼器410b然后根據MAP算法對APP和LLR(z′)解碼以生成后驗概率。APP然后由求和器408d從先驗概率中減去以提供外部信息e2,它指明對由接收到的奇偶校驗位z’提供的接收到信息比特x’的值的可信度的進一步糾正/調整。外部信息e2包括從解碼器410b來的中間結果,它存儲在碼解交織器414中。解交織器414實現與用于交織器412的交織方案互補的解交織方案。
信息比特LLRs的解碼經迭代多次(例如6、8、10或可能更多次)。每次迭代,信息比特的檢測到值的置信度增大。在所有的解碼迭代完成后,最終的LLRs提供給檢測器418,它根據它們的LLRs提供接收到的信息比特的硬判決值(即“0s”和“1s”)。
圖5是根據本發明的實施例的Turbo解碼器500的框圖。Turbo解碼器500是圖4的Turbo解碼器400的一特定實施例。在該實施例中,Turbo解碼器500包括輸入接口單元506、本地存儲器/組合器508、SISO MAP解碼器510、地址發生器512a和512b、存儲單元520、檢測器518以及能量度量計算器522。參考圖4,兩個組成解碼器410a和410b串聯操作,從一個解碼器來的外部信息作為輸入提供給另一解碼器。由于兩個組成解碼器的串聯操作,只要一個(物理)解碼器就能用于實現兩個組成解碼器。
輸入接口單元506提供信道解交織器502和MAP解碼器510間的信道。對一些系統,如果截短在發射機端實現,則輸入接口單元506可能被設計成提供對編碼比特的解除截短。解除截短是通過對每個截去的比特提供擦除而實現的,擦除指明該比特為零和為一的等可能性。
根據實施的特定的解碼輪次(即為第一或第二組成編碼器解碼),信息和奇偶校驗比特的合適序列由信道解交織器502提供給存儲器/組合器508。從先前迭代獲得的APP還由APP存儲單元520提供給存儲器/組合器508。在一實施例中,存儲器/組合器508設計成(1)為接收到的(軟)信息比特接收并計算LLR,(2)組合在步驟(1)內計算的LLR(x′)以及對應的外部信息以生成APP,以及(3)接收并為接收到的奇偶校驗比特計算LLR。
在一實施例中,存儲器/組合器508用滑動窗結構(SWA)實現,它暫時存儲例如四個具有信息和奇偶校驗比特的窗口。當三個信息和奇偶校驗比特窗口由解碼器510內的三個狀態度量計算器操作時,第四個窗口正用從信道解交織器502和存儲單元520來的值更新。在一實施例中,每個窗口大小為32,即每個窗口包括32個x’碼元和32個y’(或z’)碼元。可能使用其它窗口長度和/或不同的窗口數,且這在本發明的范圍內。
在一實施例中,解碼器510實現執行對數MAP算法的SISO解碼器。還可能使用任何基于MAP的解碼算法(例如最大對數MAP算法或max*對數MAP算法兩個都是領域內已知的)。在一實施例中,為實現MAP算法,解碼器510包括一個前向狀態度量計算器以及兩個反向狀態度量計算器。每個前向(或反向)狀態度量計算器在給定的一個當前時刻計算網格結構中的2K-1個狀態的每個的概率的對數,這是基于(1)在先前(或將來)時刻中的概率以及(2)先前(或將來)狀態的路徑間的概率和當前時間的狀態,其中K是組成編碼器的限制長度。這些前向和反向狀態度量(相應為α和β),用于計算信息比特的后驗概率。前向和后向狀態度量計算和Turbo解碼在以下論文中有詳細描述,Steven S.Pietrobon的題為“Implementation and Performance of a Turbo/MapDecoder”,International Journal of Satellite Communications,Vol.16,1998.pp.23-46,在此引入作參考。
滑動窗結構和一個前向和兩個反向狀態度量計算器的使用減少了存儲的需要且只是適中地增加了計算量。單個反向狀態度量計算器可以在一輪通過中從分組的尾部操作到分組的開始,但這需要大量存儲空間。在一實施例中,為特定的一輪解碼執行以下操作序列
FWMC(1~32)FWMC(33~64)FWMC(65~96) 和RWMC A(64~33)FWMC(97~128) 和RWMC A(32~1)及RWMC B(95~65)FWMC(129~160)和RWMC B(64~33)及RWMC A(129~97)FWMC(161~192)和RWMC A(96~65)及RWMC B(160~129)…其中FWMC(1-32)代表比特1到比特32的前向度量計算,RWMC(32-1)代表比特32到1的反向度量計算。從FWMC來的結果與下劃線的RWMC組合以形成后驗概率,APP碼元由此而被獲取以導出外部信息。外部信息與信息比特LLRs組合以形成為下一解碼階段的APP碼元。
解碼器510的輸出存儲到APP存儲單元520。在一實施例中,APP存儲單元520用于以經交織順序存儲從解碼器510來的APP碼元(與也可能使用的線性順序相反)。以經交織順序存儲中間結果可能簡化存儲器的分劃,并進一步使得Turbo編碼器和解碼器能使用相同的交織地址發生器。在一實施例中,APP存儲單元520進一步用于存儲從第一組成解碼來的APP碼元和從第二組成解碼來的外部信息。
對第一組成解碼,從先前第二組成解碼來的外部信息從存儲單元520以解交織順序而被獲取,由解碼生成的APP碼元以交織順序存儲在存儲單元520內。相應地,對第二組成解碼,從先前第一組成解碼來的APP碼元從存儲單元520以線性順序獲取,且由解碼生成的外部信息以線性順序存儲在存儲單元520內。
地址發生器512a和512b相應提供存儲單元520的寫和讀地址。多路復用器514a象征性地示出在圖5中以指明APP碼元/外部信息可能以線性或經交織順序寫入存儲單元520,多路復用器514b象征性地示出以指明APP碼元/外部信息可能以線性或解交織順序從存儲單元中獲取。
檢測器518在最后解碼迭代后接收APP碼元并提供對接收到的信息比特的硬判決。能量度量計算器522提供信息比特的能量度量(或它們的LLRs)。能量度量可能用作檢測到的信息比特內的置信度的指示。
對圖4和5示出的Turbo解碼器設計,存儲單元存儲從第一組成解碼器來的APP數據以及從第二組成解碼器來的外部信息。APP數據和外部信息是從組成解碼器來的兩種不同形式的中間結果。如在此使用的,中間結果能包括任何從一個組成解碼器到下一個解碼器的任何信息,且可能采取任何形式。一般,從任何組成解碼器來的要存儲的中間結果的特定形式取決于Turbo解碼器的特定設計。
碼交織是Turbo編碼器和解碼器的重要和整合部分。無論在Turbo編碼器處選擇哪種碼交織方案,使用同一方案以存儲/獲取從第一組成解碼來的APP碼元,一互補的方案用于存儲/獲取第二組成解碼的外部信息。
W-CDMA標準定義Turbo編碼器特定的交織方案。該交織方案可能被分為三個階段(1)一行行將“碼段”內的信息比特寫入RxC數組,(2)在每行內重新安排元素(即行內排列),以及(3)交換行(即行間排列)。此后,比特一列列從數組中讀出,開始于RxC數組的左上元素。這三階段在以下將詳述,且此后提供一例子以更好地理解交織方案。
在第一階段,每個碼段內的比特被寫入RxC數組。W-CDMA標準支持從40到5114比特范圍間的碼段。開始時,數組內的行數R是根據碼段K的大小K決定的,如下R=5,假使40≤K≤159;R=10,假使160≤K≤200或481≤K≤530;或R=20,對于所有其它K。
數組內的列數C下一步是根據R和K決定的,如下C=53,假使481≤K≤530;否則選擇一質數p,使(p+1)·R≥K,然后選擇C=min{p-1,p,p+1}使R·C≥K。
一旦對給定的K決定了R和C,碼段內的比特一行行寫入RxC數組。由于K≤R·C,則在數組底部可能為空(即一行或多行或一部分可能不包括任何比特)。
在第二階段,每行內的元素根據為該行指定的行排列序列而被排列(即攪亂)。行內排列可能以系列步驟實現。第一步,生成長度為p的基序列c(i)。對在第一階段確定的每個可能的質數p,如W-CDMA標準定義并在表1內示出的,有與該質數相關的本原根g0。基序列c(i)然后導出如下c(i)=[g0·c(i-1)]模(p),對于i=1,2,...,(p-1)公式(1)其中c(0)=1。
表1
在第二階段的第二步驟中,構建R個質數的序列qj。該質數序列的元素經選擇使得能滿足以下的準則g.c.d.{qj,p-1}=1;qj>6;及qj>qj-1, 公式(2)其中,g.c.d是最大公因子且g0=1。
質數序列qj基本是遞增的最小質數序列,它不包括是(p-1)的因子的質數。該質數序列qj中的R元素相應地與數組的R行相關。序列qj內的R個元素的每個此后用于計算相關行的行內排列序列,下面將詳細描述。
由于在質數序列qj內從索引0到R-1分別與0行到R-1行相關,且由于行在行內排列后相繼用行間排列序列Px而經排列變換,質數序列qj內的元素還使用同樣的行內排列序列Px被排列。序列Px從四個可能的序列PA,PB,PC以及PD為碼段選擇,如以下將詳述的。經排列的質數序列pj被確定為pPx(j)=qj,對j=0,1,...R-1.公式(3)在第二階段的第三步驟中,每行的行內排列序列cj(i)確定如下cj(i)=c([i·pj]模(p-1)),對于i=1,2,...,(p-2) 公式(4)其中cj(p-1)=0,j是在行間排列變換后的行索引,c(x)是行內排列變換的基序列且用以上的等式(1)被計算,且cj(i)是在第j行的排列后的第i個輸出的輸入比特位置。每行的行內排列序列cj(i)是根據基序列c(x)且在經排列的質數序列內的質數pj是與該行相關的。每行內的元素經排列使得經排列的行內的第i個單元的位置存儲原行內在第cj(i)單元位置處存儲的元素。
如上所述,C可能等于p-1、p或p+1。因此,行內排列序列cj(i)用作如下如果C=p-1,則為i=1,2,...,(p-2)使用cj(i)-1;否則如果C=p,則為i=1,2,...,(p-2)使用cj(i),且cj(p-1)=0;以及否則如果C=p+1,則為i=1,2,...,(p-2)使用cj(i),且cj(p-1)=0,cj(p)=p;以及如果R·C=K,則交換cR-1(p)與cR-1(0);在第三階段,數組內的R行根據行間排列序列Px被排列,這是從四種可能的序列PA,PB,PC以及PD選出的,由W-CDMA標準定義如下PA=(19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11}PB={19,9,14,1,0,2,5,7,12,18,16,13,17,15,3,1,6,11,8,10}PC={9,8,7,6,5,4,3,2,1,0}PD={4,3,2,1,0}用于碼段的特定行間排列變換序列根據以下選擇如果K屬于[201,480]、[531,2280]、[2481,3160]或3211,5114]比特,則選擇PA。
如果K屬于[2281,2480]或[3161,3210],則選擇PB。
如果K屬于[160,200]或[481,530](即K=10),則選擇PC。
如果K屬于[40,155](即當R=5時,使用PD),則選擇PD。
實現行間排列使得原數組內的第j行移至經排列的數組內的PXj行位置。
在行間排列變換后,比特一行一行從上至下讀出(即從0行到R-1行)。如上所述,由于K≤R·C,數組內的一些單元可能不包括合法的數據且當讀出數據時跳過這些單元。
為清楚之故,以下提供了一個上述的交織方案的例子。在該例中,K=379導致選擇R=20。質數p然后被確定為p=19且列數C確定為C=19。對該質數p,相關的原本根g0=2。使用等式(1),基序列c(i)被確定為c(i)={1,2,4,8,16,13,7,14,9,18,17,15,11,3,6,12,5,10}質數序列qi從方程組(2)確定得到qj={1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79}對該K=379,選擇行間排列序列PA。經排列的質數序列pj根據相等性(pPAj=qj)]]>從質數序列qj而生成以提供如下pj={17,61,19,59,13,23,71,29,43,7,41,79,31,47,11,73,67,53,37,1}每行的行內排列序列cj(i)然后根據pj以及基序列c(i)而確定。對第一行(j=0),行的質數是p0=17且行內排列序列c0(i)被確定為c0(i)=c(i·p0模(p-1))=c(i·17模18)={1,10,5,12,6,3,11,15,17,18,9,14,7,13,16,8,4,2,0}其它行的行內排列變換序列cj(i)能以類似的方式被確定。
Turbo解碼是計算強度較大的過程。對每個Turbo編碼的碼段,接收發射的編碼比特并存儲到臨時存儲單元(例如圖5的信道解交織器508)。經編碼的比特然后(串行地)從臨時存儲單元獲取并被解碼。對每個要解碼的比特,訪問APP存儲單元以獲得由先前的解碼(如果有的話)為該比特生成的APP數據(即APP碼元/外部信息)。對每個解碼比特生成的APP數據進一步存儲回APP存儲單元以為下一解碼之用。隨著碼段內的比特經被碼APP存儲單元因此被連續訪問。有效的存儲管理對于有效的Turbo解碼是關鍵。
根據本發明的一方面,APP存儲單元520被分為并用多個存儲體實現。在實施例中,存儲體被分配并以一種避免對APP數據進行雙緩沖的方式被操作。在一實施例中,每個存儲體可能與其它存儲體分開并被獨立訪問。這可以通過提供給每個存儲體它自己的地址和數據線集合而實現。
在特定實施例中,解碼器510設計成帶有每時鐘周期解一信息比特的能力。為避免在每個比特的解碼過程中等待對APP數據的存儲訪問(即讀和寫),APP存儲單元設計成一般有能力為當前正在解碼的比特存儲APP數據并提供給將來要解碼的比特APP數據的能力。為避免訪問爭用,存儲單元經劃分使得寫和讀操作不在同一訪問循環中的同一存儲體上同時實現(雖然若使用多端口存儲體這是可能的)。在一實施例中,為了方便存儲器分區,存儲體還設計成使得多比特的APP數據可能在單個訪問循環內寫入多個存儲體,且多比特的APP數據可能在另一(其它)訪問循環的多個存儲體中獲取。
在特定實施例中,特別是適用于W-CDMA情況下,存儲單元被分為六個存儲體,雖然可能使用不同數量的存儲體。存儲體被標為Bank0a、Bank0b、Bank1a、Bank1b、Bank2a以及Bank2b。每個存儲體被分配以R·C數組的相應的行組和列集以避免訪問爭用。每個存儲體用于存儲占用這些處于分配的行組和列集的交叉位置的比特的APP數據。如上所述,對第一組成解碼器,APP數據以經交織順序寫入存儲單元520并以經交織順序(又稱為“經交織”尋址模式)從存儲單元獲取。對第二組成解碼器APP數據以線性順序(還稱為“線性”尋址模式)寫入或從存儲單元獲取。為保證兩個不同的存儲體以線性尋址模式用兩個相鄰地址訪問,存儲體能經安排及分配使得一存儲體集合被分配給偶數列(例如,它們是與最低有效比特(LSB)為零(“0”)相關),且另一存儲體集合被分配給奇數列(例如,它們是與最低有效比特(LSB)為零(“0”)相關)。用這個奇/偶分配方案,相繼地址(LSBs為“0”與“1”)與兩個不同存儲體集合相關。
對交織尋址模式,實現另一存儲體分配方案。如上所述,由W-CDMA標準定義的碼交織要求從R·C數組中一列列讀出比特。這導致以經交織尋址模式訪問相鄰地址時訪問數組的不同行。為保證能以經交織尋址模式訪問兩個相鄰地址的兩個不同存儲體,行能被安排為三個或更多的組使得經交織尋址模式的“相鄰”行被分配給不同組。相鄰行是當以經交織尋址模式時一列列寫/讀時能訪問的連續行。
該行分組可能通過首先確定R·C數組內每行的相鄰行而實現。對用于上述的行間排列變換的PA,PB,PC序列,這三個序列內的相鄰實體(對應行數)被分配給不同組,這是因為相鄰行可能在以經交織尋址模式按列寫/讀時被訪問。而且,由于K≤R·C,數組尾部的一些行可能為空,在該情況下,訪問該空行的下一行。對所有W-CDMA標準支持的可能的R、C和K組合,確定行17可能被部分跳過,當使用序列PA時,行18和19可能完全跳過。使用序列PB時,行18和19可能完全跳過,使用序列PC時,行9可能完全跳過。
表2列出在對行分組時要遵守的“排除”規則使得在經交織尋址模式能避免訪問爭用。第一和第三列列出行號(在表2內按順序)。對在第一和第三列中標識的每行,應從包括該行的組中排除的行分別在第二和第四列列出。例如,在包括0行的組中應排除行1、2、4、8和9,包括行1的組應排除行0、2、3、6和16。
表2
表3列出了遵守表2列出的排除規則的行的可能分組。還有其它分組的可能且在本發明的范圍內。
表3
圖6是根據表3示出的行分組的R·C數組內行和列分配到六個存儲體的圖表。在該特定分配方案,表3的組0、1和2內的行分別被分配到Bank0v,Bank1v以及Bank2v,其中v為a或b。如上所述,Bankua以及Bankub分別被分配到偶數和奇數列,其中u是0、1或2。對每個存儲體而言,每個分配的行因此包括C/2元素。
在線性尋址模式,可能同時訪問來自同一或不同的組的兩個存儲體(即可能訪問Banku1a以及Banku1b,或Banku1a以及Banku2b,其中u1和u2每個可能來自任何組)。且以經交織尋址模式,從不同組來的兩個存儲體同時被訪問(即能訪問Banku1a以及Banku1b,或Banku1a以及Banku2b)。
在一實施例中,Bank0a,Bank1a以及Bank2a用于偶數行的偶數列以及奇數行的奇數列,以及Bank0b,Bank1b以及Bank2b用于偶數行的奇數列和奇數列的偶數列。當列數為奇數,該分配方案可能用于避免以線性尋址模式訪問同一存儲體。例如,如果有五列,可能期望同時為列4的行1和列0的行2獲取數據。兩個都位于Bankua內,提供的行1和行2被組在一起。以上的分配方案避免訪問爭用。
當PA,PB或PC序列用于行間排列時,表3列出的行分組避免了經交織尋址模式的訪問爭用。對PD序列,表4列出在序列內的五行的排除,表5列出對PD的行的可能分組。
表4
表5
值得注意的是表3示出的分組違反了圖4示出的PD序列的行0和行3的排除規則。因此,可能生成不同于表3的行分組以避免以經交織尋址模式對所有四個序列PA,PB,PC以及PD序列的訪問爭用。或者,當選擇PA,PB或PC時使用表3示出的行分組,當選擇PD時使用表5示出的行分組。
圖7是定義存儲Turbo解碼器的中間結果(例如APP數據)的緩沖器結構(例如APP存儲單元520)的處理700的實施例流程圖。開始,在步驟712標識緩沖器支持的尋址模式。對Turbo解碼,APP數據可能通過以經交織尋址模式和線性尋址模式訪問。每個組成解碼提供對應數據分組內的信息比特的APP碼元。在經交織尋址模式內,APP碼元在分組內的經交織位置處被訪(即寫入或從中獲取)。在線性尋址模式,APP碼元在分組的線性位置處被訪問。
在步驟714,定義行的NR個組,其中NR≥2。每個組包括用于對Turbo編碼的數據分組內的信息比特交織的R·C數組的一行或多行。行被選擇以包括在每組內使得在經交織尋址模式期間要訪問的兩個相繼地址來自兩個組。對上述的例子,定義三個組,每個組包括數組內的相應的行集合。組的定義是根據由與Turbo編碼相關的碼交織方案定義的可能的行間排列序列。
在步驟716,定義列的NC個集,其中NC≥2。每個集包括R·C數組的一列或多列。列被選擇以包括在每個集內使得在經交織尋址模式期間訪問的兩個相繼地址來自兩個集。對上述例子,定義了兩個集,第一個集包括偶數列,第二個集包括奇數列。
在步驟718,緩沖器然后被分為NR·NC個存儲體。在步驟720,每個存儲體然后被分配給NR·NC個行組和列集的聯合組合的相應的一個。對上述例子,定義六個存儲體并如上所述分配給三個行組和兩個列集的六個聯合組合。
圖8是可能用于實現APP存儲單元的緩沖器結構800的實施例模塊圖。緩沖器結構800包括實現APP存儲單元的存儲單元820、每個訪問循環生成必須的地址的地址發生器822以及從存儲體選擇輸出數據的多路復用器824。
在圖8示出的實施例中,存儲單元820被分為六個存儲體,每個存儲體被分配給存儲單元的相應部分。在實施例中,每個存儲體接收地址線集合,它使得存儲體能單個且獨立地被訪問。雖然由于簡潔之故未在圖8中示出,每個存儲體一般有相應的“碼片選擇”線,使得存儲體能被單個選擇。
為在每個寫循環中將兩個碼元寫入兩個存儲體,每個存儲體用于在兩個數據線集合上接收兩個碼元,選擇碼元的一個(例如通過圖8未示出的多路復用器)而且如果由地址發生器822引導,則將選擇的碼元存儲到由存儲體地址線指明的位置。地址發生器822提供要存儲的兩個碼元的兩個地址,這些地址通過它們的地址線提供給兩個存儲體。
為在每個讀循環中從存儲體獲取兩個碼元,多路復用器824從六個存儲體接收輸出碼元,在從地址發生器822來的控制信號引導下選擇接收到的碼元中的兩個,并提供選擇的碼元,雖然未在圖8中示出,多路復用器824可能用兩個6×1多路復用器實現,每個6×1的多路復用器可能用于提供輸出碼元的一個。同樣,地址發生器822提供要獲取的兩個碼元的兩個地址,并通過它們的地址線提供給兩個存儲體。
為清楚之故,使用多個存儲體的APP存儲單元的實現已由W-CDMA標準定義的特定碼交織方案而經描述。每個CDMA標準可能定義不同于其它CDMA標準的碼交織方案,包括W-CDMA標準。例如,cdma2000標準定義的交織方案,其中行根據比特反轉規則被排列,例如行1(“00001”)與行16(“10000”)交換,行3(“00011”)與行24(“11000”)交換等。對這些不同的碼交織方案,與存儲體相關的行組可能不同于以上為W-CDMA標準定義的交織方案。
為清楚之故,本發明的各個方面已為W-CDMA系統內的下行鏈路Turbo碼而特定描述。這些技術也可能用于W-CDMA系統內的上行鏈路Turbo碼(特別是由于W-CDMA標準規定它們是一樣的)。
取決于Turbo交織器,APP存儲單元可能用少于六個存儲體實現。如上所述,某些行不能在同一組內的限制導致了使用六個存儲體。限制來自“分組”交織器結構以及R·C數組的最下面三行可能部分未填滿。如果能選擇R使得只有最后一行是部分未填滿的,則會去掉一些排除限制且APP存儲可能只用四個存儲體實現。APP存儲單元還可能用多于六個存儲體實現。例如,存儲單元可能對數組的每行用一個存儲體實現,或對一行或多行的每個組用一個存儲體實現。一般,更多的存儲體使得能同時訪問(即寫和/或讀)更多的碼元。然而,硬件復雜度一般隨著存儲體數目增加而增加。可能需要更多的數據和地址線以及多路復用器以支持對更多的存儲體的訪問。
使用多個存儲體實現APP存儲單元提供多種好處。第一,由于多個比特的APP數據可能在每個時鐘循環上存儲/獲取,所以可以獲得更快的解碼時間。因此APP存儲可能不是Turbo解碼的瓶頸。第二,可能使用較慢的存儲器設計和/處理以用于實現APP存儲單元。多存儲體設計連同并行訪問能力可能使得較慢的存儲器能提供與較快存儲設但帶有較弱并行能力的設計相同的吞吐量。
APP存儲單元可能用多個存儲器結構實現。例如,存儲單元的每個存儲體可能使用一個或多個存儲單元實現,還帶有多端口存儲單元,帶有包括或被分為多個存儲體或其它結構的存儲單元。存儲單元還可能用不同的存儲技術實現,諸如例如隨機訪問存儲(RAM)、動態RAM(DRAM)、閃存以及其它。多種存儲單元的結構和實現都是可能的且在本發明的范圍內。
地址的產生可能用軟件、硬件或兩者的組合實現。對硬件實現,地址發生器可能(1)實現為一個分開的單元,(2)整合在控制器或存儲單元內,(3)實現在還包括其它處理元件的ASIC內,或通過一些其它的設計。地址發生器可能包括用于存儲描述存儲體的信息的數據結構。數據結構可能還包括用于管理存儲體操作的信息。
上述優選實施例的描述使本領域的技術人員能制造或使用本發明。這些實施例的各種修改對于本領域的技術人員來說是顯而易見的,這里定義的一般原理可以被應用于其它實施例中而不使用創造能力。因此,本發明并不限于這里示出的實施例,而要符合與這里揭示的原理和新穎特征一致的最寬泛的范圍。
權利要求
1.一種用于存儲Turbo解碼器的中間結果的緩沖器結構,其特征在于包括多個存儲體,用于存儲代表中間結果的碼元,其中每個存儲體與二維數組的一行或多行的多個組的一個相關,該二維數組用于交織相應Turbo編碼器的分組內的信息比特,且其中行被選擇包括在每個組內,使得緩沖器結構的每個訪問循環都能從兩個或多個存儲體同時訪問兩個或多個碼元。
2.如權利要求1所述的緩沖器結構,其特征在于多個存儲體被分為第一和第二集合,且其中第一存儲體集合與二維數組的偶數列相關,且其中第二存儲體組與二維數組的奇數列相關。
3.如權利要求1所述的緩沖器結構,其特征在于多個存儲體被配置為以經交織的順序存儲碼元。
4.如權利要求1所述的緩沖器結構,其特征在于對于一特定的訪問周期多個存儲體可通過經交織尋址模式或線性尋址模式而被訪。
5.如權利要求4所述的緩沖器結構,其特征在于經交織的尋址模式對應于對分組內經交織的位置處的碼元訪問,且其中線性尋址模式對應于在分組內對線性位置處的碼元訪問。
6.如權利要求4所述的緩沖器結構,其特征在于行被選擇包括在每個組內使得在經交織尋址模式時訪問的兩個或多個相繼地址是來自兩個或多個組的。
7.如權利要求1所述的緩沖器結構,其特征在于在Turbo編碼器的第一組成碼的解碼期間把碼元提供給并以經交織順序從多個存儲體獲取。
8.如權利要求1所述的緩沖器結構,其特征在于在Turbo編碼器的第二組成碼的解碼期間把碼元提供給并以經交織順序從多個存儲體獲取。
9.如權利要求1所述的緩沖器結構,其特征在于在Turbo編碼器的第一組成碼的解碼期間把碼元提供給并以經交織順序從多個存儲體獲取,且其中在Turbo編碼器的第二組成碼的解碼期間把碼元提供給并以經交織順序從多個存儲體獲取。
10.如權利要求1所述的緩沖器結構,其特征在于多個存儲體被配置為對每個訪問周期存儲或提供兩個或多個碼元。
11.如權利要求1所述的緩沖器結構,其特征在于操作多個存儲體使得只有一種類型的訪問操作寫或讀在任何特定訪問周期上實現。
12.如權利要求1所述的緩沖器結構,其特征在于將各行至少部分根據用于與Turbo編碼器相關的碼交織方案的一個或多個可能的行內排列序列被分組。
13.如權利要求1所述的緩沖器結構,其特征在于包括至少四個存儲體。
14.如權利要求1所述的緩沖器結構,其特征在于包括六個存儲體。
15.如權利要求1所述的緩沖器結構,其特征在于還包括操作上耦合到多個存儲體的本地存儲器并被配置為存儲要被Turbo解碼器解碼的多個信息比特的先驗概率(APP)數據。
16.如權利要求15所述的緩沖器結構,其特征在于APP數據是由要解碼的信息比特和該信息比特的對應的外部信息的對數似然比(LLRs)形成的。
17.如權利要求1所述的緩沖器結構,其特征在于還包括地址發生器,耦合到多個存儲體并用于提供訪問多個存儲體的地址。
18.如權利要求1所述的緩沖器結構,其特征在于是配置為根據W-CDMA標準定義的Turbo編碼器的碼交織方案而存儲碼元。
19.一種Turbo解碼器,其特征在于包括組成解碼器,用于根據特定的組成碼接收經編碼的比特并對其進行解碼;以及緩沖器,耦合到組成解碼器,并用于存儲代表Turbo解碼器中間結果的碼元,其中緩沖器包括多個存儲體,每個存儲體與二維數組的一行或多行的多個組的一個相關,該二維數組用于交織相應Turbo編碼器的分組內的信息比特,且其中行被選擇包括在每個組內,使得緩沖器結構的每個訪問循環都能從兩個或多個存儲體同時訪問兩個或多個碼元。
20.如權利要求19所述的Turbo解碼器,其特征在于多個存儲體被按排成第一和第二集合,且其中第一集合的存儲體與二維數組內的偶數列相關,且其中第二集合存儲器與二維數組內的奇數列相關。
21.如權利要求19所述的Turbo解碼器,其特征在于還包括本地存儲單元,操作上耦合到緩沖器和組成解碼器并用于存儲由組成解碼器解碼的多個信息比特的先驗概率(APP)數據。
22.一種定義用于存儲Turbo解碼器中間結果的緩沖器結構的方法,其特征在于包括標識緩沖器結構支持的多個尋址模式,其中多個所支持的尋址模式包括經交織的尋址模式和線性尋址模式,其中經交織的尋址模式對應于對要被解碼的分組內經交織位置處的碼元的訪問,線性尋址模式對應于對分組內線性位置處的碼元的訪問;定義行的兩個或多個(NR)組,其中每個組包括二維數組的一行或多行,該二維數組用于交織相應Turbo編碼器的分組內的信息比特,且其中行被選擇以包括在每個組內,使得經交織的尋址模式期間要訪問的兩個或多個相繼地址來自兩個或更多組;定義列的兩個或多個(NC)集,其中每個集包括二維數組的一列或多列,且其中列被選擇以包括在每個集內,使得線性尋址模式期間要訪問的兩個或多個相繼地址來自兩個或更多個集;將緩沖器結構分成多個(NR·NC)存儲體;以及將行組和列集的(NR·NC)個聯合組合分配給相應的多個存儲體之一。
23.如權利要求22所述的方法,其特征在于行至少根據用于與Turbo編碼器相關的碼交織方案的一個或多個可能的行內排列序列而被分組。
全文摘要
存儲Turbo解碼器的中間結果的緩沖器結構。為增加訪問吞吐量,緩沖器結構設計成支持對每個訪問周期對兩個或多個比特的APP數據的同時訪問。為避免訪問爭用,存儲體被分配到用于碼交織的二維數組的行和列使得相繼比特的APP數據從不同存儲體被訪問。為支持“線性”尋址,存儲體能被按排為兩個集合,它們被分配給數組的偶數和奇數列。為支持“經交織”尋址,存儲體可能被分配到數組的行組使得在經交織的數組內的相鄰行被分配到不同的組。
文檔編號H04L1/00GK1529943SQ02812844
公開日2004年9月15日 申請日期2002年5月9日 優先權日2001年5月11日
發明者許大山, I·姚 申請人:高通股份有限公司