C64x+ 對 C64 內核的性能提升
德州儀器(TI),技術應用工程師 王華斌
引言:目前已上市的TI高性能DSP如TM320C6455(下文簡稱為C6455)及SoC如TMS320DM6443/6(下文簡稱為DM6443/6)都采用C64+的內核,C64x+內核一方面延續C64內核優勢,另一方面從結構上及性能上做了改進,以提高處理能力。本文主要從內核結構及指令上介紹C64+內核相對于C64內核的性能提升,以讓業內工程師在基于C64+的內核應用開發過程中,能夠充分利于其性能。
關鍵詞:C64,C64+,SPLOOP,緊湊指令
TI所推出的C64x+內核完全兼容C64x,這有利于基于C64x的程序向C64x+移植。結構上同樣是64個通用寄存器,支持32bit、40bit、64bit的數據類型,也支持8bit和16bit打包數據類型,其中A0-A2,B0-B2都可做條件寄存器。其中一側的功能單元(A或B側)可以訪問到另外一側(B或A側)的通用寄存器中的操作數。指令上兼容C64x內核的所有指令,而在其它性能上做了如下提升。
1. 新增49條指令
以乘法功能單元(M unit)為例,該單元的的改進,新增指令加大了乘法運算帶寬,支持32bit乘法,和復數乘法,使每周期16×16的MAC數達8個。如下面例子所示:
對于C64x和C64x+,兩個復數復數乘法((dre+dim*i)*(cre+cim*i)=pre+pim*i)操作分別如下,
對于C64x使用下列兩條指令實現,
DOTP2 dre_dim, cim_cre, pim ;dre_dim和cim_cre分別是將兩個復數的實;虛部兩個16bit的有符號數打包出來的結果
;組成一個32bit的數,放入一個通用寄存器中。 DOTPN2 dre_dim, cre_cim, pre
而對于C64x+只需下列一條指令就可以實現,
CMPY dre_dim, cre_cim, pre:pim ; pre:pim是一個寄存器對,分別存放復數乘法;結果的實部和虛部。
圖1
對于這種情形,如果流水線排好,可以看出C64x+ 比C64x可以減少大約一半左右的復數乘法周期數,同時也會減少一條指令所占用的程序空間。其它還有如ADDSUB和ADDSUB2、新的數據打包解包指令如DPACKX2,也大大提升DSP在處理DCT和FFT變換方面的性能,其它指令在提升DSP的處理性能方面就不做詳細介紹。如果使用這些新指令,以處理256點的FFT變化為例,部分指令變化如圖1所示,C64x+需要803個執行周期,而C64x需要1246個執行周期;C64x+的程序大小為664 bytes而C64x大小為1000 bytes。由此可見C64x+必將大大提升TI的DSP在流媒體方面的處理能力。
2. 新增軟件流水緩存(SPLOOP Buffer)
C64x架構中充分利用軟件流水(Software Pipeline)進一步提升DSP的處理性能,它一方面可以克服多周期指令的延時所造成的對CPU處理性能的影響;另一方面還可以在流水線運行階段每個周期輸出一個或多個處理結果。C64x+繼續延續該性能優點,并進行改進,出現SPLOOP (Software Pipelined Loop),在硬件上還有軟件流水緩存(SPLOOP Buffer)對其進行支持。SPLOOP充分利用C64x+內核中的SPLOOP Buffer,將軟件流水中的循環核(Loop Kernel)拷入其中,有如下幾個優勢:
- 編譯出來的代碼,由于prolog和epilog代碼段不需要直接代碼標識,所以可以減少代碼的尺寸;
- 不同于C64x的軟件流水,可以中斷;
- 由于循環核已經被拷入SPLOOP Buffer,一方面可以減少對L1P Cache的訪問頻繁程度,由此節省CPU對L1P Cache的帶寬,另一方面也可以降低CPU的功耗;
- 每次循環內核的執行結束跳轉到下次執行開始處時是絕對跳轉,由此不需要跳轉指令的支持;
SPLOOP Buffer較多可以放 14個執行包 (execute packets),在程序編譯過程中,CCS會自動將可以放入CPU中SPLOOP Buffer的指令用特殊指令代替,因此對于C/C++代碼來說,使用很方便。
3. 支持緊湊指令(Compact Instructions)
C64x DSP只支持標準的取指包(如圖2A所示),而C64x+支持帶“頭”的取指包(如圖2B所示),指令包頭標注了該指令包中其它7個字中,哪些是32 bit的操作碼,哪些是16 bit的操作碼。支持緊湊指令一方面可以節省程序存儲空間;另一方面也因此可以增加程序Cache的命中率。如圖3兩段程序實現相同的操作,都需9個指令周期,圖A是在C64內核的存儲結果,需要48 bytes,圖B是在C64x+內核的存儲結果只需要32 bytes。
圖2
圖3
4. 支持特權系統
考慮到目前越來越多的客戶在TI的C6000系列DSP上運行操作系統,同時越來越多的C6000系列DSP用于終端設備中(IP STB中使用DM642/3,DM6446/3),為支持處理系統異常及其存儲空間非法訪問的魯棒性,C64+開始支持特權系統。
特權系統將操作模式分為完全超級用戶執行模式和兩級系統模式。在完全超級用戶執行模式下, 程序可以完全訪問所有的控制寄存器,不需運行非特權的程序。而兩級系統模式分為超級用戶執行模式和普通用戶模式。操作系統運行于超級用戶執行模式,系統不信任的API運行于普通用戶模式下。
圖4
由上述性能提升點可見,C64+內核的性能提升具有一定的應用針對性,一方面加強在流媒體方面的處理能力;另一方面提升對操作系統的支持的魯棒性。同時也通過支持緊湊指令存儲和取指的方式來減少系統工程編譯出來的代碼尺寸。圖4為使用C64+內核的TMS320C6455的結構,可以看出該DSP除片上存儲空間比C6416分別提高一倍之外(L2 Memory達到2MB,L1P和L1D都為32KB),其內核在執行性能和代碼大小上分別比C64內核提高20%和20%-30%。相信TI的C64+內核讓業內工程師感受到TI在提升其DSP處理性能方面的承諾!
相關閱讀:
- ...2011/09/05 16:43·基于DSP TMS320C6416的數字下變頻技術
- ...2011/08/31 15:12·基于XC2C64A芯片的無線錄井絞車信號檢測電路設計[圖]
- ...2011/05/20 10:40·TI C64x+ DSP CACHE 一致性分析與維護
- ...· Efinix® 全力驅動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產品開發及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術