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