説明

高整合性処理を提供する方法

【課題】マイクロプロセッサにて、ロックステップで走る能力を実現する。
【解決手段】非ロックステップ構成での少なくとも2つの冗長なアプリケーションプロセッサ(12および14)を有する高整合性処理システム10において高整合性通信を提供する。それらの冗長なアプリケーションプロセッサ(12および14)は同じアプリケーションを走らせていて、それらの冗長なアプリケーションプロセッサ(12および14)は、通信チャネル18によって少なくとも1つの入出力プロセッサ16に接続される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高整合性通信を提供する方法に関する。
【背景技術】
【0002】
コンピュータ処理モジュールは、ソースで高い整合性および高い可用性を提供して、誤りが正確に検出され、隔離されること、および誤った警報が最小限に抑えられることを確実にすることができる。高整合性モジュールは、即座且つ正確に検出および隔離されない誤りは運転上の諸問題を引き起こし得る航空機にとっては尚更重要である。高整合性処理システムの従来の設計は、モジュール上の2つ以上のマイクロプロセッサの間に命令レベルのロックステップ処理を実装するために、高価なカスタム回路を必要とする。しかし、現代のマイクロプロセッサは、部品統合の増加と処理時間のばらつきをもたらす特徴のため、ロックステップで走る能力を有さない。
【発明の概要】
【0003】
一実施形態では、通信チャネルによって少なくとも1つの入出力プロセッサ(IOP)に接続された、同一アプリケーションを走らせる非ロックステップ構成内に冗長なアプリケーションプロセッサ(AP)を有する高整合性処理システムで高整合性通信を提供する本方法は、通信チャネルを介してAPとIOPの間でデータメッセージを転送するステップを含み、そのデータメッセージは、データフィールドを有し、そのメッセージのソースを一意に識別するソースデータを含むソースフィールドと、そのデータの整合性のレベルを示す整合性データを含む整合性フィールドと、そのソースデータおよび整合性データのうちの少なくとも1つにしたがってメッセージを処理するためのコマンドデータを含むコマンドフィールドとを有するデータフィールド内でヘッダを提供する。
【図面の簡単な説明】
【0004】
【図1】本発明の第1の実施形態による高整合性処理システムの概略図である。
【図2】本発明の一実施形態によるヘッダを有するデータフィールドのデータ構造の概略図である。
【発明を実施するための形態】
【0005】
ソース計算での高整合性は現在、命令レベルでロックステップで走る少なくとも2つの処理レーン、または、2つの処理レーンおよび1つのモニタを必要とする。モジュールの各処理レーンで走るソフトウェアが同じ入力(データ、中断、時間など)を受信し、出力を送信する前にまたは新しい入力を受信する前に同じ「量」の処理をそのデータに実行することができる場合、各レーンは次いで、故障のない限り同一の出力を形成することになる。一般に、モジュール上で走るソフトウェアが入力を受信するとき、その入力は両方のレーンで同一である必要があり、両方のレーンは、それらが全く同じ状態にあるときに、その入力を受信する必要がある。モジュール上で走るそのソフトウェアが出力を送信するとき、両方のレーンからのデータは、それが出力される前に、比較されなければならない。出力データ比較が失敗(不適切な状態同期化のため)しないことを確実にするために、出力データの形成に関与するソフトウェアの部分は、出力が比較され、次いでその後に送信され得る前に、両方のレーンで同じ状態に達しなければならない。
【0006】
現代のマイクロプロセッサ製品ラインは、それらが過去にしていたようなロックステップ動作をサポートしない。冗長なプロセッサ間のエラーチェックが直ちにプロセッサの外部で処理されなければならないので、これは、高整合性システムを必要とする航空電子工学メーカおよびその他にとっての問題を呈する。前の技術に比べた性能の向上を達成するために、飛行に不可欠なアプリケーションを走らせるAPから可能な限り多数のI/O動作をアンロードすることもまた望ましい。本発明の実施形態は、APのデータがある種の重大な動作中に同期化され、APおよびI/Oプロセッサ間の通信の標準を提供する方法を提供する。
【0007】
図1は、本発明の第1の実施形態による、その両方が互いに冗長であり、同じアプリケーション上で走っている、左のAP12および右のAP14を有する処理システム10の非限定的例を示す。左および右のAP12および14は、類似のまたは異種のプロセッサでもよい。処理システム10はより多くの冗長な処理ラインを有し得るが、説明を明瞭および容易にするために、2つのみが示され、説明されると考えられる。左のおよび右のAP12および14は、非ロックステップ構成で動作する能力をもつ。
【0008】
左のAP12および右のAP14は、組込みオペレーティングシステムを走らせることができ、複数のスレッドまたはパーティションを走らせる1つまたは複数のIOP16にデータを転送することができる。説明のための例として、単一のIOP16のみが、様々なアドレス可能な空間30、32、および34と接続された3つのスレッドを有するものとして示される。そのようなアドレス可能な空間は、Arinc664p7終端システム、I2Cデバイス、シリアルデバイス、イーサネット(商標)デバイス、またはディスクリートを含み得る。それらのスレッドは、そのようなアドレス可能な空間30、32、34に情報を送信するおよび/またはそこから情報を受信するために使用され得る。各様式の通信は、IOP16上のそれ自体の別個の一意に識別可能なスレッドによってサポートされ得る。
【0009】
左のAP12および右のAP14は、通信チャネル18によって1つまたは複数のIOP16に接続され得る。通信チャネル18は、シリアル通信チャネルでもよい。図示された実施形態では、別個の通信チャネル18が、左のAP12および右のAP14がIOP16と通信できるようにする。
【0010】
左の書替え可能ゲートアレイ(FPGA)20は、データがFPGA20を介して転送可能なように、左のAP12および右のAP14とIOP16の間の通信チャネル18に置かれ得る。右のFPGA22は、データが右のFPGA22を介して転送可能なように、左のAP12および右のAP14とIOP16の間の通信チャネル18に置かれ得る。特定用途向け集積回路(ASIC)が、FPGAの代わりに使用され得ると考えられる。各FPGA20および22は、その中に情報が保存可能なキューまたはバッファを含み得る。非揮発性メモリデバイスを含むメモリデバイスは、FPGA20および22の各々に伝達可能に結合可能であり、データはFPGAから対応するメモリデバイスにコミットされ得ると考えられる。
【0011】
処理システム10は、効率的なプロセッサ間通信を有し、左のAP12と右のAP14の間でデータを同期化する能力がある。一実施形態によれば、そのような高整合性通信を提供する方法は、通信チャネル18を介する左のAP12および右のAP14とIOP16の間でデータフィールド52を有するデータメッセージ50を転送するステップと、データフィールド52内で転送されることになるデータ56の前にヘッダ54を提供するステップとを含む。ヘッダ54は、ソースデータを含むソースフィールド58と、整合性データを含む整合性フィールド60と、コマンドデータを含むコマンドフィールド62とを有し得る。
【0012】
ソースデータは、メッセージのソースを一意に識別することができる。たとえば、ソースデータは、データメッセージが由来するAPを一意に識別するAP識別子およびデータメッセージが由来するIOPを一意に識別するIOP識別子のうちの少なくとも1つを含み得る。AP識別子はまた、APが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子を含み得る。IOP識別子はまた、IOPがスレッドのまたは組込みのオペレーティングシステムを走らせるように構成されるときに、スレッドまたはパーティション識別子を含み得る。
【0013】
整合性データは、データの整合性のレベルを示し得る。非限定的な例として、整合性データは、そのデータが標準的整合性および高整合性のうちの少なくとも1つであることを示し得る。そのような整合性データは、その情報が標準的整合性で左のAP12および右のAP14の両方から、標準的整合性で左のAP12から、標準的整合性で右のAP14から、または、IOP16もしくはFPGA20および22から高整合性で来るかどうかを示すことができる。整合性フィールドの目的は、データがある場所から次の場所に進むときにそのデータが有する整合性のレベルを示すことである。たとえば、APからFPGAに進む情報は、それが他のレーンからの同じ情報と照合または同期化されなかったので、標準的整合性データとして印を付けられることになる。このデータとともに送られる同期化コマンドがある場合、整合性のレベルは、レーン間の比較が無事に完了された後は、標準的から高整合性に変わることになる。標準的整合性のデータはAPからFPGAにまたはFPGAを介してIOPに送信可能であり、そこで変形がデータを一度も同期化することなしにデータとソースプロセッサ上のソースパーティションのみに返されるその結果とに実行され、したがってこのプロセスを介して標準的整合性に留まる。FPGAを介してIOP16から渡されるデータは整合性要件を満たすとみなされ得ることに留意されたい。I/OデバイスからIOPにそしてFPGAに渡るすべての情報は、この情報を提供するI/Oデバイスが情報をIOPに供給する前にそれら自体の整合性チェックを実行することになるので、既に高整合性とみなされる。
【0014】
コマンドデータは、ソースデータおよび整合性データのうちの少なくとも1つにしたがって、そのメッセージを処理するために使用され得る。この方式で、コマンドデータは、適切なIOPスレッドにメッセージを渡す前にFPGA内の左のAP12および右のAP14からデータを同期化するステップ、FPGAまたはIOP16内で計算を実行し、APソースパーティションに結果を返すステップ、APパーティションからIOPスレッドにFPGAを介して真っ直ぐにメッセージを渡すステップなど、処理システム10の動作の制御を可能にする。
【0015】
ヘッダはまた、それにそのデータメッセージが送信されることになる宛先データを含む宛先フィールド64も含み得る。そのような宛先データは、宛先APを一意に識別するAP識別子および宛先IOPを一意に識別するIOP識別子のうちの少なくとも1つを含み得る。ソースデータと同様に、宛先データAP識別子は、APが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子を含み得る。さらに、IOP識別子は、IOPが複数のスレッドまたはパーティションを実行するように構成されるときに、スレッドまたはパーティション識別子を含み得る。
【0016】
ヘッダ54はまた、シーケンス番号を含むシーケンスフィールド66も含み得る。そのようなシーケンスフィールド66は、落とされたメッセージを検出するために有用であり得る。そのヘッダはまた、バイトでのデータペイロードサイズに関する情報を含むサイズフィールド68も含み得る。
【0017】
動作中、データメッセージは、左のAP12および右のAP14上で走る共通のメッセージ渡しAPIから生成され得る。非限定的例として、共通のメッセージ渡しAPIは、MCAPIでもよい。MCAPIは、異なるシステムレベルで通信を可能にする組込み型システムのために設計されたインタフェースである。データメッセージのデータフィールド52は、通信チャネル18のための通信プロトコルのトランスポート層のデータフィールド内にカプセル化され得る。
【0018】
データメッセージは、そのメッセージが左のAP12および右のAP14とIOP16の間にある間に、コマンドデータにしたがって処理され得る。そのデータメッセージを処理するステップは、左のAP12および右のAP14とIOP16の間のシリアル通信チャネルに置かれたFPGA内でそのデータメッセージを処理するステップを含み得る。処理ロジックは、FPGA20および22で実行されてヘッダを読み取り、それに応じてデータメッセージを処理することができる。そのヘッダ情報は、FPGAが対をなすメッセージを比較することを確実にすることができる。この方式で、FPGAロジックは、カプセル化されたデータがどのように処理されるべきかを判断するために使用され得る。より具体的には、シリアルメッセージがFPGA20および22を介して渡されるとき、そのデバイス内のロジックはデータペイロードで要求された動作を実行し、結果として生じるデータを1つまたは複数の適切な宛先に経路指定することができることになる。
【0019】
たとえば、そのデータメッセージを処理するステップは、コマンドデータが照合が必要であると指示するとき、左のAP12および右のAP14からのデータメッセージを照合するステップを含み得る。たとえば、AP12および14から渡されるデータは、高整合性動作が実装される場合に整合性をチェックされ得る。そのモジュールが高整合性または標準的整合性デバイスとして動作すべきかの判断は、AP内のコードの実装によって判断されることになる、ヘッダ内の同期化コマンドの使用を介して判断されることになる。非限定的例として、I/Oデバイスは常に高整合性データを提供するので、APからのI/O読取りコマンドは、モジュールが高整合性または標準的整合性デバイスのいずれと考えられても同期化を必要としないことになる。モジュールが高整合性デバイスとして動作しようとする場合、APからのI/O書込みコマンドは同期化を必要とすることになり、APで走るコードは、書込み動作が生じる必要があるとき、データヘッダ内の同期化コマンドをセットすることになる。モジュールが標準的整合性デバイスとして動作しようとする場合、APからのI/O書込みコマンドは同期化を必要としないことになり、APで走るコードはデータヘッダで同期化コマンドをセットしないことになる。たとえば、I/Oデバイスへの出力のためにIOPにデータを渡す前にデータの照合を必要とする同期化コマンド、FPGAと接続されたメモリデバイスにデータをコミットする前にそれを照合する別の同期化コマンドなど、いくつかのタイプの同期化コマンドがあることに留意することが重要である。FPGAは、冗長なAPからの対をなすメッセージが生成されるまで、照合されることになるデータメッセージがそのバッファ内に保存可能なように、バッファを有し得る。
【0020】
前述の実施形態は、マスタプロセッサとI/Oプロセッサの間の通信の標準が提供されることを含む様々な利益を可能にする。その技術的効果は、性能に影響を与えることのない現代のプロセッサの同期化である。さらに、データはある種の重大な動作中に照合および同期化可能であり、他の非重大な動作は、命令されたことに応じて、照合のオーバヘッドなしに生じ得る。
【0021】
さらに、制御見出しは任意のシリアルプロトコルのデータフィールド内部に構築されるので、たとえシリアルプロトコル自体が製品間で変わっても、本方法は、別個のプロセッサにI/Oがアンロードされることを必要とする任意のアプリケーションに移植可能であり得る。たとえば、PCIeが1つのプロジェクトでAPとIOPの間で通信するために使用されるが、高速シリアルI/O(Serial Rapid I/O)プロトコルが将来のプロジェクトで使用される場合、本方法は、その両方の役に立つことになろう。さらに、MCAPIがプロセッサの組込み型ソフトウェアのためのAPIの開発に使用される場合、ハードウェアの能力に応じて、APIコマンドの基礎にある機能がプロセッサごとに異なり得るような抽出のレベルが存在し、これらのAPIを利用するコードはプログラムごとに変わらないままにすることができ、再利用性を最大限にする。
【0022】
本明細書は、最良の形態を含めて、本発明を開示するために、そしてまた、任意のデバイスまたはシステムの作成および使用と任意の組み込まれた方法の実行とを含めて、本発明を当業者が実施できるようにするために、例を使用する。本発明の特許性のある範囲は、本特許請求の範囲によって定義され、当業者に思い浮かぶ他の例を含み得る。そのような他の例は、それらが本特許請求の範囲の文字通りの言語と異ならない構造的要素を有する場合、または、それらが本特許請求の範囲の文字通りの言語とごくわずかな差異を有する同等の構造的要素を含む場合、本特許請求の範囲内にあるものとする。
【符号の説明】
【0023】
10 処理システム
12 左のAP
14 右のAP
16 IOP
18 通信チャネル
20 左の書替え可能ゲートアレイ(FPGA)
22 右のFPGA
30 アドレス可能な空間
32 アドレス可能な空間
34 アドレス可能な空間
50 データメッセージ
52 データフィールド
54 ヘッダ
56 データ
58 ソースフィールド
60 整合性フィールド
62 コマンドフィールド
64 宛先フィールド
66 シーケンスフィールド
68 サイズフィールド

【特許請求の範囲】
【請求項1】
通信チャネルによって少なくとも1つの入出力プロセッサ(IOP)に接続された、同じアプリケーションを走らせる非ロックステップ構成で冗長なアプリケーションプロセッサ(AP)を有する高整合性処理システムで高整合性通信を提供する方法であって、
前記通信チャネルを介して前記APと前記IOPの間でデータフィールドを有するデータメッセージを転送するステップと、
前記メッセージのソースを一意に識別するソースデータを含むソースフィールド、前記データの整合性のレベルを示す整合性データを含む整合性フィールド、および、前記ソースデータおよび前記整合性データのうちの少なくとも1つにしたがって前記メッセージを処理するためのコマンドデータを含むコマンドフィールドを有する前記データフィールド内にヘッダを提供するステップと
を備える、方法。
【請求項2】
前記整合性データが、標準的整合性および高整合性のうちの少なくとも1つを備える、請求項1記載の方法。
【請求項3】
前記ソースデータが、前記データメッセージが由来する前記APを一意に識別するAP識別子および前記データメッセージが由来する前記IOPを一意に識別するIOP識別子のうちの少なくとも1つを備える、請求項2記載の方法。
【請求項4】
前記AP識別子が、前記APが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子をさらに備える、請求項3記載の方法。
【請求項5】
前記ヘッダが、前記データメッセージが送信されようとする宛先データを含む宛先フィールドをさらに備える、請求項3記載の方法。
【請求項6】
前記宛先データが、宛先APを一意に識別するAP識別子と宛先IOPを一意に識別するIOP識別子のうちの少なくとも1つを備える、請求項5記載の方法。
【請求項7】
前記AP識別子が、前記APが組込みオペレーティングシステムを走らせるように構成されるときに、パーティション識別子をさらに備える、請求項6記載の方法。
【請求項8】
前記IOP識別子が、前記IOPが複数のスレッドを実行するように構成されるときに、スレッド識別子をさらに備える、請求項6記載の方法。
【請求項9】
前記ヘッダが、シーケンス番号を含むシーケンスフィールドをさらに備える、請求項5記載の方法。
【請求項10】
前記データメッセージの前記データフィールドが、前記通信チャネルの通信プロトコルのトランスポート層のデータフィールド内にカプセル化された、請求項1記載の方法。
【請求項11】
前記通信チャネルがシリアル通信チャネルである、請求項10記載の方法。
【請求項12】
複数のAP上で走る共通のメッセージ渡しAPIから前記データメッセージを生成するステップをさらに備える、請求項10記載の方法。
【請求項13】
前記共通のメッセージ渡しAPIがMCAPIである、請求項12記載の方法。
【請求項14】
前記メッセージが前記APと前記IOPの間にある間に、前記コマンドデータにしたがって前記データメッセージを処理するステップをさらに備える、請求項1記載の方法。
【請求項15】
前記データメッセージを処理する前記ステップが、前記APおよび前記IOPの間のシリアル通信チャネル内にある書替え可能ゲートアレイ(FPGA)で前記データメッセージを処理するステップを備える、請求項14記載の方法。
【請求項16】
前記FPGAで処理ロジックを実行して、前記ヘッダを読み取り、それに応じて前記データメッセージを処理するステップをさらに備える、請求項15記載の方法。
【請求項17】
前記データメッセージを処理する前記ステップが、前記コマンドデータが照合が必要とされることを示すときに前記APからのデータメッセージを照合するステップを備える、請求項14記載の方法。
【請求項18】
前記照合するステップが、I/Oデバイスへの出力のために前記IOPに前記データを渡す前およびメモリに前記データをコミットする前のうちの少なくとも1つに行われる、請求項17記載の方法。
【請求項19】
前記データメッセージが前記冗長なAPからの対をなすメッセージと照合される前に前記整合性データが標準的整合性を示すときに、前記整合性データが、無事に照合された後は、高整合性に変更される、請求項14記載の方法。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2013−105494(P2013−105494A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2012−247975(P2012−247975)
【出願日】平成24年11月12日(2012.11.12)
【出願人】(506388923)ジーイー・アビエイション・システムズ・エルエルシー (46)
【Fターム(参考)】