深入了解多核處理器:多核處理器有哪些技術(shù)優(yōu)勢?
與單核處理器相比,多核處理器在體系結(jié)構(gòu)、軟件、功耗和安全性設(shè)計等方面面臨著巨大的挑戰(zhàn)。但與此同時,多核處理器的性能也更強(qiáng)。為增進(jìn)大家對處理器的認(rèn)識,本文將對多核處理器、多核處理器的技術(shù)優(yōu)勢予以介紹。如果你對處理器具有興趣,不妨繼續(xù)往下閱讀哦。
一、多核處理器
目前,多核技術(shù)已經(jīng)成為最受關(guān)注的話題和研究方向。多核體系結(jié)構(gòu)為性能提高和節(jié)能計算等領(lǐng)域開辟了新的方向。然而,現(xiàn)在的多核處理器還沒有統(tǒng)一的標(biāo)準(zhǔn),基本上處于探索階段。核與核之間的連接方式、通訊協(xié)調(diào)方式、同一處理器中核與核間結(jié)構(gòu)的差異、器件資源分配策略、任務(wù)調(diào)度策略、節(jié)能策略、軟硬件協(xié)同設(shè)計策略等方面都處于研究探索之中。多核必將帶來影響整個計算機(jī)行業(yè)方方面面的巨大變革,包括體系結(jié)構(gòu)研究、嵌入式系統(tǒng)設(shè)計和解決方案設(shè)計、編譯技術(shù)、操作系統(tǒng)核心算法、應(yīng)用軟件設(shè)計等計算機(jī)系統(tǒng)的各個領(lǐng)域。
在單核處理器研究中,主要集中在提高頻率,提高指令級并行度等方面。而在多核體系中,更加關(guān)注核與核之間的協(xié)作、共享資源的分配、提高線程級并行度等方面。
多核處理器必然帶來一個問題是,需要提高程序的并行度,因為單線程程序是無法發(fā)揮多核處理器的優(yōu)勢的。通過編譯優(yōu)化可以把原先單線程的代碼編譯成多線程的形式。OpenMP提供了一種方法,程序員根據(jù)需要把可以并行處理的代碼加上合適的標(biāo)記,編譯器根據(jù)這些標(biāo)記把相應(yīng)代碼編譯成多線程的程序段。多線程程序開發(fā)涉及到多線程調(diào)試的難題,這在多核處理器上會變得更加困難,所以多核體系導(dǎo)致程序開發(fā)模式發(fā)生巨大變化。
多核處理器上的任務(wù)調(diào)度也是個新問題,常用的調(diào)度算法有全局隊列調(diào)度和局部隊列調(diào)度。前者是指操作系統(tǒng)維護(hù)一個全局的任務(wù)等待隊列,當(dāng)系統(tǒng)中有一個CPU核心空閑時,操作系統(tǒng)就從全局任務(wù)等待隊列中選取就緒任務(wù)開始在此核心上執(zhí)行。這種方法的優(yōu)點(diǎn)是CPU核心利用率較高。后者是指操作系統(tǒng)為每個CPU內(nèi)核維護(hù)一個局部的任務(wù)等待隊列,當(dāng)系統(tǒng)中有一個CPU內(nèi)核空閑時,便從該核心的任務(wù)等待隊列中選取恰當(dāng)?shù)娜蝿?wù)執(zhí)行,這種方法的優(yōu)點(diǎn)是任務(wù)基本上無需在多個CPU核心間切換,有利于提高CPU核心局部Cache命中率,從而提高系統(tǒng)的性能。目前多數(shù)CMP操作系統(tǒng)采用的是基于全局隊列的任務(wù)調(diào)度算法。
二、多核處理器技術(shù)優(yōu)勢
從應(yīng)用需求上去看,越來越多的用戶在使用過程中都會涉及到多任務(wù)應(yīng)用環(huán)境,日常應(yīng)用中用到的非常典型的有兩種應(yīng)用模式。
一種應(yīng)用模式是一個程序采用了線程級并行編程,那么這個程序在運(yùn)行時可以把并行的線程同時交付給兩個核心分別處理,因而程序運(yùn)行速度得到極大提高。這類程序有的是為多路工作站或服務(wù)器設(shè)計的專業(yè)程序,例如專業(yè)圖像處理程序、非線視頻編緝程序、動畫制作程序或科學(xué)計算程序等。對于這類程序,兩個物理核心和兩顆處理器基本上是等價的,所以,這些程序往往可以不作任何改動就直接運(yùn)行在雙核電腦上。
還有一些更常見的日常應(yīng)用程序,例如Office、IE等,同樣也是采用線程級并行編程,可以在運(yùn)行時同時調(diào)用多個線程協(xié)同工作,所以在雙核處理器上的運(yùn)行速度也會得到較大提升。例如,打開IE瀏覽器上網(wǎng)??此坪唵蔚囊粋€操作,實際上瀏覽器進(jìn)程會調(diào)用代碼解析、Flash播放、多媒體播放、Java、腳本解析等一系列線程,這些線程可以并行地被雙核處理器處理,因而運(yùn)行速度大大加快(實際上IE瀏覽器的運(yùn)行還涉及到許多進(jìn)程級的交互通信,這里不再詳述)。由此可見,對于已經(jīng)采用并行編程的軟件,不管是專業(yè)軟件,還是日常應(yīng)用軟件,在多核處理器上的運(yùn)行速度都會大大提高。
日常應(yīng)用中的另一種模式是同時運(yùn)行多個程序。許多程序沒有采用并行編程,例如一些文件壓縮軟件、部分游戲軟件等等。對于這些單線程的程序,單獨(dú)運(yùn)行在多核處理器上與單獨(dú)運(yùn)行在同樣參數(shù)的單核處理器上沒有明顯的差別。但是,由于日常使用的最最基本的程序——操作系統(tǒng)——是支持并行處理的,所以,當(dāng)在多核處理器上同時運(yùn)行多個單線程程序的時候,操作系統(tǒng)會把多個程序的指令分別發(fā)送給多個核心,從而使得同時完成多個程序的速度大大加快。
另外,雖然單一的單線程程序無法體現(xiàn)出多核處理器的優(yōu)勢,但是多核處理器依然為程序設(shè)計者提供了一個很好的平臺,使得他們可以通過對原有的單線程序進(jìn)行并行設(shè)計優(yōu)化,以實現(xiàn)更好的程序運(yùn)行效果。
上面介紹了多核心處理器在軟件上面的應(yīng)用,但游戲其實也是軟件的一種,作為一種特殊的軟件,對PC發(fā)展作出了較大的貢獻(xiàn)。一些多線程游戲已經(jīng)能夠發(fā)揮出多核處理器的優(yōu)勢,對于單線程游戲,相信游戲廠商也將會改變編程策略,例如,一些游戲廠商正在對原來的一些單線程游戲進(jìn)行優(yōu)化,采用并行編程使得游戲運(yùn)行得更快。有的游戲可以使用一個線程實現(xiàn)人物動畫,而使用另一個線程來載入地圖信息?;蛘呤褂靡粋€線程來實現(xiàn)圖像渲染中的矩陣運(yùn)算,而使用另一個來實現(xiàn)更高的人工智能運(yùn)算。如今,大量的支持多核心的游戲涌現(xiàn)出來,從而使得多核處理器的優(yōu)勢能得到進(jìn)一步的發(fā)揮。
以上就是小編這次想要和大家分享的有關(guān)處理器的內(nèi)容,希望大家對本次分享的內(nèi)容已經(jīng)具有一定的了解。如果您想要看不同類別的文章,可以在網(wǎng)頁頂部選擇相應(yīng)的頻道哦。