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

        ?

        CacheFI:基于架構(gòu)級故障注入的片上緩存容錯(cuò)評估工具*

        2016-11-25 06:25:54黃智瀕馬華東何若愚
        關(guān)鍵詞:故障注入故障率模擬器

        黃智瀕,周 鋒,馬華東,何若愚

        (1. 智能通信軟件與多媒體北京市重點(diǎn)實(shí)驗(yàn)室 北京郵電大學(xué) 計(jì)算機(jī)學(xué)院, 北京 100876;2. 軟件開發(fā)環(huán)境國家重點(diǎn)實(shí)驗(yàn)室, 北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院, 北京 100191)

        ?

        CacheFI:基于架構(gòu)級故障注入的片上緩存容錯(cuò)評估工具*

        黃智瀕1,2,周 鋒1,馬華東1,何若愚1

        (1. 智能通信軟件與多媒體北京市重點(diǎn)實(shí)驗(yàn)室 北京郵電大學(xué) 計(jì)算機(jī)學(xué)院, 北京 100876;2. 軟件開發(fā)環(huán)境國家重點(diǎn)實(shí)驗(yàn)室, 北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院, 北京 100191)

        體系架構(gòu)級緩存容錯(cuò)技術(shù)被認(rèn)為是應(yīng)對較高的永久位故障率的有效手段,但目前緩存容錯(cuò)機(jī)制的體系架構(gòu)級評估工具較少。針對這個(gè)問題,提出CacheFI,即基于Simics的緩存故障注入工具,采用故障生成和注入分離的設(shè)計(jì),故障生成是隨機(jī)分布、模式和時(shí)序三個(gè)方面的結(jié)合,故障注入則考慮了故障可重現(xiàn)性和模塊化的需要。在全系統(tǒng)模擬器Simics上,基于15個(gè)選自SPEC CPU2000的測試程序,利用CacheFI對Buddy和MAEP等典型的體系架構(gòu)級緩存容錯(cuò)機(jī)制進(jìn)行評估,展現(xiàn)了其弱點(diǎn)和典型的片上緩存容錯(cuò)機(jī)制存在的問題。

        故障注入;片上緩存;體系結(jié)構(gòu)模擬器;Simics

        隨著丹納德微縮的終結(jié),處理器芯片的功耗問題成為關(guān)鍵的制約因素之一。降低供電電壓和動態(tài)的電壓縮放是芯片的低功耗設(shè)計(jì)中的重要手段。在低電壓下,工藝參數(shù)偏差會更加嚴(yán)重,晶體管更加脆弱和不可靠。芯片上的大型存儲結(jié)構(gòu),特別是一級緩存、二級緩存等,更易受晶體管的工藝偏差和老化磨損影響,且其電壓往往決定了整個(gè)芯片的供電電壓。因此,緩解片上緩存對供電電壓的限制,成為目前芯片功耗優(yōu)化設(shè)計(jì)研究中的關(guān)鍵問題之一。

        靜態(tài)隨機(jī)存儲器(Static Random Access Memory, SRAM)存儲陣列的位故障主要可以分為兩大類:永久故障和非永久故障。永久故障與供電電壓具有強(qiáng)關(guān)聯(lián)性,據(jù)測算,每降低500 mV,永久故障率將有多于10億倍的增加[1],出廠前簡單的禁用排除所有永久錯(cuò)誤將會導(dǎo)致芯片成品率過低。非永久故障主要包括軟錯(cuò)誤和不確定位故障。同樣降低500 mV,軟錯(cuò)誤率的增長率只有2.5~3倍,要遠(yuǎn)小于永久故障率的增速。不確定位故障表現(xiàn)出與永久故障率具有一定的比例關(guān)系[1],最高可達(dá)1 ∶10。而且在低電壓下,特別是電壓降低到650 mV之后,永久故障和不確定故障將成為主要故障源,將超越10-3的警戒值,達(dá)到高故障率水平。片上緩存的容錯(cuò)機(jī)制和技術(shù)需要應(yīng)對這種故障源的變化和故障率的水平變化。

        因此,片上緩存容錯(cuò)機(jī)制的研究成為目前高效能關(guān)鍵任務(wù)處理器芯片研究的重要內(nèi)容之一。國內(nèi)外的研究人員提出了大量的緩存容錯(cuò)技術(shù),大致可以分為四大類:①電路級的容錯(cuò)技術(shù),主要采用多電壓域或可靠性更高的存儲單元電路[2],這類方法會增加面積開銷和成本,會額外帶來大量的設(shè)計(jì)、制造和測試工作,而且其供電電壓的降低幅度有限。②編碼級的容錯(cuò)技術(shù),它是應(yīng)對軟錯(cuò)誤的有效手段,被廣泛地應(yīng)用到目前的現(xiàn)代微處理器中。例如,Power8處理器在L1緩存中使用了奇偶校驗(yàn)碼[3],但在處理永久故障和不確定位故障時(shí),編碼方案效率較低,編碼解碼引起的延遲開銷大。③體系結(jié)構(gòu)級的緩存容錯(cuò)技術(shù),主要通過修改緩存的操作路徑或邏輯結(jié)構(gòu)實(shí)現(xiàn)位故障的修補(bǔ)或者容忍。④混合容錯(cuò)技術(shù),即上述三類方法的綜合利用。

        體系結(jié)構(gòu)級的緩存容錯(cuò)技術(shù)目前研究比較活躍,而且被認(rèn)為是應(yīng)對高永久故障率的有效手段之一。這些容錯(cuò)機(jī)制往往依賴于典型的體系結(jié)構(gòu)級的模擬器評估其性能,如Simics[4]和Gem5等,但是,由于缺少緩存故障注入工具,其可靠性和有效性的評估驗(yàn)證并不充分。針對這個(gè)問題,本文提出了CacheFI,它是一種基于全系統(tǒng)模擬器Simics的故障注入架構(gòu),支持對片上緩存的各種容錯(cuò)機(jī)制和技術(shù)的評估以及壓力測試。

        1 故障注入的相關(guān)研究

        故障注入是一種評估容錯(cuò)機(jī)制的有效方法,最初由IBM 實(shí)驗(yàn)室在20 世紀(jì)70 年代提出,故障注入依據(jù)注入方式和對象大致可以分為三類: 基于物理硬件的故障注入,基于軟件實(shí)現(xiàn)的故障注入和基于仿真模擬的故障注入。

        基于物理硬件實(shí)現(xiàn)的故障注入是指直接將故障注入硬件中,主要通過管腳或者輻射方式將故障注入目標(biāo)系統(tǒng)。硬件故障注入控制性差,靈活性差,容易損壞系統(tǒng)。而且它只能在系統(tǒng)設(shè)計(jì)后期,原型系統(tǒng)成形之后實(shí)施。

        基于軟件實(shí)現(xiàn)的故障注入主要通過修改內(nèi)存或者寄存器的值,模擬硬件故障對應(yīng)用軟件的影響。軟件故障注入通常利用編譯器,運(yùn)行時(shí)通過環(huán)境或者二進(jìn)制翻譯技術(shù)[5]實(shí)現(xiàn)。主要用于評估操作系統(tǒng)和應(yīng)用軟件的可靠性和容錯(cuò)能力,它的主要弱點(diǎn)是故障注入位置受限,對應(yīng)用透明的結(jié)構(gòu)難以覆蓋,例如片上緩存。為了緩解故障注入位置受限問題,一些基于固件的故障注入方案被提出,例如秦磊等[6]提出針對IA64架構(gòu)的故障注入方案,利用處理器抽象層接口獲取CPU硬件的信息,并注入故障到CPU中,這類方法本質(zhì)上也屬于軟件故障注入技術(shù)。軟件故障注入技術(shù)不能評估CPU內(nèi)部硬件故障源自身的容錯(cuò)機(jī)制。

        基于仿真模擬的故障注入依據(jù)仿真模擬的目標(biāo)層次,可以分為基于硬件描述語言的仿真器故障注入和體系架構(gòu)級模擬器的故障注入。前者主要是利用典型的硬件描述語言從行為模式或者結(jié)構(gòu)模式仿真具體的硬件,基于寄存器級或門級實(shí)現(xiàn)。這類仿真器與具體的硬件模型密切聯(lián)系,雖然高度可控,且模擬精度高,但仿真編譯合成耗時(shí)長,而且由于硬件描述語言的限制,故障注入的覆蓋范圍和場景復(fù)雜度受限,對片上緩存故障注入的支持較少,主要集中在寄存器、總線、端口和內(nèi)存等。為了加速仿真器的模擬過程,有些工具通過FPGA加速,例如FuSE[7]。

        后者主要依賴體系架構(gòu)級模擬器。體系架構(gòu)模擬器是體系結(jié)構(gòu)研究的重要支撐工具,也是系統(tǒng)早期研究的重要輔助。體系架構(gòu)級模擬器的故障注入成為目前故障注入研究的新熱點(diǎn),對評估體系結(jié)構(gòu)的脆弱因子(Architecture Vulnerability Factor, AVF)和體系結(jié)構(gòu)級的容錯(cuò)機(jī)制具有重要作用。胡倩等[8]提出了基于Simics的處理器典型流水部件的故障注入,主要針對譯碼單元、地址生成單元、算術(shù)邏輯單元和寄存器堆。FSFI[9]是一個(gè)基于開源全系統(tǒng)模擬器的故障注入工具,主要針對算術(shù)邏輯單元、解碼器、寄存器堆和地址生成單元等。FIMSIM[10]是一個(gè)基于M5模擬器的故障注入工具,主要針對寄存器堆、算術(shù)邏輯單元、傳輸后備緩沖器、繞開邏輯等。 目前國內(nèi)外基于體系結(jié)構(gòu)模擬器的故障注入主要集中在對執(zhí)行部件相關(guān)的組件上,據(jù)我們的廣泛調(diào)研,片上緩存的故障注入工具尚不多見。

        事實(shí)上,片上緩存的故障注入與寄存器或執(zhí)行部件的故障注入有明顯的不同,而且片上緩存的位故障率更高,對處理器芯片的成品率影響更大,片上緩存由SRAM存儲單元構(gòu)成,而且這些存儲單元組合成了不同的邏輯單元,如標(biāo)記域、數(shù)據(jù)域、緩存行、緩存組、緩存體以及復(fù)雜的緩存邏輯結(jié)構(gòu)。這些層次的邏輯單元出現(xiàn)故障均會導(dǎo)致緩存不能正常工作。本文提出的CacheFI充分考慮了緩存各個(gè)層次邏輯單元的故障和位故障分布。

        2 CacheFI的架構(gòu)

        CacheFI是基于全系統(tǒng)模擬器Simics的片上緩存故障注入工具,充分利用了Simics的C語言應(yīng)用開發(fā)接口,充分考慮了緩存各個(gè)層次的邏輯單元,支持多種故障模式和多種故障分布,而且高度模塊化,可以實(shí)現(xiàn)對各種緩存結(jié)構(gòu)容錯(cuò)機(jī)制的評估驗(yàn)證和壓力測試。圖1展示了CacheFI的整體結(jié)構(gòu)。主要由三部分組成:①基于XML格式的配置參數(shù)文件;②CacheFI-Gen,故障生成器;③CacheFI-Load,故障注入器。

        基于XML格式的配置參數(shù)文件主要由五類參數(shù)構(gòu)成,即:CPU核配置、緩存架構(gòu)配置、控制參數(shù)、故障模式配置和位故障水平參數(shù),后續(xù)模塊需要綜合考慮這些參數(shù)。故障模式配置主要考慮故障注入的目的,CacheFI主要用來進(jìn)行故障容錯(cuò)機(jī)制的驗(yàn)證和故障容錯(cuò)能力的壓力測試。依據(jù)目的不同,生成故障的覆蓋范圍和對緩存各層次邏輯結(jié)構(gòu)的故障分布考慮有所不同。位故障水平參數(shù)主要依據(jù)不同的SRAM存儲單元結(jié)構(gòu)(如傳統(tǒng)的6T,或者7T/14T結(jié)構(gòu),8T或者10T等)在不同的電壓水平下的各種故障模式的故障率。這些數(shù)據(jù)可以依據(jù)國際半導(dǎo)體技術(shù)藍(lán)圖(International Technology Roadmap for Semiconductors, ITRS)的相關(guān)參數(shù)和對SRAM存儲單元的故障模型[1,11]獲得,也可以由用戶直接輸入指定。

        圖1 CacheFI片上緩存故障注入工具的架構(gòu)圖Fig.1 Architecture of CacheFI

        CPU核配置、緩存架構(gòu)配置和控制參數(shù)主要用來生成Simics全系統(tǒng)模擬器的運(yùn)行腳本。

        CacheFI-Gen由三部分組成:隨機(jī)分布生成器、位故障模式生成器和故障時(shí)序發(fā)生器。

        隨機(jī)分布生成器主要考慮設(shè)定的目標(biāo)位故障率水平,依據(jù)故障分布參數(shù),同時(shí)要考慮緩存的邏輯結(jié)構(gòu)配置和各級緩存邏輯單元(如緩存子塊、緩存行、標(biāo)記域和數(shù)據(jù)域、緩存組以及其他與邏輯結(jié)構(gòu)相關(guān)的單元結(jié)構(gòu)等),生成故障分布。依據(jù)故障注入的目的不同,隨機(jī)分布生成故障的方式也不同。如果故障注入是為了驗(yàn)證故障容錯(cuò)機(jī)制,隨機(jī)分布生成依據(jù)泊松分布合理分布所有的位故障,以合理評估容錯(cuò)能力。如果故障注入為了故障容錯(cuò)能力的壓力測試,則以故障覆蓋為主,衍生各種極端情況的故障分布,這主要依據(jù)故障注入覆蓋模式參數(shù)決定。CacheFI-Gen通過全局表G-Table記錄緩存各個(gè)邏輯結(jié)構(gòu)和邏輯單元的位故障分布情況。

        隨機(jī)分布生成器以緩存組為基礎(chǔ),通過組編碼SID,緩存行內(nèi)字編碼WID,以及字內(nèi)位偏移BID,生成故障分布。SID,WID和BID由隨機(jī)數(shù)函數(shù)生成,每次位故障設(shè)定前,通過查詢?nèi)直鞧-Table,依據(jù)故障位所屬的各級邏輯結(jié)構(gòu)和邏輯單元,確定該故障位是否成立。

        位故障模式生成器主要設(shè)定每一個(gè)故障位的故障發(fā)生模式,SRAM存儲單元的故障主要分為永久故障和非永久故障,非永久故障又可以分為軟錯(cuò)誤和不確定位故障。永久故障是在特定電壓下,位故障確定持續(xù)存在。非永久故障也與電壓密切相關(guān),其發(fā)生具有隨機(jī)性和不確定性,但故障發(fā)生之后會持續(xù)存在,直到電壓升高,該位的故障狀態(tài)才會發(fā)生變化。軟錯(cuò)誤是瞬時(shí)錯(cuò)誤,如果某位偶然發(fā)生軟錯(cuò)誤,稱為瞬時(shí)故障,如果某位頻繁發(fā)生軟錯(cuò)誤,則稱為間歇故障。因此,將位故障分成四類:永久故障、不確定位故障、瞬時(shí)故障和間歇故障。另一方面,SRAM存儲單元的故障可以分成四類:讀故障、寫故障、保持故障和訪問故障[11]。其中,訪問故障是時(shí)序故障,由延遲引起。其他三種故障是數(shù)據(jù)故障。數(shù)據(jù)故障進(jìn)一步可以分成三種類型:恒0,恒1,翻轉(zhuǎn)。由于體系結(jié)構(gòu)模擬器難以有效地模擬緩存訪問流水線及其時(shí)序,因此,將訪問故障模式用數(shù)據(jù)故障代替,這并不影響CacheFI的故障注入效果和對緩存容錯(cuò)機(jī)制驗(yàn)證的支持??傊?,每一個(gè)位故障的模式包括故障發(fā)生的時(shí)間屬性和值屬性,具體見表1。

        表1 故障模式的分類

        由于除永久故障之外的其他三類故障的發(fā)生時(shí)機(jī)都具有隨機(jī)性,瞬時(shí)故障和間歇故障持續(xù)時(shí)間較短,而且間歇故障會多次隨機(jī)發(fā)生,因此在CacheFI-Gen中專門設(shè)置了故障時(shí)序發(fā)生器。在電壓頻率發(fā)生改變之后,以機(jī)器周期為基本的時(shí)間單元(基于Simics的API函數(shù)SIM_cycle_count),通過生成隨機(jī)數(shù),設(shè)定故障發(fā)生的時(shí)刻。對于瞬時(shí)故障,還需要設(shè)定故障持續(xù)的時(shí)間,如果故障持續(xù)存在的這段時(shí)間,有緩存請求訪問該位,則會出現(xiàn)故障,否則,該位雖然出現(xiàn)故障,但并沒有衍生成錯(cuò)誤。

        對于間歇故障會隨機(jī)發(fā)生多次,每次持續(xù)時(shí)間瞬時(shí)且隨機(jī)。2次間歇故障發(fā)生時(shí)刻的時(shí)間間隔服從均勻分布、指數(shù)分布和Weibull 分布。這些分布屬性會存儲到故障位圖文件中。

        CacheFI-Gen會將位故障信息生成故障位圖文件。該文件采用結(jié)構(gòu)化的行列結(jié)構(gòu)存儲,每一行描述一個(gè)位故障。通過故障位圖文件注入故障的好處之一是可以在基于Simics進(jìn)行性能評估時(shí),所有的測試程序基于同一故障分布,減少故障分布差異導(dǎo)致的性能差異。另一個(gè)好處是有助于實(shí)驗(yàn)過程的復(fù)現(xiàn),進(jìn)而有助于緩存容錯(cuò)機(jī)制的驗(yàn)證。

        CacheFI-Load是內(nèi)置于Simics緩存模塊的機(jī)制,主要用于讀取故障位圖文件,并解析位故障屬性,設(shè)定對應(yīng)的數(shù)據(jù)陣列和標(biāo)記陣列的故障。CacheFI-Load主要由文件解析模塊、分布函數(shù)生成模塊以及位故障注入模塊構(gòu)成。CacheFI-Load以Simics的G-cache模塊為基礎(chǔ),深度修改了其中的struct cache_line結(jié)構(gòu)和struct generic_cache結(jié)構(gòu),并對緩存訪問過程進(jìn)行了全面的修改,主要包括標(biāo)記域比對函數(shù)lookup_line()、緩存訪問處理函數(shù)gc_operate()、讀訪問函數(shù)handle_read()和寫訪問函數(shù)handle_write()以及緩存管理策略的初始化函數(shù)update_config()等。

        通過將故障的生成過程和故障實(shí)際注入過程分離,CacheFI不僅有效地實(shí)現(xiàn)了各種故障模式的生成,并通過有效的保存故障位圖來支持實(shí)驗(yàn)的可重現(xiàn)性,而且可以有效地支持各級緩存邏輯單元和結(jié)構(gòu)的故障注入,充分驗(yàn)證緩存容錯(cuò)機(jī)制。

        3 實(shí)驗(yàn)評估

        基于時(shí)鐘周期的全系統(tǒng)模擬器Simics[4],模擬了一個(gè)16核的多核處理器。每一個(gè)處理器核基于UltraSPARC IV+的配置,具體參數(shù)見表2。模擬器的操作系統(tǒng)是Solaris10,主要的測試程序選自SPEC CPU2000。

        表2 實(shí)驗(yàn)環(huán)境的基準(zhǔn)配置

        CacheFI集成到Simics模擬器環(huán)境中,并基于G-cache模塊,實(shí)現(xiàn)了ZerehCache[12]和Archipelago[13],Buddy[14](由于Salvage[15]緩存機(jī)制與Buddy類似,因此沒有選作后續(xù)實(shí)驗(yàn)),Macho[16]以及MAEP(Matching Access and Error Patterns)[17]緩存容錯(cuò)機(jī)制。

        ZerehCache[12]利用圖染色算法充分利用冗余行列,Archipelago[13]利用一種自適應(yīng)的最小團(tuán)覆蓋算法,試圖最小化犧牲緩存行,但是,這兩種方法都是NP難問題,難以找到精確優(yōu)化解,只能尋求近似算法IBSC(Incomplete Backtracking Sequential Coloring)和DSATUR求解。Buddy[14], Salvage[15]和 Macho[16]是基于緩存組級的無沖突子塊(chunk)修補(bǔ)的緩存容錯(cuò)機(jī)制。MAEP[17]是容忍位故障的方案,通過調(diào)整地址映射,使得請求的數(shù)據(jù)能放置到無故障子塊中。

        為了測試CacheFI,主要做兩方面的實(shí)驗(yàn):①CacheFI對緩存容錯(cuò)架構(gòu)的驗(yàn)證能力,并對典型的緩存容錯(cuò)架構(gòu)容錯(cuò)能力的分析,指出這些容錯(cuò)架構(gòu)的問題;②CacheFI與Simics集成環(huán)境下,這些緩存容錯(cuò)架構(gòu)的性能評估。

        進(jìn)行實(shí)驗(yàn)評估時(shí),設(shè)置了三種永久位故障率(pFail)的場景,即永久位故障率分別為0.001, 0.002和0.004,依據(jù)文獻(xiàn)[1]的位故障模型與供電電壓Vcc的關(guān)系,Vcc分別對應(yīng)為470 mV, 450 mV和420 mV。這與文獻(xiàn)[1]和文獻(xiàn)[17]的實(shí)驗(yàn)場景類似。不確定位故障率與永久位故障率設(shè)定比例關(guān)系,按高比例關(guān)系,設(shè)定為1 ∶10,即每發(fā)生10個(gè)永久位故障會發(fā)生1個(gè)不確定位故障[1]。瞬時(shí)故障率為10-6,為了簡化實(shí)驗(yàn)過程,假設(shè)瞬時(shí)故障率保持不變。間歇故障與瞬時(shí)故障率一致。依據(jù)這些參數(shù),CacheFI實(shí)現(xiàn)故障的生成和注入。

        首先,對緩存架構(gòu)的容錯(cuò)能力進(jìn)行實(shí)驗(yàn)驗(yàn)證。當(dāng)位故障率較高(大于0.002)時(shí),ZerehCache的Group以及Archipelago的自治島(islands)的會顯著降低,犧牲緩存行的數(shù)量明顯增多。當(dāng)永久位故障率為0.004時(shí),ZerehCache-Group的平均值約為12.4個(gè)緩存行,Archipelago-Islands的大小平均約為16.7個(gè)緩存行。而且還存在一些被禁用的緩存行,ZerehCache的禁用比例約23.6%,Archipelago的禁用比例約為14.9%。

        通過實(shí)驗(yàn)發(fā)現(xiàn),基于緩存組級的無沖突子塊(chunk)修補(bǔ)的緩存容錯(cuò)架構(gòu),如Buddy, Salvage和Macho存在較多的問題,特別是緩存組關(guān)聯(lián)度較小的時(shí)候。下面以Buddy緩存容錯(cuò)機(jī)制的實(shí)驗(yàn)進(jìn)行說明。

        通過CacheFI注入故障,構(gòu)建100種不同的故障分布的緩存,并利用Buddy容錯(cuò)方案修復(fù)的緩存故障(緩存組的設(shè)定關(guān)聯(lián)度為4)。針對這些情況,對每個(gè)緩存中所有緩存組的實(shí)際關(guān)聯(lián)度的統(tǒng)計(jì)發(fā)現(xiàn),在pFail=0.001時(shí),只有1個(gè)可用完好緩存行的緩存組的比例為1.16%,擁有2個(gè)緩存行的緩存組占比為23.77%,擁有3個(gè)緩存行的緩存組占比為63.12%,所有緩存行均完好的緩存組的比例為11.95%。沒有出現(xiàn)組內(nèi)緩存行均被禁用的故障緩存組,所有緩存組關(guān)聯(lián)度的幾何平均值為2.86,如圖2所示。當(dāng)pFail=0.002時(shí),這些對應(yīng)的緩存組的比例分別為9.44%,56.80%,31.98%,1.36%和0.42%。也就是說,存在0.42%的緩存組,其組內(nèi)所有的緩存行均被禁用,這些緩存組是故障緩存組,包含這些故障緩存組的緩存并不能正常工作。所有緩存組關(guān)聯(lián)度的幾何平均值為2.24。當(dāng)pFail=0.004時(shí),這些對應(yīng)的緩存組的比分別例5.78%,42.43%,49.27%,2.51%和0.01%。故障緩存組的比例顯著增加到5.78%。所有緩存組關(guān)聯(lián)度的幾何平均值為1.49。

        圖2 Buddy緩存中緩存組實(shí)際緩存行數(shù)量的分布情況Fig.2 Practical Associativity of Cache sets in Buddy

        圖3 100種不同的故障分布時(shí)正常的Buddy緩存比例Fig.3 Ratio of normal Buddy Cache for 100 failure distributions

        圖3展示了不同位故障率水平,統(tǒng)計(jì)100種不同的故障分布時(shí),基于Buddy修補(bǔ)機(jī)制能正常工作的緩存的比例。從圖3中可以看出,當(dāng)pFail=0.001時(shí),所有的Buddy緩存均能正常工作,當(dāng)pFail=0.002時(shí),只有48.28%的Buddy緩存可以正常工作,當(dāng)pFail=0.004時(shí),所有的Buddy緩存均不能正常工作,每個(gè)緩存中均包含故障緩存組。需要處理這些故障緩存組,Buddy緩存才能正常工作。

        Buddy架構(gòu)中出現(xiàn)的這些問題,Salvage和Macho架構(gòu)中也同時(shí)存在,特別是故障緩存組的問題。通過基于CacheFI故障注入的評估,發(fā)現(xiàn)這些緩存容錯(cuò)機(jī)制存在明顯的缺陷和問題。

        其次,基于故障注入的Simics模擬器環(huán)境,評估這些緩存容錯(cuò)架構(gòu)的性能,主要挑選了無故障的基于最近最久未使用(Least Recently Used, LRU)算法管理的緩存,Buddy緩存和MAEP緩存三種架構(gòu),并應(yīng)用到L1數(shù)據(jù)緩存和L1指令緩存進(jìn)行性能評估,如圖4和圖5所示。由于Buddy緩存在位故障率大于0.002時(shí),會出現(xiàn)故障緩存組,因此,在性能評估時(shí),使用的是修改的Buddy架構(gòu),將所有對故障緩存組的緩存請求映射到相鄰的緩存組。

        當(dāng)使用CacheFI注入故障時(shí),Buddy和MAEP主要處理永久故障,其他的位故障都依賴糾錯(cuò)碼檢錯(cuò)和糾錯(cuò)。這些故障會增加一定的訪問延遲。從圖4和圖5中可以看出,緩存容錯(cuò)機(jī)制由于需要處理位故障,導(dǎo)致幾乎所有的測試程序的缺失率都有明顯的增加,而且當(dāng)位故障率越大時(shí),缺失率增加越多。Buddy修補(bǔ)位故障機(jī)制的性能要明顯優(yōu)于MAEP容忍位故障的機(jī)制。在15個(gè)測試程序中,當(dāng)pFail=0.001時(shí),L1數(shù)據(jù)緩存中,除了188.ammp外,在Buddy中其他14個(gè)測試程序的缺失率都要低于MAEP緩存的情況。當(dāng)pFail=0.002時(shí),除了177.mesa,179.art和188.ammp之外,其他12個(gè)測試程序在Buddy中表現(xiàn)更優(yōu)。

        圖4 不同緩存容錯(cuò)架構(gòu)的L1數(shù)據(jù)緩存的缺失率Fig.4 Miss rates of different L1 data Cache architectures

        圖5 不同緩存容錯(cuò)架構(gòu)的L1指令緩存的缺失率Fig.5 Miss rates of different L1 instruction Cache architectures

        4 結(jié)論

        在低電壓下,特別是電壓降低到650 mV之后,永久故障和不確定故障將成為主要故障源,將超越10-3的警戒值,達(dá)到高故障率水平。片上緩存的故障是影響芯片成品率的主要原因之一,而且體系架構(gòu)級的緩存容錯(cuò)技術(shù)被認(rèn)為是應(yīng)對永久位故障率較高的有效手段。但是體系結(jié)構(gòu)級的片上緩存容錯(cuò)機(jī)制的驗(yàn)證和測試工具尚不多見,影響了對體系架構(gòu)級的片上緩存容錯(cuò)機(jī)制的有效驗(yàn)證和評估。針對這個(gè)問題,本文提出了CacheFI,它是一個(gè)基于全系統(tǒng)模擬器Simics的片上緩存的故障注入工具,可以有效地支持對片上緩存的各種容錯(cuò)機(jī)制和技術(shù)的評估以及壓力測試。

        References)

        [1] Chishti Z, Alameldeen A R, Wilkerson C, et al.Improving Cache lifetime reliability at ultralow voltages[C]//Proceedings of the 42th Annual IEEE/ACM International Symposium on Micro-architecture, 2009: 89-99.

        [2] Kulkarni J P, Kim K, Roy K.A 160 mV robust schmitt trigger based subthreshold SRAM[J]. IEEE Journal of Solid-State Circuits, 2007, 42(10): 2303-2313.

        [3] Starke W J, Stuecheli J, Daly D M, et al.The Cache and memory subsystems of the IBM POWER8 processor[J].IBM Journal of Research and Development, 2015, 59(1): 1-13.

        [4] Magnusson P S, Christensson M, Eskilson J, et al. Simics: a full system simulator platform[J]. Computer, 2002, 35(2): 50-58.

        [5] Li D, Vetter J S, Yu W.Classifying soft error vulnerabilities in extreme-scale scientific applications using a binary instrumentation tool[C]// Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC), 2012: 1-11.

        [6] 秦磊, 龐東賀, 張展, 等. IA64固件層處理器故障注入技術(shù)[C]//第六屆中國測試學(xué)術(shù)會議論文集, 2010.QIN Lei, PANG Donghe, ZHANG Zhan, et al. IA64 firmware implemented processor fault injection technique[C]//Proceedings of 6th China Test Conference, 2010. (in Chinese)

        [7] Jeitler M, Delvai M, Reich S. FuSE-A hardware accelerated HDL fault injection tool[C]// Proceedings of Southern Conference on Programmable Logic, 2009: 89-94.

        [8] 胡倩, 王超, 王海霞, 等. 基于Simics 的系統(tǒng)級故障注入平臺[J]. 計(jì)算機(jī)工程, 2015, 41(2): 57-62,75.

        HU Qian, WANG Chao, WANG Haixia, et al. Simics-based system level fault injection platform[J]. Computer Engineering, 2015, 41(2): 57-62,75.(in Chinese)

        [9] Chao W, Fu Z C, Chen H S, et al. FSFI: a full system simulator-based fault injection tool[C]//Proceedings of the 1st International Conference on Instrumentation, Measurement, Computer, Communication and Control (IMCCC′11), 2011: 326-329.

        [10] Yalcin G, Unsal O S, Cristal A, et al.FIMSIM: a fault injection infrastructure for micro-architectural simulators[C]//Proceedings of the IEEE 29th International Conference on Computer Design (ICCD), 2011: 431-432.

        [11] Mukhopadhyay S, Mahmoodi H, Roy K.Modeling of failure probability and statistical design of SRAM array for yield enhancement in nanoscaled CMOS[J]. IEEE Transaction on Computer-Aided Design Integrated Circuits, 2005, 24(12): 1859-1880.

        [12] Ansari A, Gupta S, Feng S G, et al. Zerehcache: armoring Cache architectures in high defect density technologies[C]// Proceedings of the 42th Annual IEEE/ACM International Symposium on Micro-architecture (MICRO-42), 2009: 100-110.

        [13] Ansari A, Feng S G, Gupta S, et al. Archipelago: a polymorphic Cache design for enabling robust near-threshold operation[C]// Proceedings of the IEEE 17th International Symposium on High Performance Computer Architecture (HPCA-17), 2011: 539-550.

        [14] Koh C K, Wong W F, Chen Y R, et al. Tolerating process variations in large set associative Caches: the buddy Cache[J]. ACM Transactions on Architecture and Code Optimization (TACO), 2009, 6(2): 116-123.

        [15] Koh C K, Wong W F, Chen Y R, et al. The salvage Cache: a fault-tolerant Cache architecture for next-generation memory technologies[C]// Proceedings of the IEEE International Conference on Computer Design, 2009: 268-274.

        [16] Mahmood T, Hong S, Kim S.Ensuring Cache reliability and energy scaling at near-threshold voltage with Macho[J]. IEEE Transactions on Computers, 2015,64(6): 1694-1706.

        [17] Choi Y, Yoo S, Lee S, et al. MAEPER: matching access and error patterns with error-free resource for low Vcc L1 Cache[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2013, 21(6): 1013-1026.

        CacheFI: micro-architectural-level fault injection based fault-tolerant evaluation tool for on-chip Caches

        HUANG Zhibin1,2, ZHOU Feng1, MA Huadong1, HE Ruoyu1

        (1. School of Computer Science and Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China;2. State Key Laboratory of Software Development Environment, School of Computer Science and Engineering,Beihang University, Beijing 100191, China)

        Architectural solutions of on-chip Cache fault tolerance are considered as effective means for high persistent failure probabilities. However, less fault injection tools for on-chip Caches are available. Therefore, the CacheFI, a fault injection tool based on the full-system simulator Simics was proposed. A separate mechanism of the fault generation and injection was employed. Fault generation consists of stochastic distribution control, failure patterns and explosive timing. Fault injection was designed to focus on the requirement of repeatability and modularity. According to the experiments based on Simics and 15 benchmarks from SPEC CPU2000, it evaluates typical micro-architectural fault mechanisms, such as Buddy, MAEP(matching access and error pattern) etc. by injecting Cache faults with CacheFI. Consequently, it presents the weakness and issues of these typical mechanisms.

        fault injection; on-chip Cache; micro-architectural simulators; Simics

        10.11887/j.cn.201605009

        http://journal.nudt.edu.cn

        2015-05-30

        中國博士后基金資助項(xiàng)目(2014M550662);軟件開發(fā)環(huán)境國家重點(diǎn)實(shí)驗(yàn)室資助項(xiàng)目(SKLSDE-2014KF-04);智能通信軟件與多媒體北京市重點(diǎn)實(shí)驗(yàn)室資助項(xiàng)目(ITSM201303)

        黃智瀕(1978—),男,湖北漢川市人,講師,博士,E-mail:huangzb@bupt.edu.cn

        TP316

        A

        1001-2486(2016)05-052-07

        猜你喜歡
        故障注入故障率模擬器
        模擬訓(xùn)練裝備故障注入系統(tǒng)研究
        了不起的安檢模擬器
        盲盒模擬器
        劃船模擬器
        SM4算法前四輪約減輪故障注入分析
        采用修改-回放原理的1553B故障注入方法
        探索零故障率的LED智能顯示終端
        列車MVB總線故障注入研究
        基于故障率研究的數(shù)字保護(hù)最優(yōu)檢修周期
        動態(tài)飛行模擬器及其發(fā)展概述
        亚洲精品国产精品乱码视色| 精品国产亚欧无码久久久| 美女精品国产一区二区三区| 国产91在线播放九色快色| 亚洲国产精品综合久久网络 | 国产在线一区二区三区四区乱码| 国产日韩欧美一区二区东京热| 中文字幕av无码一区二区三区 | 亚洲av色香蕉一区二区三区蜜桃| 日韩精品视频在线观看无| 摸进她的内裤里疯狂揉她动图视频 | 丰满熟妇人妻无码区| 久久av一区二区三区黑人| 一本大道熟女人妻中文字幕在线| 理论片午午伦夜理片影院| 亚洲国产福利成人一区二区| 99蜜桃在线观看免费视频| 男女18禁啪啪无遮挡激烈网站| 在线亚洲人成电影网站色www| 欧亚精品无码永久免费视频| 国产黄色一区二区在线看| 正在播放强揉爆乳女教师| 国内精品视频一区二区三区| 亚洲愉拍自拍视频一区| 国产av精品麻豆网址| 国产女人高潮叫床视频| 亚洲色大成网站www在线观看| 成人av在线免费播放| 国产在线第一区二区三区| 黄色视频免费在线观看| 成人精品国产亚洲欧洲| 久久一区二区av毛片国产| 亚洲人交乣女bbw| 国产成人精品电影在线观看18| 人妻无码中文专区久久AV| 日本一区二区三区综合视频| 国产精品99精品久久免费| 综合三区后入内射国产馆| 97久久综合区小说区图片专区| 亚洲天堂av黄色在线观看| 麻豆免费观看高清完整视频 |