(57)【要約】      （修正有）【課題】  高速ルーティングテーブル検索の実行が可能なルーティングテーブルモジュールを有するスイッチ及びルーティングテーブル処理実行方法を提供する。【解決手段】パケットの通信が可能な複数のポートと、受信したパケットの複数のポート間での転送を可能とするスイッチファブリックと、複数の行に論理的に分割される複数のメモリバンクであって、それぞれの行が複数のメモリバンクの各々からのルーティングエントリの格納領域を有するメモリバンクと、検索リクエストと学習リクエストを複数のポートから受信し、それぞれのリクエストに基づき少なくとも１つのアドレスを有する複数のメモリアクセス処理のスケジューリングを実行する調停モジュールと、複数のメモリアクセス処理を受信し、アドレスから複数の行の１つを示すハッシュキーを決定し、指定の行にアクセスして複数のメモリアクセス処理の少なくとも１つを実行するアクセスモジュールとからなる。【選択図】  図１
2004242326.tif 000002
【特許請求の範囲】
【請求項１】
パケットの通信が可能な複数のポート；
受信したパケットの前記複数のポート間での転送を可能とするスイッチファブリック；
複数の行に論理的に分割される複数のメモリバンクであって、前記複数の行のそれぞれが前記複数のメモリバンクの各々からのルーティングエントリの保持が可能な格納領域を有するメモリバンク；
検索リクエストと学習リクエストを前記複数のポートから受信し、前記検索リクエストと前記学習リクエストに基づき少なくとも１つのアドレスを有する複数のメモリアクセス処理のスケジューリングを実行する調停モジュール；及び
前記複数のメモリアクセス処理を受信し、前記アドレスから前記複数の行の１つを示すハッシュキーを決定し、前記示された行にアクセスして前記複数のメモリアクセス処理の少なくとも１つを実行するメモリアクセスモジュール；
からなることを特徴とするスイッチ。
【請求項２】
請求項１記載のスイッチであって、前記調停モジュールは、未処理の学習リクエストを処理するためのメモリアクセス処理のスケジューリングを実行する前に、未処理の検索リクエストを処理するためのメモリアクセス処理のスケジューリングを実行することを特徴とするスイッチ。
【請求項３】
請求項１記載のスイッチであって、前記調停モジュールは、送信先アドレスを特定する検索リクエストを処理するための前記メモリアクセス処理のスケジューリングを実行し、前記メモリアクセス処理は前記検索リクエストからの前記送信先アドレスを示すリード処理を含むことを特徴とするスイッチ。
【請求項４】
請求項１記載のスイッチであって、ルーティングエントリは、アドレス情報と、前記複数のポートの１つ以上を示すルーティング情報とを有することを特徴とするスイッチ。
【請求項５】
請求項１記載のスイッチであって、前記調停モジュールは、送信元アドレスを特定する学習リクエストを処理するための前記メモリアクセス処理のスケジューリングを実行し、前記メモリアクセス処理は前記検索リクエストからの前記送信元アドレスを示すリード処理を含むことを特徴とするスイッチ。
【請求項６】
請求項１記載のスイッチであって、前記メモリアクセス処理は、ライト処理とリード処理の少なくとも１つを含むことを特徴とするスイッチ。
【請求項７】
請求項１記載のスイッチであって、前記調停モジュールは、学習リクエストを処理するために、前記学習リクエストからの送信元アドレスを示すリード処理を含む第１メモリアクセス処理のスケジューリングを実行し、前記リード処理が前記複数のメモリバンクにおいてミスを検出したか判断し、前記ミスが検出された場合、前記学習リクエストから前記送信元アドレスとポートマッピングを示すライト処理を含む第２メモリアクセス処理のスケジューリングを実行することを特徴とするスイッチ。
【請求項８】
ルーティングテーブル処理を実行する方法であって：
複数のポートの何れかからの検索リクエストと学習リクエストの受信を監視するステップ；
送信先アドレスを有する検索リクエストを検出するステップ；
前記送信先アドレスに基づきハッシュキーを決定するステップ；
前記ハッシュキーを利用して複数の行に論理的に分割される複数のメモリバンクを有するメモリモジュールにアクセスするステップであって、ここで前記複数の行のそれぞれは前記複数のメモリバンクのそれぞれからのルーティングエントリを保持することができる格納領域を含み、前記ハッシュキーは前記複数の行の１つを示しているステップ；
前記示された行からの前記ルーティングエントリの１つが前記送信先アドレスにマッチするアドレス情報を含むか判断するステップ；及び
前記示された行がマッチしたルーティングエントリを含む場合、前記マッチしたルーティングエントリから前記複数のポートの１つ以上を特定するルーティング情報を返すステップ；
からなることを特徴とする方法。
【請求項９】
複数のポートの何れかからの検索リクエストと学習リクエストの受信を監視する手段；
送信先アドレスを有する検索リクエストを検出する手段；
前記送信先アドレスに基づきハッシュキーを決定する手段；
前記ハッシュキーを利用して複数の行に論理的に分割される複数のメモリバンクを有するメモリモジュールにアクセスする手段であって、ここで前記複数の行のそれぞれは前記複数のメモリバンクのそれぞれからのルーティングエントリを保持することができる格納領域を含み、前記ハッシュキーは前記複数の行の１つを示している手段；
前記示された行からの前記ルーティングエントリの１つが前記送信先アドレスにマッチするアドレス情報を含むか判断する手段；及び
前記示された行がマッチしたルーティングエントリを含む場合、前記マッチしたルーティングエントリから前記複数のポートの１つ以上を特定するルーティング情報を返す手段；
からなることを特徴とするスイッチ。
【請求項１０】
請求項９記載のスイッチであって、さらに、前記送信先アドレスがマルチキャストアドレスであるか判断し、前記ハッシュキーを利用した前記メモリモジュールへのアクセス中、前記複数のメモリバンクの何れもがライト処理を実行しないことを保証する手段を有することを特徴とするスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関し、より詳細には、高速ルーティングテーブル検索を可能にするアドレス学習に関する。
【背景技術】
【０００２】
技術の進歩は、データ通信のさらなる高速化を必然的に求める。このような要求に応えるよう高速処理が可能なネットワーク機器の開発が進められている。例えば、転送線の高速化のためには、ワイヤースピードでの処理が可能となるよう高速でのルーティング決定が可能なスイッチが必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上記の点に鑑みなされたものであり、高速ルーティングテーブル検索の実行が可能なルーティングテーブルモジュールを有するスイッチ及びルーティングテーブル処理実行方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明によるスイッチは、パケットの通信が可能な複数のポートと、受信したパケットの前記複数のポート間での転送を可能とするスイッチファブリックと、複数の行に論理的に分割される複数のメモリバンクであって、前記複数の行のそれぞれが前記複数のメモリバンクの各々からのルーティングエントリの保持が可能な格納領域を有するメモリバンクと、検索リクエストと学習リクエストを前記複数のポートから受信し、前記検索リクエストと前記学習リクエストに基づき少なくとも１つのアドレスを有する複数のメモリアクセス処理のスケジューリングを実行する調停モジュールと、前記複数のメモリアクセス処理を受信し、前記アドレスから前記複数の行の１つを示すハッシュキーを決定し、前記示された行にアクセスして前記複数のメモリアクセス処理の少なくとも１つを実行するメモリアクセスモジュールとからなることを特徴とする。
【０００５】
さらに本発明によるスイッチにおいて、前記調停モジュールは、未処理の学習リクエストを処理するためのメモリアクセス処理のスケジューリングを実行する前に、未処理の検索リクエストを処理するためのメモリアクセス処理のスケジューリングを実行することを特徴とする。
【０００６】
さらに本発明によるスイッチにおいて、前記調停モジュールは、送信先アドレスを特定する検索リクエストを処理するための前記メモリアクセス処理のスケジューリングを実行し、前記メモリアクセス処理は前記検索リクエストからの前記送信先アドレスを示すリード処理を含むことを特徴とする。
【０００７】
さらに本発明によるスイッチにおいて、ルーティングエントリは、アドレス情報と、前記複数のポートの１つ以上を示すルーティング情報とを有することを特徴とする。
【０００８】
さらに本発明によるスイッチにおいて、前記調停モジュールは、送信元アドレスを特定する学習リクエストを処理するための前記メモリアクセス処理のスケジューリングを実行し、前記メモリアクセス処理は前記検索リクエストからの前記送信元アドレスを示すリード処理を含むことを特徴とする。
【０００９】
さらに本発明によるスイッチにおいて、前記メモリアクセス処理は、ライト処理とリード処理の少なくとも１つを含むことを特徴とする。
【００１０】
さらに本発明によるスイッチにおいて、前記調停モジュールは、学習リクエストを処理するために、前記学習リクエストからの送信元アドレスを示すリード処理を含む第１メモリアクセス処理のスケジューリングを実行し、前記リード処理が前記複数のメモリバンクにおいてミスを検出したか判断し、前記ミスが検出された場合、前記学習リクエストから前記送信元アドレスとポートマッピングを示すライト処理を含む第２メモリアクセス処理のスケジューリングを実行することを特徴とする。
【００１１】
また本発明によるルーティングテーブル処理を実行する方法は、複数のポートの何れかからの検索リクエストと学習リクエストの受信を監視するステップと、送信先アドレスを有する検索リクエストを検出するステップと、前記送信先アドレスに基づきハッシュキーを決定するステップと、前記ハッシュキーを利用して複数の行に論理的に分割される複数のメモリバンクを有するメモリモジュールにアクセスするステップであって、ここで前記複数の行のそれぞれは前記複数のメモリバンクのそれぞれからのルーティングエントリを保持することができる格納領域を含み、前記ハッシュキーは前記複数の行の１つを示しているステップと、前記示された行からの前記ルーティングエントリの１つが前記送信先アドレスにマッチするアドレス情報を含むか判断するステップと、前記示された行がマッチしたルーティングエントリを含む場合、前記マッチしたルーティングエントリから前記複数のポートの１つ以上を特定するルーティング情報を返すステップとからなることを特徴とする。
【００１２】
また本発明によるスイッチは、複数のポートの何れかからの検索リクエストと学習リクエストの受信を監視する手段と、送信先アドレスを有する検索リクエストを検出する手段と、前記送信先アドレスに基づきハッシュキーを決定する手段と、前記ハッシュキーを利用して複数の行に論理的に分割される複数のメモリバンクを有するメモリモジュールにアクセスする手段であって、ここで前記複数の行のそれぞれは前記複数のメモリバンクのそれぞれからのルーティングエントリを保持することができる格納領域を含み、前記ハッシュキーは前記複数の行の１つを示している手段と、前記示された行からの前記ルーティングエントリの１つが前記送信先アドレスにマッチするアドレス情報を含むか判断する手段と、前記示された行がマッチしたルーティングエントリを含む場合、前記マッチしたルーティングエントリから前記複数のポートの１つ以上を特定するルーティング情報を返す手段とからなることを特徴とする。
【００１３】
さらに本発明によるスイッチは、さらに、前記送信先アドレスがマルチキャストアドレスであるか判断し、前記ハッシュキーを利用した前記メモリモジュールへのアクセス中、前記複数のメモリバンクの何れもがライト処理を実行しないことを保証する手段を有することを特徴とする。
【発明の効果】
【００１４】
本発明によると、複数のメモリバンクを利用したルーティングテーブルモジュールを実現することにより、比較的小型かつ安価ではあるが、高速処理が可能なルーティングテーブルモジュールを有するスイッチが提供される。本発明によるルーティングテーブルモジュールは、ルーティング情報の完備性を犠牲にすることにより高速かつコスト優位な実現を可能にする。例えば、いくつかの実施例では、ポート＝アドレスマッピング情報の保持のためのスペースが限定されているものもある。この制限されたスペースでは、潜在的にすべてのポート＝アドレスマッピングの格納はサポートされていない。ここでは、「賢い」ルーティングの代わりに、パケットの放出がスイッチにより行われる。しかしながら、このような事象を限定的なものとしようとする試みがいくつかの実施例では行われる。さらに、このような実施例では、依然としてＡＮＳＩ/ＩＥＥＥ８０２規格のような規格に準拠するよう構成することができる。
【発明を実施するための最良の形態】
【００１５】
図１は、スイッチングファブリック（ｓｗｉｔｃｈｉｎｇ  ｆａｂｒｉｃ）１４により相互接続される複数のポート１２を有するスイッチ１０を示す。スイッチ１０はまた、ルーティング情報を格納する複数のメモリバンク１８を含むルーティングテーブルモジュール１６を有する。一般に、ルーティングテーブルモジュール１６は、ポート１２間でのパケットスイッチ処理を制御するためのルーティング情報を保持する。具体的には、ルーティングテーブルモジュール１６は、高速ルーティングテーブル処理を提供するマルチバンクメモリ構造を提供する。
【００１６】
各ポート１２は、任意の適切な制御論理を含むパケット送受信のためのハードウェアを表すものである。例えば、各ポート１２は、パケット送受信のための入力モジュールと出力モジュールを有する。本明細書中で使われる「パケット」という単語は、アドレッシング情報を含む任意の情報セグメントを表すものである。例えば、イーサネット（登録商標）フレーム、インターネットプロトコル（ＩＰ）パケット、非同期転送モード（ＡＴＭ）セル及び/または他の適切な情報セグメントなどがパケットとして含まれる。スイッチ１０において、スイッチングファブリック１４は、スイッチ１０内のあるポート１２から、スイッチ１０内の他のポート１２あるいはすべてのポート１２へのパケットの送信に利用される。スイッチングファブリック１４は、スイッチ１０内の１つのブロックとして示されているが、ポート１２間の通信をサポートするのに十分な速度でのパケットスイッチング処理を提供できるよう設計された任意の適切な構成要素の組み合わせ及び構成を含む。
【００１７】
スイッチ１０において、ルーティングテーブルモジュール１６は、ポート１２間でのパケットスイッチング処理を制御するためのルーティング情報を保持する。スイッチングファブリック１４の制御のために、ルーティング情報には、アドレスとポートとの間のマッピングを表すエントリが含まれている。このルーティング情報に基づいて、スイッチ１０はポート１２間でのパケットの送信先を決定する。例えば、ルーティング情報への１つのエントリは、アドレスＸＹＺのポートＡへのマッピングを表すものであるかもしれない。他のポート１２がアドレスＸＹＺ宛のパケットを受信すると、スイッチングファブリック１４は当該パケットをポートＡに振り向ける。従って、ルーティングモジュール１６に適切なルーティング情報が与えられると、スイッチングファブリック１４は、ポート１２間のパケットスイッチングを「賢く」行うことができる。さらに、本例は１つのアドレスから１つのポートへのマッピングが示されているが、スイッチ１０はアドレスを任意の個数のポート１２にマッピングするためのエントリを扱うことができる。
【００１８】
ある状況では、ルーティングテーブルモジュール１６は、受信パケットのすべてにアドレスをマッピングするとは限らないかもしれない。例えば、１つのポート１２が、ルーティングテーブルモジュール１６のエントリにマッチしない送信先アドレスを有するパケットを受信したとする。ある実施例では、ルーティングテーブルモジュール１６がマッピングを提供しない場合、スイッチ１０は当該パケットを他のすべてのポート１２に「放出する」。すなわち、スイッチ１０は受信ポート１２以外のすべてのポート１２に当該パケットを送信する。
【００１９】
ルーティングテーブル処理の一例として、ある送信先アドレスを有するパケットをあるポート１２が受信したとする。ルーティングテーブルモジュール１６が当該送信先アドレスのポートマッピングを提供していれば、スイッチングファブリック１４はルーティング情報に示されたすべてのポート１２に当該パケットを与える。他方、ルーティングテーブルモジュール１６が指定された送信先アドレスに対するマッピングを提供していない場合、スイッチングファブリック１４はスイッチ１０の他のすべてのポート１２に当該パケットを放出する。このパケットの放出はネットワークトラフィックを増大させるが、当該パケットの正しいポート１２への通信を保証してくれる。
【００２０】
ルーティングテーブルモジュール１６において、ルーティング情報は静的及び動的エントリを含んでいてもよい。ファームウェアにより設定されたエントリ、システム管理者により設定されたエントリ及び/またはルーティングテーブルモジュール１６に静的に作成されたエントリなどが、静的ルーティングエントリに含まれる。例えば、既知のネットワークトポロジーに基づき、システム管理者が静的ルーティングエントリを設定するかもしれない。静的エントリの他の例としては、ブロードキャスト、マルチキャストあるいは他の特別なアドレスなどの特別なネットワークアドレスのルーティング情報などがあげられる。
【００２１】
他方、動的ルーティングエントリは、スイッチ１０による処理中に自動的に生成、保持及び消去される。ある実施例では、スイッチ１０は学習スキームを利用して、ルーティングテーブルモジュール１６に動的ルーティングエントリを与える。この学習スキームによると、スイッチ１０は受信パケットの送信元アドレスを利用して、ルーティングテーブルモジュール１６にエントリを与える。例えば、スイッチ１０が送信元アドレスＸＹＺを有するパケットをポートＡで受信したとする。ルーティングテーブルモジュール１６がその時点においてこのマッピングを反映していない場合、ルーティングテーブルモジュール１６はアドレスＸＹＺをポートＡにマッピングするルーティングエントリを追加することができる。以降の受信パケットがＸＹＺの送信先アドレスを有するとき、スイッチ１０はルーティングテーブルモジュール１６内のマッピングに基づき、当該パケットをポートAから通信することができる。
【００２２】
ルーティングテーブルモジュール１６はまた、ルーティングエントリをルーティング情報から消去できるよう構成されてもよい。例えば、ルーティングテーブルモジュール１６は、定期的に期限の切れたエントリを消去するようにしてもよい。ルーティングテーブルモジュール１６は、タイムスタンプ及び/またはルーティング情報内に保持された他の適切な機構を利用して、期限切れエントリの時間経過処理を実行することができる。
【００２３】
ある実施例では、ルーティングテーブルモジュール１６の各エントリは、アドレス、ルーティング情報及び管理情報を有する。ここで、アドレスには、受信パケットのアドレスに適合させるためのＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスのような情報が保持されている。ルーティング情報は、当該エントリのアドレスにマッチした送信先アドレスを有するパケットの受信を行うポートを示す。ある実施例では、ルーティング情報は、各ビットが対応するポートがこのアドレスにマッピングされるかどうかを示すビットベクトルとして実現される。例えば、１２個のポートからなる構成では、１２ビットベクトルによりどのポート１２が指定されたアドレスにマッピングされるかが示される。
【００２４】
管理情報は、エントリを保持するための適当なデータを含む。ある実施例では、管理情報は、タイムスタンプ、静的標識、有効標識及びチェックコードを含んでいる。タイムスタンプは、当該エントリの経過時間を反映したものであり、時間経過処理を実行するスイッチ１０により利用される。静的標識は、当該エントリが静的であるかどうか示すためのものである。ある実施例では、静的標識が設定されている場合、スイッチ１０はこのエントリを動的に消去しない。有効標識は、当該エントリに示されたマッピングが正しいものであるかどうか示すものである。例えば、あるエントリを消去するため、ルーティングテーブルモジュール１６はこの有効標識を無効にしさえすればよい。チェックコードフィールドは、信頼性を与えるため管理情報内に含まれている。
【００２５】
動作中、ルーティングテーブルモジュール１６は、「学習」、「消去」及び「検索」の３つの基本処理を提供する。上述のように、スイッチ１０は、動的及び静的学習を処理する。動的学習は、受信パケットの送信元アドレスに基づき、ルーティングテーブルモジュール１６にエントリを追加する。静的学習には、製造時、設定時あるいは他の適当な時点におけるルーティング情報の特定の設定が含まれる。学習処理では、ルーティングテーブルモジュール１６はまず、学習対象のアドレスに対する適切なマッピングを有しているか判断する。そしてそのようなマッピングがない場合、ルーティング情報にエントリを生成する。すなわち、学習処理は、リードサイクルとライトサイクルの２つのサイクルが必要とされる。
【００２６】
学習処理と同様に、消去処理もまた動的及び静的エントリ消去を処理する。動的消去は、ルーティングテーブルモジュール１６の中の静的エントリを変更するための設定あるいは他の適切な指示に基づき行われる。学習処理と同様に、消去処理はリードステップとライトステップが必要とされるかもしれない。例えば、ルーティングテーブルモジュール１６はまずエントリの期限切れを判断し、期限が切れている場合、当該エントリを消去する。すなわち、消去処理は２つのサイクルが完結される必要がある。
【００２７】
前述のように、検索処理は受信パケットの送信先アドレスのマッピングの検索である。ある実施例では、スイッチ１０はマルチキャスト及びユニキャストアドレスの検索を処理する。マルチキャストアドレスに対しては、ルーティングテーブルモジュール１６は、典型的には、静的ルーティングエントリにより構成される。これにより、マルチキャストパケットの賢いルーティングが可能となる。ユニキャストパケットに対しては、ルーティングテーブルモジュール１６は、典型的には、動的学習に基づきルーティング決定を処理する。このため、スイッチ１０は、適当なアドレスマッピングが学習されるまで、ユニキャストパケットをばら撒くことになる。ある実施例では、スイッチ１０は、アドレスの情報に基づき、マルチキャストアドレスとユニキャストアドレスとを区別することができる。例えば、８０２．１規格では、特定ビットの値に基づき、マルチキャストアドレスとユニキャストアドレスが区別される。ルーティングテーブルモジュール１６は、１つのリード処理を利用して検索処理を実行することができる。従って、検索処理は１つのサイクルの完了でよい。
【００２８】
図２は、複数のメモリバンク１８、調停モジュール２０及びアクセスモジュール２２を含むルーティングテーブルモジュール１６の一例となる機能要素を示すブロック図である。例示された実施例では、調停モジュール２０は、学習（ＬＲＮ）リクエスト及び検索（ＬＵＰ）リクエストを受信するため、スイッチ１０の各ポート１２に接続される。同様に、アクセスモジュール２２は、検索リクエストに応答してルーティング情報（ＲＩ）を提供するため、スイッチ１０の各ポート１２に接続される。動作中、メモリバンク１８は、スイッチ１０のルーティング情報を保持する。一般に、メモリバンク設定と関連するアクセス方式は、ルーティングテーブルモジュール１６による高速ルーティングテーブル処理を可能にする。
【００２９】
各メモリバンク１８は、適当な制御論理を含めたルーティングエントリを格納するための任意の適当なハードウェアを表すものである。各メモリバンク１８は、リードまたはライト処理を実行するため、独立にアクセスされる。例えば、あるサイクルにおいて、アクセスモジュール２２は部分的あるいはすべてのメモリバンク１８からリード処理を実行するかもしれない。同様に、あるサイクルにおいて、アクセスモジュール２２は、部分的あるいはすべてのメモリバンク１８からライト処理を実行するかもしれない。さらに、アクセスモジュール２２は、例えば、１つのメモリバンク１８にライト処理を行い、その他のメモリバンク１８からリード処理を行うように、これらの処理がミックスされてもよい。
【００３０】
例示された実施例では、各メモリバンク１８は論理的に複数の領域に分割される。例えば、各メモリバンク１８は、各々が１つのルーティングエントリを保持することができる１０２４の領域に分割される。さらに、ルーティングテーブルモジュール１６はさらに、メモリバンク群１８を論理的に行に分割する。ここで、各行は複数のメモリバンク１８の対応する領域２４にわたるものである。例えば、第１行（R０）は各メモリバンク１８の第１領域２４から構成されるかもしれない。同様に、第ｎ行（Rｎ）は各メモリバンク１８の第ｎ領域２４から構成されるかもしれない。このため、例えば、各メモリバンク１８が１ｋ領域２４に論理的に分割されている場合、メモリバンク群１８は１ｋ行に論理的に分割される。
【００３１】
アクセスモジュール２２は、リード及び/またはライト処理を利用して、メモリバンク１８にアクセスする。ある実施例では、アクセスモジュール２２は行全体にリード処理を実行するかもしれない。このため、例えば、アクセスモジュール２２は、ある行の各領域２４のコンテンツを同時に読み出すかもしれない。ライト処理に対しては、アクセスモジュール２２はあるメモリバンク１８をターゲットとするかもしれない。例えば、アクセスモジュール２２は、選ばれたメモリバンク１８の中のある領域２４に書き込みを行うかもしれない。
【００３２】
ある実施例では、各メモリバンク１８はリード及びライト処理を同時にはサポートしない。このため、アクセスモジュール２２があるメモリバンク１８への書き込みを選択すれば、アクセスモジュール２２は当該メモリバンク１８からの読み出しを同時に実行することは許可されない。しかしながら、このことはアクセスモジュール２２が他のメモリバンク１８から読み出しを行うことを妨げるものではない。従って、１つのサイクルにおいて、アクセスモジュール２２は、１つのメモリバンク１８へのライト処理を行うと同時に、その他すべてのメモリバンク１８からのリード処理を実行することができる。本例では、アクセスモジュール２２は、行全体のコンテンツを読み出す場合、ライト処理が行われないメモリバンク１８の領域２４のみアクセスする。このため、１つ以上のメモリバンク１８でのライト処理は、アクセスモジュール２２のある行に属するすべての領域２４からの同時リード処理に影響を与えるかもしれない。
【００３３】
例えば、４つのメモリバンク１８を有するルーティングテーブルモジュール１６を考える。１つのサイクルにおいて、アクセスモジュール２２は、第１メモリバンク１８に対しライト処理を、ある行に対しリード処理をそれぞれスケジューリングする。このサイクルにおいて、アクセスモジュール２２は、第２、第３及び第４メモリバンク１８の領域２４のみから情報を受信する。従ってこの状況では、アクセスモジュール２２は、当該行の領域２４の１つの情報にアクセスすることができない。このため、詳細に後述されるように、ルーティングテーブルモジュール１６がルーティング情報における適合を検出することに影響が与えられる。
【００３４】
ある実施例では、アクセスモジュール２２はメモリバンク１８へのアクセスのためハッシュテクニックを利用する。この実施例によると、アクセスモジュール２２は送信元あるいは送信先アドレスからハッシュキーを生成することができる。アクセスモジュール２２はその後、このハッシュキーを利用して、メモリバンク１８の中の指定された行にアクセスする。例えば、論理的に１ｋ行に分割されたメモリバンク１８を考える。アドレスからの１０ビットの情報を利用して、アクセスモジュール２２は行の１つを一意的に特定するハッシュキーを生成することができる。このハッシュキーを利用して、アクセスモジュール２２は、アドレスの検索または学習のために適切な行を決定する。
【００３５】
検索リクエストに対しては、送信先アドレスを受信し、このアドレスからハッシュキーを生成し、このハッシュキーにより指定された行からリード処理を実行する。この送信先アドレスが当該行の領域２４の１つのエントリにマッチしていれば、アクセスモジュール２２はマッチしたエントリからルーティング情報をリターンとして返す。他方、送信先アドレスが当該行の領域２４のどのエントリともマッチしていなければ、アクセスモジュール２２は「ミス（ｍｉｓｓ）」を示し、これによりパケットが放出される。
【００３６】
学習処理に対して、アクセスモジュール２２はリード及びライト処理を実行する。学習処理で与えられた送信元アドレスを利用して、アクセスモジュール２２は、ハッシュキーを生成し、このハッシュキーにより示された行から読み出しを行う。この行が送信元アドレスとの適合を含むものでなければ、ルーティングテーブルモジュール１６はルーティング情報の学習を開始する。以降のサイクルにおいて、アクセスモジュール２２はハッシュキーにより特定された行の任意の領域２４にエントリを挿入するためライト処理を実行する。ある実施例では、ルーティングテーブルモジュール１６は、指定された行の空の領域２４を選ぶよう構成される。例えば、ルーティングテーブルモジュール１６は、指定された行の空の領域２４を有する第１メモリバンク１８を選択してもよいし、ランダムまたは擬ランダムアルゴリズムを利用して、指定された行の空の領域２４を選択するようにしてもよい。指定された行に空の領域２４が存在しなければ、ルーティングテーブルモジュール１６は、この学習リクエストを無視するか、あるいは空の領域２４が利用可能となるまで学習リクエストをキューしてもよい。
【００３７】
学習処理は、ハッシュキーにより指定される行において空の領域２４が利用できるかということに依存するので、ルーティングテーブルモジュール１６はときどきアドレスマッピング情報の学習が不可能になる場合がある。例えば、現時点で有効なある行の８つすべてのメモリ領域２４を備えた８つのメモリバンク１８を有するルーティングテーブルモジュール１６を考える。前述のように、ルーティングテーブルモジュール１６は、当該行へのハッシュキーをもたらす任意の受信した学習リクエストを単に無視する。これにより、以降のトラフィックの放出は増大するが、ルーティングテーブルモジュール１６による比較的小さな高速メモリ構造の利用が許可される。
【００３８】
前述のように、アクセスモジュール２２は、同一サイクル内で異なるメモリバンク１８に対しリード及びライト処理のスケジューリングを行うことができる。このため、例えば、アクセスモジュール２２は、ある行から読み込み処理を行うのと同一のサイクルにおいて、メモリバンク１８の１つにライト処理をスケジューリングしてもよい。これにより、前述のように、ライト処理がスケジューリングされていないメモリバンク１８のエントリのみをアクセスモジュール２２は読み出すことができる。送信先アドレスの検索では、この状況は「偽の」ミスとなりうる。偽のミスは、メモリバンク１８が送信先アドレスとの適合を有するが、このマッチしたエントリを保持するメモリバンク１８がライト処理を実行する一方、残りのメモリバンク１８がリード処理を実行しているときに発生する。偽のミスの場合、実際この行が適合を含んでいたとしても、アクセスモジュール２２はミスを示すであろう。偽のミスの生起確率は、ルーティングテーブルモジュール１６のメモリバンク数により限定される。例えば、ライト処理が１つのメモリバンク１８に制限され、かつルーティングテーブルモジュール１６が４つのメモリバンク１８を含む場合、リード/ライトサイクルにおける偽のミスの生起確率は２５％である。しかしながら、このライト処理が高々１サイクル置きに行われる場合には（学習及び消去処理は２サイクルを要するので）、偽ミスの生起確率は半減される。
【００３９】
ある実施例では、ルーティングテーブルモジュール１６は、マルチキャストアドレスの検索処理あるいは学習のためのリード処理において、偽ミスの発生を回避する。例えば、マルチキャストアドレスに適用される厳格な規格により、ルーティングテーブルモジュール１６は、マルチキャスト検索処理中ライト処理を回避することができる。同様に、学習処理では、ルーティングテーブルモジュール１６は、学習処理における読み込み処理中同時にライト処理が行われることを回避することができる。これにより、偽ミスに基づくルーティングテーブルモジュール１６による新たなエントリの学習の必要性の誤った検出を回避することができる。
【００４０】
アクセスモジュール２２のリード及びライト処理のスケジューリング処理のため、ルーティングテーブルモジュール１６は調停モジュール２０を有する。動作中、調停モジュール２０は、ポート１２から検索及び学習処理を受信し、アクセスモジュール２２に適したリード及びライト処理を決定する。調停モジュール２０は、これら検索及び学習処理を、メモリバンク１８のエントリの経過処理のような他の適切な処理と共に、優先順位付けする。ある実施例では、調停モジュール２０は、検索リクエストに最も高い優先順位を与えるかもしれない。検索リクエストに最も高い優先順位が与えられると、調停モジュール２０は、ワーストケースのトラフィックが与えられたとしても、このリクエストに対する処理を即座に実行する。
【００４１】
例えば、１２個のポート１２を有するスイッチ１０で、各ポート１２が最小サイズのイーサネット（登録商標）フレームを同時に受信するケースを考える。イーサネット（登録商標）規格によると、最小サイズイーサネット（登録商標）フレームは約６４バイトである。ある実施例では、スイッチ１０は、約２０サイクルで最小サイズのイーサネット（登録商標）フレームを受信することができる。従って、各ポート１２が最小サイズのイーサネット（登録商標）フレームを同時に受信した場合、どのポート１２も２０サイクルが経過しないと他のフレームの受信を開始することはできない（各ポート１２は現在フレームの受信に少なくとも２０サイクル要するため）。このワーストケースシナリオが与えられたとしても、各ポート１２からの検索リクエストは１２サイクル内で調停モジュール２０により処理される。これにより、新たな検索リクエストが到着する前に、約８スペアサイクルが残される。
【００４２】
この例では、各ポート１２はまた、パケット受信時に学習リクエストを生成するよう構成されてもよい。このため、ワーストケースの例では、調停モジュール２０はまた、１２の学習リクエストを、１２の検索リクエストと共に受信するかもしれない。８つのスペアサイクルしか与えられない場合、調停モジュール２０はこれらの学習リクエストの中の選択されたもののみ処理するかもしれない。従って、検索リクエストに高い優先順位を与えることは、スペアサイクルに対する学習リクエストの優先度を下げることになる。追加の学習リクエストが到達すると、調停モジュール２０は、学習リクエストをキューするか、あるいは未処理の学習リクエストを単に破棄するかもしれない。例えば、調停モジュール２０は、各ポート１２に対して最も最近受信した学習リクエストを単に保持するかもしれない。このとき、学習リクエストは最も最近受信したポートマッピングを反映したものになっているということを保証することができる。
【００４３】
例示された実施例及び前述の説明はルーティングテーブルモジュール１６のある実施例に注目したものとなっているが、スイッチ１０は合成された同時アクセスメモリ構造をサポートする任意の適切な構成要素の組み合わせ及び構成を有するルーティングテーブルモジュール１６を意図している。従って、例示された特定の構成要素により実行される機能は、必要に応じて分離または合成されてもよい。またこれら構成要素の一部またはすべてがメディアに符号化された論理により実現されてもよい。例えば、調停モジュール２０とアクセスモジュール２２の機能は、必要に応じて分離及び/または合成されてもよく、これら機能の何れかが適切な論理により実現されてもよい。さらに、メモリバンク１８は個々の構成要素として示されているが、ルーティングテーブルモジュールは同様の機能を提供する任意の適切なメモリ構造を利用してもよい。また、ルーティングテーブルモジュール１６の例示された構成要素の一部またはすべての機能は、１つのモジュールとして示されているが、スイッチ１０の他の構成要素に分散されていてもよい。
【００４４】
図３は、ルーティングテーブルモジュール１６による検索及び学習リクエストに応答し、メモリバンク１８に保持されるルーティング情報の定期的なメンテナンスを実行する方法を示すフローチャートである。フローチャートに関する以下の説明は、上述のルーティングテーブルモジュール１６の構成要素を参照することにより与えられる。しかしながら、前述のように、ルーティングテーブルモジュール１６は、構成要素の任意の適切な組み合わせ及び構成を含んでいてもよい。
【００４５】
ステップ２０において、調停モジュール２０は現在アクティブ状態の検索リクエストがあるか判断する。例えば、調停モジュール２０は、ポート２０の何れかが現在検索処理をリクエストしているかどうか判断してもよい。もしそのようなリクエストがなければ、ステップ５２において、調停モジュール２０は経過処理リクエストがアクティブ状態であるか判断する。例えば、調停モジュール２０は、定期的、不定期的あるいは任意の他の適当なタイミングで、経過処理リクエストを生成し、期限切れエントリをメモリバンク１８から消去する。もしそのような経過処理リクエストがなければ、ステップ５４において、調停モジュール２０はアクティブ状態の学習リクエストが存在するか判断する。例えば、調停モジュール２０はポート１２の何れかが学習処理をリクエストしたかチェックすることができる。もしそのようなリクエストがなければ、ステップ５０に戻り、ステップ５０、５２及び５４で、調停モジュール２０は、検索リクエストに最も高い優先順位を与える一方、検索、経過処理及び学習リクエストの処理を実行する。
【００４６】
ステップ５０において、調停モジュール２０が検索リクエストを検出すれば、ステップ５６において、調停モジュール２０は検索リード（ｒｅａｄ）処理をスケジューリングする。ステップ５８において、調停モジュール２０は、このスケジューリングされた検索がマルチキャストアドレスのためのものであるか判断する。例えば、送信先アドレスの特定ビットを調べることにより、調停モジュール２０は、このアドレスがマルチキャスト処理を示すものであるか判断してもよい。もしマルチキャストアドレスのためのものである場合、ステップ６０において、調停モジュール２０はスケジューリングされた任意のライト（ｗｒｉｔｅ）処理をキャンセルする。例えば、前のサイクルで調停モジュール２０は、学習あるいは消去コマンドのためのライト処理をスケジューリングしていたかもしれない。この場合、調停モジュール２０は、リード処理中の偽ミスを避けるため、このライト処理をキャンセルする。ステップ６２において、アクセスモジュール２２がスケジューリングされた処理を実行する。この場合、アクセスモジュール２２は、スケジューリングされた検索リード処理を実行し、スケジューリングされたライト処理が残っていれば、このライト処理を実行する。
【００４７】
他方、検索処理が検出されない場合、ステップ５２において、調停モジュール２０は経過処理リクエストをチェックする。経過処理リクエストが検出されると、ステップ６４において、調停モジュール２０は経過リード処理をスケジューリングする。この場合、アクセスモジュール２２は、このスケジューリングされた経過リード処理を含むスケジューリングされている処理をステップ６２において実行する。
【００４８】
アクティブ状態の検索または経過処理リクエストがない場合、ステップ５４において、調停モジュール２０はアクティブ状態の学習リクエストの検出を行う。アクティブ状態の学習リクエストが検出されると、ステップ６６において、調停モジュール２０はライト処理が現在スケジューリングされているか判断する。例えば、前のサイクルで調停モジュール２０はライト処理をスケジューリングされていたかもしれない。ルーティングテーブルモジュール１６はライト処理と学習リード処理との同時実行を避けようとするので、ステップ６６において、調停モジュール２０はライト処理をチェックする。ライト処理がスケジューリングされている場合、調停モジュール２０はステップ５０に戻る。他方、ライト処理がスケジューリングされていない場合、ステップ６８において、調停モジュール２０は学習リード処理のスケジューリングを行う。その後、アクセスモジュール２２は、スケジューリングされている学習リード処理を、ライト処理と同時に実行することなく、スケジューリングされている処理と共に実行する。
【００４９】
ステップ６２におけるスケジューリングされている処理の実行後、ステップ７０において、調停モジュール２０は書き込みの必要が検出されたかどうか判断する。例えば、学習リード処理の実行後、調停モジュール２０は学習ライト処理が必要であるか判断するようにしてもよい。書き込みが必要な場合、ステップ７２において、調停モジュール２０はライト処理のスケジューリングを行う。同様にして、調停モジュール２０は、ステップ７０において消去が必要であるかを検出し、ステップ７２において消去処理を実行するためのライト処理のスケジューリングを行うようにしてもよい。
【００５０】
前述のフローチャートは、ルーティングテーブルモジュール１６によるマルチバンクメモリ構成のアクセスに基づくルーティングテーブル処理のための一例となる処理を示している。しかしながら、このフローチャート及びそれに関する説明は処理の一例を示しているに過ぎず、スイッチ１０はマルチバンクメモリ方式をサポートする他の適切なテクニックを利用したルーティングテーブルモジュール１６が考えられる。このため、本フローチャートの多くのステップは、同時に実行されてもよいし、あるいは例示されたものと異なる順序で実行されてもよい。さらに、ルーティングテーブルモジュール１６は、適切である限り、ステップを追加あるいは縮減、及び/または異なるステップにより実行するよう構成されてもよい。
【００５１】
図４は、リードリクエスト処理時におけるアクセスモジュール２２の動作を示すフローチャートである。各サイクルにおいて、ステップ８０において、アクセスモジュール２２はリードリクエストが受信されたか判断する。リードリクエストが受信されていない場合、当該サイクルにおいて、アクセスモジュール２２はリードリクエストに関して処理を実行しない。他方、ステップ８０においてアクセスモジュール２２がリードリクエストを検出した場合、ステップ８２において、このリードリクエストのアドレスからハッシュキーを決定する。例えば、前述のように、アクセスモジュール２２はアドレス内の選択されたビットに基づきハッシュキーを決めるようにしてもよい。
【００５２】
ステップ８４において、アクセスモジュール２２は、ハッシュキーを利用することにより、対応する行からリード処理を行う。前述のように、このリード処理では、同時ライト処理が現時点でスケジューリングされていない場合、この対応する行のすべての領域２４にアクセスされる。ステップ８６において、アクセスモジュール２２は、当該行のエントリが受信したアドレスとマッチしているか決定する。同時ライト処理の有無に関係なく、アクセスモジュール２２は当該アドレスがヒットまたはミスであるか判断する。しかしながら、同時ライト処理が与えられている場合、アクセスモジュール２２は前述のように偽ミスを検出してしまうかもしれない。
【００５３】
マッチの場合、ステップ８８において、アクセスモジュール２２は適合したルーティング情報をリターンとして返す。例えば、検索リード処理に対し、アクセスモジュール２２はルーティング情報を適切なポート１２に提供する。同様に、学習リード処理に対し、アクセスモジュール２２は調停モジュール２０にヒットを通知する。他方ミスの場合、ステップ９０において、アクセスモジュール２２はミスを示す。例えば、検索リード処理に対し、アクセスモジュール２２はミスを適切なポート１２に示す。同様に、学習リード処理に対し、アクセスモジュール２２はミスを調停モジュール２０に示してもよい。
【００５４】
図４のフローチャートは、アクセスモジュール２２による調停モジュール２０からのリードリクエストの処理のための比較的簡単なテクニックを示したものである。しかしながら、図３と同様に、図４のフローチャートとそれに関する説明は、単なる処理の一例を示したものに過ぎず、スイッチ１０はルーティング情報にアクセスするための任意の適切なテクニックを利用したアクセスモジュール２２及び/または他の適切な構成要素を考えてもよい。このため、本フローチャートの多くのステップは、同時に実行されてもよいし、あるいは例示されたものと異なる順序で実行されてもよい。さらに、スイッチ１０は、適切である限り、ステップを追加あるいは縮減、及び/または異なるステップにより実行するよう構成されてもよい。
【００５５】
以上、本発明の好ましい実施例を説明したが、本発明はこれに限定されるわけではなく、本発明の要旨の範囲内で様々な変形及び変更が可能である。
【００５６】
（付記１）  パケットの通信が可能な複数のポート；
受信したパケットの前記複数のポート間での転送を可能とするスイッチファブリック；
複数の行に論理的に分割される複数のメモリバンクであって、前記複数の行のそれぞれが前記複数のメモリバンクの各々からのルーティングエントリの保持が可能な格納領域を有するメモリバンク；
検索リクエストと学習リクエストを前記複数のポートから受信し、前記検索リクエストと前記学習リクエストに基づき少なくとも１つのアドレスを有するメモリアクセス処理のスケジューリングを実行する調停モジュール；及び
前記メモリアクセス処理を受信し、前記アドレスから前記複数の行の１つを示すハッシュキーを決定し、前記示された行にアクセスして前記メモリアクセス処理の少なくとも１つを実行するメモリアクセスモジュール；
からなることを特徴とするスイッチ。
【００５７】
（付記２）  付記１記載のスイッチであって、前記調停モジュールは、未処理の学習リクエストを処理するためのメモリアクセス処理のスケジューリングを実行する前に、未処理の検索リクエストを処理するためのメモリアクセス処理のスケジューリングを実行することを特徴とするスイッチ。
【００５８】
（付記３）  付記１記載のスイッチであって、前記調停モジュールは、送信先アドレスを特定する検索リクエストを処理するための前記メモリアクセス処理のスケジューリングを実行し、前記メモリアクセス処理は前記検索リクエストからの前記送信先アドレスを示すリード処理を含むことを特徴とするスイッチ。
【００５９】
（付記４）  付記３記載のスイッチであって、前記調停モジュールはさらに、前記送信先アドレスがマルチキャストアドレスであるか判断し、前記送信先アドレスがマルチキャストアドレスである場合、前記メモリアクセス処理がライト処理を含まないことを保証するよう動作可能であることを特徴とするスイッチ。
【００６０】
（付記５）  付記３記載のスイッチであって、前記調停モジュールはさらに、前記複数のメモリバンクの選択された１つの中の前記格納領域の１つを示すライト処理を含むよう前記メモリアクセス処理のスケジューリングを実行することを特徴とするスイッチ。
【００６１】
（付記６）  付記１記載のスイッチであって、ルーティングエントリは、アドレス情報と、前記複数のポートの１つ以上を示すルーティング情報とを有することを特徴とするスイッチ。
【００６２】
（付記７）  付記１記載のスイッチであって、前記調停モジュールは、送信元アドレスを特定する学習リクエストを処理するための前記メモリアクセス処理のスケジューリングを実行し、前記メモリアクセス処理は前記検索リクエストからの前記送信元アドレスを示すリード処理を含むことを特徴とするスイッチ。
【００６３】
（付記８）  付記１記載のスイッチであって、前記メモリアクセス処理は、ライト処理とリード処理の少なくとも１つを含むことを特徴とするスイッチ。
【００６４】
（付記９）  付記１記載のスイッチであって、前記調停モジュールは、学習リクエストを処理するために、前記学習リクエストからの送信元アドレスを示すリード処理を含む第１メモリアクセス処理のスケジューリングを実行し、前記リード処理が前記複数のメモリバンクにおいてミスを検出したか判断し、前記ミスが検出された場合、前記学習リクエストから前記送信元アドレスとポートマッピングを示すライト処理を含む第２メモリアクセス処理のスケジューリングを実行することを特徴とするスイッチ。
【００６５】
（付記１０）  付記９記載のスイッチであって、前記調停モジュールはさらに、前記第１メモリアクセス処理がライト処理を含まないことを保証するよう動作可能であることを特徴とするスイッチ。
【００６６】
（付記１１）  ルーティングテーブル処理を実行する方法であって：
複数のポートの何れかからの検索リクエストと学習リクエストの受信を監視するステップ；
送信先アドレスを有する検索リクエストを検出するステップ；
前記送信先アドレスに基づきハッシュキーを決定するステップ；
前記ハッシュキーを利用して複数の行に論理的に分割される複数のメモリバンクを有するメモリモジュールにアクセスするステップであって、ここで前記複数の行のそれぞれは前記複数のメモリバンクのそれぞれからのルーティングエントリを保持することができる格納領域を含み、前記ハッシュキーは前記複数の行の１つを示しているステップ；
前記示された行からの前記ルーティングエントリの１つが前記送信先アドレスにマッチするアドレス情報を含むか判断するステップ；及び
前記示された行がマッチしたルーティングエントリを含む場合、前記マッチしたルーティングエントリから前記複数のポートの１つ以上を特定するルーティング情報を返すステップ；
からなることを特徴とする方法。
【００６７】
（付記１２）  付記１１記載の方法であって、さらに、未処理の学習リクエストの処理前に、未処理の検索リクエストを処理するステップを有することを特徴とする方法。
【００６８】
（付記１３）  付記１１記載の方法であって、さらに、前記送信先アドレスがマルチキャストアドレスであるか判断し、前記ハッシュキーを利用した前記メモリモジュールへのアクセス中、前記複数のメモリバンクの何れもがライト処理を実行しないことを保証するステップを有することを特徴とする方法。
【００６９】
（付記１４）  付記１１記載の方法であって、さらに、前記ハッシュキーを利用した前記メモリモジュールへのアクセス中にライト処理を実行するステップを有し、前記ライト処理は前記複数のメモリバンクの選択された１つの中の格納領域の１つを示し、前記ハッシュメモリを利用した前記メモリモジュールへアクセスするステップは前記ライト処理で示された前記メモリバンクを除くすべてのメモリバンクの前記示された行から前記エントリを読み出すことを特徴とする方法。
【００７０】
（付記１５）  付記１１記載の方法であって、さらに：
送信元アドレスとルーティング情報を特定する学習リクエストを検出するステップ；
前記送信元アドレスに基づき前記複数の行の第２の行を示す第２ハッシュキーを決定するステップ；及び
前記第２ハッシュキーを利用して前記メモリモジュールにアクセスするステップ；
を有することを特徴とする方法。
【００７１】
（付記１６）  付記１５記載の方法であって、さらに、前記第２ハッシュキーを利用した前記メモリモジュールへのアクセス中、前記複数のメモリバンクの何れもがライト処理を実行しないということを保証するステップを有することを特徴とする方法。
【００７２】
（付記１７）  付記１５記載の方法であって、さらに：
前記示された第２の行からのエントリの１つが前記ソースアドレスにマッチするアドレス情報を含むか判断するステップ；
前記エントリの何れもがマッチしない場合、前記示された第２の行が空のエントリを含むか判断するステップ；及び
前記示された第２の行が空のエントリを含む場合、前記空のエントリに前記送信元アドレスと前記ルーティング情報を書き込むステップ；
を有することを特徴とする方法。
【００７３】
（付記１８）  複数のポートの何れかからの検索リクエストと学習リクエストの受信を監視する手段；
送信先アドレスを有する検索リクエストを検出する手段；
前記送信先アドレスに基づきハッシュキーを決定する手段；
前記ハッシュキーを利用して複数の行に論理的に分割される複数のメモリバンクを有するメモリモジュールにアクセスする手段であって、ここで前記複数の行のそれぞれは前記複数のメモリバンクのそれぞれからのルーティングエントリを保持することができる格納領域を含み、前記ハッシュキーは前記複数の行の１つを示している手段；
前記示された行からの前記ルーティングエントリの１つが前記送信先アドレスにマッチするアドレス情報を含むか判断する手段；及び
前記示された行がマッチしたルーティングエントリを含む場合、前記マッチしたルーティングエントリから前記複数のポートの１つ以上を特定するルーティング情報を返す手段；
からなることを特徴とするスイッチ。
【００７４】
（付記１９）  付記１８記載のスイッチであって、さらに、前記送信先アドレスがマルチキャストアドレスであるか判断し、前記ハッシュキーを利用した前記メモリモジュールへのアクセス中、前記複数のメモリバンクの何れもがライト処理を実行しないことを保証する手段を有することを特徴とするスイッチ。
【００７５】
（付記２０）  付記１８記載のスイッチであって、さらに、前記ハッシュキーを利用した前記メモリモジュールへのアクセス中にライト処理を実行する手段を有し、前記ライト処理は前記複数のメモリバンクの選択された１つの中の格納領域の１つを示し、前記ハッシュメモリを利用した前記メモリモジュールへアクセスする手段は前記ライト処理で示された前記メモリバンクを除くすべてのメモリバンクの前記示された行から前記エントリを読み出すことを特徴とするスイッチ。
【００７６】
（付記２１）  付記１８記載のスイッチであって、さらに：
送信元アドレスとルーティング情報を特定する学習リクエストを検出する手段；
前記送信元アドレスに基づき前記複数の行の第２の行を示す第２ハッシュキーを決定する手段；及び
前記第２ハッシュキーを利用して前記メモリモジュールにアクセスする手段；
を有することを特徴とするスイッチ。
【００７７】
（付記２２）  付記２１記載のスイッチであって、さらに、前記第２ハッシュキーを利用した前記メモリモジュールへのアクセス中、前記複数のメモリバンクの何れもがライト処理を実行しないということを保証する手段を有することを特徴とするスイッチ。
【００７８】
（付記２３）  付記２１記載のスイッチであって、さらに：
前記示された第２の行からのエントリの１つが前記ソースアドレスにマッチするアドレス情報を含むか判断する手段；
前記エントリの何れもがマッチしない場合、前記示された第２の行が空のエントリを含むか判断する手段；及び
前記示された第２の行が空のエントリを含む場合、前記空のエントリに前記送信元アドレスと前記ルーティング情報を書き込む手段；
を有することを特徴とするスイッチ。
【図面の簡単な説明】
【００７９】
【図１】図１は、本発明の一実施例によるルーティングテーブルモジュールを有するマルチポートスイッチを示す図である。
【図２】図２は、図１に示されるスイッチの一例となるルーティングテーブルモジュールの構成を示すブロック図である。
【図３】図３は、マルチバンクルーティングテーブルモジュールを利用したルーティングテーブルの処理方法を示すフローチャートである。
【図４】図４は、マルチバンクメモリへのアクセス方法を示すフローチャートである。
【符号の説明】
【００８０】
１０  スイッチ
１２  ポート
１４  スイッチングファブリック
１６  ルーティングテーブルモジュール
１８  メモリバンク
２０  調停モジュール
２２  アクセスモジュール
２４  領域
【図１】
2004242326.tif 000003
【図２】
2004242326.tif 000004
【図３】
2004242326.tif 000005
【図４】
2004242326.tif 000006