JP2012190460A - プロセッサのフォールト・トレランスを改善するための装置 - Google Patents

プロセッサのフォールト・トレランスを改善するための装置 Download PDF

Info

Publication number
JP2012190460A
JP2012190460A JP2012050554A JP2012050554A JP2012190460A JP 2012190460 A JP2012190460 A JP 2012190460A JP 2012050554 A JP2012050554 A JP 2012050554A JP 2012050554 A JP2012050554 A JP 2012050554A JP 2012190460 A JP2012190460 A JP 2012190460A
Authority
JP
Japan
Prior art keywords
processor
hypervisor
fault tolerance
signal
application
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
JP2012050554A
Other languages
English (en)
Inventor
Estaves Guy
エステヴァス、ギー
Tourteau Fabian
トゥルトー、ファビアン
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.)
Thales SA
Original Assignee
Thales SA
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 Thales SA filed Critical Thales SA
Publication of JP2012190460A publication Critical patent/JP2012190460A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/0712Error 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 a virtual computing platform, e.g. logically partitioned 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/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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Abstract

【課題】宇宙線などによるシングルイベントの障害に対するプロセッサのフォールト・トレランスを改善する。
【解決手段】マザーボードはメモリユニットおよびデータ入出力インタフェース、プロセッサとメモリユニットおよび入出力インタフェースとの間でインタフェースを形成するプログラム可能な電子部品を備え、プロセッサは少なくとも1つのアプリケーション201を実行することが可能であり、プロセッサとアプリケーション201間での情報のやりとりを一元化すると共に、フォールト・トレランス管理機構を実施するハイパーバイザ202と呼ばれるソフトウェア層を備えており、ハイパバイザ202によりアプリケーション201のサービスコール時にアプリケーション201のコンテキストを保存しておき、プログラム可能な電子部品により周期的に送信されるリセット信号により保存したコンテキストからアプリケーションの実行を再開する。
【選択図】図2

Description

本発明は、宇宙でのプロセッサの使用に関し、具体的には、宇宙のような条件下で使用されるプロセッサのフォールト・トレランス(耐障害性)の制御を改善するための装置の使用に関する。
宇宙でのプロセッサの使用は、障害に対するプロセッサの耐性、特に、SEU(シングルイベントアップセット)およびSEFI(シングルイベント機能中断)として文献に記載されているエラーに対するトレランス(耐性)の制御を必要とする。
SEUイベントとは、例えば重イオン粒子に起因して生じる、プロセッサ内部におけるビット(基本情報項目)の状態変化に対応するイベントである。
SEFIイベントとはプロセッサのロック状態に対応するイベントである。このイベントは、プロセッサの振舞いの変化をもたらしたSEUイベントから直接生じた結果である場合もある。
宇宙環境での使用に適したプロセッサがすでに知られている。しかし、これらのプロセッサは市販のプロセッサよりも処理能力が低く、しかも高価である。
本発明は、宇宙用として想定されていないプロセッサのフォールト・トレランスを改善するための装置であって、SEUまたはSEFIイベントに対する良好な耐性を保証しながら、宇宙船におけるプロセッサの統合関連コストを低減できるようにする装置を提案することによって上述した問題点を解決することを目的とするものである。
上記目的のために、本発明の目的は、マザーボードに取り付けられたプロセッサのフォールト・トレランスを改善するための装置を提供することである。前記マザーボードはメモリユニットおよびデータ入出力インタフェースを備え、前記プロセッサは少なくとも1つのアプリケーションの実行が可能であり、前記装置は、
−前記プロセッサと前記アプリケーション間での情報のやりとりを一元化すると共に、フォールト・トレランス管理機構を実施するハイパーバイザと呼ばれるソフトウェア層と、
−一方で前記プロセッサと、他方でメモリユニットおよび入出力インタフェースとの間でインタフェースを形成するプログラム可能な電子部品と、
を含むことを特徴とする。
好適には、ハイパーバイザにより実施されたフォールト・トレランス機構のうちの1つがプロセッサを既知の状態に復帰させる機能となる。前記機能は設定可能な周期に基づいて周期的に呼び出され、既知の状態へのプロセッサの復帰は、プログラム可能な電子部品が送信するリセット信号によりトリガされる。
好適には、フォールト・トレランスを改善するための装置は、プロセッサの処理コンテキストを保存する手段と、保存した処理コンテキストを復元する手段とをさらに備え、前記2つの手段を一体に用いて、プロセッサを既知の状態に復帰させる機能を実行する前にコンテキストを保存すると共に、前記復帰機能を実行した後に前記コンテキストを復元し、リセット信号が送信されるまでに所定の時間周期で送信される事前初期化信号をプロセッサが受信したとき、プロセッサの処理コンテキストを保存する手段がトリガされる。
好適には、ハイパーバイザは前記アプリケーションの複数のインスタンスの同時実行を管理することが可能となる。
好適には、フォールト・トレランスを改善するための装置は、
−前記実行対象アプリケーションのインスタンスの各々と、前記プロセッサの各々との間での情報のやりとりを記録する手段であって、機能呼び出しシーケンスを記録するこの手段がハイパーバイザにより実施される手段と、
−様々なインスタンスに対応する前記記録済み情報のやりとりを比較する手段と、をさらに備える。
本発明の1つの変形例によれば前記プロセッサは単一の処理コアを含む。
本発明の別の変形例によれば前記プロセッサは複数の処理コアを含む。
好適には、各インスタンスは異なる処理コア上で実行される。
好適には、ハイパーバイザは、事前初期化信号の受信に応答してタイムアウト要求信号をプログラム可能な電子部品へ送信するタイムアウト機能であって、リセット信号が送信されるまでに、所定の時間周期に加えて時間遅延を取得する効果を有するタイムアウト機能をさらに含む。
好適には、フォールト・トレランスを改善するための装置はウォッチドッグ機構を備え、ハイパーバイザは、所定の時間周期の終了時に上記のようなリセット信号が存在しなかった場合、ウォッチドッグが正しく動作している旨を前記ウォッチドッグに通知する信号を定期的な間隔で前記ウォッチドッグへ送信し、前記ウォッチドッグは、ハイパーバイザのソフトウェア部分を実行するプロセッサのリセットを行う。
本発明は、宇宙用途用として、PowerPCまたはDSP(デジタル信号プロセッサ)のような市販プロセッサの使用を可能にするものである。これらのプロセッサは上記のような用途のために想定されたものではないにもかかわらず、本発明はSEUまたはSEFIイベントの管理を可能にする。
ハイパーバイザによってこれらのイベントの完全な管理が行われる。このようなイベントの完全な管理は、プロセッサ上での実行を意図するアプリケーションの開発を単純化するという効果を与えることになるため、これらのアプリケーションはフォールト・トレランス機構を実施する必要がなくなる。
さらに、ハイパーバイザには、これを一度開発するだけで異なるプロジェクト上でも再使用が可能となる十分な汎用性がある。
本発明を限定するものではない例として、かつ、図面の助けによりこの詳細な説明を読むとき、本発明のより良い理解が得られ、その他の利点も明らかになる。
ハードウェアレベルでの本発明に係る装置の実施例を表す。 ソフトウェアレベルでの本発明に係る装置の実施例を表す。 本発明に係る装置を実装するプロセッサ上でのアプリケーションの実行例を表す。
本発明に係る装置の実施形態例を図1に示す。
プロセッサ100がマザーボードに取り付けられ、このマザーボード上に、
−SDRAM(同期ダイナミックランダムアクセスメモリ)102と、
−EEPROM(電気的に消去可能なプログラマブルリードオンリメモリ)103と、
−PROM(プログラマブルリードオンリメモリ)104と、
−外部との通信を行うデータ入出力インタフェース105と、
−一方でプロセッサ100と、他方でメモリユニットおよび入出力インタフェースとの間でインタフェースを形成するプログラム可能な電子部品101とが取り付けられている。本例では、電子部品101は耐放射線技術を利用して開発されたFPGAまたはASIC電子部品である。
プロセッサ100は「従来方式の」プロセッサとして、すなわち宇宙用途専用ではないプロセッサとして説明することができる。
SDRAMメモリ102は、EDAC(誤り検出および訂正)機構によって、あるいは、冗長性(一般に投票方式に関連する三重化)によって保護されている。
プログラム可能な電子部品101は、アドレス指定可能なメモリ空間(SRAM、SDRAM、PROM、EEPROMなど)をセグメント化するメモリ管理ユニット(MMU)を備える。このセグメント化によって、メモリはアドレスにより特定されるセグメントに分割され、種々のプログラムの相互間の隔離が可能となる。
プロセッサ100は、
−パリティビットに基づく保護機構を含む第1レベルのキャッシュメモリ(L1)と、
−パリティビットか誤り訂正コード(ECC)のいずれかに基づく保護機構も含む第2レベルのメモリと、を備える。
プロセッサ100は、ハードウェアの仮想化機能(プロセッサレベルでの実行の追加スーパバイザモード、仮想メモリの管理、入出力周辺機器の仮想化など)を備えることができる。上記のようなケースではない場合、メモリ管理機能(ブロック保護ユニット、メモリ管理ユニット)をプログラム可能な電子部品101内に実装することができる。次いで、このメモリ管理機能によって、プロセッサ100によりアドレス指定されるメモリのセグメント化および保護を行う可能性が提供される。
プロセッサ100およびプログラム可能な電子部品101は、特に、以下で説明する種々の信号106、107、108、109、110の送信を可能にするデータバス111を介して通信を行う。
図2は、ソフトウェアレベルでの本発明に係る装置の実施例を表す図である。この装置は、ハードウェア資源203(プロセッサボード上に設けられたプロセッサ100、プログラム可能な電子部品101、メモリ、入出力周辺機器)とアプリケーション201間での情報のやりとりを一元化すると共に、フォールト・トレランス管理機構を実施するソフトウェア層(ハイパーバイザ202またはソフトウェア・スーパバイザと呼ばれる)を備える。
プロセッサ100と、「残りの世界」すなわちその他の電子部品203および実行対象アプリケーション201間でのすべての情報のやりとりはハイパーバイザに渡される。特に、外部(入出力部を通過するデータ)とのデータのやりとり(データの取得と生産)を管理するのはこのハイパーバイザである。
実行対象アプリケーションの観点から見ると、ハイパーバイザによって、ハードウェア資源(プロセッサのレジスタ、メモリ、入出力部)の仮想化が行われる。ハイパーバイザにはこの目的のために提供される仮想化層202.2が含まれている。ハイパーバイザは、アプリケーション201がハードウェア資源(プロセッサ、メモリなど)にアクセスできるようにするインタフェース機能(API)202.1を提供する。
ハイパーバイザは、特定のプロセッサレベルでのイベント、特に割込みを管理する。
ハイパーバイザのコードが変更されないことを保証するために、ハイパーバイザは、リードオンリモードのみでアクセス可能なプログラム可能メモリ(PROM:プログラマブルリードオンリメモリ)から実行される。
ハイパーバイザ202はプロセッサ100上で実行される。
ハイパーバイザは、第1レベルのキャッシュメモリ(L1)のパリティビットのようなプロセッサの資源の管理、ならびに、第2レベルのキャッシュメモリ(L2)の誤り訂正機構(ECC)の管理を行う。したがって、キャッシュメモリレベルでSEUに起因して生じるパリティエラーや単一のEDACエラーが生じた場合、ハイパーバイザは実行中のアプリケーションへ正しい情報を配信する。この実行アプリケーションは、この種のエラーを管理する必要はないが、この種のエラーについて通知を受けるサービスにハイパーバイザ側で購読することは可能である。
エラー回復戦略(error recovery strategies)がハイパーバイザレベルで実行される。
ハイパーバイザの起動は、実行中のアプリケーションによるハイパーバイザのAPIに対する呼び出しによって、あるいは、(タイマや入出力周辺機器により生成されるような)割込みなどのハードウェアからの非同期イベントによって行われる。
ハイパーバイザは、ウォッチドッグ固有の動作をチェックするウォッチドッグ機構を備えている。
ハイパーバイザは、ウォッチドッグが正しく動作している旨をウォッチドッグに通知するために定期的な間隔でウォッチドッグへ信号を送信する。この信号は、プロセッサ100とプログラム可能な電子部品101間の図1の信号109により表されている。所定の時間周期の終了時にこのような信号が存在しなかった場合、ウォッチドッグは、ハイパーバイザ202のソフトウェア部分を実行するプロセッサ100のリセットを行う。このウォッチドッグ機構により、ハードウェアおよび/またはソフトウェアのロック状態の是正が可能となる。
本発明の1つの特徴によれば、プロセッサのフォールト・トレランスを改善するための装置は、プロセッサを既知の状態に戻す機構を備えており、これはリセットとも呼ばれる。
この機構は、状態や、値あるいは所定の状態を変更できるプロセッサのすべての要素(内部メモリ、フリップフロップ、レジスタ)の機能に帰することができる。
この機構は周期的にトリガされる。このトリガによって、変えるべきでないときに値を変えるレジスタのようなプロセッサ内の不整合状態の回避が可能となる。このような値の変化は、例えば、このレジスタにぶつかる重イオンを受けることにより引き起こされるものである。
プロセッサ上で実行されるアプリケーションに関連する透過性を機構に与えるために、装置は、プロセッサが既知の状態に復帰する復帰元を示すレジスタと、プロセッサのコンテキストの保存ならびに復元を行う機能とを備えている。この機能は、プロセッサのすべてのアクセス可能なレジスタの値を保存するために、信頼性の高いメモリ内にこれらの値をコピーする(プロセッサの保存済みコンテキストを形成する)ことを可能にすると共に、別方向に(すなわち、この信頼性の高いメモリからプロセッサの対応するレジスタへ)これらの値を戻してコピーすることを可能にし、それによって以前に保存した値の復元(コンテキストの復元)を意図するものである。
具体的には、既知の状態へのプロセッサの復帰はいくつかの別の原因によりトリガされる場合があり、例えば、
−ウォッチドッグ機構に起因する場合、
−または、アプリケーション201の実行時にトリガされるエラー、例えば、アプリケーション201に対する不正なメモリアクセス、書き込み保護された領域への書き込みの試み、読み取り保護された領域への読み取りアクセスの試みなどのようなエラーに起因する場合もある。
実際には、以下の手順でリセットの実行が可能となる:
1.リセットが行われる旨をハイパーバイザに対して示す部品101による第1の信号106の送信;
2.ハイパーバイザによるプロセッサコンテキストの保存;
3.リセットが周期的リセットである旨を示すレジスタへの書き込み;
4.リセット機能の実行をトリガする第2の信号107の送信;
5.リセットのソースを決定するためのハイパーバイザによるレジスタの読み取り;
6.ハイパーバイザによるプロセッサコンテキストの復元。
このリセット機構がトリガされるとハイパーバイザも起動される。
リセット機構はハイパーバイザによりプログラムすることができる。リセット機構の起動頻度は宇宙船のミッション計画に基づいて設定される。例えば1ミリ秒から数分の範囲でこの起動頻度を指定することができる。
本発明の1つの特徴によれば、ハイパーバイザは、アプリケーションの複数のインスタンスを並列に実行する手段を含むものとなる。例えば、同じアプリケーションの2つまたは3つのインスタンスの実行結果として、特に、様々なインスタンスの実行結果を比較することによりフォールト・トレランスの改善がもたらされる。実行されるインスタンスが2つだけの場合、2つのインスタンスの結果が異なればハイパーバイザは不整合を検出する。3つのインスタンスが実行される場合、2つのインスタンスの結果が異なっていれば、予想される結果を判定するために第3の結果が用いられる。これら3つのインスタンスは一般に投票機構により比較される。
好ましい実施形態によれば、同じアプリケーションのうちの複数のインスタンスが並列に実行される場合、プロセッサのフォールト・トレランスを改善するための装置は、さらに、
−実行対象アプリケーションのインスタンスの各々と、プロセッサの各々との間での情報のやりとりを記録する手段であって、機能呼び出しシーケンスを記録する手段がハイパーバイザにより実施される手段と、
−様々なインスタンスに対応する記録済み情報のやりとりを比較する手段とを備える。
したがって、ハイパーバイザは、個々のインスタンスのそれぞれに関して記録された情報を通じて個々のインスタンスの進行状態を周期的にチェックする。3インスタンス構成では、1つのパーティションの記録済み情報が他の2つのパーティションと異なっている場合、ハイパーバイザはこの別様に振舞うパーティションの停止を決定し、次いで、その他の2つのインスタンスから判定した有効なコンテキストからパーティションの実行を再開することができる。2インスタンス構成では、ハイパーバイザのみが不整合を検出することが可能であり、以前の有効なコンテキストの保存ポイントから両方のパーティションの実行を再開(ロールバック)する決定を行う。
インスタンスの実行終了時の結果を待つことなく、これらの手段によってインスタンスの実行の整合性を検証することが可能となる。
好適には、実行対象アプリケーションのインスタンスの各々とプロセッサ間での情報のやりとりを記録する手段を設定することが可能となる。この設定には機能呼び出しシーケンスのサイズが含まれる。言い換えれば、パラメータのうちの1つはハイパーバイザの記録済み連続機能に対する呼び出し回数に対応するパラメータとなる。
例示として提示するシナリオには以下のステップが含まれる:
1.シナリオは、処理装置(プロセッサおよびマザーボード)の電源投入から開始される。電源投入にはプロセッサのリセットが含まれる。
2.電源投入(1)に続いて、(リセット信号(図1の信号107)および事前初期化信号(図1の信号106)を特定の頻度で生成する)プログラム可能メモリと、ハードウェアのウォッチドッグとを設定するステップが実行される。
3.プロセッサは1回目の周期的リセットにかけられる。
4.リセット後、ハイパーバイザはプログラム可能メモリにてコンテキストを読み取る。
5.このコンテキストは、プログラム可能メモリから取り出され、次いで、コンテキストが復元される順番でプロセッサへ送信される。次いでアプリケーション201の実行が開始される。
6.アプリケーションがプロセッサ上で実行される。このアプリケーションは、ハイパーバイザのサービスX(Call_X)の第1の呼び出しを行う。
7.ハイパーバイザは、要求されたサービスXに対応するアクションを実行し、特に、呼び出し元のアプリケーションに関する健康状態のチェックおよび整合性のチェックを実行し、情報のやりとりを記録する手段の助けによりこの呼び出しを記録し、プロセッサのコンテキストを保存する。
8.次いで、ハイパーバイザは制御を呼び出し元のアプリケーションに渡し、サービスXを要求時の状態に戻す。
9.ハイパーバイザは、(プログラム可能メモリ内に配置されている)ウォッチドッグへ信号を送信して、ウォッチドッグが正しく動作している旨をウォッチドッグに通知する。
10.プロセッサ上で実行されるアプリケーションは、ハイパーバイザのサービスY(Call_Y)を呼び出す。
10a.ハイパーバイザは、要求されたサービスYに対応するアクションを実行し、特に、呼び出し元のアプリケーションに関する健康状態のチェックおよび整合性のチェックを実行し、情報のやりとりを記録する手段の助けによりこの呼び出しを記録し、プロセッサのコンテキストを保存し、次いで、信号(図1の信号109)をウォッチドッグへ送信して、ウォッチドッグが正しく動作している旨の通知も行う。
11.次いで、ハイパーバイザは制御を呼び出し元のアプリケーションに渡し、サービスYを要求時の状態に戻す。
12.ハイパーバイザは、(プログラム可能メモリ内に配置されている)ウォッチドッグへ信号(図1の信号109)を送信して、ウォッチドッグが正しく動作している旨を通知する。
13.アプリケーションの実行が中断され、プロセッサの処理コンテキストが保存される。これらの動作は、プログラム可能な電子部品101から事前初期化信号(図1の信号106)を受信したとき、次の周期的リセットを予期して行われる。次いで、リセット信号(図1の信号107)が受信されるまでハイパーバイザは制御を保持して、プロセッサ100を既知の状態へ復帰させる。
14.プロセッサは2回目の周期的リセットにかけられる。前に説明したように、この周期は設定可能であり、例えば1ミリ秒と10秒の間に設定することができる。
15.ステップ13で保存されたコンテキストがハイパーバイザにより取り出される。
16.このコンテキストをプロセッサ内で復元するためにコンテキストはプロセッサへ送信される。次いで、アプリケーションの実行はその進行を再開する。
例えば、ハイパーバイザへの第1の呼び出し(Call_X)中にプロセッサがロックされた場合、2回目の周期的リセットが行われるまでアプリケーションの実行はブロックされる。この2回目のリセットが行われた後、最後の有効な保存済みコンテキストが(1回目のリセットの前にまたは周期時間中に)復元され、アプリケーションの実行が継続される。
以下に説明する2つの実施形態は、ハイパーバイザが同じアプリケーションの複数のインスタンスを実行するケースに対して適用されるものである。
本発明の一実施形態によれば、プロセッサは単一の処理コアを備え、アプリケーションのインスタンスは前記処理コア上で並列に実行される。
実際には、所定の時間周期にわたって第1のインスタンスが実行され、このインスタンスのコンテキストが保存される。インスタンスの実行は、別のインスタンスが所定の時間周期の間その順番で実行される順序で中断される。この別のインスタンスの実行コンテキストも保存される。他のすべてのインスタンスの実行がいったんすべて完了すると、第1のインスタンスのコンテキストが復元され、次いで、第1のインスタンスが以前のようにその実行を続行する。このようにして、これらインスタンスのすべては循環して実行される。
この実施形態は安価なプロセッサの利用が可能であるという利点を有する。
別の実施形態によれば、プロセッサが複数の処理コアを含み、アプリケーションの各インスタンスは異なる処理コア上で実行される。
この実施形態の場合、単一の処理コアを含む実施形態の場合よりも高速のインスタンスの実行が可能となる。
別の実施形態として、ハイパーバイザが、プログラム可能な電子部品101におけるデフォルトでプログラムされた時間周期に加えて、リセット信号107を実際に受信する前に、プログラム可能な電子部品101から事前初期化信号106を受信したとき時間遅延を要求できるようにする追加のタイムアウト要求信号108(図1)を使用する実施構成がある。この実施形態によって、ハイパーバイザは、リセット信号107の受信準備ができるようになるまで、重要な無停電操作の実行時に必要となる少し長い時間を得ることが可能となる。
別の実施形態として、プログラム可能な電子部品101のリセット機構の起動用追加信号110を使用する実施構成がある。この実施形態では、ハイパーバイザがプログラム可能な電子部品101のリセット機構を正しく管理できるようになるまで、必要なときにプロセッサボードに起動時刻を設定させることが可能となる。好ましい実施形態によれば、追加信号110を使用する場合、プログラム可能な電子部品101のリセット機構を無効にするためにこの信号を使用することはできない。
100 プロセッサ
101 電子部品
102 メモリユニット
103 メモリユニット
104 メモリユニット
105 入出力インタフェース
106 事前初期化信号
107 リセット信号
108 タイムアウト要求信号
201 アプリケーション
202 ハイパーバイザ

Claims (9)

  1. マザーボードに取り付けられたプロセッサ(100)のフォールト・トレランスを改善するための装置であって、前記マザーボードは、メモリユニット(102、103、104)およびデータ入出力インタフェース(105)を備え、前記プロセッサ(100)は、少なくとも1つのアプリケーション(201)を実行することが可能であり、前記装置は、
    前記プロセッサ(100)と前記アプリケーション(201)間での情報のやりとりを一元化すると共に、フォールト・トレランス管理機構を実施するハイパーバイザ(202)と呼ばれるソフトウェア層と、
    一方で前記プロセッサ(100)と、他方で前記メモリユニット(102、103、104)および前記入出力インタフェース(105)との間でインタフェースを形成するプログラム可能な電子部品(101)と、を備え、
    前記装置は、前記ハイパーバイザ(202)により実施された前記フォールト・トレランス機構のうちの1つが、前記プロセッサ(100)を既知の状態に復帰させる機能であり、前記機能は設定可能な周期に基づいて周期的に呼び出され、既知の状態への前記プロセッサ(100)の復帰は、前記プログラム可能な電子部品(101)により送信されるリセット信号(107)によってトリガされる
    ことを特徴とする、装置。
  2. フォールト・トレランスを改善するための装置であって、前記プロセッサ(100)の処理コンテキストを保存する手段と、前記保存した処理コンテキストを復元する手段とをさらに備え、前記2つの手段を一体に用いて、前記プロセッサ(100)を既知の状態に復帰させる機能を実行する前にコンテキストを保存すると共に、前記復帰機能を実行した後に前記コンテキストを復元し、前記リセット信号(107)が送信される前に、所定の時間周期で送信される事前初期化信号(106)を前記プロセッサ(100)が受信したとき、前記プロセッサ(100)の前記処理コンテキストを保存する手段がトリガされることを特徴とする請求項1に記載の装置。
  3. 前記ハイパーバイザ(202)が前記アプリケーション(201)の複数のインスタンスの同時実行を管理できることを特徴とする請求項1または2に記載のフォールト・トレランスを改善するための装置。
  4. フォールト・トレランスを改善するための装置であって、
    前記実行対象アプリケーション(201)の前記インスタンスの各々と、前記プロセッサ(100)の各々との間での情報のやりとりを記録する手段であって、機能呼び出しシーケンスを記録する前記手段が前記ハイパーバイザ(202)により実施される手段と、
    前記様々なインスタンスに対応する前記記録済み情報のやりとりを比較する手段と、
    をさらに備えることを特徴とする請求項3に記載の装置。
  5. 前記プロセッサ(100)が単一の処理コアを備えることを特徴とする請求項1〜4のいずれか一項に記載のフォールト・トレランスを改善するための装置。
  6. 前記プロセッサ(100)が複数の処理コアを備えることを特徴とする請求項1〜5のいずれか一項に記載のフォールト・トレランスを改善するための装置。
  7. 個々のインスタンスが異なる処理コア上で実行されることを特徴とする、組み合わされる請求項3または6に記載のフォールト・トレランスを改善するための装置。
  8. 前記ハイパーバイザ(202)は、前記事前初期化信号(106)の受信に応答して、タイムアウト要求信号(108)をプログラム可能な電子部品(101)へ送信するタイムアウト機能であって、前記リセット信号(107)が送信される前に、前記所定の時間周期に加えて時間遅延を取得する効果を有するタイムアウト機能をさらに含むことを特徴とする請求項2〜7のいずれか一項に記載のフォールト・トレランスを改善するための装置。
  9. フォールト・トレランスを改善するための装置であって、ウォッチドッグ機構を備え、前記ハイパーバイザ(202)は、前記ウォッチドッグが正しく動作している旨を前記ウォッチドッグに通知する信号(109)を定期的な間隔で前記ウォッチドッグへ送信し、前記所定の時間周期の終了時にこのような信号が存在しなかった場合、前記ウォッチドッグは前記ハイパーバイザ(202)のソフトウェア部分を実行する前記プロセッサ(100)をリセットすることを特徴とする、請求項1〜8のいずれか一項に記載の装置。
JP2012050554A 2011-03-08 2012-03-07 プロセッサのフォールト・トレランスを改善するための装置 Pending JP2012190460A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1100688A FR2972548B1 (fr) 2011-03-08 2011-03-08 Dispositif pour l'amelioration de la tolerance aux fautes d'un processeur
FR1100688 2011-03-08

Publications (1)

Publication Number Publication Date
JP2012190460A true JP2012190460A (ja) 2012-10-04

Family

ID=45757344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012050554A Pending JP2012190460A (ja) 2011-03-08 2012-03-07 プロセッサのフォールト・トレランスを改善するための装置

Country Status (6)

Country Link
US (1) US20120233499A1 (ja)
EP (1) EP2498184A1 (ja)
JP (1) JP2012190460A (ja)
CA (1) CA2770955A1 (ja)
FR (1) FR2972548B1 (ja)
IN (1) IN2012DE00659A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200001831A (ko) 2018-06-28 2020-01-07 한국생산기술연구원 가상현실용 공압 햅틱 모듈 및 이를 구비한 시스템

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013214013A1 (de) * 2013-07-17 2015-01-22 Continental Teves Ag & Co. Ohg Verfahren zur Erhöhung der Verfügbarkeit eines Mikroprozessorsystems
US9727357B2 (en) * 2013-10-01 2017-08-08 International Business Machines Corporation Failover detection and treatment in checkpoint systems
ES2696604T3 (es) 2013-12-13 2019-01-17 Thales Sa Arquitectura de marco tolerante a fallos con triple redundancia de software
FR3021430B1 (fr) * 2014-05-20 2016-05-13 Bull Sas Procede d'obtention d'informations stockees dans des registres de module(s) de traitement d'un calculateur juste apres la survenue d'une erreur fatale
GB2531546B (en) 2014-10-21 2016-10-12 Ibm Collaborative maintenance of software programs
CN105045672B (zh) * 2015-07-24 2018-07-06 哈尔滨工业大学 一种基于sram fpga的多级容错加固卫星信息处理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04148246A (ja) * 1990-10-08 1992-05-21 Nec Corp ウオツチドツグタイマ
JPH06230988A (ja) * 1993-02-04 1994-08-19 Mitsubishi Electric Corp 計算機
JP2008097611A (ja) * 2006-10-10 2008-04-24 Robert Bosch Gmbh 有効な信号を生成する方法及びシステム
JP2009245216A (ja) * 2008-03-31 2009-10-22 Toshiba Corp 情報処理装置および障害回復方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6467007B1 (en) * 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
GB2353113B (en) * 1999-08-11 2001-10-10 Sun Microsystems Inc Software fault tolerant computer system
US6772259B2 (en) * 2001-09-12 2004-08-03 International Business Machines Corporation Interrupt handlers used in different modes of operations
US20050204186A1 (en) * 2004-03-09 2005-09-15 Rothman Michael A. System and method to implement a rollback mechanism for a data storage unit
US7467325B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US8161478B2 (en) * 2007-05-10 2012-04-17 Embotics Corporation Management of computer systems by using a hierarchy of autonomic management elements
US7840839B2 (en) * 2007-11-06 2010-11-23 Vmware, Inc. Storage handling for fault tolerance in virtual machines
US8381032B2 (en) * 2008-08-06 2013-02-19 O'shantel Software L.L.C. System-directed checkpointing implementation using a hypervisor layer
US8856783B2 (en) * 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
US8887227B2 (en) * 2010-03-23 2014-11-11 Citrix Systems, Inc. Network policy implementation for a multi-virtual machine appliance within a virtualization environtment
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
US8488446B1 (en) * 2010-10-27 2013-07-16 Amazon Technologies, Inc. Managing failure behavior for computing nodes of provided computer networks
CN103503424B (zh) * 2010-12-20 2016-08-10 思杰系统有限公司 用于实现多核系统中的连接镜像的系统和方法
US8726276B2 (en) * 2011-01-26 2014-05-13 International Business Machines Corporation Resetting a virtual function that is hosted by an input/output adapter
US9342432B2 (en) * 2011-04-04 2016-05-17 International Business Machines Corporation Hardware performance-monitoring facility usage after context swaps

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04148246A (ja) * 1990-10-08 1992-05-21 Nec Corp ウオツチドツグタイマ
JPH06230988A (ja) * 1993-02-04 1994-08-19 Mitsubishi Electric Corp 計算機
JP2008097611A (ja) * 2006-10-10 2008-04-24 Robert Bosch Gmbh 有効な信号を生成する方法及びシステム
JP2009245216A (ja) * 2008-03-31 2009-10-22 Toshiba Corp 情報処理装置および障害回復方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200001831A (ko) 2018-06-28 2020-01-07 한국생산기술연구원 가상현실용 공압 햅틱 모듈 및 이를 구비한 시스템

Also Published As

Publication number Publication date
EP2498184A1 (fr) 2012-09-12
IN2012DE00659A (ja) 2015-07-31
US20120233499A1 (en) 2012-09-13
FR2972548A1 (fr) 2012-09-14
FR2972548B1 (fr) 2013-07-12
CA2770955A1 (fr) 2012-09-08

Similar Documents

Publication Publication Date Title
TWI236620B (en) On-die mechanism for high-reliability processor
US6948094B2 (en) Method of correcting a machine check error
US7827443B2 (en) Processor instruction retry recovery
US10423783B2 (en) Methods and apparatus to recover a processor state during a system failure or security event
JP2012190460A (ja) プロセッサのフォールト・トレランスを改善するための装置
KR102408053B1 (ko) 시스템 온 칩, 모바일 기기 및 시스템 온 칩의 동작 방법
Le et al. ReHype: Enabling VM survival across hypervisor failures
US20160117225A1 (en) Mobile flash storage boot partition and/or logical unit shadowing
TWI738680B (zh) 監視處理器之操作之系統
Mushtaq et al. Survey of fault tolerance techniques for shared memory multicore/multiprocessor systems
WO2013188332A1 (en) Software handling of hardware error handling in hypervisor-based systems
WO2012143844A1 (en) Virtual machine high availability
Bohra et al. Remote repair of operating system state using backdoors
US10817369B2 (en) Apparatus and method for increasing resilience to faults
US20140143372A1 (en) System and method of constructing a memory-based interconnect between multiple partitions
US9864708B2 (en) Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels
Le et al. Resilient virtualized systems using ReHype
WO2013101175A1 (en) Synchronous software interface for an accelerated compute engine
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
Le et al. Applying microreboot to system software
Makrani et al. Evaluation of software-based fault-tolerant techniques on embedded OS’s components
US20220318053A1 (en) Method of supporting persistence and computing device
Cerveira et al. Mitigating virtualization failures through migration to a co-located hypervisor
US7673125B2 (en) Resetting multiple cells within a partition of a multiple partition computer system
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170307