(57)【要約】      （修正有）【課題】同時に複数の被判定データに対する判定処理を行うことによりスループットを高める。【解決手段】一致条件を階層化し、深さ０〜ｎ（ｎは１以上の整数）の一致条件を少なくとも１階層ごとに記憶する複数の記憶手段と、複数の記憶手段から深さ０〜ｎの一致条件をそれぞれ入力し、被判定データと当該一致条件を比較して一致の場合に一致判定信号を出力し、被判定データと当該一致条件を比較して不一致の場合にその大小関係を示す大小信号を出力するパイプライン接続の複数段の比較手段と、比較手段から大小信号を入力し、大小信号に応じて次の深さの一致条件を指定し、当該一致条件を対応する記憶手段から比較手段に出力させる指定手段とを備える。【選択図】図７
2011009895.tif 000002
【特許請求の範囲】
【請求項１】
入力された被判定データが登録されている一致条件と一致するか否かを判定する一致判定装置において、
前記一致条件を階層化し、深さ０〜ｎ（ｎは１以上の整数）の一致条件を少なくとも１階層ごとに記憶する複数の記憶手段と、
前記複数の記憶手段から深さ０〜ｎの一致条件をそれぞれ入力し、前記被判定データと当該一致条件を比較して一致の場合に一致判定信号を出力し、前記被判定データと当該一致条件を比較して不一致の場合にその大小関係を示す大小信号を出力するパイプライン接続の複数段の比較手段と、
前記比較手段から前記大小信号を入力し、前記大小信号に応じて次の深さの一致条件を指定し、当該一致条件を対応する前記記憶手段から前記比較手段に出力させる指定手段と
を備えたことを特徴とする一致判定装置。
【請求項２】
請求項１に記載の一致判定装置において、
前記深さ０〜ｎの一致条件に対して、深さの小さい順に、同一深さでは値の小さい順に固有のインデックスを付与し、
前記記憶手段は、前記一致条件を前記インデックスの順番に記憶する構成であり、
前記指定手段は、前記比較手段で判定に用いた一致条件のインデックスと当該一致条件に対応する大小信号から、次の深さの一致条件を示すインデックスを生成し、前記記憶手段に当該一致条件の読み出しアドレスとして出力する構成である
ことを特徴とする一致判定装置。
【請求項３】
請求項２に記載の一致判定装置において、
前記大小信号は、前記被判定データと前記一致条件の大小関係を１または０で表記し、
前記指定手段は、前記一致条件のインデックスの最下位ビットに前記大小信号を挿入するようにビットシフトして次の深さの一致条件を示すインデックスを生成する構成である
ことを特徴とする一致判定装置。
【請求項４】
請求項１に記載の一致判定装置において、
前記複数の記憶手段は、深さ０〜ｎの一致条件を階層ごとに記憶する構成であり、
前記複数段の比較手段はパイプライン接続であり、
初段の比較手段は、前記被判定データと深さ０の一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力し、
第２段以降、最終段を除く各比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと各深さの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力し、
最終段の比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと深さｎの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する構成である
ことを特徴とする一致判定装置。
【請求項５】
請求項１に記載の一致判定装置において、
前記複数の記憶手段は、深さ０〜ｎの一致条件を複数の階層ごとに記憶する構成であり、
前記複数段の比較手段はパイプライン接続であり、
初段の比較手段は、前記被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力し、
第２段以降、最終段を除く各比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力し、
最終段の比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する構成である
ことを特徴とする一致判定装置。
【請求項６】
入力された被判定データが登録されている一致条件と一致するか否かを判定する一致判定方法において、
前記一致条件を階層化し、深さ０〜ｎ（ｎは１以上の整数）の一致条件を少なくとも１階層ごとに複数の記憶手段に記憶させ、
パイプライン接続の複数段の比較手段は、前記複数の記憶手段から深さ０〜ｎの一致条件をそれぞれ入力し、前記被判定データと当該一致条件を比較して一致の場合に一致判定信号を出力し、前記被判定データと当該一致条件を比較して不一致の場合にその大小関係を示す大小信号を出力し、
前記比較手段から前記大小信号を入力する指定手段は、前記大小信号に応じて次の深さの一致条件を指定し、当該一致条件を対応する前記記憶手段から前記比較手段に出力させる
ことを特徴とする一致判定方法。
【請求項７】
請求項６に記載の一致判定方法において、
前記深さ０〜ｎの一致条件に対して、深さの小さい順に、同一深さでは値の小さい順に固有のインデックスを付与し、
前記記憶手段は、前記一致条件を前記インデックスの順番に記憶し、
前記指定手段は、前記比較手段で判定に用いた一致条件のインデックスと当該一致条件に対応する大小信号から、次の深さの一致条件を示すインデックスを生成し、前記記憶手段に当該一致条件の読み出しアドレスとして出力する処理を行う
ことを特徴とする一致判定方法。
【請求項８】
請求項７に記載の一致判定方法において、
前記大小信号は、前記被判定データと前記一致条件の大小関係を１または０で表記し、
前記指定手段は、前記一致条件のインデックスの最下位ビットに前記大小信号を挿入するようにビットシフトして次の深さの一致条件を示すインデックスを生成する処理を行う
ことを特徴とする一致判定方法。
【請求項９】
請求項６に記載の一致判定方法において、
前記複数の記憶手段は、深さ０〜ｎの一致条件を階層ごとに記憶し、
前記複数段の比較手段はパイプライン接続であり、
初段の比較手段は、前記被判定データと深さ０の一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力する処理を行い、
第２段以降、最終段を除く各比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと各深さの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力する処理を行い、
最終段の比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと深さｎの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する処理を行う
ことを特徴とする一致判定方法。
【請求項１０】
請求項６に記載の一致判定方法において、
前記複数の記憶手段は、深さ０〜ｎの一致条件を複数の階層ごとに記憶し、
前記複数段の比較手段はパイプライン接続であり、
初段の比較手段は、前記被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力する処理を行い、
第２段以降、最終段を除く各比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に前記大小信号と前記被判定データを次段の比較手段に出力する処理を行い、
最終段の比較手段は、前段の比較手段から前記一致判定信号を入力すればそのまま出力し、前記一致判定信号を入力しなければ前記被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する処理を行う
ことを特徴とする一致判定方法。
【請求項１１】
請求項１〜請求項５のいずれかに記載の一致判定装置の各手段を、コンピュータで実行するプログラムで実現したことを特徴とする一致判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された通信機器に搭載され、入力する被判定データ（ＩＰアドレス値など）が事前に登録された一致条件（登録データ）と一致するか否かを判定してフィルタリングする一致判定装置、一致判定方法および一致判定プログラムに関する。
【背景技術】
【０００２】
ネットワークの大容量化に伴い、通信機器が送受信するパケット数が増加すると、一致判定装置でフィルタリングするパケット数も増加する。このため、一致判定装置には、多量のパケットに対して高速に一致／不一致の判定を行うこと、すなわち高スループット化が求められる。
【０００３】
一致判定装置において、被判定データと一致条件との一致／不一致を判定する方式として２分探索方式がある。２分探索方式は、互いに値が異なる一致条件を昇順または降順に並べ、並べた一致条件の中央条件と被判定データの値を比較し、被判定データと一致する可能性の有る一致条件（比較対象の条件）を半分に絞りこんでいく方式である。たとえば、図１１のように、互いに値が異なる３種の一致条件ａ，ｂ，ｃ（ａ＜ｂ＜ｃ）を有する２分探索方式では、はじめに被判定データと中央条件のｂを比較し、被判定データがｂよりも小さい場合は、次にｂよりも小さいａとの比較を行う。逆に、被判定データがｂよりも大きい場合は、次にｂよりも大きいｃとの比較を行う。以下、Ｎ番目に被判定データと比較を行う一致条件を「深さＮ−１に属する一致条件」という。
【０００４】
図１２は、２分探索方式に対応する従来の一致判定装置の代表的な構成例を示す。
図１２において、従来の一致判定装置は、比較部１０と、記憶部２０と、指定部３０から構成される。比較部１０は、入力された被判定データと記憶部２０から出力された一致条件とを比較し、被判定データと一致条件が一致した場合には一致判定信号を出力する。逆に、一致しなかった場合には、被判定データの値が一致条件の値よりも大きいか小さいかを示す大小信号を指定部３０に出力する。指定部３０は、この大小信号から次に比較すべき一致条件を決定し、指定信号を記憶部２０に出力する。記憶部２０は、この指定信号に従って次の一致条件を比較部１０に出力する。比較部１０では、入力された次の一致条件と被判定データとを比較する。ここで、被判定データと一致条件が一致した場合には一致判定信号を出力し、一致しなかった場合に当該一致条件が最後でなければ大小信号を出力して同様の処理を繰り返し、当該一致条件が最後であれば不一致判定信号を出力する。
【０００５】
本装置の記憶部２０は、一致条件を昇順または降順で記憶したメモリで構成される。ここで、図１３および図１４を参照し、互いに値が異なる７種類の一致条件ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇを有する２分探索方式について説明する（特許文献１）。この７種類の一致条件ａ〜ｇには、図１４に示すのように、降順でアドレス０（0000）からアドレス６（0110）が割り当てられ、記憶部２０のメモリに記憶される。記憶部２０は、指定部３０から入力された指定信号をメモリの読み出しアドレスとし、読み出した一致条件を比較部１０に出力する。指定部３０は、比較対象となっている一致条件が記憶されたアドレスの中央値を算出し、算出した中央アドレスを指定信号とする。
【０００６】
例えば、ｆの値を持つ被判定データが入力される場合、深さ０の段階では、ａ〜ｇが比較対象となる。指定部３０は、ａを記憶したアドレス０（0000）と、ｇを記憶したアドレス６（0110) の中央アドレス３（0011）を算出して指定信号とすると、記憶部２０はアドレス３（0011）に記憶されたｄを比較部１０に出力する。入力した被判定データｆはｄよりも大きいため、深さ１においては比較対象がｅ，ｆ，ｇとなる。そのため、比較部１０から大小信号として大が示された指定部３０は、ｅを記憶したアドレス４（0100）と、ｇを記憶したアドレス６（0110）の中央アドレス５（0101）を算出して指定信号とすると、記憶部２０はアドレス５（0101）に記憶されたｆを比較部１０に出力する。ここで比較部１０は、被判定データｆが一致条件ｆに一致したことを示す一致判定信号を出力する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１２６４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、図１３および図１４において、被判定データの値が一致条件ｆより大きい値の場合には、比較部１０は一致条件ｆより大きいことを示す大小信号を指定部３０に出力し、指定部３０は残された深さ２のアドレス６（0110）を算出して指定信号とすると、記憶部２０はアドレス６（0110）に記憶された一致条件ｇを比較部１０に出力する。そして、比較部１０では、再度被判定データと一致条件ｇを比較し、最終的に一致判定信号または不一致判定信号を出力する。
【０００９】
このように、従来の一致判定装置では、入力された被判定データに対して一致判定信号または不一致判定信号が出力されるまで、次の被判定データに対する判定処理を開始できない構成になっている。そのため、一致条件が多くなるほど比較部１０における比較回数が多くなり、一致判定装置のスループットが低下する要因になる。
【００１０】
本発明は、従来技術の課題を解決し、同時に複数の被判定データに対する判定処理を行うことによりスループットを高めることができる一致判定装置、一致判定方法および一致判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の発明は、入力された被判定データが登録されている一致条件と一致するか否かを判定する一致判定装置において、一致条件を階層化し、深さ０〜ｎ（ｎは１以上の整数）の一致条件を少なくとも１階層ごとに記憶する複数の記憶手段と、複数の記憶手段から深さ０〜ｎの一致条件をそれぞれ入力し、被判定データと当該一致条件を比較して一致の場合に一致判定信号を出力し、被判定データと当該一致条件を比較して不一致の場合にその大小関係を示す大小信号を出力するパイプライン接続の複数段の比較手段と、比較手段から大小信号を入力し、大小信号に応じて次の深さの一致条件を指定し、当該一致条件を対応する記憶手段から比較手段に出力させる指定手段とを備える。
【００１２】
ここで、一致条件の階層化とは、各一致条件を示すノード（節点、頂点）と、ノード間を結ぶエッジ（枝）で構成したデータ構造をいう。一致条件の深さとは、根ノード（初期値）から当該ノードに至るまでのエッジ数をいう。
【００１３】
第１の発明の一致判定装置において、深さ０〜ｎの一致条件に対して、深さの小さい順に、同一深さでは値の小さい順に固有のインデックスを付与し、記憶手段は、一致条件をインデックスの順番に記憶する構成であり、指定手段は、比較手段で判定に用いた一致条件のインデックスと当該一致条件に対応する大小信号から、次の深さの一致条件を示すインデックスを生成し、記憶手段に当該一致条件の読み出しアドレスとして出力する構成である。
【００１４】
また、大小信号は、被判定データと一致条件の大小関係を１または０で表記し、指定手段は、一致条件のインデックスの最下位ビットに大小信号を挿入するようにビットシフトして次の深さの一致条件を示すインデックスを生成する構成としてもよい。
【００１５】
第１の発明の一致判定装置において、複数の記憶手段は、深さ０〜ｎの一致条件を階層ごとに記憶する構成であり、複数段の比較手段はパイプライン接続であり、初段の比較手段は、被判定データと深さ０の一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力し、第２段以降、最終段を除く各比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと各深さの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力し、最終段の比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと深さｎの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する構成である。
【００１６】
第１の発明の一致判定装置において、複数の記憶手段は、深さ０〜ｎの一致条件を複数の階層ごとに記憶する構成であり、複数段の比較手段はパイプライン接続であり、初段の比較手段は、被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力し、第２段以降、最終段を除く各比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力し、最終段の比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する構成である。
【００１７】
第２の発明は、入力された被判定データが登録されている一致条件と一致するか否かを判定する一致判定方法において、一致条件を階層化し、深さ０〜ｎ（ｎは１以上の整数）の一致条件を少なくとも１階層ごとに複数の記憶手段に記憶させ、パイプライン接続の複数段の比較手段は、複数の記憶手段から深さ０〜ｎの一致条件をそれぞれ入力し、被判定データと当該一致条件を比較して一致の場合に一致判定信号を出力し、被判定データと当該一致条件を比較して不一致の場合にその大小関係を示す大小信号を出力し、比較手段から大小信号を入力する指定手段は、大小信号に応じて次の深さの一致条件を指定し、当該一致条件を対応する記憶手段から比較手段に出力させることを特徴とする。
【００１８】
第２の発明の一致判定方法において、深さ０〜ｎの一致条件に対して、深さの小さい順に、同一深さでは値の小さい順に固有のインデックスを付与し、記憶手段は、一致条件をインデックスの順番に記憶し、指定手段は、比較手段で判定に用いた一致条件のインデックスと当該一致条件に対応する大小信号から、次の深さの一致条件を示すインデックスを生成し、記憶手段に当該一致条件の読み出しアドレスとして出力する処理を行うことを特徴とする。
【００１９】
また、大小信号は、被判定データと一致条件の大小関係を１または０で表記し、指定手段は、一致条件のインデックスの最下位ビットに大小信号を挿入するようにビットシフトして次の深さの一致条件を示すインデックスを生成する処理を行うようにしてもよい。
【００２０】
第２の発明の一致判定方法において、複数の記憶手段は、深さ０〜ｎの一致条件を階層ごとに記憶し、複数段の比較手段はパイプライン接続であり、初段の比較手段は、被判定データと深さ０の一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力する処理を行い、第２段以降、最終段を除く各比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと各深さの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力する処理を行い、最終段の比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと深さｎの一致条件を比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する処理を行うことを特徴とする。
【００２１】
第２の発明の一致判定方法において、複数の記憶手段は、深さ０〜ｎの一致条件を複数の階層ごとに記憶し、複数段の比較手段はパイプライン接続であり、初段の比較手段は、被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力する処理を行い、第２段以降、最終段を除く各比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に大小信号と被判定データを次段の比較手段に出力する処理を行い、最終段の比較手段は、前段の比較手段から一致判定信号を入力すればそのまま出力し、一致判定信号を入力しなければ被判定データと複数の深さの一致条件を順次比較して一致の場合に一致判定信号を出力し、不一致の場合に不一致判定信号を出力する処理を行うことを特徴とする。
【００２２】
第３の発明は、第１の発明の一致判定装置の各手段を、コンピュータで実行するプログラムで実現したことを特徴とする。
【発明の効果】
【００２３】
本発明は、一致条件の数が多く、２分探索方式または多分探索方式でも多くの比較回数が必要になる場合に、パイプライン処理によってスループットを高めることができる。
【００２４】
また、従来の一致判定装置の構成において、本発明と同等のスループットを実現するためには、複数の一致判定装置を用いて並列に処理する必要がある。その場合、従来構成における各一致判定装置には、全一致条件を格納した記憶部がそれぞれ必要で、トータルの記憶容量は並列数に応じて大きくなる。一方、本発明の一致判定装置では、パイプライン接続される各比較部に対応する記憶部で全一致条件を分散して格納できればよいので、トータルの記憶容量は並列処理構成に比べて大幅に削減することができる。これにより、例えば一致条件として数万や数十万以上の規模になると、回路規模の削減効果が顕著になり、装置の低コスト化、低消費電力化および動作速度の向上が可能になる。
【００２５】
また、各深さの一致条件に対する判定結果（大小信号）に応じて、次の深さの一致条件を検出する方法として、一致条件の深さに応じて割り当てたインデックスを利用することにより、ビットシフト等の簡単な回路またはプログラムで対応することができる。これにより、装置の小型化を実現することができ、さらに低コスト化、低電力化、動作速度の向上を図ることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一致判定装置の実施例１の構成例を示す図である。
【図２】３種の一致条件をもつ２分探索方式を説明する図である。
【図３】実施例１の指定部３０の構成例を示す図である。
【図４】本発明の一致判定装置の実施例２の構成例を示す図である。
【図５】７種の一致条件をもつ２分探索方式を説明する図である。
【図６】実施例２の指定部３０，３１の構成例を示す図である。
【図７】本発明の一致判定装置の実施例３の構成例を示す図である。
【図８】１５種の一致条件をもつ２分探索方式を説明する図である。
【図９】実施例３の指定部３２，３３の構成例を示す図である。
【図１０】４分探索方式への本発明の適用例を説明する図である。
【図１１】２分探索方式の例を説明する図である。
【図１２】２分探索方式に対応する従来の一致判定装置の代表的な構成例を示す図である。
【図１３】７種の一致条件をもつ２分探索方式を説明する図である。
【図１４】記憶部２０の構成例を示す図である。
【発明を実施するための形態】
【実施例１】
【００２７】
図１は、本発明の一致判定装置の実施例１の構成例を示す。本実施例では、互いに値が異なる３種の一致条件ａ，ｂ，ｃ（ａ＜ｂ＜ｃ）が与えられているものとする。この３種の一致条件をもつ２分探索方式は、図２に示すように深さが最大で１となり、本実施例では２段のパイプラインで処理する。すなわち、深さ０の比較処理を１段目のパイプラインで行い、深さ１の比較処理を２段目のパイプラインで行う。
【００２８】
図１において、本実施例の一致判定装置は、比較部１０および比較部１１をパイプライン接続し、比較部１０に深さ０の一致条件ｂを与える記憶部２０を接続し、比較部１１に深さ１の一致条件ａまたはｃを与える記憶部２１を接続する。
【００２９】
比較部１０は、大小比較器で構成され、被判定データ１を入力して一致条件ｂと比較し、一致する場合に一致判定信号５１を比較部１１に出力し、不一致の場合にその大小に応じた大小信号７１を指定部３０に出力するとともに、被判定データ１を被判定データ６１として比較部１１に出力する。指定部３０は、大小信号７１に応じた指定信号８１を記憶部２１に出力し、記憶部２１が指定信号８１に応じた一致条件ａまたはｃを出力する。比較部１１は、比較部１０と同様に大小比較器で構成されるが、一致判定信号５１を入力する場合はそのまま一致判定信号２として出力し、一致判定信号５１を入力しない場合は、入力する被判定データ６１と一致条件ａまたはｃとを比較し、一致判定信号２または不一致判定信号３を出力する。
【００３０】
記憶部２０は、例えばレジスタ２０１で構成される。レジスタ２０１は記憶した一致条件ｂを比較部１０に出力する。比較部１０は、被判定データ１と一致条件ｂとを比較し、被判定データ１が一致条件ｂよりも小さい場合には "０" 、大きい場合には "１" を大小信号７１として指定部３０に出力する。このとき、比較部１０は、被判定データ１を被判定データ６１として比較部１１に出力する。被判定データ１と一致条件ｂが等しい場合は、比較部１０は大小信号７１を出力せず、一致判定信号５１を比較部１１に出力する。
【００３１】
記憶部２１は、例えばメモリ２１１で構成される。メモリ２１１は、アドレス０に一致条件ａを記憶し、アドレス１に一致条件ｃを記憶する。記憶部２１は、指定部３０から入力する指定信号８１をメモリ２１１の読み出しアドレスとし、読み出した一致条件ａまたはｃを比較部１１に出力する。比較部１１は、比較部１０から一致判定信号５１を入力しない場合、被判定データ６１と一致条件ａまたはｃとを比較し、一致した場合には一致判定信号２を出力し、一致しなかった場合には不一致判定信号３を出力する。また、比較部１１は、比較部１０から一致判定信号５１を入力した場合は、そのまま一致判定信号２として外部に出力する。
【００３２】
本実施例の特徴は、１段目の比較部１０で被判定データ１と一致条件ｂが不一致となったときの大小信号７１から、記憶部２１が２段目の比較部１１に与える一致条件ａまたはｃを選択するための指定信号８１を生成する指定部３０にある。以下、図２および図３を参照して指定部３０の構成および機能について説明する。
【００３３】
本発明では、一致条件それぞれに固有のインデックスを付与し、本インデックスによりパイプラインの各段で比較を行う一致条件を決定する。図２では、インデックスＭを＃Ｍと表記する。インデックスは、深さ番号の小さい一致条件から順に付与し、同一深さに属する一致条件には、値の小さいものから順に付与する。本実施例の場合は図２に示すように、深さ０に属する一致条件ｂにはインデックス＃１（0001）を付与し、深さ１に属する一致条件ａにはインデックス＃２（0010）を付与し、一致条件ｃにはインデックス＃３（0011）を付与する。なお、カッコ内はインデックスの値を二進数で表記したものである。
【００３４】
指定部３０は、図３に示すように、インデックス生成部３０１とアドレス生成部３０２で構成される。インデックス生成部３０１は大小信号７１を入力し、アドレス生成部３０２に与えるインデックスを生成する。アドレス生成部３０２は、入力するインデックスから記憶部２１のメモリ２１１のアドレスを示す指定信号８１を生成し、記憶部２１に出力する。
【００３５】
指定部３０のインデックス生成部３０１は、大小信号７１に応じて、２段目の比較部１１で比較を行う一致条件ａまたはｃを選択するためのインデックスを生成する。なお、インデックス生成部３０１には初期値として、１段目の一致条件ｂのインデックス＃１（0001）が与えられている。１段目の比較部１０において、被判定データ１が一致条件ｂよりも小さい場合は大小信号７１が "０" であり、図３に示すように、初期値（0001) を左に１bit シフトして、最下位bit に大小信号７１の "０" を挿入する。このような処理は、例えばシフトレジスタで実現できる。これにより、２段目の比較部１１で被判定データ６１と比較を行う一致条件ａのインデックス＃２（0010）を得ることができる。また、１段目の比較部１０において、被判定データ１が一致条件ｂよりも大きい場合は大小信号７１が "１" であり、図３に示すように、初期値＃１（0001）を左に１bit シフトして、最下位bit に大小信号７１の "１" を挿入する。これにより、２段目の比較部１１で被判定データ６１と比較を行う一致条件ｃのインデックス＃３（0011）を得ることができる。
【００３６】
アドレス生成部３０２は、このように生成されたインデックスから、深さ０に属する一致条件数１に１を足した値２（0010）を引くことにより、一致条件ａまたはｃに対応するアドレスを生成する。すなわち、インデックス＃２（0010）から一致条件ａに対応するアドレス０（0000）が得られ、インデックス＃３（0011）から一致条件ｃに対応するアドレス１（0001）が得られる。図２では、インデックス＃＊に対応するメモリ２１１のアドレスを <****> で表記している。
【００３７】
なお、本実施例の場合は、アドレス生成部３０２に入力する二進数表記したインデックスの最下位bit は大小信号７１に対応するので、大小信号７１の "０" または "１" をそのまま記憶部２１のメモリ２１１の読み出しアドレス（指定信号８１）にしてもよい。
【００３８】
以上説明したように、実施例１では、比較部１０で深さ０に属する一致条件ｂで比較処理を行い、比較部１１で深さ１に属する一致条件ａまたはｃで比較処理を行う構成である。したがって、比較部１０で深さ０における比較処理が終了すると、当該被判定データは比較部１１で深さ１における比較処理に移るので、比較部１０では次の被判定データに対する比較処理が可能となり、スループットを向上させることができる。
【実施例２】
【００３９】
図４は、本発明の一致判定装置の実施例２の構成例を示す。本実施例では、互いに値が異なる７種の一致条件ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ（ａ＜ｂ＜ｃ＜ｄ＜ｅ＜ｆ＜ｇ）が与えられているものとする。この７種の一致条件をもつ２分探索方式は、図５に示すように深さが最大で２となり、本実施例では３段のパイプラインで処理する。すなわち、深さ０の比較処理を１段目のパイプラインで行い、深さ１の比較処理を２段目のパイプラインで行い、深さ２の比較処理を３段目のパイプラインで行う。
【００４０】
図４において、本実施例の一致判定装置は、比較部１０，比較部１１および比較部１２をパイプライン接続し、比較部１０に深さ０の一致条件ｄを与える記憶部２０を接続し、比較部１１に深さ１の一致条件ｂまたはｆを与える記憶部２１を接続し、比較部１２に深さ２の一致条件ａ，ｃ，ｅ，ｇのいずれか１つを与える記憶部２２を接続する。
【００４１】
比較部１０は、実施例１と同様に大小比較器で構成され、被判定データ１を入力して一致条件ｄと比較し、一致する場合に一致判定信号５１を比較部１１に出力する。また、被判定データ１が一致条件ｄよりも小さい場合には "０" 、大きい場合には "１" を大小信号７１として指定部３０に出力するとともに、被判定データ１を被判定データ６１として比較部１１に出力する。指定部３０は、大小信号７１に応じた指定信号８１を記憶部２１に出力し、記憶部２１が指定信号８１に応じた一致条件ｂまたはｆを出力する。また、指定部３０は、内部処理に用いたインデックス９１を指定部３１に出力する。
【００４２】
比較部１１は、比較部１０と同様に大小比較器で構成されるが、一致判定信号５１を入力する場合はそのまま一致判定信号５２として出力し、一致判定信号５１を入力しない場合は、入力する被判定データ６１と一致条件ｂまたはｆとを比較し、一致する場合に一致判定信号５２を比較部１２に出力する。また、被判定データ６１が一致条件ｂまたはｆよりも小さい場合には "０" 、大きい場合には "１" を大小信号７２として指定部３１に出力するとともに、被判定データ６１を被判定データ６２として比較部１２に出力する。指定部３１は、大小信号７２に応じた指定信号８２を記憶部２２に出力し、記憶部２２が指定信号８２に応じた一致条件ａ，ｃ，ｅ，ｇのいずれか１つを出力する。
【００４３】
比較部１２は、比較部１１と同様に大小比較器で構成され、一致判定信号５２を入力する場合はそのまま一致判定信号２として出力し、一致判定信号５２を入力しない場合は、入力する被判定データ６２と一致条件ａ，ｃ，ｅ，ｇのいずれか１つとを比較し、一致判定信号２または不一致判定信号３を出力する。
【００４４】
記憶部２０は、実施例１と同様にレジスタ２０１で構成され、一致条件ｄを比較部１０に出力する。
【００４５】
記憶部２１は、実施例１と同様にメモリ２１１で構成される。メモリ２１１は、アドレス０に一致条件ｂを記憶し、アドレス１に一致条件ｆを記憶する。記憶部２１は、指定部３０から入力する指定信号８１をメモリ２１１の読み出しアドレスとし、読み出した一致条件ｂまたはｆを比較部１１に出力する。
【００４６】
記憶部２２は、記憶部２１と同様にメモリ２２１で構成される。メモリ２２１は、アドレス００，０１，１０，１１に一致条件ａ，ｃ，ｅ，ｇを記憶する。記憶部２２は、指定部３１から入力する指定信号８２をメモリ２２１の読み出しアドレスとし、読み出した一致条件ａ，ｃ，ｅ，ｇのいずれか１つを比較部１２に出力する。
【００４７】
本実施例の特徴は、１段目の比較部１０で被判定データ１と一致条件ｄが不一致となったときの大小信号７１から、記憶部２１が２段目の比較部１１に与える一致条件ｂまたはｆを選択するための指定信号８１を生成する指定部３０、さらに２段目の比較部１１で被判定データ６１と一致条件ｂまたはｆが不一致となったときの大小信号７２から、記憶部２２が３段目の比較部１２に与える一致条件ａ，ｃ，ｅ，ｇのいずれか１つを選択するための指定信号８２を生成する指定部３１にある。
【００４８】
以下、図５および図６を参照して指定部３０，３１の詳細な構成および機能について説明する。なお、ここでは指定部３０，３１を個別の構成として示すが、一体の構成であってもよい。
【００４９】
本実施例では、図５に示すように、深さ０に属する一致条件ｄにはインデックス＃１（0001）を付与し、深さ１に属する一致条件ｂ，ｆにはインデックス＃２（0010），＃３（0011）を付与し、深さ２に属する一致条件ａ，ｃ，ｅ，ｇにはインデックス＃４（0100），＃５（0101），＃６（0110），＃７（0111）を付与する。図５の表記法は、実施例１の図２と同様である。
【００５０】
図６において、指定部３０は、インデックス生成部３０１とアドレス生成部３０２で構成される。インデックス生成部３０１は大小信号７１を入力し、アドレス生成部３０２および指定部３１に与えるインデックス９１を生成する。アドレス生成部３０２は、入力するインデックス９１から記憶部２１のメモリ２１１のアドレスを示す指定信号８１を生成し、記憶部２１に出力する。指定部３１は、インデックス生成部３１１とアドレス生成部３１２で構成される。インデックス生成部３１１は大小信号７２および指定部３０のインデックス生成部３０１からインデックス９１を入力し、アドレス生成部３１２に与えるインデックス９２を生成する。アドレス生成部３１２は、入力するインデックス９２から記憶部２２のメモリ２２１のアドレスを示す指定信号８２を生成し、記憶部２２に出力する。
【００５１】
１段目の比較部１０は、被判定データ１と深さ０の一致条件ｄとを比較し、被判定データ１が一致条件ｄよりも小さい場合は "０" の大小信号７１を出力し、被判定データ１が一致条件ｄよりも大きい場合は "１”の大小信号７１を出力する。指定部３０のインデックス生成部３０１は、 "０" または "１”の大小信号７１に応じて、実施例１と同様に初期値＃１（0001）からインデックス＃２（0010）またはインデックス＃３（0011）を生成し、インデックス９１として出力する。アドレス生成部３０２は、このインデックス９１から、実施例１と同様に２（0010）を引くことにより、深さ１の一致条件ｂに対応するアドレス０（0000）または一致条件ｆに対応するアドレス１（0001）を生成し、指定信号８１として記憶部２１に出力する。
【００５２】
指定部３１のインデックス生成部３１１は、指定部３０からインデックス９１を入力し、インデックスの初期値＃２（0010）または＃３（0011）として設定する。一方、２段目の比較部１１は、被判定データ６１と深さ１の一致条件ｂまたはｆとを比較し、被判定データ６１が一致条件ｂまたはｆよりも小さい場合は "０" の大小信号７２を出力し、被判定データ６１が一致条件ｂまたはｆよりも大きい場合は "１”の大小信号７２を出力する。インデックス生成部３１１は、 "０" の大小信号７２に応じて、インデックス生成部３０１と同様に、インデックスの初期値＃２（0010）または＃３（0011）からインデックス＃４（0100）またはインデックス＃６（0110）を生成し、インデックス９２として出力する。また、インデックス生成部３１１は、 "１" の大小信号７２に応じて、インデックスの初期値＃２（0010）または＃３（0011）からインデックス＃５（0101）またはインデックス＃７（0111）を生成し、インデックス９２として出力する。
【００５３】
アドレス生成部３１２は、このインデックス９２から、深さ０，１に属する一致条件数３に１を足した値４（0100）を引くことにより、深さ２の一致条件ａ，ｃ，ｅ，ｇのいずれか１つに対応するアドレスを生成する。すなわち、インデックス＃４（0100），＃５（0101），＃６（0110），＃７（0111）から、一致条件ａ，ｃ，ｅ，ｇに対応するアドレス００（0000），０１（0001），１０（0010），１１（0011）を生成し、指定信号８２として記憶部２２に出力する。図５および図６では、インデックス＃＊に対応するメモリ２１１，２２１のアドレスを <****> で表記している。
【００５４】
なお、アドレス生成部３０２ではインデックス９１から２を引いて指定信号８１を生成し、アドレス生成部３１２ではインデックス９２から４を引いて指定信号８２を生成しているが、これは記憶部２１のメモリ２１１、記憶部２２のメモリ２２１のアドレスと一致条件に付与されたインデックスにずれがあるためである。したがって、図４(2) に示すように、メモリアドレスと一致条件のインデックスを対応させることにより、インデックス９１，９２をそのまま指定信号８１，８２とすることが可能である。
【００５５】
また、実施例１と同様に、アドレス生成部３０２に入力する二進数表記したインデックス９１の最下位bit は大小信号７１に対応するので、大小信号７１の "０" または "１" をそのまま記憶部２１のメモリ２１１の読み出しアドレス（指定信号８１）にしてもよい。また、アドレス生成部３１２に入力する二進数表記したインデックス９２の下位２bit は、大小信号７１，７２の履歴に対応するので、これを記憶部２１のメモリ２２１の読み出しアドレスとしてもよい。
【００５６】
以上説明したように、実施例２では、比較部１０で深さ０に属する一致条件ｄで比較処理を行い、比較部１１で深さ１に属する一致条件ｂまたはｆで比較処理を行い、比較部１２で深さ２に属する一致条件ａ，ｃ，ｅ，ｇの１つで比較処理を行う構成である。したがって、比較部１０で深さ０における比較処理が終了すると、当該被判定データは比較部１１で深さ１における比較処理に移るので、比較部１０では次の被判定データに対する比較処理が可能となり、スループットを向上させることができる。
【００５７】
なお、一致条件が４〜６種であっても図４の一致判定装置で同様に対応することができる。また、一致条件が８〜15種の場合には、４段のパイプラインで同様に処理することができるが、各段のパイプラインで深さ２つ分の比較処理を行うことにより２段のパイプラインで処理することも可能である。後者の場合について、実施例３として以下に説明する。
【実施例３】
【００５８】
図７は、本発明の一致判定装置の実施例３の構成例を示す。本実施例では、互いに値が異なる15種の一致条件ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ，ｉ，ｊ，ｋ，ｌ，ｍ，ｎ，ｏ（ａ＜ｂ＜ｃ＜ｄ＜ｅ＜ｆ＜ｇ＜ｈ＜ｉ＜ｊ＜ｋ＜ｌ＜ｍ＜ｎ＜ｏ）が与えられているものとする。この15種の一致条件をもつ２分探索方式は、図８に示すように深さが最大で３となり、本実施例では２段のパイプラインで処理する。すなわち、深さ０，１の比較処理を１段目のパイプラインで行い、深さ２，３の比較処理を２段目のパイプラインで行う。
【００５９】
図７において、本実施例の一致判定装置は、比較部１０および比較部１１をパイプライン接続し、比較部１０に深さ０の一致条件ｈまたは深さ１の一致条件ｄまたはｌを与える記憶部２３を接続し、比較部１１に深さ２の一致条件ｂ，ｆ，ｊ，ｎのいずれか１つ、または深さ３の一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏのいずれか１つを与える記憶部２４を接続する。比較部１０に与える一致条件を指定する指定部３２は、比較部１０および記憶部２３に接続される。比較部１１に与える一致条件を指定する指定部３３は、指定部３２、比較部１１および記憶部２４に接続される。
【００６０】
ここで、比較部１０および指定部３２は、深さ０の比較処理と深さ１の比較処理に対して異なる動作をする。比較部１１および指定部３３は、深さ２の比較処理と深さ３の比較処理に対して異なる動作をする。
【００６１】
記憶部２３は、指定部３２の指定信号８３に応じて深さ０の一致条件ｈを比較部１０に出力する。比較部１０は、実施例１と同様に大小比較器で構成され、被判定データ１を入力して一致条件ｈと比較し、一致する場合に一致判定信号５１を比較部１１に出力する。また、被判定データ１が一致条件ｈよりも小さい場合には "０" 、大きい場合には "１" の大小信号７１を指定部３２に出力する。指定部３２は、大小信号７１に応じた指定信号８３を記憶部２３に出力し、記憶部２３が指定信号８３に応じた深さ１の一致条件ｄまたはｌを出力する。
【００６２】
比較部１０は、被判定データ１と一致条件ｄまたはｌとを比較し、一致する場合に一致判定信号５１を比較部１１に出力する。また、被判定データ１が一致条件ｄまたはｌよりも小さい場合には "０" 、大きい場合には "１" の大小信号７１を指定部３２に出力するとともに、被判定データ１を被判定データ６１として比較部１１に出力する。指定部３２は、大小信号７１および大小信号７１に応じたインデックス９３を指定部３３に出力する。指定部３３は、大小信号７１およびインデックス９３に応じた指定信号８４を記憶部２４に出力し、記憶部２４が指定信号８４に応じた深さ２の一致条件ｂ，ｆ，ｊ，ｎのいずれか１つを比較部１１に出力する。
【００６３】
比較部１１は、比較部１０と同様に大小比較器で構成されるが、一致判定信号５１を入力する場合はそのまま一致判定信号２として出力し、一致判定信号５１を入力しない場合は、入力する被判定データ６１と深さ２の一致条件ｂ，ｆ，ｊ，ｎのいずれか１つとを比較し、一致する場合に一致判定信号２を出力する。また、被判定データ６１が当該一致条件よりも小さい場合には "０" 、大きい場合には "１" の大小信号７２を指定部３３に出力する。指定部３３は、大小信号７２に応じた指定信号８４を記憶部２４に出力し、記憶部２４が指定信号８４に応じた深さ３の一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏのいずれか１つを出力する。比較部１１は、被判定データ６１と当該一致条件とを比較し、一致判定信号２または不一致判定信号３を出力する。
【００６４】
記憶部２３は、例えばメモリ２３１で構成される。メモリ２３１は、アドレス0000に深さ０の一致条件ｈを記憶し、アドレス0001，0010に深さ１の一致条件ｄ，ｌを記憶する。記憶部２３は、指定部３２から入力する指定信号８３をメモリ２３１の読み出しアドレスとし、読み出した深さ０の一致条件ｈ、または深さ１の一致条件ｄまたはｌを比較部１０に出力する。
【００６５】
記憶部２４は、例えばメモリ２４１で構成される。メモリ２４１は、アドレス0000〜0011に深さ２の一致条件ｂ，ｆ，ｊ，ｎを記憶し、アドレス0100〜1011に深さ３の一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏを記憶する。記憶部２４は、指定部３３から入力する指定信号８４をメモリ２４１の読み出しアドレスとし、読み出した深さ２の一致条件ｂ，ｆ，ｊ，ｎのいずれか１つ、または深さ３の一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏのいずれか１つを比較部１１に出力する。
【００６６】
本実施例の指定部３２は、比較部１０に深さ０の一致条件ｈを設定するための指定信号８３を記憶部２３に出力し、比較部１０で被判定データ１と一致条件ｈが不一致となったときの大小信号７１から、記憶部２３が比較部１０に与える深さ１の一致条件ｄまたはｌを選択するための指定信号８３を生成し、さらに比較部１０で被判定データ１と深さ１の一致条件ｄまたはｌが不一致となったときの大小信号７１から、記憶部２４が比較部１１に与える深さ２の一致条件ｂ，ｆ，ｊ，ｎのいずれか１つを選択するためのインデックス９３を生成する。
【００６７】
本実施例の指定部３３は、比較部１０で被判定データ１と深さ１の一致条件ｄまたはｌが不一致となったときの大小信号７１とインデックス９３から、記憶部２４から比較部１１に与える深さ２の一致条件ｂ，ｆ，ｊ，ｎのいずれか１つを選択するための指定信号８４を生成し、さらに比較部１１で被判定データ６１と一致条件ｂ，ｆ，ｊ，ｎのいずれか１つが不一致となったときの大小信号７２から、記憶部２４が比較部１１に与える深さ３の一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏのいずれか１つを選択するための指定信号８４を生成する。
【００６８】
以下、図８および図９を参照して指定部３２，３３の詳細な構成および機能について説明する。なお、ここでは指定部３２，３３を個別の構成として示すが、一体の構成であってもよい。
【００６９】
本実施例では、図８に示すように、深さ０に属する一致条件ｈにはインデックス＃１（0001）を付与し、深さ１に属する一致条件ｄ，ｌにはインデックス＃２（0010），＃３（0011）を付与し、深さ２に属する一致条件ｂ，ｆ，ｊ，ｎにはインデックス＃４（0100）〜＃７（0111）を付与し、深さ３に属する一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏにはインデックス＃８（1000）〜＃15（1111）を付与する。図８の表記法は、実施例１の図２と同様である。
【００７０】
図９において、指定部３２は、制御カウンタ３２１、レジスタ３２２、インデックス生成部３２３およびアドレス生成部３２４で構成される。制御カウンタ３２１は、１と２のカウンタ信号１２１を繰り返し出力する。レジスタ３２２は、インデックスの初期値＃１（0001）を保持し、初期値１２２を出力する。インデックス生成部３２３は、カウンタ信号１２１、初期値１２２および大小信号７１を入力し、アドレス生成部３２４および指定部３３に出力するインデックス９３を生成する。アドレス生成部３２４は、入力するインデックス９３から記憶部２３のメモリ２３１のアドレスを示す指定信号８３を生成し、記憶部２３に出力する。また、大小信号７１はそのまま指定部３３に出力される。
【００７１】
指定部３３は、制御カウンタ３３１、レジスタ３３２、インデックス生成部３３３およびアドレス生成部３３４で構成される。制御カウンタ３３１は、１と２のカウント信号１３１を繰り返し出力する。レジスタ３３２は、指定部３２から入力するインデックス９３を保持し、初期値１３２として出力する。インデックス生成部３３３は、カウンタ信号１３１、初期値１３２、大小信号７１および大小信号７２を入力し、アドレス生成部３３４に出力するインデックス９４を生成する。アドレス生成部３３４は、入力するインデックス９４から記憶部２４のメモリ２４１のアドレスを示す指定信号８４を生成し、記憶部２４に出力する。
【００７２】
指定部３２のインデックス生成部３２３は、カウンタ信号１２１が１のときに、レジスタ３２２の初期値１２２を設定し、インデックス＃１（0001）としてアドレス生成部３２４に出力する。アドレス生成部３２４は、このインデックス＃１（0001）から１を引くことにより、深さ０の一致条件ｈに対応するアドレス0000を生成し、指定信号８３として記憶部２３に出力する。１段目の比較部１０は、被判定データ１と記憶部２３から入力する一致条件ｈとを比較し、被判定データ１が一致条件ｈよりも小さい場合は "０" （大きい場合は "１" ）の大小信号７１を出力する。インデックス生成部３２３は例えばシフトレジスタで構成され、カウンタ信号１２１が２のときに、例えば "０" の大小信号７１に応じて、初期値のインデックス＃１（0001）からインデックス＃２（0010）を生成し、アドレス生成部３２４に出力する。アドレス生成部３２４は、このインデックス＃２（0010）から１を引くことにより、深さ１の一致条件ｄに対応するアドレス0001を生成し、指定信号８３として記憶部２３に出力する。また、このインデックス＃２（0010）はインデックス９３として指定部３３に出力され、レジスタ３３２に初期値として設定される。
【００７３】
指定部３３のインデックス生成部３３３は、カウンタ信号１３１が１のときに、レジスタ３３２の初期値１３２をインデックスの初期値＃２（0010）として設定する。一方、１段目の比較部１０は、被判定データ１と深さ１の一致条件ｄとを比較し、被判定データ１が一致条件ｄよりも大きい場合は "１" （小さい場合は "０" ）の大小信号７１を出力する。インデックス生成部３３３は、例えば "１" の大小信号７１に応じて、インデックス＃２（0010）からインデックス＃５（0101）を生成する。アドレス生成部３３４は、このインデックス＃５（0101）から、深さ０，１に属する一致条件数３に１を足した４（0100）を引くことにより、深さ２の一致条件ｆに対応するアドレス0001を生成し、指定信号８４として記憶部２４に出力する。
【００７４】
２段目の比較部１１は、被判定データ６１と記憶部２４から入力する深さ２の一致条件ｆとを比較し、被判定データ１が一致条件ｆよりも大きい場合は "１" （小さい場合は "０" ）の大小信号７２を出力し、一致すれば一致判定信号２を出力する。インデックス生成部３３３は、例えば "１" の大小信号７２に応じて、インデックス＃５（0101）からインデックス＃11（1011）を生成する。アドレス生成部３３４は、このインデックス＃11（1011）から、同様に４（0100）を引くことにより、深さ３の一致条件ｇに対応するアドレス0111を生成し、指定信号８４として記憶部２４に出力する。比較部１１は、被判定データ６１と記憶部２４から入力する一致条件ｇとを比較し、一致すれば一致判定信号２を出力し、一致しなければ不一致信号３を出力する。
【００７５】
なお、アドレス生成部３２４ではインデックス９３から１を引いて指定信号８３を生成し、アドレス生成部３３４ではインデックス９４から４を引いて指定信号８４を生成しているが、これは記憶部２３のメモリ２３１のアドレス、記憶部２４のメモリ２４１のアドレスと一致条件に付与されたインデックスにずれがあるためである。したがって、メモリ２３１，２４１において、メモリアドレスと一致条件のインデックスを対応させることにより、インデックス９３，９４をそのまま指定信号８３，８４とすることが可能である。
【００７６】
以上説明したように、実施例３では、比較部１０で深さ０に属する一致条件ｈで比較処理を行い、さらに深さ１に属する一致条件ｄまたはｌで比較処理を行い、比較部１１で深さ２に属する一致条件ｂ，ｆ，ｊ，ｎのいずれか１つで比較処理を行い、さらに深さ３に属する一致条件ａ，ｃ，ｅ，ｇ，ｉ，ｋ，ｍ，ｏのいずれか１つで比較処理を行う構成である。したがって、比較部１０で深さ０，１における比較処理が終了すると、当該被判定データは比較部１１で深さ２，３における比較処理に移るので、比較部１０では次の被判定データに対する比較処理が可能となり、スループットを向上させることができる。
【００７７】
なお、実施例３の構成において、例えば一致条件が４以上15未満の場合は、存在しない一致条件について、図７に示す記憶部２４のメモリ２４１の対応するアドレスに「一致条件なし」を示す情報を記憶する。指定部３３により当該アドレスが指定された場合に、この「一致条件なし」を示す情報を比較部１１に出力し、比較部１１では直ちに不一致を判定するようにしてもよい。実施例１および実施例２においても同様である。
【実施例４】
【００７８】
一致条件が15種を超える場合には、実施例２に示す一致条件の各階層ごとにパイプライン処理を行う構成、実施例３に示す一致条件の複数階層ごとにパイプライン処理を行う構成、またそれらを組み合わせることにより対応可能である。
【００７９】
実施例１，２の記憶部２０は、１つの一致条件を記憶して出力するものとして、レジスタを用いる例を示したが、例えばＲＯＭやＲＡＭで構成してもよい。また、実施例１，２，３の記憶部２１，２２，２３，２４はメモリを用いる例を示したが、例えばレジスタやＲＯＭで構成してもよい。
【００８０】
また、実施例１〜３では２分探索方式に基づいて説明したが、本発明は２分探索方式に限るものではなく、木構造を有した多分探索方式において、インデックスを利用して次に被判定データと比較する一致条件を指定できる構成に適用可能である。例えば、被判定データと３種の一致条件を同時に比較する４分探索方式では、図１０に示すように、大小信号が４種の値を示せればよい（図１０では00と01と10と11）。さらに、本発明は、Ｂ木や2.3.4 木など、木構造に対して特定の一致条件の格納方法を有する探索方式に利用してもよい。
【実施例５】
【００８１】
以上説明した実施例１〜実施例４の構成および機能はハードウェアで実現するだけでなく、プログラム言語で記述したソフトウェアとコンピュータで実現することもできる。また、当該プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【産業上の利用可能性】
【００８２】
本発明は、一致条件の数が多く、２分探索方式または多分探索方式でも多くの比較回数が必要になる場合に、パイプライン処理によってスループットを高めることができるので、特に一致条件数が多い場合の一致判定装置、一致判定方法および一致判定プログラムとして有用である。
【符号の説明】
【００８３】
１０，１１，１２  比較部
２０，２１，２２，２３，２４  記憶部
２０１  レジスタ
２１１，２２１，２３１，２４１  メモリ
３０，３１，３２，３３  指定部
３０１，３１１，３２３，３３３  インデックス生成部
３０２，３１２，３２４，３３４  アドレス生成部
３２１，３３１  制御カウンタ
３２２，３３２  レジスタ
【図１】
2011009895.tif 000003
【図２】
2011009895.tif 000004
【図３】
2011009895.tif 000005
【図４】
2011009895.tif 000006
【図５】
2011009895.tif 000007
【図６】
2011009895.tif 000008
【図７】
2011009895.tif 000009
【図８】
2011009895.tif 000010
【図９】
2011009895.tif 000011
【図１０】
2011009895.tif 000012
【図１１】
2011009895.tif 000013
【図１２】
2011009895.tif 000014
【図１３】
2011009895.tif 000015
【図１４】
2011009895.tif 000016