(57)【特許請求の範囲】
【請求項１】
入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置であって、
前記各条件は１つまたは複数のグループに属し、
前記入力された数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出手段と、
前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定手段と
を具備し、
前記不一致検出手段は、テーブルを具備し、
前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、
前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、前記グループ毎の不一致検出の結果を前記一致判定手段に通知し、
前記一致判定手段は、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わない
ことを特徴とする一致判定装置。
【請求項２】
入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置であって、
前記各条件は１つまたは複数のグループに属し、
前記入力された数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出手段と、
前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定手段と
を具備し、
前記不一致検出手段は、
前記入力された数値を、当該桁数またはビット数より小さい複数のブロックからなる部分入力数値に分割する分割手段と、
前記ブロック毎に設けられて、当該部分入力数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出するブロック不一致検出手段と、
前記ブロック不一致検出手段の検出結果を集計して不一致を検出する集計手段と
を備え、前記グループ毎の不一致検出の結果を前記一致判定手段に通知し、
前記ブロック不一致検出手段は、それぞれテーブルを具備し、
前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、
前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、
前記一致判定手段は、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わない
ことを特徴とする一致判定装置。
【請求項３】
請求項１または請求項２に記載の一致判定装置であって、
前記不一致検出手段は、前記入力された数値にハッシュをかけた後、前記不一致の検出を行うことを特徴とする一致判定装置。
【請求項４】
請求項１〜請求項３のいずれか１つに記載の一致判定装置であって、
前記条件のそれぞれは、ただ１つのグループにのみ属することを特徴とする一致判定装置。
【請求項５】
入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置で用いられる一致判定方法であって、
前記各条件は１つまたは複数のグループに属し、
不一致検出手段が、前記入力された数値が前記グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出ステップと、
一致判定手段が、前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定ステップと
を具備し、
前記不一致検出手段は、テーブルを具備し、
前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、
前記不一致検出ステップでは、前記不一致検出手段が、前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、前記グループ毎の不一致検出の結果を前記一致判定ステップに通知し、
前記一致判定ステップでは、前記一致判定手段が、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わない
ことを特徴とする一致判定方法。
【請求項６】
入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置で用いられる一致判定方法であって、
前記各条件は１つまたは複数のグループに属し、
不一致検出手段が、前記入力された数値が前記グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出ステップと、
一致判定手段が、前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定ステップと
を具備し、
前記不一致検出ステップでは、
前記不一致検出手段が備える分割手段が、前記入力された数値を、当該桁数またはビット数より小さい複数のブロックからなる部分入力数値に分割する分割ステップと、
前記不一致検出手段が備え、前記ブロック毎に設けられたブロック不一致検出手段が、当該部分入力数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出するブロック不一致検出ステップと、
前記不一致検出手段が備える集計手段が、前記ブロック不一致検出手段の検出結果を集計して不一致を検出し、前記グループ毎の不一致検出の結果を前記一致判定ステップに通知する集計ステップと
を備え、
前記ブロック不一致検出手段は、それぞれテーブルを具備し、
前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、
前記ブロック不一致検出ステップでは、前記ブロック不一致検出手段が、前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、
前記一致判定ステップでは、前記一致判定手段が、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わない
ことを特徴とする一致判定方法。
【請求項７】
請求項５または請求項６に記載の一致判定方法であって、
前記不一致検出ステップでは、前記不一致検出手段が、前記入力された数値にハッシュをかけた後、前記不一致の検出を行うことを特徴とする一致判定方法。
【請求項８】
コンピュータを、請求項１〜請求項４のいずれか１つに記載の一致判定装置を構成する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力したデータが登録した条件に一致するか否かを判定する一致判定技術に関する。
【背景技術】
【０００２】
ネットワークに接続された通信機器等には、受信したデータにフィルタリングなどの処理を行うため、一致判定装置を搭載しているものがある。この一致判定装置は、受信したデータの一部または全てを入力とし（入力データ）、入力データが事前に登録した条件（一致条件）と一致するか否かを判定し、その判定結果を出力する装置である。なお、一般的に、入力データおよび登録条件は数値で表現する。つまり、一致判定装置とは、複数の数値が一致条件として登録されたテーブルに、入力データと一致する数値があるか否かを判定する装置を指す。
【０００３】
インターネットを利用する各ユーザーの取り扱うデータ量が増加すると、一致判定装置には多種大量の入力データを短時間で処理することが求められるため、1つの入力データを処理するために与えられる時間が短くなる。そのため、一致判定装置には、入力データが入力されてから結果を出力するまでに要する平均的な時間（平均判定時間）を短くすることが求められている。
【０００４】
一致判定装置が入力データと一致条件との一致／不一致を判定する方式の１つに、線形探索方式がある（非特許文献１参照）。本方式は、一致条件を１つずつ順番に入力データと比較する方式である。本方式では、入力データの数値と一致する一致条件を検出した場合、一致と判定する。逆に、入力データと全一致条件とを比較して、入力データの数値と一致する一致条件を発見できなかった場合、不一致と判定する。
【０００５】
上記方式では、入力データと全一致条件とを比較した後でなければ不一致を判定できないため、入力データの多くが不一致と判定される場合には平均判定時間が長くなる課題があった。本課題を解決した従来の一致判定装置として特許文献１がある。特許文献１では、不一致を短時間で検出可能な不一致検出手段を一致判定装置に具備することにより、不一致の判定に要する時間を短縮し、一致判定装置の平均判定時間を短くした。
【０００６】
図７は、従来の一致判定装置の構成例である。
特許文献１の一致判定装置５０は、一致判定手段５１と、不一致検出手段５２と、判定手段５３とからなる。装置５０の外部から入力される入力データ６１は、一致判定手段５１と不一致検出手段５２に入力され、各手段５１，５２で一致／不一致の判定が行われる。また、装置５０から外部へ出力される判定結果６６は、判定手段５３から出力される。
【０００７】
一致判定手段５１は、入力データ６１と一致条件との一致／不一致を前述の線形探索方式により判定する。一致判定手段５１は、入力データ６１と一致条件とを１つずつ順番に照合し、入力データ６１と一致する一致条件を検出すると一致判定信号６２を判定手段５３に出力する。逆に、全条件と入力データ６１の比較を終了し、入力データ６１と一致する一致条件を見つけられなかった場合には、比較終了信号６３を判定手段５３に出力する。
【０００８】
不一致検出手段５２は、不一致を検出すると不一致検出信号６５を判定手段５３に出力する。判定手段５３は、一致判定信号６２を受信した場合には「一致」の判定結果６６を出力し、比較終了信号６３または不一致検出信号６５を受信した場合には「不一致」の判定結果６６を出力する。なお、不一致検出手段５２から不一致検出信号６５を受信すると、判定手段５３は一致判定手段５１に中止信号６４を送信し、一致判定動作を停止させる。
【０００９】
図８は、従来の不一致検出手段の構成例である。図９は、従来の不一致検出手段による条件登録例および判定例である。
不一致検出手段５２は、メモリ５２Ａで構成される。メモリ５２Ａの各アドレスには、アドレスの数値と等しい数値の一致条件が有るか否かのシンボルを格納する。条件登録時において、図９（ａ）のように、例えば一致条件が２０，３５，１９８，２４８という４種の数値の場合、メモリ５２Ａのアドレス２０、３５、１９８、２４８には、「有」を示すシンボルを格納し、それ以外のアドレスには「無」を示すシンボルを格納する。本構成において、不一致を検出する方法は以下のとおりである。不一致検出手段５２に入力する入力データ６１をメモリ５２Ａの読み出しアドレスとし、各アドレスに格納されたシンボルを読み出す。したがって、判定時において、図９（ｂ）に示すように、例えば入力データが２５５の場合、メモリ５２Ａのアドレス２５５から「無」のシンボルが読み出されることになり、不一致と判定する。
【００１０】
上記構成は、１回のメモリアクセスで不一致を判定することが可能であるが、入力データと一致条件の数値範囲が大きくなった場合には必要なメモリ容量が大きくなる。例えば、入力データと一致条件がｍビットの数値範囲の場合、必要なメモリ容量は２（＾ｍ）ビットとなる。そのため、特許文献１では、ｍビットのうちｎビット（ｎ＜ｍ）だけを使い不一致を検出したり、ｍビットをｎビットずつのブロックに分割して並列して不一致を検出したりする手段をとっている。
【００１１】
本構成により、不一致となる入力データ全てを検出することはできなくなるが、不一致検出手段５２で検出できない不一致は従来の一致判定手段５１により検出されるため、誤判定することはない。また、不一致検出手段５２で不一致を検出した場合には、一致判定手段５１で時間をかけて不一致を判定することは必要ないため、一致判定装置５０の平均判定時間を短くすることができる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−１６５１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述のように、従来の一致判定装置５０は、不一致検出手段５２が不一致の入力データを短時間で検出することで不一致の判定に要する時間を短縮し、平均判定時間を短縮している。しかしながら、従来の一致判定装置５０における不一致検出手段５２は、全ての不一致を検出できるわけではないため、不一致を検出できない入力データが多い場合には、平均判定時間を短縮することができない。これは、不一致検出手段５２が不一致を検出できない場合、一致判定手段５１が入力データと全一致条件とを比較する必要があるためである。
【００１４】
本発明はこのような課題を解決するためのものであり、不一致を検出できない入力データが多い場合でも平均判定時間を短縮できる一致判定技術を提供することを目的としている。
【課題を解決するための手段】
【００１５】
このような目的を達成するために、本発明にかかる一致判定装置は、入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置であって、前記各条件は１つまたは複数のグループに属し、前記入力された数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出手段と、前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定手段とを具備し、前記不一致検出手段は、テーブルを具備し、前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、前記グループ毎の不一致検出の結果を前記一致判定手段に通知し、前記一致判定手段は、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わないようにしたものである。
【００１６】
また、本発明にかかる他の一致判定装置は、入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置であって、前記各条件は１つまたは複数のグループに属し、前記入力された数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出手段と、前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定手段とを具備し、前記不一致検出手段は、前記入力された数値を、当該桁数またはビット数より小さい複数のブロックからなる部分入力数値に分割する分割手段と、前記ブロック毎に設けられて、当該部分入力数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出するブロック不一致検出手段と、前記ブロック不一致検出手段の検出結果を集計して不一致を検出する集計手段とを備え、前記グループ毎の不一致検出の結果を前記一致判定手段に通知し、前記ブロック不一致検出手段は、それぞれテーブルを具備し、前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、前記一致判定手段は、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わないようにしたものである。
【００１７】
この際、前記不一致検出手段が、前記入力された数値にハッシュをかけた後、前記不一致の検出を行うようにしてもよい。
【００１８】
また、前記条件のそれぞれは、ただ１つのグループにのみ属するようにしてもよい。
【００１９】
また、本発明にかかる一致判定方法は、入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置で用いられる一致判定方法であって、前記各条件は１つまたは複数のグループに属し、不一致検出手段が、前記入力された数値が前記グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出ステップと、一致判定手段が、前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定ステップとを具備し、前記不一致検出手段は、テーブルを具備し、前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、前記不一致検出ステップでは、前記不一致検出手段が、前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、前記グループ毎の不一致検出の結果を前記一致判定ステップに通知し、前記一致判定ステップでは、前記一致判定手段が、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わないようにしたものである。
【００２０】
また、本発明にかかる他の一致判定方法は、入力された数値が予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定する一致判定装置で用いられる一致判定方法であって、前記各条件は１つまたは複数のグループに属し、不一致検出手段が、前記入力された数値が前記グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出する不一致検出ステップと、一致判定手段が、前記入力された数値と前記条件とを照合して、一致または不一致を判定する一致判定ステップとを具備し、前記不一致検出ステップでは、前記不一致検出手段が備える分割手段が、前記入力された数値を、当該桁数またはビット数より小さい複数のブロックからなる部分入力数値に分割する分割ステップと、前記不一致検出手段が備え、前記ブロック毎に設けられたブロック不一致検出手段が、当該部分入力数値が前記各グループに属している全ての前記条件と不一致であることを、前記グループ毎に検出するブロック不一致検出ステップと、前記不一致検出手段が備える集計手段が、前記ブロック不一致検出手段の検出結果を集計して不一致を検出し、前記グループ毎の不一致検出の結果を前記一致判定ステップに通知する集計ステップとを備え、前記ブロック不一致検出手段は、それぞれテーブルを具備し、前記テーブルの各アドレスには、前記各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルが前記グループ毎に記憶され、前記ブロック不一致検出ステップでは、前記ブロック不一致検出手段が、前記入力された数値の一部または全てを前記テーブルの読み出しアドレスとして、記憶した前記グループ毎のシンボルを読み出すことにより前記各グループに対する不一致を検出し、前記一致判定ステップでは、前記一致判定手段が、前記不一致検出手段からの不一致検出の結果に基づいて、前記不一致が検出されたグループに属している前記条件については、前記入力された数値との照合を行わないようにしたものである。
【００２１】
また、本発明にかかるプログラムは、コンピュータを、前述したいずれかの一致判定装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００２２】
本発明によれば、入力された数値と比較する必要のある一致条件数を削減することができる。このため、不一致を検出できない入力データが多い場合でも、入力された数値に対する各条件との一致／不一致の判定処理に要する平均判定時間を短縮することができる。また、本実施の形態によれば、一致判定手段において一致条件を記憶したメモリへのアクセス回数が削減されるため、低消費電力化の効果、これによる装置運用コストの削減の効果も得られる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施の形態にかかる一致判定装置の構成を示すブロック図である。
【図２】一致条件のグループ構成例である。
【図３】不一致検出手段の構成を示すブロック図である。
【図４】不一致検出手段の動作を示す説明図である。
【図５】一致判定手段の構成を示すブロック図である
【図６】不一致検出手段の他の構成を示すブロック図である。
【図７】従来の一致判定装置の構成例である。
【図８】従来の不一致検出手段の構成例である。
【図９】従来の不一致検出手段による条件登録例および判定例である。
【発明を実施するための形態】
【００２４】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる一致判定装置１０について説明する。図１は、第１の実施の形態にかかる一致判定装置の構成を示すブロック図である。
この一致判定装置１０は、全体として、電子回路、あるいはコンピュータからなり、入力された入力データ２１が、予め登録した複数の条件のいずれかまたは全てと一致するか否かを判定し、その一致／不一致を示す判定結果２５を出力する一致判定装置である。
【００２５】
一致判定装置１０には、主な機能部として、不一致検出手段１１と一致判定手段１２とが設けられている。また前提として、入力された入力データ２１と照合する各条件は、１つまたは複数のグループに予め属しているものとする。
【００２６】
不一致検出手段１１は、入力された入力データ２１が、グループの全条件と不一致であることを、グループ毎に検出する機能と、グループ毎の不一致検出の結果を一致判定手段１２に通知する機能とを有している。
一致判定手段１２は、入力データ２２と各条件とを照合して一致または不一致を判定し、得られた判定結果２５を出力する機能と、入力データと不一致検出手段１１で不一致が検出されたグループに属する条件との照合については行わない機能とを有している。
【００２７】
［第１の実施の形態の動作］
次に、本実施の形態にかかる一致判定装置１０の動作について説明する。
本実施の形態では、一致条件として、２００００、３５０００、１９８０００、２４８０００の４種類の数値が登録してあるものとする。つまり、本実施の形態では、上記４種類の数値の中に、入力データ２１と等しい数値があるか否かを判定する。
【００２８】
本実施の形態では、不一致検出手段１１において、一致条件の４桁目以上の数値のみ（２０、３５、１９８、２４８）を用いて不一致検出を行う。本検出手法では、入力データの４桁目以上の数値が（２０、３５、１９８、２４８）以外の数値であった場合、不一致を検出する（不一致検出）。ただし、本検出手法では、２０ｘｘｘ、３５ｘｘｘ、１９８ｘｘｘ、２４８ｘｘｘ  （ｘ：０〜９の任意の値）という数値が入力データとして装置に入力された場合には、不一致を検出できない（不一致未検出）。例えば、２０００１という数値は一致条件として登録されてはいないが、本検出手法では不一致を検出することができない。この場合は、線形探索等を実装した一致判定手段１２で一致／不一致を詳細に判定することになる。
【００２９】
本実施の形態では、さらに、上記４条件を２つのグループ、ここではグループ１、グループ２に分け、不一致検出手段１１でグループ毎に不一致検出を行う。そして、不一致を検出できなかったグループに対してのみ、一致判定手段１２で詳細な一致／不一致の判定を行う。
【００３０】
図２は、一致条件のグループ構成例である。本実施の形態では、例として、図２に示すように、一致条件のグループ１を２００００、３５０００とし、グループ２を１９８０００、２４８０００とする。したがって、１９８１１１という数値が入力データとして入力された場合、不一致検出手段では不一致を検出できない。
この場合、従来の一致判定装置では、一致判定手段で入力データと４つの条件を１つずつ照合して不一致を判定する必要があった。これに対して、本実施の形態では、グループ１に対しては不一致を検出できるため、２００００、３５０００という一致条件と入力データを一致判定手段１２で照合する必要がない。
【００３１】
同様に、例えば、１９８０００という条件と一致する数値が入力データとして入力された場合も、不一致検出手段で不一致を検出できない。
この場合、従来の一致判定装置では、一致判定手段で入力データと４つの条件を１つずつ照合して判定を行う必要があった。本実施の形態では、不一致検出手段１１でグループ１に対する不一致を検出できるため、２００００、３５０００という一致条件と入力データを一致判定手段１２で照合する必要がない。
【００３２】
このように、本実施の形態では、一致判定手段１２で照合を行う一致条件数を削減することで、一致判定手段１２で要する判定時間を短縮し、不一致検出手段１１で不一致を検出できない場合でも平均判定時間を短縮することが可能となる。
【００３３】
本実施の形態にかかる一致判定装置１０において、外部から入力される入力データ２１は、まず、不一致検出手段１１に入力される。不一致検出手段１１では、各グループの全一致条件と入力データとの不一致を検出する。不一致検出手段１１からは、グループ１に対する不一致検出結果２３、グループ２に対する不一致検出結果２４、および入力データ２２とが、一致判定手段１２に出力される。
【００３４】
一致判定手段１２は、入力データ２２が入力されると、その入力データ２２に対して一致／不一致の判定を開始する。一致判定手段１２には、線形探索方式を基本とした一致判定方式が実装されており、入力データ２２と一致条件を１つずつ照合して一致または不一致を判定する。
【００３５】
また、一致判定手段１２は、入力データ２２とともに入力される、グループ１に対する不一致検出結果２３およびグループ２に対する不一致検出結果２４の両方が「不一致検出」であった場合、入力データ２２と一致条件との照合は行わずに不一致の判定結果２５を外部に出力し、判定を終了する。
【００３６】
一方、一致判定手段１２は、グループ１に対する不一致検出結果２３およびグループ２に対する不一致検出結果２４のうち、どちらか一方または両方が「不一致未検出」であった場合、メモリから各グループの一致条件を１つずつ読み出して、入力データ２２と比較を行い、一致または不一致の判定結果２５を外部に出力して判定を終了する。
【００３７】
［不一致検出手段］
次に、図３および図４を参照して、不一致検出手段１１について詳細に説明する。図３は、不一致検出手段の構成を示すブロック図である。図４は、不一致検出手段の動作を示す説明図である。
【００３８】
不一致検出手段１１には、主な機能部として、遅延手段１１Ａとメモリ１１Ｂとが設けられている。
遅延手段１１Ａは、不一致検出結果２３，２４が出力されるまでの動作時間に対応する遅延時間だけ入力データ２１を遅延させて、入力データ２２として出力する機能を有している。
メモリ１１Ｂ（テーブル）は、各アドレスに、各アドレスの数値と等しい条件の一部または全てが有るか否かのシンボルを、グループ毎に記憶する機能を有している。
【００３９】
不一致検出手段１１は、入力データ２１の一部または全てを読み出しアドレスとして、メモリ１１Ｂから、記憶されているグループ毎のシンボルを読み出すことにより、各グループに対する不一致を検出する機能を有している。
【００４０】
本実施の形態において、前述したように、グループ１に属する一致条件である２００００、３５０００と、グループ２に属する一致条件である１９８０００、２４８０００とについて、それぞれ４桁目以上の数値２０、３５、１９８、２４８のみを用いて不一致検出を行うものとする。
メモリ１１Ｂには、これら条件のうちの４桁目以上の数値のアドレスに、当該条件がどのグループに属するのかを示す「有」または「無」のシンボルが格納されている。
【００４１】
具体的には、図４のように、メモリ１１Ｂのアドレス２０、３５（グループ１）に対応する格納場所のうち、グループ１の格納場所には「有」のシンボルを格納するとともに、グループ２に対応する格納場所には「無」を格納する。
また、アドレス１９８、２４８（グループ２）に対応する格納場所のうち、グループ１の格納場所には「無」のシンボルを格納するとともに、グループ２の格納場所には「有」のシンボルを格納する。そして、それ以外のアドレスに対応する格納場所については、グループ１およびグループ２の格納場所の両方に「無」のシンボルを格納する。
【００４２】
本構成において、不一致を検出する方法は以下のとおりである。入力データ２２をメモリ１１Ｂの読み出しアドレスとし、各アドレスに格納されたシンボルを読み出す。そして、メモリ１１Ｂから「無」のシンボルが読み出されたグループについては「不一致検出」と判定し、「有」のグループについては「不一致未検出」と判定する。
【００４３】
不一致検出手段１１に入力される入力データ２１は、メモリ１１Ｂと遅延手段１１Ａの両方に入力される。メモリ１１Ｂには、入力データ２１の４桁目以降の数値が読み出しアドレスとして入力され、メモリ１１Ｂからはグループ１の不一致検出結果２３およびグループ２の不一致検出結果２４が、一致判定手段１２へ出力される。
遅延手段１１Ａに入力された入力データ２１は、メモリ１１Ｂで各グループの不一致検出結果が出力されるまで遅延が加えられた後、入力データ２２として一致判定手段１２へ出力される。
【００４４】
［一致判定手段］
次に、図５を参照して、本実施の形態にかかる一致判定手段１２について詳細に説明する。図５は、一致判定手段の構成を示すブロック図である。
【００４５】
一致判定手段１２には、主な機能部として、メモリ１２Ａと一致条件照合手段１２Ｂとが設けられている。
メモリ１２Ａは、入力データ２２と照合する各条件を示す数値を予め記憶する機能を有している。
【００４６】
一致条件照合手段１２Ｂは、各一致条件が格納されている読み出しアドレス２６を順に指定してメモリ１２Ａから読み出した各一致条件２７と入力データ２２とを照合し、その一致／不一致を判定結果２５として出力する機能と、不一致検出手段１１から通知されたグループ毎の不一致検出結果２３，２４に基づいて、不一致が検出されたグループの条件については、メモリ１２Ａから一致条件の読み出しを行わないことにより、入力データ２２との照合を行わない機能とを有している。
【００４７】
前述したように、入力データ２２と、一致条件である２００００、３５０００、１９８０００、２４８０００との一致検出を行う場合、メモリ１２Ａには、４つの一致条件の数値がそのまま記憶されている。例えば、メモリのアドレス０には２００００が、アドレス１には３５０００が、アドレス２には１９８０００が、アドレス３には２４８０００が記憶される。一致条件照合手段１２Ｂは、予めメモリ１２Ａのどのアドレスに、どのグループの条件が格納されているか把握している。
【００４８】
この場合、メモリに対する一致条件の格納順については、各一致条件が属するグループ番号順に格納してもよい。上記の例によれば、グループ１の一致条件２００００および３５０００は、アドレス０および１に格納し、グループ２の一致条件１９８０００および２４８０００は、アドレス２および３２に格納している。このようなグループ番号順、あるいはグループ番号を用いた計算式で得られる順序で、各一致条件をメモリに格納しておけば、グループ番号から簡単な演算処理で、一致条件の格納アドレスを算出することができる。
【００４９】
不一致検出手段１１からの入力データ２２とグループ１，２の不一致検出結果２３，２４は一致条件照合手段１２Ｂに入力される。一致条件照合手段１２Ｂは、入力データ２２が入力されると、次のような判定動作を開始する。
まず、グループ１，２の両方の不一致検出結果２３，２４が「不一致検出」であった場合、「不一致」の判定結果２５を外部に出力して判定を終了する。一方、グループ１，２の不一致検出結果２３，２４のうち、どちらか一方または両方が「不一致未検出」であった場合、「不一致未検出」を示すグループの各一致条件と入力データ２２とを１つずつ照合し、一致または不一致の判定結果２５を外部に出力して判定を終了する。
【００５０】
［第１の実施の形態の効果］
このように、本実施の形態は、入力された数値（入力データ）がグループの全条件と不一致であることを、グループ毎に検出し、不一致が検出されたグループの条件については、入力された数値との照合を行わないようにしたので、入力された数値と比較する必要のある一致条件数を削減することができる。このため、不一致を検出できない入力データが多い場合でも、入力された数値に対する各条件との一致／不一致の判定処理に要する平均判定時間を短縮することができる。また、本実施の形態によれば、一致判定手段において一致条件を記憶したメモリへのアクセス回数が削減されるため、低消費電力化の効果、これによる装置運用コストの削減の効果も得られる。
【００５１】
また、本実施の形態では、一致条件を４種類とした場合を例として説明したが、これに限定されるものではなく、入力データおよび各一致条件の数値範囲や、一致条件の登録数によらず適用可能であることはいうまでもない。
【００５２】
また、本実施の形態では、一致判定手段１２に、線形検索方式を実装した場合を例として説明したが、構成はこれのみに限るわけではなく、例えば２分探索木方式やＢ木探索を適用してもよい。
【００５３】
また、本実施の形態では、一致条件を２つのグループに分けた場合を例として説明したが、これに限定されるものではなく、３つ以上のグループに分けてもよい。また、各グループの一致条件数が等しい必要はなく、重複していてもよい。
【００５４】
また、本実施の形態では、入力データと条件の数値が完全に一致したときを一致と判定する完全一致方式を例として説明したが、構成はこれにのみに限るわけではなく、最長一致判定方式やＰｒｅｆｉｘ一致判定方式に適用してもよい。
【００５５】
また、本実施の形態では、入力データと一致条件の４桁目以上の数値を使って不一致を検出する場合を例として説明したが、構成はこれのみに限るわけではなく、各グループの一致／不一致が検出できればよい。
【００５６】
また、本実施の形態では、一致判定装置１０から一致または不一致を示す判定結果２５を出力する場合を例として説明したが、構成はこれのみに限るわけではなく、それぞれの一致条件が一致した場合に出力すべき関連データを一致判定手段１２のメモリ１２Ａに予め格納しておき、判定結果２５の代わりに上記関連データを出力する構成でもよい。例えば、関連データを出力ポートとすればルータとしての機能を有し、関連データを出力キューとすれば優先制御としての機能を有することが期待できる。
【００５７】
また、本実施の形態では、各機能部をハードウェアで実現した例について示したが、プログラム言語で記述したソフトウェアで、各機能部のすべてまたは一部を実現してもよいことはいうまでもない。また、このプログラムは、記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００５８】
［第２の実施の形態］
次に、図６を参照して、本発明の第２の実施の形態にかかる一致判定装置１０について説明する。図６は、不一致検出手段の他の構成を示すブロック図である。
第１の実施の形態では、入力データと一致条件の４桁目以上の数値のみを用いて各グループに対する不一致検出を行う場合を例として説明した。本実施の形態では、４桁目以上の数値と、３桁目までの数値の両方を別々に用いて不一致検出を行う場合について説明する。
【００５９】
本実施の形態において、入力データ２１および一致条件のうち、４桁目以上の数値をブロック１と呼び、３桁目までの数値をブロック２と呼ぶ。本実施の形態では、ブロック１とブロック２でそれぞれ独立して実施の形態１と同様の不一致検出を並列して行う。そして、ブロック１とブロック２の結果を集計し、各グループの不一致検出結果を判定する。ここで、不一致検出結果の集計は、ブロック１とブロック２のどちらか一方で不一致が検出された場合、「不一致検出」となる。一方、ブロック１と２の両方で不一致を検出できなかった場合、「不一致未検出」となる。
【００６０】
図６に示すように、本実施の形態にかかる不一致検出手段１１には、主な機能部として、遅延手段１１Ａ、データ分割手段１１Ｃ、不一致検出手段１１Ｄ，１１Ｅ、および集計手段１１Ｆが設けられている。
【００６１】
遅延手段１１Ａは、不一致検出結果２３，２４が出力されるまでの動作時間に対応する遅延時間だけ入力データ２１を遅延させて、入力データ２２として出力する機能を有している。
データ分割手段１１Ｃは、入力データ２１のうち、入力データ２１の桁数またはビット数のより小さい、複数の部分入力データ（部分入力数値）に分割する機能を有している。本実施の形態では、４桁目以上の数値からなるブロック１に対応する部分入力データ３１と、３桁目までの数値からなるブロック２に対応する部分入力データ３２とに分割して出力する。
【００６２】
不一致検出手段１１Ｄは、部分入力データ３１がグループの全条件と不一致であることを、グループ１，２毎に検出し、これらグループ毎の不一致検出結果３３，３４を出力する機能を有している。この不一致検出手段１１Ｄは、前述した第１の実施の形態にかかる不一致検出手段１１と同様に、テーブルを構成するメモリからなる。このメモリには、各条件のうち、当該ブロック１に対応した桁数またはビット数からなるアドレス、ここでは４桁目以上の数値からなるアドレスに、当該条件がどのグループに属するのかを示す「有」または「無」のシンボルが格納されている。
【００６３】
不一致検出手段１１Ｅは、部分入力データ３２がグループの全条件と不一致であることを、グループ１，２毎に検出し、これらグループ毎の不一致検出結果３５，３６を出力する機能を有している。この不一致検出手段１１Ｅのメモリには、各条件のうち、当該ブロック２に対応した桁数またはビット数からなるアドレス、ここでは３桁目までの数値からなるアドレスに、当該条件がどのグループに属するのかを示す「有」または「無」のシンボルが格納されている。
【００６４】
集計手段１１Ｆは、不一致検出手段１１Ｄからの不一致検出結果３３，３４と、不一致検出手段１１Ｅからの不一致検出結果３５，３６とを、グループ毎に集計し、集計したループ１，２毎の不一致検出結果２３，２４を出力する機能とを有している。
なお、本実施の形態にかかる一致判定装置１０のうち、不一致検出手段１１以外の構成については、第１の実施の形態と同様であり、ここでの説明は省略する。
【００６５】
［第２の実施の形態の動作］
次に、本実施の形態にかかる不一致検出手段１１の動作について説明する。
外部から入力される入力データ２１は、データ分割手段１１Ｃと遅延手段１１Ａとに入力される。データ分割手段１１Ｃでは、入力データ２１の４桁目以上の数値からなる部分入力データ３１をブロック１の不一致検出手段１１Ｄへ入力し、３桁目までの数値からなる部分入力データ３２をブロック２の不一致検出手段１１Ｅへ入力する。
【００６６】
各ブロックの不一致検出手段１１Ｄ，１１Ｅには、第１の実施の形態と同様に、メモリを用いた不一致検出方法が実装されている。これら不一致検出手段１１Ｄ，１１Ｅに部分入力データ３１，３２がそれぞれ入力されると、メモリに格納されている各グループ１，２のシンボルを読み出して、部分入力データ３１，３２がグループの全条件と不一致であることをグループ毎に検出し、それぞれのグループ１，２の不一致検出結果３３，３４，３５，３６を、集計手段１１Ｆへ出力する。
【００６７】
集計手段１１Ｆでは、不一致検出手段１１Ｄ，１１Ｅの不一致検出結果３３，３４，３５，３６から各グループ１，２の不一致検出結果を判定し、その検出結果として不一致検出結果２３，２４を一致判定手段１２へ出力する。なお、遅延手段１１Ａに入力された入力データ２１は、集計手段１１Ｆから各グループ１，２の不一致検出結果２３，２４が出力されるまで、入力データを遅延させて出力する。
【００６８】
［第２の実施の形態の効果］
このように、本実施の形態では、入力された数値（入力データ）を、当該桁数またはビット数より小さい複数のブロックからなる部分入力数値に分割し、当該部分入力数値が各グループの全条件と不一致であることを、グループ毎に検出し、ブロック毎の不一致検出の結果を集計して不一致を検出するようにしたので、各グループの不一致検出をブロック単位で並列して行うことができる。
【００６９】
これにより、各グループで不一致を検出する割合（不一致を検出可能な入力データの数／不一致となる全ての入力データの数）が高くなる。したがって、一致判定で入力データと照合を行う一致条件の数をより削減することができ、平均判定時間の短縮、低消費電力化、装置の運用コストの低減をより向上させることができる。
【００７０】
また、本実施の形態では、入力データを２つのブロックに分割した場合を例として説明したが、これに限定されるものではなく、３つ以上のブロックに分割してもよい。また、４桁目以上をブロック１とし、３桁目までをブロック２としたが、構成はこれのみに限るわけではない。１、２、５桁目でブロック１を構成し、３、４、６桁目でブロック２を構成してもよい。また、１〜４桁目でブロック１、３〜６桁目でブロック２を構成するように、一部で重複があってもよい。また数値にハッシュをかけたあとブロックに分割してもよい。
【００７１】
また、本実施の形態では、１０進数で表現した場合の桁数に基づいて各ブロックを構成した場合を例として説明したが、構成はこれのみに限るわけではなく、２進数で表現した場合にはビット数に基づいて各ブロックを構成してもよい。
【００７２】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【００７３】
１０…一致判定装置、１１…不一致検出手段、１１Ａ…遅延手段、１１Ｂ…メモリ（テーブル）、１１Ｃ…データ分割手段、１１Ｄ…不一致検出手段（ブロック１）、１１Ｅ…不一致検出手段（ブロック２）、１１Ｆ…集計手段、１２…一致判定手段、１２Ａ…メモリ、１２Ｂ…一致条件照合手段、２１，２２…入力データ、２３…不一致検出結果（グループ１）、２４…不一致検出結果（グループ２）、２５…判定結果、２６…読み出しアドレス、２７…一致条件、３１…部分入力データ（ブロック１）、３２…部分入力データ（ブロック２）、３３…不一致検出結果（ブロック１−グループ１）、３４…不一致検出結果（ブロック１−グループ２）、３５…不一致検出結果（ブロック２−グループ１）、３６…不一致検出結果（ブロック２−グループ２）。
【図１】
0005584171.tif 000002
【図２】
0005584171.tif 000003
【図３】
0005584171.tif 000004
【図４】
0005584171.tif 000005
【図５】
0005584171.tif 000006
【図６】
0005584171.tif 000007
【図７】
0005584171.tif 000008
【図８】
0005584171.tif 000009
【図９】
0005584171.tif 000010