(57)【要約】複数のコンテントアドレッサブルメモリを、より大きな複合コンテントアドレッサブルメモリへ、個々のメモリの元の応答時間からほとんど遅延なく、統合することを可能にする高速インタフェース用の方法と回路。このインタフェースは、バスシステムのみへの接続を提供し、異なるＣＡＭデバイス間での接続を必要としない。これにより、一つのＣＡＭと一つのＣＡＭインタフェースとの組み合わせ（例えばチップ）が可能となる。このようなチップは、ＲＡＭのような標準的なメモリチップとして知られているように、他の追加インタフェースを用いずにそれらのチップを直接にバスシステムに取り付けることにより、ＣＡＭメモリを増加させるためのモジュールとして用いられる。この新規なインタフェースは、メモリセルを、より大きな統合ＣＡＭデバイスに本発明にかかるインタフェースを介して接続されたグループに分割することにより、ＣＡＭデバイス内に階層構造を生成するためにも用いられる。このような構成において、各グループにおけるプライオリティ機能は、より少数のセル上で動作し、このインタフェースを構成するために必要なゲートが比較的少数であることにより、少数ゲートによるＣＡＭデバイスの実装が可能である。複合ＣＡＭデバイスにおいて、複数のＣＡＭは、各々のインタフェースを介して、アドレスバスとデータバスに接続される。読み出しおよび書き込みモードにおいて、インタフェースは、二組のラインを接続し、これにより、読み出しまたは書き込み動作に対して透過的になる。サーチモード（コンテントアドレッシングモード）では、インタフェースは、予め定められた方向において最も高い、一つのマッチングセルのアドレスを出力するために、ＣＡＭの応答に応じてデータバス数を選択し、設定する。インタフェース回路は、ＣＡＭモジュールのコンテントアドレス機能を、より広範囲のアドレスに拡張するために必要な論理機能とラインとを追加し、セルのアドレスをより広い範囲に書き込むために追加のバスライン数を設定し、ＣＡＭアドレスのビットがより高いアドレスを持つセルのアドレスを変更しようとする場合は、それらのビットをマスクすることによって、システム中でより高いアドレスを持つ他のセルが応答しないことを確認する。これにより、ＣＡＭの全体構成が、より大きなサイズの単一のＣＡＭとして機能することが可能となる。
2004520671.tif 000002
【特許請求の範囲】
【請求項１】
二つ以上のCAMデバイスを、同じデータバスラインと同じアドレスバスラインへ接続することにより、一つの複合CAMアレイに統合するためのCAMインタフェースであって、
ａ）ＷａをＷｂ以上の数として、前記ＣＡＭインタフェースを、アドレスバスラインと、ＣＡＭインタフェースをＣＡＭデバイスへ接続するための複数（Ｗｂ）本のラインとに接続する複数（Ｗａ）本のラインと、
ｂ）ＣＡＭの第１の複数（Ｄａ）本のデータラインを、第１の有効化信号がセットされたときに、データバスの同数のデータラインへ選択的に接続する第１のバッファと、
ｃ）ＣＡＭの第２の複数（Ｄｂ）本のデータラインを、第２の有効化信号がセットされたときに、データバスのＤｂと等しい第２の数のデータラインへ選択的に接続する第２のバッファと、
ｄ）複数（Ｗ２）本のセレクトラインを入力として受け取るプライオリティマスク回路とを備え、
前記プライオリティマスクの状態が、ＣＡＭインタフェースに対するブロックアドレスを定義すると共に、入力として有効化信号を受け取り、前記プライオリティマスク回路はＷ３本のデータラインを介してデータバスへさらに接続され、前記Ｗ３はＷ２以上であり、
ＣＡＭ内の少なくとも一つのメモリセルが、アドレスバスライン上のデータセットとの所定の関係を照合するデータを格納している場合、前記ＣＡＭが、当該ＣＡＭに対して定義された内部優先順位に従って前記セルの一つを選択し、そのセルのアドレスを前記第１のバッファに与え、あるいは、前記ＣＡＭが前記信号に応答するセルのアドレスを前記第１のバッファへ与え、
前記ＣＡＭは、前記有効化信号をブロックプライオリティマスクへ出力し、
ブロックプライオリティマスク論理回路は、その後、前記ブロックアドレスを前記Ｗ３本のデータバスラインへ与えると共に、前記データバスラインに既に設定されている任意のアドレスであって、所定の方向についてより高いアドレスと干渉するブロックアドレスビットをマスクし、
データバスへより高いアドレスが出力されなかった場合、ブロックプライオリティマスク論理回路が第１の有効化信号を前記第１のバッファへ出力し、そのときに、選択されたアドレスが前記第１の本数のデータバスラインにセットされる、ＣＡＭインタフェース。
【請求項２】
同じバスラインが、システムの機能要求に従って、アドレスバスラインおよびデータバスラインとして交互に用いられる、請求項１に記載のＣＡＭインタフェース。
【請求項３】
アドレスバス上のアドレスセットをブロックアドレスと比較するブロックレンジ回路をさらに備え、前記ブロックアドレスが所定の方向において前記アドレスバス上のアドレスセット以下であった場合、ＣＡＭのみを有効化する、請求項１または２に記載のＣＡＭインタフェース。
【請求項４】
ブロックプライオリティマスクおよびブロックアドレスであって、前記ブロックアドレスは、同じデータバスラインおよび同じアドレスバスラインに接続された二つ以上のメモリデバイスを備えた複合メモリアレイ中のＣＡＭメモリデバイスのアドレスであり、
前記ブロックプライオリティマスクは、一本の有効化入力ラインと、前記ブロックアドレスの全てのビットセットｋに対する一本の出力ラインＰ（ｋ）と、一本のブロックマッチラインとを有し、
前記ブロックプライオリティマスクは、入力として前記データバスラインを受け取り、有効化されたとき、データバス上のどのデバイスも、ブロックアドレスが未設定ビットを有するより上位のビット位置のラインを設定していない場合に限り、前記出力ラインＰ（ｋ）のそれぞれを有効化する論理機能を実行し、
ブロックマッチラインは、（ａ）全てのＰ（ｋ）ラインが有効化され、かつ、（ｂ）バスラインが最下位ビット位置を持つＰ（ｋ）よりも下位ビット位置であった場合に、前記ブロックアドレスの任意のビット位置で有効化されたバスラインが他にない、という両条件が満たされた場合に有効化される。
【請求項５】
以下の全ての条件が確認された場合、前記論理機能により、Ｐ（ｋ）の状態がアクティブ（論理１）にセットされる、請求項３または４に記載のブロックプライオリティマスク。
ａ）＿ＣＡＭの少なくとも一つのセルが応答することにより、有効化信号Ｅが有効化されている。
ｂ）＿より上位のビット位置における次のラインの状態がアクティブ（論理１）である、または、現在のラインが最上位ビット位置にある。
ｃ）＿現在のラインビット位置と、より上位のビット位置における次のラインとの間のビットの全てのバスラインの状態がアクティブではない。
最下位ビット位置のＰ（ｋ）ラインがアクティブであり、かつ、Ｐ（ｋ）よりも下位のブロックアドレスのビットにおけるバスラインの状態がいずれもアクティブではない場合、ブロックマッチ信号が発行される。
【請求項６】
プライオリティマスクが、Ｐ（ｋ）ライン（ブロックアドレス＝０）を持たず、前記ブロックアドレスの位置における全てのバスラインが設定されていない場合、ブロックマッチ信号が出力される、請求項５に記載の論理回路を有するブロックプライオリティマスク。
【請求項７】
二つ以上のＣＡＭが一つのグループに統合され、かつ、二つ以上のグループが一つの複合メモリアレイに統合された、あるいは、二つ以上の複合ＣＡＭメモリアレイまたは一つの複合ＣＡＭメモリアレイおよび単一ＣＡＭが一つのより大きな複合ＣＡＭメモリアレイに統合された、階層的なＣＡＭ構造であって、
前記ＣＡＭデバイスの各々が、追加の出力コネクションを備えたＣＡＭインタフェースを有し、
この出力は、接続されたＣＡＭの少なくとも一つのメモリセルがマッチングすると判断された場合に有効化され、
ＯＲ関数が前記ＣＡＭユニットの前記出力ラインに与えられ、
前記ＯＲ関数が、階層において隣接しかつ高位のＣＡＭインタフェースに接続されることにより、前記出力信号が、ＣＡＭの低位階層グループ内で接続される全てのセルのうちの少なくとも一つのセルがマッチングする場合、前記高位の階層インタフェースを選択的に有効化することを特徴とする階層的なＣＡＭ構造。
【請求項８】
より大きな複合ＣＡＭメモリアレイを、個々に検索可能な、または必要であるとして検索サイクルから除外される、より小さなＣＡＭユニットまたはグループに分割する、請求項７に記載のＣＡＭメモリの階層構造。
【請求項９】
チップなどの個別のデバイス内に統合された、請求項７に記載のＣＡＭメモリの階層構造。
【請求項１０】
請求項１のインタフェースを有するＣＡＭメモリへ、当該ＣＡＭメモリを拡張するために、モジュールとして追加可能である、請求項７〜９のいずれかに記載の階層構造。
【請求項１１】
メモリ検索のための原アドレスが、一つ以上のＣＡＭユニットに与えられることにより、検索結果としてバスラインへ出力されるアドレスが、前記原アドレスとの所定の関係を表す、請求項７〜１０のいずれかに記載の階層構造。
【請求項１２】
図面を参照してここに実質的に説明したＣＡＭインタフェース。
【請求項１３】
図面を参照してここに実質的に説明したＣＡＭメモリの階層構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンテントアドレッサブルメモリを、一つのより大きな結合コンテントアドレッサブルメモリへ統合することを可能にする高速度インタフェースの方法と回路に関する。
【０００２】
本発明において、コンテントアドレッサブルメモリ(ＣＡＭ)という用語は、一般に、通常のメモリのストア機能やリトリーブ機能に加えて、コンテントアドレス機能を有する記憶装置を意味する。コンテントアドレス機能の処理内容は、以下に記すとおりである：
コンテントアドレッサブルメモリ装置は、多数のバスインタフェースラインに所定の値がセットされることにより、コンテントアドレスモードになる。そして、コンテントアドレッサブルメモリ装置は、バスインタフェースラインの別のセットに、１つのメモリセルの位置を表すデータをセットすることにより応答する。そのセル（以下、応答セルと称する）は、予め定義された最初のバスインタフェースラインに現れるデータとの関係を確認するデータを格納している（以下、マッチングデータと称する）。いくつかのタイプのＣＡＭで、バスインタフェースラインの最初のまたは２番目のセットは、動作サイクルの上述の両方のフェーズで用いられる物理的に同じラインであることもある。最初のまたは２番目のバスインタフェースラインのセットを、以下では、アドレスバスおよびデータバスと称する。
【０００３】
上記のようなメモリデバイスは、例えば、米国特許第４,８０５,０９３号、米国特許第５,５０２,８３２号、および米国特許第５,５６８,４１６に開示されている。
【０００４】
本発明において、ＣＡＭは、ＰＣＴ国際特許出願00/00121およびＰＣＴ国際特許出願00/00327に開示されたようなコールアウトメモリをも意味する。コールアウトメモリは、アドレス値（「原アドレス」という用語を用いる）を定義する「レンジ」機能も有することがある。原アドレスは、コールアウトメモリへの入力として転送されることがある。
【０００５】
コンテントアドレスモードにおいて、この原アドレスは、所定の方向への検索機能の開始位置を定義する。この検索は、コールアウトメモリのアドレス出力が、マッチングデータを持つ全てのメモリセルの中で最大であり、しかし、原アドレスよりも小さくなるように定義される。コールアウトメモリの場合は、コンテントアドレスモードは、コールアウトモードとも称される。
【０００６】
現存するＣＡＭデバイスは、実現に必要なゲート数が膨大であるので、その容量に限界がある。その結果、大きなコンテントアドレッサブルメモリ空間が必要な場合は、複数のＣＡＭデバイスを用いなければならない。しかし、多くのＣＡＭを併合して一つの大きなコンテントアドレッサブルメモリを実現するためには、専用のインタフェースまたは接続が必要となる。このようなインタフェース回路は、反対に遅延を生じさせ、コンテントアドレッサブルメモリ全体での応答（検索）時間に遅れを引き起こす結果となる。
【０００７】
複数のＣＡＭをモジュラー式に連続して接続する様々な方法(国際公開WO９９/２３６６２、米国特許第５,９３０,３５９)が提案されている。しかし、これらの方法は、応答時間の劣化を伴うものである。例えば、米国特許第５,９３０,３５９の場合は、検索された結果は、全てのＣＡＭをパイプライン転送され、これにより、最終的な応答に、潜在的な遅れにＣＡＭの数を乗じた遅れを生じさせる。国際公開WO９９/２３６２には、論理信号だけがＣＡＭからＣＡＭを通過することにより、最初のゲートの遅れにＣＡＭの数を乗じたものと等しい遅れを生じさせる、改良されたシステムが示されている。
【０００８】
両方のケースで、複数のＣＡＭを一つの大きなコンテントアドレッサブルメモリに統合することは、メモリの応答時間の劣化を引き起こす。
【０００９】
これらの統合手法における別の欠点は、異なるＣＡＭデバイス間での連結が必要であるため、バスシステムの並行アーキテクチャが乱されるということである。これは、システムのモジュール性と拡張可能性を損なう。
【００１０】
従って、ＣＡＭデバイス用モジュールインタフェースであって、遅延を生じさせず、かつバスシステムの並行アーキテクチャを保護するインタフェースを設計することが望まれている。さらに、ＣＡＭデバイスと一体的に構築されるＣＡＭデバイス用モジュールインタフェースを設計し、結合されたＣＡＭとインタフェースとが、他の回路を追加することなく現存のメモリを迅速かつ用意に拡張するための一つのモジュールユニットとして応用され得るようにすることも望まれている。
【００１１】
また、このような構造に必要な論理ゲートの数や配線の量を削減しつつ、大きく複雑なＣＡＭデバイスの構築を可能とするＣＡＭデバイス用モジュールインタフェースを設計することも望ましい。
【００１２】
（発明の概要）
個々のメモリの元の応答時間の無意味の遅れだけでより多い、複数のコンテントアドレッサブルメモリを統合して、各メモリの原応答時間から微少な遅延のみを持つ、より大きな結合されたコンテントアドレッサブルメモリとすることを可能にする高速インタフェースのための方法と回路。
【００１３】
この新規なインタフェースは、バスシステムのみへの接続を提供し、このシステムの異なるＣＡＭデバイス間での接続は必要とされない。これにより、例えばチップのような一つの装置内における一つのＣＡＭと一つのＣＡＭインタフェースとの組み合わせが可能となる。このようなチップは、例えばＲＡＭのような標準メモリチップとして知られているように、他の追加インタフェースを必要とせずに、バスシステムに直接取り付けることによってＣＡＭメモリを増設するモジュールとして使用することができる。
【００１４】
本発明のインタフェースは、グループ化したメモリセルの各グループを、大規模結合ＣＡＭデバイスに本発明のインタフェースを介してインタフェース接続することによって、ＣＡＭデバイス内に階層的構造を作るためにも利用できる。このような構造において、それぞれのグループの主要な機能は、より少数のセル上で動作し、インタフェースを作成するために必要なゲート数は比較的少数であるため、ＣＡＭデバイスをより少ないゲート数で実現することが容易となる。
【００１５】
結合ＣＡＭデバイスにおいて、いくつかのＣＡＭは、それぞれのインタフェース経由でアドレスバスとデータバスに接続される。リード(Read)およびライト(Write)モードでは、インタフェースは、２セットのラインを接続し、これにより、リードまたはライト操作に対して透過的となる。検索モード(コンテントアドレスモード)では、インタフェースは、予め定義された方向において最も上位のマッチングセルアドレスを出力するために、ＣＡＭの応答に応じてデータバスのラインの数を選択して設定する。インタフェース回路は、より多いアドレス範囲にＣＡＭのコンテントアドレス機能をより広い範囲のアドレスに拡張するために必要な論理関数とラインを追加し、前記のより広い範囲にセルのアドレスを書きこむためのバスラインの追加数をセットし、システムを通じてより上位のアドレスをもつ他のセルが応答しないことを確認する。この確認の際、ＣＡＭアドレスのビットがセルのアドレスをより上位のアドレスに変化させるのであれば、それらのビットをマスクする。このようにして、ＣＡＭの集合全体が、より大きなサイズの一つのＣＡＭとして機能することが可能となる。
【発明を実施するための最良の形態】
【００１６】
本発明の目的は、いくつかのコンテントアドレッサブルメモリを統合して、一つのより大きな結合されたコンテントアドレッサブルメモリとすることを可能にする高速インタフェースを提供することである。本発明にかかる方法と回路によれば、この新規なインタフェースは、新しいインタフェースは、バスシステムのみへの接続を提供し、同じシステム内の異なるＣＡＭ間でのいかなる接続も必要としない。本発明にかかるインタフェースは、このインタフェースによって加わる遅延が、非常に小さく、かつ組み込まれているＣＡＭの数に依存しないという点で有利である。従って、この新規なインタフェースは、組み込まれている全てのＣＡＭを、単一のＣＡＭデバイスの応答時間とほぼ等しい応答時間を有する、より大型の一つのコンテントアドレッサブルメモリに統合する。
【００１７】
本発明のインタフェースは、また、コールアウトタイプの内部接続メモリにも用いることができる。これらのメモリは、Ｒ／Ｗモードまたはコールアウトモードのいずれかで動作するように設計されている。コールアウトメモリは、範囲回路（Range Circuit）を備え、コールアウトモードの場合、範囲回路は、予め定義された方向で最も大きい値であるが原アドレスよりも小さい値のマッチングセルアドレスを、バスへ出力する。このようなメモリは、ＰＣＴ国際出願PCT/IL ００/００１２１およびPCT/IL ００/００３２７に記載されている。
【００１８】
以下の例は、本発明のインタフェースを最適に示すかも知れない。利用可能なＣＡＭデバイスが２w1の基本セルを有する場合、各セルはWdビットを格納でき、この新規なインタフェースは、２w1+w2セルを有するＣＡＭメモリを作るために、２w2までの同じＣＡＭを統合する手段を提供する。この例では、ＣＡＭデバイスの全ては、同じサイズ、すなわち同じセル数を持つ。しかし、本発明は、サイズが異なる複数のＣＡＭデバイス用のインタフェースも提供できる。
【００１９】
本発明の利点は、得られたより大きいコンテントアドレッサブルメモリアレイが、個々のＣＡＭの各々とほぼ同じ速度で動作する点にある。最小限の遅延のみが加わる。
【００２０】
本発明の方法および回路のさらに有利な特徴によれば、本発明に従って設計されたインタフェースは、ＣＡＭモジュールとバスシステムのみへ接続する（すなわち、当該システムの他のＣＡＭへの接続が必要ない）モジュールインタフェースを提供する。この特徴によれば、例えばチップのような一つのデバイスにおける一つのＣＡＭと一つのＣＡＭインタフェースとの組み合わせが可能となる。そのようなタイプのいくつかのデバイスまたはチップは、より大きなメモリを形成するために、いくつかの標準的なメモリチップ(例えばランダムアクセスメモリ)の追加で知られているのと同様に、バスシステムに他のインタフェースを追加することなく、バスシステムに直接的に用いることができる。
【００２１】
本発明のさらに別の有利な特徴は、本発明によって設計されたインタフェースが、本発明のインタフェースによってさらに大きなＣＡＭデバイスへインタフェース接続されるＣＡＭグループ内に、階層的な構造を作るために用い得ることである。このようなアーキテクチャを用いることにより、各グループの主な機能が、より少数のセルで動作するので、ＣＡＭを実現するために必要な論理ゲートの数を減らすことができる。インタフェースを作成するために必要なゲート数は、一つのグループの全セルに対してそのようなインタフェースは一つだけ設けられていれば良いので、比較的少ない。上記に列挙した本発明の利点によれば、ゲート数が削減されたＣＡＭデバイスの実現が容易となる。
【００２２】
本発明のインタフェースを用いてコールアウトメモリをインタフェース接続する場合、原アドレスインタフェースも提供される。このインタフェースは、システムバスから原アドレスを受け取り、ＣＡＭの少なくとも一つのセルが、原アドレスよりも下位のアドレス（予め定義された方向で）を持つ場合にのみ、ＣＡＭを有効にする。
【００２３】
本発明は、以下に、好適な実施形態に限って説明する。しかし、本発明のインタフェースおよび回路について、ここに説明し特許請求の範囲に記載するとおりの本発明の範囲内で、多数の変更および修正が可能であることは、言うまでもない。
【００２４】
図１に、ＣＡＭメモリは、本発明にかかるインタフェースと共に示されている。このインタフェースは、Ｗａ本のアドレス線を介してアドレスバスに接続されている。ＣＡＭは、Ｗｂ本のアドレス線を介して、インタフェースに接続されている。Ｗｂは、Ｗａ以下である。アドレス線の数であるＷｂは、ＣＡＭデバイスの仕様に従い、ＣＡＭデバイスの操作に必要なアドレス線の数である。
【００２５】
インタフェースは、また、一方でデータバスへ接続され、他方でＣＡＭデバイスバスラインへ接続されている。ＣＡＭデバイスからまたはＣＡＭデバイスへの値を読む間または書き込む間は、インタフェースは、２セットのバスラインを接続し、これにより、リードまたは書き込み操作に対して透過性となる。検索モード（コンテントアドレスモード）で動作するときは、インタフェースは、このシステム上の全てのＣＡＭの全セルのうち、ＣＡＭの一つのマッチングセルの位置（アドレス）を表す値をデータバスへ出力するために、ＣＡＭの応答に応じて、データバスのライン数を選択して設定する。ただし、このＣＡＭのマッチングセルが、予め定義された方向で最も上位のアドレスを有するセルであることが条件である。
【００２６】
バスシステムの全アドレス空間においてＣＡＭおよびＣＡＭインタフェースの特定の位置を定義するために用いられる多くの選択線が、インタフェースに接続されている。このような選択線は、制限されたアドレス空間を有するデバイスの位置を定義するために、バスシステム内で共通に使用される。一般的に、選択線は、予め定義された論理レベルに固定されることにより、システムの全メモリ範囲におけるＣＡＭセルのアドレス範囲が定義される。
【００２７】
システムバスの制御線の別のセットも、インタフェースに接続されている。この制御線は、インタフェースからＣＡＭデバイスまでの間も接続する。システムバスからインタフェースまでの制御線は、図１に示されている。バス制御線と、インタフェースからＣＡＭデバイスまでの制御線は、指定されたインタフェース制御線である。このような制御線は、バスプロトコルの実現に必要な信号を伝送するものであり、バスシステムで共用される。
【００２８】
より大きなＣＡＭデバイス内に設けられ、本発明のＣＡＭインタフェースを介して接続されたＣＡＭを、ここではＣＡＭモジュールと称する。
【００２９】
インタフェース回路の目的は、ＣＡＭモジュールのコンテントアドレス機能を、より広い範囲のアドレスに拡張するために必要な論理関数やラインを追加することにある。ＣＡＭモジュールは、限られたサイズ用に設計されているので、システム全体のアドレスを定義するために必要なビット数よりも少ないビット数で、応答セルの１つのアドレスを出力できる。ＣＡＭモジュールをより大きなコンテントアドレッサブルメモリに統合したらすぐに、アドレスを書くためにバスラインの追加の数を設定することが必要となる。さらに、アドレスが出力される前に、システム中でより上位のアドレスをもつ他のセルが応答しないことを確認する必要がある。ＣＡＭインタフェースは、その後、ａ）拡張された応答セルアドレスを書き込むための追加のバスラインを設定する、ｂ）アドレスのビットを、それらのビットにより上位のアドレスを持つ応答セルのアドレスが変更されるならば、マスクする。
【００３０】
例えば、それぞれが２w1セルを有するＣＡＭデバイスを複数個統合することにより、一つの大きいＣＡＭアレイを設計できる。これらのＣＡＭデバイスの各々は、各々が有する個々のマッチングセルのアドレス値を設定するために、w１本のラインを引き出すこととなる。２w2個のＣＡＭデバイスによって形成されたより大きなシステムは、アドレス値を出力するためにw１+w２本のラインを必要とする。そこで、インタフェースの役割は、ＣＡＭのw１本のラインをインタフェースして、ＣＡＭモジュールの集合全体が大きなサイズの一つのＣＡＭとして機能するように、データバスに接続されたｗ２本のラインを適切に設定することとなる。
【００３１】
図２において、複数のＣＡＭデバイスを統合して、１つのより大きいコンテントアドレッサブルメモリを形成する方法を示す。ＣＡＭとＣＡＭインタフェースは、基本ＣＡＭブロックにグループ化される。各々の基本ＣＡＭブロックは、ＣＡＭモジュールとＣＡＭインタフェースから構成される。基本ＣＡＭブロック間は、いかなる接続も必要ではない。各基本ブロックは、システムバスのみに接続されている。これは、従来技術に対する、本発明にかかるＣＡＭインタフェースの利点を説明するものである。
【００３２】
従来のＣＡＭでは、複数のＣＡＭモジュールをより大きなＣＡＭアレイ中でカスケード接続させるためには、ＣＡＭモジュール間の接続が必要である。その結果として、モジュール式にＣＡＭアレイを大きくすることは不可能である。
【００３３】
本発明にかかる新規な設計によってＣＡＭデバイスをＣＡＭインタフェースに接続することにより、複数のＣＡＭモジュールをモジュール組み立て式に統合させることにより、より大きいＣＡＭアレイを形成することができる。これは、複数の共通メモリデバイス（例えばＲＡＭ）が、バスシステム内の接続に何も追加せず、接続の変更もせずに、バスシステムに追加される場合と同様の方法でなされる。
【００３４】
例えば、ＣＡＭインタフェースがＣＡＭデバイスと一体的に実装されれば（例えば同じチップ内に）、例えばＲＡＭのような標準メモリデバイスと同じモジュール方式を持った新しいＣＡＭエレメントが得られる。
【００３５】
図３に、大きなＣＡＭを生成するために用いられるＣＡＭとＣＡＭインタフェースの階層構造を示す。単体の基本ＣＡＭブロックＡ１，Ａ２，Ａｎのそれぞれは、縮小されたアドレス空間用に設計されており、これにより、アドレスを記述するために必要なビット数が削減され、用いられる論理ゲート数も同様に削減される。
【００３６】
そして、これらの単体のＣＡＭは、前述のＣＡＭをグループバスＡおよびＢにそれぞれ接続することにより２つのより大きなＣＡＭを実現するＣＡＭインタフェースにより、二つのグループＡおよびＢに接続される（Ａ１からＡｎはグループＡへ、Ｂ１からＢｎはグループＢへ）。
【００３７】
これら二つのより大きなＣＡＭは、二つの追加ＣＡＭインタフェースＧ１およびＧ２により、システムバスへ接続され、各々が前記のより大きなＣＡＭの一つとインタフェースＧ１およびＧ２の一つを備えた二つの複合ＣＡＭブロックは、さらに大きなサイズの一つのＣＡＭに統合される。この例では、二つの複合ＣＡＭブロックのみを示したが、任意の数のブロックを用いることができることは言うまでもない。また、同じ原理は逆方向にも作用し、すなわち、例えば、すべてのサブグループは複数のより小さなサブグループを含んでもよい。このような階層構造は、一つのデバイス（例えば一つのチップ）内で大きなサイズのＣＡＭを実現するために用いることができる。
【００３８】
この階層構造を目的として、追加の出力がそれぞれのＣＡＭインタフェースに設けられる。この出力（match）は、少なくとも一つのメモリセルがマッチングすると判定された場合に有効化される。
【００３９】
より高階層のＣＡＭインタフェースに接続するために複数のＣＡＭモジュールが一つのグループに集められる場合、図３においてＨで示されるＯＲ機能が、これらマッチラインの全てに適用される。このＯＲの出力は、その後、より高階層のＣＡＭインタフェースに接続される。この信号は、その後、より低階層のグループに接続する全てのセルのうち少なくとも一つのセルがマッチした場合に、より高階層のインタフェースを選択的に有効化するために用いられる。
【００４０】
図４に、コールアウトメモリ用に設計されたＣＡＭインタフェースの好ましい実施形態のブロック図を示す。このＣＡＭインタフェースは、以下の構成要素を含む。
【００４１】
ａ）チップセレクト：デバイスを有効化するバスシステムで一般的に用いられる論理回路である。本インタフェースでは、チップセレクトは、読み出しまたは書き込み処理に対してＣＡＭを有効化するために、ノーマルモードで用いられる。
【００４２】
b)ブロックレンジ回路：レンジ回路は、インタフェースがコンテントアドレッシングモードである場合にアドレスバスライン上のデータセットをセレクトライン上のデータセットと比較する比較回路である。予め定められた方向において、前者が後者以下であれば、ＣＡＭデバイスを有効化するブロックセレクト信号が発行される。コントロールライン（ＣＯ）も、コンテントアドレッシングモードで選択的にＣＡＭを操作するために、ＣＡＭに入力される。
【００４３】
c)ＣＡＭデバイス：
本発明の範囲では、ＣＡＭデバイスは、以下のように、通常、通常のストア機能およびリトリーブ機能に加えてコンテントアドレッシング機能を有するメモリデバイスを指定する：
ＣＡＭデバイスがコンテントアドレッシングモードにセットされたとき、多くのバスインタフェースラインに所定の値が設定され、デバイスは、他のバスラインセットに一つのメモリセルの一を表すデータをセットすることにより応答する。そのセル（以下、応答セルと称する）は、最初のバスラインに提示されたデータ（以降、マッチングデータと称する）との間で予め定義された関係を確認するデータを格納している。
【００４４】
データは、ここで、ＣＡＭデバイス内のセルのアドレスを二進数表記するために必要なビット数として定義される。
【００４５】
ＣＡＭインタフェースは、ＣＡＭの全てのセルに対する基底アドレスを定義するＷ２セレクトラインを受信する。これにより、システム全体におけるＣＡＭのセルアドレスは、Ｄａ最下位ビットとＷ２最上位ビットを持つ二進数となる。
【００４６】
ＣＡＭデバイスは、入力として、通常の読み出しモードと書き込みモード間で選択を行うＲ／Ｗ信号と、ノーマルモードおよびコールアウトモード間で選択を行うＣＯラインとを受信する。メモリデバイスで一般的に用いられる他のコントロールラインも、ＣＡＭの通常の機能を有効化するために、ＣＡＭへ入力される。ＣＡＭは、ノーマルモードではチップセレクトにより、コールアウトモードではレンジ回路により、有効化される。
【００４７】
通常の読み出しまたは書き込み動作では、Ｄａ＋Ｄｂデータバスラインが、一対のバッファを介してＣＡＭデバイスへ接続される。Ｄａ＋Ｄｂは、読み出しまたは書き込み動作のためにＣＡＭが用いる（最大）ビット数である。
【００４８】
コールアウトモードでは、Ｄａラインのみが、データバスへバッファされ、データバス上の応答セルの部分アドレスをセットするために用いられる。この部分アドレスは、ＣＡＭデバイス内の応答セルのアドレスである。ブロックプライオリティマスクが、それから、Ｗ２セレクトラインに従って、メモリシステム全体におけるＣＡＭデバイスの位置を表す残りのアドレスをセットする。これらのＷ２ライン上のデータセットを、ブロックアドレスとも称する。
【００４９】
d)ブロックプライオリティマスク：
W２ラインの同じW２最上位ビットを含んでいるアドレス(ブロックアドレス)は、ＣＡＭデバイス内のすべてのセルに割り当てられる。
【００５０】
ＣＡＭの一つのセルが応答するとき、これらのＷ２最上位ビットをセットするように設計され、バスにセットされているアドレスがより大きい値を有する場合は、他の任意のアドレスの設定ビットをマスクする。
【００５１】
この機能を実装するために、ブロックプライオリティマスクは、入力として、データバスラインとＷ２セレクトラインを受信する。これらの入力の論理機能により、ブロックプライオリティマスクは、ブロックアドレスにおいて、それ自体のブロックアドレスよりも高い値のアドレスを変更しないビットのみを、出力として有効化する。
【００５２】
ブロックプライオリティマスクは、コールアウトモードが有効化され、一つのＣＡＭセルが応答する場合に有効化される。ブロックプライオリティマスクは、データバス上でそれ自体のブロックアドレスよりも高いアドレスを検出しなければ、応答セルのアドレスをデータバス上へ出力するための有効化信号を、最初のバッファへ出力する。
【００５３】
ｅ）マッチ検出回路。ＣＡＭの一部、または、ＣＡＭに追加された論理回路であっても良い。ほとんどのＣＡＭデバイスは、マッチ検出出力を備える。この出力は、ＣＡＭの少なくとも一つのセルが応答する場合に有効化される。本実施形態では、この出力は、ブロックプライオリティマスクを有効化するために用いられる。
【００５４】
ｆ）ゲート配置（ゲート１）は、以下の機能を実行する：
−ブロックプライオリティマスクを、コンテントアドレッシングノードのみにおいて有効化する。
【００５５】
−ブロックプライオリティマスクを、一つのセルがマッチングデータを有する場合にのみ有効化する。
【００５６】
ｇ）バッファ１，２
バッファ１は、ＣＡＭからのデータバスのＤａラインを接続または切り離すために用いられる。このバッファは、ＯＲゲート（ゲート３）からの有効化信号を受信する。有効化信号が発行されたとき、バッファは、ＤａデータバスラインとＣＡＭバスラインとの間の接続を実行する。
【００５７】
バッファ２は、ＣＡＭからのデータバスのＤ１ｂラインを接続または切り離すために用いられる。バッファ２は、ＣＯを無効化信号として受信する。ＣＯが有効である場合、バッファ２は、データバスからのＣＡＭのＤｂラインを切り離す。
【００５８】
ＣＡＭだけがバスシステムに接続されているとすれば、ＣＡＭのＤａ＋Ｄｂラインがデータバスに接続されるであろう。読み出しまたは書き込みモードでは、これらのラインは、リトリーブまたはストアされるべきデータを転送するために用いられる。
【００５９】
ＣＡＭが新規なＣＡＭインタフェースに連結されている場合、通常の読み出し／書き込みモード（ＣＯ信号が無効）では、通常の読み出し／書き込み動作を実行するためには、データバスラインの全てが、メモリセルに接続されている必要がある。それから、ＣＡＭインタフェースのバッファ１，２は、データバスラインをＣＡＭに接続するために有効化される。図４を参照すれば、ＣＯ信号がＯＲゲート（ゲート３）へ入力され、ＣＯが有効化されていなければＯＲゲートがバッファ１へ有効化信号を出力することが分かるであろう。図４には、さらに、ＣＯ信号がバッファ２へ直接入力され、このＣＯが有効化されていなければバッファ２が有効化されることが示されている。
【００６０】
コールアウトモードでは、ＣＡＭは、限定された数Ｄａのライン上に応答セルのアドレスをセットする。このときＣＡＭのＤｂラインは使用されない。これらのラインはバッファ２によりデータバスから切り離される。
【００６１】
ＣＡＭの一つのセルが応答する場合、ＣＡＭがＣＡＭのアドレスをＤａライン上にセットし、ブロックプライオリティマスクが有効化される。ブロックプライオリティマスクは、Ｗ２ライン上のデータバスに、ブロックアドレスと、より高いアドレスに他の応答セルがない場合はこれとをセットする。この場合、ブロックプライオリティマスクは、有効化信号もバッファ１へ出力する。これにより、ＣＡＭが、Ｄａ最下位ビットに応答セルのアドレスを出力することが可能となる。
【００６２】
ブロックプライオリティマスクは、それ自体のアドレスより高い値を持つアドレスがデータバスにセットされていることを検出すると、バッファ１に有効化信号を出力しない。これにより、ＣＡＭはデータバスから切り離されたままとなる。
【００６３】
図４における単一のＣＡＭは、図２を参照して説明したようなエレメンタリーＣＡＭブロックや複合ＣＡＭブロックなどのより複雑なユニットに置き換えることが可能であり、新規なインタフェースは、この複合ユニットに関しても同様にして読み書きやコールアウト機能を有効化することができる。
【００６４】
図５に、ブロックプライオリティマスクとデータバスとの接続を示す。ブロックプライオリティマスクの一方の側に、データバスラインが入力として接続され、ブロックプライオリティマスクの他方の側に、ブロックプライオリティマスクの各出力ラインが、ワイドＯＲによりデータバスに接続されている。
【００６５】
図６は、プライオリティマスクの好ましい実施形態を示す。ブロックアドレスＮは、図６において、以下のように表される。
（数１）
2004520671.tif 000003
ここで、Ｋはブロックアドレスの設定ビット数から１を減じた値である。ｕ（Ｎ，ｋ）は、ブロックアドレス中で、最下位ビットからｋ番目のビットの位置である。
【００６６】
例えば、１６（４ビット）メモリセルを有するＣＡＭを、２５６（８ビット）メモリセルを有するより大きなＣＡＭに接続するためには、ブロックアドレスは４ビットを有する。ブロックアドレスは、その４ビットを最上位に、最下位ビットの全てが０であるアドレスを持つ：
例えば、Ｎ＝１０１０，００００
設定ビット数は２であり、Ｋ＝１である。
【００６７】
１０１０００００＝１．２7＋１．２5とも書ける。
【００６８】
従って、この場合は、
Ｕ[Ｎ，０]＝５；  Ｕ[Ｎ，１]＝７；
再び図６を参照すれば、ブロックアドレスの全設定ビットについて、ラインＰ｛Ｎ，ｕ（Ｎ，ｋ）｝はブロックプライオリティマスクからの出力である。
【００６９】
このラインの状態は、論理ゲートによって設定され、以下の全ての条件が確認された場合、アクティブ（論理１）に設定される：
ａ）＿ＣＡＭの少なくとも一つのセルが応答することにより、有効化信号Ｅが有効化されている。
【００７０】
ｂ）＿より上位のビット位置における次のラインの状態がアクティブ（論理１）である、または、現在のラインが最上位ビットである。
【００７１】
ｃ）＿現在のラインビット位置と、より上位のビット位置における次のラインとの間のビットの全てのバスラインの状態がアクティブではない。
【００７２】
Ｐ｛Ｎ，ｕ（Ｎ，０）｝がアクティブであり、かつ、Ｐ｛Ｎ，ｕ（Ｎ，０）｝よりも下位のブロックアドレスのビットにおける全バスラインの状態がアクティブではない場合、ブロックマッチ信号が発行される。このようなラインがない場合、ブロックマッチラインは、Ｐ｛Ｎ，ｕ（Ｎ，０）｝により直接的に有効化される。
【００７３】
ブロックプライオリティマスクがＰ（ｋ）ラインを一つも持たない場合（ブロックアドレス＝０）、有効化信号がアクティブにされたときに、ブロックマッチ信号が出力される。
【００７４】
この論理回路の目的は、データバスのより上位のビットにおいて既に設定された部分アドレスを変更しようとする場合に、データバスのビットをマスクすることである（すなわち設定ではない）。
【００７５】
この例は、特定の実施態様を示したが、プライオリティマスクの実施態様については、データバスのより上位のビットの一つまたは複数のラインがアクティブである場合に、ブロックアドレスが未設定ビットを有する位置においてラインＰ｛Ｎ，ｕ（Ｎ，ｋ）｝をマスクする（すなわち無効状態を維持する）という同じ原理を有する限りにおいて、あらゆる多様な実施態様が可能である。
【図面の簡単な説明】
【００７６】
【図１】図１は、本発明のＣＡＭデバイス用のインタフェースの一般的な構成を示す。
【図２】図２は、複数のＣＡＭが、それぞれのＣＡＭを本発明のＣＡＭインタフェースに結合することによって一つのより大きいＣＡＭに統合される様子を示す。
【図３】図３は、複数のＣＡＭがより大きいＣＡＭを形成するためにグループ化される様子を示す。これらのＣＡＭグループも、本発明によりインタフェース接続されており、これにより、さらに大きなＣＡＭメモリを形成する。
【図４】図４は、本発明のＣＡＭインタフェースの構成要素を示す。
【図５】図５は、プライオリティマスクが、“OR”関数においてデータバスへどのように接続されるかを示す。
【図６】図６は、プライオリティマスクの実現例を示す。
【図１】
2004520671.tif 000004
【図２】
2004520671.tif 000005
【図３】
2004520671.tif 000006
【図４】
2004520671.tif 000007
【図５】
2004520671.tif 000008
【図６】
2004520671.tif 000009
【国際公開パンフレット】
2004520671.tif 000010
2004520671.tif 000011
2004520671.tif 000012
2004520671.tif 000013
2004520671.tif 000014
2004520671.tif 000015
2004520671.tif 000016
2004520671.tif 000017
2004520671.tif 000018
2004520671.tif 000019
2004520671.tif 000020
2004520671.tif 000021
2004520671.tif 000022
2004520671.tif 000023
2004520671.tif 000024
2004520671.tif 000025
2004520671.tif 000026
2004520671.tif 000027
2004520671.tif 000028
2004520671.tif 000029
2004520671.tif 000030
2004520671.tif 000031
2004520671.tif 000032
2004520671.tif 000033
2004520671.tif 000034
2004520671.tif 000035
【国際調査報告】
2004520671.tif 000036
2004520671.tif 000037
2004520671.tif 000038