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