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