新聞中心

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

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

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

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

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


全面的外圍設(shè)備

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

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

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

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

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

blackfin的vliw指令集包含了64 bit操作碼以支持dsp內(nèi)部環(huán)路的每時(shí)鐘周期多次運(yùn)算功能,但是因?yà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++語言編寫,并且位于用戶選擇的標(biāo)準(zhǔn)實(shí)時(shí)操作系統(tǒng)的頂層。底層代碼,例如原始數(shù)據(jù)搬移和處理,可以用混合匯編代碼和c/c++代碼來編寫,需要時(shí)還可采用手工調(diào)整的匯編庫。

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


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

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


存儲(chǔ)器的組織和管理

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

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


資源的保護(hù)

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


動(dòng)態(tài)電源管理

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


開發(fā)工具

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

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

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


結(jié)語

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



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

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

關(guān)閉