針對嵌入式多媒體應(yīng)用選擇一個(gè)處理器是一項(xiàng)復(fù)雜的工作,涉及到對處理器內(nèi)核架構(gòu)以及外設(shè)的全面分析,需要完全掌握視頻、音頻數(shù)據(jù)在系統(tǒng)中傳輸方式,以及正確評價(jià)在一個(gè)可接受的功耗水平下可達(dá)到什么樣的處理能力。
到最近為止,解決這個(gè)問題的標(biāo)準(zhǔn)方法是將其劃分成由微控制器(MCU)芯片處理的"控制域",控制器是將微型計(jì)算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。微控制器誕生于20世紀(jì)70年代中期,經(jīng)過20多年的發(fā)展,其成本越來越低,而性能越來越強(qiáng)大,這使其應(yīng)用已經(jīng)無處不在,遍及各個(gè)領(lǐng)域。例如電機(jī)控制、條碼閱讀器/掃描器、消費(fèi)類電子、游戲設(shè)備、電話、HVAC、樓宇安全與門禁控制、工業(yè)控制與自動化和白色家電(洗衣機(jī)、微波爐)等。以及由數(shù)字信號處理器(DSP)處理的"計(jì)算域".RISC MCU和DSP傳統(tǒng)上適合于媒體豐富的嵌入式應(yīng)用,數(shù)字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來,隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。數(shù)字信號處理是一種通過使用數(shù)學(xué)技巧執(zhí)行轉(zhuǎn)換或提取信息,來處理現(xiàn)實(shí)信號的方法,這些信號由數(shù)字序列表示。在過去的二十多年時(shí)間里,數(shù)字信號處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。然而,它們的用途不可互相替代,更確切地說,它們要協(xié)調(diào)一致地工作。MCU架構(gòu)非常適合于高效率的異步控制流,而DSP架構(gòu)的"生存之道"是同步恒定速度數(shù)據(jù)流,
因?yàn)樵诋?dāng)今的媒體處理應(yīng)用中,兩種功能集都是必需的,工程師通常使用獨(dú)立的MCU和DSP芯片。這種組合為廣泛的多媒體應(yīng)用提供了很好的處理引擎,但是增加了多媒體處理設(shè)計(jì)、多種開發(fā)工具組以及有待學(xué)習(xí)和調(diào)試的不同種類架構(gòu)的復(fù)雜性。
為減輕這些問題,芯片廠商嘗試過不同的解決方案。不同的MCU廠商都集成了某些信號處理功能,例如指令集擴(kuò)展以及乘法累加(MAC)單元,但是這種努力通常缺乏針對先進(jìn)信號處理應(yīng)用所要求的基本架構(gòu)基礎(chǔ)。類似地,DSP生產(chǎn)商已經(jīng)包含了有限的MCU功能,但是不可避免地在系統(tǒng)控制方面有所妥協(xié)。
最近,出現(xiàn)了另外的選擇--單內(nèi)核以及雙內(nèi)核的嵌入式媒體處理器(EMP)架構(gòu),這種架構(gòu)在一個(gè)統(tǒng)一的設(shè)計(jì)中提供了MCU和DSP功能,MCU(Micro Control Unit)中文名稱為微控制單元,又稱單片微型計(jì)算機(jī)(Single Chip Microcomputer)或者單片機(jī),是指隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計(jì)算機(jī)的CPU、RAM、ROM、定時(shí)計(jì)數(shù)器和多種I/O接口集成在一片芯片上,形成芯片級的計(jì)算機(jī),為不同的應(yīng)用場合做不同組合控制 常見存儲器件。MCU按其存儲器類型可分為無片內(nèi)ROM型和帶片內(nèi)ROM型兩種。對于無片內(nèi)ROM型的芯片,必須外接EPROM才能應(yīng)用(典型芯片為8031)。帶片內(nèi)ROM型的芯片又分為片內(nèi)EPROM型(典型芯片為87C51)、MASK片內(nèi)掩模ROM型(典型芯片為8051)、片內(nèi)FLASH型(典型芯片為89C51)等類型允許在控制和信號處理需求方面進(jìn)行靈活地劃分。
單內(nèi)核EMP架構(gòu)評估
圖1顯示了一個(gè)單內(nèi)核EMP架構(gòu),這個(gè)架構(gòu)融合了一個(gè)32位RISC指令集、雙16位MAC單元和一個(gè)8位視頻處理引擎。其可變長指令集擴(kuò)展到DSP內(nèi)部環(huán)路所使用的64位操作碼,但是經(jīng)過了最優(yōu)化以便16位的操作碼代表最常用的指令。RISC(reduced instruction set computer,精簡指令集計(jì)算機(jī))是一種執(zhí)行較少類型計(jì)算機(jī)指令的微處理器,起源于80 年代的MIPS主機(jī)(即RISC 機(jī)),RISC機(jī)中采用的微處理器統(tǒng)稱RISC處理器。這樣一來,它能夠以更快的速度執(zhí)行操作(每秒執(zhí)行更多百萬條指令,即MIPS)。因?yàn)橛?jì)算機(jī)執(zhí)行每個(gè)指令類型都需要額外的晶體管和電路元件,計(jì)算機(jī)指令集越大就會使微處理器更復(fù)雜,執(zhí)行操作也會更慢。
像MCU一樣,EMP具有受保護(hù)和未受保護(hù)的兩種操作模式,防止用戶訪問或影響系統(tǒng)的共享部分。此外,它們提供定義不同應(yīng)用開發(fā)空間的存儲器管理功能,同時(shí)防止截然不同的代碼部分被覆蓋。它們還允許異步中斷以及同步異常兩種功能,以及可編程的中斷優(yōu)先級。為使系統(tǒng)能及時(shí)響應(yīng)并處理發(fā)生的所有中斷,系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,硬件將中斷源分為若干個(gè)級別,稱作中斷優(yōu)先級。多級中斷的處理原則:當(dāng)多級中斷同時(shí)發(fā)生時(shí),CPU按照由高到低的順序響應(yīng)。高級中斷可以打斷低級中斷處理程序的運(yùn)行,轉(zhuǎn)而執(zhí)行高級中斷處理程序。當(dāng)同級中斷同時(shí)到時(shí),則按位響應(yīng)。因此,EMP非常適合于嵌入式操作系統(tǒng)。
在DSP方面,EMP結(jié)構(gòu)使數(shù)據(jù)的流動有效率且性能非常高,所配備的外設(shè)支持高速串行和并行數(shù)據(jù)搬移。
圖1:單內(nèi)核嵌入式媒體處理器BF533的框圖
單內(nèi)核開發(fā)方法
在當(dāng)今的設(shè)計(jì)范例中,MCU和DSP程序員通常被分成兩個(gè)完全獨(dú)立的組,兩方面的交互工作只發(fā)生在他們的功能范圍相交的"系統(tǒng)邊界"層面。這具有一定意義,因?yàn)閮蓚€(gè)開發(fā)組都形成了他們自己的設(shè)計(jì)習(xí)慣。例如,信號處理開發(fā)工程師可能熟知處理器架構(gòu)的細(xì)節(jié)本質(zhì),能通過一些實(shí)現(xiàn)技巧來提高設(shè)計(jì)性能。
另一方面,MCU程序員可能更愿意采用這樣的模式:只須啟動器件,它就能完成所有的工作。這就是為什么EMP支持DMA和緩存存儲器控制器來在系統(tǒng)中搬移數(shù)據(jù)的原因。多個(gè)高速DMA通道在外設(shè)和存儲器系統(tǒng)中往返搬移數(shù)據(jù),允許在不耗盡寶貴的內(nèi)核處理器時(shí)鐘周期的條件下,對控制進(jìn)行精細(xì)地調(diào)整,這正是DSP設(shè)計(jì)工程師所追求的。通常,在系統(tǒng)集成層面,兩種方法的組合是最理想的。
一直以來,MCU和DSP開發(fā)團(tuán)隊(duì)劃分的另一個(gè)原因是兩個(gè)處理器具有兩套不同的設(shè)計(jì)規(guī)則。從技術(shù)的角度來看,負(fù)責(zé)構(gòu)建系統(tǒng)的工程師某些時(shí)候不愿意在同一個(gè)處理器上將"控制"應(yīng)用與信號處理應(yīng)用混在一起。他們通常擔(dān)心非實(shí)時(shí)的任務(wù)將影響到硬實(shí)時(shí)任務(wù)。例如,負(fù)責(zé)處理圖形用戶界面(GUI)或聯(lián)網(wǎng)堆棧的程序員不應(yīng)該擔(dān)心妨礙系統(tǒng)的實(shí)時(shí)信號處理。為此,我們假定在服務(wù)程序開始時(shí),在發(fā)生中斷和系統(tǒng)環(huán)境被保存之間的時(shí)間幀小于十毫秒。
盡管MCU控制代碼通常用C語言編寫并且以為庫基礎(chǔ),而實(shí)時(shí)DSP代碼通常采用匯編語言編寫,并由手動設(shè)計(jì)為給定應(yīng)用提取最可能的性能。C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。不幸的是,這種最優(yōu)化也限制了應(yīng)用程序的可移植性,并因此也限制了在未來項(xiàng)目上兩個(gè)編程團(tuán)隊(duì)之間對不同技巧和工具集的傳播。
然而,在引入EMP后,可以實(shí)現(xiàn)以C/C++為中心的統(tǒng)一代碼。這允許開發(fā)者利用以前開發(fā)的現(xiàn)成的大量應(yīng)用程序代碼。因?yàn)镋MP同時(shí)針對控制和信號處理操作兩種功能進(jìn)行了最優(yōu)化,編譯器可以產(chǎn)生同時(shí)滿足"緊湊"(從代碼密度來看)和高效率的代碼(對于計(jì)算密集的信號處理應(yīng)用)。EMP高的工作頻率(超過750MHz)可以彌合編譯器之間的性能差距,這個(gè)頻率位于當(dāng)前主流DSP的前沿。
盡管轉(zhuǎn)向采用EMP可以大大地降低用匯編寫代碼的需求,但僅僅這一點(diǎn)還不足以證明轉(zhuǎn)換到這種統(tǒng)一平臺就是正確的,支持操作系統(tǒng)(OS)也很關(guān)鍵。通過OS或?qū)崟r(shí)內(nèi)核,可以實(shí)現(xiàn)幾層任務(wù)。為確保依然能達(dá)到目標(biāo)性能,有必要采用支持多個(gè)優(yōu)先級的中斷控制器。這就允許開發(fā)者在同一個(gè)器件中創(chuàng)建包含控制和實(shí)時(shí)信號處理的系統(tǒng)。
此外,EMP的存儲器管理工具允許OS支持存儲器保護(hù)。這允許一個(gè)任務(wù)通過存儲器分頁機(jī)制,被另外一個(gè)任務(wù)屏蔽存儲器或指令訪問。當(dāng)對一個(gè)受保護(hù)的存儲器區(qū)域被未授權(quán)訪問時(shí),將產(chǎn)生一個(gè)異常。
EMP能獲得的高處理速度可以轉(zhuǎn)換成幾種實(shí)實(shí)在在的好處。首先是上市時(shí)間-如果存在大量的剩余處理能力,在降低或免除代碼最優(yōu)化上可以節(jié)省大量的時(shí)間。第二個(gè)關(guān)鍵的好處是減少軟件維護(hù),否則的話這種維護(hù)要支配產(chǎn)品生命周期的成本。最后一點(diǎn),對于可擴(kuò)展的EMP架構(gòu),可能在最具處理能力的系列器件上設(shè)計(jì)一個(gè)系統(tǒng),然后針對最終應(yīng)用的計(jì)算規(guī)模設(shè)定"合理大小"的處理器。
當(dāng)單內(nèi)核EMP不足時(shí)
隨著處理需求的不斷增加,出現(xiàn)了這樣的觀點(diǎn):即使一個(gè)600MHz的EMP對于某些應(yīng)用來說都是不夠的。這就是考慮采用雙內(nèi)核EMP的一個(gè)原因,例如ADSP-BF561(見圖2)。
圖2:雙內(nèi)核嵌入式媒體處理器ADSP-BF561的框圖
增加另外一個(gè)處理器內(nèi)核,不僅僅能將處理能力相對于單處理器的能力倍增,而且還有某些令人吃驚的結(jié)構(gòu)好處,這種好處并不是立竿見影的。
傳統(tǒng)的雙內(nèi)核處理器的應(yīng)用采用了離散的且通常在每個(gè)內(nèi)核上運(yùn)行不同的任務(wù)。例如,一個(gè)內(nèi)核可能執(zhí)行所有的與控制相關(guān)的任務(wù),例如圖形和覆蓋功能、網(wǎng)絡(luò)連接、與大存儲器的接口以及整體流控制。該內(nèi)核還是操作系統(tǒng)或核(kernel)很可能駐留的地方。
這種模式受到采用分開的軟件開發(fā)團(tuán)隊(duì)的開發(fā)商青睞。將這些功能類型進(jìn)行劃分的能力允許并行設(shè)計(jì)處理,消除項(xiàng)目中對關(guān)鍵路徑依賴性。這種編程模式還對項(xiàng)目中的測試和驗(yàn)證階段有所幫助。例如,如果一個(gè)內(nèi)核上的代碼發(fā)生變化,不一定會使另外一個(gè)內(nèi)核上已經(jīng)完成的測試工作付之東流。
對稱的與非對稱的多內(nèi)核處理
為理解是什么讓這種雙內(nèi)核方法令人興奮,我們需要首先討論"對稱多處理(SMP)".這是指一種通過高速路經(jīng)相連接的兩個(gè)相似(或相同)的處理器,并共享一組外設(shè)和存儲器空間。平時(shí)所說的雙CPU系統(tǒng),實(shí)際上是對稱多處理機(jī)系統(tǒng)中最常見的一種,通常稱為2路對稱多處理,它在普通 AMD Athlon 64 X2的商業(yè)、家庭應(yīng)用之中并沒有太多實(shí)際用途,但在專業(yè)制作,如3DMaxStudio、Photoshop等軟件應(yīng)用中獲得了非常良好的性能表現(xiàn),是組建廉價(jià)工作站的良好伙伴。隨著用戶應(yīng)用水平的提高,只使用單個(gè)的處理器確實(shí)已經(jīng)很難滿足實(shí)際應(yīng)用的需求,因而各服務(wù)器廠商紛紛通過采用對稱多處理系統(tǒng)來解決這一矛盾。在中國國內(nèi)市場上這類機(jī)型的處理器一般以4個(gè)或8個(gè)為主,有少數(shù)是16個(gè)處理器。SMP架構(gòu)沒有這種局限性,因?yàn)閮蓚€(gè)處理器內(nèi)核是相同的,可以按照應(yīng)用要求進(jìn)行劃分,甚至劃分為100%的DSP或100%的MCU工作。此外,對稱處理器還具有提供一種普通的集成設(shè)計(jì)環(huán)境的優(yōu)點(diǎn)。只需要一組開發(fā)工具,而且針對單一開發(fā)平臺培訓(xùn)開發(fā)團(tuán)隊(duì)的負(fù)擔(dān)較小。
作為一種SMP友好的器件,BF561包含屬于每個(gè)內(nèi)核的高速L1指令和數(shù)據(jù)存儲器,以及在兩個(gè)內(nèi)核之間的一種共享128KB L2存儲器。每個(gè)內(nèi)核都能同等地訪問范圍廣闊的外設(shè)-視頻端口、串行口、定時(shí)器等等。這樣的安排擴(kuò)展了器件的可配置性,允許其工作在幾種相同的有效架構(gòu)下。這些模式(見圖4)可以總結(jié)性地稱為"MCU/DSP分離"、"串行處理"和"分離處理".
選擇合適的數(shù)據(jù)模式
"MCU/DSP分離"模式涉及到分離的以及通常運(yùn)行在每個(gè)內(nèi)核上的不同任務(wù)。一個(gè)內(nèi)核被分配給所有的"MCU類"行為,例如圖形覆蓋、聯(lián)網(wǎng)管理以及流控制。此外,如果是用了操作系統(tǒng)的話,該內(nèi)核還支持操作系統(tǒng)。與此同時(shí),第二個(gè)內(nèi)核專門用于應(yīng)用的高密度DSP功能。例如,壓縮數(shù)據(jù)通過第一個(gè)內(nèi)核從網(wǎng)絡(luò)傳遞。接收到的數(shù)據(jù)包然后提供給第二個(gè)內(nèi)核,該內(nèi)核再進(jìn)行音頻和視頻的處理(圖4)。
這種模式非常適合那些采用分離的基于任務(wù)的團(tuán)隊(duì)進(jìn)行軟件開發(fā)的公司。擁有"控制團(tuán)隊(duì)"和"DSP團(tuán)隊(duì)"可以使開發(fā)并行實(shí)施,減少項(xiàng)目對關(guān)鍵路徑的依賴性。這種編程模式還能促進(jìn)設(shè)計(jì)的測試和驗(yàn)證階段。例如,在一個(gè)內(nèi)核上的代碼改變未必使另一個(gè)內(nèi)核上已經(jīng)完成的測試工作變得無效。此外,擁有兩個(gè)相同的內(nèi)核還允許重新分配在任何內(nèi)核上任何"未用"的處理帶寬,以在不同的功能和任務(wù)上再分配。
在"串行處理"使用模式中,第一個(gè)內(nèi)核在輸入數(shù)據(jù)組上執(zhí)行若干中間級控制和計(jì)算,然后傳第一個(gè)中間數(shù)據(jù)流到第二個(gè)內(nèi)核進(jìn)行最后的處理。這種方法的一個(gè)變化方法是:將任務(wù)在每個(gè)內(nèi)核上進(jìn)行劃分,在這種方式中,中間數(shù)據(jù)實(shí)際上在內(nèi)核之間搬移幾次,直到獲得最后的結(jié)果。
"分離處理"模式為每個(gè)內(nèi)核提供了更均衡的使用。因?yàn)樵趯ΨQ處理器中有兩個(gè)相同的內(nèi)核,傳統(tǒng)的計(jì)算密集應(yīng)用可以在每個(gè)內(nèi)核之間平均劃分。架構(gòu)功能,像豐富的片上存儲器、很寬的內(nèi)部數(shù)據(jù)路徑和高帶寬DMA控制器都有助于基于"分離處理"的系統(tǒng)設(shè)計(jì)的成功。在這種模式中,運(yùn)行在每個(gè)內(nèi)核上的代碼是相同的;只有被處理的數(shù)據(jù)不同。在一個(gè)通道流應(yīng)用中,這意味著一半的通道由第一個(gè)內(nèi)核處理,而另外一半由第二個(gè)內(nèi)核處理。
即使當(dāng)某個(gè)應(yīng)用適合某個(gè)單內(nèi)核處理器,也可以利用雙內(nèi)核系統(tǒng)來降低整體的能耗。例如,如果一個(gè)應(yīng)用需要600MHz的時(shí)鐘速度以在一個(gè)單內(nèi)核處理器(如ADSP-BF533)上運(yùn)行,它還必須工作在更高的電壓下(1.2V)以達(dá)到這個(gè)速度。然而,如果相同的應(yīng)用在一個(gè)雙內(nèi)核器件(BF561)上進(jìn)行劃分,每個(gè)內(nèi)核可以運(yùn)行在大約300MHz的速度下,每個(gè)內(nèi)核的電壓可以極大地降低到0.8V.因?yàn)楣呐c頻率呈正比并與工作電壓的平方成正比,電壓從1.2V降低到0.8V(同時(shí)頻率從600MHz降低到300MHz)能對功耗產(chǎn)生顯著的影響,與單內(nèi)核解決方案相比實(shí)際上節(jié)省了能耗。
:
-
處理器
+關(guān)注
關(guān)注
68文章
19334瀏覽量
230186 -
dsp
+關(guān)注
關(guān)注
553文章
8027瀏覽量
349282 -
芯片
+關(guān)注
關(guān)注
456文章
50919瀏覽量
424582 -
嵌入式
+關(guān)注
關(guān)注
5086文章
19142瀏覽量
306036
發(fā)布評論請先 登錄
相關(guān)推薦
評論