(57)【要約】【課題】高速動作が図れ、かつ列方向に離れた位置に在るワード記憶部間でのビット同士の演算を簡単に行うことができるようにすること。【解決手段】ＣＡＭセルアレイ１には、演算対象となるデータが格納される。検索動作によってマッチ線に出力される検索結果（タグ情報）を検出するマッチ線アンプ２の出力をマッチ線タグレジスタ３に保存すると、直ちにそのタグ情報をワード線タグレジスタ４に転送する。そして、ワード線タグレジスタ４から取り出したタグ情報をワード線ドライバ５に与え、ＣＡＭセルアレイ１の対応するワード線を活性化して書き込みを行う。このように構成すれば、初回の検索動作以後では、例えば、あるワード記憶部では検索動作を、他のワード記憶部では書き込み動作を並行して連続的に動作させることが可能となる。【選択図】        図１
2006092676.tif 000002
【特許請求の範囲】
【請求項１】
連想メモリにおいて検索動作を行い、メモリセルアレイの各ワード記憶領域にて得られた検索結果であるタグ情報をレジスタに保存し、その保存したタグ情報を用いてワード線を活性化して書き込み動作を行うことで演算を実施する連想メモリを用いた演算回路において、
前記レジスタを第１のレジスタと第２のレジスタとで構成し、
初回の１クロック周期では検索動作を実施して得られたタグ情報を前記第１のレジスタに保存し、２回目以降の各１クロック周期では、前周期にて前記第１のレジスタに保存したタグ情報を前記第２のレジスタに転送し、その転送したタグ情報を用いて書き込み動作を実施し、並行して検索動作を実施し、得られたタグ情報を前記第１のレジスタに保存する動作を制御する手段、
を備えていることを特徴とする連想メモリを用いた演算回路。
【請求項２】
前記第１のレジスタは、
前記メモリセルアレイを所定数のワード記憶領域に区分したアレイマット毎に対応して設けられる複数のサブレジスタと、
前記複数のサブレジスタに保存されるタグ情報が転送されるメインレジスタとで構成され、
前記メインレジスタに保存されたタグ情報が前記第２のレジスタに転送される、
ことを特徴とする請求項１に記載の連想メモリを用いた演算回路。
【請求項３】
前記複数のサブレジスタに保存されるタグ情報は、共通のＡＮＤ回路を介して前記メインレジスタに転送される、ことを特徴とする請求項２に記載の連想メモリを用いた演算回路。
【請求項４】
前記複数のサブレジスタに保存されるタグ情報は、一のサブレジスタに保存されたタグ情報と隣接する他の一のサブレジスタに保存されたタグ情報との論理積を取ることを順々に行うことで前記メインレジスタに転送される、ことを特徴とする請求項２に記載の連想メモリを用いた演算回路。
【請求項５】
前記メモリセルアレイを構成する各メモリセルは、ワード線の活性化有無とは無関係に任意のタイミングにおいてその保持するデータを消去し、また書き込むことを可能にするリセット手段、を備えていることを特徴とする請求項１または２に記載の連想メモリを用いた演算回路。
【請求項６】
前記連想メモリが書き込み動作を制御するビット線と検索動作を制御するサーチ線とを備える場合に、前記メモリセルアレイを構成する各メモリセルは、検索動作時には前記ビット線を接地電位に引き込み、書き込み動作時には前記サーチ線を接地電位に引き込む手段、を備えていることを特徴とする請求項１、２、５のいずれか一つに記載の連想メモリを用いた演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、連想メモリを用いた演算回路に関するものである。
【背景技術】
【０００２】
連想メモリ（Content Addressable Memory：以降「ＣＡＭ」と記す）は、データの検索等に用いられる記憶装置であり、例えば図９に示すように構成される。図９は、ＣＡＭの基本的な構成例を示すブロック図である。図９では、ＣＡＭセルアレイ７２と、このＣＡＭセルアレイ７２の主な周辺回路として、アドレス・バッファ７０、ロウデコーダ７１、マッチ線アンプ７３、プライオリティ・エンコーダ７４、出力バッファ７５、センスアンプ７６、サーチ線ドライバ・ライトドライバ７７、データ・バッファ７８、および出力バッファ７９が示されている。
【０００３】
ＣＡＭセルアレイ７２は、１ビットの記憶保持を行うＣＡＭセルのｎ個を行方向に直列に並べて１ワードの記憶部とし（図１０参照）、そのワード記憶部を列方向にｍ個（ワード０〜ワードｍ−１）並列に並べて構成されている。ｍ個のワード記憶部では、各ワード記憶部での読み書きを制御するｍ個のワード線（ワード線０〜ワード線ｍ−１）と一致不一致の検索結果を取り出すｍ個のマッチ線（マッチ線０〜マッチ線ｍ−１）とが設けられている。また、ｍ個のワード記憶部（ワード０〜ワードｍ−１）に跨る列方向には、各ワード記憶部での読み書きを制御するｎ個のビット線（ビット線０〜ビット線ｎ−１）と検索動作を制御するｎ個のサーチ線（サーチ線０〜サーチ線ｎ−１）とが設けられている。なお、ビット線とサーチ線は、それぞれ、正極性と負極性の対線である。
【０００４】
アドレス・バッファ７０に外部から入力されるアドレスＡ［ｉ：０］は、書き込み用、読み出し用、検索用のいずれかのアドレスである。ｍ個のワード線（ワード線０〜ワード線ｍ−１）の片端は、アドレス・バッファ７０の出力を受けるロウデコーダ７１の出力端に接続され、ロウデコーダ７１のデコード内容に応じていずれか一つが選択され活性化される。また、ｍ個のマッチ線（マッチ線０〜マッチ線ｍ−１）は、ロウデコーダ７１側に設けられる図示しないプリチャージ回路とマッチ線アンプ７３との間に設けられている。マッチ線アンプ７３の出力は、プライオリティ・エンコーダ７４を介して出力バッファ７５に入力される。
【０００５】
ｎ個のビット線（ビット線０〜ビット線ｎ−１）の片端は、センスアンプ７６とサーチ線ドライバ・ライトドライバ７７におけるライトドライバとに接続されている。また、ｎ個のサーチ線（サーチ線０〜サーチ線ｎ−１）の片端は、サーチ線ドライバ・ライトドライバ７７におけるサーチ線ドライバに接続されている。
【０００６】
また、データ・バッファ７８に外部から入力されるデータＤ［ｊ：０］は、書き込み用または検索用のデータである。このデータＤ［ｊ：０］は、１ワード長つまりｎビット幅のデータである。データ・バッファ７８が出力するデータｉｎｔＤ［ｊ：０］のうち、書き込み用のデータは、サーチ線ドライバ・ライトドライバ７７におけるライトドライバに与えられ、検索用のデータは、サーチ線ドライバ・ライトドライバ７７におけるサーチ線ドライバに与えられる。センスアンプ７６の出力は、出力バッファ７９に入力される。サーチ線ドライバ・ライトドライバ７７は、ｎ個のビット線（ビット線０〜ビット線ｎ−１）とｎ個のサーチ線（サーチ線０〜サーチ線ｎ−１）の所定電位レベルへのプリチャージを行い、データ・バッファ７８から入力するデータｉｎｔＤ［ｊ：０］に従ってｎ個のビット線（ビット線０〜ビット線ｎ−１）とｎ個のサーチ線（サーチ線０〜サーチ線ｎ−１）の活性化を制御することで、読み書き動作と検索動作とを実現する。
【０００７】
以上の構成によって、ＣＡＭセルアレイ７２では、データの書き込み、読み出しおよび検索がワード単位に行えるようになっている。すなわち、データの書き込みでは、アドレス・バッファ７０に書き込み用のアドレスＡ［ｉ：０］を与えてｍ個のワード線（ワード線０〜ワード線ｍ−１）のいずれか一つを選択し、データ・バッファ７８に書き込み用のデータＤ［ｊ：０］を与えてｎ個のビット線（ビット線０〜ビット線ｎ−１）をドライブしてｎ個のビット線（ビット線０〜ビット線ｎ−１）上に書き込みデータを乗せ、選択した一つのワード記憶部の各ＣＡＭセルにデータを書き込み保持させる。
【０００８】
また、読み出しでは、アドレス・バッファ７０に読み出し用のアドレスＡ［ｉ：０］を与えてｍ個のワード線（ワード線０〜ワード線ｍ−１）のいずれか一つを選択する。選択された一つのワード記憶部では、予め所定電位レベルにプリチャージされているｎ個のビット線（ビット線０〜ビット線ｎ−１）に微少差電圧信号が取り出される。センスアンプ７６では、その微少差電圧信号を増幅して論理状態を判定する。出力バッファ７９から読み出しデータＱ［ｊ：０］が得られる。
【０００９】
そして、検索データと一致する記憶データを検索するときは、各ワード記憶部にデータを保持させた状態で、アドレス・バッファ７０に検索データのアドレスＡ［ｉ：０］を与えてｍ個のワード線（ワード線０〜ワード線ｍ−１）のいずれか一つを選択し、データ・バッファ７８に検索データＤ［ｊ：０］を与え、予め所定電位レベルにプリチャージされているｎ個のサーチ線（サーチ線０〜サーチ線ｎ−１）をドライブしてｎ個のサーチ線（サーチ線０〜サーチ線ｎ−１）上に検索データを乗せる。その結果、ＣＡＭセルに付随して設けられる比較回路にて記憶データとの一致判定が行われる。ｎビットの全てが一致したとき、当該ワード記憶部の格納データは検索データと一致していると判定される。ｍ個のマッチ線（マッチ線０〜マッチ線ｍ−１）は予め所定電位レベルにプリチャージされており、選択されたワード記憶部におけるマッチ線に一致不一致の検索結果が取り出され、マッチ線アンプ７３にて増幅・検出されプライオリティ・エンコーダ７４に入力される。プライオリティ・エンコーダ７４は、ｍ個のマッチ線（マッチ線０〜マッチ線ｍ−１）から入力される一致が検出された複数の一致検出信号に対応するワード記憶部のアドレスを優先順位に従って順次出力する。出力バッファ７５は、プライオリティ・エンコーダ７４の出力を一時的に保持し、外部に一致したアドレスＰ［ｋ：０］を順次出力する。
【００１０】
次に、図１０は、ＣＡＭセルの構成例を示す回路図である。図１０では、図９に示した一つのワード記憶部を構成するｎ個のＣＡＭセルが示されている。図１０において、「ＢＬ０，／ＢＬ０」〜「ＢＬ０ｎ−１，／ＢＬｎ−１」は、ビット線対であり、一方が正極性、他方が負極性である。「ＳＬ０，／ＳＬ０」〜「ＳＬ０ｎ−１，／ＳＬｎ−１」は、サーチ線対であり、一方が正極性、他方が負極性である。なお、記号「／」は反転信号であることを示している。
【００１１】
図１０において、ｎ個のＣＡＭセルは、それぞれ同一の構成であって、ＰＭＯＳトランジスタ８３，８８およびＮＭＯＳトランジスタ８４，８９によるフリップフロップ構成の記憶回路と、ＮＭＯＳトランジスタ８５，８６，９０，９１による比較回路とで構成されている。記憶回路はＮＭＯＳトランジスタ８１，８２によって選択される。なお、以下の説明では、ビット線対はＢＬ，／ＢＬと表記し、サーチ線対はＳＬ，／ＳＬと表記する。
【００１２】
記憶回路では、ＰＭＯＳトランジスタ８３，８８のソース電極は電源８２に接続されている。ＰＭＯＳトランジスタ８３のドレイン電極（以降「ノードＮ１」と記す）は、ＮＭＯＳトランジスタ８４のドレイン電極とＰＭＯＳトランジスタ８８のゲート電極とＮＭＯＳトランジスタ８９のゲート電極とに接続されている。また、ノードＮ１には、選択用のＮＭＯＳトランジスタ８１のソース電極と比較回路のＮＭＯＳトランジスタ９０のゲート電極とが接続されている。
【００１３】
ＰＭＯＳトランジスタ８８のドレイン電極（以降「ノードＮ２」と記す）は、ＮＭＯＳトランジスタ８９のドレイン電極とＰＭＯＳトランジスタ８３のゲート電極とＮＭＯＳトランジスタ８４のゲート電極とに接続されている。また、ノードＮ２には、選択用のＮＭＯＳトランジスタ８７のソース電極と比較回路のＮＭＯＳトランジスタ８５のゲート電極とが接続されている。
【００１４】
そして、ＮＭＯＳトランジスタ８４，８９のソース電極は共通に接地（ＧＮＤ）に接続されている。また、選択用のＮＭＯＳトランジスタ８１のゲート電極はワード線ＷＬに接続され、ドレイン電極はビット線ＢＬに接続されている。選択用のＮＭＯＳトランジスタ８７のゲート電極はワード線ＷＬに接続され、ドレイン電極はビット線／ＢＬに接続されている。
【００１５】
比較回路では、上記のＮＭＯＳトランジスタ８５，９０のソース電極は共通に接地（ＧＮＤ）に接続されている。ＮＭＯＳトランジスタ８５のドレイン電極はＮＭＯＳトランジスタ８６のソース電極に接続されている。ＮＭＯＳトランジスタ８６のドレイン電極はマッチ線ＭＬに接続され、ゲート電極はサーチ線ＳＬに接続されている。また、ＮＭＯＳトランジスタ９０のドレイン電極はＮＭＯＳトランジスタ９１のソース電極に接続されている。ＮＭＯＳトランジスタ９１のドレイン電極はマッチ線ＭＬに接続され、ゲート電極はサーチ線／ＳＬに接続されている。
【００１６】
以下、図１０を参照して、ＣＡＭセルの動作について説明する。スタンバイ時では、ワード線ＷＬは、低レベル（以降「Ｌレベル」と記す）である。一方、ビット線ＢＬ，／ＢＬは、高レベル（以降「Ｈレベル」と記す）にプリチャージされている。また、マッチ線ＭＬとサーチ線ＳＬとは、それぞれＨレベルにプリチャージされている。
【００１７】
データの書き込みでは、ワード線ＷＬが選択されてＨレベルになる。また、ビット線ＢＬ，／ＢＬは、書き込みデータビットの論理状態に応じて、一方がＨレベル、他方がＬレベルになるようにドライブされている。ワード線ＷＬがＨレベルになると、ＮＭＯＳトランジスタ８１，８７がオン動作を行うので、ノードＮ１にはＮＭＯＳトランジスタ８１を介してビット線ＢＬの電位が印加され、ノードＮ２にはＮＭＯＳトランジスタ８７を介してビット線／ＢＬの電位が印加される。これによって、書き込みデータビットの論理状態がノードＮ１，Ｎ２に保持される。
【００１８】
データの読み出しでは、ワード線ＷＬが選択されてＨレベルになる。ワード線ＷＬがＨレベルになると、ＮＭＯＳトランジスタ８１，８７がオン動作を行うので、ノードＮ１ははＮＭＯＳトランジスタ８１を介してビット線ＢＬに接続され、ノードＮ２はＮＭＯＳトランジスタ８７を介してビット線／ＢＬに接続される。ビット線ＢＬ，／ＢＬは、共にＨレベルの状態にプリチャージされているので、ノードＮ１，Ｎ２が接続されると、ビット線ＢＬ，／ＢＬにはノードＮ１，Ｎ２の相補的な論理状態に応じた微少差電圧信号が取り出される。これがセンスアンプ７６にて増幅され、読み出しデータビットの論理状態が判定される。
【００１９】
データの検索では、マッチ線ＭＬがＨレベルにプリチャージされ、サーチ線ＳＬ，／ＳＬが検索データビットの論理状態に応じて、一方がＨレベルになり、他方がＬレベルになるようにドライブされている。ここで、例えばノードＮ１はＨレベルであり、ノードＮ２はＬレベルであるとする。この状態の比較回路では、ＮＭＯＳトランジスタ９０がオン動作状態にあり、ＮＭＯＳトランジスタ８５がオフ動作状態にある。
【００２０】
今、サーチ線ＳＬがＬレベルであり、サーチ線／ＳＬがＨレベルであるとする。この場合には、ＮＭＯＳトランジスタ９１がオン動作を行うので、マッチ線ＭＬはＮＭＯＳトランジスタ９１，９０を通して接地（ＧＮＤ）に接続されて放電し、Ｌレベルに引き落とされる。このようにマッチ線ＭＬがＬレベルの場合には、検索データと格納データは一致しないと判定される。
【００２１】
逆に、サーチ線ＳＬがＨレベル、サーチ線／ＳＬがＬレベルであるときは、ＮＭＯＳトランジスタ８６がオン動作を行うが、ＮＭＯＳトランジスタ８５がオフ動作状態にあるので、マッチ線ＭＬのＬレベルへの引き落しは行われずＨレベルをそのまま維持する。この場合には検索データと格納データは一致したと判定される。
【００２２】
ところで、特許文献１では、このように動作するＣＡＭを用いた演算回路が開示されている。図１１は、従来のＣＡＭを用いた演算回路の構成例を示すブロック図である。図１１において、ＣＡＭセルアレイ９４には、演算対象となるデータが格納される。上記の検索動作によってマッチ線に出力される検索結果（タグ情報）を検出するマッチ線アンプ９５の出力をタグレジスタ９６に保存する。そして、タグレジスタ９６から取り出したタグ情報をワード線ドライバ９７に与え、ＣＡＭセルアレイ９４の対応するワード線を活性化して書き込みを行う。このように構成すれば、検索動作と書き込み動作とを組み合わせて加算等の演算を行うことができる。
【００２３】
図１２は、図１１に示すＣＡＭを用いた演算回路の動作を説明するタイムチャートである。図１１に示すＣＡＭを用いた演算回路では、検索動作に依るタグ情報をタグレジスタ９６に取り込む動作と、タグレジスタ９６のタグ情報を用いて書き込みを行う動作とが時系列的に行われるので、図１２に示すように、１回の演算時間は２クロック周期を用いて構成される。２クロック周期の前半周期がタグレジスタ９６に取り込む検索サイクル９８となり、後半周期がタグレジスタ９６のタグ情報を用いて書き込みを行う書き込みサイクル９９となる。
【００２４】
図１３は、ＣＡＭを用いた演算回路の具体的な適用例を説明する図である。図１３では１ビット和演算Ａ＋Ｂ＋Ｃ＝Ａ’（ＳＵＭ）＋Ｃ’（Ｃａｒｒｙ）への適用例が示されている。これはプロセッサにおいて大量に行われる演算である。図１３（ａ）は検索時の動作を説明する図である。図１３（ｂ）は書き込み時の動作を説明する図である。
【００２５】
全加算器で行うＡ，Ｂ，Ｃｉｎの１ビット和演算では、和Ｓ（サム）と桁上げＣｏｕｔ（キャリー）とが得られる。通常のプロセッサを用いた演算では、順にＡ，Ｂ，Ｃｉｎをメモリから読み出して演算を行い、メモリに書き戻すという動作をデータの数だけ繰り返す必要があり、非常に時間が掛かる。
【００２６】
図１１に示すＣＡＭを用いた演算回路は、このような問題を解決することができる。以下、図１３を参照して説明する。図１３（ａ）において、ＣＡＭセルアレイ９４には、Ａ，Ｂ，Ｃｉｎのデータを前もって格納しておく。そして、例えば“１，０，１”を内容とする検索データ１０１をＣＡＭセルアレイ９４に与え、Ａ＝１，Ｂ＝０，Ｃｉｎ＝１の組み合わせを検索し、マッチしたワード記憶部を示すタグ情報Ｔをタグレジスタ９６に取り込み保存する。
【００２７】
次に、図１３（ｂ）において、タグレジスタ９６に保存したタグ情報Ｔを用いてＣＡＭセルアレイ９４の対応するワード記憶部のワード線を活性化し書き込みデータ１０２をＣＡＭセルアレイ９４に与える。Ａ＝１，Ｂ＝０，Ｃｉｎ＝１の組み合わせ例ではＳ＝０，Ｃｏｕｔ＝１となり、それをＣＡＭセルアレイ９４のＡ，Ｃｉｎの領域に書き戻すことになり、Ｂのデータは書き換える必要がない。したがって、書き込みデータ１０２は、Ｂのデータをマスクした“１，Ｍａｓｋ，１”とする。これによって、タグレジスタ９６に保存したタグ情報Ｔが示すワード記憶部に対してのみ書き戻しが行われる。
【００２８】
このように、図１１に示すＣＡＭを用いた演算回路では、Ａ＝１，Ｂ＝０，Ｃｉｎ＝１の組み合わせの計算を、データ量が大量であっても、検索動作と書き込み動作の組み合わせによって簡単に完了させることができる。このとき、Ａ，Ｂ，Ｃｉｎの考えられる組み合わせは最大でも８通りと限定されたものであるので、全ての計算を非常に少ないサイクル数で終えることができる。したがって、図１１に示すＣＡＭを用いた演算回路は、画像処理等の大量のデータ演算に好適であると考えられる。
【００２９】
【特許文献１】米国特許第５８０９３２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３０】
しかしながら、従来のＣＡＭを用いた演算回路では、図１２に示したように、検索動作と書き込み動作とが時系列的に行われ１回の演算に２クロック周期を必要とするので、高速動作に問題がある。
【００３１】
また、サーチ線に依る検索速度の高速性を維持するためには、タグレジスタに接続されるＣＡＭセルアレイのワード記憶部数をある程度以上増やすことができないので、列方向に離れた位置に在るワード記憶部間でのビット同士の演算を行う場合、一旦タグレジスタに接続されるＣＡＭセルアレイのワード記憶部にロードし直す必要があるなど、動作上の問題点が多くある。
【００３２】
この発明は、上記に鑑みてなされたものであり、高速動作が図れ、かつ列方向に離れた位置に在るワード記憶部間でのビット同士の演算を簡単に行うことができる連想メモリを用いた演算回路を得ることを目的とする。
【課題を解決するための手段】
【００３３】
上述した目的を達成するために、この発明は、連想メモリにおいて検索動作を行い、メモリセルアレイの各ワード記憶領域にて得られた検索結果であるタグ情報をレジスタに保存し、その保存したタグ情報を用いてワード線を活性化して書き込み動作を行うことで演算を実施する連想メモリを用いた演算回路において、前記レジスタを第１のレジスタと第２のレジスタとで構成し、初回の１クロック周期では検索動作を実施して得られたタグ情報を前記第１のレジスタに保存し、２回目以降の各１クロック周期では、前周期にて前記第１のレジスタに保存したタグ情報を前記第２のレジスタに転送し、その転送したタグ情報を用いて書き込み動作を実施し、並行して検索動作を実施し、得られたタグ情報を前記第１のレジスタに保存する動作を制御する手段を備えていることを特徴とする。
【００３４】
この発明によれば、検索動作と書き込み動作とをパイプライン的に行うことが可能となるので、検索動作と書き込み動作とを離れたワード記憶領域において並行して実施できるだけでなく、同じワード記憶領域においても並行して実施できるようになり、演算のスループットが向上する。
【発明の効果】
【００３５】
この発明によれば、演算のスループットが向上するという効果を奏する。
【発明を実施するための最良の形態】
【００３６】
以下に図面を参照して、この発明にかかる連想メモリを用いた演算回路の好適な実施の形態を詳細に説明する。
【００３７】
実施の形態１．
図１は、この発明の実施の形態１による連想メモリ（ＣＡＭ）を用いた演算回路の構成を示すブロック図である。図１において、ＣＡＭセルアレイ１は、例えば図９に示すような周辺回路を備え、読み書き動作と検索動作とが行えるようになっている。このＣＡＭセルアレイ１には、演算対象となるデータが格納される。上記の検索動作によってマッチ線に出力される検索結果（タグ情報）を検出するマッチ線アンプ２の出力をマッチ線タグレジスタ３に保存すると、直ちにそのタグ情報をワード線タグレジスタ４に転送する。そして、ワード線タグレジスタ４から取り出したタグ情報をワード線ドライバ５に与え、ＣＡＭセルアレイ１の対応するワード線を活性化して書き込みを行う。
【００３８】
このように、検索結果（タグ情報）を保持するタグレジスタをマッチ線用のタグレジスタ３とワード線用のタグレジスタ４とに分離し、検索動作を終えてマッチ線タグレジスタ３に蓄えられたタグ情報を直ちにワード線タグレジスタ４に転送するように構成すれば、図２に示すように初回の検索動作以後では、ワード記憶部が同一であるか異なるかを問わず、検索動作と書き込み動作とを並行して連続的に実施することが可能となる。
【００３９】
但し、ワード記憶部を構成するＣＡＭセルが図１０に示した構成であれば、同じワード記憶部において検索動作と書き込み動作とを並行して実施する場合には支障が生ずる場合があるが、この点に関しては、ＣＡＭセルを後述するように構成しているので（図５〜図７−２参照）、支障なく実施できるようになっている。
【００４０】
図２は、図１に示すＣＡＭを用いた演算回路の動作を説明するタイムチャートである。図２において、左端の最初の１クロック周期は、演算を行うにあたって検索動作が行われる初回の検索サイクル６である。この検索サイクル６では、最初の１クロック周期の前半周期にて各ワード記憶部での一致判定が行われ、マッチ線に現れたタグ情報がその１クロック周期の後半周期にてマッチ線タグレジスタ３に格納される。
【００４１】
マッチ線タグレジスタ３では、そのタグ情報が２番目のクロック周期の前半周期の期間が終了するまで保持されるが、その２番目の１クロック周期では、前半周期の開始時点でそのタグ情報がマッチ線タグレジスタ３からワード線用タグレジスタ４に転送され、対応するワード線が活性化され、書き込み動作が行われる。同時に、その２番目の１クロック周期の前半周期にて各ワード記憶部での一致判定が行われ、マッチ線に現れたタグ情報がその２番目の１クロック周期の後半周期にてマッチ線タグレジスタ３に格納される。以降の各１クロック周期において同様の動作が行われるので、２番目の１クロック周期以後では、各１クロック周期は、例えばあるワード記憶部では検索サイクル７となり、他のワード記憶部では書き込みサイクル８となるように制御される。また、同じワード記憶部であれば、ある所定数のＣＡＭセルからなる記憶領域では検索サイクル７となり、他のある所定数のＣＡＭセルからなる記憶領域では書き込みサイクル８となるように制御されることになる。
【００４２】
このように、実施の形態１によれば、各１クロック周期において検索動作と書き込み動作とをパイプライン的に実施することが可能となるので、演算のスループットを従来例の２倍に高めることができるようになる。
【００４３】
実施の形態２．
図３は、この発明の実施の形態２による連想メモリ（ＣＡＭ）を用いた演算回路の構成を示すブロック図である。この実施の形態２では、サーチ線に依る検索速度の高速性を維持するためには、タグレジスタに接続されるＣＡＭセルアレイのワード記憶部数をある程度の数に止める必要があるので、演算できるビットの組み合わせが限定されるという問題を解決する構成例が示されている。
【００４４】
すなわち、この実施の形態２では、ＣＡＭセルアレイ１を所定数のワード記憶部毎に区分する。図３では、４個のアレイマットに区分した場合が示されている。そして、図３に示すように、その区分したアレイマット毎にサブタグレジスタ１０，１１，１２，１３を設け、サブタグレジスタ１０〜１３のタグ情報をＡＮＤ回路１４を介してメインタグレジスタ１５に転送・格納し、メインタグレジスタ１５からワード線用タグレジスタ４に転送する構成を採る。
【００４５】
この実施の形態２によれば、ＣＡＭセルアレイを小分割し、マッチ線用のタグレジスタを、そのアレイマット毎に設けたタグレジスタと、各タグレジスタのタグ情報をＡＮＤを取って格納する一つのタグレジスタとで構成する階層化構造としたので、サーチ線に依る検索速度の高速性を維持することができ、演算できるビットの組み合わせは限定されることがなく、フレキシブルな演算が可能となる。
【００４６】
実施の形態３．
図４は、この発明の実施の形態３による連想メモリを用いた演算回路の構成を示すブロック図である。この実施の形態３では、マッチ線用のタグレジスタの階層化を実施の形態２に示す方法で構成する場合は各サブタグレジスタとメインタグレジスタとの間の配線数が増加するという難点を解決する構成例が示されている。
【００４７】
すなわち、この実施の形態３では、図４に示すように、ＣＡＭセルアレイ１のアレイマット毎にＡＮＤ回路２０，２１，２２，２３を設け、それぞれ、対応するサブタグレジスタ１０，１１，１２，１３のタグ情報を一方の入力とする。そして、最上位のアレイマットに対するＡＮＤ回路２０では、他方の入力は電源２４の電圧であるが、２番目以降のアレイマットに対するＡＮＤ回路２１〜２３では、他方の入力には上位のＡＮＤ回路の出力を与え、最下位のアレイマットに対するＡＮＤ回路２３の出力をメインタグレジスタ１５に与える構成を採る。
【００４８】
この実施の形態３によれば、下位階層のタグレジスタから最上位階層のタグレジスタへのタグ情報の伝播は、実施の形態２よりも遅れるが、ＣＡＭセルアレイのアレイマット数を増加しても必要な配線数は増加しないという利点がある。
【００４９】
実施の形態４．
図５〜図７−２は、この発明の実施の形態４による連想メモリ（ＣＡＭ）を用いた演算回路におけるＣＡＭセルの構成を説明する図である。なお、図５は、この発明の実施の形態４による連想メモリ（ＣＡＭ）を用いた演算回路におけるＣＡＭセルの構成を示す回路図である。図６は、ＣＡＭセルアレイに隣接して設けられるマスクレジスタの構成を説明する図である。図７−１および図７−２は、ビット線対（ＢＬ，／ＢＬ）およびサーチ線対（ＳＬ，／ＳＬ）の電位レベルを設定する回路図である。
【００５０】
この実施の形態４では、実施の形態１，２にて説明した検査動作と書き込み動作とを並列に実施するのに好適なＣＡＭセルの構成例が示されている。すなわち、この発明では、検索動作と書き込み動作とが同じワード記憶部において行われることが起こる。この場合には、ワード線ＷＬがＨレベルになるので、図１０に示すＣＡＭセルの構成では、双方の動作が干渉することが起こる。そこで、この実施の形態４では、図５〜図７−２に示すように、ビット線対（ＢＬ，／ＢＬ）とサーチ線対（ＳＬ，／ＳＬ）とをそれぞれ個別に操作設定できるように各ＣＡＭセルを構成している。
【００５１】
図５において、実施の形態４によるＣＡＭセルは、ＰＭＯＳトランジスタ３４，３６およびＮＭＯＳトランジスタ３５，３７によるフリップフロップ構成の記憶回路と、ＮＭＯＳトランジスタ４０，４１，４２による選択回路と、ＮＭＯＳトランジスタ３１，３２，３８，３９による比較回路とで構成されている。
【００５２】
記憶回路では、ＰＭＯＳトランジスタ３４，３６のソース電極は電源３３に接続されている。ＰＭＯＳトランジスタ３４のドレイン電極（以降「ノードＮ２」と記す）は、ＮＭＯＳトランジスタ３５のドレイン電極とＰＭＯＳトランジスタ３６のゲート電極とＮＭＯＳトランジスタ３７のゲート電極とに接続されている。また、ノードＮ１には、記憶回路選択回路のＮＭＯＳトランジスタ４０のドレイン電極と比較回路のＮＭＯＳトランジスタ３２のゲート電極とが接続されている。
【００５３】
ＰＭＯＳトランジスタ３６のドレイン電極（以降「ノードＮ２」と記す）は、ＮＭＯＳトランジスタ３７のドレイン電極とＰＭＯＳトランジスタ３４のゲート電極とＮＭＯＳトランジスタ３５のゲート電極とに接続されている。また、ノードＮ２には、選択回路のＮＭＯＳトランジスタ４１のドレイン電極と比較回路のＮＭＯＳトランジスタ３９のゲート電極とが接続されている。そして、ＮＭＯＳトランジスタ３５，３７のソース電極は共通に接地（ＧＮＤ）に接続されている。
【００５４】
また、選択回路では、ＮＭＯＳトランジスタ４０のゲート電極はビット線ＢＬに接続され、ＮＭＯＳトランジスタ４１のゲート電極はビット線／ＢＬに接続され、ＮＭＯＳトランジスタ４０，４１のソース電極は共通にＮＭＯＳトランジスタ４２のドレイン電極に接続されている。そして、ＮＭＯＳトランジスタ４２のゲート電極はワード線ＷＬに接続され、ソース電極は接地（ＧＮＤ）に接続されている。
【００５５】
また、比較回路では、上記のＮＭＯＳトランジスタ３２，３９のソース電極はそれぞれ接地（ＧＮＤ）に接続されている。ＮＭＯＳトランジスタ３２のドレイン電極はＮＭＯＳトランジスタ３１のドレイン電極に接続されている。そして、ＮＭＯＳトランジスタ３１のソース電極はマッチ線ＭＬに接続され、ゲート電極はサーチ線ＳＬに接続されている。また、ＮＭＯＳトランジスタ３９のドレイン電極はＮＭＯＳトランジスタ３８のドレイン電極に接続されている。そして、ＮＭＯＳトランジスタ３８のソース電極はマッチ線ＭＬに接続され、ゲート電極はサーチ線ＳＬに接続されている。
【００５６】
図５に示すＣＡＭセルの動作を簡単に説明する。書き込み動作を行う場合、例えば、データビット“１”を書き込むために、ビット線ＢＬを“１”レベルにし、ビット線／ＢＬを“０”レベルにする。この状態で、ワード線ＷＬをＨレベルにする。その結果、ＮＭＯＳトランジスタ４２がオン動作を行い、ＮＭＯＳトランジスタ４０，４１の各ソース電極は接地（ＧＮＤ）に接続された状態になる。ＮＭＯＳトランジスタ４０はオン動作状態にあるので、ノードＮ１の電位は接地（ＧＮＤ）のレベルに引かれ、Ｌレベルになる。そうすると、ＰＭＯＳトランジスタ３６がオン動作を行うので、ノードＮ２はノードＮ１がＬレベルになるのに追従してＨレベルになる。このように、ノードＮ１がＬレベル、ノードＮ２がＨレベルとなってデータビット“１”の記憶状態となる。
【００５７】
逆に、データビット“０”を書き込むときは、ビット線ＢＬを“０”レベルにし、ビット線／ＢＬを“１”レベルにする。この場合は、ノードＮ１がＨレベルで、ノードＮ２がＬレベルとなってデータビット“０” の記憶状態となる。
【００５８】
また、検索動作では、データビット“１”を検索するときは、ＳＬ＝“０”、／ＳＬ＝“１”にし、マッチ線ＭＬがＨレベルであれば一致と判断し、マッチ線ＭＬがＬレベルであれば不一致と判断する。この動作は、従来と同様である。
【００５９】
さて、図５に示すビット線対（ＢＬ，／ＢＬ）およびサーチ線対（ＳＬ，／ＳＬ）の電位レベルは、それぞれ、図６、図７−１、図７−２に示す方法で個別に設定される。
【００６０】
図６において、図２に示したように、ＣＡＭセルアレイ１のあるワード記憶部４５において、ある記憶領域４６に存する所定数のＣＡＭセルからなるメモリセル群はサーチ対象となり、他のある記憶領域４７に存する所定数のＣＡＭセルからなるメモリセル群はライト（書き込み）対象となる。しかも、検索動作と書き込み動作とが同時に実施される。この場合には、検索を行う記憶領域４７でもワード線はＨレベルであるので、相互間での干渉を回避する措置が必要である。
【００６１】
そのため、ＣＡＭセルにおけるビット線およびサーチ線の扱いにおいて、サーチ線の扱いは従来例（図１０）と同様であるが、ビット線およびサーチ線の扱いを図５に示すように構成し、それぞれの電位レベルを、図６、図７−１、図７−２に示す方法で個別に設定できるようにしている。
【００６２】
これによって、相互間での干渉を回避する措置として、複数あるサーチ線のうち検索動作の対象となる記憶領域４６以外の領域におけるサーチ線は接地（ＧＮＤ）に固定する。同様に、複数あるビット線のうち書き込み動作の対象となる記憶領域４７以外の領域におけるビット線は接地（ＧＮＤ）に固定することが可能となる。
【００６３】
具体的に説明する。図６に示すように、ワード記憶部に並行するビット線マスクレジスタ（以降「ＢＭＲ」と記す）４８とサーチ線マスクレジスタ（以降「ＳＭＲ」と記す）４９とがＣＡＭセルアレイ１に隣接して設けられている。
【００６４】
ＢＭＲ４８では、書き込み動作の対象となる記憶領域４７に対応する所定数のビットは“１”が設定され、記憶領域４７以外の領域に対応するビットは“０”が設定される。同様に、ＳＭＲ４９では、サーチ動作の対象となる記憶領域４６に対応する所定数のビットは“１”が設定され、記憶領域４６以外の領域に対応するビットは“０”が設定される。
【００６５】
図７−１に示すビット線対（ＢＬ，／ＢＬ）の電位レベルを設定する回路は、ＢＭＲ４８のビット毎に設けられる。図７−１おいて、ＢＭＲ４８のビットデータＢＭＲは、ＡＮＤ回路５１，５２の一方の入力端に直接印加される。ライトデータは、ＡＮＤ回路５１の他方の入力端に直接印加されるとともに、ＡＮＤ回路５２の他方の入力端にインバータ５３を介して印加される。ＡＮＤ回路５１の出力は、ビット線ＢＬに接続され、ＡＮＤ回路５２の出力は、ビット線／ＢＬに接続されている。
【００６６】
図６と図７−１に示す構成によれば、ＢＭＲ４８において、“１”が設定されている記憶領域４７におけるビット線対（ＢＬ，／ＢＬ）には書き込みデータが印加され、“０” が設定されている記憶領域におけるビット線対（ＢＬ，／ＢＬ）には接地電位が印加されるようになる。
【００６７】
図７−２に示すサーチ線対（ＳＬ，／ＳＬ）の電位レベルを設定する回路は、ＳＭＲ４９のビット毎に設けられる。図７−２おいて、ＳＭＲ４９のビットデータＳＭＲは、ＡＮＤ回路５５，５６の一方の入力端に直接印加される。サーチデータは、ＡＮＤ回路５５の他方の入力端に直接印加されるとともに、ＡＮＤ回路５６の他方の入力端にインバータ５７を介して印加される。ＡＮＤ回路５５の出力は、サーチ線ＳＬに接続され、ＡＮＤ回路５６の出力は、サーチ線／ＳＬに接続されている。
【００６８】
図６と図７−２に示す構成によれば、ＳＭＲ４９において、“１”が設定されている記憶領域４６におけるサーチ線対（ＳＬ，／ＳＬ）にはサーチデータが印加され、“０” が設定されている記憶領域におけるサーチ線対（ＳＬ，／ＳＬ）には接地電位が印加されるようになる。
【００６９】
ここで、検索動作と書き込み動作とが並行して行われるワード記憶部４５では、ワード線ＷＬはＨレベルでありＮＭＯＳトランジスタ４２はオン動作状態にあるが、検索動作の対象となる記憶領域４６に配置されるビット線対（ＢＬ，／ＢＬ）は接地電位のレベルに固定されるので、ビット線対（ＢＬ，／ＢＬ）にノイズが乗ってもノードＮ１，Ｎ２のレベル状態に影響を与えない。つまり、記憶領域４６では、正しく検索動作を行うことができる。
【００７０】
また、書き込みの対象となる記憶領域４７に配置されるサーチ線対（ＳＬ，／ＳＬ）は接地電位に固定されるので、サーチ線対（ＳＬ，／ＳＬ）にノイズが乗ってもノードＮ１，Ｎ２のレベル状態に影響を与えない。つまり、記憶領域４７では、正しく書き込み動作を行うことができる。
【００７１】
このように、実施の形態４によれば、ビット線およびサーチ線の電位レベルをそれぞれ個別に操作できるように各ＣＡＭセルを構成したので、同じワード記憶部において検索動作と書き込み動作と並行して行われている場合に、動作の対象外となる領域ではビット線およびサーチ線の電位レベルをそれぞれ接地電位に固定することができる。これによって例えば検索動作を行うＣＡＭセルでは、ビット線に乗るノイズに影響されることなく安定した動作が行えるようになる。
【００７２】
実施の形態５．
図８は、この発明の実施の形態５による連想メモリ（ＣＡＭ）を用いた演算回路におけるＣＡＭセルの構成を示す回路図である。ＣＡＭを用いた演算回路では、元々、演算の実行中においてＣＡＭセルアレイの全部または一部のデータをリセットする必要が生ずる。実施の形態４に示すＣＡＭセルを用いたＣＡＭセルアレイでも、ワード線とビット線を順に制御することで、ＣＡＭセルアレイの全部または一部のデータをリセットすることは可能であるが、演算の実行中においてそのような制御を行うと、時間が掛かり過ぎて高速動作に支障を来す。
【００７３】
そこで、この実施の形態５では、演算の実行中においても高速動作を損なわずにＣＡＭセルアレイの全部または一部のデータをリセットする場合の構成例が示されている。すなわち、図８に示すように、図５に示したＣＡＭセルにおいて、非同期のリセット端子を構成するＰＮＯＳトランジスタ６１，６２が追加されている。
【００７４】
ＰＮＯＳトランジスタ６１，６２の各ソース電極は電源６３に接続され、ＰＮＯＳトランジスタ６１のドレイン電極はノードＮ１に接続され、ＰＮＯＳトランジスタ６２のドレイン電極はノードＮ２に接続されている。そして、ＰＮＯＳトランジスタ６１のゲート電極にはデータリセット線ＤＲＳＴが接続され、ＰＮＯＳトランジスタ６２のゲート電極にはデータリセット線／ＤＲＳＴが接続されている。
【００７５】
このデータリセット線ＤＲＳＴ，／ＤＲＳＴを用いると、同じビット線に接続されるＣＡＭセルでは、ワード線を活性化することなくデータのセットとリセットが簡単に行えなる。なお、データのセット／リセットを行わない場合は、データリセット線ＤＲＳＴ，／ＤＲＳＴは、Ｈレベルに保持され、通常の動作に影響を与えないようにしている。
【００７６】
このように、実施の形態５によれば、各ＣＡＭセルに非同期のリセット端子を設けたので、演算の実行中においてもＣＡＭセルアレイの全部または一部のデータを高速にリセットすることができる。
【産業上の利用可能性】
【００７７】
以上のように、この発明にかかる連想メモリを用いた演算回路は、演算の高速化を図るのに有用であり、特に、大量のデータ演算を必要とする画像処理等に適している。
【図面の簡単な説明】
【００７８】
【図１】この発明の実施の形態１による連想メモリ（ＣＡＭ）を用いた演算回路の構成を示すブロック図である。
【図２】図１に示すＣＡＭを用いた演算回路の動作を説明するタイムチャートである。
【図３】この発明の実施の形態２による連想メモリ（ＣＡＭ）を用いた演算回路の構成を示すブロック図である。
【図４】この発明の実施の形態３による連想メモリを用いた演算回路の構成を示すブロック図である。
【図５】この発明の実施の形態４による連想メモリ（ＣＡＭ）を用いた演算回路におけるＣＡＭセルの構成を示す回路図である。
【図６】ＣＡＭセルアレイに隣接して設けられるマスクレジスタの構成を説明する図である。
【図７−１】ビット線対（ＢＬ，／ＢＬ）の電位レベルを設定する回路図である。
【図７−２】サーチ線対（ＳＬ，／ＳＬ）の電位レベルを設定する回路図である。
【図８】この発明の実施の形態５による連想メモリ（ＣＡＭ）を用いた演算回路におけるＣＡＭセルの構成を示す回路図である。
【図９】連想メモリ（ＣＡＭ）の基本的な構成例を示すブロック図である。
【図１０】ＣＡＭセルの構成例を示す回路図である。
【図１１】従来のＣＡＭを用いた演算回路の構成例を示すブロック図である。
【図１２】図１１に示すＣＡＭを用いた演算回路の動作を説明するタイムチャートである。
【図１３】ＣＡＭを用いた演算回路の具体的な適用例を説明する図である。
【符号の説明】
【００７９】
１  ＣＡＭセルアレイ
２  マッチ線アンプ
３  マッチ線タグレジスタ
４  ワード線タグレジスタ
５  ワード線ドライバ
１０〜１３  サブタグレジスタ
１４  ＡＮＤ回路
１５  メインタグレジスタ
２０〜２２  ＡＮＤ回路
３１，３２，３５，３７〜４２  ＮＭＯＳトランジスタ
３４，３６，６１，６２  ＰＭＯＳトランジスタ
４５  ワード記憶部
４６  サーチ対象の記憶領域
４７  ライト対象の記憶領域
４８  ビット線マスクレジスタ（ＢＭＲ）
４９  サーチ線マスクレジスタ（ＳＭＲ）
５１，５２，５５，５６  ＡＮＤ回路
５３，５７  インバータ
【図１】
2006092676.tif 000003
【図２】
2006092676.tif 000004
【図３】
2006092676.tif 000005
【図４】
2006092676.tif 000006
【図５】
2006092676.tif 000007
【図６】
2006092676.tif 000008
【図７−１】
2006092676.tif 000009
【図７−２】
2006092676.tif 000010
【図８】
2006092676.tif 000011
【図９】
2006092676.tif 000012
【図１０】
2006092676.tif 000013
【図１１】
2006092676.tif 000014
【図１２】
2006092676.tif 000015
【図１３】
2006092676.tif 000016