(57)【特許請求の範囲】
【請求項１】
各々が検索対象のデータを格納する複数のエントリに分割されるメモリアレイを備え、各エントリは、所定数のビット単位でデータ記憶セルおよびマスクセルを有するサブエントリに分割され、各サブエントリのマスクセルの数はデータ記憶セルの数よりも少なく、前記マスクセルは、データ記憶セルに保持される記憶データへの処理を選択的にマスクをする情報を記憶し、
与えられたエントリ指定信号に従って前記メモリアレイの対応のエントリを選択するエントリ選択手段、
検索データに従って前記メモリアレイの対応のエントリを指定するエントリ指定信号を生成して前記エントリ選択手段に供給するプリサーチ手段、
前記エントリ選択手段により選択されたエントリが格納するデータを前記サブエントリ単位で検知し増幅するセンスアンプ回路、および
前記検索データと前記センスアンプ回路の所定数のビット幅の出力データとを受け、前記検索データと前記センスアンプ回路の所定数のビット幅の出力データとの比較を行ない、該比較結果を示す信号を生成する比較／論理処理回路を備え、
前記データ記憶セルに接続される前記センスアンプ回路の出力は前記比較／論理処理回路に接続され、前記マスクセルに接続される前記センスアンプ回路の出力はマスクデコーダ回路に接続され、
各前記所定数のビット単位において、
前記比較／論理処理回路は、対応の所定数のビット単位に含まれる複数の前記データ記憶セルのうちの第１群および第２群からの出力をそれぞれ受ける第１部分および第２部分に分割され、
対応のビット単位に含まれるマスクセルの出力を受ける前記マスクデコーダ回路は、前記比較／論理処理回路の前記第１部分と第２部分との間に配置され、前記マスクデコーダ回路の出力は前記比較／論理処理回路の前記第１部分および前記第２部分に供給される、内容参照メモリ。
【請求項２】
前記比較／論理処理回路は、
各前記所定数のビット単位において、
前記センスアンプ回路の出力データと前記検索データとの一致を判定する一致判定回路と、
前記センスアンプ回路の出力データと前記検索データとの大小を示す信号を生成する大小比較回路とを備える、請求項１記載の内容参照メモリ。
【請求項３】
前記大小比較回路は、前記一致判定回路の出力信号に従って大小判定を行なう、請求項２記載の内容参照メモリ。
【請求項４】
前記マスクデコーダ回路は、各所定数のビット単位において、前記エントリ選択手段により選択されたエントリのマスクセルの記憶データをデコードし、前記一致判定回路にデコード結果を示すマスク指示信号を与える、請求項２記載の内容参照メモリ。
【請求項５】
前記比較／論理処理回路の出力する検索結果に基づいて所定の優先順位に従ってエントリを選択して対応するアドレスインデックスを生成するプライオリティエンコーダと、
前記一致判定回路の出力信号および前記プライオリティエンコーダの出力するアドレスインデックスのいずれかを選択してサーチ結果として出力する選択回路とをさらに備える、請求項２記載の内容参照メモリ。
【請求項６】
前記検索データは、該検索データのビット列の所定の位置に配置されて前記検索データを分類する特徴データを含み、
前記メモリアレイは複数のサブアレイに分割され、前記複数のサブアレイには、前記特徴データの異なる値のデータが格納され、
前記プリサーチ手段は、前記特徴データをデコードして各前記サブアレイの前記特徴データに対応するエントリを指定する信号を生成する、請求項１記載の内容参照メモリ。
【請求項７】
前記センスアンプ回路および比較／論理処理回路は、前記サブアレイ各々に対応してかつ対応のサブアレイのエントリに共通に配置される、請求項６記載の内容参照メモリ。
【請求項８】
前記メモリアレイと別に設けられ、前記検索データに従って各エントリにおいて一致判定を行なう第２の内容参照メモリアレイをさらに備える、請求項１記載の内容参照メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内容参照メモリに関し、特に、消費電力および占有面積を低減するための内容参照メモリのハードウェア構成に関する。
【背景技術】
【０００２】
近年ルータやスイッチなどのネットワーク機器において、ネットワークアドレスの経路検索用途またはフィルタリングのアクセスコントロールリスト（ＡＣＬ）制御用途として、内容参照メモリ（ＣＡＭ：Content Addressable Memory）が広く用いられるようになってきている。たとえば一例として、ネットワークアドレスのルーティングにおいては、以下の処理が実行される。インターネット環境に設置されたルータまたはスイッチにパケットが到着すると、このルータ／スイッチ内に設けられた内部のネットワークパケットプロセシングユニット（ＮＰＵ）は、到着したパケットのヘッダを解析し、次のホップ先（経路）を見つけるために、アドレス検索を開始する。アドレス検索において、ＣＡＭは、ハードウェアベースでアドレス検索を提供するＬＳＩ（大規模集積回路装置）である。
【０００３】
パケットのヘッダに記述される宛先ネットワークアドレスを、次ホップ先アドレス検索のためのサーチ要求データとしてＣＡＭに入力する。ＣＡＭは、内部に予め書込まれて記憶されたネットワークアドレスのデータ列一覧と、この入力されたサーチ要求データとの一斉並列比較を行なう。一致したアドレスが存在する場合、ＣＡＭは、その一致したアドレスのインデックスを出力する。ＮＰＵは、ＣＡＭからの一致アドレスインデックスから、次ホップ先アドレスを参照する。具体的なホップ先アドレスは、ＣＡＭ自身ではなく、別のメモリＬＳＩ、たとえばＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）に書込まれていることが多い。
【０００４】
一方、ＣＡＭ内部に記憶されているデータ列との一致がなかった場合には、到着パケットの次のホップ先アドレスは、ＣＡＭハードウェア検索ではない別の方法、たとえばＣＡＭには記憶されていないが、別の大容量メモリに書込まれている場合には、この大容量メモリへアクセスしてソフトウェアベースでの検索を行なうか、またはそのままパケット廃棄として処理される。ＣＡＭ内部に一致するアドレスが存在せず、ソフトウェアベースの長い検索時間が必要な場合においても、この宛先アドレス（次ホップ先アドレス）は、次回以降同じヘッダを持つパケットが来たときのための学習として、ＣＡＭへの書込および記憶内容の更新が実行されるのが一般的である。この操作により、ソフトウェアによる処理時間の長い検索は１度だけであり、次回からは、再びＣＡＭハードウェアベースでの高速検索が可能となり、アプリケーション上ＣＡＭの長所が拡大される。
【０００５】
ＡＣＬ制御用途の場合の処理は、ネットワークアドレス経路検索時の処理と同様である。ＡＣＬは、企業内または学校内に設置されるルータやスイッチにおいて昨今頻繁に用いられるようになったアプリケーションであり、パケットの発信元および種別を示すポート番号等の組合せにより、パケットの廃棄の制御が行なわれる。廃棄制御は、通常、ユーザ（ネットワーク管理者）がソフトウェアで自由に書替えることができるようになされている。この廃棄制御は、入力されたパケットヘッダとＣＡＭにユーザ（ネットワーク管理者）により書込まれた内容との一斉並列比較により、ハードウェアベースで高速に検索が実行される。この検索結果に従って、ＣＡＭとは別のＬＳＩを参照する。しかしながら、ＡＣＬの廃棄制御の場合、アドレス経路検索の場合と異なり、具体的な処理としては、単純に「許可（permit）：パケットの通過を認める」または「拒否（deny）：パケットを廃棄処理する」のいずれかであることが多い。
【０００６】
上述のように、ＣＡＭのハードウェアベースによるアドレス検索の長所は、その実効サーチ性能の高さである。また、このサーチ性能は、保持するデータ列の大きさ（ビット幅）に拘らず一定である。一般的なメモリを用いたソフトウェアベースでの検索の場合には、これまでツリーを始めさまざまな研究報告がなされている。しかしながら、このようなソフトウェアベースでの検索の場合、一般的には、保持データ量が大きくなるにつれて外部へすべてのデータを読出す時間が長くかかってしまう。すなわち、一般的なメモリを用いる場合、アドレス検索に要する時間は、データベースの容量に比例して大きくなるという特徴があり、これが、近年のインターネット人口の増加を考慮すると、大きな問題となる。したがって、ＣＡＭハードウェアベースのアドレス検索は、そのサーチ性能がデータベースの大きさに依存しないという点においても、このようなパケット転送制御用途向けに高く評価されている。
【０００７】
このようなＣＡＭの構成の一例が、特許文献１（特開２００３−１２３４８２号公報）に示されている。この特許文献１においては、ＳＲＡＭセルが、ＣＡＭセルおよびＴＣＡＭ（３値ＣＡＭ：Ternary CAM）セルに適用される。この特許文献１に示される構成においては、各メモリセルに、一致検出回路（ＸＯＲ回路）が設けられ、記憶データビットと検索データビットとの一致／不一致の判定が各ビット単位で実行される。
【０００８】
また、検索データとＣＡＭの記憶データとの大小を比較する構成が、特許文献２（特開２００５−１２９２１８号公報）に示されている。この特許文献２に示される構成においては、メモリセルとして、データ値を格納するデータメモリセルと、マスク値を格納するマスクメモリセルとが設けられる。このデータメモリセルの記憶データと入力データとの大小を比較する大小比較器がさらに設けられる。この大小比較器は、前段のメモリセルから大小指示信号（キャリー）を受け、実効的に減算処理を行なって、次段へ、その大小比較結果（減算結果）を示す信号を出力する。
【０００９】
また、一致比較および大小比較を行なう機能を有するＣＡＭが、特許文献３（特開２００４−２９５９６７号公報）に示されている。この特許文献３に示される構成においては、各ＣＡＭセル毎に、大小比較器および一致検出器が設けられる。
【００１０】
またキャッシュメモリのタグアドレスの一致／不一致を判定する構成が、特許文献４（特開２００１−２１００８１号公報）に示されている。この特許文献４に示される構成においては、タグアドレスに従ってタグ記憶部からタグアドレスに対応する情報を読出す。この読出された情報とアドレスバスから与えられるアドレス信号との排他的ＯＲ演算を、列選択ゲートにおいて実行して、その演算結果をセンスアンプに出力する。この列選択ゲートの排他的論理和演算機能を設けることにより、このタグ記憶部のビット線に読出された微弱な読出信号に対して排他的論理和演算を実行してヒット／ミス信号を生成している。したがってＣＭＯＳレベルでの論理演算よりも早いタイミングで、排他的論理和演算結果を生成して、タグの検索を高速で実行することを図る。
【特許文献１】特開２００３−１２３４８２号公報
【特許文献２】特開２００５−１２９２１８号公報
【特許文献３】特開２００４−２９５９６７号公報
【特許文献４】特開２００１−２１００８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ＣＡＭには、他のメモリＬＳＩと比較して大きなマイナス要素がある。第１に、ＣＡＭの市場価格は、他のメモリよりも高く、たとえばＳＲＡＭと比較して、ビット当りの単価が５倍以上も高い。このコスト増の原因は、上述のＣＡＭの特徴を実現するためのハードウェア構造によるところが大きい。すなわち、ＣＡＭセルそれぞれにおいて一致検出を行なう回路が設けられる。また、３値情報を格納する場合、２つのＳＲＡＭセルを利用して、データビットとマスクビットとを格納する。このマスクビットにより、「ドントケア」状態を実現する。このため、ＳＲＡＭのセル単体に比べて、ＣＡＭセルのレイアウト面積が増大する。
【００１２】
前述の特許文献１においては、ＣＡＭセルのコストを低減するために、ＳＲＡＭセルの負荷トランジスタをなくし、４つのトランジスタで１つのＳＲＡＭセルを実現する構成が開示される。しかしながら、この特許文献１に示される構成においても、各メモリセルに対応して一致検出回路（ＸＯＲ回路）が設けられており、また、ＣＡＭセルは２つのＳＲＡＭセルで構成されており、ＣＡＭセルまたはＴＣＡＭセルの占有面積を十分に低減できない。
【００１３】
また、ＣＡＭまたはＴＣＡＭにおいては、一致検索を行なうとき、一致線の充放電が行なわれる。各エントリに対して一斉並列動作により、一致検索動作が実行される。したがって、サーチ線の充放電、および一致線の充放電が行なわれるため、たとえば１８Ｍビット容量のＣＡＭにおいて、動作周波数１５０ＭＨｚで、常時検索命令を実行した場合、その消費電力は、１０Ｗまたはそれ以上となる。この１０Ｗという消費電力は、今日の大規模ＬＳＩと比較して、極端に大きな消費電力ではない。しかしながら、ＣＡＭの問題は、この消費電力が性能の向上を妨げる要因となっている。すなわち、高速動作実現のためには、消費電力も同等のスケーリングで減少させる必要がある。しかしながら、ＣＡＭの場合、大容量化を行なった場合、そのＣＡＭセルのハードウェア構成の特徴から、容量増大に伴って消費電力が増大する。
【００１４】
また、ネットワークアドレス検索の場合には、要求される処理は、一致比較のみである。しかしながら、アクセス制御リスト（ＡＣＬ）の場合には、一致比較の他、大小比較、および範囲指定などの処理を要求されることが多い。たとえばＴＣＰ（Transmission Control Protocol）ポート番号として、１０００番以上のパケットはすべて廃棄するというＡＣＬ制御処理がある場合、範囲指定および大小比較の処理を行なうことが要求される。
【００１５】
前述の特許文献２においては、メモリセルに対し、それぞれ大小比較回路を設け、各メモリセルのビット位置順に、この大小比較結果を順次伝達する構成が示される。しかしながら、この特許文献２においては、各メモリセルに対し大小比較器が設けられており、データビットおよびマスクビットとを記憶データとして用い、入力値（サーチデータ）と記憶データとの大小比較を行なっている。このため、ＴＣＡＭセルの占有面積が増大するという問題が生じる。また、この特許文献２においては、消費電力を低減するための構成については何ら考慮していない。
【００１６】
特許文献３に示される構成においては、ＣＡＭセル毎に大小比較を行なう回路を設けている。このため、セル数が増大すると、セルのレイアウト面積を低減することができなくなる。また、一致および大小比較のための一致線および大小比較線が、各エントリ毎に別々に設けられており、消費電力がさらに増大する。
【００１７】
特許文献４に示される構成においては、複数のエントリを有するタグ記憶部に対してタグアドレスにより１つのエントリを選択する。したがって、サーチデータを各エントリに並行して転送する必要はない。一致判定時においては、各ビット線対（セル列）毎に、列選択ゲートによりＸＯＲ演算を行なっている。この特許文献４に示される構成は、記憶データと入力データとの一致／不一致を判定しているだけであり、３値判定を行なう構成は、何ら示されていない。また、大小比較などの比較機能は何ら設けられていない。
【００１８】
上述のように、従来の３値判定を行なうＴＣＡＭにおいては、ＳＲＡＭに較べて、単位セルの構成要素数が多く、コスト増の原因となる。また、３値判定の場合、２つのメモリセル、すなわちデータビットおよびマスクビットを格納するメモリセルがそれぞれ必要とされ、また検索データとの比較のために一致検出回路を設ける必要がある。この一致検出回路を各単位セルに設けた場合、ＳＲＡＭに比べて、ＴＣＡＭのセル占有面積比は、通常、３倍以上となる。ＣＡＭにおいては、さらに複数の一致データが存在する場合、どの一致データを選択するかを、ある優先順位に従って決定するプライオリティエンコーダなどが設けられる。このため、さらにハードウェアの構成要素数が増大し、ＴＣＡＭのビット当りの市場価格が、ＳＲＡＭの５倍以上となる。
【００１９】
また、通信速度が１００Ｍｂｐｓのファーストイーサネット（登録商標）、または通信速度がギガビットのギガビットイーサネット（登録商標）などのポートを複数搭載するネットワークスイッチおよびコアルータなどのネットワーク機器において、ＣＡＭが広く利用されている。これらのネットワーク機器の性能向上は著しく、ファーストイーサネット（登録商標）、ギガビットイーサネット（登録商標）および近年立上げられている１０ギガビットイーサネット（登録商標）のように、３年から４年で１０倍程度の割合で通信速度が進化している。当然、このネットワーク機器を構成するハードウェアおよびソフトウェアを含めて、このネットワークの性能向上／動作速度の増加の割合に追随する速度での進歩は、ネットワーク機器の構成要素に対して求められる。この進歩の割合／速度は、１．５年から２年でメモリ回路の記憶容量が２倍の割合で増大するというムーアの法則で言われるＣＰＵの性能進化速度を遥かに上回っている。
【００２０】
特に、最近では、１０ギガビットまたはそれ以上の性能を有するネットワーク機器対応の検索用ハードウェアとしては、上述のようにＣＡＭの採用が疑問視され始めてきている。その理由は、上述の消費電力およびセル占有面積が大きいという問題点による。大容量メモリ搭載のためには、当然、メモリは単位セルのビット単価を低下させる必要がある（ムーアの法則に従って）。また、高速動作実現のためには、消費電力も同様のスケーリングで減少させる必要がある。ＣＡＭの場合、そのハードウェア構成の特徴から、搭載する容量が増大されるにつれ、消費電力が大きくなる傾向がある。すなわち、ユーザが求めるスケーリングとは全くの逆の傾向および特性を示す。これらの問題については、上述の特許文献に示される構成では、十分に解決することが出来ない。したがって、今後のネットワーク機器への要求に応えるためには、検索用途のハードウェアとして、ＣＡＭのハードウェア構造に対する技術改革が望まれる。
【００２１】
それゆえ、この発明の目的は、単位セルのレイアウト面積を増大させることなく高速で検索動作を行なうとともに、大小比較および範囲判定などの論理機能をも備える低消費電力で動作する内容参照メモリを提供することである。
【課題を解決するための手段】
【００２２】
この発明に係る内容参照メモリは、検索対象のデータを記憶するエントリをデータ記憶セルおよびマスクビットを記憶するマスクセルで構成する。このマスクセルの数は、データ記憶セルの数よりも少なくする。２以上の所定数のエントリに共通に一致検出および大小比較を行なう比較／論理処理回路を設ける。与えられた検索データの所定の特徴に従ってプリサーチ回路により複数のエントリから１つのエントリを指定する。指定されたエントリの格納データが、センスアンプ回路を介して対応の比較／論理処理回路へ与えられる。
エントリは、それぞれ所定ビット単位のサブエントリに分割される。データ記憶セルに接続されるセンスアンプ回路の出力は比較／論理処理回路に接続され、マスクセルに接続されるセンスアンプ回路の出力はマスクデコーダ回路に接続される。
各所定数のビット単位において、比較／論理処理回路は、対応の所定数のビット単位に含まれる複数のデータ記憶セルのうちの第１群および第２群からの出力をそれぞれ受ける第１部分および第２部分に分割される。対応のビット単位に含まれるマスクセルの出力を受けるマスクデコーダ回路は、比較／論理処理回路の第１部分と第２部分との間に配置され、マスクデコーダ回路の出力は比較／論理処理回路の第１部分および第２部分に供給される。
【発明の効果】
【００２３】
この発明に係る内容参照メモリにおいては、複数のエントリにより比較／論理処理回路が共有される。したがって、エントリ個々に比較回路または大小比較回路が設けられる構成に比べて、メモリセルの占有面積が低減される。また、マスクビットを記憶するマスクセルの数は、データビットを記憶するデータ記憶セルの数よりも少なく、エントリを構成するメモリセルの数を低減することができる。
【００２４】
また、比較／論理回路を共有する複数のエントリのうち１つのエントリがプリサーチ回路により選択され、比較／論理処理回路において一致判定および大小判定などの比較処理が行なわれる。したがって、複数のエントリで一斉に並列に検索動作が行なわれる構成に比べて消費電力を低減することができる。また、サーチデータは、複数のエントリに並行して伝達する必要がなく、サーチ線の充放電電流が低減される。これにより、低消費電力でかつメモリセルの占有面積が低減された内容参照メモリを実現することができる。
【発明を実施するための最良の形態】
【００２５】
［実施の形態１］
図１は、この発明の実施の形態１に従う内容参照メモリの要部の構成を概略的に示す図である。図１において、メモリアレイ１が、複数のエントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１に分割される。エントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１の各々は、複数ビット（本実施の形態においては１オクテット：８ビット）単位でサブエントリＳＥＲＹに分割される。サブエントリＳＥＲＹの各々は、サーチデータのビット列に対応する情報データを記憶するデータ記憶セルＣＥＬ０と、マスクビットを記憶するマスクセルＣＥＬ１を含む。
【００２６】
なお、以下の説明においては、サーチデータに対応するデータを情報データと称し、マスクデータと区別する。以下、単に「データ」と称する場合には、この情報データを参照する。
【００２７】
１つのサブエントリＳＥＲＹにおいては、８つのデータ記憶セルＣＥＬ０と４つのマスクセルＣＥＬ１とが配置される。データ記憶セルＣＥＬ０は、単にサーチ対象のデータの情報ビットを記憶するだけであり、また、マスクセルも単にマスクビットを記憶するだけである。これらのデータ記憶セルＣＥＬ０およびマスクセルＣＥＬ１は、一致検出機能は有していない。したがって、１オクテットを記憶するサブエントリＳＥＲＹのメモリセルの数は、１２個であり、通常のＴＣＡＭにおける１オクテットの単位セルのメモリセルの１６ビットに比べて、メモリセルの数は低減され、レイアウト面積が低減される。
【００２８】
エントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１の格納データとサーチデータとの比較を行なうために、センスアンプ回路１１と比較／論理処理回路１５とがエントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１に共通に設けられる。
【００２９】
センスアンプ回路１１は、サブエントリに対応して配置されるセンスアンプユニットＳＡＵを含む。このセンスアンプユニットＳＡＵは、その構成は後に詳細に説明するが、データ記憶セルおよびマスクセルそれぞれに対応するセンスアンプを含む。
【００３０】
比較／論理処理回路１５は、センスアンプユニットＳＡＵそれぞれに対応して設けられる比較／論理処理ユニットＣＬＵを含む。この比較／論理処理ユニットＣＬＵは、データ記憶セルの記憶する情報データとサーチデータとの比較を行なう比較器ＣＭＰと、マスクセルの記憶するマスクビットをデコードするデコーダＤＥＣを含む。デコーダＤＥＣにより４ビットマスクデータが、８ビットのマスク指示信号に展開され、比較・論理処理ユニットＣＬＵにおける比較処理に対して選択的にマスクがかけられる。
【００３１】
図１に示すように、複数のエントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１に共通にセンスアンプ回路および比較／論理処理回路１５を設けることにより、各エントリそれぞれに比較器（ＸＯＲ回路）を設ける構成に比べて、ＣＡＭ（内容参照メモリ）の占有面積を低減することができる。
【００３２】
また、サーチデータは、サーチデータバスＳＬＢを介して比較／論理処理回路１５へ伝達されるだけであり、複数のエントリ全体に対してサーチデータを伝達するサーチ線を配設することは要求されない。したがって、サーチ線の充放電に要する電流を低減することが出来、消費電流を低減することが出来る。また、比較・論理処理回路１５において、比較／論理処理が行なわれ、エントリ内においては、比較処理は行なわれない。したがって、各エントリに対して一致線を配置する必要がなく、一致線の充放電に要する電流量を低減することが出来る。
【００３３】
なお、サブエントリＳＥＲＹが、１オクテットのデータを記憶するように構成されるのは、インターネットなどのネットワークにおいて、ＩＰアドレスの経路検索等の処理を行なう用途を想定しているためである。この発明に従う内容参照メモリが適用される用途に応じて、サブエントリＳＥＲＹのビット幅が、適宜定められればよい。
【００３４】
図１に示す構成において、エントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１のうち１つのエントリを、検索データの特徴に従って選択する。その後、センスアンプ回路１１で、選択されたエントリの記憶する情報データおよびマスクデータを増幅し、比較／論理処理回路で比較および大小判定を実行する。
【００３５】
図２は、図１に示すサブエントリＳＥＲＹの具体的構成を示す図である。図２において、エントリＥＮＴ♯ａ、ＥＮＴ♯ｂおよびＥＮＴ♯ｃの構成を代表的に示す。図２において、メモリセルが行列状に配列され、メモリセル行に対応してワード線ＷＬが配設され、メモリセル列に対応してビット線対ＢＬ，／ＢＬが配設される。１つのエントリのメモリセルに対して共通に１つのワード線が配設される。図２において、エントリＥＮＴ♯ａおよびＥＮＴ♯ｂに対応して配置されるワード線ＷＬａおよびＷＬｂを示す。
【００３６】
サブエントリＳＥＲＹにおいては、情報データを記憶するデータ記憶セルＣＥＬ００−ＣＥＬ０３およびＣＥＬ０４−ＣＥＬ０７と、マスクビットを記憶するマスクセルＣＥＬ１０−ＣＥＬ１３が行方向（エントリの延在方向）に整列して配置される。データ記憶セルＣＥＬ００−−ＣＥＬ０７とマスクセルＣＥＬ１０−ＣＥＬ１３は同一構成を有するため、図２においては、データ記憶セルＣＥＬ００およびマスクセルＣＥＬ１０の構成を代表的に示す。また、これらのデータ記憶セルＣＥＬ００およびマスクセルＣＥＬ１０は、同一構成であり、対応する部分には同一の参照番号を付す。
【００３７】
データ記憶セルＣＥＬ００およびマスクセルＣＥＬ１０の各々は、インバータラッチを構成するインバータＩＶ１およびＩＶ２と、対応のワード線ＷＬａ上の信号に従ってインバータＩＶ１およびＩＶ２の入力部をそれぞれビット線ＢＬおよび／ＢＬに結合するアクセストランジスタＡＴ１およびＡＴ２とを含む。ここで、データ記憶セルおよびマスクセルの各列に対応してビット線対が配置される。図２においては、記憶セルＣＥＬ００−ＣＥＬ０３を含む各メモリセル列に対応してビット線対ＢＬ０，／ＢＬ０−ＢＬ３，／ＢＬ３が配置される。マスクセルＣＥＬ１０のメモリセル列に対応してビット線ＢＬ４，／ＢＬ４が配置され、マスクセルＣＥＬ１３のメモリセル列に対応してビット線対ＢＬ７，／ＢＬ７が配置される。同様、データを記憶するデータ記憶セルＣＥＬ０４−ＣＥＬ０７各々を含むメモリセル列に対応して、ビット線対ＢＬ８，／ＢＬ８−ＢＬ１１，／ＢＬ１１が設けられる。
【００３８】
図２に示すように、データ記憶セルＣＥＬ０（ＣＥＬ００−ＣＥＬ０７）およびマスクセルＣＥＬ１（ＣＥＬ１０−ＣＥＬ１３）は、ＳＲＡＭセルと同じ構成を有する。データ記憶セルＣＥＬ００−ＣＥＬ０７およびマスクセルＣＥＬ１０−ＣＥＬ１３は、単に情報データおよびマスクデータを記憶するだけであり、メモリセル内には、一致判定を行なうＸＯＲ回路は設けられていない。したがって、メモリアレイ１のサブエントリのメモリセルＣＥＬ（ＣＥＬ０，ＣＥＬ１）の占有面積を、従来のＴＣＡＭのような２つのＳＲＡＭセルおよびＸＯＲ回路でＣＡＭセルを構成する場合に比べて低減することができる。
【００３９】
データの読出時には、１つのワード線を選択状態に駆動し、選択行のエントリの記憶内容を対応のビット線対に読出す。情報およびマスクデータの書込時においても、同様、１つのワード線を選択状態に駆動し、対応のビット線対に書込データ（情報データおよびＢマスクデータ）を転送して、メモリセルにビット線の情報／マスクデータを書込む。
【００４０】
図３は、図１に示すセンスアンプユニットＳＡＵおよび比較／論理ユニットＣＬＵの構成の一例を示す図である。図３において、センスアンプユニットＳＡＵは、ビット線対ＢＬ０，／ＢＬ０−ＢＬ１１，／ＢＬ１１各々に対して設けられるセンスアンプＳＡ０−ＳＡ１１を含む。図３においては、データ記憶セルに対するセンスアンプＳＡ０−ＳＡ３およびＳＡ８−ＳＡ１１の構成を示し、マスクビットを記憶するマスクセルに対するセンスアンプは示していない。しかしながら、マスクセルが配置されるビット線対ＢＬ４，／ＢＬ４−ＢＬ７，／ＢＬ７についても同様センスアンプが設けられる。
【００４１】
これらのセンスアンプＳＡ０−ＳＡ１１は、各々同一の構成を有し、図３においては、センスアンプＳＡ０−ＳＡ１１の対応する構成要素には同一参照番号を付す。センスアンプＳＡ０−ＳＡ１１の各々は、交差結合されるＰチャネルＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ）ＰＸ１およびＰＸ２と、交差結合されるＮチャネルＭＯＳトランジスタＮＸ１およびＮＸ２と、センスアンプ活性化信号／ＳＡＥＮに従ってハイ側センス電源ノードＳＶＨを電源ノードに結合するＰチャネルＭＯＳトランジスタＰＸ３と、センスアンプ活性化信号ＳＡＥＮに従ってロー側センス電源ノードＳＶＬを接地ノードに結合するＮチャネルＭＯＳトランジスタＮＸ３を含む。ハイ側センス電源ノードＳＶＨおよびロー側センス電源ノードＳＶＬは、図３においてはセンスアンプＳＡ０−ＳＡ１１に共通に結合されるように示す。これらのハイ側センス電源ノードＳＶＨおよびロー側センス電源ノードＳＶＬは、センスアンプＳＡ０−ＳＡ１１それぞれに個々に分離されてもよい。
【００４２】
これらのセンスアンプＳＡ０−ＳＡ１１は、交差結合型のラッチセンスアンプであり、それぞれ、活性化時、対応のセンスノードＣＳＮ０，／ＣＳＮ０−ＣＳＮ１１，／ＣＳＮ１１の電位を差動的に増幅してラッチする。
【００４３】
センスアンプユニットＳＡＵは、さらに、センスアンプ活性化信号ＳＡＥＮの非活性化に応答してビット線対ＢＬ０，／ＢＬ０−ＢＬ１１，／ＢＬ１１を、それぞれセンスアンプＳＡ０−ＳＡ１１に結合するビット線読出ゲートＲＧＴ０−ＲＧＴ１１を含む。これらのビット線読出ゲートＲＧＴ０−ＲＧＴ１１は、同一構成を有するため、図３においては、これらのビット線読出ゲートＲＧＴ０−ＲＧＴ１１の対応する構成要素に同一の参照番号を付す。ビット線読出ゲートＲＧＴ０−ＲＧＴ１１の各々は、センスアンプ活性化信号ＳＡＥＮの非活性化時導通し、それぞれ対応のビット線ＢＬ（ＢＬ０−ＢＬ１１）および／ＢＬ（／ＢＬ０−／ＢＬ１１）を対応のセンスノードＣＳＮ（ＣＳＮ０−ＣＳＮ１１）および／ＣＳＮ（／ＣＳＮ０−／ＣＳＮ１１）に結合するＰチャネルＭＯＳトランジスタＰＴａおよびＰＴｂを含む。
【００４４】
このビット線読出ゲートＲＧＴ０−ＲＧＴ１１においてＰチャネルＭＯＳトランジスタＰＴａおよびＰＴｂを用いるのは以下の理由による。すなわち、ビット線ＢＬ０，／ＢＬ０−ＢＬ１１，／ＢＬ１１は、それぞれ図示しないビット線負荷回路により、電源電圧レベルにプリチャージされる。したがって、メモリセルの記憶データ読出時、ビット線電位が、電源電圧レベルのＨレベルから少し低下した状態に変化する。このハイレベルのビット線電位を、確実に、対応のセンスアンプＳＡ（ＳＡ０−ＳＡ１１）に伝達するために、ＰチャネルＭＯＳトランジスタＰＴａおよびＰＴｂが用いられる。
【００４５】
センスアンプ活性化信号ＳＡＥＮが、非活性化時、ビット線プリチャージ電圧（例えば電源電圧）よりも高い電圧レベルに設定される場合には、このビット線読出ゲートＲＧＴ０−ＲＧＴ１１においてＮチャネルＭＯＳトランジスタが用いられればよい。
【００４６】
なお、情報およびマスクデータの書込時においても、このビット線読出ゲートを介して書込データが転送される（この書込経路は示していない）。この場合には、センスアンプは特に用いる必要はない。メモリセルは、ＳＲＡＭセルであり、データは非破壊読出であり、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）と異なり、記憶データの再書き込みは要求されない。
【００４７】
比較／論理処理ユニットＣＬＵは、センスアンプＳＡ０−ＳＡ３およびＳＡ８−ＳＡ１１それぞれに対応して設けられる４出力のＸＯＲ回路ＸＲＬ０−ＸＲＬ３およびＸＲＬ４−ＸＲＬ７を含む。これらのＸＯＲ回路ＸＲＬ０−ＸＲＬ３およびＸＲＬ４−ＸＲＬ７が、各々図１に示す比較器ＣＭＰに対応する。これらのＸＯＲ回路ＸＲＬ０−ＸＲＬ３およびＸＲＬ４−ＸＲＬ７は、データ記憶セルに対応して設けられ、マスクビットを記憶するマスクセルすなわちビット線対ＢＬ４，／ＢＬ４−ＢＬ７，／ＢＬ７に対しては、ＸＯＲ回路は設けられない。マスクセルに対して、後に説明するようにデコーダが配置される。
【００４８】
比較／論理処理ユニットＣＬＵは、さらに、出力イネーブル信号ＣＭＥＮに従ってセンスアンプＳＡ０−ＳＡ３およびＳＡ８−ＳＡ１１をそれぞれＸＯＲ回路ＸＲＬ０−ＸＲＬ３およびＸＲＬ４−ＸＲＬ７に結合するセンスデータ転送ゲートＴＸ０−ＴＸ３およびＴＸ８−ＴＸ１１を含む。センスデータ転送ゲートは、また、マスクセルに対しても設けられ、対応のセンスアンプのセンスデータがデコーダ（図３には示していない）へ転送される。これらのセンスデータ転送ゲートＴＸ０−ＴＸ１１は、各々同一構成を有するため、図３においては対応する部分には同一の参照番号を付す。センスデータ転送ゲートＴＸ０−ＴＸ１１の各々は、比較活性化信号ＣＭＥＮの活性化に従って対応のセンスアンプＳＡ（ＳＡ０−ＳＡ１１のいずれか）のセンスノードＣＳＮ（ＣＳＮ０−ＣＳＮ１１）および／ＣＳＮ（／ＣＳＮ０−／ＣＳＮ１１）を対応のＸＯＲ回路ＸＲＬ（ＸＲＬ０−ＸＲＬ７）に結合するＮチャネルＭＯＳトランジスタＮＴａおよびＮＴｂを含む。
【００４９】
ＸＯＲ回路ＸＲＬ０−ＸＲＬ７の各々は、対応のセンスアンプから転送されるデータとサーチ線ＳＬ（ＳＬ０−ＳＬ７）および／ＳＬ（ＳＬ０−／ＳＬ７）のデータとの比較を行ない、その比較結果に従って４つの出力ＯＵＴ０−ＯＵＴ３を生成する。図３においては、これらのＸＯＲ回路ＸＲＬ０−ＸＲＬ７の出力信号に対し、山括弧により、このビット位置を示す。たとえば、ＸＯＲ回路ＸＲＬ０は、出力ビットＯＵＴ０＜０＞、ＯＵＴ１＜０＞、ＯＵＴ２＜０＞およびＯＵＴ３＜０＞を生成する。ビット位置＜０＞が対応のサブエントリにおける最下位ビット位置を示し、ビット位置＜７＞が対応のサブエントリにおける最上位ビット位置を示す。
【００５０】
この４つの出力信号ＯＵＴ０−ＯＵＴ３により、一致および大小関係などの比較・論理処理結果を示す信号を生成する。
【００５１】
図４は、図１から３に示す内部参照メモリの動作を示すタイミング図である。以下、図４を参照して、この図１から３に示す内部参照メモリ（ＣＡＭまたはＴＣＡＭ）の動作について説明する。
【００５２】
検索データＳＤは、クロック信号ＣＬＫに同期して転送される。ここで、この発明に従う内容参照メモリ（ＣＡＭ）の用途として、インターネット環境におけるルータまたはスイッチを想定する。
【００５３】
検索データＳＤがクロック信号ＣＬＫに同期してＣＡＭ内部に取込まれ、応じて、サーチ線ＳＬおよび／ＳＬが、検索データＳＤに応じた電圧レベルに駆動される。ここで、図４においては、サーチ線ＳＬおよび／ＳＬは、スタンバイ時Ｌレベルにプリチャージされる状態を一例として示す。
【００５４】
検索データＳＤが与えられると、この検索データＳＤに含まれる特徴データ（たとえばＩＰアドレスの特定のオクテット）に従って、メモリアレイ１の１つのエントリが指定され、対応のワード線ＷＬが選択状態へ駆動される。ワード線ＷＬが選択状態へ駆動されると、選択エントリにおけるメモリセルＣＥＬ０およびＣＥＬ１においてアクセストランジスタＡＴ１およびＡＴ２が導通し、それぞれの記憶データが対応のビット線ＢＬおよび／ＢＬ上に伝達される。このメモリセルの記憶データの読出は、通常のＳＲＡＭのデータ読出と同じである。図４においては、ビット線ＢＬおよび／ＢＬが電源電圧レベルのＨレベルにプリチャージされる状態を一例として示す。
【００５５】
このとき、まだセンスアンプ活性化信号ＳＡＥＮはＬレベルであり、ビット線読出ゲートＲＧＴは導通状態にある。したがって、ビット線ＢＬおよび／ＢＬの電位変化がセンスノードＣＳＮおよび／ＣＳＮへ伝達される。ビット線ＢＬおよび／ＢＬの電位差が拡大されると、次いでセンスアンプ活性化信号ＳＡＥＮおよび／ＳＡＥＮが活性状態のＨレベルおよびＬレベルに駆動される。応じて、ビット線読出ゲートＲＧＴ０−ＲＧＴ１１が非導通状態となり、ビット線からの電圧が、センスアンプＳＡ０−ＳＡ１１のセンスノードＣＳＮ０，／ＣＳＮ０−ＣＳＮ１１，／ＣＳＮ１１に閉じ込められる。この状態で、センスアンプＳＡがセンス動作を行い、その転送されたメモリセルの記憶データに応じてセンスノードＣＳＮおよび／ＣＳＮが、ＨレベルおよびＬレベルに駆動されてラッチされる。
【００５６】
センスアンプＳＡ０−ＳＡ１１のラッチデータが確定すると、次いで比較活性化信号ＣＭＥＮが活性化され、センスデータ転送ゲートＴＸ０−ＴＸ１１が導通し、センスアンプＳＡ０−ＳＡ３およびＳＡ８−ＳＡ１１のラッチデータが、比較／論理処理ユニットＣＬＵ内のＸＯＲ回路ＸＲＬ０−ＸＲＬ７に転送されて，比較処理が実行される。また、このとき、マスクセルに対応して配置されるセンスアンプ（ＳＡ４−ＳＡ７）のラッチデータがデコーダＤＥＣに転送され、ＸＯＲ回路ＸＲＬ０−ＸＲＬ７の比較処理に対して選択的にマスクがかけられる。
【００５７】
ＸＯＲ回路ＸＲＬ０−ＸＲＬ７が転送データとサーチデータとの比較動作を行ない、比較／論理処理ユニットＣＬＵにおいて各ＸＯＲ回路の出力信号ＯＵＴ０−ＯＵＴ３（ＯＵＴ０＜０＞−ＯＵＴ３＜０＞−ＯＵＴ０＜７＞−ＯＵＴ３＜７＞）の論理状態が確定すると、比較活性化信号ＣＭＥＮが非活性化され、また、センスアンプ活性化信号ＳＡＥＮおよび／ＳＡＥＮもそれぞれ非活性化される。これにより、ビット線ＢＬおよび／ＢＬは、ビット線読出ゲートＲＧＴを介して対応のセンスアンプＳＡのセンスノードＣＳＮＯＹＯＢＩ／ＣＳＮに結合される。また、図示しないビット線負荷回路によりビット線およびセンスノードが電源電圧レベルにプリチャージされる。このプリチャージ状態においては、センスデータ転送ゲートＴＸが非導通状態であり、比較／論理処理ユニットＣＬＵとセンスアンプユニットＳＡＵとは分離される。
【００５８】
以上のように、検索データＳＤは、単に複数のエントリに共通に設けられる比較／論理処理ユニットのＸＯＲ回路ＸＲＬ０−ＸＲＬ７にサーチ線ＳＬ０，／ＳＬ０−ＳＬ７，／ＳＬ７を介して伝達されるだけであり、複数のエントリ共通にサーチ線は設けられていない。したがって、サーチ線を駆動する際の充放電の電流量を低減することができ、応じて消費電力を低減することができる。また、一致判定などの比較／論理処理は、複数のエントリに共通に設けられるＸＯＲ回路により実行されている。したがって、ＸＯＲ回路を各メモリセルに配置する必要がなく、メモリセルのレイアウト面積が低減される。また一致判定を行なうたとえば一致線は、複数のエントリに共通に設けられており、一致線の充放電電流量は大幅に低減される。例えば、３２エントリに対して１つの比較／論理処理回路１５が配置される場合、この比較処理に要する電流量を１／３２倍に低減することが出来る。
【００５９】
また、図３に示す構成において、ビット線読出ゲートＲＧＴ０−ＲＧＴ１１は、センス動作時に非導通状態となり、センスアンプと対応のビット線ＢＬおよび／ＢＬとを分離している。したがって、センスアンプの動作時の駆動負荷は小さく、高速でセンス動作を行なうことができる。ビット線ＢＬおよび／ＢＬにおける電位差は、ワード線ＷＬが非選択状態へ駆動された後、メモリセルの内部の記憶ノードは、対応のビット線ＢＬおよび／ＢＬと分離されるため、ビット線ＢＬおよび／ＢＬが、図示しないビット線負荷回路により充電されその電圧レベルが上昇する。センスアンプＳＡとビット線ＢＬおよび／ＢＬの接続時、ビット線ＢＬおよび／ＢＬの電位が、センスアンプの記憶データに応じてまたはその負荷容量に応じて低下するものの、対応のビット線負荷回路により再び、電源電圧レベルのＨレベルにプリチャージされる。
【００６０】
図５は、図３に示すＸＯＲ回路ＸＲＬ０−ＸＲＬ７の構成の一例を示す図である。ＸＯＲ回路ＸＲＬ０−ＸＲＬ７は、与えられるマスクビットの値が異なるだけであり、図３においては、１つのＸＯＲ回路ＸＲＬの構成を代表的に示す。
【００６１】
図５において、ＸＯＲ回路ＸＲＬは、出力信号ＯＵＴ０−ＯＵＴ３それぞれの出力ノードＮＤ０−ＮＤ３を比較活性化信号ＣＭＥＮの非活性化時電源電圧レベルにプリチャージするＰチャネルＭＯＳトランジスタＰＱ０−ＰＱ３を含む。比較活性化信号ＣＭＥＮがＬレベルの非活性化時、これのＭＯＳトランジスタＰＱ０−ＰＱ３がオン状態となり、出力信号ＯＵＴ０−ＯＵＴ３がＨレベルにプリチャージされる。
【００６２】
出力信号ＯＵＴ０に対してＮチャネルＭＯＳトランジスタＮＱ０−ＮＱ２が設けられる。ＮチャネルＭＯＳトランジスタＮＱ０およびＮＱ１は、出力ノードＮＤ０と接地ノードの間に直列に接続され、それぞれのゲートが補のビット線／ＢＬおよび補のサーチ線／ＳＬに結合される。ＮチャネルＭＯＳトランジスタＮＱ２は、出力ノードＮＤ０と接地ノードの間に接続され、そのゲートにマスク指示信号／ＭＡＳＫを受ける。
【００６３】
出力信号ＯＵＴ１に対しては、ＮチャネルＭＯＳトランジスタＮＱ３−ＮＱ５が設けられる。ＮチャネルＭＯＳトランジスタＮＱ３およびＮＱ４は、出力ノードＮＤ１と接地ノードの間に互いに並列に接続され、それぞれのゲートがビット線ＢＬおよび補のサーチ線／ＳＬに結合される。ＮチャネルＭＯＳトランジスタＮＱ５は、出力ノードＮＤ１と接地ノードの間に接続されかつそのゲートにマスク指示信号／ＭＡＳＫを受ける。
【００６４】
出力信号ＯＵＴ２に対しては、ＮチャネルＭＯＳトランジスタＮＱ６−ＮＱ７が設けられる。ＮチャネルＭＯＳトランジスタＮＱ６およびＮＱ７は、出力ノードＮＤ２と接地ノードの間に並列に接続され、それぞれのゲートが補のビット線／ＢＬおよびサーチ線ＳＬに結合される。ＮチャネルＭＯＳトランジスタＮＱ８は、出力ノードＮＤ２と接地ノードの間に接続され、かつそのゲートに補のマスク指示信号／ＭＡＳＫを受ける。
【００６５】
出力信号ＯＵＴ３に対しては、ＮチャネルＭＯＳトランジスタＮＱ９−ＮＱ１１が設けられる。ＮチャネルＭＯＳトランジスタＮＱ９およびＮＱ１０は、出力ノードＮＤ３と接地ノードの間に直列に接続され、それぞれのゲートがビット線ＢＬおよびサーチ線ＳＬに結合される。ＮチャネルＭＯＳトランジスタＮＱ１１は、出力ノードＮＤ３と接地ノードの間に接続され、かつそのゲートに補のマスク指示信号／ＭＡＳＫを受ける。
【００６６】
マスク指示信号／ＭＡＳＫは、Ｈレベル（“１”）のときにマスクを指示する。すなわち、マスク指示信号／ＭＡＳＫが“１”（Ｈレベル）のときに、対応のデータビットが「ドントケア状態」に設定されるため、マスク指示信号ＭＡＳＫがＨレベルのとき、出力信号ＯＵＴ０−ＯＵＴ３はすべて、Ｌレベル（“０”）に設定される。
【００６７】
図６は、図５に示すＸＯＲ回路ＸＲＬの入出力信号の論理を一覧にして示す図である。以下、図６を参照して、図５に示すＸＯＲ回路の動作について説明する。
【００６８】
データは、ビット線ＢＬおよびサーチ線ＳＬに現われ、補のデータビットが、補のビット線／ＢＬおよび補のサーチ線／ＳＬに現われるものとする。
【００６９】
ビット線ＢＬおよび／ＢＬの論理値として、センスアンプにより増幅されたデータが現われるものとする（電荷閉じ込め方式でのセンス動作時においては、センスノードＣＳＮ，／ＣＳＮの電圧レベルが伝達される）。しかしながら、図６においては、データ記憶セルの記憶データとサーチ線上の検索データとの対応関係を示すため、図６においてはビット線ＢＬ，／ＢＬおよびサーチ線ＳＬ，／ＳＬを示す。
【００７０】
マスク指示信号／ＭＡＳＫがＬレベルのときには、ＭＯＳトランジスタＮＱ２，ＮＱ５、ＮＱ８およびＮＱ１１はすべてオフ状態である。この場合には、ビット線ＢＬ，／ＢＬおよびサーチ線ＳＬ，／ＳＬ上の信号の論理レベルに従って出力信号ＯＵＴ０−ＯＵＴ３の論理レベルが決定される。マスク指示信号／ＭＡＳＫが、Ｈレベルの時には、出力信号ＯＵＴ０−ＯＵＴ３は、全てＬレベルである。
【００７１】
出力信号ＯＵＴ０が“０”となるのは、補のビット線／ＢＬおよび補のサーチ線／ＳＬがともに“１”のときである。この場合、ビット線ＢＬおよびサーチ線ＳＬ上には“０”のデータビットが転送される。したがって出力信号ＯＵＴ０が“０”のときには、記憶セルの記憶データビットと検索データビットが等しいことを示す（図６においては、フラグＥＱで示す）。マスクがかけられているときにも、出力信号ＯＵＴ０は、Ｌレベルとなり、一致を示す。
【００７２】
出力信号ＯＵＴ１が“０”となるのは、ビット線ＢＬが“１”であるかまたはサーチ線／ＳＬが“１”のときである。すなわち、補のビット線／ＢＬおよびサーチ線ＳＬが、ともに“１”のときには、ＭＯＳトランジスタＮＱ３およびＮＱ４はともにオフ状態となり、出力信号ＯＵＴ１はプリチャージ状態のＨレベル（“１”）を維持する。この場合、データ記憶セルの記憶するデータビットが“０”であり、サーチデータビットが“１”であり、ビット線ＢＬ上に現われる記憶データビットよりもサーチデータビットが大きいことを示す（関係式ＢＬ＜ＳＬで示す）。マスクがかけられているとき、出力信号ＯＵＴ１は、Ｌレベルとなり、サーチデータビットが記憶データビットよりも大きくないことが示される。
【００７３】
出力信号ＯＵＴ２が“１”となるのは、補のビット線／ＢＬが“０”かつサーチ線ＳＬが“０”のときである。この場合、ビット線ＢＬ上のデータビットは“１”であり、サーチ線ＳＬ上のサーチデータビットは“０”であり、したがって、データ記憶セルの記憶データビットがサーチデータビットよりも大きいことが示される（関係式ＢＬ＞ＳＬで示す）。マスクがかけられている場合には、出力信号ＯＵＴ２は、Ｌレベルとなり、サーチデータビットが記憶データよりも小さくないことが示される。
【００７４】
出力信号ＯＵＴ３が“０”となるのは、ビット線ＢＬおよびサーチ線ＳＬ上のビットがともに“１”の場合である。すなわち、データ記憶セルの記憶するデータビットおよびサーチデータビットがともに“１”のときに、出力信号ＯＵＴ３がＬレベル（“０”）となる。マスクがかけられている場合には、出力信号ＯＵＴ３がＬレベルとなり、サーチデータビットと記憶データビットとが等しいことが示される。
【００７５】
すなわち、出力信号ＯＵＴ０またはＯＵＴ３が“０”の場合には、データ記憶セルが記憶するデータビットとサーチ線を介して伝達されるサーチデータビットとが等しいことが示される。出力信号ＯＵＴ１が“１”のときには、データ記憶セルの記憶データビットよりもサーチデータビットの方が大きいことが示される。出力信号ＯＵＴ２が“１”のときには、データ記憶セルが記憶するデータビットがサーチデータビットよりも大きいことが示される。
【００７６】
したがって、ＸＯＲ回路の出力信号ＯＵＴ０−ＯＵＴ３を、８ビットに展開することにより、各オクテット単位で、記憶データとサーチデータの一致／不一致、および大小を検出することができる。このオクテット単位の論理処理結果を、さらにエントリレベルにまで拡張することにより、エントリに格納される検索対象のデータ列とサーチ線を介して伝達されるサーチデータの一致／不一致および大小関係を判定することができる。
【００７７】
図７は、比較／論理処理ユニットＣＬＵの一致判定部の構成を概略的に示す図である。図７において、比較／論理処理ユニットＣＬＵにおいては、データビットそれぞれに対応してＸＯＲ回路ＸＲＬ０−ＸＲＬ７が設けられる。一致判定時においては、これらのＸＯＲ回路ＸＲＬ０−ＸＲＬ７の出力信号ＯＵＴ０＜０＞−ＯＵＴ０＜７＞およびＯＵＴ３＜０＞−ＯＵＴ３＜７＞を用いる。出力信号ＯＵＴ０＜０＞−ＯＵＴ０＜３＞が４入力ＮＯＲゲート２０へ与えられ、出力信号ＯＵＴ０＜４＞−ＯＵＴ０＜７＞が４入力ＮＯＲゲート２１へ与えられる。出力信号ＯＵＴ＜０＞−ＯＵＴ３＜３＞が４入力ＮＯＲゲート２２へ与えられ、出力信号ＯＵＴ３＜４＞−ＯＵＴ３＜７＞が４入力ＮＯＲゲート２３へ与えられる。
【００７８】
この４入力ＮＯＲゲート２０および２１の出力信号が２入力ＡＮＤゲート２４へ与えられ、４入力ＮＯＲゲート２２および２３の出力信号が２入力ＡＮＤゲート２５へ与えられる。これらの２入力ＡＮＤゲート２４および２５の出力信号が、２入力ＯＲゲート２６へ与えられる。
【００７９】
図６に示すように、記憶データとサーチデータとが一致している場合には（ドントケア状態を含めて）、出力信号ＯＵＴ０＜０＞−ＯＵＴ０＜７＞の組または出力信号ＯＵＴ３＜０＞−ＯＵＴ３＜７＞の組がすべて“０”となる。したがって、一致時においては、ＮＯＲゲート２０および２１の出力信号がともにＨレベルとなるか、またはＮＯＲゲート２２および２３の出力信号がともにＨレベル（“１”）となる。したがって、ＡＮＤゲート２４の出力信号がＨレベル（“１”）のときまたはＡＮＤゲート２５の出力信号が“１”（Ｈレベル）のときに、記憶データと検索データが一致していると判別される。したがって、これらのＡＮＤゲート２４および２５の出力信号を受けるＯＲゲート２６からの信号ＢＬｅｑＳＬが“１”（Ｈレベル）のときに、記憶データと検索データとが一致していると判別される。このＯＲゲート２６の出力信号をインバータ２７により反転することにより、インバータ２７の出力信号ＢＬｎｅＳＬが“１”のときに、記憶データと検索データとが不一致であることが示される。
【００８０】
比較／論理処理ユニットＣＬＵにおいては、４つのＸＯＲ回路ＸＲＬ０−ＸＲＬ３とＸＯＲ回路ＸＲＬ４−ＸＲＬ７の間にデコード回路が配置される。したがって、面積的に余裕を持って、これらのゲート２０−２７を配置することができる。
【００８１】
図８は、１つのエントリＥＮＴ♯Ａにおける一致／不一致判定結果を示す部分の構成の一例を示す図である。図８において、エントリＥＮＴ♯ＡのサブエントリＳＥＲＹに共通に、グローバルマッチ線ＧＭＬが配置される。エントリＥＮＴ♯Ａは、複数のサブエントリＳＥＲＹ０−ＳＥＲＹｍに分割される。サブエントリＳＥＲＹ０−ＳＥＲＹｍに対応して、比較／論理処理ユニット（ＣＬＵ）内において一致判定部ＥＸＲ０−ＥＸＲｍが設けられる。一致判定部ＥＸＲ０−ＥＸＲｍ各々の構成は、図７に示す構成に相当する。
【００８２】
これらの一致判定部ＥＸＲ０−ＥＸＲｍそれぞれに対応して、グローバルマッチ線ＧＭＬに並列に、ＮチャネルＭＯＳトランジスタＮＧＸ０−ＮＧＸｍが設けられる。これらのＭＯＳトランジスタＮＧＸ０−ＮＧＸｍは、それぞれ、ゲートに不一致検出信号ＢＬｎｅＳＬ０−ＢＬｎｅＳＬｍを受け、導通時、グローバルマッチ線ＧＭＬを接地ノードに結合する。このグローバルマッチ線ＧＭＬに対しては、比較活性化信号ＣＭＥＮの非活性化時グローバルマッチ線ＧＭＬを電源電圧レベルにプリチャージするＰチャネルＭＯＳトランジスタＰＱ１０が設けられる。
【００８３】
この図８に示す構成において、一致判定部ＥＸＲ０−ＥＸＲｍにおいて、サーチ線ＳＬからのサーチデータと対応のサブエントリからビット線ＢＬを介して伝達される記憶データが不一致の場合、対応の不一致検出信号ＢＬｎｅＳＬがＨレベル（“１”）となる。したがって、一致判定部ＥＸＲ０−ＥＸＲｍのいずれかにおいて不一致が判定された場合、ＭＯＳトランジスタＮＧＸ０−ＮＧＸｍのいずれかが導通し、このグローバルマッチ線ＧＭＬが放電され、一致指示フラグＥＱＦは、“０”となる。
【００８４】
一方、一致判定部ＥＸＲ０−ＥＸＲｍ全てにおいて一致判定が行なわれた場合、不一致指示信号ＢＬｎｅＳＬ０−ＢＬｎｅＳＬｍはすべて“０”（Ｌレベル）である。したがって、この状態においては、ＭＯＳトランジスタＮＧＸ０−ＮＧＸｍはすべてオフ状態であり、グローバルマッチ線ＧＭＬ上の一致指示フラグＥＱＦは、Ｈレベルを維持する。このフラグＥＱＦの“０”および“１”に従がって、記憶データとサーチデータとの一致／不一致を識別することができる。
【００８５】
なお、この一致指示フラグＥＱＦをインバータにより反転して、不一致指示フラグ（ＮＥＱＦ）を、不一致検出時アサートするように構成してもよい。
【００８６】
図９は、比較／論理処理ユニットに含まれる大小判定回路の構成の一例を示す図である。図９において、大小判定回路は、複数の直列に接続されるＮチャネルＭＯＳトランジスタＮＱ２０−ＮＱ２７と、これらのＭＯＳトランジスタＮＱ２０−ＮＱ２７と並列に接続されるＰチャネルＭＯＳトランジスタＰＱ２０−ＰＱ２７を含む。ＭＯＳトランジスタＮＱ２０−ＮＱ２７のゲートへは、それぞれ一致指示ビットＥＱ＜０＞−ＥＱ＜７＞が与えられ、ＭＯＳトランジスタＰＱ２０−ＰＱ２７のゲートへは、プリチャージ指示信号／ＰＲＥが与えられる。ＭＯＳトランジスタＮＱ２０−ＮＱ２７により、ローカルマッチ線２８が、セグメントＭＮＡ０−ＭＮＡ７に分割される。
【００８７】
この一致指示ビットＥＱ＜０＞−ＥＱ＜７＞は、ＸＯＲ回路ＸＲＬ０−ＸＲＬ７各々の出力信号ＯＵＴ０およびＯＵＴ３の否定論理積演算（ＮＡＮＤ）結果を示す信号である。すなわち、出力信号ＯＵＴ０およびＯＵＴ３は、一致を示すとき、その信号レベルは“０”であり、一致指示ビットＥＱ＜０＞−ＥＱ＜７＞は、そのサーチデータビットと記憶データビットとが一致しているときに“１”（Ｈレベル）に設定される。
【００８８】
最上位ビット位置のノードＭＮＤ７に対して、充電用のＰチャネルＭＯＳトランジスタＰＲ０および放電用のＮチャネルＭＯＳトランジスタＮＲ０が設けられる。ＭＯＳトランジスタＰＲ０は、プリチャージ指示信号／ＰＲＥの活性化時に導通し、ノードＭＮＤ７を電源ノードに結合する。ＮチャネルＭＯＳトランジスタＮＲ０は、大小判定活性化信号ＤＥＴＲの活性化時導通し、ノードＭＮＤ７を接地ノードに結合する。したがって、プリチャージ指示信号／ＰＲＥの活性化時、ＭＯＳトランジスタＰＱ２４−ＰＱ２７がオン状態となり、ＭＯＳトランジスタＰＲ０により、ローカルマッチ線２８のノードＭＮＤ０−ＭＮＤ７はすべて電源電圧レベルにプリチャージされる。
【００８９】
ノードＭＮＤ０−ＭＮＤ７それぞれと大小検出線２９の間に、ＮチャネルＭＯＳトランジスタＮＱ３０−ＮＱ３７が設けられる。これらのＭＯＳトランジスタＮＱ３０−ＮＱ３７は、そのゲートに、対応のＸＯＲ回路の出力信号ＯＵＴ１＜０＞−ＯＵＴ１＜７＞を受ける。これらの信号ＯＵＴＯＵＴ１＜０＞−ＯＵＴ１＜７＞は、各々、対応のサーチデータビットが対応のデータ記憶セルの記憶データよりも大きいときに“１”に設定される。
【００９０】
大小検出線２９に対してまた、プリチャージ指示信号／ＰＲＥに応答して導通するＰチャネルＭＯＳトランジスタＰＲ１が設けられる。大小検出線２９は、プリチャージ時、電源電圧レベルにプリチャージされる。
【００９１】
図１０は、図９に示す大小判定部の動作を示す信号波形図である。以下、図１０を参照して、図９に示す大小判定部の動作について説明する。
【００９２】
比較／論理処理動作前、すなわち、比較活性化信号ＣＭＥＮの活性化前、プリチャージ指示信号／ＰＲＥはＬレベルであり、ローカルマッチ線２８は、電源電圧レベルにプリチャージされ、また、大小検出線２９も、電源電圧レベルにプリチャージされる。
【００９３】
比較活性化信号ＣＭＥＮが活性化されると、応じてプリチャージ指示信号／ＰＲＥも非活性化され、このローカルマッチ線２８および大小検出線２９の電源電圧レベルへのプリチャージが停止する。この後、ＸＯＲ回路ＸＲＬ０−ＸＲＬ７において一致検出および大小判定が行なわれる。
【００９４】
ＸＯＲ回路ＸＲＬ０−ＸＲＬ７の出力信号ＯＵＴ１＜０＞−ＯＵＴ＜７＞の状態が確定し、また、一致指示信号ＥＱ＜０＞−ＥＱ＜７＞の状態を確定すると、大小判定活性化信号ＤＥＴＲが活性化される。応じて、ＭＯＳトランジスタＮＲ０が導通し、ノードＮＮＤ７の接地電圧レベルへの放電が行なわれる。対応のサブエントリに含まれるデータ記憶セルの記憶データとサーチ線上に現われるサーチデータとが一致している場合、一致指示信号ＥＱ＜０＞−ＥＱ＜７＞はすべて活性状態であり、ＭＯＳトランジスタＮＱ２０−ＮＱ２７が全て導通状態となる。この状態においては、ローカルマッチ線２８は、全体にわたって、ＭＯＳトランジスタＮＲ０により、接地電圧レベルに放電される。
【００９５】
サーチデータと記憶データとが一致している場合には（ドントケア状態を含めて）、出力信号ＯＵＴ１＜０＞−ＯＵＴ１＜７＞はすべてＬレベル（“０”）であり、ＭＯＳトランジスタＮＱ３０−ＮＱ３７はオフ状態となり、大小検出線２９は、プリチャージ電圧レベルのＨレベルを維持する。
【００９６】
すなわち、サーチデータと記憶データ（検索対象データ）とが一致している場合には、ローカルマッチ線２８からの一致指示フラグＭＴは、Ｌレベル（“０”）となりかつ大小検出線２９上の大小判定フラグＧＴが、Ｈレベル（“１”）となる。
【００９７】
データ記憶セルの記憶データよりもサーチデータが小さい場合を考える。この場合、不一致の最上位ビット位置において、ビット線ＢＬ上のデータビットが“１”であり、サーチ線ＳＬ上のデータビットが“０”となる。この条件においては，ＮチャネルＭＯＳトランジスタＮＱ２０−ＮＱ２７のうち、不一致の最上位ビット位置に対応するＭＯＳトランジスタがオフ状態である。したがって、ローカルマッチ線２８の一致指示フラグＭＴは、その不一致検出ビットに対応するＭＯＳトランジスタによりＭＯＳトランジスタＮＲ０から分離されて放電されないため、一致指示フラグＭＴは、プリチャージレベルのＨレベルに維持される。
【００９８】
また、不一致のビットのうちの最上位ビットに対応するＸＯＲ回路の出力信号ＯＵＴ１は、“０”（Ｌレベル）であり、対応のＭＯＳトランジスタはオフ状態となる。不一致のビット位置よりも上位ビットにおいては、サーチデータビットとセルの記憶データビットが一致している。したがって、この場合も、出力信号ＯＵＴ１は、“０”であり、ＭＯＳトランジスタＮＱ３０−３７において、不一致のビット位置よりも上位のＭＯＳトランジスタもオフ状態となる。したがって、大小検出線２９において、不一致の最上位ビット位置およびそれより上位のビット位置においてローカルマッチ線２８と分離され、不一致の最上位ビット以下のビット位置においては、ローカルマッチ線２８の放電は行なわれない。したがって、この不一致の最上位ビットよりも下位のビットにおいて出力信号ＯＵＴ１がＨレベル（“１”）となっても、大小検出線２９の接地電圧レベルへの放電経路は存在しない。したがって、大小検出線２９からの大小判定フラグＧＴは、Ｈレベル（“１”）を維持する。
【００９９】
すなわち、サーチデータが、検索対象データ（セルの記憶データ）よりも小さい場合には、一致指示フラグＭＴが、Ｈレベル、かつ大小判定フラグＧＴがＨレベルとなる。
【０１００】
次に、サーチデータが、記憶データよりも大きい場合を考える。この場合、サーチ線ＳＬ上のデータビットが“１”でありかつ対応のビット線ＢＬの記憶データビットが“０”となり、対応のＸＯＲ回路の出力信号ＯＵＴ１は”１”となる。したがって、ＭＯＳトランジスタＮＱ３０−ＮＱ３７のうち、最上位の不一致ビット位置のＭＯＳトランジスタがオン状態となる。
【０１０１】
この場合、ローカルマッチ線２８のＭＯＳトランジスタＮＱ２０−ＮＱ２７においても、最上位の不一致ビット位置に対応するＭＯＳトランジスタがオフ状態となる。したがって、一致ビット後の最上位ビットにおいてサーチデータビットが記憶データビットよりも大きいと判定された場合、大小検出線２９は、ＭＯＳトランジスタＮＲ０およびＭＯＳトランジスタＮＱ３０−ＮＱ３７のうちの対応のＭＯＳトランジスタにより放電される。したがって、検索データが記憶データよりも大きい場合には、この大小検出線２９上の大小判定フラグＧＴはＬレベルとなる。ローカルマッチ線２８においては、不一致ビット位置において、対応のＭＯＳトランジスタがオフ状態となり、ローカルマッチ線２８が分断され、全体の放電は行なわれない。したがって、一致指示フラグＭＴは、プリチャージ状態のＨレベル（“１”）を維持する。
【０１０２】
なお、ドントケア状態が、不一致の最上位ビットよりも上位に存在しても、この状態は一致状態として識別されるため、ローカルマッチ線上の対応のＭＯＳトランジスタがオン状態となる。したがって、大小検出線２９とローカルマッチ線との間の対応のＭＯＳトランジスタがオフ状態となっても、次段以降の最上位の不一致ビットに従って、大小判定が正確に行なわれる。
【０１０３】
すなわち、サーチデータが記憶データ（検索対象データ）よりも、大きい場合には、一致指示フラグＭＴがＨレベル、大小判定フラグＧＴがＬレベルとなる。
【０１０４】
以上のようにして、不一致の最上位ビット位置の記憶およびサーチデータビットの大小に応じた電圧レベルに、大小検出線２９からの大小判定フラグＧＴの電圧レベル（論理レベル）を設定することができる。このサブエントリ単位で判定される一致および大小を全エントリに展開することにより、サーチデータと検索対象データの一致および大小を、一致検出結果を利用して判定することが出来る。また、一致判定結果を利用して大小判定を行なっており、大小判定のための回路構成を簡略化することが出来、大小判定回路の占有面積を低減することが出来る。
【０１０５】
図１１は、エントリのデータ列とサーチデータとの大小を判定する回路部分の構成の一例を示す図である。図１１において、サブエントリに対応する比較／論理処理ユニット各々に対応して、ＡＮＤゲートＡＧ０−ＡＧｍが設けられる。ＡＮＤゲートＡＧ０−ＡＧｍは、各々第１の入力に対応の論理処理ユニットからの大小判定フラグＧＴ０−ＧＴｍを受ける。第２の入力に、前段のＡＮＤゲートの出力信号を受ける。初段のＡＮＤゲートＡＧ０の第２の入力は、電源ノードに結合される。初段のＡＮＤゲートＡＧ０が、最上位ビット位置に対応する。
【０１０６】
この図１１に示す構成の場合、大小判定フラグＧＴ０−ＧＴｍにおいて上位の大小判定フラグＧＴがＬレベルとされると、次段以降のの大小判定フラグＧＴの論理レベルにかかわらず、最終段のＡＮＤゲートＡＧｍからのメイン大小判定フラグＧＴＭは、Ｌレベルに固定され、サーチデータが、記憶データよりも大きいことが示される。
【０１０７】
エントリデータとサーチデータの一致は、各サブエントリからの一致指示フラグＭＴが、全て一致を示すＬレベルのときに、最終の一致フラグをＨレベル（“１”）に設定する。ＮＯＲゲートを利用することにより、全一致指示フラグＧＴ０−ＧＴｍに従って、最終一致フラグを生成することが出来る。
【０１０８】
また、サーチデータが記憶データよりも小さいことを識別する場合には、この最終のメイン大小判定フラグＧＴＭおよび最終の一致指示フラグ（一致指示フラグの否定論理和）ＭＴがともにＨレベルのときに、このサーチデータが記憶データよりも小さいと判別される。または、図１１に示す構成において、ＡＮＤゲートに代えてＯＲゲートを用い、初段のＯＲゲートの第１の入力に電源電圧に代えて接地電圧を供給する。
【０１０９】
以上のように、各ＸＯＲ回路において各ビット単位での大小判定を行なう回路構成を設けることにより、この各サブアレイ単位でデータビットの記憶データとの大小判定を行なうことができ、応じてエントリデータ列とサーチデータ列との大小を判定することができる。この場合、複数のエントリに対応して大小判定回路が配置されるだけであり、各セルに対して大小判定部を設ける構成に比べて、占有面積を低減することが出来る。また、一致線および大小検出線も複数のエントリに共通に設けられており、充放電電流を低減することが出来る。また、サブエントリ単位で一致および大小判定を行ない、その後、各サブエントリの判定結果を論理ゲートを用いて合成して最終の判定結果（一致、大小判定結果）を生成している。従って、マッチ線または大小検出線をエントリ全体にわたって配置して充放電を行なう構成に比べて、高速で判定結果を生成することが出来る。
【０１１０】
［デコーダの構成］
各オクテット単位において、マスクビットは、本発明においては４ビットであり、従って、１６通りのマスク情報の書込に制限される。通常、ＣＡＭにおいては、各ユニットセルにマスクビットが格納されるため、オクテットに対し、２５６通りのマスク情報を書込むことができる。このため、デコーダの構成として、マスクビットパターンの低減が可能かを考える。ＴＣＡＭの代表的な用途として、アドレス検索、たとえばＩＰアドレスのフォワーディングがある。このＩＰアドレスのフォワーディングにおいては、最長一致検索ルールに従ってアドレス経路検索が行なわれる。
【０１１１】
図１２に示すように、１つのＩＰアドレスは、例１に示すように、３２ビットで表わされ（ＩＰｖ４（インターネットバージョン４）の場合）、有効ビットに対しては、マスクビットが“１”に設定される。この場合、オクテットごとに、ピリオドで区切り、各ＩＰアドレスを十進数で示し、／以降に、有効ビット数を示す。図１２においては、一例として、ＩＰアドレスが１０．１．３．７／２７の場合が示される。
【０１１２】
このＩＰアドレスを、２進数表示をした場合、図１２のＩＰアドレスで示すように、第１オクテット部、第２オクテット部、第３オクテット部、および第４オクテット部に分類され、それぞれ十進数で１０、１、３、および７が格納される。この第４オクテット部において、５ビットのマスクビットが“０”に設定される。このマスクビットの配置については、必ず下位ビットから順番に“０”に設定されるというＩＰアドレスのアプリケーション特有のルールが設けられる。したがって、オクテット単位でのマスクを行なう場合、「１１１１１１１１」から「００００００００」までの９通りのビットパターンに対するマスクビットが準備されればよい。ここで、図１２においては、内部マスク＜７：０＞が、オクテットデータに対するマスクビットを示し、マスクビット＜３：０＞が、マスクセルに格納されるビットである。
【０１１３】
また、ＴＣＡＭの別の代表的なアプリケーションとして、アクセスコントロールリスト（ＡＣＬ）がある。このＡＣＬにおいては、基本的には、送信元のＩＰアドレスおよびＴＣＰポート番号などの組合せにより、パケットの廃棄処理が実行される。このため、これらの組合せ数に相当するエリアをマスクする機能が設けられていれば十分である。本実施の形態においては、オクテット単位で、エントリがサブエントリに分割される。したがって、８ビット単位でのエリアマスクはすでに可能である。図１２に示すように、さらに、２ビットのエリアマスクを行なう３種類のパターン、および４ビットのエリアマスクを行なう４種類のビットパターンを追加すれば、ＡＣＬ用途には十分対応可能と考えられる。
【０１１４】
一方、図１３に示すようなアドレスに対するマスクは、本発明のアプリケーション上において発生することはほとんどないと考え、このようなマスクビット“０”および“１”が混在するマスクビットパターンは考える必要がないとする。したがって、４ビットマスクを用いてオクテット記憶データをマスクすることにより、エントリのメモリセル数を３／４（＝１２／１６）に低減することができる。
【０１１５】
図１４は、比較／論理処理ユニットＣＬＵの配置を概略的に示す図である。図１４においては、この比較／論理処理ユニットＣＬＵに対応して設けられるセンスアンプユニットＳＡＵの配置も併せて示す。
【０１１６】
図１４において、データ記憶セルＣＥＬ０＜７：４＞、マスクセルＣＥＬ１＜３：０＞およびデータ記憶セルＣＥＬ０＜３：０＞に対応して、センスアンプＳＡ１１−ＳＡ０が配置され、それぞれビット線対を介して与えられる記憶データビットを増幅する。センスアンプＳＡ７−ＳＡ４に対応してデコーダＤＥＣが配置され、デコーダＤＥＣの両側に、ＸＯＲ回路群ＸＲＬ＜７：４＞およびＸＲＬ＜３：０＞が配置される。ここで、ＸＯＲ回路群ＸＲＬ＜７：０＞は、図３に示すＸＯＲ回路ＸＲＬ７−ＸＲＬ０を示す。
【０１１７】
デコーダＤＥＣからの上位マスク指示信号ＭＡＳＫ＜７：４＞がＸＯＲ回路群ＸＲＬ＜７：４＞へ与えられ、この下位の４ビットマスク指示信号ＭＡＳＫ＜３：０＞が、ＸＯＲ回路群ＸＲＬ＜３：０＞へ与えられる。
【０１１８】
このＸＯＲ回路群ＸＲＬ＜７：４＞には、サーチ線ＳＬ＜７：４＞を介してサーチデータビットが与えられ、ＸＯＲ回路群ＸＲＬ＜３：０＞へは、サーチ線ＳＬ＜３：０＞を介してサーチデータビットが与えられる。
【０１１９】
図１５は、図１４に示すデコーダＤＥＣの構成の一例を概略的に示す図である。図１５においては、デコーダＤＥＣは、８ビットのマスクデータＭＡＳＫ＜７：０＞をそれぞれ格納するレジスタＲＥＧ１５−ＲＥＧ０と、センスアンプＳＡ７−ＳＡ４からの出力信号ＳＡ＜７：４＞を介して与えられるマスクセルＣＥＬ１＜３：０＞からのデータを受けてレジスタを選択するレジスタ選択回路ＲＧＳＥＬを含む。
【０１２０】
このレジスタ選択回路ＲＧＳＥＬにより選択されたレジスタの記憶データの上位マスクデータＭＡＳＫ＜７：４＞が、マスク指示信号としてＸＯＲ回路群ＸＲＬ＜７：４＞へ与えられる、この下位マスクデータＭＡＳＫ＜３：０＞が、マスク指示信号としてＸＯＲ回路群ＸＲＬ＜３：０＞へ与えられる。
【０１２１】
この図１５に示すデコーダＤＥＣは、通常の、レジスタファイルと同様の構成を備える。レジスタＲＥＧ１５−ＲＥＧ０に、図１２に示す内部マスクに対応するマスクデータＭＡＳＫ＜７：０＞を格納する。レジスタ選択回路ＲＧＳＥＬにより、センスアンプＳＡ７−ＳＡ４からのデータに従って１つのレジスタを選択する。これにより、４ビットのマスクセルからのマスクデータに従って、８ビットのマスク指示信号を生成することができる。
【０１２２】
なお、このデコーダＤＥＣは、４つのセンスアンプＳＡ７−ＳＡ４に対応する領域に配置される。したがって、レジスタＲＥＧ１５−ＲＥＧ０を、各列に４つのレジスタが配置され、このレジスタ列を４列設ける。レジスタ列を、上位のマスクセルＣＥＬ１＜３：２＞の記憶データに従って選択し、選択レジスタ列において下位のマスクセルＣＥＬ１＜１：０＞の記憶データに従って１列の４つのレジスタから１つのレジスタを選択する。これにより、４つのセンスアンプＳＡ７−ＳＡ４の配置領域に対応して、１６ワードを記憶するレジスタファイルで構成されるデコーダＤＥＣを、十分に余裕を持って配置することができる。
【０１２３】
このデコーダＤＥＣからのマスク指示信号ＭＡＳＫ＜７：４＞およびＭＡＳＫ＜３：０＞に従って、記憶回路群ＸＲＬ＜７：４＞およびＸＲＬ＜３：０＞は、サーチ線ＳＬ＜７：４＞およびＳＬ＜３：０＞上のサーチデータとセンスアンプからのデータ＜７：４＞および＜３：０＞の一致判定および／または大小判定を実行する。
【０１２４】
［デコーダの変更例］
図１６は、デコーダＤＥＣの変更例のデコード論理を一覧にして示す図である。４ビットマスクセルＣＥＬ１＜３：０＞において、下位２ビットのマスクセルＣＬ＜１：０＞が“１０”のときには、上位の４ビットマスク指示信号（マスクデータ）ＭＡＳＫ＜７：４＞を“１１１１”に設定し、この上位２ビットマスクセルＣＬ＜３：２＞の値が低減するにつれ、下位４ビットマスク指示信号ＭＡＳＫ＜３：０＞の０の数を下位ビット側から順次増大させる。これは、最長一致検索の場合、マスクは、下位ビット側から順にかけられることを利用する。
【０１２５】
下位２ビットマスクセルＣＥＬ１＜１：０＞の記憶データが“０１”のときには、下位４ビットマスク指示信号ＭＡＳＫ＜３：０＞を、“００００”に固定する。上位４ビットマスク指示信号ＭＡＳＫ＜７：４＞の０の数を、上位２ビットマスクセルＣＥＬ１＜３：２＞の記憶する値に応じて変化させる。この場合、上位２ビットマスクセルＣＬ＜３：２＞の記憶値が“１０”、“０１”、“００”、および“１１”に変化するにつれて、上位４ビットマスク指示信号ＭＡＳＫ＜７：４＞における０の数を下位ビット側から順に増大させる。
【０１２６】
下位２ビットマスクセルＣＥＬ１＜１：０＞の記憶データが“１１”の場合には、８ビットマスク指示信号ＭＡＳＫ＜７：４＞および４ビットマスク指示信号ＭＡＳＫ＜３：０＞を、それぞれ“１１１１”および“００００”に設定する。
【０１２７】
図１７は、図１６に示すデコード論理を実現するデコーダＤＥＣの構成の一例を概略的に示す図である。図１７においては、３段のマルチプレクサが設けられる。初段のマルチプレクサ３０は、下位２ビットのマスクセルＣＥＬ１＜１，０＞の記憶値に従って、“１１１１”および“００００”のうちの１つを選択する。このマルチプレクサ３０は、マスクセルＣＥＬ１＜１，０＞の記憶するビット値が“１０”のときには、“１１１１”を選択し、このビット値が、“０１”のときには、“００００”を選択する。このマルチプレクサ３０は、下位２ビットマスクセルＣＥＬ１＜１，０＞の記憶値が“１１”のときには、選択は行なわず、その出力は不定状態となる（以下に説明するように、この不定状態は何ら問題とならない）。
【０１２８】
２段目のマルチプレクサ３１は、上位２ビットマスクセルＣＥＬ１＜３，２＞の記憶値に従って、マルチプレクサ３０の出力ビット、“１１１０”、“１１００”、および“１０００”のうちの１つを選択する。このマルチプレクサ３１においては、上位２ビットのマスクセルＣＥＬ１＜３，２＞の記憶ビット値が、“１１”以外の場合、図１６に示すように、下位マスク指示信号ＭＡＳＫ＜３：０＞と上位マスク指示信号ＭＡＳＫ＜７：４＞のパターン配列が、同じとなることを利用する。
【０１２９】
３段目においては、２つのマルチプレクサ３２および３３が並列に設けられる。マルチプレクサ３２は、１ビットのマスクセルＣＥＬ１＜１＞の記憶ビット値に従って、“１１１１”およびマルチプレクサ３１の出力ビットＭＴＭＰ＜３：０＞の一方を選択して、上位４ビットマスク指示信号ＭＡＳＫ＜７：４＞を生成する。マルチプレクサ３３は、最下位マスクセルＣＥＬ１＜０＞のビット値に従って、“００００”およびマルチプレクサの出力ビットＭＴＭＰ＜３：０＞の一方を選択し、下位４ビットマスク指示信号ＭＡＳＫ＜３：０＞を生成する。
【０１３０】
これらのマルチプレクサ３２および３３は、図１６に示すように、マスクセルＣＥＬ１＜１＞と記憶ビット値が“１”のときには、上位４ビットマスク指示信号ＭＡＳＫ＜７：４＞が“１１１１”となり、最下位マスクセルＣＥＬ１＜０＞の記憶ビット値が“１”のときには、下位４ビットマスク指示信号ＭＡＳＫ＜３：０＞が、“００００”となることを利用する。
【０１３１】
この図１７に示すデコーダＤＥＣの構成の場合、マスクセルＣＥＬ１＜１，０＞の記憶ビット値が“１１”の場合に、マルチプレクサ３０の出力データは不定状態となる。しかしながら、この場合、最終段のマルチプレクサ３２および３３は、それぞれ“１１１１”および“００００”を選択するため、マルチプレクサ３０の出力信号の不定状態は、何らマスク指示信号ＭＡＳＫ＜７：０＞の論理値に対し悪影響を及ぼさない。
【０１３２】
このデコーダＤＥＣにおいて、マルチプレクサ３０−３３各々へ与えられる選択対象のビットパターンは、たとえばレジスタに格納される。マルチプレクサが３段設けられていても、これらのマルチプレクサ３０−３３は、単に、トランスミッションゲートで構成されるだけであり、この伝搬遅延は十分に小さくすることができ、ＸＯＲ回路群（一致検出回路群）ＸＲＬ＜７：０＞における比較判定（一致判定および大小判定）の処理に対して確実にマスクをかけることができる。
【０１３３】
この図１６および図１７に示すデコーダＤＥＣの構成の場合、ＡＣＬ制御用途よりもＩＰアドレスのフォワーディング用途に利用する。この図１７に示すデコーダの場合のＸＯＲ回路においては、以下に示すように、３値の一致判定が行なわれる。
【０１３４】
図１８は、この発明の実施の形態１の変更例に従うＣＡＭの要部の構成を概略的に示す図である。この図１８に示す構成においては、図１６および図１７に示すデコーダからのマスク指示信号ＭＡＳＫ＜７＞−ＭＡＳＫ＜０＞に従って、一致検出動作に対するマスクが選択的にかけられる。
【０１３５】
図１８においては、１つのサブエントリのデータ記憶セルＣＥＬ０＜７：０＞に対応するビット線対ＢＬ＜７＞，／ＢＬ＜７＞−ＢＬ＜０＞，／ＢＬ＜０＞を示す。これらのビット線対ＢＬ＜７＞，／ＢＬ＜７＞−ＢＬ＜０＞，／ＢＬ＜０＞各々に対応してセンスアンプＳＡＡ７−ＳＡＡ０が設けられる。これらのセンスアンプＳＡＡ７−ＳＡＡ０各々に対応して、一致検出を行なうＸＯＲ回路ＸＲＲ７−ＸＲＲ０が設けられる。
【０１３６】
これらのＸＯＲ回路ＸＲＲ７−ＸＲＲ０の各々は、互いに直列に接続されるＮチャネルＭＯＳトランジスタＴＲ０およびＴＲ１と、互いに直列に接続されるＭＯＳトランジスタＴＲ２およびＴＲ３を含む。ＭＯＳトランジスタＴＲ０，ＴＲ２は、ゲートに対応のビット線ＢＬｉ、／ＢＬｉからセンスアンプを介して与えられる相補な出力信号を受け、ＭＯＳトランジスタＴＲ１，ＴＲ３は、それぞれのゲートがサーチ線／ＳＬ，ＳＬに結合される。ＭＯＳトランジスタＴＲ０およびＴＲ２は、マッチＭＬに並列に結合される。
【０１３７】
これらのＸＯＲ回路ＸＲＲ７−ＸＲＲ０に対し、それぞれマスク指示信号ＭＡＳＫ＜７＞−ＭＡＳＫ＜０＞をゲートに受けるマスクトランジスタＴＲＭ７−ＴＲＭ０が設けられる。これらのマスクトランジスタＴＲＭ７−ＴＲＭ０の各々は、ＮチャネルＭＯＳトランジスタで構成される。マスクトランジスタＴＲＭ７−ＴＲ０の各々は、対応のＸＯＲ回路ＸＲＲ７−ＸＲＲ０のＭＯＳトランジスタＴＲ１およびＴＲ３の共通ソースノードに結合される。
【０１３８】
この図１８に示す構成において、マスク指示信号ＭＡＳＫ＜ｉ＞（ｉ＝０−７）が“１”のときには、対応のマスクトランジスタＴＲＭｉがオン状態となり、対応のＸＯＲ回路ＸＲＲｉは、一致判定動作を行ない、サーチデータビットとデータ記憶セルからの記憶データビットとが不一致のときには、２つのトランジスタの直列体において１つの直列体が導通状態となり、マッチ線ＭＬを放電する。ここで、ビット線ＢＬに結合されるＭＯＳトランジスタと補のサーチ線／ＳＬに結合されるＭＯＳトランジスタとが、直列に接続され、ビット線／ＢＬに結合されるＭＯＳトランジスタとサーチ線ＳＬに結合されるＭＯＳトランジスタとが直列に接続されている。
【０１３９】
一方、対応のマスク指示信号ＭＡＳＫ＜ｉ＞が“０”のときには、対応のマスクトランジスタＴＲＭｉはオフ状態であり、対応のＸＯＲ回路ＸＲＲｉは、判定動作を行なわず、マッチ線ＭＬのプリチャージ電位には何ら影響を及ぼさない。
【０１４０】
上述のように、この図１８に示す構成を利用することにより、この発明に従うＣＡＭを、３値判定を行なうＴＣＡＭとして利用することができる。
【０１４１】
［ＣＡＭの変更例］
図１９は、この発明の実施の形態１に従うＣＡＭの変更例の構成を概略的に示す図である。この図１９に示すＣＡＭの構成は、以下の点で、図１８に示すＴＣＡＭ（３値ＣＡＭ）の構成と異なる。すなわち、ＸＯＲ回路ＸＲＲ７−ＸＲＲ０に対し、マスクトランジスタＴＲＭ７−ＴＲＭ０は、設けられない。これらのＸＯＲ回路ＸＲＲ７−ＸＲＲ０各々において、ＭＯＳトランジスタＴＲ１およびＴＲ３のソースノードは接地ノードに結合される。この図１９に示すＣＡＭの他の構成は、図１８に示すＴＣＡＭの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１４２】
図１９に示すＣＡＭの構成の場合、ＸＯＲ回路ＸＲＲ７−ＸＲＲ０は、対応のデータ記憶セルからのデータビットとサーチ線ＳＬを介して伝達されるサーチデータビットとの一致／不一致を判定する。これらのＸＯＲ回路ＸＲＲ７−ＸＲＲ０は、２値判定を行なうだけであり、この図１９に示すＣＡＭにより、小占有面積かつ低消費電力の２値ＣＡＭを実現することができる。
【０１４３】
図２０は、この発明に従う内容参照メモリの構成要素と従来の内容参照メモリの構成要素の数の対比を一覧にして示す図である。図２０において、エントリ数♯Ｎとデータビットの数（ビットｂ：）の積それぞれに対する構成要素の数、すなわちデータ記憶セルＣＥＬ０、マスクビットセルＣＥＬ１、および比較器（一致検出回路）ＸＯＲの数および構成要素の合計数を示す。
【０１４４】
従来例においては、各ＣＡＭセルにおいて、データビットとマスクビットとを記憶するセルＣＥＬ０およびＣＥＬ１が配置され、また各ＣＡＭセルに対し比較器（ＸＯＲ回路）が配置される。したがって、各ＣＡＭの容量値に応じた数の構成要素が必要とされる。
【０１４５】
一方、本発明に従えば、マスクセルの数は、データを記憶するセルの数の１／２倍であり、比較器（ＸＯＲ回路）は、全エントリに対し共通に設けられる。したがって、このＸＯＲ回路（比較回路）の数は、１エントリのビット幅に等しい。したがって、合計の要素数は、従来例の構成に比べて大幅に低減することができ、構成要素の数を約半分にまで低減することができ、大幅に占有面積を低減することができる。
【０１４６】
また、サーチ線は、各比較器（ＸＯＲ回路）まで繋がるだけであり、複数のエントリに対してはサーチ線は配設されない。したがって、サーチ線の充放電電流を大幅に低減することができる。また、マッチ線を利用して、一致／不一致を判定する場合、このマッチ線も複数のエントリに１つ設けられるだけであり、マッチ線の充放電電流も大幅に低減される。これにより、低消費電流でかつ小占有面積のＣＡＭを実現することができる。
【０１４７】
図２１は、この発明の実施の形態１に従う内容参照メモリの全体の構成を概略的に示す図である。図２１において、ＣＡＭアレイ５０は、複数のＣＡＭブロックＣＢ００−ＣＢ０ｎ…ＣＢｋ０−ＣＢｋｎに分割される。ＣＡＭブロックＣＢ００−ＣＢ０ｎ…ＣＢｋ０−ＣＢｋｎの各々は、同一構成を有するため、図２１においては、ＣＡＭブロックＣＢ０ｎの構成要素に参照番号を付す。
【０１４８】
ＣＡＭブロックＣＢ０ｎは、ＳＲＡＭセルが行列状に配列されるサブメモリアレイ５５と、与えられたデータに従ってサーチ線を駆動するサーチ線駆動回路５６と、与えられたアドレス信号に従ってサブメモリアレイ５５のエントリを選択するアドレスデコーダ５７とを含む。サブメモリアレイ５５は、図１に示すメモリアレイ１に対応する。
【０１４９】
サブメモリアレイ５５においては、各エントリに対応してワード線が配置され、各エントリのビットに対応してビット線対が配置される。これは、先に図１を参照して説明したメモリアレイ１の構成と同じである。このサブメモリアレイ５５に対してセンスアンプ回路１１Ｂおよび比較／論理処理回路１５Ｂが設けられる。センスアンプ回路１１Ｂは、選択されたエントリのデータ記憶セルおよびマスクセルの記憶データを検知し増幅するとともに、対応のサブメモリアレイ５５の選択メモリセルへのデータ書込を行なう（書込回路は示していない）。
【０１５０】
このセンスアンプ回路１１Ｂの構成も、先の図３において示した構成と同じである。比較／論理処理回路１５Ｂは、比較回路（ＸＯＲ回路）およびデコード回路を含み、この比較／論理処理回路１５Ｂに含まれる論理処理ユニットＣＬＵの構成も、先の図３から図１５において示した構成と同じである。
【０１５１】
これらのＣＡＭブロック群に対し、ローカルアドレス／データ線ＡＤＬ０−ＡＤＬｋが設けられる。ローカルアドレス／データ線ＡＤＬ０−ＡＤＬｋは、共通にメインアドレス／データ線ＭＡＤＬに結合される。
【０１５２】
ここで、このアドレス／データ線ＡＤＬ０−ＡＤＬｋには、アドレス信号およびデータ（書込データおよびサーチデータ）が転送される。
【０１５３】
また、横方向に整列するＣＡＭブロックＣＢｉ−ＣＢｉｎ（ｉ＝０−ｋ）に共通に、ローカルサーチ結果線ＳＲｉが配置される。これらのＣＡＭブロック列それぞれに対応して配置されるローカルサーチ結果線ＳＲ０−ＳＲｋへは、それぞれ対応のＣＡＭブロックからのサーチ結果を示す信号が並列に伝達される。これらのローカルサーチ結果線ＳＲ０−ＳＲｋは、共通にメインサーチ結果線ＭＳＲに結合される。
【０１５４】
このＣＡＭアレイ５０に対し、データの書込および検索動作を行なうために、アドレス／データ入力回路６３、命令入力回路６４、およびクロック入力回路６５が設けられる。クロック入力回路６５は、クロック端子６２からのクロック信号ＣＬＫに同期して内部クロック信号を生成し、このＣＡＭにおける内部動作サイクルを規定する各種信号を生成する。アドレス／データ入力回路６３は、アドレス／データ入力端子６０からのアドレス信号およびデータを、クロック入力回路６５からのクロック信号に同期して取込み、内部のアドレス信号およびデータを生成する。命令入力回路６４は、クロック入力回路６５からの内部クロック信号に従って命令入力端子６１からの命令ＩＮＳＴを受けてデコードする。
【０１５５】
図２１に示すように、ＣＡＭアレイ５０においては、複数のＣＡＭブロックが設けられており、各ＣＡＭブロックにおいてサーチ動作が実行される。この場合、ＣＡＭブロックＣＢ００−ＣＢ０ｎからＣＢｋ０−ＣＢｋｎにおいて、サブメモリアレイ５５から１つのエントリを選択する必要がある。サブメモリアレイ内において１つのエントリを選択するために、プリサーチ回路６７が設けられる。このプリサーチ回路６７は、データ書込時においては、アドレス／データ入力回路６３からのアドレス信号に従って、アドレス信号をプリデコードし、このプリデコードアドレス信号を、ＣＡＭブロックＣＢ００−ＣＢｋｎへ与える。選択されたＣＡＭブロックにおいてワード線が選択され（アドレスデコーダ５７による）、対応のメモリセル（データ記憶セルおよびマスクセル）にデータの書込が実行される。
【０１５６】
サーチ動作時においては、プリサーチ回路６７は、このアドレス／データ入力回路６３からのパケットデータに含まれる所定のデータ（これを特徴データと以下称す）をデコードし、各ＣＡＭブロックＣＢ００−ＣＢ０ｎ−ＣＢｋ０−ＣＢｋｎに対しこのプリサーチにより検出された特徴データに対応するエントリを指定する信号を生成する。
【０１５７】
このＣＡＭの内部動作を制御するために、制御回路６６が設けられ、この制御回路６６は、クロック入力回路６５からの内部クロック信号および命令入力回路６４からの動作モード指示に従ってプリサーチ回路６７およびＣＡＭアレイ５０の内部動作を制御する。この制御回路６６により、先に示したセンスアンプ活性化信号ＳＡＥＮ等の各種制御信号が生成される。
【０１５８】
ＣＡＭは、さらに、プライオリティエンコーダ７０と、プライオリティエンコーダ７０の出力信号を受けるサーチ結果出力回路７２を含む。このプライオリティエンコーダ７０は、ＣＡＭブロックＣＢ００−ＣＢ０ｎからＣＢｋ０−ＣＢｋｎにおいて複数のＣＡＭブロックから同一の判定処理信号（一致または大小判定結果指示信号）が出力された場合、最も優先順位の高いＣＡＭブロックのエントリ（たとえばアドレスの小さなＣＡＭブロックのエントリ）のサーチ結果を選択し、この選択されたＣＡＭブロックのエントリのアドレスを示すエントリアドレスインデックスを生成する。サーチ結果出力回路７２は、このプライオリティエンコーダ７０の出力するアドレスインデックスを受けて、サーチ結果出力端子７４から出力する。
【０１５９】
このサーチ結果出力端子７４からのアドレスインデックス等に従って、次ホップ先アドレスの読出または対応のパケットの転送の許可／拒否の処理が実行される。
【０１６０】
この場合、サーチ結果出力回路７２は、プライオリティエンコーダ７０からの最も優先順位の高いエントリを示すＣＡＭブロックアドレスを特徴データとともに受け、そのアドレスおよび特徴データの組合せに対応するインデックスを出力するように構成されてもよい。たとえば、サーチ結果出力回路７２をメモリで構成し、プライオリティエンコーダ７０からのエントリ指示アドレス（ＣＡＭアドレスおよび特徴データの組合せ）に従って対応の記憶内容を出力する。
【０１６１】
このプリサーチ回路６７を利用して、サーチ動作時において、ＣＡＭブロックＣＢ（ＣＢ００−ＣＢ０ｎからＣＢｋ０−ＣＢｋｎを総称的に示す）において１つのエントリを予め選択する。これにより、各ＣＡＭブロックＣＢにおいて、複数のエントリが並行に選択される状態を回避することが出来、確実に、サーチ動作を行なうことができる。以下、サーチ動作におけるプリサーチ回路６７のプリサーチについて説明する。
【０１６２】
ルータおよびファブリックスイッチなどのインターネット用途においては、サーチデータは、ＩＰアドレスである。ＬＡＮ（ローカル・エリア・ネットワーク）において、このネットワーク内の処理端末に対しては、プライベートＩＰアドレスが割当てられる。このプライベートＩＰアドレスは、通常、クラスと呼ばれる特徴により分類される。
【０１６３】
図２２は、このサーチデータにより検索される検索対象のＩＰアドレス、すなわち各ＣＡＭブロックに配置されるエントリの記憶データのリストを示す図である。図２２において、エントリアドレス♯０から順に、検索対象データの３２ビットＩＰアドレスを格納する。ＩＰアドレスは、各オクテット単位で、十進数をピリオドで区切り、有効ビット長を／の後に記述する。このクラスは、第１オクテットの値により規定され、このクラスにより、ネットワークアドレスの長さおよびホストアドレスの長さが規定される。
【０１６４】
図２２に示すように、エントリアドレス♯０から♯９においては、この第１オクテットの値が“１０”であり、エントリアドレス♯５０から♯５２および…においては、第１オクテットの値は“１２７”である。さらに、エントリアドレス♯１００以降においては、第１オクテットの値は、“１９１”である。従って、これらの第１オクテットの値によりクラスが、たとえばクラスＡ−Ｃ等に分類される。
【０１６５】
この図２２に示すリストにおいては、エントリアドレス♯０から♯６においては、同じプレフィックスデータ“１０．１．１．１”が記述される。これらのエントリアドレス♯０から♯６においては、有効ビット長が異なる。有効長の長いもの（／の次の数字により示される）は、小さなアドレス位置に記述し、有効長の短いものをアドレスの大きい位置に記述する。このエントリに対するＩＰアドレスの記述法則は、最長一致検索を考慮したプレフィックスデータの配置である。たとえば、検索データとしてデータ“１０．１．１．１”が入力される場合、ＴＣＡＭエントリアドレス♯０から♯６においてすべて一致比較により一致が検出され、多重ヒット状態となる。この場合、最も有効長の長いプレフィックスデータを出力するのが最長一致検索ルールである。このため、プライオリティエンコーダ７０（図２１参照）により、一致したエントリのアドレスのうち最も小さな値のエントリアドレスを選択する。これにより、有効長の最も長い一致データを検索することができ、エントリアドレス♯０を、所望の最終サーチ結果として得ることができる。
【０１６６】
サーチデータが、“１０．１．１．２”の場合、エントリアドレス♯１から♯６において一致が検出されるため、この場合、エントリアドレス♯１が、最終サーチ結果として出力される。
【０１６７】
この図２２に示すように、ＩＰアドレスにおいては、第１オクテットにおいて、アドレス分類を示す特徴データが配置される。この図２２に示す例においては、エントリアドレス♯０から♯９までは、第１オクテットがすべて“１０（十進数）”である。同様、エントリアドレス♯５０から♯５２は、第１オクテットがすべて“１２７（十進数）”であり、またエントリアドレス♯１００から♯１０５は、第１オクテットがすべて“１９１（十進数）”である。プレフィックスデータの特徴データ（たとえば図２２においては第１オクテットのデータ）による検索対象データのグループ化を、プリサーチと称す。このプレフィックスデータ全体を検索する前に、特徴データ（たとえば第１オクテットデータ）により、実際の検索対象となるエントリの数のふるい落とし（例えば１／３２のふるい落とし）を実行し、ＣＡＭアレイ５０内において部分的な領域での検索を実行する。
【０１６８】
なお、このＩＰアドレスの第１オクテットをサーチデータとしてプリサーチする場合に限定されず、この検索対象データを、ある特徴データによりグループ化可能な場合、その特徴データに従って分離すればよい。たとえば、図２２においては、エントリアドレス♯０から♯９は第２オクテットが“１（十進数）”であり、エントリアドレス♯５０から♯５２は、第２オクテットが“２５１（十進数）”であり、エントリアドレス♯１００から♯１０５の第２オクテットは“１００（十進数）”である。したがって、この第２オクテットを基に検索対象データのグループ化を行ない、この第２オクテットの値によりプリサーチを行なってもよい。以下においては、この第１オクテットによるグルーピングの場合について説明する。
【０１６９】
図２３は、このＣＡＭアレイ５０におけるＣＡＭブロックにおける各検索対象データのＣＡＭブロック内の配置を概略的に示す図である。図２３においては、ＣＡＭブロックとして、ＣＡＭブロックＣＢａおよびＣＢｂを代表的に示す。このＣＡＭブロックＣＢａおよびＣＢｂのサブアレイ５５には、同一特徴データ（第１オクテットデータ）を有し、有効プレフィックス長が異なるデータ（ＩＰアドレス）を格納する。したがって、たとえば第１オクテットが“１０（十進数）”のデータについては、ＣＡＭブロックＣＢａのワード線アドレスＷＬ♯０に、データ“１０．１．１．１／３２”を格納し、またＣＡＭブロックＣＢｂのワードアドレスＷＬ♯２５６においては、データ“１０．１．１．１／３０”を格納する。ワード線ＷＬ♯０およびＷＬ♯２５６に対し、同一ワード線アドレスを割当てる。プリサーチ回路６７に、特徴データの第１オクテットデータが“１０（十進数）”であるサーチデータが与えられた場合、対応のワード線アドレスを生成する。プリサーチにより生成されたワード線アドレスに従って、ＣＡＭブロックＣＢａおよびＣＢｂにおいて、ワード線ＷＬ♯０およびＷＬ♯２５６を選択状態へ駆動して、比較および論理処理を実行する。このＣＡＭブロックＣＢａおよびＣＢｂに対して、有効プレフィックス長の順位を付ける。ＣＡＭブロックを指定するブロックアドレスの最も小さな値のＣＡＭブロックからの一致検出信号に従って、プライオリティエンコーダ７０により、一致検索結果に対応するアドレスインデックスを生成することができる（プリサーチされた特徴データを組合わせることにより、一致検索エントリを識別することが出来る）。
【０１７０】
特徴データの種類が、ＣＡＭブロックＣＢａおよびＣＢｂのワード線の数より多い場合には、別のＣＡＭブロックに拡張する。図２１に示すＣＡＭブロックＣＢ００−ＣＢ０ｎからＣＢｋ０−ＣＢｋｎにおいて、特徴データ（第１オクテットデータ）が“１０（十進数）”のサーチデータが与えられた場合、生成されたワード線アドレスに従って，ＣＡＭブロックＣＢにおいて１つのエントリが選択され、内部の局所的な部分において、ＣＡＭブロックにおいて一致／不一致などの検索操作が実行される。この場合、この特徴データを含まない検索対象データのみを記憶するＣＡＭブロックにおいては、検索動作は実行されない。この場合、消費電力がさらに低減される。
【０１７１】
たとえば、図２３において、サーチデータが“１０．１．１．１”が、アドレス／データ入力回路６３からプリサーチ回路６７へ与えられると、プリサーチ回路６７において、この特徴データの第１オクテットデータ“１０”を抽出して、デコードする。この場合、プリサーチ回路６７において、予め、特徴データとワード線アドレスの対応テーブル等が準備され、このテーブルを参照してワード線アドレスが生成される（ＣＡＭブロック指定信号が含まれても良い）。デコードにより、ワード線ＷＬ♯０およびワード線ＷＬ♯２５６を指定する共通のワード線アドレスを生成し（たとえばＣＡＭブロック内のローカルワード線アドレスが“０”）、ＣＡＭブロックＣＢａおよびＣＢｂのアドレスデコーダ５７へ与える。この場合、特徴データが複数のＣＡＭブロックのうちの少数のＣＡＭブロック内において格納されている場合には、プリサーチ回路６７において、この特徴データ（第１オクテットデータ）に従ってＣＡＭブロックを特定するブロックアドレス（またはＣＡＭブロックをイネーブルするブロック選択信号）もワード線アドレスとともに生成する。
【０１７２】
このプリサーチ回路６７としては、単に、クロック信号に同期して入力されるパケットデータのヘッダ部に含まれるＩＰアドレスの第１オクテットデータを抽出してデコードするデコード回路が用いられればよい。または、特徴データとワード線アドレス／ＣＡＭブロック指定アドレスとの対応がレジスタファイルに格納され、このレジスタファイルの内容が特徴データに従って読出されても良い。
【０１７３】
したがって、上述のように、例えばワード線ＷＬ♯０およびＷＬ♯２５６が選択された場合、このサーチ要求データに対し、ＣＡＭブロックＣＢａおよびＣＢｂは、一致判定を行ない、一致指示信号を生成する。両者が一致を示す場合、ＣＡＭブロックＣＢａのブロックアドレスが、ＣＡＭブロックＣＢｂのブロックアドレスよりも小さいため、ＣＡＭブロックＣＢａの一致検出が優先され、この特徴データとＣＡＭブロックを特定するブロックアドレスとに従って選択エントリの全エントリ内の位置が指定され、次のフォワーディング先を示すために用いられるアドレスインデックスが、プライオリティエンコーダにより生成される。
【０１７４】
以上のように、このプリサーチ回路６７で抽出される特徴データ（第１オクテットデータ）を利用することにより、多重ヒット時においても、一致したエントリアドレスを識別して、次のホップ先アドレスを検出するためのアドレスインデックを生成することができる。
【０１７５】
このＴＣＡＭにおいては、特徴データに従って、検索対象データを各ＣＡＭブロックに分散して配置することが要求される。すなわち、従来のＣＡＭと異なり、本発明のＣＡＭにおいては、複数のエントリに共通にセンスアンプ回路が設けられており、２以上のエントリを並行して選択した場合、メモリセルの読出データの消失が生じ、正確な検索を行なえない。次に、このＣＡＭアレイに格納する検索対象データの書込のメンテナンスについて説明する。
【０１７６】
図２４は、この発明に従うＴＣＡＭを利用するネットワーク機器内のパケット・プロセシング・ユニットの全体の構成を概略的に示す図である。図２４において、パケット・プロセシング・ユニット９０は、インターネット（たとえばイーサネット（登録商標））の伝送路に結合されるメディア・アクセス・ユニットＭＡＵと、各々プロトコル層に応じて配置される物理層ユニットＰＨＹ、メディア・アクセス・コントロール・ユニットＭＡＣおよびリンク層ユニットＬＩＮＫを含む。
【０１７７】
メディア・アクセス・ユニットＭＡＵは、このインターネットの伝送路に対するインターフェイスの機能を有する。物理層ユニットＰＨＹは、インターネットに対する物理的接続部であり、メディア・アクセス・ユニットＭＡＵからの光信号を電気信号に変換する。メディア・アクセス・コントロール・ユニットＭＡＣは、第２層に規定される処理を行ない、予め定められたプロトコル（たとえばＴＣＰ／ＵＤＰ）に従ってデータのフォーマット化および転送を実行する。リンク層ユニットＬＩＮＫは、このメディア・アクセス・コントロール・ユニットとパケット・プロセッサＰＰＵとの間のデータ転送のインターフェイスを形成する。パケット・プロセッサＰＰＵが、インターネットを介して転送されたパケットのヘッダ部分の解析、データの抽出および次の転送先アドレスの検出を行なう。
【０１７８】
パケット・プロセシング・ユニット９０は、さらに、中央制御装置ＣＰＵと、インターネットにおけるデータ転送の輻輳を制御するトラフィック・マネージャＴＦＭを含む。中央制御装置ＣＰＵは、パケット・プロセッサＰＰＵと協働して動作し、必要な制御および外部制御を実行する。
【０１７９】
パケット・プロセシング・ユニット９０の外部に、サーチ・ユニット１００、汎用メモリ１０５およびバッファ１１０が設けられる。バッファ１１０は、トラフィック・マネージャＴＦＭにより、データ転送の輻輳を避けるため、一時的なパケット格納領域として利用される。サーチ・ユニット１００は、本発明のＣＡＭで構成されるＴＣＡＭ１２０、および次ホップ先アドレスなどを格納するアドレスＳＲＡＭ１２２を内蔵し、パケット・プロセッサＰＰＵからのＩＰアドレスをサーチデータとして受け、一致／不一致、大小判定などの処理を実行し、その実行処理結果をパケット・プロセッサＰＰＵに転送する。パケット・プロセッサＰＰＵは、一例として、アドレス経路検索処理の場合には、この転送された検索結果に従ってアドレスＳＲＡＭ１２２をアクセスして、対応のアドレスのデータ、例えば次ホップ先アドレスを読出す。パケット・プロセッサＰＰＵは、この読出した次ホップ先アドレスに従ってヘッダの書換え等の処理を実行してファブリックスイッチの対応のポートに転送する。
【０１８０】
この場合。サーチ・ユニット１００において、ＴＣＡＭ１２０からのアドレスインデックスが直接アドレスＳＲＡＭ１２２へアドレスとして与えられ、このアドレスＳＲＡＭ１２２から対応の転送先アドレス（次ホップアドレス）が読出されてパケット・プロセッサＰＰＵへ与えられても良い。
【０１８１】
中央制御装置ＣＰＵは、サーチ・ユニット１００に含まれるＴＣＡＭ１２０に対する検索対象データの書込時、パケット・プロセッサＰＰＵと協働して、一旦汎用メモリ１０５内に検索対象データを格納した後、サーチ・ユニット１００に含まれるＴＣＡＭ１２０のサブアレイへの検索対象データの書込／更新を実行する。
【０１８２】
図２５は、サーチ・ユニット１００に含まれるＴＣＡＭ１２０上への検索対象データの書込動作を示すフロー図である。以下、図２５を参照して、図２４に示すサーチ・ユニット１００のＴＣＡＭ１２０への検索対象データの書込動作について説明する。
【０１８３】
パケット・プロセッサＰＰＵは、たとえば不一致検出信号をサーチ・ユニット１００から受けると、対応の検索対象データがサーチ・ユニット１００内に格納されていないと判断し、新たな二検索対象データを書込む必要があるとして、中央制御装置ＣＰＵにデータ書込指示を発行する（ステップＳ１）。
【０１８４】
パケット・プロセッサＰＰＵは、リンク層ユニットＬＩＮＫを介して与えられたデータパケットの対象データ（たとえばＩＰアドレス）、すなわちサーチデータを、中央制御装置ＣＰＵを介して汎用メモリ１０５に格納する。次いで、この中央制御装置ＣＰＵは、汎用メモリ１０５に格納されたデータのたとえば第１オクテットデータを抽出する（ステップＳ２）。
【０１８５】
この抽出した特徴データ（例えば第１オクテットデータ）を有する検索対象データが、サーチ・ユニット１００に含まれるＴＣＡＭ１２０内のＣＡＭブロックに格納されているかを識別する（ステップＳ３）。この場合、中央制御装置ＣＰＵ内においてＴＣＡＭ１２０の各ＣＡＭブロックに対応して、この判定時においては、検索対象データの特徴データの格納／未格納を示すフラグを格納するフラグレジスタが中央制御装置ＣＰＵ内に設けられており、このフラグレジスタを参照することにより、中央制御装置ＣＰＵは、ＴＣＡＭ１２０内のＣＡＭブロックに対し、対象のデータの書込が行なわれるか否かを判定することができる。
【０１８６】
多重選択が生じないＣＡＭブロックが存在する場合、すなわち対応の特徴データを有する検索対象データが未格納のＣＡＭブロックが存在する場合、中央制御装置ＣＰＵは、このＣＡＭブロックへ、汎用メモリ１０５に格納されている検索対象データを書込む。この書込時、検索対象データにＩＰアドレスのように有効長が存在する場合には、有効長に従ってマスクデータを生成して書込む。先の論理処理ユニットのデコーダと逆のエンコードを実行してマスクデータを生成する。（ステップＳ４）。このとき、また、アドレスＳＲＡＭ１２２に対しても、新たな検索対象データに応じて、対応の次ホップ先アドレスの書込が実行される（中央制御装置ＣＰＵにより）。
【０１８７】
一方、この検索対象データの書込が行なわれ、空きＣＡＭブロックが存在しない場合、別の準備された通常のＣＡＭに、検索対象データをエントリデータとして格納する（ステップＳ５）。
【０１８８】
これらの一連の処理により、１ＣＡＭブロックにおいて１エントリの選択を行なう後世において、検索ミスが発生しても、次の検索時には対応のデータがＴＣＡＭ１２０に格納されており、高速で検索処理を実行することができる。
【０１８９】
［サーチユニットの変更例］
図２６は、図２４に示すサーチ・ユニット１００の変更例の構成を概略的に示す図である。図２６においては、本発明に従うＴＣＡＭ１２０と従来ＴＣＡＭ１２４とがＴＣＡＭ１２６として設けられる。このＴＣＡＭ１２６の外部には、図２４に示す構成と同様、アドレスＳＲＡＭ１２２が設けられる。
【０１９０】
この本発明のＴＣＡＭ１２０において、たとえばＡＣＬ用途において、ＩＰアドレスの範囲の検出を行なうことができず、１つのＣＡＭブロックにおいて複数のエントリが並行して選択される状態が存在する可能性も考えられる。この場合、競合するＩＰアドレスを、従来構成の従来のＴＣＡＭ１２４に格納する。この従来のＴＣＡＭ１２４は、データを記憶するデータ記憶セルとマスクビットを記憶するマスクセルが１対１に配置され、このマスクセルとデータ記憶セル対に対し１つのＸＯＲ回路が配置される。この従来のＴＣＡＭ１２４は、図２５に示すフローチャートのステップＳ５の別のＣＡＭに対応する。
【０１９１】
これにより、本発明のＴＣＡＭ１２０において、複数のエントリに共通に比較／論理処理回路が設けられる構成において、２以上のエントリが並行して選択される可能性がある場合の状態を、従来のＴＣＡＭ１２４を利用することにより回避することができる。この場合、従来のＴＣＡＭ１２４の容量は、検索対象アドレスの数は少なく、小容量のＴＣＡＭで十分に対応することができる。
【０１９２】
なお、サーチデータがある範囲に存在するかを検出する場合、検索対象データに対するマスクビットの設定により１エントリにおいてある範囲を指定することが出来る。また、「より大きい」判定および「より小さい」判定を並行して実行することにより、それぞれ別のプライオリティエンコーダで識別することにより、サーチデータの範囲を検出することが出来る。
【０１９３】
このＴＣＡＭ１２６において、本発明のＴＣＡＭ１２０において検索動作を行ない、また従来のＴＣＡＭ１２４においても検索動作を実行する。ＡＣＬ制御用途においては、基本的に、送信元のＩＰアドレスおよびＴＣＰポート番号などの組合せによりパケットの廃棄処理が実行される。したがって、この場合、メディア・アクセス・コントロール・ユニットＭＡＣが転送するデータは、４８ビット、ＩＰアドレスは３２ビット、ポート番号が１６ビットである。ＩＰアドレス（ソース側のＩＰアドレス）の特徴データに従ってエントリの分類を行ない、このＡＣＬによるアクセス制御の場合、ＩＰアドレス（レイヤ３の情報）が一致するか否かでアクセス許可／拒否を実行するまたはポート番号（レイヤ４の情報）およびＩＰアドレスの一致／不一致に従ってアクセスの拒否／許可を制限する場合がある。アクセス制御リストのいわゆるファイアウォール機能から、アクセス拒否が示された場合には、その対応のパケットを拒否する。これにより、複数のエントリがこの発明のＴＣＡＭ１２０および従来のＴＣＡＭ１２４において並行して選択された場合においても、確実に、不必要なアクセスを制御することができる。
【０１９４】
以上のように、この発明の実施の形態１に従えば、複数のエントリに共通に比較／論理処理回路を設け、プリサーチにより１つのエントリを選択している。したがって、複数のエントリ各々にＸＯＲ回路などの論理／処理回路装置を配置する必要がなく、ＣＡＭセルの占有面積を低減することが出来、ＣＡＭアレイの占有面積を低減することができる。また、マスクビットをデコードして、各メモリセルに対するマスク指示信号を生成しており、マスクビットを記憶するマスクセルの数が低減され、さらにメモリアレイの面積が低減される。
【０１９５】
また、一致／不一致、大小等の判定は複数のエントリに共通に設けられる比較／論理処理回路において局所的に行なわれている。したがって、各エントリにおいて一致する不一致、大小を判定する必要はなく、消費電流は低減される。また、サーチ線を各エントリに共通に配設してサーチデータを各エントリに共通にかつ並行して伝達する必要はなく、サーチ線の充放電電流が低減される。
【０１９６】
［実施の形態２］
図２７は、この発明の実施の形態２に従うＣＡＭの要部の構成を概略的に示す図である。図２７において、メモリアレイ１は、２つの領域１５０ａおよび１５０ｂに分割される。この領域１５０ａには、実施の形態１において示したのと同様、エントリＥＮＴ♯０−ＥＮＴ♯Ｎ−１各々が、複数のサブエントリＳＥＲＹａに分割される。サブアレイＳＥＲＹａにおいては、データ記憶セルＣＥＬ０およびマスクセルＣＥＬ１が配置され、このマスクセルＣＥＬ１の数は、データ記憶セルＣＥＬ０の数よりも小さい。この領域１５０ａにおいてサブエントリに対応してセンスアンプユニットＳＡＵが配置される。このセンスアンプユニットＳＡＵにおいては、実施の携帯１の構成と同様、ビット線読出選択ゲートおよびセンスアンプが各データ記憶セルに対応して配置される。領域１５０ａにおいては、さらに、センスアンプユニットＳＡＵに対応して比較／論理処理ユニットＣＬＵが配置される。この比較／論理処理ユニットＣＬＵは、先の実施の形態１と同様、データ記憶セルに対応して配置される比較器ＣＭＰとマスクセルに対応して配置されるデコーダＤＥＣとを含む。比較器ＣＭＰは、ＸＯＲ回路および大小比較ユニットを含む。
【０１９７】
この領域１５０ａの比較／論理処理ユニットＣＬＵから、一致指示信号（フラグ）ＥＱ、大指示信号（フラグ）ＧＴ、および小指示信号（フラグ）ＬＴが、対応のワード線アドレス（プリサーチにより求められたアドレス）ＷＬＡＤとともにプライオリティエンコーダへ与えられる。この場合、ＣＡＭブロックアドレスが並行して与えられても良い。
【０１９８】
プライオリティエンコーダにおいては、演算処理操作内容に従って、検索演算対象が肯定される場合、このワード線アドレスＷＬＡＤ（およびＣＡＭブロックアドレス）に従って、次処理により利用されるアドレスインデックスを生成する。このアドレスンデックススが、図２４に示すアドレスＳＲＡＭなどへ与えられ、このアドレスインデックスに対応する内容が読出されて以後の処理が実行される。たとえば、インターネット機器においては、次のホップ先アドレスが（アドレスＳＲＡＭから）読出され、ヘッダの書換などが実行される（パケット・プロセッシング・ユニットにおいて）。
【０１９９】
一方、領域１５０ｂにおいては、エントリＥＮＴ♯０−ＥＢＴ♯Ｎ−１に対応して、サブエントリＳＥＲＹａとビット幅の異なるサブエントリＳＥＲＹｂがそれぞれ配置される。このサブエントリＳＥＲＹｂのビット幅は、たとえば１６ビットである。サブエントリＳＥＲＹｂに対応してセンスアンプユニットＳＡＵが配置され、領域１５０ｂにおけるセンスアンプユニットＳＡＵｂに対応して、一致検出ユニットＸＲＵが設けられる。
【０２００】
このサブエントリＳＥＲＹｂにおいても、サブエントリＳＥＲＹａと同様、データ記憶セルおよびマスクセルが配置されて、マスクセルのマスクビットの数は、データ記憶セルよりも少なくされる。センスアンプユニットＳＡＵｂの構成は、センスアンプユニットＳＡＵａと同じである。ＸＯＲユニットＸＲＵは、対応の選択されたサブエントリＳＥＲＹｂからのデータ記憶セルの記憶データと図示しないサーチ線からのサーチデータとの一致／不一致を検出する一致検出回路が設けられる。また、サブエントリＳＥＲＹｂに含まれるマスクセルからのマスクビットをデコードするデコーダが配置され、このデコーダからのマスク指示信号に従ってＸＯＲユニットＸＲＵは、３値判定を実行する。このＸＯＲユニットＸＲＵからの３値判定結果は、単に一致／不一致を示す信号として利用され、この外部からのアドレスのアクセスの許可／拒否を示すフラグとして利用される。
【０２０１】
この図２７に示すように、メモリアレイ１を、アドレスインデックスを出力して、以後に複雑な操作が必要とされるデータを記憶する領域１５０ａと、単にアクセスの拒否／許可を示すフラグを立てるためのデータを記憶する領域１５０ｂに分割する。ＣＡＭにおいて、アドレスインデックスを形成するための領域および単に許可／拒否フラグを立てるための領域１５０ｂを設けることにより、単にアクセスの許可／拒否を検出する用途に対して、プライオリティエンコーダを設ける必要がなく、アドレスインデックスに応じた次の操作内容を格納するＳＲＡＭを配置する必要がなく、レイアウト面積が低減される。
【０２０２】
なお、ＣＡＭアレイにおいて、図２１に示すように複数のＣＡＭブロックを構成するように、このメモリアレイ１が複数個並列に配置されても良い。この複数のＣＡＭブロックが設けられる場合、プライオリティエンコーダ７０に対して、領域１５０ａからは、ワード線アドレスとともにＣＡＭブロックを特定するブロックアドレスを、フラグＥＱ、ＧＴおよびＬＴとともに与えられる。プライオリティエンコーダにおいて、このブロックアドレスの最も小さいＣＡＭブロックからのワード線アドレスをアドレスインデックスとして選択する。
【０２０３】
図２８は、この発明の実施の形態２に従うＣＡＭの全体の構成を概略的に示す図である。図２８において、この発明の実施の形態２に従うＣＡＭ２００は、２つのＣＡＭアレイ５０Ａおよび５０Ｂを含む。ＣＡＭアレイ５０Ａは、ＣＡＭアレイ領域５０Ａａおよび５０Ａｂに分割される。ＣＡＭアレイ５０Ｂは、ＣＡＭアレイ領域５０Ｂａおよび５０Ｂｂに分割される。これらのＣＡＭアレイ５０Ａおよび５０Ｂの構成は、図２７に示すＣＡＭアレイの構成と同じである。
【０２０４】
ＣＡＭアレイ領域５０Ａａおよび５０Ａｂに対応してサーチ線駆動回路５６Ａａおよび５６Ａｂが設けられ、それぞれ並列に、サーチデータａおよびｂを受ける。また、ＣＡＭアレイ領域５０Ａａおよび５０Ａｂに対応して比較／論理処理回路１５Ａａおよび１５Ａｂが設けられる。したがって、ＣＡＭアレイ領域５０Ａａおよび５０Ａｂにおいては、検索対象のデータに対するサーチ結果ＥＱ、ＧＴおよびＬＴとともに、処理対象のエントリのアドレス、すなわちワード線アドレスＷＬＡＤ（およびブロックアドレス）がサーチ結果バス２１０上に伝達される。これらの比較／論理処理回路１５Ａａおよび１５Ａｂの構成は、先の実施の形態１において示した比較／論理処理回路と同じであり、それぞれサブエントリに対応して配置される比較／論理処理ユニット（ＣＬＵ）を含む。
【０２０５】
ＣＡＭアレイ５０Ｂにおいても、同様、２つのＣＡＭアレイ領域５０Ｂａおよび５０Ｂｂに対してサーチ線駆動回路５６Ｂａおよび５６Ｂｂがそれぞれ設けられる。サーチ線駆動回路５６Ｂａに対しては大小（“＞”）を検出するためのサーチデータａが与えられ、サーチ線駆動回路５６Ｂｂに対しては、拒否（deny）するか否かを検出するサーチデータｂが与えられる。
【０２０６】
ＣＡＭアレイ領域５０Ｂａに対しては比較／論理処理回路１５Ｂが設けられ、一方、ＣＡＭアレイ領域５０Ｂｂに対しては、ＸＯＲユニットＸＲＵが配置される。
【０２０７】
したがって、ＣＡＭアレイ領域５０Ｂａに格納される検索対象データについては、ＣＡＭアレイ５０Ａと同様、一致および大小比較の演算処理が実行され、一方、ＣＡＭアレイ５０Ｂｂにおいては、一致／不一致に応じた許可／拒否を示すフラグが出力される。したがって、比較／論理処理回路１５Ｂの出力信号ＥＱ、ＧＴおよびＬＴが、対応のワード線アドレスＷＬＡＤ（ブロックアドレスを含む）とともにサーチ結果データバス２１２上に伝達され、一方、ＸＯＲユニットＸＲＵからの不一致／一致結果を示すフラグＮＥＱ／ＥＱが、サーチ結果線２１４上に伝達される。データバス２１０および２１２は、メインサーチ結果バス２１６に結合される。このメインサーチ結果バス２１６へは、このＣＡＭアレイ５０Ａにおけるサーチ結果を示すフラグＥＱ、ＧＴおよびＬＴととものワード線アドレスＷＬＡＤ（ブロックアドレスを含む）が与えられ、また、ＣＡＭアレイ５０Ｂから、比較／論理処理回路１５ＢからのフラグＥＱ、ＧＴおよびＬＴが対応のワード線アドレスＷＬＡＤ（ブロックアドレスを含む）とともに並列に与えられる。
【０２０８】
プライオリティエンコーダ７０は、このサーチ結果バス２１０および２１２からのフラグに従って、所定の優先順位に従って対応のワード線アドレス（ブロックアドレスを含む）を、アドレスインデックスとして選択する。ＣＡＭアレイ領域５０Ａａ、５０Ａｂおよび５０Ｂａが、複数のＣＡＭブロックに分割される場合、各ＣＡＭブロックを特定するブロックアドレスが、プライオリティエンコーダ７０に与えられて、このブロックアドレスによる優先順位が識別されて、対応のワード線アドレスがアドレスインデックスとして選択される。
【０２０９】
このプライオリティエンコーダ７０の出力信号とＣＡＭアレイ５０ＢのＸＯＲユニットＸＲＵからのフラグＮＥＱ／ＥＱが、サーチ結果出力回路７２へ与えられる。このサーチ結果出力回路７２は、マルチプレクサを含み、プライオリティエンコーダ７０の出力信号とＸＯＲユニットＸＲＵからのフラグＮＥＱ／ＥＱの一方を、モード選択信号ＭＯＤＳＥＬに従って選択してサーチ結果出力端子７４に伝達する。
【０２１０】
このモード選択信号ＭＯＤＳＥＬは、外部からの命令により制御回路（図２１に示す制御回路６６）により生成される。ＡＣＬ制御用途のように許可／拒否の判定を行なう動作モードの時には、サーチ結果出力回路７２は、マルチプレクサによりＸＯＲユニットＸＲＵからの指示フラグＮＥＱ／ＥＱを選択して、サーチ結果出力端子７４に出力する。ＩＰアドレスのフォワーディング処理のように、一致判定または大小判定がモード選択信号ＭＤＳＥＬにより指定されたときには、サーチ結果出力回路７０は、マルチプレクサによりプライオリティ・エンコーダ７０の出力データを選択して出力端子７４に転送する。
【０２１１】
プライオリティエンコーダ７０へは、ＣＡＭアレイ領域５０Ａａ、５０Ａｂおよび５０Ｂａを特定するアドレスおよびサーチ結果が、処理内容を示す判定モード選択信号とともに与えられ、ＣＡＭアレイ領域からのサーチ結果を判定モードに応じて選択して、対応の判定モードにおけるワード線アドレスを、所定のプライオリティに従って選択するように構成されてもよい。これらの一致、および大小について並行して優先順位に従って各処理（一致および大小判定）に対する最終判定結果を生成しても良い。
【０２１２】
この一致／不一致を判定するためのＣＡＭアレイ領域５０Ａｂおよび５０Ｂｂのビット幅は、例えば１６ビットであり、例えば３２ビット幅のＣＡＭアレイ領域５０Ａａおよび５０Ｂａのビット幅（エントリのビット幅）よりも小さい。したがって、ＣＡＭアレイの面積増大を伴うことなく、複数種類の演算処理を実行することができる。
【０２１３】
以上のように、この発明の実施の形態２に従えば、演算処理内容に応じてメモリアレイ領域を分割している。したがって、単純にアドレスインデックスを出力する必要がなくフラグのみを出力することが要求される単純な操作が必要なたとえばＡＣＬ制御などの用途と、ＩＰアドレスのフォワーディング処理を行なう用途に対し１つのＣＡＭアレイで柔軟に対応することができる。また、実施の形態１と同様の効果をも奏する。
【産業上の利用可能性】
【０２１４】
なお上述の説明においては、ＩＰアドレスを検索対象データとするネットワーク機器におけるＣＡＭについて説明している。しかしながら、このＩＰアドレスとして、ＩＰｖ４（インターネット／プロトコルバージョン４）およびＩＰｖ６についても、同様、ＩＰアドレスが、クラスを分類するアドレス特徴データが存在する場合、並行して適用することができる。
【０２１５】
また、ＩＰアドレスに限定されず、他の大小比較などの操作においても、入力データ（検索データ）が、特徴データに従って分類される場合、同様に本発明のＣＡＭを適用することができる。
【図面の簡単な説明】
【０２１６】
【図１】この発明の実施の形態１に従うＣＡＭの要部の構成を概略的に示す図である。
【図２】図１に示すメモリアレイの構成を具体的に示す図である。
【図３】図１に示すセンスアンプ回路および比較／論理処理回路の具体的構成を示す図である。
【図４】図１から図３に示す回路の動作を示すタイミング図である。
【図５】図３に示すＸＯＲ回路の構成の一例を示す図である。
【図６】図５に示すＸＯＲ回路の入出力の論理関係を一覧にして示す図である。
【図７】図３に示すＸＯＲ回路の論理処理部の構成の一例を概略的に示す図である。
【図８】図３に示す論理処理ユニットの一致判定結果を出力する部分の構成を概略的に示す図である。
【図９】図３に示す論理処理ユニットの大小比較を行なう論理処理部の構成を示す図である。
【図１０】図９に示す論理処理部の動作を示すタイミング図である。
【図１１】図３に示す論理処理部の最終大小指示フラグを生成する部分の構成を示す図である。
【図１２】この発明の実施の形態１において利用されるマスクセルのマスクビットと内部のマスクを行なう内部マスク指示信号の関係を一覧にして示す図である。
【図１３】この発明の適用対象外のマスクビットパターンの一例を示す図である。
【図１４】図３に示す論理処理ユニットの構成を具体的に示す図である。
【図１５】図１４に示すデコーダの構成の一例を概略的に示す図である。
【図１６】この発明の実施の形態１に従うデコーダの変更例のデコード論理を一覧にして示す図である。
【図１７】図１６に示すデコード論理を実現するデコーダの構成の一例を概略的に示す図である。
【図１８】この発明の実施の形態１の変更例のＴＣＡＭの構成を概略的に示す図である。
【図１９】この発明の実施の形態１に従うＴＣＡＭの第２の変更例の２値ＣＡＭの要部の構成を概略的に示す図である。
【図２０】この発明に従うＣＡＭと従来のＣＡＭの構成要素数の比較を示す図である。
【図２１】この発明の実施の形態１に従うＣＡＭの全体の構成を概略的に示す図である。
【図２２】図２１に示すプリサーチ回路のプリサーチ処理を説明するための図である。
【図２３】プリサーチ処理による各検索対象データのＣＡＭブロックへの配置の一例を示す図である。
【図２４】この発明に従うＴＣＡＭを用いたパケットプロセシングユニットの全体の構成を概略的に示す図である。
【図２５】図２４に示すパケットプロセシングユニットのＴＣＡＭの検索対象データの書換シーケンスを示すフロー図である。
【図２６】図２４に示すＴＣＡＭの変更例の構成を概略的に示す図である。
【図２７】この発明の実施の形態２に従うＣＡＭの要部の構成を概略的に示す図である。
【図２８】この発明の実施の形態２に従うＣＡＭの全体の構成を概略的に示す図である。
【符号の説明】
【０２１７】
１  メモリアレイ、ＣＥＬ０  データ記憶セル、ＣＥＬ１  マスクセル、１１  センスアンプ回路、１５  比較／論理処理回路、ＳＡＵ  センスアンプユニット、ＣＬＵ  比較／論理処理ユニット、ＳＥＲＹ  サブエントリ、ＳＡ０−ＳＡ７  センスアンプ、ＸＲＬ０−ＸＲＬ  ＸＯＲ回路、２０−２３  ４入力ＮＯＲ回路、２４，２５  ２入力ＡＮＤゲート、２６  ＯＲ回路、２７  インバータ、ＧＭＬ  グローバルマッチ線、ＥＸＲ０−ＥＸＲｍ  一致判定部、ＳＥＲＹ０−ＳＥＲＹｍ  サブエントリ、２８  ローカルマッチ線、２９  大小検出線、ＤＥＣ  デコーダ、３０−３３  マルチプレクサ、ＸＲＲ０−ＸＲＲ７  ＸＯＲ回路、５０  ＣＡＭアレイ、ＣＢ００−ＣＢ０ｎ，ＣＢｋ０−ＣＢｋｎ  ＣＡＭブロック、５５  サブメモリアレイ、５６  サーチ線駆動回路、５７  アドレスデコーダ、６７  プリサーチ回路、７０  プライオリティエンコーダ、７２  サーチ結果出力回路、１１Ｂ  センスアンプ回路、１５Ｂ  比較／論理処理回路、１００  サーチ・ユニット、１２０  ＴＣＡＭ、１２２  アドレスＳＲＡＭ、１２４  従来ＴＣＡＭ、１２６  ＴＣＡＭ、ＳＥＲＹａ，ＳＥＲＹｂ  サブエントリ、ＸＲＵ  ＸＯＲユニット、５０Ａ，５０Ｂ  ＣＡＭセルアレイ、５０Ａａ，５０Ａｂ，５０Ｂａ，５０Ｂｂ  ＣＡＭアレイ領域、５６Ａａ，５６Ａｂ，５６Ｂａ，５６Ｂｂ  サーチ線駆動回路、１５Ａａ，１５Ａｂ，１５Ｂ  比較／論理処理回路。
【図１】
0005140849.tif 000002
【図２】
0005140849.tif 000003
【図３】
0005140849.tif 000004
【図４】
0005140849.tif 000005
【図５】
0005140849.tif 000006
【図６】
0005140849.tif 000007
【図７】
0005140849.tif 000008
【図８】
0005140849.tif 000009
【図９】
0005140849.tif 000010
【図１０】
0005140849.tif 000011
【図１１】
0005140849.tif 000012
【図１２】
0005140849.tif 000013
【図１３】
0005140849.tif 000014
【図１４】
0005140849.tif 000015
【図１５】
0005140849.tif 000016
【図１６】
0005140849.tif 000017
【図１７】
0005140849.tif 000018
【図１８】
0005140849.tif 000019
【図１９】
0005140849.tif 000020
【図２０】
0005140849.tif 000021
【図２１】
0005140849.tif 000022
【図２２】
0005140849.tif 000023
【図２３】
0005140849.tif 000024
【図２４】
0005140849.tif 000025
【図２５】
0005140849.tif 000026
【図２６】
0005140849.tif 000027
【図２７】
0005140849.tif 000028
【図２８】
0005140849.tif 000029