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