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