張茜,詹明,章堅武,王富龍,馮云開,唐浩
研究與開發
一種合并狀態度量計算的高效并行Turbo碼譯碼器結構設計及FPGA實現
張茜1,詹明1,章堅武2,王富龍1,馮云開1,唐浩1
(1. 西南大學,重慶 400715;2. 杭州電子科技大學,浙江 杭州 310018)
為滿足無線通信中高吞吐、低功耗的要求,并行譯碼器的結構設計得到了廣泛的關注。基于并行Turbo碼譯碼算法,研究了前后向度量計算中的對稱性,提出了一種基于前后向合并計算的高效并行Turbo碼譯碼器結構設計方案,并進行現場可編程門陣列(field-programmable gate array,FPGA)實現。結果表明,與已有的并行Turbo碼譯碼器結構相比,本文提出的設計結構使狀態度量計算模塊的邏輯資源降低50%左右,動態功耗在125 MHz頻率下降低5.26%,同時譯碼性能與并行算法的譯碼性能接近。
狀態度量合并計算;Turbo碼;FPGA實現;并行算法
在無線通信系統中,信道編碼技術十分重要,主要用于糾正信息傳輸過程中出現的錯誤。Turbo碼作為先進的迭代信道編碼之一,譯碼性能逼近香農極限[1-2],所以在各個領域廣泛應用,尤其是工業物聯網中[3-5]。無線通信系統中因為能量受限、譯碼算法迭代的依賴性和吞吐量的提高成為瓶頸,同時,工業物聯網中Turbo碼譯碼器的資源占用亦是待解決問題。因此,一種降低硬件資源且解決迭代譯碼算法實現高吞吐量Turbo碼譯碼器結構成為研究的重點。有關Turbo碼譯碼器設計的研究中,譯碼主要采用最大后驗概率(maximum a posteriori probability,MAP)算法[6-7],通過交換軟信息并且迭代譯碼的方式獲得較好的誤碼率(bit error rate,BER)性能[8]。但是受限于Turbo碼的迭代譯碼算法MAP算法的復雜性,對數域最大后驗概率(maximum a posteriori probability in logarithmic domain,Log-MAP)算法成為主要的實現算法。由于Log-MAP算法中對數據的依賴性太強,導致算法在處理時需要依次處理每個信息位中的數據,因此,譯碼速率有所限制[9-10]。
隨著電子技術的發展,硬件水平不斷提高,并行譯碼器的高吞吐量結構設計所需要的資源是能夠承載的,所以研究人員提出了增強Turbo譯碼并行性的方法,以此提高Log-MAP算法譯碼器的譯碼速率和吞吐量[11-14]。文獻[12]提出使吞吐量更高、譯碼速率更快、適用性更廣的浮點型全并行譯碼(fully-parallel Turbo decoder,FPTD)算法。因為每次譯碼迭代時沒有數據依賴,所以FPTD譯碼算法有利于實現并行處理,但是要達到目前最先進Turbo碼譯碼算法的糾錯能力,需要7倍的迭代次數才能實現[12]。文獻[13]將FPTD譯碼算法應用到專用集成電路(application specific integrated circuit,ASIC)中,吞吐量提高到21.9 Gbit/s,然而隨著全并行譯碼的計算復雜度的攀升,資源占用量變大,大量的比特位數據需要計算。文獻[14]設計了一種新的定點型并行譯碼方案,并將定點型譯碼器結構在現場可編程門陣列(field-programmable gate array,FPGA)上實現,消息位占用的硬件資源減少了50%。雖然文獻[14]中譯碼器的吞吐量、譯碼速率以及復用性都很強,但譯碼器在硬件上占用的資源和電路面積相對其他譯碼器結構設計仍然較大[15-16],本文研究表明并行譯碼器還能進一步降低硬件資源的使用。











圖1 并行譯碼器結構

由上文論述和圖1可知,并行譯碼算法的計算復雜度主要體現在單個算法塊當中,因此,為了減少計算復雜度,進一步減少并行譯碼器中所占用的資源,在每個算法塊中將會對前向狀態度量和后向狀態度量的遞歸計算進行合并研究。根據式(2)和式(3)的狀態度量計算,可以分析出遞歸計算與網格圖相關。

圖2 LTE-Advanced標準下的Turbo碼網格圖分解

圖3 前向狀態度量和后向狀態度量的遞推關系

在實際的操作過程中可以發現,首先在短途傳輸網絡的過程中,傳輸經常會受到一些外來因素的影響,從而對傳輸信號造成一定的干擾。這種干擾的本質通常是來源于一些鄉村或者鄉鎮中傳輸載體的質量較為劣質所導致的。對于傳輸速度而言,其傳輸的效率是否快速,與信息傳輸的載體有著直接關系。所以在這種由傳輸載體所導致的傳輸速度下降的情況中,應該盡快得到解決。相關的信息技術人員應該加強對城鄉的通訊信息傳輸問題的重視,并且對一些農村和鄉鎮中的基礎傳輸網絡設施進行更新和改革,并且盡可能的加強其傳輸容量。
因為網格圖的3個狀態取值分為4個基本單元,同時每個基本單元的前向狀態度量和后向狀態度量的計算具有對稱性,所以在譯碼該時刻的前向狀態度量值的同時可以逆向計算該時刻的后向狀態度量值。前后向狀態度量合并后的Turbo碼網格圖如圖4所示,圖4中黑線代表前向狀態度量遞歸的方向,灰線代表后向狀態度量遞歸的方向。在并行譯碼的過程中,本文將運用圖4中合并網格圖的方式分為4個基本單元計算前向狀態度量值和后向狀態度量值。并行譯碼器中的算法塊得到上一時刻的前向狀態度量值和下一時刻的后向狀態度量值,然后將這兩個值按照遞推的關系在每個算法塊中同時進行計算,這樣在并行譯碼時,則每個算法塊中的遞歸計算能進行合并。

圖4 前后向狀態度量合并后的Turbo碼網格圖
因為圖4中4個基本單元的計算方式一致,所以本文針對其中的一個基本單元進行詳細分析,基本單元合并計算結構如圖5所示,其中,黑實線表示前向狀態度量的方向,灰虛線表示后向狀態度量的方向。



圖5 基本單元合并計算結構




低資源需求的并行譯碼器結構設計框圖比較如圖6所示。基于第1節以及合并計算的策略,圖6(b)給出了本文提出的并行譯碼器結構設計方案中的合并模塊,與圖6(a)中并行譯碼器相比,本文的設計方案節省了大量的邏輯資源,進而影響譯碼器的整體功耗。該合并計算的結構設計相比已有的結構設計,不同之處在于并行譯碼器中每個時刻的8個前向狀態度量和8個后向狀態度量的計算分為4個部分,前向、后向的狀態度量以及分支度量合并為一個循環進行計算。
基于對上述并行譯碼算法的分析,對Turbo碼譯碼器的整體進行FPGA實現,本文方案的并行譯碼器FPGA結構如圖7所示,譯碼器模塊的兩個虛線框表示上層和下層軟輸入軟輸出(soft in and soft out,SISO)的譯碼,中間通過交織器和解交織器實現奇數、偶數索引的銜接。控制模塊對迭代次數、輸入輸出以及上層下層譯碼進行控制。圖1與圖7的不同之處在于單個算法塊中的前后向狀態度量計算是否被合并,圖1算法塊內的前向和后向遞歸計算分為兩個模塊單獨計算,而圖7的前向后向遞歸計算合并在一個模塊中計算,并分為4個相同的單元同步計算。

圖6 低資源需求的并行譯碼器結構設計框圖比較



圖8 狀態度量合并計算的FPGA實現結構



表1 度量值量化方案


表2 狀態度量計算模塊的資源使用情況比較
本文提出的合并狀態度量計算的設計方案最大目的是降低Turbo碼譯碼器的整體資源占用和功耗。按照上文中對合并狀態度量的并行譯碼器結構框圖的設計,將提出的譯碼器結構通過Modelsim驗證,然后采用PowerPlay Early Power Estimator測試平臺對并行譯碼器結構中單個算法塊的狀態度量計算模塊功耗進行測試。
通過對并行譯碼器結構中的單個算法塊進行分析,單個算法塊的功耗主要是由狀態度量的計算所占用的資源決定的,因此在測試時,本文只測試并比較了狀態度量計算模塊的部分。硬件模塊的功耗主要由邏輯計算、RAM存儲、I/O輸入輸出,時鐘信號和靜態功耗組成。靜態功耗固定為0.127 W。
由于在相同目標器件下,本文將對比各模塊中的動態功耗,即邏輯、RAM、I/O和時鐘方面的消耗。因為并行譯碼器不消耗存儲容量,所以RAM方面功耗為0,不同頻率下I/O和時鐘方面的合并狀態度量計算模塊的功耗對比如圖9所示。文獻[22]表明,邏輯計算的占用對狀態度量計算模塊的功耗影響較大。因此在功耗測試中,將本文提出的合并狀態度量計算模塊的邏輯功耗和該模塊的功耗分別與已有的并行譯碼器結構的狀態度量計算模塊進行了對比,不同頻率下與已有并行結構的狀態度量計算模塊功耗比較如圖10所示。

圖9 不同頻率下I/O和時鐘方面的合并狀態度量計算模塊的功耗對比

圖10 不同頻率下與已有并行結構的狀態度量計算模塊功耗比較
在不失通用性的前提下,FPGA實現的時鐘頻率分別設置為25 MHz、50 MHz、75 MHz、100 MHz和125 MHz進行對比。前后向的邏輯計算合并后,邏輯計算的功耗在不同頻率下最大降低50%左右;由于邏輯計算的功耗降低從而導致單個算法塊中狀態度量計算模塊的功耗在125 MHz下降低5.26%,同時在25 MHz、50 MHz、75 MHz、100 MHz、125 MHz頻率約束下狀態度量計算模塊功耗分別從201 mW降到199 mW、266 mW降到258 mW、328 mW降到317 mW、391 mW降到377 mW、460 mW降到437 mW。對于狀態度量計算模塊來說,功耗測試結果表明邏輯計算功耗隨著頻率的增加而不斷增大,功耗下降率也隨之增加,并且本文設計的譯碼器結構的狀態度量計算模塊功耗低于已有的并行譯碼器結構設計方案中的狀態度量計算模塊。雖然本文所設計的譯碼器中單個算法塊的資源占用和功耗方面相較有所下降,但是本文所設計的譯碼器的復用性相較于已有的并行譯碼器會有所減弱,同時由于芯片使用型號不同,在模擬仿真過程中傳輸幀的時間以及讀寫數據的處理時間上會比已有的譯碼器長一些。


圖11 幀長440 bit的不同迭代次數的BER性能比較

圖12 幀長1 024 bit的不同迭代次數的BER性能比較

由圖12可知,在信噪比相同的情況下,幀長越長譯碼算法的性能越優。同時在圖11和圖12中對同一幀長下不同迭代次數的BER性能進行比較,可以證明并行譯碼能夠更好地應用于較長的幀長和迭代次數較多的情況,所以在實際情況下對于幀長和迭代次數的選擇要做出合理考慮。因此,本文提出的算法不僅減少了數據傳輸過程中重復的消耗,還提高了數據傳輸的可靠性,可應用于高吞吐低功耗無線通信中。
綜合以上分析,基于合并狀態度量計算的并行譯碼器結構設計方案,較已有的并行譯碼器設計方案的結構更為簡單,引入的邏輯資源占用更少,硬件的功耗更少。以BER性能、計算速率和功率消耗為考查指標,本文基于狀態度量合并的譯碼器結構設計方案,具有明顯的總體優勢。

[1] 田甜, 薛鴻民, 鄧志龍. Turbo碼在短波通信系統中的應用研究[J]. 科技資訊, 2020, 18(24): 49-51, 63.
TIAN T, XUE H M, DENG Z L. Application research of turbo code in short wave communication system[J]. Science & Technology Information, 2020, 18(24): 49-51, 63.
[2] 郭臣, 付高原, 楊茂輝. 基于FPGA的Turbo碼數據傳輸系統的實現[J]. 電子測量技術, 2017, 40(10): 221-225.
GUO C, FU G Y, YANG M H. Implementation of Turbo codes data transmission system on the basis of FPGA[J]. Electronic Measurement Technology, 2017, 40(10): 221-225.
[3] FIGUEIREDO F A P, MATHILDE F, CARRILLO D, et al. A framework for the automation of LTE physical layer tests[J]. Wireless Personal Communications, 2018, 102(1): 293-307.
[4] 陳發堂, 劉一帆, 唐成. 一種用于5G IOT通信的能量效率方案[J]. 電子技術應用, 2017, 43(11): 2-6, 26.
CHEN F T, LIU Y F, TANG C. An energy-efficient scheme for 5G Internet of Things[J]. Application of Electronic Technique, 2017, 43(11): 2-6, 26.
[5] 3GPP. Multiplexing and channel coding (Release 11): TS 36.212 v11.3.0 [S]. 2013.
[6] 詹明, 文紅, 伍軍. LTE-Advanced標準中一種基于反向重算的低存儲容量Turbo碼譯碼器結構設計[J]. 電子學報, 2017, 45(7): 1584-1592.
ZHAN M, WEN H, WU J. A memory reduced turbo code decoding architecture for LTE-Advanced standard based on reverse recalculation[J]. Acta Electronica Sinica, 2017, 45(7): 1584-1592.
[7] LI Y, XU B J, MA L, et al. High-throughput error correction for continuous-variable quantum key distribution systems based on shuffled iterative decoding[C]//Proceedings of SPIE/COS Photonics Asia. Proc SPIE 11558, Quantum and Nonlinear Optics VII, Online Only. [S.l.:s.n.], 2020, 11558: 77-82.
[8] YOO I, KIM B, PARK I C. Tail-overlapped SISO decoding for high-throughput LTE-advanced turbo decoders[J]. IEEE Transactions on Circuits and Systems I: Regular Papers, 2014, 61(9): 2711-2720.
[9] LIN J S, SHIEH M D, LIU C Y, et al. Efficient highly-parallel turbo decoder for 3GPP LTE-Advanced[J]. VLSI Design, Automation and Test (VLSI-DAT), 2015: 1-4.
[10] PARVATHY M, GANESAN R. Throughput enhancement of SISO parallel LTE turbo decoders using floating point turbo decoding algorithm[J]. International Journal of Wireless and Mobile Computing, 2018, 15(1): 58.
[11] GONZALEZ-PEREZ L F, YLLESCAS-CALDERON L C, PARRA-MICHEL R. Parallel and configurable turbo decoder implementation for 3GPP-LTE[C]//Proceedings of 2013 International Conference on Reconfigurable Computing and FPGAs (ReConFig). Piscataway: IEEE Press, 2013: 1-6.
[12] MAUNDER R G. A fully-parallel turbo decoding algorithm[J]. IEEE Transactions on Communications, 2015, 63(8): 2762-2775.
[13] LI A, XIANG L P, CHEN T H, et al. VLSI implementation of fully parallel LTE turbo decoders[J]. IEEE Access, 2016, 4: 323-346.
[14] LI A, HAILES P, MAUNDER R G, et al. 1.5 Gbit/s FPGA implementation of a fully-parallel turbo decoder designed for mission-critical machine-type communication applications[J]. IEEE Access, 2016(4): 5452-5473.
[15] TRAN M T, GAUTIER M, CASSEAU E. On the FPGA-based implementation of a flexible waveform from a high-level description: application to LTE FFT case study[C]//Proceedings of Cognitive Radio Oriented Wireless Networks. [S.l.:s.n.], 2016.
[16] MURUGAPPA P, BAZIN J N, BAGHDADI A, et al. FPGA prototyping and performance evaluation of multi-standard Turbo/LDPC Encoding and Decoding[C]//Proceedings of 2012 23rd IEEE International Symposium on Rapid System Prototyping. Piscataway: IEEE Press, 2012: 143-148.
[17] 孫增友, 李歡歡, 王蒙, 等. 采用近似max*運算的Log-MAP譯碼算法[J]. 計算機應用與軟件, 2016, 33(3): 255-258.
SUN Z Y, LI H H, WANG M, et al. Log-map decoding algorithm using approximate max*operation[J]. Computer Applications and Software, 2016, 33(3): 255-258.
[18] 付婉, 楊茂輝, 胡明亮, 等. Turbo碼譯碼算法理論推導及誤碼性能分析[J]. 電子測量技術, 2018, 41(11): 10-14.
FU W, YANG M H, HU M L, et al. Theoretical derivation and error performance analysis of Turbo decoding algorithm[J]. Electronic Measurement Technology, 2018, 41(11): 10-14.
[19] SYBIS M. Chebyshev inequality based max* approximation for reduced complexity decoding of turbo TCM[C]//Proceedings of 2010 6th International Symposium on Turbo Codes & Iterative Information Processing. Piscataway: IEEE Press, 2010: 265-269.
[20] MISHRA S, SHUKLA H, MADHEKAR S. Implementation of Turbo decoder using MAX-LOGMAP algorithm in VHDL[C]//Proceedings of 2015 Annual IEEE India Conference. Piscataway: IEEE Press, 2015: 1-6.
[21] GAO Z, ZHANG L L, YAN T, et al. Design of SEU-tolerant turbo decoders implemented on SRAM-FPGAs[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2020, 28(12): 2563-2572.
[22] ZHAN M, PANG Z B, YU K, et al. Reverse calculation-based low memory turbo decoder for power constrained applications[J]. IEEE Transactions on Circuits and Systems I: Regular Papers, 2021, 68(6): 2688-2701.
Design and FPGA implementation of an efficient parallel Turbo decoder for combining state metric calculations
ZHANG Qian1, ZHAN Ming1, ZHANG Jianwu2, WANG Fulong1, FENG Yunkai1, TANG Hao1
1. SouthwestUniversity, Chongqing 400715, China 2. Hangzhou Dianzi University, Hangzhou 310018, China
In order to achieve the requirement of high throughput and low-power in wireless communication, a parallel Turbo decoder has attracted extensive attention. By analyzing the calculating of the state metrics, a low-resource parallel Turbo decoder architecture scheme based on merging the forward and backward state metrics calculation modules was proposed, and effectiveness of the new architecture was demonstrated through field-programmable gate array (FPGA) hardware realization. The results show that, compared with the existing parallel Turbo decoder architectures, the proposed design architecture reduces the logic resource of state metrics calculation module about 50%, while the dynamic power dissipation of the decoder architecture is decreased by 5.26% at the frequency of 125 MHz. Meanwhile the decoding algorithm is close to the decoding performance of the parallel algorithm.
state measure merge calculation, Turbo code, FPGA implementation, parallel algorithm
TN929
A
10.11959/j.issn.1000-0801.2022023
2021?09?30;
2022?01?28
詹明,zmdjs@swu.edu.cn;章堅武,jwzhang@hdu.edu.cn
國家自然科學基金資助項目(No.61671390)
The National Natural Science Foundation of China (No.61671390)
張茜(1996?),女,西南大學碩士生,主要研究方向為信號與信息處理。

詹明(1975?),男,博士,西南大學學院教授、博士生導師,中國電子學會會員,主要研究方向為信道編碼理論與技術、無線傳感器網絡、超高性能工業無線控制。
章堅武(1961?),男,博士,杭州電子科技大學教授、博士生導師,中國電子學會高級會員,浙江省通信學會常務理事,主要研究方向為移動通信、多媒體信號處理與人工智能、通信網絡與信息安全。

王富龍(1995?),男,西南大學碩士生,主要研究方向為信號與信息處理。
馮云開(1995?),男,西南大學碩士生,主要研究方向為信號與信息處理。
唐浩(1996?),男,西南大學碩士生,主要研究方向為信號與信息處理。