JP5609363B2 - 自己回復コンピュータシステムのためのアーキテクチャ - Google Patents

自己回復コンピュータシステムのためのアーキテクチャ Download PDF

Info

Publication number
JP5609363B2
JP5609363B2 JP2010164195A JP2010164195A JP5609363B2 JP 5609363 B2 JP5609363 B2 JP 5609363B2 JP 2010164195 A JP2010164195 A JP 2010164195A JP 2010164195 A JP2010164195 A JP 2010164195A JP 5609363 B2 JP5609363 B2 JP 5609363B2
Authority
JP
Japan
Prior art keywords
error
code block
module
processor
detected
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.)
Expired - Fee Related
Application number
JP2010164195A
Other languages
English (en)
Other versions
JP2012027610A (ja
Inventor
ディー. メレン ロジャー
ディー. メレン ロジャー
ダブリュ. ムーサ ネーダー
ダブリュ. ムーサ ネーダー
真 本多
真 本多
英雄 猪飼
英雄 猪飼
孝三 加藤
孝三 加藤
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2010164195A priority Critical patent/JP5609363B2/ja
Publication of JP2012027610A publication Critical patent/JP2012027610A/ja
Application granted granted Critical
Publication of JP5609363B2 publication Critical patent/JP5609363B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

発明は、コンピュータシステムにおけるエラー検出に関し、特に、デジタルロジックエラーを検出する、軽減する、及びデジタルロジックエラーに関する情報を格納するための自己回復機能性を有する、コンピュータシステムのためのアーキテクチャに関する。
現代の自動車は、多くの場合、多くの電子制御ユニット(「ECU」)を用いるように設計されている。自動車によっては、70を超えるECUを含むものもある。ECUは、自動車内の1つ又は2つ以上の電気システム又は電気サブシステムを制御する、プロセッサベースのシステムである。例えば、ECUは、大半の自動車の内燃機関における燃焼噴射機能及び点火時期機能を制御している。これらの機能は、自動車の動作にとって不可欠であり、これらの機能の障害は、自動車を使用する人間にとって致命的になりえるような影響を及ぼす可能性がある。
最近は、より小さい形状寸法のトランジスタをベースにしたプロセッサを使用するようにECUを設計する傾向がある。より小さい形状寸法のトランジスタをベースにしたプロセッサは、ECUの設計に多くの利益をもたらす。例えば、これらのプロセッサは、これまでのプロセッサよりも安価である傾向があり、したがって、より低コストでのECUの作成を可能にする。更に、これらのプロセッサは、より高価なその他のプロセッサと比べて、より高速で動作するとともに、より低い電力損失要件を有する。
あいにく、より小さい形状寸法のトランジスタをベースにしたプロセッサには、負の結果が伴う。1つの問題は、これらのプロセッサが一時的エラーを発生しやすいことである。一時的エラーは、プロセッサのデジタルロジックにおける短期的なエラーである。一時的エラーは、多くの場合、太陽から放射される荷電アルファ粒子によって引き起こされる。これらの粒子は、プロセッサの回路系に衝突し、プロセッサの基板を変化させる。この基板の変化の結果、プロセッサは、短期的なデジタルロジックエラーを被る。
より小さい形状寸法のトランジスタをベースにしたプロセッサに伴う第2の問題は、これらのプロセッサが持続的エラーを発生しやすいことである。持続的エラーは、プロセッサのデジタルロジックにおける長期的なエラーである。持続的エラーは、多くの場合、金属移動及び/又はプロセッサのデジタル回路系の過熱によって引き起こされる。
より小さい形状寸法のトランジスタをベースにしたプロセッサに伴う第3の問題は、トランジスタの相互コンダクタンス及び漏出などの個々のコンポーネントパラメータが温度及び時間とともに大幅に変動し、その結果、回路の耐性が下がり、動作条件が一時的及び永続的なロジックエラーをより被りやすくなることである。
したがって、一時的及び永続的なロジックエラーを正すための既存の方法は、ECUの設計に実装するには不完全で且つ望ましくないことがわかった。これらの方法は、全てのプロセッサ回路系の三倍化を必要とする。その結果、これらのプロセッサは、大幅に複雑化されるとともに、高価になり、したがって、ECUに実装するには非実用的である。
本発明は、システム内に発生するデジタルロジックエラーを検出及び軽減することができる自己回復システムによって、先行技術の欠点を克服する。システムは、また、検出されたエラーと、システムによって遂行される軽減処理と、これらの軽減処理の結果とを記述した情報のログ(「ログ情報」)を格納する。
自己回復システムは、システム内に発生するデジタルロジックエラーに関する詳細な情報を含むログを提供するゆえに、とりわけ有利である。この情報は、ネットワークを使用してシステムのリアルタイム更新を提供するエンジニアによってアクセス可能である。例えば、ログ情報は、無線ネットワークを使用して、システムから外部システムに通信される。1つの実施形態では、外部システムは、自己回復システムのコンポーネントである。サーバは、この情報を処理する。サーバ及び/又はエンジニアは、システムのための更新情報を作成する。更新情報は、異なるデジタルロジックエラーの今後の発生を阻止するためにシステムを再構成するための情報を含む。更新情報は、ネットワーク又はその他の通信手段を使用して、サーバからシステムに返すことができる。システムは、すると、更新情報を実装し、そうして、今後のプロセッサエラーの発生を阻止する。
1つの実施形態では、自己回復システムは、自己回復プロセッサを含む。自己回復プロセッサは、メモリに格納されたコードブロックと、動的署名解析回路と、エラー軽減システムとを含む。コードブロックは、プロセッサのデジタルロジックの一部分の動作に関連付けられる。1つの実施形態では、コードブロックは、プロセッサのオンチップメモリに格納される。動的署名解析回路は、コードブロックの実行を監視するために通信可能に結合される。プロセッサは、コードブロックを実行する。動的署名解析回路は、コードブロックに関連付けられたデジタルロジックの一部分の動作を表わす動的署名を作成する。
動的署名解析回路データは、エラー軽減システムに通信可能に結合される。エラー軽減システムは、動的署名解析回路から動的署名を受信する。エラー軽減システムは、コードブロックのエラーフリー実行を表わす静的署名を有する。エラー軽減システムは、署名どうしが一致するかどうかを判定するために、動的署名を静的署名と比較する。もし署名が一致しない場合は、コードブロックに関連付けられたデジタルロジックは、エラーを有する。エラー軽減システムは、コードブロックに通信可能に結合される。もし署名どうしが一致しない場合は、エラー軽減システムは、コードブロックの実行を再試行するために、コマンドを実行する。エラー軽減システムは、検出されたエラーと、検出されたエラーを克服するために遂行される軽減処理と、これらの軽減処理の結果とを記述したログ情報を作成及び格納する。
本発明は、システム内に発生するデジタルロジックエラーを検出及び軽減するための数々の方法も含む。これらの方法は、検出されたエラーと、これらのエラーを軽減するために遂行される処理と、これらの処理を遂行した結果とを記述した情報のログを作成及び格納することを含む。
ここで説明される特徴及び利点は、包括的ではなく、当業者にならば、図面及び説明を考慮することによって、多くの更なる特徴及び利点が明らかになる。更に、本明細書において使用される言語は、発明の内容の範囲を制限するのではなく、主として読みやすさ及び説明を目的として選択されていることを、留意されるべきである。
発明は、類似の要素に言及するために同様の参照符号を使用された添付の図面において、限定目的ではなく例示目的で示されている。
本発明にしたがって構成された、自己回復プロセッサを含む自己回復システムの各種の実施形態のブロック図である。 本発明にしたがって構成された、自己回復プロセッサを含む自己回復システムの各種の実施形態のブロック図である。 本発明にしたがって構成された、自己回復プロセッサを含む自己回復システムの各種の実施形態のブロック図である。 本発明にしたがって構成された自己回復プロセッサの一実施形態のブロック図である。 本発明にしたがって構成されたコードブロックのブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって構成されたエラー軽減システムの各種の実施形態のブロック図である。 本発明にしたがって、コードブロックがエラーを有するかどうかを判定するための方法の流れ図である。 本発明にしたがって、デジタルロジック内に検出された一時的エラーを軽減するための方法の流れ図である。 本発明にしたがって、デジタルロジック内に検出された持続的エラーを軽減するための方法の流れ図である。 本発明にしたがって、デジタルロジック内に検出された持続的エラーを軽減するための方法の流れ図である。 本発明にしたがって、デジタルロジックのための代替構成を最適化するための方法の流れ図である。 本発明にしたがって、デジタルロジックのための代替構成を最適化するための方法の流れ図である。 本発明にしたがって、デジタルロジックのための代替構成を最適化するための方法の流れ図である。
システム100内に発生するデジタルロジックエラーを検出及び軽減することができる自己回復システム100について説明される。システム100は、また、検出されたエラーと、システムによって遂行される軽減処理と、これらの軽減処理の結果とを記述した情報のログ(「ログ情報」)を作成及び格納する。
以下の説明では、解説を目的として、発明の完全な理解を可能にするために多くの詳細が特定されている。しかしながら、当業者にならば明らかなように、発明は、これらの詳細を伴わずとも実践することができる。また、構造及びデバイスは、発明を不明瞭にしないために、ブロック図の形式で示されている。例えば、本発明は、以下の1つの実施形態では、制御ユニット105を参照にして説明されている。しかしながら、本発明は、本発明の自己回復プロセッサ110を使用されたあらゆるタイプのシステムに適用する。
本明細書において言及される「1つの実施形態」又は「一実施形態」は、その実施形態に関連して説明される特定の特徴、構造、又は特性が発明の少なくとも1つの実施形態に
含まれることを意味している。本明細書の随所に見られる「1つの実施形態では」という言い回しは、必ずしも全てが同じ実施形態に言及しているとは限らない。
以下に続く詳細の説明の一部は、コンピュータメモリ内の、データビットに対する動作のアルゴリズム及び記号的表現として提示される。これらのアルゴリズム的な記述及び表現は、データ処理分野の当業者が自身の作業内容を最も効果的にその他の当業者に伝えるために使用される手段である。アルゴリズムは、ここでは、そして一般的には、所望の結果をもたらす自己矛盾のない一連のステップであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。必ずではないが、これらの量は、通常は、格納、転送、結合、比較、及びその他の操作が可能な電気信号又は磁気信号の形態をとる。これらの信号は、ときには、主に共通使用を理由として、ビット、値、要素、記号、文字、用語、数などとして言及されると好都合であることが証明されている。
しかしながら、これらの及び類似の用語は、全て、適切な物理量に関連付けられるものであること、及びこれらの量に適用される好都合なラベルに過ぎないことを、心に留めておくべきである。以下の議論から明らかなように、その他の形で具体的に明記されない限り、「処理する」又は「計算する」又は「算出する」又は「判定する」又は「表示する」などの用語を用いる議論は、説明全体を通して、コンピュータシステムのレジスタ及びメモリにおいて物理(電子)量として表わされるデータを操作して、コンピュータシステムのメモリ若しくはレジスタ、又はその他の同様の情報ストレージデバイス、情報伝送デバイス、若しくは情報ディスプレイデバイスにおいて物理量として同様に表わされるその他のデータに変換する、コンピュータシステム又は同様の電子計算デバイスの行為及び処理に言及していることがわかる。
本発明は、ここに開示される動作を実施するための装置にも関する。この装置は、所要の目的のために特別に構築されてもよいし、又はコンピュータに格納されたコンピュータプログラムによって選択的に作動若しくは再構成される汎用コンピュータを含むものであってもよい。このようなコンピュータプログラムは、フロッピディスク、光ディスク、CD−ROM、及び光磁気ディスクを含む任意のタイプのディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード若しくは光カード、又は電子命令を格納するのに適した任意のタイプの媒体などを非限定に含みそれぞれがコンピュータシステムバスに結合されたコンピュータ可読ストレージ媒体に、格納することができる。例えば、自己回復プロセッサ110は、コンピュータプログラム及び/又は様々なログ情報を格納された1つ又は2つ以上のストレージデバイス及び/又はメモリを含むコンピュータシステムに実装することができる。
最後に、ここで提示されるアルゴリズム及び表示は、元来どれか特定のコンピュータ又はその他の装置に関係しているものではない。ここでの教示にしたがったプログラムは、各種の汎用システムと併用することができるであろう。或いは、所要の方法ステップを実施するためには、更に専用の装置を構築すると好都合であることが証明されるであろう。これらの様々なシステムに必要とされる構造は、以下の説明から見えてくる。また、本発明は、いかなる特定のプログラミング言語にも言及することなく説明される。ここで説明される発明の教示内容の遂行には、様々なプログラミング言語が使用されてよいことがわかる。
システム概要
図1Aは、自己回復システムの第1の実施形態100Aを示している。この実施形態のシステム100は、自己回復プロセッサ110を有する制御ユニット105と、センサ115と、アクチュエータ117とを含む。信号線120は、入力信号を送信するために、センサ115を制御ユニット105に結合する。信号線125は、出力信号を送信するた
めに、制御ユニット105をアクチュエータ117に結合する。一部の実施形態では、センサ115とアクチュエータ117との間において、信号線122上をフィードバック信号が送信される。図1では、説明を簡単に且つ明瞭にするために、センサ115、アクチュエータ117、信号線120、信号線125、及び信号線122が1つずつだけ示されているが、当業者ならば、制御ユニット105に任意の数のセンサ115及び/又はアクチュエータ117が結合されてよいことがわかる。
制御ユニット105は、信号線120を介してセンサ115に通信可能に結合される。制御ユニット105は、信号線125を介してアクチュエータ117にも通信可能に結合される。制御ユニット105は、プロセッサ110によって下される判定に基づいて1つ又は2つ以上のアクチュエータ117の動作を制御する電子デバイスである。例えば、制御ユニット105は、自動車に実装されるエンジン制御ユニット(「ECU」)である。制御ユニット150は、センサ115から入力信号を受信する。入力信号は、アクチュエータ117にとって重要な条件に関する情報を含む。制御ユニット150は、アクチュエータ117に通信される出力信号を生成する。出力信号は、アクチュエータ117の動作を制御する。
アクチュエータ117は、制御ユニット105及びセンサ115に通信可能に結合される。アクチュエータ117は、自己回復システム100A内において力を移動させる又は制御するためのデバイスである。アクチュエータ117は、機械的コンポーネント、電気的コンポーネント、又は機械的コンポーネントと電気的コンポーネントとの組み合わせを含む。1つの実施形態では、アクチュエータ117は、制御ユニット105によって制御される、自動車内の燃料噴射器、スパークプラグ、スロットル調整器、及び/又は1つ若しくは2つ以上の電子制御式バルブである。
センサ115は、信号線120を介して制御ユニット105に通信可能に結合される。センサ115は、1つ又は2つ以上のアクチュエータ117を監視して該情報を制御ユニット105に中継するように適応された電子回路である。情報は、制御ユニット105によってサポートされる形式にコード化される。例えば、情報は、2進コードにコード化される。センサ115は、アクチュエータ117に関する情報を集め、該情報を信号線120を介して制御ユニット105に中継する。1つの実施形態では、センサ115は、フィードバック線122を介してアクチュエータ117に通信可能に結合される。別の実施形態では、センサ115は、アクチュエータ117に関する情報をリアルタイムで制御ユニット105に中継するように構成される。
プロセッサ110は、センサ115及びアクチュエータ117に通信可能に結合される。プロセッサ110は、制御ユニット105のための処理を実施する及びアクチュエータ117の動作を制御する集積回路半導体チップである。プロセッサ110は、センサ115からの入力信号を受信する。1つの実施形態では、プロセッサ110は、入力信号を処理するためのファームウェア及び/又はデジタルロジックを含む。プロセッサ110は、ファームウェア及び/又はデジタルロジックを使用して、入力信号120及び/又はその中に含まれる情報を処理する。プロセッサ110は、アクチュエータ117の動作を制御するように適応された出力信号を生成する。プロセッサ110の1つの実施形態の構造及び動作は、図2を参照にして、以下で更に詳しく説明される。
一例では、制御ユニット105は、ECUであり、アクチュエータ117は、自動車(不図示)内の燃料噴射器である。センサ115は、エンジン排気内の酸素の量を監視するためのセンサである。自動車が安全に動作するためには、排気内の酸素の量が高すぎる(ゆえに、自動車に乗っている人間に対して安全性のリスクをもたらす可能性がある濃い燃料混合がエンジン内にあることが示されている)場合に、燃料噴射器によってエンジン(
不図示)に引き渡される燃料の量を減少させることが望ましい。もしエンジン排気内に危険な量の酸素がある場合は、センサ115は、この情報をECUに中継する。例えば制御ユニット105などのECUは、この情報をプロセッサ110によって処理する。プロセッサ110は、酸素と燃料との安全な混合をエンジン内に実現するために必要とされる量だけエンジン内の燃料の量を減少させるように燃料噴射器に指示する出力信号を生成する。したがって、この例では、プロセッサ110は、エンジン内の酸素と燃料との混合を調整するという、命を救う潜在力を持つ機能を提供する。しかしながら、もしプロセッサ110がセンサ115からの入力を処理しているときにエラーを被ると、結果として、自動車に乗っている人間にとって致命的となる可能性がある。
エラーは、プロセッサ110のデジタルロジック内におけるハードウェアエラーである。1つの実施形態では、プロセッサ110は、一時的エラー及び/又は持続的エラーを被る可能性がある。一時的エラーは、短期にわたって発生するデジタルロジックエラーである。一時的エラーは、太陽(またはその他の発生源)から放射されてランダムに到達する荷電粒子によって引き起こされ、プロセッサ110のデジタルロジックの動作に一時的に影響を及ぼす。永続的エラーは、一時的エラーでないデジタルロジックエラーである。
図1Aは、センサ115と、アクチュエータ117と、それらの間のフィードバック信号との間の1対1の関係を描いている。しかしながら、当業者にならば理解されるように、実際は、センサ115、アクチュエータ117、及び/又はフィードバック信号のあらゆる組み合わせが可能である。例えば、1つの信号センサ115を、2つ又は3つ以上のアクチュエータ117に関する情報を集めるように適応させることができる。或いは、1つのアクチュエータ117を、2つ又は3つ以上のセンサ115によって監視することができる。更には、任意の数のセンサ115と任意の数のアクチュエータ117との間において、任意の数のフィードバック信号122が可能である。
次に、図1B及び図1Cを参照すると、自己回復システムの更に別の各実施形態100B、100Cが描かれている。より具体的には、図1B及び図1Cは、異なるデバイスとの通信的結合を有する制御ユニット105を示している。図1B及び図1Cに示された実施形態では、自己回復システム100B、100Cのコンポーネントの多くは、図1Aに示された実施形態の対応コンポーネントと同じ又は類似の機能を有している。したがって、同じ又は類似の機能性を持つ同様のコンポーネントに言及するために、同様の参照番号が使用されている。例えば、図1Aに示された実施形態のように、図1B及び図1Cの実施形態もまた、制御ユニット105、プロセッサ110、センサ115、アクチュエータ117、信号線120、信号125、及び信号線122(随意)を含む。
図1Bは、自己回復システム100の第2の実施形態を示している。自己回復システム100のこの実施形態は、制御ユニット105、自己回復プロセッサ110、センサ115、アクチュエータ117、信号線120、信号線125、信号線122(随意)、インターフェース128、データ信号124、通信的結合127、ネットワーク130、及び外部システム137を含む。
インターフェース138は、通信的結合127を介したネットワーク130との通信に適応されている。1つの実施形態では、通信的結合127は、制御ユニット105をネットワーク130に結合する無線通信リンクである。例えば、通信的結合127は、インターフェース128をネットワーク130に結合する無線通信リンクであってよい。ネットワーク130は、自身につながれたエンティティ間における通信を可能にする。1つの実施形態では、ネットワーク130は、インターネットであり、標準の通信技術及び/又は通信プロトコルを使用する。したがって、ネットワーク130は、Ethernet(イーサネット,登録商標)、802.11、WiMAX(ワイマックス)、3G、DSL(デジタル加入者回線)、ATM(非同期転送モード)、InfiniBand(インフィニバンド)、PCI Expressアドバンストスイッチングなどの技術を使用したリンクを含むことができる。同様に、ネットワーク130に使用されるネットワークプロトコルは、MPLS(マルチプロトコルラベルスイッチング)、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、UDP(ユーザデータグラムプロトコル)、HTTP(ハイパーテキストトランスポートプロトコル)、SMTP(簡易メール転送プロトコル)、FTP(ファイル転送プロトコル)などを含むことができる。ネットワーク130を通じて交換されるデータは、HTML(ハイパーテキストマーク付け言語)、XML(拡張可能なマーク付け言語)などを含む技術及び/又は形式を使用して表わすことができる。また、全部又は一部のリンクは、SSL(セキュアソケットレイヤ)、TLS(トランスポートレイヤセキュリティ)、VPN(仮想プライベートネットワーク)、IPsec(インターネットプロトコルセキュリティ)などの従来の暗号化技術を使用して暗号化することができる。別の実施形態では、エンティティは、上述されたものに代わって又は追加で、カスタムデータ通信技術及び/又は専用データ通信技術を使用する。
信号線124は、プロセッサ110をインターフェース128に結合する。1つの実施形態では、信号線124は、プロセッサ110とインターフェース128との間における双方向のデータの流れを可能にする。例えば、信号線124及びインターフェース128は、プロセッサ110からネットワーク130への情報のアップロードを可能にするために連携しあう。信号線124及びインターフェース128は、また、ネットワーク130からプロセッサ110への情報のダウンロードを可能にするために連携しあう。
1つの実施形態では、制御ユニット105は、ネットワーク130を介して外部システム137に通信可能に結合されたコンピュータシステムである。外部システム137は、制御ユニット105からログ情報を受信する。ログ情報は、プロセッサ110によって検出されたエラーと、プロセッサ110によって遂行される様々な軽減処理と、及びこれらの軽減処理の結果とを記述する。外部システム137は、様々な制御ユニット105からのログ情報を格納するデータベースを含む。外部システム137は、更新情報を生成するために、ログ情報を処理する。更新情報は、制御ユニット105及び/又はプロセッサ110における各種エラーの発生及び/又は再発生を阻止するために制御ユニット105及び/又はプロセッサ110を再構成するように適応された情報(例えばコンピュータコード)である。1つの実施形態では、更新情報(例えばコンピュータコード)は、制御ユニット105及び/又はプロセッサ110における各種エラーの発生及び/又は再発生を阻止するために制御ユニット105及び/又はプロセッサ110のアーキテクチャを再構成するように適応された情報である。外部システム137は、ネットワーク130を介して制御ユニット105に更新情報を通信する。
図1には、1つの制御ユニット105及び1つの外部システム137のみが示されているが、実際は、2つ以上の制御ユニット105及び/又は2つ以上の外部システム137があることが可能である。したがって、特定の制御ユニット105は、多くの異なる外部システム137に通信可能に結合することができ、特定の外部システム137は、多くの異なる制御ユニット105に通信可能に結合することができる。
1つの実施形態では、外部システム137は、制御ユニット105との通信に適応された1つ又は2つ以上のサーバを含む。
図1Cには、ストレージデバイス140A及び/又は光学デバイス140Bからの情報を受信するようにインターフェース128を適応した自己回復システムの別の実施形態100Cが示されている。ストレージデバイス140Aは、ハードドライブ、コンパクトディスク読み出し専用メモリ(CD−ROM)、DVD、及び/又は固体メモリデバイスな
どの、不揮発性のストレージ媒体である。光学デバイス140Bは、1本若しくは2本以上の光線(例えば赤外線通信)を介して情報を通信するように及び/又は1本若しくは2本以上の光線を介して受信された情報を不揮発性メモリに格納するように適応された任意のデバイスである。1つの実施形態では、プロセッサ110は、ログ情報をストレージデバイス140A及び/又は光学デバイス140Bにアップロードする。別の実施形態では、ストレージデバイス140A及び/又は光学デバイス140Bは、更新情報を格納し、プロセッサ110は、ストレージデバイス140A及び/又は光学デバイス140Bから更新情報を受信する。
自己回復プロセッサ110
次に、図2を参照にして、自己回復プロセッサ110の一実施形態について説明する。1つの実施形態では、自己回復プロセッサ110は、様々なエラー軽減コンポーネントを含むように変更された1つ又は2つ以上のマイクロプロセッサである。1つの実施形態では、これらのエラー軽減コンポーネントは、ハードウェアとソフトウェアとの組み合わせとして実装され、それぞれ、プロセッサ110に含まれるオンチップストレージ内に格納される。次に、エラー軽減コンポーネントについて説明する。
プロセッサ110は、コンパイル時に、特殊なC言語コンパイラを使用して様々な機能ユニットに分割される。機能ユニットは、プロセッサ110のデジタルロジックの一部分を含む。1つの実施形態では、機能ユニットは、1つ若しくは2つ以上の算術論理演算ユニット、浮動小数点演算ユニット、及び/又は読み出しオペランド復号ユニットなど、プロセッサ110のために所定の機能性を提供するプロセッサ110のデジタルロジックの一部分である。プロセッサ110は、何十の又はひいては何百もの機能ユニットに分割することができる。機能ユニットの選択及び数は、プロセッサ110の所定の実装形態に基づいて変動する設計上の選択である。
機能ユニットは、少なくとも1つのコードブロック224と、動的署名解析回路226とに関連付けられる。コードブロック224は、プロセッサ110のデジタルロジックの特定の一部分の動作に関連付けられる。1つの実施形態では、コードブロック224は、プロセッサ110のデジタルロジックの1つ又は2つ以上の部分の動作に関連付けられる。1つの実施形態では、コードブロック224は、コンピュータ実行可能コンピュータコードの基本ブロックを含む。コンピュータコードの基本ブロックは、1つ又は2つ以上の一連の手続き命令と、分岐命令とを含む。実行されるときに、これらの命令は、コードブロック224の機能性を提供するために、自身に関連付けられたデジタルロジック上において動作する。
コードブロック224は、ストレージユニット220に格納される。1つの実施形態では、ストレージユニット220は、プロセッサ110に含まれる1つ又は2つ以上のRAM又はキャッシュなどの、プロセッサ110のオンチップ不揮発性ストレージの一部分である。1つの実施形態では、コードブロック224は、プロセッサ110のオンチップストレージの1つ又は2つ以上の部分に跨って格納される。別の実施形態では、コードブロック224は、プロセッサ110の外部の不揮発性メモリ(不図示)に格納される。
プロセッサ110は、コードブロック224を実行するために結合される。コードブロック224は、プロセッサ110によって実行されるときに動的署名解析回路226によって監視されるように、通信可能に結合される。コードブロック224は、エラー軽減システム215によって再実行されるように、通信可能に結合される。
図2には、1つのコードブロック224のみが示されているが、実際は、各機能ブロックは、何千の又は何百万のコードブロック224に関連付けることができる。ここで説明
される構造を明瞭にするために、コードブロック224は、後に図3を参照にして更に詳しく説明される。
動的署名解析回路226は、コードブロック224の実行を監視するために、通信可能に結合される。動的署名解析回路226は、また、信号線217を介してエラー軽減システム215に入力を送信するためにも、通信可能に結合される。動的署名解析回路226は、コードブロック224についての動的署名を作成する電子回路を含む。動的署名は、プロセッサ110のデジタルロジックの特定の一部分のランタイム動作を表わす署名解析波形である。例えば、各動的署名は、特定のコードブロック224に関連付けられたデジタルロジックの一部分の動作を表わす。動的署名解析回路226は、コードブロック224の実行についての動的署名を作成する。動的署名は、リアルタイムに又はコードブロック224の実行から短期間の後に作成される。動的署名解析回路226は、次いで、信号線217を介してエラー軽減システム215に動的署名を伝送する。
図2には、1つの動的署名解析回路226のみが示されているが、実際は、プロセッサは、何十の又はひいては何百もの動的署名解析回路226を有することができる。1つの実施形態では、各機能ブロックは、その機能ユニットに関連付けられた異なるコードブロック224の実行を監視する動的署名解析回路226を含む。
正常動作時において、プロセッサ110は、上述された機能性を制御ユニット105のために提供する様々なアルゴリズムを実行する。プロセッサ110と、これらのアルゴリズムとの組み合わせは、正常動作時におけるプロセッサ110の計算能力の百パーセントをアルゴリズムが必要としないように設計時に選択される。プロセッサ110は、エラー軽減システム215及び動的署名解析回路226をバックグラウンド処理として動作させるために、計算能力の余剰部分を使用する。これらのバックグラウンド処理は、プロセッサ110が様々なコードブロック224を実行することを含む。エラー軽減システム215及び動的署名解析回路226は、プロセッサ110のデジタルロジック上において動作するコードブロック224の実行を監視するために連携しあう。もしコードブロック224の実行によって、デジタルロジック内におけるエラーの存在が示された場合は、エラー軽減システム215は、ハードウェアコントローラ(図4A〜4Hに示されている)を使用してコードブロック224の実行を再試行することによって、エラーを軽減しようと試みる。動的署名解析回路226及びコードブロック224は、以下で更に詳しく説明される。エラー軽減システム215及びハードウェアコントローラは、図4A〜4Hを参照にして更に詳しく説明される。
当業者ならば、プロセッサ110が、図2には示されていない更なるコンポーネントを含むことがわかる。例えば、プロセッサ110は、ファームウェア、デジタルロジック、1つ若しくは2つ以上の算術論理演算ユニット、浮動小数点演算ユニット、読み出しオペランド復号ユニット、命令フェッチ、ネットリスト、並びにL2/L3キャッシュ、命令キャッシュ、データキャッシュユニット、データキャッシュユニット、及び/又はレジスタファイルを含む様々なオンチップ不揮発性ストレージユニット(ここでは、まとめて「オンチップストレージ」若しくは「オンチップ不揮発性ストレージ」と呼ばれる)を含む。
エラー軽減システム215は、信号線217を介して動的署名解析回路226に通信可能に結合される。エラー軽減システム215は、また、信号線219を介してコードブロック224にも通信可能に結合される。1つの実施形態では、エラー軽減システム215は、プロセッサ110のデジタルロジック内に検出されるエラーを検出及び軽減するための1つ又は2つ以上のエラー軽減処理を実行するように構成されたソフトウェア及びハードウェアである。1つの実施形態では、ソフトウェアである、エラー軽減システム215
のコンポーネントは、プロセッサ110のオンチップストレージに格納される。エラー軽減システム215は、また、ログ情報を作成及び格納する。エラー軽減システム215は、信号線217を介して動的署名解析回路226から動的署名を受信する。エラー軽減システム215は、コードブロック224に関連付けられたプロセッサ110のデジタルロジックの特定の一部分にエラーが存在するかどうかを判定するために、動的署名を解析する。エラーの検出を受けて、エラー軽減システム215は、エラーを検出されたコードブロック224の実行を、信号線219を介して再試行する。コードブロック224の再試行は、コードブロック224のエラーフリー実行(エラー無し実行)を実現するための試みである。もし最初の再試行の試みがエラーフリー実行の実現に失敗した場合は、エラー軽減システム215は、不完全なそのコードブロック224の実行を所定回数(1回又は10回など)にわたって再試行し続ける。もしいずれかの再試行の試みによってエラーフリー実行が実現された場合は、プロセッサ110は、次のコードブロックに進む。もしコードブロック224のエラーフリー実行が所定回数の再試行の試みのうちに実現されなかった場合は、コードブロック224が持続的エラーを有するものと判定される。
1つの実施形態では、エラー軽減システム215は、格納された静的署名群を含む。静的署名は、コンパイル時に作成される。各静的署名は、特定のコードブロック224に関連付けられる。静的署名は、その特定のコードブロック224に関連付けられたデジタルロジックの既知のエラーフリー実行を表わす解析波形である。エラー軽減システム215は、動的署名解析回路226から受信された動的署名を、そのコードブロック224についての静的署名と比較する。もし動的署名が静的署名と異なる場合は、エラー軽減システム215は、そのコードブロック224に関連付けられたデジタルロジックがエラーを有するものと判定する。エラー軽減システム215は、すると、検出されたエラーを正すために、再試行処理を起動する。再試行処理の幾つかの実施形態が、図4A〜4Hを参照にして、以下で更に詳しく説明される。
エラー軽減システム215は、図2では、1本の信号線219を介して1つのコードブロック224のみに結合されるものとして示されているが、実際は、エラー軽減システム215は、任意の本数の信号線219を介して任意の数のコードブロック224に結合することができる。同様に、エラー軽減システム215は、図2では、1本の信号線217を介して1つの動的署名解析回路226のみに結合されるものとして示されているが、実際は、エラー軽減システム215は、任意の本数の信号線217を介して任意の数の動的署名解析回路226に結合することができる。
コードブロック224
図3は、コードブロック224の一実施形態を示している。各コードブロック224は、1つ又は2つ以上の手続き命令305と、分岐命令310とを含む。手続き命令305は、プロセッサ110の1つの動作を定めたコンピュータ実行可能コードである。図3では、4つの手続き命令が示されているが、実際は、各コードブロック224には、何百の又は何百万の手続き命令が含まれることが可能である。1つの実施形態では、各コードブロックに、1つの手続き命令が含まれる。分岐命令310は、プロセッサ110内における制御の流れの変化を定めたコンピュータ実行可能コードである。
エラー軽減システム215
図4Aは、エラー軽減システムの第1の実施形態215Aを示している。この実施形態では、エラー軽減システム215Aは、最初に適切に実行されなかったコードブロック224の実行を再試行することによって、プロセッサ110の機能ユニット内に検出された一時的エラーを軽減させるためのルーチンを実行するように構成される。
静的署名モジュール402は、各コードブロック224についての様々な静的署名から
なるデータ構造である。1つの実施形態では、静的署名モジュール402は、プロセッサ110のオンチップストレージに格納される。静的署名モジュール402は、比較モジュール407に通信可能に結合される。静的署名は、コンパイル時に作成される。各静的署名は、特定のコードブロック224に関連付けられる。各静的署名は、自身に関連付けられたコードブロック224の既知のエラーフリー実行を表わす。静的署名モジュール402は、それぞれのコードブロック224についての動的署名がそのコードブロックについての静的署名と一致するかどうかを判定するために、比較モジュール407と連携しあう。もしコードブロック224についての動的署名が静的署名と一致する場合は、そのコードブロック224は、エラーを有さない。もし動的署名が静的署名と一致しない場合は、そのコードブロック224は、エラーを有する。
ログモジュール437は、ログ情報を格納するためのソフトウェア及びルーチンである。ログモジュール437は、エラー軽減システム215Aの様々なモジュールに通信可能に結合される。1つの実施形態では、ログモジュール437は、プロセッサのオンチップストレージに格納される。1つの実施形態では、ログ情報は、検出されたエラーと、エラーを検出されたコードブロック224と、エラーのために試みられる再試行の回数と、エラーのために実装される各代替構成と、これらの各代替構成の成功又は失敗との記述を含む。ログ情報は、また、エラー軽減システム215Aの様々なモジュールによって下された様々な決定及び判定の記述も含む。1つの実施形態では、ログモジュール437は、ログ情報をハッシュ値化するためのソフトウェアを含む。ログモジュール437は、次いで、ハッシュ値化されたログ情報を格納する。1つの実施形態では、ログ情報は、プロセッサ110のオンチップストレージに跨って格納される。或いは、ログ情報は、プロセッサ110の外部のストレージデバイス(不図示)に格納される。例えば、制御ユニット105は、ログ情報を格納するためのRAMを含み、ログモジュール437は、ログ情報を格納するために、RAMに通信可能に結合される。ログモジュール437は、エラー軽減システム215Aの様々なモジュールの説明に続いて、以下で更に詳しく説明される。
1つの実施形態では、ログモジュール437は、クロックを含み、ログ情報は、エラー軽減システム215Aによってエラーが検出された時刻の記述を含む。例えば、エラーは、エラー軽減システム215Aによって2009年7月23日の午後4時27分(東部標準時間)に検出され、ログモジュール437は、エラーが検出された時刻を記述するログ情報を「4:27.135498 PM 07/23/2009(東部標準時間)」として記録する。したがって、ログモジュール437は、マイクロ秒までの分解能を有する時刻コード(例えば4:27.135498 PM)と、日付コード(07/23/2009(東部標準時間))とを含むログ情報を格納する。
1つの実施形態では、ログモジュール437は、GPS(全地球測位システム)レシーバを含み、ログ情報は、エラー軽減システム215Aによってエラーが検出されたときのシステム110A、110B、又は110CのGPS位置の記述を含む。例えば、エラーがエラー軽減システム215Aによって検出され、GPSレシーバは、システム110AのGPS位置が経度37.926868、緯度101.513672であることを示す。したがって、ログ情報437は、この位置の記述を含むログ情報を格納する。
1つの実施形態では、ログモジュール437は、温度記録装置を含み、ログ情報は、エラー軽減システム215Aによってエラーが検出されたときよりも前のシステム110A、110B、又は110Cの毎時間の最新のピーク温度及び/又は平均温度の記述を含む。例えば、エラーがエラー軽減システム215Aによって検出され、温度記録器が、エラー検出よりも前の時間間隔におけるシステム110Aの温度データが(時間=0時間、平均温度=華氏152度、ピーク温度=華氏159度、時間=−2時間、平均温度=華氏154度、ピーク温度=華氏160度、時間=−24度、平均温度=華氏148度、ピーク
温度=華氏161度)であることを示す。したがって、ログモジュール437は、エラー検出よりも前のシステム温度履歴の記述を含むログ情報を格納する。
監視モジュール403は、動的署名解析回路226から動的署名を受信するためのソフトウェア及びルーチンである。1つの実施形態では、監視モジュール403は、プロセッサ110のオンチップストレージに格納される。監視モジュール403は、結合217を介して動的署名解析回路226に結合される。監視モジュール403は、また、ログモジュール437にも通信可能に結合される。1つの実施形態では、監視モジュール403は、署名解析回路226からの新しい動的署名のために、信号線217を繰り返しチェックする。監視モジュール403は、署名解析回路226から動的署名を受信する。監視モジュール403は、次いで、受信された動的解析署名を比較モジュール407に引き渡す。
比較モジュール407は、格納された静的署名と動的署名とを比較するためのソフトウェア及びルーチンである。1つの実施形態では、比較モジュール407は、プロセッサ110のオンチップストレージに格納される。比較モジュール407は、監視モジュール403及び静的署名モジュール402に通信可能に結合される。比較モジュール407は、また、ログモジュール437にも通信可能に結合される。1つの実施形態では、比較モジュール407は、特定のコードブロック224についての動的署名を監視モジュール403から受信する。比較モジュール407は、特定のコードブロック224についての静的署名を静的署名モジュール402から読み出す。比較モジュール407は、動的署名解析回路226から受信された動的署名を、静的署名モジュール402から受信された静的署名と比較する。比較モジュール407は、次いで、動的署名が静的署名と一致するかどうかを判定する。もし動的署名が静的署名と一致する場合は、プロセッサ110は、次のコードブロック224を実行し、エラーをチェックする処理は、再び開始する。もし動的署名が静的署名と異なる場合は、比較モジュール407は、コードブロック224がエラーを有するものと判定する。比較モジュール407は、次いで、検出されたエラーを再試行モジュール409に通信する。
次に、一時的エラー再試行処理について説明する。再試行モジュール409は、エラーを有するものと判定されたコードブロック224の実行を再試行するためのソフトウェア及びルーチンである。1つの実施形態では、再試行モジュール409は、プロセッサ110のオンチップストレージに格納される。再試行モジュール409は、比較モジュール407及びハードウェアコントローラ411に通信可能に結合される。再試行モジュール409は、また、ログモジュール437にも通信可能に結合される。1つの実施形態では、再試行モジュール409は、検出されたエラーを比較モジュール407から受信する。再試行モジュール409は、次いで、コードブロック224の実行を再試行するために、ハードウェアコントローラ411にコマンドを通信する。再試行モジュール409は、検出された各エラーについて所定回数にわたって各コードブロック224の実行を再試行するように構成される。1つの実施形態では、再試行モジュール409は、再試行を試みた回数を記憶し、所定回数の再試行が達成されたら一時的エラー再試行処理を終了する。
ハードウェアコントローラ411は、再試行モジュール409からのコマンドを受けて様々なコードブロック224の実行を再試行するように適応されたコントローラである。ハードウェアコントローラ411は、再試行モジュール409に通信可能に結合される。ハードウェアコントローラ411は、また、結合219を介して様々なコードブロックにも通信可能に結合される。1つの実施形態では、ハードウェアコントローラ411は、特定のコードブロック224を再実行するために、再試行モジュール409からコマンドを受信する。ハードウェアコントローラ411は、次いで、そのコードブロック224の実行を再試行する(「再試行実行」)。動的署名解析回路226Nは、その再試行実行についての動的署名を作成する。この署名は、監視モジュール403に、そして比較モジュー
ル407に引き渡される。比較モジュール407は、上述のように、再試行実行についての動的署名を静的署名と比較する。もし再試行実行についての動的署名が静的署名と一致する場合は、この特定のコードブロック224のための一時的エラー再試行処理は終了する。もし署名どうしが一致しない場合は、再試行モジュール409は、コードブロック224の別の再試行を実行するために、ハードウェアコントローラ411に別のコマンドを発行する。この処理は、コードブロック224がエラーフリーで実行されるまで、又は所定回数の再試行の試みが成されたものと再試行モジュール409が判定するまで続く。もしエラーフリー実行を伴うことなく所定回数の再試行の試みが成された場合は、再試行モジュール409は、プロセッサ110のデジタルロジックが持続的エラーを有するものと判定する。図4A〜4Hの実施形態は、上述された一時的エラー再試行処理を遂行するように構成される。
留意されるべきは、一時的エラー再試行処理は、この処理の遂行がバックグラウンドで実施されるように、そして制御ユニット105の機能性を提供するアルゴリズムの実行に関わるプロセッサ110のパフォーマンスに影響を及ぼすことがないように、プロセッサ110によって調整されることである。更に、一部の実施形態では、プロセッサ110は、一時的エラー再試行処理のために様々な再試行の試みを遂行するための様々な量のプロセッサ能力を提供する。
ログモジュール437は、エラー軽減システム215Aの様々なモジュールを監視し、エラーを被っているコードブロック224を記述したログ情報を格納する。検出された各エラーについて、ログモジュール437は、所定回数の再試行のうちにそのコードブロック224のエラーフリー実行が実現されたかどうかを判定するために、再試行モジュール409を監視する。もしエラーフリー実行が実現された場合は、ログモジュール437は、そのエラーフリー実行を実現するために必要とされた再試行の回数を記述したログ情報を格納する。1つの実施形態では、ログモジュール437は、様々な再試行の試みにおいて使用されるプロセッサ能力の量を記述したログ情報も記録する。この処理は繰り返され、ゆえに、ログモジュール437は、エラーを被っているコードブロック224と、これらのエラーの結果とを記述したログ情報を格納する。ログモジュール437は、図4B〜4Hを参照にして、更に詳しく説明される。
次に、図4B〜4Hを参照すると、エラー軽減システム215の更に別の各実施形態が示されている。より具体的には、図4B〜4Hは、プロセッサ110のデジタルロジック内の持続的エラーを軽減するために用いることができるエラー軽減システム215の様々なコンポーネントを示している。図4B〜4Hに示された実施形態では、エラー軽減システム215のコンポーネントの多くは、図4Aに示された実施形態の対応コンポーネントと同じ又は類似の機能を有する。したがって、同じ又は類似の機能性を持つ同様のコンポーネントに言及するために、同様の参照番号が使用されている。例えば、図4Aに示された実施形態のように、図4B〜4Hの実施形態もまた、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、及びログモジュール437を含む。
図4Bは、エラー軽減システムの第2の実施形態215Bを示している。この実施形態では、エラー軽減システム215Bは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、持続的エラーアセット422A群、及びログモジュール437を含む。
代替構成415群は、プロセッサ110デジタルロジックのための様々な代替マシン構
成群である。代替構成415は、本来のプロセッサ110のハードウェア構成とは異なるプロセッサ110のデジタルロジック部分群に依存する。1つの実施形態では、代替構成415は、コンパイル時に作成される。例えば、プロセッサ110は、コンパイル時に、改良型Cコンパイラを使用して解析される。改良型コンパイラは、各コードブロック224の実行時にプロセッサ110のどのコンポーネントが使用されるかを記述したコンポーネント一覧表を生成する。コンポーネント一覧表は、次いで、プロセッサ110が1つ又は2つ以上の持続的エラーを伴って機能し続けることを可能にする様々な代替構成を決定するために、アルゴリズムを使用して処理される。したがって、留意されるべきは、代替構成は、プロセッサ110の完璧な動作を可能にするものもあるが、完璧に動作するプロセッサ110を作成することが必ずしも求められてはいないことである。むしろ、代替構成に求められているのは、単に、たとえプロセッサ110のデジタルロジック内に1つ又は2つ以上の持続的エラーが含まれる状態でもプロセッサ110が機能し続けることを可能にすることである。代替構成は、代替構成415群としてプロセッサ110のオンチップストレージに格納される。各コードブロック224のために、限られた数の代替構成415がある。
ルックアップテーブル413は、様々な代替構成415を試みるべき順番を記述した順序一覧表を含むデータ構造である。1つの実施形態では、ルックアップテーブル413は、プロセッサ110のオンチップストレージに格納される。1つの実施形態では、ルックアップテーブル413は、各コードブロック224のための限られた数の代替構成415を記述した各コードブロック224のための「最適候補一覧表」を含む。各コードブロック224のための代替構成415は、それらの構成がコードブロック224のエラーフリー実行を実現する可能性に基づいて、一覧表の形に順位付けされる。ルックアップテーブル413は、プロセッサ110が、そのエラーフリーハードウェアを可能な限り用いつつ最大実行速度でエラーフリーな代替構成415を見つけることを、有利に可能にする。
1つの実施形態では、ルックアップテーブル413は、コンパイル時に、代替構成415を作成するために使用されたコンポーネント一覧表に基づいて作成される。例えば、プロセッサ110は、コンポーネント一覧表を作成するために、コンパイル時に、改良型Cコンパイラを使用して解析され、コンポーネント一覧表は、ルックアップテーブル413を作成するために、最適化アルゴリズムによって処理される。ルックアップテーブル413は、様々なデータを使用して最適化される。例えば、ルックアップテーブル413の最適化には、プロセッサ110コンポーネント障害の履歴情報と、技術データに基づくプロセッサ110モジュール障害率の技術的推定値と、開発ソフトによって自動的に生成されるコンポーネント利用データに基づいた、ルックアップ順位付けに対する改良の取り込みとが使用される。
次に、持続的エラー再試行処理について説明する。持続的エラー再試行手順は、幾つかの相違点を除き、図4Aについて上述された一時的エラー再試行手順と同様である。
戦略モジュール417もまた、再試行モジュール409、持続的エラーモジュール421、及びログモジュール437に通信可能に結合される。ルックアップテーブル413及び代替構成415もまた、戦略モジュール417に通信可能に結合される。戦略モジュール417は、特定のコードブロック224について持続的エラーが発生したときにどの代替構成415を実装するかを判定するためのソフトウェアおよびルーチンである。1つの実施形態では、戦略モジュール417は、プロセッサ110のオンチップストレージに格納される。1つの実施形態では、戦略モジュール417は、特定のコードブロック224が持続的エラーを有することを示す情報を、再試行モジュール409から受信する。この情報は、再試行モジュール409がエラーフリー実行を実現することなく所定回数にわたってコードブロック224の再試行実行を実行したことを受けて、再試行モジュール409から受信される。戦略モジュール417は、持続的エラーを有するコードブロック224に試みるための第1の代替構成415(即ち、その特定のコードブロック224のための最も高順位の代替構成415)を特定した情報を受信するために、ルックアップテーブル413と通信する。戦略モジュール417は、最も高順位の代替構成を特定した情報を、ルックアップテーブル413から受信する。戦略モジュール417は、次いで、ルックアップテーブル413によって特定された最も高順位の代替構成を記述した情報を読み出すために、代替構成415群と通信する。戦略モジュール417は、次いで、この情報を持続的エラーモジュール421に通信する。
持続的エラーアセット422Aは、代替構成415を実装するために持続的エラーモジュール421によって用いられる様々なソフトウェアコンポーネント及び/又はハードウェアコンポーネントである。1つの実施形態では、持続的エラーアセット422Aは、プロセッサ110のオンチップストレージに格納される。別の実施形態では、持続的エラーアセット422Aは、プロセッサ110の外部の1つ又は2つ以上の不揮発性メモリ(不図示)に跨って格納される。持続的エラーアセット422Aは、持続的エラーモジュール421に通信可能に結合される。図4C〜4Eは、それぞれ、持続的エラーアセット422Aに含まれることが可能な様々な種類のソフトウェア及び/又はハードウェアを示している。したがって、持続的エラーアセットは、図4C〜4Eを参照にして、更に詳しく説明される。
持続的エラーモジュール421は、代替構成415を実装するために持続的エラーアセット422Aと連携しあうソフトウェア及びルーチンである。1つの実施形態では、持続的エラーモジュール421は、プロセッサ110のオンチップストレージに格納される。持続的エラーモジュール421は、戦略モジュール417、代替構成415群、持続的エラーアセット422A、及びログモジュール437に通信可能に結合される。1つの実施形態では、持続的エラーモジュール421は、最も高順位の代替構成415を記述した情報を戦略モジュール417から受信する。持続的エラーモジュール421は、次いで、最も高順位の代替構成415を実装するように持続的エラーアセット422Aを構成する。持続的エラーモジュール421は、次いで、コードブロック224を再試行するときであることを示すために、再試行モジュール409と通信する。
1つの実施形態では、ハードウェアコントローラ411は、特定のコードブロック224を再実行するために、再試行モジュール409からコマンドを受信する。ハードウェアコントローラ411は、次いで、そのコードブロック224の実行を再試行する(「持続的エラー再試行実行」)。動的署名解析回路226は、持続的エラー再試行実行についての動的署名を作成する。この署名は、監視モジュール403に、そして比較モジュール407に引き渡される。比較モジュール407は、動的署名を静的署名と比較する。もし動的署名が静的署名と一致する場合は、持続的エラー再試行処理は終了する。もし署名どうしが一致しない場合は、再試行モジュール409は、再試行が失敗したことを戦略モジュール417に通信する。戦略モジュール417は、すると、第2の代替構成を実装する処理を開始する。言い換えると、エラー軽減システム215は、2番目に高い順位の代替構成415を実装し、次いで、コードブロック224の別の再試行を実行する。第2の代替構成を実装する処理は、第1の代替構成を実装する処理と同じである。エラー軽減システム215は、コードブロック224のための代替構成415が全て試行されるまで、又はプロセッサ110が持続的エラーを伴って動作することを可能にする代替構成415が見いだされるまで、即ち、コードブロック224がエラーフリーで実行されるまで、代替構成415を実装してコードブロックの再試行を実行することを続ける。
図4B〜4Hの実施形態は、それぞれ、持続的エラー再試行処理を遂行するように構成される。更に、一時的エラー再試行処理と同様に、持続的エラー再試行処理は、制御ユニ
ット105の機能性を提供するアルゴリズムの実行に関わるプロセッサ110のパフォーマンスに再試行手順の遂行が影響を及ぼすことがないように、プロセッサ110によって調整される。また、一時的再試行処理と同様に、一部の実施形態では、プロセッサ110は、様々な再試行の試みを遂行するための様々な量のプロセッサ能力を提供する。
持続的エラー再試行処理時において、ログモジュール437は、図4Aについて上述されたのと同じログ情報のログを作成する。このログ情報に加えて、ログモジュール437は、更なるログ情報も格納する。1つの実施形態では、ログモジュール437は、どの代替構成が試行されるか、及びもしこれらの構成のいずれかがコードブロック224のエラーフリー実行を実現するならばそれがどの構成であるかを判定するために、戦略モジュール417及び比較モジュール407を監視する。もしコードブロックのために使用可能な代替構成415のいずれを使用してもエラーフリー実行が実現されない場合は、ログモジュール437は、試行された各種の代替構成415と、これらの構成によってコードブロック224のエラーフリー実行の実現が失敗したこととを記述したログ情報を格納する。もしエラーフリー実行が実現された場合は、ログモジュール437は、成功した代替構成415を記述したログ情報を格納する。このログ情報は、次いで、コードブロック224を記述した、以前のログ情報に関連付けられる。この処理は繰り返されるので、ログモジュール437は、エラーを被っているコードブロック224と、これらのエラーのために実装される代替構成と、これらのエラーの結果とを記述したログ情報を格納する。
次に、図4C〜4Eを参照すると、これらの図は、それぞれ、持続的エラー軽減アセット422Aに含まれることが可能な様々な種類のソフトウェア/ハードウェアを示している。したがって、図4C〜4Eの目的は、このハードウェア/ソフトウェア、及び様々な代替構成415を実装するためにこのハードウェア/ソフトウェアが持続的エラーモジュール421によってそれぞれどのように用いられるかを説明することにある。
図4Cは、エラー軽減システムの第3の実施形態215Cを示している。この実施形態では、エラー軽減システム215Cは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、ログモジュール437、及びエミュレーションソフトウェア422B群を含む。したがって、この実施形態では、持続的エラー軽減アセット422Aは、エミュレーションソフトウェア422B群である。
エミュレーションソフトウェア422Bは、デジタルロジックの機能を複製するように構成されたソフトウェアである。1つの実施形態では、持続的エラーモジュール421は、エミュレーションソフトウェア422Bと通信する。持続的エラーモジュール421は、次いで、所定の再試行を試みるために、最も高順位の代替構成415によって記述された機能性を複製するようにエミュレーションソフトウェア422Bを構成する。持続的エラーモジュール421は、次いで、エミュレーションソフトウェア422Bを実行する。持続的エラーモジュール421は、次いで、上述のように、持続的エラー再試行処理に進む。
図4Dは、エラー軽減システムの第4の実施形態215Dを示している。この実施形態では、エラー軽減システム215Dは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、ログモジュール437、及び格納されたフィールドプログラマブルゲートアレイ(「FPGA」)ユニット422C群を含む。したがって、この実施形態では、持続的エラー軽減アセット422Aは、FPGAユニット422C群である。
FPGAユニット422Cは、特定の機能性を実現するためにデジタルロジックを再構成することをベースにした技法の結果である。例えばFPGAは、所定のデジタルロジックアーキテクチャ又はデジタルロジックサブアーキテクチャを実現するように再構成することができる半導体デバイスである。1つの実施形態では、持続的エラーモジュール421は、格納されたFPGAユニット422Cと通信する。持続的エラーモジュール421は、次いで、代替構成415によって記述された機能性を複製するようにFPGAユニット422Cを構成する。持続的エラーモジュール421は、次いで、構成されたFPGA422Cユニットを、プロセッサ110のデジタルロジックに実装する。持続的エラーモジュール421は、次いで、上述のように、持続的エラー再試行処理に進む。
図4Eは、エラー軽減システムの第5の実施形態215Eを示している。この実施形態では、エラー軽減システム215Eは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、ログモジュール437、及びソフトコアプロセッサユニット422D群を含む。したがって、この実施形態では、持続的エラー軽減アセット422Aは、ソフトコアプロセッサユニット422D群である。
ソフトコアプロセッサユニット422Dは、プロセッサ110上の様々なアーキテクチャ場所を隔てているデジタルロジックの再構成をベースにした技法の結果である。例えば、プロセッサ110は、ネットリストを含む。ネットリストは、プロセッサ110の様々なアーキテクチャ場所間におけるデジタルロジックの相互接続を記述したデータ構造である。ネットリストが、点「A」を点「B」に相互接続する様々なデジタルロジックの記述を含むものと仮定する。更に、点「A」を点「B」に相互接続するデジタルロジックが、格納されているどの代替構成415にも等しくないものと仮定する。したがって、1つの実施形態では、持続的エラーモジュール421は、点「A」を点「B」に相互接続するデジタルロジックが特定の代替構成415に等しくなるようにネットリストを変更することによって、特定の代替構成415を実装する。持続的エラーモジュール421は、次いで、上述のように、持続的エラー再試行処理に進む。
当業者ならば、この処理が、様々なアーキテクチャ場所及び様々な代替場所について繰り返すことが可能であることがわかる。当業者ならば、また、ネットリストに基づく上記の例が、より広い観念であるソフトコアプロセッサのうちの一種の説明であることもわかる。したがって、図4Eの実施形態は、ネットリスト又はネットリストに等価なものを用いた実装形態に限定されないことを理解されるべきである。
ソフトコアプロセッサユニット422Dは、様々な時点で構成することができる。例えば、ソフトコアプロセッサユニット422Dは、エラー軽減システム215によってエラーが検出された後にリアルタイムに、プロセッサ110が最初に作動された起動時に、及び/又はプロセッサ110が最初に製造された製造時に構成される。
図4Fは、エラー軽減システムの第6の実施形態215Fを示している。この実施形態では、エラー軽減システム215Fは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、ログモジュール437、エミュレーションソフトウェア422B群、及び最適化モジュール430を含む。
次に、最適化処理について説明する。最適化モジュール430は、図4Cについて上述
されたエミュレータソフトウェア422Bを使用した持続的エラー再試行手順を更に進行させるためのソフトウェア及びルーチンである。1つの実施形態では、最適化モジュール430は、プロセッサ110のオンチップストレージに格納される。最適化モジュール430は、戦略モジュール417に通信可能に結合される。具体的には、最適化モジュール430は、コードブロック224のエラーフリー実行を実現する代替構成415が上述の持続的エラー再試行処理によって成功裏に実装された後に、戦略モジュール417と通信する。最適化モジュール430は、戦略モジュール417に余剰計算能力を使用させ、特定のコードブロック224のための最適候補一覧表に含まれる残りの各代替構成415のエミュレーションを続けさせる。もしこの処理によって、プロセッサ110のエラーフリーハードウェアをより多く用いる構成が異なる代替構成415によって提供されることが示された場合は、エラー軽減システム215は、第1の成功した代替構成415を、この異なる代替構成415で置き換える。
ログモジュール437は、上述された最適化処理を監視する。ログモジュール437は、最適化モジュール430によって実装される様々な代替構成415と、これらの代替構成415を実装した結果とを記述したログ情報を記録する。
図4Gは、エラー軽減システムの第7の実施形態215Gを示している。この実施形態では、エラー軽減システム215Gは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、ログモジュール437、持続的エラーアセット422A群、及び最適化モジュール430(随意)を含む。
この実施形態では、エラー軽減システム215は、信号線124に通信可能に結合され、ログモジュール437は、ログ情報を外部システム137にアップロードするように構成される。1つの実施形態では、エラー軽減システム215は、図1Bに示されたインターフェース128及びネットワーク130を介して外部システム137にログ情報をアップロードする。例えば、ログモジュール437は、ログ情報をXMLファイルの形式にし、この情報を所定間隔で外部システム137にアップロードすることができる。
当業者ならば、図1Cに示されたようなストレージデバイス140A又は光学デバイス140Bを使用してログ情報をどのように外部システムに送ることができるかを理解することができる。
図4Hは、エラー軽減システムの第8の実施形態215Hを示している。この実施形態では、エラー軽減システム215Hは、静的署名モジュール402、監視モジュール403、比較モジュール407、再試行モジュール409、ハードウェアコントローラ411、ルックアップテーブル413、代替構成415群、戦略モジュール417、持続的エラーモジュール421、ログモジュール437、持続的エラーアセット422A群、最適化モジュール430(随意)、及び更新モジュール434を含む。
この実施形態では、エラー軽減システム215Hは、信号線124に通信可能に結合され、更新モジュール434は、更新情報を受信するように構成される。1つの実施形態では、エラー軽減システム215は、図1Bに示されたインターフェース128及びネットワーク130を介して外部システム137から更新情報を受信する。
更新モジュール434は、データ信号124を介して更新情報を受信するように構成されたソフトウェア及びルーチンである。1つの実施形態では、更新モジュール434は、プロセッサ110のオンチップストレージに格納される。更新モジュール434は、エラ
ー軽減システム215の様々なモジュールに通信可能に結合される。更新モジュール434は、また、持続的エラーアセット422A、代替構成415群、ルックアップテーブル413、及び(結合219を介して)様々なコードブロック224にも通信可能に結合される。1つの実施形態では、外部システム137は、エラーを被っている様々なコードブロック224と、これらのエラーの結果とを記述したログ情報を、様々な制御ユニット105から受信している。外部システム137は、ログ情報を集め、これらのログ情報に基づいて更新情報群を作成する。外部システム137は、更新情報群をデータベースに格納する。更新情報は、エラー軽減システム215Hを再構成するように適応される。
更新情報の1つの目標は、被るエラーが少ないような、プロセッサ110のデジタルロジック構成を実現することである。この再構成のもう1つの目標は、異なる制御ユニット105が被った過去のエラーを繰り返さないような、プロセッサ110のデジタルロジック構成を実現することである。例えば、更新情報は、エラー軽減システム215のために、ファームウェア更新及び/又はネットリスト更新を提供することができる。ファームウェア更新は、プロセッサ110のファームウェアを変更する情報である。例えば、ファームウェア更新は、なかでも、エラー軽減システム215に含まれる各種のモジュール、及び/又はプロセッサ110によって実行される様々なコードブロック224の、任意の組み合わせを再構成することができる。1つの実施形態では、ファームウェア更新は、異なる順位付けを含むようにルックアップテーブル413を再構成する。ネットリスト更新は、プロセッサ110の様々なアーキテクチャ場所間に異なる相互接続を指定するようにプロセッサ110のネットリスト(不図示)を変更する情報である。したがって、ネットリスト更新は、プロセッサ110のデジタルロジックを効果的に再構成することができる。
当業者ならば、図1Cに示されたようなストレージデバイス140A又は光学デバイス140Bを使用して更新情報をどのようにエラー軽減システム215に送ることができるかを理解することができる。
1つの実施形態では、更新モジュール434は、データ信号124を介して更新情報を受信する。更新モジュール434は、情報に含まれる更新のタイプ(即ち、ファームウェア更新及び/又はネットリスト更新)を判定するために、更新情報を解析する。更新モジュール434は、次いで、更新を遂行するために、プロセッサ110の、異なるコンポーネントと通信する。例えば、もし更新情報がファームウェア更新を含む場合は、更新モジュール434は、ファームウェア更新に基づいてプロセッサのファームウェアを再構成する。
方法
図5は、プロセッサ110のデジタルロジック内のエラーを監視するための自己回復プロセッサ110の1つの実施形態のための一般的方法の流れ図である。方法は、プロセッサ110がコードブロック224を実行する(503)ことから開始する。動的署名解析回路226は、コードブロック224の実行についての動的署名を作成する(507)。動的署名解析回路226は、動的署名を監視モジュール403に転送する(514)。監視モジュール403は、結合217を介して動的署名回路226から動的署名を受信する。監視モジュール403は、動的署名を比較モジュール407に転送する(518)。比較モジュール407は、監視モジュール403から動的署名を受信する。比較モジュール407は、静的署名モジュール402にアクセスし、上記コードブロック224についての静的署名を読み出す(527)。比較モジュール407は、署名どうしが一致するかどうかを判定する(530)ために、動的署名を静的署名と比較する(527)。もし署名どうしが一致する(530)場合は、エラー軽減システム215は、エラーをチェックするために、次のコードブロック224に進む(535)。もし署名どうしが一致しない(530)場合は、エラー軽減システム215は、一時的エラー再試行処理を開始する(5
37)。ログモジュール437は、上記のイベントを記述したログ情報を格納する。
次に、図6を参照にして、一時的エラー再試行処理の1つの実施形態のための一般的方法の流れ図について説明する。処理は、比較モジュール407が、検出されたエラーを再試行モジュール409に通信する(603)ときから開始する。再試行モジュール409は、検出されたエラーを記述した情報を、比較モジュール407から受信する。再試行モジュール409は、再試行が所定回数を超えているかどうかを判定するために、内部カウントをチェックする(607)。もし再試行が所定回数を超えている場合は、エラー軽減システム215は、持続的エラー再試行処理を開始する(610)。もし再試行が所定回数を超えていない場合は、再試行モジュール409は、ハードウェアコントローラ411に再試行コマンドを通信する(612)。ログモジュール437は、これらのイベントを記述したログ情報を格納する。
ハードウェアコントローラ411は、再試行コマンドを受信する。ハードウェアコントローラ411は、コードブロック224の再試行を実行する(616)。動的署名解析回路226は、コードブロック224の実行についての動的署名を作成する(620)。動的署名解析回路226は、動的署名を監視モジュール403に転送する(622)。監視モジュール403は、結合217を介して動的署名回路から動的署名を受信し、その動的署名を比較モジュール407に転送する(627)。比較モジュール403は、監視モジュール403から動的署名を受信し、署名どうしが一致するかどうかを判定する(636)ために、動的署名を静的署名と比較する(632)。もし署名どうしが一致しない(636)場合は、エラー軽減システム215は、ステップ603における一時的エラー再試行処理を再度行う。一時的エラー再試行処理の再試行は、署名どうしが一致する(636)か、又は所定回数の再試行が試みられたと再試行モジュール409が判定する(607)まで続く。もし署名どうしが一致する(636)場合は、エラー軽減システム215は、エラーをチェックするために、次のコードブロックに進む(640)。ログモジュール437は、上記のイベントを記述したログ情報を格納する。
次に、図7A及び図7Bを参照にして、持続的エラー再試行処理の1つの実施形態のための一般的方法の流れ図について説明する。再試行モジュール409は、戦略モジュール417に持続的エラーを通知する(702)。戦略モジュール417は、再試行モジュール409からエラー情報を受信する。戦略モジュール417は、ルックアップテーブル413にアクセスする(704)。戦略モジュール417は、特定のコードブロック224のために使用可能な代替構成415があるかどうかを判定する(707)。もし使用可能な代替構成がない場合は、持続的エラー再試行処理は停止し(710)、エラー軽減システム215は、エラーをチェックするために、次のコードブロック224に進む。もし使用可能な代替構成がある場合は、戦略モジュール417は、次に使用可能なその代替構成415を特定した情報を受信する(713)。次に使用可能な代替構成は、エラー軽減システム215によってまだ実装されていない最も高順位の代替構成415である。戦略モジュール417は、次いで、次に使用可能な代替構成を記述した情報を読み出す(717)ために、代替構成415群と通信する。戦略モジュール417は、次いで、この情報を持続的エラーモジュール421に通信する(720)。持続的エラーモジュール421は、次の代替構成415を記述した情報を、戦略モジュール417から受信する。持続的エラーモジュール421は、次いで、次に使用可能な代替構成415を実装する(729)ように持続的エラーアセット422Aを構成する(725)。ログモジュール437は、上記のイベントを記述したログ情報を格納する。
次に、図7Bを見ると、持続的エラーモジュール421は、コードブロック224を再
試行するときであることを示すために、再試行モジュール409と通信する(734)。再試行モジュール409は、再試行コマンドをハードウェアコントローラ411に通信する(740)。ハードウェアコントローラ411は、コードブロック224を再実行するために、再試行モジュール409からコマンドを受信する。ハードウェアコントローラ411は、そのコードブロック224の実行を再試行する(743)。動的署名解析回路226は、動的署名を作成する(747)。この署名は、監視モジュール403に通信される(752)。監視モジュール703は、動的署名を比較モジュール407に転送する(754)。比較モジュール407は、動的署名を静的署名と比較する(758)。もし動的署名が静的署名と一致する(764)場合は、エラー軽減ルーチンは、ステップ503に進み(772)、そこでは、次のコードブロック224のための処理が開始する。もし署名どうしが一致しない(764)場合は、再試行モジュール409は、ステップ704に進み、そこでは、戦略モジュール417は、次に使用可能な代替構成415を実装する処理を開始する。エラー軽減システム215は、コードブロック224のための代替構成415が全て試行されるまで、又はプロセッサ110が持続的エラーを伴って動作することを可能にする代替構成415が見いだされるまで、即ち、コードブロック224がエラーフリーで実行されるまで、この処理を続ける。
次に、図8A〜8Cを参照にして、最適化処理の1つの実施形態の一般的方法の流れ図について説明する。最適化処理は、成功した代替構成415が特定されたら開始する(802)。最適化モジュール430は、プロセッサ能力が使用可能かどうかを見るために、プロセッサ110をチェックする(804)。最適化モジュール430は、適切なプロセッサ能力が使用可能になるまでステップ807に進まない。適切なプロセッサ能力が使用可能になったら、最適化モジュールは、まだ試行されていない代替構成415がルックアップテーブル413に含まれるかどうかを判定する(807)ために、戦略モジュール417と通信する。もし全ての代替構成415が試行されている場合は、最適化処理は停止する。もしまだ試行されていない使用可能な代替構成がある場合は、最適化モジュール430は、余剰のプロセッサ能力を使用して、これらの使用可能な各代替構成415のエミュレーションを行い、より優れたパフォーマンスを実現する代替構成があるかどうかをチェックする。最適化処理のためのステップ810〜862は、ステップ713〜772の持続的エラー再試行処理について上述されたのと同じである。
本発明の実施形態の以上の説明は、例示及び説明を目的として提示されたものであり、包括的であることも、開示された形態そのものに本発明を限定することも意図していない。上記の教示内容に照らして、多くの変更形態及びヴァリエーションが可能である。本発明の範囲は、この詳細な説明によってではなく、本出願の特許請求の範囲によって限定されることを意図している。当業者にならば理解されるように、本発明は、その趣旨又は基本的特性から逸脱することなくその他の特定の形態で具現化することが可能である。同様に、モジュール、ルーチン、特徴、属性、技法、及びその他の態様の、具体的な命名及び区別は、強制的でも重大でもなく、本発明又はその特徴を実現するメカニズムは、異なる呼び名、区別、及び/又は形式を有することが可能である。更に、当業者にならば明らかなように、本発明のモジュール、ルーチン、特徴、属性、技法、及びその他の態様は、ソフトウェア、ハードウェア、ファームウェア、又はこれら3つの任意の組み合わせとして実装することができる。1つの実施形態では、図4A〜4Hに示された各種のモジュールは、プロセッサ110のオンチップストレージに格納されたコンピュータ実行可能コードを含む。また、本発明の、例えばモジュールを一例とするコンポーネントが、どこであれソフトウェアとして実装されたとすると、そのコンポーネントは、独立したプログラムとして、より大きなプログラムの一部として、複数の個別のプログラムとして、統計的に若しくは動的にリンクされたライブラリとして、カーネルローダブルモジュールとして、デバイスドライバとして、並びに/又はコンピュータプログラミングの分野の当業者に現在若しくは将来知られるあらゆる及び任意のその他の形で、実装することができる。また、
本発明は、いかなる特定のプログラミング言語での実装にも、又はいかなる特定のオペレーティングシステム若しくは環境のための実装にも、決して限定されない。したがって、本発明の開示内容は、添付の特許請求の範囲に定められた本発明の範囲を限定するのでなく、例示的であることを意図している。

Claims (21)

  1. コードブロックと、動的署名解析回路と、エラー軽減システムとを有するプロセッサを備え、
    前記コードブロックは、デジタルロジックの一部分の動作及び前記動的署名解析回路に関連付けられ、前記プロセッサは、前記コードブロックを実行するために結合され、前記動的署名解析回路は、前記コードブロックに関連付けられた前記デジタルロジックの一部分の動作を表わす動的署名を作成するために結合され、
    前記エラー軽減システムは、前記動的署名解析回路から前記動的署名を受信するために結合され、前記エラー軽減システムは、前記コードブロックのエラーフリー実行を表わす静的署名を有し、前記エラー軽減システムは、前記動的署名を前記静的署名と比較して、署名どうしが一致するかどうかに基づいて前記デジタルロジック内のエラーを検出し、前記エラー軽減システムは、署名どうしが一致しない場合に前記コードブロックの実行を再試行するために結合され、前記エラー軽減システムは、ログ情報を格納する、
    自己回復システム。
  2. 前記ログ情報を外部システムにアップロードするために結合されたネットワークインターフェースを更に備える、請求項1に記載の自己回復システム。
  3. 前記コードブロック及び/又は前記デジタルロジックを再構成するための情報を含む更新情報を外部システムから受信するために結合されたネットワークインターフェースを更に備える、請求項1に記載の自己回復システム。
  4. 前記コードブロック及び/又は前記デジタルロジックを再構成するための情報を含む更新情報をストレージデバイスから受信するために結合されたインターフェースを更に備える、請求項1に記載の自己回復システム。
  5. 前記ログ情報は、検出されたエラーと、エラーを検出された前記コードブロックと、前記エラーが検出された時刻と、前記エラーが検出されたときの場所と、前記検出されたエラーのために試みられた再試行の回数と、の記述を含む、請求項1に記載の自己回復システム。
  6. 前記エラー軽減システムは、前記再試行された前記コードブロックの実行についての動
    的署名を前記動的署名解析回路から受信するために結合され、前記エラー軽減システムは、署名どうしが一致するかどうかを判定するために、前記再試行された実行についての前記動的署名を前記静的署名と比較し、前記エラー軽減システムは、前記署名どうしが一致するまで、又は所定回数の再試行が実行されるまで、前記コードブロックの実行を再試行し続ける、請求項1に記載の自己回復システム。
  7. 前記エラー軽減システムは、前記コードブロックに関連付けられた前記デジタルロジックのための代替構成群を含み、前記エラー軽減システムは、前記代替構成群から前記代替構成の1つを実装するために結合され、前記エラー軽減システムは、前記コードブロックの実行を再試行し、この再試行実行についての動的署名を前記動的署名解析回路から受信し、署名どうしが一致するかどうかを判定するために前記動的署名を前記静的署名と比較する、請求項6に記載の自己回復システム。
  8. 前記エラー軽減システムは、ルックアップテーブルを含み、前記ルックアップテーブルは、前記代替構成群から前記代替構成を実装するべき順番を順位付けした一覧表を有し、前記エラー軽減システムは、前記代替構成群から前記代替構成のどれを実装するかを判定するために、前記ルックアップテーブルにアクセスする、請求項7に記載の自己回復システム。
  9. 前記代替構成は、エミュレーションソフトウェア、フィールドプログラマブルロジックアレイ、及び/又はソフトコアプロセッサを使用して実装される、請求項7に記載の自己回復システム。
  10. 前記エラー軽減システムは、前記署名どうしが一致するまで、又は前記コードブロックのための前記代替構成が全て実装されるまで、前記代替構成の実装及び前記コードブロックの再試行実行を続ける、請求項7に記載の自己回復システム。
  11. 前記ログ情報は、前記検出されたエラーと、前記エラーを検出された前記コードブロックと、前記エラーが検出された時刻と、前記エラーが検出されたときの場所と、前記検出されたエラーのために試みられた再試行の回数と、実装される前記代替構成と、前記代替構成についての結果と、記述を含む、請求項7に記載の自己回復システム。
  12. ジタルロジックの一部分の動作に関連付けられたコードブロックを実行することと、
    前記デジタルロジックの一部分の動作を表わす動的署名を作成することと、
    前記動的署名を、前記コードブロックのエラーフリー実行を表わす静的署名と比較して、署名どうしが一致するかどうかに基づいて前記デジタルロジック内のエラーを検出することと、
    エラーの検出を受けて前記コードブロックの実行を再試行することと、
    ログ情報を格納することと、
    を含む、デジタルロジック内のエラーを検出及び軽減するための方法。
  13. 前記ログ情報を中央サーバにアップロードすることを更に含む、請求項12に記載の方法。
  14. 前記コードブロック及び/又は前記デジタルロジックを再構成するための情報を含む更新情報を中央サーバから受信することを更に含む、請求項12に記載の方法。
  15. 前記コードブロック及び/又は前記デジタルロジックを再構成するための情報を含む更新情報をストレージデバイスから受信することを更に含む、請求項12に記載の方法。
  16. 前記ログ情報は、前記検出されたエラーと、前記エラーを検出された前記コードブロックと、前記エラーが検出された時刻と、前記エラーが検出されたときの場所と、前記検出されたエラーのために試みられた再試行の回数と、の記述を含む、請求項12に記載の方法。
  17. ジタルロジックの一部分の動作に関連付けられたコードブロックを実行することと、
    前記デジタルロジックの一部分の動作を表わす動的署名を作成することと、
    前記動的署名を、前記コードブロックのエラーフリー実行を表わす静的署名と比較し、署名どうしが一致するかどうかに基づいて前記デジタルロジック内のエラーを検出することと、
    前記コードブロックの実行を再試行することと、
    前記再試行された前記コードブロックの実行についての動的署名を受信することと、
    署名どうしが一致するかどうかを判定するために、前記再試行された実行についての前記動的署名を前記静的署名と比較することと、
    前記署名どうしが一致するまで、又は所定回数の再試行が実行されるまで、前記コードブロックの実行を再試行し続けることと、
    ログ情報を格納することと、
    を含む、デジタルロジック内のエラーを検出及び軽減するための方法。
  18. 代替構成群から代替構成を実装することと、
    前記実装された代替構成が前記コードブロックのエラーフリー動作をもたらすかどうかを判定するために、前記コードブロックの実行を再試行することと、
    この再試行実行についての動的署名を動的署名解析回路から受信することと、
    署名どうしが一致するかを判定するために、この動的署名を前記静的署名と比較することと、
    を更に含む、請求項17に記載の方法。
  19. 前記代替構成群から前記代替構成のどれを実装するかを判定するために、前記代替構成群から前記代替構成が実装される順番を順位付けした一覧表を有するルックアップテーブルにアクセスすることを更に含む、請求項18に記載の方法。
  20. 前記代替構成は、エミュレーションソフトウェア、フィールドプログラマブルロジックアレイ、及び/又はソフトコアプロセッサを使用して実装される、請求項18に記載の方法。
  21. 前記ログ情報は、前記検出されたエラーと、前記エラーを検出された前記コードブロックと、前記エラーが検出された時刻と、前記エラーが検出されたときの場所と、前記検出されたエラーのために試みられる再試行の回数と、実装された前記代替構成と、前記代替構成についての結果と、の記述を含む、請求項18に記載の方法。
JP2010164195A 2010-07-21 2010-07-21 自己回復コンピュータシステムのためのアーキテクチャ Expired - Fee Related JP5609363B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010164195A JP5609363B2 (ja) 2010-07-21 2010-07-21 自己回復コンピュータシステムのためのアーキテクチャ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010164195A JP5609363B2 (ja) 2010-07-21 2010-07-21 自己回復コンピュータシステムのためのアーキテクチャ

Publications (2)

Publication Number Publication Date
JP2012027610A JP2012027610A (ja) 2012-02-09
JP5609363B2 true JP5609363B2 (ja) 2014-10-22

Family

ID=45780486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010164195A Expired - Fee Related JP5609363B2 (ja) 2010-07-21 2010-07-21 自己回復コンピュータシステムのためのアーキテクチャ

Country Status (1)

Country Link
JP (1) JP5609363B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018230988A1 (ko) * 2017-06-16 2018-12-20 주식회사 페스카로 Can 통신 기반 해킹공격 탐지 방법 및 시스템
KR20180137306A (ko) * 2017-06-16 2018-12-27 주식회사 페스카로 Can 통신 기반 해킹공격 탐지 방법 및 시스템
KR20190003112A (ko) * 2017-06-30 2019-01-09 주식회사 페스카로 Can 통신 기반 우회 공격 탐지 방법 및 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016147334A1 (ja) * 2015-03-18 2016-09-22 株式会社日立製作所 プロセッサの診断装置及び診断方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981421A (ja) * 1995-09-19 1997-03-28 Nec Eng Ltd 障害情報採取システム
JP2003233512A (ja) * 2002-02-13 2003-08-22 Nec Corp 保守機能付きクライアント監視システム及び監視サーバ及びプログラム並びにクライアント監視・保守方法
US8140912B2 (en) * 2006-11-02 2012-03-20 Nec Corporation Semiconductor integrated circuits and method of detecting faults of processors
JP5224038B2 (ja) * 2008-02-27 2013-07-03 日本電気株式会社 コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018230988A1 (ko) * 2017-06-16 2018-12-20 주식회사 페스카로 Can 통신 기반 해킹공격 탐지 방법 및 시스템
KR20180137306A (ko) * 2017-06-16 2018-12-27 주식회사 페스카로 Can 통신 기반 해킹공격 탐지 방법 및 시스템
KR101972457B1 (ko) 2017-06-16 2019-04-25 주식회사 페스카로 Can 통신 기반 해킹공격 탐지 방법 및 시스템
US11522878B2 (en) 2017-06-16 2022-12-06 Fescaro Co., Ltd. Can communication based hacking attack detection method and system
KR20190003112A (ko) * 2017-06-30 2019-01-09 주식회사 페스카로 Can 통신 기반 우회 공격 탐지 방법 및 시스템
KR101966345B1 (ko) * 2017-06-30 2019-04-08 주식회사 페스카로 Can 통신 기반 우회 공격 탐지 방법 및 시스템

Also Published As

Publication number Publication date
JP2012027610A (ja) 2012-02-09

Similar Documents

Publication Publication Date Title
US8775886B2 (en) Architecture for a self-healing computer system
US7529653B2 (en) Message packet logging in a distributed simulation system
US8898516B2 (en) Fault-tolerant computer system
Abdi et al. Application and system-level software fault tolerance through full system restarts
JP5609363B2 (ja) 自己回復コンピュータシステムのためのアーキテクチャ
US20140208162A1 (en) Generation of simulated errors for high-level system validation
Abad et al. Reset-based recovery for real-time cyber-physical systems with temporal safety constraints
US9984193B1 (en) System to combat design-time vulnerability
US20110296242A1 (en) Energy-efficient failure detection and masking
US20130024850A1 (en) Systems, methods and apparatus for fast file transfer
Potteiger et al. Moving target defense for the security and resilience of mixed time and event triggered cyber–physical systems
Nasahl et al. Attacking autosar using software and hardware attacks
EP3758326B1 (en) Secure updating of computing system firmware
JP5975923B2 (ja) 車両用制御装置
Brewerton et al. Demonstration of automotive steering column lock using multicore autosar® operating system
CN103473153B (zh) 用于检测微控制器中的潜在故障的方法和系统
Potteiger et al. Security in mixed time and event triggered cyber-physical systems using moving target defense
US20050114735A1 (en) Systems and methods for verifying core determinacy
US11321470B1 (en) Integrated out-of-band security for high security embedded systems
Geier et al. Compasec: a compiler-assisted security countermeasure to address instruction skip fault attacks on risc-v
Raje et al. Development of on board computer for a nanosatellite
Völp et al. Towards dependable CPS infrastructures: Architectural and operating-system challenges
US20050120278A1 (en) Systems and methods for verifying lockstep operation
Schneider et al. Basic single-microcontroller monitoring concept for safety critical systems
Axer Performance of time-critical embedded systems under the influence of errors and error handling protocols

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130509

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20131106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140818

R151 Written notification of patent or utility model registration

Ref document number: 5609363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees