JP6247816B2 - 高完全性処理を提供する方法 - Google Patents

高完全性処理を提供する方法 Download PDF

Info

Publication number
JP6247816B2
JP6247816B2 JP2012244960A JP2012244960A JP6247816B2 JP 6247816 B2 JP6247816 B2 JP 6247816B2 JP 2012244960 A JP2012244960 A JP 2012244960A JP 2012244960 A JP2012244960 A JP 2012244960A JP 6247816 B2 JP6247816 B2 JP 6247816B2
Authority
JP
Japan
Prior art keywords
transaction
data
conformer
buffer
processing
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
JP2012244960A
Other languages
English (en)
Other versions
JP2013105491A5 (ja
JP2013105491A (ja
Inventor
ジョナサン・ポール・ヴァンステンセル
Original Assignee
ジーイー・アビエイション・システムズ・エルエルシー
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 ジーイー・アビエイション・システムズ・エルエルシー filed Critical ジーイー・アビエイション・システムズ・エルエルシー
Publication of JP2013105491A publication Critical patent/JP2013105491A/ja
Publication of JP2013105491A5 publication Critical patent/JP2013105491A5/ja
Application granted granted Critical
Publication of JP6247816B2 publication Critical patent/JP6247816B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、高完全性処理を提供する方法に関する。
コンピュータ処理モジュールは、障害を検出して正確に分離すること、および誤った警報を最少にすることを確実にするために、ソースにおける高い完全性および高い可用性を提供することができる。高完全性モジュールは航空機についてはなお一層重要であり、高完全性モジュールによって障害が迅速かつ正確に検出、分離されないことから、操作困難になる場合がある。高完全性処理システムの従来設計は、モジュールにおいて2つ以上のマイクロプロセッサの間で命令レベルのロックステップ処理を実装するために高価な特注の回路を必要とする。さらに、最新のマイクロプロセッサは、構成要素の集積度が高まり、処理時間のばらつきを導入するフィーチャのために、ロックステップで動作することができない。
米国特許第7,987,385号明細書
一実施形態では、少なくとも2つの冗長処理レーンを有する高完全性処理システムにおいて同期および完全性検査を提供する方法であって、各レーンがアプリケーションプロセッサ(AP)を有し、前記APが非ロックステップ構成において同じアプリケーションソフトウェアを実行し、アドレス可能な空間へのアクセスを必要とするトランザクションを出力する、方法が、第1のAPから第1のトランザクションを出力するステップと、第1のトランザクションを実行する前に、第1のバッファに第1のトランザクションを記憶するステップと、第2のAPから第2のトランザクションを出力するステップと、マッチするかどうかを判定するために第1のトランザクションと第2のトランザクションを比較するステップと、第1のトランザクションと第2のトランザクションがマッチする場合、第1のトランザクションと第2のトランザクションの処理をそれらの対応するレーンで実行するステップとを含む。
本発明の第1の実施形態による高完全性処理システムの略図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の一部を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の一部を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の一部を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の一部を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第2の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。 第3の実施形態による高完全性処理システムにおいて同期および完全性検査を提供する方法の別の部分を概略的に示す図である。
ソースコンピューティングでの高完全性は現在、命令レベルのロックステップで実行する少なくとも2つの処理レーン、または少なくとも2つの処理レーンおよびモニタを必要とする。モジュールの各処理レーンで実行中のソフトウェアが、同じ入力(データ、割込み、時間など)を受け取り出力を送る前または新しい入力を受け取る前にデータ上で同じ「量」の処理を実行することができる場合、各レーンは障害を伴わずに同じ出力を作り出す。一般に、モジュールで実行中のソフトウェアが入力を受け取る場合、その入力は両方のレーンで同じものでなければならず、両方のレーンは厳密に同じ状態であるときに入力を受け取らなければならない。モジュールで実行中のソフトウェアが出力を送る場合、両方のレーンからのデータは出力される前に比較されなければならない。(状態同期が不適正であるために)出力データの比較に失敗しないようにするために、出力データの作成に関与するソフトウェアの部分は、出力が比較され、次いで送信することが可能になる前に、両方のレーンで同じ状態に達しなければならない。
本発明の実施形態は、プロセッサのロックステップ動作を必要とせず、異種のプロセッサを許容する同期および完全性検査の方法を提供する。図1は、本発明の第1の実施形態による、両方が互いに冗長である第1の処理レーン12と第2の処理レーン14とを持つ高完全性、非ロックステップ処理システム10の非限定的な例を示す。処理システム10はさらに多くの冗長な処理レーンを持ち得ることが企図されているが、説明を明快で簡単にするために、2つのみを示し、説明する。
第1の処理レーン12と第2の処理レーン14の両方は冗長であるので、第1の処理レーン12の構成要素のみを説明する。第2の処理レーン14では、20加えた同様の数字によって同様の部分を識別した。第1の処理レーン12の部分の説明は、第2の処理レーン14の同様の構成要素にも適用されることは理解されよう。
第1の処理レーン12は、集積されたAP22とメモリ24とを持つ第1のCPU20を含むことができる。高速インターフェース26はCPU20と動作可能に結合し、CPU20へのアクセスを提供する。高速インターフェース26は、十分な帯域幅を持つ任意のインターフェースであることが企図されている。非限定的な例として、高速インターフェースはPCI Expressであってもよい。
トランザクションメモリ28は第1の処理レーン12に含まれ、バッファとして機能し、CPU20と40の両方からのI/Oまたはアドレス可能な空間へのアクセスを記憶することができる。これは、読み出しアクセスと書き込みアクセスの両方を記憶することが含まれる。重複するトランザクションメモリ28を示しているが、これらは冗長性を目的として第1の処理レーン12の中に含めることができる。
少なくとも1つのデータコンフォーマ(data conformer)30を第1の処理レーン12に含めることができ、データコンフォーマ30は入来データと送出データとを比較してそれらが同じであることを確認することができる。複数のデータコンフォーマ30を示しているが、第1の処理レーン12の中では、1つのデータコンフォーマ30のみ必要である。第1の処理レーン12の中に複数のデータコンフォーマ30がある場合、データコンフォーマ30はインデックス付けされてもよい。複数のデータコンフォーマがある場合、第1の処理レーン12と第2の処理レーン14の両方は、同じ数のデータコンフォーマを持つ。データコンフォーマ間のインタラクションは同じ処理レーンのデータコンフォーマの中のみで生じる。I/Oインターフェース32を含むことができ、I/Oインターフェース32はアドレス可能な空間またはI/Oへの接続を実装することができる。
処理システム10は、各APの時間および/または空間の分割された環境をサポートすることができる。そのような分割された環境で、APはプログラムOSの多数の区画を実行することができる。データコンフォーマまたは別個のトランザクションメモリは、各APの各区画毎に用意され、区画の切り替え時にAP同士が同期するのを回避することが好ましい。さらに、APは多数のコアまたは多数のスレッドをサポートすることができる。データコンフォーマまたは別個のトランザクションメモリは、各々独立したコアまたはスレッド毎に必要となる。
そのような分割された環境では、共有メモリ34を第1の処理レーン12に含め、それをI/Oインターフェース32に接続することができる。共有メモリ34はエラー訂正コード(ECC)を含んでもよい。そのような共有メモリ34は、区画間で共有されるデータなどの高完全性を必要とするデータを記憶することができる。共有メモリ34は必要なメモリの量に応じて、内部または外部にあると企図されている。区画タイマ36もまた第1の処理レーン12に含めることができ、区画タイマ36は区画の中に残された時間を追跡することができる。任意の区画スイッチDMA38をもまた第1の処理レーン12に含めることができ、区画スイッチDMA38は区画切り替えの間にデータを取得することができるので、アプリケーションのためにデータが即座に準備される。そのデータはその後、I/Oアクセスを待つのではなく、このデバイスから直接読み出すことができる。区画タイマ36が期限を示すときに、CPU20は区画スイッチを起動することができる。
説明を簡潔にするために、以下の操作上の説明は第1および第2の処理レーン12および14に限定し、各レーンは単一のデータコンフォーマ30および50のみをそれぞれ持ち、かつ各レーンは非分割の環境であることとして説明する。処理システム10は、非ロックステップ構成においてAP22および42が同じアプリケーションソフトウェアを実行しアドレス可能な空間へのアクセスを必要とするトランザクションを出力して、同期および完全性検査を提供する方法を実行することができる。アドレス可能な空間は、非限定的な例としてI/O、メモリまたは他の空間を含む任意の適切な空間である。トランザクションが後続のトランザクションをすべてブロックすべきかどうか、比較が有効かどうか、および冗長なアドレス可能な空間にアクセスすべきかどうかを関連したプロセスIDに示すために、トランザクションとともにフラグを使用することができる。
一般に、書き込み動作の間、第1のトランザクションは第1のCPU20の第1のAP22から出力され、次いで第1のトランザクションは、実行される前に第1のバッファに記憶される。第2のCPU40の第2のAP42から第2のトランザクションが出力され、第1のトランザクションと第2のトランザクションは、マッチするかどうか判定するために比較することができる。第1のトランザクションと第2のトランザクションがマッチする場合、第1および第2のトランザクションに対応するアドレス可能な空間へのアクセスが達成される。第1のトランザクションと第2のトランザクションが比較されたときに、それらがマッチしないことが判明した場合、エラーが生じ、アドレス可能な空間へのアクセスは与えられない。そのようなエラーは記録されてもよいことが企図されている。非限定的な例として、エラーはメモリに記録されてもよい。システムの再開を促進するために、第1のトランザクションと第2のトランザクションがマッチしない場合、バッファがフラッシュされてもよいことがさらに企図されている。
一般に、読み取り動作の間、第1のトランザクションは第1のCPU20の第1のAP22から出力され、重複するアドレスに継続中の書き込みがなければ、第1のトランザクションに対応するアドレス可能な空間へのアクセスが達成される。トランザクションから読み出されたデータは検証され、第1のCPUに戻されて第2バッファに記憶される。第2のトランザクションが第2のCPU40の第2のAP42から出力される場合、読み出されたトランザクションは検証され、検証されたデータは第2のCPUに戻される。読み出されたデータが誤っている場合、または第1のトランザクションと第2のトランザクションとがマッチしない場合、エラーが生じ、関連したデータの有無にかかわらず、第1および第2のCPUにエラーがフラグで知らされる。そのようなエラーは記録されてもよいことが企図されている。非限定的な例として、エラーはメモリに記録されてもよい。システムの再開を促進するために、第1のトランザクションと第2のトランザクションがマッチしない場合、バッファがフラッシュされてもよいことがさらに企図されている。
図2A〜7Fは、処理システム10内の同期および完全性検査を提供する方法の実施形態を示す。図2A〜2Dは、第1および第2のバッファへ第1のトランザクションを記憶するステップを示す。この方法は、第1のCPU20が第1のトランザクションを生成するときに開始してもよい。図2Aには、第1のトランザクションをメモリ場所AまたはAwへのトランザクション書き込みアクセスとして示す。第1のトランザクションAwは、図2Bに示すように、第1の処理レーン12の第1のデータコンフォーマ30で受け取ることができる。次いで、図2Cに示すように、データコンフォーマ30は第1のトランザクションAwをトランザクションメモリ28の中にプッシュし、第1のトランザクションAwを第2の処理レーン14の第2のデータコンフォーマ50に渡すことができる。図2Dは、データコンフォーマ50が第1のトランザクションAwを第2のデータコンフォーマ50に対応するトランザクションメモリ48の中にプッシュするところを示す。図示していないが、この時点で、第2のCPU40によって第2の書き込みトランザクションが生成されれば第2のデータコンフォーマでそれを受け取ることができる。第2の書き込みトランザクションは、第1のデータコンフォーマ30に渡すことができる。第1のトランザクションは第1および第2のトランザクションメモリからポップされ、第1のトランザクションと第2のトランザクションがマッチするかどうかを判定するために、コンフォーマで第2の書き込みトランザクションと比較される。これらのトランザクションがマッチしない場合、書き込みは打ち切られ、エラーが記録される。これらのトランザクションがマッチする場合、データコンフォーマ30および50は、データを書き込むために書き込みトランザクションをI/Oインターフェース32および52に渡す。
図3A〜7Fは、第2のトランザクションがブロックされた読み出しアクセスである代替シナリオを示す。ブロック読み出しアクセスは典型的には、そのアドレスが継続中の書き込みと重複する読み出しである。図3Aにおいて、第1のCPU20は、Arとして示す、トランザクション書き込みアクセスと同じアドレスへの読み出しアクセスである第2のトランザクションを生成する。図3Bに示すように、第2のトランザクションArは第1の処理レーン12の第1のデータコンフォーマ30で受け取ることができる。トランザクションメモリ28の中に同じアドレスに対する既存の書き込みがあることから、データコンフォーマ30は、図3Cに示すようにトランザクションメモリ28の中の第1のトランザクションAwの後ろにトランザクションArをプッシュする。データコンフォーマ30はトランザクションArを第2のデータコンフォーマ50に渡し、第2のデータコンフォーマ50は次いで、図3Dに示すようにトランザクションメモリ48の中の第1のトランザクションの後ろにArをプッシュすることができる。
図4A〜4Dは、第3のトランザクションが生成され、バッファに記憶されるステップを示す。より具体的には、図4Aは、第2のCPU40が、第1のトランザクションまたはAwと同じアドレスへのトランザクション書き込みアクセスとして示す第3のトランザクションを生成するステップを示す。図4Bに示すように、第3のトランザクションAw’は第2のAP42から出力され、第2のデータコンフォーマ50によって受け取られる。図4Cに示すように、第2のデータコンフォーマ50は第2のトランザクションメモリ48に第3のトランザクションAw’を保存し、これを第1のデータコンフォーマ30に渡す。図4Dに示すように、第1のデータコンフォーマ30は第3のトランザクションAw’を第1のトランザクションメモリ28に保存する。
図5A〜5Cは、第1のトランザクションと第3のトランザクションとを比較するステップを示す。より具体的には、図5Aは、第1のトランザクションAwおよび第3のトランザクションAw’が第1のトランザクションメモリ28および第2のトランザクションメモリ48から、比較が行われるデータコンフォーマ30および50へポップされるところを示す。これらのトランザクションがマッチしない場合、書き込みは終了し、エラーが記録される。図5Bに示すように、これらのトランザクションがマッチする場合、データコンフォーマ30および50は書き込みトランザクションをI/Oインターフェース32および52に渡し、継続中の読み出しトランザクションをフェッチする。通常の完全性書き込みのために、書き込みトランザクションはアドレス指定されたI/Oインターフェースに渡されるのみである。図5Cに示すように、I/Oインターフェースはトランザクション書き込みAを完了し、データコンフォーマ30および50はトランザクション読み出しAをI/Oインターフェース32および52に渡す。通常の完全性読み出しのために、トランザクション読み出しAはアドレス指定されたI/Oインターフェースに渡すのみである。
図6A〜6Fは、読み出しデータが検証されるステップを示す。図6Aは、I/Oインターフェース32および52がデータAのトランザクション読み出しを完了したことを示す。図6Bおよび図6Cに示すように、I/Oインターフェース32および52は読み出しデーをデータコンフォーマ30および50に渡すことができる。図6Dに示すように、データコンフォーマ30および50は互いに読み出しデータを渡すことができ、図6Eに示す比較を実行することができる。図6Fに示すように、データコンフォーマ30は読み出しデータAを第1のCPU20に渡すことができ、データコンフォーマ50は後で読み出すために、トランザクションおよび読み出しデータAを第2のCPU40のトランザクションメモリ48の中に保存する。比較が失敗した場合、エラーが読み出しおよびトランザクションメモリ48の中に示され、エラーが記録される。
図7A〜7Dは、Ar’として示す第4のトランザクション読み出しアクセスが生成され、比較されるステップを示す。より具体的には、第2のCPU40は、図7Aで第2のトランザクションと同じアドレスへのトランザクション読み出しアクセスとして示す第4のトランザクション読み出しアクセスAr’を生成する。図7Bに示すように、トランザクションAr’は第2のAP42から出力され、第2のデータコンフォーマ50によって受け取ることができる。データコンフォーマ50は、トランザクションメモリ48の中にAからの既存の検証された読み出しがあると判定することができるので、Aからの検証された読み出しをトランザクションメモリ48から取得する。図7Dに示すように、データコンフォーマ50は次いで読み出しデータAをCPU40に送る。以前にA=A’の比較が失敗している場合、読み出しにおいてエラーが示される。このように、データコンフォーマ30および50は、CPU20および40のI/Oアクセスを、トランザクションバッファを使用して突合せることができる。各書き込みアクセス要求は、CPU20とCPU40の両方がこのアクセス要求を受け取るまで、バッファまたはトランザクションメモリの中にとどまり、受け取った後I/Oアクセスが開始される。各読み出しアクセスは、最初に読み出しトランザクションを開始したCPUへ直ちに読み出しデータを戻し、他方のCPUが同じ読み出しトランザクションを開始するまで、検証されたデータをトランザクションメモリに記憶する。このようにして、速い方のCPUが読み出しを実行するとき、遅い方のCPUにとってそのデータをプリフェッチすることが不可欠である。
図8A〜8Jは、ブロックされていない読み出しがある場合に、APが性能の犠牲を回避するために、継続中の書き込みおよびブロックされた読み出しトランザクションの前に読み出しを実行してもよい第3の実施形態による方法の代替部分を示す。さらに、この方法によって読み出しデータは、冗長プロセッサからの対応するトランザクションを待つのではなく、即座に利用可能となる。
読み出しトランザクションが生じ、トランザクションメモリの中の重複する領域への既存の書き込みがない(読み出しが任意の未処理の書き込みによって影響を受けない)場合、読み出しトランザクションは図8Aに示すようにブロックされていない読み出しである。図8Bに示すように、ブロックされていない読み出しBrは、第1の処理レーン12の第1のデータコンフォーマ30で受け取ることができる。図8Cに示すように、データコンフォーマ30はトランザクションBrをI/Oインターフェース32に渡し、またトランザクションBrを第2のデータコンフォーマ50に渡すことができる。次いで、図8Dに示すように、データコンフォーマ50はトランザクションBrをI/Oインターフェース52に渡すことができる。
図8Eは、I/Oインターフェース32および52が読み出しを実行するところを示しており、I/Oインターフェース32および52は、図8Fおよび8Gに示すように、読み出しデータをデータコンフォーマ30および50に渡すことができる。データコンフォーマ30および50は、図8Hに示すように互いに読み出しデータを渡すことができ、図8Iに示すように比較を実行することができる。図8Jに示すように、データコンフォーマ30は読み出しデータBを第1のCPU20に渡し、データコンフォーマ50は、後で読み出すためにトランザクションおよび読み出しデータBを第2のCPU40のトランザクションメモリに記憶する。読み出しがマッチしない場合、読み出しはエラーとしてフラグを付けられる。読み出しを供給しなかったデータコンフォーマは、それらの関連したプロセッサが読み出しを実行するまで検証された読み出しを保持する。
区画があり、区画の切り替えの時にバッファの中に継続中のトランザクションがある場合、継続中のトランザクションはシステムがその区画に戻るまで、そのバッファの中に残る。この場合、一組のトランザクションメモリは区画毎に維持され、データコンフォーマは区画の切り替え毎に設定された新しいトランザクションメモリに切り替わる。トランザクションの同期は区画毎通常通り機能し続け、継続中のトランザクションは元の区画に切り替わった後で完了する。トランザクションはその区画に戻るまで遅延されていたにもかかわらず、他のCPUから見ると遅延は存在していない。システムは常に、少なくとも最も低速のCPUと同じ速さで実行され、より低速のCPUのために読み出しデータが常に準備されているために、わずかに速く実行され得る。トランザクションを次の区画に入れてトランザクションを遅延させるが望ましくない場合、区画タイマに基づいてトランザクションを終了するために十分な時間があることを確認するのはソフトウェアによる。
上述の実施形態は、様々な利益を実現する。たとえば、上述の実施形態では、パフォーマンスに影響を与えることなく最新のプロセッサの同期が可能になる。技術的効果は、そのような同期および完全性検査がロックステップ操作を必要とせず、処理システムが少なくとも最も低速のプロセッサと同じ速さで動作することで異種のプロセッサを許容することである。プロセッサの同期は、ソフトウェアアプリケーションに対して透過的である。同期および完全性検査は、ハードウェア、ソフトウェアのどちらにも実装することができ、実装における柔軟性を可能にする。さらに上述の方法は、多数の冗長性を持つシステムにおいて、また多数のプロセッサ/スレッド用に使用することができる。異種のプロセッサを使用することによって、顧客により高レベルの安全性と価値を提供する。他にも利益として、処理モジュールに対する安全性分析を分離することができるため、システムの安全性分析を大幅に簡略化することができ、それによってシステムコストおよび開発期間を短縮することができる。
本書では、最良の形態を含めて本発明を開示するために、また任意のデバイスまたはシステムを作成、使用し、組み込まれた任意の方法を実行することを含めて、当業者が誰でも本発明を実施することができるように例を使用している。本発明の特許性のある範囲は特許請求の範囲によって定義され、当業者に思い付く他の例をも含み得る。そのような他の例は、それらが特許請求の範囲の文言と異ならない構造的要素を持つ場合、またはそれらが特許請求の範囲の文言と実質的に異ならない同等の構造的要素を含む場合、特許請求の範囲内にあるものとする。
10 処理システム
12 第1の処理レーン
14 第2の処理レーン
20 CPU
22 AP
24 メモリ
26 高速インターフェース
28 トランザクションメモリ
30 データコンフォーマ
32 I/Oインターフェース
34 共有メモリ
36 区画タイマ
38 区画切り替えDMA
40 CPU
42 AP
48 トランザクションメモリ
50 データコンフォーマ
52 I/Oインターフェース

Claims (10)

  1. 少なくとも2つの冗長処理レーンを有する高完全性処理システムにおいて同期および完全性検査を提供する方法であって、各処理レーンがアプリケーションプロセッサ(AP)を有し、前記APが非ロックステップ構成において同じアプリケーションソフトウェアを実行し、アドレス可能な空間へのアクセスを必要とする第1及び第2のトランザクションを出力する、方法において、
    第1の処理レーンのAPが前記第1のトランザクションを出力するステップと、
    非ロックステップ構成においてアプリケーションソフトウェアを実行するステップと、
    前記第1のトランザクションを実行する前に、前記第1の処理レーンの第1のバッファが前記第1のトランザクションを記憶するステップと、
    第2の処理レーンの第2のバッファが前記第1のトランザクションを記憶するステップと、
    非ロックステップ構成において同じアプリケーションソフトウェアを実行する前記第2の処理レーンの第2のAPが前記第2のトランザクションを出力するステップと、
    前記第2のトランザクションを前記第2のバッファが記憶するステップと、
    マッチするかどうかを判定するために前記第2のバッファが記憶する前記第1のトランザクションと前記第2のトランザクションをコンフォーマが比較するステップと、
    前記第1のトランザクションと前記第2のトランザクションがマッチする場合、前記第1のトランザクションと前記第2のトランザクションの処理をそれらの対応する処理レーンが実行するステップと、
    前記第1のトランザクションと前記第2のトランザクションがマッチしない場合、エラーをメモリが記録するステップと、
    前記第1のトランザクションと前記第2のトランザクションがマッチしない場合、前記第1のバッファがフラッシュするステップと、
    を含む、方法。
  2. 前記比較するステップの前に前記第2のトランザクションを前記第2のバッファが記憶する、請求項1に記載の方法。
  3. 前記第2のトランザクションを出力するステップの前に前記第2のバッファが前記第1のトランザクションを記憶するステップを含む、請求項1に記載の方法。
  4. 前記第1のバッファが前記第2のトランザクションを記憶するステップを含む、請求項1に記載の方法。
  5. 前記比較するステップの前に前記第1のバッファが前記第2のトランザクションを記憶するステップを含む、請求項4に記載の方法。
  6. 前記コンフォーマが前記第1の処理レーンの第1のデータコンフォーマを含む、請求項1に記載の方法。
  7. 前記第1のトランザクションを前記第1のバッファが記憶するステップは、前記第1のトランザクションを前記第1のデータコンフォーマに接続する第1のトランザクションメモリが記憶するステップを含む請求項6に記載の方法。
  8. 前記コンフォーマが前記第1のトランザクションを受け取る前記第2の処理レーンの第2のデータコンフォーマを含み、前記第1のトランザクションを前記第2のデータコンフォーマに接続する第2のトランザクションメモリが記憶するステップを含む、請求項7に記載の方法。
  9. 前記第2のデータコンフォーマが前記第2のトランザクションを受け取るステップを含む、請求項8に記載の方法。
  10. 前記第2のトランザクションを前記第1のトランザクションメモリが受けるステップを含む、請求項9に記載の方法。
JP2012244960A 2011-11-10 2012-11-07 高完全性処理を提供する方法 Expired - Fee Related JP6247816B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/293,501 US8924780B2 (en) 2011-11-10 2011-11-10 Method of providing high integrity processing
US13/293,501 2011-11-10

Publications (3)

Publication Number Publication Date
JP2013105491A JP2013105491A (ja) 2013-05-30
JP2013105491A5 JP2013105491A5 (ja) 2015-12-24
JP6247816B2 true JP6247816B2 (ja) 2017-12-13

Family

ID=47290641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012244960A Expired - Fee Related JP6247816B2 (ja) 2011-11-10 2012-11-07 高完全性処理を提供する方法

Country Status (6)

Country Link
US (2) US8924780B2 (ja)
EP (1) EP2592555A3 (ja)
JP (1) JP6247816B2 (ja)
CN (1) CN103198050B (ja)
BR (1) BR102012026784A2 (ja)
CA (1) CA2794155A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016087175A1 (de) * 2014-12-01 2016-06-09 Continental Teves Ag & Co. Ohg Rechensystem für ein kraftfahrzeugsystem
US20170083331A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Memory synchronization in block-based processors
US10474619B2 (en) * 2017-05-19 2019-11-12 General Electric Company Methods for managing communications involving a lockstep processing system
US10872043B2 (en) * 2017-08-17 2020-12-22 Microchip Technology Incorporated Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality
US10599513B2 (en) * 2017-11-21 2020-03-24 The Boeing Company Message synchronization system
US10528077B2 (en) 2017-11-21 2020-01-07 The Boeing Company Instruction processing alignment system
US10901865B2 (en) * 2019-04-03 2021-01-26 Arm Limited Error detection for processing elements redundantly processing a same processing workload

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
WO2002009626A1 (en) * 1999-07-26 2002-02-07 Advanced Prosthetic Technologies, Inc. Improved spinal surgical prosthesis
US6658621B1 (en) * 2000-06-30 2003-12-02 Intel Corporation System and method for silent data corruption prevention due to next instruction pointer corruption by soft errors
US7318169B2 (en) * 2002-05-15 2008-01-08 David Czajkowski Fault tolerant computer
US7178058B2 (en) * 2002-08-30 2007-02-13 Nec Corporation Fault tolerant computer and transaction synchronization control method
EP1398700A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten
US7373548B2 (en) * 2003-08-29 2008-05-13 Intel Corporation Hardware recovery in a multi-threaded architecture
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7426656B2 (en) * 2004-03-30 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system executing user programs on non-deterministic processors
RU2007119322A (ru) * 2004-10-25 2008-12-10 Роберт Бош ГмбХ (DE) Способ и устройство для переключения в вычислительной системе, включающей в себя по меньшей мере два обрабатывающих блока
CN1811722A (zh) * 2005-01-27 2006-08-02 惠普开发有限公司 冗余处理器中的差错处理系统
JP5013309B2 (ja) * 2006-08-18 2012-08-29 日本電気株式会社 フォールトトレラントコンピュータ、そのトランザクション同期制御方法
CN101861569B (zh) * 2007-07-24 2014-03-19 通用电气航空系统有限责任公司 高集成度和高可用性计算机处理模块
US7987385B2 (en) 2007-07-24 2011-07-26 Ge Aviation Systems Llc Method for high integrity and high availability computer processing
US8015390B1 (en) * 2008-03-19 2011-09-06 Rockwell Collins, Inc. Dissimilar processor synchronization in fly-by-wire high integrity computing platforms and displays

Also Published As

Publication number Publication date
US8924780B2 (en) 2014-12-30
BR102012026784A2 (pt) 2014-04-22
US20130124922A1 (en) 2013-05-16
CA2794155A1 (en) 2013-05-10
US9170907B2 (en) 2015-10-27
EP2592555A2 (en) 2013-05-15
JP2013105491A (ja) 2013-05-30
CN103198050B (zh) 2018-02-23
EP2592555A3 (en) 2013-10-23
CN103198050A (zh) 2013-07-10
US20150106657A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
JP6247816B2 (ja) 高完全性処理を提供する方法
US9052887B2 (en) Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
EP3270290B1 (en) Ddr memory error recovery
US7257682B2 (en) Synchronizing memory copy operations with memory accesses
US20060190702A1 (en) Device and method for correcting errors in a processor having two execution units
US8850262B2 (en) Inter-processor failure detection and recovery
US20050240806A1 (en) Diagnostic memory dump method in a redundant processor
US20090144524A1 (en) Method and System for Handling Transaction Buffer Overflow In A Multiprocessor System
US7464208B2 (en) Method and apparatus for shared resource management in a multiprocessing system
JP7351933B2 (ja) エラーリカバリ方法及び装置
US9448933B2 (en) Using redundant transactions to verify the correctness of program code execution
US9003260B2 (en) Partial-writes to ECC (error check code) enabled memories
JP2005285120A (ja) ユーザプログラムを実行する複数のプロセッサにおける非同期割り込みにサービスを提供する方法およびシステム
US20120254698A1 (en) Memory scrubbing
WO2015153645A1 (en) Memory migration in presence of live memory traffic
US7216252B1 (en) Method and apparatus for machine check abort handling in a multiprocessing system
US20140156975A1 (en) Redundant Threading for Improved Reliability
US6799285B2 (en) Self-checking multi-threaded processor
US7447941B2 (en) Error recovery systems and methods for execution data paths
Koser et al. A chip-level redundant threading (CRT) scheme for shared-memory protection
US20240086327A1 (en) Pseudo Lock-Step Execution Across CPU Cores
JP2012003313A (ja) コンピュータシステム及びその制御方法
JP2013175076A (ja) 情報処理装置および情報処理装置における異常分析方法
JP2002244879A (ja) プロセッサ二重化方式の情報処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151104

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171023

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: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6247816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees