亚洲精品影院一区二区-亚洲精品永久一区-亚洲精品中文一区不卡-亚洲精品中文字幕久久久久久-国产亚洲精品aaa大片-国产亚洲精品成人a在线

您好,歡迎光臨電子應用網![登錄] [免費注冊] 返回首頁 | | 網站地圖 | 反饋 | 收藏
在應用中實踐
在實踐中成長
  • 應用
  • 專題
  • 產品
  • 新聞
  • 展會
  • 活動
  • 招聘
當前位置:中國電子應用網 > 技術應用 > 正文

C64x+ 對 C64 內核的性能提升

2011年05月30日16:13:04 本網站 我要評論(2)字號:T | T | T
關鍵字:應用 

德州儀器(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)拷入其中,有如下幾個優勢:

  1. 編譯出來的代碼,由于prolog和epilog代碼段不需要直接代碼標識,所以可以減少代碼的尺寸;
  2. 不同于C64x的軟件流水,可以中斷;
  3. 由于循環核已經被拷入SPLOOP Buffer,一方面可以減少對L1P Cache的訪問頻繁程度,由此節省CPU對L1P Cache的帶寬,另一方面也可以降低CPU的功耗;
  4. 每次循環內核的執行結束跳轉到下次執行開始處時是絕對跳轉,由此不需要跳轉指令的支持;

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處理性能方面的承諾!

網友評論:已有2條評論 點擊查看
登錄 (請登錄發言,并遵守相關規定)
如果您對新聞頻道有任何意見或建議,請到交流平臺反饋。【反饋意見】
關于我們 | 聯系我們 | 本站動態 | 廣告服務 | 歡迎投稿 | 友情鏈接 | 法律聲明
Copyright (c) 2008-2025 01ea.com.All rights reserved.
電子應用網 京ICP備12009123號-2 京公網安備110105003345號