(58)【調査した分野】(Int.Cl.,DB名)
前記通信プロトコルが、ホスト通信ポートのセット、VES通信ポートのセット、および前記VES通信ポートを介する前記ホスト通信ポート間のデータ転送を確立するための接続マップを確立し、それが前記仮想リンクの一部を形成する、請求項5記載のAFDX。
前記通信プロトコルが、書込み通信ポートと読出し通信ポートのうちの少なくとも1つを識別するための第1フィールドを備えるヘッダを有するフレームデータ構造をさらに備える、請求項6記載のAFDX。
前記ヘッダが、特定の通信ポートに特有である前記セキュリティタグの値と等しくするために、前記ホストとVESとの間のインターフェースにとってローカルである前記プロトコルヘッダの前記部分的CRCチェックサムを変換し、前記ホスト通信ポートから前記VES通信ポートに前記フレームを送信するために処理されるデータ語を有する第6フィールドをさらに備える、請求項12記載のAFDX。
前記VESが、EDE、IEDE、および標準的なARINC 664 part 7完全性プロトコルのうちの少なくとも1つを使用するホスト間で、仮想リンクを介する通信ができるようにするためにプロトコル変換を提供する、請求項6記載のAFDX。
【発明を実施するための形態】
【0007】
以下の記述では、説明の目的で、本明細書に記載の技術の完全な理解を提供するために多くの特定の詳細を説明する。しかし、これらの特定の詳細なしに例示的実施形態を実施できることが、当業者には明らかであろう。他の例では、例示的実施形態の説明を簡略化するために、構造およびデバイスは図の形式で示される。
【0008】
以下で、図面を参照して例示的実施形態を説明する。これらの図面は、本明細書に記載のモジュール、方法、およびコンピュータプログラム製品を実装する特定の実施形態のいくつかの詳細を説明するものである。しかし、図面は、図面内に存在しうる何らかの制限を課すものと見なされるべきではない。方法およびコンピュータプログラム製品は、それらの動作を実現するために任意の機械可読メディア上で提供されうる。実施形態は、既存のコンピュータプロセッサを使用して、あるいはこの目的または他の目的のために組み込まれた専用コンピュータプロセッサによって、あるいはハードワイヤードシステムによって実装されうる。
【0009】
上述のように、本明細書に記載の実施形態は、搬送するための機械可読メディアを備える、または機械実行可能命令またはデータ構造を格納したコンピュータプログラム製品を含む。このような機械可読メディアは、汎用または専用コンピュータ、あるいはプロセッサを備えた他の機械によってアクセスできる、任意の利用可能なメディアでよい。例として、このような機械可読メディアには、RAM、ROM、EPROM、EEPROM、CD−ROM、あるいは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望のプログラムコードを機械実行可能命令またはデータ構造の形式で搬送または格納するために使用でき、汎用または専用コンピュータ、あるいはプロセッサを備えた他の機械によってアクセスできる他の任意のメディアが挙げられる。ネットワークまたは他の通信接続(ハードワイヤード、無線、あるいはハードワイヤードまたは無線の組合せのいずれか)を介して情報が機械に転送または提供されると、機械はその接続を機械可読メディアとして適切に見なす。したがって、このような任意の接続は適切に機械可読メディアと呼ばれる。上記の組合せも、機械可読メディアの範囲内に含まれる。機械実行可能命令は、たとえば、汎用コンピュータ、専用コンピュータ、または専用処理マシンに、特定の機能または機能のグループを実行させる命令およびデータを含む。
【0010】
実施形態は、たとえばネットワーク環境における機械によって実行されるプログラムモジュールの形式で、プログラムコードなどの機械実行可能命令を含むプログラム製品によって一実施形態に実装されうる方法ステップの一般的な文脈で説明される。通常、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実装する、ルーティン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。機械実行可能命令、関連データ構造、およびプログラムモジュールは、本明細書に開示した方法のステップを実行するためのプログラムコードの例を表す。このような実行可能命令または関連データ構造の特定のシーケンスは、このようなステップに記述される機能を実装するための対応する動作の例を表す。
【0011】
実施形態は、プロセッサを有する1つまたは複数の遠隔コンピュータへの論理接続を使用してネットワーク環境において実施されうる。論理接続は、限定するためではなく例として本明細書で提示される、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)を含みうる。このようなネットワーク環境は、オフィス規模、または企業規模のコンピュータネットワーク、イントラネットおよびインターネットで一般的であり、様々な異なる通信プロトコルを使用できる。当業者は、このようなネットワークコンピューティング環境は、一般的に、パーソナルコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、および同様のものを含む、多くのタイプのコンピュータシステム構成を包含することが理解できるであろう。
【0012】
実施形態は、通信ネットワークを通じてリンクしている(ハードワイヤードリンク、無線リンク、あるいはハードワイヤードまたは無線リンクの組合せのいずれかによって)ローカルおよび遠隔処理デバイスによってタスクが実行される、分散コンピューティング環境においても実施されうる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよび遠隔メモリストレージデバイスの両方に位置しうる。
【0013】
例示的実施形態の全体または一部を実装するための例示的システムは、処理ユニット、システムメモリ、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニットに結合するシステムバスを含む、コンピュータの形式の汎用コンピューティングデバイスを含みうる。システムメモリは、読出し専用メモリ(ROM)およびランダムアクセスメモリ(RAM)を含みうる。コンピュータは、磁気ハードディスクから読み出し、またそこに書き込むための磁気ハードディスクドライブ、リムーバブル磁気ディスクから読み出し、またそこに書き込むための磁気ディスクドライブ、およびCD−ROMまたは他の光メディアなどのリムーバブル光ディスクから読み出し、またそこに書き込むための光ディスクドライブも含みうる。ドライブおよびそれらの関連する機械可読メディアは、機械実行可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージをコンピュータに提供する。
【0014】
図1は、3つのアビオニクスホストプロセッサ100、102、および104が、離れて配置された2つの仮想エンドシステム118および120を共有する、本発明の一実施形態を示している。それぞれの仮想エンドシステム(VES)への3つのホスト接続は、例として示されているにすぎない。向上された可用性を提供するために、ネットワーク障害の場合には、アビオニクスシステムが同じメッセージが通信される冗長ネットワークを有することが一般的な方法である。
図1は、リンク122を使用してネットワークAを介して通信するVES118と、リンク124を使用してネットワークBを介して通信するVES120との、2つの冗長ARINC 664 part 7ネットワークがあると仮定する。リンク122および124を介する通信は、ARINC 664標準において指定された、物理的、電気的、およびプロトコルに準拠する。それぞれのホストは、高速シリアルリンク116を使用してそれぞれのネットワーク上のエンドシステムと通信し、そのデータレートは、ネットワークリンク122および124のデータレートを著しく超えるので、ホストは、フレームサイズがARINC 664ネットワーク上のCOMポートの仮想リンクのために構成されたフレームサイズ以上であるCOMポートメッセージを転送できる。それぞれのホストおよびVESは、物理層デバイス(PHY)を通じてシリアルリンクを介してデータメッセージを送受信し、たとえば、ホスト100およびVES118は、PHYペア106を使用して両者間のリンクを介して通信する。
【0015】
ホストが複数のネットワーク上のVESと通信すること、および機能が重要ではないホストが1つのネットワークを介して1つのVESと通信できることは、本発明の実施形態の要件ではない。たとえば、アプリケーションのニーズに応じて、二重メッセージを識別または廃棄できるようにするために、あるいは一連のメッセージ内のあるメッセージが失われたことを示すために、複数のネットワークを介して送受信された二重メッセージ、または、1つのネットワークを介する一連のメッセージ内の失われたメッセージの受信を把握することが望ましい。この目的のために、それぞれのホスト100、102、および104は、それぞれシーケンシング機能101、103、および105を有し、それぞれのCOMポートに属する送信されたメッセージにシーケンス番号で印をつけて、そのCOMポートについてのシーケンス番号の履歴に対して受信されたメッセージのシーケンス番号をチェックする。この発明の態様は、ホスト100、102、および104が、同じカード上または同じシャーシ内に位置しても位置しなくてもよく、さらに、VES118および120が、ホスト100、102、および104のいずれかと同じシャーシ内の異なるカード上に位置してもよく、異なるシャーシまたはスタンドアロンユニット内に離れて位置してもよい点に留意されたい。
【0016】
次に
図2を参照すると、3つのアビオニクスホストプロセッサ200、202、および204が、それぞれAFDXスイッチ222および224内に物理的に常駐する、離れて配置された2つの仮想エンドシステム218および220を共有する、本発明の代替実施形態が示されている。それぞれの仮想エンドシステム(VES)への3つのホスト接続は、例として示されているにすぎない。仮想エンドシステム(VES)は、3つのホストへのサービスの提供に限定されず、任意の数のホストに対応できることが理解されよう。アビオニクスシステムが同じメッセージが通信される冗長ネットワークを有することが一般的な方法であり、
図1は、リンク226を使用してネットワークAを介してスイッチ222が通信するVES218と、リンク228を使用してネットワークBを介してスイッチ224が通信するVES220との2つの冗長ARINC 664 part 7ネットワークがあると仮定する。
【0017】
図2では、それぞれのスイッチは例として4つのネットワークリンクを示しているが、それぞれのスイッチはそれぞれのネットワークへの任意の数のリンク有してよいことが理解されよう。リンク226および228を介する通信は、ARINC 664標準において指定された、物理的、電気的、およびプロトコルに準拠する。それぞれのホストは、高速シリアルリンク216を使用してそれぞれのネットワーク上のエンドシステムと通信し、そのデータレートは、ネットワークリンク226および228のデータレートを著しく超えるので、ホストは、フレームサイズがARINC 664ネットワーク上のCOMポートの仮想リンクのために構成されたフレームサイズ以上であるCOMポートメッセージを転送できる。それぞれのホストおよびVESは、物理層デバイス(PHY)を通じてシリアルリンクを介してデータメッセージを送受信し、たとえば、ホスト200およびVES218は、PHYペア206を使用して両者間のリンクを介して通信する。ホストが複数のネットワーク上のVESと通信すること、および機能がセーフティクリティカルではないホストが1つのネットワークにサービスする1つのスイッチ内の1つのVESと通信できることは、この発明の要件ではない。たとえば、アプリケーションのニーズに応じて、二重メッセージを識別または廃棄できるようにするために、あるいは一連のメッセージ内のあるメッセージが失われたことを示すために、複数のネットワークを介して送受信された二重メッセージ、または、1つのネットワークを介する一連のメッセージ内の失われたメッセージの受信を把握することが望ましい。この目的のために、それぞれのホスト200、202、および204は、それぞれシーケンシング機能201、203、および205を有し、それぞれのCOMポートに属する送信されたメッセージにシーケンス番号で印をつけて、そのCOMポートについてのシーケンス番号の履歴に対して受信されたメッセージのシーケンス番号をチェックする。この発明の態様は、ホスト200、202、および204が、同じカード上または同じシャーシ内に位置しても位置しなくてもよく、さらに、VES218を有するスイッチ222、およびVES220を有するスイッチ224が、ホスト200、202、および204のいずれかと同じシャーシ内の異なるカード上に位置してもよく、異なるシャーシまたはスタンドアロンユニット内に離れて位置してもよい点に留意されたい。
【0018】
図3は、ホストとVESとの間でCOMポートメッセージを通信するための、プロトコルフレームデータ構造300の一実施形態を示している。任意の特定の実施形態で使用される特定のプロトコルフレームデータ構造は、リンク116または216を介して送受信するために使用される特定の高速物理層デバイスに依存する。たとえば、
図1のPHYペア106または
図2のPHYペア206などの特定の物理層デバイス(PHY)は、ローカルリンクプロトコルヘッダ302特定のフィールドのコンテンツを規定でき、たとえばCOMポートメッセージと、それに割り当てられた特定のメモリとを、またはメッセージのコンテンツが通信されるべきARINC 664仮想リンクとを関連付けるために制御情報も通信する。
図3は、プロトコルヘッダ302を引き継いだ部分的なCRCリマインダを特定の値に強制するために使用される、ヘッダCRCトランスレータ306の使用を示している。これにより、メッセージの受信者は、複数語ヘッダ302の代わりに、特定のCOMポートに関連付けられる、知られている単一語セキュリティタグを代用できるようになり、受信者がトランスミッタでプロトコルヘッダ302の即時コンテンツを知る必要なしに、エンドツーエンドCOMポートメッセージの完全性を保証して、送信元偽装から保護するために役立つ。シーケンス番号312はホストのシーケンシング機能、たとえば、
図1に関して説明したシーケンシング機能101、103、および105、または
図2に関して説明したシーケンシング機能201、203、および205によって追加される。タイムスタンプ314がメッセージに追加されるので、受信者はそのメッセージの古さを決定できる。CRCは、ヘッダ302全体、トランスレータ306、シーケンス番号312、タイムスタンプ314、およびペイロード304を介して計算される。受信者は、メッセージのバランスのためにトランスレータ306によってCRCシード値として強制されたCRC部分的リマインダを知っているので、ローカルリンクプロトコルヘッダ302を受信する必要がない。
【0019】
次に
図4を参照すると、例として、ホストとVESとの間でCOMポートメッセージを移送するためにジャンボフレームがギガビットイーサネットを介して送信される場合に使用されうる、ローカルプロトコルフレーム400の一実施形態が示されている。この実施形態では、402はローカルリンクプロトコルおよびエンドシステム制御ヘッダである。このヘッダは、ローカルプロトコルヘッダであるIEEE 802.3(またはイーサネット)ヘッダ416で構成され、エンドシステム制御は、IPヘッダ418、ならびにUDP送信元ポート420、UDP宛先ポート422、UDPメッセージ長424、およびUDPチェックサム426で構成され、そのCOMポートのためにデータを格納するために割り当てられたメモリ、移送するためにAFDXフォーマットされたデータが置かれるサブVLキュー、ならびにAFDXネットワークを介して移送するために使用されるAFDX UDP、IP、およびMACヘッダを共に識別する。
図4の実施形態では、フレーム400全体を介してCRC408が計算される。イーサネットジャンボフレームを使用することにより、メッセージペイロード404は8192バイトの最大COMポートメッセージ長に対応できるようになる。CRC408によって使用される多項式は、IEEE 802.3によって使用するために指定されるCRC−32であり、ホストとVESとをリンクするギガビットイーサネットPHYデバイスによって好都合に計算できるようにする。
【0020】
次に
図5を参照すると、フレーム300または400を受信して、AFDXネットワークを介して送信する準備をするために使用される、送信処理500の実施形態が示されている。この実施形態では、ホストポート集信装置502により、たとえばギガビットイーサネットリンクなどの高速データリンクを介して、複数のホストからフレームを同時に受信できるようになる。集信装置502は、先着順または優先順位ベースで、処理の残りにフレームの通過を命令するように構成されうる。次いで、集信装置のデータフレーム出力が、出力864および866上の確認されたCOMポートメッセージフレームの同じコピー、ならびにCOMポート識別子868および872の同じコピーを出力する、データおよびフレーム完全性チェックならびにCOMポート識別子決定論理800によって処理される。実施形態500は、たとえば
図3の312または
図4の412のシーケンス番号、ならびに、たとえば
図3の314および
図4の414のタイムスタンプとともに、たとえば
図3の304または
図4の404の、COMポートメッセージのエラー検出符号化の2つの異なる手段を提供する。どのエラー検出符号化スキームが使用されるかという選択は、処理800から受信したCOMポート識別子868および872の検査に基づいて、処理508によって行われる。エラー検出符号化の1つの手段は、たとえば
図3の306または
図4の406のCRCトランスレータ、および、たとえば
図3の308または
図4の408の、送信元ホストによって計算された32ビットCRCの使用に依存する。エラー検出符号化のこの方法が使用されると、処理500は、処理504によって使用されるべき処理800の単一のCOMポートメッセージフレーム出力864を使用でき、たとえば
図3の302または
図4の402のローカルプロトコルヘッダを除去して、たとえば
図3の306または
図4の406のCRCトランスレータを除去する。これにより、処理504の出力542上のフレーム構造552という結果になり、550によってARINC 664 part 7、UDP/IPヘッダ挿入、断片化、トラフィックシェーピング、シーケンシング、およびMACフレームカプセル化処理900への入力560になるよう選択される。さらに、COMポート識別子868および872のエラー検出符号化されたコピー562が、処理900にとって利用可能になる。
【0021】
この実施形態によってサポートされるエラー検出符号化の代替の異なる手段を説明するために、
図5に示されるVES送信処理の実施形態を再び参照する。これは、ロックウェルコリンズエンドシステムに実装されたレガシーエラー検出符号化(EDE)であり、その例は米国特許第5170401号に記述されている。COMポート識別子自体が十分にエラー検出符号化されているか、コピー868および872の両方が十分にエラー検出符号化されている場合、好ましいエラー検出符号化が使用されるか、またはレガシーエラー検出符号化が使用されるかは、COMポート識別子の1つのコピー868の検査によって決定される。処理508は、たとえばエラー検出符号化がある場合はそのチェックによって、または868と872を直接比較することによって、COMポート識別子にエラーがないことを決定する。COMポート識別子内にエラーがある場合、そのフレームは廃棄される。COMポート識別子内にエラーがない場合、処理508は、現在のメッセージが所属するCOMポートが好ましいエラー検出符号化を使用するように構成されているか、またはロックウェルコリンズエンドシステムによって使用されるレガシーエラー検出符号化(EDE)を使用するように構成されているかを決定する。レガシーEDE符号化を実現するために、処理500は、COMポートメッセージフレーム864と866との両方のコピーを使用する。まず、処理504および506によって、たとえば
図3の302および306、または
図4の402および406の、ローカルプロトコルヘッダおよびCRCトランスレータが除去される。次に、処理504および506が、それぞれ868および872で受信したそれらのCOMポート識別子のコピーを、それぞれ504および506から受信した結果として得られるCOMポートメッセージフレームの始めに挿入して、除去されたローカルプロトコルヘッダおよびCRCトランスレータと置換する。処理504および506は、COMポートメッセージフレームの終わりから、たとえば
図3の308および
図4の408の32ビットCRCも除去する。結果として得られる、COMポート識別子で始まるが32ビットCRCがないフレームは、単一の障害に対するレガシーEDE符号化耐性を作成するためにハードウェアの異なる部分に実装された4つの異なるCRCジェネレータ522、524、526、および528を通過する。これは、ホストから受信した元のフレームを保護する32ビットCRCが除去および置換されるので、賢明である。レガシーEDE符号化の一部として、CRC計算において522、524、526、および528によって使用されるCOMポート識別子が、処理520によって除去される。処理530が、同じデータの異なるコピー上で524および526によって計算された32ビットCRCは同じであると決定すると、処理532は2つの16ビットCRCを、処理520の出力534上のフレームに追加する。具体的には、処理532は、処理522の出力536から取得した16ビットCRCxのコピーを追加し、処理532は、処理528の出力538から取得した16ビットCRCyのコピーも追加する。処理532の出力544は、550によってARINC 664 part 7、UDP/IPヘッダ挿入、断片化、トラフィックシェーピング、シーケンシング、およびMACフレームカプセル化処理900への入力560になるよう選択される、フレーム構造554を有する。さらに、COMポート識別子868および872のエラー検出符号化されたコピー562が、処理900にとって利用可能になる。
【0022】
次に
図6を参照すると、上から下へ時間順に、
図4の8キロバイトのフレーム400への
図5の処理500のシーケンスの結果が示されている。ホストは、フレームを有するCOMポート識別子626を含み、それをフレームの転送に使用されるCOMポートのために予約されたメモリ位置に書き込む。ホスト内の他のハードウェアまたはソフトウェア処理は、COMポート識別子を使用して、フレームの冒頭に挿入されるたとえば
図3の302および
図4の402のローカルプロトコルヘッダ614を選択し、たとえば
図3の306および
図4の406のCRCトランスレータ628を計算し、たとえば、それぞれ
図3の312および314、ならびに
図4の412および414のCOMポートメッセージシーケンス番号およびタイムスタンプ630を増分および挿入し、たとえば
図3の308および
図4の408のCRCチェックサム624を計算および追加する。メッセージ602はVESによって受信される。正確な受信およびCOMポート識別を確認すると、ローカルプロトコルヘッダ614およびCRCトランスレータ628が除去されて、
図5の処理900でCOMポートのために選択されたUDP/IPヘッダ618に置換される。ある実施形態では、元のCRCチェックサム624は、エンドツーエンドCOMポートメッセージ移送完全性を保証するために、フレームとともに残る。あるいは、レガシーエラー検出符号化(EDE)で動作するように構成されたロックウェルコリンズエンドシステムなどのレガシーエンドシステムと相互作用するために、フレームフォーマット554内に示されるように、32ビットCRC624は、2つの16ビットCRCチェックサム、CRCx 536およびCRCy 538と置換されうる。AFDX COMポートメッセージ604は、処理902によってCOMポートバッファ910のうちの1つに格納され、処理920によるIP断片化の間に断片が抽出される。例として、
図6は、第1のIPメッセージ断片608、第2のIPメッセージ断片610、および最後のIPメッセージ断片612を示しており、第2のメッセージ断片610と最後のメッセージ断片612との間に複数のメッセージ断片があってよいことが理解されよう。さらに、メッセージ604がより短い場合、1つのメッセージ断片か、2つのメッセージ断片しかない場合があることが理解されよう。断片処理920によって出力されたメッセージ断片は、それらに関連付けられるAFDX COMポートに割り当てられたサブVLキュー930のうちの1つに置かれる。断片は処理940によってキューから読み出され、関連VLを介して送信するためにサブVLキューがラウンドロビン方式で読み出されることを保証して、VLフレームの送信の間の時間がその構成されたBAG以上であることをさらに保証する。処理950は、VL指定MACヘッダ614、VLシーケンス番号バイト616、および32ビットCRCチェックサム638を追加する。例として、第1のフレーム断片608のMACフレーム620へのMACカプセル化が
図6に示されている。さらなる例として、最後のフレーム断片612のMACフレーム622へのMACカプセル化が
図6に示されており、第1のMACフレーム620と最後のMACフレーム622との間に複数のフレーム断片があり得ることが理解されよう。COMポートメッセージ604が十分に短い場合、単一のフレーム断片がカプセル化され、単一のMACフレームを使用してメッセージ604全体がネットワークに送信されうることがさらに理解されよう。
【0023】
図7は、CRCトランスレータ語の値を決定するためのいくつかの処理を示している。CRCトランスレータ語の目的は、受信機で、COMポート識別子(またはセキュリティタグ)によってローカルプロトコルヘッダを代用できるようにすること、およびローカルプロトコルヘッダを使用して計算された元のCRCを、ローカルプロトコルヘッダで代用されたCOMポート識別子626で計算されたCRCと等しくすることである。たとえば、CRCトランスレータは、
図3のプロトコルヘッダ302およびCRCトランスレータ306、または
図4のプロトコルヘッダ402およびCRCトランスレータ406を除去して、ホストでローカルプロトコルヘッダを使用して計算された元のCRCを無効にせずに送信機と受信機の両方に知られているCOMポート識別子で置換できるようにする。さらに、ハードウェア故障から保護するために、COMポート識別子自体は、データパスの任意の時点で、エラー検出および訂正符号でエラー保護されうる。
図7に示される実施形態では、2つの別の処理700および720がある。処理700は、ローカルプロトコルヘッダの部分的CRCリマインダを計算する。処理700で、CRCは、シフトレジスタの遅延タップ704を選択することによってCRC多項式が符号化される線形帰還シフトレジスタ(LFSR)702を使用して計算され、モジュロ−2加算回路706で加算され、さらに他のモジュロ−2加算器708で入力データビットを加算される。処理700は、LFSR702を知られている値、たとえば全てゼロに初期化して、ローカルプロトコルヘッダ全体を、出力がモジュロ−2加算器708に接続される他のシフトレジスタ710に配置することによって開始される。次に、シフトレジスタ702および710の両方が、プロトコルヘッダの最後のビットが708によって追加されるまで同じシフトクロック712でクロックされて、シフトクロック712が終了する時間にLSFR702にシフトされる。LFSR702で結果として得られる値は、ローカルプロトコルヘッダによって生成された部分的CRCリマインダである。次に、処理720が実行される。処理720では、ローカルプロトコルヘッダ全体と長さが等しいシフトレジスタ710が32ビットシフトレジスタ730に置換される。さらに、処理720で、LFSR722のタップ724は処理700のLFSR702のタップ704と同じである。しかし、処理700とは異なり、処理720では、シフトレジスタ730の出力はLFSR722の入力を直接与える。さらに、シフトレジスタ730の出力は、タップ724のモジュロ−2合計736をシフトレジスタ730の出力に加算するモジュロ−2加算器728に与え、モジュロ−2合計728の出力が32ビットシフトレジスタ730にシフトされる。処理720は、処理700によって計算された部分的CRCをLFSR722にコピーすることによって、および特定のCOMポートに割り当てられた32ビットCOMポート識別子値で初期化されている32ビットシフトレジスタ730で開始する。次に、シフトクロック734が、COMポート識別子の最後のビットがシフトレジスタ730からLFSR722に転送されるまで、32クロックサイクルのために活性化され。処理720が完了する。シフトレジスタ730は現在CRCトランスレータ語を含む。
【0024】
次に
図8を参照すると、一般的なデータおよびフレーム完全性チェックの一実施形態、およびCOMポート識別子決定処理800が示されている。データフレームおよび完全性チェック処理810および812について、およびCOMポート識別子決定830および832について異なる論理を使用して、処理800の異なるインスタンスを入口フレーム処理と出口フレーム処理の両方のために使用できるようにする。したがって、処理800のパラダイムは、本発明のVES送信および受信処理の両方の記述に含まれる。
図8に示される実施形態では、単一の故障に対する耐性を強化するために、受信フレーム801が、バッファ802および806をそれぞれ使用して、2つの物理的に離れたデータパス804および808に複製される。それぞれのパス804および808は、データフレームおよび完全性チェック処理810および812、ならびにCOMポート識別子決定830および832の、同じ複製された論理への入力の役割を果たす。データおよびフレーム完全性処理810および812、ならびにCOMポート決定処理830および832が進行している間、複製された論理による同じ結果の確認まで、フレームの複製コピーが別のバッファ860および862に格納される。データおよびフレーム完全性チェック810および812が820をパスして、COMポート識別子決定830および832が同じ結果840をもたらすと、ANDゲート850が、860および862に格納されたフレーム、ならびにCOMポート識別子834および836を、スイッチ854、856、858、および870を通じて、後続の処理にとって利用可能にする。あるいは、フレームが廃棄される。この実施形態では、複製データパス804および808、複製データバッファ860および862、ならびに複製された完全性チェック810および812、複製COMポートID決定830および832が、データパス、論理、およびメモリ障害を検出できるようにするために提供される。同様に、そのフレームが属するCOMポートの誤認を検出するために、データ障害を検出してCOMポート識別子出力868および872を複製することを後続の処理が使用可能となる機会を、複製データ出力864および866が、後続の処理に提供する。たとえば、複製されたデータ出力864および866、ならびに複製されたCOMポート識別子出力868および872は、すべて処理500によって使用される。代替実施形態は、それぞれ806、808、812、832、862、856、870、866、および872による802、804、810、830、860、854、858、864、および868の1つまたは複数の複製を防ぐために、データおよびCOMポート識別子の所望の保護程度を実現するために、たとえば
図3の302または
図4の402の、フレームのローカルプロトコルヘッダにおいてCOMポート識別子のために使用されるフレームのエラー検出符号化およびビットのエラー検出符号化を使用できる。たとえば、COMポート識別子がローカルプロトコルヘッダ402におけるエラー検出符号化の場合、COMポート識別子決定論理830の出力834もエラー検出符号化であり、COMポート識別子868の1つのコピーがエラーから十分保護されるようにすることができるので、後続の処理、たとえば処理1100によって必要とされるCOMポート識別子のコピーは1つだけである。
【0025】
次に
図9を参照すると、標準的なARINC 664 part 7、UDP/IPヘッダ挿入、断片化、トラフィックシェーピング、シーケンシング、およびMACフレームカプセル化処理900の実施形態が示されている。エラー検出符号化COMポート識別子562は、560で受信したCOMポートメッセージについてのUDPヘッダおよびCOMポートバッファアドレスを取得するために使用される。処理902は、AFDX COMポートバッファ910のセット内の、予約されたAFDX COMポートバッファへのUDPヘッダ挿入およびCOMポートメッセージの書込みを実行する。スケジューラ940はCOMポートバッファ910からのIP断片の読取り、適切なIPヘッダ920のそれぞれの断片への挿入、およびIPヘッダを有する断片の割り当てられたサブVLキューへの転送を制御する。それぞれのVLは最大4つのサブVLキューを有する。4つのサブVLキューのいずれかが非空であり、VLごとのフレーム間帯域幅割当てギャップ時間を超えた場合はいつでも、スケジューラ940はVLに属するサブVLキューから利用可能なフレームを送信できる。同じVL上で送信するための準備ができているフレームを有する複数のサブVLキューがある場合、これらはラウンドロビン方式であるが、異なるサブVLキューからのフレームの送信間の時間が、それらが属するVLについてのフレーム間BAG間隔を超えない方法で選択される。
【0026】
次に
図10を参照すると、
図5の処理500によって送信されたフレームを受信するように設計された受信処理1000が示されている。
図2に示されるように、AFDXスイッチにVESが組み込まれている場合、AFDXスイッチ222または224は、それぞれリンク226および228を介してネットワークから受信したトラフィックを集めるネットワークポート集信機能1002を提供する。あるいは、
図1の118および120に示されるように、VESがスタンドアロン機能の場合、それぞれのネットワークへそれぞれ単一のリンク112および124だけがあれば、集信機能1002は存在しない。ネットワーク集信装置1002は、先着順または優先順位ベースで、処理の残りにフレームの通過を命令するように構成されうる。ネットワーク集信装置は、データおよびフレーム完全性チェックならびにCOMポート識別子決定処理800を通じてフレームを通過させる。これは、
図8に示される回路の例であり、データフレームおよび完全性チェッカー810および812の論理が、ARINC 664 part 7によって定められるように、特定のVLを介して受信したフレームが連続的なシーケンス番号616を有するという確認を含むように修正される。
図8の800の論理は、たとえば
図3の302または
図4の402のローカルプロトコルヘッダを使用してホストから受信したフレームのために使用されうる手段とは異なる、たとえば614および618のネットワークのフレームヘッダからCOMポート識別子を決定する手段が可能になるようにさらに修正される。さらに、
図10の800のCOMポート識別子出力868はエラー検出符号化と仮定される。一旦処理800によって完全性が確認されると、受信したMACフレーム864および866の2つのコピーがIPデフラグ処理1100に渡される。デフラグが完了すると、制御情報1112および1122が処理1100から処理1010に渡されて、特定の受信COMポート内のメッセージフレームのデフラグの完了を示し、処理500によってフレームを構築する際に好ましい、またはレガシーエラー検出符号化が使用されたかどうか、さらに、32ビットCRCを計算して、ローカルプロトコルヘッダを使用してホストに送信されるべきメッセージフレームのコピーに追加する必要があるかどうかを示す。フレームへの32ビットCRCの挿入は、ネットワークを渡る送信の際にレガシーEDEが使用されたか、何らかのさらなるエラー検出符号化の向上なしにARINC 664 part 7の通常の完全性方法を使用してフレームが送信された場合に必要である。
【0027】
図10で、処理1100からデフラグされたフレーム出力1140の1つのコピーが、CRCx1022の多項式を使用するCRCチェックを通じて渡されて、デフラグされたフレーム1150の異なるコピーが、CRCy1024の多項式を使用するCRCチェックを通じて渡される。処理1100は、フレーム1140および1150の冒頭に、CRCxおよびCRCyが適切に確認されるために必要なCOMポート識別子を含んでいる。レガシーEDEを使用してフレームが送信されなかった場合、それに関わらず、処理1010の出力1016は、フレームへのさらなる処理が継続できるように、CRCxおよびCRCyの結果1020が、出力1026上で有効に見えるようにチェックを強制することになる。一方、レガシーEDEが使用された場合、出力1026がCRCx1022およびCRCyのチェックについての真の結果を反映する。CRCxチェック1022およびCRCyチェック1024に続いて、処理1100から1140および1150で受信したフレームの冒頭にCOMポート識別子を使用して、ローカルプロトコルヘッダおよびCRCトランスレータは、処理1032および1034によってフレームのそれぞれのコピー内のCOMポート識別子を置換する。32ビットCRC計算の後に、処理1042および1044が続く。32ビットCRCチェックが同じである場合、および処理1020の出力1026がCRCxおよびCRCyが正確であるか使用されないことを示す場合、フレームはスイッチ1062を有効にすることによるホストへの送信に適格である。そうではない場合、フレームは廃棄される。処理1000によって実行されたデフラグされたフレームのCRCチェックまで、処理1100によって挿入されたCOMポートIDを置換するローカルプロトコルヘッダを有するフレームは、保持用バッファ1050に転送される。処理1012は、フレームの最後に32ビットCRCを挿入する必要があるかどうかの決定を行う。何らかのエラー検出の向上なしにARINC 664 part 7の通常の完全性を使用したリモートホストによってフレームが送信された場合、または送信ホストが32ビットCRCによるCRCxおよびCRCyの置換を必要とするレガシーEDEを使用した場合、32ビットCRCが挿入される。処理1044は32ビットCRCの挿入を実行し、処理1012はそれが使用されるべきか、フレームの終わりに挿入されるべきか、あるいはCRCxおよびCRCyを置換するために使用されるべきかどうかを決定する。エラーがない場合、処理1000によって再フォーマットされた、ネットワークから受信したフレームは、フレームを受信するように構成されたホストにそのフレームを送信する、ホストポートディストリビュータ1070にとって利用可能になる。
【0028】
次に
図11を参照すると、IPデフラグ処理1100が示されている。処理1100は、冗長デフラグバッファ1116および1126において送信されたCOMポートメッセージを再構築するために使用されるべき処理800から、エラー検出符号化COMポートID868および受信したMACフレーム864および866の二重コピーを受信する。処理1102、1110、および1120は、いくつかのCOMポートメッセージのデフラグについての状態情報を同時に維持し、それぞれのCOMポートメッセージは再構築バッファの自身のプライベートペアをセット1116および1126で割り当てられている。再構築バッファのアドレスは処理1102によって維持され、処理1110および1120はMAC、UDP、およびIPヘッダを除去し、COMポートIDをCOMポートメッセージの第1の断片の冒頭に挿入し、断片が書き込まれるべきバッファ内のオフセットアドレスを把握して、それぞれの断片が予約された再構築バッファに適切に分散されることを保証する。一旦COMポートメッセージのデフラグが無事に完了すると、これは制御ライン1112および1122上の処理1000に示される。制御ライン1112および1122は、ARINC 664 part 7の通常の完全性、本発明の好ましいエラー検出符号化方法、またはロックウェルコリンズエンドシステムによって使用されるレガシーEDEを使用してCOMポートメッセージが送信されたかどうかも示す。二重再構築バッファおよび論理を維持する理由は、IPデフラグに使用される論理およびメモリ回路内の故障検出を可能にするためである。
【0029】
ARINC 664 part 7に指定された通常の完全性モードでフレームを受信するように構成されたレガシーエンドシステムは、たとえば
図3の308、312、および314、ならびに
図4の414の、完全性を向上するために使用される受信された単語が、通常の完全性受信器によって単に冗長データ語として扱うことができるので、向上された完全性フレームを処理する能力なしに、500でサポートされた向上された完全性送信処理のいずれかによって生成されたフレームを依然として受信できる点に留意されたい。あるいは、VESは、通常の完全性フレームを唯一受信できるレガシーエンドシステムに送信する前に、たとえば
図3の308、312、および314、ならびに
図4の408、412、および414の、高い完全性移送に使用する単語を抽出するように構成されうる。
【0030】
送信するためのCOMポートメッセージを符号化するために好ましいエラー検出符号化が使用されるか、またはロックウェルコリンズによって使用されるレガシーEDEが使用されるかどうか、あるいは、何らかの追加エラー検出符号化なしに、ARINC 664 part 7によって指定された通常の完全性が使用されるかどうかは、ホストと仮想エンドシステムとの間で使用されるローカルプロトコルフレームフォーマットにとって透過的なままである。たとえば、
図1のリンク116または
図2のリンク216を介して送信されたフレームは、送信処理500によって生成されたフレームを受信するための受信処理1000が一致する限り、同じである。
【0031】
上述の実施形態の技術効果は、ホストから離れてエンドシステムを配置する機能を含み、ネットワークを介して通信している複数のホストプロセッサ間のエンドシステムの機能およびサービスの共有をさらに提供する。ホストから離れてエンドシステムを配置すること、および複数のホスト間でエンドシステムを共有することの1つの利点は、それぞれのホストが自身のエンドシステムをもはや必要とせず、そのため電力、冷却要求、およびそれぞれのホストの重量が減少することである。アビオニクスサブシステムは、通常、航空機上の特定の位置に割り当てられる電力、重力、および冷却に制約されている。したがって、仮想エンドシステムによって可能になった、離れて配置されるホストの電力、冷却、および重量における減少は、航空機の環境において非常に有益である。
【0032】
エンドシステムの共有は、エンドシステムを共有するホストの数によって不十分な帯域幅をもたらす可能性がある。幸い、データ転送帯域幅が1Gbps以上であり、100メートル以上の転送距離をサポートするARINC 664 part 7標準の開発以来、物理層技術の数は増加している。このようなリンク帯域幅によって、レガシーエンドシステムPCIバスホストインターフェースと匹敵する時間内に、ホストと、離れて配置される仮想エンドシステムとの間のデータ転送が可能になる。増加した処理能力およびネットワークリンク帯域幅によって、相互に物理的に近接である必要がない複数の分散ホストを有するARINC 664 part 7エンドシステムのリソースの共有が実現可能となる。これは、空間、重量、および電力消費を減少させるためにさらに役立つ。
【0033】
エンドシステムをホストから離れて配置することには、いくつかの利点および態様がある。たとえば、離れて配置することによって、アビオニクスネットワークの電力消費のより慎重な利用および分散が可能になる。本発明の実施形態によって、離れて配置されたARINC 664 part 7エンドシステムのサービスを、ホストツーエンドシステムインターフェースの論理的詳細を抽象化することによって、複数のホストによって共有することが可能になる。ホスト−エンドシステムデータ構造およびリソースの遠隔操作は、構成、ステータス、およびネットワークデータ転送を提供する信頼性の高いプロトコルを使用して実現される。このような、離れて配置されるエンドシステムは、COMポートサービスが物理的位置または実装詳細に関係なくアクセスされるので、本明細書では仮想エンドシステム(VES)と呼ばれる。
【0034】
本発明の実施形態は、ホストCOMポートからエンドシステムCOMポートへの接続を仮想化するために役立つ、任意のプロトコルおよび関連データ構造を含むように考案される。
【0035】
このエンドシステム機能はASIC、FPGA、汎用CPU、またはエンドシステム機能を実行するソフトウェアを実行しているネットワークインターフェースを有するこれらの任意の組合せでよい。この離れて配置されるエンドシステムは仮想エンドシステム(VES)と呼ばれる。VES機能はAFDXスイッチ内に物理的に配置される。高速データリンクは、ホストプロセッサと、COMポートメッセージのサイズ(たとえば、現在8キロバイト)に見合う大容量データフレームの転送をサポートするVESとの間にあってよい。
【0036】
さらに、処理およびデータ構造のセットは、ホストプロセッサとARINC 664 part 7 エンドシステムとの間のデータの転送を調整するためのプロトコルを確立しうる。これらの処理およびデータ構造によって、複数のホストプロセッサ間でエンドシステムリソースを共有し、エンドシステムリソースを離れて配置することができるようになる。ホスト側からは、これらの処理のセットは、ホストCOMポートのセット、エンドシステムCOMポートの対応するセット、およびそれらの間のデータ転送のための接続マップを構成するための手段を確立するために役立つ。さらに、この処理のセットは、ホストをエンドシステムに接続するリンクにわたってエンドシステムを完全に構成するために必要な全ての情報を転送する機能を含む。
【0037】
ヘッダフィールドは、ホストとVESとの間の転送の間に、どのCOMポートにメッセージが書き込まれているか、または読み出されているかを識別できる。メッセージシーケンス番号によって、ホストは、可用性を向上させるために、冗長ネットワーク上でVESと同時にインターフェースできるようになる。これによって、ホストは冗長COMポートメッセージをそれぞれのネットワーク上のVESに送信して、冗長ネットワークから受信した冗長COMポートメッセージを管理または廃棄できるようになる。COMポートメッセージのCRCチェックによって、受信COMポートは、メッセージの完全性を有効にすることができるようになる。COMポートに特有で、メッセージとともに送信されないが受信COMポートで知られていて再生されるべきセキュリティタグの使用は、CRCチェックを使用するメッセージの完全性の確認に役立つ。タイムタグは、受信するホストがデータの古さを確認できるように、COMポートメッセージの一部として含まれうる。
【0038】
データ語はローカルプロトコルヘッダに追加されて、ホストからVESにCOMポートメッセージを送信するために使用でき、ローカルプロトコルヘッダのCRC値を、COMポートに特有のセキュリティタグ値と等しくなるように変換する。これによって、送信する間に特定のローカルプロトコルヘッダを除去して、受信COMポートでセキュリティタグと置換できるようになり、結果として得られるフレームは依然としてCRCチェックをパスする。これにより、受信COMポート論理は、メッセージが最終CRCチェックをパスするためにセキュリティタグの値を知っていることになるので、エンドツーエンドセキュリティが向上する。
【0039】
さらに、いくつかの相互作用処理は、他のホストをARINC 664 part 7ネットワークに接続しうるレガシーエンドシステムにとってVESの存在を透過にして、VESを使用しているホストにとってレガシーエンドシステムとの通信を透過にすることができる。相互作用処理は、時間管理およびデータ完全性プロトコルを、通信が発生するレガシーエンドシステムと互換性を持つようにすることを含む。
【0040】
この明細書は、最良の形態を含む例を用いて本発明を開示し、さらに、あらゆる当業者が任意のデバイスまたはシステムの作成および使用すること、ならびに任意の包含された方法を実行することを含む、本発明を実施することを可能にする。本発明の特許保護される範囲は、特許請求の範囲によって規定され、当業者であれば想起される他の例を含むことができる。このような他の実施例は、請求項の文言と差違のない構造要素を有する場合、あるいは、請求項の文言と僅かな差違を有する均等な構造要素を含む場合には、特許請求の範囲内にあるものとする。