基于SDR技術(shù)實(shí)現(xiàn)SIMD處理器的設(shè)計(jì)與仿真研究
引言
第四代移動(dòng)通信技術(shù)的標(biāo)準(zhǔn)已經(jīng)被提出并在繼續(xù)的完善和建立當(dāng)中。相較于3G無線技術(shù),4G采用MIMO-OFDM技術(shù)來提升數(shù)據(jù)速率,大大提高了數(shù)據(jù)處理能力;同時(shí),標(biāo)準(zhǔn)對4G的數(shù)字信號處理量的要求比現(xiàn)有的3G方案高出數(shù)個(gè)數(shù)量級,而功耗僅允許增長2-5倍。因此,僅僅擴(kuò)展3G DSP是不能滿足4G處理器的能耗比要求,必需設(shè)計(jì)新的處理器體系結(jié)構(gòu)。目前國內(nèi)的兩大通信設(shè)備生產(chǎn)商華為和中興相繼開發(fā)了面向WINMAX及LTE等4G基站解決方案,但是其核心處理單元仍然采用國外的一些DSP芯片。
經(jīng)典的無線通信體系結(jié)構(gòu)都是由面向特定應(yīng)用的專用集成電路和數(shù)字信號處理器所構(gòu)成的,無法提供任何的靈活性。軟件無線電(SDR)的原理描述是將無線通信設(shè)備的物理層處理工作全部或大部分交給可編程體系結(jié)構(gòu)來完成。可編程的SDR解決方案相較于傳統(tǒng)的硬件解決方案具有非常明顯的優(yōu)點(diǎn):(1)使得軟件開發(fā)和硬件設(shè)計(jì)工作同時(shí)進(jìn)行,開發(fā)時(shí)間和成本相較于傳統(tǒng)的專用集成電路的來說大大降低。(2)在同一處理器體系結(jié)構(gòu)上可以動(dòng)態(tài)執(zhí)行不同的無線通信協(xié)議,這種多模式的工作向服務(wù)商提供的一個(gè)但可以應(yīng)對多種市場需求或向用戶提供更多的功能。(3)系統(tǒng)的可編程性可以有效地降低維護(hù)成本。
雖然SDR系統(tǒng)增加了靈活性,降低了無線通信設(shè)備的開發(fā)成本。然而為了支持靈活性這一新特點(diǎn),導(dǎo)致SDR系統(tǒng)功耗變得很高。未來4G無線協(xié)議瞄準(zhǔn)的速率在100Mbps~1Gbps之間[4-5];因此,SDR解決方案在需要保證高吞吐量的同時(shí),還要嚴(yán)格遵守?zé)o線通信設(shè)備的功耗約束。功耗效率對于SDR系統(tǒng)來說是異常重要的。
4G無線通信涉及的算法均有較高的數(shù)據(jù)并行需求。單指令多數(shù)據(jù)(SIMD)處理器可以在并行數(shù)據(jù)通路上處理向量數(shù)據(jù),并且能得到較好的能耗比。因此,SIMD處理器將會成為未來SDR系統(tǒng)的基礎(chǔ)。然而,SIMD的缺點(diǎn)也很明顯,即只有在數(shù)據(jù)通路被完全利用的情況下才達(dá)到高的處理性能。所以,本文在處理器設(shè)計(jì)中引入了變寬度的概念。結(jié)合實(shí)際硬軟件條件,通過深入研究針對下一代移動(dòng)計(jì)算的高性能數(shù)字信號處理器,完成一種基于SDR的變寬度SIMD處理器體系結(jié)構(gòu)的設(shè)計(jì)和相應(yīng)模塊的設(shè)計(jì)仿真工作。
1 體系結(jié)構(gòu)設(shè)計(jì)
1.1 4G終端物理層結(jié)構(gòu)
現(xiàn)今已提出的支持3G WCDMA和802.11的物理層結(jié)構(gòu)無法滿足4G系統(tǒng)高于3G系統(tǒng)兩個(gè)數(shù)量級數(shù)據(jù)吞吐量的需求。為支持千兆級的數(shù)據(jù)吞吐量要求,4G系統(tǒng)將三種技術(shù)整合到了一起:即正交頻分多址(OFDMA)技術(shù)、支持多天線并行的MIMO (Multiple-Input MulTIple-Output)技術(shù)和前向糾錯(cuò)(LDPC)技術(shù)。4G無線終端的物理層結(jié)構(gòu)如圖1所示,它主要由一個(gè)信道編碼解碼器、一個(gè)MIMO編碼解碼器和一個(gè)調(diào)制解調(diào)器所組成。MIMO是一種多天線技術(shù),支持多天線的發(fā)射與接收,其中運(yùn)用的STBC(空時(shí)塊碼)和V-BLAST(VerTIcal-BLAST)算法分別用于增強(qiáng)信號質(zhì)量和擴(kuò)充信道容量。
1.2 體系結(jié)構(gòu)設(shè)計(jì)
基于SDR的變寬度SIMD處理器體系結(jié)構(gòu)如圖2所示。該SIMD體系結(jié)構(gòu)主要由4個(gè)模塊組成:(1)多個(gè)PE核,主要用于無線協(xié)議和視頻的相關(guān)算法的計(jì)算工作;(2)一個(gè)全局便簽式存儲器為PE核提供計(jì)算數(shù)據(jù);(3)一個(gè)全局控制器,用于協(xié)調(diào)各模塊之間的工作;(4)模塊間雙總線。
1.2.1 控制器
控制器完成對各個(gè)模塊的狀態(tài)控制和模塊的初始化工作,主要由一個(gè)標(biāo)量路徑構(gòu)成,包括初始化態(tài)和執(zhí)行態(tài)兩種狀態(tài)。當(dāng)處于初始化態(tài)時(shí),控制器呈現(xiàn)出2級流水,分別為取指階段和譯碼階段;初始化階段完成后,控制器進(jìn)入執(zhí)行階段,此時(shí)將屏蔽取指階段,不再從指令存儲器中讀取指令,而是依據(jù)DMA、PE核的狀態(tài)信息,以及初始化時(shí)保存在控制器中的PE核間生產(chǎn)者消費(fèi)者關(guān)系,產(chǎn)生相應(yīng)的控制信號,用以協(xié)調(diào)各個(gè)PE核的協(xié)同工作。
1.2.2 DMA與Bus
DMA是不需要控制器干預(yù)的情況下獨(dú)立完成批量數(shù)據(jù)的傳輸工作??刂破髟诔跏蓟A段對DMA進(jìn)行初始化;當(dāng)控制器進(jìn)入執(zhí)行階段后,DMA也將開始獨(dú)立傳輸數(shù)據(jù),并且當(dāng)一批數(shù)據(jù)傳輸完成后,DMA的計(jì)數(shù)寄存器值將還原成初始化值,再次執(zhí)行之前的數(shù)據(jù)傳輸操作,從而重復(fù)為PE核提供計(jì)算數(shù)據(jù)。
本體系結(jié)構(gòu)中的Bus結(jié)構(gòu)為雙總線結(jié)構(gòu):一條總線為32位,其中每16位為一組,用于PE核和全局?jǐn)?shù)據(jù)存儲器之間的數(shù)據(jù)通信;另一條總線為48位,也是以16位為一組,用于PE核間互聯(lián)。
1.2.3 全局便簽式存儲器
全局便簽式存儲器的主要功能是為PE核提供計(jì)算數(shù)據(jù),并接收PE核的計(jì)算結(jié)果。全局便簽式存儲器容量為128KB,字長為16位,具有一個(gè)讀端口和一個(gè)寫端口。當(dāng)讀寫端口同時(shí)有效時(shí),先讀后寫。讀寫地址線均為16位。
1.2.4 PE核
PE核主要由SIMD數(shù)據(jù)路徑、標(biāo)量數(shù)據(jù)路徑、地址產(chǎn)生單元和局部存儲器4部分構(gòu)成。SIMD數(shù)據(jù)路徑主要用于DSP算法的高強(qiáng)度計(jì)算,由64個(gè)計(jì)算lane組成。標(biāo)量數(shù)據(jù)路徑主要處理程序中的標(biāo)量指令和無法向量化的指令。地址產(chǎn)生單元用于產(chǎn)生訪問局部存儲器塊的地址;SIMD數(shù)據(jù)路徑中每組計(jì)算lane都有各自獨(dú)立的地址產(chǎn)生單元,所以一共有8個(gè)地址產(chǎn)生單元。局部存儲器大小為32KB,平分為bank0和bank1兩部分。同一時(shí)刻最多只允許一個(gè)bank接收數(shù)據(jù),最多只允許一個(gè)bank在為PE核的計(jì)算模塊提供計(jì)算數(shù)據(jù)。
1.3 工作模式
處理器設(shè)計(jì)中引入了變寬度的概念,即處理器可以支持多種向量寬度的算法,在支持窄向量寬度算法時(shí),使用線程級并行性來充分利用硬件資源。從算法角度看,系統(tǒng)由幾個(gè)主要的算法所構(gòu)成,由于每個(gè)PE核具有足夠強(qiáng)的計(jì)算能力,能獨(dú)立處理一個(gè)完整算法,所以算法在對數(shù)據(jù)進(jìn)行處理的過程中彼此之間通信很少,基本上是一種生產(chǎn)者和消費(fèi)者的關(guān)系。可以把這些算法當(dāng)做不同的任務(wù),分配到不同的處理器核上運(yùn)行,這樣既可以有效地利用PE核的計(jì)算能力,又能很好地保證多核的并發(fā)處理。
以4G無線協(xié)議為例:4G無線物理層主要由調(diào)制解調(diào)器、MIMO編碼解碼器和信道編碼解碼器三部分組成。其中調(diào)制解調(diào)通過FFT和IFFT算法來實(shí)現(xiàn); V-BLAST算法和STBC算法分別用來提升通信速率和通信強(qiáng)度。LDPC算法完成前向糾錯(cuò)部分的工作。每個(gè)算法的計(jì)算結(jié)果將作為下一個(gè)算法的計(jì)算數(shù)據(jù),所以算法之間是串行關(guān)系,整體上多個(gè)PE核組成了一條宏流水線。
這里,PE核扮演的是一種“軟ASIC”的角色。PE核的指令存儲器中裝載的算法是FFT算法,則此PE核將會完成FFT算法的計(jì)算操作。即當(dāng)為PE中的指令存儲器載入不同的程序后,該P(yáng)E核也將實(shí)現(xiàn)不同的算法。
2 仿真驗(yàn)證
本文根據(jù)SIMD核取指、譯碼、執(zhí)行整個(gè)過程以及指令集設(shè)計(jì)(限于篇幅這里沒有介紹),采用硬件語言Verilog HDL對微體系各個(gè)部分進(jìn)行了設(shè)計(jì)實(shí)現(xiàn)。綜合電路如圖3所示。
控制器流水線的主要工作是控制程序流,所以分支與跳轉(zhuǎn)占其工作負(fù)載的很大一部分。涉及到流水線的設(shè)計(jì),數(shù)據(jù)冒險(xiǎn)也需要考慮。這里通過兩個(gè)實(shí)例對幾個(gè)關(guān)系進(jìn)行仿真,以驗(yàn)證設(shè)計(jì)的正確性。
2.1 驗(yàn)證實(shí)例1
匯編源程序:
addi r0,r1,4;
addi r0,r2,0;
bret r2,r1,3;
inc r2;
jnt -2;
inc r1;
這段程序的目的是為了驗(yàn)證標(biāo)量流水線的條件判斷類指令和無條件跳轉(zhuǎn)指令是否符合設(shè)計(jì)預(yù)期。仿真波形如圖4所示。從驗(yàn)證波形可以看出,從0ns 時(shí)刻addi r0, r1, 4指令進(jìn)入取指階段開始,一直到240ns時(shí)刻程序段執(zhí)行結(jié)束,整個(gè)運(yùn)算過程結(jié)果都正確,最終寄存器r1的值變?yōu)?。2.2 驗(yàn)證實(shí)例2
匯編源程序:
addi r0, r2, 0;
addi r0, r1, 100;
add r1, r2, r2;
loop r1, -1;
addi r0, r3, 5;
這一段程序的目的是為了驗(yàn)證在4G 無線通信或視頻算法中常見的循環(huán)計(jì)算,標(biāo)量流水線的loop指令就是專為應(yīng)對這樣的計(jì)算所設(shè)計(jì)的。實(shí)例程序展示的是100以內(nèi)的自然數(shù)求和。仿真波形如圖5所示。
從圖5可以看出,首先將寄存器r1和寄存器r2的值分別初始化為100和0;執(zhí)行add r1, r2, r2指令,$r2 = $r2 + $r1。loop r1, -1指令判斷是否寄存器r1的值大于0,如果成立,則跳轉(zhuǎn)成立,寄存器r1值減1,跳轉(zhuǎn)到add r1, r2, r2指令繼續(xù)執(zhí)行,如此反復(fù)。最終寄存器r2值為100以內(nèi)的自然數(shù)的和5050,16進(jìn)制表示為000013ba。循環(huán)結(jié)束,addi r0, r3, 5執(zhí)行,置寄存器r3值為5。兩個(gè)實(shí)例驗(yàn)證波形都驗(yàn)證了指令執(zhí)行的正確性。
3 總結(jié)
本文以4G無線通信這一學(xué)術(shù)熱點(diǎn)為研究對象,結(jié)合4G無線通信協(xié)議和高清視頻中所使用的算法,研究和設(shè)計(jì)了基于SDR的變寬度SIMD處理器體系結(jié)構(gòu),包括處理器的工作模式、PE核標(biāo)量流水線。仿真結(jié)果驗(yàn)證了該處理器體系結(jié)構(gòu)設(shè)計(jì)的正確性。
下一步,本文將針對4G無線通信所涉及的算法進(jìn)行并行處理,并對處理器進(jìn)行并行處理實(shí)例驗(yàn)證。