陳逸飛,李宏亮,劉 驍,高紅光
(江南計算技術研究所,江蘇 無錫 214083)
處理器是高性能計算機的核心器件,其主要參數(shù)指標對整個系統(tǒng)的結構和能力起著決定性作用。近年來,眾核處理器在學術界和工業(yè)界都得到了廣泛關注和蓬勃發(fā)展,當前主要的眾核處理器和眾核結構包括NVIDIA公司的GPU架構[1]、Intel公司的MIC和SCC架構[2]、AMD公司的GPU/APU系列[3]以及申威26010架構、MIT的RAW[4]、Stanford的ELM[5]、Tilera公司的TILE[6]、中國科學院計算技術研究所的Godson-T[7]、Adapteva公司的Epiphany[8]、Kalray公司的MPPA[9]、PEZY-SC處理器[10]等。其中申威26010架構、TILE、Godson-T、Epiphany、MPPA、PEZY-SC等均屬于陣列眾核處理器,其特點是以陣列方式(Mesh)組織眾多計算核心,具有可擴展性優(yōu)秀、實現(xiàn)代價小、功耗低、可提供多層次并行性的優(yōu)勢,是眾核處理器發(fā)展的重要方向。
陣列眾核處理器的不斷發(fā)展,依然面臨著嚴峻的挑戰(zhàn),一是“訪存墻”問題。眾核處理器的“計算/訪存比”高,部分訪存受限的課題呈現(xiàn)計算資源閑置問題,隨著大數(shù)據(jù)時代的到來,訪存密集的課題呈現(xiàn)增長趨勢,導致這一問題更加顯著。二是核心協(xié)同問題。陣列眾核處理器中“運算核心——應用進程”存在映射關系,用戶需要考慮應用進程的分布、同步協(xié)作以及局部存儲如何高效利用的問題,對編程要求較高;同時,“運算核心——運算核心”之間的連接關系,進程之間的數(shù)據(jù)交換需要通過片上網(wǎng)絡進行,片上網(wǎng)絡通信頻繁,通信模式也日趨復雜,對片上網(wǎng)絡的設計和使用都提出了很高的要求。
在陣列眾核處理器中,引入同時多線程技術SMT(Simultaneous Multithreading)[11],是解決上述問題的可能途徑,通過多線程技術能夠提高片上資源利用率,較強的多線程核心局部存儲資源和大量在共享存儲中進行的數(shù)據(jù)交換能夠進一步提升運算性能;同時,多線程技術能夠讓操作系統(tǒng)代替用戶進行線程調(diào)度,用戶得以更高視角進行編程。
陣列眾核處理器資源緊張、結構復雜,單個核心可用的計算和存儲資源都非常有限,和傳統(tǒng)的多線程結構不同,面向陣列眾核處理器的多線程結構,需要高度關注開銷與性能的平衡,需要對存儲結構進行進一步的優(yōu)化,提高SMT處理器的整體性能,以緩解上述“訪存墻”以及核心協(xié)同兩個問題。
本文首先建立了符合陣列眾核處理器特點的實驗平臺,以SPEC2006為目標應用,基于資源約束條件,對單核單線程以及單核多線程進行了全面對比,分析陣列眾核結構可能存在的多線程瓶頸。實驗結果表明,隨著線程數(shù)的增加,由于資源限制,一級指令Cache的命中率明顯降低,導致IPC(Instruction Per Cycles)低于單線程。對此,本文提出面向眾核處理器的一種冗余指令Cache的結構,并研究了相關的替換策略,分別為FIFO(First Input First Output)替換策略以及類LRU(Least Recently Used)替換策略。其中,F(xiàn)IFO替換策略實現(xiàn)Cache行按照先入先出的順序被替換出Cache;類LRU替換策略對LRU替換策略進行了改進,標記最近被重用的Cache行具有更高的優(yōu)先級,使其被保留在Cache中不被替換。實驗分析表明,使用類LRU替換策略的冗余指令緩存效果更優(yōu),該結構能夠減少25.2%的整體指令Cache結構失效率,同時帶來30.2%的CPI性能提升。
本文第2節(jié)介紹相關工作;第3節(jié)對陣列眾核結構多線程模型進行分析;第4節(jié)提出針對多線程模型進行的優(yōu)化存儲結構;第5節(jié)為實驗方法與結果;第6節(jié)總結全文,并對未來工作進行展望。
根據(jù)計算核心的結構復雜度和組織方式,可以將眾核處理器分為基于通用處理核心和基于計算簇的眾核處理器兩大類。
基于通用處理核心的眾核處理器可以看作是多核結構處理器的進一步延伸,通過片上互連網(wǎng)絡NoC(Network on Chip)集成眾多的通用處理器核心。Intel的Larrabee處理器、MIC架構處理器和SCC架構處理器[2]都屬于這一類,其主要特點為:(1)計算核心一般由通用核心簡化而來,所有核心功能齊全、計算能力強,但通常沒有過于復雜的指令調(diào)度、推測執(zhí)行等結構;(2)計算核心內(nèi)的運算部件支持SIMD(Single Instruction Multiple Data),通常為位寬很大的SIMD,以提高聚合計算能力;(3)單核心內(nèi)通常會保留通用處理器中傳統(tǒng)的多級Cache存儲結構,核心間有的會支持Cache一致性,有的則會采用簡化的顯式消息替代Cache一致性。
基于計算簇的眾核處理器片上集成了大量簡單的計算核心,旨在通過簡單運算部件的聚合提供超高計算性能。NVIDIA和AMD的GPU系列產(chǎn)品[1,3]都屬于這一類眾核結構,其主要特點為:(1)計算核心為簡單計算部件,多個核心以組或簇的形式進行組織,可通過SIMT方式提供強大的并行計算能力;(2)計算簇內(nèi)所有計算核心共用指令發(fā)射單元,并共享寄存器文件、一級Cache等存儲資源,計算簇間則共享二級Cache和主存等;(3)片上通常還集成有大量專用加速處理部件。
陣列眾核處理器的特征是多個計算核心以陣列方式(Mesh)組織,可以分為同構陣列眾核處理器和異構陣列眾核處理器兩類。同構陣列眾核全部由計算核心陣列構成,異構陣列眾核在計算核心陣列外還有額外的管理核心,本文采用異構陣列眾核處理結構作為研究基礎。
陣列眾核處理器整體結構如圖1所示,包括管理核心MPE(Management Processing Element)、計算核心陣列CPA(Computing Processor Array)、存控以及系統(tǒng)接口,四個部分通過片上網(wǎng)絡NoC互連。其中,管理核心MPE作為通用核心,支持亂序發(fā)射、亂序執(zhí)行和推測執(zhí)行;計算核心陣列CPA由若干計算核心CPE(Computing Processing Elements)以陣列方式組織構成;CPE是功能簡單的運算核心,支持SIMD指令以開發(fā)細粒度的并行性,提高峰值性能,用以加速大規(guī)模的并行任務。CPE之間的數(shù)據(jù)交換通過陣列內(nèi)高速的片上通信進行[12]。
Figure 1 Structure of array-based many-core processor圖1 陣列眾核結構
由于通過開發(fā)指令級并行來提高執(zhí)行并行度、進而提高處理器性能受到了諸多因素的限制,學術界和工業(yè)界將目光更多地集中在了線程級并行上面,并提出了許多有效的線程級并行解決方案。多線程技術作為線程級并行的主要開發(fā)方向之一,能夠更精細地共享處理器資源,提高處理器的利用率。
同時,多線程技術允許在一個時鐘周期發(fā)射多個線程的多條指令執(zhí)行,減少了由于資源沖突導致處理器無法啟動之后周期所造成的“垂直浪費”,以及缺乏足夠指令級并行時,處理器無法最大限度地同時啟動各種操作所造成的“水平浪費”,提高了處理器發(fā)射槽和功能部件的利用率。
在同時多線程處理器的共享Cache資源中,一級Cache是線程訪問最頻繁的一部分。多線程對于有限的Cache資源的競爭,將導致指令間的相互沖突愈加明顯,指令吞吐率性能下降。解決該問題的方法通常有兩種,增大Cache的容量或提高Cache的利用率。
SUN的Ultra-SPARC T2處理器具有64個線程,共享一個8體的二級Cache,采用多體交叉Cache技術。該技術將Cache分成多個體,每個體可以被線程獨立訪問。多體Cache技術需要一個交換網(wǎng)絡來將請求從裝載存儲單元傳遞到相應的Cache體,體數(shù)的增加將使得交換網(wǎng)絡的面積增加,同時延長線程Cache體的訪問時間。在恰當?shù)卣{(diào)度訪存地址流的情況下,多體Cache可以極大地提高Cache的訪存帶寬[13]。但是,當線程對于Cache體的訪問出現(xiàn)沖突時,將極大地影響性能。
Tullsen等人[14]對多線程處理器結構的仿真結果表明,在同時多線程處理器中,多個線程對資源(如Cache、轉換檢測緩沖TLB(Translation Lookaside Buffer)以及分支目標緩沖BTB(Branch Target Buffer)等)的共享會影響性能。如果單線程的指令Cache失效率為1,那么8個同時多線程的指令Cache失效率將達到14,Tullsen等人提出一種讓每個線程都使用私有指令Cache的方法,以減少指令間的相互沖突和干擾。但是此方法在資源極度受限、一級指令Cache通常只有4~8 KB的陣列眾核處理器中,不易實現(xiàn),為每個線程分配單獨的指令Cache將大大增加硬件開銷。
類似于上述方法,文獻[15]提出一種多模塊多體的Cache結構設計方案,在獨立的總線之間采用多個模塊,同一總線內(nèi)部采用多個體。具體來說就是將一級數(shù)據(jù)Cache分成n個模塊,保持它們之間能夠并行訪問;同時,在每個模塊的內(nèi)部,又包含著n個體,一次只能對其中的一個進行訪問。每個線程的數(shù)據(jù)只能存儲于一個唯一的Cache體中,實際上這種方法是對Cache做了顯式的劃分。但是,這種顯式的固定劃分必定會帶來一個問題,當某一線程產(chǎn)生大量的訪存請求時,劃分給它的Cache資源并不一定能夠滿足其需求,從而影響整體性能。此結構并不能根據(jù)線程的訪存特性來動態(tài)地劃分Cache資源,對于性能的提升具有局限性。
針對陣列眾核處理器的結構和多線程模型的需求,本文搭建了面向陣列眾核處理器結構的實驗平臺和相關環(huán)境,總體結構如圖2所示。
本文選取SPEC2006作為測試基準,使用Simpoint工具[16]生成測試各程序的基本塊向量(Basic Block Vector)文件,分析基本塊向量文件中各測試程序的模擬點,結合權重文件,得到各程序核心段。在此基礎上,對GEM5模擬器[17]進行二次開發(fā)改造,在系統(tǒng)調(diào)用模擬SE(System-call Emulation)模式下使用Out of Order亂序CPU模型,對發(fā)射寬度、存儲帶寬、組相聯(lián)數(shù)、Cache配置等進行修改調(diào)試,以符合陣列眾核結構特定背景。最后通過對各測試程序進行實驗,由輸出的數(shù)據(jù)文件分析CPU性能,將輸出的CPU行為文件進行分段,編寫xml模板文件輸入集成功率面積和時序的多核模擬工具MCPAT(MultiCore Power, Area and Timing)生成相應的功耗及面積文件。
Figure 2 Experimental platform for array-based many-core processor圖2 陣列眾核處理器結構多線程實驗環(huán)境
實驗針對陣列眾核處理器的單個核心結構進行,其單個核心的特點表現(xiàn)在:(1)存儲空間通常較小,如PEZY-SC單個核心的存儲空間為8 KB,申威眾核單個核心的局部存儲空間為24 KB;(2)邏輯資源相對緊張,難以支持太多線程;(3)眾核核心數(shù)量眾多,單個核心分配到的訪存帶寬相對較少等。
為研究陣列眾核處理器的多線程瓶頸,針對陣列眾核結構特點,對單核單線程、單核雙線程、單核四線程分別進行發(fā)射帶寬、組相連路數(shù)、一級Cache參數(shù)配置修改、保持配置大小隨著線程數(shù)成倍增長等進行實驗,對比分析單核心下多線程瓶頸。主要實驗參數(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平均值反而有所上升。結合圖4,指令Cache以及數(shù)據(jù)Cache失效率情況,當線程數(shù)增加到4時,雖然數(shù)據(jù)Cache失效率變化不明顯,個別程序中甚至有所降低,但是指令Cache失效率有著明顯的增長,較單線程結構上升了76.1%,較雙線程結構上升了67.7%。
SMT的優(yōu)勢是提高了指令吞吐率,增加了資源利用率,但由于共享流水線資源導致某些資源被過度利用,如指令隊列、Cache、TLB和執(zhí)行單元等。在單核心單線程配置下,保持組相連數(shù)、線程數(shù)等參數(shù)不變,配置指令Cache放大一倍時的實驗數(shù)據(jù)可得,指令Cache失效率較原有情況下降30.1%,說明指令Cache容量的增大有效地降低了失效率。
但是在上述實驗中,盡管隨著線程數(shù)的增長,指令Cache也相應增加,但由于指令Cache空間太小,指令間的相互沖突和干擾導致指令Cache失效率上升,多個線程在一個共享的指令Cache結構中相互顛簸。由圖5可以看出,在其他配置均相同的情況下,兩線程核心指令Cache中Cache行的替換次數(shù)大幅增加,在陣列眾核結構下,指令Cache的失效率情況成為多線程陣列處理器的主要瓶頸。
Figure 5 L1ICache replacements of each program in the configuration of single-core single-thread and single-core dual-thread圖5 單核心單線程/雙線程情況下 各程序一級指令Cache行替換數(shù)
在多核處理器中已經(jīng)有多種方法降低指令Cache失效率,如在指令Cache上對多個線程進行分區(qū)隔離,包括靜態(tài)分區(qū)等。但是,在資源緊張的陣列眾核處理器中,這些方法都不再適用,主要原因是陣列眾核核心的一級指令Cache容量較小,靜態(tài)分區(qū)將導致各線程能夠有效使用的Cache容量降低,而動態(tài)分區(qū)將引入較復雜的控制邏輯,增加硬件實現(xiàn)開銷。
觀察到雙線程核心指令Cache中Cache行替換次數(shù)的大幅增加,本文提出在一級指令Cache之下加入冗余指令Cache(Redundancy ICache)結構,緩存結構如圖6所示。
Figure 6 Structure of redundancy ICache圖6 冗余指令緩存結構圖
冗余指令Cache與一級指令Cache全相連,通過總線與主存連接。冗余指令Cache記錄從一級指令Cache脫靶(Miss)和替換(Victim)的指令。圖7為冗余指令緩存的工作流程圖。該結構的提出使得在訪問主存前,先檢查其中是否存在其所需要的Cache塊,若存在,則直接取,就不必再去訪問主存,從而降低了整體訪問延時。此結構能夠有效減少訪存時間,降低失效率,從而降低功耗。
冗余指令Cache設計為一個容量小、訪問速度快、全相連結構的指令Cache。其中Tag陣列和Memory陣列均采用標準的全相連Cache設計。由于容量小,且希望盡可能裝載有最具重用可能的Cache行,本文研究在全相連的冗余指令Cache中的替換策略,分別研究了兩種替換策略:
(1)FIFO策略:所有Cache行按先入先出的順序被替換出Cache。
(2)類LRU策略:本文提出一種類LRU替換策略(Analogous Least Recently Used),標記最近被重用的Cache行具有更大的優(yōu)先級,保證其在這段時間內(nèi)不被替換,被替換塊將從優(yōu)先級低的Cache塊中選取。此替換策略基于重用次數(shù),為每個Cache塊附加一個重用計數(shù)器,并在全局設置一個指針,當Cache行發(fā)生替換時,從指針位置開始搜索數(shù)據(jù)陣列,直到找到重用計數(shù)器指數(shù)最低的項將其作為替換項替換出冗余指令緩存。重用計數(shù)器的初始狀態(tài)為零,每次對Cache行命中后,計數(shù)器加1。
Figure 7 Flow diagram of redundancy ICache圖7 冗余指令緩存流程圖
本文通過第3節(jié)所述實驗平臺,進行冗余指令緩存性能的對比實驗測試。實驗中GEM5模擬器主要配置如表2所示。
Table 2 Parameter configuration of GEM5 simulator表2 模擬器參數(shù)配置表
本文選用了SPEC2006中的12道程序進行測試,具體程序如表3所示。
Table 3 Table of benchmarks表3 測試程序表
單核雙線程情況下,各組對比實驗配置如表4所示。
實驗配置為單核雙線程配置,組相聯(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三種結構進行對比。
圖8為實驗中6個不同配置下各程序CPI值及其平均值,橫坐標給出了12道測試程序,縱坐標為各程序的CPI值。圖9為各配置下CPI的平均值對比。圖10展示了6種配置下的一級指令Cache失效率,橫坐標給出了12道測試程序,縱坐標為各程序的指令Cache失效率。圖11為使用兩種替換策略的冗余指令Cache在各道程序中的命中率對比。對比6個CPI平均值可以發(fā)現(xiàn),配置使用類LRU替換策略的冗余指令Cache的表現(xiàn)僅次于配置核心獨享256 KB的二級Cache的結構,但優(yōu)于配置核心獨享64 KB的二級Cache的結構。
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可以看出,當一級Cache放大一倍時,整體CPI得到優(yōu)化,但效果不明顯。結合圖10具體分析,絕大部分程序的指令Cache失效率未得到有效降低,說明簡單放大一級Cache容量并不能大幅提升指令Cache的命中率。主要原因是指令Cache空間的使用頻率很不平衡,大量未使用的Cache行一直處于空閑狀態(tài),Cache行存在著嚴重的沖突缺失問題,當此問題發(fā)生在線程循環(huán)處時,將嚴重影響性能。另一方面,成倍增大一級Cache使得硬件資源的開銷成倍增加,不符合陣列眾核結構資源受限的背景。
分析兩種配置核心獨享型的二級Cache的對比實驗,由圖8及圖9可發(fā)現(xiàn),在配置256 KB的二級Cache下,CPI指數(shù)得到了顯著優(yōu)化。結合圖10進一步分析,除去個別幾道指令Cache失效率增長的程序,兩種情況下一級指令Cache的失效率普遍降低,但變化不明顯。為單核心配置獨享的二級Cache后,盡管訪問速度得到提高,但是二級Cache會產(chǎn)生核間存儲訪問需求的不平衡,導致更多的訪問失效,從而影響整體資源利用率。同時,原有的一級指令Cache尚未被充分使用,依舊存在著大量的空閑Cache行,指令間的相互沖突也未被有效地消除。二級Cache的加入也使得設計更加復雜,硬件開銷增大。
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結構,優(yōu)于配置64 KB的二級Cache結構。圖9表明,兩種替換策略的整體指令Cache的失效率較之未配置以及配置二級Cache時得到了顯著降低,失效率分別下降24.3%(使用FIFO策略)和25.2%(使用類LRU策略)。說明當一級指令Cache中被丟棄或替換的Cache行,在兩種替換策略下均被有效地收入冗余指令Cache中。當下一次發(fā)生相同地址的Cache行丟棄時,能夠直接從冗余Cache中取出相應的Cache行,從而有效提高了整體緩存結構的命中率。單獨配置一個大小為4 KB的冗余指令Cache,硬件開銷相對較小,且性能優(yōu)于配置64 KB的二級Cache結構,符合陣列眾核處理器資源極度受限的背景。
Figure 11 Comparison of redundancy Cache hit rate using FIFO and analogous LRU圖11兩種替換策略下冗余緩存命中率對比
分別對比兩種不同的替換策略,根據(jù)圖11可得類LRU替換策略表現(xiàn)更優(yōu)。可以說明,在冗余指令Cache中,類LRU替換策略通過利用棧結構記錄最近被重用的Cache行,標記其具有更高的優(yōu)先級,使其保留在Cache中不被替換,得到了更加優(yōu)異的表現(xiàn)效果,更符合全相聯(lián)的冗余指令Cache結構。FIFO策略并未考慮程序的執(zhí)行特點,可能會增加Cache行換出的次數(shù),從而降低性能,并且增加開銷。
陣列眾核處理器已經(jīng)廣泛應用于高性能計算領域,為了構建未來高性能計算系統(tǒng)處理器,必須解決嚴峻的“訪存墻”挑戰(zhàn)以及核心協(xié)同問題。本文研究了陣列眾核處理器單核心多線程結構的存儲結構優(yōu)化問題,通過實驗得出多線程結構存在著一級指令Cache失效率高,導致整體性能無法得到提高的問題。針對這一問題,本文提出了一種冗余指令Cache的存儲結構,在GEM5模擬器上實驗評估了這一方案,并對其性能進行了分析,得出了以下結論。
(1)在使用類LRU替換策略的冗余指令Cache的結構下,整體結構的CPI提高30.2%,優(yōu)于配置64 KB核心獨享的二級Cache結構,并且此結構帶來的硬件開銷小、功耗低,適用于資源極度受限的陣列眾核結構;(2)在上述結構下,通過解決SMT核心運行時易發(fā)生Cache行沖突的問題,使得整體Cache結構的失效率較未配置時下降25.2%,這在一定程度上緩解了陣列眾核處理器多線程模型下一級指令Cache失效率高的問題。
未來工作可以考慮針對該冗余指令Cache的調(diào)度策略進行研究,以進一步提高性能。同時,基于上述優(yōu)化的片上存儲層次結構,在陣列眾核背景下,進行核心簇的結構研究工作。
參考文獻:
[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.
附中文參考文獻:
[12] 鄭方,張昆,鄔貴明,等.面向高性能計算的眾核處理器結構級高能效技術[J].計算機學報,2014,37(10):2176-2186.
[15] 隋秀峰,吳俊敏,陳國良.同時多線程處理器上的 Cache 性能分析與優(yōu)化[J].小型微型計算機系統(tǒng),2009,30(1):159-163.