JP4500457B2 - プログラム可能メモリアクセススロット割当のための装置および方法 - Google Patents
プログラム可能メモリアクセススロット割当のための装置および方法 Download PDFInfo
- Publication number
- JP4500457B2 JP4500457B2 JP2000619870A JP2000619870A JP4500457B2 JP 4500457 B2 JP4500457 B2 JP 4500457B2 JP 2000619870 A JP2000619870 A JP 2000619870A JP 2000619870 A JP2000619870 A JP 2000619870A JP 4500457 B2 JP4500457 B2 JP 4500457B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory access
- slot
- port
- allocation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Description
【発明の分野】
この発明はネットワークに関し、より特定的には、イーサネット(R)(IEEE802.3)プロトコルに従った全二重交換ネットワーク動作におけるネットワークトラフィックデータを制御するシステムおよび方法に関する。
【0002】
【背景技術】
交換ローカルエリアネットワークは、ネットワーク局またはその他のネットワークノード間のデータフレームを供給するためにネットワークスイッチを用い、ここで各ネットワークノードは媒体によってネットワークスイッチに接続される。交換ローカルエリアネットワークアーキテクチャは、各ネットワークノード内のネットワークインターフェイスおよびネットワークスイッチの媒体へのアクセスを可能にする媒体アクセス制御(MAC)を用いる。ネットワークスイッチは送信機ノードから受取ったデータフレームを、ヘッダ情報ならびにソースおよびディスティネーションアドレスを含む受取ったフレーム中のデータに基づいて、ディスティネーションノードに記憶および転送する。データフレームがスイッチを通過するときにそのデータフレームを一時的に記憶するために、ネットワークスイッチはSSRAMなどの外部メモリを用いる。特に、ネットワークスイッチは外部メモリバスを介して外部メモリにデータフレームを記憶およびフェッチする。
【0003】
制限されたメモリ帯域幅リソースを伴ってネットワークスイッチを「非ブロッキング」になるよう設計する(すなわち入力スイッチポートにおいて受取られるデータパケットの伝達における遅延を防ぐ)ことは困難であるため、ネットワークスイッチの各ポートは、確実にデータ伝達の遅延を防ぐために外部メモリから割当てられた十分なメモリリソースを有するようになっている。たとえばSSRAMの外部メモリバスは、外部メモリバス上のデータビットの数(たとえば16ビット、32ビットなど)およびバスのデータ速度に基づいて制限される帯域幅を有する。よってネットワークスイッチは、ネットワークスイッチの各ポートに対して固定された数の時間スロットを割当ててもよい。しかし、より高速のスイッチポートにおけるデータトラフィックは外部メモリバスの帯域幅容量を超過するおそれがある。
【0004】
従来は、「先着順」にメモリスロットをスロットを要求するポートに与える、要求に基づくアービトレーション(調停)スキームを用いてメモリスロットをポートに割当てるスイッチが提案されてきた。スロットが要求されると、アービトレータは受取った要求に応答してスロットを与えるが、それは前に要求されたスロットが完了した後にのみ行なわれる。しかし要求に基づくアービトレーションスキームは実現するのが複雑で難しく、誤りの尤度を増加させる。実現の見地からいうと、こうしたアービトレーションスキームはメモリ割当の制御においてより多くの困難さを示す。
【0005】
その他のシステムは、固定された量の帯域幅をネットワークスイッチの各スロットに割当てる固定スロットスキームを含んだ。しかし、すべてのスロットに常に十分な帯域幅容量を与える必要があるために、これらのシステムは高価である。加えて、ポートは常に完全に用いられるわけではないため、ネットワークスイッチポートにおける不活性の時間のために、割当てられた帯域幅の多くが無駄になる。
【0006】
帯域幅リソースの無駄をなくすために、プログラム可能メモリスロット割当スキームに従ってメモリアクセススロットを割当てるネットワークスイッチが必要とされる。
【0007】
【発明の概要】
さらに、複雑なアービトレーションスキームの必要をなくすために、プログラム可能スロット割当スキームに従ってメモリアクセススロットを割当てるネットワークスイッチが必要とされる。
【0008】
これらおよびその他の要求はこの発明によって達成され、ここで制限されるメモリ帯域幅スロットは、プログラム可能テーブルに記憶される情報に従ってそれぞれのポートに割当てられる。
【0009】
この発明の一つの局面に従うと、ネットワークスイッチはデータパケットを伝達するために構成される複数のポートを含む。ネットワークスイッチ内の外部メモリインターフェイスは、ネットワークスイッチと外部メモリとの間でデータパケットを伝達するために構成される。この外部メモリインターフェイスは、それぞれのプログラム可能情報エントリに基づいて外部メモリインターフェイスのメモリアクセススロットをポートに選択的に割当てるためのスケジューラを含む。プログラム可能情報エントリに基づいてメモリアクセススロットをポートに選択的に割当てることにより、プログラム可能情報に基づいてメモリアクセススロットを割当てる際の柔軟性がこの発明に与えられる。さらにこのネットワークスイッチは、プログラム可能情報のそれぞれの組に基づく異なるネットワーク構成に対して最適化できる。加えて、メモリアクセススロットの割当はプログラム可能情報に基づいているため、プログラム可能情報エントリを用いることによって複雑かつコストのかかる、要求に基づくアービトレーションスキームが必要なくなる。
【0010】
この発明の別の局面に従うと、その各々がデータパケットを外部メモリに伝達するよう構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法が提供される。この方法は、第1にプログラムされたメモリアクセススロット割当情報をメモリに記憶するステップを含む。次いでネットワークスイッチは、このプログラムされたメモリアクセススロット割当情報に基づいてそれぞれのネットワークスイッチポートにメモリアクセススロットを選択的に割当てる。プログラムされたメモリアクセススロット割当情報に基づいてそれぞれのポートにメモリアクセススロットを選択的に割当てることにより、プログラミングを通じて変化し得る情報に基づいてスロットを割当てる際の柔軟性がこの発明に与えられる。加えて、プログラムされたメモリアクセススロット割当情報の使用により、複雑かつコストのかかる、要求に基づくアービトレーションスキームの必要がなくなる。
【0011】
この発明の付加的な利点および新たな特徴は、その一部が以下の説明に示されており、また一部は以下のことの試験によって当業者に明らかとなるか、またはこの発明の実施によって知られるであろう。この発明の利点は、添付の請求項において特に示される手段および組合せによって実現および達成されるであろう。
【0012】
【実施例の詳細な説明】
添付の図面を参照し、図面において同じ参照番号を有する構成要素は図面を通じて類似の構成要素を表わす。
【0013】
この発明について、イーサネット(R)(IEEE802.3)ネットワークなどのパケット交換ネットワーク中のスイッチの例を用いて説明する。しかし、この発明は他のパケット交換システムにも適用可能であることが明らかとなるであろう。
【0014】
スイッチアーキテクチャの概要
図1は、この発明を有利に用い得る例示的なシステムのブロック図である。この例示的システム10は、イーサネット(R)(IEEE802.3)ネットワークなどのパケット交換ネットワークである。このパケット交換ネットワークは、ネットワーク局間のデータパケットの通信を可能にする総合マルチポートスイッチ(IMS)12を含む。このネットワークは、異なる構成を有するネットワーク局、たとえば12個の毎秒10メガビット(10Mb/s)または100Mb/sのネットワーク局14(以後10/100Mb/s)を含んでもよく、それらは10Mb/sまたは100Mb/sのネットワークデータ速度でデータを送信および受信し、また1000Mb/s(すなわち1Gb/s)ネットワークノード22を含んでもよく、それは1Gb/sのネットワーク速度でデータパケットを送信および受信する。ギガビットノード22はサーバであっても、または高速バックボーンネットワークに対するゲートウェイであってもよい。よってマルチポートスイッチ12は、イーサネット(R)プロトコルに基づいて、ネットワークノード14または22から受取ったデータパケットを適切なディスティネーションに選択的に転送する。
【0015】
各マルチポートスイッチ12は媒体アクセス制御(MAC)モジュール20を含み、これはIEEE802.3uプロトコルに従って、それぞれの低減媒体独立インターフェイス(RMII)18を介して10/100Mb/s物理層(PHY)トランシーバ16へ、またはそこからデータパケットを伝送および受信する。また各マルチポートスイッチ12は、高速ネットワーク媒体28を介したギガビットノード22への伝送のために、ギガビットPHY26へ、またはそこからデータパケットを送信および受信するためのギガビットMAC24を含む。
【0016】
10/100Mb/sネットワーク局14の各々は、媒体17を介し、半二重または全二重イーサネット(R)プロトコルのいずれかに従って、対応するマルチポートスイッチ12へ、およびそこからデータパケットを送信および受信する。イーサネット(R)プロトコルISO/IEC8802−3(ANSI/IEEE Std.802.3、1993Ed.)は、すべての局14が対等にネットワークチャネルにアクセスできるようにする半二重媒体アクセス機構を定める。半二重環境におけるトラフィックは媒体17において識別されない。代わりに、各半二重局14は、衝突検出を伴うキャリア検知多重アクセス(CSMA/CD)を用いて媒体上のトラフィックを調べるイーサネット(R)インターフェイスカードを含む。ネットワークトラフィックの不在は、媒体上の受信キャリアのデアサーションを検知することによって検出される。送信すべきデータを有するいずれの局14も、媒体上の受信キャリアのデアサーションの後に、パケット間の間隙の間隔(IPG)として知られる予め定められた時間だけ待つことによって、チャネルへのアクセスを試みる。複数の局14がネットワークに送信すべきデータを有するとき、各局は媒体上の受信キャリアの検知されたデアサーションに応答して、IPG間隔の後に伝送を試み、その結果衝突が起こるおそれがある。よって伝送する局は媒体をモニタすることにより、同時にデータを送信する別の局による衝突があったかどうかを判断する。衝突が検出されると、両方の局が停止し、ランダムな時間だけ待ってから伝送を再び試みる。
【0017】
全二重モードで動作する10/100Mb/sネットワーク局14は、イーサネット(R)標準IEEE802.3uに従ってデータパケットを送信および受信する。全二重環境は双方向の2地点間通信リンクを与えることにより、各リンクパートナーすなわち10/100Mb/sネットワーク局14と対応するマルチポートスイッチ12との間のデータパケットの同時伝送および受信を可能にする。
【0018】
各マルチポートスイッチ12は10/100物理層(PHY)トランシーバ16に繋がれ、このPHYトランシーバは対応する低減媒体独立インターフェイス(RMII)18を横切って対応するマルチポートスイッチ12へ、およびそこからデータパケットを送信および受信するために構成される。特に、各10/100PHYトランシーバ16は、RMII18を介してマルチポートスイッチ12と最大4つのネットワーク局14との間でデータパケットを送信および受信するために構成される。磁気変圧器19は、PHYトランシーバ16と対応するネットワーク媒体17との間のAC結合を与える。よってRMII18は、各ネットワーク局14による対応するPHYトランシーバ16へのデータパケットの同時伝送および受信を可能にするために十分なデータ速度で動作する。
【0019】
各マルチポートスイッチ12はまた、定められたプロトコルに従って他のスイッチ間のデータを伝送するための拡張ポート30を含む。各拡張ポート30は、複数のマルチポートスイッチ12を別のバックボーンネットワークとしてカスケードに接続できる。
【0020】
図2は、マルチポートスイッチ12のブロック図である。このマルチポートスイッチ12は、フレーム転送判断を行なう判断エンジン40と、フレーム転送判断に従ってフレームデータを伝達するためのスイッチサブシステム42と、外部メモリインターフェイス44と、管理情報ベース(MIB)カウンタ48aおよび48b(集合的には48)と、MAC(媒体アクセス制御)プロトコルインターフェイス20および24とを含むことにより、ネットワーク局14を供するイーサネット(R)(IEEE802.3)ポートとギガビットノード22との間のデータパケットの経路付けを支持する。MIBカウンタ48は、管理情報ベース(MIB)オブジェクトの形の統計的ネットワーク情報を、以下に述べるホストCPU32によって制御される外部管理エンティティに与える。
【0021】
外部メモリインターフェイス44は、マルチポートスイッチ12のチップの大きさを最小化するために、たとえば同期型スタティックランダムアクセスメモリ(SSRAM)などの外部メモリ36におけるパケットデータの外部記憶を可能にする。特に、マルチポートスイッチ12は受信したフレームデータおよびメモリ構造の記憶のために外部メモリ36を用いる。外部メモリ36は、64ビット幅のデータ経路および17ビット幅のアドレス経路を有するジョイント・エレクトロン・デバイス・エンジニアリング・カウンシル(JEDEC)準拠のパイプラインされたバーストまたはゼロ・バス・ターンアラウンドTM(ZBT)−SSRAMのいずれかであることが好ましい。外部メモリ36は、64ビットワードにおいて128Kの上側および下側バンクとしてアドレス可能である。外部メモリ36の大きさは少なくとも1Mバイトであることが好ましく、パイプラインを通じてすべてのクロックサイクルにデータ伝達が可能であることが好ましい。加えて、外部メモリインターフェイスクロックの動作するクロック周波数は最低66MHz、好ましくは100MHzおよびそれ以上であることが好ましい。
【0022】
マルチポートスイッチ12はまた、ホストCPU32などの外部管理エンティティがマルチポートスイッチ12の全体の動作を制御することを可能にする処理インターフェイス50を含む。特に、処理インターフェイス50は定められたレジスタアクセス空間内のCPUアクセスをデコードし、構成および状態レジスタ52へ、およびそこから構成および状態値を読み書きする。
【0023】
内部判断エンジン40は内部規則チェッカ(IRC)と呼ばれ、受取ったデータパケットに対するフレーム転送判断を行なう。
【0024】
また、マルチポートスイッチ12はLEDインターフェイス54を含み、これはポートごとの状態を計時して外部LED論理を駆動する。外部LED論理は人が読取可能なLEDディスプレイ要素を駆動する。
【0025】
IRC40のフレーム転送判断を実行するために構成されるスイッチサブシステム42は、ポートベクトル先入れ先出し(FIFO)バッファ56と、複数の出力キュー58と、マルチコピーキュー60と、マルチコピーキャッシュ62と、自由バッファキュー64と、リクレイムキュー66とを含む。
【0026】
MACユニット20は各ポートに対するモジュールを含み、各モジュールはMAC受信部分と、受信FIFOバッファと、伝送FIFOバッファと、MAC伝送部分とを含む。ネットワーク局14からのデータパケットは対応するMACポートによって受取られ、対応する受信FIFOに記憶される。MACユニット20は自由バッファキュー64から自由バッファの場所(すなわちフレームポインタ)を得、対応する受信FIFOから外部メモリインターフェイス44へ受取ったデータパケットを出力して、フレームポインタによって特定化された場所の外部メモリ36に記憶させる。
【0027】
IRC40はデータバスをモニタする(すなわち「覗く」)ことにより、フレームポインタの値および受取ったパケットのヘッダ情報(ソース、ディスティネーション、およびVLANアドレス情報を含む)を定める。IRC40はヘッダ情報を用いて、フレームポインタによって特定化される場所に記憶されるデータフレームをどのMACポートが出力するかを定める。つまり、判断エンジン(すなわちIRC40)は、所与のデータフレームが単一のポート、複数のポート、もしくはすべてのポート(すなわち放送)によって出力されるべきか、またはポートから出力されない(すなわち捨てられる)べきかを定めてもよい。たとえば、各データフレームはソースおよびディスティネーションアドレスを有するヘッダを含み、判断エンジン40はそのディスティネーションアドレスに基づいて適切な出力MACポートを識別してもよい。代替的には、ディスティネーションアドレスは、適切な判断エンジンが複数のネットワーク局に対応して識別する仮想アドレスに対応してもよい。加えてフレームは、定められる局の群のうち1つまたはそれ以上のところへ行く情報としてフレームを識別するVLANタグヘッダを含んでもよい。またIRC40は、受取ったデータパケットが拡張ポート30を通じて別のマルチポートスイッチ12に伝達されるべきであると判断してもよい。よって内部規則チェッカ40は、外部メモリ36に一時的に記憶されるフレームが単一のMACポートに出力されるべきか、または複数のMACポートに出力されるべきかを判断する。
【0028】
内部規則チェッカ40は、転送判断を転送記述子の形でスイッチサブシステム42に出力する。転送記述子は、そのフレームが高い優先順位か低い優先順位かを識別する優先順位クラスと、データフレームを伝送すべき各MACポートを識別するポートベクトルと、受信ポート数と、タグを付けられていないセットと、VLAN情報と、伝送の際にVLAN情報を含むべき各MACポートを識別するベクトルと、オペコードと、フレームポインタとを含む。ポートベクトルは、伝送のためにデータフレームを受信するためのMACポートを識別する(たとえば10/100MACポート1−12、ギガビットMACポート、および/または拡張ポートなど)。ポートベクトルFIFO56はポートベクトルを含む転送記述子をデコードし、データフレーム伝送を受取るための出力MACポートに対応する適切な出力キュー58にフレームポインタを供給する。言い換えると、ポートベクトルFIFO56はポートごとにフレームポインタを供給する。出力キュー58はフレームポインタをデキューブロック76(図3に示す)に与え、このデキューブロックは外部メモリインターフェイス44を介して外部メモリ36からポートベクトルにおいて識別されるデータフレームをフェッチして、回収したデータフレームを識別されたポートの適切な伝送FIFOに供給する。データフレームが管理エージェントに供給されるとき、フレームポインタは管理キュー68にも供給され、CPUインターフェイス50を介してホストCPU32によって処理され得る。
【0029】
マルチコピーキュー60およびマルチコピーキャッシュ62は、それぞれのポートから伝送されるデータフレームのコピーの数を常に把握することにより、外部メモリ36からデータフレームの適切な数のコピーが出力されるまで外部メモリ36においてデータフレームが上書きされないことを確実にする。出力されるコピーの数がポートベクトルFIFO56において特定化されるポートの数に一致すると、フレームポインタはリクレイムキュー66に転送される。リクレイムキュー66はリクレイムされる必要のあるフレームポインタを記憶し、リンクトリストチェーンを進むことによって、バッファを自由ポインタとして自由バッファキュー64に戻す。自由バッファキュー64に戻された後、そのフレームポインタはMACユニット20またはギガビットMACユニット24による再使用のために利用可能である。
【0030】
図3は、この発明の例示的な実施例に従って図2のスイッチサブシステム42をより詳細に図示したものである。図2のマルチポートスイッチ12のその他の構成要素を図3において再現することにより、これらその他の構成要素に対するスイッチサブシステム42の接続を例示している。
【0031】
図3に示すとおり、MACモジュール20は受信部分20aおよび伝送部分24bを含む。受信部分20aおよび伝送部分24bの各々は、IEEE802.3プロトコルに従って対応する受信または伝送機能を行なうために構成される12個のMACモジュール(各2個のみを示し、番号70a、70b、70cおよび70dによって参照する)を含む。MACモジュール70cおよび70dは、それぞれモジュール70aおよび70bに相補して、10/100Mb/sスイッチポートに対する伝送MAC動作を行なう。
【0032】
ギガビットMACポート24もまた受信部分24aおよび伝送部分24bを含み、拡張ポート30も同様に受信部分30aおよび伝送部分30bを含む。ギガビットMACポート24および拡張ポート30はまた、それぞれのポートに対して最適化された受信MACモジュール72aおよび72bを有する。ギガビットMACポート24および拡張ポート30aの伝送部分24bおよび30bもまた、それぞれ伝送MACモジュール72cおよび72dを有する。MACモジュールは対応するポートにおける全二重動作のために構成され、ギガビットMACモジュール72aおよび72cはギガビット提案標準IEEE案P802.3zに従って構成される。
【0033】
各受信MACモジュール70a、70b、72aおよび72bは、受信したデータを対応する内部受信FIFOから外部メモリ36および規則チェッカ40に伝達するためのキュー論理74を含む。各伝送MACモジュール70c、70d、72cおよび72dは、外部メモリ36から対応する内部伝送FIFOにデータを伝達するためのデキュー論理76と、自由バッファキュー64からフレームポインタをフェッチするためのキュー論理74とを含む。キュー論理74はフェッチされたフレームポインタを用いて、外部メモリインターフェイスコントローラ44を介して外部メモリ36に受信データを記憶する。フレームバッファポインタは、受信されたデータフレームが受信FIFOによって記憶される、外部メモリ36中の場所を特定する。
【0034】
外部メモリインターフェイス44は、外部メモリ36へのいずれかのスイッチポートのキュー論理74またはデキュー論理76によるメモリアクセスを制御するためのスケジューラ80と、外部メモリ36を伴う読み書き動作を行なうためのSSRAMインターフェイス78とを含む。特に、マルチポートスイッチ12は非ブロッキングスイッチとして動作するために構成され、ここでネットワークデータはそれぞれ10、100または1000Mb/sのワイヤ速度でスイッチポートから受信および出力される。よって、スケジューラ80は異なるポートによるアクセスを制御することにより、外部メモリ36の帯域幅の使用を最適化する。
【0035】
各受信MACは、対応するスイッチポートからの受信の際にフレームの部分を内部FIFOに記憶する。すなわち、FIFOの大きさはスケジューラ時間スロットの間に到着するフレームデータを記憶するために十分なものである。対応するキュー論理74はフレームポインタを得て外部メモリインターフェイス44に書出要求を送る。スケジューラ80はキュー論理74からのその他の書出要求またはデキュー論理76からのあらゆる読込要求とともにその書出要求をスケジューリングし、要求しているキュー論理74(またはデキュー論理76)に対する許可を生成して、スケジューリングされた事象(すなわちスロット)における伝達を開始する。次いで、割当てられたスロットにおける直接メモリアクセス(DMA)トランザクションにおいて、64ビットのフレームデータが書出データバス69aを通じて受信FIFOから外部メモリ36に送信される。フレームデータは、自由バッファプール64から得られるバッファポインタによって示される場所に記憶されるが、後述するようにいくつかの他のバッファを用いてデータフレームを記憶してもよい。
【0036】
規則チェッカ40はまた、書出データバス69a上のDMA書出伝達をモニタする(すなわち覗く)ことによって、フレームポインタおよびヘッダ情報(ソースアドレス、ディスティネーションアドレス、VLANタグ情報などを含む)を受取る。規則チェッカ40はヘッダ情報を用いて転送判断を行ない、ポートベクトルを含む転送記述子の形の転送命令を生成する。ポートベクトルは、フレームが転送されるべき各出力ポートに対するビットセットを有する。受取ったフレームがユニコピーフレームであるとき、規則チェッカ40によって生成されるポートベクトルには1ビットのみがセットされる。ポートベクトルにセットされる単一ビットは、ポートの特定の1つに対応する。
【0037】
規則チェッカ40は、ポートベクトルとフレームポインタとを含む転送記述子をポートベクトルFIFO56に出力する。関連するフレームポインタをどの特定の出力キューが受取るべきかを判断するために、ポートベクトルはポートベクトルFIFO56によって調べられる。ポートベクトルFIFO56は、フレームポインタを適切なキュー58および/または68の頂部に置く。これはフレームの伝送をキューする。
【0038】
図3に示されるとおり、各伝送MACユニット70c、70d、72dおよび72cは、それぞれ関連する出力キュー58a、58b、58cおよび58dを有する。好ましい実施例において、各出力キュー58は高い優先順位フレームに対する高い優先順位キューと、低い優先順位フレームに対する低い優先順位キューとを有する。高い優先順位フレームは、保証されたアクセス待ち時間を必要とするフレーム、たとえばマルチメディア適用のためのフレームまたは管理MACフレームなどに対して用いられる。FIFOタイプの出力キュー58に記憶されるフレームポインタは、それぞれの伝送MACユニットに対するデキュー論理76によって処理される。いくつかの時点において、フレームポインタは出力キュー58の下部、たとえばギガビット伝送MAC72cに対する出力キュー58dなどに達する。伝送ギガビットポート24bに対するデキュー論理76は対応するギガビットポート出力キュー58dからフレームポインタを取得し、そのフレームポインタによって特定化されるメモリ場所における外部メモリ36からフレームデータを読込むために、スケジューラ80に要求を発行する。スケジューラ80は要求をスケジューリングし、伝送ギガビットポート24bのデキュー論理76に許可を発行してDMA読込を開始させる。その許可に応答して、デキュー論理76はフレームポインタによって示される外部メモリ36中の場所からDMAトランザクション中のフレームデータを(読込バス69bに沿って)読込み、伝送ギガビットMAC72cによる伝送のために、内部伝送FIFOにフレームデータを記憶する。転送記述子がユニコピー伝送を特定化するとき、フレームデータ全体の伝送FIFOへの書出に続いて、フレームポインタは自由バッファキュー64に戻される。
【0039】
マルチコピー伝送はユニコピー伝送と類似であるが、ポートベクトルはフレームが伝送される複数のポートを示す複数のビットセットを有する点が異なる。フレームポインタは適切な出力キュー58の各々の中に置かれて、適切な伝送MACユニット20b、24bおよび/または30bによって伝送される。
【0040】
自由バッファプール64、マルチコピーキュー60、リクレイムキュー66およびマルチコピーキャッシュ62は、フレームポインタの使用、およびデータフレームがその示される出力ポートに伝送されたときのフレームポインタの再使用を管理するために用いられる。特にデキュー論理76は、バッファ内容が適切な伝送FIFOにコピーされた後に、ユニコピーフレームに対するフレームポインタを自由バッファキュー64に送る。
【0041】
マルチコピーフレームに対しては、ポートベクトルFIFO56は同じフレームポインタの複数のコピーを1つより多くの出力キュー58に供給し、各フレームポインタは0にセットされたユニコピービットを有する。ポートベクトルFIFO56はまたマルチコピーキュー60にフレームポインタおよびコピーカウントをコピーする。マルチコピーキュー60はコピーカウントをマルチコピーキャッシュ62に書出す。マルチコピーキャッシュ62は、外部メモリ36の各バッファ(すなわち各フレームポインタ)に対する単一のコピーカウントを有するランダムアクセスメモリである。
【0042】
デキュー論理76がフェッチされたフレームポインタに基づいて特定の出力ポートに対するフレームデータを検索し、伝送FIFOにフレームデータを記憶すると、デキュー論理76はユニコピービットが1にセットされているかどうかをチェックする。ユニコピービットが1にセットされているとき、フレームポインタは自由バッファキュー64に戻される。ユニコピービットがマルチコピーフレームポインタを示す0にセットされているとき、デキュー論理76はマルチコピーキュー60に−1のコピーカウントを有するフレームポインタを書出す。マルチコピーキュー60はマルチコピーキャッシュ62に記憶されるエントリにコピーカウントを加える。
【0043】
フレームポインタに対するマルチコピーキャッシュ62のコピーカウントが0に達するとき、そのフレームポインタはリクレイムキュー66に送られる。複数のバッファメモリ場所に単一のデータフレームを記憶するために複数のフレームポインタを用い得るため、フレームポインタは互いに参照されてフレームポインタのリンクトリスト(すなわちチェーン)を形成し、記憶されるデータフレーム全体を識別する。リクレイムキュー66はフレームポインタによって識別されるバッファ場所のチェーンを横切り、フレームポインタを自由バッファキュー64に送る。
【0044】
以下のスイッチアーキテクチャの説明は、パケット交換ネットワークにおけるスイッチ動作の概要を提供する。ネットワークスイッチ12において実施される際のこの発明の特徴のさらに詳細な説明を行なう。
【0045】
プログラム可能メモリアクセススロット割当
この発明の実施例において、外部メモリインターフェイス44の一部としてのスケジューラ76は、SSRAM36へのアクセスのためにネットワークスイッチポートに対する帯域幅の許可をスケジューリングおよび発行するために用いられる。この特定の実施例において、SSRAM36は最大6.4ギガビットのスループット(読み書きターンアラウンドに対する数サイクルを除く)に等しい100Mb/sクロックを有する64ビットの幅のデータ経路を有することが好ましい。この実現例の12−100Mb/s全二重ポートと、それに加える全二重ギガビットポート24および約1.2Gb/sの拡張ポート30とは、SSRAM36に対するアクセスに対する帯域幅容量を超過する。よってこの実施例は、ネットワークスイッチの外部にあるEEPROMまたはコントローラなどの外部メモリデバイスに記憶され、かつメモリアクセススロットを割当てる際にスケジューラ76によって用いられる割当テーブルメモリに書込まれるプログラムされた情報に従って、メモリアクセススロットと呼ばれる帯域幅の部分をネットワークスイッチポートに割当てる働きをする。
【0046】
図4に示されるとおり、ネットワークスイッチ12は外部メモリインターフェイス44内に割当テーブルメモリ100を含む。割当テーブルメモリ100はいくつかのプログラム可能情報エントリを含む割当テーブルを記憶する。割当テーブルは、メモリアクセススロットをネットワークスイッチ12のポートに割当てるためにスケジューラ76によって用いられる。割当テーブル中の各プログラム可能情報エントリは、識別されたポートまたはそこから1つのポートが選択されるポートの群のいずれかに対するメモリアクセススロットに対応する割当(すなわちスロットからポートへの割当)を含む。割当テーブルメモリ100は、たとえばRAMまたはレジスタの群などを用いて実現されてもよい。
【0047】
最初に、ホストCPU32は割当テーブルを含む情報エントリを、たとえば周辺要素相互接続(PCI)バスなどのバス104を介して外部プログラム可能記憶デバイス102に記憶する。外部プログラム可能メモリデバイス102は、その後ホストCPU32によって割当テーブルメモリ100に選択的に書込まれるプログラムされた情報エントリを記憶する。プログラム可能記憶デバイス102は、EEPROMまたはプログラムされた情報を受信および記憶できるその他のあらゆるデバイスによって実現されてもよい。
【0048】
プログラム可能メモリデバイス102は、ネットワークスイッチによって用いられる、複数の異なる構成のスロットからポートへの割当テーブルを記憶してもよい。たとえば、各割当テーブルはスイッチ12に対する異なるネットワーク構成に対応してもよい。たとえば図5に示されるとおり、プログラム可能メモリデバイス102の記憶領域200は複数の異なる構成の割当テーブル(例、202、204、206、208)を含み、各テーブルは“N”数のスロットからポートへの割当エントリを有する。数“N”は、以下に述べるスケジューリング順序サイクルにおけるスロットの総数を表わす。
【0049】
例として、図5において第1の構成202が拡大されており、ここでテーブル中の“N”数のメモリアクセススロットの各プログラム可能情報エントリ(例、210)は、スロット数230、ポート割当232、およびポート演算コード234を含むことが例示される。よって図5に示されるとおり、“1”という数はエントリ210に対するスロット数230およびエントリ210に対するポート割当232として記憶され、これはスロット1がポート数1に割当てられることを示す。第2のエントリ212はスロット数2を拡張ポート(すなわち“E”)に割当て、第3のエントリ214はスロット数3をポート数3に割当て、第4のエントリ216はスロット数4をギガビットポート(すなわち“G”)に割当て、以下同様である。加えて、読込(“R”)または書出(“W”)ビットなどのポート演算コード234が構成テーブル202の各エントリに記憶されることにより、スケジューラ76が特定のポートにそれぞれ読込または書出スロットを割当てるよう指示する。言換えると、ポート演算コード234はそのポートが読込または書出動作のいずれであるかを特定化する。
【0050】
図5はまた、所与のスロットに対するポート割当232は、検出された状態に基づいてポートを特定化してもよいことを例示する。たとえば、構成202中のスロット数7に対するエントリ218は拡張ポート30(“E”)またはギガビットポート24(“G”)のいずれに割当てられてもよく、この「または」の状態をアスタリスク(*)で示す。定められた期間内に拡張ポート30がスロットを要求したかどうかなどの状態を用いて、スケジューラ76がスロットを拡張ポート30またはギガビットポート24のいずれに割当てるかを判断してもよい。さらなる例として、構成202中のスロット9に対するエントリ220は、複数の代替的な状態のときにスロットが3つ(またはそれ以上)のポートのうちの1つに代替的に割当てられてもよいことを例示する。この例の例示のように、第1の期間内に拡張ポート30およびギガビットポート24のいずれが最初にスロット9を要求したかなどの状態を用いて、これら2つのポートのうちのどれがスロットを受取るかを判断してもよい。さらに、予め定められた期間内にギガビットポート24または拡張ポート30のいずれもスロットを要求しないとき、スロット9はポート9に割当てられる。
【0051】
プログラム可能記憶デバイス102に記憶される構成テーブルの1つ(たとえば202)が選択され、ホストCPU32によって外部メモリインターフェイス44内に位置する割当テーブルメモリ100に書込まれる。例示的な実施例においては、ホストCPU32はPCIバス104を介して割当テーブルメモリ100に選択された割当テーブルを書込む。構成テーブルが割当テーブルメモリ100に書込まれた後、スケジューラ76は内部バス106を介してこの情報にアクセスし、アクセスした情報に基づいてメモリアクセススロットをポートに割当てる。
【0052】
図6は割当テーブル202のスケジューリング順序サイクルを例示するものであり、ここでスケジューラ76は、割当テーブルメモリ100に記憶される構成202のエントリをデコードするのに応答してメモリアクセススロット310を割当てる。各スロット310は、特定のスロットが割当てられるポートを特定化する。矢印302によって示されるとおり、この順序はスロットからスロットへ反時計方向に進行する。
【0053】
加えて、各構成テーブル(例、202、204、206、208)の最後または「N番目」のテーブルエントリにラップアラウンドビット(“WR”)が記憶されることにより、スケジューリング順序サイクルの長さがセットされる。スケジューラ76はこのラップアラウンドビットを検出するのに応答して順序中の第1のスロット3101に戻る。たとえば、図5に示されるとおり、スロットNに対する構成テーブルエントリ222は演算コードエントリ224中にラップアラウンドビット(WR)を含む。図6においては、構成テーブルエントリ222に記憶されるラップアラウンドビット(WR)の存在に応答して、スケジューラ76がスロット310Nから3101に戻って順序を繰返すことを矢印304によって例示する。よって、ラップアラウンドビットはサイクル当りのスロットの“N”数を定められた数にセットし、スケジューリング順序サイクルの長さに柔軟性を与える。
【0054】
図7に、スロットを割当てるためのこの発明の方法を示す。ステップS1において、ホストCPU32は割当テーブルをプログラム可能記憶デバイス102に記憶される複数のプログラムされた割当テーブルから選択するか、または代替的にはCPUがユーザ入力から直接割当テーブルをプログラムおよび選択する。ステップS2において、ホストCPU32は選択された割当テーブル(たとえば202)をプログラム可能記憶デバイス102から外部メモリインターフェイス44の割当テーブルメモリ100に書込むか、またはユーザのプログラムした割当テーブルを割当テーブルメモリ100に直接書込む。次いでステップS3において、スケジューラ80が割当テーブルメモリ100に記憶されるポートからスロットへの割当情報をデコードし、それに応答してメモリアクセススロットをネットワークスイッチポートに割当てる。次いでステップS4において、スケジューラ80は、ホストCPU32がプログラムされた記憶デバイス102から割当テーブルメモリ100への変更されたまたは新たな構成テーブルの書込の開始を試みているかどうかを検出する。割当テーブルメモリ100に対する変更が書込まれていないとき、スケジューラ80は割当テーブルメモリ100に記憶された現存する割当テーブルに従ってスロットの割当を継続する。しかし、割当テーブルメモリに変更の書込が試みられているときには、この方法ではステップS2に戻り、そこでスケジューラ80は割当テーブルメモリの変更を割当テーブルメモリ100に書込ませて、次いでステップS3において新たな順序に従ってスロットを割当てる。
【0055】
割当テーブルメモリ100中の情報の変更に関して、ユーザはプログラム可能メモリデバイス102に記憶される割当テーブルを選択することによって、またはホストCPU32から直接割当テーブルメモリ100に新たな割当テーブルをプログラムすることによって、ホストCPU32を介してネットワークスイッチ12の動作を制御してもよい。前述のとおり、代替的な実施例はホストCPU32からの制御の必要のないコントローラとして実現されるプログラム可能メモリデバイス102を含んでもよい。別の実施例は、スケジューラ80がPCIバス104を介してプログラム可能メモリデバイス102から割当テーブルを直接フェッチすることを可能にする、ネットワークスイッチ12の内部レジスタへのアドレスポインタの書出を含んでもよい。
【0056】
この発明を、現在最も実用的かつ好ましい実施例と考えられるものに関して説明したが、この発明は開示される実施例に制限されるものではなく、反対に添付の請求項の趣旨および範囲内に含まれるさまざまな変更形および同等の装置を包含することを意図するものであることが理解される。
【図面の簡単な説明】
【図1】 この発明の実施例に従った複数のポートスイッチを含むパケット交換ネットワークのブロック図である。
【図2】 図1の複数のポートスイッチのブロック図である。
【図3】 図3は図3A−Cよりなる。図2のスイッチサブシステムを詳細に例示するブロック図である。
【図4】 この発明の実施例に従った外部メモリインターフェイスおよびネットワークスイッチ外部接続を詳細に例示するブロック図である。
【図5】 この発明の実施例に従ったプログラム可能記憶デバイスおよびそのデバイス中に記憶されるデータの表構成を例示する図である。
【図6】 この発明の実施例に従ったメモリアクセススロット割当を例示する順序図である。
【図7】 この発明の方法に従った流れ図である。
Claims (16)
- ネットワークスイッチ装置であって、
データパケットを受信するための複数の受信ポートと、
データパケットを伝達するために構成される複数のポートと、
前記受信したデータパケットに応答して、少なくとも1つの選択された送信ポートへの前記受信したデータパケットの送信を制御するための判断エンジンと、
外部メモリへインタフェースを提供する外部メモリインターフェイスとを含み、前記外部メモリインターフェイスは、前記ネットワークスイッチおよび前記外部メモリの間で前記データパケットを伝達するために構成され、前記外部メモリインタフェースは、
前記外部メモリへのアクセスのためにメモリアクセススロットをポートに選択的に割当てるためのスケジューラと、
前記スケジューラに結合され、プログラム可能情報エントリを含む割当テーブルを記憶するための割当テーブルメモリを含み、前記プログラム可能情報エントリは外部コントローラによって割当テーブルメモリに記憶され、前記プログラム可能情報エントリの各々はポート演算コードを含み、
前記判断エンジンは、前記複数の受信ポートに対応する複数のキュー装置を含み、複数のキュー装置は、前記対応する受信ポートによって受信したデータパケットを表わすデータブロックをキューし、
前記外部メモリインタフェースは、前記複数のキュー装置と相互作用して、前記複数のキュー装置の各々に前記外部メモリにアクセスするためのタイムスロットを割当てるスケジューラを含み、
前記ネットワークスイッチ装置は、さらに、複数の異なる構成の割当テーブルを記憶するためのプログラム可能メモリ装置を含み、
前記外部コントローラは、複数の割当テーブルのうちの選択された1つを前記割当テーブルメモリに書込み、
前記スケジューラは、前記割当テーブルメモリ内の前記割当テーブルのプログラム可能情報エントリに基づいて、メモリアクセススロットを選択的に割当て、
前記スケジューラは、前記ポート演算コードに基づいて、前記ポートの各々の演算を設定し、前記ポート演算コードは読込ビットおよび書出ビットのうちの1つを含み、前記スケジューラは対応するポート演算コードに基づいて各メモリアクセススロットを読込スロ
ットおよび書出スロットのうちの1つとして選択的に割当てる、ネットワークスイッチ装置。 - 前記プログラム可能情報エントリは、さらにメモリアクセススロット割当ての順序を含み、前記スケジューラは、前記メモリアクセススロット割当ての順序に基づいて、継続的に繰返す順序としてメモリアクセススロットを割当てる、請求項1記載のネットワークスイッチ装置。
- 前記プログラム可能情報エントリは、さらにメモリアクセススロット割当ての順序を含み、前記スケジューラは、前記メモリアクセススロット割当ての順序に基づいて、継続的に繰返す順序としてメモリアクセススロットを割当て、
前記プログラム可能情報エントリのうちの1つは、メモリアクセススロット割当ての順序の最後にラップアラウンドビットを含み、前記スケジューラは、ラップアラウンドビットを検出するとメモリアクセススロット割当ての順序の第1のメモリアクセススロットに戻る、請求項1記載のネットワークスイッチ装置。 - 前記割当テーブルメモリはRAMである、請求項1に記載のネットワークスイッチ装置。
- 前記割当テーブルメモリはレジスタの群である、請求項1に記載のネットワークスイッチ装置。
- 各々のプログラム可能情報エントリは複数のメモリアクセススロット割当を含み、スケジューラは1つまたはそれ以上の検出された状態に基づいて複数のメモリアクセススロット割当のうちの1つを選択する、請求項1に記載のネットワークスイッチ装置。
- データパケットを外部メモリに伝達するためにその各々が構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法であって、
プログラムされたメモリアクセススロット割当情報を含む複数の異なる構成の割当テーブルをメモリに記憶するステップと、
前記複数の割当テーブルのうちの1つを選択するステップと、
前記選択された割当テーブルに基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに選択的に割当てるステップと、
前記選択された割当テーブル内のプログラムされたメモリアクセススロット割当情報から、スロットからポートへの割当構成を選択するステップと、
選択されたスロットからポートへの割当構成をメモリからネットワークスイッチ内の割当構成メモリに書込むステップとを含み、前記選択的に割当てるステップは、割当構成メモリに記憶される選択されたスロットからポートへの割当構成に基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに割当てるステップを含み、
前記記憶するステップは、スロットからポートへの割当構成内のスロットからポートへの割当の各々を、対応するメモリアクセススロットが読込および書出スロットのうちの1つであるかどうかを示すための読込および書出ビットのうちの1つを含むようにセットするステップを含む、方法。 - データパケットを外部メモリに伝達するためにその各々が構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法であって、
プログラムされたメモリアクセススロット割当情報を含む複数の異なる構成の割当テーブルおよびポート演算コードをメモリに記憶するステップを含み、各々のポート演算コードは各々のポートの演算をセットするための読込ビットおよび書出ビットのうちの1つを含み、前記方法はさらに
前記複数の割当テーブルのうちの1つを選択するステップと、
前記選択された割当テーブルに基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに選択的に割当て、対応するポート演算コードに基づいてメモリアクセススロットの各々を読込スロットおよび書出スロットのうちの1つとして割当てるステ
ップと、
前記選択された割当テーブル内のプログラムされたメモリアクセススロット割当情報から、スロットからポートへの割当構成を選択するステップと、
選択されたスロットからポートへの割当構成をメモリからネットワークスイッチ内の割当構成メモリに書込むステップとを含み、前記選択的に割当てるステップは、割当構成メモリに記憶される選択されたスロットからポートへの割当構成に基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに割当てるステップを含み、
前記記憶するステップは、前記スロットからポートへの割当構成をメモリアクセススロット割当のN数の繰返す順序としてセットするステップを含む、方法。 - データパケットを外部メモリに伝達するためにその各々が構成される複数のネットワークスイッチポートにネットワークスイッチ中のメモリアクセススロットを割当てる方法であって、
プログラムされたメモリアクセススロット割当情報を含む複数の異なる構成の割当テーブルおよびポート演算コードをメモリに記憶するステップを含み、各々のポート演算コードは各々のポートの演算をセットするための読込ビットおよび書出ビットのうちの1つを含み、前記方法はさらに
前記複数の割当テーブルのうちの1つを選択するステップと、
前記選択された割当テーブルに基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに選択的に割当て、対応するポート演算コードに基づいてメモリアクセススロットの各々を読込スロットおよび書出スロットのうちの1つとして割当てるステップと、
前記選択された割当テーブル内のプログラムされたメモリアクセススロット割当情報から、スロットからポートへの割当構成を選択するステップと、
選択されたスロットからポートへの割当構成をメモリからネットワークスイッチ内の割当構成メモリに書込むステップとを含み、前記選択的に割当てるステップは、割当構成メモリに記憶される選択されたスロットからポートへの割当構成に基づいてメモリアクセススロットをそれぞれのネットワークスイッチポートに割当てるステップを含み、
前記記憶するステップは、スロットからポートへの割当構成に、「N番目の」メモリアクセススロットからN数のメモリアクセススロット割当の順序の最初における第1のメモリアクセススロットにN数のメモリアクセススロット割当の順序を戻すラップアラウンドビットを記憶するステップを含む、方法。 - 交換ネットワークシステムであって、
プログラム可能システム設定を含む複数の異なる設定の割当テーブルを記憶するための第1のメモリと、
データパケットを記憶するための第2のメモリと、
前記データパケットを伝達するために構成される複数のポートを有するネットワークスイッチとを含み、
前記ネットワークスイッチは
(1) ネットワークスイッチおよび第2のメモリの間でデータパケットを伝達するために構成される外部メモリインターフェイスと、
(2) 第2のメモリへのアクセスのためにメモリアクセススロットをポートの各々に選択的に割当てるためのスケジューラとを含み、前記メモリアクセススロットをポートの各々に選択的に割当てることは複数の割当テーブルのうちの選択された1つに基づき、前記交換ネットワークシステムはさらに
前記選択された1つの割当テーブルに含まれるプログラム可能システム設定をネットワークスイッチに供給するためのシステムコントローラを含み、
前記プログラム可能システム設定は、各々のポートの演算をセットするためのポート演算コードを含み、前記ポート演算コードは読込ビットおよび書出ビットのうちの1つを含み、前記スケジューラはメモリアクセススロットをそれぞれ読込および書出スロットとして割当てる、交換ネットワークシステム。 - 前記外部メモリインターフェイスはメモリアクセススロット割当テーブルメモリを含む、請求項10に記載の交換ネットワークシステム。
- 交換ネットワークシステムであって、
プログラム可能システム設定を含む複数の異なる設定の割当テーブルを記憶するための第1のメモリと、
データパケットを記憶するための第2のメモリと、
前記データパケットを伝達するために構成される複数のポートを有するネットワークスイッチとを含み、
前記ネットワークスイッチは
(1) ネットワークスイッチおよび第2のメモリの間でデータパケットを伝達するために構成される外部メモリインターフェイスと、
(2) 第2のメモリへのアクセスのためにメモリアクセススロットをポートの各々に選択的に割当てるためのスケジューラとを含み、前記メモリアクセススロットをポートの各々に選択的に割当てることは複数の割当テーブルのうちの選択された1つに基づき、前記交換ネットワークシステムはさらに
前記選択された1つの割当テーブルに含まれるプログラム可能システム設定をネットワークスイッチに供給するためのシステムコントローラを含み、
前記プログラム可能システム設定は、メモリアクセススロットの割当の際にスケジューラによって継続的に繰返されるN数のメモリアクセススロット割当の順序、および各々のポートの演算をセットするためのポート演算コードを含み、各々のポート演算コードは読込ビットおよび書出ビットのうちの1つを含み、スケジューラはメモリアクセススロットの各々をそれぞれ読込スロットおよび書出スロットとして割当てる、交換ネットワークシステム。 - 交換ネットワークシステムであって、
プログラム可能システム設定を含む複数の異なる設定の割当テーブルを記憶するための第1のメモリと、
データパケットを記憶するための第2のメモリと、
前記データパケットを伝達するために構成される複数のポートを有するネットワークスイッチとを含み、
前記ネットワークスイッチは
(1) ネットワークスイッチおよび第2のメモリの間でデータパケットを伝達するために構成される外部メモリインターフェイスと、
(2) 第2のメモリへのアクセスのためにメモリアクセススロットをポートの各々に選択的に割当てるためのスケジューラとを含み、前記メモリアクセススロットをポートの各々に選択的に割当てることは複数の割当テーブルのうちの選択された1つに基づき、前記交換ネットワークシステムはさらに
前記選択された1つの割当テーブルに含まれるプログラム可能システム設定をネットワークスイッチに供給するためのシステムコントローラを含み、
前記プログラム可能システム設定は、メモリアクセススロットの割当の際にスケジューラによって継続的に繰返されるN数のメモリアクセススロット割当の順序を含み、
前記プログラム可能システム設定は、メモリアクセススロットの割当の際にスケジューラによって継続的に繰返されるN数のメモリアクセススロット割当の順序、および各々のポートの演算をセットするためのポート演算コードを含み、各々のポート演算コードは読込ビットおよび書出ビットのうちの1つを含み、スケジューラはメモリアクセススロットの各々をそれぞれ読込スロットおよび書出スロットとして割当て、
前記プログラム可能システム設定は順序の最後にラップアラウンドビットを含み、スケジューラはラップアラウンドビットを検出すると順序の開始点における第1のメモリアクセススロットに戻る、交換ネットワークシステム。 - 前記メモリアクセススロット割当テーブルメモリはRAMである、請求項11に記載の交換ネットワークシステム。
- 前記メモリアクセススロット割当テーブルメモリはレジスタの群である、請求項11に記載の交換ネットワークシステム。
- 前記第1のメモリはEEPROMである、請求項11に記載の交換ネットワークシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/317,156 | 1999-05-24 | ||
US09/317,156 US7031305B1 (en) | 1999-05-24 | 1999-05-24 | Apparatus and method for programmable memory access slot assignment |
PCT/US1999/030160 WO2000072524A1 (en) | 1999-05-24 | 1999-12-17 | Apparatus and method for programmable memory access slot assignment |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003500927A JP2003500927A (ja) | 2003-01-07 |
JP2003500927A5 JP2003500927A5 (ja) | 2006-12-14 |
JP4500457B2 true JP4500457B2 (ja) | 2010-07-14 |
Family
ID=23232358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000619870A Expired - Fee Related JP4500457B2 (ja) | 1999-05-24 | 1999-12-17 | プログラム可能メモリアクセススロット割当のための装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7031305B1 (ja) |
EP (1) | EP1180284A1 (ja) |
JP (1) | JP4500457B2 (ja) |
WO (1) | WO2000072524A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802049B2 (en) * | 2002-10-30 | 2010-09-21 | Intel Corporation | Links having flexible lane allocation |
US8769164B2 (en) * | 2003-09-18 | 2014-07-01 | International Business Machines Corporation | Methods and apparatus for allocating bandwidth for a network processor |
US20050128948A1 (en) * | 2003-12-11 | 2005-06-16 | Chen-Chi Kuo | Locally stored portion of a calendar structure indicating when interfaces will become available to transmit packets |
US8228932B2 (en) * | 2005-02-18 | 2012-07-24 | Broadcom Corporation | Layout architecture for expandable network device |
US20060203824A1 (en) * | 2005-02-18 | 2006-09-14 | Song-Huo Yu | Passing values through a memory management unit of a network device |
US8325633B2 (en) * | 2007-04-26 | 2012-12-04 | International Business Machines Corporation | Remote direct memory access |
US7889657B2 (en) * | 2007-05-04 | 2011-02-15 | International Business Machines Corporation | Signaling completion of a message transfer from an origin compute node to a target compute node |
US7948999B2 (en) * | 2007-05-04 | 2011-05-24 | International Business Machines Corporation | Signaling completion of a message transfer from an origin compute node to a target compute node |
US7890670B2 (en) * | 2007-05-09 | 2011-02-15 | International Business Machines Corporation | Direct memory access transfer completion notification |
US8037213B2 (en) | 2007-05-30 | 2011-10-11 | International Business Machines Corporation | Replenishing data descriptors in a DMA injection FIFO buffer |
US8018951B2 (en) | 2007-07-12 | 2011-09-13 | International Business Machines Corporation | Pacing a data transfer operation between compute nodes on a parallel computer |
US8478834B2 (en) * | 2007-07-12 | 2013-07-02 | International Business Machines Corporation | Low latency, high bandwidth data communications between compute nodes in a parallel computer |
US7890597B2 (en) * | 2007-07-27 | 2011-02-15 | International Business Machines Corporation | Direct memory access transfer completion notification |
US20090031001A1 (en) * | 2007-07-27 | 2009-01-29 | Archer Charles J | Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer |
US8959172B2 (en) * | 2007-07-27 | 2015-02-17 | International Business Machines Corporation | Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer |
US9009350B2 (en) * | 2008-04-01 | 2015-04-14 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US9225545B2 (en) * | 2008-04-01 | 2015-12-29 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US8544026B2 (en) | 2010-02-09 | 2013-09-24 | International Business Machines Corporation | Processing data communications messages with input/output control blocks |
US8949453B2 (en) | 2010-11-30 | 2015-02-03 | International Business Machines Corporation | Data communications in a parallel active messaging interface of a parallel computer |
US8949328B2 (en) | 2011-07-13 | 2015-02-03 | International Business Machines Corporation | Performing collective operations in a distributed processing system |
US8930962B2 (en) | 2012-02-22 | 2015-01-06 | International Business Machines Corporation | Processing unexpected messages at a compute node of a parallel computer |
JP2019053592A (ja) * | 2017-09-15 | 2019-04-04 | 株式会社東芝 | プログラマブル集積回路、計算システム及びビット列生成装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4251880A (en) * | 1979-07-31 | 1981-02-17 | Bell Telephone Laboratories, Incorporated | Digital loop switch for controlling data information having differing transmission characteristics |
US4682284A (en) * | 1984-12-06 | 1987-07-21 | American Telephone & Telegraph Co., At&T Bell Lab. | Queue administration method and apparatus |
US5056086A (en) * | 1989-12-21 | 1991-10-08 | Bell Communications Research, Inc. | Apparatus for providing telephonic mass announcement service and methods for use therein |
US5515376A (en) | 1993-07-19 | 1996-05-07 | Alantec, Inc. | Communication apparatus and methods |
US5390184A (en) * | 1993-09-30 | 1995-02-14 | Northern Telecom Limited | Flexible scheduling mechanism for ATM switches |
JP2871469B2 (ja) * | 1994-07-19 | 1999-03-17 | 日本電気株式会社 | Atm網構成管理方法 |
US5812792A (en) | 1994-07-22 | 1998-09-22 | Network Peripherals, Inc. | Use of video DRAM for memory storage in a local area network port of a switching hub |
JPH08202643A (ja) * | 1995-01-27 | 1996-08-09 | Furukawa Electric Co Ltd:The | ネットワーク間中継装置 |
US6072796A (en) * | 1995-06-14 | 2000-06-06 | Avid Technology, Inc. | Apparatus and method for accessing memory in a TDM network |
US5841772A (en) * | 1996-03-07 | 1998-11-24 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5889779A (en) * | 1996-12-02 | 1999-03-30 | Rockwell Science Center | Scheduler utilizing dynamic schedule table |
DE69808732T2 (de) | 1997-02-14 | 2003-06-12 | Advanced Micro Devices Inc | Architektur für teilbare warteschlangen und warteschlangenverfahren |
US6233244B1 (en) * | 1997-02-14 | 2001-05-15 | Advanced Micro Devices, Inc. | Method and apparatus for reclaiming buffers |
US6130891A (en) * | 1997-02-14 | 2000-10-10 | Advanced Micro Devices, Inc. | Integrated multiport switch having management information base (MIB) interface temporary storage |
US6160813A (en) | 1997-03-21 | 2000-12-12 | Brocade Communications Systems, Inc. | Fibre channel switching system and method |
US6246680B1 (en) * | 1997-06-30 | 2001-06-12 | Sun Microsystems, Inc. | Highly integrated multi-layer switch element architecture |
US6272109B1 (en) * | 1997-11-18 | 2001-08-07 | Cabletron Systems, Inc. | Hierarchical schedules for different ATM traffic |
US6438106B1 (en) * | 1998-12-22 | 2002-08-20 | Nortel Networks Limited | Inter-class schedulers utilizing statistical priority guaranteed queuing and generic cell-rate algorithm priority guaranteed queuing |
US6597693B1 (en) * | 1999-05-21 | 2003-07-22 | Advanced Micro Devices, Inc. | Common scalable queuing and dequeuing architecture and method relative to network switch data rate |
US6442137B1 (en) * | 1999-05-24 | 2002-08-27 | Advanced Micro Devices, Inc. | Apparatus and method in a network switch for swapping memory access slots between gigabit port and expansion port |
-
1999
- 1999-05-24 US US09/317,156 patent/US7031305B1/en not_active Expired - Lifetime
- 1999-12-17 EP EP99966401A patent/EP1180284A1/en not_active Withdrawn
- 1999-12-17 JP JP2000619870A patent/JP4500457B2/ja not_active Expired - Fee Related
- 1999-12-17 WO PCT/US1999/030160 patent/WO2000072524A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP1180284A1 (en) | 2002-02-20 |
WO2000072524A1 (en) | 2000-11-30 |
US7031305B1 (en) | 2006-04-18 |
JP2003500927A (ja) | 2003-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4500457B2 (ja) | プログラム可能メモリアクセススロット割当のための装置および方法 | |
US6442137B1 (en) | Apparatus and method in a network switch for swapping memory access slots between gigabit port and expansion port | |
US6463032B1 (en) | Network switching system having overflow bypass in internal rules checker | |
US6546010B1 (en) | Bandwidth efficiency in cascaded scheme | |
US6466580B1 (en) | Method and apparatus for processing high and low priority frame data transmitted in a data communication system | |
US6490280B1 (en) | Frame assembly in dequeuing block | |
US6618390B1 (en) | Method and apparatus for maintaining randomly accessible free buffer information for a network switch | |
US6744776B1 (en) | Servicing priority traffic in multiport network switch | |
US6401147B1 (en) | Split-queue architecture with a first queue area and a second queue area and queue overflow area having a trickle mode and an overflow mode based on prescribed threshold values | |
US7027437B1 (en) | Network switch multiple-port sniffing | |
US6625157B2 (en) | Apparatus and method in a network switch port for transferring data between buffer memory and transmit and receive state machines according to a prescribed interface protocol | |
JP3985061B2 (ja) | 管理情報ベース(mib)インターフェイス一次ストレージを有する統合マルチポートスイッチ | |
US6957269B2 (en) | Method and apparatus for performing priority-based flow control | |
US6091707A (en) | Methods and apparatus for preventing under-flow conditions in a multiple-port switching device | |
US6563818B1 (en) | Weighted round robin cell architecture | |
US6636523B1 (en) | Flow control using rules queue monitoring in a network switching system | |
US6813266B1 (en) | Pipelined access to address table in a network switch | |
US6577636B1 (en) | Decision making engine receiving and storing a portion of a data frame in order to perform a frame forwarding decision | |
US6501734B1 (en) | Apparatus and method in a network switch for dynamically assigning memory interface slots between gigabit port and expansion port | |
US6895015B1 (en) | Dynamic time slot allocation in internal rules checker scheduler | |
US6084878A (en) | External rules checker interface | |
US6904043B1 (en) | Apparatus and methods for storing and processing header information in a network switch | |
US6597693B1 (en) | Common scalable queuing and dequeuing architecture and method relative to network switch data rate | |
US6393028B1 (en) | Method and apparatus for providing EOF for frame modification | |
US6574231B1 (en) | Method and apparatus for queuing data frames in a network switch port |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061026 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061026 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090616 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090915 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090925 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091015 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091022 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091026 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100406 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100419 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |