(57)【要約】【課題】エントリの順序管理を短い処理時間でかつ小さな回路規模で行う。【解決手段】ＲＡＭ３０１にＭＡＣアドレス、タイムスタンプなどを記憶し、ＲＡＭとアドレスが１対１で対応するＣＡＭ１０１にＩＰアドレスを記憶して、ＣＡＭが指定ＩＰアドレスに応じたアドレスを出力してＲＡＭのＭＡＣアドレスを読み出す場合に、ＣＡＭのアドレスを状態保持部２０２３に保持して、ＲＡＭ、ＣＡＭに新規情報を登録する場合に、状態保持部に既に登録されているＣＡＭのアドレスを一括して下位の状態保持部に後方シフトし、後方シフトにより空いた最上位の状態保持部にＣＡＭの新規アドレスを登録して、状態保持部に登録されているＣＡＭのアドレスに基づいて、ＲＡＭに記憶されているＭＡＣアドレスの学習順序を学習する。【選択図】        図１３
2004282421.tif 000002
【特許請求の範囲】
【請求項１】
複数のエントリ情報の各々を保持する複数のエントリ情報保持手段と、
新規エントリ情報を前記保持手段に登録する場合に、前記保持手段に既に登録されているエントリ情報を一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録する手段とを、
有するシフト機能付き連想記憶メモリ。
【請求項２】
前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較し、前記インデックス情報と同じエントリ情報がどの保持手段に登録されているかを検索する検索手段をさらに有することを特徴とする請求項１に記載のシフト機能付き連想記憶メモリ。
【請求項３】
前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その上位の保持手段に登録されているエントリ情報を部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録することを特徴とする請求項２に記載のシフト機能付き連想記憶メモリ。
【請求項４】
前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その下位の保持手段に登録されているエントリ情報を部分的に上位の保持手段に前方シフトすることを特徴とする請求項２又は３に記載のシフト機能付き連想記憶メモリ。
【請求項５】
前記部分的シフトを許可／停止する制御ラインが共通化されていることを特徴とする請求項３又は４に記載のシフト機能付き連想記憶メモリ。
【請求項６】
前記エントリ情報はそのエントリ情報が有効か無効を示す識別情報を含み、前記識別情報に基づいて物理位置として最も後段に位置するエントリ情報を外部に出力する手段をさらに有することを特徴とする請求項１から５のいずれか１つに記載のシフト機能付き連想記憶メモリ。
【請求項７】
前記検索手段は、前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較する複数の比較手段を有し、前記複数の比較手段の各比較結果を裏打ち回路を介して外部に検索結果として出力することを特徴とする請求項１から６のいずれか１つに記載のシフト機能付き連想記憶メモリ。
【請求項８】
登録時間を含む情報を記憶する第１のメモリと、
前記第１のメモリとアドレスが１対１で対応して各アドレスに前記第１のメモリの検索情報を記憶し、指定された検索情報に対応する前記第１のメモリのアドレスを出力する第２のメモリと、
前記第２のメモリの各アドレスを保持する複数の保持手段と、
前記第１、第２のメモリにそれぞれ新規情報、検索情報を登録する場合に、前記保持手段に既に登録されている前記第２のメモリのアドレスを一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規情報の検索情報が格納される前記第２のメモリのメモリアドレスを登録する手段と、
前記保持手段に登録されている前記第２のメモリのアドレスに基づいて、第１のメモリに記憶されている情報の順序を管理する手段とを、
有するアドレス検索装置。
【請求項９】
前記複数の保持手段に登録されている前記第２のメモリの各アドレスとインデックス情報を比較し、前記インデックス情報と同じ第２のメモリのアドレスがどの保持手段に登録されているかを検索する検索手段をさらに有し、前記第１、第２のメモリに登録されている情報を削除して新規情報を登録する場合に、前記検索手段により削除対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索して、その保持手段に登録されている第２のメモリのアドレスより上位の保持手段に登録されている第２のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に新規の第２のメモリのアドレスを登録することを特徴とする請求項８に記載のアドレス検索装置。
【請求項１０】
前記第１、第２のメモリに登録されている情報を削除する場合に、前記検索手段により削除対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第２のメモリのアドレスを削除し、その下位の保持手段に登録されている第２のメモリのアドレスを部分的に上位の保持手段に前方シフトすることを特徴とする請求項９に記載のアドレス検索装置。
【請求項１１】
前記第１、第２のメモリに登録されている情報を改めて学習する場合に、現在時刻から前記第１のメモリに記憶された登録時刻を引いた学習経過時間をクリアして、前記検索手段により学習対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第２のメモリのアドレスを削除し、その上位の保持手段に登録されている第２のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に学習対象の第２のメモリのアドレスを再登録することを特徴とする請求項９又は１０に記載のアドレス検索装置。
【請求項１２】
前記第１、第２のメモリに登録されていない情報を新規に学習する場合に学習経過時間をクリアして、前記検索手段により学習対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索して登録されていないときに、前記保持手段に登録されている最も古い第２のメモリのアドレスに基づいて前記第１、第２のメモリに前記情報を上書き登録するとともに、前記保持手段に登録されている最も古い第２のメモリのアドレスを削除してその上位の保持手段に登録されている第２のメモリのアドレスを下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に第２のメモリの同じアドレスを再登録することを特徴とする請求項１１に記載のアドレス検索装置。
【請求項１３】
実時間を示すタイマ値を学習時に前記第１のメモリに格納して、そのタイマ値と前記第１のメモリに格納されている前記時間情報との差分により前記学習経過時間を計算することを特徴とする請求項１１又は１２に記載のアドレス検索装置。
【請求項１４】
前記保持手段に登録されている最も古い第２のメモリのアドレスを周期的に読み出し、そのアドレスに対応する前記第１のメモリの前記学習経過時間を計算して一定時間経過している場合に前記第１、第２のメモリ、保持手段から当該情報を削除することを特徴とする請求項１３に記載のアドレス検索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ルータ、ブリッジなどに好適なシフト機能付き連想記憶メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）及びアドレス検索装置に関する。
【０００２】
【従来の技術】
一般に、ＴＣＰ／ＩＰにより最初に通信を行う場合、ＮＩＣにより通信相手に割り当てられている物理アドレスであるＭＡＣ（メディア・アクセス・コントロール）アドレスは不明である。そこで、ＡＲＰ（アドレス解析プロトコル）では、ＡＲＰフレームのターゲットＩＡ（インターネット・アドレス）に宛先ＩＡをセットしたリクエストをセグメント内の全ノードに対してブロードキャストすることにより、各ノードから返答されたＭＡＣアドレスを知ることができる。そして、このＭＡＣアドレスは送信元のノードにキャッシュとして登録される。
【０００３】
また、パケット（ＩＰデータグラム）を宛先に届けるためのルーティング・アルゴリズムとして、距離ベクトル・ルーティングやリンク状態ルーティングなどが知られ、このアルゴリズムはルータに実装されている。ルータはルーティングに必要なデータ（ＩＰアドレスとＭＡＣアドレス、ポート番号などとの対応関係）を集めたルーティング・テーブルを有し、このテーブルに基づいてルーティングを行う。
【０００４】
このようなルーティングを行う場合、ＩＰフォワーディングに用いるルーティングテーブルとＡＲＰテーブルの検索処理を高速化する必要があり、また、パケット・スループットの向上、ハードウェア処理の簡単化のために、エントリ数に拠らず一定時間内に検索処理を完了させる必要がある。しかしながら、テーブルをＲＡＭのみにより構成すると、エントリ数に応じて検索時間が増大する。また、２分岐検索や線形検索などの手法では、平均検索時間を短縮できるものの常に一定時間内に検索処理を完了させることができない上に制御が複雑になる。
【０００５】
そこで、上記問題を解決する従来例としては、例えば特許文献１〜４などには連想記憶メモリ（ＣＡＭ）とＲＡＭによりＡＲＰテーブルを構成することにより検索の高速化を図る方法が提案されている。ここで、ＲＡＭは読み出しアドレスが入力するとそのエリアのデータを出力するのに対し、ＣＡＭはコンテンツデータが入力するとそのエリアのアドレスを出力する。
【０００６】
【特許文献１】
特開平６−２６１０７８号公報
【特許文献２】
特開平１０−２２２５３５号公報
【特許文献３】
特開平１０−２８９５９１号公報
【特許文献４】
特開２０００−１５１７０９号公報
【０００７】
図６５は従来の方法を示し、ＣＡＭ１０１とＲＡＭ３０１のアドレスは固定的に対応している。また、ＣＡＭ１０１の各アドレスエリアにはＶＡＬＩＤビット及びＩＰアドレスが記憶され、ＲＡＭ３０１の各アドレスエリアにはエントリ  （ＭＡＣアドレス、送出ポート番号及びタイムスタンプ）が記憶される。そして、ＣＡＭ１０１のＩＰアドレスを検索して一致するエントリ位置に対応するＲＡＭ３０１のエントリを読み出すことで、ＩＰアドレスに対応するＭＡＣアドレスを知ることができる。また、ＲＡＭ３０１に記憶されたタイムスタンプ値と現在のタイマ値の差分により、個々のエントリの登録経過時間を計算することができる。
【０００８】
【発明が解決しようとする課題】
ところで、フルエントリ状態にあるルーティングテーブル（ＡＲＰテーブル）対して更に新規エントリ登録を行う場合は、登録されたエントリの中で最も古い登録データに上書き登録を行う必要があるが、これを実現するためには全登録エントリの順序管理が必要となる。また、登録時間がある一定以上経過したエントリを削除する処理（エージング処理）を小規模な回路構成で精度良く実現するためには、最も古い登録データを常に把握してそれを監視する手順が有効であるので、その意味でも順序管理が望ましい。
【０００９】
しかしながら、エントリの順序管理をＲＡＭ３０１により行うと、上記の上書き登録が連続して必要となった場合にスループットの低下要因となるという問題点がある。さらに、全エントリに対して登録経過時間を管理して、必要に応じてその中で最も経過時間が長いものを選択する手順は、大きな処理時間を必要とする。また、各エントリ対応に登録経過時間を示すタイマを設けると、回路規模が非常に大きくなる。
【００１０】
本発明は上記従来例の問題点に鑑み、エントリの順序管理を短い処理時間でかつ小さな回路規模で行うことができるシフト機能付き連想記憶メモリ及びアドレス検索装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明のシフト機能付き連想記憶メモリは、上記目的を達成するために、複数のエントリ情報の各々を保持する複数のエントリ情報保持手段と、
新規エントリ情報を前記保持手段に登録する場合に、前記保持手段に既に登録されているエントリ情報を一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録する手段と、を有するように構成した。
上記構成により、複数のエントリ情報の各々が時間順に保持されるので、エントリの順序を短い処理時間で管理することができる。
【００１２】
本発明のシフト機能付き連想記憶メモリはまた、前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較し、前記インデックス情報と同じエントリ情報がどの保持手段に登録されているかを検索する検索手段をさらに有するように構成した。
上記構成により、検索対象のエントリ情報をインデックス情報として入力することにより、エントリ情報を短い処理時間で検索することができる。
【００１３】
本発明のシフト機能付き連想記憶メモリはまた、前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その上位の保持手段に登録されているエントリ情報を部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録するように構成した。
上記構成により、既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、複数のエントリ情報の各々を時間順に保持することができる。
【００１４】
本発明のシフト機能付き連想記憶メモリはまた、前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その下位の保持手段に登録されているエントリ情報を部分的に上位の保持手段に前方シフトするように構成した。
上記構成により、既に登録されているエントリ情報を削除する場合に、複数のエントリ情報の各々を時間順に保持することができる。
【００１５】
本発明のシフト機能付き連想記憶メモリはまた、前記部分的シフトを許可／停止する制御ラインが共通化されているように構成した。
上記構成により、小さな回路規模で複数のエントリ情報の各々をシフトして時間順に保持することができる。
【００１６】
本発明のシフト機能付き連想記憶メモリはまた、前記エントリ情報はそのエントリ情報が有効か無効を示す識別情報を含み、前記識別情報に基づいて物理位置として最も後段に位置するエントリ情報を外部に出力する手段をさらに有するように構成した。
上記構成により、登録順が最も古いエントリ情報を簡単に管理することができる。
【００１７】
本発明のシフト機能付き連想記憶メモリはまた、前記検索手段が、前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較する複数の比較手段を有し、前記複数の比較手段の各比較結果を裏打ち回路を介して外部に検索結果として出力するように構成した。
【００１８】
上記構成により、検索結果を短時間で外部に取り出すことができる。
【００１９】
本発明のアドレス検索装置は、登録時間を含む情報を記憶する第１のメモリと、
前記第１のメモリとアドレスが１対１で対応して各アドレスに前記第１のメモリの検索情報を記憶し、指定された検索情報に対応する前記第１のメモリのアドレスを出力する第２のメモリと、
前記第２のメモリの各アドレスを保持する複数の保持手段と、
前記第１、第２のメモリにそれぞれ新規情報、検索情報を登録する場合に、前記保持手段に既に登録されている前記第２のメモリのアドレスを一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規情報の検索情報に対応する前記第２のメモリのメモリアドレスを登録する手段と、
前記保持手段に登録されている前記第２のメモリのアドレスに基づいて、第１のメモリに記憶されている情報の順序を管理する手段とを、
有するように構成した。
上記構成により、ルータ、ブリッジなどにおいて第１のメモリにＭＡＣアドレスなどを格納する場合に、ＭＡＣアドレスなどの登録順を短い処理時間で管理することができる。
【００２０】
本発明のアドレス検索装置はまた、前記複数の保持手段に登録されている前記第２のメモリの各アドレスとインデックス情報を比較し、前記インデックス情報と同じ第２のメモリのアドレスがどの保持手段に登録されているかを検索する検索手段をさらに有し、前記第１、第２のメモリに登録されている情報を削除して新規情報を登録する場合に、前記検索手段により削除対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第２のメモリのアドレスより上位の保持手段に登録されている第２のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に新規の第２のメモリのアドレスを登録するように構成した。
上記構成により、ルータ、ブリッジなどにおいて第１のメモリに登録されているＭＡＣアドレスなどを削除して新規ＭＡＣアドレスなどを登録する場合に、複数のＭＡＣアドレスの登録順を管理することができる。
【００２１】
本発明のアドレス検索装置はまた、前記第１、第２のメモリに登録されている情報を削除する場合に、前記検索手段により削除対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第２のメモリのアドレスを削除し、その下位の保持手段に登録されている第２のメモリのアドレスを部分的に上位の保持手段に前方シフトするように構成した。
上記構成により、ルータ、ブリッジなどにおいて第１のメモリに登録されているＭＡＣアドレスなどを削除する場合に、複数のＭＡＣアドレスの登録順を管理することができる。
【００２２】
本発明のアドレス検索装置はまた、前記第１、第２のメモリに登録されている情報を改めて学習する場合に、現在時刻から前記第１のメモリに登録された登録時刻を引いた学習経過時間をクリアして、前記検索手段により学習対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第２のメモリのアドレスを削除し、その上位の保持手段に登録されている第２のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に学習対象の第２のメモリのアドレスを再登録するように構成した。
【００２３】
上記構成により、ルータ、ブリッジなどにおいてＭＡＣアドレスの登録時間の学習順序を再構築することができる。
【００２４】
本発明のアドレス検索装置はまた、前記第１、第２のメモリに登録されていない情報を新規に学習する場合に学習経過時間をクリアして、前記検索手段により学習対象の第２のメモリのアドレスがどの保持手段に登録されているかを検索して登録されていないときに、前記保持手段に登録されている最も古い第２のメモリのアドレスに基づいて前記第１、第２のメモリに前記情報を上書き登録するとともに、前記保持手段に登録されている最も古い第２のメモリのアドレスを削除してその上位の保持手段に登録されている第２のメモリのアドレスを下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に第２のメモリの同じアドレスを再登録するように構成した。
【００２５】
上記構成により、ルータ、ブリッジなどにおいてＭＡＣアドレスの登録時間の再学習順序を再構築することができる。
【００２６】
本発明のアドレス検索装置はまた、実時間を示すタイマ値を前記第１のメモリに格納して、タイマ値と前記第１のメモリに格納されている前記時間情報差分により前記学習経過時間を計算するように構成した。
上記構成により、ルータ、ブリッジなどにおいてＭＡＣアドレスの登録時間を学習することができる。
【００２７】
本発明のアドレス検索装置はまた、前記保持手段に登録されている最も古い第２のメモリのアドレスを周期的に読み出し、そのアドレスに対応する前記第１のメモリの前記学習経過時間を計算して一定時間経過している場合に前記第１、第２のメモリ、保持手段から当該情報を削除するように構成した。
上記構成により、ルータ、ブリッジなどにおいて古いＭＡＣアドレスを削除することができる。
【００２８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は本発明に係るシフト機能付連想記憶メモリを有するアドレス検索装置の基本的な構成を説明するためのブロック図である。
【００２９】
学習テーブル１は、本装置が実装される宅内ルータＲに接続された宅内側ネットワークＮＷ１の端末ＰＣのＩＰアドレス：ＭＡＣアドレス対応の検索テーブル（ＡＲＰテーブル）として機能する。学習テーブル１は、高速検索・学習機能の実現のため、連想記憶メモリを用いた構成を採用している。
【００３０】
機能
・検索機能（ＩＰアドレスからＭＡＣアドレスを検索）
・学習機能（空き位置登録／最古登録位置への上書き登録／再学習）
・登録削除を伴う検索機能
・学習順序管理機能
・自立エージング機能（エントリの時限管理）
・アドレス情報（ＭＡＣ／ＩＰ）読出し機能
・アドレス指定（ＭＡＣ／ＩＰ）の登録削除機能
・全登録情報削除機能
構成
・連想記憶メモリ（ＣＡＭ）を用いた高速検索を実現する
・双方向シフト機能付き連想記憶メモリ（ｓＣＡＭ）を用いた学習順序制御
【００３１】
学習数（エントリ数）：
ルータモード学習数＝最大１２８登録（ＩＰ、ＭＡＣアドレス対応記憶）
最大学習数＝１〜１２８設定可能
既学習数の通知＝常時通知（０〜１２８）
処理速度：
検索処理、学習処理、端末移動判定付き検索処理、エージング処理、アドレス情報読出し、特定登録削除、全登録削除＝全て２クロック以内に処理完了
【００３２】
エージング処理：
エージングタイマ単位＝１００ｍｓ固定
最大エージングタイマ値＝０〜５０分
ルータモード標準値＝ｄｅｆａｕｌｔ：３０分（登録削除閾値）
時間精度＝誤差±３０秒未満
エージング処理の実施＝実施／非実施の設定が可能
エージングタイマの停止＝設定により停止可能
エージング処理数通知＝処理実施数の累計を通知する
【００３３】
以下、図１を用いてアドレス学習に関連する宅内ルータＲの機能仕様を示す。
【００３４】
アドレス学習機能
自分宛てのＡＲＰ要求パケットあるいはＡＲＰ応答パケット（アドレス解決パケット）を受信した際に、送信元ＩＰアドレスと送信元ＭＡＣアドレスを対応させて学習テーブル１に登録する。登録された各アドレス対応（＝エントリ）は、それぞれ最後に学習が行われてからの経過時間（＝学習経過時間）が管理され、学習経過時間の新しい順に順序管理が行われる。構成する学習テーブル１は「ＡＲＰテーブル」に相当し、学習テーブル１に登録されるアドレスは自分が属する宅内側ネットワークＮＷ１内のホスト／ルータのアドレスに限られる。宅内ルータＲは別途「ルーティングテーブル」を持たず、ディフォルトルートが網側ファースト・ホップ・ルータに固定されるため、当該ルータのアドレスは学習テーブル１にて管理しない。よって宅内側ネットワークＮＷ１の端末ＰＣのＩＰアドレス：ＭＡＣアドレス対応だけが学習テーブル１にて管理される。なお、ＡＲＰパケット以外で学習処理は行わない。
【００３５】
・未登録アドレスの新規学習
学習テーブル１に登録されていない宅内側ＩＰアドレス：ＭＡＣアドレス対応を新規に学習する場合、学習テーブル１に空きがあれば空き位置に新規登録を行う。空きがない場合は学習経過時間が最も長い既登録位置に上書き登録を行う。
・既登録アドレスの再学習
学習すべき宅内側ＩＰアドレス：ＭＡＣアドレス対応が既に学習テーブル１に登録されている場合は、既登録アドレスの学習経過時間を初期化する。
・最大登録数
最大１２８組のＩＰアドレス：ＭＡＣアドレス対応を記憶
【００３６】
アドレス検索機能
ユニキャストパケットのフォワーディングに際して、送信先ＩＰアドレスが宅内側ネットワークＮＷ１に属する場合は、学習テーブル１により送信先ＩＰアドレスに対応するＭＡＣアドレスを検索する。検索により所望のＭＡＣアドレスが見つかれば、フレームの送信先ＭＡＣアドレスを書き換えてフォワーディングされるが、検索不一致の場合はアドレス解決（ＡＲＰ要求）が行われる。また、送信先ＩＰアドレスが宅内側ネットワークＮＷ１に属さない場合は、自分が属する網側ネットワークＮＷ２宛てか自分が属さないネットワーク宛てであり、何れもデフォルトルートの網側ファースト・ホップ・ルータに転送されることになるため、送信先ＭＡＣアドレスに先のルータのＭＡＣアドレスを設定する。この際、学習テーブル１の参照は行わない。図２は宅内側ネットワークＮＷ１宛てユニキャストパケットのフォワーディング処理を示し、図３は網側ネットワークＮＷ２宛てユニキャストパケットのフォワーディング処理を示す。
【００３７】
学習・検索機能の機能分担
図４にアドレス学習・検索機能の機能分担を示す。ＩＰアドレス−ＭＡＣアドレス対応の学習は、ＡＲＰパケット処理に基づきソフトウェア（ＣＰＵ１０）から指示される。学習指示と共に指定されるアドレス情報は宅内側ネットワークＮＷ１に属するアドレスであり学習テーブル１に登録される。他方、網側ルータのアドレス情報は、ルータのＭＡＣアドレスのみがソフトウェアからレジスタ２に登録される。ヘッダ処理部３は宅内側ネットワークＮＷ１宛てのユニキャストパケットに対し、学習テーブル１の検索により送信先ＭＡＣアドレスの書き換えを行う。また網側ネットワークＮＷ２宛てのユニキャストパケットに対しては、レジスタ２に設定された網側ルータのＭＡＣアドレスを送信先ＭＡＣアドレスに設定する。
【００３８】
学習・検索機能の設定項目と状態通知
図５は学習・検索機能のハードウエア設定項目と状態通知を示す。
（１）最大学習アドレス数ＡＬＲＮＭＡＸ（ｗｉｄｔｈ：８ｂｉｔ  ｓｐｈｅｒｅ：１〜１２８）の設定パラメータであり、ＣＰＵ１０からハードウエア（ヘッダ処理部３など）に設定可能
（２）学習済みアドレス数ＡＬＲＮＣＲＴ（ｗｉｄｔｈ：８ｂｉｔ  ｓｐｈｅｒｅ：０〜１２８）がハードウエア側からＣＰＵ１０に常時通知される。
【００３９】
エージング機能
図６はアドレス学習とエージング処理の時間関係を示す。宅内機器の移動などに伴うアドレス情報の変更により、学習テーブル１に無駄な登録が残ることを防止するため、学習経過時間がエージング時間（３０分）を超えたアドレス情報は自動的に削除される。学習テーブル１に登録された各アドレス情報の学習時間管理と削除はハードウェアが自立して行い、何れかのアドレスを削除（エージング）した際は、ソフトウェアへ削除アドレス（ＩＰ：ＭＡＣ）が割り込みにて通知される。本エージング処理によれば、宅内側の学習アドレスは所定の学習時間が経過した時点で無条件に削除され、それ以降に当該アドレス情報が再び必要となった際（パケット受信時）に再度アドレス解決（ＡＲＰ処理）が実施される。
【００４０】
エージング機能の設定項目と状態通知
図７はエージング機能の設定項目と状態通知を示す。
（１）ＡＧＥＮと、エージングタイマイネーブルと、ｗｉｄｔｈ：１ｂｉｔ  （１：ＯＮ／０：ＯＦＦ）を含むフレームにより、ディスエーブルではエージング用内部タイマを停止する。
（２）ＡＧＥＭＡＸと、最大エージングタイマ値と、ｗｉｄｔｈ：１６ｂｉｔ  ｓｐｈｅｒｅ：０〜３００００を含むフレームにより（ただし、エージングタイマ単位（１００ｍｓ固定）×ＡＧＥＭＡＸが実時間）、
・エージング判定の閾値に用いる（学習時間＞ＡＧＥＭＡＸでエントリ削除）
・ＡＧＥＭＡＸ＝０設定は、閾値が無限大に設定されたことを意味する（エントリが削除されない）
（３）ＡＧＥＤ＿ＣＮＴと、エージング処理実施カウンタと、ｗｉｄｔｈ：１６ｂｉｔ  ｓｐｈｅｒｅ：０〜６５５３５を含むフレーム：エージング処理の実施回数をカウントするフリーランカウンタ（巡回カウント）。最大学習アドレス数ＡＬＲＮＭＡＸと同様、ＣＰＵ１０からハードウエアに設定可能。
【００４１】
網側デフォルトルート管理
デフォルトルートは固定的に網側ルータに設定されることから、網側へ送出するユニキャストフレームの送信先ＭＡＣアドレスには必ず網側ルータのＭＡＣアドレス（デフォルトＭＡＣアドレス）が設定される。このアドレスはソフトウェア側で保持・管理され、レジスタ設定としてヘッダ処理部３へ通知される。ソフトウェアは初期設定の段階で網側ルータのアドレス解決を図り、デフォルトアドレスを取得して先のレジスタを設定した後にハードウェアをパケット受信イネーブル状態とする。装置稼動中はソフトウェア側でエージング処理が行われ、網側ルータの装置変更によりＭＡＣアドレスが変更された場合はハード側の設定レジスタが書き換えられる。ソフト側のエージング処理に伴い設定レジスタの内容が無効となることはなく、ハードウェア稼動中は何らかのアドレスが常にレジスタに設定される。
【００４２】
学習テーブル１のコマンドインタフェース
図８は学習テーブル１のコマンドインタフェースの機能構成を示す。学習テーブル１はソフトウェア及び上り／下り用のヘッダ変換部から動作指示コマンドを受け取って動作する。３者の制御元はそれぞれ独立にコマンドを発行するため、コマンド実行順序の調停が必要となる。また学習テーブル１内部のエージング処理部１１が上記制御元に対して独立したエージング実行コマンドを発行するため、あわせて調停が必要となる。調停制御の優先順序は以下の通り。
上り／下り用のヘッダ変換部発行コマンド
＞ソフトウェア発行コマンド
＞エージング処理
【００４３】
動作コマンド
図９はルータモードの動作コマンドを示す。
・ＩＰアドレス検索（サーチ）コマンド
ａｔＩＰＳ（ＳＲＣＨ）：ＩＰ→ＭＡＣアドレス変換
・ＩＰアドレス学習コマンド
ａｔＩＰＬ（ＬＲＮ）：ＩＰ←→ＭＡＣアドレス学習
・ＩＰアドレスエージングコマンド
ａｔＩＰＡ：エージング処理（一定周期に実行）
・ＩＰアドレス消去コマンド
ａｔＤＬＴ（ＤＬＴ）：ＩＰアドレス指定で登録削除
・ＩＰアドレス読み出しコマンド
ａｔＲＥＡＤ（ＲＥＡＤ）：エントリ位置指定で登録情報読出し
・ＩＰアドレス全クリアコマンド
ａｔＡＣＬＲ（ＡＣＬＲ）：全登録削除
ただし、括弧内のコマンド名はＣＰＵインタフェースにおけるコマンド名。
【００４４】
上記の各コマンド（検索：ＳＲＣＨ、学習：ＬＲＮ、消去：ＤＬＴ、読み出し：ＲＥＡＤ、全クリア：ＡＣＬＲ、エージング）動作時の学習テーブル１の入出力情報を図１０に示す。
【００４５】
機能構成
図１１は学習テーブル１の機能及び構成を示し、図１２はその使用例を示す。学習テーブル１は図１１に示すように４つの機能ブロック｛コントロールブロック４、ＣＡＭブロック１００、本発明に係るシフト機能付連想記憶メモリブロック（以下、ｓＣＡＭブロック）２００、ＲＡＭブロック３００｝から構成される。アドレスの高速検索はＣＡＭブロック１００にて実現し、ＩＰアドレスを記憶する。また、ｓＣＡＭブロック２００はＣＡＭ１０１のアドレス番号を登録の新しさ順に並べて管理する。学習テーブル１の登録情報全般は、臨時書き込み読み出し、ＲＡＭブロック３００のメモリ（ＲＡＭ）３０１にて記憶する。
【００４６】
図１３は、ＣＡＭブロック１００と、ｓＣＡＭブロック２００とＲＡＭブロック３００の対応関係を示している。ＣＡＭブロック１００はＣＡＭ１０１を有し、ｓＣＡＭブロック２００はｓＣＡＭ２０１を有し、ＲＡＭブロック３００はＲＡＭ３０１を有する。ＣＡＭ１０１の各アドレスにはＭＳＢ側にＶＡＬＩＤビット、下位ビット側にＩＰアドレスが格納される。ｓＣＡＭ２０１の各アドレスにはＭＳＢ側にＶＡＬＩＤビット、下位ビット側にＣＡＭ１０１のアドレスが格納される。ＲＡＭ３０１の各アドレスにはＩＰアドレス及びＭＡＣアドレス、送出ポート番号及びタイムスタンプが格納される。本実施例における宅内ルータＲは、宅内側ネットワークＮＷ１に接続されたポートを１ポートに限定しているため、ＲＡＭ３０１の登録情報として省略されている。また、ＲＡＭ３０１に登録されたＩＰアドレスはＣＡＭ１０１に登録されたＩＰアドレスと同じものである。ＣＡＭ１０１とＲＡＭ３０１の各アドレスは１対１に対応し、また、ＣＡＭ１０１は格納情報（エントリ）が指示されるとアドレスを出力する。
【００４７】
＜ＣＡＭブロック＞
ＣＡＭブロック１００の機能：
ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）１０１は、連想記憶メモリと呼ばれる検索機能付きの機能メモリである。不図示のパケット処理部あるいはＣＰＵ１０からの指示に従ってパケットのアドレス情報を複数記憶し、必要に応じて以下のように登録情報の検索や消去などの動作が行える（図１４参照）。
【００４８】
１．検索機能（ｓｅａｒｃｈ）：
ＣＡＭ１０１に外部から与えられた比較情報であるインデクスと一致するエントリ（ＣＡＭ格納情報：ＭＳＢがＶＡＬＩＤビット、下位がＩＰアドレス）を検索する。一致するエントリがあれば、エントリ位置（ＣＡＭアドレス）が出力される。
２．空き位置書き込み機能（ｂｌａｎｋ−ｆｅｅｄ）：
空き位置に新規エントリを登録する。最もＣＡＭアドレスが若い空き位置に優先して書き込みが行われる。空きがない場合は何れのエントリにも書き込みが行われない。
３．位置指定書き込み機能（ｗｒｉｔｅ）：
ＣＡＭアドレス指定で新規エントリを登録する。ＶＡＬＩＤ＝０を書き込むことで特定エントリを無効にすることが可能。
４．ＶＡＬＩＤビット読出し機能（ｒｅａｄ）：
ＣＡＭアドレス指定で特定エントリのＶＡＬＩＤビットを読み出す。（ＶＡＬＩＤ＝”１”…有効エントリ／ＶＡＬＩＤ＝”０”…無効エントリ）
５．全クリア機能（ｃｌｅａｒ）：
全てのエントリ登録を無効にする。（全てのエントリレジスタを”０”に強制する）。
６．フルエントリ状態通知：
全てのエントリが登録状態の場合に、フルエントリ通知を行う。
【００４９】
図１５はＣＡＭ１０１の構成を示す説明図であり、ＣＡＭ１０１の各エントリは、登録情報を記憶するエントリレジスタと、エントリの有効／無効の判断に使用するＶＡＬＩＤビットより構成される。各エントリは物理配列順にアドレス（ＣＡＭアドレス）が与えられており、検索処理や空き位置書き込み処理の結果としてＣＡＭ１０１から該当するアドレス番号が出力される。この例では、
エントリ数Ｎ＝１２８
エントリ幅ｎ＝３２ビット
アドレス幅ｍ＝７ビット＝０〜１２７
である。
【００５０】
図１６はＣＡＭブロック１００の構成を示し、また、図１６におけるＣＡＭブロック１００の信号を以下に示す（図１７参照）。ここで、極性＝Ｐはハイアクティブを示し、極性＝Ｎはロウアクティブを示す。
ＣＩＤＸ  ［ｎ−１：０］：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝インデクス入力（検索用パターン）
ＣＥＮＴＩ  ［ｎ：０］：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝エントリ入力（ｂｌａｎｋ−ｆｅｅｄ／ｗｒｉｔｅ用  ）
ＣＡＤＤＩ  ［ｍ−１：０］：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝アドレス入力（ｒｅａｄ／ｗｒｉｔｅ用）
ＣＥＮＢＦＥＥＤ：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝ｂｌａｎｋ−ｆｅｅｄ機能イネーブル信号
ＣＥＮＷＲＴ：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝ｗｒｉｔｅ機能イネーブル信号
ＣＥＮＡＣＲ：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝ｃｌｅａｒ機能イネーブル信号
ＣＡＤＤＯ  ［ｍ−１：０］：Ｉ／Ｏ＝Ｏ、極性＝Ｐ、機能＝アドレス出力（ｓｅａｒｃｈ／ｂｌａｎｋ−ｆｅｅｄ用）
ＣＳＳＴ：Ｉ／Ｏ＝Ｏ、極性＝Ｐ、機能＝検索結果出力（ｓｅａｒｃｈ用）
ＣＶＡＩＬＤＯ：Ｉ／Ｏ＝Ｏ、極性＝Ｐ、機能＝特定エントリのＶＡＩＬＤビット出力
ＣＦＵＬＬＡＣＫＮ：Ｉ／Ｏ＝Ｏ、極性＝Ｎ、機能＝フルエントリ状態通知
【００５１】
ＣＡＭブロック１００は１／Ｎ選択を行うセレクタユニット（ｓｅｌｅｃｔｅｒ  ｕｎｉｔ  ）１０２と、エントリの数Ｎ（この例では最大１２８個）に対応して設けられるＣＡＭユニット（基本ユニット）１０３と、ＣＡＭユニット１０３内のＮ段の比較器１０３１の各比較結果の連結ＯＲ出力の高速化処理を行う裏打ち回路（ｓｈａｎｋ  ｕｎｉｔ）１０４と、１／Ｎ出力を行う３基のＨＯＲユニット１０５により構成される。
【００５２】
１／Ｎ選択回路（ｓｅｌｅｃｔｏｒ  ｕｎｉｔ）：
１／Ｎ選択回路１０２は、外部アドレス入力ＣＡＤＤＩ［ｍ−１：０］をＮ本のＳＩＮ信号にデコードしてＣＡＭユニット１０３に供給する。ＳＩＮ信号はｗｒｉｔｅ機能あるいはｒｅａｄ機能においてＮ基のＣＡＭユニット１０３のうち１基を選択する場合に機能する。１／Ｎ選択回路１０２のデコード論理を図１８に示す。
【００５３】
基本ユニット（ＣＡＭ  ｕｎｉｔ）１０３：
ＣＡＭユニット１０３の各々は、比較回路（ｃｏｍｐ．）１０３１と、アドレス記憶部（ｃｏｎｓｔ．）１０３２と、ｎ＋１ビットのエントリ分の状態保持部１０３３と、各種のゲートを有する。
比較回路（ｃｏｍｐ．）１０３１：
与えられるインデクス情報と、状態保持部１０３３のエントリ内容の一致判定を行う。
入力端子Ａ，Ｂ：比較データ入力
入力端子Ｅ，ＤＥ：比較処理イネーブル／ディスイネーブル（優先度ＤＥ＞Ｅ）
出力端子Ｑ：比較結果出力（一致…”１”、不一致…”０”）
【００５４】
アドレス記憶部（ｃｏｎｓｔ．）１０３２：
エントリ毎にＣＡＭアドレスを記憶する。
エントリ毎固定値（  ０００００００ｂ〜１１１１１１１１ｂ  ）
ＣＯＵＴ，  ＡＯＵＴ，  ＶＯＵＴ：１／Ｎ出力回路（ＨＯＲ  ｕｎｉｔ）１０５へ出力
ＳＩ（ｓｈａｎｋ−ｉｎ）：裏打ち回路（ｓｈａｎｋ  ｕｎｉｔ）１０４からの入力
【００５５】
１／Ｎ出力回路（ＨＯＲ  ｕｎｉｔ）：
１／Ｎ出力回路１０５は、Ｎ基のＣＡＭユニット１０３のうち０もしくは１基選択されたＣＡＭユニット１０３から出力されるＡＯＵＴ，  ＶＯＵＴ，  ＣＯＵＴ信号を論理和演算により外部に出力する。１／Ｎ出力回路１０５の入出力信号を以下に示す（図１９参照）。
2004282421.tif 000003
【００５６】
裏打ち回路（ｓｈａｎｋ  ｕｎｉｔ）１０４：
空き位置書き込み（ｂｌａｎｋ−ｆｅｅｄ）機能は、データ登録がないエントリのうち最も若いアドレス位置に新規登録が行われる。該当位置よりもアドレスが大きいユニットへ同時に登録が行われないように、Ｎ基のＣＡＭユニット１０３を縦断するＯＲ回路の連結接続が用いられる。学習テーブルのエントリ数が多い場合、単純連結回路ではゲートＮ段分の伝播遅延が問題となるため、対策として図２０に示す階層化裏打ち回路（ｓｈａｎｋ  ｕｎｉｔ）１０４を用いて伝播遅延の低減を図る。
【００５７】
＜コマンド制御＞
ＣＡＭブロック１００のコマンド動作と入出力情報を以下に示す。
（１）コマンド動作＝ｓｅａｒｃｈ：
与えられたインデクスと一致するエントリを検索する。そのタイミングを図２１に示す。
2004282421.tif 000004
【００５８】
（２）コマンド動作＝ｂｌａｎｋ−ｆｅｅｄ：
ＣＡＭの空き位置に新規エントリを登録する。そのタイミングを図２２に示す。
入力情報：ＣＥＮＴＩ［ｎ：０］：新規登録エントリ情報（ＶＡＬＩＤビット＝”１”を含む）
出力情報：ＣＡＤＤＯ［ｍ−１：０］：登録したエントリのＣＡＭアドレス出力
端子条件：ＣＥＮＢＦＥＥＤ＝”１”、ＣＥＮＷＲＴ＝”０”  、ＣＥＮＡＣＲ＝”０”
備考：ＣＡＭに空きがない場合、新規エントリの登録は行われない
処理速度：１ＣＬＫ処理（ただし直前（＝１ＣＬＫ前）でのエントリ更新は禁止）
【００５９】
（３）コマンド動作＝ｗｒｉｔｅ：
ＣＡＭアドレス指定で新規エントリを登録する（削除する）。そのタイミングを図２３に示す。
2004282421.tif 000005
【００６０】
（４）コマンド動作＝ｒｅａｄ：
ＣＡＭアドレス指定で特定エントリのＶＡＬＩＤビットを読み出す。そのタイミングを図２４に示す。
入力情報：ＣＡＤＤＩ［ｍ−１：０］：読出し位置アドレス
出力情報：ＣＶＡＬＩＤＯ：ＶＡＬＩＤビット読出し結果
端子条件：ＣＥＮＢＦＥＥＤ＝”０”、ＣＥＮＷＲＴ＝”０”  、ＣＥＮＡＣＲ＝”０”
処理速度：１ＣＬＫ処理
【００６１】
（５）コマンド動作＝ｃｌｅａｒ：
全てのエントリ登録を抹消する（全エントリレジスタを”０”に強制する）。そのタイミングを図２５に示す。
入力情報：ＣＥＮＴＩ［ｎ：０］  ＝  ａｌｌ”０”    （ＶＡＬＩＤビットを含む全エントリにａｌｌ”０”を書き込む）
出力情報：なし
端子条件：ＣＥＮＢＦＥＥＤ＝”０”、ＣＥＮＷＲＴ＝”０”、ＣＥＮＡＣＲ＝”１”
処理速度：１ＣＬＫ処理
【００６２】
（６）状態通知：フル状態通知：ＣＦＵＬＬＡＣＫＮ：
ＣＡＭに空きがあれば  ”１”  なければ  ”０”  を常時出力
有効期間：クロック同期のサンプリングは常に可能であるが、エントリ更新直後のサンプリングは基本的に禁止。
【００６３】
＜ｓＣＡＭブロック＞
ｓＣＡＭブロック２００の機能：
ｓＣＡＭ２０１はＣＡＭ１０１と同様にロジックアレイで構成された機能メモリである。各登録情報はｓＣＡＭ２０１のエントリ位置に対して部分的に、あるいは全体的にシフトさせることができ、常に有効な登録情報が前詰（エントリの物理配置に対して片側詰め）に配置されるように制御が行われる。ｓＣＡＭ２０１はＣＡＭ１０１のアドレス（ＣＡＭ出力）を登録情報として管理し、学習やエージング処理に応じてエントリ順序を並び替えることで、ＣＡＭ１０１の記憶情報の順序を管理する。
【００６４】
以下にｓＣＡＭブロック２００の各種の機能を示す（図２６参照）
１．順列データ記憶機能：
有効エントリを前詰（エントリの物理配置に対して片側詰め）に配置されるように制御を行うことができる（ｌｏｗｅｒ  ｓｈｉｆｔ／ｕｐｐｅｒ  ｓｈｉｆｔ）。
２．前方シフト機能（ｕｐｐｅｒ  ｓｈｉｆｔ）：
登録情報を部分的にあるいは全体的に前方へシフトさせる。特定のエントリ情報をｓＣＡＭ２０１から削除する際に用いる。削除するエントリ位置を特定するため、ＣＡＭ１０１と同様の検索機能を有する。
３．後方シフト機能（ｌｏｗｅｒ  ｓｈｉｆｔ）：
登録情報を全体的に後方へシフトさせる。特定のエントリ情報をｓＣＡＭ２０１の最前列へ登録する際に用いる。
４．全クリア機能（ｃｌｅａｒ）：
全てのエントリ登録を無効にする。（全てのエントリレジスタを”０”に強制する。）
５．最後尾エントリ出力機能：
有効エントリのうち最後尾のエントリ情報を常に出力する。最後尾のエントリは学習時間（学習以降の経過時間）が最も長い登録情報に相当し、エージング処理や上書き学習処理に利用される
【００６５】
ｓＣＡＭデータ構成：
ｓＣＡＭ２０１の各エントリは、図２７に示すように登録情報を記憶するエントリレジスタと、エントリの有効／無効の判断に使用するＶＡＬＩＤビットにより構成される。有効エントリは必ず前詰めに格納されて順序制御が行われる。ｓＣＡＭ２０１の各エントリは明示的な物理アドレスを持たず、順序変更や登録抹消の際のエントリ選択はＣＡＭ１０１と同様の検索機能により実現される。
2004282421.tif 000006
【００６６】
図２８はｓＣＡＭブロック２００の構成を概略的に示し、図２９は図２８のｓＣＡＭユニットを詳しく示し、図３０は図２９の比較回路とエントリ出力回路をさらに詳しく示している。ｓＣＡＭブロック２００の入出力信号を以下に示す。
ＰＩＤＸ  ［ｍ−１：０］：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝インデクス入力（検索用パターン）
ＰＥＮＴＩ  ［ｍ：０］：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝エントリ入力（最前列エントリ登録）
ＰＥＮＵＳＦＴ：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝前方シフト機能イネーブル信号
ＰＥＮＬＳＦＴ：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝後方シフト機能イネーブル信号
ＰＥＮＡＣＲ：Ｉ／Ｏ＝Ｉ、極性＝Ｐ、機能＝全クリア機能イネーブル信号
ＰＥＮＴＯ  ［ｍ−１：０］：Ｉ／Ｏ＝Ｏ、極性＝Ｐ、機能＝エントリ出力（最後尾エントリ出力）
ＰＳＳＴ：Ｉ／Ｏ＝Ｏ、極性＝Ｐ、機能＝検索結果出力
【００６７】
ｓＣＡＭ回路構成：
ｓＣＡＭブロック２００は、エントリの数Ｎに対応して設けられるｓＣＡＭユニット（基本ユニット）２０２［１］〜２０２［Ｎ］と、後述するように連結ＯＲ出力の高速化処理を行う裏打ち回路（ｓｈａｎｋ  ｕｎｉｔ）２０３と、１／Ｎ出力を行う１／Ｎ出力回路（ＨＯＲユニット）２０４により構成されている。
【００６８】
基本ユニット（ｓＣＡＭユニット）２０２：
ｓＣＡＭユニット２０２［１］〜２０２［Ｎ］の各々は、図２９、図３０に詳しく示すように比較部（ｃｏｍｐ．）２０２１と、エントリ出力部（ｅｏｕｔ．）２０２２と、ｍ＋１ビットのエントリデータＰＥＮＴＩ［ｍ：０］の各ビット状態をそれぞれ保持する状態保持部２０２３［ｍ］〜［０］と、ゲートＧ１〜Ｇ３により構成される。状態保持部２０２３［ｍ］〜［０］の各々は、ＡＮＤゲートＧ４〜Ｇ６と、ＯＲゲートＧ７とＤラッチＬにより構成され、それぞれＶＡＬＩＤビットＥＮＴＭ、エントリＥＮＴＭ［ｍ−１：０］を保持して出力する。
【００６９】
そして、ＶＡＬＩＤビットＥＮＴＭは、イネーブル信号Ｅとして自己のユニットの比較部２０２１とエントリ出力部２０２２に印加され、エントリＥＮＴＭ［ｍ−１：０］は自己のユニットの比較部２０２１とエントリ出力部２０２２の各入力端子Ａに印加される。さらに、ｍ＋１ビットのエントリＥＮＴＭ［ｍ：０］はそれぞれ上の段の当該ＡＮＤゲートＧ６の一端と、自己の段の当該ＡＮＤゲートＧ５の一端と、下の段の当該ＡＮＤゲートＧ４の一端に印加される。このとき、最上段のＡＮＤゲートＧ４の各一端には、外部からのインデックス情報ＰＥＮＴＩ［ｍ：０］が印加され、最終段のラッチＬの出力は使用されず、開放状態となる。
【００７０】
ＯＲゲートＧ１には自己の段の比較部２０２１のＱ出力信号と、上の段のＯＲゲートＧ１の出力信号と、裏打ち回路２０３の出力信号ＳＩが印加され、ＯＲゲートＧ１の出力信号は、自己の段のＡＮＤゲートＧ２の一端と、下の段のＯＲゲートＧ１に印加される。ＡＮＤゲートＧ２には自己の段のＯＲゲートＧ１の出力信号と前方シフトイネーブル信号ＰＥＮＵＳＦＴが印加され、ＡＮＤゲートＧ２の出力信号は、自己の段のＮＯＲゲートＧ３、ＡＮＤゲートＧ６の他端に印加される。したがって、ＡＮＤゲートＧ２の出力＝１の場合に、下の段からのエントリＥＮＴＭ［ｍ：０］がＡＮＤゲートＧ６、ＯＲゲートＧ７を介してラッチＬにラッチされる（前方シフト）。
【００７１】
また、後方シフトイネーブル信号ＰＥＮＬＳＦＴは、自己の段のＮＯＲゲートＧ３とＡＮＤゲートＧ４の他端に印加される。したがって、ＰＥＮＬＳＦＴ＝１の場合に、上の段からのエントリＥＮＴＭ、ＥＮＴ［ｍ−１：０］がＡＮＤゲートＧ４、ＯＲゲートＧ７を介してラッチＬにラッチされる（後方シフト）。このとき、最上段の各ラッチＬは外部からのインデックス情報ＰＥＮＴＩ［ｍ：０］をラッチすることができる。
【００７２】
ＮＯＲゲートＧ３には、上記のＡＮＤゲートＧ２の出力信号及び後方シフトイネーブル信号ＰＥＮＬＳＦＴの他に、全クリアイネーブル信号ＰＥＮＡＣＲが印加され、ＮＯＲゲートＧ３の出力信号は、自己の段のＡＮＤゲートＧ５に印加される。したがって、前方及び公報シフト機能が共にディセーブル（ＰＥＮＵＳＦＴ＝ＰＥＮＬＳＦＴ＝０）であって全クリアイネーブル信号が印加（ＰＥＮＡＣＲ＝１）された場合、各エントリレジスタのＡＮＤゲートＧ４、Ｇ５、Ｇ６の出力が同時にＬとなり、全てのエントリレジスタが０クリアされる。
【００７３】
比較回路２０２１：
図３０に詳しく示すように、ＭＳＢ側の状態保持部２０２３［ｍ］の出力であるＶＡＬＩＤビットが１の場合に、外部からのインデクス情報ＰＩＤＸ［ｍ−１：０］とエントリ内容（状態保持部２０２３［ｍ−１：０］の出力ＥＮＴ［ｍ−１：０］）の一致判定を各ＥＸ−ＮＯＲゲートにより行い、次いでＡＮＤゲートによりｍビットの全てが一致の場合に比較結果ＳＯ＝１、不一致の場合にＳＯ＝０を裏打ち回路２０３とＯＲゲートＧ１に出力する。ＯＲゲートＧ１の出力信号は下の段のＯＲゲートＧ１に順次印加され、最終段のＯＲゲートＧ１からは、いずれかのエントリがインデクス情報と一致したことを示す検索結果ＰＳＳＴが出力される。
【００７４】
エントリ出力部２０２２：
図３０に詳しく示すように、自段のＶＡＬＩＤビットが１であって後方側に隣接するＶＡＬＩＤビットが０の場合に（すなわちｓＣＡＭ２０１は片側詰めでエントリが登録されるために自エントリが最後尾エントリの場合に）、エントリ内容（状態保持部２０２３［ｍ−１：０］の出力ＥＮＴ［ｍ−１：０］）をＥＱ［ｍ−１：０］信号として１／Ｎ出力回路（ＨＯＲユニット）２０４に出力する。
【００７５】
１／Ｎ出力回路（ＨＯＲユニット）２０４：
各段のＥＱ信号を論理和演算することで、最後尾エントリ情報をＰＥＮＴＯ信号として外部に出力する。ｓＣＡＭ２０１に有効なエントリ登録が全くない場合は、ＰＥＮＴＯ［ｍ−１：０］  ＝  ａｌｌ”０”  が出力される。
2004282421.tif 000007
【００７６】
裏打ち回路（ｓｈａｎｋ  ｕｎｉｔ）２０３：
ここで、前方シフト機能（ｕｐｐｅｒ  ｓｈｉｆｔ）では、指定情報が格納されたエントリよりも後方のエントリを一律前方へシフトさせる。そこで、ｓＣＡＭ２０１の全エントリレジスタに対して上記シフト動作の実施／非実施を決定するために、図３１に示すようにＯＲゲートＧ１の連結接続（”ｓｈｉｆｔ  ｅｎａｂｌｅ  ｌｉｎｅ”）が用い  られる。すなわち、学習テーブルのエントリ数が多い場合、ＯＲゲートＧ１の単純連結回路ではゲートＮ段分の伝播遅延が問題となるため、ＣＡＭユニット１００と同様に図３１に示す構成のｓｈａｎｋ  ｕｎｉｔを用いて伝播遅延の低減を図る。
【００７７】
コマンド制御：
ｓＣＡＭブロック２００のコマンド動作と入出力情報を以下に示す。
（１）機能動作＝ｕｐｐｅｒ  ｓｈｉｆｔ：
前方シフト機能、既存エントリを抹消する。
入力情報ＰＩＤＸ［ｍ−１：０］：抹消するエントリ情報＝検索インデクス
出力情報ＰＳＳＴ：検索一致するエントリがあれば  ”１”  なければ  ”０”（確認用）
端子条件：ＰＥＮＵＳＦＴ＝”１”、ＰＥＮＬＳＦＴ＝”０”、ＰＥＮＡＣＲ＝”０”
内部動作：図３２（ａ）、（ｂ）に示すようにｓＣＡＭ２０１のエントリ検索を行い、一致するエントリよりも後方のエントリ情報を一律前方にシフトさせることで、所望のエントリ登録を抹消する（最後列のエントリを抹消する場合も本機能を使用する）。検索処理にて一致するエントリが存在しない場合、何れのエントリも消去されず、ｓＣＡＭ２０１の登録情報は変化しない。
処理速度：２ＣＬＫ処理
【００７８】
（２）機能動作＝ｌｏｗｅｒ  ｓｈｉｆｔ：
後方シフト機能、順序の最前列へ新規エントリを登録する。
入力情報ＰＥＮＴＩ［ｍ：０］：最前列へ登録するエントリ情報（ＶＡＬＩＤ＝”１”を含む）
出力情報なし
端子条件：ＰＥＮＵＳＦＴ＝”０”、ＰＥＮＬＳＦＴ＝”１”、ＰＥＮＡＣＲ＝”０”
内部動作：図３３に示すように全登録情報を一律後方へシフトさせる。ｓＣＡＭ２０１がフルエントリの場合は最後列のエントリが抹消されることになるが、実制御においてフルエントリ状態からのｌｏｗｅｒ  ｓｈｉｆｔは行われない。（回路規模低減の為、部分的なシフトは行わない。既登録情報を最前列に移動させる場合は、いったんｕｐｐｅｒ  ｓｈｉｆｔにて登録を削除した後、ｌｏｗｅｒ  ｓｈｉｆｔにて再度登録を行う。）
処理速度：１ＣＬＫ処理
【００７９】
（３）機能動作＝ｃｌｅａｒ：
全てのエントリ登録を抹消する（全エントリレジスタを”０”に強制する）
入力情報なし
出力情報なし
端子条件：ＰＥＮＵＳＦＴ＝”０”、ＰＥＮＬＳＦＴ＝”０”、ＰＥＮＡＣＲ＝”１”
処理速度：１ＣＬＫ処理（図３４参照）
（４）最後尾エントリ出力ＰＥＮＴＯ［ｍ：０］：
ｓＣＡＭに登録された有効エントリ（ＶＡＬＩＤ＝”１”）のうち、最後尾に位置するエントリ内容を常に出力する。
【００８０】
＜ＲＡＭブロック＞
ＲＡＭ３０１の構成及び記憶情報を以下に示す。ＣＡＭ１０１のエントリ情報は読出しができないため、全ての情報はＲＡＭ３０１に記憶する（ＣＡＭ１０１のエントリ情報と重複する）。
基本仕様
ｔｙｐｅ：同期型シングルポートＲＡＭ
ｏｒｇａｎｉｚａｔｉｏｎ：ｎ  （＝４８）  ｂｉｔ  ×  ２Ｎ  （＝２５６）  ｗｏｒｄ
外部端子ｐｏｒｔ
ＲＡＤＤ  ［ｍ：０］：Ｉ／Ｏ＝Ｉ，Ｐ／Ｎ＝Ｐ，ｕｓａｇｅ＝アドレス入力（Ｒ／Ｗ共通）
ＲＲＤＴ  ［ｎ−１：０］：Ｉ／Ｏ＝Ｏ，Ｐ／Ｎ＝Ｐ，ｕｓａｇｅ＝読出しデータ
ＲＷＤＴ  ［ｎ−１：０］：Ｉ／Ｏ＝Ｉ，Ｐ／Ｎ＝Ｐ，ｕｓａｇｅ＝書込みデータ
ＲＷＥＮ：ｉ／ｏ＝ｉ，Ｐ／Ｎ＝Ｎ，ｕｓａｇｅ＝  書込みイネーブル
記憶情報
エージング値：１６  ｂｉｔ，ｗｏｒｄ−０  ［４７：３２］
ＩＰアドレス：３２  ｂｉｔ，ｗｏｒｄ−０  ［３１：０］
ＭＡＣアドレス：４８  ｂｉｔ，ｗｏｒｄ−１  ［４７：０］
【００８１】
図３５はＣＡＭブロック１００とＲＡＭブロック３００の記憶情報を示し、図３６はＣＡＭ１０１とＲＡＭ３０１のアドレス対応を示す。
【００８２】
＜部分ｌｏｗｅｒ  ｓｈｉｆｔ機能付きｓＣＡＭの構成＞
次に部分ｌｏｗｅｒ  ｓｈｉｆｔ機能付きｓＣＡＭについて説明する。図３７は図２９のｓＣＡＭブロックの変形例として、部分ｌｏｗｅｒ  ｓｈｉｆｔ機能付きｓＣＡＭの構成を示し、ゲートＧ８が追加されている。ゲートＧ８には後方シフトイネーブル信号ＰＥＮＬＳＦＴと、上の段のＯＲゲートＧ１の出力（最上段の場合にはＧＮＤ）の反転信号が印加され、ゲートＧ８の出力信号は自己の段のＮＯＲゲートＧ３、ＡＮＤゲートＧ４の他端に印加される。したがって、ＰＥＮＬＳＦＴ＝１であってより上位の比較回路１０２１の比較結果が全て不一致の場合に、上の段からのエントリＥＮＴＭ［ｍ−１：０］がＡＮＤゲートＧ４、ＯＲゲートＧ７を介してラッチＬにラッチされる  （後方シフト）。
【００８３】
図３８〜図４１はその動作を示す。
（１）機能動作＝ｌｏｗｅｒ  ｓｈｉｆｔ
（ｉ）  既存エントリを順序の最前列へ移動する
（ｉｉ）  順序の最前列へ新規エントリを登録する
入力情報ＰＥＮＴＩ［ｍ：０］：最前列へ移動／登録するエントリ情報（ＶＡＬＩＤ＝”１”を  含む）
ＰＩＤＸ［ｍ−１：０］：最前列へ移動／登録するエントリ情報＝検索インデクス
出力情報ＰＳＳＴ：検索一致するエントリがあれば  ”１”  なければ  ”０”（確認用）
端子条件：ＰＥＮＵＳＦＴ＝”０”、ＰＥＮＬＳＦＴ＝”１”、ＰＥＮＡＣＲ＝”０”
内部動作：図３８、図３９に示すようにｓＣＡＭのエントリ検索を行い、一致するエントリよりも前方のエントリ情報を一律後方にシフトさせる。同時に最前列へ検索に使用したインデクス情報を登録する。検索処理にて一致するエントリが存在する場合、所望のエントリ情報が最前列へ移動する（図３８（ａ））。検索処理にて一致するエントリが存在しない場合、全てのエントリ情報が後方へシフトして最前列に新規エントリが登録される（図３８（ｂ））。ｓＣＡＭがフルエントリの場合は最後列のエントリが抹消される（図３８（ｃ））。
処理速度：２ＣＬＫ処理（図３９参照）
【００８４】
（２）機能動作＝ｕｐｐｅｒ  ｓｈｉｆｔ：
既存エントリを抹消する。
入力情報ＰＩＤＸ［ｍ−１：０］：抹消するエントリ情報＝検索インデクス
出力情報ＰＳＳＴ：検索一致するエントリがあれば  ”１”  なければ  ”０”（確認用）
端子条件：ＰＥＮＵＳＦＴ＝”１”、ＰＥＮＬＳＦＴ＝”０”、ＰＥＮＡＣＲ＝”０”
内部動作：図４０、図４１に示すようにｓＣＡＭのエントリ検索を行い、一致するエントリよりも後方のエントリ情報を一律前方にシフトさせることで、所望のエントリ登録を抹消する（最後列のエントリを抹消する場合も本機能を使用する）。検索処理にて一致するエントリが存在しない場合、何れのエントリも消去されず、ｓＣＡＭの内部状態は変化しない。
処理速度：２ＣＬＫ処理（図４１参照）
【００８５】
（３）機能動作＝ｃｌｅａｒ：
全てのエントリ登録を抹消する（全エントリレジスタを”０”に強制する）
入力情報なし
出力情報なし
端子条件：ＰＥＮＵＳＦＴ＝”０”、ＰＥＮＬＳＦＴ＝”０”、ＰＥＮＡＣＲ＝”１”
処理速度：１ＣＬＫ処理（図３４参照）
（４）状態通知＝最後尾エントリ出力ＰＥＮＴＯ［ｍ：０］：
ｓＣＡＭに登録された有効エントリ（ＶＡＬＩＤ＝”１”）のうち、最後尾に位置するエントリ内容を常に出力する。
有効期間：クロック同期のサンプリングは常に可能であるが、ｕｐｐｅｒ／ｌｏｗｅｒ  ｓｈｉｆｔ直後のサンプリングは基本的に禁止
【００８６】
＜コマンド別タイミングチャート＞
ＩＰアドレス検索（ルータ検索）コマンドＩＰＳ：
図４２に示すように、ＩＰアドレス検索コマンドＩＰＳが発行され、検索インデクスのＩＰアドレスが入力されたとき、一致ＣＩＤＥＸにＩＰアドレスを入力することでＣＡＭ１０１においてＳＥＡＲＣＨを行う。このとき、一致するアドレスがなければ何も出力されず終了する。一致するアドレスがあればＲＡＭ３０１にＲＥＡＤを行うために、そのアドレスの最後尾に”１”  を付加してＲＡＤＤに入力し、読み出しＲＲＤＴを内部レジスタに転送する。この値を検索結果のＭＡＣアドレスとして出力する。ソフトからのコマンドの場合はさらに学習経過時間を算出して結果をＡＧＴＩＭに出力する。
【００８７】
アドレス学習コマンドＩＰＬ：
図４３に示すように、ＩＰ／ＭＡＣアドレス学習コマンドＩＰＬが発行され、学習対象としてのＩＰアドレス及びＭＡＣアドレスが入力されたとき、ＣＩＤＥＸにＩＰアドレスを入力してＣＡＭ１０１に対してＳＥＡＲＣＨを行う。このとき、一致するアドレスがあればＣＡＤＤＯにそのアドレスが出力され、内部レジスタにＣＡＤＤＯの値が転送される。ＯＰＣＯＵＮＴ＝２のときにＰＩＮＤＸに先の内部レジスタの値を入力し、ＵＰＰＥＲ  ＳＨＩＦＴを行う。ＵＰＰＥＲ  ＳＨＩＦＴの終了後、ＰＥＮＴＩにＰＥＮＴＩにＲＥＧ＿ＣＡＤＤの最上位ビットに”１”を付加した値を入力してＬＯＷＥＲ  ＳＨＩＦＴを行う。本処理を経て、学習テーブル１は、ＩＰアドレスとＭＡＣアドレスの組み合わせを新規に学習することができる。
【００８８】
ＣＡＭ１０１の検索時に一致するアドレスがなく、また空きがある（ＣＦＵＬＬＡＣＫ＝”０”）場合、ＯＰＣＯＵＮＴ＝２においてＣＥＮＢＦＥＥＤ＝”１”及び、ＣＥＮＴＩ＝”１”＆ＭＡＣ＿ＩＰ［７９：３２］が入力され、ＣＡＤＤＯに空きアドレスが出力され、内部レジスタにＣＡＤＤＯの値が転送される。ｓＣＡＭ２０１ではＯＰＣＯＵＮＴ＝４のときに内部レジスタの値がＰＥＮＴＩに入力されて、ＬＯＷＥＲ  ＳＨＩＦＴを行う。本処理を経て、学習テーブル１は、ＩＰアドレスとＭＡＣアドレスの組み合わせを新規に学習することができる。
【００８９】
ＣＡＭ１０１の検索時に一致するアドレスがなく、また空きがない（ＦＬＬＲＮ＝”１”）場合、ＯＰＣＯＵＮＴ＝２においてＣＥＮＷＲＴ＝”１”及び、ＣＥＮＴＩ＝”１”＆ＭＡＣ＿ＩＰ［７９：３２］、ＣＡＤＤＩ＝ＰＥＮＴＯが入力される。ｓＣＡＭ２０１及びＲＡＭ３０１では検索一致の場合と同様の動作を行う。そして、ＯＰＣＯＵＮＴ＝２のときに、ＲＡＤＤにＡ１が、ＲＷＤＴにＤ１が（Ａ１，Ｄ１，Ａ２，Ｄ２についてはＰ１８参照）入力され、次クロック時にＲＡＤＤにＡ２が、ＲＷＤＴにＤ２が入力されることでＲＡＭ３０１にデータが書込まれる。
【００９０】
ＩＰアドレスエージング（ルータエージング）コマンドＩＰＡ：
図４４に示すように、動作コマンドとしてＩＰアドレスエージングコマンドＩＰＡを受信した場合、ＯＰＣＯＵＮＴ＝”２”のとき、ＲＡＭ３０１にＲＥＡＤを行うために、ＰＥＮＴＯの値の最後尾に”０”を付加した値をＲＡＤＤに入力し、このアドレスに対応するデータＲＲＤＴを内部レジスタに入力する。ここで、ＲＲＤＴのタイムスタンプの値とＴＩＭＥＲ  を比較し３０分以内なら終了するが、エージング時間＝３０分を超えていた場合、ＡＧＥＤ＝”１”として、ＣＡＤＤＩ＝ＰＥＮＴＯ，ＣＥＮＴＩ＝ａｌｌ”０”を、また、ｓＣＡＭ２０１にはＵＰＰＥＲ  ＳＨＩＦＴを行うことで登録内容の削除を行う。なお、学習数が”０”（ＡＬＲＣＮＴ＝”０”）の場合にはこのコマンドは動作しない
【００９１】
消去コマンドＤＬＴ：
図４５に示すように、動作コマンドとして消去コマンＤＬＴを受信した場合、ＣＩＤＥＸにＭＡＣアドレス又はＩＰアドレスを入力してＣＡＭ１０１にＳＥＡＲＣＨを行う。ここで、一致するアドレスがなければそのまま終了し、一致するアドレスがあればＣＡＤＤＩにＣＡＤＤＯを、ＣＩＤＥＸにａｌｌ”０”を入力し、また、ｓＣＡＭ２０１でＵＰＰＥＲ  ＳＨＩＦＴを行うことで登録内容の削除を行う。
【００９２】
読み出しコマンドＲＥＡＤ：
図４６に示すように、動作コマンドとして読み出しコマンドＲＥＡＤを受信した場合、ＣＡＤＤＩとしてＲＤＡＤＲを、ＲＡＤＤとしてＲＤＡＤＲの最後尾に”０”又は”１”を付加したものを入力する。そして、ＯＰＣＯＵＮＴ＝２のときのＲＲＤＴをＩＰＯ，ＯＰＣＯＵＮＴ＝３のときのＲＲＤＴをＭＡＣＯとして出力する。そして、学習経過時間を計算し、ＡＧＴＩＭとして出力する。
【００９３】
全クリアコマンドＡＣＬＲ：
図４７に示すように、動作コマンドとして全クリアコマンドＡＣＬＲを受信した場合、ＣＥＮＡＣＲ＝”１”、ＣＩＤＥＸ＝ａｌｌ”０”、ＰＥＮＡＣＲ＝”１”として、ＣＡＭ１０１及びｓＣＡＭ２０１の登録内容をすべて削除する。
【００９４】
１）エージング学習
ルータでのエージング学習は、ＡＲＰフレーム受信時にＣＰＵから「ＬＲＮ」コマンドにより指示されるＩＰ／ＭＡＣアドレスのテーブル学習によって起動される。このコマンド動作と同時にＣＴＬ部４のエージング制御部が自主的にエージング学習を行う。ここで、エージング学習とは、前述のフリーランカウンタをＲＡＭテーブル上のａｇｉｎｇエリアに格納する動作を言う。（この時、ＲＡＭ３０１上のＤ１５（ＭＳＢ）には強制的に”０”が書かれる。）
【００９５】
２）エージング処理動作
フリーランカウンタは、１００ｍｓ周期毎に自動的にカウントアップする。同時にＣＴＬブロック内のエージング制御部は、自主的にエージングコマンド（ａｔＩＰＡ）動作を行う。このコマンドの動作は、学習経過時間（エージング学習値とフリーランカウンタとの差分）が最大（最古）のアドレスを検索してその時間がＣＰＵから設定された「ＡＧＥＭＡＸ値（通常：１８０００ｄ＝３０分／設定上限：５０分）」を超えている場合には、該当エントリの削除を行う。このカウンタとの比較動作は、１００ｍｓに１エントリずつ行われるため全エントリを比較するには、１２．８秒かかる。
【００９６】
３）検索動作
パケットのフォワーディング処理の際に、データ変換部の発行するＩＰ−ＤＡとコマンドａｔＩＰＳによって送信先ＩＰアドレスより送信先ＭＡＣアドレスの検索動作を行う。
４）ＣＰＵからのリード要求
ＣＰＵから「ＡＧＥＴＩＭ値」の読み込み要求が発行された場合には、上記の”エージング学習値とフリーランカウンタとの差分（学習経過時間）”を通知する。しかし、学習経過時間が「ＡＧＥＭＡＸ値（通常：１８０００ｄ＝３０分）」を超えていた場合には、ＡＧＥＭＡＸ値そのものを通知する。（通常超えることはない。）
【００９７】
次に図６に一部が示された＜新規学習＞、＜再学習＞、＜上書き学習＞、＜エージング学習＞の処理手順の具体例を説明する。
＜新規学習＞
図４８〜図５２はＣＰＵ１０による＜新規学習＞の処理手順の具体例を示している。図４８は学習前の初期状態を示し、ＲＡＭアドレス＝ＣＡＭアドレス＝１、３、４にエントリが登録され、ＲＡＭアドレス＝ＣＡＭアドレス＝２は空きエリアである。また、ＲＡＭアドレス＝ＣＡＭアドレス＝１、３、４に登録された各エントリは、４が最も新しく、その次は１であって、３が最も古い。このため、ｓＣＡＭの先頭エリアから順次、ＣＡＭアドレス＝４、１、３が登録されている。
【００９８】
上記の初期状態に対して、図４９に示すようにＩＰアドレスをＣＡＭ１０１に入力して入力ＩＰアドレスに対して出力アドレスがなく、空きエリアがある場合に＜新規学習＞を行う。新規エントリを登録する場合、まず、図５０に示すようにＣＡＭ１０１の最も若い空きエリア（ＣＡＭアドレス＝２）に新規ＩＰアドレスを登録する。次いで図５１に示すようにｓＣＡＭ２０１の先頭エリアから順次登録されているＣＡＭアドレス＝４、１、３を後方シフトして空いた先頭エリアにＣＡＭアドレス＝２を登録する。次いで図５２に示すようにＲＡＭアドレス＝２に新規エントリ（ＭＡＣアドレス、タイムスタンプなど）を登録する。これにより、ｓＣＡＭ２００の先頭エリアからＣＡＭアドレス＝２、４、１、３が新しい順に登録される。
【００９９】
＜再学習＞
図５３〜図５６はハードウエアによる＜再学習＞の処理手順の具体例を示し、図５３に示す初期状態は図４８と同じである。上記の初期状態に対して、図５４に示すようにＩＰアドレスをＣＡＭ１０１に入力して入力ＩＰアドレスに対して出力アドレス（ＣＡＭアドレス＝１）があった場合に＜再学習＞を行う。まず、図５５に示すようにＣＡＭアドレス＝１が登録されているｓＣＡＭ２０１のエリアをサーチし、そのエリアより後方のＣＡＭアドレス＝３を前方シフトする（ＣＡＭアドレス＝１に上書きする）。次いで図５６に示すようにｓＣＡＭ２０１に登録されている全てエントリを後方シフトして空いた先頭アドレスにＣＡＭアドレス＝１を登録し、また、ＲＡＭアドレス＝１のタイムスタンプをリセットする（現在時刻を書き込む）。これにより、ｓＣＡＭ２００の先頭エリアからＣＡＭアドレス＝１、４、３が新しい順に登録され、また、ＲＡＭアドレス＝１のタイムスタンプが更新される。
【０１００】
＜上書き学習＞
図５７〜図６１は＜上書き学習＞の処理手順の具体例を示している。図５７に示す初期状態では、ＲＡＭアドレス＝ＣＡＭアドレス＝１、２、３、４の全てにエントリが登録され（フルエントリ状態）、また、ｓＣＡＭ２０１の先頭エリアからＣＡＭアドレス＝４、１、３、２が登録されている。上記の初期状態に対して、図５８に示すようにＩＰアドレスをＣＡＭ１０１に入力して入力ＩＰアドレスに対して出力アドレスがなく、空きエリアがない場合に＜上書き学習＞を行う。まず、図５９に示すようにｓＣＡＭ２０１の最後尾エリアのＣＡＭアドレス＝２を読み出し、次いでこのＣＡＭアドレス＝２、ＲＡＭアドレス＝２に各新規エントリ（新規ＩＰアドレス、新規ＭＡＣアドレスなど）を登録（上書き）する。
【０１０１】
次いで図６０に示すようにｓＣＡＭ２０１の最後尾エリアのＣＡＭアドレス＝２に対して前方シフトによりオール０を書き込むことにより削除する。次いで図６１に示すようにｓＣＡＭ２０１に登録されている全てのエントリを後方シフトして空いた先頭アドレスにＣＡＭアドレス＝２を登録する。これにより、最も古いＣＡＭアドレス＝２、ＲＡＭアドレス＝２に各新規エントリが上書きされ、また、ｓＣＡＭ２００の先頭エリアからＣＡＭアドレス＝２、４、１、３が新しい順に登録される。
【０１０２】
＜エージング学習＞
図６２〜図６４は＜エージング学習＞の処理手順の具体例を示している。図６２に示す初期状態は図４８、図５３と同じである。上記の初期状態に対して、図６３に示すようにｓＣＡＭ２０１の最後尾エリアのＣＡＭアドレス＝３を読み出し、次いでこのＣＡＭアドレス＝３に対応するＲＡＭアドレス＝３からタイムスタンプを読み出す。そして、このタイムスタンプが設定上限を超えている場合に図６４に示すように、ｓＣＡＭ２０１の最後尾エリアのＣＡＭアドレス＝３に対して前方シフトによりオール０を書き込むことにより削除し、また、ＣＡＭアドレス＝３を削除する。これにより、タイムスタンプが設定上限を超えているエントリが削除される。なお、図６４ではＲＡＭアドレス＝３を削除していないが、＜新規学習＞時に新規エントリが上書きされるので、問題はない。以上説明したように、上記の＜新規学習＞、＜再学習＞、＜上書き学習＞、＜エージング学習＞の処理は全て８クロック以内で完了する。
【０１０３】
【発明の効果】
以上説明したように請求項１に記載の発明によれば、複数のエントリ情報の各々が時間順に保持されるので、エントリの順序を短い処理時間で管理することができる。
請求項２に記載の発明によれば、登録されているエントリ情報を短い処理時間で検索することができる。
請求項３に記載の発明によれば、既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、複数のエントリ情報の各々を時間順に保持することができる。
請求項４に記載の発明によれば、既に登録されているエントリ情報を削除する場合に、複数のエントリ情報の各々を時間順に保持することができる。
請求項５に記載の発明によれば、小さな回路規模で複数のエントリ情報の各々をシフトして時間順に保持することができる。
請求項６に記載の発明によれば、登録順が最も古いエントリ情報を簡単に管理することができる。
請求項７に記載の発明によれば、検索結果を短時間で外部に取り出すことができる。
請求項８に記載の発明によれば、ルータ、ブリッジなどにおいて第１のメモリにＭＡＣアドレスなどを格納する場合に、ＭＡＣアドレスなどの登録順を短い処理時間で管理することができる。
請求項９に記載の発明によれば、ルータ、ブリッジなどにおいて第１のメモリに登録されているＭＡＣアドレスなどを削除して新規ＭＡＣアドレスなどを登録する場合に、複数のＭＡＣアドレスの登録順を管理することができる。
請求項１０に記載の発明によれば、ルータ、ブリッジなどにおいて第１のメモリに登録されているＭＡＣアドレスなどを削除する場合に、複数のＭＡＣアドレスの登録順を管理することができる。
請求項１１に記載の発明によれば、ルータ、ブリッジなどにおいてＭＡＣアドレスの登録時間の学習順序を再構築することができる。
請求項１２に記載の発明によれば、ルータ、ブリッジなどにおいてＭＡＣアドレスの登録時間の再学習順序を再構築することができる。
請求項１３に記載の発明によれば、ルータ、ブリッジなどにおいてＭＡＣアドレスの登録時間を学習することができる。
請求項１４に記載の発明によれば、ルータ、ブリッジなどにおいて古いＭＡＣアドレスを削除することができる。
【図面の簡単な説明】
【図１】本発明に係るシフト機能付連想記憶メモリを有するアドレス検索装置の一実施形態を示すブロック図
【図２】本発明のアドレス検索装置の宅内側ネットワーク宛てユニキャストパケットのフォワーディング処理を示す説明図
【図３】本発明のアドレス検索装置の網側ネットワーク宛てユニキャストパケットのフォワーディング処理を示す説明図
【図４】本発明のアドレス検索装置のルータモード時のアドレス学習・検索機能の機能分担を示す説明図
【図５】本発明のアドレス検索装置における学習・検索機能の設定項目と状態通知を示す説明図
【図６】本発明のアドレス検索装置におけるアドレス学習とエージング処理の時間関係を示す説明図
【図７】本発明のアドレス検索装置におけるエージング機能の設定項目と状態通知を示す説明図
【図８】本発明のアドレス検索装置のコマンドインタフェースの構成を示すブロック図
【図９】本発明のアドレス検索装置におけるコマンド機能を示す説明図
【図１０】本発明のアドレス検索装置の入出力情報を示す説明図
【図１１】本発明のアドレス検索装置の構成を詳しく示す説明図
【図１２】本発明のアドレス検索装置の学習テーブルの構成を示す説明図
【図１３】図１２のＣＡＭ、ｓＣＡＭ及びＲＡＭの格納情報及びそのアドレスを示す説明図
【図１４】図１３のＣＡＭブロックの機能を示す説明図
【図１５】図１３のＣＡＭの構成を詳しく示す説明図
【図１６】図１３のＣＡＭブロックの全体構成を示すブロック図
【図１７】図１６のＣＡＭブロックの主要信号を示す説明図
【図１８】図１６の１／Ｎ選択回路の入出力信号を示す説明図
【図１９】図１６の１／Ｎ出力回路の入出力信号を示す説明図
【図２０】図１６の裏打ち回路を詳しく示す回路図
【図２１】図１６のＣＡＭブロックのサーチ時の主要信号を示すタイミングチャート
【図２２】図１６のＣＡＭブロックのブランク−フィード時の主要信号を示すタイミングチャート
【図２３】図１６のＣＡＭブロックのライト時の主要信号を示すタイミングチャート
【図２４】図１６のＣＡＭブロックのリード時の主要信号を示すタイミングチャート
【図２５】図１６のＣＡＭブロックのクリア時の主要信号を示すタイミングチャート
【図２６】図１３のｓＣＡＭブロックの機能を示す説明図
【図２７】図１３のｓＣＡＭの構成を詳しく示す説明図
【図２８】図１３のｓＣＡＭブロックの全体構成を示すブロック図
【図２９】図２８のｓＣＡＭブロックを詳しく示すブロック図
【図３０】図２９の比較回路とエントリ出力回路をさらに詳しく示すブロック図
【図３１】図２８の裏打ち回路を詳しく示す回路図
【図３２】図１７のｓＣＡＭブロックの前方シフトを示す説明図
【図３３】図２９のｓＣＡＭブロックの後方シフトを示す説明図
【図３４】図２９のｓＣＡＭブロックのクリア時の主要信号を示すタイミングチャート
【図３５】図１３のＣＡＭブロックとＲＡＭブロックの記憶情報を示す説明図
【図３６】図１３のＣＡＭとＲＡＭのアドレス対応を示す説明図
【図３７】図２９のｓＣＡＭブロックの変形例を示すブロック図
【図３８】図３７のｓＣＡＭブロックの部分後方シフトを示す説明図
【図３９】図３７のｓＣＡＭブロックの部分後方時の主要信号を示すタイミングチャート
【図４０】図３７のｓＣＡＭブロックの部分前方シフトを示す説明図
【図４１】図３７のｓＣＡＭブロックの部分前方シフト時の主要信号を示すタイミングチャート
【図４２】本発明のアドレス検索装置のＩＰアドレスサーチコマンド時の主要信号を示すタイミングチャート
【図４３】本発明のアドレス検索装置のＩＰ／ＭＡＣアドレス学習コマンド時の主要信号を示すタイミングチャート
【図４４】本発明のアドレス検索装置のＩＰアドレスエージングコマンド時の主要信号を示すタイミングチャート
【図４５】本発明のアドレス検索装置の消去コマンド時の主要信号を示すタイミングチャート
【図４６】本発明のアドレス検索装置の読み出しコマンド時の主要信号を示すタイミングチャート
【図４７】本発明のアドレス検索装置の全クリアコマンド時の主要信号を示すタイミングチャート
【図４８】本発明のアドレス検索装置の新規学習処理を示す説明図
【図４９】本発明のアドレス検索装置の新規学習処理を示す説明図
【図５０】本発明のアドレス検索装置の新規学習処理を示す説明図
【図５１】本発明のアドレス検索装置の新規学習処理を示す説明図
【図５２】本発明のアドレス検索装置の新規学習処理を示す説明図
【図５３】本発明のアドレス検索装置の再学習処理を示す説明図
【図５４】本発明のアドレス検索装置の再学習処理を示す説明図
【図５５】本発明のアドレス検索装置の再学習処理を示す説明図
【図５６】本発明のアドレス検索装置の再学習処理を示す説明図
【図５７】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図５８】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図５９】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図６０】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図６１】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図６２】本発明のアドレス検索装置のエージング処理を示す説明図
【図６３】本発明のアドレス検索装置のエージング処理を示す説明図
【図６４】本発明のアドレス検索装置のエージング処理を示す説明図
【図６５】従来のアドレス検索装置を示すブロック図
【符号の説明】
１００  ＣＡＭブロック
２００  ｓＣＡＭブロック
３００  ＲＡＭブロック
２０２１  比較部（ｃｏｍｐ．）
２０２２  エントリ出力部
２０２３  状態保持部
【図１】
2004282421.tif 000008
【図２】
2004282421.tif 000009
【図３】
2004282421.tif 000010
【図４】
2004282421.tif 000011
【図５】
2004282421.tif 000012
【図６】
2004282421.tif 000013
【図７】
2004282421.tif 000014
【図８】
2004282421.tif 000015
【図９】
2004282421.tif 000016
【図１０】
2004282421.tif 000017
【図１１】
2004282421.tif 000018
【図１２】
2004282421.tif 000019
【図１３】
2004282421.tif 000020
【図１４】
2004282421.tif 000021
【図１５】
2004282421.tif 000022
【図１６】
2004282421.tif 000023
【図１７】
2004282421.tif 000024
【図１８】
2004282421.tif 000025
【図１９】
2004282421.tif 000026
【図２０】
2004282421.tif 000027
【図２１】
2004282421.tif 000028
【図２２】
2004282421.tif 000029
【図２３】
2004282421.tif 000030
【図２４】
2004282421.tif 000031
【図２５】
2004282421.tif 000032
【図２６】
2004282421.tif 000033
【図２７】
2004282421.tif 000034
【図２８】
2004282421.tif 000035
【図２９】
2004282421.tif 000036
【図３０】
2004282421.tif 000037
【図３１】
2004282421.tif 000038
【図３２】
2004282421.tif 000039
【図３３】
2004282421.tif 000040
【図３４】
2004282421.tif 000041
【図３５】
2004282421.tif 000042
【図３６】
2004282421.tif 000043
【図３７】
2004282421.tif 000044
【図３８】
2004282421.tif 000045
【図３９】
2004282421.tif 000046
【図４０】
2004282421.tif 000047
【図４１】
2004282421.tif 000048
【図４２】
2004282421.tif 000049
【図４３】
2004282421.tif 000050
【図４４】
2004282421.tif 000051
【図４５】
2004282421.tif 000052
【図４６】
2004282421.tif 000053
【図４７】
2004282421.tif 000054
【図４８】
2004282421.tif 000055
【図４９】
2004282421.tif 000056
【図５０】
2004282421.tif 000057
【図５１】
2004282421.tif 000058
【図５２】
2004282421.tif 000059
【図５３】
2004282421.tif 000060
【図５４】
2004282421.tif 000061
【図５５】
2004282421.tif 000062
【図５６】
2004282421.tif 000063
【図５７】
2004282421.tif 000064
【図５８】
2004282421.tif 000065
【図５９】
2004282421.tif 000066
【図６０】
2004282421.tif 000067
【図６１】
2004282421.tif 000068
【図６２】
2004282421.tif 000069
【図６３】
2004282421.tif 000070
【図６４】
2004282421.tif 000071
【図６５】
2004282421.tif 000072