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