(57)【特許請求の範囲】
【請求項１】
複数のデータキュー（４０）によりデータが提供される中央データサーバー（ＣＤＳ）（２８）を有する通信ネットワークにおけるデータ通信を制御する方法であって、
到着する到着データフレームを前記複数のデータキュー（４０）の各々に格納するステップと、
前記データキュー（４０）に格納されるデータフレームごとに格納完了時刻を決定するステップと、
各格納されたデータフレームのキュー識別子を、単一の先入れ先出し（ＦＩＦＯ）で、前記決定された完了時刻による時系列順に格納するステップと、
前記ＦＩＦＯの最も古い時系列順の場所にある前記キュー識別子に基づいて、前記ＣＤＳ（２８）に供給するための前記データキュー（４０）を選択するステップと、
前記選択されたキュー識別子に対応する前記複数のキュー（４０）のうちの１つにあるデータフレームを順次供給するステップと、
を含む、方法。
【請求項２】
前記格納完了時刻を決定するステップは、到着時刻を記録するステップを含む、請求項１に記載の方法。
【請求項３】
前記到着時刻を記録するステップは、全てのデータが到着を完了した後に到着時刻を記録するステップをさらに含む、請求項２に記載の方法。
【請求項４】
同じ到着時刻を有する２つ以上のデータフレームは、２つ以上のデータキュー（４０）に格納される、請求項２または３に記載の方法。
【請求項５】
前記同じ到着時刻を有する前記２つ以上のキュー（４０）識別子のいずれかは、任意の順序で前記単一のＦＩＦＯに格納される、請求項４に記載の方法。
【請求項６】
前記データフレームを順次供給するステップは、前記データフレームの少なくとも１つのワードを前記ＣＤＳ（２８）に書き込むステップを含む、請求項１から５のいずれかに記載の方法。
【請求項７】
前記データフレームを順次供給するステップは、前記フレームの少なくとも１つのワードを、前記ＣＤＳ（２８）の現在値テーブル（ＣＶＴ）（５６）場所または循環バッファ（５４）場所の少なくとも一方に書き込むステップをさらに含む、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータキューによりデータが提供される中央データサーバー（ＣＤＳ）を有する通信ネットワークにおけるデータ通信を制御する方法に関する。
【背景技術】
【０００２】
現代の航空機では、アビオニクス「プラットフォーム」は、例えばセンサ、センサデータ集信装置、データ通信ネットワーク、無線周波数センサおよび通信機器、計算要素、エフェクタ、ならびにグラフィックディスプレイなどの様々な要素から構成されている。これらの構成要素は、データ通信ネットワーク上で互いに情報を共有しなければならない。
【０００３】
これらのプラットフォーム要素の従来からある具現化は、しばしば「連合システム」と呼ばれる個々のサブシステム要素の形である。連合システムは、それ自体の専用のロジック、プロセッサ、および入力／出力インターフェースを有する自己内蔵型パッケージの特定用途向けサブシステムである。複数のおよび分離した連合システムは、データソースの共通のサブセットに依存しているが、処理リソースおよびインターフェースを連合システム間で共有することを欠いている。
【０００４】
連合システムに対する依存を減らすための以前の努力は、結果としてＡＲＩＮＣ６５３およびＡＲＩＮＣ６６４標準の導入になった。ＡＲＩＮＣ６５３（Ａ６５３）は、各アプリケーション、例えば連合システム機能と関係するアプリケーションが、実行するためのそれ自体のタイムスライス分割およびそれ自体のメモリ空間分割を与えられるオペレーションシステムである。これは、複数の連合システム機能であったものを、ＡＲＩＮＣ６６４パート７（Ａ６６４ｐ７）に基づいて、共通プロセッサをホストにし、アビオニクス・データネットワークに対する共通インターフェースおよび配線を共有することを可能にした。
【０００５】
これらのシステムでは、アプリケーションによって生じる結果が入力データのサンプリングから処理され出力されるまでの遅延を十分に低くすることを確実にするために、データはより高い周波数でサンプリングされ、発行され、送信され、そして、ＡＲＩＮＣ６５３パーティションにおいて実行するアプリケーションはより頻繁に実行される。データ発行レートの頻度およびアプリケーション実行の頻度の両方は、データおよびその処理が同期する場合に必要とされるよりも頻度が高くなる傾向がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２０１２／０２０７１８３号明細書
【発明の概要】
【０００７】
一実施形態では、本発明は、複数のデータキューによりデータが提供される中央データサーバー（ＣＤＳ）を有する通信ネットワークにおけるデータ通信を制御する方法に関する。本方法は、到着する到着データワードを複数のデータキューの各々に格納するステップと、データキューに格納されるデータワードごとに格納完了時刻を決定するステップと、各格納されたデータワードのキュー識別子を、先入れ先出し（ＦＩＦＯ）メモリに、決定された完了時刻による時系列順に格納するステップと、ＦＩＦＯメモリの最も古い時系列順の記憶場所にあるキュー識別子に基づいて、ＣＤＳに供給するためのデータキューを選択するステップと、選択されたキュー識別子に対応する複数のキューのうちの１つにあるデータワードを供給するステップと、を含む。
【０００８】
図面の説明は以下の通りである。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一実施形態による航空機用データ通信ネットワークの概略図である。
【図２】図２は、本発明の一実施形態によるアビオニクス・データ・サーバーの概略図である。
【発明を実施するための形態】
【００１０】
本発明の記載される実施形態は、アビオニクス・データ・サーバー（ＡＤＳ）を有するアビオニクス・データ通信ネットワークおよび航空機用構成要素の実施形態に関し、データ値の任意のソースを航空機上の任意の送信先に配信する必要性をサポートする。可能であるが、本発明の実施形態は、例えば、ＡＤＳを通過する利点が全くない特定の二地点間フローが存在するので、航空機の全てのデータ経路はデータ通信ネットワークを通過しなければならないという要件を課す必要がない。しかし、変換、インターワーキング、処理、同期、トラフィックシェーピング、ポリシング、マルチキャスティングなどを必要とするデータフローの少なくともほとんどは、ＡＤＳが提供する機能から利益を得ることができる。
【００１１】
図１に模式的に示すように、航空機１０は、複数の遠隔入力ユニット（ＲＩＵ）１２、例えば、航空機１０の操作のためのデータ通信ネットワーク１６に電気的に接続される様々なセンサもしくは機器および少なくとも１つのサブスクライバユニット１４を有する。各ＲＩＵ１２は、データ通信ネットワーク１６にデータまたはデータフレームを提供することができ、各サブスクライバユニット１４は、生データの少なくともいくつかに基づいてメッセージを消費することができる。サブスクライバユニット１４は、例えば、付加的なアビオニクスシステム、プロセッサ、ディスプレイ、または冗長検証システムを含むことができる。ＲＩＵ１２およびサブスクライバユニット１４は異なるデータ伝送速度でデータを提供し消費することができ、それはデータ通信ネットワークによって効果的に管理される。付加的なＲＩＵ１２および／もしくはサブスクライバユニット１４、またはユニット１２、１４の設置が想定される。本発明の一実施形態を航空機環境で示しているが、本発明はそのように限定されず、例えば他のモバイル用途および非モバイル産業用途、商業用途、ならびに住宅用途などの非航空機用途のデータ通信ネットワークに一般的に適用されることが理解されるであろう。
【００１２】
図２は、アビオニクス・データ・サーバー（ＡＤＳ）１８を含むデータ通信ネットワークのハイレベルブロック図を示す。ＡＤＳ１８は、共通入口インターフェース２２に接続される複数の物理ＲＩＵ２０と、入口ポートスケジューラ２４と、ディスクリプタ参照テーブル（ＤＬＴ）２６、ポリサー２７、およびディスクリプタ・マルチキャスト・ディストリビュータ（ＤＭＤ）２９を有するフレーム・ディスクリプタ・マネージャ（ＦＤＭ）２５と、中央データサーバー（ＣＤＳ）２８と、パラメトリック・メッセージ・コンストラクタ（ＰＭＣ）３１を有する出口パラメトリック・メッセージ・スケジューラ（ＰＭＳ）３０と、共通出口インターフェース３４に接続される複数の物理サブスクライバユニット３２と、複数の仮想リンク３６と、を含む。
【００１３】
各ＲＩＵ２０は、１つのデータ結合３８および少なくとも１つのデータキュー４０を介して共通入口インターフェース２２に接続され、物理入口ポート４２を定義する。データ結合３８は、物理コネクタからデータフレームを受信する能力を有することができ、例えば、イーサネット(登録商標）ポートなどの物理コネクタ、ならびに／あるいは、メディア・アクセス制御（ＭＡＣ）もしくはインターネットプロトコル（ＩＰ）ルーティングなどのソフトウェアまたはプロトコルレイヤ互換性、あるいはシリアルインターフェースを含むことができる。集合的に、物理入口ポート４２は、入口物理インターフェース４４を定義する。限られた数の物理入口ポート４２を示しているが、任意の数があり得ることを想定できる。一実施例では４８個の入口ポート４２を含み、例えば、最初の１６個のポート４２はイーサネット(登録商標）ポート４２であってもよく、残りの３２個のポートはＡＲＩＮＣ４２９インターフェースのためにある。代替的な数のポートが想定され、同様に２つ以上のインターフェースの分割も想定される。ＡＤＳ１８は、複数の物理ＲＩＵ２０ならびに仮想リンク３６データプロトコル、例えば、イーサネット(登録商標）、ＩＥＥＥ８０２．３、ＡＲＩＮＣ６６４パート７（Ａ６６４ｐ７）、ＣＡＮバス、ＡＲＩＮＣ４２９（Ａ４２９）、ＡＲＩＮＣ６６１、および他の従来のプロトコルなどとインターフェースすることができる。インターフェースするプロトコルは、物理インターフェースを有してもよいし、または有さなくてもよく、例えば、ブルートゥースまたはＷｉＦｉなどの無線技術を含んでもよいことが想定される。
【００１４】
共通入口インターフェース２２は、少なくとも１つの仮想入口ポート４６に、さらに接続することができ、ポート４６は、データキュー４０を介して、インターフェース２２に少なくともいくつかの生データを提供する。集合的に、仮想入口ポート４６は入口仮想インターフェース４８を定義する。各物理および／または仮想入口ポート４２、４６は、共通入口インターフェース２２に少なくともいくつかの生データを提供することができる。
【００１５】
入口ポートスケジューラ２４は、共通入口インターフェース２２から入力を受け取り、ＦＤＭ２５およびＣＤＳ２８に出力を提供し、到着時刻（ＴｏＡ）レコーダ５０および入口ポートコンセントレータ５２をさらに含んでもよい。ポリサー２７は、ＦＤＭ２５の動作をモニターし、および／またはそれに影響を及ぼすことができる。ＤＭＤ２９は、一組の出口ポートごとのディスクリプタ・キュー４３に出力接続を提供することができ、それは先入れ先出し（ＦＩＦＯ）構成で動作する。同じメッセージが２つ以上の物理サブスクライバユニット３２に送信される場合には、ＤＭＤ２９は出口ポートごとのディスクリプタ・キュー４３の２つ以上に同じディスクリプタを書き込むことができる。各出口ポートごとのディスクリプタ・キュー４３は、キュー・フルネス・インターフェース７０にさらに接続される。
【００１６】
ＣＤＳ２８は、少なくとも１つの循環バッファ５４、現在値テーブル（ＣＶＴ）５６、およびパラメトリック・メッセージ・テーブル５８を格納するためのメモリを含む。例えば、ＣＤＳ２８メモリは、ハードディスクドライブ、固体状態ドライブ、クワッドデータレート（ＱＤＲ）メモリ、または冗長性のために配置される複数の記憶素子を含むことができる。図示する実施形態では、ＣＤＳ２８は３つの循環バッファ５４を含み、それぞれ動作するデータレートによって定義される。例えば、１０メガビット／秒（Ｍｂｐｓ）の循環バッファ６０、１００Ｍｂｐｓの循環バッファ６２、および１ギガビット／秒（Ｇｂｐｓ）の循環バッファ６４である。各循環バッファ５４では、最も古い格納データは、入口ポートスケジューラ２４によって出力から到着する最新データで上書きされる。
【００１７】
各物理サブスクライバユニット３２は、１つのデータ結合３８および例えば一組の出口ポートごとのデータ・メッセージ・キュー４１などの少なくとも１つのデータキューを介して、共通出口インターフェース３４に接続され、物理出口ポート６６を定義する。集合的に、物理出口ポート６６は、出口物理インターフェース６８を定義する。各物理出口ポート６６の各出口ポート当たりデータ・メッセージ・キュー４１は、キュー・フルネス・インターフェース７０にさらに接続される。共通出口インターフェース３４は、少なくとも１つの仮想出口ポート７２にさらに接続されてもよく、ポート７２はインターフェース３４からデータキュー４０を介してメッセージを受け取る。集合的に、仮想出口ポート７２は、出口仮想インターフェース７４を定義する。各物理出口ポート６６は、１つのデータ・メッセージ・キュー４１と関係することができるが、任意の数の出口ポート当たりデータ・ディスクリプタ・キュー４３と関係し得ることが想定される。例えば、図示する実施形態では、１つのデータキュー４１および物理出口ポート６６、７２当たり４つのディスクリプタ・キュー４３を有する。
【００１８】
出口パラメトリック・メッセージ・スケジューラ（ＰＭＳ）３０は、出口アービタ、例えばルールベースのスケジューラ７６をさらに含んでもよく、それは、ＤＭＤ２９により提供されるディスクリプタを、出口ポートごとのディスクリプタ・キュー４３のうちのどれから受け取るかを決定するために、キュー・フルネス・インターフェース７０を用いることができる。そのディスクリプタは、ＣＤＳ２８からの指定されたデータフレームを読み込んで検証するために用いられる。フレームがそのように検証された場合には、ＰＭＳ３０は、ＣＤＳ２８から、共通出口インターフェース３４を通して、ディスクリプタが受け取られる出口ポート当たりディスクリプタ・キュー４３と関係する物理出口ポート６６へ出力をさらに提供することができる。
【００１９】
出口パラメトリック・メッセージ・スケジューラ（ＰＭＳ）３０は、パラメトリック・メッセージ・コンストラクタ（ＰＭＣ）３１をさらに含むことができ、それは、サブスクライバユニット３２および／または出口ポート６６、７２による消費のためのメッセージの構造を生成するために、パラメトリック・メッセージ・テーブル５８の内容、ならびにＣＶＴ５６および／または循環バッファ５４に含まれるデータ値（例えば、それがＡ４２９のマルチワードメッセージを含む場合）を用いることができる。
【００２０】
ＰＭＳ３０、ルールベースのスケジューラ７６、および／またはＰＭＣ３１は、例えば、ネットワーク上の汎用コンピュータ上で動作する実行可能プログラム、または特定目的のコンピュータ上で動作する実行可能プログラムを含むことができる。あるいは、ＰＭＳ３０、ルールベースのスケジューラ７６、および／またはＰＭＣ３１は、ハードコードされた機能ロジックデバイスを含んでもよい。ルールベースのスケジューラ７６は、出口ポートごとのディスクリプタ・キュー４３およびキュー・フルネス・インターフェース７０からの入力を受け取って、ＰＭＳ３０がＣＤＳ２８から共通出口インターフェース３４へのメッセージを選択し検証することを可能にすることができる。あるいは、ＰＭＳ３０および／またはＰＭＣ３１は、共通出口インターフェース３４へのメッセージ出力を構築するために、ＣＶＴ５６および／または循環バッファ５４からのどのデータ値を用いることができるかを選択するために、パラメトリック・メッセージ・テーブル５８を用いることができる。出口ポートごとのディスクリプタ・キュー４３はＰＭＳ３０から分離して示しているが、キュー４３がＰＭＳ３０および／またはルールベースのスケジューラ７６の中に含まれ得る実施形態が想定される。
【００２１】
仮想リンク３６は、ＡＤＳ１８の付加的なローカルまたはリモート構成要素をさらに含むことができ、それによって、少なくとも１つのデータキュー４０および仮想リンク３６を通って、仮想出口インターフェース７４からメッセージを送信することができ、入口仮想インターフェース４８がそれを受け取ることができる。図示する例示的仮想リンク３６は、メッセージ上の処理または計算機能を実行することができる少なくとも１つの分散プロセッサ７８、内容（例えば、ＡＲＩＮＣ６６１ウィジェットを用いる）をアビオニクス・ディスプレイに提供することができるグラフィクスレンダラ８０、従来の航空機システムとインターフェースするための仮想エンドシステム８２、冗長記憶用のネットワーク・マスストレージ・メモリ８４、またはＰＭＳ３０から１つまたは複数の出口ポート６８へメッセージを送信するためのメッセージ・ループバック・ポート８６を含む。仮想リンク３６が仮想リンクＩＤ（ＶＬｉｄ）を用いてさらに識別され得ることが想定される。
【００２２】
ＡＤＳ１８は、生のデータ値の任意のソースを航空機１０上の任意の送信先またはサブスクライバユニット３２に配信する必要性をサポートするために、スイッチング機能をサポートするように動作する。本発明の実施形態は、例えば、ＡＤＳ１８を通過する利点が全くない特定の二地点間フローが存在するので、全ての生のデータフローはＡＤＳ１８を通過しなければならないという要件を課さなくてもよいことが想定される。しかし、例えば、スイッチング機能、変換、インターワーキング、処理、同期、トラフィックシェーピング、ポリシング、マルチキャスティングなどを必要とする可能性がある全ての生のデータフローは、ＡＤＳ１８が提供する機能から利益を得ることができる。さらに、付加的なスイッチング能力、冗長安全対策、検証と確認のための記憶デバイスまたは別のＡＤＳ１８を介したデータミラーリング、または分散処理を提供するために、２つ以上のＡＤＳ１８を、同じ航空機１０またはデータ通信ネットワーク１６に設けることができる。
【００２３】
各物理出口ポート６６は、ルールベースのアービタ７６によって解釈されるメッセージの優先順位に基づいて、パラメトリック・メッセージ・スケジューラ３０によって消費されるディスクリプタに複数の経路を提供するように、複数の出口ポートごとのディスクリプタ・キュー４３を用いて構成できることが想定される。各物理出口ポート６６は、任意の数の出口ポートごとのディスクリプタ・キュー４３に対応することができることが想定される。例えば、図示する実施形態は４つのキュー４３を有する。出口ポートごとのディスクリプタ・キューは、ただ１つの物理出口ポート６６または仮想出口ポート７２だけに役立つことがさらに想定される。
【００２４】
各ディスクリプタ・キュー４３および各出口データキュー４１は、キュー４１、４３がどのくらい一杯かを表す信号をキュー・フルネス・インターフェース７０に対して送信するように構成され、キュー・フルネス・インターフェース７０は、次のディスクリプタがどの出口ポートごとのディスクリプタ・キュー４３から受け取られるかを選択するために、ルールベースのアービタ７６およびパラメトリック・メッセージ・スケジューラ３０によって用いられる。
【００２５】
ＡＤＳ１８の動作を説明する前に、ＡＤＳ１８の全体にわたって用いられるデータについて簡単に議論することは、データ通信ネットワーク１６の動作を理解するのを助けるであろう。まず最初に、ＲＩＵ２０はＡＤＳ１８にデータフレームを提供することができ、データフレームは少なくとも識別子および対応する生データを有する。入口物理インターフェース２２および／または入口ポートスケジューラ２４の少なくとも１つは、受け取ったデータフレームを解析して、識別子もしくは解析されたディスクリプタ、および解析された対応する生データを得る。解析されたディスクリプタは、ＡＤＳ１８によってさらに更新することができ、例えば、解析された生データがペイロードを含む場合に、データをどこに送信するべきか、または、データがどこから送信されているかという生データの目的を識別し記述するために用いられる。ＡＤＳ１８は、生データの場所を識別するためにディスクリプタを後で用いて、出口ポート６６、７２による消費のために、ディスクリプタおよび／または生データを操作可能なデータまたはメッセージに構築または計算することができる。
【００２６】
一実施例では、ＡＤＳ１８の動作は、非同期で接続されたＲＩＵ２０からデータフレームを受け取り、ＣＶＴ５６または循環バッファ５４などのＣＤＳ２８メモリに生データを格納し、格納されたデータフレームからメッセージを形成し、形成されたメッセージを少なくとも１つのサブスクライバユニット３２に送ることができる。さらに、パラメトリック・コンストラクタ３１によって構築されるフレームがフレームスイッチングのための入口ポートに現れる手段として役立つダイレクト・ループバック能力があってもよい。ＡＤＳ１８の個々の部分およびＡＤＳ１８の動作について詳述する。
【００２７】
入口物理インターフェース機能
最初に、データが１つまたは複数の物理インターフェースポート４２のＲＩＵ２０から共通入口インターフェース２２に提供される。入口物理インターフェース４４は、例えばデータ結合３８の一部として、特定の物理入口ポート４２によって提供されたデータまたはアナログ信号をデータストリームまたはデータフレームに変換することができる構成要素を含むことができ、データストリームまたはデータフレームはＦＩＦＯ入口データキュー４０に格納される。この例では、データ結合３８は、以下の入口機能を実行することができる。不正なワード／フレーム／データを除去すること、非ＩＰデータフレーム（例えば、ペイロードタイプ／０ｘ０８００に等しくないフィールド長）を除去することを可能にすること、データの最初のバイトの到着時刻にタイムタグを付けること、および、次の移送および処理までデータフレームを待ち行列に入れることである。データフレームが入口ポート４２、４６のキュー４０に入ると生成され得るいくつかの出力は、データフレームがその指定された入口ポート４２、４６だけに入ることを強化するための到着ポート（ＰｏＡ）、最初のワードの到着時刻（ＴｏＡ）、完了したフレームのＴｏＡのための１ビットパルス（後述する入口ポートスケジューラ２４のＴｏＡレコーダ５０のための）、フレームが読み込まれた際にフレームを図示するためのフレーム・スタートおよびフレーム・エンド・インジケータ、ならびに、バイト数で表したフレーム長である。
【００２８】
例えば、ＲＩＵ２０に対する外部インターフェースのためにイーサネット(登録商標）パラダイムを用いて、各物理入口ポート４２のデータ結合３８は、メディア・アクセス・コントローラ（ＭＡＣ）の受信部に似ており、それは上記のパラメータを生成し格納し回収する補助的ロジックを有し、１つまたは複数のキュー４０、例えばデータＦＩＦＯキュー４０およびフレーム・ディスクリプタＦＩＦＯキュー４０に接続される。
【００２９】
入口ポートは、外部の入口物理インターフェース４４と関係するものだけでなく、内部のまたは入口仮想インターフェース４８からも構成されることが想定される。それらは、例えばインターワーキング（例えば、仮想エンドシステム８２、パラメトリック・メッセージ・コンストラクタ３１）、分散プロセッサ７８、およびグラフィクスレンダラ８０などの仮想リンク３６の出力と関係するものなどである。
【００３０】
健康状態を監視するために、ポートごとの統計は、入口物理インターフェース４４またはデータ結合３８によって維持することができる。これらは、受け取ったフレーム数、例えば巡回冗長検査（ＣＲＣ）誤差により廃棄されたフレーム数、廃棄された小さい（＜６４バイト）フレーム数、および／または、ポートに許容された最大フレームサイズを越えて廃棄されたフレーム数を含むことができる。同様に、入力ポートスケジューラ２４によってＦＤＭ２５に提供される特定のフローインデックスと関係する通過したまたは廃棄されたフレームを示すポリサー２７によって、統計を維持することができる。
【００３１】
入口スケジューラ
入口ポートスケジューラ２４は、入口物理および／または仮想インターフェース４４、４８から受け取った生データを、完了したデータフレームの到着までＦＩＦＯの順序に構成する。この意味で、ＡＤＳ１８のスイッチング部分は蓄積転送設計であってもよく、そのようにして様々なサイズの大きなデータフレームは異なる入口ポート４２、４６に到着した後にＣＤＳ２８などの中央メモリに隣接して格納することができる。ＡＤＳ１８は、ＣＤＳ２８、ＣＶＴ５６、ＰＭＳ３０、および／もしくはサブスクライバユニット３２、またはデータ通信ネットワーク１６の複数のＡＤＳ１８を含む様々な航空機の構成要素にわたって同期してもよく、あるいは同期しなくてもよいマスター時間を提供することが想定される。入口ポートスケジューラ２４は、フレーム・ディスクリプタ管理（ＦＤＭ）機能を任意に制御することもでき、例えば、データフレームを、識別子を含む分離した部分、またはディスクリプタ、および対応する生データに解析することができる。
【００３２】
到着時刻レコーダ
また、入口スケジューラの動作は、ＴｏＡレコーダ５０および１つまたは複数の入口ポートコンセントレータ５２を含んでもよい。ＴｏＡレコーダ５０は、ＡＤＳ１８のマスター時間信号に基づいて、どの入口ポート４２、４６のデータフレームが次に格納されるかを決定する。入口ポートコンセントレータ５２は、２つのＣＤＳ２８送信先のうちの少なくとも１つ、すなわち潜在的に多くの循環バッファ５４（キューイング型データの場合）またはサンプリング型データ（後述する）の場合のＣＶＴ５６のうちの１つに対して、到着するデータフレームまたはＡ４２９ワードを送る。
【００３３】
例えば、データフレームまたはＡ４２９ワードがその物理入口ポート４２のデータキュー４０に完全に到着したときはいつでも、データフレームの完了時刻を記録するために、入口スケジューラ２４のＴｏＡレコーダ５０に１ビットパルスを送ることができる。前に到着したデータフレームが他のポート４２、４６のデータキュー４０の外に転送されている間に、いくつかの短い生のデータフレームが任意の所与のポート４２、４６に到着することができる。このために、ＴｏＡレコーダ５０は、例えば、ポート４２、４６ごとのデータフレームについてちょうど１ビットを用いることができるが、それは全てのポート４２、４６上の相対的な完了時刻の組合せを正確に表すことが想定される。そのビットは１クロックサイクルの間のポート４２、４６のいずれかのフレームの到着完了を集合的に表し、到着ワード時刻（ＴＡＷ）に構成することができる。
【００３４】
データフレームまたはＡ４２９ワードが入口ポート４２、４６に到着を完了するたびに、それはその入力ポート４２、４６専用の線を切り換えて、ＴＡＷの１ビットをセットすることができる。同様に、１クロックサイクルの間の任意の完了した到着によって、ＴＡＷ全体がＴｏＡレコーダ５０に書き込まれ、到着するＴＡＷ値をＦＩＦＯの順序に構成する。１クロックサイクルの間に新規なデータフレームまたはＡ４２９ワードの完了がない場合には、ＴＡＷがＴｏＡレコーダ５０に書き込まれることはない。あるいは、データフレームまたはＡ４２９ワードが同じクロックサイクルの間に同時に複数のポートに到着を完了した場合には、ＴｏＡレコーダ５０に書き込まれるＴＡＷの２つ以上のビットをセットすることができる。
【００３５】
入口ポートコンセントレータ５２は、どのデータフレームまたはＡ４２９ワードが最初に到着を完了したかを決定するために、ＴｏＡレコーダ５０の出力で利用可能な最も古いＴＡＷワードを受け取る。このように、入口ポートコンセントレータ５２は、次にどの入口ポート４２、４６のデータフレームを処理してＣＤＳ２８へ転送するかを決定するポートセレクタとして働く。１クロックサイクルの分解能の範囲内でフレームまたはワードが異なるポートに同時に到着を完了し、ＴｏＡレコーダ５０から受け取るＴＡＷがセットされた複数のビットを有することがあり得る。その場合には、入口スケジューラ２４は、ＴｏＡレコーダ５０の出力から次のＴＡＷワードを受け取る前に、データフレームが同時に到着を完了した全てのポートに、例えばラウンドロビン順序でサービスを提供する。この動作は、データ到着レートおよび／またはデータフレームサイズに関係なく、全ての入口ポート４２、４６に対してデータレートの公平性を保証することができる。
【００３６】
入口ポートコンセントレータ
入口ポートスケジューラ２４のための３つの入口ポートコンセントレータ５２があってもよい。例えば、１つの入口ポートコンセントレータ５２は、ＤＬＴ２６およびポリサー２７に提供される格納情報およびフロー識別子と共に１つまたは複数の循環バッファ５４に書き込むための、解析されたイーサネット(登録商標）フレームまたは生データを集中させる。そして、ＰＭＳ３０によってそうする予定である場合に、それは結果としてＤＭＤ２９によりディスクリプタ・キュー４３に書き込まれ、ルールベースのスケジューラ７６によりサービスされるディスクリプタとなる。
【００３７】
第２のコンセントレータ５２は、ＰＭＳ３０および／またはＰＭＣ３１が後で利用するために、イーサネット(登録商標）フレーム、生データ、および／またはＡ４２９ワードをＣＶＴ５６に集中させることができる。第３のコンセントレータ５２は、生データのサンプルの時間順および／またはＡ４２９ワードの順序を保存するために、ＦＩＦＯとして構成される１つまたは複数の循環バッファ５４に、生データおよび／またはＡ４２９ワード（例えば、マルチワードメッセージを運ぶもの）を集中させることができる。これらは、本明細書ではＡ４２９出力キューと呼ぶ。
【００３８】
一旦、特定の入口ポートがＴｏＡレコーダ５０によってサービスのために選択されると、入口ポートコンセントレータ５２は、選択された入口ポート４２、４６からＣＤＳ２８のＣＶＴ５６もしくは循環バッファ５４、および／またはＦＤＭ２５の少なくとも１つへの解析された生データの転送を調整する。
【００３９】
フレーム・ディスクリプタ・マネージャ
入口物理インターフェース４４の機能によって生成されたフレームヘッダ、フレーム長、ＴｏＡ、およびＰｏＡは、データフレームのためのディスクリプタを生成し、出口ポートごとのディスクリプタ・キュー４３のセットにそのディスクリプタを一斉送信するために、ＦＤＭ２５によって用いられる。また、ＦＤＭ２５は、フレームヘッドポインタ（ＨＯＦポインタ、解析されたデータのアドレスを識別するため）およびＣＤＳ２８に書き込まれる各イーサネット(登録商標）フレームまたはＡ４２９ワードのフレーム格納時刻（ＴｏＦＳ、解析されたデータがどのくらい長く許容され格納され得るかを識別するため、）を受け取ることができる。ディスクリプタ配信のためにＤＭＤ２９によって用いられる２つの異なるルーティング経路があり、１つはイーサネット(登録商標）フレーム用であり、１つはＡ４２９データワード用である。さらに、これらの経路の各々について異なるディスクリプタがある。
【００４０】
フレーム・ディスクリプタ・マネージャＦＤＭは、データ経路参照テーブル（ＤＬＴ）２６、ポリサー２７、および同じディスクリプタが複数の出口ポートごとのディスクリプタ・キュー４３に書き込まれることを可能にするディスクリプタ・マルチキャスト・ディストリビュータ（ＤＭＤ）２９から構成される。ＤＭＤ２９は、ディスクリプタがどの出口ポートごとのディスクリプタ・キュー４３に書き込まれるかを識別するＤＬＴ２６によるビット出力の集まりによって制御される。
【００４１】
入口参照テーブル
入口参照テーブルは、入口ポートスケジューラ２４に組み込むことができ、データフローを識別し、入口ポート４２、４６の一方で生じる各フローにユニークなインデックスを割り当てるために用いることができる。このインデックスは、様々なデータ経路の記憶および管理機能のためのフロー識別子として役立つ。例えば、このインデックスは、ＤＭＤ２９がどのキュー４３にフレーム・ディスクリプタを格納することができるかを示すポリシングパラメータおよびルーティングビットを検索するためのＤＬＴ２６のキーとして役立つ。また、このインデックスは、フレームデータをＣＤＳ２８のどこに格納するかというアドレスを検索するためにも用いられる。例えば、循環バッファ５４の最後のオフセットアドレスを検索し格納するために用いることができる。入口参照テーブルは、ランダムアクセスメモリ、ハッシングロジックおよびメモリ、または内容アドレス可能メモリ（ＣＡＭ）を含むことができ、これらの出力（フローインデックスまたはキー）は、検索されるデータフレームのポート番号および選択されたビットで決定される。例えば、物理イーサネット(登録商標）ポートごとに基づいて、ＵＤＰ／ＩＰ／ＭＡＣヘッダのどのビットがデータフローの型を識別するかを示すために、構成オプションを提供することができる。あるいは、ＡＲＩＮＣ４２９データフローは、ＡＲＩＮＣ４２９ワードの８ビットラベルと連結された、入って来るＡＲＩＮＣ４２９物理ポート番号によって識別することができる。
【００４２】
このフローインデックスは、偽装またはデータ破壊に対してフェイルセーフ保護を提供することもできる。例えば、ＤＬＴ２６の出力は、フレームの予想到着ポート（ＥＰｏＡ）を示すフィールドを含むことができる。入口物理インターフェース４４によって報告されるように、そのフレームが到着した実際のポート番号に対して、チェックを行うことができる。それらが一致しない場合には、フレームを廃棄することができる。
【００４３】
ＡＲＩＮＣ４２９インターフェースについては、Ａ４２９タグおよびポート番号は、連結されて、出力がフローインデックスであり得る分離した参照テーブルにアクセスするために用いられる。
【００４４】
フローインデックスを用いて、生データフレームの内容を書き込めるように、開始ロケーションおよびフレーム長がＣＤＳ２８の書き込み機能に提供され、適切な数のＣＤＳ２８ロケーションについて正しいベースアドレスで開始する。
【００４５】
フロー識別子は、ＤＬＴ２６に格納されるルーティング、ポリシング、および記憶パラメータテーブルをアドレスする。このＤＬＴ２６の出力ビットフィールドは、データソースおよびそれがどこに格納されるかに応じて、異なる解釈を有することができる。イーサネット(登録商標）フレームは、循環バッファ５４またはＣＤＳ２８のＣＶＴ５６領域に格納することができる。Ａ４２９データワードは、ＣＶＴ５６に格納されてもよいし、あるいは４８個の出口Ａ４２９キューのうちの１つに直接送られてもよいし、あるいは両方であってもよい。送信先サブスクライバユニット３２が、連続するＡ４２９メッセージの一時的エイリアス作成を防止するための方法、または同じＡ４２９メッセージに属する複製されたワードをフィルタリングする方法を有しない場合には、Ａ４２９マルチワードメッセージをＣＶＴ５６に格納することができない。
【００４６】
一実施例では、フローインデックスによって選択されるＤＬＴ２６の出力は、以下の任意の組合せを含むことができる。このベースアドレスがＣＶＴ５６ロケーションを指すかどうかを示すための１ビットを加えたＣＤＳ２８バッファベースアドレス、循環バッファ５４のＩＤ、循環バッファ５４のサイズ、仮想リンク（ＶＬ；例えば仮想出口ポート７２）アカウント識別子（ＶＬａｃｃｔＩＤ）、データがその指定された入口ポートだけに入るようにするための予想ＰｏＡ（ＥＰｏＡ）、これがＡＲＩＮＣ４２９ワードディスクリプタであるかどうかを示す１ビットフィールド、どの出口ポート６６、７２がフレームを受け取るかを示すポート・マスク・ビット・ベクトル、ディスクリプタが書き込まれる出口ポートごとのディスクリプタ・キュー４３の優先順位を示すビットフィールド、フレームベースのポリシングのためのＡ６６４ｐ７バンド幅アロケーションギャップ（ＢＡＧ）、ポリシング廃棄ビットおよびポリシング・バイパス・ビット、および、前述のＣＶＴロケーションビットの値に応じて最大フレーム長（Ｓｍａｘ）またはＣＶＴ５６フレーム長をフレームベースでポリシングするためのジッタ許容範囲（ＪｉｔｔｅｒＴ）である。
【００４７】
ＣＤＳ２８の書き込み制御機能は、２つのタイプの書き込み動作、すなわちＣＶＴ５６の書き込み動作および循環バッファ５４の書き込み動作をサポートする。ＤＬＴ２６の出力は、ベースアドレスフィールドの値がＣＶＴ５６ロケーションであるかどうか（例えば、ＣＶＴロケーションビット＝１であるか）を示すためのＣＶＴロケーションビットを有する。ＣＶＴ５６の書き込み動作を示す任意の所与のフローインデックスについて、ＣＶＴ５６に書き込まれるフレームは常に同一サイズでなければならない。また、ＣＶＴ５６は、Ｓｍａｘフィールドの値がＣＶＴ５６フレームの固定長であるか、あるいは可変長フレームの最大フレームサイズ（Ｓｍａｘ）であるかを表し、非ＣＶＴ５６フレームの場合には、ポリサー２７によってそれが行われる。ＣＶＴ５６フレームについては、物理インターフェース機能によって計算されたフレームサイズがＳｍａｘフィールドの値と正確に一致しない場合には、ＣＶＴ５６フレームを廃棄することができる。同様に、非ＣＶＴ５６フレームについては、フレーム長がＳｍａｘより大きい場合には、フレームを廃棄することができる。
【００４８】
ＣＶＴ５６の書き込み動作の場合には、フレームのロケーションおよび長さは、予め定められているか、または変化しない。直近に受け取ったフレームの値は、以前に受け取ったフレームの値を単に上書きする。ＤＬＴ２６の出力は、ＣＶＴ５６に書き込まれるフレームのベースアドレスおよび長さを直接提供する。データがＣＶＴ５６メモリに書き込まれるかどうか、すなわち、入口ポートスケジューラ２４の入口参照テーブルによって決定されたフローインデックスが、所与の物理入口ポート４２に到着できるかどうかは、そのＰｏＡによって決定されるかまたはポリシングされる。物理入口ポート４２の無許可のフローは、それがＣＶＴ５６に書き込まれることを防止することによって、ＣＶＴ５６メモリを損なうことができない。さらにまた、上記のように、入口物理インターフェース４４によって計算されたフレーム長がＳｍａｘフィールドと一致しない場合には、フレームを廃棄することができる。
【００４９】
他のＡＤＳ１８が同一データを格納またはミラーリングすることができるように、ＣＶＴ５６に書き込まれるサンプリングポートデータを含むイーサネット(登録商標）フレームをミラーリングすることができる点に留意されたい。このミラーリングは、例えば、別のＡＤＳ１８に接続される物理出口ポート６６にメッセージを提供することによって達成することができる。あるいは、データミラーリングは集中化したデータ記憶デバイスを用いて達成することができ、例えば、それは仮想入口または出口ポート４６、７２として全てのＡＤＳ１８にアクセスすることができる。これの一例は、仮想リンク３６のネットワーク・マスストレージ８４として示す。また、Ａ４２９ワードをＣＶＴ５６ロケーションに格納して、それらをＡ４２９出力キュー４１の１つまたは複数に書き込むこともできる。しかし、入口Ａ４２９リンクの１つに到着するＡ４２９ワードは、ＰＭＣ３１（後述する）を用いるイーサネット(登録商標）フレームにそれが最初にパックされない限り、イーサネット(登録商標）ポートを出ることができない。
【００５０】
ＤＬＴ２６の出力が、書き込み動作が循環バッファ５４の書き込み動作であることを示す場合には（例えば、ＣＶＴロケーションビット＝０である場合には非ＣＶＴ５６フレームを示す）、次の利用可能な循環バッファ５４のメモリロケーションに、そのフレームを書き込むことができる。そのメモリロケーションは、例えば、ＤＬＴ２６の出力のフィールドから取得される循環ベースアドレス、および入口ポートスケジューラ２４によって維持される循環バッファオフセットテーブルによって決定される。ベースアドレスおよびオフセットアドレスは、循環バッファ５４内に書き込まれる次のロケーションを追跡するために用いることができる。
【００５１】
各循環バッファ５４のベースアドレスは、ＤＬＴ２６の出力のメモリベースアドレスフィールドによって決定される。ＤＬＴ２６の出力の別のフィールドは、循環バッファのサイズを示す。循環バッファ５４に書き込まれる任意のデータワードのアドレスは、循環バッファ５４のベースアドレスおよび循環バッファオフセットの和である。循環バッファオフセットは、各ワードが書き込まれた後、循環バッファ５４のサイズを剰余としてインクリメントされるが、循環バッファのベースアドレスは固定されたままである。データフレームの最後のワードまたはＡ４２９ワードが循環バッファ５４に書き込まれた後、次のロケーションのオフセットアドレスは、フローインデックスによって示される循環バッファオフセットテーブル内のロケーションに記録され、同じ循環バッファ５４に書き込まれる次のフレームの開始オフセットとして利用可能になる。
【００５２】
本発明の実施形態は限定されないが、図示する実施形態は、２５６個の深さ８Ｋの循環バッファを有することができる。例えば、これは循環バッファ５４を物理入口および／または出口ポート４２、６６ごとに構築することを可能にできる。代わりの例として、循環バッファ５４をフローインデックスごとに構築することができる。さらに別の例として、各循環バッファ５４は、仮想出力ポートまたは仮想トランクの集まりを表すことができる。「トランク」は、仮想ポートの出口セットと関係する。これらの仮想ポートは、物理出口ポート６６または仮想出力ポート７２の任意のセットにマップすることができる。例えば、同じＡＲＩＮＣ６５３（Ａ６５３）アビオニクス・アプリケーション、例えば大気データを処理するアプリケーションは、利用可能性の理由により複数のライン交換可能ユニット（ＬＲＵ）にあってもよい。これらは、ＡＤＳ１８の異なる物理出口ポート６６に接続することができる。しかし、アプリケーションの事例の全ては、単一のトランクグループを形成するように構成することができ、そのようにして、そのデータおよびバンド幅要件を他のＡ６５３アプリケーションから完全に分離するためにそれらが同じ循環バッファ５４を共有することができる。このように、粒状度のこのレベルは、循環バッファ５４が（分散された）Ａ６５３アプリケーションごとに割り当てられることを可能にする。
【００５３】
データが循環バッファ５４に書き込まれるたびに、ディスクリプタ・マルチキャスト配信機能はディスクリプタを複製し、それはバッファ５４の関連するデータフレームの記憶のロケーションを示す。さらに、ルールベースのスケジューラ７６および／またはＰＭＳ３０は、そうするように供給される場合には、各物理出口ポート６６がフレームのコピーを受け取ることを確実にする出口スケジューリング機能を操作することができる。
【００５４】
図示する構成では、ちょうど３つの循環バッファ５４が用いられる。これらは、同じデータレートを有する物理出口ポート５５またはサブスクライバユニット３２を共通の循環バッファ５４と関係づけることによって、割り当てられる。これは、Ａ６６４ｐ７キューイング型データフレームのための中央バッファの最も効率的な（共用メモリ）利用を提供する。この構成では、全ての１０Ｍｂｐｓの物理出口ポート６６は、１つのトランクグループ（１０Ｍｂｐｓの循環バッファ６０）を形成することができ、全ての１００Ｍｂｐｓの物理出口ポート６６は、別のトランクグループ（１００Ｍｂｐｓの循環バッファ６２）を形成することができ、全ての１０００Ｍｂｐｓ（１Ｇｂｐｓ）の物理出口ポートは、トランクグループ（１Ｇｂｐｓの循環バッファ６４）を形成することができる。３つの循環バッファ６０、６２、６４があるが、そして、データフレームが異なるデータレートを有する物理出口ポート６６に送られてもよいが、ＣＤＳ２８はフレームの１つのコピーを格納するだけである。フレームが書き込まれる循環バッファ６０、６２、６４は、そのフレームが複製される最も遅い物理出口ポート６６のデータレートに対応する。単純にするために、この文書の残りでは、同じ出口データレート、すなわち、１０Ｍｂｐｓ６０、１００Ｍｂｐｓ６２、または１Ｇｂｐｓ６４を有する物理出口ポート６６のセットごとに循環バッファ５４があると仮定する。
【００５５】
ポリシング機能
ポリシング機能は、ステートマシンによって制御されるＦＤＭ２５の特定目的のハードウェアロジックパイプラインであり得るポリサー２７によって実行される。ポリサー２７の機能は、着信データがＡ４２９データワードであるか、イーサネット(登録商標）フレームであるかによって異なる。ポリサー２７は、イーサネット(登録商標）・フレーム・ディスクリプタをディスクリプタ・マルチキャスト・ディストリビュータ２９に送ることができるか、および着信データをＣＶＴ５６またはＣＤＳ２８の循環バッファ５４の領域のいずれかに格納することができるかどうかを決定する。定義によれば、ＡＲＩＮＣ４２９フレームは、ディスクリプタ・マルチキャスト・ディストリビュータ２９のためのイーサネット(登録商標）・フレーム・ディスクリプタを生成しない。この例では、入口ポートスケジューラ２４は、分離したディスクリプタをＣＤＳ２８を回避する分離したデータ経路に提供することができる。別の事例では、ポリサー２７は、Ａ４２９データワードをＣＶＴ５６に格納することができるかどうかを決定することができる。
【００５６】
ＣＶＴ５６に格納されるように供給されるデータフレームについては、フレーム長が供給されたフレーム長に等しくない場合には、フレームは廃棄される。ＢＡＧまたはジッタ許容範囲ポリシングは、実施する必要がない。
【００５７】
循環バッファ５４に格納されポリシングされるように供給されるデータフレームについては、ポリサー２７は、ＢＡＧおよびジッタ許容範囲制約条件を実施するためのそのＶＬａｃｃｔＩＤを有する先行フレームの到着時間を決定するために、ＤＬＴ２６のＶＬａｃｃｔＩＤを用いる２次的な参照を実行する。フレームのＥＰｏＡがＰｏＡと一致しない場合、またはフレーム長が仮想リンク（ＶＬ）に供給される最大フレーム長Ｓｍａｘを超える場合、またはＢＡＧ／ジッタ違反がある場合には、ポリサー２７は、現在のフレーム・ディスクリプタのマルチキャスト配信を無効にすることができて、ＣＤＳ２８にフレームに書き込むことを先取りすることができる。
【００５８】
ポリサー２７のフレームベースのＢＡＧおよびジッタ許容範囲ポリシングは、循環バッファ５４に入るデータの最大総合転送速度は、そのバッファからデータを受け取る最も遅い（おそらく仮想の）ポートのための最小限必要とする廃棄までの時間を保証するために必要な転送速度より低いことを確実にするために用いることができる。また、フレームベースのＢＡＧおよびジッタ許容範囲ポリシングは、データ通信ネットワーク１６の出口ポート６６、７２がそのバンド幅および待ち時間予算を超えないことを確実にするために用いることができる。所与のＶＬａｃｃｔＩＤの構成された最大データ転送速度を超えたとポリサー２７が決定した場合、すなわち、構成されたＢＡＧまたはジッタ許容範囲が満たされない場合には、それは、ディスクリプタが出口ポートごとのディスクリプタ・キュー４３に書き込まれることを防止することができ、それによって、フレームが物理サブスクライバユニット３２に送信されることを防止することができる。
【００５９】
例えば、ポリサー２７は、ＤＬＴ２６から得られる６つの値を用いることができる。すなわち、制御ビット（Ｃｔｒｌ）、ＶＬａｃｃｔＩＤ、予想到着ポート（ＥＰｏＡ）、最大フレームサイズ（Ｓｍａｘ）、バンド幅アロケーションギャップ（ＢＡＧ）、ならびに、イーサネット(登録商標）・フレーム・ディスクリプタをディスクリプタ・マルチキャスト配信機能に送ることができるかどうか、および、着信データをＣＤＳ２８に格納することができるかどうかを決定するためのジッタ許容範囲（ＪｉｔｔｅｒＴ）である。Ａ６６４ｐ７は、複数の仮想リンク（ＶＬ）が同じＶＬアカウントに属すること、すなわち、同じＶＬａｃｃｔＩＤを有することを可能にし、それによって、そのＶＬａｃｃｔＩＤについて構成されたＳｍａｘ、ＢＡＧおよびＪｉｔｔｅｒＴを用いて共同でポリシングされることを可能にする。ポリサー２７は、入口スケジューラ２４から、実際の到着ポート（ＰｏＡ）、到着時間（ＴｏＡ）、現在時刻（Ｔ）、およびフレーム到着指示を取得し、それは現在時刻Ｔの経過を追う時間マネージャを含む。
【００６０】
ディスクリプタ・マルチキャスト配信
ディスクリプタ・マルチキャスト・ディストリビュータ（ＤＭＤ）２９は、出口ポートごとのディスクリプタ・キュー４３のどのセットがフレーム・ディスクリプタのコピーによって書き込まれるかを決定するために、ＤＬＴ２６によって出力されるポート・マスク・ビットの集まりを用いる。ディスクリプタの１つのコピーは、ＰＭＳ３０により循環バッファ５４から読み出されるフレームのコピーを受け取るポート６６、７２ごとに書き込まれる。ＰＭＳ３０が特定の出口ポート６６についてルールベースのスケジューラ７６の動作を予定する場合に、それは、ＣＤＳ２８からフレームを読み込んで物理出口ポート６６にそれを送信するために出力が用いられる、出口ポートごとのディスクリプタ・キュー４３を選択する。ＣＶＴ５６に格納されたイーサネット(登録商標）フレームおよびＡ４２９データワードは、それらの配信がＰＭＳ３０およびＰＭＣ３１によって制御されるので（後述する）、ＤＭＤに依存しないことに留意されたい。
【００６１】
切り換えられたデータフレームについてＤＭＤ２９により出力されたディスクリプタは、フレームの最初のワードの場所（ＨＯＦｐｏｉｎｔｅｒ）、フレーム格納時刻（ＴｏＦＳ）、フレーム長、優先順位（Ｐ）、およびポートマスクを含むことができる。ＤＭＤ２９がＤＬＴ２６から受け取ったポートマスクおよび優先順位を用いて、ＤＭＤ２９は、出口ポート優先順位ごとにビットを生成して、どの出口ポートごとのディスクリプタ・キュー４３が切り換えられたデータフレームディスクリプタのコピーを受け入れるか、および、そのディスクリプタが配置されるキュー４３の優先順位を示す。この機構は、例えば、ＡＤＳ１８から受け取ったものではない各パラメトリック・データ・フレームのコピーが別のＡＤＳ１８にミラーリングされることを確実にするために用いることができる。逆に、パラメトリック・データ・フレームが別のＡＤＳ１８から受け取ったものである場合には、ＡＤＳに接続された出口ポートに対応する各ポート・マスク・ビット値をゼロにセットすることによって（すなわち出口ポート６６、７２を識別できないことによって）、それをローカルＣＶＴ５６に格納することができるが、他のＡＤＳ１８に再配信することはできない。ＡＤＳに接続された出口ポートに対応する各ポート・マスク・ビット値をゼロにセットすることによって、メッセージが複数のＡＤＳ１８間で際限なく伝搬して、データ通信ネットワーク１６のバンド幅の過負荷を招くことを防止することができる。
【００６２】
パラメトリックデータを運ぶフレーム（例えば、Ａ／Ｄ値を有するイーサネット(登録商標）フレーム、ＡＲＩＮＣ４２９ワード、個別ビットの値など）は、ＣＤＳ２８のＣＶＴ５６領域内の専用の所定の場所に格納することができる。典型的な航空機には、２から４つのＡＤＳ１８があってもよく、それは機体内の他のＡＤＳ１８の内容をミラーリングする能力を各ＡＤＳ１８に提供するための機構を含む。ＣＶＴ５６に書き込まれた（しかし別のＡＤＳ１８から受け取ったものではない）各パラメトリックフレームのディスクリプタは、別のＡＤＳ１８に接続される各出口ポート６６、７２の優先順位が最も高い出口ポートごとのディスクリプタ・キュー４３に複製することができる。ルールベースのスケジューラ７６のサービス規範は、後述するように、任意の随伴ＡＤＳ１８が直近のフレームのコピーを受け取ることを保証する。
【００６３】
中央データサーバー書き込み制御機能
ＤＭＤ２９と並行して、ポリサー２７がフレームをＣＤＳ２８に渡す場合には、それは循環バッファ５４またはＣＶＴ５６に格納される。ＣＤＳ２８の書き込み制御機能の入力は、フレーム格納時刻（ＴｏＦＳ）、入口物理インターフェース４４機能からのフレーム長、ならびに、入口ポートスケジューラ２４およびＤＬＴ２６からの循環バッファ５４またはＣＶＴ５６メモリ場所を含むことができる。循環バッファ５４またはＣＶＴ５６メモリ場所は、アドレスカウンタの初期値になり、フレームのディスクリプタに含まれるＤＭＤ２９に提供されるフレームヘッドポインタ（ＨＯＦｐｏｉｎｔｅｒ）になる。ＴｏＦＳは読み出し時のフレーム検証に用いられ、ＣＤＳ２８メモリのフレームに属する最初のワードとして格納することができ、全ての後続フレームデータワードは、例えば、各書き込み後にインクリメントされるアドレスカウンタにより、６４個のデータビットおよびＥＣＣとして、続けて書き込まれる。書き込みコントローラは、入口物理インターフェース４４から取得したフレーム長を用いて実行される書き込みバイト数を比較する。これは最後のワードが書き込まれるまで継続する。書き込まれた最後のワードが完全な６４ビットワードではないことがあり得るが、それは最後のワードが有効なＥＣＣと共に６４情報ビットに埋め込まれる場合である。
【００６４】
図示するように、ＣＤＳ２８の書き込み制御機能は、１０Ｍｂｐｓ、１００Ｍｂｐｓ、または１Ｇｂｐｓの出口ポート６６、７２に送られるフレームを格納するためにそれぞれ専用の３つの異なる循環バッファ６０、６２、６４について構成することができる。フレームを参照するディスクリプタの複数のコピーは出口ポートごとのディスクリプタ・キュー４３に対してマルチキャストすることができるが、フレームの１つのコピーのみが格納される。フレームを格納することができる循環バッファ６０、６２、６４は、そのフレームがコピー／マルチキャストされる最も遅い出口ポート６６、７２に依存する。これらの循環バッファ６０、６２、６４の各々に格納される連続したフレームはバッファ６０、６２、６４内に隣接して格納され、最も古いフレームのワードは最新のフレームによって上書きされる。データが循環バッファ６０、６２、６４に書き込まれるときに、フレームの長さは、物理入口インターフェース４４機能（例えばフレーム長入力）によってそのフレームについてカウントされるバイト数で決定される。適切に供給された決定論的システムでは、循環バッファ６０、６２、６４のマルチキャスティングがその出口ポート６６、７２の全てに対して完了するわけではなく、フレームの早まった上書きが決して発生してはならないことが想定される。それにもかかわらず、６４ビットタイムスタンプＴｏＦＳはＣＤＳ２８のフレームの先頭に書き込まれた最初のワードであったが、ＤＭＤ２９によってキュー４３に書き込まれたディスクリプタに含まれるＴｏＦＳ値との不一致によって上書きを容易に検出することができる。不一致の事例では、フレームを廃棄することができる。ＣＤＳ２８からフレームを読み込むために用いるディスクリプタが別のフレームによって上書きされる場所を読み込んでいないことを検証するために、さらなるチェックを実行することができる。例えば、キュー４３に書き込まれて、データフレームと共にＣＤＳ２８に格納されるディスクリプタに、付加的なフレームヘッダビットを含むことによって、例えば送信先ＭＡＣアドレスをチェックすることができる。
【００６５】
ＤＬＴ２６からのビットは、データフレームからの解析されたデータが静的ＣＶＴ５６メモリ場所に書き込まれているかどうかを示し、それはサンプリング型データまたは循環バッファ６０、６２、６４のために確保される。例えば、ＣＶＴ５６のロケーションビットが１にセットされた場合には、ＣＤＳ２８ベースアドレスはＣＶＴ５６のロケーションを示し、Ｓｍａｘ／フレームサイズ値は、そのベースアドレスから始まって格納される予め設定されたフレーム長として解釈される。この例では、フレーム長は固定されており、入口インターフェース機能によって示されるフレーム長がＩＬＵＴによって示されるフレーム長と正確に一致しない限り、入口ポートスケジューラ２４のポリシング機能は解析されたデータが書き込まれることを許可しない。これは、受信フレーム長エラーの場合には、ＣＶＴ５６内のデータの潜在的なフレーム間のエイリアス作成を防止することができる。ベースアドレスは、プリセットとしてアドレスカウンタにロードされ、ＤＬＴ２６から読み出されたスマックス／フレームサイズ値によって示されるフレーム長に達するまで、ＣＤＳ２８が書き込まれる。
【００６６】
ＣＶＴ５６に格納された古くなった値から保護するために、ＣＶＴ５６に格納されるパラメトリック・イーサネット(登録商標）・フレームは、６４ビット時間値によって追加され、それはＣＶＴ５６の解析されたデータフレームの最後のワードに続いて格納される。これらのパラメトリック・データ・フレームは、ＣＶＴ５６に格納されることに加えて、他のＡＤＳ１８にミラーリングされる。したがって、パラメトリック・データ・フレームが別のＡＤＳ１８から届かない場合には、他のＡＤＳ１８に接続された物理出口ポート６６の最も高い優先順位の出口ポートごとのディスクリプタ・キュー４３に対してディスクリプタのコピーをマルチキャストすることができるように、他のＡＤＳ１８に接続される物理入口ポート４２が先に識別されることが必要となり得る。言い換えると、より最新のデータフレームが非ＡＤＳソース（例えばＲＩＵ  ２０）からＡＤＳ１８に届いた場合には、データフレームを可及的速やかに付加的なＡＤＳ１８によってミラーリングできるように、そのディスクリプタのコピーを、各物理出口ポート６６の最も高い優先順位のキューに対してマルチキャストすることができる。逆に、データフレームが別のＡＤＳ１８から届いた場合には、無限ループの同一データの無限複製を防止するために、ディスクリプタがＡＤＳ１８へ行くいかなる物理出口ポート６６にも再配信されないことを保証するように、ディスクリプタ・マルチキャストのポート・マスク・ビットをクリアすることができる。
【００６７】
マルチワードメッセージに属さないＡＲＩＮＣ４２９データフレームは、ＰＭＣ３１によってパラメトリック・メッセージにパックするために、ＣＶＴ５６に書き込むことができる。ＡＲＩＮＣ４２９は３２ビットデータワードを指定するが、ＣＤＳ２８の各ＣＶＴ５６ロケーションは６４ビットワードおよび８ビットのＥＣＣである。ＣＶＴ５６のＡ４２９ワードの古くなった値から保護するために、各Ａ４２９ワードは３２ＭＳＢの時間（ＬＳＢは２１６マイクロ秒）のタイムタグを付される。このように、ＣＶＴ５６に格納された各Ａ４２９ワードは、ＭＳＢとして３２ビットの時間およびＬＳＢとして３２ビットＡ４２９ワードを有する。
【００６８】
中央データサーバーメモリ
ＣＤＳ２８は、例えば、ダブルデータレートメモリ（ＤＤＲ）と比較して浅いクワッドデータレート（ＱＤＲ）メモリを用いることができる。ＤＤＲと同様に、それらは同期式であってＥＣＣで保護されているが、ほとんどは同時並行の読み出し書き込みアクセスを提供し、独立したＤＤＲ読み出し／書き込みデータポートおよびＤＤＲ読み出しアドレスポートを有する。これらのメモリは、データ切換用途のために特別に設計された。ＡＤＳ１８では、スループット目標に対処するために、ＣＤＳ２８メモリは例えば２５０ＭＨｚのクロックで動作することができる。例えば、デュアル３８ビット幅ＤＤＲデータポートをもつＱＤＲは、１６Ｇｂｐｓの完全デュプレックスデータをサポートするのに十分なバンド幅を有する。代替的メモリ速度は、データの必要条件またはスループットの必要性に基づいて想定される。
【００６９】
ＣＤＳ２８は最大２５６個の循環バッファ５４によって構成することができるが、図示するＣＤＳ２８は３つの循環バッファ６０、６２、６４およびＣＶＴ５６で構成される。各循環バッファ６０、６２、６４はデータ記憶のために確保されているが、ＣＶＴ５６は、後述するようにＡＤＳ１８によってカスタムメッセージを構築するために用いられる、解析されたパラメトリックデータ、ヘッダ、およびアドレスリストを保持する。
【００７０】
本実施例のように１Ｇｂｐｓ、１００Ｍｂｐｓ、および１０Ｍｂｐｓのデータ記憶の３つの循環バッファが存在する場合には、どの循環バッファにフレームが配置されるかは、フレームがマルチキャストされる最も遅いポートに依存する。同じ出口レートによってグループ分けされたポートの任意のセットについて、ＣＤＳ２８は、そのレートで５１２個のフレームを放出させるのにかかる時間に適応するために、ポートの総合データレート（すなわち１０Ｍｂｐｓ、１００Ｍｂｐｓ、１Ｇｂｐｓ）で十分な記憶を有しなければならない。例えば、ＣＤＳ２８は、出口データレートの各々に専ら対応する循環バッファ６０、６２、６４のサイズに対する柔軟な割り当てを可能にすると共に、２Ｍバイトの記憶をＣＶＴ５６に提供することができる。そして、出口データレートは、循環バッファ５４の数、いくつの入口または出口ポート４２、４６、６６、７２がそのレートで構成されるかということ、所望の解析されたデータフレーム保持時間、および、そのバッファ内に含まれるフレームの必要な廃棄までの時間によってさらに調整することができる。
【００７１】
例えば、デフォルトの割り当ては、循環バッファ６０、６２、６４当たり２４Ｍバイトとすることができる。各循環バッファ６０、６２、６４について、記憶時間は８×２４Ｍ／（ポート速度×ポート数）とすることができる。例えば、２４Ｍバイト循環バッファは、２０秒をバッファに供給する１０Ｍｂｐｓの入口ポート４２、４６の数で割った時間より長い記憶時間、または２秒を１００Ｍｂｐｓのポート４２、４６の数で割った時間より長い記憶時間、または０．２秒を１Ｇｂｐｓのポート４２、４６の数で割った時間より長い記憶時間を提供する。各循環バッファのサイズは、適切に構成可能とすることができる。任意の入口または出口ポート４２、４６、６６、７２の任意の用いられていないラインレートは、そのバッファを共有する全てのポートに、残りの記憶時間を提供する。
【００７２】
フレーム切換のために、循環バッファ６０、６２、６４は、解析されたデータフレームのための固定ブロックサイズを確立しなければならないこと、および、空きバッファの割り当ての経過を追わなければならないことを不要にすることができる。さもなければ、それは、シングル・イベント・アップセット（ＳＥＵ）により、ＡＤＳ１８全体をメモリ漏洩にさらすことになろう。ＳＥＵは、例えば中性子などの亜原子粒子によって生じると考えられ、その出現頻度は高度と共に増加し、メモリおよびロジックでも格納された値を損なうおそれがある。循環バッファのオーバフローが生じた場合には、最新のデータが古いデータを上書きする。ＡＤＳ１８の全てのＦＩＦＯキュー４０は、循環バッファ５４のパラダイムを用いることもできる。このようにして、循環バッファ６０、６２、６４の読み出しおよび書き込みポインタを損なういかなるＳＥＵも、バッファ６０、６２、６４を完全に上書きするのに要する時間内に修正されることが保証される。
【００７３】
出口スケジューリング
ＰＭＳ３０の出口スケジューリング機能は、どのデータがＣＤＳ２８から読み出されるか、および、どの出口ポート６６、７２がそれを受け取るかを決定する。出口スケジューリング機能は、４つの主要な機能要素で決定される。すなわち、出口ポートごとのディスクリプタ・キュー４３、ＰＭＳ３０、パラメトリック・メッセージ・コンストラクタ３１、および、例えばルールベースのスケジューラ７６などの出口アービタである。ルールベースのスケジューラ７６は、出口ポート６６、７２ごとに４つの優先するディスクリプタ・キュー４３に従って維持し動作する。各キュー４３は、５１２個のディスクリプタを保持するのに十分な容量を有することができる。出口ポートごとのディスクリプタ・キュー４３のディスクリプタは、ディスクリプタ・マルチキャスト・ディストリビュータ２９によって同報通信バスを用いて書き込まれた。あるいは、ＰＭＳ３０は、ルールベースのスケジューラ７６が次にどの出口ポート６６、７２にサービスを提供するべきか、または、ＣＶＴ５６から、および／もしくはＡ４２９出力キューから読み出されたデータを用いる構築されたメッセージを創作するために、パラメトリック・メッセージ・テーブル５８にアクセスするために、ＰＭＣ３１がどのメッセージ・ディスクリプタを用いるべきかを示すスケジュールを維持することができる。
【００７４】
ルールベースのスケジューリング
ルールベースのスケジューラ７６は、ＰＭＳ３０内のユーザーが構成可能な構成要素として動作する。ＰＭＳ３０は、各出口ポート６６、７２が、１つが利用できる場合にディスクリプタをその４つの優先キュー４３から選択するために用いられるルールベースのスケジューラ７６にアクセスすることを可能にする。このディスクリプタは、ＣＤＳ２８に対する読み出しアクセスを提供するために用いてもよい。ＰＭＳ３０は、例えば、ラウンドロビンの方法、厳密に時間を定めたスケジュール、または所定アルゴリズムで、各出口ポート６６、７２にルールベースのスケジューラ７６に対するアクセスを与えることができる。他のサービス方法、例えば、出口ポート６６、７２の重大性に基づいて付加的なまたは優先するアクセスを与えることを考慮した、重み付けされたスケジュールが想定される。ＣＤＳ２８に対するアクセスを付与することについては、ＰＭＣ３１は、例えば１Ｇｂｐｓの最大保証バンド幅および６６マイクロ秒未満の各アクセス間の最大保証待ち時間の、ＣＤＳ２８に対する保証されたバンド幅のアクセスが与えられた別の出口ポート６６、７２とみなすことができる。ルールベースのスケジューラ７６は、どの優先キュー４３のディスクリプタが各ポート６６、７２のアクセス機会の間に読み出されるかを決定するための調停を提供する。それから、そのディスクリプタは、ＣＤＳ２８から得られたフレームのコピーを読み出して、１つの出口ポート６６、７２へ送信するために用いられる。
【００７５】
ルールベースのスケジューラ７６は、各出口ポートごとのディスクリプタ・キュー４３からフルネスしきい値ビットまたは値のセット、ならびに、キュー・フルネス・インターフェース７０を介して各出口物理ポートキュー４１からのキューフルネス指示を入力として受け入れることができる。しきい値ビットは、例えば、キュー４３のフルネスが構成されたしきい値を超える場合に１にセットすることができ、キュー４１がフレームを受け入れるには一杯になりすぎている場合にはいつでも、別のしきい値を１にセットすることができる。集合的に、キュー・フルネス・インターフェース７０に含まれるビットは、出口ポート６６、７２ごとの複数のキュー４１、４３のフルネスを表す。出口ポートごとのディスクリプタ・キュー４３が一杯になりすぎている場合には、ルールベースのスケジューラ７６は、キュー４３ごとの優先順位を基礎とするサービス方法論を修正することができる。あるいは、キュー４１が一杯になりすぎている場合には、キュー４１に対するさらなるフレームの送信を一時的に保留することができる。例えば、出口ポート６６、７２にサービスを提供する間に、ルールベースのスケジューラ７６が、そのポート６６、７２の出口ポートごとのディスクリプタ・キュー４３の１つまたは複数が一杯になりすぎていると、受け取ったフルネスしきい値に基づいて決定した場合には、スケジューラ７６は、最初に一杯になったキュー４３にサービスを提供することを決定することができる。別の事例では、出口ポート６６、７２にサービスを提供する間に、出口ポートキュー４１が別のフレームを受け入れるには一杯になりすぎているとルールベースのスケジューラ７６が決定した場合には、スケジューラ７６は、キュー４１が別のフレームを受け入れることができるまで、そのポート６６、７２へのサービス提供を先取りすることを決定することができる。さらに別の事例では、サービスを受けている出口ポート６６、７２のための出口ポートごとのディスクリプタ・キュー４３において供給するディスクリプタが存在しない場合には、ルールベースのスケジューラ７６は、ラウンドロビン型（または代替的）方法で、次の出口ポート６６、７２にサービスを提供するように制御アクセスを切り換えることができる。
【００７６】
前述したように、各出口ポート６６、７２について４つの出口ポートごとのディスクリプタ・キュー４３があり、それらが優先される。どのキュー４３がそのディスクリプタの供給を受けるかは、４つのディスクリプタ・キュー４３の各々のフルネスに依存する。各キュー４３のフルネスは、例えば、７つのしきい値および空のフラグで測定することができる。この例では、７つのしきい値は、「フルネス」の様々なレベルを示すことができる。優先順位エンコーダロジックを用いて、７つのしきい値および空のフラグを３ビット値に変換することができて、それは、どの出口ポートごとのディスクリプタ・キュー４３がＰＭＳ３０によってディスクリプタの供給を受ける（すなわちＣＤＳ２８からデータを読み込む）かを決定する。これらの１２のビットおよび４ビットカウンタの出力は、例えば、ルールベースのスケジューラ７６のサービスルールが格納される１６Ｋ×３の参照テーブルをアドレスするために用いることができる。あるいは、ルールベースのスケジューラ７６のルールは、例えば、サービスルールを決定するためのアルゴリズムであってもよい。この参照テーブルへの入力として各ポートについて４ビットカウンタを有する目的は、不確定の期間に同じキューにサービスを提供することが生じる静的しきい値の組合せを有する理論的な可能性を回避することである。それは、各優先順位に与えられるサービスのレートの下限を保証する方法である。
【００７７】
選択されたディスクリプタが、ルールベースのスケジューラ７６の優先順位に基づいて選択された出口ポートごとのディスクリプタ・キュー４３から読み出された後に、完全なフレームがＣＤＳ２８から読み出されて、ポート４１に送信され、その後に、次の出口ポート６６、７２は、スケジューラ７６によって供給されるディスクリプタを得ることができ、ＣＤＳ２８からフレームを受け取る機会を与えられる。切り換えられたデータフレームについては、読み出し処理の間に、ディスクリプタのＴｏＦＳを格納されたフレームのそれと比較することができる。それらが一致しない場合には、フレームを廃棄することができる。各出口イーサネット(登録商標）ポートは、プログラム可能な最大の寿命（ＭａｘＡｇｅ）をさらに有することができ、ＴｏＦＳと入力ポートスケジューラ２４の書き込み制御機能の時間カウンタの現在値との差がＭａｘＡｇｅパラメータより大きい場合には、フレームを廃棄することができる。さもなければ、フレームは、ＰＭＳ３０によってＣＤＳ２８から読み出されて、その出口ポート６６、７２へ転送され、サブスクライバユニット３２または仮想リンク３６に送信される。
【００７８】
パラメトリック・メッセージ・スケジューラ
パラメトリック・メッセージ・スケジューラ（ＰＭＳ）３０は、どのメッセージをどの出口ポート６６、７２に送るかについての予定を組むように動作する。ＰＭＳ３０は、例えばラウンドロビンの方法で、ルールベースのスケジューラ７６によってどの出口ポートが次にサービスを受けるかを決定し、ルールベースのスケジューラ７６によって選択された出口ポートごとのキュー４３から受け取ったディスクリプタを用いて、完全なデータフレームがＣＤＳ２８の循環バッファ５４から読み込まれる。この読み込まれたフレームは、共通出口インターフェース３４を用いてサービスを受けている出口ポート６６、７２に送信される。
【００７９】
ＰＭＳ３０は、あたかもそれが出口ポートであって、構築されるメッセージのためのディスクリプタをそれに手渡すことによってどのメッセージがＰＭＣ３１によって構築されるかを制御するように、ＰＭＣ３１の動作の予定を組むことができる。ＰＭＣ３１によって受け取られたディスクリプタは、パラメトリック・メッセージ・テーブル５８の記載事項のリストを参照し、それは、ＣＶＴ５６またはＡ４２９出力キューからのどのようなデータが構築されているフレームに配置されるかについて詳述する。例えば、ＰＭＳ３０は、アドレスリストへのアドレスおよびリスト長をＰＭＣ３１に提供することができる。リストのアドレスは、構築されるデータフレームに配置されるＣＶＴ５６またはＡ４２９出力キューに含まれるデータの場所である。
【００８０】
パラメトリック・データ・フレームの構築は、厳密に予定することができる。例えば、最高４０９６個のフレーム構築のスケジューリングを、５００マイクロ秒の予定データフレーム出発分解能でサポートすることができる。５００マイクロ秒の時間増分を表すカウンタ値のテーブル、カウンタしきい値のテーブル、およびメッセージ・ディスクリプタのテーブルがあってもよく、それらの全ては、ディスクリプタ・テーブル・アドレス・カウンタ（ＤＴＡＣ）の記載事項によって参照される。構築されるデータフレームのディスクリプタ・フォーマットは、さらに後述する。カウンタ値テーブル、カウンタしきい値テーブル、およびディスクリプタ・テーブルの各記載事項は、構築されるデータフレームの事例と関係する。
【００８１】
メッセージ構築のスケジューリングは、以下のように進行する。ＤＴＡＣは、４０９６個のカウント値の完全なテーブルをスキャンする。各カウント値はインクリメントされ、最大カウントしきい値のテーブルから得られたその最大カウントしきい値と比較される。カウントがそのしきい値未満である場合には、インクリメントされた値が単純にカウント値のテーブルにライトバックされ、メッセージ構築は起動することができない。しかし、カウントがメッセージについて予め設定された最大値以上である場合には、ライトバックされるカウント値はゼロであって、ＤＴＡＣによって参照されるディスクリプタ・テーブルの記載事項の内容の値が、それは送信されるカスタムメッセージのディスクリプタであってもよいが、メッセージ構築機能を開始するためにＰＭＣ３１に送られる。
【００８２】
この例では、構築されるメッセージが４０９６個より少ない場合には、ディスクリプタ・テーブルには、メッセージ構築を発生させることがあり得ない使用されないディスクリプタ記載事項がある。特定のディスクリプタの場所の記載事項を無効にすることが望ましい事例では、対応する最大カウントテーブル記載事項を、到達できない値、すなわち４０９６に設定することができる。そのカウント値のためには不十分なビット数（すなわち１１）だからである。この例では、ＰＭＳ３０が５００マイクロ秒毎に最高４０９６個のメッセージのスケジューリングができるので、おそらくＰＭＳ３０はＡＤＳ１８のためのカスタムメッセージを作成する際の限定要因ではない。あるいは、任意のメッセージの構築のための予定分解能を５００マイクロ秒単位とすることができる。
【００８３】
パラメトリック・メッセージ・構築機能
ＰＭＳ３０がメッセージ構築が予定されることを決定すると、それはディスクリプタをディスクリプタが利用できる指示と共にＰＭＣ３１の機能に渡す。ディスクリプタは、ＰＭＣ３１が、イーサネット(登録商標）／Ａ６６４ｐ７フレームのためのデータソースがＡ４２９キュー４０のうちの１つから来たものであるか、および／または、それがＣＶＴ５６のアドレスリストを用いてＣＶＴ５６からばらばらに集められたデータであるかを決定することができるように、識別情報を含む。例えば、ディスクリプタの最上位ビット（ＭＳＢ）が、メッセージがＡ４２９キュー４０のデータから構築されることを示す場合には、ディスクリプタは、パラメトリック・メッセージ・テーブル５８から直接読み込まれ、１つまたは複数のＡ４２９キューからのデータが続くメッセージ構築キュー４０に配置される、ＵＤＰ／ＩＰ／ＭＡＣヘッダのベースアドレス（ＨＯＬポインタ）および長さを含むことができる。
【００８４】
逆に、パラメトリック・メッセージ・ディスクリプタのＭＳＢが、フレームがＣＶＴ５６のデータから構築されることを示す場合には、ＨＯＬポインタは、パラメトリック・メッセージ・テーブル５８の順序づけられて隣接するリスト、およびメッセージの構築に用いられるＣＶＴ５６アドレス・ディスクリプタのＣＶＴ５６のベースアドレスである。この例では、長さフィールドは、アドレス・ディスクリプタのそのリストの長さを示す。ＰＭＣ３１は、選択されたＣＶＴ５６データ値を集めるために、これらのアドレス・ディスクリプタを用いる。構築の間に、アドレス・ディスクリプタのリストは、パラメトリック・メッセージ・テーブル５８から最初に読まれる。それから、アドレス・ディスクリプタは、パラメトリック・メッセージ・テーブル５８から読み込むことによってメッセージのヘッダを構築するために、ならびに、ＣＶＴ５６および／またはＡ４２９出力キューの選択された場所から読む込むことによってメッセージのペイロードを構築するために、用いられる。
【００８５】
完全なデータフレームまたは「メッセージ」は、ヘッダ、パラメータ値のリスト、およびトレーラから構成される。上述したように、各データフレーム・ヘッダフィールドおよび各パラメータ値は、ＣＤＳ２８の固定であるが不連続な場所に格納される。したがって、構築される各データフレームは、ＣＶＴ５６からこれらの散在する値を読み込むために用いられるアドレスの順序リストを含まなければならない。ＰＭＳ３０メモリを小さくしておくために、アドレス・ディスクリプタのリストは、ＣＤＳ２８内のメモリの静的領域、例えばＣＶＴ５６のパラメトリック・メッセージ・テーブル５８において、それ自体を保持することができる。
【００８６】
ＰＭＳ３０によってＰＭＣ３１に供給されるパラメトリック・メッセージ・ディスクリプタは、例えば、１８ビットのヘッド・オブ・リスト・ポインタ（ＨＯＬポインタ）、３２ビットワードのアドレスのリスト長、および制御ビットのために確保されているフィールドを含むことができる。この例では、各アドレスリストが６４バイト境界だけから開始するように、ＨＯＬポインタを左側にシフトしてゼロを追加することができる。また、「Ｓ」制御ビットは、ディスクリプタがＡ６６４ｐ７メッセージについてのものであるか否かを示すこともできる。ディスクリプタがＡ６６４ｐ７メッセージについてのものである場合には、ディスクリプタのＥｆｌｏｗＩＤフィールドは、Ａ６６４ｐ７シーケンス番号を追跡するために用いることができる。ゼロであるパラメトリック・メッセージ・ディスクリプタのＭＳＢ値が、メッセージに書き込まれるデータ場所を間接的に参照するアドレスのリストを参照することができることが、さらに想定される。これらのアドレスは、例えば、参照されるデータ場所がどのようにメッセージにパックされるかを示すバイト選択および制御情報と共に、ＣＶＴ５６内の６４ビット場所の中に含まれてもよい。存在する場合には、制御フィールドは、ＬＳＢもしくはＭＳＢ配列、ビッグエンディアン、リトルエンディアン、またはｍｕｎｇｅｄビッグエンディアンフォーマットなどを示すためのコードを含むことができる。さらなる制御フィールド内容および効果が想定される。
【００８７】
構築されているメッセージがＡ６６４ｐ７メッセージである場合には、ＰＭＣ３１は、そのＶＬのシーケンス数（ＳＮ）にアクセスするために、ＰＭＳ３０から受け取ったメッセージ・ディスクリプタのフィールド（ＥｆｌｏｗＩＤ）を用いることができる。ＳＮバイトは、Ａ６６４ｐ７に記載されているルールに従ってインクリメントされ、ＰＭＣ３１によって構築されるメッセージ・ペイロードの最終バイトとして配置され得る。一旦、メッセージフレームが完了すると、それは専用のループバックポート８６に転送され、ループバックポート８６は、例えばＣＲＣ−３２などのＣＲＣを計算し、フレームをループバックの方法でＡＤＳ１８の共通入口インターフェース２２に転送する。
【００８８】
構築されたメッセージを、サブスクライバユニット３２に転送する前に、ＡＤＳ１８の共通入口インターフェース２２に送り返すことについて、複数の理由があり得る。主要な理由は、安全性である。各パラメトリック・メッセージ・フレームの構築が厳密に予定されている場合であっても、単一の故障に対する脆弱性を回避するために、Ａ６６４ｐ７フレームが分離したポリサー２７ロジックによってポリシングされなければならないことが想定される。サブスクライバユニット３２がトラフィックシェーピングをすでに実行することができる場合であっても、これがＡ６６４ｐ７スイッチの入口ポートスケジューラ２４のポリシング機能を必要とする理由である。ＡＤＳ１８内で、ポリサー２７は、この要件を満たすためにＰＭＳ３０（そして、それゆえにＰＭＣ３１）から分離される。
【００８９】
構築されたメッセージをループバックする第２の理由は、それがＤＭＤ機能の重複を回避するということであり得る。ループバックポート８６は、メッセージに対して重要な動作を実行していなので、したがって、動作上の遅延によって制限されないようにできる。したがって、例えば、ループバックポート８６の動作データレートは、ギガビットレートとすることができる。結果として生じるループバック待ち時間への影響は、例えば、フレームのディスクリプタを優先順位の高い出口ポートごとのディスクリプタ・キュー４３に配信することによって、および、ルールベースのスケジューラ７６を適切にプログラムすることによって、無視できる可能性がある。ＰＭＣ３１データをループバックするための単一のループバックポート８６は、例えば、５００マイクロ秒未満内に、各々が５１２バイトの平均長を有する１００個より多くのメッセージの伝送をサポートするのに十分であり得ることが想定される。しかし、付加的なループバックポート８６をＡＤＳ１８に構成し、ＰＭＣ３１の生成されたメッセージのための専用とすることができる。
【００９０】
ＡＲＩＮＣ４２９データ経路
ＡＲＩＮＣ４２９データワードは、１６〜４８の番号を振られた物理入口ポート４２に届く。到着時刻レコーダ５０の時刻は、次にどの入口ポート４２のワードがサービスを受けるべきかを示す。次に入口ポートスケジューラ２４は、到着ポート（ＰｏＡ）およびＡ４２９の８ビットタグを識別してＤＬＴ２６に各々を供給するために、データフレームを解析し、ＤＬＴ２６は、ワードをＣＶＴ５６（および／または任意の循環バッファ５４）に格納するべきか、および、Ａ４２９出口ポート６６のどれがワードのコピーを受け取るべきかを決定する。ＰＭＳ３０は、イーサネット(登録商標）またはＡ６６４ｐ７メッセージを構築するために、ＰＭＣ３１機能に、パラメトリック・メッセージ・ディスクリプタを供給する。
【００９１】
マルチワードメッセージの一部でないＡ４２９ワードは、ＣＶＴ５６に格納することもできる。この場合、各ワードは、ＬＳＢが２１６マイクロ秒である３２ビットタイムタグと共に格納される。この例では、ＰＭＣ３１機能は、イーサネット(登録商標）またはＡ６６４ｐ７フレームを構築するために、ＣＶＴ５６の他のパラメータと共に、Ａ４２９ワードを取得することができる。
【００９２】
ＡＲＩＮＣ６６４パート７のシーケンス番号同期
本明細書に記載されるデータ通信ネットワーク１６は、複数のＡＤＳ１８にわたるＡ６６４ｐ７のシーケンス番号同期を提供することができることがさらに想定される。多くのアビオニクス・プラットフォームでは、同一内容を有するＡ６６４ｐ７データフレームを同期して配信することは、異なるＡＤＳ１８の事例にあるＰＭＣ３１機能のために有利であり得る。異なるサーバーおよび回路基板にある２つの仮想エンドシステムを有することを除けば、これはデュアルエンドシステムＬＲＵの仮想化と等価である。このＡ６６４ｐ７のシーケンス番号同期は、メッセージ交換プロトコルを用いて達成することができ、メッセージ交換プロトコルは、時間同期が達成されたことを検証し、全てのＥｆｌｏｗＩＤのシーケンス番号の値を含むＡＤＳ１８間のメッセージを提供し、例えば、シーケンス番号の食い違いがあまりに大きくなった場合に、指定された将来の時間しきい値においてシーケンス番号をゼロにリセットすることを示すメッセージを提供する。
【００９３】
プロセッサアレイ
ＡＤＳ１８は、１つまたは複数のプロセッサ７８、または分散プロセッサアレイ７８を提供することもできる。図示するように、各プロセッサ７８は、スイッチング機能に接続され、例えばイーサネット(登録商標）ポートとして現れる、それ自体の仮想入口および仮想出口ポート７２を含む。プロセッサ７８は、そのプロセッサ７８に供給されたメッセージの計算を実行するための単一の実行スレッドまたは複数の実行スレッドを用いて動作することができる。供給されたメッセージに対して実行される機能は、メッセージのヘッダの情報によって駆動される。プロセッサアレイは、集中化した仮想ＲＩＵ（ＶＲＩＵ）としてＡＤＳ１８に役立つように構成される。例えば、ＶＲＩＵは、生のセンサデータからの工業単位変換を実行し、派生するパラメータを計算し、および／または、生データを処理することによって、リモートアプリケーションのためのカスタムメッセージを構築することができる。カスタムメッセージのスケジューリングは、システム待ち時間を最小化し、分散処理の同期を可能にする。
【００９４】
適用可能なプロセッサ７８の一例は、アビオニクスシステムのための重要な任務への適用のために特別に設計された１０／１００イーサネット(登録商標）インターフェースを有する単一チップのマイクロプロセッサを含むことができる。適用可能なプロセッサ７８の別の例は、汎用マイクロプロセッサであってもよい。さらに、マイクロプロセッサは、それらのキャッシュおよび内部メモリの両方にＥＣＣを有するデュアルロックステップＣＰＵをサポートすることができ、それは不揮発性記憶のための内部ＦＬＡＳＨメモリを含む。上述したプロセッサ７８は、ＡＤＳ１８のための拡張性のある処理アーキテクチャを可能にするために用いることができる。このようなプロセッサ７８は、シリアルまたはパラレルな処理スレッドの集まりに分解することができる事実上全ての用途に対して最適化された並行処理を提供するために、上述したＰＭＳ３０およびＰＭＣ３１機能と組み合わせて用いることができる。
【００９５】
本明細書に記載したように、ディスクリプタがメッセージを構築するためにＰＭＣ３１に送信されると、ＰＭＳ３０はメッセージを収集し、フォーマット化し、配信することができる。分散プロセッサの動作を同期させるために、ＰＭＳ３０によるメッセージのスケジューリングがどのように用いられ得るかという例は、以下の通りである。プロセッサ７８で動くスレッドは、それを呼び出すカスタムメッセージを受け取ったときだけ起動する。プロセッサ７８で動くスレッドの出力は、共通入口インターフェース２２で仮想入口ポート４６によって受け取ることができるパラメトリック・メッセージであってもよく、入口ポートスケジューラ２４によって予定され、ＣＶＴ５６に格納される。さらに、ＰＭＳ３０は、処理されたパラメトリック・メッセージに基づいて（上述したように）、メッセージを収集し、フォーマット化し、処理のための別のプロセッサ７８へ配信することによって、プロセッサ７８を通して二度目に繰り返すことができる。所望の最終結果が達成されるまで、このプロセスは繰り返すことができる。このように、汎用プロセッサの処理能力は、最適化された分散多重処理システムを形成するために、協調的にパイプライン化することができる。各スレッドが既知の最大実行時間または処理時間を有する場合には、ＰＭＳ３０およびＰＭＣ３１の機能は、利用可能または必要なときに、プロセッサ７８の利用率をさらに最適化することができる。
【００９６】
別の詳細な例は、３つのパラメトリック・メッセージのためのデータフローをさらに示すことができる。ＰＭＳ３０は、例えば、ＣＶＴ５６からパラメータの第１のセットを収集し、第１のプロセッサのための第１のメッセージを構築する。また、ＰＭＳ３０は、パラメータの第２のセットを収集し、第２のプロセッサのための第２のメッセージを構築することもできる。第１および第２のプロセッサは、それらの異なるメッセージ起動されるプログラムを並列に実行し、入口データ経路を通して、処理された結果がＣＶＴ５６に書き込まれる。ＰＭＳ３０は、引き続いて第１および第２の処理された結果から第３のメッセージを構築し、第１、第２、または第３のプロセッサに対して、またその他のプロセッサに対して、さらなる処理のために第３のメッセージを提供することができる。さらに、この例では、第１および第２のプロセッサが第１および第２のメッセージを並行して処理する間に、ＰＭＳ３０は２つのさらなるパラメトリック・メッセージ、例えば、第１および第２のプロセッサで処理するための第４および第５のメッセージを構築することができる。プロセッサ７８がごくわずかなアイドルタイムで並行処理ができるように、この処理は厳密にパイプライン化することができる。
【００９７】
所与のプロセッサ７８がどのタスク（またはスレッド）を実行するかという選択は、それがＰＭＳ３０から受け取るメッセージのヘッダで決定され、そのタスクによって処理されるデータは、メッセージの本体に含まれる。タイマーチックからの割り込みに基づくタスク切り換えの必要がない。なぜなら、ＰＭＳ３０のメッセージの生成は、上述したように、厳密なタイムスケジュールに従っているので、タイマーチックに基づく割り込み機構は効果的に達成され得るからである。このように、ＰＭＳ３０からのメッセージがプロセッサに割り込むことを可能にすることによって、タイマーチックを模倣することができる。このＰＭＳメッセージ割り込み駆動処理をプロセッサ７８にマッピングすることは、各プロセッサ７８が状態を保持し、メッセージ駆動割り込みに続くその動作を再開するための、プライベートＲＡＭの利用可能性によって、さらに容易にすることができる。この割り込み駆動処理能力は、タスク切り換えまたはイベント駆動割り込みが発生しなければならない前に、所与の処理スレッドが処理を完了することができない割り込み駆動処理に対して有用であり得る。メッセージ駆動割り込みが可能である場合には、例えばＲＩＵ２０などのいくつかの非同期イベントにより外部ソースから届くメッセージが、ＣＶＴ５６を全体的に迂回し、ＡＤＳ１８の切り換え機能を通して（例えば循環バッファ５４のうちの１つを介して）、選択されたプロセッサ７８に直接送られることが可能であり得る。
【００９８】
インターワーキング
インターワーキングは、例えば、異なる入口または出口物理インターフェース４４、６８によって決定される、１つのプロトコルから別のプロトコルへの変換を実行するように設計することができる。１つの重要なインターワーキング機能は仮想エンドシステム（ＶＥＳ）８２であり、それは、例えば、ＡＤＳ１８に接続される任意のＬＲＵのためのＡ６６４ｐ７インターフェースとして役立ち、それらがＡＤＳ１８に単純なイーサネット(登録商標）インターフェースをサポートし、例えばＶＥＳ８２にＣＯＭポートデータを輸送するための巨大なイーサネット(登録商標）フレームを用いることを可能にする。ＶＥＳ８２は、多くの従来の、現在の、および／または将来の論理フォーマットおよびプロトコルをサポートすることができる。
【００９９】
本明細書に開示される実施形態は、アビオニクス・データ・サーバーに、協調動作を伴うアビオニクス・データ通信ネットワークを提供する。上記の実施形態で実現することができる１つの利点は、上記の実施形態が、航空機データの効率的な収集、ジャストインタイムの処理、正確なスケジューリング、ならびに協調したサーバー、システム、サブスクライバユニット、およびディスプレイに対するそのデータの配信によって動作するということである。さらに、上記の実施形態は、データサーバーが時間的に同期することを要求するだけの分散プロセッサ間の同期処理を提供する。上記のアビオニクス・データ・サーバーの効率的な動作により、協調のないネットワーク利用に起因する過剰なネットワークおよび計算のバンド幅の非効率性を最小化することができ、結果としてバンド幅効率を高めて電力要求をより低くすることができる。さらにまた、効率が高くなり電力要求がより低くなることにより、より小さい回路パッケージがより低い熱プロファイルにより設計され得る。そして、結果として優れた空間およびサイズの利点になる。航空機の構成要素を設計する際に、対処する重要な要素はサイズ、電力要求、および信頼性である。低減されたサイズ、所要動力、および信頼性は、飛行中の競争的利点に関連する。
【０１００】
上記の実施形態の別の利点は、出口ポートスピードによって区別されるＣＤＳの複数の循環バッファの利用は、例えば遅い出口ポートを予定されているフレームが速い出口ポート用に速く届くフレームによって上書きされないように、適切なレートでデータを上書きすることによって、データ効率の上昇を可能にするということである。この利用は、データフレームが上書きされる前に消費されるという最も高い確率を可能にする。さらに、循環バッファの利用は、フリーなまたは使用されていないメモリブロックの経過を追う方法を決定することを不要にする。最も古いデータは、循環バッファを用いて常に上書きされ、高速で単純な動作を提供する。
【０１０１】
上記の実施形態のさらに別の利点は、上記の実施形態が、例えばＡ６６４ｐ７システムなどの現在のまたは従来のエンドシステムおよびスイッチの必要性を限定し、あるいは不要にするということである。さらに、上記の実施形態は複数のサーバーまたは記憶デバイスにわたってデータのミラーリングを提供し、故障が生じた場合の冗長手段を提供する。上記の実施形態のさらに別の利点は、マルチプロセッサまたは複数のサーバーが、互いに比較され得る同じ計算を実行できるようにすることによって、記載したネットワークが処理タスクの冗長な検証を提供するということである。
【０１０２】
上記の実施形態のさらに別の利点では、ルールベースのスケジューラは、１つまたは複数のフルネス・インジケータに基づいてサービスデータおよび出口ポートの調停を提供し、サービスの優先順位を確立することを可能にする。サービスの優先順位は、利用されないサービススケジュールを浪費することなく、出口スケジューリング機能の適応可能であるが決定論的な動作を可能にする。
【０１０３】
すでに記載されていない範囲で、様々な実施形態の異なる特徴および構造を互いに組み合わせて用いることができる。１つの特徴を実施形態の全てにおいて示しているわけではないということは、それができないと解釈されるものではなく、説明を簡潔にするためにそのようにしているのである。したがって、新規な実施形態が明白に記載されているか否かを問わず、新規な実施形態を形成するように、異なる実施形態の様々な特徴を要望通りに混合し適合させることができる。本明細書に記載されている特徴の全ての組合せまたは置換は、この開示によって包括される。
【０１０４】
この明細書は、本発明を開示するために実施例を用いており、最良の形態を含んでいる。また、いかなる当業者も本発明を実施することができるように実施例を用いており、任意のデバイスまたはシステムを製作し使用し、任意の組み込まれた方法を実行することを含んでいる。本発明の特許され得る範囲は、請求項によって定義され、当業者が想到する他の実施例を含むことができる。このような他の実施例が請求項の文字通りの言葉と異ならない構造要素を有する場合、または、それらが請求項の文字通りの言葉と実質的な差異がなく等価な構造要素を含む場合には、このような他の実施例は特許請求の範囲内であることを意図している。
【符号の説明】
【０１０５】
１０  航空機
１２  遠隔入力ユニット（ＲＩＵ）
１４  サブスクライバユニット
１６  データ通信ネットワーク
１８  アビオニクス・データ・サーバー（ＡＤＳ）
２０  物理ＲＩＵ
２２  共通入口インターフェース
２４  入口ポートスケジューラ
２５  フレーム・ディスクリプタ・マネージャ（ＦＤＭ）
２６  ディスクリプタ参照テーブル（ＤＬＴ）
２７  ポリサー
２８  中央データサーバー（ＣＤＳ）
２９  ディスクリプタ・マルチキャスト・ディストリビュータ（ＤＭＤ）
３０  出口パラメトリック・メッセージ・スケジューラ（ＰＭＳ）
３１  パラメトリック・メッセージ・コンストラクタ（ＰＭＣ）
３２  物理サブスクライバユニット
３４  共通出口インターフェース
３６  仮想リンク
３８  データ結合
４０  データキュー
４１  出口ポートごとのデータ・メッセージ・キュー
４２  物理入口ポート
４３  出口ポートごとのディスクリプタ・キュー
４４  入口物理インターフェース
４６  仮想入口ポート
４８  入口仮想インターフェース
５０  到着時刻（ＴｏＡ）レコーダ
５２  入口ポートコンセントレータ
５４  循環バッファ
５６  現在値テーブル（ＣＶＴ）
５８  パラメトリック・メッセージ・テーブル
６０  １０Ｍｂｐｓの循環バッファ
６２  １００Ｍｂｐｓの循環バッファ
６４  １Ｇｂｐの循環バッファ
６６  物理出口ポート
６８  出口物理インターフェース
７０  キュー・フルネス・インターフェース
７２  仮想出口ポート
７４  仮想出口インターフェース
７６  ルールベースのスケジューラ
７８  分散プロセッサ
８０  グラフィクスレンダラ
８２  仮想エンドシステム（ＶＥＳ）
８４  ネットワーク・マスストレージ
８６  ループバックポート
【図１】
0005868470.tif 000002
【図２】
0005868470.tif 000003