(57)【特許請求の範囲】
【請求項１】
ホスト処理装置をネットワークとインタフェースするためのネットワーク・デバイスであって、
前記ネットワーク・デバイスと前記ホスト処理装置との間でデータを転送するように構成された第１インタフェース・コントローラと、
前記ネットワーク・デバイスと前記ホスト処理装置との間でデータを転送するように構成された第２インタフェース・コントローラと、
前記ネットワーク・デバイスをネットワークとインタフェースするように構成された第１ネットワーク・インタフェース・コントローラと、そして
コントロール・ユニットであって、
前記第１ネットワーク・インタフェース・コントローラを介してネットワークから入来データを受け取り、当該入来データを処理し、そして、処理済み入来データを、前記第２インタフェース・コントローラを介して前記ホスト処理装置へ伝送するステップと、
前記ホスト処理装置から送出データを前記第２インタフェース・コントローラを介して受信し、受信した送出データを処理し、そして、前記第１ネットワーク・インタフェース・コントローラを介して処理済の送出データを前記ネットワークに伝送するステップと
の１つまたは双方のステップを実行するコントロール・ユニットと
を備え、
前記第１インタフェース・コントローラ、前記コントロール・ユニット、および前記第１ネットワーク・インタフェース・コントローラは、協働して、前記ホスト処理装置が、前記第１ネットワーク・インタフェース・コントローラおよび前記第１インタフェース・コントローラを介して、前記ホスト処理装置と前記ネットワークとの間で、他のデータを転送するのを可能にするように構成され、そして
前記ホスト処理装置と前記コントロール・ユニットは同じネットワークアドレスを共有する
ネットワーク・デバイス。
【請求項２】
前記第１インタフェース・コントローラは、ホストバス・インタフェース・コントローラを含み、
前記第２インタフェース・コントローラは、ネットワーク・デバイスおよび前記ホスト処理装置間でストリーミング・データを転送する１以上のストリーミング・コントローラを含み、そして
ネットワーク・アドレスがＩＰアドレスである
ことを特徴とする請求項１に記載のネットワーク・デバイス。
【請求項３】
前記第１インタフェース・コントローラ、前記第１ネットワークインタフェース・コントローラ、および前記コントロール・ユニットは、協働して、前記ホスト処理装置が、前記第１ネットワーク・インタフェース・コントローラと前記第１インタフェース・コントローラとを介して、前記ネットワークへ、または前記ネットワークから、前記他のデータを伝送するのを可能にし、同時に、
前記コントロール・ユニットが、前記入来データを処理し、その処理した入来データを前記第２インタフェース・コントローラを介して前記ホスト処理装置へ伝送すること、
前記コントロール・ユニットが、前記ホスト処理装置からの送出データを前記第２インタフェース・コントローラを介して受信し、前記送出データを処理すること
の一方または双方を行う、
ことを特徴とする請求項１に記載のネットワーク・デバイス。
【請求項４】
前記コントロール・ユニットは、受けた入来データの処理に、ネットワーク・スタックを使用するよう構成され、前記コントロール・ユニットにより使用される前記ネットワーク・スタックは、前記ホスト処理装置が前記他のデータを伝送または受信する際に使用するネットワーク・スタックとは区別できるものである、
ことを特徴とする請求項１に記載のネットワーク・デバイス。
【請求項５】
前記コントロール・ユニットは、
ローカルの処理装置と、そして
前記ローカルの処理装置により実行可能なファームウエア命令を格納するメモリユニットと
を備え、
前記ローカルの処理装置は、受けた入来データ、および／または、受信した送出データを、少なくとも前記ファームウエア命令に従って処理するように構成される
ことを特徴とする請求項１に記載のネットワーク・デバイス。
【請求項６】
前記ネットワーク・デバイスが集積回路である、ことを特徴とする請求項１に記載のネットワーク・デバイス。
【請求項７】
前記第２インタフェース・コントローラは、前記ホスト処理装置から前記ネットワーク・デバイスへ、そして前記ネットワーク・デバイスから前記ホスト処理装置へ、データを同時に伝送するよう構成されている
ことを特徴とする請求項１に記載のネットワーク・デバイス。
【請求項８】
コプロセッサ・ユニットと協働するホスト処理装置によって実行されるオペレーティング・システムにおいて、データパケットをルーティングし、処理する方法であって、
第１ネットワーク・インターフェイス・コントローラを介してネットワーク・パケットを受信するステップと、
前記オペレーティング・システムのカーネルに埋め込まれた少なくとも１つのモジュールを介して構成された第１ルールに従って、前記ネットワーク・パケットをフィルタリングするステップと、
前記フィルタリングするステップに基づいて、前記ネットワーク・パケットに含まれたデータの第１部分を、前記ホスト処理装置に対応する第１ネットワーク・スタックへルーティングするステップと、そして
前記フィルタリングするステップに基づいて、前記ネットワーク・パケットに含まれたデータの第２部分を、前記コプロセッサ・ユニットに対応する第２ネットワーク・スタックへルーティングするステップと
を含み、
前記第１ネットワーク・スタックおよび前記第２ネットワーク・スタックは単一のネットワーク・アドレスを共有する
ことを特徴とする方法。
【請求項９】
前記ホスト処理装置が、前記ネットワーク・パケットに含まれたデータの前記第１部分を処理するステップと、
前記コプロセッサ装置が、前記ネットワーク・パケットに含まれたデータの前記第２部分を処理するステップと
の一方または双方のステップを、さらに含む
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記コプロセッサ装置が、前記ネットワーク・パケットに含まれた前記データの前記第２部分を処理する前記ステップは、前記ネットワーク・パケットに含まれた前記データの前記第１部分をルーティングする前記ステップと同時に実施される
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記ネットワーク・パケットに構成されるデータの前記第２部分には、
ストリーミング・ビデオ・データと、
ストリーミング・オーディオ・データと、
ストリーミング・オーディオ／ビデオ・データと、そして
画像データと
の１つ以上のデータが含まれる
ことを特徴とする請求項８に記載の方法。
【請求項１２】
前記ネットワーク・パケットに含まれた前記データの前記ルーティングされた第２部分を、ストリーミング・インターフェイスを介して前記ホスト処理装置へ伝送するステップ、または
前記ネットワーク・パケットに含まれた前記データの前記ルーティングされた第２部分をファイル・システムへ書き込むステップ
の１つのステップを含む
ことを特徴とする請求項８に記載の方法。
【請求項１３】
前記ネットワーク・パケットに含まれた前記データの前記第１部分をルーティングするステップは、前記ホスト処理装置を前記コプロセッサ装置にインタフェースするよう構成されたホストバス・インタフェースを介して、前記ネットワーク・パケットに含まれた前記データの前記第１部分をルーティングするステップを含む
ことを特徴とする請求項８に記載の方法。
【請求項１４】
前記オペレーティング・システムの前記カーネルに埋め込まれた少なくとも１つのモジュールと、そして
前記オペレーティング・システムで実行される少なくとも１つのアプリケーション・モジュールと
を介して前記第１ルールを構成するステップを、さらに含む
ことを特徴とする請求項８に記載の方法。
【請求項１５】
前記ホスト処理装置から送出データを受信し、前記送出データを前記第１ネットワーク・インターフェイス・コントローラを介して伝送するステップと、そして
ファイル・システムから送出データの読み出し、前記送出データを前記ネットワーク・インターフェイスを介して伝送するステップと
の一方または双方のステップを、さらに含むことを特徴とする請求項８に記載の方法。
【請求項１６】
前記ホスト処理装置から前記送出データを受信する前記ステップは、
前記送出データの少なくとも第１部分を、第１インタフェースを介して受信するステップと、
前記送出データの少なくとも第２部分を、第２インタフェースを介して受信するステップと
の一方または双方のステップを含む
ことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記ネットワーク・パケットは、インターネット・コントロール・メッセージ・プロトコル（ＩＣＭＰ）パケットとアドレスレゾリューションプロトコル（ＡＲＰ）パケットの一方または双方のパケットを含み、
前記ネットワーク・パケットがＩＣＭＰパケットを含むときは、前記ＩＣＭＰパケットを前記第１ネットワーク・スタックおよび前記第２ネットワーク・スタックの双方のスタックへルーティングするステップと、
前記ネットワーク・パケットがＡＲＰパケットを含むときは、前記ＡＲＰパケットを前記第１ネットワーク・スタックおよび前記第２ネットワーク・スタックの双方のスタックへルーティングするステップと
の一方または双方のステップを、さらに含む
ことを特徴とする請求項８に記載の方法。
【請求項１８】
前記ネットワーク・パケットがＩＣＭＰパケットを含むときは、前記コプロセッサ装置が、前記ＩＣＭＰパケットに含まれる要求に対して応答を生成するステップと、
前記ネットワーク・パケットがＡＲＰパケットを含むときは、前記コプロセッサ装置が、前記ＡＲＰパケットに含まれる要求に対して応答を生成するステップと
の一方または双方のステップを、さらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記ネットワーク・パケットがＩＣＭＰパケットを含むときは、前記ＩＣＭＰパケットに含まれた要求に応じて前記ホスト処理装置により生成された応答をフィルタリングして、前記ＩＣＭＰパケットに含まれた前記要求に応じて生成された応答の重複を除くステップと、
前記ネットワーク・パケットがＡＲＰパケットを含むときは、前記ＡＲＰパケットに含まれた要求に応じて前記ホスト処理装置により生成された応答をフィルタリングして、前記ＡＲＰパケットに含まれた前記要求に応じて生成された応答の重複を除くステップと
の一方または双方のステップを、さらに含む
ことを特徴とする請求項１８に記載の方法。
【請求項２０】
ホスト・デバイスと、
前記ホスト・デバイスをネットワークへ接続するためのネットワーク・デバイスであって、前記ネットワークにインタフェースする第１ネットワーク・インターフェイス・コントローラを含むネットワーク・デバイスと、
前記ネットワーク・デバイスおよび前記ホスト・デバイス間でのデータの転送用として前記ネットワーク・デバイスを前記ホスト・デバイスに結合するホストバスと、そして
前記ネットワーク・デバイスおよび前記ホスト・デバイス間でのストリーミング・データを転送するために前記ネットワーク・デバイスを前記ホスト・デバイスに結合するストリーミング・データ・バスと
を備えるシステムであって、
前記ホスト・デバイスおよび前記ネットワーク・デバイスは、協働して、ネットワーク・インタフェース・コントローラ（ＮＩＣ）機能を実現するよう構成され、前記ＮＩＣ機能は、前記ホスト・バスおよび前記第１ネットワーク・インターフェイス・コントローラを介しての前記ネットワークへのネットワーク接続性をホスト・デバイスに提供し、
前記ＮＩＣ機能の実現において、前記ホスト・デバイスは、第１のネットワーク・スタックを使用するよう構成され、前記ネットワーク・デバイスは、前記第１のネットワーク・スタックとは異なる第２のネットワーク・スタックを使用するよう構成され、そして
前記第１ネットワーク・スタックおよび前記第２ネットワーク・スタックは、前記第１ネットワーク・インターフェイス・コントローラに対応する単一のネットワーク・アドレスを共有する
ことを特徴とするシステム。
【請求項２１】
前記ネットワーク・デバイスは、前記ホスト・デバイスによって前記ホスト・バスおよび前記ネットワーク・インターフェイスを介して前記ネットワークへのアクセスが行われるのと同時に、ストリーミング・データを、前記ストリーミング・データ・バスを介して、前記ホスト・デバイスへ伝送する、または前記ホスト・デバイスから受信するよう構成されている
ことを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記ホスト・バスに結合された追加のストリーミング・データ・バスと、
前記追加のストリーミング・データ・バスに結合され、衛星からストリーミング情報を受信するように構成されたチューナー・デバイスであって、前記ストリーミング情報を、前記追加のストリーミング・データ・バスを介して前記ホスト・デバイスへ伝送するチューナー・デバイスと
を、さらに備える
ことを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記ＮＩＣ機能の実現において、前記ネットワーク・デバイスはネットワーク・デバイスのネットワーク・ドライバに従って動作し、前記ホスト・デバイスはホスト・デバイスのネットワーク・ドライバに従って動作し、
前記ホスト・デバイス・ネットワーク・ドライバはユーザによって構成可能であり、
前記ネットワーク・デバイス・ネットワーク・ドライバは、前記ホスト・デバイス・ネットワーク・ドライバのユーザによる構成に基づいて、自動的に構成される
ことを特徴とする請求項２０に記載のシステム。
【請求項２４】
コプロセッサ装置と協働するホスト処理装置によって実行されるオペレーティング・システムにおいて、データ・パケットをルーティングし、処理する方法であって、
送出データの第１部分を、前記ホスト処理装置に対応する第１ネットワーク・スタックから得るステップと、
前記送出データの第２部分を、前記コプロセッサ装置に対応する第２ネットワーク・スタックから得るステップと、
前記送出データを含むネットワーク・パケットを生成するステップであって、前記送出データの前記第１部分および前記送出データの前記第２部分が前記ネットワーク・パケットにおいて配列される順序を決定するステップを含むステップと、そして
前記ネットワーク・パケットを第１ネットワーク・インタフェース・コントローラを介してネットワークへ伝送するステップと
を含み、
前記第１ネットワーク・スタックおよび前記第２ネットワーク・スタックは単一のネットワーク・アドレスを共有している
ことを特徴とする方法。
【請求項２５】
前記送出データの前記第１部分および前記送出データの前記第２部分が前記ネットワーク・パケットにおいて配列される順序を決定をする前記ステップは、
オペレーティング・システムのカーネルに埋め込まれた少なくとも１つのモジュールを介して構成された第１ルールと、そして
前記コプロセッサ装置によって実行される命令に埋め込まれた第２ルールと
の一方または双方のルールに従って実施される
ことを特徴とする請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
一般に、本発明はコンピュータ・ネットワーク、特にネットワーク・デバイスのデザインに関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（ＰＣ）は最近、オフィスとホームの両方で広く使用される電子装置の巨大な配列の一部としてテレビ、ハイファイ・ステレオ設備、およびコンパクトディスクプレーヤに加わった。また、エレクトロニクス市場では、他の広く使用された記憶媒体を使うデバイスに加えて、アプライアンスとソリッド・ステート・メモリを使用する個人的な消費者電子機器が激増している。いくつかの、より人気がある消費者電子機器がビデオカメラ、フォトカメラ、携帯情報端末、携帯用の音楽デバイス、セットトップ・ボックスと同様に、ハイデフィニッション（ＨＤ）テレビ・システム、およびディジタルレコーダを含んでいる。このようなデバイスの激増は電子機器、パーソナル・コンピュータ、および／または、セットトップ・ボックスの間でデータを転送するための接続性とネットワーキングの重要性をもたらした。
【０００３】
また、それぞれが高速の簡単な接続を提供することを目指して、ＰＣＩ（周辺装置相互接続）などの内部バスの仕様に加えて、コンピュータと外部の周辺機器を接続するための様々なインタフェイス標準が導入されてきた。そのような標準の例はまた、ファイヤラインと呼ばれたＩＥＥＥ１３９４標準、およびＵｎｉｖｅｒｓａｌＳｅｒｉａｌＢｕｓ（ＵＳＢ）（両方の高速シリアルバスプロトコル）を含んでいる。ローカル・エリア・ネットワーク（ＬＡＮ）とワイドエリアネットワーク（ＷＡＮ）の両方でコンピュータを接続する最も広く使用されたネットワーク標準はイーサネットプロトコルである。より詳しく述べると、イーサネットはＩＥＥＥ８０２．３シリーズ標準である、元々２つ以上のコンピュータステーションが一般的な配線システムを共有する手段を提供した衝突検出メソッドを有するキャリア・センス・マルチプル・アクセス（ＣＳＭＡ／ＣＤ）に基づいている。ＣＳＭＡ／ＣＤは、メガビット範囲、すなわちＭビット／秒の転送速度に達するイーサネットシステムの標準を形成している。最近のスイッチ型ベースの、および／または、ルータベースのイーサネットシステムはギガビット／秒範囲の転送レートをサポートできる。イーサネットは、一般に共用資源を効率的に使用し、再構成し、維持することが、通常簡単であり、コストを低く維持している間、多くのメーカーとシステムに対してコンパティビリティを提供する。
【０００４】
しかしながら、一般に、ＨＤテレビや、セットトップボックスやデジタル式ビデオ録画再生装置（ＰＶＲｓ）などのオーディオ／ビデオ（ＡＩＹ）消費者娯楽システムは、高品質の高解像プログラミング・コンテンツを、標準ネットワーク、例えばＩＥＥＥ８０２．３イーサネット標準、ＩＥＴＦ(InternetEngineeringTaskForce)、および／または、ＲＦＣ（Request For Comments）対応プロトコルなどを介して配信／受信するために最適化されていない。このことは広帯域のイーサネット接続に対して典型的に当てはまる。クローズドネットワーク（特殊目的イーサネットスイッチを含む）からオープンネットワークへの移行が、娯楽システムの発展における問題の１つであり、それは、高品質／解像度のＡ／Ｖプログラミングコンテンツの配信に必要なレベルを維持しつつの移行であった。標準イーサネット・コントローラを利用して、狭帯域幅ローカルバス上でリアルタイム・ストリーミング・データを移動させている間に、望ましい性能水準を得ることがますます困難になっている。さらに、イーサネットネットワーク要素を使用する製品の高い価格が、手頃なコストでシステムを組み立てることを困難にしている。
【０００５】
デジタル衛星、ケーブルの、そして地上で専用の、特定目的の伝送システムのようなデータ伝送モデルおよび／またはアプローチを使用するときは、リアルタイムと非リアルタイムのオーディオ／ビデオデータの送信に特有の複雑さは問題を提示しない。ディジタル衛星、ケーブル、および他の独占的で、専用の伝送システムは「クローズドネットワーク」であると通常考慮される。一般に、「クローズドネットワーク」は、ここでは、公衆には利用できない仕様に基づいたソリューションを意味する。その専用のソリューションは、通常個々のメーカーまたはメーカー・グループに時間と資源を提供して、望ましい性能目標を実現できる特殊なソリューションを作り上げるが、通常、そのようなソリューションは競合製品とともに共同利用されることはない。独占的で専用のソリューションの例は、ケーブルＴＶ（ＣＡＴＶ）ネットワーク、公衆交換電話網（ＰＳＴＮ）上でのディジタルビデオ放送、および／または、総合デジタル通信網（ＩＳＤＮ）、衛星マスター・アンテナ・テレビ（ＳＭＡＴＶ）配信システムネットワークを介したディジタルビデオ放送を通常含んでいる。専用ネットワーク標準が、さまざまな物理的かつ転送のモデルのために、ＤＶＢ-ＥＴＳＩ（欧州電気通信標準化機構）などの標準化団体の下で定義されている。総合的なコンテンツ配信システムは、ケーブルビジョン(Cable Vision)、コムキャスト(Comcast)や、ダイレクトテレビ(Direct TV)などの広帯域網プロバイダーによって通常制御される。広帯域網プロバイダーはそのようなシステムで使用される、ハードウェア、ソフトウェア、およびプロトコルを通常決める。
【０００６】
対照的に、「オープン」ネットワークでは、ハードウェア、ソフトウェア、および対応するプロトコルはよく知られている標準によって異なったメーカーから容易に利用可能なソリューションですべて定義される。一般に、そこでは、そのようなソリューションがお互いと共同利用できる。オープン・ネットワークは、共用ネットワークであり、コンテンツの配信に共用ネットワークを利用する、サービスおよびコンテンツのプロバイダーが潜在的に多数存在する。前述したように、オープンネットワークの１つの実施例がＩＥＴＦである。そのＩＥＴＦは、インターネットの操作、運用、および展開を調整して、ショートレンジとミッドレンジのプロトコルおよび構造的な問題を解決すると言う目的を持つ、ネットワーク設計者、オペレータ、ベンダ、および研究者の大きくて、開いているコミュニティである。オープン・ネットワーク・プロトコルは国際標準化機構（ＩＳＯ）ネットワークモデルに基づいて階層化にされている。一般に、どんなオープン・ネットワークにも、オープン・ネットワークを介して通信している一方で、使用するネットワーク・プロトコルによる追加オーバヘッドがある。多くの、あるいは、すべての現在のソリューションで、高品質と解像度でＡ／Ｖプログラミング・コンテンツの処理をしている間には、オープン・ネットワーク・モデルをサポートするシステム・リソース（資源）を有していない。さらに、そのようなオープン・ネットワーク上で資源の提供を管理することは通常は困難である。
【０００７】
広帯域Ａ／Ｖ配信は、セットトップ・ボックス（ＳＴＢ）およびパーソナル・ビデオ記録（ＰＶＲ）デバイスを利用する衛星およびケーブル・サービスにより歴史的に実行されてきたので、配信の基本的な方法としてイーサネットを使用するＡ／Ｖコンテンツの普及は追加の課題を提供する。現在のＡ／Ｖソリューションは、インターネットウェブサーフィン、ビデオ・オン・デマンド（ＶＯＤ）アプリケーションのためのリターンパスとして料金徴収システム、そしてホームでの狭帯域Ａ／Ｖ配信などの活動のために１〜６メガビット／秒のデータ・レートでのイーサネット接続を一般的に使用している。高品質ビデオまたはオーディオ・コンテンツをストリーミングするための帯域幅要求は実質的により高い。例えば、１つのハイデフィニッション（ＨＤ）ビデオ・ストリームを達成するために、１２〜６０メガビット／秒のスループットのＱＯＳが必要である。通常、このＱＯＳの必要性はバッファリングと待ち時間で決定される。例えば、帯域幅の増強要求は、スイッチング・ビデオ・コンテンツ・チャンネルの間の遅延時間が「チャンネルサーフィンしている」間にユーザによってなされたチャネル選択の間のバッファリング遅延による平均許容時間を超えたときに、増強ＱＯＳを必要とする。望ましくは、Ａ／Ｖデータの配信は最小遅延で安定したままでなければならない。既存のイーサネットソリューションで、通常、必要な性能水準を達成するのは非常に難しい。
【０００８】
一般に、さらに、ＳＴＢおよび他の家庭用電子機器はコストに非常に敏感である。家庭用電子機器のバルクで含まれるほとんどの埋め込みプロセッサおよびハードウェア・ビルディング・ブロックは、通常、低いコストそして限定的性能（ミップス（ＭＩＰＳ）として通常参照される）である。メモリアクセススピードと、ＣＰＵスピードと、そして消費電力との間のトレードオフは全く普通である。たいていのシステム・デザイナーにとっては、追加のネットワーク処理オーバヘッドを伴うオープン・ネットワークへ移行することは、ＣＰＵのバンド幅がコア・アプリケーションに対して丁度十分であるとき、この標準のイーサネットコントローラをさらに、より高価なシステムによるソリューションへの移行を必要とするかもしれない。さらに、この追加ネットワーク・オーバヘッドでは、標準イーサネット・コントローラを利用することは、特に低コスト家庭用電子機器を目標とするとき、オープン・ネットワーク・ソリューションを可能にするために必要なパフォーマンスを与えないであろう。
【０００９】
リアルタイムおよび非リアルタイムのビデオおよびオーディオのコンテンツを共有かつオープンのネットワーク上に転送する概念はさまざまな方法で取り扱われてきた。例えば、８０１．１１ａ、ｂおよびｇなどのワイヤレスによるソリューションはシェアド・アクセス・ローカルエリア・ネットワークのために考案されてきた。また、８０２．３  １０／１００／１０００ベースＴツイステッド・ワイヤ対コード化ソリューションなどの有線によるソリューションが考案されてきた。また、メディアアクセスとトランスポートレベルで多数のソリューションを説明する。これらのソリューションのいくつかは、イーサネット８０２．３、ワイヤレス８０２．１１ａ、ｂ、ｇ、および、他のソリューション（非同期転送モード（ＡＴＭ）、シンクロナス・オプティカル・ネットワーキング（ＳＯＮＥＴ）などのソリューション）を使用するメディアアクセスのメソッドを含んでいる。さらに、より高いＱＯＳを達成するために様々なメソッドがある専用のソリューションにより取り扱われてきた。
【００１０】
１つのアプローチは“伝送プロファイル”の概念を含んでいる。そこでは、ネットワーク・システムおよびその参加者はネットワーク・パケットの付加情報を検出することによってパスを選択する。他の場合では、仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）タグが利用されているか、またはＡＴＭが（仮想）パス識別子を利用して実施される。いくつかのソリューションはデータバンド幅割当てを実施する。そこでは、ネットワーク・システムが構築され、高速アクセスが周波数分割多重化チャンネル上で提供され、イーサネット・フレームおよび／または他のデータについてのケーブル伝送ネットワーク上の伝送または他の形式のＦＤＭ転送を可能にしている。デバイスは様々なネットワーク・パケットのためにタイムスロット割当に基づく以前に定義された周波数チャネルにおける下流の、そして、上流のバンド幅を通常割り当てる。転送で、多くの現在のソリューションがインターネットプロトコル（ＩＰ）を利用する。いくつかの場合、転送制御プロトコル（ＴＣＰ）などの様々なコネクション型プロトコルが採用されている。
【００１１】
しかしながら、ほとんどの既存のシステムは、高品質で高解像度のＡ／Ｖプログラミング・コンテンツの配信に必要な性能水準を維持できるソリューションであって、広く使用されている標準のネットワーク・プロトコル（例えば、イーサネットプロトコル）の周辺に構築されたオープン・ネットワーク・ソリューションを提供しない。例えば、一般に、標準イーサネット・コントローラを利用する現在のシステムは、狭帯域幅ローカルバス上でのリアルタイム・ストリーミング・データの移動を許さないので、その結果、望ましい性能水準を達成しない。
【００１２】
先行技術に関連する他の対応する事項は本明細書に記載されるような本願発明と先行技術を比較した後に当業者には明らかになる。
【発明の概要】
【００１３】
実施例の１セットでは、ＨＤ（ハイデフィニッション）ディジタル・ビデオ・システムのためにイーサネット上での安全なデジタル・ビデオ・ストリーミングを可能にするために、ネットワーク・デバイス（ＮＤ）を構成できる。ネットワーク・デバイス（ＮＤ）は、少なくとも２モード、コプロセッサ・モード、およびスタンドアロン・モード、の１つで作動できて、少なくとも３つの高水準機能を提供できる（ネットワーク・インタフェース制御（ＮＩＣ）、ビデオ・ストリーミング・オフロード（ＶＳＯ）、および、スタンドアロンのビデオ・ストリーミング（ＳＶＳ））。ＮＩＣは標準ネットワーク・アクセスの機能性を含むことができ、ＶＳＯはコプロセッサ・モードにおける高帯域幅ＨＤビデオ・ストリームのホストＣＰＵ制御オフロードを可能にし、そして、ＳＶＳはスタンドアロン・モードでのビデオ・ストリーミングを、外部のホストＣＰＵによる介入なしで、可能にする。ネットワーク・デバイス（ＮＤ）に関連しているソフトウエアを２つの主なカテゴリに分割することができる（ネットワーク・デバイス（ＮＤ）上で構成された処理ユニット上で作動するコントローラ・ファームウェア、ホストプロセッサ（ＣＰＵ）のために意図するホストソフトウェア）。また、ネットワーク・デバイス（ＮＤ）は、強力なマスターＤＭＡ能力を備え、メモリ・トランザクションにおけるＣＰＵのかかわり合いを減少させることができる。
【００１４】
１つの実施例では、基本的なレイヤ−２  イーサネットＮＩＣアクセスはＮＤネットワーク・ドライバによって提供され、そのＮＤネットワーク・ドライバは通常のＮＩＣインターフェイスを使用し得るように構成され、ＮＤの拡張機能は指定されたＮＤアプリケーション・プログラミング・インタフェイス（ＮＡＰＩ）を介してアクセスされ得る。ＶＳＯの機能性をシームレスに実行するために、ＮＤは、２つのＴＣＰ／ＩＰスタックを有し、単一のイーサネットインタフェースで同期して作動するように構成されている。２つのＴＣＰ／ＩＰスタックがデータ・トラフィックを共有し、ホストＴＣＰ／ＩＰスタックはマスタとして作動し、そしてＮＤ ＴＣＰ／ＩＰスタックが指定したトラフィックをアクセプトするように構成し、その結果、ＮＤで構成されたプロセッサへいくつかのデータ処理をオフロードする。ＮＤイーサネット・システムはホストへの通常のネットワーク・コントローラとして現れ、ユーザは、そのコントローラからＭＡＣアドレスを得るか、または設定するためにＮＤイーサネット・ドライバーを構成でき、物理層リンク速度および二重モードを構成し、マルチキャスト・フィルタ設定を構成し、そしてイーサネット・レベル・スタティスティクスを獲得しかつクリアできる。
【００１５】
また、ＮＤは、パス・スルー・モードで動作して、すべてのイーサネット・パケットが、いずれのパケットもＮＤにおいて構成されたプロセッサにインターセプトまたはトラップされることなく、ホーストに達する、ことを可能にする。パス・スルー・モードでは、いかなるＩＰレベル処理なしで、イーサネットフレームを直接ホーストに送る。それは、例えば、ホーストがＩＰアドレスを持たないとき、またはブートアップ・プロトコルを使用したいとき、有効である。
【００１６】
多くの近代の商用システムでは、ＴＣＰ（転送制御プロトコル）オフロード・エンジンまたはメディア・オフローディングは、ＴＣＰ／ＩＰスタックを有さないがマスタとして機能しかつＴＣＰ／ＩＰスタックを有する別のプロセッサにメディア・トラフィックをオフロードする単一のプロセッサで実施される。しかし、他のシステムではプロトコル・ヘッダーを取り除いてデータをホストプロセッサにパスさせるネットワーク終端ポイントとして機能するオフロードコプロセッサを含む。そのようなソリューションの主な欠点の１つは、ホスト・プロセッサがオペレーティング・システムの豊かな特徴をフルに利用するように動作しないということである。ホストへのトラフィックが増すと、通常、パフォーマンスに不利な条件は高くなる。対照的に、既存のオペレーティング・システム構造に、例えば、ホストへのトラフィックをトンネルするというリナックス・ファイヤー・ウォール・アーキテクチャの特徴を使用するようにＮＤを構成することで、パフォーマンスに不利な条件を無視し得るようにでき、ホストの柔軟性を損なわないでオペレーティングシステムの豊かな特徴を利用しかつＮＤにおいて構成されたプロセッサにトラフィックのどの部分をオフロードすべきかを動的に決定できる。
【図面の簡単な説明】
【００１７】
添付図面を参照して、以下の詳細な説明を読めば、本発明の上記の、および他の目的、特徴、および利点をより完全に理解できる：
【００１８】
【図１】図１には、１実施例による、コプロセッサモードで作動してホスト中央処理装置からオフロード・ストリーミングをするネットワーク装置（ＮＤ）で構成されたビデオ／オーディオシステムのブロックダイアグラムである。
【００１９】
【図２】図２には、１実施例による、ホスト中央処理装置なしのスタンドアローンで作動するＮＤで構成されたビデオ／オーディオシステムのブロックダイアグラムが示されている。
【００２０】
【図３】図３には、１実施例による、図１および２からのＮＤ用のブロックダイアグラムが示されている。
【００２１】
【図４】図４には、１実施例による、ＮＤ用のトラフィック管理を示すブロックダイアグラムが示されている。
【図５】図５には、１実施例による、ＮＤ用トラフィック管理ソフトウェア構造のコンテキストにおけるデータフローの１例を示すブロックダイアグラムが示されている。
【００２２】
【図６】図５は、１実施例によるＮＤ用のイーサネットドライバー構成を示すダイアグラムである。
【００２３】
【図７】図６は、１実施例によるＮＤ用のパス・スルーモード構成を示すダイアグラムである。
【００２４】
本発明は、様々な修正や代替が可能であるが、特定の実施例が、図面に一例として示され、本明細書に詳細に記載される。しかしながら、図面と詳細な説明に開示した本発明の特定の形態に制限するものではと言うことが理解されるべきである。添付のクレームに定義されるように、本願発明の趣旨と精神の範囲内で、すべての修正や同等物ないし代替手段を含むと解すべきである。
「“ｍａｙ”という語は、必須の意味ではなく、使用し得るという意味で使用されることに注意されるべきであり」、「包含」という語やその派生表現は、は「包含など」を意味する。
【発明を実施するための形態】
【００２５】
この明細書で、「ＤＷＯＲＤ」、または「ダブルＷｏｒｄ」は、３２ビットのサイズデータワードを参照するのに使用される。
「ローカル・システム・メモリ」または「ローカル・メモリ」は、ホストシステムで含まれている中央処理装置および／または中央コントローラに、通常埋め込まれているか、直接インターフェイスされている。
「リモート・システム・メモリ」または「リモート・メモリ」は、ホストシステムに含まれているが、中央処理装置および／または中央コントローラに埋め込まれていないか、直接インターフェイスされておらず、ホストシステムと明確に区別できるものである。リモート・メモリは、ホストシステムで含まれる場合には、周辺装置に埋め込まれたメモリであり、ホストシステムに直接インターフェイスしない追加メモリとされる。
【００２６】
本明細書における、「リアルタイム」、「リアルタイムのデリバリ」、「実時間動作」、および／または、「リアルタイムのストリーミング」は、同じセットの信号の入力および／または出力が、連続的に行われ、システムへの入力信号（入力信号のセット）および／または対応する出力信号が（処理遅れは別にして）連続的に処理され生成されること示す。言い換えれば、入力信号は、システムによって受け取られているレートで処理され、対応する出力信号は、平均的に見て等しいレート出力される。
単語「ポート」がソフトウェア（例えば、アプリケーションソフトウェアやドライバソフトウェア）の文脈で使用される場合や、オペレーティングシステムの文脈で使用される場合には、「ポート」は、ネットワークシステム（例えば、ＴＣＰ／ＩＰや、ＵＤＰネットワーク）における論理結合へのエンドポイントを指称する。幾つかの実施例では、参照されているポートのタイプを特定するのに、「ポートナンバー」を使用できる。例えば、ＴＣＰ／ＩＰ、および／または、ＵＤＰネットワークでは、ポートＮｏ．８０はＨＴＴＰトラフィックに使用される。他の実施例では、「ポート」は１つのインタフェースマッチを入手できるカプセル化ヘッダーフィールド値の組合せを表すことができる。
【００２７】
本明細書で「トランスポートストリームインタフェース」（ＴＳＩ）は、特に基本のストリームから得られたデータパケットストリーム、サービス情報、プライベートデータ、および／または、限定受信制御の発信のために構成された専用インターフェースを参照するのに一般的な意味では使用される。データパケットストリーム（ビデオとオーディオストリームを含むことができる）を一緒に多重化して、「トランスポートストリームインタフェース」上での送信のために、「転送パケット」に変換できる。
【００２８】
多くの近代のシステムの特性には、最適化されていないネットワーク結合および／またはインタフェース（例えばＩＰインターフェイス、またはイーサネットインターフェイス）がある。ストリーミング・データなどあるタイプのデータ（リアルタイムビデオおよび／または音声データを含む）が、標準ネットワーク接続（例えば、イーサネット接続）上に送られるとき、例えば、ストリーミング・データが、意図しているデスティネーション（例えば、テレビのディスプレイまたはオーディオプレーヤーなどのレンダリングデバイス）に達するように、最初に、ホストＣＰＵ、または、多くの場合、ローカルバスメモリバスまたはＩ／Ｏバスの上に転送される。また、ストリーミング・データをフォーマットしてコピーするために、ホストＣＰＵに加えて、バンド幅獲得のための回線争奪が同じバスに結合された他の機器との間で生じ得る。しかしながら、ホストＣＰＵによる必要とされる処理を次のように先取りできる。つまり、送られたストリーミング・データへの追加的処理、および／または、フォーマットの実行からホストＣＰＵを解放するために、コプロセッサへのストリーミング・データのオフロードによって、および／または、専用インターフェース（例えば、トランスポートストリームインタフェース）でホストＣＰＵまたは目標のデスティネーションにストリーミング・データを送ることで、先取りできる。さらに、ホストＣＰＵのためのネットワークの接続性の維持が、専用インターフェースを通しての、処理、および／または、送信／受信の一方で、可能とされると、オペレーティングシステムの豊かな特徴を、ホストＣＰＵによる完全な利用を、好ましいことに可能にできる。
【００２９】
幾つかの実施例では、オーディオ／映像装置（例えば、ＨＤ（ハイデフィニッション）ディジタルビデオシステム）のためにイーサネットの上で安全なデジタルビデオ・ストリーミングを可能にするために、ネットワーク・デバイス（ＮＤ）を構成できる。ＮＤは少なくとも図２のモード（コプロセッサモード）と、図２のスタンドアローンの何れかで作動できる。
ＮＤは少なくとも３つの高水準機能を提供できる（ネットワークインターフェイス制御（ＮＩＣ）、ビデオ・ストリーミングオフロード（ＶＳＯ）、および、スタンドアロンのビデオ・ストリーミング（ＳＶＳ））。ＮＩＣは標準ネットワークアクセスの機能性を含むことができる。ＶＳＯは、コプロセッサモードにおける高帯域幅ＨＤビデオストリームのホストＣＰＵ管理状態オフロードを可能にすることができる。ＳＶＳはスタンドアローンにおけるビデオ・ストリーミングを、ＮＤへの外部のホスト・プロセッシング装置（以下、ホストＣＰＵと呼ぶ）の介入なしで、容認することができる。
ＮＤに関連しているソフトウエアを２つの大範疇に分割することができる（ＮＤに構成された処理装置（以下に、ＮＤ  ＣＰＵと呼ばれる）で実行されるファームウェアと、ホストＣＰＵでの実行を意図するホストソフトウェア）。
大規模なマスタ直接記憶アクセス（ダイレクトメモリアクセス）能力で、メモリトランザクション中のＣＰＵでの処理量を抑えるために図３に示すようにＮＤを構成できる。
【００３０】
図１は、ホームネットワーク／ＬＡＮ（ローカルエリアネットワーク）１９２、およびディジタルビデオ方式（ＤＶ）１９０を含むことができるホストシステム（ＨＳ）１００のコンポーネントとしてコプロセッサモードで作動するＮＤ１６２を構成できる１つの実施例を示している。ＤＶ１９０は、ハイデフィニッションオーディオ／ビデオ信号を含むことができる、オーディオ／ビデオ信号を、衛星１５２、および／または、アンテナ１５４を介して受け、チューナー１５８を通して受信信号からトランスポートストリーム（ＴＳ）を生成するように構成された、既に現存するさまざまなＤＶシステム、または新たに設計されたシステム１つであり得る。ＴＳは、ＴＳＩ入力１６８を通してデマルチプレクシング／フィルタリングをするＳＯＣ１６０に提供され、ＴＳデマルチプレクシング／フィルタリングエンジン１７２を経由させられる。ＴＳＩポート１８０を通してホームネットワーク／ＬＡＮ１９２に、フィルタされたＴＳが、提供される。そこで、デジタル・メディアサーバ（ＤＭＳ）として機能するＮＤ１６２は、リモートデジタル・メディアプレーヤー（ＤＭＰ）１６６にフィルタされたＴＳを提供できる。オプションで、ＨＤディスプレイ１５６上にビデオフロントエンド回路１７４を通してフィルタされたＴＳのビデオ部分を表示できる。ＳＯＣ１６０はバス１７８を通してチューナー１５８を制御するか、または構成できる。そのバスは例えばＩ2Ｃ  ｂｕｓである。コンフィギュレーションと利用者アクセスのため、ＳＯＣ１６０とＮＤ１６２をともにホストバス１８４に結合できる。
【００３１】
幾つかの実施例のセットでは、ＮＤ１６２はＨＴＴＰ（ハイパーテキスト転送プロトコル）のストリーミングのオフロードをホストシステム１００に提供でき、それにより、他の任務を扱うためにメインＳＯＣ（システム・オン・チップ）１６０が解放される。いくつかの実施例では、ＳＯＣ１６０上で作業しながら２つのサンプル・アプリケーションを使用するＮＤ１６２へＨＴＴＰストリーミングのオフロードができる。したがって、コプロセッサモードで、ＮＤ１６２はＳＯＣ１６０のコンパニオンチップとして作動できる。ＳＯＣ１６０が、ＤＶ１９０のすべてのタスク（例えば、ユーザインターフェース、ビデオのデコード、ＰＩＤフィルターなど）の実行をしている間、ＮＤ１６２は、自然なパスをネットワークの接続性に提供するために、専ら、ストリーミングおよびネットワーク機能の実行を実現できる。コプロセッサモードでは、ＮＤ１６２はネットワークインタフェース・コントローラ（ＮＩＣ）の機能性とビデオ・ストリーミングオフロード（ＶＳＯ）の機能性の両方を提供できる。
【００３２】
ＮＩＣの機能性は、ネットワーク・コントローラに予想されたサービス（例えば、ネットワークからのパケット受信およびネットワークへのパケット送信）をイーサネットの接続１８６を介して提供することを含むことができる。これは、非−ストリーミング・ネットワーキング能力を含んでいるＤＶ１９０デザインの補足となるもので、ウェブ閲覧などの低バンド幅非−ストリーミングネットワーク通信タスクを、ＳＯＣ１６０がＮＤ１６２を利用して行えるようにする。ＮＤ１６２のＮＩＣの機能性は、変更を必要とせずにＤＶ１９０内蔵のより高レベルのネットワークアプリケーションをそれらのＤＶ１９０が使用可能となすために、ＮＩＣドライバーレベルの標準のＯＳ特有のインタフェースを提供できる。
【００３３】
ＶＳＯの機能性はＨＤ（ハイデフィニッション）ビデオストリーム（または、他のタイプのビデオストリーム）をイーサネット１８６の上に送るか、または受けて、ＴＳＩポート１８０，１８２から（又は、ポート１８０，１８２に対して）それらのストリームを向ける能力を提供できる、その結果、ＤＭＰ１６６へのＤＭＳの機能性、および／または、ＤＭＳ１６４へのＤＭＰの機能性を提示し、ＤＭＳ１６４とＤＭＰ１６６をネットワーク資源として機能させる。ある実施例では、ＶＳＯの機能性は、図１ではＴＳＩ入力ポート１８０とＴＳＩ出力ポート１８２として示され（ＨＤビデオＳＯＣｓの多くで利用可能な）標準のＴＳＩポート（例えば、ＭＰＥＧ２  ＴＳＩポート）の使用で、これらのストリーミングの能力を可能にすることができる。例えば、イーサネット１８６を介してＮＤ１６２でＤＭＳ１６４から受けたＨＤストリームを、ＴＳＩポート１８２を通してＳＯＣ１６０に提供できる。ＳＯＣ１９０はデコーダ１７６を通してＨＤストリームをデコードできる、そして、ＨＤディスプレイ１５６に、ビデオフロントエンド回路１７４を介してストリームのビデオ部分を表示できる。実施例（図示してない）によっては、イーサネット１８６で受信されたストリーミングデータは、ＮＤ１６２によって、代替のポートおよび／または追加のポート（ＴＳＩ１８０／１８２以外）にルーティングされ、そのポートは、ＮＤ１６２からＳＯＣ１６０への結合ではなく、ＮＤ１６２を他の（代替のまたは追加の）対象装置に、例えば、デジタル・メディアのプレーヤーまたはディスプレーデバイスに結合し、それでデジタル・メディアのプレーヤーまたはディスプレーデバイスが、ストリーミング・データの元の目標のデスティネーションによるストリーミングのデータを解読できるようにできる。
【００３４】
ＳＯＣ１６０のかかわり合いなしでＮＤ１６２ですべてのストリーミングのプロトコルと内容のプロテクション処理の実行を、ＶＳＯの機能性がＳＯＣ１６０の上のイーサネット１８６とＴＳＩポート１８０／１８２の間のシームレスブリッジを提供可能となるように、行える。実施例によっては、ＮＤ１６２のＶＳＯの機能性をホストシステム１００のデザインとユーザインターフェースに結び付けるためにＳＯＣ１６０でコマンドアンドコントロールを実施できる。しかしながら、また、ＳＯＣ１６０とＮＤ１６２で共同でコマンドアンドコントロールの機能性を実施できる、そこでは、ＮＤ１６２はＳＯＣ１６０から、より自主的に機能できる。ホストシステム１００のニーズに基づいて、ＮＤ１６２が実行時間の間にＳＯＣ１６０と協力する方法が、ホストシステム１００の最適性能を得るように、決定できる。同時にＮＩＣの機能性とＶＳＯの機能性を（コプロセッサモードで）利用可能にすることができ、オフロードされるストリームが進行している間、ＳＯＣ１６０には基礎的ネットワークアクセスが容認される。
【００３５】
代替の実施例は、図１と同じコンポーネントを含むのでなく、そして、図１のＨＳ１００が例示のシステムであることに注意するべきであり、他の可能なコンポーネントは図１に示されていたコンポーネントと全く同じ機能を実行するのではない。一般に、図１はホストシステム（例えば、ＨＳ１００）の例であり、そこでは、ネットワーク・デバイスには特定のタイプのネットワーク（例えば、イーサネット１８６）にインターフェイスルするネットワークインタフェースが含まれ、ネットワーク・デバイス（例えば、ＮＤ１６２）の上で、第１インタフェース（例えば、ホストバス１８４）と第２インタフェース（例えば、ＴＳＩ入力１８０とＴＳＩ出力１８２）を構成できる。ネットワーク・デバイスは、第１インタフェースおよび第２インタフェースを介して、ホスト処理装置（例えば、主なＳＯＣ１６０）とインタフェースするようになし、データを交換してＮＤのネットワークインタフェースを通してホスト・プロセッサ・ユニットの接続性をネットワークに提供するよう構成できる。実施例の１つでは、ホスト処理装置が第１インターフェイスを通したネットワークへのアクセス、およびネットワーク・デバイスのネットワークインタフェースへのアクセスをしている状態で、データが同時に第２インターフェイスから送られるのを可能にするように、ネットワーク・デバイスとホスト処理装置とは構成される。
【００３６】
ホスト処理装置とネットワーク・デバイスとは、それぞれがネットワークと結合された２つの異なったデバイスとして、ネットワークから又はへとデータを受信又は送信する能力を持ち、双方は、同じネットワークアドレスを有していても、独自にネットワークから受け取られたデータを処理できる。さらに、ホスト処理装置とネットワーク・デバイスは、第２インタフェースの上で相互間でデータを転送できる一方で、ネットワークから又はへとデータを受けるか又は送る能力を持つことができる。さらにもう１つの実施例では、（図示せず）チューナー１５８をＴＳＩ１８０でＮＤ１６２と結合できる（つまり、ＴＳＩ１６８がＴＳＩ１８０と一致するよう構成してチューナー１５８をＮＤ１６２に結合する）。その結果、直接チューナー１５８からストリーミングのデータを受けるよう構成され、イーサネット１８６へのネットワークの接続性をＳＯＣ１６０に提供できる。
【００３７】
スタンドアローンでＮＤ１６２を、図２に示すように使用でき、ＮＤ１６２は、システムの主たる処理手段（またはＣＰＵ）として使用できる。スタンドアローンモードでは、外部のホストシステムへ無接続でよい。ＮＤ１６２は、それ自身でシステムとして作動できて、ホストから受けたコマンドに依存しない。したがって、ＩＰコンフィギュレーション・アップロードも、カスタムＮＤ１６２パケットフィルタリング規則を加えることも必要ないが、双方ともに、コプロセッサモードにおける二重ネットワーク・スタック構成では必要とされる。スタンドアローンでは、ＮＤ１６２のネットワークスタックしか使用されず、コプロセッサモードとは異なってＨＴＴＰストリーミングが扱われる。したがって、ネットワーク資源としてＭＰＥＧ２  ＴＳＩポートを有するＨＤビデオチューナー１５９などのビデオ情報のローカル・ソースを使用できる。ＮＤ１６２は、チューナー１５９をデジタル・メディアサーバとしてネットワークに現出させるように作動できる。ＮＤ１６２は、内蔵のバスインタフェイス１７８（いくつかの実施例ではＩ2 Ｃインタフェース）を使用することでチューナー１５９を制御できる。
【００３８】
図２は、ＤＭＳだけのシステムを示すが、スタンドアローン・モードは、外部の画像復号器によるＤＭＰの使用を可能とする。言い換えれば、ＮＤ１６２は、ＤＭＰ１６６との相互運用性を可能にしつつ、ＤＭＳなどのネットワーク資源としてチューナー１５９を利用可能とする。ＮＤ１６２がＰＩＤフィルタリングを実行しない実施例では、チューナー１５９からのマルチプログラム・ストリームを、ＮＤ１６２へと入力させる前にフィルターにかける必要があり得る。スタンドアローン・モードでは、ＮＤ１６２はスタンドアロンビデオ・ストリーミング（ＳＶＳ）の機能性を提供でき、コプロセッサモードが利用可能なＶＳＯの機能性と同様に、ホストＳＯＣ制御装置なしで作動するように設計されている。さらに、スタンドアローン・モードでは、ＮＤ１６２はコンフィギュレーションおよび制御のためにウェブベースのユーザインターフェースを実行できる。
【００３９】
実施例の１つでは、ホストシステムはＮＤ１６２とＳＯＣ１６０によって構成されて、ミックスモードで作動できる、スタンドアローン・モードとコプロセッサ・モードの両方の特徴のいくつかが示される。再びミックスモードでは、ＮＤ１６２は、図１を参照して、ＳＯＣ１６０からホストバス１８４を介してコンフィギュレーション情報とコマンドを受け取ることができる。しかしながら、ミックスモードでは、ＳＯＣ１６０はネットワークスタックなしで作動でき、ＮＤ１６２は、ＮＩＣ機能をＳＯＣ１６０に提供しないように構成できる。ＴＳＩ１８０上でストリーミング・データを、ＮＤ１６２に送信するようにＳＯＣ１６０を構成でき、そのＮＤ１６２は、イーサネットのインタフェース／接続性１８６で当該ストリーミング・データをネットワークに伝えることができる。また、同様に、ネットワークからイーサネットのインタフェース／接続性１８６でストリーミング・データを受信し、ＴＳＩ１８２でストリーミング・データをＳＯＣ１６０に送信するようにＮＤ１６２を構成できる。当業者には、ＳＯＣ１６０とＮＤ１６２の両方の様々な動作面と特性を特定したので、ＳＯＣ１６０とＮＤ１６２の間の相互作用の他の様々な方法が可能であることが解るであろう。例えば、ＳＯＣ１６０へのイーサネットのインタフェース／接続性１８６で受信されたストリーミング・データをＮＤ１６２が送信できることに加えて、ＮＤ１６２は、追加インタフェース（図示せず）を通して、ＮＤ１６２と結合できる他の目標へのイーサネットのインタフェース／接続性１８６で受信されたストリーミング・データ、および／または、他のデータを送信できる。
【００４０】
図３は、単一ネットワーク（例えば、ＩＰまたはイーサネット）インタフェース上で、少なくとも２つのネットワークスタック（例えば、ＴＣＰ／ＩＰスタック）を同期して動作可能に構成できるＮＤ１６２の１つの実施例のブロックダイアグラムを示している。ＮＤ１６２はネットワークインタフェース、ここではイーサネットインタフェース１１０、プロセッサ１２８、および、１３２ａと１３２ｂ（これらは、まとめてストリーミング・インタフェース・コントローラ１３２と呼ばれる）を含むことができる。また、ＮＤ１６２は、バスインタフェイス１０２ａ、１０２ｄを通して様々なバスにインターフェースするように構成でき、そして、メモリトランザクションにおける、プロセッサ１２８のかかわり合いを減少させるために直接記憶アクセス（ダイレクトメモリアクセス）エンジン１３８と外部記憶装置コントローラ１２４を含むように構成できる。ストリーミング・インタフェース・コントローラ１３２が、ストリーミングのデータのソーシングおよび／またはシンクを提供するように構成できる。ストリーミングのインタフェース・コントローラは、個々に２以上のコントローラを含む。ストリーミングのインタフェース・コントローラ１３２の各コントローラを個々にデータをシンクまたはソーシングするように構成でき、その結果、データストリームをＮＤ１６２によって送るルーティング、および／または、処理法についての汎用性が提供される。ＮＤ１６２の内部のコンポーネントを連結するために、内部のバス１２６（例えば、プロセッサ１２８がＡＲＭプロセッサであるときのＡＨＢ（高度な高性能バス））を構成できる。ホストとの通信はホストバスインタフェイス（ＨＢＩ）コントローラ１３６を通して行うことができ、ビルトインＩＲＱとパワーマネージメントがモジュール１４０と１４２で提供され得る。以前に述べたように、ＮＤ１６２が、ホストＤＳＰプロセッサとして動作するプロセッサ１２８を有するスタンドアロンのネットワークプロセッサとして機能できるか、または、ビデオトラフィックのための部分的なオフロードプロセッサとしてコプロセッサモードで外部のホストプロセッサに対して機能できる。
【００４１】
したがって、入来または送出されるＨＤビデオストリームが、ネットワークとストリーミング・インタフェースポートの間でイーサネットインタフェース１１０とストリーミングのインタフェース・コントローラ１３２を使用してブリッジされるように、ＮＤ１６２を構成できる。ストリーミング・インタフェース・ポートでは、データストリームを受ける（シンクする）か、または伝送する（ソーシングする）。そして、各ポートは、ＭＰＥＧ２  ＴＳストリームのためのＤＶＢ／ＡＴＳＣ／ＡＲＩＢ  ＳＰＩ仕様、ＭＰＥＧ２  ＴＳストリームのためのシリアルモード、および非−ＴＳコンテントのためのフロー制御を有する拡張パラレルモード（extended parallel mode）を含むさまざまなストリーミング・モードをサポートするよう構成できる。ＭＰＥＧ２  ＴＳモードでは、単一プログラムマルチデータＭＰＥＧ２  ＴＳストリームしかサポートできない。衛星から受け取られたものなどの複数のプログラムストリームは、ＮＤ１６２に入るまえにＰＩＤフィルターにかける必要がある。ネットワーク側では、ＮＤ１６２は、ネットワークに行くローカルなビデオストリームのためのデジタル・メディアサーバ（ＤＭＳ）、または、ネットワークで利用可能なビデオストリームのためのデジタル・メディアのプレーヤー（ＤＭＰ）として、出現することができる。
【００４２】
ＤＭＰとＤＭＳのサポートは、２つの異なった部分にそれぞれ分割することができる。
ストリーム転送とストリーム制御とに分割できる。
ある実施例では、ＨＴＴＰ１．１サーバとクライアントでストリーム転送を表すことができ、ＵＰｎＰ  Ａ／Ｖメディアサーバ（ＵＰｎＰ  ＭＳ）とＵＰｎＰ  Ａ／Ｖメディアレンダラー（ＵＰｎＰ  ＭＲ）でストリーム制御を表すことができる。ストリーム制御は、カスタマによって開発されるか、または他のシステム（ホストＣＰＵでランしている）に統合されている場合に、ＮＤ１６２のＣＰＵ１２８上、または、ＳＯＣ１６０のホストＣＰＵ上で実行される。他の実施例では、転送と管理部分の両方がＮＤ１６２で動作できる。例えば、ＮＤ１６２がスタンドアローンで構成されるシステムでは、すべてのストリーミングの支援ソフトウェアがＮＤ１６２のＣＰＵ１２８上で動作できる。ＮＤ１６２のために設計された指定されたアプリケーションプログラミングインタフェイス（本明細書でＮＡＰＩと呼ばれる）の一部、およびその関連ソフトウェアにストリーム転送とストリーム制御とのインタフェースを定義することができる。（以下に詳細に説明する）。一般に、図１において、ＶＳＯ機能は、主なＳＯＣ１６０またはチューナー１５８上のＴＳＩポートと、ネットワーク（この場合イーサネット１８６）の間のブリッジを提供するために作動できる。
【００４３】
実施例の１つでは、ＮＤ１６２に関連しているソフトウェアは２つのカテゴリに分割できる。第１のカテゴリは、プロセッサ１２８で動作するように設計されていて、ＮＤ１６２の中にあるすべてのコントローラファームウェアモジュールを包含できる。ＮＤ１６２が高性能を実現するハードウェア能力を利用するためにコントローラファームウェアを構成できる。第２のカテゴリは、ＨＢＩコントローラ１３６とホストバス１８４（追加されているインタフェースを含む）を介してＮＤ１６２に結合されたホスト（ＤＶ）システム１９０上のすべてのソフトウェアモジュールを含むホストソフトウェアを包含できる。ホストソフトウェアは、便利でフレキシブルＮＡＰＩ（アプリケーションプログラミングインタフェイス）を提供するように設計される。以前に言及した、ＮＤ１６２は、３つの主要機能を提供できる。ＮＩＣ（ネットワークインターフェイス制御）、ＶＳＯ（ビデオ・ストリーミングオフロード）、および、ＳＶＳ（スタンドアロンビデオ・ストリーミング）の３つが提供でき、ＮＩＣとＶＳＯがコプロセッサモードが利用可能である。
【００４４】
ＮＤ１６２のＮＩＣ機能はホストシステム１９０にネットワークの接続性を提供できる。さまざまな異なったネットワークの１つに対して、ホストシステム（図１のＨＳ１００などの）のコンフィギュレーションとネットワークリクワイアメントに依存する接続性があってもよい。ＮＤＮＩＣ機能は、ＮＤホストソフトウェアに含まれたネットワークドライバーで一部が、ＮＤコントローラファームウェアの一部（本明細書でＮＴＣ（ネットワーク・トラフィックコントローラ）と呼ばれるもの）で一部が、実施できる。全体的に見て、ＮＴＣはネットワーク（イーサネット１８６などの）を通して受信したデータのオフローディングを容易にするために工夫された特別なソフトウェアモジュールを含むことができる。ＮＤＮＩＣ機能とは、ＮＩＣドライバーとしてホストに現れ得るが（以下も参照されたい）、本明細書に使用されるように、ＮＩＣドライバーによって提供される機能性のＮＤ特定の実装に言及する語である。
【００４５】
図４は、ＮＤＮＩＣ機能の１つの実施例を示す図である。ＮＴＣ５７１とネットワークドライバー５７０はＨＢＩドライバー５７２と５７３の対を使用するＨＢＩ５７６を通して通信できる。ＨＢＩは、示されているようにそれぞれホストソフトウェアとコントローラファームウェアの両方の一部であるかもしれない。ネットワークドライバー５７０はレイヤ２の接続性をホストに提供できる。それは、イーサネット１８６に／イーサネット１８６から、パケットを、送るか／受けるのに、ＮＴＣ５７１を使用できる。したがって、ホストパケットの待ち行列レイヤとして、ＳＯＣ１６０のために明確に意図しない、オフロードされるビデオストリーム５７８などのような入力パケットのためのフィルタとして、ＮＴＣモジュール５７１を構成できる。ＮＤＮＩＣ機能は、ＶＳＯ機能と相互作用して、ＮＤスループット資源の分担を制御して、ＮＤＮＩＣ機能に正しいスタティスティクスを提供できる。その結果、ＮＤＮＩＣ機能で、オフロードされたビデオストリームパケット５７８がＳＯＣ１６０から見えないようにでき、したがって、ＲＸ（受信）、ＴＸ（送信）、ドロップ、および他のスタティスティクスが、従って、調整できる。ＮＤがコプロセッサモードで作動するとき、ＮＤＮＩＣ機能は、ＶＳＯ機能と同時に作動できる。
【００４６】
１つの実施例では、２つのネットワークスタックに同じネットワークアドレスを共有させることによって、同時にＶＳＯ機能とＮＤＮＩＣ機能とを実行するのを達成できる。
言い換えれば、２つのネットワークスタックは、相互に異なっても、単一ネットワークアドレスに対応できる。例えば、同じＩＰアドレスに対応する２つのＩＰスタックを働かすように、ＮＤ  ＮＩＣ機能を構成できる。その上、また、２つのＩＰスタックが同じ物理的なイーサネットインタフェースを同じＭＡＣアドレスと共有できる（イーサネットインタフェースがネットワークに接続するのに使用されるとき）。したがって、ＮＤ  ＮＩＣ機能は、ＮＤＣＰＵ１２８に対応するＩＰスタックが一貫したステータスを有し且つＳＯＣ１６０のＩＰスタックを妨げないと言うことを、確実にするのに使用できる。ＶＳＯ機能をイネーブルにするために、ホストは、フィルタリングをイネーブルにし、ＴＣＰ／ＵＤＰポート競合を防ぐために追加コンフィギュレーションを行わなければならない。
【００４７】
コプロセッサモードにおいては、ＶＳＯ機能はＮＤスタートアップでデフォールトによってアクティブでないかもしれない。ＶＳＯ機能はホストにおけるＮＩＣコンフィギュレーションクライアントアプリケーションによってアクティブにされ得る。したがって、ＶＳＯ機能の初期のコンフィギュレーション（構成）は、ＮＩＣコンフィギュレーションアプリケーションを通してまたはそれと協力して遂行され得る。それはＮＡＰＩを通してインタフェースを露出でき、ホストアプリケーションＮＩＣコンフィギュレーションクライアントによって使用され得る。両方のアプリケーションにより、ホストはＩＰコンフィギュレーションと基本的なフィルタリング規則を適用できるだろう。ＶＳＯ機能が一旦活性化されると、ＮＴＣモジュールは、オフロードされたビデオストリームに属するパケットをフィルタリングし始め、トラフィックの残りはＮＩＣ機能の一部としてホストに向けられ得る。
【００４８】
ＶＳＯ機能をイネーブルにすることの一部としてＮＩＣコンフィギュレーションクライアントを使用して追加コンフィギュレーションを行うためにホストを構成できる。追加コンフィギュレーションは、ＮＤのダイナミックなＴＣＰ／ＵＤＰポート範囲を設定することを含むことができる。その範囲は２つのＩＰスタックが同じローカル・ポートで２個のソケットを開けるのを防止するために、ホストＩＰスタックによって使用されるポート範囲と異なって設定され得る。ＩＰコンフィギュレーション（例えば、アドレス、マスク、ゲートウェイ）はＮＤ  ＩＰスタックの操作を構成でき、ＮＴＣはオフロードされたストリームに属するパケットのためにフィルタリングを始めることができる。実施例の１セットでは、フィルタリングはＴＣＰ／ＵＤＰポートナンバーに基づいて実行でき、各ネットワークスタックは自己に割り当てられたポートナンバーの範囲を有する。それぞれのポートナンバー、またはそれぞれのポートナンバー範囲を異なったネットワークスタックに割り当てることによって、同じネットワークアドレスにすべて対応する複数の異なったネットワークスタックは実現できる。したがって、代替の実施例は２つ以上のネットワークスタック（例えば２個以上のＩＰスタック）を特徴とすることができ、各ネットワークスタックは他のネットワークスタックのいずれかに対応するポートナンバーのいずれにも重複しないポートナンバーまたはポートナンバーの範囲が割り当てられる。ホストＣＰＵはこのコンフィギュレーションを、ＤＨＣＰや自動ＩＰや静的なコンフィギュレーションなどの任意の手段によって得ることができる。また、ＩＰサービスプロトコルを扱うための規則でＮＴＣをプログラムできる。ＶＳＯとＮＩＣ機能が一旦ともにイネーブルにされると、ホストは、ＮＤ  ＨＴＴＰサーバと同じポートの上でリスニング（聴取）ソケットを使用しないということを保証するように作動できる。ストリーム制御がＮＤＣＰＵで実行（ラン）するとき、ストリームトランスポートにかけられたＮＡＰＩ電話（コール）はローカルにルーティングされ得る。
【００４９】
上述したように、カーネルモジュールとユーザレベルアプリケーションとしてＮＤソフトウェアモジュールを実施できる。したがって、ＮＤファームウェアは、ＮＤ  ＮＩＣ機能をサポートするためにオペレーティングシステムカーネルパッチ、例えばリナックスカーネルパッチを含むことができる。すなわち、ＮＴＣは基本のホストネットワーク接続性（すなわち、ＮＩＣ機能）を特殊カーネルモジュールとして提供でき、その特殊カーネルモジュールは、ホスト通信とオフロード・ストリームを切り離して、ＮＤ  ＣＰＵとホストＣＰＵの両方がネットワーク接続性であって、同じネットワークアドレス、およびエクステンションによる潜在的に同じ物理的なＭＡＣ／ＰΗＹを使用するネットワーク接続性を持ち得るよう構成される。
【００５０】
ＮＤ  ＶＳＯとＮＩＣ機能がに両方とも使用中であるときは、それらの両方がＮＤスループット資源を競合するので、一方の機能を他方の機能に優先させる必要があろう。従って、ＮＩＣ機能に対して優先順位を持つようにＮＤ  ＶＳＯ機能を構成できる。これは、ビデオストリームが順位優先タスクとして扱われ、ホストトラフィックが残りのＮＤスループットキャパシティを使用するものと扱われ得ることを意味する。逆に、少なくとも最小のパフォーマンスレベルをＮＩＣ機能に保証するために、ＮＤ  ＶＳＯ機能のＣＰＵの使用は構成可能なリミットにキャップ（抑制）され得る。
また、さらに、両方のインタフェース（すなわち、ホストバスインタフェイスとストリーミングのインタフェース）を介して同時にＮＤによって受け取られたデータを優先順位付けするようにＮＩＣ機能を適合させることができる。このような場合、ＮＩＣ機能はどちらのデータにネットワークインタフェースへのアクセスが付与されてネットワークに伝えられるべきかを仲裁するように動作する。ホストのＩＰコンフィギュレーションが変化するとき、ＮＩＣコンフィギュレーションクライアントアプリケーションはＮＤＣＰＵ上でコンフィギュレーションを同時に更新するのに使用される。
【００５１】
ＮＴＣそれ自体が、機能性によって３つの主要部に分割される：  即ち、トラフィック管理（ＴＭ）、イーサネットドライバーコンフィギュレーションおよび同期（ＥＣ）、および、パス・スルー（ＰＴ）モードの３つである。ＴＭモジュールは、（送出される）データトラフィックを集合し、（入来する）データトラフィックを分離するように作動できる。上述したように、１つのＮＩＣ機能（ドライバー）としてホストシステムには見えるようにＥＣモジュールを構成できる。したがって、ホストのネットワーク（例えば、イーサネット）ドライバーコンフィギュレーションに基づいて自動的にＮＤのためのネットワーク（例えば、イーサネット）ドライバーを構成できる。オフロードモードとは対照的にＩＰモードにおいては、データは、ＮＤによって何の処理も実行されることなく、ＮＤネットワークドライバーから直接ホストネットワークドライバーに渡される。
【００５２】
トラフィック管理
１セットの実施例においては、例えばリナックスネット−フィルタ／ファイヤーウォールアーキテクチャなどの既存のオペレーティングシステムカーネルを拡張し、既存のフィルタリング機能に加えて、ＮＤに関連しているデータトラフィックフィルタリング機能を遂行し得る。したがって、ホストとＮＤのデータトラフィックの集合と分離を遂行するように構成され得る。図５は、ＮＤ用トラフィック管理ソフトウェア構造のコンテキストにおけるデータフローの１例を示すブロックダイアグラムを示している。示されているように、それら自身のＴＣＰ／ＩＰスタック（それぞれ２１２と２３２）でＮＤ１６２とホスト１６０を構成できる。実施例の１セットでは、ＮＡＰＩモジュール２０８を介してテーブル規則を設定できる。モジュール２０８はアプリケーションスペースで構成された別々のモジュールでよく、それぞれのモジュールは、ＮＤ１６２とホスト１６０上で構成される。カーネルと応用モジュールとしてＩＰ−テーブル／ＡＲＰ−テーブル２１０を設計できる。これを介して、プロトコルとポート番号に基づいてフィルタリングを遂行するためのフィルタリング規則が構成され得る。ＩＰ−テーブル／ＡＲＰ−テーブル２１０で構成されたフィルタリング規則に従って、オーディオ／ビデオストリーム（ストリーミングアプリケーション２０６用にＮＤ１６２よって、イーサネットドライバー２１８に関わるイーサネット接続を介して受信することができる）はフィルタリングされる。入力パケットをフィルタリングした後に、ＮＴＣにおける別のカーネルモジュールは、ＨＢＩインタフェースを通して、ＮＤ１６２とホスト１６０のためにそれぞれ構成されたＨＢＩドライバー２２０と２０４にかかわりながら、データをホストプロセッサに供給できる。出口トラフィックでは、ＮＴＣは、イーサネットドライバー２１８にかかわりながら、ホストからＨＢＩドライバー２４０を介してデータを読み、（必要なら）ヘッダーを調整して、データを送り出すことができる。ＮＤ１６２から出て行くデータトラフィックはホストから出て行くトラフィックに影響を与えることができない。特に２つのＴＣＰ／ＩＰスタックの間の同期を維持することを目的とした１つ以上の手続きに従って動作するようにＮＤ１６２を構成できる。
【００５３】
同期を維持するために、ＩＣＭＰ（インターネットコントロールメッセージプロトコル）およびＡＲＰ（アドレスレゾリューションプロトコル）パケットをＩＰスタック２１２と２３２の両方に伝えることができるが、要求に対する応答は単にＮＤから作り出されることができる。これらの要求に対応してホストプロセッサで作り出される応答は、応答のコピーを排除するためにフィルタアウト（無視）される。ＩＰ−テーブルとＡＲＰ−テーブルコマンドで規則を設定できる。入力パケットを両方のＩＰスタックに送るのか、ホストＩＰスタックだけに送るのかはユーザのアクセス可能なオプションとして構成できる。その上、セグメントに分けられたＩＰパケットを再組み立て可能であるように適切にＩＰ  ＩＤを調整できる。ＮＤとホストプロセッサは別々のＩＰ  ＩＤを維持できる。最終的に、ポート指定のときに競合（コリジョン）を避けるためにエフェメラルポートを構成できる。これはリナックスカーネルのポート範囲を調整することによって、実行できる。例えば、ＮＤは、より小さなエフェメラルポート範囲［１０２４−４９９６］が割り当てられ、ホストは、より高いポート範囲［４００００−６００００］が割り当てられることができる。
【００５４】
イーサネットドライバー・コンフィギュレーション
図６は、どのようにしてＮＤネットワーク設定とホストネットワーク設定を、コンフィギュレーション・モードにて確立できるかの１つの実施例を示している。ホストネットワークドライバー３０２からＨＢＩ３０４を介してＮＤネットワークドライバー３０８を構成できる。ユーザはホストネットワークドライバー３０２のためのコンフィギュレーションを設定でき、そして、次に、ＮＤネットワークドライバー３０８へとすべてのコンフィギュレーションがパスされ、従って、ドライバー３０８は、セットされる。このコンフィギュレーションを容易にするため、実施例の１セットにおいては、カーネルパイプメカニズムを通して通信チャネルおよびメッセージングコマンドを開発できる。ネットワーク（例えば、イーサネット）ドライバーコンフィギュレーションのために以下のコマンドを実施できる。
１.  Ｏｐｅｎ（オープン）：  このコマンドは、ホストから送られ、送受信機能をイネーブルにするためにＮＤネットワークドライバー３０８を開くのを容易にする。また、ＭＡＣアドレスを割り当てるか、またはそれが既にＮＤ内で割り当てられているならば、ＭＡＣアドレスを得るのにこのオープンコマンドを使用できる。
２.  Ｃｌｏｓｅ（閉じる）：  このコマンドは、ホストから送られ、送受信機能をディスエーブルにするためにＮＤネットワークドライバー３０８を閉じる。
３.  Ｐｉｎｇ（ピン）：  このコマンドは、ＮＤネットワークドライバー３０８が生きているかどうかをホストによってチェックする使用できる。生きているＮＤネットワークドライバーは、ピンコマンドに応答する。
４.  ＳｅｔＲｘ  Ｆｉｌｔｅｒ（セットＲｘフィルタ）：  ホストは、マルチキャスト設定を構成するのにこのコマンドを使用できる。
５.  Ｇｅｔ  Ｓｔａｔｉｓｔｉｃｓ（スタティスティクスを得る）：  ホストはＮＤネットワークドライバー３０８からパケットとエラーカウンタを検索するのにこのコマンドを使用できる。
６.  Ｃｌｅａｒ  Ｓｔａｔｉｓｔｉｃｓ（スタティスティクスをクリア）：  ホストはＮＤネットワークドライバー３０８の中のスタティスティクスカウンタをクリアするのにこのコマンドを使用できる。
７.  Ｇｅｔ  Ｌｉｎｋ  Ｓｅｔｔｉｎｇ（リンク設定を得る）：  ホストはＮＤネットワークドライバー３０８からの現在のリンク速度／二重モードを検索するのにこのコマンドを使用できる。
８.  Ｓｅｔ  Ｌｉｎｋ  Ｍｏｄｅ（リンクモードを設定する）：  ホストはＮＤネットワークドライバー３０８にリンク速度／二重モードをはめ込むのにこのコマンドを使用できる。
【００５５】
パススルーモード
図７に示す特別なモードとしてパススルー（ＰＴ）モードを指定できる。
ＰＴモードで、ＮＤネットワークドライバー３０８からホストネットワークドライバー３０２へと直接にデータは通過できる。
ＮＴＣ４１２におけるモジュールは、ＮＤネットワークドライバー３０８からデータを受信して、ＨＢＩインタフェース３０４にそれを提供できる。同様に、ＮＴＣ４１２を通してデータは、ＨＢＩインタフェース３０４からＮＤネットワークドライバー３０８へと直接に通過できる。また、図７は、データがオフロードモードで取ることができるパスを示す。それに、ＮＤ１６２のネットワークスタック４１０がかかわる。ＰＴモードでは、データはネットワークスタック４１０を迂回でき、その結果、ＮＤ１６２上でランするよう構成され得るストリーミング・アプリケーション４０８からの作用を受けない。
【００５６】
ＰＴモードでホストシステムを動作させ得る時の１つの実施例はブートアップ中である。ホストがブートするとき、ネットワークアドレス（例えば、ＤＨＣＰ(DynamicHostConfigurationProtocol)を通したＩＰアドレス）を獲得するのが必要であり、その場合、ＮＤ１６２は簡単なネットワーク・コントローラ（例えば、簡単なイーサネット・コントローラ）として作動して、すべてのデータトラフィックをホストへと通す。その結果、ホストは、すべてのトラフィックを受けて、ネットワークからネットワークアドレス（例えば、ＩＰアドレス）を得ることができる。ホストがアドレス発見を実行した後に、ネットワークアドレスをＮＤに通信でき、ネットワークアドレスがＮＤに通信されると、ＮＤは、ＰＴモードから脱出して、ネットワークから受信した入力パケット、および／または、データをフィルターにかけ始める。また、デバッグ目的にＰＴモードを使うことができる。
【００５７】
単一のイーサネットインタフェースでの複数のＴＣＰ／ＩＰスタックを動作させる利点の１つは、すべてのネットワークスタックにより同一のＩＰアドレスとＭＡＣアドレスを使用することにあり、２台以上のプロセッサ、ここではホストで構成されたプロセッサとＮＤで構成された別のプロセッサとにおいて、アプリケーションが同時動作するのを可能にし、同時に少なくともそれらのプロセッサの１つにネットワークへのアクセスが提供される。一般に、様々な規制ソフトウェアルーチンを実行するためにホストプロセッサを構成でき、さまざまなデータ集中的コードを実行するためにＮＤプロセッサを構成できる。例えば、ＵＰＮＰ（ユニバーサル・プラグ・アンド・プレイ）アプリケーションをホストにロードでき、ＮＤにストリーミング・アプリケーションをロードでき、ＮＤを、ビデオデータを受信して処理するように構成できる。オフロードモードで作動するとき、ネットワークフレームには不可知のまま、ＯＳ（オペレーティングシステム）カーネル構造（例えば、リナックスファイヤーウォールアーキテクチャ）をネットワークトラフィック制御に使用できる。フィルタリングは、ＩＰアドレスなどのどんなレベル（ＩＰアドレス、プロトコル（ＴＣＰ，ＵＤＰ），および／または、ポート番号レベル）でも実行され得る。フィルタリングがカーネルレベルで実行されると、同じソケットバッファを使用できると、データコピーを必要とされない。したがって、ＮＤと協力して作動するためにホストを、さまざまな商業オペレーティングシステムのどれかを使用して構成できる。
【００５８】
当業者には、本発明の種々相の更なる修正と代替の実施例はこの説明を考慮すると明らかであるかもしれない。
従って、この説明が説明に役立つと理解されることである、唯一、そして、本発明を実施する一般的な方法を当業者に教示する目的のために、ある。
本明細書に示されて、記載された発明の帳票が、実施例として取られることであることが理解されることになっている。
プロセスを逆にすることができる、そして、本明細書に示して、記載されたものに要素と素材を置換できる、部品、すべてあるだろうとき独自に利用されていて、本発明のある特徴は本発明のこの説明の恩恵を持った後に当業者には明らかな状態で逆にすることができる。
本明細書に以下の賠償金で記載されているように、本発明の趣旨と範囲から逸脱せずに記載された要素で変更を行うことができる。
【図１】
0004870819.tif 000002
【図２】
0004870819.tif 000003
【図３】
0004870819.tif 000004
【図４】
0004870819.tif 000005
【図５】
0004870819.tif 000006
【図６】
0004870819.tif 000007
【図７】
0004870819.tif 000008