(57)【要約】【課題】ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮するためのシステム及び方法。【解決手段】第１に、このＨＥＡは、インターネット・プロトコル（ＩＰ）ヘッダ及びデータを有するパケットをＨＥＡにおいて受信する。ＨＥＡは、ＩＰヘッダから接続識別子を分解し、接続識別子がＨＥＡの外部に在るメモリに存在しないかどうか判定するためにＨＥＡ内のネガティブ・キャッシュにアクセスする。もし接続識別子がメモリに存在しなければ、ＨＥＡはデフォルト処理をパケットに適用し、これでメモリへのアクセスを減少させることによって待ち時間を短縮する。【選択図】図１
2008535341.tif 000002
【特許請求の範囲】
【請求項１】
ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮する方法であって、
インターネット・プロトコル（ＩＰ）ヘッダ及びデータを有するパケットを受信することと、
前記ＩＰヘッダから接続識別子を分解することと、
前記ＨＥＡ内のネガティブ・キャッシュにアクセスして前記接続識別子が前記ＨＥＡの外部のメモリに存在しないかどうか判定することと、
前記接続識別子が前記メモリに存在しなければデフォルト処理を前記パケットに適用し、これにより、前記メモリへのアクセスを減少させることにより待ち時間を短縮することと、
を含む前記方法。
【請求項２】
前記接続識別子が前記ＨＥＡ内の正規キャッシュに存在するか否か判定することと、
前記接続識別子が前記正規キャッシュに存在するならば特定の処理を前記パケットに適用することと、
を更に含む請求項１に記載の方法。
【請求項３】
前記接続識別子が前記メモリに存在するか否か判定することと、
前記接続識別子が前記メモリに存在するならば特定の処理を前記パケットに適用することと、
前記接続識別子が前記メモリに存在しなければ前記デフォルト処理を前記パケットに適用することと、
を更に含む請求項１に記載の方法。
【請求項４】
前記ＨＥＡ内のネガティブ・キャッシュにアクセスすることは、
ビット位置を求めて前記接続識別子をハッシュすることと、
前記ＨＥＡ内のビット・ベクトルにアクセスすることと、
前記ビット位置における前記ビット・ベクトルの値に基づいて前記接続識別子が前記メモリに存在しないかどうか判定することと、
を更に含む請求項１に記載の方法。
【請求項５】
前記ビット位置におけるビット・ベクトルのゼロという値は前記接続識別子が前記メモリに存在しないことを示す請求項４に記載の方法。
【請求項６】
前記ネガティブ・キャッシュは衝突解消を欠く１ビット長ハッシュ・テーブルである請求項４に記載の方法。
【請求項７】
前記接続識別子はプロトコル、ソース・インターネット・プロトコル（ＩＰ）アドレス、宛先ＩＰアドレス、ソース・ポート、及び宛先ポートである請求項１に記載の方法。
【請求項８】
ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮するためのプログラム命令を含むコンピュータ可読媒体であって、前記プログラム命令は、
インターネット・プロトコル（ＩＰ）ヘッダ及びデータを有するパケットを受信することと、
前記ＩＰヘッダから接続識別子を分解することと、
前記ＨＥＡ内のネガティブ・キャッシュにアクセスして前記接続識別子が前記ＨＥＡの外部のメモリに存在しないかどうか判定することと、
前記接続識別子が前記メモリに存在しなければデフォルト処理を前記パケットに適用し、これにより、前記メモリへのアクセスを減少させることにより待ち時間を短縮することと、
を含む前記コンピュータ可読媒体。
【請求項９】
前記プログラム命令は、
前記接続識別子が前記ＨＥＡ内の正規キャッシュに存在するか否か判定することと、
前記接続識別子が前記正規キャッシュに存在するならば特定の処理を前記パケットに適用することと、
を更に含む請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記プログラム命令は、
前記接続識別子が前記メモリに存在するか否か判定することと、
前記接続識別子が前記メモリに存在するならば特定の処理を前記パケットに適用することと、
前記接続識別子が前記メモリに存在しなければ前記デフォルト処理を前記パケットに適用することと、
を更に含む請求項８に記載のコンピュータ可読媒体。
【請求項１１】
前記ＨＥＡ内のネガティブ・キャッシュにアクセスすることは、
ビット位置を求めて前記接続識別子をハッシュすることと、
前記ＨＥＡ内のビット・ベクトルにアクセスすることと、
前記ビット位置における前記ビット・ベクトルの値に基づいて前記接続識別子が前記メモリに存在しないかどうか判定することと、
を更に含む請求項８に記載のコンピュータ可読媒体。
【請求項１２】
前記ビット位置におけるビット・ベクトルのゼロという値は前記接続識別子が前記メモリに存在しないことを示す請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記ネガティブ・キャッシュは衝突解消を欠く１ビット長ハッシュ・テーブルである請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
前記接続識別子はプロトコル、ソース・インターネット・プロトコル（ＩＰ）アドレス、宛先ＩＰアドレス、ソース・ポート、及び宛先ポートである請求項８に記載のコンピュータ可読媒体。
【請求項１５】
待ち時間を短縮するためのホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）であって、前記ホスト・イーサネット（登録商標）・アダプタは、
インターネット・プロトコル（ＩＰ）ヘッダ及びデータを有するパケットを受信し、前記ＩＰヘッダから接続識別子を分解するためのシステムと、
前記接続識別子が前記ＨＥＡの外部のメモリに存在しないかどうか判定するために前記システムに結合されたネガティブ・キャッシュとを含んでおり、前記システムは、前記接続識別子が前記メモリに存在しなければデフォルト処理を前記パケットに適用し、これにより、前記メモリへのアクセスを減少させることにより待ち時間を短縮するホスト・イーサネット（登録商標）・アダプタ。
【請求項１６】
前記ＨＥＡは前記システムに結合された正規キャッシュを更に含んでおり、前記システムは、更に、前記接続識別子が前記正規キャッシュに存在するか否か判定し、もし前記接続識別子が前記正規キャッシュに存在するならば特定の処理を前記パケットに適用する請求項１５に記載のＨＥＡ。
【請求項１７】
前記接続識別子が前記メモリに存在するならば前記システムは特定の処理を前記パケットに適用する請求項１５に記載のＨＥＡ。
【請求項１８】
前記ネガティブ・キャッシュは、更に、ビット位置を求めて前記接続識別子をハッシュし、前記ＨＥＡ内のビット・ベクトルにアクセスし、前記ビット位置における前記ビット・ベクトルの値に基づいて前記接続識別子が前記メモリに存在しないかどうか判定する請求項１５に記載のＨＥＡ。
【請求項１９】
前記ビット位置におけるビット・ベクトルのゼロという値は前記接続識別子が前記メモリに存在しないことを示す請求項１８に記載のＨＥＡ。
【請求項２０】
前記ネガティブ・キャッシュは衝突解消を欠く１ビット長ハッシュ・テーブルである請求項１８に記載のＨＥＡ。
【請求項２１】
前記接続識別子はプロトコル、ソース・インターネット・プロトコル（ＩＰ）アドレス、宛先ＩＰアドレス、ソース・ポート、及び宛先ポートである請求項１５に記載のＨＥＡ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはインターネット・パケットを分解するためのアダプタに関し、特にホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮するためのシステム及び方法に関する。
【背景技術】
【０００２】
コンピュータ或いはホストは、ネットワークを介して受信した各パケットを分解或いは分離するアダプタを通してネットワークと接続する。このアダプタはホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）として知られているであろう。パケットはインターネット・プロトコル（ＩＰ）ヘッダとデータとから構成される。ＩＰヘッダは、ソース・アドレス、宛先アドレス、ポート、プロトコル及びトランスポート・プロトコル情報のような幾つかのフィールドから構成される。これらのフィールドは、５タプル或いは接続識別子（Ｉｄ）として知られていて、パケットがどの様に扱われるべきかを特定するために使われる。
【０００３】
接続Ｉｄを分解した後、ＨＥＡはその接続Ｉｄをアダプタの外部のメモリに送る。外部メモリは、そのパケットのための処理プロトコルを調べるためのルックアップ・テーブル又は接続テーブルを持つことができる。これに伴う１つの問題は、接続Ｉｄをメモリに送ってメモリに各パケットのための処理プロトコルを調べさせるプロセスが時間を消費し、その結果としてアダプタにおいてパケットのための処理プロトコルを調べるために望ましくない待ち時間が生じることである。接続テーブルをアダプタに格納することは、接続テーブルのサイズに起因して実際的でない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、必要とされるものは、ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮するためのシステム及び方法である。本発明は、その様なニーズに対処する。
【課題を解決するための手段】
【０００５】
本発明は、下記のものを含む、ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮するためのシステム及び方法を提供する。第１に、このＨＥＡは、インターネット・プロトコル（ＩＰ）ヘッダ及びデータを有するパケットをＨＥＡにおいて受信する。ＨＥＡは、ＩＰヘッダから接続識別子を分解し、接続識別子がＨＥＡの外部に存するメモリに存在しないかどうか判定するためにＨＥＡ内のネガティブ・キャッシュにアクセスする。もし接続識別子がメモリに存在しなければ、ＨＥＡはデフォルト処理をパケットに適用し、これでメモリへのアクセスを減少させることによって待ち時間を短縮する。
【発明を実施するための最良の形態】
【０００６】
本発明は、ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮するためのシステム及び方法に関する。以下の記述は、当業者が本発明品を製造し使用することを可能にするべく提示され、特許出願及びその要件と関連して提供される。本書に記載されている好ましい実施態様と一般原理と特徴とに対する種々の改変は、当業者にとっては明白であろう。従って、本発明は、示された実施態様に限定されるべく意図されてはおらず、ここに記載されている原理及び特徴と矛盾しない最も広い範囲が与えられるべきである。
【０００７】
図１は、ホスト１０２とメモリ１０４とに接続されたホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）１００を示すブロック図である。ＨＥＡは、システム１０８に接続されたネガティブ・キャッシュ１０６を含み、またオプションで正規キャッシュ１１０を含むことができる。メモリ１０４は接続テーブル１１２を含む。
【０００８】
図２は、図１の線図で実行される本発明の一実施態様を示す流れ図である。図１及び２は互いに関連して論じられる。簡潔性を目的として、‘１００’から始まる参照数字は図１で見出され、‘２００’から始まる参照数字は図２で見出される。
【０００９】
図２のブロック２００において、ＨＥＡ１００は、インターネット・プロトコル（ＩＰ）ヘッダ１１６及びデータ１１８を有するパケット１１４を受信する。ＩＰヘッダ１１６は、宛先ＩＰアドレス１２０と、ソースＩＰアドレス１２２と、プロトコル１２４と、ソース・ポート１２６と、宛先ポート１２８とを含み、これらは全体として接続識別子（Ｉｄ）１３０として知られている。ＨＥＡ１００は多数のパケット１１４を受信することができる。
【００１０】
ブロック２０５において、システム１０８は接続Ｉｄ１３０をＩＰヘッダ１１６から分解する。もし接続Ｉｄ１３０が正規キャッシュ１１０又は接続テーブル１１２に格納されているとＨＥＡ１００が判定できたならば、ＨＥＡ１００はパケット１１４を仕向けるための特定の処理又は命令のセットを受け取る。多数のパケット１１４がデフォルト処理セッティングを受けるが、それは、それらが全て同様に処理されることを意味する。或るパケット１１４は、特別の扱いを必要とし、デフォルト処理とは異なる特別の処理を受ける。或るパケット１１４は特別の扱いを必要とすることがあるが、特別の処理は正規キャッシュ１１０にも接続テーブル１１２にも入力されていないので、デフォルト処理が用いられる。
【００１１】
ブロック２１０で、システム１０８は、接続Ｉｄ１３０がオプションの正規キャッシュ１１０内にあるか否かを判定することができる。もし正規キャッシュ１１０がＨＥＡ１００内に存在しなければ、このブロックは飛び越される。もし接続Ｉｄ１３０が正規キャッシュ１１０内にあれば、パケット１１４を処理する方法が調べられてブロック２１５で適用され得る。接続Ｉｄ１３０がリストされていなければ、時には、正規キャッシュ１１０にリストされている特定の処理はデフォルト処理と同じである。
【００１２】
ブロック２１０から続いて、もし接続Ｉｄ１３０が正規キャッシュ１１０内に無ければ、ブロック２２０で、システム１０８はネガティブ・キャッシュ１０６にアクセスする。ネガティブ・キャッシュ１０６は、任意の数の項目を有する、衝突解消を欠く１ビット長ビット・ベクトル１３２を含む。ＨＥＡ１００は、より小さなビット・ベクトル１３２について、より良好な性能を有する。
【００１３】
ブロック２２５で、ネガティブ・キャッシュ１０６は、ビット位置を求めて接続Ｉｄ１３０を１ビット長ハッシュ・テーブル（図示されていない）でハッシュする。接続Ｉｄ１３０をハッシュした後、例えばビット位置４などの、ビット位置がもたらされる。その後、ブロック２３０で、ネガティブ・キャッシュ１０６は、ビット・ベクトル１３２にアクセスし、ブロック２３５で、そのビット位置（例えば、ビット位置４）におけるビット・ベクトル１３２の値に基づいて接続Ｉｄ１３０がメモリ１０４内に無いかどうかを判定する。
【００１４】
このとき、ビット・ベクトル１３２のセッティングについての説明が本発明の理解に役立つであろう。ビット・ベクトル１３２は、初めに、メモリ１０４内に項目が無いことを示すために例えば全部ゼロなどの所定値にセットされる。接続Ｉｄ１３０のための特定の処理がメモリ１０４に入力されると、格納されている接続Ｉｄ１３０をハッシュするためにネガティブ・キャッシュ１０６のハッシュ・テーブル（図示されていない）が使用され、その結果としてビット位置をもたらす。そのビット位置は接続Ｉｄ１３０を表し、その値のデフォルト・セッティングからのフリッピングは、接続Ｉｄ１３０のための特定の処理がメモリ１０４内に存在する可能性を示す。ネガティブ・キャッシュ１０６はメモリ１０４における接続Ｉｄ１３０の存在を否定的に判定できるに過ぎない。なぜならば、ハッシュ・テーブル（図示されていない）及びビット・ベクトル１３２が衝突解消を欠き、或る接続Ｉｄ１３０同士が同じハッシュ・ビット位置を有することを意味するからである。
【００１５】
例えば、メモリ１０４に接続Ｉｄ１３０のための特定の処理を格納するとき、全部ゼロのビット・ベクトル１３２を仮定する。接続Ｉｄ１３０のハッシュは１つのビット位置（例えばビット位置４）をもたらし、それは現在はゼロという値を有する（全ての位置が現在はゼロである）。その後、ビット位置４はビット・ベクトル１３２において、例えばゼロから１へ、切り替えられる。しかし、第１のものと同じ処理を受けない他の接続Ｉｄ１３０も位置４へハッシュし得る。ビット位置４をゼロから１へ変更することによって、ネガティブ・キャッシュ１０６は、ビット位置４へのハッシュ値を有するおそらく数個の接続Ｉｄ１３０のうちの少なくとも１つがメモリ１０４内にあることを確証する。メモリ１０４をチェックするだけで、ＨＥＡ１００は、特定の接続Ｉｄ１３０がメモリ１０４内にあるか否かを判定することができる。しかし、その値がゼロであれば、そのビット位置へのハッシュ値を有する接続Ｉｄのいずれもメモリ１０４内には無く、メモリ１０４はチェックされなくても良い。これは、何故キャッシュ１０６が‘ネガティブ・キャッシュ’であるかの理由である。
【００１６】
ブロック２３５に続いて、ブロック２４０でＨＥＡ１００は、接続Ｉｄ１３０がメモリ１０４内に無いかどうか判定する。上で説明されたように、ビット・ベクトル１３２では衝突解消が無いために、接続Ｉｄ１３０がメモリ１０４に存在しないことだけが権威を持って回答され得るに過ぎない。
【００１７】
もし接続Ｉｄ１３０がメモリ１０４内に無ければ、ブロック２４５でＨＥＡ１００はデフォルト処理をパケット１１４に適用する。ビット・ベクトル１３２をチェックするのに必要な時間はメモリ１０４内の接続テーブル１１２をチェックするのに必要な時間より短いので、メモリ１０４へのアクセスを避けることはＨＥＡ１００における待ち時間を短縮することになる。
【００１８】
前の例では、接続Ｉｄ１３０はビット位置４へハッシュした。ビット・ベクトル１３２では、ビット位置４（１３４）は１であるので、メモリ１０４を実際にチェックしなければ接続Ｉｄ１３０がメモリ１０４に存在しないことを確証することはできない。従って、ブロック２５０で、ＨＥＡ１００はメモリ１０４にアクセスする。メモリ１０４は、接続Ｉｄ１３０が存在するか否かを判定するために接続テーブル１１２にアクセスすることができる。もし接続Ｉｄ１３０が存在するならば、処理はＨＥＡ１００に送られ、ブロック２６０でＨＥＡ１００は特定の処理をパケット１１４に適用する。
【００１９】
もし接続Ｉｄ１３０が接続テーブル１１２に存在しなければ、ブロック２６５でＨＥＡ１００はデフォルト処理をパケット１１４に適用する。どのパケット１１４に対してデフォルト処理が与えられるべきであるか、そしてどれが特定の処理を受けるかを適宜識別することにより、ＨＥＡ１００の効率が向上する。
【００２０】
パケット１１４を分解し、フィルタリングし、また該パケットに対して他のタスクを実行した後、ＨＥＡ１００はデータ１１８をホスト１０２に送る。
【００２１】
ここで開示された方法及びシステムに従って、本発明はＨＥＡにおける待ち時間を短縮するためのシステム及び方法を開示する。使用された特定の標準規格が代表的なものであること、任意の帯域幅限定ネットワークが上記のように本発明を使用し得ることを当業者は認めるであろう。本発明は、図示された実施態様に従って記載されたけれども、それらの実施態様の変更があり得ること、それらの変更が本発明の範囲内にあるであろうことを当業者は直ぐに認めるであろう。従って、添付されている請求項の範囲から逸脱すること無く多くの改変が当業者によりなされ得る。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施態様に従うホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）を示すブロック図である。
【図２】図１の線図で実行される本発明の一実施態様を示す流れ図である。
【図１】
2008535341.tif 000003
【図２】
2008535341.tif 000004
【国際調査報告】
2008535341.tif 000005
2008535341.tif 000006