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

基于占用率的體系結構脆弱因子在線計算方法*

2014-03-23 06:02:56潘送軍陳傳鵬
計算機工程與科學 2014年5期
關鍵詞:指令結構方法

潘送軍,陳傳鵬

(1.國網湖南省電力公司信息通信公司,湖南長沙410007;2.中國科學院計算技術研究所,北京100190)

1 引言

隨著CMOS制造工藝的不斷進步,單個芯片上集成的晶體管數目增多,微處理器性能快速提升的同時,也越來越容易受到軟錯誤的影響,軟錯誤已成為高可靠微處理器設計時必需考慮的問題。所謂軟錯誤,是指電路由于受到宇宙射線中高能粒子或芯片封裝中α粒子的輻射作用,產生的單比特位翻轉,從而改變存儲數據或邏輯電路運算結果。微處理器中不同結構發生軟錯誤的概率與芯片設計和制造工藝有直接關系,Shivakumar P等人[1]分析發現,隨著工藝技術的進步,不同電路結構(如:靜態隨機訪問存儲器、鎖存器、邏輯單元等)中發生軟錯誤的概率將不斷增高。

Mukherjee S S等人[2]首先提出體系結構脆弱因子AVF(Architectural Vulnerability Factor)指標,用于量化分析軟錯誤對微處理器不同結構的影響。AVF指的是某一結構中發生的軟錯誤,經過傳播最終導致程序運行出錯的概率。AVF值越高,表明該結構中發生軟錯誤導致程序執行出錯的概率越高,反之則越小。AVF計算可通過分析體系結構正確執行位ACE位(Architecturally Correct Execution bit)進行。ACE位指的是改變該比特位的值將改變程序運行結果,反之改變該比特位的值對程序運行沒有影響稱為非ACE位。某一結構的AVF值即為該結構包含ACE位的時間占總執行時間的比例。針對軟錯誤,學術界已經提出了許多容錯方法,如:AR-SMT[3]、DIVA[4]和SRT/SRTR[5]等,上述方法采用線程級的冗余實現對軟錯誤的檢測或恢復,沒有考慮AVF值的量化指導作用,導致較大的性能、面積和功耗開銷。此外,不同結構的AVF值隨著應用程序以及程序運行階段的變化而波動,可在AVF值高的時候采用嚴格的保護措施,而在AVF值低的時候采用輕量級的容錯技術,實現微處理器可靠性與性能之間的折衷。因此,精確計算不同結構的AVF值,對于指導可靠性設計,選取合適的容錯技術,具有重要意義。

本文在對已有方法分析的基礎上,提出了一種基于占用率的AVF在線計算方法,并在一款周期精確的模擬器上進行驗證。實驗結果表明,該方法能有效計算不同結構的AVF值,與離線計算方法相比,發射隊列IQ(Issue Queue)、重排序緩存ROB(Reorder Buffer)和存取隊列LSQ(Load/Store Queue)AVF的平均絕對誤差僅為0.10、0.01和0.039。

本文內容按如下結構組織:第2節介紹相關工作;第3節詳細介紹本文提出的AVF在線計算方法;第4節介紹實驗平臺并給出實驗結果,最后對本文進行總結。

2 相關工作

目前,學術界就AVF計算已開展了多方面的研究。AVF計算主要分為兩大類:一類是離線計算,離線計算采用微處理器性能模擬器,根據應用程序的運行特征,評估不同結構中發生軟錯誤對程序運行的影響,包括基于ACE位的計算方法[2,6,7]和基于故障注入的計算方法[8]。離線計算無需考慮對微處理器性能的影響,便于在前期階段指導可靠性設計。另一類是在線計算,在線計算隨著程序的執行,計算不同結構的AVF值,并根據計算結果動態選擇容錯技術,降低容錯技術帶來的性能開銷[9,10]。例如,Walcott K R等人[9]提出一種基于線性規劃的方法動態預測AVF值。該方法利用線性規劃算法建立AVF值與系統性能參數之間的關系。通過運行部分樣本程序得到AVF和不同性能參數之間的關系因子,并建立對應的關系等式,然后預測其它程序執行時的AVF值。由于該方法需要較長的離線分析時間,且在運行不同應用程序時需要調整參數,使得計算結果的準確性無法保證。

此外,Li X D等人[10]提出一種基于指示位的AVF在線計算方法。該方法通過在邏輯結構及存儲結構上增加故障指示位表示故障的注入與傳播,用于在線計算AVF值。為使計算結果具有統計意義,該方法需要注入大量故障。在故障效應表現出來之前,程序已經向前執行一段時間,使得計算結果具有滯后性,未能體現在線計算的時效性。

根據上述分析,在線AVF計算需要快速得到應用程序執行時不同結構的AVF值,要求計算方法盡量簡捷,以減少對微處理器性能的影響。本文提出一種基于占用率的AVF在線計算方法,通過記錄程序運行時不同結構的占用率,計算不同結構的AVF值。

3 基于占用率的AVF在線計算方法

對于離線AVF計算,由于不需要考慮ACE位分析對微處理器性能的影響,可在指令執行完成后的任意時間段內進行。而在線AVF計算是在程序實際運行過程中進行的,要求計算方法快捷,實現開銷小,因而很難進行精確的ACE位和非ACE位分析。本文提出的基于占用率的在線計算方法將從另外一個角度分析計算不同微處理器結構的AVF值。

3.1 整體框圖

如圖1所示是本文方法的整體框圖,圖1中給出了一個典型的微處理器流水線結構圖,包括流水線的各個階段以及對應的結構。本文選取IQ、ROB和LSQ三個微處理器結構進行分析計算,主要是由于上述三個結構在流水線中起到非常重要的作用,IQ用于保存從譯碼階段過來的指令,當指令的操作數準備好以后再將指令發射出去;ROB用于保存指令序列,以支持亂序執行和實現精確中斷;LSQ用于保存存取指令。上述任意一個結構中發生軟錯誤,導致程序執行出錯的概率將非常高。

為支持本文提出的在線計算方法,需要增加相應的硬件資源。圖中加陰影的部分為額外增加的硬件,主要包括指令指示位和AVF計算部件。如圖1所示,IQ和ROB中每個入口項增加一位指示位,用于標識存入的指令類型;AVF計算部件,根據不同結構的使用情況,計算相應的AVF值。AVF計算部件主要包括:記錄不同結構占用率的計數器;計算AVF值的運算器;臨時保存計算結果的存儲單元;保存AVF閾值的寄存器;此外還包括比較器、表決器等。

3.2 計算流程

在任意程序執行過程中,如果認為待分析結構中包含的比特位都為ACE位,則一段時間內該結構的占用率即為該結構AVF值的上限。假定微處理器中IQ包含32項,某一時刻該結構已使用24項,則該時刻IQ的占用率為75%,也即IQ的AVF值上界為75%。AVF值與占用率的關系可表示為:

其中,R為不同結構的占用率,λ為軟錯誤發生的概率。由上式可知,根據占用率計算AVF值避免了記錄程序執行過程中不同指令的停留時間,也不用區分指令中包含的ACE位和非ACE位,計算方法非常簡捷。不足之處是,由于沒有區分指令中的非ACE位,計算結果將大于實際值,進而放大了軟錯誤對程序運行的影響。為提高計算精度,本文通過對程序運行時的指令類型進行分析,提出以區分NOP指令的方法提高計算精度。

通過運行SPEC CPU 2000基準測試程序集,根據不同指令對程序運行結果的影響可將指令分為三大類:ACE指令、動態無效指令以及NOP指令。ACE指令是指對程序運行結果有影響的指令,該類指令中包含的所有比特位都為ACE位。動態無效指令是指該指令的執行結果不會被其它指令使用,或者僅被動態無效指令使用。改變動態無效指令的執行結果對程序最終結果沒有影響,也即動態無效指令中操作數指示位為非ACE位。第三類為NOP指令,NOP指令在微處理器執行過程中不進行任何操作,主要作用是取指時按字對齊或減少取指時的訪存次數,也即NOP指令中只有操作碼為ACE位,其余位為非ACE位。

Figure 1 Framework of occupancy-based AVF computing method圖1 基于占用率的在線AVF計算框圖

在程序執行過程中區分ACE指令和動態無效指令,需要根據指令執行結果是否被后續指令用到來確定,分析時間將長達數百個時鐘周期。對于在線計算方法,由于要快速得到程序運行時不同結構的AVF值,如果分析時間過長,一方面達不到動態選擇容錯技術的目的,另一方面將導致嚴重的性能降級。因此,本文計算方法中,將動態無效指令也視為ACE指令。圖2中給出了運行SPEC CPU 2000整型測試程序時,ACE指令、動態無效指令和NOP指令所占的比例,分別為73.5%、15.8%和10.7%。由圖2可知,程序執行過程中,ACE指令起主導作用,動態無效指令所占比例相對較低,且包含的非ACE位數量少,將動態無效指令視為ACE指令所引起的計算誤差小。

Figure 2 Instruction types of different benchmarks圖2 不同測試程序中的指令類型

本文實驗中采用Alpha指令集分析NOP指令所占的比例。由圖2可知,不同測試程序運行時包含的NOP指令數變化明顯,從3.8%到46.4%,其中gzip中包含的NOP指令數目最多。所有程序包含的NOP指令平均值為10.7%,與Fahs B等人[11]的研究結果一致。由于NOP指令對程序運行結果沒有影響,且易于區分,當計算不同結構的AVF時,排除該結構中包含的NOP指令,就能提高AVF計算精度。

為區分不同結構中存入的指令類型,本文方法是在IQ和LSQ的每個項中增加一位標識位(如圖1所示)。當程序指令進入流水線中執行時,在譯碼階段可判斷出具體的指令類型,如果該指令為NOP指令,則相應的標識位置為1,反之置為0。最后計算占用率時,減去包含的NOP指令,即可得到更為準確的結果。采用上述方法能快速計算IQ和ROB的AVF值;而對于LSQ,由于發射到其中的指令均為存數和取數指令,僅與訪存相關,不包含NOP指令,因此無需增加標識位。計算LSQ的AVF值時,可以直接將該結構的占用率作為計算結果。

Figure 3 Flowchart of our AVF computing method圖3 基于占用率的AVF在線計算流程

圖3給出了本文方法的計算流程,通過對指令類型進行分析,區分NOP指令后,記錄不同結構的占用率,在線計算相應結構的AVF值。根據計算得到的AVF值,進一步判斷該計算結果是否大于系統設定的AVF閾值,據此選擇合適的容錯技術來提高系統可靠性。此外,在系統開銷方面,本文方法的計算過程與指令執行是并行的,AVF計算過程本身對性能沒有影響。由于在實現過程中增加了部分硬件結構,如指示位、AVF計算部件等,本文方法的開銷主要為面積開銷,相對于現代數以億計晶體管的微處理器,上述增加的面積開銷可以忽略不計。

4 實驗平臺和實驗結果

4.1 實驗平臺

本文所有實驗都基于Sim-Alpha模擬器[12]開展,該模擬器為商用微處理器Alpha 21264對應的性能模擬器。為了支持在線計算不同結構的AVF值,本文對Sim-Alpha模擬器進行了修改。主要包括分析程序運行過程中的指令類型、統計不同結構占用率、實現AVF計算算法等。由于Sim-Alpha模擬器不能精確模擬浮點測試程序,因此本文后續實驗中,僅選用SPEC CPU 2000基準程序中的12個整型程序進行分析,每個程序編譯成Alpha指令格式的二進制指令。為減少程序執行時間,本文利用Sim-Point[13]工具選取測試程序的一部分指令代替整個程序,實驗中每個測試程序運行50M條指令,使用的輸入為參考輸入集。Sim-Alpha模擬器的初始配置參數如表1所示。本文計算IQ、ROB和LSQ三個結構的AVF值,對應的項數分別為20、80和64。

4.2 計算時間間隔選取

在線AVF計算是在程序執行過程中連續計算AVF值,其中的關鍵步驟是選取合適的計算時間間隔,也即每隔多長時間計算一次AVF值。計算時間間隔最大可為程序的整個執行時間,最小可為單個微處理器時鐘周期,上述兩種情形為時間間隔的極端選擇。選取的時間間隔過短,則會頻繁計算AVF值,不僅會使微處理器增加額外的功耗開銷,同時計算結果也將隨著程序特征的變化而快速變化,不利于指導容錯技術的選擇。Soundararajan N等人[14]分析了AVF值按單個時鐘周期的變化特征,由于計算時間間隔僅為一個時鐘周期,程序運行過程中的不確定因素主導著AVF值,很難驗證計算結果的準確性。相反,如果選取的時間間隔過長,計算過程中將會丟失程序運行的一些細節特征,同樣難以保證計算的準確性。

Table 1 Simulated microprocessor configuration表1 模擬的微處理器配置參數

為了選定合適的時間間隔,本文選取三個不同大小的時間間隔進行分析,分別是200個時鐘周期、1 000個時鐘周期和5 000個時鐘周期。如圖4所示為運行crafty測試程序時,不同時間間隔下AVF值的變化特征。由圖4可知,當時間間隔設為200個時鐘周期時,由于運行過程中不確定因素的影響,計算得到的AVF值變化非常顯著。當時間間隔設為1 000個時鐘周期時,計算結果能夠較好地反映程序運行特征,同時沒有隨著程序的變化而發生劇烈的波動;而當時間間隔設為5 000個時鐘周期時,計算結果的變化趨勢變小,很難反映程序不同階段的運行特點。因此,在本文后續實驗中,選用的計算時間間隔為1 000個時鐘周期。在每個時間間隔的末尾,AVF計算部件將得出該時間間隔內不同結構的AVF值,同時初始化相應的計數單元,為下一時間段的AVF計算做準備。

4.3 實驗結果及分析

本節利用提出的AVF在線計算方法計算IQ、ROB和LSQ三個結構的AVF值,給出計算結果并進行分析。

Figure 4 AVF varies for different program intervals圖4 以crafty測試程序為例,時間間隔分別為200、1 000及5 000個周期時AVF值的變化特征

如圖5所示為運行不同測試程序時,本文在線方法與離線方法[7]計算IQ、ROB和LSQ三個結構的AVF值。由圖5可知,與離線計算方法得到的結果相比,上述三個結構的AVF值的絕對誤差分別為0.10、0.01和0.039,說明采用本文方法計算AVF值的準確度較高。同時,實驗結果與前述分析均表明,本文提出的在線方法計算結果偏大,即AVF值具有一定的保守性,造成上述偏差的原因是本文方法沒有足夠時間區分動態無效指令,將其全部視為ACE指令。

Figure 5 Results of our method compared with an offline method圖5 本文方法與離線方法AVF計算結果

此外,ROB和LSQ AVF值的平均偏差比IQ AVF值的平均偏差小,這是由于ROB與LSQ的項數比IQ的項數多,ROB和LSQ的占用率相對于IQ的占用率小,因此計算AVF時,動態無效指令對ROB和LSQ的影響比對IQ的影響小。實驗中的一個特例是在運行gzip測試程序時,本文方法得到的ROB AVF值比離線計算結果要小,這是因為運行gzip測試程序時,其中有45.6%的指令是NOP指令,本文方法中該部分指令沒有加以計算,但NOP指令中的操作碼為ACE位,離線計算中進行了分析,使得運行gzip測試程序時,離線計算結果比在線計算結果更加精確。

圖6給出了本文方法與離線計算方法比較的相對誤差。對于IQ和ROB,通過區分NOP指令提高了計算精度,因此平均相對誤差較小,分別為24%和5%。而對于LSQ,由于該結構AVF的絕對值偏小,較小的計算誤差將導致很大的相對誤差,比如運行twolf時,相對誤差達到72%。雖然對LSQ結構有較大的相對誤差,但該結構的AVF絕對值較低,也即該結構中發生軟錯誤被屏蔽的概率非常高,產生的計算誤差對容錯設計的影響相應減小。

Figure 6 Relative error of our method to an offline method圖6 本文方法和離線方法比較的相對誤差

圖7給出了運行crafty和gap時,IQ、ROB和LSQ三個結構的AVF值,選取的計算時間間隔為1 000個時鐘周期。由圖6可知,當運行crafty測試程序時,三個結構的AVF值在一個較大范圍內波動。而IQ AVF值比其它兩個結構的AVF值要高,上述結果與本文前述分析一致。當運行測試程序gap時,AVF值的變化范圍相對較小,可見程序運行過程中,不同結構的AVF值將隨程序特征的變化而變化。

實驗結果表明,本文提出的AVF在線計算方法能快速計算微處理器中不同結構的AVF值,對選擇容錯技術、提高微處理器可靠性具有較好的指導作用。當AVF值較高時,可采用嚴格的冗余技術提高系統可靠性,例如采用程序完全冗余執行技術。而當AVF值較低時,即便發生軟錯誤,程序執行出錯的概率也較小,此時可采用開銷較小的容錯技術降低對性能的影響,例如采用程序部分冗余執行技術。通過適時調整容錯策略,就能在微處理器性能、功耗和可靠性等方面進行折衷,達到最優配置。

Figure 7 IQ,ROB and LSQ AVF during executing crafty and gap圖7 運行測試程序crafty和gap時,IQ、ROB和LSQ三個結構的AVF值,計算時間間隔為1 000個時鐘周期

5 結束語

CMOS工藝技術的不斷進步使得軟錯誤成為影響微處理器可靠性的重要因素,量化分析軟錯誤對微處理器中不同結構的影響對提高微處理器可靠性具有重要指導意義。本文在對已有AVF計算方法分析比較的基礎上,提出了一種基于占用率的AVF在線計算方法,該方法通過在程序運行過程中記錄不同結構的占用率、分析指令類型并排除NOP指令來計算不同結構(IQ、ROB和LSQ)的AVF值。實驗結果表明,該方法能有效計算微處理器中不同結構的AVF值,與精確的離線計算方法相比,IQ AVF、ROB AVF和LSQ AVF的平均絕對誤差僅為0.10、0.01和0.039。后續工作是將本文方法與具體的容錯技術相結合(例如,雙線程冗余技術),在程序運行過程中,動態選擇不同的容錯技術,在可靠性與性能之間實現較好的平衡。

[1] Shivakumar P,Kistler M,Keckler S,et al.Modeling the effect of technology trends on the soft error rate of combinatorial logic[C]∥Proc of the International Symposium of Dependable Systems and Networks(DSN’02),2002:389-398.

[2] Mukherjee S S,Weaver C,Emer J,et al.A systematic methodology to compute the architectural vulnerability factors for a high performance microprocessor[C]∥Proc of the International Symposium on Microarchitecture(MICRO’03),2003:29-40.

[3] Rotenberg E.AR-SMT:A microarchitectural approach to fault tolerance in microprocessors[C]∥Proc of the Fault-Tolerant Computing Systems(FTCS’99),1999:84-91.

[4] Austin T.DIVA:A reliable substrate for deep submicron microarchitecture[C]∥Proc of the International Symposium on Microarchitecture(MICRO’99),1999:196-207.

[5] Vijaykumar T,Pomeranz I,Cheng K.Transient-fault recovery using simultaneous multithreading[C]∥Proc of the International Symposium on Computer Architecture(ISCA’02),2002:87-98.

[6] Pan Song-jun,Hu Yu,Li Xiao-wei.IVF:Characterizing the vulnerability of microprocessor structures to intermittent faults[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2012,20(5):777-790.

[7] Fu X,Li T,Fortes J.Sim-SODA:A unified framework for architectural level software reliability analysis[C]∥Proc of Workshop on Modeling,Benchmarking and Simulation,2006:1.

[8] Saggese G P,Wang N,Kalbarczyk Z,et al.An experimental study of soft errors in microprocessors[J].IEEE Micro,2005,25(6):30-39.

[9] Walcott K R,Humphreys G,Gurumurthi S.Dynamic prediction of architectural vulnerability from microarchitectural state[C]∥Proc of the International Conference of Computer Architecture(ISCA’07),2007:516-527.

[10] Li X D,Adve S V,Bose P,et al.Online estimation of architectural vulnerability factor for soft errors[C]∥Proc of the International Conference of Computer Architecture(ISCA’08),2008:341-352.

[11] Fahs B,Bose S,Crum M,et al.Performance characterization of a hardware mechanism for dynamic optimization[C]∥Proc of the International Symposium on Microarchitecture(MICRO’01),2001:16-27.

[12] Desikan R,Burger D,Keckler S,et al.Sim-alpha:A validated,execution-driven Alpha 21264 simulator[R].Technical Report TR-01-23,Austin:Department of Computer Sciences,University of Texas at Austin,2001.

[13] Sherwood T,Perelman E,Hamerly G,et al.Automatically characterizing large scale program behavior[C]∥Proc of the International Conference on Architectural Support for Programming Languages and Operating Systems(ASPLOS’02),2002:45-57.

[14] Soundararajan N,Parashar A,Sivasubramaniam A.Mechanisms for bounding vulnerabilities of processor structures[C]∥Proc of the International Symposium on Computer Architecture(ISCA’07),2007:506-515.

猜你喜歡
指令結構方法
聽我指令:大催眠術
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
論《日出》的結構
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 精品久久久无码专区中文字幕| 青青操国产视频| 亚洲 欧美 中文 AⅤ在线视频| 日本爱爱精品一区二区| 农村乱人伦一区二区| 亚洲午夜天堂| 热99re99首页精品亚洲五月天| 黄色三级网站免费| 2048国产精品原创综合在线| 日韩欧美在线观看| 婷婷综合色| 欧美成人午夜在线全部免费| 九九九九热精品视频| 久久99精品国产麻豆宅宅| 国产成人三级| 久久国产精品77777| 国产精品久久久久久久久kt| 亚洲精品视频网| 久久黄色影院| 国产精品黄色片| 精品久久久久无码| 草草影院国产第一页| 国产精品天干天干在线观看| 午夜国产精品视频| 国产第一色| 亚洲中文字幕23页在线| 亚洲第一极品精品无码| 欧美人与性动交a欧美精品| 激情午夜婷婷| 精品国产福利在线| 亚洲欧美成aⅴ人在线观看| 最近最新中文字幕免费的一页| 中文字幕天无码久久精品视频免费| 日韩在线播放中文字幕| av色爱 天堂网| 91在线国内在线播放老师| 久久美女精品| 国产中文一区a级毛片视频| 色成人亚洲| 国产呦视频免费视频在线观看| 亚洲中文字幕97久久精品少妇| 亚洲青涩在线| 伊人成人在线| 国产高清不卡| 亚洲第一区在线| 欧美一道本| 天堂成人av| 91免费国产在线观看尤物| 91美女视频在线| 免费看美女自慰的网站| 原味小视频在线www国产| 黄色网站不卡无码| 日本亚洲欧美在线| 国产日韩丝袜一二三区| 国产精品视频导航| 免费看黄片一区二区三区| www.精品视频| 老色鬼久久亚洲AV综合| 亚洲成综合人影院在院播放| 五月婷婷欧美| 欧美成a人片在线观看| hezyo加勒比一区二区三区| 日韩在线永久免费播放| av色爱 天堂网| 狼友av永久网站免费观看| 女人爽到高潮免费视频大全| 国产91在线|日本| 亚洲无码熟妇人妻AV在线| 97在线碰| 国产欧美日韩视频怡春院| 69av在线| 日本午夜精品一本在线观看| 国产杨幂丝袜av在线播放| 色悠久久久| 无码区日韩专区免费系列| 免费在线观看av| 在线不卡免费视频| 免费看的一级毛片| 蜜芽一区二区国产精品| AV网站中文| 日韩小视频在线播放| 国产午夜看片|