(57)【要約】      （修正有）【課題】マイクロプロセッサにて、ロックステップで走る能力を実現する。【解決手段】非ロックステップ構成での少なくとも２つの冗長なアプリケーションプロセッサ（１２および１４）を有する高整合性処理システム１０において高整合性通信を提供する。それらの冗長なアプリケーションプロセッサ（１２および１４）は同じアプリケーションを走らせていて、それらの冗長なアプリケーションプロセッサ（１２および１４）は、通信チャネル１８によって少なくとも１つの入出力プロセッサ１６に接続される。【選択図】図１
2013105494.tif 000002
【特許請求の範囲】
【請求項１】
通信チャネルによって少なくとも１つの入出力プロセッサ（ＩＯＰ）に接続された、同じアプリケーションを走らせる非ロックステップ構成で冗長なアプリケーションプロセッサ（ＡＰ）を有する高整合性処理システムで高整合性通信を提供する方法であって、
前記通信チャネルを介して前記ＡＰと前記ＩＯＰの間でデータフィールドを有するデータメッセージを転送するステップと、
前記メッセージのソースを一意に識別するソースデータを含むソースフィールド、前記データの整合性のレベルを示す整合性データを含む整合性フィールド、および、前記ソースデータおよび前記整合性データのうちの少なくとも１つにしたがって前記メッセージを処理するためのコマンドデータを含むコマンドフィールドを有する前記データフィールド内にヘッダを提供するステップと
を備える、方法。
【請求項２】
前記整合性データが、標準的整合性および高整合性のうちの少なくとも１つを備える、請求項１記載の方法。
【請求項３】
前記ソースデータが、前記データメッセージが由来する前記ＡＰを一意に識別するＡＰ識別子および前記データメッセージが由来する前記ＩＯＰを一意に識別するＩＯＰ識別子のうちの少なくとも１つを備える、請求項２記載の方法。
【請求項４】
前記ＡＰ識別子が、前記ＡＰが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子をさらに備える、請求項３記載の方法。
【請求項５】
前記ヘッダが、前記データメッセージが送信されようとする宛先データを含む宛先フィールドをさらに備える、請求項３記載の方法。
【請求項６】
前記宛先データが、宛先ＡＰを一意に識別するＡＰ識別子と宛先ＩＯＰを一意に識別するＩＯＰ識別子のうちの少なくとも１つを備える、請求項５記載の方法。
【請求項７】
前記ＡＰ識別子が、前記ＡＰが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子をさらに備える、請求項６記載の方法。
【請求項８】
前記ＩＯＰ識別子が、前記ＩＯＰが複数のスレッドを実行するように構成されるときに、スレッド識別子をさらに備える、請求項６記載の方法。
【請求項９】
前記ヘッダが、シーケンス番号を含むシーケンスフィールドをさらに備える、請求項５記載の方法。
【請求項１０】
前記データメッセージの前記データフィールドが、前記通信チャネルの通信プロトコルのトランスポート層のデータフィールド内にカプセル化された、請求項１記載の方法。
【請求項１１】
前記通信チャネルがシリアル通信チャネルである、請求項１０記載の方法。
【請求項１２】
複数のＡＰ上で走る共通のメッセージ渡しＡＰＩから前記データメッセージを生成するステップをさらに備える、請求項１０記載の方法。
【請求項１３】
前記共通のメッセージ渡しＡＰＩがＭＣＡＰＩである、請求項１２記載の方法。
【請求項１４】
前記メッセージが前記ＡＰと前記ＩＯＰの間にある間に、前記コマンドデータにしたがって前記データメッセージを処理するステップをさらに備える、請求項１記載の方法。
【請求項１５】
前記データメッセージを処理する前記ステップが、前記ＡＰおよび前記ＩＯＰの間のシリアル通信チャネル内にある書替え可能ゲートアレイ（ＦＰＧＡ）で前記データメッセージを処理するステップを備える、請求項１４記載の方法。
【請求項１６】
前記ＦＰＧＡで処理ロジックを実行して、前記ヘッダを読み取り、それに応じて前記データメッセージを処理するステップをさらに備える、請求項１５記載の方法。
【請求項１７】
前記データメッセージを処理する前記ステップが、前記コマンドデータが照合が必要とされることを示すときに前記ＡＰからのデータメッセージを照合するステップを備える、請求項１４記載の方法。
【請求項１８】
前記照合するステップが、Ｉ／Ｏデバイスへの出力のために前記ＩＯＰに前記データを渡す前およびメモリに前記データをコミットする前のうちの少なくとも１つに行われる、請求項１７記載の方法。
【請求項１９】
前記データメッセージが前記冗長なＡＰからの対をなすメッセージと照合される前に前記整合性データが標準的整合性を示すときに、前記整合性データが、無事に照合された後は、高整合性に変更される、請求項１４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高整合性通信を提供する方法に関する。
【背景技術】
【０００２】
コンピュータ処理モジュールは、ソースで高い整合性および高い可用性を提供して、誤りが正確に検出され、隔離されること、および誤った警報が最小限に抑えられることを確実にすることができる。高整合性モジュールは、即座且つ正確に検出および隔離されない誤りは運転上の諸問題を引き起こし得る航空機にとっては尚更重要である。高整合性処理システムの従来の設計は、モジュール上の２つ以上のマイクロプロセッサの間に命令レベルのロックステップ処理を実装するために、高価なカスタム回路を必要とする。しかし、現代のマイクロプロセッサは、部品統合の増加と処理時間のばらつきをもたらす特徴のため、ロックステップで走る能力を有さない。
【発明の概要】
【０００３】
一実施形態では、通信チャネルによって少なくとも１つの入出力プロセッサ（ＩＯＰ）に接続された、同一アプリケーションを走らせる非ロックステップ構成内に冗長なアプリケーションプロセッサ（ＡＰ）を有する高整合性処理システムで高整合性通信を提供する本方法は、通信チャネルを介してＡＰとＩＯＰの間でデータメッセージを転送するステップを含み、そのデータメッセージは、データフィールドを有し、そのメッセージのソースを一意に識別するソースデータを含むソースフィールドと、そのデータの整合性のレベルを示す整合性データを含む整合性フィールドと、そのソースデータおよび整合性データのうちの少なくとも１つにしたがってメッセージを処理するためのコマンドデータを含むコマンドフィールドとを有するデータフィールド内でヘッダを提供する。
【図面の簡単な説明】
【０００４】
【図１】本発明の第１の実施形態による高整合性処理システムの概略図である。
【図２】本発明の一実施形態によるヘッダを有するデータフィールドのデータ構造の概略図である。
【発明を実施するための形態】
【０００５】
ソース計算での高整合性は現在、命令レベルでロックステップで走る少なくとも２つの処理レーン、または、２つの処理レーンおよび１つのモニタを必要とする。モジュールの各処理レーンで走るソフトウェアが同じ入力（データ、中断、時間など）を受信し、出力を送信する前にまたは新しい入力を受信する前に同じ「量」の処理をそのデータに実行することができる場合、各レーンは次いで、故障のない限り同一の出力を形成することになる。一般に、モジュール上で走るソフトウェアが入力を受信するとき、その入力は両方のレーンで同一である必要があり、両方のレーンは、それらが全く同じ状態にあるときに、その入力を受信する必要がある。モジュール上で走るそのソフトウェアが出力を送信するとき、両方のレーンからのデータは、それが出力される前に、比較されなければならない。出力データ比較が失敗（不適切な状態同期化のため）しないことを確実にするために、出力データの形成に関与するソフトウェアの部分は、出力が比較され、次いでその後に送信され得る前に、両方のレーンで同じ状態に達しなければならない。
【０００６】
現代のマイクロプロセッサ製品ラインは、それらが過去にしていたようなロックステップ動作をサポートしない。冗長なプロセッサ間のエラーチェックが直ちにプロセッサの外部で処理されなければならないので、これは、高整合性システムを必要とする航空電子工学メーカおよびその他にとっての問題を呈する。前の技術に比べた性能の向上を達成するために、飛行に不可欠なアプリケーションを走らせるＡＰから可能な限り多数のＩ／Ｏ動作をアンロードすることもまた望ましい。本発明の実施形態は、ＡＰのデータがある種の重大な動作中に同期化され、ＡＰおよびＩ／Ｏプロセッサ間の通信の標準を提供する方法を提供する。
【０００７】
図１は、本発明の第１の実施形態による、その両方が互いに冗長であり、同じアプリケーション上で走っている、左のＡＰ１２および右のＡＰ１４を有する処理システム１０の非限定的例を示す。左および右のＡＰ１２および１４は、類似のまたは異種のプロセッサでもよい。処理システム１０はより多くの冗長な処理ラインを有し得るが、説明を明瞭および容易にするために、２つのみが示され、説明されると考えられる。左のおよび右のＡＰ１２および１４は、非ロックステップ構成で動作する能力をもつ。
【０００８】
左のＡＰ１２および右のＡＰ１４は、組込みオペレーティングシステムを走らせることができ、複数のスレッドまたはパーティションを走らせる１つまたは複数のＩＯＰ１６にデータを転送することができる。説明のための例として、単一のＩＯＰ１６のみが、様々なアドレス可能な空間３０、３２、および３４と接続された３つのスレッドを有するものとして示される。そのようなアドレス可能な空間は、Ａｒｉｎｃ６６４ｐ７終端システム、Ｉ２Ｃデバイス、シリアルデバイス、イーサネット（商標）デバイス、またはディスクリートを含み得る。それらのスレッドは、そのようなアドレス可能な空間３０、３２、３４に情報を送信するおよび／またはそこから情報を受信するために使用され得る。各様式の通信は、ＩＯＰ１６上のそれ自体の別個の一意に識別可能なスレッドによってサポートされ得る。
【０００９】
左のＡＰ１２および右のＡＰ１４は、通信チャネル１８によって１つまたは複数のＩＯＰ１６に接続され得る。通信チャネル１８は、シリアル通信チャネルでもよい。図示された実施形態では、別個の通信チャネル１８が、左のＡＰ１２および右のＡＰ１４がＩＯＰ１６と通信できるようにする。
【００１０】
左の書替え可能ゲートアレイ（ＦＰＧＡ）２０は、データがＦＰＧＡ２０を介して転送可能なように、左のＡＰ１２および右のＡＰ１４とＩＯＰ１６の間の通信チャネル１８に置かれ得る。右のＦＰＧＡ２２は、データが右のＦＰＧＡ２２を介して転送可能なように、左のＡＰ１２および右のＡＰ１４とＩＯＰ１６の間の通信チャネル１８に置かれ得る。特定用途向け集積回路（ＡＳＩＣ）が、ＦＰＧＡの代わりに使用され得ると考えられる。各ＦＰＧＡ２０および２２は、その中に情報が保存可能なキューまたはバッファを含み得る。非揮発性メモリデバイスを含むメモリデバイスは、ＦＰＧＡ２０および２２の各々に伝達可能に結合可能であり、データはＦＰＧＡから対応するメモリデバイスにコミットされ得ると考えられる。
【００１１】
処理システム１０は、効率的なプロセッサ間通信を有し、左のＡＰ１２と右のＡＰ１４の間でデータを同期化する能力がある。一実施形態によれば、そのような高整合性通信を提供する方法は、通信チャネル１８を介する左のＡＰ１２および右のＡＰ１４とＩＯＰ１６の間でデータフィールド５２を有するデータメッセージ５０を転送するステップと、データフィールド５２内で転送されることになるデータ５６の前にヘッダ５４を提供するステップとを含む。ヘッダ５４は、ソースデータを含むソースフィールド５８と、整合性データを含む整合性フィールド６０と、コマンドデータを含むコマンドフィールド６２とを有し得る。
【００１２】
ソースデータは、メッセージのソースを一意に識別することができる。たとえば、ソースデータは、データメッセージが由来するＡＰを一意に識別するＡＰ識別子およびデータメッセージが由来するＩＯＰを一意に識別するＩＯＰ識別子のうちの少なくとも１つを含み得る。ＡＰ識別子はまた、ＡＰが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子を含み得る。ＩＯＰ識別子はまた、ＩＯＰがスレッドのまたは組込みのオペレーティングシステムを走らせるように構成されるときに、スレッドまたはパーティション識別子を含み得る。
【００１３】
整合性データは、データの整合性のレベルを示し得る。非限定的な例として、整合性データは、そのデータが標準的整合性および高整合性のうちの少なくとも１つであることを示し得る。そのような整合性データは、その情報が標準的整合性で左のＡＰ１２および右のＡＰ１４の両方から、標準的整合性で左のＡＰ１２から、標準的整合性で右のＡＰ１４から、または、ＩＯＰ１６もしくはＦＰＧＡ２０および２２から高整合性で来るかどうかを示すことができる。整合性フィールドの目的は、データがある場所から次の場所に進むときにそのデータが有する整合性のレベルを示すことである。たとえば、ＡＰからＦＰＧＡに進む情報は、それが他のレーンからの同じ情報と照合または同期化されなかったので、標準的整合性データとして印を付けられることになる。このデータとともに送られる同期化コマンドがある場合、整合性のレベルは、レーン間の比較が無事に完了された後は、標準的から高整合性に変わることになる。標準的整合性のデータはＡＰからＦＰＧＡにまたはＦＰＧＡを介してＩＯＰに送信可能であり、そこで変形がデータを一度も同期化することなしにデータとソースプロセッサ上のソースパーティションのみに返されるその結果とに実行され、したがってこのプロセスを介して標準的整合性に留まる。ＦＰＧＡを介してＩＯＰ１６から渡されるデータは整合性要件を満たすとみなされ得ることに留意されたい。Ｉ／ＯデバイスからＩＯＰにそしてＦＰＧＡに渡るすべての情報は、この情報を提供するＩ／Ｏデバイスが情報をＩＯＰに供給する前にそれら自体の整合性チェックを実行することになるので、既に高整合性とみなされる。
【００１４】
コマンドデータは、ソースデータおよび整合性データのうちの少なくとも１つにしたがって、そのメッセージを処理するために使用され得る。この方式で、コマンドデータは、適切なＩＯＰスレッドにメッセージを渡す前にＦＰＧＡ内の左のＡＰ１２および右のＡＰ１４からデータを同期化するステップ、ＦＰＧＡまたはＩＯＰ１６内で計算を実行し、ＡＰソースパーティションに結果を返すステップ、ＡＰパーティションからＩＯＰスレッドにＦＰＧＡを介して真っ直ぐにメッセージを渡すステップなど、処理システム１０の動作の制御を可能にする。
【００１５】
ヘッダはまた、それにそのデータメッセージが送信されることになる宛先データを含む宛先フィールド６４も含み得る。そのような宛先データは、宛先ＡＰを一意に識別するＡＰ識別子および宛先ＩＯＰを一意に識別するＩＯＰ識別子のうちの少なくとも１つを含み得る。ソースデータと同様に、宛先データＡＰ識別子は、ＡＰが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子を含み得る。さらに、ＩＯＰ識別子は、ＩＯＰが複数のスレッドまたはパーティションを実行するように構成されるときに、スレッドまたはパーティション識別子を含み得る。
【００１６】
ヘッダ５４はまた、シーケンス番号を含むシーケンスフィールド６６も含み得る。そのようなシーケンスフィールド６６は、落とされたメッセージを検出するために有用であり得る。そのヘッダはまた、バイトでのデータペイロードサイズに関する情報を含むサイズフィールド６８も含み得る。
【００１７】
動作中、データメッセージは、左のＡＰ１２および右のＡＰ１４上で走る共通のメッセージ渡しＡＰＩから生成され得る。非限定的例として、共通のメッセージ渡しＡＰＩは、ＭＣＡＰＩでもよい。ＭＣＡＰＩは、異なるシステムレベルで通信を可能にする組込み型システムのために設計されたインタフェースである。データメッセージのデータフィールド５２は、通信チャネル１８のための通信プロトコルのトランスポート層のデータフィールド内にカプセル化され得る。
【００１８】
データメッセージは、そのメッセージが左のＡＰ１２および右のＡＰ１４とＩＯＰ１６の間にある間に、コマンドデータにしたがって処理され得る。そのデータメッセージを処理するステップは、左のＡＰ１２および右のＡＰ１４とＩＯＰ１６の間のシリアル通信チャネルに置かれたＦＰＧＡ内でそのデータメッセージを処理するステップを含み得る。処理ロジックは、ＦＰＧＡ２０および２２で実行されてヘッダを読み取り、それに応じてデータメッセージを処理することができる。そのヘッダ情報は、ＦＰＧＡが対をなすメッセージを比較することを確実にすることができる。この方式で、ＦＰＧＡロジックは、カプセル化されたデータがどのように処理されるべきかを判断するために使用され得る。より具体的には、シリアルメッセージがＦＰＧＡ２０および２２を介して渡されるとき、そのデバイス内のロジックはデータペイロードで要求された動作を実行し、結果として生じるデータを１つまたは複数の適切な宛先に経路指定することができることになる。
【００１９】
たとえば、そのデータメッセージを処理するステップは、コマンドデータが照合が必要であると指示するとき、左のＡＰ１２および右のＡＰ１４からのデータメッセージを照合するステップを含み得る。たとえば、ＡＰ１２および１４から渡されるデータは、高整合性動作が実装される場合に整合性をチェックされ得る。そのモジュールが高整合性または標準的整合性デバイスとして動作すべきかの判断は、ＡＰ内のコードの実装によって判断されることになる、ヘッダ内の同期化コマンドの使用を介して判断されることになる。非限定的例として、Ｉ／Ｏデバイスは常に高整合性データを提供するので、ＡＰからのＩ／Ｏ読取りコマンドは、モジュールが高整合性または標準的整合性デバイスのいずれと考えられても同期化を必要としないことになる。モジュールが高整合性デバイスとして動作しようとする場合、ＡＰからのＩ／Ｏ書込みコマンドは同期化を必要とすることになり、ＡＰで走るコードは、書込み動作が生じる必要があるとき、データヘッダ内の同期化コマンドをセットすることになる。モジュールが標準的整合性デバイスとして動作しようとする場合、ＡＰからのＩ／Ｏ書込みコマンドは同期化を必要としないことになり、ＡＰで走るコードはデータヘッダで同期化コマンドをセットしないことになる。たとえば、Ｉ／Ｏデバイスへの出力のためにＩＯＰにデータを渡す前にデータの照合を必要とする同期化コマンド、ＦＰＧＡと接続されたメモリデバイスにデータをコミットする前にそれを照合する別の同期化コマンドなど、いくつかのタイプの同期化コマンドがあることに留意することが重要である。ＦＰＧＡは、冗長なＡＰからの対をなすメッセージが生成されるまで、照合されることになるデータメッセージがそのバッファ内に保存可能なように、バッファを有し得る。
【００２０】
前述の実施形態は、マスタプロセッサとＩ／Ｏプロセッサの間の通信の標準が提供されることを含む様々な利益を可能にする。その技術的効果は、性能に影響を与えることのない現代のプロセッサの同期化である。さらに、データはある種の重大な動作中に照合および同期化可能であり、他の非重大な動作は、命令されたことに応じて、照合のオーバヘッドなしに生じ得る。
【００２１】
さらに、制御見出しは任意のシリアルプロトコルのデータフィールド内部に構築されるので、たとえシリアルプロトコル自体が製品間で変わっても、本方法は、別個のプロセッサにＩ／Ｏがアンロードされることを必要とする任意のアプリケーションに移植可能であり得る。たとえば、ＰＣＩｅが１つのプロジェクトでＡＰとＩＯＰの間で通信するために使用されるが、高速シリアルＩ／Ｏ（Ｓｅｒｉａｌ  Ｒａｐｉｄ  Ｉ／Ｏ）プロトコルが将来のプロジェクトで使用される場合、本方法は、その両方の役に立つことになろう。さらに、ＭＣＡＰＩがプロセッサの組込み型ソフトウェアのためのＡＰＩの開発に使用される場合、ハードウェアの能力に応じて、ＡＰＩコマンドの基礎にある機能がプロセッサごとに異なり得るような抽出のレベルが存在し、これらのＡＰＩを利用するコードはプログラムごとに変わらないままにすることができ、再利用性を最大限にする。
【００２２】
本明細書は、最良の形態を含めて、本発明を開示するために、そしてまた、任意のデバイスまたはシステムの作成および使用と任意の組み込まれた方法の実行とを含めて、本発明を当業者が実施できるようにするために、例を使用する。本発明の特許性のある範囲は、本特許請求の範囲によって定義され、当業者に思い浮かぶ他の例を含み得る。そのような他の例は、それらが本特許請求の範囲の文字通りの言語と異ならない構造的要素を有する場合、または、それらが本特許請求の範囲の文字通りの言語とごくわずかな差異を有する同等の構造的要素を含む場合、本特許請求の範囲内にあるものとする。
【符号の説明】
【００２３】
１０  処理システム
１２  左のＡＰ
１４  右のＡＰ
１６  ＩＯＰ
１８  通信チャネル
２０  左の書替え可能ゲートアレイ（ＦＰＧＡ）
２２  右のＦＰＧＡ
３０  アドレス可能な空間
３２  アドレス可能な空間
３４  アドレス可能な空間
５０  データメッセージ
５２  データフィールド
５４  ヘッダ
５６  データ
５８  ソースフィールド
６０  整合性フィールド
６２  コマンドフィールド
６４  宛先フィールド
６６  シーケンスフィールド
６８  サイズフィールド
【図１】
2013105494.tif 000003
【図２】
2013105494.tif 000004