多處理器內(nèi)核的三種設計方案
三種設計模式
1. 平面模式
第一種模式是平面模式(Planar Pattern),這個名稱源于劃分一個通信系統(tǒng)的處理任務的“控制平面”和“數(shù)據(jù)平面”。它是一個廣泛的和不同類型的多內(nèi)核設計實例,這種多內(nèi)核設計統(tǒng)稱為非對稱多處理技術(簡稱“AMP”或“ASMP”)。
如果采用平面模式,系統(tǒng)需要劃分成具有顯著不同處理要求的多個自包含模塊。在其標準的通信和媒體處理形式中,該模式的優(yōu)點是在一個專用的DSP或網(wǎng)絡處理器上運行需要進行大量數(shù)據(jù)處理的算法,同時在一個通用的CPU上保持其它系統(tǒng)軟件的正常運行。這種特殊性意味著平面模式系統(tǒng)通常在專門構件的硬件上實現(xiàn)。由于許多平面硬件設備僅有一個通用CPU內(nèi)核,因此傳統(tǒng)的單內(nèi)核工具、操作系統(tǒng)和設計方法都可用來設計和調(diào)試系統(tǒng)的通用部分。
2. 片上柵格模式
片上柵格(Grid-on-Chip,或簡稱“柵格”)模式是平面模式的演繹,包含由許多完全獨立的和網(wǎng)絡互連的節(jié)點組成的任意多處理器系統(tǒng)。柵格是辦公計算機網(wǎng)絡的片上版本,它是共享相鄰物理鏈路但彼此獨立的許多網(wǎng)絡處理節(jié)點。一些文獻將該類型系統(tǒng)稱之為分布式多處理系統(tǒng),且仍將其歸類到AMP/ASMP系統(tǒng)總類別當中。
使用柵格模式的關鍵要求是首先要分割系統(tǒng),然后找到一個合適的節(jié)點間通信系統(tǒng)。(盡管更高級的柵格系統(tǒng)能夠在運行期間對其自身進行重新配置,但柵格模式系統(tǒng)的設計者需要認真思考系統(tǒng)功能到處理節(jié)點的分配問題。)除分割之外,柵格系統(tǒng)具有三種設計模式中最少的高級設計約束。一旦系統(tǒng)被分割,每個獨立節(jié)點的設計與實現(xiàn)就會如同一個獨立系統(tǒng)一樣進行。柵格系統(tǒng)可在專用硬件上實現(xiàn),但另一個普遍的選擇是通過采用SMP硬件以及將共享的存儲空間劃分成針對每個內(nèi)核的片段來建立柵格節(jié)點。
柵格模式系統(tǒng)與其它設計相比具有幾個突出的優(yōu)點。首先,它們可以很容易與過去的軟件整合在一起,過去的系統(tǒng)甚至可以在柵格范圍內(nèi)它們自己的節(jié)點上繼續(xù)完整地運行。此外,柵格系統(tǒng)在判決能力(determinism)和調(diào)試能力方面具有明顯的優(yōu)勢。柵格模式系統(tǒng)設計的松散聯(lián)結意味著在資源競爭方面不會有多少意外情況,由于熟悉的單內(nèi)核調(diào)試方法可以用于每個孤立的系統(tǒng)節(jié)點,所以調(diào)試相對簡單。柵格模式系統(tǒng)的分割特性使其更為強大,但這也是其缺陷的根源所在,因為分割使得它難于再分配資源,這將導致柵格系統(tǒng)在適應將來的和不可預期的要求方面缺乏靈活性。
圖1:針對圖像處理的平面模式。
圖2:柵格模式系統(tǒng)。
3. SMP模式
在一個對稱多處理(簡稱“SMP”)系統(tǒng)中,單一映像(single-image)操作系統(tǒng)是運行在兩個或多個共享存儲空間的處理內(nèi)核的頂層,這些處理器內(nèi)核實質(zhì)上是相同的。正如一臺多內(nèi)核桌面計算機一樣,SMP模式系統(tǒng)可以在一個處理器內(nèi)核組基礎上動態(tài)地均衡任務。重新分配處理能力以匹配當前任務的這種能力是SMP系統(tǒng)的一大主要優(yōu)點,這也使得SMP系統(tǒng)成為了三種模式中最靈活和適應性最強的模式。利用當今SMP實時操作系統(tǒng),這種靈活性可以不需要在犧牲任何性能的條件下實現(xiàn)判決或?qū)崟r響應。
圖3:SMP系統(tǒng)實例。 [!--empirenews.page--]
一個SMP模式系統(tǒng)要求具備兩樣條件:一個是對稱的共享存儲器的多內(nèi)核處理器平臺,另一個是具有SMP功能的操作系統(tǒng)。今天眾多的處理器系列都支持SMP功能,也有多種渠道可以得到SMP操作系統(tǒng)。SMP系統(tǒng)的兩個更為突出的優(yōu)點是開發(fā)人員比較熟悉,以及可以快速啟動。理論上來說,開發(fā)人員可以較為容易地啟動具有SMP功能的操作系統(tǒng),并將現(xiàn)有的應用設計進行移植,開發(fā)人員可以快速地利用多內(nèi)核硬件的性能。
現(xiàn)實的情況基本如此,但是有幾個問題需要牢記。第一個值得關注的問題是硬實時性要求,一個支持SMP功能的實時操作系統(tǒng)(RTOS)不會犧牲實時性能,但是,當使用SMP時,不具有硬實時性功能的操作系統(tǒng)將缺少判決性以及缺少更高級的和更可變的中斷反應時間。對一個良好的SMP RTOS而言無需擔心此點,但需牢記的是,通用的操作系統(tǒng)在SMP硬件上和它運行在單處理器系統(tǒng)上比較也許會有不同的表現(xiàn)。
第二個潛在問題是資源競爭。SMP系統(tǒng)的一個突出優(yōu)點是很多資源都是共享的,這使得SMP系統(tǒng)更具有靈活性和適應性。然而,該優(yōu)點也是一個缺點,由于所有的資源是共享的,將會由于資源競爭產(chǎn)生無法預期的性能改變。在每個系統(tǒng)中這是不會發(fā)生的,但如果開發(fā)人員想要系統(tǒng)按其設計的性能運行的話,還是要將此點牢記于心。
設計實現(xiàn)與調(diào)試
正如嵌入式開發(fā)一樣,在硬件設計的過程中需要首先考慮軟件的開發(fā)和調(diào)試。確保設計具有片上調(diào)試(OCD)的功能將會極大地加快系統(tǒng)開發(fā)進程,而且為編程和分析系統(tǒng)提供了一套可靠的工具。在平面設計模式和柵格設計模式中,單個OCD端口可讓開發(fā)人員對系統(tǒng)的單個內(nèi)核進行調(diào)試,就好像他們擁有一個更為傳統(tǒng)的單內(nèi)核系統(tǒng)一樣。
實時跟蹤端口是另外一個調(diào)試特性,這一特性隨著系統(tǒng)中內(nèi)核數(shù)目的不斷增長而變得越來越重要。實時跟蹤提供了一個標準方法去觀察內(nèi)核之間的相互作用,而不會破壞對再現(xiàn)問題起關鍵作用的敏感時序。如果多內(nèi)核設備包含有一個或多個實時跟蹤端口,這將會使的系統(tǒng)開發(fā)更容易。
有一個常常被提及但并不符合實際的說法:盡管許多開發(fā)人員成功采用了這三種設計模式,但是軟件開發(fā)工具并不是針對多內(nèi)核應用設計的?,F(xiàn)在,已經(jīng)有支持SMP功能的實時操作系統(tǒng)提供,且可以為開發(fā)人員提供不損耗實時判決的靈活的SMP模式。對于使用平面模式和柵格模式的設計來說,開發(fā)人員可以充分利用現(xiàn)有熟悉的、經(jīng)過驗證的單內(nèi)核設計工具和方法。多內(nèi)核設計可使系統(tǒng)變得更為復雜,但是已開發(fā)出來的工具和方法可以為開發(fā)人員在管理多內(nèi)核硬件的復雜性、實現(xiàn)其強大的功能及成本等方面助上一臂之力。
總結
合并是嵌入式領域長期存在的一個趨勢,它使得性能更優(yōu)良的嵌入式設備采用更少的元器件,從而降低了成本及功耗預算。這一趨勢的最新進展是在單個封裝內(nèi)提供多個處理器內(nèi)核的多內(nèi)核嵌入式微處理器的增加,而且與同等的單內(nèi)核處理器相比具有低功耗和低成本的優(yōu)點。