新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > Blackfin嵌入式媒體處理器的體系結構

        Blackfin嵌入式媒體處理器的體系結構

        ——
        作者: 時間:2007-01-26 來源:《世界電子元器件》 收藏

        引言
        針對高級媒體處理要求高速信號處理和控制功能并舉的應用需求,美國模擬器件公司(簡稱adi)開發出了兼備上述功能的單芯片blackfin系列媒體處理器,主要用于對多媒體應用中很普遍的實時數據流和通常由mcu操縱的控制任務進行處理。blackfin處理器通過把信號處理模塊[例如雙mac和視頻運算器(alu)]和典型的mcu功能(例如操作模式和內存管理單元)結合起來,提供了一種設計嵌入式多媒體系統的集成方法。本文主要介紹blackfin處理器能在一個復雜的多媒體系統中完成dsp和mcu兩種任務的體系結構和功能特點。

        本文引用地址:http://www.104case.com/article/20620.htm


        全面的外圍設備

        因為mcu本來就是系統控制器,所以它們通常會提供多種多樣的用于連接其他子系統的外圍設備。這些外圍設備包括低速的串行端口[例如串行外圍接口(spi)和通用異步收發器(uart)]、可編程通信接口(pci)、通用串行總線(usb)以及一些外圍設備。此外,為了進行事件控制,它們通常還包含可以作為事件捕獲設備或者脈寬調制(pwm)輸出節點的可編程定時器、實時時鐘、監視定時器以及大量有用的可編程輸入輸出(i/o)標志。

        blackfin媒體處理器系列不僅包含這些mcu類型的外圍設備,還包含用于發送和接收多媒體信息的高速接口(見圖1)。例如,其中異步串行端口可連接到高分辨率的音頻編解碼器和高性能電信接口,而并行外圍接口(ppi)可連接到視頻編解碼器和數據轉換器。

        與大多數mcu一樣,blackfin處理器有片內硬件支持用于軟件異常、硬件斷點、性能計數器和執行跟蹤,而且它還支持通過一個jtag口對目標硬件的完整控制。

        用于媒體處理的統一指令集

        dsp應用強調盡可能用最少的時鐘周期執行盡可能多的算術計算(如mac操作)。為了達到這個目的,它們經常采用vliw(超長指令字)指令,因而為了提高計算效率而犧牲代碼密度。另一方面,mcu主要執行的控制功能包含許多條件操作,在程序流程中頻繁跳轉。這些程序一般都采用c或c++語言編寫,并且常常使用實時操作系統(rtos)。因為可能需要大量的控制功能,所以代碼密度至關重要,從而使可變長度指令集成為一個突出的特點。

        blackfin的vliw指令集包含了64 bit操作碼以支持dsp內部環路的每時鐘周期多次運算功能,但是因為它經過了優化,以便使16 bit操作碼成為使用最頻繁的指令。因此,編譯后的blackfin代碼密度可與那些最優的mcu的代碼密度相媲美。

        blackfin處理器的軟件開發模式使得同一架構內的高性能dsp功能可與典型的risc設備相匹配。系統層和產品層應用代碼可用c/c++語言編寫,并且位于用戶選擇的標準實時操作系統的頂層。底層代碼,例如原始數據搬移和處理,可以用混合匯編代碼和c/c++代碼來編寫,需要時還可采用手工調整的匯編庫。

        應該認識到blackfin處理器既不是帶有增強指令集的dsp,也不是擴展了dsp功能的mcu,這一點很重要。該處理器既是一種高性能的媒體處理器,也是支持編譯器的處理器,兩類開發工程師都能認可這種處理器。因為blackfin處理器在一個統一平臺上利用一個工具鏈開發代碼,所以開發工程師只要學會一個指令集就能維護在同一個操作系統上運行的一個代碼集。這種協同作用實際上創造了一個新的“媒體指令集計算”領域,可大大縮短開發時間。


        數據搬移

        dsp是數據量很大的應用,所以讓它們自己參與多的數據總線和dma引擎以便降低數據搬移對核心處理器的負擔。另一方面,mcu通常不支持足夠快的存儲器數據傳輸速率以適應流媒體數據。 嵌入式媒體處理器必須有全面的dma能力以便將數據塊移進或移出芯片。因為在芯片上集成足夠的存儲器用于存儲多個解壓縮視頻幀很不切實際,所以必須以一種高度集成的方法采用dma來管理流動數據,以便有效地完成視頻處理。考慮到媒體處理應用需要大量的數據搬移,所以數據搬移不允許引起處理器中斷,因為中斷會影響實時性能。另外,因為進行數據搬移時經過核心處理器會降低效率,所以該dma引擎必須有自主權并且有足夠的能力以便降低處理器內核的負擔。實質上,該dma控制器允許處理器內核把數據搬移與系統控制過程分離開。 在典型的應用中,原始數據首先從視頻端口或串行端口等外圍設備直接經過dma進入媒體處理器;然后,在媒體數據處理期間,中間數據直接經過dma送到外部存儲器或者從外部存儲器獲??;最后,處理過的數據直接經過dma送回到外圍設備或系統存儲器。blackfin處理器除了提供具有不同優先級的高速dma通道外,還具有“二維”dma功能(見圖2),使其能以很低的軟件開銷就可搬移任意矩形區域內的數據(例如,一幅圖像中的一個像素塊)。


        存儲器的組織和管理

        blackfin體系結構包含一個多級存儲器層次,用于數據存取和指令讀?。ㄒ妶D3)。這些結構適合于支持硬件實時確定性操作和非實時大代碼尺寸的有效應用。通過把blackfin處理器先進的數據搬移能力和它的多級數據存儲器層次結合到一起,可以高效地處理面向流的數據和面向控制的數據。l2存儲器和l3存儲器都是線性的(包括指令和數據)而且該處理器的可設定地址空間很大,允許處理器訪問大程序和數據集。

        這種數據存儲器層次允許指定一些快速的系統存儲器作為高速緩存或者sram。這就使程序員能靈活地調整并權衡性能和數據集大小之間的關系。獨立的4 kb “高速暫存”用于程序運行時的快速堆棧空間。數據存儲器中的高速緩存結構分成兩組,系統開發工程師可以把二組都當作高速緩存,也可以把其中一組當作高速緩存而另外一組當作sram,或者二組都當作sram。因為有了指令高速緩存,獨立的數據緩存可以在裝滿數據后鎖定。
        blackfin處理器的存儲器管理單元(mmu)允許開發工程師可以在訪問這些資源受到限制的環境中保護選定的存儲器區域并管理系統資源(高速緩存和其他存儲器子系統)。


        資源的保護

        因為mcu要控制一個完整的復雜系統,所以它們必須有一組完整的安全特性,例如具有定義獨立的、可自由存取的應用開發代碼區,同時又能夠保持不同的代碼區沒有受覆蓋危險的存儲器管理能力。blackfin處理器以受保護(“用戶”)和未受保護(“管理員”)兩種操作模式支持上述操作系統的安全功能。這些保護功能防止了用戶無意或有意地訪問或破壞系統的共享部分。像許多mcu一樣,blackfin處理器也允許異步中斷和同步異常。這兩類事件都會引起流水線指令掛起正在執行的任務以便處理中斷事件。blackfin處理器的可映射中斷優先級是一項在mcu中很普遍的功能,但在dsp中不常見。該芯片的異常處理能力保護了系統免遭錯誤或非法的程序侵害。


        動態電源管理

        為了滿足嵌入式媒體處理器對計算復雜度和性能的要求,需要很快的時鐘頻率,功耗將是設計中要考慮的一個重要因素。blackfin處理器的動態電源管理能力可以針對具體的任務來優化性能和功耗的關系,它支持一種多層次的電源管理方法,可以根據系統需求調整性能。如圖4所示,其內核電壓可隨著頻率的變化而一致地變化,所以當以低頻率和低電壓運行某一代碼段時可以降低功耗。


        開發工具

        為了支持媒體處理應用的開發,軟件開發環境必須同時能支持兩類開發—密集型環路的媒體和信號處理,以及基于高速緩存的控制處理。crosscore開發工具套件支持blackfin系統開發。這些開發工具包括評估系統、在線仿真器以及一個visualdsp++集成開發環境,具有支持兩類系統開發的特點。

        為了調整位于低速l2或l3存儲器中的控制代碼和數據,系統開發工程師必須了解和觀察高速緩存在系統中是如何工作的。精確到時鐘周期的仿真程序收集了與執行序列和高速緩存操作有關的高速緩存統計數據。例如總的高速緩存存取次數、存取成功次數以及存取失敗次數等統計數據會被制成表格并直觀地顯示出來(見圖5)。此信息會在應用狀況統計觀察窗和動態高速緩存內容觀察窗中顯示出來。利用這種高速緩存觀察窗,開發工程師可以確保系統按照所有要求的配置正確地運行。

        因為信號處理算法的開發與提高內部環路效率的關系十分密切,所以visualdsp++包含了一個指令流水線觀察窗(見圖6),它直觀地顯示出經過定序器的流水線的指令流。阻塞[s]、冒泡[b]、多周期指令[m]、取消指令[k]以及其他的流水線事件都有圖形化顯示。每一個經過該流水線的具體事件的直觀顯示,允許系統開發工程師能更好地了解一個算法中在何處以及為什么引起等待和阻塞,以便優化算法,減小無效的流水線指令數量。


        結語

        在多媒體應用中應用blackfin處理器系列產品,較之雙處理器解決方案具有成本低、復雜性小、產品上市時間短等明顯的優勢。特別是blackfin處理器能以出色的性價比實現音頻、視頻、圖像等媒體處理功能。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 云霄县| 屏山县| 隆尧县| 贵州省| 渭南市| 东明县| 通化县| 延津县| 广灵县| 监利县| 奇台县| 阜平县| 二连浩特市| 四子王旗| 铁力市| 石阡县| 库车县| 武安市| 搜索| 商洛市| 什邡市| 凤庆县| 崇州市| 滁州市| 盱眙县| 壶关县| 金阳县| 吉安市| 迁西县| 北碚区| 苏尼特左旗| 方正县| 泸西县| 乡宁县| 蕲春县| 临沧市| 布尔津县| 临安市| 西华县| 德昌县| 东城区|