利用可配置處理器來創(chuàng)建多標準多分辨率視頻引擎
現(xiàn)代的可配置處理器(例如Tensilica的Xtensa處理器)所配的軟件工具會自動修改編輯器工具,包括C/C++編輯器、匯編程序、調試器、模仿器和ISS(指令集仿真器)。此時,C編輯器會識別新的C內部指令sub。abs。acc并安排相應的指令,調試器則顯示sub。abs。acc功能模塊中使用的內部信號,同時,匯編程序會將之作為一個新的指令進行處理,而ISS則對之進行周期精確級仿真。
創(chuàng)建新的加載/存儲接口
要在如此之大的寄存器文件(和相應的SIMD功能單元)中讀出和寫入數(shù)據(jù),要求可以進行大規(guī)模的加載和存儲。還是在可配置處理器中,設計者可以自定義加載和存儲指令來直接在自定義寄存器文件中加載和存儲數(shù)據(jù)。接著,編輯器會自動生成對應于這個加載/存儲接口的加載/存儲指令,從而將數(shù)據(jù)從內存中加載到寄存器文件中。
圖6是處理器數(shù)據(jù)路徑的更新圖。如圖中所示,硬件生成工具自動生成大的自定義寄存器文件和加載/存儲接口以及所有相關的正向控制和旁路邏輯。特別需要注意的是這些工具還會生成硬件邏輯來將數(shù)據(jù)從基本寄存器文件轉移到用戶自定義的寄存器文件中。
圖6
加載或存儲時更新地址
創(chuàng)建指令來進行自定義加載或存儲時,最好能在加載或存儲的同時更新地址。這種新的加載/存儲指令可以同時進行:
加載A1←存儲器(地址1);地址1=地址1+索引更形
這種能夠同時進行數(shù)據(jù)加載/存儲和地址更新的指令使得處理器可以進行背靠背加載/存儲,而不需要一個中介指令來進行地址更新。
創(chuàng)建FIFO接口和通用IO端口
可配置處理器中另一個重要特征是可以定義FIFO接口和通用IO(GPIO)端口來直接從數(shù)據(jù)路徑中讀取和寫入數(shù)據(jù)。這些FIFO接口和GPIO端口的寬度可以是任意的(在這個例子中是1024b),在數(shù)字上沒有任何限制(例如,F(xiàn)IFO和GPIO端口的寬度都可以是1024)。這些寬的數(shù)據(jù)路徑直接接口可以提供多媒體和網(wǎng)絡應用所需的高數(shù)據(jù)吞吐量,來通過處理器內核讀取、處理和寫入數(shù)據(jù)。
圖7顯示的是帶有這樣的FIFO接口和GPIO端口的數(shù)據(jù)路徑。(有了這種方法)我們可以創(chuàng)建一個指令來發(fā)射兩個FIFO(只要確保這兩個不是空的),進行一次復雜的計算(例如循環(huán)乘加),并將結果傳到另一個輸出FIFO上(只要這個FIFO還沒有滿)。接著,再次由硬件生成工具生成適當?shù)慕涌谛盘?、控制邏輯和旁路邏輯,并生成已配置處理器所需的完整RTL,同時,軟件生成工具則自動生成一套完整的編輯器工具和模仿新指令的周期精確級ISS。
圖7:通過FIFO接口和GPIO端口進行的高速通信
加速復雜控制代碼
多媒體應用中控制代碼的數(shù)量和復雜性已經(jīng)增加到這樣的一個程度:它所消耗的計算時間和工作幾乎和代碼的數(shù)據(jù)密集型部分一樣多。H。26?Mainprofile解碼器中的一個關鍵部分-CABAC算法(內容自適應二進制算術編碼)就是這樣的一個例子:這種算法幾乎就是一棵控制流程判定樹,有各種各樣復雜的數(shù)據(jù)計算和比較。
由于CABAC計算過于復雜,很多傳統(tǒng)的處理器方案不得不放棄CABAC而選擇一個專用的RTL加速器。但是,CABAC可以在可配置處理器上作為一套指令擴展而產(chǎn)生作用,不僅在性能足以媲美RTL方案的性能,同時比起RTL加速器還有另外一個優(yōu)勢,那就是它的數(shù)據(jù)不需要進出處理器。這樣一來就顯示出處理器指令擴展的另外一個優(yōu)勢—由于特殊應用硬件位于處理器內部,你可以更好地分割硬件和軟件。
總結
現(xiàn)代的可配置及可擴展處理器是創(chuàng)建視頻和音頻引擎的完美選擇,迄今為止已經(jīng)為眾多的半導體ASIC供應商所廣泛采用。另外也有一些作為嵌入式SoC模塊的視頻和音頻IP產(chǎn)品。例如,Tensilica公司及其合作伙伴就能供應一套完整的視頻和音頻IP產(chǎn)品,其中包括XtensaHiFi2音頻引擎和一系列多標準多分辨率視頻方案,以及H。26?(基本類、主流類和高級類)、MPEG-4(SPandASP)、MPEG-2、VC-1/WM9及各種標準的編碼器和解碼器軟件(編解碼器)。這些視頻方案覆蓋了QCIF、CIF和SD,都以實現(xiàn)HD分辨率為目標,并以低功耗和小封裝為設計起點。
由于消費者的需求擴展了消費類設備中ASIC的技術規(guī)格要求,越來越多的應用將通過使用可配置處理器來執(zhí)行。借助于可配置處理器所帶來的自動設計流程,新的功能支持將會像軟件升級一樣簡單,而設計和驗證時間也將大大降低。
評論