一種多核處理器核間通信模型_第1頁
一種多核處理器核間通信模型_第2頁
一種多核處理器核間通信模型_第3頁
一種多核處理器核間通信模型_第4頁
一種多核處理器核間通信模型_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

一種多核處理器核間通信模型

0多核處理器中核間通信方式的研究多核處理器也稱為多段處理裝置(cmp),是單芯多處理器。自1996年美國斯坦福大學(xué)首次提出片上多處理器(CMP)思想和多核結(jié)構(gòu)原型,到2001年IBM推出第一個(gè)商用多核處理器POWER4,再到2005年Intel和AMD多核處理器的大規(guī)模應(yīng)用,現(xiàn)在多核處理器已成為市場主流。多核處理器經(jīng)歷了十多年的發(fā)展,其應(yīng)用范圍已覆蓋了高性能計(jì)算機(jī)、商用服務(wù)器、個(gè)人計(jì)算機(jī)、多媒體計(jì)算、嵌入式設(shè)備等眾多領(lǐng)域。多核技術(shù)及其相關(guān)研究也迅速發(fā)展,比如多核結(jié)構(gòu)設(shè)計(jì)方法、片上互連技術(shù)、可重構(gòu)技術(shù)、下一代眾核技術(shù)等。多核處理器技術(shù)經(jīng)過初步的發(fā)展,但是卻尚未臻于完善,仍然存在許多待研究的問題。盡管增加了集成在芯片上核的數(shù)量,然而,多核處理器的性能并沒有得到明顯的提高。多核處理器性能的提高取決于許多因素,諸如多核間通信、操作系統(tǒng)設(shè)計(jì)、軟件應(yīng)用開發(fā)等。例如,在雙核處理器上運(yùn)行應(yīng)用程序比起在單核心處理器上,速度提高不是很明顯。這是因?yàn)樵诖蠖鄶?shù)情況下只有一個(gè)處理器核被使用,沒有有效地支持多核應(yīng)用程序的核間通信機(jī)制。通信機(jī)制的優(yōu)劣直接影響CMP處理器的性能,高效的通信機(jī)制是發(fā)揮CMP處理器高性能的重要保障。目前,主流的片上通信機(jī)制有兩種,一種是基于共享總線的Cache結(jié)構(gòu),以斯坦福大學(xué)的Hydra處理器為代表;另一種是基于片上互連結(jié)構(gòu),以麻省理工學(xué)院的RAW處理器為代表。共享總線的Cache結(jié)構(gòu)是指芯片上的各個(gè)處理器內(nèi)核通過片上的互連總線共享一個(gè)二級或三級Cache,進(jìn)而達(dá)到對數(shù)據(jù)的共享和內(nèi)核間相互通信。核間傳遞的數(shù)據(jù)一般都通過共享的Cache做一個(gè)中轉(zhuǎn)。這種系統(tǒng)結(jié)構(gòu)的優(yōu)點(diǎn)是結(jié)構(gòu)簡單,通信速度高;缺點(diǎn)是基于共享總線的結(jié)構(gòu)可擴(kuò)展性較差。片上互連結(jié)構(gòu)是指每個(gè)處理核均有各自獨(dú)立的處理單元和存儲(chǔ)媒介,每個(gè)處理核之間通過交叉開關(guān)或片上總線網(wǎng)絡(luò)等方式相互連接。這種互連結(jié)構(gòu)由于各個(gè)處理核并不共享存儲(chǔ)媒介(Cache等),因而一般采用基于信箱機(jī)制的消息通信方式。這種結(jié)構(gòu)的優(yōu)點(diǎn)是可擴(kuò)展性好,數(shù)據(jù)帶寬有保證;缺點(diǎn)是硬件結(jié)構(gòu)復(fù)雜,設(shè)計(jì)過程復(fù)雜。目前針對多核處理器中核間通信方式的研究,本文提出了一種根據(jù)任務(wù)分類模型的新型核間通信機(jī)制,將核間通信機(jī)制分為三種不同的通信通道。本文第1部分論述了處理器上運(yùn)行任務(wù)的特點(diǎn)以及按照功能對多核處理器進(jìn)行了分類;第2部分介紹多核處理器核間通信通道的設(shè)計(jì);第3部分給出仿真實(shí)驗(yàn)并分析系統(tǒng)開銷,第4部分是本文的結(jié)論。1多核平臺(tái)技術(shù)的實(shí)現(xiàn)目前,有許多用途的CPU,如個(gè)人計(jì)算機(jī)PC,服務(wù)器等等。不同種類的核處理器只有當(dāng)最恰當(dāng)?shù)膽?yīng)用程序運(yùn)行其上的時(shí)候才能發(fā)揮出核的最佳性能??紤]到編寫并行編程的復(fù)雜性和難度,盡力尋找一種簡單易用的方式來充分利用多核平臺(tái)。通過分析CPU上運(yùn)行任務(wù)的種類來提高多核處理器的性能,并根據(jù)CPU上任務(wù)運(yùn)行總時(shí)間中計(jì)算部分所花費(fèi)時(shí)間的比例,將CPU處理的任務(wù)分成兩類:控制任務(wù)和計(jì)算任務(wù)。在控制任務(wù)里,計(jì)算只占很少一部分,主要是用來處理I/O控制。相反,在計(jì)算任務(wù)里,主要是進(jìn)行計(jì)算和處理數(shù)據(jù)。根據(jù)兩種CPU任務(wù)的不同特點(diǎn),可以把多核分成兩類:控制核和計(jì)算核??刂坪说墓δ苤饕强刂朴?jì)算機(jī)系統(tǒng),處理服務(wù)器應(yīng)用程序以及I/O存取都由控制核來處理;計(jì)算核的功能主要是計(jì)算和處理大量數(shù)據(jù),例如多媒體數(shù)據(jù)處理,數(shù)據(jù)庫數(shù)據(jù)處理,科學(xué)計(jì)算等都是計(jì)算核的典型應(yīng)用。2通道設(shè)計(jì)2.1多核處理器設(shè)計(jì)將多核處理器的少量內(nèi)核用來做控制核,其他的部分用來做計(jì)算核,然后設(shè)計(jì)了一種基于任務(wù)分類的核間通信模型——TCCM(TaskClassificationbasedCommunicationModel)來協(xié)調(diào)這兩種核。核間通信模型如圖1所示。當(dāng)運(yùn)行應(yīng)用程序的時(shí)候,將應(yīng)用程序的I/O部分交給控制核處理,同時(shí)將計(jì)算部分交給計(jì)算核來處理,兩種處理核并行處理應(yīng)用程序。因此,多核處理器的性能得到充分發(fā)揮,降低運(yùn)行應(yīng)用程序的時(shí)間開銷。在圖1體系結(jié)構(gòu)模型中,多核處理器由一個(gè)控制核和三個(gè)計(jì)算核組成。其中,每個(gè)核都由CPU和本地高級可編程中斷控制器(APIC,AdvancedProgrammableInterruptController)構(gòu)成,且都通過總線來與共享內(nèi)存相連接;I蛐OAPIC負(fù)責(zé)接收外部中斷(系統(tǒng)硬件以及I蛐O設(shè)備產(chǎn)生的中斷),并通過總線橋連接到總線上。高級可編程中斷控制器APIC分成兩種:本地APIC和I/OAPIC。每一個(gè)處理核都有自己的本地APIC,可以從中斷堆棧和I/OAPIC中接收中斷。在圖1中,本地APIC有兩種中斷信號:中斷消息和ICIs(核間中斷)。通過使用ICIs發(fā)送核間中斷給其他處理核,使用中斷消息與I/O設(shè)備進(jìn)行通信。本地APIC發(fā)送或接收的中斷消息是不同的。所有由I/O事件產(chǎn)生的中斷將由控制核來處理。所以,只有控制核的本地APIC能直接地從I/O設(shè)備中接收I/O中斷以及發(fā)送中斷到I/O設(shè)備。I/OAPIC只負(fù)責(zé)接收由系統(tǒng)硬件以及I/O設(shè)備產(chǎn)生的中斷,然后發(fā)送中斷消息類中斷到本地APICs上。在TCCM通信機(jī)制中,I/OAPIC只發(fā)送中斷到控制核的本地APICs上。2.2可靠性的內(nèi)部分類2.2.1共享內(nèi)存數(shù)據(jù)的接收當(dāng)核A要與核B通信時(shí),首先,核A訪問共享內(nèi)存,并在共享內(nèi)存中獲得一塊共享區(qū)域并存放需要通信的數(shù)據(jù),然后核A發(fā)送到核B一個(gè)核間中斷(IPI),并把需要通信的數(shù)據(jù)在共享內(nèi)存中存放的地址信息一同發(fā)送到核B。核B響應(yīng)核間中斷(IPI),然后訪問共享內(nèi)存中存放的數(shù)據(jù),核B訪問并處理這些數(shù)據(jù)請求。一旦核B處理完這些數(shù)據(jù)請求,就會(huì)把處理后的數(shù)據(jù)信息寫回到共享內(nèi)存中。然后核B發(fā)送一個(gè)核間中斷(IPI)給核A,而核A也就可以訪問共享內(nèi)存并獲得需要的數(shù)據(jù)了。在核A等待核B處理完成的數(shù)據(jù)的過程中,核A也能與其他核進(jìn)行通信。核與核之間的通信路徑是比較短和簡單的,其通信路徑如圖2所示。2.2.2外部i/o設(shè)備的運(yùn)行當(dāng)核與核之間進(jìn)行通信的過程中,控制核也能與外部I/O設(shè)備進(jìn)行通信,其通信路徑如圖3所示。當(dāng)有I/O請求需要處理時(shí),就會(huì)有一個(gè)控制核來處理。需要與外部I/O設(shè)備交換的數(shù)據(jù)被存儲(chǔ)在共享內(nèi)存中,因?yàn)槠渌幚砗艘部赡茉L問這些數(shù)據(jù),所以需要將交換數(shù)據(jù)存放到共享內(nèi)存中。當(dāng)外部I/O設(shè)備或者系統(tǒng)發(fā)出一個(gè)I/O中斷的時(shí)候,I/OAPIC將接受該中斷,并選擇一個(gè)控制核,然后把該中斷發(fā)送給控制核的本地APIC。因?yàn)橹挥锌刂坪丝梢灾苯釉L問I/O設(shè)備,所以該通信需要占用控制核但卻只占用多核的某一小部分來集中處理I/O任務(wù),減少了其他核上需要I/O處理的等待時(shí)間,這種通信方式提高了多核的整體性能。2.2.3生成的數(shù)據(jù)及獲取數(shù)據(jù)的能力控制核與I/O設(shè)備通信路徑以及核與核之間的通信路徑都被作為計(jì)算核與I/O設(shè)備通信的一部分,包含到計(jì)算核與I/O設(shè)備通信中。計(jì)算核與I/O設(shè)備通信路徑如圖4所示。當(dāng)計(jì)算核A需要訪問外部I/O設(shè)備時(shí),首先,組成一個(gè)I/O請求信息,該信息中包含了控制核B所需的所有信息。然后核A訪問共享內(nèi)存并存儲(chǔ)該信息,之后核A發(fā)送核B一個(gè)核間中斷(ICI),并把存放在共享內(nèi)存中的地址信息一同發(fā)送給核B。核B的本地APIC接受該中斷,并訪問共享內(nèi)存獲得該請求。根據(jù)請求信息中的消息,核B訪問I/O設(shè)備并獲得所需數(shù)據(jù),這些數(shù)據(jù)將被存放到共享內(nèi)存中。核B用數(shù)據(jù)在內(nèi)存中的存放地址來組成一個(gè)寫回信息,并將此信息存放到共享內(nèi)存中,然后再發(fā)送一個(gè)核間中斷(ICI)通知核A,核A接受該中斷,并訪問共享內(nèi)存獲得所需數(shù)據(jù)。計(jì)算核與I/O設(shè)備通信是復(fù)雜的,也比其他通信時(shí)間長。該通信實(shí)現(xiàn)了在控制核和計(jì)算核之間I/O任務(wù)的遷移而且允許更多的核來并行運(yùn)行應(yīng)用程序。2.3基于非零的訪問機(jī)制TCCM通信模型的實(shí)現(xiàn)是基于共享內(nèi)存的,為了使該通信模型下的三種通信通道順利實(shí)現(xiàn),針對共享內(nèi)存進(jìn)行了設(shè)計(jì),共享內(nèi)存的設(shè)計(jì)如圖5所示。首先,把共享內(nèi)存區(qū)分成許多小區(qū)域,然后用一個(gè)鏈表來進(jìn)行描述。鏈表的每一個(gè)節(jié)點(diǎn)都對應(yīng)共享內(nèi)存的一塊區(qū)域,鏈表中的節(jié)點(diǎn)元素值設(shè)置為零或非零。如果元素為非零,就代表該內(nèi)存區(qū)域正在被使用;否則,就代表該內(nèi)存區(qū)域可以被使用??梢詾樵撴湵矶x一個(gè)鎖來確保獨(dú)占性訪問。這樣的話,當(dāng)一個(gè)核想要訪問共享內(nèi)存的話,必須請求得到該鎖。然后請求該鏈表來獲得一個(gè)內(nèi)存塊區(qū)域。當(dāng)處理器核檢查元素n為零時(shí),就把該元素設(shè)置成一個(gè)非零數(shù)字,該數(shù)字代表有多少個(gè)讀者訪問該區(qū)域。當(dāng)該內(nèi)核獲得該區(qū)域N時(shí),通過下面的公式計(jì)算區(qū)域N的物理地址。式中,AddrN表示區(qū)域N的物理地址,Addrinit表示共享內(nèi)存的初始物理地址,n表示可用的共享內(nèi)存區(qū)域數(shù),Size表示一個(gè)共享內(nèi)存塊區(qū)域的大小。讀共享內(nèi)存的過程與寫內(nèi)存的過程是相反的,可以利用公式(2)來計(jì)算區(qū)域數(shù)。核在元素值為n的數(shù)鏈表中找到該元素,需要該元素的值減1,即表示訪問該區(qū)域的讀者數(shù)中已經(jīng)有一個(gè)完成操作。當(dāng)有讀者讀完該數(shù)據(jù)后,也必須修改該元素的值。如果該值變成零時(shí),意味著該元素對應(yīng)的區(qū)域又可以重新使用。下面的程序就是為該數(shù)組定義的一個(gè)鎖,用來實(shí)現(xiàn)內(nèi)存獨(dú)占性訪問。3tccm通信模型的應(yīng)用檢測TCCM模型的效率時(shí),現(xiàn)使用Bonnie來測試該模型。在測試中,將在測試程序中加入了浮點(diǎn)數(shù)運(yùn)算這種計(jì)算密集型的代碼,使得計(jì)算部分和I/O部分的比例能靈活地進(jìn)行調(diào)整。設(shè)定q為程序運(yùn)行總時(shí)間中I/O部分所占的時(shí)間比例,使用表1中兩種處理器標(biāo)準(zhǔn)來進(jìn)行程序測試。首先,在沒有運(yùn)用TCCM通信模型的基礎(chǔ)上運(yùn)行程序,同時(shí)q的值隨著測試次數(shù)而遞增;接下來在TCCM通信模型上,q值在保持與上相同的情形下重新運(yùn)行程序,會(huì)得到圖6所示的對比效果圖。從圖6可以看出,當(dāng)q所占的比例低于50%的時(shí)候,在TCCM模型下,所花費(fèi)的總時(shí)間會(huì)隨著I/O部分時(shí)間花費(fèi)的增加而增加。這是因?yàn)橛?jì)算部分和I/O部分在不同的核上是平行運(yùn)行的,所以總時(shí)間費(fèi)用等于這兩部分中時(shí)間費(fèi)用較大的一部分。當(dāng)q的值超過50%時(shí),總時(shí)間費(fèi)用會(huì)快速增長,這是因?yàn)镮/O部分在程序中占了主要部分,總時(shí)間就花費(fèi)在與I/O部分的通信時(shí)間上了。當(dāng)q的值在20%到60%之間時(shí),運(yùn)用TCCM通信模型時(shí),可以很明顯地降低總時(shí)間花費(fèi)。當(dāng)q的值接近50%時(shí),TCCM通信模型達(dá)到最佳性能,這是因?yàn)榇藭r(shí)這兩部分在基準(zhǔn)程序中達(dá)到最大并行性。比較4核和2核的情形,可以看出基于TCCM的通信模型使多核處理器的性能得到了提高,并很好地支持了多核并行運(yùn)行程序。TCCM通信模型的宗旨就是充分利用多核。圖7至圖10展示了TCCM通信模型是如何充分利用多核的。在正常情況下的運(yùn)行期間,圖7表明:核1的利用率總是高于核2的利用率,而整個(gè)運(yùn)行期間,核2的利用率不超過10%。這說明了在多核平臺(tái)下,只有一個(gè)核被使用了,而另一個(gè)核未被充分使用。在圖8中,這兩個(gè)核都得了充分利用,這也說明了在TCCM通信模型下,在多核平臺(tái)下的這兩個(gè)核都得到了充分利用。在圖9中,盡管多核處理器中包含了4核,但是只有一個(gè)核得到了利用,其他三個(gè)核都沒有充分發(fā)揮其性能。而在圖10中,核1和核3是控制核,而其他兩個(gè)核是計(jì)算核。在TCCM通信模型下,核1、2、4得到了很好的利用,而控制核3的利用率是很低的。選擇三個(gè)核來充當(dāng)計(jì)算核,那么所有的核都能達(dá)到很高的利用率。這是因?yàn)榇蠖鄶?shù)應(yīng)用程序只包括少量的I/O任務(wù),因此只需選擇多核的一少部分來充當(dāng)控制核即可。通過實(shí)驗(yàn)結(jié)果的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論