在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Xtensa可配置處理器技術(shù)的視頻加速引擎開發(fā)技術(shù)

            基于Xtensa可配置處理器技術(shù)的視頻加速引擎開發(fā)技術(shù)

            作者: 時間:2012-10-31 來源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/148291.htm

            4、自動化軟件開發(fā)工具套件支持

            和可擴(kuò)展的關(guān)鍵是不僅能夠自動產(chǎn)生預(yù)先經(jīng)過驗(yàn)證的RTL代碼,用于設(shè)計(jì)人員定制(包括所有系統(tǒng)擴(kuò)展功能),而且還能夠自動產(chǎn)生完整的軟件工具,包括一個與相匹配并經(jīng)過優(yōu)化的開發(fā)工具套件、一個時鐘周期的指令集仿真器以及系統(tǒng)模型。

            這種自動化意味著編譯器知道設(shè)計(jì)人員所添加的新指令、相關(guān)的寄存器以及寄存器文件。因此,編譯器能夠?qū)τ脩舳x的指令進(jìn)行調(diào)度,并執(zhí)行寄存器分配操作。類似地,軟件開發(fā)人員在調(diào)試時除了本身的基本寄存器,還能夠了解設(shè)計(jì)人員定義的寄存器和寄存器文件;同時,軟件開發(fā)人員能夠利用指令集仿真器對設(shè)計(jì)人員定義的新指令進(jìn)行仿真。與處理器相關(guān)的實(shí)時操作系統(tǒng)RTOS端口和系統(tǒng)模型也能夠自動產(chǎn)生。Tensilica的軟件工具能夠在一個小時內(nèi)自動產(chǎn)生上述軟件工具,這是對使用可處理器用戶的核心承諾,能夠執(zhí)行諸如SAD運(yùn)算,而不必采用RTL那樣的實(shí)現(xiàn)方法。

            5、采用可處理器構(gòu)建建立多操作功能部件

            將SAD這樣的融合操作加到一個可配置處理器中是一件麻煩的事情。一條稱為“sub.abs.ac”的新指令可以完成“減法-絕對值-累加”運(yùn)算操作。這條新指令能夠?qū)D2中的操作變成圖3中的復(fù)操作。

            圖3 使用新指令計(jì)算“減法-絕對值-累加”操作

            將該指令添加到處理器中后,C編譯器能夠識別這條新的“sub.abs.ac”指令,并調(diào)度相關(guān)指令;調(diào)度器將顯示“sub.abs.ac”功能部件所使用的內(nèi)部信號;匯編器能夠處理這條新指令;指令集仿真器ISS能夠按照時鐘周期模式進(jìn)行仿真。

            新的專用功能部件插入處理器后的數(shù)據(jù)通路簡圖如圖4所示。注意到,除了產(chǎn)生功能部件邏輯外,硬件生成工具還能夠自動插入前饋通路、控制邏輯以及旁路邏輯,以便將新的功能部件與數(shù)據(jù)通路中的其它邏輯互連。

            圖4 插入sub.abs.ac專用功能部件后的簡化數(shù)據(jù)通路示意圖

            包含新指令的C代碼描述的SAD算法如下:

            for (row = 0; row numrows; row++) { for (col = 0; col numcols; col++) {

            sub.abs.ac( accum, macroblk1[row][col], macroblk2[row][col]);

            } /* column loop */

            } /* row loop */

            正如前面提到的,對于一個16x16宏塊而言,增加新指令后程序主循環(huán)中的操作數(shù)減少到256個(即numrows = numcols = 16)。

            6、建立單指令流多數(shù)據(jù)流SIMD功能部件

            前面的SAD程序還可以進(jìn)一步優(yōu)化。程序中的內(nèi)循環(huán)將宏塊中16列做相同的運(yùn)算。這對于SIMD(單指令多數(shù)據(jù))功能部件而言是理想選擇,相應(yīng)的指令“sub.abs.ac16”針對16個像素同時完成sub.abs.ac操作,如圖5所示。

            圖5 對16個像素同時進(jìn)行sub.abs.ac指令的單指令流多數(shù)據(jù)流計(jì)算操作

            相應(yīng)的C語言過程名為sub.abs.ac16,利用此過程名重新改寫的SAD內(nèi)核C程序代碼如下:

            for (row = 0; row numrows; row++) {

            sub.abs.ac16( accum, macroblk1[row], macroblk2[row]);

            } /* row loop */

            通過改寫后的SAD內(nèi)核程序從768個算術(shù)操作減少為僅16個算術(shù)操作。

            然而,僅僅只有上述C程序代碼是不夠的。因?yàn)橹噶顂ub.abs.ac16需要從兩個宏塊中讀取128位的數(shù)據(jù),這需要兩個方面的支持:一個128位的寄存器文件和一個寬數(shù)據(jù)位的取數(shù)/存數(shù)接口,可配置處理器均支持這些功能。

            7、建立用戶定制的寄存器文件

            可配置處理器中,說明一個任意寬度的定制寄存器文件就像寫一行程序那么簡單。例如,稱為“myRegFile128”的過程語句建立一個寬度為128位的寄存器文件,長度為4,并建立一個相應(yīng)的新的C數(shù)據(jù)類型,“myRegFile128”能夠用于C/C++程序代碼說明變量。軟件工具也建立“MOVE”操作,用于將各種C數(shù)據(jù)類型轉(zhuǎn)換為新的定制數(shù)據(jù)類型。因此,采用sub.abs.ac16過程和新寄存器文件后的SAD內(nèi)核C程序代碼如下:

            for (row = 0; row numrows; row++) {

            myRegFile128 mblk1, mblk2;

            mblk1 = macroblk1[row];

            mblk2 = macroblk2[row];

            sub.abs.ac16( accum, mblk1, mblk2);

            } /* row loop */

            現(xiàn)在C/C++編譯器將會產(chǎn)生一條MOVE指令,將數(shù)據(jù)從一般的C數(shù)據(jù)類型移到定制的C數(shù)據(jù)類型“myRegFile128”,并為新寄存器文件分配寄存器。

            8、建立高數(shù)據(jù)帶寬的加載/存儲接口

            為了對高帶寬定制寄存器文件(以及相應(yīng)的單指令流多數(shù)據(jù)流SIMD功能部件)進(jìn)行數(shù)據(jù)存取,處理器應(yīng)當(dāng)具有高帶寬數(shù)據(jù)加載/存儲操作能力。對可配置處理器而言,設(shè)計(jì)人員能夠說明定制加載和存儲操作指令,直接完成對定制寄存器文件的高帶寬加載/存儲數(shù)據(jù)操作。然后,編譯器自動產(chǎn)生與高帶寬加載/存儲接口相應(yīng)的加載/存儲指令。

            經(jīng)過更新后的處理器數(shù)據(jù)通路如圖6所示。硬件生成工具產(chǎn)生高帶寬的定制寄存器文件、與數(shù)據(jù)存儲器相關(guān)的加載/存儲接口以及相應(yīng)的前饋邏輯、控制邏輯和旁通邏輯。硬件工具還產(chǎn)生相應(yīng)的硬件邏輯,用于將數(shù)據(jù)從基準(zhǔn)寄存器文件移到用戶定義的寄存器文件中。

            圖6 插入寄存器文件和高帶寬加載/存儲接口的數(shù)據(jù)通路

            9、更新地址的同時進(jìn)行加載

            或者存儲操作

            可配置處理器允許用戶建立另一個非常有用的功能擴(kuò)展,即建立一條指令,能夠同時完成地址更新操作和數(shù)據(jù)加載/存儲操作。建立的新的加載/存儲操作指令能夠并發(fā)完成如下功能: Load A1 ← Memory(Addr1);Addr1 = Addr1 + IndexUpdate

            該指令能夠完成“背靠背”的加載/存儲操作,而不需要專門指令對地址進(jìn)行更新。

            10、建立先進(jìn)先出(FIFO)接口

            和通用輸入/輸出端口

            視頻和音頻均為流媒體,需要對處理器進(jìn)行快速數(shù)據(jù)訪問。傳統(tǒng)的處理器受限于系統(tǒng)總線接口,以及數(shù)據(jù)操作執(zhí)行前對所以數(shù)據(jù)的加載與存儲訪問。

            為支持流媒體數(shù)據(jù)/輸出操作,可配置處理器允許設(shè)計(jì)人員定義先進(jìn)先出(FIFO)接口以及通用輸入/輸出(GPIO)端口,以便直接對數(shù)據(jù)通路進(jìn)行讀寫訪問。FIFO和GPIO端口可以是任意數(shù)據(jù)寬度(可達(dá)1024位),數(shù)量不限(每個可包含1024個FIFO和GPIO端口)。這些高帶寬接口可以直接與數(shù)據(jù)通路相連,提供很高的數(shù)據(jù)吞吐量,通過處理器內(nèi)核對數(shù)據(jù)進(jìn)行讀、處理和寫操作,這對于多媒體和網(wǎng)絡(luò)應(yīng)用而言是非常重要的。

            具有FIFO接口和GPIO端口的數(shù)據(jù)通路如圖7所示。處理器可以進(jìn)行如下操作:首先從兩個FIFO(在確保兩個先進(jìn)先出隊(duì)列均不空的情況下)中取出數(shù)據(jù),然后計(jì)算一個復(fù)操作(例如一個乘累加舍入操作),最后將計(jì)算結(jié)果壓入輸出FIFO(在確保先進(jìn)先出隊(duì)列不滿的情況下)。然后,硬件生成工具產(chǎn)生相應(yīng)的接口信號、控制邏輯和旁通邏輯等;為配置的處理器產(chǎn)生完整的RTL代碼。軟件生成工具產(chǎn)生一套完整的編譯器工具,以及時鐘周期精確的指令集仿真器ISS,用于對新指令進(jìn)行仿真。注意到,這種由設(shè)計(jì)人員定義FIFO接口和GPIO端口的能力是Xtensa可配置處理器所獨(dú)有的。

            圖7 采用定制先進(jìn)先出(FIFO)接口和通用輸入輸出(IO)端口的高速通信

            11、復(fù)雜的控制密集型代碼的執(zhí)行

            多媒體應(yīng)用中控制代碼的數(shù)量與復(fù)雜性顯著增長,使得程序中數(shù)據(jù)密集型操作與計(jì)算時間近似等價(jià)。例如,H.264主程序譯碼器中的關(guān)鍵部分為CABAC(上下文相關(guān)二進(jìn)制算術(shù)編碼)算法。該算法幾乎完全是具有數(shù)據(jù)計(jì)算和數(shù)據(jù)比較的控制流判決樹。

            由于計(jì)算的復(fù)雜性非常高,絕大多數(shù)傳統(tǒng)處理器均采用專用的RTL器來完成CABAC算法。然而,在可配置處理器上可以通過增加一組專用指令來更加有效地實(shí)現(xiàn)CABAC算法。這種實(shí)現(xiàn)方法的好處是避免了數(shù)據(jù)在處理器和RTL加速器之間不停地交換數(shù)據(jù)。采用可配置處理器的另一個好處是采用指令擴(kuò)展,由于專用硬件在處理器內(nèi)部,因此可以更好地進(jìn)行硬件和軟件界面劃分。

            12、小結(jié)

            現(xiàn)代可配置和可擴(kuò)展處理器是構(gòu)建定制視頻和音頻的理想選擇。Tensilica公司提供相關(guān)的視頻和音頻IP作為SOC模塊,包括HiFi 2音頻、鉆石系列標(biāo)準(zhǔn)的38xVDO(視頻)多標(biāo)準(zhǔn)和多分辨率視頻方法。與之匹配的軟件編解碼器是非常重要的。HiFi 2音頻引擎與相關(guān)的軟件一起可完成絕大部分流行的音頻編解碼器,例如MP3、AAC、WMA等。類似地,鉆石 38xVDO 視頻加速引擎與相應(yīng)的編碼器和譯碼器軟件可以實(shí)現(xiàn)H.264 (包括Baseline、Main和profiles)、MPEG-4 (SP 和 ASP)、 MPEG-2、VC-1/WM9及其它標(biāo)準(zhǔn)。這些視頻涵蓋了從QCIF 到CIF以及SD各種分辨率,功耗低,面積小。


            上一頁 1 2 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉