TWI293429B - Microprocessor capable of detecting a fault in an instruction, and method, apparatus and system for detecting an error associated with an instruction - Google Patents

Microprocessor capable of detecting a fault in an instruction, and method, apparatus and system for detecting an error associated with an instruction Download PDF

Info

Publication number
TWI293429B
TWI293429B TW094116575A TW94116575A TWI293429B TW I293429 B TWI293429 B TW I293429B TW 094116575 A TW094116575 A TW 094116575A TW 94116575 A TW94116575 A TW 94116575A TW I293429 B TWI293429 B TW I293429B
Authority
TW
Taiwan
Prior art keywords
bit
instruction
input
error
microprocessor
Prior art date
Application number
TW094116575A
Other languages
English (en)
Other versions
TW200604944A (en
Inventor
Joel Emer
Shubhendu Mukherjee
Steven Reinhardt
Christopher Weaver
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200604944A publication Critical patent/TW200604944A/zh
Application granted granted Critical
Publication of TWI293429B publication Critical patent/TWI293429B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1052Bypassing or disabling error detection or correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Detection And Correction Of Errors (AREA)

Description

(1) 1293429 / 九、發明說明 【發明所屬之技術領域】 本發明有關於一種藉由追蹤對於錯誤爲中性的指令以 減低微處理器中不正確偵誤的相關技術。 馨 【先前技術】 在未來處理技術中增加處理器電晶體的總數存有一顯 ^ 著的阻礙,即爲中子與〇c粒子撞擊導致的暫態故障。雖然 個別電晶體的故障率並無明顯地增加,將較多的電晶體倂 入一裝置使得該裝置更爲可能地遭遇到一故障。因此,希 望能夠將處理器錯誤率維持在可接受的水準上,其需要增 加設計上的努力。 來自暫態故障的單一位元混亂已成爲現今微處理器設 計中關鍵的挑戰之一。該些故障由於活動性極強的粒子引 起,例如:來自宇宙射線的中子以及來自封裝材料的α粒 子。電晶體來源與擴散節點可以收集這些電荷。足夠數量 的累積電荷可以將邏輯裝置的狀態反轉,該邏輯裝置例如 :SRAM單元、栓鎖器或閘極,並藉此將一邏輯故障引入 該電路的操作。由於此種類型的故障並不會帶給該裝置永 久的故障,一般稱爲軟錯誤或暫態錯誤。 由於晶片上電晶體的數量持續快速地增加,軟錯誤對 於微處理器設計者而言是增加的負擔。每一栓鎖器或 SRAM位元的原始錯誤率預計爲大體上保持定値或在接下 來的數個科技世代中略爲降低。因此,除非是新增的錯誤 -5- (2) 1293429 保護機制或更爲健全技術的使用(例如:全空乏S 01技術 ),微處理器的錯誤率將與裝置數量成正比地成長,其中 該裝置加上每一後續世代中的處理器。 導 礞 【發明內容】 爲了達成前述以及根據本發明的目的,提供一種藉由 追蹤對於錯誤爲中性的指令以減低微處理器中不正確偵誤 ^的相關技術。 本發明的其他特點、目的以及優點將詳細描述如下且 伴隨著圖式而更加清楚敘述,其中在所有的圖式中,相同 之參考數字係標明相同或類似的元件。 【實施方式】 本發明的一些較佳實施例將詳細描述如下。然而,除 了如下描述外,本發明還可以廣泛地在其他的實施例施行 ,且本發明的範圍並不受實施例之限定,其以之後的專利 範圍爲準。 第1圖說明在微處理器中一單一位元故障可能導致的 結果。一開始,該處理器判定一故障位元是否被讀取1 〇〇 。假如一故障位元不被讀取11 〇,接著該位元被視爲良性 的故障且因此沒有錯誤。假如一故障位元被讀取,接著該 處理器判定該位元是否具有錯誤保護1 1 5。當一故障位元 被讀取,至少有三種可能的結果。首先,假如該錯誤保護 被偵測用於該位元且被修正,接著該故障被視爲已修正 -6- (3) 1293429 120° 第二’假如該位元不具有錯誤保護,接著該處理器判 定該指令是否影響該程式的結果1 25。假如該指令不影響 該程式的結果’接著該故障位元被視爲良性的故障丨30。 由於該故障不具有影響或者是被偵測與被修正,因此故障 1 10、120與130均指明非錯誤狀態。
假如該指令影響該程式的輸出,接著它被視爲靜默的 資料毀損(silent data corruption; SDC) 135。SDC 135 是一種最隱伏形式的錯誤,其中一錯誤導致該系統產生不 正確的輸出。爲了避免SDC 135,設計者可使用基本的錯 誤偵測機制’例如:同位(p a r i t y )。 第三種可能的結果則是,當一位元具有錯誤保護應用 至此種狀況,其中該錯誤被偵測1 40。具有偵測故障但不 修正的能力,該系統避免產生無效輸出,但當錯誤發生時 不能恢復。因此,簡單的錯誤偵測並不減少錯誤率,然而 提供失效即停(fail-stop )的性能並藉此減低任何的資料 毀損。這些類型的錯誤係爲已知的,稱爲已偵測的不可恢 復錯誤(detected unrecoverable errors ; DUE)。 DUE事件可以根據該已偵測錯誤是否影響該執行的最 後結果,而更進一步地再細分。良性的已偵測錯誤稱爲不 正確的DUE事件145,其他則稱爲正確的DUE事件150。 在一微處理器中,不正確的DUE事件係由在錯誤路徑的 指令上(不正確斷定的指令)攻擊而引起,以及在正確路 徑的指令上(其不影響最終程式狀態),其包含無操作指 (4) 1293429 令、預先擷取以及動態無效指令° 爲了追蹤不正確的DUE事件’該處理器附加一 pi位 元至每一指令以及可能地附加至不同的硬體結構’其中P1 m 位元用於可能的不正確(possibly incorrect)。當一錯誤 被偵測時,該硬體設定受影響指令的該Pi位元而不是用 .信號發出該錯誤。接著,藉由檢查該Pi位元以及確認該 指令的本質,該硬體可以決定是否真正地發生一可見的錯 •誤。 區分不正確的錯誤與正確的錯誤是非常複雜的。在偵 測到該錯誤時,該處理器可能不具足夠的資訊以區分。舉 例而言,當該指令佇列在一指令上偵測到一錯誤,其可能 無法辨別該指令是否爲一錯誤路徑指令。因此,該處理器 需要將該錯誤資訊在該管線向下地傳送,且當具有足夠的 資訊區別時引發該錯誤。 爲了在該微處理器硬體的不同部分之間傳送該錯誤資 訊,該系統利用該p i位元。當該p i位元在該管線向下地 流動時(由解碼至引退階段),該pi位元與每一指令邏 輯上相結合。 該pi位元機制幫助避免來自該故障偵測機制不正確 的正匹配,例如:同位。尤其特別地,對於一指令而言, 當一指令被解碼時,一 pi位元被附加至該指令且被初始 化至0,用以表示該指令未遇到任何錯誤。當該指令在該 管線之間流動’其將被多次地轉換以適應該機器以及寫入 至儲存結構且從許多不同的儲存結構讀取。假設該儲存結 (5) 1293429 構具有一些類型的故障偵測,例如:同位,且該指令累積 一單一位元混亂,該同位錯誤將被標記。典型地,此將引 發一機器檢查錯誤,其通常會導致該機器當機。此處,該 m 處理器藉由將其値改變爲1而將此錯誤發表在該pi位元 *上。 .錯誤核對以及該pi位元的更新亦可以使用於該管線 的多個階段中及/或指令執行期間的多個不同結構中。錯 ^ 誤核對邏輯可以爲同位核對器的形式或各種其他習知的錯 誤偵測技術,以及其他可行的方式。再者,錯誤偵測與修 正技術可以使用於這些不同的階段中或不同的結構上,對 於不可恢復錯誤的例子而言具有該Pi位元被設定。 在該管線的一認可階段,該認可硬體具有足夠的資訊 判定該指令是否爲一錯誤路徑指令、不正確預測指令或是 無操作指令。在這些例子中,該處理器將不引發一機器檢 查例外,並使該機器正常地進行。然而,在其他例子中, $其可能已有正確的錯誤且必須引發一機器檢查錯誤。 該pi位元可以在硬體結構之間傳送(可能的)錯誤 資訊,並因此耽擱該機器檢查例外直至該機器必須完全地 宣告該錯誤。然而,該pi位元自身無法辨認是否一特定 結構遇到故障且該故障對於使用者而言最後是否將爲可看 見的。 第2圖係爲一方塊圖,用以說明根據本發明的一實施 例,當使用一非pi位元’其沿著一指令流動路徑以標明 對於錯誤爲中性的指令。在微處理器中有許多例子,其中 -9 - (6) 1293429 在特定指令類型上的一故障將不會導致使用者可見的錯誤 ,並且因此不影響一程式最後的結果。舉例來說,對於程 式的正確性而言,從記億體預先擷取一組資料至該快取的 一預先擷取指令並不是必須的,然而其對於程式的性能而 # 言是必須的。同樣地,藉由提供該微處理器有關於控制該 .程式流動路徑的提示,在一架構中的該分支預測提示指令 使得一程式提升其性能。對於微處理器的正確性並無影響 | 的其他指令類型,例如:無操作指令(NOPs ),然而其對 於在程式中塡滿空白的靜態指令位置而言是必須的。這些 類型的指令係爲已知對於錯誤爲中心的指令。當與造成一 位元反轉的α粒子或中子碰撞時,此種指令的大多數位兀 並不會導致使用者可見的錯誤。因此,該硬體不需要在此 種指令的非操作碼位元上引發一錯誤。 當指令(包含對於錯誤爲中性的指令)在一管線205 之間流動,其存在於不同類型的結構、緩衝器以及栓鎖器 。此種結構之一係爲指令佇列2 1 0,其中這些指令存在直 至它們預備好發佈至執行單元。然而,當指令通過這些不 同的結構時,可以改變它們在該結構的表示法以適合特定 的結構。 當該硬體存取在該指令佇列2 1 0中的一指令且偵測一 同位錯誤時,其不具有非P i位元,此時將僅設定該P i位 元。然而’如同上述’由於此種錯誤對於使用者而固爲非 可看見的,對於錯誤爲中性的指令不需要具有其Pi位元 設定。 -10- @ (7) 1293429 當一指令在該管線205的初期階段被解碼200時,另 一位元(稱爲非pi位元)可以附加至該解碼指令。接著 ,當該指令佇列2 1 0在一中性指令的非操作碼位元上偵測 一同位錯誤時,該指令佇列2 1 0首先核對該非Pi位元。 假如該非pi位元被設定’意謂該指令對於錯誤爲中性的 ,其並不設定該pi位元。否則’其設定該Pi位元用於在 該管線稍後階段的更進一步處理。
最後,該指令將認可2 1 5。在該認可階段,該認可硬 體具有足夠的資訊判定該指令是否爲一錯誤路徑指令以及 是否爲對於錯誤爲中性的指令。換言之,該非Pi位元中 性化歸類爲中性指令類型的該Pi位元。再者,該非Pi位 元結合該pi位元更進一步地減低不正確錯誤偵測的發生 >牛<:〇 對於錯誤爲中性的指令之中的一些控制位元需要特別 留意。舉例而言,假如對於錯誤爲中性的指令之中的該些 Ip操作碼位元遇到一攻擊時,由於其可以精確地辨認該指令 類型,接著該系統可能必須引發一機器檢查例外。然而, 防護該非pi位元與該資料與控制位元分隔開’使得該結 構避免在對於錯誤爲中性的指令之中的控制位元內一故障 上的pi位元設定。假如該非pi位元僅具有錯誤偵測(經 由同位或電路技術),接著在該非pi位元上的一同位錯 誤上,該硬體將必須引發一機器檢查。然而,假如該非pi 位元具有錯誤修復(經由錯誤檢錯與糾正或是電路技術) ,接著該硬體可以甚至由該非pi位元中的故障修復,而 -11- (8) 1293429 且在一輸入的控制與資料位元之中的故障亦能夠修復。 另外可選擇的是,存在著其他以非pi位元的可行設 計。在前面所述的設計中,個別的結構檢查非pi位元用 以設定pi位元。反而當設定pi位元時,個別的結構可以 忽略非pi位元。接著,在該認可階段2 1 5,一引退可以核 對非pi位元與pi位元,用以決定是否應該引發一機器檢 查例外。
非pi位元機制亦可以廣義地推展爲對於錯誤爲中性 的其他硬體活動。舉例而言,藉由一硬體預先擷取所產生 的一位址上的一錯誤可以是對於錯誤爲中性的,且由非pi 位元加以標示。 第3圖係爲一流程圖,用以說明根據本發明一實施例 偵測軟錯誤的方法。在此特定實施例中,流程圖3 00說明 一種例子,其中一處理器判定一錯誤是否發生在對於錯誤 爲中性的指令上。一開始,當一指令被解碼時3 05,一非 gp pi位元3 07以及一 pi位元310與該指令相結合。接著, 該指令以及其非Pi位元與Pi位元在該管線中佇列3 1 5。 當該指令在該管線之間流動,其將被多次地轉換以適應該 機器以及寫入至儲存單元且從許多不同的儲存單元讀取。 當該指令在一管線之間流動的期間,該指令可以累積 一單一位元混亂,且該指令的一同位錯誤將被標記320。 假如該指令一錯誤被偵測’假如該指令被判定爲對於錯誤 是中性的指令時,該管線可以將受影響指令的非Pi位元 設定爲一 325。該pi位元被設定,而不是引發一機器檢查 -12- @ (9) 1293429 例外。假如一錯誤不被偵測到時,該指令持續在該管線之 間流動直至其認可爲止3 3 0。假如該指令被判定爲一錯誤 路徑指令,接著該pi位元被忽略3 40,否則該處理器可以 瓣 選擇引發一錯誤345,例如:一機器檢查錯誤。 第4圖說明一典型的電腦系統用以實行偵測軟錯誤。 如第4圖所示的一電腦400,其中處理器405作爲單獨的 或複數個處理器其中之一,其包含中央處理單元(CPU) ^ 或該電腦400的一些單元。通常,該處理器405被嵌入至 單一積體電路晶片中。該處理器405可以包含一執行(處 理)核心410,其具有一或多個執行單元。該處理器405 的一部分用於包含一指令處理裝置415。如第4圖所示, 該指令處理裝置4 1 5耦接至該核心4 1 0。 本發明根據以上所述實施,用以在該核心4 1 0中執行 一指令。該記憶體可以位於晶片上(如第4圖所示的晶片 上記憶體420 )或是位於晶片外(如第4圖所示的晶片外 記億體42 5 )。通常,該晶片上記憶體可以爲快取記憶體 或者主記憶體(RAM )的一部分。該晶片外記憶體通常包 含主記憶體(亦包含晶片外快取,假如存在的話)以及其 他記憶體裝置,例如:磁碟儲存媒介。晶片上記憶體420 以及晶片外記憶體425 (單獨地或個別地)可以連接至不 同的裝置,例如:聲音介面裝置43 0。然而,需要加以注 意的是,本發明可以其他方法裝配以藉由該核心4 1 0處理 用於執行的該些指令。 雖然本發明已以若干較佳實施例揭露如上,然其並非 -13- (10) 1293429 用以限定本發明’任何熟習此技藝者’在不脫離本發明之 精神和範圍內,當可作些許之更動與潤飾’因此本發明之 保護範圍當視後附之申請專利範圍所界定者爲準。 I圖式簡單說明】
本發明的許多觀點可以參考以下的圖式而更加'凊楚的 了解。相關圖式並未依比例繪製’其作用僅在 '凊楚表現本 發明有關定理。此外’使用數字來表示圖式中相對應的部 分0 第1圖係爲一方塊圖,用以說明在微處理器中故障位 元可能導致的結果。 第2圖係爲一方塊圖,用以說明根據本發明的一實施 :例,當使用沿著一指令流動路徑的一非pi位元,以標明 對於錯誤爲中性的指令。 第3圖係爲一流程圖,用以說明根據本發明一實施例 的運作。 第4圖係爲一方塊圖,用以說明一範例式電腦系統以 實行在本發明中的偵測軟錯誤。 【主要元件之符號說明】 100 :故障位元是否被讀取 1 1 0 :良性的故障 1 1 5 :該位元是否具有錯誤保護 120 :該故障已修正 (11) 1293429 1 25 :該指令是否影響程式結果 1 3 0 :良性的故障
1 3 5 :靜默的資料毀損 140 :是否影響程式結果 145 :不正確的DUE 150 :正確的DUE
2 0 0 :解碼並加入非p i位元 2 1 0 :指令佇列 2 1 5 :認可 2 0 5 :管線 3 00 :流程圖 3 05 :解碼指令 3 07 :載入與指令相結合的非pi位元 3 1 〇 :載入與指令相結合的pi位元 3 1 5 :佇列指令以及pi與非pi位元 320 :錯誤發生否? 3 22 :判定非pi位元是否被設定 325:假設非pi位元未被設定,設定pi位元 3 3 0 :認可指令 3 3 5 :錯誤路徑指令 3 4 0 :忽略p i位元 345 :引發錯誤 4 0 0 :電腦 405 :處理器 -15- (12) (12)1293429
4 1 Ο :執行核心 4 1 5 :指令處理單元 420 :晶片上記憶體 425 :晶片外記憶體 43 0 :聲音介面裝置

Claims (1)

  1. J293429 十、申請專利範圍 aa 8,16 干
    附件4A : 第94 1 1 65 75號專利申請案 中文申請專利範圍替換本 民國96年8月16日修正 1· 一種可偵測指令中的故障之微處理器,包含: 一解碼模組,用以將一指令解碼; φ 與該已解碼之指令相結合的第一位元; 與該已解碼之指令相結合的第二位元,其中該第二位 元用以確認在該指令上的一故障;以及 耦接至該解碼模組的一儲存結構,用以偵測在該指令 上的故障偵測,其中該儲存結構根據該故障偵測核對該指 令的該第一位元,且假如該第一位元被設定,則該第二位 元不被設定。 2.如申請專利範圍第1項所述之微處理器,更包含假 # 如該第一位元不被設定,則該第二位元被設定。 3 ·如申請專利範圍第1項所述之微處理器,更包含耦 接至該儲存結構的一指令處理單元,該指令處理單元包含 複數個階段用以處理該解碼指令。 4.如申請專利範圍第1項所述之微處理器,其中該儲 存結構偵測在該解碼指令的非操作碼位元上的故障偵測。 5 ·如申請專利範圍第1項所述之微處理器,其中該第 一位元係爲一非P i位元。 6.如申請專利範圍第1項所述之微處理器,其中該第 1293429 二位元係爲一 pi位元。 7 ·如申請專利範圍第1項所述之微處理器’其中該故 障偵測係爲一同位錯誤。 8·如申請專利範圍第4項所述之微處理器,其中該第 一位元根據該指令的類型而被設定。 9 ·如申請專利範圍第8項所述之微處理器’其中該指 令係爲無操作(NOP )指令。 1 〇 .如申請專利範圍第8項所述之微處理器’其中該 指令係爲一預先擷取指令。 1 1 ·如申請專利範圍第8項所述之微處理器’其中該 指令係爲一分支預測提示指令。 1 2 .如申請專利範圍第1項所述之微處理器,其中該 儲存結構係爲一指令佇列。 1 3 ·如申請專利範圍第3項所述之微處理器,其中該 指令發送且在該複數個階段之間流動。 14.一種用於偵測與指令相結合的錯誤之方法,該方 法包含: 解碼一指令; 載入第一位元以及該指令; 載入第二位元以及該指令; 偵測一故障; 核對該第一位元,用以根據偵測一故障判定該第_ β 元是否被設定;以及 僅當該第一錯誤位元不被設定時,設定該第二位元。 -2 - 1293429 1 5 ·如申請專利範圍第1 4項所述之方法,其中該第一 位元與一類型的指令相結合。 16.如申請專利範圍第14項所述之方法,更包含: 佇列該指令; 在一管線的多個階段之間傳送該指令,用以處理該指 令,以及 判定該指令是否爲一錯誤路徑指令。 1 7·如申請專利範圍第1 5項所述之方法,其中偵測一 故障的該步驟係爲偵測在該指令的非操作碼位元上的該故 障。 1 8 · —種用於偵測與指令相結合的錯誤之裝置,該裝 置包含: 一解碼模組,用以將一輸入解碼;以及 耦接至該解碼模組的一儲存單元,用以儲存與該輸入 相結合的第一偵測位元,以確認所發生的一位元狀態變化 是否損壞該輸入,且用以儲存與該輸入相結合的第二偵測 位元,其中僅當該第一偵測位元未被設定時,該第二偵測 位元藉由該位元狀態變化而被設定。 1 9 ·如申請專利範圍第1 8項所述之裝置,更包含·· 一指令佇列,用以處理該輸入;以及 一指令流動路徑,用以在多個階段之間傳送該些輸入 的流動。 2 0 ·如申請專利範圍第1 9項所述之裝置,更包含一認 可模組,用以判定該輸入是否在一錯誤路徑上。 -3- 1293429 2 1 ·如申請專利範圍第1 8項所述之裝置,其中該位元 狀態變化發生在該輸入的非操作碼位元上。 22·如申請專利範圍第21項所述之裝置,其中該第一 偵測位元針對無操作指令而被設定。 23.如申請專利範圍第21項所述之裝置,其中該第一 偵測位元針對預先擷取指令而被設定。 24·如申請專利範圍第21項所述之裝置,其中該第一 φ 偵測位元針對分支預測提示指令而被設定。 25·如申請專利範圍第19項所述之裝置,其中該輸入 發送且在該指令流動路徑的複數個階段之間流動。 26.如申請專利範圍第19項所述之裝置,其中該第二 偵測位元係爲一 pi位元。 2 7.如申請專利範圍第19項所述之裝置,其中該第一 偵測位元係爲一非P i位元。 28. 如申請專利範圍第19項所述之裝置,其中該第一 # 偵測位元針對該些對於錯誤爲中性的輸入而被設定。 29. —種用於偵測與指令相結合的錯誤之系統,該系 統包含: 一晶片外記憶體,用以在擷取之前儲存一輸入; 耦接至該晶片外記憶體的一處理器’其中該處理器更 包含: 一解碼模組,用以接收一輸入;以及 一儲存單元’用以儲存與該輸入相結合的第一位 元與第二位元,其中該第一位元確認所發生的一位元狀態 -4- 1293429 • 變化是否損壞該輸入,且其中僅當該第一位元未被設定時 ,該第二位元藉由該位元狀態變化而被設定。 3 0.如申請專利範圍第29項所述之系統,更包含: 一指令佇列,用以處理該輸入; 一指令流動路徑,用以在多個階段之間傳送該些輸入 的流動;以及 一認可模組,用以判定該輸入是否在一錯誤路徑上。 φ 3 1.如申請專利範圍第29項所述之系統,更包含: 一晶片上記憶體;以及 耦接至該晶片上記憶體的一聲音介面裝置。 32. 如申請專利範圍第29項所述之系統,更包含耦接 至該晶片外記憶體的一聲音介面裝置。 33. 如申請專利範圍第29項所述之系統,其中該第一 位元係爲一非P i位元。 34. 如申請專利範圍第29項所述之系統,其中該第二 ^ 位元係爲一 pi位元。 35. 如申請專利範圍第29項所述之系統,其中該位元 狀態變化發生在該輸入的非操作碼位元上。 36. 如申請專利範圍第29項所述之系統,其中該第一 位元針對無操作輸入而被設定。 37. 如申請專利範圍第29項所述之系統,其中該第一 位元針對預先擷取輸入而被設定。 38. 如申請專利範圍第29項所述之系統,其中該第一 位元針對分支預測提示指令而被設定。 -5- .1293429 39.如申請專利範圍第29項所述之系統,其中該第一 位元針對該些對於錯誤爲中性的輸入而被設定。
TW094116575A 2004-06-17 2005-05-20 Microprocessor capable of detecting a fault in an instruction, and method, apparatus and system for detecting an error associated with an instruction TWI293429B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/871,429 US7386756B2 (en) 2004-06-17 2004-06-17 Reducing false error detection in a microprocessor by tracking instructions neutral to errors

Publications (2)

Publication Number Publication Date
TW200604944A TW200604944A (en) 2006-02-01
TWI293429B true TWI293429B (en) 2008-02-11

Family

ID=35056837

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094116575A TWI293429B (en) 2004-06-17 2005-05-20 Microprocessor capable of detecting a fault in an instruction, and method, apparatus and system for detecting an error associated with an instruction

Country Status (5)

Country Link
US (1) US7386756B2 (zh)
EP (1) EP1612676A3 (zh)
KR (1) KR100736963B1 (zh)
CN (1) CN100407135C (zh)
TW (1) TWI293429B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283590A1 (en) * 2004-06-17 2005-12-22 Weaver Christopher T Reducing false error detection in a microprocessor by tracking dynamically dead instructions
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US7849387B2 (en) * 2008-04-23 2010-12-07 Intel Corporation Detecting architectural vulnerability of processor resources
US7921280B2 (en) * 2008-06-27 2011-04-05 Intel Corporation Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array
CN101853151B (zh) * 2009-05-19 2013-06-26 威盛电子股份有限公司 适用于微处理器的装置及方法
US8327249B2 (en) * 2009-08-20 2012-12-04 Broadcom Corporation Soft error rate protection for memories
CN101866281B (zh) * 2010-06-13 2013-05-22 清华大学 一种多周期指令执行方法和装置
US9063836B2 (en) * 2010-07-26 2015-06-23 Intel Corporation Methods and apparatus to protect segments of memory
US9606902B2 (en) * 2012-07-03 2017-03-28 Hitachi, Ltd. Malfunction influence evaluation system and evaluation method using a propagation flag
CN103294169B (zh) * 2013-05-31 2015-10-28 上海交通大学 一种功耗优化的众核系统的冗余保护系统及方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3531631A (en) 1967-01-11 1970-09-29 Ibm Parity checking system
US4224681A (en) * 1978-12-15 1980-09-23 Digital Equipment Corporation Parity processing in arithmetic operations
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
US4794517A (en) 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
JP2618958B2 (ja) 1988-03-28 1997-06-11 株式会社東芝 パリティチェック制御装置
US5649090A (en) * 1991-05-31 1997-07-15 Bull Hn Information Systems Inc. Fault tolerant multiprocessor computer system
EP0529303A3 (en) 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
EP0596144A1 (en) 1992-10-07 1994-05-11 International Business Machines Corporation Hierarchical memory system for microcode and means for correcting errors in the microcode
US5535226A (en) 1994-05-31 1996-07-09 International Business Machines Corporation On-chip ECC status
US5813027A (en) * 1996-03-08 1998-09-22 Vlsi Technology, Inc. Method for storing and transferring wave table audio samples using a DSP cache, a link list structure, and compression
US5781722A (en) * 1996-05-10 1998-07-14 Symantec Corporation Method for diagnosis and repair of compressed volumes utilizing a bitmap
US5872910A (en) 1996-12-27 1999-02-16 Unisys Corporation Parity-error injection system for an instruction processor
US6247118B1 (en) 1998-06-05 2001-06-12 Mcdonnell Douglas Corporation Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry
US6253306B1 (en) * 1998-07-29 2001-06-26 Advanced Micro Devices, Inc. Prefetch instruction mechanism for processor
KR20010002479A (ko) * 1999-06-15 2001-01-15 윤종용 고속 명령 수행을 위한 명령어 프리디코더
US6457119B1 (en) 1999-07-23 2002-09-24 Intel Corporation Processor instruction pipeline with error detection scheme
US6738892B1 (en) 1999-10-20 2004-05-18 Transmeta Corporation Use of enable bits to control execution of selected instructions
US6675341B1 (en) 1999-11-17 2004-01-06 International Business Machines Corporation Extended error correction for SEC-DED codes with package error detection ability
US6862677B1 (en) 2000-02-16 2005-03-01 Koninklijke Philips Electronics N.V. System and method for eliminating write back to register using dead field indicator
KR20010087046A (ko) 2000-03-06 2001-09-15 서평원 컴퓨터 시스템
US6543028B1 (en) 2000-03-31 2003-04-01 Intel Corporation Silent data corruption prevention due to instruction corruption by soft errors
US6654909B1 (en) 2000-06-30 2003-11-25 Intel Corporation Apparatus and method for protecting critical resources against soft errors in high performance microprocessors
US6662319B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
US6895527B1 (en) * 2000-09-30 2005-05-17 Intel Corporation Error recovery for speculative memory accesses
US6823448B2 (en) 2000-12-15 2004-11-23 Intel Corporation Exception handling using an exception pipeline in a pipelined processor
US6704890B1 (en) 2000-12-22 2004-03-09 Nortel Networks Limited Skew compensating interface for operation with arbitrary data
US6804799B2 (en) 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache
US7318169B2 (en) 2002-05-15 2008-01-08 David Czajkowski Fault tolerant computer
US6944791B2 (en) * 2002-07-18 2005-09-13 Lsi Logic Corporation Method of handling unreadable blocks during write of a RAID device
US7222270B2 (en) 2003-01-10 2007-05-22 International Business Machines Corporation Method for tagging uncorrectable errors for symmetric multiprocessors
US20050138478A1 (en) 2003-11-14 2005-06-23 Safford Kevin D. Error detection method and system for processors that employ alternating threads

Also Published As

Publication number Publication date
CN1710532A (zh) 2005-12-21
TW200604944A (en) 2006-02-01
EP1612676A3 (en) 2009-04-22
US20050283685A1 (en) 2005-12-22
CN100407135C (zh) 2008-07-30
KR100736963B1 (ko) 2007-07-09
KR20060049614A (ko) 2006-05-19
US7386756B2 (en) 2008-06-10
EP1612676A2 (en) 2006-01-04

Similar Documents

Publication Publication Date Title
TWI293429B (en) Microprocessor capable of detecting a fault in an instruction, and method, apparatus and system for detecting an error associated with an instruction
TWI277861B (en) Method and apparatus for reducing false error detection in a microprocessor
US8397133B2 (en) Circuits and methods for dual redundant register files with error detection and correction mechanisms
JP4317212B2 (ja) 集積回路の処理段における系統的及び確率的誤り検出及び復旧
TWI274991B (en) A method, apparatus, and system for buffering instructions
US7747932B2 (en) Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US5974529A (en) Systems and methods for control flow error detection in reduced instruction set computer processors
KR100898650B1 (ko) 애플리케이션 프로그램에의 프로세스 킬 오류 벡터링
US6543028B1 (en) Silent data corruption prevention due to instruction corruption by soft errors
GB2555627A (en) Error detection
US20070044003A1 (en) Method and apparatus of detecting and correcting soft error
US20230115158A1 (en) Method for detecting and recovery from soft errors in a computing device
US9594648B2 (en) Controlling non-redundant execution in a redundant multithreading (RMT) processor
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
US6658621B1 (en) System and method for silent data corruption prevention due to next instruction pointer corruption by soft errors
US10185635B2 (en) Targeted recovery process
Weaver et al. Reducing the soft-error rate of a high-performance microprocessor
JP2011257966A (ja) キャッシュ装置及び情報処理装置
US20050283590A1 (en) Reducing false error detection in a microprocessor by tracking dynamically dead instructions

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees