Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

嵌入式多媒體應用中的雙/單核心處理器選擇策略

上網時間: 2007年01月12日     打印版  Bookmark and Share  字型大小:  

關鍵字:多媒體處理器  DSP  MCU  嵌入式媒體處理器  EMP 對稱多處理 

為嵌入式多媒體應用選擇適合的處理器是一項複雜的工作,涉及到對處理器核心架構以及週邊設備的全面分析,需完全掌握視訊、音訊數據在系統中的傳輸方式,以及正確評估該處理器在可接受的功耗水準下可達到多高的處理能力。

最近為止,解決這個問題的標準方法是將其劃分成由微控制器(MCU)晶片處理的‘控制域’,以及由數位訊號處理器(DSP)處理的‘運算域’。RISC MCU和DSP適合媒體豐富的嵌入式應用,然而,它們的用途不可互相替代,更確切地說,它們要協調一致地工作。MCU架構非常適合於高效率的非同步控制流程,而DSP架構的‘生存之道’是同步?定速度數據串流(如濾波和轉換作業)。

由於在目前的媒體處理應用中,兩種功能都是必須的,因此工程師通常使用獨立的MCU和DSP晶片。這種組合為廣泛的多媒體應用提供了很好的處理引擎,但增加了多媒體處理設計、多種開發工具組以及有待學習和除錯的異質架構複雜度。

為減輕這些問題,晶片廠商嘗試過不同的解決方案。不同的MCU廠商都整合了某些訊號處理功能,如指令集擴展及乘法累加(MAC)單元,但這種努力通常缺乏針對先進訊號處理應用所要求的基本架構基礎。類似地,DSP生產商已經包含了有限的MCU功能,但不可避免地在系統控制方面有所妥協。

最近,出現了另外的選擇-單核心及雙核心嵌入式媒體處理器(EMP)架構,這種架構在一個統一設計中提供了MCU和DSP功能,允許在控制和訊號處理需求方面進行靈活的劃分。如果應用需要,EMP可作為100%的MCU(程式碼密度與業界標準一致)、100%的DSP(時脈速度約與先進DSP相等)、或兩者之間的某種組合。

單核心EMP架構評估

圖1顯示了一個單核心EMP架構,這個架構融合了一個32位元RISC指令集、雙16位元MAC單元和一個8位元視訊處理引擎。其可變長指令集擴展到DSP內部迴路所使用的64位元作業碼,但經過了最佳化以使16位元的作業碼代表最常用的指令。因此,編譯後的程式碼密度可以與業界領先的MCU競爭,而其互鎖管線和代數指令語法能促進在C/C++和匯編兩種環境中的開發。

像MCU一樣,EMP具有受保護和未受保護兩種作業模式,防止用戶存取或影響系統的共享部份。此外,它們也提供為不同應用定義的記憶體管理功能,同時防止截然不同的程式碼部份被覆蓋。它們還允許非同步中斷以及同步異常兩種功能,以及可程式的中斷優先級。因此,EMP非常適合嵌入式作業系統,在此之前,該領域一直是MCU的天下。

在DSP方面,EMP結構使數據的移動更有效率且性能非常高,所配備的週邊設備支援高速串列和平行數據移動。此外,EMP包含先進電源管理功能,允許系統設計工程師架構師以最低的動態功耗曲線進行設計。


圖1:單核心嵌入式媒體處理器BF533結構圖

單核心開發方法

在目前的設計範例中,MCU和DSP程式設計師通常被分成兩個完全獨立的組,兩方面的互動工作只發生在他們的功能範圍相交的‘系統邊界’層面。這具有一定意義,因為兩個開發組都擁有自己的設計習慣。例如,訊號處理開發工程師可能熟知處理器架構的細節本質,能透過一些實現技巧來提高設計性能。

另一方面,MCU程式設計師可能更願意採用這樣的模式:只須啟動元件,它就能完成所有的工作。這就是為什麼EMP支援DMA和快取記憶體控制器在系統中移動數據的原因。多個高速DMA通道在週邊設備和記憶體系統中往返移動數據,允許在不耗盡寶貴核心處理器時脈週期的條件下,對控制進行精細調整,這正是DSP設計工程師所追求的。相反地,晶片上可配置指令和數據快取記憶體允許對管理程式碼和數據採用一種傳遞方法,這種方式類似於MCU程式設計師的做法。通常,在系統整合層面,兩種方法的組合是最理想的。

一直以來,MCU和DSP開發團隊劃分的另一個原因是兩個處理器具有兩套不同的設計規則。從技術的角度來看,負責建構系統的工程師某些時候不願意在同一個處理器上將‘控制’應用與訊號處理應用混合。他們通常擔心非即時的任務將影響到硬即時任務。例如,負責處理繪圖用戶介面(GUI)或連網堆疊的程式設計師不應該擔心妨礙系統的即時訊號處理。當然,‘即時’的定義會根據特定應用而變化。在某種嵌入式應用中,關鍵在於服務一個中斷所需時間。為此,我們假設在服務程式開始時,在發生中斷和系統環境被保存之間的時間訊框小於10毫秒。

儘管MCU控制程式碼通常用C語言編寫並以為庫基礎,而即時DSP程式碼通常採用匯編語言編寫,並由手動設計為特定應用擷取最可能的性能。不幸的是,這種最佳化也限制了應用程式的可移植性,並因此限制了在未來計劃上兩個編程團隊之間對不同技巧和工具組的選擇。

然而,在導入EMP後,可實現以C/C++為中心的統一程式碼。這允許開發者利用以前開發的既有大量應用程式碼。因為EMP同時針對控制和訊號處理作業兩種功能進行了最佳化,編譯器可以產生同時滿足‘緊密’(從程式碼密度來看)和高效率的程式碼(對於運算密集的訊號處理應用)。EMP超過750MHz的高工作頻率可彌合編譯器之間的性能差距。此外,針對目標應用匯編程式碼依然是最佳化關鍵處理環的選項之一。

儘管轉向採用EMP可大幅降低用匯編寫程式碼的需求,但僅這一點還不足以證明轉換到這種統一平台就是正確的。支援作業系統(OS)也很關鍵。透過支援作業系統或即時核心,可實現幾層任務。為確保達到目標性能,需採用支援多個優先級的中斷控制器。環境切換必須透過基於硬體的堆疊和對訊框指針的支援來實現。這就允許開發者在同一個元件中製作包含控制和即時訊號處理的系統。

此外,EMP的記憶體管理工具允許OS支援記憶體保護。這允許一個任務透過記憶體分頁機制,被另外一個任務屏蔽記憶體或指令存取。當對一個受保護的記憶體區域被未授權存取時,將產生異常。

EMP能獲得的高處理速度可轉換成幾種實在的好處。首先是上市時間,如果存在大量的剩餘處理能力,在降低或免除程式碼最佳化上可節省大量時間。第二個關鍵優勢是減少軟體維護,否則這種維護會支配產品生命週期成本。最後一點,對可擴展的EMP架構,可能在最具處理能力的系列元件上設計一個系統,然後針對最終應用的運算規模設定‘合理大小’的處理器。

當單核心EMP不足之時

隨著處理需求的不斷增加,業界出現了以下觀點:對某些應用來說,即使一個600MHz的EMP都是不夠的。這就是考慮採用雙核心EMP的原因之一,如ADSP-BF561(見圖2)。


圖2:雙核心嵌入式媒體處理器ADSP-BF561的結構圖

增加另一個處理器核心不僅能倍增處理能力,且具備令人驚訝的結構優勢,但這些優勢帶來的利益並非立即可見。

傳統的雙核心處理器應用通常在每個核心上執行不同的任務。例如,一個核心可能執行所有與控制相關的任務,如繪圖和覆蓋功能、網路連接、與大記憶體的通訊及整體流程控制。該核心同時是作業系統或核心(kernel)可能駐留的地方。在此同時,第二個核心可能針對應用中的高密度處理,如壓縮數據封包可能透過網路介面傳輸到第一個核心,該核心對其進行預處理,並遞交到第二個核心進行音訊和視訊解碼。

這種模式受到採用不同軟體開發團隊的開發商青睞。將這些功能類型進行劃分的能力允許平行設計處理,消除計劃中對關鍵路徑依賴性。這種編程模式還對計劃中的測試和驗證有所幫助。例如,如果一個核心上的程式碼發生變化,不一定會使另外一個核心上已經完成的測試工作付諸東流。

對稱/非對稱式多核心處理

為確實瞭解雙核心方案,首先要討論‘對稱式多處理(SMP)’。這是指一種透過高速路經連接的兩個相似(或相同)的處理器,並共享一組週邊設備和記憶體空間。它與‘非對稱式多處理(AMP)’方法形成對比,其中結合了兩顆不同的處理器,通常是在一個混合架構中整合一個MCU和一個DSP。AMP方法的侷限性在於,設計工程師必須對控制和DSP功能的共享部份進行‘50/50’的劃分;一旦DSP‘勝出’,MCU將不能進行運算處理。SMP架構沒有這種侷限性,因為兩個處理器核心是相同的,可依照應用要求進行劃分,甚至劃分為100%的DSP或100%的MCU。此外,對稱處理器還具有提供一種普通的整合設計環境優點,只需要一組開發工具,且對單一開發平台培訓開發團隊的負擔較小。

以ADI的BF561(圖3)為例,該元件包含屬於每個核心的高速L1指令和數據記憶體,以及在兩個核心之間的共享128KB L2記憶體。每個核心都能同等地存取範圍廣闊的週邊設備,如視訊埠、串列埠、定時器等,擴展了元件的可配置性,允許其工作在幾種相同的有效架構下。這些模式(圖4)可稱為‘MCU/DSP分離’、‘串列處理’和‘分離處理’。


圖3: BF5601就是對稱多處理的很好體現。它包含屬於每個核心的高速L1指令和數據記憶體,以及在兩個核心之間的一種共享128KB L2記憶體。

選擇合適的數據模式

‘MCU/DSP分離’模式涉及到分離的以及通常執行在每個核心上的不同任務。一個核心被分配給所有的‘MCU類’行為,如繪圖覆蓋、連網管理及流程控制。此外,該核心還支援作業系統。在此同時,第二個核心專用於應用的高密度DSP功能。例如,壓縮數據透過第一個核心從網路傳遞。接收到的數據封包然後提供給第二個核心,該核心再進行音訊和視訊的處理(圖4)。


圖4:雙核心編程模式實例。

這種模式非常適合那些採用分離的基於任務的團隊進行軟體開發的公司。擁有‘控制團隊’和‘DSP團隊’可平行進行開發,減少計劃對關鍵路徑的依賴性。這種編程模式還能加速設計測試和驗證。同時,擁有兩個相同的核心還允許重新分配在任何核心上任何未用的處理頻寬,以在不同的功能和任務上進行再分配。

在‘串列處理’使用模式中,第一個核心在輸入數據組上執行若干中間級控制和運算,然後傳送第一個中間數據串流到第二個核心進行最後處理。一種改變這種方法的方式是:將任務在每個核心上進行劃分,在這種方式中,中間數據實際上在核心之間移動幾次,直到獲得最後的結果。非常適合這種使用模式的演算法是MPEG編碼或解碼。

‘分離處理’模式為每個核心提供了更均衡的使用。因為在對稱處理器中有兩個相同的核心,傳統的運算密集應用可在每個核心之間平均劃分。架構功能,像豐富的晶片上記憶體、很寬的內部數據路徑和高頻寬DMA控制器都有助於基於分離處理的系統設計成功。在這種模式中,執行在每個核心上的程式碼是相同的,只有被處理的數據不同。在一個通道串流應用中,一半的通道由第一個核心處理,而另外一半由第二個核心處理。而在視訊或成像應用中,可能由每個核心處理交替訊框。

即使當某個應用適合某個單核心處理器,也可以利用雙核心系統來降低整體功耗。例如,若一個應用需要600MHz的時脈以在單核心處理器(如ADSP-BF533)上執行,它就必須工作在更高電壓下(1.2V)以達到這個速度。然而,若將相同的應用在一個雙核心元件(BF561)上進行劃分,每個核心可執行在約300MHz的速度下,則每個核心的電壓可大幅降低到0.8V。由於功耗與頻率呈正比並與工作電壓的平方呈正比,電壓從1.2V降低到0.8V(同時頻率從600MHz降低到300MHz)能對功耗產生顯著影響,與單核心解決方案相較能大幅節省功耗。

作者:

David Katz

Rick Gentile

高級DSP應用工程師

ADI公司




投票數:   加入我的最愛
我來評論 - 嵌入式多媒體應用中的雙/單核心處理器...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首