TWI422166B - Turbo解碼器裝置及解碼turbo編碼信號的方法 - Google Patents

Turbo解碼器裝置及解碼turbo編碼信號的方法 Download PDF

Info

Publication number
TWI422166B
TWI422166B TW096145352A TW96145352A TWI422166B TW I422166 B TWI422166 B TW I422166B TW 096145352 A TW096145352 A TW 096145352A TW 96145352 A TW96145352 A TW 96145352A TW I422166 B TWI422166 B TW I422166B
Authority
TW
Taiwan
Prior art keywords
turbo
decoding
memory
information
memories
Prior art date
Application number
TW096145352A
Other languages
English (en)
Other versions
TW200841608A (en
Inventor
K Lee Tak
Shen Ba-Zhong
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/810,989 external-priority patent/US7831894B2/en
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of TW200841608A publication Critical patent/TW200841608A/zh
Application granted granted Critical
Publication of TWI422166B publication Critical patent/TWI422166B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • H03M13/2753Almost regular permutation [ARP] interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

Turbo解碼器裝置及解碼turbo編碼信號的方法
本發明主要涉及通信系統;更具體的說主要涉及使用turbo編碼的通信系統。
資料通信系統已經持續發展了很多年。近來倍受關注的一種這樣的通信系統是使用了叠代改錯碼的通信系統。那些改錯碼中,近些年來一種使用了turbo碼(一種叠代改錯碼)的特別的通信系統引起了廣泛的興趣。對於一個給定的信噪比(SNR),具有叠代碼的通信系統經常可以獲得比交替碼(alternative codes)更低的誤碼率(BER)。
該領域的一個不斷和主要的發展是繼續努力降低為在通信系統中達到給定的BER而需要的SNR。理想目標是在一個通信通道中努力達到香農極限。香農極限可以看成是在一個具有特定SNR並可以達到在通信通道中無差錯傳輸的通信通道中所使用的資料率。換句話說,對於一個給定的調製和編碼率香農極限是通道容量的理論邊界。
當以相對低的資料吞吐率量操作時,提供相對低的誤碼率的Turbo碼的使用廣泛的出現於通信通道中具有大的雜訊的通信系統中,在這種通信系統中,基本無誤的通信是首要目標。一些turbo編碼的最早應用的地方是與空間相關的領域,其中準確(也就是,理想無差錯)的通信經常被認為是必要的設計準則。發展的方向接 著轉移到了發展地球應用和消費相關應用。然而,基於空間相關的應用的傳統,在turbo編碼環境的努力仍然集中在獲得相對低的錯誤平底(error floors),而並非更高的吞吐量。
最近,該領域的關注轉向了發展turbo編碼,以及其各種變化的版本,其可用于支援更高的吞吐量,同時仍然保持相對低的錯誤平底。
實際上,隨著在通信系統中所需吞吐量的增加,使用多個處理器和多個存儲體的並行turbo解碼是必須的。很多當前的系統支援很廣範圍的碼字大小。因此,在並行turbo解碼器設計中效率和靈活性是非常重要的。
一般說來,在使用了turbo的通信系統的情況下,在通信通道的一個終端有一個有編碼器功能的第一通信設備,在通信通道的另外一個終端有一個有解碼器功能的第二通信設備。在很多情況下,這些通信設備的一個或者兩個同時包括編碼器和解碼器功能。(例如,在一個雙向通信系統中)。
在對以下幾個附圖的簡要描述和本發明的詳細描述以及申請專利範圍,本發明直接給出的操作的設備和方法並將進一步描述。
根據本發明的一個方面,給出了一個可以對turbo編碼信號執行並行解碼的turbo解碼器裝置,所述turbo解碼器裝置包括:多個turbo解碼器;和多個記憶體;以及其中:所述多個turbo解碼器可以讀寫所述多個記憶體;和在第一次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器的每一個可以取出和處理來自於所述多個記憶體中的一個相應的記憶體的資訊,相應的記憶體是基於多個turbo解碼器和多個記憶體之間的無競爭映射來確定,相應的記憶體中資訊的第一個位置是基於 索引函數的,該函數是基於該相應的記憶體的位址映射的;當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第一個相應的記憶體中的第一個存儲位置取出和處理資訊;在第二次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器的每一個可以取出和處理來自於所述多個記憶體中的一個相應的記憶體的資訊,對應的記憶體是基於所述多個turbo解碼器和所述多個記憶體之間的無競爭映射來確定的,所述相應的記憶體中資訊的第二位置是基於索引函數的,該函數是基於所述相應的記憶體的位址映射的;當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第二個相應的記憶體中的第二個存儲位置取出和處理資訊;和所述多個turbo解碼器可以對至少一個編碼成turbo編碼信號的位元產生一個最優的估計。
作為優選,所述turbo解碼器裝置進一步包括:一個基於所述相應記憶體的位址映射可以產生索引函數的預先位址模組。
作為優選,所述turbo解碼器裝置進一步包括:在叠代解碼處理所述turbo編碼信號時,一個可以在所述多個turbo解碼器和所述多個記憶體之間執行無競爭存儲映射的處理模組。
作為優選:在產生所述turbo編碼信號的turbo編碼過程時,所述turbo編碼信號經過了近似正則置換(ARP)交織。
作為優選:當執行turbo解碼時,所述多個turbo解碼器中的一個可以對 外資訊執行近似正則置換(ARP)交織從而產生“一個先驗概率”(app)資訊。
作為優選,所述多個turbo解碼器中的一個turbo解碼器包括:預先位址模組,用於:接收多個與所述turbo編碼信號相關的度量;存儲所述多個度量到所述一個相應的記憶體中;以及基於在所述一個相應的記憶體中的所述多個度量的位址映射而產生所述索引函數;第一個軟輸入/軟輸出(SISO)解碼器可以對所述多個度量執行SISO解碼從而計算第一個外資訊;一個交織器模組,它可以對所述第一個外資訊執行交織從而產生第一個“先驗概率”(app)資訊;和第二個SISO解碼器可以對所述第一個app資訊執行SISO解碼從而產生第二個外資訊;一個解交織器模組,它可以對所述第二個外資訊執行解交織從而產生第二個app資訊;和一個輸出處理器,它可以處理由第二個SISO解碼器產生的最新外資訊從而產生所述編碼成turbo編碼信號的資訊位元的一個最優的估計。
作為優選:所述turbo解碼器裝置使用分時共用(time-sharing)以使得所述多個turbo解碼器可以執行自然序階段解碼處理和交織序階段解碼處理;以及當執行交織序階段解碼處理,所述多個記憶體的位址可以由所述多個turbo解碼器順序地訪問。
作為優選:所述多個turbo解碼器包括第一批turbo解碼器;而所述多個記憶體包括第二批記憶體。
作為優選:所述turbo解碼器裝置可以在個人無線通信設備中實現。
作為優選:所述turbo解碼器裝置可以在一個通信設備中實現;和所述通信設備可以在衛星通信系統,無線通信系統,有線通信系統和光纖通信系統至少一個中實現。
根據本發明的一個方面,給出了一個可以對一個turbo編碼信號執行並行解碼的turbo解碼器裝置,所述turbo解碼器裝置包括:多個turbo解碼器;多個記憶體;和一個預先位址模組,它可以基於所述多個記憶體中的一個相應記憶體的位址映射產生一個索引函數;以及其中:所述多個turbo解碼器可以讀寫所述多個記憶體;在第一次解碼叠代:當執行自然序階段解碼處理時,所述多個turbo解碼器中的每一個可以從所述多個記憶體中的一個相應的記憶體中取出和處理資訊,對應的記憶體是基於所述多個turbo解碼器和所述多個記憶體之間的無競爭映射來確定的,所述相應的記憶體中資訊的第二位置是基於索引函數的,該函數是基於所述相應的記憶體的位址映射的;和當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第一個相應的記憶體中的第一個存儲位置取出和處理資訊;在第二次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器的每一個可以取出和處理來自於所述多個記憶體中的一個相應的記憶體的資訊,對應的記憶體是基於所述多個turbo解碼器和所述多個記憶體之間的無競爭映射來確定的,所述相應的記憶體中資訊的第 二位置是基於索引函數的,該函數是基於所述相應的記憶體的位址映射的;和當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第二個相應的記憶體中的第二個存儲位置取出和處理資訊;以及所述多個turbo解碼器可以對至少一個編碼成turbo編碼信號的位元產生一個最優的估計。
作為優選:在產生所述turbo編碼信號的turbo編碼過程時,所述turbo編碼信號經過了近似正則置換(ARP)交織。
當執行turbo解碼時,所述多個turbo解碼器中的一個可以對外資訊執行近似正則置換(ARP)交織從而產生“一個先驗概率”(app)資訊。
作為優選:所述turbo解碼器使用分時共用以至於所述多個turbo解碼器可以執行自然序階段解碼處理和交織序階段解碼處理;和當執行交織序階段解碼處理,所述多個記憶體的位址可以由所述多個turbo解碼器順序地訪問。
作為優選:所述多個turbo解碼器包括第一批turbo解碼器;而所述多個記憶體包括第二批記憶體。
作為優選:所述turbo解碼器裝置可以在一個個人無線通信設備中實現。
作為優選:所述turbo解碼器裝置可以在一個通信設備中實現;和所述通信設備可以在衛星通信系統,無線通信系統,有線通信系統和光纖通信系統至少一個中實現。
根據本發明的一個方面,給出了用於解碼turbo編碼信號的一 種方法,所述方法包括:從一個通信通道中接收一個turbo編碼信號;執行預處理以從所述turbo編碼信號中提取一個編碼塊;分割所述編碼塊為多個子塊以致於每所述多個子塊的每一個包括相應的多個資料;把所述多個子塊的第一個子塊的第一部分的多個資料存儲到多個存儲體的第一存儲體中;把所述多個子塊的第二個子塊的第二部分的多個資料存儲到多個存儲體的第二存儲體中;當執行自然序階段解碼處理所述turbo編碼信號時,執行預先位址生成,它包括確定用於訪問所述第一存儲體中的第一組資料的元素和訪問所述第二存儲體中的第二組資料的元素的一個索引函數;從所述第一存儲體中得到第一組多個資料的第一個定義索引的元素並對其執行turbo自然序解碼處理;從所述第二存儲體中得到第二組多個資料的第二個定義索引的元素並對其執行turbo自然序解碼處理;從所述第一存儲體中得到第一組多個資料的第一個元素並對其執行交織自然序階段解碼處理;從所述第二存儲體中得到第二組多個資料的第二個元素並對其執行交織自然序階段解碼處理;根據並行turbo解碼處理,使用多個解碼處理器turbo解碼所述編碼塊。
對編碼成turbo編碼信號的資訊位元產生最優的估計。
作為優選,所述方法進一步包括:基於所述一個相應記憶體的位址映射而產生所述索引函數。
作為優選:在產生所述turbo編碼信號的turbo編碼過程時,所述turbo 編碼信號經過了近似正則置換(ARP)交織;以及進一步包括:當對所述turbo編碼信號執行turbo解碼時,對外資訊執行ARP交織時而產生“一個先驗概率”(app)資訊。
作為優選:所述turbo解碼器裝置可以在一個通信設備中實現;和所述通信設備可以在衛星通信系統,無線通信系統,有線通信系統和光纖通信系統至少一個中實現。
在參考附圖以及以下對發明的詳細描述,本發明的其他特性和優點將會變得明顯。
100‧‧‧通信系統
110‧‧‧通信設備
112‧‧‧發射機
114‧‧‧編碼器
116‧‧‧接收機
118‧‧‧解碼器
120‧‧‧通信設備
122‧‧‧接收機
124‧‧‧解碼器
126‧‧‧發射機
128‧‧‧編碼器
130‧‧‧衛星通信通道
132、134‧‧‧碟形衛星天線
140‧‧‧無線通信通道
142、144‧‧‧發射塔
150‧‧‧有線通信通道
152、154‧‧‧本地天線
160‧‧‧光纖通信通道
162‧‧‧電光轉換(E/O)介面
164‧‧‧光電轉換(O/E)介面
199‧‧‧通信通道
200‧‧‧turbo解碼器裝置
201‧‧‧接收信號
202‧‧‧I,Q提取模組
204‧‧‧度量生成器
210‧‧‧第一軟輸入/軟輸出(SISO 0)解碼器
211‧‧‧外資訊值的計算
320‧‧‧交織器(π)
221‧‧‧“先驗概率”(app)資訊
230‧‧‧第二SISO 1解碼器
231‧‧‧外資訊值的計算
240‧‧‧解交織器(π-1 )
241‧‧‧“先驗概率”(app)資訊
250‧‧‧輸出處理器
251‧‧‧最優估計
301‧‧‧資訊位元元
302‧‧‧冗餘位元
303‧‧‧偶(even)相位
305‧‧‧MUX
310‧‧‧SISO解碼器
320‧‧‧集成交織器(π)
340‧‧‧集成解交織器(π-1 )
741、742、743、744‧‧‧記憶體
800‧‧‧turbo解碼器裝置
821-827‧‧‧turbo解碼器
830‧‧‧處理模組
841-847‧‧‧記憶體
900‧‧‧turbo解碼器裝置
921-927‧‧‧turbo解碼器
930‧‧‧處理模組
941-947‧‧‧記憶體
1000‧‧‧通信系統
1010‧‧‧通信設備
1020‧‧‧turbo解碼器
1021‧‧‧turbo解碼器裝置
1030‧‧‧處理模組
1040‧‧‧記憶體
1090‧‧‧設備
1092‧‧‧通信設備
1094‧‧‧存儲媒質
1099‧‧‧通信通道
1100‧‧‧通信系統
1110‧‧‧通信設備
1120‧‧‧turbo解碼器裝置
1121-1122‧‧‧turbo解碼器
1130‧‧‧處理模組
1140‧‧‧記憶體
1141-1142‧‧‧記憶體
1199‧‧‧通信通道
1221、1222、1223‧‧‧turbo解碼器
1230‧‧‧處理模組
1241、1242、1243‧‧‧記憶體
1400‧‧‧正則(迴圈)置換
1610‧‧‧存儲體
1710‧‧‧存儲體
1810‧‧‧存儲體
1910‧‧‧存儲體
2010‧‧‧存儲體
2120‧‧‧存儲體B0
2121‧‧‧存儲體B1
2122‧‧‧存儲體B2
2123‧‧‧存儲體B3
2310‧‧‧縱橫交換
2420‧‧‧存儲體B0
2421‧‧‧存儲體B1
2422‧‧‧存儲體B2
2423‧‧‧存儲體B3
2610‧‧‧縱橫交換
2620‧‧‧存儲生成器
2621‧‧‧存儲生成器
2622‧‧‧存儲生成器
2623‧‧‧存儲生成器
2701‧‧‧接收信號
2702‧‧‧I,Q提取模組
2704‧‧‧度量生成器
2705‧‧‧度量
2707‧‧‧預先位址生成模組
2710‧‧‧第一個軟輸入/軟輸出(SISO)0解碼器陣列
SISO 02711、2712‧‧‧SISO 0解碼器
2720‧‧‧交織器(π)
2721‧‧‧“一個先驗概率”(app)資訊
2730‧‧‧第二個SISO 1解碼器陣列
2731、2732‧‧‧SISO 1解碼器
2740‧‧‧解交織器(π-1 )
2741‧‧‧“一個先驗概率”(app)資訊
2750‧‧‧輸出處理器
2751‧‧‧最優估計
2790‧‧‧存儲體
2791‧‧‧存儲體B0
2792‧‧‧存儲體Bn
2800‧‧‧實施例
2801‧‧‧接收信號
2802‧‧‧I,Q提取模組
2804‧‧‧度量生成器
2805‧‧‧適當的度量
2807‧‧‧預先位址生成模組
2809‧‧‧參考數位
2810‧‧‧軟輸入/軟輸出(SISO)解碼器陣列
2811、2812‧‧‧SISO 0解碼器
2820‧‧‧交織器(π)
2821‧‧‧“一個先驗概率”(app)資訊
2840‧‧‧解交織器(π-1 )
2841‧‧‧“一個先驗概率”(app)資訊
2850‧‧‧輸出處理器
2851‧‧‧最優估計
2890、2891、2892‧‧‧存儲體
圖1示出了通信系統的一個實施例。
圖2示出了turbo解碼器裝置的一個實施例。
圖3示出了分時turbo解碼器裝置的一個實施例,它可以使用一個軟輸入/軟輸出解碼器或一個SISO解碼器陣列。
圖4示出了一個可以應用在turbo解碼中的並行解碼的實施例。
圖5示出了一個用於自然/非交織序的解碼處理器的分割的一個實施例(作為對turbo編碼信號並行解碼實現)。
圖6示出了用於交織(π)序的解碼處理器的分割的一個實施例(作為turbo編碼信號並行解碼實現)。
圖7A示出了對於自然/非交織序階段的並行解碼的存儲映射的一個實施例。
圖7B示出了對於交織(π)序(示出了在一個記憶體內的競爭)相位的並行解碼的存儲映射的一個實施例。
圖8示出了一個可以執行並行解碼的turbo解碼器裝置的一個實施例,由於在turbo解碼器裝置和記憶體之間缺少無競爭存儲映射,在該解碼器裝置中會產生競爭。
圖9示出了一個可以執行並行解碼的turbo解碼器裝置的一個實施例,由於在turbo解碼器裝置和記憶體之間有無競爭存儲映射,在 該解碼器裝置中會不會產生競爭。
圖10和圖11示出了一個通信系統的其他實施例。
圖12A,圖12B,圖12C,圖12D示出了在turbo解碼器裝置和記憶體之間的多個,連續無競爭存儲映射。
圖13A,圖13B示出了用來執行並行解碼turbo解碼處理的多個處理器的Toy和多個存儲體例子的實施例。
圖14示出了一個正則置換的一個實施例。
圖15A和圖15B示出了多個記憶體存儲體的MOD存儲映射的實施例;圖16A和圖16B示出了依據所述Toy例子的多個記憶體存儲體的MOD存儲映射的實施例,衝突產生了並顯示出存儲映射是競爭的。
圖17A和圖17B示出了多個記憶體存儲體的DIV存儲映射的實施例。
圖18A和圖18B示出了依據所述Toy例子的多個記憶體存儲體的DIV存儲映射的實施例,衝突產生了並顯示出存儲映射是競爭的。
圖19A和圖19B示出了依據所述Toy例子的多個記憶體存儲體的ADD存儲映射的實施例,沒有產生衝突並顯示出存儲映射是無競爭的。
圖20示出了M=2C多個記憶體存的ADD存儲映射的實施例,沒有產生衝突並顯示出存儲映射是無競爭的。
圖21示出了用於ADD映射和並行turbo解碼處理的自然序階段的直接地址生成的一個實施例。
圖22示出了用於ADD映射和並行turbo解碼處理的交織(π)序相位的直接地址生成的一個實施例。
圖23示出了用於ADD映射的直接位址生成的解碼結構實現的一個實施例。
圖24示出了用於ADD映射和並行turbo解碼處理的自然序階段的 預先地址生成的一個實施例。
圖25示出了用於ADD映射和並行turbo解碼處理的交織(π)序相位的預先地址生成的一個實施例。
圖26示出了用於ADD映射的預先位址生成的解碼結構實現的一個實施例。
圖27示出了一個turbo解碼器裝置的實施例,它使用2個獨立的SISO解碼器組和用於獲取存儲在多個存儲體內資料的預先位址。
圖28示出了一個turbo解碼器裝置的實施例,它使用多個SISO解碼器和用於獲取存儲在多個存儲體內資料的預先位址。
圖29示出了用於解碼turbo編碼信號的一種方法的一個實施例。
圖30示出了用於解碼turbo編碼信號的一種方法的一個替代實施例。
許多通信系統使用了turbo碼。然而還有許多可以使用turbo碼的潛在的應用,這裏給出的方法可以應用到3GPP通道編碼以支援任意數量資訊位元。對於WCDMA和HSDRA,使用這裏給出的本發明的多個方面的所支援的位元數量的一些例子可以是40到5114,對於LTE則更多。
關於UTRA-UTRAN長期演進(LTE)和3GPP系統結構演進(SAE)的其他資訊可以在以下因特網站點找到:WWW.3gpp.org
在3GPP LTE的通道編碼中,有提供大範圍的塊大小(也就是,turbo編碼塊長度)的必要和期望。而且,因為高的資料吞吐量和大編碼塊的需求,這些系統的turbo解碼主要需要利用並行解碼方式實現。並行解碼需要無競爭記憶體訪問(也就是任何一個turbo解碼器(一組並行安排的turbo解碼器中的一個)在任何給定的時間僅訪問一個記憶體(一組並行安排的記憶體中的一個))。Turbo編碼被建議用於3GPPLTE的通道編碼。對於這個編碼系統,在參考文獻 [1]中稱為“近似正則置換(ARP)”的代數交織是一個候選方案。
數位通信系統的目的是從一個地方或者子系統以無差錯或者可接受的低的錯誤率發射數位資料到另外一個地方或者子系統。如圖1所示,在多種通信系統中,資料可以通過多種通信通道發射:如磁媒質,有線,無線,光纖,銅線以及其他類型媒質。
圖1示出了一個通信系統的一個實施例100。
參考圖1,該通信系統的實施例100是一個通信通道199,其將位於該通信通道199一端的通信設備110(包括一個有編碼器114的發射機112和一個有解碼器118的接收機116)通信連接到該通信通道199另外一端的另外一個通信設備120(包括一個有編碼器128的發射機126和一個有解碼器124的接收機122)。在一些實施例中,通信設備110和120之一可以僅僅包括一個發射機或一個接收機。該通信通道199可以用一些不同類型的媒質實現(例如,一個使用碟形衛星天線132和134的衛星通信通道130,一個使用發射塔142和144和/或本地天線152和154的無線通信通道140,一個有線通信通道150,和/或一個使用電光轉換(E/O)介面162和光電轉換(O/E)介面164的光纖通信通道160)。另外,可以使用一種以上媒質相互連接來構成通信通道199。
圖2示出了一個turbo解碼器裝置的一個實施例200。接收信號(例如典型地,由一個通信通道接收到的)發往I,Q提取模組202,該模組可以從所述接收信號201中提取I,Q(同相和正交)分量。這可以看成是接收機的預處理,並且它可能包括任何適當的頻率轉換(典型地,如果需要從一個載波頻率下變頻處理)。所述I,Q分量接著可以根據調製的特定星座和映射關係而映射。接著該映射I,Q被送到度量生成器204。該度量生成器204產生適當的度量241,它是在該調製的適當的星座和映射內測量所述接收I,Q分量到星座點距離而得到的;所述度量可以被該調製內的星座點的映射索引;這些度量可以看成是從實際接收符號位置到調製內的期 望星座點位置之間歐式距離的縮放值。
繼續上面的turbo解碼處理和功能,所述由度量生成器204產生的度量241接著被同時送到第一軟輸入/軟輸出(SISO 0)解碼器210和第二SISO 1解碼器230。在網格編碼環境中(例如,turbo碼網格編碼調製(TTCM)),根據所使用的網格,第一SISO 0解碼器210和第二SISO 1解碼器230均計算前向度量(alphas)和反向度量(betas),和外資訊值。
對於將要被編碼的幀,它內部的每一個符號的這些alphas和betas以及外資訊值都要計算。這些alphas和betas以及外資訊值的計算都是基於網格的。
從第一SISO 0解碼器210開始,在完成外資訊值的計算211之後,它們被傳送到交織器(π)220,在這之後又被傳送到第二SISO 1解碼器230以作為“先驗概率”(app)資訊221。類似地,在第二SISO 1解碼器230完成外資訊值的計算231之後,它們被傳送到解交織器(π-1 )240,在這之後又被傳送到第一SISO 0解碼器210以作為“先驗概率”(app)資訊241。應注意的是在turbo解碼器200中的叠代解碼處理的一次解碼叠代包括執行2個SISO操作;也就是說,叠代解碼處理必須既通過第一個SISO 0解碼器210又通過第二個SISO 1解碼器230。
當達到了顯著標準置信度以及結果收斂之後,或者當執行了預先確定的解碼叠代次數之後,接著來自第二SISO 1解碼器230的輸出將作為輸出被傳送到輸出處理器250。SISO 210和230的操作主要指的是計算包含於接收符合內的符號的軟符號判決。在一些實施例中,可以對一個真值(true)位元級執行這些軟符號判決。輸出處理器250使用這些軟符號判決來為編碼在原始turbo編碼信號(例如,通常位於通信通道另一端的turbo編碼器位置中,信號201最初就是發送到該通信通道中的)中的資訊位元產生最優估計251(例如,硬位元和/或符號判決)。
還應注意的是在交織器(π)220執行的每次交織可以利用ARP交織實施例(參考數位291所示)執行。而且,有一些實施例中在解交織器(π-1 )240中執行的解交織可以利用ARP解交織實施例執行。
這裏給出的很多實施例都使用了ARP(近似正則置換)交織。更多的細節在參考以下方法而給出,在這種方法中一種結構可同時用於執行ARP交織和ARP解交織。然而在做這之前,為了讓讀者有可比較分析而給出了正則置換(regular permutation)。
圖3示出了分時turbo解碼器的一個實施例,它可以使用一個軟輸入/軟輸出解碼器或一個SISO解碼器陣列。依據turbo解碼器處理(或並行turbo解碼處理),該實施例利用一個SISO解碼器或者一個SISO解碼器陣列來同時執行SISO 0和SISO 1解碼操作。MUX 305可以接收資訊位元301和冗餘位元302並有選擇地把它們提供給SISO解碼器310。這個實施例的SISO解碼器310還包括一個集成交織器(π)320和一個集成解交織器(π-1 )340。MUX 305的選擇信號根據一個信號,它的偶(even)相位303控制選擇著將資訊位元301或冗餘位元提供給302給SISO解碼器310以執行SISO 0解碼處理或者SISO 1解碼處理。
在一個實施例中,由參考數位312所描述,當執行自然序階段解碼(例如,SISO 0解碼操作),在選擇信號303指示一個偶相位給MUX305時,則執行記憶體條目訪問。而且,當執行交織(π)序相位解碼(例如SISO 1解碼操作),在選擇信號303指示一個奇相位給MUX305,則執行記憶體條目訪問。
圖4示出了一個可以應用於turbo解碼的並行解碼的實施例400。如圖所示,給出的turbo編碼信號內的一個資訊塊的塊長度401是L。這也可以指的是將要進行turbo解碼處理的一個編碼塊。所述塊被分成多個窗,從而每一個窗的大小為W=L/M,如參考數位402所示。用於並行解碼所安排的處理器數量是M(如參考數位404所示),需要注意的是M是L的一個因數(也就是L除以M沒 有餘數)。
在周期0(也就是在turbo解碼的叠代解碼處理的第一次解碼叠代),每一個視窗的第一部分資料被處理,如每一個視窗的相應陰影部分所示。接著在周期1(也就是在turbo解碼的叠代解碼處理的第二次解碼叠代),每一個視窗的第二部分資料被處理,如每一個視窗的相應陰影部分所示。這樣一直下去直到周期W-1(也就是在turbo解碼的叠代解碼處理的最後一次解碼叠代)。每一個視窗的最後一部分資料被處理,如每一個視窗的相應陰影部分所示。
在每一個周期內,使用多個解碼處理器(例如多個turbo解碼器)中的一個解碼處理器(例如,一個turbo解碼器)處理每一個視窗給定的部分。
圖5示出了一個按自然/非交織序分配解碼處理器的一個實施例500(用於進行turbo編碼信號的並行解碼)。這個圖也與圖4相對應。例如,窗的大小為W,處理器的數量為M,以及塊長度為L,這些約定與之前所述實施例是一致的,如參考數位502所示(也就是W=L/M,或者M×W=L)。另外,交織索引如參考數位501所示,I={0,1,...,L-1}。
根據並行turbo解碼處理,這包括使用M個解碼處理器,在周期0(也就是在turbo解碼的叠代解碼處理的第一次解碼叠代),每一個視窗相應的第一部分資料是按如下方式處理的:
1.處理器0處理資訊塊的部分0。
2.處理器1處理資訊塊的部分W。
3.處理器2處理資訊塊的部分2W。
s.處理器s處理資訊塊的部分sW(s是一個整數)。
M-1處理器M-1處理資訊塊的部分(M-1)W。
在周期1(也就是在turbo解碼的叠代解碼處理的第二次解碼 叠代),每一個視窗相應的第二部分資料是按如下方式處理的:
1.處理器0處理資訊塊的部分1。
2.處理器1處理資訊塊的部分W+1。
3.處理器2處理資訊塊的部分2W+1。
s.處理器s處理資訊塊的部分sW+1(s是一個整數)。
M-1處理器M-1處理資訊塊的部分(M-1)W+1。
這個過程將會持續到周期W-1(也就是在turbo解碼的叠代解碼處理的最後一次解碼叠代)。每一個視窗相應的最後一部分資料是按如下方式處理的:
1.處理器0處理資訊塊的部分W-1。
2.處理器1處理資訊塊的部分W+W-1。
3.處理器2處理資訊塊的部分W+2W-1。
s.處理器s處理資訊塊的部分W+sW-1(s是一個整數)。
M-1處理器M-1處理資訊塊的部分(M-1)W+W-1。
第t次解碼周期的索引如下(也可以參考數位503所示):E0 ={0,W,...,(M-1)W},和Et ={t,W+t,...,(M-1)W+t}。
圖6示出了用於按照交織(π)序來分配解碼處理器的一個實施例600(用於進行turbo編碼信號並行解碼)。這個圖也與圖4相對應。例如,窗的大小為W,處理器的數量為M,以及塊長度為L,這些約定與之前所述實施例是一致的,如參考數位602所示(也就是W=L/M,或者M×W=L)。另外,交織索引如參考數位601所示,I={0,1,...,L-1}。
根據並行turbo解碼處理,這包括使用M個解碼處理器,在 周期0(也就是在turbo解碼的叠代解碼處理的第一次解碼叠代),每一個視窗相應的第一部分資料是按如下方式處理的(注意:這些是已交織(π)部分資料):
1.處理器0處理資訊塊的部分π(0)。
2.處理器1處理資訊塊的部分π(W)。
3.處理器2處理資訊塊的部分π(2W)。
s.處理器s處理資訊塊的部分π(sW)(s是一個整數)。
M-1處理器M-1處理資訊塊的部分π((M-1)W)。
在周期1(也就是在turbo解碼的叠代解碼處理的第二次解碼叠代),每一個視窗相應的第二部分資料是按如下方式處理的:
1.處理器0處理資訊塊的部分π(1)。
2.處理器1處理資訊塊的部分π(W+1)。
3.處理器2處理資訊塊的部分π(2W+1)。
s.處理器s處理資訊塊的部分π(sW+1)(s是一個整數)。
M-1處理器M-1處理資訊塊的部分π((M-1)W+1)。
這個過程將會持續到周期W-1(也就是在turbo解碼的叠代解碼處理的最後一次解碼叠代)。每一個視窗相應的最後一部分資料是按如下方式處理的:
1.處理器0處理資訊塊的部分π(W-1)。
2.處理器1處理資訊塊的部分π(W+W-1)。
3.處理器2處理資訊塊的部分π(2W+W-1)。
s.處理器s處理資訊塊的部分π(sW+W-1)(s是一個整數)。
M-1處理器M-1處理資訊塊的部分π((M-1)W+W-1)。
第t次解碼周期的索引如下(也可以參考數位603所示): ,和
記憶體映射M是無競爭並滿足以下關係:i,i'E t ,ii' =>M(i)M(i')
需要注意的是第t個周期的索引集中的元素應該映射到不同的記憶體體(例如,為多個並行安排的turbo解碼器提供服務的多個記憶體中的不同記憶體)。
圖7A示出了按照自然/非交織序階段的並行解碼的記憶體映射的一個實施例700。
圖7B示出了按照交織(π)序(示出了在一個記憶體內的競爭)相位的並行解碼的記憶體映射的一個實施例702。
圖7A和圖7B應該相互參考。這些實施例700和702的每一個使用4個存儲體(如所示的記憶體741,記憶體742,記憶體743,記憶體744)。給出的一個編碼塊被分割成多個子模組。這個特定的編碼塊包括4W個資料位置。
在自然序階段中,第一個子塊從資料位置0,1開始並一直到W-1。第二個子塊從資料位置W,W+1開始並一直到2W-I。第三個子塊從資料位置2W,2W+1開始並一直到3W-1。第四個子塊從資料位置3W,3W+1開始並一直到4W-1。
在周期0,第一個子塊的第一個資料(也就是位置0內的資料)存儲於記憶體742的第一個位置。
在周期0,第二個子塊的第一個資料(也就是位置W內的資料)存儲於記憶體743的第一個位置。
在周期0,第三個子塊的第一個資料(也就是位置2W內的資料)存儲於記憶體741的第一個位置。
在周期0,第四個子塊的第一個資料(也就是位置3W內的資料)存儲於記憶體744的第一個位置。
在周期1,第一個子塊的第二個資料(也就是位置1內的資料)存儲於記憶體741的第二個位置。
在周期1,第二個子塊的第二個資料(也就是位置W+1內的資料)存儲於記憶體744的第二個位置。
在周期1,第三個子塊的第二個資料(也就是位置2W+1內的資料)存儲於記憶體742的第二個位置。
在周期1,第四個子塊的第二個資料(也就是位置3W+1內的資料)存儲於記憶體743的第二個位置。
該過程持續到編碼塊的所有資料元素都存儲到所述4個存儲體內相應的存儲位置。一個特定資料放置在哪個存儲體內取決於所使用的映射。
在經過交織(π)後,如圖所示,交織後的編碼快也分割成多個子塊。該特定編碼塊包括4W個資料位置。
在交織序階段中,第一個子塊從資料位置π(0),π(1)開始並一直到π(W-1)。第二個子塊從資料位置π(W),π(W+1)開始並一直到π(2W-1)。第三個子塊從資料位置π(2W),π(2W+1)開始並一直到π(3W-1)。第四個子塊從資料位置π(3W),π(3W+1)開始並一直到π(4W-1)。
在周期0,第一個子塊的第一個資料(也就是位置π(0)內的資料)存儲於記憶體741的一個位置,該位置是由所使用的特定交織和映射控制。
在周期0,第二個子塊的第一個資料(也就是位置π(W)內的資料)存儲於記憶體744的一個位置,該位置是由所使用的特定交織和映射控制。
在周期0,第三個子塊的第一個資料(也就是位置π(2W)內的資料)存儲於記憶體743的一個位置,該位置是由所使用的特定交 織和映射控制。
在周期0,第四個子塊的第一個資料(也就是位置π(3W)內的資料)存儲於記憶體742的一個位置,該位置是由所使用的特定交織和映射控制。
在周期1,第一個子塊的第二個資料(也就是位置π(1)內的資料)存儲於記憶體742的一個位置,該位置是由所使用的特定交織和映射控制。
在周期1,第二個子塊的第二個資料(也就是位置π(W+1)內的資料)存儲於記憶體741的一個位置,該位置是由所使用的特定交織和映射控制。
在周期1,第三個子塊的第二個資料(也就是位置π(2W+1)內的資料)存儲於記憶體742的一個位置,該位置是由所使用的特定交織和映射控制。
在周期1,第四個子塊的第二個資料(也就是位置π(3W+1)內的資料)存儲於記憶體744的一個位置,該位置是由所使用的特定交織和映射控制。
該過程持續到已交織編碼塊的所有資料元素都被存儲到所述4個存儲體內相應的存儲位置。一個特定資料放置在哪個存儲體內取決於使用的映射。
注意該映射不是無競爭的,因為在交織相位序的周期1,第一個子塊的第二個資料(也就是在位置{pi}(1)的資料)和第三個子塊的第二個資料(也就是在位置{pi}(2W+1)的資料)都映射到同一個記憶體742。
圖8示出了一個可以執行並行解碼的turbo解碼器裝置的一個實施例800,由於在turbo解碼器裝置和記憶體之間缺少無競爭存儲映射,在該解碼器裝置中會產生競爭。
這個turbo解碼器裝置800包括多個turbo解碼器821-827,多個記憶體841-847和一個處理模組830,該處理模組可以執行在 多個turbo解碼器821-827和多個記憶體841-847之間的存儲映射。如圖所示,在一個給定的時間內,多於一個turbo解碼器試圖訪問同一個記憶體。確切的說,turbo解碼器821和turbo解碼器822都試圖訪問記憶體841,以及turbo解碼器824和turbo解碼器825都試圖訪問記憶體845。還有,turbo解碼器827和另外一個turbo解碼器(包含在所示的省略號...區域內)試圖訪問記憶體847。這將會產生衝突並引起不好的性能。
圖9示出了一個可以執行並行解碼的turbo解碼器裝置的一個實施例,由於在turbo解碼器裝置和記憶體之間有無競爭存儲映射,在該解碼器裝置中會不會產生競爭。
這個turbo解碼器裝置900包括多個turbo解碼器921-927,多個記憶體941-947和一個處理模組930,該處理模組可以執行在多個turbo解碼器921-927和多個記憶體941-947之間的無競爭存儲映射。如圖所示,在一個給定的時間,僅一個turbo解碼器試圖訪問任何一個記憶體。在多個turbo解碼器921-927和多個記憶體941-947之間,這是一個完全的無競爭存儲映射。
圖10和圖11示出了一個通信系統的其他實施例。
參考圖10中的通信系統1000,該通信系統1000包括一個通信設備1010,它通過通信通道1099連接到另外一個設備1090。通信設備1010包括一個解碼器裝置1021,其實現為並行turbo解碼器裝置,並可以使用無競爭存儲映射。
通信設備1010通過通信通道1099連接的另外一個設備1090可以是另外一個通信設備1092,一個存儲媒質1094(例如,一個硬碟驅動器(HDD))或者可以接收和/或發射信號的其他類型的設備。在一些實施例中,通信通道1099是雙向通信通道,該雙向通道可以在第一時間發射第一個信號,而在第二時間接收第二個信號。若需要,還可以使用全雙工通信,通信設備1010和設備1090的每一個可以同時發射和/或接收彼此的資料。
通信設備1010的解碼器裝置1021包括一個turbo解碼器1020,一個處理模組1030,和一個記憶體1040。該處理模組1030可以連接到記憶體1040以至於記憶體可以存儲處理模組1030用來執行特定功能的操作指令。
一般地說,在叠代解碼處理時,處理模組1030可以執行turbo解碼器1020和記憶體1040之間的無競爭映射。
需要注意的是處理模組1030以及這裏描述的其他處理模組可以用以下描述的任何方法實現。在一個實施例中,處理模組1030可以用電路嚴格實現。或者,處理模組1030可以用軟體例如可以用數位信號處理器(DSP)或者類似的設備嚴格實現。甚至在另外一個實施例中,在不脫離本發明的範圍和精神實質情況下,處理模組1030還可以用硬體和軟體的組合實現。
甚至在其他實施例中,處理模組1030可以用一個共用處理設備,單個處理設備,或者多個處理設備實現。這樣一個處理設備可以是一個微處理器,微控制器,數位信號處理器,微型電腦,中央處理單元,現場可編程閘陣列,可編程邏輯設備,狀態機,邏輯電路,類比電路,數位電路,和/或基於可操作指令的且可處理信號(類比和/或數位)的任何設備。處理模組1030可以連接到記憶體1040,該記憶體可以存儲處理模組1030用來執行turbo解碼器1020和記憶體1040間的適當無競爭存儲映射的可操作指令。
這樣一個記憶體1040可以是單個記憶體設備或者多個記憶體設備。這樣一個記憶體1040可以是唯讀記憶體,隨機訪問記憶體,易失性記憶體,非易失性記憶體,靜態記憶體,動態記憶體,快閃記憶體,和/或任何可以存儲數位資訊的設備。注意當處理模組1030可以使用一個狀態機,類比電路,數位電路,和/或邏輯電路實現它的一個或者多個功能,存儲相應可操作指令的記憶體可以嵌入到電路中,該電路包括所述狀態機,類比電路,數位電路和/或邏輯電路。
參考圖11中的通信系統1100,該實施例與之前的實施例有相似之處。通信系統1100包括一個通信設備1110,它可以通過通信通道1199連接到另外一個設備。通信設備1110包括一個turbo解碼器裝置1120,它自身由多個turbo解碼器1121-1122組成。通信設備1110還可以包括一個記憶體1140,它自身由多個記憶體1141-1142組成。在叠代解碼處理turbo編碼信號時,處理模組1130可以執行多個turbo解碼器1121-1122和多個記憶體1141-1142之間的無競爭存儲映射。
圖12A,圖12B,圖12C,圖12D示出了在turbo解碼器裝置和記憶體之間的多個而連續無競爭存儲映射。這4個圖可以相互參考。
一個通信設備包括一個turbo解碼器裝置,它自身由多個turbo解碼器1221,1222,1223組成。這樣一個通信設備還可以包括一個記憶體,它自身由多個記憶體1241,1242和1243組成。在對turbo編碼信號的叠代解碼處理時,一個處理模組1230可以執行多個turbo解碼器1221,1222,1223和多個記憶體1241,1242和1243之間的無競爭映射。
在任意給定時間,處理模組1230用於確保在一個給定時間只有一個turbo解碼器訪問給定的記憶體。例如在時間1處理模組1230可以執行一個第一次無競爭存儲映射,如參考數位1201所示。在時間2處理模組1230可以執行一個第二次無競爭存儲映射,如參考數位1202所示。在時間3處理模組1230可以執行一個第三次無競爭存儲映射,如參考數位1203所示。在時間4處理模組1230可以執行一個第四次無競爭存儲映射,如參考數位1204所示。如圖所示,在任何給定的時間,這4個圖中的每一個中僅僅一個turbo解碼器可以連接到任何一個記憶體。
如圖所示,在對turbo編碼信號的叠代解碼處理時,無競爭存儲映射在多個turbo解碼器1221,1222,1223和多個記憶體1241, 1242和1243之間的無競爭映射會隨著時間而變化。
圖13A,圖13B分別示出了用來執行並行解碼處理的多個處理器和多個記憶體存儲體的一些Toy例子的實施例,1301和1302。
這些實施例1301和1302的每一個使用多個存儲體1310,該存儲體包括4個存儲體。
當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例1301所示存儲映射如下:E0={0,6,12,18}→{0,2,1,3}
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例1301所示存儲映射如下:
當執行turbo解碼處理時,對於自然序的第二次叠代周期內,如實施例1302所示存儲映射如下:E1={1,7,13,19}→{1,3,2,0}
當執行turbo解碼處理時,還是對於交織(π)序的第二次叠代周期內,如實施例1302所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第三個解碼周期(自然序/交織序)是
第四個解碼周期(自然序/交織序)是
第5個解碼周期(自然序/交織序)是
第6個解碼周期(自然序/交織序)是
如圖所示,自然序和交織序它們都是無競爭的。
圖14示出了一個正則置換的一個實施例1400。該實施例1400還可以指的是一個迴圈置換。例如,該正則(迴圈)置換1400可以如下定義:
L表示幀的大小,而gcd(P,L)=1,麼表明π(j )≠π(j' )如果jj'
正則置換1400的實現相對要直接,但是性能不是很好。
由參考文獻[1]中介紹的資訊塊大小L=CW(也就是C是L的一個除數)的一個ARP(近似正則置換)定義為i =π(j )=jP +θ+A (j modC )P +B (j modC )modL
其中P和L互為素數,θ是一個常數,A(x)和B(x)是定義於{0,1,...,C-1}的整數函數。為了所定義的函數的功能是一個置換(也就是一個到另外一個或者到其他),在參考文獻[1]A(x)和B(x)進一步限制為A(i)P +B(i) =C[α(i)P +β(i)],i =0,...,C -1
其中αβ 是整數函數。在這個文檔中,我們稱C是ARP的抖動(dithering)周期。
如圖所示,C|L(因此,gcd(C,P)=1),此π(j)π(j') 如果jj'
例如:C=4
第一個ARP交織的例子在這裏給出:y =π(x) =Px +C[α(x modC)P +β(x modC)]( modL)
L =24,C =4,P =7
,這表明
如果提供以下的輸入到ARP交織(π),0,1,2,3,x 4,5,6,7,x 8,9,10,11,x 12,13,14,15,x 16,17,18,19,x 20,21,22,23
那麼對應的輸出為如下:0,11,22,x 4,15,2,9,x 8,19,6,13,x 12,23,10,17,x 16,3,14,21,x 20,7,18,1。
這裏給出了另外一個ARP交織的例子:y=π(x)=Px+C[α(x modC)P+β(x modC)](modL)
L=24,C=4,P=3
如果提供以下的輸入到這樣一個ARP交織(π),0,1,2,3,x 4,5,6,7,x 8,9,10,11,x 12,13,14,15,x 16,17,18,19
那麼對應的輸出為如下:1,6,16,15,x 13,18,8,7,x,5,10,0,19,x 17,2,12,11,x 9,14,4,3。
對於ARP還有一些特別的情況。
情況1
A(x) =Cα(x),B(x) =Cβ(x)
當θ=0,在參考文獻[1]中的方程(10),(11)和(12)。
當θ=3,C=4,[2]France Telecom,GET,"Enhancement of Rel.6 turbo Code," 3GPP TSG RAN WG1#43,R1-051310,2005
當θ=3,C=4和8,表1,[3]Motorola,"Acontention-free interleaver design for LTE codes,",3GPP TSG RAN WG1#47。
情況2
在參考文獻[1]的方程(13)。
另外,以下也給出了ARP的特定性質:性質1
x 0 =x 1 modC,這表明π(x 0 )=π(x 1 )modC
證明:令x 1 =x 0 +kC ,那麼π(x 1 )-π(x 0 )=PkC =0modC。
性質2
定義Ψ :{0,1,...C -1}→{0,1,...C-1}通過Ψ (u )=π(u )modC
π是一個置換,它表明Ψ 是雙向映射(bijection)。
證明:假設u 0 ,u 1 □{0,1,...C -1},u 0u 1 ,但Ψ(u 0 )=Ψ (u 1 ).對C求模在{0,1,...L-1}有L/C個元素以及同餘u 0 以及另外一個對C求模的L/C個元素以及同餘u 1 。因此,根據性質1,有2L/C個元素u 這樣π(u )有同樣的同餘模組C。這與假設π是一個置換是相矛盾的。
性質3
定義Ψ :{0,1,...C -1}→{0,1,...C -1}通過Ψ (u )=π(u )modC
Ψ 是雙向映射(bijection),那麼π是一個置換。
證明:假設x 0 ,x 1 {0,1,...L -1},x 0 <x 1 ,但π(x 0 )=π(x 1 ).設u 0 =x 0 modC和u 1 =x 1 modC 。如果u 0u 1 ,那麼π(x 0 )modC ≠π(x 1 )modC 因為Ψ 是 一一對應的映射的。如果u 0 =u 1 ,對於一個k □{0,1,...,L /C -1}那麼設x 1 =x 0 +kC 。因此,π(x 1 )-π(x 0 )=PkC modL 。因為gcd(P,L)=1和C|L,PkCmodL=0表明k=0或者k除L/C。對於k的範圍,不可避免的存在矛盾;因此,僅當x 0 =x 1 時π(x 0 )=π(x 1 )。
性質4
如果π(x )是一個周期為C的ARP交織(π),那麼π(x )還可以是一個周期為的ARP交織(π),如果C%|L。
證明:設π(x )=[Px +A (x modC )P +B (x modC )+θ]modL
清楚地,π(x )還可以如下寫:π(x )=[Px +A %(x modC %)P +B %(x modC %)+θ]modL ,其中
因此,如果C%|L,那麼π(x )是一個周期為C%的交織(π)。
圖15A和圖15B示出了多個記憶體存儲體的MOD存儲映射的實施例。
繼續另外一種形式的存儲映射,有另外一種形式的存儲映射,在所引用的參考文獻[1]和[2]中定義的參考模組化映射(也就是,縮寫的MOD映射)。
根據該MOD映射方式(再一次說明,M是解碼處理器的數量),M MOD i |→i modM ,其中M是解碼處理器的數量,C是ARP交織(π)的周期,和M是C的倍數。
這個MOD映射方式的實施例只有在gcd(W,M)=1時是無競爭的。
當gcd(W,M)=1時,這些實施例1501和1502的每一個對應於MOD映射。而且這些實施例1501和1502對索引集(W=5,C=4,M=4和gcd(W,M)=1)使用MOD映射。
這些實施例1501和1502使用多個存儲體1510,該存儲體包 括4個存儲體。
在第一次解碼周期,當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例1501所示存儲映射如下:E0 ={0,5,10,15}→{0,1,2,3}
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例1501所示存儲映射如下:
當執行turbo解碼處理時,對於自然序的第二次叠代周期內,如實施例1502所示存儲映射如下:E1 ={1,7,13,19}→{1,3,2,0}
當執行turbo解碼處理時,還是對於交織(π)序的第二次叠代周期內,如實施例1502所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第三個解碼周期(自然序/交織序)是
第四個解碼周期(自然序/交織序)是
第五個解碼周期(自然序/交織序)是
如圖所示,自然序和交織序都是無競爭的。
然而,很多之前的實施例,特別在turbo編碼和turbo解碼中使用ARP交織(π)的那些實施例需要限制所使用的解碼處理器的數量M。例如,這些之前的實施例需要解碼處理器的數量M是資訊塊長度L的一個因數。
以下給出了一種方法,通過該方法可以選擇使用任意數量(M)解碼處理器用於執行並行turbo解碼處理。
在做這時,選擇了一個計劃(scheduled)塊長度L'是非常明智的,那樣該任意選定數量(M)解碼處理器可以結合一個無競爭的特定存儲映射使用。
圖16A和圖16B示出了依據所述Toy例子的多個記憶體存儲體的MOD存儲映射的實施例,衝突產生了並顯示出存儲映射是競爭的。而且,這些實施例1601和1602對索引集(W=6,C=4,M=4和ged(W,M)≠1)使用MOD映射。
這些實施例1601和1602使用多個存儲體1610,具體包括4個存儲體。
在第一次解碼周期,當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例1601所示存儲映射如下:E0 ={0,6,12,18}→{0,2,0,2}
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例1601所示存儲映射如下:
當執行turbo解碼處理時,對於自然序的第二次叠代周期內,如實施例1602所示存儲映射如下:E1 ={1,7,13,19}→{1,3,1,3}
當執行turbo解碼處理時,還是對於交織(π)序的第二次叠代周期內,如實施例1602所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第三個解碼周期(自然序/交織序)是
第四個解碼周期(自然序/交織序)是
第5個解碼周期(自然序/交織序)是
第6個解碼周期(自然序/交織序)是
如圖所示,自然序和交織序都是競爭的。
這是另外一種記憶體映射,稱為除法映射(也就是簡稱DIV映射),其在所引用的參考文獻[4]中做了定義定義。
根據該DIV映射方式,M DIV ,其中W是並行解碼結構視窗的大小。
第i周期的索引集如下:E i ={i,W +1,...,(M -1)W +i} ,其中M是解碼處理器的數量,C是ARP交織(π)的周期。
另外,如果M是L/C的一個因數,那麼對於ARP交織(π)的映射實際上是無競爭的。
然而需要注意,在以下參考文獻[3]和參考文獻[4]引用的例子沒有這個性質。
圖17A和圖17B示出了多個記憶體存儲體的DIV存儲映射的實施例。這些實施例1701和1702的每一個對應於當M除L/C的情況。另外,這些實施例1701和1702對索引集(C=4,M=3實際上是L/C=6的一個因數,以及W=8)使用DIV映射。
這些實施例1701和1702的每一個使用多個存儲體1710,具體包括3個存儲體。
當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例1701所示存儲映射如下:E0 ={0,8,16}→{0,1,2}
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例1701所示存儲映射如下:
當執行turbo解碼處理時,對於自然序的第二次叠代周期內,如實施例1702所示存儲映射如下:E1 ={1,9,17}→{0,1,2}
當執行turbo解碼處理時,還是對於交織(π)序的第二次叠代周期內,如實施例1702所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第三個解碼周期(自然序/交織序)是
第四個解碼周期(自然序/交織序)是
第5個解碼周期(自然序/交織序)是
第6個解碼周期(自然序/交織序)是
第7個解碼周期(自然序/交織序)是
第8個解碼周期(自然序/交織序)是
如圖所示,自然序和交織序都是無競爭的。
圖18A和圖18B示出了依據所述Toy例子的多個記憶體存儲體的DIV存儲映射的實施例,衝突產生了並顯示出存儲映射是競爭的。
這些實施例1801和1802的每一個對應於當M不是L/C的因數的情況。換句話說,M不能被L/C除盡。另外,這些實施例1801和1802對索引集(C=4,M=4,M不是L/C=6的一個因數,以及窗大小,W=6)使用DIV映射。
這些實施例1801和1802的每一個使用多個存儲體1810,具 體包括4個存儲體。
當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例1801所示存儲映射如下:E0 ={0,6,12,18}→{0,1,2,3}
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例1801所示存儲映射如下:
當執行turbo解碼處理時,對於自然序的第二次叠代周期內,如實施例1802所示存儲映射如下:E1 ={1,7,13,19}→{0,1,2,3}
當執行turbo解碼處理時,還是對於交織(π)序的第二次叠代周期內,如實施例1702所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第三個解碼周期(自然序/交織序)是
第四個解碼周期(自然序/交織序)是
第5個解碼周期(自然序/交織序)是
第6個解碼周期(自然序/交織序)是
如圖所示,自然序是無競爭的,但是交織序是競爭的。
根據以上描述的ARP交織(π),以下(用MADD 或ADD映射描述)給出了一種用於ARP交織(π)的新的的無競爭存儲映射。對於一個任意大小的ARP交織(π),以下存儲映射是無競爭的:M ADD ,其中 C:ARP的周期;M:#處理器個數,其中M是C的倍數(也就是,M=mC,其中m是整數);W:並行解碼窗口大小;和q:滿足qW=0mod_M性質的最小正整數。
對於任意大小的ARP交織(π)和使用任意個數M的並行解碼器實現,可以斷定在多個處理器和多個記憶體(也就是存儲體)之間的ADD映射是無競爭的。
這個ADD映射可以按如下方式把在第t個解碼周期的索引集映射到不同的記憶體(也就是存儲體):Et ={t,W+t,...,(M-1)W+t},和
圖19A和圖19B示出了依據所述Toy例子的多個記憶體存儲體的ADD存儲映射的實施例1901和1902,沒有產生衝突顯示出存儲映射是無競爭的。
這些實施例1901和1902對應C=4窗口大小W=6、q=2、從而qw=12的情況。
這些實施例1901和1902使用多個存儲體1910,具體包括4個存儲體。
當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例1901所示存儲映射如下:
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例1901所示存儲映射如下:
當執行turbo解碼處理時,對於自然序的第二次叠代周期內,如實施例1902所示存儲映射如下:
當執行turbo解碼處理時,還是對於交織(π)序的第二次叠代周期內,如實施例1902所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第三個解碼周期(自然序)是:
第三個解碼周期(交織序)是:
第四個解碼周期(自然序)是:
第四個解碼周期(交織序)是
第五個解碼周期(自然序)是: E4 ={4,10,16,22}{0,2,0,2}
第五個解碼周期(交織序)是:
第六個解碼周期(自然序)是:
第六個解碼周期(交織序)是:
如圖所示,自然序和交織序階段都是無競爭的。
圖20示出了M=2C多個記憶體存的ADD存儲映射的實施例2000,沒有產生衝突顯示出存儲映射是無競爭的。
這個實施例2000對應C=4,m=2的情況,視窗大小,W=3,q=8,以及qW=24。
因為qW>L-I,可以得到,那麼:MADD :→x mod(8)
這個實施例2000使用多個存儲體2010,它具體包括8個存儲體。
當執行turbo解碼處理時,對於自然序的第一次叠代周期內,如實施例2001所示存儲映射如下:
當執行turbo解碼處理時,還是對於交織(π)序的第一次叠代周期內,如實施例2001所示存儲映射如下:
在後面的解碼周期內(例如解碼叠代),處理器和記憶體之間的存儲映射如下:第二個解碼周期(自然序)是:
第二個解碼周期(交織序)是:
第三個解碼周期(自然序)是:
第三個解碼周期(交織序)是:
如圖所示,自然序和交織序階段都是無競爭的。
圖21示出了用於ADD映射和並行turbo解碼處理的自然序階段的直接地址生成的一個實施例2100。使用自然序的直接地址生成如下:A N xx mod(W )。
這個直接位址生成2100可以應用於多種存儲映射,但是可以 看出最後實現複雜度有時候是不令人滿意的而且有時候可以產生一些壞的效應例如解碼速度的降低。
特別地參考圖21,這個實施例使用ADD映射(也就是,存儲映射M=MADD );另外,這個實施例2100對應C=4的情況,視窗大小,W=6,q=2,以及qW=12,如參考數位2102描述的所示。而且4個處理器(如所示的處理器P0 2110,處理器P1 2111,P2 2112,P3 2113)和4個存儲體(如所示的存儲體B0 2120,存儲體B1 2121,存儲體B2 2122,存儲體B3 2123)。
根據自然序階段turbo解碼處理(例如,SISO 0解碼操作),位址是順序的進行訪問,如參考數位2103所示。該映射(在這個情況下是ADD映射)確定從哪個特定記憶體體提供哪個資料給哪個處理器,然而可以得出以下:
1.在時間0訪問到每一個存儲體的上面的第一個資料條目(entry)。
2.在時間1訪問到每一個存儲體的上面的第二個資料條目。
3.在時間2訪問到每一個存儲體的上面的第三個資料條目。
4.在時間3訪問到每一個存儲體的上面的第四個資料條目。
5.在時間4訪問到每一個存儲體的下面的第二個資料條目。
6.在時間5訪問到每一個存儲體的下面的第一個資料條目。
圖22示出了用於ADD映射和並行turbo解碼處理的交織(π)序相位的直接地址生成的一個實施例。這個圖可以參考圖21考慮。
根據交織序(π)turbo解碼處理(例如,SISO 1解碼操作),根據存儲映射(M)和使用的交織(π),如參考數位2104所描述的,位址是變化序的訪問(也就是,沒有必要順序的)。該映射(在這個情況下是ADD映射)確定從哪個特定記憶體體提供哪個資料給哪個處理器,然而考慮每一個存儲體時可以得出以下:考慮存儲體B0 2120:
1.在時間0訪問到存儲體B0 2120的上面的第一個資料條目。
2.在時間1訪問到存儲體B0 2120的下面的第一個資料條目。
3.在時間2訪問到存儲體B0 2120的上面的第三個資料條目。
4.在時間3訪問到存儲體B0 2120的上面的第二個資料條目。
5.在時間4訪問到存儲體B0 2120的下面的第二個資料條目。
6.在時間5訪問到存儲體B0 2120的上面的第四個資料條目。
考慮存儲體B1 2121:
1.在時間0訪問到存儲體B1 2121的上面的第一個資料條目。
2.在時間1訪問到存儲體B1 2121的上面的第四個資料條目。
3.在時間2訪問到存儲體B1 2121的上面的第三個資料條目。
4.在時間3訪問到存儲體B1 2121的下面的第一個資料條目。
5.在時間4訪問到存儲體B1 2121的下面的第二個資料條目。
6.在時間5訪問到存儲體B1 2121的上面的第二個資料條目。
若考慮存儲體B2 2122和存儲體B3 2123可以做出類似的觀察。
圖23示出了用於ADD映射的直接位址生成的解碼結構實現的一個實施例2300。這個圖可以結合圖21和圖22作為參考。使用一個縱橫交換2310以執行從每一個存儲體提供合適的資料值到適當的處理器。該適當的資料供應也是所使用的存儲映射(M)和交織(π)的函數。根據每一個存儲體映射(例如,在一個給定的解碼時間,一個特定存儲體內的每一個資料條目是提供給哪個處理器的)(這4個存儲體的記憶體映射用M(Xs0 ),M(Xs1 ),M(Xs2 )和M(Xs3 )表示),接著對於存儲體的位址以及在存儲體內特定位置的資料值,如果(M(Xsm )=bn),則通過sm→bn處理,那麼處理器索引{s0,s1,s2,s3}被映射到特定存儲體索引{b0,b1,b2,b3}。
參考圖23,可以按以下描述過程操作:
1.在周期t,處理器Ps計算位元位置xs(在自然序階段中的sW+t;在交織序(π)相位中的π(sW+t))。
2.對xs的存儲體和存儲位址位置,Ps計算M(xs) (例如哪個存儲 體)和A(xs) (例如在存儲體的哪個位置)。
3.根據M(xs) 集將每個處理器連接到對應的存儲體M(xs) ,以此來配置縱橫交換(cross-bar)2310。
4.來自於處理器Ps的地址A(xs) 被送到相應的存儲體M(xs) 那樣在位元位置xs的值L(xs)可以訪問。
另外一種描述方式,如果地址映射如下:A N xx mod(W )。
在並行turbo解碼處理的自然序階段中,位址是順序地訪問的,這是一種相對快和簡單的實現。
在並行turbo解碼處理的交織序(π)相位中,位址是由處理器計算並接著送到特定的存儲體。這需要很長的周期時間而且縱橫交換2310需要提供和轉換存儲體和處理器之間的記憶體位址和資料值。
圖24示出了用於ADD映射和並行turbo解碼處理的自然序階段的預先地址生成的一個實施例2400。這裏給出了一種新的的方式,通過該方式對於並行turbo解碼處理相應的地址生成的周期時間可以非常明顯的減少。這裏指的地址生成主要是預先地址生成。
初始時,假設地址映射如下:A N xx mod(W )。
接著可能會出現是否需要對每一個存儲體計算它自身的位址序列而不是必須由處理器通過橫交換提供必要的地址的問題。如果使用以上假設的地址映射(A N xx mod(W )),那麼這實際上是可以執行的,但是那是非常難實現的。
這裏給出通過計算索引函數(F)的新的的方式,在並行turbo解碼處理的交織序(π)的周期t,該索引函數(F)給出存儲體b內資料的索引x。例如,以下索引函數(F)是為特定位址映射(A N xx mod(W ))而計算的。
F(b,t)=x,這表示M(x)=b以及對於某個s,x=π(sW+t)。
然而對於特定地址映射(A N x →xmod(W )這個索引函數(F)非常難得出,因為方程x=π(sW+t)mod(W)之後可能有餘數。對於這個的一個例外可能是DIV存儲映射(例如MDIV)而這是因為其中s的地址AN(π(sW+t))對於特定存儲映射是獨立的。
因此,給出了一種新的位址生成方法,這裏給出存儲映射到位址而不是根據如下解交織(π-1 )序得出的:A I x →π-1 (x )mod(W )
當計算交織(π),其解交織(也就是解交織(π-1 ))也是可以被保存。
另外,解交織(π-1 )還可以用另外一種ARP交織(π)得到,該交織在以下公共受讓人美國臨時專利申請和美國發明專利申請中所描述,它們的內容可以在這裏作為整體任意參考:1.美國臨時專利申請號為60/872,367,題目為"Turbo decoderemploying ARP(almost regular permutation)interleave and inverse thereofasde-interleave,"(代理案號NO.BP5864),申請日為2006年12月1日,未決;2.美國發明申請申請號為11/657,819,題目為"Turbo decoder employing ARP(almost regular permutation)interleave and inverse thereof as de-interleave,"(代理案號NO.BP5864),申請日為2007年1月25日,未決;對於Toy例子(以上提供了它的幾個實施例)計算解交織(π-1 )的例子在以下給出:對於以下的參數,L=24,C=4以及p=7,那麼p-1 =7,因為PP-1 =1mod(L)。
自然序階段(當考慮4個處理器時)如下:0,1,2,4,5x6,7,8,9,10,11x12,13,14,15,16,17x18,19,20,21,22,23
交織(π)序相位(當考慮4個處理器時)如下:0,1,122,5,4,15x2,9,8,19,6,13x12,23,10,17,16,3x14,21,20,7,18
參考圖24,地址生成2400使用自然序如下:A I x →π-1 (x )mod(W )
這個預先位址生成2400可以運用於多種存儲映射,相對於以上描述的直接位址生成,它可以很大程度改善解碼速度。
特別地參考圖24,這個實施例使用ADD映射(也就是存儲映射M=MADD );另外,這個實施例2400對應C=4的情況,視窗大小,W=6,q=2,以及qW=12,如參考數位2402描述的所示。而且,4個處理器(如所示的處理器P0 2410,處理器P1 2411,P2 2412,P3 2413)和4個存儲體(如所示的存儲體B0 2420,存儲體B1 2421,存儲體B2 2422,存儲體B3 2423)。
根據自然序階段turbo解碼處理(例如,SISO 0解碼操作),地址是變化序的獲取(也就是,沒有必要順序),這取決於所使用的存儲映射(M)和交織(π),如參考數位2402所示。該映射(在這個情況下是ADD映射)確定從哪個特定記憶體體中提供哪個資料給哪個處理器,然而在考慮每一個存儲體時可以得出以下:考慮存儲體B0 2420:
1.在時間0訪問到存儲體B0 2420的上面的第一個資料條目。
2.在時間1訪問到存儲體B0 2420的上面的第四個資料條目。
3.在時間2訪問到存儲體B0 2420的上面的第三個資料條目。
4.在時間3訪問到存儲體B0 2420的下面的第一個資料條目。
5.在時間4訪問到存儲體B0 2420的下面的第二個資料條目。
6.在時間5訪問到存儲體B0 2420的上面的第二個資料條目。
考慮存儲體B1 2421:
1.在時間0訪問到存儲體B1 2421的上面的第一個資料條目。
2.在時間1訪問到存儲體B1 2421的下面的第一個資料條目。
3.在時間2訪問到存儲體B1 2421的上面的第三個資料條目。
4.在時間3訪問到存儲體B1 2421的上面的第二個資料條目。
5.在時間4訪問到存儲體B1 2421的下面的第二個資料條目。
6.在時間5訪問到存儲體B1 2421的上面的第四個資料條目。
在考慮存儲體B2 2422和存儲體B3 2423可以得出類似的觀察。
圖25示出了用於ADD映射和並行turbo解碼處理的交織序(π)相位的預先地址生成的一個實施例2500。該圖可以參考圖24。
根據turbo解碼處理(例如,SISO 1解碼操作)交織序(π),位址是順序的訪問,如參考數位2404所示。該映射(在這個情況下是ADD映射)確定從哪個特定記憶體體中提供哪個資料給哪個處理器,然而可以得出以下:
1.在時間0訪問到每一個存儲體的上面的第一個資料條目。
2.在時間1訪問到每一個存儲體的上面的第二個資料條目。
3.在時間2訪問到每一個存儲體的上面的第三個資料條目。
4.在時間3訪問到每一個存儲體的上面的第四個資料條目。
5.在時間4訪問到每一個存儲體的下面的第二個資料條目。
6.在時間5訪問到每一個存儲體的下面的第一個資料條目。
圖26示出了用於ADD映射的預先位址生成的解碼結構實現的一個實施例2600。該圖應該結合圖24和圖25考慮。通過使用索引函數(F),可以很大程度減小複雜度和增加解碼速度。
使用一個縱橫交換2610以執行從每一個存儲體提供合適的資料值到適當的處理器。但該實施例相比於以上所描述的圖23中的實施例的複雜度要小很多。該適當的提供資料值也是所使用的存儲映射(M)和交織(π)的函數。根據每一個存儲體映射(例如,在一個給定的解碼時間,一個特定存儲體內的每一個資料條目是提供 給哪個處理器的)(這4個存儲體的記憶體映射用M(Xs0 ),M(Xs1 ),M(Xs2 )和M(Xs3 )表示),接著對於存儲體的位址以及僅在存儲體內特定位置的資料值,如果(M(Xsm )=bn)通過sm→bn那麼處理器索引{s0,s1,s2,s3}被映射到特定存儲體索引{b0,b1,b2,b3}。換句話說,不需要像圖23中實施例中還需要考慮存儲體位址(也就是存儲體位址和資料值都不需要考慮-僅僅考慮存儲體內特定位置中的資料值)。
參考圖26,可以按以下描述過程操作:
1.在周期t,處理器Ps計算位元位置xs(在自然序階段中的sW+t;在交織序(π)相位中的π(sW+t))。
2.對xs的存儲體位置,Ps計算M(xs) (例如哪個存儲體)。
3.根據M(xs) 集將每個處理器Ps連接到對應的存儲體M(xs) ,以此來配置縱橫交換2610。
4.同時地,每一個存儲體的存儲生成器確定位址A(xs) ,那樣在位元位置xs的值L(xs)可以訪問並通過縱橫交換2610提供給特定處理器。
另外一種描述方式,如果地址映射如下:A I x →π-1 (x )mod(W )。
在並行turbo解碼處理的自然序階段中,位址由每一個存儲體相應的存儲生成器計算。例如,存儲生成器2620使用計算好的索引函數(F),那麼該函數(F)可以提供存儲於存儲體B0內的子塊的資料條目的地址資訊。類似地,存儲生成器2621使用計算好的索引函數(F),那麼該函數(F)可以提供存儲於存儲體B1內的子塊的資料條目的地址資訊。類似地,存儲生成器2622使用計算好的索引函數(F),那麼該函數(F)可以提供存儲於存儲體B2內的子塊的資料條目的地址資訊。類似地,存儲生成器2623使用計算好的索引函數(F),那麼該函數(F)可以提供存儲於存儲體B3內的子塊的資料條目的地址資訊。
在並行turbo解碼處理的交織(π)序相位中,位址是很簡單是順序地獲取,這樣非常簡單和快速。根據並行turbo解碼處理,基於索引函數(F),這樣使用存儲生成器計算位址可以改善很多解碼速度。
根據預先地址生成,開始假設地址映射如下:A I x →π-1 (x )mod(W )。
接著可能會出現是否可能對每一個存儲體計算它自身的位址序列而不是必須由處理器通過橫交換提供必要的地址的問題。如果使用以上假設的地址映射(A I x →π-1 (x )mod(W )),那麼這實際上是可以相對簡單地執行因此可以提高了一個簡單的多的實現。
這裏給出通過計算索引函數(F)的新的的方式,在並行turbo解碼處理的交織序(π)的周期t,該索引函數(F)給出存儲體b內資料值的位元索引x。例如,以下索引函數(F)是為特定位址映射而計算的(AI :x→π-1 (x)mod(W))。
F(b,t)=x,這表示M(x)=b以及對於某個s,x=π(sW+t)。
因為對於特定的地址映射(A I x →π-1 (x )mod(W ))該索引函數F可以建立,因為對於特定的位址映射(A I x →π-1 (x )mod(W )),索引函數F(b,t)有特定的sW+t的形式。
一般來說,一旦知道了x,那麼可以確定地址映射A I 。因此,給出了一種新的的位址生成方法,這裏給出存儲映射到位址而不是根據如下解交織(π-1 )序得出的:A I x →π-1 (x )mod(W )
需要注意的是該使用索引函數的預先位址生成可以應用于在特定應用中所需要的任何特定存儲映射(M)。
對於一個例子,當考慮MOD映射(也就是MMOD )功能如下:MMOD (i)=i modM ,那麼索引函數如下:IMOD (b,t)=(b-t)vW+t,其中vW =1mod(M ),其中有v是因為gcd(W,M)=1。
該證明在以下給出:MMOD (IMOD (b,t ))=((b -t )vW +t )modM
MMOD (IMOD (b,t ))=((b -t )+t )modM
MMOD (IMOD (b,t ))=b
對於另外一個例子,當考慮DIV映射(也就是MDIV )功能如下:,那麼索引函數如下:IDIV (b,t )=bW +t
該證明在以下給出:
MDIV (IDIV (b,t ))=b
對於另外一個例子,當考慮ADD映射(也就是MADD )功能如下:,那麼索引函數如下:,其中g=gcd(W,M)以及v(W/g)1 mod(q)
還需要注意到是有v是因為q=M/g通過如下:q(W/g)0 mod(M/g)(W/g) /q 以及(W/g)W0 modM(W/g) q
該證明在以下給出:令b-t=mg+n其中0n<g。
IADD (b,t )modM =((mv modq )W +t )modM =(mg +t )modM
因為vWg mod(M ),由v (W/g )≡1mod(W/g )。
MADD (IADD (b,t ))=(mg +t +n )modM =b -t +t =b
那樣,可以看出該新的位址函數,AIx →π-1 (x )mod(W ),在並行解碼處理時,可以允許每一個存儲體計算各自的位址序列以執行適當的存儲體訪問從而提供其中特定的資料到特定處理器使用。
該新的方法的某些優點,預先地址生成包括減少了周期時間。因為存儲體本身(或者連接到每一個存儲體的存儲生成器,或者一個集成的存儲生成器)自身可以生成位址而不需要等待處理器提供位址,並接著可以通過縱橫交換傳送到存儲體。
另外,該新的位址函數:AIx →π-1 (x )mod(W )允許在一個硬體中更小的面積上實現,因為這樣一個縱橫交換僅執行資料引導(steering)(也就是位址是由存儲生成器本地產生的)。這可以對比於縱橫交換的操作方式,縱橫交換需要在存儲體和處理器之間執行提供和連接位址和資料。而且,該新的位址函數:AIx →π-1 (x )mod(W )在turbo解碼處理時允許更少的網路擁塞,這是因為地址是由存儲生成器本地產生的而不是通過縱橫交換由處理器設置的。
圖27示出了一個turbo解碼器的實施例2700,它使用2個獨立的SISO解碼器組和用於訪問存儲在多個存儲體內資料的預先位址生成。如其它實施例所示,給出了一個接收信號(例如,典型是來自通信通道的接收信號)到I,Q提取模組2702,該模組可以從所述接收信號2701中提取I,Q(同相和正交)分量。這可以看成是接收機的預處理,並且它可能包括任何適當的頻率轉換(典型地,如 果需要從一個載波頻率下變頻處理)。I,Q接著可以根據調製的特定星座和映射關係而映射處理。接著該映射I,Q被送到度量生成器2704。該度量生成器2704產生適當的度量2705,它是在該調製的適當的星座和映射內測量所述接收I,Q分量到星座點距離而得到的;所述度量可以被該調製內的星座點的映射索引;這些度量可以看成是從實際接收符號位置到調製內的期望星座點位置之間歐式距離的縮放值。
為了繼續turbo解碼處理和功能,所述由度量生成器2704產生的度量2705接著被送到預先位址生成模組2707。開始,預先位址生成模組2707可以分割該接收資料成多個子塊。每一個子塊包括相應的多個資料。每一個子塊的單個資料接著被存儲到多個存儲體2790中的一個存儲體內的存儲位置。該多個存儲體2790包括多個存儲體,如B0 2791所示,....,和Bn 2792所示。基於每一個子塊的這些資料的位置,因為它們存儲於存儲體2790中,位址預先生成模組2707也可以產生適當的索引函數(例如F),當執行turbo解碼處理(例如SISO 0解碼操作)的自然序階段地時候,它可以用來為特定的每一個資料條目的地址訪問。
這個索引函數接著可以被多個存儲生成器(例如,在其他實施例中所描述的)使用,那樣可以立刻產生適當的位址而不需要使用在並行turbo解碼處理中所使用的多個解碼處理器。
該合適的地址接著被提供給第一個軟輸入/軟輸出(SISO)0解碼器陣列2710使用。該第一個SISO0解碼器陣列2710包括多個SISO 0解碼器,如SISO 0 2711,...和SISO 0 2712等所示。在SISO 0解碼器陣列2710中的每一個SISO解碼器可以對存儲於多個特定存儲體2790中的一個特定存儲位置的資料執行SISO解碼。
之前計算得到的度量2705,也就是由度量生成器2704產生的度量也被提供到第二個SISO 1解碼器陣列2730。SISO 1解碼器陣列2730包括多個SISO 1解碼器,如SISO 1 2731,...和SISO 1 2732等所示。在SISO 1解碼器陣列2730中的每一個SISO解碼器可以對存儲於多個特定存儲體2790中的一個特定存儲位置的資料執行SISO解碼。
在網格編碼技術中(例如,turbo碼網格編碼調製(TTCM)),第一個SISO 0解碼器陣列2710和第二個SISO 1解碼器陣列2730中的每一個計算前向度量(alphas)和反向度量(betas),和外資訊值,這些是根據每一個相應存儲位置的每一個資料條目所使用的網格而得到的,這些值在特定的叠代過程中被更新。
對於一個將要編碼的幀的每一個符號的這些alphas和betas以及外資訊值都要計算。這些alphas和betas以及外資訊值的計算都是基於網格的。
從第一個SISO 0解碼器陣列2710開始,在完成計算外資訊值2711之後,它們被傳送到一個交織器(π)2720,在這之後它被傳送到第二個SISO 1解碼器2730以作為“一個先驗概率”(app)資訊2721。需要注意的是第二個SISO 1陣列2730對存儲體2790中資料的訪問是順序地執行的,這是因為使用了符合turbo解碼處理(例如,SISO 1解碼操作)的交織(π)序相位的索引函數(F)。
類似地,在第二個SISO 1解碼器陣列2730中完成外資訊值的計算2731之後,它們被傳送到一個解交織器(π-1 )2740,在這之後,作為“一個先驗概率”(app)資訊2741,它被傳送到預先地址生成模組2707,當執行turbo解碼處理(例如SISO 0解碼處理)的自然序階段時,該模組可以使用合適的索引函數(例如F)訪問每一個資料條目的地址。對於其他實施例中,當執行turbo解碼處理(例如SISO 0解碼處理)的自然序階段時,對每一個資料條目的地址的訪問不是順序的;基於所使用的特定存儲映射以及交織(π),訪問每一個資料條目的地址是不同的順序的。
應注意的在turbo解碼器裝置2700的叠代解碼處理的一次解碼叠代包括執行2個SISO操作;也就是說,叠代解碼處理必須通 過第一個SISO 0解碼器陣列2710和第二個SISO 1解碼器陣列2730。
當達到了顯著標準置信度以及結果收斂之後,或者當執行了預先確定的畫代次數之後,接著由第二個SISO 1解碼器陣列2730的輸出被傳送到一個輸出處理器2750。SISO 0解碼器陣列2710和SISO 1解碼器陣列2730的操作主要指的是計算包含於接收符合內的符號的軟符號判決。在一些實施例中,可以對一個真值(true)位元級執行這些軟符號判決。輸出處理器2750使用這些軟符號以產生資訊位元的最優估計2751(例如,硬位元和/或符號判決),在源turbo編碼信號中,該資訊位元編碼成turbo編碼信號(例如,主要在通信通道的另外一端的一個turbo編碼器位置,也就是信號2701開始啟動的位置)。
還應注意的是在交織器(π)2720執行的每次交織可以利用ARP交織實施例執行,參考數位2791所示。而且,有一些實施例中在解交織器(π-1 )2740中執行的解交織可以利用ARP解交織實施例執行。
圖28示出了一個使用多個SISO解碼器和用來訪問存儲於多個存儲體的預先位址生成的turbo解碼器的一個實施例2800。如其它實施例中所示,給出了一個接收信號(例如典型地,由一個通信通道接收到的)到I,Q提取模組2802,該模組可以從所述接收信號2801中提取I,Q(同相和正交)分量。這可以看成是接收機的預處理,並且它可能包括任何適當的頻率轉換(典型地,如果需要從一個載波頻率下變頻處理)。I,Q接著可以根據調製的特定星座和映射關係而映射處理。接著該映射I,Q被送到度量生成器2804。該度量生成器2804產生適當的度量2805,它是在該調製的適當的星座和映射內測量所述接收I,Q分量到星座點距離而得到的;所述度量可以被該調製內的星座點的映射索引;這些度量可以看成是從實際接收符號位置到調製內的期望星座點位置之間歐式距離的縮 放值。
為了繼續turbo解碼處理和功能,所述由度量生成器2804產生的度量2805接著被送到預先位址生成模組2807。開始,預先位址生成模組2807可以分割該接收資料塊為多個子塊。每一個子塊包括相應的多個資料。每一個子塊的單個資料接著被存儲到多個存儲體2890中的一個存儲體內的一個存儲位置。該多個存儲體2890包括多個存儲體,如B0 2891所示,...,和Bn 2892所示。基於每一個子塊的這些資料的位置,因為它們存儲於存儲體2890中,位址預先生成模組2807也可以產生適當的索引函數(例如F),當執行turbo解碼處理(例如SISO 0解碼操作)的自然序階段地時候,它可以用來訪問特定的每一個資料條目的地址。對於其他實施例中,當執行turbo解碼處理(例如SISO 0解碼處理)的自然序階段時,對每一個資料條目的地址的訪問不是順序的;基於所使用的特定存儲映射以及交織(π),對每一個資料條目的地址的訪問是不同的順序。
這個索引函數接著可以被多個存儲生成器(例如,在其他實施例中所描述的)使用,那樣可以立刻產生適當的位址而不需要使用在並行turbo解碼處理中所使用的多個解碼處理器。
該合適的地址接著被提供給一個軟輸入/軟輸出(SISO)解碼器陣列2810使用,該解碼器陣列2810可以執行SISO 0和SISO 1解碼操作。該SISO解碼器陣列2810包括多個SISO 0解碼器,如SISO 0 2811,....和SISO 0 2812等所示。在SISO 0解碼器陣列2810中的每一個SISO解碼器可以對存儲於多個特定存儲體2890中的一個特定存儲位置的資料執行SISO解碼(SISO 0和SISO 1解碼操作都可以)。
之前計算得到的度量2805,也就是由度量生成器2804產生的度量也被提供到SISO 0解碼器陣列2810以執行初始化SISO 1解碼操作,如參考數位2809所示。
在網格編碼技術中(例如,turbo碼網格編碼調製(TTCM)),SISO 0解碼器陣列2810中的每一個計算前向度量(alphas)和反向度量(betas),和外資訊值(extrinsic value),這些是根據每一個相應存儲位置的每一個資料條目所使用的網格而得到的,這些值在特定的叠代過程中被更新。
對於一個將要編碼的幀,需要計算每一個符號的這些alphas和betas以及外資訊值。這些alphas和betas以及外資訊值的計算都是基於網格的。
從SISO 0解碼器陣列2810執行第一次解碼操作(也就是SISO 0)開始,在完成外資訊值計算2811之後,它們被傳送到一個交織器(π)2820,在這之後它被傳回SISO 0解碼器陣列2810以作為“一個先驗概率”(app)資訊2821。需要注意的是,當執行SISO 1解碼操作時,SISO 0解碼器陣列2810對存儲體2890中的資料的訪問是順序地執行的,這是因為使用了符合turbo解碼處理(例如,SISO 1解碼操作)的交織(π)序相位的索引函數(F)。
類似地,在SISO 0解碼器陣列2810中在完成外資訊值計算2831之後(也就是在SISO 1解碼操作中),它們被傳送到一個解交織器(π-1 )2840,在這之後,作為“一個先驗概率”(app)資訊2841,它被傳送到預先地址生成模組2807,當執行turbo解碼處理(例如SISO 0解碼處理)的自然序階段時,該模組可以使用合適的索引函數(例如F)訪問每一個資料條目的地址。
應注意的是一次解碼叠代,在turbo解碼器2800的叠代解碼處理包括執行2個SISO操作;也就是說,叠代解碼處理必須通過SISO解碼器陣列2810兩次。
當達到了顯著標準置信度以及結果收斂之後,或者當執行了預先確定的叠代次數之後,接著由SISO 0解碼器陣列2810的輸出(在執行完SISO 1解碼操作之後)被傳送到一個輸出處理器2850。SISO 0解碼器陣列2810的操作主要指的是計算包含於接 收符合內的符號的軟符號判決。在一些實施例中,可以對一個真值(true)位元級執行這些軟符號判決。輸出處理器2850使用這些軟符號以產生資訊位元的最優估計2851(例如,硬位元和/或符號判決),在源turbo編碼信號中,該資訊位元編碼成turbo編碼信號(例如,主要在通信通道的另外一端的一個turbo編碼器位置,也就是信號2801開始啟動的位置)。
還應注意的是在交織器(π)2820執行的每次交織可以利用ARP交織實施例執行,參考數位2891所示。而且,有一些實施例中在解交織器(π-1 )2840中執行的解交織可以利用ARP解交織實施例執行。如其它實施例中所示,單個SISO解碼器陣列2810可以執行SISO 0和SISO 1解碼操作。還需要注意到是單個模組可以被用來執行交織器(π)2820和解交織器(π-1 )2840的功能。特別地,當所使用的交織器(π)具有ARP格式時,那麼一個解交織器(π-1 )可以由也具有ARP格式的交織器(π)產生。在這樣的一個實施例中,單個模組,軟體,硬體,和/或它們的組合可以被用來執行符合並行turbo解碼處理的交織(π)和解交織(π-1 )操作。
圖29示出了用於解碼turbo編碼信號的一種方法的一個實施例2900。如模組2910所示,方法2900從通信通道中接收一個turbo編碼信號開始執行。方法2900繼續通過執行預處理以從該turbo編碼信號中提取一個編碼塊,如模組2920所示。方法2900繼續通過分割編碼塊為多個子塊,如模組2930所示。還需要注意的是每一個子塊自身包括多個資料。
方法2900接著繼續通過存儲該多個子塊中的多個資料到多個存儲體,如模組2940所示。方法2900繼續通過執行預先位址生成(例如,索引函數)以訪問存儲於多個存儲體中的多個子塊的多個資料,如模組2950所示。方法2900繼續通過使用符合並行turbo解碼處理的多個解碼處理器turbo解碼該編碼模組(也就是多個子塊中的每一個內的資料),如模組2960所示。方法2900繼續通過 產生對編碼成turbo編碼信號的資訊位元的最優估計,如模組2970所示。
圖30示出了用於解碼turbo編碼信號的一種方法的一個替代實施例3000。開始,在一些實施例中,方法3000可以執行如圖29中的方法2900中的模組2910,2920,2930,2940所描述的類似的操作。
如模組3010所示,方法3000通過執行預先位址生成(例如索引函數F)以訪問存儲於多個存儲體中的多個子塊的多個資料的方式操作。
方法3000接著繼續通過使用符合並行turbo解碼處理的多個解碼處理器對編碼塊(也就是在多個子塊中的每一個子塊的資料)的第一次SISO解碼(例如,SISO 0,自然序階段),因而可以產生第一次外資訊,如模組3020所示。
方法3000接著繼續通過交織(π)第一次的外資訊,因而產生第一次的先驗概率資訊,如模組3030所示。
方法3000接著繼續通過使用符合並行turbo解碼處理的多個解碼處理器對編碼塊(也就是在多個子塊中的每一個子塊內的資料)第二次SISO解碼(例如,SISO 1,交織序(π)相位),因而可以產生第二次外資訊,如模組3040所示。
當在執行一次解碼操作,如參考數位3051所示,方法3000繼續通過解交織(π-1 )第二次外資訊因此產生第二次的先驗概率資訊,如模組3050所示。方法3000接著回到模組3010以執行用於後續解碼叠代的預先地址生成。
然而,當執行完最後一次叠代操作(例如,所有的SISO 0和SISO 1操作都執行完,以及特別地在一個最後SISO 1解碼操作之後)如參考數位3401所示,接著方法3000繼續執行,它通過產生對編碼成turbo編碼信號的資訊位元的最優估計,如模組3060所示。
本發明的以上描述還結合了示意出特定功能性能以及它們的關係的方法。這些功能構建塊和方法步驟的分界和順序,在這裏是為了方便描述而任意給出的。只要特定的功能和關係可以正確地執行,替換的分界和順序也是可以定義的。因為這樣的分界和順序也在申請專利範圍的發明的範圍和精神實質之內。
本發明的以上描述也結合了示意出特定重要功能的性能的功能構建模組。這些功能構建塊的分界和順序在這裏是為了方便描述而任意給出的。只要特定重要功能可以正確地執行,替換的界和序號也是可以定義的。類似地,這裏的流程圖模組也可以是任意定義以示出特定重要功能。為了擴大使用,流程圖模組的分界和順序可以用其他的方式定義,而且仍可以執行特定重要的功能。因此,對於功能構建模組和流程圖以及序號的這樣的替代定義是屬於本發明申請專利範圍的範圍和精神實質之內。
本領域內的普通技術人員也應該認識到這裏的這些功能構建模組,和其他示出的框圖,模組和部件可以用如圖所示的方式實現或者用分離部件,專積體電路,可執行特定軟體的處理器以及類似的或者這些方式的任意組合而實現。
而且,儘管通過以上事實例詳細的描述是為了陳清和理解,本發明不局限於這些實施例。對於本領域內的普通技術人員,在本發明的精神實質和範圍內的多種改變和修改是可以實現的,而這些僅受限於附加權力要求的範圍。
100‧‧‧通信系統
110‧‧‧通信設備
112‧‧‧發射機
114‧‧‧編碼器
116‧‧‧接收機
118‧‧‧解碼器
120‧‧‧通信設備
122‧‧‧接收機
124‧‧‧解碼器
126‧‧‧發射機
128‧‧‧編碼器
130‧‧‧衛星通信通道
132、134‧‧‧碟形衛星天線
140‧‧‧無線通信通道
142、144‧‧‧發射塔
150‧‧‧有線通信通道
152、154‧‧‧本地天線
160‧‧‧光纖通信通道
162‧‧‧電光轉換(E/O)介面
164‧‧‧光電轉換(O/E)介面
199‧‧‧通信通道

Claims (10)

  1. 一種turbo解碼器裝置,可以對turbo編碼信號執行並行解碼的,所述turbo解碼器裝置包括:多個turbo解碼器;和多個記憶體;以及其中:所述多個turbo解碼器可以讀寫所述多個記憶體;以及在第一次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的一個相應的記憶體取出和處理來自於該記憶體的資訊,相應的記憶體是基於多個turbo解碼器和多個記憶體之間的無競爭映射來確定,相應的記憶體中資訊的第一個位置是基於索引函數的,該函數是基於該相應的記憶體的位址映射的;以及當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第一個相應的記憶體中的第一個存儲位置取出和處理資訊;在第二次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的一個相應的記憶體取出和處理相應的記憶體的資訊,對應的記憶體是基於所述多個turbo解碼器和所述多個記憶體之間的無競爭映射來確定的,所述相應的記憶體中資訊的第二位置是基於索引函數的,該函數是基於所述相應的記憶體的位址映射的;以及當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第二個相應的記憶體中的第二個存儲位置取出和處理資訊;以及所述多個turbo解碼器可以對至少一個編碼成turbo編碼信號的位元產生一個最優的估計。
  2. 如申請專利範圍第1項所述的turbo解碼器裝置,進一步包括:一個預先位址模組,它可以基於所述相應記憶體的位址映射而產生索引函數。
  3. 如申請專利範圍第1項所述的turbo解碼器裝置,進一步包括:在叠代解碼處理所述turbo編碼信號時,一個可以在所述多個turbo解碼器和所述多個記憶體之間執行無競爭存儲映射的處理模組。
  4. 如申請專利範圍第1項所述的turbo解碼器裝置,其中:在產生所述turbo編碼信號的turbo編碼過程時,所述turbo編碼信號經過了近似正則置換(ARP)交織。
  5. 如申請專利範圍第1項所述的turbo解碼器裝置,其中:當執行turbo解碼時,所述多個turbo解碼器中的一個可以對外資訊執行近似正則置換(ARP)交織從而產生“一個先驗概率”(app)資訊。
  6. 如申請專利範圍第1項所述的turbo解碼器裝置,其中所述多個turbo解碼器中的一個turbo解碼器包括:一個預先位址模組,它可以:接收多個與所述turbo編碼信號相關的度量;存儲所述多個度量到一個相應的記憶體中;以及基於在所述相應的記憶體中的多個度量的位址映射而產生所述索引函數;第一個軟輸入/軟輸出(SISO)解碼器,可以對所述多個度量執行SISO解碼從而計算第一個外資訊;一個交織器模組,它可以對所述第一個外資訊執行交織從而產生第一個“先驗概率”(app)資訊;和第二個SISO解碼器,可以對所述第一個app資訊執行SISO解碼從而產生第二個外資訊;一個解交織器模組,它可以對所述第二個外資訊執行解交 織從而產生第二個app資訊;和一個輸出處理器,它可以處理由第二個SISO解碼器產生的最新外資訊從而產生所述編碼成turbo編碼信號的資訊位元的一個最優的估計。
  7. 一種turbo解碼器裝置,它可以對一個turbo編碼信號執行並行解碼,所述turbo解碼器裝置包括:多個turbo解碼器;多個記憶體;和一個預先位址模組,它可以基於所述多個記憶體中的一個相應記憶體的位址映射產生一個索引函數;以及其中:所述多個turbo解碼器可以讀寫所述多個記憶體;在第一次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器中的每一個可以從所述多個記憶體中的一個相應的記憶體中取出和處理資訊,對應的記憶體是基於所述多個turbo解碼器和所述多個記憶體之間的無競爭映射來確定的,所述相應的記憶體中資訊的第二位置是基於索引函數的,該函數是基於所述相應的記憶體的位址映射的;和當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第一個相應的記憶體中的第一個存儲位置取出和處理資訊;在第二次解碼叠代中:當執行自然序階段解碼處理時,所述多個turbo解碼器的每一個可以取出和處理來自於所述多個記憶體中的一個相應的記憶體的資訊,對應的記憶體是基於所述多個turbo解碼器和所述多個記憶體之間的無競爭映射來確定的,所述相應的記憶體中資訊的第二位置是基於索引函數的,該函數是基於所述相應的記憶體的位址映射的;和 當執行交織序階段解碼處理時,所述多個turbo解碼器的每一個可以從所述多個記憶體中的第二個相應記憶體中的第二個存儲位置取出和處理資訊;和所述多個turbo解碼器可以對至少一個編碼成turbo編碼信號的位元產生一個最優的估計。
  8. 如申請專利範圍第7項所述的turbo解碼器裝置,其中:在產生所述turbo編碼信號的turbo編碼過程時,所述turbo編碼信號經過了近似正則置換(ARP)交織;當執行turbo解碼時,所述多個turbo解碼器中的一個可以對外資訊執行近似正則置換(ARP)交織從而產生“一個先驗概率”(app)資訊。
  9. 一種用於解碼turbo編碼信號的方法,所述方法包括:從一個通信通道中接收一個turbo編碼信號;執行預處理以從所述turbo編碼信號中提取一個編碼塊;分割所述編碼塊為多個子塊以使得所述多個子塊的每一個包括相應的多個資料;把所述多個子塊的第一個子塊的第一部分的多個資料存儲到多個存儲體的第一存儲體中;把所述多個子塊的第二個子塊的第二部分的多個資料存儲到多個存儲體的第二存儲體中;當執行自然序階段解碼處理所述turbo編碼信號時,執行預先位址生成,它包括確定用於訪問所述第一存儲體中的第一組資料的元素和訪問所述第二存儲體中的第二組資料的元素的一個索引函數;從所述第一存儲體中得到第一組多個資料的第一個定義索引的元素並對其執行turbo自然序解碼處理;從所述第二存儲體中得到第二組多個資料的第二個定義索引的元素並對其執行turbo自然序解碼處理; 從所述第一存儲體中得到第一組多個資料的第一個元素並對其執行交織序階段解碼處理;從所述第二存儲體中得到第二組多個資料的第二個元素並對其執行交織序階段解碼處理;根據並行turbo解碼處理,使用多個解碼處理器turbo解碼所述編碼塊;對編碼成turbo編碼信號的資訊位元產生最優的估計。
  10. 如申請專利範圍第9項之方法,進一步包括:基於所述相應記憶體的位址映射而產生所述索引函數。
TW096145352A 2006-11-29 2007-11-29 Turbo解碼器裝置及解碼turbo編碼信號的方法 TWI422166B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86183206P 2006-11-29 2006-11-29
US87236706P 2006-12-01 2006-12-01
US87271606P 2006-12-04 2006-12-04
US87930107P 2007-01-08 2007-01-08
US11/810,989 US7831894B2 (en) 2006-10-10 2007-06-07 Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves

Publications (2)

Publication Number Publication Date
TW200841608A TW200841608A (en) 2008-10-16
TWI422166B true TWI422166B (zh) 2014-01-01

Family

ID=39370993

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096145352A TWI422166B (zh) 2006-11-29 2007-11-29 Turbo解碼器裝置及解碼turbo編碼信號的方法

Country Status (5)

Country Link
EP (1) EP1942578A1 (zh)
KR (1) KR100926907B1 (zh)
CN (1) CN101192837B (zh)
HK (1) HK1121868A1 (zh)
TW (1) TWI422166B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231632B (zh) * 2011-05-26 2013-04-10 大唐移动通信设备有限公司 Turbo编码/ Turbo译码方法及装置
US8788743B2 (en) * 2012-04-11 2014-07-22 Micron Technology, Inc. Mapping between program states and data patterns
US8934581B2 (en) * 2012-04-24 2015-01-13 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for soft symbol processing in a communication receiver
CN104038234B (zh) 2013-03-07 2017-09-29 华为技术有限公司 极性码的译码方法和译码器
BR112016014679B1 (pt) 2013-12-24 2021-11-03 Huawei Technologies Co., Ltd Método de decodificação de código polar e aparelho de decodificação
CN103840842A (zh) * 2014-03-05 2014-06-04 华为技术有限公司 一种译码器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775800B2 (en) * 2000-01-03 2004-08-10 Icoding Technology, Inc. System and method for high speed processing of turbo codes
US6789218B1 (en) * 2000-01-03 2004-09-07 Icoding Technology, Inc. High spread highly randomized generatable interleavers
US20060101319A1 (en) * 2004-11-08 2006-05-11 Samsung Electronics Co., Ltd. Input buffer device for de-rate matching in high speed turbo decoding block and method thereof
US7113554B2 (en) * 2001-02-23 2006-09-26 Koninklijke Philips Electronics N.V. Turbo decoder system comprising parallel decoders

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5948101A (en) * 2000-05-03 2001-11-12 Univ Southern California Reduced-latency soft-in/soft-out module
US6392572B1 (en) * 2001-05-11 2002-05-21 Qualcomm Incorporated Buffer architecture for a turbo decoder
JP2006217072A (ja) * 2005-02-01 2006-08-17 Matsushita Electric Ind Co Ltd ターボ復号装置及びターボ復号方法
CN100508405C (zh) * 2005-11-11 2009-07-01 清华大学 提高Turbo码译码速度的并行译码方法及译码装置
CN100571097C (zh) * 2005-11-25 2009-12-16 上海宣普实业有限公司 一种用于Turbo码译码器中减少存储资源的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775800B2 (en) * 2000-01-03 2004-08-10 Icoding Technology, Inc. System and method for high speed processing of turbo codes
US6789218B1 (en) * 2000-01-03 2004-09-07 Icoding Technology, Inc. High spread highly randomized generatable interleavers
US7113554B2 (en) * 2001-02-23 2006-09-26 Koninklijke Philips Electronics N.V. Turbo decoder system comprising parallel decoders
US20060101319A1 (en) * 2004-11-08 2006-05-11 Samsung Electronics Co., Ltd. Input buffer device for de-rate matching in high speed turbo decoding block and method thereof

Also Published As

Publication number Publication date
TW200841608A (en) 2008-10-16
KR100926907B1 (ko) 2009-11-17
CN101192837A (zh) 2008-06-04
KR20080048971A (ko) 2008-06-03
EP1942578A1 (en) 2008-07-09
CN101192837B (zh) 2011-04-06
HK1121868A1 (en) 2009-04-30

Similar Documents

Publication Publication Date Title
US8065588B2 (en) Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave
JP5499368B2 (ja) ベクトル化されたターボ復号器のためのデータ・インターリーブ回路および方法
US8572469B2 (en) Turbo decoder employing ARP (almost regular permutation) interleave and arbitrary number of decoding processors
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
TWI422166B (zh) Turbo解碼器裝置及解碼turbo編碼信號的方法
US8473829B2 (en) Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves
CN104092470B (zh) 一种Turbo码译码装置及方法
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
WO2009151481A2 (en) Methods and apparatus for progarammable decoding of a plurality of code types
US7975203B2 (en) Quadratic polynomial permutation (QPP) interleaver providing hardware savings and flexible granularity adaptable to any possible turbo code block size
US8065587B2 (en) Reduced complexity ARP (almost regular permutation) interleaves providing flexible granularity and parallelism adaptable to any possible turbo code block size
KR20060121312A (ko) 컨볼루션 터보 부호 인터리버
US9130728B2 (en) Reduced contention storage for channel coding
US9015551B2 (en) Decoding apparatus with de-interleaving efforts distributed to different decoding phases and related decoding method thereof
Chen et al. A 691 Mbps 1.392 mm 2 configurable radix-16 turbo decoder ASIC for 3GPP-LTE and WiMAX systems in 65nm CMOS
US8200733B1 (en) Device having interleaving capabilities and a method for applying an interleaving function
US20080133997A1 (en) Turbo decoder employing ARP (almost regular permutation) interleave and inverse thereof as de-interleave
EP1267511A1 (en) A method and apparatus for interleaving, deinterleaving
Martina et al. VLSI implementation of WiMax convolutional turbo code encoder and decoder
JP2009077371A (ja) インタリーブ方法、送信機、無線機、および無線通信システム。
Guo et al. Novel parallel interleaver based on Chinese Remainder Theorem

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees