JP3599273B2 - 内容参照可能メモリの改良 - Google Patents
内容参照可能メモリの改良 Download PDFInfo
- Publication number
- JP3599273B2 JP3599273B2 JP2000145362A JP2000145362A JP3599273B2 JP 3599273 B2 JP3599273 B2 JP 3599273B2 JP 2000145362 A JP2000145362 A JP 2000145362A JP 2000145362 A JP2000145362 A JP 2000145362A JP 3599273 B2 JP3599273 B2 JP 3599273B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- matrix
- comparand
- bit
- match
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
Landscapes
- Static Random-Access Memory (AREA)
- Logic Circuits (AREA)
- Investigating Or Analyzing Materials By The Use Of Ultrasonic Waves (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、集積回路として作られるメモリ装置、特に内容参照可能メモリ、すなわち連想記憶装置(associative memory)に関する。
これらのメモリの名称として、一般に用語「Content(s) Addressable Memory 」の頭文字から得られる頭字語CAMが用いられており、以下の記載でもそれを用いる。
【0002】
【従来の技術】
現在、データベースにおけるサーチを必要とする多くの用途において、CAMメモリが使用されている。簡単に言えば、CAMメモリは、メモリセルから成るマトリックスを含み、かつ、比較器に接続される。そして、各セルはデータワードの1ビットを記憶する。すなわち、メモリが、サーチされるべきデータ(以下「コンパランド」(comparand) という)をユーザーデバイスから受け取り、比較器が、コンパランドと記憶されたワードとのビット毎の比較を行う。肯定一致の場合(すなわち、サーチされる項目(item)がメモリに実際に存在している場合。)、その項目が記憶されているアドレスが、他に存在する付加データと共にユーザーデバイスに与えられる。多くの用途では、メモリから読み出された情報は、後に他のメモリ構造への直接アクセスのために用いられる。これらのメモリの本質的な特徴は、それらが含む全ての項目と入力データを1クロックの信号サイクルで比較すること、及び複数の比較サイクルを必要とする従来型のランダムアクセスメモリよりも速いサーチを行う可能性を有することである。
【0003】
通信にとって増々興味あるものとなってきているCAMの用途の一つは、ATMやインターネットなどのような高速ウエブのノード内部にてルーティングテーブルを作ることである。この場合には、目的地のデータを含んだヘッダーを有するパッケージが伝送される。メッセージを受信すると、ウエブノードのルーティング管理装置は、このアドレスの全部又は一部を用いてテーブルをサーチし、後続のウエブ本体に伝送するためパッケージが送られるべき出力インターフェースを検索する。
例えば、米国特許第5,383,146号、第5,469,378号、第5,495,382号、第5,841,874号のような文献には、市販されているいくつかのCAMメモリについての記載がある。これらのメモリの一つとして知られているのが、MU9C2480A LANCAM(登録商標)の名称のミュージックセミコンダクター社(MUSIC Semiconductors Inc.) 製コンポーネントである。
これら全てのデバイスが、ユーザーデバイスの集積回路メモリとは別に自立集積回路として作られている。
【0004】
今日のより進んだ技術的な解決策は、1つの集積回路上にインターネットやATMのノードルーターのような複雑な回路を作ることを志向している。このような傾向にあっては、CAMメモリも、ユーザーデバイスを含む同じ集積回路に組み込んで外部メモリとのアクセスを無くすが賢明である。このことにより、デバイスの動作はより速くなり、ピンや接続を除去することにより構造全体が簡単になり、全体の消費電力も減る。
従って、ユーザーデバイスをも含む同一回路にCAMメモリを組み込むと、メモリの物理的な大きさ、すなわちその容量が拘束される。そこで、3値メモリ(ternary memory)により記憶容量をもっと利用することが、提示されている。3値メモリでは、ワードのビットは、0及び1の論理値に加えて中性(「ドントケア」(don’t care)ともいう)論理値を有し得る。ワードのビット群に中性論理値を割り当てることにより、実際に記憶すべきワード数を低減できる。米国特許第5,841,874号には、3値CAMメモリの例が記載されている。
【0005】
留意すべき別の問題は、CAMメモリで読み出される項目がしばしばさらに別のRAM又は直接アクセス型のデータ構造へのアドレス又はアクセスポインターであることである。CAMサーチメモリとして使用されるデータ構造とRAM構造の両方を同じ集積回路が有することの利点は明らかである。上記コンポーネントMU9C2480A LANCAM(登録商標)にても使用されている米国特許第5,383,146号には、CAMメモリが記載されており、該メモリは、記憶した各ワードのビット群に関連した比較を使用不可にし、かつ、CAMとしての特徴を有する各ワードの部分とRAMとしての残りの部分を有するようにプログラム可能である。しかし、3値メモリとしての動作を選択することはできず、ユーザーデバイスが作られる同じ集積回路にメモリを組み込むこともできない。さらに、プログラムできるのは、合計が特定数以上のビット群(特に8ビット群)に関するものである。上記米国特許第5,841,874号には、同じ集積回路上でのCAMサーチの結果として得られる信号によりアドレス指定できるRAMメモリと3値メモリを関連付けることの可能性が記載されているが、RAMとして利用できるメモリ領域はCAMに記憶されるデータとは別のデータを含んでいる。
【0006】
【発明が解決しようとする課題】
本発明の目的は、ユーザーデバイスに組み込み得る集積回路ライブラリセルとして設計可能な3値CAMメモリを提供することである。特に、これらの条件におけるメモリのパワー消費に注意しなければならないが、本発明のメモリはこの観点からの有利な解決策を提示する。
さらに、本発明の別の有利な特徴は、本メモリが必要に応じて3値CAM、2値(binary)CAM、又はRAMとして利用可能な部分を構成できることである。
【0007】
【課題を解決するための手段】
詳細には、本発明のメモリは、
(1)各々がNビットのM個のデータワードからなるアレイを形成するように編成された、少なくとも1つのメモリセルマトリックスであって、各ビットは1つのセルに記憶される前記メモリセルマトリックス、
(2)マスクワードを用いて比較することによりメモリ内でサーチすべきデータワードをマトリックスに付与する手段であって、1列の全セルに共通のビットに対するラインによりマトリックスのセルに接続される上記手段、
(3)セルに記憶されたビットとコンパランドビットとの比較を行うべく各セルに接続された比較手段であって、各行のセルに接続された該比較手段の出力は、互いに連結され、行セルにて完了した比較の肯定又は否定の結果信号を発生する上記比較手段、
(4)一致ラインに接続され、かつ、コンパランドと記憶されたワード間で一致が見い出されたか否かを示す信号を送出し、さらにそれが肯定ならば1又はそれより多い記憶ワードとで一致が見い出されたか否かを示す信号を送出する符号化手段、及び
(5)サーチを行うため又は直接アドレス指定によるデータのリード/ライトを行うために、メモリマトリックスへのアクセスをチェックする手段
を含み、
(ア)メモリマトリックスに記憶されたワードのアレイ全体が、直接アドレス指定によりアクセス可能なデータ構造を有し、該アドレスは、ユーザーデバイスにより与えられ、又は符号化手段により送出された信号から成り、該符号化手段は、コンパランドと一つの記憶ワードの間に一致が見い出されたことを示し、
(イ)前記メモリマトリックスは、コンパランドとの比較がダミーの一致ライン上に肯定の比較信号を常に与えるように構成され且つダミーデータを記憶するよう割り当てられた補助行のセル、及びメモリデータに割り当てられず且つ前記補助行に対応するセルを含んだ補助列のセルを含み、また、符号化手段が、ダミーのアドレス信号を出力するメモリマトリックスの補助行に接続された補助部分を含み、
(ウ)前記制御手段が、直接アドレス指定のメモリ動作中に前記補助行をも常にアドレス指定でき、
(エ)前記メモリマトリックスの補助行、符号化手段の補助部分及び第1制御手段は、コンパランドと記憶データの比較を実行するメモリ動作中に使用される初期リセットループを形成し、前記第1制御手段をチェックしてコンパランドとそのマスクがメモリマトリックスに与えられると直ぐに前記付与手段を使用不可にし、また、前記補助行及び列は、前記発生装置と共にリセット信号を生成し、前記制御手段は、メモリ動作中に使用される第2リセットループの一部であり、制御手段を制御してデータが読み出されると直ぐにデータアドレス指定及び読み出し手段を使用不可にすることを特徴とする。
【0008】
【発明の実施の形態】
さらに明瞭にするため、添付図面を参照する。
図1は、RAMとして使用するのにも適したCAMの構造を示す。このメモリは、以下のものを含む。
(1)M行、N列のメモリマトリックスMA。
(2)ブロックREで示される1対のレジスタ。それぞれ、メモリにおいてサーチされるべき項目(コンパランド)とコンパランドのマスキングビット(マスク)をマトリックスMAに与える。後者はコンパランドビットに双一義的(bi−univocally) に関連し、それらの論理値は、関連するコンパランドビットを項目ビットと比較しなければならないか否か(コンパランド無視条件(comparand indifference conditions) )を示す。
(3)(記憶された1ワードに対してのみコンパランドと項目との一致が見い出された場合)検索される項目をMA内に記憶するアドレスを出力し、又は複数の一致若しくは不一致を示す符号器CD。
(4)RAMモードアクセス動作に関連する行を選択するための回路SR。
(5)メモリ作成又は修正段階中にセルの内容を書き込み、かつ、RAMモード動作中にそれらを読み出すための論理ネットワークWR。
(6)RAM又はCAMモード動作中にメモリ動作の制御信号を発生するための回路CT1,CT2及びCT3。
【0009】
符号器CDを除いた上記ブロックは、基本的なモジュールMEを構成する。該モジュールMEは、ユーザーデバイスを収容するコンポーネント上に複製でき、用途に必要な容量を有するメモリを得ることができる。
マトリックスMAの各セルC11…C1N…CM1…CMNは、真正かつ適切なメモリ要素と、その中に記憶されたビットとコンパランドのビットを比較する比較器を含む。このコンパランドのビットは、ビットラインとして公知のラインを介してレジスタREにより与えられる。同じライン上のセルの比較器出力は、論理ANDに接続され、該ラインに記憶されたワードとコンパランドとのビット毎の比較が肯定であるか否かを一致ラインとして公知のラインm1 …mm 上に出力する。これらの種類のメモリでは通常、マトリックスMAはスタティックRAMメモリであり、各セルは、真正かつ適切な項目ビットと補数ビットの両方を記憶し、よって、各セルは実際には2つのビットラインに接続され、それにより、実際の論理値と補数値の両方を有するコンパランドビットを与える。このことは、各コンパランドのレジスタ位置がストレート及び否定(denied)出力を与えることを意味する。図1では、REとMA間の接続1は、コンパランドとその補数をマトリックスに導くワイヤ対全てを示す。
【0010】
セルの機能及びマトリックスの構成の例が、例えば米国特許第5,383,146号に示される。米国特許第5,469,378号には、可能な回路図が示される。
例として、以下において必要な場合には256個40−ビットの容量を有するマトリックスMAを参照する。
マトリックスMAの内容は、RAMメモリとしての動作中に直接アドレス指定によりアクセスされるデータ構造でもある。後で分かるように、RAMのアクセスアドレスは、符号器CDの出力として与えられる情報から成り得る。このことは、インターネットウエブのルーティング管理装置におけるサーチテーブルの完成のような用途では特に有利である。この場合にはしばしばサーチはビットストリングのプレフィックスにて行われる。
好ましくは、行セルは、ドミノ論理により互いに接続される。換言すれば、比較結果の認識はセルグループ上にてでき、その各々はプリロード及びアセスメントトランジスターに関連する。種々のグループのアセスメントトランジスターからの出力は、結合されて一致ラインmを形成する。プリロード及びアセスメントイネーブル信号は、集合体を示す図中の2により示されるラインを介し関連のセルグループに対しREにより与えられる。例として、比較結果の認識が8セルのグループにより行なわれる場合には、ライン1の8対毎に1つのライン2が存在する。
【0011】
本発明によるメモリは、3値CAMメモリであり、MAに記憶される各ビットは0、1又はドントケア(don’t care)をとり得る。3値CAMメモリでは、入力項目のビットとドントケアレベルにあるメモリのビットとの比較は明らかに常に肯定である。3値CAMメモリとしてメモリを使用するためには、ドントケア値を有し得る記憶ワードの各ビットに対して2つのセルを割り当てなければならない。従って、上記与えられた数値例では、メモリワードは、どれくらいの数の記憶ビットが3値構成を有するかに従って、20〜40の範囲の相当数のビットを有することになる。好ましくは、論理レベル0、1及びドントケアは、MA内にそれぞれ01、10及び00として記憶される。好ましくは、3値記憶で使用されるセルは、メモリが使用されるシステムの設計及び特定用途の要求に基づいて、事前に選択される。よって、リード−ライト論理部WRは、3値として記憶されるべきビットが上記特定したように既に符号化されているデータを受け取る。換言すれば、2値又は3値構成を有し得るビット数は、プロジェクトパラメータの一つとなる。特に、ユーザー構成は個々のビットのレベルに到達する。ビット対への変換は、対応するコンパランドビットを含めて3値ビットを考慮すべく実行される。特に、ドントケア論理値を「x」で示すことにより、コンパランドビットに対して次の変換則が採用できる。すなわち、0ビットが「0x」に変換され、1ビットが「x0」に変換され、xビットが「xx」に変換される。
【0012】
データを含むためのセルに加えて、マトリックスMAは、別のダミーの行及び列をも有し、そのセルはCD1…CDD…CMDにより示される。この行及び列の目的は後に詳細に説明する。ダミー行は、一致ラインmD に接続され、常に一致信号を発生するよう構成される。
各レジスタREは、データ用のマトリックスMAの各列に対し1つの要素から成る(従って40個の要素)。各要素は、ユーザーデバイスからのコンパランド又はマスクとタイミング信号を受け取る。該タイミング信号は、MAへのライン1上にコンパランドとマスクをロードすること、及び回路CT1からのそれらの付与において必要とされる。3、4及び5は、コンパランドとマスクをREに導くライン全て及びREへのコマンドラインを示す。1のとき、マスクビットは、同じ論理値をそれらの要素からの2つのライン1上に強制し、対応するMAのセルに記憶された項目ビットのどんな論理値も、その列上の一致により常にそこに作る。このことは、コンパランドビットに対してドントケア条件を達成する。ドントケア論理値のビットの数と位置も、設計パラメータである。
【0013】
特に、メモリとユーザーデバイスの構成は、コンパランドビットのストリング全体がドントケア条件に強制されるように作られ得る。このことは、マトリックスMAの対応部分をRAMメモリとして考え、残りの部分のみをCAMメモリとして考えることに等しい。この構成は、CAMモード動作中にサーチされる情報に同時にアクセスすべき別の情報を関連付ける際に特に有効である。
ブロックCT1は、コンパランドとマスクを外部からレジスタREにロードするために時間ウインドウを識別する信号と共に、クロック及びコンポーネント選択信号を受け取り、かつ、それらを接続5上にてコマンドに変換する。これらのコマンドのいくつかは後に説明するが、CT1は、後に述べる目的のために接続11を介して符号器CDからリセット信号をも受け取る。
【0014】
出力符号器CDは、2つの部分から成る。第1部分CD1は、真正かつ適切なコード論理部であり、出力対6A,6B上に2つのビットグループを与える。該ビットグループの構成は、コンパランドとデータの比較の結果が1つの一致、複数の一致又は不一致であるかに従って変わる。特に、一致がマトリックスMAの1行に対してのみの場合には、CD1は関連の一致ラインmの識別を表す構成(特に対応するマトリックスMAの行アドレスに対する符号化)を出力6Aに与え、その補数構成を出力6Bに与える。複数の一致の場合には、CD1は、互いに相補的でない構成を出力6A及び6Bに発する一方、CD1への全ラインが否定比較の場合には、2つの値が発せられ、そのビットは同じ論理値(特に1)を有する。
第2部分CD2は比較器であり、CD1の2つの出力6A及び6Bに送出された値全てをビット毎に比較し、かつ、1つのラインm上のみでの一致の場合には対応するアドレスを出力7に発し、メモリがRAMとして使用される次のサイクルにてMAアドレスとして使用できるようにする。一方、複数の一致又は不一致の場合には、CD2は別の2つの出力8、9に信号を送出する。
【0015】
符号器部分CD1は、実際にはM行と2log2M列(各マトリックス部分に対するlog2M列、すなわち、マトリックスMAの行アドレスをコード化するのに必要なビットと同数の列)のダブルマトリックスからなる。各行は、MAからの一致ラインの一つに接続される。列は1の論理値に対応する電圧にてプリロードされ、トランジスターはグランド(論理0)に接続され、それぞれの列は、一致信号がライン上に存在するとき、選択された行と列の交点に位置する。他の交点では列と行は接続されない。各列に存在する電圧に対応する論理値は、CD1の出力ビット6A又は6Bである。第1及び第2マトリックス部分それぞれに対し、他のラインとは独立して考えられる対応ラインに一致信号が存在する場合における出力ビットの構成が行アドレス又はその補数を表すように、トランジスターが配置されるべき交点が選択される。
【0016】
図2は、符号化論理部CD1に採用された配置図である。一致ラインmm0 …mm4 に接続された4行のみからなる極端に簡略化したマトリックスである。よって、各ダブルマトリックス部は、2つの列A0,A1及びB0,B1を含み(同じ数字インデックスを有する列は相同位置にある列である)、それぞれ出力6Aと6Bを形成する。A0とB0は、最下位ビットを出力として与える列である。TA1…TA4とTB1…TB4は、それぞれ2つのマトリックス部のトランジスターである。
トランジスターTA,TBの構成は、実際には1つのラインmm上に論理1が存在する場合に行アドレスを出力として与え(それぞれ図のレイアウトに従って00、10、01、11であり、右側が最下位ビットである)及び列Bの補数(11、01、10、00)を与える。しかしながら、1より多いラインmmが1の場合に例えば第1及び第2ラインmm0 ,mm1 上にて列Aは構成00を与え、列Bは列Aに存在する構成の補数以外の構成10を与える。どのラインにも1が存在しないとき出力A及びBには構成11が存在する。m行及びlog2M列の実際の場合への拡張は容易に行える。
【0017】
第1符号器部分CD1は、ダミーラインの存在を考慮するダミー部CD10 をも含む。それは、常に一致信号を受け取り、出力11上にダミーアドレスとして解釈できる信号を常に送出する。実際には、このことは、マトリックスのダミー行に対応し且つ出力6A,6Bにて対応する列から切断された別の行を与えるダブルマトリックスを必要とする。
行選択回路SRは、マルチプレクサーMXにより示されるように、接続10を介して外部から与えられるアドレス又は接続7に存在するアドレスに基づいて、マトリックスMAの行を選択できる。アドレスモードの選択は、外部から制御される。メモリがRAMとして動作するときはいつでも、回路SRは、2つの出力12、12Dにより示されるように、特定行とダミー行の両方を常にアドレス指定する。
制御回路CT2は、従来のクロック信号(一般にはCT1に与えられるものと同じ)、コンポーネント選択及びリード/ライト信号を外部から受け取り、回路SRと論理部WRのラインの両方に与えられる信号GOに加えて、RAMメモリを操作するのに必要な従来のコマンド信号を発生する。これらの信号は、接続13の線上に存在する。これらの信号のいくつかは後に説明する。
【0018】
MAにデータを書き込み且つMAにて読み出されたデータを外部に送るための論理ネットワークWRは、実際にはデータに割り当てられたMAの列と同数の装置から成る(記載した例では40個)。14と15は、それぞれモジュールMEの外部から/へのおよびマトリックスMAから/へのデータのためのデータ入出力接続を示す。各装置WRは、従来型の構造を有し、書き込み方向においては、書き込まれるべき信号のサンプル回路、列のプリロードのための回路、及びメモリセル回路により要求されるレベルに書き込まれるべき信号を運ぶバッファを含む。読み出し方向においては、WRは、センス増幅器と読み出し信号出力を適切にタイミングするための回路を含む。
論理ネットワークWRは、MAのダミー列に接続された論理部CT3から線16を介して別のリセット信号をも受け取る。この第2の信号の目的は後に説明する。
RAM及びCAMとしての一般的なメモリ動作は、図3A、3Bに示す。ここで、CK、CKCAMはRAM及びCAM動作に対するクロック信号(一般には等しい)であり、ラインADDR,D,Q,WENは、それぞれRAMとしての動作に対するアドレスロードコマンド、データロードコマンド、データリードコマンド、及びデータリード/ライトコマンドを示し、K,MK,MADは、それぞれコンパランド及びマスクと検索される項目アドレスの送出・ロード工程を示す。図に示されたライト工程は、DATA1及びアドレスADDR1に関係し、リード工程は、アドレスADDR2に記憶された項目に関係する。これらの図は技術者には極めて明瞭であるから、さらなる説明は不要であろう。
【0019】
MAのダミー列及び行に戻ると、ダミー行のセルは、レジスタREからのビット出力に対するラインには接続されず、事前設定された論理値ビットを記憶する。それらは、実際のデータ行セルと同じように一致ラインmD に接続される。これらの条件では、それらは常にmD 上に一致信号を与える。ダミー列のセルは、セルビットを操作するためのラインと同様のラインを介して事前設定された論理値(及びその補数)に接続される。ダミーセルに対応するセルは、その行に対する一致ラインにも接続される。ダミー列及び行は、メモリのRAM動作中には共に使用される一方、ダミー行(特にダミー列に対応するセル)はメモリのCAM動作中に独自で使用される。それらの主な目的は、要求される最小時間の間だけアドレス及び検出回路(実際にはより大きな消費を伴うもの)をアクティブに維持して消費を低減することである。
【0020】
メモリがRAMモードで使用される場合のダミーの列と行の動作が、図3Cの時間図に示される。CT2に入るクロック信号CKの立ち上がりが、信号CKff_a とCKff_d 、GO及びDWL の立ち上がりを生じさせる。CKff_a とCKff_d は、それぞれアドレス及びデータをロードするためにSR及びWRに送られる(図3Aも参照)。GOは選択された行をイネーブルし、DWL はダミー行をイネーブルする。列のプリロードは不可にされ(信号PRECの1への移行)、ダミー列が読み出される(信号DBL の0への移行)。DBL を0に移行することにより、CT3(図1)内の信号RSがリセットされ、このことがWR内のリード増幅器をオフに切り、元の条件に戻す。発生された全ての信号は、CKデューティサイクルと周期に独立な動作を保証するのに厳密に必要な限り持続する。
【0021】
CAM動作(図3D)では、コンパランドがメモリに与えられるときはいつでも、一致信号がマトリックスMAのダミー行に関係する一致ライン上にて得られ、それがダミーアドレスをライン11上に発生することにより符号器のダミー部分に送られ、それによりCT1がREを使用不可にする。特に、クロックCKCAM の立ち上がりにより、マスクとコンパランドのロードを引き起こし(図3B)、マスクとコンパランドが安定なとき、結果のアセスメントと読み出し信号Eval及びPre の立ち上がりを開始させる。ダミー行に強制された肯定の比較結果のビットのANDは、一致ラインmD 上にDMATCHの立ち上がりを開始させる。符号器CDのダミー部分CD1Dは、出力11上にダミーコードアドレスNMを発生し、それが比較を中断しシステムを元の状態に戻す。この場合にも、発生された全てのパルスは、CKCAM デューティサイクルと周期に独立な動作を保証するのに厳密に必要な限り持続する。
本発明によるメモリの容量は、N’列のワード(ここでN’>N)で動作するように拡張できる。
【0022】
例えば、図4は2つのモジュールME1,ME2を用いるメモリを示し、その各々は図1のモジュールMEに等しい。図1の要素に対応する要素が同じ符合で示されており、さらに1及び2がそれぞれ加えられている。簡単のため、図4は(WR1、WRに組み込まれた)CT3とMXの対応する回路を示さず、データ行のものとは分離されたマトリックスMA1,MA2のダミー行の直接アドレスも有さない。2つのモジュールは、論理ネットワークを介して同じ符号器CDに接続される。該論理ネットワークの入力は、一致ライン(含まれたダミー行に関係するもの)である。これらの一致ラインは、2つのマトリックスMA1及びMA2を出るM1及びM2により集合体を示す図中に示され、それは相同ラインに存在する信号のANDを実行する。2つのレジスタRE1、RE2の各々は、コンパランドの一部をロードしマトリックスMA1,MA2に与える。明らかに、この解決策は、2つのマトリックスが同数のラインを有することを要求する。逆に、マトリックスMA1の列の数N1は、マトリックスMA2の列の数N2とは異なり得る。
【0023】
ここに記載されたようなメモリは、システム−オン−チップ技術により設計でき、それにより如何なる集積回路のライブラリセルとしても自動設計できる。マトリックスMAで言及したような縮小容量メモリの場合にも、1以上のモジュールMEが同じ集積回路上に実現できる。この集積回路は、例えばインターネット用の通信ルーティング管理デバイスのようなメモリを使用するデバイスをも含む。技術者ならば、この種のメモリの結果として特徴付けられるメモリへのアクセス時間の節約、消費の削減、及びシステムの複雑さの低減の観点からの利点を明らかに理解するであろう。
ユーザーシステムのニーズに基づいて、メモリ構成は2値又は3値CAM又はRAMとして動作するのに必要なものとでき、RAM又はCAMとして使用されるべき領域を選択できる。
上記記載は明らかに単なる例であり、変形や変更が本発明の保護範囲を離れることなく為し得る。
【図面の簡単な説明】
【図1】本発明のCAMメモリの一般的なブロック図である。
【図2】デコーダーの略図である。
【図3A】いくつかの動作時間図である。
【図3B】いくつかの動作時間図である。
【図3C】いくつかの動作時間図である。
【図3D】いくつかの動作時間図である。
【図4】いくつかのモジュールを含んだメモリの図である。
【符号の説明】
ME 基本モジュール
CD 符号器
MA マトリックス
RE レジスタ
WR リード/ライト論理装置
CT1…CT3 制御装置
SR 行選択回路
MX マルチプレクサー
Claims (8)
- 2つの補数値に加えてドントケア論理値をとり得るビットを有するデータワードを記憶するための、その内容によりアドレス指定可能なメモリであって、
(1)各々がNビットのM個のデータワードからなるアレイを形成するように編成された、メモリセル(C11…CMN)から成る少なくとも1つのマトリックス(MA;MA1,MA2)であって、行セル(C11…CMN)に記憶される各ビットは、そのビットが2つの補数論理値のみを有することができる場合には1つのセルに個別に割り当てられ、又は該ビットに対して論理ドントケア値の条件もまた許容される場合には隣接セルの対に個別に割り当てられる、上記マトリックス(MA;MA1,MA2)、
(2)マスクワードを用いて比較することによりメモリ内でサーチすべきデータワードをマトリックス(MA)に付与する手段(RE)であって、全ての列セルに共通の付与ラインを介してマトリックスのセル(C11…CMN)に接続される上記手段(RE)、
(3)セルに記憶されたビットとコンパランドのコンパランドビットとの比較を行うべく各セル(C11…CMN)に接続された第1比較手段であって、その出力は、互いに連結された行セルに接続され、その行に記憶されたワードとコンパランドとの肯定又は否定比較を示す信号を一致ライン(m1…mM )上に発生する、上記第1比較手段、
(4)一致ライン(m1…mM)に接続され、かつ、コンパランドと記憶されたワード間で一致が見い出されたか否かを示す信号を送出し、さらにそれが肯定ならば1又はそれより多い記憶ワードとで一致が見い出されたか否かを示す信号を送出する符号化手段(CD)、及び
(5)比較を行うため又は直接アドレス指定によるデータのリード/ライトを行うために、メモリマトリックス(MA;MA1,MA2)へのアクセスを制御する制御手段(CT1…CT3,WR,SR;CT11…SR1,CT21…SR2)
を含み、
(ア)メモリマトリックス(MA;MA1,MA2)に記憶されたワードのアレイ全体が、直接アドレス指定によりアクセス可能なデータ構造を有し、該直接アドレス指定は、ユーザーデバイスにより与えられるアドレスを用いて、又はコンパランドと一つの記憶ワードの間に一致が見い出されたことを示す符号化手段により送出される信号から成るアドレスを用いて行われ、
(イ)前記メモリマトリックス(MA;MA1,MA2)は、コンパランドとの比較がダミーの一致ライン上に常に一致信号を与えるように構成されたダミーデータを記憶するための補助行のセル(CD1…CDD)、及びメモリデータに割り当てられず且つ前記補助行に対応するセル(CDD)を含んだ補助列のセル(CDD…CMD)を含み、また、符号化手段(CD)は、ダミーのアドレス信号を出力するメモリマトリックス(MA;MA1,MA2)の補助行に接続された補助部分(CD1D )を含み、
(ウ)前記制御手段(CT1…CT3,WR,SR;CT11…SR1,CT21…SR2)は、直接アドレス指定のメモリ動作中に前記補助行をも常にアドレス指定し、
(エ)前記メモリマトリックスの補助行(CD1…CDD)は、符号化手段(CD)の補助部分(CD1D)及び制御手段(CT1…CT3,WR,SR;CT11…SR1,CT21…SR2)の第1制御装置(CT1;CT11,CT21)と共に、コンパランドと記憶データとの比較を行うメモリ動作中に使用される第1リセットループを形成し、前記第1制御装置(CT1;CT11,CT21)を制御してコンパランドとそのマスクがメモリマトリックス(MA;MA1,MA2)に付与されると直ぐに前記付与手段(RE;RE1,RE2)を使用不可にし、また、前記補助行及び列(CD1…CDD,CDD…CMD)は、前記制御手段(CT1…CT3,WR,SR;CT11…SR1,CT21…SR2)に属するリセット信号を発生する装置(CT3)と共に、メモリを直接アクセスにて使用中に用いられる第2リセットループを形成し、制御手段(CT1…CT3,WR,SR;CT11…SR1,CT21…SR2)を制御して項目が読み出されると直ぐにアドレス指定手段(SR;SR1,SR2)とデータ読み出し手段(WR;WR1,WR2)を使用不可にする、
ことを特徴とする上記内容によりアドレス指定可能なメモリ。 - 符号化手段(CD)がダブル結合ネットワーク(CD1)と第 2 比較手段(CD2)とを含み、該ダブル結合ネットワーク(CD1)は、
(1)コンパランドと記憶された1ワードとの一致が存在する場合、一致が見い出された行のアドレスに対応するビット構成とその補数構成を一対の出力に与えることができ、
(2)コンパランドと1より多い記憶ワードとの一致が存在する場合、互いに相補的ではない構成、ただしそれらの総てのビットが同じ論理値を有しているわけではない該構成を前記出力の対に与えることができ、
(3)一致が存在しない場合、同じ論理値をもったビットを有する2つの構成を前記出力の対に与えることができ、
また、前記第 2比較手段(CD2)は、前記出力に存在するビットのビット毎の比較を行い、それらを行アドレス、複数一致及び不一致信号にそれぞれ変換する、ことを特徴とする請求項1記載のメモリ。 - 前記メモリマトリックス(MA;MA1,MA2)は、ドントケア論理値を有し得る各ビットに対して一対のセルを含み、また、メモリは、このセル対のビットの論理値0、1及びドントケアがそれぞれ01、10、00対により記憶され、かつ、前記コンパランドの論理値0、1及びドントケアビットが結合0x、x0及びxx(xはそれらのドントケア論理値を示し、これは常に肯定の比較結果を生じさせる)として付与手段に与えられてコンパランドとこれらのセル対の比較を行うように、プログラミングされることを特徴とする請求項1又は2に記載のメモリ。
- ドントケア論理値を有し得るビットの数が、ユーザーデバイスの要求に基づいてプログラム化され得ることを特徴とする請求項3記載のメモリ。
- 複数のメモリマトリックス(MA1,MA2)を含み、その各々は同じデータワードのビットストリングを記憶し、その関連の付与手段(RE1,RE2)に接続され、該付与手段は、コンパランドとマスクの対応するビットストリングをマトリックスに付与し、また、
前記マトリックスは同じ行数を有し、全てのマトリックス(MA1,MA2)の相同行に関連する一致ラインが、別の論理ネットワーク(PA)を介して全マトリックス(MA1,MA2)に共通の符号化手段(CD)に接続され、該論理ネットワーク(PA)は、行毎に個々のマトリックス(MA1,MA2)に与えられる出力信号を肯定又は否定の比較結果を示す1つの信号に結合する、
ことを特徴とする請求項1〜4のいずれか一項に記載のメモリ。 - 異なるマトリックス(MA1,MA2)に記憶されたビットストリングが異なる長さを有することを特徴とする請求項5記載のメモリ。
- メモリが集積回路セルライブラリのセルとして実現され、ユーザーデバイスが集積化される同じコンポーネントに組み込むことができることを特徴とする請求項1〜6のいずれか一項に記載のメモリ。
- メモリの構成が、2値、3値CAM、RAMメモリとして、又はユーザーデバイスの要求によりRAMとして使用可能な領域を含んだメモリとして動作できるようなものであることを特徴とする請求項1〜7のいずれか一項に記載のメモリ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT99A000411 | 1999-05-17 | ||
IT1999TO000411A IT1308100B1 (it) | 1999-05-17 | 1999-05-17 | Perfezionamenti alle memorie indirizzabili mediante il contenuto |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000353388A JP2000353388A (ja) | 2000-12-19 |
JP3599273B2 true JP3599273B2 (ja) | 2004-12-08 |
Family
ID=11417818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000145362A Expired - Fee Related JP3599273B2 (ja) | 1999-05-17 | 2000-05-17 | 内容参照可能メモリの改良 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6169685B1 (ja) |
EP (1) | EP1054407B1 (ja) |
JP (1) | JP3599273B2 (ja) |
CA (1) | CA2308969C (ja) |
DE (1) | DE60037699T2 (ja) |
IT (1) | IT1308100B1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6288922B1 (en) * | 2000-08-11 | 2001-09-11 | Silicon Access Networks, Inc. | Structure and method of an encoded ternary content addressable memory (CAM) cell for low-power compare operation |
US6252790B1 (en) * | 2000-10-16 | 2001-06-26 | Nicholas Shectman | Large-capacity content addressable memory with sorted insertion |
US6577519B1 (en) * | 2001-08-30 | 2003-06-10 | Sibercore Technologies, Inc. | System and method for low power searching in content addressable memories using sample search words |
US7210003B2 (en) * | 2001-10-31 | 2007-04-24 | Netlogic Microsystems, Inc. | Comparand generation in a content addressable memory |
US6993622B2 (en) * | 2001-10-31 | 2006-01-31 | Netlogic Microsystems, Inc. | Bit level programming interface in a content addressable memory |
US7237058B2 (en) * | 2002-01-14 | 2007-06-26 | Netlogic Microsystems, Inc. | Input data selection for content addressable memory |
US6924994B1 (en) * | 2003-03-10 | 2005-08-02 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices having scalable multiple match detection circuits therein |
US20060018142A1 (en) * | 2003-08-11 | 2006-01-26 | Varadarajan Srinivasan | Concurrent searching of different tables within a content addressable memory |
US7133302B1 (en) | 2003-11-15 | 2006-11-07 | Netlogic Microsystems, Inc. | Low power content addressable memory |
US20050213359A1 (en) * | 2004-03-26 | 2005-09-29 | Kim Jin K | Hybrid content addressable memory |
US7418543B2 (en) * | 2004-12-21 | 2008-08-26 | Intel Corporation | Processor having content addressable memory with command ordering |
US7467256B2 (en) * | 2004-12-28 | 2008-12-16 | Intel Corporation | Processor having content addressable memory for block-based queue structures |
US7471537B1 (en) | 2006-06-23 | 2008-12-30 | Integrated Device Technology, Ltd. | Content addressable memories (CAM) having low power dynamic match line sensing circuits therein |
US7822916B1 (en) | 2006-10-31 | 2010-10-26 | Netlogic Microsystems, Inc. | Integrated circuit search engine devices having priority sequencer circuits therein that sequentially encode multiple match signals |
US8130525B2 (en) * | 2009-10-09 | 2012-03-06 | International Business Machines Corporation | Method and apparatus for configuring a content-addressable memory (CAM) design as binary CAM or ternary CAM |
EP3525087A1 (en) | 2010-08-06 | 2019-08-14 | Frederick Furtek | A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system |
WO2013071183A1 (en) * | 2011-11-11 | 2013-05-16 | Tabula, Inc. | Content addressable memory in integrated circuit |
US9262312B1 (en) * | 2012-10-17 | 2016-02-16 | Marvell International Ltd. | Apparatus and methods to compress data in a network device and perform content addressable memory (CAM) processing |
US9859006B1 (en) * | 2016-06-17 | 2018-01-02 | Globalfoundries Inc. | Algorithmic N search/M write ternary content addressable memory (TCAM) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107501A (en) * | 1990-04-02 | 1992-04-21 | At&T Bell Laboratories | Built-in self-test technique for content-addressable memories |
US5130947A (en) * | 1990-10-22 | 1992-07-14 | Motorola, Inc. | Memory system for reliably writing addresses with reduced power consumption |
US5226005A (en) * | 1990-11-19 | 1993-07-06 | Unisys Corporation | Dual ported content addressable memory cell and array |
US5940852A (en) * | 1997-05-01 | 1999-08-17 | Altera Corporation | Memory cells configurable as CAM or RAM in programmable logic devices |
AU1092599A (en) * | 1997-10-30 | 1999-05-24 | Netlogic Microsystems, Inc. | Synchronous content addressable memory with single cycle operation |
-
1999
- 1999-05-17 IT IT1999TO000411A patent/IT1308100B1/it active
-
2000
- 2000-05-12 US US09/570,149 patent/US6169685B1/en not_active Expired - Lifetime
- 2000-05-16 CA CA002308969A patent/CA2308969C/en not_active Expired - Fee Related
- 2000-05-17 EP EP00110217A patent/EP1054407B1/en not_active Expired - Lifetime
- 2000-05-17 JP JP2000145362A patent/JP3599273B2/ja not_active Expired - Fee Related
- 2000-05-17 DE DE60037699T patent/DE60037699T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
ITTO990411A1 (it) | 2000-11-17 |
EP1054407B1 (en) | 2008-01-09 |
JP2000353388A (ja) | 2000-12-19 |
DE60037699D1 (de) | 2008-02-21 |
CA2308969C (en) | 2004-04-27 |
IT1308100B1 (it) | 2001-11-29 |
DE60037699T2 (de) | 2008-12-24 |
ITTO990411A0 (it) | 1999-05-17 |
EP1054407A1 (en) | 2000-11-22 |
US6169685B1 (en) | 2001-01-02 |
CA2308969A1 (en) | 2000-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3599273B2 (ja) | 内容参照可能メモリの改良 | |
US6910097B1 (en) | Classless interdomain routing using binary content addressable memory | |
US6081440A (en) | Ternary content addressable memory (CAM) having fast insertion and deletion of data values | |
US10366755B2 (en) | Semiconductor device including TCAM cell arrays capable of skipping TCAM-cell search in response to control signal | |
US6362993B1 (en) | Content addressable memory device | |
US6137707A (en) | Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device | |
US5184325A (en) | Dynamic associative memory with logic-in-refresh | |
US6154384A (en) | Ternary content addressable memory cell | |
KR20130105393A (ko) | 내용 참조 메모리 시스템 | |
US20030179623A1 (en) | CAM cell array, TCAM cell, TCAM cell array, address search memory, and network address search apparatus | |
US20030131188A1 (en) | Synchronous content addressable memory | |
JPH0594698A (ja) | 半導体記憶装置 | |
JPH11273365A (ja) | 内容呼出し可能メモリ(cam) | |
US20030005210A1 (en) | Intelligent CAM cell for CIDR processor | |
US11886746B1 (en) | Algorithmic TCAM with storage activity-based read | |
US7099992B2 (en) | Distributed programmable priority encoder capable of finding the longest match in a single operation | |
US10545878B2 (en) | Search memory | |
US6898100B2 (en) | Semiconductor memory device used for cache memory | |
JP6170718B2 (ja) | 検索システム | |
JPH05198186A (ja) | 連想メモリシステム | |
US7363424B2 (en) | Content addressable memories (CAMs) based on a binary CAM and having at least three states | |
JP3130736B2 (ja) | 連想メモリの使用方法および連想メモリ | |
US7869238B2 (en) | N-way mode content addressable memory array | |
KR100530540B1 (ko) | 내용 주소화 메모리 장치 및 그 검색방법 | |
JPH0235689A (ja) | 連想メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040218 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040506 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040813 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040908 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040910 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120924 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130924 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |