(57)【特許請求の範囲】
【請求項１】
ネットワークスイッチ装置であって、
データパケットを受信するための複数の受信ポートと、
データパケットを伝達するために構成される複数のポートと、
前記受信したデータパケットに応答して、少なくとも１つの選択された送信ポートへの前記受信したデータパケットの送信を制御するための判断エンジンと、
外部メモリへインタフェースを提供する外部メモリインターフェイスとを含み、前記外部メモリインターフェイスは、前記ネットワークスイッチおよび前記外部メモリの間で前記データパケットを伝達するために構成され、前記外部メモリインタフェースは、
前記外部メモリへのアクセスのためにメモリアクセススロットをポートに選択的に割当てるためのスケジューラと、
前記スケジューラに結合され、プログラム可能情報エントリを含む割当テーブルを記憶するための割当テーブルメモリを含み、前記プログラム可能情報エントリは外部コントローラによって割当テーブルメモリに記憶され、前記プログラム可能情報エントリの各々はポート演算コードを含み、
前記判断エンジンは、前記複数の受信ポートに対応する複数のキュー装置を含み、複数のキュー装置は、前記対応する受信ポートによって受信したデータパケットを表わすデータブロックをキューし、
前記外部メモリインタフェースは、前記複数のキュー装置と相互作用して、前記複数のキュー装置の各々に前記外部メモリにアクセスするためのタイムスロットを割当てるスケジューラを含み、
前記ネットワークスイッチ装置は、さらに、複数の異なる構成の割当テーブルを記憶するためのプログラム可能メモリ装置を含み、
前記外部コントローラは、複数の割当テーブルのうちの選択された１つを前記割当テーブルメモリに書込み、
前記スケジューラは、前記割当テーブルメモリ内の前記割当テーブルのプログラム可能情報エントリに基づいて、メモリアクセススロットを選択的に割当て、
前記スケジューラは、前記ポート演算コードに基づいて、前記ポートの各々の演算を設定し、前記ポート演算コードは読込ビットおよび書出ビットのうちの１つを含み、前記スケジューラは対応するポート演算コードに基づいて各メモリアクセススロットを読込スロ
ットおよび書出スロットのうちの１つとして選択的に割当てる、ネットワークスイッチ装置。
【請求項２】
前記プログラム可能情報エントリは、さらにメモリアクセススロット割当ての順序を含み、前記スケジューラは、前記メモリアクセススロット割当ての順序に基づいて、継続的に繰返す順序としてメモリアクセススロットを割当てる、請求項１記載のネットワークスイッチ装置。
【請求項３】
前記プログラム可能情報エントリは、さらにメモリアクセススロット割当ての順序を含み、前記スケジューラは、前記メモリアクセススロット割当ての順序に基づいて、継続的に繰返す順序としてメモリアクセススロットを割当て、
前記プログラム可能情報エントリのうちの１つは、メモリアクセススロット割当ての順序の最後にラップアラウンドビットを含み、前記スケジューラは、ラップアラウンドビットを検出するとメモリアクセススロット割当ての順序の第１のメモリアクセススロットに戻る、請求項１記載のネットワークスイッチ装置。
【請求項４】
前記割当テーブルメモリはＲＡＭである、請求項１に記載のネットワークスイッチ装置。
【請求項５】
前記割当テーブルメモリはレジスタの群である、請求項１に記載のネットワークスイッチ装置。
【請求項６】
各々のプログラム可能情報エントリは複数のメモリアクセススロット割当を含み、スケジューラは１つまたはそれ以上の検出された状態に基づいて複数のメモリアクセススロット割当のうちの１つを選択する、請求項１に記載のネットワークスイッチ装置。
【請求項７】
データパケットを外部メモリに伝達するためにその各々が構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法であって、
プログラムされたメモリアクセススロット割当情報を含む複数の異なる構成の割当テーブルをメモリに記憶するステップと、
前記複数の割当テーブルのうちの１つを選択するステップと、
前記選択された割当テーブルに基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに選択的に割当てるステップと、
前記選択された割当テーブル内のプログラムされたメモリアクセススロット割当情報から、スロットからポートへの割当構成を選択するステップと、
選択されたスロットからポートへの割当構成をメモリからネットワークスイッチ内の割当構成メモリに書込むステップとを含み、前記選択的に割当てるステップは、割当構成メモリに記憶される選択されたスロットからポートへの割当構成に基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに割当てるステップを含み、
前記記憶するステップは、スロットからポートへの割当構成内のスロットからポートへの割当の各々を、対応するメモリアクセススロットが読込および書出スロットのうちの１つであるかどうかを示すための読込および書出ビットのうちの１つを含むようにセットするステップを含む、方法。
【請求項８】
データパケットを外部メモリに伝達するためにその各々が構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法であって、
プログラムされたメモリアクセススロット割当情報を含む複数の異なる構成の割当テーブルおよびポート演算コードをメモリに記憶するステップを含み、各々のポート演算コードは各々のポートの演算をセットするための読込ビットおよび書出ビットのうちの１つを含み、前記方法はさらに
前記複数の割当テーブルのうちの１つを選択するステップと、
前記選択された割当テーブルに基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに選択的に割当て、対応するポート演算コードに基づいてメモリアクセススロットの各々を読込スロットおよび書出スロットのうちの１つとして割当てるステ
ップと、
前記選択された割当テーブル内のプログラムされたメモリアクセススロット割当情報から、スロットからポートへの割当構成を選択するステップと、
選択されたスロットからポートへの割当構成をメモリからネットワークスイッチ内の割当構成メモリに書込むステップとを含み、前記選択的に割当てるステップは、割当構成メモリに記憶される選択されたスロットからポートへの割当構成に基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに割当てるステップを含み、
前記記憶するステップは、前記スロットからポートへの割当構成をメモリアクセススロット割当のＮ数の繰返す順序としてセットするステップを含む、方法。
【請求項９】
データパケットを外部メモリに伝達するためにその各々が構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法であって、
プログラムされたメモリアクセススロット割当情報を含む複数の異なる構成の割当テーブルおよびポート演算コードをメモリに記憶するステップを含み、各々のポート演算コードは各々のポートの演算をセットするための読込ビットおよび書出ビットのうちの１つを含み、前記方法はさらに
前記複数の割当テーブルのうちの１つを選択するステップと、
前記選択された割当テーブルに基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに選択的に割当て、対応するポート演算コードに基づいてメモリアクセススロットの各々を読込スロットおよび書出スロットのうちの１つとして割当てるステップと、
前記選択された割当テーブル内のプログラムされたメモリアクセススロット割当情報から、スロットからポートへの割当構成を選択するステップと、
選択されたスロットからポートへの割当構成をメモリからネットワークスイッチ内の割当構成メモリに書込むステップとを含み、前記選択的に割当てるステップは、割当構成メモリに記憶される選択されたスロットからポートへの割当構成に基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに割当てるステップを含み、
前記記憶するステップは、スロットからポートへの割当構成に、「Ｎ番目の」メモリアクセススロットからＮ数のメモリアクセススロット割当の順序の最初における第１のメモリアクセススロットにＮ数のメモリアクセススロット割当の順序を戻すラップアラウンドビットを記憶するステップを含む、方法。
【請求項１０】
交換ネットワークシステムであって、
プログラム可能システム設定を含む複数の異なる設定の割当テーブルを記憶するための第１のメモリと、
データパケットを記憶するための第２のメモリと、
前記データパケットを伝達するために構成される複数のポートを有するネットワークスイッチとを含み、
前記ネットワークスイッチは
（１）  ネットワークスイッチおよび第２のメモリの間でデータパケットを伝達するために構成される外部メモリインターフェイスと、
（２）  第２のメモリへのアクセスのためにメモリアクセススロットをポートの各々に選択的に割当てるためのスケジューラとを含み、前記メモリアクセススロットをポートの各々に選択的に割当てることは複数の割当テーブルのうちの選択された１つに基づき、前記交換ネットワークシステムはさらに
前記選択された１つの割当テーブルに含まれるプログラム可能システム設定をネットワークスイッチに供給するためのシステムコントローラを含み、
前記プログラム可能システム設定は、各々のポートの演算をセットするためのポート演算コードを含み、前記ポート演算コードは読込ビットおよび書出ビットのうちの１つを含み、前記スケジューラはメモリアクセススロットをそれぞれ読込および書出スロットとして割当てる、交換ネットワークシステム。
【請求項１１】
前記外部メモリインターフェイスはメモリアクセススロット割当テーブルメモリを含む、請求項１０に記載の交換ネットワークシステム。
【請求項１２】
交換ネットワークシステムであって、
プログラム可能システム設定を含む複数の異なる設定の割当テーブルを記憶するための第１のメモリと、
データパケットを記憶するための第２のメモリと、
前記データパケットを伝達するために構成される複数のポートを有するネットワークスイッチとを含み、
前記ネットワークスイッチは
（１）  ネットワークスイッチおよび第２のメモリの間でデータパケットを伝達するために構成される外部メモリインターフェイスと、
（２）  第２のメモリへのアクセスのためにメモリアクセススロットをポートの各々に選択的に割当てるためのスケジューラとを含み、前記メモリアクセススロットをポートの各々に選択的に割当てることは複数の割当テーブルのうちの選択された１つに基づき、前記交換ネットワークシステムはさらに
前記選択された１つの割当テーブルに含まれるプログラム可能システム設定をネットワークスイッチに供給するためのシステムコントローラを含み、
前記プログラム可能システム設定は、メモリアクセススロットの割当の際にスケジューラによって継続的に繰返されるＮ数のメモリアクセススロット割当の順序、および各々のポートの演算をセットするためのポート演算コードを含み、各々のポート演算コードは読込ビットおよび書出ビットのうちの１つを含み、スケジューラはメモリアクセススロットの各々をそれぞれ読込スロットおよび書出スロットとして割当てる、交換ネットワークシステム。
【請求項１３】
交換ネットワークシステムであって、
プログラム可能システム設定を含む複数の異なる設定の割当テーブルを記憶するための第１のメモリと、
データパケットを記憶するための第２のメモリと、
前記データパケットを伝達するために構成される複数のポートを有するネットワークスイッチとを含み、
前記ネットワークスイッチは
（１）  ネットワークスイッチおよび第２のメモリの間でデータパケットを伝達するために構成される外部メモリインターフェイスと、
（２）  第２のメモリへのアクセスのためにメモリアクセススロットをポートの各々に選択的に割当てるためのスケジューラとを含み、前記メモリアクセススロットをポートの各々に選択的に割当てることは複数の割当テーブルのうちの選択された１つに基づき、前記交換ネットワークシステムはさらに
前記選択された１つの割当テーブルに含まれるプログラム可能システム設定をネットワークスイッチに供給するためのシステムコントローラを含み、
前記プログラム可能システム設定は、メモリアクセススロットの割当の際にスケジューラによって継続的に繰返されるＮ数のメモリアクセススロット割当の順序を含み、
前記プログラム可能システム設定は、メモリアクセススロットの割当の際にスケジューラによって継続的に繰返されるＮ数のメモリアクセススロット割当の順序、および各々のポートの演算をセットするためのポート演算コードを含み、各々のポート演算コードは読込ビットおよび書出ビットのうちの１つを含み、スケジューラはメモリアクセススロットの各々をそれぞれ読込スロットおよび書出スロットとして割当て、
前記プログラム可能システム設定は順序の最後にラップアラウンドビットを含み、スケジューラはラップアラウンドビットを検出すると順序の開始点における第１のメモリアクセススロットに戻る、交換ネットワークシステム。
【請求項１４】
前記メモリアクセススロット割当テーブルメモリはＲＡＭである、請求項１１に記載の交換ネットワークシステム。
【請求項１５】
前記メモリアクセススロット割当テーブルメモリはレジスタの群である、請求項１１に記載の交換ネットワークシステム。
【請求項１６】
前記第１のメモリはＥＥＰＲＯＭである、請求項１１に記載の交換ネットワークシステム。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明はネットワークに関し、より特定的には、イーサネット（Ｒ）（ＩＥＥＥ８０２．３）プロトコルに従った全二重交換ネットワーク動作におけるネットワークトラフィックデータを制御するシステムおよび方法に関する。
【０００２】
【背景技術】
交換ローカルエリアネットワークは、ネットワーク局またはその他のネットワークノード間のデータフレームを供給するためにネットワークスイッチを用い、ここで各ネットワークノードは媒体によってネットワークスイッチに接続される。交換ローカルエリアネットワークアーキテクチャは、各ネットワークノード内のネットワークインターフェイスおよびネットワークスイッチの媒体へのアクセスを可能にする媒体アクセス制御（ＭＡＣ）を用いる。ネットワークスイッチは送信機ノードから受取ったデータフレームを、ヘッダ情報ならびにソースおよびディスティネーションアドレスを含む受取ったフレーム中のデータに基づいて、ディスティネーションノードに記憶および転送する。データフレームがスイッチを通過するときにそのデータフレームを一時的に記憶するために、ネットワークスイッチはＳＳＲＡＭなどの外部メモリを用いる。特に、ネットワークスイッチは外部メモリバスを介して外部メモリにデータフレームを記憶およびフェッチする。
【０００３】
制限されたメモリ帯域幅リソースを伴ってネットワークスイッチを「非ブロッキング」になるよう設計する（すなわち入力スイッチポートにおいて受取られるデータパケットの伝達における遅延を防ぐ）ことは困難であるため、ネットワークスイッチの各ポートは、確実にデータ伝達の遅延を防ぐために外部メモリから割当てられた十分なメモリリソースを有するようになっている。たとえばＳＳＲＡＭの外部メモリバスは、外部メモリバス上のデータビットの数（たとえば１６ビット、３２ビットなど）およびバスのデータ速度に基づいて制限される帯域幅を有する。よってネットワークスイッチは、ネットワークスイッチの各ポートに対して固定された数の時間スロットを割当ててもよい。しかし、より高速のスイッチポートにおけるデータトラフィックは外部メモリバスの帯域幅容量を超過するおそれがある。
【０００４】
従来は、「先着順」にメモリスロットをスロットを要求するポートに与える、要求に基づくアービトレーション(調停）スキームを用いてメモリスロットをポートに割当てるスイッチが提案されてきた。スロットが要求されると、アービトレータは受取った要求に応答してスロットを与えるが、それは前に要求されたスロットが完了した後にのみ行なわれる。しかし要求に基づくアービトレーションスキームは実現するのが複雑で難しく、誤りの尤度を増加させる。実現の見地からいうと、こうしたアービトレーションスキームはメモリ割当の制御においてより多くの困難さを示す。
【０００５】
その他のシステムは、固定された量の帯域幅をネットワークスイッチの各スロットに割当てる固定スロットスキームを含んだ。しかし、すべてのスロットに常に十分な帯域幅容量を与える必要があるために、これらのシステムは高価である。加えて、ポートは常に完全に用いられるわけではないため、ネットワークスイッチポートにおける不活性の時間のために、割当てられた帯域幅の多くが無駄になる。
【０００６】
帯域幅リソースの無駄をなくすために、プログラム可能メモリスロット割当スキームに従ってメモリアクセススロットを割当てるネットワークスイッチが必要とされる。
【０００７】
【発明の概要】
さらに、複雑なアービトレーションスキームの必要をなくすために、プログラム可能スロット割当スキームに従ってメモリアクセススロットを割当てるネットワークスイッチが必要とされる。
【０００８】
これらおよびその他の要求はこの発明によって達成され、ここで制限されるメモリ帯域幅スロットは、プログラム可能テーブルに記憶される情報に従ってそれぞれのポートに割当てられる。
【０００９】
この発明の一つの局面に従うと、ネットワークスイッチはデータパケットを伝達するために構成される複数のポートを含む。ネットワークスイッチ内の外部メモリインターフェイスは、ネットワークスイッチと外部メモリとの間でデータパケットを伝達するために構成される。この外部メモリインターフェイスは、それぞれのプログラム可能情報エントリに基づいて外部メモリインターフェイスのメモリアクセススロットをポートに選択的に割当てるためのスケジューラを含む。プログラム可能情報エントリに基づいてメモリアクセススロットをポートに選択的に割当てることにより、プログラム可能情報に基づいてメモリアクセススロットを割当てる際の柔軟性がこの発明に与えられる。さらにこのネットワークスイッチは、プログラム可能情報のそれぞれの組に基づく異なるネットワーク構成に対して最適化できる。加えて、メモリアクセススロットの割当はプログラム可能情報に基づいているため、プログラム可能情報エントリを用いることによって複雑かつコストのかかる、要求に基づくアービトレーションスキームが必要なくなる。
【００１０】
この発明の別の局面に従うと、その各々がデータパケットを外部メモリに伝達するよう構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法が提供される。この方法は、第１にプログラムされたメモリアクセススロット割当情報をメモリに記憶するステップを含む。次いでネットワークスイッチは、このプログラムされたメモリアクセススロット割当情報に基づいてそれぞれのネットワークスイッチポートにメモリアクセススロットを選択的に割当てる。プログラムされたメモリアクセススロット割当情報に基づいてそれぞれのポートにメモリアクセススロットを選択的に割当てることにより、プログラミングを通じて変化し得る情報に基づいてスロットを割当てる際の柔軟性がこの発明に与えられる。加えて、プログラムされたメモリアクセススロット割当情報の使用により、複雑かつコストのかかる、要求に基づくアービトレーションスキームの必要がなくなる。
【００１１】
この発明の付加的な利点および新たな特徴は、その一部が以下の説明に示されており、また一部は以下のことの試験によって当業者に明らかとなるか、またはこの発明の実施によって知られるであろう。この発明の利点は、添付の請求項において特に示される手段および組合せによって実現および達成されるであろう。
【００１２】
【実施例の詳細な説明】
添付の図面を参照し、図面において同じ参照番号を有する構成要素は図面を通じて類似の構成要素を表わす。
【００１３】
この発明について、イーサネット（Ｒ）（ＩＥＥＥ８０２．３）ネットワークなどのパケット交換ネットワーク中のスイッチの例を用いて説明する。しかし、この発明は他のパケット交換システムにも適用可能であることが明らかとなるであろう。
【００１４】
スイッチアーキテクチャの概要
図１は、この発明を有利に用い得る例示的なシステムのブロック図である。この例示的システム１０は、イーサネット（Ｒ）（ＩＥＥＥ８０２．３）ネットワークなどのパケット交換ネットワークである。このパケット交換ネットワークは、ネットワーク局間のデータパケットの通信を可能にする総合マルチポートスイッチ（ＩＭＳ）１２を含む。このネットワークは、異なる構成を有するネットワーク局、たとえば１２個の毎秒１０メガビット（１０Ｍｂ／ｓ）または１００Ｍｂ／ｓのネットワーク局１４（以後１０／１００Ｍｂ／ｓ）を含んでもよく、それらは１０Ｍｂ／ｓまたは１００Ｍｂ／ｓのネットワークデータ速度でデータを送信および受信し、また１０００Ｍｂ／ｓ（すなわち１Ｇｂ／ｓ）ネットワークノード２２を含んでもよく、それは１Ｇｂ／ｓのネットワーク速度でデータパケットを送信および受信する。ギガビットノード２２はサーバであっても、または高速バックボーンネットワークに対するゲートウェイであってもよい。よってマルチポートスイッチ１２は、イーサネット（Ｒ）プロトコルに基づいて、ネットワークノード１４または２２から受取ったデータパケットを適切なディスティネーションに選択的に転送する。
【００１５】
各マルチポートスイッチ１２は媒体アクセス制御（ＭＡＣ）モジュール２０を含み、これはＩＥＥＥ８０２．３ｕプロトコルに従って、それぞれの低減媒体独立インターフェイス（ＲＭＩＩ）１８を介して１０／１００Ｍｂ／ｓ物理層（ＰＨＹ）トランシーバ１６へ、またはそこからデータパケットを伝送および受信する。また各マルチポートスイッチ１２は、高速ネットワーク媒体２８を介したギガビットノード２２への伝送のために、ギガビットＰＨＹ２６へ、またはそこからデータパケットを送信および受信するためのギガビットＭＡＣ２４を含む。
【００１６】
１０／１００Ｍｂ／ｓネットワーク局１４の各々は、媒体１７を介し、半二重または全二重イーサネット（Ｒ）プロトコルのいずれかに従って、対応するマルチポートスイッチ１２へ、およびそこからデータパケットを送信および受信する。イーサネット（Ｒ）プロトコルＩＳＯ／ＩＥＣ８８０２−３（ＡＮＳＩ／ＩＥＥＥ  Ｓｔｄ．８０２．３、１９９３Ｅｄ．）は、すべての局１４が対等にネットワークチャネルにアクセスできるようにする半二重媒体アクセス機構を定める。半二重環境におけるトラフィックは媒体１７において識別されない。代わりに、各半二重局１４は、衝突検出を伴うキャリア検知多重アクセス（ＣＳＭＡ／ＣＤ）を用いて媒体上のトラフィックを調べるイーサネット（Ｒ）インターフェイスカードを含む。ネットワークトラフィックの不在は、媒体上の受信キャリアのデアサーションを検知することによって検出される。送信すべきデータを有するいずれの局１４も、媒体上の受信キャリアのデアサーションの後に、パケット間の間隙の間隔（ＩＰＧ）として知られる予め定められた時間だけ待つことによって、チャネルへのアクセスを試みる。複数の局１４がネットワークに送信すべきデータを有するとき、各局は媒体上の受信キャリアの検知されたデアサーションに応答して、ＩＰＧ間隔の後に伝送を試み、その結果衝突が起こるおそれがある。よって伝送する局は媒体をモニタすることにより、同時にデータを送信する別の局による衝突があったかどうかを判断する。衝突が検出されると、両方の局が停止し、ランダムな時間だけ待ってから伝送を再び試みる。
【００１７】
全二重モードで動作する１０／１００Ｍｂ／ｓネットワーク局１４は、イーサネット（Ｒ）標準ＩＥＥＥ８０２．３ｕに従ってデータパケットを送信および受信する。全二重環境は双方向の２地点間通信リンクを与えることにより、各リンクパートナーすなわち１０／１００Ｍｂ／ｓネットワーク局１４と対応するマルチポートスイッチ１２との間のデータパケットの同時伝送および受信を可能にする。
【００１８】
各マルチポートスイッチ１２は１０／１００物理層（ＰＨＹ）トランシーバ１６に繋がれ、このＰＨＹトランシーバは対応する低減媒体独立インターフェイス（ＲＭＩＩ）１８を横切って対応するマルチポートスイッチ１２へ、およびそこからデータパケットを送信および受信するために構成される。特に、各１０／１００ＰＨＹトランシーバ１６は、ＲＭＩＩ１８を介してマルチポートスイッチ１２と最大４つのネットワーク局１４との間でデータパケットを送信および受信するために構成される。磁気変圧器１９は、ＰＨＹトランシーバ１６と対応するネットワーク媒体１７との間のＡＣ結合を与える。よってＲＭＩＩ１８は、各ネットワーク局１４による対応するＰＨＹトランシーバ１６へのデータパケットの同時伝送および受信を可能にするために十分なデータ速度で動作する。
【００１９】
各マルチポートスイッチ１２はまた、定められたプロトコルに従って他のスイッチ間のデータを伝送するための拡張ポート３０を含む。各拡張ポート３０は、複数のマルチポートスイッチ１２を別のバックボーンネットワークとしてカスケードに接続できる。
【００２０】
図２は、マルチポートスイッチ１２のブロック図である。このマルチポートスイッチ１２は、フレーム転送判断を行なう判断エンジン４０と、フレーム転送判断に従ってフレームデータを伝達するためのスイッチサブシステム４２と、外部メモリインターフェイス４４と、管理情報ベース（ＭＩＢ）カウンタ４８ａおよび４８ｂ（集合的には４８）と、ＭＡＣ（媒体アクセス制御）プロトコルインターフェイス２０および２４とを含むことにより、ネットワーク局１４を供するイーサネット（Ｒ）（ＩＥＥＥ８０２．３）ポートとギガビットノード２２との間のデータパケットの経路付けを支持する。ＭＩＢカウンタ４８は、管理情報ベース（ＭＩＢ）オブジェクトの形の統計的ネットワーク情報を、以下に述べるホストＣＰＵ３２によって制御される外部管理エンティティに与える。
【００２１】
外部メモリインターフェイス４４は、マルチポートスイッチ１２のチップの大きさを最小化するために、たとえば同期型スタティックランダムアクセスメモリ（ＳＳＲＡＭ）などの外部メモリ３６におけるパケットデータの外部記憶を可能にする。特に、マルチポートスイッチ１２は受信したフレームデータおよびメモリ構造の記憶のために外部メモリ３６を用いる。外部メモリ３６は、６４ビット幅のデータ経路および１７ビット幅のアドレス経路を有するジョイント・エレクトロン・デバイス・エンジニアリング・カウンシル（ＪＥＤＥＣ）準拠のパイプラインされたバーストまたはゼロ・バス・ターンアラウンドTM（ＺＢＴ）−ＳＳＲＡＭのいずれかであることが好ましい。外部メモリ３６は、６４ビットワードにおいて１２８Ｋの上側および下側バンクとしてアドレス可能である。外部メモリ３６の大きさは少なくとも１Ｍバイトであることが好ましく、パイプラインを通じてすべてのクロックサイクルにデータ伝達が可能であることが好ましい。加えて、外部メモリインターフェイスクロックの動作するクロック周波数は最低６６ＭＨｚ、好ましくは１００ＭＨｚおよびそれ以上であることが好ましい。
【００２２】
マルチポートスイッチ１２はまた、ホストＣＰＵ３２などの外部管理エンティティがマルチポートスイッチ１２の全体の動作を制御することを可能にする処理インターフェイス５０を含む。特に、処理インターフェイス５０は定められたレジスタアクセス空間内のＣＰＵアクセスをデコードし、構成および状態レジスタ５２へ、およびそこから構成および状態値を読み書きする。
【００２３】
内部判断エンジン４０は内部規則チェッカ（ＩＲＣ）と呼ばれ、受取ったデータパケットに対するフレーム転送判断を行なう。
【００２４】
また、マルチポートスイッチ１２はＬＥＤインターフェイス５４を含み、これはポートごとの状態を計時して外部ＬＥＤ論理を駆動する。外部ＬＥＤ論理は人が読取可能なＬＥＤディスプレイ要素を駆動する。
【００２５】
ＩＲＣ４０のフレーム転送判断を実行するために構成されるスイッチサブシステム４２は、ポートベクトル先入れ先出し（ＦＩＦＯ）バッファ５６と、複数の出力キュー５８と、マルチコピーキュー６０と、マルチコピーキャッシュ６２と、自由バッファキュー６４と、リクレイムキュー６６とを含む。
【００２６】
ＭＡＣユニット２０は各ポートに対するモジュールを含み、各モジュールはＭＡＣ受信部分と、受信ＦＩＦＯバッファと、伝送ＦＩＦＯバッファと、ＭＡＣ伝送部分とを含む。ネットワーク局１４からのデータパケットは対応するＭＡＣポートによって受取られ、対応する受信ＦＩＦＯに記憶される。ＭＡＣユニット２０は自由バッファキュー６４から自由バッファの場所（すなわちフレームポインタ）を得、対応する受信ＦＩＦＯから外部メモリインターフェイス４４へ受取ったデータパケットを出力して、フレームポインタによって特定化された場所の外部メモリ３６に記憶させる。
【００２７】
ＩＲＣ４０はデータバスをモニタする（すなわち「覗く」）ことにより、フレームポインタの値および受取ったパケットのヘッダ情報（ソース、ディスティネーション、およびＶＬＡＮアドレス情報を含む）を定める。ＩＲＣ４０はヘッダ情報を用いて、フレームポインタによって特定化される場所に記憶されるデータフレームをどのＭＡＣポートが出力するかを定める。つまり、判断エンジン（すなわちＩＲＣ４０）は、所与のデータフレームが単一のポート、複数のポート、もしくはすべてのポート（すなわち放送）によって出力されるべきか、またはポートから出力されない（すなわち捨てられる）べきかを定めてもよい。たとえば、各データフレームはソースおよびディスティネーションアドレスを有するヘッダを含み、判断エンジン４０はそのディスティネーションアドレスに基づいて適切な出力ＭＡＣポートを識別してもよい。代替的には、ディスティネーションアドレスは、適切な判断エンジンが複数のネットワーク局に対応して識別する仮想アドレスに対応してもよい。加えてフレームは、定められる局の群のうち１つまたはそれ以上のところへ行く情報としてフレームを識別するＶＬＡＮタグヘッダを含んでもよい。またＩＲＣ４０は、受取ったデータパケットが拡張ポート３０を通じて別のマルチポートスイッチ１２に伝達されるべきであると判断してもよい。よって内部規則チェッカ４０は、外部メモリ３６に一時的に記憶されるフレームが単一のＭＡＣポートに出力されるべきか、または複数のＭＡＣポートに出力されるべきかを判断する。
【００２８】
内部規則チェッカ４０は、転送判断を転送記述子の形でスイッチサブシステム４２に出力する。転送記述子は、そのフレームが高い優先順位か低い優先順位かを識別する優先順位クラスと、データフレームを伝送すべき各ＭＡＣポートを識別するポートベクトルと、受信ポート数と、タグを付けられていないセットと、ＶＬＡＮ情報と、伝送の際にＶＬＡＮ情報を含むべき各ＭＡＣポートを識別するベクトルと、オペコードと、フレームポインタとを含む。ポートベクトルは、伝送のためにデータフレームを受信するためのＭＡＣポートを識別する（たとえば１０／１００ＭＡＣポート１−１２、ギガビットＭＡＣポート、および／または拡張ポートなど）。ポートベクトルＦＩＦＯ５６はポートベクトルを含む転送記述子をデコードし、データフレーム伝送を受取るための出力ＭＡＣポートに対応する適切な出力キュー５８にフレームポインタを供給する。言い換えると、ポートベクトルＦＩＦＯ５６はポートごとにフレームポインタを供給する。出力キュー５８はフレームポインタをデキューブロック７６（図３に示す）に与え、このデキューブロックは外部メモリインターフェイス４４を介して外部メモリ３６からポートベクトルにおいて識別されるデータフレームをフェッチして、回収したデータフレームを識別されたポートの適切な伝送ＦＩＦＯに供給する。データフレームが管理エージェントに供給されるとき、フレームポインタは管理キュー６８にも供給され、ＣＰＵインターフェイス５０を介してホストＣＰＵ３２によって処理され得る。
【００２９】
マルチコピーキュー６０およびマルチコピーキャッシュ６２は、それぞれのポートから伝送されるデータフレームのコピーの数を常に把握することにより、外部メモリ３６からデータフレームの適切な数のコピーが出力されるまで外部メモリ３６においてデータフレームが上書きされないことを確実にする。出力されるコピーの数がポートベクトルＦＩＦＯ５６において特定化されるポートの数に一致すると、フレームポインタはリクレイムキュー６６に転送される。リクレイムキュー６６はリクレイムされる必要のあるフレームポインタを記憶し、リンクトリストチェーンを進むことによって、バッファを自由ポインタとして自由バッファキュー６４に戻す。自由バッファキュー６４に戻された後、そのフレームポインタはＭＡＣユニット２０またはギガビットＭＡＣユニット２４による再使用のために利用可能である。
【００３０】
図３は、この発明の例示的な実施例に従って図２のスイッチサブシステム４２をより詳細に図示したものである。図２のマルチポートスイッチ１２のその他の構成要素を図３において再現することにより、これらその他の構成要素に対するスイッチサブシステム４２の接続を例示している。
【００３１】
図３に示すとおり、ＭＡＣモジュール２０は受信部分２０ａおよび伝送部分２４ｂを含む。受信部分２０ａおよび伝送部分２４ｂの各々は、ＩＥＥＥ８０２．３プロトコルに従って対応する受信または伝送機能を行なうために構成される１２個のＭＡＣモジュール（各２個のみを示し、番号７０ａ、７０ｂ、７０ｃおよび７０ｄによって参照する）を含む。ＭＡＣモジュール７０ｃおよび７０ｄは、それぞれモジュール７０ａおよび７０ｂに相補して、１０／１００Ｍｂ／ｓスイッチポートに対する伝送ＭＡＣ動作を行なう。
【００３２】
ギガビットＭＡＣポート２４もまた受信部分２４ａおよび伝送部分２４ｂを含み、拡張ポート３０も同様に受信部分３０ａおよび伝送部分３０ｂを含む。ギガビットＭＡＣポート２４および拡張ポート３０はまた、それぞれのポートに対して最適化された受信ＭＡＣモジュール７２ａおよび７２ｂを有する。ギガビットＭＡＣポート２４および拡張ポート３０ａの伝送部分２４ｂおよび３０ｂもまた、それぞれ伝送ＭＡＣモジュール７２ｃおよび７２ｄを有する。ＭＡＣモジュールは対応するポートにおける全二重動作のために構成され、ギガビットＭＡＣモジュール７２ａおよび７２ｃはギガビット提案標準ＩＥＥＥ案Ｐ８０２．３ｚに従って構成される。
【００３３】
各受信ＭＡＣモジュール７０ａ、７０ｂ、７２ａおよび７２ｂは、受信したデータを対応する内部受信ＦＩＦＯから外部メモリ３６および規則チェッカ４０に伝達するためのキュー論理７４を含む。各伝送ＭＡＣモジュール７０ｃ、７０ｄ、７２ｃおよび７２ｄは、外部メモリ３６から対応する内部伝送ＦＩＦＯにデータを伝達するためのデキュー論理７６と、自由バッファキュー６４からフレームポインタをフェッチするためのキュー論理７４とを含む。キュー論理７４はフェッチされたフレームポインタを用いて、外部メモリインターフェイスコントローラ４４を介して外部メモリ３６に受信データを記憶する。フレームバッファポインタは、受信されたデータフレームが受信ＦＩＦＯによって記憶される、外部メモリ３６中の場所を特定する。
【００３４】
外部メモリインターフェイス４４は、外部メモリ３６へのいずれかのスイッチポートのキュー論理７４またはデキュー論理７６によるメモリアクセスを制御するためのスケジューラ８０と、外部メモリ３６を伴う読み書き動作を行なうためのＳＳＲＡＭインターフェイス７８とを含む。特に、マルチポートスイッチ１２は非ブロッキングスイッチとして動作するために構成され、ここでネットワークデータはそれぞれ１０、１００または１０００Ｍｂ／ｓのワイヤ速度でスイッチポートから受信および出力される。よって、スケジューラ８０は異なるポートによるアクセスを制御することにより、外部メモリ３６の帯域幅の使用を最適化する。
【００３５】
各受信ＭＡＣは、対応するスイッチポートからの受信の際にフレームの部分を内部ＦＩＦＯに記憶する。すなわち、ＦＩＦＯの大きさはスケジューラ時間スロットの間に到着するフレームデータを記憶するために十分なものである。対応するキュー論理７４はフレームポインタを得て外部メモリインターフェイス４４に書出要求を送る。スケジューラ８０はキュー論理７４からのその他の書出要求またはデキュー論理７６からのあらゆる読込要求とともにその書出要求をスケジューリングし、要求しているキュー論理７４（またはデキュー論理７６）に対する許可を生成して、スケジューリングされた事象（すなわちスロット）における伝達を開始する。次いで、割当てられたスロットにおける直接メモリアクセス（ＤＭＡ）トランザクションにおいて、６４ビットのフレームデータが書出データバス６９ａを通じて受信ＦＩＦＯから外部メモリ３６に送信される。フレームデータは、自由バッファプール６４から得られるバッファポインタによって示される場所に記憶されるが、後述するようにいくつかの他のバッファを用いてデータフレームを記憶してもよい。
【００３６】
規則チェッカ４０はまた、書出データバス６９ａ上のＤＭＡ書出伝達をモニタする（すなわち覗く）ことによって、フレームポインタおよびヘッダ情報（ソースアドレス、ディスティネーションアドレス、ＶＬＡＮタグ情報などを含む）を受取る。規則チェッカ４０はヘッダ情報を用いて転送判断を行ない、ポートベクトルを含む転送記述子の形の転送命令を生成する。ポートベクトルは、フレームが転送されるべき各出力ポートに対するビットセットを有する。受取ったフレームがユニコピーフレームであるとき、規則チェッカ４０によって生成されるポートベクトルには１ビットのみがセットされる。ポートベクトルにセットされる単一ビットは、ポートの特定の１つに対応する。
【００３７】
規則チェッカ４０は、ポートベクトルとフレームポインタとを含む転送記述子をポートベクトルＦＩＦＯ５６に出力する。関連するフレームポインタをどの特定の出力キューが受取るべきかを判断するために、ポートベクトルはポートベクトルＦＩＦＯ５６によって調べられる。ポートベクトルＦＩＦＯ５６は、フレームポインタを適切なキュー５８および／または６８の頂部に置く。これはフレームの伝送をキューする。
【００３８】
図３に示されるとおり、各伝送ＭＡＣユニット７０ｃ、７０ｄ、７２ｄおよび７２ｃは、それぞれ関連する出力キュー５８ａ、５８ｂ、５８ｃおよび５８ｄを有する。好ましい実施例において、各出力キュー５８は高い優先順位フレームに対する高い優先順位キューと、低い優先順位フレームに対する低い優先順位キューとを有する。高い優先順位フレームは、保証されたアクセス待ち時間を必要とするフレーム、たとえばマルチメディア適用のためのフレームまたは管理ＭＡＣフレームなどに対して用いられる。ＦＩＦＯタイプの出力キュー５８に記憶されるフレームポインタは、それぞれの伝送ＭＡＣユニットに対するデキュー論理７６によって処理される。いくつかの時点において、フレームポインタは出力キュー５８の下部、たとえばギガビット伝送ＭＡＣ７２ｃに対する出力キュー５８ｄなどに達する。伝送ギガビットポート２４ｂに対するデキュー論理７６は対応するギガビットポート出力キュー５８ｄからフレームポインタを取得し、そのフレームポインタによって特定化されるメモリ場所における外部メモリ３６からフレームデータを読込むために、スケジューラ８０に要求を発行する。スケジューラ８０は要求をスケジューリングし、伝送ギガビットポート２４ｂのデキュー論理７６に許可を発行してＤＭＡ読込を開始させる。その許可に応答して、デキュー論理７６はフレームポインタによって示される外部メモリ３６中の場所からＤＭＡトランザクション中のフレームデータを（読込バス６９ｂに沿って）読込み、伝送ギガビットＭＡＣ７２ｃによる伝送のために、内部伝送ＦＩＦＯにフレームデータを記憶する。転送記述子がユニコピー伝送を特定化するとき、フレームデータ全体の伝送ＦＩＦＯへの書出に続いて、フレームポインタは自由バッファキュー６４に戻される。
【００３９】
マルチコピー伝送はユニコピー伝送と類似であるが、ポートベクトルはフレームが伝送される複数のポートを示す複数のビットセットを有する点が異なる。フレームポインタは適切な出力キュー５８の各々の中に置かれて、適切な伝送ＭＡＣユニット２０ｂ、２４ｂおよび／または３０ｂによって伝送される。
【００４０】
自由バッファプール６４、マルチコピーキュー６０、リクレイムキュー６６およびマルチコピーキャッシュ６２は、フレームポインタの使用、およびデータフレームがその示される出力ポートに伝送されたときのフレームポインタの再使用を管理するために用いられる。特にデキュー論理７６は、バッファ内容が適切な伝送ＦＩＦＯにコピーされた後に、ユニコピーフレームに対するフレームポインタを自由バッファキュー６４に送る。
【００４１】
マルチコピーフレームに対しては、ポートベクトルＦＩＦＯ５６は同じフレームポインタの複数のコピーを１つより多くの出力キュー５８に供給し、各フレームポインタは０にセットされたユニコピービットを有する。ポートベクトルＦＩＦＯ５６はまたマルチコピーキュー６０にフレームポインタおよびコピーカウントをコピーする。マルチコピーキュー６０はコピーカウントをマルチコピーキャッシュ６２に書出す。マルチコピーキャッシュ６２は、外部メモリ３６の各バッファ（すなわち各フレームポインタ）に対する単一のコピーカウントを有するランダムアクセスメモリである。
【００４２】
デキュー論理７６がフェッチされたフレームポインタに基づいて特定の出力ポートに対するフレームデータを検索し、伝送ＦＩＦＯにフレームデータを記憶すると、デキュー論理７６はユニコピービットが１にセットされているかどうかをチェックする。ユニコピービットが１にセットされているとき、フレームポインタは自由バッファキュー６４に戻される。ユニコピービットがマルチコピーフレームポインタを示す０にセットされているとき、デキュー論理７６はマルチコピーキュー６０に−１のコピーカウントを有するフレームポインタを書出す。マルチコピーキュー６０はマルチコピーキャッシュ６２に記憶されるエントリにコピーカウントを加える。
【００４３】
フレームポインタに対するマルチコピーキャッシュ６２のコピーカウントが０に達するとき、そのフレームポインタはリクレイムキュー６６に送られる。複数のバッファメモリ場所に単一のデータフレームを記憶するために複数のフレームポインタを用い得るため、フレームポインタは互いに参照されてフレームポインタのリンクトリスト（すなわちチェーン）を形成し、記憶されるデータフレーム全体を識別する。リクレイムキュー６６はフレームポインタによって識別されるバッファ場所のチェーンを横切り、フレームポインタを自由バッファキュー６４に送る。
【００４４】
以下のスイッチアーキテクチャの説明は、パケット交換ネットワークにおけるスイッチ動作の概要を提供する。ネットワークスイッチ１２において実施される際のこの発明の特徴のさらに詳細な説明を行なう。
【００４５】
プログラム可能メモリアクセススロット割当
この発明の実施例において、外部メモリインターフェイス４４の一部としてのスケジューラ７６は、ＳＳＲＡＭ３６へのアクセスのためにネットワークスイッチポートに対する帯域幅の許可をスケジューリングおよび発行するために用いられる。この特定の実施例において、ＳＳＲＡＭ３６は最大６．４ギガビットのスループット（読み書きターンアラウンドに対する数サイクルを除く）に等しい１００Ｍｂ／ｓクロックを有する６４ビットの幅のデータ経路を有することが好ましい。この実現例の１２−１００Ｍｂ／ｓ全二重ポートと、それに加える全二重ギガビットポート２４および約１．２Ｇｂ／ｓの拡張ポート３０とは、ＳＳＲＡＭ３６に対するアクセスに対する帯域幅容量を超過する。よってこの実施例は、ネットワークスイッチの外部にあるＥＥＰＲＯＭまたはコントローラなどの外部メモリデバイスに記憶され、かつメモリアクセススロットを割当てる際にスケジューラ７６によって用いられる割当テーブルメモリに書込まれるプログラムされた情報に従って、メモリアクセススロットと呼ばれる帯域幅の部分をネットワークスイッチポートに割当てる働きをする。
【００４６】
図４に示されるとおり、ネットワークスイッチ１２は外部メモリインターフェイス４４内に割当テーブルメモリ１００を含む。割当テーブルメモリ１００はいくつかのプログラム可能情報エントリを含む割当テーブルを記憶する。割当テーブルは、メモリアクセススロットをネットワークスイッチ１２のポートに割当てるためにスケジューラ７６によって用いられる。割当テーブル中の各プログラム可能情報エントリは、識別されたポートまたはそこから１つのポートが選択されるポートの群のいずれかに対するメモリアクセススロットに対応する割当（すなわちスロットからポートへの割当）を含む。割当テーブルメモリ１００は、たとえばＲＡＭまたはレジスタの群などを用いて実現されてもよい。
【００４７】
最初に、ホストＣＰＵ３２は割当テーブルを含む情報エントリを、たとえば周辺要素相互接続（ＰＣＩ）バスなどのバス１０４を介して外部プログラム可能記憶デバイス１０２に記憶する。外部プログラム可能メモリデバイス１０２は、その後ホストＣＰＵ３２によって割当テーブルメモリ１００に選択的に書込まれるプログラムされた情報エントリを記憶する。プログラム可能記憶デバイス１０２は、ＥＥＰＲＯＭまたはプログラムされた情報を受信および記憶できるその他のあらゆるデバイスによって実現されてもよい。
【００４８】
プログラム可能メモリデバイス１０２は、ネットワークスイッチによって用いられる、複数の異なる構成のスロットからポートへの割当テーブルを記憶してもよい。たとえば、各割当テーブルはスイッチ１２に対する異なるネットワーク構成に対応してもよい。たとえば図５に示されるとおり、プログラム可能メモリデバイス１０２の記憶領域２００は複数の異なる構成の割当テーブル（例、２０２、２０４、２０６、２０８）を含み、各テーブルは“Ｎ”数のスロットからポートへの割当エントリを有する。数“Ｎ”は、以下に述べるスケジューリング順序サイクルにおけるスロットの総数を表わす。
【００４９】
例として、図５において第１の構成２０２が拡大されており、ここでテーブル中の“Ｎ”数のメモリアクセススロットの各プログラム可能情報エントリ（例、２１０）は、スロット数２３０、ポート割当２３２、およびポート演算コード２３４を含むことが例示される。よって図５に示されるとおり、“１”という数はエントリ２１０に対するスロット数２３０およびエントリ２１０に対するポート割当２３２として記憶され、これはスロット１がポート数１に割当てられることを示す。第２のエントリ２１２はスロット数２を拡張ポート（すなわち“Ｅ”）に割当て、第３のエントリ２１４はスロット数３をポート数３に割当て、第４のエントリ２１６はスロット数４をギガビットポート（すなわち“Ｇ”）に割当て、以下同様である。加えて、読込（“Ｒ”）または書出（“Ｗ”）ビットなどのポート演算コード２３４が構成テーブル２０２の各エントリに記憶されることにより、スケジューラ７６が特定のポートにそれぞれ読込または書出スロットを割当てるよう指示する。言換えると、ポート演算コード２３４はそのポートが読込または書出動作のいずれであるかを特定化する。
【００５０】
図５はまた、所与のスロットに対するポート割当２３２は、検出された状態に基づいてポートを特定化してもよいことを例示する。たとえば、構成２０２中のスロット数７に対するエントリ２１８は拡張ポート３０（“Ｅ”）またはギガビットポート２４（“Ｇ”）のいずれに割当てられてもよく、この「または」の状態をアスタリスク（*）で示す。定められた期間内に拡張ポート３０がスロットを要求したかどうかなどの状態を用いて、スケジューラ７６がスロットを拡張ポート３０またはギガビットポート２４のいずれに割当てるかを判断してもよい。さらなる例として、構成２０２中のスロット９に対するエントリ２２０は、複数の代替的な状態のときにスロットが３つ（またはそれ以上）のポートのうちの１つに代替的に割当てられてもよいことを例示する。この例の例示のように、第１の期間内に拡張ポート３０およびギガビットポート２４のいずれが最初にスロット９を要求したかなどの状態を用いて、これら２つのポートのうちのどれがスロットを受取るかを判断してもよい。さらに、予め定められた期間内にギガビットポート２４または拡張ポート３０のいずれもスロットを要求しないとき、スロット９はポート９に割当てられる。
【００５１】
プログラム可能記憶デバイス１０２に記憶される構成テーブルの１つ（たとえば２０２）が選択され、ホストＣＰＵ３２によって外部メモリインターフェイス４４内に位置する割当テーブルメモリ１００に書込まれる。例示的な実施例においては、ホストＣＰＵ３２はＰＣＩバス１０４を介して割当テーブルメモリ１００に選択された割当テーブルを書込む。構成テーブルが割当テーブルメモリ１００に書込まれた後、スケジューラ７６は内部バス１０６を介してこの情報にアクセスし、アクセスした情報に基づいてメモリアクセススロットをポートに割当てる。
【００５２】
図６は割当テーブル２０２のスケジューリング順序サイクルを例示するものであり、ここでスケジューラ７６は、割当テーブルメモリ１００に記憶される構成２０２のエントリをデコードするのに応答してメモリアクセススロット３１０を割当てる。各スロット３１０は、特定のスロットが割当てられるポートを特定化する。矢印３０２によって示されるとおり、この順序はスロットからスロットへ反時計方向に進行する。
【００５３】
加えて、各構成テーブル（例、２０２、２０４、２０６、２０８）の最後または「Ｎ番目」のテーブルエントリにラップアラウンドビット（“ＷＲ”）が記憶されることにより、スケジューリング順序サイクルの長さがセットされる。スケジューラ７６はこのラップアラウンドビットを検出するのに応答して順序中の第１のスロット３１０1に戻る。たとえば、図５に示されるとおり、スロットＮに対する構成テーブルエントリ２２２は演算コードエントリ２２４中にラップアラウンドビット（ＷＲ）を含む。図６においては、構成テーブルエントリ２２２に記憶されるラップアラウンドビット（ＷＲ）の存在に応答して、スケジューラ７６がスロット３１０Nから３１０1に戻って順序を繰返すことを矢印３０４によって例示する。よって、ラップアラウンドビットはサイクル当りのスロットの“Ｎ”数を定められた数にセットし、スケジューリング順序サイクルの長さに柔軟性を与える。
【００５４】
図７に、スロットを割当てるためのこの発明の方法を示す。ステップＳ１において、ホストＣＰＵ３２は割当テーブルをプログラム可能記憶デバイス１０２に記憶される複数のプログラムされた割当テーブルから選択するか、または代替的にはＣＰＵがユーザ入力から直接割当テーブルをプログラムおよび選択する。ステップＳ２において、ホストＣＰＵ３２は選択された割当テーブル（たとえば２０２）をプログラム可能記憶デバイス１０２から外部メモリインターフェイス４４の割当テーブルメモリ１００に書込むか、またはユーザのプログラムした割当テーブルを割当テーブルメモリ１００に直接書込む。次いでステップＳ３において、スケジューラ８０が割当テーブルメモリ１００に記憶されるポートからスロットへの割当情報をデコードし、それに応答してメモリアクセススロットをネットワークスイッチポートに割当てる。次いでステップＳ４において、スケジューラ８０は、ホストＣＰＵ３２がプログラムされた記憶デバイス１０２から割当テーブルメモリ１００への変更されたまたは新たな構成テーブルの書込の開始を試みているかどうかを検出する。割当テーブルメモリ１００に対する変更が書込まれていないとき、スケジューラ８０は割当テーブルメモリ１００に記憶された現存する割当テーブルに従ってスロットの割当を継続する。しかし、割当テーブルメモリに変更の書込が試みられているときには、この方法ではステップＳ２に戻り、そこでスケジューラ８０は割当テーブルメモリの変更を割当テーブルメモリ１００に書込ませて、次いでステップＳ３において新たな順序に従ってスロットを割当てる。
【００５５】
割当テーブルメモリ１００中の情報の変更に関して、ユーザはプログラム可能メモリデバイス１０２に記憶される割当テーブルを選択することによって、またはホストＣＰＵ３２から直接割当テーブルメモリ１００に新たな割当テーブルをプログラムすることによって、ホストＣＰＵ３２を介してネットワークスイッチ１２の動作を制御してもよい。前述のとおり、代替的な実施例はホストＣＰＵ３２からの制御の必要のないコントローラとして実現されるプログラム可能メモリデバイス１０２を含んでもよい。別の実施例は、スケジューラ８０がＰＣＩバス１０４を介してプログラム可能メモリデバイス１０２から割当テーブルを直接フェッチすることを可能にする、ネットワークスイッチ１２の内部レジスタへのアドレスポインタの書出を含んでもよい。
【００５６】
この発明を、現在最も実用的かつ好ましい実施例と考えられるものに関して説明したが、この発明は開示される実施例に制限されるものではなく、反対に添付の請求項の趣旨および範囲内に含まれるさまざまな変更形および同等の装置を包含することを意図するものであることが理解される。
【図面の簡単な説明】
【図１】  この発明の実施例に従った複数のポートスイッチを含むパケット交換ネットワークのブロック図である。
【図２】  図１の複数のポートスイッチのブロック図である。
【図３】  図３は図３Ａ−Ｃよりなる。図２のスイッチサブシステムを詳細に例示するブロック図である。
【図４】  この発明の実施例に従った外部メモリインターフェイスおよびネットワークスイッチ外部接続を詳細に例示するブロック図である。
【図５】  この発明の実施例に従ったプログラム可能記憶デバイスおよびそのデバイス中に記憶されるデータの表構成を例示する図である。
【図６】  この発明の実施例に従ったメモリアクセススロット割当を例示する順序図である。
【図７】  この発明の方法に従った流れ図である。
【図１】
0004500457.tif 000002
【図２】
0004500457.tif 000003
【図３】
0004500457.tif 000004
【図３Ａ】
0004500457.tif 000005
【図３Ｂ】
0004500457.tif 000006
【図３Ｃ】
0004500457.tif 000007
【図４】
0004500457.tif 000008
【図５】
0004500457.tif 000009
【図６】
0004500457.tif 000010
【図７】
0004500457.tif 000011