《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于DSP/BIOS 的TI DSP 應用程序框架設計
基于DSP/BIOS 的TI DSP 應用程序框架設計
維庫
摘要: 本文介紹了基于DSP/BIOS實時內核的TIDSP應用程序參考框架RF5。另外,面對目前越來越多的多處理器系統設計以及典型的GPP-DSP架構,本文提出了一種改進的DSP應用程序框架ERF5以最大化地支持這種架構。E
Abstract:
Key words :

  摘要:本文介紹了基于title="DSP">DSP/BIOS 實時內核的TI DSP 應用程序參考框架RF5。另外,面對目前越來越多的多處理器系統設計以及典型的GPP-DSP 架構,本文提出了一種改進的DSP應用程序框架ERF5 以最大化地支持這種架構。ERF5 主要從GPP-DSP 有效通信、任務線程的高效執行與調度以及任務線程顆粒度的合理化三個方面對RF5 進行了改進,并已成功應用于實際項目。

  1 引言

  隨著通信與信息技術的發展以及數字產品的普及,DSP 被越來越多地應用于各種數字系統中。作為業界領先的數字信號處理器供應商的美國德州儀器(TI)公司于上世紀90 年代開發了能在其DSP 產品上運行的實時內核DSP/BIOS,并提出一系列DSP 軟件參考框架(Reference Framework, RF)來幫助DSP 應用開發人員加速軟件的開發進程。然而,國內針對DSP 應用程序框架設計的研究還并不多且研究工作大多圍繞在如何使用現有的TI 參考框架上,鮮有對其使用局限性的討論與改進方案。

  本文首先簡單介紹了由 TI 所提出的DSP 應用程序參考設計框架RF5 及其適用領域,然后在它的基礎上針對目前使用越來越多的多處理器系統提出了一個對RF5 改進后的DSP 應用程序框架ERF5(Enhanced Referenced Framework Level 5),并在其中定義了一套DSP 與系統中作為核心控制單元的外部通用處理器GPP 進行通信的良好機制,從而能夠實現DSP的任務調度與執行過程受控于GPP,使DSP 的運行狀態能夠高效地切換于多套功能獨立的數字信號處理算法。

  2 RF5 應用程序框架

  TI 在eXpressDSP 概念中提出了一系列DSP 應用程序參考框架以滿足不同應用場合的需要,其中包括RF1(Reference Framework Level 1)、RF3(Reference Framework Level 3)和RF5[1][2]。與RF1 和RF3 相比,RF5 是功能最強大的DSP 應用程序參考框架,它適用于多通道、多算法的高密集型DSP 應用系統,RF5 同時支持了靜態和動態DSP/BIOS 模塊對象的創建,支持1-100 個數據處理通道和XDAIS 算法,支持由DSP/BIOS 任務對象TSK實現的線程調度機制,支持線程阻塞,因此被廣泛應用于音視頻信號處理等復雜數字信號處理系統當中。圖1 給出了基于RF5 的DSP 應用程序框架。

  圖1 RF5 應用程序框架

  TI 為RF5 應用程序參考框架定義了4 種數據處理基本元素,分別是任務(Task)、通道(Channel)、算法單元(Cell)和XDAIS 算法。RF5 框架的最高層次是任務,任務可以由單個或多個通道構成,它通過與設備驅動程序或其它任務通信來在較高的層次控制數據的流向,每個任務體都可以歸結為“獲取數據-處理各通道中的信號-發送結果數據”的迭代過程。每個通道元素由一系列順序執行的信號處理算法單元構成,算法單元是一個XDAIS 算法的封裝,其作用是為XDAIS 算法與外部應用程序提供一套標準的接口,它必須實現ICELL接口模塊。

  RF5 除了定義以上4 種數據處理元素之外,還提出了數據通信元素的概念以保證能在任務與DSP 外設之間、任務與任務之間和算法單元之間進行高效數據通信。基于DSP/BIOS開發的DSP 應用程序中的數據通信方式可分為任務級數據通信和算法單元級數據通信。對于任務級數據通信方式,在RF5 中采用SIO(STream IO)對象和SCOM(SynchronizedCommunication)消息來實現。對于算法單元級數據通信,RF5 使用ICC(Inter-CellCommunication)對象和ICC 對象列表來實現。

  3 改進的DSP 應用程序框架ERF5

  隨著嵌入式系統復雜度的不斷提高,又限于DSP 不適合進行復雜系統的流程控制,所以近年來在系統設計中往往更多地讓DSP 扮演著協處理器的角色,將其從繁重復雜的系統控制任務中解放出來,而整個系統的流程控制則交由一個通用處理器GPP 來完成,這使得DSP 和GPP 能夠優勢互補。然而RF5 在多機通信方面存在很大缺陷,它不適用于多處理器系統,尤其是DSP 作為多處理器系統中從設備的應用環境。另外,RF5 所實現的是單一功能的多任務系統,其多任務特性僅僅表現在將一個功能單一的任務拆分成輸入-處理-輸出三個分任務而已,并沒有實現真正的多功能多任務系統,即一個任務就是一個獨立的信號處理功能。

  基于上述兩個方面的分析,我們完全有必要改進 RF5 以滿足基于多處理器的復雜信號處理系統的要求。本文所提出的ERF5 的系統框圖如圖2 所示,任務1、任務2、任務3 是系統中定義的三個任務,它們以同等的優先級被DSP/BIOS 任務調度器輪流調度。每個任務皆包含了輸入預處理、核心信號處理以及輸出后處理三個模塊,構成功能完整且獨立的信號處理任務,每個任務由單個或多個數據處理通道(Channel)組成,而每個通道又由一系列算法單元(Cell)構成。多處理器系統中的GPP 通過DSP 運行控制寄存器DSP_CNTL 來控制DSP 的任務執行過程,而DSP 作為響應會將其運行狀態反應在DSP 運行狀態寄存器DSP_STAT 中。總的來說,ERF5 從以下三個方面對RF5 進行了改進:

  定義并實現了 DSP 與GPP 之間進行通信的有效方式;給出了當 DSP 需要實現多套信號處理功能并且某一套信號處理任務的執行完全受控于GPP 時的任務實現框架;對 RF5 中不合理的任務拆分進行了合并,減輕了由于DSP/BIOS 任務調度對系統性能的影響。

 

  圖 2 ERF5 應用程序框架

  3.1 主從通信方式

  我們在DSP 的存儲空間中定義了兩個寄存器:DSP 運行控制寄存器(DSP_CNTL)和DSP 運行狀態寄存器(DSP_STAT)。在DSP_CNTL 中可以定義一系列控制字段用來表示外部主機對DSP 的各種控制操作,而在DSP_STAT 中可以定義一些與DSP_CNTL 相對應的描述DSP 當前運行狀態的字段信息。GPP 通過合理地設置DSP_CNTL 以命令DSP 執行相應的操作,而DSP 在響應了CPU 的命令后會設置好DSP_STAT 以告知CPU 目前DSP 的運行情況。

  另外,為了便于 DSP 與主機進行數據交換,ERF5 在DSP 的存儲空間中開辟了兩塊專用于在DSP 與GPP 之間進行數據交換的緩沖區,并在DSP 運行狀態寄存器DSP_STAT 中定義一個緩沖區標志位PPFLG 以告知主機當前它所能訪問的乒乓緩沖區是“乒”或是“乓”,使得主機和DSP 之間的數據交互能夠彼此相對獨立地進行。

  3.2 任務實現模型

  在明確了主機與DSP 的通信方式以后,下面需要解決的就是如何在應用程序框架中給出合理的任務實現模型使它既能支持主機對DSP 的有效控制又能盡可能地減小DSP/BIOS的任務調度開銷。這里以我們的實際項目為例來闡述任務的實現模型。在我們的H.264 混合編解碼系統中,DM642 需要運行三個相互獨立的任務:視頻編碼任務、視頻解碼任務和視頻直通任務,在任意時刻,這三個任務線程的核心處理過程運行與否完全受GPP 控制。首先,出于對系統性能的考慮,我們都以靜態配置的方式在DSP/BIOS 中定義這3 個任務,這樣在系統運行時不需要花費由于任務動態創建所帶來的不可避免的性能開銷。顯然這3 個任務應該具有同等優先級,否則,由于DSP/BIOS 實時內核的搶占性特征將使得某些高優先級的任務始終搶占那些低優先級任務的執行權即使GPP 在某些時刻并沒有啟動那些高優先級的任務。此外,由于DSP/BIOS 周期性地調度系統中所有處于就緒狀態下的任務,所以必須使每個任務中判斷其主體處理過程是否執行的邏輯和任務切換邏輯盡可能短小,因為這段代碼在系統執行時將被頻繁地調用。另外需要注意的是應該使用TSK_sleep(…)函數來實現任務切換邏輯以使當前沒有被GPP 命令執行的任務被阻塞一段時間(該時間間隔應該至少是系統中各個周期性任務的最大執行周期),否則DSP/BIOS 任務調度器會頻繁調度該任務以至于影響到其它任務的正常執行。下面以視頻直通任務為例給出其任務執行流程圖如圖3所示。

  圖3 視頻直通任務的執行流程圖

  3.3 任務拆分與合并

  DSP/BIOS 實時內核能保證運行在它之上的所有任務在適當的時刻被正確地調度。在通常情況下,系統中運行的任務越多,花費在DSP/BIOS 任務調度上的時間也就越多,單任務系統花費最少的任務調度時間,因此在一個應用框架中應該合理地規定任務的規模,過細或過粗地劃分任務都將為系統性能帶來負面影響。在ERF5 中,每個功能獨立的信號處理模塊分別定義成一個任務線程,其中包含了與當前信號處理功能相對應的數據輸入預處理和數據輸出后處理部分,在一個獨立的任務線程中將可以使用EDMA 等外設模塊實現的處理算法與必須由CPU 參與運算的算法獨立開來,并在它們之間引入雙緩沖以模擬流水線機理,這樣就把原先的任務線程之間的通信變換為在單個任務線程內的算法單元之間的通信,使得任務線程之間的通信和數據交換由于線程的獨立性而被最小化,從而有效避免了由于線程通信造成系統死鎖情況的發生。

  4 性能分析

  本節以 CPU 負載為指標在本文所提出的應用程序框架和RF5 之間進行性能比較與分析。為了使實驗結果更具有說服力,我們使用TMS320DM642 *估板中的MPEG2 編解碼例程作為RF5 框架的一個實現范例,另外,我們又采用本文所提出的ERF5 實現了MPEG2 編解碼系統,兩者使用同樣的符合XDAIS 算法標準的MPEG2 編解碼算法庫。這里我們將CPU負載定義為:

  對于一個視頻信號處理系統來說,一般要求系統能在 1 秒內處理25-30 幀圖像數據,因此不妨將其作為上述視頻編解碼系統的實時性指標,即系統對一幀圖像進行編碼或解碼的最大周期為33-40 毫秒。根據以上計算公式作出RF5 和改進的應用程序框架的CPU 負載圖如圖4 所示。從圖中可以看出ERF5 的CPU 占用率與RF5 基本相近,甚至要稍好于RF5,若將它應用在視頻信號處理領域,其CPU 占用率只有7.92%-9.50%,完全滿足實際應用的需要。

  圖 4 MPEG2 編解碼系統中ERF5 與RF5 的CPU 負載比較圖

  5 總結

  本文簡單介紹了 TI DSP 參考框架RF5,并提出ERF5 應用程序框架,它解決了RF5 不能被有效地應用于以DSP 作為協處理器的多處理器復雜數字信號處理系統當中的問題,且CPU 占用率與RF5 相當。從我們的實際項目經驗證明,RF5 適用于以TI DSP 作為主控和主處理單元的單處理器信號處理系統,并能得到良好的性能;ERF5 能對多處理器系統給予最大化的支持,并已成功應用于一個復雜的H.264 混合編解碼系統當中。


 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩国产丝袜另类| 国产在线不卡| 亚洲欧洲在线观看| 香蕉久久夜色精品国产使用方法| 国产情人节一区| 亚洲日本成人| 亚洲精品欧美在线| 欧美一区二区三区久久精品 | 亚洲美女av在线播放| 国产精品久久久久影院亚瑟 | 国产精品99久久久久久久vr| 欧美 日韩 国产在线| 欧美一区二区大片| 国产精品福利久久久| 亚洲精品久久久久中文字幕欢迎你 | 美女爽到呻吟久久久久| 亚洲午夜激情网站| 99精品国产在热久久婷婷| 亚洲国产精品精华液2区45| 欧美成人免费视频| 亚洲精品视频啊美女在线直播| 久热国产精品| 亚洲日本成人| 亚洲深夜福利视频| 国产精品家教| 久久久精品久久久久| 亚洲国产精品视频一区| 日韩图片一区| 国产亚洲在线观看| 欧美精品麻豆| 久久精品视频一| 亚洲欧洲日本专区| 亚洲一级二级| 伊人精品成人久久综合软件| 欧美激情乱人伦| 欧美一级成年大片在线观看| 亚洲国产精品一区二区www| 在线亚洲欧美视频| 影院欧美亚洲| 欧美国产日韩一区二区三区| 亚洲在线视频观看| 亚洲二区在线视频| 亚洲免费视频一区二区| 亚洲黄色成人网| 国产精品日韩| 欧美日韩免费看| 免费不卡在线观看| 欧美一区二区三区精品 | 亚洲高清一区二区三区| 欧美色精品天天在线观看视频| 久久久爽爽爽美女图片| 国内精品伊人久久久久av影院| 久久这里有精品15一区二区三区| 一区二区三区欧美视频| 亚洲高清免费视频| 亚洲欧美在线免费观看| 一区二区三区精品久久久| 国产精品成人一区| 久久久五月天| 亚洲图片欧美日产| 欧美在线高清| 一区二区三区四区五区视频| 精品成人一区二区三区| 国产精品女人久久久久久| 欧美日韩精品免费观看视频| 久久免费观看视频| 午夜欧美大片免费观看 | 亚洲永久免费av| 日韩天堂在线观看| 91久久精品日日躁夜夜躁欧美| 国产亚洲精品资源在线26u| 国产精品v日韩精品| 欧美精品综合| 欧美一区激情| 欧美一区二区日韩一区二区| 亚洲午夜激情网站| 一本久道综合久久精品| 亚洲全部视频| 日韩午夜电影在线观看| 亚洲欧洲三级电影| 亚洲激情偷拍| 亚洲精品在线观| 一区二区高清视频在线观看| 亚洲免费成人| 在线一区亚洲| 亚洲午夜视频在线| 亚洲欧美在线另类| 欧美在线播放视频| 欧美一区二区三区四区在线观看地址 | 夜夜爽夜夜爽精品视频| 亚洲精品综合在线| 亚洲性视频网址| 亚洲国产欧美一区二区三区久久| 在线不卡中文字幕| 久久久免费观看视频| 午夜精品一区二区三区四区| 中文av字幕一区| 午夜精品免费在线| 欧美中文字幕第一页| 久久久青草婷婷精品综合日韩 | 亚洲国产另类久久精品| 日韩一级在线| 午夜精品久久久久99热蜜桃导演| 欧美中文字幕久久| 一本久久青青| 欧美一区二区三区在线播放| 久久久久国产成人精品亚洲午夜| 免费久久99精品国产自| 欧美日韩和欧美的一区二区| 国产精品久久久久久久久| 黄色日韩在线| 亚洲一级免费视频| 亚洲美女在线看| 欧美在线视频免费| 欧美激情一区二区三区在线视频观看 | 亚洲午夜久久久久久久久电影院| 欧美在线视频导航| 亚洲午夜激情| 麻豆精品在线观看| 国产精品欧美激情| 亚洲精品一二三| 亚洲激情二区| 久久九九免费| 国产网站欧美日韩免费精品在线观看 | 亚洲国产成人精品女人久久久| 亚洲一级电影| 亚洲婷婷综合色高清在线| 欧美成人亚洲成人| 揄拍成人国产精品视频| 羞羞视频在线观看欧美| 午夜精品久久久久久久久久久久久 | 亚洲欧美激情视频在线观看一区二区三区| 免费永久网站黄欧美| 国产日韩欧美三级| 亚洲一区二区三| 亚洲自拍啪啪| 国产精品播放| 亚洲午夜精品一区二区三区他趣| 夜夜嗨av一区二区三区| 欧美成人一区二区在线| 亚洲高清在线视频| 亚洲欧洲综合另类在线| 欧美精品一区二区三区高清aⅴ| 亚洲国产高潮在线观看| 亚洲福利视频一区二区| 久久综合福利| 亚洲日本成人网| 亚洲天堂成人在线视频| 欧美日一区二区在线观看 | 欧美久久久久免费| 亚洲图片在线观看| 欧美一区二区三区在线看| 国产亚洲欧美一区二区三区| 欧美影院在线| 欧美国产日韩一二三区| 亚洲视频视频在线| 久久综合婷婷| 一本久久综合亚洲鲁鲁| 亚洲国产精品一区二区尤物区| 亚洲高清一区二| 欧美日韩国产欧美日美国产精品| 在线亚洲+欧美+日本专区| 久久高清一区| 欧美日韩成人综合在线一区二区| 日韩亚洲一区在线播放| 欧美在线精品一区| 亚洲日本电影| 久久久天天操| 一区二区冒白浆视频| 玖玖精品视频| 亚洲女女做受ⅹxx高潮| 欧美高清在线视频| 欧美一区网站| 国产精品狼人久久影院观看方式| 久久激情一区| 国产精品一区免费视频| 99热这里只有精品8| 国外精品视频| 欧美亚洲综合久久| 中文在线资源观看网站视频免费不卡| 久久伊人亚洲| 香蕉乱码成人久久天堂爱免费 | 亚洲人成人一区二区三区| 国产视频在线观看一区| 亚洲午夜国产一区99re久久| 亚洲国产精品久久久久| 久久久久欧美| 欧美亚洲一区| 国产日韩欧美一区在线| 午夜激情久久久| 亚洲视频专区在线| 欧美日韩亚洲天堂| 99在线精品观看| 日韩一区二区久久| 欧美揉bbbbb揉bbbbb| 亚洲图片欧美日产| 亚洲一区免费网站| 国产亚洲精品激情久久| 久久精品国产91精品亚洲| 亚洲欧美日韩在线观看a三区|