JP7290410B2 - 指示命令処理調節システム - Google Patents

指示命令処理調節システム Download PDF

Info

Publication number
JP7290410B2
JP7290410B2 JP2018213374A JP2018213374A JP7290410B2 JP 7290410 B2 JP7290410 B2 JP 7290410B2 JP 2018213374 A JP2018213374 A JP 2018213374A JP 2018213374 A JP2018213374 A JP 2018213374A JP 7290410 B2 JP7290410 B2 JP 7290410B2
Authority
JP
Japan
Prior art keywords
processor unit
skew
synchronizer
processor
register
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.)
Active
Application number
JP2018213374A
Other languages
English (en)
Other versions
JP2019125350A (ja
JP2019125350A5 (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.)
Boeing Co
Original Assignee
Boeing Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Boeing Co filed Critical Boeing Co
Publication of JP2019125350A publication Critical patent/JP2019125350A/ja
Publication of JP2019125350A5 publication Critical patent/JP2019125350A5/ja
Application granted granted Critical
Publication of JP7290410B2 publication Critical patent/JP7290410B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • 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/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、広くは、改良されたコンピュータシステムに関し、特に、コンピュータシステム内のプロセッサユニットのデータフローを管理するための方法及び装置に関する。
航空機は、種々の航空機システムの信頼性、完全性、又は信頼性及び完全性を高めるために多くの冗長な構成要素を有する。例えば、システムの信頼性を高めるため、システムの完全性を高めるため、又はシステムの信頼性及び完全性を高めるために、構成要素が二重になっている場合がある。この冗長性は、システム性能を高めるために二重システムの形態を採り得る。例えば、航空機内のコンピュータシステムは、ハードウェアの冗長性に加えて情報の冗長性を含み得る。情報における誤りは、ソフトウェアの問題、放熱、又は他の原因などの様々な原因を介して生じ得る。
情報の完全性は、航空機内のコンピュータで実行される誤差検出及び補正プロセスを使用して取得され得る。完全性は冗長性も含み得る。冗長性によって、データの複数のコピーを取得するために、種々のコンピュータ又はプロセッサユニットで同じ動作を複数回実行すること及び同じアプリケーションを実行することが使用され得る。データのこれらのコピーは、それらのコピーが互いに一致しているか否かを判定するためにチェックされ得る。
ある解決策は、データの冗長なコピーを比較するために受信機に依拠し、一方で他の解決策は、データソースでの完全性を生成する。後者において、現在の解決策は、単一のコアプロセッサユニットを2つ以上の平行レーンへと配置する。これらのプロセッサユニットによって生成されたメッセージについて、データバスのロックステップチェッキングが実行される。これらの種類のプロセスは、外部チップ、プロセッサアーキテクチャの修正、又はそれらの何らかの組み合わせを使用して実行される。これらの種類の解決策は、特定の種類のプロセッサに対してカスタマイズされる。結果として、他の種類のプロセッサが使用されるときに、これらの解決策は、メモリバスアーキテクチャ、利用可能な比較ポイント、又は他の特性などのそれらのプロセッサの特性によって、上手く機能しない場合がある。
したがって、少なくとも上述の問題点のうちの幾つかと、起こり得る他の問題点を考慮した方法及び装置を有することが望ましいであろう。例えば、プロセッサユニットを使用してデータを処理するための所望の効率を取得する一方で、単一コアを有するプロセッサユニットを使用するとき又はマルチプルコアを使用するときに、データ完全性を実現するという技術的問題を克服する方法及び装置を有することが望ましいだろう。
本開示の一実施形態は、第1のプロセッサユニットで実行される内部同期装置を備えたプロセッサ同期システムを提供する。内部同期装置は、外部同期装置と通信し、外部同期装置と通信する第1のプロセッサユニットと第2のプロセッサユニットとの間に、望ましくない量のスキューが存在するか否かを判定する。内部同期装置は、必要とされる結果を生成することなしに、第1のプロセッサユニットに選択的に動作を実行させる。それによって、第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するときに、望ましくないスキューの量を低減させる。第1のプロセッサユニットと第2のプロセッサユニットによって生成された対応メッセージについて完全性チェックが実行される高完全性モードに対して、第1のプロセッサユニットと第2のプロセッサユニットが互いに関連付けられている。
本開示の別の一実施形態は、プロセッサユニットを同期させるための方法を提供する。外部同期装置が、同期システムと通信する第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するか否かを判定するように通信する。第1のプロセッサユニットが、必要とされる結果を生成することなしに、選択的に動作を実行するように指示される。それによって、第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するときに、望ましくないスキューの量が低減される。第1のプロセッサユニットと第2のプロセッサユニットによって生成された対応メッセージについて完全性チェックが実行される高完全性モードに対して、第1のプロセッサユニットと第2のプロセッサユニットが互いに関連付けられている。
特徴及び機能は、本開示の様々な実施形態において単独で実現することが可能であるか、又は以下の説明及び図面を参照して更なる詳細が理解され得る、更に別の実施形態において組み合わされることが可能である。
例示的な実施形態の特性と考えられる新規な特徴は、付随する特許請求の範囲に明記される。しかし、例示的な実施形態並びに好ましい使用モード、さらなる目的及びそれらの特徴は、添付図面を参照しつつ本開示の例示的な実施形態に関する以下の詳細な説明を読むことによって、最もよく理解されるであろう。
例示的な一実施形態による、データ処理環境のブロック図である。 例示的な一実施形態による、混合完全性データ処理システムの図である。 例示的な一実施形態による、複数のプロセッサのデータ転送を管理するためのプロセスのフローチャートの図である。 例示的な一実施形態による、同期プロセッサのためのプロセスのフローチャートの図である。 例示的な一実施形態による、同期プロセッサユニットのためのプロセスのフローチャートの図である。 例示的な一実施形態による、同期プロセッサユニットのためのプロセスのフローチャートの図である。 例示的な一実施形態による、プロセッサユニットからのメッセージの送信を同期させるためのプロセスのフローチャートの図である。 例示的な一実施形態による、メッセージを送信するためのプロセスのフローチャートの図である。 例示的な一実施形態による、メッセージを送信するためのプロセスのフローチャートの図である。 例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図である。 例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図である。 例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図である。 例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図である。 例示的な一実施形態による、データ処理システムのブロック図である。 例示的な一実施形態による、航空機製造及び保守方法のブロック図である。 例示的な一実施形態が実装され得る航空機のブロック図である。
例示的な実施形態は、1以上の種々の検討事項を認識し考慮する。例えば、例示的な実施形態は、1以上の冗長なアプリケーションを実行するプロセッサユニットの任意のペア又はグルーピングを使用するときに、データ出力の完全性を高めることが望ましいと認識し考慮する。例示的な実施形態は、データの完全性を高めるための動作の1つのモードが、動作の標準完全性モードと称されるデータの通常の処理と比較して、動作の高完全性モードであることを認識し考慮する。
したがって、例示的な実施形態は、データを管理するための方法、装置、及びシステムを提供する。例示的な一実施例では、メッセージ管理システムが完全性マネージャーを備える。完全性マネージャーは、混合完全性モードを有し、混合完全性モードのうちの選択されたモードに基づいて、プロセッサユニットと外部ノードとの間のメッセージの交換を管理するように構成されている。完全性マネージャーは、プロセッサユニット及び外部ノードと通信するハードウェ内に位置付けられ、プロセッサユニットからの冗長に計算された出力が高完全性モードにおいて一致することをチェックする。
別の例示的な一実施例では、プロセッサ同期システムが、第1のプロセッサユニットで実行される内部同期装置を備える。内部同期装置は、外部同期装置と通信し、外部同期装置と通信する第1のプロセッサユニットと第2のプロセッサユニットとの間に、望ましくない量のスキューが存在するか否かを判定する。内部同期装置は、必要とされる結果を生成することなしに、第1のプロセッサユニットに選択的に動作を実行させるように構成されている。それによって、第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するときに、スキューの量を低減させることができる。
次に、図面、特に、図1を参照すると、例示的な一実施形態によるデータ処理環境のブロック図が描かれている。データ処理環境100は、プロセッサユニット102が、混合完全性モード104で管理され得る環境である。この実施例では、プロセッサユニット102が、マルチコアプロセッサユニット、単一コアプロセッサユニット、同種マルチコアプロセッサユニット、異種マルチコアプロセッサユニット、グラフィックスプロセッサユニット、汎用プロセッサユニット、又は他の何らかの適切な種類のプロセッサユニット、のうちの少なくとも1つから選択される。
例示的な一実施例では、プロセッサユニット102が、同種又は異種であり得る。プロセッサユニット102が同種であるときに、それらのプロセッサユニットは、同じ指示命令セット、デザイン、モデル、部品番号、又はプロセッサユニット102の種類を規定する他のパラメータ、のうちの少なくとも1つを有し得る。
この例示的な実施例では、混合完全性モード104が、高完全性モード106と標準完全性モード108を含む。プロセッサユニット102のためのレーンの間のメッセージ比較又はメッセージ同期のうちの少なくとも一方が、高完全性モード106で実行される。例示的な一実施例では、レーンが処理ユニットである。
高完全性モード106にあるときに、完全性マネージャー120は、プロセッサユニット102のうちの複数のプロセッサユニットからの冗長に計算された出力が一致することをチェックする。例示的な一実施例において、一致は、複数のプロセッサユニットから送信されたデータが同じであることを意味する。完全性マネージャー120は、複数のプロセッサユニットから同じデータが送信されていることを保証するためにチェックする。
例えば、高完全性モード106で動作している2つのプロセッサユニットは、同じアプリケーションを実行することができ、同じ機能を実行し又は同じデータ処理を実行するように指示命令されている。高完全性モード106では、完全性マネージャー120が、プロセッサユニット102のうちの2つのプロセッサユニットによって生成された出力が同じであることを保証するためにチェックする。
描かれているように、プロセッサユニット102は、コンピュータシステム110内に位置付けられている。描かれているように、コンピュータシステム110は、物理的なハードウェアシステムであり、1以上のデータ処理システムを含む。2つ以上のデータ処理システムが存在しているときに、プロセッサユニットは、単一のデータ処理システム内に位置付けられ得るか、又はデータ処理システムのうちの2つ以上の中に位置付けられ得る。更に、2つ以上のデータ処理システムが存在するときに、これらのデータ処理システムは、通信媒体を使用して互いと通信する。通信媒体は、ネットワークであってもよい。データ処理システムは、コンピュータ、サーバコンピュータ、タブレット、又は他の何らかの適切なデータ処理システム、のうちの少なくとも1つから選択されてよい。
この例示的な実施例では、データマネージャー112が、プロセッサユニット102ためのデータ114の処理又はデータ114の交換のうちの少なくとも一方を管理する。本明細書で使用される場合、列挙されたアイテムと共に使用される「~のうちの少なくとも1つ」という表現は、列挙されたアイテムのうちの1以上の種々の組み合わせが使用されてもよく、且つ列挙された各アイテムのうちの1つだけが必要とされてもよいということを意味する。換言すると、「~のうちの少なくとも1つ」とは、アイテムの任意の組み合わせ、及び幾つかのアイテムが、列挙された中から使用され得ることを意味するが、列挙されたアイテムの全てが必要となる訳ではないことを意味する。アイテムとは、特定の対象物、物品、又はカテゴリであってよい。
例えば、限定するものではないが、「アイテムA、アイテムB、及びアイテムCのうちの少なくとも1つ」は、アイテムA、アイテムA及びアイテムB、若しくはアイテムBを含むことができる。この例はまた、アイテムA、アイテムB、及びアイテムC、若しくはアイテムB及びアイテムCも含むことができる。言うまでもなく、これらのアイテムのいずれかの組み合わせが存在し得る。幾つかの実施例では、「~のうちの少なくとも1つ」は、限定しないが例として、「2個のアイテムA、1個のアイテムB、及び10個のアイテムC」、「4個のアイテムB及び7個のアイテムC」、又は他の好適な組み合わせであってよい。
描かれているように、データマネージャー112は、コンピュータシステム110内に位置付けられている。データマネージャー112は、コンピュータシステム110内でプロセッサユニット102と同じ又は異なるデータ処理システムに位置付けられ得る。
描かれているように、データマネージャー112は、プロセッサユニット102によるデータ114の処理を管理する。例えば、プロセッサユニット102が高完全性モード106で動作するときに、データマネージャー112は、データ114を処理するためにプロセッサユニット102のタイミングを調節することができる。タイミングのこの調節は、プロセッサユニット102によるデータ114の処理において、データ114を同期されたやり方で同時に処理させる。言い換えると、プロセッサユニット102は、実質的に同じ時間に結果を生成するためにデータ114を処理するように同じアプリケーションを実行する。これらの結果は、データ114を処理することから生成された結果の完全性を判断するためにこれらの結果が比較され得る、プロセッサユニット102のうちの2つ以上によって生成され得る。
描かれているように、プロセッサユニット102のうちの2つ以上は、プロセッサユニット102のうちの他のプロセッサユニットが標準完全性モード108で動作することができる間に、高完全性モード106で動作することができる。言い換えると、データマネージャー112は、同時に混合完全性モード104のうちの異なるモードで処理及びデータを管理することができる。混合完全性モード104は、プロセッサユニット102のうちの一部が、プロセッサユニット102のうちの他のプロセッサユニットが標準完全性モード108で動作することができる間に、高完全性モード106で動作することができることを意味する。混合完全性モード104は、プロセッサユニット102の全部が、高完全性モード106で又は標準完全性モード108で動作することができることも意味する。
他の例示的な実施例では、データマネージャー112が、外部ノード116とのデータ114の交換を管理することができる。高完全性モード106で動作しているときに、データマネージャー112は、データ114を包含する転送メッセージ118の受信又は送信のうちの少なくとも一方のタイミングを調節することができる。例えば、データマネージャー112は、プロセッサユニット102のうちの2つ以上によるメッセージの受信を管理することができる。それによって、プロセッサユニット102のうちのこれらのプロセッサユニットは、実質的に同時に、実質的に同じ順序で、又はそれらの何らかの組み合わせで、転送メッセージ118内の同じメッセージを受信する。
プロセッサユニット102ためのデータマネージャー112のうちの少なくとも1つの範囲内の幾つかの異なる機能を使用して、これらの及び他の機能が実行され得る。例えば、データマネージャー112内の完全性マネージャー120、データマネージャー112内の外部同期装置122、又はプロセッサユニット102内の内部同期装置124のうちの1以上、のうちの少なくとも1つを使用して、それらの機能が実行され得る。
例示的な一実施例では、メッセージ管理システム125が、完全性マネージャー120を使用して設けられ得る。この例示的な実施例では、完全性マネージャー120が、混合完全性モード104を有する。描かれているように、完全性マネージャー120は、混合完全性モード104のうちの選択されたモード128に基づいて、プロセッサユニット102と外部ノード116との間の転送メッセージ118の交換を管理するように構成されている。この例示的な実施例では、完全性マネージャー120が、プロセッサユニット102及び外部ノード116と通信するハードウェア内に位置付けられている。
描かれているように、外部ノード116は、コンピュータシステム110の外側に位置付けられている。他の実施例では、外部ノード116が、コンピュータシステム110の内側に位置付けられ得る。外部ノード116は、幾つかの異なる形態を採り得る。例えば、外部ノード116は、プロセッサユニット102と通信する外部プロセッサ、組込型コンピュータ、デスクトップコンピュータ、ネットワークデバイス、ネットワークスイッチ、及び他の何らかの適切な種類の外部デバイス、を含む群から選択され得る。
例示的な一実施例では、プロセッサユニット102の第1の部分が高完全性で動作し、プロセッサユニット102の第2の部分が標準完全性で動作する。完全性マネージャー120は、選択されたモード128である高完全性モード106でプロセッサユニット102の第1の部分のための転送メッセージ118を管理し、選択されたモード128である標準完全性モード108でプロセッサユニット102の第2の部分のための転送メッセージ118を管理するように構成されている。転送メッセージ118は、プロセッサユニット102に又はプロセッサユニット102から送信され得るメッセージである。
描かれているように、完全性マネージャー120は、高完全性モード106と標準完全性モード108で同時に動作するプロセッサユニット102を管理するように構成されている。この種類の動作は、プロセッサユニット102が高完全性モード106又は標準完全性モード108のうちの少なくとも一方で動作する、混合完全性モード104を支援することを可能にする。言い換えると、プロセッサユニット102は、これらのモードの一方又は両方で同時に動作し得る。
この例示的な実施例では、完全性マネージャー120が、混合完全性モード104のうちの選択されたモード128が高完全性モード106であるときに、プロセッサユニット102のために転送メッセージ118を受信すること又はプロセッサユニット102のために転送メッセージ118を送信することのうちの少なくとも一方を同期させるように構成されている。
例えば、第1プロセッサユニット132と第2のプロセッサユニット134が高完全性で動作するときに、完全性マネージャー120は、外部ノード116からの転送メッセージ118内で受信された外部メッセージ140を第1のプロセッサユニット132のための第1の待ち行列142内に置き、外部メッセージ140のコピー144を第2のプロセッサユニット134のための第2の待ち行列146内に置くように構成されている。完全性マネージャー120は、第1の待ち行列142と第2の待ち行列146を制御する。それによって、平行レーンの一貫性が存在するように同じ深度まで、第1のプロセッサユニット132が第1の待ち行列142から読むと共に、第2のプロセッサユニット134が第2の待ち行列146から読む。例示的な一実施例では、待ち行列内のメッセージの量が深度である。
例示的な一実施例では、待ち行列を管理することに加えて、完全性マネージャー120が、第1のプロセッサユニット132から受信された受信メッセージ150を、第2のプロセッサユニット134から受信された対応メッセージ154内の対応メッセージ152と比較する。受信メッセージ150と対応メッセージ152が一致したときに、完全性マネージャー120は、受信メッセージ150を外部ノード116に送信する。
完全性マネージャー120によって行われる比較は、幾つかの異なるやり方で実行され得る。例えば、比較は、ビット単位の比較又は周期的冗長チェックのうちの少なくとも一方を使用して行われ得る。この実施例では、受信メッセージ150と対応メッセージ152との間に一致が存在しないならば、又は対応メッセージ152が選択された期間内に受信されないならば、それは望ましくない量のスキューが存在することを示し、完全性マネージャー120は受信メッセージ150を捨てる。この実施例では、一致が存在しないときに、対応メッセージ152が捨てられる。
更に、完全性マネージャー120が正確なチェックであるビット単位の比較を使用してメッセージ比較するときに、メッセージを完全性マネージャー120に送信する前に、値の精度を低減させるようなデータ値をプロセッサユニット102の各々が切り捨てることができる。例えば、メッセージ内の値が64ビットであるならば、切り捨てが使用されないならば全ての64ビットがチェックされる。ある場合では、ビット単位の比較を使用してデータを処理するときに、異なるレーン内で動作するプロセッサユニット102の間で望ましくない結果が生じ得る。結果として、プロセッサユニット102は、精度のレベルを低減させるような1以上のビットを切り捨てることができる。したがって、プロセッサユニット102が高完全性モード106にあるときに、ビットを切り捨てて、プロセッサユニット102によって可変レベルの精度を実現することができる。
別の例示的な一実施例では、外部同期装置122と通信する内部同期装置124を利用する、プロセッサ同期システム127が設けられ得る。描かれているように、内部同期装置124のうちの内部同期装置130は、プロセッサユニット102のうちの第1のプロセッサユニット132で実行される。内部同期装置130は、データマネージャー112内の外部同期装置122と通信して、外部同期装置122と通信する第1のプロセッサユニット132と第2のプロセッサユニット134との間に望ましくない量のスキュー136が存在するか否かを判定するように構成されている。例示的な一実施例において、スキューは、信号が2つ以上のプロセッサユニットから受信される時間の差である。スキューは、プロセッサユニットの間のクロックスキュー及び他の要因によって引き起こされ得る。
内部同期装置130は、必要とされる結果を生成することなしに、第1のプロセッサユニット132に選択的に動作138を実行させるように構成されている。それによって、第1のプロセッサユニット132と第2のプロセッサユニット134との間に望ましくない量のスキュー136が存在するときに、スキュー136の量を低減させることができる。
プロセッサユニット102によって処理におけるタイミングを調節するためにスキュー136を低減させる例示的な一実施例では、動作138が、第1のプロセッサユニット132から予めスケジューリングされた遊休時間166を除去し、第1のプロセッサユニット132と第2のプロセッサユニット134との間のスキュー136の量を低減させる。後行プロセッサユニット(lagging processor unit)から予めスケジューリングされた遊休時間を除去することは、そのプロセッサユニットが、指示命令を処理することに関する時間にスキップすることをもたらす。内部同期装置130は、予めスケジューリングされた遊休時間166を除去した後で、第1のプロセッサユニット132と第2のプロセッサユニット134との間で未だ望ましくない量のスキュー136が存在するならば、更なる予めスケジューリングされた遊休時間168を除去するように構成されている。
更に別の例示的な一実施例では、第1のプロセッサユニット132が、先行プロセッサユニット(leading processor unit)であり、第2のプロセッサユニット134が、後行プロセッサユニット(lagging processor unit)であり、動作は、第1のプロセッサユニット132に遊休時間を追加させて、第2のプロセッサユニット134である後行プロセッサユニットが調節されたタイミングを有し得るように、第1のプロセッサユニット132にアイドリングさせる。このやり方では、2つのプロセッサユニットのタイミングが、同期された処理のために調節され得る。
描かれているように、第1のプロセッサユニット132と第2のプロセッサユニット134は、第1のプロセッサユニット132と第2のプロセッサユニット134によって生成された転送メッセージ118のうちの対応メッセージ154について完全性チェックが実行される高完全性モード106に対して、互いに関連付けられている。
外部同期装置122は、第1のプロセッサユニット132と第2のプロセッサユニット134との間のスキュー136の量についての情報を記憶することができる。この情報は、外部同期装置122内のレジスタ156又は他の記憶機構の中に記憶され得る。例えば、その情報は、レジスタ156内に設定されるフラグ又はビットの群であり得る。本明細書で使用される場合、アイテムに関連して「~の群」を用いた場合には、1以上のアイテムを意味する。例えば、「ビットの群」は、1以上のビットである。
外部同期装置122は、スキュー136の量についての情報をレジスタ156内に記憶する。内部同期装置130は、外部同期装置122内の第1のプロセッサユニット132のための第1のレジスタ158に書き、外部同期装置122内の第2のプロセッサユニット134のための第2のレジスタ160を読むように構成され、第1のレジスタ158の値を第2のレジスタ160の値と比較して、第1のプロセッサユニット132と第2のプロセッサユニット134が、同期して指示命令を処理するようにタイミングが調節される時を決定する。
別の例示的な一実施例では、外部同期装置122が、第1のプロセッサユニット132のための第1のクロック162、及び第2のプロセッサユニット134のための第2のクロック164を含む。第1のクロック162と第2のクロック164は、第1のプロセッサユニット132と第2のプロセッサユニット134が、同期して指示命令を処理するようにタイミングを調節するために使用される。
完全性マネージャー120、外部同期装置122、又は内部同期装置124のうちの少なくとも1つは、ソフトウェア、ハードウェア、ファームウェア、又はそれらの組み合わせの中に実装され得る。ソフトウェアが用いられるときに、完全性マネージャー120、外部同期装置122、又は内部同期装置124のうちの少なくとも1つによって実行される動作は、プロセッサユニットなどのハードウェアで実行されるように構成されたプログラムコードとして実装され得る。ファームウェアが使用されるときに、完全性マネージャー120、外部同期装置122、又は内部同期装置124のうちの少なくとも1つによって実行される動作は、プロセッサユニットで実行されるよう、プログラムコード及びデータとして実装され、固定記憶装置内に記憶され得る。ハードウェアが採用されるときに、ハードウェアは、完全性マネージャー120、外部同期装置122、又は内部同期装置124のうちの少なくとも1つにおいて動作を実行するように動作する回路を含み得る。
例示的な実施例において、ハードウェアは、回路システム、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス、又は、幾つかの動作を実行するよう構成された何らかの他の適切な種類のハードウェア、のうちの少なくとも1つから選択された形態を採り得る。プログラマブル論理デバイスを用いる場合、該デバイスは、幾つかの動作を実行するように構成されてよい。該デバイスは、幾つかの動作を実行するよう、後で再構成されてもよく、または恒久的に構成されてもよい。プログラマブル論理デバイスは、例えば、プログラマブル論理アレイ、プログラマブルアレイ論理、フィールドプログラマブル論理アレイ、フィールドプログラマブルゲートアレイ、及び他の適切なハードウェアデバイスを含む。加えて、これらのプロセスは、無機構成要素に組み込まれた有機構成要素に実装されていてもよいし、全てが人間以外の有機構成要素でから成っていてもよい。例えば、これらのプロセスは、有機半導体の回路として実装されていてよい。
例えば、完全性マネージャー120は、単一の論理デバイスとして又は複数の異なる種類の論理デバイスとしてハードウェア内に実装され得る。異なる種類の論理デバイスは、共通モード故障などの潜在的な問題を低減させるように選択され得る。例えば、第1の論理デバイスは、フィールドプログラマブルゲートアレイであり、一方、第2の論理デバイスは、特定用途向け集積回路(ASIC)であり得る。更に、2つ以上の論理デバイスが使用されるときに、各論理デバイスは、そこを通ってメッセージが特定のプロセッサユニットのために処理されるところのレーンを有する。論理デバイスは、論理デバイスが時間において調節され得るように接続(connection)を有し得る。
例示的な一実施例では、プロセッサユニットを使用してデータを処理するための冗長性における所望の効率を取得することによって技術的問題を克服する、1以上の技術的解決策が存在する。結果として、1以上の技術的解決策が、プロセッサユニットによってデータを処理する効率を高める技術的効果を提供し得る。例えば、1以上の技術的解決策は、データを処理することにおけるタイミングを調節すること、又は、高完全性モードで動作しているプロセッサユニットによってメッセージを処理すること、のうちの少なくとも一方を可能にし得る。
結果として、コンピュータシステム110は、専用コンピュータシステムとして動作する。コンピュータシステム110内のデータマネージャー112又は内部同期装置124のうちの少なくとも一方は、データ114の処理中に存在するべき混合完全性モード104を可能にするやり方で、データ114の処理を管理することを可能にする。特に、データマネージャー112又は内部同期装置124のうちの少なくとも一方は、データマネージャー112、内部同期装置124、又はそれらの両方を有さない現在利用可能な汎用コンピュータシステムと比較して、コンピュータシステム110を専用コンピュータシステムに変換する。
図1のデータ処理環境の図は、例示的な一実施形態が実装され得るやり方に対して物理的又は構造的な限定を課すことを意図するものではない。示されている構成要素に加えて又は代えて、他の構成要素が使用されてもよい。幾つかの構成要素は不要であってよい。更に、一部の機能構成要素を図示するために、ブロックが提示されている。例示的な実施形態で実施されるときに、これらのブロックのうちの1つ以上が、結合されても、分割されても、結合且つ分割されて異なるブロックになってもよい。
例えば、データ処理環境100は、外部ノード116のみを伴って示されている。別の例示的な一実施例では、1以上の外部ノードが、外部ノード116に加えて又は外部ノード116の代わりに存在する。
例示的な一実施例は、航空機に関して説明されているが、他の例示的な実施例は他の用途に応用されてもよい。例えば、例示的な一実施例は、医療撮像、会計、天気予報、又は他の適切な用途において使用されるために実装され得る。
更なる別の一実施例として、2つのプロセッサユニットが、プロセッサユニット102内で表された。プロセッサユニット102のうちの1以上が、第1のプロセッサユニット132と第2のプロセッサユニット134に加えて、又はそれらの代わりに存在し得る。
例えば、第3のプロセッサユニットが、プロセッサユニット102内に存在し得る。内部同期装置130は、外部同期装置122と通信して、外部同期装置と通信する第1のプロセッサユニット132、第2のプロセッサユニット134、及び第3のプロセッサユニットの間に、望ましくない量のスキュー136が存在するか否かを判定し、必要とされる結果を生成することなしに、第1のプロセッサユニット132に選択的に動作138を実行させるように構成されている。それによって、望ましくない量のスキュー136が存在するときに、第1のプロセッサユニット132、第2のプロセッサユニット134、及び第3のプロセッサユニットの間のスキュー136の量が低減される。
例えば、混合完全性モード104に対して、2つの完全性モードが示されている。他の例示的な実施例では、他の幾つかの完全性モードが存在し得る。例えば、3つの完全性モード、5つの完全性モード、又は幾つかの他の数の完全性モードが利用され得る。例えば、これらの更なる完全性モードは、異なる数の比較を使用する。例えば、3つの完全性モードでは、アプリケーションが、プロセッサユニット102のうちの3つの異なるプロセッサユニットで実行され、同じデータを処理し得る。3つのプロセッサユニットで実行されているアプリケーションからの出力は、データマネージャー112内の完全性マネージャー120によって比較され且つ投票される。投票において、3つのプロセッサユニットからの出力が比較される。その出力値に対する大多数が特定される。大多数は、3つの出力値うちの2つ又は3つの出力値のうちの3つが同じであるということであり得る。この出力値は、使用される値である。少数派の出力値は捨てられる。
次に図2を参照すると、例示的な一実施形態による混合完全性データ処理システムの図が描かれている。この例示的な実施例では、混合完全性データ処理システム200が、図1のデータマネージャー112の制御の下で、図1のプロセッサユニット102を使用して実装され得る。
この例示的な実施例では、プロセッサユニット202とプロセッサユニット204が、マルチコアプロセッサである。描かれているように、プロセッサユニット202は、コア206とコア208を含む。プロセッサユニット204は、コア210とコア212を含む。描かれているように、これらの異なるコアは、タイムスライス214、タイムスライス216、及びタイムスライス218などの、タイムスライス中にアプリケーションを実行させる。
この例示的な実施例では、プロセッサユニット202内のコア206が、タイムスライス214中にアプリケーション1 220を、タイムスライス216中にアプリケーション4222を、タイムスライス218中にアプリケーション1220を実行させる。プロセッサユニット202内のコア208が、タイムスライス214中にアプリケーション2224を、タイムスライス216中にアプリケーション5226を、タイムスライス218中にアプリケーション6228を実行させる。
描かれているように、プロセッサユニット204内のコア210が、タイムスライス214中にアプリケーション1 220を、タイムスライス216中にアプリケーション4222を、タイムスライス218中にアプリケーション1220を実行させる。プロセッサユニット204内のコア212が、タイムスライス214中にアプリケーション3230を、タイムスライス216中にアプリケーション5226を、タイムスライス218中にアプリケーション3230を実行させる。
アプリケーション1 220は、高完全性モードを使用して、プロセッサユニット202内のコア206、及びプロセッサユニット204内のコア210によって実行される。同様のやり方で、アプリケーション4222も、コア206及びコア210によって高完全性で実行される。プロセッサユニット202内のコア208及びプロセッサユニット204内のコア212は、両方とも、高完全性モードでアプリケーション5226を実行させる。アプリケーション2224、アプリケーション3230、アプリケーション4222、及びアプリケーション6228は、プロセッサユニット204内のコア210及びプロセッサユニット202内のコア208によって、標準完全性で実行される。データの処理又はメッセージの交換のうちの少なくとも一方は、図1のデータマネージャー112によって管理されて、この実施例での混合完全性モードを提供する。ある実施例では、プロセスが、コアのためのモードに適用されて、より高いレベルの粒度(granularity)を実現し得る。
混合完全性データ処理システム200の図は、図1のデータ114の混合完全性処理に対して、如何にして図1のプロセッサユニット102が実装され得るかの、例示的な一実施態様として提供されている。この図は、他の例示的な実施例が実装され得るやり方を限定することを意図していない。例えば、他の数のプロセッサユニットが、他の例示的な実施例において実装され得る。
次に図3を参照すると、例示的な一実施形態による、複数のプロセッサのデータ転送を管理するためのプロセスのフローチャートの図が描かれている。この図で示されているプロセスは、図1の完全性マネージャー120内に実装され得る。
該プロセスは、プロセッサユニットと外部ノードとの間で交換されるメッセージを、プロセッサユニット及び外部ノードと通信するハードウェア内に位置付けられた完全性マネージャー内で受信し、高完全性モードが選択されたときにプロセッサユニットからの冗長に計算された出力が一致することをチェックすることによって開始する(動作300)。該プロセスは、混合完全性モードのうちの選択されたモードに基づいて、プロセッサユニットによる外部ノードとのメッセージの交換を管理する(動作302)。該プロセスは、その後、終了する。
次に図4を参照すると、例示的な一実施形態による、プロセッサユニットを同期させるためのプロセスのフローチャートの図が描かれている。図4で示されているプロセスは、図1の内部同期装置130内に実装され得る。
該プロセスは、外部同期装置と通信して、同期システムと通信する第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するか否かを判定することによって開始する(動作400)。該プロセスは、必要とされる結果を生成することなしに、第1のプロセッサユニットに選択的に動作を実行させる。それによって、第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するときに、スキューの量を低減させることができる(動作402)。該プロセスは、その後、終了する。例示的な一実施例では、第1のプロセッサユニットと第2のプロセッサユニットによって生成された対応メッセージについて完全性チェックが実行される高完全性モードに対して、第1のプロセッサユニットと第2のプロセッサユニットが互いに関連付けられているときに、このプロセスが使用され得る。
次に図5を参照すると、例示的な一実施形態による、プロセッサユニットを同期させるためのプロセスのフローチャートの図が描かれている。図5で描かれているプロセスは、図1のデータ処理環境100において実施することができる。このプロセスは、図1のプロセッサユニット102のうちのプロセッサユニット内に実装され得る。特に、該プロセスは、図1の第1のプロセッサユニット132で実行される内部同期装置130などの内部同期装置内に実装され得る。
該プロセスは、内部同期装置のプロセッサユニットが、外部同期装置内の共通レジスタの中へ論理1を書き込むことによって開始する(動作500)。共通レジスタは、データを処理するためにプロセッサユニットのタイミングを互いに調節することを可能にするプロセッサユニットによってアクセスされ得る。該プロセッサユニットは、特定のクロック速度で実行されるように設計され得る。しかし、プロセッサユニットの実際の物理的な実施態様は、仕様からわずかに変動し得る。このレジスタは、実行中にタイミングプロセッサを調節するために使用され得る。それによって、タイミングプロセッサは、同期したやり方でできる限り同時に近い状態で指示命令を実行することができる。
該プロセスは、外部同期装置内の共通ステータスレジスタを読む(動作502)。共通ステータスレジスタから読まれた値が論理1であるか否かに関して判定が行われる(動作504)。共通ステータスレジスタは、プロセッサユニットの間で共有される。単純なステータスレジスタは、2つ以上のプロセッサユニットによって見ることはできない。
値が論理1ならば、プロセッサは処理を開始する(動作506)。該プロセスは、その後、終了する。例示的な一実施例では、処理が、アプリケーションの初期化、アプリケーションの開始、アプリケーションの実行の継続、又は他の何らかの適切な動作を含み得る。再び動作504を参照すると、値が論理1でないならば、該プロセスは動作502に戻る。
次に図6を参照すると、例示的な一実施形態による、プロセッサユニットを同期させるためのプロセスのフローチャートの図が描かれている。該フローチャートは、図1の第1のプロセッサユニット132で実行される内部同期装置130などの、第1のプロセッサユニットで実行される内部同期装置によって実行される動作を示している。該プロセスは、2つ以上のプロセッサユニットによって実行されて、プロセッサユニットによる指示命令の処理を同期させることができる。
この実施例では、プロセッサユニットの各々が、経過した時間を測定するクロックを有する。このクロックは、プロセスが活動的にタスクに取り組んでいる時間を測定する中央処理装置とは異なり、リアルタイムを測定するデジタルクロックであり得る。
描かれているように、クロックは、プロセッサユニットによって読まれる外部クロックであり得る。例えば、クロックは、外部同期装置内に位置付けられ得る。クロックは、プロセッササイクルよりもむしろ、日、時間、分、及び秒に関する時系列的な時間を測定する。
該プロセスは、第1のプロセッサユニット内の内部同期装置が、外部同期装置内のクロックを読むことによって開始する(動作600)。クロックは、第1のプロセッサユニットのためのものであり、同じアプリケーション又は指示命令の組を実行している任意の他のプロセッサユニットのためのクロックと同期される。
差異レジスタから読まれた値が閾値より大きいか否かに関して判定が行われる(動作602)。差異レジスタは、クロックの現在の時間と、差異レジスタがプロセッサユニット内の内部同期装置によって読まれた時間と、の間の差異を表す値を記憶する。この例示的な実施例では、差異レジスタが外部同期装置内に位置付けられている。
外部同期装置は、2つのプロセッサユニットが差異レジスタを読む時間における差異を表す値を用いて差異レジスタを設定する。描かれているように、先行プロセッサユニットは、ゼロの値を取得することとなる。後行プロセッサユニットは、実際のスキュー時間を見る。例えば、後行プロセッサユニットは、先行プロセッサユニットが差異レジスタを読む時間と、後行プロセッサユニットが差異レジスタを読む時間と、の間の差異である数値を取得することとなる。
描かれているように、閾値は、幾つかの異なる要因に基づいて選択され得る。例えば、2つの処理ユニットの間で許容されるスキューの量が、閾値を設定するために使用され得る。差異レジスタの値が閾値より大きいならば、同期装置は、第2のプロセッサユニットに任意の結果を取得することなしに動作を実行させる(動作604)。
この例示的な実施例では、動作が、後行プロセッサユニットの速度を上げるために実行される。例えば、後行プロセッサユニットから予めスケジューリングされた遊休時間が除去され得る。代替的に、先行プロセッサユニットは、後行プロセッサユニットが追いつくことを可能にするためにアイドリングし得る。例えば、2つのプロセッサユニットが同じデータを使用して同じプログラムを実行しているときに、結果を取得するためにデータを処理することを含まない動作を実行することは、必要とされる結果を生成しない動作であると考えられる。
別の実施例では、動作604のうちの動作が、予備のパーティション又は予めスケジューリングされた遊休時間を除去することであり得る。言い換えると、予備のパーティションを除去することは、プロセッサユニットに、このプロセッサユニットと同期されている別のプロセッサユニットで対応するアプリケーションによって実行されないアクションを実行させる。該プロセスは、その後、動作602に戻る。
動作602で、差異レジスタの値が閾値よりも大きくないならば、該プロセスも動作602に戻る。この場合、第1のプロセッサユニットは第2のプロセッサユニットと同期されるか、又は第1のプロセッサユニットが第2のプロセッサユニットよりも遅い。
次に図7を参照すると、例示的な一実施形態による、プロセッサユニットからのメッセージの送信を同期させるためのプロセスのフローチャートの図が描かれている。図7で示されているプロセスは、図1の第1のプロセッサユニット132で実行されている内部同期装置130などの内部同期装置によって使用されて、完全性マネージャー120内の待ち行列に入れられているメッセージに基づいて、メッセージの送信を管理する。言い換えると、該プロセスは、待ち行列の空の部分が所定の閾値まで低減されるまで、メッセージが待ち行列内に集められることを可能にする。
該プロセスは、外部同期装置内の待ち行列深度レジスタを読むことによって開始する(動作700)。待ち行列深度レジスタは、幾つのメッセージが待ち行列内にあるかを示す待ち行列深度を含む。待ち行列は、2つのプロセッサユニットによって送信されているメッセージを一致させるために使用され得る。
外部同期装置内の待ち行列がn個のメッセージのための余地を有するか否かに関して判定が行われ得る(動作702)。動作702では、n個のメッセージが、予め規定された数のメッセージである。一実施例では、待ち行列が10個のメッセージを保持することができ、各時間毎にプロセッサユニットは3つのメッセージを書くことができる。待ち行列深度が9であるならば、待ち行列内に更に3つのメッセージを書くためには不十分な余地しか存在しない。
待ち行列がn個のメッセージのための余地を有さないならば、該プロセスは、遊休時間を追加し、その後、先行プロセッサユニットに戻る(動作704)。該プロセスは、その後、動作700に戻る。このプロセスは、待ち行列に3つのメッセージを書くための余地が利用可能になるまで繰り返される。結果として、待ち行列がn個のメッセージのための余地を有さないならば、プロセッサユニットは待ち行列内にメッセージを置かない。
そうでない場合、待ち行列がn個のメッセージのための余地を有するならば、プロセッサユニット内の内部同期装置は、外部同期装置内の待ち行列にメッセージを書く(動作706)。その後、該プロセスは終了する。該プロセスは、送信するための更なるメッセージが存在するときに再開され得る。
結果として、完全性マネージャーは、第1の待ち行列と第2の待ち行列を制御することができる。それによって、第1のプロセッサユニットは第1の待ち行列から読み、第2のプロセッサユニットは第2の待ち行列から読み、それらの両方が、平行レーンの一貫性を維持するように同じ待ち行列深度まで実行される。メッセージを書くことが内部同期装置によって実行されるように示されているが、この動作は、n個のメッセージが書かれ得る時間を示す内部同期装置を有するプロセッサユニット内の別の構成要素によって実行されてもよい。
図8を参照すると、例示的な一実施形態による、メッセージを送信するためのプロセスのフローチャートの図が描かれている。このプロセスは、図1の完全性マネージャー120内に実装されて、図1のプロセッサユニット102からの冗長に生成された送信メッセージのタイミングを調節し且つ完全性を確実にすることができる。この実施例では、識別子に基づいて、各メッセージが、待ち行列内の特定の場所に置かれる。この識別子は、メッセージのヘッダー内にあり得る。
該プロセスは、第1のプロセッサユニットからメッセージを受信することによって開始する(動作800)。該プロセスは、メッセージが高完全性メッセージであるか否かを判定する(動作802)。この判定は、幾つかの異なるやり方で行われ得る。例えば、ヘッダーは、メッセージが高完全性メッセージであるか否かに関する表示を含み得る。別の例示的な一実施例では、メッセージが高完全性メッセージであるか否かを判定するために、構成ファイル、レジスタ、又は他の何らかの種類のインジケータがチェックされ得る。
メッセージが高完全性メッセージであるならば、該プロセスはメッセージを記憶する(動作804)。動作804では、メッセージが、様々な種類の記憶デバイス内に記憶され得る。例えば、幾つかの異なる種類のデバイスを使用して実装され得る待ち行列内にメッセージが記憶される。例えば、待ち行列は、バッファー、ポートアレイ、又は他の何らかの適切な種類のデバイスを使用して実装され得る。描かれているように、ポートアレイは、メッセージが特定の場所であるよりもむしろ種々の場所に位置付けられ得るバッファーのダイナセット(dynamic set)である。ポートアレイでは、完全性マネージャーが、処理のためにメッセージをペアにするように種々のプロセッサユニットのためのバッファーを検索する。言い換えると、比較されるべきメッセージは、バッファーのダイナセット内の同じ序列にはないかもしれない。
該プロセスは、第2のプロセッサユニットから対応メッセージを受信するために待つ(動作806)。第2のメッセージが受信されたか又はタイムアウトが生じたかに関して判定が行われる(動作808)。タイムアウトが生じたならば、メッセージは捨てられ(動作810)、エラーが表示される(動作812)。該プロセスは、その後、終了する。
動作808を再び参照すると、第2のメッセージが受信されたならば、該プロセスは、2つのメッセージの間の比較を実行する(動作814)。その比較は、幾つかの異なるやり方で実行され得る。例えば、ビット単位の比較、周期的冗長チェックシグネチャーを比較すること、及び他の技術が使用され得る。
2つのメッセージが一致するか否かに関して判定が行われる(動作816)。2つのメッセージが一致するならば、該プロセスはメッセージを送信する(動作818)。この例示的な実施例では、メッセージがネットワークに送信される。該プロセスは、その後、終了する。
そうでない場合、該プロセスは、両方のメッセージを捨てる(動作820)。動作820では、一致が存在しないのでメッセージが捨てられる。その後、上述のように該プロセスは動作812に進む。動作802を再び参照すると、メッセージが高完全性を有さいないならば、上述のように該プロセスは動作818に進む。
次に図9を参照すると、例示的な一実施形態による、メッセージを送信するためのプロセスのフローチャートの図が描かれている。このプロセスは、図1の完全性マネージャー120内に実装されて、冗長に生成された送信メッセージのタイミングを調節し且つ完全性を確実にすることができる。
該プロセスは、プロセッサユニットからメッセージを受信することによって開始する(動作900)。メッセージが高完全性メッセージであるか否かに関して判定が行われる(動作902)。メッセージが高完全性メッセージであるならば、該プロセスは、プロセッサユニットのためのレーン内の待ち行列の中へメッセージを置く(動作904)。描かれているように、待ち行列は、先入れ先出し(FIFO)待ち行列であり、バッファーとして実装され得る。
別のプロセッサのためのレーン内の待ち行列が1以上のメッセージを有するか否かに関して判定が行われる(動作906)。他のプロセッサのレーン内の待ち行列が、1以上のメッセージを有さいないならば、該プロセスは、タイムアウトチェックを実行する(動作908)。タイムアウトが生じたならば、該プロセスは動作906に戻る。
他の待ち行列が1以上のメッセージを有するならば、該プロセスは、待ち行列内の2つのヘッドメッセージの間のビット単位の比較を実行する(動作910)。この例示的な実施例では、ヘッドメッセージが、待ち行列から引き出される次のメッセージである。
2つのメッセージが一致するか否かに関して判定が行われる(動作912)。2つのメッセージが一致するならば、該プロセスはメッセージを送信する(動作914)。この例示的な実施例では、メッセージがネットワークに送信される。該プロセスは、その後、終了する。そうでない場合、該プロセスは、両方のメッセージを捨て、エラーが表示される(動作916)。
動作902を再び参照すると、メッセージが高完全性メッセージでないならば、該プロセスは動作914に進む。動作908に戻って参照すると、タイムアウトが生じたならば、該プロセスは動作916に進む。
図10では、例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図が描かれている。このプロセスは、完全性マネージャー内に実装され得る。このプロセスは、メッセージを引き出すことを示している。
該プロセスは、メッセージの到着を検出することによって開始する(動作1000)。該プロセスは、待ち行列の後ろにメッセージを置く(動作1002)。その後、該プロセスは、待ち行列深度カウンターをインクリメントし(動作1004)、該プロセスはその後終了する。この例示的な実施例では、待ち行列深度カウンターが、如何にしてメッセージが読まれ得るかを示すために使用され得る。完全性マネージャーは、この待ち行列深度カウンターを使用して、メッセージが同じ順序で読まれることを確実にすることができる。
次に図11を参照すると、例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図が描かれている。この例示的な実施例では、該プロセスが、図1の完全性マネージャー120内に実装され得る。このプロセスは、待ち行列からメッセージを引き出すことを示している。
該プロセスは、第1のプロセッサユニットのための第1の待ち行列に対する読みリクエストを受信することによって開始する(動作1100)。第2のプロセッサユニットのための第2の待ち行列が、第2のプロセッサユニットによって既に読まれたか否かに関して判定が行われる(動作1102)。第2の待ち行列が既に読まれたならば、該プロセスは、第2のプロセッサユニットによって読まれた第2の待ち行列内の第2の待ち行列深度値を選択する(動作1104)。
完全性マネージャーなしに、各プロセッサユニットは、通常、メッセージを読むことにおいて使用されるそれ自身の待ち行列深度カウンターを使用する。例示的な一実施例では、完全性マネージャーが、特定の待ち行列深度カウンターから待ち行列深度値を選択して、両方のプロセッサユニットに同じ数のメッセージを読ませる。
該プロセスは、選択された待ち行列深度値を第1のプロセッサユニットに送信する(動作1106)。動作1106は、第1のプロセッサユニットが、待ち行列深度値に基づいて示されたメッセージの数を読むことを可能にする。該プロセスは、読まれたメッセージの数によって、待ち行列深度カウンター内の待ち行列深度値をデクリメントする(動作1108)。動作1108では、待ち行列深度カウンターが、第1のプロセッサユニットのための第1の待ち行列深度カウンター又は第2のプロセッサユニットのための第2の待ち行列深度値であり得る。デクリメントされる待ち行列深度カウンターは、どの待ち行列深度値が第1のプロセッサユニットに提供されたかに基づく。該プロセスは、その後、終了する。この例示的な実施例において、選択された待ち行列深度カウンターからの特定の待ち行列深度値の選択は、両方のプロセッサユニットがメッセージを読むために同じ待ち行列深度値を使用するように行われる。
動作1102を再び参照すると、第2のプロセッサのための第2の待ち行列が既に読まれていないならば、該プロセスは、第2の待ち行列深度カウンター内の第2の待ち行列深度値が、第1の待ち行列深度カウンター内の第1の待ち行列深度値より大きいか否かを判定する(動作1110)。第2の待ち行列深度値が第1の待ち行列深度値より大きいならば、該プロセスは、メッセージを読むために第1の待ち行列深度値を使用する(動作1112)。該プロセスは、その後、動作1106に戻る。そうでない場合、該プロセスは、メッセージを読むために第2の待ち行列深度値を使用し(動作1114)、動作1106に進む。
次に図12を参照すると、例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図が描かれている。この例示的な実施例では、該プロセスが、図1の完全性マネージャー120内に実装され得る。このプロセスは、メッセージを押し出すことを示している。
該プロセスは、メッセージの到着を検出することによって開始する(動作1200)。該プロセスは、プロセッサユニットのためのメモリの中へメッセージを押し出す(動作1202)。その後、該プロセスは、待ち行列深度をインクリメントし(動作1204)、該プロセスはその後終了する。
次に図13を参照すると、例示的な一実施形態による、メッセージを受信するためのプロセスのフローチャートの図が描かれている。この例示的な実施例では、該プロセスが、図1の完全性マネージャー120内に実装され得る。このプロセスは、メッセージを押し出すことを示している。このプロセスは、プロセッサユニット内のメモリから読むべきメッセージをプロセッサユニットに伝えるために使用され得る。
該プロセスは、第1のプロセッサユニットからメッセージを読むためのリクエストを受信することによって開始する(動作1300)。第2のプロセッサユニットのための第2の待ち行列が既に読まれたか否かに関して判定が行われる(動作1302)。待ち行列が既に読まれたならば、該プロセスは、第2のプロセッサユニットのための待ち行列に対する第2の読みポインターを提供する(動作1304)。この例示的な実施例では、読みポインターが、如何にしてメッセージが待ち行列から読まれ得るかを指摘する。例えば、読みポインターは、プロセッサユニットによって待ち行列内で読まれ得る最後のメッセージを指し得る。言い換えると、読みポインターは、待ち行列深度値に類似した待ち行列深度を示すことができる。
プロセッサユニットは、その内部メモリから読みポインターまでの幾つかのメッセージを読む(動作1306)。一実施例では、メッセージが、完全性マネージャーによって押し出される。完全性マネージャーは、読まれたメッセージの数によって押し出しカウンターをデクリメントする(動作1308)。該プロセスは、その後、終了する。完全性マネージャーが新しいメッセージを受信したときに、完全性マネージャーは、新しいメッセージをプロセッサユニット内のメモリの中へ押し出し、押し出しカウントを更新する。読みカウントは、プロセッサユニットがどれだけの数の押し出されたメッセージを読むことが許容されるかである。したがって、X個のメッセージが押し出され、プロセッサユニットがY個のメッセージを読むことを許容されるならば、X-Y個のメッセージがプロセッサのメモリ内に残される。押し出しカウントは、幾つの読まれていないメッセージがメモリ内に残されているかを示すために、Y個だけデクリメントされる。
動作1302を再び参照すると、第2のプロセッサユニットのための第2の待ち行列が既に読まれていないならば、該プロセスは、第2のプロセッサユニットのための押し出しカウンターが、第1のレーンのための押し出しカウンターより大きいか否かを判定する(動作1310)。第2の待ち行列深度のための押し出しカウンターが、第1のレーンのための第1の押し出しカウンターより大きいならば、該プロセスは、第1の押し出しカウンターの値を、メッセージを読むための読みポイントとして使用する(動作1312)。該プロセスは、その後、動作1306に戻る。そうでない場合、該プロセスは、第2のレーンのための押し出しカウンターを読みポインターとして使用する(動作1314)。該プロセスは、その後、動作1306に戻る。
図示した種々の実施形態におけるフローチャート及びブロック図は、例示的な一実施形態における、装置及び方法の幾つかの可能な実施態様の構造、機能、及び動作を示している。これに関し、フローチャート又はブロック図内の各ブロックは、モジュール、セグメント、機能、又は動作若しくはステップの一部分、のうちの少なくとも1つを表わし得る。例えば、1以上のブロックは、プログラムコード、ハードウェア、又はプログラムコードとハードウェアの組合せとして実装されてよい。ハードウェア内に実装されたときに、ハードウェアは、例えば、フローチャート又はブロック図の1以上の動作を実行するように製造又は構成された、集積回路の形態を採り得る。プログラムコードとハードウェアの組み合わせとして実装されたときに、この実装態様は、ファームウェアの形態を採り得る。フローチャート又はブロック図の各ブロックは、種々の動作を実行する専用ハードウェアシステム、又は専用ハードウェアと専用ハードウェアによって実行されるプログラムコードとの組み合わせを使用して実装され得る。
例示的な一実施形態の幾つかの代替的な実施態様では、ブロック内に記載された1以上の機能は、図中に記載された順序を逸脱して出現し得る。例えば、場合によっては、連続して示される2つのブロックがほぼ同時に実施されること、又は時には含まれる機能に応じてブロックが逆順に実施されることもあり得る。また、フローチャート又はブロック図に示されているブロックに加えて、他のブロックが追加されることもある。例えば、図12のプロセスは、メッセージを読むことに関して説明されている。このプロセスは、メッセージを書くこと又は送信することのためにも使用され得る。
次に図14を参照すると、例示的な一実施形態による、データ処理システムのブロック図が描かれている。図1のコンピュータシステム110及び外部ノード116を実施するために、データ処理システム1400が使用され得る。この例示的な実施例では、データ処理システム1400が、通信フレームワーク1402を含み、これにより、プロセッサユニット1404、メモリ1406、固定記憶装置1408、通信ユニット1410、入/出力(I/O)ユニット1412、及びディスプレイ1414の間で通信が行われる。この実施例では、通信フレームワーク1402が、バスシステムの形態を採り得る。
プロセッサユニット1404は、メモリ1406に読み込まれ得るソフトウェアのための指示命令を実行する役割を果たす。プロセッサユニット1404は、特定の実装態様に応じて、任意の数のプロセッサであるか、マルチプロセッサコアであるか、又は他の何らかの種類のプロセッサであってよい。
メモリ1406及び固定記憶装置1408は、記憶デバイス1416の実施例である。記憶デバイスは、例えば、限定するものではないが、データ、機能的な形態のプログラムコードなどの情報、又は他の適切な情報のうちの少なくとも1つを一時的に及び/若しくは永続的に記憶できる、任意のハードウェアである。記憶デバイス1416は、これらの例示的な実施例では、コンピュータ可読記憶デバイスとも称され得る。これらの実施例で、メモリ1406は、例えばランダムアクセスメモリ、又は任意の他の適切な揮発性或いは不揮発性の記憶デバイスであってもよい。固定記憶装置1408は、特定の実施態様に応じて様々な形態を採り得る。
例えば、固定記憶装置1408は、1以上の構成要素又はデバイスを包含し得る。例えば、固定記憶装置1408は、ハードドライブ、ソリッドステートハードドライブ、フラッシュメモリ、書換え型光学ディスク、書換え可能磁気テープ、又は上述の何らかの組み合わせであってもよい。固定記憶装置1408によって使用される媒体も、着脱可能であってよい。例えば、着脱可能ハードドライブが、固定記憶装置1408のために使用され得る。
これらの例示的な実施例では、通信ユニット1410が、他のデータ処理システム又は装置との通信を提供する。これらの例示的な実施例では、通信ユニット1410はネットワークインタフェースカードである。
入/出力ユニット1412は、データ処理システム1400に接続され得る他の装置との間のデータの入出力を可能にする。例えば、入/出力ユニット1412は、キーボード、マウス、または他の何らかの適切な入力装置のうちの少なくとも1つを通じて、ユーザ入力のための接続を提供し得る。更に、入/出力ユニット1412は、プリンタに出力を送信し得る。ディスプレイ1414は、ユーザに情報を表示するための仕組みを提供する。
オペレーティングシステム、アプリケーション、又はプログラムのうちの少なくとも1つに対する指示は、通信フレームワーク1402を介してプロセッサユニット1404と通信する記憶デバイス1416内に位置していてもよい。種々の実施形態のプロセスは、メモリ1406などのメモリの中に含まれ得るコンピュータによって実行される指示を使用して、プロセッサユニット1404によって実行され得る。
これらの指示命令は、プロセッサユニット1404内のプロセッサによって読み取られ実行され得る、プログラムコード、コンピュータ使用可能プログラムコード、又はコンピュータ可読プログラムコードと称される。種々の実施形態のプログラムコードは、メモリ1406又は固定記憶装置1408といった、種々の物理的記憶媒体又はコンピュータ可読記憶媒体上で具現化され得る。
プログラムコード1418は、選択的に着脱可能であるコンピュータ可読媒体1420に機能的形態で置かれ、プロセッサユニット1404によって実行するためにデータ処理システム1400に読み込ませたり、転送したりしてもよい。プログラムコード1418とコンピュータ可読媒体1420は、これらの実施例では、コンピュータプログラム製品1422を形成する。この例示的な一実施例では、コンピュータ可読媒体1420は、コンピュータ可読記憶媒体1424であってよい。これらの例示的な実施例では、コンピュータ可読記憶媒体1424は、プログラムコード1418を伝搬または伝送する媒体というよりは、むしろプログラムコード1418を記憶するために使用される、物理的記憶装置又は有形記憶装置である。
代替的に、プログラムコード1418は、コンピュータ可読信号媒体を使用して、データ処理システム1400に伝送され得る。コンピュータ可読信号媒体は、例えば、プログラムコード1418を含む伝播データ信号であり得る。例えば、コンピュータ可読信号媒体は、電磁信号、光信号、又は他の任意の適切な種類の信号のうちの少なくとも1つであってもよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、電線、又は他の任意の好適な種類の通信リンクといった少なくとも1つの通信リンクを介して伝送され得る。
データ処理システム1400に関して例示されている種々の構成要素は、種々の実施形態が実装され得るやり方に構造的な限定をもたらすことを意図するものではない。種々の例示の実施形態は、データ処理システム1400に対して図解されている構成要素に対して追加的又は代替的な構成要素を含むデータ処理システム内で実行され得る。図14に示す他の構成要素は、図示の実施例と異なることがある。種々の実施形態は、プログラムコード1418を実行可能な任意のハードウェアデバイス又はシステムを使用して実行され得る。
本開示の例示的な実施形態は、図15に示した航空機の製造及び保守方法1500、並びに図16に示した航空機1600に関連して説明され得る。先ず図15を参照するに、例示的な一実施形態による航空機の製造及び保守方法のブロック図が示されている。製造前の段階では、航空機の製造及び保守方法1500は、図16の航空機1600の仕様及び設計1502、並びに材料の調達1504を含む。
製造段階では、航空機1600の、構成要素及びサブアセンブリの製造1506とシステムインテグレーション1508とが行われる。その後、航空機1600は、認可及び納品1510を経て、運航1512に供され得る。顧客による運航1512中、航空機1600には、定期的な整備及び保守1514(改造、再構成、改修、及びその他の整備又は保守を含み得る)が予定される。
航空機の製造及び保守方法1500の各プロセスは、システムインテグレータ、第三者、事業者、又はこれらの幾つかの組み合わせによって、実施又は実行され得る。これらの実施例では、事業者は顧客であってよい。この明細書において、システムインテグレータは、任意の数の航空機製造業者及び主要システム下請業者を含みうるが、それらに限定されるわけではなく、第三者は、任意の数のベンダー、下請業者、及び供給業者を含みうるが、それらに限定されるわけではなく、オペレータは、航空会社、リース会社、軍事団体、サービス機関等であり得る。
次に図16を参照すると、例示的な実施形態が実行され得る航空機のブロック図が示されている。この例では、航空機1600は、図15の航空機の製造及び保守方法1500によって製造され、且つ、複数のシステム1604と内装1606とを有する機体1602を含み得る。システム1604の実施例には、1以上の複数の推進システム1608、電気システム1610、油圧システム1612、環境システム1614、及びコンピュータシステム1616が含まれる。任意の数の他のシステムが含まれていてもよい。航空宇宙産業の例が示されているが、種々の例示的な実施形態が、自動車産業といった他の産業にも適用され得る。本明細書で具現化されている装置及び方法は、図15の航空機の製造及び保守方法1500のうちの少なくとも1つの段階において採用され得る。
1つの例示的な実施例では、図15の構成要素及びサブアセンブリの製造1506で製造される構成要素又はサブアセンブリは、図15で航空機1600の運航1512中に製造される構成要素又はサブアセンブリと同様の方法で作製又は製造される。更に別の実施例では、1以上の複数の装置の実施形態、方法の実施形態、又はこれらの組み合わせを、図15の構成要素及びサブアセンブリの製造1506並びにシステムインテグレーション1508などの製造段階で利用することができる。1以上の装置の実施形態、方法の実施形態、又はこれらの組み合わせを、航空機1600が図15における運航1512、整備及び保守1514の間、又はその両方の間に利用することができる。
例えば、図1のデータマネージャー112などのデータマネージャー又は内部同期装置124などの1以上の内部同期装置のうちの少なくとも1つが、航空機1600内のコンピュータシステム1616内に実装され得る。これらの構成要素の使用は、混合完全性モードでのデータの処理を可能にし得る。種々の構成要素が、現在のコンピュータシステムと比較してより効率的なやり方で、データの処理を同期させること、メッセージの交換、又はそれらの何らかの組み合わせを可能にし得る。
幾つかの異なる例示的な実施形態を使用する実施態様は、航空機1600の組み立てを大幅に効率化すること、航空機1600のコストを削減すること、又は航空機1600の組み立てを大幅に効率化することと航空機1600のコストを削減することの両方が可能になる。データを処理することにおける効率を高めることは、航空機1600内で必要とされるコンピュータのサイズ又は数のうちの少なくとも一方を低減させ得る。この高められた効率は、航空機内で現在使用されているデータ処理システムの処理能力を高め、したがって、整備及び改修の量を低減させることができる。
したがって、1以上の例示的な実施例は、航空機又は別の適切なプラットフォームなどの、プラットフォーム内のプロセッサシステムによってデータを共通処理するコストを低減させるために使用され得る。例えば、別の種類のプラットフォームは、転送式プラットフォーム、固定式プラットフォーム、陸上構造物、水上構造物、及び宇宙構造物であってもよい。より詳細には、プラットフォームは、水上艦、戦車、人員運搬機、列車、宇宙船、宇宙ステーション、衛星、潜水艦、自動車、発電所、橋、ダム、家屋、製造施設、建造物、及び他の適切なプラットフォームであり得る。
プロセッサユニットを使用してデータを処理するための冗長性における所望の効率を取得することによって技術的問題を克服する、1以上の技術的解決策が存在する。結果として、1以上の技術的解決策は、プロセッサユニットによってデータを処理することにおける効率を高めることができる。例えば、1以上の技術的解決策は、データを処理することにおけるタイミングを調節すること、又は、高完全性モードで動作しているプロセッサユニットによってメッセージを処理すること、のうちの少なくとも一方を可能にし得る。結果として、プロセッサユニットは、高完全性モード、標準完全性モード、又はそれらの何らかの組み合わせを使用して、個別に又は実質的に同時に、データを処理することができる。
種々の例示的な実施形態の説明は、例示及び説明を目的として提示されており、網羅的であること、又は開示された形態の実施形態に限定することは意図されていない。動作又は工程を実施する構成要素が、種々の実施例によって説明される。一実施例においては、構成要素は、記載された動作や工程を実施するように構成され得る。例えば、この構成要素は、実施例において構成要素によって実施されると説明されている動作又は工程を実施する能力をこの構成要素に提供する構造向けの構成又は設計を有し得る。
更に、本開示は以下の条項による実施形態を含む。
条項1
第1のプロセッサユニットで実行される内部同期装置であって、外部同期装置と通信して、前記外部同期装置と通信する前記第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するか否かを判定し、前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間に前記望ましくない量のスキューが存在するときに、前記第1のプロセッサユニットに、必要とされる結果を生成することなしに選択的に動作を実行させて、前記望ましくない量のスキューが低減させるように構成されている、内部同期装置を備え、前記第1のプロセッサユニットと前記第2のプロセッサユニットによって生成された対応メッセージについて完全性チェックが実行される高完全性モードに対して、前記第1のプロセッサユニットと前記第2のプロセッサユニットが互いに関連付けられている、プロセッサ同期システム。
条項2
前記第1のプロセッサユニットと前記第2のプロセッサユニットが同じ種類である、条項1に記載のプロセッサ同期システム。
条項3
前記第1のプロセッサユニットと前記第2のプロセッサユニットが異なる種類である、条項1に記載のプロセッサ同期システム。
条項4
前記外部同期装置が、前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間の前記望ましくない量のスキューについての情報を記憶する、条項1に記載のプロセッサ同期システム。
条項5
前記外部同期装置が、前記望ましくない量のスキューについての前記情報をレジスタ内に記憶し、前記プロセッサ同期システムと通信する前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間に前記望ましくない量のスキューが存在するか否かを判定するために、前記プロセッサ同期システムが前記外部同期装置と通信するにあたって、前記内部同期装置が、前記外部同期装置内の前記第1のプロセッサユニットのための第1のレジスタに書き、前記外部同期装置内の前記第2のプロセッサユニットのための第2のレジスタを読むように構成され、前記第1のレジスタの値を前記第2のレジスタの値と比較して、前記第1のプロセッサユニットと前記第2のプロセッサユニットが指示命令を同期して処理するように調節される時を決定する、条項4に記載のプロセッサ同期システム。
条項6
前記外部同期装置が、前記第1のプロセッサユニットのための第1のクロックと前記第2のプロセッサユニットのための第2のクロックを含み、前記第1のクロックと前記第2のクロックが、前記第1のプロセッサユニットと前記第2のプロセッサユニットが指示命令を同期して処理するように調節するために使用される、条項1に記載のプロセッサ同期システム。
条項7
前記第1のプロセッサユニットが先行プロセッサユニットであり、前記第2のプロセッサユニットが後行プロセッサユニットであり、差異レジスタが前記先行プロセッサユニットにゼロ値を返し、前記差異レジスタが前記後行プロセッサユニットに前記望ましくない量のスキューの値を返す、条項6に記載のプロセッサ同期システム。
条項8
前記第1のプロセッサユニット内の前記内部同期装置が、前記第1のプロセッサユニットが前記第2のプロセッサユニットよりも遅いことを検出したときに、前記動作が前記第1のプロセッサユニットから予めスケジューリングされた遊休時間を除去し、前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間の前記望ましくない量のスキューが低減される、条項1に記載のプロセッサ同期システム。
条項9
前記予めスケジューリングされた遊休時間を除去した後で、前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間に未だ前記望ましくない量のスキューが存在するならば、更なる予めスケジューリングされた遊休時間を除去するように、前記内部同期装置が構成されている、条項8に記載のプロセッサ同期システム。
条項10
前記第1のプロセッサユニットが先行プロセッサユニットであり、前記第2のプロセッサユニットが後行プロセッサユニットであり、前記動作が前記第1のプロセッサユニットに予めスケジューリングされた遊休時間を追加させ、前記第1のプロセッサユニットをより遅く動作させる、条項1に記載のプロセッサ同期システム。
条項11
第3のプロセッサユニットであって、前記内部同期装置が前記外部同期装置と通信して、前記外部同期装置と通信する前記第1のプロセッサユニット、前記第2のプロセッサユニット、及び前記第3のプロセッサユニットの間に望ましくない量のスキューが存在するか否かを判定し、前記第1のプロセッサユニット、前記第2のプロセッサユニット、及び前記第3のプロセッサユニットの間に前記望ましくない量のスキューが存在するときに、前記第1のプロセッサユニットに、前記必要とされる結果を生成することなしに選択的に前記動作を実行させて、前記望ましくない量のスキューを低減させるように構成されている、第3のプロセッサユニットを更に備える、条項1にプロセッサ同期システム。
条項12
前記第1のプロセッサユニットと前記第2のプロセッサユニットが、各々、マルチコアプロセッサユニット、単一コアプロセッサユニット、同種マルチコアプロセッサユニット、異種マルチコアプロセッサユニット、グラフィックスプロセッサユニット、汎用プロセッサユニット、のうちの少なくとも1つを含む群から選択される、条項1に記載のプロセッサ同期システム。
条項13
前記内部同期装置が、前記第1のプロセッサユニットで実行されるソフトウェア又はハードウェアのうちの少なくとも一方を備える、条項1に記載のプロセッサ同期システム。
条項14
プロセッサユニットを同期させるための方法であって、
外部同期装置と通信して、同期システムと通信する第1のプロセッサユニットと第2のプロセッサユニットとの間に望ましくない量のスキューが存在するか否かを判定すること、及び
前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間に前記望ましくない量のスキューが存在するときに、前記第1のプロセッサユニットに、必要とされる結果を生成することなしに選択的に動作を実行させて、前記望ましくない量のスキューを低減させることを含み、
前記第1のプロセッサユニットと前記第2のプロセッサユニットによって生成された対応メッセージについて完全性チェックが実行される高完全性モードに対して、前記第1のプロセッサユニットと前記第2のプロセッサユニットが互いに関連付けられている、方法。
条項15
前記第1のプロセッサユニットと前記第2のプロセッサユニットが同じ種類である、条項14に記載の方法。
条項16
前記第1のプロセッサユニットと前記第2のプロセッサユニットが異なる種類である、条項14に記載の方法。
条項17
前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間の前記望ましくない量のスキューについての情報を前記外部同期装置内に記憶することを更に含む、条項14に記載の方法。
条項18
前記外部同期装置が前記望ましくない量のスキューについての情報をレジスタ内に記憶し、前記同期システムと通信して、前記同期システムと通信する前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間に前記望ましくない量のスキューが存在するか否かを判定することが、
前記同期システム内の前記第1のプロセッサユニットのための第1のレジスタに書くこと、
前記同期システム内の前記第2のプロセッサユニットのための第2のレジスタを読むこと、及び
前記第1のレジスタの値を前記第2のレジスタの値と比較して、前記第1のプロセッサユニットと前記第2のプロセッサユニットが指示命令を同期して処理するように調節される時を決定することを含む、条項17に記載の方法。
条項19
前記外部同期装置が、前記第1のプロセッサユニットのための第1のクロックと前記第2のプロセッサユニットのための第2のクロックを含み、前記外部同期装置が、前記第2のプロセッサユニットのための前記第2のクロックのためのレジスタを読む、条項14に記載の方法。
条項20
幾つかの支持命令が、前記第1のプロセッサユニットから予めスケジューリングされた遊休時間を除去し、前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間の前記望ましくない量のスキューが低減される、条項14に記載の方法。
条項21
前記予めスケジューリングされた遊休時間を除去した後で、前記第1のプロセッサユニットと前記第2のプロセッサユニットとの間に未だ前記望ましくない量のスキューが存在するならば、更なる予めスケジューリングされた遊休時間を除去することを更に含む、条項20に記載の方法。
条項22
前記第1のプロセッサユニットが先行プロセッサユニットであり、前記第2のプロセッサユニットが後行プロセッサユニットであり、幾つかの指示命令が、前記第1のプロセッサユニットにアイドリングさせる、条項14に記載の方法。
条項23
第3のプロセッサユニットが存在し、前記方法が、
前記外部同期装置と通信して、前記同期システムと通信する前記第1のプロセッサユニット、前記第2のプロセッサユニット、及び前記第3のプロセッサユニットの間に前記望ましくない量のスキューが存在するか否かを判定すること、及び
前記第1のプロセッサユニット、前記第2のプロセッサユニット、及び前記第3のプロセッサユニットの間に前記望ましくない量のスキューが存在するときに、前記第1のプロセッサユニットに、前記必要とされる結果を生成することなしに選択的に動作を実行させ、前記望ましくない量のスキューを低減させることを含み、
前記第1のプロセッサユニット、前記第2のプロセッサユニット、及び前記第3のプロセッサユニットによって生成された対応メッセージについて完全性チェックが実行される高完全性モードに対して、前記第1のプロセッサユニット、前記第2のプロセッサユニット、及び前記第3のプロセッサユニットが互いに関連付けられている、条項14に記載の方法。
条項24
前記第1のプロセッサユニットと前記第2のプロセッサユニットが、各々、マルチコアプロセッサユニット、単一コアプロセッサユニット、同種マルチコアプロセッサユニット、異種マルチコアプロセッサユニット、グラフィックスプロセッサユニット、汎用プロセッサユニット、のうちの少なくとも1つを含む群から選択される、条項14に記載の方法
当業者には、多くの修正例及び変形例が明らかであろう。更に、種々の例示的な実施形態によって、他の好ましい実施形態と比較して異なる特徴が提供され得る。例えば、例示的な実施形態が混合完全性モードに関連して説明された。例示的な実施形態は、ロックステップを実行するプロセッサ、又は他の種類の処理同期若しくはメッセージ交換のうちの少なくとも一方が設計される環境に適用可能である。選択された1以上の実施形態は、実施形態の原理、実際の用途を最もよく説明するため、及び他の当業者に対し、様々な実施形態の開示内容と、考慮される特定の用途に適した様々な修正との理解を促すために選択及び記述されている。

Claims (10)

  1. 第1のプロセッサユニット(132)、第2のプロセッサユニット(134)およびプロセッサ同期システム(127)を含み、
    前記プロセッサ同期システム(127)
    前記第1のプロセッサユニット(132)で実行される内部同期装置(130)を備え、
    前記内部同期装置(130)は、外部同期装置(122)と通信して、前記外部同期装置(122)と通信する前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間に許容されるスキューの量より多い望ましくない量のスキュー(136)が存在するか否かを判定し、
    前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間に前記望ましくない量のスキュー(136)が存在するとき、前記望ましくない量のスキュー(136)が低減されるように、前記第1のプロセッサユニット(132)に、該第1のプロセッサユニット(132)から予めスケジューリングされた遊休時間を除去する動作(138)を実行するよう指示するように構成されており、
    前記第1のプロセッサユニット(132)によって生成された受信メッセージと前記第2のプロセッサユニット(134)によって生成された前記受信メッセージに対応する対応メッセージについて完全性チェックが実行される高完全性モード(106)に対して、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)が互いに関連付けられているときに前記プロセッサ同期システム(127)が実行されるコンピュータシステム(110)
  2. 前記コンピュータシステム(110)は、さらに前記外部同期装置(122)を備え、
    前記外部同期装置(122)が、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間の前記望ましくない量のスキュー(136)についての情報を記憶する、請求項1に記載のコンピュータシステム(110)
  3. 前記コンピュータシステム(110)は、さらに前記外部同期装置(122)を備え、
    前記外部同期装置(122)が、前記望ましくない量のスキュー(136)についての情報をレジスタ(156)内に記憶し、前記内部同期装置(130)は、前記外部同期装置(122)と通信する前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間に前記望ましくない量のスキュー(136)が存在するか否かを判定するために前記外部同期装置(122)と通信するにあたって、前記外部同期装置(122)内の前記第1のプロセッサユニット(132)のための第1のレジスタ(158)スキューの値を書き込み、前記外部同期装置(122)内の前記第2のプロセッサユニット(134)のための第2のレジスタ(160)内のスキューの値を読み取るように構成され、前記第1のレジスタ(158)の値を前記第2のレジスタ(160)の値と比較して、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)が各プロセッサユニットによる指示命令を同期して処理するようにタイミングが調節される、請求項1又は2に記載のコンピュータシステム(110)
  4. 前記コンピュータシステム(110)は、さらに前記外部同期装置(122)を備え、
    前記外部同期装置(122)が、前記第1のプロセッサユニット(132)のための第1のクロック(162)と前記第2のプロセッサユニット(134)のための第2のクロック(164)を含み、前記第1のクロック(162)と前記第2のクロック(164)は、指示命令を同期して処理するように前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)がタイミングを調節するために使用される、請求項1から3のいずれか一項に記載のコンピュータシステム(110)
  5. 前記第1のプロセッサユニット(132)が先行プロセッサユニットであり、前記第2のプロセッサユニット(134)が後行プロセッサユニットであり、前記外部同期装置(122)は、2つのプロセッサユニットが差異レジスタを読む時間における差異を表す値を用いて差異レジスタを設定し、クロックの現在の時間と、差異レジスタがプロセッサユニット内の内部同期装置によって読まれた時間と、の間の差異を表す値である前記差異レジスタが前記先行プロセッサユニットにゼロ値を返し、前記差異レジスタが前記後行プロセッサユニットに前記望ましくない量のスキュー(136)の値を返す、請求項1から4のいずれか一項に記載のコンピュータシステム(110)
  6. 前記第1のプロセッサユニット(132)内の前記内部同期装置(130)が、前記第1のプロセッサユニット(132)が前記第2のプロセッサユニット(134)よりも遅いことを検出したとき、前記第1のプロセッサユニット(132)から前記予めスケジューリングされた遊休時間が除去され、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間の前記望ましくない量のスキュー(136)が低減される、請求項1から5のいずれか一項に記載のコンピュータシステム(110)
  7. 前記予めスケジューリングされた遊休時間を除去した後で、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間に未だ前記望ましくない量のスキュー(136)が存在するならば、更なる予めスケジューリングされた遊休時間を除去するように、前記内部同期装置(130)が構成されている、請求項1から6のいずれか一項に記載のコンピュータシステム(110)
  8. コンピュータシステムが複数のプロセッサユニットを同期させるための方法であって、
    第1のプロセッサユニット(132)で実行される内部同期装置(130)が外部同期装置(122)と通信して、前記外部同期装置(122)と通信する前記第1のプロセッサユニット(132)と第2のプロセッサユニット(134)との間に許容されるスキューの量より多い望ましくない量のスキュー(136)が存在するか否かを判定すること、及び
    前記内部同期装置(130)が、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間に前記望ましくない量のスキュー(136)が存在するとき、前記望ましくない量のスキュー(136)が低減されるように、前記第1のプロセッサユニット(132)に、該第1のプロセッサユニット(132)から予めスケジューリングされた遊休時間を除去する動作(138)を実行するよう指示することを含み、
    前記第1のプロセッサユニット(132)によって生成された受信メッセージと前記第2のプロセッサユニット(134)によって生成された前記受信メッセージに対応する対応メッセージについて完全性チェックが実行される高完全性モード(106)に対して、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)が互いに関連付けられているときに実行される、方法。
  9. 前記外部同期装置(122)は、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間の前記望ましくない量のスキュー(136)についての情報を前記外部同期装置(122)内に記憶することを更に含む、請求項8に記載の方法。
  10. 前記外部同期装置(122)は、前記望ましくない量のスキュー(136)についての情報をレジスタ(156)内に記憶し、
    前記外部同期装置(122)と通信して、前記外部同期装置(122)と通信する前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)との間に前記望ましくない量のスキュー(136)が存在するか否かを判定することが、
    前記外部同期装置(122)内の前記第1のプロセッサユニット(132)のための第1のレジスタ(158)内スキューの値を書き込むこと、
    前記外部同期装置(122)内の前記第2のプロセッサユニット(134)のための第2のレジスタ(160)内のスキューの値を読み取ること、及び
    前記第1のレジスタ(158)の値を前記第2のレジスタ(160)の値と比較して、前記第1のプロセッサユニット(132)と前記第2のプロセッサユニット(134)各プロセッサユニットによる指示命令を同期して処理するようにタイミングが調節されることを含む、請求項8又は9に記載の方法。
JP2018213374A 2017-11-21 2018-11-14 指示命令処理調節システム Active JP7290410B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/819,402 2017-11-21
US15/819,402 US10528077B2 (en) 2017-11-21 2017-11-21 Instruction processing alignment system

Publications (3)

Publication Number Publication Date
JP2019125350A JP2019125350A (ja) 2019-07-25
JP2019125350A5 JP2019125350A5 (ja) 2021-12-23
JP7290410B2 true JP7290410B2 (ja) 2023-06-13

Family

ID=63798768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018213374A Active JP7290410B2 (ja) 2017-11-21 2018-11-14 指示命令処理調節システム

Country Status (5)

Country Link
US (1) US10528077B2 (ja)
EP (1) EP3486780B1 (ja)
JP (1) JP7290410B2 (ja)
KR (1) KR20190058288A (ja)
CN (1) CN109815020B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132268B2 (en) 2019-10-21 2021-09-28 The Boeing Company System and method for synchronizing communications between a plurality of processors
US12056084B2 (en) * 2020-12-09 2024-08-06 The Boeing Company Message synchronization system
FR3118843A1 (fr) * 2021-01-13 2022-07-15 Dassault Aviation Systeme de transfert securise de donnees numeriques d'aeronef comprenant des systemes producteurs de donnees redondants, ensemble et procede associes
US11838397B2 (en) 2021-06-17 2023-12-05 Northrop Grumman Systems Corporation Systems and methods for synchronization of processing elements

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007006013A2 (en) 2005-07-05 2007-01-11 Viasat, Inc. Synchronized high-assurance circuits
US20090044044A1 (en) 2005-11-18 2009-02-12 Werner Harter Device and method for correcting errors in a system having at least two execution units having registers
US20090193229A1 (en) 2007-12-14 2009-07-30 Thales High-integrity computation architecture with multiple supervised resources
JP2010092105A (ja) 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
US20130125137A1 (en) 2011-11-15 2013-05-16 Ge Aviation Systems Llc Method of providing high integrity processing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736720A (ja) * 1993-07-20 1995-02-07 Yokogawa Electric Corp 二重化コンピュータ装置
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US8560737B2 (en) * 2011-06-10 2013-10-15 International Business Machines Corporation Managing operator message buffers in a coupling facility
US9176912B2 (en) * 2011-09-07 2015-11-03 Altera Corporation Processor to message-based network interface using speculative techniques
US8924780B2 (en) 2011-11-10 2014-12-30 Ge Aviation Systems Llc Method of providing high integrity processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007006013A2 (en) 2005-07-05 2007-01-11 Viasat, Inc. Synchronized high-assurance circuits
US20090044044A1 (en) 2005-11-18 2009-02-12 Werner Harter Device and method for correcting errors in a system having at least two execution units having registers
JP2009516277A (ja) 2005-11-18 2009-04-16 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つのレジスタ付き処理ユニットを有するシステムにおいてエラーを除去する装置および方法
US20090193229A1 (en) 2007-12-14 2009-07-30 Thales High-integrity computation architecture with multiple supervised resources
JP2010092105A (ja) 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
US20130125137A1 (en) 2011-11-15 2013-05-16 Ge Aviation Systems Llc Method of providing high integrity processing
JP2013105494A (ja) 2011-11-15 2013-05-30 Ge Aviation Systems Llc 高整合性処理を提供する方法

Also Published As

Publication number Publication date
KR20190058288A (ko) 2019-05-29
EP3486780B1 (en) 2020-11-18
CN109815020A (zh) 2019-05-28
CN109815020B (zh) 2024-05-14
US20190155325A1 (en) 2019-05-23
JP2019125350A (ja) 2019-07-25
EP3486780A1 (en) 2019-05-22
US10528077B2 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
JP7290410B2 (ja) 指示命令処理調節システム
US9418096B2 (en) Control method, and information processing system
CN110334075B (zh) 基于消息中间件的数据迁移方法及相关设备
US11226745B2 (en) Optimizing data writes in a distributed computing system
US11010171B2 (en) Efficient out of process reshuffle of streaming data
US20130254583A1 (en) Data transfer between asynchronous clock domains
US20180300140A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
CN110121694B (zh) 一种日志管理方法、服务器和数据库系统
US12056084B2 (en) Message synchronization system
JP7421858B2 (ja) メッセージ同期システム
US20160077743A1 (en) Shared-bandwidth multiple target remote copy
US10042554B2 (en) Increased bandwidth of ordered stores in a non-uniform memory subsystem
US11327785B2 (en) Computing system including enhanced application performance based on last completed operation sequence value
US10310921B2 (en) Computing system including PLSO command to maintain equivalency between independent coupling facilities
US20200274925A1 (en) Maintaining user data and metadata consistency in an asynchronous replication environment
KR101713537B1 (ko) 데이터의 일관성을 보장하는 상태기기 기반의 복제 및 체크포인트데이터와 복제로그를 이용한 분산 복구를 처리하는 데이터 복제 방법 및 데이터 저장 시스템
CN114745438B (zh) 多数据中心的缓存数据处理方法、装置、系统和电子设备
US20240311215A1 (en) Message synchronization system and method with user partition access
US7568121B2 (en) Recovery from failure in data storage systems
US10270857B2 (en) Asynchronous duplexing
US20200110760A1 (en) Database server, database management method, and storage medium
McCalpin Exploiting Fully Asynchronous Messaging Models in HPC Applications
KR20170026434A (ko) 데이터의 일관성을 보장하는 상태기기 기반의 복제 및 체크포인트데이터와 복제로그를 이용한 분산 복구를 처리하는 데이터 복제 방법 및 데이터 저장 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230601

R150 Certificate of patent or registration of utility model

Ref document number: 7290410

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150