(57)【特許請求の範囲】
【請求項１】
受信されたデータストリームにおける所定のパターンを検出するための装置であって、
前記所定のパターンの少なくとも一部を特定するパターンエントリを記憶するように構成されたパターンメモリを含み、前記パターンエントリは、パターンデータフィールドと、前記パターンデータフィールドとの比較の前に無視されるべきである、データストリームにおけるバイトの数を特定する第２のフィールドとを含み、さらに、
前記パターンデータフィールドと、前記第２のフィールドに基づいて選択された、前記データストリームの隣接するバイトのグループとを比較し、比較結果を出力するための比較器を含む、装置。
【請求項２】
前記比較器は、前記第２のフィールドに基づき、かつ前記データストリームの初めと比較して、選択された隣接するバイトのグループをラッチする、請求項１に記載の装置。
【請求項３】
前記パターンメモリは、複数個の選択された隣接するバイトのグループのそれぞれから所定のパターンを識別するための複数個の前記パターンエントリを含み、前記パターンエントリの各々は、前記パターンデータフィールドに対して、対応の選択された隣接するバイトのグループの選択されたバイトのためのドントケア条件を示すマスクフィールドをさらに含み、
前記比較器は、対応のマスクフィールドに基づいて、対応の選択された隣接するバイトのグループの各々のために比較結果を発生する、請求項２に記載の装置。
【請求項４】
それぞれのパターンエントリのために発生される比較結果に基づいて所定のパターンを検出するように構成されたマッチ論理をさらに含み、前記マッチ論理は前記パターンエントリの１つにおいて設定されるエンドビットに基づいて比較結果の終りを判断する、請求項３に記載の装置。
【請求項５】
前記パターンエントリの選択された１つのパターンデータフィールドおよびマスクフィールドの前記比較器への供給を制御するように構成されたステートマシンをさらに含み、前記ステートマシンは所定のパターンに対する所定のシーケンスにおけるパターンエントリにアクセスする、請求項３に記載の装置。
【請求項６】
前記パターンメモリは、それぞれの所定のパターンのためのパターンエントリのグループと制御エントリとを記憶し、前記ステートマシンは前記制御エントリ
に基づいて対応の所定のパターンを検出するためにパターンエントリのグループの１つを選択する、請求項５に記載の装置。
【請求項７】
前記比較器は、対応の選択された隣接するバイトのグループの各々のために比較結果をバイトごとに発生するための複数個のバイト比較器を含む、請求項３に記載の装置。
【請求項８】
各バイト比較器は、マスクフィールドからの対応のビットに応答して所定の比較結果を発生するためのバイパス論理を含む、請求項７に記載の装置。
【請求項９】
前記第２のフィールドは前記パターンデータフィールドとの比較の前に無視されるべきである連続するいくつかのデータバイトグループを特定する、請求項１に記載の装置。
【請求項１０】
前記比較器は媒体アクセス制御装置からデータストリームを受信し、前記比較器は、前記第２のフィールドに基づき、かつ前記媒体アクセス制御装置からの受信クロック信号に応答して、無視されるべきデータバイトグループを選択的に放棄する、請求項９に記載の装置。
【請求項１１】
データストリームにおける所定のパターンをパターンマッチ回路によって検出するための方法であって、
前記所定のパターンに対応するシーケンスを有した複数個のパターンエントリをメモリに記憶するステップを含み、各パターンエントリは、前記所定のパターンに対応するパターンバイトを記憶するパターンデータフィールドと、第２のフィールド値を記憶する第２のフィールドとを含み、前記所定のパターンに対応するパターンバイトは、データバイトの第１のグループを形成し、さらに、
データストリームを受信するステップと、
受信されたデータストリームの開始位置に基づいて前記パターンエントリの選択された１つを読出すステップと、
対応の１つのパターンエントリの前記第２のフィールドに基づいて前記データストリームから隣接するデータバイトの少なくとも１つのグループを選択的に放棄するステップと、
１つのパターンエントリからのパターンバイトと、選択的に放棄されたグループに隣接し、それに続く、前記データストリームからのデータバイトの第２のグループとを比較し、比較結果を出力するステップと、
それぞれのパターンエントリのために検出された比較結果に基づいて前記データストリームにおける前記所定のパターンを検出するステップとを含む、方法。
【請求項１２】
最後のパターンエントリにおける検出されたエンドビットに基づいてシーケンスのためのパターンエントリの終わりを識別するステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記比較するステップは、
データバイトの第１のグループの前記パターンバイトの各々と、データバイトの第２のグループの対応の１つとを比較するステップと、
対応のパターンエントリに記憶された対応のマスクビットに基づいて前記各パターンバイトのために比較結果を選択的に出力するステップとを含む、請求項１１に記載の方法。
【請求項１４】
前記選択的に放棄するステップは、
前記第２のフィールドの放棄値を識別するステップと、
放棄された値に基づいて隣接するデータバイトの少なくとも１つのグループを放棄するステップとを含み、放棄されたグループの数は前記放棄値に対応する、請求項１３に記載の方法。
【請求項１５】
前記受信するステップは、ネットワーク媒体を介してデータパケットを受信する、媒体アクセス制御装置から前記データストリームを受信するステップを含む、請求項１１に記載の方法。
【請求項１６】
データパケットにおける所定のパターンをパターンマッチ回路によって識別するためのネットワークインターフェイスにおける方法であって、
パケット交換網から媒体アクセス制御装置によって前記データパケットを受信するステップと、
受信されたデータパケットにおいて前記所定のパターンを検出するステップとを含み、前記検出するステップは、
（１）  前記受信されたデータパケットの開始位置に基づいて、前記所定のパターンに対応する所定のシーケンスを有した複数個のパターンエントリを記憶するメモリから選択されたパターンエントリを読出すステップと、
（２）  前記選択されたパターンエントリにおけるスキップフィールドに基づいて前記データパケットからデータバイトのグループを選択的にラッチするステップと、
（３）  前記選択されたパターンエントリに対する比較結果を得るために、前記選択されたパターンエントリにおける対応のマスクビットに基づいて、前記データパケットからのデータバイトのラッチされたグループと前記選択されたパターンエントリにおけるパターンデータとを選択的に比較するステップと、
（４）  前記所定のパターンを検出するために、前記所定のシーケンスと隣接するデータバイトのグループとに対してそれぞれのパターンエントリのための比較結果を累積するステップとを含む、方法。
【請求項１７】
前記累積するステップは、
前記比較結果における非マッチ結果の存在を判断するステップと、
前記非マッチ結果の存在を判断する前に前記パターンエントリの１つにおけるエンドフィールドの検出に応答して前記所定のパターンの検出を示す信号を出力するステップとを含む、請求項１６に記載の方法。
【請求項１８】
前記選択的に比較するステップは、前記マスクビットの設定に応答して次の隣接するグループの対応の選択されたデータバイトのための比較結果として前記マスクビットを出力するステップを含む、請求項１６に記載の方法。
【請求項１９】
前記選択的に比較するステップは、第１の比較器においてラッチされたグループを比較するステップを含む、請求項１６に記載の方法。
【請求項２０】
受信されたデータパケットを第２の所定のパターンと同時に比較するステップをさらに含み、
（１）  前記第２の所定のパターンのための第２の複数個のパターンエントリのための前記メモリから第２の選択されたパターンエントリを読出すステップと、
（２）  前記第２の選択されたパターンエントリの対応のスキップフィールドに基づいて前記データパケットからデータバイトの第２のグループを選択的にラッチするステップと、
（３）  前記第２の所定のパターンの検出のために、データバイトのラッチされた第２のグループと前記第２の選択されたパターンエントリにおけるパターンデータとを選択的に比較するステップとを含む、請求項１９に記載の方法。
【発明の詳細な説明】
【０００１】
【技術分野】
この発明はパターン認識に関し、特に、データストリームにおける所定のパターンを検出するのに用いるためにネットワークワークステーション内のメモリにパターンデータを記憶するための配列に関する。
【０００２】
【関連技術の説明】
現在、ワークステーションコンピュータは電力節約機構を含むように設計されており、ここでワークステーションコンピュータは所定の期間活動停止した後閉鎖するものである。
【０００３】
電力節約機構のある提案はワークステーションコンピュータのためのウェイクアップルーチンを明記し、ここで、イーサネット型またはＩＥＥＥ８０２．３ネットワークのようなネットワークに対するネットワークインターフェイスがネットワークからデータパケットを受信するための電力を維持する。所定のパターンを有したデータパケットを受信すると、ネットワークインターフェイスはワークステーションコンピュータに「ウェイクアップ」させ、たとえば、遠隔ワークステーションによって要求される所定の動作を行なわせる。
【０００４】
このタイプのウェイクアップスキームを実施する際に遭遇する問題は、ネットワークインターフェイス装置があるパターンのデータを認識可能である必要があることである。パターンは典型的には、所定のパターンにマッチしなければならない受信されたデータパケット内の特定バイトと、パターン認識には関連がなく、したがって無視されるべきである他のデータバイトとから構成される。可能な解決策の１つは、受信されるデータパケットと同一のパターンを有するデータバイトのシーケンスをメモリに記憶することであり、ここでバイトごとの比較が記憶されたデータと受信されたパケットデータとの間で行なわれる。しかしながら、このような配列には、メモリに記憶された関連のない（すなわち、ドントケア）バイトからパターン比較における関連のあるバイトを比較ハードウェアが区別できるようにするためにさらなるオーバーヘッドが必要であるという欠点がある。さらに、受信されたデータパケットが、ドントケアとして無視されるかなり多数のバイトを含み得るので、受信されたデータパケットにおいて無視されるバイトに対応するナルデータのメモリへの記憶にはメモリ空間のかなりの浪費が伴う。
【０００５】
【発明の概要】
複数個の関連のないデータバイトを有するデータストリームにおける所定のパターンの検出を可能にし、検出されるべきパターンのために必要な記憶空間を最小にする配列が必要である。
【０００６】
また、パターンデータを記憶するために最小量のメモリを用いて、受信されたデータストリームと多数の所定のパターンとを同時に比較可能にする配列が必要である。
【０００７】
また、所定のパターンの検出に関連のないデータバイトをデータストリームから選択的に放棄することによって、データストリームにおける所定のパターンを効率的に検出する配列が必要である。
【０００８】
また、検出されるべきパターン内に複数個の関連のないデータバイトを有するデータストリームとの比較のためにメモリ内でパターンデータを圧縮するための配列が必要である。
【０００９】
これらおよび他の要求がこの発明によって達成され、ここで、無視されるべき、データストリームのデータバイトを識別する対応のデータフィールドに基づいて、データストリームとパターンメモリに記憶されたパターンデータとの比較の間にデータストリームからのデータバイトのグループが選択的に放棄される。
【００１０】
この発明の１つの局面に従うと、データストリームにおける所定のパターンを検出するための装置は、所定のパターンの少なくとも一部を特定するパターンエントリを記憶するように構成されたパターンメモリを含み、パターンエントリは、パターンデータフィールドと、パターンデータフィールドとの比較の前に無視されるべき、データストリームにおけるいくつかのバイトを特定する第２のフィールドとを含み、この装置はさらに、第２のフィールドに基づいてパターンデータフィールドとデータストリームのバイトの選択された隣接するグループとを比較し、比較結果を出力するための比較器を含む。各パターンエントリにおける第２のフィールドは、比較器がパターンデータフィールドとの比較の前にデータストリームにおけるいくつかのバイトを選択的に無視することを可能にし、パターンメモリにおけるナルデータ値の必要性を最小にする。したがって、パターンメモリに記憶されるパターンの大きさはほぼ５０％縮小され得る。
【００１１】
この発明の別の局面はデータストリームにおける所定のパターンを検出するための方法であって、所定のパターンに対応するシーケンスを有した複数個のパターンエントリをメモリに記憶するステップを含み、各パターンエントリは、所定のパターンに対応するパターンバイトを記憶するパターンデータフィールドと、第２のフィールド値を記憶する第２のフィールドとを含み、さらに、データストリームを受信するステップと、受信されたデータストリームの開始位置に基づいてパターンエントリの選択された１つを読出すステップと、対応の１つのパターンエントリの第２のフィールドに基づいてデータストリームから隣接するデータバイトの少なくとも１つのグループを選択的に放棄するステップと、その１つのパターンエントリからのパターンバイトと、選択的に放棄されたグループに隣接し、それに続く、データストリームからのデータバイトの第２のグループとを比較し、比較結果を出力するステップと、それぞれのパターンエントリのために検出された比較結果に基づいてデータストリームにおける所定のパターンを検出するステップとを含む、方法を提供する。検出されるべき所定のパターンに対応するシーケンスにおけるパターンエントリの記憶と、対応のパターンエントリのフィールドに基づいてデータストリームから隣接するデータバイトのグループを選択的に放棄することとによって、メモリ内で所定のパターンを特定するのに必要なパターンエントリの数が最小にされる。
【００１２】
この発明のさらに別の局面は、データパケットにおける所定のパターンを識別するためのネットワークインターフェイスにおける方法であって、パケット交換網から媒体アクセス制御装置によってデータパケットを受信するステップと、受信されたデータパケットにおいて所定のパターンを検出するステップとを含み、検出するステップは、（１）受信されたデータパケットの開始位置に基づいて、所定のパターンに対応する所定のシーケンスを有した複数個のパターンエントリを記憶するメモリから選択されたパターンエントリを読出すステップと、（２）選択されたパターンエントリにおけるスキップフィールドに基づいてデータパケットからデータバイトのグループを選択的にラッチするステップと、（３）選択されたパターンエントリに対する比較結果を得るために、選択されたパターンエントリにおける対応のマスクビットに基づいて、データパケットからのデータバイトのラッチされたグループと選択されたパターンエントリにおけるパターンデータとを選択的に比較するステップと、（４）所定のパターンを検出するために、所定のシーケンスとデータバイトの隣接するグループとに対して、それぞれのパターンエントリのための比較結果を累積するステップとを含む、方法を提供する。スキップフィールドに基づくデータパケットからのデータバイトのグループの選択的なラッチングは、受信されたデータパケットにおける関連のあるバイトとメモリに記憶されたパターンエントリとの間の効率的な比較を可能にする。さらに、受信されたデータパケットの開始位置に基づく選択されたパターンエントリの読出によって、複数のパターン検出スキームが同時に実行可能となる。したがって、所定のデータパターンを記憶するための最小量の記憶空間で、受信されたデータパケットは複数の所定のデータパターンと同時に比較され得る。
【００１３】
この発明のさらなる目的、利点および新規な特徴は以下の説明に一部記載され、一部以下の説明を吟味して当業者に明らかとなるか、またはこの発明を実行することによって学ばれ得る。この発明の目的および利点は前掲の特許請求の範囲に特定的に指摘される装置および組合せによって実現および達成できる。
【００１４】
添付の図面が参照され、ここで、同じ参照符号を有するエレメントは全体を通して同じエレメントを表わす。
【００１５】
【発明を実行するためのベストモード】
この発明は、イーサネット（ＩＥＥＥ８０２．３）ネットワークのようなパケット交換網におけるネットワークインターフェイスの例とともに説明される。ネットワークインターフェイスアーキテクチャを初めに説明し、次に、受信されたデータパケットにおける所定のパターンを検出するための配列が従う。しかしながら、この発明は他のネットワークインターフェイスシステムにも適用可能であることが明らかとなるであろう。
【００１６】
ネットワークインターフェイスアーキテクチャ
図１は、この発明の実施例に従うイーサネット（ＡＮＳＩ／ＩＥＥＥ８０２．３）ネットワークの媒体にアクセスする例示的ネットワークインターフェイス１０のブロック図である。
【００１７】
ネットワークインターフェイス１０、好ましくは単一チップの３２ビットイーサネット制御装置はコンピュータのローカルバス１２、たとえば周辺コンポーネント相互接続（ＰＣＩ）ローカルバスとイーサネットベースの媒体５０との間のインターフェイスを与える。
【００１８】
インターフェイス１０はＰＣＩバスインターフェイス装置１６、バッファメモリ部１８、およびネットワークインターフェイス部２０を含む。ＰＣＩバスインターフェイス装置１６はＰＣＩスレーブインターフェイス１６ａおよびＤＭＡインターフェイス１６ｂを含む。スレーブインターフェイス１６ａは、ＰＣＩ状態レジスタの読出およびプログラミングを含むＰＣＩ制御および状態情報を管理するが、ホストＣＰＵとのＰＣＩバスを介するスレーブ転送を管理するように構成されてもよい。ＤＭＡインターフェイス１６ｂはネットワークインターフェイス１０によるシステムメモリへ、かつそこからのＤＭＡ転送を管理する。したがって、ＰＣＩバスインターフェイス装置１６はスレーブおよび／またはマスタ（たとえばＤＭＡ）モードにおいてＰＣＩ転送を行なうように選択的に構成され得る。
【００１９】
メモリ部１８はネットワークインターフェイスチップ１０上で直接実現される１６ビットＳＲＡＭを含む。開示される実施例に従うと、ＳＲＡＭ１８は先入先出（ＦＩＦＯ）制御装置２２の制御の下ランダムアクセスの態様でアクセスされてもよく、または、それぞれ受信経路および送信経路のために受信部１８ａおよび送信部１８ｂへと分割されてもよい。
【００２０】
ネットワークインターフェイス１０は、ＤＭＡインターフェイス１６ｂを介するＤＭＡ転送を管理するように構成されたバッファ管理装置２４も含む。バッファ管理装置２４は、開始アドレス、長さ等を特定する、ホストメモリ内のＤＭＡディスクリプタに基づいてＤＭＡ転送を管理する。バッファ管理装置２４は、命令をＰＣＩバスサイクルへと変換するＤＭＡインターフェイス１６ｂへと命令を出すことによって、システムメモリから伝送バッファ１８ｂへのＤＭＡ読出を開始する。したがって、バッファ管理装置２４は、ＤＭＡ転送のためのディスクリプタ管理と、メモリ部１８からのデータの記憶および読出に関連したポインタとを含む。バッファ管理装置２４およびメモリ制御装置２２が別個の構成要素として示されるが、２つの装置はメモリ装置１８へ、かつそこからのデータのすべての転送を制御するメモリ管理装置を形成するために統合されてもよい。
【００２１】
ネットワークインターフェイス２０は、媒体アクセス制御（ＭＡＣ）コア２６と、汎用直列インターフェイス（ＧＰＳＩ）２８と、外部の１０Ｍｂ／ｓまたは１００Ｍｂ／ｓ物理（ＰＨＹ）トランシーバに接続するための媒体独立インターフェイス（ＭＩＩ）３０と、外部アドレス検出インターフェイス（ＥＡＤＩ）３２と、マンチェスタエンコーダおよびデコーダを有する付加装置インターフェイス（ＡＵＩ）３４と、１０／１００Ｍｂ／ｓツイストペアトランシーバ媒体付加装置（ＭＡＵ）３６とを含む。
【００２２】
ネットワークインターフェイス１０はまた、ＭＩＩポート３０を介してＭＩＩバス上で２つの装置間のＭＩＩハンドシェイクを行なうように構成されたネットワークポート管理装置３８を含む。このようなＭＩＩハンドシェイクは、リンク情報と、管理データクロック（ＭＤＣ）を用いるＭＩＩ層でのプログラミング情報と、管理データ入力／出力（ＭＤＩＯ）経路とを含み得る。
【００２３】
自動否定部４０は、リンクパートナーが１０Ｍｂ／ｓ、１００Ｍｂ／ｓで動作可能であるか、かつ、リンクが半二重であるべきかまたは全二重であるべきかを示すデータを交換するために、ＰＨＹ層上でリンクパートナーとのＩＥＥＥコンプライアントネゴシエーションを行なう。
【００２４】
ＬＥＤ制御装置４４は、内部デコーディング論理およびネットワークインターフェイス状態レジスタ（図示せず）に基づいて、ＬＥＤ出力信号の発生を選択的に制御する。ネットワークインターフェイス１０はまた、ＩＥＥＥ１１４９．１コンプライアントＪＴＡＧ境界スキャンテストアクセスポートインターフェイス３６を含む。
【００２５】
ＥＥＰＲＯＭインターフェイス４２は、ネットワークインターフェイスアダプタカード上または直列インターフェイスリンクを介してホストコンピュータのマザーボート上でＥＥＰＲＯＭに接続する。ＥＥＰＲＯＭ（図１に示さず）はネットワークインターフェイスに関連した構成情報でプログラミングされ、ネットワークインターフェイスがＥＥＰＲＯＭインターフェイス４２を介して初期化の間に構成されることを可能にする。一旦初期化されると、ネットワークインターフェイスは内部レジスタ（図示せず）に構成情報を記憶し、ホストコンピュータがパワーダウンされる場合にネットワークインターフェイスをホストコンピュータとは独立して動作可能にさせる。したがって、ネットワークインターフェイスはホストコンピュータがスタンバイモードにある間に動作するよう構成でき、それによって、ネットワークインターフェイスはホストコンピュータ内の論理にパワーアップ情報を出力することが可能となり、それによって、ホストコンピュータは、ネットワークから受信され、かつ後述の特定のプロトコルを有するデータパケットに応答して自動的にターンオン可能となる。
【００２６】
データストリームにおける所定のパターンの検出
図２は、活動停止の期間の間自動的に閉鎖し、後述の所定のパターンを有するネットワークインターフェイス１０によってデータパケットが受信されると自動的に再開始するよう構成されたホストコンピュータ６０のためのネットワークインターフェイス１０を示すブロック図である。
【００２７】
図２に示すように、ネットワークインターフェイス１０は、ネットワーク媒体５０から受信されたデータパケットから複数個の所定のパターンの１つを検出するように構成されたパターンマッチング回路（ＰＭＡＴ）６２を含む。さまざまな電力管理スキームが、受信されたデータパケットに識別されるパターンに依存して種々のウェイクアップ動作を行なうために用いられる得る。
【００２８】
図３は、受信されたデータパケットのための異なった３つのパターンシーケンス６４を示す。たとえば、マイクロソフト・コーポレイション（Microsoft Corporation ）によって示される電力管理パケットの１つのタイプは第１のパターンシーケンス６４ａを含み、ここで、ワード９および１０における最後の４つのバイトがインターネットプロトコルに特定的なバイトであり、特定のデータパターンバイトが電力管理パケットのワード３および５に見られる。パターンシーケンス６４ｂは代替的な所定のパターンを特定し、ここで、受信されたデータパケットの最初の６つのバイトが値「ＡＤ」（１６進法）を含み、ワード３、７および８が所定のデータ値を含む。同様のパターンがパターン６４ｃに関して説明される。
【００２９】
開示される実施例に従うと、所定のパターン６４ａ、６４ｂおよび６４ｃに関連したパターンデータは、対応のパターンデータフィールドとの比較の前に無視されるべき、データストリームにおけるいくつかのバイトを特定するフィールドをパターンメモリに記憶することによって圧縮される。図４は、所定のパターンの少なくとも一部を特定する、パターンメモリに記憶されるパターンエントリの構造を示す。パターンエントリ６６は４バイトのパターンデータフィールド７０、４ビットのマスクフィールド７２、３ビットのスキップフィールド７４、および１ビットのエンドフィールド７６を含む。エンドフィールド７６およびスキップフィールド７４はそれぞれ最後／無視カウント（Ｌ／Ｉ）フィールドとして図３に示される。スキップフィールド７４（すなわち、無視カウントフィールド）は、パターンデータフィールドとの比較の前に無視されるべき、データストリームにおけるいくつかのバイトを特定する。たとえば、図３の所定のパターン６４ａはワード３の最初の２つのバイト（たとえば、０８／０６）に所定のパターンデータを有し、したがって、パターン６３ａに従う電力管理パケットのワード０、１および２はパターン比較の目的のために無視され得る関連のないドントケアデータを含む。ナル値でパターンメモリの空間を浪費するのではなく、開示される実施例はパターンエントリ６６ａの最初のパターンエントリ（すなわち、ワード０）をスキップフィールド７４に「３」の値を有するように設定する。したがって、スキップフィールド７４（無視カウントフィールド）の値「３」は、パターン６４ａの最初の３つのワード（ワード０、ワード１およびワード２）がストリーム６４ａのワード３におけるデータバイトの次の隣接するグループとの比較の前に無視されるべきであることを示す。
【００３０】
パターン６４ａに対応するパターンエントリ６６ａの次のパターンエントリ（たとえば、ワード１）が次にパターンメモリから読出される。次のパターンエントリ（ワード１）のスキップフィールド７４は１の値を有し、データバイトの１つのグループ（たとえば、パターン６４ａのワード４）が、パターンデータフィールド「ｘｘ  ０１  ｘｘ  ｘｘ」との比較のためにパターンストリームからのデータバイトの次の隣接するグループ（たとえば、ワード５）とのマッチングの前にスキップまたは放棄されるべきことを示す。
【００３１】
したがって、スキップ／無視フィールド７４は、対応のパターンエントリのためのスキップ／無視フィールドの値に基づいて比較器がデータストリーム６４から隣接するデータバイトの少なくとも１つのグループを選択的に放棄可能にする。
【００３２】
図３および図４に示すように、パターンエントリ６６は、パターンデータフィールド７０と比較されるバイトの対応のグループの選択されたバイトに対するドントケア条件を示す４ビットのマスクフィールド７２を含む。たとえば、パターンエントリ６６ａのワード１はパターン「ｘｘ  ０１  ｘｘ  ｘｘ」を含み、対応のマスクフィールドは値「１０１１」を有する。「１」のマスク値が無視条件に対応し、「０」のマスク値が対応のバイトのための比較条件に対応する。したがって、マスクフィールドパターン「１０１１」は、第２のパターンデータバイト「０１」のみがデータストリームの対応のバイトと比較されるべきであり、かつ残りの３つのデータバイトが比較において無視されるべきであることを示す。したがって、開示される配列は、所定のシーケンスに配列された複数個のパターンエントリ６６がメモリ内の空間の量を最小にしながら所定のパターンを表わすことを可能にする。３ビットのスキップフィールド７４は最大で総数７つのワード（２８バイト）を比較を行なう前にスキップ可能にする。効果的な比較は３つのパターン６４ａ、６４ｂおよび６４ｃの大きさをパターンデータの１６８バイトから９２バイトに縮小し、４５％の縮小を行なうことが可能である。
【００３３】
図５は、この発明の実施例に従ってデータストリームにおける所定のパターン６６を検出するための図２のパターンマッチ回路６２を示すブロック図である。パターンマッチ回路６２は、メモリ内の必要とされる空間の量を最小にするためにスキップ／無視フィールド７４を用いることによってそれぞれのパターンを特定する図３のパターンエントリ６６を記憶するように構成されたパターンメモリ８０を含む。パターンマッチ回路６２はまた、記憶されたパターンエントリ６６の選択された１つのパターンデータフィールド７０と図１の媒体アクセス制御装置（ＭＡＣ）から供給されたパケットデータストリームからのバイトの選択されたグループとを比較するための少なくとも１つの比較器８２を含む。図５に示すように、パターンマッチ回路は、受信されたデータパケットとパターンメモリ８０に記憶されたそれぞれの所定のパターンとの同時の比較を可能にする複数個の比較器８２i を含み得る。したがって、パターン６６ａ、６６ｂおよび６６ｃの各々はそれぞれの比較器８２i を用いて受信されたデータパケットと同時に比較できる。開示される実施例に従うと、パケットデータはＭＡＣから１クロック当り１ニブル（４ビット）のデータ速度で供給され、したがって、８クロックサイクルが比較器で単一のバイトを受信するために必要である。したがって、パターンメモリ８０から対応の比較器８２へとマスクおよびパターンデータを転送するのに１クロックサイクルかかると仮定すると、パターンマッチ回路６２は３２の同時の４バイト比較を行なうことができる。
【００３４】
パターンマッチ回路６２はまた、選択されたパターンエントリのパターンエントリデータ（たとえば、パターンデータフィールドおよびマスクフィールド）の適切な比較器８２i への供給を制御するように構成されたステートマシン８４を含む。ステートマシンはパターンメモリ８０に記憶された制御エントリに基づいてパターンエントリ６８を選択的にアドレス指定する。各制御エントリは、特定のパターンが比較のために能動化されるか、また第１の対応のパターンエントリ６８の開始位置（たとえば、ワード０）を特定する。ステートマシン８４は、ＭＡＣからの入力データクロックと同期したクロック信号に基づいて、かつそれぞれのスキップフィールド７４と最後のパターンエントリにおけるパターン比較の終りを特定するエンドビット７６とに対して、比較の進行を追跡する。
【００３５】
パターンマッチ回路６２はまた、比較器８２i から比較結果を受取るマッチ論理８６を含む。マッチ論理８６はパターンエントリの１つにおけるエンドフィールド８６に設定されたエンドビットに基づいて比較結果の終りを判断する。後述するように、マッチ論理８６は比較器８２からの比較結果における非マッチ結果の存在を判断するために比較結果を監視する。マッチ論理８６は、非マッチ結果の存在を判断する前に、パターンエントリの１つにおけるエンドフィールドの検出に応答して所定のパターンの検出を示す信号を出力する。図３に示すように、エンド信号はステートマシン８４からストローブとして供給され得る。代替的に、エンドフィールドはパターンメモリ８０から直接マッチ論理８６に供給されてもよい。さらに、マッチ論理はマッチを有する対応のパターンに依存して種々のタイプのマッチ結果を出力してもよい。
【００３６】
図４は、パターンデータとパケットデータからの入力データストリームとの間の比較をマスクフィールド７２からのマスクビットについてより詳細に示す。たとえば、図４は、フィールド７０のパターンデータとネットワークデータパケットからのデータストリームとをバイトごとに比較するように構成された比較器の１つ８２0 を示す。たとえば、パターンデータフィールドのバイト０がバイト比較器８２00においてデータストリームの対応のバイトと比較され、パターンデータのバイト１がバイト比較器８２01において入力データストリームの対応のバイトと比較され、以下同様である。各バイト比較器８２01は比較結果を出力する８ビットの比較器９０と、比較結果とマスクフィールド７２からの対応のマスクビットとを受取るＯＲゲート９２とを含む。したがって、対応のマスクビットが１に設定されるならば、マスクビットは、対応の比較結果にかかわらず、対応の選択されたデータバイトのための比較結果として出力される。４ビットの比較結果（Ｃ0-3 ）がマッチ論理８６に出力され、ここで、値Ｃはマッチまたはドントケア条件では１に等しく、Ｃはマッチがない場合のみ０に等しい。
【００３７】
図６は、この発明の実施例に従って媒体アクセス制御装置からのデータストリームにおける所定のパターンを検出するための方法のブロック図である。この方法はネットワークインターフェイスの初期化で始まり、ここで、ホストコンピュータはたとえば活動停止の期間の後にスタンバイ状態にパワーダウンされ得る。上述のように、ネットワークインターフェイス１０はワークステーション６０から独立して動作するために別個の電力供給構成を有する。
【００３８】
検出のための実際の方法は、媒体アクセス制御装置からのデータクロックに同期化し、フレームの開始を識別することによってステップ１００で始まる。特に、パターン比較は受信されたデータパケットの開始位置に対して同期化される。当該技術において認められるように、データパケットの状態はパケットの初めの開始フレーム区切り記号によって識別され得る。ステートマシン８４は次にパターンメモリ８０の制御エントリによって特定されるような次のパターンデータエントリ６６を読出す。このように、ステートマシン８４は、能動化されたパターンのための制御エントリにおける対応の開始アドレスに基づいて、フレームの開始を検出すると最初のパターンエントリを読出す。ステートマシンはまた内部スキップカウンタにスキップ／無視フィールド７４の値をロードする。パターン比較のためのスキップカウンタはステートマシン８４または代替的に各比較器８２i に維持され得る。ステートマシンはパターンデータフィールド７０およびマスクフィールド７２を適切な比較器８２i へとロードする。
【００３９】
次に、パターンマッチ回路６２がステップ１０４でパケットデータの次のワード（すなわち、４バイト）を各比較器８２i へとロードする。ステップ１０６で対応の比較器８２のためのスキップカウンタが０に等しくなければ、隣接するデータバイトのロードされたグループが対応の比較器８２i から放棄され、スキップカウンタはステップ１０８で減分される。したがって、データバイトの４バイトのグループが、パターンデータフィールドとの比較の前に無視されるべき４バイトのグループの数を特定するスキップ／無視フィールド７４に基づいて選択的に放棄され得る。
【００４０】
ステップ１０６で対応の比較器８２のためのスキップカウンタが０に等しければ、パケットデータのロードされた４つのバイトがステップ１１０で対応の比較器８２i へとラッチされ、データのラッチされたグループがパターンエントリ６６からの対応のパターンデータとバイトごとに図４に示すように比較される。比較器８２i はステップ１１２でマスクフィールド７２からの対応のマスクビットに基づいてバイト比較結果を出力する。ステートマシン８４、または代替的に対応の比較器８２i がステップ１１４で１に設定されたエンドフィールド７６を検出すれば、パターンストローブの終りがステートマシン８４または対応の比較器８２i によってマッチ論理８６に出力され、ステップ１１６でパターン比較の終了を示す。
【００４１】
図７は、マッチ論理８６の観点からパターンマッチングのための方法を示すブロック図である。マッチ論理８６はたとえばＭＡＣからのフレーム開始指示に応答してステップ１２０でマッチフラグを１にリセットする。次に、マッチ論理８６は対応の比較器８２i から比較結果（Ｃ0-3 ）を受取り、ステップ１２２で比較結果ビットのいずれかが０に等しいかを調べる。比較結果ビットのいずれかが非マッチ検出を示す０に等しければ、マッチ論理８６はステップ１２４でマッチフラグを０に等しく設定する。次に、マッチ論理８６はステップ１２６でパターンストローブの終りがステートマシン８４または対応の比較器８２i から受取られたかを判断する。パターンストローブの終りがマッチ論理８６によって受取られていなければ、マッチ論理は次の比較結果のいずれかが０値を有するかを判断し続ける。ステップ１２６でパターンストローブの終りを検出すると、マッチ論理はステップ１２８でマッチフラグがなお１に設定されているかを調べる。マッチフラグがステップ１２８で１になお設定されていれば、マッチ論理８６はステップ１３０で１に等しいパターンマッチ信号を出力し、マッチした特定のパターンを特定する情報を含み得る。
【００４２】
開示される実施例に従うと、データストリームにおける所定のパターンを検出するための配列は、記憶されたパターンデータフィールドとの比較の前に無視され得るデータストリームにおけるいくつかのバイトを特定するスキップ／無視フィールドを含むことによってパターンメモリ内でパターンデータを圧縮する。比較動作におけるスキップ／無視フィールドはデータストリームの開始と同期化され、最小の論理またはメモリ空間を用いて同時のパターン比較を並列して可能にする。
【００４３】
開示される配列がネットワークに接続されるワークステーションのためのウェイクアップ論理に関して所定のパターンを検出することについて説明されたが、所定のパターンを検出するための配列は同期データストリームのための他のパターン認識スキームにも適用可能であることが認識されるであろう。
この発明は目下最も実用的であり、かつ好ましい実施例と考えられるものと関連して説明されたが、この発明は開示された実施例に限定されず、前掲の特許請求の範囲の精神および範疇内に含まれるさまざまな変更および等価な配列に及ぶものと考えられることを理解されたい。
【図面の簡単な説明】
【図１】この発明の実施例に従う、データパケットを受信するために用いられ得る例示的ネットワークインターフェイスを示すブロック図である。
【図２】図１のネットワークインターフェイスと、ホストコンピュータワークステーション、ネットワーク、およびウェイクアップ手順のために用いられるパターンマッチング回路との関係を示す図である。
【図３】この発明の実施例に従う、受信されたデータパケットとパターンメモリ内に記憶されたパターンエントリとの間の比較を示す図である。
【図４】パターンエントリとパターン比較器との間の関係を示す図である。
【図５】この発明の実施例に従う図２のパターンマッチング回路を示すブロック図である。
【図６】図５のステートマシンの観点からデータパケットにおける所定のパターンを識別するための方法を示す図である。
【図７】図５のマッチ論理の観点からデータパケットにおける所定のパターンを識別するための方法を示す図である。
【符号の説明】
１０  ネットワークインターフェイス
１２  ローカルバス
１６  ＰＣＩバイパスインターフェイス装置
１８  バッファメモリ部
【図１】
0004376329.tif 000002
【図２】
0004376329.tif 000003
【図３】
0004376329.tif 000004
【図４】
0004376329.tif 000005
【図５】
0004376329.tif 000006
【図６】
0004376329.tif 000007
【図７】
0004376329.tif 000008