• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      多核處理器發(fā)展趨勢(shì)及關(guān)鍵技術(shù)

      2018-03-16 06:17:58胡海明
      關(guān)鍵詞:任務(wù)調(diào)度同構(gòu)異構(gòu)

      周 楠,胡 娟,胡海明

      (1.中國(guó)航天科工集團(tuán)第二研究院706所,北京市 100854;2.中國(guó)電子科技集團(tuán)公司第十五研究所,北京 100083)

      0 引 言

      多核技術(shù)相關(guān)的研究已成為當(dāng)前處理器研究領(lǐng)域的重點(diǎn),例如多核處理器的架構(gòu)設(shè)計(jì)、低功耗設(shè)計(jì)、片上互連與通信技術(shù)等。多核技術(shù)仍處于發(fā)展階段,因此多核處理器的發(fā)展還具有極大的潛力。本文嘗試從多核處理器發(fā)展趨勢(shì)的分析著手,進(jìn)一步分析多核處理器研究領(lǐng)域的五大關(guān)鍵技術(shù),最后基于上述分析提出了多核處理器技術(shù)所面臨的三大問(wèn)題。

      1 多核處理器發(fā)展趨勢(shì)分析

      1.1 處理器由單核向多核的發(fā)展

      在單核處理器時(shí)期,為維持處理器性能的增長(zhǎng)速度,主要采用兩種方法:

      (1)改進(jìn)處理器制造工藝以提高CPU主頻;

      (2)提高指令執(zhí)行效率,即增加每周期執(zhí)行指令數(shù)(instruction per cycle,IPC)。

      然而,這兩種方法卻會(huì)產(chǎn)生兩方面的問(wèn)題[1]。一方面,通過(guò)改進(jìn)制造工藝,可以在芯片上集成更多的電路從而獲得更高的時(shí)鐘頻率,但芯片的功耗與整個(gè)芯片的密度和運(yùn)行時(shí)鐘頻率成正比,因此必將以增加整個(gè)芯片的功耗作為時(shí)鐘頻率提升的代價(jià)。如圖1所示,到2005年左右,處理器芯片的功耗達(dá)到頂峰,其原因是當(dāng)芯片的總功耗達(dá)到100瓦時(shí),計(jì)算機(jī)降溫系統(tǒng)不再能夠輕易地對(duì)芯片進(jìn)行冷卻。因此,為了將芯片的功耗限制在一個(gè)可以接受的范圍內(nèi),不能再簡(jiǎn)單地提高芯片時(shí)鐘頻率以提高芯片性能。

      圖1 芯片時(shí)鐘頻率、功耗及性能發(fā)展趨勢(shì)

      另一方面,為提高指令執(zhí)行效率,目前的單核處理器廣泛使用指令流水線、超長(zhǎng)指令字、超標(biāo)量結(jié)構(gòu)、超線程技術(shù)等。但受限于單核處理器的執(zhí)行能力,并沒(méi)有從本質(zhì)上顯著提升處理器系統(tǒng)的性能。隨著技術(shù)的發(fā)展,處理器核設(shè)計(jì)的復(fù)雜度已經(jīng)停止增長(zhǎng),單芯片上可以集成的晶體管數(shù)量的不斷增加,使得系統(tǒng)設(shè)計(jì)者可以在單個(gè)芯片上放置更多的處理器核,從而可以利用應(yīng)用程序的線程/任務(wù)級(jí)并行來(lái)提高處理器性能。如圖1所示,在2000年左右時(shí)鐘頻率到達(dá)極限時(shí),處理器核的性能也趨于飽和。而由圖2可知此時(shí)單個(gè)芯片上集成的核數(shù)開(kāi)始迅速增長(zhǎng),且其增長(zhǎng)速度甚至比摩爾定律所提出的速度(每?jī)赡攴环?更快。這是因?yàn)樵O(shè)計(jì)者已經(jīng)傾向于使用優(yōu)化過(guò)的簡(jiǎn)單核而不再是功耗巨大的復(fù)雜核?;谏鲜鰞蓚€(gè)問(wèn)題,在單核處理器性能提升遇到瓶頸的情況下,處理器開(kāi)始朝著多核方向發(fā)展。

      圖2 芯片晶體管數(shù)、核數(shù)發(fā)展趨勢(shì)

      1.2 多核處理器由同構(gòu)向異構(gòu)的發(fā)展

      根據(jù)同一芯片上集成的各個(gè)處理器核的結(jié)構(gòu)是否一致,可將多核處理器劃分為兩類,即同構(gòu)多核處理器與異構(gòu)多核處理器

      1.2.1 同構(gòu)多核處理器

      同構(gòu)多核處理器內(nèi)部由相同結(jié)構(gòu)的核心構(gòu)成,每個(gè)核心的功能完全相同,沒(méi)有層級(jí)之分,可以看作傳統(tǒng)SMP在單芯片上的實(shí)現(xiàn)。就功能/性能比同構(gòu)多核處理器還可以分為:低功耗處理器和高性能處理器兩種類型[2]。

      (1)低功耗同構(gòu)處理器

      低功耗同構(gòu)處理器的設(shè)計(jì)目標(biāo)是使用小型的、同類的處理器核來(lái)降低處理器整體功耗。低功耗同構(gòu)處理器按照應(yīng)用側(cè)重點(diǎn)還可以進(jìn)一步細(xì)分為兩類:面向低延遲的處理器的和面向高吞吐量的處理器。

      1)面向低延遲的處理器

      面向低延遲的處理器就是在低功耗條件下,能夠快速響應(yīng)應(yīng)用的處理器。此類處理器通常應(yīng)用在移動(dòng)設(shè)備中,以同時(shí)滿足設(shè)備的低功耗和應(yīng)用實(shí)時(shí)性需求。例如,ARM的cortex-A9 MPCore處理器在一個(gè)芯片上就包含4個(gè)對(duì)稱的核。每個(gè)處理器核包含一個(gè)亂序的八級(jí)流水線[3],可在具有功耗限制的設(shè)備中可以提供相對(duì)低的延遲,通常應(yīng)用在手機(jī)、數(shù)字電視等移動(dòng)設(shè)備中。

      2)面向高吞吐量的處理器

      對(duì)某些系統(tǒng)而言,系統(tǒng)的整體吞吐量是首要考慮因素。如在面向并行計(jì)算的大型系統(tǒng)中,需要大量的處理器核以同時(shí)執(zhí)行多個(gè)線程。相對(duì)于較大的處理核,小型、低功耗的處理器核占用的面積更小,因此可以在同一塊芯片上集成更多的小核以提升同時(shí)處理多線程的能力,從而提高系統(tǒng)整體吞吐量。MIT的RAW處理器和Oracle公司的SPARC T5都屬于面向高吞吐量的處理器。

      由MIT推出的RAW處理器[4]由一組可編程的片組成,這些片之間通過(guò)緊密集成的可編程互連結(jié)構(gòu)進(jìn)行連接。每個(gè)片包含一個(gè)順序流水線以及私有的數(shù)據(jù)和指令內(nèi)存。RAW處理器主要面向并行和多媒體應(yīng)用,而且允許自定義操作。這種面向特定領(lǐng)域的處理器支持一些多媒體應(yīng)用或同時(shí)執(zhí)行多個(gè)線程,主要目的是提升整個(gè)系統(tǒng)的吞吐量。RAW處理器結(jié)構(gòu)圖如圖3所示。

      圖3 RAW處理器結(jié)構(gòu)

      Oracle公司的片上多線程SoC處理器SPARC T5[5]在前一代T4處理器的基礎(chǔ)上將處理器核數(shù)增加到16個(gè),在將L3級(jí)緩存提升至8 MB的同時(shí)也將處理帶寬提升了3倍。SPARC T5主要面向多線程應(yīng)用,它同時(shí)最多可以執(zhí)行1024個(gè)線程,最大帶寬可以達(dá)到5.65 TB/s。SPARC T5相較于高性能處理器單線程性能可能相對(duì)較低,但是它支持同時(shí)執(zhí)行多個(gè)線程,因而可以增加系統(tǒng)的整體吞吐量。此處理器適用于不需要進(jìn)行大量計(jì)算的服務(wù)器,如web服務(wù)器等。

      (2)高性能同構(gòu)處理器

      高性能多核處理器通常由幾個(gè)較大的采用亂序執(zhí)行模型的超標(biāo)量核構(gòu)成。這種處理器的主要目的是最大化單線程性能,常用于對(duì)性能要求較高的應(yīng)用中。Intel研制的Core i7處理器就是典型的高性能同構(gòu)處理器。它主要是針對(duì)服務(wù)器和桌面計(jì)算機(jī)設(shè)計(jì)的,因而它對(duì)于單個(gè)線程具有極高的性能。然而,其缺點(diǎn)是它的核數(shù)相對(duì)較少且支持較少的線程數(shù),相較于小型的低功耗處理器SPARC T5其功耗也較大。

      1.2.2 異構(gòu)多核處理器

      異構(gòu)多核處理器架構(gòu)作為一種系統(tǒng)設(shè)計(jì)方法,其主要目標(biāo)是在嚴(yán)格的功耗限制下提升用戶應(yīng)用軟件性能。

      異構(gòu)多核處理器通常由一個(gè)或多個(gè)通用處理器核和多個(gè)針對(duì)特定領(lǐng)域的專用處理器核構(gòu)成,以實(shí)現(xiàn)處理器性能的最優(yōu)化組合,同時(shí)有效地降低功耗。設(shè)計(jì)異構(gòu)多核處理器系統(tǒng)時(shí),主要考慮的因素有處理器核的功耗、性能和可編程性等。典型的異構(gòu)多核處理器有IBM的Cell BroadBand Engine[6]和ARM推出的big.LITTLE[7]。

      Cell處理器是針對(duì)特定應(yīng)用的一款異構(gòu)多核處理器,主要用于流媒體或類似的科學(xué)應(yīng)用中。Cell處理器由一個(gè)主處理器(power processing element,PPE)和8個(gè)協(xié)處理器(synergetic processing elements,SPEs)構(gòu)成。PPE是一個(gè)兩路多線程通用處理器核,主要負(fù)責(zé)控制協(xié)調(diào)任務(wù),并作為8個(gè)SPE的控制器。SPE則是單指令流多數(shù)據(jù)流(SIMD)向量處理器,其指令集主要由SIMD向量指令構(gòu)成。通過(guò)將一個(gè)通用處理器核和8個(gè)小型卻計(jì)算能力強(qiáng)大的核結(jié)合起來(lái),使得Cell處理器具有優(yōu)異的處理性能。Cell處理器結(jié)構(gòu)如圖4所示。

      圖4 Cell 處理器結(jié)構(gòu)

      ARM推出的big.LITTLE異構(gòu)多核處理器由兩個(gè)執(zhí)行相同指令集的處理器:高性能的大型超標(biāo)量處理器(ARM Cortex-A15)和高能效的小型順序處理器(Cortex-A7)構(gòu)成。在某些應(yīng)用中,兩個(gè)核可能不是同時(shí)保持著運(yùn)行態(tài),應(yīng)用程序可以透明地在兩個(gè)核之間切換,使用Cortex-A15以獲得高性能,或使用Cortex-A7以降低功耗。如果有多個(gè)應(yīng)用程序需要運(yùn)行,則兩個(gè)核都將保持運(yùn)行態(tài)。一般而言應(yīng)用程序都是預(yù)先靜態(tài)地映射到它們最適合的核上,以獲取性能最大化。big.LITTLE架構(gòu)如圖5所示。

      圖5 big.LITTLE架構(gòu)

      由上述分析可知,異構(gòu)多核處理器集成了多個(gè)功能、結(jié)構(gòu)與運(yùn)算性能都不相同的處理器核心,每個(gè)處理器核心分別負(fù)責(zé)各自的任務(wù)。因此可以更加靈活高效地均衡資源配置,提升系統(tǒng)性能,可有效降低系統(tǒng)功耗。同構(gòu)多核處理器的發(fā)展卻受制于Amdal[8](阿姆達(dá)爾)定律:不斷增加同種類型CPU核心的數(shù)目雖然可以增強(qiáng)處理器并行處理器的能力,但程序中必須串行執(zhí)行的部分卻會(huì)制約整個(gè)系統(tǒng)處理性能的提升。因此,在同構(gòu)多核處理器內(nèi)部核心數(shù)目達(dá)到某一極限后,將無(wú)法再通過(guò)增加處理器核心數(shù)目來(lái)提升其性能。異構(gòu)多核處理器的諸多優(yōu)點(diǎn)都符合未來(lái)計(jì)算機(jī)系統(tǒng)發(fā)展的要求,因此異構(gòu)多核處理器將成為未來(lái)多核處理器發(fā)展的趨勢(shì)。

      2 多核處理器關(guān)鍵技術(shù)分析

      隨著異構(gòu)多核處理器的異軍突起,其在傳統(tǒng)的操作系統(tǒng)、并行計(jì)算方法以及多線程技術(shù)等領(lǐng)域都帶來(lái)了較為深遠(yuǎn)的影響。就當(dāng)前的多核環(huán)境而言,處理器的核間通信、任務(wù)調(diào)度、Cache一致性、核間同步與互斥、核間中斷處理機(jī)制等技術(shù)都極為重要。下面分別對(duì)上述5點(diǎn)進(jìn)行分析。

      2.1 核間通信

      隨著單芯片上處理器核數(shù)的增多和計(jì)算復(fù)雜性的增加,處理器核間的互連和通信將會(huì)成為多核處理器系統(tǒng)的性能瓶頸,這需要更有效的處理器核間通信來(lái)提高性能,而不僅僅是它的處理速度。

      目前主要使用的核間通信機(jī)制有3種方式:共享緩存的總線結(jié)構(gòu)、共享總線結(jié)構(gòu)和基于Noc的結(jié)構(gòu)。

      (1)共享緩存總線結(jié)構(gòu)

      該結(jié)構(gòu)的特點(diǎn)是每個(gè)處理器核通過(guò)互連總線共享一個(gè)L2 cache或L3 Cache,以實(shí)現(xiàn)數(shù)據(jù)共享和互連通信。這是多核處理器領(lǐng)域最早的片上通信模式。圖6、圖7所示為共享緩存的總線的架構(gòu),其中圖6(a)是統(tǒng)一緩存存取架構(gòu)(uniform cache access,UCA)。在UCA架構(gòu)中,所有處理器核統(tǒng)一共享L2 Cache,并擁有相同的存取延遲。這種架構(gòu)可以平衡內(nèi)部負(fù)載,具有更高的設(shè)備利用率。其缺點(diǎn)是,如果L1 Cache缺失,則會(huì)在處理器通過(guò)內(nèi)部總線存取L2 Cache時(shí)造成較大的存取延遲和總線競(jìng)爭(zhēng)。圖6(b)是非統(tǒng)一緩存存取架構(gòu)(non-uniform cache access,NUCA)。在NUCA架構(gòu)中,每個(gè)處理器擁有一個(gè)本地L2 Cache。這種結(jié)構(gòu)可以降低存取延遲和總線競(jìng)爭(zhēng),但是其缺點(diǎn)是,在L2 Cache中存在數(shù)據(jù)副本,因此設(shè)備利用率(容量利用率)較低。其次,這種架構(gòu)預(yù)先劃分了L2 Cache的容量,所以會(huì)導(dǎo)致負(fù)載不均衡。隨著集成度提高,可以將L3 Cache集成到單個(gè)芯片中,這可以極大地解決處理器核之間的互連和通信問(wèn)題,如圖7(a)、圖7(b)所示。

      圖6 UCA及NUCA架構(gòu)

      圖7 帶有L3 Cache的UCA及NUCA

      共享緩存的總線結(jié)構(gòu)的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、通信速度快等;其缺點(diǎn)是可擴(kuò)展性差、延遲高,容易出現(xiàn)競(jìng)爭(zhēng)和通信瓶頸。因此,這種結(jié)構(gòu)適用于擁有少數(shù)處理器核的同構(gòu)處理器。

      (2)共享總線結(jié)構(gòu)

      共享總線意味著每個(gè)處理器核擁有單獨(dú)的處理單元和存儲(chǔ),每個(gè)核通過(guò)交叉開(kāi)關(guān)處理器核間的片上總線相連。其通信模型基于mailbox(郵箱),每個(gè)處理器核通過(guò)訪問(wèn)一個(gè)公有郵箱相互通信。

      前述IBM的Cell處理器所使用元件互連總線(element interconnect bus,EIB)就是典型的共享總線結(jié)構(gòu)。圖8給出了其架構(gòu),作為片上互連的12個(gè)元件之間傳輸指令和數(shù)據(jù)的互聯(lián)總線,它有4個(gè)數(shù)據(jù)環(huán)、一個(gè)共享的命令總線和一個(gè)中央數(shù)據(jù)仲裁器,這些部件一起連接起12個(gè)Cell BE元件。EIB允許每個(gè)SPE分段使用總線。每個(gè)環(huán)能夠處理3個(gè)并發(fā)非重疊轉(zhuǎn)移,允許此網(wǎng)絡(luò)在EIB上同時(shí)支持12個(gè)數(shù)據(jù)轉(zhuǎn)移。

      圖8 元件互連總線

      共享總線結(jié)構(gòu)的主要優(yōu)點(diǎn)包括簡(jiǎn)單的拓?fù)浣Y(jié)構(gòu),低開(kāi)銷和高可擴(kuò)展性,但其缺點(diǎn)是具有復(fù)雜的硬件架構(gòu),需要較大的軟件改動(dòng),所以它主要應(yīng)用在異構(gòu)多核處理器中。此外“RISC+DSP”的架構(gòu)同樣采用這種通信模式。隨著單芯片上處理器核數(shù)的增多,共享總線結(jié)構(gòu)可以隨之?dāng)U展并適應(yīng)。然而,一些新問(wèn)題隨之出現(xiàn),如,互連線延遲問(wèn)題,系統(tǒng)全局同步問(wèn)題,設(shè)計(jì)效率和重用問(wèn)題等。因此,這種架構(gòu)僅僅滿足小規(guī)模處理器核間通信的需求。

      (3)基于Noc的結(jié)構(gòu)

      Noc[9]意味著在單個(gè)芯片上基于網(wǎng)絡(luò)通信實(shí)現(xiàn)了一個(gè)超級(jí)系統(tǒng);它的主要思想是將網(wǎng)絡(luò)技術(shù)移植到芯片設(shè)計(jì)上,以解決通信瓶頸問(wèn)題和全局時(shí)鐘問(wèn)題。

      典型的基于Noc結(jié)構(gòu)的多核處理器是4*4的mesh-based RAW處理器,Inter的80-tile Noc連接的Tera-scale處理器,Tile64處理器等等。由前述可知RAW處理器主要由16個(gè)計(jì)算單元(Tile)和片上網(wǎng)絡(luò)構(gòu)成,每個(gè)Tile是RAW的一個(gè)基本功能單元。在Tera-Scale處理器中,每個(gè)核有兩個(gè)獨(dú)立的算術(shù)單元,2 KB數(shù)據(jù)緩存和3 KB的指令緩存。80個(gè)核按照8*10矩陣進(jìn)行排列,使用2D自路由方法連接每個(gè)核。在Tile64處理器中,它使用稱為imesh的網(wǎng)絡(luò)來(lái)連接64個(gè)計(jì)算節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有一個(gè)RISC和兩個(gè)能夠訪問(wèn)其它緩沖器的緩沖器構(gòu)成?;贜oc的結(jié)構(gòu)可以減少芯片面積,降低功耗,改善性能和提高可擴(kuò)展性。它已經(jīng)成為一種提供更高可擴(kuò)展性、可靠性和更高帶寬的解決方案。

      2.2 任務(wù)調(diào)度設(shè)計(jì)

      多核處理器上的任務(wù)調(diào)度技術(shù)已經(jīng)十分成熟,比如簡(jiǎn)單的調(diào)度算法RR(round robin)、Linux經(jīng)典調(diào)度算法DP(dynamic priority)、Linux2.6.23之后采用的完全公平調(diào)度算法CFS(completely fair scheduler)等。但這些傳統(tǒng)的調(diào)度算法是基于以下兩個(gè)前提的:

      (1)處理器核是同構(gòu)的,不存在結(jié)構(gòu)與性能差異;

      (2)處理器核的數(shù)目是固定不變的。

      但是,對(duì)于異構(gòu)多核處理器而言這些前提都不成立,傳統(tǒng)任務(wù)調(diào)度算法在異構(gòu)多核處理器上存在不足。因此,我們不能簡(jiǎn)單地將傳統(tǒng)任務(wù)調(diào)度算法移植到異構(gòu)多核處理器上。異構(gòu)多核環(huán)境下的任務(wù)調(diào)度主要分為靜態(tài)任務(wù)調(diào)度和動(dòng)態(tài)任務(wù)調(diào)度兩種類型[10]:

      (1)靜態(tài)任務(wù)調(diào)度適用于具有約束與依賴關(guān)系的任務(wù),需要提前獲悉任務(wù)的運(yùn)行時(shí)間、任務(wù)優(yōu)先級(jí)、任務(wù)間的數(shù)據(jù)承接關(guān)系以及當(dāng)前處理器核的處理能力、拓?fù)浣Y(jié)構(gòu)等基本信息。在編譯程序時(shí)就根據(jù)上述信息將任務(wù)分配到相應(yīng)的處理器核上,且此任務(wù)分配過(guò)程是不可逆的。

      (2)動(dòng)態(tài)任務(wù)調(diào)度則無(wú)法在調(diào)度之前將任務(wù)分配到確定的處理器核上,而需要根據(jù)處理器核的實(shí)時(shí)負(fù)載情況進(jìn)行任務(wù)分配,以達(dá)到各個(gè)處理器核上任務(wù)負(fù)載均衡的目的。

      已有的一些采用構(gòu)造任務(wù)狀態(tài)圖以支持關(guān)鍵路徑的動(dòng)態(tài)調(diào)度算法,需要實(shí)時(shí)獲取前一階段的整體調(diào)度信息,使得與任務(wù)調(diào)度無(wú)關(guān)的開(kāi)銷較大。Kallia Chronaki等[12]提出了一種支持關(guān)鍵路徑的動(dòng)態(tài)調(diào)度器,同典型的HEFT算法相比,該方法基于運(yùn)行時(shí)發(fā)現(xiàn)的信息,可以在不使用數(shù)據(jù)庫(kù)或先前調(diào)度信息的條件下完成任務(wù)調(diào)度。在具有快核和慢核的異構(gòu)多核處理器上,調(diào)度器可以動(dòng)態(tài)地將關(guān)鍵任務(wù)分配到快核上以提高性能。該調(diào)度器仍需進(jìn)一步擴(kuò)展調(diào)度策略,以根據(jù)運(yùn)行時(shí)資源的可用性和應(yīng)用的特點(diǎn)來(lái)靈活地進(jìn)行任務(wù)調(diào)度,從而提高調(diào)度器的自適應(yīng)性。

      2.3 Cache一致性機(jī)制設(shè)計(jì)

      Cache結(jié)構(gòu)廣泛應(yīng)用于基于共享內(nèi)存的多核處理器中。Cache用于將共享內(nèi)存中的數(shù)據(jù)復(fù)制到本地處理器核上,以提升多核處理器數(shù)據(jù)訪問(wèn)的速度。這一復(fù)制過(guò)程會(huì)導(dǎo)致共享內(nèi)存中的數(shù)據(jù)在各處理器核上都存在一份單獨(dú)鏡像的問(wèn)題,因此不同的處理器核通過(guò)Cache訪問(wèn)同一地址時(shí)可能出現(xiàn)數(shù)據(jù)差異錯(cuò)誤。為維護(hù)Cache訪問(wèn)的一致性,常采用如下4種典型的Cache一致性機(jī)制:

      (1)監(jiān)聽(tīng)協(xié)議;

      (2)目錄協(xié)議;

      (3)Token協(xié)議;

      (4)Hammer協(xié)議。

      隨著手機(jī)等移動(dòng)設(shè)備的普及,移動(dòng)多核處理器的需求日益增加。因?yàn)樾枰l繁地進(jìn)行各種信號(hào)偵聽(tīng)與響應(yīng),處理器在維持本地Cache的一致性時(shí)需要消耗大量能量。當(dāng)多核共享Cache一致性較弱時(shí),可以利用應(yīng)用程序使用內(nèi)存的動(dòng)態(tài)行為來(lái)調(diào)整Cache一致性協(xié)議,以降低維持一致性的功耗?;诖?,Garo Bournoutian等[13]提出了一種架構(gòu)以減緩維護(hù)智能手機(jī)中多核處理器的整體Cache一致性功耗。利用一種細(xì)粒度的方法,這種架構(gòu)可以在較好的性能功耗比下實(shí)現(xiàn)較高的硬件Cache一致性。

      在不同核和不同層次的共享Cache間進(jìn)行數(shù)據(jù)轉(zhuǎn)移和數(shù)據(jù)處理,會(huì)影響到內(nèi)存訪問(wèn)延遲和功耗。高性能共享內(nèi)存多核處理器的效率依賴于片上Cache層次結(jié)構(gòu)的設(shè)計(jì)和一致性協(xié)議。Nitin Chaturvedi等[14]提出了一種優(yōu)化的Cache架構(gòu),可以支持不同數(shù)量的Cache塊,且各個(gè)塊的容量大小可以不同。

      傳統(tǒng)的基于目錄的Cache一致性協(xié)議在數(shù)據(jù)請(qǐng)求的關(guān)鍵路徑上添加了額外的負(fù)載,降低系統(tǒng)整體性能。事實(shí)上,利用全局的共享高性能互連結(jié)構(gòu)可以優(yōu)化Cache一致性并降低額外的負(fù)載。Qi Hu等[15]利用多頻段傳輸線實(shí)現(xiàn)了全局共享互連。利用聚合的頻段資源,該互連結(jié)構(gòu)可以擴(kuò)展系統(tǒng)并行性以改善Cache一致性的效率。

      2.4 核間同步與互斥

      傳統(tǒng)的單核處理器環(huán)境下,通過(guò)關(guān)中斷并禁止在進(jìn)入臨界區(qū)時(shí)進(jìn)行任務(wù)調(diào)度就可以實(shí)現(xiàn)互斥操作。但對(duì)多核處理器而言,實(shí)現(xiàn)互斥則更為復(fù)雜:對(duì)于多核處理器,由于多個(gè)處理器核獨(dú)立運(yùn)行代碼,使得單核處理器下的互斥操作變得不再是互斥的[16]。

      對(duì)于采用共享數(shù)據(jù)結(jié)構(gòu)的多核應(yīng)用程序,需要使用同步技術(shù)來(lái)協(xié)調(diào)多個(gè)核之間數(shù)據(jù)訪問(wèn)的正確性,目前多核系統(tǒng)中一般采用基于鎖的方式來(lái)互斥地訪問(wèn)數(shù)據(jù),以實(shí)現(xiàn)各個(gè)核之間的數(shù)據(jù)同步,然而基于鎖的同步互斥方式只能線性地訪問(wèn)數(shù)據(jù),效率較低,極大地影響了多核處理器的整體性能。因此,多核處理器下的核間同步與互斥技術(shù)顯得極為重要。

      在高速網(wǎng)絡(luò)中線速數(shù)據(jù)流量監(jiān)控是管理網(wǎng)絡(luò)的必要手段,為滿足線速需求,可以利用多核架構(gòu)來(lái)并行處理流量監(jiān)控從而提升信息處理能力。隨著網(wǎng)絡(luò)容量和復(fù)雜度的不斷提升,為多核處理器在網(wǎng)絡(luò)中的應(yīng)用提出了挑戰(zhàn)。為此,Patrick P.C.Lee等[17]提出了一種無(wú)鎖的、Cache利用率高的同步機(jī)制,以應(yīng)用在多線程的多核流量監(jiān)控應(yīng)用中。他們將這種同步機(jī)制嵌入到MCRingBuffer(多和共享環(huán)型緩沖)中,MCRingBuffer一方面允許并發(fā)的無(wú)鎖數(shù)據(jù)存取,另一方面可以提升線程同步變量的Cache訪問(wèn)局部性。

      2.5 核間中斷處理機(jī)制

      中斷機(jī)制是一種用于通知處理器處理異步事件的機(jī)制。異步事件發(fā)生后會(huì)通過(guò)硬件向處理器發(fā)出中斷請(qǐng)求,一旦處理器響應(yīng)了中斷請(qǐng)求就將保存當(dāng)前狀態(tài)下的寄存器值,運(yùn)行中斷服務(wù)程序(ISR)將異步事件處理完成,隨后處理器返回之前的處理狀態(tài)。中斷機(jī)制使得處理器可以在異步事件發(fā)生后才進(jìn)行相應(yīng)的處理,而不是一直輪詢是否有事件發(fā)生。核間中斷則是在多核處理器系統(tǒng)中用于實(shí)現(xiàn)核間消息同步與傳遞的一種特殊中斷。

      核間中斷機(jī)制[18]的作用是通過(guò)向核間中斷控制器寫入相應(yīng)的值,以通知其它核掛起當(dāng)前的任務(wù)執(zhí)行序列并跳轉(zhuǎn)至ISR執(zhí)行新任務(wù)。在單核處理器系統(tǒng)中,一般使用一個(gè)外部中斷控制器來(lái)解決所有中斷處理請(qǐng)求。在多核處理器系統(tǒng)中則存在中斷由哪個(gè)核處理的問(wèn)題,若還是由一個(gè)處理器核負(fù)責(zé)處理所有中斷請(qǐng)求,則此核上運(yùn)行的任務(wù)將被頻繁地中斷,這就會(huì)影響到多核系統(tǒng)的整體性能。因而需要核間中斷處理機(jī)制來(lái)將各個(gè)外部中斷高效地分配到各個(gè)處理器核上,實(shí)現(xiàn)系統(tǒng)均衡的核間中斷管理。

      核間中斷處理系統(tǒng)需要盡可能降低中斷處理延遲,以提高軟件的可靠性?;趪?guó)防科大自主研發(fā)的多核DSP芯片M-DSP,萬(wàn)曉陽(yáng)等[19]設(shè)計(jì)和實(shí)現(xiàn)了一種多核中斷處理系統(tǒng),相較于單核中斷處理系統(tǒng),該系統(tǒng)集成了片級(jí)中斷控制器(chip interrupt controller)和片內(nèi)中斷控制器(interrupt controller)。運(yùn)行在M-DSP上的應(yīng)用程序由中斷處理系統(tǒng)驅(qū)動(dòng),中斷處理系統(tǒng)一方面可以完成操作系統(tǒng)對(duì)應(yīng)用程序的調(diào)度控制,另一方面能夠?qū)崿F(xiàn)M-DSP與硬件接口之間的信息傳遞。

      3 多核處理器面臨的問(wèn)題

      3.1 性能功耗比

      傳統(tǒng)單核處理器通常采用提升頻率的方式來(lái)提升處理器性能,然而處理器功耗會(huì)隨著頻率的提升而急劇增加。因此在多核處理器的設(shè)計(jì)中主要通過(guò)降低處理器核頻率來(lái)達(dá)到降低功耗的目的,但是這一定程度上會(huì)影響到處理器的性能。因此,在進(jìn)行多核處理器系統(tǒng)設(shè)計(jì)時(shí)如何在功耗和性能之間達(dá)到一個(gè)平衡以爭(zhēng)取最大的性能功耗比,就成為了一個(gè)重要的問(wèn)題。

      目前,通常從時(shí)間尺度和空間尺度實(shí)現(xiàn)多核處理器的低功耗設(shè)計(jì)。從時(shí)間尺度上可以采用降低處理器的工作時(shí)鐘頻率與電壓,并且在一定時(shí)間范圍內(nèi)根據(jù)應(yīng)用程序運(yùn)行情況暫停處理器的部分運(yùn)算部件的工作的方法來(lái)降低處理器功耗,但這種方式是以犧牲性能為代價(jià)的,比如針對(duì)關(guān)鍵資源的動(dòng)態(tài)功耗管理技術(shù)。從空間尺度上,可將當(dāng)前功耗較高的處理器核上的任務(wù)遷移到另一個(gè)可替代的處理器核,使功耗密度在整個(gè)處理器芯片上實(shí)現(xiàn)均衡分布。此方式對(duì)處理器性能影響較小,但需要有冗余的處理器核作為替代核,比如動(dòng)態(tài)任務(wù)分配與遷移技術(shù)。因此,可通過(guò)結(jié)合這兩類方法的優(yōu)勢(shì)以提升處理器的性能功耗比。

      3.2 任務(wù)遷移與通信

      相較于同構(gòu)多核處理器,異構(gòu)多核處理器的核之間存在差異性,這些差異性包括微架構(gòu)、執(zhí)行單元的數(shù)目和類型、執(zhí)行單元的大小、本地Cache的大小、分支預(yù)測(cè)器的類型和大小,ISA等等。這將導(dǎo)致在其上進(jìn)行高效的任務(wù)調(diào)度難度更大。高效的調(diào)度算法在進(jìn)行任務(wù)調(diào)度時(shí),需要考慮應(yīng)用程序的特點(diǎn)、行為和相關(guān)性能,然后將這些任務(wù)正確地分配到不同類型的具有相應(yīng)特性的處理器核上[20]。

      此外,應(yīng)用程序的行為可能隨時(shí)發(fā)生變化,這就導(dǎo)致在一些執(zhí)行階段應(yīng)用程序會(huì)有不同的行為特點(diǎn),此時(shí)在不同類型的核上執(zhí)行可能獲得更好的性能。在某些階段,一個(gè)線程可能在這個(gè)核上運(yùn)行時(shí)具有最好的性能,在另外一些階段則需要運(yùn)行在另一個(gè)核上。雖然靜態(tài)調(diào)度算法在執(zhí)行之前就為核進(jìn)行了固定的任務(wù)分配,從而避免任務(wù)遷移,但是動(dòng)態(tài)調(diào)度更能適應(yīng)負(fù)載的動(dòng)態(tài)變化。動(dòng)態(tài)調(diào)度可以充分利用異構(gòu)系統(tǒng)的異構(gòu)性從而增加應(yīng)用程序的性能或者降低系統(tǒng)的能耗。此外,核之間的任務(wù)通信主要依賴核間通信機(jī)制,如何針對(duì)不同處理器架構(gòu)設(shè)計(jì)相應(yīng)的核間通信機(jī)制以提高處理器系統(tǒng)通信效率和吞吐量是一個(gè)亟待解決的問(wèn)題。根據(jù)前述分析,未來(lái)處理器將朝著異構(gòu)多核方向發(fā)展。因此,解決任務(wù)遷移與通信的問(wèn)題應(yīng)該結(jié)合異構(gòu)多核環(huán)境,深入任務(wù)動(dòng)態(tài)調(diào)度算法和核間通信機(jī)制的研究。

      3.3 軟件設(shè)計(jì)與開(kāi)發(fā)

      多核處理器在硬件上可以通過(guò)增加處理器核來(lái)提升整體的運(yùn)算性能,但是不同的多核處理器可能具有各自的指令集架構(gòu),這就將軟件設(shè)計(jì)的難題拋給了軟件開(kāi)發(fā)者[21]。在使用同構(gòu)多核處理器時(shí),已有的并行編程語(yǔ)言主要有MPI、OpenMP和Pthread等,盡管這些并行編程庫(kù)的功能已經(jīng)相當(dāng)完善,但是仍然不能完全發(fā)揮出多核處理器的并行處理能力。當(dāng)前主流的編程語(yǔ)言是C、Java和C++,在嵌入式領(lǐng)域較為流行的是C和C++。然而這些語(yǔ)言的編程模型都是針對(duì)統(tǒng)一的、共享內(nèi)存的同構(gòu)處理器而設(shè)計(jì)的,因此這些編程模型不適合于專用的異構(gòu)多核處理器架構(gòu),這就為面向異構(gòu)多核處理器的軟件設(shè)計(jì)和開(kāi)發(fā)帶來(lái)了挑戰(zhàn)。加強(qiáng)面向多核處理器的軟件設(shè)計(jì)與開(kāi)發(fā),將有利于充分挖掘處理器潛力,提升應(yīng)用程序的性能。然而當(dāng)前針對(duì)多核處理器環(huán)境下的軟件設(shè)計(jì)與開(kāi)發(fā)還需要適應(yīng)性更強(qiáng)的編程語(yǔ)言和并行編程模型,這將成為未來(lái)軟件設(shè)計(jì)領(lǐng)域一個(gè)重要的研究方向。

      4 結(jié)束語(yǔ)

      多核處理器因其控制邏輯簡(jiǎn)單、整體功耗相對(duì)較低、核心數(shù)目易于擴(kuò)展及具有良好的并行性能等優(yōu)點(diǎn),為摩爾定律的延續(xù)提供了一個(gè)新的方向并逐步成為各個(gè)處理器應(yīng)用領(lǐng)域的主流。相較于同構(gòu)多核處理器,異構(gòu)多核處理器可以擁有更加靈活的處理器核配置,具有更高的性能功耗比。未來(lái)處理器將繼續(xù)朝著低功耗高性能發(fā)展,在這一特點(diǎn)在嵌入式領(lǐng)域顯得尤為突出。因此,處理器的發(fā)展趨勢(shì)將進(jìn)一步朝著異構(gòu)多核低功耗高性能的方向發(fā)展。多核處理器相關(guān)技術(shù)已經(jīng)經(jīng)歷了近20年的發(fā)展,許多技術(shù)日益趨于完善,但是多核處理器仍有巨大的潛力亟待發(fā)掘。因此,仍然需要進(jìn)一步加深多核處理器核間通信、任務(wù)調(diào)度等關(guān)鍵技術(shù)的研究,以更完善地解決性能功耗比、任務(wù)遷移與通信及多核相關(guān)軟件設(shè)計(jì)與開(kāi)發(fā)等方面的問(wèn)題。

      [1]Tran AT.On-chip network designs for many-core computatio-nal platforms[D].Sacramento:University of California,2012:1-4.

      [2]Sawalha LH.Exploiting heterogeneous multicore processors through fine-grained scheduling and low-overhead thread migration[D].Oklahoma:The University of Oklahoma,2012:4-25.

      [3]Koppanalil J,Yeung G,O’Driscoll D,et al.A 1.6 GHz dual-core ARM cortex A9 implementation on a low power high-K metal gate 32 nm process[C]//International Symposium on Vlsi Design,Automation and Test.IEEE,2011:1-4.

      [4]Abellan JL,Ros A,Fernandez J,et al.ECONO:Express coherence notifications for efficient cache coherency in many-core CMPs[C]//International Conference on Embedded Computer Systems:Architectures,Modeling,and Simulation.NJ:IEEE,2013:237-244.

      [5]Hart JM,Cho H,Ge Y,et al.A 3.6 GHz 16-core SPARC SoC Processor in 28 nm[J].IEEE Journal of Solid-State Circuits,2014,49(1):19-31.

      [6]Zhou R,Chen H,Liu Q,et al.A server model for reliable communication on cell/B.E.[C]//International Conference on Parallel Processing.IEEE Computer Society,2013:1020-1027.

      [7]Greenhalgh P.Big.little processing with arm cortex-a15 & cortex-a7[J].ARM White Paper,2011,1(1):1-8.

      [8]Ananthanarayanan G,Malhotra G,Balakrishnan M,et al.Amdahl’s law in the era of process variation[J].International Journal of High Performance Systems Architecture,2013,4(4):218-230.

      [9]Ganguly A,Chang K,Deb S,et al.Scalable hybrid wireless network-on-chip architectures for multicore systems[J].IEEE Transactions on Computers,2011,60(60):1485-1502.

      [10]GENG Xiaozhong.Research on key techniques of task scheduling based on multi-core distributed environment[D].Changchun:Jilin University,2013:14-20(in Chinese).[耿曉中.基于多核分布式環(huán)境下的任務(wù)調(diào)度關(guān)鍵技術(shù)研究[D].長(zhǎng)春:吉林大學(xué),2013:14-20.]

      [11]Barthou D,Jeannot E.SPAGHETtI:Scheduling/placement approach for task-graphs on heterogeneous architecture[M]//Euro-Par 2014 Parallel Processing.Springer International Publishing,2014:174-185.

      [12]Chronaki K,Rico A,Badia RM,et al.Criticality-aware dynamic task scheduling for heterogeneous architectures[C]//ACM on International Conference on Supercomputing,205:329-338.

      [13]Bournoutian G,Orailoglu A.Dynamic, multi-core cache coherence architecture for power-sensitive mobile processors[C]//International Conference on Hardware/Software Codesign and System Synthesis.IEEE,2011:89-97.

      [14]Chaturvedi N,Sharma P,Gurunarayanan S.An adaptive coherence protocol with adaptive cache for multi-core architectures[C]//International Conference on Advanced Electronic Systems.IEEE,2013:197-201.

      [15]Hu Q,Wu K,Liu P.Exploiting multi-band transmission line interconnects to improve the efficiency of cache coherence in multiprocessor system-on-chip[C]//IEEE International System-on-Chip Conference.IEEE,2015.

      [16]KONG Shuaishuai.Communication and interrupt researches based on embedded multicore processor[D].Chengdu:University of Electronic Science and Technology of China,2011:7-25(in Chinese).[孔帥帥.基于嵌入式多核處理器的通信及中斷問(wèn)題的研究[D].成都:電子科技大學(xué),2011:7-25.]

      [17]Lee PPC,Tian B,Chandranmenon G.A lock-free,cache-efficient multi-core synchronization mechanism for line-rate network traffic monitoring[C]//IEEE International Symposium on Parallel & Distributed Processing.IEEE,2010:1-12.

      [18]LIJiaojiao.DesignandimplementationofthemainmodulesforoperatingsystemrunningonSMPprocessorplatform[D].Xi’an:XidianUniversity,2012:47-51(inChinese).[李嬌嬌.面向SMP架構(gòu)處理器平臺(tái)操作系統(tǒng)主要模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012:47-51.]

      [19]WANXiaoyang,LIYong,LUOBo.DesignandimplementationofmulticoreDSPinterruptsystembasedonM-DSP[C]//MicroprocessorTechnologyForum,2014:1-6(inChinese).[萬(wàn)曉陽(yáng),李勇,羅波.基于M-DSP的多核DSP中斷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[C]//微處理器技術(shù)論壇,2014:1-6.]

      [20]HungSH,TuCH,YangWL.Aportable,efficientinter-corecommunicationschemeforembeddedmulticoreplatforms[J].JournalofSystemsArchitecture,2011,57(2):193-205.

      [21]GrayI,AudsleyNC.Challengesinsoftwaredevelopmentformulticoresystem-on-chipdevelopment[C]//23rdIEEEInternationalSymposiumonRapidSystemPrototyping.IEEE,2012:115-121.

      猜你喜歡
      任務(wù)調(diào)度同構(gòu)異構(gòu)
      巧用同構(gòu)法解決壓軸題
      試論同課異構(gòu)之“同”與“異”
      指對(duì)同構(gòu)法巧妙處理導(dǎo)數(shù)題
      同構(gòu)式——解決ex、ln x混合型試題最高效的工具
      高等代數(shù)教學(xué)中關(guān)于同構(gòu)的注記
      基于改進(jìn)NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
      基于時(shí)間負(fù)載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
      overlay SDN實(shí)現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
      LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
      云計(jì)算環(huán)境中任務(wù)調(diào)度策略
      东乡县| 临沧市| 竹北市| 平度市| 桓台县| 兴化市| 新化县| 安义县| 呼伦贝尔市| 许昌县| 扶绥县| 什邡市| 咸阳市| 永寿县| 阿瓦提县| 临夏市| 来宾市| 饶阳县| 兴和县| 驻马店市| 竹北市| 扎鲁特旗| 阳新县| 新竹市| 兰考县| 宁武县| 湘乡市| 岳西县| 嘉祥县| 侯马市| 乌拉特后旗| 卓资县| 广河县| 张掖市| 海淀区| 广饶县| 临猗县| 井冈山市| 尉氏县| 株洲县| 井研县|