亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-05-08 09:38:52陳逸飛李宏亮高紅光
        計算機(jī)工程與科學(xué) 2018年4期
        關(guān)鍵詞:失效率線程指令

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

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

        1 引言

        處理器是高性能計算機(jī)的核心器件,其主要參數(shù)指標(biāo)對整個系統(tǒng)的結(jié)構(gòu)和能力起著決定性作用。近年來,眾核處理器在學(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]、中國科學(xué)院計算技術(shù)研究所的Godson-T[7]、Adapteva公司的Epiphany[8]、Kalray公司的MPPA[9]、PEZY-SC處理器[10]等。其中申威26010架構(gòu)、TILE、Godson-T、Epiphany、MPPA、PEZY-SC等均屬于陣列眾核處理器,其特點是以陣列方式(Mesh)組織眾多計算核心,具有可擴(kuò)展性優(yōu)秀、實現(xiàn)代價小、功耗低、可提供多層次并行性的優(yōu)勢,是眾核處理器發(fā)展的重要方向。

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

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

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

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

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

        2 相關(guān)工作

        2.1 陣列眾核處理器的分類

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        對比各程序CPI、一級指令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及平均值對比

        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 單核心單線程/雙線程/四線程情況下 各程序一級指令、數(shù)據(jù)Cache失效率

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

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

        但是在上述實驗中,盡管隨著線程數(shù)的增長,指令Cache也相應(yīng)增加,但由于指令Cache空間太小,指令間的相互沖突和干擾導(dǎo)致指令Cache失效率上升,多個線程在一個共享的指令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 單核心單線程/雙線程情況下 各程序一級指令Cache行替換數(shù)

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

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

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

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

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

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

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

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

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

        5 實驗方法與結(jié)果

        5.1 實驗方法

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

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

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

        Table 3 Table of benchmarks表3 測試程序表

        單核雙線程情況下,各組對比實驗配置如表4所示。

        5.2 實驗結(jié)果

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

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

        Table 4 Parameter configuration of experiments表4 對比實驗參數(shù)配置

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

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

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

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

        Figure 10 ICache miss rate of each configuration圖10 對比實驗各配置下指令Cache失效率

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

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

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

        6 結(jié)束語

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

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

        未來工作可以考慮針對該冗余指令Cache的調(diào)度策略進(jìn)行研究,以進(jìn)一步提高性能。同時,基于上述優(yōu)化的片上存儲層次結(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] 鄭方,張昆,鄔貴明,等.面向高性能計算的眾核處理器結(jié)構(gòu)級高能效技術(shù)[J].計算機(jī)學(xué)報,2014,37(10):2176-2186.

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

        猜你喜歡
        失效率線程指令
        PHMSA和EGIG的天然氣管道失效率對比研究
        化工管理(2023年17期)2023-06-16 05:56:54
        聽我指令:大催眠術(shù)
        Archimedean copula刻畫的尺度比例失效率模型的極小次序統(tǒng)計量的隨機(jī)序
        深入理解失效率和返修率?
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        淺談linux多線程協(xié)作
        固體電解質(zhì)鉭電容器失效率鑒定
        上海航天(2014年1期)2014-12-31 11:57:26
        坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
        Linux線程實現(xiàn)技術(shù)研究
        久久久精品少妇—二区| 丝袜足控一区二区三区| 免费一本色道久久一区| 日本大胆人体亚裔一区二区 | 国产偷2018在线观看午夜| 亚洲精品99久91在线| 99久久婷婷国产亚洲终合精品 | av天堂亚洲另类色图在线播放| 婷婷成人丁香五月综合激情| 免费a级毛片无码a∨免费软件| 午夜短无码| 在线观看av不卡 一区二区三区| 好吊妞视频这里有精品| 精品国产人妻一区二区三区| 久久福利资源国产精品999| 五十路一区二区中文字幕| www夜片内射视频在观看视频| 无码av免费一区二区三区| 在线观看一区二区女同| 丝袜美腿亚洲综合在线播放| 久久无码人妻丰满熟妇区毛片| 性动态图av无码专区| 亚洲中出视频| 成人性生交大片免费5| 山外人精品影院| 视频一区二区在线播放| 久久精品国产亚洲一级二级| 中文字幕人妻饥渴浪妇| 国产亚洲精品资源在线26u| 一区二区韩国福利网站 | 亚洲国产国语在线对白观看| 天堂资源中文最新版在线一区| 精品久久久久久无码不卡| 在线亚洲精品一区二区三区| 少妇性l交大片7724com| 国产成人亚洲精品无码h在线| 尤物蜜芽福利国产污在线观看| 亚州无吗一区二区三区| 久久精品国产亚洲av高清热| 好紧好爽免费午夜视频| 久久久久99精品国产片|