基于門級癥狀的硬件故障檢測方法
【專利摘要】基于門級癥狀的硬件故障檢測方法,基于門級癥狀的硬件故障檢測方法領域。解決了目前沒有對門級癥狀檢測而獲得硬件故障問題。本發明所述的基于門級癥狀的硬件故障檢測方法,所述硬件故障檢測方法是基于檢測門極癥狀實現硬件故障檢測,所述門極癥狀為無效包IPacket、處理器掛起或應用超時,本發明分別對無效包IPacket、處理器掛起或應用超時,三種癥狀進行檢測,從而實現硬件故障的檢測。本發明具體應用在硬件故障檢測領域。
【專利說明】基于門級癥狀的硬件故障檢測方法
【技術領域】
[0001 ] 本發明屬于硬件故障檢測方法領域。
【背景技術】
[0002]隨半導體工藝的進步,晶體管和線網的幾何尺寸不斷縮小,但供電電壓卻無法等比縮小,這使電流密度增加、溫度升高,集成電路易感性增加。工藝進步引領處理器步入多核時代,以 CMT、CMP (Chip Mult1-Processor)為代表的多核 / 眾核(mult1-core/manycore)架構成為主流。核間甚至核內晶體管幾何尺寸的不一致性,加速了某些器件的降級而使其更傾向于失效。這些因素導致處理器生命期難以預測,迫切需要相應的保護機制。
[0003]納米工藝下,組合邏輯易感性迅速升高,即將趕超時序邏輯。一方面由于其不規則性難于防護;另一方面,由于三種屏蔽效果(電氣屏蔽、邏輯屏蔽和鎖存窗口屏蔽)而對其防護重視不足。
[0004]G.P.Saggese對一款DLX RISC處理器故障注入研究表明:組合邏輯對持續時間為
I個時鐘周期的瞬時故障敏感度達到4.2%,其影響已不可忽視。物理實現中,處理器內組合邏輯所占的芯片面積常超過時序邏輯,以DLX RISC為例90%的外顯故障來自于組合邏輯
[84],與此類似,本章結果表明有94.7%的故障源自于組合邏輯。ECC和奇偶校驗等傳統機制,對時序邏輯保護性能優異。但有研究發現對于亂序架構處理器,90%以上的測試基準發生單比特翻轉后被校驗和檢出的概率低于50%。因為亂序架構處理器讀取操作數時指令已經流出流水線。
[0005]因此保護機制的設計必須對組合邏輯予以足夠重視,同時兼顧組合與時序兩類器件的保護機制具有明顯的競爭優勢。
[0006]故障檢測相關研究由來已久,利用ECC或奇偶校驗等利用信息論手段對時序邏輯進行防護非常普遍,但對于組合邏輯卻難于防護。研究發現亂序架構處理器90%以上組合邏輯發生的單比特翻轉故障,能夠被傳統機制檢出的概率低于50%。在特殊應力條件下通過測試篩除潛在故障,也是一種流行的方式,典型如burn-1n加速測試等。此外,諸多測試電路已內嵌于芯片中,供處理器生命期中進行故障檢測與測試。
[0007]近年處理器內部件級細粒度檢測技術逐漸涌現。代表性的針對處理器時序邏輯部件的檢測機制有Memory Order Buffer、Register files和Cache等;針對處理器組合邏輯的檢測機制有ALU、Wire等。這類技術利用某類部件的特性實現故障檢測或測試,缺乏通用性。
[0008]如DIVA、RMT等機制通過時空冗余方式實現故障檢測。冗余技術兼顧組合、時序兩類部件,且成功覆蓋不同的故障類型通用性強,但引入的時空代價過高。
[0009]隨工藝進步,間歇故障頻發,已成為集成電路與多核處理器可靠性的重要障礙,目前未見相關檢測機制對間歇故障有效性的權威性報道。可以預計,兼顧組合與時序兩類器件且成功覆蓋間歇故障的低代價保護機制將具有明顯優勢。
[0010]故障未傳播到處理器結構級就引發故障表現,該類執行結果列為門級事件。由于故障傳播而引發同步指令錯誤(包括存數、取數或分支指令),該類執行結果列為訪存級事件。故障破壞了處理器結構級狀態,但未引發同步指令錯誤,該類結果被列為結構級事件。每個層級的故障表現,包括可檢癥狀(symptoms)、屏蔽(mask)和錯誤結果SDC(Silent DataCorruption)等。其中可檢測癥狀包括:無效包IPacket、應用超時和處理器掛起。
【發明內容】
[0011]本發明是為了解決目前沒有對門級癥狀檢測而獲得硬件故障問題,本發明提供了一種基于門級癥狀的硬件故障檢測方法。
[0012]基于門級癥狀的硬件故障檢測方法,所述硬件故障檢測方法是基于檢測門極癥狀實現硬件故障檢測。
[0013]所述的基于門級癥狀的硬件故障檢測方法,所述門極癥狀為無效包IPacket、處理器掛起或應用超時。
[0014]所述的基于門級癥狀的硬件故障檢測方法,該硬件故障檢測方法是基于捕獲無效包IPacket癥狀實現的,該方法是基于PCX接口結構實現的,該PCX接口結構的8個控制信息輸入輸出端分別通過獨立總線與8個CPU核連接,PCX接口結構通過4條獨立的總線分別與4個L2Cache連接,所述的L2Cache表示二級緩存,PCX接口結構通過I條總線同時與I/O端口和FPU處理器連接,
[0015]二級緩存用于對CPU核的請求進行校驗與處理,之后進行訪存并將請求的數據包通過crossbar (交叉開關矩陣或縱橫式交換矩陣,請發明人給出準確的翻譯內容)返回給(PU核,數據包中的無效包IPacket為Invalid[有不同的翻譯結果,請發明人給出準確內容]數據包,
[0016]該方法的具體過程為,
[0017]無效包IPacket用于通知系統當前請求的數據正在進行其它操作,
[0018]對于Invalid數據包,其有效標位為0,通過crossbar對Invalid數據包的有效位修改,即實現無效包的捕獲,檢測出硬件發生故障。所述的基于門級癥狀的硬件故障檢測方法,該硬件故障檢測方法是基于檢測應用超時癥狀實現的,該方法是基于last_aCt_CyCle寄存器、Th_last_act_cycle [63:0]、Global_cycle_cnt 寄存器和 core_cycle_cnt 實現的,
[0019]last_act_cycle寄存器用來指示處理器最近活躍的周期數,
[0020]Th_last_act_cycle [63:0]指示CMT中線程最近活躍的周期數,
[0021]Global_CyCle_Cnt寄存器用于記錄被測模塊的運行周期數,該寄存器由系統時鐘控制,
[0022]core_cycle_cnt代表被測核的運行周期數,
[0023]該方法的具體過程為,
[0024]處理器執行過程時對以上寄存器進行更新,并根據上述信息進行應用超時檢測,CPU內每一個線程都有一個thread_running寄存器,標定本線程是否活躍,由tcu_core_running[7:0]中對應的信號初始化并開始對線程運行狀態進行監視,
[0025]當指令完成流出流水時,用core_cycle_cnt更新last_act_cycle寄存器,并同時更新 th_last_act_cycle [63:0]內容;
[0026]當core_cycle_cnt 與被監視線程 th_last_act_cycle[mytnum]執行的周期數大于指定門限時,則線程級應用超時癥狀被捕獲;
[0027]當core_cycle_cnt與被監視的last_act_cycle大于門限時,貝U全局應用超時癥狀被捕獲,檢測出硬件發生故障。所述的基于門級癥狀的硬件故障檢測方法,該硬件故障檢測方法是基于檢測處理器掛起癥狀實現的,該方法的具體過程為,利用啟發式算法對掛起檢測器進行改進,通過對分支指令的監測來識別緊循環并對循環迭代次數累加,當其超過門限掛起癥狀被捕獲,檢測出硬件發生故障。故障注入方法:
[0028]為全面地考察間歇故障特性,實驗采用瞬時、永久和間歇故障三種故障類型和六種故障模型,并采用不同的故障參數。
[0029]間歇故障活躍時間Ta參數分別在[0.01T-0.1T]、[0.1T-1T]和[1T-10T]三種配置下隨機生成;爆發長度Lburst則分別采用2、4和8,這用以模擬進深的老化過程。瞬時故障的持續時間則在[0.01T-0.1T]配置下隨機生成,永久故障一經注入就持續到仿真結束。
[0030]為探討間歇故障的不同特性,采用瞬時、永久和間歇故障對照進行故障注入的方式,故障模型與故障參數的對應關系見表4-1所示。
[0031]表4-1故障注入方法與故障模型
[0032]
【權利要求】
1.基于門級癥狀的硬件故障檢測方法,其特征在于,所述硬件故障檢測方法是基于檢測門極癥狀實現硬件故障檢測。
2.根據權利要求1所述的基于門級癥狀的硬件故障檢測方法,其特征在于,所述門極癥狀為無效包IPacket、處理器掛起或應用超時。
3.根據權利要求2所述的基于門級癥狀的硬件故障檢測方法,其特征在于,該硬件故障檢測方法是基于捕獲無效包IPacket癥狀實現的,該方法是基于PCX接口結構實現的,該PCX接口結構的8個控制信息輸入輸出端分別通過獨立總線與8個CPU核連接,PCX接口結構通過4條獨立的總線分別與4個L2Cache連接,所述的L2Cache表示二級緩存,PCX接口結構通過I條總線同時與I/O端口和FPU處理器連接, 二級緩存用于對CPU核的請求進行校驗與處理,之后進行訪存并將請求的數據包通過crossbar返回給CPU核,數據包中的無效包IPacket為Invalid數據包, 該方法的具體過程為, 無效包IPacket用于通知系統當前請求的數據正在進行其它操作, 對于Invalid數據包,其有效標位為0,通過crossbar對Invalid數據包的有效位修改,即實現無效包的捕獲,檢測出硬件發生故障。
4.根據權利要求2所述的基于門級癥狀的硬件故障檢測方法,其特征在于,該硬件故障檢測方法是基于檢測應用超時癥狀實現的,該方法是基于last_act_cycle寄存器、Th_last_act_cycle [63:0] > Global_cycle_cnt 寄存器和 core_cycle_cnt 實現的, last_act_cycle寄存器用來指示處理器最近活躍的周期數, Th_last_act_cycle [63:0]指示CMT中線程最近活躍的周期數, Global_CyCle_Cnt寄存器用于記錄被測模塊的運行周期數,該寄存器由系統時鐘控制, core_cyc I e_cnt代表被測核的運行周期數, 該方法的具體過程為, 處理器執行過程時對以上寄存器進行更新,并根據上述信息進行應用超時檢測,CPU內每一個線程都有一個thread_running寄存器,標定本線程是否活躍,由tcu_core_running[7:0]中對應的信號初始化并開始對線程運行狀態進行監視, 當指令完成流出流水時,用core_cycle_cnt更新last_act_cycle寄存器,并同時更新th_last_act_cycle[63:0]內容; 當core_cycle_cnt與被監視線程th_last_act_cycle[mytnum]執行的周期數大于指定門限時,則線程級應用超時癥狀被捕獲; 當core_cycle_cnt與被監視的last_act_cycle大于門限時,貝U全局應用超時癥狀被捕獲,檢測出硬件發生故障。
5.根據權利要求2所述的基于門級癥狀的硬件故障檢測方法,其特征在于,該硬件故障檢測方法是基于檢測處理器掛起癥狀實現的,該方法的具體過程為,利用啟發式算法對掛起檢測器進行改進,通過對分支指令的監測來識別緊循環并對循環迭代次數累加,當其超過門限掛起癥狀被捕獲,檢測出硬件發生故障。
【文檔編號】G06F11/22GK103744760SQ201310743467
【公開日】2014年4月23日 申請日期:2013年12月30日 優先權日:2013年12月30日
【發明者】崔剛, 傅忠傳, 王超, 朱東杰, 潘波, 王秀峰, 季春光, 張明, 王彥, 張畢英, 張策 申請人:哈爾濱工業大學