(57)【特許請求の範囲】
【請求項１】
連想メモリであって、
一致ラインと、
比較データラインと、
有効データラインと、
タグデータビットを格納するメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第３のインバータと、
前記第３のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと、
前記有効データラインが論理低になることに応答して前記第１のパスゲートの前記入力を論理高に引き上げるために、前記有効データラインと前記第１のパスゲートとに接続された第１のＰチャネルトランジスタと、
前記有効データラインが論理低になることに応答して前記第２のパスゲートの前記入力を論理高に引き上げるために、前記有効データラインと前記第２のパスゲートとに接続された第２のＰチャネルトランジスタと、
を具備することを特徴とする連想メモリ。
【請求項２】
電圧ＶＳＳを有し、
前記有効データラインが論理高になるときのみ前記第１のインバータをＶＳＳに接続するために、前記有効データラインおよび前記第１のインバータに接続された第１のＮチャネルトランジスタと、
前記有効データラインが論理高になるときのみ前記第２のインバータをＶＳＳに接続するために、前記有効データラインおよび前記第２のインバータに接続された第２のＮチャネルトランジスタと
をさらに具備することを特徴とする請求項１に記載の連想メモリ。
【請求項３】
連想メモリであって、
一致ラインと、
比較データラインと、
相補有効データラインと、
タグデータビットを格納するためのメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第３のインバータと、
前記第３のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと、
前記相補有効データラインが論理高になることに応答して前記第１のパスゲートの前記入力を論理低に引き下げるために、前記相補有効データラインと前記第１のパスゲートとに接続された第１のＮチャネルトランジスタと、
前記相補有効データラインが論理高になることに応答して前記第２のパスゲートの前記入力を論理低に引き下げるために、前記相補有効データラインと前記第２のパスゲートとに接続された第２のＮチャネルトランジスタと、
を具備することを特徴とする連想メモリ。
【請求項４】
電圧Ｖｄｄを有し、
前記相補有効データラインが論理低になるときのみ前記第１のインバータをＶｄｄに接続するために、前記相補有効データラインおよび前記第１のインバータに接続された第１のＰチャネルトランジスタと、
前記相補有効データラインが論理低になるときのみ前記第２のインバータをＶｄｄに接続するために、前記相補有効データラインおよび前記第２のインバータに接続された第２のＰチャネルトランジスタと、
をさらに具備することを特徴とする請求項３に記載の連想メモリ。
【請求項５】
連想メモリであって、
一致ラインと、
比較データラインと、
有効データラインと、
タグデータビットを格納するためのメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された第１の入力と、有効データラインに接続された第２の入力とを有するとともに、出力を有する、排他的ＯＲゲートと、
前記排他的ＯＲゲートの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと
を具備することを特徴とする連想メモリ。
【請求項６】
連想メモリであって、
一致ラインと、
比較データラインと、
有効データラインと、
タグデータビットを格納するメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第３のインバータと、
前記第３のインバータの前記出力に応答して、前記一致ラインを駆動するための手段と、
前記有効データラインが論理低になることに応答して、前記第１のパスゲートの前記入力を論理高に引き上げるための手段と、
前記有効データラインが論理低になることに応答して、前記第２のパスゲートの前記入力を論理高に引き上げるための手段と、
を具備することを特徴とする連想メモリ。
【請求項７】
電圧ＶＳＳを有し、
前記有効データラインが論理高になるときのみ前記第１のインバータをＶＳＳに接続するための手段と、
前記有効データラインが論理高になるときのみ前記第２のインバータをＶＳＳに接続するための手段と
をさらに具備することを特徴とする請求項６に記載の連想メモリ。
【請求項８】
連想メモリであって、
一致ラインと、
比較データラインと、
相補有効データラインと、
タグデータビットを格納するためのメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第３のインバータと、
前記第３のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと、
前記相補有効データラインが論理高になることに応答して、前記第１のパスゲートの前記入力を論理低に引き下げるための手段と、
前記相補有効データラインが論理高になることに応答して、前記第２のパスゲートの前記入力を論理低に引き下げるための手段と、
を具備することを特徴とする連想メモリ。
【請求項９】
電圧Ｖｄｄを有し、
前記相補有効データラインが論理低になるときのみ前記第１のインバータをＶｄｄに接続するための手段と、
前記相補有効データラインが論理低になるときのみ前記第２のインバータをＶｄｄに接続するための手段と、
をさらに具備することを特徴とする請求項８に記載の連想メモリ。
【請求項１０】
連想メモリであって、
一致ラインと、
比較データラインと、
有効データラインと、
タグデータビットを格納するためのメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと、
前記第１のインバータの前記出力が論理高であるとともに前記有効データラインが論理低である場合、及び前記第１のインバータの前記出力が論理低であるとともに前記有効データラインが論理高の場合、前記第２のパスゲートの前記入力を論理高に駆動し、前記第１のインバータの前記出力が論理低であるとともに前記有効データラインが論理低である場合、及び前記第１のインバータの前記出力が論理高であるとともに前記有効データラインが論理高の場合、前記第２のパスゲートの前記入力を論理低に駆動するための手段と、
を具備することを特徴とする連想メモリ。
【請求項１１】
比較回路を用いて、タグデータビットを比較データビットと突き合わせるための方法であって、
前記比較回路は、
一致ラインと、
比較データラインと、
有効データラインと、
タグデータビットを格納するメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第３のインバータと、
前記第３のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと、
前記有効データラインと前記第１のパスゲートとに接続された第１のＰチャネルトランジスタと、
前記有効データラインと前記第２のパスゲートとに接続された第２のＰチャネルトランジスタと、
を具備し、
前記方法は、
前記有効データラインが論理低になることに応答して、前記第１のパスゲートの前記入力を論理高に引き上げるステップと、
前記有効データラインが論理低になることに応答して、前記第２のパスゲートの前記入力を論理高に引き上げるステップと、
を有することを特徴とする方法。
【請求項１２】
前記比較回路は、
電圧ＶＳＳを有し、
前記有効データラインと前記第１のインバータとに接続された第１のＮチャネルトランジスタと、
前記有効データラインと前記第２のインバータとに接続された第２のＮチャネルトランジスタと、
をさらに具備し、
前記方法は、
前記有効データラインが論理高になるときのみ前記第１のインバータをＶＳＳに接続するステップと、
前記有効データラインが論理高になるときのみ前記第２のインバータをＶＳＳに接続するステップと
をさらに有することを特徴とする請求項１１に記載の方法。
【請求項１３】
比較回路を用いて、タグデータビットを比較データビットと突き合わせるための方法であって、
前記比較回路は、
一致ラインと、
比較データラインと、
相補有効データラインと、
タグデータビットを格納するためのメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第３のインバータと、
前記第３のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと、
前記相補有効データラインと前記第１のパスゲートとに接続された第１のＮチャネルトランジスタと、
前記相補有効データラインと前記第２のパスゲートとに接続された第２のＮチャネルトランジスタと、
を具備し、
前記方法は、
前記相補有効データラインが論理高になることに応答して、前記第１のパスゲートの前記入力を論理低に引き下げるステップと、
前記相補有効データラインが論理高になることに応答して、前記第２のパスゲートの前記入力を論理低に引き下げるステップと、
を具備することを特徴とする方法。
【請求項１４】
前記比較回路は、
電圧Ｖｄｄを有し、
前記相補有効データラインと前記第１のインバータとに接続された第１のＰチャネルトランジスタと、
前記相補有効データラインと前記第２のインバータとに接続された第２のＰチャネルトランジスタと、
をさらに具備し、
前記方法は、
前記相補有効データラインが論理低になるときのみ前記第１のインバータをＶｄｄに接続するステップと、
前記相補有効データラインが論理低になるときのみ前記第２のインバータをＶｄｄに接続するステップと
をさらに有することを特徴とする請求項１３に記載の方法。
【請求項１５】
比較回路を用いて、タグデータビットを比較データビットと突き合わせるための方法であって、
前記比較回路は、
一致ラインと、
比較データラインと、
有効データラインと、
タグデータビットを格納するためのメモリセルと、
前記メモリセルに接続された入力を有するとともに、出力を有する、第１のインバータと、
前記第１のインバータの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第１のパスゲートと、
前記第１のインバータの前記出力に接続された第１の入力と、有効データラインに接続された第２の入力とを有するとともに、出力を有する、排他的ＯＲゲートと、
前記排他的ＯＲゲートの前記出力に接続された入力を有するとともに、前記比較データラインに結合され、出力を有する、第２のパスゲートと、
前記第１のパスゲートの前記出力と前記第２のパスゲートの前記出力とに接続された入力を有するとともに、出力を有する、第２のインバータと、
前記第２のインバータの前記出力に接続された入力を有する、前記一致ラインを駆動するためのゲートと
を具備し、
前記方法は、
前記第１のインバータの前記出力が論理高であるとともに前記有効データラインが論理低である場合、及び前記第１のインバータの前記出力が論理低であるとともに前記有効データラインが論理高の場合、前記第２のパスゲートの前記入力を論理高に駆動し、前記第１のインバータの前記出力が論理低であるとともに前記有効データラインが論理低である場合、及び前記第１のインバータの前記出力が論理高であるとともに前記有効データラインが論理高の場合、前記第２のパスゲートの前記入力を論理低に駆動するステップ
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術は、一般にコンパレータ回路および連想メモリ(CAM)回路ならびに関係するシステムおよび方法に関する。
【背景技術】
【０００２】
連想メモリ(CAM)は、高速検索アプリケーションでの使用に特に好適な一種のコンピュータメモリである。メモリアドレスが供給され、RAMがそのメモリアドレスに記憶されたデータワードを戻す標準的なランダムアクセスメモリ(RAM)とは異なり、CAMはルックアップテーブル機能を実装する。ルックアップテーブル機能は、供給された比較データがCAM中のいずれかのメモリロケーションに記憶されているかどうかを判断する。記憶されている場合、データワードか、または供給された比較データに一致するデータを含んでいるCAM中の1つまたは複数のメモリロケーションのリストのいずれかを戻す。CAMは、一般に単一のクロックサイクル内でルックアップ機能を実行するために専用のコンパレータ回路を採用するので、CAMはデータへの高速アクセスを実現する。CAMはハードウェアにおいて連想配列を与えるので、CAMは関連メモリまたは連想記憶装置としても知られる。
【０００３】
図１に、例示的なCAM10のブロック図を示す。CAM10は、複数のエントリのアレイから構成される。複数のエントリは、1つまたは複数のタグデータフィールド12と、1つまたは複数の対応するコンパレータ14と、RAMデータフィールド16とを含む。各タグデータフィールド12は、タグデータを形成するためにデータの1つのビットまたはデータの複数のビットを含む。図１に示すCAM10では、タグデータフィールド12は、長さM+1ビットのタグデータワードを形成するために0〜Mビットから構成される。CAM10中に複数のタグデータエントリを与えるために、各物理レジスタがタグデータフィールド12と対応するコンパレータ14とRAMデータフィールド16とを含む、サイズが0〜NのN+1個の物理レジスタのアレイが設けられる。タグデータフィールド12中のビットごとにコンパレータ14中に別個のコンパレータ回路が設けられる。CAM10中の読取り機能が実行されると、比較データ18が与えられ、各コンパレータ14に入力されて、比較データ18を各タグデータフィールド12に記憶されたタグデータと比較する。任意のタグデータフィールド12中のタグデータに一致する各比較データ18について、対応するコンパレータ14は、対応する一致ライン20上で一致を示す信号を生成する。一般に、同じタグデータの複数のコピーがCAM10中の異なるタグデータフィールド12中に含まれているので、正しいタグデータフィールド12が有効ビット(VLD)22によってマークされる。
【０００４】
スタティック論理ベースコンパレータ(「スタティックベース」)またはダイナミックベースコンパレータのいずれかがCAM中で採用され得る。ダイナミックベースコンパレータ中には、タグデータのビットごとにダイナミックコンパレータ回路が設けられる。ダイナミックコンパレータ回路は、一致ライン上にプルダウン経路を実装するトランジスタの2つのペアを採用する。タグデータの1ビットと、ダイナミックコンパレータ回路のいずれかの中の比較データの対応するビットとの間の不一致は、一致ライン上のプルダウン経路をグランドに対してアクティブ化する。タグデータのすべてのビットと対応する比較データのすべてのビットとの間の一致は、一致ラインをグランドから分離する。ダイナミックコンパレータ回路は、トランジスタをオンにしてすでにプリチャージされたノードを放電することによって評価するので、概してスタティックベースコンパレータ回路よりも速い。スタティックベースコンパレータは、状態遷移が、あるトランジスタをオフにしながら別のトランジスタをオンにすることに依存する、相補型金属酸化膜半導体(CMOS)論理を使用し、一般に、ダイナミックベースコンパレータ回路よりも遅い。しかしながら、ダイナミックベースコンパレータ回路は、スタティックベースコンパレータ回路よりも多くの電力を消費する。スタティック回路は、回路の入力変化により対応する出力変化が生じたときにダイナミック電力を消費するが、ダイナミック回路は、入力または出力切替え活動がないときでも、プリチャージ位相によりクロックサイクルごとにダイナミック電力を消費する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
無効タグデータに対するコンパレータ回路の不要な切替えによる電力損失の増加は、バッテリー電源式電子デバイス中に含まれるCAMにとって特に望ましくないことがある。電力損失の増加は、バッテリー消耗を早め、バッテリー寿命を短縮することになる。したがって、電力消費量を低減するためにCAM中にスタティックベースコンパレータ回路を採用することが望ましい。
【課題を解決するための手段】
【０００６】
発明を実施するための形態で開示する実施形態は、コンパレータならびに関係する回路および方法を含む。コンパレータは、対応する比較データの1つまたは複数のビットと比較すべきデータの1つまたは複数のビットの有効性を示す少なくとも1つの有効性インジケータを入力として受信する。データと比較データおよび少なくとも1つの有効性インジケータとの比較に応じて、一致ラインに結合された少なくとも1つのコンパレータ出力を選択的に切り替えるためにスタティックベースコンパレータが設けられ、そのように構成される。有効性インジケータが有効データを示す場合、スタティックベースコンパレータは、データと対応する比較データとの間の一致または不一致のいずれかを示すコンパレータ出力を駆動するように切り替わる。有効性インジケータが無効データを示す場合、スタティックベースコンパレータは、データと対応する比較データとの間の一致があるか否かにかかわらず切り替える電力を損失することなしにコンパレータ出力上に不一致を与える。このようにして、スタティックベースコンパレータは、比較データの変更に応じて、無効とマークされたデータについてコンパレータ出力を切り替える電力を損失しないように構成される。データが無効とマークされたときにコンパレータ出力を切り替える電力を損失しないように構成されたスタティックベースコンパレータを設けることによって、回路および/またはその重要な経路に対するパフォーマンス劣化が最小またはまったくなしに電力節約を実現することができる。
【０００７】
開示する実施形態では、スタティックベースコンパレータは、連想メモリ(CAM)に記憶されたタグデータにアクセスするためにCAM中で採用され得る。CAMは、CAM中のタグデータのビットごとにスタティック論理ベース(「スタティックベース」)コンパレータを含む。また、所与のタグデータが有効であるかどうかを示す有効性インジケータがCAM中に与えられる。CAMに与えられた比較データを変更することによってデータルックアップがCAM中で実行される。CAM中の各スタティックベースコンパレータは、対応するタグデータと比較データおよびタグデータのための有効性インジケータとの比較に応じてコンパレータ出力を選択的に切り替えるように構成される。発明を実施するための形態で開示する実施形態では、スタティックベースコンパレータは、共通コンパレータ出力を有するパスゲートの相補ペアから構成される相補型金属酸化物半導体(CMOS)ゲートを含むコンパレータ回路から構成される。コンパレータ回路は、比較データの変更に応じたコンパレータ出力の切替えを防ぐために、対応するタグデータが無効とマークされたときに両方のパスゲートの入力に同じ論理値を与えるように構成される。さらに、CAM中の複数の読取りポート、書込みポート、または両方のいずれかに適応するために、タグデータのビットごとに複数のスタティックベースコンパレータが設けられる。
【図面の簡単な説明】
【０００８】
【図１】例示的な連想メモリ(CAM)のブロック図である。
【図２】CAMのための例示的なスタティック論理ベース(「スタティックベース」)コンパレータ回路のゲート図である。
【図３】スタティックベースコンパレータを採用する例示的なCAMからの回路図である。
【図４】対応するタグデータとタグデータの有効性を示す有効性インジケータとの比較に応じてコンパレータ出力の切替えを制御するための、図３のCAM中のスタティックベースコンパレータのための論理テーブルである。
【図５】スタティックベースコンパレータが図４の論理テーブルに従って動作する例示的なCAMの回路図である。
【図６】スタティックベースコンパレータが図４の論理テーブルに従って動作する代替の例示的なCAMの回路図である。
【図７】スタティックベースコンパレータが図４の論理テーブルに従って動作する別の代替の例示的なCAMの回路図である。
【図８】図５〜図７のCAM中で採用されるスタティックベースコンパレータのためのゲート数のテーブル図である。
【図９】複数の入力ポートをサポートするために、タグデータのアレイを有し、タグデータのビットごとに複数のスタティックベースコンパレータを採用する例示的なCAMの概略図である。
【図１０】発明を実施するための形態で開示する実施形態に基づくCAMを採用する例示的なマイクロプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【０００９】
次に図面を参照しながら、本開示のいくつかの例示的な実施形態について説明する。「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用する。本明細書で「例示的」と記載されたいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈すべきではない。
【００１０】
発明を実施するための形態で開示する実施形態は、コンパレータならびに関係する回路および方法を含む。コンパレータは、対応する比較データの1つまたは複数のビットと比較すべきデータの1つまたは複数のビットの有効性を示す少なくとも1つの有効性インジケータを入力として受信する。データと比較データおよび少なくとも1つの有効性インジケータとの比較に応じて、一致ラインに結合された少なくとも1つのコンパレータ出力を選択的に切り替えるためにスタティックベースコンパレータが設けられ、そのように構成される。有効性インジケータが有効データを示す場合、スタティックベースコンパレータは、データと対応する比較データとの間の一致または不一致のいずれかを示すコンパレータ出力を駆動するように切り替わる。有効性インジケータが無効データを示す場合、スタティックベースコンパレータは、データと対応する比較データとの間の一致があるか否かにかかわらず切り替える電力を損失することなしにコンパレータ出力上に不一致を与える。このようにして、スタティックベースコンパレータは、比較データの変更に応じて、無効とマークされたデータについてコンパレータ出力を切り替える電力を損失しないように構成される。データが無効とマークされたときにコンパレータ出力を切り替える電力を損失しないように構成されたスタティックベースコンパレータを与えることによって、回路および/またはその重要な経路に対するパフォーマンス劣化を最小限に抑えるかまたはこれをなくして電力節約を実現できる。
【００１１】
開示する実施形態では、スタティックベースコンパレータは、連想メモリ(CAM)に記憶されたタグデータにアクセスするためのCAM中で採用され得る。CAMは、CAM中のタグデータのビットごとにスタティック論理ベース(「スタティックベース」)コンパレータを含む。また、所与のタグデータが有効であるかどうかを示す有効性インジケータがCAM中に与えられる。CAMに与えられた比較データを変更することによってデータルックアップがCAM中で実行される。CAM中の各スタティックベースコンパレータは、対応するタグデータと比較データおよびタグデータのための有効性インジケータとの比較に応じてコンパレータ出力を切り替えるように構成される。
【００１２】
無効タグデータについてコンパレータ出力を切り替える電力を損失しないスタティックベースコンパレータを採用するCAM実施形態について説明する前に、無効タグデータについてコンパレータ出力を切り替える電力を損失するCAMの例について最初に説明する。図２および図３に、そのような例を示す。図２は、CAM中のあるタグデータフィールドのためのスタティックベースコンパレータ24のゲート図である。図２に示すように、M+1ビットから構成されるタグデータフィールド26からの各ビットは、専用の排他的NOR(XNOR)ゲート28・30・32・34・36に入力される。各XNORゲート28・30・32・34・36への他の入力は、比較データ38からの対応するビットである。タグデータフィールド26の所与のビットが比較データ38の対応するビットに一致する場合、論理高(「1」)がXNORゲート28・30・32・34・36から出力ライン40・42・44・46・48に出力される。XNORゲート28・30・32・34・36からの出力ライン40・42・44・46・48上の信号が結合論理49において結合される。図示の例では、結合論理49は、出力信号40・42・44・46・48を受信し、出力信号を生成する1つまたは複数のNANDゲート52・54を備え、出力信号は、次いで、NORゲート56を介して一緒にNORされて、一致ラインに結合された一致ライン出力58を与える。タグデータフィールド26のすべてのビットが比較データ38のすべての対応するビットに一致する場合、一致ライン出力58は一致を示すために論理高(「1」)として生成される。一致ライン出力58は、有効データ(VLD)ライン60の形態で与えられる有効性インジケータによってさらにゲートされ、その後、出力信号40・42・44・46・48のうちの1つまたは複数と結合される前に、バッファ62に入力される。VLDライン60が無効データを示す場合、タグデータフィールド26中のタグデータが比較データ38に一致するかどうかにかかわらず、一致ライン出力58は不一致を示すために生成される。
【００１３】
図２のスタティックベースコンパレータ24は、ダイナミックベースコンパレータに勝る電力節約を実現するが、電力節約は、XNORゲート28・30・32・34・36およびNANDゲート52において行われる切替えによって逓減され得る。スタティックベースコンパレータ24に入力されるタグデータフィールド26中のタグデータが有効でない場合でも、XNORゲート28・30・32・34・36およびNANDゲート52は、比較データ38と比較データ38の各変更との比較を実行するように依然として切り替わる。これを、図３に示す例示的なCAM74によってさらに示す。図３のCAM74は回路図として示されている。CAM74は、スタティックベースコンパレータ78に結合されたメモリ76を含む。スタティックベースコンパレータは、コンパレータ中の組合せ論理を評価するためにクロック信号を使用しないスタティック論理において採用されるコンパレータである。メモリ76は、一般に要素と呼ばれる1つまたは複数のメモリセル80を含む。各メモリセル80は、タグデータの1ビットを記憶するように構成される。タグデータは、検索または比較データ(CD)98と比較されるCAM74に記憶されたデータである。メモリセル80からデータを読み取ると、読み取られたデータは、駆動ライン92上でアサートされ、スタティックCMOSインバータ94(「インバータ94」)に供給される。
【００１４】
インバータ94の出力はタグデータ出力96を与える。タグデータ出力96はTAG<0〜N, 0>〜TAG<0〜N, M>とラベルをつけられ、ここで、MおよびNは0であるかまたは0よりも大きい任意の整数である。この記法は、CAM74中に長さM+1ビットのタグデータを与えるためにM+1個のメモリセル80(すなわち、0〜M)が設けられることを意味する。この記法はまた、CAM74中にそれぞれ長さM+1ビットから構成されるタグデータのN+1アレイ(すなわち、0〜N)が設けられることを意味する。したがって、図３には2つのメモリセル80が示されているが、タグデータのビットまたはワードのいずれかを形成するために1つまたは複数の任意の数のメモリセル80が「M+1」個のメモリセル80まで設けられることを理解されたい。タグデータのアレイを与えるために任意の数のメモリセル80のアレイを設けることができる。
【００１５】
CAM74中でのルックアップ中に、メモリセル80から読み取られたタグデータがタグデータ出力96に与えられ、コンパレータ78に与えられ、比較データ98と比較される。比較データ98は、CAM中でのルックアップ演算の一部としてタグデータと比較するためにコンパレータ78に与えられる単なる検索データである。比較データ98は、CAM74中のすべてのコンパレータ78に入力され、それらの間で共有される。比較データ98は、タグデータのビット数と同じビット数(すなわち、M+1)から構成される。タグデータ出力96の各ビットおよび比較データ98の対応するビットは、専用のスタティックベースコンパレータ回路100に入力される。スタティックベースコンパレータ回路100は、排他的NOR(XNOR)ゲートを形成するために、それぞれ、共通コンパレータ出力110を駆動するPチャネルMOSトランジスタ106とNチャネルMOSトランジスタ108とから構成された、第1のパスゲート102と第2のパスゲート104との相補ペアを含むCMOSゲートから構成される。コンパレータ出力110は、第1のパスゲート102と第2のパスゲート104の切替えから生じる出力である。タグデータ出力96は、第1の信号を介して第1のパスゲート102に入力される。インバータ112は、この例ではタグデータ出力96の補数である、第1の信号に依存する第2の信号を第2のパスゲート104に与える。
【００１６】
タグデータ出力96の論理値と比較データ98の対応するビットとが同じであるとき、(論理低(「0」)の場合は)第1のパスゲート102または(論理高(「1」)の場合は)第2のパスゲート104は、状態を切り替え、タグデータ出力96をパスして、コンパレータ出力110を低(「0」)に駆動して一致を示す。しかしながら、タグデータ出力96と比較データ98の対応するビットとが一致しないとき、スタティックベースコンパレータ回路100は、コンパレータ出力110を高(「1」)に駆動して不一致を示す。したがって、スタティックベースコンパレータ回路100は、この例では排他的OR(XOR)ゲートを形成する。いずれの場合も、タグデータ出力96と比較データ98の対応するビットとの間に一致または不一致が存在するかどうかにかかわらず、第1のパスゲート102または第2のパスゲート104のいずれかが切り替わってコンパレータ出力110を駆動し、対応するタグデータが有効であるどうかにかかわらず、一致または不一致のいずれかを示す。したがって、図３のCAM74中のコンパレータ回路100は、タグデータが無効とマークされた場合でも、比較データ98の変更ごとにタグデータ出力96と比較データ98の対応するビットとの間の比較を実行するための切替え電力を損失する。
【００１７】
コンパレータ出力110は、XORをXNORゲートに変換するためのインバータ114などの1つまたは複数の追加の論理ゲートを通してパスされて、最終的に組合せゲート116に到達する前に追加の出力115を与える。組合せゲート116は、この例ではANDゲートであり、タグデータのすべてのビットについてスタティックベースコンパレータ回路100からのコンパレータ出力110を組み合わせる。タグデータのすべてのビットが比較データ98の対応するビットに一致する場合、一致ライン(ML)118が駆動されて一致を示す。ML118の出力をゲートするために、有効データ(VLD)ライン120の形態の有効性インジケータも組合せゲート116に与えられる。VLDライン120は、タグデータに対応する有効ビット中の値から駆動される。タグデータが有効でない場合、タグデータ出力96と比較データ98の対応するビットとの間に一致が実際に存在するかどうかにかかわらず、VLDライン120が駆動されて不一致を強制することになる。
【００１８】
図４に、一実施形態による、比較データ98が変更されたときに、無効とマークされたタグデータについて図３のCAM74のコンパレータ回路100における切替えをなくすための論理テーブル122を示す。タグデータ出力96(TAG <0〜N, 0〜M>)およびタグデータ出力96の補数(〜TAG <0〜N, 0〜M>)は、それぞれ第1のパスゲート102および第2のパスゲート104への入力である。図３のCAM74の動作を事例1および事例4に示す。これらの事例では、タグデータ出力96(TAG<0〜N>)とタグデータ出力96の補数(〜TAG<0〜N>)は、常に相反するように強制される。したがって、パスゲート102・104の1つは、タグデータ出力96に対応するタグデータが無効とマークされているかどうかにかかわらず、比較データ98の変更に応じて切り替わり、電力を損失することになる。しかしながら、論理テーブル122の事例2および事例3に示すように、タグデータ出力96(TAG<0〜N>)とタグデータ出力96の補数(〜TAG<0〜N>)の両方が論理低(「0」)または論理高(「1」)のいずれかに強制された場合、第1のパスゲート102および第2のパスゲート104は、比較データ98の変更に応じて切り替わらないことになる。コンパレータ出力110は、常に(事例2の場合は)論理低(「0」)または(事例3の場合は)論理高(「1」)のいずれかのままとなることになる。したがって、VLDライン120を使用してタグデータ出力96(TAG<0〜N>)とタグデータ出力96の補数(〜TAG<0〜N>)との間で同じ論理値を強制した場合、第1のパスゲート102および第2のパスゲート104は、比較データ98の変更に応じて切り替わらないことになる。その結果、論理テーブル122中の論理が採用された場合、第1のパスゲート102および第2のパスゲート104は、対応するタグデータが無効とマークされたときに比較データ98の変更に応じて切り替える電力を損失しないことになる。
【００１９】
この点について、本明細書および本出願の残りで説明する実施形態は、タグデータと対応する比較データおよびタグデータの有効性を示す少なくとも1つの有効性インジケータとの比較に応じて、コンパレータ出力を選択的に切り替えるように構成されたスタティックベースコンパレータを採用するCAMのための回路、論理、および関係する方法を提供する。図５に、対応するタグデータが無効とマークされたときに比較データ98の変更に応じてコンパレータ出力を切り替えないように構成されたコンパレータ回路を含むCAM130の一例を示す。CAM130は、図４の論理テーブル122中の事例3に従って挙動するように構成される。この点について、VLDライン120が無効タグデータを示す場合、対応するコンパレータ回路は、比較データの変更に応じて状態を切り替えず、したがって、無効とマークされたタグデータについて比較を実行するための電力を消費しない。
【００２０】
図５に示すように、CAM130は、タグデータの1つまたは複数のビットを記憶するためのメモリ132と、メモリ132に記憶されたタグデータをCAM130に入力される比較データ98と比較するためのスタティックベースコンパレータ134とを含む。この例では、CAM130に記憶され、比較データ98と比較されるデータは、タグデータである。ただし、他のタイプのデータを与え、比較データ98と比較することもできる。メモリ132およびスタティックベースコンパレータ134は、図３のCAM74とのいくつかの共通の構成要素を含んでいる。これらは、図３と図５とで共通の要素番号で示される。これらの共通の構成要素の前述の説明は、別段に記載されていない限り、図５のCAM130に一般に適用可能であり、したがってここでは繰り返さない。
【００２１】
CAM130中でのルックアップ中に、メモリセル80から読み取られたタグデータが駆動ライン92上でアサートされ、インバータ94に供給されてタグデータ出力96を与える。図５のCAM130では、NMOSトランジスタ136とPMOSトランジスタ138とから構成された制御回路が各インバータ94に設けられて、タグデータ出力96をゲートする。タグデータが有効である場合、VLDライン120はNMOSトランジスタ136にインバータ94をVSSに結合させ、その結果、メモリセル80の記憶値が依然としてタグデータ出力96上でアサートされる。しかしながら、タグデータが有効でない場合、VLDライン120はPMOSトランジスタ138にタグデータ出力96をインバータ94からVDDまたは論理高(「1」)にプルさせる。したがって、無効とマークされたタグデータの場合、第1のパスゲート102に入力された信号は、タグデータフィールドのメモリセル80の記憶値にかかわらず、VDDまたは論理高(「1」)となることになる。
【００２２】
同様に、NMOSトランジスタ140とPMOSトランジスタ142とから構成された制御回路も各CMOSインバータ112に設けられ、この例ではタグデータ出力96の補数である、第2のパスゲート104に入力される第2の信号を与える。タグデータが有効である場合、VLDライン120(「1」)はNMOSトランジスタ140にインバータ112をVSSに結合させ、その結果、タグデータ出力96の補数の値が第2のパスゲート104に入力される。しかしながら、タグデータが無効とマークされた場合、VLDライン120(「0」)はPMOSトランジスタ142にインバータ112の出力をVDDまたは論理高(「1」)にプルさせる。したがって、タグデータが無効であるとき、VLDライン120は、タグデータのビットごとに第1のパスゲート102および第2のパスゲート104への両方の入力をVDDまたは論理高(「1」)に強制する。図４の論理テーブル122の事例3に与えたように、第1のパスゲート102および第2のパスゲート104への両方の入力が論理高(「1」)に強制されたとき、コンパレータ出力110もVDDまたは論理高(「1」)に駆動されることになる。したがって、比較データ98が変化した場合でも、第1のパスゲート102および第2のパスゲート104への入力およびコンパレータ出力110は同じ論理状態のままとなることになる。したがって、第1のパスゲート102および第2のパスゲート104は、コンパレータ出力110の状態を切り替えず、したがって、無効とマークされたタグデータについて状態を切り替える電力を損失しないことになる。コンパレータ出力110上の論理高(「1」)は、インバータ114を駆動し、インバータ114は、コンパレータ出力110を反転して追加の出力115を与え、追加の出力115は、次いで、随意にVLDライン120とともに、組合せゲート116において組み合わせられて、ML118を生成する。
【００２３】
したがって、図５のCAM130中の各メモリセル80中の2つのトランジスタと各スタティックベースコンパレータ回路100中の2つのトランジスタとの追加のために、無効タグデータを比較データ98と比較するための切替え電力の損失がなくなる。この電力節約は、比較データ98を受信するノードである、CAM130の重要な経路に対するパフォーマンス劣化がまったくなしまたは最小で達成される。CAM130をモデルとして使用して、それぞれ長さ5ビットの64個のタグデータエントリを有する、65ナノメートル(nm)、42ビットRAMについて電力節約を推定した。32個のタグデータエントリが有効とマークされ、残りの32個のタグデータエントリが無効とマークされたと仮定して、割振りと検索/RAM読取りという2つの機能を実行した。いずれの機能でも、図３のCAM74中に設けられたスタティックベースコンパレータ回路100よりも1ミリワット(mW)の電力節約が達成できると推定された。これは、割振り機能については約25%の電力節約、検索/RAM読取り機能については6.5%の電力節約に等しい。
【００２４】
図６に、比較データ98の変更に応じて、対応するタグデータが無効とマークされたときにコンパレータ出力を切り替えないように構成されたスタティックベースコンパレータ回路100を同じく含むCAM144の代替実施形態を示す。CAM144は、図４の論理テーブル122の事例2に従って挙動するように構成され、それにより第1のパスゲート102および第2のパスゲート104への両方の入力上で論理低(「0」)が駆動されて、対応するタグデータが無効とマークされたときにコンパレータ出力100の切替えを防ぐ。これは、第1のパスゲート102および第2のパスゲート104の両方の入力上で論理高(「1」)が駆動されて、対応するタグデータが無効とマークされたときにコンパレータ出力110の切替えを防ぐ、図５のCAM130とは反対である。この点について、図５のCAM130中のVLDライン120とは反対に、タグデータが論理高(「1」)のときは無効であり、論理低(「0」)のときは有効であることを示す、VLDライン150の形態の有効性インジケータが与えられる。
【００２５】
図６に示すように、CAM144は、タグデータを記憶するためのメモリ146と、メモリ146からのタグデータ出力96を対応する比較データ98と比較するためのスタティックベースコンパレータ148とを含む。メモリ146およびスタティックベースコンパレータ148は、図５のCAM130および図３のCAM74とのいくつかの共通の構成要素を含んでいる。これらは、これらの図の間で共通の要素番号で示される。これらの共通の構成要素の前述の説明は、別段に記載されていない限り、図６のCAM144に一般に適用可能であり、したがってここでは繰り返さない。
【００２６】
図６のCAM144中でのルックアップ中に、メモリセル80からの読取りタグデータが駆動ライン92上でアサートされ、スタティックインバータ94に供給されてタグデータ出力96を与える。PMOSトランジスタ152とNMOSトランジスタ154とから構成された制御回路が各インバータ94に設けられて、タグデータ出力96をゲートする。タグデータが有効とマークされた場合、〜VLDライン150は論理低(「0」)となり、PMOSトランジスタ152にVDDをインバータ94に結合させ、その結果、メモリセル80の記憶値がタグデータ出力96上でアサートされる。しかしながら、タグデータが無効とマークされた場合、〜VLDライン150は論理高(「1」)となり、NMOSトランジスタ154にタグデータ出力96をVSSまたは論理低にプルさせる。したがって、無効とマークされたタグデータの場合、第1のパスゲート102への入力信号は、タグデータフィールドのメモリセル80の記憶値にかかわらず、VSS(「0」)となることになる。
【００２７】
同様に、PMOSトランジスタ156とNMOSトランジスタ158とから構成された制御回路も各インバータ112に設けられ、この例ではタグデータ出力96の補数である第2の信号を第2のパスゲート104に与える。タグデータが有効とマークされた場合、〜VLDライン150(「0」)はPMOSトランジスタ156にCMOSインバータ112をVDD(「1」)に結合させ、その結果、タグデータ出力96の補数の値が第1のパスゲート102に入力される。しかしながら、タグデータが無効とマークされた場合、〜VLDライン150(「1」)はNMOSトランジスタ158にCMOSインバータ112の出力をVSSまたは論理低(「0」)にプルさせ、第2のパスゲート104への入力を論理低(「0」)に強制する。したがって、タグデータが無効とマークされたとき、〜VLDライン150は、タグデータのビットごとに第1のパスゲート102および第2のパスゲート104への両方の入力をVSSまたは論理低(「0」)にする。第1のパスゲート102および第2のパスゲート104への両方の入力が論理低(すなわち、「0」)に強制されたとき、コンパレータ出力110もVSSまたは論理低に駆動されることになる。したがって、第1のパスゲート102および/または第2のパスゲート104に与えられた比較データ98が変化した場合でも、第1のパスゲート102および第2のパスゲート104への入力およびコンパレータ出力110は、同じ論理状態のままとなり、この例では論理低(「0」)である。第1のパスゲート102および第2のパスゲート104は、コンパレータ出力110の状態を切り替えず、したがって、比較データ98が変化したとき、無効とマークされたタグデータについて状態を切り替える電力を損失しないことになる。コンパレータ出力110上の論理低(「0」)は、組合せゲート116に直接与えられるか、あるいはインバータ114を駆動し、インバータ114は、コンパレータ出力110を反転して追加の出力115を与え、追加の出力115は、次いで、随意に〜VLDライン150とともに、組合せゲート116(たとえば、ANDゲート)において組み合わせられ、ML118を生成する。インバータ114が設けられていない場合、相補論理の組合せゲート160が設けられることになる。
【００２８】
したがって、図５のCAM130の場合のように、各メモリセル80中の2つのトランジスタと各スタティックベースコンパレータ回路100中の2つのトランジスタとの追加のために、図６のCAM144中で無効タグデータを比較データ98と比較するための切替え電力の損失がなくなる。この電力節約は、比較データ98を受信するノードである、CAM144の重要な経路に対するパフォーマンス劣化がまったくなしまたは最小で達成される。
【００２９】
図７に、対応するタグデータが無効とマークされたときにコンパレータ出力を切り替えないように構成されたコンパレータ回路を同じく含むCAM162のさらに別の代替実施形態を示す。CAM162は、図４の論理テーブル122中の事例3および事例4に従って、および図５のCAM130のように挙動するように構成される。第1のパスゲート102および第2のパスゲート104への両方の入力上で同じ論理値が駆動されて、無効とマークされたタグデータについて比較データ98の変更に応じた切替えを防ぐ。この点について、図５のVLDライン120は、図６のCAM144中の〜VLDライン150とは反対に、タグデータが論理高(「1」)のときは有効であり、論理低(「0」)のときは無効であることを示す。
【００３０】
図７に示すように、CAM162は、1つまたは複数のタグデータビットを記憶するためのメモリ164と、メモリ164からの対応するタグデータを比較データ98と比較するためのスタティックベースコンパレータ166とを備える。メモリ164およびスタティックベースコンパレータ166は、図３のCAM74とのいくつかの共通の構成要素を含んでいる。これらは、図３と図７とで共通の要素番号で示される。これらの共通の構成要素の前述の説明は、別段に記載されていない限り、図７のCAM162に一般に適用可能であり、したがってここでは繰り返さない。
【００３１】
CAM162でのルックアップ中に、図５のCAM130中に与えられているように、メモリセル80からの読取りタグデータが駆動ライン92上でアサートされ、インバータ94に供給されてタグデータ出力96を与える。ただし、図５のCAM130とは異なり、タグデータ出力96をスタティックベースコンパレータ166に与える前にタグデータ出力96をさらにゲートすることはしない。これは、図３のCAM74と同様である。メモリセル80中に追加のトランジスタは不要である。タグデータ出力96(TAG<0〜N, 0>)は第1のパスゲート102に直接入力される。タグデータ出力は、排他的OR(XOR)ゲート168から構成される制御回路にも入力される。VLDライン150はXORゲート168にも入力される。XORゲート168の出力は、第2のパスゲート104に入力される第2の信号である。このようにして、VLDライン120が、無効タグデータを示す論理低(「0」)を含んでいるとき、第1のパスゲート102と第2のパスゲート104の両方への入力が同じ論理値となることになり、したがって、比較データ98が変更されたとき、第1のパスゲート102および第2のパスゲート104がコンパレータ出力110の状態を切り替えるのを防ぐ。タグデータ出力96は、論理低(「0」)であるか論理高(「1」)であるかにかかわらず、第1のパスゲート102と第2のパスゲート104の両方に入力されることになる。したがって、比較データ98の変更に応じて、無効とマークされたタグデータについて第1のパスゲート102および第2のパスゲート104を切り替えるのに消費電力が費やされない。しかしながら、VLDライン120が、有効なタグデータを示す論理高(「1」)を含んでいるとき、タグデータ出力96が第1の信号として第1のパスゲート102に入力されることになり、タグデータ出力96の補数が第2の信号として第2のパスゲート104に入力されることになる。したがって、タグデータが有効とマークされたときに第1のパスゲート102および第2のパスゲート104の通常動作についてタグデータを比較データ98と比較するために切替えが行われることになる。
【００３２】
図７のCAM162では、図５のCAM130および図６のCAM144のメモリセル80中に与えられているように、メモリセル80に追加のトランジスタは追加されない。ただし、スタティックベースコンパレータ回路100の各々にXORゲート168が追加される。XORゲート168は10個のトランジスタから構成される。したがって、図３のCAM74に対して図７のCAM162には正味8個の追加のトランジスタが追加される。これを図８の表170に示す。表170で示すように、比較データ98の変更に応じて、タグデータが無効とマークされたときにスタティックベースコンパレータ回路100が切り替わるのを防ぐために、図３のCAM74に対してCAM130およびCAM144では、メモリセル80およびスタティックベースコンパレータ回路100の各々に2つの追加のトランジスタが追加される。図７のCAM162では、図３のCAM74に対して、それぞれ図５および図６のCAM130およびCAM144中よりも4個多い、8個のトランジスタが追加される。スタティックベースコンパレータ回路100に追加のトランジスタが2個しか追加されない図５および図６のCAM130およびCAM144とは対照的に、図７のCAM162中の8個の追加のトランジスタすべてがコンパレータ回路100中に設けられる。CAM162中には複数の入力ポートが設けられており、したがってタグデータのあらゆるビットの各入力ポートにスタティックベースコンパレータ166が必要である場合、スタティックベースコンパレータ回路100中に設けられるどの追加のトランジスタも入力ポートの数を乗算されることになる。
【００３３】
本明細書で説明するCAMは、複数の書込みポートを含んでいるマイクロプロセッサレジスタファイルを有するマイクロプロセッサ中で採用され得る。複数の書込みポートは、様々なパイプラインステージからの書込みに適応する。マイクロプロセッサレジスタファイルはまた、複数の読取りポートを含んでいてもよい。複数の読取りポートおよび書込みポートを有すると、CAM中のコンパレータ回路の数が増加する。したがって、タグデータが無効とマークされたときにコンパレータ出力を切り替えないように構成されたスタティックベースコンパレータを有するCAMを採用すると、複数のポートを有するマイクロプロセッサについて一層大きい電力節約を実現することができる。
【００３４】
この点について、図９に、複数のポートを採用するマイクロプロセッサのCAM172を示す。複数のポートは、複数の読取りポート、複数の書込みポート、または複数の読取りポートと書込みポートの両方を含み得る。複数のタグデータフィールド174・176・178がCAM172中に含まれて、タグデータのアレイを形成する。この例では、それぞれ長さ「M+1」ビットを有する「N+1」個のタグデータフィールドが与えられ、ここで、MおよびNは0であるかまたは0よりも大きい任意の整数である。タグデータフィールド174・176・178に記憶されたタグデータの各ビットは、タグデータ出力ライン180・182・184を介して出力され、スタティックベースコンパレータ186・188・190に入力される。タグデータのタグビットごとにスタティックベースコンパレータ186・188・190が設けられる。比較データ193は、タグデータの各ビットを比較データ193中の対応するビットと比較するためにスタティックベースコンパレータ186・188・190のすべてにわたって共有される。各スタティックベースコンパレータ186・188・190は、比較データ193が変化し、対応するタグデータが無効とマークされたときにそれらのスタティックベースコンパレータ出力192・194・196を切り替える電力を損失しないように構成される。スタティックベースコンパレータ186・188・190が、無効とマークされたタグデータについてコンパレータ出力192・194・196を切り替える電力を損失するのを防ぐために、前に説明した方法およびコンパレータ回路のいずれもこの点について採用される。CAM172は、複数の入力ポートを有するマイクロプロセッサ中で採用されるので、タグデータのビットごとに複数のコンパレータが設けられる。これは、スタティックベースコンパレータ186・188・190の各々において「0-P」記法によって示されており、P+1個の入力ポートを可能にするためにスタティックベースコンパレータ186・188・190中にP+1個のコンパレータ回路が設けられることを意味する。スタティックベースコンパレータ186・188・190からのコンパレータ出力192・194・196は、組合せ論理198・200・202に入力されて、一致ライン(ML)204・206・208を生成する。ML204・206・208は、随意のエンコーダ209に入力されて、タグデータと比較データ193との間に一致が存在する、タグデータフィールド174・176・178の一致ロケーション210を与える。
【００３５】
本明細書で開示したCAM、CAM回路、および方法は、限定はしないが、マイクロプロセッサベースの回路またはシステムを含む任意の回路中で採用できる。本明細書で開示するCAMは、限定はしないが、システムメモリまたはキャッシュメモリを含む任意のタイプのスタティックベースメモリ中で採用できる。本明細書で開示するCAM、CAM回路、および方法は、任意のタイプの電子デバイス中に含めるか、またはその中で採用できる。そのような電子デバイスの例には、限定はしないが、モバイルフォン、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、無線、衛星ラジオ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤがある。
【００３６】
図１０に、前に説明したCAMのようなCAMを採用し得るプロセッサベースのシステム211の一例を示す。この例では、プロセッサベースのシステム211は、マイクロプロセッサ214を含む中央処理装置(CPU)212を含む。マイクロプロセッサ214は、タグデータアレイ218との間でデータの書込みおよび読取りを行うためにCAM216と通信するように構成される。CPU212はシステムバス219に結合され、システムバス219は、プロセッサベースのシステム211中に含まれる他のデバイスを相互結合する。よく知られているように、CPU212は、システムバス219を介してアドレス、制御、およびデータ情報を交換することによってこれらの他のデバイスと通信する。これらのデバイスは、任意のタイプのデバイスを含み得る。図１０に示すように、これらのデバイスは、例として、システムメモリ220と、1つまたは複数の入力デバイス222と、1つまたは複数の出力デバイス224と、ネットワークインターフェースデバイス226と、ディスプレイコントローラ228とを含み得る。
【００３７】
入力デバイス222は、限定はしないが、入力キー、スイッチ、ボイスプロセッサなどを含む、任意のタイプの入力デバイスを含み得る。出力デバイス224は、限定はしないが、オーディオインジケータ、ビデオインジケータ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス226は、ネットワーク230との間でデータを交換できるように構成された任意のデバイスとすることができる。ネットワーク230は、限定はしないが、ワイヤードまたはワイヤレスネットワーク、プライベートまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス226は、所望の任意のタイプの通信プロトコルをサポートすることができる。CPU212は、システムバス219を介してシステムメモリ220にアクセスすることができる。システムメモリ220はスタティックメモリ232および/またはダイナミックメモリ234を含み得る。
【００３８】
CPU212は、ディスプレイ236に送信される情報を制御するためにシステムバス219を介してディスプレイコントローラ228にアクセスすることもできる。ディスプレイコントローラ228は、メモリコントローラ237と、CPU212との通信に応答してディスプレイ236に送信すべきデータを記憶するためのメモリ238とを含み得る。ディスプレイコントローラ228は、ビデオプロセッサ240を介して表示すべき情報をディスプレイ236に送信し、ビデオプロセッサ240は、表示すべき情報をディスプレイ236に好適なフォーマットに処理する。ディスプレイ236は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。
【００３９】
さらに、本明細書で開示する実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００４０】
本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、限定はしないが、タグデータを含む任意のタイプのデータを記憶し、比較することができ、また、論理真および論理偽を与えるために任意の信号レベルで実装または実行できる。論理真は論理高(「1」, VDD)として、論理偽は論理低(「0」, VSS)として表すことができ、その逆も同様である。本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、および回路はまた、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェア構成要素、あるいは本明細書に記載の機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行できる。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装できる。
【００４１】
本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および説明を与えるために説明したものであることに留意されたい。説明した動作は、図示の順序以外の多数の異なる順序で実行できる。さらに、単一の動作ステップで説明される動作は、実際はいくつかの異なるステップで実行され得る。さらに、例示的な実施形態で説明した1つまたは複数の動作ステップを組み合わせることができる。フローチャート図に示した動作ステップは、当業者には容易に明らかなように、多数の様々な変更が可能であることを理解されたい。また、情報および信号は、様々な異なる技術および技法のいずれかを使用して表現できることを当業者なら理解されよう。たとえば、上記の説明全体にわたって言及されるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表すことができる。
【００４２】
本明細書で開示する実施形態に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで実施するか、プロセッサによって実行されるソフトウェアモジュールで実施するか、またはその2つの組合せで実施することができる。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化することができる。プロセッサおよび記憶媒体はASIC中に常駐することができる。ASICはリモート局中に常駐することができる。代替として、プロセッサおよび記憶媒体は、リモート局、基地局、またはサーバ中に個別構成要素として常駐することができる。
【００４３】
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４４】
10  CAM
12  タグデータフィールド
14  コンパレータ
16  RAMデータフィールド
18  比較データ
20  一致ライン
22  有効ビット(VLD)
24  スタティックベースコンパレータ
26  タグデータフィールド
28  排他的NOR(XNOR)ゲート
30  排他的NOR(XNOR)ゲート
32  排他的NOR(XNOR)ゲート
34  排他的NOR(XNOR)ゲート
36  排他的NOR(XNOR)ゲート
38  比較データ
40  出力ライン
42  出力ライン
44  出力ライン
46  出力ライン
48  出力ライン
49  組合せ論理
52  NANDゲート
54  NANDゲート
56  NORゲート
58  一致ライン出力
60  有効データ(VLD)ライン
62  バッファ
74  CAM
76  メモリ
78  スタティックベースコンパレータ
80  メモリセル
92  駆動ライン
94  スタティックCMOSインバータ
96  タグデータ出力
98  比較データ(CD)
100  スタティックベースコンパレータ回路
102  第1のパスゲート
104  第2のパスゲート
106  PチャネルMOSトランジスタ
108  NチャネルMOSトランジスタ
110  共通コンパレータ出力
112  インバータ
114  インバータ
115  追加の出力
116  組合せゲート
118  一致ライン(ML)
120  有効データ(VLD)ライン
122  論理テーブル
130  CAM
136  NMOSトランジスタ
138  PMOSトランジスタ
140  NMOSトランジスタ
142  PMOSトランジスタ
144  CAM
146  メモリ
148  スタティックベースコンパレータ
150  〜VLDライン
152  PMOSトランジスタ
154  NMOSトランジスタ
156  PMOSトランジスタ
158  NMOSトランジスタ
160  組合せゲート
162  CAM
164  メモリ
166  スタティックベースコンパレータ
168  排他的OR(XOR)ゲート
172  CAM
174  タグデータフィールド
176  タグデータフィールド
178  タグデータフィールド
180  タグデータ出力ライン
182  タグデータ出力ライン
184  タグデータ出力ライン
186  スタティックベースコンパレータ
188  スタティックベースコンパレータ
190  スタティックベースコンパレータ
192  スタティックベースコンパレータ出力
193  比較データ
194  スタティックベースコンパレータ出力
196  スタティックベースコンパレータ出力
198  組合せ論理
200  組合せ論理
202  組合せ論理
204  一致ライン(ML)
206  一致ライン(ML)
208  一致ライン(ML)
209  エンコーダ
210  一致ロケーション
211  プロセッサベースのシステム
212  中央処理装置(CPU)
214  マイクロプロセッサ
216  CAM
218  タグデータアレイ
219  システムバス
220  システムメモリ
222  入力デバイス
224  出力デバイス
226  ネットワークインターフェースデバイス
228  ディスプレイコントローラ
230  ネットワーク
232  スタティックメモリ
234  ダイナミックメモリ
236  ディスプレイ
237  メモリコントローラ
238  メモリ
240  ビデオプロセッサ
【図１】
0005599820.tif 000002
【図２】
0005599820.tif 000003
【図３】
0005599820.tif 000004
【図４】
0005599820.tif 000005
【図５】
0005599820.tif 000006
【図６】
0005599820.tif 000007
【図７】
0005599820.tif 000008
【図８】
0005599820.tif 000009
【図９】
0005599820.tif 000010
【図１０】
0005599820.tif 000011