JPH1173782A - ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ - Google Patents

ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ

Info

Publication number
JPH1173782A
JPH1173782A JP23425097A JP23425097A JPH1173782A JP H1173782 A JPH1173782 A JP H1173782A JP 23425097 A JP23425097 A JP 23425097A JP 23425097 A JP23425097 A JP 23425097A JP H1173782 A JPH1173782 A JP H1173782A
Authority
JP
Japan
Prior art keywords
mask
data
information
associative memory
word
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.)
Granted
Application number
JP23425097A
Other languages
English (en)
Other versions
JP3191737B2 (ja
Inventor
Naoshi Ogura
直志 小倉
Tsutomu Murase
勉 村瀬
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP23425097A priority Critical patent/JP3191737B2/ja
Priority to DE19839205A priority patent/DE19839205A1/de
Priority to KR10-1998-0035410A priority patent/KR100429743B1/ko
Priority to TW087114322A priority patent/TW399210B/zh
Priority to CN98117438A priority patent/CN1124613C/zh
Priority to US09/144,066 priority patent/US6295576B1/en
Publication of JPH1173782A publication Critical patent/JPH1173782A/ja
Application granted granted Critical
Publication of JP3191737B2 publication Critical patent/JP3191737B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 (修正有) 【課題】最短のネットワーク接続でデータ転送を行う。 【解決手段】検索データ105と一致した記憶データに
対応するマスク情報のすべてに対してマスク有効状態を
真とする論理積演算を行った結果の最短マスク出力機能
付連想メモリを用いて、最短マスク出力機能付連想メモ
リに検索データを入力して最短マスク線上に最短マスク
情報を取り出し、2次検索として取り出した最短マスク
情報を検索データとして最短マスク機能付連想メモリに
入力し、一致した記憶データの中からそのマスク情報と
最短マスク情報が一致したワードのマスク一致線のみを
検索結果として選択する。選択されたマスク一致線をエ
ンコードして最適のメモリアドレス信号303を求め、
最短ネットワーク接続を可能とする転送先アドレス30
5を得、入力転送データ308中のデータ部312及び
目的地ネットワーク・アドレス311を合成して出力転
送データ309を生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ルータを有するネ
ットワークシステムおよびそれに用いられるルータ並び
にそのルータに使用される連想メモリに関する。特に、
マスク機能を有する連想メモリとそれを用いたルータお
よびネットワークシステムに関する。
【0002】
【従来の技術】従来のコンピュータ・ネットワークの構
成の接続例を図12に示す。ここで、ネットワークに加
入しているユーザの接続機器(例えばコンピュータ端末
など、以降、ユーザ)には、それがネットワークに接続
される時に予め決められた規則に従って割り当てられた
特定のネットワークアドレス(以降、アドレス)が付け
られる。ここでは、このアドレスは複数桁の数値、例え
ば4桁の数値(a.b.c.d)で表現されるものとす
る。また、予め決められた規則とは、例えばその先頭ア
ドレスでアジア、アメリカ、欧州などの地区を示し、第
2番目のアドレスは地区の中の国、例えばアジアならば
中国、日本などを示し、更に第3番目のアドレスは国の
中の都市名を示す、と言うように階層的になっている。
以降、この階層をエリアと呼ぶことにする。
【0003】上述したことを模擬的に示したのが図12
である。図において、太線で囲まれた1つの矩形が1つ
のエリアである。例えば最上位にアドレス1を持つエリ
ア1の下に頭に1.2のアドレスを持つエリア4があ
り、更にその下に頭に1.2.2のアドレスを持つエリ
ア6があり、更にその中に固有アドレス1.2.2.3
を持つユーザPC301−1が接続されている。これか
らも分かるように、図に例示されているアドレスにおい
て、*はドントケアを意味する。
【0004】そして、ネットワークに加盟しているユー
ザ間の通信を接続するために、各エリアには図示のよう
にネットワークルータ(以降、ルータ)が設けられてい
る。これら各ルータは、そのルータに接続されているP
Cまたは他のルータから入力された転送データを、転送
データに付随する転送先アドレスとネットワーク機器の
接続関係を基に最適な転送ルートを計算し、その最適な
ルートを経由して転送先にデータを転送する。
【0005】各ユーザ同士を直接通信回線で接続するの
ではなく、ルータの通信制御機能を用いてネットワーク
接続を制御して通信を行うことにより、有限の通信回線
を効率用使用している。
【0006】次に、これらルータの説明を図13を用い
て行う。図ではルータ300−3を例に示しているが、
他のルータもこれと同様の構成である。
【0007】ルータ300−3には自分自身が属するエ
リアのアドレス(3.*.*.*)以外のエリアのアド
レス情報を記憶させている。これら各アドレスは、その
各桁を4進数で表現した全体で8ビットのビット列で表
現されるものと仮定する。例えば、アドレス(1.*.
*.*)はビット列(01.00.00.00)で表現
される。ここで、*はドントケアであるので、(01.
00.00.00)のビット列の上位2ビットが有効で
ありそれ以下のビットは無効であることを示す必要があ
る。そこで、マスク情報と呼ばれる情報をアドレス情報
と対になって記憶させている。この例では、(00.1
1.11.11)としている。ここで、“0”がマスク
無効状態を“1”がマスク有効状態を示している。これ
らアドレス情報およびマスク情報は、図示のようにルー
タの中で連想メモリ100に格納されている。
【0008】ここで、従来のルータで使用されていたマ
スク機能付き連想メモリを説明する。従来、この種の記
憶データ1語ごと、または複数語ごとにマスク情報を有
する連想メモリは、たとえば、特開平1−220293
号公報に示されるように、通常の記憶回路と同様にアド
レスを指定して記憶データの書き込み、読み出しを行う
機能のほかに、入力した検索データと同一の記憶データ
が格納されているアドレスを出力する検索機能、または
マスク情報により記憶データの一部を比較対照から除外
することにより類似の記憶データが格納されているアド
レスを出力するマスク情報付き機能を有している。
【0009】図10は、従来の、連想メモリの一例を示
すブロック図である。nビットmワードの連想メモリ1
00は入力信号としてm本のデータ・ワード線102−
1〜102−m、マスク・ワード線103−1〜103
−mを有し、出力信号としてm本のワード一致線104
−1〜104−mを有する。また、入出力信号としてn
本のビット線101−1〜101−nを有する。連想メ
モリ100はm個の連想メモリ・ワード106−1〜1
06−mで構成される。m個の連想メモリ・ワード10
6−1〜106−mのすべてにn本のビット線101−
1〜101−nが入出力される。また、それぞれの連想
メモリ・ワード106には、対応するデータ・ワード線
102、マスク・ワード線103をそれぞれ1本入力
し、対応する1本の一致線104を出力とする。たとえ
ば、1番目の連想メモリ・ワード106−1には、それ
に対応する1番目のデータ・ワード線102−1、マス
ク・ワード線103−1を入力し、1番目の一致線10
4−2を出力する。
【0010】ビット線101−1〜101−nには、デ
ータ・セルやマスク・セルへの情報の書き込み時には外
部から書き込みデータが入力され、読み出し時にはデー
タ・セルからデータが出力される。データ・セルにデー
タを入出力するときは、m本のデータ・ワード線102
−1〜102−mの1本が活性化(有効状態)され、そ
れに対応するメモリ・ワードにビット線101−1〜1
01−n上のデータを入力したり、またはそのメモリ・
ワードのデータをビット線に出力する。マスク・セルへ
のデータの入出力もデータ・ワード線の代わりにマスク
・ワード線を制御することにより、データ・セルと同様
に行われる。以降、データ・セルに記憶されている又は
記憶させるデータを記憶データと呼び、マスク・セルに
記憶されている又は記憶させるデータをマスク記憶デー
タと呼ぶ。
【0011】次に、検索動作時には、検索データ105
が外部から入力される。検索動作時には全データ・ワー
ド線およびマスク・ワード線は不活性(無効状態)にさ
れる。一致線104は、検索動作時にビット線101−
1〜101−n上に出力されている値と、一つの対応す
る連想メモリ・ワード106の中に格納されている記憶
データの全ビットが一致するか、またはその記憶データ
に対応するマスク情報によりその記憶データの一部を比
較対象から除外した場合一致する時に活性化(有効状
態)され、それ以外の場合には不活性(無効状態)にさ
れる。ここでは、一致線の有効状態は“1”、無効状態
は“0”とする。
【0012】連想メモリ・ワード106−1〜106−
mは、それぞれn個の連想メモリ・セル107−1−1
〜107−1−n,107−2−1〜107−2−n,
・・・,107−m−1〜107−m−nで構成され
る。同一の連想メモリ・ワード106を構成するn個の
連想メモリ・セル107のすべてに、連想メモリ・ワー
ド106に対応する1本のデータ・ワード線102と、
1本のマスク・ワード線103が入力される。たとえ
ば、1番目の連想メモリ・ワード106−1を構成する
n個の連想メモリ・セル107−1−1〜107−1−
nにはデータ・ワード線102−1、マスク・ワード線
103−1が入力される。
【0013】また、連想メモリ・ワード106を構成す
るn個の連想メモリ・セル107には、それぞれn本の
ビット線101の中の対応するビット線がデータ入出力
のために接続されている。たとえば1番目の連想メモリ
・ワード106−1を構成する1番目の連想メモリ・セ
ル107−1−1には、ビット線101−1が接続され
ている。
【0014】また、同一の連想メモリ・ワード106を
構成するn個の連想メモリ・セル107のすべてが、図
10の例では、ワイアード論理接続により一致線104
に接続されている。たとえば、1番目の連想メモリ・ワ
ード106−1を構成するn個の連想メモリ・セル10
7−1−1〜107−1−nは、ワイアード論理接続に
より一致線104−1と接続されている。
【0015】連想メモリ・セル107は、データ・セル
108、比較器109、およびマスク・セル110とか
ら構成される。データ・セル108はデータ・ワード線
102が有効状態の場合、ビット線101の書き込みデ
ータを記憶データとして格納したり、格納している記憶
データをビット線101に出力する。データ・ワード線
102が無効状態ならば、ビット線101に対してなん
ら操作は行わない。また、データ・ワード線102の値
にかかわらず、格納している記憶データを比較器109
に出力する。
【0016】マスク・セル110はマスク・ワード線1
03が有効状態の場合、ビット線101の書き込みデー
タをマスク情報として格納したり、格納しているマスク
情報をビット線101に出力する。マスク・ワード線1
03が無効状態ならば、ビット線101に対してなんら
操作は行わない。また、マスク・ワード線103の値に
かかわらず、格納しているマスク情報を比較器109に
出力する。
【0017】比較器109はビット線101と、それに
対応するデータ・セル108の記憶データおよびマスク
・セル110のマスク情報を入力し、マスク情報が有効
状態、またはビット線101の値と記憶データが一致す
るならば一致線104を開放状態にし、それ以外の場合
には無効状態“0”を出力する。
【0018】一致線104は、検索動作の開始前には、
ハイ・レベルにプリ・チャージされているか、図示しな
い抵抗によりプル・アップされ、有効状態“1”になっ
ているものとする。次に検索動作に入ると、一致線10
4と連想メモリ・セル107は、同一の連想メモリ・ワ
ード106内のすべての連想メモリ・セル107が一致
状態を出力しているときに有効状態“1”となり、一つ
でも不一致状態を出力しているときに無効状態“0”と
なるようにワイアード論理を構成している。もちろん同
様の動作となるように通常の論理ゲートを用いて構成し
てもかまわない。
【0019】次に動作を説明する。通常の記憶回路とし
て動作する場合は、通常の記憶回路とまったく同様な動
作をする。つまり、データを読み出すときには、ビット
線101−1〜101−nに書き込みデータを入力せず
に、データ・ワード線102−1〜102−m、または
マスク・ワード線103−1〜103−mの中の任意の
1本を有効状態を入力し、残りを無効状態を入力する。
このとき、1本のデータ・ワード線102が有効状態に
なっているのならば、それに対応する連想メモリ・ワー
ド106に格納されている記憶データがビット線101
−1〜101−nに出力され、1本のマスク・ワード線
103が有効状態になっているのならば、それに対応す
る連想メモリ・ワード106に格納されているマスク情
報がビット線101−1〜101−nに出力される。
【0020】また、データを書き込むときには、ビット
線101−1〜101−nに書き込みデータを入力し、
データ・ワード線102−1〜102−m、またはマス
ク・ワード線103−1〜103−mの任意の信号線を
有効状態にし、他を無効状態にする。このときビット線
101−1〜101−nの値が、有効状態になっている
データ・ワード線102−1〜102−mに対応する連
想メモリ・ワード106のデータ・セル108に記憶デ
ータとして格納され、また、有効状態になっているマス
ク・ワード線103−1〜103−mに対応する連想メ
モリ・ワード106のマスク・セル110にマスク情報
として格納される。
【0021】検索動作の開始前には、一致線104は、
ハイ・レベルにプリ・チャージされているか、図示しな
い抵抗によりプル・アップされ、有効状態“1”になっ
ているものとする。
【0022】検索動作時には、ビット線101−1〜1
01−nには検索データ105を入力し、データ・ワー
ド線102−1〜102−m、マスク・ワード線103
−1〜103−mはすべて無効状態を入力する。各連想
メモリ・セル107では、ビット線101の値とデータ
・セル108に格納されている記憶データを比較し一致
しているならば、同一の連想メモリ・ワード106内の
一致線104を開放状態にする。一致していない場合、
同一連想メモリ・セル107内のマスク・セル110に
格納されているマスク情報が有効状態の時には、一致線
104を開放状態にし、他の場合には無効状態“0”を
出力する。従って、マスク・セル110内のマスク情報
を有効状態にしておけば、データ・セル108に格納さ
れている記憶データを検索対象から除外することができ
る。各連想メモリ・ワード106の一致線104は、内
部のn個の比較器109のすべてが一致線104を開放
状態にしている場合に有効状態となり、一つでも無効状
態を出力していると無効状態“0”となる。従って各連
想メモリ・ワード106に格納されている記憶データ
が、マスク情報により除外されるビットを除きビット線
101と完全に一致しているならば有効状態“1”を出
力し、1ビットでも不一致ならば無効状態“0”を出力
することになる。従って、検索動作後には、有効状態を
出力している一致線104−1〜104−mに対応する
連想メモリ・ワード106−1〜106−mに、検索デ
ータ105と同一、または類似の記憶データが格納され
ていることがわかる。
【0023】ここで、一致線104−1〜104−mの
出力信号はそのまま利用してもよい。また、エンコーダ
などを用いて他の記憶装置に読み書きするためのアドレ
ス信号を生成するのに用いてもよい。この場合、生成さ
れるアドレス信号よりも、多数の一致線104−1〜1
04−mが有効状態を出力している場合、優先順位付き
のエンコーダなどによりどの一致線104−1〜104
−mをアドレス信号生成に用いるかを選択する必要があ
る。優先順位としては、アドレスの昇順、降順が一般的
である。
【0024】次に、図11に従来の連想メモリ・セル1
07の一構成例を示す。ここで、2本のビット線101
a,101bは図10に示されている各ビット線に対応
するものであるが、図10においては101−iで代表
して表現している。この2本のビット線を介してメモリ
・セルへのデータの読み書きや、検索データ105の入
力を行う。データを書き込む場合、および検索データの
入力を行う場合には、ビット線101bにはビット線1
01aの値を反転した値を入力する。 データ・セル1
08は、入出力が相互に接続された反転論理ゲート(G
1)201、反転論理ゲート(G2)202と、反転論
理ゲート(G2)202の出力をビット線101aに接
続しデータ・ワード線102がハイ・レベルのときに導
通状態となるMOSトランジスタ(T1)203と、反
転論理ゲート(G1)201の出力をビット線101b
に接続しデータ・ワード線102がハイ・レベルのとき
に導通状態となるMOSトランジスタ(T2)204と
により構成される一般的なスタティックSRAM素子で
ある。
【0025】また、マスク・セル110も、入出力が相
互に接続された反転論理ゲート(G3)209、反転論
理ゲート(G4)210と、反転論理ゲート(G4)2
10の出力をビット線101aに接続しマスク・ワード
線103がハイ・レベルのときに導通状態となるMOS
トランジスタ(T7)211と、反転論理ゲート(G
3)209の出力をビット線101bに接続しマスク・
ワード線103がハイ・レベルのときに導通状態となる
MOSトランジスタ(T8)212とにより構成される
一般的なスタティックSRAM素子である。
【0026】比較器109はMOSトランジスタ(T
3)205、MOSトランジスタ(T4)206、MO
Sトランジスタ(T5)207、MOSトランジスタ
(T6)208により構成される。MOSトランジスタ
(T3)205とMOSトランジスタ(T4)206は
ビット線101a,101bの間に直列に挿入される。
MOSトランジスタ(T3)205は、データ・セル1
08内の反転論理ゲート(G1)201の出力がハイ・
レベルのときに導通状態となる。MOSトランジスタ
(T4)206は、データ・セル108内の反転論理ゲ
ート(G2)201の出力がハイ・レベルのときに導通
状態となる。MOSトランジスタ(T5)207とMO
Sトランジスタ(T6)208は、低電位と、一致線1
04の間に直列に挿入される。MOSトランジスタ(T
5)207は、MOSトランジスタ(T3)205とM
OSトランジスタ(T4)206の接続点の電位がハイ
・レベルの時に導通状態となる。MOSトランジスタ
(T6)208は、マスク・セル110内の反転論理ゲ
ート(G3)209の出力がハイ・レベルの時に導通状
態となる。ビット線101aと反転論理ゲート(G1)
201の出力がともにハイ・レベル、またはビット線1
01bと反転論理ゲート(G2)202の出力がともに
ハイ・レベルのときに、MOSトランジスタ(T3)2
05とMOSトランジスタ(T4)206の接続点はハ
イ・レベルとなり、MOSトランジスタ(T5)207
を導通状態とする。
【0027】従って、データ・セル108に格納されて
いる記憶データと、ビット線101a,101b上の検
索データ105が異なる場合にMOSトランジスタ(T
5)207は導通状態になる。またMOSトランジスタ
(T6)208はマスク・セル110内に格納されてい
るマスク情報が“1”のときには開放状態であり、
“0”のときに導通状態となる。一致線104は、図示
しない抵抗により高電位にプル・アップされているか、
または、検索動作を開始する前に高電位にプリチャージ
されているものとする。これにより、複数の連想メモリ
・セル107が一致線104にMOSトランジスタ(T
6)208を介して接続されているとき、一つの連想メ
モリ・セル107でもロウ・レベルを出力していると一
致線104はロウ・レベルとなるようなワイアードAN
D接続となる。
【0028】MOSトランジスタ(T5)207、MO
Sトランジスタ(T6)208がともに導通状態のとき
に連想メモリ・セル107は一致線104に無効状態
“0”を出力し、それ以外の時には一致線104を開放
状態とする。すなわち、マスク情報が“0”の場合には
一致線104を必ず開放状態とし、マスク情報が“1”
の場合にはビット線101a,101b上の検索データ
105とデータ・セルに格納されている記憶データが一
致するときに開放状態とし、異なる場合には無効状態
“0”を出力する。
【0029】ここで、再び図13のルータに話を戻す。
上述の通り、従来のマスク機能付き連想メモリでは、ド
ントケア“*”部分のデータ比較を無視しているので、
複数の一致線が有効状態になってしまう場合が起きる。
従って、この連想メモリの結果を用いて他の記憶装置に
読み書きするためのアドレス信号を生成する場合は、予
め決めて有るある基準に基づいて、有効になった複数の
一致線の中のどれか一本を優先して選択し、さらに選択
した一本の一致線に対して相手先のアドレスを生成させ
る必要がある。
【0030】そこで、従来のルータではプライオリティ
エンコーダ302を設けて、その中で複数の一致線が有
効状態の時はその中の一本を選択した後で、選ばれた一
致線に対してエンコードした結果をメモリ・アドレス信
号303としてメモリ304に出力している。複数の一
致線104−1〜104−5が有効状態の時にその中の
一本を選択する基準として、ここではアドレスの大きい
ものが優先されるものとする。
【0031】一方、メモリ304には、連想メモリ10
0の各ワードに格納されているアドレス情報、マスク情
報により構成されるネットワーク・アドレスに対応する
ルータのアドレスを、連想メモリ100のアドレスと同
一のアドレスのワードに記憶させてある。たとえば、連
想メモリのワード1にはアドレス(1.*.*.*)が
記憶されているが、これに対応する図12のルータ30
0−1のアドレスがメモリ304のワード1に格納され
ている。同様にメモリ304のワード2にはルータ30
0−2のアドレスが、ワード3にはルータ300−6の
アドレスが格納されている。ここで、メモリ304は、
メモリ・アドレス信号303をリード・アドレスとして
指定される格納データを、メモリ・データ信号305と
して出力する。
【0032】尚、図には示していないが、各ルータはそ
の内部にCPUを有しており、そのCPUにより上述し
たルータの動作の制御が行われる。
【0033】次に、各ルータによって制御される従来の
ネットワークの接続の動作例を説明する。例えばルータ
300−3に入力された転送データのアドレスが(2.
2.1.1)の場合、従来の連想メモリ100で検索す
るとワード2の(2.*.*.*)のみが一致し、一致
線104−2のみが有効状態となる。これにより、プラ
イオリティ・エンコーダ302はメモリ・アドレス30
3として“2”を出力し、メモリ304はルータ300
−2のネットワーク・アドレスをメモリ・データ信号3
05として出力する。これにより、ルータ300−3
は、目的地アドレス(2.2.1.1)の転送データを
ルータ300−2に転送を行う。ルータ300−2は転
送されてきたデータに基づいて上述したのと同様な動作
を行い、次々とルータにデータを転送して最終目的地の
アドレス(2.2.1.1)に接続しているユーザにデ
ータを転送する。
【0034】
【発明が解決しようとする課題】上述した連想メモリを
使用して検索データを検索すると、一つの検索データに
対して複数の記憶データが一致した場合に、一致した記
憶データに対応する一致線を全て活性化してしまう。従
って、その中の一本を更に選択するためには上述のよう
に、プライオリティ機能付きのエンコーダが必要にな
る。
【0035】ところが、プライオリティ機能で複数の一
致線の中の一本を選んだとしても、それが最適の一本で
あるか否かは不明である。例えば、ルータ300−3に
入力された転送データの目的地がPC301−1、つま
り目的地アドレスが(1.2.2.3)の場合を考えて
みる。従来の連想メモリ100で検索するとワード1の
(1.*.*.*)、ワード3の(1.2.2.*)、
およびワード4の(1.2.*.*)が一致し、一致線
104−1,104−3、および104−4の3本が有
効状態となる。ここで、プライオリティ・エンコーダ3
02はアドレスの大きいものが優先順位が高いためにメ
モリ・アドレス303として“4”を出力し、メモリ3
04はルータ300−4のネットワーク・アドレスをメ
モリ・データ信号305として出力する。これにより、
ルータ300−3は、目的地アドレス(1.2.2.
3)の転送データをルータ300−4に転送を行う。
【0036】しかし、図12から容易にわかるとおり、
ルータ300−4に転送するよりも、ルータ300−6
に転送する方がPC301−1までのルートが短く最適
である。すなわち、マスク情報の有効ビット数が最も少
ないルータを選ぶのが最適である。ところが、従来の連
想メモリ100をルータの転送先ネットワーク・アドレ
ス計算に用いた場合には、この例では、ルータ300−
1、ルータ300−4、ルータ300−6のどれに転送
するかは、連想メモリ100に格納する順番に依存し、
最適な転送先が選択されるとは限らない。
【0037】そこで、従来のルータでは、内蔵CPUに
最適転送先アドレスを求めるプログラムを組んでおき、
そのプログラムの制御によりソフトウエア的に最適アド
レスを求めていた。インターネットに接続されているル
ータでは、ネットワークの接続情報が数万ワード以上と
なり、ソフトウエアにより転送先ネットワーク・アドレ
ス計算処理を行うには、数100クロック以上が必要で
あり、インターネットによるデータ転送時に大きな遅延
が発生する主因となっていた。
【0038】また、ネットワークに加入するユーザは常
に登録・抹消が頻繁に行われており、これらユーザの登
録・末梢に伴うネットワークアドレスの更新をルータ内
の連想メモリに反映する必要がある。そのために、ある
決められた時間に各ルータ同士がユーザのアドレス情報
を交信しあって、最新のアドレスを連想メモリに自動更
新していた。このとき、各ユーザ間の交信ルートができ
る限り短くなるように、連想メモリに格納するワード順
をソートしながらアドレスの交信を行っていたが、ユー
ザは年々増加する一方であり、このソートに時間がかか
り、そのネットワークは数十秒間通信不能になるという
問題があった。
【0039】また、ルータにプライオリティエンコーダ
を用いる必要があり、プライオリティ機能の部分だけエ
ンコーダの面積が大きくなってしまうという欠点があっ
た。
【0040】そこで、本発明の目的は、複数の記憶デー
タが検索データと一致したときに、その中で最適な一つ
を高速に選択して出力する連想メモリを提供することに
ある。
【0041】更に他の目的として、プライオリティエン
コーダを必要としないルータを提供することにある。
【0042】更に他の目的として、高速にデータを転送
できるネットワークシステムを提供することにある。
【0043】
【課題を解決するための手段】そこで、本発明では、手
段1として、検索される記憶データとそのマスクデータ
とを対として複数組有する連想メモリにおいて、検索デ
ータを検索した結果、検索されるべきデータとして複数
の記憶データが選出された際、当該選出された複数の記
憶データに対応するマスクデータの論理演算を行う手段
を設けた。
【0044】すなわち、マスクデータが“1”と“0”
の論理値で定義されていることに注目し、複数の一致線
が有効になったときは、これら一致線を出力している連
想メモリ・ワードに対応するマスク情報の各ビット同士
に例えば論理積を行うことにより、一致した記憶データ
に対応するマスク情報の中でマスク有効状態のビットが
最も少ないマスク情報(最短マスク情報)を得るもので
ある。
【0045】この結果得られたマスク情報と同じビット
情報を、一致線を有効にしている複数のメモリ・ワード
に格納されているマスク情報から探せば、有効状態のビ
ット数が最小のマスク情報に対応する記憶データを選択
することができる。
【0046】手段2として、手段1に記載の連想メモリ
において、2次検索として前記論理演算の結果を検索デ
ータとして前記選出された複数のワードに対応するマス
クデータを検索し、前記論理演算の結果と前記マスクデ
ータが一致したワードを選出する連想メモリ。
【0047】手段3として、手段1に記載の連想メモリ
において、2次検索として前記論理演算の結果を検索デ
ータとして前記ワードのマスクデータを検索し、前記1
次検索で選出され且つ前記2次検索で前記論理演算の結
果とマスクデータが一致したワードを選出する連想メモ
リ。
【0048】手段4として、前記論理演算は論理積演算
である手段1乃至3に記載の連想メモリ。
【0049】手段5として、検索されるデータとそのマ
スクデータとを対にして格納する第1のワードを複数有
し、外部から入力された検索データの検索の結果検索さ
れるべきデータとして複数の第1のワードが選出された
際、当該選出された複数の第1のワードに対応するマス
クデータ同士の論理演算を行う手段を有する第1の連想
メモリと、前記検索されるデータとそのマスクデータを
対として格納する第2のワードを複数有する第2の連想
メモリを有し、前記第2のワードは前記第1の連想メモ
リのワードの2倍のビット数で構成され、前記第2の連
想メモリの各検索されるデータおよびそのマスクデータ
は前記第1の連想メモリの対応するアドレスのワードに
格納されている検索されるデータおよびそのマスクデー
タを格納している第1のビット群を有し、更に前記第2
の連想メモリの各検索されるデータは同じワードのマス
クデータを格納している第2のビット群を有し、検索に
際し、前記論理演算の結果を前記第2の連想メモリの前
記第2のビット群へ入力し、前記検索データを前記第2
の連想メモリの第1のビット群へ入力し、前記第2の連
想メモリの前記第2のワードの検索されるデータ中から
前記検索データのビット情報と前記演算結果のビット情
報に一致するワードを選択することを特徴とする連想メ
モリ。
【0050】手段6として、記憶情報の1ビットまたは
複数ビットごとに検索対象から除外するか否かを、有効
状態、無効状態により設定するマスク情報を記憶情報1
語ごとに有する連想メモリにおいて、一つまたは複数の
記憶情報が検索データと一致したとき、検索データに対
して一致した記憶情報に対応するマスク情報のすべての
中で、検索対象から除外するよう設定された記憶情報の
ビット数が最小であるマスク情報を最短マスク信号線に
出力する第1の検索手段と、検索データと一致する一つ
または複数の記憶情報の中で、そのマスク情報が最短マ
スク信号線に一致する記憶情報を識別する信号を出力す
る第2の検索手段とを有することを特徴とする連想メモ
リ。
【0051】手段7として、手段6において、第1の検
索手段が、記憶情報1語ごとに検索データとマスク情報
を付加した該記憶データが一致するときに有効状態とな
る一致線を有し、かつ、一つまたは複数の記憶情報が該
検索データと一致したとき、一致した記憶データに対応
するマスク情報のすべてに対して、マスク有効状態を真
とする論理積演算を行った結果を最短マスク信号線とし
て出力する最短マスク演算回路とを有する最短マスク出
力機能付連想メモリにより構成されることを特徴とする
連想メモリ。
【0052】手段8として、手段6において、第2の検
索手段が、1語中にマスク情報を付加した記憶情報とマ
スク情報を検索対象として格納している従来の連想メモ
リに、前記第1の検索手段に入力した該検索データと前
記第1の検索手段が出力する最短マスク信号を1語の検
索データとして入力することにより構成されることを特
徴とする連想メモリ。
【0053】手段9として、手段7において、1語中の
マスク情報の1ビットごとに、該語に対応する一致線が
有効状態かつ該マスク情報のビットがマスク無効状態の
ときにマスク無効状態を出力する第1の論理回路と、す
べての語のマスク情報の同じビット位置に対応する前記
論理回路の出力状態を入力としマスク有効状態を真とす
る論理積演算結果を前記ビット位置の最短マスク信号線
に出力する第2の論理回路とにより構成される最短マス
ク出力回路を有することを特徴とする最短マスク出力機
能付連想メモリ。
【0054】手段10として、手段9の第2の論理回路
が、すべての語のマスク情報の同じビット位置に対応す
る前記第1の論理回路の出力による前記ビット位置の最
短マスク出力線に対する結線論理より構成されることを
特徴とする最短マスク出力回路。
【0055】手段11として、1語中のマスク情報1ビ
ットごとに、対応するビット位置の最短マスク信号線と
マスク無効状電位との間に直列に挿入された第1のトラ
ンジスタと第2のトランジスタを有し、第1のMOSト
ランジスタは該語に対応する一致線が有効状態の時に導
通状態、無効状態の時には開放状態となり、第2のMO
Sトランジスタは該マスク情報のビットが無効状態のと
きに導通状態、有効状態の時に開放状態となるよう、前
記第1の論理回路を構成することを特徴とする手段9の
最短マスク出力機能付連想メモリ。
【0056】手段12として、手段6の第1の検索手段
において、最短マスク信号検索データを格納する第1の
記憶手段と、マスク情報を付加した記憶情報が外部から
の検索情報と一致している語中の該マスク情報が第1の
記憶手段の格納情報と一致しているか否かを第2の一致
線に出力する一致検出手段とを有することで第2の検索
手段の構成要素を第1の検索手段の構成要素と共有する
ことを特徴とする連想メモリ。
【0057】手段13として、手段12の一致検出手段
において、外部からの検索情報と第1の記憶手段の出力
信号とを選択し検索データとして入力する選択手段と、
1語ごとに有する一致線の値を1語ごとに格納する第2
の記憶手段と、1語ごとに前記マスク情報が検索データ
と比較した結果が一致し、かつ該語中の第2の記憶手段
の格納している状態が有効状態の場合に第2の一致線に
有効状態を出力する前記比較手段とを有することを特徴
とする連想メモリ。
【0058】手段14として、手段13の比較手段が、
1語中のマスク情報の1ビットごとに前記マスク情報が
検索データと比較した結果が不一致ならば無効状態を第
2の一致線に出力するマスク比較手段と、格納している
状態が無効状態ならば第2の一致線に無効状態を出力す
る該語中の第2の記憶手段とを有することを特徴とする
連想メモリ。
【0059】手段15として、手段14の比較手段にお
いて、前記各マスク比較手段の出力と前記第2の記憶手
段の出力により第2の一致線に対して結線論理を構成す
ることを特徴とする連想メモリ。
【0060】手段16として、1ビットまたは複数ビッ
トごとに検索対象から除外するか否かを、その有効状
態、無効状態により設定するマスク情報を1語ごとに有
する記憶情報に対する検索方法において、一つまたは複
数の記憶情報が検索データと一致したとき、検索データ
に対して一致した記憶情報に対応するマスク情報のすべ
ての中で、検索対象から除外するよう設定された記憶情
報のビット数が最小であるマスク情報を最短マスク信号
として発生し、検索データと一致する一つまたは複数の
記憶情報の中で、そのマスク情報が最短マスク信号に一
致する記憶情報を識別する信号を発生することを特徴と
する検索方法。
【0061】手段17として、手段16において、一つ
または複数の記憶情報が検索データと一致したとき、一
致した記憶情報に対応するマスク情報のすべてに対し
て、マスク有効状態を真とする論理積演算を行った結果
を最短マスク信号として発生することを特徴とする検索
方法。
【0062】手段18として、記憶情報の1ビットまた
は複数ビットごとに検索対象から除外するか否かを、有
効状態、無効状態により設定するマスク情報を記憶情報
1語ごとに有する連想メモリに経路情報を格納するルー
タにおいて、一つまたは複数の経路情報が入力転送デー
タの目的地ネットワーク・アドレスと一致したとき、目
的地ネットワーク・アドレスに対して一致した経路情報
に対応するマスク情報のすべての中で、検索対象から除
外するよう設定された経路情報のビット数が最小である
マスク情報を最短マスク信号線に出力する第1の検索手
段と、前記目的地ネットワーク・アドレスと一致する一
つまたは複数の経路情報の中で、そのマスク情報が最短
マスク信号線に一致する経路情報を識別する一致信号を
出力する第2の検索手段と、前記一致信号により前記入
力転送データの転送先アドレスを決定する手段と、前記
入力転送データを前記転送先アドレスに転送する手段と
を有することを特徴とするルータ。手段19として、1
ビットまたは複数ビットごとに検索対象から除外するか
否かを、その有効状態、無効状態により設定するマスク
情報を1語ごとに有する経路情報を複数格納する経路情
報テーブルを有するルータにおいて、一つまたは複数の
経路情報が入力転送データの目的地ネットワーク・アド
レスと一致したとき、前記目的地ネットワーク・アドレ
スに対して一致した経路情報に対応するマスク情報のす
べての中で、検索対象から除外するよう設定された経路
情報のビット数が最小であるマスク情報を最短マスク信
号として発生し、前記目的地ネットワーク・アドレスと
一致する一つまたは複数の経路情報の中で、そのマスク
情報が最短マスク信号に一致する記憶情報を識別する一
致信号を発生し、前記一致信号により前記入力転送デー
タの転送先アドレスを決定し、前記入力転送データを前
記転送先アドレスに転送することを特徴とするルータ。
【0063】手段20として、手段18または19に記
載の前記ルータを介してネットワークに接続された機器
間でデータ通信を行うネットワークシステム。
【0064】
【発明の実施の形態】次に、本発明の第一の実施の形態
について図面を参照して詳細に説明する。
【0065】図1は本発明の第1の最短マスク出力機能
付連想メモリ1(以降、連想メモリ1)の構成例を示す
ブロック図である。図1の連想メモリ1は、nビット2
入力1出力セレクタ17と、8−1〜8−mのnビット
m語の第1の連想メモリ・ワードと、nビットラッチ2
1を有しており、各連想メモリ・ワード8−jはn個の
連想メモリ・セル12−j−1〜12−j−nと1個の
ラッチ20−jを備えている。
【0066】各連想メモリ・セル12−j−kは、外部
からビット線6−kを介して入力される記憶データの対
応するビット情報を格納するデータ・セル9−j−k
と、データ・セルに記憶されたビット情報と外部から入
力される検索データの対応するビット情報105−kと
を比較する比較器11−j−kと、外部からビット線6
−kを介して入力されるマスク情報の対応するビット情
報を格納するマスク・セル10−j−kと、マスク・セ
ルに記憶されたビット情報とnビットラッチ21から出
力された最短マスク情報の対応するビット情報22−k
とを比較するマスク比較器18−j−kと、論理ゲート
13−j−kとを備えている。
【0067】次に、上述の第1の連想メモリ・セルの構
成例を図2を用いて説明する。図10に示す従来の連想
メモリ・セルと比較すれば分かるように、本発明の連想
メモリ・セルは、マスク比較器18と、論理ゲート13
と、マスク一致線と最短マスク線4を備えていることを
除けば、従来の連想メモリ・セルと同じである。
【0068】従って、従来と違う部分のみの説明を行
う。先ず、論理ゲート13と最短マスク線の働きを説明
する。最短マスク線4は図1の抵抗16によりプル・ア
ップされ検索動作前には有効状態“1”になっている。
論理ゲート13は、最短マスク線4と低電位との間に直
列に挿入されたMOSトランジスタ(T9)213と、
MOSトランジスタ(T10)214で構成されてい
る。MOSトランジスタ(T9)213は、一致線7が
有効状態“1”のときに導通状態となり、無効状態
“0”のときには開放状態となる。MOSトランジスタ
(T10)214は、マスク・セル10内部の反転論理
ゲートG3(209)の出力がハイ・レベルの場合に導
通状態となり、ロウ・レベルの場合には開放状態とな
る。つまり、マスク・セル10に格納されているマスク
情報が無効状態“0”のときに導通状態となり、有効状
態“1”のときには開放状態となる。これにより論理ゲ
ート13は、一致線7が有効状態“1”かつマスク・セ
ル10に格納されたマスク情報が無効状態“0”のとき
に、最短マスク線4に無効状態“0”を出力し、それ以
外の場合には開放状態にする。
【0069】次に、マスク比較器とマスク一致線の働き
を説明する。マスク一致線19は、図示しない抵抗によ
り高電位にプル・アップされているか、または、検索動
作を開始する前に高電位にプリチャージされているもの
とする。
【0070】マスク比較器18は、MOSトランジスタ
(T11)215、MOSトランジスタ(T12)21
6、MOSトランジスタ(T13)217により構成さ
れる。MOSトランジスタ(T11)215とMOSト
ランジスタ(T12)216はビット線6a,6bの間
に直列に挿入される。MOSトランジスタ(T11)2
15は、マスク・セル10内の反転論理ゲート(G3)
209の出力がハイ・レベルのときに導通状態となる。
MOSトランジスタ(T12)216は、マスク・セル
10内の反転論理ゲート(G4)210の出力がハイ・
レベルのときに導通状態となる。MOSトランジスタ
(T13)217は、低電位と、マスク一致線12の間
に挿入される。MOSトランジスタ(T13)217
は、MOSトランジスタ(T11)215とMOSトラ
ンジスタ(T12)216の接続点の電位がハイ・レベ
ルの時に導通状態となる。
【0071】ビット線6aと反転論理ゲート(G3)2
09の出力がともにハイ・レベル、またはビット線6b
と反転論理ゲート(G4)210の出力がともにハイ・
レベルのときに、MOSトランジスタ(T11)215
とMOSトランジスタ(T12)216の接続点はハイ
・レベルとなり、MOSトランジスタ(T13)217
は導通状態になり、その他の場合は開放状態となる。
【0072】従って、マスク・セル10に格納されてい
るマスク情報と、ビット線6a,6b上の検索データ1
05が異なる場合にMOSトランジスタ(T5)207
は導通状態になりマスク一致線19に無効状態“0”を
出力し、一致する場合には一致線109を開放状態にす
る。
【0073】これにより、複数の連想メモリ・セル12
がマスク一致線19にMOSトランジスタ(T13)2
17を介して接続されているとき、一つの連想メモリ・
セルでもロウ・レベルを出力しているとマスク一致線1
9はロウ・レベルとなり、それ以外の場合はハイ・レベ
ルにするワイアードAND接続を構成している。以上の
構成により、図1の第1の連想メモリ・セル12の機能
を実現できる。
【0074】ここで、図2の連想メモリ・セル12は、
反転論理ゲート201,202,209,210をそれ
ぞれ2つのMOSトランジスタで構成したとすると、計
21個のMOSトランジスタで構成できる。従って、た
とえば64ビット1024語の第1の連想メモリ1を構
成するのに必要なMOSトランジスタの数はおよそ13
0万個となる。連想メモリ・以外は一般に数万個以下の
MOSトランジスタで構成することができるので、連想
メモリ1は、およそ130万個のMOSトランジスタで
構成できることになる。
【0075】一方、図10の従来の連想メモリ・セルは
同様に計算すると、計16個のMOSトランジスタで構
成できる。従って、図5の連想メモリ1は、図9の従来
の連想メモリに比べて、21/16≒1.3より、約
1.3倍の回路規模で実現できることがわかる。
【0076】次に、図1に戻って、第1の連想メモリ全
体の動作概要の説明を行う。nビット2入力1出力セレ
クタ17は、ビット線6−1〜6−nに出力するデータ
を、制御信号23の状態により、検索データ105−1
〜105−nとラッチ出力線22−1〜22−nの一方
から選択する。それぞれの第1の連想メモリ・ワード8
は、対応する1本のマスク一致線19を出力する。たと
えば一番目の連想メモリ・ワード8−1はマスク一致線
19−1を出力する。ここで、各連想メモリ・ワード8
の中のn個の連想メモリ・セル12はすべて、対応する
1本のマスク一致線19とワイアード論理接続されてい
る。
【0077】nビット・ラッチは、ラッチ制御信号24
が有効状態の時に、最短マスク線4−1〜4−nの状態
を内部に格納する。また、格納した状態をラッチ出力線
22−1〜22−nに出力する。
【0078】ラッチ20−1〜20−mは、同一の第1
の連想メモリ・ワード8−1〜8−mの中の一致線7−
1〜7−mの状態を、ラッチ制御線が有効状態の時に内
部に格納する。また、格納した状態を出力するため、同
一の連想メモリ・ワードの中にあるマスク一致線19と
対応し、ワイアード論理接続されている。
【0079】マスク一致線19−1〜19−mは、検索
動作の終了時に、検索データ105と一致した記憶デー
タの中で、マスク情報により検索対象から除外されたビ
ット数が最も少ない記憶データに対応するものだけが有
効状態となり、それ以外は無効状態となる。
【0080】尚、本例では、マスク情報の有効状態を
“1”、無効状態を“0”とし、最短マスク線4−1〜
4−8の有効状態を“1”、無効状態を“0”とする。
一致線7−1〜7−5の有効状態を“1”、無効状態を
“0”とする。また、マスク一致線19−1〜19−m
の有効状態を“1”、無効状態を“0”とする。
【0081】マスク一致線19−1〜19−mは検索動
作開始前に図示しない抵抗によりプル・アップされてい
るか、ハイ・レベルにプリ・チャージされることによ
り、有効状態“1”になっているものとする。ラッチ2
0−1〜20−mは対応するマスク一致線19−1〜1
9−mに対して、格納されたデータが無効状態“0”の
場合には“0”を出力し、格納されたデータが有効状態
“1”の場合には対応するマスク一致線19−1〜19
−mを開放状態とする。
【0082】また、各第1の連想メモリ・セルの中のマ
スク比較器18−1−1〜18−m−nは、同一の連想
メモリ・セル18−1−1〜18−m−nの中にあるマ
スク・セル10−1−1〜10−m−nと、ビット線6
−1〜6−nおよびマスク一致線19−1〜19−mに
対応する。
【0083】マスク比較器18は、対応するマスク・セ
ル10が格納するマスク情報の状態と対応するビット線
6上の最短マスク情報を比較し、一致しているならば対
応するマスク一致線19を開放状態にし、不一致ならば
対応するマスク一致線19に無効状態“0”を出力す
る。従って、第1の連想メモリ・ワード8の中のn個の
連想メモリ・セル12と、1個のラッチ20がすべてマ
スク一致線を開放状態にしているときに、マスク一致線
は有効状態“1”となり、それ以外の場合には無効状態
“0”となるワイアードAND論理接続を構成してい
る。
【0084】つまり、第1の連想メモリ・ワード8が格
納しているマスク情報とビット線6−1〜6−nが完全
に一致し、かつ、ランチ20に格納されている第2の一
致線7の状態が有効状態“1”の場合に限り、マスク一
致線19は有効状態“1”となり、それ以外の場合は無
効状態“0”となる。もちろん、このような動作をする
ように通常の論理ゲートを用いて構成してもよい。
【0085】次に、上述の第1の連想メモリ1を、図1
2のルータ300−3における転送先ネットワーク・ア
ドレスの計算に用いた場合の動作を図3を用いて説明す
る。
【0086】従来と同様にマスク情報の有効状態を
“1”、無効状態を“0”とする。また、最短マスク線
4−1〜4−8の有効状態を“1”、無効状態を“0”
とし、一致線7−1〜7−5、マスク一致線19−1〜
19−5の有効状態を“1”、無効状態を“0”とす
る。
【0087】連想メモリ1を8ビット5語の構成と仮定
する。従って、各第1の連想メモリ・ワード8−1〜8
−5に格納されている記憶データ、マスク情報は、図1
3の連想メモリの場合と全く同一であり、図12のルー
タ300−3のネットワーク・アドレス(3.*.*.
*)以外の接続情報を記憶している。つまり、連想メモ
リ・ワード8−1には(1.*.*.*)を実現するた
め2進数で、記憶データには(01.00.00.0
0)を、マスク情報として(00.11.11.11)
を格納してある。同様に連想メモリ・ワード8−2には
(2.*.*.*)を、8−3には(1.2.2.*)
を、8−4には(1.2.*.*)を、8−5には
(2.3.3.*)を格納してある。
【0088】以降、検索データ105として図12のP
C301−1の4進数のネットワーク・アドレス(1.
2.2.3)を入力し検索動作を行った場合の動作説明
をする。
【0089】まず、選択信号23により8ビット2入力
1出力セレクタ17は検索データ105を選択し、ビッ
ト線6−1〜6−8に出力する。これにより、連想メモ
リ1の連想メモリ・ワード8−3に格納されている4進
表現の(1.2.2.*)と8−4に格納されている4
進表現の(1.2.*.*)がビット線上のデータと一
致する。従って、一致線7−3と7−4の2本が有効状
態“1”となり、残りの一致線7−1,7−2、および
7−5は無効状態“0”となる。
【0090】ここで、最短マスク線4−1からは、メモ
リ・ワード7−3内の最短マスク線4−1に対応するマ
スク情報“0”と、メモリ・ワード7−4内の最短マス
ク線4−1に対応するマスク情報“0”の論理積“0”
が出力される。最短マスク線4−2からは、メモリ・ワ
ード7−3内の最短マスク線4−2に対応するマスク情
報“0”と、メモリ・ワード7−4内の最短マスク線4
−2に対応するマスク情報“0”の論理積“0”が出力
される。以降同様に、最短マスク線4−3からは“0”
と“0”の論理積“0”が、4−4からは“0”と
“0”の論理積“0”が、4−5からは“0”と“1”
の論理積“0”が、4−6からは“0”と“1”の論理
積“0”が、4−7からは“1”と“1”の論理積
“1”が、4−8からは“1”と“1”の論理積“1”
が、それぞれ出力される。従って、最短マスク線4−1
〜4−8には、2進表現で“00000011”が出力
される。
【0091】この状態でラッチ制御信号24が有効状態
になり、ラッチ20−1〜20−5は対応する一致線7
−1〜7−5の状態を内部に格納し、nビット・ラッチ
21は最短マスク線4−1〜4−8の状態を内部に格納
する。従って、ラッチ20−1には“0”が、ラッチ2
0−2には“0”が、ラッチ20−3には“1”が、ラ
ッチ20−4には“1”が、ラッチ20−5には“0”
が、それぞれ格納され、nビット・ラッチ21には2進
表現で“00000011”が格納される。また、nビ
ット・ラッチ21は、格納した状態“0000001
1”をラッチ出力線22に出力する。
【0092】次に選択信号23により、8ビット2入力
1出力セレクタ17はラッチ出力線22を選択し、その
情報“00000011”を対応するビット線6−1〜
6−8に出力した後、連想メモリは2回目の検索動作を
開始する。2回目の検索動作では、マスク一致線19−
1〜19−8の状態を利用し、一致線7−1〜7−8の
状態は無視される。
【0093】マスク一致線19−1〜19−8は2回目
の検索動作開始前に、ハイ・レベルにプリ・チャージさ
れるか、図示しない抵抗によりハイ・レベルにプル・ア
ップされて有効状態“1”になっている。
【0094】ビット線6−1〜6−8の状態が“000
00011”に対して、第1の連想メモリ・ワード8−
3と8−5が格納するマスク情報が完全に一致し、対応
するマスク一致線19−3,19−5を開放状態にす
る。他の連想メモリ・ワード8−1,8−2および8−
4が格納するマスク情報は一致しないので、対応するマ
スク一致線19−1,19−2、および19−4に無効
状態“0”を出力する。
【0095】また、ラッチ20−1は格納した状態
“0”を対応するマスク一致線19−1に出力し、ラッ
チ20−2は格納した状態“0”を対応するマスク一致
線19−2に出力し、ラッチ20−3は格納した状態が
“1”なので対応するマスク一致線19−3を開放状態
にし、ラッチ20−4は格納した状態が“1”なので対
応するマスク一致線19−4を開放状態にし、ラッチ2
0−5は格納した状態“0”を対応するマスク一致線1
9−5に出力する。
【0096】従って、マスク一致線19−1は、連想メ
モリ・ワード8−1の一致線7−1が“0”を出力しラ
ッチ20−1も“0”を出力しているので無効状態
“0”になる。マスク一致線19−2は、連想メモリ・
ワード8−2の一致線7−2が“0”を出力しラッチ2
0−2も“0”を出力しているので無効状態“0”とな
る。マスク一致線19−3は、連想メモリ・ワード8−
3の一致線7−3が開放状態でありラッチ20−3も開
放状態であるので有効状態“1”を保持する。マスク一
致線19−4は、ラッチ20−4が開放状態にしている
が、連想メモリ・ワード8−4の一致線7−4が“0”
を出力しているので無効状態“0”となる。マスク一致
線19−5は、連想メモリ・ワード8−5が開放状態に
しているが、ラッチ20−5が“0”を出力しているの
で、マスク一致線19−5は無効状態“0”となる。
【0097】これにより、1回目の検索動作で、予め格
納されている記憶データがマスク情報を考慮して検索デ
ータ105と一致し、かつ2回目の検索動作で、予め格
納されているマスク情報が1回目の検索動作の結果得ら
れた最短マスク線4−1〜4−8の状態と一致するよう
な連想メモリ・ワード8−1〜8−5に対応するマスク
一致線19−1〜19−5のみが、2回目の検索動作終
了時に有効状態“1”になることがわかる。
【0098】上述した1回目の検索動作と2回目の検索
動作を図4のタイミングチャートに纏める。
【0099】で全てのビット線、一致線およびマスク
一致線をハイ(“1”)にプリチャージする。
【0100】の立ち上がりで各ビット線に検索データ
の対応するビット情報が出力される。このビット情報と
各メモリ・ワード内の対応する記憶データのビット情報
が一致するか、または対応するビットのマスク情報が
“1”ならばそのメモリ・ワードの一致線は有効状態
“1”になり、それ以外のメモリ・ワードの一致線は無
効状態“0”になる。
【0101】また、各最短マスク線には有効状態にある
メモリ・ワードの対応するマスクビット情報の論理積が
出力される。
【0102】ここで、ラッチ制御信号が活性化されて各
メモリ・ワードの一致線の値がラッチ20に格納され
る。また、各最短マスク線のビット情報がnビット・ラ
ッチ21に格納されるとともに対応するラッチ出力線2
2に出力される。
【0103】次に、全てのビット線、一致線およびマ
スク一致線をハイにプリチャージする。尚、マスク一致
線に関しては、ラッチ20に“1”を格納しているメモ
リ・ワードのマスク一致線のみハイにプリチャージして
もよい。
【0104】の立ち上がりで選択信号23により、各
ラッチ出力線上のビット情報が対応するビット線6に出
力される。このビット情報とメモリ・ワード中のマスク
情報が一致し、且つラッチ20が“1”を記憶している
メモリ・ワードのマスク一致線のみが有効状態“1”を
出力する。
【0105】上述のように、本発明の第1の連想メモリ
を使用すれば、2クロックで最適なメモリ・ワードがど
れであるかをマスク一致線の値により選択することがで
きる。
【0106】また、本発明の第一の構成例では、一つま
たは複数の記憶データが検索データと一致したとき、一
致した記憶データに対応するマスク情報のすべてに対し
て、マスク有効状態に対する論理積演算を行った結果を
出力する第1の検索手段を構成する回路要素と、検索デ
ータと一致する一つまたは複数の記憶データの中で、そ
のマスク情報が第1の手段により出力された演算結果と
一致する記憶データを識別する信号を出力する第2の検
索手段を構成する回路要素とを、共用する手段を有する
ことにより、図10の従来の連想メモリの1.3倍程度
の回路規模で、一致した記憶データの中でマスク情報に
より検索対象から除外されたビット数が最も少ない記憶
データがどれかを識別することができる。
【0107】次に本発明の第二の実施の形態について図
面を参照して詳細に説明する。図5は本発明の第二の実
施の形態の連想メモリ4の構成を示すブロック図であ
る。
【0108】連想メモリ4は、nビットm語の最短マス
ク出力機能付連想メモリ2と、2nビットm語の第2の
連想メモリ3とから構成される。nビットm語の最短マ
スク出力機能付連想メモリ2は、n本の第2のビット線
6−1〜6−nに入力された検索データ105より計算
された最短マスク・データ5をn本の最短マスク線4−
1〜4−nに出力する。
【0109】2nビットm語の第2の連想メモリ3は、
入力されたnビットの検索データ105を内部に格納し
た記憶データと、そのマスク情報を加味して比較した結
果、m本の一致線104−1〜104−mの中で、マス
ク情報により検索対象から除外されたビット数が最も少
ない記憶データに対応する信号線のみに有効状態を出力
する。第2の連想メモリ3は、1語が2nビットになっ
ている点を除けば、従来の連想メモリ100と全く同様
に構成される。
【0110】第2の連想メモリ3は、2n本のビット線
101−1〜101−2nの中のn本のビット線101
−1〜101−nにnビットの検索データ105が入力
され、残りのn本のビット線101−(n+1)〜10
1−2nにnビットの最短マスク・データ5が入力され
る。2n本のビット線101−1〜101−2nは、そ
れぞれ、m個の連想メモリ・ワード106−1〜106
−mに入力される。各連想メモリ・ワード106−1〜
106−mは、それぞれ2n個のデータ・セル108、
マスク・セル110を有する。また、2n本のビット線
101−1〜101−2nの値を検索データとして検索
した結果をm本の一致線104−1〜104−mに出力
する。
【0111】最短マスク出力機能付連想メモリ2は最短
マスク線4−1〜4−nを出力する機能を有する点を除
けば、従来の連想メモリ100の構成と同様に構成され
る。nビットの検索データ105が入力されるn本の第
2のビット線6−1〜6−nは、それぞれm個の第2の
連想メモリ・ワード8−1〜8−mに入力される。各第
2の連想メモリ・ワード8−1〜8−mは、それぞれn
個の第2のデータ・セル9、第2のマスク・セル10を
有する。また、n本の第2のビット線6−1〜6−nの
値を検索データとして検索した結果をm本の第2の一致
線7−1〜7−mに出力する。n本の最短マスク線4−
1〜4−nは、それぞれm個の第2のマスク・セル10
−1−1〜10−1−n,・・・,10−m−1〜10
−m−nに対応している。たとえば最短マスク線4−1
は、第2のマスク・セル10−1−1,10−2−1,
・・・,10−m−1に対応している。
【0112】検索動作時、n本の最短マスク線4−1〜
4−nは、対応するm個の第2のマスク・セル10のう
ち、検索動作時に有効状態を出力している第2の一致線
7−1〜7−mに対応する第2のマスク・セル10のみ
の格納しているマスク情報がすべて有効状態のときのみ
有効状態となり、1個のマスク情報でも無効状態ならば
対応する最短マスク線4は無効状態となる。つまり論理
積を出力する。
【0113】たとえば、第2の一致線7−1と、第2の
一致線7−2のみが有効状態を出力しているとき、最短
マスク線4−1からは第2のマスク・セル10−1−1
の記憶状態と第2のマスク・セル10−2−1の記憶状
態を論理積した値を出力し、最短マスク線4−2からは
第2のマスク・セル10−1−2の記憶状態と第2のマ
スク・セル10−2−2の記憶状態を論理積した値を出
力し、以下同様に、最短マスク線4−nからは第2のマ
スク・セル10−1−nの記憶状態と第2のマスク・セ
ル10−2−nの記憶状態を論理積した値を出力する。
【0114】最短マスク出力機能付連想メモリ2のnビ
ットのm個の第2の連想メモリ・ワード8−1〜8−m
のn個の第2のデータ・セル9、n個の第2のマスク・
セル10には、それぞれnビットの記憶情報、およびそ
のマスク情報が検索に先立って予め格納されているもの
とする。また、第2の連想メモリ3のm個の連想メモリ
・ワード106は、それぞれ、最短マスク出力機能付連
想メモリ2のm個の第2の連想メモリ・ワード8に対応
しているものとする。
【0115】第2の連想メモリ3の2nビットのm個の
連想メモリ・ワードの2n個のデータ・セル108、お
よび2n個のマスク・セル110のうち、ビット線10
1−1〜101−nに対応するそれぞれn個のデータ・
セル108、マスク・セル110には、最短マスク出力
機能付連想メモリ2の対応する第2の連想メモリ・ワー
ドの第2のデータ・セル9および第2のマスク・セル1
0に格納したそれぞれnビットの記憶情報と同一のもの
をそれぞれ予め格納しておく。
【0116】また、連想メモリ・ワード106内の、ビ
ット線101−(n+1)〜101−2nに対応するn
個のデータ・セル108には、同一連想メモリ・ワード
内のビット線101−1〜101−nに対応するマスク
・セル110に格納したマスク情報と同一のものを記憶
情報として予め格納しておく。また、連想メモリ・ワー
ド106内の、ビット線101−(n+1)〜101−
2nに対応するn個のマスク・セル110には予め無効
状態を格納しておく。
【0117】次に、本発明のnビットm語の最短マスク
出力機能付連想メモリ2のブロック構成例を図6に示
す。以降、マスク情報の有効状態を“1”、無効状態を
“0”とする。最短マスク線4−1〜4−nの有効状態
を“1”、無効状態を“0”とする。また、第2の一致
線7−1〜7−mの有効状態を“1”、無効状態を
“0”とする。
【0118】m個の第2の連想メモリ・ワード8−1〜
8−mと、n本の第2のビット線6−1〜6−nと、m
本の第2のデータ・ワード線14−1〜14−mと、m
本の第2のマスク・ワード線15−1〜15−mと、m
本の第2の一致線7−1〜7−mと、n本の最短マスク
線4−1〜4−nと、n本の抵抗16−1〜16−nに
より構成される。第2の連想メモリ・ワード8−1〜8
−mは、それぞれn個の第2の連想メモリ・セル12で
構成される。また、第2の連想メモリ・セル12は、1
個の第2の連想データ・セル9と、1個の第2の比較器
11と、1個の第2のマスク・セル10と、1個の論理
ゲート13により構成される。
【0119】最短マスク出力機能付連想メモリ2は、図
10の従来の連想メモリ100と比較して、ビット線1
01−1〜101−nが第2のビット線6−1〜6−n
に、データ・ワード線102−1〜102−mが第2の
データ・ワード線14−1〜14−mに、マスク・ワー
ド線103−1〜103−mが第2のマスク・ワード線
103−1〜103−mに、一致線104−1〜104
−mが第2の一致線7−1〜7−mに、連想メモリ・ワ
ード106−1〜106−mが第2の連想メモリ・ワー
ド8−1〜8−mに対応し、連想メモリ・セル107が
第2の連想メモリ・セル12に対応し、また、データ・
セル108が第2のデータ・セル9に、比較器109が
第2の比較器11に、マスク・セル110が第2のマス
ク・セル10に、それぞれ対応し、全く同様な動作を行
う。
【0120】n本の最短マスク線4−1〜4−nは、m
個の第2の連想メモリ・ワード8−1〜8−mと接続さ
れ、対応する1個の抵抗16によりハイ・レベルにプル
・アップされている。たとえば、最短マスク線4−1
は、抵抗16−1に対応している。また、第2の連想メ
モリ・ワード8−1〜8−mを構成するn個の第2の連
想メモリ・セル12には、それぞれn本の最短マスク線
の中の対応する1本が接続されている。たとえば1番目
の第2の連想メモリ・ワード8−1を構成する1番目の
第2の連想メモリ・セル12−1−1には、最短マスク
線4−1が接続されている。
【0121】また、第2の連想メモリ・セル12の内部
の論理ゲート13は、第2のマスク・セル10の出力信
号と、対応する第2の一致線7−2を入力とし、ワイア
ード論理接続により対応する最短マスク線4に接続され
ている。論理ゲート13は、第2のマスク・セル10が
無効状態のマスク情報“0”を格納し、かつ対応する第
2の一致線7が有効状態“1”のときに、対応する最短
マスク線4に無効状態“0”を出力し、それ以外の場合
には最短マスク線4を開放状態とする。従って、最短マ
スク線4に接続されている対応するすべての論理ゲート
13のうち、一つでも無効状態“0”を出力していれば
最短マスク線4は無効状態“0”となり、それ以外の場
合は有効状態“1”となるようにワイアード論理接続さ
れていることになる。つまり、有効状態の第2の一致線
7に対応する第2のマスク・セル10に格納されたマス
ク情報がすべて有効状態“1”のときのみ、対応する最
短マスク線4が有効状態となるようなワイアードAND
論理を構成している。もちろん同様の論理動作となるよ
うに通常の論理ゲートで構成してもかまわない。以上の
構成により、図5の最短マスク出力機能付連想メモリ2
が実現できる。
【0122】図7は、本発明の第2の連想メモリ・セル
の構成例を示す回路図である。マスク情報の有効状態を
“1”、無効状態を“0”とする。最短マスク線4の有
効状態を“1”、無効状態を“0”とする。また、第2
の一致線7の有効状態を“1”、無効状態を“0”とす
る。図から分かるように、図2に示す本発明の連想メモ
リ・セルからマスク比較器とそれに付随するマスク一致
線を除いたものであり、データ・ワード線、一致線、マ
スク・ワード線、データ・セル、比較器、マスク・セル
および論理ゲートの働きは、図2に示すものと同様であ
るのでそれらに対する説明を割愛する。
【0123】次に、図8を用いて、本発明の連想メモリ
4を図12のネットワークルータ300−3に適用した
場合の動作を説明する。
【0124】最短マスク出力機能付連想メモリ2および
第2の連想メモリ3に格納するマスク情報の有効状態を
“1”、無効状態を“0”とする。最短マスク線4−1
〜4−8の有効状態を“1”、無効状態を“0”とす
る。また、第2の一致線7−1〜7−5、一致線104
−1〜104−5の有効状態を“1”、無効状態を
“0”とする。
【0125】8ビット5語の最短マスク出力機能付連想
メモリ2には、図13の従来の連想メモリ100と同様
に、ルータ300−3のネットワーク・アドレス(3.
*.*.*)以外の接続情報を記憶している。第2の連
想メモリ・ワード8−1には(1.*.*.*)を表現
するため2進数で、記憶データには(01.00.0
0.00)を、マスク情報として(00.11.11.
11)を格納してある。同様に第2の連想メモリ・ワー
ド8−2には(2.*.*.*)を、第2の連想メモリ
・ワード8−3には(1.2.2.*)を、第2の連想
メモリ・ワード8−4には(1.2.*.*)を、第2
の連想メモリ・ワード8−5には(2.3.3.*)を
格納してある。
【0126】第2の連想メモリ3の連想メモリ・ワード
106−1〜106−5が格納している16ビットの記
憶データ、16ビットのマスク情報において、ビット線
101−1〜101−8に対応するそれぞれ8ビットの
領域(以降は下位8ビットと称する)には、最短マスク
出力機能付連想メモリ2の対応する第2の連想メモリ3
に格納したそれぞれ8ビットの記憶データ、マスク情報
と同一のものを記憶する。
【0127】つまり、連想メモリ・ワード106−1の
下位8ビットには4進数で(1.*.*.*)を表現す
るため2進数で、記憶データには(01.00.00.
00)を、マスク情報として(00.11.11.1
1)を格納してある。同様に連想メモリ・ワード106
−2の下位8ビットには4進数で(2.*.*.*)
を、106−3の下位8ビットには4進数(1.2.
2.*)を、106−4の下位8ビットには4進数で
(1.2.*.*)を、106−5の下位8ビットには
4進数で(2.3.3.*)を格納してある。
【0128】また、第2の連想メモリ3の連想メモリ・
ワード106−1〜106−5が格納している16ビッ
トの記憶データ、16ビットのマスク情報において、ビ
ット線101−9〜101−16に対応するそれぞれ8
ビットの領域(以降は上位8ビットと称する)には、記
憶情報としては同一連想メモリ・ワード106−1〜1
06−5の下位8ビットに格納してあるマスク情報を格
納し、マスク情報としては8ビットすべて無効状態を格
納する。つまり、連想メモリ・ワード106−1の上位
8ビットには記憶データとして(00.11.11.1
1)を、マスク情報として(00.00.00.00)
を格納してある。同様に、連想メモリ・ワード106−
2の上位8ビットには記憶データとして(00.11.
11.11)を、マスク情報として(00.00.0
0.00)を、106−3の上位8ビットには記憶デー
タとして(00.00.00.11)を、マスク情報と
して(00.00.00.00)を、106−4の上位
8ビットには記憶データとして(00.00.11.1
1)を、マスク情報として(00.00.00.00)
を、106−5の上位8ビットには記憶データとして
(00.00.00.11)を、マスク情報として(0
0.00.00.00)を格納してある。
【0129】従って、16ビットの連想メモリ・ワード
106−1には2進数で(01.**.**.**.0
0.11.11.11)が格納されており、106−2
には2進数で(10.**.**.**.00.11.
11.11)が、106−3には2進数で(01.1
0.10.**.00.00.00.11)が、106
−4には2進数で(01.10.**.**.00.0
0.11.11)が、106−5には2進数で(10.
11.11.**.00.00.00.11)が、それ
ぞれ格納されている。
【0130】ここで、検索データ105としてPC30
1−1の4進数のネットワーク・アドレス(1.2.
2.3)を入力して検索動作を行った場合の動作を説明
する。
【0131】図13の従来の連想メモリ100の場合と
同様に、最短マスク出力機能付連想メモリ2の、第2の
連想メモリ・ワード8−3に格納されている4進表現の
(1.2.2.*)と、第2の連想メモリ・ワード8−
4に格納されている4進表現の(1.2.*.*)が一
致し、第2の一致線7−3と第2の一致線7−4の2本
が有効状態に従って“1”となり、残りの第2の一致線
7−1,7−2、および7−5は無効状態“0”とな
る。
【0132】従って、最短マスク線4−1からは、第2
のメモリワード8−3の最短マスク線4−1に対応する
マスク情報“0”と、第2のメモリワード8−4の最短
マスク線4−1に対応するマスク情報“0”との論理積
“0”を出力する。また、最短マスク線4−2からは、
第2のメモリワード8−3の最短マスク線4−2に対応
するマスク情報“0”と、第2のメモリワード8−4の
最短マスク線4−2に対応するマスク情報“0”との論
理積“0”を出力する。以降は同様に、最短マスク線4
−3からは“0”と“0”の論理積“0”が、最短マス
ク線4−4からは“0”と“0”の論理積“0”が、最
短マスク線4−5からは“0”と“1”の論理積“0”
が、最短マスク線4−6からは“0”と“1”の論理積
“0”が、最短マスク線4−7からは“1”と“1”の
論理積“1”が、最短マスク線4−3からは“1”と
“1”の論理積“1”が、それぞれ出力される。従っ
て、最短マスク・データ5として2進表現で“0000
0011”が出力される。
【0133】ビット線101−1〜101−8には、検
索データ105の2進表現“01101011”が、ビ
ット線101−9〜101−16には、最短マスク・デ
ータ5の2進表現で“00000011”が入力されて
いる。従って、ビット線101−1〜101−16には
“0110101100000011”が入力されるこ
とになる。このデータを第2の連想メモリ3で16ビッ
ト全体で検索を行うと、連想メモリ・ワード3の(0
1.10.10.**.00.00.00.11)のみ
が一致し、一致線104−3のみが有効状態を出力す
る。これにより、従来の連想メモリでは、4進表現で
(1.2.2.*)に対応する一致線104−3と、
(1.2.*.*)に対応する一致線104−4の両方
が有効状態になってしまったが、本発明の連想メモリ1
では、マスク情報により検索対象から除外される情報量
の少ない(1.2.2.*)に対応する一致線104−
3のみが有効状態になることがわかる。
【0134】上述のように、第二の実施の形態の連想メ
モリを使用すれば1クロックで最短マスク情報を持つワ
ードを選択できる。
【0135】次に、本発明の第一の実施の形態の連想メ
モリ1や第二の実施の形態の連想メモリ4を転送先ネッ
トワーク・アドレス計算に用いたルータの構成例を示す
ブロック図を図9に示す。ルータ300は、入力転送デ
ータ308を入力とし、出力転送データ309を出力す
る。入力転送データ308は、目的地ネットワーク・ア
ドレス311と、転送先ネットワーク・アドレス310
とデータ部312を有している。出力転送データ309
は、目的地ネットワーク・アドレス311と、第2の転
送先ネットワーク・アドレス313とデータ部312を
有している。
【0136】入力転送データ308の転送先ネットワー
ク・アドレス310は当然ルータ300のネットワーク
・アドレスとなっている。ルータ300は、目的地ネッ
トワーク・アドレス抽出部306と、連想メモリ1と、
エンコーダ314と、メモリ304と転送先ネットワー
ク・アドレス変更部307とにより構成される。
【0137】ここでは、図12のルータ300−3に適
用した場合において、ネットワーク・アドレス(3.
*.*.*)の機器から、ネットワーク・アドレス
(1.*.*.*)または(2.*.*.*)の機器に
転送する場合について説明する。図9では、マスク情報
の有効状態は“1”、無効状態は“0”である。また、
マスク一致線19−1〜19−5の有効状態は“1”、
無効状態は“0”である。
【0138】目的地ネットワーク・アドレス抽出部30
6は、入力転送データ308の目的地ネットワーク・ア
ドレス311を抽出し、検索データ105として、連想
メモリ1に入力する。
【0139】連想メモリ1にはルータ300−3のネッ
トワーク・アドレス(3.*.*.*)以外の接続情報
を記憶している。ワード1には(1.*.*.*)を表
現するため2進数で、記憶データには(01.00.0
0.00)を、マスク情報として(00.11.11.
11)を格納してある。
【0140】同様にワード2には(2.*.*.*)
を、ワード3には(1.2.2.*)を、ワード4には
(1.2.*.*)を、ワード5には(2.3.3.
*)を格納してある。ワード1からワード5に対応する
マスク一致線19−1〜19−5はエンコーダ314に
される。エンコーダ314はマスク一致線19−1〜1
9−5をエンコードした結果を、メモリ・アドレス信号
303としてメモリ304に出力する。
【0141】メモリ304には、連想メモリ1の各ワー
ドの記憶データ、マスク情報により構成されるネットワ
ーク・アドレスに対応するルータのネットワーク・アド
レスを同一のワードに記憶してある。たとえば、連想メ
モリのワード1にはネットワーク・アドレス(1.*.
*.*)が記憶されているが、これに対応するルータ3
00−1のネットワーク・アドレスがメモリ304の同
じくワード1に格納されている。同様にメモリ304の
ワード2にはルータ300−2のネットワーク・アドレ
スが、ワード3にはルータ300−6のネットワーク・
アドレスが、ワード4にはルータ300−4のネットワ
ーク・アドレスが、ワード5にはルータ300−7のネ
ットワーク・アドレスが格納されている。このようにし
て、メモリ304は、メモリ・アドレス信号303をリ
ード・アドレスとして指定される格納データを、メモリ
・データ信号305として出力する。
【0142】転送先ネットワーク・アドレス変更部30
7は、出力転送データ309の第2の転送先アドレス3
13を、メモリ・データ信号305の値に変更した後、
第2のネットワーク・アドレスに対応するネットワーク
機器に転送を行う。
【0143】たとえば入力転送データ308の目的地ネ
ットワーク・アドレス311が(1.2.2.3)の場
合、図13の従来の連想メモリ100と異なり、連想メ
モリ1で検索するとワード3の、マスク一致線19−3
のみが有効状態となる。これにより、エンコーダ302
はメモリ・アドレス303として“3”を出力し、メモ
リ304はルータ300−6のネットワーク・アドレス
をメモリ・データ信号305として出力する。転送先ネ
ットワーク・アドレス変更部により、出力転送データ3
09の第2の転送先ネットワーク・アドレス313を、
ルータ300−6のネットワーク・アドレスに変更し、
ルータ300−6に向けて出力転送データ309を転送
する。
【0144】このように、本発明の連想メモリは一つの
最適なワードを選択して直接出力するので、ソフトウエ
ア処理により数100クロックをかけて転送先ネットワ
ーク・アドレス計算を行っていた従来のルータに比べ
て、本発明のルータは、数100倍以上高速に転送先ネ
ットワーク・アドレス計算を行うことができる。
【0145】
【発明の効果】上述のように、本発明の連想メモリは、
同一の検索データに対して複数の記憶データが一致した
場合に、一致した記憶データの中で、マスク情報により
検索対象から除外されたビット数が最も少ない最短マス
ク情報に対応するワードがどれか一つを1クロックか2
クロックで高速に識別し、その情報を直接メモリ外に出
力できるという効果がある。
【0146】また、連想メモリの出力情報を他の記憶装
置への書き込み/読み出しアドレス生成に使用する場合
に、プライオリティ機能がないエンコーダを使用できる
ので、本発明の連想メモリを組み込めばシステムの小型
化や高速化が図れる。その上、従来のプライオリティ・
エンコーダのように予め決められた優先規則や連想メモ
リへのデータの格納順によって、最終的に選ばれるワー
ドが異なることがないので、本発明の連想メモリを使用
すればその中に書き込むデータの順番を考慮する必要が
なくなる。従って、大規模データを扱うシステムになる
ほど、本発明の連想メモリの効果が大になる。しかも、
従来の連想メモリの1.3倍程度の回路規模で実現でき
る。
【0147】また、本発明の連想メモリをネットワーク
・アドレス計算を行うルータに組み込めば、従来に比較
して数100倍以上高速に転送先ネットワーク・アドレ
ス計算を行うことができる。すなわち、従来のルータで
はソフトウエア処理により数100クロックをかけて最
適転送先ネットワーク・アドレス計算を行っていたが、
本発明の連想メモリは1〜2クロックで最適転送先を行
えるからである。
【0148】更に、本発明のルータをネットワークシス
テムでは、上述から分かるように、ルータ内の連想メモ
リに格納するユーザアドレスの順番をソートして決める
必要がないので、従来のようなユーザの登録・末梢に伴
うワードのソートが不要となり、ネットワーク通信不能
の時間が短縮される。この効果は、ユーザ数が多くなれ
ばなるほど大であり、特に、ユーザ数が急速に延びてい
るコンピュータネットワークシステムに適用すれば今後
効果は絶大になる。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態の連想メモリの構成
例を示すブロック図である。
【図2】本発明の第一の実施の形態の連想メモリ・セル
を説明する図である。
【図3】本発明の第一の実施の形態の連想メモリの動作
例を示す図である。
【図4】本発明の第一の実施の形態の連想メモリの動作
タイミングチャートである。
【図5】本発明の第二の実施の形態の連想メモリの構成
例を示すブロック図である。
【図6】本発明の最短マスク出力機能付連想メモリの構
成例を示すブロック図である。
【図7】本発明の最短マスク出力機能付連想メモリ・セ
ルの構成例を示す図である。
【図8】本発明の第二の実施の形態の連想メモリの動作
例を示す図である。
【図9】本発明の連想メモリを転送先ネットワーク・ア
ドレス計算に用いた本発明のルータの構成例を示すブロ
ック図である。
【図10】従来の連想メモリの一構成例を示すブロック
図である。
【図11】従来の連想メモリ・セルの一構成例を示す回
路図である。
【図12】ネットワークの構成例を示す接続図である。
【図13】従来の連想メモリをルータの転送先アドレス
計算に用いた場合の説明図である。
【符号の説明】
1 連想メモリ 2 最短マスク出力機能付連想メモリ 3 第2の連想メモリ 4−1〜4−n 最短マスク線 5 最短マスク・データ 6−1〜6−n 第2のビット線 7−1〜7−m 第2の一致線 8−1〜8−m 第2の連想メモリ・ワード 9−1−1〜9−m−n 第2のデータ・セル 10−1−1〜10−m−n 第2のマスク・セル 11−1−1〜11−m−n 第2の比較器 12−1−1〜12−m−n 第2の連想メモリ・セ
ル 13−1−1〜13−m−n 論理ゲート 14−1〜14−m 第2のデータ・ワード線 15−1〜15−m 第2のマスク・ワード線 16−1〜16−n 抵抗 17 nビット2入力1出力セレクタ 18−1−1〜18−m−n マスク比較器 19−1〜19−m マスク一致線 20−1〜20−m ラッチ 21 nビット・ラッチ 22−1〜22−n ラッチ出力線 23 選択信号 24 ラッチ制御信号 100 従来の連想メモリ 101−1〜101−n,101−(n+1)〜101
−2n ビット線 102−1〜102−m データ・ワード線 103−1〜103−m マスク・ワード線 104−1〜104−m 一致線 105 検索データ 106−1〜106−m 連想メモリ・ワード 107−1−1〜107−m−n 連想メモリ・セル 108−1−1〜108−m−n,108−1−(n+
1)〜108−m−2n データ・セル 109−1−1〜109−m−n 比較器 110−1−1〜110−m−n,110−1−(n+
1)〜110−m−2n マスク・セル 201 反転論理ゲートG1 202 反転論理ゲートG2 203 MOSトランジスタT1 204 MOSトランジスタT2 205 MOSトランジスタT3 206 MOSトランジスタT4 207 MOSトランジスタT5 208 MOSトランジスタT6 209 反転論理ゲートG3 210 反転論理ゲートG4 211 MOSトランジスタT7 212 MOSトランジスタT8 213 MOSトランジスタT9 214 MOSトランジスタT10 215 MOSトランジスタT11 216 MOSトランジスタT12 217 MOSトランジスタT13 300−1〜300−7 ルータ 301−1 PC 302 プライオリティ・エンコーダ 303 メモリ・アドレス信号 304 メモリ 305 メモリ・データ信号 306 目的地ネットワーク・アドレス抽出部 307 転送先ネットワーク・アドレス変更部 308 入力転送データ 309 出力転送データ 310 転送先ネットワーク・アドレス 311 目的地ネットワーク・アドレス 312 データ部 313 第2の転送先ネットワーク・アドレス

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 検索されるデータとそのマスクデータと
    を対にして格納するワードを複数有する連想メモリにお
    いて、外部から入力された検索データの1次検索の結果
    検索されるべきデータとして複数のワードが選出された
    際、当該選出された複数のワードに対応するマスクデー
    タ同士の論理演算を行う手段を設けた連想メモリ。
  2. 【請求項2】 請求項1に記載の連想メモリにおいて、
    2次検索として前記論理演算の結果を検索データとして
    前記選出された複数のワードに対応するマスクデータを
    検索し、前記論理演算の結果と前記マスクデータが一致
    したワードを選出する連想メモリ。
  3. 【請求項3】 請求項1に記載の連想メモリにおいて、
    2次検索として前記論理演算の結果を検索データとして
    前記ワードのマスクデータを検索し、前記1次検索で選
    出され且つ前記2次検索で前記論理演算の結果とマスク
    データが一致したワードを選出する連想メモリ。
  4. 【請求項4】 前記論理演算は論理積演算である請求項
    1乃至3に記載の連想メモリ。
  5. 【請求項5】 検索されるデータとそのマスクデータと
    を対にして格納する第1のワードを複数有し、外部から
    入力された検索データの検索の結果検索されるべきデー
    タとして複数の第1のワードが選出された際、当該選出
    された複数の第1のワードに対応するマスクデータ同士
    の論理演算を行う手段を有する第1の連想メモリと、前
    記検索されるデータとそのマスクデータを対として格納
    する第2のワードを複数有する第2の連想メモリを有
    し、前記第2のワードは前記第1の連想メモリのワード
    の2倍のビット数で構成され、前記第2の連想メモリの
    各検索されるデータおよびそのマスクデータは前記第1
    の連想メモリの対応するアドレスのワードに格納されて
    いる検索されるデータおよびそのマスクデータを格納し
    ている第1のビット群を有し、更に前記第2の連想メモ
    リの各検索されるデータは同じワードのマスクデータを
    格納している第2のビット群を有し、検索に際し、前記
    論理演算の結果を前記第2の連想メモリの前記第2のビ
    ット群へ入力し、前記検索データを前記第2の連想メモ
    リの第2のビット群へ入力し、前記第2の連想メモリの
    前記第2のワードの検索されるデータ中から前記検索デ
    ータのビット情報と前記演算結果のビット情報に一致す
    るワードを選択することを特徴とする連想メモリ。
  6. 【請求項6】 記憶情報の1ビットまたは複数ビットご
    とに検索対象から除外するか否かを、有効状態、無効状
    態により設定するマスク情報を記憶情報1語ごとに有す
    る連想メモリにおいて、一つまたは複数の記憶情報が検
    索データと一致したとき、検索データに対して一致した
    記憶情報に対応するマスク情報のすべての中で、検索対
    象から除外するよう設定された記憶情報のビット数が最
    小であるマスク情報を最短マスク信号線に出力する第1
    の検索手段と、検索データと一致する一つまたは複数の
    記憶情報の中で、そのマスク情報が最短マスク信号線に
    一致する記憶情報を識別する信号を出力する第2の検索
    手段とを有することを特徴とする連想メモリ。
  7. 【請求項7】 請求項6において、第1の検索手段が、
    記憶情報1語ごとに検索データとマスク情報を付加した
    該記憶データが一致するときに有効状態となる一致線を
    有し、かつ、一つまたは複数の記憶情報が該検索データ
    と一致したとき、一致した記憶データに対応するマスク
    情報のすべてに対して、マスク有効状態を真とする論理
    積演算を行った結果を最短マスク信号線として出力する
    最短マスク演算回路とを有する最短マスク出力機能付連
    想メモリにより構成されることを特徴とする連想メモ
    リ。
  8. 【請求項8】 請求項6において、第2の検索手段が、
    1語中にマスク情報を付加した記憶情報とマスク情報を
    検索対象として格納している従来の連想メモリに、前記
    第1の検索手段に入力した該検索データと前記第1の検
    索手段が出力する最短マスク信号を1語の検索データと
    して入力することにより構成されることを特徴とする連
    想メモリ。
  9. 【請求項9】 請求項7において、1語中のマスク情報
    の1ビットごとに、該語に対応する一致線が有効状態か
    つ該マスク情報のビットがマスク無効状態のときにマス
    ク無効状態を出力する第1の論理回路と、すべての語の
    マスク情報の同じビット位置に対応する前記論理回路の
    出力状態を入力としマスク有効状態を真とする論理積演
    算結果を前記ビット位置の最短マスク信号線に出力する
    第2の論理回路とにより構成される最短マスク出力回路
    を有することを特徴とする連想メモリ。
  10. 【請求項10】 1語中のマスク情報1ビットごとに、
    対応するビット位置の最短マスク信号線とマスク無効状
    電位との間に直列に挿入された第1のトランジスタと第
    2のトランジスタを有し、第1のMOSトランジスタは
    該語に対応する一致線が有効状態の時に導通状態、無効
    状態の時には開放状態となり、第2のMOSトランジス
    タは該マスク情報のビットが無効状態のときに導通状
    態、有効状態の時に開放状態となるよう、前記第1の論
    理回路を構成することを特徴とする請求項9の連想メモ
    リ。
  11. 【請求項11】 請求項1の第1の検索手段において、
    最短マスク信号検索データを格納する第1の記憶手段
    と、マスク情報を付加した記憶情報が外部からの検索情
    報と一致している語中の該マスク情報が第1の記憶手段
    の格納情報と一致しているか否かを第2の一致線に出力
    する一致検出手段とを有することで第2の検索手段の構
    成要素を第1の検索手段の構成要素と共有することを特
    徴とする連想メモリ。
  12. 【請求項12】 請求項10の一致検出手段において、
    外部からの検索情報と第1の記憶手段の出力信号とを選
    択し検索データとして入力する選択手段と、1語ごとに
    有する一致線の値を1語ごとに格納する第2の記憶手段
    と、1語ごとに前記マスク情報が検索データと比較した
    結果が一致し、かつ該語中の第2の記憶手段の格納して
    いる状態が有効状態の場合に第2の一致線に有効状態を
    出力する前記比較手段とを有することを特徴とする連想
    メモリ。
  13. 【請求項13】 請求項10の比較手段が、1語中のマ
    スク情報の1ビットごとに前記マスク情報が検索データ
    と比較した結果が不一致ならば無効状態を第2の一致線
    に出力するマスク比較手段と、格納している状態が無効
    状態ならば第2の一致線に無効状態を出力する該語中の
    第2の記憶手段とを有することを特徴とする連想メモ
    リ。
  14. 【請求項14】 請求項11の比較手段において、前記
    各マスク比較手段の出力と前記第2の記憶手段の出力に
    より第2の一致線に対して結線論理を構成することを特
    徴とする連想メモリ。
  15. 【請求項15】 記憶情報の1ビットまたは複数ビット
    ごとに検索対象から除外するか否かを、有効状態、無効
    状態により設定するマスク情報を記憶情報1語ごとに有
    する連想メモリに経路情報を格納するルータにおいて、
    一つまたは複数の経路情報が入力転送データの目的地ネ
    ットワーク・アドレスと一致したとき、目的地ネットワ
    ーク・アドレスに対して一致した経路情報に対応するマ
    スク情報のすべての中で、検索対象から除外するよう設
    定された経路情報のビット数が最小であるマスク情報を
    最短マスク信号線に出力する第1の検索手段と、前記目
    的地ネットワーク・アドレスと一致する一つまたは複数
    の経路情報の中で、そのマスク情報が最短マスク信号線
    に一致する経路情報を識別する一致信号を出力する第2
    の検索手段と、前記一致信号により前記入力転送データ
    の転送先アドレスを決定する手段と、前記入力転送デー
    タを前記転送先アドレスに転送する手段とを有すること
    を特徴とするルータ。
  16. 【請求項16】 1ビットまたは複数ビットごとに検索
    対象から除外するか否かを、その有効状態、無効状態に
    より設定するマスク情報を1語ごとに有する経路情報を
    複数格納する経路情報テーブルを有するルータにおい
    て、一つまたは複数の経路情報が入力転送データの目的
    地ネットワーク・アドレスと一致したとき、前記目的地
    ネットワーク・アドレスに対して一致した経路情報に対
    応するマスク情報のすべての中で、検索対象から除外す
    るよう設定された経路情報のビット数が最小であるマス
    ク情報を最短マスク信号として発生し、前記目的地ネッ
    トワーク・アドレスと一致する一つまたは複数の経路情
    報の中で、そのマスク情報が最短マスク信号に一致する
    記憶情報を識別する一致信号を発生し、前記一致信号に
    より前記入力転送データの転送先アドレスを決定し、前
    記入力転送データを前記転送先アドレスに転送すること
    を特徴とするルータ。
  17. 【請求項17】 請求項15または16に記載の前記ル
    ータを介してネットワークに接続された機器間でデータ
    通信を行うネットワークシステム。
JP23425097A 1997-08-29 1997-08-29 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ Expired - Fee Related JP3191737B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP23425097A JP3191737B2 (ja) 1997-08-29 1997-08-29 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
DE19839205A DE19839205A1 (de) 1997-08-29 1998-08-28 Assoziativspeicher mit einer Maskenfunktion zur Verwendung in einem Netzwerkrouter
KR10-1998-0035410A KR100429743B1 (ko) 1997-08-29 1998-08-29 네트워크라우터에사용하기위한마스크기능을갖는연상메모리
TW087114322A TW399210B (en) 1997-08-29 1998-08-29 Associative memory having mask function for use in network router
CN98117438A CN1124613C (zh) 1997-08-29 1998-08-31 一种用于网络路由器的具有掩码功能的相联存储器
US09/144,066 US6295576B1 (en) 1997-08-29 1998-08-31 Associative memory having a mask function for use in a network router

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23425097A JP3191737B2 (ja) 1997-08-29 1997-08-29 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ

Publications (2)

Publication Number Publication Date
JPH1173782A true JPH1173782A (ja) 1999-03-16
JP3191737B2 JP3191737B2 (ja) 2001-07-23

Family

ID=16968034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23425097A Expired - Fee Related JP3191737B2 (ja) 1997-08-29 1997-08-29 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ

Country Status (6)

Country Link
US (1) US6295576B1 (ja)
JP (1) JP3191737B2 (ja)
KR (1) KR100429743B1 (ja)
CN (1) CN1124613C (ja)
DE (1) DE19839205A1 (ja)
TW (1) TW399210B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001097229A1 (fr) * 2000-06-16 2001-12-20 Terminus Technology Limited Memoire associative, methode d'extraction, routeur et systeme de reseau
JP2002304891A (ja) * 2001-04-05 2002-10-18 Fujitsu Ltd 連想記憶装置
WO2002091386A1 (fr) * 2001-04-25 2002-11-14 Terminus Technology Limited Memoire associative, procede de recherche dans ladite memoire, dispositif de reseau et systeme de reseau
WO2003010774A1 (fr) * 2001-07-24 2003-02-06 Terminus Technology Limited Systeme de memoire associative, dispositif reseau et systeme reseau
US6639819B2 (en) 2001-05-18 2003-10-28 Fujitsu Limited Associative memory apparatus and routing apparatus
US6910105B2 (en) 2000-08-10 2005-06-21 Terminus Technology Limited Associative memory having a mask function for use in a network router
US7397683B2 (en) 2002-05-30 2008-07-08 Terminus Technology Limited Associative memory having a mask function for use in a network router

Families Citing this family (54)

* 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
US7249149B1 (en) 1999-08-10 2007-07-24 Washington University Tree bitmap data structures and their use in performing lookup operations
US6560610B1 (en) 1999-08-10 2003-05-06 Washington University Data structure using a tree bitmap and method for rapid classification of data in a database
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
US6725326B1 (en) 2000-08-15 2004-04-20 Cisco Technology, Inc. Techniques for efficient memory management for longest prefix match problems
FR2813698B1 (fr) * 2000-09-04 2002-11-29 St Microelectronics Sa Cellule cache a masquage
US6606681B1 (en) 2001-02-23 2003-08-12 Cisco Systems, Inc. Optimized content addressable memory (CAM)
US6477071B1 (en) * 2001-05-07 2002-11-05 Switchcore Ab Method and apparatus for content addressable memory with a partitioned match line
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
US7065083B1 (en) 2001-10-04 2006-06-20 Cisco Technology, Inc. Method and apparatus for dynamically generating lookup words for content-addressable memories
US6775737B1 (en) 2001-10-09 2004-08-10 Cisco Technology, Inc. Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
KR100545365B1 (ko) * 2001-12-10 2006-01-24 카부시키가이샤 테르미나스 테크놀로지 연상메모리 및 그 검색방법 및 네트워크 장치 및 네트워크시스템
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
US6970971B1 (en) * 2002-01-08 2005-11-29 Cisco Technology, Inc. Method and apparatus for mapping prefixes and values of a hierarchical space to other representations
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
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
US7336660B2 (en) * 2002-05-31 2008-02-26 Cisco Technology, Inc. Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics
US7558775B1 (en) 2002-06-08 2009-07-07 Cisco Technology, Inc. Methods and apparatus for maintaining sets of ranges typically using an associative memory and for using these ranges to identify a matching range based on a query point or query range and to maintain sorted elements for use such as in providing priority queue operations
US7299317B1 (en) 2002-06-08 2007-11-20 Cisco Technology, Inc. Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure
US7313667B1 (en) 2002-08-05 2007-12-25 Cisco Technology, Inc. Methods and apparatus for mapping fields of entries into new values and combining these mapped values into mapped entries for use in lookup operations such as for packet processing
US7689485B2 (en) * 2002-08-10 2010-03-30 Cisco Technology, Inc. Generating accounting data based on access control list entries
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
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
EP1530763B1 (en) * 2002-08-10 2018-04-18 Cisco Technology, Inc. Associative memory with enhanced capabilities
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
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
US7177978B2 (en) * 2002-08-10 2007-02-13 Cisco Technology, Inc. Generating and merging lookup results to apply multiple features
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
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
US6717946B1 (en) 2002-10-31 2004-04-06 Cisco Technology Inc. Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory
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
US7024515B1 (en) 2002-11-15 2006-04-04 Cisco Technology, Inc. Methods and apparatus for performing continue actions using an associative memory which might be particularly useful for implementing access control list and quality of service features
US7496035B1 (en) 2003-01-31 2009-02-24 Cisco Technology, Inc. Methods and apparatus for defining flow types and instances thereof such as for identifying packets corresponding to instances of the flow types
US7415472B2 (en) * 2003-05-13 2008-08-19 Cisco Technology, Inc. Comparison tree data structures of particular use in performing lookup operations
US7415463B2 (en) * 2003-05-13 2008-08-19 Cisco Technology, Inc. Programming tree data structures and handling collisions while performing lookup operations
US7197597B1 (en) 2003-07-22 2007-03-27 Cisco Technology, Inc. Performing lookup operations in a content addressable memory based on hashed values of particular use in maintaining statistics for packet flows
US7941606B1 (en) 2003-07-22 2011-05-10 Cisco Technology, Inc. Identifying a flow identification value mask based on a flow identification value of a packet
US7080195B2 (en) * 2003-10-22 2006-07-18 Cisco Technology, Inc. Merging indications of matching items of multiple groups and possibly associated with skip conditions to identify winning entries of particular use for implementing access control lists
US7240149B1 (en) 2003-11-06 2007-07-03 Cisco Technology, Inc. Multiple branch operations in an associative memory
US7249228B1 (en) 2004-03-01 2007-07-24 Cisco Technology, Inc. Reducing the number of block masks required for programming multiple access control list in an associative memory
US7478109B1 (en) 2004-03-15 2009-01-13 Cisco Technology, Inc. Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US7480255B2 (en) * 2004-05-27 2009-01-20 Cisco Technology, Inc. Data structure identifying for multiple addresses the reverse path forwarding information for a common intermediate node and its use
US7290083B2 (en) * 2004-06-29 2007-10-30 Cisco Technology, Inc. Error protection for lookup operations in content-addressable memory entries
GB2420883A (en) * 2004-12-02 2006-06-07 3Com Corp Examining data patterns according to rules stored in content addressable memories
US7219195B2 (en) * 2004-12-21 2007-05-15 Cisco Technology, Inc. Associative memory with invert result capability
US7523251B2 (en) * 2005-01-18 2009-04-21 Cisco Technology, Inc. Quaternary content-addressable memory
US7689889B2 (en) * 2006-08-24 2010-03-30 Cisco Technology, Inc. Content addressable memory entry coding for error detection and correction
TW200832409A (en) * 2007-01-19 2008-08-01 Univ Nat Chiao Tung Butterfly match-line structure and search method implemented thereby
US8280901B2 (en) * 2008-01-03 2012-10-02 Masterfile Corporation Method and system for displaying search results
US9697910B1 (en) * 2016-03-30 2017-07-04 International Business Machines Corporation Multi-match error detection in content addressable memory testing
CN110703740B (zh) * 2019-10-28 2022-06-17 深圳市元征科技股份有限公司 一种汽车诊断数据处理方法、装置及计算机存储介质
CN113724764B (zh) * 2021-09-01 2023-11-10 北京航空航天大学 基于非易失存储器的乘法装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01220293A (ja) 1988-02-29 1989-09-01 Nec Corp 連想記憶回路
US5440715A (en) * 1990-06-27 1995-08-08 Advanced Micro Devices, Inc. Method and apparatus for expanding the width of a content addressable memory using a continuation bit
JPH087580A (ja) 1994-06-23 1996-01-12 Hitachi Ltd 半導体記憶装置および情報処理装置
US5649149A (en) * 1994-08-01 1997-07-15 Cypress Semiconductor Corporation Integrated content addressable memory array with processing logical and a host computer interface
JP3152109B2 (ja) * 1995-05-30 2001-04-03 日本ビクター株式会社 オーディオ信号の圧縮伸張方法
JPH10112728A (ja) 1996-10-04 1998-04-28 Oki Electric Ind Co Ltd 連想メモリ検索システム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001097229A1 (fr) * 2000-06-16 2001-12-20 Terminus Technology Limited Memoire associative, methode d'extraction, routeur et systeme de reseau
EP1300854A4 (en) * 2000-06-16 2006-02-01 Terminus Technology Ltd ASSOCIATIVE MEMORY, EXTRACTION METHOD, ROUTER AND NETWORK SYSTEM
US6910105B2 (en) 2000-08-10 2005-06-21 Terminus Technology Limited Associative memory having a mask function for use in a network router
JP2002304891A (ja) * 2001-04-05 2002-10-18 Fujitsu Ltd 連想記憶装置
WO2002091386A1 (fr) * 2001-04-25 2002-11-14 Terminus Technology Limited Memoire associative, procede de recherche dans ladite memoire, dispositif de reseau et systeme de reseau
EP1385173A1 (en) * 2001-04-25 2004-01-28 Terminus Technology Limited Associative memory, method for searching the same, network device, and network system
US6956756B2 (en) 2001-04-25 2005-10-18 Terminus Technology Limited Associative memory, method for searching the same, network device, and network system
EP1385173A4 (en) * 2001-04-25 2005-10-26 Terminus Technology Ltd ASSOCIATIVE MEMORY, HIS SEARCH, NETWORK DEVICE AND NETWORK SYSTEM METHOD
US7397682B2 (en) 2001-04-25 2008-07-08 Terminus Technology Limited Associative memory having a mask function for use in network devices and network system
US6639819B2 (en) 2001-05-18 2003-10-28 Fujitsu Limited Associative memory apparatus and routing apparatus
WO2003010774A1 (fr) * 2001-07-24 2003-02-06 Terminus Technology Limited Systeme de memoire associative, dispositif reseau et systeme reseau
US7397683B2 (en) 2002-05-30 2008-07-08 Terminus Technology Limited Associative memory having a mask function for use in a network router

Also Published As

Publication number Publication date
KR19990024040A (ko) 1999-03-25
JP3191737B2 (ja) 2001-07-23
DE19839205A1 (de) 1999-03-04
TW399210B (en) 2000-07-21
CN1124613C (zh) 2003-10-15
US6295576B1 (en) 2001-09-25
CN1212436A (zh) 1999-03-31
KR100429743B1 (ko) 2004-06-16

Similar Documents

Publication Publication Date Title
JP3191737B2 (ja) ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
JP3593920B2 (ja) 連続検索動作可能な最短マスク出力機能付連想メモリ
TW200401206A (en) Enhanced multiway radix tree and related methods
US6766317B2 (en) Range check cell and a method for the use thereof
JP2000353388A (ja) 内容参照可能メモリの改良
WO2002091386A1 (fr) Memoire associative, procede de recherche dans ladite memoire, dispositif de reseau et systeme de reseau
US7386660B2 (en) CAM with automatic writing to the next free address
JP3845845B2 (ja) 連想メモリ・システムおよびネットワーク機器およびネットワーク・システム
US7155565B2 (en) Automatic learning in a CAM
JPH11102589A (ja) 連想メモリモジュール
JP2004046988A (ja) 連想メモリ装置及びそれを用いた中継装置
JP2000030469A (ja) 連想メモリセル及び連想メモリ
Devi et al. Low Energy Asynchronous CAM Based On Reordered Overlapped Search Mechanism
US20060062037A1 (en) Longest match detection in a CAM
JPH11284658A (ja) 最長一致検索装置
US7337267B1 (en) Hierarchical, programmable-priority content addressable memory system
WO2003050820A1 (fr) Memoire associative et son procede de recherche, routeur et systeme reseau
JP3531105B2 (ja) 連想メモリおよびその検索方法およびルータおよびネットワークシステム
JP3845814B2 (ja) 連想メモリとその検索方法及びルータとネットワークシステム
JP3636382B2 (ja) 連想メモリ
JP3795043B2 (ja) 連想メモリおよびその検索方法およびルータおよびネットワークシステム
US7257671B2 (en) Content addressable memory capable of changing priority in priority encoder
JPH05101682A (ja) 内容アドレス式メモリ
JP3202899B2 (ja) 連想メモリ
JP2002111718A (ja) 経路検索装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010424

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090525

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090525

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees