JPWO2002091386A1 - 連想メモリとその検索方法およびネットワーク機器およびネットワーク・システム - Google Patents
連想メモリとその検索方法およびネットワーク機器およびネットワーク・システム Download PDFInfo
- Publication number
- JPWO2002091386A1 JPWO2002091386A1 JP2002588556A JP2002588556A JPWO2002091386A1 JP WO2002091386 A1 JPWO2002091386 A1 JP WO2002091386A1 JP 2002588556 A JP2002588556 A JP 2002588556A JP 2002588556 A JP2002588556 A JP 2002588556A JP WO2002091386 A1 JPWO2002091386 A1 JP WO2002091386A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- search
- associative memory
- word
- primary
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 649
- 238000000034 method Methods 0.000 title claims description 13
- 238000012546 transfer Methods 0.000 claims description 292
- 230000036961 partial effect Effects 0.000 claims description 58
- 238000004891 communication Methods 0.000 claims description 12
- 239000000470 constituent Substances 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 3
- 230000005764 inhibitory process Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 53
- 230000006870 function Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 11
- 238000000605 extraction Methods 0.000 description 11
- 230000002829 reductive effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、連想メモリおよびその検索方法およびネットワーク機器およびネットワーク・システムに関する。特に検索マスク機能を有する連想メモリとその検索方法およびそれを用いたネットワーク機器およびネットワーク・システムに関する。
背景技術
従来のコンピュータ・ネットワーク・システムに用いられるネットワーク機器には、コンピュータ・ネットワーク・システムの安全性を確保するために、次に示すように転送可否を計算する機能が不可欠である。
従来のコンピュータ・ネットワークの構成の接続例を図33に示す。ネットワークに参加しているユーザ機器(例えばコンピュータ端末など)は、他のユーザ機器と識別するために、その機器がネットワークに参加するときに、あらかじめ決められた規則に従って特定のネットワーク・アドレスを割り当てられる。ここではネットワーク・アドレスは複数桁の数値、例えば3桁の数値(a.b.c)で表現されるものとして説明する。また、あらかじめ決められた規則は、例えばネットワーク・アドレスの先頭の数値でイギリス、ドイツ、日本などの国を示し、第2番目の数値で国の中の都市名を示し、更に第3番目の数値で都市の中の企業名を示す、というように階層構造をとっている。以降、この階層をセグメントと呼ぶこととする。図33においては、セグメントの階層構造を模擬的に示したものである。図において太線で囲まれた1つの矩形が1つのセグメントである。図33では、ネットワーク・アドレスの先頭の数値が1であるセグメント1と、先頭の数値が2であるセグメント2と、先頭の数値が3であるセグメント3が、最上位のセグメントとして存在している。セグメント1の下の階層に、上位2つの数値が1.2であるネットワーク・アドレスを持つセグメント4と、上位2つの数値が1.3であるネットワーク・アドレスを持つセグメント5とがあり、セグメント4の中にネットワーク・アドレス1.2.6を持つユーザ機器PC401−1が接続されている。セグメント2の下の階層に、上位2つの数値が2.3であるネットワーク・アドレスを持つセグメント6があり、セグメント6の中にネットワーク・アドレス2.3.4を持つユーザ機器PC401−2とネットワーク・アドレス2.3.5を持つユーザ機器PC401−3とが接続されている。また、セグメント3の下の階層に、上位2つの数値が3.5であるネットワーク・アドレスを持つセグメント7がある。図に例示されているアドレスにおいて、*はドント・ケアを意味する。
これら各ネットワーク・アドレスは、その各桁を8進数で表現した全体で9ビットのビット列で表現されるものと仮定する。例えば、ネットワーク・アドレス(1.2.*)はビット列(001.010.000)で表現される。以降、この表現のビット列を記憶データと呼ぶ。ここで、ネットワーク・アドレスの中の*はドント・ケアであるので、対応する記憶データ(001.010.000)のビット列の上位6ビットが有効であり、それ以下のビットは無効であることを示す必要がある。そこで、マスク情報と呼ばれる情報を記憶データと対にして記憶させている。以降、この対を構造化データと呼ぶ。前記の例では、ビット列(111.111.000)で表現される。ここで、“1”がマスク無効状態を、“0”がマスク有効状態を示している。
各セグメントは、ネットワークに参加しているユーザ機器間の通信データを転送するためにネットワーク機器、例えばルータを、有している。図33の接続例では、セグメント1はネットワーク機器400−1を、セグメント2はネットワーク機器400−2を、セグメント3はネットワーク機器400−3を、セグメント4はネットワーク機器400−4を、セグメント5はネットワーク機器400−5を、セグメント6はネットワーク機器400−6を、セグメント7はネットワーク機器400−7を、それぞれ有している。また、図33の接続例では、各ネットワーク機器はそのセグメント直下のネットワーク機器またはユーザ機器と接続されている。さらに、ネットワーク機器400−1は、ネットワーク機器400−2、ネットワーク機器400−3,およびネットワーク機器400−6とも接続している。
各セグメントが有するネットワーク機器は、そのネットワーク機器に接続されているユーザ機器または他のネットワーク機器から入力された通信データに対して、通信データに付随する送出元ネットワーク・アドレスと宛先ネットワーク・アドレスおよびあらかじめ設定されている転送規則を基に転送の可否を計算する機能と、前記宛先アドレスとネットワーク機器の接続関係を基に最適な転送ルートを計算し、転送先ネットワーク・アドレスを生成する機能を有し、通信データの転送を制御する。
ここで図33において宛先ネットワーク・アドレスがPC401−2に対応する(2.3.4)である通信データを、ネットワーク機器400−1が転送する場合、図から明らかに分かるように、ネットワーク・アドレス(2.*.*)に対応するネットワーク機器400−2に転送するよりも、ネットワーク・アドレス(2.3.*)に対応するネットワーク機器400−6に転送する方が、最適である。つまり、宛先ネットワーク・アドレスとマスク情報を考慮して一致するネットワーク・アドレスに対応するネットワーク機器の中で、そのネットワーク・アドレスにおいてマスク有効状態のビット数が最も少ないマスク情報を持つ、ネットワーク機器を選ぶのが最適である。
また本例で説明する、コンピュータ・ネットワークの転送規則の設定例を表1(a)に示す。
規則1としてセグメント4内部からセグメント2内部への転送を許可する。規則2としてセグメント1内部からセグメント3内部への転送を許可する。規則3としてセグメント4内部からセグメント6内部への転送を拒絶する。規則4としてセグメント4内部のPC401−1からセグメント6内部のPC401−2への転送を許可する。規則5としてセグメント1内部からセグメント6内部のPC401−3への転送を拒絶する。送出先ネットワーク・アドレスと宛先ネットワーク・アドレスをそれぞれ記憶データとマスク情報の組で表現した場合、表1(a)の転送規則は、表1(b)のように記述できる。これらの転送規則は、コンピュータ・ネットワーク・システムの安全性を確保するために必要である。表1(a)の転送規則の場合、セグメント4からセグメント6への転送は、PC401−1からPC401−2への転送のみを許可し、他はすべて拒絶することにより、例えばPC401−3に格納されている重要なデータを不正な閲覧、複写、改竄、消去などから守ることができる。
このように、各ユーザ機器同士を直接通信回線で接続するのではなくネットワーク機器により通信データの転送を制御して通信を行うことにより、有限の通信回線を、安全性を確保しながら効率よく使用している。
次に図面を参照して、従来のネットワーク機器の説明を行う。図34は従来のネットワーク機器の一構成例を示すブロック図である。図34では従来のネットワーク機器422について、図33のネットワーク機器400−1に適用した場合を例にして、その構成と動作を説明する。
ネットワーク機器422は、入力転送データ402を入力とし、出力転送データ403を出力する。入力転送データ402は、送出元ネットワーク・アドレス404と、転送先ネットワーク・アドレス405と、宛先ネットワーク・アドレス406と、データ部407を有している。出力転送データ403は、送出元ネットワーク・アドレス404と、第2の転送先ネットワーク・アドレス408と、宛先ネットワーク・アドレス406と、データ部407を有している。図34では従来のネットワーク機器422を、図33のネットワーク機器400−1に適用した場合を例にして説明するので、入力転送データ402の転送先ネットワーク・アドレス405は当然ネットワーク機器400−1のネットワーク・アドレスとなっている。
ネットワーク機器422は、送出元ネットワーク・アドレス抽出部409と、宛先ネットワーク・アドレス抽出部410と、連想メモリ101と、CPU413と、エンコーダ414と、メモリ416と、転送先ネットワーク・アドレス変更部418と、データ転送部421により構成される。
送出元ネットワーク・アドレス抽出部409は、入力転送データ402の送出元ネットワーク・アドレス404を送出元ネットワーク・アドレス情報411として抽出し、CPU413に入力する。宛先ネットワーク・アドレス抽出部410は、入力転送データ402の宛先ネットワーク・アドレス406を宛先ネットワーク・アドレス情報412として抽出し、連想メモリ101とCPU413に入力する。
ネットワーク機器422には、ネットワーク中でネットワーク機器422に接続されているネットワーク機器の中で、自分自身が属するセグメントの外部にあるネットワーク機器の属するセグメントのネットワーク・アドレスを、連想メモリ101の連想メモリ・ワード102にそれぞれ格納している。図34では従来のネットワーク機器422を、図33のネットワーク機器400−1に適用した場合を例にして説明しているので、連想メモリ・ワード102−1には、ネットワーク機器400−2が属するセグメント2のネットワーク・アドレス(2.*.*)を前述のように記憶データ(010.000.000)とマスク情報(111.000.000)の対で表現される構造化データの形式で記憶している。同様に、連想メモリ・ワード102−2にはネットワーク機器400−6が属するセグメント6のネットワーク・アドレス(2.3.*.)を、連想メモリ・ワード103−3にはネットワーク機器400−3が属するセグメント3のネットワーク・アドレス(3.*.*)を記憶している。連想メモリ101は、通常のメモリと同様にアドレスを指定して記憶データの書き込み、読み出しを行う機能のほかに、入力した宛先ネットワーク・アドレス情報412と、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する一致線105−1〜105−3を有効状態にする機能を有している。連想メモリ101としては、例えば、特願2000−181406がある。
連想メモリ101が出力した一致線105−1〜105−3はエンコーダ414によりメモリ・アドレス信号415に符号化される。メモリ416には、連想メモリ101の各連想メモリ・ワードに格納されている記憶データ、マスク情報により構成されるセグメントのネットワーク・アドレスに対応するネットワーク機器のネットワーク・アドレスを、連想メモリ101の格納アドレスと同一のアドレスのワードに記憶させてある。たとえば、連想メモリ101の連想メモリ・ワード102−1にはアドレス(2.*.*)が記憶されているが、これに対応する図33のネットワーク機器400−2のネットワーク・アドレスがメモリ416のワード1に格納されている。同様にメモリ416のワード2にはネットワーク機器400−6のアドレスが、ワード3にはネットワーク機器400−3のアドレスが格納されている。メモリ416はメモリ・アドレス信号415をリード・アドレスとして指定される格納データを、メモリ・データ信号417として出力する。
転送先ネットワーク・アドレス変更部418は、入力転送データ402の転送先ネットワーク・アドレス405をメモリ・データ信号417の値に変更することにより変更済転送データ419を生成し、データ転送部421に入力する。CPU413は、送出元ネットワーク・アドレス情報411,宛先ネットワーク・アドレス情報412に対して、表1(b)に示す転送規則を基に転送の可否を判定し、判定結果を転送制御信号420としてデータ転送部421に入力する。データ転送部421は、転送制御信号420が転送を許可していれば変更済転送データ419を出力転送データ403として出力し、転送制御信号420が転送を拒絶していれば出力しない。
例えば入力転送データ402の送出元ネットワーク・アドレス404が(1.2.3)、宛先ネットワーク・アドレス406が(3.5.6)の場合、連想メモリ101での検索動作終了時には、連想メモリ・ワード102−3が格納している(3.*.*)に対応する一致線105−3が有効状態を出力する。これによりエンコーダ414はメモリ・アドレス415として“3”を出力し、メモリ416はネットワーク機器400−3のネットワーク・アドレスをメモリ・データ信号417として出力する。転送先ネットワーク・アドレス変更部418により、入力転送データ402の転送先ネットワーク・アドレス405を、ネットワーク機器400−3のネットワーク・アドレスに変更しデータ転送部421に変更済転送データ419として入力する。送出元ネットワーク・アドレス情報411が(1.2.3),宛先ネットワーク・アドレス情報412が(3.5.6)であるのでCPU413は、転送規則2を適用し、転送許可状態の転送制御信号420をデータ転送部421に入力する。これによりデータ転送部421は、変更済転送データ419を出力転送データ403としてネットワーク機器400−3に向けて転送する。ネットワーク機器400−3は転送されてきたデータに基づいて上述したのと同様な動作を行い、データは次々と最適な経路のネットワーク機器に安全性を確保しながら転送され続け、最終的に宛先ネットワーク・アドレス(3.5.6)を有するユーザ機器に転送されることができる。
[従来の連想メモリの説明]
図28は、従来の連想メモリの一構成例を示すブロック図である。連想メモリ101は、nビット2入力1出力セレクタ123と、nビットm語の連想メモリ・ワード102−1〜102−mと、nビット・ラッチ121と、制御回路130と、論理ゲート116−1〜116−nを有している。j番目の連想メモリ・ワード102−jは、n個の連想メモリ・セル107−j−1〜107−j−nを備えている。j番目の連想メモリ・ワード102−jには、対応するデータ・ワード線103−jと、マスク・ワード線106−jと、および比較制御信号104が入力のために接続され、対応する一致線105−j、およびn本の一致データ中間論理線114−1〜114−nが出力のために接続され、n本のビット線113−1〜113−nが入出力のために接続されている。
j番目の連想メモリ・ワード102−jのkビット目の連想メモリ・セル107−j−kには、対応するデータ・ワード線103−jと、マスク・ワード線106−jと、および比較制御信号104が入力のために接続され、対応する一致線105−j、および一致データ中間論理線114−kが出力のために接続され、ビット線113−kが入出力のために接続されている。
連想メモリ・セル107−j−kは、ビット線113−kを介して外部から入力される記憶データの対応するビット情報を格納するデータ・セル108−j−kと、データ・セル108−j−kに記憶されたビット情報と外部からビット線113−kを介して入力される情報とを比較する比較器110−j−kと、外部からビット線113−kを介して入力されるマスク情報の対応するビット情報を格納するマスク・セル109−j−kと、および論理ゲート111−j−kとを備えている。ここで、マスク・セル109−j−kに格納されたビット情報がマスク有効状態の場合には、対応するデータ・セル108−j−kには、記憶データの無効状態を格納する。
なお、本例では、マスク情報のマスク有効状態を“0”、マスク無効状態を“1”とし、記憶データの有効状態を“1”、無効状態を“0”とする。記憶データと同様に、一致データ論理和線117−1〜117−nの有効状態を“1”、無効状態を“0”とする。一致線105−1〜105−mの有効状態を“1”、無効状態を“0”とする。
データ・セル108−j−kは、対応するデータ・ワード線103−jが有効状態の場合、対応するビット線113−kに書き込みデータがドライブされていれば記憶データとして格納し、対応するビット線113−kがドライブされていなければ格納している記憶データを対応するビット線113−kに出力する。対応するデータ・ワード線103−jが無効状態ならば、ビット線113−kに対してなんら操作は行わない。また、対応するデータ・ワード線103−jの値にかかわらず、格納している記憶データを同一の連想メモリ・セル107−j−kの中の比較器110−j−kと論理ゲート111−j−kに出力する。
マスク・セル109−j−kは、対応するマスク・ワード線106−jが有効状態の場合、対応するビット線113−kに書き込みデータがドライブされていれば書き込みデータをマスク情報として格納し、対応するビット線113−kがドライブされていなければ、格納しているマスク情報を対応するビット線113−kに出力する。対応するマスク・ワード線106−jが無効状態ならば、ビット線113−kに対してなんら操作は行わない。また、対応するマスク・ワード線106−jの値にかかわらず、格納しているマスク情報を同一の連想メモリ・セル107−j−kの中の比較器110−j−kに出力する。
一致線105−1〜105−mは、検索動作の開始前には、ハイ・レベルにプリ・チャージされ、有効状態“1”になっているものとする。
比較器110−j−kは、対応するビット線113−kと、それに同一の連想メモリ・セル107−j−kの中のデータ・セル108−j−kに格納されている記憶データと、マスク・セル109−j−kに格納されているマスク情報と、および比較制御信号104を入力とする。比較器110−j−kは、比較制御信号104が無効状態“0”かつマスク情報がマスク有効状態“0”ならば、対応する一致線105−jを解放状態にし、それ以外の場合には、ビット線113−kの値と記憶データが一致するならば対応する一致線105−jを開放状態にし、一致しないならば無効状態“0”を出力する。連想メモリ・ワード102−jの中のn個の比較器110−j−1〜110−j−nがすべて一致線105−jを開放状態にしているときに、一致線105−jは有効状態“1”となり、それ以外の場合には無効状態“0”となる、一致線105の有効状態“1”を真としたワイアードAND論理接続を構成している。つまり、検索動作時には、比較制御信号104が無効状態“0”かつマスク情報がマスク有効状態“0”のために比較対象から除外されたビットを除いて、連想メモリ・ワード102−jが格納している記憶データとビット線113−1〜113−nが完全に一致する場合に限り、一致線105−jは有効状態“1”となり、それ以外の場合は無効状態“0”となる。
論理ゲート111−j−kは、同一の連想メモリ・ワード102−jの中の一致線105−jが有効状態“1”かつ、同一の連想メモリ・セル107−j−kの中のデータ・セル108−j−kに格納された記憶データが有効状態のときに、対応する一致データ中間論理線114−kに“0”を出力し、それ以外の場合には開放状態にする。ここで本例では記憶データの有効状態が“1”であるので、データ・セル108−j−kに格納された記憶データが“1”かつ一致線105−jが“1”のときに、対応する一致データ中間論理線114−kに“0”を出力し、それ以外の場合には解放状態を出力する。
各一致データ中間論理線114−kは、抵抗115−kによりプル・アップされており、対応するm個の論理ゲート111−1−k〜111−m−kとワイアード論理接続を構成している。したがって、接続されているm個の論理ゲート111−1−k〜111−m−kがすべて一致データ中間論理線114−kを開放状態にしているときに、一致データ中間論理線114−kは“1”となり、それ以外の場合には“0”となる。つまり“1”を真としたワイアードAND接続となっている。
論理ゲート116−1〜116−nは、対応する一致データ中間論理線114−1〜114−nの論理状態を反転し、一致データ論理和線117−1〜117−nとして出力する。
したがって、一致データ論理和線117−kには、m個の論理ゲート111−1−k〜111−m−kと一致データ中間論理線114−k、抵抗115−k、および論理ゲート116−kにより、検索動作時に有効状態“1”となっている一致線105−1〜105−mを有するすべての連想メモリ・セル107−1−k〜107−m−kの中のデータ・セル108−1−1〜108−m−kに格納されている記憶データどうしを、記憶データの有効状態を真とした論理和演算した結果が得られることになる。本例では、記憶データの有効状態“1”を真とした論理和演算した結果が得られる。これらの動作により、一致データ論理和線117−1〜117−nには、検索動作時に検索データ112と一致した記憶データの中で、最も無効状態“0”のビット数が少ない記憶データと同じ値が出力されることになる。
nビット・ラッチ121は、ラッチ制御信号122が有効状態の時に、一致データ論理和線117−1〜117−nの状態を内部に格納する。また、格納した状態をラッチ出力線120−1〜120−nに出力する。
nビット2入力1出力セレクタ123は、ビット線113−1〜113−nに出力するデータを、選択信号124の状態により、検索データ112−1〜112−nとラッチ出力線120−1〜120−nの一方から選択する。
制御回路130は、連想メモリ101の動作を制御するため、クロック信号131に同期して、ラッチ制御信号122、選択信号124、および比較制御信号104を出力する。
[従来の連想メモリの詳細説明]
次に、図29に従来の連想メモリ・セル107の一構成例を示す。ここで、2本のビット線113a,113bは図28に示されている各ビット線に対応するものであるが、図28においては113−iで代表して表現している。この2本のビット線を介してメモリ・セルへのデータの読み書きや、検索データ112の入力を行う。データを書き込む場合、および検索データの入力を行う場合には、ビット線113bにはビット線113aの値を反転した値を入力する。データ・セル108は、入出力が相互に接続された反転論理ゲート(G101)301、反転論理ゲート(G102)302と、反転論理ゲート(G102)302の出力をビット線113aに接続しデータ・ワード線103がハイ・レベルのときに導通状態となるMOSトランジスタ(T101)303と、反転論理ゲート(G101)301の出力をビット線113bに接続しデータ・ワード線103がハイ・レベルのときに導通状態となるMOSトランジスタ(T102)304とにより構成される一般的なスタティックSRAM素子である。
また、マスク・セル109も、入出力が相互に接続された反転論理ゲート(G103)310、反転論理ゲート(G104)311と、反転論理ゲート(G104)311の出力をビット線113aに接続しマスク・ワード線106がハイ・レベルのときに導通状態となるMOSトランジスタ(T108)312と、反転論理ゲート(G103)310の出力をビット線113bに接続しマスク・ワード線106がハイ・レベルのときに導通状態となるMOSトランジスタ(T109)313とにより構成される一般的なスタティックSRAM素子である。
比較器110はMOSトランジスタ(T103)305、MOSトランジスタ(T104)306、MOSトランジスタ(T105)307、MOSトランジスタ(T106)308、およびMOSトランジスタ(T107)309により構成される。MOSトランジスタ(T103)305とMOSトランジスタ(T104)306はビット線113a,113bの間に直列に挿入される。MOSトランジスタ(T103)305は、データ・セル108内の反転論理ゲート(G101)301の出力がハイ・レベルのときに導通状態となる。MOSトランジスタ(T104)306は、データ・セル108内の反転論理ゲート(G102)302の出力がハイ・レベルのときに導通状態となる。MOSトランジスタ(T106)308とMOSトランジスタ(T107)309は並列接続され、この並列接続された2つのMOSトランジスタは、MOSトランジスタ(T105)307とともに、一致線105と低電位の間に直列に挿入される。MOSトランジスタ(T106)308は、マスク・セル109内の反転論理ゲート(G104)311の出力がハイ・レベルの時に導通状態となる。MOSトランジスタ(T107)309は、比較制御信号104が有効状態“1”の時に導通状態となる。
MOSトランジスタ(T105)307は、MOSトランジスタ(T103)305とMOSトランジスタ(T104)306の接続点の電位がハイ・レベルの時に導通状態となる。ビット線113aと反転論理ゲート(G101)301の出力がともにハイ・レベル、またはビット線113bと反転論理ゲート(G102)302の出力がともにハイ・レベルのときに、MOSトランジスタ(T103)305とMOSトランジスタ(T104)306の接続点はハイ・レベルとなり、MOSトランジスタ(T105)307を導通状態とする。
従って、データ・セル108に格納されている記憶データと、ビット線113a,113b上の検索データ112が異なる場合にMOSトランジスタ(T105)307は導通状態になる。またMOSトランジスタ(T106)308はマスク・セル109内に格納されているマスク情報が“0”のときには開放状態であり、“1”のときに導通状態となる。一致線105は検索動作を開始する前に高電位にプリ・チャージされているものとする。これにより、複数の連想メモリ・セル107が一致線105にMOSトランジスタ(T106)308、およびMOSトランジスタ(T107)309を介して接続されているとき、一つの連想メモリ・セル107でもロウ・レベルを出力していると一致線105はロウ・レベルとなるようなワイアードAND接続となる。
MOSトランジスタ(T105)307が導通状態のときに、並列接続されたMOSトランジスタ(T106)308、MOSトランジスタ(T107)309のどちらか一つでも導通状態の場合に連想メモリ・セル107は一致線105に無効状態“0”を出力し、それ以外の時には一致線105を開放状態とする。すなわち、マスク情報がマスク有効状態“0”かつ比較制御信号104が無効状態“0”の場合には検索データ112と記憶データの比較結果によらず一致線105を開放状態とし、それ以外の場合にはビット線113a,113b上の検索データ112とデータ・セル108に格納されている記憶データが一致するときに開放状態とし、異なる場合には無効状態“0”を出力する。
次に、論理ゲート111と一致データ中間論理線114の働きを説明する。一致データ中間論理線114は図28の抵抗115によりプル・アップされ検索動作前には“1”になっている。論理ゲート111は、一致データ中間論理線114と低電位との間に直列に挿入されたMOSトランジスタ(T110)314と、MOSトランジスタ(T111)315で構成されている。MOSトランジスタ(T110)314は、一致線105が有効状態“1”のときに導通状態となり、無効状態“0”のときには開放状態となる。MOSトランジスタ(T111)315は、データ・セル108内部の反転論理ゲート(G102)302の出力がハイ・レベルの場合に導通状態となり、ロウ・レベルの場合には開放状態となる。つまり、データ・セル108に格納されている記憶データが有効状態“1”のときに導通状態となり、無効状態“0”のときには開放状態となる。これにより論理ゲート111は、一致線105が有効状態“1”かつデータ・セル108に格納された記憶データが有効状態“1”のときに、一致データ中間論理線114に“0”を出力し、それ以外の場合には開放状態にする
[従来の連想メモリの動作]
次に、上述の従来の連想メモリ101を、図33のネットワーク機器400−1における転送先ネットワーク・アドレスの計算に用いた場合の動作を、図30を用いて説明する。そのときのタイミングチャートを図31に示す。
連想メモリ101を9ビット3語の構成と仮定し、各連想メモリ・ワード102−1〜102−3に格納されている記憶データ、マスク情報には、図33のネットワーク機器400−1のネットワーク・アドレス(1.*.*)以外の接続情報を記憶しているものとする。このとき、接続情報の中のドント・ケア“*”状態のビットは、記憶データの該当ビットを記憶データの無効状態“0”、マスク情報の該当ビットをマスク有効状態“0”とすることで表現される。
つまり、連想メモリ・ワード102−1には(2.*.*)を構造化データで表現するため、記憶データには2進数で(010.000.000)を、マスク情報として(111.000.000)で格納してある。同様に連想メモリ・ワード102−2には(2.3.*)を構造化データで表現するため、記憶データには2進数で(010.011.000)を、マスク情報として(111.111.000)を格納してある。連想メモリ・ワード102−3には(3.*.*)を構造化データで表現するため、記憶データには2進数で(011.000.000)を、マスク情報として(111.000.000)を格納してある。
以降、検索データ112として図33のPC401−2の8進数のネットワーク・アドレス(2.3.4)を入力し検索動作を行った場合の動作説明をする。
まず、図31のタイミング(1)で、すべての一致線105−1〜105−3は、ハイ・レベルにプリ・チャージされ、有効状態“1”になっている。
次に図31のタイミング(2)で、制御回路130が出力する選択信号124により、nビット2入力1出力セレクタ123は検索データ112を選択し、ビット線113−1〜113−9に出力する。また、制御回路130は比較制御信号104に無効状態“0”を出力し、各連想メモリ・セル107−1−1〜107−m−nにおいて、その中の記憶データと検索データ112の対応ビットの比較結果によらずに、その中のマスク情報がマスク有効状態“0”の場合には対応する一致線105を解放状態とすることを許可する。つまりドント・ケア“*”も考慮して比較する。これにより、連想メモリ101の連想メモリ・ワード102−1に格納されている8進表現の(2.*.*)と、連想メモリ・ワード102−2に格納されている8進表現の(2.3.*)がビット線113−1〜113−9上の検索データ112と一致する。従って、1次検索の結果として、一致線105−1、105−2の2本が有効状態“1”となり、残りの一致線105−3は無効状態“0”となる。
ここで、一致データ論理和線117−1からは、連想メモリ・ワード102−1内の一致データ中間論理線114−1に対応する記憶データ“0”と、連想メモリ・ワード102−2内の一致データ中間論理線114−1に対応する記憶データ“0”に対しての、“1”を真とした論理和結果“0”が出力される。一致データ論理和線117−2からは、連想メモリ・ワード102−1内の一致データ中間論理線114−2に対応する記憶データ“1”と、連想メモリ・ワード102−1内の一致データ中間論理線114−2に対応する記憶データ“1”に対しての“1”を真とした論理和結果“1”が出力される。以降同様に、一致データ論理和線117−3からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、一致データ論理和線117−4からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、一致データ論理和線117−5からは“0”と“1”に対しての“1”を真とした論理和結果“1”が、一致データ論理和線117−6からは“0”と“1”に対しての“1”を真とした論理和結果“1”が、一致データ論理和線117−7からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、一致データ論理和線117−8からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、一致データ論理和線117−9からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、それぞれ出力される。従って、一致データ論理和線117−1〜117−9には、2進表現で“010011000”が出力されることになる。
この状態で、制御回路130が出力するラッチ制御信号122が有効状態になり、nビット・ラッチ121は一致データ論理和線117−1〜117−9の状態を内部に格納する。したがって、nビット・ラッチ121は2進表現で“010011000”を格納し、その値をラッチ出力線120−1〜120−9に出力する。
図31のタイミング(3)は、本例では、タイミング(2)とタイミング(4)双方のクロック信号131の状態を同一にするために挿入されており、連想メモリ101は、タイミング(2)の最終状態を保持し続ける。
次に図31のタイミング(4)で、制御回路130が出力する選択信号124により、nビット2入力1出力セレクタ123はラッチ出力線120を選択し、その情報“010011000”を対応するビット線113−1〜113−9に出力した後、連想メモリ101は2次検索を開始する。2次検索では、一致線105−1〜105−3に保持されている、タイミング(2)で実行した1次検索の結果を利用する。本例では、一致線105−1および105−2の2本が有効状態“1”を保持しており、データ一致線105−3は無効状態“0”を保持している。また、制御回路130は比較制御信号104に有効状態“1”を出力する。これにより、各連想メモリ・セル107−1−1〜107−m−nは、その中のマスク情報によらず、その中の記憶データと対応するビット線113の比較結果が不一致の場合には、一致線105に無効状態“0”を出力する。つまりドント・ケア“*”を考慮せず、各連想メモリ・ワード102−1〜102−3に格納されている記憶データ自体とビット線113−1〜113−9の状態“010011000”とを比較し、不一致の場合には対応する一致線105−1〜105−3に無効状態“0”を出力することになる。
本例では、ビット線113−1〜113−9の状態“010011000”に対して、連想メモリ・ワード102−2が格納する記憶データが完全に一致し、対応する一致線105−2を開放状態にする。他の連想メモリ・ワード102−1および102−3が格納する記憶データは一致しないので、対応する一致線105−1および105−3に無効状態“0”を出力する。したがって、2次検索開始前に有効状態“1”を保持していた一致線105−1,105−2の2本の中で、2次検索後も有効状態“1”を保持し続けるのは、一致線105−2のみとなる。
したがって、入力した検索データ112と、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する一致線105−2のみに有効状態を出力することがわかる。
従来の連想メモリ101では、次に示すように、連想メモリ・ワード1語中に、記憶データとマスク情報の組で表現された複数のネットワーク・アドレスを格納した場合には、検索のために入力した複数のネットワーク・アドレスと、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、それぞれのネットワーク・アドレスに対応する記憶データの領域に対応するマスク情報の領域のマスク有効状態のビットが最小となるような記憶データを出力することができない。
図33においてネットワーク・アドレス(1.2.6)を持つPC401−1から、ネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送について、転送の可否を従来の連想メモリ101で判定した場合の動作例を図32を用いて説明する。
表1(b)の転送規則1〜5において、各転送規則の送出元ネットワーク・アドレスと宛先ネットワーク・アドレスの9ビットの記憶データ同士、9ビットのマスク情報同士を連結し、18ビットの記憶データ、を連結し各転送規則の送出元ネットワーク・アドレス1それぞれ9ビットの記憶データとマスク情報で表現される構造化データで表現した組を記憶しているものとする。
連想メモリ101を18ビット5語の構成と仮定する。表1(b)における各転送規則の送出元ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、転送規則に対応する連想メモリ・ワード102−1〜102−5のそれぞれ記憶データ、マスク情報の上位9ビットとして格納するものとする。また、表1(b)における各転送規則の宛先ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、転送規則に対応する連想メモリ・ワード102−1〜102−5のそれぞれ記憶データ、マスク情報の下位9ビットとして格納するものとする。この結果、連想メモリ101の各連想メモリ・ワード102−1〜102−5に格納される18ビットの構造化データを図32に示すとおりである。
前述の動作説明と同様に、1次検索では、連想メモリ101は、8進表現で(1.2.6 2.3.5)の検索データ112をビット線113に出方し、連想メモリ・ワード102−1〜102−5に格納されている記憶データと、対応するマスク情報も考慮して比較を行う。これにより、連想メモリ・ワード102−1に格納されている8進表現の(1.2.* 2.*.*)と、連想メモリ・ワード102−3に格納されている8進表現の(1.2.* 2.3.*)と、連想メモリ・ワード102−5に格納されている8真表現の(1.*.* 2.3.5)がビット線113上の検索データ112と一致する。従って、1次検索の結果として、一致線105−1、105−3、105−5の3本が有効状態“1”となり、残りの一致線105−2,105−4は無効状態“0”となる。
ここで、前述の動作説明と同様に、連想メモリ・ワード102−1〜102−5において、対応する一致線105が有効状態“1”を保持している18ビットの記憶データの各ビットに対して、“1”を真とした論理和結果を求め、nビット・ラッチ102に格納する。つまり、連想メモリ・ワード102−1に格納されている8進表現で(1.2.0 2.0.0)、2進表現で“001.010.000.010.000.000”と、連想メモリ・ワード102−3に格納されている8進表現で(1.2.0 2.3.0)、2進表現で“001.010.000.010.011.000”と、連想メモリ・ワード102−5に格納されている8進表現で(1.0.0 2.3.5)、2進表現で“001.000.000.010.011.101”の各ビットに対して、“1”を真とした論理和演算の実行結果として得られる2進表現で“001.010.000.010.011.101“、8進表現で(1.2.0 2.3.5)をnビット・ラッチ121は記憶し、この値をラッチ出力線120に出力する。
前述の動作説明と同様に、2次検索では、連想メモリ101は、ラッチ出力線120の状態、8進表現で(1.2.0 2.3.5)、2進表現で“001.010.000.010.011.101“を、ビット線113に出力し、連想メモリ・ワード102−1〜102−5に格納されている記憶データと、対応するマスク情報を考慮せずに比較を行う。このとき、連想メモリ・ワード102−1〜102−5に格納されているすべての記憶データが不一致となり、一致線105−1〜105−5は全て無効状態”0“を出力する。
ネットワーク・アドレス(1.2.6)を持つPC401−1から、ネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送は、転送規則3により拒絶されねばならない。つまり、連想メモリ101で検索した場合、連想メモリ・ワード102−3に対応する一致線105−3のみが有効状態“1”を出力するのが本来あるべき動作である。しかし、従来の連想メモリ101では上述のように、検索終了後の一致線105−1〜105−5は不正な状態となってしまう。
このため、ネットワークの安全性を確保するために、入力転送データの送出元ネットワーク・アドレスと宛先ネットワーク・アドレスに対して転送規則を基に転送の可否を判定する機能は、従来のネットワーク機器では上述のようにCPUにより、二分木検索アルゴリズムなどを応用したソフトウエア処理で実現していた。このソフトウエア処理には数百クロック以上が必要であり、転送先ネットワーク・アドレスの計算は連想メモリにより高速化しているにも関わらず、ネットワークの安全性を確保しようとするとネットワーク全体の通信速度が低下するという問題があった。
また、二分木検索アルゴリズムなどを応用したソフトウエア処理で転送可否判定演算を実行する場合には、あらかじめ巨大な検索テーブルを作成する必要があるため、転送規則の削除、追加、変更を行うためには、ネットワーク機器の転送動作を中断しなければならないという問題があった。そのため、ネットワーク機器の管理者が転送規則の削除、追加、変更を頻繁に行わなくなり、ネットワーク全体の安全性が低下したまま運用せざるをえないという問題があった。
また、転送可否判定を少しでも高速に実行しようとすると、高価な高速CPUシステムを搭載しなければならず、ネットワーク機器全体としての価格が上昇してしまうという問題があった。
そこで、本発明の目的は、複数の検索領域から構成される入力データに対してマスク情報を考慮して検索を行ったときに、入力データに対応する記憶データがすべて一致するワードが複数個あった場合に、優先順位を考慮して検索領域ごとに構造化データを構成するマスク情報のマスク有効状態のビット数を一致したワードの中で比較した結果、最少となるようなワードを識別する信号を出力する連想メモリを提供することにある。
更に他の目的として、入力転送データに対して転送規則を基に転送の可否を判定する機能を高速に実行するネットワーク機器を提供することにある。
更に他の目的として、転送動作を中断せずに、転送規則の削除、追加、変更を実行することができるネットワーク機器を提供することにある。
更に他の目的として、転送可否判定を高速に実行するネットワーク機器のトータルコストを削減することである。
更に他の目的として、安全性を確保し、かつ、高速にデータを転送できるネットワーク・システムを提供することにある。
発明の開示
本発明の連想メモリは、手段1として、記憶データの1ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの1ワードまたは複数ワードごとに有する連想メモリにおいて、
N個(Nは2以上の整数)の部分ビット領域から構成される外部検索データの全ビットに対して1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出されるワードを識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをN個に分割した部分ビット領域の各々一つを入力とし、2次検索制御信号の状態によりワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する2次識別信号を出力する一つまたは複数の共有2次検索手段と、
1次検索および各2次検索をとおして、ワード毎に対応するワードが選出され続けているか否かのワード有効情報を1次検索および各2次検索実行の度に更新、記憶し、その選出状態、非選出状態を前記中間データ生成手段に出力する記憶手段と、
前記外部検索データの全ビット領域を検索データとして前記1次検索を行った後、前記中間データの前記N個の部分ビット領域を順次検索データとして前記2次検索を実行するように前記2次検索制御信号を出力する制御手段とを、有するものである。
本発明の連想メモリは、手段2として、記憶データの1ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの1ワードまたは複数ワードごとに有する連想メモリにおいて、
N個(Nは2以上の整数)の部分ビット領域から構成される外部検索データの全ビットに対して1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出されるワードを識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するN個の中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをN個に分割した部分ビット領域の各々一つを入力とし、ワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を行った結果選出されるワードを識別する2次識別信号を出力するN個の2次検索手段とを有し、
前記N個の中間データ生成手段とN個の2次検索手段は、第1の中間データ生成手段は1次検索の結果生成された第1の中間データを前記第1の2次検索手段に入力し第1の部分ビット領域に対して第1の2次検索を行い、第2の中間データ生成手段は第1の2次検索の結果生成された第2の中間データを前記第2の2次検索手段に入力し第2の部分ビット領域に対して第2の2次検索を行い、第3の中間データ生成手段は第2の2次検索の結果生成された第3の中間データを前記第3の2次検索手段に入力して第3の部分ビット領域に対して2次検索を行い、以下同様に構成し、第Nの中間データ生成手段は第(N−1)の2次検索の結果生成された第Nの中間データを前記第Nの2次検索手段に入力し第Nの部分ビット領域に対して2次検索を行う、ものである。
本発明の連想メモリは、手段3として、前記第1から第Nの2次検索手段において、1次検索および各2次検索をとおしてワード毎に対応するワードが選出され続けているか否かのワード有効情報を、第Jから第Kの(J、Kは1以上N以下の整数)各2次検索の実行の度に更新、記憶し、各ワードの選出状態、非選出状態を出力する記憶手段と、
ワードの選出状態を示す信号を入力とし、選出状態にあるワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした前記論理演算により生成される第Jから第Kの中間データを出力する共有中間データ生成手段と、
2次検索制御信号の状態によりワードにおける前記記憶データまたはマスク情報の第Jから第Kの部分ビット領域に対応するビット領域に対してのみ選択的に2次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する信号を出力する一つまたは複数の共有2次検索手段と、
第Jの2次検索から第Kの2次検索を順次実行するように前記2次検索制御信号を出力し、また前記2次検索の度に前記記憶手段の前記ワード有効情報を更新するため前記記憶制御信号を出力する制御手段とを、
有することにより、第Jから第Kの前記2次検索手段の構成要素を共有するものである。
本発明の連想メモリは、手段4として、前記1次検索手段において、
一つまたは複数の属性データを検索データとし、前記記憶データが格納されている前記ワードと対応する属性一致信号を検索結果として出力する第2の連想メモリを有し、
1次検索として、前記外部検索データの全ビットに対して1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外した結果選出され、且つ対応する前記属性一致信号が前記属性データを前記第2の連想メモリで検索した結果一致を示している、ワードを識別する1次識別信号を出力するものである。
本発明の連想メモリは、手段5として、前記1次検索手段において、
検索データとして1次制御許可信号が有効状態のときには前記外部検索データを選択し、他の場合には前記中間データを選択する選択手段と、
1次検索許可信号が有効状態のときには該外部検索データの全ビットを検索データとして1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行い、2次検索制御信号が有効状態のときにはワードにおける前記記憶データまたはマスク情報の2次検索制御信号の状態により指定されるビット領域に対してのみ選択的に2次検索を実行する手段とを有し、
1次制御許可信号を有効にし前記外部検索データの全ビット領域を検索データとして前記1次検索を行った後、前記中間データの前記N個の部分ビット領域を順次検索データとして前記2次検索を実行するように前記2次検索制御信号を出力する制御手段とを有することにより、1次検索手段の構成要素と2次検索手段の構成要素とを共有するものである。
本発明の連想メモリは、手段6として、前記1次検索手段が出力する1次識別信号、および前記N個の2次検索手段が出力する第1から第Nの2次識別信号の中の一つまたは複数を記憶する手段と、前記第1から第Nの中間データの中の一つまたは複数を記憶する手段の、一方または双方を有することによりパイプライン処理を可能にするものである。
本発明の連想メモリは、手段7として、前記中間データ生成手段に入力する1次検索および各2次検索をとおしてワード毎に対応するワードが選出され続けているか否かの情報の、更新、記憶を結線論理を用いて構成することにより、当該情報を前記中間データ生成手段に入力するための配線と、1次識別信号または2次識別信号の配線とを共用するものである。
本発明の連想メモリは、手段8として、前記中間データの各部分ビット領域に、前記外部検索データの対応する部分ビット領域と同じ優先順位を付与し、該中間データの該部分ビット領域について優先順位の高位から低位への順に検索データとして前記2次検索を実行するものである。
本発明の連想メモリは、手段9として、前記記憶データとして1次検索の際に対応する前記マスク情報により検索対象から除外される1ビットまたは複数のビットに特定ビット・パターンを格納し、2次検索として、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出するものである。
本発明の連想メモリは、手段10として、前記記憶データにおいて1次検索の際に対応する前記マスク情報により検索対象から除外される1ビットまたは複数のビットが特定ビット・パターンであるとみなして2次検索を行い、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出するものである。
本発明の連想メモリは、手段11として、前記特定ビット・パターンは、すべての当該ビットが記憶データの無効状態により構成されているものである。
本発明の連想メモリは、手段12として、前記論理演算は、選出状態にあるワードに対応する記憶データ同士の、記憶データの有効状態を真とする論理和演算であり、その論理和演算結果を前記中間データとし、前記2次検索は、該中間データと一致する記憶データを有するワードを選出するものである。
本発明の連想メモリは、手段13として、前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、該論理積演算結果のビットがマスク情報の無効状態ならば前記外部検索データの同一のビット位置の情報を中間データの同一ビット位置の状態とし、該論理積演算結果のビットがマスク情報の有効状態ならば記憶データの無効状態を前記中間データの同一ビット位置の状態として前記中間データを生成し、前記2次検索は該中間データと一致する記憶データを有するワードを選出するものである。
本発明の連想メモリは、手段14として、前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、その論理積演算結果を中間データとし、前記2次検索は該中間データと一致するマスク情報を有し且つその時点までに選出状態にあるワードを選出するものである。
本発明のネットワーク機器は、手段15として、入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の1つまたは複数個毎に前記記憶データの中で1ビットまたは複数ビットの領域の1つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
前記入力転送データに付随する前記送信元ネットワーク・アドレスおよび前記宛先ネットワーク・アドレスを構成要素に含む前記判定入力データを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する対応する記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行い
前記1次検索の結果、選出された一つまたは複数の転送規則を構成する記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした論理演算により中間データを生成し、
前記判定入力データの第1の構成要素から最終の構成要素に対して同様に順次、前記1次検索、前記2次検索の度に選出されつづけている一つまたは複数の転送規則を構成する、記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした前記論理演算の結果により更新された中間データの当該構成要素に対応するビット領域を検索データとして、当該構成要素に対応するビット領域の記憶データまたはマスク情報について選択的に2次検索を実行し、
最終的に選出された転送規則により、当該入力転送データの転送の可否を決定するものである。
本発明のネットワーク機器は、手段16として、入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の1つまたは複数個毎に前記記憶データの中で1ビットまたは複数ビットの領域の1つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出される転送規則を識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および判定入力データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、2次検索制御信号により転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を実行するか否かを制御可能であり、且つ検索の結果選出される転送規則を識別する2次識別信号を出力する一つまたは複数の共有2次検索手段と、
1次検索および各2次検索をとおして、転送規則毎に対応する転送規則が選出され続けているか否かの転送規則有効情報を1次検索および各2次検索実行の度に更新、記憶し、その選出状態、非選出状態を示す一致信号を前記中間データ生成手段に出力する記憶手段と、
前記判定入力データの全ビット領域を検索データとして前記1次検索を行った後、前記中間データの各部分ビット領域を順次検索データとして前記2次検索を実行するように前記2次検索制御信号を出力する制御手段と、
前記一致信号により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段と、有するものである。
本発明のネットワーク機器は、手段17として、入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを含むN個(Nは2以上の整数)の構成要素から構成される判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の1つまたは複数個毎に前記記憶データの中で1ビットまたは複数ビットの領域の1つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出される転送規則を識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するN個の中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を行った結果選出される転送規則を識別する信号を出力するN個の2次検索手段と
前記第Nの2次検索手段により選出された転送規則により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段とを有し
前記N個の中間データ生成手段とN個の2次検索手段は、第1の中間データ生成手段は1次検索の結果生成された第1の中間データを前記第1の2次検索手段に入力し第1の部分ビット領域に対して第1の2次検索を行い、第2の中間データ生成手段は第1の2次検索の結果生成された第2の中間データを前記第2の2次検索手段に入力し第2の部分ビット領域に対して第2の2次検索を行い、第3の中間データ生成手段は第2の2次検索の結果生成された第3の中間データを前記第3の2次検索手段に入力して第3の部分ビット領域に対して2次検索を行い、以下同様に構成し、第Nの中間データ生成手段は第(N−1)の2次検索の結果生成された第Nの中間データを前記第Nの2次検索手段に入力し第Nの部分ビット領域に対して2次検索を行うものである。
本発明のネットワークシステムは、手段18として、手段15から17に記載の前記ネットワーク機器を介してネットワークに接続された機器間でデータ通信を行うものである。
発明を実施するための最良の形態
[第一の実施例の構成]
次に、本発明の第一の実施の形態について図面を参照して詳細に説明する。図1は、本発明のm語の連想メモリ1の構成例を示すブロック図である。連想メモリ1は、クロック信号41、開始信号42,およびr個の検索データ3−1〜3−rにより構成される入力データ2を入力とし、m本の一致信号5−1〜5−mを出力とする。また、連想メモリ1は、m語の単一領域検索用連想メモリ36−1〜36−r、主制御回路6、論理積手段39−1〜39−m、および記憶手段43−1〜43−mを有している。
主制御回路6は、クロック信号41、開始信号42を入力とし、記憶制御信号12、1次検索許可信号10−1〜10−m、および2次検索許可信号11−1〜11−rを出力とする。主制御回路6は読み書きが可能な内部変数28を有している。内部変数28の値をpで表す。主制御回路6は、開始信号42が有効状態のとき入力データ2の検索動作を開始し、クロック信号41に同期して、記憶制御信号12、1次検索許可信号10−1〜10−m、および2次検索許可信号11−1〜11−rを、図5に示す本発明の第一の実施の形態の連想メモリの動作を説明するフローチャートに従って出力する。
i番目の単一領域検索用連想メモリ36−iは、検索データ3−i、1次検索許可信号10−i、2次検索許可信号11−i、およびm本の共通一致線38−1〜38−mを入力とし、単一領域での検索結果としてm本の一致線37−i−1〜37−i−mを出力する。単一領域検索用連想メモリ36−iの単一領域での検索動作は1次検索許可信号10−i、2次検索許可信号11−iにより次のように制御される。1次検索許可信号10−iが有効状態の場合には、検索データ3−iと内部に格納した記憶データとを、対応するマスク情報を考慮して比較する1次検索を行い、結果を一致線37−i−1〜37−i−mに出力する。2次検索許可信号11−iが有効状態の場合には、内部に格納した記憶データと、マスク情報の双方または一方を用いて、m本の共通一致線38−1〜38−mの状態に応じた中間データを生成し、中間データによる2次検索を行った結果を一致線37−i−1〜37−i−mに出力する。中間データによる2次検索としては、連想メモリ1をi番目の単一領域検索用連想メモリ36−iを単独で構成し1次検索に続けて2次検索を行った場合に、検索データ3−iとマスク情報を考慮して一致する記憶データの中で最もマスク情報の有効状態のビット数が少ない記憶データに対応する一致線37−i−1〜37−i−mのみに有効状態を出力することができるものとする。
ただし、i番目の単一領域検索用連想メモリ36−iは、1次検索許可信号10−i、2次検索許可信号11−iが、ともに無効状態の場合には、m本の一致線37−i−1〜37−i−mにすべて共通一致線38の有効状態を出力する。
本例では、検索データ3−1の優先順位を最も高い1とし、検索データ3−2の優先順位を2,以下同様に検索データ3−rの優先順位を最低のrと仮定する。ここで、各検索データ3−1〜3−rのビット数は同じである必要はない。また、検索データ3−1〜3−rは、それぞれ、対応する単一領域検索用連想メモリ36−1〜36−rに入力されるのであれば、入力データ2の中での順序は任意である。また、連想メモリ1内部での、r個の単一領域検索用連想メモリ36−1〜36−rの順序も、接続関係さえ対応がとれていれば任意であることはいうまでもない。
j番目の論理積手段39−jは、r本の一致線37−j−1〜37−j−r、および1本の共通一致線38−jを入力とし、共通一致線38の有効状態を真とする論理積演算を行った結果を、論理積信号40−jとして出力する。本例では、論理積信号40−jと一致信号5−jは同一である。
j番目の記憶手段43−jは、論理積信号40−j、および記憶制御信号12を入力とし、共通一致線38−jを出力とする。記憶制御信号12の状態に応じて、共通一致線38−jの状態を保持、または論理積信号40−jの値を記憶、または共通一致線38の有効状態に初期化、の動作を行う。
図2は、本発明の第一の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。本例では、単一領域検索用連想メモリ36−1はnビットm語、単一領域検索用連想メモリ36−rはsビットm語と、1語を構成するビット数が異なるのみで内部の構成は同一である。
単一領域検索用連想メモリ36−1は、nビットの連想メモリ・ワード44−1−1〜44−m−1と、制御回路45−1を有している。単一領域検索用連想メモリ36−rは、sビットの連想メモリ・ワード44−1−r〜44−m−rと、制御回路45−rを有している。
j番目の連想メモリ・ワード44−j−1は、n個のデータ・セル8−j−1−1〜8−j−n−1および、n個のマスク・セル9−j−1−1〜9−j−n−1を有している。j番目の連想メモリ・ワード44−j−rは、s個のデータ・セル8−j−1−r〜8−j−s−rおよび、s個のマスク・セル9−j−1−r〜9−j−s−rを有している。
[第一の実施例の単一領域検索用連想メモリの構成]
次に上述の単一領域検索用連想メモリ36の構成例を図3を用いて説明する。単一領域検索用連想メモリ36は、nビット2入力1出力イネーブル付きセレクタ82と、nビットm語の連想メモリ・ワード44−1〜44−mと、制御回路45と、論理ゲート58−1〜58−nと、抵抗57−1〜57−nを有している。j番目の連想メモリ・ワード44−jは、n個の連想メモリ・セル83−j−1〜83−j−nを有している。連想メモリ・ワード44−jには、対応するデータ・ワード線53−jと、マスク・ワード線54−jと、共通一致線38−jと、および比較制御信号85が入力のために接続され、対応する一致線37−j、およびn本の一致データ中間論理線52−1〜52−nが出力のために接続され、n本のビット線51−1〜51−nが入出力のために接続されている。
なお、本例では、マスク情報のマスク有効状態を“0”、マスク無効状態を“1”とし、記憶データの有効状態を“1”、無効状態を“0”とする。記憶データと同様に、一致データ論理和線52−1〜52−nの有効状態を“1”、無効状態を“0”とする。一致線37−1〜37−m、共通一致線38−1〜38−mの有効状態を“1”、無効状態を“0”とする。
一致線37−1〜37−mは、あらかじめハイ・レベルにプリ・チャージされ、有効状態“1”になっているものとする。
j番目の連想メモリ・ワード44−jのkビット目の連想メモリ・セル83−j−kには、対応するデータ・ワード線53−jと、マスク・ワード線54−jと、共通一致線38−jと、および比較制御信号85が入力のために接続され、対応する一致線37−j、および一致データ中間論理線52−kが出力のために接続され、ビット線51−kが入出力のために接続されている。
各連想メモリ・セル83−j−kは、ビット線51−kを介して外部から入力される記憶データの対応するビット情報を格納するデータ・セル8−j−kと、データ・セル8−j−kに記憶されたビット情報と外部からビット線51−kを介して入力される情報とを比較する比較器84−j−kと、外部からビット線51−kを介して入力されるマスク情報の対応するビット情報を格納するマスク・セル9−j−kと、および論理ゲート56−j−kとを備えている。ここで、マスク・セル9−j−kに格納されたビット情報がマスク情報のマスク有効状態の場合には、対応するデータ・セル8−j−kには、記憶データの無効状態を格納する。
比較器84−j−kは、対応するビット線51−kと、それに同一の連想メモリ・セル83−j−kの中のデータ・セル8−j−kに格納されている記憶データと、マスク・セル9−j−kに格納されているマスク情報と、および比較制御信号85を入力とする。比較器84−j−kは、比較制御信号85が無効状態“0”かつマスク情報がマスク有効状態“0”ならば、対応する一致線37−jを解放状態にし、それ以外の場合には、ビット線51−kの値と記憶データが一致するならば対応する一致線37−jを開放状態にし、一致しないならば無効状態“0”を出力する。連想メモリ・ワード44−jの中のn個の比較器84−j−1〜84−j−nがすべて一致線37−jを開放状態にしているときに、一致線37−jは有効状態“1”となり、それ以外の場合には無効状態“0”となる、一致線37の有効状態“1”を真としたワイアードAND論理接続を構成している。つまり、検索動作時には、比較制御信号85が無効状態“0”かつマスク情報がマスク有効状態“0”のために比較対象から除外されたビットを除いて、連想メモリ・ワード44−jが格納している記憶データとビット線51−1〜51−nが完全に一致する場合に限り、一致線37−jは有効状態“1”となり、それ以外の場合は無効状態“0”となる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
論理ゲート56−j−kは、同一の連想メモリ・ワード44−jの中の共通一致線38−jが有効状態“1”かつ、同一の連想メモリ・セル83−j−kの中のデータ・セル8−j−kに格納された記憶データが有効状態のときに、対応する一致データ中間論理線52−kに“0”を出力し、それ以外の場合には開放状態にする。ここで本例では記憶データの有効状態が“1”であるので、データ・セル8−j−kに格納された記憶データが“1”かつ一致線5−jが“1”のときに、対応する一致データ中間論理線52−kに“0”を出力し、それ以外の場合には解放状態を出力する。
一致データ中間論理線52−1〜52−nは、抵抗57−1〜57−nによりプル・アップされており、対応するm個の論理・ゲート56−1−1〜56−m−nとワイアード論理接続を構成している。したがって、従来の連想メモリ101の一致データ中間論理線114−1〜114−nと同様に、接続されているm個の論理ゲート56がすべて一致データ中間論理線52を開放状態にしているときに、一致データ中間論理線52は“1”となり、それ以外の場合には“0”となる。つまり“1”を真としたワイアードAND接続となっている。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
論理ゲート58−1〜58−nは、対応する一致データ中間論理線52−1〜52−nの論理状態を反転し、中間データ線92−1〜92−nとして出力する。
したがって、中間データ線92−kには、m個の論理ゲート56−1−k〜56−m−kと一致データ中間論理線52−k、抵抗57−k、および論理ゲート58−kにより、検索動作時に有効状態“1”となっている一致線37−1〜37−mを有するすべての連想メモリ・セル83−1−k〜83−m−kの中のデータ・セル8−1−1〜8−m−kに格納されている記憶データどうしを、記憶データの有効状態を真とした論理和演算した結果が得られることになる。本例では、記憶データの有効状態“1”を真とした論理和演算した結果が得られる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。これらの動作により、中間データ線92−1〜92−nには、検索動作時に検索データ3と一致した記憶データの中で、最も無効状態“0”のビット数が少ない記憶データと同じ値が出力されることになる。
制御回路45は、1次検索許可信号10、2次検索許可信号11を入力とし、比較制御信号85、選択信号86、および無効化信号87を出力する。制御回路45は、単一領域検索用連想メモリ36の検索動作を制御するため、1次検索許可信号10,2次検索許可信号11が双方ともに無効状態“0”の場合には無効化信号87に有効状態“1”を出力する。1次検索許可信号10が有効状態“1”の場合には無効化信号87に有効状態“0”を、選択信号86に無効状態“0”を、比較制御信号85に無効状態“0”を出力する。2次検索許可信号11が有効状態“1”の場合には無効化信号87に有効状態“0”を、選択信号86に無効状態“1”を、比較制御信号85に無効状態“1”を出力する。
nビット2入力1出力イネーブル付きセレクタ82は、選択信号86、無効化信号87、中間データ線92−1〜92−n、検索データ3−1〜3−nを入力とし、ビット線51−1〜51−nを出力とする。nビット2入力1出力イネーブル付きセレクタ82は、無効化信号87が有効状態“1”のときには、ビット線51−1〜51−nに全ての連想メモリ・ワード44−1〜44−mの比較結果が一致となるような検索無効データを出力し、それ以外の場合には、選択信号86が無効状態“0”の場合には検索データ3−1〜3−nを、選択信号86が有効状態“1”の場合には中間データ線92−1〜92−nを、ビット線51−1〜51−nに出力する。
以上説明したように、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリ36の構成と、従来の連想メモリ101の構成を比較すると、共通一致線38−1〜38−mが追加されている点、論理ゲート56−j−1〜56−j−nの入力が一致線105−jから共通一致線38−jに変更されている点、nビット・ラッチ121が削除されている点、nビット2入力1出力セレクタ123がnビット2入力1出力イネーブル付きセレクタ82に変更されている点、および制御回路45への入力からクロック信号131が削除され1次検索信号10,2次検索信号11が追加されている点のみが異なり、他の部分は同様に構成される。したがって、単一領域検索用連想メモリ36の外部にて、仮に、共通一致線38−1〜38−mを、それぞれラッチを介して、対応する一致線37−1〜37−mと結線した場合には、1次検索許可信号10に有効状態を印可した後、2次検索許可信号11に有効状態を印可することにより、従来の連想メモリ101と同様の動作に、入力した検索データ3−1〜3−nと、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する一致線37のみに有効状態を出力することが可能なことは明らかである。
[第一の実施例の構成詳細]
次に、上述の連想メモリ・セル83の構成例を図4を用いて説明する。図29に示す従来の連想メモリ・セル107と比較すれば分かるように、本発明の連想メモリ・セル83は、共通一致線38が追加されている点、および論理ゲート56を構成するMOSトランジスタ(T10)214が導通状態とするための信号が一致線37から共通一致線38に変更されている点を除けば、従来の連想メモリ・セル107と同様である。
ここで、図3のnビット2入力1出力イネーブル付きセレクタ82に有効状態“1”を入力したときに、ビット線51a、51bに出力される検索無効データについて説明する。検索無効データとして図3のnビット2入力1出力イネーブル付きセレクタ82はビット線51−1〜51−nに対応するすべてのビット線51a、51bの組に、“0”を出力する。
従来の連想メモリ・セル107と同様に、データを書き込む場合、および有効な検索データの入力を行う場合には、ビット線51bにはビット線51aの値を反転した値を入力するため、ビット線51a、51bがともに“0”とはならない。
比較器84はビット線51a、51bがともに“0”である場合、ビット線13a、13bの間に直列に挿入されたMOSトランジスタ(T3)205とMOSトランジスタ(T4)206のどちらが導通状態となっても、MOSトランジスタ(T3)205とMOSトランジスタ(T4)206の接続点の電位はロウ・レベルであり、MOSトランジスタ(T5)207は導通状態とならない。したがって、比較器84は一致線37を解放状態とすることになる。
本例ではビット線51a、51bをともに“0”にすることで、検索無効データの機能を実現したが、比較器84の構成に応じて検索無効データとして他の状態を選択可能なことはいうまでもない。
上述のように本発明の連想メモリ・セル83は、従来の連想メモリ・セル107と同じ19個のトランジスタで構成でき、回路規模は変わらない。1024ワード、32ビットの場合には連想メモリ・セル全体で約62万トランジスタの回路規模となる。連想メモリ1において、主制御回路6は500トランジスタ程度で構成でき、論理積手段39と記憶手段43は1語あたり50トランジスタ程度で構成できるため、前述の1024ワード、32ビットの場合に、従来の連想メモリ101と比較して数%の回路規模の増加としかならないことがわかる。
[第一の実施例の動作]
次に図面を参照して、本発明の第一の実施の形態の連想メモリの、複数の検索データから構成される入力データに対する検索動作について説明する。図5は本発明の第一の実施の形態の連想メモリの複数の検索データから構成される入力データに対しての検索動作時の動作を示すフローチャートである。
また、フローチャートの各ステップについて、連想メモリ1を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合を例として、図6、図7、図8、および図9を用いて具体的に説明する。データ転送時の9ビットの送出元アドレス(1.2.6)を検索データ3−1とし、9ビットの宛先アドレス(2.3.5)を検索データ3−2とする。ここで検索データ3−1の優先順位を最も高い1とし、検索データ3−2の優先順位を2とする。図6、図7、図8、および図9において、連想メモリ1は、9ビット5語の単一領域検索用連想メモリ36−1、および36−2により構成されるものとする。また、表1(b)における各転送規則の送出元ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、単一領域検索用連想メモリ36−1の転送規則に対応する連想メモリ・ワード44−1−1〜44−5−1のそれぞれ記憶データ、マスク情報として格納するものとする。また、表1(b)における各転送規則の宛先ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、単一領域検索用連想メモリ36−2の転送規則に対応する連想メモリ・ワード44−1−2〜44−5−2のそれぞれ記憶データ、マスク情報として格納するものとする。nビット2入力1出力イネーブル付きセレクタ82−1、82−2から出力される値を、それぞれビット線データ95−1、95−2と表すことにする。また、単一領域検索用連想メモリ36−1の中間データ線92の値を中間データ93−1、単一領城検索用連想メモリ36−2の中間データ線92の値を中間データ93−2と表すことにする。
すべての一致線37−1−1〜37−m−rは、あらかじめ有効状態“1”にプリ・チャージされているものとする。
[ステップS100]
開始信号42が有効状態“1”になると検索動作が開始する。主制御回路6はクロック信号41に同期して図5のフローチャートのステップS100の動作を実行し、内部変数28の値pは1に初期化される。また、主制御回路6は、記憶制御信号12に、記憶手段43−1〜43−mを共通一致線38−1〜38−mの有効状態“1”に初期化するための情報を出力する。また、すべての1次検索許可信号10−1〜10−r、およびすべての2次検索許可信号11−1〜11−rには無効状態“0”を出力する。
図6は、連想メモリ1を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS100での動作状態を説明する図である。すべての1次検索許可信号10−1〜10−2、2次検索許可信号11−1〜11−2が無効状態“0”であるため、無効化信号87−1、87−2は、ともに有効状態“1”となり、nビット2入力1出力イネーブル付きセレクタ82−1、82−2から出力されるビット線データ95−1、95−2は、ともに検索無効化データとなる。したがって、一致線37−1−1〜37−5−1、および一致線37−1−2〜37−5−2は、すべて有効状態“1”を保持する。また、記憶手段43−1〜43−5の出力である共通一致線38−1〜38−5は、記憶制御信号12により有効状態“1”に初期化されている。そのため、論理積信号40−1〜40−5はすべて“1”となる。その結果として、中間データ93−1は、連想メモリ・ワード44−1−1〜44−1−5に格納されているすべての記憶データの論理和演算結果“001.010.110”となる。また、中間データ93−2は、連想メモリ・ワード44−2−1〜44−2−5に格納されているすべての記憶データの論理和演算結果“011.011.101”となる。
[ステップS101]
次に、クロック信号41に同期して主制御回路6の動作は、図5のフローチャートのステップS101に移行し、すべての1次検索許可信号10−1〜10−rに有効状態“1”を出力し、すべての2次検索許可信号11−1〜11−rに無効状態“0”を出力する。また、ステップS101での論理積信号40−1〜40−mの値を、次のステップS102に移行するときに記憶手段43−1〜43−mに記憶させるための信号を記憶制御信号12に出力する。
図7は、連想メモリ1を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS101での動作状態を説明する図である。
単一領域検索用連想メモリ36−1においては1次検索許可信号10−1が有効状態“1”であるため、nビット2入力1出力イネーブル付きセレクタ82−1は検索データ3−1の値“001.010.110”をビット線データ95−1として出力し、比較制御信号85−1には無効状態“0”が出力される。そのため、ビット線データ95−1の値と、連想メモリ・ワード44−1−1〜44−5−1に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として一致線37−1−1、37−2−1、37−3−1、37−4−1、および37−5−1が有効状態“1”となる。
単一領域検索用連想メモリ36−2においては1次検索許可信号10−2が有効状態“1”であるため、nビット2入力1出力イネーブル付きセレクタ82−2は検索データ3−2の値“010.011.101”をビット線データ95−2として出力し、比較制御信号85−2には無効状態“0”が出力される。そのため、ビット線データ95−2の値と、連想メモリ・ワード44−1−2〜44−5−2に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として一致線37−1−2、37−3−2、および37−5−2が有効状態“1”となり、一致線37−2−2、および37−4−2は無効状態“0”となる。
記憶手段43−1〜43−5はステップS100で初期化された値“1”を共通一致線38−1〜38−5に出力しているため、論理積信号40−1、40−3、および40−5が“1”となり、論理積信号40−2、および40−4は“0”となる。論理積信号40−1〜40−5の値は、記憶制御信号12によって、次のステップに移行するときに記憶手段43−1〜43−5に記憶される。
[ステップS102]
次に、クロック信号41に同期して主制御回路6の動作は、図5のフローチャートのステップS102に移行し、1次検索許可信号10−1〜10−r、2次検索許可信号11−1〜11−rの中で、優先順位が最も高い1である単一領域検索用連想メモリ36−1に対応する2次検索許可信号11−1のみに有効状態“1”を出力し、他の信号には無効状態“0”を出力する。また、ステップS102での論理積信号40−1〜40−mの値を、次のステップS103に移行するときに記憶手段43−1〜43−mに記憶させるための信号を記憶制御信号12に出力する。
図8は、連想メモリ1を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS102での動作状態を説明する図である。
記憶手段43−1〜43−5はステップS101で記憶された値を出力しているため、共通一致線38−1、38−3、および38−5が“1”となり、共通一致線38−2、および38−4は“0”となる。このため、単一領域検索用連想メモリ36−1の中間データ93−1は、連想メモリ・ワード44−1−1、44−3−1、および44−5−1に格納されている記憶データの論理和演算結果“001.010.000”となる。また、単一領域検索用連想メモリ36−2の中間データ93−2は、連想メモリ・ワード44−1−2、44−3−2、および44−5−2に格納されている記憶データの論理和演算結果“010.011.101”となる。
優先順位が最も高い1である単一領域検索用連想メモリ36−1においては、2次検索許可信号11−1が有効状態“1”であるため、nビット2入力1出力イネーブル付きセレクタ82−1は中間データ93−1の値“001.010.000”をビット線データ95−1として出力し、比較制御信号85−1には有効状態“1”が出力される。そのため、ビット線データ95−1の値と、連想メモリ・ワード44−1−1〜44−5−1に格納されている記憶データとを、対応するマスク情報を考慮せずにそのまま比較を行い、結果として一致線37−1−1、および37−3−1が有効状態“1”となり、一致線37−2−1、37−4−1、および37−5−1は無効状態“0”となる。
単一領域検索用連想メモリ36−2においては1次検索許可信号10−2、2次検索許可信号11−2ともに無効状態“0”であるため無効化信号87−2が有効状態“1”となり、nビット2入力1出力イネーブル付きセレクタ82−2は検索無効化データをビット線データ95−2として出力し、比較制御信号85−2には無効状態“0”が出力される。そのため、一致線37−1−2〜37−5−2は、すべて有効状態“1”となる。
一致線37−1−1〜37−5−1、一致線37−1−2〜37−5−2、および共通一致線38−1〜38−5の、それぞれ対応する信号の論理積演算結果より、論理積信号40−1、および40−3が有効状態“1”となり、論理積信号40−2、40−4、および40−5は無効状態“0”となる。論理積信号40−1〜40−5の状態は、記憶制御信号12によって、次のステップに移行するときに記憶手段43−1〜43−5に記憶される。
[ステップS103〜S105]
次に、クロック信号41に同期して主制御回路6の動作は、図5のフローチャートのステップS103に移行し、内部変数28の値pと、連想メモリ1が有する単一領域検索用連想メモリ36の個数rとを比較する。値が一致した場合には検索動作は終了し、最終的な検索結果が、有効状態を出力している一致信号5−1〜5−mとして得られる。不一致の場合には、ステップS104に進み内部変数pの値に1を加算した後、ステップS105に進み、1次検索許可信号10−1〜10−r、2次検索許可信号11−1〜11−rの中で、優先順位が内部変数28の値pと等しい単一領域検索用連想メモリ36−pに対応する2次検索許可信号11−pのみに有効状態“1”を出力し、他の信号には無効状態“0”を出力する。また、ステップS105での論理積信号40−1〜40−mの値を、次のステップS103に移行するときに記憶手段43−1〜43−mに記憶させるための信号を記憶制御信号12に出力する。ここでは、ステップS103、S104、S105は、クロック信号41の同一状態で実行される場合を示したが、適宜、クロック信号41により動作を分割しても構わないことはいうまでもない。
図9は、連想メモリ1を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS105での動作状態を説明する図である。
記憶手段43−1〜43−5はステップS102で記憶された値を出力しているため、共通一致線38−1、および38−3が“1”となり、共通一致線38−2、38−4、および38−5は“0”となる。このため、単一領域検索用連想メモリ36−1の中間データ93−1は、連想メモリ・ワード44−1−1、および44−3−1に格納されている記憶データの論理和演算結果“001.010.000”となる。また、単一領域検索用連想メモリ36−2の中間データ93−2は、連想メモリ・ワード44−1−2、および44−3−2に格納されている記憶データの論理和演算結果“010.011.000”となる。
単一領域検索用連想メモリ36−1においては1次検索許可信号10−1、2次検索許可信号11−1ともに無効状態“0”であるため無効化信号87−1が有効状態“1”となり、nビット2入力1出力イネーブル付きセレクタ82−1は検索無効化データをビット線データ95−1として出力し、比較制御信号85−1には無効状態“0”が出力される。そのため、一致線37−1−1〜37−5−1は、すべて有効状態“1”となる。
内部変数28の値pが2であるため、優先順位が2である単一領域検索用連想メモリ36−2においては、2次検索許可信号11−2が有効状態“1”となり、nビット2入力1出力イネーブル付きセレクタ82−2は中間データ3−2の値“010.011.000”をビット線データ95−2として出力し、比較制御信号85−2には有効状態“1”が出力される。そのため、ビット線データ95−2の値と、連想メモリ・ワード44−1−2〜44−5−2に格納されている記憶データとを、対応するマスク情報を考慮せずに、そのまま比較を行い、結果として一致線37−3−2が有効状態“1”となり、一致線37−1−2、37−2−2、37−4−2、および37−5−2は無効状態“0”となる。
一致線37−1−1〜37−5−1、一致線37−1−2〜37−5−2、および共通一致線38−1〜38−5の、それぞれ対応する信号の論理積演算結果より、論理積信号40−3が有効状態“1”となり、論理積信号40−1、40−2、40−4、および40−5は無効状態“0”となる。論理積信号40−1〜40−5の状態は、記憶制御信号12によって、次のステップに移行するときに記憶手段43−1〜43−5に記憶される。
次のクロック信号41に同期して主制御回路6の動作は、図5のフローチャートのステップS103に移行し、内部変数28の値pと、連想メモリ1が有する単一領域検索用連想メモリ36の個数rとを比較する。図9の例では、内部変数28の値pと、連想メモリ1が有する単一領域検索用連想メモリ36の個数rは、ともに2であり、検索結果終了する。このとき、一致信号5−1〜5−5の中で有効状態“1”を出力しているものは一致信号5−3のみであり、これが最終的な検索結果として得られることになる。前述のように、ネットワーク・アドレス(1.2.6)を持つPC401−1から、ネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送は、転送規則3が適用されるべきであり、正しい結果が得られていることがわかる。
図5のフローチャートのステップS102、ステップS105の直前にウエイト・サイクルを挿入し、中間データ93−1〜93−rを格納するためのラッチを挿入することにより、動作周波数を高くすることができることはいうまでもない。
また、ステップS105では、ステップS102で2次検索を行ったときに一致したワードの中から、さらに2次検索を行うのであるから、図9に示すステップS105での中間データ93−1の値と、図8に示すステップS102での中間データ93−1の値は当然、同一である。したがって、図5のフローチャートのステップS105において、内部変数28の値がpのときに、2次検索信号11−1〜11−pに有効状態を出力しても、同じ結果が得られることがわかる。
また、図5のフローチャートのステップS102における主制御回路6の動作をすべての2次検索許可信号11−1〜11−rに有効状態を出力するように変更すれば、従来の連想メモリ101とまったく等価な検索動作になることは明らかである。また、i番目の検索データ3−iに対して1次検索許可信号10−iと2次検索許可信号11−iを独立に制御することにより、1個の連想メモリ1を、r個の従来の連想メモリ101と等価に使用できることも明らかである。動作を選択するための入力信号を主制御回路6に追加することにより、本発明の図5のフローチャートの動作と、上述の複数の動作を切り替えて使用できることはいうまでもない。
上述のように、本発明の連想メモリでは、ステップS101、ステップS102、およびS105における3回の検索動作により転送可否判定演算を実行することが可能である。本発明の連想メモリによる1回の検索動作に1クロックを要するとすれば、転送可否判定演算は検索領域の個数rに1を加算したクロック数で実行できることになる。
また、上述のように、最終的に適用されるべき転送規則に対応する一致信号のみを有効状態にするため、転送規則の格納順序、格納する語の位置には制限がない。したがって、転送規則の追加、削除、修正の際にソート処理やテーブル作成などの多くのクロック数がかかる前処理は不要であり、通常のメモリ・アクセスに要する時間のみで転送規則の追加、削除、修正が可能である。これにより、連想メモリを管理するソフトウエアを非常に簡単にすることが可能である。
また、本発明の第一の構成例では、上述のように従来の連想メモリ101と比べて数%の回路規模の増加で構成することが可能である。
[第一の実施例の単一領域検索用連想メモリの第二の構成]
図10は、本発明の第一の実施の形態の連想メモリにおける、単一領域検索用連想メモリの第二の構成例を示すブロック図である。図10に示す第二の構成の単一領域検索用連想メモリ22の各構成要素を、図3に示した単一領域検索用連想メモリ36の構成と比較すると、nビット2入力1出力イネーブル付きセレクタ82がnビット2入力1出力セレクタ96に変更されたことと、j番目の一致線37−jに論理ゲート37−jが挿入されたことと、それに伴い、制御回路45から出力される無効化信号87がm個の論理ゲート78−1〜78−mに入力されることと、j番目の連想メモリ・ワード70−1の中のn個の連想メモリ・セル69−j−1〜69−j−nから比較結果として出力される信号の名称が内部一致線97−jに変更されたことの他は、図3に示した単一領域検索用連想メモリ36と全く同様に構成される。したがって、単一領域検索用連想メモリ36と異なる点についてのみ説明する。
nビット2入力1出力セレクタ96は、選択信号86、中間データ線92−1〜92−n、検索データ3−1〜3−nを入力とし、ビット線51−1〜51−nを出力とする。nビット2入力1出力セレクタ96は、選択信号86が無効状態の場合には検索データ3−1〜3−nを、選択信号86が有効状態の場合には中間データ線92−1〜92−nを、ビット線51−1〜51−nに出力する。
内部一致線97−1〜97−mは、図3の一致線37−1〜37−mと同様に、あらかじめハイ・レベルにプリ・チャージされ、有効状態“1”になっているものとする。また、図3の一致線37−jと同様に、j番目の連想メモリ・ワード44−jの中のn個の比較器84−j−1〜84−j−nがすべて内部一致線97−jを開放状態にしているときに、内部一致線97−jは有効状態“1”を保持し、それ以外の場合には無効状態“0”となるような内部一致線97の有効状態“1”を真としたワイアードAND論理接続を構成している。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
j番目の論理ゲート78−jは、内部一致線97−jと無効化信号87を入力とし、一致線37−jを出力とする。また、無効化信号87が有効状態の場合には一致線37−jに共通一致線38の有効状態を出力し、それ以外の場合には内部一致線78−jの状態を一致線37−jに出力する。
つまり、ビット線51−1〜51−nに検索無効化データを出力する機能を有する図3に示す単一領域検索用連想メモリ36と異なり、図10に示す第二の構成の単一領域検索用連想メモリ22では、論理ゲート78−1〜78−mにより一致線37−1〜37−mを制御することにより、1次検索許可信号10と2次検索許可信号11が、ともに無効状態の場合には、m本の一致線37−1〜37−mにすべて共通一致線38の有効状態を出力する機能を実現している。第二の構成の単一領域検索用連想メモリ22の場合では、比較器84−1−1〜84−m−nの構成に依存せずに、確実に上述の機能を実現することが可能である。また、論理ゲート78−1〜78−mの挿入位置を、図1の論理積手段39−1〜39−mの入力に移動しても連想メモリ1全体としては全く等価なことはいうまでもない。
[第二の実施例の構成]
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。図11は、本発明の第二の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。図11に示す第二の実施の形態の連想メモリ29は、r個の単一領域検索用連想メモリ26−1〜26−rのそれぞれj番目の連想メモリ・ワード27−j−1〜27−j−rの比較結果の出力信号どうしを1本の一致線37−jにワイアードAND論理接続し、さらに一致線37−jにダイナミックに保持されている状態を中間データ生成に利用するものである。ここで一致線37−jは、開始信号42が有効状態のときのみ有効状態“1”にプリ・チャージされるものとする。したがって、図2に示した第一の実施の形態の連想メモリ1における論理積手段39−jと、記憶手段43−jと、および共通一致線38−jは、図11に示す第二の実施の形態の連想メモリ29では、ワイアードAND論理接続された一致線37−jにより実現している。そのため、主制御回路6から出力される記憶制御信号12は、どこにも接続されない。また、図11では、一致線37−jの状態を一致信号5−jとして直接外部に出力している。これらの他は、図2に示す第一の実施の形態の連想メモリ1の構成と全く同様であり、複数の検索データから構成される入力データに対して同様な検索動作を実行できることは明らかである。
図11に示す第二の実施の形態の連想メモリ29では、r個の単一領域検索用連想メモリ26−1〜26−r間の配線数は、m本の一致線37−1〜37−mのみである。図2に示す第一の実施の形態の連想メモリ1では、r個の単一領域検索用連想メモリ36−1〜36−r間の配線数は、m×r本の一致線37−1−1〜37−m−rとm本の共用一致線38−1〜38−mの合計(m×(r+1))本であり、第二の実施の形態の連想メモリ29では配線数が大幅に減少していることがわかる。r個の単一領域検索用連想メモリ26−1〜26−r間の配線は、連想メモリ29の全域に渡って配線されるために、配線容量が大きくなり、保持している状態が遷移するたびに消費する電力は非常に大きい。したがって、第二の実施の形態の連想メモリ29では第一の実施の形態の連想メモリに比べて、配線領域が大きく減少しチップ面積が削減されると同時に、消費電力を大幅に削減できるという利点を有する。
図12に、第二の実施の形態の連想メモリにおける単一領域検索用連想メモリの一構成例のブロック図を示す。図12に示す単一領域検索用連想メモリ26の構成は、図3に示す第一の実施の形態の単一領域検索用連想メモリ36と比較すると、j番目の連想メモリ・ワード27−jから共通一致線38−jが削除されたことと、それに伴いj番目の連想メモリ・ワード27−jを構成するn個の連想メモリ・セル71−j−1〜71−j−n内の論理ゲート56−j−1〜56−j−nの入力が共通一致線38−jから一致線37−jに変更されたことの他は、図3に示す第一の実施の形態の単一領域検索用連想メモリ36と全く同様である。
図12に示す単一領域検索用連想メモリ26では、出力信号である一致線37−jを、n個の論理ゲート56−j−1〜56−j−nをワイアードAND論理接続することにより生成しているため、単一領域検索用連想メモリ26の内部においても共通一致線38−jを一致線37−jと共用することが可能である。
もちろん、ワイアードAND論理接続ではなく通常の論理ゲートを用いて一致線37−1〜37−mを生成している場合、および図10に示すように一致線37−1〜37−mが論理ゲート78−1〜78−mから出力されているような単一領域検索用連想メモリにおいても、一致線37−jを出力する論理ゲートとして、無効状態のときのみ出力を駆動し、有効状態のときには出力を開放状態にする機能を有している論理ゲートを使用することにより、第二の実施の形態の連想メモリ29の単一領域検索用連想メモリ26として用いることが可能なことはいうまでもない。
また、図11では一致線37−jの状態を一致信号5−jとして直接外部に出力しているが、一致線37−jの状態をバッファに入力することにより波形を整形してから一致信号5−jとして出力してもよいことはいうまでもない。
[第三の実施例の構成]
次に、本発明の第三の実施の形態について図面を参照して詳細に説明する。図13は、本発明の第三の実施の形態のm語の連想メモリ25の構成例を示すブロック図である。本例のm語の連想メモリ25の構成要素を、第一の実施の形態の連想メモリ1と比較すると、単一領域検索用連想メモリ36−1〜36−rが単一領域検索用連想メモリ4−1〜4−rに変更されていることと、論理積手段39−1〜39−mが論理積手段13−1〜13−mに変更されていることと、および論理積手段15−1〜15−mが追加されていることのみが異なり、他の部分は同様に構成される。第一の実施の連想メモリ1を構成する単一領域検索用連想メモリ36では、1次検索許可信号10が有効状態の場合の検索結果も、2次検索許可信号11が有効状態の場合の検索結果も、同一の一致線37−1〜37−mに出力されたが、本例では、1次検索許可信号10が有効状態の場合の検索結果を出力する1次一致線17−1〜17−mと、2次検索許可信号11が有効状態の場合の検索結果を出力する2次一致線18−1〜18−mとを独立に有するような単一領域検索用連想メモリ4−1〜4−rにより本発明の連想メモリ25を構成した場合の例である。次に、第一の実施例と異なる点についてのみ説明を行う。
i番目の単一領域検索用連想メモリ4−iは、検索データ3−i、1次検索許可信号10−i、2次検索許可信号11−i、およびm本の共通一致線38−1〜38−mを入力とし、単一領域での検索結果を、m本の1次一致線17−i−1〜17−i−m、およびm本の2次一致線18−i−1〜18−i−mとして出力する。
単一領域検索用連想メモリ4−iの単一領域での検索動作は1次検索許可信号10−i、2次検索許可信号11−iにより次のように制御される。1次検索許可信号10−iが有効状態の場合には、検索データ3−iと内部に格納した記憶データとを、対応するマスク情報を考慮して比較する1次検索を行い、結果を1次一致線17−i−1〜17−i−mに出力する。2次検索許可信号11−iが有効状態の場合には、内部に格納した記憶データと、マスク情報の双方または一方を用いて、m本の共通一致線38−1〜38−mの状態に応じた中間データを生成し、中間データによる2次検索を行った結果を2次一致線18−i−1〜18−i−mに出力する。中間データによる2次検索としては、連想メモリ25をi番目の単一領域検索用連想メモリ4−i単独で構成し1次検索に続けて2次検索を行った場合に、検索データ3−iとマスク情報を考慮して一致する記憶データの中で最もマスク情報の有効状態のビット数が少ない記憶データに対応する2次一致線18−i−1〜18−i−mのみに有効状態を出力することができるものとする。
ただし、1次検索許可信号10−iが無効状態の場合にはm本の1次一致線17−i−1〜17−i−mにすべて共通一致線38の有効状態を出力し、2次検索許可信号11−iが無効状態の場合にはm本の2次一致線18−i−1〜18−i−mにすべて共通一致線38の有効状態を出力する。
j番目の論理積手段13−jは、r本の1次一致線17−j−1〜17−j−r、1本の共通一致線38−j、および1本の一致信号5−jを入力とし、共通一致線38の有効状態を真とする論理積演算を行った結果を、論理積信号40−jとして出力する。
j番目の論理積手段15−jは、r本の2次一致線18−j−1〜18−j−rを入力とし、共通一致線38の有効状態を真とする論理積演算を行った結果を、一致信号5−jとして出力する。
図14は、本発明の第三の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。本例では、1番目の単一領域検索用連想メモリ4−1はnビットm語の構成とし、r番目の単一領域検索用連想メモリ4−rはsビットm語の構成とするが、1語を構成するビット数が異なるのみで内部の構成は全く同一とする。本例では、i番目のgビットm語の単一領域検索用連想メモリ4−iは、1次検索許可信号10−iが有効状態のときに検索動作を行うgビットm語の1次連想メモリ20−iと、2次検索許可信号11−iが有効状態のときに検索動作を行うgビットm語の2次連想メモリ21−iとを独立に有する場合についての説明を行う。図13の実施例の連想メモリ25の単一領域検索用連想メモリ4−iは図14に示すような構成に限定されず、例えば特開平11−073782号公報に示されるような連想メモリを用いても構成することが可能であることはいうまでもない。
1次連想メモリ20−iは、検索データ3−iと、1次検索許可信号10−iと、共通一致線38−1〜38−mを入力とし、単一領域での検索結果を1次一致線17−1−i〜17−m−iに出力するとともに、中間データ93−iを出力とする。ただし、1次検索許可信号10−iが無効状態の場合には1次一致線17−i−1〜17−i−mにすべて共通一致線38の有効状態を出力する。1次連想メモリ20−iはm個の連想メモリ・ワード7−1−i〜7−m−iを有しており、j番目の連想メモリ・ワード7−j−iは、g個のデータ・セル8−j−1−i〜8−j−g−iおよび、g個のマスク・セル9−j−1−i〜9−j−g−iを有している。
2次連想メモリ21−iは、中間データ93−iと、2次検索許可信号11−iを入力とし、単一領域での検索結果を2次一致線18−1−i〜18−m−iに出力する。ただし、2次検索許可信号11−iが無効状態の場合には2次一致線18−i−1〜18−i−mにすべて共通一致線38の有効状態を出力する。2次連想メモリ21−iはm個の連想メモリ・ワード24−1−i〜24−m−iを有しており、j番目の連想メモリ・ワード24−j−iは、g個のデータ・セル23−j−1−i〜23−j−g−iを有している。j番目の連想メモリ・ワード24−j−iのkビット目のデータ・セル23−j−k−iには、第二の記憶データとして、1次連想メモリ20−iの対応するデータ・セル8−j−k−iに格納している記憶データと同じ値をあらかじめ格納しているものとする。ただし、対応するマスク・セル9−j−kに格納されたビット情報がマスク有効状態の場合には、データ・セル23−j−kには記憶データの無効状態を、第二の記憶データとして格納するものとする。
[第三の実施例の単一領域検索用連想メモリの構成]
次に上述の1次連想メモリ20の構成例を図15を用いて説明する。1次連想メモリ20は、nビットm語の連想メモリ・ワード7−1〜7−mと、論理ゲート58−1〜58−nと、抵抗57−1〜57−nを有している。j番目の連想メモリ・ワード7−jは、n個の連想メモリ・セル50−j−1〜50−j−nを有している。連想メモリ・ワード7−jには、対応するデータ・ワード線53−jと、マスク・ワード線54−jと、共通一致線38−jと、および1次検索許可信号10が入力のために接続され、対応する1次一致線17−j、およびn本の一致データ中間論理線52−1〜52−nが出力のために接続され、n本のビット線51−1〜51−nが入出力のために接続されている。
なお、本例では、マスク情報のマスク有効状態を“0”、マスク無効状態を“1”とし、記憶データの有効状態を“1”、無効状態を“0”とする。記憶データと同様に、一致データ論理和線52−1〜52−nの有効状態を“1”、無効状態を“0”とする。1次一致線17−1〜17−m、2次一致線18〜1〜18−m、および共通一致線38−1〜38−mの有効状態を“1”、無効状態を“0”とする。
1次一致線17−1〜17−mは、あらかじめハイ・レベルにプリ・チャージされ、有効状態“1”になっているものとする。
連想メモリ・ワード7−jのkビット目の連想メモリ・セル50−j−kには、対応するデータ・ワード線53−jと、マスク・ワード線54−jと、共通一致線38−jと、および1次検索許可信号10が入力のために接続され、対応する1次一致線17−j、および一致データ中間論理線52−kが出力のために接続され、ビット線51−kが入出力のために接続されている。
各連想メモリ・セル50−j−kは、ビット線51−kを介して外部から入力される記憶データの対応するビット情報を格納するデータ・セル8−j−kと、データ・セル8−j−kに記憶されたビット情報と外部からビット線51−kを介して入力される情報とを比較する比較器55−j−kと、外部からビット線51−kを介して入力されるマスク情報の対応するビット情報を格納するマスク・セル9−j−kと、および論理ゲート56−j−kとを備えている。
ここで、図15に示す1次連想メモリ20の各構成要素は、図3に示した第一の実施の形態における単一領域検索用連想メモリ36の構成と比較すると、外部からの検索データ3−1〜3−nがビット線51−1〜51−nに直接入力され、中間データ線92−1〜92−nの状態が中間データ93として直接外部に出力されることと、それに伴い、nビット2入力1出力イネーブル付きセレクタ82と、制御回路45が削除されたことと、比較器55−1−1〜55−m−nに入力される信号が比較制御信号85から1次検索許可信号10に変更されたことと、および一致線37−1〜37−mの名称が1次一致線17−1〜17−mに変更されたことの他は、図3に示した単一領域検索用連想メモリ36と全く同様である。中間データ線92−1〜92−nから出力される中間データ93も、図3に示した単一領域検索用連想メモリ36と全く同様の操作により生成される。
したがって、第一の実施の形態の単一領域検索用連想メモリ36と異なる点についてのみ説明する。
比較器55−j−kは、対応するビット線51−kと、それに同一の連想メモリ・セル50−j−kの中のデータ・セル8−j−kに格納されている記憶データと、マスク・セル9−j−kに格納されているマスク情報と、および1次検索許可信号10を入力とし、1次一致線17−jを出力とする。比較器55−j−kは、1次検索許可信号10が有効状態“1”かつ、ビット線51−kの値と記憶データが一致しないならば対応する1次一致線17−jに無効状態“0”を出力し、それ以外の場合には1次一致線17−jを開放状態にする。連想メモリ・ワード7−jの中のn個の比較器55−j−1〜55−j−nがすべて1次一致線17−jを開放状態にしているときに、1次一致線17−jは有効状態“1”となり、それ以外の場合には無効状態“0”となる、1次一致線17の有効状態“1”を真としたワイアードAND論理接続を構成している。つまり、1次検索許可信号10が無効状態“0”のときには常に1次一致線17−jを有効状態“1”とし、1次検索許可信号10が有効状態“1”のときには、マスク情報がマスク有効状態“0”のために比較対象から除外されたビットを除いて連想メモリ・ワード7−jが格納している記憶データとビット線51−1〜51−nが完全に一致する場合に限り、1次一致線17−jは有効状態“1”となり、完全に一致しない場合には無効状態“0”となる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
[第三の実施例の単一領域検索用連想メモリの構成詳細]
次に、上述の連想メモリ・セル50の構成例を図16を用いて説明する。図4に示す第一の実施の形態の連想メモリ・セル83と比較すれば分かるように、本発明の連想メモリ・セル50は、比較器55に入力される信号が比較制御信号85から1次検索許可信号10に変更されたことと、一致線37−1〜37−mの名称が1次一致線17−1〜17−mに変更されたこと、それに伴い比較制御信号85により導通状態が制御されるMOSトランジスタ(T7)209が削除され、1次検索許可信号10により導通状態が制御されるMOSトランジスタ(T12)216が追加されていることの他は、図4に示す第一の実施の形態の連想メモリ・セル83と全く同様に構成される。したがって、第一の実施の形態の連想メモリ・セル83と異なる点についてのみ説明を行う。
比較器55はMOSトランジスタ(T3)205、MOSトランジスタ(T4)206、MOSトランジスタ(T5)207、MOSトランジスタ(T6)208、およびMOSトランジスタ(T12)216により構成される。MOSトランジスタ(T3)205とMOSトランジスタ(T4)206はビット線51a,51bの間に直列に挿入される。MOSトランジスタ(T3)205は、データ・セル8内の反転論理ゲート(G1)201の出力がハイ・レベルのときに導通状態となる。MOSトランジスタ(T4)206は、データ・セル8内の反転論理ゲート(G2)202の出力がハイ・レベルのときに導通状態となる。MOSトランジスタ(T6)208、MOSトランジスタ(T12)216、およびMOSトランジスタ(T5)207は、1次一致線17と低電位の間に直列に挿入される。MOSトランジスタ(T6)208は、マスク・セル9内の反転論理ゲート(G4)211の出力がハイ・レベルの時に導通状態となる。MOSトランジスタ(T12)216は、1次検索許可信号10が有効状態“1”の時に導通状態となる。
MOSトランジスタ(T5)207は、MOSトランジスタ(T3)205とMOSトランジスタ(T4)206の接続点の電位がハイ・レベルの時に導通状態となる。ビット線51aと反転論理ゲート(G1)201の出力がともにハイ・レベル、またはビット線51bと反転論理ゲート(G2)202の出力がともにハイ・レベルのときに、MOSトランジスタ(T3)205とMOSトランジスタ(T4)206の接続点はハイ・レベルとなり、MOSトランジスタ(T5)207を導通状態とする。
従って、データ・セル8に格納されている記憶データと、ビット線51a,51b上の検索データ3が異なる場合にMOSトランジスタ(T5)207は導通状態になる。またMOSトランジスタ(T6)208はマスク・セル9内に格納されているマスク情報が“0”のときには開放状態であり、“1”のときに導通状態となる。1次一致線17はあらかじめ高電位にプリ・チャージされているものとする。これにより、複数の連想メモリ・セル50が1次一致線17にMOSトランジスタ(T6)208を介して接続されているとき、一つの連想メモリ・セル50でもロウ・レベルを出力していると1次一致線17はロウ・レベルとなるようなワイアードAND接続となる。
MOSトランジスタ(T5)207が導通状態のときに、直列接続されたMOSトランジスタ(T6)208、MOSトランジスタ(T12)216が、ともに導通状態の場合にのみ連想メモリ・セル50は1次一致線17に無効状態“0”を出力し、それ以外の時には1次一致線17を開放状態とする。すなわち、マスク情報がマスク有効状態“0”または1次検索許可信号10が無効状態“0”の場合には検索データ3と記憶データの比較結果によらず1次一致線17を開放状態とし、マスク情報がマスク無効状態“1”かつ1次検索許可信号10が有効状態“1”の場合にはビット線51a,51b上の検索データ3とデータ・セル8に格納されている記憶データが一致するときに開放状態とし、異なる場合には無効状態“0”を出力する。
本例では、1次検索許可信号10によりMOSトランジスタ(T12)216を制御することで、1次検索許可信号10が無効状態“0”の場合に1次一致線17を解放状態とすることを実現したが、第一の実施の形態の単一領域検索用連想メモリ36と同様に1次検索許可信号10が無効状態“0”の場合にビット線51a、51bをともに“0”にする手段を設けることによっても実現できることはいうまでもない。また、図10に示した第一の実施の形態の第二の構成の単一領域検索用連想メモリ22と同様に、1次検索許可信号10が無効状態の場合には1次一致線を有効状態とする論理ゲートを挿入することによっても実現できることもいうまでもない。
次に2次連想メモリ21の構成例を図17に示す。2次連想メモリ21は、連想メモリ・ワード24−1〜24−mから構成され、j番目の連想メモリ・ワード24−jは、n個の連想メモリ・セル60−j−1〜60−j−nを備えている。連想メモリ・ワード24−jには、対応するデータ・ワード線61−jと、および2次検索許可信号11が入力のために接続され、対応する2次一致線18−jが出力のために接続され、n本のビット線59−1〜59−nが入出力のために接続されている。
j番目の連想メモリ・ワード24−jのkビット目の連想メモリ・セル60−j−kには、対応するデータ・ワード線61−jと、および2次検索許可信号11が入力のために接続され、対応する2次一致線18−jが出力のために接続され、ビット線59−kが入出力のために接続されている。また、連想メモリ・セル105−j−kは、第二の記憶データの対応するビット情報を格納するデータ・セル23−j−kと、ビット線59−kを介して入力される中間データ93とデータ・セル23−j−kに記憶されたビット情報とを比較する比較器62−j−kとを備えている。
連想メモリ・セル60−j−kにおいて、ビット線59−k、データ・ワード線61−j,データ・セル23−j−kの動作は、従来の連想メモリ・セル107と同様である。
2次一致線18−1〜18−mは、あらかじめハイ・レベルにプリ・チャージされているものとする。
比較器62−j−kは、2次検索許可信号11が有効状態“1”かつ、同一の連想メモリ・セル60−j−kの中のデータ・セル23−j−kに格納されている第二の記憶データとビット線59−kの値が一致しないならば対応する2次一致線18−jに無効状態“0”を出力し、それ以外の場合には2次一致線18−jを開放状態にする。したがって、連想メモリ・ワード24−jの中のn個の比較器62−j−1〜62−j−nがすべて2次一致線18−jを開放状態にしているときに、2次一致線18−jは有効状態“1”となり、それ以外の場合には無効状態“0”となる、2次一致線18の有効状態“1”を真としたワイアードAND論理接続を構成している。つまり、2次検索許可信号11が無効状態“0”のときには常に2次一致線18−jを有効状態“1”とし、2次検索許可信号11が有効状態“1”のときには、連想メモリ・ワード24−jが格納している記憶データとビット線59−1〜59−nが完全に一致する場合に限り、2次一致線18−jは有効状態“1”となり、完全に一致しない場合には無効状態“0”となる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
次に、2次連想メモリ21の連想メモリ・セル60の構成例を図18を用いて説明する。図16に示す1次連想メモリ20の連想メモリ・セル50と比較すれば分かるように、2次連想メモリ21の連想メモリ・セル60における、ビット線59a、59b、データ・ワード線61、およびデータ・セル23は、1次連想メモリ20の連想メモリ・セル50と同様である。
比較器62は、MOSトランジスタ(T23)225、MOSトランジスタ(T24)226、MOSトランジスタ(T25)227、およびMOSトランジスタ(T32)236により構成される。MOSトランジスタ(T23)225とMOSトランジスタ(T24)226はビット線59a,59bの間に直列に挿入される。MOSトランジスタ(T23)225は、データ・セル23内の反転論理ゲート(G21)221の出力がハイ・レベルのときに導通状態となる。MOSトランジスタ(T24)226は、データ・セル23内の反転論理ゲート(G22)222の出力がハイ・レベルのときに導通状態となる。MOSトランジスタ(T32)236、およびMOSトランジスタ(T25)227は、2次一致線18と低電位の間に直列に挿入される。MOSトランジスタ(T32)236は、2次検索許可信号11が有効状態“1”の時に導通状態となる。
MOSトランジスタ(T25)227は、MOSトランジスタ(T23)225とMOSトランジスタ(T24)226の接続点の電位がハイ・レベルの時に導通状態となる。ビット線59aと反転論理ゲート(G21)221の出力がともにハイ・レベル、またはビット線59bと反転論理ゲート(G22)222の出力がともにハイ・レベルのときに、MOSトランジスタ(T23)225とMOSトランジスタ(T24)226の接続点はハイ・レベルとなり、MOSトランジスタ(T25)227を導通状態とする。
従って、データ・セル23に格納されている第二の記憶データと、ビット線59a,59b上の中間データ23が異なる場合にMOSトランジスタ(T25)227は導通状態になる。2次一致線18はあらかじめ高電位にプリ・チャージされているものとする。これにより、複数の連想メモリ・セル60が2次一致線18にMOSトランジスタ(T32)236を介して接続されているとき、一つの連想メモリ・セル60でもロウ・レベルを出力していると2次一致線18はロウ・レベルとなるようなワイアードAND接続となる。
MOSトランジスタ(T25)227が導通状態のときに、直列接続されたMOSトランジスタ(T32)236が導通状態の場合にのみ連想メモリ・セル60は2次一致線18に無効状態“0”を出力し、それ以外の時には2次一致線18を開放状態とする。すなわち、2次検索許可信号11が無効状態“0”の場合には中間データ23と第二の記憶データの比較結果によらず2次一致線18を開放状態とし、2次検索許可信号11が有効状態“1”の場合にはビット線59a,59b上の中間データ23とデータ・セル23に格納されている第二の記憶データが一致するときに開放状態とし、異なる場合には無効状態“0”を出力する。
本例では、2次検索許可信号11によりMOSトランジスタ(T32)236を制御することで、2次検索許可信号11が無効状態“0”の場合に2次一致線18を解放状態とすることを実現したが、第一の実施の形態の単一領域検索用連想メモリ36と同様に2次検索許可信号11が無効状態“0”の場合にビット線59a、59bをともに“0”にする手段を設けることによっても実現できることはいうまでもない。
[第三の実施例の単一領域検索用連想メモリの動作]
次に、上述の単一領域検索用連想メモリ4を、従来の連想メモリ101の動作説明のときと同様に図33のネットワーク機器400−1における転送先ネットワーク・アドレスの計算に用いた場合の動作を、図19を用いて説明する。
単一領域検索用連想メモリ4を9ビット3語の構成と仮定し、1次連想メモリ20の各連想メモリ・ワード7−1〜7−3に格納されている記憶データ、マスク情報には、図33のネットワーク機器400−1のネットワーク・アドレス(1.*.*)以外の接続情報を記憶しているものとする。このとき、接続情報の中のドント・ケア“*”状態のビットは、マスク情報の該当ビットをマスク有効状態“0”とすることで表現される。記憶データの該当ビットの状態は任意であるが、本例では記憶データの無効状態“0”を格納することにする。
つまり、連想メモリ・ワード7−1には(2.*.*)を構造化データで表現するため、記憶データには2進数で(010.000.000)を、マスク情報として(111.000.000)で格納してある。同様に連想メモリ・ワード7−2には(2.3.*)を構造化データで表現するため、記憶データには2進数で(010.011.000)を、マスク情報として(111.111.000)を格納してある。連想メモリ・ワード7−3には(3.*.*)を構造化データで表現するため、記憶データには2進数で(011.000.000)を、マスク情報として(111.000.000)を格納してある。
2次連想メモリ21の各連想メモリ・ワード24−1〜24−3に格納されている第二の記憶データとして、図33のネットワーク機器400−1の接続情報においてドント・ケア“*”状態のビットを記憶データの無効状態“0”に置換した値を記憶しているものとする。つまり、連想メモリ・ワード24−1には(010.000.000)を、連想メモリ・ワード24−2には(010.011.000)を、連想メモリ・ワード24−3には(011.000.000)を、それぞれ格納してある。
また、図19では単一領域検索用連想メモリ4の説明のため、外部から、共通一致線18−1には1次一致線17−1の値が入力され、共通一致線18−2には1次一致線17−2の値が入力され、共通一致線18−3には1次一致線17−3の値が入力されているものとする。
以降、検索データ112として図33のPC401−2の8進表現のネットワーク・アドレス(2.3.4)を入力し検索動作を行った場合の動作説明をする。
あらかじめ、すべての1次一致線17−1〜17−3、および2次一致線18−1〜18−3は、有効状態“1”にプリ・チャージされているものとする。
8進表現で(2.3.4)の検索データ3をビット線51−1〜51−9に入力すると、1次連想メモリ4は、マスク情報によるドント・ケア“*”も考慮して1次検索を実行し、1次連想メモリ4の連想メモリ・ワード7−1に格納されている8進表現の(2.*.*)と、連想メモリ・ワード7−2に格納されている8進表現の(2.3.*)がビット線51−1〜51−9上の検索データ3と一致し、連想メモリ・ワード7−3に格納されている8進表現の(3.*.*)は不一致となる。したがって、1次一致線17−1、17−2の2本が有効状態“1”となり、残りの1次一致線17−3は無効状態“0”となる。このとき、上述のように外部から、共通一致線18−1には1次一致線17−1の値“1”が入力され、共通一致線18−2には1次一致線17−2の値“1”が入力され、共通一致線18−3には1次一致線17−3の値“0”が入力される。
ここで、中間データ線92−1からは、連想メモリ・ワード7−1内の一致データ中間論理線52−1に対応する記憶データ“0”と、連想メモリ・ワード7−2内の一致データ中間論理線52−1に対応する記憶データ“0”に対しての、“1”を真とした論理和結果“0”が出力される。中間データ線92−2からは、連想メモリ・ワード7−1内の一致データ中間論理線52−2に対応する記憶データ“1”と、連想メモリ・ワード7−1内の一致データ中間論理線52−2に対応する記憶データ“1”に対しての“1”を真とした論理和結果“1”が出力される。
以降同様に、中間データ線92−3からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、中間データ線92−4からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、中間データ線92−5からは“0”と“1”に対しての“1”を真とした論理和結果“1”が、中間データ線92−6からは“0”と“1”に対しての“1”を真とした論理和結果“1”が、中間データ線92−7からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、中間データ線92−8からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、中間データ線92−9からは“0”と“0”に対しての“1”を真とした論理和結果“0”が、それぞれ出力される。従って、中間データ線92−1〜92−9に出力される2進表現で“010011000”が、中間データ23として2次連想メモリ21に入力される。
2次連想メモリ21は、入力された中間データ23の値“010011000”に対して、2次検索を実行する。本例では、連想メモリ・ワード24−2が格納する第二の記憶データが完全に一致し、対応する2次一致線18−2を開放状態にする。他の連想メモリ・ワード24−1、および24−3が格納する第二の記憶データは一致しないので、対応する2次一致線18−1、および18−3に無効状態“0”を出力する。したがって、2次検索後も有効状態“1”を保持し続けるのは、2次一致線18−2のみとなる。
上述のように、単一領域検索用連想メモリ4は、図3で説明した単一領域検索用連想メモリ36と同様に、8進表現で(2.3.3)の検索データ3を入力した場合、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する2次一致線18−2のみに有効状態“1”を出力することがわかる。
[第三の実施例の動作]
次に本発明の第三の実施の形態の連想メモリの、複数の検索データから構成される入力データに対しての検索動作について、図5に示す本発明の連想メモリの複数の検索データから構成される入力データに対しての検索動作時の動作を示す、上述したフローチャートに則して説明する。ここでは、第一の実施の形態の連想メモリ1の説明のときと同様に、第三の実施の形態の連想メモリ25を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合を例として、図20、図21、図22、および図23を用いて、図5のフローチャートの各ステップごとに具体的に説明する。
第一の実施の形態の連想メモリ1の説明のときと同様に、データ転送時の9ビットの送出元アドレス(1.2.6)を検索データ3−1とし、9ビットの宛先アドレス(2.3.5)を検索データ3−2とし、検索データ3−1の優先順位を最も高い1とし、検索データ3−2の優先順位を2とする。図20、図21、図22、および図23において、連想メモリ25は、9ビット5語の単一領域検索用連想メモリ4−1、および4−2により構成されるものとする。
表1(b)における各転送規則の送出元ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データを、単一領域検索用連想メモリ4−1の1次連想メモリ20−1の転送規則に対応する連想メモリ・ワード7−1−1〜7−5−1の記憶データとして格納し、さらに2次連想メモリ21−1の転送規則に対応する連想メモリ・ワード24−1−1〜24−5−1の第二の記憶データとして格納するものとする。また、表1(b)における各転送規則の送出元ネットワーク・アドレスの9ビットの構造化データを構成する9ビットのマスク情報を、単一領域検索用連想メモリ4−1の1次連想メモリ20−1の転送規則に対応する連想メモリ・ワード7−1−1〜7−5−1のマスク情報として格納するものとする。
表1(b)における各転送規則の宛先ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データを、単一領域検索用連想メモリ4−2の1次連想メモリ20−2の転送規則に対応する連想メモリ・ワード7−1−2〜7−5−2の記憶データとして格納し、さらに2次連想メモリ21−2の転送規則に対応する連想メモリ・ワード24−1−2〜24−5−2の第二の記憶データとして格納するものとする。また、表1(b)における各転送規則の宛先ネットワーク・アドレスの9ビットの構造化データを構成する9ビットのマスク情報を、単一領域検索用連想メモリ4−2の1次連想メモリ20−2の転送規則に対応する連想メモリ・ワード7−1−2〜7−5−2のマスク情報として格納するものとする。
また、表1(b)における各転送規則の宛先ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、単一領域検索用連想メモリ36−2の転送規則に対応する連想メモリ・ワード44−1−2〜44−5−2のそれぞれ記憶データ、マスク情報として格納するものとする。
すべての1次一致線17−1−1〜17−m−r、およびすべての2次一致線18−1−1〜18−m−rは、あらかじめ有効状態“1”にプリ・チャージされているものとする。
第三の実施の形態の連想メモリ25の主制御回路6の、図5のフローチャートの各ステップにおける動作は、第一の実施の形態の連想メモリ1の場合と同様である。また、図20、図21、図22、および図23におけるクロック信号41および開始信号42の状態は、第一の実施の形態の連想メモリ1と同様とする。
[ステップS100]
図20は、連想メモリ1を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、図5のステップS100での動作状態を説明する図である。
1次検索許可信号10−1が無効状態“0”であるため、1次連想メモリ20−1はすべての1次一致線17−1−1〜17−5−1を解放状態とし、結果としてすべての1次一致線17−1−1〜17−5−1は有効状態“1”を保持する。2次検索許可信号11−1が無効状態“0”であるため、2次連想メモリ21−1はすべての2次一致線18−1−1〜18−5−1を解放状態とし、結果としてすべての2次一致線18−1−1〜18−5−1は有効状態“1”を保持する。
1次検索許可信号10−2が無効状態“0”であるため、1次連想メモリ20−2はすべての1次一致線17−1−2〜17−5−2を解放状態とし、結果としてすべての1次一致線17−1−2〜17−5−2は有効状態“1”を保持する。2次検索許可信号11−2が無効状態“0”であるため、2次連想メモリ21−2はすべての2次一致線18−1−2〜18−5−2を解放状態とし、結果としてすべての2次一致線18−1−1〜18−5−1は有効状態“1”を保持する。したがって、論理積手段15−1〜15−5から出力される一致信号5−1〜5−5はすべて有効状態“1”となる。
また、記憶手段43−1〜43−5の出力である共通一致線38−1〜38−5は、記憶制御信号12により有効状態“1”に初期化されている。そのため、論理積信号40−1〜40−5はすべて“1”となる。その結果として、中間データ93−1は、連想メモリ・ワード44−1−1〜44−1−5に格納されているすべての記憶データの論理和演算結果“001.010.110”となる。また、中間データ93−2は、連想メモリ・ワード44−2−1〜44−2−5に格納されているすべての記憶データの論理和演算結果“011.011.101”となる。
[ステップS101]
図21は、連想メモリ25を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS101での動作状態を説明する図である。
単一領域検索用連想メモリ4−1の1次連想メモリ20−1においては、1次検索許可信号10−1が有効状態“1”であるため、検索データ3−1の値“001.010.110”と、連想メモリ・ワード7−1−1〜7−5−1に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として1次一致線17−1−1、17−2−1、17−3−1、17−4−1、および17−5−1が有効状態“1”となる。
単一領域検索用連想メモリ4−2の1次連想メモリ20−2においては、1次検索許可信号10−2が有効状態“1”であるため、検索データ3−2の値“010.011.101”と、連想メモリ・ワード7−1−2〜7−5−2に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として1次一致線17−1−2、17−3−2、および17−5−2が有効状態“1”となり、1次一致線17−2−2、および17−4−2は無効状態“0”となる。
2次検索許可信号11−1が無効状態“0”であるため、2次連想メモリ21−1はすべての2次一致線18−1−1〜18−5−1を解放状態とし、結果としてすべての2次一致線18−1−1〜18−5−1は有効状態“1”を保持する。2次検索許可信号11−2が無効状態“0”であるため、2次連想メモリ21−2はすべての2次一致線18−1−2〜18−5−2を解放状態とし、結果としてすべての2次一致線18−1−2〜18−5−2は有効状態“1”を保持する。したがって、論理積手段15−1〜15−5から出力される一致信号5−1〜5−5は、すべて有効状態“1”となる。
記憶手段43−1〜43−5はステップS100で初期化された値“1”を共通一致線38−1〜38−5に出力しているため、論理積信号40−1、40−3、および40−5が“1”となり、論理積信号40−2、および40−4は“0”となる。その結果として、中間データ93−1は、連想メモリ・ワード44−1−1〜44−1−5に格納されているすべての記憶データの論理和演算結果“001.010.110”となる。また、中間データ93−2は、連想メモリ・ワード44−2−1〜44−2−5に格納されているすべての記憶データの論理和演算結果“011.011.101”となる。論理積信号40−1〜40−5の値は、記憶制御信号12によって、次のステップに移行するときに記憶手段43−1〜43−5に記憶される。
[ステップS102]
図22は、連想メモリ25を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS102での動作状態を説明する図である。
記憶手段43−1〜43−5はステップS101で記憶された値を出力しているため、共通一致線38−1、38−3、および38−5が“1”となり、共通一致線38−2、および38−4は“0”となる。このため、単一領域検索用連想メモリ4−1の中間データ93−1の値は、連想メモリ・ワード7−1−1、7−3−1、および7−5−1に格納されている記憶データの論理和演算結果“001.010.000”となる。また、単一領域検索用連想メモリ4−2の中間データ93−2の値は、連想メモリ・ワード7−1−2、7−3−2、および7−5−2に格納されている記憶データの論理和演算結果“010.011.101”となる。
優先順位が最も高い1である単一領域検索用連想メモリ4−1においては、2次検索許可信号11−1に有効状態“1”が入力され、2次連想メモリ21−1は、中間データ93−1の値“001.010.000”と、連想メモリ・ワード24−1−1〜24−5−1に格納されている第二の記憶データとの比較を行い、結果として2次一致線18−1−1、および18−3−1が有効状態“1”となり、2次一致線18−2−1、18−4−1、および18−5−1は無効状態“0”となる。単一領域検索用連想メモリ4−1の1次連想メモリ20−1は、1次検索許可信号10−1が無効状態“0”であるため、すべての1次一致線17−1−1〜17−5−1を解放状態とし、結果としてすべての1次一致線17−1−1〜17−5−1は有効状態“1”を保持する。
単一領域検索用連想メモリ4−2の1次連想メモリ20−2は、1次検索許可信号10−2が無効状態“0”であるため、すべての1次一致線17−1−2〜17−5−2を解放状態とし、結果としてすべての1次一致線17−1−2〜17−5−2は有効状態“1”を保持する。単一領域検索用連想メモリ4−2の2次連想メモリ21−2は、2次検索許可信号11−2が無効状態“0”であるため、すべての2次一致線18−1−2〜18−5−2を解放状態とし、結果としてすべての2次一致線18−1−2〜18−5−2は有効状態“1”を保持する。
したがって、2次一致線18−1−1〜18−5−1、2次一致線18−1−2〜18−5−2の対応する信号どうしの論理積演算結果より、論理積手段15−1〜15−5は、一致信号5−1、および5−3に有効状態“1”を出力し、一致信号5−2、5−4、および5−5には無効状態“0”を出力する。
1次一致線17−1−1〜17−5−1、1次一致線17−1−2〜17−5−2、一致信号5−1〜5−5、および共通一致線38−1〜38−5の、それぞれ対応する信号どうしの論理積演算結果より、論理積手段13−1〜13−5は、論理積信号40−1、および40−3に有効状態“1”を出力し、論理積信号40−2、40−4、および40−5には無効状態“0”を出力する。論理積信号40−1〜40−5の状態は、記憶制御信号12によって、次のステップに移行するときに記憶手段43−1〜43−5に記憶される。
[ステップS103〜S105]
図23は、連想メモリ25を、図33におけるネットワーク・アドレス(1.2.6)を持つPC401−1からネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送についての転送の可否判定に用いた場合の、ステップS105での動作状態を説明する図である。
記憶手段43−1〜43−5はステップS102で記憶された値を出力しているため、共通一致線38−1、および38−3が“1”となり、共通一致線38−2、38−4、および38−5は“0”となる。このため、単一領域検索用連想メモリ4−1の中間データ93−1の値は、連想メモリ・ワード7−1−1、および7−3−1に格納されている記憶データの論理和演算結果“001.010.000”となる。また、単一領域検索用連想メモリ4−2の中間データ93−2の値は、連想メモリ・ワード7−1−2、および7−3−2に格納されている記憶データの論理和演算結果“010.011.000”となる。
優先順位が1である単一領域検索用連想メモリ4−1の1次連想メモリ20−1は、1次検索許可信号10−1が無効状態“0”であるため、すべての1次一致線17−1−1〜17−5−1を解放状態とし、結果としてすべての1次一致線17−1−1〜17−5−1は有効状態“1”を保持する。単一領域検索用連想メモリ4−1の2次連想メモリ21−1は、2次検索許可信号11−1が無効状態“0”であるため、すべての2次一致線18−1−1〜18−5−1を解放状態とし、結果としてすべての2次一致線18−1−1〜18−5−1は有効状態“1”を保持する。
優先順位が2である単一領域検索用連想メモリ4−2の1次連想メモリ20−2においては、2次検索許可信号11−2に有効状態“1”が入力され、2次連想メモリ21−2は、中間データ93−2の値“010.011.000”と、連想メモリ・ワード24−1−2〜24−5−2に格納されている第二の記憶データとの比較を行い、結果として2次一致線18−3−2が有効状態“1”となり、2次一致線18−1−2、18−2−2、18−4−2、および18−5−2は無効状態“0”となる。単一領域検索用連想メモリ4−2の1次連想メモリ20−2は、1次検索許可信号10−2が無効状態“0”であるため、すべての1次一致線17−1−2〜17−5−2を解放状態とし、結果としてすべての1次一致線17−1−2〜17−5−2は有効状態“1”を保持する。
したがって、2次一致線18−1−1〜18−5−1、2次一致線18−1−2〜18−5−2の対応する信号どうしの論理積演算結果より、論理積手段15−1〜15−5は、一致信号5−3のみに有効状態“1”を出力し、残りの一致信号5−1、5−2、5−4、および5−5には無効状態“0”を出力する。
1次一致線17−1−1〜17−5−1、1次一致線17−1−2〜17−5−2、一致信号5−1〜5−5、および共通一致線38−1〜38−5の、それぞれ対応する信号どうしの論理積演算結果より、論理積手段13−1〜13−5は、論理積信号40−3に有効状態“1”を出力し、論理積信号40−1、40−2、40−4、および40−5には無効状態“0”を出力する。論理積信号40−1〜40−5の状態は、記憶制御信号12によって、次のステップに移行するときに記憶手段43−1〜43−5に記憶される。
次のクロック信号41に同期して主制御回路6の動作は、図5のフローチャートのステップS103に移行し、内部変数28の値pと、連想メモリ1が有する単一領域検索用連想メモリ36の個数rとを比較する。図23の例では、内部変数28の値pと、連想メモリ25が有する単一領域検索用連想メモリ4の個数rは、ともに2であり、検索結果終了する。このとき、一致信号5−1〜5−5の中で有効状態“1”を出力しているものは一致信号5−3のみであり、これが最終的な検索結果として得られることになる。前述のように、ネットワーク・アドレス(1.2.6)を持つPC401−1から、ネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送は、転送規則3が適用されるべきであり、正しい結果が得られていることがわかる。
また、図5のフローチャートのステップS102、ステップS105の直前にウエイト・サイクルを挿入し、中間データ93−1〜93−rを格納するためのラッチを挿入することにより、動作周波数を高くすることができることはいうまでもない。
また、ステップS105では、ステップS102で2次検索を行ったときに一致したワードの中から、さらに2次検索を行うのであるから、図23に示すステップS105での中間データ93−1の値と、図22に示すステップS102での中間データ93−1の値は当然、同一である。したがって、図5のフローチャートのステップS105において、内部変数28の値がpのときに、2次検索信号11−1〜11−pに有効状態を出力しても、同じ結果が得られることがわかる。
また、上述の説明からわかるように、1次連想メモリ20−1〜20−2と、2次連想メモリ21−1と、および2次連想メモリ21−2はそれぞれ時間的に順番に動作し、かつ動作するタイミングが重なることはない。したがって、結線を変更すればパイプライン処理が可能であることが容易にわかる。
例えば、図15において、論理積手段15−1〜15−mを削除し、共有している共通一致線38−1〜38−m、論理積手段40−1〜40−mと記憶手段43−1〜43−mを、各2次連想メモリ21−1〜21−rそれぞれに専用に共通一致線38−1−1〜38−m−r、論理積手段40−1−1〜40−m−rおよび記憶手段43−1−1〜43−m−rと有するように変更する。このとき各2次連想メモリ21−1〜21−rに対応するr組の共通一致線(38−1−1〜38−m−1)〜(38−1−r〜38−m−r)はそれぞれ対応する1次連想メモリ21−1〜21−rにのみ入力する。これにより各2次連想メモリ21−1〜21−rごとに中間データ93−1〜93−rを生成することが可能となる。
また、2次連想メモリ21−1に対応するm個の論理積手段13−1−1〜13−m−1には一致信号5−1〜5−mの代わりに有効状態を入力し、2次連想メモリ21−2に対応するr個の論理積手段13−1−2〜13−m−2には一致信号5−1〜5−mの代わりに2次一致線18−1−1〜18−m−1を入力し、以下同様に2次連想メモリ21−rに対応するr個の論理積手段13−1−r〜13−m−rには一致信号5−1〜5−mの代わりに2次一致線18−1−(r−1)〜18−m−(r−1)を入力するようにし、最後の2次一致線18−1−r〜18−m−rを一致信号5−1〜5−mのように結線を変更することにより、2次連想メモリ21−1〜21−rを独立に動作させることが可能となる。
このときには、1次検索許可信号10−1〜10−r、2次検索許可信号11−1〜11−rはすべて有効状態で構わないし、パイプラインの動作周波数に応じて動作させるべき箇所にのみ有効状態を出力してもよいことはいうまでもない。また、上記記憶手段43−1−1〜43−m−rを削除し、1次検索許可信号10−1〜10−r、2次検索許可信号11−1〜11−rにすべて有効状態が出力されていれば1クロックですべての動作を終了ことになる。また、前述のように、中間データ93−1〜93−rを格納するためのラッチを挿入することによりパイプラインの動作周波数を高くすることも可能であることも容易にわかる。
[第四の実施例の構成]
次に、本発明の第四の実施の形態について図面を参照して詳細に説明する。図24は、本発明の第四の実施の形態のm語の連想メモリ35の構成例を示すブロック図である。
図24に示す第四の実施の形態の連想メモリ35は、r個の単一領域検索用連想メモリ30−1〜30−rを構成する1次連想メモリ31−1〜31−rのそれぞれj番目の連想メモリ・ワード32−j−1〜32−j−rの比較結果の出力信号どうしを1本の1次一致線17−jにワイアードAND論理接続し、さらに1次一致線17−jにダイナミックに保持されている状態を中間データ93−1〜93−rの生成に利用するものである。ここで1次一致線17−jは、開始信号42が有効状態のときのみ、有効状態“1”にプリ・チャージされるものとする。さらに連想メモリ35では、単一領域検索用連想メモリ26−1〜26−rを構成する2次連想メモリ21−1〜21−rのそれぞれj番目の連想メモリ・ワード24−j−1〜24−j−rの比較結果の出力信号同士を1本の2次一致線18−jにワイアードAND論理接続している。ここで2次一致線18−jは、あらかじめ有効状態“1”にプリ・チャージされるものとする。また、m個のMOSトランジスタ33−1〜33−mとm個の反転MOSトランジスタ34−1〜34−mを有し、j番目のMOSトランジスタ33−jと反転MOSトランジスタ34−jは、1次一致線17−jと低電位の間に直列に挿入されている。MOSトランジスタ33−jは主制御回路6から出力される記憶制御信号12が有効状態のときに導通状態となる。反転MOSトランジスタ34−jは、2次一致線18−mが無効状態“0”のときに導通状態となる。
上述のように図14に示した第三の実施の形態の連想メモリ25における論理積手段15−jは、図24に示す第四の実施の形態の連想メモリ35では、ワイアードAND論理接続された2次一致線18−jにより実現している。また、図24に示す連想メモリ35では、2次一致線18−jの状態を一致信号5−jとして直接外部に出力している。
図24に示す連想メモリ35のj番目の1次一致線17−jは、開始信号42が有効状態のときに有効状態“1”にプリ・チャージされた後、図5に示すフローチャートの動作が終了するまでの間、r個の単一領域検索用連想メモリ30−1〜30−rを構成する1次連想メモリ31−1〜31−rのそれぞれj番目の連想メモリ・ワード32−j−1〜32−j−rの比較結果がすべて一致し、かつ直前のステップでの1次一致線17−jの状態が有効状態“1であり、かつ次のステップに移行する前に記憶制御信号12が有効状態となりMOSトランジスタ33−jが導通状態となったときに2次一致線18−jが有効状態”1“のときのみ、有効状態”1“を保持することになる。つまり、図14における論理積手段13−jは、図24に示す連想メモリ35では、ワイアードAND論理接続された1次一致線17−jと反転MOSトランジスタ34−jにより構成され、また、図14における記憶手段43−jは、図24に示す連想メモリ35では、ワイアードAND論理接続された1次一致線17−jとMOSトランジスタ33−jにより構成されることになる。
これらの他は、図14に示す第三の実施の形態の連想メモリ25の構成と全く同様である。複数の検索データから構成される入力データに対して同様な検索動作を実行できることは明らかである。
図24に示す第四の実施の形態の連想メモリ35ではr個の単一領域検索用連想メモリ30−1〜30−r間の配線数は、m本の1次一致線17−1〜17−mと、m本の2次一致線18−1〜18−mの合計(2m)本である。図14に示す第三の実施の形態の連想メモリ25では、r個の単一領域検索用連想メモリ4−1〜4−r間の配線数は、m×r本の1次一致線17−1−1〜17−m−rと、m×r本の2次一致線18−1−1〜18−m−rと、m本の共用一致線38−1〜38−mの合計(m×(2×r+1))本であり、第四の実施の形態の連想メモリ35では配線数が大幅に減少していることがわかる。r個の単一領域検索用連想メモリ30−1〜30−r間の配線は、連想メモリ35の全域に渡って配線されるために配線容量が大きくなり、保持している状態が遷移するたびに消費する電力は非常に大きい。したがって、第四の実施の形態の連想メモリ35では第三の実施の形態の連想メモリ25に比べて、配線領域が大きく減少しチップ面積が削減されると同時に、消費電力を大幅に削減できるという利点を有する。
図25に、第四の実施の形態の連想メモリにおける1次連想メモリの一構成例のブロック図を示す。図25に示す1次連想メモリ31の構成は、図15に示す第三の実施の形態の1次連想メモリ20と比較すると、j番目の連想メモリ・ワード32−jから共通一致線38−jが削除されたことと、それに伴いj番目の連想メモリ・ワード32−jを構成するn個の連想メモリ・セル80−j−1〜80−j−n内の論理ゲート56−j−1〜56−j−nの入力が共通一致線38−jから1次一致線17−jに変更されたことの他は、図15に示す第三の実施の形態の1次連想メモリ20と全く同様である。
図25に示す1次連想メモリ31では、出力信号である1次一致線17−jを、n個の論理ゲート56−j−1〜56−j−nをワイアードAND論理接続することにより生成しているため、1次連想メモリ31の内部においても共通一致線38−jを1次一致線17−jと共用することが可能である。
もちろん、ワイアードAND論理接続ではなく通常の論理ゲートを用いて1次一致線17−1〜17−mを生成している場合、および図10と同様な構成の、1次一致線17−1〜17−mが論理ゲートから出力されているような1次連想メモリにおいても、1次一致線17−jを出力する論理ゲートとして、無効状態のときのみ出力を駆動し、有効状態のときには出力を開放状態にする機能を有しているものを使用することにより、第四の実施の形態の連想メモリ35の1次連想メモリ31として用いることが可能なことはいうまでもない。
また、図24では2次一致線18−jの状態を一致信号5−jとして直接外部に出力しているが、2次一致線18−jの状態をバッファに入力して波形を整形してから一致信号5−jとして出力してもよいこともいうまでもない。
[第五の実施例]
図26は、本発明の第五の実施の形態の連想メモリの構成例を示すブロック図である。図26に示す第五の実施の形態のm語の連想メモリ46を、図14に示したm語の第三の実施の形態の連想メモリ25と比較すると、入力データ47の構成要素として検索データ48が追加されていることと、検索データ48を入力としm本の一致線90−1〜90−mを出力する連想メモリ49が追加されていることと、論理積手段91−1〜91−mの入力信号として対応する一致線90−1〜90−mが追加されていることの他は、図14に示した連想メモリ25と全く同様に構成される。
したがって、図26の連想メモリ46は、複数の検索データ3−1〜3−rに対して連想メモリ25と同様な検索動作を実行できることは明らかであり、さらに、検索データ48を用いて、あらかじめ検索結果の絞り込みを行う機能を有する。これにより、表1(b)で説明した転送規則の表を、複数個切り替えて使用することが可能になる。
例えば、検索データ48として曜日を表す情報を入力した場合を考える。このとき、単一領域検索用連想メモリ4−1〜4−rの特定のワードに表1(b)の転送規則を格納し、かつ連想メモリ49の対応するワードの記憶データとして“平日”を表すデータを格納しておく。また、単一領域検索用連想メモリ4−1〜4−rの他のワードに特定のPCから特定のPCへの転送のみを許可し他の転送はすべて拒絶する”ような転送規則を格納し、かつ連想メモリ49の対応するワードの記憶データとして“休日”を表すデータを格納した場合、検索データ48に応じて転送規則を変更することが可能になる。つまり図14に示した連想メモリ25に比べて、転送規則を、より柔軟に設定することができる。
[第六の実施例]
次に図面を参照して、第一の実施の形態の連想メモリ1を転送先ネットワーク・アドレス計算に用いた、本発明のネットワーク機器の構成例を説明する。図27は、本発明のネットワーク機器の一構成例を示すブロック図である。図27では本発明のネットワーク機器450について、図34に示した従来のネットワーク機器422の説明と同様に図33のネットワーク機器400−1に適用した場合を例にして、その構成と動作を説明する。もちろん、図33の他のネットワーク機器に適用した場合も同様に構成することができる。
図27のネットワーク機器450は、図34に示した従来のネットワーク機器422と同様に、入力転送データ402を入力とし、出力転送データ403を出力する。入力転送データ402は、送出元ネットワーク・アドレス404と、転送先ネットワーク・アドレス405と、宛先ネットワーク・アドレス406と、データ部407を有している。出力転送データ403は、送出元ネットワーク・アドレス404と、第2の転送先ネットワーク・アドレス408と、宛先ネットワーク・アドレス406と、データ部407を有している。ここでは、ネットワーク機器450は、図33のネットワーク機器400−1に適用した場合を例として説明するので、入力転送データ402の転送先ネットワーク・アドレス405は、図33におけるネットワーク機器400−1のネットワーク・アドレスとなっている。
図27に示す本発明のネットワーク機器450は、送出元ネットワーク・アドレス抽出部409と、宛先ネットワーク・アドレス抽出部410と、連想メモリ101と、エンコーダ414と、メモリ416と、転送先ネットワーク・アドレス変更部418と、データ転送部421と、本発明の連想メモリ1と、エンコーダ451と、およびメモリ453とにより構成される。図34で説明した従来のネットワーク機器422において、送出元ネットワーク・アドレス情報411と,宛先ネットワーク・アドレス情報412とを入力として転送可否判定演算を行い演算結果を転送制御信号420として出力する機能を有していたCPU413は、本発明のネットワーク機器450では、連想メモリ1と、エンコーダ451と、メモリ453とにより構成されていることが異なる。他の構成要素である、送出元ネットワーク・アドレス抽出部409と、宛先ネットワーク・アドレス抽出部410と、連想メモリ101と、エンコーダ414と、およびメモリ416は、図34に説明した従来のネットワーク機器と同様であり、また、図33におけるネットワーク機器400−1に適用した場合に設定すべき情報についても図34と同様である。したがって、従来のネットワーク機器422と異なる部分についてのみ説明を行う。
図27に示す連想メモリ1は、9ビット5語の単一領域検索用連想メモリ36−1、および36−2により構成されている。送出元ネットワーク・アドレス抽出部409が出力する送出元ネットワーク・アドレス情報411が単一領域検索用連想メモリ36−1に検索データ3−1として入力され、宛先ネットワーク・アドレス抽出部410が出力する宛先ネットワーク・アドレス情報412が単一領域検索用連想メモリ36−2に検索データ3−2として入力される。ここで検索データ3−1の優先順位を最も高い1とし、検索データ3−2の優先順位を2とする。
また、表1(b)における各転送規則の送出元ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、単一領域検索用連想メモリ36−1の転送規則に対応する連想メモリ・ワード44−1−1〜44−5−1のそれぞれ記憶データ、マスク情報として格納するものとする。また、表1(b)における各転送規則の宛先ネットワーク・アドレスの9ビットの構造化データを構成する9ビットの記憶データ、9ビットのマスク情報を、単一領域検索用連想メモリ36−2の転送規則に対応する連想メモリ・ワード44−1−2〜44−5−2のそれぞれ記憶データ、マスク情報として格納してあるものとする。また、図示しない制御回路により、連想メモリ1に対して開始信号とクロック信号が供給されているものとする。
連想メモリ1から検索結果として出力される一致信号5−1〜5−5は、エンコーダ451によりメモリ・アドレス信号451に符号化される。メモリ453は、表1(b)の転送許可“1”または転送拒絶“0”を示す情報を、連想メモリ1が表1(b)の転送規則の記憶データ、マスク情報が格納している連想メモリ・ワードと同一のアドレスのワードに記憶しているものとする。たとえば、連想メモリ1の連想メモリ・ワード44−1−1、連想メモリ・ワード44−1−2には、転送規則1に対応する情報が格納されているが、これに対応する転送許可“1”を示す情報がメモリ453のワード1に格納されている。同様にメモリ453のワード2には転送規則2の転送許可“1”を示す情報が、ワード3には転送規則3の転送拒絶“0”を示す情報が、ワード4には転送規則4の転送許可“1”を示す情報が、ワード5には転送規則5の転送拒絶“0”を示す情報が格納されているものとする。メモリ453はメモリ・アドレス信号452をリード・アドレスとして指定される格納データを、転送制御信号420としてデータ転送部421に出力する。データ転送部421は、転送制御信号420が転送を許可していれば変更済転送データ419を出力転送データ403として出力し、転送制御信号420が転送を拒絶していれば出力しない。
ここで、上述のように設定されているネットワーク機器450に対して、送出元ネットワーク・アドレス404として図33のPC401−1のネットワーク・アドレス(1.2.6)を持ち、宛先ネットワーク・アドレス406として図33のPC401−3のネットワーク・アドレス(2.3.5)を持つ入力転送データ402が入力された場合の動作について説明する。
連想メモリ101での検索動作終了時には、連想メモリ・ワード102−2が格納している(2.3.*)に対応する一致線105−2が有効状態を出力する。これによりエンコーダ414はメモリ・アドレス415として“2”を出力し、メモリ416はネットワーク機器400−6のネットワーク・アドレスをメモリ・データ信号417として出力する。転送先ネットワーク・アドレス変更部418により、入力転送データ402の転送先ネットワーク・アドレス405を、ネットワーク機器400−6のネットワーク・アドレスに変更しデータ転送部421に変更済転送データ419として入力する。
ここで、連想メモリ1には、送出元ネットワーク・アドレス抽出部409から検索データ3−1として(1.2.6)が入力され、宛先ネットワーク・アドレス抽出部410から検索データ3−2として(2.3.5)が入力される。これらの検索データ3−1、3−2の値と、単一領域検索用連想メモリ36−1、36−2が格納している転送規則は、第一の実施の形態の連想メモリの動作説明のときと同様である。したがって一致信号5−3が有効状態を出力し、他の一致線5−1、5−2、5−4、および5−5は無効状態を出力することになる。これによりエンコーダ451はメモリ・アドレス452として“3”を出力し、メモリ453は転送規則3の転送拒絶を表す情報“0”を転送制御信号420としてデータ転送部421に出力する。したがって、データ転送部421は、変更済転送データ419を出力転送データ403として出力しないことになる。ネットワーク・アドレス(1.2.6)を持つPC401−1から、ネットワーク・アドレス(2.3.5)を持つPC401−3へのデータ転送は、転送規則3により拒絶されねばならないので、本発明のネットワーク機器450は転送可否判定演算を正しく行っていることがわかる。
本実施例ではエンコーダ451によりメモリ・アドレス信号452を生成したが、一致信号5−1〜5−5をメモリ453のワード線として直接入力する構成にすればエンコーダ451を削除できることはいうまでもない。
上述のように、本発明の連想メモリにより転送可否判定演算を実行するネットワーク機器では、転送可否判定演算を3クロックで実行できることになる。したがって、図34に示した従来のネットワーク機器のようにCPUのソフトウエア処理により数百クロックを要して転送可否判定演算を行う場合に比べて、コンピュータ・ネットワーク・システムのデータ転送速度を大幅に高速化することができる。
また、転送速度を向上させるために高価な高速CPUを搭載する必要がなくなり、ネットワーク機器全体としての価格を下げることが可能である。
また、転送規則の削除、追加、変更を行うには、単に本発明の連想メモリの格納データを修正するだけでよいため、通常のメモリ・アクセスに要する時間で実行可能である。したがって、本発明のネットワーク機器では、転送動作を中断せずに、転送規則の削除、追加、変更を行うことが可能である。
上述のように、本発明のネットワーク機器を用いることにより、安全性を確保し、かつ、高速にデータを転送できるネットワークシステムを構築することが可能である。
産業上の利用可能性
上述のように、本発明の連想メモリは、複数の検索領域から構成される入力データに対してマスク情報を考慮して検索を行ったときに、入力データに対応する記憶データがすべて一致するワードが複数個あった場合に、優先順位を考慮して検索領域ごとに構造化データを構成するマスク情報のマスク有効状態のビット数について、一致したワードの中で比較した結果、最少となるようなワードを識別する信号を、検索領域の個数に1を加えたクロック数以下で、高速に外部に出力できるという効果を有する。しかも、従来の連想メモリと比べて数%の回路規模の増加で実現できる。
また、本発明の連想メモリは、構造化データを格納する語の順序、格納する語の位置には制限がなく、通常のメモリ・アクセスに要する時間のみで構造化データの追加、削除、修正ができるという効果を有する。これにより、連想メモリの構造化データを管理するソフトウエア処理が簡単になるという効果もある。
また、本発明の連想メモリを組み込んだネットワーク機器は、従来に比較して数百倍以上高速に転送可否判定演算を行うことができる。すなわち、従来のネットワーク機器では2分木検索アルゴリズムなどを用いたソフトウエア処理により数百クロックをかけて転送可否判定演算を行っていたが、本発明の連想メモリは3クロックで転送可否判定演算を行えるからである。
また、本発明の連想メモリを組み込んだネットワーク機器では、転送動作を中断せずに、転送規則の削除、追加、変更を行うことができるという利点を有する。上述のように、本発明の連想メモリを用いれば、転送規則の削除、追加、変更は、通常のメモリ・アクセスに要する時間で実行できるからである。これにより、従来のソフトウエア処理で転送可否判定演算を行っていたネットワーク機器において転送規則の削除、追加、変更に伴う巨大な検索テーブルの作成が不要となり、ネットワークの通信不能時間が短縮されるとともに、運用管理が容易になるという利点も有する。さらに、新しい転送規則が迅速に反映されるため、ネットワーク全体の安全性が向上するという利点を有する。
また、本発明の連想メモリを組み込んだネットワーク機器では、転送可否判定を高速に実行可能なネットワーク機器のトータルコストを削減できるという利点を有する。上述のように転送可否判定を高速に演算可能な本発明の連想メモリを搭載することにより、高価な高速CPUシステムを搭載する必要がなくなるからである。
また、本発明のネットワーク機器を用いることにより、安全性を確保し、かつ、高速にデータを転送でき、さらに運用管理の容易なネットワーク・システムを構築することができるという利点を有する。
【図面の簡単な説明】
図1は、本発明の第一の実施の形態の連想メモリの一構成例を示すブロック図である。
図2は、本発明の第一の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図3は、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリの一構成例を示すブロック図である。
図4は、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリの連想メモリ・セルの一構成例を示す回路図である。
図5は、本発明の第一の実施の形態の連想メモリの動作を説明するフローチャートである。
図6は、本発明の第一の実施の形態の連想メモリのステップS100での動作状態の一例を示す説明図である。
図7は、本発明の第一の実施の形態の連想メモリのステップS101での動作状態の一例を示す説明図である。
図8は、本発明の第一の実施の形態の連想メモリのステップS102での動作状態の一例を示す説明図である。
図9は、本発明の第一の実施の形態の連想メモリのステップS105での動作状態の一例を示す説明図である。
図10は、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリの第二の構成例を示すブロック図である。
図11は、本発明の第二の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図12は、本発明の第二の実施の形態の連想メモリにおける単一領域検索用連想メモリの一構成例を示すブロック図である。
図13は、本発明の第三の実施の形態の連想メモリの一構成例を示すブロック図である。
図14は、本発明の第三の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図15は、本発明の第三の実施の形態の連想メモリにおける1次連想メモリの一構成例を示すブロック図である。
図16は、本発明の第三の実施の形態の連想メモリにおける1次連想メモリの連想メモリ・セルの一構成例を示す回路図である。
図17は、本発明の第三の実施の形態の連想メモリにおける2次連想メモリの一構成例を示すブロック図である。
図18は、本発明の第三の実施の形態の連想メモリにおける2次連想メモリの連想メモリ・セルの一構成例を示す回路図である。
図19は、本発明の第三の実施の形態の連想メモリの単一領域検索用連想メモリの動作例を示す説明図である。
図20は、本発明の第三の実施の形態の連想メモリのステップS100での動作状態の一例を示す説明図である。
図21は、本発明の第三の実施の形態の連想メモリのステップS101での動作状態の一例を示す説明図である。
図22は、本発明の第三の実施の形態の連想メモリのステップS102での動作状態の一例を示す説明図である。
図23は、本発明の第三の実施の形態の連想メモリのステップS105での動作状態の一例を示す説明図である。
図24は、本発明の第四の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図25は、本発明の第四の実施の形態の連想メモリにおける1次連想メモリの一構成例を示すブロック図である。
図26は、本発明の第五の実施の形態の連想メモリの一構成例を示すブロック図である。
図27は、本発明の連想メモリを転送可否判定に用いた本発明のネットワーク機器の一構成例を示すブロック図である。
図28は、従来の連想メモリの一構成例を示すブロック図である。
図29は、従来の連想メモリ・セルの一構成例を示す回路図である。
図30は、従来の連想メモリの動作例を示す図である。
図31は、従来の連想メモリの動作例を説明するタイミング・チャートである。
図32は、従来の連想メモリで複数のネットワーク・アドレスの検索を行った場合の動作例を示す図である。
図33は、従来のコンピュータ・ネットワークの構成の接続例を示す図である。
図34は、従来の連想メモリを転送先ネットワーク・アドレス計算に用いた従来のネットワーク機器の一構成例を示すブロック図である。
Claims (18)
- 記憶データの1ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの1ワードまたは複数ワードごとに有する連想メモリにおいて、
N個(Nは2以上の整数)の部分ビット領域から構成される外部検索データの全ビットに対して1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出されるワードを識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをN個に分割した部分ビット領域の各々一つを入力とし、2次検索制御信号の状態によりワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する2次識別信号を出力する一つまたは複数の共有2次検索手段と、
1次検索および各2次検索をとおして、ワード毎に対応するワードが選出され続けているか否かのワード有効情報を1次検索および各2次検索実行の度に更新、記憶し、その選出状態、非選出状態を前記中間データ生成手段に出力する記憶手段と、
前記外部検索データの全ビット領域を検索データとして前記1次検索を行った後、前記中間データの前記N個の部分ビット領域を順次検索データとして前記2次検索を実行するように前記2次検索制御信号を出力する制御手段とを、
有することを特徴とする連想メモリ。 - 記憶データの1ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの1ワードまたは複数ワードごとに有する連想メモリにおいて、
N個(Nは2以上の整数)の部分ビット領域から構成される外部検索データの全ビットに対して1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出されるワードを識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するN個の中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをN個に分割した部分ビット領域の各々一つを入力とし、ワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を行った結果選出されるワードを識別する2次識別信号を出力するN個の2次検索手段とを有し、
前記N個の中間データ生成手段とN個の2次検索手段は、第1の中間データ生成手段は1次検索の結果生成された第1の中間データを前記第1の2次検索手段に入力し第1の部分ビット領域に対して第1の2次検索を行い、第2の中間データ生成手段は第1の2次検索の結果生成された第2の中間データを前記第2の2次検索手段に入力し第2の部分ビット領域に対して第2の2次検索を行い、第3の中間データ生成手段は第2の2次検索の結果生成された第3の中間データを前記第3の2次検索手段に入力して第3の部分ビット領域に対して2次検索を行い、以下同様に構成し、第Nの中間データ生成手段は第(N−1)の2次検索の結果生成された第Nの中間データを前記第Nの2次検索手段に入力し第Nの部分ビット領域に対して2次検索を行うことを、特徴とする連想メモリ。 - 前記第1から第Nの2次検索手段において、
1次検索および各2次検索をとおしてワード毎に対応するワードが選出され続けているか否かのワード有効情報を、第Jから第Kの(J、Kは1以上N以下の整数)各2次検索の実行の度に更新、記憶し、各ワードの選出状態、非選出状態を出力する記憶手段と、
ワードの選出状態を示す信号を入力とし、選出状態にあるワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした前記論理演算により生成される第Jから第Kの中間データを出力する共有中間データ生成手段と、
2次検索制御信号の状態によりワードにおける前記記憶データまたはマスク情報の第Jから第Kの部分ビット領域に対応するビット領域に対してのみ選択的に2次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する信号を出力する一つまたは複数の共有2次検索手段と、
第Jの2次検索から第Kの2次検索を順次実行するように前記2次検索制御信号を出力し、また前記2次検索の度に前記記憶手段の前記ワード有効情報を更新するため前記記憶制御信号を出力する制御手段とを、
有することにより、第Jから第Kの前記2次検索手段の構成要素を共有することを特徴とする請求項2に記載の連想メモリ。 - 前記1次検索手段において、
一つまたは複数の属性データを検索データとし、前記記憶データが格納されている前記ワードと対応する属性一致信号を検索結果として出力する第2の連想メモリを有し、
1次検索として、前記外部検索データの全ビットに対して1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外した結果選出され、且つ対応する前記属性一致信号が前記属性データを前記第2の連想メモリで検索した結果一致を示している、ワードを識別する1次識別信号を出力することを特徴とする請求項1から請求項3に記載の連想メモリ。 - 前記1次検索手段において、
検索データとして1次制御許可信号が有効状態のときには前記外部検索データを選択し、他の場合には前記中間データを選択する選択手段と、
1次検索許可信号が有効状態のときには該外部検索データの全ビットを検索データとして1ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行い、2次検索制御信号が有効状態のときにはワードにおける前記記憶データまたはマスク情報の2次検索制御信号の状態により指定されるビット領域に対してのみ選択的に2次検索を実行する手段とを有し、
1次制御許可信号を有効にし前記外部検索データの全ビット領域を検索データとして前記1次検索を行った後、前記中間データの前記N個の部分ビット領域を順次検索データとして前記2次検索を実行するように前記2次検索制御信号を出力する制御手段とを有することにより、
1次検索手段の構成要素と2次検索手段の構成要素とを共有することを特徴とする請求項1から請求項3に記載の連想メモリ。 - 前記1次検索手段が出力する1次識別信号、および前記N個の2次検索手段が出力する第1から第Nの2次識別信号の中の一つまたは複数を記憶する手段と、前記第1から第Nの中間データの中の一つまたは複数を記憶する手段の、一方または双方を有することによりパイプライン処理を可能にすることを、特徴とする請求項2から請求項3に記載の連想メモリ。
- 前記中間データ生成手段に入力する1次検索および各2次検索をとおしてワード毎に対応するワードが選出され続けているか否かの情報の、更新、記憶を結線論理を用いて構成することにより、当該情報を前記中間データ生成手段に入力するための配線と、1次識別信号または2次識別信号の配線とを共用することを特徴とする請求項1から請求項3に記載の連想メモリ。
- 前記中間データの各部分ビット領域に、前記外部検索データの対応する部分ビット領域と同じ優先順位を付与し、該中間データの該部分ビット領域について優先順位の高位から低位への順に検索データとして前記2次検索を実行することを、特徴とする請求項1および請求項3に記載の連想メモリ。
- 前記記憶データとして1次検索の際に対応する前記マスク情報により検索対象から除外される1ビットまたは複数のビットに特定ビット・パターンを格納し、2次検索として、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出する、ことを特徴とする請求項1から請求項2に記載の連想メモリ。
- 前記記憶データにおいて1次検索の際に対応する前記マスク情報により検索対象から除外される1ビットまたは複数のビットが特定ビット・パターンであるとみなして2次検索を行い、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出する、ことを特徴とする請求項1から請求項2に記載の連想メモリ。
- 前記特定ビット・パターンは、すべての当該ビットが記憶データの無効状態により構成されている請求項9から請求項10に記載の連想メモリ。
- 前記論理演算は、選出状態にあるワードに対応する記憶データ同士の、記憶データの有効状態を真とする論理和演算であり、その論理和演算結果を前記中間データとし、前記2次検索は、該中間データと一致する記憶データを有するワードを選出することを特徴とする請求項9から請求項11に記載の連想メモリ。
- 前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、該論理積演算結果のビットがマスク情報の無効状態ならば前記外部検索データの同一のビット位置の情報を中間データの同一ビット位置の状態とし、該論理積演算結果のビットがマスク情報の有効状態ならば記憶データの無効状態を前記中間データの同一ビット位置の状態として前記中間データを生成し、前記2次検索は該中間データと一致する記憶データを有するワードを選出することを特徴とする請求項9から請求項11に記載の連想メモリ。
- 前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、その論理積演算結果を中間データとし、前記2次検索は該中間データと一致するマスク情報を有し且つその時点までに選出状態にあるワードを選出することを特徴とする請求項1から請求項3に記載の連想メモリ。
- 入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の1つまたは複数個毎に前記記憶データの中で1ビットまたは複数ビットの領域の1つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
前記入力転送データに付随する前記送信元ネットワーク・アドレスおよび前記宛先ネットワーク・アドレスを構成要素に含む前記判定入力データを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する対応する記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行い、
前記1次検索の結果、選出された一つまたは複数の転送規則を構成する記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした論理演算により中間データを生成し、
前記判定入力データの第1の構成要素から最終の構成要素に対して同様に順次、前記1次検索、前記2次検索の度に選出されつづけている一つまたは複数の転送規則を構成する、記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした前記論理演算の結果により更新された中間データの当該構成要素に対応するビット領域を検索データとして、当該構成要素に対応するビット領域の記憶データまたはマスク情報について選択的に2次検索を実行し、
最終的に選出された転送規則により、当該入力転送データの転送の可否を決定することを特徴とするネットワーク機器。 - 入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の1つまたは複数個毎に前記記憶データの中で1ビットまたは複数ビットの領域の1つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出される転送規則を識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および判定入力データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、2次検索制御信号により転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を実行するか否かを制御可能であり、且つ検索の結果選出される転送規則を識別する2次識別信号を出力する一つまたは複数の共有2次検索手段と、
1次検索および各2次検索をとおして、転送規則毎に対応する転送規則が選出され続けているか否かの転送規則有効情報を1次検索および各2次検索実行の度に更新、記憶し、その選出状態、非選出状態を示す一致信号を前記中間データ生成手段に出力する記憶手段と、
前記判定入力データの全ビット領域を検索データとして前記1次検索を行った後、前記中間データの各部分ビット領域を順次検索データとして前記2次検索を実行するように前記2次検索制御信号を出力する制御手段と、
前記一致信号により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段と、有することを特徴とするネットワーク機器。 - 入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを含むN個(Nは2以上の整数)の構成要素から構成される判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の1つまたは複数個毎に前記記憶データの中で1ビットまたは複数ビットの領域の1つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの1ビットまたは複数ビットを検索対象から除外する1次検索を行った結果選出される転送規則を識別する1次識別信号を出力する1次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するN個の中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に2次検索を行った結果選出される転送規則を識別する信号を出力するN個の2次検索手段と
前記第Nの2次検索手段により選出された転送規則により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段とを有し、
前記N個の中間データ生成手段とN個の2次検索手段は、第1の中間データ生成手段は1次検索の結果生成された第1の中間データを前記第1の2次検索手段に入力し第1の部分ビット領域に対して第1の2次検索を行い、第2の中間データ生成手段は第1の2次検索の結果生成された第2の中間データを前記第2の2次検索手段に入力し第2の部分ビット領域に対して第2の2次検索を行い、第3の中間データ生成手段は第2の2次検索の結果生成された第3の中間データを前記第3の2次検索手段に入力して第3の部分ビット領域に対して2次検索を行い、以下同様に構成し、第Nの中間データ生成手段は第(N−1)の2次検索の結果生成された第Nの中間データを前記第Nの2次検索手段に入力し第Nの部分ビット領域に対して2次検索を行う、ことを特徴とするネットワーク機器。 - 請求項15から17に記載の前記ネットワーク機器を介してネットワークに接続された機器間でデータ通信を行うネットワークシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2001/003562 WO2002091386A1 (fr) | 2001-04-25 | 2001-04-25 | Memoire associative, procede de recherche dans ladite memoire, dispositif de reseau et systeme de reseau |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2002091386A1 true JPWO2002091386A1 (ja) | 2004-08-26 |
JP3957637B2 JP3957637B2 (ja) | 2007-08-15 |
Family
ID=11737276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002588556A Expired - Fee Related JP3957637B2 (ja) | 2001-04-25 | 2001-04-25 | 連想メモリとその検索方法およびネットワーク機器およびネットワーク・システム |
Country Status (7)
Country | Link |
---|---|
US (2) | US6956756B2 (ja) |
EP (1) | EP1385173A4 (ja) |
JP (1) | JP3957637B2 (ja) |
KR (1) | KR100666241B1 (ja) |
CN (1) | CN1505819A (ja) |
TW (1) | TWI226065B (ja) |
WO (1) | WO2002091386A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2005013566A1 (ja) * | 2003-07-31 | 2006-09-28 | 富士通株式会社 | データ検索方法及び装置 |
US7392229B2 (en) * | 2005-02-12 | 2008-06-24 | Curtis L. Harris | General purpose set theoretic processor |
JP4795740B2 (ja) * | 2005-07-19 | 2011-10-19 | 株式会社日立製作所 | 半導体装置 |
US7515449B2 (en) * | 2006-09-15 | 2009-04-07 | International Business Machines Corporation | CAM asynchronous search-line switching |
US8065249B1 (en) | 2006-10-13 | 2011-11-22 | Harris Curtis L | GPSTP with enhanced aggregation functionality |
US7774286B1 (en) | 2006-10-24 | 2010-08-10 | Harris Curtis L | GPSTP with multiple thread functionality |
US8280901B2 (en) * | 2008-01-03 | 2012-10-02 | Masterfile Corporation | Method and system for displaying search results |
KR101011905B1 (ko) * | 2010-02-09 | 2011-02-01 | 주식회사 강림정공 | 다줄 나사 탭핑 머시인 |
US8667230B1 (en) | 2010-10-19 | 2014-03-04 | Curtis L. Harris | Recognition and recall memory |
US20130080448A1 (en) * | 2011-09-23 | 2013-03-28 | The Boeing Company | Associative Memory Technology in Intelligence Analysis and Course of Action Development |
US9659110B2 (en) * | 2011-10-20 | 2017-05-23 | The Boeing Company | Associative memory technology for analysis of requests for proposal |
US9135997B2 (en) * | 2013-01-18 | 2015-09-15 | Fujitsu Limited | System and method for filtering addresses |
US10402816B2 (en) * | 2016-12-31 | 2019-09-03 | Square, Inc. | Partial data object acquisition and processing |
US10621590B2 (en) | 2017-02-22 | 2020-04-14 | Square, Inc. | Line-based chip card tamper detection |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10255485A (ja) * | 1997-03-10 | 1998-09-25 | Kawasaki Steel Corp | 連想メモリおよびネットワークフレーム中継器 |
JP3191737B2 (ja) * | 1997-08-29 | 2001-07-23 | 日本電気株式会社 | ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ |
JP3166700B2 (ja) * | 1998-03-12 | 2001-05-14 | 日本電気株式会社 | ルータ及び最長一致検索装置 |
JP3593920B2 (ja) * | 1999-05-10 | 2004-11-24 | 日本電気株式会社 | 連続検索動作可能な最短マスク出力機能付連想メモリ |
US6647490B2 (en) * | 1999-10-14 | 2003-11-11 | Advanced Micro Devices, Inc. | Training line predictor for branch targets |
-
2001
- 2001-04-25 EP EP01925898A patent/EP1385173A4/en not_active Withdrawn
- 2001-04-25 WO PCT/JP2001/003562 patent/WO2002091386A1/ja not_active Application Discontinuation
- 2001-04-25 JP JP2002588556A patent/JP3957637B2/ja not_active Expired - Fee Related
- 2001-04-25 CN CNA018231888A patent/CN1505819A/zh active Pending
- 2001-04-25 US US10/475,031 patent/US6956756B2/en not_active Expired - Fee Related
- 2001-04-25 KR KR20037013975A patent/KR100666241B1/ko not_active IP Right Cessation
-
2002
- 2002-04-26 TW TW91108664A patent/TWI226065B/zh not_active IP Right Cessation
-
2005
- 2005-10-17 US US11/252,360 patent/US7397682B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1505819A (zh) | 2004-06-16 |
EP1385173A1 (en) | 2004-01-28 |
KR20030092104A (ko) | 2003-12-03 |
US20040080973A1 (en) | 2004-04-29 |
TWI226065B (en) | 2005-01-01 |
KR100666241B1 (ko) | 2007-01-10 |
WO2002091386A1 (fr) | 2002-11-14 |
US6956756B2 (en) | 2005-10-18 |
JP3957637B2 (ja) | 2007-08-15 |
EP1385173A4 (en) | 2005-10-26 |
US20060120128A1 (en) | 2006-06-08 |
US7397682B2 (en) | 2008-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3191737B2 (ja) | ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ | |
JP3957637B2 (ja) | 連想メモリとその検索方法およびネットワーク機器およびネットワーク・システム | |
US6539455B1 (en) | Method and apparatus for determining an exact match in a ternary content addressable memory device | |
US6081440A (en) | Ternary content addressable memory (CAM) having fast insertion and deletion of data values | |
US6574702B2 (en) | Method and apparatus for determining an exact match in a content addressable memory device | |
US6460112B1 (en) | Method and apparatus for determining a longest prefix match in a content addressable memory device | |
US6199140B1 (en) | Multiport content addressable memory device and timing signals | |
US6842358B2 (en) | Content addressable memory with cascaded array | |
JP3599273B2 (ja) | 内容参照可能メモリの改良 | |
US10891337B2 (en) | Content addressable memory and semiconductor device | |
JPH0676583A (ja) | 内容番地付記憶装置および一致ワード不要化方法 | |
US7248491B1 (en) | Circuit for and method of implementing a content addressable memory in a programmable logic device | |
US20160358654A1 (en) | Low-power ternary content addressable memory | |
JPH0421997A (ja) | 連想記憶回路 | |
US6980452B2 (en) | Associative memory having a mask function for use in a network router | |
JP2000030469A (ja) | 連想メモリセル及び連想メモリ | |
Santhi et al. | Design and Implementation of Reversible Logic Based Ternary Content Addressable Memory | |
TW512345B (en) | Association memory and its search method along with router and network system | |
US11847328B1 (en) | Method and system for memory pool management | |
JPH05113929A (ja) | マイクロコンピユータ | |
JP3845814B2 (ja) | 連想メモリとその検索方法及びルータとネットワークシステム | |
TW202217805A (zh) | 一種用於寫入三態內容可尋址記憶體的裝置及方法 | |
JP3795043B2 (ja) | 連想メモリおよびその検索方法およびルータおよびネットワークシステム | |
JP2656538B2 (ja) | アドレス変換装置 | |
KR0154737B1 (ko) | 멀티포트 레지스터 화일 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041005 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070330 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070508 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100518 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
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: 20130518 Year of fee payment: 6 |
|
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: 20140518 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |