国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種陣列眾核處理器的多級(jí)指令緩存結(jié)構(gòu)*

2018-05-08 09:38陳逸飛李宏亮高紅光
關(guān)鍵詞:失效率線程指令

陳逸飛,李宏亮,劉 驍,高紅光

(江南計(jì)算技術(shù)研究所,江蘇 無(wú)錫 214083)

1 引言

處理器是高性能計(jì)算機(jī)的核心器件,其主要參數(shù)指標(biāo)對(duì)整個(gè)系統(tǒng)的結(jié)構(gòu)和能力起著決定性作用。近年來(lái),眾核處理器在學(xué)術(shù)界和工業(yè)界都得到了廣泛關(guān)注和蓬勃發(fā)展,當(dāng)前主要的眾核處理器和眾核結(jié)構(gòu)包括NVIDIA公司的GPU架構(gòu)[1]、Intel公司的MIC和SCC架構(gòu)[2]、AMD公司的GPU/APU系列[3]以及申威26010架構(gòu)、MIT的RAW[4]、Stanford的ELM[5]、Tilera公司的TILE[6]、中國(guó)科學(xué)院計(jì)算技術(shù)研究所的Godson-T[7]、Adapteva公司的Epiphany[8]、Kalray公司的MPPA[9]、PEZY-SC處理器[10]等。其中申威26010架構(gòu)、TILE、Godson-T、Epiphany、MPPA、PEZY-SC等均屬于陣列眾核處理器,其特點(diǎn)是以陣列方式(Mesh)組織眾多計(jì)算核心,具有可擴(kuò)展性優(yōu)秀、實(shí)現(xiàn)代價(jià)小、功耗低、可提供多層次并行性的優(yōu)勢(shì),是眾核處理器發(fā)展的重要方向。

陣列眾核處理器的不斷發(fā)展,依然面臨著嚴(yán)峻的挑戰(zhàn),一是“訪存墻”問(wèn)題。眾核處理器的“計(jì)算/訪存比”高,部分訪存受限的課題呈現(xiàn)計(jì)算資源閑置問(wèn)題,隨著大數(shù)據(jù)時(shí)代的到來(lái),訪存密集的課題呈現(xiàn)增長(zhǎng)趨勢(shì),導(dǎo)致這一問(wèn)題更加顯著。二是核心協(xié)同問(wèn)題。陣列眾核處理器中“運(yùn)算核心——應(yīng)用進(jìn)程”存在映射關(guān)系,用戶需要考慮應(yīng)用進(jìn)程的分布、同步協(xié)作以及局部存儲(chǔ)如何高效利用的問(wèn)題,對(duì)編程要求較高;同時(shí),“運(yùn)算核心——運(yùn)算核心”之間的連接關(guān)系,進(jìn)程之間的數(shù)據(jù)交換需要通過(guò)片上網(wǎng)絡(luò)進(jìn)行,片上網(wǎng)絡(luò)通信頻繁,通信模式也日趨復(fù)雜,對(duì)片上網(wǎng)絡(luò)的設(shè)計(jì)和使用都提出了很高的要求。

在陣列眾核處理器中,引入同時(shí)多線程技術(shù)SMT(Simultaneous Multithreading)[11],是解決上述問(wèn)題的可能途徑,通過(guò)多線程技術(shù)能夠提高片上資源利用率,較強(qiáng)的多線程核心局部存儲(chǔ)資源和大量在共享存儲(chǔ)中進(jìn)行的數(shù)據(jù)交換能夠進(jìn)一步提升運(yùn)算性能;同時(shí),多線程技術(shù)能夠讓操作系統(tǒng)代替用戶進(jìn)行線程調(diào)度,用戶得以更高視角進(jìn)行編程。

陣列眾核處理器資源緊張、結(jié)構(gòu)復(fù)雜,單個(gè)核心可用的計(jì)算和存儲(chǔ)資源都非常有限,和傳統(tǒng)的多線程結(jié)構(gòu)不同,面向陣列眾核處理器的多線程結(jié)構(gòu),需要高度關(guān)注開銷與性能的平衡,需要對(duì)存儲(chǔ)結(jié)構(gòu)進(jìn)行進(jìn)一步的優(yōu)化,提高SMT處理器的整體性能,以緩解上述“訪存墻”以及核心協(xié)同兩個(gè)問(wèn)題。

本文首先建立了符合陣列眾核處理器特點(diǎn)的實(shí)驗(yàn)平臺(tái),以SPEC2006為目標(biāo)應(yīng)用,基于資源約束條件,對(duì)單核單線程以及單核多線程進(jìn)行了全面對(duì)比,分析陣列眾核結(jié)構(gòu)可能存在的多線程瓶頸。實(shí)驗(yàn)結(jié)果表明,隨著線程數(shù)的增加,由于資源限制,一級(jí)指令Cache的命中率明顯降低,導(dǎo)致IPC(Instruction Per Cycles)低于單線程。對(duì)此,本文提出面向眾核處理器的一種冗余指令Cache的結(jié)構(gòu),并研究了相關(guān)的替換策略,分別為FIFO(First Input First Output)替換策略以及類LRU(Least Recently Used)替換策略。其中,F(xiàn)IFO替換策略實(shí)現(xiàn)Cache行按照先入先出的順序被替換出Cache;類LRU替換策略對(duì)LRU替換策略進(jìn)行了改進(jìn),標(biāo)記最近被重用的Cache行具有更高的優(yōu)先級(jí),使其被保留在Cache中不被替換。實(shí)驗(yàn)分析表明,使用類LRU替換策略的冗余指令緩存效果更優(yōu),該結(jié)構(gòu)能夠減少25.2%的整體指令Cache結(jié)構(gòu)失效率,同時(shí)帶來(lái)30.2%的CPI性能提升。

本文第2節(jié)介紹相關(guān)工作;第3節(jié)對(duì)陣列眾核結(jié)構(gòu)多線程模型進(jìn)行分析;第4節(jié)提出針對(duì)多線程模型進(jìn)行的優(yōu)化存儲(chǔ)結(jié)構(gòu);第5節(jié)為實(shí)驗(yàn)方法與結(jié)果;第6節(jié)總結(jié)全文,并對(duì)未來(lái)工作進(jìn)行展望。

2 相關(guān)工作

2.1 陣列眾核處理器的分類

根據(jù)計(jì)算核心的結(jié)構(gòu)復(fù)雜度和組織方式,可以將眾核處理器分為基于通用處理核心和基于計(jì)算簇的眾核處理器兩大類。

基于通用處理核心的眾核處理器可以看作是多核結(jié)構(gòu)處理器的進(jìn)一步延伸,通過(guò)片上互連網(wǎng)絡(luò)NoC(Network on Chip)集成眾多的通用處理器核心。Intel的Larrabee處理器、MIC架構(gòu)處理器和SCC架構(gòu)處理器[2]都屬于這一類,其主要特點(diǎn)為:(1)計(jì)算核心一般由通用核心簡(jiǎn)化而來(lái),所有核心功能齊全、計(jì)算能力強(qiáng),但通常沒有過(guò)于復(fù)雜的指令調(diào)度、推測(cè)執(zhí)行等結(jié)構(gòu);(2)計(jì)算核心內(nèi)的運(yùn)算部件支持SIMD(Single Instruction Multiple Data),通常為位寬很大的SIMD,以提高聚合計(jì)算能力;(3)單核心內(nèi)通常會(huì)保留通用處理器中傳統(tǒng)的多級(jí)Cache存儲(chǔ)結(jié)構(gòu),核心間有的會(huì)支持Cache一致性,有的則會(huì)采用簡(jiǎn)化的顯式消息替代Cache一致性。

基于計(jì)算簇的眾核處理器片上集成了大量簡(jiǎn)單的計(jì)算核心,旨在通過(guò)簡(jiǎn)單運(yùn)算部件的聚合提供超高計(jì)算性能。NVIDIA和AMD的GPU系列產(chǎn)品[1,3]都屬于這一類眾核結(jié)構(gòu),其主要特點(diǎn)為:(1)計(jì)算核心為簡(jiǎn)單計(jì)算部件,多個(gè)核心以組或簇的形式進(jìn)行組織,可通過(guò)SIMT方式提供強(qiáng)大的并行計(jì)算能力;(2)計(jì)算簇內(nèi)所有計(jì)算核心共用指令發(fā)射單元,并共享寄存器文件、一級(jí)Cache等存儲(chǔ)資源,計(jì)算簇間則共享二級(jí)Cache和主存等;(3)片上通常還集成有大量專用加速處理部件。

2.2 陣列眾核處理器結(jié)構(gòu)介紹

陣列眾核處理器的特征是多個(gè)計(jì)算核心以陣列方式(Mesh)組織,可以分為同構(gòu)陣列眾核處理器和異構(gòu)陣列眾核處理器兩類。同構(gòu)陣列眾核全部由計(jì)算核心陣列構(gòu)成,異構(gòu)陣列眾核在計(jì)算核心陣列外還有額外的管理核心,本文采用異構(gòu)陣列眾核處理結(jié)構(gòu)作為研究基礎(chǔ)。

陣列眾核處理器整體結(jié)構(gòu)如圖1所示,包括管理核心MPE(Management Processing Element)、計(jì)算核心陣列CPA(Computing Processor Array)、存控以及系統(tǒng)接口,四個(gè)部分通過(guò)片上網(wǎng)絡(luò)NoC互連。其中,管理核心MPE作為通用核心,支持亂序發(fā)射、亂序執(zhí)行和推測(cè)執(zhí)行;計(jì)算核心陣列CPA由若干計(jì)算核心CPE(Computing Processing Elements)以陣列方式組織構(gòu)成;CPE是功能簡(jiǎn)單的運(yùn)算核心,支持SIMD指令以開發(fā)細(xì)粒度的并行性,提高峰值性能,用以加速大規(guī)模的并行任務(wù)。CPE之間的數(shù)據(jù)交換通過(guò)陣列內(nèi)高速的片上通信進(jìn)行[12]。

Figure 1 Structure of array-based many-core processor圖1 陣列眾核結(jié)構(gòu)

2.3 同時(shí)多線程技術(shù)應(yīng)用情況介紹

由于通過(guò)開發(fā)指令級(jí)并行來(lái)提高執(zhí)行并行度、進(jìn)而提高處理器性能受到了諸多因素的限制,學(xué)術(shù)界和工業(yè)界將目光更多地集中在了線程級(jí)并行上面,并提出了許多有效的線程級(jí)并行解決方案。多線程技術(shù)作為線程級(jí)并行的主要開發(fā)方向之一,能夠更精細(xì)地共享處理器資源,提高處理器的利用率。

同時(shí),多線程技術(shù)允許在一個(gè)時(shí)鐘周期發(fā)射多個(gè)線程的多條指令執(zhí)行,減少了由于資源沖突導(dǎo)致處理器無(wú)法啟動(dòng)之后周期所造成的“垂直浪費(fèi)”,以及缺乏足夠指令級(jí)并行時(shí),處理器無(wú)法最大限度地同時(shí)啟動(dòng)各種操作所造成的“水平浪費(fèi)”,提高了處理器發(fā)射槽和功能部件的利用率。

在同時(shí)多線程處理器的共享Cache資源中,一級(jí)Cache是線程訪問(wèn)最頻繁的一部分。多線程對(duì)于有限的Cache資源的競(jìng)爭(zhēng),將導(dǎo)致指令間的相互沖突愈加明顯,指令吞吐率性能下降。解決該問(wèn)題的方法通常有兩種,增大Cache的容量或提高Cache的利用率。

SUN的Ultra-SPARC T2處理器具有64個(gè)線程,共享一個(gè)8體的二級(jí)Cache,采用多體交叉Cache技術(shù)。該技術(shù)將Cache分成多個(gè)體,每個(gè)體可以被線程獨(dú)立訪問(wèn)。多體Cache技術(shù)需要一個(gè)交換網(wǎng)絡(luò)來(lái)將請(qǐng)求從裝載存儲(chǔ)單元傳遞到相應(yīng)的Cache體,體數(shù)的增加將使得交換網(wǎng)絡(luò)的面積增加,同時(shí)延長(zhǎng)線程Cache體的訪問(wèn)時(shí)間。在恰當(dāng)?shù)卣{(diào)度訪存地址流的情況下,多體Cache可以極大地提高Cache的訪存帶寬[13]。但是,當(dāng)線程對(duì)于Cache體的訪問(wèn)出現(xiàn)沖突時(shí),將極大地影響性能。

Tullsen等人[14]對(duì)多線程處理器結(jié)構(gòu)的仿真結(jié)果表明,在同時(shí)多線程處理器中,多個(gè)線程對(duì)資源(如Cache、轉(zhuǎn)換檢測(cè)緩沖TLB(Translation Lookaside Buffer)以及分支目標(biāo)緩沖BTB(Branch Target Buffer)等)的共享會(huì)影響性能。如果單線程的指令Cache失效率為1,那么8個(gè)同時(shí)多線程的指令Cache失效率將達(dá)到14,Tullsen等人提出一種讓每個(gè)線程都使用私有指令Cache的方法,以減少指令間的相互沖突和干擾。但是此方法在資源極度受限、一級(jí)指令Cache通常只有4~8 KB的陣列眾核處理器中,不易實(shí)現(xiàn),為每個(gè)線程分配單獨(dú)的指令Cache將大大增加硬件開銷。

類似于上述方法,文獻(xiàn)[15]提出一種多模塊多體的Cache結(jié)構(gòu)設(shè)計(jì)方案,在獨(dú)立的總線之間采用多個(gè)模塊,同一總線內(nèi)部采用多個(gè)體。具體來(lái)說(shuō)就是將一級(jí)數(shù)據(jù)Cache分成n個(gè)模塊,保持它們之間能夠并行訪問(wèn);同時(shí),在每個(gè)模塊的內(nèi)部,又包含著n個(gè)體,一次只能對(duì)其中的一個(gè)進(jìn)行訪問(wèn)。每個(gè)線程的數(shù)據(jù)只能存儲(chǔ)于一個(gè)唯一的Cache體中,實(shí)際上這種方法是對(duì)Cache做了顯式的劃分。但是,這種顯式的固定劃分必定會(huì)帶來(lái)一個(gè)問(wèn)題,當(dāng)某一線程產(chǎn)生大量的訪存請(qǐng)求時(shí),劃分給它的Cache資源并不一定能夠滿足其需求,從而影響整體性能。此結(jié)構(gòu)并不能根據(jù)線程的訪存特性來(lái)動(dòng)態(tài)地劃分Cache資源,對(duì)于性能的提升具有局限性。

3 陣列眾核處理器多線程模型分析

針對(duì)陣列眾核處理器的結(jié)構(gòu)和多線程模型的需求,本文搭建了面向陣列眾核處理器結(jié)構(gòu)的實(shí)驗(yàn)平臺(tái)和相關(guān)環(huán)境,總體結(jié)構(gòu)如圖2所示。

本文選取SPEC2006作為測(cè)試基準(zhǔn),使用Simpoint工具[16]生成測(cè)試各程序的基本塊向量(Basic Block Vector)文件,分析基本塊向量文件中各測(cè)試程序的模擬點(diǎn),結(jié)合權(quán)重文件,得到各程序核心段。在此基礎(chǔ)上,對(duì)GEM5模擬器[17]進(jìn)行二次開發(fā)改造,在系統(tǒng)調(diào)用模擬SE(System-call Emulation)模式下使用Out of Order亂序CPU模型,對(duì)發(fā)射寬度、存儲(chǔ)帶寬、組相聯(lián)數(shù)、Cache配置等進(jìn)行修改調(diào)試,以符合陣列眾核結(jié)構(gòu)特定背景。最后通過(guò)對(duì)各測(cè)試程序進(jìn)行實(shí)驗(yàn),由輸出的數(shù)據(jù)文件分析CPU性能,將輸出的CPU行為文件進(jìn)行分段,編寫xml模板文件輸入集成功率面積和時(shí)序的多核模擬工具M(jìn)CPAT(MultiCore Power, Area and Timing)生成相應(yīng)的功耗及面積文件。

Figure 2 Experimental platform for array-based many-core processor圖2 陣列眾核處理器結(jié)構(gòu)多線程實(shí)驗(yàn)環(huán)境

實(shí)驗(yàn)針對(duì)陣列眾核處理器的單個(gè)核心結(jié)構(gòu)進(jìn)行,其單個(gè)核心的特點(diǎn)表現(xiàn)在:(1)存儲(chǔ)空間通常較小,如PEZY-SC單個(gè)核心的存儲(chǔ)空間為8 KB,申威眾核單個(gè)核心的局部存儲(chǔ)空間為24 KB;(2)邏輯資源相對(duì)緊張,難以支持太多線程;(3)眾核核心數(shù)量眾多,單個(gè)核心分配到的訪存帶寬相對(duì)較少等。

為研究陣列眾核處理器的多線程瓶頸,針對(duì)陣列眾核結(jié)構(gòu)特點(diǎn),對(duì)單核單線程、單核雙線程、單核四線程分別進(jìn)行發(fā)射帶寬、組相連路數(shù)、一級(jí)Cache參數(shù)配置修改、保持配置大小隨著線程數(shù)成倍增長(zhǎng)等進(jìn)行實(shí)驗(yàn),對(duì)比分析單核心下多線程瓶頸。主要實(shí)驗(yàn)參數(shù)如表1所示。

Table 1 Main parameter configuration of contrast experiments表1 對(duì)比實(shí)驗(yàn)主要參數(shù)配置表 B

對(duì)比各程序CPI、一級(jí)指令Cache、數(shù)據(jù)Cache失效率,如圖3和圖4所示。

Figure 3 Comparison of each program’s CPI and its average in the configuration of single-core single-thread,single-core dual-thread and single-core quadruple-thread圖3 單核心單線程/雙線程/四線程情況下 各程序CPI及平均值對(duì)比

Figure 4 L1ICache and L1DCache miss rates of each program in the configuration of single-core single-thread,single-core dual-thread and single-core quadruple-thread圖4 單核心單線程/雙線程/四線程情況下 各程序一級(jí)指令、數(shù)據(jù)Cache失效率

從圖3可以分析得到,在雙線程配置下,各程序CPI平均值最為優(yōu)異,而隨著線程數(shù)增長(zhǎng)到4時(shí),CPI平均值反而有所上升。結(jié)合圖4,指令Cache以及數(shù)據(jù)Cache失效率情況,當(dāng)線程數(shù)增加到4時(shí),雖然數(shù)據(jù)Cache失效率變化不明顯,個(gè)別程序中甚至有所降低,但是指令Cache失效率有著明顯的增長(zhǎng),較單線程結(jié)構(gòu)上升了76.1%,較雙線程結(jié)構(gòu)上升了67.7%。

SMT的優(yōu)勢(shì)是提高了指令吞吐率,增加了資源利用率,但由于共享流水線資源導(dǎo)致某些資源被過(guò)度利用,如指令隊(duì)列、Cache、TLB和執(zhí)行單元等。在單核心單線程配置下,保持組相連數(shù)、線程數(shù)等參數(shù)不變,配置指令Cache放大一倍時(shí)的實(shí)驗(yàn)數(shù)據(jù)可得,指令Cache失效率較原有情況下降30.1%,說(shuō)明指令Cache容量的增大有效地降低了失效率。

但是在上述實(shí)驗(yàn)中,盡管隨著線程數(shù)的增長(zhǎng),指令Cache也相應(yīng)增加,但由于指令Cache空間太小,指令間的相互沖突和干擾導(dǎo)致指令Cache失效率上升,多個(gè)線程在一個(gè)共享的指令Cache結(jié)構(gòu)中相互顛簸。由圖5可以看出,在其他配置均相同的情況下,兩線程核心指令Cache中Cache行的替換次數(shù)大幅增加,在陣列眾核結(jié)構(gòu)下,指令Cache的失效率情況成為多線程陣列處理器的主要瓶頸。

Figure 5 L1ICache replacements of each program in the configuration of single-core single-thread and single-core dual-thread圖5 單核心單線程/雙線程情況下 各程序一級(jí)指令Cache行替換數(shù)

4 冗余指令緩存結(jié)構(gòu)設(shè)計(jì)方案

在多核處理器中已經(jīng)有多種方法降低指令Cache失效率,如在指令Cache上對(duì)多個(gè)線程進(jìn)行分區(qū)隔離,包括靜態(tài)分區(qū)等。但是,在資源緊張的陣列眾核處理器中,這些方法都不再適用,主要原因是陣列眾核核心的一級(jí)指令Cache容量較小,靜態(tài)分區(qū)將導(dǎo)致各線程能夠有效使用的Cache容量降低,而動(dòng)態(tài)分區(qū)將引入較復(fù)雜的控制邏輯,增加硬件實(shí)現(xiàn)開銷。

觀察到雙線程核心指令Cache中Cache行替換次數(shù)的大幅增加,本文提出在一級(jí)指令Cache之下加入冗余指令Cache(Redundancy ICache)結(jié)構(gòu),緩存結(jié)構(gòu)如圖6所示。

Figure 6 Structure of redundancy ICache圖6 冗余指令緩存結(jié)構(gòu)圖

冗余指令Cache與一級(jí)指令Cache全相連,通過(guò)總線與主存連接。冗余指令Cache記錄從一級(jí)指令Cache脫靶(Miss)和替換(Victim)的指令。圖7為冗余指令緩存的工作流程圖。該結(jié)構(gòu)的提出使得在訪問(wèn)主存前,先檢查其中是否存在其所需要的Cache塊,若存在,則直接取,就不必再去訪問(wèn)主存,從而降低了整體訪問(wèn)延時(shí)。此結(jié)構(gòu)能夠有效減少訪存時(shí)間,降低失效率,從而降低功耗。

冗余指令Cache設(shè)計(jì)為一個(gè)容量小、訪問(wèn)速度快、全相連結(jié)構(gòu)的指令Cache。其中Tag陣列和Memory陣列均采用標(biāo)準(zhǔn)的全相連Cache設(shè)計(jì)。由于容量小,且希望盡可能裝載有最具重用可能的Cache行,本文研究在全相連的冗余指令Cache中的替換策略,分別研究了兩種替換策略:

(1)FIFO策略:所有Cache行按先入先出的順序被替換出Cache。

(2)類LRU策略:本文提出一種類LRU替換策略(Analogous Least Recently Used),標(biāo)記最近被重用的Cache行具有更大的優(yōu)先級(jí),保證其在這段時(shí)間內(nèi)不被替換,被替換塊將從優(yōu)先級(jí)低的Cache塊中選取。此替換策略基于重用次數(shù),為每個(gè)Cache塊附加一個(gè)重用計(jì)數(shù)器,并在全局設(shè)置一個(gè)指針,當(dāng)Cache行發(fā)生替換時(shí),從指針位置開始搜索數(shù)據(jù)陣列,直到找到重用計(jì)數(shù)器指數(shù)最低的項(xiàng)將其作為替換項(xiàng)替換出冗余指令緩存。重用計(jì)數(shù)器的初始狀態(tài)為零,每次對(duì)Cache行命中后,計(jì)數(shù)器加1。

Figure 7 Flow diagram of redundancy ICache圖7 冗余指令緩存流程圖

5 實(shí)驗(yàn)方法與結(jié)果

5.1 實(shí)驗(yàn)方法

本文通過(guò)第3節(jié)所述實(shí)驗(yàn)平臺(tái),進(jìn)行冗余指令緩存性能的對(duì)比實(shí)驗(yàn)測(cè)試。實(shí)驗(yàn)中GEM5模擬器主要配置如表2所示。

Table 2 Parameter configuration of GEM5 simulator表2 模擬器參數(shù)配置表

本文選用了SPEC2006中的12道程序進(jìn)行測(cè)試,具體程序如表3所示。

Table 3 Table of benchmarks表3 測(cè)試程序表

單核雙線程情況下,各組對(duì)比實(shí)驗(yàn)配置如表4所示。

5.2 實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)配置為單核雙線程配置,組相聯(lián)數(shù)為2,取指寬度為4,一級(jí)指令Cache為8 KB,一級(jí)數(shù)據(jù)Cache為16 KB,實(shí)現(xiàn)兩種替換策略:(1)類LRU策略;(2)FIFO策略。為對(duì)比得出冗余指令Cache帶來(lái)的性能提升,分別采取:(1)將一級(jí)Cache放大一倍;(2)增加大小為64 KB的二級(jí)Cache;(3)增加大小為256 KB的二級(jí)Cache三種結(jié)構(gòu)進(jìn)行對(duì)比。

圖8為實(shí)驗(yàn)中6個(gè)不同配置下各程序CPI值及其平均值,橫坐標(biāo)給出了12道測(cè)試程序,縱坐標(biāo)為各程序的CPI值。圖9為各配置下CPI的平均值對(duì)比。圖10展示了6種配置下的一級(jí)指令Cache失效率,橫坐標(biāo)給出了12道測(cè)試程序,縱坐標(biāo)為各程序的指令Cache失效率。圖11為使用兩種替換策略的冗余指令Cache在各道程序中的命中率對(duì)比。對(duì)比6個(gè)CPI平均值可以發(fā)現(xiàn),配置使用類LRU替換策略的冗余指令Cache的表現(xiàn)僅次于配置核心獨(dú)享256 KB的二級(jí)Cache的結(jié)構(gòu),但優(yōu)于配置核心獨(dú)享64 KB的二級(jí)Cache的結(jié)構(gòu)。

Table 4 Parameter configuration of experiments表4 對(duì)比實(shí)驗(yàn)參數(shù)配置

Figure 8 Comparison of CPI in each configuration圖8 各配置下各程序CPI對(duì)比

Figure 9 Comparison of the average of CPI in each configuration圖9 各配置下各程序CPI平均值對(duì)比

從圖9可以看出,當(dāng)一級(jí)Cache放大一倍時(shí),整體CPI得到優(yōu)化,但效果不明顯。結(jié)合圖10具體分析,絕大部分程序的指令Cache失效率未得到有效降低,說(shuō)明簡(jiǎn)單放大一級(jí)Cache容量并不能大幅提升指令Cache的命中率。主要原因是指令Cache空間的使用頻率很不平衡,大量未使用的Cache行一直處于空閑狀態(tài),Cache行存在著嚴(yán)重的沖突缺失問(wèn)題,當(dāng)此問(wèn)題發(fā)生在線程循環(huán)處時(shí),將嚴(yán)重影響性能。另一方面,成倍增大一級(jí)Cache使得硬件資源的開銷成倍增加,不符合陣列眾核結(jié)構(gòu)資源受限的背景。

分析兩種配置核心獨(dú)享型的二級(jí)Cache的對(duì)比實(shí)驗(yàn),由圖8及圖9可發(fā)現(xiàn),在配置256 KB的二級(jí)Cache下,CPI指數(shù)得到了顯著優(yōu)化。結(jié)合圖10進(jìn)一步分析,除去個(gè)別幾道指令Cache失效率增長(zhǎng)的程序,兩種情況下一級(jí)指令Cache的失效率普遍降低,但變化不明顯。為單核心配置獨(dú)享的二級(jí)Cache后,盡管訪問(wèn)速度得到提高,但是二級(jí)Cache會(huì)產(chǎn)生核間存儲(chǔ)訪問(wèn)需求的不平衡,導(dǎo)致更多的訪問(wèn)失效,從而影響整體資源利用率。同時(shí),原有的一級(jí)指令Cache尚未被充分使用,依舊存在著大量的空閑Cache行,指令間的相互沖突也未被有效地消除。二級(jí)Cache的加入也使得設(shè)計(jì)更加復(fù)雜,硬件開銷增大。

Figure 10 ICache miss rate of each configuration圖10 對(duì)比實(shí)驗(yàn)各配置下指令Cache失效率

使用兩種替換策略的冗余指令Cache均能有效優(yōu)化CPI,CPI指數(shù)分別降低28.3%(使用FIFO策略)和30.2%(使用類LRU策略)。僅次于配置256 KB的二級(jí)Cache結(jié)構(gòu),優(yōu)于配置64 KB的二級(jí)Cache結(jié)構(gòu)。圖9表明,兩種替換策略的整體指令Cache的失效率較之未配置以及配置二級(jí)Cache時(shí)得到了顯著降低,失效率分別下降24.3%(使用FIFO策略)和25.2%(使用類LRU策略)。說(shuō)明當(dāng)一級(jí)指令Cache中被丟棄或替換的Cache行,在兩種替換策略下均被有效地收入冗余指令Cache中。當(dāng)下一次發(fā)生相同地址的Cache行丟棄時(shí),能夠直接從冗余Cache中取出相應(yīng)的Cache行,從而有效提高了整體緩存結(jié)構(gòu)的命中率。單獨(dú)配置一個(gè)大小為4 KB的冗余指令Cache,硬件開銷相對(duì)較小,且性能優(yōu)于配置64 KB的二級(jí)Cache結(jié)構(gòu),符合陣列眾核處理器資源極度受限的背景。

Figure 11 Comparison of redundancy Cache hit rate using FIFO and analogous LRU圖11兩種替換策略下冗余緩存命中率對(duì)比

分別對(duì)比兩種不同的替換策略,根據(jù)圖11可得類LRU替換策略表現(xiàn)更優(yōu)。可以說(shuō)明,在冗余指令Cache中,類LRU替換策略通過(guò)利用棧結(jié)構(gòu)記錄最近被重用的Cache行,標(biāo)記其具有更高的優(yōu)先級(jí),使其保留在Cache中不被替換,得到了更加優(yōu)異的表現(xiàn)效果,更符合全相聯(lián)的冗余指令Cache結(jié)構(gòu)。FIFO策略并未考慮程序的執(zhí)行特點(diǎn),可能會(huì)增加Cache行換出的次數(shù),從而降低性能,并且增加開銷。

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

陣列眾核處理器已經(jīng)廣泛應(yīng)用于高性能計(jì)算領(lǐng)域,為了構(gòu)建未來(lái)高性能計(jì)算系統(tǒng)處理器,必須解決嚴(yán)峻的“訪存墻”挑戰(zhàn)以及核心協(xié)同問(wèn)題。本文研究了陣列眾核處理器單核心多線程結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)優(yōu)化問(wèn)題,通過(guò)實(shí)驗(yàn)得出多線程結(jié)構(gòu)存在著一級(jí)指令Cache失效率高,導(dǎo)致整體性能無(wú)法得到提高的問(wèn)題。針對(duì)這一問(wèn)題,本文提出了一種冗余指令Cache的存儲(chǔ)結(jié)構(gòu),在GEM5模擬器上實(shí)驗(yàn)評(píng)估了這一方案,并對(duì)其性能進(jìn)行了分析,得出了以下結(jié)論。

(1)在使用類LRU替換策略的冗余指令Cache的結(jié)構(gòu)下,整體結(jié)構(gòu)的CPI提高30.2%,優(yōu)于配置64 KB核心獨(dú)享的二級(jí)Cache結(jié)構(gòu),并且此結(jié)構(gòu)帶來(lái)的硬件開銷小、功耗低,適用于資源極度受限的陣列眾核結(jié)構(gòu);(2)在上述結(jié)構(gòu)下,通過(guò)解決SMT核心運(yùn)行時(shí)易發(fā)生Cache行沖突的問(wèn)題,使得整體Cache結(jié)構(gòu)的失效率較未配置時(shí)下降25.2%,這在一定程度上緩解了陣列眾核處理器多線程模型下一級(jí)指令Cache失效率高的問(wèn)題。

未來(lái)工作可以考慮針對(duì)該冗余指令Cache的調(diào)度策略進(jìn)行研究,以進(jìn)一步提高性能。同時(shí),基于上述優(yōu)化的片上存儲(chǔ)層次結(jié)構(gòu),在陣列眾核背景下,進(jìn)行核心簇的結(jié)構(gòu)研究工作。

參考文獻(xiàn):

[1] Keckler S W,Dally W J,Khailany B,et al.GPUs and the future of parallel computing[J].IEEE Micro,2011,31(5):7-17.

[2] Saule E,Catalyurek üMit V.An early evaluation of the scalability of graph algorithms on the Intel MIC architecture[C]∥Proc of Parallel and Distributed Processing Symposium Workshops & PhD Forum,2012:1629-1639.

[3] Dan B,Sander B.Applying AMD’s Kaveri APU for heterogeneous computing[C]∥Proc of 2014 IEEE Hot Chips 26 Symposium,2014:1-42.

[4] Taylor M B,Kim J,Miller J,et al.The raw microprocessor:A computational fabric for software circuits and general-purpose programs[J].IEEE Micro,2002,22(2):25-35.

[5] Dally W J,Balfour J,Black-Shaffer D,et al.Efficient embedded computing[J].Computer,2010,41(7):27-32.

[6] Wentzlaff D,Griffin P,Hoffmann H,et al.On-chip interconnection architecture of the tile processor[J].IEEE Micro,2007,27(5):15-31.

[7] Fan D,Zhang H,Wang D,et al.Godson-T:An efficient many-core processor exploring thread-level parallelism[J].IEEE Micro,2012,32(2):38-47.

[8] Olofsson A, Nordstrom T,Ul-Abdin Z.Kickstarting high-performance energy-efficient manycore architectures with Epiphany[C]∥Proc of 2014 Asilomar Conference on Signals,Systems and Computers,2014:1719-1726.

[9] Dinechin B D D,Massas P G D,Lager G,et al.A distributed run-time environment for the Kalray MPPA-256 integrated manycore processor[C]∥Proc of International Conference on Computational Science,2013:1654-1663.

[10] Sakamoto R, Nitadori K. Implementation and evaluation of data-compression algorithms for irregular-grid iterative methods on the PEZY-SC processor[C]∥Proc of the Workshop on Irregular Applications:Architectures & Algorithms,2017:58-61.

[11] Tullsen D M, Eggers S J,Levy H M. Simultaneous multithreading:Maximizing on-chip parallelism[C]∥Proc of International Symposium on Computer Architecture,1995:392-403.

[12] Zheng Fang, Zhang Kun, Wu Gui-ming, et al. Architecture techniques of many-core processor for Chinese Journal of Computers, 2014,37(10):2176-2186.(in Chinese)

[13] Shah M,Barren J,Brooks J,et al.UltraSPARC T2:A highly-treaded,power-efficient,SPARC SOC[C]∥Proc of IEEE Asian Solid-State Circuits Conference,2007:22-25.

[14] Tullsen D M,Eggers S J,Emer J S,et al.Exploiting choice:Instruction fetch and issue on an implementable simultaneous multithreading processor[C]∥Proc of the 23nd Annual International Symposium on Computer Architecture,1996:192-202.

[15] Sui Xiu-feng, Wu Jun-min, Chen Guo-liang. Performance evaluation and optimization of Cache architecture for simultaneous multi-threading processor[J]. Journal of Chinese Computer System, 2009,30(1):159-163.(in Chinese)

[16] Nair A A,John L K.Simulation points for SPEC CPU 2006[C]∥Proc of IEEE International Conference on Computer Design,2009:397-403.

[17] Binkert N,Beckmann B,Black G,et al.gem5 simulator:A modular platform for computer-system architecture research[EB/OL].[2016-04-21].http://www.gem5.org.

附中文參考文獻(xiàn):

[12] 鄭方,張昆,鄔貴明,等.面向高性能計(jì)算的眾核處理器結(jié)構(gòu)級(jí)高能效技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),2014,37(10):2176-2186.

[15] 隋秀峰,吳俊敏,陳國(guó)良.同時(shí)多線程處理器上的 Cache 性能分析與優(yōu)化[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(1):159-163.

猜你喜歡
失效率線程指令
Archimedean copula刻畫的尺度比例失效率模型的極小次序統(tǒng)計(jì)量的隨機(jī)序
基于C#線程實(shí)驗(yàn)探究
《單一形狀固定循環(huán)指令G90車外圓仿真》教案設(shè)計(jì)
基于國(guó)產(chǎn)化環(huán)境的線程池模型研究與實(shí)現(xiàn)
線程池調(diào)度對(duì)服務(wù)器性能影響的研究*
深入理解失效率和返修率?
基于改進(jìn)龍格-庫(kù)塔法反艦導(dǎo)彈貯存壽命研究
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
固體電解質(zhì)鉭電容器失效率鑒定
一種基于滑窗的余度指令判別算法
安阳县| 灵璧县| 万盛区| 堆龙德庆县| 汤阴县| 平罗县| 甘谷县| 万山特区| 朝阳县| 桂阳县| 无极县| 建德市| 合肥市| 新龙县| 阿克陶县| 平乡县| 新营市| 阳泉市| 乡宁县| 朔州市| 高清| 丘北县| 志丹县| 雷州市| 汤原县| 保德县| 青海省| 沅陵县| 汾阳市| 扶沟县| 泊头市| 左贡县| 博爱县| 林甸县| 从江县| 南京市| 婺源县| 凌云县| 汉源县| 防城港市| 天等县|