TWI277861B - Method and apparatus for reducing false error detection in a microprocessor - Google Patents

Method and apparatus for reducing false error detection in a microprocessor Download PDF

Info

Publication number
TWI277861B
TWI277861B TW094116345A TW94116345A TWI277861B TW I277861 B TWI277861 B TW I277861B TW 094116345 A TW094116345 A TW 094116345A TW 94116345 A TW94116345 A TW 94116345A TW I277861 B TWI277861 B TW I277861B
Authority
TW
Taiwan
Prior art keywords
instruction
bit
processor
error
input
Prior art date
Application number
TW094116345A
Other languages
English (en)
Other versions
TW200619921A (en
Inventor
Shubhendu Mukherjee
Joel Emer
Steven Reinhardt
Christopher Weaver
Michael Smith
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 TW200619921A publication Critical patent/TW200619921A/zh
Application granted granted Critical
Publication of TWI277861B publication Critical patent/TWI277861B/zh

Links

Classifications

    • 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
    • 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

Landscapes

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

Description

1277861 (1) 九、發明說明 【發明所屬之技術領域】 本發明有關於一種減低微處理器中不正確的偵誤之方 法及裝置。 【先前技術】 在未來處理技術中增加處理器電晶體的總數存有一顯 φ 著的阻礙,即爲中子與α粒子撞擊導致的暫態故障。雖然 個別電晶體的故障率並無明顯地增加,將較多的電晶體倂 入一裝置使得該裝置更爲可能地遭遇到一故障。因此,希 望能夠將處理器錯誤率維持在可接受的水準上,其需要增 加設計上的努力。 來自暫態故障的單一位元混亂已成爲現今微處理器設 計中關鍵的挑戰之一。該些故障由於活動性極強的粒子引 起,例如:來自宇宙射線的中子以及來自封裝材料的α粒 φ 子。電晶體來源與擴散節點可以收集這些電荷。足夠數量 的累積電荷可以將邏輯裝置的狀態反轉,該邏輯裝g ^ $口 :SRAM單兀、检鎖器或閘極,並藉此將一邏輯故障引入 該電路的操作。由於此種類型的故障並不會帶給該裝g 7欠 久的故障,一般稱爲軟錯誤或暫態錯誤。 由於晶片上電晶體的數量持續快速地增加,@ 胃 於微處理器設計者而言是增加的負擔。每^ SRAM位元的原始錯誤率預計爲大體上保持定値或在接下 來的數個科技世代中略爲降低。因此,除非是新增_纟昔誤 (2) 1277861 保護機制或更爲健全技術的使用(例如:全空乏SOI技術 ),微處理器的錯誤率將與裝置數量成正比地成長,其中 該裝置加上每一後續世代中的處理器。 【發明內容】 爲了達成前述以及根據本發明的目的,提供一種減低 微處理器中不正確的偵誤之方法及裝置。 • 本發明的其他特點、目的以及優點將詳細描述如下且 伴隨著圖式而更加清楚敘述,其中在所有的圖式中,相同 之參考數字係標明相同或類似的元件。 【實施方式】 本發明的一些較佳實施例將詳細描述如下。然而,除 了如下描述外’本發明還可以廣泛地在其他的實施例施行 ’且本發明的範圍並不受實施例之限定,其以之後的專利 鲁範圍爲準。 第1圖說明在微處理器中一單一位元故障可能導致的 結果。一開始,該處理器判定一故障位元是否被讀取1 〇〇 。假如一故障位元不被讀取1 1 〇,接著該位元被視爲良性 的故障且因此沒有錯誤。假如一故障位元被讀取,接著該 處理器判定該位兀是否具有錯誤保護1 1 5。當一故障位元 被讀取’至少有三種可能的結果。首先,假如該錯誤保護 被偵測用於該位元且被修正,接著該故障被視爲已修正 120 〇 ⑧ (3) 1277861 第二,假如該位元不具有錯誤保護,接著該處理器判 定該指令是否影響該程式的結果〗2 5。假如該指令不影響 該程式的結果,接著該故障位元被視爲良性的故障1 3 0。 由於該故障不具有影響或者是被偵測與被修正,因此故障 1 10、120與13 0均指明非錯誤狀態。 假如該指令影響該程式的輸出,接著它被視爲靜默的 資料毀損(silent data corruption ; SDC ) 135。SDC 135 是 φ 一種最隱伏形式的錯誤,其中一錯誤導致該系統產生不正 確的輸出。爲了避免SDC 135,設計者可使用基本的錯誤 偵測機制,例如:同位(p a r i t y )。 第三種可能的結果則是,當一位元具有錯誤保護應用 至此種狀況,其中該錯誤被偵測1 4 0。具有偵測故障但不 修正的能力,該系統避免產生無效輸出,但當錯誤發生時 不能恢復。因此,簡單的錯誤偵測並不減少錯誤率,然而 提供失效即停(fail-stop )的性能並藉此減低任何的資料 φ 毀損。這些類型的錯誤係爲已知的,稱爲已偵測的不可恢 復錯誤(detected unrecoverableerrors ; DUE)。 DUE事件可以根據該已偵測錯誤是否影響該執行的最 後結果,而更進一步地再細分。良性的已偵測錯誤稱爲不 正確的DUE事件145,其他則稱爲正確的DUE事件1 50。在 一微處理器中,不正確的DUE事件係由在錯誤路徑的指令 上(不正確斷定的指令)攻擊而引起,以及在正確路徑的 指令上(其不影響最終程式狀態),其包含無操作指令、 預先擷取以及動態無效指令。 (4) 1277861 本發明的一實施例利用一種機制,其藉由減低一暫態 錯誤將導致該處理器宣告一錯誤狀態的可能性進而減低錯 誤率。爲了追蹤不正確的DUE事件,該處理器附加一 pi位 元至每一指令以及可能地附加至不同的硬體結構,其中pi 位元用於可能的不正確(possibly incorrect)。當一錯誤 被偵測時,該硬體設定受影響指令的該pi位元而不是用信 號發出該錯誤。接著,藉由檢查該pi位元以及確認該指令 φ 的本質,該硬體可以決定是否真正地發生一可見的錯誤。 區分不正確的錯誤與正確的錯誤是非常複雜的。在偵 測到該錯誤時,該處理器可能不具足夠的資訊以區分。舉 例而言,當該指令佇列在一指令上偵測到一錯誤,其可能 無法辨別該指令是否爲一錯誤路徑指令。因此,該處理器 需要將該錯誤資訊在該管線向下地傳送,且當具有足夠的 資訊區別時引發該錯誤。 爲了在該微處理器硬體的不同部分之間傳送該錯誤資 • 訊,該系統利用該pi位元。當該pi位元在該管線向下地流 動時(由解碼至引退階段),該pi位元與每一指令邏輯上 相結合。 第2 a至2d圖說明根據本發明的一實施例,當使用一 pi 位元,其沿著一指令流動路徑以偵測發生在一指令上的一 軟錯誤。對於一指令而言,當該指令被解碼200,該pi位 元附加至該指令且初始化爲〇。該pi位元被清除以指明在 該指令上沒有任何錯誤。當該指令在該管線205之間流動 ,其將被多次地轉換以適應該機器以及寫入至儲存結構且 -8- (5) 1277861 從許多不同的儲存結構讀取,例如:指令佇列。 當一指令佇列2 1 0接收該指令,其儲存該pi位元以及 該指令。假如該指令累積一單一位元混亂,一同位錯誤將 被標記。在一錯誤的偵測上,該指令佇列210將受影響指 令的pi位元設定爲1,而不是引發一機器檢查例外。接著 ,該指令發送且在該管線205向下地流動。 錯誤核對以及該pi位元的更新亦可以使用於該管線的 φ 多個階段中及/或指令執行期間的多個不同結構中。錯誤 核對邏輯可以爲同位核對器的形式或各種其他習知的錯誤 偵測技術,以及其他可行的方式。再者,錯誤偵測與修正 技術可以使用於這些不同的階段中或不同的結構上,對於 不可恢復錯誤的例子而言具有該pi位元被設定。 最後,該指令將認可2 1 5。在該認可階段,該認可硬 體具有足夠的資訊判定該指令是否爲一錯誤路徑指令。假 如是的話,該處理器可以忽略該pi位元,因此避免不正確 Φ 的due事件(假如該位元被設定)。假如不是的話,該處 理器可以選擇在該指令的該認可點2 1 5上引發該機器檢查 錯誤。 該pi位元機制亦可以藉由在該管線205之間流動的不 同物件附加該pi位元而槪括,只要該pi位元從一物件至另 一物件正確地傳送。舉例而言,許多微處理器通常擷取多 個指令(有時稱爲資料塊)。資料塊在該管線的前端部分 之間流動,直至它們被解碼爲止。一 pi位元可以被附加至 每一擷取資料塊。假如該資料塊遭遇到一錯誤,該處理器 -9 - (6) 1277861 可以設定該資料塊的該pi位元。接著,當該資料塊被解碼 爲多個指令時,該處理器可以複製該資料塊的該pi位元値 ,以初始化每一指令的該pi位元。因此,該處理器可以使 用該pi位元,以避免在個別的指令被解碼之前,該管線前 端部分的結構上不正確的DUE事件。 在另一實施例中,該處理器可以由指令至暫存器傳送 pi位元資訊,並藉此避免由暫存器檔案上的動態無效指令 φ 所導致的不正確DUE事件。假如一指令的pi位元被設定, 該處理器可以將該指令的pi位元傳送至所寫入的該目標暫 存器,而不是增加一錯誤。假如沒有後續的指令讀取該暫 存器,接著該暫存器的該pi位元將不被檢查,並且因此該 處理器可以避免在第一位準動態無效(FDD )指令上的錯 誤,其已寫入該暫存器。然而,當一後續的指令以設定的 該pi位元讀取一暫存器時,該處理器用信號發出一錯誤。 另外可選擇的是,假如一暫存器的pi位元被設定,讀 φ 取該暫存器的一指令可以藉由其自身的pi位元而與所有來 源暫存器的該些pi位元爲邏輯上的OR,並沿著該管線將之 運送。此實施例沿著相依鏈傳送該pi位元,且允許處理器 亦追蹤可遞且動態無效(TDD )指令。追蹤TDD指令的方 式之一係爲,僅當一處理器與該記憶體系統或I/O裝置交 互作用時宣告該錯誤。因此’假如該P i位元存在於處理器 中除了快取與主記憶體以外的每一結構上’且採用如上所 述用於pi位元的相同繼承規則’接著亦可以避免在TDD指 令上的不正確錯誤。爲了使上述可以發生’該系統僅當一 -10- (7) •1277861 儲存指令220或一 I/O存取即將認可其資料至該些快取、記 憶體系統或I/O裝置時而標記錯誤。上述傳送不僅避免在 該暫存器檔案上TDD指令的不正確DUE事件,而且經由該 些指令與數値流而沿著該管線之間的其他結構。 在另一實施例中,該處理器可以將該pi位元從一指令 或一暫存器傳送至記憶體數値,用以追蹤在記憶體結構中 的不正確DUE事件,該記憶體結構例如:儲存緩衝區與快 φ 取220。該處理器可以將一 pi位元附加至每一快取區塊, 且當一儲存指令寫入一位址時,該處理器可以將該儲存指 令的pi位元傳送至該瑰取區塊。接著,當一載入2 2 5讀取 該快取區塊,其可以檢查該pi位元或者是當載入時將該pi 位元傳送至該暫存器213。假如該pi位元被傳送至該暫存 器213,接著該處理器亦可以避免用信號發出不正確DUE 事件,其由於動態無效記憶體數値而引起。 另外可選擇的是,假如一系統在整體處理器晶片與記 • 憶體系統上具有pi位元,該處理器可以藉由記憶體追蹤在 FDD與TDD指令上的不正確錯誤。在此種例子中,一錯誤 將被引發僅當該處理器產生具有其pi位元設定的一 I/O存取 ,例如:非快取的載入或儲存。此可以提供設計者追蹤在 共享記憶體多重處理器系統中多個處理器的錯誤。 因此,一般而言,該pi位元可以被附加至在管線之間 流動的任何物件,或者附加至任何硬體結構,然而該Pi位 元的詳盡度依據其實施方式而定。舉例而言,假如一 Pi位 元被附加至64位元的暫存器數値,接著一單一 pi位元可以 -11 - ⑧ (8) 1277861 僅通知在該6 4位元的其中之一具有一錯誤。另外可以選擇 的是,假如存在有用於每一位元組的P丨位元’接著該處理 器可以確認在該6 4位元之間的哪一位元組已具有一錯誤。 第3圖係爲一流程圖,用以說明根據本發明一實施例 偵測軟錯誤的方法。在此特定實施例中’流程圖3 00說明 一種例子,其中一處理器判定一指令是否爲一錯誤路徑指 令。一開始,當一指令被解碼時3 05,一 pi位元與該指令 φ 相結合3 1 0且被初始化至〇。藉由將該pi位元初始化至〇, 其標明在該指令上沒有任何錯誤。接著,該指令以及其Pi 位元在該管線中佇列3 1 5。當該指令在該管線之間流動, 其將被多次地轉換以適應該機器以及寫入至儲存單元且從 許多不同的儲存單元讀取。 當該指令在一管線之間流動的期間,該指令可以累積 一單一位元混亂,且該指令的一同位錯誤將被標記320。 假如該指令一錯誤被偵測,該管線可以將受影響指令的pi # 位元設定爲一 325,而不是引發一機器檢查例外,且最後 該指令將認可3 3 0。假如一錯誤不被偵測到,最後該指令 可以認可3 3 0。接著,該認可硬體可以判定該指令是否爲 一錯誤路徑指令3 3 5。假如該指令被判定爲一錯誤路徑指 令時,接著該pi位元被忽略340,否則該處理器可以選擇 引發一錯誤345 ’例如:一機器檢查錯誤。 第4圖說明一典型的電腦系統用以實行偵測軟錯誤。 如第4圖所示的一電腦400,其中處理器405作爲單獨的或 複數個處埋器其中之一,其包含中央處理單元(CPU)或 -12- (9) 1277861 該電腦400的一些單元。通常,該處理器405被嵌入至單一 積體電路晶片中。該處理器405可以包含一執行(處理) 核心4 1 0 ’其具有一或多個執行單元。該處理器4 0 5的一部 分用於包含一指令處理裝置415。如第4圖所示,該指令處 理裝置4 1 5耦接至該核心4 1 0。 本發明根據以上所述實施,用以在該核心4 1 0中執行 一指令。該記憶體可以位於晶片上(如第4圖所示的晶片 φ 上記憶體420 )或是位於晶片外(如第4圖所示的晶片外記 憶體425 )。通常,該晶片上記憶體可以爲快取記憶體或 者主記憶體(RAM )的一部分。該晶片外記憶體通常包含 主記憶體(亦包含晶片外快取,假如存在的話)以及其他 記憶體裝置,例如:磁碟儲存媒介。晶片上記憶體420以 及晶片外記憶體425 (單獨地或個別地)可以連接至不同 的裝置,例如:聲音介面裝置43 0。然而,需要加以注意 的是,本發明可以其他方法裝配以藉由該核心4 1 〇處理用 φ 於執行的該些指令。 該pi位元機制藉由減低不正確錯誤而減低不正確DUE 事件。在缺乏一錯誤偵測機制下’此種錯誤將不影響一程 式的最後結果。舉例而言’影響一動態無效指令結果的一 故障將不改變最後的程式輸出,但是仍藉由該硬體標記爲 一錯誤。爲了避免用信號發出此種不正確錯誤’該p i位元 機制修改管線錯誤偵測邏輯’用以藉由該P i位兀將受影響 指令與資料標示爲可能不正確的,而不是立即地用信號發 出錯誤。接著’僅當在稍後被/判f爲該可能不正確的數値 -13- (10) 1277861 能夠已影響該程式的輸出時,該處理器用信號發出錯誤。 在一些實施例中,該pi位元傳送錯誤資訊,以使得當 該處理器可以判定該錯誤的確爲一不正確錯誤或正確的錯 誤時,該錯誤可以在一稍後的點上及時地引發。因此’該 pi位元機制可以由該錯誤的標記中解耦一錯誤的偵測。如 此提供一微處理器設計者一種選擇,在一値的使用上引發 該錯誤,或是當用於超越範圍的一値的該pi位元引發該錯 • 誤。 在一些實施例的其他優點係爲,用以偵測該故障的該 同位核對器在每一位置上不需要具有額外的硬體以引發一 機器檢查例外。反而,該錯誤位於該Pi位元中。該認可硬 體將是唯一的位置,用以請求該硬體引發該機器檢查例外 〇 雖然本發明已以若干較佳實施例揭露如上,然其並非 用以限定本發明,任何熟習此技藝者,在不脫離本發明之 φ 精神和範圍內,當可作些許之更動與潤飾’因此本發明之 保護範圍當視後附之申請專利範圍所界定者爲準。 【圖式簡單說明】 本發明的許多觀點可以參考以下的圖式而更加清楚的 了解。相關圖式並未依比例繪製,其作用僅在清楚表現本 發明有關定理。此外’使用數字來表示圖式中相對應的部 分。 第1圖係爲一方塊圖’用以說明在微處理器中故障位 ~ 14- (11) 1277861 元可能導致的結果。 第2a至2d圖係爲方塊圖,用以說明根據本發明的一實 施例,當使用沿著一指令流動路徑的一 pi位元,以偵測發 生在一指令上的一軟錯誤。 第3圖係爲一流程圖,用以說明根據本發明一實施例 的運作。 第4圖係爲一方塊圖,用以說明一範例式電腦系統以 φ 實行在本發明中的偵測軟錯誤。 【主要元件符號說明】 1 〇〇故障位元是否被讀取 1 1 0良性的故障 1 1 5該位元是否具有錯誤保護 120該故障已修正 125該指令是否影響程式結果 φ 1 3 0良性的故障
1 3 5靜默的資料毀損 140是否影響程式結果 145 不正確的DUE
1 50正確的DUE 2 0 0解碼 2 1 〇指令佇列 2 1 5認可 20 5管線 (12) (12)1277861 2 2 0儲存 2 2 5載入 2 1 3暫存器 3 0 0流程圖 3 0 5解碼指令 3 10載入與指令相結合的pi位元 3 15佇列指令以及pi位元 320錯誤發生否? 3 2 5設定p i位元 3 3 0認可指令 3 3 5錯誤路徑指令 340忽略pi位元 3 4 5引發錯誤 4 0 0電腦 4 0 5處理器 4 1 0執行核心 4 1 5指令處理單元 420晶片上記憶體 425晶片外記憶體 43 0聲音介面裝置

Claims (1)

  1. (1) 1277861 十、申請專利範圍 1 · 一種處理器,包含: 一解碼模組,用以接收一指令; 與該指令相結合的一位元,用以確認所發生的一位元 狀態變化是否損壞該指令,與同位相結合的該錯誤位元隨 著該指令流動; 一儲存結構,其耦接至該解碼模組,用以儲存該指令 Φ ;以及. 一指令處理單元,其耦接至該儲存結構,該指令處理 單元包含複數個階段用以處理該指令,其中該處理器在認 可點上判定該指令是否爲一錯誤路徑指令。 2. 如申請專利範圍第1項所述之處理器,其中該位元 被初始化爲一第一値,用以標明在該指令上沒有任何錯誤 〇 3. 如申請專利範圍第1項所述之處理器,其中該儲存 鲁結構係爲一指令佇列。 4. 如申請專利範圍第2項所述之處理器,其中當偵測 到一錯誤時,該儲存結構將該指令的錯誤位元設爲一第二 値。 5. 如申請專利範圍第4項所述之處理器,其中該指令 以及該位元在該等階段流動。 6. 如申請專利範圍第5項所述之處理器,其中該指令 係以在該指令的第二値之中的該位元認可。 7. 如申請專利範圍第6項所述之處理器,其中假如該 -17· (2) 1277861 fe 1¾爲一^錯灰路徑指令日寸’該處理器忽略該位元。 8 .如申請專利範圍第6項所述之處理器,其中假如該 指令不是一錯誤路徑指令時,該處理器引發一機器檢查錯 9 ·如申請專利範圍桌1項所述之處理器,其中該些指 令可以是資料塊’且每一位元附加至每一擷取資料塊。 1 〇 ·如申請專利範圍第9項所述之處理器,其中該資 Φ 料塊被解碼爲多個指令,該處理器將該資料塊的該位元値 複製至該多個指令的每一指令。 11.如申請專利範圍第1項所述之處理器,其中該處 理器將該指令的位元傳送至一目標暫存器。 1 2 ·如申請專利範圍第1 1項所述之處理器,其中假如 沒有後續的指令讀取該目標暫存器,該暫存器的該位元將 不被檢查。 1 3 ·如申請專利範圍第1 1項所述之處理器,其中該指 φ 令來源暫存器的所有位元與該指令本身的位元係爲邏輯上 的OR,以提供一單一位元。 1 4 ·如申請專利範圍第1項所述之處理器,其中該處 理器將該位元由一指令傳送至一記憶體模組。 1 5 ·如申請專利範圍第1 4項所述之處理器,其中當一 儲存指令寫入一位址時,該處理器將一位元附加至每一快 取區塊,且該處理器將該儲存指令的位元傳送至該快取區 塊。 1 6.如申請專利範圍第1 4項所述之處理器,其中一載
    -18- (3) 1277861 入讀取該快取區塊,用以檢查該位元或者是將該位元傳送 至載入時的該暫存器。 1 7.如申請專利範圍第1項所述之處理器,其中該位 元爲一 pi位元。 1 8 · —種用以減低不正確偵誤的方法,該方法包含: 解碼一指令; 載入一位元以及該指令,該位元與該指令的一同位相 結合, 佇列該指令; 在一管線的多個階段傳送該指令,用以處理該指令; 以及 在認可點上判定該指令是否爲一錯誤路徑指令。 1 9 .如申請專利範圍第1 8項所述之方法,更包含假如 該指令爲一錯誤路徑指令時,忽略該位元。 20·如申請專利範圍第19項所述之方法,更包含假如 # 該指令不是一錯誤路徑指令時,引發一機器檢查錯誤。 2 1 · —種用以減低不正確偵誤的裝置,該裝置包含·· 一解碼模組,用以接收一輸入; 一儲存單元,儲存與該輸入相結合的一偵測位元,用 以確認所發生的一位元狀態變化是否損壞該輸入; 一指令佇列,用以處理該輸入; 一* ί曰令動路徑’用以在多個階段傳送該等輸入的流 動;以及 一認可模組,用以判定該輸入是否在一錯誤路徑上。 -19- (4) 1277861 22 ·如申請專利範圍第2 1項所述之裝置, 位元爲一 p i位元。 23·如申請專利範圍第22項所述之裝置, 位元與該指令的一同位相結合。 24 ·如申請專利範圍第2 1項所述之裝置, 位元被初始化爲一第一値,用以標明在該輸入 錯誤。 議 25.如申請專利範圔第24項所述之裝置, 到一錯誤時,該指令佇列將該輸入的偵測位元 値。 2 6.如申請專利範圍第25項所述之裝置, 發送且在該指令流動路徑的複數個階段流動。 27.如申請專利範圍第25項所述之裝置, 係以在該輸入的第二値之中的該偵測位元認可 2 8.如申請專利範圍第27項所述之裝置, φ 認可模組判定該輸入爲一錯誤路徑指令時,該 偵測位元。 2 9.如申請專利範圍第28項所述之裝置, 認可模組判定該輸入不是一錯誤路徑指令時, 一機器檢查錯誤。 3 0 . —種用以減低不正確偵誤的系統,該 一晶片外記憶體,用以在擷取之前儲存一 一處理器,其耦接至該晶片外記憶體’其 更包含: 其中該偵測 其中該偵測 其中該偵測 上沒有任何 其中當偵測 設爲一第二 其中該輸入 其中該輸入 〇 其中假如該 裝置忽略該 其中假如該 該裝置引發 系統包含: 輸入; 中該處理器 -20- (5) 1.277861 一解碼模組,用以接收該輸入; 一儲存單元,用以儲存與該輸入相結合的一位元 一指令佇列,用以處理該輸入; 一指令流動路徑,用以在多個階段傳送該些輸入 的流動;以及 一認可模組,用以判定該輸入是否在一錯誤路徑 •上。 3 1 .如申請專利範圍第3 0項所述之系統,更包含耦接 至該晶片外記憶體的一聲音介面裝置。 32.如申請專利範圍第30項所述之系統,其中該位元 爲一 p i位元。 33·如申請專利範圍第30項所述之系統,其中該位元 確認所發生的一位元狀態變化是否損壞該輸入。 34·如申請專利範圍第33項所述之系統,其中該位元 ♦狀態變化爲同位。 35·如申請專利範圍第30項所述之系統,其中該位元 被初始化爲一第一値,用以標明在該輸入上沒有任何錯誤 〇 3 6 ·如申請專利範圍第3 5項所述之系統,其中當偵測 到一錯誤時’該指令佇列將該輸入的位元設爲一第二値。 3 7·如申請專利範圍第36項所述之系統,其中該輸入 發送且在該指令流動路徑的複數個階段流動。 3 8·如申請專利範圍第36項所述之系統,其中該輸入
    -21 - (6) 1277861 係以在該輸入的第二値之中的該位元認可。 39. 如申請專利範圍第3 8項所述之系統,其中假如該 認可模組判定該輸入爲一錯誤路徑指令時,該系統忽略該 偵測位元。 40. 如申請專利範圍第39項所述之系統,其中假如該 認可模組判定該輸入不是一錯誤路徑指令時,該系統引發 一機器檢查錯誤。 4 1.如申請專利範圍第30項所述之系統,更包含一晶 片上記憶體。 42 .如申請專利範圍第4 1項所述之系統,更包含耦接 至該晶片上記憶體的一聲音介面裝置。
    -22-
TW094116345A 2004-06-17 2005-05-19 Method and apparatus for reducing false error detection in a microprocessor TWI277861B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/871,430 US7555703B2 (en) 2004-06-17 2004-06-17 Method and apparatus for reducing false error detection in a microprocessor

Publications (2)

Publication Number Publication Date
TW200619921A TW200619921A (en) 2006-06-16
TWI277861B true TWI277861B (en) 2007-04-01

Family

ID=34981730

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094116345A TWI277861B (en) 2004-06-17 2005-05-19 Method and apparatus for reducing false error detection in a microprocessor

Country Status (6)

Country Link
US (2) US7555703B2 (zh)
JP (1) JP4448539B2 (zh)
CN (1) CN100449480C (zh)
DE (1) DE112005001338T5 (zh)
TW (1) TWI277861B (zh)
WO (1) WO2006007147A1 (zh)

Families Citing this family (19)

* 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
US7370231B2 (en) * 2004-12-14 2008-05-06 Intel Corporation Method of handling errors
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
DE102006005817B4 (de) * 2006-02-08 2014-06-26 Infineon Technologies Ag Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102006062703A1 (de) * 2006-02-08 2007-08-30 Infineon Technologies Ag Fehlererkennungsvorrichtung und Verfahren zur Fehlererkennung für einen Befehlsdecoder
US8201067B2 (en) * 2008-02-25 2012-06-12 International Business Machines Corporation Processor error checking for instruction data
US7849387B2 (en) * 2008-04-23 2010-12-07 Intel Corporation Detecting architectural vulnerability of processor resources
GB2466984B (en) * 2009-01-16 2011-07-27 Imagination Tech Ltd Multi-threaded data processing system
US20110099439A1 (en) * 2009-10-23 2011-04-28 Infineon Technologies Ag Automatic diverse software generation for use in high integrity systems
US20110208948A1 (en) * 2010-02-23 2011-08-25 Infineon Technologies Ag Reading to and writing from peripherals with temporally separated redundant processor execution
US8516356B2 (en) 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
US8671309B2 (en) * 2011-07-01 2014-03-11 Intel Corporation Mechanism for advanced server machine check recovery and associated system software enhancements
US9176739B2 (en) * 2011-08-05 2015-11-03 Cisco Technology, Inc. System and method for checking run-time consistency for sequentially and non-sequentially fetched instructions
US9106258B2 (en) * 2013-11-22 2015-08-11 International Business Machines Corporation Early data tag to allow data CRC bypass via a speculative memory data return protocol
FR3030793B1 (fr) * 2014-12-19 2018-02-16 Clearsy Procede d'arret d'urgence et systeme securitaire associe
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
US9595349B2 (en) * 2015-06-25 2017-03-14 Intel Corporation Hardware apparatuses and methods to check data storage devices for transient faults
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation

Family Cites Families (39)

* 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
US4241396A (en) * 1978-10-23 1980-12-23 International Business Machines Corporation Tagged pointer handling apparatus
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
JPS6312030A (ja) 1986-07-02 1988-01-19 Nec Corp 情報処理装置のエラ−処理機構
US5297263A (en) * 1987-07-17 1994-03-22 Mitsubishi Denki Kabushiki Kaisha Microprocessor with pipeline system having exception processing features
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 株式会社東芝 パリティチェック制御装置
GB8810948D0 (en) * 1988-05-09 1988-06-15 Plessey Telecomm Tdm data transmission system
JPH03209523A (ja) 1990-01-11 1991-09-12 Fujitsu Ltd 命令データエラー検出方式
JPH04264624A (ja) 1991-02-19 1992-09-21 Toshiba Corp プロセッサ
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
JP3035108B2 (ja) 1993-04-02 2000-04-17 株式会社東芝 並列演算処理装置
US5537559A (en) * 1994-02-08 1996-07-16 Meridian Semiconductor, Inc. Exception handling circuit and method
US5535226A (en) * 1994-05-31 1996-07-09 International Business Machines Corporation On-chip ECC status
US5751985A (en) * 1995-02-14 1998-05-12 Hal Computer Systems, Inc. Processor structure and method for tracking instruction status to maintain precise state
KR100206887B1 (ko) * 1995-12-31 1999-07-01 구본준 프로그램 오동작 방지를 위한 씨피유
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
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
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
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
TW200619921A (en) 2006-06-16
US7555703B2 (en) 2009-06-30
US7543221B2 (en) 2009-06-02
CN1969256A (zh) 2007-05-23
WO2006007147A1 (en) 2006-01-19
US20050283716A1 (en) 2005-12-22
DE112005001338T5 (de) 2007-06-14
JP2008501191A (ja) 2008-01-17
CN100449480C (zh) 2009-01-07
US20050283712A1 (en) 2005-12-22
JP4448539B2 (ja) 2010-04-14

Similar Documents

Publication Publication Date Title
TWI277861B (en) Method and apparatus for reducing false error detection in a microprocessor
TWI293429B (en) Microprocessor capable of detecting a fault in an instruction, and method, apparatus and system for detecting an error associated with an instruction
TWI274991B (en) A method, apparatus, and system for buffering instructions
JP5212369B2 (ja) 演算器及び演算器の制御方法
EP1659494B1 (en) Method and apparatus for classifying memory errors
JP2007188379A (ja) エラー訂正方法
US6519717B1 (en) Mechanism to improve fault isolation and diagnosis in computers
JP2005149496A (ja) 交替スレッドを使用するプロセッサのエラー検出方法およびシステム
US20090271536A1 (en) Descriptor integrity checking in a dma controller
US10817369B2 (en) Apparatus and method for increasing resilience to faults
US20070044003A1 (en) Method and apparatus of detecting and correcting soft error
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
JP2011257966A (ja) キャッシュ装置及び情報処理装置
US8495452B2 (en) Handling corrupted background data in an out of order execution environment
US10289332B2 (en) Apparatus and method for increasing resilience to faults
US8793689B2 (en) Redundant multithreading processor
CN1710533B (zh) 通过跟踪动态死指令来减少微处理器中的虚假差错检测

Legal Events

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