本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
[実施の形態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と、パスエンコーダPE1〜PERと、距離/時間変換回路DT1〜DTRとを含む。なお、WおよびRの各々は、2以上の整数である。
ユニット比較回路UC11〜UC1Wは、それぞれ、参照データ保存回路SC11〜SC1Wに対応して設けられる。また、ユニット比較回路UC21〜UC2Wは、それぞれ、参照データ保存回路SC21〜SC2Wに対応して設けられる。以下、同様にして、ユニット比較回路UCR1〜UCRWは、それぞれ、参照データ保存回路SCR1〜SCRWに対応して設けられる。
パスエンコーダPE1は、参照データ保存回路SC11〜SC1Wおよびユニット比較回路UC11〜UC1Wに対応して配置される。パスエンコーダPE2は、参照データ保存回路SC21〜SC2Wおよびユニット比較回路UC21〜UC2Wに対応して配置される。以下、同様にして、パスエンコーダPERは、参照データ保存回路SCR1〜SCRWおよびユニット比較回路UCR1〜UCRWに対応して配置される。
距離/時間変換回路DT1は、パスエンコーダPE1に対応して設けられる。距離/時間変換回路DT2は、パスエンコーダPE2に対応して設けられる。以下、同様にして、距離/時間変換回路DTRは、パスエンコーダPERに対応して設けられる。
参照データ保存回路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ビットの距離信号としてパスエンコードPE1へ出力し、ユニット比較回路UC21〜UC2Wは、参照データ2と検索データとの比較結果をWビットの距離信号としてパスエンコードPE2へ出力し、以下、同様にして、ユニット比較回路UCR1〜UCRWは、参照データRと検索データとの比較結果をWビットの距離信号としてパスエンコードPERへ出力する。これらのR個の距離信号の各々は、参照データと検索データとの間の距離を表す。
なお、ユニット比較回路UC11〜UC1W、ユニット比較回路UC21〜UC2W、・・・、およびユニット比較回路UCR1〜UCRWにおける参照データと検索データとの比較は、ハミング距離を用いて行なわれる。
すなわち、ユニット比較回路UC11〜UC1W、ユニット比較回路UC21〜UC2W、・・・、およびユニット比較回路UCR1〜UCRWは、次式を用いて検索データと参照データとの比較を行なう。
式(1)において、Dhは、ハミング距離であり、Ajは、参照データであり、Bjは、検索データである。そして、各データAj,Bjは、1ビットからなる。
パスエンコーダPE1は、ユニット比較回路UC11〜UC1WからWビットの距離信号を受け、その受けたWビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT1における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT1へ出力する。パスエンコーダPE2は、ユニット比較回路UC21〜UC2WからWビットの距離信号を受け、その受けたWビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT2における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT2へ出力する。以下、同様にして、パスエンコーダPERは、ユニット比較回路UCR1〜UCRWからWビットの距離信号を受け、その受けたWビットの距離信号に基づいて後述する方法によって距離/時間変換回路DTRにおける遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DTRへ出力する。
距離/時間変換回路DT1は、パスエンコーダPE1から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号S1を生成し、その生成した発振信号S1を分周回路20へ出力する。距離/時間変換回路DT2は、パスエンコーダPE2から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号S2を生成し、その生成した発振信号S2を分周回路20へ出力する。以下、同様にして、距離/時間変換回路DTRは、パスエンコーダPERから選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号SRを生成し、その生成した発振信号SRを分周回路20へ出力する。
したがって、メモリ部1は、複数の参照データ1〜Rの各々と検索データとの比較を並列して行ない、その比較結果を示す複数の発振信号S1〜SRを生成して分周回路20へ出力する。
行デコーダ2は、メモリ部1の行方向のアドレスを指定する。列デコーダ3は、メモリ部1の列方向のアドレスを指定する。読出/書込回路4は、参照データを行デコーダ2および列デコーダ3によって指定された参照データ保存回路SC11〜SC1W,SC21〜SC2W,・・・,SCR1〜SCRWに書き込むとともに、検索データを検索データ保存回路5に書き込む。
検索データ保存回路5は、読出/書込回路4によって書き込まれた検索データ(Wビットのデータ)を保存する。
分周回路20は、発振信号S1〜SRをそれぞれ距離/時間変換回路DT1〜DTRから受け、その受けた発振信号S1〜SRを分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。
時間領域WTA回路30は、発振信号Sd1〜SdRを分周回路20から受け、その受けた発振信号Sd1〜SdRのうち、最も早く変化する発振信号(発振信号Sd1〜SdRのいずれか)を検出する。そして、時間領域WTA回路30は、最も早く変化する発振信号に対応した行をWinner行(=1)とし、最も早く変化する発振信号以外の発振信号に対応した行をLoser行(=0)としてマッチ信号M1〜MRを出力する。
図2は、図1に示す距離/時間変換回路DT1の構成を示すブロック図である。図2を参照して、距離/時間変換回路DT1は、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は、パスエンコーダPE1からそれぞれ選択信号SL11〜SL1kを受ける。そして、Nビットステージ41は、選択信号SL11によって選択された遅延経路の遅延量だけ、NAND回路40からの信号を遅延し、その遅延した信号をNビットステージ42へ出力する。Nビットステージ4iは、選択信号SL1iによって選択された遅延経路の遅延量だけ入力信号を遅延し、その遅延した信号をNビットステージ4i+1へ出力する。以下、同様にして、Nビットステージ4kは、選択信号SL1kによって選択された遅延経路の遅延量だけ入力信号を遅延し、その遅延した信号をNAND回路40または外部(=分周回路20)へ出力する。
なお、図1に示す距離/時間変換回路DT2〜DTRの各々も、図2に示す距離/時間変換回路DT1と同じ構成からなる。
図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は、入力端子であるノードN0と、ノード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は、ノードN0とノードN1との間に接続される。トランスファゲート81は、ノードN21とノードN1との間に接続され、トランスファゲート82は、ノードN22とノードN1との間に接続され、トランスファゲート83は、ノードN23とノードN1との間に接続され、以下、同様にして、トランスファゲート8Nは、ノードN2NとノードN1との間に接続される。トランスファゲート90は、ダミーであり、ノードN2Nと、接地ノードGNDとの間に接続される。
インバータ91は、その入力端子がノードN1に接続される。
トランスファゲート51〜5Nは、それぞれ、信号EN1,EN1Q〜信号ENN,ENNQをパスエンコーダPE1から受ける。この場合、トランスファゲート51〜5NのN型MOSトランジスタAは、それぞれ、信号EN1〜ENNをゲート端子に受け、トランスファゲート51〜5NのP型MOSトランジスタBは、それぞれ、信号EN1Q〜ENNQをゲート端子に受ける。
トランスファゲート80〜8Nは、それぞれ、信号Dist0,Dist0Q〜信号DistN,DistNQをパスエンコーダPE1から受ける。この場合、トランスファゲート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は、オンされる。
その結果、信号は、ノードN0からトランスファゲート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は、オンされる。
その結果、信号は、ノードN0からトランスファゲート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は、オンされる。
その結果、信号は、ノードN0からトランスファゲート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は、オフされる。
その結果、信号は、ノードN0からトランスファゲート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は、発振信号を生成し、その生成した発振信号を出力する。
このように、距離/時間変換回路DT1は、k個のNビットステージ41〜4k(=k個の遅延回路)をリング状に接続した発振回路からなる。距離/時間変換回路DT1〜DTRの各々も、同様に、k個のNビットステージ41〜4k(=k個の遅延回路)をリング状に接続した発振回路からなる。
図4は、図1に示すパスエンコーダPE1の構成を示すブロック図である。図4を参照して、パスエンコーダPE1は、パスエンコーダ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回路NR1〜NRN−1とを含む。
パス選択信号生成回路11〜1N−1は、直列に接続される。パス選択信号生成回路11は、Nビットの距離信号M1〜MNのうち、2ビットの距離信号M1,M2をユニット比較回路UC11,UC12から受ける。そして、パス選択信号生成回路11は、後述する方法によって、2ビットの距離信号M1,M2に基づいて2ビットの選択信号EN1Q2,EN2Q2を生成し、その生成した2ビットの選択信号EN1Q2,EN2Q2をパス選択信号生成回路12へ出力する。
パス選択信号生成回路12は、パス選択信号生成回路11から選択信号EN1Q2,EN2Q2を受け、ユニット比較回路UC13から距離信号M3を受け、インバータIV1から距離信号M3の反転信号/M3を受ける。そして、パス選択信号生成回路12は、後述する方法によって、選択信号EN1Q2,EN2Q2、距離信号M3および反転信号/M3に基づいて3ビットの選択信号EN1Q3,EN2Q3,EN3Q3を生成し、その生成した選択信号EN1Q3,EN2Q3,EN3Q3をパス選択信号生成回路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ビットの選択信号EN1QN,EN2QN,・・・,ENNQNを生成し、その生成した選択信号EN1QN,EN2QN,・・・,ENNQNをそれぞれインバータIV11〜IV1Nへ出力する。
インバータIV1〜IVN−2は、それぞれ、距離信号M3〜MNを反転し、その反転した反転信号/M3〜/MNをそれぞれパス選択信号生成回路12〜1N−1へ出力する。
インバータIV11〜IV1Nは、それぞれ、選択信号EN1QN,EN2QN,・・・,ENNQNを受け、その受けた選択信号EN1QN,EN2QN,・・・,ENNQNを反転する。そして、インバータIV11〜IV1Nは、その反転した信号EN1N〜ENNNをNビットステージ41へ出力するとともに、その反転した信号EN1N〜ENNNを、それぞれ、インバータIV21〜IV2Nへ出力する。また、インバータIV22〜IV1Nは、その反転した信号EN2N〜ENNNを、それぞれ、NOR回路NR1〜NRN−1へ出力する。
インバータIV21〜IV2Nは、それぞれ、信号EN1N〜ENNNを反転し、その反転した信号EN1QN,EN2QN,・・・,ENNQNをNビットステージ41へ出力する。また、インバータIV21〜IV2N=1は、その反転した信号EN1QN,EN2QN,・・・,ENNQN−1を、それぞれ、NOR回路NR1〜NRN−1へ出力する。
NOR回路NR1は、信号EN1QNと信号EN2Nとの論理和を演算し、その演算した論理和を反転した信号Dist1NをNビットステージ41へ出力する。NOR回路NR2は、信号EN2QNと信号EN3Nとの論理和を演算し、その演算した論理和を反転した信号Dist2NをNビットステージ41へ出力する。以下、同様にして、NOR回路NRN−1は、信号ENN−1QNと信号ENNNとの論理和を演算し、その演算した論理和を反転した信号DistN−1NをNビットステージ41へ出力する。
なお、図5においては、図3に示す信号Dist0および信号DistNが生成されていないが、信号Dist0は、信号EN1Nの反転信号に等しく、信号DistNは、信号ENNNに等しい。従って、パスエンコーダPE11は、信号EN1NをNビットステージ41のトランスファーゲート51へ出力するとともに、信号EN1Nの反転信号をトランスファーゲート80へ出力する。また、パスエンコーダPE11は、信号ENNNをトランスファゲート5Nおよびトランスファゲート8Nへ出力する。
図6は、図5に示すパス選択信号生成回路11の回路図である。図6を参照して、パス選択信号生成回路11は、NAND回路111と、NOR回路112とを含む。NAND回路111は、距離信号M1と距離信号M2との論理積を演算し、その演算した論理積を反転して信号EN1Q2を生成し、その生成した信号EN1Q2を出力する。
NOR回路112は、距離信号M1と距離信号M2との論理和を演算し、その演算した論理和を反転して信号EN2Q2を生成し、その生成した信号EN2Q2を出力する。
図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は、信号EN1Q2を入力端子に受ける。そして、トランスファゲート122のP型MOSトランジスタは、距離信号M3をゲート端子に受け、トランスファゲート122のN型MOSトランジスタは、反転信号M3Qをゲート端子に受ける。
トランスファゲート123は、信号EN1Q2を入力端子に受ける。そして、トランスファゲート123のP型MOSトランジスタは、反転信号M3Qをゲート端子に受け、トランスファゲート123のN型MOSトランジスタは、距離信号M3をゲート端子に受ける。
トランスファゲート124は、信号EN2Q2を入力端子に受ける。そして、トランスファゲート124のP型MOSトランジスタは、距離信号M3をゲート端子に受け、トランスファゲート124のN型MOSトランジスタは、反転信号M3Qをゲート端子に受ける。
トランスファゲート125は、信号EN2Q2を入力端子に受ける。そして、トランスファゲート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が開かれる。従って、信号EN1Q3=EN1Q2、信号EN2Q3=EN2Q2、信号EN3Q3=1である。
一方、距離信号M3が“1”であり、反転信号M3Qが“0”である場合、トランスファゲート122,124は、閉じられ、N型MOSトランジスタ126がオフされ、P型MOSトランジスタ121がオンされ、トランスファゲート123,125が開かれる。従って、信号EN1Q3=0、信号EN2Q3=EN1Q2、信号EN3Q3=EN2Q2である。
パス選択信号生成回路12の出力信号EN1Q3〜EN3Q3と距離信号M3との関係を表1に示す。
表1から解るように、パス選択信号生成回路12は、距離信号M3が“0”である場合、信号EN1Q2,EN2Q2をそのまま出力し、距離信号M3が“1”である場合、信号EN1Q2,EN2Q2を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が開かれる。従って、信号EN1QN=EN1QN−1、信号EN2QN=EN2QN−1、信号EN3QN=EN3QN−1、・・・、信号ENN−1QN=ENN−1QN−1、信号ENNQN=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が開かれる。従って、信号EN1QN=0、信号EN2QN=EN1QN−1、信号EN3QN=EN2QN−1、・・・、ENNQN=ENN−1QN−1である。
パス選択信号生成回路1N−1の出力信号EN1QN〜ENNQNと距離信号MNとの関係を表2に示す。
表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からなる信号EN1QNを出力し、距離信号MNが“1”であるとき、接地ノードGNDの電位からなる信号(=0)を信号EN1QNとして出力する。
選択器202は、信号EN1QN−1,EN2QN−1および距離信号MNを受ける。そして、選択器202は、距離信号MNが“0”であるとき、信号EN2QN−1からなる信号EN2QNを出力し、距離信号MNが“1”であるとき、信号EN1QN−1からなる信号EN2QNを出力する。
選択器203は、信号EN2QN−1,EN3QN−1および距離信号MNを受ける。そして、選択器203は、距離信号MNが“0”であるとき、信号EN3QN−1からなる信号EN3QNを出力し、距離信号MNが“1”であるとき、信号EN2QN−1からなる信号EN3QNを出力する。
以下、同様にして、選択器20N−1は、信号ENN−2QN−1,ENN−1QN−1および距離信号MNを受ける。そして、選択器20N−1は、距離信号MNが“0”であるとき、信号ENN−1QN−1からなる信号ENN−1QNを出力し、距離信号MNが“1”であるとき、信号ENN−2QN−1からなる信号ENN−1QNを出力する。また、選択器20Nは、信号ENN−1QN−1および距離信号MNを受ける。そして、選択器20Nは、距離信号MNが“0”であるとき、電源ノードVDDからなる信号(=1)を信号ENNQNとして出力し、距離信号MNが“1”であるとき、信号ENN−1QN−1からなる信号ENNQNを出力する。
パスエンコーダPE11が3ビットパスエンコーダからなる場合、N−1ビットパスエンコーダ200は、2ビットパスエンコーダからなり、具体的には、図6に示すパス選択信号生成回路11からなる。従って、N−1ビットパスエンコーダ200は、信号EN1Q2,EN2Q2を出力する。
距離信号M3が“0”であるとき、図7に示すトランスファゲート122は、信号EN1Q2を信号EN1Q3として出力し、距離信号M3が“1”であるとき、図7に示すP型MOSトランジスタ121は、“0”からなる信号を信号EN1Q3として出力する。従って、P型MOSトランジスタ121およびトランスファゲート122は、選択器201を構成する。
また、距離信号M3が“0”であるとき、図7に示すトランスファゲート124は、信号EN2Q2を信号EN2Q3として出力し、距離信号M3が“1”であるとき、図7に示すトランスファゲート123は、信号EN1Q2を信号EN2Q3として出力する。従って、トランスファゲート123,124は、選択器202を構成する。
更に、距離信号M3が“0”であるとき、図7に示すN型MOSトランジスタ126は、“1”からなる信号を信号EN3Q3として出力し、距離信号M3が“1”であるとき、図7に示すトランスファゲート125は、信号EN2Q2を信号EN3Q3として出力する。従って、トランスファゲート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を信号EN1QNとして出力し、距離信号MNが“1”であるとき、図8に示すP型MOSトランジスタ131は、“0”からなる信号を信号EN1QNとして出力する。従って、P型MOSトランジスタ131およびトランスファゲート132は、選択器201を構成する。
また、距離信号MNが“0”であるとき、図8に示すトランスファゲート134は、信号EN2QN−1を信号EN2QNとして出力し、距離信号MNが“1”であるとき、図8に示すトランスファゲート133は、信号EN1QN−1を信号EN2QNとして出力する。従って、トランスファゲート133,134は、選択器202を構成する。
更に、距離信号MNが“0”であるとき、図8に示すトランスファゲート136は、信号EN3QN−1を信号EN3QNとして出力し、距離信号MNが“1”であるとき、図8に示すトランスファゲート135は、信号EN2QN−1を信号EN3QNとして出力する。従って、トランスファゲート135,136は、選択器203を構成する。
更に、距離信号MNが“0”であるとき、図8に示すN型MOSトランジスタ136+2N−3は、“1”からなる信号を信号ENNQNとして出力し、距離信号MNが“1”であるとき、図8に示すトランスファゲート135+2N−3は、信号ENN−1QN−1を信号ENNQNとして出力する。従って、トランスファゲート135+2N−3およびN型MOSトランジスタ136+2N−3は、選択器20Nを構成する。
このように、図5から図8において説明したパスエンコーダPE11は、一般的には、図9に示すN−1ビットパスエンコーダ200と、選択器201〜20Nとからなる。そして、パスエンコーダPE11は、Nビットの距離信号M1〜MNに基づいて、上述した方法によって、信号EN1N〜ENNN,EN1QN〜ENNQN,Dist0N〜DistNNを生成し、その生成した信号EN1N〜ENNN,EN1QN〜ENNQN,Dist0N〜DistNNをNビットステージ41へ出力する。従って、信号EN1N〜ENNN,EN1QN〜ENNQN,Dist0N〜DistNNは、選択信号SL11を構成する。
なお、図4に示すパスエンコーダPE12〜PE1kの各々も、図5から図9に示すパスエンコーダPE11と同じ構成からなる。従って、パスエンコーダPE12〜PE1kから出力される信号EN1N〜ENNN,EN1QN〜ENNQN,Dist0N〜DistNNは、それぞれ、選択信号SL12〜SL1kを構成する。
再び、図4を参照して、パスエンコーダPE11〜PE1kの各々は、パスエンコーダPE1へ出力される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は、それぞれ、距離/時間変換回路DT1〜DTRに対応して設けられる。そして、分周器211〜21Rは、それぞれ、距離/時間変換回路DT1〜DTRから発振信号S1〜SRを受け、その受けた発振信号S1〜SRを所望の回数だけ分周する。そして、分周器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を参照して、発振信号S1,S2は、分周器211への入力信号であり、発振信号Sd1,Sd2は、分周器211からの出力信号である。そして、発振信号S1,S2,Sd1,Sd2は、一定の周期を有する周期信号である。
発振信号S1が分周器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トランジスタ)は、オフされる。
このような状態において、発振信号S1の“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から出力する。
その後、発振信号S1の“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から出力する。
更に、その後、発振信号S1の“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から出力する。
引き続いて、発振信号S1の“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から出力する。
その後、発振信号S1の“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は、発振信号S2が入力端子Inに入力されたときも、同様にして発振信号Sd2を出力端子Outから出力する。
発振信号Sd1は、発振信号S1を遅延させた位相を有するとともに、発振信号S1の周期を2倍した周期を有する。また、発振信号Sd2は、発振信号S2を遅延させた位相を有するとともに、発振信号S2の周期を2倍した周期を有する。
そして、発振信号S1と発振信号S2との位相差を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をτRだけ遅延し、その遅延した反転信号/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のいずれか)にデータが入力されるまでの時間をτRとし、Winner行の信号の変化を検出してからレジスタ321〜32Rの全てをラッチするまでの時間をτSEとし、レジスタ321〜32Rのセットアップ時間をτSTとし、ばらつきを打ち消すためのマージン時間をτMとし、距離1の時間差をτSとする。
図17を参照して、タイミングt0(=時刻0)でWinner行の信号が変化する。そして、タイミングt1でWinner行の信号がレジスタ(=レジスタ321〜32Rのいずれか)に入力される。
その後、タイミングt2で全ての行のレジスタ321〜32Rがラッチされる。そして、タイミングt3でWinner行に最も近いLoser行の信号がレジスタ(=レジスタ321〜32Rのいずれか)に入力される。
タイミングt0からタイミングt2までの時間であるτSEは、τSE=τR+τST+τMであるので、τRは、τR=τSE−τST−τMによって表される。
そして、Winner行の信号の変化を検出してからレジスタ321〜32Rの全てをラッチするまでの時間であるτSEがばらついても、Winner行の信号と、Winner行に最も近いLoser行の信号とを判別できるように、τRを調整してマージン時間τMを決定する。
再び、図13を参照して、発振信号Sd1がWinner行の発振信号である場合、Winner検出回路330は、反転信号/Sd1〜/SdRのうち、反転信号/Sd1の変化を最も早く検出し、検索終了信号SEを生成する。
遅延回路311は、反転信号/Sd1をτRだけ遅延してレジスタ321へ出力し、レジスタ321は、反転信号/Sd1をデータ端子Dに受ける。
その後、フィードバック回路350は、検索終了信号SEをレジスタ321〜32Rへ同時に出力し、レジスタ321〜32Rは、検索終了信号SEに応じてデータをラッチする。この段階で反転信号を受けているのは、レジスタ321だけであり、レジスタ321は、“1”からなる信号M1を出力し、レジスタ322〜32Rは、それぞれ、“0”からなる信号M2〜MRを出力する。
図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と、パスエンコーダPE1〜PERと、距離/時間変換回路DT1〜DTRとを含む。
そして、検索データ保存回路5は、8ビットの検索データa1〜a8を保存する。
パスエンコーダPE1〜PERの各々は、4ビットパスエンコーダPE11−1,PE12−1からなり、距離/時間変換回路DT1〜DTRの各々は、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をそれぞれパスエンコーダPE2〜パスエンコーダPERへ出力する。
4ビットパスエンコーダPE12−1は、4ビットの距離信号M1〜M4に基づいて、選択信号SL11を生成し、その生成した選択信号SL11を4ビットステージ41−1へ出力する。4ビットパスエンコーダPE11−1は、4ビットの距離信号M1〜M4に基づいて、選択信号SL12を生成し、その生成した選択信号SL12を4ビットステージ41−2へ出力する。
パスエンコーダPE2〜PERは、8ビットの距離信号M1〜M4,M1〜M4に基づいて、選択信号SL11,SL12を生成し、その生成した選択信号SL11,SL12をそれぞれ距離/時間変換回路DT2〜DTRへ出力する。
距離/時間変換回路DT1において、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によって選択された遅延経路によって遅延し、その遅延した信号(=発振信号S1)を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”であるとき、信号EN1Q4=EN1Q3,EN2Q4=EN2Q3,EN3Q4=EN3Q3,EN4Q4=1を出力し、距離信号M4が“1”であるとき、信号EN1Q4=0,EN2Q4=EN1Q3,EN3Q4=EN2Q3,EN4Q4=EN3Q3を出力する。
再び、図23を参照して、インバータIV11〜IV14,IV21〜IV24およびNOR回路NR1〜NR3は、パス選択信号生成回路13から出力された信号EN1Q4〜EN4Q4に基づいて、信号EN1Q4〜EN4Q4,EN14〜EN44,Dist14〜Dist34を生成する。
なお、図23においては、信号Dist04,Dist44が示されていないが、信号Dist04は、信号EN14の反転信号EN1Q4に等しい。これは、信号がノードN0→トランスファゲート80→インバータ91からなる遅延経路を通過する場合、トランスファゲート51を、必ず、閉じる必要があるからである。
また、信号Dist44は、信号EN4に等しい。これは、信号が遅延器74を通過する場合、トランスファゲート54,84の両方を、必ず、開く必要があるからである。
距離信号M1〜M4の各々が“0”または“1”であるときに、4ビットパスエンコーダPE11−1が生成する信号EN1Q4〜EN4Q4,EN14〜EN44,Dist04〜Dist44の取り得る値を表3に示す。
M1=M2=M3=M4=0であるとき、即ち、検索データの4ビットと参照データの4ビットとが一致する場合、Dist04=“1”,EN14=“0”,EN1Q4=“1”,Dist14=“0”,EN24=“0”,EN2Q4=“1”,Dist24=“0”,EN34=“0”,EN3Q4=“1”,Dist34=“0”,EN44=“0”,EN4Q4=“1”,Dist44=“0”である。
その結果、トランスファゲート80が開き、トランスファゲート51〜54,81〜84が閉じる。そして、信号は、ノードN0→トランスファゲート80→インバータ91からなる遅延経路を通過する。即ち、信号は、距離0のパスを通過する。
この場合、N型MOSトランジスタ61〜64は、それぞれ、信号EN1Q4=EN2Q4=EN3Q4=EN4Q4=“1”に応じてオンされるので、ノードN11〜N14の電位は、接地ノードGNDの電位からなる。その結果、遅延器71〜74は、動作しない。従って、消費電力を低減できる。
また、M1=“0”,M2=“0”,M3=“0”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、1ビットが不一致であるとき、Dist04=“0”,EN14=“1”,EN1Q4=“0”,Dist14=“1”,EN24=“0”,EN2Q4=“1”,Dist24=“0”,EN34=“0”,EN3Q4=“1”,Dist34=“0”,EN44=“0”,EN4Q4=“1”,Dist44=“0”である。
その結果、トランスファゲート51,81が開き、トランスファゲート52〜54,80,82〜84が閉じる。そして、信号は、ノードN0→トランスファゲート51→遅延器71→トランスファゲート81→インバータ91からなる遅延経路を通過する。即ち、信号は、距離1のパスを通過する。
この場合、N型MOSトランジスタ62〜64は、それぞれ、信号EN2Q4=EN3Q4=EN4Q4=“1”に応じてオンされるので、ノードN12〜N14の電位は、接地ノードGNDの電位からなる。その結果、遅延器72〜74は、動作しない。従って、消費電力を低減できる。
更に、M1=“0”,M2=“0”,M3=“1”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、2ビットが不一致であるとき、Dist04=“0”,EN14=“1”,EN1Q4=“0”,Dist14=“0”,EN24=“1”,EN2Q4=“0”,Dist24=“1”,EN34=“0”,EN3Q4=“1”,Dist34=“0”,EN44=“0”,EN4Q4=“1”,Dist44=“0”である。
その結果、トランスファゲート51,52,82が開き、トランスファゲート53,54,80,81,83,84が閉じる。そして、信号は、ノードN0→トランスファゲート51→遅延器71→トランスファゲート52→遅延器72→トランスファゲート82→インバータ91からなる遅延経路を通過する。即ち、信号は、距離2のパスを通過する。
この場合、N型MOSトランジスタ63,64は、それぞれ、信号EN3Q4=EN4Q4=“1”に応じてオンされるので、ノードN13,N14の電位は、接地ノードGNDの電位からなる。その結果、遅延器73,74は、動作しない。従って、消費電力を低減できる。
更に、M1=“0”,M2=“1”,M3=“1”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、3ビットが不一致であるとき、Dist04=“0”,EN14=“1”,EN1Q4=“0”,Dist14=“0”,EN24=“1”,EN2Q4=“0”,Dist24=“0”,EN34=“1”,EN3Q4=“0”,Dist34=“1”,EN44=“0”,EN4Q4=“1”,Dist44=“0”である。
その結果、トランスファゲート51〜53,83が開き、トランスファゲート54,80〜82,84が閉じる。そして、信号は、ノードN0→トランスファゲート51→遅延器71→トランスファゲート52→遅延器72→トランスファゲート53→遅延器73→トランスファゲート83→インバータ91からなる遅延経路を通過する。即ち、信号は、距離3のパスを通過する。
この場合、N型MOSトランジスタ64は、EN4Q4=“1”に応じてオンされるので、ノードN14の電位は、接地ノードGNDの電位からなる。その結果、遅延器74は、動作しない。従って、消費電力を低減できる。
更に、M1=“1”,M2=“1”,M3=“1”,M4=“1”であるとき、即ち、検索データの4ビットと参照データの4ビットとのうち、全てのビットが不一致であるとき、Dist04=“0”,EN14=“1”,EN1Q4=“0”,Dist14=“0”,EN24=“1”,EN2Q4=“0”,Dist24=“0”,EN34=“1”,EN3Q4=“0”,Dist34=“0”,EN44=“1”,EN4Q4=“0”,Dist44=“1”である。
その結果、トランスファゲート51〜54,84が開き、トランスファゲート80〜83が閉じる。そして、信号は、ノードN0→トランスファゲート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”以外であるとき、距離/時間変換回路DT1において、信号は、4ビットステージ41−1および4ビットステージ42−1の距離0のパスを通過し、距離/時間変換回路DT2〜DTRにおいて、信号は、4ビットステージ41−1および4ビットステージ42−1の距離0のパス以外のパスを通過する。
その結果、発振信号S1は、最も高い周波数を有し、距離/時間変換回路DT1から分周回路20へ最も早く出力され、発振信号S2〜SRは、検索データと参照データとの不一致ビット数が多くなるほど低い周波数を有し、不一致ビット数が多くなるほど遅いタイミングでそれぞれ距離/時間変換回路DT2〜DTRから分周回路20へ出力される。
そして、分周回路20において、分周器211〜21Rは、それぞれ、発振信号S1〜SRを分周し、その分周した発振信号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をτRだけ遅延してレジスタ321へ出力する。その後、遅延回路312〜31Rは、反転信号/Sd2〜/SdRを受ける順序に従って、それぞれ、反転信号/Sd2〜/SdRをτRだけ遅延してレジスタ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は、それぞれ、マッチ信号M1(=1),M2(=0)=M3(=0)=・・・=MR(=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に基づいて信号Dist03〜Dist23を生成する。2ビットパスエンコーダ502は、距離信号M3,M4に基づいて信号Dist03〜Dist23を生成する。
NAND回路503は、2ビットパスエンコーダ501から出力された信号Dist03と、2ビットパスエンコーダ502から出力された信号Dist03との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号DistQ44として出力するとともに、その反転した信号をインバータ509へ出力する。
NAND回路504は、2ビットパスエンコーダ501から出力された信号Dist03と、2ビットパスエンコーダ502から出力された信号Dist13との論理積を演算し、その演算した論理積を反転してNAND回路510へ出力する。
NAND回路505は、2ビットパスエンコーダ501から出力された信号Dist13と、2ビットパスエンコーダ502から出力された信号Dist03との論理積を演算し、その演算した論理積を反転してNAND回路510へ出力する。
NAND回路506は、2ビットパスエンコーダ501から出力された信号Dist23と、2ビットパスエンコーダ502から出力された信号Dist13との論理積を演算し、その演算した論理積を反転してNAND回路511へ出力する。
NAND回路507は、2ビットパスエンコーダ501から出力された信号Dist13と、2ビットパスエンコーダ502から出力された信号Dist23との論理積を演算し、その演算した論理積を反転してNAND回路511へ出力する。
NAND回路508は、2ビットパスエンコーダ501から出力された信号Dist23と、2ビットパスエンコーダ502から出力された信号Dist23との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号Dist04として出力するとともに、その反転した信号をインバータ512へ出力する。
インバータ509は、NAND回路503の出力信号を反転し、その反転した信号を信号Dist44として出力するとともに、その反転した信号をNOR回路513へ出力する。
NAND回路510は、NAND回路504の出力信号とNAND回路505の出力信号との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号Dist34として出力するとともに、その反転した信号をNOR回路513およびインバータ516へ出力する。
NAND回路511は、NAND回路506の出力信号とNAND回路507の出力信号との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号Dist14として出力するとともに、その反転した信号をNOR回路511およびインバータ518へ出力する。
インバータ512は、NAND回路508の出力信号を反転し、その反転した信号を信号Dist04として出力するとともに、その反転した信号をNOR回路514へ出力する。
NOR回路513は、インバータ509の出力信号とNAND回路510の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路515へ出力する。
NOR回路514は、NAND回路511の出力信号とインバータ512の出力信号との論理和を演算し、その演算した論理和を反転してNAND回路515へ出力する。
NAND回路515は、NOR回路513の出力信号とNOR回路514の出力信号との論理積を演算し、その演算した論理積を反転し、その反転した信号を信号DistQ24として出力するとともに、その反転した信号をインバータ517へ出力する。
インバータ516は、NAND回路510の出力信号を反転し、その反転した信号を信号DistQ34として出力する。
インバータ517は、NAND回路515の出力信号を反転し、その反転した信号を信号Dist24として出力する。
インバータ518は、NAND回路511の出力信号を反転し、その反転した信号を信号DistQ14として出力する。
2ビットパスエンコーダ501,502の各々は、NOR回路5011,5014と、NAND回路5012と、インバータ5013とを含む。
NOR回路5011は、距離信号M1と距離信号M2との論理和を演算し、その演算した論理和を反転し、その反転した信号を信号Dist03として出力するとともに、その反転した信号をNOR回路5014へ出力する。
NAND回路5012は、距離信号M1と距離信号M2との論理積を演算し、その演算した論理積を反転してインバータ5013へ出力する。
インバータ5013は、NAND回路5012の出力信号を反転し、その反転した信号を信号Dist23として出力するとともに、その反転した信号をNOR回路5014へ出力する。
NOR回路5014は、NOR回路5011の出力信号とインバータ5013の出力信号との論理和を演算し、その演算した論理和を反転し、その反転した信号を信号Dist13として出力する。
距離信号M1〜M4の各々が“0”または“1”であるときに、パスエンコーダ500が生成する信号Dist04〜Dist44,DistQ04〜DistQ44の取り得る値を表4に示す。
表4に示すように、パスエンコーダ500は、距離信号M1〜M4のビット値に応じて、距離0のパス、距離1のパス、距離2のパス、距離3のパスおよび距離4のパスのいずれかを選択するように、信号Dist04〜Dist44,DistQ04〜DistQ44を生成する。
なお、パスエンコーダ500は、図22に示す4ビットステージ41−1からトランスファゲート51〜54およびN型MOSトランジスタ61〜64を削除した4ビットステージへ出力する信号Dist04〜Dist44,DistQ04〜DistQ44を生成する。
従って、信号Dist04〜Dist44,DistQ04〜DistQ44によって距離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”であるとき、ノードN0→トランスファゲート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”であるとき、ノードN0→トランスファゲート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よりも少ない。
信号がトランスファゲートおよびインバータを通過する際、遅延が発生するので、信号が通過するゲート数を減少することによって、信号が距離/時間変換回路DT1〜DTRを通過する時間を短縮でき、連想メモリ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である。その結果、距離/時間変換回路DT1〜DTRの各々において、Nビットステージ41〜4kの個数は、3個になり、パスエンコーダPE1〜PERの各々において、パスエンコーダ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は、上述した動作によって検索データに一致する参照データを検索する。
距離/時間変換回路DT1〜DTRの各々は、k個のNビットステージ41〜4kをリング状に接続した構成からなり、k個のNビットステージ41〜4kの各々は、入力信号を奇数回反転して出力する遅延回路からなる。その結果、距離/時間変換回路DT1〜DTRの各々は、発振信号を出力する発振回路からなる。従って、距離/時間変換回路DT1〜DTRは、R個の距離信号に対応して設けられ、各々がk個の遅延回路をリング状に接続した発振回路を含む「R個の変換回路」を構成する。
また、パスエンコーダPE1〜PERの各々は、k個のパスエンコーダPE11〜PE1kからなり、Wビットの距離信号に基づいて、k個のNビットステージ41〜4kにおけるk個の遅延経路を選択するためのk個の選択信号SL11〜SL1kを生成し、その生成したk個の選択信号SL11〜SL1kをそれぞれk個のNビットステージ41〜4kへ出力する。従って、パスエンコーダPE1〜PERは、R個の距離信号およびR個の距離/時間変換回路DT1〜DTRに対応して設けられ、各々がk個のパスエンコーダPE11〜PE1kを含む「R個の選択回路」を構成する。そして、パスエンコーダPE1〜PERの各々は、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を対応する距離/時間変換回路(=距離/時間変換回路DT1〜DTRのいずれか)へ出力する。
更に、k個のパスエンコーダPE11〜PE1kは、それぞれ、選択信号SL11〜SL1kによってk個のNビットステージ41〜4kにおける遅延経路を選択するので、「k個の経路選択回路」を構成する。
更に、k個のNビットステージ41〜4kは、それぞれ、選択信号SL11〜SL1kによって選択された遅延経路を用いて信号を遅延させるので、「k個の遅延回路」を構成する。
なお、実施の形態1による連想メモリは、連想メモリ100から分周回路20を削除したものであってもよい。時間領域WTA回路30は、分周回路20が無くても、発振信号S1〜SRに基づいて、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’1〜PE’Rと、距離/時間変換回路DT’1〜DT’Rとを含む。
ユニット比較回路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’1は、参照データ保存回路SC’11〜SC’1Wおよびユニット比較回路UC’11〜UC’1Wに対応して配置される。パスエンコーダPE’2は、参照データ保存回路SC’21〜SC’2Wおよびユニット比較回路UC’21〜UC’2Wに対応して配置される。以下、同様にして、パスエンコーダPE’Rは、参照データ保存回路SC’R1〜SC’RWおよびユニット比較回路UC’R1〜UC’RWに対応して配置される。
距離/時間変換回路DT’1は、パスエンコーダPE’1に対応して設けられる。距離/時間変換回路DT’2は、パスエンコーダPE’2に対応して設けられる。以下、同様にして、距離/時間変換回路DT’Rは、パスエンコーダPE’Rに対応して設けられる。
参照データ保存回路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’1へ出力し、ユニット比較回路UC’21〜UC’2Wは、W個の参照データと検索データとの比較結果をW個の距離信号(W個の距離信号の各々は、Kビットからなる)としてパスエンコードPE’2へ出力し、以下、同様にして、ユニット比較回路UC’R1〜UC’RWは、W個の参照データと検索データとの比較結果をW個の距離信号(W個の距離信号の各々は、Kビットからなる)としてパスエンコードPE’Rへ出力する。
なお、ユニット比較回路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)において、Dmは、マンハッタン距離であり、Ajは、参照データであり、Bjは、検索データである。そして、各データAj,Bjは、Kビットからなる。
パスエンコーダPE’1は、ユニット比較回路UC’11〜UC’1WからK×Wビットの距離信号を受け、その受けたK×Wビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT’1における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT’1へ出力する。パスエンコーダPE’2は、ユニット比較回路UC’21〜UC’2WからK×Wビットの距離信号を受け、その受けたK×Wビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT’2における遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT’2へ出力する。以下、同様にして、パスエンコーダPE’Rは、ユニット比較回路UC’R1〜UC’RWからK×Wビットの距離信号を受け、その受けたK×Wビットの距離信号に基づいて後述する方法によって距離/時間変換回路DT’Rにおける遅延経路を選択するための選択信号を生成し、その生成した選択信号を距離/時間変換回路DT’Rへ出力する。
距離/時間変換回路DT’1は、パスエンコーダPE’1から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号S1を生成し、その生成した発振信号S1を分周回路20へ出力する。距離/時間変換回路DT’2は、パスエンコーダPE’2から選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号S2を生成し、その生成した発振信号S2を分周回路20へ出力する。以下、同様にして、距離/時間変換回路DT’Rは、パスエンコーダPE’Rから選択信号を受け、その受けた選択信号によって選択された遅延経路の遅延量だけ遅延させた発振信号SRを生成し、その生成した発振信号SRを分周回路20へ出力する。
したがって、メモリ部1Aは、複数の参照データの各々と検索データとの比較を並列して行ない、その比較結果を示す複数の発振信号S1〜SRを生成して分周回路20へ出力する。
図29は、図28に示すパスエンコーダPE’1の動作を説明するための図である。図29を参照して、パスエンコーダPE’1は、ユニット比較回路UC’11〜UC’1Wから距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWを受ける。ここで、M11M21・・・MK1は、参照データW1と検索データとの距離を示す距離信号であり、M12M22・・・MK2は、参照データW2と検索データとの距離を示す距離信号であり、以下、同様にして、M1WM2W・・・MKWは、参照データWWと検索データとの距離を示す距離信号である。
パスエンコーダPE’1は、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWを受けると、その受けた距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWに基づいて、距離信号M11M12・・・M1W,M21M22・・・M2W,・・・,MK1MK2・・・MKWを生成する。ここで、M11M12・・・M1Wは、Wビットのビット値からなり、W個の参照データと検索データとの最上位ビット同士の距離を示す距離信号である。また、M21M22・・・M2Wは、Wビットのビット値からなり、W個の参照データと検索データとの第2位ビット同士の距離を示す距離信号である。以下、同様にして、MK1MK2・・・MKWは、Wビットのビット値からなり、W個の参照データと検索データとの最下位ビット同士の距離を示す距離信号である。
なお、図28に示すパスエンコーダPE’2〜PE’Rの各々も、パスエンコーダPE’1と同様にして、各々がWビットであるK個の距離信号を生成する。
図30は、図28に示す距離/時間変換回路DT’1の構成を示すブロック図である。図30を参照して、距離/時間変換回路DT’1は、NAND回路710と、発振回路711〜71Kと、選択器721〜72Kとを含む。
NAND回路710は、イネーブル信号ENと、発振回路71Kの出力信号との論理積を演算し、その演算した論理積を反転して発振回路711へ出力する。
発振回路711は、参照データおよび検索データの最上位ビットに対応して設けられる。そして、発振回路711は、参照データと検索データとの最上位ビット同士の距離を示すWビットの距離信号M11・・・M1W−1M1WをパスエンコーダPE’1から受け、その受けたWビットの距離信号M11・・・M1W−1M1Wによって表される距離に応じた遅延時間だけ遅延した発振信号を生成して選択器721へ出力する。
以下、同様にして、発振回路71K−1は、参照データおよび検索データの第K−1位ビットに対応して設けられる。そして、発振回路71K−1は、参照データと検索データとの第K−1位ビット同士の距離を示すWビットの距離信号MK−11・・・MK−1W−1MK−1WをパスエンコーダPE’1から受け、その受けたWビットの距離信号MK−11・・・MK−1W−1MK−1Wによって表される距離に応じた遅延時間だけ遅延した発振信号を生成して選択器72K−1へ出力する。発振回路71Kは、参照データおよび検索データの最下位ビットに対応して設けられる。そして、発振回路71Kは、参照データと検索データとの最下位ビット同士の距離を示すWビットの距離信号MK1・・・MKW−1MKWをパスエンコーダPE’1から受け、その受けたWビットの距離信号MK1・・・MKW−1MKWによって表される距離に応じた遅延時間だけ遅延した発振信号を生成する。そして、発振回路71Kは、その生成した発振信号を選択器72Kへ出力する。
選択器721は、発振回路711から出力された発振信号を発振回路711へ出力するとともに、発振信号の発振回路711への出力回数が所望回数に達すると、発振回路711から出力された発振信号を発振回路712(図示せず)へ出力する。
以下、同様にして、選択器72K−1は、発振回路71K−1から出力された発振信号を発振回路71K−1へ出力するとともに、発振信号の発振回路71K−1への出力回数が所望回数に達すると、発振回路71K−1から出力された発振信号を発振回路71Kへ出力する。選択器72Kは、発振回路71Kから出力された発振信号を発振回路71Kへ出力するとともに、発振信号の発振回路71Kへの出力回数が所望回数に達すると、発振回路71Kから出力された発振信号を発振信号S1として分周回路20およびNAND回路710へ出力する。
発振回路711は、1ビットステージ231〜23Wからなる。1ビットステージ231〜23Wは、選択器721を介してリング状に接続される。そして、1ビットステージ231〜23Wの各々は、図26に示す1ビットステージ610と同じ構成からなる。この場合、1ビットステージ231〜23Wの各々において、遅延器603は、直列に接続された偶数個のインバータからなり、遅延器603による遅延時間は、2K−1τsである。
1ビットステージ231〜23Wは、パスエンコーダPE’1からそれぞれ距離信号M11〜M1Wを受け、その受けた距離信号M11〜M1Wによって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ231〜23Wの各々は、パスエンコーダPE’1から受けた距離信号(M11〜M1Wのいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’1から受けた距離信号(M11〜M1Wのいずれか)が“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τsである。
1ビットステージ241〜24Wは、パスエンコーダPE’1からそれぞれ距離信号MK−11〜MK−1Wを受け、その受けた距離信号MK−11〜MK−1Wによって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ241〜24Wの各々は、パスエンコーダPE’1から受けた距離信号(MK−11〜MK−1Wのいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’1から受けた距離信号(MK−11〜MK−1Wのいずれか)が“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による遅延時間は、τsである。
1ビットステージ251〜25Wは、パスエンコーダPE’1からそれぞれ距離信号MK1〜MKWを受け、その受けた距離信号MK1〜MKWによって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ251〜25Wの各々は、パスエンコーダPE’1から受けた距離信号(MK1〜MKWのいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’1から受けた距離信号(MK1〜MKWのいずれか)が“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’1においては、参照データと検索データとの最上位ビット同士の間の距離信号が最初に発振信号に変換され、その次に、参照データと検索データとの第2位ビット同士の間の距離信号が発振信号に変換され、最後に、参照データと検索データとの最下位ビット同士の間の距離信号が発振信号に変換される。
つまり、連想メモリ100Aにおいては、R個の行の各々において、W個の参照データの最上位ビットから最下位ビットへ向かう順に、W個の参照データの各々が検索データに一致するか否かが検索される。
このように、最上位ビットから最下位ビットへ向かう順に、W個の参照データの各々が検索データに一致するか否かが検索されるのは、参照データおよび検索データの最上位ビットは、最も重要な意味を有するからである。
なお、図28に示す距離/時間変換回路DT’2〜DT’Rの各々も、図30に示す距離/時間変換回路DT’1と同じ構成からなる。
連想メモリ100Aにおける動作について説明する。ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの間の距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWをパスエンコーダPE’1ヘ出力する。ユニット比較回路UC’21〜UC’2W,・・・,UC’R1〜UC’RWも、同様に、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWをそれぞれパスエンコーダPE’1〜PE’Rへ出力する。
パスエンコーダPE’1は、上述した方法によって、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWに基づいて、距離信号M11M12・・・M1W,M21M22・・・M2W,・・・,MK1MK2・・・MKWを生成する。そして、パスエンコーダPE’1は、距離信号M11M12・・・M1Wを距離/時間変換回路DT’1の発振回路711へ出力し、以下、同様にして、距離信号MK−11MK−12・・・MK−1Wを距離/時間変換回路DT’1の発振回路71K−1へ出力し、距離信号MK1MK2・・・MKWを距離/時間変換回路DT’1の発振回路71Kへ出力する。パスエンコーダPE’2〜PE’Rについても同様である。
そして、距離/時間変換回路DT’1においては、発振回路711は、最初に、距離信号M11M12・・・M1Wによって選択された遅延経路を用いて発振信号を発振し、その次に、発振回路712は、距離信号M21M22・・・M2Wによって選択された遅延経路を用いて発振信号を発振し、以下、同様にして、発振回路71Kは、最後に、距離信号MK1MK2・・・MKWによって選択された遅延経路を用いて発振信号を発振する。そして、距離/時間変換回路DT’1は、発振信号S1を分周回路20へ出力する。
距離/時間変換回路DT’2〜DT’Rも、同様にして、それぞれ発振信号S2〜SRを発振し、その発振した発振信号S2〜SRを分周回路20へ出力する。
そうすると、分周回路20は、上述した方法によって、発振信号S1〜SRを所望回数だけ分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。そして、時間領域WTA回路30は、上述した方法によって、発振信号Sd1〜SdRのうち、最も早くする変化する発振信号(発振信号Sd1〜SdRのいずれか)を検出し、マッチ信号M1〜MRを出力する。
連想メモリ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個の参照データと検索データとの最上位ビット同士が不一致である行においては、発振信号(発振信号S1〜SRのいずれか)が分周回路20へ出力されるタイミングが最も遅くなる。
その結果、発振信号(発振信号S1〜SRのいずれか)の分周回路20への出力タイミングが遅い行については、時間領域WTA回路30がWinner行を検出した時点においても、距離/時間変換回路(距離/時間変換回路DT’1〜DT’Rのいずれか)による距離信号の発振信号への変換が最下位ビットまで進行していない状況も想定される。このような場合、発振信号(発振信号S1〜SRのいずれか)の分周回路20への出力タイミングが遅い行の距離信号から発振信号への変換を途中で中止することによって、連想メモリ100Aにおける検索時間を短縮できる。
図31は、図28に示す距離/時間変換回路DT’1の他の構成を示すブロック図である。
距離/時間変換回路DT’1は、図31に示す距離/時間変換回路DT’1Aからなっていてもよい。図31を参照して、距離/時間変換回路DT’1Aは、距離/時間変換回路DT’1の発振回路711〜71Kをそれぞれ発振回路731〜73Kに代え、選択器721〜72Kを分周器741〜74K−1に代えたものであり、その他は、距離/時間変換回路DT’1と同じである。
発振回路731は、参照データおよび検索データの最上位ビットに対応して設けられる。そして、発振回路731は、参照データと検索データとの最上位ビット同士の距離を示すWビットの距離信号M11・・・M1W−1M1WをパスエンコーダPE’1から受け、その受けたWビットの距離信号M11・・・M1W−1M1Wによって表される距離に応じた遅延時間だけ遅延した発振信号を生成して分周器741へ出力する。
以下、同様にして、発振回路73K−1は、参照データおよび検索データの第K−1位ビットに対応して設けられる。そして、発振回路73K−1は、参照データと検索データとの第K−1位ビット同士の距離を示すWビットの距離信号MK−11・・・MK−1W−1MK−1WをパスエンコーダPE’1から受け、その受けたWビットの距離信号MK−11・・・MK−1W−1MK−1Wによって表される距離に応じた遅延時間だけ遅延した発振信号を生成して分周器74K−1へ出力する。
発振回路73Kは、参照データおよび検索データの最下位ビットに対応して設けられる。そして、発振回路73Kは、参照データと検索データとの最下位ビット同士の距離を示すWビットの距離信号MK1・・・MKW−1MKWをパスエンコーダPE’1から受け、その受けたWビットの距離信号MK1・・・MKW−1MKWによって表される距離に応じた遅延時間だけ遅延した発振信号を生成し、その生成した発振信号を発振信号S1として分周回路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による遅延時間は、τsである。
1ビットステージ261〜26Wは、パスエンコーダPE’1からそれぞれ距離信号M11〜M1Wを受け、その受けた距離信号M11〜M1Wによって選択された遅延経路(N51→トランスファゲート604→インバータ606、またはN51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606)を介して信号を遅延させる。この場合、1ビットステージ261〜26Wの各々は、パスエンコーダPE’1から受けた距離信号(M11〜M1Wのいずれか)が“0”である場合、N51→トランスファゲート604→インバータ606からなる遅延経路を介して信号を遅延し、パスエンコーダPE’1から受けた距離信号(M11〜M1Wのいずれか)が“1”である場合、N51→トランスファゲート601→遅延器603→トランスファゲート605→インバータ606からなる遅延経路を介して信号を遅延させる。
このように、距離/時間変換回路DT’1Aは、分周器741〜74K−1における分周回数を分周器741から分周器74Kへ向かう方向に順次減少させることによって、発振回路731〜73Kによって発振された発振信号の遅延時間を参照データと検索データとの最上位ビットから最下位ビットへ向かう方向に順次短くする構成を実現したものである。
図28に示す距離/時間変換回路DT’2〜DT’Rの各々も、図31に示す距離/時間変換回路DT’1Aと同じ構成からなる。
距離/時間変換回路DT’1Aを備える連想メモリ100Aにおける動作について説明する。ユニット比較回路UC’11〜UC’1W,UC’21〜UC’2W,・・・,UC’R1〜UC’RWは、上述したように、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWをそれぞれパスエンコーダPE’1〜PE’Rへ出力する。
パスエンコーダPE’1は、上述した方法によって、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWに基づいて、距離信号M11M12・・・M1W,M21M22・・・M2W,・・・,MK1MK2・・・MKWを生成する。そして、パスエンコーダPE’1は、距離信号M11M12・・・M1Wを距離/時間変換回路DT’1Aの発振回路731へ出力し、以下、同様にして、距離信号MK−11MK−12・・・MK−1Wを距離/時間変換回路DT’1Aの発振回路73K−1へ出力し、距離信号MK1MK2・・・MKWを距離/時間変換回路DT’1Aの発振回路73Kへ出力する。パスエンコーダPE’2〜PE’Rについても同様である。
そして、距離/時間変換回路DT’1Aにおいては、発振回路731および分周器741は、最初に、距離信号M11M12・・・M1Wによって選択された遅延経路を用いて発振信号を発振するとともに、発振信号を2K−1回分周し、その次に、発振回路732および分周器742は、距離信号M21M22・・・M2Wによって選択された遅延経路を用いて発振信号を発振するとともに、発振信号を2K−2回分周し、以下、同様にして、発振回路73Kは、最後に、距離信号MK1MK2・・・MKWによって選択された遅延経路を用いて発振信号を発振する。そして、距離/時間変換回路DT’1Aは、発振信号S1を分周回路20へ出力する。
距離/時間変換回路DT’2〜DT’R(=距離/時間変換回路DT’1A)も、同様にして、それぞれ発振信号S2〜SRを発振し、その発振した発振信号S2〜SRを分周回路20へ出力する。
そうすると、分周回路20は、上述した方法によって、発振信号S1〜SRを所望回数だけ分周し、その分周した発振信号Sd1〜SdRを時間領域WTA回路30へ出力する。そして、時間領域WTA回路30は、上述した方法によって、発振信号Sd1〜SdRのうち、最も早くする変化する発振信号(発振信号Sd1〜SdRのいずれか)を検出し、マッチ信号M1〜MRを出力する。
その結果、距離/時間変換回路DT’1〜DT’Rの各々が距離/時間変換回路DT’1Aからなる場合も、上述した理由によって、連想メモリ100Aの検索時間を短縮できる。
図32は、図28に示す距離/時間変換回路DT’1の更に他の構成を示すブロック図である。
距離/時間変換回路DT’1は、図32に示す距離/時間変換回路DT’1Bからなっていてもよい。図32を参照して、距離/時間変換回路DT’1Bは、発振回路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の全てにおいてτsである。
マルチプレクサMU11〜MU1Wは、それぞれ、1ビットステージ271〜27Wに対応して配置される。マルチプレクサMU21〜MU2Wは、それぞれ、1ビットステージ281〜28Wに対応して配置される。
マルチプレクサMU11は、Kビットの距離信号M11,M21,・・・MK1のうち、奇数ビットの距離信号M11,M31,M51,・・・をパスエンコーダPE’1から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU11は、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M11,M31,M51,・・・を1個ずつ1ビットステージ271へ順次出力する。なお、信号SHIFT_ODDBIT_SETは、1つのパルス波形からなる。
マルチプレクサMU12は、Kビットの距離信号M12,M22,・・・MK2のうち、奇数ビットの距離信号M12,M32,M52,・・・をパスエンコーダPE’1から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU12は、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M12,M32,M52,・・・を1個ずつ1ビットステージ272へ順次出力する。
以下、同様にして、マルチプレクサMU1W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうち、奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・をパスエンコーダPE’1から受け、遅延回路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ビットの距離信号M1W,M2W,・・・MKWのうち、奇数ビットの距離信号M1W,M3W,M5W,・・・をパスエンコーダPE’1から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETを受ける。そして、マルチプレクサMU1Wは、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに奇数ビットの距離信号M1W,M3W,M5W,・・・を1個ずつ1ビットステージ27Wへ順次出力する。
一方、マルチプレクサMU21は、Kビットの距離信号M11,M21,・・・MK1のうち、偶数ビットの距離信号M21,M41,M61,・・・をパスエンコーダPE’1から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU21は、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M21,M41,M61,・・・を1個ずつ1ビットステージ281へ順次出力する。なお、信号SHIFT_evenBIT_SETは、1つのパルス波形からなる。
マルチプレクサMU22は、Kビットの距離信号M12,M22,・・・MK2のうち、偶数ビットの距離信号M22,M42,M62,・・・をパスエンコーダPE’1から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU22は、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M22,M42,M62,・・・を1個ずつ1ビットステージ282へ順次出力する。
以下、同様にして、マルチプレクサMU2W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1のうち、偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・をパスエンコーダPE’1から受け、遅延回路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ビットの距離信号M1W,M2W,・・・MKWのうち、偶数ビットの距離信号M2W,M4W,M6W,・・・をパスエンコーダPE’1から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETを受ける。そして、マルチプレクサMU2Wは、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに偶数ビットの距離信号M2W,M4W,M6W,・・・を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を発振信号S1として分周回路20へ出力する。また、選択器780は、選択信号F_SEL02が“1”であるとき、信号out_2を発振信号S1として分周回路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ビットの距離信号M11M21・・・MK1のうち、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ビットの距離信号M11M21・・・MK1のうち、それぞれ、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によって更に22回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
以下、同様にして、段数可変分周器763は、“1”からなる選択信号F_SEL15,F_SEL17をそれぞれゲート7647,7649に受けると、それぞれ分周器7635および分周器7637から受けた発振信号を分周器7636,7637および分周器7638,7649によって更に22回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
その結果、段数可変分周器763は、“1”からなる選択信号F_SEL11,F_SEL13,F_SEL15,F_SEL17をそれぞれゲート7643,7645,7647,7649に受けることによって、発振信号をそれぞれ2,23,25,27回分周して遅延回路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によって22回分周してノードN94から遅延回路770およびフリップフロップ767へ出力する。
また、段数可変分周器769は、“1”からなる選択信号F_SEL14をゲート7646に受けると、分周器7635から受けた発振信号を分周器7636,7637によって更に22回分周してノードN94から遅延回路770およびフリップフロップ767へ出力する。
更に、段数可変分周器769は、“1”からなる選択信号F_SEL16をゲート7648に受けると、分周器7637から受けた発振信号を分周器7638,7639によって更に22回分周してノードN94から遅延回路770およびフリップフロップ767へ出力する。
その結果、段数可変分周器769は、“1”からなる選択信号F_SEL12,F_SEL14,F_SEL16をそれぞれゲート7644,7646,7648に受けることによって、発振信号をそれぞれ22,24,26回分周して遅延回路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’1Bを備える連想メモリ100Aの動作を説明するための第1および第2の概念図である。
連想メモリ100Aにおける検索が開始されると、ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの間の距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWをパスエンコーダPE’1ヘ出力する。ユニット比較回路UC’21〜UC’2W,・・・,UC’R1〜UC’RWも、同様に、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWをそれぞれパスエンコーダPE’2〜PE’Rへ出力する。
パスエンコーダPE’1は、上述した方法によって、距離信号M11M21・・・MK1M12M22・・・MK2・・・M1WM2W・・・MKWに基づいて、距離信号M11M12・・・M1W,M21M22・・・M2W,・・・,MK1MK2・・・MKWを生成する。そして、パスエンコーダPE’1は、距離信号M11M12・・・M1W、距離信号M31M32・・・M3W、距離信号M51M52・・・M5W、・・・をマルチプレクサMU11〜MU1Wへ順次出力し、距離信号M21M22・・・M2W、距離信号M41M42・・・M4W、距離信号M61M62・・・M6W、・・・をマルチプレクサMU21〜MU2Wへ順次出力する。パスエンコーダPE’2〜PE’Rについても同様である。
距離/時間変換回路DT’1(=距離/時間変換回路DT’1B)において、マルチプレクサMU11は、奇数ビットの距離信号M11,M31,M51,・・・を順次受け、マルチプレクサMU12は、奇数ビットの距離信号M12,M32,M52,・・・を順次受け、以下、同様にして、マルチプレクサMU1W−1は、奇数ビットの距離信号M1W−1,M3W−1,M5W−1,・・・を順次受け、マルチプレクサMU1Wは、奇数ビットの距離信号M1W,M3W,M5W,・・・を順次受ける。また、マルチプレクサMU21は、偶数ビットの距離信号M21,M41,M61,・・・を順次受け、マルチプレクサMU22は、偶数ビットの距離信号M22,M42,M62,・・・を順次受け、以下、同様にして、マルチプレクサMU2W−1は、偶数ビットの距離信号M2W−1,M4W−1,M6W−1,・・・を順次受け、マルチプレクサMU2Wは、偶数ビットの距離信号M2W,M4W,M6W,・・・を順次受ける。
マルチプレクサMU11においては、ゲート295は、“1”からなる信号EN11をシフトレジスタ291から受け、ゲート296〜298は、“0”からなる信号EN12〜EN14をそれぞれシフトレジスタ292〜295から受けるので、マルチプレクサMU11は、1ビット目の距離信号M11を1ビットステージ271へ出力する。マルチプレクサMU12〜MU1Wも、同様に、それぞれ、1ビット目の距離信号M12〜M1Wを1ビットステージ272〜27Wへ出力する。
また、マルチプレクサMU21〜MU2Wも、同様に、それぞれ、2ビット目のM21〜M2Wを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は、距離信号M11によって選択された遅延経路を用いて“1”からなる信号を遅延し、その遅延した信号を1ビットステージ272へ出力する。その後、1ビットステージ272〜27Wは、それぞれ、距離信号M12〜M1Wによって選択された遅延経路を用いて、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によって27回分周され、段数可変分周器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ビット目の距離信号M31を1ビットステージ271へ出力する。マルチプレクサMU12〜MU1Wも、同様にして、タイミングt6でそれぞれ3ビット目の距離信号M32〜M3Wを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ビット目の距離信号M21〜M2Wを既に受けている。従って、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ビット目の距離信号M41を1ビットステージ281へ出力する。マルチプレクサMU22〜MU2Wも、同様にして、タイミングt8でそれぞれ4ビット目の距離信号M42〜M4Wを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ビット目の距離信号M31〜M3Wをタイミングt6で受けている。
従って、1ビットステージ271〜27Wは、それぞれ、3ビット目の距離信号M31〜M3Wによって選択された遅延経路を用いて信号を遅延し、発振信号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からの発振信号を27回、25回、23回および2回分周し、段数可変分周器769は、発振回路752からの発振信号を26回、24回、22回および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”に基づいて、27回分周、25回分周、23回分周および2回分周を順次実行した後の発振信号を信号out_1として選択器780へ出力する。また、段数可変分周器769は、選択信号F_SEL16=F_SEL14=F_SEL12=“0”および選択信号F_SEL10=“1”に基づいて、26回分周、24回分周、22回および1回分周を順次実行した後の発振信号を信号out_2として選択器780へ出力する。
そして、選択器780は、選択信号F_SEL_02=“1”に応じて、信号out_2を選択し、その選択した信号out_2を発振信号S1として分周回路20へ出力する。
なお、距離/時間変換回路DT’2〜DT’Rの各々も、上述した動作を実行し、それぞれ、発振信号S2〜SRを分周回路20へ出力する。
分周回路20および時間領域WTA回路30における動作は、上述したとおりである。
このように、距離/時間変換回路DT’1〜DT’Rの各々が図32に示す距離/時間変換回路DT’1Bからなる場合、発振回路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’1Bを備える連想メモリ100Aは、上述した方法によって、検索データに一致する参照データを検索できる。
より詳細に説明する。参照データおよび検索データのビット数Kが6ビットである場合、信号SHIFT_ODDBIT_SET,SHIFT_evenBIT_SETの各々は、連続した2つのパルス波形からなり、信号FSEL_SETは、連続した3つのパルス波形からなる。
参照データおよび検索データのビット数Kが6ビットである場合、マルチプレクサMU11〜MU1Wは、3ビット目、5ビット目および7ビット目の奇数ビットをパスエンコーダPE’1から受ける。また、参照データおよび検索データのビット数Kが6ビットである場合、マルチプレクサMU21〜MU2Wは、4ビット目および6ビット目の偶数ビットをパスエンコーダPE’1から受ける。
マルチプレクサ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によって25回分周し、ノード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によって24回分周し、ノードN94からNAND回路768および遅延回路770へ出力する。
その後、距離/時間変換回路DT’1Bは、発振回路751による発振信号の生成および段数可変分周器763による発振信号の分周と、発振回路752による発振信号の生成および段数可変分周器769による発振信号の分周とを交互に行い、選択器780から発振信号S1を分周回路20へ出力する。
検索データおよび参照データのビット数Kが6ビットからなる場合、距離/時間変換回路DT’2(=DT’1B)〜DT’R(=DT’1B)も、上述した動作によって、それぞれ、発振信号S2〜SRを生成し、その生成した発振信号S2〜SRを分周回路20へ出力する。
このように、検索データおよび参照データのビット数Kが6ビットからなる場合、パスエンコーダPE’1〜PE’Rからそれぞれ距離/時間変換回路DT’1(=DT’1B)〜DT’R(=DT’1B)へ入力される1ビット目の奇数ビットおよび2ビット目の偶数ビットを上述した方法によって実質的に無視することによって、距離/時間変換回路DT’1(=DT’1B)〜DT’R(=DT’1B)は、図32に示す回路構成を用いて、それぞれ、発振信号S1〜SRを生成して分周回路20へ出力する。
また、検索データおよび参照データのビット数Kが4ビットからなる場合、信号SHIFT_ODDBIT_SET,SHIFT_evenBIT_SETの各々を連続する3つのパルス波形から構成し、信号FSEL_SETを連続する5つのパルス波形から構成することによって、距離/時間変換回路DT’1(=DT’1B)〜DT’R(=DT’1B)は、上述した方法によって、図32に示す回路構成を用いて、それぞれ、発振信号S1〜SRを生成して分周回路20へ出力する。
更に、検索データおよび参照データのビット数Kが2ビットからなる場合、信号SHIFT_ODDBIT_SET,SHIFT_evenBIT_SETの各々を連続する4つのパルス波形から構成し、信号FSEL_SETを連続する7つのパルス波形から構成することによって、距離/時間変換回路DT’1(=DT’1B)〜DT’R(=DT’1B)は、上述した方法によって、図32に示す回路構成を用いて、それぞれ、発振信号S1〜SRを生成して分周回路20へ出力する。
従って、検索データおよび参照データのビット数Kが2ビット、4ビット、6ビットおよび8ビットのいずれであっても、距離/時間変換回路DT’1(=DT’1B)〜DT’R(=DT’1B)は、上述した方法によって、図32に示す回路構成を用いて、それぞれ、発振信号S1〜SRを生成して分周回路20へ出力できる。
図43は、図28に示す距離/時間変換回路の更に他の構成を示すブロック図である。距離/時間変換回路DT’1は、図43に示す距離/時間変換回路DT’1Cからなっていてもよい。
図43を参照して、距離/時間変換回路DT’1Cは、図32に示す距離/時間変換回路DT’1BのマルチプレクサMU11〜MU1WをマルチプレクサMU31〜MU3Wに代え、マルチプレクサMU21〜MU2WをマルチプレクサMU41〜MU4Wに代え、スイッチング制御回路760をスイッチング制御回路760Aに代え、選択器780を選択器780Aに代えたものであり、その他は、距離/時間変換回路DT’1Bと同じである。
スイッチング制御回路760Aは、図32に示すスイッチング制御回路760の段数可変分周器763,769をそれぞれ段数可変分周器763A,769Aに代えたものであり、その他は、スイッチング制御回路760と同じである。
なお、距離/時間変換回路DT’1Cにおいては、選択信号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ビットの距離信号M11,M21,・・・MK1をパスエンコーダPE’1から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU31は、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M11,M21,・・・MK1のうちの奇数ビットの距離信号M11,M31,M51,・・・を1個ずつ1ビットステージ271へ順次出力する。また、マルチプレクサMU31は、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M11,M21,・・・MK1のうちの偶数ビットの距離信号M21,M41,M61,・・・を1個ずつ1ビットステージ271へ順次出力する。
マルチプレクサMU32は、Kビットの距離信号M12,M22,・・・MK2をパスエンコーダPE’1から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU32は、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M12,M22,・・・MK2のうちの奇数ビットの距離信号M12,M32,M52,・・・を1個ずつ1ビットステージ272へ順次出力する。また、マルチプレクサMU32は、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M12,M22,・・・MK2のうちの偶数ビットの距離信号M22,M42,M62,・・・を1個ずつ1ビットステージ272へ順次出力する。
以下、同様にして、マルチプレクサMU3W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1をパスエンコーダPE’1から受け、遅延回路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ビットの距離信号M1W,M2W,・・・MKWをパスエンコーダPE’1から受け、遅延回路764から信号SW_1を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_ODDBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU3Wは、信号evenが“1”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W,M2W,・・・MKWのうちの奇数ビットの距離信号M1W,M3W,M5W,・・・を1個ずつ1ビットステージ27Wへ順次出力する。また、マルチプレクサMU3Wは、信号evenが“0”であるとき、信号SHIFT_ODDBIT_SETまたは信号SW_1が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W,M2W,・・・MKWのうちの偶数ビットの距離信号M2W,M4W,M6W,・・・を1個ずつ1ビットステージ27Wへ順次出力する。
一方、マルチプレクサMU41は、Kビットの距離信号M11,M21,・・・MK1をパスエンコーダPE’1から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU41は、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M11,M21,・・・MK1のうちの偶数ビットの距離信号M21,M41,M61,・・・を1個ずつ1ビットステージ281へ順次出力する。また、マルチプレクサMU41は、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M11,M21,・・・MK1のうちの奇数ビットの距離信号M11,M31,M51,・・・を1個ずつ1ビットステージ281へ順次出力する。
マルチプレクサMU42は、Kビットの距離信号M12,M22,・・・MK2をパスエンコーダPE’1から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU42は、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M12,M22,・・・MK2のうちの偶数ビットの距離信号M22,M42,M62,・・・を1個ずつ1ビットステージ282へ順次出力する。また、マルチプレクサMU42は、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M12,M22,・・・MK2のうちの奇数ビットの距離信号M12,M32,M52,・・・を1個ずつ1ビットステージ282へ順次出力する。
以下、同様にして、マルチプレクサMU4W−1は、Kビットの距離信号M1W−1,M2W−1,・・・MKW−1をパスエンコーダPE’1から受け、遅延回路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ビットの距離信号M1W,M2W,・・・MKWをパスエンコーダPE’1から受け、遅延回路770から信号SW_2を受け、連想メモリ100Aの制御回路(図示せず)から信号SHIFT_evenBIT_SETおよび信号evenを受ける。そして、マルチプレクサMU4Wは、信号evenが“1”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W,M2W,・・・MKWのうちの偶数ビットの距離信号M2W,M4W,M6W,・・・を1個ずつ1ビットステージ28Wへ順次出力する。また、マルチプレクサMU4Wは、信号evenが“0”であるとき、信号SHIFT_evenBIT_SETまたは信号SW_2が立ち上がった後に立ち下がるごとに、Kビットの距離信号M1W,M2W,・・・MKWのうちの奇数ビットの距離信号M1W,M3W,M5W,・・・を1個ずつ1ビットステージ28Wへ順次出力する。
なお、距離/時間変換回路DT’1Cにおいては、信号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を発振信号S1として分周回路20へ出力する。また、選択器780Aは、信号evenが“1”であるとき、信号out_2を発振信号S1として分周回路20へ出力する。
なお、距離/時間変換回路DT’2〜DT’Rの各々も、図43に示す距離/時間変換回路DT’1Cからなる。
図44は、図43に示すマルチプレクサMU31の回路図である。図44を参照して、マルチプレクサMU31は、図33に示すマルチプレクサMU11に選択器101〜104を追加したものであり、その他は、マルチプレクサMU11と同じである。
選択器101〜104は、それぞれ、ゲート295〜298に接続される。選択器101は、1ビット目および2ビット目の距離信号をパスエンコーダPE’1からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器101は、信号evenが“1”であるとき、1ビット目の距離信号をゲート295へ出力する。また、選択器101は、信号evenが“0”であるとき、2ビット目の距離信号をゲート295へ出力する。
選択器102は、3ビット目および4ビット目の距離信号をパスエンコーダPE’1からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器102は、信号evenが“1”であるとき、3ビット目の距離信号をゲート296へ出力する。また、選択器102は、信号evenが“0”であるとき、4ビット目の距離信号をゲート296へ出力する。
選択器103は、5ビット目および6ビット目の距離信号をパスエンコーダPE’1からそれぞれ端子in1,in2に受け、連想メモリ100Aの制御回路から信号evenを受ける。そして、選択器103は、信号evenが“1”であるとき、5ビット目の距離信号をゲート297へ出力する。また、選択器103は、信号evenが“0”であるとき、6ビット目の距離信号をゲート297へ出力する。
選択器104は、7ビット目および8ビット目の距離信号をパスエンコーダPE’1からそれぞれ端子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によって22回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL13をゲート7645に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7635によって23回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL14をゲート7646に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7636によって24回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL15をゲート7647に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7637によって25回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL16をゲート7648に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7638によって26回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
更に、段数可変分周器763Aは、“1”からなる選択信号F_SEL17をゲート7649に受けると、NOR回路7631から受けた信号CH_out(発振信号)を分周器7633〜7639によって27回分周してノードN94から遅延回路764およびフリップフロップ766へ出力する。
その結果、段数可変分周器763Aは、“1”からなる選択信号F_SEL11〜F_SEL17をそれぞれゲート7643〜7649に受けることによって、発振信号をそれぞれ2,22,23,24,25,26,27回分周して遅延回路764およびフリップフロップ766へ出力する。
そして、段数可変分周器763Aは、“1”からなる選択信号F_SEL10をゲート7641に受けると、ノードN93から発振信号を分周回路20へ出力する。
このように、段数可変分周器763Aは、選択信号F_SEL11〜F_SEL17によって分周回数を切り換えて発振信号を分周する。
なお、図43に示す段数可変分周器769Aも、図45に示す段数可変分周器763Aと同じ回路図からなる。
距離/時間変換回路DT’1Cを備えた連想メモリ100Aにおける検索が開始されると、ユニット比較回路UC’11〜UC’1Wは、W個の参照データと検索データとの間の距離信号M11M21・・・MK1,M12M22・・・MK2,・・・,M1WM2W・・・MKWをパスエンコーダPE’1ヘ出力する。ユニット比較回路UC’21〜UC’2W,・・・,UC’R1〜UC’RWも、同様に、距離信号M11M21・・・MK1,M12M22・・・MK2,・・・,M1WM2W・・・MKWをそれぞれパスエンコーダPE’2〜PE’Rへ出力する。
パスエンコーダPE’1は、上述した方法によって、距離信号M11M21・・・MK1M12,M22・・・MK2,・・・,M1WM2W・・・MKWに基づいて、距離信号M11M12・・・M1W,M21M22・・・M2W,・・・,MK1MK2・・・MKWを生成する。そして、パスエンコーダPE’1は、距離信号M11M12・・・M1W、距離信号M21M22・・・M2W、・・・、距離信号MK1MK2・・・MKWをそれぞれマルチプレクサMU31〜MU3Wへ順次出力し、距離信号M11M12・・・M1W、距離信号M21M22・・・M2W、・・・、距離信号MK1MK2・・・MKWをそれぞれマルチプレクサMU41〜MU4Wへ順次出力する。パスエンコーダPE’2〜PE’Rについても同様である。
距離/時間変換回路DT’1(=距離/時間変換回路DT’1C)において、マルチプレクサMU31は、距離信号M11,M21,M31,M41,M51,・・・,MK1を順次受け、マルチプレクサMU32は、距離信号M12,M22,M32,M42,M52,・・・,MK2を順次受け、以下、同様にして、マルチプレクサMU3W−1は、距離信号M1W−1,M2W−1,M3W−1,M4W−1,M5W−1,・・・、MKW−1を順次受け、マルチプレクサMU3Wは、距離信号M1W,M2W,M3W,M4W,M5W,・・・,MKWを順次受ける。
また、マルチプレクサMU41〜MU4Wは、それぞれ、マルチプレクサMU31〜MU3Wと同じ距離信号を順次受ける。
更に、マルチプレクサMU31〜MU3W,MU41〜MU4Wおよびスイッチング回路765は、“1”からなる信号evenを連想メモリ100Aの制御回路から受ける。
マルチプレクサMU31においては、選択器101は、1ビット目の距離信号M11および2ビット目の距離信号M21を受け、選択器102は、3ビット目の距離信号M31および4ビット目の距離信号M41を受け、選択器103は、5ビット目の距離信号M51および6ビット目の距離信号M61を受け、選択器104は、7ビット目の距離信号M71および8ビット目の距離信号M81を受ける。そして、選択器101〜104は、“1”からなる信号evenを受けているので、それぞれ、1ビット目の距離信号M11、3ビット目の距離信号M31、5ビット目の距離M51および7ビット目の距離信号M71をそれぞれゲート295〜298へ出力する。
一方、ゲート295は、“1”からなる信号EN11をシフトレジスタ291から受けるので、マルチプレクサMU31は、1ビット目の距離信号M11を1ビットステージ271へ出力する。また、ゲート296〜298は、それぞれ、“0”からなる信号EN12〜EN14をシフトレジスタ292〜294から受けるので、何も出力しない。その結果、マルチプレクサMU31は、1ビット目の距離信号M11を1ビットステージ271へ出力する。マルチプレクサMU32〜MU3Wも、同様に、それぞれ、1ビット目の距離信号M12〜M1Wを1ビットステージ272〜27Wへ出力する。
また、マルチプレクサMU41〜MU4Wも、同様に、それぞれ、1ビット目の距離信号M11〜M1Wを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は、距離信号M11によって選択された遅延経路を用いて“1”からなる信号を遅延し、その遅延した信号を1ビットステージ272へ出力する。そして、1ビットステージ272〜27Wは、それぞれ、距離信号M12〜M1Wによって選択された遅延経路を用いて、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によって27回分周され、段数可変分周器763Aは、27回分周後の信号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ビット目の距離信号M31を1ビットステージ271へ出力する。マルチプレクサMU32〜MU3Wも、同様にして、それぞれ3ビット目の距離信号M32〜M3Wを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ビット目の距離信号M21〜M2Wを1ビットステージ281〜28Wへ出力する。
そして、1ビットステージ281〜28Wは、それぞれ、マルチプレクサMU41〜MU4Wから2ビット目の距離信号M21〜M2Wを受け、NAND回路768からの信号を2ビット目の距離信号M21〜M2Wに応じた遅延経路によって遅延して発振信号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によって26回分周し、ノード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ビット目の距離信号M41を1ビットステージ281へ出力する。マルチプレクサMU42〜MU4Wも、同様にして、それぞれ4ビット目の距離信号M42〜M4Wを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ビット目の距離信号M31〜M3Wを受けている。
従って、1ビットステージ271〜27Wは、それぞれ、3ビット目の距離信号M31〜M3Wによって選択された遅延経路を用いて信号を遅延し、発振信号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によって25回分周し、信号Freq_out_1をノードN94から遅延回路764およびフリップフロップ766へ出力する。
遅延回路764は、信号Freq_out_1をτだけ遅延して信号SW_1をマルチプレクサMU31〜MU3W、EN選択回路761、スイッチング回路765Aおよびフリップフロップ767へ出力する。
以後、上述した動作が繰り返し行われ、発振回路751,752は、交互に発振信号を発振し、段数可変分周器763Aは、発振回路751からの発振信号を27回、25回、23回、および2回分周し、段数可変分周器769Aは、発振回路752からの発振信号を26回、24回、22回および1回分周する。そして、段数可変分器器769Aにおける分周が終了すると、スイッチング回路765は、選択信号F_SEL17〜F_SEL11=“0”および選択信号F_SEL10=“1”を段数可変分周器763A,769Aへ出力する。
そうすると、段数可変分周器763Aは、選択信号F_SEL17〜F_SEL11=“0”および選択信号F_SEL10=“1”に基づいて、27回、25回、23回、および2回分周を順次実行した後の発振信号を信号out_1として選択器780Aへ出力する。また、段数可変分周器769Aは、選択信号F_SEL17〜F_SEL11=“0”および選択信号F_SEL10=“1”に基づいて、26回、24回、22回および1回分周を順次実行した後の発振信号を信号out_2として選択器780Aへ出力する。
そして、選択器780Aは、“1”からなる信号evenに応じて、信号out_2を選択し、その選択した信号out_2を発振信号S1として分周回路20へ出力する。
なお、距離/時間変換回路DT’2〜DT’Rの各々も、上述した動作を実行し、それぞれ、発振信号S2〜SRを分周回路20へ出力する。
分周回路20および時間領域WTA回路30における動作は、上述したとおりである。
上記においては、Kビットの距離信号が8ビットである場合について説明したが、距離/時間変換回路DT’1Cを備えた連想メモリ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を発振信号S1として分周回路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を発振信号S1として分周回路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を発振信号S1として分周回路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を発振信号S1として分周回路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を発振信号S1として分周回路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を発振信号S1として分周回路20へ出力する。
このように、距離/時間変換回路DT’1Cを備えた連想メモリ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における説明と同じである。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。