(57)【特許請求の範囲】
【請求項１】
比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置において、
前記データを構成するN個のビットのそれぞれと、前記キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較手段と、
前記ビット比較手段から出力されたN個の前記比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段に出力する第１の集計手段と、
それぞれの前段から出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計手段と、
前記第Ｍの集計手段から出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、前記データと前記キーパターンとの比較結果として出力する比較結果出力手段と
を備え、
１つのNビットの前記データについて時間的に連続して実行される、前記ビット比較手段、前記第１の集計手段乃至前記第Mの集計手段、および、前記比較結果出力手段のそれぞれの処理を、１単位時間に区分することを目的として、
前記ビット比較手段、および、前記第１の集計手段乃至前記第Mの集計手段は何れも、
Nビットの第１のデータについての自分自身の前記比較結果または前記集計結果を後段に出力した時点から前記１単位時間が経過するまでの期間において、前記第１のデータの次に処理されるNビットの第２のデータについての自分自身の前記比較結果または前記集計結果を保持し、前記期間の終了時点で後段に出力する保持手段を有する
ことを特徴とするデータ比較装置。
【請求項２】
前記ビット比較手段は、
前記データを構成するN個の前記ビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第１のビット保持手段と、
前記キーパターンを構成するN個の前記ビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第２のビット保持手段と、
前記第１のビット保持手段により保持された前記ビットと、前記第２のビット保持手段により保持された前記ビットのNORおよびANDを論理演算し、前記NORおよびANDの論理演算の結果のORを論理演算し、その論理演算の結果を、前記比較結果として出力するビット比較結果出力手段と
を有するＮ個のビットデータ比較手段が、マトリックス状に配置されることで構成される
ことを特徴とする請求項１に記載のデータ比較装置。
【請求項３】
前記ビット比較手段は、さらに、マスク用のNビットのデータであるマスクをさらに入力し、
前記ビット比較手段を構成するN個の前記ビットデータ比較手段のそれぞれは、
前記マスクを構成するN個の前記ビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第３のビット保持手段をさらに有し、
前記ビット比較結果出力手段は、
前記NORおよび前記ANDの論理演算の結果と共に、さらに前記第３のビット保持手段により保持された前記ビットとのORを論理演算し、その論理演算の結果を、前記比較結果として出力する
ことを特徴とする請求項２に記載のデータ比較装置。
【請求項４】
前記ビット比較手段、および、前記第１の集計手段乃至前記第Mの集計手段のそれぞれの保持手段、並びに、前記第１のビット保持手段乃至第３のビット保持手段は、同期型のフリップフロップ回路で構成される
ことを特徴とする請求項３に記載のデータ比較装置。
【請求項５】
前記フリップフロップ回路の処理による遅れ時間のそれぞれ、前記ビット比較結果出力手段の論理演算の処理による遅れ時間、並びに、前記第１の集計手段乃至前記第Mの集計手段および前記比較結果出力手段の論理演算の処理による遅れ時間のうち、最大の遅れ時間を、前記フリップフロップ回路のそれぞれのクロックの周期とする
ことを特徴とする請求項４に記載のデータ比較装置。
【請求項６】
比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置のデータ比較方法において、
前記データを構成するN個のビットのそれぞれと、前記キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較ステップと、
前記ビット比較ステップの処理の結果出力されたN個の前記比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段のステップの処理用に出力する第１の集計ステップと、
それぞれの前段のステップの処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段のステップの処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計ステップと、
前記第Ｍの集計ステップの処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、前記データと前記キーパターンとの比較結果として出力する比較結果出力ステップと
を含み、
１つのNビットの前記データについて時間的に連続して実行される、前記ビット比較ステップ、前記第１の集計ステップ乃至前記第Mの集計ステップ、および、前記比較結果出力ステップのそれぞれの処理を、１単位時間に区分することを目的として、
前記ビット比較ステップ、および、前記第１の集計ステップ乃至前記第Mの集計ステップは何れも、
Nビットの第１のデータについての自分自身の前記比較結果または前記集計結果を後段のステップの処理用として出力した時点から前記１単位時間が経過するまでの期間において、前記第１のデータの次に処理されるNビットの第２のデータについての自分自身の前記比較結果または前記集計結果を保持し、前記期間の終了時点で後段のステップの次の処理用として出力する保持ステップを含む
ことを特徴とするデータ比較方法。
【請求項７】
比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行う比較装置を制御するコンピュータに実行させるプログラムであって、
前記データを構成するN個のビットのそれぞれと、前記キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較ステップと、
前記ビット比較ステップの処理の結果出力されたN個の前記比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段のステップの処理用に出力する第１の集計ステップと、
それぞれの前段のステップの処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段のステップの処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計ステップと、
前記第Ｍの集計ステップの処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、前記データと前記キーパターンとの比較結果として出力する比較結果出力ステップと
を含み、
１つのNビットの前記データについて時間的に連続して実行される、前記ビット比較ステップ、前記第１の集計ステップ乃至前記第Mの集計ステップ、および、前記比較結果出力ステップのそれぞれの処理を、１単位時間に区分することを目的として、
前記ビット比較ステップ、および、前記第１の集計ステップ乃至前記第Mの集計ステップは何れも、
Nビットの第１のデータについての自分自身の前記比較結果または前記集計結果を後段のステップの処理用として出力した時点から前記１単位時間が経過するまでの期間において、前記第１のデータの次に処理されるNビットの第２のデータについての自分自身の前記比較結果または前記集計結果を保持し、前記期間の終了時点で後段のステップの次の処理用として出力する保持ステップを含む
ことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ比較装置および方法、並びにプログラムに関し、特に、２つのデジタルデータ列を高速に比較することができるようにしたデータ比較装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
従来、２つの直列デジタルデータ列が比較される場合、デジタルデータを１ビットずつ順番に比較する回路、例えば、図１に示されるような回路（以下、データ比較装置１と称する）が使用されていた。
【０００３】
図１のデータ比較装置１において、Ｎビットレジスタ１１は、入力したNビットの比較対象のデジタルデータ列（以下、データ列と称する）を保持し、１ビットのデジタルデータ（以下、単にデータと称する）として順番に論理比較回路１３に出力する。
【０００４】
Ｎビットレジスタ１２は、入力した比較の基となるNビットのデジタルデータ列（以下、キーパターン列と称する）を保持し、１ビットのデジタルデータ（以下、キーパターンと称する）として順番に論理比較回路１３に出力する。
【０００５】
論理比較回路１３は、Ｎビットレジスタ１１より入力したデータと、Ｎビットレジスタ１２より入力したキーパターンを１ビットずつ順次比較し、その比較の結果を外部に出力する。
【０００６】
論理比較回路１３において、XOR回路２１は、Nビットレジスタ１１より入力したデータと、Nビットレジスタ１２より入力したキーパターンとのXOR（排他的論理和）を論理演算し、その結果をNAND回路２２およびNAND回路２３に出力する。
【０００７】
NAND回路２２は、Nビットレジスタ１１より入力したデータと、XOR回路２１より入力した論理演算の結果とのNAND（否定論理積）を論理演算し、その結果をNAND回路２４に出力する。
【０００８】
NAND回路２３は、Nビットレジスタ１２より入力したキーパターンと、XOR回路２１より入力した論理演算の結果とのNANDを論理演算し、その結果をNAND回路２６に出力する。
【０００９】
NAND回路２４は、NAND回路２２、NAND回路２５、およびNAND回路２６より入力したそれぞれの論理演算の結果のNANDを論理演算し、その結果をNAND回路２５およびNAND回路２６に出力する。
【００１０】
NAND回路２５は、NAND回路２４およびNAND回路２６より入力したそれぞれの論理演算の結果とのNANDを論理演算し、その結果をNAND回路２４、NAND回路２６、および外部に出力する。
【００１１】
NAND回路２６は、NAND回路２３、NAND回路２４、およびNAND回路２５より入力したそれぞれの論理演算の結果のNANDを論理演算し、その結果をNAND回路２４およびNAND回路２５に出力する。
【００１２】
次に、データ比較装置１の動作について、説明する。
【００１３】
いま、１０２４バイトのデータ列およびキーパタン列が比較されるものとする。
【００１４】
Nビットレジスタ１１は、入力した１０２４バイトのデータ列を保持し、１ビットのデータ（以下、KバイトのLビット目のデータを、データK-Lと記述する。ただし、Kは１乃至１０２４のいずれかの値であり、Lは、１乃至８のいずれかの値である）毎に、順次XOR回路２１およびNAND回路２２に対して出力する。
【００１５】
Nビットレジスタ１２は、入力した１０２４バイトのキーパターン列を保持し、１ビットのキーパターン（以下、KバイトのLビット目のキーパターンを、キーパターンK-Lと記述する）毎に、順次XOR回路２１およびNAND回路２３に対して、Nビットレジスタ１１に同期させて出力する。
【００１６】
この例においては、データ列およびキーパターン列の各バイトとも、最小重みデジット（ＬＳＤ）から順に出力されるものとする。
【００１７】
XOR回路２１に同時に入力されたデータK-LおよびキーパターンK-LのXORが論理演算され、その結果（以下、XOR-K-Lと記述する）がNAND回路２２およびNAND回路２３に出力される。
【００１８】
NAND回路２２において、演算結果XOR-K-LおよびデータK-LのNANDが論理演算され、その結果（以下、NAND22-K-Lと記述する）がNAND回路２４に出力される。
【００１９】
NAND回路２３において、演算結果XOR-K-LおよびキーパターンK-LのNANDが論理演算され、その結果（以下、NAND23-K-Lと記述する）がNAND回路２６に出力される。
【００２０】
NAND回路２４において、演算結果NAND22-K-L、並びにNAND回路２５およびNAND回路２６によるKバイトのL-1番目のそれぞれの論理演算の結果（以下、NAND25-K-(L-1)およびNAND26-K-(L-1)と記述する）のNANDが論理演算され、その結果（以下、NAND24-K-Lと記述する）が順次出力される。
【００２１】
即ち、NAND回路２４は、
「Ｋバイト目のデータ列（データK-1乃至データK-8）  >  Kバイト目のキーパターン列（キーパターンK-1乃至キーパターンK-8）」
であるか否かの判定を１ビット毎に行い、その判定結果を出力する。
【００２２】
NAND回路２６は、演算結果NAND23-K-L、演算結果NAND24-K-(L-1)、および演算結果NAND25-K-(L-1)のNANDを演算し、その結果NAND26-K-Lを出力する。
【００２３】
即ち、NAND回路２６は、
「Ｋバイト目のデータ列（データK-1乃至データK-8）  <  Kバイト目のキーパターン列（キーパターンK-1乃至キーパターンK-8）」
であるか否かの判定を１ビット毎に行い、その判定結果を出力する。
【００２４】
NAND回路２５において、演算結果NAND24-K-Lおよび演算結果NAND26-K-LのNANDが論理演算され、その結果NAND25-K-Lが出力される。なお、演算結果NAND25-K-8（８ビット目の論理演算の結果）が出力された場合、リセットパルスがNAND回路２５に入力され、リセットされる（NAND回路２４およびNAND回路２６もリセットされる）。
【００２５】
即ち、NAND回路２５は、
「Ｋバイト目のデータ列（データK-1乃至データK-8）  =  Kバイト目のキーパターン列（キーパターンK-1乃至キーパターンK-8）」
であるか否かの判定を１ビット毎に行い、その判定結果を出力する。
【００２６】
【発明が解決しようとする課題】
このように、データ比較装置１は、２つのデジタルデータ列を１ビット単位で順番に比較し、その比較の結果を出力していた。
【００２７】
そのため、Nビットの２つのデジタルデータ列がデータ比較装置１により比較される場合、その演算時間（比較の時間）は、論理比較回路１３の演算速度を１単位とすると、N単位の時間となる。
【００２８】
例えば、１０２４バイト（８１９２ビット）の２つのデジタルデータが比較される場合、データ比較装置１の演算時間は、８１９２単位の時間となる。
【００２９】
即ち、従来のデータ比較装置１において、２つの長いデジタルデータが比較される場合、その演算速度は、そのデジタルデータの長さに比例して遅くなるという問題点があった。
【００３０】
本発明は、このような状況に鑑みてなされたものであり、２つのデジタルデータ列を高速に比較することができるようにするものである。
【００３１】
【課題を解決するための手段】
本発明のデータ比較装置は、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置であって、データを構成するN個のビットのそれぞれと、キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較手段と、ビット比較手段から出力されたN個の比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段に出力する第１の集計手段と、それぞれの前段から出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計手段と、第Ｍの集計手段から出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、データとキーパターンとの比較結果として出力する比較結果出力手段とを備え、１つのNビットのデータについて時間的に連続して実行される、ビット比較手段、第１の集計手段乃至前記第Mの集計手段、および、比較結果出力手段のそれぞれの処理を、１単位時間に区分することを目的として、ビット比較手段、および、第１の集計手段乃至第Mの集計手段は何れも、Nビットの第１のデータについての自分自身の比較結果または集計結果を後段に出力した時点から１単位時間が経過するまでの期間において、第１のデータの次に処理されるNビットの第２のデータについての自分自身の比較結果または集計結果を保持し、その期間の終了時点で後段に出力する保持手段を有することを特徴とする。
【００３２】
ビット比較手段は、データを構成するN個のビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第１のビット保持手段と、キーパターンを構成するN個のビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第２のビット保持手段と、第１のビット保持手段により保持されたビットと、第２のビット保持手段により保持されたビットのNORおよびANDを論理演算し、NORおよびANDの論理演算の結果のORを論理演算し、その論理演算の結果を、比較結果として出力するビット比較結果出力手段とを有するＮ個のビットデータ比較手段が、マトリックス状に配置されることで構成されるようにすることができる。
【００３３】
ビット比較手段は、さらに、マスク用のNビットのデータであるマスクをさらに入力し、ビット比較手段を構成するN個の前記ビットデータ比較手段のそれぞれは、マスクを構成するN個のビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第３のビット保持手段をさらに有し、ビット比較結果出力手段は、NORおよびANDの論理演算の結果と共に、さらに第３のビット保持手段により保持されたビットとのORを論理演算し、その論理演算の結果を、比較結果として出力するようにすることができる。
【００３４】
本発明のデータ比較装置では、比較手段による比較の結果を保持し、演算手段に出力する第４の保持手段をさらに設けるようにすることができる。
【００３６】
ビット比較手段、および、第１の集計手段乃至第Mの集計手段のそれぞれの保持手段、並びに、第１のビット保持手段乃至第３のビット保持手段は、同期型のフリップフロップ回路で構成されるようにすることができる。
【００３７】
フリップフロップ回路の処理による遅れ時間のそれぞれ、ビット比較結果出力手段の論理演算の処理による遅れ時間、並びに、前記第１の集計手段乃至前記第Mの集計手段および前記比較結果出力手段の論理演算の処理による遅れ時間のうち、最大の遅れ時間を、前記フリップフロップ回路のそれぞれのクロックの周期とするようにすることができる。
【００３８】
本発明のデータ比較方法は、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置のデータ比較方法であって、データを構成するN個のビットのそれぞれと、キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較ステップと、ビット比較ステップの処理の結果出力されたN個の比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段のステップの処理用に出力する第１の集計ステップと、それぞれの前段のステップの処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段のステップの処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計ステップと、第Ｍの集計ステップの処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、データとキーパターンとの比較結果として出力する比較結果出力ステップとを含み、１つのNビットのデータについて時間的に連続して実行される、ビット比較ステップ、第１の集計ステップ乃至第Mの集計ステップ、および、比較結果出力ステップのそれぞれの処理を、１単位時間に区分することを目的として、ビット比較ステップ、および、第１の集計ステップ乃至第Mの集計ステップは何れも、Nビットの第１のデータについての自分自身の比較結果または集計結果を後段のステップの処理用として出力した時点から１単位時間が経過するまでの期間において、第１のデータの次に処理されるNビットの第２のデータについての自分自身の比較結果または集計結果を保持し、期間の終了時点で後段のステップの次の処理用として出力する保持ステップを含むことを特徴とする。
【００３９】
本発明のプログラムは、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置を制御するコンピュータに実行させるプログラムであって、データを構成するN個のビットのそれぞれと、キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較ステップと、ビット比較ステップの処理の結果出力されたN個の比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段のステップの処理用に出力する第１の集計ステップと、それぞれの前段のステップの処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段のステップの処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計ステップと、第Ｍの集計ステップの処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、データとキーパターンとの比較結果として出力する比較結果出力ステップとを含み、１つのNビットのデータについて時間的に連続して実行される、ビット比較ステップ、第１の集計ステップ乃至第Mの集計ステップ、および、比較結果出力ステップのそれぞれの処理を、１単位時間に区分することを目的として、ビット比較ステップ、および、第１の集計ステップ乃至第Mの集計ステップは何れも、Nビットの第１のデータについての自分自身の比較結果または集計結果を後段のステップの処理用として出力した時点から１単位時間が経過するまでの期間において、第１のデータの次に処理されるNビットの第２のデータについての自分自身の比較結果または集計結果を保持し、期間の終了時点で後段のステップの次の処理用として出力する保持ステップを含むことを特徴とする。
【００４０】
本発明のデータ比較装置および方法、並びにプログラムにおいては、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較が行われる。詳細には、を行うデータ比較装置のデータ比較方法であって、データを構成するN個のビットのそれぞれと、キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較処理と、ビット比較処理の結果出力されたN個の比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段の処理用に出力する第１の集計処理と、それぞれの前段の処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段の処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計処理と、第Ｍの集計処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、データとキーパターンとの比較結果として出力する比較結果出力処理とが、１つのNビットのデータについて時間的に連続して実行される。その際、ビット比較処理、第１の集計処理乃至第Mの集計処理、および、比較結果出力処理のそれぞれの処理には、１単位時間に区分することを目的として、ビット比較処理、および、第１の集計処理乃至第Mの集計処理は何れも、Nビットの第１のデータについての自分自身の比較結果または集計結果を後段の処理用として出力した時点から１単位時間が経過するまでの期間において、第１のデータの次に処理されるNビットの第２のデータについての自分自身の比較結果または集計結果を保持し、その期間の終了時点で後段の次の処理用として出力する保持処理が含まれる。
【００４１】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００４２】
即ち、請求項１に記載のデータ比較装置は、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置（例えば、図２と図３のデータ比較装置４１）であって、前記データを構成するN個のビットのそれぞれと、前記キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較手段（例えば、図２と図３のビットデータ比較回路５１−１−１乃至５１−８−１０２４）と、前記ビット比較手段から出力されたN個の前記比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段に出力する第１の集計手段（例えば、図３の集計回路群６１ａ）と、それぞれの前段から出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計手段（例えば、図３の集計回路群６１ｂ乃至６１ｄ）と、前記第Ｍの集計手段から出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、前記データと前記キーパターンとの比較結果として出力する比較結果出力手段（例えば、図３のＡＮＤ回路５２）とを備え、１つのNビットの前記データについて時間的に連続して実行される、前記ビット比較手段、前記第１の集計手段乃至前記第Mの集計手段、および、前記比較結果出力手段のそれぞれの処理を、１単位時間（例えば、図５のクロックｃａ）に区分することを目的として、前記ビット比較手段、および、前記第１の集計手段乃至前記第Mの集計手段は何れも、Nビットの第１のデータについての自分自身の前記比較結果または前記集計結果を後段に出力した時点から前記１単位時間が経過するまでの期間において、前記第１のデータの次に処理されるNビットの第２のデータについての自分自身の前記比較結果または前記集計結果を保持し、前記期間の終了時点で後段に出力する保持手段（例えば、図３のＦＦ回路７１−１−１乃至７１−１−１０２４、図３のＦＦ回路７１−２−１乃至７１−２−１２８、図３のＦＦ回路７１−３−１乃至７１−３−１６、図３のＦＦ回路７１−４−１および７１−４−２、並びに、図４のＦＦ回路８５−Ｌ−Ｋ）を有することを特徴とする。
請求項２に記載のデータ比較装置の前記ビット比較手段は、前記データを構成するN個の前記ビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第１のビット保持手段（例えば、図４のＦＦ回路８１−Ｌ−Ｋ）と、前記キーパターンを構成するN個の前記ビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第２のビット保持手段（例えば、図４のＦＦ回路８１−Ｌ−Ｋ）と、前記第１のビット保持手段により保持された前記ビットと、前記第２のビット保持手段により保持された前記ビットのNORおよびANDを論理演算し、前記NORおよびANDの論理演算の結果のORを論理演算し、その論理演算の結果を、前記比較結果として出力するビット比較結果出力手段（例えば、図４の論理比較回路８４−Ｌ−Ｋ）とを有するＮ個のビットデータ比較手段（例えば、図２のビットデータ比較回路５１−１−１乃至５１−８−１０２４）が、マトリックス状に配置されることで構成されるようにすることができる。
【００４３】
請求項３に記載のデータ比較装置において、前記ビット比較手段は、さらに、マスク用のNビットのデータであるマスクをさらに入力し、前記ビット比較手段を構成するN個の前記ビットデータ比較手段のそれぞれは、前記マスクを構成するN個の前記ビットのうちの前段から入力されたビットを保持し、順次後段に出力し、保持させる第３のビット保持手段（例えば、図４のＦＦ回路８３−Ｌ−Ｋ）をさらに有し、前記ビット比較結果出力手段は、前記NORおよび前記ANDの論理演算の結果と共に、さらに前記第３のビット保持手段により保持された前記ビットとのORを論理演算し、その論理演算の結果を、前記比較結果として出力するようにすることができる。
【００４４】
請求項６に記載のデータ比較方法は、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較を行うデータ比較装置のデータ比較方法であって、前記データを構成するN個のビットのそれぞれと、前記キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較ステップ（例えば、図５のステップＳ１２の処理）と、前記ビット比較ステップの処理の結果出力されたN個の前記比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段のステップの処理用に出力する第１の集計ステップ（例えば、図５のステップＳ１５の処理）と、それぞれの前段のステップの処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段のステップの処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計ステップ（例えば、図５のステップＳ１７、Ｓ１９、およびＳ２１の処理）と、前記第Ｍの集計ステップの処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、前記データと前記キーパターンとの比較結果として出力する比較結果出力ステップ（例えば、図５のステップＳ２３の処理）とを含み、１つのNビットの前記データについて時間的に連続して実行される、前記ビット比較ステップ、前記第１の集計ステップ乃至前記第Mの集計ステップ、および、前記比較結果出力ステップのそれぞれの処理を、１単位時間に区分することを目的として、前記ビット比較ステップ、および、前記第１の集計ステップ乃至前記第Mの集計ステップは何れも、Nビットの第１のデータについての自分自身の前記比較結果または前記集計結果を後段のステップの処理用として出力した時点から前記１単位時間が経過するまでの期間において、前記第１のデータの次に処理されるNビットの第２のデータについての自分自身の前記比較結果または前記集計結果を保持し、前記期間の終了時点で後段のステップの次の処理用として出力する保持ステップ（例えば、図５のステップＳ１４、Ｓ１６、Ｓ１８、Ｓ２０、およびＳ２２の処理）を含むことを特徴とする。
【００４５】
請求項８に記載のプログラムは、上述した請求項６に記載のデータ比較方法に対応する各ステップを含むプログラムであって、例えば図６のコンピュータにより実行される。
【００４６】
次に、図２および図３を参照して、本発明が適用されるデータ比較装置４１の構成を説明する。
【００４７】
図２および図３は、１０２４バイト長の２つのデジタルデータ列を比較し、その結果を１つのデジタルデータとして出力する本発明のデータ比較装置４１の構成例を表している。
【００４８】
なお、実際にデータ比較装置４１に入出力される（または、データ比較装置４１内で処理される）デジタルデータは、例えば、「１」のレベルの電圧若しくは電流、または「０」のレベルの電圧若しくは電流であるが、以下、単に「１」、または「０」として説明する。
【００４９】
図２において、ビットデータ比較回路51-1-1は、メモリ（図示せず）より入力したデータ列の各バイトの１ビット目のデジタルデータ（以下、データ列のKバイトのLビット目のデータを、データK（bitL）と記述する。なお、以下記述するKの値は、全て、１乃至１０２４のいずれかの値をとり、以下記述するLの値は、全て、１乃至８のいずれかの値をとる）を、１ビット単位で保持し、順次後段のビットデータ比較回路51-1-2に出力する。
【００５０】
ビットデータ比較回路51-1-2は、前段のビットデータ比較回路51-1-1より入力したデータK（bit1）を、１ビット単位で保持し、順次後段のビットデータ比較回路51-1-3（図示せず）に出力する。
【００５１】
ビットデータ比較回路51-1-3乃至ビットデータ比較回路51-1-1024は、同様に、前段の（図中、左側に接続された）ビットデータ比較回路より入力したデータK（bit1）を、１ビット単位で保持し、順次後段の（図中、右側に接続された）ビットデータ比較回路に出力する。
【００５２】
この例においては、各ビットデータ比較回路51-L-Kにデータが入力される場合、データ1024(bitL)を先頭に１ビット毎に順次データK(bitL)が入力され、最後にデータ1(bit1)が入力されるものとする。
【００５３】
即ち、最終的に（ビットデータ比較回路51-1-1が、データ１（bit１）を保持した場合）、各ビットデータ比較回路51-1-Kは、データK（bit1）を保持する。
【００５４】
さらに、ビットデータ比較回路51-1-1乃至ビットデータ比較回路51-1-1024は、データK(bitL)を入力した場合と同様に、前段のビットデータ比較回路より入力したキーパターン列の各バイトの１ビット目のデジタルデータ（以下、キーパターン列のKバイトのLビット目のデジタルデータを、キーパターンK（bitL）と記述する）を、１ビット単位で保持し、順次後段のビットデータ比較回路に出力する。
【００５５】
この例においては、各ビットデータ比較回路51-L-Kにキーパターンが入力される場合、キーパターン1024(bitL)を先頭に１ビット毎に順次キーパターンK(bitL)が入力され、最後にキーパターン1(bit1)が入力されるものとする。
【００５６】
即ち、最終的に（ビットデータ比較回路51-1-1が、キーパターン１（bit１）を保持した場合）、各ビットデータ比較回路51-1-Kは、キーパターンK（bit１）を保持する。
【００５７】
また、ビットデータ比較回路51-1-1乃至ビットデータ比較回路51-1-1024は、データK(bitL)およびキーパターンK(bitL)を入力した場合と同様に、前段のビットデータ比較回路より入力したマスク列の各バイトの１ビット目のデジタルデータ（以下、マスク列のKバイトのLビット目のデジタルデータを、マスクK（bitL）と記述する）を、１ビット単位で保持し、順次後段のビットデータ比較回路に出力する。
【００５８】
なお、ビットデータ比較回路51-L-Kによる比較の結果をマスクするためのデジタルデータ列を、マスク列と称する。
【００５９】
この例においては、各ビットデータ比較回路51-L-Kにマスクが入力される場合、マスク1024(bitL)を先頭に１ビット毎に順次マスクK(bitL)が入力され、最後にマスク1(bit1)が入力されるものとする。
【００６０】
即ち、最終的に（ビットデータ比較回路51-1-1が、マスク１（bit１）を保持した場合）、各ビットデータ比較回路51-1-Kは、マスクK（bit1）を保持する。
【００６１】
その他のビットデータ比較回路51-L-Kも同様に、最終的に（ビットデータ比較回路51-L-1が、データ1(bitL)、キーパターン1(bitL)、およびマスク１（bitL）を保持した場合）、データK（bitL）、キーパターンK（bitL）、およびマスクK（bitL）を保持する。
【００６２】
そして、各ビットデータ比較回路51-L-Kは、マスクK（bitL）を参照して、データK（bitL）およびキーパターンK（bitL）を（他のビットデータ比較回路と同時に）比較し、その比較の結果M-K-Lを図３の集計回路群６１ａに出力する。
【００６３】
図４は、ビットデータ比較回路51-L-Kの構成例を表している。
【００６４】
図４のビットデータ比較回路51-L-Kにおいて、フリップフロップ回路81-L-K（以下、FF回路81-L-Kと記述する）は、所定のクロックで動作する同期型のFF回路、例えばD−FF回路とされる。
【００６５】
なお、以下説明する他のFF回路も、全てD−FF回路とされる。また、これら全てのFF回路は、リセットパルスRによりリセットされ、「０」または、「１」を強制的に出力するものとする（以下、「０」を出力するリセットを「０」リセットと称し、「１」を出力するリセットを「１」リセットと称する）。ただし、以下、特に説明のないFF回路は、リセットパルスRにより「０」リセットされるものとする。
【００６６】
FF回路81-L-Kは、前段（ビットデータ比較回路51-L-（K-1））のFF回路81-L-(K-1)より入力したデータを、所定のクロック（図４の例では、クロックcd）に同期して順次保持し、後段（ビットデータ比較回路51-L-（K+1））のFF回路81-L-(K+1)に出力する。
【００６７】
そして、最終的に（ビットデータ比較回路51-L-1のFF回路81-L-1が、データ１（bitL）を保持した場合）、FF回路81-L-Kは、データK（bitL）を保持し、論理比較回路84-L-Kに出力する。
【００６８】
FF回路82-L-Kは、前段（ビットデータ比較回路51-L-（K-1））のFF回路82-L-(K-1)より入力したキーパターンを、所定のクロック（図４の例では、クロックcp）に同期して順次保持し、後段（ビットデータ比較回路51-L-（K+1））のFF回路82-L-(K+1)に出力する。
【００６９】
そして、最終的に（ビットデータ比較回路51-L-1のFF回路82-L-1が、キーパターン１（bitL）を保持した場合）、FF回路82-L-Kは、キーパターンK（bitL）を保持し、論理比較回路84-L-Kに出力する。
【００７０】
FF回路83-L-Kは、前段（ビットデータ比較回路51-L-（K-1））のFF回路83-L-(K-1)より入力したマスクを、所定のクロック（図４の例では、クロックcm）に同期して順次保持し、後段（ビットデータ比較回路51-L-（K+1））のFF回路83-L-(K+1)に出力する。
【００７１】
そして、最終的に（ビットデータ比較回路51-L-1のFF回路83-L-1が、マスク１（bitL）を保持した場合）、FF回路83-L-Kは、マスクK（bitL）を保持し、論理比較回路84-L-Kに出力する。
【００７２】
なお、FF回路83-L-Kは、リセットパルスRにより、「１」リセットされる。
【００７３】
論理比較回路84-L-Kは、FF回路83-L-Kより入力したマスクK（bitL）を参照しつつ、FF回路81-L-Kより入力したデータK（bitL）およびFF回路82-L-Kより入力したキーパターンK（bitL）を比較し、その比較の結果をFF回路85-L-Kに出力する。
【００７４】
論理比較回路84-L-Kにおいて、NOR回路91-L-KはFF回路81-L-Kより入力したデータK（bitL）およびFF回路82-L-Kより入力したキーパターンK（bitL）のNOR（否定論理和）を論理演算し、その結果をOR回路93-L-Kに出力する。
【００７５】
AND回路92-L-Kは、FF回路81-L-Kより入力したデータK（bitL）およびFF回路82-L-Kより入力したキーパターンK（bitL）のAND（論理積）を論理演算し、その結果をOR回路93-L-Kに出力する。
【００７６】
OR回路93-L-Kは、NOR回路91-L-KおよびAND回路92-L-Kより入力した論理演算の結果、並びにFF回路83-L-Kより入力したマスクK（bitL）のOR（論理和）を論理演算し、その結果をFF回路85-L-Kに出力する。
【００７７】
FF回路85-L-Kは、所定のクロック（図４の例では、クロックca）に同期して、OR回路93-L-Kより入力した論理演算の結果、即ち論理比較回路84-L-Kの比較の結果M-K-Lを保持し、図３の集計回路群６１ａに出力する。
【００７８】
図３において、集計回路群６１ａ内のAND回路71-1-Kは、ビットデータ比較回路51-L-Kより出力された各比較の結果M-K-Lのうち、あらかじめ指定された８ビット分の比較の結果を、それぞれ入力する。
【００７９】
即ち、AND回路71-1-Kは、Kバイト目の比較の結果M-K-1乃至比較の結果M-K-8を入力する。
【００８０】
そして、各AND回路71-1-Kは、入力した比較の結果M-K-1乃至比較の結果M-K-8のANDを論理演算し、その結果をデジタルデータM-Kとして、対応するFF回路72-1-Kに出力する。
【００８１】
FF回路72-1-Kは、所定のクロック（この例では、クロックca）に同期して、AND回路71-1-Kより入力したデジタルデータM-Kを、デジタルデータm-K-Fとして保持し、集計回路群６１bに出力する。
【００８２】
このように、AND回路71-1-Kは、入力した複数のデジタルデータ（この例では、８ビット分のデジタルデータ）のANDを論理演算し、その結果（１つのデジタルデータ）を出力する。
【００８３】
以下、上述したAND回路71-1-Kにおける処理を、「AND回路71-1-Kは、入力した複数（８）ビットのデジタルデータを、１ビットのデジタルデータに集計する」と称する。
【００８４】
また、AND回路71-1-Kには、その出力をラッチするためのFF回路72-1-Kが対応して設けられている。
【００８５】
このことは、他のAND回路71-2-1乃至AND回路71-4-2においても同様である。
【００８６】
即ち、複数のデジタルデータを集計するAND回路71-1-1乃至AND回路71-4-2の各出力端子と、それに対応するFF回路72-1-1乃至FF回路72-4-2の入力端子Dが接続されている。このようなAND回路71-1-1乃至AND回路71-4-2と、それに対応するFF回路72-1-1乃至FF回路72-4-2が接続された回路を、以下、集計回路と称する。
【００８７】
さらに、複数の集計回路から構成される回路を、集計回路群と称する。
【００８８】
即ち、集計回路群６１ａは、各AND回路71-1-KとFF回路72-1-Kが接続された１０２４個の集計回路から構成されている。
【００８９】
これにより、集計回路群６１ａは、上述したように、各ビットデータ比較回路51-L-Kより入力した８１９２（１０２４×８）ビットの比較の結果M-K-Lを、１０２４ビットのデジタルデータm-K-Fに集計し、後段の集計回路群６１ｂに出力する。
【００９０】
集計回路群６１ｂは、各AND回路71-2-P（Pの値は、１乃至１２８のいずれかの値）とFF回路72-2-Pが接続された１２８個の集計回路から構成される。
【００９１】
集計回路群６１ｂにおいて、AND回路71-2-Pは、集計回路群６１ａより入力した８ビットのデジタルデータm-(1+8×（P-1）)-F乃至デジタルデータm-(8×P)-Fを、１ビットのデジタルデータm-(1+8×（P-1）)-(8×P)に集計し、FF回路72-2-Pに出力する。
【００９２】
FF回路72-2-Pは、AND回路71-2-Pより入力した１ビットのデジタルデータm-(1+8×（P-1）)-(8×P)を、m-(1+8×（P-1）)-(P×J)-Fとして保持し、後段の集計回路群６１ｃに出力する。
【００９３】
このように、集計回路群６１ｂは、集計回路群６１ａより入力した１０２４ビットのデータm-K-Fを、１２８ビットのデジタルデータm-1-8-F乃至デジタルデータm-1017-1024-Fに集計し、後段の集計回路群６１ｃに出力する。
【００９４】
集計回路群６１ｃは、各AND回路71-3-R（Rの値は、１乃至１６のいずれかの値）とFF回路72-3-Rが接続された１６個の集計回路から構成される。
【００９５】
これにより、集計回路群６１ｃは、同様に、集計回路群６１bより入力した１２８ビットのデジタルデータm-1-8-F乃至デジタルデータm-1017-1024-Fを、１６ビットのデジタルデータm-1-64-F乃至デジタルデータm-961-1024-Fに集計し、後段の集計回路群６１ｄに出力する。
【００９６】
集計回路群６１ｄは、２個の集計回路、即ち、AND回路71-4-1とFF回路72-4-1が接続された集計回路、およびAND回路71-4-2とFF回路72-4-2が接続された集計回路から構成される。
【００９７】
これにより、集計回路群６１ｄは、同様に、集計回路群６１ｃより入力した１６ビットのデジタルデータm-1-64-F乃至デジタルデータm-961-1024-Fを、２個のデジタルデータm-1-512-F，m-513-1024-Fに集計し、後段のAND回路６２に出力する。
【００９８】
AND回路６２は、集計回路群６１ｄより入力したデジタルデータm-1-512-F，m-513-1024-FのANDを論理演算し、その結果m-1-1024（キーパターン列とデータ列の比較の最終結果）を、EQUALとして出力する。
【００９９】
次に、図５のフローチャートを参照して、データ比較装置４１の動作について説明する。
【０１００】
図５のフローチャートの左側の直線は、時間軸を表している。目盛り１単位は、図４のFF回路81-L-Kのクロックcdの周期（＝図４のFF回路85-L-K、および図３のFF回路72-1-1乃至72-4-2のクロックcaの周期）に対応する。
【０１０１】
即ち、この例においては、クロックcdの周期＝クロックcaの周期とされる。
【０１０２】
また、その時間軸上に表示された(A)乃至（F）は、図３または図４に表示された(A)乃至（F）の位置にある回路が処理を行うタイミングを表している。
【０１０３】
いま、データ比較装置４１内のメモリ（図示せず）に、あらかじめ１０２４バイトのデータ列、キーパターン列、およびマスク列が記憶されているものとする。
【０１０４】
はじめに、ステップＳ１１において、データ比較装置４１は、プリセット処理を行う。
【０１０５】
この例においては、以下の通りの処理が、プリセット処理として行われる。即ち、
（１）図４の各FF回路83-L-Kは、「１」リセットされる。
（２）図４の各FF回路85-L-Kは、「０」リセットされる。
（３）図４の各FF回路82-L-Kは、キーパターンを順次入力し、キーパターンK（bitL）を保持する。
（４）FF回路83-L-Kは、マスクを順次入力し、マスクK（bitL）を保持する。
【０１０６】
ステップＳ１１において、プリセット処理が終了した場合、ステップＳ１２において、図４のFF回路81-L-Kは、データを順次入力し、後段に出力する動作を繰り返し、データK（bitL）を保持する。
【０１０７】
即ち、ビットデータ比較回路51-L-1のFF回路81-L-1は、クロックに同期して、メモリよりデータ1024（bitL)を入力すると、それを保持し、次のクロックのタイミングで、保持したデータ1024（bitL)を、後段のFF回路81-L-2に出力する。また、FF回路81-L-1は、データ1024(bitL)を後段に出力するタイミングで、次のデータ1023（bitL）を入力する。
【０１０８】
なお、以下、上述した一連の動作を、「FF回路は、入力したデジタルデータを後段のFF回路にシフトする」と称する。
【０１０９】
以上の動作が繰り返されることにより、1024個のクロックが発生されたタイミングにおいて、FF回路81-L-1がデータ１（bitL）を保持し、各FF回路81-L-Kは、データK（bitL）を各々保持する（図４の（A））。
【０１１０】
ステップＳ１３において、図４の各論理比較回路84-L-Kは、FF回路83-L-Kにより保持されたマスクK(bitL)を参考にしつつ、FF回路81-L-Kにより保持されたデータK（bitL）と、FF回路82-L-Kにより保持されたキーパターンK（bitL）を比較し、その比較の結果を図４のFF回路85-L-Kに出力する。
【０１１１】
即ち、AND回路92-L-Kは、FF回路81-L-Kにより保持されたデータK（bitL）と、FF回路82-L-Kにより保持されたキーパターンK（bitL）がいずれも「１」のとき「１」を出力し、その他のとき「０」を出力する。
【０１１２】
NOR回路91-L-Kは、FF回路81-L-Kにより保持されたデータK（bitL）と、FF回路82-L-Kにより保持されたキーパターンK（bitL）がいずれも「０」のとき「１」を出力し、その他のとき「０」を出力する。
【０１１３】
従って、OR回路93-L-Kは、マスクK（bitL）が「０」であれば、データK（bitL）とキーパターンK（bitL）が一致しているとき「１」を出力し、一致していないとき「０」を出力する。
【０１１４】
これに対して、マスクK(bitL)が「１」である場合、OR回路93-L-Kは必ず「１」を出力する。即ち、マスクK(bitL)が「１」の場合、データK(bitL)とキーパターンK(bitL)の比較の結果はマスクされ、無視される（常に「一致している」として扱われる）。  従って、ユーザは必要に応じてこのマスクビットを設定する。
【０１１５】
ステップＳ１４において、クロックcaに同期して動作する各FF回路85-L-Kは、OR回路93-L-Kより入力した比較の結果を、データM-K-Lとして保持し、図３の集計回路群６１ａのAND回路71-1-Kに出力する（図４の（Ｂ））。
【０１１６】
ステップＳ１５において、集計回路群６１ａのAND回路71-1-Kは、各ビットデータ比較回路51-L-Kより入力した８１９２（１０２４×８）ビットの比較の結果M-K-Lを、１０２４ビットのデジタルデータm-K-Fに集計する。
【０１１７】
例えば、集計回路群６１ａのAND回路71-1-Kに入力された８ビット分の比較の結果M-K-1乃至比較の結果M-K-8が全て「１」である場合、集計されたデジタルデータm-K-Fは「１」となる。
【０１１８】
一方、集計回路群６１ａのAND回路71-1-Kに入力された８ビット分の比較の結果M-K-1乃至比較の結果M-K-8のうち少なくとも１つが「０」である場合、集計されたデジタルデータm-K-Fは「０」となる。
【０１１９】
ステップＳ１６において、集計回路群６１ａのFF回路72-1-Kは、集計したデジタルデータm-K-Fを保持し、後段の集計回路群６１ｂのAND回路71-2-Pに出力する（図３の（C））。
【０１２０】
ステップＳ１７において、集計回路群６１ｂのAND回路71-2-Pは、集計回路群６１ａのFF回路72-1-Kより入力した１０２４ビットのデジタルデータm-K-Fを、１２８ビットのデジタルデータm-1-8-F乃至デジタルデータm-1017-1024-Fに集計する。
【０１２１】
ステップＳ１８において、集計回路群６１ｂのFF回路72-2-Pは、集計したデジタルデータm-1-8-F乃至デジタルデータm-1017-1024-Fを保持し、後段の集計回路群６１ｃのAND回路71-3-Rに出力する（図３の（D））。
【０１２２】
ステップＳ１９において、集計回路群６１ｃのAND回路71-3-Rは、集計回路群６１bのFF回路72-2-Pより入力した１２８ビットのデジタルデータm-1-8-F乃至デジタルデータm-1017-1024-Fを、１６ビットのデジタルデータm-1-64-F乃至デジタルデータm-961-1024-Fに集計する。
【０１２３】
ステップＳ２０において、集計回路群６１cのFF回路72-3-Rは、集計したデジタルデータm-1-64-F乃至デジタルデータm-961-1024-Fを保持し、後段の集計回路６１ｄのAND回路71-4-1，71-4-2に出力する（図３の（E））。
【０１２４】
ステップＳ２１において、集計回路群６１dのAND回路71-4-1，71-4-2は、集計回路群６１ｃのFF回路72-3-Rより入力した１６ビットのデジタルデータm-1-64-F乃至デジタルデータm-961-1024-Fを、２ビットのデジタルデータm-1-512-F，m-513-1024-Fに集計する。
【０１２５】
ステップＳ２２において、集計回路群６１ｄのFF回路72-4-1，72-4-2は、集計したデジタルデータm-1-512-F，m-513-1024-Fを保持し、AND回路６２に出力する（図３の（F））。
【０１２６】
ステップＳ２３において、AND回路６２は、集計回路群６１dより入力したデジタルデータm-1-512-F，m-513-1024-FのANDを論理演算し、その結果（デジタルデータm-1-1024）を、EQUALとして出力する。
【０１２７】
即ち、出力されたEQUALが「１」の場合、比較されたデータ列とキーパターン列は一致していると判定される。
【０１２８】
一方、出力されたEQUALが「０」の場合、比較されたデータ列とキーパターン列は一致していないと判定される。
【０１２９】
上述したように、図２および図３のデータ比較装置４１は、１０２４バイト長のキーパターン列の各キーパターンおよびマスク列の各マスクを１ビット単位で保持した後、データ列の各データを１ビット単位で保持することができる。さらに、その後クロックcaの６周期の時間以内に、データ比較装置４１は、保持した８１９２（１０２４×８）ビットのキーパターンおよびデータをそれぞれ１ビットずつ同時に比較し、比較の結果を１つのデジタルデータに集計することができる。
【０１３０】
なお、この例においては、図４の論理比較回路84-L-Kの処理による遅れ時間、図３のAND回路71-1-1乃至71-4-2の処理による遅れ時間、並びに図４のFF回路81-L-K、FF回路85-L-K、および図３のFF回路72-1-1乃至72-4-2の処理による各遅れ時間の中で最大の時間が、クロックcdおよびクロックcaの周期とされる。
【０１３１】
通常、それらの遅れ時間のうち最大となるのは、論理比較回路84-L-Kの処理の遅れ時間であり、その遅れ時間がクロックcdおよびクロックcaの周期となることが多い。
【０１３２】
即ち、論理比較回路84-L-Kの処理の遅れ時間を１単位の時間とした場合、図２および図３のデータ比較装置４１は、１０２４バイト（＝８１９２ビット）の２つのデジタルデータを、６単位の時間（データを取り込む時間を加算すると、１０２９単位の時間）で、比較（演算）することができる。
【０１３３】
一方、上述したように、図１のデータ比較装置１は、論理比較回路１３の演算速度（遅れ時間）を１単位とした場合、１０２４バイト（＝８１９２ビット）の２つのデジタルデータを、８１９２単位の時間で比較（演算）していた。
【０１３４】
このように、本発明が適用されるデータ比較装置４１は、従来のデータ比較装置１に比べて、２つのデジタルデータ列を高速に比較することができる。
【０１３５】
さらに、図４の論理比較回路84-L-Kは、NOR回路91-L-K、AND回路92-L-K、およびOR回路93-L-Kの３ゲート回路のみで構成されているため、図１の論理比較回路１３に比較して、その遅れ時間（演算時間）を短くすることができる。
【０１３６】
これにより、本発明が適用されるデータ比較装置４１は、その演算（比較）をより早くすることができる。
【０１３７】
なお、データ比較装置４１において、１０２４バイト長のデジタルデータ列が比較されたが、比較されるデジタルデータ列の長さは、この値に限定されるものではない。
【０１３８】
例えば、データ比較装置４１を適用して、キーパターン１（bitL）乃至キーパターンN（Nは、１０２４バイト未満）(bitL)のみを比較させたい場合、データ１(bitL)乃至データＮ（bitL）、キーパターン１(bitL)乃至キーパターンＮ（bitL）、およびマスク１(bitL)乃至マスクＮ（bitL）のみを入力させればよい。
【０１３９】
これにより、マスクを保持するFF回路83-L-(N+1)乃至FF回路83-L-1024（図示せず）は、上述した図５のステップＳ１１の処理（プリセット（１）の処理）において「１」リセットされているため、「１」を保持したままとなる。即ち、マスクN+1(bitL)乃至マスク1024(bitL)は「１」とみなされる。
【０１４０】
その結果、キーパターンN+1（bitL）乃至キーパターン1024(bitL)およびそれに対応するデータN+1(bitL)乃至データ1024（bitL）の比較の結果は「１」が出力される（マスクされる）。
【０１４１】
このようにして、データ比較装置４１は、データ１(bitL)乃至データＮ（bitL）と、キーパターン１(bitL)乃至キーパターンＮ（bitL）を比較することができる。
【０１４２】
さらに、キーパターン列が１０２４バイトを越える場合の比較は、下記（１）または（２）により実現される。
【０１４３】
（１）データ比較装置４１に、ビットデータ比較回路を追加させる（「キーパターン列のバイト数×８」と同数になるまで追加させる）。
（２）キーパターン列、マスク列、およびデータ列を１０２４バイト毎に分割させ、上述した図５のステップＳ１１乃至Ｓ２３の処理を繰り返えさせる。
【０１４４】
この場合（（２）の場合）、１０２４バイト毎に分割されたキーパターン列（キーパターンU+1乃至キーパターンU+1024（Uの値は、０または、任意の1024の倍数の値のいずれかを取る））の比較の処理が終了された時点（ステップＳ２３の処理が終了された時点）で、EQUALとして「１」が出力されたとき、データ比較装置４１は、続くキーパターン列（キーパターンU+1025乃至U+2048）の比較の処理（ステップＳ１１乃至Ｓ２３の処理）を行う。
【０１４５】
このとき、ステップＳ１１の処理、即ちプリセット処理において、データ比較装置４１は、上述したプリセット処理以外に、図４のFF回路81-L-K，82-L-K、および図３のFF回路72-1-1乃至FF回路72-4-2を「０」リセットする。
【０１４６】
そして、ステップＳ１２の処理において、図２のビットデータ比較回路51-L-1のFF回路81-L-1は、データU+2048（bitL）よりデータの入力を開始する。即ち、図４のFF回路81-L-Kは、データを順次入力し、後段にシフトする（出力する）動作を繰り返し、データV（bitL）を保持する（ただし、Vの値は、上述したU+1025乃至U+2048のうちいずれかの値をとる）。その後、上述したように、ステップＳ１３乃至Ｓ２３の処理が行われる。
【０１４７】
一方、そのキーパターン列（キーパターンU+1乃至キーパターンU+1024）の比較の処理が終了された時点で、EQUALとして「０」が出力されたとき、データ比較装置４１は、そこで全処理を終了し（続くキーパターン列の処理は行わずに）、「キーパターン列とデータ列は一致しない」旨の出力をする。
【０１４８】
また、図示はしないが、FF回路のクロックの周期の時間をカウントするカウンタ、例えば、図４のFF回路85-L-K、および図３のFF回路72-1-1乃至FF回路72-4-2のクロックcaの周期の時間を１カウントとしてカウントするカウンタ（以下、カウンタcaと称する）、並びに図４のFF回路81-L-Kのクロックcdの周期の時間を１カウントとしてカウントするカウンタ（以下、カウンタcdと称する）などが、データ比較装置４１に設けられてもよい。
【０１４９】
この場合、図５のステップＳ１１の処理において、カウンタcaおよびカウンタcdのカウント値は「０」にリセットされる。
【０１５０】
ステップＳ１２の処理において、図２のビットデータ比較回路51-L-1のFF回路81-L-1が、データ１０２４（bitL）をメモリより入力したとき、カウンタcdはカウントを開始する。
【０１５１】
カウンタcdが1024の値をカウントした時点で、上述したように、FF回路81-L-1がデータ１（bitL）を保持し、各FF回路81-L-Kは、データK（bitL）を各々保持する（図４の（A））。このとき、カウンタcaは、カウンタcdに同期して、カウントを開始する。
【０１５２】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、例えば、データ比較装置１１１は、図６に示されるようなパーソナルコンピュータにより構成される。
【０１５３】
図６において、CPU（Central  Processing  Unit）１２１は、ROM（Read  Only  Memory）１２２に記憶されているプログラム、または記憶部１２８からRAM（Random  Access  Memory）１２３にロードされたプログラムに従って各種の処理を実行する。RAM１２３にはまた、CPU１２１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１５４】
CPU１２１、ROM１２２、およびRAM１２３は、バス１２４を介して相互に接続されている。このバス１２４にはまた、入出力インタフェース１２５も接続されている。
【０１５５】
入出力インタフェース１２５には、キーボード、マウスなどよりなる入力部１２６、CRT、LCDなどよりなるディスプレイ、並びにスピーカなどよりなる出力部１２７、ハードディスクなどより構成される記憶部１２８、モデム、ターミナルアダプタなどより構成される通信部１２９が接続されている。通信部１２９は、インターネットを含むネットワークを介しての通信処理を行う。
【０１５６】
入出力インタフェース１２５にはまた、必要に応じてドライブ１３０が接続され、磁気ディスク１４１、光ディスク１４２、光磁気ディスク１４３、或いは半導体メモリ１４４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部１２８にインストールされる。
【０１５７】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１５８】
この記録媒体は、図６に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１４１（フロッピディスクを含む）、光ディスク１４２（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク１４３（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリ１４４などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM１２２や、記憶部１２８に含まれるハードディスクなどで構成される。
【０１５９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１６０】
【発明の効果】
以上のごとく、本発明によれば、比較対象のN（Nは１以上の任意の整数値）ビットのデータと、比較の基となるNビットのデータであるキーパターンとの比較が行われる。詳細には、を行うデータ比較装置のデータ比較方法であって、データを構成するN個のビットのそれぞれと、キーパターンを構成するN個のビットのそれぞれとを、ビット単位で同時に比較し、N個の比較結果を出力するビット比較処理と、ビット比較処理の結果出力されたN個の比較結果を、α（αは２以上の任意の整数値）個ずつANDの論理演算を行うこととで集計し、Ｎ／α個の集計結果を後段の処理用に出力する第１の集計処理と、それぞれの前段の処理の結果出力されたβ（βは２以上Ｎ／α以下であって、前段に応じて異なる値）個の集計結果を、γ（γは２以上の任意の整数値であって、個々に予め設定された値）個ずつANDの論理演算を行うこととで集計し、β／γ個の集計結果をそれぞれの後段の処理用に出力する第２乃至第Ｍ（Ｍは２以上の整数値）の集計処理と、第Ｍの集計処理の結果出力されたβ／γ個の集計結果のANDを論理演算し、その論理演算の結果を、データとキーパターンとの比較結果として出力する比較結果出力処理とが、１つのNビットのデータについて時間的に連続して実行される。その際、ビット比較処理、第１の集計処理乃至第Mの集計処理、および、比較結果出力処理のそれぞれの処理には、１単位時間に区分することを目的として、ビット比較処理、および、第１の集計処理乃至第Mの集計処理は何れも、Nビットの第１のデータについての自分自身の比較結果または集計結果を後段の処理用として出力した時点から１単位時間が経過するまでの期間において、第１のデータの次に処理されるNビットの第２のデータについての自分自身の比較結果または集計結果を保持し、その期間の終了時点で後段の次の処理用として出力する保持処理が含まれる。これにより、２つのデジタルデータ列を高速に比較することができる。
【図面の簡単な説明】
【図１】従来のデータ比較装置の構成例を示すブロック図である。
【図２】本発明が適用されるデータ比較装置の構成例を示すブロック図である。
【図３】本発明が適用されるデータ比較装置の構成例を示すブロック図である。
【図４】本発明が適用されるデータ比較装置のビットデータ比較回路の構成例を示すブロック図である。
【図５】図２と図３のデータ比較装置の処理を説明するフローチャートである。
【図６】本発明が適用されるデータ比較装置の構成例を示すブロック図である。
【符号の説明】
４１，１１１  データ比較装置，
５１−１−１乃至５１−８−１０２４，および５１−Ｌ−Ｋ  ビットデータ比較回路，
６１ａ乃至６１ｄ  集計回路群，
６２，７１−１−１乃至７１−４−２，および９２−Ｌ−Ｋ  AND回路，
７２−１−１乃至７２−４−２，８１−Ｌ−（Ｋ−１）乃至８３−Ｌ−（Ｋ＋１），および８５−Ｌ−Ｋ  FF回路，
８４−Ｌ−Ｋ  論理比較回路，
９１−Ｌ−Ｋ  NOR回路，
９３−Ｌ−Ｋ  OR回路
【図１】
0003675743.tif 000002
【図２】
0003675743.tif 000003
【図３】
0003675743.tif 000004
【図４】
0003675743.tif 000005
【図５】
0003675743.tif 000006
【図６】
0003675743.tif 000007