TWI247986B - Firmware mechanism for correcting soft errors - Google Patents

Firmware mechanism for correcting soft errors Download PDF

Info

Publication number
TWI247986B
TWI247986B TW089121056A TW89121056A TWI247986B TW I247986 B TWI247986 B TW I247986B TW 089121056 A TW089121056 A TW 089121056A TW 89121056 A TW89121056 A TW 89121056A TW I247986 B TWI247986 B TW I247986B
Authority
TW
Taiwan
Prior art keywords
processor
execution
error
mode
data
Prior art date
Application number
TW089121056A
Other languages
English (en)
Inventor
Nhon Toai Quach
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
Application granted granted Critical
Publication of TWI247986B publication Critical patent/TWI247986B/zh

Links

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)

Description

1247986 ___案號 89121056_年月日__ 五、發明說明(1) 發明背景 技術範圍 本發明係有關於微處理器,更特別是有關以高可信度模 式操作的微處理器。 技藝之背景 當阿爾發粒子或宇宙射線射線撞擊一積體電路及改變在 電路的電壓節上所儲存的電荷時,軟體錯誤便發生。如果 電荷變更足夠大,表示一邏輯狀態的電壓可充電成表示一 不同邏輯狀態的電壓。例如,表示一邏輯TRUE狀態的電壓 可改變成表示一邏輯FALSE狀態的電壓,而且結合該邏輯 狀態的任何資料將會錯誤。 積體電路,例如微處理器(π處理器π )之軟體錯誤率 (SER )隨著半導體製程技術按比例縮小之較小尺寸及較低 操作電壓而增加。較小的處理尺寸允許在處理器晶粒上達 成較大的裝置密度。此可能增加一阿爾發粒子或宇宙射線 撞擊該等處理器的電壓節點之其中一者。較低的操作電壓 係表示較小電荷分裂足以改變由節點電壓所表示的邏輯狀 態。兩趨勢在未來是指向較高S E R s。如果在任何錯誤結果 被用來更新處理器的結構狀態之前偵測到軟體錯誤,他們 在一處理器便會更正。 處理器會由於軟體錯誤而時常採用以奇偶檢驗為基礎之 機構來偵測資料錯誤。一奇偶檢驗位元是與儲存的每一資 料區塊有關。該位元是根據在資料區塊是否有一奇數或偶 數數目的1而設定成1或0。當資料區塊從儲存位置讀出 時,在區塊的1的數目便與奇偶檢驗位元微比較。在該等
O:\66\66756-940323.ptc 第 6 頁 1247986 a 19121050 五、發明說明(2) 年 曰 修正 值之間的一不同θ扣_次 沒有錯誤發生或兩(式不貝,f塊錯誤。兩數目的一致表示 有發生的非常低二或二..2個,元改變。i然5者事件具 誤之一可靠表示。此^ 以可偶檢驗可提供資料是否錯 之機構,其Τ追縱〗:^ =,(ECCS) &以奇偶檢驗為基礎 許錯誤位元被確認及更^ j區塊的額外資訊。額外資訊允 奇偶檢驗/ E C C機播p库、、《虚 與類似的資料儲存陳f1:用在快取記憶體、記憶體、 點密度,而且甚至在曰i t二結構具有相當高資料儲存節 他們的局部配置姓ί】二f破置尺寸上可用於軟體錯誤。 構。在-處理器實施奇偶檢驗/ECC機 的這些電路及其分配的不 丁枱心)。在處理器晶粒上 驗/ECC機構。 R〜構使他更不容易應用奇偶檢 在一執行核心中偵測軟體 行核心上的指令,並且比較二=2理在複製執 個指令所決定的結果。例如曰:礎(夕餘執行”)由每 功能多餘檢查("FRC,,)模式啟動勃广。 〉杈式或一 執行是在處理器之間分配,以便比^ _ 柄式中’指令 體;率:、在FSRC模式/,-處理器一:常地提供更 全相同:ί:在ί ΐ ί第i ί f 3之相同的資料上執行完 的操:之間偵測一差異,它便發信通 只可透過重新設定電腦系“在SMP與FRCmm式
O:\66\66756-940323.ptc 第7頁 1247986 _案號89121056_年月曰 修正_ 五、發明說明(3) 雙處理器接方法是高成本(從矽的觀點)。此外,經由比 較結果的處理器間發信太慢而不能在它更新處理器結構的 狀態之前偵測錯誤的資料。結果,此方法不適於更正偵測 的軟體錯誤。 另一電腦系統可在單一處理器晶片上透過使用雙執行核 心而提供執行之冗餘。兩執行核心以F R C模式操作,而且 ECC受保護的檢查點暫存器可儲存在處理器的中間狀態上 的資訊。當在一碼片段偵測到一錯誤時,處理器便可實施 一微碼常式,以透過使用檢查點暫存器將處理器恢復成最 後非錯誤的處理器狀態。控制然後返回發生錯誤指令開始 的碼片段。錯誤恢復微碼常式是儲存在處理器晶片上,使 它不容易更新或修改。此外,常式有足夠彈性更正相當複 雜的大範圍錯誤。這些常式的微碼實施會在處理器晶粒上 佔用相當的區域。 本發明係提出目前可用的高穩定可信度電腦系統的這些 及其他瑕疵。 發明概述 本發明可提供一韌體機構,用以在能以多餘模式與分離 模式操作執行核心的一雙執行核心處理器中的軟體錯誤恢 復。 當處理器以多餘模式操作執行核心時,根據本發明的方 法便可偵測一軟體錯誤。一錯誤恢復常式是在每個執行核 心上執行,以儲存來自與執行核心有關的儲存結構的非錯 誤資料。處理器狀態資料可從儲存的資料恢復,而且第一 及第二執行核心可透過使用處理器狀態資料而初始化。
O:\66\66756-940323.ptc 第8頁 1247986 _案號89121056_年月日_Hi_ 五、發明說明(4) 根據本發明的一電腦系統包括一雙執行核心處理器及可 儲存錯誤恢復常式之一非揮發性記憶體。當以多餘模式操 作的處理器偵測一軟體錯誤時,錯誤恢復常式便會喚起。 該常式可將處理器改變成分離模式,其中每個執行核心的 模式可在它一指定記憶體位置所結合的儲存結構中儲存非 錯誤的資料。該常式可從儲存的資料恢復處理器狀態資 料。 圖式之簡單說明 本發明可參考下列圖式了解,其中相同的元件是以相同 的數字表示。這些圖式的提供可說明本發明的具體實施 例,而不是要限制本發明的範圍。 圖1係適於實施本發明的一電腦系統之具體實施例方塊 圖。 圖2 A係圖1的雙執行核心處理器之一具體實施例方塊 圖。 圖2B係圖2A處理器的FET級之一具體實施例方塊圖。 圖2 C係圖2 A處理器的檢查單元之一具體實施例方塊圖。 圖3係根據本發明而表示一方法的具體實施例之流程 圖,用以恢復軟體錯誤。 圖4係表示透過一執行核心實施一錯誤恢復常式的具體 實施例之一流程圖。 圖5 A和5 B表示不同機構的具體實施例的方塊圖,用以調 解軟體錯誤恢復的儲存資料。 圖6表示圖5 A資料調解機構的一具體實施例之一流程 圖。
O:\66\66756-940323.ptc 第9頁 1247986 _案號89121056_年月曰 修正_ 五、發明說明(5) 圖7係一執行核心的具體實施例之一方塊圖,該執行核 心可在一雙核心處理器以分離模式操作時提供串列層級多 餘。 發明之詳細說明 下列的討論是發表許多特殊的細節,以提供對本發明的 完全了解。然而,審閱此揭露後之習於此技者可在無此特 定細節下實施。此外,各種不同眾所週知的方法、程序、 元件、與電路未詳細描述,為了要專注在本發明的特徵。 本發明可提供一彈性方式以更正在一雙核心處理器中的 軟體錯誤,而該處理器可在一多餘模式與一分離模式之間 動態改變。在多餘模式中,處理器可在鎖定步驟於相同的 碼片段上操作該等執行核心,並且結果比較以確認錯誤。 在分離模式中,執行核心可獨立處理指令,例如執行核心 可在一特定的時脈週期於不同的指令上操作。 對於本發明的一具體實施例而言,多餘模式可以是一高 可信度(HR)處理器執行模式,其可在執行所選擇的碼片段 時,減少軟體軟體錯誤的危險。分離模式可以是一高效率 (HP)處理器執行模式,其可透過增加選取碼可用的執行資 源而用於較快處理選取碼。分離模式亦只可用於選取的目 的,例如錯誤恢復或啟動啟動處理器。分離模式的重要觀 點是它允許執行核心操作以π獨立”操作,亦即每個可在一 特定時脈週期上執行不同的指令。 根據本發明,一錯誤恢復常式係儲存於一非揮發性記憶 體。當以多餘模式實施一程式執行緒的處理器偵測到軟體 錯誤時,恢復常式便可存取。錯誤可透過在兩執行核心的
O:\66\66756-940323.ptc 第10頁 1247986 _ 案號89121056_年月日__ 五、發明說明(6) 結果之間的一差異而指示。常式可將處理器改變成分離模 式,在此模式,每個執行核心可檢查錯誤資料的相關儲存 位置。非錯誤的資料可複製在一指定的記憶體位置,而且 足夠的處理器狀態資料可從非錯誤的資料恢復,以重新開 始中斷的程式執行緒。該恢復常式可使用恢復的處理狀態 資料而初始化執行核心。 對於本發明的一具體實施例而言,與每個執行核心有關 的各種不同資源是受到奇偶檢驗保護,而且恢復常式可實 施一奇偶檢驗檢查,以識別在一執行核心中的任何錯誤資 料。奇偶檢驗保護資源可包括例如通用暫存器、浮點暫存 器、控制與狀態暫存器、低階快取記憶體等。大體上,用 來儲存處理器狀態資料的任何結構可以是奇偶檢驗保護。 保護的範圍是決定在系統的可信度需求。 對於本發明的另一具體實施例而言,錯誤恢復常式可識 別及儲存從一或兩執行核心到一指定記憶體位置的非錯誤 資料。執行核心是使用從儲存資料恢復的處理器狀態資料 而初始化。例如,兩執行核心可使用從未發生軟體錯誤的 執行核心所儲存的處理器狀態資料而初始化。或者,來自 每個執行核心的非錯誤資料可儲存到不同的記憶體位置, 而且來自一記憶體位置的資料可用來取代在另一記憶體位 置的錯誤資料。此另一方法可使用來自它所指定記憶體位 置的處理器狀態資料之一副本而初始化每個執行核心。透 過維持個別組的處理器狀態資料,此替代可減少在初始化 處理期間所產生一軟體錯誤逃脫偵測的危險。恢復常式可 在分離模式遵從來自執行核心的儲存處理器狀態資料的確
O:\66\66756-940323.ptc 第11頁 1247986
認及調解而同步於一返回多餘模式的執行核心。 對於本發明的另一具體實施例而言, 二 分離模式的個別執行核心内保有一些多餘 ^的配置可在 個執行核心的執行資源可邏輯組成分離模作私, 行串列。當處理器是在分離模式,執行 令上以鎖定步驟操作,而且來自多餘串 二釔曰 以偵測在單一執行核心内的軟體錯誤。)、、。果可比較, 圖1係根據本發明的一電腦系統丨〇 〇的具體 圖。電腦气統100包含一處理器102、一非揮發性記憶體▲ 1 0 4、一動態記憶體1 〇 6、及系統邏輯丨〇 8。系統邏輯丨〇 8可 在處理器102、非揮發性記憶體1〇4、與動態記憶體1〇6之 中路由通信。一錯誤恢復常式丨9 〇是儲存在非揮發性記憶 體1 0 4,雖然部份的常式丨9 〇可複製(影像常式)到動錤記'^ 體1 0 6 〇 〜 處理器1 0 2的揭露具體實施例包括一第一執行核心丨i 〇 (a)、對應核心狀態暫存器(CSRs) 12〇(a)、120(b)之一第 二執行核心1 1 0 (b)、及一檢查單元1 30。每個CSR 1 20 (a) 、:I 20 (b)分別包括一核心、狀態位元(CSB) 1 24(a)、1 24 (b )。將資料/指令在處理器1 〇 2之間來回轉換之一匯流排 介面140亦顯示。每個執行核心ii〇(a)、110(b)包括可拾 取、解碼、執行、及釋回指令的資源。在下面的討論中, 執行核心1 1 0 ( a )、1 1 0 ( b )的參考未標示,除非將註解應用 在一特殊執行核心1 1 0。執行核心11 0所複製的參考CSRs 120、CSBs 124與任何其他資源可同樣處理。 在多餘模式中,執行核心1 1 〇可在鎖定步驟執行來自一
O:\66\66756-940323.ptc 第12頁 1247986 _案號89121056_年月日__ 五、發明說明(8) 碼片段的相同指令,而且結果可透過檢查單元1 3 0比較, 以偵測在任何執行核心1 1 0的錯誤。在分離模式中,執行 核心1 1 0可π獨立π操作。即是,每個可執行不同於一或多 個碼片段的不同指令。如上述,既然在處理器可用的執行 資源可在分離模式有雙倍效果,所以分離模式可提供選取 程式的一可程式高效率模式。 在分離模式的執行核心1 1 0之間的獨立位準可隨著處理 器1 0 2的不同具體實施例而改變。對於一具體實施例而 言,當處理器1 0 2是在分離模式時,該處理器的操作如同 在單一處理器晶片上所實施的一SMP系統。在此情況,每 個執行核心1 1 0的操作如同一個別的處理器1 1 0,其只可共 用處理器晶粒及一記憶體系統的某些元件。處理器1 0 2的 此具體實施例可特別用於需要一高效率處理器的碼。處理 器1 0 2的另一具體實施例可在分離模式透過提供適當的通 道以共用處理器狀態資訊或執行核心資源而支援在執行核 心1 1 0之間的某些程度耦合。 在多餘與分離模式之間的改變能以硬體、軟體、或韌體 控制完成。對於軟體與韌體控制的改變而言,模式開關指 令可藉由執行的不同程式執行緒、一作業系統(OS)排程 器、中斷處理器、韌體常式、或類似來源而提供。對於硬 體控制的改變而言,改變可響應偵測的情況而觸發,例如 一特殊號指令類型的執行,在不同執行核心或差異解析度 的結果之間的一差異偵測。 對於本發明的一具體實施例而言,C S B s 1 2 4 ( a )和1 2 4 (b)分別表示執行核心110(a)和110(b)的狀態,而且CSBs
O:\66\66756-940323.ptc 第13頁 1247986 案號 89121056 年 月 曰 修正 五、發明說明(9) 1 2 4 ( a )和1 2 4 ( b )可表示處理器1 〇 2操作的模式。總而言 之,處理器的執行模式可透過圖1虛線方塊所示的單一處 理為狀態位元(P S B ) 1 2 8追縱。對於一具體實施例而言,當 紊理器102以多餘模式操作時,CSB U4可i定成例二1的田 弟一值,而且當處理器丨〇 2以分離模式操作時,它便可設 =^ =如0的第二值。當一模式改變指令觸發在多餘與分 掉核式t間的開關時,CSB 124便可調整。處理器102的各 ,不同貝源可根據它的執行模式而改變他們的操作。對於 处理器1 0 2的揭露具體實施例而言,指令拾取、指令釋 結果檢查能以多餘與分離模式而不同處理,而且對 患的貧源可根據CSBs 124(或PSB 128)的狀態而調整他們 的操作。 所ϊ ί K : : 2處理器102之-具體實施例是在美國 2 % Microprocessor With High e 【ability 一 〇Perating M〇de"中揭露。 从上表’、處理态1 〇 2的更詳細節點之〆具體實施例。 實施例而言,每個二心110是以在- 1 1 0所與W — 4 >連串級表示。每級是對應由實行核心 管線了解個操作110來執行他們的指令。或者, B、/、及j ^斛ij疋表示執行指示指令與資料 可提供給來自-記憶體系統27。的執,二110。記憶體系 統2 7 0是表示,態記憶體m與任何二核的快取記憶體。例 如,快取圮體2 8 0是表示將來自執令的結果寫入的 一部份記憶體系統2 7 〇。快取記曰 置在如同處理 器102的相同晶片上,或它可放置Γ一0分開的晶片上。 1247986 -- 案號89121056_年月日 倐正_ 五、發明說明(1〇) 對於處理器1 〇 2的揭露具體實施例而言,每個執行核心 1 1 〇可劃分成一拾取(F E T )級2 1 0、一解碼(D E C )級2 2 0、一 暫存器(REG)級2 3 0、一執行(ΕΧΕ)級2 4 0、一偵測(DET)級 250、及一釋回(ret)級260。一或多個指令可在FET級210 而從記憶體系統2 7 0取回。取回的指令可在DEC級2 2 0解碼 成#〇ps,而且來源運算元可在REG級230透過//〇ps指定。 #〇ps是在ΕΧΕ級240透過取回的運算元執行,而且由 # ops (s)所發生的任何異常會在DET級2 5 0發生。如果沒有 異常偵測到,// 〇 p s便可在R E T級2 6 0釋回。對於揭露的具 體實施例而言,來自釋回#〇pS(s)的結果可藉由釋回的通 道2 6 4而寫入快取記憶體2 8 0。 在此討論中,指令、指令群、與句集指令可交換使,如 同是// op與指令字。後者可參考由處理器的執行單元所確 認的指令。前者能以指令提供給處理器的形式而參考指 令。對於一些具體實施例而言,在這些實體之間可能沒有 或較小的差異。 處理器1 0 2的具體實施例可包括一缓衝器,以自後端級 (DEC、REG、ΕΧΕ、DET 與RET 或REG、ΕΧΕ、DET 及RET )去耦 合前端級(FET或FET與DEC)。緩衝器可暫時儲存拾取(或拾 取及解碼)去搞合指令。此允許前端持續操作,即使後端 操作停頓或延遲。如果前端操作延遲,它亦允許後端操作 處理。處理器1 〇 2的一具體實施例係採用在多餘模式所伯 測更正錯誤的一去耦合緩衝器。 本發明不需要將處理器1 0 2劃分成一特殊組的管線級。 例如,一揭露的級可細分成兩或多個級,以說明時序問題
O:\66\66756-940323.ptc 第15頁 1247986
1j n的處理器、時脈加速。或者,兩或多個級可組 "早一級。其他具體實施例可或不可採用一去耦合緩 U。為其他具體實施例包括能以非順序處理指令的硬 ,。揭鉻的管線只可提供操作如何在一處理器劃分而使 在本發明的一範例。 如同時顯^有關每個執行核心110是狀態/控制(s/c)暫 = 、資料暫存器2 3 8、及一資料快取記憶體。s/e 存斋2 3 4可儲存控制執行核心丨丨〇操作的資訊。例如,s / c 暫存器2 3 4典型係包括CSR 12〇(及CSB 124)。資料暫存器 2 3 8可~在執行核心丨丨〇儲存由各種不同資源使用的運算元二 而且資料快取記憶體244可緩衝在記憶體系統2 7〇與在執 核心1 1 0的其他資源之間的運算元。資料快取記憶體2 4 4 將運算元提供給資料暫存器2 3 8,以執行在ΕχΕ級24〇的資 ,、或兩者,其係決定在時序限制。對於本發明的一具體 實施例而言,每個執行核心丨丨〇可提供s/c暫存器2 34、資 料暫存器2 3 8、與快取記憶體244的一些奇偶檢驗保護形 式0 當處理器1 0 2是在多餘模式時,執行核心丨丨〇 ( a )和丨j 〇 (b)可在鎖定步驟同步相同指令的操作。在分離模式中, 執行核心1 1 0 ( a )和1 1 0 ( b )可在不同指令上獨立操作。同如 上述,處理器1 0 2的各種不同具體實施例可在分離模式支 援在執行核心1 1 0 ( a )和1 1 〇 ( b )之間的不同層級協調,如圖 2 A的虛線箭號所示。例如,如果處理器丨0 2在分離模式的 操作如同單一晶片SMP系統,在執行核心1 1 〇 ( a )和i j 〇 ( b ) 之間對的協调需要會在核式改變期間發生。對於處理琴
O:\66\66756-940323.ptc 第16頁 1247986 _案號89121056_年月日 修正__ 五、發明說明(12) 102的其他具體實施例而言,執行核心110(a)和110(b)可 處理緊密耦合的處理器。這些具體實施例可在S / C暫存器 2 3 4 ( a )和2 3 4 ( b )、資料記錄2 3 8 ( a )和2 3 8 ( b )、與資料快取 記憶體244(a)和244(b)之間支援一些共用資料、及在不同 管線級之間的一些操作協調。 圖2 B係顯示分別在多餘模式與分離模式可將指令提供執 行核心 110(a)、110(b)的 FET 級 210(a)、210(b)之一具體 實施例。每個FET級21 0係包括一指令指標(IP) -選擇WX 212及耦合至DEC級2 2 0的一指令快取記憶體214。S/C暫存 器2 3 4係包括一 I P暫存器2 3 6,該I P暫存器可透過軟體而初 始化,以表示要執行的下一指令。此外,FET級2 10(b)包 括在快取記憶體214(b)輸出上的一 NWX216 〇MUX 216可透 過CSBs 1 24至AND閘2 1 8控制。對於本發明的一具體實施例 而言,指令快取記憶體2 14可透過例如ECC的一以奇偶檢驗 為基礎之方法保護。 MUX 212可在來自各種不同來源的資料輸入上接收IPs, 其包括IP暫存器236。對信號的反應在它的控制輸入,MUX 2 1 2可選取一 I P來表示從快取記憶體2 1 4所拾取的下一指 令。在分散的模式中’CSBs 124可設定成〇,而且mux 216 可傳送由指令快取記憶體2 1 4 ( b )所提供的指令。在此模式 中’ I P暫存器2 3 6 ( a )和2 3 6 ( b )可獨立初始化及更新,而且 快取記憶體2 1 4 ( a )和2 1 4 ( b )可將對應的指令分別提供給 DEC級220(a)和220(b)。在多餘模式中,csBs 124可設定 成1 ,而且M U X 2 1 6可將指令從快取記憶體2 1 4 ( a )提供給 DEC 級220(b) 〇
O:\66\66756-940323.ptc 第17頁 1247986 __案號 89121056 _年月_a__ 五、發明說明(13) FET級2 1 0的一另一具體實施例不採用MUX 2 16。相反 地,I P暫存器2 3 6 ( a )、2 3 6 ( b )及快取記憶體2 1 4 ( a )、2 1 4 (b)可被初始化成多餘模式的相同狀態,而且包括快取記 憶體2 14的FET級210可在鎖定步驟操作。在處理器設計及 具有此揭露優點的技藝中熟諳此技者可認識到在F E T級2 1 0 上的其他變化,這些變化根據處理器1 〇 2操作的執行模式 而用來實施執行核心1 1 0的獨立鎖定步驟。 圖2 C係根據本發明而顯示檢查單元1 3 〇的一具體實施例 方塊圖。檢查單元1 3 0的揭露具體實施例係包括’,η π個比較 器 290(1)-290(η) 、一 OR 閘 294、及一 AND 閘 298。一 比較器 2 9 0可提供給在執行核心1 1 〇的每個實施單元。例如,處理 器1 0 2的一具體實施例包括每個在執行核心1丨〇的E X e級的 一整數執行單元(I E U )、一浮點執行單元(F P U )、一記憶體 執行單元(MEU)、及一分枝執行單元BRU。對於此具體實施 例而言,檢查單元1 3 0係包括4個比較器2 9 0。比較器2 9 0 (1)、290(2)、290(3)、和290(4)可分別監督來自執行核 心110(a)和110(b)的 IEUS、FPUS、MEUS、和BRUS 輸出。 對於檢查單元1 3 0的揭露具體實施例而言,當執行結果 提供給它的輸入匹配時,每個比較器2 9 0可產生一邏輯值 0,而且當執行結果不匹配時,邏輯值是1。對於檢查單元 1 3 0的一具體實施例而言,比較器2 9 0可自我檢查比較器。 當任何比較器2 9 0表示它對應的執行結果差異時,OR閘2 9 4 可產生一邏輯值1。當AND閘298啟動時,OR閘294的輸出可 當作一ERROR信號使用。對於揭露的具體實施例而言,當 CSBs 124皆設定成1 ,亦即當處理器102是在多餘模式時,
O:\66\66756-940323.ptc 第18頁 1247986 _案號 89121056_年月日__ 五、發明說明(14) 此便會發生。 在處理器設計與具有此揭露利益的技藝中熟諳此技者將 可認知到檢查單元1 3 0的其他變化,其可在處理器1 0 2是在 多餘模式時監督執行核心1 1 0的結果。 本發明係提供可獨自或以硬體與軟體為基礎之恢復機構 所實施的一以韌體為基礎之恢復機構,以便在多餘模式偵 測到差異時可使處理器恢復成一無錯誤狀態。本發明所針 對的軟體錯誤不可能同時在兩執行核心1 1 0發生。在檢查 單元1 3 0所偵測的執行結果之間的一不同可能由於其中一 執行核心1 1 0的電路具有一軟體錯誤1 1 0。例如暫存器檔 案、快取記憶體、閂閘等的儲存結構是特別易受到這些錯 誤的影響。這些結構可儲存在管線的各種不同點上表示運 算元值、指令、或跳躍的電壓位準。本發明可提供一機 構,以便當一差異在執行核心所產生的結果之間偵測到 時,可恢復在多餘模式操作之一處理器執行核心的完整 性。 根據本發明的一具體實施例,當一差異在多餘模式中由 處理器的兩執行核心所產生的結果之間偵測到時,一以韌 體為基礎之恢復常式便可存取。錯誤恢復常式可使處理器 改變分離模式,在此模式中,每個執行核心可檢查來自它 執行資源有關錯誤的資料,並且可將非錯誤的資料儲存到 一指定記憶體位置。錯誤恢復常式可透過使用非錯誤的資 料初始化執行核心,並且將控制送回給中斷的程式執行 緒。對於本發明的一具體實施例而言,所檢查的執行資源 是奇偶檢驗為導向的儲存結構。足夠的處理器狀態資料可
O:\66\66756-940323.ptc 第19頁 1247986 修正 月 曰 ^^^9121056^ 五、發明說明(15) 以初始化兩執行核心,用以持續處 從非錯誤的資料恢復 理中斷的程式執行緒 一以韋刃體為基磁 ^ 雜的恢復機構。泛此:φ式的使用允許處理器實施更複 恢復機構更能說明^ ί f能比藉由微碼或以硬體為基礎之 夕卜,以動體為此 統…的適以:例如糸 J 具體只%例而言,錯誤恢指堂4 , i ; n M C ^ ^ ^ ^ mU i I :: 触觸' 或者,如果硬體機構失敗,處理器才可蘇一 一硬體恢復機構先嘗試說明差異,及觸發錯誤恢復曰 式。。硬體恢復機構包括例如,使用偵測到差異的指令 而操控執行核心或部份執行核心,以重新執行指入二:° 圖3係根據本發明而表示一方法3 〇 〇的流程圖,^二 軟體錯誤。當偵測到一錯誤3丨〇而處理器是以多餘 作時,方法3 0 0便可開始。錯誤可透過第一及第二執二二 心所產生結果之間的差異而表示。當偵測到錯誤3丨〇 =广 處理器可3 2 0跳越到一錯誤恢復常式(ERR )。此可 $ ’ 觸發一MC及藉由一結合的向量表而使處理器成為err達乂 成。
ERR 3 3 0可使處理器從多餘模式(RM)改變成分離 (SM )。對於方法3 0 0的一具體實施例而言,每個執行二、、 是以分離模式操作到,以便將非錯誤的資料從它的奇H
案號 8912105R 1247986 修正 曰 月 五、發明說明(16) 驗保護儲存3 4 0結構儲存到一指定的記憶體位置。非錯誤 的資料可透過掃描在奇偶檢驗錯誤的奇偶檢驗保護資源中 的資,、或透過將資料從這些資源複製到一記憶體位置及 掃描奇偶檢驗錯誤的複製資料而可確認。當兩執行核心 3 5 0完成他們的資料儲存時,儲存的資料3 6 〇便可調解,以 提供一非錯誤組的處理器狀態資料。對於方法3 〇 〇的另一 具體實施例而言’只有確認在它儲存結構3 4 〇中沒有錯誤 資料的執行核心可將它的資料儲存到指定的記憶體位置。 處理Is 3 7 0可返回多餘模式,執行核心3 8 〇可透過使用恢復 的處理器狀態資料而開始,而且中斷的處理緒可重新開始 3 9 0 〇 對於本發明的一具體實施例而言,在軟體控制下,處理 器1 0 2可例如藉由模式改變指令而在多餘與分離模式之間 改變。對於本發明的另一具體實施例而言,處理器1 〇 2可 藉由一硬體機構改變。 在读測到一差異之前,處理器是在多餘模式,而且執行 核心是在鎖定步驟執行。當偵測到一差異時,錯誤恢復常 式可透過將一切換至分離模式指令(SW — SM)提供給每個執 =核心而實施模式改變。在多餘模式中,這些指令是在鎖 定步驟以兩執行核心的管線階段實施,當指令釋回 理态便改變分離模式。如此。不需要同步於改變成分二 式的執行核心。只要處理器是在分離模式,每個執行核心 便可獨立執行E R R的資料恢復操作。 / 當執行核心完成它的資料恢復操作時,處理器 離模式改變回到多餘模式,以持續中斷的程式執行緒。&
O:\66\66756-940323.ptc 第21頁 1247986 _案號89121056_年月日__ 五、發明說明(17) 於本發明的一具體實施例而言,此改變可透過在每個執行 核心中執行一切換至多餘模式指令(SW_RM)而在各個階段 實施。上不同階段的實施可適於執行核心完成他們資料儲 存操作時的不同。 對於揭露的具體實施例而言,SW_RM可將一執行核心改 變成一π預備好狀態π ,例如CSB(b)124=l ,在一第一階 段。在第二階段,一SW_RM指令可使另一執行核心改變成 一 π預備好狀態”,例如C S B ( a ) = 1。當兩執行核心到達預備 好狀態時,例如PSB = CSB (a) 及CSB (b),處理器便返 回多餘模式。第一及第二階段可整個(同時改變)、部份、 或完全不(連續改變)重疊,其決定在用來排程模式改變指 令的演繹法。 在處理器從分離模式改變成多餘模式之前,準備好狀態 允許執行核心同步。對於本發明的另一具體實施例而言, 同步可藉由一硬體機構實施。例如,當偵測到一常式結束 情況時,第一執行核心便改變成一準備好狀態,而且當第 一執行核心完成它的改變時,第二執行核心便可改變成準 備好狀態。隨著軟體控制模式改變,在處理器改變回到多 餘模式之前,準備好狀態便允許執行核心會合。 圖4係描述透過一執行核心實施一方法4 0 0以儲存非錯誤 資料的具體實施例。例如,方法4 0 0表示透過改變分離模 式的一核心實施所實施的一部份ERR。如上述,ERR可透過 一機器檢查完成,該機器檢查可藉由一結合的向量表格而 將處理器的控制改變成E R R。E R R可使處理器從多餘改變成 分離模式,此允許每個執行核心可獨立存取及實施由圖4
O:\66\66756-940323.ptc 第22頁 丄247986 五 8912UKg 發明說明(18) ^<1_日 所表示的資料檢查與 根據揭露的方法,二二二式。 要存結構包括 ::J結構41〇可被沖掉。非 =、暫存器、與儲存構 f,結構狀態資料的快取記憶 J。it些結構包括L〇“2存結構典型不是奇偶檢 铩、、友衝、進階負荷追 ,、貧料快取記憶體、分枝目 例。 、、’其係決定在處理器具體實施 資料暫存裔棺案的内容 禾找到奇偶檢驗錯誤43〇,次^檢查奇偶檢驗錯誤。如果 製到一指定的記憶體位置。貝料暫存器檔案的内容44 0可複 核心共用的一記憶體位士述,此可以是與另一執行 心的一記憶體位置。如果 ^匕可以是保留給特殊執行核 資料可從資料暫存哭 制一奇偶檢驗錯誤4 3 0,沒有 可從資料暫存器檔ϋ製後‘。或者,只有非錯誤的資料 C/S暫存器槽牵& 如上述的核心狀態暫存、二,:,偶檢驗,誤。這些包括例 各種不同暫存哭 ^ 諸存有關目前執行緒的資訊之 暫存器轉換查看摘置缓衝⑽)之轉換 到,C/S暫存哭/荦可47偶=驗錯誤4 60在C/S暫存器權案找 器檔案。或上口 2檢驗錯誤’沒有資料可從C/S暫存 製。 八有非錯誤的資料可從C/S暫存器檔案複 體可實施以勃體製作的選取快取記憶 元,但是此可在产理σ。、由雖然快取記憶體仍然可儲存ECC位 地 為'中除去對E C C更正硬體的需要。對
五、發明說明(19) 一 1247986 案號 89121056 於這些具體實施例而言,1和2位元錯誤4 正。如果ECC是以硬體實施,方塊4心4二可:由繼更 的錯誤更正,執行核心4 9 0便會跳躍到―。等;要:貞測 只要每個執行核心已執行方法4 〇 〇, 二 便只包含非錯誤的資料。軟體錯誤的统、己憶體位置 明顯不可能同時在兩執行核心發生錯誤2 =果是 結果,資料除存程序可提供足夠的非錯 ^ ^。 以…執行核心,並且重新開始中斷的;ΪΪ; 本發,不需要以任何特殊的順序沖掉或 例如,貧料暫存器檔案可在C/S暫存器檔案之德儲存^構。 且非重要性檔案可在處理的任何方便時〃 欢一而 序可獨自提供用於說明目的。 m中掉。上迷的順 除7接將/錯誤的資料儲存在一指定的記憶體位置之外, ERR可。挺ί、一機構,以調解儲存的資料,並且使用足 非錯誤的處理器狀態資料提供每個執行核心, 中斷的程式執行緒。 里研開始 圖5 Α是表示在一雙執行核心處理器中用以調解由每個執 行核心所儲存資料的一機構方塊圖。執行核心丨丨〇 ( b )可實 施ERR/+以便它非錯誤的資料複製(1 )到在記憶體系統5〇〇貝 的一指定位置5 1 〇 (b)。執行核心1丨〇 (a)可實施ERR,以便 將它作錯誤的資料複製(2 )到一指定的記憶體位置5 1 〇 (a ) °對於範例機構而言,在執行核心丨丨〇 ( b )的儲存結構 中的軟體錯誤會留下不完全組的處理器狀態資料的位置
!247986 修正 曰
----~^M^89121Q5R 月 、發明說明(20) _ 5 1 0 ( b )。發生、力右* 一完全組的虎二π可偶檢驗錯誤的執行核心1 1 0 ( a ),可將 此,,,完全,,$ 一 Γ狀態資料複製(2)到位置510 (a)。在 102重ί 5 ‘热二部^份的處理器狀態資料,其足以使處理器 將它的非錯I次仃吐中…斷的程式執行緒。當執行核心110(b) 要更新的L資^ Γ複製(1)到記憶體位置510 (b)以維持需 的錯誤資料#二=錄時,在執行核心110(b)的儲存結構中 只竹1史口τ追縱0 51 (KM 將非錯誤的資料從位置510 (a)複製(3)到位置 新開始處理器1 0 2的執行核心。例如,當執行核心11 0 (b )決定執行核心1 1 〇 ( a)完成它的複製操作,它便可將資 料從位置5 1 〇 ( a )複製到位置5 1 0 (b ),而只有這些資料區老 係對應在它結合儲存結構的錯誤資料。此資料調解機構^ 在記憶體5 0 0中提供雨組的處理器狀態資料,然後 < 用來 分別開始(4)和(5)’執行核心11〇U)和U〇(b)。初始化(4) 和(5)可在分離模式透過每個±執行核心110個別完成,或〒 在以^置51。⑴複製⑺到記 憶體位置5 i心;的部份ERR之广严的資料調解二構杳可 寫二…*構。此可在恢復期謝 狀料中產生的-軟體錯誤使兩執行心 16\WV5@f料與調解機構流程圖,此係對應例女 )。此可提供一第二完全組的處理器狀態資料,用以 ^新開始處理器1 0 2的執行核心。例如,當執行核心11 〔b )決定執行核心1丨〇 ( a )完成它的複製操作,它便可將買 料從位置5 1 〇 ( a )複製到位置5 1 0 ( b ),而只有這些資料區塊 係對應在它結合儲存結構的錯誤資料。此資料調解機構可
O:\66\66756-940323.ptc 1247986 _案號89121056_年月曰 修正__ 五、發明說明(21) 圖4的方塊4 9 0。實施資料與調解ERR部份之一處理器可決 定另一執行核心是否完成它的資料儲存操作(處理方塊 6 1 0 )。當這些操作完成時,執行核心可決定它是否需要更 新它的儲存資料(處理方塊6 2 0 )。 對於方法6 0 0的一具體實施例而言,偵測到在它儲存結 構中的錯誤資料之偵測可透過使用來自另一執行核心記憶 體位置的對應資料更新它的儲存資料(處理方塊6 3 0 )。例 如,執行核心可儲存在它儲存操作期間錯誤發生的資料區 塊之一表示。此執行核心然後可使用這些表示而從另一執 行核心的指定記憶體位置的適當記憶體位址取回非錯誤資 料。偵測到沒有錯誤貧料的執行核心會等待另一^執行核 心,以在處理方塊6 3 0中完成它的更新。然後檢查兩個執 行核心是否準備好(處理方塊6 4 0 )。若未準備好,該處理 器在處理方塊6 4 0中等待。否則,該處理器以調解的資料 (處理方塊6 5 0 )初始化該等執行核心,並且返回冗餘模式 (處理方塊6 6 0 )。方法6 0 0的一另一具體實施例可在分離模 式初始化執行核心,然後返回多餘模式。 圖5 B係表示資料調解的另一機構。對於此機構而言,兩 執行核心1 1 0 ( a )和1 1 0 ( b )可分別將其非錯誤的資料寫入 (1 )和(2 )在相同記憶體位置5 2 0的對應記憶體位置。對於 機構的一具體實施例而言,只有沒有錯誤資料的執行核心 可將所有它的處理器狀態資料寫入記憶體位置5 2 0。偵測 到在儲存結構中錯誤資料的執行核心不會將錯誤資料複製 到記憶體位置5 2 0。 在圖5 B的機構之另一具體實施例可將資料從執行核心寫
O:\66\66756-940323.ptc 第26頁 1247986 _案號89121056_年月曰 修正_ 五、發明說明(22) 入,其在它結合的記憶體結構中未偵測到錯誤資料,並且 可跳越另一執行核心的儲存步驟,即是包括錯誤資料的一 執行核心。在任何情況,複製到位置5 2 0的處理器狀態資 料是完成的,而且可分別寫回(3 )和(4 )到執行核心1 1 0 ( a ) 和1 1 0 ( b ),以重新開始其中斷的程式執行緒。既然只有一 組處理器狀態資料是在圖5 B的資料調解機構維持,在恢復 期間於此資料組的一軟體錯誤不能由一簡單的結果比較偵 測。 對於本發明上述的具體實施例而言,錯誤恢復可在分離 模式使用處理器實施,以允許每個執行核心可獨立識別在 它結合儲存結構中的任何錯誤。當多餘執行不能用來偵測 軟體錯誤時,它亦可能在這些錯誤恢復操作期間發生軟體 錯誤。對於高可信度系統而言,甚至軟體錯誤的此有限制 弱點可能太大。 對於本發明的一具體實施例而言,在分離模式操作期 間,每個執行核心的執行資源可配置以兩或多個邏輯串列 平行操作。當每個執行核心獨立實施ERR時,在每個執行 核心内的邏輯定義執行串列可從ERR多餘地實施指令。對 於此具體實施例而言,來自E R R的指令可在每個執行核心 内複製,並且傳送給不同的執行串列。不同執行串列所產 生的結果可比較,以便在ERR指令處理時決定一軟體錯誤 是否發生。 圖7是包括此内部多餘特徵之一執行核心7 1 0的具體實施 例方塊圖。執行核心7 1 0之揭露的具體實施例係包括一指 令快取記憶體(I快取記憶體)714、解碼或散佈單元7 2 0、
O:\66\66756-940323.ptc 第27頁 1247986 __案號89121056__年月日_^_ 五、發明說明(23) 一暫存器檔案730、第一及第二執行串列740(a)和740 (b)、一檢查單元760、及一釋回單元770。在下列的討論 方面,執行串列740(a)和740(b)的參考並未標示,除非要 避免不明確。在可複製的執行核心7 1 0中例如構成執行串 列的執行單元7 4 0之其他資源參考可同樣處理。 對於揭露的具體實施例而言,每執行串列7 4 0係包括一 分枝執行單元(BRU)752,一整數執行單元(IE10754、一記 憶體管理(載入/儲存)單元(MW) 7 5 6、及一浮點單元(FPU) 7 5 8 ( —般的”執行單元”)。執行核心7 1 〇的不同具體實施例 可包括不同類型的執行單元與數目,而不致於違背本發明 的範圍。例如,I n t e 1 ®公司的M e r c e d處理器可採用包括3 個分枝執行單元的一分枝執行單元。個別顯示的執行串列 7 4 0是以分離模式描述他們的邏輯組織,不是在不同的執 行資源之間反映任何實際的分離。 執行核心7 1 0的其他具體實施例不可以複製所有的執行 單元7 5 0或不可以複製某些執行單元的指令。例如,分枝 執行單元需要用以支援的重要處理器資源,而且可透過未 複製B R U 7 5 2而儲存相當的晶粒區域。此可透過在圖7的 BRU 752(b)周圍的虛線方塊表不。在此情況,分枝指令不 可多餘地執行,或另一機構可採用以檢查他們的執行:例 如,分枝指令可連續複製及執行。同樣地,複製的載入與 儲存指令可在H R模式使記憶體系統的頻寬飽和。在此情 況’多重MMUs 756可實施,以適於在一指令處理的多重載 入及/或儲存操作,但是個別的載入/儲存操作不能在HR模 式複製這些指令。類似配置可用於其他的執行單元750與、
O:\66\66756-940323.ptc 第28頁 1247986
」快取記憶體714可明的精神。 早兀*可將他們藉由暫存器θ ; $給解碼、單元72。,該解碼
89121ORR 、發明說明(24) 指令類型,而不致於 兀。暫存器檔案7 3 0係句°。括曰次w 〇而傳送給適當的執行單 態(C/S)暫存器7 3 4、W括貝料暫存器檔案7 3 2、控制/狀 暫存器檔案7 3 2可提供 ^存^重新命名單元738。資料 750之整數與浮點運算。^ ^二用於例如乘以執行單元 暫存器識別符映射νΛ〜7= 不同執行資;3狀行核心710操作及各種 施例而言,當處理哭甘乂八』^執仃核心71 〇的一具體實 相ρη沾扣人 。口疋在刀離模式時,發送單元7 2 0可將 單給虫執行串列?4〇(a)和740 (b)。例如,發送 相同指令的跳躍)的供給適當的執•曰”由戈末 ^40(3)和740 (1〇所產生的結果可透過檢查單元?6Q比 較,而且一錯誤可表示執行結果是否不同。在多餘模式 =,執行串列74 0 (a)和740 (b)可獨立控制,以處理不同的 才曰令,而且多餘可透過在另一執行核心上執行相同指令而 提供。當執行核心710以分離模式操作時,它便可提供執 行串列層級多餘,以保護處理器發生軟體錯誤。包一執 行核心川之一處…具體實施例已軟在體美國所二^ 利案號09/470, 098 名稱"Microprocessor With High
Reliability Operating Mode"中詳細討論 〇 如此所揭露之一以韌體為基礎的機構可用於更正一雙核
O:\66\66756-940323.ptc 第29頁 1247986 _案號 89121056_年月日__ 五、發明說明(25) 心處理器的軟體錯誤,該雙核心處理器可在多餘執行模式 與分離執行模式之間改變。在以多餘模式執行之一程式執 行緒偵測到一錯誤時,處理器便可改變成分離模式。在分 離模式中,一執行核心可在它的儲存結構識別非錯誤的處 理器狀態資料,並且將此非錯誤的資料複製到一指定的記 憶體位置。非錯誤的資料可調解而提供足夠的處理器狀態 資料,以重新開始中斷的程式執行緒執行。處理器可返回 多餘執行模式,該等執行核心可使用處理器狀態資料初始 化,並且重新開始中斷的程式執行緒。在多餘模式與分離 模式之間的改變可藉由轉變指令實施。 揭露的具體實施例已對本發明的各種不同特徵做描述。 審閱此揭露處理器設計利益的習於此技者可認知到揭露的 具體實施例之變化與修改,而不致於違背在文後申請專利 的精神與範圍。
O:\66\66756-940323.ptc 第30頁 1247986 案號 89121056 曰 修正 圖式簡單說明 圖式元件符號說明 1 02 處理 104 非揮 106 動態 108 系統 110(a) 執行 110(b) 執行 12 0(a) 核心 120(b) 核心 12 4(a) 核心 124(b) 核心 128 處理 130 檢查 140 匯流 190 常式 210(a) 拾取 210(b) 拾取 212(a) 多工 212(b) 多工 214(a) 快取 214(b) 快取 216 多工 218 及閘 2 2 0 (a) 解碼 2 2 0 (b) 解碼 器 發性記憶體 記憶體 邏輯 核心 核心 狀態暫存器 狀態暫存器 狀態位元 狀態位元 器狀態位元 單元 排介面 級 級 器 器 記憶體 記憶體 器 級 級
O:\66\66756-940323.ptc 第31頁 1247986 _案號89121056_年月日_修正 圖式簡單說明 2 3 0 (a) 暫 存 器 級 2 3 0 (b) 暫 存 器 級 2 3 4 (a) 控 制 暫 存 器 2 3 4 (b) 控 制 暫 存 器 2 3 6 (a) IP 暫 存 器 2 3 6 (b) IP 暫 存 器 2 3 8 (a) 暫 存 器 檔 案 2 3 8 (b) 暫 存 器 檔 案 2 4 0 (a) 執 行 級 240(b) 執 行 級 2 4 4 (a) 資 料 快 取 記 憶 體 244 (b) 資 料 快 取 記 憶 體 2 5 0 (a) 偵 測 級 2 5 0 (b) 偵 測 級 2 6 0 (a) 釋 回 級 2 6 0 (b) 釋 回 級 2 6 4 (a) 釋 回 通 道 2 6 4 (b) 釋 回 通 道 270 記 憶 體 系 統 280 快 取 記 憶 體 2 9 0 ( 1 )〜29G(n) 比 較 器 294 或 閘 298 及 閘 500 記 憶 體 510(a) 位 置
O:\66\66756-940323.ptc 第32頁 1247986 _案號89121056_年月日 修正 圖式簡單說明 510(b) 位 置 520 記 憶 體 位 置 710 執 行 核 心 714 指 令 快 取 記 憶 體 720 解 碼 或 散 佈 單 元 730 暫 存 器 檔 案 732 資 料 暫 存 器 734 控 制/狀態暫存器 738 重 新 命 名 單 元 740(a) 執 行 串 列 740(b) 執 行 串 列 750(a) 執 行 單 元 750(b) 執 行 單 元 752(a) 分 枝 執 行 單 元 752(b) 分 枝 執 行 單 元 754(a) 整 數 執 行 單 元 754(b) 整 數 執 行 單 元 756(a) 記 憶 體 管 理 單 元 756(b) 記 憶 體 管 理 單 元 758(a) 浮 點 單 元 758(b) 浮 點 單 元 760 檢 查 器 單 元 770 釋 回 單 元
O:\66\66756-940323.ptc 第33頁

Claims (1)

1247986 _案號89121056_年月曰 修正_ 六、申請專利範圍 1 . 一種電腦系統,其包含: 一處理器,其具有第一及第二執行核心及一檢查單元, 當該處理器是在一分離模式時,該等第一及第二執行核心 可獨立處理指令,而且當該處理器是在一多餘模式時,可 在鎖定步驟處理相同的指令,而且當該處理器是在多餘模 式時,該檢查單元可比較來自第一及第二執行核心的結 果;及 一非揮發性記憶體,在該非揮發性記憶體中儲存一恢復 常式,可在該檢查單元偵測到一錯誤時,使處理器改變成 分離模式,該恢復常式可確認來自該等執行核心之其中至 少一者的非錯誤處理器狀態資料,並且使用該確認的處理 器狀態資料來初始化該等第一及第二執行核心。 2. 如申請專利範圍第1項之電腦系統,其中該錯誤恢復 常式可使該處理器返回該多餘模式。 3. 如申請專利範圍第1項之電腦系統,其中該錯誤恢復 常式可確認在與每個執行核心有關的選取儲存結構中的非 錯誤之處理器資料,將該非錯誤的處理器狀態資料複製到 一指定的記憶體位置,並且當該處理器進入分離模式時, 調解該複製的處理器狀態資料。 4. 如申請專利範圍第3項之電腦系統,其中該錯誤恢復 常式可在一會合狀態同步該等第一及第二執行核心,並且 使該處理器恢復成多餘模式。 5. 如申請專利範圍第1項之電腦系統,其中該電腦系統 可進一步包括一主記憶體,而且該恢復常式可將該處理器
O:\66\66756-940323.ptc 第34頁 1247986 _案號89121056_年月曰 修正__ 六、申請專利範圍 狀態資料儲存到該主記憶體系統的一無法快取部份。 6. 一種用以在多餘與分離模式中處理在可操作第一及 第二執行核心的一處理器中的軟體錯誤之方法,該方法包 含: 當該處理器是在該多餘模式操作時,可偵測一軟體錯 誤; 在每個執行核心上執行一錯誤恢復常式,以便儲存來自 與該等第一及第二執行核心有關的非錯誤資料;及 將處理器狀態資料從該儲存的非錯誤資料恢復。 7. 如申請專利範圍第6項之方法,其中執行該錯誤恢復 常式包含: 將該處理器從多餘模式改變成分離模式;及 將來自每個執行核心的非錯誤的資料儲存到一指定的記 憶體位置。 8. 如申請專利範圍第7項之方法,進一步包含: 調解該儲存的非錯誤資料,以恢復該處理器狀態資料; 及 使用該恢復的處理器狀態資料,以初始化該等第一及第 二執行核心。 9. 如申請專利範圍第8項之方法,其中調解該儲存的非 錯誤處理器狀態資料係包含: 確認在該等第一及第二執行核心之其中一者的錯誤處理 器狀態資料;及 使用來自該等第一及第二執行核心之其中另一者的該指
O:\66\66756-940323.ptc 第35頁 1247986 _案號89121056_年月曰 修正_ 六、申請專利範圍 定記憶體位置之非錯誤處理器狀態資料而更新與該等第一 及第二執行核心之其中一者有關的該指定記憶體位置。 10. —種可儲存由一雙執行核心處理器所執行指令之一 機器可讀媒體,以實施用以接收來自軟體錯誤之方法,該 方法包含: 當偵測到一軟體錯誤時,獨立改變該處理器以操作該等 雙執行核心; 在該等執行核心之其中每一者上執行一錯誤恢復常式, 以便從非錯誤的處理器狀態資料恢復一最小組的處理器狀 態資料;及 使用最小組的處理器狀態資料來初始化該等雙執行核心 之其中每一者。 11. 如申請專利範圍第1 0項之機器可讀媒體,其中初始 化該等雙執行核心之其中每一者係包含: 改變該處理器,以便在鎖定步驟操作該等雙執行核心; 及 將最小組的處理器狀態資料複製到該等雙執行核心之其 中每一者。 12. 如申請專利範圍第1 0項之機器可讀媒體,其中執行 一錯誤恢復常式包含:. 在每個執行核心上掃描奇偶檢驗保護儲存構成,以確認 非錯誤的處理器狀態資料; 將該非錯誤的處理器狀態資料儲存到與每個執行核心有 關的該等指定記憶體位置;及
O:\66\66756-940323.ptc 第36頁 1247986 _案號89121056_年月曰 修正_ 六、申請專利範圍 從該儲存的處理器狀態資料恢復最小組的處理器狀態資 料。 13. 一種電腦系統,其包含: 一處理器,其具有第一及第二執行核心,當該處理器是 在一多餘模式時,該等第一及第二執行核心是在鎖定步驟 操作,而且當該處理器是在一分離模式時,其可獨立操 作;及 一非揮發性記憶體,其中儲存一錯誤恢復常式,以便在 多餘模式偵測到一錯誤時,使該處理器改變成分離模式, 確認在每個執行核心中的非錯誤處理器狀態資料,及透過 使用從非錯誤的處理器狀態資料所恢復的一組處理器狀態 資料而使該處理器恢復成多餘模式。 14. 如申請專利範圍第1 3項之電腦系統,其中該錯誤恢 復常式可藉由一模式改變指令而使該處理器改變成分離模 式。 15. 如申請專利範圍第1 4項之電腦系統,其中在改變成 分離模式之後,每個執行核心可獨立執行一部份的錯誤恢 復程式,以確認及將與其儲存結構有關的非錯誤處理器資 料儲存到一指定的記憶體位置。 16. 如申請專利範圍第1 5項之電腦系統,其中該等執行 核心之其中一者可透過使用來自另一執行核心的該指定記 憶體位置之儲存的處理器狀態資料而更新來自其儲存結構 的錯誤資料。 17. 如申請專利範圍第1 6項之電腦系統,其中該錯誤恢
O:\66\66756-940323.ptc 第37頁 1247986 _案號89121056_年月曰 修正_ 六、申請專利範圍 復常式可透過一模式改變指令而使該處理器恢復成多餘模 式。 18. 一種電腦系統,其包含: 一處理器,其具有第一及第二執行核心,當該當處理器 是在一多餘執行模式時,可在鎖定步驟操作;當該處理器 是在一分離執行模式時,可獨立操作;及 一非揮發性記憶體,其中儲存可由該處理器所實施的指 令,以便在該處理器是在多餘執行模式時,可實施用以從 軟體錯誤恢復之一方法,該方法包含: 將該處理器改變成分離執行模式; 將來自每個執行核心的非錯誤處理器狀態資料儲存到一 指定的記憶體位置; 從儲存的非錯誤處理器狀態資料恢復一最小組的處理器 狀態資料;及 使用該最小組的處理器狀態資料來初始化每個執行核 心 〇 19. 如申請專利範圍第1 8項之電腦系統,其中恢復該最 小組的處理器狀態資料包含使用來自該等執行核心之其中 一者所儲存的非錯誤處理器狀態資料而取代來自該等執行 核心之其中一者的錯誤處理器狀態資料。 20. 如申請專利範圍第1 9項之電腦系統,其中該初始化 每個執行核心包含: 將該處理器改變成多餘執行模式;及 將該處理器狀態資料從指定的記憶體位置複製到其結合
O:\66\66756-940323.ptc 第38頁 1247986 _案號89121056_年月日 修正 六、申請專利範圍 的執行核心。
O:\66\66756-940323.ptc 第39頁 公告本 曰f 正/^^1247986
發明專利說明書 中文 用以更正軟體錯誤之韌體機構 Λ 發明名稱 英文 FIRMWARE MECHANISM FOR CORRECTING SOFT ERRORS 姓名 (中文) 1.龍淘郭 二 發明人 姓名 (英文) 1.NH0N TOAI QUACH 國籍 1.美國 住、居所 1 ·美國加州聖約瑟市費菲爾藍區路6522號 姓名 (名稱) (中文5 1·美商英特爾公司 姓名 (名稱) (英文) 1.INTEL CORPORATION 國籍 1.美國 申請人 住、居所 (事務所) 1·美國加州聖塔卡拉瓦?米遜大學路2200號 代表人 姓名 (中文) 1.F·湯姆士.當烈二世 代表人 姓名 (英文) l.l·'. THOMAS DUNLAP, JR. ❿
O:\66\66756-940323.ptc
第1頁
TW089121056A 1999-12-21 2000-10-09 Firmware mechanism for correcting soft errors TWI247986B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/469,963 US6625749B1 (en) 1999-12-21 1999-12-21 Firmware mechanism for correcting soft errors

Publications (1)

Publication Number Publication Date
TWI247986B true TWI247986B (en) 2006-01-21

Family

ID=23865722

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089121056A TWI247986B (en) 1999-12-21 2000-10-09 Firmware mechanism for correcting soft errors

Country Status (8)

Country Link
US (2) US6625749B1 (zh)
CN (2) CN101539875B (zh)
AU (1) AU1631801A (zh)
DE (1) DE10085324T1 (zh)
GB (1) GB2373900B (zh)
HK (1) HK1046573B (zh)
TW (1) TWI247986B (zh)
WO (1) WO2001046806A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI411955B (zh) * 2010-01-22 2013-10-11 Via Tech Inc 多核心微處理器及其除錯方法

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
US6802039B1 (en) * 2000-06-30 2004-10-05 Intel Corporation Using hardware or firmware for cache tag and data ECC soft error correction
US6728897B1 (en) * 2000-07-25 2004-04-27 Network Appliance, Inc. Negotiating takeover in high availability cluster
US7103639B2 (en) * 2000-12-05 2006-09-05 Hewlett-Packard Development Company, L.P. Method and apparatus for processing unit synchronization for scalable parallel processing
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US6708284B2 (en) * 2001-03-30 2004-03-16 Intel Corporation Method and apparatus for improving reliability in microprocessors
US6760653B2 (en) 2001-05-15 2004-07-06 Trw Inc. Electric power assisted steering system having a single integrated circuit with two processors
US6920579B1 (en) 2001-08-20 2005-07-19 Network Appliance, Inc. Operator initiated graceful takeover in a node cluster
US7730153B1 (en) 2001-12-04 2010-06-01 Netapp, Inc. Efficient use of NVRAM during takeover in a node cluster
US6954886B2 (en) * 2001-12-31 2005-10-11 Intel Corporation Deterministic hardware reset for FRC machine
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
US6971051B2 (en) * 2002-01-10 2005-11-29 Agilent Technologies, Inc. System and method of recovering from soft memory errors
US7086049B2 (en) * 2002-02-26 2006-08-01 International Business Machines Corporation Background code update for embedded systems
US7039828B1 (en) 2002-02-28 2006-05-02 Network Appliance, Inc. System and method for clustered failover without network support
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US20040136241A1 (en) * 2002-10-31 2004-07-15 Lockheed Martin Corporation Pipeline accelerator for improved computing architecture and related system and method
US7171452B1 (en) 2002-10-31 2007-01-30 Network Appliance, Inc. System and method for monitoring cluster partner boot status over a cluster interconnect
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7231489B1 (en) 2003-03-03 2007-06-12 Network Appliance, Inc. System and method for coordinating cluster state information
DE10317650A1 (de) * 2003-04-17 2004-11-04 Robert Bosch Gmbh Programmgesteuerte Einheit und Verfahren
US7739543B1 (en) 2003-04-23 2010-06-15 Netapp, Inc. System and method for transport-level failover for loosely coupled iSCSI target devices
US7260737B1 (en) 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7111196B2 (en) * 2003-05-12 2006-09-19 International Business Machines Corporation System and method for providing processor recovery in a multi-core system
US7278083B2 (en) * 2003-06-27 2007-10-02 International Business Machines Corporation Method and system for optimized instruction fetch to protect against soft and hard errors
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7593996B2 (en) * 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7581210B2 (en) 2003-09-10 2009-08-25 Hewlett-Packard Development Company, L.P. Compiler-scheduled CPU functional testing
US7287184B2 (en) * 2003-09-16 2007-10-23 Rockwell Automation Technologies, Inc. High speed synchronization in dual-processor safety controller
US7467191B1 (en) 2003-09-26 2008-12-16 Network Appliance, Inc. System and method for failover using virtual ports in clustered systems
US7206966B2 (en) * 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
CN100350389C (zh) * 2003-10-24 2007-11-21 英特尔公司 用于检测软错误的方法、设备和处理器
US7363544B2 (en) * 2003-10-30 2008-04-22 International Business Machines Corporation Program debug method and apparatus
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
CN100395722C (zh) * 2003-12-24 2008-06-18 华为技术有限公司 一种对控制系统异常状态信息进行保存的方法
US7444497B2 (en) * 2003-12-30 2008-10-28 Intel Corporation Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support
US20050193283A1 (en) * 2003-12-30 2005-09-01 Reinhardt Steven K. Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
US7370230B1 (en) * 2004-01-08 2008-05-06 Maxtor Corporation Methods and structure for error correction in a processor pipeline
US7340639B1 (en) 2004-01-08 2008-03-04 Network Appliance, Inc. System and method for proxying data access commands in a clustered storage system
US7966294B1 (en) 2004-01-08 2011-06-21 Netapp, Inc. User interface system for a clustered storage system
US8548429B2 (en) 2004-03-08 2013-10-01 Rafi Nehushtan Cellular device security apparatus and method
US7290169B2 (en) * 2004-04-06 2007-10-30 Hewlett-Packard Development Company, L.P. Core-level processor lockstepping
US7237144B2 (en) * 2004-04-06 2007-06-26 Hewlett-Packard Development Company, L.P. Off-chip lockstep checking
US7296181B2 (en) * 2004-04-06 2007-11-13 Hewlett-Packard Development Company, L.P. Lockstep error signaling
US8621029B1 (en) 2004-04-28 2013-12-31 Netapp, Inc. System and method for providing remote direct memory access over a transport medium that does not natively support remote direct memory access operations
US7328144B1 (en) 2004-04-28 2008-02-05 Network Appliance, Inc. System and method for simulating a software protocol stack using an emulated protocol over an emulated network
US7478263B1 (en) 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster
US7496782B1 (en) 2004-06-01 2009-02-24 Network Appliance, Inc. System and method for splitting a cluster for disaster recovery
GB0414293D0 (en) * 2004-06-26 2004-07-28 Ibm System and method for reducing contention in an environment using optimistic locks
US7409594B2 (en) * 2004-07-06 2008-08-05 Intel Corporation System and method to detect errors and predict potential failures
US7308605B2 (en) * 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
DE102004046288A1 (de) * 2004-09-24 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102004046611A1 (de) * 2004-09-25 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
US7353365B2 (en) * 2004-09-29 2008-04-01 Intel Corporation Implementing check instructions in each thread within a redundant multithreading environments
DE102004047363A1 (de) * 2004-09-29 2006-03-30 Siemens Ag Prozessor bzw. Verfahren zum Betreiben eines Prozessors und/oder Betriebssystems im Fall einer Störung
WO2006039710A2 (en) * 2004-10-01 2006-04-13 Lockheed Martin Corporation Computer-based tool and method for designing an electronic circuit and related system and library for same
US20060107116A1 (en) * 2004-10-25 2006-05-18 Michaelis Scott L System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US20080313384A1 (en) * 2004-10-25 2008-12-18 Ralf Angerbauer Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
US7356733B2 (en) * 2004-10-25 2008-04-08 Hewlett-Packard Development Company, L.P. System and method for system firmware causing an operating system to idle a processor
DE502005005286D1 (de) * 2004-10-25 2008-10-16 Bosch Gmbh Robert Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US7308566B2 (en) * 2004-10-25 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for configuring lockstep mode of a processor module
KR101017444B1 (ko) * 2004-10-25 2011-02-25 로베르트 보쉬 게엠베하 적어도 2개의 처리 유닛들을 갖는 컴퓨터 시스템에서 모드전환 및 신호 비교를 위한 방법 및 장치
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
WO2006045781A2 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
US20060149922A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Multiple computational clusters in processors and methods thereof
US7467325B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US20060184771A1 (en) * 2005-02-11 2006-08-17 International Business Machines Mini-refresh processor recovery as bug workaround method using existing recovery hardware
US7437599B2 (en) * 2005-02-15 2008-10-14 Maxwell Technologies, Inc. System and method for effectively implementing an immunity mode in an electronic device
US7971095B2 (en) * 2005-02-16 2011-06-28 Honeywell International Inc. Fault recovery for real-time, multi-tasking computer system
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
US8073899B2 (en) * 2005-04-29 2011-12-06 Netapp, Inc. System and method for proxying data access commands in a storage system cluster
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
WO2007018652A1 (en) * 2005-08-05 2007-02-15 Honeywell International, Inc. Distributed and recoverable digital control system
US8260492B2 (en) * 2005-08-05 2012-09-04 Honeywell International Inc. Method and system for redundancy management of distributed and recoverable digital control system
US7765427B2 (en) * 2005-08-05 2010-07-27 Honeywell International Inc. Monitoring system and methods for a distributed and recoverable digital control system
DE102005037236A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Vorrichtung und Verfahren zur Konfiguration einer Halbleiterschaltung
DE102005037230A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE102005037247A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037259A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Umschalten von Registersätzen
DE102005037246A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und einer Vergleichseinheit
US7669073B2 (en) * 2005-08-19 2010-02-23 Stratus Technologies Bermuda Ltd. Systems and methods for split mode operation of fault-tolerant computer systems
US7502957B2 (en) * 2005-09-09 2009-03-10 International Business Machines Corporation Method and system to execute recovery in non-homogeneous multi processor environments
US20070088979A1 (en) * 2005-10-14 2007-04-19 Pomaranski Ken G Hardware configurable CPU with high availability mode
US7502916B2 (en) * 2005-12-02 2009-03-10 Infineon Technologies Flash Gmbh & Co. Kg Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement
DE102005061394A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Fehlertolerantes Prozessorsystem
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US7873830B2 (en) * 2006-01-13 2011-01-18 International Business Machines Corporation Methods for coordinating access to memory from at least two cryptography secure processing units
US8090996B2 (en) * 2006-03-31 2012-01-03 Intel Corporation Detecting soft errors via selective re-execution
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US7444544B2 (en) * 2006-07-14 2008-10-28 International Business Machines Corporation Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US7793147B2 (en) * 2006-07-18 2010-09-07 Honeywell International Inc. Methods and systems for providing reconfigurable and recoverable computing resources
US8528102B2 (en) * 2006-10-06 2013-09-03 Broadcom Corporation Method and system for protection of customer secrets in a secure reprogrammable system
US7870395B2 (en) * 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US7890559B2 (en) * 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing
US7512772B2 (en) * 2007-01-08 2009-03-31 International Business Machines Corporation Soft error handling in microprocessors
US20080229134A1 (en) * 2007-03-12 2008-09-18 International Business Machines Corporation Reliability morph for a dual-core transaction-processing system
US7734947B1 (en) 2007-04-17 2010-06-08 Netapp, Inc. System and method for virtual interface failover within a cluster
US7958385B1 (en) 2007-04-30 2011-06-07 Netapp, Inc. System and method for verification and enforcement of virtual interface failover within a cluster
EP2181389A2 (en) * 2007-08-17 2010-05-05 Nxp B.V. Data processing with protection against soft errors
US8078942B2 (en) * 2007-09-04 2011-12-13 Oracle America, Inc. Register error correction of speculative data in an out-of-order processor
JP5299281B2 (ja) * 2007-09-25 2013-09-25 富士通株式会社 情報処理装置及び制御方法
CN101436138B (zh) * 2007-11-16 2013-04-10 苏州科达科技股份有限公司 一种用于软件升级且动态回滚的控制装置以及控制方法
US7809980B2 (en) * 2007-12-06 2010-10-05 Jehoda Refaeli Error detector in a cache memory using configurable way redundancy
US7996663B2 (en) * 2007-12-27 2011-08-09 Intel Corporation Saving and restoring architectural state for processor cores
US20090183035A1 (en) * 2008-01-10 2009-07-16 Butler Michael G Processor including hybrid redundancy for logic error protection
US7865770B2 (en) * 2008-01-10 2011-01-04 Advanced Micro Devices, Inc. Processor including efficient signature generation for logic error protection
WO2009090502A1 (en) * 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means
US8443227B2 (en) * 2008-02-15 2013-05-14 International Business Machines Corporation Processor and method for workaround trigger activated exceptions
GB2458260A (en) 2008-02-26 2009-09-16 Advanced Risc Mach Ltd Selectively disabling error repair circuitry in an integrated circuit
US7966536B2 (en) * 2008-04-11 2011-06-21 International Business Machines Corporation Method and apparatus for automatic scan completion in the event of a system checkstop
US8037350B1 (en) * 2008-04-30 2011-10-11 Hewlett-Packard Development Company, L.P. Altering a degree of redundancy used during execution of an application
US8373435B2 (en) 2008-09-30 2013-02-12 Freescale Semiconductor, Inc. Method and apparatus for handling an output mismatch
TWI379230B (en) * 2008-11-14 2012-12-11 Realtek Semiconductor Corp Instruction mode identification apparatus and instruction mode identification method
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
JP5344936B2 (ja) * 2009-01-07 2013-11-20 株式会社日立製作所 制御装置
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
US8375250B2 (en) * 2009-03-04 2013-02-12 Infineon Technologies Ag System and method for testing a module
US8688798B1 (en) 2009-04-03 2014-04-01 Netapp, Inc. System and method for a shared write address protocol over a remote direct memory access connection
US8560924B2 (en) * 2010-01-05 2013-10-15 International Business Machines Corporation Register file soft error recovery
US20110179255A1 (en) * 2010-01-21 2011-07-21 Arm Limited Data processing reset operations
US8051323B2 (en) * 2010-01-21 2011-11-01 Arm Limited Auxiliary circuit structure in a split-lock dual processor system
US8108730B2 (en) * 2010-01-21 2012-01-31 Arm Limited Debugging a multiprocessor system that switches between a locked mode and a split mode
US8412980B2 (en) 2010-06-04 2013-04-02 International Business Machines Corporation Fault tolerant stability critical execution checking using redundant execution pipelines
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US8943510B2 (en) * 2010-12-17 2015-01-27 Microsoft Corporation Mutual-exclusion algorithms resilient to transient memory faults
US8656398B2 (en) 2011-05-03 2014-02-18 Ericsson Television Inc Synchronization of workflows in a video file workflow system
CN104137072A (zh) * 2011-12-30 2014-11-05 英特尔公司 在多核心环境中管理硬件错误的方法和装置
JP2014063258A (ja) * 2012-09-20 2014-04-10 Renesas Electronics Corp 半導体集積回路装置及びマイクロコントローラ
US10423421B2 (en) * 2012-12-28 2019-09-24 Intel Corporation Opportunistic utilization of redundant ALU
US8977907B2 (en) * 2013-01-28 2015-03-10 Electro-Motive Diesel, Inc. Control system to identify faulty code modules
US20160004535A1 (en) * 2013-02-15 2016-01-07 Alistair Robertson Method of operating a multi-thread capable processor system, an automotive system comprising such multi-thread capable processor system, and a computer program product
US9891917B2 (en) * 2013-03-06 2018-02-13 Infineon Technologies Ag System and method to increase lockstep core availability
AT515454A3 (de) * 2013-03-14 2018-07-15 Fts Computertechnik Gmbh Verfahren zur Behandlung von Fehlern in einem zentralen Steuergerät sowie Steuergerät
US10235232B2 (en) 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
GB2533415B (en) * 2014-12-19 2022-01-19 Advanced Risc Mach Ltd Apparatus with at least one resource having thread mode and transaction mode, and method
US10296312B2 (en) * 2016-05-20 2019-05-21 Arizona Board Of Regents On Behalf Of Arizona State University Methods, apparatuses, and systems for zero silent data corruption (ZDC) compiler technique
US10002057B2 (en) 2016-06-03 2018-06-19 Nxp Usa, Inc. Method and apparatus for managing mismatches within a multi-threaded lockstep processing system
US11468439B2 (en) * 2017-01-12 2022-10-11 American Express Travel Related Services Company, Inc. Systems and methods for blockchain based proof of payment
US10176886B1 (en) 2017-07-07 2019-01-08 Seagate Technology Llc Multi-level data block error detection code
GB2567190B (en) * 2017-10-05 2020-02-26 Advanced Risc Mach Ltd Error recovery for intra-core lockstep mode
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation
US10466702B1 (en) * 2018-02-14 2019-11-05 Rockwell Collins, Inc. Dual independent autonomous agent architecture for aircraft
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection
US10628277B2 (en) 2018-03-29 2020-04-21 Arm Ltd. Device, system and process for redundant processor error detection
US11106466B2 (en) 2018-06-18 2021-08-31 International Business Machines Corporation Decoupling of conditional branches
US10831578B2 (en) 2018-09-28 2020-11-10 Nxp Usa, Inc. Fault detection circuit with progress register and status register
US10997029B2 (en) 2019-03-07 2021-05-04 International Business Machines Corporation Core repair with failure analysis and recovery probe
EP3726384B1 (en) * 2019-04-18 2022-01-05 Bayerische Motoren Werke Aktiengesellschaft Method and system for preserving consistency of states during fail-operational context switch
CN112015599B (zh) * 2019-05-31 2022-05-13 华为技术有限公司 错误恢复的方法和装置
FR3104278B1 (fr) * 2019-12-06 2021-11-19 Commissariat Energie Atomique Système informatique embarqué à bord d'un porteur mettant en oeuvre au moins un service critique pour la sûreté de fonctionnement du porteur
JP2023035739A (ja) * 2021-09-01 2023-03-13 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57122441A (en) 1981-01-22 1982-07-30 Toppan Printing Co Ltd Screen for gravure and its production
US4486826A (en) 1981-10-01 1984-12-04 Stratus Computer, Inc. Computer peripheral control apparatus
EP0306211A3 (en) 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
US4912707A (en) * 1988-08-23 1990-03-27 International Business Machines Corporation Checkpoint retry mechanism
ATE144058T1 (de) 1989-08-01 1996-10-15 Digital Equipment Corp Massenspeicherübertragung während der neusynchronisierung
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
US5504859A (en) 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
US5530802A (en) * 1994-06-22 1996-06-25 At&T Corp. Input sequence reordering method for software failure recovery
US6279119B1 (en) * 1997-11-14 2001-08-21 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6173351B1 (en) * 1998-06-15 2001-01-09 Sun Microsystems, Inc. Multi-processor system bridge
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US7028167B2 (en) * 2002-03-04 2006-04-11 Hewlett-Packard Development Company, L.P. Core parallel execution with different optimization characteristics to decrease dynamic execution path
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US8516179B2 (en) * 2003-12-03 2013-08-20 Digital Rna, Llc Integrated circuit with coupled processing cores
US7237144B2 (en) * 2004-04-06 2007-06-26 Hewlett-Packard Development Company, L.P. Off-chip lockstep checking
US7290169B2 (en) * 2004-04-06 2007-10-30 Hewlett-Packard Development Company, L.P. Core-level processor lockstepping

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI411955B (zh) * 2010-01-22 2013-10-11 Via Tech Inc 多核心微處理器及其除錯方法

Also Published As

Publication number Publication date
GB2373900B (en) 2004-12-29
CN101539875B (zh) 2012-04-11
CN1434941A (zh) 2003-08-06
HK1046573B (zh) 2005-05-06
WO2001046806A1 (en) 2001-06-28
US7134047B2 (en) 2006-11-07
US6625749B1 (en) 2003-09-23
CN100489801C (zh) 2009-05-20
HK1046573A1 (en) 2003-01-17
DE10085324T1 (de) 2002-12-05
GB2373900A (en) 2002-10-02
CN101539875A (zh) 2009-09-23
AU1631801A (en) 2001-07-03
US20040019771A1 (en) 2004-01-29
GB0215171D0 (en) 2002-08-07

Similar Documents

Publication Publication Date Title
TWI247986B (en) Firmware mechanism for correcting soft errors
US6615366B1 (en) Microprocessor with dual execution core operable in high reliability mode
US7478276B2 (en) Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
US7409589B2 (en) Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
US7340643B2 (en) Replay mechanism for correcting soft errors
US7373548B2 (en) Hardware recovery in a multi-threaded architecture
US8635492B2 (en) State recovery and lockstep execution restart in a system with multiprocessor pairing
US6751749B2 (en) Method and apparatus for computer system reliability
US6640313B1 (en) Microprocessor with high-reliability operating mode
US7243262B2 (en) Incremental checkpointing in a multi-threaded architecture
US6598122B2 (en) Active load address buffer
US7966538B2 (en) Microprocessor and method for detecting faults therein
US7308607B2 (en) Periodic checkpointing in a redundantly multi-threaded architecture
TW200416595A (en) On-die mechanism for high-reliability processor
TW200945025A (en) Processor including hybrid redundancy for logic error protection
KR100304319B1 (ko) 시간 지연 이중화 기술을 구현하는 장치 및 방법
JP4531060B2 (ja) 投機的メモリサポートを利用した冗長なマルチスレッディングシステムにおける故障検出のための外部メモリの更新管理
Li et al. Brief announcement: Detectable sequential specifications for recoverable shared objects
US20160065243A1 (en) Radiation hardening architectural extensions for a radiation hardened by design microprocessor
Tremblay High-performance fault-tolerant VLSI systems using micro rollback
US9063855B2 (en) Fault handling at a transaction level by employing a token and a source-to-destination paradigm in a processor-based system
Tamir et al. The UCLA mirror processor: A building block for self-checking self-repairing computing nodes
US20110167296A1 (en) Register file soft error recovery
Mühlbauer et al. A fault tolerant dynamically scheduled processor with partial permanent fault handling
US8793689B2 (en) Redundant multithreading processor

Legal Events

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