(57)【要約】【課題】マンハッタン距離を用いた場合にも、正確、かつ、高速に類似検索を行うことが可能な連想メモリを提供する。【解決手段】連想メモリは、各々がカウンタ一致検出回路３１〜３Ｗを含むＲ個の距離／クロック数変換回路ＤＣ１〜ＤＣＲを備える。距離信号Ｄ１１〜Ｄ１Ｗの各々は、検索データと参照データとの距離を表わす。カウンタ一致検出回路３１は、距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック数をカウントする。その後、カウンタ一致検出回路３２は、距離信号Ｄ１２に一致するカウンタ値が得られるときのクロック数をカウントする。以下、同様にして、カウンタ一致検出回路３Ｗは、カウンタ一致検出回路３Ｗ−１が距離信号Ｄ１Ｗ−１に一致するカウンタ値が得られるときのクロック数をカウントすると、距離信号Ｄ１Ｗに一致するカウンタ値が得られるときのクロック数をカウントする。【選択図】図２
2014041676.tif 000002
【特許請求の範囲】
【請求項１】
各々がＭ×Ｗ（Ｍは１以上の整数、Ｗは２以上の整数）ビットのビット長を有するＲ（Ｒは２以上の整数）個の参照データを保存する参照データ保存回路と、
前記Ｒ個の参照データに対応して設けられ、各々がＭ×Ｗビットのビット長を有し、かつ、検索対象である検索データと前記参照データとの距離を表わすＲ個の距離信号を出力するＲ個の距離演算回路と、
前記Ｒ個の距離演算回路に対応して設けられ、各々が対応する距離演算回路から各々がＭビットのビット長を有するＷ個の距離信号を受け、その受けたＷ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号のクロック数をカウントし、前記クロック数をカウントしたタイミングである一致タイミングを示すタイミング信号を出力するＲ個の距離／クロック数変換回路と、
前記Ｒ個の距離／クロック数変換回路から受けたＲ個のタイミング信号に基づいて、前記一致タイミングが早い順にｋ（ｋは１≦ｋ＜Ｒを満たす整数）個のタイミング信号を検出し、その検出したｋ個のタイミング信号を前記検索データと前記参照データとの類似度を示すマッチ信号として出力するＷｉｎｎｅｒ検出器とを備える連想メモリ。
【請求項２】
前記Ｒ個の距離／クロック数変換回路の各々は、各々がＭビットのビット長を有するＷ個の距離信号に対応して設けられ、かつ、直列に接続されたＷ個のカウンタ一致検出回路を含み、
前記Ｗ個のカウンタ一致検出回路は、Ｗ＝２である場合、
前記Ｗ個の距離信号を一列に配列したときの一方端の距離信号である１番目の距離信号に対応して設けられ、前記１番目の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けた１番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第１のクロック数をカウントし、前記第１のクロック数をカウントしたタイミングを示す第１の一致信号を出力する第１のカウンタ一致検出回路と、
前記一方端からＷ番目の距離信号に対応して設けられ、前記第１のカウンタ一致検出回路から前記第１の一致信号を受けると駆動されるとともに前記Ｗ番目の距離信号を受け、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたＷ番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第２のクロック数をカウントし、前記第２のクロック数をカウントしたタイミングを示す前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する第２のカウンタ一致検出回路とを含み、
前記Ｗ個のカウンタ一致検出回路は、Ｗが３以上である場合、
前記第１のカウンタ一致検出回路と、
２番目の距離信号からＷ−１番目の距離信号までのＷ−２個の距離信号に対応して設けられ、各々が、前記第１のカウンタ一致検出回路またはｗ−１（ｗは２≦ｗ≦Ｗ−１を満たす整数）番目の距離信号に対応して設けられたカウンタ一致検出回路から前記１番目または前記ｗ番目の距離信号に一致するカウンタ値が得られるときのクロック信号のクロック数をカウントしたタイミングを示す第２の一致信号を受けると駆動されるとともに前記ｗ番目の距離信号を受け、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたｗ番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第３のクロック数をカウントし、前記第３のクロック数をカウントしたタイミングを示す第３の一致信号を出力するＷ−２個の第３のカウンタ一致検出回路と、
Ｗ番目の距離信号に対応して設けられ、Ｗ−１番目の距離信号に対応して設けられたカウンタ一致検出回路から前記第３の一致信号を受けると駆動されるとともに前記Ｗ番目の距離信号を受け、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたＷ番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第４のクロック数をカウントし、前記第４のクロック数をカウントしたタイミングを示す前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する第４のカウンタ一致検出回路とを含む、請求項１に記載の連想メモリ。
【請求項３】
前記第１のカウンタ一致検出回路は、
Ｍビットのビット値を昇順にカウントし、そのカウントしたカウンタ値を順次出力する第１のカウンタと、
前記第１のカウンタから前記カウンタ値を順次受けるとともに前記距離演算回路から前記１番目の距離信号を受け、前記受けたカウンタ値が前記１番目の距離信号に一致するときの前記第１のクロック数をカウントし、前記第１のクロック数が得られると、前記第１の一致信号を出力する第１の一致検出回路とを含み、
前記第２のカウンタ一致検出回路は、
Ｍビットのビット値を昇順にカウントし、そのカウントしたカウンタ値を順次出力する第２のカウンタと、
前記第２のカウンタから前記カウンタ値を順次受けるとともに前記距離演算回路から前記Ｗ番目の距離信号を受け、前記第１のカウンタ一致検出回路から前記第１の一致信号を受けると駆動され、前記受けたカウンタ値が前記Ｗ番目の距離信号に一致するときの前記第２のクロック数をカウントし、前記第２のクロック数が得られると、前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する第２の一致検出回路とを含み、
前記Ｗ−２個の第３のカウンタ一致検出回路の各々は、
Ｍビットのビット値を昇順にカウントし、そのカウントしたカウンタ値を順次出力する第３のカウンタと、
前記第３のカウンタから前記カウンタ値を順次受けるとともに前記距離演算回路から前記ｗ番目の距離信号を受け、前記第２の一致信号を受けると駆動され、前記受けたカウンタ値が前記ｗ番目の距離信号に一致するときの前記第３のクロック数をカウントし、前記第３のクロック数が得られると、前記第３の一致信号を出力する第３の一致検出回路とを含み、
前記第４のカウンタ一致検出回路は、
Ｍビットのビット値を昇順にカウントし、そのカウントしたカウンタ値を順次出力する第４のカウンタと、
前記第４のカウンタから前記カウンタ値を順次受けるとともに前記距離演算回路から前記Ｗ番目の距離信号を受け、前記第３の一致信号を受けると駆動され、前記受けたカウンタ値が前記Ｗ番目の距離信号に一致するときの前記第４のクロック数をカウントし、前記第４のクロック数が得られると、前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する第４の一致検出回路とを含む、請求項２に記載の連想メモリ。
【請求項４】
前記Ｗは、２ｉ（ｉは２以上の整数）からなり、
前記Ｒ個の距離／クロック数変換回路の各々は、Ｗ／ｓ（ｓはＷ以下である２ｘに等しい。ｘは正の整数）個の距離信号に対応して設けられ、各々がＭビットのビット長を有するＷ個の距離信号に基づいて、前記タイミング信号を出力するＷ／ｓ個のカウンタ一致検出回路を含み、
前記Ｗ／ｓ個のカウンタ一致検出回路は、各々が前記Ｗ／ｓ個の距離信号からなるｓ組の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたｓ組の距離信号に含まれるＷ個の距離信号の和に一致するカウンタ値が得られるときの前記クロック数をカウントし、前記クロック数をカウントしたタイミングを示す前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する、請求項１に記載の連想メモリ。
【請求項５】
前記Ｗ／ｓ個のカウンタ一致検出回路は、前記Ｗ／ｓ個の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたＷ／ｓ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号の第１のクロック数をカウントし、前記第１のクロック数をカウントしたタイミングを示す第１の一致信号を出力する処理をｓ−１回繰り返し実行し、前記第１の一致信号を前記ｓ−１回出力し、かつ、ｓ回目に前記Ｗ／ｓ個の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたＷ／ｓ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号の第２のクロック数をカウントし、前記第２のクロック数をカウントしたタイミングを示す前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する、請求項４に記載の連想メモリ。
【請求項６】
前記Ｗ／ｓ個のカウンタ一致検出回路は、
前記Ｗ個の距離信号を一列に配列したときの一方端からｐ（ｐは１≦ｐ＜Ｗを満たす奇数）番目の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記ｐ番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第３のクロック数をカウントし、前記第３のクロック数をカウントしたタイミングを示す第２の一致信号を出力する第１の一致処理をＷ／２回繰り返し実行する第１のカウンタ一致検出回路と、
前記一方端からｑ（ｑは１＜ｑ≦Ｗを満たす偶数）番目の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記ｑ番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第４のクロック数をカウントし、前記第４のクロック数をカウントしたタイミングを示す第３の一致信号を出力する第２の一致処理を（（Ｗ／２）−１）回繰り返し実行し、前記第２の一致信号を前記Ｗ／２回受け、かつ、Ｗ番目の距離信号を受けると、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記Ｗ番目の距離信号に一致するカウンタ値が得られるときのクロック信号の第５のクロック数をカウントし、前記第５のクロック数をカウントしたタイミングを示す前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する第２のカウンタ一致検出回路とを含む、請求項４に記載の連想メモリ。
【請求項７】
前記Ｒ個の距離／クロック数変換回路の各々は、
前記第１のカウンタ一致検出回路から前記第２の一致信号を受けると、その受けた第２の一致信号を前記第２のカウンタ一致検出回路へ出力し、前記第２のカウンタ一致検出回路から前記第３の一致信号を受けると、その受けた第３の一致信号を前記第１のカウンタ一致検出回路へ出力するスイッチング制御回路を更に含み、
前記第１のカウンタ一致検出回路は、前記スイッチング制御回路から前記第３の一致信号を受ける毎に前記第１の一致処理を１回実行し、
前記第２のカウンタ一致検出回路は、前記スイッチング制御回路から前記第２の一致信号を受ける毎に前記第２の一致処理を１回実行するとともに、前記第２の一致信号を前記Ｗ／２回受けると、前記第５のクロック数をカウントし、前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する、請求項６に記載の連想メモリ。
【請求項８】
前記第１のカウンタ一致検出回路は、
Ｍビットのビット値を昇順にカウントし、そのカウントしたカウンタ値を順次出力する第１の出力処理を前記Ｗ／２回繰り返し実行する第１のカウンタと、
前記第１のカウンタから前記カウンタ値を順次受けるとともに前記距離演算回路から前記ｐ番目の距離信号を受け、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたカウンタ値が前記ｐ番目の距離信号に一致するときの前記第３のクロック数をカウントし、前記第２の一致信号を出力する第２の出力処理を前記Ｗ／２回繰り返し実行する第１の一致検出回路とを含み、
前記第２のカウンタ一致検出回路は、
Ｍビットのビット値を昇順にカウントし、そのカウントしたカウンタ値を順次出力する第３の出力処理を前記Ｗ／２回繰り返し実行する第２のカウンタと、
前記第２のカウンタから前記カウンタ値を順次受けるとともに前記距離演算回路から前記ｑ番目の距離信号を受け、カウンタ値をクロック信号に同期して昇順にカウントしたときに、前記受けたカウンタ値が前記ｑ番目の距離信号に一致するときの前記第４のクロック数をカウントし、前記第３の一致信号を出力する第２の出力処理を前記（（Ｗ／２）−１）回繰り返し実行し、前記第２の一致信号を前記Ｗ／２回受けると、前記受けたカウンタ値が前記Ｗ番目の距離信号に一致するときの前記第５のクロック数をカウントし、前記タイミング信号を前記Ｗｉｎｎｅｒ検出器へ出力する第２の一致検出回路とを含む、請求項６または請求項７に記載の連想メモリ。
【請求項９】
前記第１から第４のカウンタの各々は、Ｍビットのカウンタ値を昇順に出力するＭ個の分周器からなり、
前記Ｍビットのカウンタ値の最下位ビットから最上位ビットへ向かう方向において第ｍ（ｍは１≦ｍ≦Ｍを満たす整数）位のビット値を出力する分周器は、クロック信号を２ｍ−１回に分周した信号を出力する、請求項３または請求項８に記載の連想メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、連想メモリに関するものである。
【背景技術】
【０００２】
近年、文字認識・画像認識などに代表されるパターンマッチングを必要とするアプリケーションが大変注目されている。特に、パターンマッチングをＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）上で実現することにより、将来、人工知能およびモバイル機器等の高機能アプリケーションに適用可能になり、この技術の実現は、非常に注目を浴びている。
【０００３】
パターンマッチングでは、データベースに保存された複数の参照データの中から、完全に検索データと一致するパターンを検索する「完全一致検索処理」と、検索データと最も類似するパターンを検索する「最類似検索処理」とがある。
【０００４】
前者は、ＣＡＭ（Ｃｏｎｔｅｎｔｓ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）と呼ばれ、ネットワークルータのＩＰアドレステーブルのルーティングおよびプロセッサのキャッシュ等の実現に用いられる。人間の脳のような柔軟な検索・比較をコンピュータに処理させるには、後者の最類似検索処理を実現することが必要不可欠である。このような柔軟な比較を実現する機能を持つメモリのことを特に連想メモリ（Ａｓｓｏｃｉａｔｉｖｅ  Ｍｅｍｏｒｙ）と呼ぶ。
【０００５】
連想メモリを実現する手段として（１）ディジタル方式による実現方法（非特許文献１）、（２）アナログ方式による実現方法および（３）ディジタル・アナログ融合方式（非特許文献２）等が提案されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Y. Oike, et al., “A High-Speed and Low-Voltage Associative Co-Processor with Hamming Distance Ordering Using Word-Parallel and Hierarchical Search Architecture,” CICC, 2004.
【非特許文献２】M. A. Abedin, et al., “Nearest-euclidean-distance search associative memory with fully parallel mixed digital-analog match circuitry,” Proc. of SSDM2006, pp. 282-283, 2006.
【非特許文献３】Y. Oike et al., “A Word-Parallel Digital Associative Engine with Wide Search Range Based on Manhattan Distance,” CICC, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、非特許文献１に記載の連想メモリは、検索データと参照データとのハミング距離を用いて類似検索を行うため、マンハッタン距離を用いて類似検索を行うことが困難であるという問題がある。また、非特許文献２に記載の連想メモリにおいては、検索データと参照データとの類似度を表す距離を電圧に変換するので、誤検索が生じるという問題がある。
【０００８】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、マンハッタン距離を用いた場合にも、正確、かつ、高速に類似検索を行うことが可能な連想メモリを提供することである。
【課題を解決するための手段】
【０００９】
この発明の実施の形態による連想メモリは、参照データ保存回路と、Ｒ個の距離演算回路と、Ｒ個の距離／クロック数変換回路と、Ｗｉｎｎｅｒ検出器とを備える。参照データ保存回路は、各々がＭ×Ｗビットのビット長を有するＲ個の参照データを保存する。Ｒ個の距離演算回路は、Ｒ個の参照データに対応して設けられ、各々がＭ×Ｗビットのビット長を有し、かつ、検索対象である検索データと参照データとの距離を表わすＲ個の距離信号を出力する。Ｒ個の距離／クロック数変換回路は、Ｒ個の距離演算回路に対応して設けられ、各々が対応する距離演算回路から各々がＭビットのビット長を有するＷ個の距離信号を受け、その受けたＷ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号のクロック数をカウントし、そのクロック数をカウントしたタイミングである一致タイミングを示すタイミング信号を出力する。Ｗｉｎｎｅｒ検出器は、Ｒ個の距離／クロック数変換回路から受けたＲ個のタイミング信号に基づいて、一致タイミングが早い順にｋ個のタイミング信号を検出し、その検出したｋ個のタイミング信号を検索データと参照データとの類似度を示すマッチ信号として出力する。
【発明の効果】
【００１０】
この発明の実施の形態による連想メモリにおいては、Ｒ個の距離／クロック数変換回路の各々は、対応する距離演算回路から受けたＷ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号のクロック数をカウントし、そのクロック数をカウントしたタイミングである一致タイミングを示すタイミング信号を出力する。即ち、Ｒ個の距離／クロック数変換回路の各々は、Ｗ個の距離信号の和をクロック信号のクロック数に変換し、その変換したクロック数が得られるタイミングを示すタイミング信号を出力する。その結果、Ｗ個の距離信号の和によって表わされる距離が小さければ、タイミング信号は、より早い一致タイミングを示し、Ｗ個の距離信号の和によって表わされる距離が大きければ、タイミング信号は、より遅い一致タイミングを示す。また、Ｗ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号のクロック数は、Ｗ個の距離信号のそれぞれに一致するＷ個のカウンタ値が得られるときのクロック信号のＷ個のクロック数を加算した値からなるので、検索データと参照データとの距離をマンハッタン距離によって表わしたときの検索データと参照データとの距離信号に一致するカウンタ値が得られるときのクロック信号のクロック数になる。更に、２つのタイミング信号によって示される２つのタイミングは、クロック信号の少なくとも１周期以上の時間差を有する。更に、クロック信号の周波数を高くすることによって検索時間が短くなる。
【００１１】
従って、この発明の実施の形態によれば、マンハッタン距離を用いた場合にも、正確、かつ、高速に類似検索を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態による連想メモリの構成を示す概略ブロック図である。
【図２】図１に示す距離／クロック数変換回路の構成を示す概略図である。
【図３】図２に示すカウンタ一致検出回路の構成を示す概略図である。
【図４】図３に示すカウンタ一致検出回路の動作を説明するための図である。
【図５】図１に示す距離／クロック数変換回路の動作を説明するための図である。
【図６】図１に示すＷｉｎｎｅｒ検出器の動作を説明するための図である。
【図７】図３に示すカウンタの好ましい構成を示す概略図である。
【図８】図７に示すカウンタの動作を説明するための図である。
【図９】図１に示す距離／クロック数変換回路の別の構成を示す概略図である。
【図１０】図１に示す距離／クロック数変換回路の更に別の構成を示す概略図である。
【図１１】図９に示す距離／クロック数変換回路の具体的な構成を示す概略図である。
【図１２】図１１に示す距離／クロック数変換回路の動作を説明するための図である。
【図１３】図９に示す距離／クロック数変換回路の別の具体的な構成を示す概略図である。
【図１４】図１３に示す距離／クロック数変換回路の動作を説明するための図である。
【図１５】図１０に示す距離／クロック数変換回路の具体的な構成を示す概略図である。
【図１６】図１５に示す距離／クロック数変換回路の動作を説明するための図である。
【図１７】図１０に示す距離／クロック数変換回路の更に別の具体的な構成を示す概略図である。
【図１８】図１７に示す距離／クロック数変換回路の動作を説明するための図である。
【図１９】最短検索時間の比較を示す図である。
【図２０】消費電力の比較を示す図である。
【発明を実施するための形態】
【００１３】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【００１４】
図１は、この発明の実施の形態による連想メモリの構成を示す概略ブロック図である。図１を参照して、この発明の実施の形態１による連想メモリ１００は、メモリアレイ部１０と、Ｗｉｎｎｅｒ検出器２０とを備える。
【００１５】
メモリアレイ部１０は、メモリ部１と、行デコーダ２と、列デコーダ３と、読出／書込回路４と、検索データ保存回路５とを含む。
【００１６】
メモリ部１は、参照データ保存回路（Ｓｔｏｒａｇｅ  Ｃｅｌｌ：ＳＣ）ＳＣ１１〜ＳＣ１Ｗ，ＳＣ２１〜ＳＣ２Ｗ，・・・，ＳＣＲ１〜ＳＣＲＷと、距離演算回路（Ｄｉｓｔａｎｃｅ  Ｐｒｏｃｅｓｓｏｒ：ＤＰ）ＤＰ１１〜ＤＰ１Ｗ，ＤＰ２１〜ＤＰ２Ｗ，・・・，ＤＰＲ１〜ＤＰＲＷと、距離／クロック数変換回路ＤＣ１〜ＤＣＲとを含む。なお、ＷおよびＲの各々は、２以上の整数である。
【００１７】
距離演算回路ＤＰ１１〜ＤＰ１Ｗは、それぞれ、参照データ保存回路ＳＣ１１〜ＳＣ１Ｗに対応して設けられる。また、距離演算回路ＤＰ２１〜ＤＰ２Ｗは、それぞれ、参照データ保存回路ＳＣ２１〜ＳＣ２Ｗに対応して設けられる。以下、同様にして、距離演算回路ＤＰＲ１〜ＤＰＲＷは、それぞれ、参照データ保存回路ＳＣＲ１〜ＳＣＲＷに対応して設けられる。
【００１８】
距離／クロック数変換回路ＤＣ１は、距離演算回路ＤＰ１１〜ＤＰ１Ｗに対応して設けられる。距離／クロック数変換回路ＤＣ２は、距離演算回路ＤＰ２１〜ＤＰ２Ｗに対応して設けられる。以下、同様にして、距離／クロック数変換回路ＤＣＲは、距離演算回路ＤＰＲ１〜ＤＰＲＷに対応して設けられる。
【００１９】
参照データ保存回路ＳＣ１１〜ＳＣ１Ｗ，ＳＣ２１〜ＳＣ２Ｗ，・・・，ＳＣＲ１〜ＳＣＲＷは、行デコーダ２、列デコーダ３および読出／書込回路４によって書き込まれた参照データを保存する。この場合、参照データ保存回路ＳＣ１１〜ＳＣ１Ｗは、Ｍ×Ｗ（Ｍは１以上の整数）ビットの参照データ１を保存し、参照データ保存回路ＳＣ２１〜ＳＣ２Ｗは、Ｍ×Ｗビットの参照データ２を保存し、以下、同様にして、参照データ保存回路ＳＣＲ１〜ＳＣＲＷは、Ｍ×Ｗビットの参照データＲを保存する。つまり、参照データ保存回路ＳＣ１１〜ＳＣ１Ｗ，ＳＣ２１〜ＳＣ２Ｗ，・・・，ＳＣＲ１〜ＳＣＲＷの各々は、参照データのＭビットを保存する。
【００２０】
距離演算回路ＤＰ１１〜ＤＰ１Ｗは、参照データ保存回路ＳＣ１１〜ＳＣ１Ｗに保存されたＭ×Ｗビットの参照データ１と、検索データ保存回路５に保存されたＭ×Ｗビットの検索データとの距離を後述する方法によって演算する。また、距離演算回路ＤＰ２１〜ＤＰ２Ｗは、参照データ保存回路ＳＣ２１〜ＳＣ２Ｗに保存されたＭ×Ｗビットの参照データ２と、検索データ保存回路５に保存されたＭ×Ｗビットの検索データとの距離を後述する方法によって演算する。以下、同様にして、距離演算回路ＤＰＲ１〜ＤＰＲＷは、参照データ保存回路ＳＣＲ１〜ＳＣＲＷに保存されたＭ×Ｗビットの参照データＲと、検索データ保存回路５に保存されたＭ×Ｗビットの検索データとの距離を後述する方法によって演算する。そして、距離演算回路ＤＰ１１〜ＤＰ１Ｗ、距離演算回路ＤＰ２１〜ＤＰ２Ｗ、・・・、および距離演算回路ＤＰＲ１〜ＤＰＲＷにおける参照データと検索データとの距離の演算は、並列に行なわれる。
【００２１】
そして、距離演算回路ＤＰ１１〜ＤＰ１Ｗは、参照データ１と検索データとの距離をＭ×Ｗビットの距離信号として距離／クロック数変換回路ＤＣ１へ出力し、距離演算回路ＤＰ２１〜ＤＰ２Ｗは、参照データ２と検索データとの距離をＭ×Ｗビットの距離信号として距離／クロック数変換回路ＤＣ２へ出力し、以下、同様にして、距離演算回路ＤＰＲ１〜ＤＰＲＷは、参照データＲと検索データとの距離をＭ×Ｗビットの距離信号として距離／クロック数変換回路ＤＣＲへ出力する。
【００２２】
距離演算回路ＤＰ１１〜ＤＰ１Ｗの各々は、参照データ１と検索データとの距離を次式を用いて演算する。
【００２３】
【数１】
2014041676.tif 000003
【００２４】
式（１）において、Ｄｒｊ（ｒ＝１〜Ｒ，ｊ＝１〜Ｗ）は、参照データと検索データとの距離であり、Ｉｎｊは、検索データであり、Ｒｅｒｊは、参照データである。そして、各データＩｎｊ，Ｒｅｒｊの各々は、Ｍビットからなる。
【００２５】
このように、距離演算回路ＤＰ１１〜ＤＰ１Ｗは、Ｍ×Ｗビットの参照データ１と、Ｍ×Ｗビットの検索データとの距離をＭビットづつ演算し、各々がＭビットのビット長を有するＷ個の距離信号Ｄ１ｊを距離／クロック数変換回路ＤＣ１へ出力する。
【００２６】
距離演算回路ＤＰ２１〜ＤＰ２Ｗ、・・・および距離演算回路ＤＰＲ１〜ＤＰＲＷも、それぞれ、式（１）を用いて参照データ２〜Ｒと検索データとの距離を演算する。そして、距離演算回路ＤＰ２１〜ＤＰ２Ｗ、・・・および距離演算回路ＤＰＲ１〜ＤＰＲＷも、各々がＭビットのビット長を有するＷ個の距離信号Ｄ２ｊ〜ＤＲｊをそれぞれ距離／クロック数変換回路ＤＣ２〜ＤＣＲへ出力する。
【００２７】
距離／クロック数変換回路ＤＣ１は、距離演算回路ＤＰ１１〜ＤＰ１ＷからＷ個の距離信号Ｄ１ｊを受け、その受けたＷ個の距離信号Ｄ１ｊの和に一致するクロック信号ＣＬＫのクロック数ＣＮ＿ｔｏｔａｌ１を後述する方法によってカウントし、そのクロック数ＣＮ＿ｔｏｔａｌ１をカウントしたタイミングを示すタイミング信号Ｃ１をＷｉｎｎｅｒ検出器２０へ出力する。そして、このクロック数ＣＮ＿ｔｏｔａｌ１をカウントしたタイミングは、検索データと参照データ１との距離に一致する一致タイミングである。
【００２８】
また、距離／クロック数変換回路ＤＣ２は、距離演算回路ＤＰ２１〜ＤＰ２ＷからＷ個の距離信号Ｄ２ｊを受け、その受けたＷ個の距離信号Ｄ２ｊの和に一致するクロック信号ＣＬＫのクロック数ＣＮ＿ｔｏｔａｌ２を後述する方法によってカウントし、そのクロック数ＣＮ＿ｔｏｔａｌ２をカウントしたタイミングを示すタイミング信号Ｃ２をＷｉｎｎｅｒ検出器２０へ出力する。このクロック数ＣＮ＿ｔｏｔａｌ２をカウントしたタイミングは、検索データと参照データ２とが一致する一致タイミングである。
【００２９】
以下、同様にして、距離／クロック数変換回路ＤＣＲは、距離演算回路ＤＰＲ１〜ＤＰＲＷからＷ個の距離信号ＤＲｊを受け、その受けたＷ個の距離信号ＤＲｊの和に一致するクロック信号ＣＬＫのクロック数ＣＮ＿ｔｏｔａｌＲを後述する方法によってカウントし、そのクロック数ＣＮ＿ｔｏｔａｌＲをカウントしたタイミングを示すタイミング信号ＣＲをＷｉｎｎｅｒ検出器２０へ出力する。このクロック数ＣＮ＿ｔｏｔａｌＲをカウントしたタイミングは、検索データと参照データＲとが一致する一致タイミングである。
【００３０】
行デコーダ２は、メモリ部１の行方向のアドレスを指定する。列デコーダ３は、メモリ部１の列方向のアドレスを指定する。読出／書込回路４は、参照データを行デコーダ２および列デコーダ３によって指定された参照データ保存回路ＳＣ１１〜ＳＣ１Ｗ，ＳＣ２１〜ＳＣ２Ｗ，・・・，ＳＣＲ１〜ＳＣＲＷに書き込むとともに、検索データを検索データ保存回路５に書き込む。
【００３１】
検索データ保存回路５は、読出／書込回路４によって書き込まれた検索データ（Ｍ×Ｗビットのデータ）を保存する。
【００３２】
Ｗｉｎｎｅｒ検出器２０は、タイミング信号Ｃ１〜ＣＲをそれぞれ距離／クロック数変換回路ＤＣ１〜ＤＣＲから受け、その受けたタイミング信号Ｃ１〜ＣＲのうち、一致タイミングが早い順にｋ（ｋは１≦ｋ＜Ｒを満たす整数）個のタイミング信号を検出し、その検出したｋ個のタイミング信号を検索データと参照データとの類似度を示すマッチ信号Ｍ１〜Ｍｋとして出力する。
【００３３】
図２は、図１に示す距離／クロック数変換回路ＤＣ１の構成を示す概略図である。図２を参照して、距離／クロック数変換回路ＤＣ１は、増幅器２１〜２Ｗと、カウンタ一致検出回路３１〜３Ｗとを含む。
【００３４】
増幅器２１は、連想メモリ１００に内蔵されたクロック発生回路（図示せず）からクロック信号ＣＬＫを受け、その受けたクロック信号ＣＬＫを増幅して増幅器２２およびカウンタ一致検出回路３１へ出力する。
【００３５】
増幅器２２は、クロック信号ＣＬＫを増幅器２１から受け、その受けたクロック信号ＣＬＫを増幅器２３（図示せず）およびカウンタ一致検出回路３２へ出力する。
【００３６】
以下、同様にして、増幅器２Ｗは、クロック信号ＣＬＫを増幅器２Ｗ−１（図示せず）から受け、その受けたクロック信号ＣＬＫをカウンタ一致検出回路３Ｗへ出力する。
【００３７】
カウンタ一致検出回路３１〜３Ｗは、それぞれ、距離演算回路ＤＰ１１〜ＤＰ１Ｗに対応して設けられる。そして、カウンタ一致検出回路３１〜３Ｗは、直列に接続される。
【００３８】
カウンタ一致検出回路３１は、増幅器２１からクロック信号ＣＬＫを受け、連想メモリ１００の制御回路（図示せず）から検索開始信号ＳＢを受け、距離演算回路ＤＰ１１からＭビットのビット長を有する距離信号Ｄ１１を受ける。カウンタ一致検出回路３１は、検索開始信号ＳＢがＬ（論理ロー）レベルからＨ（論理ハイ）レベルに切り替わると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントする。そして、カウンタ一致検出回路３１は、そのクロック数をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してカウンタ一致検出回路３２へ出力する。カウンタ一致検出回路３１は、一致信号ＭＴＨ１を出力すると、動作を停止する。
【００３９】
カウンタ一致検出回路３２は、増幅器２２からクロック信号ＣＬＫを受け、カウンタ一致検出回路３１から一致信号ＭＴＨ１を受け、距離演算回路ＤＰ１２からＭビットのビット長を有する距離信号Ｄ１２を受ける。カウンタ一致検出回路３２は、カウンタ一致検出回路３１から一致信号ＭＴＨ１を受けるまで動作を停止している。カウンタ一致検出回路３２は、カウンタ一致検出回路３１から一致信号ＭＴＨ１を受けると駆動され、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１２に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントする。そして、カウンタ一致検出回路３２は、そのクロック数をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してカウンタ一致検出回路３３（図示せず）へ出力する。カウンタ一致検出回路３２は、一致信号ＭＴＨ２を出力すると、動作を停止する。
【００４０】
以下、同様にして、カウンタ一致検出回路３Ｗは、増幅器２Ｗからクロック信号ＣＬＫを受け、カウンタ一致検出回路３Ｗ−１から一致信号ＭＴＨＷ−１を受け、距離演算回路ＤＰ１ＷからＭビットのビット長を有する距離信号Ｄ１Ｗを受ける。カウンタ一致検出回路３Ｗは、カウンタ一致検出回路３Ｗ−１から一致信号ＭＴＨＷ−１を受けるまで動作を停止している。カウンタ一致検出回路３Ｗは、カウンタ一致検出回路３Ｗ−１から一致信号ＭＴＨＷ−１を受けると駆動され、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１Ｗに一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントする。そして、カウンタ一致検出回路３Ｗは、そのクロック数をカウントしたタイミングを示す一致信号ＭＴＨＷをタイミング信号Ｃ１としてクロック信号ＣＬＫに同期してＷｉｎｎｅｒ検出器２０へ出力する。カウンタ一致検出回路３Ｗは、タイミング信号Ｃ１を出力すると、動作を停止する。
【００４１】
なお、図１に示す距離／クロック数変換回路ＤＣ２〜距離／クロック数変換回路ＤＣＲの各々も、図２に示す距離／クロック数変換回路ＤＣ１と同じ構成からなる。
【００４２】
図３は、図２に示すカウンタ一致検出回路３１の構成を示す概略図である。図３を参照して、カウンタ一致検出回路３１は、カウンタ３１１と、一致検出回路３１２とを含む。
【００４３】
カウンタ３１１は、増幅器２１からクロック信号ＣＬＫを受け、連想メモリ１００の制御回路（図示せず）からリセット信号ＲＳＴを受ける。カウンタ３１１は、リセット信号ＲＳＴを受けると、カウンタ値をリセットし、Ｍビットのビット値をクロック信号ＣＬＫに同期して昇順にカウントする。そして、カウンタ３１１は、そのカウントしたカウンタ値ＣＶ１１をクロック信号ＣＬＫに同期して一致検出回路３１２へ順次出力する。
【００４４】
一致検出回路３１２は、増幅器２１からクロック信号ＣＬＫを受け、連想メモリ１００の制御回路（図示せず）から検索開始信号ＳＢを受け、カウンタ３１１からカウンタ値ＣＶ１１を順次受け、距離演算回路ＤＰ１１から距離信号Ｄ１１を受ける。
【００４５】
一致検出回路３１２は、検索開始信号ＳＢがＬレベルからＨレベルに切り替わると、距離信号Ｄ１１に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数をカウントする。そして、一致検出回路３１２は、そのクロック数をカウントしたタイミングを示す一致信号ＭＴＨ１をカウンタ一致検出回路３２へ出力する。
【００４６】
一致検出回路３１２は、一致信号ＭＴＨ１を出力すると、動作を停止する。
【００４７】
なお、図２に示すカウンタ一致検出回路３２〜３Ｗの各々も、図３に示すカウンタ一致検出回路３１と同じ構成からなる。この場合、カウンタ一致検出回路３２〜３Ｗの一致検出回路３１２は、それぞれ、カウンタ一致検出回路３１〜３Ｗ−１の一致検出回路３１２から一致信号ＭＴＨ１〜ＭＴＨＷ−１を受けるまで動作を停止し、一致信号ＭＴＨ１〜ＭＴＨＷ−１を受けると駆動され、動作を開始する。
【００４８】
図４は、図３に示すカウンタ一致検出回路３１の動作を説明するための図である。なお、図４においては、カウンタ値ＣＶ１１および距離信号Ｄ１１の各々が３ビットである場合を例にしてカウンタ一致検出回路３１の動作を説明する。また、距離信号Ｄ１１は、“０１１”からなるものとする。
【００４９】
図４を参照して、カウンタ一致検出回路３１のカウンタ３１１は、連想メモリ１００の制御回路からリセット信号ＲＳＴを受けると、カウント数をリセットし、クロック信号ＣＬＫの連続する周期Ｔ１，Ｔ２，Ｔ３，Ｔ４に同期して、それぞれ、“０００”，“００１”，“０１０”，“０１１”のビット値を順次カウントし、そのカウントした“０００”，“００１”，“０１０”，“０１１”のカウンタ値ＣＶ１１を一致検出回路３１２へ順次出力する。
【００５０】
そして、一致検出回路３１２は、距離演算回路ＤＰ１１から“０１１”の距離信号Ｄ１１を受け、クロック信号ＣＬＫの周期Ｔ１に同期して“０００”のカウンタ値ＣＶ１１をカウンタ３１１から受けると、タイミングｔ１において“０”のクロック数をカウントし、“０”のクロック数において、“０００”のカウンタ値ＣＶ１１が“０１１”の距離信号Ｄ１１に一致しないことを検出する。
【００５１】
そして、一致検出回路３１２は、クロック信号ＣＬＫの周期Ｔ１の次の周期Ｔ２に同期して“００１”のカウンタ値ＣＶ１１をカウンタ３１１から受けると、タイミングｔ２において“１”のクロック数をカウントし、“１”のクロック数において、“００１”のカウンタ値ＣＶ１１が“０１１”の距離信号Ｄ１１に一致しないことを検出する。
【００５２】
また、一致検出回路３１２は、クロック信号ＣＬＫの周期Ｔ２の次の周期Ｔ３に同期して“０１０”のカウンタ値ＣＶ１１をカウンタ３１１から受けると、タイミングｔ３において“２”のクロック数をカウントし、“２”のクロック数において、“０１０”のカウンタ値ＣＶ１１が“０１１”の距離信号Ｄ１１に一致しないことを検出する。
【００５３】
更に、一致検出回路３１２は、クロック信号ＣＬＫの周期Ｔ３の次の周期Ｔ４に同期して“０１１”のカウンタ値ＣＶ１１をカウンタ３１１から受けると、タイミングｔ４において“３”のクロック数をカウントし、“３”のクロック数において、“０１１”のカウンタ値ＣＶ１１が“０１１”の距離信号Ｄ１１に一致することを検出する。そして、一致検出回路３１２は、“０１１”の距離信号Ｄ１１に一致する“０１１”のカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数（＝“３”）をカウントしたタイミングｔ４を示す一致信号ＭＴＨ１をカウンタ一致検出回路３２および連想メモリ１００の制御回路へ出力する。その後、一致検出回路３１２は、図４において、“４”，“５”のクロック数において、“０１１”のカウンタ値が保持されているように、動作を停止する。
【００５４】
この場合、カウンタ一致検出回路３１は、タイミングｔ１において“０”のクロック数をカウントしてからタイミングｔ４において“３”のクロック数をカウントして一致信号ＭＴＨ１を出力するまでに、タイミングｔ１からタイミングｔ４までの時間（＝ｔ４−ｔ１）を要する。
【００５５】
なお、図２に示すカウンタ一致検出回路３２〜３Ｗ−１の各々において、カウンタ３１１は、連想メモリ１００の制御回路からリセット信号ＲＳＴを受けるまで動作を停止し、連想メモリ１００の制御回路からリセット信号ＲＳＴを受けると、“０００”，“００１”，“０１０”，“０１１”，・・・のビット値を順次カウントし、そのカウントした“０００”，“００１”，“０１０”，“０１１”，・・・のカウンタ値（＝各カウンタ値ＣＶ１２〜ＣＶ１Ｗ−１）を一致検出回路３１２へ順次出力する。
【００５６】
カウンタ一致検出回路３２〜３Ｗ−１の一致検出回路３１２は、それぞれ、カウンタ一致検出回路３１〜３Ｗ−２の一致検出回路３１２から一致信号ＭＴＨ１〜ＭＴＨＷ−２を受けるまで動作を停止し、一致信号ＭＴＨ１〜ＭＴＨＷ−２を受けると、カウンタ値ＣＶ１２〜ＣＶ１Ｗ−１がそれぞれ距離信号Ｄ１２〜Ｄ１Ｗ−１に一致するときのクロック信号ＣＬＫのクロック数をカウントし、そのクロック数をカウントしたタイミングを示す一致信号ＭＴＨ２〜ＭＴＨＷ−１をそれぞれカウンタ一致検出回路３３〜３Ｗおよび連想メモリ１００の制御回路へ出力する。そして、カウンタ一致検出回路３２〜３Ｗ−１の一致検出回路３１２は、動作を停止する。
【００５７】
また、カウンタ一致検出回路３Ｗのカウンタ３１１は、連想メモリ１００の制御回路からリセット信号ＲＳＴを受けるまで動作を停止し、連想メモリ１００の制御回路からリセット信号ＲＳＴを受けると、“０００”，“００１”，“０１０”，“０１１”，・・・のビット値を順次カウントし、そのカウントした“０００”，“００１”，“０１０”，“０１１”，・・・のカウンタ値ＣＶ１Ｗを一致検出回路３１２へ順次出力する。
【００５８】
カウンタ一致検出回路３Ｗの一致検出回路３１２は、カウンタ一致検出回路３Ｗ−１の一致検出回路３１２から一致信号ＭＴＨＷ−１を受けるまで動作を停止し、一致信号ＭＴＨＷ−１を受けると、カウンタ値ＣＶ１Ｗが距離信号Ｄ１Ｗに一致するときのクロック信号ＣＬＫのクロック数をカウントし、そのクロック数をカウントしたタイミングを示すタイミング信号（各タイミング信号Ｃ１〜ＣＲ）をＷｉｎｎｅｒ検出器２０および連想メモリ１００の制御回路へ出力する。そして、カウンタ一致検出回路３Ｗの一致検出回路３１２は、動作を停止する。
【００５９】
連想メモリ１００の制御回路は、カウンタ一致検出回路３１〜３Ｗ−１からそれぞれ一致信号ＭＴＨ１〜ＭＴＨＷ−１を受けると、リセット信号ＲＳＴをそれぞれカウンタ一致検出回路３２〜３Ｗへ出力する。また、連想メモリ１００の制御回路は、カウンタ一致検出回路３Ｗからタイミング信号Ｃ１を受けると、リセット信号ＲＳＴをカウンタ一致検出回路３１〜３Ｗへ出力する。
【００６０】
図５は、図１に示す距離／クロック数変換回路ＤＣ１の動作を説明するための図である。なお、図５においては、距離／クロック数変換回路ＤＣ１が２つのカウンタ一致検出回路３１，３２からなる場合を例にして距離／クロック数変換回路ＤＣ１の動作を説明する。また、距離信号Ｄ１１が“３”からなり、距離信号Ｄ１２が“５”からなることを前提とする。
【００６１】
図５を参照して、距離演算回路ＤＰ１１は、検索データと参照データＳＣ１１との距離を式（１）に従って演算し、距離信号Ｄ１１（＝“０１１”）をカウンタ一致検出回路３１へ出力する。また、距離演算回路ＤＰ１２は、検索データと参照データＳＣ１２との距離を式（１）に従って演算し、距離信号Ｄ１２（＝“１０１”）をカウンタ一致検出回路３２へ出力する。
【００６２】
カウンタ一致検出回路３１は、距離演算回路ＤＰ１１から距離信号Ｄ１１（＝“０１１”）を受け、連想メモリ１００の制御回路からリセット信号ＲＳＴおよび検索開始信号ＳＢを受けると、上述した方法によって、カウンタ値ＣＶ１１が距離信号Ｄ１１（＝“０１１”）に一致するときのクロック信号ＣＬＫのクロック数（＝“３”）をカウントし、“３”のクロック数をカウントしたタイミングを示す一致信号ＭＴＨ１をカウンタ一致検出回路３２および連想メモリ１００の制御回路へ出力する。そして、カウンタ一致検出回路３１は、動作を停止する。
【００６３】
カウンタ一致検出回路３２は、距離演算回路ＤＰ１２から距離信号Ｄ１２（＝“１０１”）を受け、連想メモリ１００の制御回路からリセット信号ＲＳＴを受ける。そして、カウンタ一致検出回路３２は、“３”のクロック数が得られたタイミングでカウンタ一致検出回路３１から一致信号ＭＴＨ１を受けると、動作を開始し、距離信号Ｄ１２（＝“１０１”）に一致するカウンタ値ＣＶ１２（＝“１０１”）が得られるときのクロック信号ＣＬＫのクロック数（＝“５”）をカウントし、“５”のクロック数をカウントしたタイミングでカウンタ値ＣＶ１２（＝“１０１”）が距離信号Ｄ１２（＝“１０１”）に一致することを検出する。
【００６４】
そうすると、カウンタ一致検出回路３２は、“５”のクロック数をカウントしたタイミングを示すタイミング信号Ｃ１をＷｉｎｎｅｒ検出器２０および連想メモリ１００の制御回路へ出力する。そして、カウンタ一致検出回路３２は、動作を停止する。
【００６５】
このように、カウンタ一致検出回路３２は、カウンタ一致検出回路３１による“３”のクロック数のカウントが完了した後に、“５”のクロック数をカウントしたタイミングで“５”のクロック数をカウントしたタイミングを示すタイミング信号Ｃ１を出力する。従って、カウンタ一致検出回路３２は、カウンタ一致検出回路３１によるクロック数のカウント開始から“３”＋“５”＝“８”のクロック数をカウントするまでの時間が経過したタイミングで“５”のクロック数をカウントしたタイミングを示すタイミング信号Ｃ１を出力する。即ち、カウンタ一致検出回路３２は、“３”の距離信号と“５”の距離信号との和である“８”の距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントし、そのクロック数をカウントしたタイミングを示すタイミング信号Ｃ１を出力する。
【００６６】
２つのカウンタ一致検出回路３１，３２が全体でカウントする“８”のクロック数は、カウンタ一致検出回路３１がカウントする“３”のクロック数と、カウンタ一致検出回路３２がカウントする“５”のクロック数とを加算したものである。このことは、カウンタ一致検出回路３２が、カウンタ一致検出回路３１において“３”のクロック数がカウントされたタイミングでカウンタ一致検出回路３１から一致信号ＭＴＨ１を受けると、距離信号Ｄ１２に一致するカウンタ値ＣＶ１２が得られるときのクロック数をカウントする動作を開始することからも明らかである（図５参照）。
【００６７】
その結果、２つのカウンタ一致検出回路３１，３２が全体で“８”のクロック数をカウントすることは、距離“３”と距離“５”との和（＝“８”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントすることに相当する。
【００６８】
距離／クロック数変換回路ＤＣ１は、一般的に、Ｗ個の距離信号Ｄ１１〜Ｄ１Ｗを受ける。そして、Ｗ個の距離信号Ｄ１１〜Ｄ１Ｗの各々は、Ｍビットのビット長を有する。従って、距離／クロック数変換回路ＤＣ１は、Ｍ×Ｗビットのビット長を有する距離信号Ｄ１１Ｄ１２・・・Ｄ１Ｗを受ける。
【００６９】
そして、距離／クロック数変換回路ＤＣ１において、カウンタ一致検出回路３１〜３Ｗは、それぞれ、距離信号Ｄ１１〜Ｄ１Ｗにそれぞれ一致するカウンタ値ＣＶ１１〜ＣＶ１Ｗが得られるときのクロック信号ＣＬＫのクロック数ＣＮ１〜ＣＮＷをカウントする。また、カウンタ一致検出回路３２〜３Ｗは、それぞれ、カウンタ一致検出回路３１〜３Ｗ−１から一致信号ＭＴＨ２〜ＭＴＨＷ−１を受けた後に、距離信号Ｄ１２〜Ｄ１Ｗにそれぞれ一致するカウンタ値ＣＶ１２〜ＣＶ１Ｗが得られるときのクロック信号ＣＬＫのクロック数ＣＮ２〜ＣＮＷのカウントを開始する。
【００７０】
その結果、距離／クロック数変換回路ＤＣ１がカウントするクロック数ＣＮ＿ｔｏｔａｌは、クロック数ＣＮ１〜ＣＮＷの和に等しい。そうすると、クロック数ＣＮ１〜ＣＮＷは、それぞれ、距離信号Ｄ１１〜Ｄ１Ｗを表わすので、クロック数ＣＮ＿ｔｏｔａｌは、距離信号Ｄ１１〜Ｄ１Ｗの和を表わす。
【００７１】
一方、マンハッタン距離ｎＭは、次式によって表わされる。
【００７２】
【数２】
2014041676.tif 000004
【００７３】
式（２）の右辺の｜Ｉｎｊ−Ｒｅｊ｜は、式（１）の右辺の｜Ｉｎｊ−Ｒｅｒｊ｜において、１つの行（ｒによって表わされる）における検索データと参照データとの距離｜Ｉｎｊ−Ｒｅｊ｜に一致する。
【００７４】
従って、マンハッタン距離ｎＭは、式（１）によって演算した距離をＷ個の距離について加算したものに等しい。
【００７５】
そうすると、距離／クロック数変換回路ＤＣ１がクロック数ＣＮ＿ｔｏｔａｌをカウントしたタイミングを示すタイミング信号Ｃ１を出力することは、マンハッタン距離ｎＭによって検索データに類似する参照データを検索し、検索データに類似する参照データを検出したことを示すＷｉｎｎｅｒ信号を出力することに相当する。
【００７６】
なお、距離／クロック数変換回路ＤＣ２〜ＤＣＲの各々も、図５において説明した距離／クロック数変換回路ＤＣ１の動作と同じ動作によって、それぞれ、タイミング信号Ｃ２〜ＣＲを出力する。
【００７７】
図６は、図１に示すＷｉｎｎｅｒ検出器２０の動作を説明するための図である。図６を参照して、距離／クロック数変換回路ＤＣ１〜ＤＣＲは、それぞれ、タイミング信号Ｃ１〜ＣＲをクロック信号ＣＬＫに同期してＷｉｎｎｅｒ検出器２０へ出力する。
【００７８】
Ｗｉｎｎｅｒ検出器２０は、タイミング信号Ｃ１〜ＣＲを受け、その受けたタイミング信号Ｃ１〜ＣＲの立ち上がりタイミングｔ１〜ｔＲを検出する。そして、Ｗｉｎｎｅｒ検出器２０は、立ち上がりタイミングｔ１〜ｔＲが早い順にｋ個のタイミング信号Ｃ’１〜Ｃ’ｋを検出する。そうすると、Ｗｉｎｎｅｒ検出器２０は、タイミング信号Ｃ’１〜Ｃ’ｋをマッチ信号Ｍ１〜Ｍｋとして出力する。
【００７９】
例えば、２個のマッチ信号Ｍ１，Ｍ２を検出する場合、Ｗｉｎｎｅｒ検出器２０は、タイミング信号Ｃ１〜ＣＲのうち、立ち上がりタイミングが早い順に２個のタイミング信号Ｃ１，Ｃ３を検出し、その検出したタイミング信号Ｃ１，Ｃ３をマッチ信号Ｍ１，Ｍ２として出力する。
【００８０】
なお、ｋ＝２以外のｋ個のタイミング信号Ｃ’１〜Ｃ’ｋを検出する場合も、Ｗｉｎｎｅｒ検出器２０は、同様にして、ｋ個のタイミング信号Ｃ’１〜Ｃ’ｋを検出し、その検出したｋ個のタイミング信号Ｃ’１〜Ｃ’ｋをマッチ信号Ｍ１〜Ｍｋとして出力する。
【００８１】
ｋ＝１である場合、Ｗｉｎｎｅｒ検出器２０は、検索データに最も類似する参照データに対応するタイミング信号（タイミング信号Ｃ１〜ＣＲのいずれか）をマッチ信号Ｍ１として出力する。
【００８２】
また、ｋ≠１である場合、Ｗｉｎｎｅｒ検出器２０は、検索データに類似するｋ個の参照データに対応するｋ個のタイミング信号Ｃ’１〜Ｃ’ｋをマッチ信号Ｍ１〜Ｍｋとして出力する。この場合、ｋ個のタイミング信号Ｃ’１〜Ｃ’ｋにおいて、ｋ個の立ち上がりタイミングは、相互に、少なくともクロック信号ＣＬＫの１周期分だけ異なるので、立ち上がりタイミングの早い順にｋ個のタイミング信号Ｃ’１〜Ｃ’ｋを正確に検出できる。つまり、連想メモリ１００は、検索データに類似するｋ個の参照データを正確に検索できる。
【００８３】
また、距離／クロック数変換回路ＤＣ１〜ＤＣＲの動作は、クロック信号ＣＬＫに同期して実行されるので、クロック信号ＣＬＫの周波数を高くすることによって、連想メモリ１００の動作を高速にできる。
【００８４】
従って、連想メモリ１００は、マンハッタン距離を用いた場合にも、正確、かつ、高速に類似検索を行うことができる。
【００８５】
図７は、図３に示すカウンタ３１１の好ましい構成を示す概略図である。この発明の実施の形態においては、カウンタ３１１は、好ましくは、図７に示すカウンタ３１１Ａからなる。
【００８６】
図７を参照して、カウンタ３１１Ａは、分周器３１１−１〜３１１−Ｍを含む。分周器３１１−１は、Ｍビットの距離信号（＝距離信号Ｄ１１〜Ｄ１Ｗ，Ｄ２１〜Ｄ２Ｗ，・・，ＤＲ１〜ＤＲＷの各々）の最下位ビットに対応して設けられる。分周器３１１−２は、Ｍビットの距離信号（＝距離信号Ｄ１１〜Ｄ１Ｗ，Ｄ２１〜Ｄ２Ｗ，・・，ＤＲ１〜ＤＲＷの各々）の第２位ビットに対応して設けられる。以下、同様にして、分周器３１１−Ｍは、Ｍビットの距離信号（＝距離信号Ｄ１１〜Ｄ１Ｗ，Ｄ２１〜Ｄ２Ｗ，・・，ＤＲ１〜ＤＲＷの各々）の最上位ビットに対応して設けられる。
【００８７】
分周器３１１−１は、クロック信号ＣＬＫを２０回分周し、その分周した分周信号ＤＶ１を一致検出回路３１２へ出力する。分周器３１１−２は、クロック信号ＣＬＫを２１回分周し、その分周した分周信号ＤＶ２を一致検出回路３１２へ出力する。以下、同様にして、分周器３１１−Ｍは、クロック信号ＣＬＫを２Ｍ−１回分周し、その分周した分周信号ＤＶＭを一致検出回路３１２へ出力する。
【００８８】
図８は、図７に示すカウンタ３１１Ａの動作を説明するための図である。なお、図８においては、カウンタ３１１Ａが４個の分周器３１１−１〜３１１−４からなる場合を例にしてカウンタ３１１Ａの動作を説明する。
【００８９】
図８を参照して、分周器３１１−１は、クロック信号ＣＬＫを２０回分周し、その分周した分周信号ＤＶ１を一致検出回路３１２へ出力する。分周器３１１−２は、クロック信号ＣＬＫを２１回分周し、その分周した分周信号ＤＶ２を一致検出回路３１２へ出力する。分周器３１１−３は、クロック信号ＣＬＫを２２回分周し、その分周した分周信号ＤＶ３を一致検出回路３１２へ出力する。分周器３１１−４は、クロック信号ＣＬＫを２３回分周し、その分周した分周信号ＤＶ４を一致検出回路３１２へ出力する。
【００９０】
その結果、４個の分周器３１１−１〜３１１−４は、最初に、“００００”のカウンタ値を出力し、２番目に、“０００１”のカウンタ値を出力し、３番目に、“００１０”のカウンタ値を出力し、以下、同様にして、１５番目に、“１１１０”のカウンタ値を出力し、最後に、“１１１１”のカウンタ値を出力する。
【００９１】
カウンタ３１１Ａは、４ビット以外のカウンタ値を出力する場合も、Ｍ個の分周器３１１−１〜３１１−Ｍによって構成され、Ｍ個の分周器３１１−１〜３１１−Ｍは、図８に示す態様と同じ態様で、それぞれ、クロック信号ＣＬＫを２０回、２１回、２２回、・・・、２Ｍ−１回分周し、その分周した分周信号ＤＶ１〜ＤＶＭを出力する。その結果、カウンタ３１１Ａは、Ｍビットのカウンタ値を“０１０２０３・・・０Ｍ”，“０１０２０３・・・１Ｍ”，・・・，“１１１２１３・・・１Ｍ”の順で出力する。
【００９２】
従って、分周器３１１−１〜３１１−Ｍのうち、Ｍビットのカウンタ値の最下位ビットから最上位ビットへ向かう方向において第ｍ（ｍは１≦ｍ≦Ｍを満たす整数）位のビット値を出力する分周器は、クロック信号ＣＬＫを２ｍ−１回に分周した信号を出力する。
【００９３】
このように、カウンタ３１１Ａを分周器３１１−１〜３１１−Ｍによって構成することによって、通常のカウンタに比べて、回路サイズを小さくでき、消費電力を低減できる。
【００９４】
カウンタ一致検出回路３１〜３Ｗのカウンタ３１１が図７に示すカウンタ３１１Ａからなっている場合も、距離／クロック数変換回路ＤＣ１〜ＤＣＲは、上述した方法によって、それぞれ、Ｍ×Ｗビットのビット長を有する距離信号Ｄ１１〜Ｄ１Ｗ，Ｄ２１〜Ｄ２Ｗ，・・・，ＤＲ１〜ＤＲＷの和にそれぞれ一致するクロック数ＣＮ＿ｔｏｔａｌ１〜ＣＮ＿ｔｏｔａｌＲをカウントしたタイミングを示すタイミング信号Ｃ１〜ＣＲをＷｉｎｎｅｒ検出器２０へ出力する。
【００９５】
上述したように、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、図２に示すように、直列に接続されたＷ個のカウンタ一致検出回路３１〜３Ｗからなる。
【００９６】
Ｗ＝２である場合、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、カウンタ一致検出回路３１，３２からなる。この場合、距離演算回路ＤＰ１１〜ＤＰ１Ｗは、距離演算回路ＤＰ１１，ＤＰ１２からなり、距離信号Ｄ１１〜Ｄ１Ｗは、距離信号Ｄ１１，Ｄ１２からなる。
【００９７】
そして、カウンタ一致検出回路３１は、距離信号Ｄ１１，Ｄ１２を一列に配列したときの一方端の距離信号である１番目の距離信号Ｄ１１に対応して設けられ、１番目の距離信号Ｄ１１を距離演算回路ＤＰ１１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、その受けた１番目の距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック数ＣＮ１をカウントし、クロック数ＣＮ１をカウントしたタイミングを示す一致信号ＭＴＨ１を出力する。
【００９８】
また、カウンタ一致検出回路３２は、距離信号Ｄ１１，Ｄ１２を一列に配列したときの一方端からＷ番目（＝２番目）の距離信号であるＷ番目（＝２番目）の距離信号Ｄ１２に対応して設けられ、カウンタ一致検出回路３１から一致信号ＭＴＨ１を受けると駆動されるとともにＷ番目（＝２番目）の距離信号Ｄ１２を距離演算回路ＤＰ１２から受け、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、その受けたＷ番目（＝２番目）の距離信号Ｄ１２に一致するカウンタ値が得られるときのクロック数ＣＮ２をカウントし、クロック数ＣＮ２をカウントしたタイミングを示すタイミング信号Ｃ１をＷｉｎｎｅｒ検出器２０へ出力する。
【００９９】
この場合、カウンタ一致検出回路３１は、「第１のカウンタ一致検出回路」を構成し、カウンタ一致検出回路３２は、「第２のカウンタ一致検出回路」を構成する。
【０１００】
また、Ｗ＝３以上である場合、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、カウンタ一致検出回路３１〜３Ｗからなる。
【０１０１】
そして、カウンタ一致検出回路３１は、距離信号Ｄ１１〜Ｄ１Ｗを一列に配列したときの一方端の距離信号である１番目の距離信号Ｄ１１に対応して設けられ、１番目の距離信号Ｄ１１を距離演算回路ＤＰ１１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、その受けた１番目の距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック数ＣＮ１をカウントし、クロック数ＣＮ１をカウントしたタイミングを示す一致信号ＭＴＨ１を出力する。
【０１０２】
また、カウンタ一致検出回路３２〜３Ｗ−１は、２番目の距離信号Ｄ１２からＷ−１番目の距離信号Ｄ１Ｗ−１までのＷ−２個の距離信号Ｄ１２〜Ｄ１Ｗ−１に対応して設けられる。そして、カウンタ一致検出回路３２〜３Ｗ−１の各々は、カウンタ一致検出回路３１またはｗ−１（ｗは２≦ｗ≦Ｗ−１を満たす整数）番目の距離信号に対応して設けられたカウンタ一致検出回路３２〜３Ｗ−２から１番目またはｗ−１番目の距離信号に対応して設けられたカウンタ一致検出回路３１〜３Ｗ−２から１番目またはｗ番目の距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントしたタイミングを示す一致信号ＭＴＨ１〜ＭＴＨ３Ｗ−２を受けると駆動されるとともにｗ番目の距離信号（＝距離信号Ｄ１２〜Ｄ１Ｗ−１のいずれか）を受け、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、ｗ番目の距離信号（＝距離信号Ｄ１２〜Ｄ１Ｗ−１のいずれか）に一致するカウンタ値が得られるときのクロック数ＣＮ３をカウントし、クロック数ＣＮ３をカウントしたタイミングを示す一致信号（＝一致信号ＭＴＨ２〜ＭＴＨＷ−１のいずれか）を出力する。
【０１０３】
更に、カウンタ一致検出回路３Ｗは、Ｗ番目の距離信号Ｄ１Ｗに対応して設けられ、Ｗ−１番目の距離信号に対応して設けられたカウンタ一致検出回路３Ｗ−１から一致信号ＭＴＨＷ−１を受けると駆動されるとともにＷ番目の距離信号Ｄ１Ｗを受け、カウンタ一致検出回路３Ｗ−１から一致信号ＭＴＨ３Ｗ−１を受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、Ｗ番目の距離信号Ｄ１Ｗに一致するカウンタ値が得られるときのクロック数ＣＮ４をカウントし、クロック数ＣＮ４をカウントしたタイミングを示すタイミング信号Ｃ１をＷｉｎｎｅｒ検出器２０へ出力する。
【０１０４】
この場合、カウンタ一致検出回路３１は、「第１のカウンタ一致検出回路」を構成し、カウンタ一致検出回路３２〜３Ｗ−１は、「Ｗ−２個の第３のカウンタ一致検出回路」を構成し、カウンタ一致検出回路３Ｗは、「第４のカウンタ一致検出回路」を構成する。
【０１０５】
図９は、図１に示す距離／クロック数変換回路ＤＣ１〜ＤＣＲの別の構成を示す概略図である。
【０１０６】
この発明の実施の形態においては、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、図９に示す距離／クロック数変換回路ＤＣ’１からなっていてもよい。この場合、Ｗ＝２ｉ（ｉは２以上の整数）である。
【０１０７】
図９を参照して、距離／クロック数変換回路ＤＣ’１は、増幅器４１〜４Ｌと、カウンタ一致検出回路５１〜５Ｌとを含む。ここで、Ｌ＝Ｗ／ｓ（ｓは、Ｗ以下の２ｘを満たす整数、ｘは、正の整数）である。
【０１０８】
増幅器４１は、連想メモリ１００に内蔵されたクロック発生回路（図示せず）からクロック信号ＣＬＫを受け、その受けたクロック信号ＣＬＫを増幅して増幅器４２およびカウンタ一致検出回路５１へ出力する。
【０１０９】
増幅器４２は、クロック信号ＣＬＫを増幅器４１から受け、その受けたクロック信号ＣＬＫを増幅して増幅器４３（図示せず）およびカウンタ一致検出回路５２へ出力する。
【０１１０】
以下、同様にして、増幅器４Ｌは、クロック信号ＣＬＫを増幅器４Ｌ−１（図示せず）から受け、その受けたクロック信号ＣＬＫを増幅してカウンタ一致検出回路５Ｌへ出力する。
【０１１１】
カウンタ一致検出回路５１，５２，・・・，５Ｌは、それぞれ、ｓ個の距離演算回路ＤＰ１１，ＤＰ１（１＋Ｌ），・・・，ＤＰ１（１＋（ｕ−１）Ｌ）、ｓ個の距離演算回路ＤＰ１２，ＤＰ１（２＋Ｌ），・・・，ＤＰ１（２＋（ｕ−１）Ｌ）、・・・、ｓ個の距離演算回路ＤＰ１Ｌ，ＤＰ１（Ｌ＋Ｌ），・・・，ＤＰ１（Ｌ＋（ｕ−１）Ｌ）に対応して設けられる。なお、ｕは、１，２，３，・・・，ｓである。
【０１１２】
そして、カウンタ一致検出回路５１〜５Ｌは、直列に接続される。また、カウンタ一致検出回路５１〜５Ｌの各々は、図３に示すカウンタ一致検出回路３１と同じ構成からなる。この場合、カウンタ一致検出回路５１〜５Ｌの各々は、図３に示すカウンタ３１１または図７に示すカウンタ３１１Ａを含む。
【０１１３】
カウンタ一致検出回路５１は、増幅器４１からクロック信号ＣＬＫを受け、連想メモリ１００の制御回路（図示せず）から検索開始信号ＳＢを受け、距離演算回路ＤＰ１１，ＤＰ１（１＋Ｌ），・・・，ＤＰ１（１＋（ｕ−１）Ｌ）からそれぞれ距離信号Ｄ１１，Ｄ１（１＋Ｌ），・・・，Ｄ１（１＋（ｕ−１）Ｌ）を受ける。
【０１１４】
カウンタ一致検出回路５１は、距離信号Ｄ１１，Ｄ１（１＋Ｌ），・・・，Ｄ１（１＋（ｕ−１）Ｌ）を受け、検索開始信号ＳＢがＬレベルからＨレベルに切り替わると、上述した方法によって、距離信号Ｄ１１，Ｄ１（１＋Ｌ），・・・，Ｄ１（１＋（ｕ−１）Ｌ）の和に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してカウンタ一致検出回路５２へ出力する。その後、カウンタ一致検出回路５１は、動作を停止する。
【０１１５】
また、カウンタ一致検出回路５２は、増幅器４２からクロック信号ＣＬＫを受け、カウンタ一致検出回路５１から一致信号ＭＴＨ１を受け、距離演算回路ＤＰ１２，ＤＰ１（２＋Ｌ），・・・，ＤＰ１（２＋（ｕ−１）Ｌ）からそれぞれ距離信号Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ）を受ける。
【０１１６】
カウンタ一致検出回路５２は、距離信号Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ）を受け、一致信号ＭＴＨ１を受けると、上述した方法によって、距離信号Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ）の和に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してカウンタ一致検出回路５３へ出力する。その後、カウンタ一致検出回路５２は、動作を停止する。
【０１１７】
以下、同様にして、カウンタ一致検出回路５Ｌは、増幅器４Ｌからクロック信号ＣＬＫを受け、カウンタ一致検出回路５Ｌ−１から一致信号ＭＴＨＬ−１を受け、距離演算回路ＤＰ１Ｌ，ＤＰ１（Ｌ＋Ｌ），・・・，ＤＰ１（Ｌ＋（ｕ−１）Ｌ）からそれぞれ距離信号Ｄ１Ｌ，Ｄ１（Ｌ＋Ｌ），・・・，Ｄ１（Ｌ＋（ｕ−１）Ｌ）を受ける。
【０１１８】
カウンタ一致検出回路５Ｌは、距離信号Ｄ１Ｌ，Ｄ１（Ｌ＋Ｌ），・・・，Ｄ１（Ｌ＋（ｕ−１）Ｌ）を受け、一致信号ＭＴＨＬ−１を受けると、上述した方法によって、距離信号Ｄ１Ｌ，Ｄ１（Ｌ＋Ｌ），・・・，Ｄ１（Ｌ＋（ｕ−１）Ｌ）の和に一致するカウンタ値ＣＶ１Ｌが得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿Ｌをカウントする。そして、カウンタ一致検出回路５Ｌは、クロック数ＣＮ＿Ｌをカウントしたタイミングを示すタイミング信号Ｃ１をクロック信号ＣＬＫに同期してＷｉｎｎｅｒ検出器２０へ出力する。その後、カウンタ一致検出回路５Ｌは、動作を停止する。
【０１１９】
なお、距離信号Ｄ１１，Ｄ１（１＋Ｌ），・・・，Ｄ１（１＋（ｕ−１）Ｌ），Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ），・・・，Ｄ１Ｌ，Ｄ１（Ｌ＋Ｌ），・・・，Ｄ１（Ｌ＋（ｕ−１）Ｌ）の各々は、Ｍビットのビット値からなる。
【０１２０】
従って、距離／クロック数変換回路ＤＣ１〜ＤＣＲ（＝距離／クロック数変換回路ＤＣ’１）の各々は、Ｌ（＝Ｗ／ｓ）個の距離信号に対応して設けられ、各々がＭビットのビット長を有するＷ個の距離信号に基づいて、タイミング信号（タイミング信号Ｃ１〜ＣＲのいずれか）を出力するＬ（＝Ｗ／ｓ）個のカウンタ一致検出回路を含み、Ｌ（＝Ｗ／ｓ）個のカウンタ一致検出回路は、各々がＬ（＝Ｗ／ｓ）個の距離信号からなるｓ組の距離信号を受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、その受けたｓ組の距離信号に含まれるＷ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントし、そのクロック数をカウントしたタイミングを示すタイミング信号（タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０１２１】
カウンタ一致検出回路５１〜５Ｌ−１の各々は、ｓ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（＝クロック数ＣＮ＿１〜ＣＮ＿Ｌ−１のいずれか）をカウントしたタイミングを示す一致信号（＝一致信号ＭＴＨ１〜ＭＴＨＬ−１のいずれか）を出力し、カウンタ一致検出回路５Ｌは、ｓ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿Ｌをカウントしたタイミングを示すタイミング信号（タイミング信号Ｃ１〜ＣＲのいずれか）を出力し、Ｌ＝Ｗ／ｓであるので、Ｌ（＝Ｗ／ｓ）個のカウンタ一致検出回路５１〜５Ｌは、結局、（Ｗ／ｓ）×ｓ＝Ｗ個の距離信号の和に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントしたタイミングを示すタイミング信号（タイミング信号Ｃ１〜ＣＲのいずれか）を出力することになる。
【０１２２】
図１０は、図１に示す距離／クロック数変換回路ＤＣ１〜ＤＣＲの更に別の構成を示す概略図である。
【０１２３】
この発明の実施の形態においては、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、図１０に示す距離／クロック数変換回路ＤＣ”１からなっていてもよい。この場合も、Ｗ＝２ｉ（ｉは２以上の整数）である。
【０１２４】
図１０を参照して、距離／クロック数変換回路ＤＣ”１は、図９に示す距離／クロック数変換回路ＤＣ’１にスイッチング制御回路６０およびマルチプレクサ６１〜６Ｌを追加したものであり、その他は、距離／クロック数変換回路ＤＣ’１と同じである。
【０１２５】
距離／クロック数変換回路ＤＣ”１においては、増幅器４１〜４Ｌは、クロック信号ＣＬＫを増幅し、その増幅したクロック信号ＣＬＫをそれぞれカウンタ一致検出回路５１〜５Ｌへ出力するとともに、その増幅したクロック信号ＣＬＫをスイッチング制御回路６０へ出力する。
【０１２６】
また、距離／クロック数変換回路ＤＣ”１においては、マルチプレクサ６１，６２，・・・，６Ｌは、それぞれ、ｓ個の距離演算回路ＤＰ１１，ＤＰ１（１＋Ｌ），・・・，ＤＰ１（１＋（ｕ−１）Ｌ）、ｓ個の距離演算回路ＤＰ１２，ＤＰ１（２＋Ｌ），・・・，ＤＰ１（２＋（ｕ−１）Ｌ）、・・・、ｓ個の距離演算回路ＤＰ１Ｌ，ＤＰ１（Ｌ＋Ｌ），・・・，ＤＰ１（Ｌ＋（ｕ−１）Ｌ）に対応して設けられる。そして、カウンタ一致検出回路５１〜５Ｌは、それぞれ、マルチプレクサ６１〜６Ｌに対応して設けられる。
【０１２７】
スイッチング制御回路６０は、連想メモリ１００の制御回路から検索開始信号ＳＢおよびリセット信号ＲＳＴを受け、カウンタ一致検出回路５１〜５Ｌからそれぞれ一致信号ＭＴＨ１〜ＭＴＨＬを受ける。
【０１２８】
そして、スイッチング制御回路６０は、検索開始信号ＳＢおよびリセット信号ＲＳＴを受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０１２９】
また、スイッチング制御回路６０は、一致信号ＭＴＨＬをカウンタ一致検出回路５Ｌから受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。スイッチング制御回路６０は、この処理をｓ−１回実行する。
【０１３０】
更に、スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５２へ出力するとともに出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。スイッチング制御回路６０は、この処理をｓ回実行する。
【０１３１】
更に、スイッチング制御回路６０は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５３へ出力するとともに出力信号ＯＵＴ３をマルチプレクサ６３へ出力する。スイッチング制御回路６０は、この処理をｓ回実行する。
【０１３２】
以下、同様にして、スイッチング制御回路６０は、一致信号ＭＴＨＬ−１をカウンタ一致検出回路５Ｌ−１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５Ｌへ出力するとともに出力信号ＯＵＴＬをマルチプレクサ６Ｌへ出力する。スイッチング制御回路６０は、この処理をｓ回実行する。
【０１３３】
マルチプレクサ６１は、ｓ個の距離信号Ｄ１１，Ｄ１（１＋Ｌ），・・・，Ｄ１（１＋（ｕ−１）Ｌ）を受ける。そして、マルチプレクサ６１は、１回目の出力信号ＯＵＴ１をスイッチング制御回路６０から受けると、距離信号Ｄ１１をカウンタ一致検出回路５１へ出力し、２回目の出力信号ＯＵＴ１をスイッチング制御回路６０から受けると、距離信号Ｄ１（１＋Ｌ）をカウンタ一致検出回路５１へ出力し、以下、同様にして、ｓ回目の出力信号ＯＵＴ１をスイッチング制御回路６０から受けると、距離信号Ｄ１（１＋（ｕ−１）Ｌ）をカウンタ一致検出回路５１へ出力する。
【０１３４】
マルチプレクサ６２は、ｓ個の距離信号Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ）を受ける。そして、マルチプレクサ６２は、１回目の出力信号ＯＵＴ２をスイッチング制御回路６０から受けると、距離信号Ｄ１２をカウンタ一致検出回路５２へ出力し、２回目の出力信号ＯＵＴ２をスイッチング制御回路６０から受けると、距離信号Ｄ１（２＋Ｌ）をカウンタ一致検出回路５２へ出力し、以下、同様にして、ｓ回目の出力信号ＯＵＴ２をスイッチング制御回路６０から受けると、距離信号Ｄ１（２＋（ｕ−１）Ｌ）をカウンタ一致検出回路５２へ出力する。
【０１３５】
以下、同様にして、マルチプレクサ６Ｌは、ｓ個の距離信号Ｄ１Ｌ，Ｄ１（Ｌ＋Ｌ），・・・，Ｄ１（Ｌ＋（ｕ−１）Ｌ）を受ける。そして、マルチプレクサ６Ｌは、１回目の出力信号ＯＵＴＬをスイッチング制御回路６０から受けると、距離信号Ｄ１Ｌをカウンタ一致検出回路５Ｌへ出力し、２回目の出力信号ＯＵＴＬをスイッチング制御回路６０から受けると、距離信号Ｄ１（Ｌ＋Ｌ）をカウンタ一致検出回路５Ｌへ出力し、以下、同様にして、ｓ回目の出力信号ＯＵＴＬをスイッチング制御回路６０から受けると、距離信号Ｄ１（Ｌ＋（ｕ−１）Ｌ）をカウンタ一致検出回路５Ｌへ出力する。
【０１３６】
カウンタ一致検出回路５１は、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５１は、距離信号Ｄ１１をマルチプレクサ６１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。カウンタ一致検出回路５１は、この処理をｓ個の距離信号Ｄ１１，Ｄ１（１＋Ｌ），・・・，Ｄ１（１＋（ｕ−１）Ｌ）の全てについて実行する。
【０１３７】
また、カウンタ一致検出回路５２は、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５２は、距離信号Ｄ１２をマルチプレクサ６２から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１２に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。カウンタ一致検出回路５２は、この処理をｓ個の距離信号Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ）の全てについて実行する。
【０１３８】
以下、同様にして、カウンタ一致検出回路５Ｌは、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５Ｌは、距離信号Ｄ１Ｌをマルチプレクサ６Ｌから受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１Ｌに一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿Ｌをカウントし、クロック数ＣＮ＿Ｌをカウントしたタイミングを示す一致信号ＭＴＨＬをスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５Ｌは、動作を停止する。カウンタ一致検出回路５Ｌは、この処理をｓ−１個の距離信号Ｄ１２，Ｄ１（２＋Ｌ），・・・，Ｄ１（２＋（ｕ−１）Ｌ−１）の全てについて実行する。
【０１３９】
そして、カウンタ一致検出回路５Ｌは、ｓ回目のリセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動されるとともに距離信号Ｄ１（Ｌ＋（ｕ−１）Ｌ）をマルチプレクサ６Ｌから受け、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１（Ｌ＋（ｕ−１）Ｌ）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿Ｌをカウントし、クロック数ＣＮ＿Ｌをカウントしたタイミングを示すタイミング信号Ｃ１をＷｉｎｎｅｒ検出器２０へ出力する。
【０１４０】
距離／クロック数変換回路ＤＣ１〜ＤＣＲ（＝距離／クロック数変換回路ＤＣ”１）の各々においては、検索データに類似する参照データの検索が開始されると、スイッチング制御回路６０は、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０１４１】
そして、マルチプレクサ６１は、スイッチング制御回路６０からの１回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１１をカウンタ一致検出回路５１へ出力する。
【０１４２】
カウンタ一致検出回路５１は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５１は、距離信号Ｄ１１をマルチプレクサ６１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０１４３】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５１からの一致信号ＭＴＨ１に応じて、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０１４４】
マルチプレクサ６２は、スイッチング制御回路６０からの１回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１２をカウンタ一致検出回路５２へ出力する。
【０１４５】
カウンタ一致検出回路５２は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５２は、距離信号Ｄ１２をマルチプレクサ６２から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１２に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０１４６】
以下、同様にして、スイッチング制御回路６０は、カウンタ一致検出回路５Ｌ−１からの一致信号ＭＴＨＬ−１に応じて、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５Ｌへ出力するとともに出力信号ＯＵＴＬをマルチプレクサ６Ｌへ出力する。
【０１４７】
そして、マルチプレクサ６Ｌは、スイッチング制御回路６０からの１回目の出力信号ＯＵＴＬに応じて、距離信号Ｄ１Ｌをカウンタ一致検出回路５Ｌへ出力する。
【０１４８】
カウンタ一致検出回路５Ｌは、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５Ｌは、距離信号Ｄ１Ｌをマルチプレクサ６Ｌから受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１Ｌに一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿Ｌをカウントし、クロック数ＣＮ＿Ｌをカウントしたタイミングを示す一致信号ＭＴＨＬをスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５Ｌは、動作を停止する。
【０１４９】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５Ｌからの一致信号ＭＴＨＬに応じて、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０１５０】
その後、カウンタ一致検出回路５１〜５Ｌ−１、スイッチング制御回路６０およびマルチプレクサ６１〜６Ｌ−１は、上述した動作をｓ−１回繰り返し実行し、カウンタ一致検出回路５Ｌおよびマルチプレクサ６Ｌは、上述した動作をｓ−２回繰り返し実行する。
【０１５１】
そして、カウンタ一致検出回路５Ｌは、ｓ回目のリセット信号ＲＳＴをスイッチング制御回路６０から受け、距離信号Ｄ１（Ｌ＋（ｕ−１）Ｌ）をマルチプレクサ６Ｌから受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１（Ｌ＋（ｕ−１）Ｌ）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿Ｌをカウントし、クロック数ＣＮ＿Ｌをカウントしたタイミングを示すタイミング信号Ｃ１をＷｉｎｎｅｒ検出器２０へ出力する。そして、カウンタ一致検出回路５Ｌは、動作を停止する。
【０１５２】
Ｌ（＝Ｗ／ｓ）個のカウンタ一致検出回路５１〜５Ｌを１個のカウンタ一致検出回路ＭＤＣと考えた場合、カウンタ一致検出回路ＭＤＣは、１回目、Ｌ（＝Ｗ／ｓ）個の距離信号Ｄ１１〜Ｄ１Ｌを受ける。そして、カウンタ一致検出回路５１〜５Ｌがそれぞれ距離信号Ｄ１１〜Ｄ１Ｌに一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１〜ＣＮ＿Ｌをカウントし、クロック数ＣＮ＿１〜ＣＮ＿Ｌをカウントしたタイミングを示す一致信号ＭＴＨ１〜ＭＴＨＬを出力することは、カウンタ一致検出回路ＭＤＣが距離信号Ｄ１１〜Ｄ１Ｌの和に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（ＣＮ＿１＋ＣＮ＿２＋・・・＋ＣＮ＿Ｌ）をカウントし、そのクロック数（ＣＮ＿１＋ＣＮ＿２＋・・・＋ＣＮ＿Ｌ）をカウントしたタイミングを示す一致信号を出力することに相当する。また、カウンタ一致検出回路ＭＤＣは、この処理をｓ−１回繰り返し実行する。そして、カウンタ一致検出回路ＭＤＣは、ｓ−１回目の一致信号を出力すると、Ｌ（＝Ｗ／ｓ）個の距離信号Ｄ１（１＋（ｕ−１）Ｌ），Ｄ１（２＋（ｕ−１）Ｌ），・・・，Ｄ１（Ｌ＋（ｕ−１）Ｌ）の和に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（ＣＮ＿１＋ＣＮ＿２＋・・・＋ＣＮ＿Ｌ）をカウントし、そのクロック数（ＣＮ＿１＋ＣＮ＿２＋・・・＋ＣＮ＿Ｌ）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０１５３】
従って、距離／クロック数変換回路ＤＣ”１においては、Ｌ（＝Ｗ／ｓ）個のカウンタ一致検出回路５１〜５Ｌは、Ｌ（＝Ｗ／ｓ）個の距離信号Ｄ１１〜Ｄ１Ｌを受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、その受けたＬ（＝Ｗ／ｓ）個の距離信号Ｄ１１〜Ｄ１Ｌの和に一致するカウンタ値が得られるときのクロック信号ＣＬＫの第１のクロック数をカウントし、第１のクロック数をカウントしたタイミングを示す第１の一致信号を出力する処理をｓ−１回繰り返し実行し、前記第１の一致信号をｓ−１回出力し、かつ、ｓ回目にＬ（＝Ｗ／ｓ）個の距離信号を受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、その受けたＬ（＝Ｗ／ｓ）個の距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫの第２のクロック数をカウントし、前記第２のクロック数をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０１５４】
図１１は、図９に示す距離／クロック数変換回路ＤＣ’１の具体的な構成を示す概略図である。
【０１５５】
図１１を参照して、Ｗ＝２ｉ＝２３＝８からなり、ｓ＝２ｘ＝２１＝２からなる場合、Ｌ＝Ｗ／ｓ＝８／２＝４であり、距離／クロック数変換回路ＤＣ’１−１は、増幅器４１〜４４と、カウンタ一致検出回路５１〜５４とを含む。
【０１５６】
また、Ｗ個の距離信号Ｄ１１〜Ｄ１Ｗは、８個の距離信号Ｄ１１〜Ｄ１８からなり、Ｗ個の距離演算回路ＤＰ１１〜ＤＰ１Ｗは、８個の距離演算回路ＤＰ１１〜ＤＰ１８からなる。ここで、距離信号Ｄ１１〜Ｄ１８は、それぞれ、Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”であるものとする。
【０１５７】
そして、カウンタ一致検出回路５１は、２個の距離演算回路ＤＰ１１，ＤＰ１５に対応して設けられ、カウンタ一致検出回路５２は、２個の距離演算回路ＤＰ１２，ＤＰ１６に対応して設けられ、カウンタ一致検出回路５３は、２個の距離演算回路ＤＰ１３，ＤＰ１７に対応して設けられ、カウンタ一致検出回路５４は、２個の距離演算回路ＤＰ１４，ＤＰ１８に対応して設けられる。
【０１５８】
図１２は、図１１に示す距離／クロック数変換回路ＤＣ’１−１の動作を説明するための図である。
【０１５９】
距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、図１１に示す距離／クロック数変換回路ＤＣ’１−１からなる。そして、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々（＝距離／クロック数変換回路ＤＣ’１−１）において、検索データに類似する参照データの検索が開始されると、カウンタ一致検出回路５１は、距離演算回路ＤＰ１１，ＤＰ１５からそれぞれ距離信号Ｄ１１（＝“３”），Ｄ１５（＝“２”）を受け、カウンタ一致検出回路５２は、距離演算回路ＤＰ１２，ＤＰ１６からそれぞれ距離信号Ｄ１２（＝“２”），Ｄ１６（＝“４”）を受け、カウンタ一致検出回路５３は、距離演算回路ＤＰ１３，ＤＰ１７からそれぞれ距離信号Ｄ１３（＝“５”），Ｄ１７（＝“２”）を受け、カウンタ一致検出回路５４は、距離演算回路ＤＰ１４，ＤＰ１８からそれぞれ距離信号Ｄ１４（＝“１”），Ｄ１８（＝“３”）を受ける。
【０１６０】
そうすると、カウンタ一致検出回路５１は、距離信号Ｄ１１（＝“３”），Ｄ１５（＝“２”）の和（＝“５”＝“１０１”）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ１（＝“５”）をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ１（＝“５”）をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してカウンタ一致検出回路５２へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０１６１】
カウンタ一致検出回路５２は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、距離信号Ｄ１２（＝“２”），Ｄ１６（＝“４”）の和（＝“６”＝“１１０”）に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ２（＝“６”）をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ２（＝“６”）をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してカウンタ一致検出回路５３へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０１６２】
カウンタ一致検出回路５３は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、距離信号Ｄ１３（＝“５”），Ｄ１７（＝“２”）の和（＝“７”＝“１１１”）に一致するカウンタ値ＣＶ１３が得られるときのクロック信号ＣＬＫのクロック数ＣＮ４（＝“７”）をカウントする。そして、カウンタ一致検出回路５３は、クロック数ＣＮ４（＝“７”）をカウントしたタイミングを示す一致信号ＭＴＨ３をクロック信号ＣＬＫに同期してカウンタ一致検出回路５４へ出力する。そして、カウンタ一致検出回路５３は、動作を停止する。
【０１６３】
カウンタ一致検出回路５４は、一致信号ＭＴＨ３をカウンタ一致検出回路５３から受けると、距離信号Ｄ１４（＝“１”），Ｄ１８（＝“３”）の和（＝“４”＝“１００”）に一致するカウンタ値ＣＶ１４が得られるときのクロック数ＣＮ４（＝“４”）をカウントする。そして、カウンタ一致検出回路５４は、クロック数ＣＮ４（＝“４”）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をクロック信号ＣＬＫに同期してＷｉｎｎｅｒ検出器２０へ出力する。そして、カウンタ一致検出回路５４は、動作を停止する。
【０１６４】
このように、カウンタ一致検出回路５１〜５４の各々は、２つの距離信号の和に一致するカウンタ値が得られるときのクロック数をカウントし、２つの距離信号の和に一致するカウンタ値が得られるときのクロック数をカウントすると、それぞれ、一致信号ＭＴＨ１〜ＭＴＨ３およびタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）を出力する。
【０１６５】
距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々が距離／クロック数変換回路ＤＣ’１−１からなる場合、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、距離信号Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”の和（＝“２２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（＝“２２”）をカウントし、クロック数（＝“２２”）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０１６６】
図１３は、図９に示す距離／クロック数変換回路ＤＣ’１の別の具体的な構成を示す概略図である。
【０１６７】
図１３を参照して、Ｗ＝２ｉ＝２３＝８からなり、ｓ＝２ｘ＝２２＝４からなる場合、Ｌ＝Ｗ／ｓ＝８／４＝２であり、距離／クロック数変換回路ＤＣ’１−２は、増幅器４１，４２と、カウンタ一致検出回路５１，５２とを含む。
【０１６８】
また、Ｗ個の距離信号Ｄ１１〜Ｄ１Ｗは、８個の距離信号Ｄ１１〜Ｄ１８からなり、Ｗ個の距離演算回路ＤＰ１１〜ＤＰ１Ｗは、８個の距離演算回路ＤＰ１１〜ＤＰ１８からなる。また、距離信号Ｄ１１〜Ｄ１８の各々は、４ビットのビット値からなる。ここで、距離信号Ｄ１１〜Ｄ１８は、それぞれ、Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”であるものとする。
【０１６９】
そして、カウンタ一致検出回路５１は、４個の距離演算回路ＤＰ１１，ＤＰ１３，ＤＰ１５，ＤＰ１７に対応して設けられ、カウンタ一致検出回路５２は、４個の距離演算回路ＤＰ１２，ＤＰ１４，ＤＰ１６，ＤＰ１８に対応して設けられる。
【０１７０】
なお、カウンタ一致検出回路５１，５２の各々において、カウンタ３１１または３１１Ａは、４ビットのカウンタ値を一致検出回路３１２へ出力する。
【０１７１】
図１４は、図１３に示す距離／クロック数変換回路ＤＣ’１−２の動作を説明するための図である。
【０１７２】
距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、図１３に示す距離／クロック数変換回路ＤＣ’１−２からなる。そして、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々（＝距離／クロック数変換回路ＤＣ’１−２）において、検索データに類似する参照データの検索が開始されると、カウンタ一致検出回路５１は、距離演算回路ＤＰ１１，ＤＰ１３，ＤＰ１５，ＤＰ１７からそれぞれ距離信号Ｄ１１（＝“３”），Ｄ１３（＝“５”），Ｄ１５（＝“２”），Ｄ１７（＝“２”）を受け、カウンタ一致検出回路５２は、距離演算回路ＤＰ１２，ＤＰ１４，ＤＰ１６，ＤＰ１８からそれぞれ距離信号Ｄ１２（＝“２”），Ｄ１４（＝“１”），Ｄ１６（＝“４”），Ｄ１８（＝“３”）を受ける。
【０１７３】
そうすると、カウンタ一致検出回路５１は、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１１（＝“３”），Ｄ１３（＝“５”），Ｄ１５（＝“２”），Ｄ１７（＝“２”）の和（＝“１２”＝“１１００”）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ１（＝“１２”）をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ１をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してカウンタ一致検出回路５２へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０１７４】
カウンタ一致検出回路５２は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると駆動され、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１２（＝“２”），Ｄ１４（＝“１”），Ｄ１６（＝“４”），Ｄ１８（＝“３”）の和（＝“１０”＝“１０１０”）に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ２（＝“１０”）をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ２（＝“１０”）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をクロック信号ＣＬＫに同期してＷｉｎｎｅｒ検出器２０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０１７５】
このように、カウンタ一致検出回路５１，５２の各々は、４つの距離信号の和に一致するカウンタ値が得られるときのクロック数をカウントし、４つの距離信号の和に一致するカウンタ値が得られるときのクロック数をカウントすると、それぞれ、一致信号ＭＴＨ１およびタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）を出力する。
【０１７６】
距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々が距離／クロック数変換回路ＤＣ’１−２からなる場合も、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、距離信号Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”の和（＝“２２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（＝“２２”）をカウントし、クロック数（＝“２２”）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０１７７】
図１５は、図１０に示す距離／クロック数変換回路ＤＣ”１の具体的な構成を示す概略図である。
【０１７８】
図１５を参照して、Ｗ＝２ｉ＝２３＝８からなり、ｓ＝２ｘ＝２１＝２からなる場合、Ｌ＝Ｗ／ｓ＝８／２＝４であり、距離／クロック数変換回路ＤＣ”１−１は、増幅器４１〜４４と、カウンタ一致検出回路５１〜５４と、スイッチング制御回路６０と、マルチプレクサ６１〜６４とを含む。
【０１７９】
また、Ｗ個の距離信号Ｄ１１〜Ｄ１Ｗは、８個の距離信号Ｄ１１〜Ｄ１８からなり、Ｗ個の距離演算回路ＤＰ１１〜ＤＰ１Ｗは、８個の距離演算回路ＤＰ１１〜ＤＰ１８からなる。ここで、距離信号Ｄ１１〜Ｄ１８は、それぞれ、Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”であるものとする。
【０１８０】
距離／クロック数変換回路ＤＣ”１−１においては、マルチプレクサ６１は、２個の距離演算回路ＤＰ１１，ＤＰ１５に対応して設けられ、マルチプレクサ６２は、２個の距離演算回路ＤＰ１２，ＤＰ１６に対応して設けられ、マルチプレクサ６３は、２個の距離演算回路ＤＰ１３，ＤＰ１７に対応して設けられ、マルチプレクサ６４は、２個の距離演算回路ＤＰ１４，ＤＰ１８に対応して設けられる。
【０１８１】
カウンタ一致検出回路５１〜５４は、それぞれ、マルチプレクサ６１〜６４に対応して設けられる。
【０１８２】
距離／クロック数変換回路ＤＣ”１−１においては、増幅器４１〜４４は、クロック信号ＣＬＫを増幅し、その増幅したクロック信号ＣＬＫをそれぞれカウンタ一致検出回路５１〜５４へ出力するとともに、その増幅したクロック信号ＣＬＫをスイッチング制御回路６０へ出力する。
【０１８３】
スイッチング制御回路６０は、連想メモリ１００の制御回路から検索開始信号ＳＢおよびリセット信号ＲＳＴを受け、カウンタ一致検出回路５１〜５４からそれぞれ一致信号ＭＴＨ１〜ＭＴＨ４を受ける。
【０１８４】
そして、スイッチング制御回路６０は、検索開始信号ＳＢおよびリセット信号ＲＳＴを受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０１８５】
また、スイッチング制御回路６０は、一致信号ＭＴＨ４をカウンタ一致検出回路５４から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。スイッチング制御回路６０は、この処理を１（＝ｓ−１＝２−１）回実行する。
【０１８６】
更に、スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５２へ出力するとともに出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。スイッチング制御回路６０は、この処理を２（＝ｓ＝２）回実行する。
【０１８７】
更に、スイッチング制御回路６０は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５３へ出力するとともに出力信号ＯＵＴ３をマルチプレクサ６３へ出力する。スイッチング制御回路６０は、この処理を２（＝ｓ＝２）回実行する。
【０１８８】
更に、スイッチング制御回路６０は、一致信号ＭＴＨ３をカウンタ一致検出回路５３から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウント一致検出回路５４へ出力するとともに出力信号ＯＵＴ４をマルチプレクサ６４へ出力する。スイッチング制御回路６０は、この処理を２（＝ｓ＝２）回実行する。
【０１８９】
マルチプレクサ６１は、２個の距離信号Ｄ１１，Ｄ１５を受ける。そして、マルチプレクサ６１は、１回目の出力信号ＯＵＴ１をスイッチング制御回路６０から受けると、距離信号Ｄ１１をカウンタ一致検出回路５１へ出力し、２回目の出力信号ＯＵＴ１をスイッチング制御回路６０から受けると、距離信号Ｄ１５をカウンタ一致検出回路５１へ出力する。
【０１９０】
マルチプレクサ６２は、２個の距離信号Ｄ１２，Ｄ１６を受ける。そして、マルチプレクサ６２は、１回目の出力信号ＯＵＴ２をスイッチング制御回路６０から受けると、距離信号Ｄ１２をカウンタ一致検出回路５２へ出力し、２回目の出力信号ＯＵＴ２をスイッチング制御回路６０から受けると、距離信号Ｄ１６をカウンタ一致検出回路５２へ出力する。
【０１９１】
マルチプレクサ６３は、２個の距離信号Ｄ１３，Ｄ１７を受ける。そして、マルチプレクサ６３は、１回目の出力信号ＯＵＴ３をスイッチング制御回路６０から受けると、距離信号Ｄ１３をカウンタ一致検出回路５３へ出力し、２回目の出力信号ＯＵＴ３をスイッチング制御回路６０から受けると、距離信号Ｄ１７をカウンタ一致検出回路５３へ出力する。
【０１９２】
マルチプレクサ６４は、２個の距離信号Ｄ１４，Ｄ１８を受ける。そして、マルチプレクサ６４は、１回目の出力信号ＯＵＴ４をスイッチング制御回路６０から受けると、距離信号Ｄ１４をカウンタ一致検出回路５４へ出力し、２回目の出力信号ＯＵＴ４をスイッチング制御回路６０から受けると、距離信号Ｄ１８をカウンタ一致検出回路５４へ出力する。
【０１９３】
カウンタ一致検出回路５１は、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５１は、距離信号Ｄ１１をマルチプレクサ６１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１１に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。カウンタ一致検出回路５１は、この処理を２個の距離信号Ｄ１１，Ｄ１５の全てについて実行する。
【０１９４】
また、カウンタ一致検出回路５２は、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５２は、距離信号Ｄ１２をマルチプレクサ６２から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１２に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。カウンタ一致検出回路５２は、この処理を２個の距離信号Ｄ１２，Ｄ１６の全てについて実行する。
【０１９５】
更に、カウンタ一致検出回路５３は、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５３は、距離信号Ｄ１３をマルチプレクサ６３から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１３に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿３をカウントし、クロック数ＣＮ＿３をカウントしたタイミングを示す一致信号ＭＴＨ３をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５３は、動作を停止する。カウンタ一致検出回路５３は、この処理を２個の距離信号Ｄ１３，Ｄ１７の全てについて実行する。
【０１９６】
更に、カウンタ一致検出回路５４は、リセット信号ＲＳＴをスイッチング制御回路６０から受けると駆動される。そして、カウンタ一致検出回路５４は、距離信号Ｄ１４をマルチプレクサ６４から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１４に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿４をカウントし、クロック数ＣＮ＿４をカウントしたタイミングを示す一致信号ＭＴＨ４をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５４は、動作を停止する。
【０１９７】
そして、カウンタ一致検出回路５４は、２回目のリセット信号ＲＳＴをスイッチング制御回路６０から受け、距離信号Ｄ１８をマルチプレクサ６４から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１８に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿４をカウントし、クロック数ＣＮ＿４をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。そして、カウンタ一致検出回路５４は、動作を停止する。
【０１９８】
図１６は、図１５に示す距離／クロック数変換回路ＤＣ”１−１の動作を説明するための図である。
【０１９９】
距離／クロック数変換回路ＤＣ１〜ＤＣＲ（＝距離／クロック数変換回路ＤＣ”１−１）の各々において、検索データに類似する参照データの検索が開始されると、スイッチング制御回路６０は、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２００】
そして、マルチプレクサ６１は、スイッチング制御回路６０からの１回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１１（＝“３”）をカウンタ一致検出回路５１へ出力する。
【０２０１】
カウンタ一致検出回路５１は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５１は、距離信号Ｄ１１（＝“３”）をマルチプレクサ６１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１１（＝“３”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１（＝“３”）をカウントし、クロック数ＣＮ＿１（＝“３”）をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２０２】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５１から一致信号ＭＴＨ１を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２０３】
マルチプレクサ６２は、スイッチング制御回路６０からの１回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１２（＝“２”）をカウンタ一致検出回路５２へ出力する。
【０２０４】
カウンタ一致検出回路５２は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５２は、距離信号Ｄ１２（＝“２”）をマルチプレクサ６２から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１２（＝“２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２（＝“２”）をカウントし、クロック数ＣＮ＿２（＝“２”）をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２０５】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５２から一致信号ＭＴＨ２を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５３へ出力するとともに出力信号ＯＵＴ３をマルチプレクサ６３へ出力する。
【０２０６】
マルチプレクサ６３は、スイッチング制御回路６０からの１回目の出力信号ＯＵＴ３に応じて、距離信号Ｄ１３（＝“５”）をカウンタ一致検出回路５３へ出力する。
【０２０７】
カウンタ一致検出回路５３は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５３は、距離信号Ｄ１３（＝“５”）をマルチプレクサ６３から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１３（＝“５”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿３（＝“５”）をカウントし、クロック数ＣＮ＿３（＝“５”）をカウントしたタイミングを示す一致信号ＭＴＨ３をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５３は、動作を停止する。
【０２０８】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５３から一致信号ＭＴＨ３を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５４へ出力するとともに出力信号ＯＵＴ４をマルチプレクサ６４へ出力する。
【０２０９】
マルチプレクサ６４は、スイッチング制御回路６０からの１回目の出力信号ＯＵＴ４に応じて、距離信号Ｄ１４（＝“１”）をカウンタ一致検出回路５４へ出力する。
【０２１０】
カウンタ一致検出回路５４は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５４は、距離信号Ｄ１４（＝“１”）をマルチプレクサ６４から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１４（＝“１”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿４（＝“１”）をカウントし、クロック数ＣＮ＿４（＝“１”）をカウントしたタイミングを示す一致信号ＭＴＨ４をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５４は、動作を停止する。
【０２１１】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５４から一致信号ＭＴＨ４を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２１２】
マルチプレクサ６１は、スイッチング制御回路６０からの２回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１５（＝“２”）をカウンタ一致検出回路５１へ出力する。
【０２１３】
カウンタ一致検出回路５１は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５１は、距離信号Ｄ１５（＝“２”）をマルチプレクサ６１から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１５（＝“２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１（＝“２”）をカウントし、クロック数ＣＮ＿１（＝“２”）をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２１４】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５１から一致信号ＭＴＨ１を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２１５】
マルチプレクサ６２は、スイッチング制御回路６０からの２回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１６（＝“４”）をカウンタ一致検出回路５２へ出力する。
【０２１６】
カウンタ一致検出回路５２は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５２は、距離信号Ｄ１６（＝“４”）をマルチプレクサ６２から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１６（＝“４”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２（＝“４”）をカウントし、クロック数ＣＮ＿２（＝“４”）をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２１７】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５２から一致信号ＭＴＨ２を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５３へ出力するとともに出力信号ＯＵＴ３をマルチプレクサ６３へ出力する。
【０２１８】
マルチプレクサ６３は、スイッチング制御回路６０からの２回目の出力信号ＯＵＴ３に応じて、距離信号Ｄ１７（＝“２”）をカウンタ一致検出回路５３へ出力する。
【０２１９】
カウンタ一致検出回路５３は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５３は、距離信号Ｄ１７（＝“２”）をマルチプレクサ６３から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１７（＝“２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿３（＝“２”）をカウントし、クロック数ＣＮ＿３（＝“２”）をカウントしたタイミングを示す一致信号ＭＴＨ３をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５３は、動作を停止する。
【０２２０】
その後、スイッチング制御回路６０は、カウンタ一致検出回路５３から一致信号ＭＴＨ３を受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５４へ出力するとともに出力信号ＯＵＴ４をマルチプレクサ６４へ出力する。
【０２２１】
マルチプレクサ６４は、スイッチング制御回路６０からの２回目の出力信号ＯＵＴ４に応じて、距離信号Ｄ１８（＝“３”）をカウンタ一致検出回路５４へ出力する。
【０２２２】
カウンタ一致検出回路５４は、スイッチング制御回路６０からのリセット信号ＲＳＴに応じて駆動される。そして、カウンタ一致検出回路５４は、距離信号Ｄ１８（＝“３”）をマルチプレクサ６４から受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、距離信号Ｄ１８（＝“３”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿４（＝“３”）をカウントし、クロック数ＣＮ＿４（＝“３”）をカウントしたタイミングを示す一致信号ＭＴＨ４をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５４は、動作を停止する。
【０２２３】
そうすると、スイッチング制御回路６０は、カウンタ一致検出回路５４からの２回目の一致信号ＭＴＨ４に応じて、２回目の一致信号ＭＴＨ４によって示されるタイミングと同じタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０２２４】
このように、カウンタ一致検出回路５１〜５４は、それぞれ、距離信号Ｄ１１〜Ｄ１４に一致するカウンタ値が得られたときのクロック信号ＣＬＫのクロック数ＣＮ＿１〜ＣＮ＿４をカウントし、クロック数ＣＮ＿１〜ＣＮ＿４をカウントしたタイミングを示す一致信号ＭＴＨ１〜ＭＴＨ４を出力した後に、それぞれ、距離信号Ｄ１５〜Ｄ１８に一致するカウンタ値が得られたときのクロック信号ＣＬＫのクロック数ＣＮ＿１〜ＣＮ＿４をカウントし、クロック数ＣＮ＿１〜ＣＮ＿４をカウントしたタイミングを示す一致信号ＭＴＨ１〜ＭＴＨ４を出力する。
【０２２５】
つまり、カウンタ一致検出回路５１〜５４の各々は、距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数をカウントし、そのクロック数をカウントしたタイミングを示す一致信号を出力する処理を２回繰り返し実行する。
【０２２６】
距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々が距離／クロック数変換回路ＤＣ”１−１からなる場合も、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、距離信号Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”の和（＝“２２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（＝“２２”）をカウントし、クロック数（＝“２２”）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０２２７】
図１７は、図１０に示す距離／クロック数変換回路ＤＣ”１の更に別の具体的な構成を示す概略図である。
【０２２８】
図１７を参照して、Ｗ＝２ｉ＝２３＝８からなり、ｓ＝２ｘ＝２２＝４からなる場合、Ｌ＝Ｗ／ｓ＝８／４＝２であり、距離／クロック数変換回路ＤＣ”１−２は、増幅器４１，４２と、カウンタ一致検出回路５１，５２と、スイッチ制御回路６０と、マルチプレクサ６１，６２とを含む。
【０２２９】
マルチプレクサ６１は、４個の距離演算回路ＤＰ１１，ＤＰ１３，ＤＰ１５，ＤＰ１７に対応して設けられ、マルチプレクサ６２は、４個の距離演算回路ＤＰ１２，ＤＰ１４，ＤＰ１６，ＤＰ１８に対応して設けられる。
【０２３０】
カウンタ一致検出回路５１は、マルチプレクサ６１に対応して設けられ、カウンタ一致検出回路５２は、マルチプレクサ６２に対応して設けられる。
【０２３１】
スイッチング制御回路６０は、連想メモリ１００の制御回路から検索開始信号ＳＢおよびリセット信号ＲＳＴを受ける。また、スイッチング制御回路６０は、増幅器４１，４２からクロック信号ＣＬＫを受ける。更に、スイッチング制御回路６０は、カウンタ一致検出回路５１から一致信号ＭＴＨ１を受け、カウンタ一致検出回路５２から一致信号ＭＴＨ２を受ける。
【０２３２】
そして、スイッチング制御回路６０は、検索開始信号ＳＢおよびリセット信号ＲＳＴを受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２３３】
また、スイッチング制御回路６０は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２３４】
更に、スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２３５】
そして、スイッチング制御回路６０は、ｓ回目の一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、ｓ回目の一致信号ＭＴＨ２によって示されるタイミングと同じタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０２３６】
マルチプレクサ６１は、距離演算回路ＤＰ１１，ＤＰ１３，ＤＰ１５，ＤＰ１７からそれぞれ距離信号Ｄ１１，Ｄ１３，Ｄ１５，Ｄ１７を受け、出力信号ＯＵＴ１をスイッチング制御回路６０から受ける。
【０２３７】
そして、マルチプレクサ６１は、１回目の出力信号ＯＵＴ１を受けると、距離信号Ｄ１１をカウンタ一致検出回路５１へ出力し、２回目の出力信号ＯＵＴ１を受けると、距離信号Ｄ１３をカウンタ一致検出回路５１へ出力し、３回目の出力信号ＯＵＴ１を受けると、距離信号Ｄ１５をカウンタ一致検出回路５１へ出力し、４回目の出力信号ＯＵＴ１を受けると、距離信号Ｄ１７をカウンタ一致検出回路５１へ出力する。
【０２３８】
また、マルチプレクサ６２は、距離演算回路ＤＰ１２，ＤＰ１４，ＤＰ１６，ＤＰ１８からそれぞれ距離信号Ｄ１２，Ｄ１４，Ｄ１６，Ｄ１８を受け、出力信号ＯＵＴ２をスイッチング制御回路６０から受ける。
【０２３９】
そして、マルチプレクサ６２は、１回目の出力信号ＯＵＴ２を受けると、距離信号Ｄ１２をカウンタ一致検出回路５２へ出力し、２回目の出力信号ＯＵＴ２を受けると、距離信号Ｄ１４をカウンタ一致検出回路５２へ出力し、３回目の出力信号ＯＵＴ２を受けると、距離信号Ｄ１６をカウンタ一致検出回路５２へ出力し、４回目の出力信号ＯＵＴ２を受けると、距離信号Ｄ１８をカウンタ一致検出回路５２へ出力する。
【０２４０】
カウンタ一致検出回路５１は、マルチプレクサ６１から距離信号Ｄ１１を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１１に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２４１】
また、カウンタ一致検出回路５１は、マルチプレクサ６１から距離信号Ｄ１３を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１３に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２４２】
更に、カウンタ一致検出回路５１は、マルチプレクサ６１から距離信号Ｄ１５を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１５に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２４３】
更に、カウンタ一致検出回路５１は、マルチプレクサ６１から距離信号Ｄ１７を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１７に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２４４】
このように、カウンタ一致検出回路５１は、距離信号とリセット信号とを受けるごとに、距離信号（＝距離信号Ｄ１１から奇数番目の距離信号Ｄ１１，Ｄ１３，Ｄ１５，Ｄ１７のいずれか）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１をスイッチング制御回路６０へ出力し、その後、動作を停止する。
【０２４５】
カウンタ一致検出回路５２は、マルチプレクサ６２から距離信号Ｄ１２を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１２に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２４６】
また、カウンタ一致検出回路５２は、マルチプレクサ６２から距離信号Ｄ１４を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１４に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２４７】
更に、カウンタ一致検出回路５２は、マルチプレクサ６２から距離信号Ｄ１６を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１６に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２４８】
更に、カウンタ一致検出回路５２は、マルチプレクサ６２から距離信号Ｄ１８を受け、リセット信号ＲＳＴをスイッチング制御回路６０から受けると、上述した方法によって、距離信号Ｄ１８に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２４９】
このように、カウンタ一致検出回路５２は、距離信号とリセット信号とを受けるごとに、距離信号（＝距離信号Ｄ１１から偶数番目の距離信号Ｄ１２，Ｄ１４，Ｄ１６，Ｄ１８のいずれか）に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２をスイッチング制御回路６０へ出力し、その後、動作を停止する。
【０２５０】
図１８は、図１７に示す距離／クロック数変換回路ＤＣ”１−２の動作を説明するための図である。
【０２５１】
図１８を参照して、スイッチング制御回路６０は、連想メモリ１００の制御回路からの検索開始信号ＳＢおよびリセット信号ＲＳＴに応じて、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２５２】
マルチプレクサ６１は、距離演算回路ＤＰ１１，ＤＰ１３，ＤＰ１５，ＤＰ１７からそれぞれ距離信号Ｄ１１，Ｄ１３，Ｄ１５，Ｄ１７を受ける。そして、マルチプレクサ６１は、１回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１１をカウンタ一致検出回路５１へ出力する。
【０２５３】
そうすると、カウンタ一致検出回路５１は、距離信号Ｄ１１（＝“３”）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１（＝“３”）をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ＿１（＝“３”）をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２５４】
その後、スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに、出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２５５】
マルチプレクサ６２は、距離演算回路ＤＰ１２，ＤＰ１４，ＤＰ１６，ＤＰ１８からそれぞれ距離信号Ｄ１２，Ｄ１４，Ｄ１６，Ｄ１８を受ける。そして、マルチプレクサ６２は、１回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１２（＝“２”）をカウンタ一致検出回路５２へ出力する。
【０２５６】
そうすると、カウンタ一致検出回路５２は、距離信号Ｄ１２（＝“２”）に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２（＝“２”）をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ＿２（＝“２”）をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２５７】
引き続いて、スイッチング制御回路６０は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに、出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２５８】
マルチプレクサ６１は、２回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１３（＝“５”）をカウンタ一致検出回路５１へ出力する。
【０２５９】
そうすると、カウンタ一致検出回路５１は、距離信号Ｄ１３（＝“５”）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１（＝“５”）をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ＿１（＝“５”）をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２６０】
スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに、出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２６１】
マルチプレクサ６２は、２回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１４（＝“１”）をカウンタ一致検出回路５２へ出力する。
【０２６２】
そうすると、カウンタ一致検出回路５２は、距離信号Ｄ１４（＝“１”）に一致するカウンタ値ＣＶ１２が得られるときのクロック数ＣＮ＿２（＝“１”）をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ＿２（＝“１”）をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２６３】
そして、スイッチング制御回路６０は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに、出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２６４】
マルチプレクサ６１は、３回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１５（＝“２”）をカウンタ一致検出回路５１へ出力する。
【０２６５】
そうすると、カウンタ一致検出回路５１は、距離信号Ｄ１５（＝“２”）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１（＝“２”）をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ＿１（＝“２”）をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２６６】
そして、スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに、出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２６７】
マルチプレクサ６２は、３回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１６（＝“４”）をカウンタ一致検出回路５２へ出力する。
【０２６８】
そうすると、カウンタ一致検出回路５２は、距離信号Ｄ１６（＝“４”）に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２（＝“４”）をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ＿２（＝“４”）をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２６９】
そして、スイッチング制御回路６０は、一致信号ＭＴＨ２をカウンタ一致検出回路５２から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５１へ出力するとともに、出力信号ＯＵＴ１をマルチプレクサ６１へ出力する。
【０２７０】
マルチプレクサ６１は、４回目の出力信号ＯＵＴ１に応じて、距離信号Ｄ１７（＝“２”）をカウンタ一致検出回路５１へ出力する。
【０２７１】
そうすると、カウンタ一致検出回路５１は、距離信号Ｄ１７（＝“２”）に一致するカウンタ値ＣＶ１１が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１（＝“２”）をカウントする。そして、カウンタ一致検出回路５１は、クロック数ＣＮ＿１（＝“２”）をカウントしたタイミングを示す一致信号ＭＴＨ１をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１は、動作を停止する。
【０２７２】
その後、スイッチング制御回路６０は、一致信号ＭＴＨ１をカウンタ一致検出回路５１から受けると、クロック信号ＣＬＫに同期して、リセット信号ＲＳＴをカウンタ一致検出回路５２へ出力するとともに、出力信号ＯＵＴ２をマルチプレクサ６２へ出力する。
【０２７３】
マルチプレクサ６２は、４回目の出力信号ＯＵＴ２に応じて、距離信号Ｄ１８（＝“３”）をカウンタ一致検出回路５２へ出力する。
【０２７４】
そうすると、カウンタ一致検出回路５２は、距離信号Ｄ１８（＝“３”）に一致するカウンタ値ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２（＝“３”）をカウントする。そして、カウンタ一致検出回路５２は、クロック数ＣＮ＿２（＝“３”）をカウントしたタイミングを示す一致信号ＭＴＨ２をクロック信号ＣＬＫに同期してスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５２は、動作を停止する。
【０２７５】
そうすると、スイッチング制御回路６０は、カウンタ一致検出回路５２からの４回目の一致信号ＭＴＨ２に応じて、４回目の一致信号ＭＴＨ２によって示されるタイミングと同じタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０２７６】
このように、カウンタ一致検出回路５１，５２は、交互に、それぞれ、距離信号（＝距離信号Ｄ１１から奇数番目の距離信号Ｄ１１，Ｄ１３，Ｄ１５，Ｄ１７のいずれか）および距離信号（＝距離信号Ｄ１１から偶数番目の距離信号Ｄ１２，Ｄ１４，Ｄ１６，Ｄ１８のいずれか）に一致するカウンタ値ＣＶ１１，ＣＶ１２が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１，ＣＮ＿２をカウントし、クロック数ＣＮ＿１，ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ１，ＭＴＨ２をスイッチング制御回路６０へ出力する。そして、カウンタ一致検出回路５１，５２は、この処理を４（＝ｓ）回繰り返し実行する。
【０２７７】
距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々が距離／クロック数変換回路ＤＣ”１−２からなる場合も、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々は、距離信号Ｄ１１＝“３”，Ｄ１２＝“２”，Ｄ１３＝“５”，Ｄ１４＝“１”，Ｄ１５＝“２”，Ｄ１６＝“４”，Ｄ１７＝“２”，Ｄ１８＝“３”の和（＝“２２”）に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数（＝“２２”）をカウントし、クロック数（＝“２２”）をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０２７８】
上記においては、Ｗ＝８である場合について説明したが、Ｗは、２ｉを満たせば、８以外の値であってもよい。
【０２７９】
そして、Ｗが２ｉを満たす８以外の値であるときも、距離／クロック数変換回路ＤＣ１〜ＤＣＲは、それぞれ、上述した動作と同じ動作によってタイミング信号Ｃ１〜ＣＲをＷｉｎｎｅｒ検出器２０へ出力する。
【０２８０】
また、上記においては、ｓ＝２，４の場合について説明したが、ｓは、Ｗ以下の２ｘを満たす整数であれば、２，４以外の値からなっていてもよく、その場合も、距離／クロック数変換回路ＤＣ１〜ＤＣＲは、それぞれ、上述した動作と同じ動作によってタイミング信号Ｃ１〜ＣＲをＷｉｎｎｅｒ検出器２０へ出力する。
【０２８１】
上述したように、図１３および図１７においては、距離／クロック数変換回路ＤＣ１〜ＤＣＲ（＝距離／クロック数変換回路ＤＣ’１−２，ＤＣ”１−２）の各々が２つのカウンタ一致検出回路５１，５２からなる場合について説明した。
【０２８２】
そして、距離／クロック数変換回路ＤＣ１〜ＤＣＲの各々が図１３に示す距離／クロック数変換回路ＤＣ’１−２または図１７に示す距離／クロック数変換回路ＤＣ”１−２からなる場合、カウンタ一致検出回路５１は、Ｗ個の距離信号（＝距離信号Ｄ１１〜Ｄ１Ｗ等）を一列に配列したときの一方端からｐ（ｐは１≦ｐ＜Ｗを満たす奇数）番目の距離信号を受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、ｐ番目の距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿１をカウントし、クロック数ＣＮ＿１をカウントしたタイミングを示す一致信号ＭＴＨ１を出力する一致処理をＷ／２回繰り返し実行する。
【０２８３】
また、カウンタ一致検出回路５２は、Ｗ個の距離信号（＝距離信号Ｄ１１〜Ｄ１Ｗ等）を一列に配列したときの一方端からｑ（ｑは１＜ｑ≦Ｗを満たす偶数）番目の距離信号を受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、ｑ番目の距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示す一致信号ＭＴＨ２を出力する一致処理を（（Ｗ／２）−１）回繰り返し実行し、一致信号ＭＴＨ１をＷ／２回受け、かつ、Ｗ番目の距離信号を受けると、カウンタ値をクロック信号ＣＬＫに同期して昇順にカウントしたときに、Ｗ番目の距離信号に一致するカウンタ値が得られるときのクロック信号ＣＬＫのクロック数ＣＮ＿２をカウントし、クロック数ＣＮ＿２をカウントしたタイミングを示すタイミング信号（＝タイミング信号Ｃ１〜ＣＲのいずれか）をＷｉｎｎｅｒ検出器２０へ出力する。
【０２８４】
この場合、カウンタ一致検出回路５１は、「第１のカウンタ一致検出回路」を構成し、カウンタ一致検出回路５２は、「第２のカウンタ一致検出回路」を構成する。
【０２８５】
また、カウンタ一致検出回路５１のカウンタ３１１（またはカウンタ３１１Ａ）は、「第１のカウンタ」を構成し、カウンタ一致検出回路５１の一致検出回路３１２は、「第１の一致検出回路」を構成する。
【０２８６】
更に、カウンタ一致検出回路５２のカウンタ３１１（またはカウンタ３１１Ａ）は、「第２のカウンタ」を構成し、カウンタ一致検出回路５２の一致検出回路３１２は、「第２の一致検出回路」を構成する。
【０２８７】
図１３および図１７に示すように、距離／クロック数変換回路ＤＣ１〜ＤＣＲ（＝距離／クロック数変換回路ＤＣ’１−２，ＤＣ”１−２）の各々を２個のカウンタ一致検出回路５１，５２によって構成することによって、距離／クロック数変換回路ＤＣ１〜ＤＣＲの回路面積を削減でき、消費電力を低減できる。
【０２８８】
図１９は、最短検索時間の比較を示す図である。図１９における周波数マッピング型とは、検索データと参照データとの距離を周波数に変換して検索データに類似する参照データを検索する連想メモリを意味する。
【０２８９】
また、図１９の（ａ）は、Ｍ×Ｗ＝１６ビット×８ユニット＝１２８ビットの参照データを６４個用いた場合の最短検索時間の比較を示す。更に、図１９の（ｂ）は、Ｍ×Ｗ＝１６ビット×１６ユニット＝２５６ビットの参照データを６４個用いた場合の最短検索時間の比較を示す。
【０２９０】
図１９の（ａ）を参照して、Ｍ×Ｗ＝１６ビット×８ユニット＝１２８ビットの参照データを６４個用いた場合、周波数マッピング型の連想メモリにおいては、最短検索時間が１２８０（ｎｓ）であるのに対し、本発明の連想メモリ１００においては、最短検索時間が２０（ｎｓ）である。
【０２９１】
図１９の（ｂ）を参照して、Ｍ×Ｗ＝１６ビット×１６ユニット＝２５６ビットの参照データを６４個用いた場合、周波数マッピング型の連想メモリにおいては、最短検索時間が２１００００（ｎｓ）であるのに対し、本発明の連想メモリ１００においては、最短検索時間が４０（ｎｓ）である。
【０２９２】
このように、この発明の実施の形態による連想メモリ１００は、従来の周波数マッピング型の連想メモリよりも２桁以上短い時間で検索データに類似する参照データを検索できることが実験的に実証された。
【０２９３】
また、この発明の実施の形態による連想メモリ１００は、参照データのビット数が多くなるに従って、検索時間を飛躍的に短くできることが実験的に実証された。
【０２９４】
図２０は、消費電力の比較を示す図である。図２０において、従来例の連想メモリは、非特許文献３に記載された連想メモリである。
【０２９５】
図２０を参照して、従来例の連想メモリにおいては、６４個の参照データが用いられ、本発明の連想メモリ１００においては、１２８個の参照データが用いられた。
【０２９６】
そして、従来例の連想メモリにおいては、消費電力は、３２１（ｍＷ）であるのに対し、本発明の連想メモリ１００においては、消費電力は、２．１３（ｍＷ）である。
【０２９７】
このように、この発明の実施の形態による連想メモリ１００は、参照データ数が２倍多いにも拘わらず、従来例の連想メモリよりも２桁以上消費電力を低減できることが実験的に実証された。
【０２９８】
従って、この発明の実施の形態による連想メモリ１００を用いれば、低消費電力で高速に検索データに類似する参照データを検索できることが明らかである。
【０２９９】
なお、上記においては、マンハッタン距離を用いて検索データに類似するｋ個の参照データを検索すると説明したが、この発明の実施の形態においては、これに限らず、ハミング距離を用いて検索データに類似するｋ個の参照データを検索してもよい。
【０３００】
この場合、Ｍビットは、１ビットからなり、参照データ保存回路ＳＣ１１〜ＳＣ１Ｗ，ＳＣ２１〜ＳＣ２Ｗ，・・・，ＳＣＲ１〜ＳＣＲＷの各々は、１ビットの参照データを保存する。また、距離演算回路ＤＰ１１〜ＤＰ１Ｗ，ＤＰ２１〜ＤＰ２Ｗ，・・・，ＤＰＲ１〜ＤＰＲＷの各々は、検索データの１ビットと参照データの１ビットとの距離を式（１）に従って演算する。
【０３０１】
そして、連想メモリ１００は、上述した動作に従って、ハミング距離を用いて検索データに類似するｋ個の参照データを検索する。
【０３０２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０３０３】
この発明は、連想メモリに適用される。
【符号の説明】
【０３０４】
１  メモリ部、２  行デコーダ、３  列デコーダ、４  読出／書込回路、５  検索データ保存回路、１０  メモリアレイ部、２０  Ｗｉｎｎｅｒ検出器、２１〜２Ｗ，４１〜４Ｌ  増幅器、３１〜３Ｗ，５１〜５Ｌ  カウンタ一致検出回路、６０  スイッチング制御回路、６１〜６Ｌ  マルチプレクサ、１００  連想メモリ、３１１，３１１Ａ  カウンタ、３１２  一致検出回路、３１１−１〜３１１−Ｍ  分周器、ＳＣ１１〜ＳＣ１Ｗ，ＳＣ２１〜ＳＣ２Ｗ，・・・，ＳＣＲ１〜ＳＣＲＷ  参照データ保存回路、ＤＰ１１〜ＤＰ１Ｗ，ＤＰ２１〜ＤＰ２Ｗ，・・・，ＤＰＲ１〜ＤＰＲＷ  距離演算回路、ＤＣ１〜ＤＣＲ  距離／クロック数変換回路。
【図１】
2014041676.tif 000005
【図２】
2014041676.tif 000006
【図３】
2014041676.tif 000007
【図４】
2014041676.tif 000008
【図５】
2014041676.tif 000009
【図６】
2014041676.tif 000010
【図７】
2014041676.tif 000011
【図８】
2014041676.tif 000012
【図９】
2014041676.tif 000013
【図１０】
2014041676.tif 000014
【図１１】
2014041676.tif 000015
【図１２】
2014041676.tif 000016
【図１３】
2014041676.tif 000017
【図１４】
2014041676.tif 000018
【図１５】
2014041676.tif 000019
【図１６】
2014041676.tif 000020
【図１７】
2014041676.tif 000021
【図１８】
2014041676.tif 000022
【図１９】
2014041676.tif 000023
【図２０】
2014041676.tif 000024