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

?

基于占用率的體系結(jié)構(gòu)脆弱因子在線計(jì)算方法*

2014-03-23 06:02:56潘送軍陳傳鵬
關(guān)鍵詞:程序運(yùn)行測試程序占用率

潘送軍,陳傳鵬

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

1 引言

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

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

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

本文內(nèi)容按如下結(jié)構(gòu)組織:第2節(jié)介紹相關(guān)工作;第3節(jié)詳細(xì)介紹本文提出的AVF在線計(jì)算方法;第4節(jié)介紹實(shí)驗(yàn)平臺(tái)并給出實(shí)驗(yàn)結(jié)果,最后對(duì)本文進(jìn)行總結(jié)。

2 相關(guān)工作

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

此外,Li X D等人[10]提出一種基于指示位的AVF在線計(jì)算方法。該方法通過在邏輯結(jié)構(gòu)及存儲(chǔ)結(jié)構(gòu)上增加故障指示位表示故障的注入與傳播,用于在線計(jì)算AVF值。為使計(jì)算結(jié)果具有統(tǒng)計(jì)意義,該方法需要注入大量故障。在故障效應(yīng)表現(xiàn)出來之前,程序已經(jīng)向前執(zhí)行一段時(shí)間,使得計(jì)算結(jié)果具有滯后性,未能體現(xiàn)在線計(jì)算的時(shí)效性。

根據(jù)上述分析,在線AVF計(jì)算需要快速得到應(yīng)用程序執(zhí)行時(shí)不同結(jié)構(gòu)的AVF值,要求計(jì)算方法盡量簡捷,以減少對(duì)微處理器性能的影響。本文提出一種基于占用率的AVF在線計(jì)算方法,通過記錄程序運(yùn)行時(shí)不同結(jié)構(gòu)的占用率,計(jì)算不同結(jié)構(gòu)的AVF值。

3 基于占用率的AVF在線計(jì)算方法

對(duì)于離線AVF計(jì)算,由于不需要考慮ACE位分析對(duì)微處理器性能的影響,可在指令執(zhí)行完成后的任意時(shí)間段內(nèi)進(jìn)行。而在線AVF計(jì)算是在程序?qū)嶋H運(yùn)行過程中進(jìn)行的,要求計(jì)算方法快捷,實(shí)現(xiàn)開銷小,因而很難進(jìn)行精確的ACE位和非ACE位分析。本文提出的基于占用率的在線計(jì)算方法將從另外一個(gè)角度分析計(jì)算不同微處理器結(jié)構(gòu)的AVF值。

3.1 整體框圖

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

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

3.2 計(jì)算流程

在任意程序執(zhí)行過程中,如果認(rèn)為待分析結(jié)構(gòu)中包含的比特位都為ACE位,則一段時(shí)間內(nèi)該結(jié)構(gòu)的占用率即為該結(jié)構(gòu)AVF值的上限。假定微處理器中IQ包含32項(xiàng),某一時(shí)刻該結(jié)構(gòu)已使用24項(xiàng),則該時(shí)刻IQ的占用率為75%,也即IQ的AVF值上界為75%。AVF值與占用率的關(guān)系可表示為:

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

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

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

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

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

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

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

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

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

4 實(shí)驗(yàn)平臺(tái)和實(shí)驗(yàn)結(jié)果

4.1 實(shí)驗(yàn)平臺(tái)

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

4.2 計(jì)算時(shí)間間隔選取

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

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

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

4.3 實(shí)驗(yàn)結(jié)果及分析

本節(jié)利用提出的AVF在線計(jì)算方法計(jì)算IQ、ROB和LSQ三個(gè)結(jié)構(gòu)的AVF值,給出計(jì)算結(jié)果并進(jìn)行分析。

Figure 4 AVF varies for different program intervals圖4 以crafty測試程序?yàn)槔?,時(shí)間間隔分別為200、1 000及5 000個(gè)周期時(shí)AVF值的變化特征

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

Figure 5 Results of our method compared with an offline method圖5 本文方法與離線方法AVF計(jì)算結(jié)果

此外,ROB和LSQ AVF值的平均偏差比IQ AVF值的平均偏差小,這是由于ROB與LSQ的項(xiàng)數(shù)比IQ的項(xiàng)數(shù)多,ROB和LSQ的占用率相對(duì)于IQ的占用率小,因此計(jì)算AVF時(shí),動(dòng)態(tài)無效指令對(duì)ROB和LSQ的影響比對(duì)IQ的影響小。實(shí)驗(yàn)中的一個(gè)特例是在運(yùn)行g(shù)zip測試程序時(shí),本文方法得到的ROB AVF值比離線計(jì)算結(jié)果要小,這是因?yàn)檫\(yùn)行g(shù)zip測試程序時(shí),其中有45.6%的指令是NOP指令,本文方法中該部分指令沒有加以計(jì)算,但NOP指令中的操作碼為ACE位,離線計(jì)算中進(jìn)行了分析,使得運(yùn)行g(shù)zip測試程序時(shí),離線計(jì)算結(jié)果比在線計(jì)算結(jié)果更加精確。

圖6給出了本文方法與離線計(jì)算方法比較的相對(duì)誤差。對(duì)于IQ和ROB,通過區(qū)分NOP指令提高了計(jì)算精度,因此平均相對(duì)誤差較小,分別為24%和5%。而對(duì)于LSQ,由于該結(jié)構(gòu)AVF的絕對(duì)值偏小,較小的計(jì)算誤差將導(dǎo)致很大的相對(duì)誤差,比如運(yùn)行twolf時(shí),相對(duì)誤差達(dá)到72%。雖然對(duì)LSQ結(jié)構(gòu)有較大的相對(duì)誤差,但該結(jié)構(gòu)的AVF絕對(duì)值較低,也即該結(jié)構(gòu)中發(fā)生軟錯(cuò)誤被屏蔽的概率非常高,產(chǎn)生的計(jì)算誤差對(duì)容錯(cuò)設(shè)計(jì)的影響相應(yīng)減小。

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

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

實(shí)驗(yàn)結(jié)果表明,本文提出的AVF在線計(jì)算方法能快速計(jì)算微處理器中不同結(jié)構(gòu)的AVF值,對(duì)選擇容錯(cuò)技術(shù)、提高微處理器可靠性具有較好的指導(dǎo)作用。當(dāng)AVF值較高時(shí),可采用嚴(yán)格的冗余技術(shù)提高系統(tǒng)可靠性,例如采用程序完全冗余執(zhí)行技術(shù)。而當(dāng)AVF值較低時(shí),即便發(fā)生軟錯(cuò)誤,程序執(zhí)行出錯(cuò)的概率也較小,此時(shí)可采用開銷較小的容錯(cuò)技術(shù)降低對(duì)性能的影響,例如采用程序部分冗余執(zhí)行技術(shù)。通過適時(shí)調(diào)整容錯(cuò)策略,就能在微處理器性能、功耗和可靠性等方面進(jìn)行折衷,達(dá)到最優(yōu)配置。

Figure 7 IQ,ROB and LSQ AVF during executing crafty and gap圖7 運(yùn)行測試程序crafty和gap時(shí),IQ、ROB和LSQ三個(gè)結(jié)構(gòu)的AVF值,計(jì)算時(shí)間間隔為1 000個(gè)時(shí)鐘周期

5 結(jié)束語

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

[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,F(xiàn)ortes 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.

猜你喜歡
程序運(yùn)行測試程序占用率
行政公益訴訟訴前程序運(yùn)行檢視
法大研究生(2020年2期)2020-01-19 01:43:04
降低CE設(shè)備子接口占用率的研究與應(yīng)用
魅力中國(2019年6期)2019-07-21 07:12:10
基于Castle型機(jī)械手的三溫量產(chǎn)測試平臺(tái)實(shí)現(xiàn)
手機(jī)APP交互界面人因適合性測試程序的設(shè)計(jì)與實(shí)現(xiàn)
中心主導(dǎo)制訂的《VHF/UHF頻率范圍內(nèi)測向系統(tǒng)測向靈敏度的測試程序》等兩項(xiàng)國際標(biāo)準(zhǔn)在ITU官網(wǎng)正式發(fā)布
基于排隊(duì)論的區(qū)域路內(nèi)停車最優(yōu)泊位占用率研究
電氣自動(dòng)化控制設(shè)備可靠性測試探討
論刑事錯(cuò)案的成因
《刑事訴訟法》修改背景下刑事和解制度淺析
阿朗CDMA尋呼信道瘦身增效優(yōu)化
法库县| 登封市| 宁陕县| 和顺县| 六盘水市| 曲阜市| 桂平市| 迭部县| 鲁山县| 贡嘎县| 五家渠市| 准格尔旗| 雷山县| 孟连| 买车| 台东县| 泽库县| 沙雅县| 昭苏县| 汉阴县| 太保市| 泸水县| 广饶县| 赣州市| 晋城| 曲阳县| 墨江| 老河口市| 神木县| 郯城县| 探索| 竹山县| 墨江| 行唐县| 建宁县| 宣恩县| 仁布县| 顺平县| 海原县| 奉节县| 玉环县|