<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2010-11-24 來源:網(wǎng)絡 收藏

            
            4、自動化軟件開發(fā)工具套件支持
            
            可和可擴展的關鍵是不僅能夠自動產(chǎn)生預先經(jīng)過驗證的RTL代碼,用于設計人員定制(包括所有系統(tǒng)擴展功能),而且還能夠自動產(chǎn)生完整的軟件工具,包括一個與相匹配并經(jīng)過優(yōu)化的開發(fā)工具套件、一個時鐘周期的指令集仿真器以及系統(tǒng)模型。
            這種自動化意味著編譯器知道設計人員所添加的新指令、相關的寄存器以及寄存器文件。因此,編譯器能夠?qū)τ脩舳x的指令進行調(diào)度,并執(zhí)行寄存器分配操作。類似地,軟件開發(fā)人員在調(diào)試時除了本身的基本寄存器,還能夠了解設計人員定義的寄存器和寄存器文件;同時,軟件開發(fā)人員能夠利用指令集仿真器對設計人員定義的新指令進行仿真。與處理器相關的實時操作系統(tǒng)RTOS端口和系統(tǒng)模型也能夠自動產(chǎn)生。Tensilica的軟件工具能夠在一個小時內(nèi)自動產(chǎn)生上述軟件工具,這是對使用可處理器用戶的核心承諾,能夠執(zhí)行諸如SAD運算,而不必采用RTL那樣的實現(xiàn)方法。
            
            5、采用可處理器構建建立多操作功能部件
            
            
            將SAD這樣的融合操作加到一個可配置處理器中是一件麻煩的事情。一條稱為“sub.abs.ac”的新指令可以完成“減法-絕對值-累加”運算操作。這條新指令能夠?qū)D2中的操作變成圖3中的復操作。
            
            圖3 使用新指令計算“減法-絕對值-累加”操作
            
            將該指令添加到處理器中后,C編譯器能夠識別這條新的“sub.abs.ac”指令,并調(diào)度相關指令;調(diào)度器將顯示“sub.abs.ac”功能部件所使用的內(nèi)部信號;匯編器能夠處理這條新指令;指令集仿真器ISS能夠按照時鐘周期模式進行仿真。
             新的專用功能部件插入處理器后的數(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)。
            


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();