999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

亂序超標量處理器核的性能分析與優化*

2016-11-25 06:25:54孫彩霞隋兵才王永文黃立波李文哲王俊輝
國防科技大學學報 2016年5期
關鍵詞:指令

孫彩霞,隋兵才,王 蕾,王永文,黃立波,李文哲,王俊輝

(國防科技大學 計算機學院, 湖南 長沙 410073)

?

亂序超標量處理器核的性能分析與優化*

孫彩霞,隋兵才,王 蕾,王永文,黃立波,李文哲,王俊輝

(國防科技大學 計算機學院, 湖南 長沙 410073)

隨著處理器微體系結構日益復雜,性能分析在處理器研制過程中的作用越來越重要。常用的性能分析方法是建立性能模型,該方法主要用于研制初期的設計空間探索,如果用于微體系結構級的分析和優化,速度和精度都會成為限制因素。因此,提出一種基于計數器的性能分析方法,該方法以項目組已經完成的一款處理器核的硬件實現代碼為基礎,在處理器核外部添加一個專用性能監測單元,收集微體系結構分析和優化需要的各種事件,并通過結果分析器對統計的事件進行分析,得到微體系結構實現的性能受限因素。采用此方法,在現場可編程門陣列原型系統上對SPEC CPU2000測試程序運行時的性能受限因素進行分析,并根據分析結果采取相應的優化措施,優化后的處理器核性能得到了明顯提升。

性能分析;計數器;處理器核;微體系結構

為了追求更高的處理器性能,多發射、分支預測、寄存器重命名、亂序執行、前瞻執行等技術被廣泛采用,使得處理器微體系結構變得日益復雜,僅僅依靠直覺或經驗設計處理器變得幾乎不可能。性能分析成為處理器研制過程中必不可少的一個環節。

性能分析可以分為硅前和硅后兩個階段。硅前分析主要進行處理器設計空間探索,確定滿足期望目標的處理器實現,常用手段是使用性能模擬器。主流處理器生產廠商雖然沒有過多披露他們在性能分析方面的實現細節,但是從公開的資料中能夠了解到他們對性能分析的重視以及為此所做的努力。IBM公司開發了一整套用于PowerPC處理器微體系結構探索的環境和工具(Micro-architecture Environment Toolset,MET)[1],2004年Singhal等[2]介紹了Pentium4處理器性能分析過程中使用的蹤跡驅動的性能模型,中科院計算機所在龍芯系列處理器研制過程中開發了Sim-Godson性能模擬器[3]。不僅在工業界,還在學術界發布了很多好用的開源性能模擬器,如SimpleScalar[4],GEMS[5],M5[6],Gem5[7]等。性能模擬器的抽象層次通常較高,但精度有限。此外為了加快模擬速度,模擬時通常會采用一些加速技術,比如采樣[8],這些技術會帶來精度上的損失。硅后分析主要根據芯片實際表現來驗證和優化硅前分析方法或進行編譯器的優化[9-10],常用手段是使用硬件性能計數器?,F代處理器幾乎都在硬件上實現了性能監測單元[11-12],以對一些事件進行統計,并通過性能計數器呈現出來。Intel VTune性能分析器就是利用這些計數器進行應用的性能優化。但是受限于硬件實現代價,處理器通常只設置少量性能計數器,所統計的事件也非常有限,不足以指導微體系結構級的性能分析與優化。

本文提出在硅前利用性能計數器分析處理器核在運行應用程序時的性能受限因素,指導處理器核微體系結構的優化。該方法以項目組已經研制完成的一款處理器核(簡稱XMC)的硬件實現代碼為基礎,在處理器核外部添加一個專用性能監測單元,收集微體系結構分析需要的各種事件,并通過結果分析器對統計的事件進行分析,得到微體系結構實現的性能受限因素,以指導下一代處理器核的設計。采用此方法,我們在FPGA原型系統上對SPEC CPU2000測試程序運行時的性能受限因素進行了分析,并根據分析結果采取了相應的優化措施,優化后的處理器核性能得到了明顯提升。

1 XMC處理器核微體系結構

圖1給出了XMC處理器核的微體系結構。每個周期,取指單元(Instruction Fetch Unit, IFU)取出128位、4條指令存入指令隊列(instruction queue);每個周期最多譯碼4條指令,譯碼后的指令進入譯碼隊列(decode queue);根據寄存器映射表(rename table),每個周期最多對4條指令進行重命名,重命名后的指令進入分派隊列(dispatch queue)。如果沒有足夠的重命名寄存器,重命名過程會發生阻塞;每個周期最多分派4條指令,分派后的指令根據其類型進入相應的發射隊列,同時也會進入重定序緩沖(ReOrder Buffer,ROB);指令發射是亂序進行的,只要發射隊列中指令的操作數準備就緒并且功能單元空閑,指令就可以發射到功能單元執行;指令提交順序進行,提交時會把重命名寄存器文件(Rename Register File, RRF)中的結果寫回到體系結構寄存器文件(Architectural Register File, ARF)。

圖1 XMC處理器核微體系結構Fig.1 Micro-architecture of XMC

XMC使用全局歷史緩沖(Global History Buffer,GHB)預測分支方向,GHB中每一項都是一個2位飽和計數器,用于指明分支跳轉方向;過程返回指令由返回棧緩沖(Return Stack Buffer,RSB)提供跳轉地址,其他分支指令由分支目標緩沖(Branch Target Buffer,BTB)提供跳轉地址。

XMC在進行寄存器重命名時,整數寄存器和浮點寄存器共享同一個重命名寄存器文件。重命名寄存器文件共有64項,每項64位。

發射隊列采用分布式結構,即每種功能部件擁有獨立的發射隊列。XMC處理器核中共有3種發射隊列:整數發射隊列(int issueQ),浮點發射隊列(FP issueQ)和訪存發射隊列(LS issueQ)。每種發射隊列負責向相應的功能部件提供指令,其中分支指令在整數部件執行。

2 使用計數器的性能分析方法

受限于硬件實現代價,處理器通常只實現少量硬件性能計數器,所統計的事件也非常有限。為了利用性能計數器提供的信息進行微體系結構層面的性能分析和優化,需要進一步統計微體系結構實現有關的參數。

圖2給出了基于計數器的性能分析方法的示意圖。XMC的性能監測單元實現了多個性能計數器,可以分時統計多個事件,通過統計事件可以計算出每拍完成的指令數(Instructions Per Cycle,IPC)、分支預測失誤率、核內各級Cache失效率和TLB失效率等,但是這些事件還不足以分析微體系結構的性能受限因素。為此,在XMC處理器核外實現了一個專用性能監測單元,進行微體系結構優化需要的任何事件(處理器核內部硬件信號)都可以送到該單元進行統計。數據收集單元收集性能監測單元統計的各類事件,數據收集可以在整個性能統計過程結束后進行,也可以按照一定時間間隔定期進行。收集到的數據送給結果分析器進行分析,尋找處理器核運行應用程序時的性能受限因素。

圖2 使用計數器的性能分析方法示意圖Fig.2 Performance analysis method using counters

專用性能監測單元和數據收集單元都用可綜合代碼進行實現,同XMC的寄存器傳輸級(Register Transfer Level,RTL)代碼構成了硬件實現部分,可運行在NC-Verilog/VCS模擬器上,也可運行在硬件仿真器或現場可編程門陣列(Field-Programmable Gate Array,FPGA)原型系統上。本文面向SPEC CPU2000測試程序進行分析,考慮到模擬速度,選擇FPGA原型系統進行模擬并收集數據[13],收集的數據通過通用異步收發器(Universal Asynchronous Receiver Transmitter,UART)串口輸出送給性能分析器。

在一個應用程序運行結束后,性能監測單元中計數器的值表示這個應用程序執行期間計數器統計的事件發生的次數。如果要繼續統計另一個應用程序運行時相應事件發生的次數,那么計數器首先應該被清0。為了能夠通過軟件對專用性能監測單元中的性能計數器進行清0操作,借用了XMC處理器核的性能監測單元中第0號性能計數器的有關控制信號,如圖3所示。對性能監測單元中第0號性能計數器的清0操作可以同時將專用性能監測單元中的所有性能計數器清0。

圖3 專用性能計數器的控制Fig.3 Controls for specialized performance counters

3 性能受限因素分析

XMC的機器寬度為4,理想的IPC可以達到4。但是在FPGA原型系統上得到的SPEC CPU2000測試程序的IPC平均只有1.23。為了獲得微體系結構實現上的性能受限因素,從重命名和分派兩處作為切入點進行分析。圖4給出了SPEC CPU2000測試程序平均每拍重命名的指令數(renaming IPC)和平均每拍分派的指令數(dispatching IPC)。

圖4 SPEC CPU2000平均每拍重命名和分派的指令數Fig.4 Renaming IPC and dispatching IPC of SPEC CPU2000

重命名寬度和分派寬度都是4,但是實際上平均每拍重命名和分派的指令數分別為1.38和1.35,最大時也沒有超過2,是什么導致指令的重命名和分派不能進行呢?

首先分析重命名阻塞原因。為此,統計了如下事件:譯碼隊列無指令,重命名寄存器缺乏和分派隊列無空閑項。圖5給出了SPEC CPU2000測試程序重命名阻塞的原因分布。

圖5 重命名阻塞的原因分布Fig.5 Reasons for renaming stalls

可以看出,對于浮點測試程序(圖5中左邊8個程序),重命名寄存器缺乏和分派隊列沒有空閑項是主要原因,譯碼隊列無指令占的比例很??;而對于整數測試程序(圖5中右邊8個程序),重命名阻塞原因則有所不同,重命名寄存器相對并不是受限因素,而譯碼隊列沒有指令占的比例較大,分派隊列沒有空閑項同樣也是主要原因之一。

譯碼隊列沒有指令是因為流水線前端指令供應不足。為此,統計了對取指有影響的一級指令Cache失效率、分支比例(可預測分支指令在所有指令中所占的比例)以及分支誤預測率,如圖6、圖7、圖8所示。

圖6 一級指令Cache失效率Fig.6 L1 ICache miss rate

圖7 分支比例Fig.7 Proportion of predictable branches to all instructions

圖8 分支誤預測率Fig.8 Branch misprediction rate

可以看出,相對于浮點測試程序,整數測試程序在這三個指標上都相對較大,尤其是分支比例和分支誤預測率方面,整數測試程序要高出很多。改善分支預測結構(比如提高分支預測準確率,降低分支預測延遲)對整數測試程序性能的提高會更有幫助。一級指令Cache失效率非常低,最大時也不到1%,優化空間不大。

分派隊列沒有空閑項接收重命名的指令是因為分派發生了阻塞。從第一章描述可知,分派隊列沒有指令、發射隊列沒有空閑項、ROB沒有空閑項都會導致分派阻塞。為此,對這些事件進行了統計。圖9給出了分派阻塞的原因分布。

圖9 分派阻塞的原因分布Fig.9 Reasons for dispatching stalls

分派隊列沒有指令是因為重命名阻塞導致的,前面已經分析了原因。當有指令可以分派時,ROB沒有空閑項對個別程序比較明顯,比如vortex,但總的來說并不突出,而發射隊列沒有空閑項成了主要原因。在XMC處理核的設計中,發射隊列采用的是分布式結構,這樣可以降低設計的復雜度,但是從利用率的角度考慮并不好。

通過以上分析,發現SPEC CPU2000測試程序在XMC處理器核上運行時的性能受限因素如下:

1)對于浮點測試程序,重命名寄存器個數不足導致重命名阻塞嚴重;

2)優化分支預測結構對整數測試程序的性能提升更有幫助;

3)無論整數還是浮點測試程序,發射隊列項數不足導致分派阻塞嚴重。

4 XMC處理器核的性能優化

依據上述分析結果,從以下幾個方面優化XMC處理器核的微體系結構。

分支預測結構方面,使用更加先進的分支預測算法來提高預測精度。當前比較流行并被廣泛采用的預測算法有Tournament[11, 14]和TAGE[15-16],本文選擇了TAGE預測算法進行分支方向預測。首先在軟件模擬器上對TAGE算法和XMC處理器核之前采用的分支預測算法進行了比較,TAGE算法確實具有更高的預測精度,提高了近2%。TAGE算法的RTL實現工作正在進行中。

針對重命名寄存器個數不足問題,修改RTL代碼,并通過參數化使得重命名寄存器的個數可以在64,96和128之間進行選擇,以從性能和實現代價方面綜合評價。

圖10給出了128個重命名寄存器下,SPEC CPU2000測試程序相對于64個重命名寄存器時的性能提升百分比。

圖10 128個重命名寄存器和64個重命名寄存器的性能比較Fig.10 Performance with 128 rename registers compared to that with 64 rename registers

如同第3節分析的一樣,重命名寄存器個數不足導致浮點測試程序的重命名阻塞嚴重,增加重命名寄存器有效提高了浮點測試程序的性能,平均達到了5.32%,最高達到了13.21%。對于整數測試程序,性能提升并不顯著,平均只有0.72%。

此外,對96和128個重命名寄存器下SPEC CPU2000的性能進行了對比,圖11給出了96個重命名寄存器下,SPEC CPU2000測試程序相對于128個重命名寄存器時的性能降低百分比。對于整數測試程序,影響非常小,平均降低了0.09%。對于浮點測試程序,重命名寄存器個數從128減少到96,平均性能不但沒有降低,反而增加了0.33%,這主要是由于apsi程序的性能不降反增導致的*重命名寄存器個數增加是有可能導致性能不增反降。這是因為,不該執行的指令(異常或分支誤預測被清除的指令)可能因為重命名寄存器個數的增加而有機會進入流水線,增加了清除代價。。如果去除apsi的結果,浮點測試程序的性能平均降低了1.02%,降低最多的程序是wupwise,達到了3.39%。

圖11 96個重命名寄存器和128個重命名寄存器的性能比較Fig.11 Performance with 96 rename registers compared to that with 128 rename registers

96個重命名寄存器相比128個重命名寄存器,性能雖然會有所下降,但是實現代價也會相對變小。對XMC處理器核進行了綜合,相對于64個重命名寄存器,96個重命名寄存器時的XMC處理器核的面積增加了4.70%,128個重命名寄存器時的XMC處理器核的面積增加了7.84%??梢姡瑢崿F96個重命名寄存器時,XMC處理器核的性能代價比較高。

最后,針對發射隊列項數不足問題,分別增加了整數發射隊列和浮點發射隊列的項數,但是發現單純增加發射隊列項數并不能帶來明顯的性能提升。這暴露了目前基于計數器分析微體系結構級性能受限因素方法的不足,即提取的事件相對比較獨立,未充分將處理器核內各流水線級的事件有效關聯起來,還有待進一步完善。

5 結論

處理器微體系結構日益復雜,性能分析成為處理器研制過程中的重要環節。本文提出了一種基于計數器的性能分析方法,該方法在已有的處理器核硬件實現代碼外部添加一個專用的性能監測單元,用于收集微體系結構分析需要的各種事件,并把統計的事件送給結果分析器進行分析,獲得微體系結構實現的性能受限因素。

以處理器核XMC為基礎,面向SPEC CPU2000測試程序,基于FPGA原型系統仿真平臺,以流水線中重命名和分派兩處作為切入點,采用基于計數器的性能分析方法尋找重命名阻塞和分派阻塞的原因,可以發現:

1)對于浮點測試程序,重命名寄存器個數不足導致重命名阻塞嚴重;

2)優化分支預測結構對整數測試程序的性能提升更有幫助;

3)無論整數還是浮點測試程序,發射隊列項數不足導致分派阻塞嚴重。

根據以上發現,采取了相應的優化措施。當把重命名寄存器個數從64個增加到128個時,浮點測試程序的性能平均提高了5.32%,最高達到了13.21%。但是增加發射隊列項數并沒有帶來預期的性能改善,這暴露了目前的方法還存在不足,需要進一步完善。

References)

[1] Moudgill M, Wellman J D, Moreno J H. Environment for PowerPC micro-architecture exploration[J]. IEEE Micro, 1999, 19(3): 15-25.

[2] Singhal R, Venkatraman K S, Cohn E R, et al. Performance analysis and validation of the Intel Pentium 4 processor on 90nm technology[J]. Intel Technology Journal, 2004, 8(1): 39.[3] 張福新, 章隆兵, 胡偉武. 基于SimpleScalar的龍芯CPU模擬器Sim-Godson[J]. 計算機學報, 2007, 30(1): 68-73.

ZHANG Fuxin, ZHANG Longbing, HU Weiwu. Sim-Godson: a godson processor simulator based on SimpleScalar[J]. Chinese Journal of Computers, 2007, 30(1): 68-73.(in Chinese)

[4] Austin T, Larson E, Ernst D.SimpleScalar: an infrastructure for computer system modeling[J]. Computer, 2002, 35(2): 59-67.

[5] Martin M M K, Sorin D J, Beckmann B M, et al. Multifacet′s general execution-driven multiprocessor simulator (GEMS) toolset[J]. ACM SIGARCH Computer Architecture News, 2005, 33(4): 92-99.

[6] Binkert N L, Dreslinski R G, Hsu L R, et al. The M5 simulator: modeling networked systems[J]. IEEE Micro, 2006, 26(4): 52-60.

[7] Binkert N L,Beckmann B,Black G, et al. The GEM5 simulator[J]. ACM SIGARCH Computer Architecture News, 2011, 39(2): 1-7.

[8] Wunderlich R E, Wenisch T F, Falsafi B, et al. SMARTS: accelerating micro-architecture simulation via rigorous statistical sampling[J]. Computer Architecture NEWS, 2003, 31(2): 84-95.

[9] 朱艷玲, 朱怡安, 王云嵐. 基于硬件性能計數器的編譯器性能測試與分析[J]. 微電子學與計算機, 2008, 25(3): 192-196.

ZHU Yanling, ZHU Yian, WANG Yunlan. Compiler performance test and analysis based on hardware performance counters[J]. Microelectronics & Computer, 2008, 25(3): 192-196.(in Chinese)

[10] 車永剛, 王正華, 李曉梅. 一個基于硬件計數器的程序性能測試與分析工具[J]. 計算機科學, 2004, 31(1): 170-174.

CHE Yonggang, WANG Zhenghua, LI Xiaomei. A hardware counter based tool for application′s performance measurement and analysis[J]. Computer Science, 2004, 31(1): 170-174.(in Chinese)

[11] Kalla R, Sinharoy B, Starke W J, et al.Power7: IBM's next-generation server processor[J]. IEEE Micro, 2010, 30(2): 7-15.

[12] Sprunt B. Pentium 4 performance-monitoring features[J]. IEEE Micro, 2002, 22(4): 72-82.

[13] Huang L B, Wang Y W, Dou Q, et al. Fast FPGA system for micro-architecture optimization on synthesizable modern processor design[C]//Proceedings of 25th International Conference on Field-programmable Logic and Applications (FPL), 2015.

[14] Evers M, Chang P Y, Patt Y N. Using hybrid branch predictors to improve branch prediction accuracy in the presence of context switches[C]//Proceedings of the 23rd Annual International Symposium on Computer Architecture, 1996.

[15] Seznec A. A new case for the tage branch predictor[C]//Proceedings of the 44th Annual IEEE/ACM International Symposium on Micro-architecture, 2011.

[16] Seznec A. TAGE-SC-L branch predictors[C]//Proceedings of the 4th Championship Branch Prediction, 2014.

Counters based performance analysis and optimization of an out-of-order superscalar processor core

SUN Caixia, SUI Bingcai, WANG Lei, WANG Yongwen, HUANG Libo, LI Wenzhe, WANG Junhui

(College of Computer, National University of Defense Technology, Changsha 410073, China)

With the ever-increasing design complexity in the processor micro-architecture, performance analysis becomes more and more important in the research and design of processors. Performance models are used widely in the performance analysis, which are more suitable for the design space exploration in the early stage. When used in micro-architecture optimizations, the accuracy and the speed of performance models are the limiting factors. Therefore, a performance analysis method based on counters was proposed. In this method, the RTL register transfer level code of a processor core was used as a baseline, and a specialized performance monitor unit was added to collect the events needed by the micro-architecture analysis and optimization. Then the collected events were sent to a result analyzer, where the factors affecting the performance were obtained. By a dopting the method, we analyzed what affects the performance in running SPEC CPU2000 benchmarks on FPGA(field-programmable gate array) prototyping, and optimized the micro-architecture of processor core according to the analysis results. The performance of the optimized processor core is improved obviously.

performance analysis; counters; processor core; micro-architecture

10.11887/j.cn.201605003

http://journal.nudt.edu.cn

2015-11-25

國家自然科學基金資助項目(61103011,61170045,61402501)

孫彩霞(1979—),女,黑龍江綏化人,副研究員,博士,碩士生導師,E-mail:cxsun@nudt.edu.cn

TP302.1

A

1001-2486(2016)05-014-06

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 婷婷久久综合九色综合88| 真人高潮娇喘嗯啊在线观看| 欧美另类第一页| AV天堂资源福利在线观看| 国产毛片高清一级国语| 四虎在线观看视频高清无码| 九色视频线上播放| 国产成人久久综合777777麻豆| 在线观看免费人成视频色快速| 国语少妇高潮| 毛片免费试看| 日本欧美一二三区色视频| 亚洲永久色| 91蜜芽尤物福利在线观看| 日韩国产精品无码一区二区三区| 爱爱影院18禁免费| 国产丝袜第一页| 欧美日韩国产在线观看一区二区三区| AV不卡在线永久免费观看| 国产黄视频网站| 国产一级无码不卡视频| 国产玖玖玖精品视频| 国产精品原创不卡在线| 国产丝袜91| 国产精品一区二区在线播放| 成人免费黄色小视频| 亚洲免费黄色网| 国产肉感大码AV无码| 国产精品夜夜嗨视频免费视频| 色欲综合久久中文字幕网| 亚洲一区二区约美女探花| 国产三级视频网站| 国产成人啪视频一区二区三区| 欧美激情第一欧美在线| 波多野结衣一区二区三视频| 2022精品国偷自产免费观看| 国产一级小视频| 国产美女自慰在线观看| 亚洲av无码牛牛影视在线二区| 亚洲国产中文在线二区三区免| 国产欧美在线| 99视频在线免费看| 久久久久久久蜜桃| 国产精品免费入口视频| 高清色本在线www| 麻豆精品久久久久久久99蜜桃| 精品国产福利在线| 国产在线观看一区精品| 无码综合天天久久综合网| 99在线小视频| 99久久精品国产精品亚洲| 欧美性猛交一区二区三区| 久久久久亚洲AV成人人电影软件| 狠狠操夜夜爽| 国产呦视频免费视频在线观看| 欧美三级视频网站| 无遮挡一级毛片呦女视频| 伊人久久福利中文字幕| 欧美在线网| 91毛片网| 综合天天色| 亚洲第一视频网| 国产簧片免费在线播放| 精品91在线| 日日拍夜夜嗷嗷叫国产| 大学生久久香蕉国产线观看| 影音先锋丝袜制服| 久久亚洲黄色视频| 一区二区三区在线不卡免费| 国产成人综合亚洲欧洲色就色| 真人高潮娇喘嗯啊在线观看 | 91精品视频播放| 欧美天天干| 四虎综合网| 九色91在线视频| 伊人色婷婷| 浮力影院国产第一页| 久操中文在线| 99尹人香蕉国产免费天天拍| 久久综合九色综合97婷婷| 91国内视频在线观看| 在线播放91|