新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 多核設(shè)計(jì)將在消費(fèi)電子領(lǐng)域大行其道

多核設(shè)計(jì)將在消費(fèi)電子領(lǐng)域大行其道

作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

Patrick Madden在“多核處理器前途未卜(Multi-core processors face uncertain future)”一文中關(guān)于多核芯片的討論焦點(diǎn)集中于單個(gè)的通用處理器架構(gòu)上,實(shí)際上這種觀點(diǎn)對使用多處理器來解決系統(tǒng)架構(gòu)問題作出了不必要的限制。正如 Madden所言,大型半導(dǎo)體和服務(wù)器處理器供應(yīng)商可以提供多核的對稱多處理器,每個(gè)對稱多處理器都可以運(yùn)行并行的多線程軟件程序。這些多核處理器常在運(yùn)行基于SAMD(single application multiple data)模型應(yīng)用的大型服務(wù)器和筆記本電腦中。SAMD應(yīng)用可回溯至早期的大型機(jī)時(shí)代,當(dāng)時(shí)計(jì)算機(jī)專注于航班預(yù)定系統(tǒng)和實(shí)時(shí)銀行系統(tǒng)等實(shí)時(shí)應(yīng)用。

本文引用地址:http://m.butianyuan.cn/article/201609/304755.htm

當(dāng)前,嵌入式設(shè)計(jì)中對稱多處理器(SMP)架構(gòu)的應(yīng)用引起了業(yè)界極大的關(guān)注。實(shí)際上,很少應(yīng)用是同時(shí)并行(embarrassingly parallel)的。就像Madden提及,圖像和多媒體處理是同時(shí)并行的,但是這些應(yīng)用已經(jīng)有專用的多媒體芯片處理了,例如IBM的Cell處理器和 ATI/Nvidia的圖形處理器。因此,包括Madden在內(nèi)的很多專家都認(rèn)為,對稱多處理器上的并行應(yīng)用已經(jīng)被局限在一個(gè)很小的范圍之內(nèi)。

軟件工程師不習(xí)慣并行地考慮問題

在Madden的文章中,大多關(guān)于對稱多處理器的討論都會(huì)談到開發(fā)工具的問題。實(shí)際應(yīng)用中,依靠軟件工具把一個(gè)巨大的單線程應(yīng)用程序自動(dòng)分配給多個(gè)處理器運(yùn)行是不大可能的。類似于Verilog這樣的硬件描述語言可以很容易地表達(dá)并行操作,而像C這樣的軟件語言更適用于單線程算法的實(shí)現(xiàn)。為了讓C語言更適用于并行編程,人們做了很多改進(jìn)嘗試,比如Concurrent C、UPC、mpC、pC等。它們有些通過特殊的庫,有些通過并行的API來實(shí)現(xiàn)并行進(jìn)程的顯式標(biāo)識(shí)和進(jìn)程間的通信,例如Madden的文章中提到的 MPI和OpenMP技術(shù)。

還有些研究人員試圖用全新的整合了并行編程結(jié)構(gòu)的軟件開發(fā)語言來替代C語言。但是業(yè)界對這些新的編程語言并不認(rèn)可(例如,Ada語言和Inmos公司的 Occam語言均以失敗告終)。我們已經(jīng)習(xí)慣于單任務(wù)的算法描述,對大多數(shù)程序員來說,思考并行程序或多線程操作都相當(dāng)困難。然而,跳出SMP的限制來擴(kuò)展處理器架構(gòu),我們發(fā)現(xiàn)至少有兩種利用異構(gòu)而非同構(gòu)的并行方式。使用該兩種便捷并行(convenient concurrency)方式能充分地將軟件開發(fā)人員從并行工作的思考中釋放出來,因?yàn)椴煌牟⑿腥蝿?wù)間的聯(lián)系并非十分緊密。

圖1:超級3G移動(dòng)電話原理圖

圖1:超級3G移動(dòng)電話原理圖

第一種方式

你可以稱這種并行為“組合并行”,因?yàn)檫@種并行操作將不同的子系統(tǒng)組合在一起,而每個(gè)子系統(tǒng)中都包含一個(gè)或多個(gè)針對特定任務(wù)優(yōu)化過的處理器。在這種架構(gòu)設(shè)計(jì)中,結(jié)構(gòu)化的子系統(tǒng)間的通信只在需要時(shí)才相互影響。圖1所示的超級3G移動(dòng)電話系統(tǒng)體現(xiàn)了該思想。圖中共有18個(gè)獨(dú)立的處理模塊(灰色表示部分),每個(gè)模塊都有清晰的功能定義,因此很容易將整個(gè)系統(tǒng)功能劃分開來用18個(gè)處理器完成設(shè)計(jì)(考慮到子任務(wù)處理的話,可能需要更多處理器)。

一些人對這種架構(gòu)設(shè)計(jì)提出批評,因?yàn)樘幚砥骱烷T電路的效率看上去并不是很高,至少在理論上只需用幾個(gè)高時(shí)鐘頻率的通用處理器(或者是SMP多核處理器)就可以替代10個(gè)、20個(gè)或更多的處理器核。實(shí)際上這些批評并不恰當(dāng),摩爾定律繼續(xù)促使在一片芯片上可以集成更多的晶體管,而Denard經(jīng)典尺度則提供速度更快、功耗更低的晶體管,但是從90nm開始,Denard理論無法繼續(xù)提供更快的速度和更低的功耗了。在90nm節(jié)點(diǎn)上,功耗和能耗變得很難控制,而且隨著工藝的提高問題將更嚴(yán)重。所以嵌入式系統(tǒng)的設(shè)計(jì)人員從現(xiàn)在開始就必須接受降低系統(tǒng)時(shí)鐘頻率以滿足預(yù)期功耗和能耗指標(biāo)的設(shè)計(jì)風(fēng)格。

組合并行設(shè)計(jì)具有很多優(yōu)點(diǎn)

* 將運(yùn)算任務(wù)分配給幾個(gè)片上處理器來運(yùn)行是典型的增加晶體管數(shù)量換取低主頻以降低功耗和能耗的方法。這是一種很好的工程折衷,由于時(shí)鐘速度和內(nèi)核工作電壓之間的緊密關(guān)系,時(shí)鐘頻率的提高將使功耗呈超線性增長。此外,較低時(shí)鐘速度的處理器不必采用最新的制程工藝。相同光刻節(jié)點(diǎn)情況下,采用速度較慢的低功耗制程的靜態(tài)漏電流水平比采用高性能制程的漏電流水平小三個(gè)數(shù)量級。

* 當(dāng)不需用到某個(gè)專用子系統(tǒng)時(shí),可以切斷其電源供應(yīng)。因此,設(shè)計(jì)人員可以很容易地確定何時(shí)使用或不使用這些專用子系統(tǒng)。

* ASIP可以比通用處理器具備更高效的利用面積和功耗,而用作組合并行系統(tǒng)中的任務(wù)處理器。由于所使用的通用處理器核很少,也相應(yīng)地減少了晶體管的數(shù)量。組合并行的設(shè)計(jì)避免了與SMP硬件設(shè)計(jì)和多線程代碼相關(guān)聯(lián)的子系統(tǒng)所需的復(fù)雜交互與同步。一個(gè)四內(nèi)核的SMP系統(tǒng)帶有音頻、視頻和照相功能,在運(yùn)行其他任務(wù)時(shí)仍不會(huì)撤消911緊急電話,因此通常需要進(jìn)行大量的仿真與分析。而高層實(shí)現(xiàn)交互的獨(dú)立子系統(tǒng)能很容易地進(jìn)行單獨(dú)和組合的驗(yàn)證操作?;赟ystemC 的系統(tǒng)仿真工具已經(jīng)可以方便地對組合并行的系統(tǒng)設(shè)計(jì)進(jìn)行仿真。不同的子系統(tǒng)可以用C語言來描述,并分別進(jìn)行驗(yàn)證,然后利用指令集仿真器對整個(gè)系統(tǒng)進(jìn)行仿真,這比進(jìn)行RTL仿真快幾百甚至上千倍。值得注意的是,C語言已經(jīng)為嵌入式程序員廣泛接受并采用,因此軟件工程師無需學(xué)習(xí)新的語言。

第二種方式

計(jì)算通??梢詣澐譃橛瑟?dú)立任務(wù)引擎構(gòu)成的流水線,因此便捷并行的第二種方式就是流水式數(shù)據(jù)流。各個(gè)流水式任務(wù)引擎都接收、處理并輸出數(shù)據(jù)塊,一旦處理任務(wù)完成后,數(shù)據(jù)塊就被送到下一級引擎。非對稱多處理算法常常出現(xiàn)在信號(hào)處理和圖像處理應(yīng)用上,諸如移動(dòng)電話的基帶處理、視頻處理和靜態(tài)圖像處理等。流水線不但允許并行處理,而且還允許執(zhí)行基于ASIP的應(yīng)用,因?yàn)榱魉€中的每一個(gè)處理器都能高度集中于執(zhí)行某一部分的任務(wù)。

上述兩種便捷并行是互補(bǔ)的。因此,各個(gè)子系統(tǒng)的非對稱多處理能和流水式設(shè)計(jì)的組合子系統(tǒng)進(jìn)行融合。消費(fèi)類、便攜式和多媒體應(yīng)用產(chǎn)品可能需要10到100個(gè)處理器,而這些處理器都將針對產(chǎn)品功能的特定任務(wù)進(jìn)行優(yōu)化。對基于非對稱多處理器的應(yīng)用進(jìn)行編程要比基于對稱多處理器的容易得多,因?yàn)椴槐乜紤]太多的交互任務(wù)依賴關(guān)系。經(jīng)驗(yàn)表明通過這種方式能更清晰地編寫軟件,而且可以避免在同構(gòu)多處理器上運(yùn)行多線程應(yīng)用所帶來的大量優(yōu)化問題。


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉