(57)【要約】【課題】消費電流の変動を低減する。【解決手段】エントリデータを保持可能なＣＡＭ部（４）を含み、入力された比較データと上記エントリデータとを比較し、その比較結果を出力可能な半導体記憶装置において、上記ＣＡＭ部に対して検索要求を発生させるためのコントローラ（１０）を設ける。上記コントローラは、電流変動を抑制するレベルの検索レートを設定可能な検索レート設定手段を含む。検索レート設定手段は、電流変動を抑制するレベルの検索レートを設定することができ、そのような設定が行われることで、検索動作による電流を常に流すことができ、電流変動を抑制することができる。【選択図】図１
2010186557.tif 000002
【特許請求の範囲】
【請求項１】
エントリデータを保持可能なＣＡＭ部を含み、入力された比較データと上記エントリデータとを比較し、その比較結果を出力可能な半導体記憶装置であって、
上記ＣＡＭ部に対して検索要求を発生させるためのコントローラを含み、
上記コントローラは、電流変動を抑制するレベルの検索レートを設定可能な検索レート設定手段を含んで成ることを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置、さらにはそれにおける消費電力の低減や、消費電流の変動を低減するための技術に関し、例えばＣＡＭ（コンテントアドレッサブルメモリ）に適用して有効な技術に関する。
【背景技術】
【０００２】
インターネット通信回線網において異なるネットワークアドレス間のパケットの中継および方路選択を行うルータに用いられるメモリとして、ＣＡＭ（コンテントアドレッサブルメモリ）が知られている。そのようなＣＡＭの一例として、メモリセルにデータ比較マスクの２ビットの情報を記憶し、入力データとの比較結果を比較一致線へ出力するようにしたターナリ型メモリが知られている（例えば特許文献１参照）。
【０００３】
大容量のデータを比較するＣＡＭ用ＬＳＩには、例えば６４エントリ×７２ビット程度のＣＡＭマクロセルが数百〜数千個配置され、全体で数ｋエントリの一つの検索テーブルが構成される。ＣＡＭマクロセルは、マッチ信号線をプリチャージしておき、比較用データとメモリセルの内部データとを比較するときに、比較データ線を活性化させ、１ビットでも不一致の場合にはマッチ信号線の電荷を放電する方式が主流となっている。全体から見ると、一致するデータは僅かであり、大半のデータは不一致となる。このため、チップ上の全エントリのデータを比較する場合には、大半は不一致のため毎サイクル比較データ線とマッチ信号線の電荷の充放電を繰り返すことになる。この対策として、例えば比較データを複数に分割して比較する方式が提案されている（例えば特許文献２）。この方式によれば、分割されたデータの１回目の比較結果で、一致した場合にのみ２回目の比較用マッチ信号線をプリチャージし、不一致の場合にはプリチャージしない方式にすることにより、マッチ信号線の充放電回数を低減し、動作電流の低減を図っている。
【０００４】
また、複数のＣＡＭチップをシステムとして使用する際に、それぞれのＣＡＭチップをカスケード接続してエントリ数を拡張するための技術が知られている（例えば特許文献３〜５、非特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第６１５４３８４号明細書
【特許文献２】米国特許第６２４２２８０号明細書
【特許文献３】米国特許第５９３０３５９号明細書
【特許文献４】米国特許出願公開第２００４／０００１３８０号明細書
【特許文献５】米国特許出願公開第２００４／００４２２４１Ａ１号明細書
【非特許文献】
【０００６】
【非特許文献１】ＩＳＳＣＣ２００４／Ｓｅｓｓｉｏｎ  １１／ＤＲＡＭ／１１．５，”Ａ  １４３ＭＨｚ１．１Ｗ４．５Ｍｂ  Ｄｙｎａｍｉｃ  ＴＣＡＭ  ｗｉｔｈ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｓｅａｒｃｈｉｎｇ  ａｎｄ  Ｓｈｉｆｔ  Ｒｅｄｕｎｄａｎｃｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ”，２００４  ＩＥＥＥ  ＩＳＳＣＣ  ｐｐ．２０８−２０９，５２２−５２３
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＣＡＭ用ＬＳＩの動作電流について本願発明者が検討したところ、マッチ信号線と比較データ線の電荷充放電によるものが支配的であり、高速化や高集積度化に伴って動作電流が大幅に増大する。特許文献２記載の技術によれば、マッチ信号線の充放電電流は低減することができるが、比較データ線は毎サイクル動作するため、そこでの充放電電流の低減は望めない。また、ＣＡＭ部の動作電流は、検索レートに比例し、検索レートが変動した場合に、ＬＳＩの電流が大きく変動し、このため電源電圧が変動することで、回路の誤動作を起こすおそれがある。この検索レートの変動はＣＡＭ部を通信用途に使用した場合において、ネットワークの混雑度が変動した場合や、ＣＡＭ部のデータを変更するために検索を一時停止した場合に起こる。
【０００８】
ＣＡＭマクロセルは、従来よりネット上の経路選択や送信データのファイリングを行うルータに用いて好適なものとされる。そのような用途において従来はデータのビット幅が比較的狭かったため、特許文献１〜５や非特許文献１などの上記従来技術においても、ＣＡＭマクロセルのレイアウト技術によるスループットの向上や消費電力を低減するための技術については十分に考慮されてはいない。しかしながら近年においては、例えばルータ用ＣＡＭなどのように、ＩＰＶ６プロトコルで５７６ビットと、ビット幅を広くとる要求が強く、伝送される情報量も増加傾向にあるため、ＣＡＭ部のレイアウト技術によるスループットの向上や消費電力の低減が特に必要とされる。
【０００９】
本発明の目的は、消費電力を低減するための技術を提供することにある。
【００１０】
また、本発明の別の目的は消費電流の変動を低減するための技術を提供することにある。
【００１１】
さらに、本発明の別の目的はＣＡＭ部のスループットの向上を図るための技術を提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
すなわち、エントリデータを保持可能なＣＡＭ部を含み、入力された比較データと上記エントリデータとを比較し、その比較結果を出力可能な半導体記憶装置であって、上記エントリデータの一部のビットと上記比較データの対応ビットとの比較結果を取り込み、その比較結果が不一致の場合には、上記エントリデータにおける残りのビットと上記比較データの対応ビットとの比較を禁止するための制御回路を含む。
【００１５】
上記の手段によれば、制御回路は、上記エントリデータの一部のビットと上記比較データの対応ビットとの比較結果を取り込み、その比較結果が不一致の場合には、上記エントリデータにおける残りのビットと上記比較データの対応ビットとの比較を禁止する。このように上記エントリデータにおける残りのビットと上記比較データの対応ビットとの比較が禁止されることにより、比較動作の１サイクル中に活性化される信号線の数を低減することができ、このことが、消費電力の低減を達成する。
【００１６】
また、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較結果を取り込み、その比較結果が不一致の場合には、上記エントリデータにおける後段部のビットが上記ＣＡＭ部に取り込まれるのを阻止することにより、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較を禁止するための制御回路を設ける。
【００１７】
上記の手段によれば、制御回路は、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較結果を取り込み、その比較結果が不一致の場合には、上記エントリデータにおける後段部のビットが上記ＣＡＭ部に取り込まれるのを阻止する。これにより、比較動作の１サイクル中に活性化される信号線の数を低減することができ、このことが、消費電力の低減を達成する。
【００１８】
このとき、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較動作と、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較動作とをパイプライン動作させることで、比較動作の効率向上を達成する。
【００１９】
消費電流を更に低減するには、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較で一致したエントリの後段部のマッチ信号線のみプリチャージ可能なプリチャージ回路を設けると良い。
【００２０】
上記後段部のマッチ信号線を毎サイクルプリチャージする第１回路を設ける場合には、上記前段部の比較で不一致となったエントリの後段部のマッチ信号線をディスチャージする第２回路とを設ける。
【００２１】
エントリデータにおける論理の偏りを低減するには、上記エントリデータにおける前段部には、上記エントリデータにおける偶数ビットを割り当て、上記エントリデータにおける後段部には、上記エントリデータにおける奇数ビットを割り当てると良い。
【００２２】
上記ＣＡＭ部に対して検索要求を発生させるためのコントローラを設けることができ、このコントローラは、電流変動を抑制するレベルの検索レートを設定可能な検索レート設定手段を含んで構成することができる。
【００２３】
検索レート設定手段は、上記ＣＡＭ部の検索レートを制御可能な制御信号を取り込むための外部端子や、上記制御信号を保持可能な保持手段を含んで構成することができる。
【００２４】
また、エントリデータを保持可能なＣＡＭ部を含み、入力された比較データと上記エントリデータとを比較し、その比較結果を出力可能な半導体記憶装置であって、上記ＣＡＭ部に対して検索要求を発生させるためのコントローラを含み、上記コントローラは、電流変動を抑制するレベルの検索レートを設定可能な検索レート設定手段を含んで成る。
【００２５】
上記の手段によれば、検索レート設定手段は、電流変動を抑制するレベルの検索レートを設定することができ、そのような設定が行われることで、検索動作による電流を常に流すことができ、このことが、電流変動を抑制する。
【００２６】
さらに、エントリデータを保持可能なＣＡＭ部を含み、入力された比較データと上記エントリデータとを比較し、その比較結果を出力可能な半導体記憶装置において、上記ＣＡＭ部は、それぞれ上記比較データと上記エントリデータとの比較を可能とする複数のブロックに分割し、上記複数のブロックは、それぞれブロック毎に複数のサブブロックに分割することができる。そして、上記サブブロックは、伝達されたクロック信号に同期して上記ＣＡＭ部の一端側に位置するブロックから上記ＣＡＭ部の他端側に位置するブロックに向かって上記比較データを順次伝達可能なラッチ回路と、上記エントリデータの前段部のビットと上記比較データの対応ビットとの比較結果を取り込み、その比較結果が不一致の場合には、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較を禁止するための制御論理とを含んで構成することができる。これにより、１ブロック分の設計が完了すれば、それを複数ブロック分並べることにより、容易にエントリ数の拡張が可能とされる。しかも、上記サブブロックは、伝達されたクロック信号に同期して上記ＣＡＭ部の一端側に位置するブロックから上記ＣＡＭ部の他端側に位置するブロックに向かって上記比較データを順次伝達可能なラッチ回路とが設けられることにより、上記複数ブロック間のパイプライン動作が可能とされる。
【００２７】
そして上記エントリデータの前段部のビットと上記比較データの対応ビットとの比較結果を取り込み、その比較結果が不一致の場合には、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較を禁止するための制御論理とが設けられることにより、比較動作の１サイクル中に活性化される信号線の数を低減することができ、このことが、消費電力の低減を達成する。
【００２８】
このとき、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較動作と、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較動作とは、上記クロック信号に同期してパイプライン動作される。つまり、上記複数ブロック間のパイプライン動作と、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較のためのパイプライン動作とは、上記クロック信号に同期して行われる。このことが、上記ＣＡＭ部のスループットの向上を達成する。
【００２９】
また、上記複数のブロックに対応して複数のプライオリティエンコーダ部を設けることができる。この上記プライオリティエンコーダ部は、対応する上記ブロックから伝達された情報から対応するブロックにおいて一致データが有るか否かの判別を可能とする一致信号、データが一致する場合のアドレスを示す一致アドレス信号、一致データが複数有る場合の判別を可能とする複数一致信号を出力するプライオリティエンコーダと、上記プライオリティエンコーダの出力信号を後段のブロックに出力可能なブロック間プライオリティ制御回路とを含んで構成することができる。
【００３０】
上記ブロック間プライオリティ制御回路は、上記プライオリティエンコーダから伝達された一致信号と、前段のブロックから取り込まれた一致信号とのオア論理を得てそれを後段のブロックに出力可能な第１オアゲートと、上記プライオリティエンコーダから伝達された複数一致信号と、前段のブロックから取り込まれた複数一致信号とのオア論理を得てそれを後段のブロックに出力可能な第２オアゲートと、上記前段のブロックから取り込まれた一致信号に応じて、上記プライオリティエンコーダから伝達された一致アドレス信号と、上記前段のブロックから取り込まれた一致アドレス信号とを選択的に後段のブロックに出力可能なセレクタとを含んで構成することができる。
【００３１】
上記サブブロックは、上記パイプライン動作で上記クロック信号の立ち上がりタイミングに同期する第１サブブロックと、上記クロック信号の立ち下がりタイミングに同期する第２サブブロックとを含んで構成することができる。
【発明の効果】
【００３２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００３３】
すなわち、比較動作の１サイクル中に活性化される信号線の数を低減することにより、半導体記憶装置の消費電力を低減することができる。
【００３４】
また、検索動作による電流を常に流すことによって消費電流の変動を低減することができる。
【００３５】
さらに、クロック信号に同期して複数ブロック間でパイプライン動作されるとともに、エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較処理も上記クロック信号に同期してパイプライン動作されることにより、ＣＡＭ部のスループットの向上を図ることができ、しかも、上記のように比較動作の１サイクル中に活性化される信号線の数が低減されるため、半導体記憶装置の消費電力を低減することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明にかかる半導体集積回路における一例であるＣＡＭ用ＬＳＩの構成例ブロック図である。
【図２】ＣＡＭマクロセルアレイの構成例ブロック図である。
【図３】上記ＣＡＭ用ＬＳＩに含まれるパワーコントローラの構成例ブロック図である。
【図４】上記ＣＡＭマクロセルの構成例回路図である。
【図５】図４における主要部の構成例回路図である。
【図６】図４における主要部の構成例回路図である。
【図７】図６に示される構成の動作タイミング図である。
【図８】図４における主要部の別の構成例回路図である。
【図９】図８に示される構成の動作タイミング図である。
【図１０】図６に示される比較回路の活性化エリアの説明図である。
【図１１】図８に示される比較回路の活性化エリアの説明図である。
【図１２】図３における主要部の構成例ブロック図である。
【図１３】図３に示される回路における真理値表の説明図である。
【図１４】ＣＡＭ用ＬＳＩの検索レートと電源電流の関係説明図である。
【図１５】ＣＡＭ用ＬＳＩへの検索要求率とＣＡＭ活性化率との関係説明図である。
【図１６】上記ＣＡＭマクロセルアレイの別の構成例説明図である。
【図１７】上記ＣＡＭマクロセルアレイにおけるサブブロックについての構成例回路図である。
【図１８】上記ＣＡＭ用ＬＳＩに含まれるエンコーダ部の構成例ブロック図である。
【図１９】上記エンコーダ部に含まれるブロック間プライオリティ制御回路の構成例回路図である。
【図２０】上記ＣＡＭマクロセルアレイにおける検索動作のタイミング図である。
【図２１】上記ＣＡＭマクロセルアレイにおける動作順序の説明図である。
【図２２】上記ＣＡＭマクロセルアレイの別の構成例説明図である。
【図２３】図２２に示されるＣＡＭマクロセルアレイにおける動作順序の説明図である。
【図２４】図２２に示されるＣＡＭマクロセルアレイにおける動作タイミング図である。
【図２５】上記ＣＡＭマクロセルアレイの別の構成例説明図である。
【図２６】図２５に示されるＣＡＭマクロセルアレイにおける動作順序の説明図である。
【図２７】図２５に示されるＣＡＭマクロセルアレイにおけるサブブロックについての構成例回路図である。
【図２８】図２５に示されるＣＡＭマクロセルアレイにおけるサブブロック間検索結果集計論理部の構成例回路図である。
【図２９】図２５に示されるＣＡＭマクロセルアレイにおける主要部の動作タイミング図である。
【発明を実施するための形態】
【００３７】
図１には、本発明にかかる半導体記憶装置の一例であるＣＡＭ用ＬＳＩが示される。
【００３８】
図１に示されるＣＡＭ用ＬＳＩは、特に制限されないが、アドレスバッファ１、データ入出力バッファ２、コマンドバッファ３、ＣＡＭマクロセルアレイ４、プライオリティエンコーダ５、パワーコントローラ１０、オアゲート１１とを含み、公知の半導体集積回路製造技術により単結晶シリコン基板などの一つの半導体基板に形成される。
【００３９】
アドレスバッファ１は、アドレス入力端子Ｔ１を介して入力されたアドレス信号をＣＡＭマクロセルアレイ４に伝達する機能を有する。データ入出力バッファ２は、データ入出力端子Ｔ２を介して入力されたデータをＣＡＭマクロセルアレイ４に伝達する機能と、データ入出力端子Ｔ２を介してＣＡＭマクロセルアレイ４からの読み出しデータを外部出力する機能を有する。コマンドバッファ３は、コマンド入力端子Ｔ３を介して入力されたコマンドをＣＡＭマクロセルアレイ４やパワーコントローラ１０に伝達される。コマンド入力端子Ｔ３を介して入力されたコマンドには、ＣＡＭマクロセルアレイ４からのデータ読み出しの有効性を示すリードイネーブル信号ＲＥ、ＣＡＭマクロセルアレイ４へのデータ書き込みの有効性を示すライトイネーブル信号ＷＥ、及びコマンドによる検索の有効性を示すコマンドサーチイネーブル信号ＣＤ＿ＳＥが含まれる。ＣＡＭマクロセルアレイ４は、例えば図２に示されるように複数のＣＡＭマクロセル４０がアレイ状に配列されて成る。プライオリティエンコーダ５は、上記ＣＡＭマクロセルアレイ４における複数のＣＡＭマクロセルからのマッチアドレス出力やマッチステータス出力のうち優先度の高いものを出力端子Ｔ４，Ｔ５から外部出力する機能を有する。パワーコントローラ１０は、検索レートが所定値以上になるようにＣＡＭにダミーの検索要求を発生させることにより、ＬＳＩにおける電源電流の変動を低減させるためのパワーコントロールサーチイネーブル信号ＰＣ＿ＳＥを発生させることができる。上記コマンドサーチイネーブル信号ＣＤ＿ＳＥとパワーコントロールサーチイネーブル信号ＰＣ＿ＳＥとはオアゲート１１を介することにより、サーチイネーブル信号ＳＥとしてＣＡＭマクロセルアレイ４に伝達される。
【００４０】
図４には上記複数のＣＡＭマクロセルのうちの一つの構成が代表的に示される。
【００４１】
図４に示されるＣＡＭマクロセル４０は、特に制限されないが、６４エントリ×７２ビット構成とされる。そして、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較と、上記エントリデータにおける後段部のビットと上記比較データの対応ビットとの比較をパイプライン処理で行うため、第１メモリセル群４３１と第２メモリセル群４３２とに分けられる。特に制限されないが、第１メモリセル群４３１、第２メモリセル群４３２は、いずれも６４エントリ×３６ビット構成とされる。
【００４２】
第１メモリセル群４３１は、複数のワード線ＷＬ−１，ＷＬ−２，…，ＷＬ−ｎとそれに交差するように設けられた複数のビット線ＢＬ及び複数の比較データ線ＣＤとの交差箇所に設けられた複数のメモリセルＭＣを含む。上記複数のワード線ＷＬ−１，ＷＬ−２，…，ＷＬ−ｎは、入力されたアドレス信号をデコードするデコーダ４０１からの出力信号によって選択的に所定レベルに駆動される。上記複数のデータ線ＢＬはセンスアンプ４０２に結合され、第１メモリセル群４３１から読み出されたデータがセンスアンプ４０２で増幅されてからデータ出力されるようになっている。上記複数の比較データ線ＣＤは比較データアンプ４０４に結合され、この比較データアンプ４０４で増幅された比較データが上記比較データ線ＣＤに供給されるようになっている。第１メモリセル群４３１においては、上記ワード線ＷＬ−１，ＷＬ−２，…，ＷＬ−ｎと並行に複数のマッチ信号線ＭＬ１−１，ＭＬ１−２，…ＭＬ１−ｎが設けられ、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較結果であるマッチ信号がこのマッチ信号線ＭＬ１−１，ＭＬ１−２，…ＭＬ１−ｎで得られるようになっている。上記複数のマッチ信号線ＭＬ−１，ＭＬ−２，…ＭＬ−ｎは、それぞれバッファ４１９−１，４１９−２，…４１９−ｎを介して後段のラッチ回路４１７−１，４１７−２，…，４１７−ｎに伝達され、そこでラッチされるようになっている。そして、上記ラッチ回路４１７−１，４１７−２，…，４１７−ｎの出力信号（マッチ信号）は、後段の制御回路４０９に入力される。この制御回路４０９は、上記ラッチ回路４１７−１，４１７−２，…，４１７−ｎから出力されたマッチ信号の全てがローレベルとされる場合に、不一致信号ＤＩＳをローレベルにアサートする機能を有する。上記複数のビット線ＢＬはライトアンプ４０５に結合され、このライトアンプ４０５で増幅されたライトデータが上記複数のビット線ＢＬに伝達されることによって第１メモリセル群４３１における各メモリセルＭＬへのデータ書き込みが可能とされる。
【００４３】
パルス生成回路４１０が設けられ、このパルス生成回路４１０において、プリチャージ信号ＰＣＧ、クロック信号ＣＫ１、リセット信号ＲＥＳＥＴが生成されるようになっている。上記プリチャージ信号ＰＣＧによってプリチャージ用のｐチャネル型ＭＯＳトランジスタの動作が制御され、クロック信号ＣＫ１によってラッチ回路４１７−１，４１７−２，…，４１７−ｎの動作制御が行われ、リセット信号ＲＥＳＥＴによって制御回路４０９がリセットされるようになっている。
【００４４】
第２メモリセル群４３２は、上記複数のワード線ＷＬ−１，ＷＬ−２，…，ＷＬ−ｎとそれに交差するように設けられた複数のビット線ＢＬ及び複数の比較データ線ＣＤとの交差箇所に設けられた複数のメモリセルＭＣを含む。上記複数のデータ線ＢＬはセンスアンプ４０３に結合され、第２メモリセル群４３２から読み出されたデータがセンスアンプ４０３で増幅されてからデータ出力されるようになっている。上記複数の比較データ線ＣＤは比較データアンプ４０６に結合され、この比較データアンプ４０６で増幅された比較データが上記比較データ線ＣＤに供給されるようになっている。ここで、比較データアンプ４０６は、上記制御回路４０９からの不一致信号ＤＩＳがハイレベルの場合には活性化されて比較データを比較データ線ＣＤに供給する。しかし、上記制御回路４０９からの不一致信号ＤＩＳがローレベルの場合には、比較データアンプ４０６は非活性状態とされ、比較データの比較データ線ＣＤへの供給が行われない。換言すれば、上記制御回路４０９からの不一致信号ＤＩＳがハイレベルの場合には、第２メモリセル群４３２に記憶されたデータとの比較は行われない。上記比較データアンプ４０６は、比較データ線に対応して配置された複数のアンドゲート６２４によって形成される。
【００４５】
第２メモリセル群４３２においては、上記ワード線ＷＬ−１，ＷＬ−２，…，ＷＬ−ｎと並行に複数のマッチ信号線ＭＬ２−１，ＭＬ２−２，…ＭＬ２−ｎが設けられ、上記エントリデータにおける前段部のビットと上記比較データの対応ビットとの比較結果であるマッチ信号がこのマッチ信号線ＭＬ２−１，ＭＬ２−２，…ＭＬ２−ｎで得られるようになっている。上記複数のマッチ信号線ＭＬ−１，ＭＬ−２，…ＭＬ−ｎは、エンコーダ４０８に伝達され、ここでエンコードされることによってマッチアドレス出力及びマッチステータス出力が得られるようになっている。上記複数のビット線ＢＬはライトアンプ４０７に結合され、このライトアンプ４０７で増幅されたライトデータが上記複数のビット線ＢＬに伝達されることによって第２メモリセル群４３２における各メモリセルＭＬへのデータ書き込みが可能とされる。
【００４６】
ラッチ回路４１１が配置され、このラッチ回路４１１を介してアドレス信号ＡＤＲの取り込みが行われるようになっている。取り込まれたアドレス信号ＡＤＲは上記デコーダ４０１に伝達される。ラッチ回路４１２が配置され、このラッチ回路４１２を介して、読み出し動作の有効性を示すリードイネーブル信号ＲＥの取り込みが行われるようになっている。取り込まれたリードイネーブル信号ＲＥはセンスアンプ４０２，４０３に伝達されるようになっている。ラッチ回路４１３が設けられ、このラッチ回路４１３は、例えば７２ビット構成の比較データＣＤ＜０：７１＞の取り込みが行われる。特に制限されないが、この７２ビット構成の比較データＣＤ＜０：７１＞のうち、偶数３６ビット分の比較データは第１メモリセル群４３１への書き込みのためにライトアンプ４０５に伝達され、また、第１メモリセル群４３１に記憶されているデータとの比較のため、比較データアンプ４０４へ伝達される。また、上記７２ビット構成の比較データＣＤ＜０：７１＞のうち奇数３６ビット分の比較データは第１メモリセル群４３２への書き込みのためにライトアンプ４０７に伝達され、また、第１メモリセル群４３１に記憶されているデータとの比較のため、ラッチ回路４１６を介して比較データアンプ４０６へ伝達される。ラッチ回路４１４,４２１が設けられ、このラッチ回路４１４,４２１は、比較動作の有効性を示すサーチイネーブル信号ＳＥの取り込みを行う。取り込まれたサーチイネーブル信号ＳＥは比較データアンプ４０４，４０６を活性化するのに利用される。ラッチ回路４１５が設けられ、このラッチ回路４１５は書き込み動作の有効性を示すライトイネーブル信号ＷＥを取り込む。取り込まれたライトイネーブル信号ＷＥはライトアンプ４０５，４０６を活性化するのに使用される。上記各ラッチ回路４１１，４１２，４１３，４１４，４１５，４１６,４２１は、クロック信号ＣＫに同期して動作される。
【００４７】
図５には、上記複数のメモリセルＭＣのうちの一つについての構成例が代表的に示される。
【００４８】
図５に示される構成はターナリ型とされる。一対のビット線ＢＬは、ビット線ＢＬ１，ＢＬ１＊を含む。記憶部Ｍ１，Ｍ２で一対のビット線ＢＬ１，ＢＬ１＊が共通化されているため、ワード線ＷＬは通常データ用ワード線ＷＬ−１−１とマスクデータ用ワード線ＷＬ−１−２とを別々に設け、ワード線駆動のサイクルをずらすことで、記憶部Ｍ１，Ｍ２へ、互いに異なるデータの書き込みを可能としている。インバータ５０２，５０３がループ状に結合されて記憶部Ｍ１が形成される。この記憶部Ｍ１の一方の記憶ノードはトランスファ素子としてのｎチャネル型ＭＯＳトランジスタ５０１を介してビット線ＢＬ１に結合される。上記記憶部Ｍ１の他方の記憶ノードはトランスファ素子としてのｎチャネル型ＭＯＳトランジスタ５０４を介してビット線ＢＬ１＊に結合される。また、インバータ５０６，５０７がループ状に結合されて記憶部Ｍ２が形成される。この記憶部Ｍ２の一方の記憶ノードはトランスファ素子としてのｎチャネル型ＭＯＳトランジスタ５０５を介してビット線ＢＬ１に結合される。上記記憶部Ｍ２の他方の記憶ノードはトランスファ素子としてのｎチャネル型ＭＯＳトランジスタ５０８を介してビット線ＢＬ１＊に結合される。上記インバータ５０２，５０３，５０６，５０７は、それぞれｐチャネル型ＭＯＳトランジスタとｎチャネル型ＭＯＳトランジスタとが直列接続されて成る。また、ｎチャネル型ＭＯＳトランジスタ５０９，５１０が直列接続されて第１比較回路が形成され、ｎチャネル型ＭＯＳトランジスタ５１１，５１２が直列接続されて第２比較回路が形成される。ｎチャネル型ＭＯＳトランジスタ５０９のゲート電極は、上記記憶部Ｍ１の一方の記憶ノードに結合され、ｎチャネル型ＭＯＳトランジスタ５１０のゲート電極は比較データ線ＣＤＡＴに結合される。ｎチャネル型ＭＯＳトランジスタ５１１のゲート電極は、上記記憶部Ｍ２の一方の記憶ノードに結合され、ｎチャネル型ＭＯＳトランジスタ５１２のゲート電極は比較データ線ＣＤＡＢに結合される。比較データ線ＣＤＡＴ，ＣＤＡＢを介して取り込まれた比較データと、記憶部Ｍ１，Ｍ２に記憶されているデータとの比較は、上記第１比較回路（５０９，５１０）及び上記第２比較回路（５１１，５１２）で行われる。この比較結果はマッチ信号線ＭＬ１−１によって取り出される。
【００４９】
図６には、図４における主要部の詳細な構成例が示される。
【００５０】
バッファ４１９−１は二つのｎチャネル型ＭＯＳトランジスタ６３４，６３５が直列接続されて成る。マッチ信号線ＭＬ−１の信号はｎチャネル型ＭＯＳトランジスタ６３４のゲート電極に伝達されるようになっている。ｎチャネル型ＭＯＳトランジスタ６３５のゲート電極にはクロック信号ＣＫ１が供給され、このクロック信号ＣＫ１がハイレベルのときにｎチャネル型ＭＯＳトランジスタ６３５が導通されて、マッチ信号線ＭＬ１−１の信号レベルに応じてｎチャネル型ＭＯＳトランジスタ６３４が駆動されることによってラッチ回路４１７−１への信号伝達が可能とされる。他のバッファ回路４１８−２〜４１８−ｎも上記バッファ回路４１８−１と同様に構成される。このラッチ回路４１７−１は、二つのインバータ６３１，６３２がループ状に結合されて成る。他のラッチ回路４１７−２〜４１７−ｎも上記ラッチ回路４１７−１と同様に構成される。
【００５１】
制御回路４０９は、上記複数のラッチ回路４１７−１〜４１７−ｎに対応して配置され、対応するラッチ回路の出力信号に基づいてマッチ信号線ＭＬ２−１〜ＭＬ２−ｎのプリチャージを制御するための複数のプリチャージ回路６４１と、上記複数のラッチ回路４１７−１〜４１７−ｎの出力信号に基づいて不一致信号ＤＩＳを形成するための不一致信号形成回路６４２とを含む。上記複数のプリチャージ回路６４１は、互いに同一構成とされる。上記複数のプリチャージ回路６４１のうちの一つについての構成例が代表的に示されるように、ｐチャネル型ＭＯＳトランジスタ６０１，６０２と、ｎチャネル型ＭＯＳトランジスタ６０３，６０４とが直列接続されて成る。ｐチャネル型ＭＯＳトランジスタ６０２とｎチャネル型ＭＯＳトランジスタ６０３とはゲート電極がラッチ回路４１７−１の記憶ノードＬＴ１に共通接続されることにより、この記憶ノードＬＴ１の出力信号を論理反転して出力するインバータとして機能する。ｐチャネル型ＭＯＳトランジスタ６０１のゲート電極にはプリチャージ信号ＰＣＧが伝達される。ｎチャネル型ＭＯＳトランジスタ６０４のゲート電極には上記プリチャージ信号ＰＣＧの論理反転された信号ＰＣＧ＊が伝達される。
【００５２】
上記不一致信号形成回路６４２は、上記複数のラッチ回路４１７−１〜４１７−ｎに対応して配置され、対応するラッチ回路の出力信号を取り込むための複数の入力回路ＩＮＣと、この複数の入力回路ＩＮＣの出力信号を取り込むためのインバータ６１０、このインバータによって駆動されるｎチャネル型ＭＯＳトランジスタ６１１、このｎチャネル型ＭＯＳトランジスタ６１１によって駆動されるラッチ回路６５１と、リセット信号ＲＥＳＥＴ２に基づいて上記ラッチ回路６５１をリセットするためのｎチャネル型ＭＯＳトランジスタ６１４とを含む。上記複数の入力回路ＩＮＣは、そのうちの一つについての構成例が代表的に示されるように、二つのｎチャネル型ＭＯＳトランジスタ６０６，６０７が直列接続されて成る。ｎチャネル型ＭＯＳトランジスタ６０６のゲート電極にはラッチ回路４１７−１における記憶ノードＬＢ１の出力信号が伝達される。ｎチャネル型ＭＯＳトランジスタ６０７のゲート電極にはプリチャージ信号ＰＣＧの論理反転信号ＰＣＧ＊が伝達される。
【００５３】
図３には、上記パワーコントローラ１０の構成例が示される。
【００５４】
図３に示されるように上記パワーコントローラ１０は、レジスタ１０１、タイミングジェネレータ１０２、コントロールロジック１０３、及び比較回路１０４を含む。レジスタ１０１は、特に制限されないが、４ビット構成とされ、この４ビット構成のレジスタ１０１は、クロック信号ＣＬＫに同期して保持値が更新される。このレジスタ１０１の出力値Ｒ〔３：０〕は、コントロールロジック１０３及び比較回路１０４に伝達される。タイミングジェネレータ２１は、クロック信号ＣＬＫに同期して一定の比率で検索要求信号ＴＧをハイレベルにする。コントロールロジック２２は、図１３に示される真理値表に従ってレジスタ２０の更新値Ｑ〔３：０〕を生成する。比較回路１０４は、上記レジスタ１０１の出力値が論理値‘０’の場合に、検索要求信号ＰＣ＿ＳＥ論理値‘１’にする。
【００５５】
図１２には上記タイミングジェネレータ１０２の構成例が示される。
【００５６】
図１２に示されるように上記タイミングジェネレータ１０２は、１ビット構成の減数カウンタ１２１、２ビット構成の減数カウンタ１２２、３ビット構成の減数カウンタ１２３、４ビット構成の減数カウンタ１２４、オア（ＯＲ）ゲート１２５〜１２８、アンドゲート（ＡＮＤ）１２９とを含む。制御信号Ｃ０〜Ｃ４は、検索レート制御するための信号であり、この制御信号Ｃ０〜Ｃ半導体チップの内部に設けられたレジスタ、又は外部端子を介して供給される。オアゲート１２５〜１２８では、対応するカウンタ１２１〜１２４の出力信号と制御信号Ｃ０〜Ｃ４とのオア論理が求められる。このオアゲート１２５〜１２８の出力信号のアンド論理でアンドゲート１２９が得られるようになっている。
【００５７】
次に、上記構成の動作を説明する。
【００５８】
ライトイネーブル信号ＷＥがハイレベルにアサートされると、ライトアンプ４０５，４０７が活性化され、ラッチ回路４１３を介して７２ビット構成のエントリデータの書き込みを行うことができる。このとき、偶数３６ビット分のエントリデータはライトアンプ４０５を介して第１メモリセル群４３１に書き込まれ、奇数３６ビット分のエントリデータはライトアンプ４０７を介して第２メモリセル群４３２に書き込まれる。そして、サーチイネーブル信号がハイレベルにアサートされた状態で、入力された比較データと上記エントリデータとの比較が行われる。この比較は、偶数３６ビット分のデータ比較動作と、奇数３６ビット分のデータ比較動作とが経時的に行われることで、図７に示されるように比較動作のパイプライン処理が可能とされる。図７では、比較データがＣＤ０、ＣＤ１，ＣＤ２、ＣＤ３の順に入力された場合が想定されており、比較データの偶数ビットＣＤ１＜０＞についての比較動作と、比較データＣＤ０＜１＞についての比較動作とが同時に行われ、比較データの偶数ビットＣＤ２＜０＞についての比較動作と、比較データＣＤ１＜１＞についての比較動作とが同時に行われ、比較データの偶数ビットＣＤ３＜０＞についての比較動作と、比較データＣＤ２＜１＞についての比較動作とが同時に行われ、比較データの偶数ビットＣＤ１＜０＞についての比較動作と、比較データＣＤ３＜１＞についての比較動作とが同時に行われる。
【００５９】
比較時にはプリチャージ信号ＰＣＧがハイレベルにネゲートされることによりマッチ信号線ＭＬ１−１〜ＭＬ１−ｎのプリチャージは行われない。７２ビット構成の比較データのうち、偶数３６ビット分が比較データが比較データアンプ４０４に入力されると、この偶数３６ビット分が比較データに応じて比較データアンプ４０４により比較データ線ＣＤが駆動される。相補レベルの比較データ線ＣＤにおける一方の比較データ線がハイレベルにされ、それにより各メモリセルＭＣの記憶データとの比較が行われる。図５に示されるようなターナリ型メモリセルの場合、データが不一致の場合、マッチ信号線ＭＬ１−１の蓄積電荷が放出される。このマッチ信号線ＭＬ−１の状態がクロック信号ＣＫ１に同期してラッチ回路４１７−１に取り込まれる。ラッチ回路４１７−１は予めリセット信号ＲＥＳＥＴ１によりリセットされており、記憶ノードＬＴ１がハイレベルになっている。上記データ比較においてデータが一致した場合には、記憶ノードＬＴ１がローレベルに遷移され、データが不一致の場合には、記憶ノードＬＴ１がハイレベルのままである。エントリ０〜６３までの比較結果は、対応するラッチ回路４１７−１〜４１７−ｎに保持される。制御回路４０９においては、入力回路ＩＮＣを介して上記ラッチ回路４１７−１〜４１７−ｎの情報収集が行われる。そして、一致するエントリがひとつでも存在する場合には、それに対応するマッチ信号線ＭＬ２−１〜ＭＬ２−ｎのプリチャージがｐチャネル型ＭＯＳトランジスタ６０１，６０２を介して行われた後に、奇数３６ビット分のデータ比較が行われる。つまり、一致するエントリがひとつでも存在する場合には、インバータ６１０の入力端子がハイ（Ｈ）レベルとり、不一致信号ＤＩＳがハイ（Ｈ）レベルになる。これにより比較データアンプ４０６では複数のアンドゲート６２４を介して奇数ビットの比較データが対応する比較データ線に供給されることによって、奇数３６ビット分のエントリデータと奇数３６ビット分の比較データとの比較が行われる。
【００６０】
しかし、上記偶数３６ビット分のエントリデータと偶数３６ビット分の比較データとの比較において、全てのエントリ０〜６３が不一致の場合には、このＣＡＭマクロセル４０のエントリデータには、入力された比較データと一致するデータは存在しないことを意味しており、奇数３６ビット分のデータ比較は無意味であるため、そのような比較は行われない。つまり、上記偶数３６ビット分のエントリデータと偶数３６ビット分の比較データとの比較において、全てのエントリ０〜６３が不一致の場合には、不一致信号ＤＩＳがロー（Ｌ）レベルとされ、比較データアンプ４０６内の複数のアンドゲート６２４が非活性状態とされるため、比較データ線には、奇数ビットの比較データが伝達されない。
【００６１】
図６に示される構成では、制御回路４０９において、ｐチャネル型ＭＯＳトランジスタ６０２を介してプリチャージが行われるようになっているため、不一致のエントリでは、それに対応するマッチ信号線ＭＬ２−１〜ＭＬ２−ｎのプリチャージは行われない。従って、比較動作で活性化されるのは、図１０に示されるように、一致エントリを含む偶数３６ビット分の比較が行われる領域と、奇数ビット比較対象エントリとされる。不一致のエントリは活性化されないため、１サイクル中に活性化される信号線の数が低減され、それによって消費電力の低減を図ることができる。
【００６２】
また、図１２に示されるタイミングジェネレータ１０２においては、リセット信号ＲＥＳＥＴが入力されると、カウンタ１２１〜１２４は、それぞれ‘０’‘０１’‘０１１’ ‘０１１１’にセットされる。クロック信号ＣＬＫが入力される度に、レジスタ１２１〜１２４は１づつ減算される。カウンタ１２１〜１２４は循環カウンタとされ、それぞれ０から減数される。全てのビットが論理値‘１’になる。オアゲート１２５〜１２８の出力のアンド論理がとられ、その論理出力がＴＧとなる。本例では４つのカウンタ１２１〜１２４のうち、一つでも論理値‘０’の場合に、検索要求を論理値‘１’にする。制御信号Ｃ０〜Ｃ３によって検索レートを１６段階に設定することができる。
【００６３】
図１４にはＣＡＭ用ＬＳＩの検索レートと電源電流の関係が示される。
【００６４】
従来技術の場合、検索レートに対して電源電流が大幅に変化されるのに対して、本例によれば、ＣＡＭ用ＬＳＩの使用される装置の最大実使用検索レートに合わせて制御信号Ｃ０〜Ｃ３を設定（プログラム）し、ダミー検索を行うことにより、ＬＳＩの最大電流を低減するだけでなく、電源電流の変動を大幅に低減することができる。すなわち、偶数３６ビット分のデータ比較と偶数３６ビット分のデータ比較とに分けることにより、矢印１４１に示されるように、電源電流の低減を図ることができ、また、検索レートが所定値以上になるようなダミー検索により、常に電流を消費させ、それにより矢印１４２に示されるように、電源電流の変動幅を抑えることができる。
【００６５】
図１５にはＣＡＭ用ＬＳＩへの検索要求率とＣＡＭ活性化率との関係が示される。制御信号Ｃ０〜Ｃ３がパラメータとされる。何もしなければ、検索要求率が下がるのに比例してＣＡＭ活性化率も下がる。それに対して、制御信号Ｃ０〜Ｃ３を適宜設定してダミー検索を行うことにより、検索要求に対するＣＡＭ活性化率を一定にすることができる。図１５において特性曲線Ａ〜Ｑで示されるように、制御信号Ｃ０〜Ｃ３の値が大きいほど、ＣＡＭ活性化率は広範囲にわたって安定する。
【００６６】
上記例によれば、以下の作用効果を得ることができる。
【００６７】
（１）制御回路４０９において、ｐチャネル型ＭＯＳトランジスタ６０２を介してプリチャージが行われるようになっているため、不一致のエントリでは、それに対応するマッチ信号線ＭＬ２−１〜ＭＬ２−ｎのプリチャージは行われない。従って、比較動作で活性化されるのは、図１０に示されるように、一致エントリを含む偶数３６ビット分の比較が行われる領域と、奇数ビット比較対象エントリとされる。不一致のエントリは活性化されないため、１サイクル中に活性化される信号線の数が低減され、それによって消費電力の低減を図ることができる。
【００６８】
（２）タイミングジェネレータ１０２においては、リセット信号ＲＥＳＥＴが入力されると、カウンタ１２１〜１２４は、それぞれ‘０’‘０１’‘０１１’ ‘０１１１’にセットされる。クロック信号ＣＬＫが入力される度に、レジスタ１２１〜１２４は１ずつ減算される。カウンタ１２１〜１２４は循環カウンタとされ、それぞれ０から減数される。全てのビットが論理値‘１’になる。オアゲート１２５〜１２８の出力のアンド論理がとられ、その論理出力がＴＧとなる。本例では４つのカウンタ１２１〜１２４のうち、一つでも論理値‘０’の場合に、検索要求を論理値‘１’にする。制御信号Ｃ０〜Ｃ３によって検索レートを１６段階に設定することができる。制御信号Ｃ０〜Ｃ３を適宜設定することにより、消費電流の変動を低減するためのダミー検索を行うことができる。
【００６９】
（３）偶数３６ビット分のエントリデータはライトアンプ４０５を介して第１メモリセル群４３１に書き込まれ、奇数３６ビット分のエントリデータはライトアンプ４０７を介して第２メモリセル群４３２に書き込まれる。そして、サーチイネーブル信号がハイレベルにアサートされた状態で、入力された比較データと上記エントリデータとの比較が行われる。この比較は、偶数３６ビット分のデータ比較動作と、奇数３６ビット分のデータ比較動作とが経時的に行われることで、図７に示されるように比較動作のパイプライン処理が可能とされ、検索を効率よく行うことができる。
【００７０】
（４）ＣＡＭマクロセル４０においては、メモリセルＭＣへのデータ書き込みや、メモリセルＭＣからのデータ読み出しのためにデータ線ＢＬを使用し、それとは別にデータ比較用の比較データ線ＣＤが設けられているため、メモリセルＭＣへのデータ書き込みや、メモリセルＭＣからのデータ読み出しと同時に、データ線ＢＬを使用して比較データの取り込みを行ってデータ検索を行うことができる。つまり、データの読み出し動作やデータの書き込み動作の際に、制御信号Ｃ０〜Ｃ３を適宜設定することにより、消費電流の変動を低減するためのダミー検索を行うことができるので、ＣＡＭ用ＬＳＩの消費電流の安定化を図ることができる。
【００７１】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７２】
例えば、図６に示される構成に代えて、図８に示される構成を採用することができる。図９にはその場合の動作タイミングが示される。図８に示される構成が、図６に示されるのと大きく相違するのは、複数のプリチャージ回路６４１の構成と、６４２の出力信号によってエンコーダ４０８の動作を制御するようにした点である。すなわち、図６に示される回路におけるｐチャネル型ＭＯＳトランジスタ６０２に相当するものは、図８において存在しない。従って、図８に示される構成では、偶数３６ビット分のデータ比較結果にかかわらず、マッチ信号線ＭＬ２−１〜ＭＬ２−ｎのプリチャージが行われる。このため、図１１に示されるように、奇数ビット比較対象エントリに加えて奇数ビット比較対象外エントリも活性化される。
【００７３】
偶数３６ビット分のデータ比較結果がマクロセル内の全エントリで不一致の場合には、奇数３６ビット分のデータ比較のための比較データが活性化されないため、マッチ信号線ＭＬ２−１〜ＭＬ２−ｎはハイレベルのままであり、動作電流は流れない。マッチ信号線ＭＬ２−１〜ＭＬ２−ｎのハイレベルは「データ一致」と誤認されるおそれがあるため、エンコーダ４０８を不一致信号線ＤＩＳで制御するようにしている。偶数３６ビット分のデータ比較において一致するエントリがある場合、マッチ信号線ＭＬ２−１〜ＭＬ２−ｎのプリチャージ後にタイミングパルスクロック信号ＣＫ２に同期して不一致のエントリのマッチ信号線ＭＬ２−１〜ＭＬ２−ｎをディスチャージによりローレベルにする。このようなディスチャージは、不一致信号ＤＩＳに基づいてエンコーダ４０８において行われる。これにより、偶数３６ビット分のデータ比較で一致したエントリのみ、奇数３６ビット分のデータ比較対象となる。
【００７４】
また、上記の例では、エントリを偶数ビットと奇数ビットとに分けるようにしたが、データの上位側ビットと下位側ビットとに分けるようにしても良く、またエントリの分割は２つに限らず、エントリを複数ビット部分に分割することができる。
【００７５】
さらに、図２に示されるように複数のＣＡＭマクロセル４０がアレイ状に配列される場合において、複数のＣＡＭマクロセル４０を共通のクロック信号に同期動作させることができる。このような実施形態について図１６乃至図２９に基づいて説明する。
【００７６】
図１６には、上記ＣＡＭマクロセルアレイ４の別の構成例が示される。特に制限されないが、図１６においては、それぞれ１２８エントリ×５７６ビット構成の４個のブロックＢＫ０、ＢＫ１、ＢＫ２、ＢＫ３に分割され、この４個のブロックＢＫ０、ＢＫ１、ＢＫ２、ＢＫ３に対応して４個のエンコーダ部ＥＤ００，ＥＤ１０，ＥＤ２０，ＥＤ３０が配置される。この４個のエンコーダ部ＥＤ００，ＥＤ１０，ＥＤ２０，ＥＤ３０は図１のプライオリティエンコーダ５に相当する。上記４個のブロックＢＫ０、ＢＫ１、ＢＫ２、ＢＫ３は、それぞれ４個のサブブロックに分割される。すなわち、上記ブロックＢＫ０は４個のサブブロックＳＢ００，ＳＢ０１，ＳＢ０２，ＳＢ０３に分割され、上記ブロックＢＫ１は４個のサブブロックＳＢ１０，ＳＢ１１，ＳＢ１２，ＳＢ１３に分割され、上記ブロックＢＫ２は４個のサブブロックＳＢ２０，ＳＢ２１，ＳＢ２２，ＳＢ２３に分割され、上記ブロックＢＫ３は４個のサブブロックＳＢ３０，ＳＢ３１，ＳＢ３２，ＳＢ３３に分割される。
【００７７】
各サブブロックには、比較データｄ〔０〕〜ｄ〔５７８〕が４分割されて１４４ビット単位で入力される。つまり、サブブロックＳＢ００，ＳＢ１０，ＳＢ２０，ＳＢ３０には、データｄ〔０〕〜ｄ〔１４３〕が入力され、サブブロックＳＢ０１，ＳＢ１１，ＳＢ２１，ＳＢ３１には、データｄ〔１４４〕〜ｄ〔２８７〕が入力され、サブブロックＳＢ０２，ＳＢ１２，ＳＢ２２，ＳＢ３２には、データｄ〔２８８〕〜ｄ〔４３１〕が入力され、サブブロックＳＢ０３，ＳＢ１３，ＳＢ２３，ＳＢ３３には、データｄ〔４３２〕〜ｄ〔５７５〕が入力される。尚、サブブロックＳＢ００，ＳＢ１０，ＳＢ２０，ＳＢ３０には、データｄ〔０〕〜ｄ〔１４３〕がそのまま入力されるが、サブブロックＳＢ０１，ＳＢ１１，ＳＢ２１，ＳＢ３１には、ラッチ回路ＬＣを１段経由してからデータ入力が行われ、サブブロックＳＢ０２，ＳＢ１２，ＳＢ２２，ＳＢ３２には、ラッチ回路ＬＣを２段経由してデータ入力が行われ、サブブロックＳＢ０３，ＳＢ１３，ＳＢ２３，ＳＢ３３には、ラッチ回路ＬＣを３段経由してからデータ入力が行われる。
【００７８】
図１７には、上記複数のサブブロックの一つであるＳＢ００の構成例が示される。
【００７９】
このサブブロックＳＢ００は、特に制限されないが、入力データｄ〔０〕〜ｄ〔１４３〕に対応して配置された１４４組の比較データ線対ＣＤＡＴ，ＣＤＡＢと、それに交差するように配置された１２８本のマッチ信号線ＭＬと、上記比較データ線対ＣＤＡＴ，ＣＤＡＢと上記マッチ信号線との交差箇所に配置されたメモリセルＭＣと、上記１２８本のマッチ信号線ＭＬに対応して配置されたバッファ７０４と、このバッファ７０４の出力信号を活性化パルス信号に基づいてラッチ可能な複数のラッチ回路７０５と、この複数のラッチ回路７０５の出力信号に基づいて、入力データとエントリデータとが一致するか否かの判別を可能とする一致信号ＭＣＨ、及びロウ系の検索結果ＲＯＷ０〜ＲＯＷ１２７を後段のサブブロックＳＢ０１へ供給可能な制御論理７０６を含む。上記入力データｄ〔０〕〜ｄ〔１４３〕に対応して１４４本のデータ線ＤＬが設けられている。上記入力データｄ〔０〕〜ｄ〔１４３〕にはラッチ回路７０７が結合される。上記比較データ線対ＣＤＡＴ，ＣＤＡＢには３入力のアンドゲート７０１，７０２が結合される。上記データ線ＤＬには対応するラッチ回路７０７を介してデータが入力される。この入力データは、対応する上記アンドゲート７０１に伝達されるとともに、対応するインバータ７０３で論理反転されてから、対応するアンドゲート７０２に伝達される。アンドゲート７０１では、前段から伝達された一致信号ＭＣＨと検索パルスＲＣＰと入力データｄ〔０〕とのアンド論理が得られ、それが比較データ線対ＣＤＡＴに伝達される。また、アンドゲート７０２では、前段から伝達された一致信号ＭＣＨと検索パルスＲＣＰと上記インバータ７０３の出力信号とのアンド論理が得られ、それが比較データ線ＣＤＡＢに供給される。上記検索パルスＲＣＰや活性化パルスＡＣＰは、クロック信号ＣＫに同期して形成されるものである。尚、上記データＤＬは、後段のブロックＢＫ１におけるサブブロックＳＢ１０に結合され、データｄ〔０〕〜ｄ〔１４３〕は、対応するデータ線ＤＬを介して複数のサブブロックに供給可能とされる。
【００８０】
図１８には、上記エンコーダ部ＥＤ１０の構成例が示される。
【００８１】
上記エンコーダ部ＥＤ１０は、特に制限されないが、プライオリティエンコード部８０１、パルス生成回路８０３、ブロック間プライオリティ制御回路８０２、バッファ８０４、及びラッチ回路８０５を含んで成る。
【００８２】
プライオリティエンコード部８０１は、サブブロックＳＢ００〜ＳＢ０３での検索結果（比較データとエントリデータとの比較結果）ＲＯＷ０〜ＲＯＷ１２７及び一致信号ＭＣＨに基づいて、ブロックＢＫ１における一致信号ＭＣＨ、その一致アドレスＡｄｄ、及び複数一致を示す複数一致信号ＰＭＣＨを出力する。
【００８３】
パルス生成回路８０３は、クロック信号ＣＬＫに同期して検索パルス信号ＲＣＰ及び活性化パルス信号ＡＣＰを形成する。また、ラッチ回路８０５は、上記クロック信号ＣＬＫに同期して前段のブロックＢＫ０からの検出結果（一致信号ＭＣＨ、一致アドレス信号Ａｄｄ、複数一致信号ＰＭＣＨ）を取り込んで、それを上記ブロック間プライオリティ制御回路８０２へ伝達する。尚、クロック信号ＣＬＫはバッファ８０４を介して後段のブロックＢＫ２におけるエンコーダ部ＥＤ２０に伝達される。
【００８４】
尚、他のエンコーダ部ＥＤ００、ＥＤ２０、ＥＤ３０も上記エンコーダ部ＥＤ１０と同様に構成される。
【００８５】
図１９には、上記ブロック間プライオリティ制御回路８０２の構成例が示される。
【００８６】
上記ブロック間プライオリティ制御回路８０２は、特に制限されないが、セレクタ８１１、オアゲート８１２，８１３を含んで成る。セレクタ８１１は、前段のブロック（ここではＢＫ０）から伝達された一致アドレスと、上記ブロックＢＫ１におけるエンコーダ部ＥＤ１０からの一致アドレスＡｄｄとを選択的に後段のブロック（ここではＢＫ２）に出力する。オアゲート８１２は、前段のブロックから伝達された複数一致信号ＭＣＨと、上記ブロックＢＫ１におけるエンコーダ部ＥＤ１０からの複数一致信号ＰＭＣＨとのオア論理を求め、それを後段のブロック（ここではＢＫ２）に出力する。ここで、前段のブロックからの一致信号ＭＣＨがハイレベル（アクティブ）の場合には、セレクタ８１１により前段のブロックから伝達された一致アドレス信号を選択的に後段のブロックに出力される。
【００８７】
図２０には、上記ＣＡＭマクロセルアレイ４における検索動作のタイミングが示され、図２１には、上記ＣＡＭマクロセルアレイ４における検索動作の順序が示される。尚、図２０において、ビットＡはビット〔０：１４３〕を意味し、ビットＢはビット〔１４４：２８７〕を意味し、ビットＣはビット〔２８８：４３１〕を意味し、ビットＤはビット〔４３２：５７５〕を意味する。
【００８８】
上記の構成において、検索のために入力された比較データが、クロック信号ＣＬＫに同期動作されるラッチ回路７０７等介してブロックＢＫ０に取り込まれてエントリデータとの比較が行われる。そして、次のブロックに比較データが転送される。最初のサブブロックＳＢ００にて５７６ビットのうちの１４４ビットの検索（比較動作）が行われ、一致データがない場合はそれ以降のサブブロックＳＢ０１，ＳＢ０２，ＳＢ０３での比較動作は行われない。一方、上記の比較において一致データがある場合は、次サイクルにて次のサブブロックＳＢ０１で次の１４４ビットの比較が行われる。このようにしてクロック信号ＣＬＫに同期して順次パイプライン処理される。
【００８９】
一方、ブロックＢＫ１においてもブロックＢＫ０から転送された検索結果を用いて１サイクル後に比較動作が実施される。各ブロックでの検索結果は、対応するエンコーダ部ＥＤ００〜ＥＤ３０に転送され、一致アドレスが算出され、それが一致信号と共に出力される。このとき、前段のブロックにて一致データがある場合には、セレクタ８１１のセレクト動作により、前段のブロックから出力された一致アドレスが優先して出力される。各ブロックの入力端子はブロック下辺に、出力端子はブロック上辺に配置されており、エントリ数を５１２エントリにする場合は４ブロックを縦方向に並べることで５１２エントリ×５７６ビットのＣＡＭマクロセルが実現される。本例におけるＣＡＭマクロセルアレイ４は、横方向（図１６における矢印Ｘ方向）には検索データが分割され、縦方向（図１６における矢印Ｙ方向）にはエントリが分割され、それぞれクロック信号ＣＬＫに同期してパイプライン動作されるものである。このようにクロック信号ＣＬＫに同期してパイプライン動作されるようになっているため、ＣＡＭマクロセルアレイ４における検索スループットの向上を図ることができる。しかも、そのように検索スループットの向上が図られるのに加えて、一致データがない場合はそれ以降のサブブロックでの比較動作が行われないようになっているため、図４や図６などに示される構成の場合と同様にＣＡＭマクロセルアレイ４における消費電力の低減を図ることができる。また、その検索スループットを維持したまま、エントリ数を縦方向（矢印Ｙ方向に）に容易に拡張できる。
【００９０】
図２１に示されるように、５７６ビット構成の一つのデータを検索する場合に、サブブロックＳＢ００を第１サイクルで検索し、次のサイクル（第２サイクル）では、サブブロックＳＢ０１と、サブブロックＳＢ１０とが検索される。その次のサイクルでは、サブブロックＳＢ０２、サブブロックＳＢ１１、サブブロックＳＢ２０が検索される。本例の場合は、８サイクル後に全体の検索結果が出力される。これをパイプライン動作させると、第ｎサイクルのサブブロックでは、同一入力データの分割した一部のビットもしくは異なるエントリの検索が行われる。また、出力側に近いブロックほど、入力データがブロック間の転送遅延分だけ遅延されてから入力されるが、クロック信号ＣＬＫも同様にブロック間の転送遅延分だけ遅延されるために、両者の相対関係は変わらない。このため、一つのブロックでタイミング設計すれば、ブロックを複数並べる構成であるにもかかわらず、各ブロックにおける入力端子でのタイミングはブロック間で同じであるため、エントリの拡張が容易となる。
【００９１】
また、ＣＡＭマクロセルアレイ４における別の構成例として、複数のブロックから成る構成において、ブロックを交互にクロックの立ち上がりエッジと立ち下がりエッジに同期してパイプライン動作させるようにしても良い。図２２には、その場合のＣＡＭマクロセルアレイ４の構成例が示される。ブロックＢＫ1とブロックＢＫ3に入力されるクロック信号の論理を反転可能なインバータ８５１，８５２を設け、ブロックＢＫ1及びブロックＢＫ3は、クロック信号ＣＬＫの立ち下がりエッジに同期して動作される。この場合の動作順序が図２３に示され、その場合の動作タイミングが図２４に示される。尚、図２４において、ビットＡはビット〔０：１４３〕を意味し、ビットＢはビット〔１４４：２８７〕を意味し、ビットＣはビット〔２８８：４３１〕を意味し、ビットＤはビット〔４３２：５７５〕を意味する。ブロックＢＫ１において、サブブロックＳＢ１０は第１．５サイクルで動作され、サブブロックＳＢ１１は第２．５サイクルで動作され、サブブロックＳＢ１２は第３．５サイクルで動作され、サブブロックＳＢ１３は第４．５サイクルで動作され、エンコーダ部ＥＤ１０は第５．５サイクルで動作される。また、ブロックＢＫ３において、サブブロックＳＢ３０は第２．５サイクルで動作され、サブブロックＳＢ３１は第３．５サイクルで動作され、サブブロックＳＢ３２は第４．５サイクルで動作され、サブブロックＳＢ３３は第５．５サイクルで動作され、エンコーダ部ＥＤ３０は第６．５サイクルで動作される。かかる動作は、ブロック間の転送時間が小さい場合に可能であり、レイテンシーが短縮できる。また、動作電流についてもサイクル内でピークとなるタイミングを分散できるため、電源変動を低減することができる。
【００９２】
さらに、検索データ方向の分割において、サブブロックをさらに複数のマットに分割するようにしても良い。図２５には、この場合のＣＡＭマクロセルアレイ４の構成例が示される。
【００９３】
図２５に示される構成例では、各サブブロックが、ブロックＡとブロックＢとに２分割される。各サブブロックにおいてブロックＡに入力されるデータはラッチ回路を経由しないのに対して、ブロックＢに入力されるデータはクロック信号ＣＬＫに同期動作されるラッチ回路ＬＣを１段だけ経由する。ため、各サブブロにおけるブロックＡとブロックＢとは、１サイクルずれてデータ入力が行われる。
【００９４】
図２７には、上記サブブロックＳＢ００の構成例が示される。図２７に示されるように、上記サブブロックＳＢ００は、マットＡとマットＢとの間に制御論理９１２が設けられ、マットＡにおける複数のマッチ信号線ＭＬの信号が、それぞれ対応するバッファ９１０及びラッチ回路９１１を介して上記制御論理９１２に伝達されるようになっている。ラッチ回路９１１は、活性化パルス（ＡＣＰ）に同期動作される。上記制御論理９１２の機能は、基本的には、図１７における制御論理７０６などと同一とされ、マットＡにおける複数のマッチ信号線ＭＬの論理に基づいて、入力データとエントリデータとが一致するか否かの判定を行う。上記制御論理９１２から出力された一致信号は、マットＢにおける２入力アンドゲートの一方の入力端子に供給され、マットＡでデータが不一致だった場合、マットＢでの比較が禁止されることで消費電力の低減が図られる。尚、他のサブブロックも図２７に示されるサブブロックＳＢ００と同様に構成される。
【００９５】
サブブロックＳＢ００，ＳＢ１０，ＳＢ２０，ＳＢ３０と、サブブロックＳＢ０１，ＳＢ１１，ＳＢ２１，ＳＢ３１との間には、サブブロック間検索結果集計論理部９０１が設けられ、サブブロックＳＢ０１，ＳＢ１１，ＳＢ２１，ＳＢ３１と、サブブロックＳＢ０２，ＳＢ１２，ＳＢ２２，ＳＢ３２との間には、サブブロック間検索結果集計論理部９０２が設けられ、サブブロックＳＢ０２，ＳＢ１２，ＳＢ２２，ＳＢ３２と、サブブロックＳＢ０３，ＳＢ１３，ＳＢ２３，ＳＢ３３との間には、サブブロック間検索結果集計論理部９０３が設けられる。上記サブブロック間検索結果集計論理部９０１〜９０３は、対応する上記サブブロック間検索結果のアンド論理が得られる。
【００９６】
図２８には、上記サブブロック間検索結果集計論理部９０１の構成例が示される。上記サブブロック間検索結果集計論理部９０１は、図２８に示されるように、サブブロックの検索結果を論理合成するための複数の２入力アンドゲートを含んで成る。例えばアンドゲート９２１は、サブブロックＳＢ００のＲＯＷ０検索結果と、サブブロックＳＢ０１のＲＯＷ０１検索結果とのアンド論理を得る。アンドゲート９２２は、サブブロックＳＢ０２のＲＯＷ０検索結果と、サブブロックＳＢ０３のＲＯＷ０検索結果とのアンド論理を得る。アンドゲート９２３は、アンドゲート９２１とアンドゲート９２２とのアンド論理を得る。このアンドゲート９２３の出力信号がブロックＢＫ０におけるＲＯＷ０検索結果とされる。また、アンドゲート９２４は、サブブロックＳＢ００のＲＯＷ１２７検索結果と、サブブロックＳＢ０１のＲＯＷ１２７検索結果とのアンド論理を得る。アンドゲート９２５は、サブブロックＳＢ０２のＲＯＷ１２７検索結果と、サブブロックＳＢ０３のＲＯＷ１２７検索結果とのアンド論理を得る。アンドゲート９２６は、アンドゲート９２４とアンドゲート９２５とのアンド論理を得る。このアンドゲート９２６の出力信号がブロックＢＫ０におけるＲＯＷ１２７検索結果とされる。
【００９７】
図２９には、図２５に示される構成における主要部の動作タイミングが示される。尚、図２９において、ビットＥはビット〔０：７１〕、ビット〔１４４：２１５〕、ビット〔２８８：３５９〕、ビット〔４３２：５０３〕を意味し、ビットＦはビット〔７２：１４３、ビット〔２１６：２８７〕、ビット〔３６０：４３１〕、ビット〔５０４：５７５〕を意味する。
【００９８】
上記の構成において、検索データ方向の処理は、複数に分割された各サブブロック内でそれぞれパイプライン処理とされる。各サブブロックでの検索結果はサブブロック間検索結果集計論理部でアンド論理がとられ、５７６ビットのデータについてエントリデータと一致しているか否かの判定が行われる。最初ブロックＢＫ０の各サブブロックにおけるマットＡを検索し、一致するデータがない場合はマットＢの検索は行われない。一致するデータがある場合は次のサイクルでマットＢが検索される。エントリ方向については上記の例と同じであるが、ブロック毎に１サイクルづつずれてパイプライン動作させる点で、上記の例と異なる。
【００９９】
尚、上記の例のようにクロックの立ち上がりエッジと立ち下がりエッジに同期させることも可能である。こうすることで検索動作のレイテンシーが低減できるとともに、検索動作エリアがマクロ内に分散されるため、電源変動を低減することができる。
【０１００】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＣＡＭ用ＬＳＩに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種ＬＳＩに適用することができる。
【０１０１】
本発明は、少なくとも比較データとエントリデータとの比較を行うことを条件に適用することができる。
【符号の説明】
【０１０２】
１  アドレスバッファ
２  データ入出力バッファ
３  コマンドバッファ
４  ＣＡＭマクロセルアレイ
５  プライオリティエンコーダ
１０  パワーコントローラ
１１  オアゲート
４０  ＣＡＭマクロセル
１０１  レジスタ
１０２  タイミングジェネレータ
１０３  コントロールレジスタ
１０４  比較回路
ＢＫ０〜ＢＫ３  ブロック
ＥＤ００〜ＥＤ３０  エンコーダ部
ＳＢ００〜ＳＢ０３、ＳＢ１０〜ＳＢ１３、ＳＢ２０〜ＳＢ２３、ＳＢ３０〜ＳＢ３３  サブブロック
【図１】
2010186557.tif 000003
【図２】
2010186557.tif 000004
【図３】
2010186557.tif 000005
【図４】
2010186557.tif 000006
【図５】
2010186557.tif 000007
【図６】
2010186557.tif 000008
【図７】
2010186557.tif 000009
【図８】
2010186557.tif 000010
【図９】
2010186557.tif 000011
【図１０】
2010186557.tif 000012
【図１１】
2010186557.tif 000013
【図１２】
2010186557.tif 000014
【図１３】
2010186557.tif 000015
【図１４】
2010186557.tif 000016
【図１５】
2010186557.tif 000017
【図１６】
2010186557.tif 000018
【図１７】
2010186557.tif 000019
【図１８】
2010186557.tif 000020
【図１９】
2010186557.tif 000021
【図２０】
2010186557.tif 000022
【図２１】
2010186557.tif 000023
【図２２】
2010186557.tif 000024
【図２３】
2010186557.tif 000025
【図２４】
2010186557.tif 000026
【図２５】
2010186557.tif 000027
【図２６】
2010186557.tif 000028
【図２７】
2010186557.tif 000029
【図２８】
2010186557.tif 000030
【図２９】
2010186557.tif 000031