TWI487293B - 用於複數個碼類型可程式化解碼的方法及裝置 - Google Patents

用於複數個碼類型可程式化解碼的方法及裝置 Download PDF

Info

Publication number
TWI487293B
TWI487293B TW098101082A TW98101082A TWI487293B TW I487293 B TWI487293 B TW I487293B TW 098101082 A TW098101082 A TW 098101082A TW 98101082 A TW98101082 A TW 98101082A TW I487293 B TWI487293 B TW I487293B
Authority
TW
Taiwan
Prior art keywords
data
code
decoder
parallel decoders
interleaver
Prior art date
Application number
TW098101082A
Other languages
English (en)
Other versions
TW201014203A (en
Inventor
Alexander Andreev
Sergey Gribok
Oleg Izyumin
Ranko Scepanovic
Igor Vikhliantsev
Vojislav Vukovic
Original Assignee
Lsi 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
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201014203A publication Critical patent/TW201014203A/zh
Application granted granted Critical
Publication of TWI487293B publication Critical patent/TWI487293B/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/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
    • H03M13/296Particular turbo code structure
    • 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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/2725Turbo interleaver for 3rd generation partnership project 2 [3GPP2] mobile telecommunication systems, e.g. as defined in the 3GPP2 technical specifications C.S0002
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6513Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • 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/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

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

Description

用於複數個碼類型可程式化解碼的方法及裝置
本發明一般係關於數位通信的錯誤校正編碼技術,且更特定言之,本發明係關於用於複數個碼(諸如捲積碼與渦輪(turbo)碼)的並行解碼與交錯的技術。
圖1是一典型數位通信100的方塊圖。如圖1中所示,一數位源110產生一序列二進位訊息。其後,一示例性頻道編碼器120使用一前向錯誤校正編碼方案以增加該等源訊息的冗餘,並且將該等源訊息變換成經編碼之訊息(通常稱為碼字)。一般而言,該錯誤校正編碼提供增進的抗頻道雜訊能力。一調變器130將該等經編碼訊息變換成適合經由一頻道140傳輸的信號。這些信號進入該頻道140並且通常被該頻道上的雜訊與干擾毀壞。
在接收器端,一解調變器150從該頻道140接收該等雜訊信號並且將該等接收信號轉換成符號區塊。一頻道解碼器160利用由該頻道編碼器120引入的冗餘以試圖校正由該頻道140增加的任何錯誤並且恢復該等原始訊息。一些不同解碼技術已經被提出或建議以解碼使用錯誤校正碼編碼的信號。
無線通信系統的錯誤校正編碼技術經常在信號被調變之前使用資料的捲積或渦輪編碼使得可校正由頻道上的雜訊與干擾引入的錯誤。一般而言,一捲積碼是一錯誤校正碼,其中每個m位元串被變換成一n位元的符號,其中m/n是碼率(n大於或等於m)並且該變換是先前的該k個資訊符號的一函數,其中k是該碼的約束長度。渦輪碼是另一類別錯誤校正碼,據稱其等接近利用香農(Shannon)定理的理論限制,其相對於相同效能所需的捲積碼具有降低的解碼複雜性。
逐漸地,通信器件必須支援多種通信標準。例如,WiMAX(微波存取全球互通)(一種IEEE 802.16無線寬頻標準)、LTE(長期演進)(一種第三代合作夥伴計畫(3GPP)4G技術)、UMB(超移動寬頻)(一種CDMA發展組與第三代合作夥伴計畫2)與WCDMA(寬頻分碼多重存取)通信標準之各者需要以一或多個速率支援於至少一捲積編碼技術與至少一捲積渦輪編碼技術(或其組合)。
因此,需要存在可重組態或可程式化解碼器,其等可支援多種通信標準。進一步需要存在一種可程式化編碼器/解碼器(編解碼器),其支援適於一些不同的現有與未來通信標準的編碼或解碼(或兩者)以及符號處理功能。
一般而言,本發明提供用於複數個碼類型可程式化解碼的方法及裝置。根據本發明的一態樣,提供一種解碼使用複數個碼類型中之一者編碼的資料的方法,其中該等碼類型之各者對應於一通信標準。該解碼方法包括下列步驟:識別與該資料相關的碼類型;分配該資料至複數個可程式化並行解碼器,其中該等可程式化並行解碼器可被重組態成解碼使用該複數個碼類型之各者編碼的資料;以及提供該資料與該相關碼類型至該等分配的可程式化並行解碼器。程式碼(例如,來自一本端記憶體)基於該識別的碼類型可被載入到該等可程式化並行解碼器之一或多者中。
根據本發明的另一態樣,提供一種用於產生由M個並行解碼器使用的一或多個交錯器表的方法,該等並行解碼器解碼至少一碼類型的資料。該交錯器表產生方法包括以下步驟:基於該至少一碼類型的一通信標準產生一第一交錯器表;以及將該第一交錯器表除以M以建立具有M個叢集的一第二交錯器表,其中在該第二交錯器表中之各項指示該M個並行解碼器中之一者作為一目標解碼器與一目標位址以用於交錯之資料。該資料然後可使用一通信網路被交錯在該M個並行解碼器之間。
根據本發明的又一態樣,提供一種將資料交錯在M個並行解碼器之間的方法。該交錯方法包括以下步驟:讀取待解碼的資料;存取一交錯器表,其中在該交錯器表中之各項識別該M個並行解碼器中之一者作為一目標解碼器與一通信網路的一目標位址以用於交錯之資料;以及將該資料寫入到該通信網路的該目標位址。該通信網路可包括例如一叉線式交換器及/或一或多個先入先出緩衝器。
參考以下詳細描述與圖式將更完整地理解實施本發明以及獲得本發明的進一步特徵與優點。
本發明的態樣提供可程式化解碼器,其等支援複數個通信標準。根據本發明的一態樣,圖1的習知頻道解碼器160被修改成提供適於複數種編碼技術的一解碼器功能。在一示例性實施例中,圖1的習知頻道解碼器160被修改成提供適於WiMAX、LTE與UMB錯誤校正協定的一解碼器功能。根據本發明的另一態樣,圖1的習知頻道解碼器160實施一些符號處理功能,如穿刺(puncturing)與解穿刺(de-puncturing)、循環冗餘檢查(CRC)產生與檢查、交錯與解交錯以及多工與解多工,其等係所支援的通信標準所需要的。
對於使用捲積與渦輪碼的編碼技術的一般討論,舉例而言,見如在以下中描述的IEEE 802.16無線寬頻標準:http://standards.ieee.org/getieee802/download/802.16-2004.pdf,或http://standards.ieee.org/getieee802/download/802.16e-2005.pdf(WiMAX);或如在以下中描述的第三代合作夥伴計畫技術規範:http://www.3gpp.org/ftp/Specs/archive/36_series/36.212/36212-810.zip(LTE),或http://www.3gpp2.org/Public_html/specs/C.S0084-001-0_v2.0_070904.pdf(UMB),各者都以引用的方式併入本文中。
根據本發明的又一態樣,複數個可程式化「執行緒處理器」被用於支援一些捲積與類渦輪碼。此外,一通信網路取代一或多個專用交錯器/解交錯器模組而用於交錯以減少處理時間。
解碼基礎
一解碼器,如圖1的解碼器160,在逐訊框基礎上可處理碼字。每個訊框由需要同一碼作業類型的幾個碼字組成。碼字係以其等被接收之順序而增加到一訊框並且該等結果以同一順序被返回。
解碼捲積碼
存在一些演算法用於解碼捲積碼。對於相對小的值k(其中k是碼的約束長度),經常使用維特比(Viterbi)演算法,因為它提供了最大或然效能並且允許並行執行。一般而言,對於較長碼字,一碼字可被分成幾部分並且並行解碼,這對於一般技術者是眾所周知的。常使用並行解碼以提高解碼率。通常,採用重疊窗,其中該碼字被分成幾部分並且由許多解碼單元並行解碼。因此,該解碼器將該等解碼任務分佈在許多分組解碼單元之間。該解碼器接收幾個碼區塊並且將該等碼區塊指派到該等解碼單元中。該等解碼單元並行實施該等解碼任務以及然後該解碼器擷取解碼結果。
對於在具有並行解碼單元的一渦輪解碼系統中將碼區塊指派至分組解碼單元的技術的詳細討論,見題為「在具有並行解碼單元的渦輪解碼器系統中將碼區塊指派至分組解碼器單元的系統及方法(System and Method for Assigning Code Blocks to Constituent Decoder Units in a Turbo Decoder System Having Parallel Decoding Units)」的美國專利申請案第   號,(代理人檔案號碼08-0240),其以引用的方式併入本文中。
對於較大值k,通常採用幾個已知的序列解碼演算法中之一者解碼該等碼,如眾所周知的費諾(Fano)演算法。見,例如R.M. Fano的「概率解碼的試探性討論(A heuristic Discussion of Probabilistic Decoding)」(1963),其以引用的方式併入本文中。與維特比解碼不同,序列解碼技術不採用最大或然技術,但是複雜性隨著約束長度只是略微增加,允許使用強的長約束長度碼。
維特比與序列解碼演算法產生硬決定,指示形成最有可能碼字的位元。一近似可信測度經由使用眾所周知的軟輸出維特比演算法(SOVA)可選擇性地增加到每個位元。每個位元的最大後驗(MAP)軟決定可經由使用BCJR演算法(Bahl-Cocke-Jelinek-Raviv演算法)獲得。見,例如L. Bahl等人的「最小化符號錯誤率的線性碼的最優解碼(Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate)」(1974年3月),其以引用的方式併入本文中。
圖2是一由一用於解碼捲積碼的習知MAP解碼器採用的示例性框架200的示意方塊圖。該示例性框架200可例如由一以一已知方式計算一前向狀態度量210與一後向狀態度量220的MAP解碼器用於計算一輸出L值。圖2說明對於許多輸入位元,如位元u0 到u3 ,許多編碼器狀態s0 到s3 的此等路徑度量的計算。
如圖2中所示,該等分支度量γ 1 (s ' ,s )可被計算如下:
該前向度量α 1 (s )可被計算如下:
該後向度量β l (s' )可被計算如下:
β l (s' )=max*[γ l (s' ,s i )+β l +1 (s i ),γ l (s' ,s j )+β l +1 (s j )]
該輸出L值L(u1 )可被計算如下:
解碼渦輪碼
圖3是一用於解碼渦輪碼的示例性習知反覆式演算法300的方塊圖。如先前所示,渦輪碼被用在許多資料通信標準中,如3G、4G與IEEE 802.16。在圖3中所示的該示例性實施例中,接收到的碼區塊被分成3部分:(y0 ,y1 ,y2 )。向量(y0 ,y1 )被發送至一第一MAP解碼器310。該MAP解碼器310產生一向量L1 out ,其中L1 out 是第i解碼器的輸出L值(一後驗L值)。
該向量L1 out 由一加法器320加到由一解交錯器340(以下討論)產生的一向量L1 in ,以產生一向量L1 ex 。Li ex 是第i解碼器的外來L值(外來後驗L值)。L1 in 是第i解碼器的輸入L值。該向量L1 ex 被應用於一交錯器330。一般而言,該交錯器330實施該等向量分量的某種混合。該交錯器330的輸出是一向量L2 in 。該向量L2 in 與向量(y0 ,y2 )被應用於一第二MAP解碼器380。該MAP解碼器380產生一向量L2 out 。該向量L2 out 由一加法器350加到由交錯器330產生的向量L2 in 以產生一向量L2 ex 。該向量L2 ex 被應用於該解交錯器340。該解交錯器340實施逆向於由交錯器330實施的作業的一變換。該解交錯器340的輸出是該向量L1 in ,即如上所討論。該向量L1 in 與向量(y0 ,y1 )被應用於第一MAP解碼器310並且以反覆方式繼續。由該MAP解碼器360產生的向量L2 out 也被應用於一第二解交錯器370,其產生位元決定。這反覆過程在固定反覆次數之後或如果滿足某個特定停止準則時停止。
對於合適的解碼演算法300的更詳細討論,請參閱,例如Shu Lin、Daniel Costello的「錯誤控制編碼(Error Control Coding)」(2004年第二版本),其以引用的方式併入本文中。一般而言,該等解碼演算法300通常支援不同大小的碼區塊。例如,根據3GPP標準,源訊息大小可從40個位元到5114個位元變化。該等解碼演算法300應高效率地處置一由不同大小的碼區塊組成的資料流。此外,解碼一碼區塊所需的總時間係與該碼區塊大小成比例。在解碼器160內部的隨機存取記憶體的總大小是與該解碼器160可支援的最大碼區塊的大小成比例。
可程式化解碼器
圖4是合併本發明的特徵的一解碼器400的示意方塊圖。如圖4中所示,該解碼器400包括一軟解碼引擎(SDE)410、一輸入先入先出(FIFO)緩衝器420、一載入引擎430、一交錯器計算單元440、一執行緒處理器450、一上載引擎460與一輸出FIFO緩衝器470。此外,如圖4中所示,該軟解碼引擎410包括用於以下列討論方式交錯的通一信網路480以及複數個計算叢集500-1到500-N(在此處統稱為計算叢集500),下文結合圖5進一步討論。
該軟解碼引擎410按照本發明的一態樣解碼複數個碼,如渦輪碼、捲積碼與LDPC碼。此外,該軟解碼引擎410可被組態成在同一時間同時解碼幾個碼字。
該輸入FIFO緩衝器420儲存正從一輸入埠405進入到該解碼器400的資料。該載入引擎430從該FIFO 420接收幾個碼字的輸入資料。此外,該載入引擎430係藉由連接432從該交錯器計算單元440讀取該資料的交錯位址,且藉由連接435從該執行緒處理器450接收控制信號並且將該資料發送至該通信網路480。該執行緒處理器450可例如使用一Coware處理器(見http://www.coware.com/)實施。
該交錯器計算單元440產生一或多個含有目標位址的交錯器表600,以下結合圖6A到6D進一步討論,該等目標位址由計算叢集500用於寫入資料以用於後半段反覆。
如先前所示,該執行緒處理器450基於程式記憶體內容產生一用於在該等計算叢集500中的解碼演算法的命令流。該執行緒處理器450接收來自輸入埠445之控制資訊,其中具有在埠405上接收到的資料。該控制資訊包括標頭與組態資料,該組態資料定義用於編碼該資料的通信標準。例如,該控制資訊可指定碼的類型(碼類型識別符)、一訊框中的碼字數量以及碼字長度。如以下討論,該執行緒處理器450經由該通信網路480提供合適資訊至該等計算叢集500。如果該執行緒處理器450確定一新的碼類型需要被解碼,則該執行緒處理器450將將該等參數及一碼類型識別符發送至該等計算叢集500。如以下結合圖5之進一步討論,如果需要,該等計算叢集500將基於該碼類型識別符載入合適的程式碼以解碼該碼字。
該輸入FIFO緩衝器420儲存正從一輸入埠405進入該解碼器400的該資料。該上載引擎460從該通信網路480接收經解碼資料並且將其應用於該輸出FIFO緩衝器470。
該通信網路480在組件之間如該執行緒處理器450與該等計算叢集500之間提供任意可組態連接。在一示例性實施例中,該通信網路480可作為一叉線式交換器或FIFO實施。該通信網路480的作業在以下題為「並行交錯」的部分中進一步討論。
圖5是合併本發明的特徵的一示例性計算叢集500的示意方塊圖。如先前所示,複數個計算叢集500並行解碼資料。如圖5中所示,該示例性計算叢集500包括一執行緒處理器510、一資料記憶體520、一算術單元530與一記憶體控制器540。
如先前所示,圖4的執行緒處理器450經由通信網路480提供合適的控制資訊至計算叢集500。如果該執行緒處理器450判定一新的碼類型需要被解碼,則該執行緒處理器450將將參數及一碼類型識別符發送至該等計算叢集500。基於該碼類型識別符,如果需要,在該計算叢集500中的該執行緒處理器510將從該資料記憶體520(經由該記憶體控制器540)載入合適程式碼以基於該碼類型識別符解碼該碼字。由該執行緒處理器510實施的解碼作業在以下題為「並行解碼」的部分中進一步討論。一般而言,讀取是本端的並且按照交錯器表700實施寫入。該資料記憶體520儲存用於解碼與複數個不同通信標準相關的碼字的複數個程式。
該執行緒處理器510解譯一程式並且按照該程式對該算術單元530提供指令。一般而言,基於經識別的通信標準,如LTE,每個叢集500中的該執行緒處理器510從該資料記憶體520載入合適的程式碼以及交錯器表700與該經識別標準的其他參數(基於例如指示的碼字大小)。此後,該計算叢集500可解碼接收到的已由同一標準編碼的所有碼字。
並行解碼
如以上結合圖3所討論,該解碼過程通常是一反覆過程。在本發明的示例性實施例中,有四個並行作業的計算叢集500,且該等計算叢集500在每次反覆期間實施兩組作業。在前半段反覆期間(圖3中的解碼器1),該等計算叢集500讀取其等自己的本端資料埠(例如,從該資料記憶體520接收到的向量)與L1 in (見圖3)並且從該(該等)交錯器表700(表3)獲得該資料叢集的目標位址,如以下在以下部分中進一步討論。此後,該等計算叢集500按照本發明經由使用指示之目標位址將資料寫入到該通信網路480而交錯該資料。以這種方式,該資料由該等計算叢集500解碼並且被發送至該通信網路480,但不是由該等計算叢集500本端儲存。該資料被發送至目標位址並且直到後半段反覆才被需要。
在後半段反覆期間(圖3中的解碼器2),該等計算叢集500再次讀取其等自己的本端資料埠(例如,從該資料記憶體520接收到的向量)與L2 in (見圖3)並且從該(該等)交錯器表700(表4)獲得該資料叢集的目標位址,如以下在以下部分中進一步討論。此後,該等計算叢集500按照本發明經由使用指示之目標位址將資料寫入到該通信網路480而解交錯該資料。
使用通信網路並行交錯
圖6A到6D說明四個樣本交錯表600。圖6A與6B說明具有碼字大小K=248的LTE渦輪碼的習知交錯器與解交錯器表。圖6A與6B中的表是基於相應標準文件產生。該等示例性表使用在http://www.3gpp.org/ftp/specs/archive/36_series/36.212/36212-810.zip的5.1.3.2.3部分中指定的演算法產生。參數 f 1 f 2 取決於區塊大小K並且概述於LTE標準文件的表5.1.3-3中。
在該實例中,碼字大小Ki是248,因此從該標準文件的表5.1.3-3指定參數f1=33以及f2=62。這些值被用於填充圖6A的交錯器表與圖6B的解交錯器表。因此,該交錯器表600的輸入指數i與輸出指數j滿足以下方程式:
i=(33*j+62*j2 )mod 248
圖6A的該示例性交錯器表(表1)有兩行。第一行是一輸入資料指數。第二行是一輸出(經交錯)資料指數。例如,圖6A中的該表的前兩列是:
0 0
1 171
這種表示法指示在交錯(即,按照本發明寫入到該通信網路480)之後,第0資料字保持在指數0,而第一(1-st)資料字變為指數171。
同樣地,圖6B的該示例性解交錯器表(表2),通常稱為「反向交錯器表」,是圖6A的該交錯器表的反向複製。例如,該交錯器表(圖6A)的第一行(第二列)是「1 171」。因此,該第二表的第171行是「171 1」。這種表示法指示在該解交錯(即,按照本發明寫入到該通信網路480)之後,該第171資料字被寫成指數1。如先前所示,本發明的實施例利用複數個並行可程式化執行緒處理器510以支援許多捲積與類渦輪碼。在該示例性實施例中,有M=4個的並行計算叢集500。此外,一通信網路480被用於交錯由該等並行執行緒處理器510實施的解碼過程。
圖6C與6D說明具有碼字大小K=248的LTE渦輪碼的交錯器與解交錯器表以及一並行解碼器實施,其中M是等於4。一般而言,圖6C與6D中的交錯器與解交錯器表係經由將圖6A與6B的原始表除以M(等於4)以建立四個叢集。以這種方式,圖6C與6D的該交錯器與解交錯器表允許該交錯過程被分解用於一並行解碼實施。
在圖6C中,格式是{<目標叢集指數><目標記憶體位址>}。因此,在圖6C的表示法中,例如,第一項620對應於圖6A的第一項並且又指示第0資料字保持在叢集0的指數0。同樣地,第二項625指示第一字(對應於第1列)變成叢集2的指數43(對應於圖6A的第二項「1 171」作一模64(mod 64)運算)。
同樣地,圖6D的示例性解交錯器表(表4),通常稱為「4個計算叢集的反向交錯器表」,是圖6C的交錯器表的反向複製。一般而言,圖6D的該解交錯器表以一已知方式將資料返回到原始位置。
功能解碼模式
一解碼器400(圖4)在解碼器進入一功能模式之前通常必須被初始化。在該初始化過程期間,該解碼器400被以一已知方式程式化用於其常規作業。一般而言,在該初始化過程期間,該執行緒處理器510(圖5)被載入以適於通信標準的合適程式以及將在功能模式期間解碼的資料。隨著啟動資料開始並且繼續到達該輸入FIFO 420,該解碼器初始化部分讀取該資料並且載入選定的執行緒處理器510。當啟動過程完成時,該解碼器將其狀態暫存器設定成一預定值並且然後準備開始處理接收到的訊框。
在該功能模式,一外部模組通常將一資料訊框發送至該解碼器並且監視狀態暫存器以結束該處理。當該等結果準備好時,其等在外部被取出且一新的訊框可被發送至該解碼器。
如先前所示,一訊框是由具有同一解碼作業類型的幾個碼字組成。為了指示一新的訊框已準備就緒,一個時鐘週期可設定一或多個旗標。此後,該解碼器400期望接收一組標頭,接著是在該訊框中的每個碼字的資料。
在一示例性實施例中,發送至該解碼器400的第一標頭是一訊框結構標頭(例如,指示作業類型(格式)以及該訊框中的碼字數量)。此後,該解碼器接收一組標頭,其中一個標頭用於該訊框中的每一碼字。
一示例性訊框碼字標頭指示:
在該等碼字標頭之後,含有在該解碼引擎中的所有執行緒處理器510的執行緒處理器參數的標頭可被發送。第一,一結構標頭必要時可被多個週期地發送以指定每個執行緒處理器510將處理的碼字的數量:一示例性執行緒處理器結構標頭指示:
然後,每個執行緒處理器碼字被發送一標頭
在所有標頭被接收之後,該解碼器400按照該等標頭中的資訊接收碼字資料。假設在該示例性實施例中軟值取該資料的8個位元,因此有可能在一個時鐘週期中接收最多16個軟值。在該完整訊框被解碼之後,該解碼器將狀態暫存器的值設定為一預定值,如「完成(DONE)」,且該資料可從該輸出FIFO 470取出。
結論
雖然本發明的示例性實施例已就數位邏輯區塊而描述,但是熟習此項技術者將可了解,在數位域中可將各種功能實施為以一軟體程式、以藉由電路元件或狀態引擎之硬體或軟體與硬體兩者的組合而處理步驟。此軟體可被使用在例如一數位信號處理器、微控制器或通用電腦中。此硬體與軟體可被體現在積體電路中實施的電路中。
因此,本發明的該等功能可以實施這些方法的方法及裝置的形式體現。本發明的一或多個態樣可以程式碼的形式體現,例如儲存在一儲存媒體中、載入到一機器中及/或由一機器執行,或經由某種傳輸媒體傳輸,其中,當該程式碼被載入到一機器如一電腦中並且由該機器執行時,該機器變成實施本發明的一裝置。當實施在一通用處理器上時,該程式碼段結合該處理器以提供一器件,該器件類似於特定邏輯電路作業。本發明還可被實施在一積體電路、一數位信號處理器、一微處理器與一微控制器的一或多個中。
複數個相同晶粒通常以重複圖案被形成在晶圓的表面上。每個晶粒包含此處描述的一器件,並可包含其他結構或電路。該等獨立晶粒被從該晶圓切割或切方,然後被封裝成一積體電路。熟習此項技術者會知道如何將晶圓切方並封裝晶粒以產生積體電路。這樣製造的積體電路被視為本發明的一部分。
應明白此處所示與描述的該等實施例及其變化僅僅是說明本發明的原理,以及熟習此項技術者在不脫離本發明的範圍與精神下可實施各種修飾。
100...數位通信
110...數位源
120...頻道編碼器
130...調變器
140...頻道
150...解調變器
160...頻道解碼器
170...數位接收端
210...前向狀態度量
220...後向狀態度量
300...習知反覆式演算法
310...第一MAP解碼器
320...加法器
330...交錯器
340...解交錯器
350...加法器
360...第二MAP解碼器
370...第二解交錯器
380...交錯器
400...解碼器
405...輸入埠
410...軟解碼引擎
420...輸入先入先出緩衝器
430...載入引擎
432...連接
435...連接
440...交錯器計算單元
445...輸入埠
450...執行緒處理器
460...上載引擎
470...輸出先入先出緩衝器
480...通信網路
500...計算叢集
500-1到500-N...計算叢集
510...執行緒處理器
520...資料記憶體
530...算術單元
540...記憶體控制器
600...交錯表
圖1是一典型數位通信系統的方塊圖;
圖2是一由一用於解碼捲積碼的習知MAP解碼器採用的示例性框架的示意方塊圖;
圖3是一用於解碼渦輪碼的示例性習知反覆式演算法300的方塊圖;
圖4是一合併本發明的特徵的解碼器的示意方塊圖;
圖5是圖4的合併本發明的特徵的一示例性計算叢集的示意方塊圖;及
圖6A到6D說明四個樣本交錯表。
400...解碼器
405...輸入埠
410...軟解碼引擎
420...輸入先入先出緩衝器
430...載入引擎
432...連接
435...連接
440...交錯器計算單元
445...輸入埠
450...執行緒處理器
460...上載引擎
470...輸出先入先出緩衝器
480...通信網路

Claims (18)

  1. 一種用於解碼使用複數個碼類型(code types)中之一者編碼的資料之方法,該等碼類型之各者對應於一通信標準,該方法包括:識別與該資料相關的該碼類型;載入與該經識別之碼類型相關之程式碼到複數個可程式化並行解碼器之一或多者中;分配該資料至該複數個可程式化並行解碼器,其中該等可程式化並行解碼器可被重組態成解碼使用該複數個碼類型之各者編碼的資料;及提供該資料與該相關碼類型至該等分配的可程式化並行解碼器。
  2. 根據請求項1之方法,其進一步包括基於該碼類型從用於該等可程式化並行解碼器之一或多者之一本端記憶體器件獲得程式碼的步驟。
  3. 根據請求項1之方法,其進一步包括提供控制資訊至該等可程式化並行解碼器之一或多者的步驟。
  4. 根據請求項1之方法,其進一步包括以下步驟:基於該至少一碼類型之該通信標準產生一第一交錯器表;及將該第一交錯器表除以M以建立具有M個叢集之一第二交錯器表,其中在該第二交錯器表中之各項指示該等並行解碼器中之一者作為一目標解碼器與一目標位址以用於交錯之資料。
  5. 根據請求項4之方法,其進一步包括交錯在該等可程式化並行解碼器中之該資料的步驟。
  6. 根據請求項4之方法,其進一步包括使用一通信網路交錯該資料的步驟。
  7. 根據請求項1之方法,其進一步包括以下步驟:讀取待解碼的資料;存取一交錯器表,其中在該交錯器表中之各項識別該等可程式化並行解碼器中之一者作為一目標解碼器與一通信網路的一目標位址以用於交錯之資料;及將該資料寫入到該通信網路之該目標位址。
  8. 根據請求項7之方法,其中該通信網路包括一或多個叉線式交換器與一或多個先入先出緩衝器。
  9. 根據請求項7之方法,其中該等可程式化並行解碼器解碼使用該複數個碼類型之一者編碼的資料。
  10. 一種用於解碼使用複數個碼類型中之一者編碼的資料之裝置,該等碼類型之各者對應於一通信標準,該裝置包括:一記憶體;及耦合到該記憶體之至少一處理器,其可操作以:識別與該資料相關的該碼類型;載入與該經識別之碼類型相關之程式碼到複數個可程式化並行解碼器之一或多者中;分配該資料至該複數個可程式化並行解碼器,其中該等可程式化並行解碼器可被重組態成解碼使用該複 數個碼類型之各者編碼的資料;及提供該資料及該相關碼類型至該等分配的可程式化並行解碼器。
  11. 根據請求項10之裝置,其中該處理器被進一步組態成基於該碼類型從用於該等可程式化並行解碼器之一或多者之一本端記憶體器件獲得程式碼。
  12. 根據請求項10之裝置,其中該裝置係實施於一積體電路、一數位信號處理器、一微處理器、一微控制器及一通用電腦之一者中。
  13. 根據請求項10之裝置,其進一步可操作以:基於該至少一碼類型之該通信標準產生一第一交錯器表;及將該第一交錯器表除以M以建立具有M個叢集之一第二交錯器表,其中在該第二交錯器表中之各項指示該等程式化並行解碼器中之一者作為一目標解碼器與一目標位址以用於交錯的資料。
  14. 根據請求項13之裝置,其中該處理器被進一步組態成使用一通信網路交錯在該等可程式化並行解碼器中之該資料。
  15. 根據請求項13之裝置,其中該裝置係實施於一積體電路、一數位信號處理器、一微處理器、一微控制器及一通用電腦之一者中。
  16. 根據請求項10之裝置,其進一步可操作以:讀取待解碼的資料; 存取一交錯器表,其中在該交錯器表中之各項識別該等可程式化並行解碼器中之一者作為一目標解碼器與一通信網路的一目標位址以用於交錯的資料;及將該資料寫入到該通信網路之該目標位址。
  17. 根據請求項16之裝置,其中該通信網路包括一或多個叉線式交換器與一或多個先入先出緩衝器。
  18. 根據請求項16之裝置,其中該裝置係實施於一積體電路、一數位信號處理器、一微處理器、一微控制器及一通用電腦之一者中。
TW098101082A 2008-06-13 2009-01-13 用於複數個碼類型可程式化解碼的方法及裝置 TWI487293B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/138,920 US8035537B2 (en) 2008-06-13 2008-06-13 Methods and apparatus for programmable decoding of a plurality of code types

Publications (2)

Publication Number Publication Date
TW201014203A TW201014203A (en) 2010-04-01
TWI487293B true TWI487293B (zh) 2015-06-01

Family

ID=40456316

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098101082A TWI487293B (zh) 2008-06-13 2009-01-13 用於複數個碼類型可程式化解碼的方法及裝置

Country Status (7)

Country Link
US (1) US8035537B2 (zh)
EP (2) EP4096101A1 (zh)
JP (2) JP2011523325A (zh)
KR (1) KR101611631B1 (zh)
CN (1) CN101971504A (zh)
TW (1) TWI487293B (zh)
WO (1) WO2009151481A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811452B2 (en) * 2009-12-08 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing turbo decoder
US20110202819A1 (en) * 2010-02-12 2011-08-18 Yuan Lin Configurable Error Correction Encoding and Decoding
JP5692780B2 (ja) 2010-10-05 2015-04-01 日本電気株式会社 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
RU2011118108A (ru) * 2011-05-06 2012-11-20 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи
US8879671B2 (en) * 2012-08-30 2014-11-04 Intel Mobile Communications GmbH Worker and iteration control for parallel turbo decoder
US9256491B1 (en) * 2013-09-23 2016-02-09 Qlogic, Corporation Method and system for data integrity
US11290130B2 (en) * 2018-11-07 2022-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Optimized implementation of (de-)interleaving and rate (de-)matching for 3GPP new radio
US12007881B2 (en) * 2021-12-20 2024-06-11 Google Llc Method for populating spanner databases in test environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734962A (en) * 1996-07-17 1998-03-31 General Electric Company Satellite communications system utilizing parallel concatenated coding
US6205187B1 (en) * 1997-12-12 2001-03-20 General Dynamics Government Systems Corporation Programmable signal decoder
US20020029364A1 (en) * 2000-01-03 2002-03-07 Edmonston Brian S. System and method for high speed processing of turbo codes
US6674971B1 (en) * 1999-09-03 2004-01-06 Teraconnect, Inc. Optical communication network with receiver reserved channel
TWI291096B (en) * 2002-05-24 2007-12-11 Nxp Bv A processing system for accessing data in a memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0884162A (ja) * 1994-09-14 1996-03-26 Hitachi Ltd ディジタルケーブルサービスの送受信方法および送信装置並びに受信装置
JP2000316033A (ja) * 1999-04-30 2000-11-14 Toshiba Corp 送信装置、受信装置、データ伝送システム、及びデータ伝送方法
EP2627008A3 (en) * 2000-12-29 2013-09-11 Intel Mobile Communications GmbH Channel codec processor configurable for multiple wireless communications standards
US7346135B1 (en) * 2002-02-13 2008-03-18 Marvell International, Ltd. Compensation for residual frequency offset, phase noise and sampling phase offset in wireless networks
JP4815228B2 (ja) 2006-02-09 2011-11-16 富士通株式会社 ビタビ復号回路および無線機
US8218518B2 (en) * 2006-06-09 2012-07-10 Samsung Electronics Co., Ltd. Interleaver interface for a software-defined radio system
JP4837645B2 (ja) 2006-10-12 2011-12-14 ルネサスエレクトロニクス株式会社 誤り訂正符号復号回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734962A (en) * 1996-07-17 1998-03-31 General Electric Company Satellite communications system utilizing parallel concatenated coding
US6205187B1 (en) * 1997-12-12 2001-03-20 General Dynamics Government Systems Corporation Programmable signal decoder
US6674971B1 (en) * 1999-09-03 2004-01-06 Teraconnect, Inc. Optical communication network with receiver reserved channel
US20020029364A1 (en) * 2000-01-03 2002-03-07 Edmonston Brian S. System and method for high speed processing of turbo codes
TWI291096B (en) * 2002-05-24 2007-12-11 Nxp Bv A processing system for accessing data in a memory

Also Published As

Publication number Publication date
JP2011523325A (ja) 2011-08-04
EP2313979A2 (en) 2011-04-27
JP5840741B2 (ja) 2016-01-06
CN101971504A (zh) 2011-02-09
WO2009151481A2 (en) 2009-12-17
US20090309770A1 (en) 2009-12-17
EP4096101A1 (en) 2022-11-30
JP2014209785A (ja) 2014-11-06
KR20110037953A (ko) 2011-04-13
TW201014203A (en) 2010-04-01
US8035537B2 (en) 2011-10-11
EP2313979B1 (en) 2022-07-20
KR101611631B1 (ko) 2016-04-11
WO2009151481A3 (en) 2010-12-02

Similar Documents

Publication Publication Date Title
JP5840741B2 (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
JP3449987B2 (ja) 通信システムにおける反復復号装置及び方法
JP2008219892A (ja) データを符号化および復号化する方法および装置
JP4907802B2 (ja) 通信の復号化の際に用いられるバタフライプロセッサ装置
KR20080098391A (ko) 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더
JP5490320B2 (ja) Turbo符号並行インターリーバ及びその並行インターリーブ方法
JP2004531116A (ja) ターボデコーダ用インタリーバ
JP2006121686A (ja) 低密度パリティ検査コードを効率的に復号する方法及び装置
JP4874312B2 (ja) ターボ符号復号装置、ターボ符号復号方法及び通信システム
US8196006B2 (en) Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder
US8250448B1 (en) Method of and apparatus for implementing a decoder
JP5700035B2 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
CN1302624C (zh) 基于格子的信道编码所用的解码器
JP4321394B2 (ja) 符号化装置、復号装置
JP3540224B2 (ja) ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体
Gonzalez-Perez et al. Parallel and configurable turbo decoder implementation for 3GPP-LTE
JP3888135B2 (ja) 誤り訂正符号復号装置
KR101066287B1 (ko) 이동통신시스템에서 맵 방식을 이용하여 디코딩을 수행하는 장치 및 방법
Raymond et al. Design and VLSI implementation of a high throughput turbo decoder
WO2011048997A1 (ja) 軟出力復号器
Wong et al. Turbo decoder architecture for beyond-4G applications
JP2007006541A (ja) 誤り訂正符号復号装置

Legal Events

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