JP2022088346A - コア同期のためのデバッグトレースストリーム - Google Patents

コア同期のためのデバッグトレースストリーム Download PDF

Info

Publication number
JP2022088346A
JP2022088346A JP2021195448A JP2021195448A JP2022088346A JP 2022088346 A JP2022088346 A JP 2022088346A JP 2021195448 A JP2021195448 A JP 2021195448A JP 2021195448 A JP2021195448 A JP 2021195448A JP 2022088346 A JP2022088346 A JP 2022088346A
Authority
JP
Japan
Prior art keywords
core
cores
affected
unaffected
supervisor
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2021195448A
Other languages
English (en)
Inventor
デーヴィッド ピー. ハルデマン,
P Haldeman David
エリック ジェー. ミラー,
J Miller Eric
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JP2022088346A publication Critical patent/JP2022088346A/ja
Pending legal-status Critical Current

Links

Images

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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】々なコアが互いにロックステップ状態にあるかどうかを確認し、複数のコアがロックステップ状態から外れているときに救済動作を行うために、トレースセルを含むデバッグツールを介して複数のコアの間の非同期を検出して対処する方法及び複数の処理コアを並列で使用する計算システムを提供する。【解決手段】方法は、冗長的にシステムを動作させることのために、複数のデバッグトレースデータストリームをモニタすることと、複数のデバッグトレースデータストリームのうちの1つのデバッグトレースデータストリームの、複数のデバッグトレースデータストリームのうちの他のデバッグトレースデータストリームに対する状態差を検出したことに応じて、1つのデバッグトレースデータストリームに関連付けられた所与のコアを影響されたコアとしてマーキングすることと、影響されたコアを再起動することと、によってマルチコアシステムを同期する。【選択図】図3

Description

本開示は、広くは、複数の処理コアを並列で使用する計算システムに関する。特に、本開示は、様々なコアが互いにロックステップ状態にあるかどうかを確認し、複数のコアがロックステップ状態から外れているときに救済動作を行うため、トレースセルを含むデバッグツールを介して、複数のコアの間の非同期を検出し、対処することに関する。
様々なシステムが、システムに更なる確実性及び回復力を提供するために、互いに並列な指示命令を処理するよう複数のプロセッサを使用する。例えば、宇宙船、航空機、及びイオン化環境内で使用される他のデバイスは、シングルイベントアップセット(SEU)をもたらし得る環境条件に曝露される。これらのデバイスは、しばしば、それらの計算システム内で三重モード冗長性(TMR)を使用する。それによって、3つのプロセッサが、同じ作業を並列で実行する。TMRを使用するシステムは、出力として、多数決による決定(すなわち、3つのプロセッサのうちの少なくとも2つが同じ結果を生成する)を使用する。トータルコンセンサスに到達しない(すなわち、3つのプロセッサのうちの少なくとも1つが唯一の結果を生成しなかった)イベントでは、TMRを使用するシステムが、次の計算がプロセッサのフルセットを用いて実行されることを確実にするために、一致しなかったプロセッサを再同期し又はプロセッサの3つ全てをリセットする。リセットプロセスは、潜在的に重要なときにシステム可用性を低減させ、複数のプロセッサを搭載すること、ならびに処理システム全体を通したTMR投票論理のオーバーヘッドにより、システムの複雑さ及びサイズが増す。
本開示は、一態様において方法を提供する。該方法は、対応する複数のコアが作業を並列で実行することを含む、冗長的にシステムを動作させることのために、複数のデバッグトレースデータストリームをモニタすること、複数のデバッグトレースデータストリームのうちの1つのデバッグトレースデータストリームの、複数のデバッグトレースデータストリームのうちの他のデバッグトレースデータストリームに対する状態差を検出したことに応じて、1つのデバッグトレースデータストリームに関連付けられた所与のコアを影響されたコアとしてマーキングすること、及び、影響されたコアを再起動することを含む。
一態様では、上述の又は以下の任意の例示的な方法と組み合わせて、対応する複数のコアが、影響されたコア及び第2のコアを含む2つのアクティブなコアから構成され、該方法は、状態差を検出したことに応じて、第2のコアを第2の影響されたコアとしてマーキングすること、及び、第2のコアを影響されたコアと同時にリセットすることを更に含む。
一態様では、上述の又は以下の任意の例示的な方法と組み合わせて、対応する複数のコアが、影響されたコア、第1の影響されていないコア、及び第2の影響されていないコアを含む、3つのアクティブなコアから構成され、該方法は、状態差を検出したことに応じて、影響されたコアを停止すること、並びに、コンセンサス冗長モードで並列に作業を実行している、第1の影響されていないコア及び第2の影響されていないコアをモニタすることを更に含み、影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、影響されたコアに、第1の影響されていないコアからのレジスタデータをロードすること、及び、影響されたコアを再初期化することを含む。
一態様では、上述の又は以下の任意の例示的な方法と組み合わせて、対応する複数のコアが、影響されたコア、第1の影響されていないコア、第2の影響されていないコア、及び第3の影響されていないコアを含む、4つ以上のアクティブなコアを含み、該方法は、状態差を検出したことに応じて、影響されたコアを停止すること、並びに、多数決モードで並列に作業を実行している、第1の影響されていないコア、第2の影響されていないコア、及び第3の影響されていないコアをモニタすることを更に含み、影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、影響されたコアに、第1の影響されていないコアからのレジスタデータを再ロードすること、及び、影響されたコアを再初期化することを含む。
一態様では、上述の又は以下の任意の例示的な方法と組み合わせて、対応する複数のコアが、スーパーバイザを有する共有システムオンチップ(shared System on a Chip)上に含まれ、スーパーバイザは、放射線対応プロセッサ(radiation hardened processor)、ハードウェア規定された状態マシン(hardware-defined state machine)、及びメンテナンスプロセッサのうちの1つである。
一態様では、上述の又は以下の任意の例示的な方法と組み合わせて、対応する複数のコアのうちの少なくとも1つのコアが、対応する複数のコアのうちの他のコアから分離した集積回路上に含まれる。
本開示は、一態様においてシステムを提供する。該システムは、対応する複数の作業のインスタンスを並列で実行するように構成された複数のコア、並びに、スーパーバイザを含む。該スーパーバイザは、複数のコアからデバッグトレースデータストリームを受け取ること、及び、複数のコアのうちの影響されたコアに関連付けられたデバッグトレースデータストリームと複数のコアのうちの他のコアに関連付けられたデバッグトレースデータストリームとの間の状態差に基づいて、複数のコアのうちの影響されたコアを特定すること、を実行するように構成されている。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、複数のコア及びスーパーバイザが、単一の集積回路上に配置される。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、スーパーバイザが、第1の集積回路上に配置され、複数のコアのうちの少なくとも1つのコアが、第2の集積回路上に配置される。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、スーパーバイザが、安全な再起動時間まで、作業を実行している複数のコアから影響されたコアを除去すること、及び、安全な再起動時間に到達したことに応じて、影響されたコアを再起動すること、を実行するように更に構成されている。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、影響されたコアを除去した後で、複数のコアが少なくとも2つのコアを含むときに、スーパーバイザが、影響されたコアに関連付けられた影響されたレジスタに、少なくとも2つのコアのうちの1つの影響されていないコアに関連付けられた影響されていないレジスタからのデータを再ロードすること、影響されたコアを再初期化すること、及び、影響されたコアを複数のコアに戻すこと、を実行するように更に構成されている。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、安全な再起動時間が、システムによって制御されるデバイスの安全プロファイルに基づいて決定される。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、複数のコアが2つのコアから構成されるときに、スーパーバイザが、第2のコアを影響されたコアと同時にリセットすることを実行するように更に構成されている。
一態様では、上述の又は以下の任意の例示的なシステムと組み合わせて、デバッグトレースデータストリームが、指示命令トレース、データトレース、及びシステムトレースのうちの少なくとも1つを介して受け取られる。
本開示は、一態様においてコンピュータ可読記憶デバイスを提供する。該コンピュータ可読記憶デバイスは、指示命令を含む。該指示命令は、プロセッサによって実行されたときに、以下を含む動作を実行する。すなわち、対応する複数のコアが作業を並列で実行することを含む、冗長的にシステムを動作させることのために、複数のデバッグトレースデータストリームをモニタすること、複数のデバッグトレースデータストリームのうちの1つのデバッグトレースデータストリームの、複数のデバッグトレースデータストリームのうちの他のデバッグトレースデータストリームに対する状態差を検出したことに応じて、1つのデバッグトレースデータストリームに関連付けられたコアを影響されたコアとしてマーキングすること、及び、影響されたコアを再起動することである。
一態様では、上述の又は以下の任意の例示的なコンピュータ可読記憶デバイスと組み合わせて、対応する複数のコアが、影響されたコア及び第2のコアを含む2つのアクティブなコアから構成され、該動作は、状態差を検出したことに応じて、第2のコアを第2の影響されたコアとしてマーキングすること、及び、第2のコアを影響されたコアと同時にリセットすることを更に含む。
一態様では、上述の又は以下の任意の例示的なコンピュータ可読記憶デバイスと組み合わせて、対応する複数のコアが、影響されたコア、第1の影響されていないコア、及び第2の影響されていないコアを含む、3つのアクティブなコアから構成され、該動作は、状態差を検出したことに応じて、影響されたコアを停止すること、並びに、コンセンサス冗長モードで並列に作業を実行している、第1の影響されていないコア及び第2の影響されていないコアをモニタすることを更に含み、影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、影響されたコアに、第1の影響されていないコアからのレジスタデータをロードすること、及び、影響されたコアを再初期化することを含む。
一態様では、上述の又は以下の任意の例示的なコンピュータ可読記憶デバイスと組み合わせて、対応する複数のコアが、影響されたコア、第1の影響されていないコア、及び第2の影響されていないコア、及び第3の影響されていないコアを含む、4つ以上のアクティブなコアを含み、該動作は、状態差を検出したことに応じて、影響されたコアを停止すること、並びに、多数決モードで並列に作業を実行している、第1の影響されていないコア、第2の影響されていないコア、及び第3の影響されていないコアをモニタすることを更に含み、影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、影響されたコアに、第1の影響されていないコアからのレジスタデータをロードすること、及び、影響されたコアを再初期化することを含む。
一態様では、上述の又は以下の任意の例示的なコンピュータ可読記憶デバイスと組み合わせて、対応する複数のコアが、複数のデバッグトレースデータストリームをモニタするように構成されたスーパーバイザを有する、共有システムオンチップ上に含まれる。
一態様では、上述の又は以下の任意の例示的なコンピュータ可読記憶デバイスと組み合わせて、対応する複数のコアのうちの少なくとも1つのコアが、対応する複数のコアのうちの他のコアから分離した集積回路上に含まれる。
本開示の上述の特徴が詳細に理解されるように、上で簡単に要約したものよりも更に詳細な本開示の説明が、幾つかが添付の図面において例示されている例示的な態様を参照することによってなされ得る。
本開示の態様による、マルチコア制御システムを含むデバイスの一実施例としての人工衛星を示す。 本開示の態様による、マルチコア制御システム用の動作線図を示す。 本開示の態様による、マルチコア制御システム用の動作線図を示す。 本開示の態様による、マルチコア制御システム用の動作線図を示す。 本開示の態様による、コア同期のためのデバッグトレースストリームを使用する方法のフローチャートである。 本開示の態様による、マルチコア制御システムなどとして使用され得る計算デバイスを示す。
本開示は、マルチコアプロセッサシステムにおける改善されたコア同期を提供する。本開示は、各処理コアにおけるデバッグトレースからモニタされる、各処理コア(一般的にコア)からのリアルタイム(又はリアルタイムに近い)情報を使用する。これらのデバッグトレースストリームは、しばしば、外部のデバッガーによるリビューのためのオフチップに転送されるが、本明細書では、コアが互いに同期しているかどうかを検出するために、1つのコアの出力を他のコア(オンチップであれオフチップであれ)の出力と比較するよう使用される。様々な実施形態では、コアが同期していないことが分かったときに、システムは、コアのリセットを実行するために、システムが安全環境又は状態にあるまで、低減された組の同期したコアを用いて動作を継続する(例えば、最初はn個のコアで動作し、次いで、n-1個のコアで動作し、潜在的に冗長モードを調整する)。更に又は代替的に、ロックステップ状態から外れたコアは、ロックステップ状態にあるコアからの状態情報を使用して、他のコアとのロックステップ状態に戻される。したがって、本開示は、再起動されるコアの数を低減させ、非ロックステップ状態にあるコアがオンラインに戻される速度を高める。
図1は、本開示の態様による、マルチコア制御システム130を含む冗長的に動作しているシステム100の一実施例としての人工衛星110を示している。マルチコア制御システム130は、計算又は作業の幾つかのインスタンスを互いに並列で実行するために、幾つかのプロセッサ又は処理コア(一般的にコア)を使用する。それによって、単一のコアの出力ではなくむしろ、アクティブなコアの間のコンセンサスを使用してシステム100を制御する。複数のコアがロックステップ状態にないときに、例えば、出力向けの非全会一致値を生成しているときに、大多数出力とは異なる出力を生成した(1以上の)コアは、ロックステップ状態から外れている又は影響されたと言われ、影響されたコアがもはや他のコアと同期していないときに、異なる値を継続して生成し得る。マルチコア制御システム130は、影響されたコアが再起動イベントを介して他のコアとのロックステップ状態に戻るまで、影響されたコア及びそれによって生成された値を無効にし、ディスエーブルし、又はさもなければ無視する。再起動イベントは、1以上のコアをリセットすることを含み得る。或いは、影響されていないコアと同じ処理サイクルにおいて同じ入力を使用するために、1以上のコアに既知の良好なデータをロードし、影響されたコアを再初期化することを含んでよい。
本開示は、SEUに関する処理回復力を提供するために、マルチコア制御システム130を使用して、例えば、宇宙船、航空機、x線デバイス、及び、宇宙、高高度、又はイオン化放射がプロセッサ内のビットの状態を変化させ得る他の環境において使用されることが予期される他のデバイスなどの、任意のシステム又はデバイスにおいて実施され得る。これらの効果はまた、地上の用途でも生じ、自律輸送体などの高信頼度用途に対処するために重要である。例えば、図示されている人工衛星110は、宇宙線120によって衝突されている。宇宙線120は、人工衛星110のコア内でSEUを引き起こすのに十分なエネルギーを運ぶ(例えば、論理出力Aを論理出力Bに変化させる。逆もまた同様である)。
人工衛星110は、単一のコア制御システムではなくむしろ、マルチコア制御システム130を含むので、幾つかのコアが、人工衛星110を制御するためにタンデムで動作する。それによって、1つのコアに異常な結果を生成させるSEUは、人工衛星110において異常な動作をもたらさない。例えば、マルチコア制御システム130は、各々が並列で計算作業を実行するn個のコア(ここで、n>1)を含み得る。それによって、人工衛星110は、単に単一のプロセッサの出力ではなくむしろ、計算向けに一致済みの値を使用して動作する。したがって、宇宙線120が、マルチコア制御システム130内のSEUを引き起こすときに、マルチコア制御システム130は、SEUが生じたと特定し、影響されたコアを停止すること、低減されたコアの組で動作すること、影響されたコアを再起動すること、及びそれらの組み合わせを含む、適切な救済動作を行う。
マルチコア制御システム130は、図1の人工衛星110内の通信システム140、操作システム150、及びソーラーパネル管理システム160として図示されている、システム100の様々なサブシステムを制御し得る。マルチコア制御システム130が、所与の時間においてどの作業の処理を行っているかに応じて、SEUによって影響された1以上のプロセッサをリセットするために、オフラインにすること(たとえ短くても)は、種々のやり方で様々なサブシステムに影響を与え得る。それが、今度は、システム100の動作安全性に影響を与える。例えば、コアをリセットすることは、マルチコア制御システム130が通信システム140と共に通信を処理しているときに、人工衛星への又は人工衛星からの通信を妨害し得る。それは、マルチコア制御システム130がオフラインになっている間に、データの再送信(又は再送信のリクエスト)、データの忠実度の損失(例えば、送信間のギャップ)などを要求し得る。別の一実施例では、マルチコア制御システム130が、不適切に実行された操作、操作ウインドウを見失うこと、及び衝突の危険を高めること、などを行わないように、操作システム150を制御し、限られた燃料を消費しているときに、コアをリセットすることが、人工衛星110の配置及び移動を妨害し得る。したがって、マルチコア制御システム130は、デバイス向けの処理作業に対処するのに利用可能な1つ少ないコアを有する効果を低減させ、影響されたコアを再起動するために必要とされる休止時間を低減させ、それによって、システム100の稼働時間を高めるために、影響されたコアに最善の対処をするようなやり方とタイミングとを決定する。
マルチコア制御システム130は、影響された/影響されていないコアの数、及びシステム100が再起動するのに安全な時間にあるかどうかに応じて、様々な再起動イベントを実行し得る。したがって、種々のサブシステムは、再起動することと、低減された組のコアで処理を継続することとについての種々の優先度を有し得る。
例えば、人工衛星110の操作システム150は、高い優先度を有するサブシステムとして格付けされ得る。それによって、マルチコア制御システム130が、操作システム150向けの指示命令又は作業を取り扱っており、SEUに遭遇したときに、再起動イベントは、その作業が完了した後まで遅延される。対照的な一実施例では、人工衛星110のソーラーパネル管理システム160が、低い優先度を有するサブシステムとして格付けされ得る。それによって、マルチコア制御システム130が、ソーラーパネル管理システム160向けの指示命令又は作業を取り扱っており、SEUに遭遇したときに、再起動イベントは、その作業が完了する前に実行される。別の一実施例では、通信システム140が、送信されているデータに応じて高い優先度又は低い優先度に格付けされてよく、それによって、高い優先度の送信を取り扱っているときに再起動イベントを遅延させ、又は低い優先度の送信を取り扱っているときに再起動することを優先する。
幾つかの態様では、マルチコア制御システム130が、コアによって処理される指示命令内で示されているタグに基づいて、影響されたコアの再起動を実行するのに安全な時間を認識する。例えば、タグは、システム100の動作を妨害することなしに、再起動イベントが後で実行され得るサブルーチン又は機能の終わり(例えば、作業における中断)を示し得る。別の一実施例では、タグが、次のことを示し得る。すなわち、所与のサブルーチン又は機能は、予め規定された時間ウインドウ内の次の動作を予期し、又は高い優先度のサブシステムからの中断を受けてよく、したがって、再起動は、システム100の動作を潜在的に妨害することなしに、その最中に若しくはその後に実行され得ない。
図2A~図2Cは、本開示の態様による、図1で説明されたものなどのマルチコア制御システム130用の動作線図を示している。図2A~図2Cの各々では、複数のコア210a~n(概して又は集合的にコア210)が、デバッグトレースデータストリーム230a~n(概して又は集合的に、デバッグトレースデータ又はデバッグトレースデータストリーム230)によって、スーパーバイザ220に接続されている。今度は、所与のコア210が、オフラインにされるとき、リセットされるとき、再初期化されるとき、別の1つのコア210からのデータを再ロードされるとき、及びそれらの組み合わせのときに、それを伝える信号を送信するために、スーパーバイザ220が、関連付けられた再起動経路240a~n(概して又は集合的に再起動経路240)を介して、コア210の各々に接続されている。幾つかの態様では、コア210が、様々な処理デバイスを表している。それらは、埋め込まれた縮小命令セットコア(RISK)コア又は外部のデバイスを含み得る。スーパーバイザ220は、SEUに対する回復力を有するように選択され、様々なコア210をモニタ及び制御するために、様々な放射線対応プロセッサ、ハードウェア規定された状態マシン、メンテナンスプロセッサなどを含み得る。
スーパーバイザ220は、様々なデバッグトレースストリーム230を介してコア210の各々と通信する。様々なデバッグトレースストリーム230は、指示命令トレース、データトレース、システムトレース、アドレス同期トレース(ASYNC)、指示命令同期トレース(ISYNC)、及びそれらの組み合わせを含み得る。ASYNC及びISYNCは、トレースデータストリームに個別に符号化されるパターン及びデータを含み、任意選択的に時間スタンプ(time stamp)データを含み得る。
スーパーバイザ220は、デバッグトレースデータストリーム230を介してコア210からのデータ出力を受け取り、関連付けられた再起動経路240(関連付けられたコア210の停止及び再起動を制御する)を介して、様々なコア210に命令を送る。様々な態様では、コア210及びスーパーバイザ220が、共有集積回路又はシステムオンチップ(SoC)上に位置付けられる。デバッグトレースデータストリーム230及び再起動経路240は、その集積回路上に規定された様々なトレースを含む。他の態様では、1以上のコア210が、他のコア210又はスーパーバイザ220とは異なる集積回路上に規定され、デバッグトレースデータストリーム230及び再起動経路240は、異なる集積回路の間の通信経路及びバスを含む。
様々な態様では、スーパーバイザ220が、任意選択的に、メモリ250を含む。その場合、接続されたコア210のステータスが、記憶され、アクティブなコア210の数が動作中に変化するときに、比較器225がどのように動作するかを管理するために使用される。幾つかの態様では、状態マシンの現在の状態を捕捉するために、メモリ250が、TMRレジスタ、フリップフロップ、又はラッチを含む。メモリ250はまた、小さいプロセッサのプログラム及びデータストレージとしても使用され得る。他の態様では、スーパーバイザ220によって使用されるメモリ250が、ロバストな誤り訂正符号化(ECC)(すなわち、ECCメモリ)を使用する。
スーパーバイザ220がモニタしているアクティブなコア210の数に応じて、スーパーバイザ220は、種々の比較モード向けの比較器225を構成する。
図2Aは、比較向けの対応する入力をスーパーバイザ220に提供するアクティブなコア210a~nを有する複数のコア210を示している。スーパーバイザ220は、多数決モード比較向けの比較器225を構成する。それによって、デバッグトレースデータストリーム230を介してコア210からの値出力における不一致が生じたときに、スーパーバイザ220は、第1の群のコア210によって提供される第1の値を使用し、第2の値を提供する第2の群のコア210をディスエーブルする。その場合、第2の群は、第1の群よりも少ないメンバーを有する。例えば、スーパーバイザ220がn個のコア210をモニタし、時間tにおいて、x個のコア210が出力Aを戻し、y個のコアが出力Bを戻す場合であって、x+y=nであり且つx>yである場合、スーパーバイザ220は、システムを制御するために、出力Aを値として使用し、時間tから前へ出力Bを戻したy個のコア210が再起動されるまで、それらのコア210をディスエーブルするか又は無視する。様々な態様では、アクティブなコア210の数が、偶数であるときに、スーパーバイザ220は、等しい数のコア210が異なる値を戻すときに(すなわち、n/2個が出力Bを戻し、n/2個が出力Aを戻す)、比較器225がコア210の全てを影響されたとマーキングするように、デッドロック取り扱いルーチン(deadlock handling routine)をイネーブルする。例えば、2つだけのコア210が並列して動作しており、不一致を検出し、両方のプロセッサをリセットし及び/又は並列して動作している別の一対に切り替える場合、この状態が生じ得る。
図2Bは、比較向けの入力をスーパーバイザ220に提供する3つのアクティブなコア210a~cを有する複数のコア210を示している。様々な態様では、スーパーバイザ220が、更なるコア210をディスエーブルした後で(例えば、n個のコア210をモニタしており、最初にn>3であり、現在n=3である)、3つのアクティブなコア210a~cをモニタする。3つのアクティブなコア210aをモニタしているときに、スーパーバイザ220は、多数決モード比較向けの比較器225を構成する。それによって、デバッグトレースデータストリーム230を介してコア210からの値出力における不一致が生じたときに、スーパーバイザ220は、2つのコア210によって提供される第1の値を使用し、第2の値を提供する1つのコア210をディスエーブルする。例えば、スーパーバイザ220が3つのコア210a~cをモニタする場合、時間tにおいて、第1のコア210が出力Aを戻し、第2のコア210b及び第3のコア210cが両方とも出力Bを戻す場合、スーパーバイザ220は、システムを制御するために出力Bを値として使用し、時間tから前へ第1のコア210aが再起動されるまで、第1のコア210aをディスエーブルし又は無視する。
図2Cは、比較向けの入力をスーパーバイザ220に提供する2つのアクティブなコア210a~bを有する複数のコア210を示している。様々な態様では、スーパーバイザ220が、第3のコア210cをディスエーブルした後で(例えば、n個のコア210をモニタしており、最初にn≧3であり、現在n=2である)、2つのアクティブなコア210a~bをモニタする。2つのアクティブなコア210をモニタしているときに、スーパーバイザ220は、コンセンサスモード比較向けの比較器225を構成する。それによって、デバッグトレースデータストリーム230を介してコア210からの値出力における不一致が生じたときに、スーパーバイザ220は、両方のコア210がいずれも「正しい」出力を提供していると確認できないときに、両方の値を無視する。というのも、1つのコア210を用いて進むと、将来の計算のための冗長性を提供し得ないからである。したがって、スーパーバイザ220は、システムを制御するために作業を実行することを継続する前に、コア210a~bの間で状態差が検出されたときに、両方のコア210a~bが同時に再起動されるように信号を送信する。
図3は、本開示の態様による、コア同期のためのデバッグトレースストリームを使用する方法300のフローチャートである。方法300は、ブロック310で開始する。その場合、スーパーバイザ220が、冗長性のために並列して作業を実行する複数のコア210を含むシステム用の複数のデバッグトレースデータストリーム230をモニタする。スーパーバイザ220は、異なるコア210からのデバッグトレースストリームが、互いに一時的に協調することを確実にする。それによって、わずかな時間差で比較器225に到達するにもかかわらず、(公称では)等価な出力が互いに対して比較される。一実施例では、1つのコア210が、他のコア210からの出力論理値に適合する論理値を生成したときを特定するために、スーパーバイザ220が、関連付けられたコア210によって同じクロックサイクルで生成された論理値をモニタする。他の実施例では、コア210が、異なる集積回路で動作するか、又はさもなければ非同期的に出力を生成するときに、スーパーバイザ220は、互いに対する比較のために出力を協調させるためにそれらの出力を緩衝し(buffer)得る。別の一実施例では、デバッグトレースストリームが時間スタンプを含むときに、スーパーバイザ220が、同じ時間スタンプに関連付けられたデータ値が互いに対して比較されることを確実にする。
様々な態様では、スーパーバイザ220が、SEUによって影響されたと以前に特定されたコア210から報告された値、又はさもなければ他のコア210の出力に適合しない論理値を生成する値を、選択的に無効にし得るか又はさもなければ無視し得る。したがって、スーパーバイザ220は、互いに対して適合する出力を生成すると確認されたアクティブなコア210をモニタする。影響されたとマーキングされた任意のコア210は、再起動され他のコア210とのロックステップ状態に戻されるまで無視され得る。
ブロック320では、アクティブなコア210のうちのいずれかが、互いと異なる、同じクロックサイクル向けの値を生成しているかどうかを特定するために、スーパーバイザ220内の比較器225が、各デバッグトレースストリーム230で運ばれる値を比較する。1つのデバッグトレースストリーム230の他のデバッグトレースストリーム230に対する状態差を検出したことに応じて、方法300は、ブロック330に進む。にもかかわらず、各デバッグトレースデータストリーム230の各々によって運ばれる状態値が等しいときに(すなわち、状態差が存在しない)、方法300は、デバッグトレースデータストリーム230をモニタすることを継続するために、ブロック310に戻る。
ブロック330では、スーパーバイザが、他のコア210の出力に適合しない出力を生成したコア210を、システム100がコア210の残りの部分との冗長な計算を提供するためにもはや信頼できない影響されたコア210としてマーキングする。様々な態様では、1以上のコア210が、再起動される前に、同じ時間に又は一定の期間を経て、影響されたコア210としてマーキングされてよい。例えば、2つのコア210がコンセンサスモードで動作しているときに、両方のコア210a~bの出力は、システムによって使用されるために適合しなければならず、第1のコア210aが第2のコア210bとのロックステップ状態から外れていると標されているときに、第1のコア210aと第2のコア210bとの両方は、影響されたコアとしてマーキングされる。同様に、5つのコア210があるときに、第1のコア210aと第2のコア210bの出力が、他の3つのコア210の出力(互いに適合している)と適合しないときに、第1のコア210aと第2のコア210bとの両方は、影響されたコアとしてマーキングされる。
別の一実施例では、n個のコア210を動作させているときに、第1のコア210aが、時間tにおいて影響されたコア210としてマーキングされてよく、第2のコア210bが、時間tにおいて影響されたコア210としてマーキングされてよい。時間tとtとの間で再起動イベントが生じたときに、第1のコア210aは、もはや影響されたコア210としてマーキングされていないが、第2のコア210bは、影響されたコア210としてマーキングされている。さもなければ、再起動イベントが、時間tと時間tとの間で生じなかった場合、第1のコア210aと第2のコア210bの両方は、影響されたコア210としてマーキングされている。したがって、影響されたコア210の数は、再起動イベントが生じるまで経時的に増加し得る。
ブロック340では、スーパーバイザ220が、幾つの影響されていないコア210が複数のコア210内に残っているかを決定する。2つ未満のコア210が影響されていないままであるときに、方法300は、ブロック370に進む。さもなければ、2つ以上のコア210が影響されていないままであるときに、方法300は、ブロック350に進む。
ブロック350では、スーパーバイザ220が、任意の影響されたコア210を停止し、影響されていないコア210のデバッグトレースデータストリーム230をモニタすることを継続し(例えば、ブロック310で)、したがって、冗長な計算を提供するために利用可能なコア210の数を低減させるが、残っているコア210はロックステップ状態にあることを確実にする。
計算に冗長性を提供するために、複数のコア210内に残っている影響されていないコア210の数に応じて、スーパーバイザ220は、比較器225によって使用される冗長モードを変更し得る。例えば、複数のコア210が3つのアクティブなコア210から2つのアクティブなコア210に低減されるとき(例えば、第1のコア210aが影響され、停止され、一方で、第2のコア210bと第3のコア210cが影響されず、処理を継続する)、スーパーバイザ220は、比較器225を多数決冗長モードからコンセンサス冗長モードに切り替える。別の一実施例では、複数のコア210が、4つ以上のアクティブなコア210から少なくとも3つのアクティブなコア210に低減されるとき(すなわち、nからn-1個のコア210に、ここで、n≧4である)、スーパーバイザ220は、比較器225を多数決冗長モードに維持する。更に、アクティブなコア210の数が、冗長モードにおいて奇数から偶数へ又はその逆に変化するときに、スーパーバイザ220は、等しい数のコア210が第1の結果と第2の結果とを戻すときに(すなわち、n/2が出力Bを戻し、n/2が出力Aを戻す)、コア210の全てを影響されたとしてマーキングするために、デッドロック取り扱いルーチンをイネーブル又はディスエーブルし得る。
ブロック360では、スーパーバイザ220が、システムが安全な再起動時間に到達したかどうかを判定する。様々な態様では、コア210によって制御されるシステム100が、当該システム100が、1以上のコア210を再起動する時間を確保するために、処理を一時的に中止しても安全な状態にあるときを示す安全プロファイルを提供し得る。例えば、人工衛星110(図1のような)は、人工衛星110が操作(例えば、軌道を調整するか又はデブリを回避するために)を実行していない又は地上のコントローラから命令を受け取っていないときに、再起動イベントが安全であることを示し得る。したがって、人工衛星110が、低減された組のコア210で(例えば、少なくとも1つの影響されたコア210が、ディスエーブルされ又は複数のコア210から除去された状態で)、処理を継続するオプションを有するときに、スーパーバイザ220は、人工衛星110が安全な再起動時間(安全なリセット時間とも称される)に到達するまで、影響されたコア210を再起動することを待つ。様々な態様では、安全な再起動時間が、コア210によって実行される処理においてタグによって示される。そのタグは、スーパーバイザ220内の安全なリセットビットを出力A又は出力Bに設定する。それらは、システムが安全な再起動時間にあるかどうかを示す。
システム100が、安全な再起動時間にないと判定したことに応じて、方法300は、ブロック350に戻って、システム100を低減された組のアクティブなコア210で動作させることを継続する。しかし、システム100が安全な再起動時間に到達し又は安全な再起動時間にあると判定したことに応じて、方法300は、ブロック370に進み、1以上のコア210を再起動する。
ブロック370では、スーパーバイザ220が、影響されたコア210を再起動する。様々な態様では、スーパーバイザ220が、影響されたコア210に加えて、影響されていないコア210をリセットする。それによって、全てのコア210を、新しく開始してロックステップ状態にすることができる(例えば、それぞれのレジスタをクリアにし、全てのコア210を同じ指示命令で開始する)。他の態様では、スーパーバイザ220が、影響されたコア210のレジスタに、影響されていないコア210のレジスタからのデータ(すなわち、「良好な」レジスタデータ)をロードし、影響されたコア210を再初期化して、影響されていないコア210とのロックステップ状態にする。
影響されたコア210を再起動するための別の1つのオプションは、コア210が個別の集積回路上にあるか又は個別のパワードメインにある場合、(1以上の)影響されたコア210をパワーサイクルすることである。パワーサイクル再起動は、次の場合に特に有用であり得る。すなわち、集積回路が、ラッチアップに対して脆弱であり、所与のコアの出力を上げ下げするパワーサイクルが、本格的な故障を生じる前にラッチアップを修正し得る場合である。ラッチアップ状態の検出は、次の場合に想定され得る。すなわち、デバイスが、そのような可能性に対応せず、或いは、トレースストリームの不一致が、そのデバイスの現在の測定値と併せて使用され得る場合である。代替的に、パワーサイクルリセットは、影響されたコアをリセットするか又は停止させることについてのシステム設計者選択事項であってよい。
影響されたコア210を再ロード及び再初期化することによって影響されたコア210を再起動することは、影響されていないコア210がアクティブであり続けることを可能にし、影響されたコア210を影響されていないコア210と一致するように戻す。一旦再起動されると、スーパーバイザ220は、影響されたコア210を影響されていないとしてマーキングし(例えば、影響されたステータスを除去する)、全てのコア210からのデバッグトレースデータストリーム230をモニタするように、比較器225を再構成する。様々な態様では、スーパーバイザ220が、コア210を比較するための冗長モードを、コンセンサスモード(例えば、2つのアクティブなコア210に対して)から、多数決モード(例えば、3つ以上のコア210に対して)にリセットする。
本明細書で使用されるように、コア210を停止することは、待機指示命令を介して、そのコア210に対する指示命令の実行を停止すること、ハードウェアブレイクポイント若しくはハードウェアトリガを介して、リセット、リセットのパワーオン、ソフトウェアリセットを適用すること、又はリセット状態にあるコア210を保持することを意味し得る。本明細書で使用されるときに、コア210を再起動することは、コアを復旧することによって停止状態を除去すること、リセットを無効にすること、コア210を停止状態に保持するハードウェア条件を除去すること、ソフトウェア待機をオーバーライドすること、又は停止指示命令をオーバーライドすることを意味し得る。本明細書で使用されるときに、コア210を再初期化することは、デバッグインフラを介してコア210のレジスタ及び/若しくは専用メモリを復旧すること、デバッグインフラを使用して、レジスタ及び/若しくはメモリが完全(ソフトエラー)であることを確認すること、又はコア210を既知の状態に復旧するために、ブートストラップソフトウェアを含むリセットプロセスを使用することを意味し得る。デバッグインフラは、コア210から外部のハードウェア、例えば、JTAG(ジョイントテストアクショングループ)又はメモリマッピングされたデータバスをデバッグ機構などへ、提供される任意の利用可能なハードウェア経路を含み得る。
スーパーバイザ220が、(1以上の)コア210を再起動した後で、方法300は、今や復旧されて利用可能なコア210のフルセットを用いて、デバッグトレースデータストリーム230をモニタすることを継続するために、ブロック310に戻る。
図4は、本開示の態様による、マルチコア制御システム130などとして使用され得る計算デバイス400を示している。計算デバイス400は、複数のコア210a~n、メモリ420、及び通信インターフェース430を含む、プロセッサ410を含む。様々な態様では、スーパーバイザ220が、プロセッサ410と共に又は個別の要素として含まれ得る。プロセッサ410及びメモリ420は、本明細書で説明される様々なデータの記憶及び検索を含む、それぞれの計算デバイス400向けの様々なプログラム及び/又は動作を実行するために、計算機能を提供する。
プロセッサ410は、本明細書で説明される機能を実行することができる任意のコンピュータプロセッサであってよく、ユーザ又はセンサから受け取った入力、及び通信インターフェース430から受け取ったデータに基づいて、命令を実行する。
メモリ420は、概して、様々なプロセッサが実行可能な指示命令を含む、コンピュータ可読メモリ記憶デバイスである。それらの指示命令は、プロセッサ410によって実行されたときに、本明細書で説明されるように、潜在的なSEUに曝露されるシステム(例えば、人工衛星110、宇宙船、航空機など)の制御に関連する様々な機能を実行する。様々な態様では、メモリ420が、個々のプロセッサ410若しくはコア210に取り付けられてよく、又は幾つかのプロセッサ410若しくはコア210によって共有されるメモリサブシステムであってよい。プロセッサが実行可能な指示命令は、概して、メモリ420内の様々な「アプリケーション」若しくは「モジュール」の中へ記述若しくは組織化され得るが、代替的な実施態様は、異なる機能及び/又は機能の組み合わせを有してよい。メモリ420はまた、概して、様々なアプリケーション又はモジュールによって使用され又は出力される情報を記憶するデータ構造も含み得る。本開示では、メモリ420が、システム421、1以上のアプリケーション422用の少なくとも指示命令を含む。メモリ420は、様々な態様のパリティー又は誤り訂正符号などのような冗長性を含み得る。それによって、関連付けられたコア210によって排他的に使用される個々のメモリ420における不具合は、メモリデータが関連付けられたコア210によってアクセスされるイベントにおいて、本明細書で説明されるトレース比較を介して検出され得る。メモリ420は、1以上のメモリデバイス、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、磁気媒体、光学媒体、フレキシブルデータストレージ、又はプロセッサ410が実行し得る指示命令を含む任意の他の種類の揮発性若しくは不揮発性記憶媒体などであってよい。本明細書で使用されるときに、メモリ記憶デバイスは、装置を説明するものであって、非一過性の信号ではないと理解されたい。
通信インターフェース430は、計算デバイス400を外部のデバイス、例えば、外部のメモリデバイス、外部の計算デバイス、電源、無線送信器などに接続し、様々な接続ポート(例えば、ユニバーサルシリアルバス(USB)、イーサネット、SpaceWire、同軸ジャック)及びケーブルを含み得る。通信インターフェース430を使用して、計算デバイス400の間で送受信を行う。
本開示では、様々な態様に言及される。しかし、本開示は、特定の説明された態様に制限されないことを理解されたい。その代わりに、本明細書で提供される教示を実装し、実践するために、下記の特徴及び要素の任意の組み合わせが、種々の態様に関連しているか否かに関わらず想定される。更に、態様の要素が、「AとBのうちの少なくとも1つ」の形態で説明されるときに、要素Aのみ、要素Bのみ、及び要素A及びBを含む態様が、各々想定されることを理解されたい。更に、幾つかの態様は、他の潜在的な解決策及び/又は先行技術を超える利点を実現し得るが、特定の利点が所与の態様によって実現されるか否かは、本開示を限定していない。したがって、本明細書で開示される態様、特徴、及び利点は、単なる例示であり、且つ、(1以上の)請求項に明記されない限り、付随する特許請求の範囲の要素であるとも、付随する特許請求の範囲を限定するとも、見なされない。同様に、「本発明」への言及は、本明細書で開示されている発明のあらゆる主題を一般化するものと解釈すべきではなく、且つ、(1以上の)請求項に明記されない限り、付随する特許請求の範囲の要素であるとも、付随する特許請求の範囲を限定するとも、見なすべきではない。
当業者によって理解され得るように、本明細書で説明される態様は、システム、方法、及び/又はコンピュータプログラム製品として具現化され得る。諸態様は、専らハードウェアである態様、専らソフトウェア(ファームウェア、組み込まれたソフトウェア、常駐ソフトウェア、マイクロコードなどを含む)である態様、又はソフトウェアとハードウェアの態様を組み合わせた態様の形態を採り得る。本明細書では、それらは全て「回路」、「モジュール」、又は「システム」と広く称され得る。更に、本明細書で説明される態様は、コンピュータ可読プログラムコードが具現化される1以上のコンピュータ可読記憶媒体内で具現化されるコンピュータプログラム製品の形態を採り得る。
コンピュータ可読記憶媒体で具現化されたプログラムコードは、無線、有線、光ファイバケーブル、RFなど、又は、それらの任意の好適な組み合わせを含むがそれらに限定されない、任意の適切な媒体を使用して伝送され得る。
本開示の態様の工程を実行するためのコンピュータプログラムコードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語もしくはこれに類するプログラミング言語などの従来の手続き型プログラミング言語を含む、1以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラムコードは、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型のソフトウェアパッケージとして、部分的にユーザのコンピュータ上で且つ部分的に遠隔コンピュータ上で、又は、専ら遠隔コンピュータ又はサーバ上で、実行し得る。後者の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るか、又は、(例えば、インターネットサービスプロバイダを利用してインターネットを介して)外部のコンピュータへの接続がなされてもよい。
本開示の態様は、本開示の態様による、方法、装置(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照しながら、本明細書で説明される。フローチャート及び/又はブロック図の各ブロック、並びに、フローチャート及び/又はブロック図における複数のブロックの組み合わせは、コンピュータプログラム指示命令によって実行可能であると、理解されよう。これらのコンピュータプログラム指示命令は、機械を生産するために、汎用コンピュータ又は特殊用途コンピュータのプロセッサ、或いは他のプログラマブルデータ処理装置に提供されてよい。それによって、コンピュータのプロセッサ又は他のプログラマブルデータ処理装置を介して実行されるこれらの指示命令が、フローチャート及び/又はブロック図の(1以上の)ブロック内で特定される機能/作用を実施するための手段を創出する。
これらのコンピュータプログラム指示命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスが、特定の様態で機能するように指示し得る、コンピュータ可読媒体に記憶されることも可能である。それによって、コンピュータ可読媒体内に記憶された指示命令が、製造品を作製する。それらの指示命令は、フローチャート及び/又はブロック図の(1以上の)ブロック内で特定される機能/作用を実施する指示命令を含む。
コンピュータプログラム指示命令はまた、コンピュータに実装されたプロセスを生成するために、一連の動作ステップが、コンピュータ、他のプログラマブル装置、又は他のデバイスで実行されることをもたらすように、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされ得る。それによって、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスで実行される指示命令は、フローチャート及び/又はブロック図の(1以上の)ブロックで特定される機能/作用を実装するためのプロセスを提供する。
図におけるフローチャート及びブロック図は、本開示の様々な態様による、システム、方法、及びコンピュータプログラム製品の実現可能な実施態様の、アーキテクチャ、機能、及び動作を示している。そのため、フローチャート及びブロック図における各ブロックは、特定の(1以上)論理機能を実装するための1以上の実行可能な指示命令を含む、コードのモジュール、コードのセグメント、又はコードの一部分を表わし得る。幾つかの代替的な実施態様では、ブロック内に示された機能が、図面に記載された順序で行われなくともよい。例えば、実際には、関連する機能に応じて、連続して示されている2つのブロックが、実質的に同時に実行されてよく、又は、それらのブロックが逆に又は順序に関わらず実行されてもよい。ブロック図及び/又はフローチャートの各ブロック、並びに、ブロック図及び/又はフローチャートにおけるブロックの組み合わせは、特定の機能若しくは作用を実施する特殊用途のハードウェアベースのシステムによって、又は、特殊用途ハードウェアとコンピュータ命令との組み合わせによって、実装され得ることにも、留意されたい。
更に、本開示は以下の条項による実施形態を含む。
条項1.
対応する複数のコア(210)が作業を並列で実行することを含む、冗長的にシステムを動作させることのために、複数のデバッグトレースデータストリーム(230)をモニタすること(310)、
前記複数のデバッグトレースデータストリームのうちの1つのデバッグトレースデータストリームの、前記複数のデバッグトレースデータストリームのうちの他のデバッグトレースデータストリームに対する状態差を検出したこと(320)に応じて、
前記1つのデバッグトレースデータストリームに関連付けられた所与のコアを影響されたコアとしてマーキングすること(330)、及び
前記影響されたコアを再起動すること(370)を含む、方法。
条項2.
前記対応する複数のコアが、前記影響されたコア及び第2のコアを含む2つのアクティブなコアから構成され、
前記方法は、
前記状態差を検出したことに応じて、
前記第2のコアを第2の影響されたコアとしてマーキングすること、及び
前記第2のコアを前記影響されたコアと同時にリセットすることを更に含む、条項1に記載の方法。
条項3.
前記対応する複数のコアが、前記影響されたコア、第1の影響されていないコア、及び第2の影響されていないコアを含む、3つのアクティブなコアから構成され、
前記方法は、
前記状態差を検出したことに応じて、
前記影響されたコアを停止すること(350)、並びに
コンセンサス冗長モードで並列に前記作業を実行している、前記第1の影響されていないコア及び前記第2の影響されていないコアをモニタすることを更に含み。
前記影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、
前記影響されたコアに、前記第1の影響されていないコアからのレジスタデータをロードすること、及び
前記影響されたコアを再初期化することを含む、条項1に記載の方法。
条項4.
前記対応する複数のコアが、前記影響されたコア、第1の影響されていないコア、第2の影響されていないコア、及び第3の影響されていないコアを含む、4つ以上のアクティブなコアを含み、
前記方法は、
前記状態差を検出したことに応じて、
前記影響されたコアを停止すること(350)、並びに
多数決モードで並列に前記作業を実行している、前記第1の影響されていないコア、前記第2の影響されていないコア、及び前記第3の影響されていないコアをモニタすることを更に含み、
前記影響されたコアを再起動することが、安全な再起動時間を検出したこと(360)に応じて、
前記影響されたコアに、前記第1の影響されていないコアからのレジスタデータを再ロードすること、及び
前記影響されたコアを再初期化することを含む、条項1に記載の方法。
条項5.
前記対応する複数のコアが、スーパーバイザ(220)を有する共有システムオンチップ(SoC)上に含まれ、前記スーパーバイザは、
放射線対応プロセッサ、
ハードウェア規定された状態マシン、及び
メンテナンスプロセッサ、のうちの1つである、条項1に記載の方法。
条項6.
前記対応する複数のコアのうちの少なくとも1つのコアが、前記対応する複数のコアのうちの他のコアから分離した集積回路上に含まれる、条項1に記載の方法。
条項7.
対応する複数の作業のインスタンスを並列で実行するように構成された複数のコア(210)、並びに
スーパーバイザ(220)を備える、システム(100)であって、前記スーパーバイザは、
前記複数のコアからデバッグトレースデータストリーム(230)を受け取ること、及び
前記複数のコアのうちの影響されたコアに関連付けられたデバッグトレースデータストリームと前記複数のコアのうちの他のコアに関連付けられたデバッグトレースデータストリームとの間の状態差に基づいて、前記複数のコアのうちの前記影響されたコアを特定すること、を実行するように構成されている、システム。
条項8.
前記複数のコア及び前記スーパーバイザが、単一の集積回路上に配置されている、条項7に記載のシステム。
条項9.
前記スーパーバイザが、第1の集積回路上に配置され、前記複数のコアのうちの少なくとも1つのコアが、第2の集積回路上に配置されている、条項7に記載のシステム。
条項10.
前記スーパーバイザは、
安全な再起動時間まで、前記作業を実行している前記複数のコアから前記影響されたコアを除去すること、及び
前記安全な再起動時間に到達したことに応じて、前記影響されたコアを再起動すること、を実行するように更に構成されている、条項7に記載のシステム。
条項11.
前記影響されたコアを除去した後で、前記複数のコアが少なくとも2つのコアを含むときに、前記スーパーバイザは、
前記影響されたコアに関連付けられた影響されたレジスタに、前記少なくとも2つのコアのうちの1つの影響されていないコアに関連付けられた影響されていないレジスタからのデータを再ロードすること、
前記影響されたコアを再初期化すること、及び
前記影響されたコアを前記複数のコアに戻すこと、を実行するように更に構成されている、条項10に記載のシステム。
条項12.
前記安全な再起動時間が、前記システムによって制御されるデバイスの安全プロファイルに基づいて決定される、条項10に記載のシステム。
条項13.
前記複数のコアが2つのコアから構成されるときに、前記スーパーバイザは、
第2のコアを前記影響されたコアと同時にリセットすることを実行するように更に構成されている、条項10に記載のシステム。
条項14.
前記デバッグトレースデータストリームは、
指示命令トレース、
データトレース、及び
システムトレース、のうちの少なくとも1つを介して受け取られる、条項7に記載のシステム。
条項15.
指示命令を含むコンピュータ可読記憶デバイスであって、前記指示命令は、プロセッサによって実行されたときに、
対応する複数のコア(210)が作業を並列で実行することを含む、冗長的にシステムを動作させることのために、複数のデバッグトレースデータストリーム(230)をモニタすること、
前記複数のデバッグトレースデータストリームのうちの1つのデバッグトレースデータストリームの、前記複数のデバッグトレースデータストリームのうちの他のデバッグトレースデータストリームに対する状態差を検出したことに応じて、
前記1つのデバッグトレースデータストリームに関連付けられたコアを影響されたコアとしてマーキングすること、及び
前記影響されたコアを再起動することを含む、動作を実行する、コンピュータ可読記憶デバイス。
条項16.
前記対応する複数のコアが、前記影響されたコア及び第2のコアを含む2つのアクティブなコアから構成され、
前記動作は、
前記状態差を検出したことに応じて、
前記第2のコアを第2の影響されたコアとしてマーキングすること、及び
前記第2のコアを前記影響されたコアと同時にリセットすることを更に含む、条項15に記載のコンピュータ可読記憶デバイス。
条項17.
前記対応する複数のコアが、前記影響されたコア、第1の影響されていないコア、及び第2の影響されていないコアを含む、3つのアクティブなコアから構成され、
前記動作は、
前記状態差を検出したことに応じて、
前記影響されたコアを停止すること、並びに
コンセンサス冗長モードで並列に前記作業を実行している、前記第1の影響されていないコア及び前記第2の影響されていないコアをモニタすることを更に含み、
前記影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、
前記影響されたコアに、前記第1の影響されていないコアからのレジスタデータをロードすること、及び
前記影響されたコアを再初期化することを含む、条項15に記載のコンピュータ可読記憶デバイス。
条項18.
前記対応する複数のコアが、前記影響されたコア、第1の影響されていないコア、第2の影響されていないコア、及び第3の影響されていないコアを含む、4つ以上のアクティブなコアを含み、
前記動作は、
前記状態差を検出したことに応じて、
前記影響されたコアを停止すること、並びに
多数決モードで並列に前記作業を実行している、前記第1の影響されていないコア、前記第2の影響されていないコア、及び前記第3の影響されていないコアをモニタすることを更に含み、
前記影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、
前記影響されたコアに、前記第1の影響されていないコアからのレジスタデータをロードすること、及び
前記影響されたコアを再初期化することを含む、条項15に記載のコンピュータ可読記憶デバイス。
条項19.
前記対応する複数のコアが、前記複数のデバッグトレースデータストリームをモニタするように構成されたスーパーバイザ(220)を有する、共有システムオンチップ(SoC)上に含まれる、条項15に記載のコンピュータ可読記憶デバイス。
条項20.
前記対応する複数のコアのうちの少なくとも1つのコアが、前記対応する複数のコアのうちの他のコアから分離した集積回路上に含まれる、条項15に記載のコンピュータ可読記憶デバイス。
条項21.
本明細書で説明された任意の態様。
以上の説明は本開示の態様を対象としているが、本開示の基本的な範囲を逸脱しなければ、本開示の他の態様及び更なる態様が考案されてよく、本開示の範囲は以下の特許請求の範囲によって定められる。

Claims (10)

  1. 対応する複数のコア(210)が作業を並列で実行することを含む、冗長的にシステムを動作させることのために、複数のデバッグトレースデータストリーム(230)をモニタすること(310)、
    前記複数のデバッグトレースデータストリームのうちの1つのデバッグトレースデータストリームの、前記複数のデバッグトレースデータストリームのうちの他のデバッグトレースデータストリームに対する状態差を検出したこと(320)に応じて、
    前記1つのデバッグトレースデータストリームに関連付けられた所与のコアを影響されたコアとしてマーキングすること(330)、及び
    前記影響されたコアを再起動すること(370)を含む、方法。
  2. 前記対応する複数のコアが、前記影響されたコア及び第2のコアを含む2つのアクティブなコアから構成され、
    前記方法は、
    前記状態差を検出したことに応じて、
    前記第2のコアを第2の影響されたコアとしてマーキングすること、及び
    前記第2のコアを前記影響されたコアと同時にリセットすることを更に含む、請求項1に記載の方法。
  3. 前記対応する複数のコアが、前記影響されたコア、第1の影響されていないコア、及び第2の影響されていないコアを含む、3つのアクティブなコアから構成され、
    前記方法は、
    前記状態差を検出したことに応じて、
    前記影響されたコアを停止すること(350)、並びに
    コンセンサス冗長モードで並列に前記作業を実行している、前記第1の影響されていないコア及び前記第2の影響されていないコアをモニタすることを更に含み。
    前記影響されたコアを再起動することが、安全な再起動時間を検出したことに応じて、
    前記影響されたコアに、前記第1の影響されていないコアからのレジスタデータをロードすること、及び
    前記影響されたコアを再初期化することを含む、請求項1又は2に記載の方法。
  4. 前記対応する複数のコアが、前記影響されたコア、第1の影響されていないコア、第2の影響されていないコア、及び第3の影響されていないコアを含む、4つ以上のアクティブなコアを含み、
    前記方法は、
    前記状態差を検出したことに応じて、
    前記影響されたコアを停止すること(350)、並びに
    多数決モードで並列に前記作業を実行している、前記第1の影響されていないコア、前記第2の影響されていないコア、及び前記第3の影響されていないコアをモニタすることを更に含み、
    前記影響されたコアを再起動することが、安全な再起動時間を検出したこと(360)に応じて、
    前記影響されたコアに、前記第1の影響されていないコアからのレジスタデータを再ロードすること、及び
    前記影響されたコアを再初期化することを含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記対応する複数のコアが、スーパーバイザ(220)を有する共有システムオンチップ(SoC)上に含まれ、前記スーパーバイザは、
    放射線対応プロセッサ、
    ハードウェア規定された状態マシン、及び
    メンテナンスプロセッサ、のうちの1つである、請求項1から4のいずれか一項に記載の方法。
  6. 対応する複数の作業のインスタンスを並列で実行するように構成された複数のコア(210)、並びに
    スーパーバイザ(220)を備える、システム(100)であって、前記スーパーバイザは、
    前記複数のコアからデバッグトレースデータストリーム(230)を受け取ること、及び
    前記複数のコアのうちの影響されたコアに関連付けられたデバッグトレースデータストリームと前記複数のコアのうちの他のコアに関連付けられたデバッグトレースデータストリームとの間の状態差に基づいて、前記複数のコアのうちの前記影響されたコアを特定すること、を実行するように構成されている、システム。
  7. 前記複数のコア及び前記スーパーバイザが、単一の集積回路上に配置されている、請求項6に記載のシステム。
  8. 前記スーパーバイザが、第1の集積回路上に配置され、前記複数のコアのうちの少なくとも1つのコアが、第2の集積回路上に配置されている、請求項6又は7に記載のシステム。
  9. 前記スーパーバイザは、
    安全な再起動時間まで、前記作業を実行している前記複数のコアから前記影響されたコアを除去すること、及び
    前記安全な再起動時間に到達したことに応じて、前記影響されたコアを再起動すること、を実行するように更に構成されている、請求項6から8のいずれか一項に記載のシステム。
  10. 前記デバッグトレースデータストリームは、
    指示命令トレース、
    データトレース、及び
    システムトレース、のうちの少なくとも1つを介して受け取られる、請求項6から9のいずれか一項に記載のシステム。
JP2021195448A 2020-12-02 2021-12-01 コア同期のためのデバッグトレースストリーム Pending JP2022088346A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063120614P 2020-12-02 2020-12-02
US63/120,614 2020-12-02

Publications (1)

Publication Number Publication Date
JP2022088346A true JP2022088346A (ja) 2022-06-14

Family

ID=78516632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021195448A Pending JP2022088346A (ja) 2020-12-02 2021-12-01 コア同期のためのデバッグトレースストリーム

Country Status (6)

Country Link
US (1) US11934295B2 (ja)
EP (1) EP4009173B1 (ja)
JP (1) JP2022088346A (ja)
KR (1) KR20220077866A (ja)
CN (1) CN114578896A (ja)
CA (1) CA3136322A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989428B2 (en) * 2022-04-29 2024-05-21 Seagate Technology Llc Radiation-resistant data storage device
DE102022129939A1 (de) * 2022-11-11 2024-05-16 Daimler Truck AG Redundante Prozessorarchitektur für sicherheitskritische Anwendungen

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923830A (en) * 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
US6343358B1 (en) * 1999-05-19 2002-01-29 Arm Limited Executing multiple debug instructions
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
AU2001247404A1 (en) * 2000-03-14 2001-09-24 Arc Cores, Inc. Difference engine method and apparatus
US20050141503A1 (en) * 2001-05-17 2005-06-30 Welfeld Feliks J. Distriuted packet processing system with internal load distributed
US20030005380A1 (en) * 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
DE10138918A1 (de) * 2001-08-08 2003-03-06 Infineon Technologies Ag Programmgesteuerte Einheit
US7467326B2 (en) * 2003-02-28 2008-12-16 Maxwell Technologies, Inc. Self-correcting computer
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US8533530B2 (en) * 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
US8122437B2 (en) * 2008-03-31 2012-02-21 Freescale Semiconductor, Inc. Method and apparatus to trace and correlate data trace and instruction trace for out-of-order processors
US20110199899A1 (en) * 2010-02-16 2011-08-18 Lime Brokerage Holding Llc Rate-Adaptive Bundling of Data in a Packetized Communication System
EP2434358B1 (de) * 2010-09-27 2017-07-19 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Systems und System
US8791719B2 (en) * 2011-10-24 2014-07-29 Skyworks Solutions, Inc. Dual mode power amplifier control interface with a two-mode general purpose input/output interface
WO2013101077A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Reset of multi-core processing system
DE102012024818A1 (de) * 2012-03-06 2013-09-12 Conti Temic Microelectronic Gmbh Verfahren zur Verbesserung der funktionalen Sicherheit und Steigerung der Verfügbarkeit eines elektronischen Regelungssystems sowie ein elektronisches Regelungssystem
US9891917B2 (en) * 2013-03-06 2018-02-13 Infineon Technologies Ag System and method to increase lockstep core availability
US20150304177A1 (en) * 2014-04-17 2015-10-22 Advanced Micro Devices, Inc. Processor management based on application performance data
US11051026B2 (en) * 2015-08-31 2021-06-29 Intel Corporation Method and system of frame re-ordering for video coding
US9965375B2 (en) * 2016-06-28 2018-05-08 Intel Corporation Virtualizing precise event based sampling
US10754760B1 (en) * 2018-05-17 2020-08-25 Xilinx, Inc. Detection of runtime failures in a system on chip using debug circuitry

Also Published As

Publication number Publication date
EP4009173B1 (en) 2024-01-31
US11934295B2 (en) 2024-03-19
KR20220077866A (ko) 2022-06-09
CA3136322A1 (en) 2022-06-02
EP4009173A1 (en) 2022-06-08
CN114578896A (zh) 2022-06-03
US20220171694A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
US11408736B2 (en) Master control system for satellite image processing
Avizienis Toward systematic design of fault-tolerant systems
US5903717A (en) Fault tolerant computer system
US8108733B2 (en) Monitoring distributed software health and membership in a compute cluster
CN105607698B (zh) 一种星载计算机系统方案设计方法
JP2022088346A (ja) コア同期のためのデバッグトレースストリーム
US9164854B2 (en) Thread sparing between cores in a multi-threaded processor
US10078565B1 (en) Error recovery for redundant processing circuits
CA3003039C (en) Fault coverage for multiple failures in redundant systems
RU2577465C2 (ru) Система, способ и устройство для коррекции ошибки в мультипроцессорных системах
JP7351933B2 (ja) エラーリカバリ方法及び装置
US8671311B2 (en) Multiprocessor switch with selective pairing
US20120317576A1 (en) method for operating an arithmetic unit
CN108958987B (zh) 一种低轨小卫星容错系统及方法
CN105209982A (zh) 用于控制自动化系统中的物理单元的方法和设备
Avizienis A fault tolerance infrastructure for dependable computing with high-performance COTS components
KR101295770B1 (ko) 안전 무결성 확보를 위한 열차제어 시스템
JP6934346B2 (ja) コンピュータ化されたシステムおよび冗長システム
Montezanti et al. A methodology for soft errors detection and automatic recovery
US20020138550A1 (en) Multiple processing method
US8745440B1 (en) Computer-implemented system and method for providing software fault tolerance
EP3367242B1 (en) Method of error detection in a microcontroller unit
JP2015106226A (ja) 二重化システム
Duarte et al. A fault-tolerant attitude determination system based on COTS devices
US20230092343A1 (en) Lockstep processor recovery for vehicle applications