(58)【調査した分野】(Int.Cl.,DB名)
被検索データを送信する送信部と、前記被検索データと予め用意されているデータとを照合するデータ照合部と、送信された前記被検索データをシリアル転送するデータ転送路とを含む情報検索システムにおいて、
前記データ照合部を前記データ転送路の始点及び終点を含む転送路内の任意の場所に設け、
前記データ照合部は、転送中のシリアルデータのうち定められた区域のNビット分のデータを転送タイミングに合わせて取り込むデータ取り込み部と、取り込んだNビットの被検索データの各ビットと照合用のNビットデータの対応する各ビットとを並列に比較する並列比較部と、前記並列比較部の各出力を判定する判定部とを有し、
前記取り込み部は、転送されるシリアルデータが1ビットシフトされる毎にシフト後のNビットをまとめて取り込むことを特徴とする情報検索システム。
【背景技術】
【0002】
通常、ネットワークを介して転送される様々な情報(例えば、文字、数値、記号、画像、音声、等々の各種データ)に対して、その情報を受け取る受信側の多くは、受け取った情報を認識、識別あるいは判定するための情報検索機能を有している。また、この情報検索においては、受信した情報(受信データ)と予め登録(もしくは、保存)されている情報(参照データ)との照合処理を行うことが一般的である。
【0003】
例えば、
図2に示すような人物判定システムにおいては、判定対象となる人物1を判定場所に設置したカメラ2で撮影し、撮影した画像(データD)をネットワーク3を介して遠隔地にある認証センター4に転送して人物の特定を行うための照合処理が必要である。認証センター4は、受信したデータDを特定するために、情報検索機能を用いて登録データベースサーバ(図示せず)に予め登録(保管)されているデータと受信したデータDとの照合処理を行い、一致/不一致を示す判定結果Xを判定場所に返送する。
【0004】
ここで、認証センターにおける判定処理は、
図3の機能ブロック図、及び
図4の処理フロー図に示されるようなソフトウェア処理で行われるのが一般的である。具体的には、被照合データDは、シリアルデータとして直列ビット形式でネットワーク3から転送されてくる。一方、登録データベース(DB)7からは、判定用の登録データPが同じくシリアルデータとして直列ビット形式で読み出される。これら直列ビット形式で送られてきた被照合データDと登録データPは、シリアルデータ形式で受信バッファに格納される(S1、S2)。その後、両データは、シリアル−パラレル変換処理(S/P変換処理6、8)を施されて(S3、S4)、Nビットの処理単位毎に並列ビットデータに変換される。しかる後、並列ビットデータに変換された被照合データDと登録データPの各ビット同士が、並列に比較処理9される(S5)。比較結果は、一致/不一致を示す判定結果Xとして出力される。なお、
図3の破線ブロック5に示す機能は、
図4の破線ブロック5で示される処理ステップに対応している。
【0005】
従来、かかるデータ照合処理は、汎用のハードウェアを使ってソフトウェアで処理されるのが一般的である。しかしながら、ソフトウェア処理は、ハードウェア処理に比べて処理速度が遅いというデメリットがあることが知られている。特に、照合すべきデータの量や比較されるべき登録データの量が多い場合には、この時間的課題は致命的な欠点となる。
【0006】
この課題を解決すべく、特許文献1には、膨大な量のデータを検索する際、ソフトウェア処理に替えてハードウェア回路でデータのパターン認識(照合)を行う技術が記載されている(段落番号0004及び0016参照)。ここに開示されたパターン照合装置は、受信したシリアル入力2進データをNビットのパラレルデータに変換するシリアル―パラレル変換回路(デマルチプレクサ)と、変換されたNビットの2進データ同士を比較するパラレルコンパレータとをハードウェア回路で構成され、転送されてきたビットパターンを照合する。また、これらの回路は1個の電子装置として、ASICなどの単一チップ(専用LSIチップ)で実現できることも開示されている(段落番号0035)。
【0007】
しかしながら、上述した特許文献1記載のパターン照合装置には、次のような欠点がある。
【0008】
第1の欠点は、シリアル(直列ビット列)形式で送られてくる受信データの転送ビットレート(速度)と照合を行うための処理ビットレートが異なるため、照合処理に時間を要するという問題である。具体的には、照合処理のビットレートは、入力データのビットレートの1/Nとなり、転送速度よりも照合処理の速度がN倍遅くなってしまう。これは、照合処理にパラレルコンパレータを使っているが故に、シリアル受信した入力データをシリアル−パラレル変換回路(デマルチプレクサ)を使ってNビット(照合処理の単位)のパラレルビットに変換する必要があるからと云える。そして、かかる照合速度の低下は、データ受信−データ変換−データ照合−判定という検索に必要な一連の処理を全てシーケンシャルに実行することを前提としていることに原因があると考えられる。
【0009】
第2の欠点は、パラレルコンパレータに起因する欠点である。特許文献1では、一方に入力データの各ビットが、他方に参照データの対応するビットが入力される2入力EXOR(排他的論理和)ゲート回路を複数個並列に並べた構造のコンパレータが用いられている。しかしながら、このような構造では、照合すべきデータのビット数は、並列に並べられた2入力EXORゲートの数に固定されてしまうため、可変長データの照合判定ができないという欠点がある。
【0010】
これに対して、特許文献2には、シリアルコンパレータ(直列比較)を用いることで可変長のデータ比較を可能にした技術が提案されている。しかしながら、特許文献2に記載された技術は、2つのデータの大小関係を判定するためのハードウェア回路であって、両データの一致/不一致を比較判定するものではない。従って、特許文献2に開示されたシリアルコンパレータを特許文献1記載のパラレルコンパレータの代わりに使用したとしても、一致/不一致の検出が必要なデータ照合装置には適合しないという問題が生じる。
【発明の概要】
【発明が解決しようとする課題】
【0012】
以上のように、情報検索システムに必要なデータ照合をソフトウェアで実現する従来の方式は、処理時間に課題があり、特に、ビッグデータ検索のように大量のデータを高速で照合しなければならない検索システムには不向きである。
【0013】
一方、ハードウェア回路でデータ照合・判定を行う従来の技術も、検索データの転送−受信−照合−判定という一連の処理の流れがシーケンシャルに実行されるように回路設計されているため、照合処理に時間を要したり、可変長データの照合に支障を来したり、あるいは、照合条件に制限を与えるといった課題を抱えている。
【0014】
本発明の目的は、上記の課題を解決し高速検索に適した情報検索システムとそれに用いられる新規なデータ照合装置を提供することである。
【0015】
本発明の他の目的は、照合されるべきデータの転送処理と照合処理とを効率化した情報検索システム及びそれに用いられるハードウェアで構成されたデータ照合装置を提供することである。
【0016】
本発明の更なる目的は、一致/不一致の判定だけでなく類似性の判定が可能な情報検索システムとデータ照合装置を提供することである。
【0017】
本発明の更なる他の目的は、可変ビット長の検索にも適合可能な汎用性のある情報検索システムとこれに用いられるデータ照合装置を提供することである。
【課題を解決するための手段】
【0018】
上記目的を達成するために、本発明は、データの転送中に照合を行うと云う新規な発想のもと、従来のパラレル照合処理のメカニズムをさらに改良・発展させて、データの転送時間内に実質的な照合処理が実行できるようなリアルタイム検索技術を提供するものである。
【0019】
故に、本発明の請求項1に記載した情報検索システムは、被検索データを送信する送信部と、前記被検索データと予め用意されているデータとを照合するデータ照合部と、送信された前記被検索データをシリアル転送するデータ転送路とを含む情報検索システムにおいて、前記データ照合部を前記データ転送路の始点及び終点を含む転送路内の任意の場所に設けたことを特徴としている。
【0020】
また、請求項2記載の情報検索システムでは、前記データ照合部が、転送中のシリアルデータのうち定められた区域のNビット分のデータを転送タイミングに合わせて取り込むデータ取り込み部と、取り込んだNビットの被検索データの各ビットと照合用のNビットデータの対応する各ビットとを並列に比較する並列比較部と、前記並列比較部の各出力を判定する判定部とを有することを特徴とする。
【0021】
さらに、請求項3記載の情報検索システムは、転送されるシリアルデータが1ビットシフトされる毎にシフト後のNビットをまとめて前記取り込み部に取り込むようにしたことを特徴とするものである。
【0022】
請求項4記載の情報検索システムでは、転送されるシリアルデータが1ビットシフトされる毎に、前記並列比較部から出力されるNビットの出力を総合的に判定するようにしたことを特徴とする。
【0023】
さらに、請求項5記載の情報検索システムでは、前記データ照合部を、前記データ転送路を形成する転送ケーブルもしくは中継機(HUB)、または、前記照合用データが格納されているハードディスクやメモリボード上に設けたことを特徴とするものである。
【0024】
請求項6記載の情報検索システムは、請求項1記載の情報検索システムにおいて、前記データ照合部を前記データ転送路に対して直列もしくは並列に複数設けたことを特徴とする。
【0025】
請求項7記載の本発明は、情報検索システムに用いられるデータ照合装置に関し、被検索データ生成部から転送される被検索データと予め保存されている照合用データとを比較照合するデータ照合装置であって、転送される前記被検索データのNビットをシリアルに取り込むシフトレジスタと、前記照合用データのNビットが記憶されるデータレジスタと、前記シフトレジスタの各ビットと前記データレジスタの対応するビットとを入力として両ビットの一致/不一致を各ビット毎に比較するために並列に設けられたN個の比較回路と、直列に接続されたn個(n≦N)の判定ゲート群を有する論理判定回路とを有することを特徴としている。前記論理判定回路の1段目の判定ゲートは、1段目の比較回路の出力と所定の論理値または1段目の比較回路の出力と2段目の比較回路の出力を論理演算し、前記論理判定回路の2段目の判定ゲートが、前記1段目の判定ゲートの論理演算結果と、次段の比較回路の出力とを論理演算し、以下同様にn段目の判定ゲートまで論理演算を行うように構成されていることを特徴とする。
【0026】
請求項8記載のデータ照合装置は、請求項7記載のデータ照合装置において、前記シフトレジスタが1ビットシフトする間に、前記論理判定回路がN個の比較出力の論理判定をシリアルに行うようにしたことを特徴とする。
【0027】
請求項9記載のデータ照合装置は、被検索データ生成部から転送される被検索データと予め保存されている照合用データとを比較照合するデータ照合装置であって、転送される前記被検索データのNビットをシリアルに取り込むシフトレジスタと、前記照合用データのNビットが記憶されるデータレジスタと、前記シフトレジスタの各ビットと前記データレジスタの対応するビットとを入力として両ビットの一致/不一致を比較するために並列に設けられたN個の比較回路と、前記N個の比較回路の一致出力、もしくは不一致出力の総数を計数するカウンタ回路と、を含むことを特徴とするものである。
【0028】
さらに、請求項10記載のデータ照合装置は、請求項9記載の前記カウンタ回路が、前記N個の比較回路の各出力に対して、連続する一致出力の数、もしくは連続する不一致出力の数を計数する累算機能を有することを特徴とするものである。
【発明の効果】
【0029】
本発明は、ネットワーク等の通信手段を介して転送されるデータの検索に必要な転送処理−受信処理−照合処理−判定処理の各処理を従来のようにシーケンシャルに実行するのではなく、データの照合と判定の両処理をデータ転送中に実行するという新規な発想で、特に、転送中のデータを取り込み、取り込んだデータをハードウェア回路を用いて照合及び判定を行うことで従来にない情報検索の高速化を図ったものである。より具体的には、上述した各請求項に記載された本発明の特異な構成により以下のような効果を奏することができる。
【0030】
請求項1記載の発明によれば、データ照合部をデータ転送路の任意の場所に設けることで、転送後ではなく転送中のデータを取り込んで、その場でデータの照合及び判定をリアルタイムで行うようにしているので、データ転送とデータ照合を同時並行して効率的に実行することができ、これまでにない高速情報検索システムを提供することが出来る。
【0031】
請求項2記載の発明によれば、転送中のデータは、その転送タイミングに合わせてNビットデータとして取り込まれ、取り込まれたNビットのデータを並列に比較することで、転送タイミングに合わせて各ビットを同時に照合することができる。このようにすることで、データ転送路中にデータ照合部を設置することが可能となる。
【0032】
さらに、請求項3記載の発明では、転送されるデータが1ビットシフトされる毎に定められた区域(区間)にあるNビット分のデータをまとめて取り込むようにしている。即ち、取り込まれるNビットデータのビットパターンは、転送タイミングに合わせて転送データがシフト(ビット転送)される毎にその内容が変化することになる。換言すれば、照合のために予め用意されているデータのビットパターンと同じビットパターンが現れた時に一致が検出され、その時のデータが一致データとして識別されるわけである。従って、並列比較されるデータのビット数以内のデータであれば、一致するビットの個数や連続して一致するビットパターンを容易に判別することができるので、可変長のビットパターンに対しても適切な照合を行うことができる。
【0033】
請求項4記載の発明によれば、同時に比較されたNビットの比較結果を示す出力は、転送されるデータが1ビットシフトされる毎に総合的に判定される。即ち、転送データが1ビットシフトされる期間内で、照合結果を示すN個の比較出力を全て判定するようにすれば、転送タイミングに合わせて照合結果を判定することができる。この結果、データ転送に合わせたリアルタイム検索が可能となる。
【0034】
本発明のデータ照合部は、請求項5に記載したように、LANケーブルやUSBケーブル等の転送ケーブルや中継器(HUB)、照合用の登録データが保存されているハードディスク、あるいはメモリボード上に設けることができる。例えば、ケーブル本体に接続してもよいし、ケーブル先端の接続用コネクタに取り付けてもよい。あるいは、ハードディスクやメモリボードのデータ転送路の終点付近に設けても良い。このようにすることで、転送されたデータを受信し、その後複雑なアルゴリズムを使ってソフトウェア処理を行うと云った厄介な作業から解放されるという効果が得られる。
【0035】
また、本発明は、転送に同期してデータの照合を行うことができるため、転送路に設置されるデータ照合部の数は、1個に限定されることなく、請求項6に記載したように直列もしくは並列に複数個設けることができる。この結果、転送されるデータをより多くの検索用データと照合することができ、更なる高速検索システムの構築が可能となることは容易に理解され得るであろう。
【0036】
請求項7記載の発明は、高速情報検索システムに使用されるデータ照合装置のハードウェア構成を開示したもので、転送される被検索データの取り込み手段としてシフトレジスタを用いた技術を開示するものである。このシフトレジスタは、データ転送路の転送クロックレートに同期してビットシフト動作が制御されるものであればよい。また、シフトレジスタの各ビットは、照合用データが格納されているデータレジスタの対応するビットと比較され、N個の比較出力がほぼ同時かつ並列に出力される。これらN個の比較出力は、第1のタイミングで互いに隣り合う出力同士(例えば、1段目と2段目の出力または1段目の比較回路の出力と所定の論理値)が論理判定され、その結果と次段の比較出力(3段目の出力)とが第2のタイミングで論理判定され、以降同様の論理判定が引き続くタイミングで順次シーケンシャルに行われるようなシリアル判定ゲート群で構成されている。このように構成することで、最終段の判定ゲートの出力を見れば、被検索データと照合用データの一致/不一致を容易に検出することができる。しかも、照合結果を判定するための判定ゲートは、2入力の簡単な論理ゲート回路(ORゲートやANDゲート)を使用することができるので、構成が簡単、かつ小面積で照合回路を実現することができ、LSI化にも好適と云える。
【0037】
さらに、請求項8に記載されたように、シフトレジスタに取り込まれる被検索データが1ビットシフトする間に判定ゲート群がN個の比較出力を判定するようにタイミング制御することで、データ転送と並行してデータ照合を行うことが出来る。この場合、シフトレジスタのシフトクロック周波数のN倍の制御クロック周波数で判定ゲートを制御すれば良いことになる。このようにすることで、データ転送中にデータ照合を同時に行うことが可能なデータ照合装置とそれを用いた高速情報検索システムの実現が可能となる。
【0038】
請求項9記載のデータ照合装置によれば、被検索データと照合データを比較することで得られるN個の比較出力に対して、一致出力の総数(もしくは、不一致出力の総数)を計数するためのカウンタ回路を持たせることで被検索データと照合データとの類似度を判定することが可能となる。具体的には、N個の比較出力の中でm個(N≧m)の一致出力が存在する時には類似性ありと定義したことで、カウンタ回路の値がm以上の数値であれば、被検索データと照合データは類似性ありと判定することができ、類似検索に有効な照合装置となり得る。
【0039】
さらに、請求項10記載のデータ照合装置では、累算カウンタを使用することで、連続する一致出力数(もしくは、不一致出力数)を計数することができ、これは可変ビット長の検索に好適である。
【0040】
以上述べたように、従来と異なる本発明の特徴的な要件は、
(1) データ転送中に照合処理を行う。
(2) 被検索データと照合データとの比較は、複数ビット並列に行う。
(3) 比較結果をシリアルに判定処理する。
(4) 判定処理は、データ転送速度よりも高速に実行する。
ということができる。
【0041】
ここで、「データ転送中に照合処理を行う」とは、データの転送処理と照合処理とが所定のタイミングで同時並行して実行されることを意味する。従って、照合処理が、データ転送の途中であっても、あるいは、データ転送の始点もしくは終点付近で行われても良いことが、当業者には容易に理解され得るであろう。
【0042】
また、「比較結果をデータ転送速度よりも高速に判定する」とは、具体的には、判定回路に使用されるタイミング制御クロックの動作周波数が、データ転送に使用されるクロックの動作周波数よりも高いことを意味する。従って、推奨すべきは、Nビットのデータ照合の場合には、転送クロックよりN倍早いクロックで判定回路を制御すればよい。こうすることで、信号線の長短や伝搬遅延時間の差等の微細な誤差を考慮しなければ、データ転送中にデータ照合を実質的に完了することができる。さらに言えば、かかる誤差を加味してクロック周波数のレートを決めることで、データ転送とデータ照合とを同期させることが可能となることも、容易に理解できるであろう。
【0043】
上述した要件を達成するために、本発明のデータ照合装置の特徴は、パラレルコンパレータと実質的に同等の回路構成を有するも、その動作がシリアルコンパレータと等価になるように工夫した点にある。
【0044】
以下に、図を参照して本発明のいくつかの実施形態をより詳しく説明する。
【発明を実施するための形態】
【0046】
以下、本発明の実施の形態について図を参照して説明する。
【0047】
(発明の基本構成と動作の説明)
本発明の基本構成を示す
図1の機能ブロック図を参照して、その構成と動作を説明する。被検索データは、通信ネットワーク3を介してシリアルデータDとして受信側(図示せず)へ送信(転送)される。従来技術においては、転送されたシリアルデータは、転送クロックでタイミング制御されつつ受信側の受信バッファに格納される。受信バッファに格納された後は、受信側のタイミングクロックの制御を受けて照合処理ステップへと移っていく。これに対して本発明は、
図1に示されるようにデータ転送の途中で照合処理を実行するものである。従って、このデータ照合装置(データ照合部)10は、転送のタイミングを制御する転送クロックに応答して照合されるべきデータを取り込むシリアルデータ取込部11を有している。
【0048】
シリアルデータ取込部(転送データ受取部)11に直列ビット形式で取り込まれたNビットのデータは、登録データメモリ12から読み出された比較用の照合データPの対応するビットとシリアル動作コンパレータ13において比較照合され、照合結果(検索出力)Xとして出力される。このシリアル動作コンパレータ13は、データの照合(比較)機能と照合結果の判定機能の二つの機能を併せ持つことに留意されたい。
【0049】
ここで、登録データメモリ12から読み出される照合データの読出しタイミングは、シリアルデータ取込部11からシリアル動作コンパレータ13に出力される転送データの出力タイミングと同期させても良いし、あるいは、照合データとは非同期に、予めコンペアレジスタCR(データレジスタ)に格納しておいても良い。いずれにしても、
図1から明らかなように、シリアル動作コンパレータ13は、転送データの各ビットと照合データの各ビットとを並列に照合するものであることに留意すべきである。
【0050】
さらに、シリアル動作コンパレータ13は、Nビットの転送データと照合データとの比較をパラレルに行うが、それによって生成されるN個の比較結果の判定はシリアルに実行することを特徴としており、その意味で本明細書ではこれを「シリアル動作コンパレータ」と定義している。従って、判定回路は、後述するように、シリアルデータ取込部11内のデータが1ビットシフトされる時間内で、前記N個の比較結果の判定を行うことができるように回路設計されている。判定結果は、照合結果を示す検索出力Xとしてシリアル動作コンパレータ13から出力される。
【0051】
かかるデータ照合装置の動作を説明するために、初めに
図5を参照して転送データと照合データの関係について記載する。シリアル転送経路を介して転送されるデータは、転送データ受取部11として機能するシフトレジスタSRに1ビットずつシリアルに取り込まれる。このシフトレジスタSRは、転送経路上に設けても良いし、あるいは、転送されるデータを分岐させて取り込むようにしても良い。転送データ受取部11のシフトレジスタSRに取り込まれる転送データは、Dn乃至Dn+9の10ビットのシリアルデータとして転送クロックによるタイミング制御のもと、順次シフト動作を繰り返しながら取り込まれることになる。なお、転送データ受取部11のシフトレジスタSRのビット数は、10ビットに限られることなく、検索データのビット数に応じて適宜任意の数のビット構成とすることができる。
【0052】
一方、この転送データと照合されるべきデータは、登録データメモリ12から照合データP0〜P9として読み出される。なお、登録データメモリ12の設置場所がデータ照合装置10から物理的に離間している場合には、メモリから読み出された必要な登録データを記憶するための登録データレジスタ(バッファでも可)をデータ照合装置内に設けておくことも出来る。
【0053】
図5に図示されたように、転送データ(Dn〜Dn+9)と登録データ(P0〜P9)の対応する各ビットは、シリアル動作コンパレータ13中のパラレルデータ比較部(COM)14(この例では、10ビット構成)に並列に入力される。パラレルデータ比較部14は、転送データと照合データの各ビットを比較するために10個の2入力論理ゲート群からなる。ここで、比較処理に好適な論理ゲートとしては、
図6(A1)に記載の2入力排他的論理和(EXOR)ゲート回路G0、もしくは、
図6(B1)に記載の2入力否定排他的論理和(EXNOR)ゲート回路G0が有効である。なお、使用可能なゲート回路としては、転送データと照合データの各ビットの値の一致/不一致を識別する論理演算機能を有するものであればよいが、各ゲートの入力数は少ない方が好ましい。前記ゲート回路の真理値表は、
図6(A2)あるいは(B2)のようになる。いずれを選ぶかは、回路の設計基準(ハイアクティブ設計、あるいはローアクティブ設計)に合わせれば良い。ここでは、パラレルデータ比較部(COM)14として、
図6(A1)に示す排他的論理和(EXOR)ゲートを10個並列に設けた2入力論理ゲート群を例に説明する。
【0054】
図7は、パラレルデータ比較部14において比較される転送データと照合データの関係を説明するためのタイミング遷移図である。ある時刻T1において、転送データが取り込まれる転送データ受取部11としてのシフトレジスタSR(
図7では、8ビット構成のシフトレジスタを参照番号11を以って例示している)には、データD1〜D8が取り込まれたものとする。一方、照合データは、データP1〜P8として登録データメモリ12から読み出されてコンペアレジスタCRに格納されているものとする(
図7では簡単のため参照番号12としてコンペアレジスタCRを示してある)。照合データは、時間経過に関係なく内容が変化しないことは容易に理解され得るであろう。しかしながら、転送データは、転送タイミング(シフトレジスタ11のシフトタイミング)に応答して、時刻T1に続く時刻T2、さらに時刻T3でその内容は順次変化する。すなわち、時刻T1から1ビットシフトした時刻T2では、各ビットが左に1ビットシフトされて、最上位ビット(MSB)がD2となり、最下位ビット(LSB)には新たなデータビットD9が取り込まれる。更に、次の時刻T3では、全体が1ビット左シフトされて、最上位ビットがD3となり、最下位ビットにはD9に続くD10が取り込まれる。このように、転送タイミングに応答して1ビットずつシフトしながらシフトレジスタ11の格納内容は転送データに合わせて順次変化し続ける。
【0055】
以上の動作を言い換えれば、本発明のデータ照合装置では、照合されるべき転送データは、転送タイミングに応じて1ビットずつ内容が更新されるも、照合データの内容は変化することなく転送データがビットシフトされる毎にその全ビットが比較されることになる。例えば、照合データのビットP1は、シフトタイミングに合わせてシフトされる転送データの全てのビットD1〜Dnと順次比較されることが理解されよう。また、このようにすることで、後述するように、転送データが可変長であっても処理手順を変えることなく照合処理ができるということに留意されたい。
【0056】
図8は、シリアル動作コンパレータ13の内部機能ブロック図で、特に、比較処理を行うパラレルデータ比較回路14と判定処理を行う判定回路15を開示したものである。転送データDn〜Dn+9と照合データP1〜P9の対応する各ビットを比較する比較回路14については、
図5乃至
図7で説明したのと同様のもので良い。故に、判定回路15の機能と動作について以下に詳述する。
【0057】
判定回路15に要求される機能は、比較回路14から出力される比較結果信号Co0〜Co9を受けて一致/不一致の検出、あるいは、一致/不一致の数、もしくは、連続する一致/不一致の数等、比較結果が予め決められた検索条件に合致しているか否かを判定することである。故に、検索条件に応じて判定回路の回路構成自体を適宜変更することは可能である。しかしながら、判定開始から判定終了までの時間は、転送データが1ビットシフトされる時間と同じか、それよりも短い必要があることに注意すべきである。以下に、それぞれ異なる検索条件における実施の形態について具体的に説明する。
【実施例1】
【0058】
図9は、全ビット一致の検索条件を満足する判定回路を構成する論理ゲート回路図である。本実施例は、検索単位が10ビットの例を示しており、従って10個のORゲートが直列に接続される構成となる。
図8の比較回路14から出力される比較結果信号Co0〜Co9の最下位ビット(LSB)の信号Co9が、ORゲート16の一方の入力端に印加される。このORゲートの他端には論理0(接地レベル)の信号が印加される。ORゲート16の出力端は、次段のORゲートの一方の入力端に接続され、当該ORゲートの他端には比較結果信号Co8が印加される。以下同様の構成で合計10個のORゲートが順次直列に接続され、最終段のORゲートには比較結果信号の最上位ビット(MSB)の信号が印加される。
【0059】
なお、ここでは比較回路14を構成する論理ゲート群として排他的論理和(EXOR)ゲートの使用を想定しているため、判定回路にORゲート(すなわち、一致信号のレベルが論理0となる)を使用しているが、一致信号のレベルを論理1とした場合には2入力のANDゲートをORゲートの代わりに使用しつつ最下位ANDゲートの入力他端を論理1にすれば良いことは容易に理解され得ることである。
【0060】
次に、
図9の全一致判定回路の動作を説明する。比較結果を示す信号Co0〜Co9の論理レベルが全て「0」であれば、最終段のORゲート(MSB)の出力は論理0となり、一方、比較結果信号の中に1つでも論理「1」(不一致信号)があれば、最終段のORゲートの出力は論理1となる。従って、この最終段のORゲート(MSB)出力を検索出力Xとして取り出すことで、ある時刻におけるシフトレジスタSR(
図5の転送データ受取部11)内の転送データに対する全一致検索(照合判定)が可能となる。この判定動作は、転送データが1ビットシフトされる毎に繰り返し実行される。かかる判定処理を繰り返すことで、照合(登録)データの全ビットと一致する転送データがシフトレジスタ11に存在する時、当該転送データがどの照合データと一致するかを検出することが出来る。
【0061】
図9に示すように、判定回路として複数のORゲートを直列接続した論理ゲート群を使って論理判定する場合、各ORゲートの出力を確定し、これを次段のORゲートに伝搬するためのタイミング制御は、クロック発生回路CG1からの制御クロックで行われる。
図10(A)は、照合されるべきデータが取り込まれるシフトレジスタ11のシフト動作を制御するシフトレジスタ制御クロックの波形図で、同図(B)は判定回路を構成する
図9記載のORゲート群に使用されるタイミング制御クロックの波形図である。図から明らかなように、シフトレジスタ制御クロックがアクティブの期間に、N個のタイミング制御クロックが発生される。すなわち、
図9のクロック発生回路CG1は、シフトレジスタ制御クロックをN倍に逓倍したクロックを発生し、このクロックで判定回路の各ORゲートが順次直列に制御される。このようにすることで、シフトレジスタ11が1ビットシフトする間にN個のORゲートの各出力がシリアルに論理演算されて、最終段のORゲートから判定結果(検索出力)Xが出力される。その結果、シフトレジスタに1ビットの転送データが取り込まれる度に、比較回路14で生成されたN個の比較結果出力を判定回路15で総合判定することができる。
【0062】
換言すれば、照合処理は転送クロックに合わせてNビットデータをパラレルに比較し、判定処理は転送クロックをN倍したクロックでN個の比較出力をシリアルに論理演算するようにしたことが、本実施例の特徴と云える。そして、これが、シリアル動作コンパレータ13の基本動作となることを理解されたい。
【0063】
なお、判定回路15を構成するORゲート群として照合の処理単位(実施例では、10ビット)に等しい10個のORゲートを直列接続した例を示したが、1段目のORゲート(
図9の16)を省略して2段目のORゲートに比較結果信号Co8とCo9を入力するようにしても良い。この場合には、判定回路15のORゲート数はN−1個(すなわち、9個)となり、その制御クロックも(N-1)倍の逓倍クロックが使用できる。
【実施例2】
【0064】
実施例1では、全ビット完全一致の検索例について説明したが、類似データの検索では、転送データと照合データの一致ビット数が、類似条件を満足する比率以上であれば良いことになる。そのためには、
図11(A)に示されるように、判定回路15をカウンタ回路20、参照レジスタ21、比較回路22、及びスイッチング回路24で構成すれば良い。カウンタ回路20は、比較結果が一致を示す信号の総数を計数する累算機能を有していれば良い。参照レジスタ21には、類似条件を満足する数が予め設定されている。かくして、カウンタ回路20の値と参照レジスタ21の値の大小が比較回路22で判定され、参照レジスタの値よりもカウンタ回路の値が大きければ(等しい場合も含む)類似データと判定され、小さければ非類似データと判定することが出来る。この判定結果は類似判定信号Xとして出力される。
【0065】
また、
図11(B)のように、減算機能を持つプリセットカウンタ回路23を用いても良い。プリセットカウンタ回路23には、前述した参照レジスタ21に設定される値が予めプリセットされており、比較回路にて生成される一致信号によって減算処理がなされアンダーフローした段階で類似判定信号Xが出力される。このような回路構成でも、類似判定は可能である。
【0066】
なお、
図11においても、類似判定処理は、転送データが1ビットシフトされる期間で判定処理を完了する必要がある。そのために、(A)、(B)いずれの回路においても、スイッチング回路24が設けられている。このスイッチング回路24は、比較回路14から送られてくる比較結果信号Co0〜Co9をカウンタ回路20に導くためのスイッチングゲート群からなり、各スイッチングゲートが
図10(B)に示したタイミング制御クロックに応答して比較結果信号Co0〜Co9を順番にカウンタ回路20、あるいは、プリセットカウンタ回路23に送るようにすることで、転送データが1ビットシフトされる期間で類似性の判定を行うことが出来る。
【0067】
以上のような機能を有する判定回路を使用することで、一致するビット数が所定数に達した時に判定信号Xが出力される類似検索機能を持ったデータ照合装置を提供することが出来る。
【実施例3】
【0068】
図12には、転送データ用のシフトレジスタ11の中に参照データと一致するビットが連続して何ビットあるかを判定するための判定回路15が開示されており、検索ビット長が可変長のデータ照合に適合するものである。この判定回路15は、全ビット一致判定を行う
図9記載の判定回路と同じORゲート17の直列回路を有している。なお、ここではデータの転送方向とは逆方向にORゲートが並べられている。このようにすることで、照合すべきデータが可変長のデータであっても、シフトレジスタ11の最上位ビット(MSB)を起点として、これに続くm(m≦N)ビットのデータ検索が出来るようになる。
【0069】
さらに、
図12では、一致するビットが何ビット連続しているか、もしくは、どこまでが一致するビット列であるかを特定するために、位置検出回路25が設けられている。位置検出回路25は、直列接続されたORゲートの各出力の論理値が格納されるレジスタ機能を有しており、格納された論理値から連続一致データのビット数、もしくは、ビット位置を特定することができる。
【0070】
図13を参照して、連続一致データのビット数及びビット位置の検出方法について説明する。仮に、登録データメモリ12のコンペアレジスタCRには、照合データとして「1101111010」のビット列が格納されているものとする。タイミングt1におけるシフトレジスタ11の転送データが「1001101110」の時、両者の比較結果(Co0〜Co9)は「0100010100」となる。この結果、
図12のORゲートの出力は「0111111111」となり、これが位置検出回路25に設定される。この結果、タイミングt1でシフトレジスタ11に存在する転送データの中で、連続一致ビットは最上位ビット(MSB)のみであることがわかる。
【0071】
引き続くタイミングt2では、シフトレジスタ11の全ビットが1ビット左(転送方向)にシフトされて、MSBにあったデータがシフトアウトし、LSBには新たなデータ「1」がシフトインされる。その結果、シフトレジスタ11のデータは「0011011101」となる。このタイミングt2における比較結果(Co0〜Co9)は「1110100111」となるが、最上位ビット(MSB)の比較結果が「1」であるためORゲートの全出力は全て「1」となり、この最上位ビット(MSB)を始点とするデータは、照合データと不一致であると判定される。
【0072】
更に、次のタイミングt3では、シフトレジスタの転送データが1ビット左シフトされて「0110111010」となるが、最上位ビット(MSB)の値が異なる為、タイミングt2と同様に不一致データと判定される。
【0073】
次のタイミングt4では、シフトレジスタのデータが「1101110100」となる。この時、比較結果(Co0〜Co9)は「0000001110」となり、ORゲートの出力は「0000001111」となる。位置検出回路25には、先頭ビットから6番目のビットまで一致を示す「0」が並んでいるため、転送データの先頭から6ビット分のデータが照合データと一致していることがわかる。
【0074】
このように、2入力のORゲートを直列接続した判定回路を用いることで、シフトレジスタに取り込まれ1ビットずつシフトされていく転送データに対して、その先頭ビット(MSB)から何ビットが照合データと一致するかを検出することができる。さらに、位置検出回路25からは、連続して一致するビット数とその位置を検出することもできる。その結果、転送データの先頭ビットを的確に捉え、かつその後に続くデータに対しても連続一致ビット数を容易に識別することが出来るので、
図12記載の照合回路が、可変長データの検索や所定ビット長データの検索に適していることが理解できるであろう。
【0075】
ここで、判定回路に2入力ORゲートの直列回路を用いる利点について説明する。
【0076】
シフトレジスタに取り込まれる10ビットの転送データと同じく10ビットの照合データは、各ビットがパラレル(同時並列)に比較されるので、生成された10ビットの比較結果を示す信号(Co0〜Co9)を、参考図として示した
図14の多入力ANDゲート(ORゲートでも可)26に並列に印加する方法も理論上では考えられる。しかしながら、実際には比較結果信号(ここでは、10個の信号Co0〜Co9)がANDゲート26の入力端に印加されるタイミングにはズレがある。従って、このズレを加味してタイミング制御するためには、時間的に相当の余裕を持たせなければならない。言い換えるならば、10個の信号のうち最も時間がかかるであろう信号よりも長めの時間を確保する必要がある。この時間ロスは、高速検索の大きな障害となる。加えて、多入力論理ゲートにおいても、入力数が増えれば増えるほど、出力論理確定までに時間がかかる。これも、高速検索には不適と云わざるを得ない。故に、本発明では、照合判定に2入力の論理ゲートを使用し、これを直列に接続してタイミング制御に要する時間ロスを極力抑えるように工夫している。なお、
図12において、初段のORゲート17を省略して、2段目のORゲートに比較結果信号Co0とCo1とを入力するようにしても良いことは容易に推測できるであろう。
【実施例4】
【0077】
一般に、情報検索とは、大量の情報の中から目的の情報を探し出すことを意味するが、その方法は、大別して「確認検索」と「特定検索」の2種類に分類できる。確認検索とは、転送される情報の中に目的の情報があるか否かを確認する検索である。この場合、目的とする情報を登録データとして登録データメモリ12のコンペアレジスタ(以下、簡単のためコンペアレジスタ12とも称する)に設定しておき、転送されてくる情報と逐次照合することで情報の存在を確認することができる。一方、特定検索の場合には、転送される情報と予め登録されている全ての情報を1対1で照合する必要がある。
図15は、かかる特定検索に適した情報検索システムの要部ブロック図である。
【0078】
図15に開示された情報検索システムは、情報転送路に設けられ、転送される情報をシリアルに取り込む転送データ用の1組のシフトレジスタ11と、互いに併設された複数組(n組)のデータ照合部(シリアル動作コンパレータ)13と、データ照合部13と対応して設けられた複数組(n組)のコンペアレジスタ12とを有する。転送データ用シフトレジスタ11の各ビットは、併設された複数のデータ照合部13の対応するビットに共通接続される。一方、複数のコンペアレジスタの各ビットも対応するデータ照合部13の各ビットに共通接続されている。例えば、転送データが取り込まれるシフトレジスタ11の最上位ビット(MSB)Dnは、併設されている複数のデータ照合部13の各C0ビットに共通接続され、同じく複数併設されているコンペアレジスタ12の各最上位ビット(MSB)P0は、夫々対応するデータ照合部のビットC0に接続される。このように、転送データが取り込まれる1組のシフトレジスタに対して、複数組のデータ照合部13と複数組のコンペアレジスタ12とを一次元方向に設置することにより、転送されるデータを同時に複数の照合データと比較判定することが出来る。
【0079】
図15の情報検索システムによれば、転送データは、夫々異なる複数の照合データと同時並列的に照合される。従って、複数設けられたコンペアレジスタ12の各々に内容の異なる照合データを設定しておくことで、同じタイミングで複数の照合処理を行うことが出来、検索情報の特定を高速化することができる。
【0080】
さらに、
図16に示すように、転送データ取り込み用の1組のシフトレジスタ11に対して、
図15に図示した複数のデータ照合部13及びコンペアレジスタ12を2次元方向に設けることもできる。これによれば、データ転送中に、大量のデータを同時に照合することができ、さらに高速な検索システムを提供することが出来る。
【0081】
更に発展させて、
図17のように、
図16記載のデータ照合装置30を複数組(
図17では2組)並列に設けることで、同時照合可能なデータ数をさらに増やすことも出来る。この場合、転送データが取り込まれるシフトレジスタ11も複数組必要になるが、データ転送路を分岐して各シフトレジスタに同じ転送データDが取り込まれるようにすればよい。
【0082】
上述したように、データ転送方向に対して複数のデータ照合装置を並列に設けて検索速度を向上することが出来るが、
図18に示すようにデータ照合装置(データ照合部)13をデータ転送方向に直列に設けても良い。
図18(A)は、2組のデータ照合装置をデータ転送路の異なる場所に直列に挿入した例であり、同図(B)は転送データを複数の場所から分岐させてデータ転送路に併設した例を示している。なお、データ照合装置をデータ転送方向に直列に介装した場合、各照合装置の照合タイミングにズレを生じるが、このズレはデータ転送中に十分吸収することができるため高速検索に実質的な影響を与えることはない。
【0083】
以上説明したように、本発明のデータ照合装置は、EXORゲートとORゲートまたはEXNORゲートとANDゲートを基本構成要素とする極めて簡単かつ小面積の論理ゲート回路で照合機能を実現することが出来るので、LSIのような集積回路チップに容易に搭載することが可能である。従って、照合用のデータ(登録データ)を複数のメモリチップに分散して記憶させ、各メモリチップに本発明のデータ照合回路を組み込むことであらゆる場所に設置可能な小型のデータ照合装置を提供することが出来る。そのため、
図19に示したように、データ転送経路上のいずれの場所にも容易に取り付けることが出来る。例えば、照合データが保管されているクラウドサーバの中や、転送されるデータの中継を担当するリレーサーバの中、あるいは、携帯端末、車載用端末、個人の住居や企業のビル、等々、ネットワークを介して送信(転送)されるデータの経路上であればどこに取り付けても不具合が生じることはない。
【0084】
また、照合可能なデータは、文字、数字、記号等のシンプルな情報から音声や画像等の複雑な情報まで幅広く対応することが出来るので、極めて広範囲な検索用途に適用できることも理解され得るであろう。