JPH11126486A - 連想記憶装置のエンコーダにおける一致信号及び一致アドレス信号の優先順位付け - Google Patents

連想記憶装置のエンコーダにおける一致信号及び一致アドレス信号の優先順位付け

Info

Publication number
JPH11126486A
JPH11126486A JP10245212A JP24521298A JPH11126486A JP H11126486 A JPH11126486 A JP H11126486A JP 10245212 A JP10245212 A JP 10245212A JP 24521298 A JP24521298 A JP 24521298A JP H11126486 A JPH11126486 A JP H11126486A
Authority
JP
Japan
Prior art keywords
signal
match
cam
bit
address
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.)
Pending
Application number
JP10245212A
Other languages
English (en)
Inventor
Ii Airell R Clark
エイレル・アール・クラーク・ザ・セカンド
Brian R Jung
ブライアン・アール・ジュン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH11126486A publication Critical patent/JPH11126486A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital 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/04Digital 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】 2つ以上の一致が生じる可能性のあるCAM検索
における競合を解決し、集積回路の製作フ゜ロセスの改善を
必要とすることなくCAM検索サイクルの速度を改善する、CAM
システムを提供すること。 【解決手段】 連想記憶装置(CAM)アレイのためのエンコート゛さ
れた一致信号(115,401)及び一致アト゛レス信号(117,403,40
5)の優先順位付けを行う方法及び装置。各CAMコアは(1051
N)は出力エンコータ゛(1111N)を備えており、該出力エンコータ
゛(1111N)は、一致信号(1151N)を提供し、また一致
が判定された場合に対象となるテ゛ータのCAM中の位置を示
す一致アト゛レス信号(1171N)を提供する。優先エンコータ゛の出
力信号がエンコート゛され(113)、最終一致信号(401)及びテ゛ータ
を有するCAMコアからの最高優先順位の一致アト゛レスのみに対
する最終一致アト゛レス(403,405)が提供され、これにより、
複数のCAM一致のうちの何れを選択すべきかを判定する
ことに関する問題が解決される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、ディジタル
データの符号化に関し、特に、2つ以上の一致が考え得
る検索ルーチンの結果となるシステムのための連想記憶
装置エンコーダにおける一致信号及び一致アドレス信号
の優先順位付けに関する。
【0002】
【従来の技術】ランダムアクセスメモリ(RAM)は、
最新技術により得られる最も一般的な形の集積回路メモ
リである。しかし、RAMデバイスは、連想データを処
理するシステムでの使用には適さないものである。例え
ば、RAMにアドレス指定する場合、データに逐次アク
セスする周知の方法は、パターン認識、データ圧縮、自
然言語認識、疎行列プロセス、及びデータベース問い合
わせを伴う、記憶情報を必要とするシステムには不十分
なものである。所望の記憶データの連想アドレスを知る
ことはできない。このタイプのデータの場合、所望のデ
ータの圧縮されたサブセットまたは全データセットを表
すコードを供給することによりメモリに問い合わせる方
がより効率的である。メモリは、これに応じて所望のデ
ータセットの有無を指示する。該指示は、一致信号と該
データセットに関するメモリバンク内における連想アド
レスとを発行することにより行われる。
【0003】1980年代、曖昧で不連続なアドレス指定を
行う別のタイプのメモリデバイスが開発され、連想記憶
装置(「CAM」)と呼ばれた。例えば、米国特許第3,
701,980号(Mundy)を参照されたい。基本的には、このタ
イプの連想データ検索の場合には、単一クロックサイク
ルでCAM全体を検索することが可能であり、これは、
RAMデバイスを利用する場合に必要とされる逐次検索
技術に比べて大きな利点を提供するものとなる。
【0004】例えば、CAMにストリング辞書を記憶さ
せて、Lev−Zempel圧縮出力データ(以下「LZ」と称
す;該用語は一般にLZデータ圧縮技術に用いられるもの
である;「Compression of Individual Sequences Via
Variable-Rate Coding」,IEEE Transactions on Informa
tion Theory, 24(5): 530-536, September 1978を参照
されたい)の生成に該ストリング辞書を使用することが
可能である。CAMへの入力データ信号は、CAM内で
検索中のデータのビットストリング表現から構成され
る。その出力は、データが見つかったか否かを示す信号
(即ち一致信号)であり、データが見つかった場合に
は、CAM内の位置を示す信号(即ち一致アドレス信
号)が更に出力される。該一致情報及び一致アドレス情
報は、当業界で「一致エンコーダ(match encoder)」と
呼ばれるものにより得られる。別の例として、カラーハ
ードコピー印刷の場合、データベースをCAMに記憶さ
せることが可能であり、この場合、データは、3刺激空
間値(tristimulus space value)(即ち、シアン、黄、
マゼンタ(CYM))を構成するビットストリングから構成
される。Clark II等の米国特許第5,455,576号には、「A
pparatus and Methods for Lempel Ziv Data Compressi
on with Improved Management of Multiple Dictionari
es in Content Addressable Memory」について教示され
ている。
【0005】
【発明が解決しようとする課題】CAMデバイスに関す
る問題は、RAMと比べた場合に個々のセル構造が比較
的複雑である点にある。例えば、米国特許第4,780,845
号(Threewitt)を参照されたい。このため、集積回路の
実体財産(real estate)が同じ場合には、CAMデバイ
スは、RAMデバイスの記憶密度、処理速度、または低
電力性能に対抗することができない。集積回路プロセス
の改良は、一般に両方のタイプのデバイスに等しく影響
を与えるので、相対的にCAMアーキテクチャは性能の
ギャップをあまり狭めることができない。
【0006】おそらく、CAMを通る最大のクリティカ
ルパスは、検索サイクル、即ち、CAMが所望のデータ
セットを備えているか否かを判定するための入力データ
信号またはコードがエンコーダの入力により受信されて
から一致または不一致の指示が出力されるまで、また一
致信号が生成される場合には一致アドレス信号が出力さ
れるまでの時間である。データの性質に従って、CAM
コアメモリは、冗長情報を有する位置を含むことが可能
である。例えば、上記米国特許第5,455,576号を参照さ
れたい。したがって、検索の結果、2つ以上の一致アド
レスについて1つの一致が得られることになる。かかる
場合には、何れの一致アドレスを選択すべきかを判定す
る必要があり、本書ではこれを「優先順位付け」と称す
ることとする。
【0007】
【課題を解決するための手段】本発明の基本的態様によ
れば、複数の出力ディジタルビット信号を有する電子装
置の冗長信号の優先順位付けを行う方法であって、該複
数の出力ディジタルビット信号が、互いに組み合わせら
れて、所定の信号内容を指定する複数のビットからなる
連結ディジタル信号を形成する、優先順位付け方法が提
供される。該方法は、前記複数の出力ディジタルビット
信号を複数組に分割し、その各組が連結ディジタル信号
の完全な信号内容を有するようにし、第1の関与するデ
ィジタルビット信号のみを連結し、及び前記組の各々に
おける後続の各ビット信号を阻止して、前記第1の関与
する連結ディジタルビット信号のみが出力されて前記所
定の信号内容を指定するようにする、という各ステップ
を含む。
【0008】本発明のもう1つの基本態様によれば、メ
モリ出力の優先順位付けを行うための装置を備えた連想
記憶装置(CAM)回路装置が得られる。複数のCAM
内には、各々、データビットを記憶するためのアドレス
指定可能なセル機構のセルアレイと、各セルに接続され
た一致信号ラインと、複数の一致アドレス信号ラインと
が含まれている。CAMの各々に接続されて各一致信号
及び各一致アドレス信号を該CAMから受信する複数の
回路機構が設けられており、該回路機構は、一致信号及
び一致アドレス信号に優先順位付けを施して、複数のC
AMのうちの第1のCAMからの第1の一致信号及び第
1の一致アドレス信号のみを該回路機構の出力に送出す
るようにする。更に、第1の一致信号及び第1の一致ア
ドレス信号を提供するバンク中のCAMセルアレイを表
す第1の一致アドレス信号のビットを組み合わせて、一
致信号を提供したバンク中の前記アレイと該アレイ中の
アドレスとの両者を指示する一致アドレスF信号を出力
する機構も設けられる。
【0009】本発明の更に別の基本態様によれば、優先
エンコーダ(または優先待ち行列)装置を備えた連想記
憶装置(CAM)システムが提供される。該システム
は、各々がデータを記憶している複数のCAMコアであ
って、その出力ビットラインに冗長一致信号及び一致ア
ドレス信号を出力することが可能な複数のCAMコア
と、該複数のCAMコアのうちの1つから各一致信号及
び一致アドレス信号を受信するように接続された複数の
優先エンコーダであって、前記複数のCAMコアのうち
の1つの各出力ビットラインにそれぞれ接続されて一致
信号ビット及び一致アドレス信号ビットを受信する入力
信号バッファと、N2(N2=各CAMコアから入力され
る一致アドレス信号の数)のセットに分割された複数の
優先エンコード回路手段であって、一致信号ビット及び
一致アドレス信号ビットをエンコードし、各セットにお
ける第1の活動状態の一致信号ビット及び第1の活動状
態の一致アドレス信号ビットに後続する一致信号ビット
及び一致アドレス信号ビットを阻止する、複数の優先エ
ンコード回路手段とを各々が備えている、複数の優先エ
ンコーダと、一致信号ビット、一致アドレス信号ビッ
ト、阻止された一致信号ビット、及び阻止された一致ア
ドレス信号ビットを受信して、第1の活動状態の一致信
号ビット及び第1の活動状態の一致アドレス信号ビット
だけが連結され、及び第1の一致出力信号及び第1の一
致アドレス出力信号のみが該システムから送出されるよ
うにする、アドレスエンコーダとを備えている。
【0010】本発明の利点は、2つ以上の一致が生じる
可能性のあるCAM検索における競合が解決されること
にある。
【0011】本発明の利点はまた、集積回路の製作プロ
セスの改良を必要とすることなくCAM検索サイクルの
速度が改善されることにある。
【0012】本発明の他の目的、特徴、及び利点につい
ては、以下の説明及び図面を検討することにより明らか
となろう。なお、全図面にわたり、同様の符号は同様の
特徴を表すものである。
【0013】
【発明の実施の形態】次に、本発明の特定の実際形態に
ついて詳細に言及することにする。以下は、本発明者が
現時点で本発明を実施するためのベストモードと考える
ものの例示である。代替実施態様についても適宜簡潔に
述べることにする。以下のセクション毎のサブタイトル
は便宜上付したものであり、後述する細部に対する制限
を表すことを意図したものではなく、また、かかる制限
を示唆するものでもない。
【0014】一致信号及び一致アドレス信号の生成 ここで図1を参照する。同図において、標準バス101上
のデータ検索信号は、ドライバ103を介して検索エンジ
ン(例えば中央処理装置(図示せず))から供給され
る。該ドライバ103は、比較的キャパシタンスの高いC
AMコアセルアーキテクチャを駆動するための当業界で
既知の標準的なバッファリングハードウェアから構成さ
れるものである。
【0015】各CAMコア1051〜105Nは、当業者に既知
の標準的なトランジスタベースのセル回路及び検索回路
のアレイから構成される。該アレイの各セルは、それぞ
れ1ビットを記憶する。典型的な実施態様によれば、76
8ワード×19ビットのCAM全体について解説する。典
型的な実施態様の場合には、集積回路のレイアウト上の
制限により、N=6になる(即ち、各々が128ワード×19
ビットからなる6つのCAMコア1051〜1056が設けられ
ている)ものと仮定する。典型的な実施態様に対する本
発明の適用可能性を制限するための表現上の意図はな
く、また、かかる制限を示唆する意図もなく、本発明の
範囲は特許請求の範囲により規定されるものである。
【0016】各CAMコア1051〜105Nに問い合わせを行
うために、データ検索信号が標準バス1071〜107Nを介し
て入力される。所定のアルゴリズムに関して実施する場
合には、CAMコア1051〜105Nのうちの2つ以上が一致
を生じる可能性があるが、該典型的な実施態様では、C
AMコア1051〜105Nのうちの1つにおける1つのセルし
か対象となるデータセットを記憶していないものとす
る。このため、もしあるとしても、1つの一致X信号
と、それに対応する1つの第1一致アドレスXしか存在
しないことになる(複数の一致の優先順付けに関する実
施態様については図3及び図4に関連して後述する)。
【0017】一般に、CAMコア出力のプリチャージを
行い、検索後の遷移が一致信号及び一致アドレス信号と
して認識されるようにすることは、既知のところであ
る。この例の場合、該出力が全て高レベルになるようプ
リチャージされる。各CAMコア1051〜105Nは、記憶さ
れている各データワード(即ち、典型的な実施態様の場
合には128ワード)につき1つのラインをそれぞれ有す
る出力バス1091〜109Nを備えている。どこかの位置で不
一致が生じると、その位置に関する出力ビットが低レベ
ルへとプルダウンされて不一致が示される。このため、
出力が高レベルに留まる場合には一致が示される。一致
が存在しない場合には、全ての出力が低レベルへとプル
ダウンされる。従って、各CAMコア1051〜105N毎に、
個々のバス1091〜109Nにおける128の出力により、セル
アレイにおける特定のアドレスが一致であるか不一致で
あるかが示される。6つのデバイスメモリバンクの各C
AMコア出力毎の出力信号は、メモリの第1エンコーダ
1111〜111Nを使用して導出される。
【0018】ここで、6つのCAMコア1051〜1056の12
8の出力を(好適には1クロックサイクルで)最終的な
一致信号(即ち一致F信号及びデータ一致アドレスF
号)にすることが必要になる。この場合、データ一致ア
ドレスFは、特定のCAMコア105Xのアドレスであると
共にそのセルアレイのアドレス第1一致アドレスXであ
る。ここで、メモリバンクのCAMコア1051〜105Nのう
ちの1つについて1つの一致指示しか存在しないものと
再び仮定すると、CAMコア11051〜CAMコアN105N
一致F信号、及び適当なデータ一致アドレスFは、最終エ
ンコーダ113を使用して導出される。本出願人の米国特
許第5,373,290号の図5及び図5Bに、最終エンコーダ
が構成要素194の一部として示されている。該構成要素1
94において、6つのCAMコアからなるアレイについて
の最終エンコーダ301は、6つのセクションを有してお
り、その各セクションは、該アレイの各CAMコア毎に
1つずつ指定されている。本出願の関連特許出願、即
ち、1996年6月17日にAirell R.Clark IIにより提出され
た米国特許出願第08/664,902号の図3A,3B及び図4
A,4Bを参照することも可能である。
【0019】ここで、図2(a),(b)を参照する。図2(a)
は、標準的なCAMエンコーダ201を示している。かか
るエンコーダ201は、本出願人の米国特許第5,373,290号
(Lempel等)の図5に構成要素194として示され、コラ
ム12から始めて解説されている(28行目以降参照)よう
な、CAMシステムに用いられる。エンコーダ201にお
いて、一致ライン203は、各CAMコア1051〜105Nにお
ける128のデータワードの各々に1つずつ、図2(c)に示
すように構成されたプルダウントランジスタ205を備え
ている。同様に、128のコア一致ライン2070000000(位
置ゼロ)〜2071111111(位置127)が、基本的に多重ワ
イヤードOR構成で、最下位ビット(LSB)一致アドレ
スライン2091〜最上位ビット(MSB)一致アドレスライ
ン2097から一致ライン203へと多重化される(注:後述
するように、7つのビットは、図1の最終エンコーダ11
3からの10ビットアドレスの下位アドレスビットを形成
するものでもある)。従って、一致ライン203は、(図
2(a)において垂直方向にカウントして)128のプルダウ
ントランジスタ205を備えているが、一致アドレスライ
ン2091〜2097は、それぞれ64のプルダウントランジスタ
しか備えていない。
【0020】図2(a)の標準的なCAMエンコーダ201の
実施態様と図2(b)に示す本発明による第1エンコーダ2
01とを比較した場合、それらの相違点は、一致ライン20
3においてプルダウントランジスタ205がコア一致ライン
2070000000(位置ゼロ)〜2071111110(位置126)の1/
2についてしか設けられていない点にある。一致ライン2
03のプルダウントランジスタ205が存在しない位置につ
いては、一致アドレスライン2091〜2097の指定されたプ
ルダウントランジスタを用いて二重の役割を果たし、即
ち、スイッチングされた際に一致状態の表示も行う。
【0021】例えば、図示のように1つおきの一致ライ
ン203がプルダウントランジスタ205を有しており、及び
検索対象となるデータが位置0000011にある場合、一致
ライン203のプルダウントランジスタ205を有さずビット
0を用いる位置が二重の役割を果たす。これは、CAM
コアのうちの1つの位置しか一致しないからであり、競
合は生じないことになる。即ち、CAMコアが位置
0000011に一致アドレスをセットした場合、ビット0が
状態を変化させて一致を指示する。別の例として、最上
位一致アドレスビットが二重の役割のために使用される
場合には、上位64の一致ライン203しかプルダウントラ
ンジスタ205を必要としない。このため、このようにし
て真の一致が生じた場合に一致を指示するものとして一
致アドレスビットのうちの1つが使用される場合には、
一致ライン203上のプルダウントランジスタの数が64に
減少する。その結果、一致ライン203は一致アドレスラ
イン209と同じ速さになる。
【0022】約6nsecの検索アクセス時間を有する商用
の実施形態では、約0.5nsecの改善が達成されることが
分かった。
【0023】図1に示す本発明の実施態様は、各々がそ
れ自体の第1エンコーダ11116を備えている6つのC
AMコア10516からなるバンクを用したものである、
という点を想起されたい。ここで、対象となるデータが
発見されたことを示しCPUに戻される最終一致F信号
と、バス117X(X=一致信号を生成したCAMコア0
127位置)上の第1一致アドレスと6つのCAMコア105
16のうち一致信号を生成したCAMコア105の指示と
の両方を指定するデータ一致アドレスFとを、両方とも
得るために、各第1エンコーダ一致出力バス11516
びそれに付随する第1一致アドレス出力バス11716
の出力信号一致16の各々をエンコードすることが必要
になる。該機能は、最終エンコーダ113において、対象
となる全データが存在するCAMコア105の位置につい
ての7つの第1一致アドレスビットに上位3つのアドレ
スビットを追加することにより、実施される。
【0024】ここで図3,4及び図5,6を参照する。同
図では、該タスクを実施するための最終エンコーダ113
が設けられている。
【0025】図3は、やはり本出願人の米国特許第5,37
3,290号の図5に構成要素194の一部として示された実施
態様を表している。構成要素194において、6つのCA
Mコアからなるアレイについての最終エンコーダ301
は、6つのセクションを有しており、その各セクション
は、該アレイの各CAMコアに1つずつ指定されてい
る。前述のように、図1の各第1エンコーダ1111
Nは、一致1N信号のための出力ライン1151N及び第1
一致アドレス1N信号のための出力バス1171Nを有し
ている。比較のため図3,4及び図5,6の両者を参照
し、各セクションの一例としてCAMコア6に関する図
1の最終エンコーダ113のセクションに注目すると、ラ
イン1156上の一致6信号は、個々の最終エンコーダ113の
入力サブセクション(即ちCAMコア3031N)の各々
に適当な高レベル状態または低レベル状態の信号を提供
する。同様に、各第1一致アドレスの7ビットバス1171
Nは、各最終エンコーダ113の入力サブセクション(即
ちCAMコア1N)に入力される。即ち、各CAMコア
Xは、その各々の第1エンコーダ111X出力が最終エンコ
ーダ113の個々のサブセクションに接続され、これによ
り、検索データ入力に基づき対象となるデータについて
の実際の一致F信号及びデータ一致アドレスF信号が得ら
れる。
【0026】ここで、図7及び図8を参照する。同図に
は、最終エンコーダ113のサブセクションCAMコア630
36に関する詳細が示されている。最終エンコーダ113
は、第1エンコーダXからの入力115、117と多重化され
る。第1エンコーダ6から一致6及び第1一致アドレス6
を受信した際に、最終エンコーダの入力サブセクション
CAMコア6により、最終一致ライン401上の一致F信号
と(データに関する拡張された10ビットアドレスであ
る)データ一致アドレスF信号との両方が提供されるよ
うに、一致信号プルダウントランジスタ501が設けられ
ている。この例では、データ一致アドレスは、データ一
致アドレスFの上位ビットライン40313上に追加された
上位3ビットでCAMコア6を指定し、データ一致アド
レスFの下位ビットライン40517上の第1一致アドレス
6を通過させる(高レベル=1となる標準的な論理構成を
用いる必要がある場合には、全ての信号レベルの逆転、
即ち、高レベルから低レベル及び低レベルから高レベル
への逆転を伴なうことになる)。
【0027】ここで、図3,4及び図5,6に戻る。各C
AMコアXを比較すると、一致X信号を提供するために除
去された図2(b)の第1エンコーダ一致ライン207上のプ
ルダウントランジスタ205の1/2が、一致Fライン401上
の最終エンコーダ113に追加されて元通りになっている
ことが分かる。しかし、図2(b)、図5,6、及び図7,
8に示す本発明のクリティカルパスをなすこの構成によ
れば、相助作用的な態様で、図2(a)、図3,4の構成と
比較してサイクル時間が約10パーセント短縮されるとい
う改善が得られることが分かった。
【0028】参考までにその全体が本明細書において援
用されている、同時係属出願第08/920395号(代理人整
理番号10970240-1)には、関連する本発明の思想による
CAMコアデバイス200及び優先エンコーダ611を備えた
自己タイミング管理(self-timed)システムが詳述されて
いる。関連する部分を本書で再度説明する。
【0029】実施例によっては、1つの一致データセッ
トだけしか見つからないという仮定が当てはまらない場
合もある。未解決の競合及び論理的なエラーを防止する
ためには、優先順位付け、即ち、考え得る複数の一致デ
ータセットのうちの1つの選択を実施しなければならな
い。例えば、複数の圧縮辞書が用いられるデータ圧縮実
施を規範とする、2つ以上の一致及び一致アドレスが存
在する可能性のある状況のための優先順位エンコーダを
図11に示す。同図では、特定の典型的な実施態様に関
して本発明を説明するために、構成要素8110〜811Nは構
成要素611と類似したものとなっている。
【0030】概して言えば、(例えばCAMコア1050
105Nに記憶されている1組のデータ圧縮辞書の)メモリ
出力は、決定性のもの(deterministic)であるため、2
つ以上のコア位置に所与の時間に検索されるデータを記
憶することが可能である。使用例として、2つの実際の
CAMデバイスが存在し、その一方がデータ圧縮ストリ
ング情報を保持し、他方が特定の辞書のステータスを示
すステータス情報(例えば、00=先行辞書、01=現在の
辞書、10=待機辞書、11=無効といったもの)を保持す
るものと仮定する。該ストリングCAMと該ステータス
CAMとの間には一対一の関係がある。該ステータス情
報により、複数辞書のうち実際に情報を記憶しているの
がどれであるかが示される(例えば、米国特許第5,455,
576号の構成要素40,28を参照されたい)。こうしたシス
テムにおいて複数エントリが一致する可能性は、明白な
可能性である。
【0031】図11には、CAMコアデバイス200のC
AMコア1050〜105Nが個別のデバイスとして示されてい
るが、当業者には明らかなように、一般には1つのメモ
リセルアレイが用いられ、本発明の目的のために細分さ
れている。この例の場合、N=11であり、768の入力が各
々64からなる12のセグメントに分割されるものとする。
本発明は、検索されるデータを有する第1の位置を選択
するために一致信号及び10ビットの一致アドレス信号の
両方を提供する機能を果たす。当業者には明らかなよう
に、これは、本発明を説明するための設計上の便法であ
り、異なる実施に関する他の選択基準を生成するよう修
正を施すことが可能であり、例えば、1024エントリの場
合、N=16と10ビットの一致アドレスを生成するための
回路要素の拡大とが必要になり、即ち、回路セクション
は、2の累乗(2n)(例えば210=1024)になる。
【0032】以下、信号を表現する上での約束事とし
て、負論理の論理信号を表すために「N_」を使用し、優
先順位付けされた信号に「P_」を使用する。
【0033】CAMコア105Nが、各々64ビットの出力バ
スライン8090〜809N(図1の構成要素109Xに類似するも
の)をセットしてデータ検索結果を出力し、バッファ評
価イネーブル信号がセットされて、優先エンコーディン
グが開始される。各CAMコアセクションは、その各バ
スライン809063の64の一致ラインのうちの1つ以上
が、接続位置に一致が存在する場合に高レベルを示し、
該位置に一致が存在しない場合に低レベルを示す可能性
のあるものである。
【0034】最終的な目標は、優先エンコーダ811X及び
アドレスエンコーダ813X(図1の構成要素111Xに類似す
るもの)を備えた優先順位付け回路によって、CAMコ
ア105nにおいてデータが見つかることになる第1の位置
に対してのみ一致及び一致アドレスが提供されるように
することである。一致信号は、EVALUATEBUF(バッファ評
価)信号に続いて時間的に比較的迅速に生じる(例え
ば、図9、図10の波形及び■、及び図11のライン
817上を参照し比較されたい)が、一致アドレス信号の
生成及び出力にはもっと長い時間を要する。下記のよう
に、エンコード機能を時分割することにより、一致アド
レスの6つの下位ビットが利用可能になり、また4つの
上位ビットが生成され、これにより、提供された一致ア
ドレスが、必要とされるデータを有するバンクの第1の
CAMコアにおける第1の位置のワードラインに対する
ものとなる。最終エンコーダ113´は、既述のようにし
て得ることが可能である。
【0035】ここで図9を参照する。同図は、本発明に
よるCAMコアデバイス200及びエンコーダ611デバイス
の望ましい実施態様を詳細に示すブロック図であり、本
発明のシステムアーキテクチャを示している。
【0036】図10は、該システムアーキテクチャにつ
いての信号のタイミングチャートを示している。特定の
実施例における実際のタイミングは変動し得るものであ
り、また実際の信号発生タイミングは、製作プロセス、
電圧、及び温度(PVT)の変動に応じて変動するが、
相対的な信号生成タイミングは、全体を通じて説明され
る典型的な実施態様に関して示するように実質的に一定
である。
【0037】ここで図9及び図10を参照する。波形
に示すように、該システムは、15nsecのシステムクロッ
クサイクルを例示している。チップ論理出力が、t=112
+でクロック信号のアップエッジが生じるCAM検索要
求ASEARCH(波形)であると仮定する。次のCAMコ
ア検索がイネーブルにされ、t=112.5でCLOCK信号のダ
ウンエッジにおいてSEARCHN_1(波形)が発行され
る。更に、該システムが、CAMアレイの検索が約3.0n
secで実施されるように時間の管理が行われ、後述する
ようにSEARCHN_1が低レベルになるものと仮定する。ク
ロックサイクルの残り12nsecの間に、CAM出力とt=1
27.5で始まる次のシステムクロックサイクルの反復のた
めのセットアップとに備えて時間の配分を行わなければ
ならない。この場合に、本発明が存在しなければ、次の
プリチャージがトリガされる可能性がある。従って、ト
リガとしてクロック遷移しか存在しない場合には、CA
Mプリチャージは、各新たなサイクルの開始まで待機し
なければならないことになる。特定の実施例に関するC
AMコアサイズ、システム速度、及びクロックサイクル
によっては、上述の態様でCAMコアにプリチャージを
行うためのかかる配分に十分な時間がとれない可能性が
ある。しかし、CAM検索時間を短縮し、及びCAMコ
ア207の実際の検索が終了して即座にプリチャージを開
始することができれば、プリチャージをスケジューリン
グし実施するための一層長いプリチャージ時間が利用可
能となる。
【0038】プリチャージ時間を長くする利点は、クロ
ックサイクル中に(即ち一致を指示するのに)CAMコ
アのセルゲートの1つの遷移しか必要としない場合に、
該セルを不平衡に、即ち、一方向で一層迅速に変化する
ように設計することができる、という点にある。例え
ば、十分なプリチャージ時間をスケジューリングするこ
とができれば、検索時に0.2nsecで高レベルから低レベ
ルになりプリチャージ時に2.0nsecで低レベルから高レ
ベルになるNANDゲートを許容することが可能にな
る。平衡ゲートは、各方向に0.4nsecを要するが、ゲー
トを不平衡にすることにより該ゲートを通る速度が2倍
になる。プリチャージ時間を最長にすることにより、ゲ
ートにおける最大不平衡要素が許容され、これにより、
検索速度が最高になる。
【0039】ここで図9及び図10を再び参照する。CL
OCKが低レベルになると、SEARCHEN_1がt=113.0で高レ
ベルになる。これにより、検索ドライバ609がイネーブ
ルになり、コアプリチャージ回路613,615がディセーブ
ルになり、NPRECHARGEが高レベルになる(Nで始まる信
号名は負論理を表している点に留意されたい)。CAM
コアプリチャージ信号NPREML2(波形)は、t=113.5
で高レベルになり、これによりコアプリチャージがオフ
になり、DUMM1(波形)がt=114.0で低レベルにな
る。従って、検索信号は、CAMコア105を通り、t=11
5〜でEVALUATEBUF1(波形)を高レベルに駆動するエ
ッジトリガ式セットリセットフリップフロップDFF2
617を阻止する。後述するDFF2617及びDFF3633
は、再初期化が必要になる場合には必ずシステム初期化
信号NRESETを受信し、該信号を受信した時点でそれぞれ
低レベルになり高レベルのクロックを行う。
【0040】図6から明らかなように、EVALUATEBUF1は
また反転されてSRCHDFFRST1(波形)になり、フィー
ドバックされ、t=115+で検索イネーブルエッジトリガ
式セットリセットフリップフロップDFF1619をリセ
ットする。フリップフロップDFF1619のリセットに
より、t=117.3でSEARCHEN_1が低レベルへと駆動され
て、検索ドライバ609がディセーブルになり、t=118.0
でNPREML2(波形)が低レベルになると、プリチャー
ジ615及びコアプリチャージ回路要素613がイネーブルに
なる。コアプリチャージ信号NPREML2がDFF2617のリ
セットポートに供給され、t=199+でEVALUATEBUF1が低
レベルになる。従って、このCAM200システムの部分
は、その元の状態に戻されて、次のクロックサイクルの
開始に備えることになる。
【0041】EVALUATEBUF1が高レベルになると、エンコ
ーダ信号(波形〜まる13)がトリガされる。SEARCHEN
_1及びEVALUATEBUF1が高レベルの間、即ちt=113.0〜11
9+の間、優先エンコーダセクション611は、CAMコア
105の検索結果に基づき一致信号及び一致アドレス信号
を生成する。EVALUATEBUF1が高レベルになると、優先エ
ンコーダ611に関するプリチャージ信号がオフになり、
CAMコア105からの一致信号SCTRMATCH(波形)が最
終優先エンコーダ621にちょうど送り込まれる時、NBANK
PRE(波形)がt≒115.5で高レベルになる(図11の
構成要素113´も参照されたい)。更に、EVALUATEBUF1
が、バンクエンコーダ遅延手段623を駆動し、DUMMYENC
(波形まる10)は、バンク優先エンコーダ625が一致信
号(波形まる12)を生成して該信号を最終優先エンコー
ダ621に送るのに必要な時間量だけ待機し、次いで、最
終優先エンコーダ621のために最終エンコーダプリチャ
ージ手段627をオフにする。
【0042】検索サイクルの終了後、SEARCHEN_1が低レ
ベルになると、NPREML2がt=118.0〜119.0で低レベルに
なって、CAMコア107のセルのプリチャージが再開さ
れ、またCAMコアからの一致出力ラインが低レベルに
され、優先エンコードプリチャージ手段620の信号NBANK
PREがt=121.0〜122.0で低レベルになった際に、バンク
優先エンコーダ625のプリチャージが開始される。前述
のように、プリチャージ信号NBANKPREは、バンクエンコ
ーダ遅延手段623を介して供給され、バンク優先エンコ
ーダ625が最終優先エンコーダ621の駆動を停止するのと
ちょうど同時に、最終エンコードプリチャージ手段627
をオンにする。このプロセス時間中に、所望の出力一致
信号及び一致アドレス信号がCAMコア105の出力ポー
トに生じる場合がある。これが生じる時点及びこれらの
CAMコア出力が有効な状態に留まる時間の長さは、検
索プロセス、電圧、及び温度によって決まるものであ
る。所望の動作は、t=127.5で次のCLOCKのエッジの後
まで出力を保持することである。これは、最終優先エン
コーダ621の出力MADDRに出力ラッチ631を配置すること
により実施されるが(波形まる13のLATCHMOUT)、この
場合、出力ラッチ631は、t=118+でセットされ、t=12
7.5におけるクロックサイクルのダウンエッジに続きt=
128+でラッチされたビットを解放する(FBMAT1、波形
まる11)。
【0043】出力ラッチ631は、自己タイミング管理を
行うもの(self-timed)であり、即ち、エッジトリガ式セ
ットリセットフリップフロップDFF3633は、t=116.
5〜117.5で一致信号が高レベルになることによりトリガ
されて(LATCHMOUT、波形まる13)、一致信号及び一致
アドレス信号がラッチされる。出力ラッチ631は、t=12
7.5でCLOCKのダウンエッジによりリセットされるまで閉
じたままである。特定の検索で一致が生じなかった場合
には、CAMコア105が、一致のない検索サイクルの間
中、連続して所望の低レベル値を出力するため、出力ラ
ッチ631は閉じないことになる、という点に留意された
い。
【0044】従って、メモリバンクエンコーダがデータ
を得ると、CAMコアはプリチャージを開始することが
可能になる。最終エンコーダがデータを得ると、バンク
エンコーダはプリチャージを開始することが可能にな
り、出力ラッチのうちの1つが閉じることが可能にな
り、これにより、最終エンコーダがプリチャージを開始
することが可能になる。逆に、バンクエンコーダは、C
AMコアが送出すべき検索データを得るまでプリチャー
ジを停止しない。最終エンコーダは、バンクエンコーダ
が送出すべきデータを得るまでプリチャージを停止しな
い。出力ラッチは、最終エンコーダが送出すべきデータ
を得たときではなく、クロックサイクルのダウンエッジ
で開くようにセットされる。代替実施態様では機能を逆
にすることが可能である点に留意されたい。本発明は、
CAMコアのプリチャージ機能及びラッチされた出力一
致信号及び一致アドレス信号の自己タイミング管理を行
うCAM検索機能を提供するものとなる。最終エンコー
ディング(FINAL_ENCODING)113´は、既述のようにして
提供することが可能である。
【0045】優先エンコード ここで、図12のマップに示すように構成されることに
なる図13ないし図26を参照する。同図は、優先エン
コーダ8110N及びアドレスエンコーダ8130ーNを詳細に
示す回路図である。第1のステージ901は、当業界で周
知の入力バッファである。第2のステージ902は、1組
の優先エンコーダセル又はリーフ(leaf)903から構成さ
れ、N=7の場合、8つに分割された64ビットのCAMコ
ア出力809からの8ビット入力をそれぞれ有するPENC_LE
AF07(90307)から構成される。即ち、図13〜図
26に示す8つのPENC_LEAF回路からなる各組は、図1
1の優先エンコーダ8110〜81111のそれぞれに対応する
ものである。第3のステージ813は、図11のアドレス
エンコーダ8130〜81311に対応するものである。
【0046】各優先エンコーダ8110〜8116における8つ
1組の各PENC_LEAFN903N回路は、実質的に同一のもので
あり、優先エンコーダ8117が相違する理由は、この詳細
な説明の進行につれて明らかとなろう。各PENC_LEAF回
路9030〜9037毎にプリチャージ回路9040〜9047が設けら
れているが、これらは図9の構成要素620と類似してい
る。それぞれ64の出力を有する図11の各CAMコア0
11105は、かかる8つのPENC_LEAF07からなる各組に
結合されている。
【0047】優先エンコーダ8110を例にとると、ワイヤ
ードNORゲート07が、図11のCAMコア105011
からの優先エンコーダ8110〜8117の各々に対する全部で
64の入力について8つのPENC_LEAFセルの各々の入力で
入力ラインMROW[0〜7]907に接続されている。
【0048】出力側において、最初にBLOCKIN信号(即
ちタイミング信号)909が生成され、プリチャージ回路9
11を使用して、アドレス情報が優先エンコーダ811Nから
アドレスエンコーダ813Nに出力するのを阻止する。各優
先エンコーダ811Nは、阻止信号を生成して、第1の一致
アドレスよりも高いアドレスを表す情報を全て阻止す
る。BLOCKIN信号909が解放されると、優先エンコーダ阻
止信号が生成されて、第1のアドレスよりも高いアドレ
スを表す信号が阻止されるが、最低の一致アドレス信号
は阻止されない。
【0049】BLOCKIN信号909は、8つの出力優先順位が
付けられたラインPMATCH[0〜7]915を介してPENC_LEAF
回路要素の最後のNORゲート913[0〜7]の各々に送ら
れる。該BLOCIINが高レベルの場合、PMATCHは低レベル
になる。また、BLOCKINが低レベルの場合、最後のNO
Rゲート913への他方の入力が低レベルであれば、PMATC
Hは高レベルになる。しかし、MROW0の場合には、ワイヤ
ードNORライン9050の出力でインバータ917が使用さ
れ、即ち、BLOCKINは解放されるまでMROW0からの一致信
号を阻止し、次いで、MROW0が真である場合に、最後の
NORゲート913[0]に対する入力が低レベルになり、PM
ATCHが高レベルになる。MROW[1〜7]の場合には、最後の
NORゲート913[1〜7]に対する入力はNANDゲート9
19からのものであり、即ち、ゲート913の一方の入力Aは
BLOCKINであり、ゲート913の他方の入力BはNANDゲ
ート919を介してMROW[1〜7]から入力されるものであ
り、即ち、NANDゲート919の入力は、ワイヤードN
OR905の出力からのもの及びMROW0からのものと、MROW
0が一致の場合に低レベルになるNBLOCK[1〜7]ライン920
のものである。換言すれば、NBLOCK920信号が高レベル
になると、後続のMROW信号がNANDゲートを通ること
が阻止され、高レベルになった第1のMROW一致信号だけ
がPENC_LEAF902ステージに通される。即ち、PMATCH出力
信号は、BLOCKIN及びNBLOCK及びMROW信号によって決ま
る。換言すれば、NBLOCK[1〜7]920は、後続のPMATCHラ
イン17について阻止している。
【0050】例えば、MROW[0〜7]が{0,0,1,1,1,0,0,1}
であると仮定する。
【0051】プリチャージ時に、BMATCHライン921は高
レベルになる。MROWが高レベルになると、BMATCHが低レ
ベルになる。ライン909上のBLOCKINは高レベルになる。
【0052】検索後、おそらく優先順位エンコーダ811
に対する入力信号MROWの一部または全てが高レベルにな
り、この例の場合には、MROW[2],[3],[4],[7]が高レベ
ルになる。
【0053】少なくとも1つの入力が高レベルであると
き、BMATCHが低レベルになる。インバータ923の信号PRE
NCARRYが高レベルになり、MROWライン907[0〜7]のワイ
ヤードNOR論理回路905に関するプリチャージャステ
ージ904がディセーブルになる。ライン925及びNBLOCK[1
〜7]ライン920上のNMATCARRYは、全て低レベルになる。
【0054】MROW[0]及びMROW[1]は、低レベルになり、
不一致指示信号が入力され、これらのライン上のワイヤ
ードNORゲート905には影響がない。
【0055】MROW[0]を参照すると、インバータ917は、
MROW[0]を最後のゲート913[0]に供給し、入力Bに高レベ
ルを生じさせる。BLOCKINは、依然として入力Aで高レベ
ルのままである。
【0056】MROW[1]を参照すると、MROW[1]についての
NANDゲート919[1]は、入力BにおいてLOW MROW不一
致指示信号を受信し、及び入力Aにおいてプリチャージ
ャ904[1]からのHIGH NBLOCK[1]信号を受信し、このた
め、その出力信号NPMAT[1]が高レベルになり、最後のゲ
ート913[1]の入力BにMROW[1]を供給する。BLOCKINは、
依然として入力Aにおいて高レベルのままである。
【0057】MROW[2]を参照すると、第1のCAMコア
の一致高レベルに遭遇する。MROW[2]のNANDゲート9
12[2]は、入力AでHIGH NBLOCK[2]信号を受信し、及びHI
GH MROW[2]信号を受信し、このため、出力信号NPMAT[2]
が低レベルになり、最後のゲート913[2]の入力BにMROW
[2]が供給される。
【0058】これと同時に、MATCARRY及びNBLOCK[7〜3]
ORゲートが全て低レベルになる。
【0059】MROW[3〜7]NANDゲート919[3〜7]の入
力Aは全て低レベルになり、即ち入力BはMROW[3〜7]信号
に従う。しかし、入力Aが全て低レベルの場合、NPMAT[3
〜7]信号が全て高レベルになり、個々の最後のゲート91
3[3〜7]に供給される。
【0060】PENC_LEAF回路ステージに対する8つの入
力MROWのうち、最下位一致アドレスビットがMROW[2]と
して識別される。
【0061】MATCARRYは、インバータ927により高レベ
ルに変更される。
【0062】適当な時点で、BLOCKINが解放され低レベ
ルになる。しかし、MROW[2]の優先エンコーダ出力ゲー
トだけは、最後のゲート913[2]にLOW-A,LOW-B入力を供
給する。このため、PMATCH[2]だけがライン915[2]上で
高レベルになる。即ち、ワイヤードNAND論理回路の
場合、両入力とも、低レベル出力のためには高レベルに
なる必要があり、BLOCKINが高レベルになると出力は{0,
0,1,0,0,0,0,0}になり、この場合、NBLOCK[3]により、M
RWO[3]高レベル一致信号が阻止され、NBLOCK[4]によりM
ROW[4]が阻止され、NBLOCK[5]によりMROW[5]が阻止さ
れ、NBLOCK[7]によりMROW[7]が阻止される。換言すれ
ば、第1の一致信号MROW[2]だけがPENC_LEAF08110を通
過する。一般に、これは、BLOCKINが低レベルになった
際にPMATCHが高レベルになる条件であり、それ以外の場
合には、NBLOCKライン920が高レベルになりMROWが高レ
ベルになる条件が存在しない限り、PMATCHは低レベルに
なる。
【0063】PMATCH信号は、アドレスエンコーダ813を
直接桁上げする(図11の符号811〜813も参照された
い)。ライン925上のMATCARRY信号が高レベルになる
と、ライン929上の後続する全てのNOPREVMAT信号が低レ
ベルになり、個々のNANDゲート9310の入力Bに供給
される。NANDゲート931の入力Aは、ライン933上のE
VALUATEDELタイミング信号である。NANDゲート931
の出力は、ライン329上のツリーの後続のPENC_LEAF回路
に対するBLOCKIN信号である。当初、EVALUATEDELは低レ
ベルであり、高レベル出力を有するNAND931は、BLO
CKINを高レベルに保持する。EVALUATEDELが高レベルに
なると、対応するNOPREVMAT信号が高レベルである限
り、BLOCKIN[0〜7]が低レベルになる。
【0064】NMATCARRYは、プリチャージ中に高レベル
になり、インバータ927により反転されてMATCARRYとし
て低レベルになり、次いで第1のMROW信号が高レベルに
なった際に高レベルになる。プリチャージ回路911から
のEVALUATEDELは、NANDゲート931を介して、MATCAR
RY及び以前に一致がないことを示す信号NOPREVMAT[0〜
6]929と組み合わせられる。7番目のステージ8116は、
ツリー中に制御すべき後続ステージを有していないた
め、該回路を必要としない、という点に留意されたい。
即ち、MATCARRYの高レベルは、NOPREVMATラインを低レ
ベルにする。従って、後続のPENC_LEAF回路は、タイミ
ング信号EVALUATEDELまたは先行するPENC_LEAF回路のMA
TCARRYによって阻止することが可能なものである。この
場合も、第1の一致信号に後続するステージにおける一
致信号は、優先エンコーダステージ902に通されない。
従って、各PENC_LEAF回路からのMATCARRY信号は、ツリ
ーの後続の全てのPENC_LEAFにとって適当なBLOCKINにな
る。即ち、MATCARRY信号ライン925は、図13〜26に
示す回路ツリー中の次の後続ステージPENC_LEAF16
阻止するための阻止機能を有するものである。
【0065】ここで、優先エンコーダ811の各々からア
ドレスエンコーダ813に送り込まれる64ビットラインの
うち高レベルになるのは1つ以下しかない。64ビットラ
インのうちの1つが高レベルである場合には、6ビット
の一致アドレスの下位ビットへとエンコードされ、高レ
ベルが1つも存在しない場合には、アドレス0が示され
る。
【0066】PENC_LEAFの各NBLOCKライン920のプルダウ
ントランジスタは、プリチャージ回路要素904を使用す
ることにより可能となるワイヤードNOR論理回路であ
る。これにより回路速度が大幅に増大することになる。
単一のプリチャージにより、各々を高レベルにすること
が可能となる。この構成によれば、フルゲート論理回路
が、典型的な実施態様の768のエントリにおける全ての
一致行ラインを個別にデコードし追跡する必要がなくな
る。
【0067】NPREVMATもワイヤードNOR論理回路であ
る。
【0068】図11において、最後の優先エンコーダ回
路813(図1の構成要素114に類似するもの)は、典型的
な実施態様の各CAMコア105011毎に1つずつ割り当
てられた12の入力を有している。その出力により、バン
ク内の12のCAMコアのうちデータが見つかった特定の
CAMコアを有効に指摘する一致アドレスの上位4ビッ
トが提供される。かかる態様での一致信号の使用につい
ては、既述のように、米国特許出願第08/664,902号に詳
細に説明されている。
【0069】従って、アドレスエンコーダ813Nの出力
は、その各々のCAMコアNにおける一致の一致アドレ
スの下位6ビットであり、最後の優先エンコーダ813の
出力は、バンクを示す上位4ビットである。各優先エン
コーダ8110〜81111毎に1つずつ、12組の6ビットアド
レスが生成される可能性がある点に留意されたい。CA
Mコア105011の最下位の一致バンクの判定に基づいて
該12の6ビットバスのうちの1つが選択され、最終優先
エンコーダ回路からの一致アドレスの上位4ビットと連
結され、これにより、必要とされる10ビットの一致アド
レスが提供されることになる。
【0070】従って、本発明によれば、第1の利用可能
なデータセットを分割して捕捉する方法による連想デー
タ検索及び多重ヒット(multiple hits)の優先エンコー
ドが提供される。バンクを識別するビットは、行ビット
より十分前に利用可能であるため、本発明は、これを利
用して、前もって一致アドレスの上位ビットを生成す
る。
【0071】本発明の望ましい実施態様に関する以上の
説明は、例証及び解説のために提示されたものである。
本発明を余すところなく説明し又は本発明を開示の形態
そのままに制限することを意図したものではない。当業
者にとっては多数の修正及び変更が自明のものであるこ
とは明らかである。同様に、同じ結果を実現するため、
本解説の任意のプロセスステップを他のステップに置換
することも可能である。この実施態様は、本発明の思想
及びその最良の態様による実際の適用例を最も明確に説
明することにより、当業者が、さまざまな実施態様に関
して、また企図される特定の用途に適したさまざまな修
正に関して、本発明を理解することができるように、選
択され解説されたものである。
【図面の簡単な説明】
【図1】本明細書で関連部分が説明されている原特許出
願第08/664,902号(本出願は該出願の部分継続出願につ
いて優先権を主張したもの)に記載の本発明を取り入れ
たCAMシステムの概要を示すブロック図である。
【図2】(a)〜(c)は、図1に示すCAMコアエンコーダ
に関する詳細を比較して示す説明図であり、(a)は従来
のエンコーダ設計を示す説明図、(b)は本発明によるエ
ンコーダを示す説明図、(c)は(a)及び(b)の一部を詳細
に示す説明図である。
【図3】図1に示す最終エンコーダを従来のエンコーダ
と比較して示すための従来の最終エンコーダ設計を示す
説明図である(1/2)。
【図4】図1に示す最終エンコーダを従来のエンコーダ
と比較して示すための従来の最終エンコーダ設計を示す
説明図である(2/2)。
【図5】図1に示す最終エンコーダを従来のエンコーダ
と比較して示すための本発明による最終エンコーダ設計
を示す説明図である(1/2)。
【図6】図1に示す最終エンコーダを従来のエンコーダ
と比較して示すための本発明による最終エンコーダ設計
を示す説明図である(2/2)。
【図7】図4Bに示すCAMコアXについて最終エンコ
ーダのサブセクションの1つの概要を示す説明図であ
る。
【図8】図7の一部を詳細に示す説明図である。
【図9】本発明を取り入れたCAMシステムの1セクショ
ンの概要を示すブロック図である。
【図10】図9に示す本発明のタイミングチャートであ
る。
【図11】本発明による図1に示すシステムに対する代
替実施態様におけるサブシステムの構成要素の概要を示
すブロック図である。
【図12】図13ないし図26の図面の配置関係を示す
マップである。
【図13】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(1/14)。
【図14】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(2/14)。
【図15】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(3/14)。
【図16】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(4/14)。
【図17】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(5/14)。
【図18】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(6/14)。
【図19】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(7/14)。
【図20】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(8/14)。
【図21】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(9/14)。
【図22】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(10/14)。
【図23】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(11/14)。
【図24】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(12/14)。
【図25】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(13/14)。
【図26】図11に示す本発明による優先エンコーダス
テージを詳細に示す回路図である(14/14)。
【符号の説明】
101 標準バス 103 ドライバ 1051〜105N CAMコア 1071〜107N 標準バス 1091〜109N 出力バス 1111N エンコーダ 1151N 一致信号 1171N 一致アドレス信号 401 最終一致信号 403,405 最終一致アドレス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ブライアン・アール・ジュン アメリカ合衆国カリフォルニア州92064, ポウェイ,ツリークレスト・ドライヴ・ 13184

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 所定の信号内容を指定する複数のビット
    から構成される連結ディジタル信号(403,405)を形成す
    るよう組み合わせられる複数の出力ディジタルビット信
    号(128)を有する電子装置(1051〜105N)の冗長信号の優
    先順位付けを行うための方法であって、該電子装置が、
    前記所定の信号内容を指定する冗長ディジタル信号出力
    (1151〜115N、1171〜117N)を有している、前記方法であ
    って、 前記複数の出力ディジタルビット信号を複数組(PENC_LE
    AF)へと分割し、該組の各々が1つの連結ディジタル信
    号の完全な信号内容を有しており、 第1の関与するディジタルビット信号(PMATCH[N])だけ
    を連結し、前記各組の後続の各ビット信号を阻止して(B
    LOCK[N])、前記所定の信号内容を指定する第1の関与す
    る連結ディジタルビット信号だけしか出力されないよう
    にする、という各ステップを有することを特徴とする、
    方法。
  2. 【請求項2】 前記連結ステップが、 第1の関与するビット信号を使用して前記各組の後続の
    ビット信号に対するブロック信号(BLOCK[N])を生成す
    る、というステップを更に含むことを特徴とする、請求
    項1に記載の方法。
  3. 【請求項3】 連想記憶装置(CAM)回路装置であっ
    て、 データビットを記憶するためのアドレス指定可能なセル
    手段のセルアレイと、該各セルに接続された一致信号ラ
    イン(809N)と、複数の一致アドレス信号ライン(WLN)と
    を各々が有している、複数のCAMコア(105N)と、 前記CAMの各々に接続され、該各CAMから各一致信
    号及び各一致アドレス信号を受信し、前記複数のCAM
    のうちの第1のCAMからの第1の一致信号(一致N)及
    び第1の一致アドレス信号(一致アドレスN)だけが出力
    に送出されるように前記一致信号及び前記一致アドレス
    信号に優先順位付けを行う、複数の手段(611、811N、81
    3N)と、 第1の一致信号及び第1の一致アドレス信号を提供する
    バンク内のCAMセルアレイを示す前記第1の一致アド
    レス信号のビットを組み合わせて、前記一致信号を提供
    したバンク内の前記アレイと該アレイ内におけるアドレ
    スとの両方を表す最終一致アドレス信号(一致アドレ
    F)を出力する手段(113)とを備えていることを特徴と
    する、装置。
  4. 【請求項4】 前記優先順位付けを行う複数の手段が、 前記複数のCAMのうちの1つから一致信号及び一致ア
    ドレス信号を受信する入力バッファ(901)と、 該入力バッファに接続された複数の信号優先エンコード
    回路(911)であって、その各々が、各一致アドレス信号
    をエンコードする手段と、前記第1の一致アドレス信号
    以外の各一致アドレス信号を阻止する手段とを備えてい
    る、複数の信号優先エンコード回路(911)とを更に備え
    ている、請求項3に記載の装置。
  5. 【請求項5】 前記信号優先エンコード回路の各々が、
    前記CAMの一致行信号(MROW[N])によりトリガされる
    ワイヤードNOR回路(905)を含む出力プリチャージ回
    路(904)を備えていることを特徴とする、請求項4に記
    載の装置。
  6. 【請求項6】 前記エンコード手段が、 一致行信号ライン(907N)に結合され、第1の関与する一
    致行信号しか各々出力しないようになっている、複数組
    のワイヤードNOR回路(905)を備えていることを特徴
    とする、請求項4に記載の装置。
  7. 【請求項7】 優先エンコーダ装置を備えた連想記憶装
    置(CAM)システムであって、 各々がデータを記憶する複数のCAMコア(105N)であっ
    て、その出力ビットライン(809N)上に冗長一致信号及び
    一致アドレス信号を出力できるようになっている、複数
    のCAMコア(105N)と、 該複数のCAMコアのうちの1つから前記一致信号及び
    前記一致アドレス信号をそれぞれ受信するように接続さ
    れた複数の優先エンコーダ(811N)であって、 前記複数のCAMコアのうちの1つの各出力ビットライ
    ン(WL[N]、MATCH[N])に接続され、一致信号ビット及び
    一致アドレス信号ビットを受信する、入力信号バッファ
    (901)と、 N2(N2=各CAMコアから入力される一致アドレス信
    号の数)の組へと分割された複数の優先エンコード回路
    手段(902)であって、一致信号ビット及び一致アドレス
    信号ビットをエンコードし、各組における第1の活動状
    態の一致信号ビット及び第1の活動状態の一致アドレス
    信号ビットに後続する一致信号ビット及び一致アドレス
    信号ビットを阻止する、複数の優先エンコード回路手段
    (902)とを各々が備えている、複数の優先エンコーダ(81
    1N)と、 一致信号ビット、一致アドレス信号ビット、阻止された
    一致信号ビット、及び、阻止された一致アドレス信号ビ
    ットを受信し、第1の活動状態の一致信号ビット及び第
    1の活動状態の一致アドレス信号ビットだけが連結され
    て第1の一致出力信号及び第1の一致アドレス出力信号
    だけが前記システムから提供されるようにする、アドレ
    スエンコーダ(813,113)とを備えていることを特徴とす
    る、システム。
JP10245212A 1997-08-29 1998-08-31 連想記憶装置のエンコーダにおける一致信号及び一致アドレス信号の優先順位付け Pending JPH11126486A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US920665 1997-08-29
US08/920,665 US6069573A (en) 1996-06-17 1997-08-29 Match and match address signal prioritization in a content addressable memory encoder

Publications (1)

Publication Number Publication Date
JPH11126486A true JPH11126486A (ja) 1999-05-11

Family

ID=25444165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10245212A Pending JPH11126486A (ja) 1997-08-29 1998-08-31 連想記憶装置のエンコーダにおける一致信号及び一致アドレス信号の優先順位付け

Country Status (3)

Country Link
US (1) US6069573A (ja)
EP (1) EP0899668A3 (ja)
JP (1) JPH11126486A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001160292A (ja) * 1999-09-10 2001-06-12 Sibercore Technologies Inc 可変幅のデータを検索するための可変幅のコンテントアドレサブルメモリデバイス
US6839799B2 (en) 2001-07-17 2005-01-04 Alliance Semiconductor Method for the prioritization of database entries

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658002B1 (en) 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6389506B1 (en) 1998-08-07 2002-05-14 Cisco Technology, Inc. Block mask ternary cam
US6191969B1 (en) * 1999-09-09 2001-02-20 Net Logic Microsystems, Inc. Selective match line discharging in a partitioned content addressable memory array
US6553453B1 (en) * 1999-09-10 2003-04-22 Sibercore Technologies, Inc. Variable width content addressable memory device for searching variable width data
US6362990B1 (en) 1999-09-10 2002-03-26 Sibercore Technologies Three port content addressable memory device and methods for implementing the same
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US7272027B2 (en) * 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6374326B1 (en) * 1999-10-25 2002-04-16 Cisco Technology, Inc. Multiple bank CAM architecture and method for performing concurrent lookup operations
US6526474B1 (en) 1999-10-25 2003-02-25 Cisco Technology, Inc. Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
US6505271B1 (en) * 1999-11-12 2003-01-07 Integrated Device Technology, Inc. Increasing priority encoder speed using the most significant bit of a priority address
US6591331B1 (en) * 1999-12-06 2003-07-08 Netlogic Microsystems, Inc. Method and apparatus for determining the address of the highest priority matching entry in a segmented content addressable memory device
US6493791B1 (en) * 1999-12-20 2002-12-10 Intel Corporation Prioritized content addressable memory
US7006501B1 (en) * 2000-03-31 2006-02-28 Sun Microsystems, Inc. Distributed least choice first arbiter
US7020161B1 (en) 2000-03-31 2006-03-28 Sun Microsystems, Inc. Prescheduling arbitrated resources
US6882649B1 (en) 2000-03-31 2005-04-19 Sun Microsystems, Inc. Least choice first arbiter
US6751755B1 (en) * 2000-09-13 2004-06-15 Cypress Semiconductor Corporation Content addressable memory having redundancy capabilities
CA2321466C (en) * 2000-09-29 2006-06-06 Mosaid Technologies Incorporated Priority encoder circuit and method
US6614675B1 (en) * 2000-10-10 2003-09-02 Ati International, Srl Pipelined content addressable memory with read only element encoding scheme
US6941417B1 (en) 2000-12-15 2005-09-06 Shahram Abdollahi-Alibeik High-speed low-power CAM-based search engine
US6359574B1 (en) * 2001-01-22 2002-03-19 Proxell Systems Ltd. Method for identifying longest common substrings
US6606681B1 (en) 2001-02-23 2003-08-12 Cisco Systems, Inc. Optimized content addressable memory (CAM)
US6862281B1 (en) 2001-05-10 2005-03-01 Cisco Technology, Inc. L4 lookup implementation using efficient CAM organization
US7002965B1 (en) 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
US7260673B1 (en) 2001-07-20 2007-08-21 Cisco Technology, Inc. Method and apparatus for verifying the integrity of a content-addressable memory result
US6744652B2 (en) * 2001-08-22 2004-06-01 Netlogic Microsystems, Inc. Concurrent searching of different tables within a content addressable memory
US7065083B1 (en) 2001-10-04 2006-06-20 Cisco Technology, Inc. Method and apparatus for dynamically generating lookup words for content-addressable memories
US6993622B2 (en) * 2001-10-31 2006-01-31 Netlogic Microsystems, Inc. Bit level programming interface in a content addressable memory
US7210003B2 (en) 2001-10-31 2007-04-24 Netlogic Microsystems, Inc. Comparand generation in a content addressable memory
US7111123B1 (en) * 2001-12-27 2006-09-19 Netlogic Microsystems, Inc. Circuit and method to allow searching beyond a designated address of a content addressable memory
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US7000066B1 (en) * 2001-12-27 2006-02-14 Cypress Semiconductor Corporation Priority encoder circuit for content addressable memory (CAM) device
US6715029B1 (en) 2002-01-07 2004-03-30 Cisco Technology, Inc. Method and apparatus for possibly decreasing the number of associative memory entries by supplementing an associative memory result with discriminator bits from an original set of information
US6961808B1 (en) 2002-01-08 2005-11-01 Cisco Technology, Inc. Method and apparatus for implementing and using multiple virtual portions of physical associative memories
US7237058B2 (en) * 2002-01-14 2007-06-26 Netlogic Microsystems, Inc. Input data selection for content addressable memory
US6871262B1 (en) 2002-02-14 2005-03-22 Cisco Technology, Inc. Method and apparatus for matching a string with multiple lookups using a single associative memory
US7352741B2 (en) * 2002-02-21 2008-04-01 Sun Microsystems, Inc. Method and apparatus for speculative arbitration
US7092311B1 (en) 2002-03-15 2006-08-15 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize priority class detectors to identify highest priority matches in multiple CAM arrays and methods of operating same
US7114026B1 (en) 2002-06-17 2006-09-26 Sandeep Khanna CAM device having multiple index generators
US7177978B2 (en) * 2002-08-10 2007-02-13 Cisco Technology, Inc. Generating and merging lookup results to apply multiple features
US7082492B2 (en) * 2002-08-10 2006-07-25 Cisco Technology, Inc. Associative memory entries with force no-hit and priority indications of particular use in implementing policy maps in communication devices
US7441074B1 (en) 2002-08-10 2008-10-21 Cisco Technology, Inc. Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation
US7689485B2 (en) * 2002-08-10 2010-03-30 Cisco Technology, Inc. Generating accounting data based on access control list entries
US7349382B2 (en) * 2002-08-10 2008-03-25 Cisco Technology, Inc. Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
EP1530763B1 (en) * 2002-08-10 2018-04-18 Cisco Technology, Inc. Associative memory with enhanced capabilities
US7028136B1 (en) 2002-08-10 2006-04-11 Cisco Technology, Inc. Managing idle time and performing lookup operations to adapt to refresh requirements or operational rates of the particular associative memory or other devices used to implement the system
US7103708B2 (en) * 2002-08-10 2006-09-05 Cisco Technology, Inc. Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry
US7065609B2 (en) * 2002-08-10 2006-06-20 Cisco Technology, Inc. Performing lookup operations using associative memories optionally including selectively determining which associative memory blocks to use in identifying a result and possibly propagating error indications
US7941605B1 (en) 2002-11-01 2011-05-10 Cisco Technology, Inc Methods and apparatus for generating a result based on a lookup result from a lookup operation using an associative memory and processing based on a discriminator portion of a lookup word
US6988106B2 (en) * 2003-07-09 2006-01-17 Cisco Technology, Inc. Strong and searching a hierarchy of items of particular use with IP security policies and security associations
US20060018142A1 (en) * 2003-08-11 2006-01-26 Varadarajan Srinivasan Concurrent searching of different tables within a content addressable memory
US7305519B1 (en) 2004-03-29 2007-12-04 Cisco Technology, Inc. Error protection for associative memory entries and lookup operations performed thereon
US7290083B2 (en) * 2004-06-29 2007-10-30 Cisco Technology, Inc. Error protection for lookup operations in content-addressable memory entries
US7280054B2 (en) * 2004-12-02 2007-10-09 Nokia Corporation Integrated circuit interface that encodes information using at least one input signal sampled at two consecutive edge transitions of a clock signal
US7350131B2 (en) * 2005-01-22 2008-03-25 Cisco Technology, Inc. Error protecting groups of data words
US7689889B2 (en) * 2006-08-24 2010-03-30 Cisco Technology, Inc. Content addressable memory entry coding for error detection and correction
US8139871B2 (en) * 2007-12-17 2012-03-20 Texas Instruments Incorporated Circuit and method for adaptive, lossless compression of successive digital data
US8720541B2 (en) * 2008-06-26 2014-05-13 Canrig Drilling Technology Ltd. Tubular handling device and methods
JP6198313B2 (ja) * 2013-10-01 2017-09-20 ホリゾン・インターナショナル株式会社 回転式打抜機

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3701980A (en) * 1970-08-03 1972-10-31 Gen Electric High density four-transistor mos content addressed memory
US4780845A (en) * 1986-07-23 1988-10-25 Advanced Micro Devices, Inc. High density, dynamic, content-addressable memory cell
US4881075A (en) * 1987-10-15 1989-11-14 Digital Equipment Corporation Method and apparatus for adaptive data compression
US4847619A (en) * 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
AU624205B2 (en) * 1989-01-23 1992-06-04 General Electric Capital Corporation Variable length string matcher
US5123105A (en) * 1990-06-25 1992-06-16 Advanced Micro Devices, Inc. Priority encoder for a content addressable memory
US5175543A (en) * 1991-09-25 1992-12-29 Hewlett-Packard Company Dictionary reset performance enhancement for data compression applications
US5373290A (en) * 1991-09-25 1994-12-13 Hewlett-Packard Corporation Apparatus and method for managing multiple dictionaries in content addressable memory based data compression
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
US5455576A (en) * 1992-12-23 1995-10-03 Hewlett Packard Corporation Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory
US5649149A (en) * 1994-08-01 1997-07-15 Cypress Semiconductor Corporation Integrated content addressable memory array with processing logical and a host computer interface
JP3007819B2 (ja) * 1994-12-28 2000-02-07 インターナショナル・ビジネス・マシーンズ・コーポレイション データ圧縮用検索装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001160292A (ja) * 1999-09-10 2001-06-12 Sibercore Technologies Inc 可変幅のデータを検索するための可変幅のコンテントアドレサブルメモリデバイス
JP2012074131A (ja) * 1999-09-10 2012-04-12 Core Networks Llc 連続検索サイクルを中断させない読み出し/書き込み機能を有するコンテントアドレサブルメモリ
US6839799B2 (en) 2001-07-17 2005-01-04 Alliance Semiconductor Method for the prioritization of database entries

Also Published As

Publication number Publication date
EP0899668A3 (en) 2001-08-08
EP0899668A2 (en) 1999-03-03
US6069573A (en) 2000-05-30

Similar Documents

Publication Publication Date Title
JPH11126486A (ja) 連想記憶装置のエンコーダにおける一致信号及び一致アドレス信号の優先順位付け
US5978885A (en) Method and apparatus for self-timing associative data memory
US7042748B2 (en) Content addressable memory with cascaded array
US6392910B1 (en) Priority encoder with multiple match function for content addressable memories and methods for implementing the same
US6564289B2 (en) Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6876559B1 (en) Block-writable content addressable memory device
US6240485B1 (en) Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6708250B2 (en) Circuit and method for performing variable width searches in a content addressable memory
US7243290B2 (en) Data encoding for fast CAM and TCAM access times
US20100293344A1 (en) Apparatus and method for selecting a position where data is stored
US7120731B1 (en) CAM-based search engines that support pipelined multi-database search operations using replacement search key segments
JP2002313086A (ja) 情報検索装置
USRE42684E1 (en) Word search in content addressable memory
US7260675B1 (en) CAM-based search engines that support pipelined multi-database search operations using encoded multi-database identifiers
US6477071B1 (en) Method and apparatus for content addressable memory with a partitioned match line
JP4004847B2 (ja) 連想メモリ装置
EP0814416B1 (en) Match and match address signal generation in a content addressable memory encoder
US6230237B1 (en) Content addressable memory with an internally-timed write operation
US6118682A (en) Method and apparatus for reading multiple matched addresses
US6269045B1 (en) Self-timed address decoder for register file and compare circuit of multi-port cam
US20050071544A1 (en) Segmented content addressable memory architecture for improved cycle time and reduced power consumption
US5577228A (en) Digital circuit for performing multicycle addressing in a digital memory
US7336517B2 (en) Physical priority encoder
EP1290697B1 (en) Partitioned content addressable memory device
US20240004792A1 (en) Data l2 cache with split access

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061225