JP2006092676A - 連想メモリを用いた演算回路 - Google Patents
連想メモリを用いた演算回路 Download PDFInfo
- Publication number
- JP2006092676A JP2006092676A JP2004278247A JP2004278247A JP2006092676A JP 2006092676 A JP2006092676 A JP 2006092676A JP 2004278247 A JP2004278247 A JP 2004278247A JP 2004278247 A JP2004278247 A JP 2004278247A JP 2006092676 A JP2006092676 A JP 2006092676A
- Authority
- JP
- Japan
- Prior art keywords
- register
- search
- line
- tag information
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】高速動作が図れ、かつ列方向に離れた位置に在るワード記憶部間でのビット同士の演算を簡単に行うことができるようにすること。
【解決手段】CAMセルアレイ1には、演算対象となるデータが格納される。検索動作によってマッチ線に出力される検索結果(タグ情報)を検出するマッチ線アンプ2の出力をマッチ線タグレジスタ3に保存すると、直ちにそのタグ情報をワード線タグレジスタ4に転送する。そして、ワード線タグレジスタ4から取り出したタグ情報をワード線ドライバ5に与え、CAMセルアレイ1の対応するワード線を活性化して書き込みを行う。このように構成すれば、初回の検索動作以後では、例えば、あるワード記憶部では検索動作を、他のワード記憶部では書き込み動作を並行して連続的に動作させることが可能となる。
【選択図】 図1
【解決手段】CAMセルアレイ1には、演算対象となるデータが格納される。検索動作によってマッチ線に出力される検索結果(タグ情報)を検出するマッチ線アンプ2の出力をマッチ線タグレジスタ3に保存すると、直ちにそのタグ情報をワード線タグレジスタ4に転送する。そして、ワード線タグレジスタ4から取り出したタグ情報をワード線ドライバ5に与え、CAMセルアレイ1の対応するワード線を活性化して書き込みを行う。このように構成すれば、初回の検索動作以後では、例えば、あるワード記憶部では検索動作を、他のワード記憶部では書き込み動作を並行して連続的に動作させることが可能となる。
【選択図】 図1
Description
この発明は、連想メモリを用いた演算回路に関するものである。
連想メモリ(Content Addressable Memory:以降「CAM」と記す)は、データの検索等に用いられる記憶装置であり、例えば図9に示すように構成される。図9は、CAMの基本的な構成例を示すブロック図である。図9では、CAMセルアレイ72と、このCAMセルアレイ72の主な周辺回路として、アドレス・バッファ70、ロウデコーダ71、マッチ線アンプ73、プライオリティ・エンコーダ74、出力バッファ75、センスアンプ76、サーチ線ドライバ・ライトドライバ77、データ・バッファ78、および出力バッファ79が示されている。
CAMセルアレイ72は、1ビットの記憶保持を行うCAMセルのn個を行方向に直列に並べて1ワードの記憶部とし(図10参照)、そのワード記憶部を列方向にm個(ワード0〜ワードm−1)並列に並べて構成されている。m個のワード記憶部では、各ワード記憶部での読み書きを制御するm個のワード線(ワード線0〜ワード線m−1)と一致不一致の検索結果を取り出すm個のマッチ線(マッチ線0〜マッチ線m−1)とが設けられている。また、m個のワード記憶部(ワード0〜ワードm−1)に跨る列方向には、各ワード記憶部での読み書きを制御するn個のビット線(ビット線0〜ビット線n−1)と検索動作を制御するn個のサーチ線(サーチ線0〜サーチ線n−1)とが設けられている。なお、ビット線とサーチ線は、それぞれ、正極性と負極性の対線である。
アドレス・バッファ70に外部から入力されるアドレスA[i:0]は、書き込み用、読み出し用、検索用のいずれかのアドレスである。m個のワード線(ワード線0〜ワード線m−1)の片端は、アドレス・バッファ70の出力を受けるロウデコーダ71の出力端に接続され、ロウデコーダ71のデコード内容に応じていずれか一つが選択され活性化される。また、m個のマッチ線(マッチ線0〜マッチ線m−1)は、ロウデコーダ71側に設けられる図示しないプリチャージ回路とマッチ線アンプ73との間に設けられている。マッチ線アンプ73の出力は、プライオリティ・エンコーダ74を介して出力バッファ75に入力される。
n個のビット線(ビット線0〜ビット線n−1)の片端は、センスアンプ76とサーチ線ドライバ・ライトドライバ77におけるライトドライバとに接続されている。また、n個のサーチ線(サーチ線0〜サーチ線n−1)の片端は、サーチ線ドライバ・ライトドライバ77におけるサーチ線ドライバに接続されている。
また、データ・バッファ78に外部から入力されるデータD[j:0]は、書き込み用または検索用のデータである。このデータD[j:0]は、1ワード長つまりnビット幅のデータである。データ・バッファ78が出力するデータintD[j:0]のうち、書き込み用のデータは、サーチ線ドライバ・ライトドライバ77におけるライトドライバに与えられ、検索用のデータは、サーチ線ドライバ・ライトドライバ77におけるサーチ線ドライバに与えられる。センスアンプ76の出力は、出力バッファ79に入力される。サーチ線ドライバ・ライトドライバ77は、n個のビット線(ビット線0〜ビット線n−1)とn個のサーチ線(サーチ線0〜サーチ線n−1)の所定電位レベルへのプリチャージを行い、データ・バッファ78から入力するデータintD[j:0]に従ってn個のビット線(ビット線0〜ビット線n−1)とn個のサーチ線(サーチ線0〜サーチ線n−1)の活性化を制御することで、読み書き動作と検索動作とを実現する。
以上の構成によって、CAMセルアレイ72では、データの書き込み、読み出しおよび検索がワード単位に行えるようになっている。すなわち、データの書き込みでは、アドレス・バッファ70に書き込み用のアドレスA[i:0]を与えてm個のワード線(ワード線0〜ワード線m−1)のいずれか一つを選択し、データ・バッファ78に書き込み用のデータD[j:0]を与えてn個のビット線(ビット線0〜ビット線n−1)をドライブしてn個のビット線(ビット線0〜ビット線n−1)上に書き込みデータを乗せ、選択した一つのワード記憶部の各CAMセルにデータを書き込み保持させる。
また、読み出しでは、アドレス・バッファ70に読み出し用のアドレスA[i:0]を与えてm個のワード線(ワード線0〜ワード線m−1)のいずれか一つを選択する。選択された一つのワード記憶部では、予め所定電位レベルにプリチャージされているn個のビット線(ビット線0〜ビット線n−1)に微少差電圧信号が取り出される。センスアンプ76では、その微少差電圧信号を増幅して論理状態を判定する。出力バッファ79から読み出しデータQ[j:0]が得られる。
そして、検索データと一致する記憶データを検索するときは、各ワード記憶部にデータを保持させた状態で、アドレス・バッファ70に検索データのアドレスA[i:0]を与えてm個のワード線(ワード線0〜ワード線m−1)のいずれか一つを選択し、データ・バッファ78に検索データD[j:0]を与え、予め所定電位レベルにプリチャージされているn個のサーチ線(サーチ線0〜サーチ線n−1)をドライブしてn個のサーチ線(サーチ線0〜サーチ線n−1)上に検索データを乗せる。その結果、CAMセルに付随して設けられる比較回路にて記憶データとの一致判定が行われる。nビットの全てが一致したとき、当該ワード記憶部の格納データは検索データと一致していると判定される。m個のマッチ線(マッチ線0〜マッチ線m−1)は予め所定電位レベルにプリチャージされており、選択されたワード記憶部におけるマッチ線に一致不一致の検索結果が取り出され、マッチ線アンプ73にて増幅・検出されプライオリティ・エンコーダ74に入力される。プライオリティ・エンコーダ74は、m個のマッチ線(マッチ線0〜マッチ線m−1)から入力される一致が検出された複数の一致検出信号に対応するワード記憶部のアドレスを優先順位に従って順次出力する。出力バッファ75は、プライオリティ・エンコーダ74の出力を一時的に保持し、外部に一致したアドレスP[k:0]を順次出力する。
次に、図10は、CAMセルの構成例を示す回路図である。図10では、図9に示した一つのワード記憶部を構成するn個のCAMセルが示されている。図10において、「BL0,/BL0」〜「BL0n−1,/BLn−1」は、ビット線対であり、一方が正極性、他方が負極性である。「SL0,/SL0」〜「SL0n−1,/SLn−1」は、サーチ線対であり、一方が正極性、他方が負極性である。なお、記号「/」は反転信号であることを示している。
図10において、n個のCAMセルは、それぞれ同一の構成であって、PMOSトランジスタ83,88およびNMOSトランジスタ84,89によるフリップフロップ構成の記憶回路と、NMOSトランジスタ85,86,90,91による比較回路とで構成されている。記憶回路はNMOSトランジスタ81,82によって選択される。なお、以下の説明では、ビット線対はBL,/BLと表記し、サーチ線対はSL,/SLと表記する。
記憶回路では、PMOSトランジスタ83,88のソース電極は電源82に接続されている。PMOSトランジスタ83のドレイン電極(以降「ノードN1」と記す)は、NMOSトランジスタ84のドレイン電極とPMOSトランジスタ88のゲート電極とNMOSトランジスタ89のゲート電極とに接続されている。また、ノードN1には、選択用のNMOSトランジスタ81のソース電極と比較回路のNMOSトランジスタ90のゲート電極とが接続されている。
PMOSトランジスタ88のドレイン電極(以降「ノードN2」と記す)は、NMOSトランジスタ89のドレイン電極とPMOSトランジスタ83のゲート電極とNMOSトランジスタ84のゲート電極とに接続されている。また、ノードN2には、選択用のNMOSトランジスタ87のソース電極と比較回路のNMOSトランジスタ85のゲート電極とが接続されている。
そして、NMOSトランジスタ84,89のソース電極は共通に接地(GND)に接続されている。また、選択用のNMOSトランジスタ81のゲート電極はワード線WLに接続され、ドレイン電極はビット線BLに接続されている。選択用のNMOSトランジスタ87のゲート電極はワード線WLに接続され、ドレイン電極はビット線/BLに接続されている。
比較回路では、上記のNMOSトランジスタ85,90のソース電極は共通に接地(GND)に接続されている。NMOSトランジスタ85のドレイン電極はNMOSトランジスタ86のソース電極に接続されている。NMOSトランジスタ86のドレイン電極はマッチ線MLに接続され、ゲート電極はサーチ線SLに接続されている。また、NMOSトランジスタ90のドレイン電極はNMOSトランジスタ91のソース電極に接続されている。NMOSトランジスタ91のドレイン電極はマッチ線MLに接続され、ゲート電極はサーチ線/SLに接続されている。
以下、図10を参照して、CAMセルの動作について説明する。スタンバイ時では、ワード線WLは、低レベル(以降「Lレベル」と記す)である。一方、ビット線BL,/BLは、高レベル(以降「Hレベル」と記す)にプリチャージされている。また、マッチ線MLとサーチ線SLとは、それぞれHレベルにプリチャージされている。
データの書き込みでは、ワード線WLが選択されてHレベルになる。また、ビット線BL,/BLは、書き込みデータビットの論理状態に応じて、一方がHレベル、他方がLレベルになるようにドライブされている。ワード線WLがHレベルになると、NMOSトランジスタ81,87がオン動作を行うので、ノードN1にはNMOSトランジスタ81を介してビット線BLの電位が印加され、ノードN2にはNMOSトランジスタ87を介してビット線/BLの電位が印加される。これによって、書き込みデータビットの論理状態がノードN1,N2に保持される。
データの読み出しでは、ワード線WLが選択されてHレベルになる。ワード線WLがHレベルになると、NMOSトランジスタ81,87がオン動作を行うので、ノードN1ははNMOSトランジスタ81を介してビット線BLに接続され、ノードN2はNMOSトランジスタ87を介してビット線/BLに接続される。ビット線BL,/BLは、共にHレベルの状態にプリチャージされているので、ノードN1,N2が接続されると、ビット線BL,/BLにはノードN1,N2の相補的な論理状態に応じた微少差電圧信号が取り出される。これがセンスアンプ76にて増幅され、読み出しデータビットの論理状態が判定される。
データの検索では、マッチ線MLがHレベルにプリチャージされ、サーチ線SL,/SLが検索データビットの論理状態に応じて、一方がHレベルになり、他方がLレベルになるようにドライブされている。ここで、例えばノードN1はHレベルであり、ノードN2はLレベルであるとする。この状態の比較回路では、NMOSトランジスタ90がオン動作状態にあり、NMOSトランジスタ85がオフ動作状態にある。
今、サーチ線SLがLレベルであり、サーチ線/SLがHレベルであるとする。この場合には、NMOSトランジスタ91がオン動作を行うので、マッチ線MLはNMOSトランジスタ91,90を通して接地(GND)に接続されて放電し、Lレベルに引き落とされる。このようにマッチ線MLがLレベルの場合には、検索データと格納データは一致しないと判定される。
逆に、サーチ線SLがHレベル、サーチ線/SLがLレベルであるときは、NMOSトランジスタ86がオン動作を行うが、NMOSトランジスタ85がオフ動作状態にあるので、マッチ線MLのLレベルへの引き落しは行われずHレベルをそのまま維持する。この場合には検索データと格納データは一致したと判定される。
ところで、特許文献1では、このように動作するCAMを用いた演算回路が開示されている。図11は、従来のCAMを用いた演算回路の構成例を示すブロック図である。図11において、CAMセルアレイ94には、演算対象となるデータが格納される。上記の検索動作によってマッチ線に出力される検索結果(タグ情報)を検出するマッチ線アンプ95の出力をタグレジスタ96に保存する。そして、タグレジスタ96から取り出したタグ情報をワード線ドライバ97に与え、CAMセルアレイ94の対応するワード線を活性化して書き込みを行う。このように構成すれば、検索動作と書き込み動作とを組み合わせて加算等の演算を行うことができる。
図12は、図11に示すCAMを用いた演算回路の動作を説明するタイムチャートである。図11に示すCAMを用いた演算回路では、検索動作に依るタグ情報をタグレジスタ96に取り込む動作と、タグレジスタ96のタグ情報を用いて書き込みを行う動作とが時系列的に行われるので、図12に示すように、1回の演算時間は2クロック周期を用いて構成される。2クロック周期の前半周期がタグレジスタ96に取り込む検索サイクル98となり、後半周期がタグレジスタ96のタグ情報を用いて書き込みを行う書き込みサイクル99となる。
図13は、CAMを用いた演算回路の具体的な適用例を説明する図である。図13では1ビット和演算A+B+C=A’(SUM)+C’(Carry)への適用例が示されている。これはプロセッサにおいて大量に行われる演算である。図13(a)は検索時の動作を説明する図である。図13(b)は書き込み時の動作を説明する図である。
全加算器で行うA,B,Cinの1ビット和演算では、和S(サム)と桁上げCout(キャリー)とが得られる。通常のプロセッサを用いた演算では、順にA,B,Cinをメモリから読み出して演算を行い、メモリに書き戻すという動作をデータの数だけ繰り返す必要があり、非常に時間が掛かる。
図11に示すCAMを用いた演算回路は、このような問題を解決することができる。以下、図13を参照して説明する。図13(a)において、CAMセルアレイ94には、A,B,Cinのデータを前もって格納しておく。そして、例えば“1,0,1”を内容とする検索データ101をCAMセルアレイ94に与え、A=1,B=0,Cin=1の組み合わせを検索し、マッチしたワード記憶部を示すタグ情報Tをタグレジスタ96に取り込み保存する。
次に、図13(b)において、タグレジスタ96に保存したタグ情報Tを用いてCAMセルアレイ94の対応するワード記憶部のワード線を活性化し書き込みデータ102をCAMセルアレイ94に与える。A=1,B=0,Cin=1の組み合わせ例ではS=0,Cout=1となり、それをCAMセルアレイ94のA,Cinの領域に書き戻すことになり、Bのデータは書き換える必要がない。したがって、書き込みデータ102は、Bのデータをマスクした“1,Mask,1”とする。これによって、タグレジスタ96に保存したタグ情報Tが示すワード記憶部に対してのみ書き戻しが行われる。
このように、図11に示すCAMを用いた演算回路では、A=1,B=0,Cin=1の組み合わせの計算を、データ量が大量であっても、検索動作と書き込み動作の組み合わせによって簡単に完了させることができる。このとき、A,B,Cinの考えられる組み合わせは最大でも8通りと限定されたものであるので、全ての計算を非常に少ないサイクル数で終えることができる。したがって、図11に示すCAMを用いた演算回路は、画像処理等の大量のデータ演算に好適であると考えられる。
しかしながら、従来のCAMを用いた演算回路では、図12に示したように、検索動作と書き込み動作とが時系列的に行われ1回の演算に2クロック周期を必要とするので、高速動作に問題がある。
また、サーチ線に依る検索速度の高速性を維持するためには、タグレジスタに接続されるCAMセルアレイのワード記憶部数をある程度以上増やすことができないので、列方向に離れた位置に在るワード記憶部間でのビット同士の演算を行う場合、一旦タグレジスタに接続されるCAMセルアレイのワード記憶部にロードし直す必要があるなど、動作上の問題点が多くある。
この発明は、上記に鑑みてなされたものであり、高速動作が図れ、かつ列方向に離れた位置に在るワード記憶部間でのビット同士の演算を簡単に行うことができる連想メモリを用いた演算回路を得ることを目的とする。
上述した目的を達成するために、この発明は、連想メモリにおいて検索動作を行い、メモリセルアレイの各ワード記憶領域にて得られた検索結果であるタグ情報をレジスタに保存し、その保存したタグ情報を用いてワード線を活性化して書き込み動作を行うことで演算を実施する連想メモリを用いた演算回路において、前記レジスタを第1のレジスタと第2のレジスタとで構成し、初回の1クロック周期では検索動作を実施して得られたタグ情報を前記第1のレジスタに保存し、2回目以降の各1クロック周期では、前周期にて前記第1のレジスタに保存したタグ情報を前記第2のレジスタに転送し、その転送したタグ情報を用いて書き込み動作を実施し、並行して検索動作を実施し、得られたタグ情報を前記第1のレジスタに保存する動作を制御する手段を備えていることを特徴とする。
この発明によれば、検索動作と書き込み動作とをパイプライン的に行うことが可能となるので、検索動作と書き込み動作とを離れたワード記憶領域において並行して実施できるだけでなく、同じワード記憶領域においても並行して実施できるようになり、演算のスループットが向上する。
この発明によれば、演算のスループットが向上するという効果を奏する。
以下に図面を参照して、この発明にかかる連想メモリを用いた演算回路の好適な実施の形態を詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1による連想メモリ(CAM)を用いた演算回路の構成を示すブロック図である。図1において、CAMセルアレイ1は、例えば図9に示すような周辺回路を備え、読み書き動作と検索動作とが行えるようになっている。このCAMセルアレイ1には、演算対象となるデータが格納される。上記の検索動作によってマッチ線に出力される検索結果(タグ情報)を検出するマッチ線アンプ2の出力をマッチ線タグレジスタ3に保存すると、直ちにそのタグ情報をワード線タグレジスタ4に転送する。そして、ワード線タグレジスタ4から取り出したタグ情報をワード線ドライバ5に与え、CAMセルアレイ1の対応するワード線を活性化して書き込みを行う。
図1は、この発明の実施の形態1による連想メモリ(CAM)を用いた演算回路の構成を示すブロック図である。図1において、CAMセルアレイ1は、例えば図9に示すような周辺回路を備え、読み書き動作と検索動作とが行えるようになっている。このCAMセルアレイ1には、演算対象となるデータが格納される。上記の検索動作によってマッチ線に出力される検索結果(タグ情報)を検出するマッチ線アンプ2の出力をマッチ線タグレジスタ3に保存すると、直ちにそのタグ情報をワード線タグレジスタ4に転送する。そして、ワード線タグレジスタ4から取り出したタグ情報をワード線ドライバ5に与え、CAMセルアレイ1の対応するワード線を活性化して書き込みを行う。
このように、検索結果(タグ情報)を保持するタグレジスタをマッチ線用のタグレジスタ3とワード線用のタグレジスタ4とに分離し、検索動作を終えてマッチ線タグレジスタ3に蓄えられたタグ情報を直ちにワード線タグレジスタ4に転送するように構成すれば、図2に示すように初回の検索動作以後では、ワード記憶部が同一であるか異なるかを問わず、検索動作と書き込み動作とを並行して連続的に実施することが可能となる。
但し、ワード記憶部を構成するCAMセルが図10に示した構成であれば、同じワード記憶部において検索動作と書き込み動作とを並行して実施する場合には支障が生ずる場合があるが、この点に関しては、CAMセルを後述するように構成しているので(図5〜図7−2参照)、支障なく実施できるようになっている。
図2は、図1に示すCAMを用いた演算回路の動作を説明するタイムチャートである。図2において、左端の最初の1クロック周期は、演算を行うにあたって検索動作が行われる初回の検索サイクル6である。この検索サイクル6では、最初の1クロック周期の前半周期にて各ワード記憶部での一致判定が行われ、マッチ線に現れたタグ情報がその1クロック周期の後半周期にてマッチ線タグレジスタ3に格納される。
マッチ線タグレジスタ3では、そのタグ情報が2番目のクロック周期の前半周期の期間が終了するまで保持されるが、その2番目の1クロック周期では、前半周期の開始時点でそのタグ情報がマッチ線タグレジスタ3からワード線用タグレジスタ4に転送され、対応するワード線が活性化され、書き込み動作が行われる。同時に、その2番目の1クロック周期の前半周期にて各ワード記憶部での一致判定が行われ、マッチ線に現れたタグ情報がその2番目の1クロック周期の後半周期にてマッチ線タグレジスタ3に格納される。以降の各1クロック周期において同様の動作が行われるので、2番目の1クロック周期以後では、各1クロック周期は、例えばあるワード記憶部では検索サイクル7となり、他のワード記憶部では書き込みサイクル8となるように制御される。また、同じワード記憶部であれば、ある所定数のCAMセルからなる記憶領域では検索サイクル7となり、他のある所定数のCAMセルからなる記憶領域では書き込みサイクル8となるように制御されることになる。
このように、実施の形態1によれば、各1クロック周期において検索動作と書き込み動作とをパイプライン的に実施することが可能となるので、演算のスループットを従来例の2倍に高めることができるようになる。
実施の形態2.
図3は、この発明の実施の形態2による連想メモリ(CAM)を用いた演算回路の構成を示すブロック図である。この実施の形態2では、サーチ線に依る検索速度の高速性を維持するためには、タグレジスタに接続されるCAMセルアレイのワード記憶部数をある程度の数に止める必要があるので、演算できるビットの組み合わせが限定されるという問題を解決する構成例が示されている。
図3は、この発明の実施の形態2による連想メモリ(CAM)を用いた演算回路の構成を示すブロック図である。この実施の形態2では、サーチ線に依る検索速度の高速性を維持するためには、タグレジスタに接続されるCAMセルアレイのワード記憶部数をある程度の数に止める必要があるので、演算できるビットの組み合わせが限定されるという問題を解決する構成例が示されている。
すなわち、この実施の形態2では、CAMセルアレイ1を所定数のワード記憶部毎に区分する。図3では、4個のアレイマットに区分した場合が示されている。そして、図3に示すように、その区分したアレイマット毎にサブタグレジスタ10,11,12,13を設け、サブタグレジスタ10〜13のタグ情報をAND回路14を介してメインタグレジスタ15に転送・格納し、メインタグレジスタ15からワード線用タグレジスタ4に転送する構成を採る。
この実施の形態2によれば、CAMセルアレイを小分割し、マッチ線用のタグレジスタを、そのアレイマット毎に設けたタグレジスタと、各タグレジスタのタグ情報をANDを取って格納する一つのタグレジスタとで構成する階層化構造としたので、サーチ線に依る検索速度の高速性を維持することができ、演算できるビットの組み合わせは限定されることがなく、フレキシブルな演算が可能となる。
実施の形態3.
図4は、この発明の実施の形態3による連想メモリを用いた演算回路の構成を示すブロック図である。この実施の形態3では、マッチ線用のタグレジスタの階層化を実施の形態2に示す方法で構成する場合は各サブタグレジスタとメインタグレジスタとの間の配線数が増加するという難点を解決する構成例が示されている。
図4は、この発明の実施の形態3による連想メモリを用いた演算回路の構成を示すブロック図である。この実施の形態3では、マッチ線用のタグレジスタの階層化を実施の形態2に示す方法で構成する場合は各サブタグレジスタとメインタグレジスタとの間の配線数が増加するという難点を解決する構成例が示されている。
すなわち、この実施の形態3では、図4に示すように、CAMセルアレイ1のアレイマット毎にAND回路20,21,22,23を設け、それぞれ、対応するサブタグレジスタ10,11,12,13のタグ情報を一方の入力とする。そして、最上位のアレイマットに対するAND回路20では、他方の入力は電源24の電圧であるが、2番目以降のアレイマットに対するAND回路21〜23では、他方の入力には上位のAND回路の出力を与え、最下位のアレイマットに対するAND回路23の出力をメインタグレジスタ15に与える構成を採る。
この実施の形態3によれば、下位階層のタグレジスタから最上位階層のタグレジスタへのタグ情報の伝播は、実施の形態2よりも遅れるが、CAMセルアレイのアレイマット数を増加しても必要な配線数は増加しないという利点がある。
実施の形態4.
図5〜図7−2は、この発明の実施の形態4による連想メモリ(CAM)を用いた演算回路におけるCAMセルの構成を説明する図である。なお、図5は、この発明の実施の形態4による連想メモリ(CAM)を用いた演算回路におけるCAMセルの構成を示す回路図である。図6は、CAMセルアレイに隣接して設けられるマスクレジスタの構成を説明する図である。図7−1および図7−2は、ビット線対(BL,/BL)およびサーチ線対(SL,/SL)の電位レベルを設定する回路図である。
図5〜図7−2は、この発明の実施の形態4による連想メモリ(CAM)を用いた演算回路におけるCAMセルの構成を説明する図である。なお、図5は、この発明の実施の形態4による連想メモリ(CAM)を用いた演算回路におけるCAMセルの構成を示す回路図である。図6は、CAMセルアレイに隣接して設けられるマスクレジスタの構成を説明する図である。図7−1および図7−2は、ビット線対(BL,/BL)およびサーチ線対(SL,/SL)の電位レベルを設定する回路図である。
この実施の形態4では、実施の形態1,2にて説明した検査動作と書き込み動作とを並列に実施するのに好適なCAMセルの構成例が示されている。すなわち、この発明では、検索動作と書き込み動作とが同じワード記憶部において行われることが起こる。この場合には、ワード線WLがHレベルになるので、図10に示すCAMセルの構成では、双方の動作が干渉することが起こる。そこで、この実施の形態4では、図5〜図7−2に示すように、ビット線対(BL,/BL)とサーチ線対(SL,/SL)とをそれぞれ個別に操作設定できるように各CAMセルを構成している。
図5において、実施の形態4によるCAMセルは、PMOSトランジスタ34,36およびNMOSトランジスタ35,37によるフリップフロップ構成の記憶回路と、NMOSトランジスタ40,41,42による選択回路と、NMOSトランジスタ31,32,38,39による比較回路とで構成されている。
記憶回路では、PMOSトランジスタ34,36のソース電極は電源33に接続されている。PMOSトランジスタ34のドレイン電極(以降「ノードN2」と記す)は、NMOSトランジスタ35のドレイン電極とPMOSトランジスタ36のゲート電極とNMOSトランジスタ37のゲート電極とに接続されている。また、ノードN1には、記憶回路選択回路のNMOSトランジスタ40のドレイン電極と比較回路のNMOSトランジスタ32のゲート電極とが接続されている。
PMOSトランジスタ36のドレイン電極(以降「ノードN2」と記す)は、NMOSトランジスタ37のドレイン電極とPMOSトランジスタ34のゲート電極とNMOSトランジスタ35のゲート電極とに接続されている。また、ノードN2には、選択回路のNMOSトランジスタ41のドレイン電極と比較回路のNMOSトランジスタ39のゲート電極とが接続されている。そして、NMOSトランジスタ35,37のソース電極は共通に接地(GND)に接続されている。
また、選択回路では、NMOSトランジスタ40のゲート電極はビット線BLに接続され、NMOSトランジスタ41のゲート電極はビット線/BLに接続され、NMOSトランジスタ40,41のソース電極は共通にNMOSトランジスタ42のドレイン電極に接続されている。そして、NMOSトランジスタ42のゲート電極はワード線WLに接続され、ソース電極は接地(GND)に接続されている。
また、比較回路では、上記のNMOSトランジスタ32,39のソース電極はそれぞれ接地(GND)に接続されている。NMOSトランジスタ32のドレイン電極はNMOSトランジスタ31のドレイン電極に接続されている。そして、NMOSトランジスタ31のソース電極はマッチ線MLに接続され、ゲート電極はサーチ線SLに接続されている。また、NMOSトランジスタ39のドレイン電極はNMOSトランジスタ38のドレイン電極に接続されている。そして、NMOSトランジスタ38のソース電極はマッチ線MLに接続され、ゲート電極はサーチ線SLに接続されている。
図5に示すCAMセルの動作を簡単に説明する。書き込み動作を行う場合、例えば、データビット“1”を書き込むために、ビット線BLを“1”レベルにし、ビット線/BLを“0”レベルにする。この状態で、ワード線WLをHレベルにする。その結果、NMOSトランジスタ42がオン動作を行い、NMOSトランジスタ40,41の各ソース電極は接地(GND)に接続された状態になる。NMOSトランジスタ40はオン動作状態にあるので、ノードN1の電位は接地(GND)のレベルに引かれ、Lレベルになる。そうすると、PMOSトランジスタ36がオン動作を行うので、ノードN2はノードN1がLレベルになるのに追従してHレベルになる。このように、ノードN1がLレベル、ノードN2がHレベルとなってデータビット“1”の記憶状態となる。
逆に、データビット“0”を書き込むときは、ビット線BLを“0”レベルにし、ビット線/BLを“1”レベルにする。この場合は、ノードN1がHレベルで、ノードN2がLレベルとなってデータビット“0” の記憶状態となる。
また、検索動作では、データビット“1”を検索するときは、SL=“0”、/SL=“1”にし、マッチ線MLがHレベルであれば一致と判断し、マッチ線MLがLレベルであれば不一致と判断する。この動作は、従来と同様である。
さて、図5に示すビット線対(BL,/BL)およびサーチ線対(SL,/SL)の電位レベルは、それぞれ、図6、図7−1、図7−2に示す方法で個別に設定される。
図6において、図2に示したように、CAMセルアレイ1のあるワード記憶部45において、ある記憶領域46に存する所定数のCAMセルからなるメモリセル群はサーチ対象となり、他のある記憶領域47に存する所定数のCAMセルからなるメモリセル群はライト(書き込み)対象となる。しかも、検索動作と書き込み動作とが同時に実施される。この場合には、検索を行う記憶領域47でもワード線はHレベルであるので、相互間での干渉を回避する措置が必要である。
そのため、CAMセルにおけるビット線およびサーチ線の扱いにおいて、サーチ線の扱いは従来例(図10)と同様であるが、ビット線およびサーチ線の扱いを図5に示すように構成し、それぞれの電位レベルを、図6、図7−1、図7−2に示す方法で個別に設定できるようにしている。
これによって、相互間での干渉を回避する措置として、複数あるサーチ線のうち検索動作の対象となる記憶領域46以外の領域におけるサーチ線は接地(GND)に固定する。同様に、複数あるビット線のうち書き込み動作の対象となる記憶領域47以外の領域におけるビット線は接地(GND)に固定することが可能となる。
具体的に説明する。図6に示すように、ワード記憶部に並行するビット線マスクレジスタ(以降「BMR」と記す)48とサーチ線マスクレジスタ(以降「SMR」と記す)49とがCAMセルアレイ1に隣接して設けられている。
BMR48では、書き込み動作の対象となる記憶領域47に対応する所定数のビットは“1”が設定され、記憶領域47以外の領域に対応するビットは“0”が設定される。同様に、SMR49では、サーチ動作の対象となる記憶領域46に対応する所定数のビットは“1”が設定され、記憶領域46以外の領域に対応するビットは“0”が設定される。
図7−1に示すビット線対(BL,/BL)の電位レベルを設定する回路は、BMR48のビット毎に設けられる。図7−1おいて、BMR48のビットデータBMRは、AND回路51,52の一方の入力端に直接印加される。ライトデータは、AND回路51の他方の入力端に直接印加されるとともに、AND回路52の他方の入力端にインバータ53を介して印加される。AND回路51の出力は、ビット線BLに接続され、AND回路52の出力は、ビット線/BLに接続されている。
図6と図7−1に示す構成によれば、BMR48において、“1”が設定されている記憶領域47におけるビット線対(BL,/BL)には書き込みデータが印加され、“0” が設定されている記憶領域におけるビット線対(BL,/BL)には接地電位が印加されるようになる。
図7−2に示すサーチ線対(SL,/SL)の電位レベルを設定する回路は、SMR49のビット毎に設けられる。図7−2おいて、SMR49のビットデータSMRは、AND回路55,56の一方の入力端に直接印加される。サーチデータは、AND回路55の他方の入力端に直接印加されるとともに、AND回路56の他方の入力端にインバータ57を介して印加される。AND回路55の出力は、サーチ線SLに接続され、AND回路56の出力は、サーチ線/SLに接続されている。
図6と図7−2に示す構成によれば、SMR49において、“1”が設定されている記憶領域46におけるサーチ線対(SL,/SL)にはサーチデータが印加され、“0” が設定されている記憶領域におけるサーチ線対(SL,/SL)には接地電位が印加されるようになる。
ここで、検索動作と書き込み動作とが並行して行われるワード記憶部45では、ワード線WLはHレベルでありNMOSトランジスタ42はオン動作状態にあるが、検索動作の対象となる記憶領域46に配置されるビット線対(BL,/BL)は接地電位のレベルに固定されるので、ビット線対(BL,/BL)にノイズが乗ってもノードN1,N2のレベル状態に影響を与えない。つまり、記憶領域46では、正しく検索動作を行うことができる。
また、書き込みの対象となる記憶領域47に配置されるサーチ線対(SL,/SL)は接地電位に固定されるので、サーチ線対(SL,/SL)にノイズが乗ってもノードN1,N2のレベル状態に影響を与えない。つまり、記憶領域47では、正しく書き込み動作を行うことができる。
このように、実施の形態4によれば、ビット線およびサーチ線の電位レベルをそれぞれ個別に操作できるように各CAMセルを構成したので、同じワード記憶部において検索動作と書き込み動作と並行して行われている場合に、動作の対象外となる領域ではビット線およびサーチ線の電位レベルをそれぞれ接地電位に固定することができる。これによって例えば検索動作を行うCAMセルでは、ビット線に乗るノイズに影響されることなく安定した動作が行えるようになる。
実施の形態5.
図8は、この発明の実施の形態5による連想メモリ(CAM)を用いた演算回路におけるCAMセルの構成を示す回路図である。CAMを用いた演算回路では、元々、演算の実行中においてCAMセルアレイの全部または一部のデータをリセットする必要が生ずる。実施の形態4に示すCAMセルを用いたCAMセルアレイでも、ワード線とビット線を順に制御することで、CAMセルアレイの全部または一部のデータをリセットすることは可能であるが、演算の実行中においてそのような制御を行うと、時間が掛かり過ぎて高速動作に支障を来す。
図8は、この発明の実施の形態5による連想メモリ(CAM)を用いた演算回路におけるCAMセルの構成を示す回路図である。CAMを用いた演算回路では、元々、演算の実行中においてCAMセルアレイの全部または一部のデータをリセットする必要が生ずる。実施の形態4に示すCAMセルを用いたCAMセルアレイでも、ワード線とビット線を順に制御することで、CAMセルアレイの全部または一部のデータをリセットすることは可能であるが、演算の実行中においてそのような制御を行うと、時間が掛かり過ぎて高速動作に支障を来す。
そこで、この実施の形態5では、演算の実行中においても高速動作を損なわずにCAMセルアレイの全部または一部のデータをリセットする場合の構成例が示されている。すなわち、図8に示すように、図5に示したCAMセルにおいて、非同期のリセット端子を構成するPNOSトランジスタ61,62が追加されている。
PNOSトランジスタ61,62の各ソース電極は電源63に接続され、PNOSトランジスタ61のドレイン電極はノードN1に接続され、PNOSトランジスタ62のドレイン電極はノードN2に接続されている。そして、PNOSトランジスタ61のゲート電極にはデータリセット線DRSTが接続され、PNOSトランジスタ62のゲート電極にはデータリセット線/DRSTが接続されている。
このデータリセット線DRST,/DRSTを用いると、同じビット線に接続されるCAMセルでは、ワード線を活性化することなくデータのセットとリセットが簡単に行えなる。なお、データのセット/リセットを行わない場合は、データリセット線DRST,/DRSTは、Hレベルに保持され、通常の動作に影響を与えないようにしている。
このように、実施の形態5によれば、各CAMセルに非同期のリセット端子を設けたので、演算の実行中においてもCAMセルアレイの全部または一部のデータを高速にリセットすることができる。
以上のように、この発明にかかる連想メモリを用いた演算回路は、演算の高速化を図るのに有用であり、特に、大量のデータ演算を必要とする画像処理等に適している。
1 CAMセルアレイ
2 マッチ線アンプ
3 マッチ線タグレジスタ
4 ワード線タグレジスタ
5 ワード線ドライバ
10〜13 サブタグレジスタ
14 AND回路
15 メインタグレジスタ
20〜22 AND回路
31,32,35,37〜42 NMOSトランジスタ
34,36,61,62 PMOSトランジスタ
45 ワード記憶部
46 サーチ対象の記憶領域
47 ライト対象の記憶領域
48 ビット線マスクレジスタ(BMR)
49 サーチ線マスクレジスタ(SMR)
51,52,55,56 AND回路
53,57 インバータ
2 マッチ線アンプ
3 マッチ線タグレジスタ
4 ワード線タグレジスタ
5 ワード線ドライバ
10〜13 サブタグレジスタ
14 AND回路
15 メインタグレジスタ
20〜22 AND回路
31,32,35,37〜42 NMOSトランジスタ
34,36,61,62 PMOSトランジスタ
45 ワード記憶部
46 サーチ対象の記憶領域
47 ライト対象の記憶領域
48 ビット線マスクレジスタ(BMR)
49 サーチ線マスクレジスタ(SMR)
51,52,55,56 AND回路
53,57 インバータ
Claims (6)
- 連想メモリにおいて検索動作を行い、メモリセルアレイの各ワード記憶領域にて得られた検索結果であるタグ情報をレジスタに保存し、その保存したタグ情報を用いてワード線を活性化して書き込み動作を行うことで演算を実施する連想メモリを用いた演算回路において、
前記レジスタを第1のレジスタと第2のレジスタとで構成し、
初回の1クロック周期では検索動作を実施して得られたタグ情報を前記第1のレジスタに保存し、2回目以降の各1クロック周期では、前周期にて前記第1のレジスタに保存したタグ情報を前記第2のレジスタに転送し、その転送したタグ情報を用いて書き込み動作を実施し、並行して検索動作を実施し、得られたタグ情報を前記第1のレジスタに保存する動作を制御する手段、
を備えていることを特徴とする連想メモリを用いた演算回路。 - 前記第1のレジスタは、
前記メモリセルアレイを所定数のワード記憶領域に区分したアレイマット毎に対応して設けられる複数のサブレジスタと、
前記複数のサブレジスタに保存されるタグ情報が転送されるメインレジスタとで構成され、
前記メインレジスタに保存されたタグ情報が前記第2のレジスタに転送される、
ことを特徴とする請求項1に記載の連想メモリを用いた演算回路。 - 前記複数のサブレジスタに保存されるタグ情報は、共通のAND回路を介して前記メインレジスタに転送される、ことを特徴とする請求項2に記載の連想メモリを用いた演算回路。
- 前記複数のサブレジスタに保存されるタグ情報は、一のサブレジスタに保存されたタグ情報と隣接する他の一のサブレジスタに保存されたタグ情報との論理積を取ることを順々に行うことで前記メインレジスタに転送される、ことを特徴とする請求項2に記載の連想メモリを用いた演算回路。
- 前記メモリセルアレイを構成する各メモリセルは、ワード線の活性化有無とは無関係に任意のタイミングにおいてその保持するデータを消去し、また書き込むことを可能にするリセット手段、を備えていることを特徴とする請求項1または2に記載の連想メモリを用いた演算回路。
- 前記連想メモリが書き込み動作を制御するビット線と検索動作を制御するサーチ線とを備える場合に、前記メモリセルアレイを構成する各メモリセルは、検索動作時には前記ビット線を接地電位に引き込み、書き込み動作時には前記サーチ線を接地電位に引き込む手段、を備えていることを特徴とする請求項1、2、5のいずれか一つに記載の連想メモリを用いた演算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004278247A JP2006092676A (ja) | 2004-09-24 | 2004-09-24 | 連想メモリを用いた演算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004278247A JP2006092676A (ja) | 2004-09-24 | 2004-09-24 | 連想メモリを用いた演算回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006092676A true JP2006092676A (ja) | 2006-04-06 |
Family
ID=36233501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004278247A Pending JP2006092676A (ja) | 2004-09-24 | 2004-09-24 | 連想メモリを用いた演算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006092676A (ja) |
-
2004
- 2004-09-24 JP JP2004278247A patent/JP2006092676A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI692760B (zh) | 儲存裝置、方法及儲存媒體 | |
KR101714560B1 (ko) | 연산을 수행하기 위해 기억 셀을 이용하는 장치 및 방법 | |
US10971214B2 (en) | Apparatuses and methods to perform logical operations using sensing circuitry | |
CN109003640B (zh) | 存储器中子阵列之间的数据传送 | |
US20150003138A1 (en) | Content addressable memory system | |
US10418123B2 (en) | Column repair in memory | |
TW201732830A (zh) | 用於同時存取非揮發性記憶體之多個分區之裝置及方法 | |
US10388333B2 (en) | Apparatuses and methods to selectively perform logical operations | |
JP3850669B2 (ja) | キャッシュメモリ | |
JP2004355671A (ja) | 演算機能付き記憶装置および演算記憶方法 | |
US6339539B1 (en) | Content addressable memory having read/write capabilities that do not interrupt continuous search cycles | |
CN112639976A (zh) | 使用逻辑运算组件的逻辑运算 | |
EP1713082B1 (en) | Improvements relating to content addressable (associative) memory devices | |
JP2004295967A (ja) | 連想メモリ | |
JPS63281299A (ja) | 連想メモリ装置 | |
US10496310B2 (en) | Shift skip | |
US20220343969A1 (en) | Logical operations using memory cells | |
KR100505109B1 (ko) | 읽기 시간을 단축시킬 수 있는 플래시 메모리 장치 | |
JP2006092676A (ja) | 連想メモリを用いた演算回路 | |
JP5728358B2 (ja) | 半導体記憶装置 | |
EP1353337A2 (en) | Semiconductor memory | |
JP2006323983A (ja) | 高速ワードラインスイッチを有するメモリ素子 | |
JP2011187141A (ja) | 転送回路及びそれを用いた不揮発性半導体記憶装置 | |
JP2005063553A (ja) | 磁性体記憶装置 | |
JPS63183694A (ja) | 半導体記憶装置 |