利用可配置處理器來(lái)創(chuàng )建多標準多分辨率視頻引擎
如何在處理器中進(jìn)行SAD運算呢?有一個(gè)方法是編寫(xiě)一個(gè)能夠同時(shí)進(jìn)行“減-求絕對值-加”計算的指令。這可以將16x16宏模塊所需的計算次數從768減少到256。另外,由于一個(gè)執行這種綜合化簡(jiǎn)單運算的功能單元一般都能夠優(yōu)化成一個(gè)周期,意味著(zhù)計算周期也被減少到了256。
但是如何執行這個(gè)“減-求絕對值-加”指令呢?
在這個(gè)時(shí)候,就需要可配置處理器了???a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/配置">配置處理器是嵌入式的,設計者可以配置選項菜單中進(jìn)行選擇,并通過(guò)添加特殊應用指令、寄存器文件和接口來(lái)擴展處理器功能。
下面是目前的可配置處理器具備的一些可配置和可擴展性功能,傳統的固定式處理器是沒(méi)有這些功能的:
可配置性,有下面的一系列選項可供選擇:
·設計者想要或者不想要的指令,包括:16x16相乘或乘法累加、漏斗轉換、浮點(diǎn)指令等;
·零耗循環(huán)、5或7個(gè)步進(jìn)管線(xiàn)、本地數據加載/存儲單元的數量等各種功能;
·是否需要內存保護、內存轉換或者一個(gè)全內存管理單元(MMU);
·是否需要一個(gè)系統總線(xiàn)接口;
·系統總線(xiàn)和本地內存接口的寬度;
·本地內存的數量和大??;
·中斷的次數、種類(lèi)和等級
可擴展性,可自由添加下列由設計者自定義的組件:
·寄存器和寄存器文件;
·多周期、任意復雜功能單元;
·SIMD功能單元;
·將基本型處理器轉換成多發(fā)射處理器;
·定制能夠直接從數據路徑讀取和寫(xiě)入的接口,例如在處理器內核上的類(lèi)似于GPIO(通用IO)的端口或管腳,以及可以用來(lái)和其它邏輯或者處理器內核進(jìn)行連接的外置FIFO。
可配置性的優(yōu)點(diǎn)在于使你可以通過(guò)選擇你的應用所需的功能選項來(lái)構建一個(gè)規模適中的處理器,而可擴展性的優(yōu)點(diǎn)則是讓設計者可以通過(guò)創(chuàng )造能加快應用速度的指令、寄存器文件、功能單元和接口來(lái)定制處理器,使之完全與其視頻應用相匹配。但必須注意的是,只有當今先進(jìn)的可配置處理器才具能提供設計者自定義可擴展性。
創(chuàng )建能進(jìn)行多次運算的功能單元
這一步即是SAD運算和加速SAD運算的內容。
對于可配置處理器來(lái)說(shuō),要添加這一綜合運算功能簡(jiǎn)直是小菜一碟。它可以添加名為sub。abs。acc(減-求絕對值-加)的新指令來(lái)進(jìn)行“相減、求絕對值和相加”運算。如圖3所示。
圖3:進(jìn)行“相減、求絕對值和相加”運算的新指令
評論