開磊
(安徽新華學(xué)院國(guó)際教育學(xué)院,安徽 合肥 230088)
基于基板下進(jìn)行集成所得的多個(gè)單核CPU就是多核CPU,在最初發(fā)展階段,北橋負(fù)責(zé)對(duì)PD雙核進(jìn)行任務(wù)的分配管控,二級(jí)緩存爭(zhēng)搶是核心間極易出現(xiàn)的問(wèn)題,經(jīng)過(guò)發(fā)展之后,酷睿對(duì)任務(wù)分配系統(tǒng)進(jìn)行了集成,結(jié)合操作系統(tǒng)就可以運(yùn)行。兩大核心能夠?qū)煞萑蝿?wù)進(jìn)行同時(shí)性的處理,明顯提升了速度,及時(shí)出現(xiàn)單個(gè)核心死機(jī)的狀況,U依然能夠操作其他任務(wù),例如:關(guān)閉軟件及關(guān)機(jī)等。
在開展多核處理器設(shè)計(jì)任務(wù)的過(guò)程中,應(yīng)先對(duì)程序執(zhí)行模型進(jìn)行選取。多核處理器最提供極高性能時(shí)所對(duì)應(yīng)的代價(jià)主要取決于程序執(zhí)行模型適用程度,其中在系統(tǒng)實(shí)現(xiàn)者、編譯器設(shè)計(jì)者二者交互的載體就是程序執(zhí)行模型[1]。對(duì)于編譯器設(shè)計(jì)者來(lái)說(shuō),主要任務(wù)就是參考特定程序執(zhí)行模型,針對(duì)高級(jí)語(yǔ)言程序,進(jìn)行目標(biāo)機(jī)器語(yǔ)言程序的轉(zhuǎn)換;而學(xué)習(xí)通實(shí)現(xiàn)者負(fù)責(zé)的是,具體目標(biāo)機(jī)器中程序執(zhí)行模型能夠得到高效實(shí)現(xiàn)。若目標(biāo)機(jī)器屬于多核體系結(jié)構(gòu),那么需要解決下述問(wèn)題:程序執(zhí)行模型對(duì)應(yīng)用需求的最大滿足程度是多少?使用者對(duì)程序執(zhí)行模型的接收程度是多少?多核體系可以對(duì)關(guān)鍵程序執(zhí)行模型進(jìn)行支撐嗎?多核體系結(jié)構(gòu)的最佳程序執(zhí)行模型是什么?
針對(duì)CMP而言,主存、處理器二者之間存在的關(guān)鍵沖突問(wèn)題就是速度的差異,所以需要進(jìn)行有效的緩解,這就應(yīng)用到多級(jí)Cache。當(dāng)下CMP主要有三種不同的類型,分別是共享主存、共享二級(jí)Cache及共享一級(jí)Cache。一般情況下,共享二級(jí)Cache的CMP結(jié)構(gòu)在CMP有著較為廣泛的應(yīng)用,就是各處理器核心具備獨(dú)立自主權(quán)的一級(jí)Cache,同時(shí)處理器核心共享二級(jí)Cache。系統(tǒng)的運(yùn)行性能及效率在很大程度上都是由Cache自身的體系結(jié)構(gòu)設(shè)計(jì)所決定的。然而基于CMP結(jié)構(gòu)下,還要注意到這些問(wèn)題:共享Cache及獨(dú)有Cache到底哪一種才是最優(yōu)化的?應(yīng)基于芯片上建立多級(jí)Cache嗎?還有可以建立幾級(jí)Cache嗎?這些因素均對(duì)芯片尺寸、功耗、布局、性能和運(yùn)行效率等方面產(chǎn)生較大影響,所以針對(duì)上述問(wèn)題,還應(yīng)進(jìn)行深入的研究及分析[2]。除此之外,多級(jí)Cache又引發(fā)一致性問(wèn)題。借助何種Cache一致性模型和機(jī)制都將對(duì)CMP整體性能產(chǎn)生重要影響。在傳統(tǒng)多處理器系統(tǒng)結(jié)構(gòu)中廣泛采用的Cache一致性模型有: 順序一致性模型、弱一致性模型、釋放一致性模型等。與之相關(guān)的Cache一致性機(jī)制主要有總線的偵聽協(xié)議和基于目錄的目錄協(xié)議。目前的CMP系統(tǒng)大多采用基于總線的偵聽協(xié)議。
基于多核處理器下,不同CPU核心執(zhí)行程序間應(yīng)開展數(shù)據(jù)同戶、數(shù)據(jù)共享操作,這樣就要求硬件設(shè)施應(yīng)允許進(jìn)行核間通信。CMP處理器實(shí)現(xiàn)高性能的關(guān)鍵就是高效率化通信機(jī)制,當(dāng)下兩大片上高效通信機(jī)制應(yīng)用較為廣泛,分別為片上互連結(jié)構(gòu)、總線共享下Cache結(jié)構(gòu)??偩€共享Cache結(jié)構(gòu)為各CPU下具備共享二級(jí)及三級(jí)Cache,能夠?qū)?yīng)用率較高的數(shù)據(jù)進(jìn)行存儲(chǔ),借助總線的連接核心作用來(lái)實(shí)現(xiàn)高效通信。結(jié)構(gòu)簡(jiǎn)便、通信速率高是核間通信技術(shù)的優(yōu)勢(shì)所在,同時(shí)也存在總線結(jié)構(gòu)擴(kuò)展性不強(qiáng)的弊端。各CPU核心涵蓋Cache、獨(dú)立處理單元,共同構(gòu)成了在片上互連結(jié)構(gòu),不同CPU核心借助片上網(wǎng)絡(luò)或是交叉開關(guān)不同的途徑,能夠進(jìn)行連接。不同CPU核心借助消息能夠進(jìn)行有效通信。
基于原有的微處理器內(nèi),不良影響CPU的執(zhí)行效率就是訪存事件、Cache不命中事件,但是具體的影響性取決于總線接口單元運(yùn)行效率。在多個(gè)CPU核心同時(shí)間內(nèi)對(duì)內(nèi)存、多個(gè)CPU核心下發(fā)生Cache不命中事件進(jìn)行訪問(wèn)處理的情況下,CMP系統(tǒng)性能由BIU對(duì)于不同對(duì)外存儲(chǔ)訪問(wèn)的轉(zhuǎn)換機(jī)制、仲裁機(jī)制的訪問(wèn)請(qǐng)求效率[3]。所以,要對(duì)多端口總線接口單元結(jié)構(gòu)進(jìn)行優(yōu)化的選取,針對(duì)多核心訪問(wèn)主存單字的過(guò)程轉(zhuǎn)變成高效猝發(fā)訪問(wèn),也可以針對(duì)CMP處理器效率,對(duì)高效多端口BIU訪問(wèn)的仲裁機(jī)制、最佳猝發(fā)訪問(wèn)字?jǐn)?shù)量模型進(jìn)行探尋,從而解決多核處理器的核心探究問(wèn)題。
要確保多核CPU達(dá)到高效率,必須要對(duì)操作系統(tǒng)任務(wù)調(diào)度算法進(jìn)行優(yōu)化。通常任務(wù)調(diào)度算法具備局部、全局隊(duì)列調(diào)度兩大算法類型,其中應(yīng)用最為廣泛和頻繁的就是全局隊(duì)列算法。局部隊(duì)列調(diào)度指的是在操作系統(tǒng)內(nèi),針對(duì)各CPU內(nèi)核維護(hù)的獨(dú)立局部任務(wù)等待隊(duì)列,但是系統(tǒng)內(nèi)含獨(dú)立CPU內(nèi)核空閑的情況下,可以基于核心任務(wù)等待對(duì)哦內(nèi),對(duì)任務(wù)執(zhí)行進(jìn)行優(yōu)化選擇,該方式具有明顯優(yōu)勢(shì),不用借助多個(gè)CPU核心進(jìn)行任務(wù)轉(zhuǎn)換,使CPU核心局部Cache命中率顯著提升;而全局隊(duì)列調(diào)度主要為操作系統(tǒng)維護(hù)獨(dú)立全局任務(wù)等待隊(duì)列,如果系統(tǒng)內(nèi)空閑單個(gè)CPU核心,基于全局任務(wù)等待隊(duì)列內(nèi),操作系統(tǒng)能夠進(jìn)行選擇就緒任務(wù),并基于該核心來(lái)執(zhí)行任務(wù),該方式能夠使CPU核心利用效率顯著改善。
同單核中斷處理存在較大差異,多核中斷處理要求借助中斷方式來(lái)實(shí)現(xiàn)多核內(nèi)不同處理器的有效通信,因此不同的處理器的全局中斷控制器(能夠仲裁、分配各核中斷)、本地中斷控制器均應(yīng)在芯片內(nèi)進(jìn)行裝封。
除此之外,從本質(zhì)上看,多核CPU也屬于多任務(wù)系統(tǒng)。因?yàn)槿蝿?wù)的差異會(huì)存在共享資源競(jìng)爭(zhēng)激烈的狀況,所以系統(tǒng)應(yīng)供應(yīng)互斥機(jī)制、同步機(jī)制。多核無(wú)法運(yùn)用原有單核解決機(jī)制,更應(yīng)借助硬件設(shè)施來(lái)制定同步互斥機(jī)制,也可以供應(yīng)“讀-修改-寫”的原子操作。