(57)【要約】データスイッチング方法。クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信する。クロスポイントスイッチはデータをクロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストする。クロスポイントスイッチの前記出力ポートまたは各出力ポートは、ＦＰＧＡのような論理機能デバイスの対応する入力部に接続されている。論理機能デバイスは、クロスポイントスイッチの出力ポートまたは各出力ポートから受信したデータに、アドレスフィルタリングまたは多重化のような論理機能を適用し、処理後のデータを論理機能デバイスの１つまたは複数の出力インタフェースに出力する。また、或るスイッチング方法は、受信したデータを出力部へと回路交換するとともにそのデータを上位層機能にコピーする。
2017519449.tif 000002
【特許請求の範囲】
【請求項１】
データスイッチング方法であって、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストし、
前記クロスポイントスイッチの前記出力ポートまたは各出力ポートを、論理機能デバイスの対応する入力部に接続し、
前記論理機能デバイスが前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力すること
を備える、データスイッチング方法。
【請求項２】
前記クロスポイントスイッチは当該クロスポイントスイッチの複数の出力ポートに前記データをマルチキャストする、請求項１に記載のデータスイッチング方法。
【請求項３】
前記クロスポイントスイッチは当該クロスポイントスイッチの１つの出力ポートに前記データをユニキャストする、請求項１に記載のデータスイッチング方法。
【請求項４】
前記論理機能デバイスはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を備える、請求項１〜３のいずれか１項に記載のデータスイッチング方法。
【請求項５】
前記論理機能デバイスの前記出力インタフェースまたは各出力インタフェースは前記クロスポイントスイッチの入力部に接続されている、請求項１〜４のいずれか１項に記載のデータスイッチング方法。
【請求項６】
前記論理機能デバイスによって適用された前記論理機能は、内容ベースフィルタリングを備える、請求項１〜５のいずれか１項に記載のデータスイッチング方法。
【請求項７】
前記内容ベースフィルタリングはアドレスフィルタリングであり、そのアドレスフィルタリングによって、前記クロスポイントスイッチは当該クロスポイントスイッチの複数の出力ポートに前記データをマルチキャストし、複数のクライアントデバイスは前記論理機能デバイスの複数の出力ポートにそれぞれ関連付けされており、このことによって、特定のローカルクライアントデバイスにアドレス指定されたデータだけが前記論理機能デバイスの対応する出力ポートから出力されるように前記論理機能デバイスは前記クロスポイントスイッチの各出力ポートからのデータをフィルタする、請求項６に記載のデータスイッチング方法。
【請求項８】
前記論理機能は多重化である、請求項１〜７のいずれか１項に記載のデータスイッチング方法。
【請求項９】
前記論理機能は、前記論理機能デバイスのトランシーバ毎に専用のルーティングテーブルを提供することによって有効化されるレイヤ３ルーティングである、請求項１〜８のいずれか１項に記載のデータスイッチング方法。
【請求項１０】
管理デバイスを使用して、高速遠隔再構成を有効にするように前記論理機能デバイスの複数の論理ブロックを再プログラムすることをさらに備える、請求項１〜９のいずれか１項に記載のデータスイッチング方法。
【請求項１１】
前記クロスポイントが重複データストリームをデータパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに配信することによって、複数のデータパケットを捕捉することをさらに備える、請求項１〜１０のいずれか１項に記載のデータスイッチング方法。
【請求項１２】
データスイッチであって、
データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記出力ポートの少なくとも１つに設定可能にキャストするように構成されているクロスポイントスイッチと、
前記クロスポイントスイッチの前記出力ポートまたは各出力ポートにそれぞれ接続された、１つまたは複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスと
を備えるデータスイッチ。
【請求項１３】
データスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストすること、
前記クロスポイントスイッチの前記出力ポートまたは各出力ポートを論理機能デバイスの対応する入力部に接続すること、
前記論理機能デバイスが、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力すること
を実行させる、非一時的コンピュータ読み取り可能媒体。
【請求項１４】
データスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、
どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、
クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートが論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、
前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段と
を備えるコンピュータプログラム製品。
【請求項１５】
物理層データスイッチング方法であって、
スイッチの少なくとも１つの入力ポートでデータを受信し、
前記データを前記スイッチの少なくとも１つの出力ポートへと回路交換し、
上位層プロセスに前記データをコピーすること
を備える、物理層データスイッチング方法。
【請求項１６】
物理層データスイッチであって、
複数のデータ出力部のうちの１つまたは複数へと設定可能に回路交換される複数のデータ入力部であって、第１のデータ出力部が第１の入力部から回路交換されたデータを受信し、第２のデータ出力部が前記第１の入力部から前記データのコピーを受信する、前記複数のデータ入力部と、
前記第２のデータ出力部に接続された上位層機能回路と
を備える物理層データスイッチ。
【請求項１７】
前記上位層機能回路はパケットタイムスタンピングを実行するように構成されている、請求項１６に記載の物理層データスイッチ。
【請求項１８】
前記上位層機能回路はパケット捕捉を実行するように構成されている、請求項１６または１７に記載の物理層データスイッチ。
【請求項１９】
前記上位層機能回路は前記第１のデータ出力部においてレイテンシに影響を及ぼさずに、データパケット統計のカウントを実行するように構成されている、請求項１６または１７に記載の物理層データスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデータスイッチングに関し、特に、ＦＰＧＡまたはＡＳＩＣなどの１つまたは複数の論理機能デバイスを有する１つまたは複数のクロスポイントスイッチの組み合わせを用いて所望のネットワーク機能を実装する効率的な低レイテンシデータスイッチに関する。
【背景技術】
【０００２】
１つのソースからデータパケットを得て多数の送信可能な送信先のうちの１つまたは複数にデータパケットを送信することが望ましい場合が多い。例えば、証券取引所からダウンストリーム方向への場合がこれに該当し、株式トレーダのコンピュータなどの多数の機械が取引所からパケットを受信できるようにしておくことが望ましい。
【０００３】
アプリケーションによっては、１つのポートから多数のポートにブロードキャストまたはマルチキャストすることが適切である。マルチキャストは、デバイス（スイッチ）の入力部での個々のパケットを当該スイッチの１つ１つの出力部にブロードキャストするが、これは、例えば、クロスポイントスイッチを用いることによって達成可能である。しかしながら、パケットスイッチの場合のような他の状況では、２つのエンドポイント間のユニキャスト通信はプライベートでなければならない。
【０００４】
アドレス指定可能なスイッチングは、何らかの仕組み（例えば従来のパケットスイッチにおける連想メモリ（content addressable memory）等）を用いてダウンストリームパケットを処理することにより、集積回路に実装可能である。従来、これには、単一のトランシーバでデータを受信し、パケットアドレスを確認し、ルックアップテーブルを参照してそのアドレスに関連付けされたポートを識別し、次に、そのポート宛てだけにパケットを送ることを必要とする。このアプローチは、使用する帯域幅を最適化する考え方に基づくが、比較的複雑な回路がスイッチ内に必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現行のネットワークスイッチは、レイヤ１（物理層）のデータが、レイヤ１に返送される前に、アドレスを確認するためにレイヤ２（データリンク層）に変換されることが必要である。レイヤ１からレイヤ２へのデータの変換には、データを並列ストリームに非直列化することが必要である。なぜなら、関連する周波数では直列ストリームでレイヤ２の特徴を実装することが難しいからである。これは、あらゆるレイヤ２処理は、レイヤ１よりもはるかに速度が遅く、最も高速のレイヤ２ネットワークスイッチでさえ、レイヤ２のアドレス確認におよそ２００〜４００ｎｓの、かなりの遅延が発生することを意味する。複数のトレーダの通信データ量を単一のストリームへとアップストリームに集約するために用いる際には、メタマコＬＰ社製のメタコネクトＣ１６スイッチに加えて、「多対１」スイッチ、例えばイーサネット（登録商標）スイッチを使用することが必要で、レイテンシが大きくなり望ましくない。さらに、ネットワークスイッチは、単一のデバイスのアップストリームデータ経路にもダウンストリームデータ経路にも対処しなければならない場合が多く、信号経路が複雑になり、クロックの制限をもたらす。既存のスイッチの多くは、帯域幅を最適化し、多くのユースケース間で汎用的に用いるように設計されている。
【０００６】
本明細書に含まれている文献、行為、材料、デバイス、物品またはその他のいずれかの説明は、単に本発明に技術背景を提供することを目的とする。これらの事項のいずれか、もしくはすべてが本出願の各請求項の優先日よりも前に存在したことにより、従来技術の基礎の一部を形成していると、または、本発明に関連する分野において一般によく知られた知見であると認めるものではない。
【０００７】
本明細書全体を通して、「ｃｏｍｐｒｉｓｅ（備える、含む）」という語、または「ｃｏｍｐｒｉｓｅｓまたはｃｏｍｐｒｉｓｉｎｇ」などの変化形は、記載された要素、整数もしくはステップ、または要素、整数もしくはステップの群が含まれることを含意すると理解されるが、任意の他の要素、整数もしくはステップ、または要素、整数もしくはステップの群を排除するものではない。
【０００８】
本明細書では、ある要素が、列記された選択肢「の少なくとも１つ」であってもよいという記述は、その要素が、列記された選択肢のうちのいずれか１つであってもよいか、または、列記された選択肢のうちの２つ以上の任意の組み合わせであってもよいことと理解されたい。
【課題を解決するための手段】
【０００９】
第１の態様によれば、本発明は、データスイッチング方法であって、クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストし、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートを、論理機能デバイスの対応する入力部に接続し、前記論理機能デバイスが前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力することを備える方法を提供する。
【００１０】
第２の態様によれば、本発明は、データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記出力ポートの少なくとも１つに設定可能にキャストするように構成されているクロスポイントスイッチと、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートにそれぞれ接続された、１つまたは複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスとを備えるデータスイッチを提供する。
【００１１】
第３の態様によれば、本発明は、データスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストすること、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートを論理機能デバイスの対応する入力部に接続すること、前記論理機能デバイスが、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力することを実行させる、非一時的コンピュータ読み取り可能媒体を提供する。
【００１２】
第４の態様によれば、本発明は、データスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートが論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段とを備えるコンピュータプログラム製品を提供する。
【００１３】
本発明のいくつかの実施形態では、クロスポイントスイッチの少なくとも１つの出力ポートにデータを設定可能にキャストするクロスポイントスイッチは、クロスポイントスイッチの複数の出力ポートにデータをマルチキャストするクロスポイントスイッチを備えることができる。いくつかの実施形態では、クロスポイントスイッチの少なくとも１つの出力ポートにデータを設定可能にキャストするクロスポイントスイッチは、クロスポイントスイッチの１つの出力ポートにデータをユニキャストするクロスポイントスイッチを備えることができる。
【００１４】
論理機能デバイスは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、適切に構成されたｘ８６ＣＰＵ系のプロセッサ、もしくはネットワークインタフェースが組み込まれたマルチコアマイクロプロセッサのような適切に構成された特定用途向け集積回路（ＡＳＩＣ）、または複数のこのようなデバイスを備えることができる。本明細書でのＦＰＧＡを利用する実施形態についての説明は、本発明の範囲内でＡＳＩＣまたは適切に構成されたプロセッサにもまた適用可能なものであるとして理解されたい。
【００１５】
本発明のいくつかの実施形態は、帯域幅使用の最適化を断念することによって、低レイテンシの向上、および／または決定性向上（ＭＡＣコリジョンの減少）のための最適化をこのように効果的に得ることができる。クロスポイントスイッチのブロードキャスト機能を使用して２つ以上の受信機にデータを分配することによって、可能総帯域幅が減少し、個々のハードウェア要素のデータスループットは必ずしも最大化されないが、本発明は、こうした複数の同一のデータストリームの並列処理が、他の有益な効果を有することを認識している。したがって本発明は、既存のスイッチの多くは、帯域幅を最適化し、多くのユースケース間で汎用的に使用するように設計されているが、このことがレイテンシおよび決定性を犠牲にしていると認識している。
【００１６】
データは、１つまたは複数のサーバを起点とするダウンストリームのデータとすることができ、１つまたは複数のクライアントデバイスを対象とすることができる。これに加え、またはこの代わりに、データは、１つまたは複数のクライアントデバイスを起点とするアップストリームのデータとすることができ、１つまたは複数のサーバを対象とすることができる。これに加え、またはこの代わりに、データは、高性能コンピューティングクラスタのノード間で、またはデータセンタネットワークのノード間で切り換えられるデータのような、ピアツーピアのデータとすることができる。
【００１７】
クロスポイントスイッチの出力ポートの、ＦＰＧＡの入力ポートへの接続は、いくつかの実施形態では、直接的な接続を備えることができる。あるいは他の実施形態では、ＡＣ結合用キャパシタのような回路素子、またはレベルトランスレーション、バッファリング、増幅、もしくは信号回復を実行するＩＣを間に介在させることができる。
【００１８】
ＦＰＧＡ出力インタフェース、または各ＦＰＧＡ出力インタフェースは、出力ポート、周辺部品相互接続エクスプレス（ＰＣＩｅ）出力部、他の出力インタフェース、または高速通信用インタフェースのストリームの群、のうちの１つまたは複数を備えることができる。
【００１９】
いくつかの実施形態では、データは、サーバのような遠隔した場所から受信したダウンストリームデータであって、クロスポイントスイッチにとってローカルな１つまたは複数のクライアントデバイスに分配するように意図されたダウンストリームデータとすることができる。デバイスは、たとえスイッチと物理的に同一の場所になくても、スイッチに接続され、スイッチを介してより広いネットワークとインタフェースしているのであれば、スイッチにとってローカルであると見なされる。このような実施形態では、ＦＰＧＡによって適用される論理機能は、アドレスフィルタリングのような、内容ベースフィルタリングを備えることができ、これにより、クロスポイントスイッチが、クロスポイントスイッチの複数の出力ポートにデータをマルチキャストするとともに、複数のクライアントデバイスが、複数のＦＰＧＡの出力ポートにそれぞれ関連付けされていることによって、特定のローカルクライアントデバイスにアドレス指定されたデータだけがそれぞれのＦＰＧＡの出力ポートから出力されるように、ＦＰＧＡが、クロスポイントスイッチの各出力ポートからのデータをフィルタする。したがって、このような実施形態は、効率的にブロードキャストするためにクロスポイントスイッチを利用し、効率的なアドレス指定、およびその他の機能のためにＦＰＧＡを利用する。内容ベースフィルタリングであれば、Ｌ２、Ｌ３またはＬ４から宛先またはソースアドレスを参照することによるアドレス指定を伴う場合もあるが、プロトコルに基づくフィルタリング、ファイアウォールの場合の、状態に基づくフィルタリングおよびディープパケット検査、侵入検出もしくは流出検出システム、フィルタリング対象のパケットの無効化、またはＦＰＧＡに実装される任意の他の論理機能によるフィルタリングを含むこともまた可能であろう。クロスポイントスイッチを用いて、ＦＰＧＡの２つ以上の機能ブロックにデータストリームをコピーすることにより、複数の機能を同じデータに関してＦＰＧＡ内で同時に実行可能になる。このような実施形態では、ＦＰＧＡの単一のトランシーバが、各フィルタについて受信および送信の両方の役割を果たすことができる。あるいは、ＦＰＧＡ出力ポートに接続されているクライアントデバイスのような別のデバイスが代わりに、このようなアドレスフィルタリング用に構成されている実施形態では、ＦＰＧＡは、アドレスフィルタリングせずに出力ポートにデータを渡すことができる。したがって、このような実施形態は、各データパケットをアドレス指定するために、帯域幅が最適化されたレイヤ２ルックアップアプローチと対照をなす、「ブロードキャストアンドフィルタ」アプローチを用いる。
【００２０】
他の実施形態では、データは、クロスポイントスイッチにとってローカルな１つまたは複数のクライアントデバイスから受信したアップストリームデータであって、１つまたは複数のサーバのような、１つまたは複数の遠隔した場所への配信を意図されたアップストリームデータとすることができる。このような実施形態では、ＦＰＧＡによって提供される論理機能は、多重化していてもよい。多重化は、それぞれのデータクロックを同期するために、それぞれのＦＩＦＯバッファ、またはメモリキューにＦＰＧＡの各受信機入力部を接続し、２つ以上のクライアントデバイスから単一のアップストリームデータストリームへとデータを多重化するマルチプレクサに、各ＦＩＦＯまたはメモリキューの出力を渡すことにより、ＦＰＧＡによって提供することができる。次に、アップストリームデータストリームは、ＦＰＧＡのポートで送信機によって出力され、外部ネットワークの前面パネルポートに配信するためのクロスポイントスイッチに、すなわちもっと一般的には、クライアントデバイスに渡されてもよい。このクライアントデバイスに含まれる得るものとしては、例えば、スイッチの内部の、ネットワークインタフェースカードがある。いくつかの実施形態では、ＦＰＧＡロジックは、ファイアウォール、ＩＰアドレス指定のようなレイヤ３もしくは４の機能、または、場合によっては並行して実装される、パケット変換を実施するように構成することができる。
【００２１】
いくつかの実施形態は、ローカルデバイスからＦＰＧＡの複数のマルチプレクサにアップストリームデータをマルチキャストするクロスポイントスイッチと、アドレスフィルタを有する各マルチプレクサの出力をフィルタリングすることにより、データがそれぞれの外部ネットワークポートに対してアドレス指定された場合に、それぞれのマルチプレクサからそのポートにだけデータが中継されるようにすることによって、ローカルデバイスから複数の遠隔した場所へのデータ配信をさらに提供することができる。
【００２２】
いくつかの実施形態では、クロスポイントスイッチは、アップストリームデータおよびダウンストリームデータの両方を取り扱うことができ、これにより、データのストリームの一方が、クロスポイントスイッチによってＦＰＧＡの方に向けられているのに対して、データのもう一方でストリームが、クロスポイントスイッチの前面ポート間で１つまたは複数のクライアントデバイスに直接接続されている。
【００２３】
ＦＰＧＡは、トランシーバ毎に専用のルーティングテーブルを提供することにより、レイヤ３（ネットワーク層）ルーティングを実装するように構成することができる。ハードウェアは非能率的であるが、このような実施形態には、すべてのルーティング用に使用される単一のルーティングテーブルを使用しているレイヤ３ルータと比較して、かなり大きなレイテンシの利点がある。
【００２４】
本発明の実施形態は、アップストリームデータ機能およびダウンストリームデータ機能のそれぞれに対して、別個のＦＰＧＡ、または別個のＦＰＧＡロジックを提供することができる。このような実施形態により、アップストリームロジックおよび／またはダウンストリームロジックをＦＰＧＡ内で物理的に小さくすることが可能になり、ＦＰＧＡロジックで使用されるパイプラインステージを少なくするとともに、レイテンシおよびルーティングの遅延を減らすことが可能になる。アップストリームデータコンポーネントおよびダウンストリームデータコンポーネント用のロジックが、確実にトランシーバのようなハードウェアを共有しないようにすることは、ルーティングの輻輳を緩和するのに有利である。同様の検討事項は、高性能コンピューティング用途のプロセッサコア間の負荷平準化のためのデータスイッチの使用といったような、ピアツーピアの構成にあてはまる。
【００２５】
本発明は、ＦＰＧＡを設けることにより、論理ゲートおよびＲＡＭブロックの大規模なリソースを提供して、非常に高速のＩ／Ｏおよびデータバスを用いて、単純なデジタル演算処理または複雑なデジタル演算処理のいずれかを実施することを認識している。ＦＰＧＡの論理機能が再構成可能であるので、ポート出力はそれぞれ、場合によっては異なる論理機能を実装させることが可能である。すなわち、単純なフィルタ、複数の入力ストリームの多重化、多重化およびフィルタ、または３値連想メモリ（ＴＣＡＭ）に基づいたもっと伝統的なレイヤ２スイッチ機能を実装させることができる。さらに、このような機能は、必要に応じて、しかもプログラム可能に、かつ、非常に時宜を得たやり方で更新可能であり、これは、市場取引データを取り扱う場合のような、時間によって変動しやすい再構成要件を有する用途にとって重要な場合がある。本発明のいくつかの実施形態は、したがって、適用可能なハードウェア記述言語などを使用して、ＦＰＧＡの論理ブロックを再プログラムするように動作可能な管理コンピュータをさらに提供することができることにより、マイクロ秒以内でのフィルタ機能またはハードコードされたルーティング規則の調節といったような、遠隔からの再構築が高速で可能になる。例えば、管理コンピュータは、例えばインターネットを介して遠隔からアクセス可能であることが好ましい、６４ビット版ｘ８６プロセッサを備えることができる。管理コンピュータは、ＰＣＩエクスプレス（ＰＣＩｅ）のような高速直列コンピュータ膨張バスを介して、またはネットワークリンクを介して、ＦＰＧＡに命令を配信することができる。いくつかの実施形態であれば、そのＦＰＧＡまたはある１つのＦＰＧＡの作用によって自動的に、フィルタまたはその他の論理機能を内部に構成することも可能であろう。例えば、構成情報は、例えば従来のスイッチにおいてＭＡＣアドレス学習機能をエミュレートするような目的で、ＦＰＧＡのマルチプレクサ間、フィルタ間または論理機能ブロック間で、低帯域幅で渡される場合もあり得る。
【００２６】
いくつかの実施形態では、ＦＰＧＡは、複数の機能で構成することができ、所望の機能に関連付けされたＦＰＧＡポートにデータスイッチングするクロスポイントスイッチによって、所望の機能が適応的に選択されている。
【００２７】
クロスポイントからのデータは、ＦＰＧＡによって提供される任意の適切な論理機能に、例えば、ＦＰＧＡがレイヤ１で動作可能な単純な通信プロトコルにおけるＡＮＤまたはＸＯＲのような単純な論理ゲート、または、フィルタリングおよび／または多重化のような、より複雑な組み合わせ機能などに向けることができる。論理機能は、いくつかのパケットフィールドの内容を入力として使用し、次に、必要に応じて、順序論理および組み合わせ論理を用いて、他のパケットフィールドの内容を修正することができる。いくつかの実施形態では、フィルタリングは、任意の１つまたは複数のフィールドに、またはフィールドの組み合わせに基づくことができ、表現式またはプログラムから動的にコンパイルされたフィルタを利用することができ、ディープパケット検査による状態に基づく検査を伴うことができ、または、金融市場データリスクを確認するゲートウェイを備えることができる。論理機能は、レイヤ３ルーティング（例えば、イーサネット（登録商標）／ＩＰでは、ＩＰアドレス情報に基づいてＭＡＣアドレスを変換する）、レイヤ４ルーティング（例えば、ＩＰ／ＵＤＰまたはＩＰ／ＴＣＰでは、ＵＤＰまたはＴＣＰのポートの情報に基づいてＩＰアドレスを変換し、ＮＡＴを実施する）、金融市場データチッカー装置もしくは構文解析器、またはアプリケーションプロトコルトランスレータのような変換を伴う場合がある。論理機能は、アービタを有効にして、例えば多数のソースからデータを供給し、（例えばロスは多いが高性能の通信リンクを、信頼度は高いが速度が遅いリンクと組み合わせるために）重複したものを破棄することができる。いくつかの実施形態では、ＦＰＧＡは、データストリームのデータのタイムスタンピングを有効にすることにより、レイヤ１機能と同じデバイスの中でレイヤ２機能を提供するように構成することができる。タイムスタンピングを有効にするために、ＦＰＧＡは、その入力データインタフェース上でパケットの開始を検出し、タイムスタンプを生成することが可能である。このタイムスタンプは、メタデータとしてパケットに追加可能であり、後で処理するために格納し、分析のために別のデバイスに送り、および／またはフレーム検査シーケンス（ＦＣＳ）またはフレーム間ギャップ（ＩＦＧ）の代わりにパケットに追加することが可能である。ＦＰＧＡによって、データパケット捕捉機能をさらに提供することができ、これにより、クロスポイントは、データパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに、重複したデータストリームを直接的または間接的に配信する。
【００２８】
いくつかの実施形態では、ＦＰＧＡは、外部コネクタへの外部の高速シリアルバス接続をさらに設けることができ、大型のデータメモリ、または大容量コンピューティングといったような、より規模の大きな機能にＦＰＧＡを接続可能になる。
【００２９】
ＦＰＧＡは、（概してタイムスタンピングに用いられる）内部クロックが、何らかの規定された時間（通常、秒の開始時）にパルスを生成する外部の時間源（ＧＰＳ等）に同期されることが可能になるように、受信データシンボルの立ち上がり区間を検出する毎秒パルス数モニタとしての役割を果たすように構成されたロジックをさらに設けることができる。
【００３０】
クロスポイントスイッチのデータポートは、例えば、１０ＧＢＡＳＥ−Ｔインタフェース型または１０００ＢＡＳＥ−Ｔインタフェース型を使用する銅ケーブル、１００ＢＡＳＥ−ＴＸ銅ケーブル、１０ＧＢＡＳＥ−Ｒ／１０００ＢＡＳＥ−Ｘを使用する光ファイバケーブル、ダイレクトアタッチ銅ケーブルなどの任意の適切なケーブルからデータを受信することができる。クロスポイントスイッチは、ＳＦＰ、ＳＦＰ＋、ＱＳＦＰ、ＱＳＦＰ＋、ＣＦＰのような、任意の適切なプラグ接続可能なモジュールからデータを受信することができる。それらのモジュールであれば、ダイレクトアタッチ銅ケーブル、１ＧＢａｓｅ−ＳＸ、１０ＧＢａｓｅ−ＳＲ、１０ＧＢａｓｅ−ＬＲ、ＤＷＤＭまたはその他の接続性規格のケーブルを介しての接続も可能であろう。あるいは、コネクタまたはプリント回路基板を使用して、クロスポイントスイッチを別のデバイスに直接接続することも可能であろう。
【００３１】
クロスポイントスイッチは、ＦＰＧＡとは物理的に離されたＡＳＩＣとして設けることができる。
いくつかの実施形態では、ＦＰＧＡのトランシーバは、ＦＰＧＡおよびクロスポイントスイッチを収容しているデバイスの前面パネルポートに直接接続することができる。あるいは、ＦＰＧＡのトランシーバは、クロスポイントスイッチに接続され、前面パネルポートから離すことができる。
【００３２】
本発明の第３の態様、または第４の態様のいくつかの実施形態では、コンピュータコードまたは命令がスイッチの所有者または管理者によって購入可能なサーバ上に常駐し、スイッチの所有者または管理者のハードウェアが、このコンピュータコードまたは命令によって容易になった新たな機能で構成されるようにすることができる。コンピュータコードまたは命令は、ソースコード、ＦＰＧＡハードウェア記述言語（ＨＤＬ）、または例えば、ＨＤＬにコンパイル可能な上位レベル言語の命令を備えることができる。
【００３３】
第５の態様によれば、本発明は、物理層データスイッチング方法であって、スイッチの少なくとも１つの入力ポートでデータを受信すること、データをスイッチの少なくとも１つの出力ポートへと回路スイッチングすること、上位層プロセスにデータをコピーすること、を含む方法を提供する。
【００３４】
第６の態様によれば、本発明は、物理層データスイッチであって、複数のデータ入力部であって、複数のデータ出力部、すなわち、第１の入力部から回路スイッチングされているデータを受信する第１のデータ出力部、および第１の入力部からデータのコピーを受信する第２のデータ出力部、のうちの１つまたは複数へと設定可能に回路スイッチングすることがそれぞれ可能な複数のデータ入力部と、第２のデータ出力部に接続された上位層機能回路と、を備えるスイッチを提供する。
【００３５】
第７の態様によれば、本発明は、データスイッチの構成用の非一時的コンピュータ読み取り可能媒体であって、１つまたは複数のプロセッサによって実行される場合に、スイッチの少なくとも１つの入力ポートで受信したデータを、スイッチの少なくとも１つの出力ポートへと回路スイッチングすること、上位層プロセスにデータをコピーすること、を実行させる命令を含む、非一時的コンピュータ読み取り可能媒体を提供する。
【００３６】
第８の態様によれば、本発明は、物理層データスイッチング方法であって、スイッチの少なくとも１つの入力ポートでデータを受信すること、データをスイッチの少なくとも１つの出力ポートへと回路交換すること、上位層プロセスを修正するか、またはデータを補足するとともに、スイッチの第２の出力ポートで第２のデータ出力を生成すること、を含む方法を提供する。
【００３７】
したがって本発明の第５〜第８の態様は、物理層を処理することにより、結果として低レイテンシおよびプロトコルの汎用性が得られるが、物理層スイッチは有用なカウンタおよび統計を提供せず、これらは上位層でのみ抽出可能であり、したがって、物理層スイッチは、例えば、このようなスイッチを使用してデータリンクを監視し、問題を診断することができないので、ネットワーク管理者にとって不都合があることを認識している。
【００３８】
従来の物理層スイッチとは対照的に、本発明の第５〜第８の態様の実施形態は、むしろ、データスループットにレイテンシオーバーヘッドをまったく加えずに、低レイテンシおよびプロトコルの汎用性の恩恵を保持しつつ、上位層の機能もまた提供する物理層スイッチを提供する。特に、データを直接入力部から出力部に回路スイッチングすることによって、物理層スイッチは、低レイテンシレベルで動作する。さらに、上位層プロセスに同じデータをコピーすることによって、物理層スイッチングのレイテンシに影響を及ぼさずに、上位レベル監視機能を実装可能である。なぜなら、このような機能は、スイッチングと並行して実行されるからである。例えば、本発明の第５〜第８の態様のいくつかの実施形態では、上位層プロセスは、ネットワーク上で使用される一般的なプロトコルである、ＩＰパケットおよびイーサネット（登録商標）フレームを識別することを含むことができる。その他のプロトコルには、ファイバチャネル、インフィニバンド（商標）およびＳＤＩなどが含まれ得る。このような並行処理は、たとえ上位レベル監視カウンタおよび統計には、追加の処理時間がかかっても、これによりデータがスイッチを通過する際にデータを遅延させないことを意味する。本発明の第５〜第８の態様のいくつかの実施形態では、カウンタおよび統計のような、上位層プロセスの出力は、スイッチの管理インタフェースを介してアクセスされ、データ経路の低レイテンシを妨げることがない。
【００３９】
本明細書において「上位層プロセス」という場合には、物理層で行われないプロセスを指していることを理解されたい。本発明の第５〜第８の態様のいくつかの実施形態では、上位層プロセスは、物理層アイドルパターンおよび物理層エラー、例えば、８Ｂ／１０Ｂコード違反の検出を含めた、上位レベル処理のための物理層データの変換を含むことができる。
【００４０】
本発明の第５〜第８の態様のいくつかの実施形態では、複数のデータ入力部において、そして好ましくはすべてのデータ入力部において受信したデータが、１つまたは複数のそれぞれの上位層プロセスにコピーされる。したがってこのような実施形態は、各データ入力部またはすべてのデータ入力部のレイヤ１スイッチングを有効にする一方で、同時に、レイテンシに影響を与えずに、各インタフェースのパケット識別といったような１つの上位層プロセスまたは複数の上位層プロセスを提供することができる。
【００４１】
本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、それぞれのインタフェースについてのデータパケット統計のカウンタを備えることができる。
【００４２】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、複数の受信および送信されたオクテット（８ビットバイト）のカウンタを備えることができる。
【００４３】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、複数のパケットの、タイプ別（ユニキャスト、マルチキャスト、およびブロードキャスト）カウンタを備えることができる。
【００４４】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、複数のパケットの、プロトコル別（イーサネット（登録商標）、ＩＰ、ＵＤＰ、ＴＣＰ、ＨＴＴＰ、ＳＳＨ、ＳＮＭＰ、ＡＲＰなど）カウンタを備えることができる。
【００４５】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、複数のパケットの、サイズ別カウンタを備えることができる。例えば、６４バイトのデータパケットの数、６５〜１２７バイトのデータパケットの数、２５６〜５１１バイトのデータパケットの数などである。
【００４６】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、無効なフレーム検査シーケンス（ＦＣＳ）、「ラント（ｒｕｎｔ）」パケット、「ジャイアント」パケットおよび／またはアライメントエラーなどに起因するパケットエラーの数のカウンタを備えることができる。
【００４７】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、ドロップフレーム数のカウンタを備えることができる。
【００４８】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、ＶＬＡＮおよび／またはＭＡＣｓｅｃカウンタを備えることができる。
【００４９】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、リンクアイドル状態の検出を備えることができる。
【００５０】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、アイドルパターンを注入する能力、またはアイドルパターンが配線上に送信されるようにする能力を備えることができる。
【００５１】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、物理層エラー、例えば、８Ｂ／１０Ｂコードエラーについてのカウンタを備えることができ、そこから物理層ビット誤り率の推定値を算出可能である。
【００５２】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、スイッチングデバイスに関するヒューリスティックスを提供するパケット検査を備えることができ、例えば、パケットＭＡＣアドレスを検査することによって、ある１つの接続または各接続のもう一方の端部に存在するホストおよび／またはデバイスを識別する。
【００５３】
本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、受信および送信のいずれかのインタフェース上で、または両方のインタフェース上で捕捉されたデータに関して適用することができる。
【００５４】
本発明の第５〜第８の態様のいくつかの実施形態では、統計カウンタ値などの上位層プロセス出力は、スイッチの管理モジュールによって報告可能である。このような実施形態のいくつかでは、管理モジュール機能は、コマンドライン、ウェブインタフェース、および／または、別個のコンピュータが公開されたカウンタ値を問い合わせ、または受信することが可能なＳＮＭＰのような、その他のメカニズムを含むことが可能である。
【００５５】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、パケットをタイムスタンプする能力を備えることができる。このような実施形態は、スイッチ内でタイムスタンプすることは、ネットワークレイテンシの測定のために、および正確な記録のために有用であると認識している。これらの正確な記録は、検査後に、試験／モデル化／ネットワークトラッフィック履歴の再現に使用可能である。イーサネット（登録商標）パケットを取り扱っている実施形態では、そのようなパケットが正確なタイムスタンプ情報のためのフィールドを有していないことに注目すれば、パケットのサイズを大きくすることによって、タイムスタンプ情報をパケットに追加する（タイムスタンプデータを先頭、または後尾に追加する）ことができる。
【００５６】
あるいは、タイムスタンプデータは、他の情報のために使用されるパケットの一部を置き換えることにより、各パケットに追加することができる。本発明の第５〜第８の態様のこのような実施形態には、完全に飽和したリンク、すなわち、チャネル上にそれ以上大きなパケットのための余地がまったくないリンク上で、パケットをタイムスタンプすることが可能であるという恩恵がある。パケットのサイズに影響を及ぼさないアプローチの１つは、イーサネット（登録商標）フレームのフレーム検査シーケンス（ＦＣＳ）フィールドを３２ビットのタイムスタンプ値で置き換えることである。ＦＣＳの検査後、エラーがないことが判明してはじめて、これを行うことができる。もしもＦＣＳがエラーを起こしていることが判明すれば、影響を受けたパケットでは特別なタイムスタンプ値を用いることが可能である。この特別なタイムスタンプは、有効なパケットには決して生じないものである。３２ビットのタイムスタンプは、基準瞬間がやはりわかっている別個のプロセスによる時間の絶対単位として解釈可能な既知の基準瞬間時からのナノ秒数を表すことも可能であろう。例えば、３２ビットのタイムスタンプは、絶対時間の最下位３２ビットをナノ秒で表すことができる。別の実施形態では、イーサネット（登録商標）のフレームのプリアンブルは、タイムスタンプ値で部分的に置き換えることができる。
【００５７】
したがって、データストリームのデータのコピーをタイムスタンピングする本発明の第５〜第８の態様の実施形態は、レイヤ１スイッチングと同一のデバイス内でレイヤ２機能を提供する。タイムスタンピングを有効にするために、デバイスは、その入力データインタフェース上でパケットの開始を検出し、タイムスタンプを生成することが可能である。このタイムスタンプは、メタデータとしてパケットに追加することが可能であり、後で処理するために格納したり、分析のために別のデバイスに送ったり、および／またはフレーム検査シーケンス（ＦＣＳ）またはフレーム間ギャップ（ＩＦＧ）の代わりにパケットに追加したりすることが可能である。
【００５８】
本発明の第５〜第８の態様の実施形態では、上位層機能は、パケットのタイムスタンピングを備えるが、いくつかの実施形態では、上位層デバイスは、タイムスタンプされた、元のデータストリームの遅延されたコピーを備える第２のデータストリームを出力することができる。したがって、このような実施形態は、低レイテンシでデータを出力部に配信する一方で、タイムスタンプ情報が追加された同じデータの遅延されたコピーもまた生成し、これらは、例えば、エンドユーザが別途分析を行うように、ロギングデバイス／コンピュータに接続することも可能であろう。
【００５９】
本発明の第５〜第８の態様の実施形態では、上位層機能は、パケットのタイムスタンピングを備えるが、タイムスタンプ値は、スイッチの受信インタフェース上でパケットの開始が検出された瞬間にカウンタレジスタをサンプリングすることにより、取得することができる。他の実施形態では、タイムスタンピングは、スイッチの出力インタフェース上で実行することができる。カウンタレジスタは、規則的に（例えばナノ秒毎に）更新されることが好ましい。その結果、カウンタレジスタは、現在時間をナノ秒で正確に表現したものとなる。カウンタは、１秒間隔パルス（ＰＰＳ）信号、高精度時間プロトコル（ＰＴＰ）などを介して、スイッチ外部の外部時間基準に同期させることができる。あるいは、タイムスタンプ値は、パケットの開始後に固定時間オフセットで得ることができ、パケットの開始が受信された実時間が、次に、タイムスタンプ値から固定時間オフセットを減算することにより取得することができる。このような実施形態では、この減算は、タイムスタンプがＦＣＳフィールドに書き込まれる前に実行可能である。またはこの代わりに、タイムスタンプされたデータストリームを後処理するときに実行可能である。
【００６０】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、データパケット捕捉を備えることができる。これにより、重複したデータストリームの一部またはすべてが、メディアアクセスコントローラ（ＭＡＣ）を介して処理され、次に、データパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに配信される。このような実施形態では、管理プラットフォームは、インタフェースを通過しているパケットを捕捉するように要求される場合があり、その結果、パケットが、遅延のないライン速度で送信される一方で、同時にパケットがコピーされ、ソフトウェア／管理ポートを介してエンドユーザに報告されることになる。いくつかの実施形態では、上位層機能は、ＭＡＣ処理なしにデータを捕捉することができる。一実施形態では、上位層機能は、２つ以上のポートから捕捉されたデータを集約することができる。
【００６１】
本発明の第５〜第８の態様のいくつかの実施形態では、データは、１つまたは複数のサーバを起点とするダウンストリームデータとすることができ、１つまたは複数のクライアントデバイスを対象とすることができる。これに加え、またはこの代わりに、データは、１つまたは複数のクライアントデバイスを起点とするアップストリームのデータとすることができ、１つまたは複数のサーバを対象とすることができる。これに加え、またはこの代わりに、データは、高性能コンピューティングクラスタのノード間で、またはデータセンタネットワークのノード間で切り換えられるデータのような、ピアツーピアのデータとすることができる。
【００６２】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、ファイアウォールの場合のディープパケット検査、侵入検出、または流出検出を備えることができる。
【００６３】
これに加え、またはこの代わりに、本発明の第５〜第８の態様のいくつかの実施形態では、上位層機能は、ＭＡＣ（メディアアクセスコントローラ）の出力を物理層に渡しながら、インタフェースＭＡＣにパケットを注入する能力を備えることができる。すなわち、このような実施形態では、ユーザソフトウェアは、管理インタフェースを介してスイッチにパケットを通信することができる。また、指定されたインタフェースについては、上位層機能は、受信ＭＡＣまたは送信ＭＡＣのいずれかにパケットを注入することが必要な場合がある。次に、パケットは、インタフェースから配線上を送信されることになる。この代わりに、パケットは、ソフトウェアまたはハードウェア（例えばＦＰＧＡ）によってデバイス上で生成することができる。すなわち、管理インタフェースを通じて通信されるのではなくデバイスを起点としている。このような実施形態のいくつかは、例えば、ダウンストリームのホストに代わってマルチキャストに加入する（ｓｕｂｓｃｒｉｂｅ）ように、インターネットソサエティのＲＦＣ２２３６の主題である、インターネットグループ管理プロトコル（ＩＧＭＰ）バージョン２に従って、および／または、プロトコル独立マルチキャスト（ＰＩＭ）ルーティングプロトコルに従って、および／または、境界ゲートウェイプロトコル（ＢＧＰ）などに従って、１つのパケットまたは複数のパケットを注入することができる。ＩＧＭＰの場合には、マルチキャストグループに対する加入または退会は、本発明のスイッチのポートに接続されたダウンストリームのクライアントに代わってマルチキャストパケットを受信するマルチキャストグループに登録するように、近くのマルチキャストルータに送信するために、ＩＧＭＰパケットを注入することを含むことができる。これにより、ダウンストリームのホストにこの機能を実行させる必要がなくなる。
【００６４】
本発明の第５〜第８の態様のいくつかの実施形態では、スイッチのデータポートは、例えば、１０ＧＢＡＳＥ−Ｔインタフェース型または１０００ＢＡＳＥ−Ｔインタフェース型を使用する銅ケーブル、１００ＢＡＳＥ−ＴＸ銅ケーブル、１０ＧＢＡＳＥ−Ｒ／１０００ＢＡＳＥ−Ｘを使用する光ファイバケーブル、ダイレクトアタッチ銅ケーブルなどの任意の適切なケーブルからデータを受信することができる。スイッチは、ＳＦＰ、ＳＦＰ＋、ＱＳＦＰ、ＱＳＦＰ＋、ＣＦＰのような、任意の適切なプラグ接続可能なモジュールからデータを受信することができる。それらのモジュールであれば、ダイレクトアタッチ銅ケーブル、１ＧＢａｓｅ−ＳＸ、１０ＧＢａｓｅ−ＳＲ、１０ＧＢａｓｅ−ＬＲ、ＤＷＤＭまたはその他の接続性規格のケーブルを介しての接続も可能であろう。あるいは、コネクタまたはプリント回路基板を使用して、スイッチを別のデバイスに直接接続することが可能であろう。
【００６５】
本発明の第５〜第８の態様のいくつかの実施形態では、データがコピーされる上位層機能は、スイッチの複数の出力部であって、それぞれの上位層機能にそれぞれが接続されている複数の出力部のうちの１つに、コピーされたデータストリームをスイッチングすることによって、適応的に選択することができる。このような実施形態により、どの上位層機能、またはどの複数の上位層機能が、コピーされたデータストリームに適用されるかの動的な選択が可能になる。このような実施形態では、上位層機能の出力をクロスポイントスイッチに戻して、上位層機能の出力をクロスポイントの任意の選択された出力部に動的、かつ、設定可能にスイッチング可能にすることができる。
【００６６】
本発明の第５〜第８の態様のいくつかの実施形態では、クロスポイントスイッチの入力部および／または出力部に位置している信号調整ブロックによって、データがコピーされる上位層機能を有効にすることができる。
次に、添付の図面を参照して、本発明の一例を説明する。
【図面の簡単な説明】
【００６７】
【図１】本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図２】図１のシステムにおけるアップストリームデータの取り扱いを図示する。
【図３】図１のシステムにおけるダウンストリームデータの取り扱いを図示する。
【図４】図１のシステムにおけるダウンストリームデータのブロードキャストを図示する。
【図５】本発明の別の実施形態の、再構成可能なダウンストリームデータのフィルタリングを提供しているデータ流れ図である。
【図６】本発明の別の実施形態の、再構成可能なアップストリームデータのフィルタリングを提供しているデータ流れ図である。
【図７】単一のＦＰＧＡに２つ以上のマルチプレクサが使用されている、別の実施形態を図示する。
【図８ａ】本発明の別の実施形態に従って完全にクロス接続されているスイッチを図示する。
【図８ｂ】図８ａの実施形態の１つのパケットの取り扱いを図示する。
【図９】本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１０】本発明の別の実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１１】本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１２】本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１３】本発明のさらなる実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１４】図１３の実施形態に従う信号調整ブロックの概略図である。
【発明を実施するための形態】
【００６８】
図１は、本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。それは、他のデバイスに接続可能な数個の前面パネルポートと、前面パネルポートに交信可能なトランシーバを有する数個のＦＰＧＡと、１つのポートから複数のポートにデータを再配置することだけでなくマルチキャストすることも可能なクロスポイントスイッチとで構成されている。なお、クロスポイントの出力がすべて、必ずしもＦＰＧＡの論理機能に接続されているわけではない。ポートによっては、外部のデバイスにデータ出力を提供することが必要になるからである。
【００６９】
図１のデバイスのアップストリームコンポーネントについては、デバイスは、多数の入力ストリームを得てそれらを１つに多重化するＦＰＧＡを提供する。次に、この多重化された単一のストリームは、クロスポイントスイッチを通して返送される。このデバイスには他のロジックがほとんどないので、輻輳がほとんどない。それは、短いパイプライン、またはＦＰＧＡの論理コンポーネントのグループ化を用いて、高いクロックレートでＦＰＧＡが駆動可能であることを意味する。すなわち、データ経路を単純化することにより、各素子の高度な最適化が可能になる。これにより、低レイテンシまたは他のロジックが可能になる。
【００７０】
ＦＰＧＡとクロスポイントスイッチとを図１に示されるやり方で組み合わせることによって、クロスポイントスイッチでブロードキャスト機能を有効にし、ＦＰＧＡでフィルタ機能または他の同様の機能を有効にすることが可能になる。利点は、効率的に低レイテンシで伝達可能なクロスポイントにおいてブロードキャストコンポーネントを伝達することが可能であることであり、フィルタ機能だけがＦＰＧＡに残る、すなわち、ＦＰＧＡ内の各フィルタが入力部および出力部を含む。これにより、複雑なロジックおよびクロッキングが極めてローカルに（場合によってはトランシーバ自体から近距離内に）保たれる。これにより、次には、デバイス内のレイテンシをさらに低くすることが可能になる。それは、ダウンストリームコンポーネント（したがってフィルタロジック）のためのトランシーバが、複数のＦＰＧＡの間に分散可能であることもまた意味する。なぜなら、ローカルにトランシーバに伝送する以外にＦＰＧＡ内でデータを伝送する必要がないからである。
【００７１】
それは、ダウンストリームロジックと相互作用することなく、隣接したトランシーバにアップストリームコンポーネントが実装可能であるという意味でもあり、場合によっては、はるかに効率良い（例えば、より低サイクルかつより低レイテンシの）アップストリームの実装が可能になる。本発明の範囲内の代替的な実施形態では、流れ制御または１０００ＢＡＳＥ−Ｘのオートネゴシエーションを実施する場合のように、アップストリームロジックコンポーネントとダウンストリームロジックコンポーネントとの間の相互作用が時には必要な場合がある。
【００７２】
アップストリームロジックおよびダウンストリームロジックは、図２に示されるように、別個のＦＰＧＡにさえも実装可能である。この構成では、デバイス内全体のはるかに多くのロジックを適合させることが可能である。代替的な諸実施形態は、アップストリーム機能およびダウンストリーム機能をいずれも１つのＦＰＧＡまたはＡＳＩＣ上に実装できるが、そのような実施形態においてさえ、アップストリームコンポーネントおよびダウンストリームコンポーネント用のロジックは、ハードウェアリソース（特に、トランシーバ）を共有する必要がなく、したがって、ＦＰＧＡの同じ箇所に常駐する必要がなく、ルーティングの輻輳を緩和する。
【００７３】
ダウンストリームコンポーネントが図３に示されている。このコンポーネントでは、ロジックを単純にすることもまた可能である。アップストリームサーバがノードのうちの１つにアドレス指定されたデータを送る際、このデータはクロスポイントスイッチによってＦＰＧＡ内の２つ以上のフィルタにブロードキャストされる。各フィルタは非常に小型であり必要なものすべてを完備し、また、トランシーバ間でＦＰＧＡを横断する長距離にわたるデータのルーティングがない。フィルタに対する受信および送信はいずれも、ＦＰＧＡ上の同じトランシーバに実装可能である。フィルタはクロスポイントから受信したデータに関して動作し、フィルタがデータを通過させる場合にだけ、データがダウンストリームのクライアントに送信（クロスポイントを介して返信）される。
【００７４】
すべてのクライアントが、フィルタリングとは無関係に、すべてのデータを受信しなければならないのであれば、図４に示されるように、クロスポイントは、データをＦＰＧＡに渡さずに、クライアントにデータを直接ブロードキャストすることが可能である。
【００７５】
本発明のさらなる実施形態では、複数のアップストリームのサーバを取り扱うか、または完全クロス接続されているスイッチを作り出すために、多重化機能およびフィルタ機能を組み合わせることが可能である。
【００７６】
図５は、本発明の一実施形態の、再構成可能なダウンストリームデータのフィルタリングを提供しているデータ流れ図である。ダウンストリームの場合については、示されているようなデータの流れで、データが、アップストリームのサーバ５０２から数個のダウンストリームのクライアント５１２、５１４に送信される。データは、サーバ５０２から送信され、外部ポートで受信され、そこでクロスポイントスイッチ５２０に入る。データは、クロスポイント５２０によって、ＦＰＧＡ５３０の、フィルタ５３６、５３８について１つのトランシーバ５３２、５３４にマルチキャストされる。ポートがすべて異なるフィルタリング要件を有する場合には、示されているように、ダウンストリームのクライアント５１２、５１４について１つのフィルタを使用することが可能である。それ以外の場合は、クロスポイントスイッチ５２０を適切に構成することにより、ＦＰＧＡ５３０の単一のフィルタから所望する数のクライアントまたはポートにブロードキャスト可能である。図５の実施形態は、２つのフィルタ、すなわち１つのダウンストリームのポートについて１つのフィルタを備える。フィルタ５３６、５３８はそれぞれ、自身に関連付けされたトランシーバ５３２、５３４を有しており、受信および送信の両方（すなわち、ＴＸが復元クロックにより駆動される）を１つのクロックドメインで実行するか、または複数のクロックドメインでＦＩＦＯもしくは他のクロックドメインクロッシングを用いて実行可能である。レイテンシを可能な限り低くするためであれば、前者の方法が好ましいが、実施形態によっては、例えば、完全にデータを再クロックし、送信にとって最良の信号品質を提供するためには、後者の方法を用いる場合がある。要求される信号品質に応じて、選択されるスキームが決まる。図５に、１つのクロックドメインに実装されているフィルタを示す。
【００７７】
クロスポイントスイッチ５２０によって、１つ１つのフィルタ５３６、５３８にデータが送信され、そこでそれぞれのトランシーバ５３２、５３４によって受信される。トランシーバ５３２、５３４はそれぞれ、データを非直列化する。フィルタロジック５３６、５３８は、そのデータを解釈し、データが、求められる基準に合致する場合、例えば、そのフィルタに関連付けされたクライアントにデータがアドレス指定される場合には、フィルタ５３６について示されているように、フィルタは、同じトランシーバを使用してデータを再送信する。このような構成であるため、ロジック５３６、５３８は、それぞれのトランシーバ５３２、５３４に密接させることが可能である。データがフィルタ基準に合致しない場合、例えば、そのフィルタに関連付けされたクライアントにデータがアドレス指定されない場合には、フィルタ５３８について示されているように、データは再送信されない。クロスポイントスイッチ５２０は、管理コンピュータ５４０により、クライアント５１２、５１４に関連付けされた適切なポートにフィルタ５３６、５３８の出力を伝送するように構成されている。管理コンピュータ５４０は、フィルタ５３６、５３８が、クライアント５１２、５１４に関連付けされたポートに送信されるべきデータを選択するようにもまた、フィルタ５３６、５３８を構成する。フィルタロジック５３６、５３８は、求められるフィルタリング基準、および求められる複雑度のレベルに応じて、非常に単純な、また非常に複雑なものとすることが可能である。
【００７８】
図６は、本発明の一実施形態の、再構成可能なアップストリームデータのフィルタリングを提供しているデータ流れ図である。アップストリームの場合では、クロスポイント６２０が作用して、クライアント６１２、６１４に関連付けされたポートからＦＰＧＡ６３０の独立したトランシーバ６３２、６３４に、データを転送する。トランシーバ６３２、６３４の送信機能は使用されず、受信機能だけが使用される。トランシーバ６３２、６３４からの非直列化されたデータは、それぞれのＦＩＦＯ６３６、６３８を通して受信され、ＦＩＦＯ６３６、６３８はそれぞれ、クロッシングクロックドメインのために使用される。多重化ロジック６４０を用いて、ＦＩＦＯ６３６、６３８からデータを受信する。このとき、６４２で示されている単一の出力ストリームにデータのパケットを多重化することができる。これは、別のトランシーバ６３５を介して送られるが、代替的な実施形態では、トランシーバ６３５の代わりに受信トランシーバ６３２、６３４のうちの１つの送信機を使用して、１つのトランシーバを使用せずにすませることも可能であろう。
【００７９】
図５および図６では、アップストリームロジックが、ＦＰＧＡのダウンストリームロジックから物理的に離されているので有利である。これにより、ＦＰＧＡ内でロジックを物理的により小さくすることが可能になることで、パイプラインの段が減り、レイテンシを低くすることが可能になる。
【００８０】
図７は、単一のＦＰＧＡに２つ以上のマルチプレクサが使用されている、本発明の別の実施形態を図示する。クライアントから複数のマルチプレクサ７４０、７４２にパケットをブロードキャストし、別個のフィルタ７５０、７５２でそれらのマルチプレクサの出力をフィルタリングすることによって、この実施形態は、複数のアップストリームサーバ７６０、７６２を取り扱うことが可能である。２つのサーバを有して示されているが、他の実施形態は、類似したやり方でもっと多数のサーバが調達可能であることが理解されよう。したがって、この実施形態は、完全に接続されているスイッチの相互接続性を提供しつつ、本発明の利点もまた提供する。図７では、クライアントデバイス７１２、７１４を起点とするアップストリームパケットは、クロスポイント７２０によって、ＦＰＧＡ７３０に実装された２つの別々の多重化モジュール７４０、７４２にマルチキャストされる。多重化モジュール７４０、７４２がそれぞれ、パケットを多重化し、次に、フィルタ７５０およびフィルタ７５２が、２つの多重化されたストリームをフィルタリングして、それぞれのフィルタの基準に合致しないものを廃棄する。図７では、フィルタ７５２が、サーバＢ７６２を対象としたそれぞれのデータストリーム７４３を渡していることが示されているのに対して、フィルタ７５０は、データストリーム７４１がサーバＡ７６０を対象としていないので、データストリーム７４１を廃棄していることが示されている。図７の実施形態の変形では、多重化ロジック７４０、７４２の後にではなく前に、４つのフィルタを提供してフィルタリングを実施することにより、帯域幅を大きくすることが可能であろう。さらに、用途によっては、各サーバが、そのサーバにアドレス指定されていないデータを廃棄することが予想される場合には、多重化されたデータをサーバ７６０およびサーバ７６２の両方に渡すことが容認され得る場合もある。この場合、フィルタ７５０およびフィルタ７５２は省略することができるので、レイテンシはさらに低減するであろう。
【００８１】
図１〜図７の実施形態は、このようにクロスポイントスイッチを使用して、アナログドメインのいくつかのポイントにデータをマルチキャストする。同じデータの複数のコピーを作り出すことによって、このような実施形態はそれぞれ、同じデバイス内で様々なＦＰＧＡもしくはＡＳＩＣにわたって、または単一のＦＰＧＡもしくはＡＳＩＣの様々な部分にわたって、様々な機能に対するロジックを分散させることができる。
【００８２】
図８ａは、本発明の別の実施形態に従って完全にクロス接続されている（３ｘ３）スイッチを図示する。示されるように、多重化（ｍｕｘ）およびフィルタ論理機能の拡張は、さらに多くのマルチプレクサおよびフィルタをＦＰＧＡに追加することである。これにより、各クライアントから２つ以上のホストにパケットを送ることが可能になる。この実施形態では、各クライアントインタフェースが、固有のマルチプレクサに関連付けされており、これにより、任意の他のポートにパケットを送信可能になる。各ポートに対して専用のフィルタが設けられ、この専用のフィルタを使用して、各ポートによって受信されるパケットが、そのポートにアドレス指定されたパケットだけであるように制限する。このアーキテクチャを用いて、従来のイーサネット（登録商標）スイッチを実装可能である。すなわち、フィルタは、フィルタリングの対象となっているポートに接続されたネットワークに接続されていることが既知であるアドレスにアドレス指定されたパケットだけを転送するように構成されている。
【００８３】
図８ｂは、図８ａの実施形態の１つのパケットの取り扱いを図示する。この例では、フィルタは、関連するクライアントにアドレス指定されたパケットだけを受信し、パケットは、示された経路を通るように設定されている。クライアントＣは、宛先アドレスが「クライアントＡ」であるパケットを送信する。クロスポイントスイッチ８２０は、ＦＰＧＡ８３０の３つの別々のトランシーバにパケットをマルチキャストするように構成されている。パケットは、トランシーバによって受信され、３つの独立した多重化ロジックのセット８４０、８４２、８４４に渡される。多重化論理機能はそれぞれ、受信データを多重化し、次に、それぞれのフィルタ８５０、８５２、８５４にパケットを送信する。多重化ロジック８４０に対するフィルタ８５０は、パケットがクライアントＡにアドレス指定されているときに、その関連するトランシーバにパケットを送信する。クライアントＢおよびＣに対するフィルタ８５２およびフィルタ８５４は、パケットを送信しない。多重化ロジック８４０に対するトランシーバが、クロスポイントスイッチ８２０にパケットを送信する。クロスポイントスイッチ８２０が、フィルタ８５０からクライアントＡに受信データをユニキャストするように構成され、パケットが正しい宛先に到達する。リソースのこうした利用は、帯域幅に対して最適化されていない。なぜなら、Ｎ個のポートスイッチを実装するには、Ｎ２個のトランシーバおよびＮ個のマルチプレクサが必要になるからである。しかしながら、このようなシステムは、共用リソースを有するシステムよりも低レイテンシで、かつ、良好な決定性で構築可能である。
【００８４】
図８の実施形態は、本発明に従った、Ｎ個のポートの完全にクロス接続されたスイッチの実施態様を図示しているが、代替的な実施形態では、データの取り扱いは、各クライアントに対して、またはクロスポイントスイッチの各ポートに対して同じである必要はない。例えば、いくつかの実施形態では、図８の実施形態を修正することで、１つのポートで受信したデータをタイムスタンピングする一方で、その他のポートで受信したデータを多重化できるようにすることが可能であろう。
【００８５】
図９は、本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ９００は、９０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ９１０とを備える。
【００８６】
それ以外の時には再構成することが可能であるが、図９に示される構成では、入力データは、データソース９２０から受信され、クロスポイント９１０によって、意図した宛先９３０に関連付けされたそれぞれのデータ出力部９０４へと回路スイッチングされる。この意味では、スイッチ９００は、物理層スイッチとして機能している。出力部９０４は、入力部９０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部９０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部９０２および出力部９０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部９０２、および１つのデータ出力部９０４を有効にする。クロスポイント９１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図９に示されている。
【００８７】
本発明に従って、データソース９２０から受信したデータは、宛先９３０に配信されるだけでなく、クロスポイントスイッチ９１０によって、スイッチ９００内のデバイス９０６によって実行される上位層プロセスにコピーされる。
【００８８】
この実施形態では、デバイス９０６がタイムスタンピング機能を備えることにより、デバイス９０６から宛先９３０にデータの第２のストリームが配信されるようになっている。このように宛先９３０が、極めて低レイテンシの経路を介して元のデータを受信する一方で、デバイス９０６により追加のレイテンシが発生するために、レイテンシが大きくなるとはいえ、タイムスタンプされたデータのコピーもまた受信する。
【００８９】
図１０は、本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１０００は、１００２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１０１０とを備える。
【００９０】
それ以外の時には再構成することが可能であるが、図１０に示される構成では、入力データは、データソース１０２０から受信され、クロスポイント１０１０によって、意図した宛先１０３０に関連付けされたそれぞれのデータ出力部１００４へと回路スイッチングされる。この意味では、スイッチ１０００は、物理層スイッチとして機能している。出力部１００４は、入力部１００２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１００２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１００２および出力部１００４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１００２、および１つのデータ出力部１００４を有効にする。クロスポイント１０１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図１０に示されている。
【００９１】
本発明に従って、データソース１０２０から受信したデータは、宛先１０３０に配信されるだけでなく、スイッチ１０００内のデバイス１００６によって実行され、やはり出力部１０３０へと切り換えられるパケットを生成する上位層プロセスにも配信される。
【００９２】
この実施形態では、デバイス１００６は、マルチキャスト加入機能を備える。これにより、デバイス１０２０および／または１０２２が、マルチキャストのグループに対して加入または退会するために、ＩＧＭＰパケットが、近くのルータ１０３０に送られたデータストリームに注入されるようになっている。このように宛先１０３０は、極めて低レイテンシの経路を介してデバイス１０２０からデータを受信する一方で、デバイス１００６により追加のレイテンシが発生するために、レイテンシが大きくなるとはいえ、指定されたインタフェースに対するいずれかの送信ＭＡＣに注入されたＩＧＭＰデータパケットのような、上位層機能データもまた受信する。
【００９３】
図１１は、本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１１００は、１１０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１１１０とを備える。
【００９４】
それ以外の時には再構成することが可能であるが、図１１に示される構成では、入力データは、データソース１１２０から受信され、クロスポイント１１１０によって、意図した宛先１１３０に関連付けされたそれぞれのデータ出力部１１０４へと回路スイッチングされる。この意味では、スイッチ１１００は、物理層スイッチとして機能している。出力部１１０４は、入力部１１０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１１０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１１０２および出力部１１０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１１０２、および１つのデータ出力部１１０４を有効にする。クロスポイント１１１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図１１に示されている。
【００９５】
本発明に従って、データソース１１２０から受信したデータは、宛先１１３０に配信されるだけでなく、クロスポイントスイッチ１１１０によって、スイッチ１１００内のデバイス１１０６によって実行される上位層プロセスにコピーされる。
【００９６】
この実施形態では、デバイス１１０６は、管理者１１３２にデータリンク統計を提供するように構成されたリンクコントローラを備える。この実施形態では、デバイス１１０６は、複数の上位層機能を提供する。これらに含まれるものとしては、物理層アイドルパターンおよび物理層エラー検出機能、タイプ別、プロトコル別、およびサイズ別のデータパケットカウント機能、無効なＦＣＳ、パケットサイズエラーまたはアライメントエラーなどの、エラータイプ別データパケットエラーカウント機能、および、接続されているデバイスを識別するパケットＭＡＣアドレス検査機能などがある。
【００９７】
このように宛先１１３０が、極めて低レイテンシの経路を介して元のデータを受信する一方で、デバイス１１０６により追加のレイテンシが発生するために、レイテンシが大きくなるとはいえ、デバイス１１３２が、データリンク統計を受信する。
【００９８】
図１２は、本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１２００は、１２０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１２１０とを備える。
【００９９】
それ以外の時には再構成することが可能であるが、図１２に示される構成では、入力データは、データソース１２２０から受信され、クロスポイント１２１０によって、意図した宛先１２３０に関連付けされたそれぞれのデータ出力部１２０４へと回路スイッチングされる。この意味では、スイッチ１２００は、物理層スイッチとして機能している。出力部１２０４は、入力部１２０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１２０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１２０２および出力部１２０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１２０２、および１つのデータ出力部１２０４を有効にする。クロスポイント１２１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図１２に示されている。
【０１００】
本発明に従って、データソース１２２０から受信したデータは、宛先１２３０に配信されるだけでなく、クロスポイントスイッチ１２１０によって、スイッチ１２００内のデバイス１２０６によって実行される上位層プロセスにコピーされる。この実施形態のデバイス１２０６は、選択された上位層機能にそれぞれが関連付けされた複数の入力部を有する。その結果、コピーされたデータをデバイス１２０６のそれぞれの入力部にスイッチングするだけで、所望の機能を選択可能になる。さらに、デバイス１２０６の出力は、クロスポイント１２１０に戻されることにより、任意の出力ポート１２０４へと選択的にスイッチングできる。また、図１２に示されている時には、デバイス１２００は、上位層デバイス１２０６の出力を宛先１２３０へと切り換えるように構成されているが、それ以外の時には、出力を他の宛先へと切り換えることができる。管理システムプロセッサ１２４０は、１秒間隔パルス（ＰＰＳ）入力を受信して、タイムスタンピングを可能にするとともに、管理インタフェースを介して通信も行って外部の管理を可能にする。管理システム１２４０はさらに、クロスポイント１２１０および上位層デバイス１２０６を制御し、クロスポイント１２１０および上位層デバイス１２０６と通信する。
【０１０１】
図１３は、本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１３００は、１３０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１３１０とを備える。
【０１０２】
それ以外の時には再構成することが可能であるが、図１３に示される構成では、入力データは、データソース１３２０から受信され、クロスポイント１３１０によって、意図した宛先１３３０に関連付けされたそれぞれのデータ出力部１３０４へと回路交換される。この意味では、スイッチ１３００は、物理層スイッチとして機能している。出力部１３０４は、入力部１３０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１３０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１３０２および出力部１３０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１３０２、および１つのデータ出力部１３０４を有効にする。クロスポイント１３１０内で現在作動中のスイッチング経路が、単に例示の目的で図１３に太線で示されている。
【０１０３】
本発明に従って、データソース１３２０から受信したデータは、宛先１３３０に配信されるだけでなく、クロスポイントスイッチ１３１０によって、スイッチ１３００内のデバイス１３６４によって実行される上位層プロセスにコピーされる。この実施形態のデバイス１３６４は、図１４に示されるタイプの信号調整ブロックである。上位層デバイス１３６４の出力は、宛先１３３０に渡されるが、それ以外の時には、出力を他の宛先へと切り換えることができる。管理システムプロセッサ１３４０は、１秒間隔パルス（ＰＰＳ）入力を受信して、タイムスタンピングを可能にするとともに、管理インタフェースを介して通信も行って外部の管理を可能にする。管理システム１３４０はさらに、クロスポイント１３１０を制御し、クロスポイント１３１０と通信して、信号調整ブロック１３５０〜１３５４および１３６０〜１３６６のすべてを制御する。
【０１０４】
図１４に示される信号調整ブロック１３６４では、入力データは、ＥＱブロック１４０２を通過する。ＥＱブロック１４０２は、図１４全体を通して両矢印によって示されるような管理インタフェース１３４０を介して設定可能である。ＥＱブロック１４０２は、受信した信号に関してフィルタリングを実行して、通信チャネル（ケーブル）を通過することの影響を補償することにより、エラーの尤度を減少させる等化器である。ＥＱブロック１４０２は、信号の周波数成分を調節するとともに、多重路の歪みを除去することもまた可能であり、その出力は、等化されていない受信信号よりもはるかに、データの理想的な表現に近くなっている。ＥＱ１４０２から、データが、管理インタフェース１３４０を介して、設定可能なクロックデータ回復（ＣＤＲ）ブロック１４０４に渡される。ＣＤＲ１４０４から、データが、上位層機能１４０６およびマルチプレクサ１４０８の両方に渡される。これらはいずれも、管理システムプロセッサ１３４０によって制御されている。上位層機能ブロック１４０６の出力もまた、マルチプレクサ１４０８に渡される。マルチプレクサ１４０８から、多重化された低レイテンシのデータおよび上位層機能の出力データが、プリエンファシスブロック１４１０に渡されることにより、見込まれる通信チャネル（ケーブル）の影響を前もって補償するように送信機信号の周波数成分を修正し、その結果、宛先がデータの理想的な表現により近い信号を受信することで、エラーの尤度が減少するようになる。プリエンファシスブロック１４１０から、多重化された低レイテンシのデータおよび上位層機能の出力データが、信号調整ブロック１３６４によって出力される。図１３の実施形態の信号調整ブロック１３５０〜１３５４および１３６０〜１３６６のいずれかまたはすべてが、図１４に示されるように構成することができる。
【０１０５】
広義に記載されている本発明の趣旨または範囲から逸脱することなく、特定の実施形態で示した本発明に多くの変形および／または修正を行い得ることが、当業者には理解されるであろう。例えば、４０Ｇのようなマルチレーン標準に関連して適用される実施形態では、これらは同様に扱うことが可能である。例えば、４つのトランシーバのグループで４０Ｇに対してフィルタリングを行うことが可能であり、１つまたは複数のクロスポイントデバイスの４つのレーンすべてに対してブロードキャストを行うことが可能である。したがって、本実施形態は、あらゆる点で例示として見なされるべきであり、限定または制限するものと見なされるべきではない。
【図１】
2017519449.tif 000003
【図２】
2017519449.tif 000004
【図３】
2017519449.tif 000005
【図４】
2017519449.tif 000006
【図５】
2017519449.tif 000007
【図６】
2017519449.tif 000008
【図７】
2017519449.tif 000009
【図８ａ】
2017519449.tif 000010
【図８ｂ】
2017519449.tif 000011
【図９】
2017519449.tif 000012
【図１０】
2017519449.tif 000013
【図１１】
2017519449.tif 000014
【図１２】
2017519449.tif 000015
【図１３】
2017519449.tif 000016
【図１４】
2017519449.tif 000017
【手続補正書】
【提出日】平成28年6月14日(2016.6.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデータスイッチングに関し、特に、ＦＰＧＡまたはＡＳＩＣなどの１つまたは複数の論理機能デバイスを有する１つまたは複数のクロスポイントスイッチの組み合わせを用いて所望のネットワーク機能を実装する効率的な低レイテンシデータスイッチに関する。
【背景技術】
【０００２】
１つのソースからデータパケットを得て多数の送信可能な送信先のうちの１つまたは複数にデータパケットを送信することが望ましい場合が多い。例えば、証券取引所からダウンストリーム方向への場合がこれに該当し、株式トレーダのコンピュータなどの多数の機械が取引所からパケットを受信できるようにしておくことが望ましい。
【０００３】
アプリケーションによっては、１つのポートから多数のポートにブロードキャストまたはマルチキャストすることが適切である。マルチキャストは、デバイス（スイッチ）の入力部での個々のパケットを当該スイッチの１つ１つの出力部にブロードキャストするが、これは、例えば、クロスポイントスイッチを用いることによって達成可能である。しかしながら、パケットスイッチの場合のような他の状況では、２つのエンドポイント間のユニキャスト通信はプライベートでなければならない。
【０００４】
アドレス指定可能なスイッチングは、何らかの仕組み（例えば従来のパケットスイッチにおける連想メモリ（content addressable memory）等）を用いてダウンストリームパケットを処理することにより、集積回路に実装可能である。従来、これには、単一のトランシーバでデータを受信し、パケットアドレスを確認し、ルックアップテーブルを参照してそのアドレスに関連付けされたポートを識別し、次に、そのポート宛てだけにパケットを送ることを必要とする。このアプローチは、使用する帯域幅を最適化する考え方に基づくが、比較的複雑な回路がスイッチ内に必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現行のネットワークスイッチは、レイヤ１（物理層）のデータが、レイヤ１に返送される前に、アドレスを確認するためにレイヤ２（データリンク層）に変換されることが必要である。レイヤ１からレイヤ２へのデータの変換には、データを並列ストリームに非直列化することが必要である。なぜなら、関連する周波数では直列ストリームでレイヤ２の特徴を実装することが難しいからである。これは、あらゆるレイヤ２処理は、レイヤ１よりもはるかに速度が遅く、最も高速のレイヤ２ネットワークスイッチでさえ、レイヤ２のアドレス確認におよそ２００〜４００ｎｓの、かなりの遅延が発生することを意味する。複数のトレーダの通信データ量を単一のストリームへとアップストリームに集約するために用いる際には、メタマコＬＰ社製のメタコネクトＣ１６スイッチに加えて、「多対１」スイッチ、例えばイーサネット（登録商標）スイッチを使用することが必要で、レイテンシが大きくなり望ましくない。さらに、ネットワークスイッチは、単一のデバイスのアップストリームデータ経路にもダウンストリームデータ経路にも対処しなければならない場合が多く、信号経路が複雑になり、クロックの制限をもたらす。既存のスイッチの多くは、帯域幅を最適化し、多くのユースケース間で汎用的に用いるように設計されている。
【０００６】
本明細書に含まれている文献、行為、材料、デバイス、物品またはその他のいずれかの説明は、単に本発明に技術背景を提供することを目的とする。これらの事項のいずれか、もしくはすべてが本出願の各請求項の優先日よりも前に存在したことにより、従来技術の基礎の一部を形成していると、または、本発明に関連する分野において一般によく知られた知見であると認めるものではない。
【０００７】
本明細書全体を通して、「ｃｏｍｐｒｉｓｅ（備える、含む）」という語、または「ｃｏｍｐｒｉｓｅｓまたはｃｏｍｐｒｉｓｉｎｇ」などの変化形は、記載された要素、整数もしくはステップ、または要素、整数もしくはステップの群が含まれることを含意すると理解されるが、任意の他の要素、整数もしくはステップ、または要素、整数もしくはステップの群を排除するものではない。
【０００８】
本明細書では、ある要素が、列記された選択肢「の少なくとも１つ」であってもよいという記述は、その要素が、列記された選択肢のうちのいずれか１つであってもよいか、または、列記された選択肢のうちの２つ以上の任意の組み合わせであってもよいことと理解されたい。
【課題を解決するための手段】
【０００９】
第１の態様によれば、本発明は、データスイッチング方法であって、クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストし、前記クロスポイントスイッチの前記複数の出力ポートの各々を、論理機能デバイスの対応する入力部に接続し、前記論理機能デバイスが前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの複数の対応する出力インタフェースに出力することを備える、データスイッチング方法を提供する。
【００１０】
第２の態様によれば、本発明は、データスイッチであって、データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記複数の出力ポートに設定可能にマルチキャストするように構成されているクロスポイントスイッチと、前記クロスポイントスイッチの前記複数の出力ポートの各々にそれぞれが接続された複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスとを備えるデータスイッチを提供する
【００１１】
第３の態様によれば、本発明は、データスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にマルチキャストすること、前記クロスポイントスイッチの前記複数の出力ポートの各々を論理機能デバイスの対応する入力部に接続すること、前記論理機能デバイスが、前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力することを実行させる、非一時的コンピュータ読み取り可能媒体を提供する。
【００１２】
第４の態様によれば、本発明は、データスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記複数の出力ポートの各々が論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段とを備えるコンピュータプログラム製品を提供する。
【００１３】
第５の態様によれば、本発明は、データスイッチング方法であって、クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストし、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートを、論理機能デバイスの対応する入力部に接続し、前記論理機能デバイスが前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力することを備える方法を提供する。
【００１４】
第２の態様によれば、本発明は、データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記出力ポートの少なくとも１つに設定可能にキャストするように構成されているクロスポイントスイッチと、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートにそれぞれ接続された、１つまたは複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスとを備えるデータスイッチを提供する。
【００１５】
第６の態様によれば、本発明は、データスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストすること、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートを論理機能デバイスの対応する入力部に接続すること、前記論理機能デバイスが、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力することを実行させる、非一時的コンピュータ読み取り可能媒体を提供する。
【００１６】
第７の態様によれば、本発明は、データスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートが論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、前記クロスポイントスイッチの前記出力ポートまたは各出力ポートから受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの１つまたは複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段とを備えるコンピュータプログラム製品を提供する。
【００１７】
本発明のいくつかの実施形態では、クロスポイントスイッチの少なくとも１つの出力ポートにデータを設定可能にキャストするクロスポイントスイッチは、クロスポイントスイッチの複数の出力ポートにデータをマルチキャストするクロスポイントスイッチを備えることができる。いくつかの実施形態では、クロスポイントスイッチの少なくとも１つの出力ポートにデータを設定可能にキャストするクロスポイントスイッチは、クロスポイントスイッチの１つの出力ポートにデータをユニキャストするクロスポイントスイッチを備えることができる。
【００１８】
論理機能デバイスは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、適切に構成されたｘ８６ＣＰＵ系のプロセッサ、もしくはネットワークインタフェースが組み込まれたマルチコアマイクロプロセッサのような適切に構成された特定用途向け集積回路（ＡＳＩＣ）、または複数のこのようなデバイスを備えることができる。本明細書でのＦＰＧＡを利用する実施形態についての説明は、本発明の範囲内でＡＳＩＣまたは適切に構成されたプロセッサにもまた適用可能なものであるとして理解されたい。
【００１９】
本発明のいくつかの実施形態は、帯域幅使用の最適化を断念することによって、低レイテンシの向上、および／または決定性向上（ＭＡＣコリジョンの減少）のための最適化をこのように効果的に得ることができる。クロスポイントスイッチのブロードキャスト機能を使用して２つ以上の受信機にデータを分配することによって、可能総帯域幅が減少し、個々のハードウェア要素のデータスループットは必ずしも最大化されないが、本発明は、こうした複数の同一のデータストリームの並列処理が、他の有益な効果を有することを認識している。したがって本発明は、既存のスイッチの多くは、帯域幅を最適化し、多くのユースケース間で汎用的に使用するように設計されているが、このことがレイテンシおよび決定性を犠牲にしていると認識している。
【００２０】
データは、１つまたは複数のサーバを起点とするダウンストリームのデータとすることができ、１つまたは複数のクライアントデバイスを対象とすることができる。これに加え、またはこの代わりに、データは、１つまたは複数のクライアントデバイスを起点とするアップストリームのデータとすることができ、１つまたは複数のサーバを対象とすることができる。これに加え、またはこの代わりに、データは、高性能コンピューティングクラスタのノード間で、またはデータセンタネットワークのノード間で切り換えられるデータのような、ピアツーピアのデータとすることができる。
【００２１】
クロスポイントスイッチの出力ポートの、ＦＰＧＡの入力ポートへの接続は、いくつかの実施形態では、直接的な接続を備えることができる。あるいは他の実施形態では、ＡＣ結合用キャパシタのような回路素子、またはレベルトランスレーション、バッファリング、増幅、もしくは信号回復を実行するＩＣを間に介在させることができる。
【００２２】
ＦＰＧＡ出力インタフェース、または各ＦＰＧＡ出力インタフェースは、出力ポート、周辺部品相互接続エクスプレス（ＰＣＩｅ）出力部、他の出力インタフェース、または高速通信用インタフェースのストリームの群、のうちの１つまたは複数を備えることができる。
【００２３】
いくつかの実施形態では、データは、サーバのような遠隔した場所から受信したダウンストリームデータであって、クロスポイントスイッチにとってローカルな１つまたは複数のクライアントデバイスに分配するように意図されたダウンストリームデータとすることができる。デバイスは、たとえスイッチと物理的に同一の場所になくても、スイッチに接続され、スイッチを介してより広いネットワークとインタフェースしているのであれば、スイッチにとってローカルであると見なされる。このような実施形態では、ＦＰＧＡによって適用される論理機能は、アドレスフィルタリングのような、内容ベースフィルタリングを備えることができ、これにより、クロスポイントスイッチが、クロスポイントスイッチの複数の出力ポートにデータをマルチキャストするとともに、複数のクライアントデバイスが、複数のＦＰＧＡの出力ポートにそれぞれ関連付けされていることによって、特定のローカルクライアントデバイスにアドレス指定されたデータだけがそれぞれのＦＰＧＡの出力ポートから出力されるように、ＦＰＧＡが、クロスポイントスイッチの各出力ポートからのデータをフィルタする。したがって、このような実施形態は、効率的にブロードキャストするためにクロスポイントスイッチを利用し、効率的なアドレス指定、およびその他の機能のためにＦＰＧＡを利用する。内容ベースフィルタリングであれば、Ｌ２、Ｌ３またはＬ４から宛先またはソースアドレスを参照することによるアドレス指定を伴う場合もあるが、プロトコルに基づくフィルタリング、ファイアウォールの場合の、状態に基づくフィルタリングおよびディープパケット検査、侵入検出もしくは流出検出システム、フィルタリング対象のパケットの無効化、またはＦＰＧＡに実装される任意の他の論理機能によるフィルタリングを含むこともまた可能であろう。クロスポイントスイッチを用いて、ＦＰＧＡの２つ以上の機能ブロックにデータストリームをコピーすることにより、複数の機能を同じデータに関してＦＰＧＡ内で同時に実行可能になる。このような実施形態では、ＦＰＧＡの単一のトランシーバが、各フィルタについて受信および送信の両方の役割を果たすことができる。あるいは、ＦＰＧＡ出力ポートに接続されているクライアントデバイスのような別のデバイスが代わりに、このようなアドレスフィルタリング用に構成されている実施形態では、ＦＰＧＡは、アドレスフィルタリングせずに出力ポートにデータを渡すことができる。したがって、このような実施形態は、各データパケットをアドレス指定するために、帯域幅が最適化されたレイヤ２ルックアップアプローチと対照をなす、「ブロードキャストアンドフィルタ」アプローチを用いる。
【００２４】
他の実施形態では、データは、クロスポイントスイッチにとってローカルな１つまたは複数のクライアントデバイスから受信したアップストリームデータであって、１つまたは複数のサーバのような、１つまたは複数の遠隔した場所への配信を意図されたアップストリームデータとすることができる。このような実施形態では、ＦＰＧＡによって提供される論理機能は、多重化していてもよい。多重化は、それぞれのデータクロックを同期するために、それぞれのＦＩＦＯバッファ、またはメモリキューにＦＰＧＡの各受信機入力部を接続し、２つ以上のクライアントデバイスから単一のアップストリームデータストリームへとデータを多重化するマルチプレクサに、各ＦＩＦＯまたはメモリキューの出力を渡すことにより、ＦＰＧＡによって提供することができる。次に、アップストリームデータストリームは、ＦＰＧＡのポートで送信機によって出力され、外部ネットワークの前面パネルポートに配信するためのクロスポイントスイッチに、すなわちもっと一般的には、クライアントデバイスに渡されてもよい。このクライアントデバイスに含まれる得るものとしては、例えば、スイッチの内部の、ネットワークインタフェースカードがある。いくつかの実施形態では、ＦＰＧＡロジックは、ファイアウォール、ＩＰアドレス指定のようなレイヤ３もしくは４の機能、または、場合によっては並行して実装される、パケット変換を実施するように構成することができる。
【００２５】
いくつかの実施形態は、ローカルデバイスからＦＰＧＡの複数のマルチプレクサにアップストリームデータをマルチキャストするクロスポイントスイッチと、アドレスフィルタを有する各マルチプレクサの出力をフィルタリングすることにより、データがそれぞれの外部ネットワークポートに対してアドレス指定された場合に、それぞれのマルチプレクサからそのポートにだけデータが中継されるようにすることによって、ローカルデバイスから複数の遠隔した場所へのデータ配信をさらに提供することができる。
【００２６】
いくつかの実施形態では、クロスポイントスイッチは、アップストリームデータおよびダウンストリームデータの両方を取り扱うことができ、これにより、データのストリームの一方が、クロスポイントスイッチによってＦＰＧＡの方に向けられているのに対して、データのもう一方でストリームが、クロスポイントスイッチの前面ポート間で１つまたは複数のクライアントデバイスに直接接続されている。
【００２７】
ＦＰＧＡは、トランシーバ毎に専用のルーティングテーブルを提供することにより、レイヤ３（ネットワーク層）ルーティングを実装するように構成することができる。ハードウェアは非能率的であるが、このような実施形態には、すべてのルーティング用に使用される単一のルーティングテーブルを使用しているレイヤ３ルータと比較して、かなり大きなレイテンシの利点がある。
【００２８】
本発明の実施形態は、アップストリームデータ機能およびダウンストリームデータ機能のそれぞれに対して、別個のＦＰＧＡ、または別個のＦＰＧＡロジックを提供することができる。このような実施形態により、アップストリームロジックおよび／またはダウンストリームロジックをＦＰＧＡ内で物理的に小さくすることが可能になり、ＦＰＧＡロジックで使用されるパイプラインステージを少なくするとともに、レイテンシおよびルーティングの遅延を減らすことが可能になる。アップストリームデータコンポーネントおよびダウンストリームデータコンポーネント用のロジックが、確実にトランシーバのようなハードウェアを共有しないようにすることは、ルーティングの輻輳を緩和するのに有利である。同様の検討事項は、高性能コンピューティング用途のプロセッサコア間の負荷平準化のためのデータスイッチの使用といったような、ピアツーピアの構成にあてはまる。
【００２９】
本発明は、ＦＰＧＡを設けることにより、論理ゲートおよびＲＡＭブロックの大規模なリソースを提供して、非常に高速のＩ／Ｏおよびデータバスを用いて、単純なデジタル演算処理または複雑なデジタル演算処理のいずれかを実施することを認識している。ＦＰＧＡの論理機能が再構成可能であるので、ポート出力はそれぞれ、場合によっては異なる論理機能を実装させることが可能である。すなわち、単純なフィルタ、複数の入力ストリームの多重化、多重化およびフィルタ、または３値連想メモリ（ＴＣＡＭ）に基づいたもっと伝統的なレイヤ２スイッチ機能を実装させることができる。さらに、このような機能は、必要に応じて、しかもプログラム可能に、かつ、非常に時宜を得たやり方で更新可能であり、これは、市場取引データを取り扱う場合のような、時間によって変動しやすい再構成要件を有する用途にとって重要な場合がある。本発明のいくつかの実施形態は、したがって、適用可能なハードウェア記述言語などを使用して、ＦＰＧＡの論理ブロックを再プログラムするように動作可能な管理コンピュータをさらに提供することができることにより、マイクロ秒以内でのフィルタ機能またはハードコードされたルーティング規則の調節といったような、遠隔からの再構築が高速で可能になる。例えば、管理コンピュータは、例えばインターネットを介して遠隔からアクセス可能であることが好ましい、６４ビット版ｘ８６プロセッサを備えることができる。管理コンピュータは、ＰＣＩエクスプレス（ＰＣＩｅ）のような高速直列コンピュータ膨張バスを介して、またはネットワークリンクを介して、ＦＰＧＡに命令を配信することができる。いくつかの実施形態であれば、そのＦＰＧＡまたはある１つのＦＰＧＡの作用によって自動的に、フィルタまたはその他の論理機能を内部に構成することも可能であろう。例えば、構成情報は、例えば従来のスイッチにおいてＭＡＣアドレス学習機能をエミュレートするような目的で、ＦＰＧＡのマルチプレクサ間、フィルタ間または論理機能ブロック間で、低帯域幅で渡される場合もあり得る。
【００３０】
いくつかの実施形態では、ＦＰＧＡは、複数の機能で構成することができ、所望の機能に関連付けされたＦＰＧＡポートにデータスイッチングするクロスポイントスイッチによって、所望の機能が適応的に選択されている。
【００３１】
クロスポイントからのデータは、ＦＰＧＡによって提供される任意の適切な論理機能に、例えば、ＦＰＧＡがレイヤ１で動作可能な単純な通信プロトコルにおけるＡＮＤまたはＸＯＲのような単純な論理ゲート、または、フィルタリングおよび／または多重化のような、より複雑な組み合わせ機能などに向けることができる。論理機能は、いくつかのパケットフィールドの内容を入力として使用し、次に、必要に応じて、順序論理および組み合わせ論理を用いて、他のパケットフィールドの内容を修正することができる。いくつかの実施形態では、フィルタリングは、任意の１つまたは複数のフィールドに、またはフィールドの組み合わせに基づくことができ、表現式またはプログラムから動的にコンパイルされたフィルタを利用することができ、ディープパケット検査による状態に基づく検査を伴うことができ、または、金融市場データリスクを確認するゲートウェイを備えることができる。論理機能は、レイヤ３ルーティング（例えば、イーサネット（登録商標）／ＩＰでは、ＩＰアドレス情報に基づいてＭＡＣアドレスを変換する）、レイヤ４ルーティング（例えば、ＩＰ／ＵＤＰまたはＩＰ／ＴＣＰでは、ＵＤＰまたはＴＣＰのポートの情報に基づいてＩＰアドレスを変換し、ＮＡＴを実施する）、金融市場データチッカー装置もしくは構文解析器、またはアプリケーションプロトコルトランスレータのような変換を伴う場合がある。論理機能は、アービタを有効にして、例えば多数のソースからデータを供給し、（例えばロスは多いが高性能の通信リンクを、信頼度は高いが速度が遅いリンクと組み合わせるために）重複したものを破棄することができる。いくつかの実施形態では、ＦＰＧＡは、データストリームのデータのタイムスタンピングを有効にすることにより、レイヤ１機能と同じデバイスの中でレイヤ２機能を提供するように構成することができる。タイムスタンピングを有効にするために、ＦＰＧＡは、その入力データインタフェース上でパケットの開始を検出し、タイムスタンプを生成することが可能である。このタイムスタンプは、メタデータとしてパケットに追加可能であり、後で処理するために格納し、分析のために別のデバイスに送り、および／またはフレーム検査シーケンス（ＦＣＳ）またはフレーム間ギャップ（ＩＦＧ）の代わりにパケットに追加することが可能である。ＦＰＧＡによって、データパケット捕捉機能をさらに提供することができ、これにより、クロスポイントは、データパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに、重複したデータストリームを直接的または間接的に配信する。
【００３２】
いくつかの実施形態では、ＦＰＧＡは、外部コネクタへの外部の高速シリアルバス接続をさらに設けることができ、大型のデータメモリ、または大容量コンピューティングといったような、より規模の大きな機能にＦＰＧＡを接続可能になる。
【００３３】
ＦＰＧＡは、（概してタイムスタンピングに用いられる）内部クロックが、何らかの規定された時間（通常、秒の開始時）にパルスを生成する外部の時間源（ＧＰＳ等）に同期されることが可能になるように、受信データシンボルの立ち上がり区間を検出する毎秒パルス数モニタとしての役割を果たすように構成されたロジックをさらに設けることができる。
【００３４】
クロスポイントスイッチのデータポートは、例えば、１０ＧＢＡＳＥ−Ｔインタフェース型または１０００ＢＡＳＥ−Ｔインタフェース型を使用する銅ケーブル、１００ＢＡＳＥ−ＴＸ銅ケーブル、１０ＧＢＡＳＥ−Ｒ／１０００ＢＡＳＥ−Ｘを使用する光ファイバケーブル、ダイレクトアタッチ銅ケーブルなどの任意の適切なケーブルからデータを受信することができる。クロスポイントスイッチは、ＳＦＰ、ＳＦＰ＋、ＱＳＦＰ、ＱＳＦＰ＋、ＣＦＰのような、任意の適切なプラグ接続可能なモジュールからデータを受信することができる。それらのモジュールであれば、ダイレクトアタッチ銅ケーブル、１ＧＢａｓｅ−ＳＸ、１０ＧＢａｓｅ−ＳＲ、１０ＧＢａｓｅ−ＬＲ、ＤＷＤＭまたはその他の接続性規格のケーブルを介しての接続も可能であろう。あるいは、コネクタまたはプリント回路基板を使用して、クロスポイントスイッチを別のデバイスに直接接続することも可能であろう。
【００３５】
クロスポイントスイッチは、ＦＰＧＡとは物理的に離されたＡＳＩＣとして設けることができる。
いくつかの実施形態では、ＦＰＧＡのトランシーバは、ＦＰＧＡおよびクロスポイントスイッチを収容しているデバイスの前面パネルポートに直接接続することができる。あるいは、ＦＰＧＡのトランシーバは、クロスポイントスイッチに接続され、前面パネルポートから離すことができる。
【００３６】
本発明の第３の態様、または第４の態様のいくつかの実施形態では、コンピュータコードまたは命令がスイッチの所有者または管理者によって購入可能なサーバ上に常駐し、スイッチの所有者または管理者のハードウェアが、このコンピュータコードまたは命令によって容易になった新たな機能で構成されるようにすることができる。コンピュータコードまたは命令は、ソースコード、ＦＰＧＡハードウェア記述言語（ＨＤＬ）、または例えば、ＨＤＬにコンパイル可能な上位レベル言語の命令を備えることができる。
【００３７】
第８の態様によれば、本発明は、物理層データスイッチング方法であって、スイッチの少なくとも１つの入力ポートでデータを受信すること、データをスイッチの少なくとも１つの出力ポートへと回路スイッチングすること、上位層プロセスにデータをコピーすること、
を含む方法を提供する。
【００３８】
第９の態様によれば、本発明は、物理層データスイッチであって、複数のデータ入力部であって、複数のデータ出力部、すなわち、第１の入力部から回路スイッチングされているデータを受信する第１のデータ出力部、および第１の入力部からデータのコピーを受信する第２のデータ出力部、のうちの１つまたは複数へと設定可能に回路スイッチングすることがそれぞれ可能な複数のデータ入力部と、第２のデータ出力部に接続された上位層機能回路と、を備えるスイッチを提供する。
【００３９】
第１０の態様によれば、本発明は、データスイッチの構成用の非一時的コンピュータ読み取り可能媒体であって、１つまたは複数のプロセッサによって実行される場合に、スイッチの少なくとも１つの入力ポートで受信したデータを、スイッチの少なくとも１つの出力ポートへと回路スイッチングすること、上位層プロセスにデータをコピーすること、を実行させる命令を含む、非一時的コンピュータ読み取り可能媒体を提供する。
【００４０】
第１１の態様によれば、本発明は、物理層データスイッチング方法であって、スイッチの少なくとも１つの入力ポートでデータを受信すること、データをスイッチの少なくとも１つの出力ポートへと回路交換すること、上位層プロセスを修正するか、またはデータを補足するとともに、スイッチの第２の出力ポートで第２のデータ出力を生成すること、を含む方法を提供する。
【００４１】
したがって本発明の第８〜第１１の態様は、物理層を処理することにより、結果として低レイテンシおよびプロトコルの汎用性が得られるが、物理層スイッチは有用なカウンタおよび統計を提供せず、これらは上位層でのみ抽出可能であり、したがって、物理層スイッチは、例えば、このようなスイッチを使用してデータリンクを監視し、問題を診断することができないので、ネットワーク管理者にとって不都合があることを認識している。
【００４２】
従来の物理層スイッチとは対照的に、本発明の第８〜第１１の態様の実施形態は、むしろ、データスループットにレイテンシオーバーヘッドをまったく加えずに、低レイテンシおよびプロトコルの汎用性の恩恵を保持しつつ、上位層の機能もまた提供する物理層スイッチを提供する。特に、データを直接入力部から出力部に回路スイッチングすることによって、物理層スイッチは、低レイテンシレベルで動作する。さらに、上位層プロセスに同じデータをコピーすることによって、物理層スイッチングのレイテンシに影響を及ぼさずに、上位レベル監視機能を実装可能である。なぜなら、このような機能は、スイッチングと並行して実行されるからである。例えば、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層プロセスは、ネットワーク上で使用される一般的なプロトコルである、ＩＰパケットおよびイーサネット（登録商標）フレームを識別することを含むことができる。その他のプロトコルには、ファイバチャネル、インフィニバンド（商標）およびＳＤＩなどが含まれ得る。このような並行処理は、たとえ上位レベル監視カウンタおよび統計には、追加の処理時間がかかっても、これによりデータがスイッチを通過する際にデータを遅延させないことを意味する。本発明の第８〜第１１の態様のいくつかの実施形態では、カウンタおよび統計のような、上位層プロセスの出力は、スイッチの管理インタフェースを介してアクセスされ、データ経路の低レイテンシを妨げることがない。
【００４３】
本明細書において「上位層プロセス」という場合には、物理層で行われないプロセスを指していることを理解されたい。本発明の第８〜第１１の態様のいくつかの実施形態では、上位層プロセスは、物理層アイドルパターンおよび物理層エラー、例えば、８Ｂ／１０Ｂコード違反の検出を含めた、上位レベル処理のための物理層データの変換を含むことができる。
【００４４】
本発明の第８〜第１１の態様のいくつかの実施形態では、複数のデータ入力部において、そして好ましくはすべてのデータ入力部において受信したデータが、１つまたは複数のそれぞれの上位層プロセスにコピーされる。したがってこのような実施形態は、各データ入力部またはすべてのデータ入力部のレイヤ１スイッチングを有効にする一方で、同時に、レイテンシに影響を与えずに、各インタフェースのパケット識別といったような１つの上位層プロセスまたは複数の上位層プロセスを提供することができる。
【００４５】
本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、それぞれのインタフェースについてのデータパケット統計のカウンタを備えることができる。
【００４６】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、複数の受信および送信されたオクテット（８ビットバイト）のカウンタを備えることができる。
【００４７】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、複数のパケットの、タイプ別（ユニキャスト、マルチキャスト、およびブロードキャスト）カウンタを備えることができる。
【００４８】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、複数のパケットの、プロトコル別（イーサネット（登録商標）、ＩＰ、ＵＤＰ、ＴＣＰ、ＨＴＴＰ、ＳＳＨ、ＳＮＭＰ、ＡＲＰなど）カウンタを備えることができる。
【００４９】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、複数のパケットの、サイズ別カウンタを備えることができる。例えば、６４バイトのデータパケットの数、６５〜１２７バイトのデータパケットの数、２５６〜５１１バイトのデータパケットの数などである。
【００５０】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、無効なフレーム検査シーケンス（ＦＣＳ）、「ラント（ｒｕｎｔ）」パケット、「ジャイアント」パケットおよび／またはアライメントエラーなどに起因するパケットエラーの数のカウンタを備えることができる。
【００５１】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、ドロップフレーム数のカウンタを備えることができる。
【００５２】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、ＶＬＡＮおよび／またはＭＡＣｓｅｃカウンタを備えることができる。
【００５３】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、リンクアイドル状態の検出を備えることができる。
【００５４】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、アイドルパターンを注入する能力、またはアイドルパターンが配線上に送信されるようにする能力を備えることができる。
【００５５】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、物理層エラー、例えば、８Ｂ／１０Ｂコードエラーについてのカウンタを備えることができ、そこから物理層ビット誤り率の推定値を算出可能である。
【００５６】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、スイッチングデバイスに関するヒューリスティックスを提供するパケット検査を備えることができ、例えば、パケットＭＡＣアドレスを検査することによって、ある１つの接続または各接続のもう一方の端部に存在するホストおよび／またはデバイスを識別する。
【００５７】
本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、受信および送信のいずれかのインタフェース上で、または両方のインタフェース上で捕捉されたデータに関して適用することができる。
【００５８】
本発明の第８〜第１１の態様のいくつかの実施形態では、統計カウンタ値などの上位層プロセス出力は、スイッチの管理モジュールによって報告可能である。このような実施形態のいくつかでは、管理モジュール機能は、コマンドライン、ウェブインタフェース、および／または、別個のコンピュータが公開されたカウンタ値を問い合わせ、または受信することが可能なＳＮＭＰのような、その他のメカニズムを含むことが可能である。
【００５９】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、パケットをタイムスタンプする能力を備えることができる。このような実施形態は、スイッチ内でタイムスタンプすることは、ネットワークレイテンシの測定のために、および正確な記録のために有用であると認識している。これらの正確な記録は、検査後に、試験／モデル化／ネットワークトラッフィック履歴の再現に使用可能である。イーサネット（登録商標）パケットを取り扱っている実施形態では、そのようなパケットが正確なタイムスタンプ情報のためのフィールドを有していないことに注目すれば、パケットのサイズを大きくすることによって、タイムスタンプ情報をパケットに追加する（タイムスタンプデータを先頭、または後尾に追加する）ことができる。
【００６０】
あるいは、タイムスタンプデータは、他の情報のために使用されるパケットの一部を置き換えることにより、各パケットに追加することができる。本発明の第８〜第１１の態様のこのような実施形態には、完全に飽和したリンク、すなわち、チャネル上にそれ以上大きなパケットのための余地がまったくないリンク上で、パケットをタイムスタンプすることが可能であるという恩恵がある。パケットのサイズに影響を及ぼさないアプローチの１つは、イーサネット（登録商標）フレームのフレーム検査シーケンス（ＦＣＳ）フィールドを３２ビットのタイムスタンプ値で置き換えることである。ＦＣＳの検査後、エラーがないことが判明してはじめて、これを行うことができる。もしもＦＣＳがエラーを起こしていることが判明すれば、影響を受けたパケットでは特別なタイムスタンプ値を用いることが可能である。この特別なタイムスタンプは、有効なパケットには決して生じないものである。３２ビットのタイムスタンプは、基準瞬間がやはりわかっている別個のプロセスによる時間の絶対単位として解釈可能な既知の基準瞬間時からのナノ秒数を表すことも可能であろう。例えば、３２ビットのタイムスタンプは、絶対時間の最下位３２ビットをナノ秒で表すことができる。別の実施形態では、イーサネット（登録商標）のフレームのプリアンブルは、タイムスタンプ値で部分的に置き換えることができる。
【００６１】
したがって、データストリームのデータのコピーをタイムスタンピングする本発明の第８〜第１１の態様の実施形態は、レイヤ１スイッチングと同一のデバイス内でレイヤ２機能を提供する。タイムスタンピングを有効にするために、デバイスは、その入力データインタフェース上でパケットの開始を検出し、タイムスタンプを生成することが可能である。このタイムスタンプは、メタデータとしてパケットに追加することが可能であり、後で処理するために格納したり、分析のために別のデバイスに送ったり、および／またはフレーム検査シーケンス（ＦＣＳ）またはフレーム間ギャップ（ＩＦＧ）の代わりにパケットに追加したりすることが可能である。
【００６２】
本発明の第８〜第１１の態様の実施形態では、上位層機能は、パケットのタイムスタンピングを備えるが、いくつかの実施形態では、上位層デバイスは、タイムスタンプされた、元のデータストリームの遅延されたコピーを備える第２のデータストリームを出力することができる。したがって、このような実施形態は、低レイテンシでデータを出力部に配信する一方で、タイムスタンプ情報が追加された同じデータの遅延されたコピーもまた生成し、これらは、例えば、エンドユーザが別途分析を行うように、ロギングデバイス／コンピュータに接続することも可能であろう。
【００６３】
本発明の第８〜第１１の態様の実施形態では、上位層機能は、パケットのタイムスタンピングを備えるが、タイムスタンプ値は、スイッチの受信インタフェース上でパケットの開始が検出された瞬間にカウンタレジスタをサンプリングすることにより、取得することができる。他の実施形態では、タイムスタンピングは、スイッチの出力インタフェース上で実行することができる。カウンタレジスタは、規則的に（例えばナノ秒毎に）更新されることが好ましい。その結果、カウンタレジスタは、現在時間をナノ秒で正確に表現したものとなる。カウンタは、１秒間隔パルス（ＰＰＳ）信号、高精度時間プロトコル（ＰＴＰ）などを介して、スイッチ外部の外部時間基準に同期させることができる。あるいは、タイムスタンプ値は、パケットの開始後に固定時間オフセットで得ることができ、パケットの開始が受信された実時間が、次に、タイムスタンプ値から固定時間オフセットを減算することにより取得することができる。このような実施形態では、この減算は、タイムスタンプがＦＣＳフィールドに書き込まれる前に実行可能である。またはこの代わりに、タイムスタンプされたデータストリームを後処理するときに実行可能である。
【００６４】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、データパケット捕捉を備えることができる。これにより、重複したデータストリームの一部またはすべてが、メディアアクセスコントローラ（ＭＡＣ）を介して処理され、次に、データパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに配信される。このような実施形態では、管理プラットフォームは、インタフェースを通過しているパケットを捕捉するように要求される場合があり、その結果、パケットが、遅延のないライン速度で送信される一方で、同時にパケットがコピーされ、ソフトウェア／管理ポートを介してエンドユーザに報告されることになる。いくつかの実施形態では、上位層機能は、ＭＡＣ処理なしにデータを捕捉することができる。一実施形態では、上位層機能は、２つ以上のポートから捕捉されたデータを集約することができる。
【００６５】
本発明の第８〜第１１の態様のいくつかの実施形態では、データは、１つまたは複数のサーバを起点とするダウンストリームデータとすることができ、１つまたは複数のクライアントデバイスを対象とすることができる。これに加え、またはこの代わりに、データは、１つまたは複数のクライアントデバイスを起点とするアップストリームのデータとすることができ、１つまたは複数のサーバを対象とすることができる。これに加え、またはこの代わりに、データは、高性能コンピューティングクラスタのノード間で、またはデータセンタネットワークのノード間で切り換えられるデータのような、ピアツーピアのデータとすることができる。
【００６６】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、ファイアウォールの場合のディープパケット検査、侵入検出、または流出検出を備えることができる。
【００６７】
これに加え、またはこの代わりに、本発明の第８〜第１１の態様のいくつかの実施形態では、上位層機能は、ＭＡＣ（メディアアクセスコントローラ）の出力を物理層に渡しながら、インタフェースＭＡＣにパケットを注入する能力を備えることができる。すなわち、このような実施形態では、ユーザソフトウェアは、管理インタフェースを介してスイッチにパケットを通信することができる。また、指定されたインタフェースについては、上位層機能は、受信ＭＡＣまたは送信ＭＡＣのいずれかにパケットを注入することが必要な場合がある。次に、パケットは、インタフェースから配線上を送信されることになる。この代わりに、パケットは、ソフトウェアまたはハードウェア（例えばＦＰＧＡ）によってデバイス上で生成することができる。すなわち、管理インタフェースを通じて通信されるのではなくデバイスを起点としている。このような実施形態のいくつかは、例えば、ダウンストリームのホストに代わってマルチキャストに加入する（ｓｕｂｓｃｒｉｂｅ）ように、インターネットソサエティのＲＦＣ２２３６の主題である、インターネットグループ管理プロトコル（ＩＧＭＰ）バージョン２に従って、および／または、プロトコル独立マルチキャスト（ＰＩＭ）ルーティングプロトコルに従って、および／または、境界ゲートウェイプロトコル（ＢＧＰ）などに従って、１つのパケットまたは複数のパケットを注入することができる。ＩＧＭＰの場合には、マルチキャストグループに対する加入または退会は、本発明のスイッチのポートに接続されたダウンストリームのクライアントに代わってマルチキャストパケットを受信するマルチキャストグループに登録するように、近くのマルチキャストルータに送信するために、ＩＧＭＰパケットを注入することを含むことができる。これにより、ダウンストリームのホストにこの機能を実行させる必要がなくなる。
【００６８】
本発明の第８〜第１１の態様のいくつかの実施形態では、スイッチのデータポートは、例えば、１０ＧＢＡＳＥ−Ｔインタフェース型または１０００ＢＡＳＥ−Ｔインタフェース型を使用する銅ケーブル、１００ＢＡＳＥ−ＴＸ銅ケーブル、１０ＧＢＡＳＥ−Ｒ／１０００ＢＡＳＥ−Ｘを使用する光ファイバケーブル、ダイレクトアタッチ銅ケーブルなどの任意の適切なケーブルからデータを受信することができる。スイッチは、ＳＦＰ、ＳＦＰ＋、ＱＳＦＰ、ＱＳＦＰ＋、ＣＦＰのような、任意の適切なプラグ接続可能なモジュールからデータを受信することができる。それらのモジュールであれば、ダイレクトアタッチ銅ケーブル、１ＧＢａｓｅ−ＳＸ、１０ＧＢａｓｅ−ＳＲ、１０ＧＢａｓｅ−ＬＲ、ＤＷＤＭまたはその他の接続性規格のケーブルを介しての接続も可能であろう。あるいは、コネクタまたはプリント回路基板を使用して、スイッチを別のデバイスに直接接続することが可能であろう。
【００６９】
本発明の第８〜第１１の態様のいくつかの実施形態では、データがコピーされる上位層機能は、スイッチの複数の出力部であって、それぞれの上位層機能にそれぞれが接続されている複数の出力部のうちの１つに、コピーされたデータストリームをスイッチングすることによって、適応的に選択することができる。このような実施形態により、どの上位層機能、またはどの複数の上位層機能が、コピーされたデータストリームに適用されるかの動的な選択が可能になる。このような実施形態では、上位層機能の出力をクロスポイントスイッチに戻して、上位層機能の出力をクロスポイントの任意の選択された出力部に動的、かつ、設定可能にスイッチング可能にすることができる。
【００７０】
本発明の第８〜第１１の態様のいくつかの実施形態では、クロスポイントスイッチの入力部および／または出力部に位置している信号調整ブロックによって、データがコピーされる上位層機能を有効にすることができる。
次に、添付の図面を参照して、本発明の一例を説明する。
【図面の簡単な説明】
【００７１】
【図１】本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図２】図１のシステムにおけるアップストリームデータの取り扱いを図示する。
【図３】図１のシステムにおけるダウンストリームデータの取り扱いを図示する。
【図４】図１のシステムにおけるダウンストリームデータのブロードキャストを図示する。
【図５】本発明の別の実施形態の、再構成可能なダウンストリームデータのフィルタリングを提供しているデータ流れ図である。
【図６】本発明の別の実施形態の、再構成可能なアップストリームデータのフィルタリングを提供しているデータ流れ図である。
【図７】単一のＦＰＧＡに２つ以上のマルチプレクサが使用されている、別の実施形態を図示する。
【図８ａ】本発明の別の実施形態に従って完全にクロス接続されているスイッチを図示する。
【図８ｂ】図８ａの実施形態の１つのパケットの取り扱いを図示する。
【図９】本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１０】本発明の別の実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１１】本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１２】本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１３】本発明のさらなる実施形態を実施するために用いられるハードウェアのシステム概略図である。
【図１４】図１３の実施形態に従う信号調整ブロックの概略図である。
【発明を実施するための形態】
【００７２】
図１は、本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。それは、他のデバイスに接続可能な数個の前面パネルポートと、前面パネルポートに交信可能なトランシーバを有する数個のＦＰＧＡと、１つのポートから複数のポートにデータを再配置することだけでなくマルチキャストすることも可能なクロスポイントスイッチとで構成されている。なお、クロスポイントの出力がすべて、必ずしもＦＰＧＡの論理機能に接続されているわけではない。ポートによっては、外部のデバイスにデータ出力を提供することが必要になるからである。
【００７３】
図１のデバイスのアップストリームコンポーネントについては、デバイスは、多数の入力ストリームを得てそれらを１つに多重化するＦＰＧＡを提供する。次に、この多重化された単一のストリームは、クロスポイントスイッチを通して返送される。このデバイスには他のロジックがほとんどないので、輻輳がほとんどない。それは、短いパイプライン、またはＦＰＧＡの論理コンポーネントのグループ化を用いて、高いクロックレートでＦＰＧＡが駆動可能であることを意味する。すなわち、データ経路を単純化することにより、各素子の高度な最適化が可能になる。これにより、低レイテンシまたは他のロジックが可能になる。
【００７４】
ＦＰＧＡとクロスポイントスイッチとを図１に示されるやり方で組み合わせることによって、クロスポイントスイッチでブロードキャスト機能を有効にし、ＦＰＧＡでフィルタ機能または他の同様の機能を有効にすることが可能になる。利点は、効率的に低レイテンシで伝達可能なクロスポイントにおいてブロードキャストコンポーネントを伝達することが可能であることであり、フィルタ機能だけがＦＰＧＡに残る、すなわち、ＦＰＧＡ内の各フィルタが入力部および出力部を含む。これにより、複雑なロジックおよびクロッキングが極めてローカルに（場合によってはトランシーバ自体から近距離内に）保たれる。これにより、次には、デバイス内のレイテンシをさらに低くすることが可能になる。それは、ダウンストリームコンポーネント（したがってフィルタロジック）のためのトランシーバが、複数のＦＰＧＡの間に分散可能であることもまた意味する。なぜなら、ローカルにトランシーバに伝送する以外にＦＰＧＡ内でデータを伝送する必要がないからである。
【００７５】
それは、ダウンストリームロジックと相互作用することなく、隣接したトランシーバにアップストリームコンポーネントが実装可能であるという意味でもあり、場合によっては、はるかに効率良い（例えば、より低サイクルかつより低レイテンシの）アップストリームの実装が可能になる。本発明の範囲内の代替的な実施形態では、流れ制御または１０００ＢＡＳＥ−Ｘのオートネゴシエーションを実施する場合のように、アップストリームロジックコンポーネントとダウンストリームロジックコンポーネントとの間の相互作用が時には必要な場合がある。
【００７６】
アップストリームロジックおよびダウンストリームロジックは、図２に示されるように、別個のＦＰＧＡにさえも実装可能である。この構成では、デバイス内全体のはるかに多くのロジックを適合させることが可能である。代替的な諸実施形態は、アップストリーム機能およびダウンストリーム機能をいずれも１つのＦＰＧＡまたはＡＳＩＣ上に実装できるが、そのような実施形態においてさえ、アップストリームコンポーネントおよびダウンストリームコンポーネント用のロジックは、ハードウェアリソース（特に、トランシーバ）を共有する必要がなく、したがって、ＦＰＧＡの同じ箇所に常駐する必要がなく、ルーティングの輻輳を緩和する。
【００７７】
ダウンストリームコンポーネントが図３に示されている。このコンポーネントでは、ロジックを単純にすることもまた可能である。アップストリームサーバがノードのうちの１つにアドレス指定されたデータを送る際、このデータはクロスポイントスイッチによってＦＰＧＡ内の２つ以上のフィルタにブロードキャストされる。各フィルタは非常に小型であり必要なものすべてを完備し、また、トランシーバ間でＦＰＧＡを横断する長距離にわたるデータのルーティングがない。フィルタに対する受信および送信はいずれも、ＦＰＧＡ上の同じトランシーバに実装可能である。フィルタはクロスポイントから受信したデータに関して動作し、フィルタがデータを通過させる場合にだけ、データがダウンストリームのクライアントに送信（クロスポイントを介して返信）される。
【００７８】
すべてのクライアントが、フィルタリングとは無関係に、すべてのデータを受信しなければならないのであれば、図４に示されるように、クロスポイントは、データをＦＰＧＡに渡さずに、クライアントにデータを直接ブロードキャストすることが可能である。
【００７９】
本発明のさらなる実施形態では、複数のアップストリームのサーバを取り扱うか、または完全クロス接続されているスイッチを作り出すために、多重化機能およびフィルタ機能を組み合わせることが可能である。
【００８０】
図５は、本発明の一実施形態の、再構成可能なダウンストリームデータのフィルタリングを提供しているデータ流れ図である。ダウンストリームの場合については、示されているようなデータの流れで、データが、アップストリームのサーバ５０２から数個のダウンストリームのクライアント５１２、５１４に送信される。データは、サーバ５０２から送信され、外部ポートで受信され、そこでクロスポイントスイッチ５２０に入る。データは、クロスポイント５２０によって、ＦＰＧＡ５３０の、フィルタ５３６、５３８について１つのトランシーバ５３２、５３４にマルチキャストされる。ポートがすべて異なるフィルタリング要件を有する場合には、示されているように、ダウンストリームのクライアント５１２、５１４について１つのフィルタを使用することが可能である。それ以外の場合は、クロスポイントスイッチ５２０を適切に構成することにより、ＦＰＧＡ５３０の単一のフィルタから所望する数のクライアントまたはポートにブロードキャスト可能である。図５の実施形態は、２つのフィルタ、すなわち１つのダウンストリームのポートについて１つのフィルタを備える。フィルタ５３６、５３８はそれぞれ、自身に関連付けされたトランシーバ５３２、５３４を有しており、受信および送信の両方（すなわち、ＴＸが復元クロックにより駆動される）を１つのクロックドメインで実行するか、または複数のクロックドメインでＦＩＦＯもしくは他のクロックドメインクロッシングを用いて実行可能である。レイテンシを可能な限り低くするためであれば、前者の方法が好ましいが、実施形態によっては、例えば、完全にデータを再クロックし、送信にとって最良の信号品質を提供するためには、後者の方法を用いる場合がある。要求される信号品質に応じて、選択されるスキームが決まる。図５に、１つのクロックドメインに実装されているフィルタを示す。
【００８１】
クロスポイントスイッチ５２０によって、１つ１つのフィルタ５３６、５３８にデータが送信され、そこでそれぞれのトランシーバ５３２、５３４によって受信される。トランシーバ５３２、５３４はそれぞれ、データを非直列化する。フィルタロジック５３６、５３８は、そのデータを解釈し、データが、求められる基準に合致する場合、例えば、そのフィルタに関連付けされたクライアントにデータがアドレス指定される場合には、フィルタ５３６について示されているように、フィルタは、同じトランシーバを使用してデータを再送信する。このような構成であるため、ロジック５３６、５３８は、それぞれのトランシーバ５３２、５３４に密接させることが可能である。データがフィルタ基準に合致しない場合、例えば、そのフィルタに関連付けされたクライアントにデータがアドレス指定されない場合には、フィルタ５３８について示されているように、データは再送信されない。クロスポイントスイッチ５２０は、管理コンピュータ５４０により、クライアント５１２、５１４に関連付けされた適切なポートにフィルタ５３６、５３８の出力を伝送するように構成されている。管理コンピュータ５４０は、フィルタ５３６、５３８が、クライアント５１２、５１４に関連付けされたポートに送信されるべきデータを選択するようにもまた、フィルタ５３６、５３８を構成する。フィルタロジック５３６、５３８は、求められるフィルタリング基準、および求められる複雑度のレベルに応じて、非常に単純な、また非常に複雑なものとすることが可能である。
【００８２】
図６は、本発明の一実施形態の、再構成可能なアップストリームデータのフィルタリングを提供しているデータ流れ図である。アップストリームの場合では、クロスポイント６２０が作用して、クライアント６１２、６１４に関連付けされたポートからＦＰＧＡ６３０の独立したトランシーバ６３２、６３４に、データを転送する。トランシーバ６３２、６３４の送信機能は使用されず、受信機能だけが使用される。トランシーバ６３２、６３４からの非直列化されたデータは、それぞれのＦＩＦＯ６３６、６３８を通して受信され、ＦＩＦＯ６３６、６３８はそれぞれ、クロッシングクロックドメインのために使用される。多重化ロジック６４０を用いて、ＦＩＦＯ６３６、６３８からデータを受信する。このとき、６４２で示されている単一の出力ストリームにデータのパケットを多重化することができる。これは、別のトランシーバ６３５を介して送られるが、代替的な実施形態では、トランシーバ６３５の代わりに受信トランシーバ６３２、６３４のうちの１つの送信機を使用して、１つのトランシーバを使用せずにすませることも可能であろう。
【００８３】
図５および図６では、アップストリームロジックが、ＦＰＧＡのダウンストリームロジックから物理的に離されているので有利である。これにより、ＦＰＧＡ内でロジックを物理的により小さくすることが可能になることで、パイプラインの段が減り、レイテンシを低くすることが可能になる。
【００８４】
図７は、単一のＦＰＧＡに２つ以上のマルチプレクサが使用されている、本発明の別の実施形態を図示する。クライアントから複数のマルチプレクサ７４０、７４２にパケットをブロードキャストし、別個のフィルタ７５０、７５２でそれらのマルチプレクサの出力をフィルタリングすることによって、この実施形態は、複数のアップストリームサーバ７６０、７６２を取り扱うことが可能である。２つのサーバを有して示されているが、他の実施形態は、類似したやり方でもっと多数のサーバが調達可能であることが理解されよう。したがって、この実施形態は、完全に接続されているスイッチの相互接続性を提供しつつ、本発明の利点もまた提供する。図７では、クライアントデバイス７１２、７１４を起点とするアップストリームパケットは、クロスポイント７２０によって、ＦＰＧＡ７３０に実装された２つの別々の多重化モジュール７４０、７４２にマルチキャストされる。多重化モジュール７４０、７４２がそれぞれ、パケットを多重化し、次に、フィルタ７５０およびフィルタ７５２が、２つの多重化されたストリームをフィルタリングして、それぞれのフィルタの基準に合致しないものを廃棄する。図７では、フィルタ７５２が、サーバＢ７６２を対象としたそれぞれのデータストリーム７４３を渡していることが示されているのに対して、フィルタ７５０は、データストリーム７４１がサーバＡ７６０を対象としていないので、データストリーム７４１を廃棄していることが示されている。図７の実施形態の変形では、多重化ロジック７４０、７４２の後にではなく前に、４つのフィルタを提供してフィルタリングを実施することにより、帯域幅を大きくすることが可能であろう。さらに、用途によっては、各サーバが、そのサーバにアドレス指定されていないデータを廃棄することが予想される場合には、多重化されたデータをサーバ７６０およびサーバ７６２の両方に渡すことが容認され得る場合もある。この場合、フィルタ７５０およびフィルタ７５２は省略することができるので、レイテンシはさらに低減するであろう。
【００８５】
図１〜図７の実施形態は、このようにクロスポイントスイッチを使用して、アナログドメインのいくつかのポイントにデータをマルチキャストする。同じデータの複数のコピーを作り出すことによって、このような実施形態はそれぞれ、同じデバイス内で様々なＦＰＧＡもしくはＡＳＩＣにわたって、または単一のＦＰＧＡもしくはＡＳＩＣの様々な部分にわたって、様々な機能に対するロジックを分散させることができる。
【００８６】
図８ａは、本発明の別の実施形態に従って完全にクロス接続されている（３ｘ３）スイッチを図示する。示されるように、多重化（ｍｕｘ）およびフィルタ論理機能の拡張は、さらに多くのマルチプレクサおよびフィルタをＦＰＧＡに追加することである。これにより、各クライアントから２つ以上のホストにパケットを送ることが可能になる。この実施形態では、各クライアントインタフェースが、固有のマルチプレクサに関連付けされており、これにより、任意の他のポートにパケットを送信可能になる。各ポートに対して専用のフィルタが設けられ、この専用のフィルタを使用して、各ポートによって受信されるパケットが、そのポートにアドレス指定されたパケットだけであるように制限する。このアーキテクチャを用いて、従来のイーサネット（登録商標）スイッチを実装可能である。すなわち、フィルタは、フィルタリングの対象となっているポートに接続されたネットワークに接続されていることが既知であるアドレスにアドレス指定されたパケットだけを転送するように構成されている。
【００８７】
図８ｂは、図８ａの実施形態の１つのパケットの取り扱いを図示する。この例では、フィルタは、関連するクライアントにアドレス指定されたパケットだけを受信し、パケットは、示された経路を通るように設定されている。クライアントＣは、宛先アドレスが「クライアントＡ」であるパケットを送信する。クロスポイントスイッチ８２０は、ＦＰＧＡ８３０の３つの別々のトランシーバにパケットをマルチキャストするように構成されている。パケットは、トランシーバによって受信され、３つの独立した多重化ロジックのセット８４０、８４２、８４４に渡される。多重化論理機能はそれぞれ、受信データを多重化し、次に、それぞれのフィルタ８５０、８５２、８５４にパケットを送信する。多重化ロジック８４０に対するフィルタ８５０は、パケットがクライアントＡにアドレス指定されているときに、その関連するトランシーバにパケットを送信する。クライアントＢおよびＣに対するフィルタ８５２およびフィルタ８５４は、パケットを送信しない。多重化ロジック８４０に対するトランシーバが、クロスポイントスイッチ８２０にパケットを送信する。クロスポイントスイッチ８２０が、フィルタ８５０からクライアントＡに受信データをユニキャストするように構成され、パケットが正しい宛先に到達する。リソースのこうした利用は、帯域幅に対して最適化されていない。なぜなら、Ｎ個のポートスイッチを実装するには、Ｎ２個のトランシーバおよびＮ個のマルチプレクサが必要になるからである。しかしながら、このようなシステムは、共用リソースを有するシステムよりも低レイテンシで、かつ、良好な決定性で構築可能である。
【００８８】
図８の実施形態は、本発明に従った、Ｎ個のポートの完全にクロス接続されたスイッチの実施態様を図示しているが、代替的な実施形態では、データの取り扱いは、各クライアントに対して、またはクロスポイントスイッチの各ポートに対して同じである必要はない。例えば、いくつかの実施形態では、図８の実施形態を修正することで、１つのポートで受信したデータをタイムスタンピングする一方で、その他のポートで受信したデータを多重化できるようにすることが可能であろう。
【００８９】
図９は、本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ９００は、９０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ９１０とを備える。
【００９０】
それ以外の時には再構成することが可能であるが、図９に示される構成では、入力データは、データソース９２０から受信され、クロスポイント９１０によって、意図した宛先９３０に関連付けされたそれぞれのデータ出力部９０４へと回路スイッチングされる。この意味では、スイッチ９００は、物理層スイッチとして機能している。出力部９０４は、入力部９０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部９０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部９０２および出力部９０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部９０２、および１つのデータ出力部９０４を有効にする。クロスポイント９１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図９に示されている。
【００９１】
本発明に従って、データソース９２０から受信したデータは、宛先９３０に配信されるだけでなく、クロスポイントスイッチ９１０によって、スイッチ９００内のデバイス９０６によって実行される上位層プロセスにコピーされる。
【００９２】
この実施形態では、デバイス９０６がタイムスタンピング機能を備えることにより、デバイス９０６から宛先９３０にデータの第２のストリームが配信されるようになっている。このように宛先９３０が、極めて低レイテンシの経路を介して元のデータを受信する一方で、デバイス９０６により追加のレイテンシが発生するために、レイテンシが大きくなるとはいえ、タイムスタンプされたデータのコピーもまた受信する。
【００９３】
図１０は、本発明の１つの実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１０００は、１００２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１０１０とを備える。
【００９４】
それ以外の時には再構成することが可能であるが、図１０に示される構成では、入力データは、データソース１０２０から受信され、クロスポイント１０１０によって、意図した宛先１０３０に関連付けされたそれぞれのデータ出力部１００４へと回路スイッチングされる。この意味では、スイッチ１０００は、物理層スイッチとして機能している。出力部１００４は、入力部１００２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１００２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１００２および出力部１００４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１００２、および１つのデータ出力部１００４を有効にする。クロスポイント１０１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図１０に示されている。
【００９５】
本発明に従って、データソース１０２０から受信したデータは、宛先１０３０に配信されるだけでなく、スイッチ１０００内のデバイス１００６によって実行され、やはり出力部１０３０へと切り換えられるパケットを生成する上位層プロセスにも配信される。
【００９６】
この実施形態では、デバイス１００６は、マルチキャスト加入機能を備える。これにより、デバイス１０２０および／または１０２２が、マルチキャストのグループに対して加入または退会するために、ＩＧＭＰパケットが、近くのルータ１０３０に送られたデータストリームに注入されるようになっている。このように宛先１０３０は、極めて低レイテンシの経路を介してデバイス１０２０からデータを受信する一方で、デバイス１００６により追加のレイテンシが発生するために、レイテンシが大きくなるとはいえ、指定されたインタフェースに対するいずれかの送信ＭＡＣに注入されたＩＧＭＰデータパケットのような、上位層機能データもまた受信する。
【００９７】
図１１は、本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１１００は、１１０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１１１０とを備える。
【００９８】
それ以外の時には再構成することが可能であるが、図１１に示される構成では、入力データは、データソース１１２０から受信され、クロスポイント１１１０によって、意図した宛先１１３０に関連付けされたそれぞれのデータ出力部１１０４へと回路スイッチングされる。この意味では、スイッチ１１００は、物理層スイッチとして機能している。出力部１１０４は、入力部１１０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１１０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１１０２および出力部１１０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１１０２、および１つのデータ出力部１１０４を有効にする。クロスポイント１１１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図１１に示されている。
【００９９】
本発明に従って、データソース１１２０から受信したデータは、宛先１１３０に配信されるだけでなく、クロスポイントスイッチ１１１０によって、スイッチ１１００内のデバイス１１０６によって実行される上位層プロセスにコピーされる。
【０１００】
この実施形態では、デバイス１１０６は、管理者１１３２にデータリンク統計を提供するように構成されたリンクコントローラを備える。この実施形態では、デバイス１１０６は、複数の上位層機能を提供する。これらに含まれるものとしては、物理層アイドルパターンおよび物理層エラー検出機能、タイプ別、プロトコル別、およびサイズ別のデータパケットカウント機能、無効なＦＣＳ、パケットサイズエラーまたはアライメントエラーなどの、エラータイプ別データパケットエラーカウント機能、および、接続されているデバイスを識別するパケットＭＡＣアドレス検査機能などがある。
【０１０１】
このように宛先１１３０が、極めて低レイテンシの経路を介して元のデータを受信する一方で、デバイス１１０６により追加のレイテンシが発生するために、レイテンシが大きくなるとはいえ、デバイス１１３２が、データリンク統計を受信する。
【０１０２】
図１２は、本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１２００は、１２０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１２１０とを備える。
【０１０３】
それ以外の時には再構成することが可能であるが、図１２に示される構成では、入力データは、データソース１２２０から受信され、クロスポイント１２１０によって、意図した宛先１２３０に関連付けされたそれぞれのデータ出力部１２０４へと回路スイッチングされる。この意味では、スイッチ１２００は、物理層スイッチとして機能している。出力部１２０４は、入力部１２０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１２０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１２０２および出力部１２０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１２０２、および１つのデータ出力部１２０４を有効にする。クロスポイント１２１０内で現在作動中のスイッチング経路が、単に例示の目的で、太線によって図１２に示されている。
【０１０４】
本発明に従って、データソース１２２０から受信したデータは、宛先１２３０に配信されるだけでなく、クロスポイントスイッチ１２１０によって、スイッチ１２００内のデバイス１２０６によって実行される上位層プロセスにコピーされる。この実施形態のデバイス１２０６は、選択された上位層機能にそれぞれが関連付けされた複数の入力部を有する。その結果、コピーされたデータをデバイス１２０６のそれぞれの入力部にスイッチングするだけで、所望の機能を選択可能になる。さらに、デバイス１２０６の出力は、クロスポイント１２１０に戻されることにより、任意の出力ポート１２０４へと選択的にスイッチングできる。また、図１２に示されている時には、デバイス１２００は、上位層デバイス１２０６の出力を宛先１２３０へと切り換えるように構成されているが、それ以外の時には、出力を他の宛先へと切り換えることができる。管理システムプロセッサ１２４０は、１秒間隔パルス（ＰＰＳ）入力を受信して、タイムスタンピングを可能にするとともに、管理インタフェースを介して通信も行って外部の管理を可能にする。管理システム１２４０はさらに、クロスポイント１２１０および上位層デバイス１２０６を制御し、クロスポイント１２１０および上位層デバイス１２０６と通信する。
【０１０５】
図１３は、本発明のさらに別の実施形態を実施するために用いられるハードウェアのシステム概略図である。スイッチ１３００は、１３０２で包括的に示された、他のデバイスに接続可能な複数の前面パネルポートと、１つのポートから複数のポートにデータを再配置するだけでなく、マルチキャストすることもまた可能なクロスポイントスイッチ１３１０とを備える。
【０１０６】
それ以外の時には再構成することが可能であるが、図１３に示される構成では、入力データは、データソース１３２０から受信され、クロスポイント１３１０によって、意図した宛先１３３０に関連付けされたそれぞれのデータ出力部１３０４へと回路交換される。この意味では、スイッチ１３００は、物理層スイッチとして機能している。出力部１３０４は、入力部１３０２に対して離れて示されているが、典型的なラックマウントされたデバイスでは、入力部１３０２を有するデバイスの前面パネルにこれらをともに配置してもよいことに留意されたい。入力部１３０２および出力部１３０４は、複数のトランシーバによって有効にすることができる。複数のトランシーバはそれぞれ、１つのデータ入力部１３０２、および１つのデータ出力部１３０４を有効にする。クロスポイント１３１０内で現在作動中のスイッチング経路が、単に例示の目的で図１３に太線で示されている。
【０１０７】
本発明に従って、データソース１３２０から受信したデータは、宛先１３３０に配信されるだけでなく、クロスポイントスイッチ１３１０によって、スイッチ１３００内のデバイス１３６４によって実行される上位層プロセスにコピーされる。この実施形態のデバイス１３６４は、図１４に示されるタイプの信号調整ブロックである。上位層デバイス１３６４の出力は、宛先１３３０に渡されるが、それ以外の時には、出力を他の宛先へと切り換えることができる。管理システムプロセッサ１３４０は、１秒間隔パルス（ＰＰＳ）入力を受信して、タイムスタンピングを可能にするとともに、管理インタフェースを介して通信も行って外部の管理を可能にする。管理システム１３４０はさらに、クロスポイント１３１０を制御し、クロスポイント１３１０と通信して、信号調整ブロック１３５０〜１３５４および１３６０〜１３６６のすべてを制御する。
【０１０８】
図１４に示される信号調整ブロック１３６４では、入力データは、ＥＱブロック１４０２を通過する。ＥＱブロック１４０２は、図１４全体を通して両矢印によって示されるような管理インタフェース１３４０を介して設定可能である。ＥＱブロック１４０２は、受信した信号に関してフィルタリングを実行して、通信チャネル（ケーブル）を通過することの影響を補償することにより、エラーの尤度を減少させる等化器である。ＥＱブロック１４０２は、信号の周波数成分を調節するとともに、多重路の歪みを除去することもまた可能であり、その出力は、等化されていない受信信号よりもはるかに、データの理想的な表現に近くなっている。ＥＱ１４０２から、データが、管理インタフェース１３４０を介して、設定可能なクロックデータ回復（ＣＤＲ）ブロック１４０４に渡される。ＣＤＲ１４０４から、データが、上位層機能１４０６およびマルチプレクサ１４０８の両方に渡される。これらはいずれも、管理システムプロセッサ１３４０によって制御されている。上位層機能ブロック１４０６の出力もまた、マルチプレクサ１４０８に渡される。マルチプレクサ１４０８から、多重化された低レイテンシのデータおよび上位層機能の出力データが、プリエンファシスブロック１４１０に渡されることにより、見込まれる通信チャネル（ケーブル）の影響を前もって補償するように送信機信号の周波数成分を修正し、その結果、宛先がデータの理想的な表現により近い信号を受信することで、エラーの尤度が減少するようになる。プリエンファシスブロック１４１０から、多重化された低レイテンシのデータおよび上位層機能の出力データが、信号調整ブロック１３６４によって出力される。図１３の実施形態の信号調整ブロック１３５０〜１３５４および１３６０〜１３６６のいずれかまたはすべてが、図１４に示されるように構成することができる。
【０１０９】
広義に記載されている本発明の趣旨または範囲から逸脱することなく、特定の実施形態で示した本発明に多くの変形および／または修正を行い得ることが、当業者には理解されるであろう。例えば、４０Ｇのようなマルチレーン標準に関連して適用される実施形態では、これらは同様に扱うことが可能である。例えば、４つのトランシーバのグループで４０Ｇに対してフィルタリングを行うことが可能であり、１つまたは複数のクロスポイントデバイスの４つのレーンすべてに対してブロードキャストを行うことが可能である。したがって、本実施形態は、あらゆる点で例示として見なされるべきであり、限定または制限するものと見なされるべきではない。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データスイッチング方法であって、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストし、
前記クロスポイントスイッチの前記複数の出力ポートの各々を、論理機能デバイスの対応する入力部に接続し、
前記論理機能デバイスが前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの複数の対応する出力インタフェースに出力すること
を備える、データスイッチング方法。
【請求項２】
前記論理機能デバイスはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を備える、請求項１に記載のデータスイッチング方法。
【請求項３】
前記論理機能デバイスの前記複数の出力インタフェースの各々は前記クロスポイントスイッチの入力部に接続されている、請求項１または２に記載のデータスイッチング方法。
【請求項４】
前記論理機能デバイスによって適用された前記論理機能は、内容ベースフィルタリングを備える、請求項１〜３のいずれか１項に記載のデータスイッチング方法。
【請求項５】
前記内容ベースフィルタリングはアドレスフィルタリングであり、そのアドレスフィルタリングによって、複数のクライアントデバイスは前記論理機能デバイスの複数の出力ポートにそれぞれ関連付けされており、このことによって、特定のローカルクライアントデバイスにアドレス指定されたデータだけが前記論理機能デバイスの対応する出力ポートから出力されるように前記論理機能デバイスは前記クロスポイントスイッチの前記複数の出力ポートの各々からのデータをフィルタする、請求項４に記載のデータスイッチング方法。
【請求項６】
前記論理機能は多重化を含む、請求項１〜５のいずれか１項に記載のデータスイッチング方法。
【請求項７】
前記論理機能は、前記論理機能デバイスのトランシーバ毎に専用のルーティングテーブルを提供することによって有効化されるレイヤ３ルーティングを含む、請求項１〜６のいずれか１項に記載のデータスイッチング方法。
【請求項８】
管理デバイスを使用して、高速遠隔再構成を有効にするように前記論理機能デバイスの複数の論理ブロックを再プログラムすることをさらに備える、請求項１〜７のいずれか１項に記載のデータスイッチング方法。
【請求項９】
前記クロスポイントスイッチが重複データストリームをデータパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに配信することによって、複数のデータパケットを捕捉することをさらに備える、請求項１〜８のいずれか１項に記載のデータスイッチング方法。
【請求項１０】
データスイッチであって、
データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記複数の出力ポートに設定可能にマルチキャストするように構成されているクロスポイントスイッチと、
前記クロスポイントスイッチの前記複数の出力ポートの各々にそれぞれが接続された複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスと
を備えるデータスイッチ。
【請求項１１】
データスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にマルチキャストすること、
前記クロスポイントスイッチの前記複数の出力ポートの各々を論理機能デバイスの対応する入力部に接続すること、
前記論理機能デバイスが、前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力すること
を実行させる、非一時的コンピュータ読み取り可能媒体。
【請求項１２】
データスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、
どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、
クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記複数の出力ポートの各々が論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、
前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段と
を備えるコンピュータプログラム製品。
【請求項１３】
物理層データスイッチング方法であって、
スイッチの少なくとも１つの入力ポートでデータを受信し、
前記データを前記スイッチの少なくとも１つの出力ポートへと回路交換し、
上位層プロセスに前記データをコピーすること
を備える、物理層データスイッチング方法。
【請求項１４】
物理層データスイッチであって、
複数のデータ出力部のうちの１つまたは複数へと設定可能に回路交換される複数のデータ入力部であって、第１のデータ出力部が第１の入力部から回路交換されたデータを受信し、第２のデータ出力部が前記第１の入力部から前記データのコピーを受信する、前記複数のデータ入力部と、
前記第２のデータ出力部に接続された上位層機能回路と
を備える物理層データスイッチ。
【請求項１５】
前記上位層機能回路はパケットタイムスタンピングを実行するように構成されている、請求項１４に記載の物理層データスイッチ。
【請求項１６】
前記上位層機能回路はパケット捕捉を実行するように構成されている、請求項１４または１５に記載の物理層データスイッチ。
【請求項１７】
前記上位層機能回路は前記第１のデータ出力部においてレイテンシに影響を及ぼさずに、データパケット統計のカウントを実行するように構成されている、請求項１４または１５に記載の物理層データスイッチ。
【手続補正書】
【提出日】平成28年12月21日(2016.12.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データスイッチング方法であって、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストし、
前記クロスポイントスイッチの前記複数の出力ポートの各々を、論理機能デバイスの対応する入力部に接続し、
前記論理機能デバイスが前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの複数の対応する出力インタフェースに出力すること
を備える、データスイッチング方法。
【請求項２】
前記論理機能デバイスはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を備える、請求項１に記載のデータスイッチング方法。
【請求項３】
前記論理機能デバイスの前記複数の出力インタフェースの各々は前記クロスポイントスイッチの入力部に接続されている、請求項１または２に記載のデータスイッチング方法。
【請求項４】
前記論理機能デバイスによって適用された前記論理機能は、内容ベースフィルタリングを備える、請求項１〜３のいずれか１項に記載のデータスイッチング方法。
【請求項５】
前記内容ベースフィルタリングはアドレスフィルタリングであり、そのアドレスフィルタリングによって、複数のクライアントデバイスは前記論理機能デバイスの複数の出力ポートにそれぞれ関連付けされており、このことによって、特定のローカルクライアントデバイスにアドレス指定されたデータだけが前記論理機能デバイスの対応する出力ポートから出力されるように前記論理機能デバイスは前記クロスポイントスイッチの前記複数の出力ポートの各々からのデータをフィルタする、請求項４に記載のデータスイッチング方法。
【請求項６】
前記論理機能は多重化を含む、請求項１〜５のいずれか１項に記載のデータスイッチング方法。
【請求項７】
前記論理機能は、前記論理機能デバイスのトランシーバ毎に専用のルーティングテーブルを提供することによって有効化されるレイヤ３ルーティングを含む、請求項１〜６のいずれか１項に記載のデータスイッチング方法。
【請求項８】
管理デバイスを使用して、高速遠隔再構成を有効にするように前記論理機能デバイスの複数の論理ブロックを再プログラムすることをさらに備える、請求項１〜７のいずれか１項に記載のデータスイッチング方法。
【請求項９】
前記クロスポイントスイッチが重複データストリームをデータパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに配信することによって、複数のデータパケットを捕捉することをさらに備える、請求項１〜８のいずれか１項に記載のデータスイッチング方法。
【請求項１０】
データスイッチであって、
データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記複数の出力ポートに設定可能にマルチキャストするように構成されているクロスポイントスイッチと、
前記クロスポイントスイッチの前記複数の出力ポートの各々にそれぞれが接続された複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスと
を備えるデータスイッチ。
【請求項１１】
データスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にマルチキャストすること、
前記クロスポイントスイッチの前記複数の出力ポートの各々を論理機能デバイスの対応する入力部に接続すること、
前記論理機能デバイスが、前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力すること
を実行させる、非一時的コンピュータ読み取り可能媒体。
【請求項１２】
データスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、
どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、
クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記複数の出力ポートの各々が論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、
前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段と
を備えるコンピュータプログラム製品。
【手続補正書】
【提出日】平成29年5月1日(2017.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータネットワーク用のデータスイッチング方法であって、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信し、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストし、
前記クロスポイントスイッチの前記複数の出力ポートの各々を、論理機能デバイスの対応する入力部に接続し、
前記論理機能デバイスが前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを、当該論理機能デバイスの複数の対応する出力インタフェースに出力すること
を備える、データスイッチング方法。
【請求項２】
前記論理機能デバイスはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を備える、請求項１に記載のデータスイッチング方法。
【請求項３】
前記論理機能デバイスの前記複数の出力インタフェースの各々は前記クロスポイントスイッチの入力部に接続されている、請求項１または２に記載のデータスイッチング方法。
【請求項４】
前記論理機能デバイスによって適用された前記論理機能は、内容ベースフィルタリングを備える、請求項１〜３のいずれか１項に記載のデータスイッチング方法。
【請求項５】
前記内容ベースフィルタリングはアドレスフィルタリングであり、そのアドレスフィルタリングによって、複数のクライアントデバイスは前記論理機能デバイスの複数の出力ポートにそれぞれ関連付けされており、このことによって、特定のローカルクライアントデバイスにアドレス指定されたデータだけが前記論理機能デバイスの対応する出力ポートから出力されるように前記論理機能デバイスは前記クロスポイントスイッチの前記複数の出力ポートの各々からのデータをフィルタする、請求項４に記載のデータスイッチング方法。
【請求項６】
前記論理機能は多重化を含む、請求項１〜５のいずれか１項に記載のデータスイッチング方法。
【請求項７】
前記論理機能は、前記論理機能デバイスのトランシーバ毎に専用のルーティングテーブルを提供することによって有効化されるレイヤ３ルーティングを含む、請求項１〜６のいずれか１項に記載のデータスイッチング方法。
【請求項８】
管理デバイスを使用して、高速遠隔再構成を有効にするように前記論理機能デバイスの複数の論理ブロックを再プログラムすることをさらに備える、請求項１〜７のいずれか１項に記載のデータスイッチング方法。
【請求項９】
前記クロスポイントスイッチが重複データストリームをデータパケット捕捉ＲＡＭ、ディスクおよび／またはＰＣＩｅリンクに配信することによって、複数のデータパケットを捕捉することをさらに備える、請求項１〜８のいずれか１項に記載のデータスイッチング方法。
【請求項１０】
コンピュータネットワーク用のデータスイッチであって、
データを受信するための少なくとも１つの入力ポートおよび複数の出力ポートを有するクロスポイントスイッチであって、クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを前記複数の出力ポートに設定可能にマルチキャストするように構成されているクロスポイントスイッチと、
前記クロスポイントスイッチの前記複数の出力ポートの各々にそれぞれが接続された複数の入力部を有する論理機能デバイスであって、前記クロスポイントスイッチの前記複数の出力ポートから受信したデータに適用されて処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力するように構成される少なくとも１つの論理機能を有する、前記論理機能デバイスと
を備えるデータスイッチ。
【請求項１１】
コンピュータネットワーク用のデータスイッチを構成するための非一時的コンピュータ読み取り可能媒体であって、当該非一時的コンピュータ読み取り可能媒体は命令を備え、前記命令は１つまたは複数のプロセッサによって実行される場合に、
クロスポイントスイッチの少なくとも１つの入力ポートでデータを受信すること、
前記クロスポイントスイッチが前記データを当該クロスポイントスイッチの少なくとも１つの出力ポートに設定可能にマルチキャストすること、
前記クロスポイントスイッチの前記複数の出力ポートの各々を論理機能デバイスの対応する入力部に接続すること、
前記論理機能デバイスが、前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに論理機能を適用し、処理後のデータを当該論理機能デバイスの複数の対応する出力インタフェースに出力すること
を実行させる、非一時的コンピュータ読み取り可能媒体。
【請求項１２】
コンピュータネットワーク用のデータスイッチのソフトウェアコントローラ用の手続きをコンピュータに実行させるコンピュータプログラムコード手段を備えるコンピュータプログラム製品であって、
どのデータが処理されるのかに関する、複数の論理機能デバイス機能のうちの１つを選択するためのコンピュータプログラムコード手段と、
クロスポイントスイッチの少なくとも１つの入力ポートで受信したデータを、当該クロスポイントスイッチの複数の出力ポートに設定可能にマルチキャストするように、クロスポイントスイッチを制御するためのコンピュータプログラムコード手段であって、前記クロスポイントスイッチの前記複数の出力ポートの各々が論理機能デバイスの対応する入力部に接続されている、コンピュータプログラムコード手段と、
前記クロスポイントスイッチの前記複数の出力ポートの各々から受信したデータに前記論理機能デバイスが前記選択された論理機能を適用し、処理後のデータを前記論理機能デバイスの複数の対応する出力インタフェースに出力するように、前記論理機能デバイスを制御するためのコンピュータプログラムコード手段と
を備えるコンピュータプログラム製品。
【国際調査報告】
2017519449.tif 000018
2017519449.tif 000019
2017519449.tif 000020
2017519449.tif 000021