(57)【特許請求の範囲】
【請求項１】
コンテントアドレサブルメモリであって、
あるクロックサイクルで検索動作を実行し、前記検索動作が完了したときにインターロック信号を出力するように構成された検索ポートであって、前記クロックサイクルは、前記検索動作のための期間と検索プリチャージ動作のための期間とを含む、検索ポートと、
データの書き込みまたは読み出しを実行するように構成されたメンテナンスポートであって、前記データの書き込みまたは読み出しの少なくとも第１のステップは前記検索プリチャージ動作のための期間中に実行可能であり、前記データの書き込みまたは読み出しの少なくとも第２のステップは前記検索動作のための期間中に実行可能である、メンテナンスポートと、
を備え、
連続する第１及び第２の読み出し動作について、前記第１の読み出し動作のための前記第２のステップが実行される前記クロックサイクルの間に、前記第２の読み出し動作のための前記第１のステップが実行可能である、コンテントアドレサブルメモリ。
【請求項２】
請求項１記載のコンテントアドレサブルメモリであって、
前記インターロック信号は、前記検索プリチャージ動作のための期間の開始時に伝送される、コンテントアドレサブルメモリ。
【請求項３】
請求項２記載のコンテントアドレサブルメモリであって、
前記少なくとも第１のステップは前記検索動作のための期間中に実行可能ではなく、前記少なくとも第２のステップは書き込みまたは読み出し動作のためのセットアップを含み、前記少なくとも第１のステップは前記書き込みまたは読み出し動作を含む、コンテントアドレサブルメモリ。
【請求項４】
請求項２記載のコンテントアドレサブルメモリであって、
前記メンテナンスポートは、読み出し動作のための第１のクロックサイクルの期間中にデータのアドレスにアクセスし、前記読み出し動作のための第２のクロックサイクルの期間中に前記アドレスにおける前記データをセンスおよびラッチするように構成されている、コンテントアドレサブルメモリ。
【請求項５】
請求項４記載のコンテントアドレサブルメモリであって、
検索動作は、前記第１のクロックサイクルおよび前記第２のクロックサイクルの双方の期間中に、前記検索ポートによって実行される、コンテントアドレサブルメモリ。
【請求項６】
請求項１記載のコンテントアドレサブルメモリであって、
前記コンテントアドレサブルメモリは、少なくとも１つのマクロを備え、前記少なくとも１つのマクロは、複数のコアを備え、各コアは、前記メンテナンスポートと前記検索ポートとを備える、コンテントアドレサブルメモリ。
【請求項７】
請求項６記載のコンテントアドレサブルメモリであって、
各コアは、複数ワードの列を備え、各ワードは、１つの有効ビットを備える、コンテントアドレサブルメモリ。
【請求項８】
請求項６記載のコンテントアドレサブルメモリであって、
各コアは、行デコーダと優先順位エンコーダとを備える、コンテントアドレサブルメモリ。
【請求項９】
請求項１記載のコンテントアドレサブルメモリであって、
前記検索ポートと前記メンテナンスポートは、複数のサブブロックに対応し、各サブブロックは、メモリアレイにおけるワードの列を構成しており、
前記メンテナンスポートは、複数のサブブロック制御（ＳＢＣ）ユニットを備え、前記各ＳＢＣユニットは、前記検索ポートから前記インターロック信号を受け取って、Ｚデコード信号（Ｚｌ）を生成するように構成されており、前記Ｚデコード信号（Ｚｌ）は、前記複数のサブブロックのうちの選択された１つのサブブロックのローカルワード線を活性化するように構成されている、コンテントアドレサブルメモリ。
【請求項１０】
請求項９記載のコンテントアドレサブルメモリであって、
前記各ＳＢＣユニットは、さらに、センスアンプ制御信号と、書き込みドライバ制御信号と、プリチャージ制御信号と、を生成するように構成されている、コンテントアドレサブルメモリ。
【請求項１１】
請求項９記載のコンテントアドレサブルメモリであって、
前記各ＳＢＣユニットは、クロック調停ユニットを備え、前記クロック調停ユニットは、前記検索ポートから前記インターロック信号を直接受け取り、また、マスタクロック信号を受け取るように構成されており、前記クロック調停ユニットは、サブブロックＺバッファおよびローカル制御クロックジェネレータに伝送されるローカル制御クロックを生成するように構成されている、コンテントアドレサブルメモリ。
【請求項１２】
請求項１１記載のコンテントアドレサブルメモリであって、
前記ローカル制御クロックジェネレータは、少なくとも、プリチャージクロックと、書き込みクロックと、センスクロックとを、生成するように構成されている、コンテントアドレサブルメモリ。
【請求項１３】
請求項１１記載のコンテントアドレサブルメモリであって、
前記Ｚデコード信号（Ｚｌ）は、前記ＳＢＣユニットの前記サブブロックＺバッファから出力される、コンテントアドレサブルメモリ。
【請求項１４】
請求項９記載のコンテントアドレサブルメモリであって、
前記メンテナンスポートは、さらに、グローバル制御リセット信号と、グローバル制御読み出し信号と、グローバル制御書き込み信号と、サブブロックアドレッシングとを、前記各ＳＢＣユニットに伝送するように構成されている、グローバルメンテナンス制御を備える、コンテントアドレサブルメモリ。
【請求項１５】
請求項１４記載のコンテントアドレサブルメモリであって、
前記グローバルメンテナンス制御は、前記検索ポートが動作しない場合に、検索をシミュレートするための検索シミュレータと、クロックイネーブル論理と、クロックバッファと、制御回路と、を備えており、前記制御回路は、前記グローバル制御リセット信号と、前記グローバル制御読み出し信号と、前記グローバル制御書き込み信号とを生成するように構成されている、コンテントアドレサブルメモリ。
【請求項１６】
請求項１５記載のコンテントアドレサブルメモリであって、
前記クロックバッファは、マスタクロックを生成するように構成されており、前記マスタクロックは、各ＳＢＣユニット内のクロック調停ユニットに伝送される、コンテントアドレサブルメモリ。
【請求項１７】
２ポートのコンテントアドレサブルメモリであって、
あるクロックサイクルで検索動作を実行し、前記検索動作が完了したときにインターロック信号を出力するように構成された検索ポートであって、前記クロックサイクルは前記検索動作のための期間と検索プリチャージ動作のための期間とを含む、検索ポートと、
データの書き込みまたは読み出しの少なくとも第１のステップを、前記インターロック信号に応じて前記検索プリチャージ動作のための期間中に実行し、データの書き込みまたは読み出しの少なくとも第２のステップを前記検索動作のための期間中に実行するように構成されたメンテナンスポートと、
前記メンテナンスポートと前記検索ポートとの間に構成された複数のサブブロックメモリ列と、
を備え、
連続する第１及び第２の読み出し動作について、前記第１の読み出し動作のための前記第２のステップが実行される前記クロックサイクルの間に、前記第２の読み出し動作のための前記第１のステップが実行可能である、２ポートのコンテントアドレサブルメモリ。
【請求項１８】
請求項１７記載の２ポートのコンテントアドレサブルメモリであって、
前記インターロック信号は、前記検索プリチャージ動作のための期間の開始時に伝送される、２ポートのコンテントアドレサブルメモリ。
【請求項１９】
請求項１８記載の２ポートのコンテントアドレサブルメモリであって、
前記少なくとも第１のステップは前記検索動作のための期間中に実行可能ではなく、前記少なくとも第２のステップは書き込みまたは読み出し動作のためのセットアップを含み、前記少なくとも第１のステップは前記書き込みまたは読み出し動作を含む、２ポートのコンテントアドレサブルメモリ。
【請求項２０】
請求項１８記載の２ポートのコンテントアドレサブルメモリであって、
前記メンテナンスポートは、読み出し動作のための第１のクロックサイクルの期間中にデータのアドレスにアクセスし、前記読み出し動作のための第２のクロックサイクルの期間中に前記アドレスにおける前記データをセンスおよびラッチするように構成されている、２ポートのコンテントアドレサブルメモリ。
【請求項２１】
請求項２０記載の２ポートのコンテントアドレサブルメモリであって、
検索動作は、前記第１のクロックサイクルおよび前記第２のクロックサイクルの双方の期間中に、前記検索ポートによって実行される、２ポートのコンテントアドレサブルメモリ。
【請求項２２】
コンテントアドレサブルメモリであって、
検索動作を実行し、前記検索動作が完了したときにインターロック信号を出力するための検索ポートであって、前記検索動作はクロックサイクルでトリガ可能であり、前記クロックサイクルは検索動作のための期間と検索プリチャージ動作のための期間とを含む、検索ポートと、
前記コンテントアドレサブルメモリのアドレス位置でのデータの書き込みまたは読み出しの第１のステップを、前記インターロック信号に応じて前記検索プリチャージ動作のための期間に実行し、前記コンテントアドレサブルメモリのアドレス位置でのデータの書き込みまたは読み出しの第２のステップを前記検索動作のための期間に実行するためのメンテナンスポートと、
を備え、
連続する第１及び第２の読み出し動作について、前記第１の読み出し動作のための前記第２のステップが実行される前記クロックサイクルの間に、前記第２の読み出し動作のための前記第１のステップが実行可能である、コンテントアドレサブルメモリ。
【請求項２３】
請求項２２記載のコンテントアドレサブルメモリであって、
前記インターロック信号は、前記検索プリチャージ動作のための期間の開始時に伝送される、コンテントアドレサブルメモリ。
【請求項２４】
請求項２３記載のコンテントアドレサブルメモリであって、
前記第１のステップは前記検索動作のための期間中に実行可能ではなく、前記第２のステップは書き込みまたは読み出し動作のためのセットアップを含み、前記第１のステップは前記書き込みまたは読み出し動作を含む、コンテントアドレサブルメモリ。
【請求項２５】
請求項２３記載のコンテントアドレサブルメモリであって、
検索動作を実行するための前記検索ポートは、連続検索動作が実行される状態から前記連続検索動作が実行されない状態に変更されるように構成されている、コンテントアドレサブルメモリ。
【請求項２６】
コンテントアドレサブルメモリチップであって、
Ｎコアよりなる第１のセットを備える第１のマクロと、
Ｎコアよりなる第２のセットを備える第２のマクロと、
前記Ｎコアよりなる第１のセットの第１の側に結合された第１のメンテナンスポートと、
前記Ｎコアよりなる第２のセットの第１の側に結合された第２のメンテナンスポートと、
前記Ｎコアよりなる第１のセットの第２の側に結合され、あるクロックサイクルで検索動作を実行するように構成された第１の検索ポートであって、前記クロックサイクルは、前記検索動作のための期間と検索プリチャージ動作のための期間とを含む、第１の検索ポートと、
前記Ｎコアよりなる第２のセットの第２の側に結合され、前記クロックサイクルで検索動作を実行するように構成された第２の検索ポートと、
を備え、
前記第１の検索ポートは、前記第１の検索ポートで前記検索動作が完了したときに、前記Ｎコアよりなる第１のセットの各コアに１つずつ割り当てられるＮ個のインターロック信号よりなる第１のセットを出力するように構成され、
前記第２の検索ポートは、前記第２の検索ポートで前記検索動作が完了したときに、前記Ｎコアよりなる第２のセットの各コアに１つずつ割り当てられるＮ個のインターロック信号よりなる第２のセットを出力するように構成され、
前記第１のメンテナンスポートは、前記検索動作のための期間中に前記Ｎコアよりなる第１のセットの少なくとも１つを選択するステップである第２のステップを実行し、前記Ｎ個のインターロック信号よりなる第１のセットに応じて、前記検索プリチャージ動作のための期間中に前記Ｎコアよりなる第１のセットのうちの選択されたコアにおいて書き込みまたは読み出し動作を実行するステップである第１のステップを実行するように構成され、
前記第２のメンテナンスポートは、前記検索動作のための期間中に前記Ｎコアよりなる第２のセットの少なくとも１つを選択し、前記Ｎ個のインターロック信号よりなる第２のセットに応じて、前記検索プリチャージ動作のための期間中に前記Ｎコアよりなる第２のセットのうちの選択されたコアにおいて書き込みまたは読み出し動作を実行するように構成され、
連続する第１及び第２の読み出し動作について、前記第１の読み出し動作のための前記第２のステップが実行される前記クロックサイクルの間に、前記第２の読み出し動作のための前記第１のステップが実行可能である、コンテントアドレサブルメモリチップ。
【請求項２７】
コンテントアドレサブルメモリチップであって、
８コアよりなる第１のセットを備える第１のマクロと、
８コアよりなる第２のセットを備える第２のマクロと、
前記８コアよりなる第１のセットの第１の側に結合された第１のメンテナンスポートと、
前記８コアよりなる第２のセットの第１の側に結合された第２のメンテナンスポートと、
前記８コアよりなる第１のセットの第２の側に結合され、あるクロックサイクルで検索動作を実行するように構成された第１の検索ポートであって、前記クロックサイクルは、前記検索動作のための期間と検索プリチャージ動作のための期間とを含む、第１の検索ポートと、
前記８コアよりなる第２のセットの第２の側に結合され、前記クロックサイクルで検索動作を実行するように構成された第２の検索ポートと、
を備え、
前記第１の検索ポートは、前記第１の検索ポートで前記検索動作が完了したときに、前記８コアよりなる第１のセットの各コアに１つずつ割り当てられる８個のインターロック信号よりなる第１のセットを出力するように構成され、
前記第２の検索ポートは、前記第２の検索ポートで前記検索動作が完了したときに、前記８コアよりなる第２のセットの各コアに１つずつ割り当てられる８個のインターロック信号よりなる第２のセットを出力するように構成され、
前記第１のメンテナンスポートは、前記検索動作のための期間中に前記８コアよりなる第１のセットの少なくとも１つを選択するステップである第２のステップを実行し、前記８個のインターロック信号よりなる第１のセットに応じて、前記検索プリチャージ動作のための期間中に前記８コアよりなる第１のセットのうちの選択されたコアにおいて書き込みまたは読み出し動作を実行するステップである第１のステップを実行するように構成され、
前記第２のメンテナンスポートは、前記検索動作のための期間中に前記８コアよりなる第２のセットの少なくとも１つを選択し、前記８個のインターロック信号よりなる第２のセットに応じて、前記検索プリチャージ動作のための期間中に前記８コアよりなる第２のセットのうちの選択されたコアにおいて書き込みまたは読み出し動作を実行するように構成され、
連続する第１及び第２の読み出し動作について、前記第１の読み出し動作のための前記第２のステップが実行される前記クロックサイクルの間に、前記第２の読み出し動作のための前記第１のステップが実行可能である、コンテントアドレサブルメモリチップ。
【請求項２８】
コンテントアドレサブルメモリであって、
複数の検索動作を実行し、各検索動作が完了したときにインターロック信号を出力するように構成された第１のポートであって、各検索動作はあるクロックサイクルで実行され、前記クロックサイクルは前記検索動作のための期間と検索プリチャージ動作のための期間とを含む、第１のポートと、
前記コンテントアドレサブルメモリ内の位置でデータの書き込みまたは読み出し動作のための少なくとも１つの第２のステップを前記検索動作のための期間中に実行し、前記インターロック信号に応じて、前記コンテントアドレサブルメモリ内の位置で前記データの書き込みまたは読み出し動作のための少なくとも１つの第１のステップを前記検索プリチャージ動作のための期間中に実行するように構成された第２のポートであって、前記少なくとも１つの第２のステップは前記検索動作とともに実行可能であり、前記少なくとも１つの第１のステップは前記検索動作とともに実行可能ではない、第２のポートと、
を備え、
連続する第１及び第２の読み出し動作について、前記第１の読み出し動作のための前記第２のステップが実行される前記クロックサイクルの間に、前記第２の読み出し動作のための前記第１のステップが実行可能である、コンテントアドレサブルメモリ。
【請求項２９】
請求項２８記載のコンテントアドレサブルメモリであって、
前記データの書き込みまたは読み出し動作のための前記少なくとも１つの第１のステップは、前記複数の検索動作の間に実行される、コンテントアドレサブルメモリ。
【請求項３０】
請求項２８記載のコンテントアドレサブルメモリであって、
複数のコアを含み、各コアは前記第２のポートを含む、コンテントアドレサブルメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリ回路に関し、特に、連続検索機能を有するコンテントアドレサブルメモリ（ＣＡＭ）回路に関する。
【背景技術】
【０００２】
現代のコンピュータシステムやコンピュータネットワークでは、データを格納し、そこに格納されたデータに素早くアクセスするために、メモリデバイスが利用されている。コンテントアドレサブルメモリ（ＣＡＭ）は、高速アドレス検索を実行するためによく用いられる特殊なタイプのメモリデバイスである。例えば、インターネットルータは、指定されたデータのアドレスを検索するためにＣＡＭを備えていることが多い。ＣＡＭの使用によって、ルータは、アドレスを検索することができ、この結果、複数のコンピュータシステム間で複数のネットワークを介した効率的な通信を行うことができる。ＣＡＭは、ルータの他、データベース、ネットワークアダプタ、画像処理、音声認識アプリケーションなどに使用される。
【０００３】
従来のＣＡＭは、通常、二次元的な行および列のセルからなるコンテントアドレサブルメモリのコアアレイを備えている。このようなアレイでは、各列は、通常、アドレスや、ポインタ、ビットパターンのエントリを有している。このような構成を有するＣＡＭは、従来のランダムアクセスメモリ（ＲＡＭ）のように、特定アドレスにおいて「読み出し」および「書き込み」動作を実行することができる。しかしながら、ＣＡＭは、ＲＡＭとは異なり、データのビットパターンを、予め格納されたエントリ（すなわち列）の全リスト（すなわち行）と同時に比較する、データ「検索」動作を実行する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のＣＡＭは、より高速に検索を実行する能力に関しては増強されているが、従来のＣＡＭでは、ＣＡＭメモリにおけるメンテナンス動作（例えば、読み出しおよび書き込み動作）を可能とするために、検索動作を停止させなければならない。その結果、最高速のＣＡＭであっても、メンテナンス動作が完了するまでは、１つまたはそれ以上のサイクルに渡って検索動作を停止させる必要がある。
【０００５】
以上から分かるように、メンテナンス動作を可能にすると同時に連続検索をも可能にすることにより、来たる検索に備えてＣＡＭコアをセットアップすることができるようなＣＡＭ回路が必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、検索ポートとメンテナンスポートとが分離されたコンテントアドレサブルメモリ（ＣＡＭ）アーキテクチャを提供することにより、上記の必要を満たす。検索ポートは、中断されることなくサイクル毎に検索を実行するように構成されており、メンテナンスポートは、検索を中断することなくメンテナンス動作を実行するように構成されている。なお、本発明は、プロセス、装置、システム、デバイス、方法を含む種々の形態で実現可能である。以下では、本発明のいくつかの実施形態を説明する。
【０００７】
一実施形態では、コンテントアドレサブルメモリ（ＣＡＭ）を開示する。ＣＡＭは、各クロックサイクルで検索動作を実行するための検索ポートと、コンテントアドレサブルメモリのアドレス位置でデータの書き込みおよび読み出しをするためのメンテナンスポートと、を備えている。また、インターロック信号が備えられており、検索ポートからメンテナンスポートに伝送されることにより、コンテントアドレサブルメモリに対してデータの書き込みおよび読み出しを実行すべき時を設定し、この結果、検索動作が中断することなく各クロックサイクルで継続する。インターロック信号は、検索動作の終了時および検索プリチャージ動作の開始時に伝送されることが好ましい。メンテナンスポートは、クロックサイクルの開始時に書き込み動作をセットアップし、検索動作の終了時および検索プリチャージ（またはリカバリ）動作の開始時に書き込み動作を実行するように構成されている。本実施形態の別の好ましい態様では、検索動作は、いつでも解除可能であり、この場合でも、要求された書き込みおよび読み出し動作を実行することができる。このため、検索動作は、読み出しまたは書き込み動作に影響されることなく、サイクル毎に動作を再開することができる。
【０００８】
別の実施形態では、２ポートのコンテントアドレサブルメモリ（ＣＡＭ）を開示する。この２ポートのＣＡＭは、メンテナンスポートと検索ポートとを備える。メンテナンスポートと検索ポートの間には、さらに、複数のサブクロックメモリ列が定義されている。また、インターロック信号が備えられており、検索ポートからメンテナンスポートに伝送することにより、要求された検索動作の期間中に、検索ポートが各クロックサイクルで検索動作を実行するのを中断しないように、メンテナンスポートがデータの書き込みおよび読み出しを実行すべき時を合図する。インターロック信号は、検索動作の終了時および検索プリチャージ動作の開始時に伝送されることが好ましい。別の好ましい特徴によれば、メンテナンスポートは、クロックサイクルの開始時に書き込み動作をセットアップし、検索動作の終了時および検索プリチャージ動作の開始時に書き込み動作を実行するように構成されている。
【０００９】
さらに別の実施形態では、コンテントアドレサブルメモリチップを開示する。このチップは、（ａ）８コアよりなる第１のセットを備える第１のマクロと、（ｂ）８コアよりなる第２のセットを備える第２のマクロと、（ｃ）８コアよりなる第１のセットの第１の側に結合された第１のメンテナンスポートと、（ｄ）８コアよりなる第２のセットの第１の側に結合された第２のメンテナンスポートと、（ｅ）８コアよりなる第１のセットの第２の側に結合された第１の検索ポートと、（ｆ）８コアよりなる第２のセットの第２の側に結合された第２の検索ポートと、（ｇ）８個のインターロック信号よりなる第１のセットと、（ｈ）８個のインターロック信号よりなる第２のセットと、を備えている。
【００１０】
８コアよりなる第１のセットの各コアに、８個のインターロック信号よりなる第１のセットの信号が１個ずつ割り当てられる。８個のインターロック信号よりなる第１のセットは、第１の検索ポートから第１のメンテナンスポートに結合され、８コアよりなる第１のセットのうちの選択されたコアに対して読み出しおよび書き込みを実行すべき時を合図する。そして、読み出しおよび書き込みは、第１の検索ポートによる連続した検索を中断することなく実行されるように構成されている。同様にして、８コアよりなる第２のセットの各コアに、８個のインターロック信号よりなる第２のセットの信号が１個ずつ割り当てられる。８個のインターロック信号よりなる第２のセットは、第２の検索ポートから第２のメンテナンスポートに結合され、８コアよりなる第２のセットのうちの選択されたコアに対して読み出しおよび書き込みを実行すべき時を合図する。そして、読み出しおよび書き込みは、第２の検索ポートによる連続した検索を中断することなく実行されるように構成されている。
【００１１】
さらに別の実施形態では、コンテントアドレサブルメモリを開示する。このコンテントアドレサブルメモリは、検索動作を実行するための検索ポートを備える。また、コンテントアドレサブルメモリのアドレス位置でデータの書き込みおよび読み出しをするためのメンテナンスポートも備えられている。インターロック信号は、検索ポートからメンテナンスポートに伝送されて、各クロックサイクルでトリガされ得る検索動作を中断しないように、コンテントアドレサブルメモリ対してデータの書き込みおよび読み出しを実行すべき時を設定するように構成されている。
【００１２】
本発明の効果は多大である。最も注目に値するのは、本発明による検索ポートは、サイクル毎に連続して検索を実行するように構成され、メンテナンスポートは、検索動作を妨害することなく、書き込み、読み出し、リセット、およびその他のメンテナンス動作を実行するように構成されていることである。好ましい一実施形態では、検索ポートは、インターロック信号を伝送することにより、検索動作が完了した時を指示し、読み出しまたは書き込み動作を実行すべき時を指示する。メンテナンス動作は、検索動作のプリチャージ期間中に実行されることが好ましい。このように、メンテナンスポートが検索ポートからインターロック信号を受け取るにもかかわらず、メンテナンスポートと検索ポートは、互いに独立かつ平行して動作する。
【００１３】
本発明の原理を例示した添付の図面と関連させた以下の詳細な説明から、本発明の他の効果が明らかとなる。
【００１４】
本発明は、添付図面と関連させた詳細な説明から容易に理解できる。同様の符号は同様の構造エレメントを示している。
【図面の簡単な説明】
【００１５】
【図１Ａ】従来のＣＡＭを簡単に示すブロック図である。
【図２】２つのマクロを備えるＣＡＭチップを、本発明の一実施形態に従って示す図である。
【図３】メンテナンスポートと検索ポートとが組み込まれた１つのコアを、本発明の一実施形態に従って示す図である。
【図４Ａ−１】メンテナンスポートの一部分の実施形態と、サブブロックの簡略化バージョンとを、本発明の一実施形態に従って示す図である。
【図４Ａ−２】メンテナンスポートの一部分の実施形態と、サブブロックの簡略化バージョンとを、本発明の一実施形態に従って示す図である。
【図４Ｂ−１】書き込み動作と検索動作の期間中に実行される代表的なメソッドの工程を、本発明の一実施形態に従って定義したフローチャートである。
【図４Ｂ−２】書き込み動作と検索動作の期間中に実行される代表的なメソッドの工程を、本発明の一実施形態に従って定義したフローチャートである。
【図４Ｃ】複数のサブブロックを、本発明の一実施形態に従って簡単に示す図である。
【図５Ａ−１】メンテナンスポートによって実行される読み出し動作期間、および、検索ポートによって実行される連続した検索動作期間中のメソッドの工程を、本発明の一実施形態に従って示すフローチャートである。
【図５Ａ−２】メンテナンスポートによって実行される読み出し動作期間、および、検索ポートによって実行される連続した検索動作期間中のメソッドの工程を、本発明の一実施形態に従って示すフローチャートである。
【図５Ｂ】複数の連続したサイクル１〜１０と各サイクルで検索が実行される様子とを、本発明の一実施形態に従って示す図である。
【図５Ｃ】グローバルデータバス（ＧＤＢ）を、本発明の一実施形態に従ってより詳細に示す図である。
【図６Ａ】有効ビットの機能を、本発明の一実施形態に従って示す図である。
【図６Ｂ】有効ビットの機能を、本発明の一実施形態に従って示す図である。
【図７Ａ】グローバルメンテナンス制御（ＧＭＣ）の一般的な動作を、本発明の一実施形態に従って示す図である。
【図７Ｂ】グローバルメンテナンス制御（ＧＭＣ）の一般的な動作を、本発明の一実施形態に従って示す図である。
【図７Ｃ】サブブロック制御（ＳＢＣ）を、本発明の一実施形態に従って示すブロック図である。
【図７Ｄ】サブブロック毎のＳＢＣの複製と、コア毎の１つのＧＭＣの使用とを、本発明の一実施形態に従って示す図である。
【図８−１】本発明の実施形態によるサブブロック制御（ＳＢＣ）を、より詳細に示す図である。
【図８−２】本発明の実施形態によるサブブロック制御（ＳＢＣ）を、より詳細に示す図である。
【図９】グローバルメンテナンス制御（ＧＭＣ）を、本発明の一実施形態に従ってより詳細に示す図である。
【発明を実施するための形態】
【００１６】
ＣＡＭ回路に関する発明を提供する。ＣＡＭ回路は、（要求されれば）クロックサイクル毎の高速検索の実行を可能とするとともに、メンテナンス動作（例えば、書き込みおよび読み出し）の実行を可能とする論理によって、最適化されている。メンテナンス動作は、検索ポートからの調整、例えば、タイミングインターロック信号によって実行され、検索速度を犠牲にしないようにすることが好ましい。ＣＡＭ回路により提供される能率および情報によって、ネットワークやインターネット通信システムなどの検索依存の技術において、効率的なデータ処理が可能となる。以下の説明では、本発明の完全な理解を促すために多くの項目を特定している。しかしながら、当業者には理解できるように、本発明は、これらの項目の一部または全てを特定しなくても実行することができる。また、本発明を不必要に不明瞭とするのを避けるため、周知の処理動作の説明は省略する。
【００１７】
図２は、２つのマクロ１０５ａ，１０５ｂを備えるＣＡＭチップ１００を、本発明の一実施形態に従って示す図である。他の実施形態では、チップは、アプリケーションに依存して、１つまたはそれ以上のマクロ１０５を備えていてもよい。図示するように、各マクロ１０５は、複数のコア１０４を備えており、各コア１０４には、関連のメンテナンスポート（ＭＰ）１０３と検索ポート（ＳＰ）１０２とが伴っている。この例では、ＣＡＭ１００は、それぞれ８つのコアを含むマクロ１０５を有している。各コアは、関連のＭＰ１０３とＳＰ１０２とを有する２ポートコアである。検索ポート１０２は、各コア１０４のメモリで検索を実行するための回路を組み込むように構成されており、メンテナンスポート１０３は、関連の各コア１０４に対して書き込み動作、読み出し動作、他のメンテナンス関連の動作を実行する際のアシストを行う。
【００１８】
図３は、メンテナンスポート１０３ａと検索ポート１０２ｂとが組み込まれた１つのコア１０４を示す図である。各コア１０４は、複数のサブブロック１１２を含んでいる。この例では、コア１０４は８つのサブブロック１１２を有しており、各サブブロック１１２は、３２ビットのワードを保持できる幅を有し、５１２行の列を形成している。実際のワード幅およびサブブロックの行数は、必要なアプリケーションに応じて変化させればよい。
【００１９】
また、コア１０４は、行デコーダ１０７と優先順位エンコーダ（ＰＥ）１０６とを含んでいる。周知のように、優先順位エンコーダ１０６は、可能性がある複数のマッチングのうち、優先順位が最も高く、従って、検索されているデータのアドレスである見込みが最も高いマッチングを、優先するように構成されている。また、各ワード１２０は、実行される特定の検索に依存して、データを有効または無効にするのに用いられる、関連の有効ビット１２０ａを有している。有効ビット１２０ａの機能に関しては、図６Ａおよび６Ｂと関連させて後で詳述する。
【００２０】
メンテナンスポート１０３ａは、サブブロック１１２から選択されたアドレスにおける読み出しおよび書き込みを可能にすることにより、続く検索動作に備えてメモリの内容を変更および更新するように構成されている。本発明の一実施形態では、検索ポート１０２ｂによって実行されている検索動作を、動作のクロックサイクル毎に連続して実行することができる。検索ポート１０２ｂは、メンテナンスポート１０３ａにメンテナンス動作を実行させるため、インターロック信号１１４ａをメンテナンスポート１０３ａに供給するように構成されている。インターロック信号１１４ａは、コア１０４の列に沿って延びる制御およびタイミング回路１１４によって与えられる。他の実施形態では、インターロック信号１１４ａは、任意の経路を介して通信されることが可能である。すなわち、検索ポートからメンテナンスポートまで経路を、チップの外側で、同チップの他の回路またはブロックなどを介して通じさせることも可能である。このように、実際の経路は、その機能が達成されている限り重要でない。
【００２１】
好ましい一実施形態において、メンテナンスポートの動作は、検索ポート１０２ｂの動作と独立して実行され、検索ポート１０２ｂによる検索が中断することなく継続するように調整されている。また、メンテナンスポート１０３ａの動作は、検索動作と検索動作の間に実行される。メンテナンスポート１０３ａには、インターロック信号１１４ａによって、メンテナンスポートの動作を実行するのに適切な時間が通知される。例えば、メンテナンスポート１０３ａによる書き込み動作が要求されている場合には、検索動作の開始時に、書き込み動作のセットアップを開始する。検索動作が時間切れになると、次の検索サイクルの開始前に書き込み動作を発生させる。
【００２２】
メンテナンスポート１０３ａは、選択されたサブブロック１１２において一度に１ワードのみを使用可能とするようなＺデコーダを含むことが好ましい。これを達成するため、グローバルワード線とＺデコーダとの間で論理ＡＮＤが実行される。Ｚデコードを実装することによって、読み出しまたは書き込み動作期間中に１ワードのみにアクセスすることができる。Ｚデコードの実装は、分割ワード線の実装とも呼ばれる。
【００２３】
例えば、図４Ａ−１は、メンテナンスポート１０３ａの一部分と、サブブロック１１２の簡略化バージョンとを示す図である。各サブブロック１１２を横切るのはグローバルワード線（ＧＷＬ）である。ＧＷＬは論理ＡＮＤゲート１２６に接続されており、このゲート１２６には、Ｚデコード線（Ｚｌ）も接続されている。ＡＮＤゲート１２６の出力は、各サブブロック１１２のためのローカルワード線１２８である。この実施形態において、サブブロックは、３２ビットの幅であり、有効ビット１２０ａを含んでいる。完全のため、各サブブロック１１２を縦断し、ローカルワード線１２８と結合される一対の代表的なビット線が描かれている。ＡＮＤゲート１２６は、複数のＺデコード線（Ｚｌ）の間に接続された各ＡＮＤゲート１２６に供給される信号に依存して、１本のワード線１２８のみを活性化させるように構成されている。図７Ｄにおいてより詳細に示すように、Ｚデコード線Ｚｌは、図７Ｃに示すような関連のサブブロック制御（ＳＢＣ）３５４によって、各サブブロック１１２に個別に提供される。
【００２４】
図中、検索ポート１０２ｂからインターロック信号１１４ａを受け取る代表的なブロックＺデコード１２４が示されている。ブロックＺデコード１２４は、次の検索サイクルを妨げない正しいタイミングで正しいサブブロック１１２を選択することができ、また、正しい書き込みドライバ１２３を選択することもできる。図示するように、メンテナンスポート１０３ａ内には逆マルチプレクサ１２２が設けられており、個々のサブブロック１１２のビット線との間で通信するように構成されている。好ましい一実施形態では、メンテナンスポート１０３ａが３２個の逆マルチプレクサ１２２を備えることにより、サブブロック１１２の中から正しいビット線を適切に選択することができる。こうすれば、検索動作を妨げない適切な時に、ビット線上にデータを書き込むことが可能となる。
【００２５】
これに対して従来の技術では、ビット線にデータを供給し、データが供給されたのとほぼ同時にワード線をオンする。データは、ビット線の差分が確立されると、選択位置に書き込まれる。本発明の一実施形態では、ビット線の差分は検索動作の期間に先立って確立されるので、ローカルワード線１２８が選択された後、従来技術の差分による遅延を生じることなく直ちに書き込みが発生する。こうすれば、次の検索を進めることが可能であり、データはセル内で既に確立されている。通常、検索ポート１０２ｂは、クロックサイクルの開始時に検索動作を実行し、続いて検索のプリチャージ動作を実行する。読み出しまたは書き込み動作は、検索プリチャージが発生している期間に実行することができる。
【００２６】
このように、検索動作の進行中に、ビット線上にデータを与えることにより、検索の完了時に、読み出しまたは書き込み動作を実行することが可能となる。例えば、システムクロックが高位になると、新しい検索が開始され、ローカルワード線１２８がオフになる。したがって、検索動作はクロックサイクル毎に発生し、また、検索のプリチャージ中には書き込み動作を実行することができる。このように、インターロック信号１１４ａによって、検索ポート１０２ｂとメンテナンスポート１０３ａとの間の通信が確立される。
【００２７】
図４Ａ−２は、図４Ａ−１に代わる実施形態を示す図であり、ここではブロックＺデコード１２４にインターロック信号１１４ａは伝送されない。代わりに、ＡＮＤゲート１２６にインターロック信号が伝送されて、タイミングが提供される。例えば、検索中にＧＷＬおよびＺｌをそれぞれセットアップし、ＡＮＤゲート１２６にインターロック信号１１４ａを供給することにより、検索中でない場合にのみＷＬを生成する。この代替の導入により、タイミングのマージンをさらに詰めることができる。
【００２８】
図４Ｂ−１のフローチャート１５０は、検索ポートによる連続検索を妨げずに書き込み動作を完了させるために実行される動作を、より詳細に示すために提供される。このメソッドは、工程１５２において、システムクロックの立ち上がりエッジでメモリアレイへの書き込み動作を開始することからスタートする。これと同時に、検索動作もシステムクロックの立ち上がりエッジで開始する。次に、メソッドは工程１５２から工程１５４に進み、ここでは、現行の検索の進行中に、入力データとアドレッシング情報とが、メンテナンスポートと行デコーダとサブブロック書き込み制御とに供給される。
【００２９】
例えば、システムクロックの立ち上がりエッジで、ビット線にデータを供給することにより、ワード線が選択されたときにビット線がデータを書き込めるようにする。サブブロック書き込み制御は、図４Ａ−１のブロックＺデコードを用いて、どのサブブロックがアドレッシングされるかを指示するように構成されている。したがって、検索が進行している間、データは、ワード線が選択されて書き込みを命じられるまで、ビット線上で待機する。工程１５６では、現行の検索が完了したか否かが決定される。検索が完了していなければ、検索が完了するまで書き込み動作が延期される。検索が完了するときとは、検索ポート１０２ａからのインターロック信号１１４ａを受け取ることを意味する。
【００３０】
メソッドは、工程１５８に進む。ここでは、Ｚデコーダをイネーブルして、サブブロック内の選択ワードをアドレス情報の伝搬によって活性化させることにより、メモリアレイを通じたデータの流れを制御し、ローカルワード線を活性化させる。上記のように、適切なサブブロックを選択し、さらに書き込みのための適切なローカルワード線を選択するために、グローバルワード線ＧＷＬとＺデコード線の間で論理ＡＮＤ動作が実行される。メソッドは、工程１６０に進み、差分による遅延を全く生じることなく、入力データを選択ワードに書き込む。工程１６２では、ＣＡＭメモリアレイのサブブロックでの書き込みがさらに要求されているか否かが決定される。要求されているならば、メソッドは再び工程１５２に戻り、システムクロックの立ち上がりエッジでメモリアレイへの別の書き込み動作が開始され、さらに次の検索も実行される。ここで重要なのは、メンテナンスポートによる書き込み動作が同時に発生したときでも、各サイクルに１回ずつの割合で、検索動作が独立して発生するという点である。このため、検索ポートは、インターロック信号１１４ａによって、メモリアレイの選択アドレス上にいつデータを書き込むのが適切かをメンテナンスポートに指示する。
【００３１】
図４Ｂ−２は、図４Ａ−２に代わる実施形態を示すために提供されたフローチャート１５０’である。この実施形態では、工程１５４および１５８が、工程１５４’および１５８’に変更されている。特に、工程１５４’では、Ｚｌをセットアップする動作も実行される。工程１５８’では、インターロック信号１１４ａが供給されて、サブブロック内の選択ワードを活性化させ、さらにローカルワード線を活性化させる。このメソッドの他の工程は、図４Ｂ−１のメソッドと同様に進む。
【００３２】
図４Ｃは、書き込みのプロセスをさらに詳述するために、複数のサブブロック１１２’、１１２’’、１１２’’’を簡単に示す図である。代表的な３つのサイクルが図示されており、複数のサブブロック１１２のうちの選択された１つのサブブロックに対して書き込み動作が実行される。サイクル１ １５０ａでは、システムクロックの立ち上がりエッジで検索が実行される。サイクル１の期間には、検索動作はプリチャージであり、サブブロック１１２’に対する書き込み動作＃１ １５２ａの実行が可能となる。この期間では、サブブロック１１２’’および１１２’’’のビット線がプリチャージ１５４状態にある。次のサイクルでは、別の検索が実行される。そして、検索プリチャージ動作の発生に備えてビット線にデータを供給することにより、書き込み動作＃２ １５２ｂがセットアップされる。そして、サイクル２の検索プリチャージ動作中に、サブブロック１１２’に対する書き込み動作＃２ １５２ｂが実行される。このとき、サブブロック１１２’’とサブブロック１１２’’’のビット線はプリチャージ状態にある。
【００３３】
サイクル３ １５０ｃでは、サブブロック１１２’’に対する書き込み動作＃３ １５２ｃがセットアップされる。検索プリチャージ期間では、サブブロック１１２’’に対して実際に書き込み動作＃３ １５２ｃが実行される。この期間では、サブブロック１１２’および１１２’’’のビット線がプリチャージ１５４状態にある。サブブロック１１２’に対して書き込み動作１および２が実行されたサイクル１および２に関連して示すように、サイクル毎に次々に書き込み動作を実行することができる。書き込みドライバがすぐに新しいデータをビット線に書き込み、その書き込み動作を検索動作のプリチャージ期間中に実行するため、サブブロック１１２’のビット線は、プリチャージを経る必要がない。従来では、各書き込み動作が完了すると、次の書き込みを実行する前にビット線をプリチャージする必要があった。しかしながら、この実施形態では、ビット線への書き込みを、プリチャージなしで連続して実行することができる。また、図４Ｃには、選択されたサブブロック１１２において、来たる検索のセットアップに備えた書き込み動作が実行されている場合であっても、１サイクルに１回ずつ、検索動作が連続して実行される様子が示されている。
【００３４】
図５Ａ−１は、メンテナンスポートによって実行される読み出し動作期間、および、検索ポートによって実行される連続した検索動作期間中のメソッドの工程を、本発明の一実施形態に従って示すフローチャート１７０である。このメソッドは、工程１７２からスタートする。工程１７２では検索が開始され、要求されれば、システムクロックの立ち上がりエッジでメモリアレイへの読み出し動作も開始される。前述したように、検索動作はサイクル毎に発生するように構成されている。メソッドは工程１７４に進み、ここでは、読み出しが要求されれば、アドレッシング情報がメンテナンスポートに供給され、グローバルワード線（ＧＷＬ）およびサブブロックが選択される。また、ビット線のプリチャージをイネーブルすることにより、読み出しのための状態をセットアップし、前のサイクルにおける書き込みからリカバリする。アドレッシング情報が供給されると、メソッドは決定工程１７６に進み、ここでは、現行の検索が完了したか否かが決定される。完了していなければ、メソッドは現行の検索が完了するまで待機する。完了していれば、メソッドは工程１７８に進む。
【００３５】
工程１７８では、読み出しが要求されると、Ｚデコーダをイネーブルし、サブブロックの選択ワードを活性化させる。前述したように、Ｚデコーダは、選択されたサブブロックから１ワードのみを選択することができる。一般に、Ｚデコーダのイネーブリングは、ローカルワード線をイネーブルしてプリチャージをオフにすることにより、セルがセンシングのためにビット線上に差分を生成できるようにする。工程１８０では、次のサイクルが開始したか否かが決定される。次のサイクルが開始していれば、メソッドは、工程１７２で次の検索を実行すると同時に、工程１８２にも進み、システムクロックの立ち上がりエッジで読み出し中のデータをセンスしてラッチする。工程１７２、１７４、１７８にかけて、別の読み出し動作が実行されない場合であっても、読み出し動作または書き込み動作が実行されているか否かに関わらず、検索ポートはサイクル毎の連続検索を実行し続ける。したがって、読み出し中のデータのセンシングおよびラッチが工程１８２の第２のサイクルで実行されると、メソッドは工程１８４に進み、ここでは、読み出されたデータが出力に送られ、さらに工程１８６でビット線がプリチャージされる。
【００３６】
工程１８８において、別の読み出しを実行することが決定されると、メソッドは再び工程１７２に進み、次の読み出し動作が開始されるとともに、次の検索も開始される。別の読み出しを実行しないことが決定されると、メソッドは工程１８９に進み、ここでは、別の検索が要求されているか否かが決定される。別の検索が要求されていれば、メソッドは工程１７２に進み、ここでは、読み出し動作（および書き込み動作）と独立した検索が実行される。いずれの場合も、読み出し動作は、実際には２サイクルに渡って実行されている。第１のサイクルでは、読み出しの要求のあるデータのアドレッシングが実行され、次のサイクルでは、データがセンスされて出力に伝送される。しかしながら、検索動作は、読み出し動作の第１および第２のサイクルの双方の期間で実行される。図５Ａ−２は、代替の方法を定義したフローチャート１７０’を示しており、工程１７４および１７８が、工程１７４’および１７８’に変更されている。工程１７４’では、読み出しが要求されると、アドレッシング情報がメンテナンスポートに供給され、グローバルワード線（ＧＷＬ）とＺｌとサブブロックとが選択され、さらにビット線がプリチャージされる。この実施形態では、前のサイクルでの書き込み動作からリカバリし、読み出し動作を行う状態をセットアップするために、ビット線をプリチャージする。工程１７８’では、読み出し動作が要求されると、サブブロックの選択ワードを活性化させるために、インターロック信号が供給される。
【００３７】
なお、読み出し動作を２回連続して実行する場合には、第１のサイクルで、読み出したい選択データにアドレッシング情報が供給され、第２のサイクルで、その読み出されたデータがセンスされ、ラッチされ、出力に伝えられる。第１のサイクルで読み出されたデータのセンシング期間では、第１のサイクル中にアドレッシングされたデータのセンシングが実行されるとともに、第２のサイクルで、異なるデータのアドレッシングを行うことも可能である。この特徴に関しては、図５Ｂと関連させて以下で詳述する。
【００３８】
図５Ｂは、複数の連続したサイクル１〜１０と各サイクルで検索が実行される様子とを、本発明の一実施形態に従って示す図２００である。このように、各サイクル２６０の期間では、検索２６２が発生し、検索ポートによって実行される検索動作が中断することなく活性２６１が発生する。活性２６１は、メンテナンスポート１０３ａによって実行される。上記のように、検索ポート１０２ａとメンテナンスポート１０３ａとは、検索動作が完了するときをメンテナンスポートに通知するインターロック信号によって互いに通信している。この例では、読み出し１ ２０２が、サイクル１および検索１の開始時に実行される。読み出し１２０２は、まず、メンテナンスポートにアドレッシング情報を供給するためのアクセス動作を実行する。
【００３９】
サイクル２の期間では、第２の検索動作が実行されるとともに、読み取られたデータのセンシングが読み出し動作２０２によって実行される。同時に、上記のアクセス動作の実行によって開始する第２の読み出し２ ２０４の実行が要求される。このアクセス動作は、サイクル２および検索２の期間中に実行される。アクセスされたデータのセンシングは、第３の検索が行われるサイクル３まで実行されない。このように、各読み出し動作は、実際には、２サイクルに渡って実行される。サイクル３の期間では、第３の読み出し動作である読み出し３ ２０６を実行することができ、ここでは、読み出し動作のアクセス部分が実行される。このアクセス動作中には、第２の読み出し２０４のデータのセンシングとともに、検索３が実行される。
【００４０】
サイクル４では、検索４が発生するとともに、サイクル３で読み出し３ ２０６に伴って読み出されたデータがセンスされる。ここでは、読み出し３ ２０６の実行後に、書き込み１ ２１０を実行することが要求されている。上述したように、書き込み動作は、２サイクルを要する読み出し動作とは対照的に、１サイクルで実行される。この結果、検索ポートによって検索動作４が実行されている間、サイクル４はデッドサイクル２２０となる。サイクル５では、検索５が実行されると同時に（例えば検索プリチャージ中に）、書き込み１ ２１０動作が実行される。そして、第６の検索が実行されるサイクル６の期間では、書き込み動作２ ２１２が実行される。同様にして、サイクル７の期間では、第７の検索期間中に書き込み３ ２１４が実行される。
【００４１】
この実施例では、ここで、読み出し動作である読み出し４ ２０８が要求され、サイクル８で開始される。このサイクル８では、第８の検索期間中に、読み出し動作のうちのアクセス部分が実行される。サイクル９では、アクセスデータがセンスされて読み出し４動作２０８が完了するが、第９の検索期間中にデッドサイクル２２０が発生する。これは、第１０の検索が実行されるサイクル１０において、書き込み動作である書き込み４ ２１６が実行されるからである。図から理解できるように、読み出し動作は、その後に読み出し動作が続く限りは、連続して実行することができる。読み出し動作の後に書き込み動作が続く場合は、書き込み動作が１つのサイクルの動作であるためにデッドサイクルが発生する。
【００４２】
図５Ｃは、グローバルデータバス（ＧＤＢ）２７２を、本発明の一実施形態に従ってより詳細に示す図である。ＧＤＢ２７２は、トライステートバスとしてのラッチバスであることが好ましい。この例では、メンテナンスポート１０３ａと連結している各サブブロック２１２に回路２７０が設けられている。図示するように、回路２７０は、トライステートバッファ２７０ｂに連結したセンスアンプ２７０ｃを含んでいる。読み出し動作期間では、データは、センスアンプ２７０ｃでセンスされて、トライステートバッファ２７０ｂに供給される。代表的な読み出し動作で示されるように、データは、グローバルデータバス（ＧＤＢ）２７２上にデータを伝送するトライステートバッファ２７０ｂによって供給される。グローバルデータバス（ＧＤＢ）２７２に供給されたデータは、データＩ／Ｏ２７４そしてバッファ２７４ｂに伝送される。
【００４３】
データＩ／Ｏ２７４は、書き込み動作期間では、書き込みたいデータがトライステートバッファ２７４ａによって供給されるように構成されている。データは、２７４ａからグローバルデータバス２７２に供給され、さらに、サブブロック２１２に通じる選択された回路２７０に供給される。図中、簡略化して示すように、書き込み動作期間では、データは、バッファ２７０ａを経て供給される。したがって、当業者ならば分かるように、バスを一度に駆動できるのは、１つのサブブロック２１２またはデータＩ／Ｏ２７４のいずれかのみである。このため、書き込み動作では、外側からデータＩ／Ｏブロック２７４にデータが供給される。そして、このデータは、グローバルデータバス２７２上に書き込まれ、選択されたサブブロック１１２によってビット線上に伝搬される。読み出し動作期間では、データＩ／Ｏブロックは、既にバスを駆動しておらず、選択されたサブブロック１１２がグローバルデータバス２７２を駆動している。読み出されたデータは、グローバルデータバス２７２上に伝搬され、データＩ／Ｏ２７４のバッファ２７４ｂを通過する。上記のように、読み出し動作期間中のデータのセンシングは第２のサイクルで発生するため、グローバルデータバスによる書き込みは実行することができず、このため図５Ｂで説明したデッドサイクル２２０が形成される。より厳密に言うと、グローバルデータバス２７２は共有バスであり、読み出しサイクルは２サイクルに渡ってバスを占有する一方で、書き込み動作は１サイクル分のみバスを占有する。
【００４４】
図６Ａおよび６Ｂは、有効ビット３００の機能を、本発明の一実施形態に従って示している。図示するように、有効ビット３００は、ワード線３０２に接続された一対のアクセストランジスタ３０４，３０６を有している。また、アクセストランジスタ３０４，３０６は、ビット線３１４ａ，３１４ｂとインバータ３０８とに接続されている。インバータ３０８は、インバータ３１０および３０８を含む交差して接続されたインバータ対の１つである。また、ゲートがリセット線３１６に接続されたリセットトランジスタ３１２が設けられている。このため、インバータ３１０の出力およびインバータ３０８の入力に有効ビット電圧「ｖ」が生成され、インバータ３０８の出力およびインバータ３１０の入力には有効ビット電圧「／ｖ」が生成される。そして、有効ビット／ｖは、対応するマッチ線上のミスを強制するために伝送される。動作中において、リセット線がＨＩになると、トランジスタがオンし、有効ビットｖの電圧が０に引き下げられるため、有効ビット／ｖで１が生成される。このため、リセット線３１６をＨＩに駆動することにより、有効ビット３００が無効ビットになって、ミスが強制される。
【００４５】
図６Ｂは、有効ビット３００が、トランジスタ３２０そしてマッチ線３２２に接続される様子を示す図である。マッチ線３２２は、ＣＡＭセル３２４ａ〜３２４ｎに接続されている。また、図示するように、マッチ線は、センスアンプ３２６にも接続されている。有効ビット３００は、ＣＡＭアレイ内で１ワードに１度ずつの割合で複製されている。有効ビット３００は、前の説明では有効ビット２１０ａとして言及されている。マッチ線３２２は、本質的にワイヤードＮＯＲであり、ＨＩにプリチャージされる。有効ビットがリセット線３１６によってリセットされると、有効ビット３００は、有効ビット／ｖに対して論理値１を生成する。これにより、トランジスタ３２０のゲートに論理値ＨＩが伝送されるため、マッチ線が０に引き下げられる。これによって、有効ビット３００によるミスが確実に検知される。一般に、エントリに書き込みを実行する（すなわち、データを更新する）ときには、有効ビットｖが論理値１に設定されるので、マッチ線３２２が０に引き下げられない。これによって、特定のワードが確実に検索に含まれることになる。ここで重要なのは、リセット線３１６によって実行されるリセット動作が、サイクル毎に実行されるように構成された検索動作を妨げないこと、すなわち、リセット動作は検索ポートのインターロック信号によって延期されるため、有効ビットは、現行の検索動作が完了するまでリセットされないことである。
【００４６】
図７Ａおよび７Ｂは、グローバルメンテナンス制御（ＧＭＣ）３５０の一般的な動作を、本発明の一実施形態に従って示す図である。ＧＭＣ３５０は、ＣＡＭマクロの各コア１０４に１つずつ設けられている。図３で説明したように、メンテナンスポート１０３ａには、その一部としてＧＭＣ３５０が１つ含まれている。このため、ＧＭＣ３５０は、コア１０４の一部である８つのサブブロックに対してサービスを行う。図示するように、ＧＭＣ３５０は、リセット信号（ｒｓｔ）と、書き込みデータ（ｗｄ）と、読み出しデータ（ｒｄ）と、書き込み有効（ｗｖ）と、読み出し有効（ｒｖ）との入力を受け取る。図７Ｂに示すように、リセット動作と書き込み動作と読み出し動作とに対応する真理値表には、これらの信号ｒｗｔ，ｗｄ，ｒｄ，ｗｖ，ｒｖが示されている。
【００４７】
なお、データは、有効ビットに対してだけでなく、ワードのデータ部分に対しても、独立して書き込まれる。同様にして、有効ビットおよびワードデータから、独立してデータを読み出すことも可能である。また、有効ビットおよびワードのデータ部分から同時にデータを読み出すことも、有効ビットおよびワードのデータ部分に独立してデータを書き込むことも可能である。このため、一実施形態では、有効ビットを有効に保ちながら、ワードのデータセクションにデータを上書きすることが可能である。読み出しサイクルが２サイクル分で、書き込みサイクルが１サイクル分なので、前のサイクルで読み出しが実行されたばかりであれば、当然、書き込み動作はその１サイクル後に実行される必要がある。
【００４８】
図７Ｃは、サブブロック制御（ＳＢＣ）３５４を、本発明の一実施形態に従って示すブロック図である。図示するように、ＳＢＣ３５４は、サブブロックのアドレッシング動作だけでなくリセット動作と読み出し動作と書き込み動作とを実行するためのグローバル制御信号を、受け取る。これらの信号３５３は、検索ポートから受信されるタイミングインターロック信号１１４ａとともに、ＳＢＣ３５４に伝送される。そして、ＳＢＣ３５４は、Ｚデコード信号（Ｚｌ）を供給するように構成されている。本発明の一実施形態において、サブブロック制御（ＳＢＣ）３５４は、コア１０４内の各サブブロックに１つずつの割合で複製されて構成されている。図７Ｄに示すように、ＳＢＣ３５４は８回複製されて、コア１０４の８つのサブブロックと連結するように構成されている。
【００４９】
そして、図７Ａで説明したＧＭＣ３５０が、上記の信号３５３を各ＳＢＣ３５４に供給する。また、各ＳＢＣ３５４は、検索ポート１０２ａから関連のタイミングインターロック信号１１４ａを受け取る。そして、各ＳＢＣ３５４は、コア１０４の各サブブロックに対して制御信号３５６を生成するように構成されている。制御信号３５６は、センスアンプ制御と、書き込みドライバ制御と、プリチャージ制御とを含む。８つのサブブロックのうちどのサブブロックがアクセスを受けるかに依存して、選択されたサブブロックのローカルワード線を活性化させるために、１つのＺｌ信号のみが供給される。
【００５０】
図８−１は、本発明によるサブブロック制御（ＳＢＣ）３５４を、より詳細に示す図である。この実施形態では、図示するように、ＳＢＣは、検索ポート１０２ｂからタイミングインターロック信号１１４ａを受け取る。タイミングインターロック信号（ｃｃｐｅとも呼ばれる）は、マスタクロック信号（ｃｍとも呼ばれる）４０２も受け取るクロック調停ユニット４００に供給される。そして、図示するように、クロック調停ユニット４００は、サブブロックＺバッファ４０３とローカル制御クロックジェネレータ４０６との双方に伝送されるローカル制御クロックを生成する。サブブロックＺデコード４０４は、アドレッシング情報が供給されると、サブブロックＺバッファ４０３にＺデコード情報を伝送する。そして、サブブロックＺバッファ４０３は、コア１０４の選択されたサブブロックに供給されるＺデコード信号Ｚｌを生成する。
【００５１】
図示するように、ローカル制御クロックジェネレータ４０６は、信号４１０：ｒｓｔｉ，ｗｄｉ，ｒｄｉ，ｗｖｉ，ｒｖｉを受け取る。これらの信号４１０は、グローバルメンテナンス制御（ＧＭＣ）３５０から供給される信号を表している。そして、ローカル制御クロックジェネレータ４０６は、信号４０８として定義されるプリチャージクロックと書き込みクロックとセンスクロックとを生成する。また、ローカル制御クロックジェネレータ４０６は、リセット線３１６を生成し、有効ビットのリセットを実行するように構成されている。つまり、ｒｓｔｉをローカルクロックとともにゲートさせることにより、検索が完了するまで有効ビットのリセットを遅らせる。当業者には理解できるように、信号４０８は、全てのデータおよび有効データが必要とする分だけ複製される。代替の実施形態では、図８−２のように、インターロック信号１１４ａが必要なタイミングを供給するので、ローカル制御クロックは、サブブロックＺバッファ４０３に供給されない。このように、ｃｃｐｅ，Ｚｌ，ＧＷＬのＡＮＤ動作においてｃｃｐｅがＷＬの生成にゲートするため、Ｚｌがローカル制御ブロックにゲートされることはない。
【００５２】
図９は、グローバルメンテナンス制御（ＧＭＣ）３５０を、本発明の一実施形態に従ってより詳細に示す図である。ＧＭＣ３５０は、図８−１で説明した信号４１０を生成するように構成された制御回路４２６を備えている。図示するように、システムクロック（ｃｋｍとも呼ばれる）４４０は、検索シミュレータ４２４と、クロックイネーブル論理４２２と、制御回路４２６と、に伝送される。検索シミュレータ４２４は、検索ポートによって実行される反復検索をシミュレートするバックアップとして設けられている。例えば、検索ポートが選択されず、検索動作が実行されない場合でも、メンテナンスポートの動作は、あたかも検索動作が次々に実行されるかの如く、適切なタイミング間隔で実行される。
【００５３】
検索シミュレータはクロックイネーブル論理４２２に接続されており、クロックイネーブル論理４２２はクロックバッファ４２０に接続されている。クロックバッファ４２０は、図８−１で説明したマスタクロック（ｃｍ）４３２ａと、３２ビットバスであるデータクロック（ｃｍｄ）と、有効ビットクロックと、を生成するように構成されている。図８−１で説明したように、マスタクロック４３２ａは、検索ポートから来るタイミングインターロック信号１１４ａ（ｃｃｐｅ）と連結するように構成されている。データクロック４３２ｂは、ワード内の各データＩ／Ｏビットに供給されて、書き込み動作に対するトライステート制御を処理することができる。同様に、有効ビットＩ／Ｏには有効ビットクロックが供給される。また、データクロック４３２ｂは、図５Ｃのデータラッチをイネーブルするように構成されている。ｗｄがＨＩである場合には、データクロック（ｃｍｄ）によってトライステートバッファがオンになり、グローバルデータバスへのデータの転送が可能になる。
【００５４】
本発明は、種々のタイプの集積回路論理、状態マシン、またはコンピュータによって実行されるソフトウェアの動作を用いて、実現可能である。例えば、設計および合成プログラムに基づくハードウェア記述言語（ＨＤＬ）を用いて、本発明の一実施形態に従ったデータおよび制御の動作を適切に実行するのに必要なシリコンレベルの回路を設計してもよい。
【００５５】
本発明は、コンピュータシステムに格納されたデータを伴う種々のコンピュータで実現される動作を利用することが可能である。これらは、物理量の物理操作を必要とする動作である。これらの量は、必然ではないものの、通常、格納や、転送、結合、比較、他の操作が可能な電子信号または磁気信号の形式である。さらに、実行される操作の多くは、生成や、識別、決定、比較などの用語で表現される。
【００５６】
ここで説明される本発明の一部の動作は、有用なマシン動作である。本発明は、これらの動作を実行するためのデバイスまたは装置にも関する。装置は、必要な目的のために特別に構築されていてもよいし、コンピュータに格納されたコンピュータプログラムによって選択的に活性または構成される汎用コンピュータでもよい。特に、種々の汎用マシンを、本明細書で教示した内容に従って書かれたコンピュータプログラムとともに使用してもよいし、より特化された装置を構築し、必要な動作を実行する方が便利な場合もある。
【００５７】
例えば、適切なコンピュータレイアウト、半導体基板、１つまたは複数の半導体チップ、プリント回路板、パッケージ化された集積デバイス、ソフトウェアインプリメンテーション（およびこれらの結合）などを含む任意の形態で、種々のブロック図を具現化できる。したがって、当業者にはわかるように、本明細書で取り上げた実施形態は、例示を目的としたものであって、本発明の内容を限定するものではない。このため本発明は、本明細書で特定した詳細に限定されることなく、添付した特許請求の範囲の範囲および均等物の範囲内で、種々の変更を加えることが可能である。
【図１Ａ】
0005634386.tif 000002
【図２】
0005634386.tif 000003
【図３】
0005634386.tif 000004
【図４Ａ−１】
0005634386.tif 000005
【図４Ａ−２】
0005634386.tif 000006
【図４Ｂ−１】
0005634386.tif 000007
【図４Ｂ−２】
0005634386.tif 000008
【図４Ｃ】
0005634386.tif 000009
【図５Ａ−１】
0005634386.tif 000010
【図５Ａ−２】
0005634386.tif 000011
【図５Ｂ】
0005634386.tif 000012
【図５Ｃ】
0005634386.tif 000013
【図６Ａ】
0005634386.tif 000014
【図６Ｂ】
0005634386.tif 000015
【図７Ａ】
0005634386.tif 000016
【図７Ｂ】
0005634386.tif 000017
【図７Ｃ】
0005634386.tif 000018
【図７Ｄ】
0005634386.tif 000019
【図８−１】
0005634386.tif 000020
【図８−２】
0005634386.tif 000021
【図９】
0005634386.tif 000022