JP2013101729A - 連想メモリ - Google Patents

連想メモリ Download PDF

Info

Publication number
JP2013101729A
JP2013101729A JP2011243733A JP2011243733A JP2013101729A JP 2013101729 A JP2013101729 A JP 2013101729A JP 2011243733 A JP2011243733 A JP 2011243733A JP 2011243733 A JP2011243733 A JP 2011243733A JP 2013101729 A JP2013101729 A JP 2013101729A
Authority
JP
Japan
Prior art keywords
signal
circuit
distance
bit
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011243733A
Other languages
English (en)
Other versions
JP5800422B2 (ja
Inventor
Tetsushi Koide
哲士 小出
Hansjuergen Matthew
ハンスユルゲン マタウシュ
Masahiro Yasuda
雅浩 安田
Seiryu Sasaki
静龍 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hiroshima University NUC
Original Assignee
Hiroshima University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hiroshima University NUC filed Critical Hiroshima University NUC
Priority to JP2011243733A priority Critical patent/JP5800422B2/ja
Priority to US13/466,381 priority patent/US8937828B2/en
Publication of JP2013101729A publication Critical patent/JP2013101729A/ja
Application granted granted Critical
Publication of JP5800422B2 publication Critical patent/JP5800422B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Landscapes

  • Radar Systems Or Details Thereof (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】誤検索を抑制可能な連想メモリを提供する。
【解決手段】連想メモリは、R個の距離/時間変換回路DT〜DTを備える。R個の距離/時間変換回路DT〜DTの各々は、NAND回路40と、Nビットステージ41〜4kとを含む。Nビットステージ41〜4kは、それぞれ、参照データと検索データとの間の距離が大きいほど、より長い遅延時間によってNAND回路40からの信号を遅延して発振信号を発振し、参照データと検索データとの間の距離が小さいほど、より短い遅延時間によってNAND回路40からの信号を遅延して発振信号を発振する。そして、距離/時間変換回路DT〜DTから出力されたR個の発振信号のうち、最も早く変化する発振信号がWinner行の発振信号として検出される。
【選択図】図2

Description

この発明は、連想メモリに関するものである。
近年、文字認識・画像認識などに代表されるパターンマッチングを必要とするアプリケーションが大変注目されている。特に、パターンマッチングをLSI(Large Scale Integrated circuit)上で実現することにより、将来、人工知能およびモバイル機器等の高機能アプリケーションに適用可能になり、この技術の実現は、非常に注目を浴びている。
パターンマッチングでは、データベースに保存された複数の参照データの中から、完全に検索データと一致するパターンを検索する「完全一致検索処理」と、検索データと最も類似するパターンを検索する「最類似検索処理」とがある。
前者は、CAM(Contents Addressable Memory)と呼ばれ、ネットワークルータのIPアドレステーブルのルーティングおよびプロセッサのキャッシュ等の実現に用いられる。人間の脳のような柔軟な検索・比較をコンピュータに処理させるには、後者の最類似検索処理を実現することが必要不可欠である。このような柔軟な比較を実現する機能を持つメモリのことを特に連想メモリ(Associative Memory)と呼ぶ。
連想メモリを実現する手段として(1)ディジタル方式による実現方法(非特許文献1)、(2)アナログ方式による実現方法および(3)ディジタル・アナログ融合方式(非特許文献2)等が提案されている。
しかし、従来のアナログ方式による連想メモリにおいては、検索データと参照データとの類似度を表す距離を電圧に変換するので、誤検索が生じるという問題がある。
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、誤検索を抑制可能な連想メモリを提供することである。
この発明の実施の形態によれば、連想メモリは、参照データ保存回路と、比較回路と、R個の変換回路と、R個の選択回路と、検出回路とを備える。参照データ保存回路は、各々がW(Wは2以上の整数)ビットのビット長を有するR(Rは2以上の整数)個の参照データを保存する。比較回路は、Wビットのビット長を有し、かつ、検索対象である検索データをR個の参照データの各々とビット毎に比較し、各々が検索データと参照データとの間の距離を表し、かつ、Wビットのビット値からなるR個の距離信号を検索データとR個の参照データとの比較結果として出力する。R個の変換回路は、R個の距離信号に対応して設けられ、各々がk(kは、W/Nまたは(W/N)+1を満たす整数、Nは、3以上の整数)個の遅延回路をリング状に接続した発振回路を含む。R個の選択回路は、R個の距離信号およびR個の変換回路に対応して設けられ、各々がk個の経路選択回路を含む。検出回路は、R個の変換回路から出力されたR個の出力信号のうち、最も早く変化する出力信号を検出し、その検出した出力信号を検索データに最も類似した参照データを示す信号として出力する。そして、R個の選択回路の各々は、対応するWビットの距離信号によって表される距離が小さいほどk個の遅延回路における遅延時間が短くなり、かつ、対応するWビットの距離信号によって表される距離が大きいほどk個の遅延回路における遅延時間が長くなるようにk個の遅延回路の各々におけるN+1個の遅延経路から1つの遅延経路を選択するためのk個の選択信号を対応するWビットの距離信号に基づいて生成し、その生成したk個の選択信号を対応する変換回路へ出力する。R個の変換回路の各々は、対応する選択回路からk個の選択信号を受けると、その受けたk個の選択信号によって選択されたk個の遅延経路を介して発振し、その発振した発振信号を出力信号として検出回路へ出力する。
また、この発明の実施の形態によれば、連想メモリは、参照データ保存回路と、比較回路と、R個の変換回路と、R個の選択回路と、検出回路とを備える。参照データ保存回路は、K(Kは2以上の整数)ビットのビット長を有する参照データを列方向にW(Wは2以上の整数)個配列し、かつ、行方向にR(Rは2以上の整数)個配列してW×R個の参照データを保存する。比較回路は、Kビットのビット長を有し、かつ、検索対象である検索データをW×R個の参照データの各々とビット毎に比較し、各々が検索データと参照データとの間の距離を表し、かつ、各々がKビットのビット値からなるW×R個の距離信号を検索データとW×R個の参照データとの比較結果として出力する。R個の変換回路は、各々が列方向に配列されたW個の参照データと検索データとの比較結果を示すR個の距離信号に対応して設けられる。R個の選択回路は、R個の距離信号およびR個の変換回路に対応して設けられる。検出回路は、R個の変換回路から出力されたR個の出力信号のうち、最も早く変化する出力信号を検出し、その検出した出力信号を検索データに最も類似した参照データを示す信号として出力する。そして、R個の選択回路の各々は、R個の距離信号のうち、対応する距離信号のW×K個のビット値に基づいて、参照データと検索データとの同位ビット同士が異なるとき第1の遅延時間を有する第1の遅延経路を選択し、同位ビット同士が一致するとき第1の遅延時間よりも短い第2の遅延時間を有する第2の遅延経路を選択するための選択信号を生成する。R個の変換回路の各々は、対応する選択回路から受けた選択信号によって選択された第1の遅延経路または第2の遅延経路を用いて、参照データと検索データとの最上位ビット同士の距離を示す第1の距離信号から参照データと検索データとの最下位ビット同士の距離を示す第2の距離信号に向かって遅延時間が順次短くなり、かつ、周波数が順次高くなるように第1の距離信号から第2の距離信号に向かって距離信号を発振信号に順次変換し、その変換した発振信号を出力信号として検出回路へ出力する。
この発明の実施の形態による連想メモリは、参照データと検索データとの間の距離を示す距離信号を時間領域の信号である発振信号に変換し、その変換した発振信号のうち、最も早く変化した発振信号をWinner行(参照データと検索データとが最も類似することを示す)の発振信号として出力する。これによって、検索データに最も類似する参照データが検索される。そして、時間領域の信号は、無限に設定可能である。その結果、Winner行とLoser行(参照データと検索データとがWinner行よりも類似しないことを示す)との時間差を検出可能に設定できる。
従って、誤検索を抑制できる。
この発明の実施の形態1による連想メモリの構成を示す概略ブロック図である。 図1に示す距離/時間変換回路の構成を示すブロック図である。 図2に示すNビットステージの構成を示す回路図である。 図1に示すパスエンコーダの構成を示すブロック図である。 図4に示すパスエンコーダの構成図である。 図5に示すパス選択信号生成回路の回路図である。 図5に示すパス選択信号生成回路の回路図である。 図5に示すパス選択信号生成回路の回路図である。 図4に示すパスエンコーダの一般的な概念図である。 図1に示す分周回路の構成図である。 図10に示す分周器の回路図である。 図11に示す分周器の入力信号および出力信号のタイミングチャートである。 図1に示す時間領域WTA回路の構成図である。 図13に示すWinner検出回路の回路図である。 図14に示すNAND回路の回路図である。 図14に示すNOR回路の回路図である。 図13に示す時間領域WTA回路におけるタイミングチャートである。 図13に示すWinner検出回路の他の回路図である。 図18に示すプリチャージ/キーパーの回路図である。 図13に示すフィードバック回路の回路図である。 図1に示すメモリ部の具体例を示す図である。 図21に示す4ビットステージの構成を示す回路図である。 図21に示す4ビットパスエンコーダの構成図である。 図23に示すパス選択信号生成回路の回路図である。 従来のパスエンコーダの回路図である。 従来の4ビットステージの回路図である。 図26に示す4ビットステージの動作を説明するための図である。 実施の形態2による連想メモリの構成を示す概略ブロック図である。 図28に示すパスエンコーダの動作を説明するための図である。 図28に示す距離/時間変換回路の構成を示すブロック図である。 図28に示す距離/時間変換回路の他の構成を示すブロック図である。 図28に示す距離/時間変換回路の更に他の構成を示すブロック図である。 図32に示すマルチプレクサの回路図である。 図32に示すEN選択回路の回路図である。 図32に示す一方の段数可変分周器の回路図である。 図32に示す他方の段数可変分周器の回路図である。 図32に示すスイッチング回路のブロック図である。 図37に示すシフトレジスタの回路図である。 図37に示すセレクタの回路図である。 信号のタイミングチャートである。 図32に示す距離/時間変換回路を備える連想メモリの動作を説明するための第1の概念図である。 図32に示す距離/時間変換回路を備える連想メモリの動作を説明するための第2の概念図である。 図28に示す距離/時間変換回路の更に他の構成を示すブロック図である。 図43に示すマルチプレクサの回路図である。 図43に示す段数可変分周器の回路図である。
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
[実施の形態1]
図1は、この発明の実施の形態1による連想メモリの構成を示す概略ブロック図である。図1を参照して、この発明の実施の形態1による連想メモリ100は、メモリアレイ部10と、分周回路20と、時間領域WTA(Winner Take All)回路30とを備える。
メモリアレイ部10は、メモリ部1と、行デコーダ2と、列デコーダ3と、読出/書込回路4と、検索データ保存回路5とを含む。
メモリ部1は、参照データ保存回路(Storage Cell:SC)SC11〜SC1W,SC21〜SC2W,・・・,SCR1〜SCRWと、ユニット比較回路(Unit Comparator:UC)UC11〜UC1W,UC21〜UC2W,・・・,UCR1〜UCRWと、パスエンコーダPE〜PEと、距離/時間変換回路DT〜DTとを含む。なお、WおよびRの各々は、2以上の整数である。
ユニット比較回路UC11〜UC1Wは、それぞれ、参照データ保存回路SC11〜SC1Wに対応して設けられる。また、ユニット比較回路UC21〜UC2Wは、それぞれ、参照データ保存回路SC21〜SC2Wに対応して設けられる。以下、同様にして、ユニット比較回路UCR1〜UCRWは、それぞれ、参照データ保存回路SCR1〜SCRWに対応して設けられる。
パスエンコーダPEは、参照データ保存回路SC11〜SC1Wおよびユニット比較回路UC11〜UC1Wに対応して配置される。パスエンコーダPEは、参照データ保存回路SC21〜SC2Wおよびユニット比較回路UC21〜UC2Wに対応して配置される。以下、同様にして、パスエンコーダPEは、参照データ保存回路SCR1〜SCRWおよびユニット比較回路UCR1〜UCRWに対応して配置される。
距離/時間変換回路DTは、パスエンコーダPEに対応して設けられる。距離/時間変換回路DTは、パスエンコーダPEに対応して設けられる。以下、同様にして、距離/時間変換回路DTは、パスエンコーダPEに対応して設けられる。
参照データ保存回路SC11〜SC1W,SC21〜SC2W,・・・,SCR1〜SCRWは、行デコーダ2、列デコーダ3および読出/書込回路4によって書き込まれた参照データを保存する。この場合、参照データ保存回路SC11〜SC1Wは、Wビットの参照データ1を保存し、参照データ保存回路SC21〜SC2Wは、Wビットの参照データ2を保存し、以下、同様にして、参照データ保存回路SCR1〜SCRWは、Wビットの参照データRを保存する。つまり、参照データ保存回路SC11〜SC1W,SC21〜SC2W,・・・,SCR1〜SCRWの各々は、参照データの1ビットを保存する。
ユニット比較回路UC11〜UC1Wは、参照データ保存回路SC11〜SC1Wに保存されたWビットの参照データ1と、検索データ保存回路5に保存されたWビットの検索データとを比較する。また、ユニット比較回路UC21〜UC2Wは、参照データ保存回路SC21〜SC2Wに保存されたWビットの参照データ2と、検索データ保存回路5に保存されたWビットの検索データとを比較する。以下、同様にして、ユニット比較回路UCR1〜UCRWは、参照データ保存回路SCR1〜SCRWに保存されたWビットの参照データRと、検索データ保存回路5に保存されたWビットの検索データとを比較する。そして、ユニット比較回路UC11〜UC1W、ユニット比較回路UC21〜UC2W、・・・、およびユニット比較回路UCR1〜UCRWにおける参照データと検索データとの比較は、並列に行なわれる。
そして、ユニット比較回路UC11〜UC1Wは、参照データ1と検索データとの比較結果をWビットの距離信号としてパスエンコードPEへ出力し、ユニット比較回路UC21〜UC2Wは、参照データ2と検索データとの比較結果をWビットの距離信号としてパスエンコードPEへ出力し、以下、同様にして、ユニット比較回路UCR1〜UCRWは、参照データRと検索データとの比較結果をWビットの距離信号としてパスエンコードPEへ出力する。これらのR個の距離信号の各々は、参照データと検索データとの間の距離を表す。
なお、ユニット比較回路UC11〜UC1W、ユニット比較回路UC21〜UC2W、・・・、およびユニット比較回路UCR1〜UCRWにおける参照データと検索データとの比較は、ハミング距離を用いて行なわれる。
すなわち、ユニット比較回路UC11〜UC1W、ユニット比較回路UC21〜UC2W、・・・、およびユニット比較回路UCR1〜UCRWは、次式を用いて検索データと参照データとの比較を行なう。
Figure 2013101729
式(1)において、Dは、ハミング距離であり、Aは、参照データであり、Bは、検索データである。そして、各データA,Bは、1ビットからなる。
パスエンコーダPEは、ユニット比較回路UC11〜UC1WからWビットの距離信号を受け、その受けたWビットの距離信号に基づいて後述する方法によって距離/時間変換回路DTにおける遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DTへ出力する。パスエンコーダPEは、ユニット比較回路UC21〜UC2WからWビットの距離信号を受け、その受けたWビットの距離信号に基づいて後述する方法によって距離/時間変換回路DTにおける遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DTへ出力する。以下、同様にして、パスエンコーダPEは、ユニット比較回路UCR1〜UCRWからWビットの距離信号を受け、その受けたWビットの距離信号に基づいて後述する方法によって距離/時間変換回路DTにおける遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DTへ出力する。
距離/時間変換回路DTは、パスエンコーダPEから選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号Sを生成し、その生成した発振信号Sを分周回路20へ出力する。距離/時間変換回路DTは、パスエンコーダPEから選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号Sを生成し、その生成した発振信号Sを分周回路20へ出力する。以下、同様にして、距離/時間変換回路DTは、パスエンコーダPEから選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号Sを生成し、その生成した発振信号Sを分周回路20へ出力する。
したがって、メモリ部1は、複数の参照データ1〜Rの各々と検索データとの比較を並列して行ない、その比較結果を示す複数の発振信号S〜Sを生成して分周回路20へ出力する。
行デコーダ2は、メモリ部1の行方向のアドレスを指定する。列デコーダ3は、メモリ部1の列方向のアドレスを指定する。読出/書込回路4は、参照データを行デコーダ2および列デコーダ3によって指定された参照データ保存回路SC11〜SC1W,SC21〜SC2W,・・・,SCR1〜SCRWに書き込むとともに、検索データを検索データ保存回路5に書き込む。
検索データ保存回路5は、読出/書込回路4によって書き込まれた検索データ(Wビットのデータ)を保存する。
分周回路20は、発振信号S〜Sをそれぞれ距離/時間変換回路DT〜DTから受け、その受けた発振信号S〜Sを分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。
時間領域WTA回路30は、発振信号Sd1〜SdRを分周回路20から受け、その受けた発振信号Sd1〜SdRのうち、最も早く変化する発振信号(発振信号Sd1〜SdRのいずれか)を検出する。そして、時間領域WTA回路30は、最も早く変化する発振信号に対応した行をWinner行(=1)とし、最も早く変化する発振信号以外の発振信号に対応した行をLoser行(=0)としてマッチ信号M〜Mを出力する。
図2は、図1に示す距離/時間変換回路DTの構成を示すブロック図である。図2を参照して、距離/時間変換回路DTは、NAND回路40と、Nビットステージ41〜4kとを含む。ここで、Nは、3以上の整数であり、kは、k=W/Nまたは(W/N)+1を満たす整数であり、iは、2≦i≦kである。
NAND回路40およびNビットステージ41〜4kは、リング状に接続される。NAND回路40は、連想メモリ100の制御回路(図示せず)からイネーブル信号SE(=1)を受け、Nビットステージ4kから発振信号を受ける。そして、NAND回路40は、イネーブル信号SEと発振信号との論理積を演算し、その演算した論理積を反転した信号をNビットステージ41へ出力する。
Nビットステージ41〜4kは、パスエンコーダPEからそれぞれ選択信号SL11〜SL1kを受ける。そして、Nビットステージ41は、選択信号SL11によって選択された遅延経路の遅延量だけ、NAND回路40からの信号を遅延し、その遅延した信号をNビットステージ42へ出力する。Nビットステージ4iは、選択信号SL1iによって選択された遅延経路の遅延量だけ入力信号を遅延し、その遅延した信号をNビットステージ4i+1へ出力する。以下、同様にして、Nビットステージ4kは、選択信号SL1kによって選択された遅延経路の遅延量だけ入力信号を遅延し、その遅延した信号をNAND回路40または外部(=分周回路20)へ出力する。
なお、図1に示す距離/時間変換回路DT〜DTの各々も、図2に示す距離/時間変換回路DTと同じ構成からなる。
図3は、図2に示すNビットステージ41の構成を示す回路図である。図3を参照して、Nビットステージ41は、トランスファゲート51〜5N,80〜8N,90と、N型MOS(Metal Oxide Semiconductor)トランジスタ61〜6Nと、遅延器71〜7Nと、インバータ91とを含む。
トランスファゲート51〜5N,80〜8N,90の各々は、N型MOSトランジスタAとP型MOSトランジスタBとを並列に接続した構成からなる。
トランスファゲート51は、入力端子であるノードNと、ノードN11との間に接続される。トランスファゲート52は、ノードN21とノードN12との間に接続される。トランスファゲート53は、ノードN22とノードN13との間に接続される。以下、同様にして、トランスファゲート5Nは、ノードN2N−1とノードN1Nとの間に接続される。このように、トランスファゲート52〜5Nは、それぞれ、遅延器71〜7N−1の出力側に接続される。
N型MOSトランジスタ61〜6Nは、ソース端子がそれぞれノードN11〜N1Nに接続され、ドレイン端子が接地ノードGNDに接続され、ゲート端子がそれぞれトランスファゲート51〜5NのP型MOSトランジスタBのゲート端子に接続される。
遅延器71は、ノードN11とノードN21との間に接続され、遅延器72は、ノードN12とノードN22との間に接続され、遅延器73は、ノードN13とノードN23との間に接続され、以下、同様にして、遅延器7Nは、ノードN1NとノードN2Nとの間に接続される。そして、遅延器71〜7Nの各々は、偶数個のインバータが直列に接続された構成からなる。
トランスファゲート80は、ノードNとノードNとの間に接続される。トランスファゲート81は、ノードN21とノードNとの間に接続され、トランスファゲート82は、ノードN22とノードNとの間に接続され、トランスファゲート83は、ノードN23とノードNとの間に接続され、以下、同様にして、トランスファゲート8Nは、ノードN2NとノードNとの間に接続される。トランスファゲート90は、ダミーであり、ノードN2Nと、接地ノードGNDとの間に接続される。
インバータ91は、その入力端子がノードNに接続される。
トランスファゲート51〜5Nは、それぞれ、信号EN1,EN1Q〜信号ENN,ENNQをパスエンコーダPEから受ける。この場合、トランスファゲート51〜5NのN型MOSトランジスタAは、それぞれ、信号EN1〜ENNをゲート端子に受け、トランスファゲート51〜5NのP型MOSトランジスタBは、それぞれ、信号EN1Q〜ENNQをゲート端子に受ける。
トランスファゲート80〜8Nは、それぞれ、信号Dist0,Dist0Q〜信号DistN,DistNQをパスエンコーダPEから受ける。この場合、トランスファゲート80〜8NのN型MOSトランジスタAは、それぞれ、信号Dist0〜DistNをゲート端子に受け、トランスファゲート80〜8NのP型MOSトランジスタBは、それぞれ、信号Dist0Q〜DistNQをゲート端子に受ける。
なお、トランスファゲート90のN型MOSトランジスタAは、ゲート端子が接地ノードGNDに接続され、トランスファゲート90のP型MOSトランジスタBは、ゲート端子が電源ノードVDDに接続されているので、トランスファゲート90は、常時、オフされている。
信号Dist0〜DistN,Dist0Q〜DistNQおよび信号EN1〜ENN,EN1Q〜ENNQは、図2に示す選択信号SL11を構成する。そして、信号Dist0Q〜DistNQは、それぞれ、信号Dist0〜DistNの反転信号であり、信号EN1Q〜ENNQは、それぞれ、信号EN1〜ENNの反転信号である。
信号Dist0,Dist1Q〜DistNQおよび信号EN1Q〜ENNQの全てが“1”(=論理ハイ、以下、同じ。)であり、信号Dist0Q,Dist1〜DistNおよび信号EN1〜ENNの全てが“0”(=論理ロー、以下、同じ。)である場合、トランスファゲート80は、開き、トランスファゲート51〜5N,81〜8Nは、閉じ、N型MOSトランジスタ61〜6Nは、オンされる。
その結果、信号は、ノードNからトランスファゲート80を介してインバータ91へ入力し、インバータ91で反転されて出力される。この場合、ノードN11〜N1Nの電位は、接地ノードGNDの電位に等しい。
また、信号Dist1,Dist0Q,Dist2Q〜DistNQおよび信号EN1,EN2Q〜ENNQの全てが“1”であり、信号Dist1Q,Dist0,Dist2〜DistNおよび信号EN1Q,EN2〜ENNの全てが“0”である場合、トランスファゲート51,81は、開き、トランスファゲート52〜5N,80,82〜8Nは、閉じ、N型MOSトランジスタ61は、オフされ、N型MOSトランジスタ62〜6Nは、オンされる。
その結果、信号は、ノードNからトランスファゲート51を介して遅延器71へ入力され、遅延器71で所定時間だけ遅延された後、トランスファゲート81を介してインバータ91へ入力され、インバータ91で反転されて出力される。この場合、ノードN11の電位は、入力された信号の電位に等しく、ノードN12〜N1Nの電位は、接地ノードGNDの電位に等しい。
更に、信号Dist2,Dist0Q,Dist1Q,Dist3Q〜DistNQおよび信号EN1,EN2,EN3Q〜ENNQの全てが“1”であり、信号Dist2Q,Dist0,Dist1,Dist3〜DistNおよび信号EN1Q,EN2Q,EN3〜ENNの全てが“0”である場合、トランスファゲート51,52,82は、開き、トランスファゲート53〜5N,80,81,83〜8Nは、閉じ、N型MOSトランジスタ61,62は、オフされ、N型MOSトランジスタ63〜6Nは、オンされる。
その結果、信号は、ノードNからトランスファゲート51を介して遅延器71へ入力され、遅延器71で所定時間だけ遅延された後、トランスファゲート52を介して遅延器72へ入力され、遅延器72で所定時間だけ更に遅延された後、トランスファゲート82を介してインバータ91へ入力され、インバータ91で反転されて出力される。つまり、信号は、2つの遅延器71,72によって遅延された後、インバータ91へ入力され、インバータ91で反転されて出力される。この場合、ノードN11,N12の電位は、入力された信号の電位に等しく、ノードN13〜N1Nの電位は、接地ノードGNDの電位に等しい。
以下、同様にして、信号DistN,Dist0Q〜DistN−1Qおよび信号EN1〜ENNの全てが“1”であり、信号DistNQ,Dist0〜DistN−1および信号EN1Q〜ENNQの全てが“0”である場合、トランスファゲート51〜5N,8Nは、開き、トランスファゲート80〜8N−1は、閉じ、N型MOSトランジスタ61〜6Nは、オフされる。
その結果、信号は、ノードNからトランスファゲート51を通過した後、遅延器71〜7Nの全てによって遅延された後、トランスファゲート8Nを介してインバータ91へ入力され、インバータ91で反転されて出力される。この場合、ノードN11〜N1Nの電位は、入力された信号の電位に等しい。
上述したように、遅延器71〜7Nの各々は、偶数個のインバータが直列接続された構成からなり、信号は、選択信号SL11によっていずれの経路が選択されてもインバータ91を必ず通過するので、Nビットステージ41は、選択信号SL11によっていずれの経路が選択されても信号を奇数回反転して出力する。そして、Nビットステージ41は、選択信号SL11によって選択された経路に応じた遅延量だけ信号を遅延して出力する。即ち、Nビットステージ41は、図3において、最も下側の経路が選択された場合、最も少ない遅延量だけ信号を遅延して出力し、最も上側の経路が選択された場合、最も多い遅延量だけ信号を遅延して出力する。
なお、図2に示すNビットステージ42〜4kの各々も、図3に示すNビットステージ41と同じ構成からなる。
再び、図2を参照して、Nビットステージ41〜4kは、上述したように、それぞれ、選択信号SL11〜SL1kによって選択された遅延経路の遅延量だけ信号を遅延して出力する。即ち、Nビットステージ41〜4kは、それぞれ、選択信号SL11〜SL1kによって選択された遅延経路に含まれるインバータの個数(奇数個)分だけ信号を反転して出力する。そして、Nビットステージ41〜4kおよびNAND回路40は、環状に接続されている。従って、Nビットステージ41〜4kおよびNAND回路40は、発振信号を生成し、その生成した発振信号を出力する。
このように、距離/時間変換回路DTは、k個のNビットステージ41〜4k(=k個の遅延回路)をリング状に接続した発振回路からなる。距離/時間変換回路DT〜DTの各々も、同様に、k個のNビットステージ41〜4k(=k個の遅延回路)をリング状に接続した発振回路からなる。
図4は、図1に示すパスエンコーダPEの構成を示すブロック図である。図4を参照して、パスエンコーダPEは、パスエンコーダPE11〜PE1kを含む。
パスエンコーダPE11は、Nビットの距離信号をユニット比較回路UC11〜UC1Nから受ける。そして、パスエンコーダPE11は、後述する方法によって、Nビットの距離信号に基づいて選択信号SL11を生成し、その生成した選択信号SL11をNビットステージ41へ出力する。
パスエンコーダPE12は、Nビットの距離信号をユニット比較回路UC1N+1〜UC12Nから受ける。そして、パスエンコーダPE12は、後述する方法によって、Nビットの距離信号に基づいて選択信号SL12を生成し、その生成した選択信号SL12をNビットステージ42へ出力する。
以下、同様にして、パスエンコーダPE1kは、Nビットの距離信号をユニット比較回路UC1W−N〜UC1Wから受ける。そして、パスエンコーダPE1kは、後述する方法によって、Nビットの距離信号に基づいて選択信号SL1kを生成し、その生成した選択信号SL1kをNビットステージ4kへ出力する。
図5は、図4に示すパスエンコーダPE11の構成図である。図5を参照して、パスエンコーダPE11は、パス選択信号生成回路11〜1N−1と、インバータIV1〜IVN−2,IV11〜IV1N,IV21〜IV2Nと、NOR回路NR〜NRN−1とを含む。
パス選択信号生成回路11〜1N−1は、直列に接続される。パス選択信号生成回路11は、Nビットの距離信号M1〜MNのうち、2ビットの距離信号M1,M2をユニット比較回路UC11,UC12から受ける。そして、パス選択信号生成回路11は、後述する方法によって、2ビットの距離信号M1,M2に基づいて2ビットの選択信号EN1Q,EN2Qを生成し、その生成した2ビットの選択信号EN1Q,EN2Qをパス選択信号生成回路12へ出力する。
パス選択信号生成回路12は、パス選択信号生成回路11から選択信号EN1Q,EN2Qを受け、ユニット比較回路UC13から距離信号M3を受け、インバータIV1から距離信号M3の反転信号/M3を受ける。そして、パス選択信号生成回路12は、後述する方法によって、選択信号EN1Q,EN2Q、距離信号M3および反転信号/M3に基づいて3ビットの選択信号EN1Q,EN2Q,EN3Qを生成し、その生成した選択信号EN1Q,EN2Q,EN3Qをパス選択信号生成回路13(図示せず)へ出力する。
以下、同様にして、パス選択信号生成回路1N−1は、パス選択信号生成回路1N−2からN−1ビットの選択信号EN1QN−1,EN2QN−1,・・・,ENN−1QN−1を受け、ユニット比較回路UC1Nから距離信号MNを受け、インバータIVN−2から距離信号MNの反転信号/MNを受ける。そして、パス選択信号生成回路1N−1は、後述する方法によって、選択信号EN1QN−1,EN2QN−1,・・・,ENN−1QN−1、距離信号MNおよび反転信号/MNに基づいてNビットの選択信号EN1Q,EN2Q,・・・,ENNQを生成し、その生成した選択信号EN1Q,EN2Q,・・・,ENNQをそれぞれインバータIV11〜IV1Nへ出力する。
インバータIV1〜IVN−2は、それぞれ、距離信号M3〜MNを反転し、その反転した反転信号/M3〜/MNをそれぞれパス選択信号生成回路12〜1N−1へ出力する。
インバータIV11〜IV1Nは、それぞれ、選択信号EN1Q,EN2Q,・・・,ENNQを受け、その受けた選択信号EN1Q,EN2Q,・・・,ENNQを反転する。そして、インバータIV11〜IV1Nは、その反転した信号EN1〜ENNをNビットステージ41へ出力するとともに、その反転した信号EN1〜ENNを、それぞれ、インバータIV21〜IV2Nへ出力する。また、インバータIV22〜IV1Nは、その反転した信号EN2〜ENNを、それぞれ、NOR回路NR〜NRN−1へ出力する。
インバータIV21〜IV2Nは、それぞれ、信号EN1〜ENNを反転し、その反転した信号EN1Q,EN2Q,・・・,ENNQをNビットステージ41へ出力する。また、インバータIV21〜IV2N=1は、その反転した信号EN1Q,EN2Q,・・・,ENNQN−1を、それぞれ、NOR回路NR〜NRN−1へ出力する。
NOR回路NRは、信号EN1Qと信号EN2との論理和を演算し、その演算した論理和を反転した信号Dist1をNビットステージ41へ出力する。NOR回路NRは、信号EN2Qと信号EN3との論理和を演算し、その演算した論理和を反転した信号Dist2をNビットステージ41へ出力する。以下、同様にして、NOR回路NRN−1は、信号ENN−1Qと信号ENNとの論理和を演算し、その演算した論理和を反転した信号DistN−1をNビットステージ41へ出力する。
なお、図5においては、図3に示す信号Dist0および信号DistNが生成されていないが、信号Dist0は、信号EN1の反転信号に等しく、信号DistNは、信号ENNに等しい。従って、パスエンコーダPE11は、信号EN1をNビットステージ41のトランスファーゲート51へ出力するとともに、信号EN1の反転信号をトランスファーゲート80へ出力する。また、パスエンコーダPE11は、信号ENNをトランスファゲート5Nおよびトランスファゲート8Nへ出力する。
図6は、図5に示すパス選択信号生成回路11の回路図である。図6を参照して、パス選択信号生成回路11は、NAND回路111と、NOR回路112とを含む。NAND回路111は、距離信号M1と距離信号M2との論理積を演算し、その演算した論理積を反転して信号EN1Qを生成し、その生成した信号EN1Qを出力する。
NOR回路112は、距離信号M1と距離信号M2との論理和を演算し、その演算した論理和を反転して信号EN2Qを生成し、その生成した信号EN2Qを出力する。
図7は、図5に示すパス選択信号生成回路12の回路図である。図7を参照して、パス選択信号生成回路12は、P型MOSトランジスタ121と、トランスファゲート122〜125と、N型MOSトランジスタ126とを含む。
トランスファゲート122〜125の各々は、P型MOSトランジスタとN型MOSトランジスタとが並列に接続された構成からなる。
P型MOSトランジスタ121は、ソース端子が接地ノードGNDに接続され、ドレイン端子がトランスファゲート122の出力端子に接続され、距離信号M3の反転信号M3Qをゲート端子に受ける。
トランスファゲート122は、信号EN1Qを入力端子に受ける。そして、トランスファゲート122のP型MOSトランジスタは、距離信号M3をゲート端子に受け、トランスファゲート122のN型MOSトランジスタは、反転信号M3Qをゲート端子に受ける。
トランスファゲート123は、信号EN1Qを入力端子に受ける。そして、トランスファゲート123のP型MOSトランジスタは、反転信号M3Qをゲート端子に受け、トランスファゲート123のN型MOSトランジスタは、距離信号M3をゲート端子に受ける。
トランスファゲート124は、信号EN2Qを入力端子に受ける。そして、トランスファゲート124のP型MOSトランジスタは、距離信号M3をゲート端子に受け、トランスファゲート124のN型MOSトランジスタは、反転信号M3Qをゲート端子に受ける。
トランスファゲート125は、信号EN2Qを入力端子に受ける。そして、トランスファゲート125のP型MOSトランジスタは、反転信号M3Qをゲート端子に受け、トランスファゲート125のN型MOSトランジスタは、距離信号M3をゲート端子に受ける。
N型MOSトランジスタ126は、ソース端子が電源ノードVDDに接続され、ドレイン端子がトランスファゲート125の出力端子に接続される。
距離信号M3が“0”であり、反転信号M3Qが“1”である場合、トランスファゲート123,125は、閉じられ、P型MOSトランジスタ121がオフされ、N型MOSトランジスタ126がオンされ、トランスファゲート122,124が開かれる。従って、信号EN1Q=EN1Q、信号EN2Q=EN2Q、信号EN3Q=1である。
一方、距離信号M3が“1”であり、反転信号M3Qが“0”である場合、トランスファゲート122,124は、閉じられ、N型MOSトランジスタ126がオフされ、P型MOSトランジスタ121がオンされ、トランスファゲート123,125が開かれる。従って、信号EN1Q=0、信号EN2Q=EN1Q、信号EN3Q=EN2Qである。
パス選択信号生成回路12の出力信号EN1Q〜EN3Qと距離信号M3との関係を表1に示す。
Figure 2013101729
表1から解るように、パス選択信号生成回路12は、距離信号M3が“0”である場合、信号EN1Q,EN2Qをそのまま出力し、距離信号M3が“1”である場合、信号EN1Q,EN2Qを1ビット分シフトして出力する。
図8は、図5に示すパス選択信号生成回路1N−1の回路図である。図8を参照して、パス選択信号生成回路1N−1は、P型MOSトランジスタ131と、トランスファゲート132〜135+2N−3と、N型MOSトランジスタ136+2N−3とを含む。
P型MOSトランジスタ131は、ソース端子が接地ノードGNDに接続され、ドレイン端子がトランスファゲート132の出力端子に接続され、距離信号MNの反転信号MNQをゲート端子に受ける。
トランスファゲート132〜135+2N−3の各々は、P型MOSトランジスタとN型MOSトランジスタとが並列に接続された構成からなる。
トランスファゲート132,133、トランスファゲート134,135、トランスファゲート136,137、・・・、およびトランスファゲート134+2N−3,135+2N−3は、それぞれ、信号EN1QN−1〜ENN−1QN−1を入力端子に受ける。
トランスファゲート132,134,136,・・・,134+2N−3において、P型MOSトランジスタは、距離信号MNをゲート端子に受け、N型MOSトランジスタは、距離信号MNの反転信号MNQをゲート端子に受ける。
トランスファゲート133,135,137,・・・,135+2N−3において、P型MOSトランジスタは、反転信号MNQをゲート端子に受け、N型MOSトランジスタは、距離信号MNをゲート端子に受ける。
N型MOSトランジスタ136+2N−3は、ソース端子が電源ノードVDDに接続され、ドレイン端子がトランスファゲート135+2N−3の出力端子に接続され、反転信号MNQをゲート端子に受ける。
距離信号MNが“0”であり、反転信号MNQが“1”である場合、トランスファゲート133,135,137,・・・,135+2N−3は、閉じられ、P型MOSトランジスタ131がオフされ、N型MOSトランジスタ136+2N−3がオンされ、トランスファゲート132,134,136,・・・,134+2N−3が開かれる。従って、信号EN1Q=EN1QN−1、信号EN2Q=EN2QN−1、信号EN3Q=EN3QN−1、・・・、信号ENN−1Q=ENN−1QN−1、信号ENNQ=1である。
一方、距離信号MNが“1”であり、反転信号MNQが“0”である場合、トランスファゲート132,134,136,・・・,134+2N−3は、閉じられ、N型MOSトランジスタ136+2N−3がオフされ、P型MOSトランジスタ131がオンされ、トランスファゲート133,135,137,・・・,135+2N−3が開かれる。従って、信号EN1Q=0、信号EN2Q=EN1QN−1、信号EN3Q=EN2QN−1、・・・、ENNQ=ENN−1QN−1である。
パス選択信号生成回路1N−1の出力信号EN1Q〜ENNQと距離信号MNとの関係を表2に示す。
Figure 2013101729
表2から解るように、パス選択信号生成回路1N−1は、距離信号MNが“0”である場合、信号EN1QN−1〜ENN−1QN−1をそのまま出力し、距離信号MNが“1”である場合、信号EN1QN−1〜ENN−1QN−1を1ビット分シフトして出力する。
図9は、図4に示すパスエンコーダPE11の一般的な概念図である。図9を参照して、パスエンコーダPE11は、N−1ビットパスエンコーダ200と、選択器201〜20Nとを含む。
N−1ビットパスエンコーダ200は、N−1ビットの距離信号M1〜MN−1に基づいて、N−1ビットの信号EN1QN−1〜ENN−1QN−1を生成し、その生成したN−1ビットの信号EN1QN−1〜ENN−1QN−1を出力する。
選択器201は、信号EN1QN−1および距離信号MNを受ける。そして、選択器201は、距離信号MNが“0”であるとき、信号EN1QN−1からなる信号EN1Qを出力し、距離信号MNが“1”であるとき、接地ノードGNDの電位からなる信号(=0)を信号EN1Qとして出力する。
選択器202は、信号EN1QN−1,EN2QN−1および距離信号MNを受ける。そして、選択器202は、距離信号MNが“0”であるとき、信号EN2QN−1からなる信号EN2Qを出力し、距離信号MNが“1”であるとき、信号EN1QN−1からなる信号EN2Qを出力する。
選択器203は、信号EN2QN−1,EN3QN−1および距離信号MNを受ける。そして、選択器203は、距離信号MNが“0”であるとき、信号EN3QN−1からなる信号EN3Qを出力し、距離信号MNが“1”であるとき、信号EN2QN−1からなる信号EN3Qを出力する。
以下、同様にして、選択器20N−1は、信号ENN−2QN−1,ENN−1QN−1および距離信号MNを受ける。そして、選択器20N−1は、距離信号MNが“0”であるとき、信号ENN−1QN−1からなる信号ENN−1Qを出力し、距離信号MNが“1”であるとき、信号ENN−2QN−1からなる信号ENN−1Qを出力する。また、選択器20Nは、信号ENN−1QN−1および距離信号MNを受ける。そして、選択器20Nは、距離信号MNが“0”であるとき、電源ノードVDDからなる信号(=1)を信号ENNQとして出力し、距離信号MNが“1”であるとき、信号ENN−1QN−1からなる信号ENNQを出力する。
パスエンコーダPE11が3ビットパスエンコーダからなる場合、N−1ビットパスエンコーダ200は、2ビットパスエンコーダからなり、具体的には、図6に示すパス選択信号生成回路11からなる。従って、N−1ビットパスエンコーダ200は、信号EN1Q,EN2Qを出力する。
距離信号M3が“0”であるとき、図7に示すトランスファゲート122は、信号EN1Qを信号EN1Qとして出力し、距離信号M3が“1”であるとき、図7に示すP型MOSトランジスタ121は、“0”からなる信号を信号EN1Qとして出力する。従って、P型MOSトランジスタ121およびトランスファゲート122は、選択器201を構成する。
また、距離信号M3が“0”であるとき、図7に示すトランスファゲート124は、信号EN2Qを信号EN2Qとして出力し、距離信号M3が“1”であるとき、図7に示すトランスファゲート123は、信号EN1Qを信号EN2Qとして出力する。従って、トランスファゲート123,124は、選択器202を構成する。
更に、距離信号M3が“0”であるとき、図7に示すN型MOSトランジスタ126は、“1”からなる信号を信号EN3Qとして出力し、距離信号M3が“1”であるとき、図7に示すトランスファゲート125は、信号EN2Qを信号EN3Qとして出力する。従って、トランスファゲート125およびN型MOSトランジスタ126は、選択器203を構成する。
また、パスエンコーダPE11がNビットパスエンコーダからなる場合、N−1ビットパスエンコーダ200は、パス選択信号生成回路11〜1N−2からなり、N−1ビットの信号EN1QN−1〜ENN−1QN−1を出力する。
距離信号MNが“0”であるとき、図8に示すトランスファゲート132は、信号EN1QN−1を信号EN1Qとして出力し、距離信号MNが“1”であるとき、図8に示すP型MOSトランジスタ131は、“0”からなる信号を信号EN1Qとして出力する。従って、P型MOSトランジスタ131およびトランスファゲート132は、選択器201を構成する。
また、距離信号MNが“0”であるとき、図8に示すトランスファゲート134は、信号EN2QN−1を信号EN2Qとして出力し、距離信号MNが“1”であるとき、図8に示すトランスファゲート133は、信号EN1QN−1を信号EN2Qとして出力する。従って、トランスファゲート133,134は、選択器202を構成する。
更に、距離信号MNが“0”であるとき、図8に示すトランスファゲート136は、信号EN3QN−1を信号EN3Qとして出力し、距離信号MNが“1”であるとき、図8に示すトランスファゲート135は、信号EN2QN−1を信号EN3Qとして出力する。従って、トランスファゲート135,136は、選択器203を構成する。
更に、距離信号MNが“0”であるとき、図8に示すN型MOSトランジスタ136+2N−3は、“1”からなる信号を信号ENNQとして出力し、距離信号MNが“1”であるとき、図8に示すトランスファゲート135+2N−3は、信号ENN−1QN−1を信号ENNQとして出力する。従って、トランスファゲート135+2N−3およびN型MOSトランジスタ136+2N−3は、選択器20Nを構成する。
このように、図5から図8において説明したパスエンコーダPE11は、一般的には、図9に示すN−1ビットパスエンコーダ200と、選択器201〜20Nとからなる。そして、パスエンコーダPE11は、Nビットの距離信号M1〜MNに基づいて、上述した方法によって、信号EN1〜ENN,EN1Q〜ENNQ,Dist0〜DistNを生成し、その生成した信号EN1〜ENN,EN1Q〜ENNQ,Dist0〜DistNをNビットステージ41へ出力する。従って、信号EN1〜ENN,EN1Q〜ENNQ,Dist0〜DistNは、選択信号SL11を構成する。
なお、図4に示すパスエンコーダPE12〜PE1kの各々も、図5から図9に示すパスエンコーダPE11と同じ構成からなる。従って、パスエンコーダPE12〜PE1kから出力される信号EN1〜ENN,EN1Q〜ENNQ,Dist0〜DistNは、それぞれ、選択信号SL12〜SL1kを構成する。
再び、図4を参照して、パスエンコーダPE11〜PE1kの各々は、パスエンコーダPEへ出力されるWビットの距離信号のうち、Nビットの距離信号を受ける。そして、パスエンコーダPE11〜PE1kは、その受けたNビットの距離信号に基づいて、上述した方法によってそれぞれ選択信号SL11〜SL1kを生成し、その生成した選択信号SL11〜SL1kをそれぞれNビットステージ41〜4kへ出力する。従って、Nビットステージ41〜4kは、それぞれ、パスエンコーダPE11〜PE1kに対応して設けられる。
図10は、図1に示す分周回路20の構成図である。図10を参照して、分周回路20は、分周器211〜21Rを含む。
分周器211〜21Rは、それぞれ、距離/時間変換回路DT〜DTに対応して設けられる。そして、分周器211〜21Rは、それぞれ、距離/時間変換回路DT〜DTから発振信号S〜Sを受け、その受けた発振信号S〜Sを所望の回数だけ分周する。そして、分周器211〜21Rは、それぞれ、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。
図11は、図10に示す分周器211の回路図である。図11を参照して、分周器211は、トランスファゲート2111,2115,2116,2125と、N型MOSトランジスタ2112,2113,2114,2118,2119,2120,2124,2126と、P型MOSトランジスタ2117,2121,2122,2123,2127とを含む。
トランスファゲート2111,2115,2116の各々は、並列に接続された2個のP型MOSトランジスタからなり、トランスファゲート2125は、並列に接続された2個のN型MOSトランジスタからなる。
トランスファゲート2111およびN型MOSトランジスタ2112,2113は、電源ノードVDDと接地ノードGNDとの間に直列に接続される。トランスファゲート2111の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)およびN型MOSトランジスタ2113は、ゲート端子が入力端子Inに接続される。トランスファゲート2111の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、ゲート端子がN型MOSトランジスタ2112のゲート端子およびノードN32に接続される。
N型MOSトランジスタ2114は、ノードN31とノードN32との間に接続される。N型MOSトランジスタ2114のゲート端子は、トランスファゲート2115の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)のゲート端子に接続される。
トランスファゲート2115,2116は、電源ノードVDDとノードN32との間に直列に接続される。トランスファゲート2115の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、ゲート端子が入力端子Inに接続される。トランスファゲート2116の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)のゲート端子は、ノードN33と、P型MOSトランジスタ2122およびN型MOSトランジスタ2126のゲート端子とに接続される。トランスファゲート2116の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)のゲート端子は、N型MOSトランジスタ2120のゲート端子およびノードN34に接続される。
P型MOSトランジスタ2117は、電源ノードVDDと、ノードN37との間に接続される。そして、P型MOSトランジスタ2117のゲート端子は、ノードN32に接続される。
N型MOSトランジスタ2118は、ノードN37と、接地ノードGNDとの間に接続される。そして、N型MOSトランジスタ2118のゲート端子は、ノードN32に接続される。
N型MOSトランジスタ2119は、ノードN32と接地ノードGNDとの間に接続される。そして、N型MOSトランジスタ2119のゲート端子は、リセット信号Fre_RSTを受ける。
N型MOSトランジスタ2120は、ノードN32とノードN35との間に接続される。そして、N型MOSトランジスタ2120のゲート端子は、トランスファゲート2116の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)のゲート端子およびノードN34に接続される。
P型MOSトランジスタ2121は、ノードN34とノードN36との間に接続される。そして、P型MOSトランジスタ2121のゲート端子は、トランスファゲート2125の一方のN型MOSトランジスタ(=図11の左側のN型MOSトランジスタ)のゲート端子に接続される。
P型MOSトランジスタ2122およびトランスファゲート2125は、電源ノードVDDとノードN35との間に直列に接続される。P型MOSトランジスタ2122のゲート端子は、ノードN33およびトランスファゲート2116の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)のゲート端子に接続される。
トランスファゲート2125の一方のN型MOSトランジスタ(=図11の左側のN型MOSトランジスタ)のゲート端子は、P型MOSトランジスタ2121のゲート端子に接続される。トランスファゲート2125の他方のN型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)のゲート端子は、入力端子Inおよびトランスファゲート2115の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)に接続される。
P型MOSトランジスタ2123は、電源ノードVDDと、ノードN38との間に接続される。そして、P型MOSトランジスタ2123のゲート端子は、ノードN34に接続される。
N型MOSトランジスタ2124は、ノードN38と、接地ノードGNDとの間に接続される。そして、N型MOSトランジスタ2124のゲート端子は、ノードN34に接続される。
N型MOSトランジスタ2126は、ノードN35と接地ノードGNDとの間に接続される。そして、N型MOSトランジスタ2126のゲート端子は、ノードN33と、P型MOSトランジスタ2122のゲート端子とに接続される。
P型MOSトランジスタ2127は、電源ノードVDDとノードN34との間に接続される。そして、P型MOSトランジスタ2127のゲート端子は、リセット信号Fre_RSTの反転信号Fre_RSTQを受ける。
出力端子Outは、ノードN32に接続される。
図12は、図11に示す分周器211の入力信号および出力信号のタイミングチャートである。
図12を参照して、発振信号S,Sは、分周器211への入力信号であり、発振信号Sd1,Sd2は、分周器211からの出力信号である。そして、発振信号S,S,Sd1,Sd2は、一定の周期を有する周期信号である。
発振信号Sが分周器211へ入力される場合を考える。分周器211がリセットされるとき、リセット信号Fre_RSTは、“1”からなり、反転信号Fre_RSTQは、“0”からなるので、ノードN32の電位は、接地ノードGNDの電位V0からなり、ノードN34の電位は、電源ノードVDDの電位Vddからなる。
その結果、P型MOSトランジスタ2117およびトランスファゲート2111の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、オンされ、N型MOSトランジスタ2112,2118は、オフされる。そうすると、ノードN37の電位は、電源ノードVDDの電位Vddからなり、トランスファゲート2115の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)は、オフされ、N型MOSトランジスタ2114は、オンされる。
また、ノードN33の電位は、電源ノードVDDからトランスファゲート2111を介して流れる電流によって上昇し、電源ノードVDDの電位Vddになる。そして、トランスファゲート2116の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)およびP型MOSトランジスタ2122は、オフされ、N型MOSトランジスタ2126は、オンされる。
更に、トランスファゲート2116の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)およびP型MOSトランジスタ2123は、オフされ、N型MOSトランジスタ2120,2124は、オンされる。そうすると、ノードN38の電位は、接地ノードGNDの電位V0からなり、P型MOSトランジスタ2121は、オンされ、トランスファゲート2125の一方のN型MOSトランジスタ(=図11の左側のN型MOSトランジスタ)は、オフされる。
このような状態において、発振信号Sの“0”からなる成分SS1が入力端子Inに入力されると、N型MOSトランジスタ2113およびトランスファゲート2125の他方のN型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)は、オフされ、トランスファゲート2115の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、オンされる。
その結果、N型MOSトランジスタ2112は、オフされ、トランスファゲート2115,2125は、閉じられるので、ノードN32の電位は、接地ノードGNDの電位V0に維持され、分周器211は、“0”からなる発振信号Sd1を出力端子Outから出力する。
その後、発振信号Sの“1”からなる成分SS2が入力端子Inに入力されると、N型MOSトランジスタ2113およびトランスファゲート2125の他方のN型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)は、オンされ、トランスファゲート2115の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、オフされる。
その結果、ノードN34の電位は、電源ノードVDDの電位Vddから接地ノードGNDの電位V0へ変化し、N型MOSトランジスタ2120は、オフされ、トランスファゲート2116の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、オンされる。また、ノードN38の電位は、電源ノードVDDの電位Vddへ変化し、P型MOSトランジスタ2121は、オフされ、トランスファゲート2125の一方のN型MOSトランジスタ(=図11の左側のN型MOSトランジスタ)は、オンされる。
そうすると、3個の電源ノードVDDのいずれからも、ノードN32へ電流が流れないので、ノードN32の電位は、接地ノードGNDの電位V0に維持され、分周器211は、“0”からなる発振信号Sd1を出力端子Outから出力する。
更に、その後、発振信号Sの“0”からなる成分SS3が入力端子Inに入力されると、N型MOSトランジスタ2113およびトランスファゲート2125の他方のN型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)は、オフされ、トランスファゲート2111の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)およびトランスファゲート2115の他方のP型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)は、オンされる。
その結果、電流が電源ノードVDDからトランスファゲート2115,2116を介してノードN32へ流れ、ノードN32の電位は、電源ノードVDDの電位Vddからなる。そして、P型MOSトランジスタ2117がオフされ、N型MOSトランジスタ2118がオンされるので、ノードN37の電位は、接地ノードGNDの電位V0になり、トランスファゲート2115の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)がオンされ、N型MOSトランジスタ2114がオフされる。また、トランスファゲート2111の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)は、オフされ、N型MOSトランジスタ2112は、オンされる。
従って、分周器211は、“1”からなる発振信号Sd1を出力端子Outから出力する。
引き続いて、発振信号Sの“1”からなる成分SS4が入力端子Inに入力されると、トランスファゲート2111の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)がオフされ、N型MOSトランジスタ2113がオンされる。その結果、トランスファゲート2111は、閉じ、N型MOSトランジスタ2112,2113がオンされるので、ノードN33の電位は、接地ノードGNDの電位V0になる。
そうすると、P型MOSトランジスタ2122がオンされ、N型MOSトランジスタ2126がオフされる。また、“1”からなる成分SS4に応じて、トランスファゲート2125の他方のN型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)がオンされる。そして、電流が電源ノードVDDからP型MOSトランジスタ2122を介してノードN34へ流れ、ノードN34の電位が電源ノードVDDの電位Vddになり、トランスファゲート2116の他方のP型MOSトランジスタ(=図11の右側のP型MOSトランジスタ)がオフされ、N型MOSトランジスタ2120がオンされる。
従って、電流が電源ノードVDDからP型MOSトランジスタ2122、トランスファゲート2125およびN型MOSトランジスタ2120を介してノードN32へ流れ、ノードN32の電位は、電源ノードVDDの電位Vddからなる。そして、分周器211は、“1”からなる発振信号Sd1を出力端子Outから出力する。
その後、発振信号Sの“0”からなる成分SS5が入力端子Inに入力されると、トランスファゲート2111の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)がオンされ、N型MOSトランジスタ2113がオフされる。その結果、ノードN33の電位は、電源ノードVDDの電位Vddになり、P型MOSトランジスタ2122がオフされ、N型MOSトランジスタ2126がオンされる。また、ノードN33の電位(=電位Vdd)に応じて、トランスファゲート2116の一方のP型MOSトランジスタ(=図11の左側のP型MOSトランジスタ)がオフされ、トランスファゲート2116は、閉じられる。更に、“0”からなる成分SS5に応じて、トランスファゲート2125の他方のN型MOSトランジスタ(=図11の右側のN型MOSトランジスタ)がオフされ、トランスファゲート2125は、閉じる。
その結果、電流がノードN32からN型MOSトランジスタ2120,2126を介して接地ノードGNDへ流れるので、ノードN32の電位は、接地ノードGNDの電位V0になる。従って、分周器211は、“0”からなる発振信号Sd1を出力端子Outから出力する。
その後、分周器211は、上述した動作を繰り返し行い、発振信号Sd1を出力端子Outから出力する。
また、分周器211は、発振信号Sが入力端子Inに入力されたときも、同様にして発振信号Sd2を出力端子Outから出力する。
発振信号Sd1は、発振信号Sを遅延させた位相を有するとともに、発振信号Sの周期を2倍した周期を有する。また、発振信号Sd2は、発振信号Sを遅延させた位相を有するとともに、発振信号Sの周期を2倍した周期を有する。
そして、発振信号Sと発振信号Sとの位相差をTd1とし、発振信号Sd1と発振信号Sd2との位相差をTd2とした場合、位相差Td2は、位相差Td1よりも大きくなる。その結果、分周器211が無い場合に比べ、発振信号Sd1を正確に検出できる。
また、分周器211は、21個のトランジスタによって構成されているので、分周器211の占有面積を小さくできる。
なお、図10に示す分周器212〜21Rの各々も、図11に示す分周器211と同じ構成からなる。
図13は、図1に示す時間領域WTA回路30の構成図である。図13を参照して、時間領域WTA回路30は、インバータ301〜30R,340,360と、遅延回路311〜31Rと、レジスタ321〜32Rと、Winner検出回路330と、フィードバック回路350とを含む。
インバータ301〜30Rは、分周回路20の分周器211〜21Rに対応して設けられ、それぞれ、発振信号Sd1〜SdRを受ける。そして、インバータ301〜30Rは、それぞれ、発振信号Sd1〜SdRを反転し、その反転した反転信号/Sd1〜/SdRをそれぞれ遅延回路311〜31Rへ出力するとともに、反転信号/Sd1〜/SdRをWinner検出回路330へ出力する。
遅延回路311〜31Rの各々は、直列に接続された偶数個のインバータからなる。遅延回路311〜31Rは、それぞれ、反転信号/Sd1〜/SdRを受け、その受けた反転信号/Sd1〜/SdRをτだけ遅延し、その遅延した反転信号/Sd1〜/SdRをそれぞれレジスタ321〜32Rのデータ端子Dへ出力する。
レジスタ321〜32Rは、検索開始信号SB(=0)の反転信号/SB(=1)をインバータ360からリセット端子RSTに受け、フィードバック回路350から検索終了信号SEをクロック端子CLKに受ける。
レジスタ321〜32Rは、反転信号/SBをリセット端子RSTに受けると、リセットされる。また、レジスタ321〜32Rは、それぞれ、反転信号/Sd1〜/SdRをデータ端子Dに受ける。更に、レジスタ321〜32Rは、検索終了信号SEをクロック端子CLKに受けないとき、それぞれ、データ端子Dに受けた反転信号/Sd1〜/SdRを出力し、検索終了信号SEをクロック端子CLKに受けると、それぞれ、データ端子Dに受けた反転信号/Sd1〜/SdRをラッチ(保持)する。
Winner検出回路330は、それぞれ、インバータ301〜30Rから反転信号/Sd1〜/SdRを受け、その受けた反転信号/Sd1〜/SdRのうち、最も早く変化する反転信号(=反転信号/Sd1〜/SdRのいずれか)を検出する。
Winner検出回路330は、最も早く変化する反転信号(=反転信号/Sd1〜/SdRのいずれか)を検出すると、検索終了信号SEを生成し、その生成した検索終了信号SEをインバータ340およびフィードバック回路350へ出力する。
インバータ340は、Winner検出回路330から受けた検索終了信号SEを反転して反転信号/SEを出力する。
フォードバック回路350は、Winner検出回路330から検索終了信号SEを受け、その受けた検索終了信号SEをR個のレジスタ321〜32Rへ同時に出力する。
インバータ360は、検索開始信号SBを外部から受け、その受けた検索開始信号SBを反転して反転信号/SBをレジスタ321〜32Rへ出力する。
図14は、図13に示すWinner検出回路330の回路図である。図14を参照して、Winner検出回路330は、NOR回路3301〜330p,3321〜332r,3341,3342と、NAND回路3311〜331q,3331〜3334,3351とを含む。
ここで、pは、p=R/2を満たす整数であり、qは、q=p/2を満たす整数であり、rは、r=q/2を満たす整数である。
NOR回路3301は、反転信号/Sd1,/Sd2を受け、その受けた反転信号/Sd1,/Sd2の論理和を演算し、その演算した論理和を反転してNAND回路3311へ出力する。
NOR回路3302は、反転信号/Sd3,/Sd4を受け、その受けた反転信号/Sd3,/Sd4の論理和を演算し、その演算した論理和を反転してNAND回路3311へ出力する。
以下、同様にして、NOR回路330p−1は、反転信号/SdR−3,/SdR−2を受け、その受けた反転信号/SdR−3,/SdR−2の論理和を演算し、その演算した論理和を反転してNAND回路331qへ出力する。NOR回路330pは、反転信号/SdR−1,/SdRを受け、その受けた反転信号/SdR−1,/SdRの論理和を演算し、その演算した論理和を反転してNAND回路331qへ出力する。
NAND回路3311は、NOR回路3301の出力信号とNOR回路3302の出力信号との論理積を演算し、その演算した論理積を反転してNOR回路3321へ出力する。以下、同様にして、NAND回路331qは、NOR回路330p−1の出力信号とNOR回路330pの出力信号との論理積を演算し、その演算した論理積を反転してNOR回路332rへ出力する。
NOR回路3321は、NAND回路3311の出力信号と、NAND回路3312(図示せず)の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路3331へ出力する。以下、同様にして、NOR回路332rは、NAND回路331q−1(図示せず)の出力信号とNAND回路331qの出力信号との論理和を演算し、その演算した論理和を反転してNAND回路3334へ出力する。
NAND回路3331は、NOR回路3321の出力信号と、NOR回路3322(図示せず)の出力信号との論理積を演算し、その演算した論理積を反転してNOR回路3341へ出力する。以下、同様にして、NAND回路3334は、NOR回路332r−1(図示せず)の出力信号とNOR回路332rの出力信号との論理積を演算し、その演算した論理積を反転してNOR回路3342へ出力する。
NOR回路3341は、NAND回路3331の出力信号と、NAND回路3332(図示せず)の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路3351へ出力する。NOR回路3342は、NAND回路3333(図示せず)の出力信号と、NAND回路3334の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路3351へ出力する。
NAND回路3351は、NOR回路3341の出力信号とNOR回路3342の出力信号との論理積を演算し、その演算した論理積を反転して検索終了信号SEを生成する。そして、NAND回路3351は、検索終了信号SEをインバータ340およびフォードバック回路350へ出力する。
反転信号/Sd1がWinner行の反転信号であり、反転信号/Sd2〜/SdRがLoser行の反転信号である場合、NOR回路3301は、“0”を出力し、NOR回路3302〜330pは、“1”を出力する。
そして、NAND回路3311は、“1”を出力し、NAND回路3312〜331qは、“0”を出力する。その後、NOR回路3321は、“0”を出力し、NOR回路3322〜332rは、“1”を出力する。引き続いて、NAND回路3331は、“1”を出力し、NAND回路3332〜3334は、“0”を出力する。そして、NOR回路3341は、“0”を出力し、NOR回路3342は、“1”を出力する。そうすると、NAND回路3351は、“1”からなる検索終了信号SEを出力する。
反転信号/Sd2〜/SdRのいずれかがWinner行の反転信号である場合も、Winner検出回路330は、同様にして検索終了信号SEを生成して出力する。
Winner検出回路330は、2入力ゲートをトーナメント方式で接続した構成からなる。その結果、いずれの行がWinner行になっても、Winner行の反転信号がWinner検出回路330へ入力されてから検索終了信号SEが出力されるまでに通過するNOR回路およびNAND回路の個数は、等しくなる。
従って、いずれの行がWinner行になっても、Winner行の反転信号がWinner検出回路330へ入力されてから検索終了信号SEが出力されるまでの遅延時間を一定にできる。
図15は、図14に示すNAND回路3311の回路図である。図15を参照して、NAND回路3311は、P型MOSトランジスタ401,402と、N型MOSトランジスタ403〜406とを含む。
P型MOSトランジスタ401,402は、電源ノードVDDとノードN41との間に並列に接続される。
N型MOSトランジスタ403,405は、ノードN41と接地ノードGNDとの間に直列に接続される。また、N型MOSトランジスタ404,406は、ノードN41と接地ノードGNDとの間に直列に接続される。そして、直列に接続されたN型MOSトランジスタ403,405は、ノードN41と接地ノードGNDとの間で、直列に接続されたN型MOSトランジスタ404,406と並列に接続される。
NAND回路3311において、P型MOSトランジスタ401およびN型MOSトランジスタ403,406は、入力Aをゲート端子に受け、P型MOSトランジスタ402およびN型MOSトランジスタ404,405は、入力Bをゲート端子に受ける。
このように、NAND回路3311は、出力容量が一定であるP型MOSトランジスタおよびN型MOSトランジスタを左右対称に配置した構成からなる。
なお、図14に示すNAND回路3312〜331q,3331〜3334,3351の各々も、図15に示すNAND回路3311と同じ構成からなる。
図16は、図14に示すNOR回路3301の回路図である。図16を参照して、NOR回路3301は、P型MOSトランジスタ411〜414と、N型MOSトランジスタ415,416とを含む。
P型MOSトランジスタ411,413は、電源ノードVDDとノードN42との間に直列に接続される。P型MOSトランジスタ412,414は、電源ノードVDDとノードN42との間に直列に接続される。そして、直列に接続されたP型MOSトランジスタ411,413は、電源ノードVDDとノードN42との間において、直列に接続されたP型MOSトランジスタ412,414と並列に接続される。
N型MOSトランジスタ415,416は、ノードN42と接地ノードGNDとの間に並列に接続される。
NOR回路3301において、P型MOSトランジスタ411,414およびN型MOSトランジスタ415は、入力Aをゲート端子に受け、P型MOSトランジスタ412,413およびN型MOSトランジスタ416は、入力Bをゲート端子に受ける。
このように、NOR回路3301は、出力容量が一定であるP型MOSトランジスタおよびN型MOSトランジスタを左右対称に配置した構成からなる。
なお、図14に示すNOR回路3302〜330p,3321〜332r,3341,3342の各々も、図16に示すNOR回路3301と同じ構成からなる。
上述したように、NOR回路3301〜330p,3321〜332r,3341,3342およびNAND回路3311〜331q,3331〜3334,3351は、P型MOSトランジスタおよびN型MOSトランジスタを左右対称に配置した構成からなる。その結果、NOR回路3301〜330p,3321〜332r,3341,3342における遅延時間が相互に等しくなり、NAND回路3311〜331q,3331〜3334,3351における遅延時間が相互に等しくなる。
従って、いずれの行がWinner行になっても、Winner行の反転信号がWinner検出回路330へ入力されてから検索終了信号SEが出力されるまでの遅延時間を一定にできる。
図17は、図13に示す時間領域WTA回路30におけるタイミングチャートである。
Winner行の信号が変化してからレジスタ(=レジスタ321〜32Rのいずれか)にデータが入力されるまでの時間をτとし、Winner行の信号の変化を検出してからレジスタ321〜32Rの全てをラッチするまでの時間をτSEとし、レジスタ321〜32Rのセットアップ時間をτSTとし、ばらつきを打ち消すためのマージン時間をτとし、距離1の時間差をτとする。
図17を参照して、タイミングt0(=時刻0)でWinner行の信号が変化する。そして、タイミングt1でWinner行の信号がレジスタ(=レジスタ321〜32Rのいずれか)に入力される。
その後、タイミングt2で全ての行のレジスタ321〜32Rがラッチされる。そして、タイミングt3でWinner行に最も近いLoser行の信号がレジスタ(=レジスタ321〜32Rのいずれか)に入力される。
タイミングt0からタイミングt2までの時間であるτSEは、τSE=τ+τST+τであるので、τは、τ=τSE−τST−τによって表される。
そして、Winner行の信号の変化を検出してからレジスタ321〜32Rの全てをラッチするまでの時間であるτSEがばらついても、Winner行の信号と、Winner行に最も近いLoser行の信号とを判別できるように、τを調整してマージン時間τを決定する。
再び、図13を参照して、発振信号Sd1がWinner行の発振信号である場合、Winner検出回路330は、反転信号/Sd1〜/SdRのうち、反転信号/Sd1の変化を最も早く検出し、検索終了信号SEを生成する。
遅延回路311は、反転信号/Sd1をτだけ遅延してレジスタ321へ出力し、レジスタ321は、反転信号/Sd1をデータ端子Dに受ける。
その後、フィードバック回路350は、検索終了信号SEをレジスタ321〜32Rへ同時に出力し、レジスタ321〜32Rは、検索終了信号SEに応じてデータをラッチする。この段階で反転信号を受けているのは、レジスタ321だけであり、レジスタ321は、“1”からなる信号Mを出力し、レジスタ322〜32Rは、それぞれ、“0”からなる信号M〜Mを出力する。
図18は、図13に示すWinner検出回路330の他の回路図である。この発明の実施の形態においては、時間領域WTA回路30は、図18に示すWinner検出回路330Aを備えていてもよい。
図18を参照して、Winner検出回路330Aは、N型MOSトランジスタ3361〜336Rと、プリチャージ/キーパー3371〜337s−1,・・・,337R−s〜337R−1,339sと、インバータ337s,337R,338s,338R,339Rとを含む。
N型MOSトランジスタ3361〜336s(sは2以上の整数)は、それぞれ、ノードN51〜N5sと接地ノードGNDとの間に接続される。
N型MOSトランジスタ336R−s〜336Rは、それぞれ、ノードN5R−s〜N5Rと接地ノードGNDとの間に接続される。
そして、N型MOSトランジスタ3361〜336Rは、それぞれ、反転信号/Sd1〜/SdRをゲート端子に受ける。
プリチャージ/キーパー3371〜337s−1は、それぞれ、N型MOSトランジスタ3361〜336sのソース端子に接続される。プリチャージ/キーパー337R−s〜337R−1は、それぞれ、N型MOSトランジスタ336R−s〜336R−1のソース端子に接続される。
インバータ337sは、その入力端子がN型MOSトランジスタ336sのソース端子に接続され、出力端子がN型MOSトランジスタ338sのゲート端子に接続される。
インバータ337Rは、その入力端子がN型MOSトランジスタ336Rのソース端子に接続され、出力端子がN型MOSトランジスタ338Rのゲート端子に接続される。
s個のノードN51〜N5sは、相互に接続され、s個のノードN5R−s〜N5Rは、相互に接続される。
N型MOSトランジスタ338s,・・・,338Rは、それぞれ、ノードN6s,・・・,N6Rと接地ノードGNDとの間に接続される。
プリチャージ/キーパー339sは、N型MOSトランジスタ338sのソース端子に接続される。
インバータ339Rは、反転信号/SdRにのみ対応して設けられ、その入力端子がN型MOSトランジスタ338Rのソース端子に接続される。
ノードN6s,・・・,N6Rは、反転信号/Sd1〜/SdRのs個毎に設けられ、相互に接続される。また、プリチャージ/キーパー339sは、反転信号/Sd1〜/SdR−1のs個毎に設けられる。
プリチャージ/キーパー3371〜337s−1は、それぞれ、ノードN51〜N5sを電源ノードVDDの電位にプリチャージするとともに、そのプリチャージした電位を保持する。
プリチャージ/キーパー337R−s〜337Rは、それぞれ、ノードN5R−s〜N5Rを電源ノードVDDの電位にプリチャージするとともに、そのプリチャージした電位を保持する。
プリチャージ/キーパー339s,・・・は、それぞれ、ノードN6s,・・・N6Rを電源ノードVDDの電位にプリチャージするとともに、そのプリチャージした電位を保持する。
図19は、図18に示すプリチャージ/キーパー3371の回路図である。図19を参照して、プリチャージ/キーパー3371は、インバータ421,424,426と、NOR回路422と、P型MOSトランジスタ423と、NAND回路425と、N型MOSトランジスタ427とを含む。
P型MOSトランジスタ423およびN型MOSトランジスタ427は、電源ノードVDDと接地ノードGNDとの間に直列に接続される。P型MOSトランジスタ423のゲート端子は、NOR回路422の出力端子に接続される。N型MOSトランジスタ427のゲート端子は、インバータ426の出力端子に接続される。
NOR回路422は、インバータ421の出力端子と、P型MOSトランジスタ423のゲート端子との間に接続される。インバータ424は、NOR回路422の入力端子およびノードN71と、NAND回路425の入力端子との間に接続される。
NAND回路425は、インバータ421の入力端子およびインバータ424の出力端子と、インバータ426の入力端子との間に接続される。インバータ426は、NAND回路425の出力端子と、N型MOSトランジスタ427のゲート端子との間に接続される。
インバータ421は、検索開始信号SBの反転信号/SBを連想メモリ100の制御回路(図示せず)から受け、その受けた反転信号/SBを反転してNOR回路422へ出力する。
NOR回路422は、インバータ421の出力信号と、インバータ424の入力信号(=ノードN71の電位からなる信号)との論理和を演算し、その演算した論理和を反転してP型MOSトランジスタ423のゲート端子へ出力する。
インバータ424は、ノードN71の電位からなる信号を反転してNAND回路425へ出力する。
NAND回路425は、反転信号/SBと、インバータ424の出力信号との論理積を演算し、その演算した論理積を反転してインバータ426へ出力する。インバータ426は、NAND回路425の出力信号を反転してN型MOSトランジスタ427のゲート端子へ出力する。
プリチャージ/キーパー3371の動作について説明する。Winner検出回路330Aが動作を開始する前、インバータ421は、“0”からなる反転信号/SBを受け、その受けた反転信号/SBを反転して“1”からなる信号をNOR回路422へ出力する。
そして、NOR回路422は、ノードN71の電位に拘わらず、“1”からなる信号を反転して“0”からなる信号をP型MOSトランジスタ423のゲート端子へ出力する。
一方、NAND回路425は、“0”からなる反転信号/SBを受け、インバータ424の出力信号にかかわらず、“0”からなる反転信号/SBを反転して“1”からなる信号をインバータ426へ出力する。そして、インバータ426は、“1”からなる信号を反転してN型MOSトランジスタ427のゲート端子へ出力する。
そうすると、P型MOSトランジスタ423は、“0”からなる信号をゲート端子に受けてオンされ、N型MOSトランジスタ427は、“0”からなる信号をゲート端子に受けてオフされる。その結果、電流が電源ノードVDDからP型MOSトランジスタ423を介してノードN71へ流れ、ノードN71は、電源ノードVDDの電位にプリチャージされる。
その後、インバータ421は、“1”からなる反転信号/SBを受け、その受けた反転信号/SBを反転して“0”からなる信号をNOR回路422へ出力する。NOR回路422は、“0”から信号をインバータ421から受け、“1”からなる信号(=ノードN71の電位=電源ノードVDDの電位)をノードN71から受け、“0”からなる信号と“1”からなる信号との論理和を演算し、その演算した論理和を反転してP型MOSトランジスタ423のゲート端子へ出力する。
一方、NAND回路425は、“1”からなる反転信号/SBと、“0”からなる信号とを受け、“1”からなる反転信号/SBと“0”からなる信号との論理積を演算し、その演算した論理積を反転して“1”からなる信号をインバータ426へ出力する。
インバータ426は、“1”からなる信号を反転して“0”からなる信号をN型MOSトランジスタ427のゲート端子へ出力する。
そうすると、P型MOSトランジスタ423は、“0”からなる信号をゲート端子に受けてオンされ、N型MOSトランジスタ427は、“0”からなる信号をゲート端子に受けてオフされる。
その結果、ノードN71の電位は、電源ノードVDDの電位に保持される。
なお、図18に示すプリチャージ/キーパー3372〜337s−1,・・・,337R−s〜337R−1,339sの各々も、図19に示すプリチャージ/キーパー3371と同じ構成からなる。
再び、図18を参照して、Winner行の反転信号が反転信号/Sd1である場合を例にして、Winner検出回路330Aの動作を説明する。
反転信号/Sd1〜/SdRがWinner検出回路330Aに入力される前、Winner検出回路330AのノードN51〜N5s,・・・,N5R−s〜N5R,N6s〜N6Rは、プリチャージ/キーパー3371〜337s−1,・・・,337R−s〜337R−1,339sによって電源ノードVDDの電位にプリチャージされている。
そして、反転信号/Sd1が最も早くWinner検出回路330Aへ入力され、反転信号/Sd1が“0”から“1”へ変化すると、N型MOSトランジスタ3361がオンされ、ノードN51〜N5sの電位が接地ノードGNDの電位に低下する。
その結果、インバータ337sは、“0”からなる信号(=接地ノードGNDの電位からなる信号)を反転してN型MOSトランジスタ338sのゲート端子へ出力し、N型MOSトランジスタ338sは、“1”からなる信号をゲート端子に受けてオンされる。
そして、ノードN6s〜N6Rの電位は、接地ノードGNDの電位に低下し、インバータ339Rは、“0”からなる信号(=接地ノードGNDの電位からなる信号)を反転し、その反転した“1”からなる信号を検索終了信号SEとして出力する。
反転信号/Sd1以外の反転信号/Sd2〜/SdRがWinner行の反転信号である場合についても、Winner検出回路330Aは、同様にして、Winner行の反転信号の変化を最も早く検出し、検索終了信号SEを生成する。
図20は、図13に示すフィードバック回路350の回路図である。なお、図20に示すフィードバック回路350は、行数が16である場合のフィードバック回路である。
図20を参照して、フィードバック回路350は、インバータ3501〜3515を含む。
インバータ3502,3503の出力は、1つの配線によって接続され、インバータ3504〜3507の出力は、1つの配線によって接続され、インバータ3508〜3515の出力は、1つの配線によって接続される。
インバータ3501は、Winner検出回路330から検索終了信号SEを受け、その受けた検索終了信号SEを反転して反転信号/SEをインバータ3502,3503へ同時に出力する。
インバータ3502,3503は、反転信号/SEを反転して検索終了信号SEをインバータ3504〜3507へ同時に出力する。インバータ3504〜3507は、検索終了信号SEを反転して反転信号/SEをインバータ3508〜3515へ同時に出力する。インバータ3508〜3515は、反転信号/SEを反転して検索終了信号SE1〜SE16(=SE)を同時に出力する。
このように、各段のインバータの出力を1つの配線によって接続することによって、検索終了信号SEの出力タイミングを揃えることができる。
検索データおよび参照データのビット数が8ビットであり、図2に示すNビットステージ41〜4kの各々が4ビットステージである場合について、図1に示す連想メモリ100の動作を具体的に説明する。
図21は、図1に示すメモリ部1の具体例を示す図である。図21を参照して、メモリ部1は、参照データ保存回路SC11〜SC18,SC21〜SC28,・・・,SCR1〜SCR8と、ユニット比較回路UC11〜UC18,UC21〜UC28,・・・,UCR1〜UCR8と、パスエンコーダPE〜PEと、距離/時間変換回路DT〜DTとを含む。
そして、検索データ保存回路5は、8ビットの検索データa1〜a8を保存する。
パスエンコーダPE〜PEの各々は、4ビットパスエンコーダPE11−1,PE12−1からなり、距離/時間変換回路DT〜DTの各々は、NAND回路40と、4ビットステージ41−1,42−1とからなる。
参照データ保存回路SC11〜SC18の各々は、8ビットの参照データ1の各1ビットを保存する。参照データ保存回路SC21〜SC28の各々は、8ビットの参照データ2の各1ビットを保存する。以下、同様にして、参照データ保存回路SCR1〜SCR8の各々は、8ビットの参照データRの各1ビットを保存する。
ユニット比較回路UC11は、検索データの1ビットa1を参照データ保存回路SC11に保存された1ビットと比較する。そして、ユニット比較回路UC11は、両者が一致するとき、“0”からなる距離信号M1を4ビットパスエンコーダPE11−1へ出力し、両者が不一致であるとき、“1”からなる距離信号M1を4ビットパスエンコーダPE11−1へ出力する。
ユニット比較回路UC12〜UC14も、同様にして、それぞれ、検索データの1ビットa2,a3,a4を参照データ保存回路SC12〜SC14に保存された1ビットと比較し、距離信号M2〜M4を4ビットパスエンコーダPE11−1へ出力する。
ユニット比較回路UC15〜UC18も、同様にして、それぞれ、検索データの1ビットa5,a6,a7,a8を参照データ保存回路SC15〜SC18に保存された1ビットと比較し、距離信号M1〜M4を4ビットパスエンコーダPE12−1へ出力する。
ユニット比較回路UC21〜UC28,・・・,UCR1〜UCR8は、ユニット比較回路UC11〜UC18と同様にして、距離信号M1〜M4,M1〜M4をそれぞれパスエンコーダPE〜パスエンコーダPEへ出力する。
4ビットパスエンコーダPE12−1は、4ビットの距離信号M1〜M4に基づいて、選択信号SL11を生成し、その生成した選択信号SL11を4ビットステージ41−1へ出力する。4ビットパスエンコーダPE11−1は、4ビットの距離信号M1〜M4に基づいて、選択信号SL12を生成し、その生成した選択信号SL12を4ビットステージ41−2へ出力する。
パスエンコーダPE〜PEは、8ビットの距離信号M1〜M4,M1〜M4に基づいて、選択信号SL11,SL12を生成し、その生成した選択信号SL11,SL12をそれぞれ距離/時間変換回路DT〜DTへ出力する。
距離/時間変換回路DTにおいて、NAND回路40は、イネーブル信号ENと、4ビットステージ42−1の出力信号との論理積を演算し、その演算した論理積を反転して4ビットステージ41−1へ出力する。
4ビットステージ41−1は、NAND回路40から受けた信号を選択信号SL11によって選択された遅延経路によって遅延し、その遅延した信号を4ビットステージ42−1へ出力する。
4ビットステージ42−1は、4ビットステージ41−1から受けた信号を選択信号SL12によって選択された遅延経路によって遅延し、その遅延した信号(=発振信号S)をNAND回路40および分周回路20へ出力する。
図22は、図21に示す4ビットステージ41−1の構成を示す回路図である。図22を参照して、4ビットステージ41−1は、図3に示すNビットステージ41において、N=4である場合に相当する。
遅延器71〜74の各々は、直列に接続された偶数個のインバータからなり、例えば、直列に接続された4個のインバータからなる。
なお、4ビットステージ42−1も、図22に示す4ビットステージ41−1と同じ構成からなる。
図23は、図21に示す4ビットパスエンコーダPE11−1の構成図である。図23を参照して、4ビットパスエンコーダPE11−1は、図5に示すパスエンコーダPE11において、N=4である場合に相当する。
パス選択信号生成回路11,12については、それぞれ、図6,7に示したとおりである。
図24は、図23に示すパス選択信号生成回路13の回路図である。図24を参照して、パス選択信号生成回路13は、図8に示すパス選択信号生成回路1N−1において、N=4である場合に相当する。
そして、パス選択信号生成回路13は、距離信号M4が“0”であるとき、信号EN1Q=EN1Q,EN2Q=EN2Q,EN3Q=EN3Q,EN4Q=1を出力し、距離信号M4が“1”であるとき、信号EN1Q=0,EN2Q=EN1Q,EN3Q=EN2Q,EN4Q=EN3Qを出力する。
再び、図23を参照して、インバータIV11〜IV14,IV21〜IV24およびNOR回路NR〜NRは、パス選択信号生成回路13から出力された信号EN1Q〜EN4Qに基づいて、信号EN1Q〜EN4Q,EN1〜EN4,Dist1〜Dist3を生成する。
なお、図23においては、信号Dist0,Dist4が示されていないが、信号Dist0は、信号EN1の反転信号EN1Qに等しい。これは、信号がノードN→トランスファゲート80→インバータ91からなる遅延経路を通過する場合、トランスファゲート51を、必ず、閉じる必要があるからである。
また、信号Dist4は、信号EN4に等しい。これは、信号が遅延器74を通過する場合、トランスファゲート54,84の両方を、必ず、開く必要があるからである。
距離信号M1〜M4の各々が“0”または“1”であるときに、4ビットパスエンコーダPE11−1が生成する信号EN1Q〜EN4Q,EN1〜EN4,Dist0〜Dist4の取り得る値を表3に示す。
Figure 2013101729
M1=M2=M3=M4=0であるとき、即ち、検索データの4ビットと参照データの4ビットとが一致する場合、Dist0=“1”,EN1=“0”,EN1Q=“1”,Dist1=“0”,EN2=“0”,EN2Q=“1”,Dist2=“0”,EN3=“0”,EN3Q=“1”,Dist3=“0”,EN4=“0”,EN4Q=“1”,Dist4=“0”である。
その結果、トランスファゲート80が開き、トランスファゲート51〜54,81〜84が閉じる。そして、信号は、ノードN→トランスファゲート80→インバータ91からなる遅延経路を通過する。即ち、信号は、距離0のパスを通過する。
この場合、N型MOSトランジスタ61〜64は、それぞれ、信号EN1Q=EN2Q=EN3Q=EN4Q=“1”に応じてオンされるので、ノードN11〜N14の電位は、接地ノードGNDの電位からなる。その結果、遅延器71〜74は、動作しない。従って、消費電力を低減できる。
また、M1=“0”,M2=“0”,M3=“0”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、1ビットが不一致であるとき、Dist0=“0”,EN1=“1”,EN1Q=“0”,Dist1=“1”,EN2=“0”,EN2Q=“1”,Dist2=“0”,EN3=“0”,EN3Q=“1”,Dist3=“0”,EN4=“0”,EN4Q=“1”,Dist4=“0”である。
その結果、トランスファゲート51,81が開き、トランスファゲート52〜54,80,82〜84が閉じる。そして、信号は、ノードN→トランスファゲート51→遅延器71→トランスファゲート81→インバータ91からなる遅延経路を通過する。即ち、信号は、距離1のパスを通過する。
この場合、N型MOSトランジスタ62〜64は、それぞれ、信号EN2Q=EN3Q=EN4Q=“1”に応じてオンされるので、ノードN12〜N14の電位は、接地ノードGNDの電位からなる。その結果、遅延器72〜74は、動作しない。従って、消費電力を低減できる。
更に、M1=“0”,M2=“0”,M3=“1”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、2ビットが不一致であるとき、Dist0=“0”,EN1=“1”,EN1Q=“0”,Dist1=“0”,EN2=“1”,EN2Q=“0”,Dist2=“1”,EN3=“0”,EN3Q=“1”,Dist3=“0”,EN4=“0”,EN4Q=“1”,Dist4=“0”である。
その結果、トランスファゲート51,52,82が開き、トランスファゲート53,54,80,81,83,84が閉じる。そして、信号は、ノードN→トランスファゲート51→遅延器71→トランスファゲート52→遅延器72→トランスファゲート82→インバータ91からなる遅延経路を通過する。即ち、信号は、距離2のパスを通過する。
この場合、N型MOSトランジスタ63,64は、それぞれ、信号EN3Q=EN4Q=“1”に応じてオンされるので、ノードN13,N14の電位は、接地ノードGNDの電位からなる。その結果、遅延器73,74は、動作しない。従って、消費電力を低減できる。
更に、M1=“0”,M2=“1”,M3=“1”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、3ビットが不一致であるとき、Dist0=“0”,EN1=“1”,EN1Q=“0”,Dist1=“0”,EN2=“1”,EN2Q=“0”,Dist2=“0”,EN3=“1”,EN3Q=“0”,Dist3=“1”,EN4=“0”,EN4Q=“1”,Dist4=“0”である。
その結果、トランスファゲート51〜53,83が開き、トランスファゲート54,80〜82,84が閉じる。そして、信号は、ノードN→トランスファゲート51→遅延器71→トランスファゲート52→遅延器72→トランスファゲート53→遅延器73→トランスファゲート83→インバータ91からなる遅延経路を通過する。即ち、信号は、距離3のパスを通過する。
この場合、N型MOSトランジスタ64は、EN4Q=“1”に応じてオンされるので、ノードN14の電位は、接地ノードGNDの電位からなる。その結果、遅延器74は、動作しない。従って、消費電力を低減できる。
更に、M1=“1”,M2=“1”,M3=“1”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、全てのビットが不一致であるとき、Dist0=“0”,EN1=“1”,EN1Q=“0”,Dist1=“0”,EN2=“1”,EN2Q=“0”,Dist2=“0”,EN3=“1”,EN3Q=“0”,Dist3=“0”,EN4=“1”,EN4Q=“0”,Dist4=“1”である。
その結果、トランスファゲート51〜54,84が開き、トランスファゲート80〜83が閉じる。そして、信号は、ノードN→トランスファゲート51→遅延器71→トランスファゲート52→遅延器72→トランスファゲート53→遅延器73→トランスファゲート54→遅延器74→トランスファゲート84→インバータ91からなる遅延経路を通過する。即ち、信号は、距離4のパスを通過する。
距離信号M1〜M4が上記以外のビットパターンであるときも、上述した4ビットが一致する場合、1ビットが不一致である場合、2ビットが不一致である場合、3ビットが不一致である場合、および4ビットが不一致である場合のいずれかに従って、信号は、距離0のパス、距離1のパス、距離2のパス、距離3のパスおよび距離4のパスのいずれかのパスを通過する。
なお、図21に示す4ビットステージ42−1も、図22に示す4ビットステージ41−1と同じ構成からなる。
また、図21に示す4ビットパスエンコーダPE12−1も、図23,24に示す4ビットパスエンコーダPE11−1と同じ構成からなる。
再び、図21を参照して、ユニット比較回路UC11〜UC14から出力される距離信号M1M2M3M4が“0000”であり、ユニット比較回路UC15〜UC18から出力される距離信号M1M2M3M4が“0000”であり、ユニット比較回路UC21〜UC24,UC25〜UC28,・・・,UCR1〜UCR4,UCR5〜UCR8から出力される距離信号M1M2M3M4が“0000”以外であるとき、距離/時間変換回路DTにおいて、信号は、4ビットステージ41−1および4ビットステージ42−1の距離0のパスを通過し、距離/時間変換回路DT〜DTにおいて、信号は、4ビットステージ41−1および4ビットステージ42−1の距離0のパス以外のパスを通過する。
その結果、発振信号Sは、最も高い周波数を有し、距離/時間変換回路DTから分周回路20へ最も早く出力され、発振信号S〜Sは、検索データと参照データとの不一致ビット数が多くなるほど低い周波数を有し、不一致ビット数が多くなるほど遅いタイミングでそれぞれ距離/時間変換回路DT〜DTから分周回路20へ出力される。
そして、分周回路20において、分周器211〜21Rは、それぞれ、発振信号S〜Sを分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。
時間領域WTA回路30は、発振信号Sd1〜SdRを分周回路20から受ける。そして、時間領域WTA回路30において、インバータ301は、発振信号Sd1を最も早く受け、その受けた発振信号Sd1を反転して遅延回路311およびWinner検出回路330へ出力し、その後、インバータ302〜30Rは、発振信号Sd2〜SdRを受ける順序に従って、それぞれ、発振信号Sd2〜SdRを反転して遅延回路312〜31RおよびWinner検出回路330へ出力する。
遅延回路311は、発振信号Sd1の反転信号/Sd1を最も早く受け、その受けた反転信号/Sd1をτだけ遅延してレジスタ321へ出力する。その後、遅延回路312〜31Rは、反転信号/Sd2〜/SdRを受ける順序に従って、それぞれ、反転信号/Sd2〜/SdRをτだけ遅延してレジスタ322〜32Rへ出力する。
一方、Winner検出回路330は、発振信号Sd1の変化を最も早く検出し、検索終了信号SEを生成する。そして、フィードバック回路350は、Winner検出回路330から受けた検索終了信号SEに基づいて、R個の検索終了信号SEを生成し、その生成したR個の検索終了信号SEをレジスタ321〜32Rへ同時に出力する。
そうすると、レジスタ321は、遅延回路311から反転信号/Sd1を受け、その受けた反転信号/Sd1を出力した後に、フィードバック回路350から検索終了信号SEを受け、レジスタ322〜32Rは、それぞれ、遅延回路312〜31Rから反転信号/Sd2〜/SdRを受ける前にフィードバック回路350から検索終了信号SEを受ける。その結果、レジスタ321〜32Rは、それぞれ、マッチ信号M(=1),M(=0)=M(=0)=・・・=M(=0)を出力する。
これによって、検索データに一致する参照データ1(=参照データ保存回路SC11〜SC18に保存された参照データ)が検索される。
上述したように、連想メモリ100においては、検索データと参照データとの一致の度合いを示す距離の差を時間の差に変換して検索データに一致する参照データを検索する。
時間の差は、無限に設定可能であるので、連想メモリ100を構成するトランジスタの特性にバラツキがあっても、Winner行とLoser行とを正確に判別できる。従って、連想メモリ100の誤検索を抑制できる。
図25は、従来のパスエンコーダの回路図である。図25を参照して、従来のパスエンコーダ500は、2ビットパスエンコーダ501,502と、NAND回路503〜508,510,511,515と、インバータ509,512,516〜518と、NOR回路513,514とを含む。なお、パスエンコーダ500は、4ビットのパスエンコーダである。
2ビットパスエンコーダ501は、距離信号M1,M2に基づいて信号Dist0〜Dist2を生成する。2ビットパスエンコーダ502は、距離信号M3,M4に基づいて信号Dist0〜Dist2を生成する。
NAND回路503は、2ビットパスエンコーダ501から出力された信号Dist0と、2ビットパスエンコーダ502から出力された信号Dist0との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号DistQ4として出力するとともに、その反転した信号をインバータ509へ出力する。
NAND回路504は、2ビットパスエンコーダ501から出力された信号Dist0と、2ビットパスエンコーダ502から出力された信号Dist1との論理積を演算し、その演算した論理積を反転してNAND回路510へ出力する。
NAND回路505は、2ビットパスエンコーダ501から出力された信号Dist1と、2ビットパスエンコーダ502から出力された信号Dist0との論理積を演算し、その演算した論理積を反転してNAND回路510へ出力する。
NAND回路506は、2ビットパスエンコーダ501から出力された信号Dist2と、2ビットパスエンコーダ502から出力された信号Dist1との論理積を演算し、その演算した論理積を反転してNAND回路511へ出力する。
NAND回路507は、2ビットパスエンコーダ501から出力された信号Dist1と、2ビットパスエンコーダ502から出力された信号Dist2との論理積を演算し、その演算した論理積を反転してNAND回路511へ出力する。
NAND回路508は、2ビットパスエンコーダ501から出力された信号Dist2と、2ビットパスエンコーダ502から出力された信号Dist2との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号Dist0として出力するとともに、その反転した信号をインバータ512へ出力する。
インバータ509は、NAND回路503の出力信号を反転し、その反転した信号を信号Dist4として出力するとともに、その反転した信号をNOR回路513へ出力する。
NAND回路510は、NAND回路504の出力信号とNAND回路505の出力信号との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号Dist3として出力するとともに、その反転した信号をNOR回路513およびインバータ516へ出力する。
NAND回路511は、NAND回路506の出力信号とNAND回路507の出力信号との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号Dist1として出力するとともに、その反転した信号をNOR回路511およびインバータ518へ出力する。
インバータ512は、NAND回路508の出力信号を反転し、その反転した信号を信号Dist0として出力するとともに、その反転した信号をNOR回路514へ出力する。
NOR回路513は、インバータ509の出力信号とNAND回路510の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路515へ出力する。
NOR回路514は、NAND回路511の出力信号とインバータ512の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路515へ出力する。
NAND回路515は、NOR回路513の出力信号とNOR回路514の出力信号との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号DistQ2として出力するとともに、その反転した信号をインバータ517へ出力する。
インバータ516は、NAND回路510の出力信号を反転し、その反転した信号を信号DistQ3として出力する。
インバータ517は、NAND回路515の出力信号を反転し、その反転した信号を信号Dist2として出力する。
インバータ518は、NAND回路511の出力信号を反転し、その反転した信号を信号DistQ1として出力する。
2ビットパスエンコーダ501,502の各々は、NOR回路5011,5014と、NAND回路5012と、インバータ5013とを含む。
NOR回路5011は、距離信号M1と距離信号M2との論理和を演算し、その演算した論理和を反転し、その反転した信号を信号Dist0として出力するとともに、その反転した信号をNOR回路5014へ出力する。
NAND回路5012は、距離信号M1と距離信号M2との論理積を演算し、その演算した論理積を反転してインバータ5013へ出力する。
インバータ5013は、NAND回路5012の出力信号を反転し、その反転した信号を信号Dist2として出力するとともに、その反転した信号をNOR回路5014へ出力する。
NOR回路5014は、NOR回路5011の出力信号とインバータ5013の出力信号との論理和を演算し、その演算した論理和を反転し、その反転した信号を信号Dist1として出力する。
距離信号M1〜M4の各々が“0”または“1”であるときに、パスエンコーダ500が生成する信号Dist0〜Dist4,DistQ0〜DistQ4の取り得る値を表4に示す。
Figure 2013101729
表4に示すように、パスエンコーダ500は、距離信号M1〜M4のビット値に応じて、距離0のパス、距離1のパス、距離2のパス、距離3のパスおよび距離4のパスのいずれかを選択するように、信号Dist0〜Dist4,DistQ0〜DistQ4を生成する。
なお、パスエンコーダ500は、図22に示す4ビットステージ41−1からトランスファゲート51〜54およびN型MOSトランジスタ61〜64を削除した4ビットステージへ出力する信号Dist0〜Dist4,DistQ0〜DistQ4を生成する。
従って、信号Dist0〜Dist4,DistQ0〜DistQ4によって距離0のパス、距離1のパス、距離2のパス、距離3のパスおよび距離4のパスのいずれかが選択されても、遅延器71〜74の全てが常時動作しているので、消費電力が大きい。
これに比べ、4ビットステージ41−1においては、上述したように、選択されなかった遅延経路の遅延器(遅延器71〜74の少なくとも1つ)は、動作を停止するので、消費電力を低減できる。
また、パスエンコーダ500は、98個のトランジスタによって構成されるのに対し、4ビットパスエンコーダPE11−1,PE12−1の各々は、70個のトランジスタによって構成される。
従って、4ビットパスエンコーダPE11−1,PE12−1の占有面積を小さくできる。
図26は、従来の4ビットステージの回路図である。図26を参照して、従来の4ビットステージ600は、1ビットステージ610,620,630,640を含む。
1ビットステージ610,620,630,640は、直列に接続される。1ビットステージ610,620,630,640の各々は、トランスファゲート601,604,605,607と、N型MOSトランジスタ602と、遅延器603と、インバータ606とからなる。
トランスファゲート601,604,605,607の各々は、N型MOSトランジスタとP型MOSトランジスタとが並列に接続された構成からなる。
トランスファゲート601、遅延器603およびトランスファゲート605は、ノードN81とノードN82との間に直列に接続される。遅延器603は、直列に接続された偶数個のインバータからなり、例えば、直列に接続された4個のインバータからなる。
N型MOSトランジスタ602は、ノードN83と接地ノードGNDとの間に接続される。トランスファゲート604は、ノードN81とノードN82との間に接続される。インバータ606は、入力端子がノードN82に接続される。
トランスファゲート607は、ノードN84と接地ノードGNDとの間に接続される。トランスファゲート607のP型MOSトランジスタは、ゲート端子が電源ノードVDDに接続され、トランスファゲート607のN型MOSトランジスタは、ゲート端子が接地ノードGNDに接続される。従って、トランスファゲート607は、常時閉じている。
1ビットステージ610,620,630,640は、それぞれ、距離信号M1〜M4のビット値に応じて決定される遅延経路によって信号を遅延させる。1ビットステージ610は、距離信号M1が“0”であるとき、ノードN81→トランスファゲート604→インバータ606からなる遅延経路によって信号を遅延させる。また、1ビットステージ610は、距離信号M1が“1”であるとき、ノードN81→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路によって信号を遅延させる。
1ビットステージ620,630,640も、1ビットステージ610と同様にして、それぞれ、距離信号M2〜M4のビット値に応じて信号を遅延させる。
図27は、図26に示す4ビットステージ600の動作を説明するための図である。図27を参照して、M1=M2=M3=M4=“0”であるとき、1ビットステージ610,620,630,640の各々は、ノードN81→トランスファゲート604→インバータ606からなる遅延経路によって信号を遅延させる。
その結果、信号は、トランスファゲート604およびインバータ606を4回ずつ通過するので、全体で8個のゲートを通過する(図27の(a)参照)。
一方、4ビットステージ41−1は、M1=M2=M3=M4=“0”であるとき、ノードN→トランスファゲート80→インバータ91からなる遅延経路によって信号を遅延させる。
その結果、信号は、トランスファゲート80およびインバータ91を1回だけ通過するので、全体で2個のゲートを通過する(図22参照)。
従って、4ビットステージ41−1を用いることによって信号が通過するゲート数を4分の1に減少できる。
また、M1=M2=“0”、M3=M4=“1”であるとき、1ビットステージ610,620の各々は、ノードN81→トランスファゲート604→インバータ606からなる遅延経路によって信号を遅延させ、1ビットステージ630,640の各々は、ノードN81→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路によって信号を遅延させる。
その結果、信号は、トランスファゲート604およびインバータ606を2回ずつ通過し、トランスファゲート601、遅延器603、トランスファゲート605およびインバータ606を2回ずつ通過するので、遅延器603が直列に接続された4個のインバータからなる場合、全体で18個のゲートを通過する(図27の(b)参照)。
一方、4ビットステージ41−1は、M1=M2=“0”、M3=M4=“1”であるとき、ノードN→トランスファゲート51→遅延器71→トランスファゲート52→遅延器72→トランスファゲート82→インバータ91からなる遅延経路によって信号を遅延させる。
その結果、信号は、トランスファゲート51、遅延器71、トランスファゲート52、遅延器72、トランスファゲート82およびインバータ91を1回だけ通過するので、遅延器71,72の各々が直列に接続された4個のインバータからなる場合、全体で12個のゲートを通過する(図22参照)。
従って、4ビットステージ41−1を用いることによって信号が通過するゲート数を3分の2に減少できる。
同様にして計算すると、距離信号M1〜M4のうちの1個が“1”であるとき、4ビットステージ600においては、信号は、13個のゲートを通過し、4ビットステージ41−1においては、信号は、7個のゲートを通過する。
また、距離信号M1〜M4のうちの3個が“1”であるとき、4ビットステージ600においては、信号は、23個のゲートを通過し、4ビットステージ41−1においては、信号は、17個のゲートを通過する。
更に、距離信号M1〜M4の全てが“1”であるとき、4ビットステージ600においては、信号は、28個のゲートを通過し、4ビットステージ41−1においては、信号は、20個のゲートを通過する。
従って、4ビットの距離信号M1M2M3M4がいずれのビットパターンを取っても、信号が通過するゲート数は、4ビットステージ41−1の方が4ビットステージ600よりも少ない。
信号がトランスファゲートおよびインバータを通過する際、遅延が発生するので、信号が通過するゲート数を減少することによって、信号が距離/時間変換回路DT〜DTを通過する時間を短縮でき、連想メモリ100における検索を高速化できる。
そして、この検索の高速化は、Nビットステージ41(図3参照)を用いた場合も実現される。
このように、この発明の実施の形態においては、N個の遅延器71〜7Nを階段状に配置した構成からなるNビットステージ41(図3参照)と、距離信号M1〜MNのビットパターンに応じてNビットステージ41の各遅延経路を選択するための選択信号を生成するパスエンコーダPE11(図5参照)とを採用することによって、検索の高速化を実現できる。
上記においては、W=8であり、N=4である場合について説明した。この場合、上述したように、k=W/N=8/4=2である。
一方、WがNで割り切れない場合、例えば、W=9であり、N=4である場合、k=W/N=9/4=2+1=3である。その結果、距離/時間変換回路DT〜DTの各々において、Nビットステージ41〜4kの個数は、3個になり、パスエンコーダPE〜PEの各々において、パスエンコーダPE11〜PE1kの個数も3個になる。そして、3個目のパスエンコーダPE13には、本来、1ビットの距離信号しか入力されないが、この1ビットの距離信号を4ビットの形式M1M2M3M4で表現することによって、パスエンコーダPE13は、上述した方法によって選択信号SL13を生成でき、Nビットステージ43も、選択信号SL13によって選択された遅延経路を用いて信号を遅延できる。
従って、kは、上述したように、k=W/Nまたはk=(W/N)+1を満たす整数からなる。
検索データおよび参照データのビット数が8ビット以外であり、図2に示すNビットステージ41〜4kの各々が4ビットステージ以外である場合についても、図1に示す連想メモリ100は、上述した動作によって検索データに一致する参照データを検索する。
距離/時間変換回路DT〜DTの各々は、k個のNビットステージ41〜4kをリング状に接続した構成からなり、k個のNビットステージ41〜4kの各々は、入力信号を奇数回反転して出力する遅延回路からなる。その結果、距離/時間変換回路DT〜DTの各々は、発振信号を出力する発振回路からなる。従って、距離/時間変換回路DT〜DTは、R個の距離信号に対応して設けられ、各々がk個の遅延回路をリング状に接続した発振回路を含む「R個の変換回路」を構成する。
また、パスエンコーダPE〜PEの各々は、k個のパスエンコーダPE11〜PE1kからなり、Wビットの距離信号に基づいて、k個のNビットステージ41〜4kにおけるk個の遅延経路を選択するためのk個の選択信号SL11〜SL1kを生成し、その生成したk個の選択信号SL11〜SL1kをそれぞれk個のNビットステージ41〜4kへ出力する。従って、パスエンコーダPE〜PEは、R個の距離信号およびR個の距離/時間変換回路DT〜DTに対応して設けられ、各々がk個のパスエンコーダPE11〜PE1kを含む「R個の選択回路」を構成する。そして、パスエンコーダPE〜PEの各々は、Wビットの距離信号によって表される距離が小さいほど、k個のNビットステージ41〜4kにおけるk個の遅延回路における遅延時間が短くなり、かつ、Wビットの距離信号によって表される距離が大きいほど、k個のNビットステージ41〜4kにおけるk個のNビットステージ41〜4kにおける遅延時間が長くなるようにk個のNビットステージ41〜4kの各々におけるN+1個の遅延経路から1つの遅延経路を選択するためのk個の選択信号SL11〜SL1kをWビットの距離信号に基づいて生成し、その生成したk個の選択信号SL11〜SL1kを対応する距離/時間変換回路(=距離/時間変換回路DT〜DTのいずれか)へ出力する。
更に、k個のパスエンコーダPE11〜PE1kは、それぞれ、選択信号SL11〜SL1kによってk個のNビットステージ41〜4kにおける遅延経路を選択するので、「k個の経路選択回路」を構成する。
更に、k個のNビットステージ41〜4kは、それぞれ、選択信号SL11〜SL1kによって選択された遅延経路を用いて信号を遅延させるので、「k個の遅延回路」を構成する。
なお、実施の形態1による連想メモリは、連想メモリ100から分周回路20を削除したものであってもよい。時間領域WTA回路30は、分周回路20が無くても、発振信号S〜Sに基づいて、Winner行を検出できるからである。
[実施の形態2]
図28は、実施の形態2による連想メモリの構成を示す概略ブロック図である。図28を参照して、実施の形態2による連想メモリ100Aは、図1に示す連想メモリ100のメモリアレイ部10をメモリアレイ部10Aに代えたものであり、その他は、連想メモリ100と同じである。
メモリアレイ部10Aは、図1に示すメモリアレイ部10のメモリ部1をメモリ部1Aに代えたものであり、その他は、メモリアレイ部10と同じである。
メモリ部1Aは、参照データ保存回路SC’11〜SC’1W,SC’21〜SC’2W,・・・,SC’R1〜SC’RWと、ユニット比較回路UC’11〜UC’1W,UC’21〜UC’2W,・・・,UC’R1〜UC’RWと、パスエンコーダPE’〜PE’と、距離/時間変換回路DT’〜DT’とを含む。
ユニット比較回路UC’11〜UC’1Wは、それぞれ、参照データ保存回路SC’11〜SC’1Wに対応して設けられる。また、ユニット比較回路UC’21〜UC’2Wは、それぞれ、参照データ保存回路SC’21〜SC’2Wに対応して設けられる。以下、同様にして、ユニット比較回路UC’R1〜UC’RWは、それぞれ、参照データ保存回路SC’R1〜SC’RWに対応して設けられる。
パスエンコーダPE’は、参照データ保存回路SC’11〜SC’1Wおよびユニット比較回路UC’11〜UC’1Wに対応して配置される。パスエンコーダPE’は、参照データ保存回路SC’21〜SC’2Wおよびユニット比較回路UC’21〜UC’2Wに対応して配置される。以下、同様にして、パスエンコーダPE’は、参照データ保存回路SC’R1〜SC’RWおよびユニット比較回路UC’R1〜UC’RWに対応して配置される。
距離/時間変換回路DT’は、パスエンコーダPE’に対応して設けられる。距離/時間変換回路DT’は、パスエンコーダPE’に対応して設けられる。以下、同様にして、距離/時間変換回路DT’は、パスエンコーダPE’に対応して設けられる。
参照データ保存回路SC’11〜SC’1W,SC’21〜SC’2W,・・・,SC’R1〜SC’RWは、行デコーダ2、列デコーダ3および読出/書込回路4によって書き込まれた参照データを保存する。この場合、参照データ保存回路SC’11〜SC’1Wの各々、1個の参照データを保存し、参照データ保存回路SC’21〜SC’2Wの各々、1個の参照データ2を保存し、以下、同様にして、参照データ保存回路SC’R1〜SC’RWの各々、1個の参照データを保存する。参照データ保存回路SC’11〜SC’1W,SC’21〜SC’2W,・・・,SC’R1〜SC’RWの各々に保存される参照データは、K(Kは2以上の整数)ビットからなる。なお、実施の形態2においては、検索データ保存回路5は、Kビットの検索データを保存する。
ユニット比較回路UC’11〜UC’1Wは、参照データ保存回路SC’11〜SC’1Wに保存されたW個の参照データと、検索データ保存回路5に保存された検索データとを比較する。また、ユニット比較回路UC’21〜UC’2Wは、参照データ保存回路SC’21〜SC’2Wに保存されたW個の参照データと、検索データ保存回路5に保存された検索データとを比較する。以下、同様にして、ユニット比較回路UC’R1〜UC’RWは、参照データ保存回路SC’R1〜SC’RWに保存されたW個の参照データと、検索データ保存回路5に保存された検索データとを比較する。そして、ユニット比較回路UC’11〜UC’1W、ユニット比較回路UC’21〜UC’2W、・・・、およびユニット比較回路UC’R1〜UC’RWにおける参照データと検索データとの比較は、並列に行なわれる。
そして、ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの比較結果をW個の距離信号(W個の距離信号の各々は、Kビットからなる)としてパスエンコードPE’へ出力し、ユニット比較回路UC’21〜UC’2Wは、W個の参照データと検索データとの比較結果をW個の距離信号(W個の距離信号の各々は、Kビットからなる)としてパスエンコードPE’へ出力し、以下、同様にして、ユニット比較回路UC’R1〜UC’RWは、W個の参照データと検索データとの比較結果をW個の距離信号(W個の距離信号の各々は、Kビットからなる)としてパスエンコードPE’へ出力する。
なお、ユニット比較回路UC’11〜UC’1W、ユニット比較回路UC’21〜UC’2W、・・・、およびユニット比較回路UC’R1〜UC’RWにおける参照データと検索データとの比較は、マンハッタン距離を用いて行なわれる。
すなわち、ユニット比較回路UC’11〜UC’1W、ユニット比較回路UC’21〜UC’2W、・・・、およびユニット比較回路UC’R1〜UC’RWは、次式を用いて検索データと参照データとの比較を行なう。
Figure 2013101729
式(2)において、Dは、マンハッタン距離であり、Aは、参照データであり、Bは、検索データである。そして、各データA,Bは、Kビットからなる。
パスエンコーダPE’は、ユニット比較回路UC’11〜UC’1WからK×Wビットの距離信号を受け、その受けたK×Wビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT’における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT’へ出力する。パスエンコーダPE’は、ユニット比較回路UC’21〜UC’2WからK×Wビットの距離信号を受け、その受けたK×Wビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT’における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT’へ出力する。以下、同様にして、パスエンコーダPE’は、ユニット比較回路UC’R1〜UC’RWからK×Wビットの距離信号を受け、その受けたK×Wビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT’における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT’へ出力する。
距離/時間変換回路DT’は、パスエンコーダPE’から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号Sを生成し、その生成した発振信号Sを分周回路20へ出力する。距離/時間変換回路DT’は、パスエンコーダPE’から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号Sを生成し、その生成した発振信号Sを分周回路20へ出力する。以下、同様にして、距離/時間変換回路DT’は、パスエンコーダPE’から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号Sを生成し、その生成した発振信号Sを分周回路20へ出力する。
したがって、メモリ部1Aは、複数の参照データの各々と検索データとの比較を並列して行ない、その比較結果を示す複数の発振信号S〜Sを生成して分周回路20へ出力する。
図29は、図28に示すパスエンコーダPE’の動作を説明するための図である。図29を参照して、パスエンコーダPE’は、ユニット比較回路UC’11〜UC’1Wから距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKを受ける。ここで、M1M2・・・MKは、参照データWと検索データとの距離を示す距離信号であり、M1M2・・・MKは、参照データWと検索データとの距離を示す距離信号であり、以下、同様にして、M1M2・・・MKは、参照データWと検索データとの距離を示す距離信号である。
パスエンコーダPE’は、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKを受けると、その受けた距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKに基づいて、距離信号M1M1・・・M1,M2M2・・・M2,・・・,MKMK・・・MKを生成する。ここで、M1M1・・・M1は、Wビットのビット値からなり、W個の参照データと検索データとの最上位ビット同士の距離を示す距離信号である。また、M2M2・・・M2は、Wビットのビット値からなり、W個の参照データと検索データとの第2位ビット同士の距離を示す距離信号である。以下、同様にして、MKMK・・・MKは、Wビットのビット値からなり、W個の参照データと検索データとの最下位ビット同士の距離を示す距離信号である。
なお、図28に示すパスエンコーダPE’〜PE’の各々も、パスエンコーダPE’と同様にして、各々がWビットであるK個の距離信号を生成する。
図30は、図28に示す距離/時間変換回路DT’の構成を示すブロック図である。図30を参照して、距離/時間変換回路DT’は、NAND回路710と、発振回路711〜71Kと、選択器721〜72Kとを含む。
NAND回路710は、イネーブル信号ENと、発振回路71Kの出力信号との論理積を演算し、その演算した論理積を反転して発振回路711へ出力する。
発振回路711は、参照データおよび検索データの最上位ビットに対応して設けられる。そして、発振回路711は、参照データと検索データとの最上位ビット同士の距離を示すWビットの距離信号M1・・・M1W−1M1をパスエンコーダPE’から受け、その受けたWビットの距離信号M1・・・M1W−1M1によって表される距離に応じた遅延時間だけ遅延した発振信号を生成して選択器721へ出力する。
以下、同様にして、発振回路71K−1は、参照データおよび検索データの第K−1位ビットに対応して設けられる。そして、発振回路71K−1は、参照データと検索データとの第K−1位ビット同士の距離を示すWビットの距離信号MK−1・・・MK−1W−1MK−1をパスエンコーダPE’から受け、その受けたWビットの距離信号MK−1・・・MK−1W−1MK−1によって表される距離に応じた遅延時間だけ遅延した発振信号を生成して選択器72K−1へ出力する。発振回路71Kは、参照データおよび検索データの最下位ビットに対応して設けられる。そして、発振回路71Kは、参照データと検索データとの最下位ビット同士の距離を示すWビットの距離信号MK・・・MKW−1MKをパスエンコーダPE’から受け、その受けたWビットの距離信号MK・・・MKW−1MKによって表される距離に応じた遅延時間だけ遅延した発振信号を生成する。そして、発振回路71Kは、その生成した発振信号を選択器72Kへ出力する。
選択器721は、発振回路711から出力された発振信号を発振回路711へ出力するとともに、発振信号の発振回路711への出力回数が所望回数に達すると、発振回路711から出力された発振信号を発振回路712(図示せず)へ出力する。
以下、同様にして、選択器72K−1は、発振回路71K−1から出力された発振信号を発振回路71K−1へ出力するとともに、発振信号の発振回路71K−1への出力回数が所望回数に達すると、発振回路71K−1から出力された発振信号を発振回路71Kへ出力する。選択器72Kは、発振回路71Kから出力された発振信号を発振回路71Kへ出力するとともに、発振信号の発振回路71Kへの出力回数が所望回数に達すると、発振回路71Kから出力された発振信号を発振信号Sとして分周回路20およびNAND回路710へ出力する。
発振回路711は、1ビットステージ231〜23Wからなる。1ビットステージ231〜23Wは、選択器721を介してリング状に接続される。そして、1ビットステージ231〜23Wの各々は、図26に示す1ビットステージ610と同じ構成からなる。この場合、1ビットステージ231〜23Wの各々において、遅延器603は、直列に接続された偶数個のインバータからなり、遅延器603による遅延時間は、2K−1τである。
1ビットステージ231〜23Wは、パスエンコーダPE’からそれぞれ距離信号M1〜M1を受け、その受けた距離信号M1〜M1によって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ231〜23Wの各々は、パスエンコーダPE’から受けた距離信号(M1〜M1のいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’から受けた距離信号(M1〜M1のいずれか)が“1”である場合、N51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路を介して信号を遅延させる。
発振回路71K−1は、1ビットステージ241〜24Wからなる。1ビットステージ241〜24Wは、選択器72K−1を介してリング状に接続される。そして、1ビットステージ241〜24Wの各々は、図26に示す1ビットステージ610と同じ構成からなる。この場合、1ビットステージ241〜24Wの各々において、遅延器603は、直列に接続された偶数個のインバータからなり、遅延器603による遅延時間は、2τである。
1ビットステージ241〜24Wは、パスエンコーダPE’からそれぞれ距離信号MK−1〜MK−1を受け、その受けた距離信号MK−1〜MK−1によって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ241〜24Wの各々は、パスエンコーダPE’から受けた距離信号(MK−1〜MK−1のいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’から受けた距離信号(MK−1〜MK−1のいずれか)が“1”である場合、N51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路を介して信号を遅延させる。
発振回路71Kは、1ビットステージ251〜25Wからなる。1ビットステージ251〜25Wは、選択器72Kを介してリング状に接続される。そして、1ビットステージ251〜25Wの各々は、図26に示す1ビットステージ610と同じ構成からなる。この場合、1ビットステージ251〜25Wの各々において、遅延器603は、直列に接続された偶数個のインバータからなり、遅延器603による遅延時間は、τである。
1ビットステージ251〜25Wは、パスエンコーダPE’からそれぞれ距離信号MK〜MKを受け、その受けた距離信号MK〜MKによって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ251〜25Wの各々は、パスエンコーダPE’から受けた距離信号(MK〜MKのいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’から受けた距離信号(MK〜MKのいずれか)が“1”である場合、N51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路を介して信号を遅延させる。
このように、K個の発振回路711〜71Kは、選択器721〜72K−1を介して直列に接続される。また、発振回路711〜71Kは、それぞれ、参照データと検索データとの最上位ビット同士の間の距離信号、第2位ビット同士の間の距離信号、・・・、および最下位ビット同士の間の距離信号によって表された距離に応じた遅延時間だけ遅延させた発振信号を発振する。
そして、発振回路711は、NAND回路710を介してイネーブル信号ENを受け、K個の発振回路711〜71Kは、選択器721〜72K−1を介して直列に接続されるので、距離/時間変換回路DT’においては、参照データと検索データとの最上位ビット同士の間の距離信号が最初に発振信号に変換され、その次に、参照データと検索データとの第2位ビット同士の間の距離信号が発振信号に変換され、最後に、参照データと検索データとの最下位ビット同士の間の距離信号が発振信号に変換される。
つまり、連想メモリ100Aにおいては、R個の行の各々において、W個の参照データの最上位ビットから最下位ビットへ向かう順に、W個の参照データの各々が検索データに一致するか否かが検索される。
このように、最上位ビットから最下位ビットへ向かう順に、W個の参照データの各々が検索データに一致するか否かが検索されるのは、参照データおよび検索データの最上位ビットは、最も重要な意味を有するからである。
なお、図28に示す距離/時間変換回路DT’〜DT’の各々も、図30に示す距離/時間変換回路DT’と同じ構成からなる。
連想メモリ100Aにおける動作について説明する。ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの間の距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKをパスエンコーダPE’ヘ出力する。ユニット比較回路UC’21〜UC’2W,・・・,UC’R1〜UC’RWも、同様に、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKをそれぞれパスエンコーダPE’〜PE’へ出力する。
パスエンコーダPE’は、上述した方法によって、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKに基づいて、距離信号M1M1・・・M1,M2M2・・・M2,・・・,MKMK・・・MKを生成する。そして、パスエンコーダPE’は、距離信号M1M1・・・M1を距離/時間変換回路DT’の発振回路711へ出力し、以下、同様にして、距離信号MK−1MK−1・・・MK−1を距離/時間変換回路DT’の発振回路71K−1へ出力し、距離信号MKMK・・・MKを距離/時間変換回路DT’の発振回路71Kへ出力する。パスエンコーダPE’〜PE’についても同様である。
そして、距離/時間変換回路DT’においては、発振回路711は、最初に、距離信号M1M1・・・M1によって選択された遅延経路を用いて発振信号を発振し、その次に、発振回路712は、距離信号M2M2・・・M2によって選択された遅延経路を用いて発振信号を発振し、以下、同様にして、発振回路71Kは、最後に、距離信号MKMK・・・MKによって選択された遅延経路を用いて発振信号を発振する。そして、距離/時間変換回路DT’は、発振信号Sを分周回路20へ出力する。
距離/時間変換回路DT’〜DT’も、同様にして、それぞれ発振信号S〜Sを発振し、その発振した発振信号S〜Sを分周回路20へ出力する。
そうすると、分周回路20は、上述した方法によって、発振信号S〜Sを所望回数だけ分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。そして、時間領域WTA回路30は、上述した方法によって、発振信号Sd1〜SdRのうち、最も早くする変化する発振信号(発振信号Sd1〜SdRのいずれか)を検出し、マッチ信号M〜Mを出力する。
連想メモリ100AのR個の行の各々において、W個の参照データと検索データとの最上位ビット同士が一致しないとき、発振回路711の1ビットステージ231〜23Wの各々において、N51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路が選択され、発振回路711が発振信号を出力するタイミングが最も遅くなり、W個の参照データと検索データとの最上位ビット同士が一致するとき、発振回路711の1ビットステージ231〜23Wの各々において、N51→トランスファゲート604→インバータ606からなる遅延経路が選択され、発振回路711が発振信号を出力するタイミングが最も早くなる。発振回路712〜71Kの各々においても、同様である。
そして、R個の行の各々において、W個の参照データの最上位ビットから最下位ビットへ向かう順に、W個の参照データの各々が検索データに一致するか否かが検索されるので、W個の参照データと検索データとの最上位ビット同士が不一致である行においては、発振信号(発振信号S〜Sのいずれか)が分周回路20へ出力されるタイミングが最も遅くなる。
その結果、発振信号(発振信号S〜Sのいずれか)の分周回路20への出力タイミングが遅い行については、時間領域WTA回路30がWinner行を検出した時点においても、距離/時間変換回路(距離/時間変換回路DT’〜DT’のいずれか)による距離信号の発振信号への変換が最下位ビットまで進行していない状況も想定される。このような場合、発振信号(発振信号S〜Sのいずれか)の分周回路20への出力タイミングが遅い行の距離信号から発振信号への変換を途中で中止することによって、連想メモリ100Aにおける検索時間を短縮できる。
図31は、図28に示す距離/時間変換回路DT’の他の構成を示すブロック図である。
距離/時間変換回路DT’は、図31に示す距離/時間変換回路DT’Aからなっていてもよい。図31を参照して、距離/時間変換回路DT’Aは、距離/時間変換回路DT’の発振回路711〜71Kをそれぞれ発振回路731〜73Kに代え、選択器721〜72Kを分周器741〜74K−1に代えたものであり、その他は、距離/時間変換回路DT’と同じである。
発振回路731は、参照データおよび検索データの最上位ビットに対応して設けられる。そして、発振回路731は、参照データと検索データとの最上位ビット同士の距離を示すWビットの距離信号M1・・・M1W−1M1をパスエンコーダPE’から受け、その受けたWビットの距離信号M1・・・M1W−1M1によって表される距離に応じた遅延時間だけ遅延した発振信号を生成して分周器741へ出力する。
以下、同様にして、発振回路73K−1は、参照データおよび検索データの第K−1位ビットに対応して設けられる。そして、発振回路73K−1は、参照データと検索データとの第K−1位ビット同士の距離を示すWビットの距離信号MK−1・・・MK−1W−1MK−1をパスエンコーダPE’から受け、その受けたWビットの距離信号MK−1・・・MK−1W−1MK−1によって表される距離に応じた遅延時間だけ遅延した発振信号を生成して分周器74K−1へ出力する。
発振回路73Kは、参照データおよび検索データの最下位ビットに対応して設けられる。そして、発振回路73Kは、参照データと検索データとの最下位ビット同士の距離を示すWビットの距離信号MK・・・MKW−1MKをパスエンコーダPE’から受け、その受けたWビットの距離信号MK・・・MKW−1MKによって表される距離に応じた遅延時間だけ遅延した発振信号を生成し、その生成した発振信号を発振信号Sとして分周回路20およびNAND回路710へ出力する。
分周器741は、発振回路731からの発振信号を分周し、その分周した発振信号を発振回路731へ出力する。そして、分周器741は、発振回路731からの発振信号を2K−1回分周すると、その分周後の発振信号を発振回路732へ出力する。
以下、同様にして、分周器74K−1は、発振回路73K−1からの発振信号を分周し、その分周した発振信号を発振回路73K−1へ出力する。そして、分周器741は、発振回路73K−1からの発振信号を2回分周すると、その分周後の発振信号を発振回路73Kへ出力する。
発振回路731〜73Kの各々は、1ビットステージ261〜26Wからなる。1ビットステージ261〜26Wは、分周器741を介してリング状に接続される。そして、1ビットステージ261〜26Wの各々は、図26に示す1ビットステージ610と同じ構成からなる。この場合、1ビットステージ261〜26Wの各々において、遅延器603は、直列に接続された偶数個のインバータからなり、遅延器603による遅延時間は、τである。
1ビットステージ261〜26Wは、パスエンコーダPE’からそれぞれ距離信号M1〜M1を受け、その受けた距離信号M1〜M1によって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ261〜26Wの各々は、パスエンコーダPE’から受けた距離信号(M1〜M1のいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’から受けた距離信号(M1〜M1のいずれか)が“1”である場合、N51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路を介して信号を遅延させる。
このように、距離/時間変換回路DT’Aは、分周器741〜74K−1における分周回数を分周器741から分周器74Kへ向かう方向に順次減少させることによって、発振回路731〜73Kによって発振された発振信号の遅延時間を参照データと検索データとの最上位ビットから最下位ビットへ向かう方向に順次短くする構成を実現したものである。
図28に示す距離/時間変換回路DT’〜DT’の各々も、図31に示す距離/時間変換回路DT’Aと同じ構成からなる。
距離/時間変換回路DT’Aを備える連想メモリ100Aにおける動作について説明する。ユニット比較回路UC’11〜UC’1W,UC’21〜UC’2W,・・・,UC’R1〜UC’RWは、上述したように、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKをそれぞれパスエンコーダPE’〜PE’へ出力する。
パスエンコーダPE’は、上述した方法によって、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKに基づいて、距離信号M1M1・・・M1,M2M2・・・M2,・・・,MKMK・・・MKを生成する。そして、パスエンコーダPE’は、距離信号M1M1・・・M1を距離/時間変換回路DT’Aの発振回路731へ出力し、以下、同様にして、距離信号MK−1MK−1・・・MK−1を距離/時間変換回路DT’Aの発振回路73K−1へ出力し、距離信号MKMK・・・MKを距離/時間変換回路DT’Aの発振回路73Kへ出力する。パスエンコーダPE’〜PE’についても同様である。
そして、距離/時間変換回路DT’Aにおいては、発振回路731および分周器741は、最初に、距離信号M1M1・・・M1によって選択された遅延経路を用いて発振信号を発振するとともに、発振信号を2K−1回分周し、その次に、発振回路732および分周器742は、距離信号M2M2・・・M2によって選択された遅延経路を用いて発振信号を発振するとともに、発振信号を2K−2回分周し、以下、同様にして、発振回路73Kは、最後に、距離信号MKMK・・・MKによって選択された遅延経路を用いて発振信号を発振する。そして、距離/時間変換回路DT’Aは、発振信号Sを分周回路20へ出力する。
距離/時間変換回路DT’〜DT’(=距離/時間変換回路DT’A)も、同様にして、それぞれ発振信号S〜Sを発振し、その発振した発振信号S〜Sを分周回路20へ出力する。
そうすると、分周回路20は、上述した方法によって、発振信号S〜Sを所望回数だけ分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。そして、時間領域WTA回路30は、上述した方法によって、発振信号Sd1〜SdRのうち、最も早くする変化する発振信号(発振信号Sd1〜SdRのいずれか)を検出し、マッチ信号M〜Mを出力する。
その結果、距離/時間変換回路DT’〜DT’の各々が距離/時間変換回路DT’Aからなる場合も、上述した理由によって、連想メモリ100Aの検索時間を短縮できる。
図32は、図28に示す距離/時間変換回路DT’の更に他の構成を示すブロック図である。
距離/時間変換回路DT’は、図32に示す距離/時間変換回路DT’Bからなっていてもよい。図32を参照して、距離/時間変換回路DT’Bは、発振回路751,752と、マルチプレクサMU11〜MU1W,MU21〜MU2Wと、スイッチング制御回路760と、選択器780とを含む。
発振回路751は、1ビットステージ271〜27Wからなる。発振回路752は、1ビットステージ281〜28Wからなる。
スイッチング制御回路760は、EN選択回路761と、NAND回路762,768と、段数可変分周器763,769と、遅延回路764,770と、スイッチング回路765と、フリップフロップ766,767と、OR回路771とを含む。
1ビットステージ271〜27Wは、直列に接続される。1ビットステージ281〜28Wは、直列に接続される。1ビットステージ271〜27W,281〜28Wの各々は、図26に示す1ビットステージ610からなる。この場合、遅延器603は、直列に接続された偶数個のインバータからなり、遅延器603による遅延時間は、1ビットステージ271〜27W,281〜28Wの全てにおいてτである。
マルチプレクサMU11〜MU1Wは、それぞれ、1ビットステージ271〜27Wに対応して配置される。マルチプレクサMU21〜MU2Wは、それぞれ、1ビットステージ281〜28Wに対応して配置される。
マルチプレクサMU11は、Kビットの距離信号M1,M2,・・・MKのうち、奇数ビットの距離信号M1,M3,M5,・・・をパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU11は、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ271へ順次出力する。なお、信号SHIFT_ODDBIT_SETは、1つのパルス波形からなる。
マルチプレクサMU12は、Kビットの距離信号M1,M2,・・・MKのうち、奇数ビットの距離信号M1,M3,M5,・・・をパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU12は、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ272へ順次出力する。
以下、同様にして、マルチプレクサMU1W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうち、奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・をパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU1W−1は、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・を1個ずつ1ビットステージ27W−1へ順次出力する。マルチプレクサMU1Wは、Kビットの距離信号M1,M2,・・・MKのうち、奇数ビットの距離信号M1,M3,M5,・・・をパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU1Wは、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ27Wへ順次出力する。
一方、マルチプレクサMU21は、Kビットの距離信号M1,M2,・・・MKのうち、偶数ビットの距離信号M2,M4,M6,・・・をパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU21は、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ281へ順次出力する。なお、信号SHIFT_evenBIT_SETは、1つのパルス波形からなる。
マルチプレクサMU22は、Kビットの距離信号M1,M2,・・・MKのうち、偶数ビットの距離信号M2,M4,M6,・・・をパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU22は、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ282へ順次出力する。
以下、同様にして、マルチプレクサMU2W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうち、偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・をパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU2W−1は、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・を1個ずつ1ビットステージ28W−1へ順次出力する。マルチプレクサMU2Wは、Kビットの距離信号M1,M2,・・・MKのうち、偶数ビットの距離信号M2,M4,M6,・・・をパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU2Wは、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ28Wへ順次出力する。
1ビットステージ271〜27Wは、それぞれ、マルチプレクサMU11〜MU1Wから受けた距離信号によって選択された遅延経路を用いて信号を遅延する。そして、1ビットステージ271〜27W−1は、その遅延した信号をそれぞれ1ビットステージ272〜27Wへ出力し、1ビットステージ27Wは、その遅延した信号を段数可変分周器763へ出力する。
1ビットステージ281〜28Wは、それぞれ、マルチプレクサMU21〜MU2Wから受けた距離信号によって選択された遅延経路を用いて信号を遅延する。そして、1ビットステージ281〜28W−1は、その遅延した信号をそれぞれ1ビットステージ282〜28Wへ出力し、1ビットステージ28Wは、その遅延した信号を段数可変分周器769へ出力する。
EN選択回路761は、連想メモリ100Aの制御回路からイネーブル信号ENを端子EN1に受け、フリップフロップ767から信号EN_1(発振信号)を端子EN2に受け、遅延器764から信号SW_1を受ける。そして、EN選択回路761は、初期状態においては、端子EN1へ入力されたイネーブル信号ENと、端子EN2へ入力された信号EN_1(発振信号)との論理和を演算し、その演算した論理和をNAND回路762へ出力する。また、EN選択回路761は、信号SW_1が立ち上がった後に立ち下がると、端子EN2へ入力された信号EN_1(発振信号)をNAND回路762へ出力する。
NAND回路762は、EN選択回路761の出力信号と、段数可変分周器763の出力信号との論理積を演算し、その演算した論理積を反転して1ビットステージ271へ出力する。
段数可変分周器763は、1ビットステージ27Wから発振信号を受け、スイッチング回路765から選択信号F_SEL1を受け、OR回路771から検索開始信号SBを受ける。そして、段数可変分周器763は、その受けた発振信号をNAND回路762へ出力する。また、段数可変分周器763は、検索開始信号SBを受けると、検索開始信号SBを受けるまでの分周回数をリセットし、選択信号F_SEL1によって選択された分周回数だけ発振信号を分周し、その分周した発振信号を信号Freq_out_1として遅延回路764およびフリップフロップ761へ出力する。また、段数可変分周器763は、発振信号の分周が終了すると、分周後の発振信号を信号out_1として選択器780へ出力する。
遅延回路764は、信号Freq_out_1をτだけ遅延し、その遅延した信号Freq_out_1を信号SW_1として出力する。
スイッチング回路765は、連想メモリ100Aの制御回路からリセット信号RSTを受けると、リセットする。また、スイッチング回路765は、リセットされた後に、連想メモリ100Aの制御回路から、選択信号FSEL_SETと、“1”からなるデータdataとを受ける。そして、スイッチング回路765は、後述する方法によって、選択信号F_SEL0,F_SEL1,F_SEL2を生成する。その後、スイッチング回路765は、その生成した選択信号F_SEL0を選択器780へ出力し、その生成した選択信号F_SEL1を段数可変分周器763へ出力し、その生成した選択信号F_SEL2を段数可変分周器769へ出力する。なお、選択信号F_SEL0は、選択信号F_SEL01,F_SEL02からなり、選択信号F_SEL01,F_SEL02は、同時に“1”になることはない。また、選択信号FSEL_SETは、1つのパルス波形からなる。
フリップフロップ766は、段数可変分周器763から信号Freq_out_1を端子Sに受け、遅延回路770から信号SW_2を端子Rに受け、連想メモリ100Aの制御回路からリセット信号RSTを端子Rに受ける。そして、フリップフロップ766は、初期段階においては、リセット信号RSTによってリセットされる。そして、フリップフロップ766は、信号SW_2のパルス信号を受けてリセットされ、その後、信号Freq_out_1のパルス信号を端子Sに受け、その受けたパルス信号をラッチし、信号EN_2としてNAND回路768へ出力する。
フリップフロップ767は、段数可変分周器769から信号Freq_out_2を端子Sに受け、遅延回路764から信号SW_1を端子Rに受け、連想メモリ100Aの制御回路からリセット信号RSTを端子Rに受ける。そして、フリップフロップ767は、初期段階においては、リセット信号RSTによってリセットされる。そして、フリップフロップ767は、信号SW_1のパルス信号を受けてリセットされ、その後、信号Freq_out_2のパルス信号を端子Sに受け、その受けたパルス信号をラッチし、信号EN_1としてEN選択回路761へ出力する。
NAND回路768は、信号EN_2と、段数可変分周器769からの発振信号との論理積を演算し、その演算した論理積を反転して1ビットステージ281へ出力する。
段数可変分周器769は、1ビットステージ28Wから発振信号を受け、スイッチング回路765から選択信号F_SEL2を受け、OR回路771から検索開始信号SBを受ける。そして、段数可変分周器769は、検索開始信号SBを受けると、分周器の分周回数をリセットし、発振信号をNAND回路768へ出力するとともに、選択信号F_SEL2によって選択された分周回数だけ発振信号を分周し、その分周した発振信号を信号Freq_out_2として遅延回路770へ出力する。また、段数可変分周器769は、発振信号の分周が終了すると、分周後の発振信号を信号out_2として選択器780へ出力する。
遅延回路770は、段数可変分周器769から信号Freq_out_2を受け、その受けた信号Freq_out_2をτだけ遅延し、その遅延した信号Freq_out_2を信号SW_2として出力する。
選択器780は、選択信号F_SEL0(=F_SEL01,F_SEL02)を受け、信号out_1を段数可変分周器763から受け、信号out_2を段数可変分周器769から受ける。
そして、選択器780は、選択信号F_SEL01が“1”であるとき、信号out_1を発振信号Sとして分周回路20へ出力する。また、選択器780は、選択信号F_SEL02が“1”であるとき、信号out_2を発振信号Sとして分周回路20へ出力する。
図33は、図32に示すマルチプレクサMU11の回路図である。図33を参照して、マルチプレクサMU11は、OR回路290と、シフトレジスタ291〜294と、ゲート295〜298とを含む。
OR回路290は、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路から信号SHIFT_ODDBIT_SETを受ける。そして、OR回路290は、信号SW_1と信号SHIFT_ODDBIT_SETとの論理和を演算し、その演算した論理和をシフトレジスタ291〜294の端子CLKへ出力する。
シフトレジスタ291〜294は、直列に接続される。シフトレジスタ291〜294は、OR回路290から信号SW_1と信号SHIFT_ODDBIT_SETとの論理和を端子CLKに受け、リセット信号RSTを端子Rに受ける。
シフトレジスタ291〜294は、それぞれ、信号EN11〜EN14をゲート295〜298へ出力する。
初期段階においては、信号SW_1は、“0”からなり、信号SHIFT_ODDBIT_SETは、上述したように1つのパルス波形からなる。従って、シフトレジスタ291は、“1”からなるデータdataを端子Dに受け、信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“1”を端子Qからシフトレジスタ292およびゲート295へ出力する。その後、シフトレジスタ291は、信号SW_1が立ち上がった後に立ち下がると、“1”を端子Qからシフトレジスタ292およびゲート295へ出力する。
シフトレジスタ292は、初期段階においては、“0”からなるデータをシフトレジスタ291から端子Dに受け、信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータをシフトレジスタ293およびゲート296へ出力する。その後、シフトレジスタ292は、信号SW_1が立ち上がった後に立ち下がると、シフトレジスタ291から端子Dに受けたデータを端子Qからシフトレジスタ293およびゲート296へ出力する。
シフトレジスタ293は、初期段階においては、“0”からなるデータをシフトレジスタ292から端子Dに受け、信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータをシフトレジスタ294およびゲート297へ出力する。その後、シフトレジスタ293は、信号SW_1が立ち上がった後に立ち下がると、シフトレジスタ292から端子Dに受けたデータを端子Qからシフトレジスタ294およびゲート297へ出力する。
シフトレジスタ294は、初期段階においては、“0”からなるデータをシフトレジスタ293から端子Dに受け、信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータをゲート298へ出力する。その後、シフトレジスタ294は、信号SW_1が立ち上がった後に立ち下がると、シフトレジスタ293から端子Dに受けたデータを端子Qからゲート298へ出力する。
ゲート295〜298は、それぞれ、Kビットの距離信号M1M2・・・MKのうち、1ビット目、3ビット目、5ビット目および7ビット目のビット値を受ける。
そして、ゲート295〜298は、それぞれ、“1”からなる信号EN11〜EN14を受けると、1ビット目、3ビット目、5ビット目および7ビット目のビット値を1ビットステージ271へ出力する。
マルチプレクサMU11においては、信号EN11が最初に“1”になり、信号SW_1が立ち上がった後に立ち下がるごとに、信号EN12〜EN14が順次“1”になるので、ゲート295〜298は、信号SW_1が立ち上がった後に立ち下がるごとに、それぞれ、1ビット目、3ビット目、5ビット目および7ビット目のビット値を1ビットステージ271へ順次出力する。
なお、図32に示すマルチプレクサMU12〜MU1W,MU21〜MU2Wの各々も、図33に示すマルチプレクサMU11と同じ回路図からなる。そして、マルチプレクサMU21〜MU2Wにおいては、OR回路290は、信号SW_2と信号SHIFT_evenBIT_SETとの論理和を演算し、その演算した論理和をシフトレジスタ291〜294の端子CLKへ出力する。また、マルチプレクサMU21〜MU2Wにおいては、ゲート295〜298は、Kビットの距離信号M1M2・・・MKのうち、それぞれ、2ビット目、4ビット目、6ビット目および8ビット目のビット値を受ける。そして、マルチプレクサMU21〜MU2Wのゲート295〜298は、それぞれ、信号SW_2が立ち上がった後に立ち下がるごとに、それぞれ、2ビット目、4ビット目、6ビット目および8ビット目のビット値をそれぞれ1ビットステージ281〜28Wへ順次出力する。
図34は、図32に示すEN選択回路761の回路図である。図34を参照して、EN選択回路761は、選択器7611と、フリップフロップ7612と、OR回路7613とを含む。
選択器7611は、端子EN1からイネーブル信号ENを受け、フリップフロップ7612から信号SW_1を受ける。そして、選択器7611は、信号SW_1が立ち上がった後、立ち下がるまでは、イネーブル信号ENをOR回路7613へ出力する。また、選択器7611は、信号SW_1が立ち上がった後、立ち下がると、“0”からなる信号をOR回路7613へ出力する。
フリップフロップ7612は、信号SW_1を端子Sに受け、リセット信号RSTを端子Rに受ける。そして、フリップフロップ7612は、リセット信号RSTを受けると、リセットし、その後、信号SW_1を端子Sに受けると、信号SW_1を選択器7611へ出力する。
OR回路7613は、選択器7611の出力信号と、端子EN2から入力された信号との論理和を演算し、その演算した論理和をNAND回路762へ出力する。
EN選択回路761においては、選択器7611は、信号SW_1が立ち上がった後、立ち下がるまでは、イネーブル信号ENをOR回路7613へ出力する。従って、OR回路7613は、信号SW_1が立ち上がった後、立ち下がるまでは、イネーブル信号EN、または端子EN2から入力された信号をNAND回路762へ出力する。
そして、選択器7611は、信号SW_1が立ち上がった後に立ち下がると、“0”からなる信号をOR回路7613へ出力し、OR回路7613は、“0”からなる信号と、端子EN2から入力された信号との論理和を演算して端子EN2から入力された信号をNAND回路762へ出力する。
図35は、図32に示す一方の段数可変分周器763の回路図である。なお、図35に示す段数可変分周器763の回路図は、参照データのビット数Kが8ビットである場合の回路図である。
図35を参照して、段数可変分周器763は、NOR回路7631と、インバータ7632,7642,7650と、分周器7633〜7639と、P型MOSトランジスタ7640,7651と、ゲート7641,7643,7645,7647,7649とを含む。
段数可変分周器763は、ノードN91から信号CH_out(発振信号)を受け、その受けた信号CH_outをノードN92からNAND回路762へ出力する。
NOR回路7631は、ノードN91から受けた信号CH_outと、信号F_actとの論理和を演算し、その演算した論理和を反転して分周器7633およびゲート7641へ出力する。
インバータ7632は、OR回路771から検索開始信号SBを受け、その受けた検索開始信号SBを反転して分周器7633〜7639へ出力する。
分周器7633〜7639は、直列に接続され、OR回路771から検索開始信号SBを受け、インバータ7632から反転信号/SBを受ける。分周器7633は、NOR回路7631の出力端子とゲート7643との間に接続される。分周器7634,7635は、分周器7633の出力端子とゲート7645との間に直列に接続される。分周器7636,7637は、分周器7635の出力端子とゲート7647との間に直列に接続される。分周器7638,7639は、分周器7637の出力端子とゲート7649との間に直列に接続される。
そして、分周器7633〜7639の各々は、図11に示す分周器211と同じ回路図からなる。この場合、図11に示すN型MOSトランジスタ2119は、信号Fre_RSTに代えて、検索開始信号SBをゲート端子に受け、P型MOSトランジスタ2127は、信号Fre_RSTQに代えて、検索開始信号SBの反転信号/SBをゲート端子に受ける。
P型MOSトランジスタ7640は、電源ノードVDDと、インバータ7642の入力端子との間に接続される。そして、P型MOSトランジスタ7640は、スイッチング回路765から受けた選択信号F_SEL10をゲート端子に受ける。
ゲート7641およびインバータ7642は、NOR回路7631の出力端子と、ノードN93との間に直列に接続される。ゲート7641は、スイッチング回路765から受けた選択信号F_SEL10によって開閉される。より具体的には、ゲート7641は、“1”からなる選択信号F_SEL10によって開き、“0”からなる選択信号F_SEL10によって閉じる。インバータ7642は、ゲート7641から受けた信号を反転してノードN93から分周回路20へ出力する。
ゲート7643およびインバータ7650は、分周器7633の出力端子と、ノードN94との間に直列に接続される。ゲート7643は、スイッチング回路765から受けた選択信号F_SEL11によって開閉される。より具体的には、ゲート7643は、“1”からなる選択信号F_SEL11によって開き、“0”からなる選択信号F_SEL11によって閉じる。インバータ7650は、ゲート7643,7645,7647,7649から受けた信号を反転してノードN94から遅延回路764およびフリップフロップ766へ出力する。
ゲート7645,7647,7649は、それぞれ、分周器7635,7637,7639の出力端子と、インバータ7650の入力端子との間に接続され、スイッチング回路765から受けた選択信号F_SEL13,F_SEL15,F_SEL17によって開閉される。より具体的には、ゲート7645,7647,7649は、それぞれ、“1”からなる選択信号F_SEL13,F_SEL15,F_SEL17によって開き、“0”からなる選択信号F_SEL13,F_SEL15,F_SEL17によって閉じる。
P型MOSトランジスタ7651は、電源ノードVDDと、インバータ7650の入力端子との間に接続される。そして、P型MOSトランジスタ7651は、選択信号F_SEL11〜F_SEL17の論理和をゲート端子に受ける。
段数可変分周器763が駆動されるとき、“0”からなる信号F_actがNOR回路7631へ入力され、“0”からなる検索開始信号SBおよび“1”からなる反転信号/SBが分周器7633〜7639へ入力される。
そして、段数可変分周器763は、“1”からなる選択信号F_SEL11をゲート7643に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
また、段数可変分周器763は、“1”からなる選択信号F_SEL13をゲート7645に受けると、分周器7633から受けた発振信号を分周器7634,7635によって更に2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
以下、同様にして、段数可変分周器763は、“1”からなる選択信号F_SEL15,F_SEL17をそれぞれゲート7647,7649に受けると、それぞれ分周器7635および分周器7637から受けた発振信号を分周器7636,7637および分周器7638,7649によって更に2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
その結果、段数可変分周器763は、“1”からなる選択信号F_SEL11,F_SEL13,F_SEL15,F_SEL17をそれぞれゲート7643,7645,7647,7649に受けることによって、発振信号をそれぞれ2,2,2,2回分周して遅延回路764およびフリップフロップ766へ出力する。
そして、段数可変分周器763は、“1”からなる選択信号F_SEL10をゲート7641に受けると、ノードN93から発振信号を分周回路20へ出力する。
このように、段数可変分周器763は、選択信号F_SEL11,F_SEL13,F_SEL15,F_SEL17によって分周回数を切り換えて発振信号を分周する。
図36は、図32に示す他方の段数可変分周器769の回路図である。図36を参照して、段数可変分周器769は、図35に示す段数可変分周器763の分周器7633およびゲート7643を削除し、ゲート7645,7647,7649をそれぞれゲート7644,7646,7648に代えたものであり、その他は、段数可変分周器763と同じである。なお、段数可変分周器769においては、インバータ7650は、ゲート7644,7646,7648の出力端子およびP型MOSトランジスタ7651に接続される。
ゲート7644,7646,7648は、スイッチング回路765からそれぞれ選択信号F_SEL12,F_SEL14,F_SEL16を受け、その受けた選択信号F_SEL12,F_SEL14,F_SEL16によって開閉される。より具体的には、ゲート7644,7646,7648は、それぞれ、“1”からなる選択信号F_SEL12,F_SEL14,F_SEL16によって開き、“0”からなる選択信号F_SEL12,F_SEL14,F_SEL16によって閉じる。
段数可変分周器769が駆動されるとき、“0”からなる信号F_actがNOR回路7631へ入力され、“0”からなる検索開始信号SBおよび“1”からなる反転信号/SBが分周器7634〜7639へ入力される。
そして、段数可変分周器769は、“1”からなる選択信号F_SEL12をゲート7644に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7634,7635によって2回分周してノードN94から遅延回路770およびフリップフロップ767へ出力する。
また、段数可変分周器769は、“1”からなる選択信号F_SEL14をゲート7646に受けると、分周器7635から受けた発振信号を分周器7636,7637によって更に2回分周してノードN94から遅延回路770およびフリップフロップ767へ出力する。
更に、段数可変分周器769は、“1”からなる選択信号F_SEL16をゲート7648に受けると、分周器7637から受けた発振信号を分周器7638,7639によって更に2回分周してノードN94から遅延回路770およびフリップフロップ767へ出力する。
その結果、段数可変分周器769は、“1”からなる選択信号F_SEL12,F_SEL14,F_SEL16をそれぞれゲート7644,7646,7648に受けることによって、発振信号をそれぞれ2,2,2回分周して遅延回路770およびフリップフロップ767へ出力する。
そして、段数可変分周器769は、“1”からなる選択信号F_SEL10をゲート7641に受けると、ノードN93から発振信号を分周回路20へ出力する。
このように、段数可変分周器769は、選択信号F_SEL12,F_SEL14,F_SEL16によって分周回数を切り換えて発振信号を分周する。
図37は、図32に示すスイッチング回路765のブロック図である。図37を参照して、スイッチング回路765は、OR回路7651と、シフトレジスタ7652と、セレクタ7654,7655とを含む。
OR回路7651は、信号SW_1,SW_2をそれぞれ遅延回路764,770から受け、信号FSEL_SETを連想メモリ100Aの制御回路から受ける。そして、OR回路7651は、その受けた信号SW_1,SW_2,FSEL_SETの論理和を演算してシフトレジスタ7652の端子CLKへ出力する。なお、信号FSEL_SETは、1つのパルス波形からなる。
シフトレジスタ7652は、“1”からなるデータdataを端子Dに受け、OR回路7651の出力を端子CLKに受け、リセット信号RSTを端子Rに受ける。
そして、シフトレジスタ7652は、リセット信号RSTを端子Rに受けると、リセットする。その後、シフトレジスタ7652は、“1”からなるデータdataを端子Dに受けると、端子CLKに受けた信号が立ち上がった後に立ち下がるごとに、端子Dに受けたデータを出力することによって、Kビットの信号をセレクタ7654,7655へ出力する。
なお、“1”からなる信号evenは、参照データのビット数が偶数であることを意味し、“0”からなる信号evenは、参照データのビット数が奇数であることを意味する。
セクレタ7654は、シフトレジスタ7652からKビットの信号を受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、セクレタ7654は、信号evenが“1”からなるとき、Kビットの信号に基づいて、選択信号F_SEL1(=選択信号F_SEL10,F_SEL11,F_SEL13,F_SEL15,F_SEL17からなる)を生成し、その生成した選択信号F_SEL1(=選択信号F_SEL10,F_SEL11,F_SEL13,F_SEL15,F_SEL17からなる)を段数可変分周器763へ出力する。
セクレタ7655は、シフトレジスタ7652からKビットの信号を受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、セクレタ7655は、信号evenが“0”からなるとき、Kビットの信号に基づいて、選択信号F_SEL2(=選択信号F_SEL10,F_SEL12,F_SEL14,F_SEL16からなる)を生成し、その生成した選択信号F_SEL2(=選択信号F_SEL10,F_SEL12,F_SEL14,F_SEL16からなる)を段数可変分周器769へ出力する。
図38は、図37に示すシフトレジスタ7652の回路図である。なお、図38は、参照データのビット数Kが8ビットである場合のシフトレジスタ7652の回路図を示す。
図38を参照して、シフトレジスタ7652は、シフトレジスタ331〜338からなる。
シフトレジスタ331〜338は、直列に接続される。シフトレジスタ331〜338の各々は、信号SW_1と信号SW_2と信号FSEL_SETとの論理和からなる信号SWを端子CLKに受け、リセット信号RSTを端子Rに受ける。
シフトレジスタ331は、“1”からなるデータdataを連想メモリ100Aの制御回路から端子Dに受ける。そして、シフトレジスタ331は、初期段階においては、信号SW_1,SW_2が“0”からなるので、信号FSEL_SETが立ち上がった後に立ち下がると、“1”からなるデータを選択信号F_SEL17として端子Qから出力する。その後、シフトレジスタ331は、信号SW(=信号SW_1と信号SW_2と信号FSEL_SETとの論理和)が立ち上がった後に立ち下がると、“1”からなるデータを選択信号F_SEL17として端子Qから出力する。
シフトレジスタ332〜338は、初期段階においては、それぞれ、シフトレジスタ331〜337からデータ(=“0”)を受け、信号FSEL_SETが立ち上がった後に立ち下がると、それぞれ、“0”からなる選択信号F_SEL16〜F_SEL10を端子Qから出力する。その後、シフトレジスタ332〜338は、それぞれ、シフトレジスタ331〜337からデータ(=“1”)を端子Dに受け、信号SWが立ち上がった後に立ち下がると、それぞれ、“1”からなる選択信号F_SEL16〜F_SEL10を端子Qから出力する。
このように、シフトレジスタ7652は、信号SWが立ち上がった後に立ち下がるごとに、“1”からなる選択信号F_SEL17〜F_SEL10を順次出力する。
図39は、図37に示すセレクタ7654の回路図である。図39を参照して、セレクタ7654は、選択器351〜358からなる。選択器351,353,355,357は、端子in1にそれぞれ選択信号F_SEL17,F_SEL15,F_SEL13,F_SEL11を受け、端子in2が接地ノードGNDに接続される。
選択器352,354,356,358は、端子in1が接地ノードGNDに接続され、端子in2にそれぞれ選択信号F_SEL16,F_SEL14,F_SEL12,F_SEL10を受ける。
また、選択器351〜358は、信号evenを連想メモリ100Aの制御回路から受ける。そして、選択器351〜358は、信号evenが“1”であるとき、端子in1に受けた信号をそれぞれF_SEL17〜F_SEL10として出力し、信号evenが“0”であるとき、端子in2に受けた信号をそれぞれF_SEL17〜F_SEL10として出力する。
信号evenが“1”であるとき、選択器351,353,355,357の出力は、それぞれ、選択信号F_SEL17,F_SEL15,F_SEL13,F_SEL11からなり、選択器352,354,356,358の出力は、“0”からなる。そして、選択器351,353,355,357は、それぞれ、選択信号F_SEL17,F_SEL15,F_SEL13,F_SEL11を段数可変分周器763へ出力し、選択器358は、“0”からなる選択信号F_SEL10を段数可変分周器763へ出力する。
一方、信号evenが“0”であるとき、選択器351,353,355,357の出力は、“0”からなり、選択器352,354,356,358の出力は、それぞれ、選択信号F_SEL16,F_SEL14,F_SEL12,F_SEL10からなる。そして、選択器351,353,355,357は、それぞれ、“0”からなる選択信号F_SEL17,F_SEL15,F_SEL13,F_SEL11を段数可変分周器763へ出力し、選択器358は、選択信号F_SEL10を段数可変分周器763へ出力する。
なお、セレクタ7655は、セレクタ7654と同じ回路図からなるが、選択器351〜358は、セレクタ7655においては、セレクタ7654における動作を逆転させた動作を行う。即ち、選択器351〜358は、セレクタ7655においては、信号evenが“1”であるとき、端子in2に受けた信号をそれぞれF_SEL17〜F_SEL10として出力し、信号evenが“0”であるとき、端子in1に受けた信号をそれぞれF_SEL17〜F_SEL10として出力する。
信号evenが“1”であるとき、セレクタ7655においては、選択器352,354,356,358の出力は、それぞれ、選択信号F_SEL16,F_SEL14,F_SEL12,F_SEL10からなり、選択器351,353,355,357の出力は、“0”からなる。そして、選択器352,354,356,358は、それぞれ、選択信号F_SEL16,F_SEL14,F_SEL12,F_SEL10を段数可変分周器769へ出力する。
一方、信号evenが“0”であるとき、セレクタ7655においては、選択器352,354,356,358の出力は、“0”からなり、選択器351,353,355,357の出力は、それぞれ、選択信号F_SEL17,F_SEL15,F_SEL13,F_SEL11からなる。そして、選択器352,354,356,358は、それぞれ、“0”からなる選択信号F_SEL16,F_SEL14,F_SEL12,F_SEL10を段数可変分周器769へ出力する。
図40は、信号のタイミングチャートである。また、図41および図42は、それぞれ、図32に示す距離/時間変換回路DT’Bを備える連想メモリ100Aの動作を説明するための第1および第2の概念図である。
連想メモリ100Aにおける検索が開始されると、ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの間の距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKをパスエンコーダPE’ヘ出力する。ユニット比較回路UC’21〜UC’2W,・・・,UC’R1〜UC’RWも、同様に、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKをそれぞれパスエンコーダPE’〜PE’へ出力する。
パスエンコーダPE’は、上述した方法によって、距離信号M1M2・・・MKM1M2・・・MK・・・M1M2・・・MKに基づいて、距離信号M1M1・・・M1,M2M2・・・M2,・・・,MKMK・・・MKを生成する。そして、パスエンコーダPE’は、距離信号M1M1・・・M1、距離信号M3M3・・・M3、距離信号M5M5・・・M5、・・・をマルチプレクサMU11〜MU1Wへ順次出力し、距離信号M2M2・・・M2、距離信号M4M4・・・M4、距離信号M6M6・・・M6、・・・をマルチプレクサMU21〜MU2Wへ順次出力する。パスエンコーダPE’〜PE’についても同様である。
距離/時間変換回路DT’(=距離/時間変換回路DT’B)において、マルチプレクサMU11は、奇数ビットの距離信号M1,M3,M5,・・・を順次受け、マルチプレクサMU12は、奇数ビットの距離信号M1,M3,M5,・・・を順次受け、以下、同様にして、マルチプレクサMU1W−1は、奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・を順次受け、マルチプレクサMU1Wは、奇数ビットの距離信号M1,M3,M5,・・・を順次受ける。また、マルチプレクサMU21は、偶数ビットの距離信号M2,M4,M6,・・・を順次受け、マルチプレクサMU22は、偶数ビットの距離信号M2,M4,M6,・・・を順次受け、以下、同様にして、マルチプレクサMU2W−1は、偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・を順次受け、マルチプレクサMU2Wは、偶数ビットの距離信号M2,M4,M6,・・・を順次受ける。
マルチプレクサMU11においては、ゲート295は、“1”からなる信号EN11をシフトレジスタ291から受け、ゲート296〜298は、“0”からなる信号EN12〜EN14をそれぞれシフトレジスタ292〜295から受けるので、マルチプレクサMU11は、1ビット目の距離信号M1を1ビットステージ271へ出力する。マルチプレクサMU12〜MU1Wも、同様に、それぞれ、1ビット目の距離信号M1〜M1を1ビットステージ272〜27Wへ出力する。
また、マルチプレクサMU21〜MU2Wも、同様に、それぞれ、2ビット目のM2〜M2を1ビットステージ281〜28Wへ出力する。
イネーブル信号ENは、タイミングt4よりも前のタイミングにおいては、“0”からなるので、EN選択回路761は、“0”からなる信号をNAND回路762へ出力し、NAND回路762は、段数可変分周器763からの信号が“0”および“1”のいずれであっても、“1”からなる信号を1ビットステージ271へ出力する。
その結果、1ビットステージ271〜27Wの個数が偶数である場合、1ビットステージ27Wは、タイミングt4よりも前のタイミングにおいて、“1”からなる信号を段数可変分周器763へ出力する。そして、段数可変分周器763は、“1”からなる信号CH_1_outをNAND回路762へ出力する。
その後、“1”からなるイネーブル信号ENがタイミングt4で連想メモリ100Aの制御回路からEN選択回路761へ入力されると、選択器7611は、信号SW_1が“0”からなるので、“1”からなるイネーブル信号ENをOR回路7613へ出力し、OR回路7613は、端子EN2に受ける信号が“0”からなるので、“1”からなるイネーブル信号ENをNAND回路762へ出力する。
そして、NAND回路762は、“1”からなるイネーブル信号ENをEN選択回路761から受け、“1”からなる信号CH_1_outを段数可変分周器763から受ける。そうすると、NAND回路762は、“1”からなるイネーブル信号ENと、“1”からなる信号CH_1_outとの論理積を演算し、その演算した論理積を反転し、“0”からなる信号を1ビットステージ271へ出力する。
1ビットステージ271は、距離信号M1によって選択された遅延経路を用いて“1”からなる信号を遅延し、その遅延した信号を1ビットステージ272へ出力する。その後、1ビットステージ272〜27Wは、それぞれ、距離信号M1〜M1によって選択された遅延経路を用いて、1ビットステージ271〜27W−1からの出力信号を遅延して出力する。そして、1ビットステージ27Wは、出力信号CH_1_outを段数可変分周器763のノードN91,N92を介してNAND回路762へ出力し、NAND回路762は、“1”からなるイネーブル信号ENと、信号CH_1_outとの論理積を演算し、その演算した論理積を反転して1ビットステージ271へ出力する。
その結果、1ビットステージ271〜27Wは、段数可変分周器763およびNAND回路762を介してリング状に接続され、“0”からなる信号および“1”からなる信号をNAND回路762から交互に受けるので、発振信号を発振する。
なお、1ビットステージ271〜27Wの個数が奇数である場合、1ビットステージ27Wは、タイミングt4よりも前のタイミングにおいて、“0”からなる信号を段数可変分周器763へ出力し、段数可変分周器763は、“0”からなる信号CH_1_outをNAND回路762へ出力する。そして、NAND回路762は、タイミングt4において、EN選択回路761からの“1”からなる信号と、段数可変分周器763からの“0”からなる信号CH_1_outとに基づいて“1”からなる信号を1ビットステージ271へ出力する。その後、1ビットステージ271〜27Wは、上述したように、“0”からなる信号および“1”からなる信号をNAND回路762から交互に受けるので、発振信号を発振する。
従って、1ビットステージ271〜27Wは、個数が偶数および奇数のいずれであっても、発振信号を発振する。
一方、フリップフロップ766は、“0”からなる信号Freq_out_1を段数可変分周器763から受けて、“0”からなる信号EN_2をNAND回路768へ出力し、NAND回路768は、“1”が連続した信号を1ビットステージ281へ出力するので、発振回路752は、休止状態である(図41参照)。
そして、スイッチング回路765において、OR回路7651は、1つのパルス波形からなる信号FSEL_SETと、“0”からなる信号SW_1,SW_2とを受けるので、1つのパルス波形からなる信号FSEL_SETをシフトレジスタ7652の端子CLKへ出力する。シフトレジスタ7652は、端子CLKに受けた信号FSEL_SETが立ち上がった後に立ち下がると、選択信号F_SEL17=“1”および選択信号F_SEL16〜F_SEL10=“0”をセレクタ7654,7655へ出力する。
セレクタ7654は、選択信号F_SEL17=“1”および選択信号F_SEL16〜F_SEL10=“0”と、“1”からなる信号evenとに基づいて、選択信号F_SEL17=“1”,F_SEL15=“0”,F_SEL13=“0”,F_SEL11=“0”,F_SEL10=“0”を段数可変分周器763へ出力する。
また、セレクタ7655は、選択信号F_SEL17=“1”および選択信号F_SEL16〜F_SEL10=“0”と、“1”からなる信号evenとに基づいて、選択信号F_SEL16=“0”,F_SEL14=“0”,F_SEL12=“0”,F_SEL10=“0”を段数可変分周器769へ出力する。
そうすると、段数可変分周器763は、選択信号F_SEL17=“1”,F_SEL15=“0”,F_SEL13=“0”,F_SEL11=“0”,F_SEL10=“0”をスイッチング回路765から受け、ゲート7641,7643,7645,7647が閉じ、ゲート7649のみが開く。
その結果は、発振回路751から出力された発振信号CH_1_outは、分周器7633〜7639によって2回分周され、段数可変分周器763は、タイミングt5で信号Freq_out_1を遅延回路764およびフリップフロップ766へ出力する。
そして、遅延回路764は、信号Freq_out_1をτだけ遅延して信号SW_1を生成し、その生成した信号SW_1をEN選択回路761、マルチプレクサMU11〜MU1W、スイッチング回路765およびフリップフロップ767へ出力する。
マルチプレクサMU11〜MU1Wは、信号SW_1を受ける。そして、信号SW_1が、タイミングt6において、立ち上がった後に立ち下がると、シフトレジスタ292は、“1”からなる信号EN12をゲート296へ出力し、シフトレジスタ291,293,294は、それぞれ、“0”からなる信号EN11,EN13,EN14をゲート295,297,298へ出力する。その結果、マルチプレクサMU11は、タイミングt6で3ビット目の距離信号M3を1ビットステージ271へ出力する。マルチプレクサMU12〜MU1Wも、同様にして、タイミングt6でそれぞれ3ビット目の距離信号M3〜M3を1ビットステージ272〜27Wへ出力する。
一方、フリップフロップ766は、タイミングt5で信号Freq_out_1を段数可変分周器763から受けると、信号SW_2が“0”からなるので、信号Freq_out_1に基づいて信号EN_2を生成してNAND回路768へ出力する。
NAND回路768は、フリップフロップ766からの信号EN_2と、段数可変分周器769からの信号CH_2_out(=“0”)との論理積を演算し、その演算した論理積を反転して“1”からなる信号を1ビットステージ281へ出力する。
1ビットステージ281〜28Wは、それぞれ、マルチプレクサMU21〜MU2Wから2ビット目の距離信号M2〜M2を既に受けている。従って、1ビットステージ281〜28Wは、NAND回路768からの信号に基づいて発振信号CH_2_outを発振し、その発振した発振信号CH_2_outを段数可変分周器769へ出力する。この場合、EN選択回路761は、“0”からなるイネーブル信号ENを連想メモリ100Aの制御回路から受け、“0”からなる信号をフリップフロップ767から受けるので、信号SW_1が立ち上がった後に立ち下がるタイミングt6で“0”からなる信号をNAND回路762へ出力する。そして、NAND回路762は、“0”からなる信号をEN選択回路761から受けるので、連続した“1”からなる信号を1ビットステージ271へ出力する。従って、発振回路751は、発振信号を発振せず、休止状態である(図42参照)。
一方、スイッチング回路765のシフトレジスタ7652は、タイミングt6で信号SW_1が立ち下がると、選択信号F_SEL16=“1”,F_SEL17=F_SEL15〜F_SEL10=“0”をセレクタ7654,7655へ出力する。
セレクタ7654は、選択信号F_SEL16=“1”,F_SEL17=F_SEL15〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL17=F_SEL15=F_SEL13=F_SEL11=SEL10=“0”を段数可変分周器763へ出力する。また、セレクタ7655は、選択信号F_SEL16=“1”,F_SEL17=F_SEL15〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL16=“1”および選択信号F_SEL14=F_SEL12=SEL10=“0”を段数可変分周器769へ出力する。
そうすると、段数可変分周器769は、選択信号F_SEL16=“1”および選択信号F_SEL14=F_SEL12=SEL10=“0”を受け、ゲート7641,7644,7646が閉じ、ゲート7648のみが開く。
そして、段数可変分周器769は、発振信号CH_2_outを6個の分周器7634〜7639によって分周し、タイミングt7で信号Freq_out_2をフリップフロップ767および遅延回路770へ出力する。
遅延回路770は、信号Freq_out_2をτだけ遅延して信号SW_2をマルチプレクサMU21〜MU2W、スイッチング回路765およびフリップフロップ766へ出力する。
マルチプレクサMU21〜MU2Wは、信号SW_2を受ける。そして、信号SW_2が、タイミングt8において、立ち上がった後に立ち下がると、シフトレジスタ292は、“1”からなる信号EN12をゲート296へ出力し、シフトレジスタ291,293,294は、それぞれ、“0”からなる信号EN11,EN13,EN14をゲート295,297,298へ出力する。その結果、マルチプレクサMU21は、タイミングt8で4ビット目の距離信号M4を1ビットステージ281へ出力する。マルチプレクサMU22〜MU2Wも、同様にして、タイミングt8でそれぞれ4ビット目の距離信号M4〜M4を1ビットステージ282〜28Wへ出力する。
一方、フリップフロップ767は、タイミングt7で信号Freq_out_2を受けると、その受けた信号Freq_out_2に基づいて、信号EN_1を生成し、その生成した信号EN_1をEN選択回路761へ出力する。
タイミングt7においては、信号SW_1=“0”であるので、選択器7611は、“0”から信号をOR回路7613へ出力し、OR回路7613は、“0”からなる信号と、“1”からなる信号EN_1とに基づいて、“1”からなる信号EN_1をNAND回路762へ出力する。
そして、NAND回路762は、“1”からなる信号EN_1と、段数可変分周器763からの信号CH_1_out(=“0”)との論理積を演算し、その演算した論理積を反転した“1”からなる信号を1ビットステージ271へ出力する。
1ビットステージ271〜27Wは、それぞれ、マルチプレクサMU11〜MU1Wから3ビット目の距離信号M3〜M3をタイミングt6で受けている。
従って、1ビットステージ271〜27Wは、それぞれ、3ビット目の距離信号M3〜M3によって選択された遅延経路を用いて信号を遅延し、発振信号CH_1_outを発振し、その発振した発振信号CH_1_outを段数可変分周器763へ出力する。この場合、フリップフロップ766は、 “0”からなる信号SW_2を遅延回路770から受けるので、“0”からなる信号EN_2をNAND回路768へ出力する。その結果、NAND回路768は、“1”が連続した信号を1ビットステージ281へ出力するので、発振回路752は、休止状態である(図41参照)。
一方、スイッチング回路765のシフトレジスタ7652は、タイミングt8で信号SW_2が立ち下がると、選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14〜F_SEL10=“0”をセレクタ7654,7655へ出力する。
セレクタ7654は、“1”からなる信号evenを連想メモリ100Aの制御回路から受け、選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL15=“1”および選択信号F_SEL17=F_SEL13=F_SEL11=SEL10=“0”を段数可変分周器763へ出力する。また、セレクタ7655は、選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL16=F_SEL14=F_SEL12=SEL10=“0”を段数可変分周器769へ出力する。
そうすると、段数可変分周器763は、選択信号F_SEL15=“1”および選択信号F_SEL17=F_SEL13=F_SEL11=SEL10=“0”を受け、ゲート7641,7643,7649が閉じ、ゲート7647のみが開く。
そして、段数可変分周器763は、発振信号CH_1_outを5個の分周器7633〜7637によって分周し、タイミングt9で信号Freq_out_1を遅延回路764およびフリップフロップ766へ出力する。
遅延回路764は、信号Freq_out_1をτだけ遅延して信号SW_1をマルチプレクサMU11〜MU1W、EN選択回路761、スイッチング回路765およびフリップフロップ767へ出力する。
以後、上述した動作が繰り返し行われ、発振回路751,752は、交互に発振信号を発振し、段数可変分周器763は、発振回路751からの発振信号を2回、2回、2回および2回分周し、段数可変分周器769は、発振回路752からの発振信号を2回、2回、2回および1回分周する。そして、段数可変分器器769における分周が終了すると、スイッチング回路765は、選択信号F_SEL17=F_SEL15=F_SEL13=F_SEL11=“0”および選択信号F_SEL10=“1”を段数可変分周器763へ出力し、選択信号F_SEL16=F_SEL14=F_SEL12=“0”および選択信号F_SEL10=“1”を段数可変分周器769へ出力する。また、スイッチング回路765は、選択信号F_SEL10=“1”を選択信号F_SEL_02として選択器780へ出力する。
そうすると、段数可変分周器763は、選択信号F_SEL17=F_SEL15=F_SEL13=F_SEL11=“0”および選択信号F_SEL10=“1”に基づいて、2回分周、2回分周、2回分周および2回分周を順次実行した後の発振信号を信号out_1として選択器780へ出力する。また、段数可変分周器769は、選択信号F_SEL16=F_SEL14=F_SEL12=“0”および選択信号F_SEL10=“1”に基づいて、2回分周、2回分周、2回および1回分周を順次実行した後の発振信号を信号out_2として選択器780へ出力する。
そして、選択器780は、選択信号F_SEL_02=“1”に応じて、信号out_2を選択し、その選択した信号out_2を発振信号Sとして分周回路20へ出力する。
なお、距離/時間変換回路DT’〜DT’の各々も、上述した動作を実行し、それぞれ、発振信号S〜Sを分周回路20へ出力する。
分周回路20および時間領域WTA回路30における動作は、上述したとおりである。
このように、距離/時間変換回路DT’〜DT’の各々が図32に示す距離/時間変換回路DT’Bからなる場合、発振回路751は、各参照データと検索データとの奇数ビット同士の距離信号によって選択された遅延経路を用いて発振信号を発振し、発振回路752は、各参照データと検索データとの偶数ビット同士の距離信号によって選択された遅延経路を用いて発振信号を発振する。この場合、発振回路751,752の各々は、上位ビット同士の距離信号から下位ビット同士の距離信号へ向かう方向に従って距離信号を発振信号に順次変換する。
また、段数可変分周器763は、参照データと検索データとの最上位ビットから奇数番目のビット同士の比較結果を示す第1の距離信号を変換した発振信号を発振回路751から受け、第1の距離信号がより下位のビット同士の比較結果を示すほど少ない回数だけ発振回路751から受けた発振信号を分周して発振回路752へ出力する。更に、段数可変分周器769は、参照データと検索データとの最上位ビットから偶数番目のビット同士の比較結果を示す第2の距離信号を変換した発振信号を発振回路752から受け、第2の距離信号がより下位のビット同士の比較結果を示すほど少ない回数だけ発振回路752から受けた発振信号を分周して発振回路751へ出力する。
このように、発振回路751および段数可変分周器763と、発振回路752および段数可変分周器769とは、交互に動作を行いながら、上位ビットほど多い回数だけ発振信号を分周して、距離信号を発振信号に変換する。
従って、上述したように、連想メモリ100Aにおける検索時間を短縮できる。
なお、上記においては、参照データおよび検索データのビット数Kが8ビットである場合について説明したが、ビット数Kが8ビット以外であっても、距離/時間変換回路DT’Bを備える連想メモリ100Aは、上述した方法によって、検索データに一致する参照データを検索できる。
より詳細に説明する。参照データおよび検索データのビット数Kが6ビットである場合、信号SHIFT_ODDBIT_SET,SHIFT_evenBIT_SETの各々は、連続した2つのパルス波形からなり、信号FSEL_SETは、連続した3つのパルス波形からなる。
参照データおよび検索データのビット数Kが6ビットである場合、マルチプレクサMU11〜MU1Wは、3ビット目、5ビット目および7ビット目の奇数ビットをパスエンコーダPE’から受ける。また、参照データおよび検索データのビット数Kが6ビットである場合、マルチプレクサMU21〜MU2Wは、4ビット目および6ビット目の偶数ビットをパスエンコーダPE’から受ける。
マルチプレクサMU11〜MU1Wの各々において、シフトレジスタ291は、“1”からなるデータを連想メモリ100Aの制御回路から端子Dに受け、シフトレジスタ292〜294は、“0”からなるデータをそれぞれシフトレジスタ291〜293から端子Dに受ける。
そして、マルチプレクサMU11〜MU1Wの各々において、シフトレジスタ291は、1つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“1”からなるデータを端子Qからシフトレジスタ292およびゲート295へ出力する。また、マルチプレクサMU11〜MU1Wの各々において、シフトレジスタ292は、1つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータを端子Qからシフトレジスタ293およびゲート296へ出力し、シフトレジスタ293は、1つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータを端子Qからシフトレジスタ294およびゲート297へ出力し、シフトレジスタ294は、1つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータを端子Qからゲート298へ出力する。
その結果、マルチプレクサMU11〜MU1Wは、“1”からなる信号EN11、“0”からなる信号EN12、“0”からなる信号EN13、および“0”からなる信号EN14に従って、1ビット目(ビット数Kが6ビットである場合、“0”からなる)をそれぞれ1ビットステージ271〜27Wへ出力する。
その後、マルチプレクサMU11〜MU1Wの各々において、シフトレジスタ291は、2つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータを端子Qからシフトレジスタ292およびゲート295へ出力する。また、マルチプレクサMU11〜MU1Wの各々において、シフトレジスタ292は、2つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“1”からなるデータを端子Qからシフトレジスタ293およびゲート296へ出力し、シフトレジスタ293は、2つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータを端子Qからシフトレジスタ294およびゲート297へ出力し、シフトレジスタ294は、2つ目のパルス波形に従って信号SHIFT_ODDBIT_SETが立ち上がった後に立ち下がると、“0”からなるデータを端子Qからゲート298へ出力する。
その結果、マルチプレクサMU11〜MU1Wは、“0”からなる信号EN11、“1”からなる信号EN12、“0”からなる信号EN13、および“0”からなる信号EN14に従って、3ビット目の奇数ビットをそれぞれ1ビットステージ271〜27Wへ出力する。
その後、マルチプレクサMU11〜MU1Wは、上述したように、信号SW_1た立ち上がった後にたち下がると、5ビット目および7ビット目の奇数ビットをそれぞれ1ビットステージ271〜27Wへ順次出力する。
このように、参照データおよび検索データのビット数Kが6ビットである場合、連続した2つのパルス波形からなる信号SHIFT_ODDBIT_SETをマルチプレクサMU11〜MU1Wへ入力することによって、マルチプレクサMU11〜MU1Wは、“0”からなる1ビット目の奇数ビットをそれぞれ1ビットステージ271〜27Wへ出力した直後に3ビット目の奇数ビット(検索データと参照データとの比較結果を表す)をそれぞれ1ビットステージ271〜27Wへ出力する。
また、マルチプレクサMU21〜MU2Wも、マルチプレクサMU11〜MU1Wと同様に、2ビット目の偶数ビット(ビット数Kが6ビットである場合、“0”からなる)をそれぞれ1ビットステージ281〜28Wへ出力した直後に4ビット目の偶数ビット(検索データと参照データとの比較結果を表す)をそれぞれ1ビットステージ281〜28Wへ出力する。
従って、参照データおよび検索データのビット数Kが6ビットである場合、マルチプレクサMU11〜MU1Wは、連続した2つのパルス波形からなる信号SHIFT_ODDBIT_SETに応じて、1ビット目の奇数ビットを実質的に無視して、3ビット目、5ビット目および7ビット目の奇数ビットをそれぞれ1ビットステージ271〜27Wへ順次出力し、マルチプレクサMU21〜MU2Wは、連続した2つのパルス波形からなる信号SHIFT_evenBIT_SETに応じて、2ビット目の偶数ビットを実質的に無視して、4ビット目および6ビット目の偶数ビットをそれぞれ1ビットステージ281〜28Wへ順次出力する。
一方、参照データおよび検索データのビット数Kが6ビットである場合、スイッチング回路765のシフトレジスタ7652は、連続した3つのパルス波形からなる信号FSEL_SETをOR回路7651から端子CLKに受ける。
シフトレジスタ7652において、シフトレジスタ331は、信号FSEL_SETの1つ目のパルス波形が立ち上がった後に立ち下がると、“1”からなる選択信号F_SEL17を出力し、シフトレジスタ332〜338は、信号FSEL_SETの1つ目のパルス波形が立ち上がった後に立ち下がると、それぞれ、“0”からなる選択信号F_SEL16〜F_SEL10を出力する。
そして、シフトレジスタ7652において、シフトレジスタ332は、信号FSEL_SETの2つ目のパルス波形が立ち上がった後に立ち下がると、“1”からなる選択信号F_SEL16を出力し、シフトレジスタ331,333〜338は、信号FSEL_SETの2つ目のパルス波形が立ち上がった後に立ち下がると、それぞれ、“0”からなる選択信号F_SEL17,F_SEL15〜F_SEL10を出力する。
その後、シフトレジスタ7652において、シフトレジスタ333は、信号FSEL_SETの3つ目のパルス波形が立ち上がった後に立ち下がると、“1”からなる選択信号F_SEL15を出力し、シフトレジスタ331,332,334〜338は、信号FSEL_SETの3つ目のパルス波形が立ち上がった後に立ち下がると、それぞれ、“0”からなる選択信号F_SEL17,F_SEL16,F_SEL14〜F_SEL10を出力する。このように、シフトレジスタ7652は、信号FSEL_SETの連続する3つのパルス波形に応じて、選択信号F_SEL17〜F_SEL10の3つのパターンを連続して出力する。
そうすると、セレクタ7654,7655の各々は、選択信号F_SEL17=“1”,F_SEL16=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”、選択信号F_SEL16=“1”,F_SEL17=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”、および選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”を連続的に受ける。
そして、セレクタ7654は、最後に選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”を受けたときに、“1”からなる信号evenを受けるので、選択信号F_SEL1(=F_SEL15=“1”,F_SEL17=“0”,F_SEL13=“0”,F_SEL11=“0”,F_SEL10=“0”からなる)を段数可変分周器763へ出力する。ここで、参照データおよび検索データのビット数Kが6ビットであるので、セレクタ7654,7655は、“1”からなる信号evenを連想メモリ100Aの制御回路から受ける。
また、セレクタ7655は、最後に選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”を受けたときに、“1”からなる信号evenを受けるので、選択信号F_SEL2(=F_SEL16=“0”,F_SEL14=“0”,F_SEL12=“0”,F_SEL10=“0”からなる)を段数可変分周器769へ出力する。
発振回路751の1ビットステージ271〜27Wは、3ビット目の奇数ビットによって選択される遅延経路によって信号を遅延して発振信号を生成する。そして、1ビットステージ27Wは、その生成した発振信号を段数可変分周器763へ出力する。
そうすると、段数可変分周器763は、選択信号F_SEL1(=F_SEL15=“1”,F_SEL17=“0”,F_SEL13=“0”,F_SEL11=“0”,F_SEL10=“0”からなる)に応じて、1ビットステージ27Wから受けた発振信号を分周器7633〜7637によって2回分周し、ノードN94からNAND回路762および遅延回路764へ出力する。
一方、段数可変分周器769は、選択信号F_SEL2(=F_SEL16=“0”,F_SEL14=“0”,F_SEL12=“0”,F_SEL10=“0”からなる)に応じて、動作を停止する。
スイッチング回路765のシフトレジスタ7652は、信号FSEL_SETが3つ目のパルス波形によって立ち下がった後、信号SW_1を端子CLKに受け、信号SW_1が立ち上がった後に立ち下がると、“1”からなる選択信号F_SEL14および“0”からなる選択信号F_SEL17,F_SEL15,F_SEL13〜F_SEL10を出力する。
そして、スイッチング回路765のセレクタ7654は、“1”からなる信号evenを連想メモリ100Aの制御回路から受ける。その後、セレクタ7654は、“1”からなる選択信号F_SEL14、“0”からなる選択信号F_SEL17,F_SEL15,F_SEL13〜F_SEL10および“1”からなる信号evenに基づいて、選択信号F_SEL1(=F_SEL17=“0”,F_SEL15=“0”,F_SEL13=“0”,F_SEL11=“0”,F_SEL10=“0”からなる)を段数可変分周器763へ出力する。また、スイッチング回路765のセレクタ7655は、“1”からなる選択信号F_SEL14、“0”からなる選択信号F_SEL17,F_SEL15,F_SEL13〜F_SEL10および“1”からなる信号evenに基づいて、選択信号F_SEL2(=F_SEL16=“0”,F_SEL14=“1”,F_SEL12=“0”,F_SEL10=“0”からなる)を段数可変分周器769へ出力する。
発振回路752の1ビットステージ281〜28Wは、4ビット目の偶数ビットによって選択される遅延経路によって信号を遅延して発振信号を生成する。そして、1ビットステージ28Wは、その生成した発振信号を段数可変分周器769へ出力する。
そうすると、段数可変分周器763は、F_SEL1(=F_SEL17=“0”,F_SEL15=“0”,F_SEL13=“0”,F_SEL11=“0”,F_SEL10=“0”からなる)に動作を停止する。一方、段数可変分周器769は、選択信号F_SEL2(=F_SEL16=“0”,F_SEL14=“1”,F_SEL12=“0”,F_SEL10=“0”からなる)に応じて、1ビットステージ28Wから受けた発振信号を分周器7634〜7637によって2回分周し、ノードN94からNAND回路768および遅延回路770へ出力する。
その後、距離/時間変換回路DT’Bは、発振回路751による発振信号の生成および段数可変分周器763による発振信号の分周と、発振回路752による発振信号の生成および段数可変分周器769による発振信号の分周とを交互に行い、選択器780から発振信号Sを分周回路20へ出力する。
検索データおよび参照データのビット数Kが6ビットからなる場合、距離/時間変換回路DT’(=DT’B)〜DT’(=DT’B)も、上述した動作によって、それぞれ、発振信号S〜Sを生成し、その生成した発振信号S〜Sを分周回路20へ出力する。
このように、検索データおよび参照データのビット数Kが6ビットからなる場合、パスエンコーダPE’〜PE’からそれぞれ距離/時間変換回路DT’(=DT’B)〜DT’(=DT’B)へ入力される1ビット目の奇数ビットおよび2ビット目の偶数ビットを上述した方法によって実質的に無視することによって、距離/時間変換回路DT’(=DT’B)〜DT’(=DT’B)は、図32に示す回路構成を用いて、それぞれ、発振信号S〜Sを生成して分周回路20へ出力する。
また、検索データおよび参照データのビット数Kが4ビットからなる場合、信号SHIFT_ODDBIT_SET,SHIFT_evenBIT_SETの各々を連続する3つのパルス波形から構成し、信号FSEL_SETを連続する5つのパルス波形から構成することによって、距離/時間変換回路DT’(=DT’B)〜DT’(=DT’B)は、上述した方法によって、図32に示す回路構成を用いて、それぞれ、発振信号S〜Sを生成して分周回路20へ出力する。
更に、検索データおよび参照データのビット数Kが2ビットからなる場合、信号SHIFT_ODDBIT_SET,SHIFT_evenBIT_SETの各々を連続する4つのパルス波形から構成し、信号FSEL_SETを連続する7つのパルス波形から構成することによって、距離/時間変換回路DT’(=DT’B)〜DT’(=DT’B)は、上述した方法によって、図32に示す回路構成を用いて、それぞれ、発振信号S〜Sを生成して分周回路20へ出力する。
従って、検索データおよび参照データのビット数Kが2ビット、4ビット、6ビットおよび8ビットのいずれであっても、距離/時間変換回路DT’(=DT’B)〜DT’(=DT’B)は、上述した方法によって、図32に示す回路構成を用いて、それぞれ、発振信号S〜Sを生成して分周回路20へ出力できる。
図43は、図28に示す距離/時間変換回路の更に他の構成を示すブロック図である。距離/時間変換回路DT’は、図43に示す距離/時間変換回路DT’Cからなっていてもよい。
図43を参照して、距離/時間変換回路DT’Cは、図32に示す距離/時間変換回路DT’BのマルチプレクサMU11〜MU1WをマルチプレクサMU31〜MU3Wに代え、マルチプレクサMU21〜MU2WをマルチプレクサMU41〜MU4Wに代え、スイッチング制御回路760をスイッチング制御回路760Aに代え、選択器780を選択器780Aに代えたものであり、その他は、距離/時間変換回路DT’Bと同じである。
スイッチング制御回路760Aは、図32に示すスイッチング制御回路760の段数可変分周器763,769をそれぞれ段数可変分周器763A,769Aに代えたものであり、その他は、スイッチング制御回路760と同じである。
なお、距離/時間変換回路DT’Cにおいては、選択信号F_SEL1,F_SEL2の各々は、選択信号F_SEL17〜F_SEL10からなり、スイッチング回路765は、選択信号F_SEL1(=選択信号F_SEL17〜F_SEL10)を段数可変分周器763Aへ出力し、選択信号F_SEL2(=選択信号F_SEL17〜F_SEL10)を段数可変分周器769Aへ出力する。
マルチプレクサMU31〜MU3Wは、それぞれ、1ビットステージ271〜27Wに対応して配置される。マルチプレクサMU41〜MU4Wは、それぞれ、1ビットステージ281〜28Wに対応して配置される。
マルチプレクサMU31は、Kビットの距離信号M1,M2,・・・MKをパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU31は、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ271へ順次出力する。また、マルチプレクサMU31は、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ271へ順次出力する。
マルチプレクサMU32は、Kビットの距離信号M1,M2,・・・MKをパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU32は、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ272へ順次出力する。また、マルチプレクサMU32は、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ272へ順次出力する。
以下、同様にして、マルチプレクサMU3W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1をパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU3W−1は、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうちの奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・を1個ずつ1ビットステージ27W−1へ順次出力する。また、マルチプレクサMU3W−1は、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうちの偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・を1個ずつ1ビットステージ27W−1へ順次出力する。
マルチプレクサMU3Wは、Kビットの距離信号M1,M2,・・・MKをパスエンコーダPE’から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU3Wは、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ27Wへ順次出力する。また、マルチプレクサMU3Wは、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ27Wへ順次出力する。
一方、マルチプレクサMU41は、Kビットの距離信号M1,M2,・・・MKをパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU41は、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ281へ順次出力する。また、マルチプレクサMU41は、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ281へ順次出力する。
マルチプレクサMU42は、Kビットの距離信号M1,M2,・・・MKをパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU42は、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ282へ順次出力する。また、マルチプレクサMU42は、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ282へ順次出力する。
以下、同様にして、マルチプレクサMU4W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1をパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU4W−1は、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうちの偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・を1個ずつ1ビットステージ28W−1へ順次出力する。また、マルチプレクサMU4W−1は、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうちの奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・を1個ずつ1ビットステージ28W−1へ順次出力する。
マルチプレクサMU4Wは、Kビットの距離信号M1,M2,・・・MKをパスエンコーダPE’から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU4Wは、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの偶数ビットの距離信号M2,M4,M6,・・・を1個ずつ1ビットステージ28Wへ順次出力する。また、マルチプレクサMU4Wは、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1,M2,・・・MKのうちの奇数ビットの距離信号M1,M3,M5,・・・を1個ずつ1ビットステージ28Wへ順次出力する。
なお、距離/時間変換回路DT’Cにおいては、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETのパルス数は、信号SHIFT_evenBIT_SETのパルス数と同じであり、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETのパルス数は、信号SHIFT_ODDBIT_SETのパルス数よりも1個多い。
選択器780Aは、連想メモリ100Aの制御回路から信号evenを受け、信号out_1を段数可変分周器763Aから受け、信号out_2を段数可変分周器769Aから受ける。
そして、選択器780Aは、信号evenが“0”であるとき、信号out_1を発振信号Sとして分周回路20へ出力する。また、選択器780Aは、信号evenが“1”であるとき、信号out_2を発振信号Sとして分周回路20へ出力する。
なお、距離/時間変換回路DT’〜DT’の各々も、図43に示す距離/時間変換回路DT’Cからなる。
図44は、図43に示すマルチプレクサMU31の回路図である。図44を参照して、マルチプレクサMU31は、図33に示すマルチプレクサMU11に選択器101〜104を追加したものであり、その他は、マルチプレクサMU11と同じである。
選択器101〜104は、それぞれ、ゲート295〜298に接続される。選択器101は、1ビット目および2ビット目の距離信号をパスエンコーダPE’からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器101は、信号evenが“1”であるとき、1ビット目の距離信号をゲート295へ出力する。また、選択器101は、信号evenが“0”であるとき、2ビット目の距離信号をゲート295へ出力する。
選択器102は、3ビット目および4ビット目の距離信号をパスエンコーダPE’からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器102は、信号evenが“1”であるとき、3ビット目の距離信号をゲート296へ出力する。また、選択器102は、信号evenが“0”であるとき、4ビット目の距離信号をゲート296へ出力する。
選択器103は、5ビット目および6ビット目の距離信号をパスエンコーダPE’からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器103は、信号evenが“1”であるとき、5ビット目の距離信号をゲート297へ出力する。また、選択器103は、信号evenが“0”であるとき、6ビット目の距離信号をゲート297へ出力する。
選択器104は、7ビット目および8ビット目の距離信号をパスエンコーダPE’からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器104は、信号evenが“1”であるとき、6ビット目の距離信号をゲート298へ出力する。また、選択器104は、信号evenが“0”であるとき、8ビット目の距離信号をゲート298へ出力する。
なお、図43に示すマルチプレクサMU32〜MU3W,MU41〜MU4Wの各々も、図44に示すマルチプレクサMU31と同じ回路図からなる。そして、マルチプレクサMU41〜MU4Wの各々において、選択器101〜104の各々は、マルチプレクサMU31〜MU3Wにおける動作を逆転させた動作を行なう。即ち、マルチプレクサMU41〜MU4Wの各々において、選択器101〜104の各々は、信号evenが“1”であるとき、端子in2に受けた信号を出力し、信号evenが“0”であるとき、端子in1に受けた信号を出力する。また、マルチプレクサMU41〜MU4Wにおいては、OR回路290は、信号SW_2と信号SHIFT_evenBIT_SETとの論理和を演算し、その演算した論理和をシフトレジスタ291〜294の端子CLKへ出力する。
図45は、図43に示す段数可変分周器763Aの回路図である。図45を参照して、段数可変分周器763Aは、図35に示す段数可変分周器763にゲート7644,7646,7648を追加したものであり、その他は、段数可変分周器763と同じである。
段数可変分周器763Aにおいては、分周器7634およびゲート7644は、分周器7633の出力とインバータ7650の入力との間に直列に接続される。分周器7635およびゲート7645は、分周器7634の出力とインバータ7650の入力との間に直列に接続される。分周器7636およびゲート7646は、分周器7635の出力とインバータ7650の入力との間に直列に接続される。分周器7637およびゲート7647は、分周器7636の出力とインバータ7650の入力との間に直列に接続される。分周器7638およびゲート7648は、分周器7637の出力とインバータ7650の入力との間に直列に接続される。分周器7639およびゲート7649は、分周器7638の出力とインバータ7650の入力との間に直列に接続される。
ゲート7644,7646,7648は、スイッチング回路765からそれぞれ選択信号F_SEL12,F_SEL14,F_SEL16を受け、その受けた選択信号F_SEL12,F_SEL14,F_SEL16によって開閉される。より具体的には、ゲート7644,7646,7648は、それぞれ、“1”からなる選択信号F_SEL12,F_SEL14,F_SEL16によって開き、“0”からなる選択信号F_SEL12,F_SEL14,F_SEL16によって閉じる。
段数可変分周器763Aが駆動されるとき、“0”からなる信号F_actがNOR回路7631へ入力され、“0”からなる検索開始信号SBおよび“1”からなる反転信号/SBが分周器7634〜7639へ入力される。
そして、段数可変分周器763Aは、“1”からなる選択信号F_SEL11をゲート7643に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
また、段数可変分周器763Aは、“1”からなる選択信号F_SEL12をゲート7644に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633,7634によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL13をゲート7645に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7635によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL14をゲート7646に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7636によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL15をゲート7647に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7637によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL16をゲート7648に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7638によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL17をゲート7649に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7639によって2回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
その結果、段数可変分周器763Aは、“1”からなる選択信号F_SEL11〜F_SEL17をそれぞれゲート7643〜7649に受けることによって、発振信号をそれぞれ2,2,2,2,2,2,2回分周して遅延回路764およびフリップフロップ766へ出力する。
そして、段数可変分周器763Aは、“1”からなる選択信号F_SEL10をゲート7641に受けると、ノードN93から発振信号を分周回路20へ出力する。
このように、段数可変分周器763Aは、選択信号F_SEL11〜F_SEL17によって分周回数を切り換えて発振信号を分周する。
なお、図43に示す段数可変分周器769Aも、図45に示す段数可変分周器763Aと同じ回路図からなる。
距離/時間変換回路DT’Cを備えた連想メモリ100Aにおける検索が開始されると、ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの間の距離信号M1M2・・・MK,M1M2・・・MK,・・・,M1M2・・・MKをパスエンコーダPE’ヘ出力する。ユニット比較回路UC’21〜UC’2W,・・・,UC’R1〜UC’RWも、同様に、距離信号M1M2・・・MK,M1M2・・・MK,・・・,M1M2・・・MKをそれぞれパスエンコーダPE’〜PE’へ出力する。
パスエンコーダPE’は、上述した方法によって、距離信号M1M2・・・MKM1,M2・・・MK,・・・,M1M2・・・MKに基づいて、距離信号M1M1・・・M1,M2M2・・・M2,・・・,MKMK・・・MKを生成する。そして、パスエンコーダPE’は、距離信号M1M1・・・M1、距離信号M2M2・・・M2、・・・、距離信号MKMK・・・MKをそれぞれマルチプレクサMU31〜MU3Wへ順次出力し、距離信号M1M1・・・M1、距離信号M2M2・・・M2、・・・、距離信号MKMK・・・MKをそれぞれマルチプレクサMU41〜MU4Wへ順次出力する。パスエンコーダPE’〜PE’についても同様である。
距離/時間変換回路DT’(=距離/時間変換回路DT’C)において、マルチプレクサMU31は、距離信号M1,M2,M3,M4,M5,・・・,MKを順次受け、マルチプレクサMU32は、距離信号M1,M2,M3,M4,M5,・・・,MKを順次受け、以下、同様にして、マルチプレクサMU3W−1は、距離信号M1W−1,M2W−1,M3W−1,M4W−1,M5W−1,・・・、MKW−1を順次受け、マルチプレクサMU3Wは、距離信号M1,M2,M3,M4,M5,・・・,MKを順次受ける。
また、マルチプレクサMU41〜MU4Wは、それぞれ、マルチプレクサMU31〜MU3Wと同じ距離信号を順次受ける。
更に、マルチプレクサMU31〜MU3W,MU41〜MU4Wおよびスイッチング回路765は、“1”からなる信号evenを連想メモリ100Aの制御回路から受ける。
マルチプレクサMU31においては、選択器101は、1ビット目の距離信号M1および2ビット目の距離信号M2を受け、選択器102は、3ビット目の距離信号M3および4ビット目の距離信号M4を受け、選択器103は、5ビット目の距離信号M5および6ビット目の距離信号M6を受け、選択器104は、7ビット目の距離信号M7および8ビット目の距離信号M8を受ける。そして、選択器101〜104は、“1”からなる信号evenを受けているので、それぞれ、1ビット目の距離信号M1、3ビット目の距離信号M3、5ビット目の距離M5および7ビット目の距離信号M7をそれぞれゲート295〜298へ出力する。
一方、ゲート295は、“1”からなる信号EN11をシフトレジスタ291から受けるので、マルチプレクサMU31は、1ビット目の距離信号M1を1ビットステージ271へ出力する。また、ゲート296〜298は、それぞれ、“0”からなる信号EN12〜EN14をシフトレジスタ292〜294から受けるので、何も出力しない。その結果、マルチプレクサMU31は、1ビット目の距離信号M1を1ビットステージ271へ出力する。マルチプレクサMU32〜MU3Wも、同様に、それぞれ、1ビット目の距離信号M1〜M1を1ビットステージ272〜27Wへ出力する。
また、マルチプレクサMU41〜MU4Wも、同様に、それぞれ、1ビット目の距離信号M1〜M1を1ビットステージ281〜28Wへ出力する。
その後、“1”からなるイネーブル信号ENがEN選択回路761へ入力されると、選択器7611は、信号SW_1が“0”からなるので、“1”からなるイネーブル信号ENをOR回路7613へ出力し、OR回路7613は、端子EN2に受ける信号EN_1が“0”からなるので、“1”からなるイネーブル信号ENをNAND回路762へ出力する。
そして、NAND回路762は、“1”からなるイネーブル信号ENをEN選択回路761から受け、“0”からなる信号CH_1_outを段数可変分周器763Aから受ける。そうすると、NAND回路762は、“1”からなるイネーブル信号ENと、“0”からなる信号CH_1_outとの論理積を演算し、その演算した論理積を反転し、“1”からなる信号を1ビットステージ271へ出力する。
1ビットステージ271は、距離信号M1によって選択された遅延経路を用いて“1”からなる信号を遅延し、その遅延した信号を1ビットステージ272へ出力する。そして、1ビットステージ272〜27Wは、それぞれ、距離信号M1〜M1によって選択された遅延経路を用いて、1ビットステージ271〜27W−1からの出力信号を遅延して出力する。そして、1ビットステージ27Wは、出力信号CH_1_outを段数可変分周器763AのノードN91,N92を介してNAND回路762へ出力し、NAND回路762は、“1”からなるイネーブル信号ENと、信号CH_1_outとの論理積を演算し、その演算した論理積を反転して1ビットステージ271へ出力する。
その結果、1ビットステージ271〜27Wは、段数可変分周器763AおよびNAND回路762を介してリング状に接続され、発振信号を発振する。この場合、発振回路752は、上述したように、休止状態である。
そして、スイッチング回路765において、シフトレジスタ7652は、信号FSEL_SETが立ち上がった後に立ち下がると、選択信号F_SEL17=“1”および選択信号F_SEL16〜F_SEL10=“0”をセレクタ7654,7655へ出力する。また、セレクタ7654,7655は、“1”からなる信号evenを連想メモリ100Aの制御回路から受ける。
セレクタ7654は、選択信号F_SEL17=“1”および選択信号F_SEL16〜F_SEL10=“0”と、“1”からなる信号evenとに基づいて、選択信号F_SEL17=“1”,F_SEL16=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”を段数可変分周器763Aへ出力する。
また、セレクタ7655は、選択信号F_SEL17=“1”および選択信号F_SEL16〜F_SEL10=“0”と、“1”からなる信号evenとに基づいて、選択信号F_SEL17=F_SEL16=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”を段数可変分周器769Aへ出力する。
そうすると、段数可変分周器763Aは、選択信号F_SEL17=“1”, F_SEL16=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=F_SEL10=“0”をスイッチング回路765から受け、ゲート7641,7643〜7648が閉じ、ゲート7649のみが開く。
その結果は、発振回路751から出力された発振信号CH_1_outは、分周器7633〜7639によって2回分周され、段数可変分周器763Aは、2回分周後の信号Freq_out_1をノードN94から遅延回路764およびフリップフロップ766へ出力する。
そして、遅延回路764は、信号Freq_out_1をτだけ遅延して信号SW_1を生成し、その生成した信号SW_1をEN選択回路761、マルチプレクサMU31〜MU3W、スイッチング回路765およびフリップフロップ767へ出力する。
その後、マルチプレクサMU31〜MU3Wは、信号SW_1を受ける。そして、信号SW_1が、立ち上がった後に立ち下がると、シフトレジスタ292は、“1”からなる信号EN12をゲート296へ出力し、シフトレジスタ291,293,294は、それぞれ、“0”からなる信号EN11,EN13,EN14をゲート295,297,298へ出力する。その結果、マルチプレクサMU31は、3ビット目の距離信号M3を1ビットステージ271へ出力する。マルチプレクサMU32〜MU3Wも、同様にして、それぞれ3ビット目の距離信号M3〜M3を1ビットステージ272〜27Wへ出力する。
一方、フリップフロップ766は、信号Freq_out_1を段数可変分周器763Aから受けると、信号SW_2が“0”からなるので、信号Freq_out_1に基づいて信号EN_2を生成してNAND回路768へ出力する。
NAND回路768は、フリップフロップ766からの信号EN_2と、段数可変分周器769Aからの信号CH_2_out(=“0”)との論理積を演算し、その演算した論理積を反転して“1”からなる信号を1ビットステージ281へ出力する。
また、マルチプレクサMU41〜MU4Wは、それぞれ、2ビット目の距離信号M2〜M2を1ビットステージ281〜28Wへ出力する。
そして、1ビットステージ281〜28Wは、それぞれ、マルチプレクサMU41〜MU4Wから2ビット目の距離信号M2〜M2を受け、NAND回路768からの信号を2ビット目の距離信号M2〜M2に応じた遅延経路によって遅延して発振信号CH_2_outを発振し、その発振した発振信号CH_2_outを段数可変分周器769Aへ出力する。この場合、発振回路751は、上述したように、休止状態である。
一方、スイッチング回路765のシフトレジスタ7652は、信号SW_1が立ち下がると、選択信号F_SEL16=“1”,F_SEL17=F_SEL15〜F_SEL10=“0”をセレクタ7654,7655へ出力する。
また、セレクタ7654は、選択信号F_SEL16=“1”,F_SEL17=F_SEL15〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL16=“1”,F_SEL17=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=SEL10=“0”を段数可変分周器763Aへ出力する。更に、セレクタ7655は、選択信号F_SEL16=“1”,F_SEL17=F_SEL15〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL16=“1”および選択信号F_SEL17=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=SEL10=“0”を段数可変分周器769Aへ出力する。
そうすると、段数可変分周器769Aは、選択信号F_SEL16=“1”および選択信号F_SEL17=F_SEL15=F_SEL14=F_SEL13=F_SEL12=F_SEL11=SEL10=“0”を受け、ゲート7641,7643〜7647,7649が閉じ、ゲート7648のみが開く。
そして、段数可変分周器769Aは、発振信号CH_2_outを6個の分周器7633〜7638によって2回分周し、ノードN94から信号Freq_out_2をフリップフロップ767および遅延回路770へ出力する。
遅延回路770は、信号Freq_out_2をτだけ遅延して信号SW_2をマルチプレクサMU41〜MU4W、スイッチング回路765およびフリップフロップ766へ出力する。
マルチプレクサMU41〜MU4Wは、信号SW_2を受ける。そして、信号SW_2が、立ち上がった後に立ち下がると、シフトレジスタ292は、“1”からなる信号EN12をゲート296へ出力し、シフトレジスタ291,293,294は、それぞれ、“0”からなる信号EN11,EN13,EN14をゲート295,297,298へ出力する。その結果、マルチプレクサMU41は、4ビット目の距離信号M4を1ビットステージ281へ出力する。マルチプレクサMU42〜MU4Wも、同様にして、それぞれ4ビット目の距離信号M4〜M4を1ビットステージ282〜28Wへ出力する。
一方、フリップフロップ767は、信号Freq_out_2を受けると、その受けた信号Freq_out_2に基づいて、信号EN_1を生成し、その生成した信号EN_1をEN選択回路761へ出力する。
そして、信号SW_1=“0”であるので、選択器7611は、“0”からなる信号をOR回路7613へ出力し、OR回路7613は、“0”からなる信号と、“1”からなる信号EN_1とに基づいて、“1”からなる信号EN_1をNAND回路762へ出力する。
そして、NAND回路762は、“1”からなる信号EN_1と、段数可変分周器763Aからの信号CH_1_out(=“0”)との論理積を演算し、その演算した論理積を反転した“1”からなる信号を1ビットステージ271へ出力する。
1ビットステージ271〜27Wは、それぞれ、マルチプレクサMU11〜MU1Wから3ビット目の距離信号M3〜M3を受けている。
従って、1ビットステージ271〜27Wは、それぞれ、3ビット目の距離信号M3〜M3によって選択された遅延経路を用いて信号を遅延し、発振信号CH_1_outを発振し、その発振した発振信号CH_1_outを段数可変分周器763Aへ出力する。この場合、発振回路752は、上述したように、休止状態である。
一方、スイッチング回路765のシフトレジスタ7652は、信号SW_2が立ち下がると、選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14〜F_SEL10=“0”をセレクタ7654,7655へ出力する。
セレクタ7654は、選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL15=“1”および選択信号F_SEL17=F_SEL16=F_SEL14=F_SEL13=F_SEL12=F_SEL11=SEL10=“0”を段数可変分周器763Aへ出力する。また、セレクタ7655は、選択信号F_SEL15=“1”,F_SEL17=F_SEL16=F_SEL14〜F_SEL10=“0”および“1”からなる信号evenに基づいて、選択信号F_SEL15=“1”および選択信号F_SEL17=F_SEL16=F_SEL14=F_SEL13=F_SEL12=F_SEL11=SEL10=“0”を段数可変分周器769Aへ出力する。
そうすると、段数可変分周器763Aは、選択信号F_SEL15=“1”および選択信号F_SEL17=F_SEL16=F_SEL14=F_SEL13=F_SEL12=F_SEL11=SEL10=“0”を受け、ゲート7641,7643〜7646,7648,7649が閉じ、ゲート7647のみが開く。
そして、段数可変分周器763Aは、発振信号CH_1_outを5個の分周器7633〜7637によって2回分周し、信号Freq_out_1をノードN94から遅延回路764およびフリップフロップ766へ出力する。
遅延回路764は、信号Freq_out_1をτだけ遅延して信号SW_1をマルチプレクサMU31〜MU3W、EN選択回路761、スイッチング回路765Aおよびフリップフロップ767へ出力する。
以後、上述した動作が繰り返し行われ、発振回路751,752は、交互に発振信号を発振し、段数可変分周器763Aは、発振回路751からの発振信号を2回、2回、2回、および2回分周し、段数可変分周器769Aは、発振回路752からの発振信号を2回、2回、2回および1回分周する。そして、段数可変分器器769Aにおける分周が終了すると、スイッチング回路765は、選択信号F_SEL17〜F_SEL11=“0”および選択信号F_SEL10=“1”を段数可変分周器763A,769Aへ出力する。
そうすると、段数可変分周器763Aは、選択信号F_SEL17〜F_SEL11=“0”および選択信号F_SEL10=“1”に基づいて、2回、2回、2回、および2回分周を順次実行した後の発振信号を信号out_1として選択器780Aへ出力する。また、段数可変分周器769Aは、選択信号F_SEL17〜F_SEL11=“0”および選択信号F_SEL10=“1”に基づいて、2回、2回、2回および1回分周を順次実行した後の発振信号を信号out_2として選択器780Aへ出力する。
そして、選択器780Aは、“1”からなる信号evenに応じて、信号out_2を選択し、その選択した信号out_2を発振信号Sとして分周回路20へ出力する。
なお、距離/時間変換回路DT’〜DT’の各々も、上述した動作を実行し、それぞれ、発振信号S〜Sを分周回路20へ出力する。
分周回路20および時間領域WTA回路30における動作は、上述したとおりである。
上記においては、Kビットの距離信号が8ビットである場合について説明したが、距離/時間変換回路DT’Cを備えた連想メモリ100Aは、8ビットの距離信号に限らず、マンハッタン距離が7ビット、6ビット、5ビット、4ビット、3ビットおよび2ビットのいずれであっても、検索データに類似する参照データを検索できる。
そして、マンハッタン距離が8ビット、7ビット、6ビット、5ビット、4ビット、3ビットおよび2ビットのいずれであるかは、信号SHIFT_ODDBIT_SETおよび信号SHIFT_evenBIT_SETのパルス数によって設定される。
以下、具体的に説明する。
マンハッタン距離が8ビット、6ビット、4ビットおよび2ビットである場合、信号evenは、“1”からなり、信号SHIFT_ODDBIT_SETおよび信号SHIFT_evenBIT_SETのパルス数は、それぞれ、1個、2個、3個および4個からなる。即ち、マンハッタン距離が偶数のビット数からなる場合、信号SHIFT_evenBIT_SETのパルス数は、信号SHIFT_ODDBIT_SETのパルス数と同じである。
また、マンハッタン距離が7ビット、5ビット、3ビットである場合、信号evenは、”0“からなり、信号SHIFT_ODDBIT_SETのパルス数は、それぞれ、1個、2個および3個からなり、信号SHIFT_evenBIT_SETのパルス数は、それぞれ、2個、3個および4個からなる。即ち、マンハッタン距離が奇数のビット数からなる場合、信号SHIFT_evenBIT_SETのパルス数は、信号SHIFT_ODDBIT_SETのパルス数よりも1個だけ多い。
マンハッタン距離が8ビットである場合、信号evenが“1”であり、信号SHIFT_ODDBIT_SETおよび信号SHIFT_evenBIT_SETのパルス数は、1個である。この場合、上述した動作によって検索データに類似する参照データを検索できる。
[マンハッタン距離が7ビットである場合の検索]
マンハッタン距離が7ビットである場合、信号evenは、“0”からなり、信号SHIFT_ODDBIT_SETのパルス数が1個であり、信号SHIFT_evenBIT_SETのパルス数が2個である。そして、マルチプレクサMU31〜MU3Wは、“0”からなる信号evenおよびパルス数が1個の信号SHIFT_ODDBIT_SETに応じて、2ビット目の距離信号、4ビット目の距離信号、6ビット目の距離信号および8ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力する。
一方、マルチプレクサMU41〜MU4Wは、“0”からなる信号evenおよびパルス数が2個の信号SHIFT_evenBIT_SETに応じて、3ビット目、5ビット目および7ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力する。この場合、マルチプレクサMU41〜MU4Wの各々においては、シフトレジスタ291は、2個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU41〜MU4Wは、3ビット目、5ビット目および7ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力することになる。
従って、マンハッタン距離が7ビットである場合、上述した動作によって検索データに類似する参照データを検索できる。この場合、選択器780Aは、“0”からなる信号evenに応じて、段数可変分周器763Aからの信号out_1を発振信号Sとして分周回路20へ出力する。
[マンハッタン距離が6ビットである場合の検索]
マンハッタン距離が6ビットである場合、信号evenは、“1”からなり、信号SHIFT_ODDBIT_SETおよび信号SHIFT_evenBIT_SETのパルス数が2個である。そして、マルチプレクサMU31〜MU3Wは、“1”からなる信号evenおよびパルス数が2個の信号SHIFT_ODDBIT_SETに応じて、3ビット目の距離信号、5ビット目の距離信号および7ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力する。この場合、マルチプレクサMU31〜MU3Wの各々においては、シフトレジスタ291は、2個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU31〜MU3Wは、3ビット目の距離信号、5ビット目の距離信号および7ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力することになる。
一方、マルチプレクサMU41〜MU4Wは、“1”からなる信号evenおよびパルス数が2個の信号SHIFT_evenBIT_SETに応じて、4ビット目、6ビット目および8ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力する。この場合、マルチプレクサMU41〜MU4Wの各々においては、シフトレジスタ291は、2個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU41〜MU4Wは、4ビット目、6ビット目および8ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力することになる。
従って、マンハッタン距離が6ビットである場合、上述した動作によって検索データに類似する参照データを検索できる。この場合、選択器780Aは、“1”からなる信号evenに応じて、段数可変分周器769Aからの信号out_2を発振信号Sとして分周回路20へ出力する。
[マンハッタン距離が5ビットである場合の検索]
マンハッタン距離が5ビットである場合、信号evenは、“0”からなり、信号SHIFT_ODDBIT_SETのパルス数が2個であり、信号SHIFT_evenBIT_SETのパルス数が3個である。そして、マルチプレクサMU31〜MU3Wは、“0”からなる信号evenおよびパルス数が2個の信号SHIFT_ODDBIT_SETに応じて、4ビット目の距離信号、6ビット目の距離信号および8ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力する。この場合、マルチプレクサMU31〜MU3Wの各々においては、シフトレジスタ291は、2個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU31〜MU3Wは、4ビット目の距離信号、6ビット目の距離信号および8ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力することになる。
一方、マルチプレクサMU41〜MU4Wは、“0”からなる信号evenおよびパルス数が3個の信号SHIFT_evenBIT_SETに応じて、5ビット目および7ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力する。この場合、マルチプレクサMU41〜MU4Wの各々においては、シフトレジスタ291,292は、3個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU41〜MU4Wは、5ビット目および7ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力することになる。
従って、マンハッタン距離が5ビットである場合、上述した動作によって検索データに類似する参照データを検索できる。この場合、選択器780Aは、“0”からなる信号evenに応じて、段数可変分周器763Aからの信号out_1を発振信号Sとして分周回路20へ出力する。
[マンハッタン距離が4ビットである場合の検索]
マンハッタン距離が4ビットである場合、信号evenは、“1”からなり、信号SHIFT_ODDBIT_SETおよび信号SHIFT_evenBIT_SETのパルス数が3個である。そして、マルチプレクサMU31〜MU3Wは、“1”からなる信号evenおよびパルス数が3個の信号SHIFT_ODDBIT_SETに応じて、5ビット目の距離信号および7ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力する。この場合、マルチプレクサMU31〜MU3Wの各々においては、シフトレジスタ291,292は、3個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU31〜MU3Wは、5ビット目の距離信号および7ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力することになる。
一方、マルチプレクサMU41〜MU4Wは、“1”からなる信号evenおよびパルス数が3個の信号SHIFT_evenBIT_SETに応じて、6ビット目および8ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力する。この場合、マルチプレクサMU41〜MU4Wの各々においては、シフトレジスタ291,292は、3個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU41〜MU4Wは、6ビット目および8ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ順次出力することになる。
従って、マンハッタン距離が4ビットである場合、上述した動作によって検索データに類似する参照データを検索できる。この場合、選択器780Aは、“1”からなる信号evenに応じて、段数可変分周器769Aからの信号out_2を発振信号Sとして分周回路20へ出力する。
[マンハッタン距離が3ビットである場合の検索]
マンハッタン距離が3ビットである場合、信号evenは、“0”からなり、信号SHIFT_ODDBIT_SETのパルス数が3個であり、信号SHIFT_evenBIT_SETのパルス数が4個である。そして、マルチプレクサMU31〜MU3Wは、“0”からなる信号evenおよびパルス数が3個の信号SHIFT_ODDBIT_SETに応じて、6ビット目の距離信号および8ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力する。この場合、マルチプレクサMU31〜MU3Wの各々においては、シフトレジスタ291,292は、3個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU31〜MU3Wは、6ビット目の距離信号および8ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ順次出力することになる。
一方、マルチプレクサMU41〜MU4Wは、“0”からなる信号evenおよびパルス数が4個の信号SHIFT_evenBIT_SETに応じて、7ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ出力する。この場合、マルチプレクサMU41〜MU4Wの各々においては、シフトレジスタ291〜293は、3個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU41〜MU4Wは、7ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ出力することになる。
従って、マンハッタン距離が3ビットである場合、上述した動作によって検索データに類似する参照データを検索できる。この場合、選択器780Aは、“0”からなる信号evenに応じて、段数可変分周器763Aからの信号out_1を発振信号Sとして分周回路20へ出力する。
[マンハッタン距離が2ビットである場合の検索]
マンハッタン距離が2ビットである場合、信号evenは、“1”からなり、信号SHIFT_ODDBIT_SETおよび信号SHIFT_evenBIT_SETのパルス数が4個である。そして、マルチプレクサMU31〜MU3Wは、“1”からなる信号evenおよびパルス数が4個の信号SHIFT_ODDBIT_SETに応じて、7ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ出力する。この場合、マルチプレクサMU31〜MU3Wの各々においては、シフトレジスタ291〜293は、4個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU31〜MU3Wは、7ビット目の距離信号をそれぞれ1ビットステージ271〜27Wへ出力することになる。
一方、マルチプレクサMU41〜MU4Wは、“1”からなる信号evenおよびパルス数が4個の信号SHIFT_evenBIT_SETに応じて、8ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ出力する。この場合、マルチプレクサMU41〜MU4Wの各々においては、シフトレジスタ291〜293は、4個のパルスによって飛ばされるので(実質的に無視されるので)、マルチプレクサMU41〜MU4Wは、8ビット目の距離信号をそれぞれ1ビットステージ281〜28Wへ出力することになる。
従って、マンハッタン距離が2ビットである場合、上述した動作によって検索データに類似する参照データを検索できる。この場合、選択器780Aは、“1”からなる信号evenに応じて、段数可変分周器769Aからの信号out_2を発振信号Sとして分周回路20へ出力する。
このように、距離/時間変換回路DT’Cを備えた連想メモリ100Aは、マンハッタン距離が2ビット以上である場合について、検索データに類似する参照データを検索できる。
上記においては、マンハッタン距離の最大ビット数は、8ビットであると説明したが、この発明の実施の形態においては、これに限らず、マンハッタン距離のビット数は、2以上の任意のビット数であればよい。そして、マンハッタン距離のビット数が8ビットよりも多い場合、マンハッタン距離のビット数に応じて、マルチプレクサMU31〜MU3W,MU41〜MU4Wにおけるシフトレジスタ、ゲートおよび選択器の個数を増やせばよい。
また、上記においては、ユニット比較回路UC’11〜UC’1W,UC’21〜UC’2W,・・・,UC’R1〜UC’RWは、マンハッタン距離を用いて参照データと検索データとの間の距離を演算すると説明したが、この発明の実施の形態においては、これに限らず、ユニット比較回路UC’11〜UC’1W,UC’21〜UC’2W,・・・,UC’R1〜UC’RWは、ユークリッド距離、標準ユークリッド距離、マハラノビス距離、チェビシェフ距離およびミンコフスキー距離のいずれかを用いて参照データと検索データとの間の距離を演算してもよい。
実施の形態2におけるその他の説明は、実施の形態1における説明と同じである。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
この発明は、連想メモリに適用される。
1 メモリ部、2 行ココーダ、3 列デコーダ、4 読出/書込回路、5 検索データ保存回路、10 メモリアレイ部、20 分周回路、30 時間領域WTA回路、100 連想メモリ、SC11〜SC1W,SC21〜SC2W,・・・,SCR1〜SCRW 参照データ保存回路、UC11〜UC1W,UC21〜UC2W,・・・,UCR1〜UCRW ユニット比較回路、PE〜PE パスエンコーダ、DT〜DT 距離/時間変換回路。

Claims (9)

  1. 各々がW(Wは2以上の整数)ビットのビット長を有するR(Rは2以上の整数)個の参照データを保存する参照データ保存回路と、
    Wビットのビット長を有し、かつ、検索対象である検索データを前記R個の参照データの各々とビット毎に比較し、各々が前記検索データと前記参照データとの間の距離を表し、かつ、Wビットのビット値からなるR個の距離信号を前記検索データと前記R個の参照データとの比較結果として出力する比較回路と、
    前記R個の距離信号に対応して設けられ、各々がk(kは、W/Nまたは(W/N)+1を満たす整数、Nは、3以上の整数)個の遅延回路をリング状に接続した発振回路を含むR個の変換回路と、
    前記R個の距離信号および前記R個の変換回路に対応して設けられ、各々がk個の経路選択回路を含むR個の選択回路と、
    前記R個の変換回路から出力されたR個の出力信号のうち、最も早く変化する出力信号を検出し、その検出した出力信号を前記検索データに最も類似した参照データを示す信号として出力する検出回路とを備え、
    前記R個の選択回路の各々は、対応するWビットの距離信号によって表される距離が小さいほど前記k個の遅延回路における遅延時間が短くなり、かつ、前記対応するWビットの距離信号によって表される距離が大きいほど前記k個の遅延回路における遅延時間が長くなるように前記k個の遅延回路の各々におけるN+1個の遅延経路から1つの遅延経路を選択するためのk個の選択信号を前記対応するWビットの距離信号に基づいて生成し、その生成したk個の選択信号を前記対応する変換回路へ出力し、
    前記R個の変換回路の各々は、前記対応する選択回路から前記k個の選択信号を受けると、その受けたk個の選択信号によって選択されたk個の遅延経路を介して発振し、その発振した発振信号を出力信号として前記検出回路へ出力する、連想メモリ。
  2. 前記R個の変換回路から出力されたR個の出力信号を分周し、その分周したR個の出力信号を前記検出回路へ出力する分周器をさらに備える、請求項1に記載の連想メモリ。
  3. 前記k個の経路選択回路は、前記k個の遅延回路に対応して設けられ、
    前記k個の経路選択回路の各々は、前記k個の経路選択回路が含まれる選択回路へ出力されるWビットの距離信号のうち、Nビットの距離信号を受け、その受けたNビットの距離信号によって表される距離が小さいほど遅延時間が短くなり、かつ、前記受けたNビットの距離信号によって表される距離が大きいほど遅延時間が長くなるように前記N+1個の遅延経路から1つの遅延経路を選択するための選択信号を生成し、その生成した選択信号を前記対応する遅延回路へ出力し、
    前記k個の遅延回路の各々は、前記N+1個の遅延経路を含み、前記対応する経路選択回路から前記選択信号を受けると、その受けた選択信号によって選択された前記1つの遅延経路によって信号を遅延して出力する、請求項1または請求項2に記載の連想メモリ。
  4. 前記k個の遅延回路の各々は、
    入力ノードと、
    出力ノードと、
    前記入力ノードと前記出力ノードとの間に接続された第1のゲートからなる第1の遅延経路と、
    各々が、前記入力ノード側に配置された第2のゲートと、前記出力ノードに接続された第3のゲートと、前記第2のゲートと前記第3のゲートとの間に接続された遅延器とからなるN個の遅延経路とを含み、
    前記N個の遅延経路のうち、前記第1の遅延経路に隣接する第2の遅延経路の前記第2のゲートは、前記入力ノードに接続され、
    前記N個の遅延経路のうち、前記第2の遅延経路以外のN−1個の遅延経路に含まれるN−1個の前記第2のゲートは、それぞれ、前記第1の遅延経路側で隣接する遅延経路に含まれる前記遅延器の出力側に接続され、
    前記第1のゲート、前記N個の第2のゲートおよび前記N個の第3のゲートは、前記Nビットの距離信号によって表される距離がd(d=0,1,2,・・・,N)であるとき前記入力ノードからi個の前記遅延器を介して前記出力ノードへ信号が出力されるように前記選択信号によって開閉される、請求項3に記載の連想メモリ。
  5. 前記k個の経路選択回路の各々は、
    直列に接続されたN−1個の第1の選択信号生成回路と、
    前記N−1個の第1の選択信号生成回路のうち、入力側からN−1番目の第1の選択信号生成回路から出力されたN個の出力信号に基づいて、前記第1の遅延経路から最も離れた位置に配置された第N+1番目の遅延経路に含まれる前記第3のゲートと前記第1のゲートとを除いたN−2個の前記第3のゲートを開閉するN−2個の第1の選択信号と、前記N個の第2のゲートを開閉するN個の第2の選択信号とを生成する第2の選択信号生成回路とを含み、
    前記N−1個の第1の選択信号生成回路は、
    前記Wビットの距離信号のうちの第1および第2番目のビット値に基づいて2個の選択信号を生成する第1の信号生成回路と、
    各々が、m(mは2≦m≦N−1を満たす整数)個の選択信号と、前記Wビットの距離信号のうちの第n(nは3≦n≦Nを満たす整数)番目のビット値とに基づいてm+1個の選択信号を生成するN−2個の第2の信号生成回路とを含み、
    前記N−2個の第2の信号生成回路の各々は、前記第1の信号生成回路、または前記第1の信号生成回路側の第2の信号生成回路から前記m個の選択信号を受け、
    前記第2の選択信号生成回路は、前記N−2個の第1の選択信号を前記N−2個の第3のゲートへ出力し、前記N個の第2の選択信号を前記N個の第2のゲートへ出力し、前記第2の遅延経路に含まれる前記第2のゲートへ出力する前記第2の選択信号の反転信号を前記第1のゲートへ出力し、前記第N+1番目の遅延経路に含まれる前記第2のゲートへ出力する前記第2の選択信号と同じ選択信号を前記第N+1番目の遅延経路に含まれる前記第3のゲートへ出力する、請求項4に記載の連想メモリ。
  6. K(Kは2以上の整数)ビットのビット長を有する参照データを列方向にW(Wは2以上の整数)個配列し、かつ、行方向にR(Rは2以上の整数)個配列してW×R個の参照データを保存する参照データ保存回路と、
    Kビットのビット長を有し、かつ、検索対象である検索データを前記W×R個の参照データの各々とビット毎に比較し、各々が前記検索データと前記参照データとの間の距離を表し、かつ、各々がKビットのビット値からなるW×R個の距離信号を前記検索データと前記W×R個の参照データとの比較結果として出力する比較回路と、
    各々が前記列方向に配列されたW個の参照データと前記検索データとの比較結果を示すR個の距離信号に対応して設けられたR個の変換回路と、
    前記R個の距離信号および前記R個の変換回路に対応して設けられたR個の選択回路と、
    前記R個の変換回路から出力されたR個の出力信号のうち、最も早く変化する出力信号を検出し、その検出した出力信号を前記検索データに最も類似した参照データを示す信号として出力する検出回路とを備え、
    前記R個の選択回路の各々は、前記R個の距離信号のうち、対応する距離信号のW×K個のビット値に基づいて、前記参照データと前記検索データとの同位ビット同士が異なるとき第1の遅延時間を有する第1の遅延経路を選択し、前記同位ビット同士が一致するとき前記第1の遅延時間よりも短い第2の遅延時間を有する第2の遅延経路を選択するための選択信号を生成し、
    前記R個の変換回路の各々は、前記対応する選択回路から受けた選択信号によって選択された前記第1の遅延経路または前記第2の遅延経路を用いて、前記参照データと前記検索データとの最上位ビット同士の距離を示す第1の距離信号から前記参照データと前記検索データとの最下位ビット同士の距離を示す第2の距離信号に向かって遅延時間が順次短くなり、かつ、周波数が順次高くなるように前記第1の距離信号から前記第2の距離信号に向かって前記距離信号を発振信号に順次変換し、その変換した発振信号を出力信号として前記検出回路へ出力する、連想メモリ。
  7. 前記R個の変換回路の各々は、
    各々がリング状に接続されたW個の遅延回路を含み、前記参照データおよび前記検索データのK個のビット位に対応して配置されたK個の発振回路と、
    各々が隣接する2つの発振回路間に配置され、前記K個の発振回路を直列に接続するK−1個の選択器と、
    前記直列に接続されたK個の発振回路のうちの一方端の発振回路と他方端の発振回路との間に配置され、当該変換回路を活性化するための活性化信号を前記一方端の発振回路へ出力する活性化回路とを含み、
    前記K−1の選択器の各々は、前記2つの発振回路のうちの一方の発振回路の出力信号を入力信号として前記一方の発振回路へ出力するとともに、前記一方の発振回路への出力回数が所望回数に達すると、前記一方の発振回路の出力信号を前記2つの発振回路のうちの他方の発振回路へ出力し、
    前記W個の遅延回路の各々は、前記第1および第2の遅延経路を有し、前記選択信号によって選択された前記第1または第2の遅延経路を用いて入力信号を遅延して隣接する遅延回路へ出力し、
    前記K個の発振回路は、前記一方端の発振回路から前記他方端の発振回路へ向かうに従って前記第1の遅延経路における前記第1の遅延時間が順次短くなっており、
    前記R個の選択回路の各々は、前記W×K個のビット値に基づいて、前記W個の参照データと前記検索データとの同位ビット同士の比較結果を示すWビットの距離信号をK個生成し、その生成したK個のWビットの距離信号に基づいて、各々が前記Wビットの距離信号によって表される距離が大きいほど遅延時間が長くなり、かつ、前記Wビットの距離信号によって表される距離が小さいほど遅延時間が短くなるように前記第1または第2の遅延経路を選択するためのK個の選択信号を生成し、各選択信号が各ビット位に対応して配置された発振回路へ出力されるように前記生成したK個の選択信号をそれぞれ前記K個の発振回路へ出力する、請求項6に記載の連想メモリ。
  8. 前記R個の変換回路の各々は、
    各々がリング状に接続されたW個の遅延回路を含み、前記参照データおよび前記検索データのK個のビット位に対応して配置されたK個の発振回路と、
    各々が隣接する2つの発振回路間に配置され、前記K個の発振回路を直列に接続するK−1個の分周器と、
    前記直列に接続されたK個の発振回路のうちの一方端の発振回路と他方端の発振回路との間に配置され、当該変換回路を活性化するための活性化信号を前記一方端の発振回路へ出力する活性化回路とを含み、
    前記K−1の分周器の各々は、前記2つの発振回路のうちの一方の発振回路の出力信号を分周して前記一方の発振回路へ出力するとともに、分周回数が所望回数に達すると、分周後の信号を前記2つの発振回路のうちの他方の発振回路へ出力し、
    前記W個の遅延回路の各々は、前記第1および第2の遅延経路を有し、前記選択信号によって選択された前記第1または第2の遅延経路を用いて入力信号を遅延して隣接する遅延回路へ出力し、
    前記W個の遅延回路に含まれるW個の前記第1の遅延経路におけるW個の前記第1の遅延時間は、相互に同じであり、
    前記K−1個の分周器は、前記一方端の発振回路の出力信号を受ける分周器から前記他方端の発振回路へ信号を出力する分周器に向かうに従って分周回数が減少し、
    前記R個の選択回路の各々は、前記W×K個のビット値に基づいて、前記W個の参照データと前記検索データとの同位ビット同士の比較結果を示すWビットの距離信号をK個生成し、その生成したK個のWビットの距離信号に基づいて、各々が前記Wビットの距離信号によって表される距離が大きいほど遅延時間が長くなり、かつ、前記Wビットの距離信号によって表される距離が小さいほど遅延時間が短くなるように前記第1または第2の遅延経路を選択するためのK個の選択信号を生成し、各選択信号が各ビット位に対応して配置された発振回路へ出力されるように前記生成したK個の選択信号をそれぞれ前記K個の発振回路へ出力する、請求項6に記載の連想メモリ。
  9. 前記R個の変換回路の各々は、
    各々が前記第1および第2の遅延経路を有し、リング状に接続されたW個の遅延回路を含む第1の発振回路と、
    各々が前記第1および第2の遅延経路を有し、リング状に接続されたW個の遅延回路を含む第2の発振回路と、
    前記第1の発振回路の出力信号を所望回数だけ分周し、その分周した信号を前記第2の発振回路へ出力する第1の分周器と、
    前記第2の発振回路の出力信号を所望回数だけ分周し、その分周した信号を前記第1の発振回路へ出力する第2の分周器と、
    前記第2の分周器と前記第1の発振回路との間に配置され、当該変換回路を活性化するための活性化信号を前記第1の発振回路へ出力する活性化回路とを含み、
    前記第1の分周器は、前記参照データと前記検索データとの最上位ビットから奇数番目のビット同士の比較結果を示す第1の距離信号を変換した発振信号を前記第1の発振回路から受け、前記第1の距離信号がより下位のビット同士の比較結果を示すほど少ない回数だけ前記受けた発振信号を分周して前記第2の発振回路へ出力し、
    前記第2の分周器は、前記参照データと前記検索データとの最上位ビットから偶数番目のビット同士の比較結果を示す第2の距離信号を変換した発振信号を前記第2の発振回路から受け、前記第2の距離信号がより下位のビット同士の比較結果を示すほど少ない回数だけ前記受けた発振信号を分周して前記第1の発振回路へ出力し、
    前記R個の選択回路の各々は、前記W×K個のビット値に基づいて、前記W個の参照データと前記検索データとの同位ビット同士の比較結果を示すWビットの距離信号をK個生成し、その生成したK個のWビットの距離信号に基づいて、各々が前記Wビットの距離信号によって表される距離が大きいほど遅延時間が長くなり、かつ、前記Wビットの距離信号によって表される距離が小さいほど遅延時間が短くなるように前記第1または第2の遅延経路を選択するためのK個の選択信号を生成し、前記第1の距離信号に基づいて生成された選択信号が前記第1の発振回路へ出力され、前記第2の距離信号に基づいて生成された選択信号が前記第2の発振回路へ出力されるように前記K個の選択信号を交互に前記第1および第2の発振回路へ出力する、請求項6に記載の連想メモリ。
JP2011243733A 2011-11-07 2011-11-07 連想メモリ Expired - Fee Related JP5800422B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011243733A JP5800422B2 (ja) 2011-11-07 2011-11-07 連想メモリ
US13/466,381 US8937828B2 (en) 2011-11-07 2012-05-08 Associative memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011243733A JP5800422B2 (ja) 2011-11-07 2011-11-07 連想メモリ

Publications (2)

Publication Number Publication Date
JP2013101729A true JP2013101729A (ja) 2013-05-23
JP5800422B2 JP5800422B2 (ja) 2015-10-28

Family

ID=48223558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011243733A Expired - Fee Related JP5800422B2 (ja) 2011-11-07 2011-11-07 連想メモリ

Country Status (2)

Country Link
US (1) US8937828B2 (ja)
JP (1) JP5800422B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014030383A1 (ja) * 2012-08-23 2014-02-27 国立大学法人広島大学 連想メモリ
JP2015149113A (ja) * 2014-02-07 2015-08-20 国立大学法人広島大学 連想メモリ
JP2015162257A (ja) * 2014-02-27 2015-09-07 国立大学法人広島大学 再構成可能連想メモリ

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017170340A1 (ja) * 2016-03-28 2017-10-05 国立大学法人東北大学 メモリ装置
JP6888787B2 (ja) * 2016-05-13 2021-06-16 国立大学法人東北大学 メモリ装置及びメモリシステム
CN109947764B (zh) * 2017-09-18 2020-12-22 中国科学院声学研究所 一种基于时延构建弹性现场的查询增强系统及方法
JP7475080B2 (ja) 2020-04-01 2024-04-26 義憲 岡島 曖昧検索回路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03248396A (ja) * 1990-02-26 1991-11-06 Matsushita Electric Ind Co Ltd 連想メモリ装置
WO2011040335A1 (ja) * 2009-10-01 2011-04-07 国立大学法人広島大学 連想メモリ
WO2014030383A1 (ja) * 2012-08-23 2014-02-27 国立大学法人広島大学 連想メモリ
JP2014154196A (ja) * 2013-02-13 2014-08-25 Hiroshima Univ 連想メモリ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60211761T2 (de) * 2001-01-19 2007-05-24 President Of Hiroshima University, Higashihiroshima Inhaltsadressierbarer Halbleiterspeicher
JP2005209317A (ja) * 2004-01-26 2005-08-04 Hiroshima Univ 最小マンハッタン距離検索連想メモリ装置
US7852652B1 (en) * 2007-06-29 2010-12-14 Netlogic Microsystems, Inc. Match line precharge circuits and methods for content addressable memory (CAM) device
JP4427574B2 (ja) * 2007-11-30 2010-03-10 国立大学法人広島大学 連想メモリおよびそれを用いた検索システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03248396A (ja) * 1990-02-26 1991-11-06 Matsushita Electric Ind Co Ltd 連想メモリ装置
WO2011040335A1 (ja) * 2009-10-01 2011-04-07 国立大学法人広島大学 連想メモリ
WO2014030383A1 (ja) * 2012-08-23 2014-02-27 国立大学法人広島大学 連想メモリ
JP2014154196A (ja) * 2013-02-13 2014-08-25 Hiroshima Univ 連想メモリ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010074065; H. J. Mattausch, et al.: '"Low-Power Word-Parallel Nearest-Hamming-Distance Search Circuit based on Frequency Mapping"' Proceedings of the 36th European Solid-State Circuits Conference (ESSCIRC 2010) , 20100914, pp.538 - 541, IEEE *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014030383A1 (ja) * 2012-08-23 2014-02-27 国立大学法人広島大学 連想メモリ
JP2015149113A (ja) * 2014-02-07 2015-08-20 国立大学法人広島大学 連想メモリ
JP2015162257A (ja) * 2014-02-27 2015-09-07 国立大学法人広島大学 再構成可能連想メモリ

Also Published As

Publication number Publication date
US20130114322A1 (en) 2013-05-09
JP5800422B2 (ja) 2015-10-28
US8937828B2 (en) 2015-01-20

Similar Documents

Publication Publication Date Title
JP5800422B2 (ja) 連想メモリ
US7818538B2 (en) Hashing and serial decoding techniques
JP5224601B2 (ja) 連想メモリ
WO1999023664A1 (en) Synchronous content addressable memory with single cycle operation
JP2017228295A (ja) 演算装置
JP7475080B2 (ja) 曖昧検索回路
JPH10149227A (ja) 半導体集積回路
CN114095027A (zh) 一种低压低功耗的异步逐次逼近式模数转换器装置
JP2018014153A (ja) 半導体装置
US20120173878A1 (en) Device and method for forming a signature
JP5916563B2 (ja) 連想メモリ
JP2019168851A (ja) 演算装置及び演算方法
JP6327717B2 (ja) k近傍法連想メモリ
WO2007119540A1 (ja) 連想メモリ
JP6215732B2 (ja) 再構成可能連想メモリ
JP6389438B2 (ja) k近傍法連想メモリ
JP6085187B2 (ja) 連想メモリ
Chen et al. 19.7 A scalable pipelined time-domain DTW engine for time-series classification using multibit time flip-flops with 140Giga-cell-updates/s throughput
JP6411914B2 (ja) 再構成可能なk近傍法連想メモリ
Bazzi et al. Hardware Acceleration of DNA Pattern Matching with Binary Memristors
US20220013154A1 (en) Low Power Content Addressable Memory
US11017858B1 (en) Low power content addressable memory
US7847595B2 (en) Input circuit and semiconductor integrated circuit comprising the input circuit
WO1999059156A1 (en) Method and apparatus for implementing a learn instruction in a content addressable memory device
JP2017207857A (ja) 信号多重化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150824

R150 Certificate of patent or registration of utility model

Ref document number: 5800422

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees