新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > Blackfin嵌入式媒體處理器的體系結(jié)構(gòu)

Blackfin嵌入式媒體處理器的體系結(jié)構(gòu)

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

引言
針對高級媒體處理要求高速信號處理和控制功能并舉的應(yīng)用需求,美國模擬器件公司(簡稱adi)開發(fā)出了兼?zhèn)渖鲜龉δ艿膯涡酒琤lackfin系列媒體處理器,主要用于對多媒體應(yīng)用中很普遍的實時數(shù)據(jù)流和通常由mcu操縱的控制任務(wù)進行處理。blackfin處理器通過把信號處理模塊[例如雙mac和視頻運算器(alu)]和典型的mcu功能(例如操作模式和內(nèi)存管理單元)結(jié)合起來,提供了一種設(shè)計嵌入式多媒體系統(tǒng)的集成方法。本文主要介紹blackfin處理器能在一個復(fù)雜的多媒體系統(tǒng)中完成dsp和mcu兩種任務(wù)的體系結(jié)構(gòu)和功能特點。

本文引用地址:http://m.butianyuan.cn/article/20620.htm


全面的外圍設(shè)備

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

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

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

用于媒體處理的統(tǒng)一指令集

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

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

blackfin處理器的軟件開發(fā)模式使得同一架構(gòu)內(nèi)的高性能dsp功能可與典型的risc設(shè)備相匹配。系統(tǒng)層和產(chǎn)品層應(yīng)用代碼可用c/c++語言編寫,并且位于用戶選擇的標準實時操作系統(tǒng)的頂層。底層代碼,例如原始數(shù)據(jù)搬移和處理,可以用混合匯編代碼和c/c++代碼來編寫,需要時還可采用手工調(diào)整的匯編庫。

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


數(shù)據(jù)搬移

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


存儲器的組織和管理

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

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


資源的保護

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


動態(tài)電源管理

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


開發(fā)工具

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

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

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


結(jié)語

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



關(guān)鍵詞:

評論


相關(guān)推薦

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

關(guān)閉