(57)【特許請求の範囲】
【請求項１】
記憶データの１ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの１ワードまたは複数ワードごとに有する連想メモリにおいて、
Ｎ個（Ｎは２以上の整数）の部分ビット領域から構成される外部検索データの全ビットに対して１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出されるワードを識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをＮ個に分割した部分ビット領域の各々一つを入力とし、２次検索制御信号の状態によりワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する２次識別信号を出力する一つまたは複数の共有２次検索手段と、
１次検索および各２次検索をとおして、ワード毎に対応するワードが選出され続けているか否かのワード有効情報を１次検索および各２次検索実行の度に更新、記憶し、その選出状態、非選出状態を前記中間データ生成手段に出力する記憶手段と、
前記外部検索データの全ビット領域を検索データとして前記１次検索を行った後、前記中間データの前記Ｎ個の部分ビット領域を順次検索データとして前記２次検索を実行するように前記２次検索制御信号を出力する制御手段とを、
有することを特徴とする連想メモリ。
【請求項２】
記憶データの１ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの１ワードまたは複数ワードごとに有する連想メモリにおいて、
Ｎ個（Ｎは２以上の整数）の部分ビット領域から構成される外部検索データの全ビットに対して１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出されるワードを識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するＮ個の中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをＮ個に分割した部分ビット領域の各々一つを入力とし、ワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を行った結果選出されるワードを識別する２次識別信号を出力するＮ個の２次検索手段とを有し、
前記Ｎ個の中間データ生成手段とＮ個の２次検索手段は、第１の中間データ生成手段は１次検索の結果生成された第１の中間データを前記第１の２次検索手段に入力し第１の部分ビット領域に対して第１の２次検索を行い、第２の中間データ生成手段は第１の２次検索の結果生成された第２の中間データを前記第２の２次検索手段に入力し第２の部分ビット領域に対して第２の２次検索を行い、第３の中間データ生成手段は第２の２次検索の結果生成された第３の中間データを前記第３の２次検索手段に入力して第３の部分ビット領域に対して２次検索を行い、以下同様に構成し、第Ｎの中間データ生成手段は第（Ｎ-１）の２次検索の結果生成された第Ｎの中間データを前記第Ｎの２次検索手段に入力し第Ｎの部分ビット領域に対して２次検索を行うことを、特徴とする連想メモリ。
【請求項３】
前記第１から第Ｎの２次検索手段において、
１次検索および各２次検索をとおしてワード毎に対応するワードが選出され続けているか否かのワード有効情報を、第Ｊから第Ｋの（Ｊ、Ｋは１以上Ｎ以下の整数）各２次検索の実行の度に更新、記憶し、各ワードの選出状態、非選出状態を出力する記憶手段と、
ワードの選出状態を示す信号を入力とし、選出状態にあるワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした前記論理演算により生成される第Ｊから第Ｋの中間データを出力する共有中間データ生成手段と、
２次検索制御信号の状態によりワードにおける前記記憶データまたはマスク情報の第Ｊから第Ｋの部分ビット領域に対応するビット領域に対してのみ選択的に２次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する信号を出力する一つまたは複数の共有２次検索手段と、
第Ｊの２次検索から第Ｋの２次検索を順次実行するように前記２次検索制御信号を出力し、また前記２次検索の度に前記記憶手段の前記ワード有効情報を更新するため前記記憶制御信号を出力する制御手段とを、
有することにより、第Ｊから第Ｋの前記２次検索手段の構成要素を共有することを特徴とする請求項２に記載の連想メモリ。
【請求項４】
前記１次検索手段において、
一つまたは複数の属性データを検索データとし、前記記憶データが格納されている前記ワードと対応する属性一致信号を検索結果として出力する第２の連想メモリを有し、
１次検索として、前記外部検索データの全ビットに対して１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外した結果選出され、且つ対応する前記属性一致信号が前記属性データを前記第２の連想メモリで検索した結果一致を示している、ワードを識別する１次識別信号を出力することを特徴とする請求項１乃至請求項３の何れか一項に記載の連想メモリ。
【請求項５】
前記１次検索手段において、
検索データとして１次制御許可信号が有効状態のときには前記外部検索データを選択し、他の場合には前記中間データを選択する選択手段と、
１次検索許可信号が有効状態のときには該外部検索データの全ビットを検索データとして１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行い、２次検索制御信号が有効状態のときにはワードにおける前記記憶データまたはマスク情報の２次検索制御信号の状態により指定されるビット領域に対してのみ選択的に２次検索を実行する手段とを有し、
１次制御許可信号を有効にし前記外部検索データの全ビット領域を検索データとして前記１次検索を行った後、前記中間データの前記Ｎ個の部分ビット領域を順次検索データとして前記２次検索を実行するように前記２次検索制御信号を出力する制御手段とを有することにより、
１次検索手段の構成要素と２次検索手段の構成要素とを共有することを特徴とする請求項１乃至請求項３の何れか一項に記載の連想メモリ。
【請求項６】
前記１次検索手段が出力する１次識別信号、および前記Ｎ個の２次検索手段が出力する第１から第Ｎの２次識別信号の中の一つまたは複数を記憶する手段と、前記第１から第Ｎの中間データの中の一つまたは複数を記憶する手段の、一方または双方を有することによりパイプライン処理を可能にすることを、特徴とする請求項２又は請求項３に記載の連想メモリ。
【請求項７】
前記中間データ生成手段に入力する１次検索および各２次検索をとおしてワード毎に対応するワードが選出され続けているか否かの情報の、更新、記憶を結線論理を用いて構成することにより、当該情報を前記中間データ生成手段に入力するための配線と、１次識別信号または２次識別信号の配線とを共用することを特徴とする請求項１乃至請求項３の何れか一項に記載の連想メモリ。
【請求項８】
前記中間データの各部分ビット領域に、前記外部検索データの対応する部分ビット領域と同じ優先順位を付与し、該中間データの該部分ビット領域について優先順位の高位から低位への順に検索データとして前記２次検索を実行することを、特徴とする請求項１乃至請求項３の何れか一項に記載の連想メモリ。
【請求項９】
前記記憶データとして１次検索の際に対応する前記マスク情報により検索対象から除外される１ビットまたは複数のビットに特定ビット・パターンを格納し、２次検索として、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出する、ことを特徴とする請求項１又は請求項２に記載の連想メモリ。
【請求項１０】
前記記憶データにおいて１次検索の際に対応する前記マスク情報により検索対象から除外される１ビットまたは複数のビットが特定ビット・パターンであるとみなして２次検索を行い、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出する、ことを特徴とする請求項１又は請求項２に記載の連想メモリ。
【請求項１１】
前記特定ビット・パターンは、すべての当該ビットが記憶データの無効状態により構成されている請求項９又は請求項１０に記載の連想メモリ。
【請求項１２】
前記論理演算は、選出状態にあるワードに対応する記憶データ同士の、記憶データの有効状態を真とする論理和演算であり、その論理和演算結果を前記中間データとし、前記２次検索は、該中間データと一致する記憶データを有するワードを選出することを特徴とする請求項９乃至請求項１１のいずれか一項に記載の連想メモリ。
【請求項１３】
前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、該論理積演算結果のビットがマスク情報の無効状態ならば前記外部検索データの同一のビット位置の情報を中間データの同一ビット位置の状態とし、該論理積演算結果のビットがマスク情報の有効状態ならば記憶データの無効状態を前記中間データの同一ビット位置の状態として前記中間データを生成し、前記２次検索は該中間データと一致する記憶データを有するワードを選出することを特徴とする請求項９乃至請求項１１の何れか一項に記載の連想メモリ。
【請求項１４】
前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、その論理積演算結果を中間データとし、前記２次検索は該中間データと一致するマスク情報を有し且つその時点までに選出状態にあるワードを選出することを特徴とする請求項１乃至請求項３の何れか一項に記載の連想メモリ。
【請求項１５】
入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の１つまたは複数個毎に前記記憶データの中で１ビットまたは複数ビットの領域の１つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
前記入力転送データに付随する前記送信元ネットワーク・アドレスおよび前記宛先ネットワーク・アドレスを構成要素に含む前記判定入力データを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行う１次検索手段と、
前記１次検索の結果、選出された一つまたは複数の転送規則を構成する記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした論理演算により中間データを生成する中間データ生成手段と、
前記判定入力データの第１の構成要素から最終の構成要素に対して同様に順次、前記１次検索、前記２次検索の度に選出されつづけている一つまたは複数の転送規則を構成する、記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした前記論理演算の結果により更新された中間データの当該構成要素に対応するビット領域を検索データとして、当該構成要素に対応するビット領域の記憶データまたはマスク情報について選択的に２次検索を実行する２次検索手段と、
最終的に選出された転送規則により、当該入力転送データの転送の可否を決定する手段と、を有することを特徴とするネットワーク機器。
【請求項１６】
入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の１つまたは複数個毎に前記記憶データの中で１ビットまたは複数ビットの領域の１つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出される転送規則を識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および判定入力データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、２次検索制御信号により転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を実行するか否かを制御可能であり、且つ検索の結果選出される転送規則を識別する２次識別信号を出力する一つまたは複数の共有２次検索手段と、
１次検索および各２次検索をとおして、転送規則毎に対応する転送規則が選出され続けているか否かの転送規則有効情報を１次検索および各２次検索実行の度に更新、記憶し、その選出状態、非選出状態を示す一致信号を前記中間データ生成手段に出力する記憶手段と、
前記判定入力データの全ビット領域を検索データとして前記１次検索を行った後、前記中間データの各部分ビット領域を順次検索データとして前記２次検索を実行するように前記２次検索制御信号を出力する制御手段と、
前記一致信号により参照した転送可否情報により当該入力転送データの転送可否を決定する手段と、を有することを特徴とするネットワーク機器。
【請求項１７】
入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを含むＮ個（Ｎは２以上の整数）の構成要素から構成される判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の１つまたは複数個毎に前記記憶データの中で１ビットまたは複数ビットの領域の１つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出される転送規則を識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するＮ個の中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を行った結果選出される転送規則を識別する信号を出力するＮ個の２次検索手段と、
前記第Ｎの２次検索手段により選出された転送規則により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段とを有し、
前記Ｎ個の中間データ生成手段とＮ個の２次検索手段は、第１の中間データ生成手段は１次検索の結果生成された第１の中間データを前記第１の２次検索手段に入力し第１の部分ビット領域に対して第１の２次検索を行い、第２の中間データ生成手段は第１の２次検索の結果生成された第２の中間データを前記第２の２次検索手段に入力し第２の部分ビット領域に対して第２の２次検索を行い、第３の中間データ生成手段は第２の２次検索の結果生成された第３の中間データを前記第３の２次検索手段に入力して第３の部分ビット領域に対して２次検索を行い、以下同様に構成し、第Ｎの中間データ生成手段は第（Ｎ−１）の２次検索の結果生成された第Ｎの中間データを前記第Ｎの２次検索手段に入力し第Ｎの部分ビット領域に対して２次検索を行う、ことを特徴とするネットワーク機器。
【請求項１８】
請求項１５乃至１７の何れか一項に記載の前記ネットワーク機器を介してネットワークに接続された機器間でデータ通信を行うネットワークシステム。
【請求項１９】
ｒ（ｒは整数）個の検索データ（３−１〜３−ｒ）にそれぞれ対応するｒ個の単一領域検索用連想メモリ（３６−１〜３６−ｒ）と、
対応するｒ本の一致線（３７−ｊ−１〜３７−ｊ−ｒ：ｊ＝１，２，・・・ｍ）（ｍは整数）の信号と１本の共通一致線（３８−ｊ）の信号とを入力とし、前記共通一致線（３８−ｊ）の有効状態を真とする論理積演算を行った結果を論理積信号（４０−ｊ）として出力するｍ個の論理積手段（３９−１〜３９−ｍ）と、
対応する前記論理積信号（４０−ｊ）を入力し、記憶制御信号の状態に応じて対応する前記共通一致線（３８−ｊ）の状態を保持又は前記論理積信号（４０−ｊ）の値を記憶するｍ個の記憶手段（４３−１〜４３−ｍ）とを備え、
各単一検索用連想メモリ（３６−ｉ：ｉ＝１，２，・・・ｒ）はそれぞれｍ個のワードを有し、１次検索許可信号に応答して対応するｉ番目の検索データと前記ワード内に格納したｍ個の記憶データとを対応するマスク情報を考慮して比較し、一致する記憶データに対応する前記一致線（３７−ｊ−１〜３７−ｊ−ｒ）に有効状態を表わす信号を出力する１次検索と、
２次検索許可信号に応答して前記記憶データと前記マスク情報の双方または一方を用いて、ｍ本の前記共通一致線（３８−１〜３８−ｍ）の状態に応じた中間データを生成し、この中間データと前記記憶データとを比較し、一致する前記記憶データの中で最もマスク情報の有効状態のビット数が少ない記憶データに対応する前記一致線のみに有効状態を表わす信号を出力する２次検索とを実行することを特徴とする連想メモリ。
【請求項２０】
ｒ（ｒは整数）個の検索データ（３−１〜３−ｒ）にそれぞれ対応するｒ個の単一領域検索用連想メモリ（２６−１〜２６−ｒ）を備え、
各単一検索用連想メモリ（２６−ｉ：ｉ＝１，２，・・・ｒ）はそれぞれｍ（ｍは整数）個のワードを有し、１次検索許可信号に応答して対応するｉ番目の検索データと前記ワード内に格納したｍ個の記憶データとを対応するマスク情報を考慮して比較し、一致する記憶データに対応する一致線（３７−１〜３７−ｍ）に有効状態を表わす信号を出力する１次検索と、
２次検索許可信号に応答して、前記記憶データと前記マスク情報の双方または一方を用いて、前記一致線（３７−１〜３７−ｍ）の状態に応じた中間データを生成し、この中間データと前記記憶データとを比較し、一致する前記記憶データの中で最もマスク情報の有効状態のビット数が少ない記憶データに対応する前記一致線のみに有効状態を表わす信号を出力する２次検索とを実行することを特徴とする連想メモリ。
【請求項２１】
ｒ（ｒは整数）個の検索データ（３−１〜３−ｒ）にそれぞれ対応するｒ個の単一領域検索用連想メモリ（４−１〜４−ｒ）と、
対応するｒ本の１次一致線（１７−ｊ−１〜１７−ｊ−ｒ：ｊ＝１，２，・・・ｍ）（ｍは整数）の信号と１本の共通一致線（３８−ｊ）の信号と、１本の一致線（５−ｊ）の信号とを入力とし、前記共通一致線（３８−ｊ）の有効状態を真とする論理積演算を行った結果を論理積信号（４０−ｊ）として出力するｍ個の第１論理積手段（１３−１〜１３−ｍ）と、
対応する前記第１論理積信号（４０−ｊ）を入力し、記憶制御信号の状態に応じて前記共通一致線（３８−ｊ）の状態を保持又は前記第１論理積信号（４０−ｊ）の値を記憶するｍ個の記憶手段（４３−１〜４３−ｍ）と、
対応するｒ本の２次一致線（１８−ｊ−１〜１８−ｊ−ｒ：ｊ＝１，２，・・・ｍ）の信号を入力とし、前記共通一致線（３８−ｊ）の有効状態を真とする論理積演算を行った結果を前記一致線（５−ｊ）の信号として出力するｍ個の第２論理積手段（１５−１〜１５−ｍ）とを備え、
各単一検索用連想メモリ（４−ｉ：ｉ＝１，２，・・・ｒ）はそれぞれｍ個の１次メモリワードと２次メモリワードとを有し、１次検索許可信号に応答して対応するｉ番目の検索データと前記１次メモリワード内に格納したｍ個の記憶データとを対応するマスク情報を考慮して比較し、一致する記憶データに対応する前記１次一致線（１７−ｊ−１〜１７−ｊ−ｒ）に有効状態を表わす信号を出力する１次検索と、
２次検索許可信号に応答して、前記１次メモリワード内に格納した前記記憶データと前記マスク情報の双方または一方を用いて、ｍ本の前記共通一致線（３８−１〜３８−ｍ）の状態に応じた中間データを生成し、この中間データと前記２次メモリワード内に格納した前記記憶データとを比較し、一致する記憶データに対応する前記２次一致線（１８−ｊ−１〜１８−ｊ−ｒ）のみに有効状態を表わす信号を出力する２次検索とを実行することを特徴とする連想メモリ。
【請求項２２】
ｒ（ｒは整数）個の検索データ（３−１〜３−ｒ）にそれぞれ対応するｒ個の単一領域検索用連想メモリ（３０−１〜３０−ｒ）と、
対応するｒ個の１次メモリワードにそれぞれワイアードＡＮＤ論理接続されたｍ（ｍは整数）本の１次一致線（１７−１〜１７−ｍ）と、
対応するｒ個の２次メモリワードにそれぞれワイアードＡＮＤ論理接続されたｍ本の２次一致線（１８−１〜１８−ｍ）と、
前記１次一致線（１７−ｊ：ｊ＝１，２，・・・ｍ）の信号をドレインに、前記２次一致線（１８−ｊ）の信号をゲートにそれぞれ入力し、前記１次一致線（１７−ｊ）の有効状態を真とする論理積演算を行い、演算結果をソースに出力するｍ個の第１トランジスタ（３４−１〜３４−ｍ）と、
前記論理演算結果をドレインに入力し、ゲートに入力される記憶制御信号の状態に応じて前記論理演算結果を保持するｍ個の第２トランジスタ（３３−１〜３３−ｍ）とを備え、
各単一検索用連想メモリ（３０−ｉ：ｉ＝１，２，・・・ｒ）はそれぞれｍ個の前記１次メモリワードと前記２次メモリワードとを有し、１次検索許可信号に応答して対応するｉ番目の検索データと前記１次メモリワード内に格納したｍ個の記憶データとを対応するマスク情報を考慮して比較し、一致する記憶データに対応する前記１次一致線（１７−ｊ）に有効状態を表わす信号を出力する１次検索と、
２次検索許可信号に応答して、前記１次メモリワード内に格納した前記記憶データと前記マスク情報の双方または一方を用いて、ｍ本の前記１次一致線（１７−１〜１７−ｍ）の状態に応じた中間データを生成し、この中間データと前記２次メモリワード内に格納した前記記憶データとを比較し、一致する記憶データに対応する前記２次一致線（１８−ｊ）のみに有効状態を表わす信号を出力する２次検索とを実行することを特徴とする連想メモリ。
【請求項２３】
ｒ（ｒは整数）個の第１検索データ（３−１〜３−ｒ）にそれぞれ対応するｒ個の単一領域検索用連想メモリ（４−１〜４−ｒ）と、
少なくとも１個の第２検索データ（４８）に対応する第２検索データ用連想メモリ（４９）と、
各単一領域検索用連想メモリ（４−１〜４−ｒ）に対応するｒ本の１次一致線（１７−ｊ−１〜１７−ｊ−ｒ：ｊ＝１，２，・・・ｍ）（ｍは整数）の信号と、前記第２検索データ用連想メモリ（４９）に対応する少なくとも１本の一致線（９０−ｊ）の信号と、１本の共通一致線（３８−ｊ）の信号と、１本の一致線（５−ｊ）の信号とを入力とし、前記共通一致線（３８−ｊ）の有効状態を真とする論理積演算を行った結果を論理積信号（４０−ｊ）として出力するｍ個の第１論理積手段（９１−１〜９１−ｍ）と、
対応する前記第１論理積信号（４０−ｊ）を入力し、記憶制御信号の状態に応じて前記共通一致線（３８−ｊ）の状態を保持又は前記第１論理積信号（４０−ｊ）の値を記憶するｍ個の記憶手段（４３−１〜４３−ｍ）と、
対応するｒ本の２次一致線（１８−ｊ−１〜１８−ｊ−ｒ：ｊ＝１，２，・・・ｍ）の信号を入力とし、前記共通一致線（３８−ｊ）の有効状態を真とする論理積演算を行った結果を前記一致線（５−ｊ）の信号として出力するｍ個の第２論理積手段（１５−１〜１５−ｍ）とを備え、
前記第２検索データ用連想メモリ（４９）はｍ個の１次メモリワードを有し、前記第２検索データ（４８）と前記第２検索データ用連想メモリ（４９）の前記１次メモリワード内に格納したｍ個の記憶データとを対応するマスク情報を考慮して比較し、一致する記憶データに対応する前記一致線（９０−ｊ）に有効状態を表わす信号を出力する検索と、
各単一検索連想メモリ（４−ｉ：ｉ＝１，２，・・・ｒ）はそれぞれｍ個の１次メモリワードと２次メモリワードとを有し、１次検索許可信号に応答して対応するｉ番目の検索データ（３−ｉ）と前記１次メモリワード内に格納したｍ個の記憶データとを対応するマスク情報を考慮して比較し、一致する記憶データに対応する前記１次一致線（１７−ｊ−１〜１７−ｊ−ｒ）に有効状態を表わす信号を出力する１次検索と、
２次検索許可信号に応答して、前記１次メモリワード内に格納した前記記憶データと前記マスク情報の双方または一方を用いて、ｍ本の前記共通一致線（３８−１〜３８−ｍ）の状態に応じた中間データを生成し、この中間データと前記２次メモリワード内に格納した前記記憶データとを比較し、一致する記憶データに対応する前記２次一致線（１８−ｊ−１〜１８−ｊ−ｒ）のみに有効状態を表わす信号を出力する２次検索とを実行することを特徴とする連想メモリ。
【発明の詳細な説明】
技術分野
本発明は、連想メモリおよびその検索方法およびネットワーク機器およびネットワーク・システムに関する。特に検索マスク機能を有する連想メモリとその検索方法およびそれを用いたネットワーク機器およびネットワーク・システムに関する。
背景技術
従来のコンピュータ・ネットワーク・システムに用いられるネットワーク機器には、コンピュータ・ネットワーク・システムの安全性を確保するために、次に示すように転送可否を計算する機能が不可欠である。
従来のコンピュータ・ネットワークの構成の接続例を図３３に示す。ネットワークに参加しているユーザ機器（例えばコンピュータ端末など）は、他のユーザ機器と識別するために、その機器がネットワークに参加するときに、あらかじめ決められた規則に従って特定のネットワーク・アドレスを割り当てられる。ここではネットワーク・アドレスは複数桁の数値、例えば３桁の数値（ａ．ｂ．ｃ）で表現されるものとして説明する。また、あらかじめ決められた規則は、例えばネットワーク・アドレスの先頭の数値でイギリス、ドイツ、日本などの国を示し、第２番目の数値で国の中の都市名を示し、更に第３番目の数値で都市の中の企業名を示す、というように階層構造をとっている。以降、この階層をセグメントと呼ぶこととする。図３３においては、セグメントの階層構造を模擬的に示したものである。図において太線で囲まれた１つの矩形が１つのセグメントである。図３３では、ネットワーク・アドレスの先頭の数値が１であるセグメント１と、先頭の数値が２であるセグメント２と、先頭の数値が３であるセグメント３が、最上位のセグメントとして存在している。セグメント１の下の階層に、上位２つの数値が１．２であるネットワーク・アドレスを持つセグメント４と、上位２つの数値が１．３であるネットワーク・アドレスを持つセグメント５とがあり、セグメント４の中にネットワーク・アドレス１．２．６を持つユーザ機器ＰＣ４０１−１が接続されている。セグメント２の下の階層に、上位２つの数値が２．３であるネットワーク・アドレスを持つセグメント６があり、セグメント６の中にネットワーク・アドレス２．３．４を持つユーザ機器ＰＣ４０１−２とネットワーク・アドレス２．３．５を持つユーザ機器ＰＣ４０１−３とが接続されている。また、セグメント３の下の階層に、上位２つの数値が３．５であるネットワーク・アドレスを持つセグメント７がある。図に例示されているアドレスにおいて、＊はドント・ケアを意味する。
これら各ネットワーク・アドレスは、その各桁を８進数で表現した全体で９ビットのビット列で表現されるものと仮定する。例えば、ネットワーク・アドレス（１．２．＊）はビット列（００１．０１０．０００）で表現される。以降、この表現のビット列を記憶データと呼ぶ。ここで、ネットワーク・アドレスの中の＊はドント・ケアであるので、対応する記憶データ（００１．０１０．０００）のビット列の上位６ビットが有効であり、それ以下のビットは無効であることを示す必要がある。そこで、マスク情報と呼ばれる情報を記憶データと対にして記憶させている。以降、この対を構造化データと呼ぶ。前記の例では、ビット列（１１１．１１１．０００）で表現される。ここで、“１”がマスク無効状態を、“０”がマスク有効状態を示している。
各セグメントは、ネットワークに参加しているユーザ機器間の通信データを転送するためにネットワーク機器、例えばルータを、有している。図３３の接続例では、セグメント１はネットワーク機器４００−１を、セグメント２はネットワーク機器４００−２を、セグメント３はネットワーク機器４００−３を、セグメント４はネットワーク機器４００−４を、セグメント５はネットワーク機器４００−５を、セグメント６はネットワーク機器４００−６を、セグメント７はネットワーク機器４００−７を、それぞれ有している。また、図３３の接続例では、各ネットワーク機器はそのセグメント直下のネットワーク機器またはユーザ機器と接続されている。さらに、ネットワーク機器４００−１は、ネットワーク機器４００−２、ネットワーク機器４００−３，およびネットワーク機器４００−６とも接続している。
各セグメントが有するネットワーク機器は、そのネットワーク機器に接続されているユーザ機器または他のネットワーク機器から入力された通信データに対して、通信データに付随する送出元ネットワーク・アドレスと宛先ネットワーク・アドレスおよびあらかじめ設定されている転送規則を基に転送の可否を計算する機能と、前記宛先アドレスとネットワーク機器の接続関係を基に最適な転送ルートを計算し、転送先ネットワーク・アドレスを生成する機能を有し、通信データの転送を制御する。
ここで図３３において宛先ネットワーク・アドレスがＰＣ４０１−２に対応する（２．３．４）である通信データを、ネットワーク機器４００−１が転送する場合、図から明らかに分かるように、ネットワーク・アドレス（２．＊．＊）に対応するネットワーク機器４００−２に転送するよりも、ネットワーク・アドレス（２．３．＊）に対応するネットワーク機器４００−６に転送する方が、最適である。つまり、宛先ネットワーク・アドレスとマスク情報を考慮して一致するネットワーク・アドレスに対応するネットワーク機器の中で、そのネットワーク・アドレスにおいてマスク有効状態のビット数が最も少ないマスク情報を持つ、ネットワーク機器を選ぶのが最適である。
また本例で説明する、コンピュータ・ネットワークの転送規則の設定例を表１（ａ）に示す。
0003957637.tif 000002
0003957637.tif 000003
規則１としてセグメント４内部からセグメント２内部への転送を許可する。規則２としてセグメント１内部からセグメント３内部への転送を許可する。規則３としてセグメント４内部からセグメント６内部への転送を拒絶する。規則４としてセグメント４内部のＰＣ４０１−１からセグメント６内部のＰＣ４０１−２への転送を許可する。規則５としてセグメント１内部からセグメント６内部のＰＣ４０１−３への転送を拒絶する。送出先ネットワーク・アドレスと宛先ネットワーク・アドレスをそれぞれ記憶データとマスク情報の組で表現した場合、表１（ａ）の転送規則は、表１（ｂ）のように記述できる。これらの転送規則は、コンピュータ・ネットワーク・システムの安全性を確保するために必要である。表１（ａ）の転送規則の場合、セグメント４からセグメント６への転送は、ＰＣ４０１−１からＰＣ４０１−２への転送のみを許可し、他はすべて拒絶することにより、例えばＰＣ４０１−３に格納されている重要なデータを不正な閲覧、複写、改竄、消去などから守ることができる。
このように、各ユーザ機器同士を直接通信回線で接続するのではなくネットワーク機器により通信データの転送を制御して通信を行うことにより、有限の通信回線を、安全性を確保しながら効率よく使用している。
次に図面を参照して、従来のネットワーク機器の説明を行う。図３４は従来のネットワーク機器の一構成例を示すブロック図である。図３４では従来のネットワーク機器４２２について、図３３のネットワーク機器４００−１に適用した場合を例にして、その構成と動作を説明する。
ネットワーク機器４２２は、入力転送データ４０２を入力とし、出力転送データ４０３を出力する。入力転送データ４０２は、送出元ネットワーク・アドレス４０４と、転送先ネットワーク・アドレス４０５と、宛先ネットワーク・アドレス４０６と、データ部４０７を有している。出力転送データ４０３は、送出元ネットワーク・アドレス４０４と、第２の転送先ネットワーク・アドレス４０８と、宛先ネットワーク・アドレス４０６と、データ部４０７を有している。図３４では従来のネットワーク機器４２２を、図３３のネットワーク機器４００−１に適用した場合を例にして説明するので、入力転送データ４０２の転送先ネットワーク・アドレス４０５は当然ネットワーク機器４００−１のネットワーク・アドレスとなっている。
ネットワーク機器４２２は、送出元ネットワーク・アドレス抽出部４０９と、宛先ネットワーク・アドレス抽出部４１０と、連想メモリ１０１と、ＣＰＵ４１３と、エンコーダ４１４と、メモリ４１６と、転送先ネットワーク・アドレス変更部４１８と、データ転送部４２１により構成される。
送出元ネットワーク・アドレス抽出部４０９は、入力転送データ４０２の送出元ネットワーク・アドレス４０４を送出元ネットワーク・アドレス情報４１１として抽出し、ＣＰＵ４１３に入力する。宛先ネットワーク・アドレス抽出部４１０は、入力転送データ４０２の宛先ネットワーク・アドレス４０６を宛先ネットワーク・アドレス情報４１２として抽出し、連想メモリ１０１とＣＰＵ４１３に入力する。
ネットワーク機器４２２には、ネットワーク中でネットワーク機器４２２に接続されているネットワーク機器の中で、自分自身が属するセグメントの外部にあるネットワーク機器の属するセグメントのネットワーク・アドレスを、連想メモリ１０１の連想メモリ・ワード１０２にそれぞれ格納している。図３４では従来のネットワーク機器４２２を、図３３のネットワーク機器４００−１に適用した場合を例にして説明しているので、連想メモリ・ワード１０２−１には、ネットワーク機器４００−２が属するセグメント２のネットワーク・アドレス（２．＊．＊）を前述のように記憶データ（０１０．０００．０００）とマスク情報（１１１．０００．０００）の対で表現される構造化データの形式で記憶している。同様に、連想メモリ・ワード１０２−２にはネットワーク機器４００−６が属するセグメント６のネットワーク・アドレス（２．３．＊．）を、連想メモリ・ワード１０３−３にはネットワーク機器４００−３が属するセグメント３のネットワーク・アドレス（３．＊．＊）を記憶している。連想メモリ１０１は、通常のメモリと同様にアドレスを指定して記憶データの書き込み、読み出しを行う機能のほかに、入力した宛先ネットワーク・アドレス情報４１２と、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する一致線１０５−１〜１０５−３を有効状態にする機能を有している。連想メモリ１０１としては、例えば、特願２０００−１８１４０６がある。
連想メモリ１０１が出力した一致線１０５−１〜１０５−３はエンコーダ４１４によりメモリ・アドレス信号４１５に符号化される。メモリ４１６には、連想メモリ１０１の各連想メモリ・ワードに格納されている記憶データ、マスク情報により構成されるセグメントのネットワーク・アドレスに対応するネットワーク機器のネットワーク・アドレスを、連想メモリ１０１の格納アドレスと同一のアドレスのワードに記憶させてある。たとえば、連想メモリ１０１の連想メモリ・ワード１０２−１にはアドレス（２．＊．＊）が記憶されているが、これに対応する図３３のネットワーク機器４００−２のネットワーク・アドレスがメモリ４１６のワード１に格納されている。同様にメモリ４１６のワード２にはネットワーク機器４００−６のアドレスが、ワード３にはネットワーク機器４００−３のアドレスが格納されている。メモリ４１６はメモリ・アドレス信号４１５をリード・アドレスとして指定される格納データを、メモリ・データ信号４１７として出力する。
転送先ネットワーク・アドレス変更部４１８は、入力転送データ４０２の転送先ネットワーク・アドレス４０５をメモリ・データ信号４１７の値に変更することにより変更済転送データ４１９を生成し、データ転送部４２１に入力する。ＣＰＵ４１３は、送出元ネットワーク・アドレス情報４１１，宛先ネットワーク・アドレス情報４１２に対して、表１（ｂ）に示す転送規則を基に転送の可否を判定し、判定結果を転送制御信号４２０としてデータ転送部４２１に入力する。データ転送部４２１は、転送制御信号４２０が転送を許可していれば変更済転送データ４１９を出力転送データ４０３として出力し、転送制御信号４２０が転送を拒絶していれば出力しない。
例えば入力転送データ４０２の送出元ネットワーク・アドレス４０４が（１．２．３）、宛先ネットワーク・アドレス４０６が（３．５．６）の場合、連想メモリ１０１での検索動作終了時には、連想メモリ・ワード１０２−３が格納している（３．＊．＊）に対応する一致線１０５−３が有効状態を出力する。これによりエンコーダ４１４はメモリ・アドレス４１５として“３”を出力し、メモリ４１６はネットワーク機器４００−３のネットワーク・アドレスをメモリ・データ信号４１７として出力する。転送先ネットワーク・アドレス変更部４１８により、入力転送データ４０２の転送先ネットワーク・アドレス４０５を、ネットワーク機器４００−３のネットワーク・アドレスに変更しデータ転送部４２１に変更済転送データ４１９として入力する。送出元ネットワーク・アドレス情報４１１が（１．２．３），宛先ネットワーク・アドレス情報４１２が（３．５．６）であるのでＣＰＵ４１３は、転送規則２を適用し、転送許可状態の転送制御信号４２０をデータ転送部４２１に入力する。これによりデータ転送部４２１は、変更済転送データ４１９を出力転送データ４０３としてネットワーク機器４００−３に向けて転送する。ネットワーク機器４００−３は転送されてきたデータに基づいて上述したのと同様な動作を行い、データは次々と最適な経路のネットワーク機器に安全性を確保しながら転送され続け、最終的に宛先ネットワーク・アドレス（３．５．６）を有するユーザ機器に転送されることができる。
［従来の連想メモリの説明］
図２８は、従来の連想メモリの一構成例を示すブロック図である。連想メモリ１０１は、ｎビット２入力１出力セレクタ１２３と、ｎビットｍ語の連想メモリ・ワード１０２−１〜１０２−ｍと、ｎビット・ラッチ１２１と、制御回路１３０と、論理ゲート１１６−１〜１１６−ｎを有している。ｊ番目の連想メモリ・ワード１０２−ｊは、ｎ個の連想メモリ・セル１０７−ｊ−１〜１０７−ｊ−ｎを備えている。ｊ番目の連想メモリ・ワード１０２−ｊには、対応するデータ・ワード線１０３−ｊと、マスク・ワード線１０６−ｊと、および比較制御信号１０４が入力のために接続され、対応する一致線１０５−ｊ、およびｎ本の一致データ中間論理線１１４−１〜１１４−ｎが出力のために接続され、ｎ本のビット線１１３−１〜１１３−ｎが入出力のために接続されている。
ｊ番目の連想メモリ・ワード１０２−ｊのｋビット目の連想メモリ・セル１０７−ｊ−ｋには、対応するデータ・ワード線１０３−ｊと、マスク・ワード線１０６−ｊと、および比較制御信号１０４が入力のために接続され、対応する一致線１０５−ｊ、および一致データ中間論理線１１４−ｋが出力のために接続され、ビット線１１３−ｋが入出力のために接続されている。
連想メモリ・セル１０７−ｊ−ｋは、ビット線１１３−ｋを介して外部から入力される記憶データの対応するビット情報を格納するデータ・セル１０８−ｊ−ｋと、データ・セル１０８−ｊ−ｋに記憶されたビット情報と外部からビット線１１３−ｋを介して入力される情報とを比較する比較器１１０−ｊ−ｋと、外部からビット線１１３−ｋを介して入力されるマスク情報の対応するビット情報を格納するマスク・セル１０９−ｊ−ｋと、および論理ゲート１１１−ｊ−ｋとを備えている。ここで、マスク・セル１０９−ｊ−ｋに格納されたビット情報がマスク有効状態の場合には、対応するデータ・セル１０８−ｊ−ｋには、記憶データの無効状態を格納する。
なお、本例では、マスク情報のマスク有効状態を“０”、マスク無効状態を“１”とし、記憶データの有効状態を“１”、無効状態を“０”とする。記憶データと同様に、一致データ論理和線１１７−１〜１１７−ｎの有効状態を“１”、無効状態を“０”とする。一致線１０５−１〜１０５−ｍの有効状態を“１”、無効状態を“０”とする。
データ・セル１０８−ｊ−ｋは、対応するデータ・ワード線１０３−ｊが有効状態の場合、対応するビット線１１３−ｋに書き込みデータがドライブされていれば記憶データとして格納し、対応するビット線１１３−ｋがドライブされていなければ格納している記憶データを対応するビット線１１３−ｋに出力する。対応するデータ・ワード線１０３−ｊが無効状態ならば、ビット線１１３−ｋに対してなんら操作は行わない。また、対応するデータ・ワード線１０３−ｊの値にかかわらず、格納している記憶データを同一の連想メモリ・セル１０７−ｊ−ｋの中の比較器１１０−ｊ−ｋと論理ゲート１１１−ｊ−ｋに出力する。
マスク・セル１０９−ｊ−ｋは、対応するマスク・ワード線１０６−ｊが有効状態の場合、対応するビット線１１３−ｋに書き込みデータがドライブされていれば書き込みデータをマスク情報として格納し、対応するビット線１１３−ｋがドライブされていなければ、格納しているマスク情報を対応するビット線１１３−ｋに出力する。対応するマスク・ワード線１０６−ｊが無効状態ならば、ビット線１１３−ｋに対してなんら操作は行わない。また、対応するマスク・ワード線１０６−ｊの値にかかわらず、格納しているマスク情報を同一の連想メモリ・セル１０７−ｊ−ｋの中の比較器１１０−ｊ−ｋに出力する。
一致線１０５−１〜１０５−ｍは、検索動作の開始前には、ハイ・レベルにプリ・チャージされ、有効状態“１”になっているものとする。
比較器１１０−ｊ−ｋは、対応するビット線１１３−ｋと、それに同一の連想メモリ・セル１０７−ｊ−ｋの中のデータ・セル１０８−ｊ−ｋに格納されている記憶データと、マスク・セル１０９−ｊ−ｋに格納されているマスク情報と、および比較制御信号１０４を入力とする。比較器１１０−ｊ−ｋは、比較制御信号１０４が無効状態“０”かつマスク情報がマスク有効状態“０”ならば、対応する一致線１０５−ｊを解放状態にし、それ以外の場合には、ビット線１１３−ｋの値と記憶データが一致するならば対応する一致線１０５−ｊを開放状態にし、一致しないならば無効状態“０”を出力する。連想メモリ・ワード１０２−ｊの中のｎ個の比較器１１０−ｊ−１〜１１０−ｊ−ｎがすべて一致線１０５−ｊを開放状態にしているときに、一致線１０５−ｊは有効状態“１”となり、それ以外の場合には無効状態“０”となる、一致線１０５の有効状態“１”を真としたワイアードＡＮＤ論理接続を構成している。つまり、検索動作時には、比較制御信号１０４が無効状態“０”かつマスク情報がマスク有効状態“０”のために比較対象から除外されたビットを除いて、連想メモリ・ワード１０２−ｊが格納している記憶データとビット線１１３−１〜１１３−ｎが完全に一致する場合に限り、一致線１０５−ｊは有効状態“１”となり、それ以外の場合は無効状態“０”となる。
論理ゲート１１１−ｊ−ｋは、同一の連想メモリ・ワード１０２−ｊの中の一致線１０５−ｊが有効状態“１”かつ、同一の連想メモリ・セル１０７−ｊ−ｋの中のデータ・セル１０８−ｊ−ｋに格納された記憶データが有効状態のときに、対応する一致データ中間論理線１１４−ｋに“０”を出力し、それ以外の場合には開放状態にする。ここで本例では記憶データの有効状態が“１”であるので、データ・セル１０８−ｊ−ｋに格納された記憶データが“１”かつ一致線１０５−ｊが“１”のときに、対応する一致データ中間論理線１１４−ｋに“０”を出力し、それ以外の場合には解放状態を出力する。
各一致データ中間論理線１１４−ｋは、抵抗１１５−ｋによりプル・アップされており、対応するｍ個の論理ゲート１１１−１−ｋ〜１１１−ｍ−ｋとワイアード論理接続を構成している。したがって、接続されているｍ個の論理ゲート１１１−１−ｋ〜１１１−ｍ−ｋがすべて一致データ中間論理線１１４−ｋを開放状態にしているときに、一致データ中間論理線１１４−ｋは“１”となり、それ以外の場合には“０”となる。つまり“１”を真としたワイアードＡＮＤ接続となっている。
論理ゲート１１６−１〜１１６−ｎは、対応する一致データ中間論理線１１４−１〜１１４−ｎの論理状態を反転し、一致データ論理和線１１７−１〜１１７−ｎとして出力する。
したがって、一致データ論理和線１１７−ｋには、ｍ個の論理ゲート１１１−１−ｋ〜１１１−ｍ−ｋと一致データ中間論理線１１４−ｋ、抵抗１１５−ｋ、および論理ゲート１１６−ｋにより、検索動作時に有効状態“１”となっている一致線１０５−１〜１０５−ｍを有するすべての連想メモリ・セル１０７−１−ｋ〜１０７−ｍ−ｋの中のデータ・セル１０８−１−１〜１０８−ｍ−ｋに格納されている記憶データどうしを、記憶データの有効状態を真とした論理和演算した結果が得られることになる。本例では、記憶データの有効状態“１”を真とした論理和演算した結果が得られる。これらの動作により、一致データ論理和線１１７−１〜１１７−ｎには、検索動作時に検索データ１１２と一致した記憶データの中で、最も無効状態“０”のビット数が少ない記憶データと同じ値が出力されることになる。
ｎビット・ラッチ１２１は、ラッチ制御信号１２２が有効状態の時に、一致データ論理和線１１７−１〜１１７−ｎの状態を内部に格納する。また、格納した状態をラッチ出力線１２０−１〜１２０−ｎに出力する。
ｎビット２入力１出力セレクタ１２３は、ビット線１１３−１〜１１３−ｎに出力するデータを、選択信号１２４の状態により、検索データ１１２−１〜１１２−ｎとラッチ出力線１２０−１〜１２０−ｎの一方から選択する。
制御回路１３０は、連想メモリ１０１の動作を制御するため、クロック信号１３１に同期して、ラッチ制御信号１２２、選択信号１２４、および比較制御信号１０４を出力する。
［従来の連想メモリの詳細説明］
次に、図２９に従来の連想メモリ・セル１０７の一構成例を示す。ここで、２本のビット線１１３ａ，１１３ｂは図２８に示されている各ビット線に対応するものであるが、図２８においては１１３−ｉで代表して表現している。この２本のビット線を介してメモリ・セルへのデータの読み書きや、検索データ１１２の入力を行う。データを書き込む場合、および検索データの入力を行う場合には、ビット線１１３ｂにはビット線１１３ａの値を反転した値を入力する。データ・セル１０８は、入出力が相互に接続された反転論理ゲート（Ｇ１０１）３０１、反転論理ゲート（Ｇ１０２）３０２と、反転論理ゲート（Ｇ１０２）３０２の出力をビット線１１３ａに接続しデータ・ワード線１０３がハイ・レベルのときに導通状態となるＭＯＳトランジスタ（Ｔ１０１）３０３と、反転論理ゲート（Ｇ１０１）３０１の出力をビット線１１３ｂに接続しデータ・ワード線１０３がハイ・レベルのときに導通状態となるＭＯＳトランジスタ（Ｔ１０２）３０４とにより構成される一般的なスタティックＳＲＡＭ素子である。
また、マスク・セル１０９も、入出力が相互に接続された反転論理ゲート（Ｇ１０３）３１０、反転論理ゲート（Ｇ１０４）３１１と、反転論理ゲート（Ｇ１０４）３１１の出力をビット線１１３ａに接続しマスク・ワード線１０６がハイ・レベルのときに導通状態となるＭＯＳトランジスタ（Ｔ１０８）３１２と、反転論理ゲート（Ｇ１０３）３１０の出力をビット線１１３ｂに接続しマスク・ワード線１０６がハイ・レベルのときに導通状態となるＭＯＳトランジスタ（Ｔ１０９）３１３とにより構成される一般的なスタティックＳＲＡＭ素子である。
比較器１１０はＭＯＳトランジスタ（Ｔ１０３）３０５、ＭＯＳトランジスタ（Ｔ１０４）３０６、ＭＯＳトランジスタ（Ｔ１０５）３０７、ＭＯＳトランジスタ（Ｔ１０６）３０８、およびＭＯＳトランジスタ（Ｔ１０７）３０９により構成される。ＭＯＳトランジスタ（Ｔ１０３）３０５とＭＯＳトランジスタ（Ｔ１０４）３０６はビット線１１３ａ，１１３ｂの間に直列に挿入される。ＭＯＳトランジスタ（Ｔ１０３）３０５は、データ・セル１０８内の反転論理ゲート（Ｇ１０１）３０１の出力がハイ・レベルのときに導通状態となる。ＭＯＳトランジスタ（Ｔ１０４）３０６は、データ・セル１０８内の反転論理ゲート（Ｇ１０２）３０２の出力がハイ・レベルのときに導通状態となる。ＭＯＳトランジスタ（Ｔ１０６）３０８とＭＯＳトランジスタ（Ｔ１０７）３０９は並列接続され、この並列接続された２つのＭＯＳトランジスタは、ＭＯＳトランジスタ（Ｔ１０５）３０７とともに、一致線１０５と低電位の間に直列に挿入される。ＭＯＳトランジスタ（Ｔ１０６）３０８は、マスク・セル１０９内の反転論理ゲート（Ｇ１０４）３１１の出力がハイ・レベルの時に導通状態となる。ＭＯＳトランジスタ（Ｔ１０７）３０９は、比較制御信号１０４が有効状態“１”の時に導通状態となる。
ＭＯＳトランジスタ（Ｔ１０５）３０７は、ＭＯＳトランジスタ（Ｔ１０３）３０５とＭＯＳトランジスタ（Ｔ１０４）３０６の接続点の電位がハイ・レベルの時に導通状態となる。ビット線１１３ａと反転論理ゲート（Ｇ１０１）３０１の出力がともにハイ・レベル、またはビット線１１３ｂと反転論理ゲート（Ｇ１０２）３０２の出力がともにハイ・レベルのときに、ＭＯＳトランジスタ（Ｔ１０３）３０５とＭＯＳトランジスタ（Ｔ１０４）３０６の接続点はハイ・レベルとなり、ＭＯＳトランジスタ（Ｔ１０５）３０７を導通状態とする。
従って、データ・セル１０８に格納されている記憶データと、ビット線１１３ａ，１１３ｂ上の検索データ１１２が異なる場合にＭＯＳトランジスタ（Ｔ１０５）３０７は導通状態になる。またＭＯＳトランジスタ（Ｔ１０６）３０８はマスク・セル１０９内に格納されているマスク情報が“０”のときには開放状態であり、“１”のときに導通状態となる。一致線１０５は検索動作を開始する前に高電位にプリ・チャージされているものとする。これにより、複数の連想メモリ・セル１０７が一致線１０５にＭＯＳトランジスタ（Ｔ１０６）３０８、およびＭＯＳトランジスタ（Ｔ１０７）３０９を介して接続されているとき、一つの連想メモリ・セル１０７でもロウ・レベルを出力していると一致線１０５はロウ・レベルとなるようなワイアードＡＮＤ接続となる。
ＭＯＳトランジスタ（Ｔ１０５）３０７が導通状態のときに、並列接続されたＭＯＳトランジスタ（Ｔ１０６）３０８、ＭＯＳトランジスタ（Ｔ１０７）３０９のどちらか一つでも導通状態の場合に連想メモリ・セル１０７は一致線１０５に無効状態“０”を出力し、それ以外の時には一致線１０５を開放状態とする。すなわち、マスク情報がマスク有効状態“０”かつ比較制御信号１０４が無効状態“０”の場合には検索データ１１２と記憶データの比較結果によらず一致線１０５を開放状態とし、それ以外の場合にはビット線１１３ａ，１１３ｂ上の検索データ１１２とデータ・セル１０８に格納されている記憶データが一致するときに開放状態とし、異なる場合には無効状態“０”を出力する。
次に、論理ゲート１１１と一致データ中間論理線１１４の働きを説明する。一致データ中間論理線１１４は図２８の抵抗１１５によりプル・アップされ検索動作前には“１”になっている。論理ゲート１１１は、一致データ中間論理線１１４と低電位との間に直列に挿入されたＭＯＳトランジスタ（Ｔ１１０）３１４と、ＭＯＳトランジスタ（Ｔ１１１）３１５で構成されている。ＭＯＳトランジスタ（Ｔ１１０）３１４は、一致線１０５が有効状態“１”のときに導通状態となり、無効状態“０”のときには開放状態となる。ＭＯＳトランジスタ（Ｔ１１１）３１５は、データ・セル１０８内部の反転論理ゲート（Ｇ１０２）３０２の出力がハイ・レベルの場合に導通状態となり、ロウ・レベルの場合には開放状態となる。つまり、データ・セル１０８に格納されている記憶データが有効状態“１”のときに導通状態となり、無効状態“０”のときには開放状態となる。これにより論理ゲート１１１は、一致線１０５が有効状態“１”かつデータ・セル１０８に格納された記憶データが有効状態“１”のときに、一致データ中間論理線１１４に“０”を出力し、それ以外の場合には開放状態にする
［従来の連想メモリの動作］
次に、上述の従来の連想メモリ１０１を、図３３のネットワーク機器４００−１における転送先ネットワーク・アドレスの計算に用いた場合の動作を、図３０を用いて説明する。そのときのタイミングチャートを図３１に示す。
連想メモリ１０１を９ビット３語の構成と仮定し、各連想メモリ・ワード１０２−１〜１０２−３に格納されている記憶データ、マスク情報には、図３３のネットワーク機器４００−１のネットワーク・アドレス（１．＊．＊）以外の接続情報を記憶しているものとする。このとき、接続情報の中のドント・ケア“＊”状態のビットは、記憶データの該当ビットを記憶データの無効状態“０”、マスク情報の該当ビットをマスク有効状態“０”とすることで表現される。
つまり、連想メモリ・ワード１０２−１には（２．＊．＊）を構造化データで表現するため、記憶データには２進数で（０１０．０００．０００）を、マスク情報として（１１１．０００．０００）で格納してある。同様に連想メモリ・ワード１０２−２には（２．３．＊）を構造化データで表現するため、記憶データには２進数で（０１０．０１１．０００）を、マスク情報として（１１１．１１１．０００）を格納してある。連想メモリ・ワード１０２−３には（３．＊．＊）を構造化データで表現するため、記憶データには２進数で（０１１．０００．０００）を、マスク情報として（１１１．０００．０００）を格納してある。
以降、検索データ１１２として図３３のＰＣ４０１−２の８進数のネットワーク・アドレス（２．３．４）を入力し検索動作を行った場合の動作説明をする。
まず、図３１のタイミング（１）で、すべての一致線１０５−１〜１０５−３は、ハイ・レベルにプリ・チャージされ、有効状態“１”になっている。
次に図３１のタイミング（２）で、制御回路１３０が出力する選択信号１２４により、ｎビット２入力１出力セレクタ１２３は検索データ１１２を選択し、ビット線１１３−１〜１１３−９に出力する。また、制御回路１３０は比較制御信号１０４に無効状態“０”を出力し、各連想メモリ・セル１０７−１−１〜１０７−ｍ−ｎにおいて、その中の記憶データと検索データ１１２の対応ビットの比較結果によらずに、その中のマスク情報がマスク有効状態“０”の場合には対応する一致線１０５を解放状態とすることを許可する。つまりドント・ケア“＊”も考慮して比較する。これにより、連想メモリ１０１の連想メモリ・ワード１０２−１に格納されている８進表現の（２．＊．＊）と、連想メモリ・ワード１０２−２に格納されている８進表現の（２．３．＊）がビット線１１３−１〜１１３−９上の検索データ１１２と一致する。従って、１次検索の結果として、一致線１０５−１、１０５−２の２本が有効状態“１”となり、残りの一致線１０５−３は無効状態“０”となる。
ここで、一致データ論理和線１１７−１からは、連想メモリ・ワード１０２−１内の一致データ中間論理線１１４−１に対応する記憶データ“０”と、連想メモリ・ワード１０２−２内の一致データ中間論理線１１４−１に対応する記憶データ“０”に対しての、“１”を真とした論理和結果“０”が出力される。一致データ論理和線１１７−２からは、連想メモリ・ワード１０２−１内の一致データ中間論理線１１４−２に対応する記憶データ“１”と、連想メモリ・ワード１０２−１内の一致データ中間論理線１１４−２に対応する記憶データ“１”に対しての“１”を真とした論理和結果“１”が出力される。以降同様に、一致データ論理和線１１７−３からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、一致データ論理和線１１７−４からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、一致データ論理和線１１７−５からは“０”と“１”に対しての“１”を真とした論理和結果“１”が、一致データ論理和線１１７−６からは“０”と“１”に対しての“１”を真とした論理和結果“１”が、一致データ論理和線１１７−７からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、一致データ論理和線１１７−８からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、一致データ論理和線１１７−９からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、それぞれ出力される。従って、一致データ論理和線１１７−１〜１１７−９には、２進表現で“０１００１１０００”が出力されることになる。
この状態で、制御回路１３０が出力するラッチ制御信号１２２が有効状態になり、ｎビット・ラッチ１２１は一致データ論理和線１１７−１〜１１７−９の状態を内部に格納する。したがって、ｎビット・ラッチ１２１は２進表現で“０１００１１０００”を格納し、その値をラッチ出力線１２０−１〜１２０−９に出力する。
図３１のタイミング（３）は、本例では、タイミング（２）とタイミング（４）双方のクロック信号１３１の状態を同一にするために挿入されており、連想メモリ１０１は、タイミング（２）の最終状態を保持し続ける。
次に図３１のタイミング（４）で、制御回路１３０が出力する選択信号１２４により、ｎビット２入力１出力セレクタ１２３はラッチ出力線１２０を選択し、その情報“０１００１１０００”を対応するビット線１１３−１〜１１３−９に出力した後、連想メモリ１０１は２次検索を開始する。２次検索では、一致線１０５−１〜１０５−３に保持されている、タイミング（２）で実行した１次検索の結果を利用する。本例では、一致線１０５−１および１０５−２の２本が有効状態“１”を保持しており、データ一致線１０５−３は無効状態“０”を保持している。また、制御回路１３０は比較制御信号１０４に有効状態“１”を出力する。これにより、各連想メモリ・セル１０７−１−１〜１０７−ｍ−ｎは、その中のマスク情報によらず、その中の記憶データと対応するビット線１１３の比較結果が不一致の場合には、一致線１０５に無効状態“０”を出力する。つまりドント・ケア“＊”を考慮せず、各連想メモリ・ワード１０２−１〜１０２−３に格納されている記憶データ自体とビット線１１３−１〜１１３−９の状態“０１００１１０００”とを比較し、不一致の場合には対応する一致線１０５−１〜１０５−３に無効状態“０”を出力することになる。
本例では、ビット線１１３−１〜１１３−９の状態“０１００１１０００”に対して、連想メモリ・ワード１０２−２が格納する記憶データが完全に一致し、対応する一致線１０５−２を開放状態にする。他の連想メモリ・ワード１０２−１および１０２−３が格納する記憶データは一致しないので、対応する一致線１０５−１および１０５−３に無効状態“０”を出力する。したがって、２次検索開始前に有効状態“１”を保持していた一致線１０５−１，１０５−２の２本の中で、２次検索後も有効状態“１”を保持し続けるのは、一致線１０５−２のみとなる。
したがって、入力した検索データ１１２と、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する一致線１０５−２のみに有効状態を出力することがわかる。
従来の連想メモリ１０１では、次に示すように、連想メモリ・ワード１語中に、記憶データとマスク情報の組で表現された複数のネットワーク・アドレスを格納した場合には、検索のために入力した複数のネットワーク・アドレスと、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、それぞれのネットワーク・アドレスに対応する記憶データの領域に対応するマスク情報の領域のマスク有効状態のビットが最小となるような記憶データを出力することができない。
図３３においてネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１から、ネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送について、転送の可否を従来の連想メモリ１０１で判定した場合の動作例を図３２を用いて説明する。
表１（ｂ）の転送規則１〜５において、各転送規則の送出元ネットワーク・アドレスと宛先ネットワーク・アドレスの９ビットの記憶データ同士、９ビットのマスク情報同士を連結し、１８ビットの記憶データ、を連結し各転送規則の送出元ネットワーク・アドレス１それぞれ９ビットの記憶データとマスク情報で表現される構造化データで表現した組を記憶しているものとする。
連想メモリ１０１を１８ビット５語の構成と仮定する。表１（ｂ）における各転送規則の送出元ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、転送規則に対応する連想メモリ・ワード１０２−１〜１０２−５のそれぞれ記憶データ、マスク情報の上位９ビットとして格納するものとする。また、表１（ｂ）における各転送規則の宛先ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、転送規則に対応する連想メモリ・ワード１０２−１〜１０２−５のそれぞれ記憶データ、マスク情報の下位９ビットとして格納するものとする。この結果、連想メモリ１０１の各連想メモリ・ワード１０２−１〜１０２−５に格納される１８ビットの構造化データを図３２に示すとおりである。
前述の動作説明と同様に、１次検索では、連想メモリ１０１は、８進表現で（１．２．６    ２．３．５）の検索データ１１２をビット線１１３に出方し、連想メモリ・ワード１０２−１〜１０２−５に格納されている記憶データと、対応するマスク情報も考慮して比較を行う。これにより、連想メモリ・ワード１０２−１に格納されている８進表現の（１．２．＊  ２．＊．＊）と、連想メモリ・ワード１０２−３に格納されている８進表現の（１．２．＊  ２．３．＊）と、連想メモリ・ワード１０２−５に格納されている８真表現の（１．＊．＊  ２．３．５）がビット線１１３上の検索データ１１２と一致する。従って、１次検索の結果として、一致線１０５−１、１０５−３、１０５−５の３本が有効状態“１”となり、残りの一致線１０５−２，１０５−４は無効状態“０”となる。
ここで、前述の動作説明と同様に、連想メモリ・ワード１０２−１〜１０２−５において、対応する一致線１０５が有効状態“１”を保持している１８ビットの記憶データの各ビットに対して、“１”を真とした論理和結果を求め、ｎビット・ラッチ１０２に格納する。つまり、連想メモリ・ワード１０２−１に格納されている８進表現で（１．２．０  ２．０．０）、２進表現で“００１．０１０．０００．０１０．０００．０００”と、連想メモリ・ワード１０２−３に格納されている８進表現で（１．２．０  ２．３．０）、２進表現で“００１．０１０．０００．０１０．０１１．０００”と、連想メモリ・ワード１０２−５に格納されている８進表現で（１．０．０  ２．３．５）、２進表現で“００１．０００．０００．０１０．０１１．１０１”の各ビットに対して、“１”を真とした論理和演算の実行結果として得られる２進表現で“００１．０１０．０００．０１０．０１１．１０１“、８進表現で（１．２．０  ２．３．５）をｎビット・ラッチ１２１は記憶し、この値をラッチ出力線１２０に出力する。
前述の動作説明と同様に、２次検索では、連想メモリ１０１は、ラッチ出力線１２０の状態、８進表現で（１．２．０  ２．３．５）、２進表現で“００１．０１０．０００．０１０．０１１．１０１“を、ビット線１１３に出力し、連想メモリ・ワード１０２−１〜１０２−５に格納されている記憶データと、対応するマスク情報を考慮せずに比較を行う。このとき、連想メモリ・ワード１０２−１〜１０２−５に格納されているすべての記憶データが不一致となり、一致線１０５−１〜１０５−５は全て無効状態”０“を出力する。
ネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１から、ネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送は、転送規則３により拒絶されねばならない。つまり、連想メモリ１０１で検索した場合、連想メモリ・ワード１０２−３に対応する一致線１０５−３のみが有効状態“１”を出力するのが本来あるべき動作である。しかし、従来の連想メモリ１０１では上述のように、検索終了後の一致線１０５−１〜１０５−５は不正な状態となってしまう。
このため、ネットワークの安全性を確保するために、入力転送データの送出元ネットワーク・アドレスと宛先ネットワーク・アドレスに対して転送規則を基に転送の可否を判定する機能は、従来のネットワーク機器では上述のようにＣＰＵにより、二分木検索アルゴリズムなどを応用したソフトウエア処理で実現していた。このソフトウエア処理には数百クロック以上が必要であり、転送先ネットワーク・アドレスの計算は連想メモリにより高速化しているにも関わらず、ネットワークの安全性を確保しようとするとネットワーク全体の通信速度が低下するという問題があった。
また、二分木検索アルゴリズムなどを応用したソフトウエア処理で転送可否判定演算を実行する場合には、あらかじめ巨大な検索テーブルを作成する必要があるため、転送規則の削除、追加、変更を行うためには、ネットワーク機器の転送動作を中断しなければならないという問題があった。そのため、ネットワーク機器の管理者が転送規則の削除、追加、変更を頻繁に行わなくなり、ネットワーク全体の安全性が低下したまま運用せざるをえないという問題があった。
また、転送可否判定を少しでも高速に実行しようとすると、高価な高速ＣＰＵシステムを搭載しなければならず、ネットワーク機器全体としての価格が上昇してしまうという問題があった。
そこで、本発明の目的は、複数の検索領域から構成される入力データに対してマスク情報を考慮して検索を行ったときに、入力データに対応する記憶データがすべて一致するワードが複数個あった場合に、優先順位を考慮して検索領域ごとに構造化データを構成するマスク情報のマスク有効状態のビット数を一致したワードの中で比較した結果、最少となるようなワードを識別する信号を出力する連想メモリを提供することにある。
更に他の目的として、入力転送データに対して転送規則を基に転送の可否を判定する機能を高速に実行するネットワーク機器を提供することにある。
更に他の目的として、転送動作を中断せずに、転送規則の削除、追加、変更を実行することができるネットワーク機器を提供することにある。
更に他の目的として、転送可否判定を高速に実行するネットワーク機器のトータルコストを削減することである。
更に他の目的として、安全性を確保し、かつ、高速にデータを転送できるネットワーク・システムを提供することにある。
発明の開示
本発明の連想メモリは、手段１として、記憶データの１ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの１ワードまたは複数ワードごとに有する連想メモリにおいて、
Ｎ個（Ｎは２以上の整数）の部分ビット領域から構成される外部検索データの全ビットに対して１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出されるワードを識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをＮ個に分割した部分ビット領域の各々一つを入力とし、２次検索制御信号の状態によりワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する２次識別信号を出力する一つまたは複数の共有２次検索手段と、
１次検索および各２次検索をとおして、ワード毎に対応するワードが選出され続けているか否かのワード有効情報を１次検索および各２次検索実行の度に更新、記憶し、その選出状態、非選出状態を前記中間データ生成手段に出力する記憶手段と、
前記外部検索データの全ビット領域を検索データとして前記１次検索を行った後、前記中間データの前記Ｎ個の部分ビット領域を順次検索データとして前記２次検索を実行するように前記２次検索制御信号を出力する制御手段とを、有するものである。
本発明の連想メモリは、手段２として、記憶データの１ビットまたは複数ビットごとに検索対象から除外するか否かを、有効状態、無効状態により設定可能なマスク情報を当該記憶データの１ワードまたは複数ワードごとに有する連想メモリにおいて、
Ｎ個（Ｎは２以上の整数）の部分ビット領域から構成される外部検索データの全ビットに対して１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出されるワードを識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けているワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するＮ個の中間データ生成手段と、
前記外部検索データの部分ビット領域の構成と同様に前記中間データをＮ個に分割した部分ビット領域の各々一つを入力とし、ワードにおける当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を行った結果選出されるワードを識別する２次識別信号を出力するＮ個の２次検索手段とを有し、
前記Ｎ個の中間データ生成手段とＮ個の２次検索手段は、第１の中間データ生成手段は１次検索の結果生成された第１の中間データを前記第１の２次検索手段に入力し第１の部分ビット領域に対して第１の２次検索を行い、第２の中間データ生成手段は第１の２次検索の結果生成された第２の中間データを前記第２の２次検索手段に入力し第２の部分ビット領域に対して第２の２次検索を行い、第３の中間データ生成手段は第２の２次検索の結果生成された第３の中間データを前記第３の２次検索手段に入力して第３の部分ビット領域に対して２次検索を行い、以下同様に構成し、第Ｎの中間データ生成手段は第（Ｎ−１）の２次検索の結果生成された第Ｎの中間データを前記第Ｎの２次検索手段に入力し第Ｎの部分ビット領域に対して２次検索を行う、ものである。
本発明の連想メモリは、手段３として、前記第１から第Ｎの２次検索手段において、１次検索および各２次検索をとおしてワード毎に対応するワードが選出され続けているか否かのワード有効情報を、第Ｊから第Ｋの（Ｊ、Ｋは１以上Ｎ以下の整数）各２次検索の実行の度に更新、記憶し、各ワードの選出状態、非選出状態を出力する記憶手段と、
ワードの選出状態を示す信号を入力とし、選出状態にあるワードに対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした前記論理演算により生成される第Ｊから第Ｋの中間データを出力する共有中間データ生成手段と、
２次検索制御信号の状態によりワードにおける前記記憶データまたはマスク情報の第Ｊから第Ｋの部分ビット領域に対応するビット領域に対してのみ選択的に２次検索を実行するか否かを制御可能であり、且つ検索の結果選出されるワードを識別する信号を出力する一つまたは複数の共有２次検索手段と、
第Ｊの２次検索から第Ｋの２次検索を順次実行するように前記２次検索制御信号を出力し、また前記２次検索の度に前記記憶手段の前記ワード有効情報を更新するため前記記憶制御信号を出力する制御手段とを、
有することにより、第Ｊから第Ｋの前記２次検索手段の構成要素を共有するものである。
本発明の連想メモリは、手段４として、前記１次検索手段において、
一つまたは複数の属性データを検索データとし、前記記憶データが格納されている前記ワードと対応する属性一致信号を検索結果として出力する第２の連想メモリを有し、
１次検索として、前記外部検索データの全ビットに対して１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外した結果選出され、且つ対応する前記属性一致信号が前記属性データを前記第２の連想メモリで検索した結果一致を示している、ワードを識別する１次識別信号を出力するものである。
本発明の連想メモリは、手段５として、前記１次検索手段において、
検索データとして１次制御許可信号が有効状態のときには前記外部検索データを選択し、他の場合には前記中間データを選択する選択手段と、
１次検索許可信号が有効状態のときには該外部検索データの全ビットを検索データとして１ワードごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行い、２次検索制御信号が有効状態のときにはワードにおける前記記憶データまたはマスク情報の２次検索制御信号の状態により指定されるビット領域に対してのみ選択的に２次検索を実行する手段とを有し、
１次制御許可信号を有効にし前記外部検索データの全ビット領域を検索データとして前記１次検索を行った後、前記中間データの前記Ｎ個の部分ビット領域を順次検索データとして前記２次検索を実行するように前記２次検索制御信号を出力する制御手段とを有することにより、１次検索手段の構成要素と２次検索手段の構成要素とを共有するものである。
本発明の連想メモリは、手段６として、前記１次検索手段が出力する１次識別信号、および前記Ｎ個の２次検索手段が出力する第１から第Ｎの２次識別信号の中の一つまたは複数を記憶する手段と、前記第１から第Ｎの中間データの中の一つまたは複数を記憶する手段の、一方または双方を有することによりパイプライン処理を可能にするものである。
本発明の連想メモリは、手段７として、前記中間データ生成手段に入力する１次検索および各２次検索をとおしてワード毎に対応するワードが選出され続けているか否かの情報の、更新、記憶を結線論理を用いて構成することにより、当該情報を前記中間データ生成手段に入力するための配線と、１次識別信号または２次識別信号の配線とを共用するものである。
本発明の連想メモリは、手段８として、前記中間データの各部分ビット領域に、前記外部検索データの対応する部分ビット領域と同じ優先順位を付与し、該中間データの該部分ビット領域について優先順位の高位から低位への順に検索データとして前記２次検索を実行するものである。
本発明の連想メモリは、手段９として、前記記憶データとして１次検索の際に対応する前記マスク情報により検索対象から除外される１ビットまたは複数のビットに特定ビット・パターンを格納し、２次検索として、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出するものである。
本発明の連想メモリは、手段１０として、前記記憶データにおいて１次検索の際に対応する前記マスク情報により検索対象から除外される１ビットまたは複数のビットが特定ビット・パターンであるとみなして２次検索を行い、該記憶データまたは該記憶データの検索対象となる部分ビット領域が、検索データとして入力される前記中間データまたは前記中間データの部分ビット領域と一致したワードを選出するものである。
本発明の連想メモリは、手段１１として、前記特定ビット・パターンは、すべての当該ビットが記憶データの無効状態により構成されているものである。
本発明の連想メモリは、手段１２として、前記論理演算は、選出状態にあるワードに対応する記憶データ同士の、記憶データの有効状態を真とする論理和演算であり、その論理和演算結果を前記中間データとし、前記２次検索は、該中間データと一致する記憶データを有するワードを選出するものである。
本発明の連想メモリは、手段１３として、前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、該論理積演算結果のビットがマスク情報の無効状態ならば前記外部検索データの同一のビット位置の情報を中間データの同一ビット位置の状態とし、該論理積演算結果のビットがマスク情報の有効状態ならば記憶データの無効状態を前記中間データの同一ビット位置の状態として前記中間データを生成し、前記２次検索は該中間データと一致する記憶データを有するワードを選出するものである。
本発明の連想メモリは、手段１４として、前記論理演算は、選出状態にあるワードに対応するマスク情報同士の、マスク情報の有効状態を真とする論理積演算であり、その論理積演算結果を中間データとし、前記２次検索は該中間データと一致するマスク情報を有し且つその時点までに選出状態にあるワードを選出するものである。
本発明のネットワーク機器は、手段１５として、入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の１つまたは複数個毎に前記記憶データの中で１ビットまたは複数ビットの領域の１つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
前記入力転送データに付随する前記送信元ネットワーク・アドレスおよび前記宛先ネットワーク・アドレスを構成要素に含む前記判定入力データを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する対応する記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行い
前記１次検索の結果、選出された一つまたは複数の転送規則を構成する記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした論理演算により中間データを生成し、
前記判定入力データの第１の構成要素から最終の構成要素に対して同様に順次、前記１次検索、前記２次検索の度に選出されつづけている一つまたは複数の転送規則を構成する、記憶データ同士、マスク情報同士、前記判定入力データの中の、一組または複数組を入力とした前記論理演算の結果により更新された中間データの当該構成要素に対応するビット領域を検索データとして、当該構成要素に対応するビット領域の記憶データまたはマスク情報について選択的に２次検索を実行し、
最終的に選出された転送規則により、当該入力転送データの転送の可否を決定するものである。
本発明のネットワーク機器は、手段１６として、入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを構成要素に含む判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の１つまたは複数個毎に前記記憶データの中で１ビットまたは複数ビットの領域の１つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出される転送規則を識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および判定入力データの中の一組または複数組を入力とした論理演算により生成される中間データを出力する中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、２次検索制御信号により転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を実行するか否かを制御可能であり、且つ検索の結果選出される転送規則を識別する２次識別信号を出力する一つまたは複数の共有２次検索手段と、
１次検索および各２次検索をとおして、転送規則毎に対応する転送規則が選出され続けているか否かの転送規則有効情報を１次検索および各２次検索実行の度に更新、記憶し、その選出状態、非選出状態を示す一致信号を前記中間データ生成手段に出力する記憶手段と、
前記判定入力データの全ビット領域を検索データとして前記１次検索を行った後、前記中間データの各部分ビット領域を順次検索データとして前記２次検索を実行するように前記２次検索制御信号を出力する制御手段と、
前記一致信号により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段と、有するものである。
本発明のネットワーク機器は、手段１７として、入力転送データに付随する送信元ネットワーク・アドレスおよび宛先ネットワーク・アドレスを含むＮ個（Ｎは２以上の整数）の構成要素から構成される判定入力データを検索データとして一つまたは複数個の転送規則に対して検索を行ったときの一致状態により該入力転送データの転送可否を判定し、
前記転送規則は、前記判定入力データの各構成要素に対応するビット領域を含む記憶データと、転送可否情報と、前記転送規則の１つまたは複数個毎に前記記憶データの中で１ビットまたは複数ビットの領域の１つまたは複数を検索対象から除外するか否かを表すマスク情報により表現される転送規則テーブルを有するネットワーク機器において、
判定入力データの全ビットを検索データとして、前記転送規則ごとにマスク情報がマスク有効状態の場合に対応する当該記憶データの１ビットまたは複数ビットを検索対象から除外する１次検索を行った結果選出される転送規則を識別する１次識別信号を出力する１次検索手段と、
選出状態にあり続けている転送規則に対応する記憶データ同士、該ワードに対応するマスク情報同士、および外部検索データの中の一組または複数組を入力とした論理演算により生成される中間データを出力するＮ個の中間データ生成手段と、
前記判定入力データの構成要素のビット領域と同様に前記中間データを分割した部分ビット領域の各々一つを入力とし、転送規則における当該部分ビット領域に対応する前記記憶データまたはマスク情報のビット領域に対してのみ選択的に２次検索を行った結果選出される転送規則を識別する信号を出力するＮ個の２次検索手段と
前記第Ｎの２次検索手段により選出された転送規則により参照した転送可否情報により当該入力転送データの転送の可否を決定する手段とを有し
前記Ｎ個の中間データ生成手段とＮ個の２次検索手段は、第１の中間データ生成手段は１次検索の結果生成された第１の中間データを前記第１の２次検索手段に入力し第１の部分ビット領域に対して第１の２次検索を行い、第２の中間データ生成手段は第１の２次検索の結果生成された第２の中間データを前記第２の２次検索手段に入力し第２の部分ビット領域に対して第２の２次検索を行い、第３の中間データ生成手段は第２の２次検索の結果生成された第３の中間データを前記第３の２次検索手段に入力して第３の部分ビット領域に対して２次検索を行い、以下同様に構成し、第Ｎの中間データ生成手段は第（Ｎ−１）の２次検索の結果生成された第Ｎの中間データを前記第Ｎの２次検索手段に入力し第Ｎの部分ビット領域に対して２次検索を行うものである。
本発明のネットワークシステムは、手段１８として、手段１５から１７に記載の前記ネットワーク機器を介してネットワークに接続された機器間でデータ通信を行うものである。
発明を実施するための最良の形態
［第一の実施例の構成］
次に、本発明の第一の実施の形態について図面を参照して詳細に説明する。図１は、本発明のｍ語の連想メモリ１の構成例を示すブロック図である。連想メモリ１は、クロック信号４１、開始信号４２，およびｒ個の検索データ３−１〜３−ｒにより構成される入力データ２を入力とし、ｍ本の一致信号５−１〜５−ｍを出力とする。また、連想メモリ１は、ｍ語の単一領域検索用連想メモリ３６−１〜３６−ｒ、主制御回路６、論理積手段３９−１〜３９−ｍ、および記憶手段４３−１〜４３−ｍを有している。
主制御回路６は、クロック信号４１、開始信号４２を入力とし、記憶制御信号１２、１次検索許可信号１０−１〜１０−ｍ、および２次検索許可信号１１−１〜１１−ｒを出力とする。主制御回路６は読み書きが可能な内部変数２８を有している。内部変数２８の値をｐで表す。主制御回路６は、開始信号４２が有効状態のとき入力データ２の検索動作を開始し、クロック信号４１に同期して、記憶制御信号１２、１次検索許可信号１０−１〜１０−ｍ、および２次検索許可信号１１−１〜１１−ｒを、図５に示す本発明の第一の実施の形態の連想メモリの動作を説明するフローチャートに従って出力する。
ｉ番目の単一領域検索用連想メモリ３６−ｉは、検索データ３−ｉ、１次検索許可信号１０−ｉ、２次検索許可信号１１−ｉ、およびｍ本の共通一致線３８−１〜３８−ｍを入力とし、単一領域での検索結果としてｍ本の一致線３７−ｉ−１〜３７−ｉ−ｍを出力する。単一領域検索用連想メモリ３６−ｉの単一領域での検索動作は１次検索許可信号１０−ｉ、２次検索許可信号１１−ｉにより次のように制御される。１次検索許可信号１０−ｉが有効状態の場合には、検索データ３−ｉと内部に格納した記憶データとを、対応するマスク情報を考慮して比較する１次検索を行い、結果を一致線３７−ｉ−１〜３７−ｉ−ｍに出力する。２次検索許可信号１１−ｉが有効状態の場合には、内部に格納した記憶データと、マスク情報の双方または一方を用いて、ｍ本の共通一致線３８−１〜３８−ｍの状態に応じた中間データを生成し、中間データによる２次検索を行った結果を一致線３７−ｉ−１〜３７−ｉ−ｍに出力する。中間データによる２次検索としては、連想メモリ１をｉ番目の単一領域検索用連想メモリ３６−ｉを単独で構成し１次検索に続けて２次検索を行った場合に、検索データ３−ｉとマスク情報を考慮して一致する記憶データの中で最もマスク情報の有効状態のビット数が少ない記憶データに対応する一致線３７−ｉ−１〜３７−ｉ−ｍのみに有効状態を出力することができるものとする。
ただし、ｉ番目の単一領域検索用連想メモリ３６−ｉは、１次検索許可信号１０−ｉ、２次検索許可信号１１−ｉが、ともに無効状態の場合には、ｍ本の一致線３７−ｉ−１〜３７−ｉ−ｍにすべて共通一致線３８の有効状態を出力する。
本例では、検索データ３−１の優先順位を最も高い１とし、検索データ３−２の優先順位を２，以下同様に検索データ３−ｒの優先順位を最低のｒと仮定する。ここで、各検索データ３−１〜３−ｒのビット数は同じである必要はない。また、検索データ３−１〜３−ｒは、それぞれ、対応する単一領域検索用連想メモリ３６−１〜３６−ｒに入力されるのであれば、入力データ２の中での順序は任意である。また、連想メモリ１内部での、ｒ個の単一領域検索用連想メモリ３６−１〜３６−ｒの順序も、接続関係さえ対応がとれていれば任意であることはいうまでもない。
ｊ番目の論理積手段３９−ｊは、ｒ本の一致線３７−ｊ−１〜３７−ｊ−ｒ、および１本の共通一致線３８−ｊを入力とし、共通一致線３８の有効状態を真とする論理積演算を行った結果を、論理積信号４０−ｊとして出力する。本例では、論理積信号４０−ｊと一致信号５−ｊは同一である。
ｊ番目の記憶手段４３−ｊは、論理積信号４０−ｊ、および記憶制御信号１２を入力とし、共通一致線３８−ｊを出力とする。記憶制御信号１２の状態に応じて、共通一致線３８−ｊの状態を保持、または論理積信号４０−ｊの値を記憶、または共通一致線３８の有効状態に初期化、の動作を行う。
図２は、本発明の第一の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。本例では、単一領域検索用連想メモリ３６−１はｎビットｍ語、単一領域検索用連想メモリ３６−ｒはｓビットｍ語と、１語を構成するビット数が異なるのみで内部の構成は同一である。
単一領域検索用連想メモリ３６−１は、ｎビットの連想メモリ・ワード４４−１−１〜４４−ｍ−１と、制御回路４５−１を有している。単一領域検索用連想メモリ３６−ｒは、ｓビットの連想メモリ・ワード４４−１−ｒ〜４４−ｍ−ｒと、制御回路４５−ｒを有している。
ｊ番目の連想メモリ・ワード４４−ｊ−１は、ｎ個のデータ・セル８−ｊ−１−１〜８−ｊ−ｎ−１および、ｎ個のマスク・セル９−ｊ−１−１〜９−ｊ−ｎ−１を有している。ｊ番目の連想メモリ・ワード４４−ｊ−ｒは、ｓ個のデータ・セル８−ｊ−１−ｒ〜８−ｊ−ｓ−ｒおよび、ｓ個のマスク・セル９−ｊ−１−ｒ〜９−ｊ−ｓ−ｒを有している。
［第一の実施例の単一領域検索用連想メモリの構成］
次に上述の単一領域検索用連想メモリ３６の構成例を図３を用いて説明する。単一領域検索用連想メモリ３６は、ｎビット２入力１出力イネーブル付きセレクタ８２と、ｎビットｍ語の連想メモリ・ワード４４−１〜４４−ｍと、制御回路４５と、論理ゲート５８−１〜５８−ｎと、抵抗５７−１〜５７−ｎを有している。ｊ番目の連想メモリ・ワード４４−ｊは、ｎ個の連想メモリ・セル８３−ｊ−１〜８３−ｊ−ｎを有している。連想メモリ・ワード４４−ｊには、対応するデータ・ワード線５３−ｊと、マスク・ワード線５４−ｊと、共通一致線３８−ｊと、および比較制御信号８５が入力のために接続され、対応する一致線３７−ｊ、およびｎ本の一致データ中間論理線５２−１〜５２−ｎが出力のために接続され、ｎ本のビット線５１−１〜５１−ｎが入出力のために接続されている。
なお、本例では、マスク情報のマスク有効状態を“０”、マスク無効状態を“１”とし、記憶データの有効状態を“１”、無効状態を“０”とする。記憶データと同様に、一致データ論理和線５２−１〜５２−ｎの有効状態を“１”、無効状態を“０”とする。一致線３７−１〜３７−ｍ、共通一致線３８−１〜３８−ｍの有効状態を“１”、無効状態を“０”とする。
一致線３７−１〜３７−ｍは、あらかじめハイ・レベルにプリ・チャージされ、有効状態“１”になっているものとする。
ｊ番目の連想メモリ・ワード４４−ｊのｋビット目の連想メモリ・セル８３−ｊ−ｋには、対応するデータ・ワード線５３−ｊと、マスク・ワード線５４−ｊと、共通一致線３８−ｊと、および比較制御信号８５が入力のために接続され、対応する一致線３７−ｊ、および一致データ中間論理線５２−ｋが出力のために接続され、ビット線５１−ｋが入出力のために接続されている。
各連想メモリ・セル８３−ｊ−ｋは、ビット線５１−ｋを介して外部から入力される記憶データの対応するビット情報を格納するデータ・セル８−ｊ−ｋと、データ・セル８−ｊ−ｋに記憶されたビット情報と外部からビット線５１−ｋを介して入力される情報とを比較する比較器８４−ｊ−ｋと、外部からビット線５１−ｋを介して入力されるマスク情報の対応するビット情報を格納するマスク・セル９−ｊ−ｋと、および論理ゲート５６−ｊ−ｋとを備えている。ここで、マスク・セル９−ｊ−ｋに格納されたビット情報がマスク情報のマスク有効状態の場合には、対応するデータ・セル８−ｊ−ｋには、記憶データの無効状態を格納する。
比較器８４−ｊ−ｋは、対応するビット線５１−ｋと、それに同一の連想メモリ・セル８３−ｊ−ｋの中のデータ・セル８−ｊ−ｋに格納されている記憶データと、マスク・セル９−ｊ−ｋに格納されているマスク情報と、および比較制御信号８５を入力とする。比較器８４−ｊ−ｋは、比較制御信号８５が無効状態“０”かつマスク情報がマスク有効状態“０”ならば、対応する一致線３７−ｊを解放状態にし、それ以外の場合には、ビット線５１−ｋの値と記憶データが一致するならば対応する一致線３７−ｊを開放状態にし、一致しないならば無効状態“０”を出力する。連想メモリ・ワード４４−ｊの中のｎ個の比較器８４−ｊ−１〜８４−ｊ−ｎがすべて一致線３７−ｊを開放状態にしているときに、一致線３７−ｊは有効状態“１”となり、それ以外の場合には無効状態“０”となる、一致線３７の有効状態“１”を真としたワイアードＡＮＤ論理接続を構成している。つまり、検索動作時には、比較制御信号８５が無効状態“０”かつマスク情報がマスク有効状態“０”のために比較対象から除外されたビットを除いて、連想メモリ・ワード４４−ｊが格納している記憶データとビット線５１−１〜５１−ｎが完全に一致する場合に限り、一致線３７−ｊは有効状態“１”となり、それ以外の場合は無効状態“０”となる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
論理ゲート５６−ｊ−ｋは、同一の連想メモリ・ワード４４−ｊの中の共通一致線３８−ｊが有効状態“１”かつ、同一の連想メモリ・セル８３−ｊ−ｋの中のデータ・セル８−ｊ−ｋに格納された記憶データが有効状態のときに、対応する一致データ中間論理線５２−ｋに“０”を出力し、それ以外の場合には開放状態にする。ここで本例では記憶データの有効状態が“１”であるので、データ・セル８−ｊ−ｋに格納された記憶データが“１”かつ一致線５−ｊが“１”のときに、対応する一致データ中間論理線５２−ｋに“０”を出力し、それ以外の場合には解放状態を出力する。
一致データ中間論理線５２−１〜５２−ｎは、抵抗５７−１〜５７−ｎによりプル・アップされており、対応するｍ個の論理・ゲート５６−１−１〜５６−ｍ−ｎとワイアード論理接続を構成している。したがって、従来の連想メモリ１０１の一致データ中間論理線１１４−１〜１１４−ｎと同様に、接続されているｍ個の論理ゲート５６がすべて一致データ中間論理線５２を開放状態にしているときに、一致データ中間論理線５２は“１”となり、それ以外の場合には“０”となる。つまり“１”を真としたワイアードＡＮＤ接続となっている。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
論理ゲート５８−１〜５８−ｎは、対応する一致データ中間論理線５２−１〜５２−ｎの論理状態を反転し、中間データ線９２−１〜９２−ｎとして出力する。
したがって、中間データ線９２−ｋには、ｍ個の論理ゲート５６−１−ｋ〜５６−ｍ−ｋと一致データ中間論理線５２−ｋ、抵抗５７−ｋ、および論理ゲート５８−ｋにより、検索動作時に有効状態“１”となっている一致線３７−１〜３７−ｍを有するすべての連想メモリ・セル８３−１−ｋ〜８３−ｍ−ｋの中のデータ・セル８−１−１〜８−ｍ−ｋに格納されている記憶データどうしを、記憶データの有効状態を真とした論理和演算した結果が得られることになる。本例では、記憶データの有効状態“１”を真とした論理和演算した結果が得られる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。これらの動作により、中間データ線９２−１〜９２−ｎには、検索動作時に検索データ３と一致した記憶データの中で、最も無効状態“０”のビット数が少ない記憶データと同じ値が出力されることになる。
制御回路４５は、１次検索許可信号１０、２次検索許可信号１１を入力とし、比較制御信号８５、選択信号８６、および無効化信号８７を出力する。制御回路４５は、単一領域検索用連想メモリ３６の検索動作を制御するため、１次検索許可信号１０，２次検索許可信号１１が双方ともに無効状態“０”の場合には無効化信号８７に有効状態“１”を出力する。１次検索許可信号１０が有効状態“１”の場合には無効化信号８７に有効状態“０”を、選択信号８６に無効状態“０”を、比較制御信号８５に無効状態“０”を出力する。２次検索許可信号１１が有効状態“１”の場合には無効化信号８７に有効状態“０”を、選択信号８６に無効状態“１”を、比較制御信号８５に無効状態“１”を出力する。
ｎビット２入力１出力イネーブル付きセレクタ８２は、選択信号８６、無効化信号８７、中間データ線９２−１〜９２−ｎ、検索データ３−１〜３−ｎを入力とし、ビット線５１−１〜５１−ｎを出力とする。ｎビット２入力１出力イネーブル付きセレクタ８２は、無効化信号８７が有効状態“１”のときには、ビット線５１−１〜５１−ｎに全ての連想メモリ・ワード４４−１〜４４−ｍの比較結果が一致となるような検索無効データを出力し、それ以外の場合には、選択信号８６が無効状態“０”の場合には検索データ３−１〜３−ｎを、選択信号８６が有効状態“１”の場合には中間データ線９２−１〜９２−ｎを、ビット線５１−１〜５１−ｎに出力する。
以上説明したように、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリ３６の構成と、従来の連想メモリ１０１の構成を比較すると、共通一致線３８−１〜３８−ｍが追加されている点、論理ゲート５６−ｊ−１〜５６−ｊ−ｎの入力が一致線１０５−ｊから共通一致線３８−ｊに変更されている点、ｎビット・ラッチ１２１が削除されている点、ｎビット２入力１出力セレクタ１２３がｎビット２入力１出力イネーブル付きセレクタ８２に変更されている点、および制御回路４５への入力からクロック信号１３１が削除され１次検索信号１０，２次検索信号１１が追加されている点のみが異なり、他の部分は同様に構成される。したがって、単一領域検索用連想メモリ３６の外部にて、仮に、共通一致線３８−１〜３８−ｍを、それぞれラッチを介して、対応する一致線３７−１〜３７−ｍと結線した場合には、１次検索許可信号１０に有効状態を印可した後、２次検索許可信号１１に有効状態を印可することにより、従来の連想メモリ１０１と同様の動作に、入力した検索データ３−１〜３−ｎと、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する一致線３７のみに有効状態を出力することが可能なことは明らかである。
［第一の実施例の構成詳細］
次に、上述の連想メモリ・セル８３の構成例を図４を用いて説明する。図２９に示す従来の連想メモリ・セル１０７と比較すれば分かるように、本発明の連想メモリ・セル８３は、共通一致線３８が追加されている点、および論理ゲート５６を構成するＭＯＳトランジスタ（Ｔ１０）２１４が導通状態とするための信号が一致線３７から共通一致線３８に変更されている点を除けば、従来の連想メモリ・セル１０７と同様である。
ここで、図３のｎビット２入力１出力イネーブル付きセレクタ８２に有効状態“１”を入力したときに、ビット線５１ａ、５１ｂに出力される検索無効データについて説明する。検索無効データとして図３のｎビット２入力１出力イネーブル付きセレクタ８２はビット線５１−１〜５１−ｎに対応するすべてのビット線５１ａ、５１ｂの組に、“０”を出力する。
従来の連想メモリ・セル１０７と同様に、データを書き込む場合、および有効な検索データの入力を行う場合には、ビット線５１ｂにはビット線５１ａの値を反転した値を入力するため、ビット線５１ａ、５１ｂがともに“０”とはならない。
比較器８４はビット線５１ａ、５１ｂがともに“０”である場合、ビット線１３ａ、１３ｂの間に直列に挿入されたＭＯＳトランジスタ（Ｔ３）２０５とＭＯＳトランジスタ（Ｔ４）２０６のどちらが導通状態となっても、ＭＯＳトランジスタ（Ｔ３）２０５とＭＯＳトランジスタ（Ｔ４）２０６の接続点の電位はロウ・レベルであり、ＭＯＳトランジスタ（Ｔ５）２０７は導通状態とならない。したがって、比較器８４は一致線３７を解放状態とすることになる。
本例ではビット線５１ａ、５１ｂをともに“０”にすることで、検索無効データの機能を実現したが、比較器８４の構成に応じて検索無効データとして他の状態を選択可能なことはいうまでもない。
上述のように本発明の連想メモリ・セル８３は、従来の連想メモリ・セル１０７と同じ１９個のトランジスタで構成でき、回路規模は変わらない。１０２４ワード、３２ビットの場合には連想メモリ・セル全体で約６２万トランジスタの回路規模となる。連想メモリ１において、主制御回路６は５００トランジスタ程度で構成でき、論理積手段３９と記憶手段４３は１語あたり５０トランジスタ程度で構成できるため、前述の１０２４ワード、３２ビットの場合に、従来の連想メモリ１０１と比較して数％の回路規模の増加としかならないことがわかる。
［第一の実施例の動作］
次に図面を参照して、本発明の第一の実施の形態の連想メモリの、複数の検索データから構成される入力データに対する検索動作について説明する。図５は本発明の第一の実施の形態の連想メモリの複数の検索データから構成される入力データに対しての検索動作時の動作を示すフローチャートである。
また、フローチャートの各ステップについて、連想メモリ１を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合を例として、図６、図７、図８、および図９を用いて具体的に説明する。データ転送時の９ビットの送出元アドレス（１．２．６）を検索データ３−１とし、９ビットの宛先アドレス（２．３．５）を検索データ３−２とする。ここで検索データ３−１の優先順位を最も高い１とし、検索データ３−２の優先順位を２とする。図６、図７、図８、および図９において、連想メモリ１は、９ビット５語の単一領域検索用連想メモリ３６−１、および３６−２により構成されるものとする。また、表１（ｂ）における各転送規則の送出元ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、単一領域検索用連想メモリ３６−１の転送規則に対応する連想メモリ・ワード４４−１−１〜４４−５−１のそれぞれ記憶データ、マスク情報として格納するものとする。また、表１（ｂ）における各転送規則の宛先ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、単一領域検索用連想メモリ３６−２の転送規則に対応する連想メモリ・ワード４４−１−２〜４４−５−２のそれぞれ記憶データ、マスク情報として格納するものとする。ｎビット２入力１出力イネーブル付きセレクタ８２−１、８２−２から出力される値を、それぞれビット線データ９５−１、９５−２と表すことにする。また、単一領域検索用連想メモリ３６−１の中間データ線９２の値を中間データ９３−１、単一領城検索用連想メモリ３６−２の中間データ線９２の値を中間データ９３−２と表すことにする。
すべての一致線３７−１−１〜３７−ｍ−ｒは、あらかじめ有効状態“１”にプリ・チャージされているものとする。
［ステップＳ１００］
開始信号４２が有効状態“１”になると検索動作が開始する。主制御回路６はクロック信号４１に同期して図５のフローチャートのステップＳ１００の動作を実行し、内部変数２８の値ｐは１に初期化される。また、主制御回路６は、記憶制御信号１２に、記憶手段４３−１〜４３−ｍを共通一致線３８−１〜３８−ｍの有効状態“１”に初期化するための情報を出力する。また、すべての１次検索許可信号１０−１〜１０−ｒ、およびすべての２次検索許可信号１１−１〜１１−ｒには無効状態“０”を出力する。
図６は、連想メモリ１を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１００での動作状態を説明する図である。すべての１次検索許可信号１０−１〜１０−２、２次検索許可信号１１−１〜１１−２が無効状態“０”であるため、無効化信号８７−１、８７−２は、ともに有効状態“１”となり、ｎビット２入力１出力イネーブル付きセレクタ８２−１、８２−２から出力されるビット線データ９５−１、９５−２は、ともに検索無効化データとなる。したがって、一致線３７−１−１〜３７−５−１、および一致線３７−１−２〜３７−５−２は、すべて有効状態“１”を保持する。また、記憶手段４３−１〜４３−５の出力である共通一致線３８−１〜３８−５は、記憶制御信号１２により有効状態“１”に初期化されている。そのため、論理積信号４０−１〜４０−５はすべて“１”となる。その結果として、中間データ９３−１は、連想メモリ・ワード４４−１−１〜４４−１−５に格納されているすべての記憶データの論理和演算結果“００１．０１０．１１０”となる。また、中間データ９３−２は、連想メモリ・ワード４４−２−１〜４４−２−５に格納されているすべての記憶データの論理和演算結果“０１１．０１１．１０１”となる。
［ステップＳ１０１］
次に、クロック信号４１に同期して主制御回路６の動作は、図５のフローチャートのステップＳ１０１に移行し、すべての１次検索許可信号１０−１〜１０−ｒに有効状態“１”を出力し、すべての２次検索許可信号１１−１〜１１−ｒに無効状態“０”を出力する。また、ステップＳ１０１での論理積信号４０−１〜４０−ｍの値を、次のステップＳ１０２に移行するときに記憶手段４３−１〜４３−ｍに記憶させるための信号を記憶制御信号１２に出力する。
図７は、連想メモリ１を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１０１での動作状態を説明する図である。
単一領域検索用連想メモリ３６−１においては１次検索許可信号１０−１が有効状態“１”であるため、ｎビット２入力１出力イネーブル付きセレクタ８２−１は検索データ３−１の値“００１．０１０．１１０”をビット線データ９５−１として出力し、比較制御信号８５−１には無効状態“０”が出力される。そのため、ビット線データ９５−１の値と、連想メモリ・ワード４４−１−１〜４４−５−１に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として一致線３７−１−１、３７−２−１、３７−３−１、３７−４−１、および３７−５−１が有効状態“１”となる。
単一領域検索用連想メモリ３６−２においては１次検索許可信号１０−２が有効状態“１”であるため、ｎビット２入力１出力イネーブル付きセレクタ８２−２は検索データ３−２の値“０１０．０１１．１０１”をビット線データ９５−２として出力し、比較制御信号８５−２には無効状態“０”が出力される。そのため、ビット線データ９５−２の値と、連想メモリ・ワード４４−１−２〜４４−５−２に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として一致線３７−１−２、３７−３−２、および３７−５−２が有効状態“１”となり、一致線３７−２−２、および３７−４−２は無効状態“０”となる。
記憶手段４３−１〜４３−５はステップＳ１００で初期化された値“１”を共通一致線３８−１〜３８−５に出力しているため、論理積信号４０−１、４０−３、および４０−５が“１”となり、論理積信号４０−２、および４０−４は“０”となる。論理積信号４０−１〜４０−５の値は、記憶制御信号１２によって、次のステップに移行するときに記憶手段４３−１〜４３−５に記憶される。
［ステップＳ１０２］
次に、クロック信号４１に同期して主制御回路６の動作は、図５のフローチャートのステップＳ１０２に移行し、１次検索許可信号１０−１〜１０−ｒ、２次検索許可信号１１−１〜１１−ｒの中で、優先順位が最も高い１である単一領域検索用連想メモリ３６−１に対応する２次検索許可信号１１−１のみに有効状態“１”を出力し、他の信号には無効状態“０”を出力する。また、ステップＳ１０２での論理積信号４０−１〜４０−ｍの値を、次のステップＳ１０３に移行するときに記憶手段４３−１〜４３−ｍに記憶させるための信号を記憶制御信号１２に出力する。
図８は、連想メモリ１を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１０２での動作状態を説明する図である。
記憶手段４３−１〜４３−５はステップＳ１０１で記憶された値を出力しているため、共通一致線３８−１、３８−３、および３８−５が“１”となり、共通一致線３８−２、および３８−４は“０”となる。このため、単一領域検索用連想メモリ３６−１の中間データ９３−１は、連想メモリ・ワード４４−１−１、４４−３−１、および４４−５−１に格納されている記憶データの論理和演算結果“００１．０１０．０００”となる。また、単一領域検索用連想メモリ３６−２の中間データ９３−２は、連想メモリ・ワード４４−１−２、４４−３−２、および４４−５−２に格納されている記憶データの論理和演算結果“０１０．０１１．１０１”となる。
優先順位が最も高い１である単一領域検索用連想メモリ３６−１においては、２次検索許可信号１１−１が有効状態“１”であるため、ｎビット２入力１出力イネーブル付きセレクタ８２−１は中間データ９３−１の値“００１．０１０．０００”をビット線データ９５−１として出力し、比較制御信号８５−１には有効状態“１”が出力される。そのため、ビット線データ９５−１の値と、連想メモリ・ワード４４−１−１〜４４−５−１に格納されている記憶データとを、対応するマスク情報を考慮せずにそのまま比較を行い、結果として一致線３７−１−１、および３７−３−１が有効状態“１”となり、一致線３７−２−１、３７−４−１、および３７−５−１は無効状態“０”となる。
単一領域検索用連想メモリ３６−２においては１次検索許可信号１０−２、２次検索許可信号１１−２ともに無効状態“０”であるため無効化信号８７−２が有効状態“１”となり、ｎビット２入力１出力イネーブル付きセレクタ８２−２は検索無効化データをビット線データ９５−２として出力し、比較制御信号８５−２には無効状態“０”が出力される。そのため、一致線３７−１−２〜３７−５−２は、すべて有効状態“１”となる。
一致線３７−１−１〜３７−５−１、一致線３７−１−２〜３７−５−２、および共通一致線３８−１〜３８−５の、それぞれ対応する信号の論理積演算結果より、論理積信号４０−１、および４０−３が有効状態“１”となり、論理積信号４０−２、４０−４、および４０−５は無効状態“０”となる。論理積信号４０−１〜４０−５の状態は、記憶制御信号１２によって、次のステップに移行するときに記憶手段４３−１〜４３−５に記憶される。
［ステップＳ１０３〜Ｓ１０５］
次に、クロック信号４１に同期して主制御回路６の動作は、図５のフローチャートのステップＳ１０３に移行し、内部変数２８の値ｐと、連想メモリ１が有する単一領域検索用連想メモリ３６の個数ｒとを比較する。値が一致した場合には検索動作は終了し、最終的な検索結果が、有効状態を出力している一致信号５−１〜５−ｍとして得られる。不一致の場合には、ステップＳ１０４に進み内部変数ｐの値に１を加算した後、ステップＳ１０５に進み、１次検索許可信号１０−１〜１０−ｒ、２次検索許可信号１１−１〜１１−ｒの中で、優先順位が内部変数２８の値ｐと等しい単一領域検索用連想メモリ３６−ｐに対応する２次検索許可信号１１−ｐのみに有効状態“１”を出力し、他の信号には無効状態“０”を出力する。また、ステップＳ１０５での論理積信号４０−１〜４０−ｍの値を、次のステップＳ１０３に移行するときに記憶手段４３−１〜４３−ｍに記憶させるための信号を記憶制御信号１２に出力する。ここでは、ステップＳ１０３、Ｓ１０４、Ｓ１０５は、クロック信号４１の同一状態で実行される場合を示したが、適宜、クロック信号４１により動作を分割しても構わないことはいうまでもない。
図９は、連想メモリ１を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１０５での動作状態を説明する図である。
記憶手段４３−１〜４３−５はステップＳ１０２で記憶された値を出力しているため、共通一致線３８−１、および３８−３が“１”となり、共通一致線３８−２、３８−４、および３８−５は“０”となる。このため、単一領域検索用連想メモリ３６−１の中間データ９３−１は、連想メモリ・ワード４４−１−１、および４４−３−１に格納されている記憶データの論理和演算結果“００１．０１０．０００”となる。また、単一領域検索用連想メモリ３６−２の中間データ９３−２は、連想メモリ・ワード４４−１−２、および４４−３−２に格納されている記憶データの論理和演算結果“０１０．０１１．０００”となる。
単一領域検索用連想メモリ３６−１においては１次検索許可信号１０−１、２次検索許可信号１１−１ともに無効状態“０”であるため無効化信号８７−１が有効状態“１”となり、ｎビット２入力１出力イネーブル付きセレクタ８２−１は検索無効化データをビット線データ９５−１として出力し、比較制御信号８５−１には無効状態“０”が出力される。そのため、一致線３７−１−１〜３７−５−１は、すべて有効状態“１”となる。
内部変数２８の値ｐが２であるため、優先順位が２である単一領域検索用連想メモリ３６−２においては、２次検索許可信号１１−２が有効状態“１”となり、ｎビット２入力１出力イネーブル付きセレクタ８２−２は中間データ３−２の値“０１０．０１１．０００”をビット線データ９５−２として出力し、比較制御信号８５−２には有効状態“１”が出力される。そのため、ビット線データ９５−２の値と、連想メモリ・ワード４４−１−２〜４４−５−２に格納されている記憶データとを、対応するマスク情報を考慮せずに、そのまま比較を行い、結果として一致線３７−３−２が有効状態“１”となり、一致線３７−１−２、３７−２−２、３７−４−２、および３７−５−２は無効状態“０”となる。
一致線３７−１−１〜３７−５−１、一致線３７−１−２〜３７−５−２、および共通一致線３８−１〜３８−５の、それぞれ対応する信号の論理積演算結果より、論理積信号４０−３が有効状態“１”となり、論理積信号４０−１、４０−２、４０−４、および４０−５は無効状態“０”となる。論理積信号４０−１〜４０−５の状態は、記憶制御信号１２によって、次のステップに移行するときに記憶手段４３−１〜４３−５に記憶される。
次のクロック信号４１に同期して主制御回路６の動作は、図５のフローチャートのステップＳ１０３に移行し、内部変数２８の値ｐと、連想メモリ１が有する単一領域検索用連想メモリ３６の個数ｒとを比較する。図９の例では、内部変数２８の値ｐと、連想メモリ１が有する単一領域検索用連想メモリ３６の個数ｒは、ともに２であり、検索結果終了する。このとき、一致信号５−１〜５−５の中で有効状態“１”を出力しているものは一致信号５−３のみであり、これが最終的な検索結果として得られることになる。前述のように、ネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１から、ネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送は、転送規則３が適用されるべきであり、正しい結果が得られていることがわかる。
図５のフローチャートのステップＳ１０２、ステップＳ１０５の直前にウエイト・サイクルを挿入し、中間データ９３−１〜９３−ｒを格納するためのラッチを挿入することにより、動作周波数を高くすることができることはいうまでもない。
また、ステップＳ１０５では、ステップＳ１０２で２次検索を行ったときに一致したワードの中から、さらに２次検索を行うのであるから、図９に示すステップＳ１０５での中間データ９３−１の値と、図８に示すステップＳ１０２での中間データ９３−１の値は当然、同一である。したがって、図５のフローチャートのステップＳ１０５において、内部変数２８の値がｐのときに、２次検索信号１１−１〜１１−ｐに有効状態を出力しても、同じ結果が得られることがわかる。
また、図５のフローチャートのステップＳ１０２における主制御回路６の動作をすべての２次検索許可信号１１−１〜１１−ｒに有効状態を出力するように変更すれば、従来の連想メモリ１０１とまったく等価な検索動作になることは明らかである。また、ｉ番目の検索データ３−ｉに対して１次検索許可信号１０−ｉと２次検索許可信号１１−ｉを独立に制御することにより、１個の連想メモリ１を、ｒ個の従来の連想メモリ１０１と等価に使用できることも明らかである。動作を選択するための入力信号を主制御回路６に追加することにより、本発明の図５のフローチャートの動作と、上述の複数の動作を切り替えて使用できることはいうまでもない。
上述のように、本発明の連想メモリでは、ステップＳ１０１、ステップＳ１０２、およびＳ１０５における３回の検索動作により転送可否判定演算を実行することが可能である。本発明の連想メモリによる１回の検索動作に１クロックを要するとすれば、転送可否判定演算は検索領域の個数ｒに１を加算したクロック数で実行できることになる。
また、上述のように、最終的に適用されるべき転送規則に対応する一致信号のみを有効状態にするため、転送規則の格納順序、格納する語の位置には制限がない。したがって、転送規則の追加、削除、修正の際にソート処理やテーブル作成などの多くのクロック数がかかる前処理は不要であり、通常のメモリ・アクセスに要する時間のみで転送規則の追加、削除、修正が可能である。これにより、連想メモリを管理するソフトウエアを非常に簡単にすることが可能である。
また、本発明の第一の構成例では、上述のように従来の連想メモリ１０１と比べて数％の回路規模の増加で構成することが可能である。
［第一の実施例の単一領域検索用連想メモリの第二の構成］
図１０は、本発明の第一の実施の形態の連想メモリにおける、単一領域検索用連想メモリの第二の構成例を示すブロック図である。図１０に示す第二の構成の単一領域検索用連想メモリ２２の各構成要素を、図３に示した単一領域検索用連想メモリ３６の構成と比較すると、ｎビット２入力１出力イネーブル付きセレクタ８２がｎビット２入力１出力セレクタ９６に変更されたことと、ｊ番目の一致線３７−ｊに論理ゲート３７−ｊが挿入されたことと、それに伴い、制御回路４５から出力される無効化信号８７がｍ個の論理ゲート７８−１〜７８−ｍに入力されることと、ｊ番目の連想メモリ・ワード７０−１の中のｎ個の連想メモリ・セル６９−ｊ−１〜６９−ｊ−ｎから比較結果として出力される信号の名称が内部一致線９７−ｊに変更されたことの他は、図３に示した単一領域検索用連想メモリ３６と全く同様に構成される。したがって、単一領域検索用連想メモリ３６と異なる点についてのみ説明する。
ｎビット２入力１出力セレクタ９６は、選択信号８６、中間データ線９２−１〜９２−ｎ、検索データ３−１〜３−ｎを入力とし、ビット線５１−１〜５１−ｎを出力とする。ｎビット２入力１出力セレクタ９６は、選択信号８６が無効状態の場合には検索データ３−１〜３−ｎを、選択信号８６が有効状態の場合には中間データ線９２−１〜９２−ｎを、ビット線５１−１〜５１−ｎに出力する。
内部一致線９７−１〜９７−ｍは、図３の一致線３７−１〜３７−ｍと同様に、あらかじめハイ・レベルにプリ・チャージされ、有効状態“１”になっているものとする。また、図３の一致線３７−ｊと同様に、ｊ番目の連想メモリ・ワード４４−ｊの中のｎ個の比較器８４−ｊ−１〜８４−ｊ−ｎがすべて内部一致線９７−ｊを開放状態にしているときに、内部一致線９７−ｊは有効状態“１”を保持し、それ以外の場合には無効状態“０”となるような内部一致線９７の有効状態“１”を真としたワイアードＡＮＤ論理接続を構成している。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
ｊ番目の論理ゲート７８−ｊは、内部一致線９７−ｊと無効化信号８７を入力とし、一致線３７−ｊを出力とする。また、無効化信号８７が有効状態の場合には一致線３７−ｊに共通一致線３８の有効状態を出力し、それ以外の場合には内部一致線７８−ｊの状態を一致線３７−ｊに出力する。
つまり、ビット線５１−１〜５１−ｎに検索無効化データを出力する機能を有する図３に示す単一領域検索用連想メモリ３６と異なり、図１０に示す第二の構成の単一領域検索用連想メモリ２２では、論理ゲート７８−１〜７８−ｍにより一致線３７−１〜３７−ｍを制御することにより、１次検索許可信号１０と２次検索許可信号１１が、ともに無効状態の場合には、ｍ本の一致線３７−１〜３７−ｍにすべて共通一致線３８の有効状態を出力する機能を実現している。第二の構成の単一領域検索用連想メモリ２２の場合では、比較器８４−１−１〜８４−ｍ−ｎの構成に依存せずに、確実に上述の機能を実現することが可能である。また、論理ゲート７８−１〜７８−ｍの挿入位置を、図１の論理積手段３９−１〜３９−ｍの入力に移動しても連想メモリ１全体としては全く等価なことはいうまでもない。
［第二の実施例の構成］
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。図１１は、本発明の第二の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。図１１に示す第二の実施の形態の連想メモリ２９は、ｒ個の単一領域検索用連想メモリ２６−１〜２６−ｒのそれぞれｊ番目の連想メモリ・ワード２７−ｊ−１〜２７−ｊ−ｒの比較結果の出力信号どうしを１本の一致線３７−ｊにワイアードＡＮＤ論理接続し、さらに一致線３７−ｊにダイナミックに保持されている状態を中間データ生成に利用するものである。ここで一致線３７−ｊは、開始信号４２が有効状態のときのみ有効状態“１”にプリ・チャージされるものとする。したがって、図２に示した第一の実施の形態の連想メモリ１における論理積手段３９−ｊと、記憶手段４３−ｊと、および共通一致線３８−ｊは、図１１に示す第二の実施の形態の連想メモリ２９では、ワイアードＡＮＤ論理接続された一致線３７−ｊにより実現している。そのため、主制御回路６から出力される記憶制御信号１２は、どこにも接続されない。また、図１１では、一致線３７−ｊの状態を一致信号５−ｊとして直接外部に出力している。これらの他は、図２に示す第一の実施の形態の連想メモリ１の構成と全く同様であり、複数の検索データから構成される入力データに対して同様な検索動作を実行できることは明らかである。
図１１に示す第二の実施の形態の連想メモリ２９では、ｒ個の単一領域検索用連想メモリ２６−１〜２６−ｒ間の配線数は、ｍ本の一致線３７−１〜３７−ｍのみである。図２に示す第一の実施の形態の連想メモリ１では、ｒ個の単一領域検索用連想メモリ３６−１〜３６−ｒ間の配線数は、ｍ×ｒ本の一致線３７−１−１〜３７−ｍ−ｒとｍ本の共用一致線３８−１〜３８−ｍの合計（ｍ×（ｒ＋１））本であり、第二の実施の形態の連想メモリ２９では配線数が大幅に減少していることがわかる。ｒ個の単一領域検索用連想メモリ２６−１〜２６−ｒ間の配線は、連想メモリ２９の全域に渡って配線されるために、配線容量が大きくなり、保持している状態が遷移するたびに消費する電力は非常に大きい。したがって、第二の実施の形態の連想メモリ２９では第一の実施の形態の連想メモリに比べて、配線領域が大きく減少しチップ面積が削減されると同時に、消費電力を大幅に削減できるという利点を有する。
図１２に、第二の実施の形態の連想メモリにおける単一領域検索用連想メモリの一構成例のブロック図を示す。図１２に示す単一領域検索用連想メモリ２６の構成は、図３に示す第一の実施の形態の単一領域検索用連想メモリ３６と比較すると、ｊ番目の連想メモリ・ワード２７−ｊから共通一致線３８−ｊが削除されたことと、それに伴いｊ番目の連想メモリ・ワード２７−ｊを構成するｎ個の連想メモリ・セル７１−ｊ−１〜７１−ｊ−ｎ内の論理ゲート５６−ｊ−１〜５６−ｊ−ｎの入力が共通一致線３８−ｊから一致線３７−ｊに変更されたことの他は、図３に示す第一の実施の形態の単一領域検索用連想メモリ３６と全く同様である。
図１２に示す単一領域検索用連想メモリ２６では、出力信号である一致線３７−ｊを、ｎ個の論理ゲート５６−ｊ−１〜５６−ｊ−ｎをワイアードＡＮＤ論理接続することにより生成しているため、単一領域検索用連想メモリ２６の内部においても共通一致線３８−ｊを一致線３７−ｊと共用することが可能である。
もちろん、ワイアードＡＮＤ論理接続ではなく通常の論理ゲートを用いて一致線３７−１〜３７−ｍを生成している場合、および図１０に示すように一致線３７−１〜３７−ｍが論理ゲート７８−１〜７８−ｍから出力されているような単一領域検索用連想メモリにおいても、一致線３７−ｊを出力する論理ゲートとして、無効状態のときのみ出力を駆動し、有効状態のときには出力を開放状態にする機能を有している論理ゲートを使用することにより、第二の実施の形態の連想メモリ２９の単一領域検索用連想メモリ２６として用いることが可能なことはいうまでもない。
また、図１１では一致線３７−ｊの状態を一致信号５−ｊとして直接外部に出力しているが、一致線３７−ｊの状態をバッファに入力することにより波形を整形してから一致信号５−ｊとして出力してもよいことはいうまでもない。
［第三の実施例の構成］
次に、本発明の第三の実施の形態について図面を参照して詳細に説明する。図１３は、本発明の第三の実施の形態のｍ語の連想メモリ２５の構成例を示すブロック図である。本例のｍ語の連想メモリ２５の構成要素を、第一の実施の形態の連想メモリ１と比較すると、単一領域検索用連想メモリ３６−１〜３６−ｒが単一領域検索用連想メモリ４−１〜４−ｒに変更されていることと、論理積手段３９−１〜３９−ｍが論理積手段１３−１〜１３−ｍに変更されていることと、および論理積手段１５−１〜１５−ｍが追加されていることのみが異なり、他の部分は同様に構成される。第一の実施の連想メモリ１を構成する単一領域検索用連想メモリ３６では、１次検索許可信号１０が有効状態の場合の検索結果も、２次検索許可信号１１が有効状態の場合の検索結果も、同一の一致線３７−１〜３７−ｍに出力されたが、本例では、１次検索許可信号１０が有効状態の場合の検索結果を出力する１次一致線１７−１〜１７−ｍと、２次検索許可信号１１が有効状態の場合の検索結果を出力する２次一致線１８−１〜１８−ｍとを独立に有するような単一領域検索用連想メモリ４−１〜４−ｒにより本発明の連想メモリ２５を構成した場合の例である。次に、第一の実施例と異なる点についてのみ説明を行う。
ｉ番目の単一領域検索用連想メモリ４−ｉは、検索データ３−ｉ、１次検索許可信号１０−ｉ、２次検索許可信号１１−ｉ、およびｍ本の共通一致線３８−１〜３８−ｍを入力とし、単一領域での検索結果を、ｍ本の１次一致線１７−ｉ−１〜１７−ｉ−ｍ、およびｍ本の２次一致線１８−ｉ−１〜１８−ｉ−ｍとして出力する。
単一領域検索用連想メモリ４−ｉの単一領域での検索動作は１次検索許可信号１０−ｉ、２次検索許可信号１１−ｉにより次のように制御される。１次検索許可信号１０−ｉが有効状態の場合には、検索データ３−ｉと内部に格納した記憶データとを、対応するマスク情報を考慮して比較する１次検索を行い、結果を１次一致線１７−ｉ−１〜１７−ｉ−ｍに出力する。２次検索許可信号１１−ｉが有効状態の場合には、内部に格納した記憶データと、マスク情報の双方または一方を用いて、ｍ本の共通一致線３８−１〜３８−ｍの状態に応じた中間データを生成し、中間データによる２次検索を行った結果を２次一致線１８−ｉ−１〜１８−ｉ−ｍに出力する。中間データによる２次検索としては、連想メモリ２５をｉ番目の単一領域検索用連想メモリ４−ｉ単独で構成し１次検索に続けて２次検索を行った場合に、検索データ３−ｉとマスク情報を考慮して一致する記憶データの中で最もマスク情報の有効状態のビット数が少ない記憶データに対応する２次一致線１８−ｉ−１〜１８−ｉ−ｍのみに有効状態を出力することができるものとする。
ただし、１次検索許可信号１０−ｉが無効状態の場合にはｍ本の１次一致線１７−ｉ−１〜１７−ｉ−ｍにすべて共通一致線３８の有効状態を出力し、２次検索許可信号１１−ｉが無効状態の場合にはｍ本の２次一致線１８−ｉ−１〜１８−ｉ−ｍにすべて共通一致線３８の有効状態を出力する。
ｊ番目の論理積手段１３−ｊは、ｒ本の１次一致線１７−ｊ−１〜１７−ｊ−ｒ、１本の共通一致線３８−ｊ、および１本の一致信号５−ｊを入力とし、共通一致線３８の有効状態を真とする論理積演算を行った結果を、論理積信号４０−ｊとして出力する。
ｊ番目の論理積手段１５−ｊは、ｒ本の２次一致線１８−ｊ−１〜１８−ｊ−ｒを入力とし、共通一致線３８の有効状態を真とする論理積演算を行った結果を、一致信号５−ｊとして出力する。
図１４は、本発明の第三の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。本例では、１番目の単一領域検索用連想メモリ４−１はｎビットｍ語の構成とし、ｒ番目の単一領域検索用連想メモリ４−ｒはｓビットｍ語の構成とするが、１語を構成するビット数が異なるのみで内部の構成は全く同一とする。本例では、ｉ番目のｇビットｍ語の単一領域検索用連想メモリ４−ｉは、１次検索許可信号１０−ｉが有効状態のときに検索動作を行うｇビットｍ語の１次連想メモリ２０−ｉと、２次検索許可信号１１−ｉが有効状態のときに検索動作を行うｇビットｍ語の２次連想メモリ２１−ｉとを独立に有する場合についての説明を行う。図１３の実施例の連想メモリ２５の単一領域検索用連想メモリ４−ｉは図１４に示すような構成に限定されず、例えば特開平１１−０７３７８２号公報に示されるような連想メモリを用いても構成することが可能であることはいうまでもない。
１次連想メモリ２０−ｉは、検索データ３−ｉと、１次検索許可信号１０−ｉと、共通一致線３８−１〜３８−ｍを入力とし、単一領域での検索結果を１次一致線１７−１−ｉ〜１７−ｍ−ｉに出力するとともに、中間データ９３−ｉを出力とする。ただし、１次検索許可信号１０−ｉが無効状態の場合には１次一致線１７−ｉ−１〜１７−ｉ−ｍにすべて共通一致線３８の有効状態を出力する。１次連想メモリ２０−ｉはｍ個の連想メモリ・ワード７−１−ｉ〜７−ｍ−ｉを有しており、ｊ番目の連想メモリ・ワード７−ｊ−ｉは、ｇ個のデータ・セル８−ｊ−１−ｉ〜８−ｊ−ｇ−ｉおよび、ｇ個のマスク・セル９−ｊ−１−ｉ〜９−ｊ−ｇ−ｉを有している。
２次連想メモリ２１−ｉは、中間データ９３−ｉと、２次検索許可信号１１−ｉを入力とし、単一領域での検索結果を２次一致線１８−１−ｉ〜１８−ｍ−ｉに出力する。ただし、２次検索許可信号１１−ｉが無効状態の場合には２次一致線１８−ｉ−１〜１８−ｉ−ｍにすべて共通一致線３８の有効状態を出力する。２次連想メモリ２１−ｉはｍ個の連想メモリ・ワード２４−１−ｉ〜２４−ｍ−ｉを有しており、ｊ番目の連想メモリ・ワード２４−ｊ−ｉは、ｇ個のデータ・セル２３−ｊ−１−ｉ〜２３−ｊ−ｇ−ｉを有している。ｊ番目の連想メモリ・ワード２４−ｊ−ｉのｋビット目のデータ・セル２３−ｊ−ｋ−ｉには、第二の記憶データとして、１次連想メモリ２０−ｉの対応するデータ・セル８−ｊ−ｋ−ｉに格納している記憶データと同じ値をあらかじめ格納しているものとする。ただし、対応するマスク・セル９−ｊ−ｋに格納されたビット情報がマスク有効状態の場合には、データ・セル２３−ｊ−ｋには記憶データの無効状態を、第二の記憶データとして格納するものとする。
［第三の実施例の単一領域検索用連想メモリの構成］
次に上述の１次連想メモリ２０の構成例を図１５を用いて説明する。１次連想メモリ２０は、ｎビットｍ語の連想メモリ・ワード７−１〜７−ｍと、論理ゲート５８−１〜５８−ｎと、抵抗５７−１〜５７−ｎを有している。ｊ番目の連想メモリ・ワード７−ｊは、ｎ個の連想メモリ・セル５０−ｊ−１〜５０−ｊ−ｎを有している。連想メモリ・ワード７−ｊには、対応するデータ・ワード線５３−ｊと、マスク・ワード線５４−ｊと、共通一致線３８−ｊと、および１次検索許可信号１０が入力のために接続され、対応する１次一致線１７−ｊ、およびｎ本の一致データ中間論理線５２−１〜５２−ｎが出力のために接続され、ｎ本のビット線５１−１〜５１−ｎが入出力のために接続されている。
なお、本例では、マスク情報のマスク有効状態を“０”、マスク無効状態を“１”とし、記憶データの有効状態を“１”、無効状態を“０”とする。記憶データと同様に、一致データ論理和線５２−１〜５２−ｎの有効状態を“１”、無効状態を“０”とする。１次一致線１７−１〜１７−ｍ、２次一致線１８〜１〜１８−ｍ、および共通一致線３８−１〜３８−ｍの有効状態を“１”、無効状態を“０”とする。
１次一致線１７−１〜１７−ｍは、あらかじめハイ・レベルにプリ・チャージされ、有効状態“１”になっているものとする。
連想メモリ・ワード７−ｊのｋビット目の連想メモリ・セル５０−ｊ−ｋには、対応するデータ・ワード線５３−ｊと、マスク・ワード線５４−ｊと、共通一致線３８−ｊと、および１次検索許可信号１０が入力のために接続され、対応する１次一致線１７−ｊ、および一致データ中間論理線５２−ｋが出力のために接続され、ビット線５１−ｋが入出力のために接続されている。
各連想メモリ・セル５０−ｊ−ｋは、ビット線５１−ｋを介して外部から入力される記憶データの対応するビット情報を格納するデータ・セル８−ｊ−ｋと、データ・セル８−ｊ−ｋに記憶されたビット情報と外部からビット線５１−ｋを介して入力される情報とを比較する比較器５５−ｊ−ｋと、外部からビット線５１−ｋを介して入力されるマスク情報の対応するビット情報を格納するマスク・セル９−ｊ−ｋと、および論理ゲート５６−ｊ−ｋとを備えている。
ここで、図１５に示す１次連想メモリ２０の各構成要素は、図３に示した第一の実施の形態における単一領域検索用連想メモリ３６の構成と比較すると、外部からの検索データ３−１〜３−ｎがビット線５１−１〜５１−ｎに直接入力され、中間データ線９２−１〜９２−ｎの状態が中間データ９３として直接外部に出力されることと、それに伴い、ｎビット２入力１出力イネーブル付きセレクタ８２と、制御回路４５が削除されたことと、比較器５５−１−１〜５５−ｍ−ｎに入力される信号が比較制御信号８５から１次検索許可信号１０に変更されたことと、および一致線３７−１〜３７−ｍの名称が１次一致線１７−１〜１７−ｍに変更されたことの他は、図３に示した単一領域検索用連想メモリ３６と全く同様である。中間データ線９２−１〜９２−ｎから出力される中間データ９３も、図３に示した単一領域検索用連想メモリ３６と全く同様の操作により生成される。
したがって、第一の実施の形態の単一領域検索用連想メモリ３６と異なる点についてのみ説明する。
比較器５５−ｊ−ｋは、対応するビット線５１−ｋと、それに同一の連想メモリ・セル５０−ｊ−ｋの中のデータ・セル８−ｊ−ｋに格納されている記憶データと、マスク・セル９−ｊ−ｋに格納されているマスク情報と、および１次検索許可信号１０を入力とし、１次一致線１７−ｊを出力とする。比較器５５−ｊ−ｋは、１次検索許可信号１０が有効状態“１”かつ、ビット線５１−ｋの値と記憶データが一致しないならば対応する１次一致線１７−ｊに無効状態“０”を出力し、それ以外の場合には１次一致線１７−ｊを開放状態にする。連想メモリ・ワード７−ｊの中のｎ個の比較器５５−ｊ−１〜５５−ｊ−ｎがすべて１次一致線１７−ｊを開放状態にしているときに、１次一致線１７−ｊは有効状態“１”となり、それ以外の場合には無効状態“０”となる、１次一致線１７の有効状態“１”を真としたワイアードＡＮＤ論理接続を構成している。つまり、１次検索許可信号１０が無効状態“０”のときには常に１次一致線１７−ｊを有効状態“１”とし、１次検索許可信号１０が有効状態“１”のときには、マスク情報がマスク有効状態“０”のために比較対象から除外されたビットを除いて連想メモリ・ワード７−ｊが格納している記憶データとビット線５１−１〜５１−ｎが完全に一致する場合に限り、１次一致線１７−ｊは有効状態“１”となり、完全に一致しない場合には無効状態“０”となる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
［第三の実施例の単一領域検索用連想メモリの構成詳細］
次に、上述の連想メモリ・セル５０の構成例を図１６を用いて説明する。図４に示す第一の実施の形態の連想メモリ・セル８３と比較すれば分かるように、本発明の連想メモリ・セル５０は、比較器５５に入力される信号が比較制御信号８５から１次検索許可信号１０に変更されたことと、一致線３７−１〜３７−ｍの名称が１次一致線１７−１〜１７−ｍに変更されたこと、それに伴い比較制御信号８５により導通状態が制御されるＭＯＳトランジスタ（Ｔ７）２０９が削除され、１次検索許可信号１０により導通状態が制御されるＭＯＳトランジスタ（Ｔ１２）２１６が追加されていることの他は、図４に示す第一の実施の形態の連想メモリ・セル８３と全く同様に構成される。したがって、第一の実施の形態の連想メモリ・セル８３と異なる点についてのみ説明を行う。
比較器５５はＭＯＳトランジスタ（Ｔ３）２０５、ＭＯＳトランジスタ（Ｔ４）２０６、ＭＯＳトランジスタ（Ｔ５）２０７、ＭＯＳトランジスタ（Ｔ６）２０８、およびＭＯＳトランジスタ（Ｔ１２）２１６により構成される。ＭＯＳトランジスタ（Ｔ３）２０５とＭＯＳトランジスタ（Ｔ４）２０６はビット線５１ａ，５１ｂの間に直列に挿入される。ＭＯＳトランジスタ（Ｔ３）２０５は、データ・セル８内の反転論理ゲート（Ｇ１）２０１の出力がハイ・レベルのときに導通状態となる。ＭＯＳトランジスタ（Ｔ４）２０６は、データ・セル８内の反転論理ゲート（Ｇ２）２０２の出力がハイ・レベルのときに導通状態となる。ＭＯＳトランジスタ（Ｔ６）２０８、ＭＯＳトランジスタ（Ｔ１２）２１６、およびＭＯＳトランジスタ（Ｔ５）２０７は、１次一致線１７と低電位の間に直列に挿入される。ＭＯＳトランジスタ（Ｔ６）２０８は、マスク・セル９内の反転論理ゲート（Ｇ４）２１１の出力がハイ・レベルの時に導通状態となる。ＭＯＳトランジスタ（Ｔ１２）２１６は、１次検索許可信号１０が有効状態“１”の時に導通状態となる。
ＭＯＳトランジスタ（Ｔ５）２０７は、ＭＯＳトランジスタ（Ｔ３）２０５とＭＯＳトランジスタ（Ｔ４）２０６の接続点の電位がハイ・レベルの時に導通状態となる。ビット線５１ａと反転論理ゲート（Ｇ１）２０１の出力がともにハイ・レベル、またはビット線５１ｂと反転論理ゲート（Ｇ２）２０２の出力がともにハイ・レベルのときに、ＭＯＳトランジスタ（Ｔ３）２０５とＭＯＳトランジスタ（Ｔ４）２０６の接続点はハイ・レベルとなり、ＭＯＳトランジスタ（Ｔ５）２０７を導通状態とする。
従って、データ・セル８に格納されている記憶データと、ビット線５１ａ，５１ｂ上の検索データ３が異なる場合にＭＯＳトランジスタ（Ｔ５）２０７は導通状態になる。またＭＯＳトランジスタ（Ｔ６）２０８はマスク・セル９内に格納されているマスク情報が“０”のときには開放状態であり、“１”のときに導通状態となる。１次一致線１７はあらかじめ高電位にプリ・チャージされているものとする。これにより、複数の連想メモリ・セル５０が１次一致線１７にＭＯＳトランジスタ（Ｔ６）２０８を介して接続されているとき、一つの連想メモリ・セル５０でもロウ・レベルを出力していると１次一致線１７はロウ・レベルとなるようなワイアードＡＮＤ接続となる。
ＭＯＳトランジスタ（Ｔ５）２０７が導通状態のときに、直列接続されたＭＯＳトランジスタ（Ｔ６）２０８、ＭＯＳトランジスタ（Ｔ１２）２１６が、ともに導通状態の場合にのみ連想メモリ・セル５０は１次一致線１７に無効状態“０”を出力し、それ以外の時には１次一致線１７を開放状態とする。すなわち、マスク情報がマスク有効状態“０”または１次検索許可信号１０が無効状態“０”の場合には検索データ３と記憶データの比較結果によらず１次一致線１７を開放状態とし、マスク情報がマスク無効状態“１”かつ１次検索許可信号１０が有効状態“１”の場合にはビット線５１ａ，５１ｂ上の検索データ３とデータ・セル８に格納されている記憶データが一致するときに開放状態とし、異なる場合には無効状態“０”を出力する。
本例では、１次検索許可信号１０によりＭＯＳトランジスタ（Ｔ１２）２１６を制御することで、１次検索許可信号１０が無効状態“０”の場合に１次一致線１７を解放状態とすることを実現したが、第一の実施の形態の単一領域検索用連想メモリ３６と同様に１次検索許可信号１０が無効状態“０”の場合にビット線５１ａ、５１ｂをともに“０”にする手段を設けることによっても実現できることはいうまでもない。また、図１０に示した第一の実施の形態の第二の構成の単一領域検索用連想メモリ２２と同様に、１次検索許可信号１０が無効状態の場合には１次一致線を有効状態とする論理ゲートを挿入することによっても実現できることもいうまでもない。
次に２次連想メモリ２１の構成例を図１７に示す。２次連想メモリ２１は、連想メモリ・ワード２４−１〜２４−ｍから構成され、ｊ番目の連想メモリ・ワード２４−ｊは、ｎ個の連想メモリ・セル６０−ｊ−１〜６０−ｊ−ｎを備えている。連想メモリ・ワード２４−ｊには、対応するデータ・ワード線６１−ｊと、および２次検索許可信号１１が入力のために接続され、対応する２次一致線１８−ｊが出力のために接続され、ｎ本のビット線５９−１〜５９−ｎが入出力のために接続されている。
ｊ番目の連想メモリ・ワード２４−ｊのｋビット目の連想メモリ・セル６０−ｊ−ｋには、対応するデータ・ワード線６１−ｊと、および２次検索許可信号１１が入力のために接続され、対応する２次一致線１８−ｊが出力のために接続され、ビット線５９−ｋが入出力のために接続されている。また、連想メモリ・セル１０５−ｊ−ｋは、第二の記憶データの対応するビット情報を格納するデータ・セル２３−ｊ−ｋと、ビット線５９−ｋを介して入力される中間データ９３とデータ・セル２３−ｊ−ｋに記憶されたビット情報とを比較する比較器６２−ｊ−ｋとを備えている。
連想メモリ・セル６０−ｊ−ｋにおいて、ビット線５９−ｋ、データ・ワード線６１−ｊ，データ・セル２３−ｊ−ｋの動作は、従来の連想メモリ・セル１０７と同様である。
２次一致線１８−１〜１８−ｍは、あらかじめハイ・レベルにプリ・チャージされているものとする。
比較器６２−ｊ−ｋは、２次検索許可信号１１が有効状態“１”かつ、同一の連想メモリ・セル６０−ｊ−ｋの中のデータ・セル２３−ｊ−ｋに格納されている第二の記憶データとビット線５９−ｋの値が一致しないならば対応する２次一致線１８−ｊに無効状態“０”を出力し、それ以外の場合には２次一致線１８−ｊを開放状態にする。したがって、連想メモリ・ワード２４−ｊの中のｎ個の比較器６２−ｊ−１〜６２−ｊ−ｎがすべて２次一致線１８−ｊを開放状態にしているときに、２次一致線１８−ｊは有効状態“１”となり、それ以外の場合には無効状態“０”となる、２次一致線１８の有効状態“１”を真としたワイアードＡＮＤ論理接続を構成している。つまり、２次検索許可信号１１が無効状態“０”のときには常に２次一致線１８−ｊを有効状態“１”とし、２次検索許可信号１１が有効状態“１”のときには、連想メモリ・ワード２４−ｊが格納している記憶データとビット線５９−１〜５９−ｎが完全に一致する場合に限り、２次一致線１８−ｊは有効状態“１”となり、完全に一致しない場合には無効状態“０”となる。もちろん同様の動作となるように通常の論理ゲートを用いて構成してもかまわない。
次に、２次連想メモリ２１の連想メモリ・セル６０の構成例を図１８を用いて説明する。図１６に示す１次連想メモリ２０の連想メモリ・セル５０と比較すれば分かるように、２次連想メモリ２１の連想メモリ・セル６０における、ビット線５９ａ、５９ｂ、データ・ワード線６１、およびデータ・セル２３は、１次連想メモリ２０の連想メモリ・セル５０と同様である。
比較器６２は、ＭＯＳトランジスタ（Ｔ２３）２２５、ＭＯＳトランジスタ（Ｔ２４）２２６、ＭＯＳトランジスタ（Ｔ２５）２２７、およびＭＯＳトランジスタ（Ｔ３２）２３６により構成される。ＭＯＳトランジスタ（Ｔ２３）２２５とＭＯＳトランジスタ（Ｔ２４）２２６はビット線５９ａ，５９ｂの間に直列に挿入される。ＭＯＳトランジスタ（Ｔ２３）２２５は、データ・セル２３内の反転論理ゲート（Ｇ２１）２２１の出力がハイ・レベルのときに導通状態となる。ＭＯＳトランジスタ（Ｔ２４）２２６は、データ・セル２３内の反転論理ゲート（Ｇ２２）２２２の出力がハイ・レベルのときに導通状態となる。ＭＯＳトランジスタ（Ｔ３２）２３６、およびＭＯＳトランジスタ（Ｔ２５）２２７は、２次一致線１８と低電位の間に直列に挿入される。ＭＯＳトランジスタ（Ｔ３２）２３６は、２次検索許可信号１１が有効状態“１”の時に導通状態となる。
ＭＯＳトランジスタ（Ｔ２５）２２７は、ＭＯＳトランジスタ（Ｔ２３）２２５とＭＯＳトランジスタ（Ｔ２４）２２６の接続点の電位がハイ・レベルの時に導通状態となる。ビット線５９ａと反転論理ゲート（Ｇ２１）２２１の出力がともにハイ・レベル、またはビット線５９ｂと反転論理ゲート（Ｇ２２）２２２の出力がともにハイ・レベルのときに、ＭＯＳトランジスタ（Ｔ２３）２２５とＭＯＳトランジスタ（Ｔ２４）２２６の接続点はハイ・レベルとなり、ＭＯＳトランジスタ（Ｔ２５）２２７を導通状態とする。
従って、データ・セル２３に格納されている第二の記憶データと、ビット線５９ａ，５９ｂ上の中間データ２３が異なる場合にＭＯＳトランジスタ（Ｔ２５）２２７は導通状態になる。２次一致線１８はあらかじめ高電位にプリ・チャージされているものとする。これにより、複数の連想メモリ・セル６０が２次一致線１８にＭＯＳトランジスタ（Ｔ３２）２３６を介して接続されているとき、一つの連想メモリ・セル６０でもロウ・レベルを出力していると２次一致線１８はロウ・レベルとなるようなワイアードＡＮＤ接続となる。
ＭＯＳトランジスタ（Ｔ２５）２２７が導通状態のときに、直列接続されたＭＯＳトランジスタ（Ｔ３２）２３６が導通状態の場合にのみ連想メモリ・セル６０は２次一致線１８に無効状態“０”を出力し、それ以外の時には２次一致線１８を開放状態とする。すなわち、２次検索許可信号１１が無効状態“０”の場合には中間データ２３と第二の記憶データの比較結果によらず２次一致線１８を開放状態とし、２次検索許可信号１１が有効状態“１”の場合にはビット線５９ａ，５９ｂ上の中間データ２３とデータ・セル２３に格納されている第二の記憶データが一致するときに開放状態とし、異なる場合には無効状態“０”を出力する。
本例では、２次検索許可信号１１によりＭＯＳトランジスタ（Ｔ３２）２３６を制御することで、２次検索許可信号１１が無効状態“０”の場合に２次一致線１８を解放状態とすることを実現したが、第一の実施の形態の単一領域検索用連想メモリ３６と同様に２次検索許可信号１１が無効状態“０”の場合にビット線５９ａ、５９ｂをともに“０”にする手段を設けることによっても実現できることはいうまでもない。
［第三の実施例の単一領域検索用連想メモリの動作］
次に、上述の単一領域検索用連想メモリ４を、従来の連想メモリ１０１の動作説明のときと同様に図３３のネットワーク機器４００−１における転送先ネットワーク・アドレスの計算に用いた場合の動作を、図１９を用いて説明する。
単一領域検索用連想メモリ４を９ビット３語の構成と仮定し、１次連想メモリ２０の各連想メモリ・ワード７−１〜７−３に格納されている記憶データ、マスク情報には、図３３のネットワーク機器４００−１のネットワーク・アドレス（１．＊．＊）以外の接続情報を記憶しているものとする。このとき、接続情報の中のドント・ケア“＊”状態のビットは、マスク情報の該当ビットをマスク有効状態“０”とすることで表現される。記憶データの該当ビットの状態は任意であるが、本例では記憶データの無効状態“０”を格納することにする。
つまり、連想メモリ・ワード７−１には（２．＊．＊）を構造化データで表現するため、記憶データには２進数で（０１０．０００．０００）を、マスク情報として（１１１．０００．０００）で格納してある。同様に連想メモリ・ワード７−２には（２．３．＊）を構造化データで表現するため、記憶データには２進数で（０１０．０１１．０００）を、マスク情報として（１１１．１１１．０００）を格納してある。連想メモリ・ワード７−３には（３．＊．＊）を構造化データで表現するため、記憶データには２進数で（０１１．０００．０００）を、マスク情報として（１１１．０００．０００）を格納してある。
２次連想メモリ２１の各連想メモリ・ワード２４−１〜２４−３に格納されている第二の記憶データとして、図３３のネットワーク機器４００−１の接続情報においてドント・ケア“＊”状態のビットを記憶データの無効状態“０”に置換した値を記憶しているものとする。つまり、連想メモリ・ワード２４−１には（０１０．０００．０００）を、連想メモリ・ワード２４−２には（０１０．０１１．０００）を、連想メモリ・ワード２４−３には（０１１．０００．０００）を、それぞれ格納してある。
また、図１９では単一領域検索用連想メモリ４の説明のため、外部から、共通一致線１８−１には１次一致線１７−１の値が入力され、共通一致線１８−２には１次一致線１７−２の値が入力され、共通一致線１８−３には１次一致線１７−３の値が入力されているものとする。
以降、検索データ１１２として図３３のＰＣ４０１−２の８進表現のネットワーク・アドレス（２．３．４）を入力し検索動作を行った場合の動作説明をする。
あらかじめ、すべての１次一致線１７−１〜１７−３、および２次一致線１８−１〜１８−３は、有効状態“１”にプリ・チャージされているものとする。
８進表現で（２．３．４）の検索データ３をビット線５１−１〜５１−９に入力すると、１次連想メモリ４は、マスク情報によるドント・ケア“＊”も考慮して１次検索を実行し、１次連想メモリ４の連想メモリ・ワード７−１に格納されている８進表現の（２．＊．＊）と、連想メモリ・ワード７−２に格納されている８進表現の（２．３．＊）がビット線５１−１〜５１−９上の検索データ３と一致し、連想メモリ・ワード７−３に格納されている８進表現の（３．＊．＊）は不一致となる。したがって、１次一致線１７−１、１７−２の２本が有効状態“１”となり、残りの１次一致線１７−３は無効状態“０”となる。このとき、上述のように外部から、共通一致線１８−１には１次一致線１７−１の値“１”が入力され、共通一致線１８−２には１次一致線１７−２の値“１”が入力され、共通一致線１８−３には１次一致線１７−３の値“０”が入力される。
ここで、中間データ線９２−１からは、連想メモリ・ワード７−１内の一致データ中間論理線５２−１に対応する記憶データ“０”と、連想メモリ・ワード７−２内の一致データ中間論理線５２−１に対応する記憶データ“０”に対しての、“１”を真とした論理和結果“０”が出力される。中間データ線９２−２からは、連想メモリ・ワード７−１内の一致データ中間論理線５２−２に対応する記憶データ“１”と、連想メモリ・ワード７−１内の一致データ中間論理線５２−２に対応する記憶データ“１”に対しての“１”を真とした論理和結果“１”が出力される。
以降同様に、中間データ線９２−３からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、中間データ線９２−４からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、中間データ線９２−５からは“０”と“１”に対しての“１”を真とした論理和結果“１”が、中間データ線９２−６からは“０”と“１”に対しての“１”を真とした論理和結果“１”が、中間データ線９２−７からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、中間データ線９２−８からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、中間データ線９２−９からは“０”と“０”に対しての“１”を真とした論理和結果“０”が、それぞれ出力される。従って、中間データ線９２−１〜９２−９に出力される２進表現で“０１００１１０００”が、中間データ２３として２次連想メモリ２１に入力される。
２次連想メモリ２１は、入力された中間データ２３の値“０１００１１０００”に対して、２次検索を実行する。本例では、連想メモリ・ワード２４−２が格納する第二の記憶データが完全に一致し、対応する２次一致線１８−２を開放状態にする。他の連想メモリ・ワード２４−１、および２４−３が格納する第二の記憶データは一致しないので、対応する２次一致線１８−１、および１８−３に無効状態“０”を出力する。したがって、２次検索後も有効状態“１”を保持し続けるのは、２次一致線１８−２のみとなる。
上述のように、単一領域検索用連想メモリ４は、図３で説明した単一領域検索用連想メモリ３６と同様に、８進表現で（２．３．３）の検索データ３を入力した場合、対応するマスク情報を考慮して比較した結果一致する記憶データの中で、マスク情報のマスク有効状態のビットが最も少ない記憶データに対応する２次一致線１８−２のみに有効状態“１”を出力することがわかる。
［第三の実施例の動作］
次に本発明の第三の実施の形態の連想メモリの、複数の検索データから構成される入力データに対しての検索動作について、図５に示す本発明の連想メモリの複数の検索データから構成される入力データに対しての検索動作時の動作を示す、上述したフローチャートに則して説明する。ここでは、第一の実施の形態の連想メモリ１の説明のときと同様に、第三の実施の形態の連想メモリ２５を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合を例として、図２０、図２１、図２２、および図２３を用いて、図５のフローチャートの各ステップごとに具体的に説明する。
第一の実施の形態の連想メモリ１の説明のときと同様に、データ転送時の９ビットの送出元アドレス（１．２．６）を検索データ３−１とし、９ビットの宛先アドレス（２．３．５）を検索データ３−２とし、検索データ３−１の優先順位を最も高い１とし、検索データ３−２の優先順位を２とする。図２０、図２１、図２２、および図２３において、連想メモリ２５は、９ビット５語の単一領域検索用連想メモリ４−１、および４−２により構成されるものとする。
表１（ｂ）における各転送規則の送出元ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データを、単一領域検索用連想メモリ４−１の１次連想メモリ２０−１の転送規則に対応する連想メモリ・ワード７−１−１〜７−５−１の記憶データとして格納し、さらに２次連想メモリ２１−１の転送規則に対応する連想メモリ・ワード２４−１−１〜２４−５−１の第二の記憶データとして格納するものとする。また、表１（ｂ）における各転送規則の送出元ネットワーク・アドレスの９ビットの構造化データを構成する９ビットのマスク情報を、単一領域検索用連想メモリ４−１の１次連想メモリ２０−１の転送規則に対応する連想メモリ・ワード７−１−１〜７−５−１のマスク情報として格納するものとする。
表１（ｂ）における各転送規則の宛先ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データを、単一領域検索用連想メモリ４−２の１次連想メモリ２０−２の転送規則に対応する連想メモリ・ワード７−１−２〜７−５−２の記憶データとして格納し、さらに２次連想メモリ２１−２の転送規則に対応する連想メモリ・ワード２４−１−２〜２４−５−２の第二の記憶データとして格納するものとする。また、表１（ｂ）における各転送規則の宛先ネットワーク・アドレスの９ビットの構造化データを構成する９ビットのマスク情報を、単一領域検索用連想メモリ４−２の１次連想メモリ２０−２の転送規則に対応する連想メモリ・ワード７−１−２〜７−５−２のマスク情報として格納するものとする。
また、表１（ｂ）における各転送規則の宛先ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、単一領域検索用連想メモリ３６−２の転送規則に対応する連想メモリ・ワード４４−１−２〜４４−５−２のそれぞれ記憶データ、マスク情報として格納するものとする。
すべての１次一致線１７−１−１〜１７−ｍ−ｒ、およびすべての２次一致線１８−１−１〜１８−ｍ−ｒは、あらかじめ有効状態“１”にプリ・チャージされているものとする。
第三の実施の形態の連想メモリ２５の主制御回路６の、図５のフローチャートの各ステップにおける動作は、第一の実施の形態の連想メモリ１の場合と同様である。また、図２０、図２１、図２２、および図２３におけるクロック信号４１および開始信号４２の状態は、第一の実施の形態の連想メモリ１と同様とする。［ステップＳ１００］
図２０は、連想メモリ１を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、図５のステップＳ１００での動作状態を説明する図である。
１次検索許可信号１０−１が無効状態“０”であるため、１次連想メモリ２０−１はすべての１次一致線１７−１−１〜１７−５−１を解放状態とし、結果としてすべての１次一致線１７−１−１〜１７−５−１は有効状態“１”を保持する。２次検索許可信号１１−１が無効状態“０”であるため、２次連想メモリ２１−１はすべての２次一致線１８−１−１〜１８−５−１を解放状態とし、結果としてすべての２次一致線１８−１−１〜１８−５−１は有効状態“１”を保持する。
１次検索許可信号１０−２が無効状態“０”であるため、１次連想メモリ２０−２はすべての１次一致線１７−１−２〜１７−５−２を解放状態とし、結果としてすべての１次一致線１７−１−２〜１７−５−２は有効状態“１”を保持する。２次検索許可信号１１−２が無効状態“０”であるため、２次連想メモリ２１−２はすべての２次一致線１８−１−２〜１８−５−２を解放状態とし、結果としてすべての２次一致線１８−１−１〜１８−５−１は有効状態“１”を保持する。したがって、論理積手段１５−１〜１５−５から出力される一致信号５−１〜５−５はすべて有効状態“１”となる。
また、記憶手段４３−１〜４３−５の出力である共通一致線３８−１〜３８−５は、記憶制御信号１２により有効状態“１”に初期化されている。そのため、論理積信号４０−１〜４０−５はすべて“１”となる。その結果として、中間データ９３−１は、連想メモリ・ワード４４−１−１〜４４−１−５に格納されているすべての記憶データの論理和演算結果“００１．０１０．１１０”となる。また、中間データ９３−２は、連想メモリ・ワード４４−２−１〜４４−２−５に格納されているすべての記憶データの論理和演算結果“０１１．０１１．１０１”となる。
［ステップＳ１０１］
図２１は、連想メモリ２５を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１０１での動作状態を説明する図である。
単一領域検索用連想メモリ４−１の１次連想メモリ２０−１においては、１次検索許可信号１０−１が有効状態“１”であるため、検索データ３−１の値“００１．０１０．１１０”と、連想メモリ・ワード７−１−１〜７−５−１に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として１次一致線１７−１−１、１７−２−１、１７−３−１、１７−４−１、および１７−５−１が有効状態“１”となる。
単一領域検索用連想メモリ４−２の１次連想メモリ２０−２においては、１次検索許可信号１０−２が有効状態“１”であるため、検索データ３−２の値“０１０．０１１．１０１”と、連想メモリ・ワード７−１−２〜７−５−２に格納されている記憶データとを、対応するマスク情報も考慮して比較を行い、結果として１次一致線１７−１−２、１７−３−２、および１７−５−２が有効状態“１”となり、１次一致線１７−２−２、および１７−４−２は無効状態“０”となる。
２次検索許可信号１１−１が無効状態“０”であるため、２次連想メモリ２１−１はすべての２次一致線１８−１−１〜１８−５−１を解放状態とし、結果としてすべての２次一致線１８−１−１〜１８−５−１は有効状態“１”を保持する。２次検索許可信号１１−２が無効状態“０”であるため、２次連想メモリ２１−２はすべての２次一致線１８−１−２〜１８−５−２を解放状態とし、結果としてすべての２次一致線１８−１−２〜１８−５−２は有効状態“１”を保持する。したがって、論理積手段１５−１〜１５−５から出力される一致信号５−１〜５−５は、すべて有効状態“１”となる。
記憶手段４３−１〜４３−５はステップＳ１００で初期化された値“１”を共通一致線３８−１〜３８−５に出力しているため、論理積信号４０−１、４０−３、および４０−５が“１”となり、論理積信号４０−２、および４０−４は“０”となる。その結果として、中間データ９３−１は、連想メモリ・ワード４４−１−１〜４４−１−５に格納されているすべての記憶データの論理和演算結果“００１．０１０．１１０”となる。また、中間データ９３−２は、連想メモリ・ワード４４−２−１〜４４−２−５に格納されているすべての記憶データの論理和演算結果“０１１．０１１．１０１”となる。論理積信号４０−１〜４０−５の値は、記憶制御信号１２によって、次のステップに移行するときに記憶手段４３−１〜４３−５に記憶される。
［ステップＳ１０２］
図２２は、連想メモリ２５を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１０２での動作状態を説明する図である。
記憶手段４３−１〜４３−５はステップＳ１０１で記憶された値を出力しているため、共通一致線３８−１、３８−３、および３８−５が“１”となり、共通一致線３８−２、および３８−４は“０”となる。このため、単一領域検索用連想メモリ４−１の中間データ９３−１の値は、連想メモリ・ワード７−１−１、７−３−１、および７−５−１に格納されている記憶データの論理和演算結果“００１．０１０．０００”となる。また、単一領域検索用連想メモリ４−２の中間データ９３−２の値は、連想メモリ・ワード７−１−２、７−３−２、および７−５−２に格納されている記憶データの論理和演算結果“０１０．０１１．１０１”となる。
優先順位が最も高い１である単一領域検索用連想メモリ４−１においては、２次検索許可信号１１−１に有効状態“１”が入力され、２次連想メモリ２１−１は、中間データ９３−１の値“００１．０１０．０００”と、連想メモリ・ワード２４−１−１〜２４−５−１に格納されている第二の記憶データとの比較を行い、結果として２次一致線１８−１−１、および１８−３−１が有効状態“１”となり、２次一致線１８−２−１、１８−４−１、および１８−５−１は無効状態“０”となる。単一領域検索用連想メモリ４−１の１次連想メモリ２０−１は、１次検索許可信号１０−１が無効状態“０”であるため、すべての１次一致線１７−１−１〜１７−５−１を解放状態とし、結果としてすべての１次一致線１７−１−１〜１７−５−１は有効状態“１”を保持する。
単一領域検索用連想メモリ４−２の１次連想メモリ２０−２は、１次検索許可信号１０−２が無効状態“０”であるため、すべての１次一致線１７−１−２〜１７−５−２を解放状態とし、結果としてすべての１次一致線１７−１−２〜１７−５−２は有効状態“１”を保持する。単一領域検索用連想メモリ４−２の２次連想メモリ２１−２は、２次検索許可信号１１−２が無効状態“０”であるため、すべての２次一致線１８−１−２〜１８−５−２を解放状態とし、結果としてすべての２次一致線１８−１−２〜１８−５−２は有効状態“１”を保持する。
したがって、２次一致線１８−１−１〜１８−５−１、２次一致線１８−１−２〜１８−５−２の対応する信号どうしの論理積演算結果より、論理積手段１５−１〜１５−５は、一致信号５−１、および５−３に有効状態“１”を出力し、一致信号５−２、５−４、および５−５には無効状態“０”を出力する。
１次一致線１７−１−１〜１７−５−１、１次一致線１７−１−２〜１７−５−２、一致信号５−１〜５−５、および共通一致線３８−１〜３８−５の、それぞれ対応する信号どうしの論理積演算結果より、論理積手段１３−１〜１３−５は、論理積信号４０−１、および４０−３に有効状態“１”を出力し、論理積信号４０−２、４０−４、および４０−５には無効状態“０”を出力する。論理積信号４０−１〜４０−５の状態は、記憶制御信号１２によって、次のステップに移行するときに記憶手段４３−１〜４３−５に記憶される。
［ステップＳ１０３〜Ｓ１０５］
図２３は、連想メモリ２５を、図３３におけるネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１からネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送についての転送の可否判定に用いた場合の、ステップＳ１０５での動作状態を説明する図である。
記憶手段４３−１〜４３−５はステップＳ１０２で記憶された値を出力しているため、共通一致線３８−１、および３８−３が“１”となり、共通一致線３８−２、３８−４、および３８−５は“０”となる。このため、単一領域検索用連想メモリ４−１の中間データ９３−１の値は、連想メモリ・ワード７−１−１、および７−３−１に格納されている記憶データの論理和演算結果“００１．０１０．０００”となる。また、単一領域検索用連想メモリ４−２の中間データ９３−２の値は、連想メモリ・ワード７−１−２、および７−３−２に格納されている記憶データの論理和演算結果“０１０．０１１．０００”となる。
優先順位が１である単一領域検索用連想メモリ４−１の１次連想メモリ２０−１は、１次検索許可信号１０−１が無効状態“０”であるため、すべての１次一致線１７−１−１〜１７−５−１を解放状態とし、結果としてすべての１次一致線１７−１−１〜１７−５−１は有効状態“１”を保持する。単一領域検索用連想メモリ４−１の２次連想メモリ２１−１は、２次検索許可信号１１−１が無効状態“０”であるため、すべての２次一致線１８−１−１〜１８−５−１を解放状態とし、結果としてすべての２次一致線１８−１−１〜１８−５−１は有効状態“１”を保持する。
優先順位が２である単一領域検索用連想メモリ４−２の１次連想メモリ２０−２においては、２次検索許可信号１１−２に有効状態“１”が入力され、２次連想メモリ２１−２は、中間データ９３−２の値“０１０．０１１．０００”と、連想メモリ・ワード２４−１−２〜２４−５−２に格納されている第二の記憶データとの比較を行い、結果として２次一致線１８−３−２が有効状態“１”となり、２次一致線１８−１−２、１８−２−２、１８−４−２、および１８−５−２は無効状態“０”となる。単一領域検索用連想メモリ４−２の１次連想メモリ２０−２は、１次検索許可信号１０−２が無効状態“０”であるため、すべての１次一致線１７−１−２〜１７−５−２を解放状態とし、結果としてすべての１次一致線１７−１−２〜１７−５−２は有効状態“１”を保持する。
したがって、２次一致線１８−１−１〜１８−５−１、２次一致線１８−１−２〜１８−５−２の対応する信号どうしの論理積演算結果より、論理積手段１５−１〜１５−５は、一致信号５−３のみに有効状態“１”を出力し、残りの一致信号５−１、５−２、５−４、および５−５には無効状態“０”を出力する。
１次一致線１７−１−１〜１７−５−１、１次一致線１７−１−２〜１７−５−２、一致信号５−１〜５−５、および共通一致線３８−１〜３８−５の、それぞれ対応する信号どうしの論理積演算結果より、論理積手段１３−１〜１３−５は、論理積信号４０−３に有効状態“１”を出力し、論理積信号４０−１、４０−２、４０−４、および４０−５には無効状態“０”を出力する。論理積信号４０−１〜４０−５の状態は、記憶制御信号１２によって、次のステップに移行するときに記憶手段４３−１〜４３−５に記憶される。
次のクロック信号４１に同期して主制御回路６の動作は、図５のフローチャートのステップＳ１０３に移行し、内部変数２８の値ｐと、連想メモリ１が有する単一領域検索用連想メモリ３６の個数ｒとを比較する。図２３の例では、内部変数２８の値ｐと、連想メモリ２５が有する単一領域検索用連想メモリ４の個数ｒは、ともに２であり、検索結果終了する。このとき、一致信号５−１〜５−５の中で有効状態“１”を出力しているものは一致信号５−３のみであり、これが最終的な検索結果として得られることになる。前述のように、ネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１から、ネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送は、転送規則３が適用されるべきであり、正しい結果が得られていることがわかる。
また、図５のフローチャートのステップＳ１０２、ステップＳ１０５の直前にウエイト・サイクルを挿入し、中間データ９３−１〜９３−ｒを格納するためのラッチを挿入することにより、動作周波数を高くすることができることはいうまでもない。
また、ステップＳ１０５では、ステップＳ１０２で２次検索を行ったときに一致したワードの中から、さらに２次検索を行うのであるから、図２３に示すステップＳ１０５での中間データ９３−１の値と、図２２に示すステップＳ１０２での中間データ９３−１の値は当然、同一である。したがって、図５のフローチャートのステップＳ１０５において、内部変数２８の値がｐのときに、２次検索信号１１−１〜１１−ｐに有効状態を出力しても、同じ結果が得られることがわかる。
また、上述の説明からわかるように、１次連想メモリ２０−１〜２０−２と、２次連想メモリ２１−１と、および２次連想メモリ２１−２はそれぞれ時間的に順番に動作し、かつ動作するタイミングが重なることはない。したがって、結線を変更すればパイプライン処理が可能であることが容易にわかる。
例えば、図１５において、論理積手段１５−１〜１５−ｍを削除し、共有している共通一致線３８−１〜３８−ｍ、論理積手段４０−１〜４０−ｍと記憶手段４３−１〜４３−ｍを、各２次連想メモリ２１−１〜２１−ｒそれぞれに専用に共通一致線３８−１−１〜３８−ｍ−ｒ、論理積手段４０−１−１〜４０−ｍ−ｒおよび記憶手段４３−１−１〜４３−ｍ−ｒと有するように変更する。このとき各２次連想メモリ２１−１〜２１−ｒに対応するｒ組の共通一致線（３８−１−１〜３８−ｍ−１）〜（３８−１−ｒ〜３８−ｍ−ｒ）はそれぞれ対応する１次連想メモリ２１−１〜２１−ｒにのみ入力する。これにより各２次連想メモリ２１−１〜２１−ｒごとに中間データ９３−１〜９３−ｒを生成することが可能となる。
また、２次連想メモリ２１−１に対応するｍ個の論理積手段１３−１−１〜１３−ｍ−１には一致信号５−１〜５−ｍの代わりに有効状態を入力し、２次連想メモリ２１−２に対応するｒ個の論理積手段１３−１−２〜１３−ｍ−２には一致信号５−１〜５−ｍの代わりに２次一致線１８−１−１〜１８−ｍ−１を入力し、以下同様に２次連想メモリ２１−ｒに対応するｒ個の論理積手段１３−１−ｒ〜１３−ｍ−ｒには一致信号５−１〜５−ｍの代わりに２次一致線１８−１−（ｒ−１）〜１８−ｍ−（ｒ−１）を入力するようにし、最後の２次一致線１８−１−ｒ〜１８−ｍ−ｒを一致信号５−１〜５−ｍのように結線を変更することにより、２次連想メモリ２１−１〜２１−ｒを独立に動作させることが可能となる。
このときには、１次検索許可信号１０−１〜１０−ｒ、２次検索許可信号１１−１〜１１−ｒはすべて有効状態で構わないし、パイプラインの動作周波数に応じて動作させるべき箇所にのみ有効状態を出力してもよいことはいうまでもない。また、上記記憶手段４３−１−１〜４３−ｍ−ｒを削除し、１次検索許可信号１０−１〜１０−ｒ、２次検索許可信号１１−１〜１１−ｒにすべて有効状態が出力されていれば１クロックですべての動作を終了ことになる。また、前述のように、中間データ９３−１〜９３−ｒを格納するためのラッチを挿入することによりパイプラインの動作周波数を高くすることも可能であることも容易にわかる。
［第四の実施例の構成］
次に、本発明の第四の実施の形態について図面を参照して詳細に説明する。図２４は、本発明の第四の実施の形態のｍ語の連想メモリ３５の構成例を示すブロック図である。
図２４に示す第四の実施の形態の連想メモリ３５は、ｒ個の単一領域検索用連想メモリ３０−１〜３０−ｒを構成する１次連想メモリ３１−１〜３１−ｒのそれぞれｊ番目の連想メモリ・ワード３２−ｊ−１〜３２−ｊ−ｒの比較結果の出力信号どうしを１本の１次一致線１７−ｊにワイアードＡＮＤ論理接続し、さらに１次一致線１７−ｊにダイナミックに保持されている状態を中間データ９３−１〜９３−ｒの生成に利用するものである。ここで１次一致線１７−ｊは、開始信号４２が有効状態のときのみ、有効状態“１”にプリ・チャージされるものとする。さらに連想メモリ３５では、単一領域検索用連想メモリ２６−１〜２６−ｒを構成する２次連想メモリ２１−１〜２１−ｒのそれぞれｊ番目の連想メモリ・ワード２４−ｊ−１〜２４−ｊ−ｒの比較結果の出力信号同士を１本の２次一致線１８−ｊにワイアードＡＮＤ論理接続している。ここで２次一致線１８−ｊは、あらかじめ有効状態“１”にプリ・チャージされるものとする。また、ｍ個のＭＯＳトランジスタ３３−１〜３３−ｍとｍ個の反転ＭＯＳトランジスタ３４−１〜３４−ｍを有し、ｊ番目のＭＯＳトランジスタ３３−ｊと反転ＭＯＳトランジスタ３４−ｊは、１次一致線１７−ｊと低電位の間に直列に挿入されている。ＭＯＳトランジスタ３３−ｊは主制御回路６から出力される記憶制御信号１２が有効状態のときに導通状態となる。反転ＭＯＳトランジスタ３４−ｊは、２次一致線１８−ｍが無効状態“０”のときに導通状態となる。
上述のように図１４に示した第三の実施の形態の連想メモリ２５における論理積手段１５−ｊは、図２４に示す第四の実施の形態の連想メモリ３５では、ワイアードＡＮＤ論理接続された２次一致線１８−ｊにより実現している。また、図２４に示す連想メモリ３５では、２次一致線１８−ｊの状態を一致信号５−ｊとして直接外部に出力している。
図２４に示す連想メモリ３５のｊ番目の１次一致線１７−ｊは、開始信号４２が有効状態のときに有効状態“１”にプリ・チャージされた後、図５に示すフローチャートの動作が終了するまでの間、ｒ個の単一領域検索用連想メモリ３０−１〜３０−ｒを構成する１次連想メモリ３１−１〜３１−ｒのそれぞれｊ番目の連想メモリ・ワード３２−ｊ−１〜３２−ｊ−ｒの比較結果がすべて一致し、かつ直前のステップでの１次一致線１７−ｊの状態が有効状態“１であり、かつ次のステップに移行する前に記憶制御信号１２が有効状態となりＭＯＳトランジスタ３３−ｊが導通状態となったときに２次一致線１８−ｊが有効状態”１“のときのみ、有効状態”１“を保持することになる。つまり、図１４における論理積手段１３−ｊは、図２４に示す連想メモリ３５では、ワイアードＡＮＤ論理接続された１次一致線１７−ｊと反転ＭＯＳトランジスタ３４−ｊにより構成され、また、図１４における記憶手段４３−ｊは、図２４に示す連想メモリ３５では、ワイアードＡＮＤ論理接続された１次一致線１７−ｊとＭＯＳトランジスタ３３−ｊにより構成されることになる。
これらの他は、図１４に示す第三の実施の形態の連想メモリ２５の構成と全く同様である。複数の検索データから構成される入力データに対して同様な検索動作を実行できることは明らかである。
図２４に示す第四の実施の形態の連想メモリ３５ではｒ個の単一領域検索用連想メモリ３０−１〜３０−ｒ間の配線数は、ｍ本の１次一致線１７−１〜１７−ｍと、ｍ本の２次一致線１８−１〜１８−ｍの合計（２ｍ）本である。図１４に示す第三の実施の形態の連想メモリ２５では、ｒ個の単一領域検索用連想メモリ４−１〜４−ｒ間の配線数は、ｍ×ｒ本の１次一致線１７−１−１〜１７−ｍ−ｒと、ｍ×ｒ本の２次一致線１８−１−１〜１８−ｍ−ｒと、ｍ本の共用一致線３８−１〜３８−ｍの合計（ｍ×（２×ｒ＋１））本であり、第四の実施の形態の連想メモリ３５では配線数が大幅に減少していることがわかる。ｒ個の単一領域検索用連想メモリ３０−１〜３０−ｒ間の配線は、連想メモリ３５の全域に渡って配線されるために配線容量が大きくなり、保持している状態が遷移するたびに消費する電力は非常に大きい。したがって、第四の実施の形態の連想メモリ３５では第三の実施の形態の連想メモリ２５に比べて、配線領域が大きく減少しチップ面積が削減されると同時に、消費電力を大幅に削減できるという利点を有する。
図２５に、第四の実施の形態の連想メモリにおける１次連想メモリの一構成例のブロック図を示す。図２５に示す１次連想メモリ３１の構成は、図１５に示す第三の実施の形態の１次連想メモリ２０と比較すると、ｊ番目の連想メモリ・ワード３２−ｊから共通一致線３８−ｊが削除されたことと、それに伴いｊ番目の連想メモリ・ワード３２−ｊを構成するｎ個の連想メモリ・セル８０−ｊ−１〜８０−ｊ−ｎ内の論理ゲート５６−ｊ−１〜５６−ｊ−ｎの入力が共通一致線３８−ｊから１次一致線１７−ｊに変更されたことの他は、図１５に示す第三の実施の形態の１次連想メモリ２０と全く同様である。
図２５に示す１次連想メモリ３１では、出力信号である１次一致線１７−ｊを、ｎ個の論理ゲート５６−ｊ−１〜５６−ｊ−ｎをワイアードＡＮＤ論理接続することにより生成しているため、１次連想メモリ３１の内部においても共通一致線３８−ｊを１次一致線１７−ｊと共用することが可能である。
もちろん、ワイアードＡＮＤ論理接続ではなく通常の論理ゲートを用いて１次一致線１７−１〜１７−ｍを生成している場合、および図１０と同様な構成の、１次一致線１７−１〜１７−ｍが論理ゲートから出力されているような１次連想メモリにおいても、１次一致線１７−ｊを出力する論理ゲートとして、無効状態のときのみ出力を駆動し、有効状態のときには出力を開放状態にする機能を有しているものを使用することにより、第四の実施の形態の連想メモリ３５の１次連想メモリ３１として用いることが可能なことはいうまでもない。
また、図２４では２次一致線１８−ｊの状態を一致信号５−ｊとして直接外部に出力しているが、２次一致線１８−ｊの状態をバッファに入力して波形を整形してから一致信号５−ｊとして出力してもよいこともいうまでもない。
［第五の実施例］
図２６は、本発明の第五の実施の形態の連想メモリの構成例を示すブロック図である。図２６に示す第五の実施の形態のｍ語の連想メモリ４６を、図１４に示したｍ語の第三の実施の形態の連想メモリ２５と比較すると、入力データ４７の構成要素として検索データ４８が追加されていることと、検索データ４８を入力としｍ本の一致線９０−１〜９０−ｍを出力する連想メモリ４９が追加されていることと、論理積手段９１−１〜９１−ｍの入力信号として対応する一致線９０−１〜９０−ｍが追加されていることの他は、図１４に示した連想メモリ２５と全く同様に構成される。
したがって、図２６の連想メモリ４６は、複数の検索データ３−１〜３−ｒに対して連想メモリ２５と同様な検索動作を実行できることは明らかであり、さらに、検索データ４８を用いて、あらかじめ検索結果の絞り込みを行う機能を有する。これにより、表１（ｂ）で説明した転送規則の表を、複数個切り替えて使用することが可能になる。
例えば、検索データ４８として曜日を表す情報を入力した場合を考える。このとき、単一領域検索用連想メモリ４−１〜４−ｒの特定のワードに表１（ｂ）の転送規則を格納し、かつ連想メモリ４９の対応するワードの記憶データとして“平日”を表すデータを格納しておく。また、単一領域検索用連想メモリ４−１〜４−ｒの他のワードに特定のＰＣから特定のＰＣへの転送のみを許可し他の転送はすべて拒絶する”ような転送規則を格納し、かつ連想メモリ４９の対応するワードの記憶データとして“休日”を表すデータを格納した場合、検索データ４８に応じて転送規則を変更することが可能になる。つまり図１４に示した連想メモリ２５に比べて、転送規則を、より柔軟に設定することができる。
［第六の実施例］
次に図面を参照して、第一の実施の形態の連想メモリ１を転送先ネットワーク・アドレス計算に用いた、本発明のネットワーク機器の構成例を説明する。図２７は、本発明のネットワーク機器の一構成例を示すブロック図である。図２７では本発明のネットワーク機器４５０について、図３４に示した従来のネットワーク機器４２２の説明と同様に図３３のネットワーク機器４００−１に適用した場合を例にして、その構成と動作を説明する。もちろん、図３３の他のネットワーク機器に適用した場合も同様に構成することができる。
図２７のネットワーク機器４５０は、図３４に示した従来のネットワーク機器４２２と同様に、入力転送データ４０２を入力とし、出力転送データ４０３を出力する。入力転送データ４０２は、送出元ネットワーク・アドレス４０４と、転送先ネットワーク・アドレス４０５と、宛先ネットワーク・アドレス４０６と、データ部４０７を有している。出力転送データ４０３は、送出元ネットワーク・アドレス４０４と、第２の転送先ネットワーク・アドレス４０８と、宛先ネットワーク・アドレス４０６と、データ部４０７を有している。ここでは、ネットワーク機器４５０は、図３３のネットワーク機器４００−１に適用した場合を例として説明するので、入力転送データ４０２の転送先ネットワーク・アドレス４０５は、図３３におけるネットワーク機器４００−１のネットワーク・アドレスとなっている。
図２７に示す本発明のネットワーク機器４５０は、送出元ネットワーク・アドレス抽出部４０９と、宛先ネットワーク・アドレス抽出部４１０と、連想メモリ１０１と、エンコーダ４１４と、メモリ４１６と、転送先ネットワーク・アドレス変更部４１８と、データ転送部４２１と、本発明の連想メモリ１と、エンコーダ４５１と、およびメモリ４５３とにより構成される。図３４で説明した従来のネットワーク機器４２２において、送出元ネットワーク・アドレス情報４１１と，宛先ネットワーク・アドレス情報４１２とを入力として転送可否判定演算を行い演算結果を転送制御信号４２０として出力する機能を有していたＣＰＵ４１３は、本発明のネットワーク機器４５０では、連想メモリ１と、エンコーダ４５１と、メモリ４５３とにより構成されていることが異なる。他の構成要素である、送出元ネットワーク・アドレス抽出部４０９と、宛先ネットワーク・アドレス抽出部４１０と、連想メモリ１０１と、エンコーダ４１４と、およびメモリ４１６は、図３４に説明した従来のネットワーク機器と同様であり、また、図３３におけるネットワーク機器４００−１に適用した場合に設定すべき情報についても図３４と同様である。したがって、従来のネットワーク機器４２２と異なる部分についてのみ説明を行う。
図２７に示す連想メモリ１は、９ビット５語の単一領域検索用連想メモリ３６−１、および３６−２により構成されている。送出元ネットワーク・アドレス抽出部４０９が出力する送出元ネットワーク・アドレス情報４１１が単一領域検索用連想メモリ３６−１に検索データ３−１として入力され、宛先ネットワーク・アドレス抽出部４１０が出力する宛先ネットワーク・アドレス情報４１２が単一領域検索用連想メモリ３６−２に検索データ３−２として入力される。ここで検索データ３−１の優先順位を最も高い１とし、検索データ３−２の優先順位を２とする。
また、表１（ｂ）における各転送規則の送出元ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、単一領域検索用連想メモリ３６−１の転送規則に対応する連想メモリ・ワード４４−１−１〜４４−５−１のそれぞれ記憶データ、マスク情報として格納するものとする。また、表１（ｂ）における各転送規則の宛先ネットワーク・アドレスの９ビットの構造化データを構成する９ビットの記憶データ、９ビットのマスク情報を、単一領域検索用連想メモリ３６−２の転送規則に対応する連想メモリ・ワード４４−１−２〜４４−５−２のそれぞれ記憶データ、マスク情報として格納してあるものとする。また、図示しない制御回路により、連想メモリ１に対して開始信号とクロック信号が供給されているものとする。
連想メモリ１から検索結果として出力される一致信号５−１〜５−５は、エンコーダ４５１によりメモリ・アドレス信号４５１に符号化される。メモリ４５３は、表１（ｂ）の転送許可“１”または転送拒絶“０”を示す情報を、連想メモリ１が表１（ｂ）の転送規則の記憶データ、マスク情報が格納している連想メモリ・ワードと同一のアドレスのワードに記憶しているものとする。たとえば、連想メモリ１の連想メモリ・ワード４４−１−１、連想メモリ・ワード４４−１−２には、転送規則１に対応する情報が格納されているが、これに対応する転送許可“１”を示す情報がメモリ４５３のワード１に格納されている。同様にメモリ４５３のワード２には転送規則２の転送許可“１”を示す情報が、ワード３には転送規則３の転送拒絶“０”を示す情報が、ワード４には転送規則４の転送許可“１”を示す情報が、ワード５には転送規則５の転送拒絶“０”を示す情報が格納されているものとする。メモリ４５３はメモリ・アドレス信号４５２をリード・アドレスとして指定される格納データを、転送制御信号４２０としてデータ転送部４２１に出力する。データ転送部４２１は、転送制御信号４２０が転送を許可していれば変更済転送データ４１９を出力転送データ４０３として出力し、転送制御信号４２０が転送を拒絶していれば出力しない。
ここで、上述のように設定されているネットワーク機器４５０に対して、送出元ネットワーク・アドレス４０４として図３３のＰＣ４０１−１のネットワーク・アドレス（１．２．６）を持ち、宛先ネットワーク・アドレス４０６として図３３のＰＣ４０１−３のネットワーク・アドレス（２．３．５）を持つ入力転送データ４０２が入力された場合の動作について説明する。
連想メモリ１０１での検索動作終了時には、連想メモリ・ワード１０２−２が格納している（２．３．＊）に対応する一致線１０５−２が有効状態を出力する。これによりエンコーダ４１４はメモリ・アドレス４１５として“２”を出力し、メモリ４１６はネットワーク機器４００−６のネットワーク・アドレスをメモリ・データ信号４１７として出力する。転送先ネットワーク・アドレス変更部４１８により、入力転送データ４０２の転送先ネットワーク・アドレス４０５を、ネットワーク機器４００−６のネットワーク・アドレスに変更しデータ転送部４２１に変更済転送データ４１９として入力する。
ここで、連想メモリ１には、送出元ネットワーク・アドレス抽出部４０９から検索データ３−１として（１．２．６）が入力され、宛先ネットワーク・アドレス抽出部４１０から検索データ３−２として（２．３．５）が入力される。これらの検索データ３−１、３−２の値と、単一領域検索用連想メモリ３６−１、３６−２が格納している転送規則は、第一の実施の形態の連想メモリの動作説明のときと同様である。したがって一致信号５−３が有効状態を出力し、他の一致線５−１、５−２、５−４、および５−５は無効状態を出力することになる。これによりエンコーダ４５１はメモリ・アドレス４５２として“３”を出力し、メモリ４５３は転送規則３の転送拒絶を表す情報“０”を転送制御信号４２０としてデータ転送部４２１に出力する。したがって、データ転送部４２１は、変更済転送データ４１９を出力転送データ４０３として出力しないことになる。ネットワーク・アドレス（１．２．６）を持つＰＣ４０１−１から、ネットワーク・アドレス（２．３．５）を持つＰＣ４０１−３へのデータ転送は、転送規則３により拒絶されねばならないので、本発明のネットワーク機器４５０は転送可否判定演算を正しく行っていることがわかる。
本実施例ではエンコーダ４５１によりメモリ・アドレス信号４５２を生成したが、一致信号５−１〜５−５をメモリ４５３のワード線として直接入力する構成にすればエンコーダ４５１を削除できることはいうまでもない。
上述のように、本発明の連想メモリにより転送可否判定演算を実行するネットワーク機器では、転送可否判定演算を３クロックで実行できることになる。したがって、図３４に示した従来のネットワーク機器のようにＣＰＵのソフトウエア処理により数百クロックを要して転送可否判定演算を行う場合に比べて、コンピュータ・ネットワーク・システムのデータ転送速度を大幅に高速化することができる。
また、転送速度を向上させるために高価な高速ＣＰＵを搭載する必要がなくなり、ネットワーク機器全体としての価格を下げることが可能である。
また、転送規則の削除、追加、変更を行うには、単に本発明の連想メモリの格納データを修正するだけでよいため、通常のメモリ・アクセスに要する時間で実行可能である。したがって、本発明のネットワーク機器では、転送動作を中断せずに、転送規則の削除、追加、変更を行うことが可能である。
上述のように、本発明のネットワーク機器を用いることにより、安全性を確保し、かつ、高速にデータを転送できるネットワークシステムを構築することが可能である。
産業上の利用可能性
上述のように、本発明の連想メモリは、複数の検索領域から構成される入力データに対してマスク情報を考慮して検索を行ったときに、入力データに対応する記憶データがすべて一致するワードが複数個あった場合に、優先順位を考慮して検索領域ごとに構造化データを構成するマスク情報のマスク有効状態のビット数について、一致したワードの中で比較した結果、最少となるようなワードを識別する信号を、検索領域の個数に１を加えたクロック数以下で、高速に外部に出力できるという効果を有する。しかも、従来の連想メモリと比べて数％の回路規模の増加で実現できる。
また、本発明の連想メモリは、構造化データを格納する語の順序、格納する語の位置には制限がなく、通常のメモリ・アクセスに要する時間のみで構造化データの追加、削除、修正ができるという効果を有する。これにより、連想メモリの構造化データを管理するソフトウエア処理が簡単になるという効果もある。
また、本発明の連想メモリを組み込んだネットワーク機器は、従来に比較して数百倍以上高速に転送可否判定演算を行うことができる。すなわち、従来のネットワーク機器では２分木検索アルゴリズムなどを用いたソフトウエア処理により数百クロックをかけて転送可否判定演算を行っていたが、本発明の連想メモリは３クロックで転送可否判定演算を行えるからである。
また、本発明の連想メモリを組み込んだネットワーク機器では、転送動作を中断せずに、転送規則の削除、追加、変更を行うことができるという利点を有する。上述のように、本発明の連想メモリを用いれば、転送規則の削除、追加、変更は、通常のメモリ・アクセスに要する時間で実行できるからである。これにより、従来のソフトウエア処理で転送可否判定演算を行っていたネットワーク機器において転送規則の削除、追加、変更に伴う巨大な検索テーブルの作成が不要となり、ネットワークの通信不能時間が短縮されるとともに、運用管理が容易になるという利点も有する。さらに、新しい転送規則が迅速に反映されるため、ネットワーク全体の安全性が向上するという利点を有する。
また、本発明の連想メモリを組み込んだネットワーク機器では、転送可否判定を高速に実行可能なネットワーク機器のトータルコストを削減できるという利点を有する。上述のように転送可否判定を高速に演算可能な本発明の連想メモリを搭載することにより、高価な高速ＣＰＵシステムを搭載する必要がなくなるからである。
また、本発明のネットワーク機器を用いることにより、安全性を確保し、かつ、高速にデータを転送でき、さらに運用管理の容易なネットワーク・システムを構築することができるという利点を有する。
【図面の簡単な説明】
図１は、本発明の第一の実施の形態の連想メモリの一構成例を示すブロック図である。
図２は、本発明の第一の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図３は、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリの一構成例を示すブロック図である。
図４は、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリの連想メモリ・セルの一構成例を示す回路図である。
図５は、本発明の第一の実施の形態の連想メモリの動作を説明するフローチャートである。
図６は、本発明の第一の実施の形態の連想メモリのステップＳ１００での動作状態の一例を示す説明図である。
図７は、本発明の第一の実施の形態の連想メモリのステップＳ１０１での動作状態の一例を示す説明図である。
図８は、本発明の第一の実施の形態の連想メモリのステップＳ１０２での動作状態の一例を示す説明図である。
図９は、本発明の第一の実施の形態の連想メモリのステップＳ１０５での動作状態の一例を示す説明図である。
図１０は、本発明の第一の実施の形態の連想メモリにおける単一領域検索用連想メモリの第二の構成例を示すブロック図である。
図１１は、本発明の第二の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図１２は、本発明の第二の実施の形態の連想メモリにおける単一領域検索用連想メモリの一構成例を示すブロック図である。
図１３は、本発明の第三の実施の形態の連想メモリの一構成例を示すブロック図である。
図１４は、本発明の第三の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図１５は、本発明の第三の実施の形態の連想メモリにおける１次連想メモリの一構成例を示すブロック図である。
図１６は、本発明の第三の実施の形態の連想メモリにおける１次連想メモリの連想メモリ・セルの一構成例を示す回路図である。
図１７は、本発明の第三の実施の形態の連想メモリにおける２次連想メモリの一構成例を示すブロック図である。
図１８は、本発明の第三の実施の形態の連想メモリにおける２次連想メモリの連想メモリ・セルの一構成例を示す回路図である。
図１９は、本発明の第三の実施の形態の連想メモリの単一領域検索用連想メモリの動作例を示す説明図である。
図２０は、本発明の第三の実施の形態の連想メモリのステップＳ１００での動作状態の一例を示す説明図である。
図２１は、本発明の第三の実施の形態の連想メモリのステップＳ１０１での動作状態の一例を示す説明図である。
図２２は、本発明の第三の実施の形態の連想メモリのステップＳ１０２での動作状態の一例を示す説明図である。
図２３は、本発明の第三の実施の形態の連想メモリのステップＳ１０５での動作状態の一例を示す説明図である。
図２４は、本発明の第四の実施の形態の連想メモリの一構成例の詳細を示すブロック図である。
図２５は、本発明の第四の実施の形態の連想メモリにおける１次連想メモリの一構成例を示すブロック図である。
図２６は、本発明の第五の実施の形態の連想メモリの一構成例を示すブロック図である。
図２７は、本発明の連想メモリを転送可否判定に用いた本発明のネットワーク機器の一構成例を示すブロック図である。
図２８は、従来の連想メモリの一構成例を示すブロック図である。
図２９は、従来の連想メモリ・セルの一構成例を示す回路図である。
図３０は、従来の連想メモリの動作例を示す図である。
図３１は、従来の連想メモリの動作例を説明するタイミング・チャートである。
図３２は、従来の連想メモリで複数のネットワーク・アドレスの検索を行った場合の動作例を示す図である。
図３３は、従来のコンピュータ・ネットワークの構成の接続例を示す図である。
図３４は、従来の連想メモリを転送先ネットワーク・アドレス計算に用いた従来のネットワーク機器の一構成例を示すブロック図である。
【図１】
0003957637.tif 000004
【図２】
0003957637.tif 000005
【図３】
0003957637.tif 000006
【図４】
0003957637.tif 000007
【図５】
0003957637.tif 000008
【図６】
0003957637.tif 000009
【図７】
0003957637.tif 000010
【図８】
0003957637.tif 000011
【図９】
0003957637.tif 000012
【図１０】
0003957637.tif 000013
【図１１】
0003957637.tif 000014
【図１２】
0003957637.tif 000015
【図１３】
0003957637.tif 000016
【図１４】
0003957637.tif 000017
【図１５】
0003957637.tif 000018
【図１６】
0003957637.tif 000019
【図１７】
0003957637.tif 000020
【図１８】
0003957637.tif 000021
【図１９】
0003957637.tif 000022
【図２０】
0003957637.tif 000023
【図２１】
0003957637.tif 000024
【図２２】
0003957637.tif 000025
【図２３】
0003957637.tif 000026
【図２４】
0003957637.tif 000027
【図２５】
0003957637.tif 000028
【図２６】
0003957637.tif 000029
【図２７】
0003957637.tif 000030
【図２８】
0003957637.tif 000031
【図２９】
0003957637.tif 000032
【図３０】
0003957637.tif 000033
【図３１】
0003957637.tif 000034
【図３２】
0003957637.tif 000035
【図３３】
0003957637.tif 000036
【図３４】
0003957637.tif 000037