TWI443577B - 用於同步冗餘處理器之狀態歷史記錄儲存器 - Google Patents
用於同步冗餘處理器之狀態歷史記錄儲存器 Download PDFInfo
- Publication number
- TWI443577B TWI443577B TW098145098A TW98145098A TWI443577B TW I443577 B TWI443577 B TW I443577B TW 098145098 A TW098145098 A TW 098145098A TW 98145098 A TW98145098 A TW 98145098A TW I443577 B TWI443577 B TW I443577B
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- state
- instructions
- information
- storage
- Prior art date
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1691—Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/46—Multiprogramming arrangements
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
Description
本發明之揭示係有關資訊處理之領域,尤係有關資訊處理系統的錯誤減少之領域。
由於積體電路製造技術的改良持續提供了微處理器及其他資料處理裝置中之更大的集積度及更低的工作電壓,所以這些裝置的製造者及使用者愈來愈關心軟性錯誤(soft error)的現象。當阿爾發粒子及高能中子撞擊積體電路,且改變電路節點上儲存的電荷時,將發生軟性錯誤。如果電荷改變足夠大,則節點上的電壓可能自代表一邏輯狀態之一位準被改變為代表一不同的邏輯狀態之一位準,在此種情形中,該節點上儲存的資訊被毀壞。一般而言,當集積度增加時,軟性錯誤率將增加,這是因為當更多電路被整合到單一晶粒時,撞擊的粒子命中該晶粒中之一電壓節點的可能性將增加。同樣地,當工作電壓降低時,代表不同的邏輯狀態的該等電壓位準間之差異將減少,因而只需較小的能量即可改變電路節點上的邏輯狀態,且將產生較多的軟性錯誤。
阻擋會造成軟性錯誤的某些種粒子可能是困難的,因而資料處理裝置通常包含用來偵測且有時用來更正軟性錯誤之技術。這些錯誤減少技術包括冗餘。使用冗餘時,兩個或更多個硬體配置(hardware context)執行程式或指令流之一些相同拷貝。每一硬體配置可包含諸如多執行緒處理器(multithreaded processor)中之邏輯處理器、多核心處理器中之核心、多處理器系統中之完整處理器、或其中包含處理器之完整系統等的能夠執行指令流之任何硬體、系統記憶體、以及或有的輸入/輸出(Input/Output;簡稱I/O)裝置。比較該等兩個或更多個硬體配置之輸出,且如果該等輸出是不同的,則可動用一錯誤處理機構,以便決定是否發生了一錯誤,且(或)處理該錯誤。
在冗餘的某些實施中,該等兩個或更多個硬體配置係以鎖步(lock-step)之方式操作,意指:該等兩個或更多個硬體配置同時分別執行指令流中之相同指令。在冗餘的其他實施中,該等兩個或更多個硬體配置可執行指令流中之相同拷貝,但是並非以鎖步或相互同步之方式執行指令流中之相同拷貝,因而該等兩個或更多個硬體配置可能在同一時間分別執行了指令流中之不同的指令。若在該等硬體配置並非同步時傳送了一輸入或一中斷,則可能造成某一硬體配置的輸出不同於另一硬體配置的輸出,因而縱然並非因一實際的錯誤而造成該輸出不匹配,也可能導致該錯誤處理程式(error handler)被動用。
本發明揭示了使用狀態歷史記錄將各冗餘處理器同步之實施例。在一實施例中,一裝置包含兩個處理器、每一處理器之狀態儲存器、以及控制邏輯。每一處理器將執行相同的指令。該狀態儲存器將儲存該等處理器執行的每一指令之被壓縮的處理器狀態資訊。該控制邏輯將根據該狀態儲存器之各條目而使該等兩個處理器同步。
本發明說明了使用狀態歷史記錄將冗餘處理器同步之實施例。在本說明中,可能述及諸如處理器及系統組態等的許多特定細節,以便提供對本發明之更徹底的了解。然而,熟悉此項技術者應可了解:可在沒有這些特定細節之情形下實施本發明。此外,並未詳細示出某些習知的結構、電路、及其他特徵,以避免非必要地模糊了本發明。例如,並未提供對冗餘處理器的控制之完整說明,這是因為可在本發明的實施例中使用一些習知的方法。
如先前技術該節中說明的,可將冗餘用來減少資料處理裝置中之錯誤的影響。在冗餘的某些實施中,兩個或更多個處理器可執行一指令流之相同拷貝,但是並非以鎖步或相互同步之方式執行該指令流之相同拷貝,因而該等兩個或更多個處理器可能在同一時間分別執行了該指令流中之不同的指令。為了避免因該等處理器不同步時傳送一輸入或中斷而造成一錯誤處理程式的被動用,可在傳送該輸入或中斷之前先使該等處理器同步。
使該等處理器同步的一種方法是將該指令流分成一些連續的指令“量子”(“quanta”),其中每一量子由特定數目的指令所組成。可將一效能計數器或其他的機構用來計算指令引退的數目,並在每一量子結束時,造成一斷點(breakpoint)、回呼(callback)、或其他控制流事件。在每一此種量子斷點上,可使該等處理器同步,因而可正好在指令流的相同指令邊界上將一輸入或一中斷傳送到每一硬體配置。可在其中包含指令執行、單步執行(single stepping)、及斷點產生的一複雜組合之一特殊模式中運行每一處理器,而執行同步。
使各處理器同步之另一種方法是使用一客製化作業系統,其中每一處理器在接收到一中斷之後,將對指令流中之“會合”(“rendezvous”)點之一建議寫到冗餘控制邏輯中之一硬體暫存器。該冗餘控制邏輯決定一可接受的會合點,且將該會合點回寫到每一處理器。然後,每一處理器將在該相同會合點上將要被處理的該中斷排程。可以只在該作業系統及各應用程式中嵌入的客製化程式碼內將這些會合點排程。如果一處理器在一段長時間中執行而沒有機會將一會合點排程,則可能需要以另一種方法使該等冗餘處理器同步,例如,經由指令流而快速轉送及(或)將一處理器的狀態複製到另一處理器。
本發明之實施例提供了一種使用狀態歷史記錄而使各處理器同步之方法。因為該方法比前文所述的在特殊模式中運行每一處理器之方法較不複雜,且不需要諸如前文所述的會合點方法等的客製化作業系統,所以該方法可能是令人滿意的。
第1圖示出根據本發明的一實施例之資訊處理系統100。系統100包含處理器110及120、狀態儲存器130及140、冗餘邏輯150、以及I/O裝置160。系統100亦可包含任何數目之額外的處理器、裝置、記憶體、以及其他組件或邏輯。
處理器110及120中之每一處理器可以是其中包括Intel Pentium處理器系列、Itanium處理器系列、或IntelCorporation的其他處理器系列中之一處理器、或另一公司的另一處理器等的一般用途微處理器、或特殊用途處理器、或微控制器之任何類型的處理器。處理器110及120中之每一處理器可以任何組合方式包含多個執行緒(thread)及多個執行核心。
I/O裝置160可代表任何數目之I/O、周邊、或諸如鍵盤、滑鼠、軌跡球、指向裝置、監視器、印表機、媒體卡、網路介面、資訊儲存裝置等的其他裝置、或能夠將中斷或其他輸入提供給處理器之任何其他裝置。可以分立式組件實施I/O裝置160,或可將I/O裝置160包含在具有任何其他裝置之一整合式組件中。在一實施例中,I/O裝置160可代表一多功能I/O、周邊、或其他裝置中之一單一功能。
冗餘邏輯150可包含使處理器110及120啟用、協助、或支援處理器110、120或系統100中之任何其他冗餘處理器的冗餘操作之任何電路、邏輯、或其他結構。在第1圖所示之實施例中,冗餘邏輯150包含輸入複製器152、輸出比較器154、狀態比較器156、以及控制邏輯158。輸入複製器152將複製要被傳送到處理器110及120的來自I/O裝置160之中斷或其他輸入。輸出比較器154將處理器110之輸出與處理器120之輸出比較。如將於下文中說明的,狀態比較器156將處理器110之狀態資訊與處理器120之狀態資訊比較。控制邏輯158將控制輸入之複製、輸出之比較、輸出不匹配之處理、錯誤處理程式之動用、狀態資訊之比較、處理器110及120之同步、以及控制對處理器110及120的冗餘操作。除非本說明中另有述及,否則將根據任何習知之方法而執行本說明中並未述及的輸入之複製、輸出之比較、輸出不匹配之處理、錯誤處理程式之動用、同步之控制、以及對處理器110及120的冗餘操作之任何其他控制。
狀態儲存器130及140將分別儲存處理器110及120之狀態資訊。狀態儲存器130及140可包含諸如靜態隨機存取記憶體或任何其他類型之資訊儲存媒體等的任何類型之記憶體。可將狀態儲存器130及140包含在處理器110及120中,或與處理器110及120分離,且可合併狀態儲存器130及140,或使狀態儲存器130及140相互分離。
狀態儲存器130將儲存一指令流的諸如一量子等的至少一部分中之每一指令的條目。例如,如果一量子包含1,000個指令,則狀態儲存器130包含1,000個條目之儲存單元。同樣地,狀態儲存器140將儲存一指令流的諸如一量子等的至少一部分中之每一指令的條目。如將於下文中說明的,每一條目將包含與對應於一指令的處理器的狀態有關之資訊。因此,對於指令流的任何量子,狀態儲存器130可儲存處理器110的狀態之歷史記錄,且狀態儲存器140可儲存處理器120的狀態之歷史記錄。每一條目或條目位置亦可包含用來使一條目與一指令相關聯的一索引、識別碼、或其他方式,且(或)狀態儲存器130及140之組織可說明該關聯性。例如,可使狀態儲存器130中之第一條目位置與一量子中引退的第一指令相關聯,其他依此類推。
在一實施例中,每當處理器110引退或提交一指令時,狀態儲存器130將儲存用來代表處理器110的整個狀態之一條目,且每當處理器120引退或提交一指令時,狀態儲存器140將儲存用來代表處理器120的整個狀態之一條目。被儲存的資訊將反映處理器之狀態,因而可將該資訊與用來代表另一處理器的狀態之資訊比較,以便決定處理器110之狀態是否與處理器120之狀態匹配。例如,該資訊可包含或可源自所有處理器暫存器或該處理器內之其他儲存位置之內容。
為了減少狀態儲存器130及140之大小以及狀態比較器156之複雜度,對應於每一被引退的指令之狀態資訊在被儲存之前,可先根據任何其他習知的方法而被壓縮為一數位簽章(digital signature)、一雜湊值(hash value)、或一指紋(fingerprint)。在一實施例中,被引退的指令之狀態資訊可以只包含與先前被引退的指令的狀態間之改變。為了控制狀態資訊之壓縮或編碼、及(或)儲存,處理器110及120可分別包含指紋產生邏輯112及122。
狀態比較器156之實施係取決於狀態儲存器130及140中之條目的格式。例如,當每一條目是使用循環冗餘查核功能計算出的可概括對先前狀態的所有改變之16位元指紋時,則可使用一個16位元比較器以比較兩個此種條目。
第2圖示出根據本發明的一實施例而使用狀態歷史記錄使各處理器同步之方法200。雖然該方法的實施例不限於這一方面,但是於說明第2圖所示之該方法實施例時,可參照第1圖所示的該系統實施例之各元件。控制邏輯158或系統100內之或系統100可使用之任何其他控制邏輯可執行方法200的一些部分或全部,或使方法200的一些部分或全部被執行,其中該控制邏輯可包括諸如微碼、固線(hard-wired)邏輯、可程式邏輯、或韌體等的任何類型之電路、邏輯、或其他結構。
在步驟210中,處理器110開始執行一指令流、或一指令流的一部分。在步驟212中,處理器120開始冗餘地執行該指令流、或該指令流的該部分;換言之,處理器120自與處理器110在步驟210中開始執行該指令流的相同狀態下且於該指令流中之相同的指令邊界上開始執行。
在步驟220及222中,處理器110及120分別繼續冗餘地執行該指令流,但是並非以鎖步或相互同步之方式執行該指令流,亦即,容許每一處理器以獨立於另一處理器之方式執行指令,因而該等兩個處理器可能在同一時間分別執行了該指令流中之不同的指令,且(或)可能在不同的時間執行了該指令流中之相同的指令。例如,指令的執行或引退之時序及(或)順序在各處理器之間可能是不同的。如果在處理器110及120的冗餘操作期間中之任何時間上有一輸出不匹配,則可根據任何習知的方法處理該輸出不匹配。
此外,在步驟220中,每當處理器110引退一指令時,該處理器狀態的指紋即被指紋產生邏輯112產生,且被儲存在狀態儲存器130中。同樣地,在步驟222中,每當處理器120引退一指令時,該處理器狀態的指紋即被指紋產生邏輯122產生,且被儲存在狀態儲存器140中。
在步驟230中,處理器110引退一量子中之最後的指令。在步驟232中,處理器120引退一量子中之最後的指令。
在步驟240中,將處理器110之狀態歷史記錄與處理器120之狀態歷史記錄比較,以便找出最近的匹配。步驟240包含將狀態儲存器130中之至少一條目與狀態儲存器140中之至少一條目比較,且可根據一些不同的方式而執行步驟240。在一實施例中,可將狀態儲存器130中之一組條目的每一條目與狀態儲存器140中之一組條目的每一條目平行地比較。如果找到一個以上的匹配,則可選擇涉及最近的條目之匹配。在另一實施例中,可將狀態儲存器130或140中之一狀態儲存器的各條目與狀態儲存器130或140中之另一狀態儲存器的各條目比較,比較時係以一次一個條目之方式進行,且係自最近的條目開始比較,直到找到一匹配為止。例如,可將狀態儲存器130中之最近的條目與狀態儲存器140中之最近的條目比較,然後將狀態儲存器130中之最近的條目與狀態儲存器140中之次一最近的條目比較,其他依此類推,且如果沒有找到任何匹配,則可將狀態儲存器130中之次一最近的條目與狀態儲存器140中之最近的條目比較,然後將狀態儲存器130中之次一最近的條目與狀態儲存器140中之次一最近的條目比較,其他依此類推。
在步驟240之後,如果並未找到一匹配,則可在步驟250中動用一錯誤處理程式。
在步驟240之後,如果找到了一匹配,則可在步驟260中根據步驟240中找到的該匹配而使處理器110及120同步至相同的指令邊界。因為該等條目匹配,所以該等條目都與相同之被引退的指令相關聯,因而若有需要,則每一處理器根據任何習知之方法而被備份,被重新運行,或被以其他方法設定(可包括還原以前的狀態),以便自該指令邊界開始執行。本發明之實施例可包含:將來自狀態儲存器130及140之資訊用來分別還原處理器110及120之以前的狀態。
在步驟270中,一中斷或輸入被傳送到處理器110及120。
在步驟270之後,方法200可繼續進入步驟210及212,且處理器110及120在步驟260中被同步之後自相同的被引退的指令之邊界開始執行。因此,該中斷或輸入的傳送時序在處理器110與120之間並無不同。
在本發明之範圍內,可按照不同的順序,或在省略一些所示的步驟之情形下,或在增添一些額外的步驟之情形下,或在將一些步驟重新排序、省略一些步驟、及增添一些步驟的組合之情形下,執行第2圖所示之該方法。
可在自創造至模擬再至製造的各階段中設計根據本發明的一實施例而設計的處理器110及120、或任何其他組件、或組件的一部分。呈現一設計之資料可以一些方式呈現該設計。首先,如模擬中適用的,可將一硬體描述語言或另一功能描述語言用來呈現該硬體。額外地或替代地,可在設計程序的某些階段中產生具有邏輯及(或)電晶體閘之一電路層級模型。此外,大多數的設計在某一階段中將到達可以用來呈現各裝置的實體布局(placement)之資料將該等設計模型化之程度。在使用傳統半導體製造技術之情形中,對於用來製造積體電路的罩幕而言,用來呈現裝置布局模型之資料可以是用來指定不同罩幕層上的各種特徵的存在或不存在之資料。
在設計的任何呈現方式中,可將資料儲存在任何形式之機器可讀取的媒體。為了傳輸此種資訊而調變之或以其他方式產生之光波或電波、記憶體、諸如磁碟或光碟等的磁性或光學儲存媒體可以是該機器可讀取的媒體。這些媒體中之任何媒體可“載有”或“指示”該設計、或本發明的實施例中使用的其他資訊。當以執行電信號的複製、緩衝、或重新傳輸之方式傳輸用來指示或載有該資訊之電載波時,即製作了一份新的拷貝。因此,通訊供應商或網路供應商之行動可構成製作用來實施本發明的技術的諸如載波等的一物品之拷貝。
至此,已說明了使用狀態歷史記錄而使各冗餘處理器同步的本發明之實施例。雖然已說明了且在附圖中示出了某些實施例,但是我們應可了解:這些實施例只是例示性而非對範圍寬廣的本發明之限制,且本發明不限於所示出及說明的特定結構及配置,這是因為對此項技術具有一般知識者在參閱本發明的揭示之後將可作出各種其他的修改。在諸如本發明等的技術領域中,由於成長快速,且不易預知進一步的進展,所以可在不脫離本發明揭示的原理或附圖的範圍下,易於在技術進展的協助下對所揭示的實施例之配置及細節作出修改。
100...資訊處理系統
110,120...處理器
130,140...狀態儲存器
150...冗餘邏輯
160...輸入/輸出裝置
152...輸入複製器
154...輸出比較器
156...狀態比較器
158...控制邏輯
112,122...指紋產生邏輯
已參照各附圖而以舉例但非限制之方式說明了本發明。
第1圖示出根據本發明的一實施例的包含狀態儲存器之一系統。
第2圖示出根據本發明的一實施例而使用狀態歷史記錄使各冗餘處理器器同步之一方法。
100...資訊處理系統
110,120...處理器
130,140...狀態儲存器
150...冗餘邏輯
160...輸入/輸出裝置
152...輸入複製器
154...輸出比較器
156...狀態比較器
158...控制邏輯
112,122...指紋產生邏輯
Claims (17)
- 一種裝置,包含:一第一處理器,用以執行複數個指令;一第一儲存器,用以針對該複數個指令中之該第一處理器執行的每一指令而儲存第一處理器狀態資訊;一第二處理器,用以執行該複數個指令;一第二儲存器,用以針對該複數個指令中之該第二處理器執行的每一指令而儲存第二處理器狀態資訊;一控制器,用以根據該第一儲存器之至少一條目及該第二儲存器之至少一條目而使該第一處理器及該第二處理器同步,其中該控制器藉由從該第一儲存器恢復該第一處理器之狀態以及從該第二儲存器恢復該第二處理器之狀態中之其一,而使該第一處理器及該第二處理器同步,以便自相同的狀態開始執行。
- 如申請專利範圍第1項之裝置,其中該第一儲存器將針對該複數個指令中之該第一處理器引退的每一指令而儲存第一處理器狀態資訊,且該第二儲存器將針對該複數個指令中之該第二處理器引退的每一指令而儲存第二處理器狀態資訊。
- 如申請專利範圍第1項之裝置,進一步包含一比較器,用以將該第一儲存器中之一條目與該第二儲存器中之一條目比較。
- 如申請專利範圍第3項之裝置,其中該控制器將 根據該比較器指示一匹配而使該第一處理器及該第二處理器同步。
- 如申請專利範圍第1項之裝置,其中該複數個指令是一指令流中之一量子的指令。
- 如申請專利範圍第1項之裝置,其中該控制器將使該第一處理器及該第二處理器同步,以便自相同的指令邊界開始執行。
- 如申請專利範圍第6項之裝置,進一步包含一輸入複製器,用以複製將被傳送到該第一處理器及該第二處理器之輸入。
- 如申請專利範圍第7項之裝置,其中該控制器在使該第一處理器及該第二處理器同步之後,也將一被複製的輸入傳送到該第一處理器及該第二處理器。
- 如申請專利範圍第8項之裝置,其中該被複製的輸入是一中斷。
- 如申請專利範圍第1項之裝置,其中該第一處理器包含第一狀態儲存器邏輯,用以壓縮且儲存該第一處理器狀態資訊,且該第二處理器包含第二狀態儲存器邏輯,用以壓縮且儲存該第二處理器狀態資訊。
- 一種方法,包含下列步驟:由一第一處理器執行複數個指令;由一第二處理器執行該複數個指令;於該複數個指令中之每一指令由該第一處理器引退時儲存代表該第一處理器的狀態之資訊; 於該複數個指令中之每一指令由該第二處理器引退時儲存代表該第二處理器的狀態之資訊;根據用來代表該第一處理器的以前狀態之被儲存的資訊及用來代表該第二處理器的以前狀態之被儲存的資訊而使該第一處理器及該第二處理器同步。
- 如申請專利範圍第11項之方法,進一步包含下列步驟:將用來代表該第一處理器的以前狀態之被儲存的資訊與用來代表該第二處理器的以前狀態之被儲存的資訊比較。
- 如申請專利範圍第12項之方法,其中該同步步驟係依據用來代表該第一處理器的以前狀態之被儲存的資訊與用來代表該第二處理器的以前狀態之被儲存的資訊間之一匹配。
- 如申請專利範圍第13項之方法,其中該同步步驟包含下列步驟:使該第一處理器及該第二處理器自該匹配指示的指令邊界開始執行。
- 如申請專利範圍第14項之方法,進一步包含下列步驟:在同步之後且在自該匹配指示的指令邊界開始執行之前,將一輸入傳送到該第一處理器及該第二處理器。
- 如申請專利範圍第15項之方法,其中該同步步驟包含下列步驟:從用來代表該第一處理器的以前狀態之被儲存的資訊恢復該第一處理器的狀態以及從用來代表該第二處理器的以前狀態之被儲存的資訊恢復該第二處理器的狀態中之其一。
- 一種處理器,包含:一執行核心,用以執行複數個指令;儲存器,用以儲存該執行核心引退的每一指令之狀態資訊,且一控制器可存取該儲存器,以便使該處理器與一冗餘處理器同步;以及用來壓縮及儲存該狀態資訊之邏輯。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,961 US8171328B2 (en) | 2008-12-31 | 2008-12-31 | State history storage for synchronizing redundant processors |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201030611A TW201030611A (en) | 2010-08-16 |
TWI443577B true TWI443577B (zh) | 2014-07-01 |
Family
ID=42286373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098145098A TWI443577B (zh) | 2008-12-31 | 2009-12-25 | 用於同步冗餘處理器之狀態歷史記錄儲存器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8171328B2 (zh) |
JP (2) | JP2012514257A (zh) |
KR (3) | KR101287266B1 (zh) |
CN (1) | CN101876929B (zh) |
TW (1) | TWI443577B (zh) |
WO (1) | WO2010078187A2 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171328B2 (en) | 2008-12-31 | 2012-05-01 | Intel Corporation | State history storage for synchronizing redundant processors |
US20100318746A1 (en) * | 2009-06-12 | 2010-12-16 | Seakr Engineering, Incorporated | Memory change track logging |
DE102009054637A1 (de) * | 2009-12-15 | 2011-06-16 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Recheneinheit |
US8788871B2 (en) * | 2011-06-28 | 2014-07-22 | International Business Machines Corporation | Unified, workload-optimized, adaptive RAS for hybrid systems |
US8806269B2 (en) * | 2011-06-28 | 2014-08-12 | International Business Machines Corporation | Unified, workload-optimized, adaptive RAS for hybrid systems |
US9032191B2 (en) | 2012-01-23 | 2015-05-12 | International Business Machines Corporation | Virtualization support for branch prediction logic enable / disable at hypervisor and guest operating system levels |
US8935694B2 (en) * | 2012-01-23 | 2015-01-13 | International Business Machines Corporation | System and method for selectively saving and restoring state of branch prediction logic through separate hypervisor-mode and guest-mode and/or user-mode instructions |
US8880961B2 (en) * | 2012-01-31 | 2014-11-04 | Infineon Technologies Ag | System and method of computation by signature analysis |
US8799710B2 (en) * | 2012-06-28 | 2014-08-05 | International Business Machines Corporation | 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits |
WO2014092968A1 (en) * | 2012-12-13 | 2014-06-19 | Coherent Logix, Incorporated | Multiprocessor system with improved secondary interconnection network |
US9367372B2 (en) | 2013-06-18 | 2016-06-14 | Advanced Micro Devices, Inc. | Software only intra-compute unit redundant multithreading for GPUs |
US9959284B2 (en) * | 2014-01-10 | 2018-05-01 | Appex Networks Holding Limited | System and method for synchronizing history data for compression and decompression |
US10346272B2 (en) * | 2016-11-01 | 2019-07-09 | At&T Intellectual Property I, L.P. | Failure management for data streaming processing system |
CN112424753B (zh) * | 2018-07-18 | 2024-08-23 | 三垦电气株式会社 | 多核系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2003338A1 (en) * | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
US5226152A (en) * | 1990-12-07 | 1993-07-06 | Motorola, Inc. | Functional lockstep arrangement for redundant processors |
JPH04352240A (ja) * | 1991-05-30 | 1992-12-07 | Nec Corp | 情報処理装置 |
JPH0652004A (ja) * | 1992-08-04 | 1994-02-25 | Yokogawa Electric Corp | ペアcpu装置 |
US6233702B1 (en) * | 1992-12-17 | 2001-05-15 | Compaq Computer Corporation | Self-checked, lock step processor pairs |
JPH0773059A (ja) * | 1993-03-02 | 1995-03-17 | Tandem Comput Inc | フォールトトレラント型コンピュータシステム |
US5896523A (en) * | 1997-06-04 | 1999-04-20 | Marathon Technologies Corporation | Loosely-coupled, synchronized execution |
US6948092B2 (en) * | 1998-12-10 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | System recovery from errors for processor and associated components |
US6751749B2 (en) * | 2001-02-22 | 2004-06-15 | International Business Machines Corporation | Method and apparatus for computer system reliability |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
US20040111593A1 (en) * | 2002-12-05 | 2004-06-10 | International Business Machines Corporation | Interrupt handler prediction method and system |
JP4155088B2 (ja) * | 2003-04-18 | 2008-09-24 | 日本電気株式会社 | 情報処理装置 |
US7467327B2 (en) * | 2005-01-25 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed |
US7747932B2 (en) * | 2005-06-30 | 2010-06-29 | Intel Corporation | Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system |
US8527741B2 (en) * | 2005-07-05 | 2013-09-03 | Viasat, Inc. | System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level |
WO2007113346A1 (es) | 2006-03-31 | 2007-10-11 | Intel Corporation | Deteccion de errores transitorios mediante nueva ejecucion selectiva |
US20080126819A1 (en) | 2006-11-29 | 2008-05-29 | International Business Machines Corporation | Method for dynamic redundancy of processing units |
FR2912526B1 (fr) * | 2007-02-13 | 2009-04-17 | Thales Sa | Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante. |
US8171328B2 (en) | 2008-12-31 | 2012-05-01 | Intel Corporation | State history storage for synchronizing redundant processors |
-
2008
- 2008-12-31 US US12/347,961 patent/US8171328B2/en active Active
-
2009
- 2009-12-23 KR KR1020127027290A patent/KR101287266B1/ko not_active IP Right Cessation
- 2009-12-23 KR KR1020117007649A patent/KR101264494B1/ko not_active IP Right Cessation
- 2009-12-23 WO PCT/US2009/069384 patent/WO2010078187A2/en active Application Filing
- 2009-12-23 KR KR1020137000959A patent/KR101351183B1/ko not_active IP Right Cessation
- 2009-12-23 JP JP2011543673A patent/JP2012514257A/ja active Pending
- 2009-12-25 CN CN200911000157.XA patent/CN101876929B/zh not_active Expired - Fee Related
- 2009-12-25 TW TW098145098A patent/TWI443577B/zh not_active IP Right Cessation
-
2014
- 2014-04-03 JP JP2014076695A patent/JP6272719B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP6272719B2 (ja) | 2018-01-31 |
KR101264494B1 (ko) | 2013-05-14 |
CN101876929B (zh) | 2014-07-23 |
KR101351183B1 (ko) | 2014-01-14 |
CN101876929A (zh) | 2010-11-03 |
KR20110050717A (ko) | 2011-05-16 |
KR101287266B1 (ko) | 2013-07-17 |
KR20120123613A (ko) | 2012-11-08 |
JP2014160483A (ja) | 2014-09-04 |
KR20130012591A (ko) | 2013-02-04 |
TW201030611A (en) | 2010-08-16 |
WO2010078187A3 (en) | 2010-10-21 |
US20100169693A1 (en) | 2010-07-01 |
US8171328B2 (en) | 2012-05-01 |
WO2010078187A2 (en) | 2010-07-08 |
JP2012514257A (ja) | 2012-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI443577B (zh) | 用於同步冗餘處理器之狀態歷史記錄儲存器 | |
KR101546033B1 (ko) | Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행 | |
RU2385484C2 (ru) | Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации | |
US7434098B2 (en) | Method and system of determining whether a user program has made a system level call | |
US8635492B2 (en) | State recovery and lockstep execution restart in a system with multiprocessor pairing | |
US20050050386A1 (en) | Hardware recovery in a multi-threaded architecture | |
US20060020852A1 (en) | Method and system of servicing asynchronous interrupts in multiple processors executing a user program | |
US10657010B2 (en) | Error detection triggering a recovery process that determines whether the error is resolvable | |
US20200319974A1 (en) | Checkpointing | |
US20050223274A1 (en) | Method and system executing user programs on non-deterministic processors | |
JP2005166057A (ja) | 障害検出コンピュータシステム | |
Benoit et al. | Assessing general-purpose algorithms to cope with fail-stop and silent errors | |
US20050172196A1 (en) | Variable delay instruction for implementation of temporal redundancy | |
GB2565338A (en) | Fault detecting and fault tolerant multi-threaded processors | |
US8799706B2 (en) | Method and system of exchanging information between processors | |
WO2015010543A1 (en) | Moving objects in primary computer based on memory errors in secondary computer | |
GB2525715A (en) | Pipelined ECC-protected memory access | |
JP2009238056A (ja) | マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法 | |
US20140156975A1 (en) | Redundant Threading for Improved Reliability | |
Gao et al. | Using explicit output comparisons for fault tolerant scheduling (FTS) on modern high-performance processors | |
Hukerikar et al. | An evaluation of lazy fault detection based on adaptive redundant multithreading | |
JP2006252548A (ja) | 時間的冗長性を実施するための可変遅延命令 | |
US20220164255A1 (en) | Checkpointing | |
TW202418068A (zh) | 處理器及自處理器偵測軟錯誤的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |