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 PDFInfo
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 238000013475 authorization Methods 0.000 claims 2
- 230000000644 propagated effect Effects 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 8
- 230000001052 transient effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding 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) 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-
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)
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)
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 |
-
2004
- 2004-06-17 US US10/871,430 patent/US7555703B2/en not_active Expired - Fee Related
- 2004-09-22 US US10/948,813 patent/US7543221B2/en not_active Expired - Fee Related
-
2005
- 2005-05-19 TW TW094116345A patent/TWI277861B/zh not_active IP Right Cessation
- 2005-05-20 WO PCT/US2005/017772 patent/WO2006007147A1/en active Application Filing
- 2005-05-20 CN CNB200580019724XA patent/CN100449480C/zh not_active Expired - Fee Related
- 2005-05-20 JP JP2007515202A patent/JP4448539B2/ja not_active Expired - Fee Related
- 2005-05-20 DE DE112005001338T patent/DE112005001338T5/de not_active Withdrawn
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 |