JPH10233797A - 統計読出しアクセスを備えたネットワーク・スイッチ - Google Patents

統計読出しアクセスを備えたネットワーク・スイッチ

Info

Publication number
JPH10233797A
JPH10233797A JP9360697A JP36069797A JPH10233797A JP H10233797 A JPH10233797 A JP H10233797A JP 9360697 A JP9360697 A JP 9360697A JP 36069797 A JP36069797 A JP 36069797A JP H10233797 A JPH10233797 A JP H10233797A
Authority
JP
Japan
Prior art keywords
port
register
packet
data
memory
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.)
Granted
Application number
JP9360697A
Other languages
English (en)
Other versions
JP4002334B2 (ja
Inventor
Patricia E Hareski
パトリシア・イー・ハレスキー
William J Walker
ウィリアム・ジェイ・ウォーカー
Gary B Kotzur
ゲイリー・ビー・コズアー
Dale J Mayer
デール・ジェイ・メイヤー
Michael L Witkowski
マイケル・エル・ウィットコウスキー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH10233797A publication Critical patent/JPH10233797A/ja
Application granted granted Critical
Publication of JP4002334B2 publication Critical patent/JP4002334B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/26Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated tools for LAN [Local Area Network] management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/24Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated network management hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches 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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 スイッチにネットワーク・データの流れを生
じることなく、プロセッサを多数の待機状態に強制する
ことなく、統計情報を更に効率的に集めるネットワーク
・スイッチを提供する。 【解決手段】 各々がイーサネットの統計情報とコンフ
ィギュレーション情報の如き統計情報を記憶する少なく
とも1つの統計レジスタを含み、データを送受する複数
のネットワーク・ポートを含むネットワーク・スイッチ
102。スイッチは、メモリとメモリに格納するため統
計要求信号を検出し統計情報を検索する検索ロジックと
統計情報が記憶された後に統計応答信号をアサートする
応答ロジックとを更に含むスイッチ・マネージャをも含
む。情報がスイッチ・マネージャにより集められる間に
他のタスクを自由に完了でき、これによりプロセッサと
ネットワーク・スイッチの効率を増大する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーキング
装置に関し、特にプロセッサによる要求に応答して統計
情報を集めて、情報を検索するためメモリにいつでもア
クセスできるプロセッサに統計数字が得られることを通
知するためのスイッチ・マネージャを含むネットワーク
・スイッチに関する。
【0002】
【従来の技術】ファイルおよび資源を共有するため、あ
るいは2つ以上のコンピュータ間の通信を他の方法で可
能にするための多くの異なる形式のネットワークおよび
ネットワーク・システムが存在する。ネットワークは、
メッセージ容量、ノードが分散される距離範囲、ノード
またはコンピュータの形式、ノードの関係、トポロジま
たは論理的および(または)物理的レイアウト、ケーブ
ル・タイプおよびデータ・パケット・フォーマットに基
くアーキテクチャまたは構造、アクセスの確率など、色
々な特徴および機能に基いて分類される。例えば、ネッ
トワークの距離範囲は、建物のオフィス内またはフロア
内のローカル・エリア・ネットワーク(LAN)、大学
のキャンパスに跨がる広域ネットワーク(WAN)、あ
るいは国境に跨がる都市または州の大域ネットワーク
(GAN)などのノードが分散される距離を指す。
【0003】ネットワークの構造は、一般に、使用され
るケーブル施設またはメディアおよびメディア・アクセ
ス、ならびにメディアに跨がって送信されるデータのパ
ケット構造を意味する。毎秒10メガビット(Mbp
s)(例えば、10Base−T、10Base−F)
で動作する同軸ケーブル、ツイストペア・ケーブルある
いは光ファイバ・ケーブルを用いる「イーサネット」、
あるいは100Mbps(例えば、100Base−
T、100Base−FX)で動作する高速イーサネッ
トを含む種々の構造が知られる。ARCnet(接続資
源コンピュータ・ネットワーク)は、2.5Mbpsで
動作する同軸ケーブル、ツイストペア・ケーブル、ある
いは光ファイバ・ケーブルを用いる比較的安価なネット
ワーク構造である。トークンリング・トポロジは、1〜
16Mbpsで動作する特殊IBMケーブルまたは光フ
ァイバ・ケーブルを使用する。無論、他の多くの形式の
ネットワークが公知であり利用可能である。
【0004】各ネットワークは一般に、ノード間でデー
タを中継し、送信し、リピートし、変換し、濾波するな
どのために、選択されたメディアおよび種々の他のネッ
トワーク装置を介して一緒に接続されるノードまたは局
としばしば呼ばれる2つ以上のコンピュータを含む。用
語「ネットワーク装置」とは、一般に、コンピュータと
そのネットワーク・インターフェース・カード(NI
C)、ならびに幾つかを挙げると、リピータ、ブリッ
ジ、スイッチ、ルータ(router)、ブルータ(b
router)、などの他の種々のネットワーク上の装
置を指す。所与の通信プロトコルに従って動作するネッ
トワークは、1つ以上のリピータ、ブリッジあるいはス
イッチを用いることにより拡張される。リピータは、物
理的な層で機能して受取った各パケットを1つおきのポ
ートへ再転送するハードウエア装置である。ブリッジ
は、OSI基準モデルのデータ・リンク層で動作し、各
ネットワーク・セグメントにおける不要なパケット伝搬
量を低減するためパケットを濾波することによって効率
を向上させる。
【0005】
【発明が解決しようとする課題】ネットワーク・スイッ
チは、ネットワーク間のネットワーク・トラフィックを
指向させるため幾つかの同様なネットワークを接続する
ための複数のポートを含む多重ポート・ブリッジと機能
において類似し、更には該ブリッジより効率が良い。ネ
ットワーク・スイッチは、通常、イーサネット・パケッ
トなどの、ネットワーク・データを一時的に記憶するた
めのバスおよびメモリに跨がってポートに接続されたス
イッチング・マトリックスを含む。当該スイッチはま
た、ネットワーク・ポートを介するデータの流れと関連
する統計数字、コンフィギュレーションおよび状況情報
を監視するなどの管理機能を実施するためのプロセッサ
を含む。例えば、統計数字情報は、取扱われあるいは捨
てられたイーサネット・パケットの数を含む。この情報
はまた、「ラント(runts)」、「オーバーラ
ン」、「ジャッバ(jabbers)」、遅延衝突、F
CSエラー、などの数を含む。コンフィギュレーション
・データは、ポート、スイッチ・マトリックス、メモリ
装置などと関連する状態パラメータおよびセットアップ
・パラメータを含む。
【0006】プロセッサは、通常、ポートとスイッチ・
マトリックス間の主要データ経路を介してネットワーク
・ポートに接続される。このように、プロセッサは、統
計数字またはコンフィギュレーション・データを要求す
る時、データ・バスに著しいオーバーヘッドを追加し
た。このようなオーバーヘッド通信量は、ネットワーク
通信量を取扱うため利用可能なバス帯域幅を低減した
が、これがスイッチの主要機能である。情報は、ポート
自体により集められた後、要求時にプロセッサへ与えら
れた。しかし、ネットワーク・ポートは通常ネットワー
ク・データの取扱いで一杯であり、その結果プロセッサ
は、情報を最終的に受取る前に非常な期間待機すること
強制された。この結果、プロセッサと主要データ・バス
の非効率な使用をもたらした。スイッチを介するネット
ワーク・データの流れを実質的に生じることなく、かつ
プロセッサを大きな待機状態数に強制することなく、更
に効率的な方法で統計的情報を集めるためのネットワー
ク・スイッチを提供することが望ましい。
【0007】
【課題を解決するための手段】本発明によるネットワー
ク・スイッチは、データを受取り伝送するための複数の
ポートを含み、各ポートは統計情報を記憶するための少
なくとも1つの統計レジスタを含んでいる。情報は、イ
ーサネットの統計情報とコンフィギュレーション情報で
あることが望ましい。ネットワーク・スイッチはまたス
イッチ・マネージャも含み、このネットワーク・スイッ
チは更に、メモリと、統計要求信号を検出しこれに応じ
てメモリに記憶するため統計情報を検索する検索ロジッ
クと、統計情報がメモリに記憶された後に統計応答を表
明する応答ロジックとを含んでいる。当該スイッチはま
た、バスを介してスイッチ・マネージャに接続されたプ
ロセッサを含み、ここでプロセッサが、統計要求信号を
表明した後、統計応答信号のアサートを検出する。応答
信号の検出と同時に、プロセッサは、メモリからの統計
情報を検索する。このように、プロセッサは、統計レジ
スタに対する直接的接続から外され、情報がスイッチ・
マネージャにより集められている間は他のタスクを自由
に完了し、これによりプロセッサとネットワーク・スイ
ッチの効率を増大する。ネットワーク・スイッチは、ス
イッチ・ポートに接続された複数のネットワークを含む
ネットワーク・システムにおける通信を容易にするため
に有効であり、この場合各ネットワークは1つ以上のネ
ットワーク装置を含んでいる。
【0008】スイッチ・マネージャは、統計要求レジス
タを含むことが望ましく、このレジスタは更にセットさ
れる時統計要求信号を提供するための統計要求ビットを
含み、ここでプロセッサは統計要求ビットをセットする
ように統計要求レジスタへ書込む。統計数字要求信号の
表明を行うための1つの方法は統計要求レジスタへの書
込みを検出することで、このレジスタは検索する特定の
統計情報を指定するための1つ以上のプログラム可能な
パラメータを含む。例えば、統計要求レジスタは、プロ
グラム可能ポート番号とレジスタ番号と読出すレジスタ
数のカウントとを含む。検索ロジックは、ポートの全て
のレジスタ、レジスタ番号により指定される1つレジス
タあるいはレジスタ番号により識別されるレジスタで始
まるカウントに等しい数のレジスタからからの統計情報
を検索する。このように、プロセッサは、要求を開始し
検索する特定の情報を指定するように、統計要求レジス
タに対していったん書込む。統計要求レジスタは、スイ
ッチ・マネージャのメモリ内にあることが望ましい。
【0009】いったん情報がスイッチ・マネージャに記
憶されると、プロセッサに通知する幾つかの方法があ
る。スイッチ・マネージャは、統計照会要求が完了した
かどうかを表わす実行可能ビットを含む少なくとも1つ
の状態レジスタを含むことが望ましい。例えば、割込み
レジスタは、セットされるとプロセッサ・バスに跨がっ
てプロセッサへの割込みを生じる統計実行可能ビットを
含む。プロセッサは、割込みを受信し、これに応じて割
込みレジスタを読出して割込みソースを決定する。ある
いはまた、ポーリング・レジスタは、プロセッサがポー
リング・レジスタを周期的にポーリングして統計実行可
能ビットの状態を決定する統計実行可能ビットを含む。
いったんセットされると、プロセッサは、スイッチ・マ
ネージャ・メモリから統計情報を検索する。この場合
も、状態レジスタは別個であるかあるいはスイッチ・マ
ネージャ・メモリの一部である。
【0010】望ましい実施形態においては、各ポート
は、ネットワーク・インターフェースと、スイッチ・マ
ネージャが統計情報を検索することを可能にするプロセ
ッサ・ポート・インターフェースと、ネットワーク・ト
ラフィックに対するデータ・バス・インターフェースと
を含む。このため、スイッチ・マネージャは、各ポート
に対する2つの別個のバス接続を含み、その結果統計読
出しがネットワーク・データ・パケットの流れを干渉す
ることがない。また、本発明での使用に他の形式のプロ
トコルおよびアーキテクチャが考えられるが、ポートの
各々は、10Base−Tまたは100Base−Tな
どのようなイーサネット・アーキテクチャに従って規定
されることが望ましい。
【0011】プロセッサは、スイッチ・マネージャ・メ
モリに対するプロセッサ・バスにおけるサイクルを実行
することにより、スイッチ・マネージャからの統計情報
を検索する。バス・サイクルは規則的なプロセッサ・サ
イクルでよいが、大量のデータを所与の時間量で取得す
るためにはバースト・サイクルであることが望ましい。
【0012】
【発明の実施の形態】添付図面に関して望ましい実施の
形態の以降の詳細な記述を考察すれば、本発明を更によ
く理解ができよう。図1を参照すると、本発明に従って
構成されたネットワーク・スイッチ102を含むネット
ワーク・システム100の簡略図が示されている。ネッ
トワーク・スイッチ102は、それぞれが適当なメディ
ア・セグメント108を介して“A”ネットワーク10
6の1つと結合およびこれと交信する1つまたは複数の
“A”ポートを含む。各メディア・セグメント108
は、よった対のワイヤ・ケーブル、光ファイバ・ケーブ
ルその他のような、ネットワーク・デバイスを接続する
ための任意のタイプの媒体である。ポート104は、ネ
ットワーク・スイッチ102とネットワーク106の各
々との間における双方向通信またはデータ・フローを可
能ならしめる。このような双方向データ・フローは、例
えば半二重モードあるいは全二重モードのような、いく
つかのモードのいずれか1つのモードに従う。図1に示
すように、“j”+1までのネットワーク106が存在
し、それぞれにAネットワーク(A−NETWORK)
0、Aネットワーク1、・・・、Aネットワークjとい
う名称が付与されており、各ネットワーク106は、そ
れぞれAポート(A−PORT)0、Aポート1、・・
・、Aポートjという名称が付与されているj+1個の
ポート104のうち対応する1つを介してネットワーク
・スイッチ102に結合する。ネットワーク・スイッチ
102は、対応する数までのネットワーク106に結合
すべく任意の数のポート104を含むことができる。本
明細書で説明する実施例において、jは24までのネッ
トワーク106との結合のための全部で24のポートに
対するために23に等しい整数である。本明細書におい
ては、これらのポートを一括してポート104と呼ぶ
か、あるいは個別にポート(PORT)0、ポート1、
ポート2、・・・、ポート23と呼称する。
【0013】同様に、ネットワーク・スイッチ102は
さらに、それぞれが適当なメディア・セグメント114
を介して“B”ネットワーク112に結合およびこれと
インタフェースする1つまたは複数の“B”ポート11
0を含む。また、各メディア・セグメント114は、よ
った対のワイヤ・ケーブル、光ファイバ・ケーブルその
他のような、ネットワーク・デバイスを接続するための
任意のタイプの媒体である。ポート110もまた双方向
型であり、ネットワーク・スイッチ102とネットワー
ク112との間におけるデータ・フローを、ポート10
4に関する上述の説明と同様に可能ならしめる。本明細
書で説明する実施例において、それぞれにBネットワー
ク(B−NETWORK)0、Bネットワーク1、・・
・、Bネットワークkという名称が付与されている
“k”+1までのネットワーク112との結合に備えて
“k”+1の数のポート110が存在し、個別にBポー
ト(B−PORT)0、Bポート1、・・・、Bポート
kと呼称する。ネットワーク・スイッチ102は、対応
する数までのネットワーク112に結合すべく任意の数
のポート110を含むことができる。本明細書に示す特
定的な実施例において、Kは4つまでのネットワーク1
12との結合のための全部で4個のポート110のため
に、3に等しい整数である。“A”タイプのポートおよ
びネットワークは、“B”タイプのポートおよびネット
ワークと異なるネットワーク・プロトコルおよび/また
は速度で動作する。本明細書に示す特定的な実施例にお
いて、ポート104およびネットワーク106はイーサ
ネット(Ethernet)プロトコルに従い10メガビット/
秒(Mbps)で動作し、一方、ポート110およびネ
ットワーク112はイーサネットのプロトコルに従って
100Mbpsで動作する。本明細書では、Bポート
0、Bポート1、・・・、Bポート3を総称してポート
110とし、個別にはそれぞれポート24、ポート2
5、・・・、ポート27と呼称する。
【0014】ネットワーク106および112は、デー
タの入力あるいは出力のために1つまたは複数のデータ
・デバイスもしくはデータ端末装置(DTE)、あるい
は1つまたは複数のデータ・デバイスを接続するために
任意のタイプのネットワーク・デバイスを含む。このよ
うに、Aネットワーク0やBネットワーク・1などのよ
うないずれのネットワークも、それぞれ1つまたは複数
のコンピュータ、ネットワーク・インタフェース・カー
ド(NIC)、ワークステーション、ファイル・サー
バ、モデム、プリンタ、あるいはリピータ、スイッチ、
ルータ、ハブ、集信装置といったネットワーク内でのデ
ータの受信や送信のための他のデバイスを含むことがで
きる。例えば図1に示すように、いくつかのコンピュー
タ・システムあるいはワークステーション120、12
2および124は、Aネットワークjの対応するセグメ
ント108に結合されている。コンピュータ・システム
120、122および124は相互に、あるいはネット
ワーク・スイッチ102を介して他のネットワークの他
のデバイスと通信することができる。そこで各ネットワ
ーク106および112は1つまたは複数のセグメント
を介して結合された1つまたは複数のデータ・デバイス
を表し、ネットワーク・スイッチ102がネットワーク
106および112のいずれかの中の何れか2つまたは
それ以上のデータ・デバイスの間でデータの転送を行
う。
【0015】ネットワーク・スイッチ102は、ポート
104および110の各々に結合されたデータ・デバイ
スから情報を受け取り、その情報を他のポート104お
よび110のいずれかのものまたは複数のものへルーテ
ィングする(送る)動作を一般的に行う。ネットワーク
・スイッチ102はまた、同じネットワーク内のデータ
・デバイスに対してのみと意図された、1つのネットワ
ーク106または112内の1つのデータ・デバイスか
ら受信した情報をドロップ(落とす)するか、さもなく
ば無視することによって情報のフィルタリングを行う。
データあるいは情報はパケットの形になっているが、各
データ・パケットの形はそのネットワークがサポートし
ているプロトコルによって異なる。パケットは予め定義
されたバイトのブロックであり、通常ヘッダ、データ、
およびトレーラから成り、特定のパケットの形式はその
パケットを生成したプロトコルによって決まる。ヘッダ
は、一般に、宛て先のデータ・デバイスを識別する宛先
アドレス、およびパケットの発信元であるデータ・デバ
イスを識別するソース・アドレスを含み、普通これらの
アドレスは業界内での一意性を保証するメディア・アク
セス・コントロール(MAC)アドレスである。1つの
宛て先デバイスに対して意図されたパケットを、ここで
はユニキャスト(unicast)・パケットという。さら
に、ヘッダはグループ(GROUP)ビットを含み、こ
のビットは、そのパケットが複数の受信先デバイスに向
けられたマルチキャスト(multicast)又はブロードキ
ャスト(BC)・パケットであるかを表示する。もしグ
ループ・ビットがロジック1(1)にセットされていれ
ば、それはマルチキャスト・パケットであると考慮さ
れ、もし宛先アドレスのビットがすべてロジック1
(1)にセットされていれば、そのパケットはBCパケ
ットである。しかし、本発明の目的上、マルチキャスト
およびBCパケットを同等に扱い、以降はBCパケット
と呼称する。
【0016】図2を参照すると、ネットワーク・スイッ
チ102のさらに詳細なブロック図が示されている。示
した実施例において、ネットワーク・スイッチ102
は、6つの類似のカッド・コントローラあるいはカッド
・カスケード(QC)・デバイス202を含み、それぞ
れが4つのポート104を組み込んでいる。QCデバイ
ス202は、単一の特定用途向けIC(ASIC)パッ
ケージへ統合して、あるいは示されているような個別の
集積回路(IC)チップとして、任意の所望の形で実施
することができる。示した実施例において、各ポート1
04は半二重方式により10Mbpsで動作し、合計ス
ループットが全二重で1ポートあたり20Mbpsとな
る。その結果、6つのQCデバイス202がすべて全二
重方式で動作すれば合計で480Mbpsとなる。各Q
Cデバイス202は、好適には、QC/CPUバス20
4に結合したプロセッサ・インタフェース、および高速
バス(HSB)206に結合したバス・インタフェース
を含む。HSB206は、データ部206aおよび各種
の制御及び状態信号206bを含む。HSB206は、
毎秒1ギガビット以上のデータを転送する32ビット、
33メガヘルツ(MHz)のバスである。
【0017】HSB206およびQC/CPUバス20
4はさらに、イーサネット・パケット・スイッチ・マネ
ジャ(EPSM)210に結合される。EPSM210
の実施について、本発明はなんら特定の物理的または論
理的制約を課していないが、示されている実施例ではA
SICとして実施される。EPSM210はさらに、デ
ータおよびアドレス部214aと制御信号214bを含
む32ビットのメモリ・バス214を介してメモリ21
2に結合される。メモリ212は、好適には、特定の用
途で必要に応じて任意に増設が可能ではあるが、4から
16メガバイト(MB)のダイナミック・ランダム・ア
クセス・メモリ(DRAM)を含んでいる。EPSM2
10は、動作が約60ナノ秒(ns)の高速ページ・モ
ード(FPM)のシングル・インライン・メモリ・モジ
ュール(SIMM)、拡張データ出力(EDO)モード
のDRAM SIMM、あるいは同期モードのDRAM
SIMMを含む、メモリ212の実施のための少なくと
も3つの異なったタイプのDRAMのうちのいずれか1
つをサポートする。同期DRAMは、一般に、66MH
zデータ速度又は1秒あたり266MBのバースト・デ
ータ速度を達成するために、66MHzのクロックを必
要とする。EDO DRAMは、33又は66MHzの
いずれかのクロックで動作できるが、いずれのクロック
速度においても33MHz、または1秒あたり133M
Bの最大データ・バースト・データ速度を達成する。F
PM DRAMもまた33又は66MHzのクロックで
動作が可能であるが、33MHzクロックで16MHz
又は1秒あたり64MBの最大バースト速度を達成し、
66MHzクロックで22MHz又は1秒あたり88M
Bのバースト速度を達成する。
【0018】メモリ・バス214は、メモリ・データ・
バスMD[31:0]、データ・パリティ信号MD_P
AR[3:0]、行および列(カラム)アドレス信号M
A[11:0]、ライト(書き込み)・イネーブル信号
MWE*、FPM DRAM及びEDO DRAMの行
信号又は同期DRAMのチップ選択のいずれかであるバ
ンク選択信号RAS[3:0]*/SD_CS*[3:
0]、FPM及びEDOの列信号または同期DRAMの
DQMであるメモリ・バイト制御信号CAS[3:0]
*/SD_DQM[3:0]、同期DRAMのみへの行
信号SD_RAS*、同期DRAMのみへの列信号SD
_CAS*、シリアル入力SIMM/DIMM存在検知
信号PD_SERIAL_IN、およびパラレル入力S
IMM/DIMM存在検知信号PD_LOAD*を含
む。
【0019】HSB206は、サンダー(Thunder)L
AN(TLAN)ポート・インタフェース(TPI)2
20に結合され、これがさらにデータ及びアドレス信号
222aおよび関連の制御及び状態信号222bを含む
周辺コンポーネント相互接続(PCI)バス222に結
合される。PCIバス222は4つのTLAN226に
結合され、これは任意の様式で実施される。TLAN2
26は、それぞれがポート110の1つを組み込んでい
る、テキサス・インストルメンツ社(Texas Instrument
s, Inc.)(TI)製のTNETE100 Thund
erLANTM(サンダーLAN、登録商標) PCI
EthernetTM(イーサネット、登録商標)コント
ローラが好適である。EPSM210に対して、TPI
220は4つのポートをインタフェースするために、別
のQCデバイス202と同様にHSB上で動作する。従
って、EPSM210には実際上7つのカッド・ポート
・デバイスが「見える」。PCIバス222に関して
は、TPI220が、標準PCIバスのエミュレーショ
ンを、通常PCIのメモリ・デバイスとインタフェース
するTLAN226の適切な動作に必要な程度まで、行
う。従って、PCIバス222は完全にPCIに従順で
ある必要がない。PCIバス222は、CPU230を
ローカルのRAM234、ローカルのフラッシュRAM
236および必要であればシリアル・ポート・インタフ
ェース238に結合するためのローカル・プロセッサ・
バス232に結合されているプロセッサ又は中央処理装
置(CPU)230に結合される。シリアル・ポート・
インタフェース238は、UARTまたは同等のものが
望ましい。示した実施例においては、CPUはインテル
社(Intel)製の32ビット、33MHzのi960R
P CPUであるが、CPU230は他の適切なプロセ
ッサでも構わない。
【0020】CPU230は、通常ネットワーク・スイ
ッチ102のパワーアップでTPI220およびEPS
M210の初期設定とコンフィギュレーションの処理を
行う。また、CPU230は統計情報の監視及び収集を
行い、さらに動作時にはネットワーク・スイッチ102
の各種デバイスの機能を管理及び制御する。さらにまた
CPU230は、メモリ212内のハッシュ・テーブル
・データをEPSM210を通じて更新する。しかし、
EPSM210は、メモリ212へのアクセスを制御
し、DRAMのリフレッシュ・サイクルを実行し、それ
によってCPU230によるリフレッシュ動作が不要と
なる。このように設計されていなければ、CPU230
は各リフレッシュ・サイクルの実行におよそ6〜8バス
・サイクルを要することになり、これは貴重なプロセッ
サ・リソースを消費することとなる。CPU230はま
た、様々な目的のための付加的なネットワーク・ポート
として機能し、従って本明細書ではポート(PORT)
28として言及する場合がある。このように、ポート1
04、110、およびCPU230は、それぞれポート
ポート0〜ポート28を集合的に含むものである。
【0021】CPU230はさらに、アドレス及びデー
タ部218aおよび関連の制御及び状態信号218bを
含むCPUバス218を介してEPSM210に結合さ
れる。アドレス及びデータ部218aは、アドレスとデ
ータ信号間で多重化されていることが望ましい。特定的
には、CPUバス218は、アドレス/データ・バスC
PU_AD[31:0]、CPU230からのアドレス
・ストローブCPU_ADS*、データ・バイト・イネ
ーブルCPU_BE[3:0]、リード/ライト選択信
号CPU_WR*、バースト最終データ・ストローブC
PU_BLAST*、データ・レディ信号CPU_RD
Y*、および少なくとも1つのCPU割り込み信号CP
U_INT*を含む。本開示において、データまたはア
ドレス信号の他の通常の信号名は正のロジックを表し、
その信号はハイ又はロジック1のときアサートされると
みなされ、後尾にアステリスク(*)が付加された信号
名は負のロジックを示し、その信号はロー又はロジック
0のときにアサートされるとみなされる。各信号の機能
的な定義は一般に直接的であって、普通はその信号名で
判断され得る。
【0022】図3は、4つのポート104の実施のため
の例示的なQCデバイス202のブロック図であり、こ
のデバイスは24ポート、ポート0〜ポート23を実施
するために6つ複製される。特定のデバイスを1つ挙げ
れば、LSIロジック社(LSI Logic Corporation)
(LSI)製のL64381カッド・カスケード・イー
サネット(Quad Cascade Ethernet)・コントローラ・
デバイスがある。これよりグレードの高いデバイスとし
て、やはりLSI製のQE110カッド・カスケード・
イーサネット・コントローラ・デバイスがあり、これは
本明細書で説明しているような付加的機能および能力を
備えている。しかし留意すべきは、本発明はポート10
4の実施をなんら特定のデバイスに限定しているもので
はない。示した実施例において、各QCデバイス202
はポート104のそれぞれに対してイーサネット・コア
300を含み、イーサネット・コア300は完全な同期
型であって、メディア・アクセス・コントローラ、マン
チェスタ・エンコーダ/デコーダ、およびよった対/A
UI(接続機構インタフェース(Attachment Unit Inte
rface))トランシーバを含む。各イーサネット・コア
300は、対応するセグメント108上の結合されてい
るネットワーク106との双方向データ通信を可能と
し、それぞれが対応する128ビット受信FIFO(先
入れ先だし(First-In, First-Out))302および1
28ビット送信FIFO304と結合している。各イー
サネット・コア300は、さらに統計カウンタ306の
ブロックと結合しており、統計カウンタ306の各ブロ
ックは、オンチップ・メインテナンス用に25のカウン
タを含む。統計カウンタ306の各ブロック内のカウン
タは、シンプル・ネットワーク・マネジメント・プロト
コル(Simple Network Management Protocol)(SNM
P)の要件に見合うのが望ましい。FIFO302およ
び304の各々は、さらに、各QCデバイス202とE
PSM210の間での双方向データ・フローを可能とす
るためにHSB206に結合しているバス・インタフェ
ース・ロジック308に結合される。各QCデバイス2
02は、ソース・アドレス挿入、フレーム・チェック・
シーケンス(FCS)挿入、衝突時の即時再送信、バス
転送サイズ、および送信バッファ・スレッショルド・サ
イズといったコンフィギュレーションをプログラミング
可能(プログラマブル)とするために、コンフィギュレ
ーション及びコントロール(制御)・ロジック310を
含む。
【0023】コンフィギュレーション及びコントロール
・ロジック310と、統計カウンタ306の各ブロック
と、FIFO302、304はQC/CPUバス204
に結合される。EPSM210は、CPUバス218と
QC/CPUバス204との間に別のインタフェースを
提供する。このようにして、CPU230は、各QCデ
バイス202の各々、従ってポート104の各々に対
し、そのアクティビティを初期設定、構成(コンフィギ
ュレーション)、監視(モニタ)、および修正すべく完
全なアクセスを得る。QE110カッド・カスケード・
イーサネット・コントローラ・デバイスは、もし背圧
(バックプレッシャ(backpressure))指示の受信が間
に合うならば、受信されていたパケットを終了するため
のジャミング・シーケンス(jamming sequence)をアサ
ートするために背圧指示を検知するために、コンフィギ
ュレーション及びコントロール・ロジック310間に付
加的な接続320を含む。背圧指示はHSB206上で
実行される背圧サイクルが望ましいが、背圧指示を示す
ために別の信号又はそれと同様のものを用いるなど、い
くつかの方法の任意のものを用いることができる。
【0024】ここで、ジャミング・シーケンスは「早
い」又は適時だと考えられるポートで受信中のデータ・
パケットの最初の64バイトの間に送信すべきであると
いう点に留意されたい。最初の16バイト(4つのDW
ORD)は、後述するハッシュ・ルックアップ手順がE
PSM210によって実行される前に要求される。最初
の16バイトがおよそ13マイクロ秒(μs)で転送さ
れるように、各データ・ビットはイーサネット10Ba
se−Tを約100nsの速度で転送される。64バイ
トがおよそ51μsの間に受信され、それによって、ネ
ットワーク・スイッチ102は、受信された最初の16
バイトを転送し、ハッシュ手順を行い、背圧サイクルを
実行し、最終的にジャミング・シーケンスをアサートす
るために、約38μs有する。ハッシュ・ルックアップ
は完了するのに約1〜2μs要するので、ほとんど常
に、適時(タイムリー)にジャミング・シーケンスを送
信するために十分な時間がある。しかし、ジャミング・
シーケンスをタイムリーにアサートできるという保証は
ない。そのため、スレッショルド違反条件に起因してパ
ケットを落とす(ドロップする)可能性がある。もし背
圧サイクル遅れて実行されると、そのポートは背圧サイ
クルを拒否し、ネットワーク・スイッチ102はそのパ
ケットを受け取れなければそのパケットをドロップす
る。スレッショルド条件が早期の指示であり、従ってメ
モリがパケットを格納するために使用可能であり得るた
め、ネットワーク・スイッチ102はそのパケットを受
け取れる。
【0025】もし背圧サイクルがタイムリーに実行さ
れ、もしポートが半二重モードで動作していれば、コン
フィギュレーション及びコントロール・ロジック310
は示されたポート104のイーサネット・コア300の
1つへ衝突コマンドを応答的にアサートする。衝突コマ
ンドを受け取るイーサネット・コア300は、ジャミン
グ・シーケンスをアサートし、そのポート104が受信
しているパケットを終了させる。もし背圧サイクルが6
4バイト・ウインドウ内に実行されるならば、ポート
は、HSB206上でアボート信号ABORT_OUT
*をアサートすることによって、そのポートに背圧サイ
クルが実行される旨をEPSM210に示す。もし背圧
サイクルが64バイト・ウインドウの外側であり、従っ
て時間内にアサートされなければ、ABORT_OUT
*信号はアサートされず、EPSM210はそのパケッ
トをドロップする。背圧アサートの試行が失敗すれば、
ほとんどの場合EPSM210はそのパケットをドロッ
プする。最高の能率を達成するためにはドロップされる
パケットはできるだけ少ない方がよいが、ドロップされ
たパケットは最終的に送信側のデータ・デバイスにおけ
る高いネットワーク・レベルで検知され、従ってネット
ワーク・システム100の全体的な動作には致命的なも
のとならない。送信側のデバイスはパケットのドロップ
を検知し、そのドロップされたパケットを含む1つ又は
それ以上の数のパケットを再送信する。
【0026】バス・インタフェース・ロジック308
は、後に詳述するように、HSB206上で同時のリー
ド及びライト・サイクルを実現するために、リード・ラ
ッチ324およびライト・ラッチ326を含んでいるこ
とが望ましい。これらのラッチは、第1のクロック(C
LK_1)信号の特定のサイクルでHSB206上にア
サートされたPORT_NO[1:0]信号をラッチす
る。CLK_1信号は、HSB206にとっての主クロ
ックであり、示した実施例においては通常およそ30〜
33MHzで動作する。CLK_1信号は主クロックで
あるので、以降本明細書では単にCLK信号と呼称す
る。第2のクロック信号CLK_2もメモリ212との
インタフェースに使用され、CLK信号の周波数の2倍
(2X)又は約60〜66MHzで動作する。
【0027】図4は、図3に示す特定のカッド・カスケ
ード・デバイス202の信号の図解である。これらの信
号は、QCバス204と関連のプロセッサ・インタフェ
ース信号、4つのポート104に関連のネットワーク・
インタフェース信号、状態信号、クロック及びテスト信
号、HSBバス206に関連のバス・インタフェース信
号、およびその他種々の信号を含む、いくつかの機能お
よびバスのセクションに分けられる。
【0028】QCバス204に関しては、EPSM21
0は、データ信号PDATA[15:0]を通じて、Q
Cデバイス202のレジスタおよびカウンタ306、3
10とデータの読み書きを行う。READ*信号は書き
込み動作に対してはハイにアサートされ、読み出し動作
に対してはローにアサートされる。QCデバイス202
内の特定のレジスタは、ADRS[5:0]信号にアサ
ートされたアドレスによって決定される。アドレス・ス
トローブ信号ADRS_STROBE*がいくつかのチ
ップ選択信号CHIP_SELECTm*の対応する1
つとともにアサートされると、QCデバイス202はA
DRS信号をラッチする。信号名に付けられた小文字の
“m”は、一般に1つの特定のタイプに属する複数の信
号を意味する。例えば、6つの別々のCHIP_SEL
ECT[5:0]*信号があり、その場合それぞれの信
号は6つのQCデバイス202のそれぞれ1つに別個に
アクセスするためのものである。信号PREADY*
は、要求されたデータがラッチされるCLK信号の立ち
上がり後のライト・サイクル中に、CLK信号の1サイ
クルに対してQCデバイス202によってローにアサー
トされる。リード・サイクルについては、QCデバイス
202が、データをPDATAバス上に置いた後の1C
LKサイクルに対してPREADY*をローにアサート
する。
【0029】図5は、QCデバイス202のプロセッサ
・リード・サイクルを図解する例示的なタイミング図で
あり、図6は、プロセッサ・ライト・サイクルを図解す
る例示的なタイミング図である。図7は、QCデバイス
202のプロセッサ・バースト・リード・アクセス・サ
イクルを図解する例示的なタイミング図である。これら
のタイミング図はいずれもあくまで例示であって、特定
のタイミングや特定の信号特性などを示すものではな
く、一般的な相関性を図解するものである。
【0030】図4に戻り、これを参照する。ネットワー
ク・インタフェース信号は、負および正の衝突スレッシ
ョルド信号、衝突参照信号、信号中のシリアル・デー
タ、負および正のマンチェスタ符号化データ信号、正お
よび負のデータ・スレッショルド信号、データ・スレッ
ショルド参照信号、正および負のプリエンファシス(Pr
e-emphasis)信号、および各QCデバイス202の
[3:0]で表される4ポートの各々に対するよった対
/AUIモード選択信号を含む。各QCデバイスはCL
K信号を受信し、ポート104が使用する80、20お
よび10MHzの内部クロック信号を生成するための2
0MHzのクロック信号を受信するCLOCK_20M
HZ入力を有する。各イーサネット・コア300は、対
応するセグメント108で発生する衝突を検知し、イー
サネットのCSMA/CD(キャリア検知多重アクセス
/衝突検出(Carrier Sense Multiple Access/Collisio
n Detect))法に従ってジャミング・シーケンスを送信
する。
【0031】HSB206に関連するバス・インタフェ
ース信号については、QCデバイス202がABORT
_OUT*信号をアサートして1つのパケット全体をア
ボートする。EPSM210は、アボート信号ABOR
T_IN*をアサートして現在のバス・サイクルをアボ
ートする。1つの実施例においては、QCデバイス20
2は、EPSM210がHSB206上で背圧サイクル
を実行することによって受信しているパケットをアボー
トできるように考案されたQE110デバイスである。
この特定のタイプの背圧機能は、1つのポートで受信中
の1つのパケットの拒否を可能とする「パケット毎(パ
ケット・バイ・パケット)」あるいは動的な「ポートご
と」の背圧である。L64381デバイスは、本明細書
で後に詳述する自動挿入フレーム・チェック・シーケン
ス信号(AI_FCS_IN*)を含む。QE110デ
バイスはAI_FCS_IN*信号を信号FBPN*と
置換する。この信号はAI_FCS_IN*信号と同じ
機能を遂行するために使用されるが、背圧サイクルおよ
びエンハンスト・パケット・フラッシュ(enhancedpack
et flush)を示すためにも用いられる。本明細書で説明
しているように、動的背圧を実施するために使用できる
代替方法が多数存在することは言うまでもない。特に、
EPSM210は、背圧要求サイクルを実行するために
リード・サイクル中にFBPN*信号をアサートする。
もしABORT_OUT*信号がリード・サイクルのデ
ータ・フェーズの間に対応するQCデバイス202によ
ってアサートされると、その背圧「要求」はそのQCデ
バイス202に認められたことになり、これがジャミン
グ・シーケンスをアサートしてそのパケットをアボート
する。もしABORT_OUT*信号がアサートされな
いと、EPSM210はそのパケットをドロップする。
【0032】EPSM210は、QCデバイス202お
よびTPI220のすべてに対して状態ストローブ信号
STROBE*をアサートし、その各々は、STROB
E*信号がCLK信号の立ち上がりでアサートされてサ
ンプリングされるときに、信号PKT_AVAILm*
およびBUF_AVAILm*上で多重化された様式で
その4つのポート104又は110(TPI220の場
合)の状態で応答する。或る動作に対しては別のポート
として働く、各QCデバイス202に対する別個の信
号、TPI220に対して1組及びCPU230に対し
て類似の組、がある。特にPKT_AVAILm*およ
びBUF_AVAILm*信号は、QCデバイス202
用に信号PKT_AVAIL[5:0]*およびBUF
_AVAIL[5:0]*と、TPI220用にそれぞ
れPKT_AVAIL[6]*およびBUF_AVAI
L[6]*とも呼ばれる信号TPI_PKT_AVAI
L*およびTPI_BUF_AVAIL*と、CPU2
30に対応するPKT_AVAIL[7]*およびBU
F_AVAIL[7]*ともそれぞれ呼ばれる信号PC
B_PKT_AVAIL*およびPCB_BUF_AV
AIL*との、1つの信号タイプについて全部で8つの
信号を含む。
【0033】このように、HSB206は最初QCデバ
イス202が4つのポート、ポート0〜ポート3にアク
セスするための信号PKT_AVAIL[0]*および
BUF_AVAIL[0]*を含み、HSB206は次
のQCデバイス202が次の4つのポート、ポート4〜
ポート7にアクセスするための信号PKT_AVAIL
[1]*およびBUF_AVAIL[1]*を含み、と
以下同様で、TPI220はポート、ポート24〜ポー
ト27にアクセスするための信号PKT_AVAIL
[6]*およびBUF_AVAIL[6]*を含み、E
PSM210はCPU230に対する内部信号PKT_
AVAIL[7]*およびBUF_AVAIL[7]*
を含む。CLK信号のそれぞれのサイクルで分離される
4つのポートに対応する各信号に、最高4ビットが多重
化される。
【0034】STROBE*信号に応答して、バス・イ
ンタフェース・ロジック308は、それぞれのポートに
対する対応する各送信FIFO304にデータを格納す
るスペースが十分あるかどうかを表示するBUF_AV
AIL[5:0]*信号のそれぞれのものに4つの状態
ビットを多重化するためのポート状態ロジック303を
含む。ポート状態ロジック303は、図示されている4
つのポートのすべてに対して集中化するか、又はポート
間に分散するかの何れかである。空きスペースの判定
は、CPU230によって16、32あるいは64バイ
トにコンフィギュレーションされるのが望ましい、バス
転送フィールド・サイズ(TBUS)を格納するバス・
インタフェース・ロジック308内のコンフィギュレー
ション・レジスタに従う。同様に、STROBE*信号
に応答して、TPI220は、後述するその内部の送信
FIFOのそれぞれに、ポート24〜ポート27の各々
に対するTLAN226の対応するものに対するデータ
を格納するスペースが十分あるかどうかを示すために、
BUF_AVAIL[6]*信号に4つの状態ビットを
多重化するための、HSB206に結合している類似し
たポート状態ロジック820(図31)を含む。CPU
230あるいはポート28については、EPSM210
内のPCB406(図11)が、EPSM210の内部
の内部PCB送信FIFOにCPU230に対するデー
タを格納するための使用可能なスペースがあるかどうか
を表示するためにBUF_AVAIL[7]*信号に1
つの状態ビットをアサートする。
【0035】同様に、STROBE*信号に応答して、
各QCデバイス202内のバス・インタフェース・ロジ
ック308のポート状態ロジック303は、それぞれの
ポートに対するその受信FIFO302の各々に、HS
B206上におけるバス転送のための受信したデータを
送信するために十分なデータがあるかどうかをTBUS
の値によって表示するPKT_AVAIL[5:0]*
信号のそれぞれのものに4つの状態ビットを多重化す
る。同様に、TPI220は、その内部の受信FIFO
がHSB206上における転送のためにそれぞれのポー
ト23〜ポート27から十分なデータを受信したかどう
かを表示するPKT_AVAIL[6]*信号に4つの
状態ビットを多重化する。CPU230については、E
PSM210内のPCB406が、EPSM210の内
部PCB受信FIFOがHSB206バス転送のために
CPU230から十分なデータを受信したかどうかを表
示するPKT_AVAIL[7]*信号に1つの状態ビ
ットをアサートする。
【0036】図8は、QCデバイス202およびTPI
220のバッファ状態問い合わせを図解する例示的なタ
イミング図であり、EPSM210によるSTROBE
*信号のアサートと各QCデバイス202の応答、TP
I220のアサートするそれぞれのPKT_AVAIL
m*およびBUF_AVAILm*信号をを含む。図8
におけるポート0、ポート1、ポート2、およびポート
3は、特定のQCデバイス202の4つのそれぞれのポ
ートあるいはTPI220である。PCB406は、そ
のポートが4つのフェーズすべてでアクティブになって
いることを除けば、その応答は同様である。STROB
E*信号はレベル・トリガされ、従ってCLK信号の最
初の立ち上がりでローにサンプリングされる。ここで、
図8のタイミング図はあくまでも例示であって、特定の
タイミングや特定の信号特性などではなく、一般的な相
関性を図解するものであることに留意されたい。例え
ば、STROBE*信号は周期的であり、示した実施例
の動作においては典型的には1CLKサイクルを超える
間ローにアサートされる。
【0037】図4に戻り、これを参照する。信号POR
T_BUSY*は、それぞれのポートが半二重モードで
送信中であるか受信中であるか、あるいはそのポートが
いつ全二重モードで送信しているかを表示するために使
用される。リード・データ信号READ_OUT_PK
T[5:0]*はEPSM210にアサートされて、そ
れぞれのQCデバイス202に対し、それぞれの受信F
IFO302からのデータをデータ信号DATA[3
1:0]上に置くことを通知する。同様にして、ライト
・データ信号WRITE_IN_PKT[5:0]*は
EPSM210にアサートされて、それぞれのQCデバ
イス202に対し、データ信号DATA[31:0]か
らそれぞれの送信FIFO304にデータを取り出すこ
とを通知する。さらに、類似の信号PCB_RD_OU
T_PKT*、PCB_WR_IN_PKT*、および
TPI_READ_OUT_PKT*、TPI_WRI
TE_IN_PKT*がそれぞれTPI220およびC
PU230用に含まれる。すべてのリードおよびライト
信号は、集合的にそれぞれREAD_OUT_PKTm
*およびWRITE_IN_PKTm*信号と呼称す
る。PORT_NO[1:0]ビットは、どの特定のポ
ート104がHSB206上で実行されるサイクルに対
してアドレスされているかを表示する。
【0038】信号SOP*は、パケットの先頭又はヘッ
ダがHSB206上に転送されたときにパケットの開始
(Start Of Packet)を示す。AI_FCS_IN*信
号は、一般にSOP*およびWRITE_IN_PKT
m*信号の1つとともに外部のデバイスにアサートさ
れ、これにより、(QCデバイス202の1つの実施に
対して)L64381デバイスが自動的にパケット内の
データからCRC(巡回冗長検査(Cyclic Redundancy
Check))値を計算し、そのCRCをパケットのFCS
フィールドに挿入するようにする。QE110デバイス
は付加的な機能のために、前述したように、AI_FC
S_IN*信号をFBPN*信号と置換する。EOP*
信号は、HSB206上でデータ・パケットの最後のデ
ータ転送が転送されたときにパケットの終了(End Of P
acket)を表示する。BYTE_VALID[3:0]
*信号は、DATA(データ)信号上の現在のワードに
おいてどのバイトが有効であるかを表示する。通常1つ
のデータ・パケットはHSB206上での1回での転送
には大き過ぎ、従って各バス・サイクルではTBUS値
に等しいか又はこれより少ない量のデータが転送される
ことに留意されたい。
【0039】各QCデバイス202が4つのポートのそ
れぞれを10Base−Tイーサネット・ポートとして
動作させる点が理解できる。また、EPSM210がQ
Cバス204を介してQCデバイス202のすべてのレ
ジスタに読み書きのアクセスができるということが理解
できる。さらに、EPSM210はHSB206を介し
て受信FIFO302のすべてからデータを読み取り、
送信FIFO304のすべてにデータを書き込む。
【0040】図9は、HSB206上での同時リード及
びライト・サイクルを図解する例示的なタイミング図で
ある。このタイミング図の一番上にサイクルのタイプを
示しており、2つの同時リード及びライト・サイクルが
順次実行される。CLK、CLK_2、STROBE
*、READ_OUT_PKTm*、WRITE_IN
_PKTm*、PORT_NO[1:0]、DATA
[31:0]、およびABORT_OUT*信号をこの
タイミング図のY軸(すなわち縦軸)に書いて示し、そ
れに対して時間をX軸(すなわち横軸)に書いている。
同時リード及びライト・サイクルには2種類があって、
それらは特定の構成に依存して実行される。最初の一般
的なタイプの同時サイクルについて、QCデバイス20
2がラッチ324および326を含むQE110デバイ
スで実施される場合は、なんら追加的な策を要せず同時
リード及びライト・サイクルが実行される。これに代わ
って、もしQCデバイス202がL64381デバイス
で実施される場合、外部のラッチおよび選択ロジック
(示さず)が追加され、PORT_NO信号がHSB2
06上でアサートされたとき、これをラッチする。2番
目の特殊なタイプの同時リード及びライト・サイクル
は、何も補強せずL64381デバイスで実行される。
ただし、それはPORT_NO信号が同じであるときの
み且つQCデバイス202が異なるときのみに限られ
る。
【0041】EPSM210は、例えばリード、ライ
ト、同時リード及びライト、背圧などといった、実行す
べきサイクルのタイプを決定する。リード・サイクルは
一般にREAD_OUT_PKTm*信号の1つのアサ
ートによって指示され、ライト・サイクルは通常WRI
TE_IN_PKTm*信号の1つのアサートによって
指示される。同時リード及びライト・サイクルは、RE
AD_OUT_PKTm*信号とWRITE_IN_P
KTm*信号の同時のアサートによって指示される。E
PSM210は、例えば、後に詳述するように両ポート
ともカットスルー(CT)モードで動作すべくコンフィ
ギュレーションされている場合のみのような、特定の条
件の下で2つのポート間で同時リード及びライトを行
う。
【0042】同時サイクルの期間中、EPSM210は
3番目のCLKサイクルの始まりでREAD_OUT_
PKTm*信号の1つをローにアサートしてQCデバイ
ス202の1つまたはTPI220を指示し、3番目の
CLKサイクル中にPORT_NO[1:0]信号上に
当該のポート番号をアサートして、アサートされた特定
のREAD_OUT_PKTm*信号で識別されるQC
デバイス202の4ポートのうちの1つを指示する。特
定のREAD_OUT_PKTm*信号で識別されるQ
Cデバイス202は、3番目のCLKサイクルにおいて
PORT_NO[1:0]信号をラッチし、読み出され
る特定のポートを判断する。例えば、QCデバイス20
2を実施するQE110デバイスは、PORT_NO
[1:0]信号をラッチするリード・ラッチ324を用
いて構成される。また、TPI220は同様のリード・
ラッチ819b(図31)を含み、これは、もしREA
D_OUT_PKT[6]*信号で指示されていれば、
3番目のCLKサイクルにおいてPORT_NO[1:
0]信号をラッチする。あるいは、もしQCデバイス2
02の機能遂行に用いられるデバイスがL64381デ
バイスであれば、外部のラッチがこの目的に使用され
る。この時点で、識別されたポート0〜ポート27の特
定のポートがHSB206上でリード・サイクルのソー
ス・ポートとして指示されている。
【0043】EPSM210は、次に4番目のCLKサ
イクルの始めでWRITE_IN_PKTm*信号の1
つをローにアサートして、QCデバイス202の同じ又
は他のものまたはTPI220を指示し、4番目のCL
Kサイクル中にPORT_NO[1:0]信号上に適当
なポート番号をアサートし、アサートされた特定のWR
ITE_IN_PKTm*信号で示されるデバイスの4
ポートのうち1つを指示する。特定のWRITE_IN
_PKTm*信号で識別されるQCデバイス202は、
4番目のCLKサイクルにおいてPORT_NO[1:
0]信号をラッチし、書き込まれる特定のポートを判断
する。例えば、QCデバイス202の機能を実施するQ
E110デバイスは、第4のCLKサイクルにおいてP
ORT_NO[1:0]信号をラッチするためのライト
・ラッチ326を用いて構成される。また、TPI22
0は、もしWRITE_IN_PKT[6]*信号で指
示されたならば、4番目のCLKサイクルにおいてPO
RT_NO[1:0]信号をラッチするための同様のラ
イト・ラッチ819bを含む。このようにして、ポート
0〜ポート27の他のいずれかのポートがHSB206
上のライト・サイクルの宛て先ポートとして指示され、
そのライト・サイクルは指示されたばかりのリード・サ
イクルと同時に実行される。ソース・ポートと宛て先ポ
ートは、同一のQCデバイス202上か、TPI220
の2つのポート間か、異なるQCデバイス202間のい
ずれに存在し得る。しかし、示した実施例においては、
同時リード及びライト・サイクルは、QCデバイス20
2のポート104の1つとTPI220のポート110
の1つとの間では、データ転送の速度が違うために実行
されない。
【0044】CLK信号の次のサイクルで、パケット・
データはHSB206を介して転送、あるいはソース・
ポートから読み出され、直接に宛て先ポートに書き込ま
れ、その際EPSM210あるいはメモリ212には格
納されない。データ転送は、実施例によって異なるが幾
つかのバイトを転送するためにサイクル5、6、7、お
よび8で実行される。例えば、L64381デバイスに
関しては64バイトまでが転送され、QE110デバイ
スでは256バイトまでが転送される。データ転送に4
つのCLKサイクルを示しているが、送るべきデータの
量によっては1、2あるいは4のCLKサイクルで転送
される場合もあり得る。新しパケットに関しては、最初
に通常のリード・サイクルが実行されてソースおよび宛
て先のMACアドレスがEPSM210に供給され、こ
れが後に詳述するハッシュ手順を実行し、もし既知であ
れば、宛て先ポート番号を決定する。受信先(宛て先)
ポート番号が分かり、そしてもし宛て先ポートが1つだ
けであれば、必要に応じてパケットの残存部分のいずれ
かの部分あるいは全部について、同時リード及びライト
動作を実行することができる。
【0045】もしPORT_NO信号が同じであるが、
2つの異なったポート間であり、従って2つの異なった
QCデバイス202間であるならば、特殊なタイプの同
時リード及びライト・サイクルが実行される。図9では
このケースも図解しているが、サイクル全体を通してP
ORT_NO信号が不変のままであるという点が例外で
ある。PORT_NO信号が変わらないので、ラッチ3
24、326は不要である。従って、このタイプの同時
サイクルは2つの異なるL64381デバイス間で、外
部にラッチや選択ロジックを必要とせずに実行すること
ができる。EPSM210は、送信元(ソース)と宛て
先のポート間でPORT_NO信号が等しいこと、およ
び2つの異なったQCデバイス202が用いられること
を判断してから、説明したように同時サイクルを実行す
る。
【0046】図9に図解されているように、2回目の同
時リード及びライト転送は6番目のCLKサイクルで発
生し、PORT_NO[1:0]信号が7番目、8番目
および9番目のサイクルにおいて、それぞれ、リード・
モード、リード・ポート番号、およびライト・ポート番
号でアサートされる。それに応答して、READ_OU
T_PKTm*信号は7番目のCLKサイクルに対して
デアサート(de-assert)される。同様に、WRITE
_IN_PKTm*信号は8番目のCLKサイクルに対
してデアサートされる。この2回目の同時サイクルは、
同一データ・パケットの続きのない連続したデータを供
給するための最初の同時サイクルの続きか、あるいはま
ったく異なったデータ・パケットの開始のいずれかであ
る。同一パケットの連続したデータについては、ソース
および宛て先のポートは同じである。しかし、ソース・
ポートまたは宛て先ポートあるいはその両方は、異なる
パケットのデータを転送する2回目の同時サイクルでは
同一のものではないこともある。
【0047】図10は、HSB206上で同時リード及
びライト・サイクルを実行する手順を示すフローチャー
トである。最初のステップ330で、EPSM210
は、ソース・ポートと宛て先ポートの間でのHSB20
6上での同時リード及びライト・サイクルが実行可能か
どうかを判断する。EPSM210は、それから次のス
テップ332で、ソース・ポートを識別するための適当
な信号をアサートする。これは、HSB206上でPO
RT_NO信号を用いてソースまたは「リード」ポート
の番号をアサートすることによって、及び適当なREA
D_OUT_PKTm*信号をアサートすることによっ
て行われる。次のステップ334では、識別されたソー
ス・ポート・デバイスがその識別(アイデンティフィケ
ーション)信号を検知もしくは格納する。ラッチを伴わ
ない特殊な同時サイクルでは、QCデバイス202がH
SB206上でREAD_OUT_PKTm*信号を検
知し、続いてPORT_NO信号を検知して、リード・
サイクルの準備を開始する。ラッチを用いる一般的な同
時サイクルでは、指示されたQCデバイス202あるい
はTPI220がステップ334でリード・ポート番号
をラッチし、リード・サイクルの準備を開始する。
【0048】次のステップ336では、EPSM210
は宛て先ポートを識別するための適当な信号をアサート
する。特殊な同時サイクルでは、EPSM210は適当
なWRITE_IN_PKTm*信号をアサートし、同
じPORT_NO信号を維持する。一般の場合では、ス
テップ336において、EPSM210はまた、HSB
206上に宛て先または「ライト」ポート番号を適当な
WRITE_IN_PKTm*信号とともにアサートす
る。続くステップ338では、識別された宛て先ポート
・デバイスがその識別信号を検知もしくは格納する。ラ
ッチを伴わない特殊な同時サイクルでは、示されたQC
デバイス202がHSB206上でWRITE_IN_
PKTm*信号を検知し、続いてPORT_NO信号を
検知して、ライト・サイクルの準備を開始する。一般的
な場合では、指示されたQCデバイス202あるいはT
PI220が、ステップ338、で宛て先またはライト
・ポート番号をラッチする。最後に、同時リード及びラ
イト・サイクルのステップ340で、ここで指示された
ソース・ポートがHSB206上にデータを送出し、指
示された宛て先ポートがHSB206からデータを読み
取る。
【0049】同時リード及びライト動作は、パケット・
データの各転送にただ1つのバスしか必要としないた
め、最速タイプのデータ転送サイクルである。後に詳述
するように、通常のCTモードの動作では少なくとも2
回の転送が必要である。すなわち、1つはソース・ポー
トからEPSM210へ、そしてもう1つはEPSM2
10から宛て先ポートへの転送であって、これは同じデ
ータに対してHSB206上で2つの別のサイクルが必
要となる。同時リード及びライト・サイクルは、HSB
206上で同一のデータについて1回で直接の転送を要
し、それによりHSB206の帯域幅が増大する。その
他、幾つかの暫定的なCTや蓄積転送(SnF)モード
を含むより遅いモードもあり、その場合、パケット・デ
ータはメモリ212に書き込まれてから宛て先ポートに
転送される。
【0050】次に図11を参照すると、EPSM210
の簡略なブロック図で、データの流れとコンフィギュレ
ーション・レジスタを図解している。EPSM210
は、HSBコントローラ・ブロック(HCB)402、
メモリ・コントローラ・ブロック(MCB)404、お
よびプロセッサ制御ブロック(PCB)406という3
つの主要セクションを含む。QCインタフェース410
はHSB206をEPSM210のHCB402に結合
する。QCインタフェース410の他側には1組のバッ
ファ、すなわちFIFO412が結合されており、これ
らのFIFO412には受信FIFO、送信FIFO、
および本明細書で後に詳述するカットスルーFIFOが
含まれる。FIFO412の他側(図12のCTバッフ
ァ528を除く)は、MCBインタフェース414を介
してMCB404に結合されており、そのMCBインタ
フェース414は適当なバス420を介してMCB40
4内のHCBインタフェース418に結合されている。
HCBインタフェース418はさらにメモリ・インタフ
ェース422に結合され、メモリ・インタフェース42
2はメモリ・バス214を介してメモリ212に結合さ
れる。メモリ・インタフェース422はさらにPCBイ
ンタフェース424の一側に結合されており、そのPC
Bインタフェース424の他側は適当なMCBバス42
8を介してPCB406内のMCBインタフェース42
6の一側に結合されている。MCBインタフェース42
6の他側は1組のFIFO430の一側に結合されてお
り、FIFO430がさらにPCB406内のCPUイ
ンタフェース432に結合されている。CPUインタフ
ェース432はQC/CPUバス204およびCPUバ
ス218に結合される。CPUインタフェース432は
さらにPCB406内の第2の組のFIFO434の一
側に結合されており、FIFO434の他側はQC/H
CBインタフェース436に結合されている。QC/H
CBインタフェース436の他側は適当なHCBバス4
38を介してQCインタフェース410に結合されてい
る。
【0051】PCB406とCPU230に関連するH
CBバス438のPCB_BUF_AVAIL*、PC
B_PKT_AVAIL*、PCB_RD_OUT_P
KT*、およびPCB_WR_IN_PKT*信号は、
それぞれ、BUF_AVAILm*、PKT_AVAI
Lm*、READ_OUT_PKTm*、およびWRI
TE_IN_PKTm*信号に含まれていることに留意
されたい。示した本実施例において、HCBバス438
はHSB206と類似しており、本質的にはEPSM2
10内のHSB206の内部バージョンである。PCB
406は、HCB402に対してポート104のそれぞ
れおよびTPI220と同様の働きをする。このように
して、CPU230はPCB406の動作を通じて、H
CB402に対する追加的なポート(PORT28)と
して動作する。
【0052】CPUインタフェース432はバス442
を介してレジスタ・インタフェース440に結合され、
レジスタ・インタフェース440はさらにレジスタ・バ
ス444に結合される。レジスタ・バス444はHCB
402内の1組のHCBコンフィギュレーション・レジ
スタ、およびMCB404内の1組のMCBコンフィギ
ュレーション・レジスタ448に結合される。このよう
にして、CPU230は、CPUインタフェース432
とレジスタ・インタフェース440を介し、HCBコン
フィギュレーション・レジスタ446およびMCBコン
フィギュレーション・レジスタ448の両方のレジスタ
の初期設定とプログラミングを行う。
【0053】MCBコンフィギュレーション・レジスタ
448は、ポートおよびメモリ212に関連する相当な
量のコンフィギュレーション情報の格納に使用される。
例えば、MCBコンフィギュレーション・レジスタ44
8は、各ポートが学習(LRN)状態か転送(FWD)
状態かブロック(閉じた)(BLK)状態か聴取(LS
T)状態か又はディスエーブル(DIS)状態かを示す
ポート状態情報、メモリ・セクタ情報、メモリ・バス2
14のバス使用情報、ドロップされたパケットの数、ハ
ッシュ・テーブル定義、メモリ・スレッショルド、BC
スレッショルド、もしあれば機密保護ポートのアイデン
ティフィケーション、メモリ制御情報、MCB割り込み
ソース・ビット、割り込みマスクビット、ポーリング・
ソース・ビットなどを含む。
【0054】EPSM210の説明では、CPU230
はコンフィギュレーションおよび制御の目的で、QCデ
バイス202およびメモリ212にアクセスできること
を述べている。EPSM210とのHSB206を用い
る主たるデータ・フローはFIFO412とメモリ21
2を通じてのものであるが、HSB206とCPU23
0との間でも、HCBバス438およびEPSM210
の関連するFIFO及びインタフェースを介したデータ
・フローも発生する。
【0055】次に図12を参照すると、HCB402の
詳細なブロック図が示されている。HCBバス438は
PCB406にインタフェースするためのHSB206
の内部バージョンであり、そこでバス206と438を
一括してHSB206と呼称する。ポーリング・ロジッ
ク501は、HSB206、1組のローカル・レジスタ
506、およびHCBコンフィギュレーション・レジス
タ446に結合されている。ポーリング・ロジック50
1は、CLK信号を受信し、ポート104、110およ
びPCB406を問い合わせるべくQCデバイス202
およびTPI220へのSTROBE*信号を周期的に
アサートする。ポーリング・ロジック501は、QCデ
バイス202およびTPI220からの多重化されたP
KT_AVAILm*およびBUF_AVAILm*信
号をモニタする。ここで、各QCデバイス202および
TPI220は、前述したように、その4つのポート1
04、110の状態をそれぞれ供給する。TPI220
はPKT_AVAIL[6]*およびBUF_AVAI
L[6]*信号で応答し、PCB406はPKT_AV
AIL[7]*およびBUF_AVAIL[7]*信号
で応答する。
【0056】ポーリング・ロジック501は受信(R
X)ポーリング状態マシン502を含み、これでPKT
_AVAILm*信号を見直し(リビューし、revie
w)、レジスタ506内の受信リスト(RECEIVE LIST)
509を更新する。同様に、ポーリング・ロジック50
1は送信(TX)ポーリング状態マシン503を含み、
これでBUF_AVAILm*信号を見直し、レジスタ
506内の送信リスト(TRANSMIT LIST)510を更新
する。もしHCBコンフィギュレーション・レジスタ4
46におけるWTPRIORITYフラグがCPU23
0によってセットされれば、RXポーリング状態マシン
502およびTXポーリング状態マシン503の両方
は、HCBコンフィギュレーション・レジスタ446内
の1組のウエイト・ファクタ(WEIGHT FACTORS)508
使用して、後に詳述するように、それぞれ受信リスト5
09および送信リスト510をプログラミングする。H
CBコンフィギュレーション・レジスタ446はまた1
組のCT_SNFレジスタ507を含んでおり、これが
CPU230にプログラミングされ、対応するポートが
ソース・ポートあるいは宛て先ポートである場合、所望
される動作モードをCTとSnFとの間で決定する。
【0057】レジスタ506は、ラッチ、フリップ・フ
ロップ、スタティックRAM(SRAM)、DRAMデ
バイスなどのような、EPSM210の実施に従っての
任意の様式で実施され、複数の状態および制御(コント
ロール)のレジスタ又はバッファを含む。受信リスト5
09は、各ポートの相対的受信状態(ステータス)およ
び優先度(優先順位)を示す複数のレジスタ値を含む。
同様に、送信リスト510は、各ポートの相対的送信ス
テータスおよび優先度を示す複数のレジスタ値を含む。
PRカウント(RPCOUNT)・レジスタ511aは、各ポ
ートが外部のネットワーク・デバイスからパケット・デ
ータを受信したとき、その受信ポートに相対的な受信優
先順位を割り当てるためにRXポーリング状態マシン5
02によって使用されるPRカウント(RPCOUNT)番号
を格納している。もしくは、RXポーリング状態マシン
502はウエイト・ファクタ508からの対応するウエ
イト(重み)・ファクタを使用する。同様に、TPカウ
ント(TPCOUNT)・レジスタ511bは、ポートによっ
て外部のネットワーク・デバイスへ送信できるパケット
・データがあり、ポートが送信のためのデータを収容可
能なとき、そのポートに相対的な送信優先順位を割り当
てるためにTXポーリング状態マシン503によって使
用されるTPカウント(TPCOUNT)番号を格納する。も
しくは、TXポーリング状態マシン502はウエイト・
ファクタ508からの対応するウエイト・ファクタを使
用する。相対的アービトレーション・カウント番号RX
ニューカウント(RXNEWCNT)、RXACTカウント(RX
ACTCNT)、TXニューカウント(TXNEWCNT)およびYX
CTカウント(TXCTCNT)は、それぞれ、レジスタRX
ニューカウント511c、RXACTカウント511
d、TXニューカウント511eおよびTXCTカウン
ト511fに格納される。
【0058】HCB402は、レジスタ506および4
46内のデータを調べてHSB206上で実行されたサ
イクルのタイプを判断するために結合されたアービトレ
ーション・ロジック504を含む。HSBコントローラ
505は、EPSM210とHSB206との間のデー
タ・フローをコントロールするために、HSB206上
で実行される各サイクルを実行及び制御する。HSBコ
ントローラ505は、状態ビットを変更するためにレジ
スタ506に結合される。HSBコントローラ505
は、各サイクルのタイプのアイデンティフィケーション
をアービトレーション・ロジック504から受け取る。
アービトレーション・ロジック504は、新パケット受
信(RX NW)アービタ513、受信アクティブ(R
X ACT)アービタ514、新パケット送信(TX
NW)アービタ515および送信カットスルー(TX
CT)アービタ516の全部で4つのデータ・アービタ
に結合されたメイン(MAIN)・アービタ512を含む。
メイン・アービタ512は、一般に、RX NWアービ
タ513、RX ACTアービタ514、TX NWア
ービタ515、およびTX CTアービタ516の間で
選択を行い、各アービタは調停(仲裁)を行って次のサ
イクルを決める。メイン・アービタ512は、必要に応
じて条件に適ったいずれかの優先順位スキームを用い
る。例えば、示した実施例においては、メイン・アービ
タ512はラウンドロビン優先順位スキームを採用す
る。
【0059】FIFO412は任意の望ましい様式で実
施される。示した実施例においては、2つの受信バッフ
ァ、RX BUF520および522でRX FIFO
を実現しており、データは1つのバッファへの書き込み
中に他のバッファから読み出され、また、その逆も行わ
れる。また、2つの送信バッファ、TX BUF524
および526が用意されており、RX BUF520お
よび522と同様に動作する。FIFO412は、少な
くとも1つのカットスルー・バッファ、CTBUF52
8も含む。RX BUF520および522は両方とも
64バイトのバッファであり、それぞれが両方向のデー
タ・フローを実現するためにHSB206との双方向デ
ータ・インタフェース、およびRX MCBインタフェ
ース530を介してMCB404にデータを送るための
単向インタフェースを含む。TX BUF524および
526は両方とも64バイトのバッファであり、HSB
206とTX MCBインタフェース531との間に結
合されている。TX BUF524および526は、T
X MCBインタフェース531を介してMCB404
からデータを受け取り、データをHSB206に送る。
CT BUF528は64バイトのバッファであり、H
SB206との双方向インタフェースを有する。FIF
Oコントロール・ブロック529は、FIFO520、
522、524、および526のデータ・フローを制御
するため、及びRX MCBインタフェースおよびTX
MCBインタフェース530、531を介してアサー
トされた特定の状態信号を検知するため、及び後に詳述
するように、レジスタ506内の特定のビットをセット
するために、レジスタ506、HSBコントローラ50
5、RX BUF520と522、TX BUF524
と526、CT BUF528、RX MCBインタフ
ェース530およびTX MCBインタフェース531
に結合している。
【0060】バス420は、RX MCBインタフェー
ス530、TX MCBインタフェース531、ハッシ
ュ要求ロジック(ハッシュ・リクエスト・ロジック)及
びMCBインタフェース(HASH REQ LOGICと呼ぶ)53
2、および送信アービタ要求ロジック(TX ARBリ
クエスト・ロジック)及びMCBインタフェース(TXAR
B REQ LOGICと呼ぶ)533を介してHCB402をM
CB404にインタフェースするための複数のデータお
よび制御信号を含む。HSBコントローラ505は、ポ
ート0〜ポート28の1つからのそれぞれの新しいパケ
ットのヘッダをRX BUF520と522の1つに、
及びHASH REQ LOGIC532にコピーす
る。ヘッダは、サイズが少なくとも3つのDWORD
(それぞれ32ビット)すなわち96ビットであり、ソ
ースと宛て先の両方のMACアドレスを含む。HASH
REQ LOGIC532は、MCB404によって
実行されるハッシュの手順を要求し、適当なビットをレ
ジスタ506にセットする。このハッシュ手順は、パケ
ットに対して取られる適当な動作を決定するために行わ
れる。
【0061】示した実施例において、新しパケットのヘ
ッダを受け取った後、HASH REQ LOGIC5
32はMCB404へ信号HASH_REQ*をアサー
トし、HASH_DA_SA[15:0]信号上に48
ビットのMACの宛て先およびソース・アドレスおよび
8ビットのソース・ポート番号を多重化する。MCB4
04はHASH_REQ*信号を検知し、ハッシュ手順
を実行し、そしてHASH REQ LOGIC532
へ信号HASH_DONE*をアサートする。MCB4
04は、状況が許せば、信号HASH_DSTPRT
[4:0]、HASH_STATUS[1:0]、及び
HASH_BP*もアサートする。HASH_STAT
US[1:0]信号は次の4種類の結果の1つを表示す
る。すなわち、それらは、パケットをドロップするため
の00b=DROP_PKT(bは2進数を示す)、ブ
ロードキャスト(同報通信)(BC)パケットに対して
の01b=GROUP_BC、宛て先ポートが未知であ
り、従ってBCパケットであるという10b=MISS
_BC、および単一の宛て先ポートへのユニキャスト・
パケットを示す11b=FORWARD_PKTであ
る。もしHASH_STATUS[1:0]=FORW
ARD_PKTであれば、HASH_DSTPRT
[4:0]信号が、そのパケットの宛て先ポートを指定
する2進数のポート番号とともにアサートされる。HA
SH_BP*信号は、もし背圧がイネーブルとなってい
て適用可能であれば、MCB404が判断したメモリ2
12におけるスレッショルド・オーバーフロー状態に起
因して、背圧を示すためにアサートされる。
【0062】一定のしきい(スレッショルド)値が、メ
モリ212全体に対して、特定のタイプのパケット(例
えばBCパケット)に対して、及びポートごとに設定さ
れる。しきい値に達したとき、従ってメモリ212にも
う1つのパケットを入れるとスレッショルド条件を侵す
ことになる場合、そのパケットのドロップの如何はネッ
トワーク・スイッチ102が決定する。送信側のデバイ
スは最終的にそのパケットがドロップされたことを検知
し、そのパケットを再送信する。或るスレッショルド条
件に違反があった場合、もし背圧がイネーブルとなって
いてソース・ポートが半二重モードで動作していれば、
HASH_BP*信号がアサートされる。
【0063】HASH REQ LOGIC532はH
ASH_BP*信号を検知して、例えばソース・ポート
と宛て先ポートが同じかのように、HASH_STAT
US[1:0]=DROP_PKTであるかどうかを判
断する。もしHASH_STATUS[1:0]=DR
OP_PKTであれば、そのパケットはドロップされる
べきものであるから、それ以上の動作は不要である。も
しHASH_STATUS[1:0]とDROP_PK
Tが等しくなければ、HASH REQ LOGIC5
32はHASH_STATUS[1:0]=FORWA
RD_PKTであるかどうかを判断し、そのパケットは
CT BUF528を介してCTモードで転送されるこ
とになり、可能性としてメモリ212が避けられる。も
し宛て先ポートが使用中(ビジー)であるか、またはも
しHASH_STATUS[1:0]がパケットのドロ
ップあるいは転送を指示しなければ、HASH REQ
LOGIC532が、データを受信するポートに対して
背圧サイクルを実行するようHSBコントローラ505
に指示する。
【0064】SnF動作の間、EPSM210は、パケ
ットのいずれかの部分を宛て先ポートへ送信する前に、
パケット全体を受信してメモリ212に格納する。パケ
ットの受信が完了後であって、もし宛て先ポートが既知
であれば、そのパケットは、使用されている特定のアー
ビトレーション・スキームに従って、可能なときに宛て
先ポートに送られる。CT動作を適用する場合、両方の
ポートがCT_SNFレジスタ507内でCTモードに
プリセットされ、両ポートが同一速度で動作し、そして
宛て先ポートのTBUS設定がソース・ポートのTBU
S設定と比べて等しい又は大きい。100Mbpsのイ
ーサネット・ポート、ポート24〜ポート27の実現に
TLAN226を使用するここに示した特定の実施例に
おいて、TLANは送信に先立ってパケット全体のサイ
ズが必要であるため、ポート24〜ポート27について
CTモードは実行されない。また、示した実施例ではT
BUSの値が等しいことが要件である。本発明は、これ
ら様々な設計上の問題には制約されない。CTモードで
の動作中、EPSM210は指示された宛て先ポートに
対して、もしこれがビジーでなければ、データを送信す
るために、データを適当なQCデバイス202に供給す
る。パケット・データはメモリ212には転送されず、
ソース・ポートと宛て先ポートの間のFIFO412を
通じて緩衝格納(バッファ記憶)される。
【0065】もし受信したパケットの先頭で受信先のポ
ートがビジーであれば、データは暫定的(interim)C
T動作モードに従って、ソース・ポートと宛て先ポート
の間のメモリ212内でバッファされる。しかし、パケ
ット部は宛て先ポートによる送信に直ちに使用可能であ
って、宛て先ポートへの転送に、パケット全体の受け取
り完了を待つ必要がない。安全対策として、暫定的CT
動作モードを無効とし、その特定のパケットのための動
作を次のパケットのSnFモードに切り替えるメカニズ
ムが適用できる。
【0066】CTモードでのパケット転送中に、例えば
宛て先ポートの停止のような何らかの理由で宛て先ポー
トがそれ以上のデータの受信をできなくなった場合、動
作はミッドパケット(mid-packet)暫定CTモードに切
り替えられる。ミッドパケット暫定CTモードの間、F
IFO412内のパケット・データはメモリ212へ送
られ、その後宛て先ポートがさらにデータを受信するこ
とができるときにパケット・データがそのポートに送ら
れる。他の後続の受信されたパケットが、同じ停止した
ポートによる送信のために他のポートによって受信さ
れ、これら後続のパケットはそのポートに対する対応す
る送信チェーン内に入れられるので、ミッドパケット暫
定CTモードに切り替えられたパケットの残りの部分は
順序の適性化を意図してその送信チェーンの先頭に置か
れることに留意されたい。
【0067】もう1つのモードは適応(アダプティブ)
SnFモードと呼ばれる。パケットがCT動作モードで
転送されている間、CPU230は、ポート104、1
10、およびPCB406のいずれか1つまたはそれ以
上に「ラント(runt)」、「オーバーラン」、「ジャバ
ー(jabber)」、遅刻衝突(レイト・コリージョン、la
te collision)、FCSエラーなどの誤りが相当回数発
生するかどうかを判定するために、それらのアクティビ
ティの監視及び追跡を行っている。ラントはデータが一
定の最少量に満たないパケットで、示した本実施例にお
けるその最小サイズは64バイトである。オーバーラン
はデータが一定の最多量より多いパケットで、イーサネ
ット標準に従って示されている本実施例におけるその最
大サイズは1518バイトである。ジャバーはサイズが
最大サイズ(イーサネットではの1518バイト)を超
えており、無効なCRC(巡回冗長検査、(Cyclic Red
undancy Check))値が入っているパケットである。通
常、このような誤りのあるパケットはドロップされ、シ
ステム内に伝播されることはない。適応SnFモードに
ついては、もしポート104がCTモードで動作してい
て、このような誤りの発生がCPU230が判断すると
ころでは頻繁であると、CPU230は誤りが訂正また
は除去されるまで、そのポートにプリセットされている
モードをCT動作からSnF動作に切り替える。各TL
AN226のポート110の動作も同様であるが、パケ
ット・データがTPI220を通じてHSB206を介
してEPSM210に入り、送信の前にメモリ212に
格納されるという点が異なる。TPI220は、実際上
PCIバス222とHSB206との間のブリッジとし
て動作する。TLAN226が外部のネットワークにパ
ケットを送信する前にはパケット全体の長さが必要であ
り、従って、各パケットはTLAN226の1つによっ
て再送信される前に、そのパケットが受信されてその全
体がメモリ212に格納される。さらに、QCデバイス
202による送信用にTLAN226が受け取るデー
タ、およびTLAN226による送信のためにQCデバ
イス202が受け取るデータは、示した実施例における
デバイス202と226の間の速度の差が大きいため、
SnFモードで処理されてメモリ212に格納される。
【0068】RX MCBインタフェース530は、パ
ケット・データがRX BUF520、522の1つに
入っていてメモリ212への転送準備完了状態にあると
き、MCB404へRX_PKT_AVAIL*信号を
アサートする。パケット・データはHCB402から転
送され、メモリ・データ出力バスMemDataOut
あるいはMDO[31:0]を介してMCB404へ転
送される。スタティック信号MEM_EDOは、メモリ
212のタイプがEDOか同期DRAMであればアサー
トされ、FPM DRAMであればアサートされない。
RX MCBインタフェース530は、RX_PKT_
AVAIL*信号を適宜にアサートしている間、他のい
くつかの信号もアサートする。特に、RX MCBイン
タフェース530は、1CLKサイクルに対してRX_
SRC_DST[4:0]信号上にソース・ポート番号
を多重化し、続いて、RX_PKT_AVAIL*信号
をアサートしているときに、次のCLKサイクルの間
に、もし既知であれば、宛て先ポート番号を多重化す
る。また、RX MCBインタフェース530は、選択
されたRX BUF520、522内の、信号RX_C
NT[5:0]上のDWORDの数(マイナス1DWO
RD)をアサートする。
【0069】RX MCBインタフェース530は、も
しデータがパケットの始まりであれば信号RX_SOP
*をRX_PKT_AVAIL*信号とともにアサート
し、もしデータがそのパケットの終わりであれば信号R
X_EOP*をRX_PKT_AVAIL*信号ととも
にアサートする。RX MCBインタフェース530
は、パケットがCTモードで転送中であるが、暫定CT
やミッドパケットCTモードの場合のようにメモリ21
2で緩衝格納されていれば、信号RX_CUT_THR
U_SOP*を信号RX_PKT_AVAIL*および
RX_SOP*とともにアサートする。特に、もし(!
RX_CUT_THRU_SOP* & !RX_PKT
_AVAIL* & !RX_SOP*)であれば暫定C
T(全パケット)が指示され、もし(!RX_CUT_
THRU_SOP* & !RX_PKT_AVAIL*
& RX_SOP*)であれば暫定CTミッドパケット
が指示される。RX MCBインタフェース530は、
もし宛て先アドレスが未知であり、そしてパケットがB
Cパケットであれば、信号RX_MISS_BC*をR
X_PKT_AVAIL*およびRX_SOP*信号と
ともにアサートする。RX MCBインタフェース53
0は、もしヘッダ内でGROUP(グループ)ビットが
セットされていれば、従って、また。パケットがBCパ
ケットであれば、信号RX_GROUP_BC*をRX
_PKT_AVAIL*およびRX_SOP*信号とと
もにアサートする。RX MCBインタフェース530
は、信号RX_END_BYTE[1:0]をRX_P
KT_AVAIL*およびRX_EOP*信号とともに
アサートし、パケット内の最終バイトのバイト・レーン
(lane)を示す。
【0070】RX MCBインタフェース530は、ソ
ース・ポートが送信中にABORT_OUT*信号をア
サートしてパケット内における誤りの検知と表示を行え
ば、信号RX_ERROR*をRX_PKT_AVAI
L*およびRX_EOP*信号とともにアサートする。
FIFOオーバーラン、ラント・パケット、オーバーサ
イズのパケット、フレーム・チェック・シーケンス(F
CS)・エラー、あるいはフェーズ・ロックト・ループ
(PLL)エラーの検知のように、各種のエラー状況が
ポート104、110によってチェックされる。もしR
X_ERROR*信号がアサートされると、ネットワー
ク・スイッチ102は、パケットがSnFモードで転送
中であれば、そのパケットをドロップする。
【0071】MCB404は、アサートされたRX_P
KT_AVAIL*信号を検知した後、そして前述のよ
うにRX_PKT_AVAIL*信号でアサートされた
関連の信号をラッチした後に、HCB402へのRX_
ACK*信号をアサートする。MCB404は、次のD
WORDのデータを受け取れる状態に入ったときRX_
STB*信号をアサートする。MCB404は、HCB
402がデータを要求する可能性があると判断したと
き、信号RX_PKT_COMPLETE*をアサート
する。とりわけMCB404は、CTモードのパケット
に対してHCB402によってアサートされたRX_S
OP*信号を検知した後にRX_PKT_COMPLE
TE*信号をアサートする。またMCB404は、Sn
Fモードのパケットに対してHCB402によってアサ
ートされたRX_EOP*信号を検知した後にRX_P
KT_COMPLETE*信号をアサートする。MCB
404は、SnFパケットに関してRX_ERROR*
信号がアサートされていた場合(RX_SOP*信号と
ともにアサートされていないRX_CUT_THRU*
信号で示される状態)には、RX_PKT_COMPL
ETE*信号をアサートしない。MCB404は、MC
B404が判断したメモリ212におけるオーバーフロ
ー状態に起因してパケットがドロップされた場合、RX
_PKT_COMPLETE*信号の代わりにHCB4
02へ信号RX_PKT_ABORTED*をアサート
する。
【0072】TX ARB REQ LOGIC533
は、使用可能な宛て先ポートによる送信のためのデータ
のメモリ212からの取り出し要求を、アービトレーシ
ョン・ロジック504から受け取る。この要求は、一般
にTX NWアービタ515から出される。TX AR
B REQ LOGIC533は、応答してMCB40
4へ送信要求信号TX_ARB_REQ*をアサート
し、一方、信号TX_ARB_PORT[4:0]上に
宛て先ポート番号を、及び信号TX_ARB_XSIZ
E[2:0]に各データ部の最大転送長をアサートす
る。TX BUF524および526について、最大転
送長は、000b=16バイト、001b=32バイ
ト、010b=64バイト、011=128バイト、お
よび100=256バイトとして定義される。MCB4
04はこれらの値をラッチし、TX ARB REQ
LOGIC533へ肯定応答(アクノレッジ)信号TX
_ARB_ACK*をアサートする。MCB404は、
要求されたデータをメモリ212から取り出し、そのデ
ータをTX BUF524、526の1つに書き込む。
【0073】データはメモリ・データ入力バスMemD
ataInまたはMDI[31:0]を介してHCB
402内のTX BUF 524、526へ転送され
る。TXMCBインタフェース531は、TX BUF
524および526のいずれかがMCB404からの
データの受け取りに使用可能であるとFIFO制御ブロ
ック529が判断したとき、TX_BUF_AVAIL
*をアサートする。MCB404は、使用可能なTX
BUF 524あるいは526に格納すべくHCB40
2のTX MCBインタフェース531によるサンプリ
ングの対象となるデータが存在するとき、ストローブ信
号TX_STB*をアサートする。MCB404は、デ
ータの特性を識別するためにTX_STB*と同時にい
くつかの信号もアサートする。特に、MCB404はT
X_STB*信号とともに信号TX_SOP*をアサー
トし、メモリ212からデータの始めを検出する。MC
B404はTX_STB*信号とともにTX_AIFC
S*信号をアサートし、送信元ポートがCPU 230
を指示しているPCB406であるかどうかを判断す
る。MCB404はTX_STB*信号とともに信号T
X_CNT[5:0]上の2進数をアサートする。ここ
で、TX_CNT[5:0]は選択したTX FIFO
に書き込むDWORDの数(マイナス1DWORD)を
表す。MCB404はTX_STB*信号とともに信号
TX_EOP*をアサートし、メモリ212からパケッ
トの終わりを検出する。MCB 404はTX_EOP
*およびTX_STB*信号とともにバッファ・チェー
ン終結信号TX_EOBCもアサートし、メモリ212
内に特定の受信先ポートに宛てたデータが無くなったか
どうかを確認する。MCB 404はTX_EOP*お
よびTX_STB*信号とともにエンド・バイト信号も
アサートしてパケット内の最終バイトのバイト・レーン
を示す。
【0074】BCパケットについては、MCB404が
MDI[31:0]信号上のBCビットマップをアサー
トしつつ信号BC_PORT_STB*をアサートす
る。FIFO制御ブロック529は、BC_PORT_
STB*信号がアサートされたことを検知し、MDI
[31:0]信号をラッチして結果を内部のBCBIT
MAP[28:0]レジスタ内に格納する。FIFO制
御ブロック529は、TRANSMIT LIST 5
10内のメモリ・ビット配列TXMEMCYC[28:
0]のビットを設定するときにBCBITMAPレジス
タ内の値を用いる。
【0075】図13は、レジスタ506に属するいくつ
かのレジスタの図解である。CT_SNFレジスタ50
7は、プログラミング可能な送信元ポート・モードのビ
ット配列SRC CT_SNF[28:0]を含み、各
ビットはそれぞれポートPORT28からPORT0の
1つに対応しており、対応するポートが送信元ポートで
ある場合にCTとSnF間における動作モードを指定す
るためCPU 230によってプログラミングされる。
特に、特定のポートにSRC CT_SNFビットがセ
ットされている場合、そのポートが送信元ポートとして
機能するときの動作モードとしてはCTモードが望まし
い。SRC CT_SNFビットがクリアされている場
合は、そのポートが送信元ポートとして機能するときの
動作モードとしてはSnFモードが望ましい。同様に、
CT_SNFレジスタ507は、プログラミング可能な
受信先ポート・モードのビット配列DEST_CT_S
NF[28:0]を含み、各ビットはそれぞれポートP
ORT28からPORT0の1つに対応しており、対応
するポートがユニキャスト用の受信先ポートである場合
にCTとSnF間における動作モードを指定するためC
PU230によってプログラミングされる。CTモード
は、送信元と受信先の両方のポートがCT_SNFレジ
スタ507でCTモードに指定されている場合にのみ望
ましい。
【0076】RECEIVE LIST 509は、対
応する受信優先権カウントを格納する複数のレジスタを
含む。優先権カウントはRXPORTBUFx[4:
0]カウントと呼ばれ、“x”はポート番号である。最
高32のポートに優先権を割り当てるために、示した実
施例においては各RXPORTBUFx[4:0]カウ
ントは5ビットである。RECEIVE LIST 5
09は対応するポート・マスクビット配列RXPRTM
SK[28:0]を含み、それぞれのRXPRTMSK
ビットは初めにロジック0、すなわち優先権がまだ割り
当てられていないとき、そしてそれぞれのPKT_AV
AILm*信号がその後アサートされたときにRXポー
リング・ステート・マシン502によってセットされ
る。そのとき、RXポーリング状態マシン502は対応
するRXPORTBUFxレジスタ内に優先権番号を割
り当てる。割り当てられた優先権番号は、そのポートが
サービスされるまで有効となっている。RXPRTMS
Kがセットされている間、RXポーリング状態マシン5
02は対応するPKT_AVAILm*信号のその後の
アサートをマスクして、それ以上の要求を無視する。H
SBコントローラ505は、新しいパケットの最初の転
送以外、それぞれのポートからそのパケットを転送する
すべてのリード・サイクル期間中、RXPRTMSKビ
ットをクリアする。HASH REQ LOGIC 5
32は、もしそのパケットがSnFの動作モードで転送
すべきものであれば、最初のリード・サイクル転送期間
中、RXPRTMSKビットをクリアする。HSBコン
トローラ505は、もしそのパケットがCTの動作モー
ドで転送されるものであれば、受信先ポートへの最初の
ライト・サイクル転送期間中、RXPRTMSKビット
をクリアする。
【0077】RECEIVE LIST 509はイン
キュー・ビットの配列RXINQUE[28:0]を含
み、各ビットは対応するRXPRTMSKビットがセッ
トされたときにセットされる。それぞれのRXINQU
Eビットは優先権の値が有効であるか否か、そしてもし
有効であればその対応するポートがアービトレーション
・ロジック504による調停に委ねられるべきものであ
るかどうかを表示する。RXINQUEビットは、それ
ぞれのポートが新しいパケットあるいはSnFパケット
の続きを転送するための次のポートとして指定されるべ
くMAINアービタ512に付託されたとき、アービト
レーション・ロジック504内のアービタによってクリ
アされる。
【0078】RECEIVE LIST 509は、そ
れぞれのポートがメモリ212内にデータを受信すべき
かどうかを示すメモリ・ビット配列RXMEMCYC
[28:0]を含む。これは、SnFモード、暫定CT
モード、および暫定ミッドパケットCTモードでの動作
時に行われる指示である。HASH REQ LOGI
C 532は、SnFモードまたは暫定CTモードが決
定したときに対応するRXMEMCYCビットをセット
する。MAINアービタ512は、ミッドパケット暫定
CTモードのパケットについて、もし受信先ポートが通
常のCTモードの動作中に使用可能なバッファのスペー
スを表示しなければRXMEMCYCビットをセットす
る。HSBコントローラ505は、それぞれのポートに
ついて、転送データの最終リード・サイクルでRXME
MCYCビットをクリアする。
【0079】RECEIVE LIST 509は、そ
れぞれのポートが通常のCT動作モードでデータ・パケ
ットを転送しているかどうかを表示するアクティブのC
Tのビット配列RXACTCYC[28:0]を含む。
HASH REQ LOGIC 532は、CTモード
のパケットについて対応するRXACTCYCビットを
セットする。HSBコントローラ505は、対応するポ
ートに関し、最終パケット・データのリード・サイクル
でRXACTCYCビットをクリアする。MAINアー
ビタ512は、ビットがCTモードを指示すべくセット
されていて、MAINアービタ512がそのパケットを
ミッドパケット暫定CTモードのパケットに変更する場
合にRXACTCYCビットをクリアする。
【0080】TRANSMIT LIST 510は、
対応する送信優先権カウントを格納する複数のレジスタ
を含む。優先権カウントはTXPORTBUFx[4:
0]カウントと呼ばれ、“x”はポート番号である。最
高32のポートに優先権を割り当てるために、示した実
施例においては各TXPORTBUFx[4:0]カウ
ントは5ビットである。TRANSMIT LIST
510は対応するポート・マスクビット配列TXPRT
MSK[28:0]を含み、それぞれのTXPRTMS
Kビットは初めにロジック0、すなわち優先権がまだ割
り当てられていないとき、そしてそれぞれのBUF_A
VAILm*信号がその後アサートされたときにTXポ
ーリング状態マシン503によってセットされる。その
とき、TXポーリング状態マシン503は対応するTX
PORTBUFxレジスタ内に優先権番号を割り当て
る。割り当てられた優先権番号は、そのポートがサービ
スされるまで有効となっている。TXPRTMSKがセ
ットされている間、TXポーリング状態マシン503は
対応するBUF_AVAILm*信号のその後のアサー
トをマスクして、それ以上の要求を無視する。HSBコ
ントローラ505は、新しいパケットの最初の転送以
外、それぞれのポートからそのパケットを転送するすべ
てのリード・サイクル期間中、TXPRTMSKビット
をクリアする。HSBコントローラ505は、受信先ポ
ートに対するパケット・データ転送のすべてのライト・
サイクル期間中、TXPRTMSKビットをクリアす
る。
【0081】TRANSMIT LIST 510は待
ちインキュー・ビットの配列TXINQUE[28:
0]を含み、各ビットは対応するTXPRTMSKビッ
トがセットされたときにセットされる。それぞれのTX
INQUEビットは優先権の値が有効であるか否か、そ
してもし有効であればその対応するポートがアービトレ
ーション・ロジック504による調停に委ねられるべき
ものであるかどうかを表示する。TXINQUEビット
は、それぞれのポートが新しいパケット、あるいはSn
Fパケットの続きを転送するための次のポートとして指
定されるべくMAINアービタ512に付託されたと
き、アービトレーション・ロジック504内のアービタ
によってクリアされる。
【0082】TRANSMIT LIST 510は、
それぞれのポートがメモリ212から受け取ったデータ
を送信すべきかどうかを示すメモリ・ビット配列TXM
EMCYC[28:0]を含む。これは、SnFモー
ド、暫定CTモード、および暫定ミッドパケットCTモ
ードでの動作時に行われる指示である。FIFO制御ブ
ロック529は、HCB 402からデータを受け取っ
た後MCB404によるRX_PKT_COMPLET
E*信号のアサートに応答して、1つまたは複数のTX
MEMCYCビットをセットする。ユニキャストのパケ
ットについては、TXMEMCYCビットが1つのみセ
ットされる。BCパケットについては、FIFO制御ブ
ロック529がそのBCBITMAPレジスタによって
セットすべきTXMEMCYCビットを決定する。Sn
Fモードのパケットに関しては、パケット全体がメモリ
212内への格納のためにMCB404に転送された後
でTXMEMCYCビットがセットされる。CTモード
のパケットについては、ミッドパケット暫定モードCT
パケットを含め、MCB404へのデータの最初のデー
タ転送中にTXMEMCYCビットがセットされる。H
SBコントローラ505は、それぞれのポートへの転送
データの最終ライト・サイクルでTXMEMCYCビッ
トをクリアする。これはMCB 404が、メモリ21
2内にはそのポートに対するデータが無くなった旨を示
すTX_EOBC*信号をアサートした場合も同じで、
TXMEMCYCビットがクリアされる。
【0083】TRANSMIT LIST 510は、
RX BUF 520、522の1つにCTの動作モー
ドでそれぞれの受信先ポートへ直接送信すべきデータが
あるかどうかを表示するCTのビット配列TXCTCY
C[28:0]を含む。HASH REQ LOGIC
532は、最初のパケット・データの転送で対応する
TXCTCYCビットをセットする。HSBコントロー
ラ505は、対応する受信先のポートに対するデータ転
送の最終のライト・サイクルでTXCTCYCビットを
クリアする。
【0084】TRANSMIT LIST 510は、
それぞれのポートがCT動作モードでデータ・パケット
を転送しているかどうかを表すアクティブのCTのビッ
ト配列TXACTCYC[28:0]を含む。HASH
REQ LOGIC 532は、そのパケットがCT
モードで転送すべきものであると判断すれば、対応する
TXACTCYCビットをセットする。FIFO制御ブ
ロック529は、パケットがCTモードからミッドパケ
ット暫定CTモードに変更されるとき、メモリ212へ
の格納のためのMCB 404への最初のデータ転送の
間にTXACTCYCビットをクリアする。HSBコン
トローラ505もパケットの最終転送でTXCTCYC
ビットをクリアする。
【0085】WEIGHT FACTORS508は、
ポートPORT0〜PORT28のそれぞれのについて
ポート・ウエイト・ファクタの配列PORTWTx
[4:0]を含む。“x”は特定のポート番号を表す。
PORTWTウエイト・ファクタは一意であって、ポー
トの優先権をユーザがプログラミングできるように、ユ
ーザによって予めプログラミングされていることが望ま
しい。受信および送信の動作にそれぞれの異なったウエ
イト・ファクタを定義することができるが、示した実施
例においては、受信と送信の両方のケースについて、各
ポートに同じウエイト・ファクタを割り当てている。
【0086】図14は、RX受信ポーリング状態マシン
502の受信ポーリング動作を表す状態図である。RX
受信ポーリング状態マシン502の主たる機能は、PK
T_AVAILm*信号のモニタ、優先権カウントRX
PORTBUFxの割り当て、およびRECEIVE
LIST 509内のRXPRTMSKビットの設定で
ある。状態間の移り変わりは、CLK信号の遷移もしく
はサイクルおよびSTROBE*信号の状態に基づいて
いる。最初に、パワーアップとコンフィギュレーション
で受信優先権カウント番号RPCOUNTはゼロに設定
され、RXポーリング状態マシン502は初期アイドリ
ング状態550に入る。また、PKT_AVAILm*
信号に対応するRXINCCNTBY[7:0]論理ビ
ットがクリアされる。RXポーリング状態マシン502
は、STROBE*信号がアサートされない間、すなわ
ちSTROBE*信号がハイ、つまりロジック1のとき
は状態550に留まっている。STROBE*信号がロ
ウにアサートされたとき、動作は1CLK待ち状態(R
xPollWait)552に移る。
【0087】サンプリングで検知されたSTROBE*
信号のアサートに応答して、QCデバイス202、TP
I 220、およびPCB 406は、ひとつのCLK
サイクル後にそれぞれPKT_AVAILm*信号、言
い換えればPKT_AVAIL[7:0]*信号の対応
する1つをアサートする。このようにして、動作はひと
つのCLKサイクル後に状態554に進み、それぞれの
PKT_AVAIL[7:0]*信号のポーリングを開
始する。動作は状態554から状態556に入り、それ
から状態558さらに状態560へとCLK信号の経時
的なサイクルに追従して移る。動作は状態560から状
態554へ戻り、STROBE*信号がアサートされて
いる間はこのループを継続する。しかし、STROBE
*信号は周期的であり、1CLKサイクル間抑止され、
そして次の3CLKサイクル間再アサートされるのが望
ましい。こうして、もしSTROBE*信号がステップ
560でディアサートされると動作は状態550に戻
る。状態554、556、558、および560のそれ
ぞれにおいて、初期アービトレーション・カウント論理
演算が実行すべき論理演算が残存するか否かを判断する
RPCOUNT番号との比較におけるRXNEWCNT
およびRXACTCNTの増分に基づいて実行される。
【0088】もしステップ554において初期アービト
レーション・カウント論理演算が真であれば、それぞれ
のQCデバイス202およびTPI 220の最初のポ
ート、およびPCB 406について1〜9と呼称する
9回の論理演算が実行される。ここで、最初の8動作は
PORT0、PORT4、PORT8、PORT12、
PORT16、PORT20、PORT24、およびP
ORT28にそれぞれ対応する。8つのポート論理演算
1〜8の各々について、PKT_AVAILm*信号の
対応する1つが対応するRXPRTMSKビットと比較
されて要求を受容するかどうかが決定される。RXPR
TMSKビットが予めセットされていない場合にあり得
る事象であるが、もし1つのポートについて要求が受け
付けられると、そのポートにRXPORTBUFx優先
権番号が割り当てられる。また、対応するRXPRTM
SKビットがロジック1にセットされてポートからのそ
れ以上の要求をマスクし、そして対応するRXINCC
NTBYビットがロジック1にセットされる。9番目の
論理演算はRPCOUNTの増分に実行される。
【0089】PORT0について、もしPKT_AVA
IL[0]*信号がアサートされないか、あるいはもし
RXPRTMSK[0]がロジック1に等しいと、優先
権が既に設定されているのであって、それはPORT0
がサービスされるまで変更されることはない。しかし、
もしPKT_AVAIL[0]*信号がロウにアサート
され、かつRXPRTMSK[0]がロジック0であれ
ば、対応する優先権カウントRXPORTBUF0はW
TPRIORITYフラグがウエイト・ファクタに従っ
て優先権を表示している場合、対応するウエイト・ファ
クタRXPORTWT0に等しく設定される。しかし、
もしWTPRIORITYフラグが偽であれば、RXP
ORTBUF0はRPCOUNTに等しくセットされ
る。そして、RXPRTMSK[0]およびRXINC
CNTBYビットが両方ともロジック1にセットされ
る。RXPRTMSK[0]マスクをセットすれば、P
ORT0のさらなるポーリング要求を受け付けることに
なる。RXINCCNTBYビットはPKT_AVAI
L[0]*信号に対応しており、状態554における残
りの論理演算に用いられてPORT0に優先権の値が設
定されたことを表示する。
【0090】PORT4に対応する2番目の論理演算に
おいて、もしPKT_AVAIL[1]*信号がアサー
トされないか、あるいはもしRXPRTMSK[4]が
ロジック1に等しいと、優先権が既に設定されているの
であって、それはPORT4がサービスされるまで変更
されることはない。しかし、もしPKT_AVAIL
[1]*信号がロウにアサートされ、かつRXPRTM
SK[4]がロジック0であれば、対応する優先権カウ
ントRXPORTBUF4はWTPRIORITYフラ
グがウエイト・ファクタに従って優先権を表示している
場合、対応するウエイト・ファクタRXPORTWT4
に等しく設定される。しかし、もしWTPRIORIT
Yフラグがが偽であれば、優先権カウントRXPORT
BUF4はRPCOUNTプラスRXINCCNTBY
[0]くセットされる。このようにして、もしWTPR
IORITYが偽であれば、RXPORTBUF4には
PORT0に優先権の値が設定さされていない場合に優
先権番号としてRPCOUNTが割り当てられ、POR
T0に優先権番号が設定されている場合はRPCOUN
T+1の優先権番号が与えられる。これによって、PO
RT0とPORT4に同じ優先権番号が割り当てられな
いことが保証される。RXPRTMSK[4]はそれか
らロジック1にセットされ、さらなるポーリング要求は
無視される。このようにして、各ポートに割り当てられ
る優先権番号は、そのポートに予め決められたウエイト
・ファクタであるか、もしくは優先権番号はRPCOU
NTに加えてより小さいポート番号と同時に割り当てら
れた優先権番号を持っているポートの数である。
【0091】次の6つの論理演算は2番目の論理演算と
同様である。PCB 406に対応する8番目の論理演
算において、もしPKT_AVAIL[7]*信号がロ
ウにアサートされていないか、あるいはもしRXPRT
MSK[28]がロジック1に等しいと優先権が既に設
定されているのであって、それはPCB 406がサー
ビスされるまで変更されることはない。しかし、もしP
KT_AVAIL[1]*信号がロウにアサートされて
いて、かつRXPRTMSK[28]がロジック0であ
れば、対応するPCB 406の優先権カウントRXP
ORTBUF28はWTPRIORITYフラグがウエ
イト・ファクタに従って優先権を表示している場合、対
応するウエイト・ファクタRXPORTWT28に等し
く設定される。しかし、もしWTPRIORITYフラ
グがが偽であれば、優先権カウントRXPORTBUF
28はRPCOUNTプラスRXINCCNTBY
[6:0]の「ビット合計」に等しくセットされる。R
XINCCNTBY[6:0]の「ビット合計」は、そ
の前に7回のポート論理演算において割り当てられた優
先権番号の値の数である。従って、PCB 406に与
えられる優先権番号は予め決められているウエイト・フ
ァクタか、もしくはその優先権番号はRPCOUNTに
加えてより小さいポート番号と同時に割り当てられた優
先権番号を持っているポートの数である。9番目の論理
演算は状態554で実行され、RPCOUNTを状態5
54において優先権が割り当てられたポートの数に等し
いRXINCCNTBY[7:0]のビット合計だけ増
分する。この演算により、状態556で実行される1組
の論理演算のためにRPCOUNTが増分されることが
保証される。
【0092】例えば、PKT_AVAIL[7]*信号
の最初の多重化されたビットに関連するすべてのポー
ト、すなわちPORT0、PORT4、PORT8、P
ORT12、PORT16、PORT20、PORT2
4、およびPORT28が状態554で同時に要求を出
し、RPCOUNTが最初から0のままで、前に設定さ
れていて対応するようなRXPRTMSKビットが存在
せず、そしてWTPRIORITYが偽であれば、状態
554において対応する優先権カウントRXPORTB
UFx(x=0、4、8、12、16、20、24、お
よび28)に対し、それぞれ優先権番号0、1、2、
3、4、5、6、および7が割り当てられる。それから
RPCOUNTが8に等しくセットされる。別の例とし
て、サービスを要求しているポートがPORT4、PO
RT12、およびPORT20のみの場合、もしWTP
RIORITYが偽でRPCOUNTが3に設定されて
いれば、優先権カウントRXPORTBUFx(x=
4、12、20)にそれぞれ0、1、および2の優先権
番号が割り当てられる。ビット合計の演算によって、複
数のポートが同時にサービスを要求しているとき、各ポ
ートに一意の番号を与えられることが保証される。この
ようにして、優先権番号は先着順、すなわちFCFS
(First−Come, First−Serve
d)の優先権スキームに従って割り当てられるが、同時
割り当ての処理には特定の順序が予め決められる。
【0093】状態556、558、および560におけ
る論理演算は、もし初期アービトレーション・カウント
論理演算が真で、それぞれのQCデバイス202および
TPI 220の2番目のポート、つまり ポートPO
RT1、PORT5、PORT9、PORT13、PO
RT17、 PORT21、およびPORT25に関連
するPKT_AVAIL[6:0]*信号に基づいた8
つの論理演算が実行され、そして状態554の8番目の
論理演算がCPU230へのポートPORT28につい
て繰り返されれば、状態554での論理演算と同様であ
る。状態558において、それぞれのQCデバイス20
2およびTPI220の3番目のポート、つまり ポー
トPORT2、PORT6、PORT10、PORT1
4、PORT18、 PORT22、およびPORT2
6に関連する7つの論理演算がPKT_AVAIL
[6:0]*信号に基づいて実行され、状態554の8
番目の論理演算がCPU 230へのポートPORT2
8について繰り返される。状態560において、それぞ
れのQCデバイス202およびTPI220の4番目の
ポート、つまり ポートPORT3、PORT7、PO
RT11、PORT15、PORT19、 PORT2
3、およびPORT27に関連する7つの論理演算がP
KT_AVAIL[6:0]*信号に基づいて実行さ
れ、状態554の8番目の論理演算がCPU230への
ポートPORT28について繰り返される。状態55
6、558、および560のそれぞれにおいて、最後の
論理演算が実行されて前述と同様にRPCOUNTがR
XINCCNTBYビットのビット合計だけ増分され
る。
【0094】図19は、TX送信ポーリング状態マシン
503の送信ポーリング動作を表す状態図である。TX
送信ポーリング状態マシン503の動作はRX受信ポー
リング状態マシン502の動作と同様で、状態550、
552、554、556、558、および560にそれ
ぞれ相似の状態561、562、564、566、55
8、および570を含む。しかし、TPCOUNTがR
PCOUNTに代わり、初期アービトレーション・カウ
ント論理演算は実行すべき論理演算が残存するかどうか
を判断するTPCOUNT番号との比較におけるTXN
EWCNTおよびTXACTCNTの増分に基づいて実
行される。BUF_AVAILm*信号がPKT_AV
AILm*信号に代わり、TXPRTMSKビットがR
XPRTMSKビットに代わる。また各ポートの等式で
は、TXPRTMSKビットとTXMEMCYC、TX
CTACTCYC、およびTXCTCYCビット配列の
対応するビットに基づいた論理項との論理積が求められ
る。特に、EPSM 210またはメモリ212内に受
信先のポートが送信すべきデータがある場合にのみ当該
ポートに優先権が割り当てられるよう、TXMEMCY
C、TXCTACTCYC、およびTXCTCYCビッ
ト配列の論理和が求められる。さらに、TXPORTB
UFx優先権カウントがRXPORTBUFx優先権カ
ウントに代わり、TXPORTWTウエイト・ファクタ
がRXPORTWTウエイト・ファクタに代わり、そし
てTXINCCNTBYビットがRXINCCNTBY
ビットに代わる。このようにして、各ポートおよびPC
B 406の表示はSTROBE*信号に応答してBU
F_AVAIL*信号のそれぞれ1つによるものとな
り、TXポーリング状態マシン503はTPCOUNT
を用い、FCFSあるいはウエイト・ファクタに基づい
て優先権番号を割り当て、それに応じて優先権を設定す
る。
【0095】要求しているポートの各々に対する優先権
の割り当て、および対応するポーリング・マスクビット
の設定に備えてポーリング・ロジック501が周期的あ
るいは連続的にSTROBE*信号をトグルし、ポート
104、110、およびPCB 406のそれぞれのP
KT_AVAILm*およびBUF_AVAILm*信
号を監視する機能は高い評価に値する。割り当てられる
優先権は、もしWTPRIORITYが真であれば予め
プログラミングされているウエイト・ファクタに基づく
か、あるいはもしWTPRIORITYが偽であればF
CFSに基づく。与えられた優先権は、そのポートがサ
ービスされるまでそのままに留まっている。後述するよ
うに、最終的にそのポートはサービスを受け、そのマス
クビットはクリアされる。
【0096】アービタ513〜516は、いくつかのア
ービトレーション・スキームの1つに基づいてポート1
04、110、およびPCB 406間における選択を
行う。ここで、特定のアービトレーション・スキームを
ユーザがプログラミングすることも可能である。最初は
ラウンドロビン法であって、これによりポートがPOR
T1、PORT2、...、PORT28といったよう
な任意の順序でチェックされるか、あるいはその順序は
PORTWTxレジスタ内に予めプログラミングされて
いるWEIGHT FACTORS 508で選択され
る。示した実施例においては、ラウンドロビン法による
割り当てにWEIGHT FACTORSが用いられて
おり、それぞれのRXPORTBUFxおよびTXPO
RTBUFxカウントにプログラミングされている。R
X NWアービタ513はRXNEWCNT優先権番号
を用いてこれを増分し、RX ACTアービタ514は
RXACTCNT優先権番号を用いてこれを増分し、T
X NWアービタ515はTXNEWCNT優先権番号
を用いてこれを増分し、TX CTアービタ516はT
XCTCNT優先権番号を用いてこれを増分する。ラウ
ンドロビン法では、RXアービタ513および514
は、それぞれRXINQUE[]の値を調べてサービス
を要求しているアクティブな受信ポートの存在如何を確
認し、それからそのそれぞれの優先権番号(RXNEW
CNT、RXACTCNT)をアクティブなポートのR
XPORTBUFxカウント内の値と比較して次にサー
ビスされるべきポートの有無を確認する。また、TXア
ービタ515、516は、それぞれTXINQUE[]
の値を調べてサービスを要求しているアクティブな送信
ポートの存在如何を確認し、それからそのそれぞれの優
先権番号(TXNEWCNT、TXCTCNT)をアク
ティブなポートのTXPORTBUFxカウント内のカ
ウント値と比較して次にサービスされるべきポートの有
無を確認する。WEIGHT FACTORSは特定の
順序を決めるので、ポートはラウンドロビンの方式で序
列される。
【0097】2番目のアービトレーション・スキームは
FCFSであり、その場合WTPRIORITYは偽で
あって、ポートはRXPORTBUFxおよびTXPO
RTBUFx優先権番号で表されているサービスを要求
した順序でサービスを受ける。FCFSにおける動作
は、前述したようにRXPORTBUFxおよびTXP
ORTBUFxカウントがRPCOUNTおよびTPC
OUNTの値に従ってプログラミングされる点を除き、
ラウンドロビンの動作と同様である。この場合、RXア
ービタ513および514は、それぞれRXINQUE
[]の値を調べてサービスを要求しているアクティブな
受信ポートの存在如何を確認し、それからそのそれぞれ
の優先権番号(RXNEWCNT、RXACTCNT)
をアクティブなポートのRXPORTBUFxカウント
内の値と比較して次にサービスされるべきポートの有無
を確認する。また、TXアービタ515、516は、そ
れぞれTXINQUE[]の値を調べてサービスを要求
しているアクティブな送信ポートの存在如何を確認し、
それからそのそれぞれの優先権番号(TXNEWCN
T、TXCTCNT)をアクティブなポートのTXPO
RTBUFxカウント内のカウント値と比較して次にサ
ービスされるべきポートの有無を確認する。RPCOU
NTおよびTPCOUNTは特定の順序を決めるので、
ポートはFCFSの方式で序列される。
【0098】もう1つのスキームはウエイト優先権スキ
ームであり、その場合WTPRIORITYは真であっ
て、RXPORTWTxおよびTXPORTWTx番号
がRXPORTBUFxおよびTXPORTBUFxレ
ジスタの対応する1つにコピーされ、優先権の決定に使
用される。しかし、RXアービタ513、514はRX
HIGH PRIORITY番号から優先権を決め、
TXアービタ515、516はTX HIGH PRI
ORITY番号から優先権を決定する。RXHIGH
PRIORITY番号は、アクティブな受信ポートのR
XPORTBUFxカウント内における最高の優先権番
号(すなわち1番小さい数)を識別することによって決
定される。ここで、アクティブな受信ポートはRXIN
QUEの値で判断される。同様に、TX HIGH P
RIORITY番号は、アクティブな受信ポートのTX
PORTBUFxカウント内における最高の優先権番号
(すなわち1番小さい数)を識別することによって決定
される。ここで、アクティブな受信ポートはTXINQ
UEの値で判断される。このようにして、ウエイト・フ
ァクタが最高のアクティブな(すなわちサービスを要求
している)ポートが毎回選択されて加重優先権割り当て
法の機能が遂行される。
【0099】RX NWアービタ513は、ポートPO
RT0〜PORT28で受信されたすべての新しいパケ
ット・ヘッダのデータおよびSnFモードのパケット・
データの続きを処理し、そのデータはRX BUF 5
20、522のいずれか1つに転送される。RX NW
アービタ513は、RXNEWCNT番号を更新し、R
ECEIVE LIST 509をチェックして受信決
定基準に合致しているポートはPORT0〜PORT2
8のいずれであるかを判断する。RX NWアービタ5
13の受信決定基準に適合するポートは、そのRXIN
QUEビットがアサートされていて、そのRXACTC
YCビットがアサートされていないポートである。RX
NWアービタ513の受信決定基準として、さらにR
XINQUEとRXMEMCYCビットの両方がアサー
トされているポートも含まれる。RX NWアービタ5
13は、その受信決定基準を満たしている複数のポート
間で、選択した前述のアービトレーション・スキームに
従って調停を行う。1つのポートを選択してサイクルを
定義した後、RX NWアービタ513はMAINアー
ビタ512に対してリード・サイクルを1回実行すべく
要求する。RX NWアービタ513がMAINアービ
タ512によって次に選択されたとき、RXNWアービ
タ513はサービスを受けるべく選択されたポートのR
XINQUEビットをクリアする。このプロセスをRX
NWアービタ513は連続的に繰り返す。
【0100】TX CTアービタ516は、RX BU
F 520、522の中のデータを受信先のポートへ通
常のCT動作モードで転送する。TX CTアービタ5
16は、TXNEWCNT番号を更新し、TRANSM
IT LIST 510をチェックして送信決定基準に
合致しているポートはPORT0〜PORT28のいず
れであるかを判断する。TX NWアービタ516の送
信決定基準に適合するポートは、それぞれのTXINQ
UEおよびTXCTCYCビットがアサートされている
ポートである。TX CTアービタ516は、その送信
決定基準を満たしている複数のポート間で、選択した前
述のアービトレーション・スキームに従って調停を行
う。1つのポートを選択してサイクルを定義した後、T
X CTアービタ516は選択したRX BUF 52
0、または522からデータを選ばれた受信先ポートへ
送信すべく、MAINアービタ512に対してライト・
サイクルを1回実行するよう要求する。TX CTアー
ビタ516がMAINアービタ512によって次に選択
されたとき、TX CTアービタ516はサービスを受
けるべく選択されたポートのTXINQUEビットをク
リアする。このプロセスをTX CTアービタ516は
連続的に繰り返す。
【0101】RX ACTアービタ514は、(RX
NWアービタ513が処理する)新しいパケットの1回
目のリード・サイクルを除き、後続のパケット・データ
を通常のCT動作モードで動作している送信元のポート
からCT BUF 528へ転送する。RX ACTア
ービタ514は、RXACTCNT番号を更新し、RE
CEIVE LIST 509をチェックしてその受信
決定基準に合致しているポートはPORT0〜PORT
28のいずれであるかを判断する。RX ACTアービ
タ514の受信決定基準に適合するポートは、そのRX
INQUEおよびRXACTCYCビットがアサートさ
れており、そのRXMEMCYCビットがアサートされ
ていないポートである。RX ACTアービタ514
は、その受信決定基準を満たしている複数のポート間
で、選択した前述のアービトレーション・スキームに従
って調停を行う。1つのポートを選択してサイクルを定
義した後、RX ACTアービタ514は選択された送
信元ポートからCT BUF528へデータを転送すべ
く、MAINアービタ512に対してリード・サイクル
を1回実行するよう要求する。RX ACTアービタ5
14がMAINアービタ512によって次に選択された
とき、RX ACTアービタ514はサービスを受ける
べく選択されたポートのRXINQUEビットをクリア
する。このプロセスをRX ACTアービタ514は連
続的に繰り返す。
【0102】MAINアービタ512は、CT BUF
528へのCTモードの各リード・サイクルに続い
て、CT BUF 528内のデータをHASH RE
Q LOGIC 532に指示される受信先ポートへ転
送するためのライト・サイクルを1回実行する。MAI
Nアービタ512は、RX ACTアービタ514にC
TデータをCT BUF 528へ転送させる前に受信
先のポートが使用中かどうかをチェックする。MAIN
アービタ512は、もし受信先ポートが使用中であるこ
とを確認すれば、それぞれのRXMEMCYCビットを
セットし、送信元ポートのそれぞれのRXACTCYC
ビットをクリアし、送信元と受信先のポートの動作モー
ドをミッドパケット暫定CTモードに変更する。
【0103】TX NWアービタ515は、TX BU
F 524および526のいずれかから、データをHS
B 206へSnFの動作モードで転送する。TX N
Wアービタ515は、TXNEWCNT番号を更新し、
TRANSMIT LIST510をチェックしてその
送信決定基準に合致しているポートはPORT0〜PO
RT28のいずれであるかを判断する。TX NWアー
ビタ515の送信決定基準に適合するポートは、それぞ
れのTXINQUEおよびTXMEMCYCビットがア
サートされており、それぞれのTXACTCTCYCビ
ットがアサートされていないポートである。TX NW
アービタ515は、その送信決定基準を満たしている複
数のポート間で、選択したアービトレーション・スキー
ムに従って調停を行う。1つのポートを選択して、TX
BUF 524および526のいずれかから選択され
た受信先ポートへのライト・サイクルを定義した後、T
X NWアービタ515はMAINアービタ512に対
してライト・サイクルを実行するよう要求する。TX
NWアービタ515がMAINアービタ512によって
次に選択されたとき、TX NWアービタ515はサー
ビスを受けるべく選択されたポートのTXINQUEビ
ットをクリアする。このプロセスをTXNWアービタ5
15は連続的に繰り返す。
【0104】次に図24を参照する。EPSM 210
内のMCB 404の詳細ブロック図である。MCB構
成レジスタ448は図24に示されていないが以下に説
明されており、ここで解説する多数の機能ブロックによ
り、必要に応じて適切な理解が得られる。MCB 40
4は、バス420を介してMCBインタフェース414
に結合されているハッシュ・コントローラ602を含
む。ハッシュ・コントローラ602は、メモリ212か
ら取り出されたデータを格納するハッシュ・キャシュ・
テーブル603をオプションとして含む。ハッシュ・キ
ャシュ603を使用すれば、メモリ212から最近取り
出されたデータに対する速いアクセスが可能となり、最
近アクセスされた情報を取り出す場合に、もう一度メモ
リ・サイクルを実行する必要が無くなる。ハッシュ・コ
ントローラ602は、バス610を介して4入力アドレ
ス・マルチプレクサ(mux)630の1つの複線入力
に結合されたアドレス/長さ/状態、AD/LN/ST
(ADdress/LeNgth/STatus)出力
を含む。AD/LN/ST出力は、メモリ212のアド
レス、バースト・サイクルを実行すべきか否かを決定す
るトランザクションの長さ、およびリード/ライト(R
/W)信号、バイト・イネーブル、ページ・ヒット信
号、ロック信号といった種々の状態信号を定義する。D
RAM要求/許可/ストローブ/制御、DRAM RQ
/GT/STB/CTL(DRAM ReQuest/
GranT/STroBe/ConTroL)制御62
8は、DRAMメモリ・アービタ638およびハッシュ
・コントローラ602のDRAMRQ/GT/STB/
CTL入力に結合されている。mux 630の出力は
DRAMメモリ・コントローラ636のAD/LN/S
T入力に供給され、DRAMメモリ・コントローラ63
6はメモリ・バス214を介して、さらにメモリ212
に結合されている。ハッシュ・コントローラ602は、
DRAMメモリ・コントローラ636からデータ・バス
618を介してデータを受け取るためのデータ入力(D
IN)を持っている。
【0105】RX HCBインタフェース601は、M
DO[31:0]信号を含むバス420に結合されてお
り、4入力データ・マルチプレクサ(mux)632の
1番目の複線入力にバス620を介してデータを供給す
るためのデータ出力(DOUT)を含む。ここでmux
632は、その出力をDRAMコントローラ636の
MemDataOut入力に供給する。RX HCBイ
ンタフェース601は、DRAM RQ/GT/STB
/CTL信号628のストローブおよび制御信号を受け
取るためのSTB/CTL入力を含む。RXコントロー
ラ604はバス420に結合されており、マルチプレク
サ630の2番目の入力にバス612を介して結合され
ているAD/LN/ST出力を持っている。RXコント
ローラ604は、mux 632の2番目の入力にバス
622を介して結合されているデータ出力DOUT、バ
ス618に結合しているデータ入力DIN、静的RAM
(SRAM)650関連のSRAM RQ/GT/ST
B/CTL信号654を受け取るためのSRAM RQ
/GT/STB/CTL入力、およびDRAM RQ/
GT/STB/CTL信号628を受け取るためのDR
AM RQ/GT/STB/CTL入力を持っている。
【0106】TX HCBインタフェース605は、M
DI[31:0]信号を含むバス420に結合されてお
り、バス618に結合されているデータ入力DINとD
RAM RQ/GT/STB/CTL信号628のスト
ローブおよび制御信号を受け取るSTB/CTL入力を
持っている。TXコントローラ606はバス420に結
合されており、mux 630の3番目の入力にバス6
14を介して供給されるAD/LN/ST出力、mux
632の3番目の入力にバス624を介して結合され
ているデータ出力DOUT、バス618に結合されてい
るデータ入力DIN、SRAM RQ/GT/STB/
CTL信号654を受け取るためのSRAM RQ/G
T/STB/CTL入力、およびDRAM RQ/GT
/STB/CTL信号628を受け取るためのDRAM
RQ/GT/STB/CTL入力を持っている。PC
Bインタフェース424は、マルチプレクサ630の4
番目の入力にバス616を介して結合されているAD/
LN/ST出力、マルチプレクサ632の4番目の入力
にバス626を介して結合されているデータ出力DOU
T、バス618に結合されているデータ入力DIN、S
RAM RQ/GT/STB/CTL信号654を受け
取るためのSRAM RQ/GT/STB/CTL入
力、およびDRAM RQ/GT/STB/CTL信号
628を受け取るためのDRAM RQ/GT/STB
/CTL入力を持っている。
【0107】ハッシュ・コントローラ602、RXコン
トローラ604、TXコントローラ606、PCBイン
タフェース424、RX HCBインタフェース60
1、およびTX HCBインタフェース605は、それ
ぞれSTB信号を用いてデータ・フローを同期させる
が、STROBE*信号のアサートで、データがいつリ
ード・サイクルに有効であるか、あるいはデータがいつ
ライト・サイクルに取り出されるかを判断する。CTL
信号は、例えばデータ・サイクルの完了時を表示する信
号のような種々の制御信号である。
【0108】DRAMアービタ638はさらに、メモリ
制御信号(MEMCTL)でDRAMコントローラ63
6に結合し、マルチプレクサ制御信号(MUXCTL)
をマルチプレクサ 630、632の選択入力に供給す
る。MEMCTL信号は、一般に各メモリ・サイクルの
開始と終了を表示する。このように、ハッシュ・コント
ローラ602、RXコントローラ604、TXコントロ
ーラ606、およびPCBインタフェース424は、そ
れぞれの要求信号をアサートすることによって、メモリ
212に対してメモリ・サイクルを実行するためにDR
AMコントローラ636へのアクセスの調停を行う。D
RAMアービタ638は要求信号を受け取って、要求し
ているデバイス602、604、606、および424
の1つに対応する許可(GT)信号をアサートすること
により、そのデバイスに対してアクセスを許可する。い
ったんアクセスが許可されると、DRAMアービタ63
8はマルチプレクサ630および632へのMUXCT
L信号をアサートし、デバイス602、604、60
6、および424のうち選択された1つが必要に応じて
メモリ・サイクルを実行すべくDRAMコントローラ6
36に対するアクセスを可能とし、そしてMEMCTL
信号の1つがアサートされてDRAMコントローラ63
6に対しサイクルの開始を示す。DRAMコントローラ
636は、MEMCTL信号の1つをアサートまたは抑
止してメモリ・サイクルの完了を示す。
【0109】ハッシュ・コントローラ602は、HAS
H REQ LOGIC 532と交信してハッシュ手
順を実行し、HASH REQ LOGIC 532に
格納されている新しいパケット・ヘッダの処理方法を決
定する。ハッシュ・コントローラ602は、アサートさ
れたHASH_REQ*信号を検知し、HASH_DA
_SA[15:0]信号から送信元および受信先のメデ
ィア・アクセス制御(MAC)信号を取り出し、HAS
H_STATUS[1:0]を判定するために、そして
もし受信先のポート番号がメモリ212内に予め格納さ
れていれば、それをHASH_DSTPRT[4:0]
上に供給するためにハッシュ手順を実行する。RXコン
トローラ604およびRX HCBインタフェース60
1は、RX BUF 520、522からのデータを制
御し、メモリ212へ転送する。TXコントローラ60
6およびTX HCBインタフェース605は、主とし
てメモリ212からのデータを制御し、TX BUF
524、526へ転送する。PCBインタフェース42
4によって、CPU 230はメモリ212、およびS
RAM 650のメモリ内のデータにより直接的にアク
セスすることができる。
【0110】トローラ604およびRX HCBインタ
フェース601は、RX BUF520、522からの
データを制御し、メモリ212へ転送する。TXコント
ローラ606およびTX HCBインタフェース605
は、主としてメモリ212からのデータを制御し、TX
BUF 524、526へ転送する。PCBインタフ
ェース424によって、CPU 230はメモリ21
2、およびSRAM650のメモリ内のデータにより直
接的にアクセスすることができる。
【0111】SRAM 650はSRAMコントローラ
652に結合しており、SRAMコントローラ652は
さらにRXコントローラ604、TXコントローラ60
6、およびPCBインタフェース424にバス653を
介して結合している。SRAMアービタ651は、制御
信号SCTLでSRAMコントローラ652に結合して
おり、さらにPCBインタフェース424によるSRA
M 650へのアクセスを制御するためにSRAM R
Q/GT/STB/CTL信号654、およびDRAM
アービタ638によるDRAMコントローラ636への
アクセス制御と同様に、TXコントローラ606および
RXコントローラ604にバス653を介して結合して
いる。
【0112】MCB 404は、本明細書で後に詳述す
るように、パケット制御レジスタおよびその他のデータ
を格納するSRAM 650を含む。パケット制御レジ
スタは、ポートごとのRECEIVE SECTOR
CHAIN、ポートごとのTRANSMIT PACK
ET CHAIN、およびメモリ212の空きメモリ・
セクタのFREEPOOL CHAINへの1組のポイ
ンタを含む。パケット制御レジスタは、さらにネットワ
ーク102内におけるパケット・データの流れの制御を
可能とする制御情報やパラメータを含む。メモリ212
は、隣接した同一サイズの複数のセクタで編成されてい
るパケット・メモリ・セクションを含む。これらのセク
タは、初期にはアドレス・ポインタ、あるいは同様な手
段で相互にリンクされてをFREEPOOL CHAI
N形成している。ポートからパケット・データが受け取
られると、これらのセクタはFREEPOOL CHA
INから取り出され、そのポートのRECEIVE S
ECTOR CHAINに追加される。さらにそのパケ
ットは、それが送信時に送られるべき1つまたは複数の
受信先のポートの1つまたは複数のTRANSMIT
PACKET CHAINにリンクされる。バス653
によって、RXコントローラ604、TXコントローラ
606、およびCPUインタフェース436はメモリ2
12内のデータのパケット・チェーンへのポインタを含
んでいるパケット制御レジスタにアクセスすることがで
きる。
【0113】DRAMコントローラ636は、メモリ2
12内のデータを保持するためのメモリ・リフレッシュ
・ロジック660を含む。リフレッシュ・ロジック66
0は、メモリ・バス214に結合されているFPM D
RAM、EDO DRAM、あるいは同期DRAMのよ
うな各種のメモリのタイプに従って動作する順応性を備
えている。このようにして、CPU 230はリフレッ
シュの機能が不要となり、動作能率およびパフォーマン
スが向上する。MCB構成レジスタ448内にある10
ビットのメモリ・リフレッシュ・カウンタ(MRC)
は、リフレッシュ要求間のクロック・サイクルの数を定
義する。その期間は15.26μsに等しいかそれより
短いことが望ましい。既定値は208hであり、“h”
は16進数を示すが、これによって30 nsのCLK
サイクルでのリフレッシュ期間はおよそ15.60μs
となる。MRCカウンタはタイムアウトでDRAMアー
ビタ638への信号REFREQをアサートし、DRA
Mアービタ638はDRAMコントローラ636へのM
EMCTL信号の1つをアサートし、メモリ・リフレッ
シュ・ロジック660に対しリフレッシュ・サイクルを
実行するよう指示する。MCB構成レジスタ448は、
メモリ212のメモリのタイプ、速度、および構成を定
義するメモリ制御レジスタ(MCR)を含む。例えば、
MCRの2ビットはメモリのタイプがFPM、EDO、
および同期DRAMのいずれであるかを表す。別の1ビ
ットは、メモリの速度が50および60 nsのいずれ
であるかを示す。その他のビットは、選択したタイプの
DRAMの特定のモードを定義し、パリティ・エラーの
ような誤りも表示する。
【0114】次に図25を参照する。PCB 406の
詳細ブロック図である。CPUバス218がCPUイン
タフェース432の中のCPUインタフェース・ロジッ
ク700に結合しており、CPUインタフェース・ロジ
ック700は、さらにQC/CPUバス204とインタ
フェースするためにバス701を経由してQC/CPU
インタフェース702に結合している。CPUインタフ
ェース・ロジック700は、FIFO 430内の16
バイトの受信バッファRX BUF 706にデータを
供給し、これがMCBバス428上のデータをアサート
する。MCBバス428は、CPUインタフェース・ロ
ジック700にデータを供給すべく、これもまたFIF
O 430内にある16バイトの送信バッファTX B
UF 708にデータを入れる。MCBインタフェース
426はCPUインタフェース・ロジック700とMC
Bバス428との間のデータの流れを制御する。CPU
インタフェース・ロジック700は、バス信号703で
RX BUF 706、TX BUF 708、および
MCBインタフェース426と結合している。
【0115】CPUインタフェース・ロジック700
は、バス442を介してレジスタ・インタフェース44
0に結合されており、レジスタ・インタフェース440
によってEPSM 210内の他の構成レジスタにアク
セスが可能となる。CPUインタフェース・ロジック7
00は、割り込みレジスタ、構成レジスタ、パケット情
報レジスタ、メモリ関連のレジスタ、設定/状態レジス
タ、インタフェース/監視(モニタ)レジスタ、統計レ
ジスタ、モード・レジスタ、アービトレーション・レジ
スタなどのような、CPU 230の入出力(I/O)
空間を定義する。
【0116】CPU 230は、パワーアップとコンフ
ィギュレーションの間にPCBレジスタ704内の初期
値ないしは既定値をプログラミングする。例えば、CP
U230はPCBレジスタ704内のPORT SPE
ED REGISTERのプログラミングを行うが、こ
れは各ポートの速度を定義するビットマップである。示
した実施例では、10または100 MHzである。ま
た、PORT TYPE REGISTERも定義され
るが、これはQCとTLAN間のポートのタイプを定義
するビットマップである。普通、これらのレジスタは動
作中に変更されることはないが、必要に応じて再プログ
ラミングすることもできる。
【0117】PCBレジスタ704のその他のレジスタ
は動作中に使用される。例えば、PCBレジスタはIN
TERRUPT SOURCEレジスタおよびPOLL
ING SOURCEレジスタを含む。INTERRU
PT SOURCEレジスタは1組の割り込みビット、
MCB_INT、MEM_RDY、PKT_AVAI
L、BUF_AVAIL、ABORT_PKT、および
STAT_RDYを含む。PKT_AVAILおよびB
UF_AVAIL割り込みビットは、PCB_PKT_
AVAIL*およびPCB_BUF_AVAIL*信号
にそれぞれ対応する。少なくとも1つのCPU_INT
*信号がCPU 230に用意され、このCPU_IN
T*信号がアサートされたときCPU 230がINT
ERRUPT SOURCEレジスタを読み取って割り
込み元を特定する。MCB_INT割り込みビットは、
割り込みがMCB 404内で発生したことをCPU
230に知らせる。MEM_RDY割り込みビットは、
要求されたメモリ212のデータがFIFO 430内
に存在することをCPU 230に通知する。PKT_
AVAIL割り込みビットは、CPU 230が処理す
べきパケット・データが存在することをCPU 230
に通知する。BUF_AVAIL割り込みビットは、C
PU 230がパケット・データを送るために使用する
バッファ・スペースがあることをCPU 230に通知
する。ABORT_PKTは、ABORT_IN*信号
がアサートされたことをCPU 230に通知する。S
TAT_RDY割り込み信号は、要求されたQCデバイ
ス202からの統計情報がFIFO 430内に存在す
ることをCPU 230に通知する。POLLING
SOURCEレジスタは、割り込みがマスクされてポー
リング方式が適用されている場合の、各割り込みビット
のコピーを含む。
【0118】CPUインタフェース・ロジック700
は、FIFO 434内の64バイトの受信バッファR
X BUF 710にデータを供給し、これがHCBバ
ス438上のデータをアサートする。FIFO 434
内の送信バッファTX BUF712は、CPUインタ
フェース・ロジック700にデータを供給すべく、HC
Bバス438から受信データを受け取る。CPUインタ
フェース・ロジック700は、バス信号705でRX
BUF 710、TX BUF 712、およびQC/
HCBインタフェース436と結合されている。QC/
HCBインタフェース436は、CPUインタフェース
・ロジック700、RXおよびTX BUF 710、
712、およびHCBバス438と結合しており、HC
B 402とPCB 406との間のデータ転送を制御
する。
【0119】図26は、CPUインタフェース700の
詳細ブロック図である。CPU制御/状態信号218b
は制御ロジック713にアサートされる。制御ロジック
713は、CPUトラッカ状態マシン717およびオル
ターネット・メモリ・コントロール状態マシン718と
結合している。CPUバス218のアドレス/データ・
ポーション218aは多重化されたバスであり、PCB
406の他の部分からのデータがCPU 230への
CPUアドレス/データ・ポーション218a上でアサ
ートされるべく、バス・イネーブル・ロジック716に
供給される。CPU 230はアドレス復号/要求生成
ロジック714をアサートし、そのロジック714は複
数の要求信号をCPUトラッカ状態マシン717および
オルターネット・メモリ・コントロール状態マシン71
8を含むPCB 406の他の部分に供給する。1組の
CPU情報ラッチ715はCPU 230からアドレス
およびデータを受け取り、本明細書で後に詳述するよう
に、PCB 406の他の部分へのラッチされたアドレ
スおよびラッチされたデータをアサートする。CPUサ
イクルを監視し、制御するために、CPU制御信号がア
ドレス復号/要求生成ロジック714、CPUトラッカ
状態マシン717、およびオルターネット・メモリ・コ
ントロール状態マシン718間に供給される。
【0120】図27は、QC/HCBインタフェース・
ロジック702の詳細ブロック図である。QC/HCB
インタフェース・ロジック702は、CPU 230と
QCデバイス202との間で、例えばCPU 230の
32ビットとQCデバイス202の16ビット間のフォ
ーマット変換のような、一般に比較的トランスペアレン
トなインタフェースを実現するように動作する。REG
ISTER REQUEST信号がアドレス復号/要求
生成ロジック714からCPUトラッカ状態マシン71
7に供給され、CPUトラッカ状態マシン717は、1
6ビットと32ビット間のフォーマット変換のためにデ
ィスアセンブリ/アセンブリ状態マシン722に結合さ
れている。ディスアセンブリ/アセンブリ状態マシン7
22は、バス701を介してCPUインタフェース70
0と、およびQC/CPUバス204を介してQCデバ
イス202とそれぞれインタフェースするために、1組
のデータ、アドレス、制御信号ドライバ/レシーバ72
4に結合している。統計バッファ726は、QC/CP
Uバス204から統計データおよびその他の情報を受け
取り、そのデータをバス701を介してCPUインタフ
ェース700に供給する。STATISTICS RE
QUEST信号が、アドレス復号/要求生成ロジック7
14からディスアセンブリ/アセンブリ状態マシン72
2とQC/CPUバス状態マシン730に結合してい
る、スタティスティクス・リクェスト状態マシン728
に供給される。QC/CPUバス状態マシン730はさ
らに、ディスアセンブリ/アセンブリ状態マシン72お
よび1組のデータ、アドレス、制御信号ドライバ/レシ
ーバ724に結合している。このようにして、ポート1
04の統計およびその他の情報収集、さらにポート10
4の構成変更のために、CPU230はデータの流れや
HSB 206の動作を妨げることなくQCデバイス2
02に対して比較的完全で独立したアクセスができるよ
うになっている。
【0121】CPU230は、PCBレジスタ704内
のQC STATISTICS INFORMATIO
Nレジスタに書き込むことによってEPSM 210に
対しQCデバイス202から統計および状態情報を取り
出すよう要求する。CPU230は、QCデバイス20
2の1つに対応する番号、ポート番号、指定したポート
に関する開始レジスタの番号、および指定したポートに
ついて読み取るべきレジスタの数を供給して統計情報を
要求する。図27に示されるように、QCSTATIS
TICS INFORMATIONレジスタへの書き込
みによってQC STATISTICS REQUES
T信号がアサートされる。統計リクエスト状態マシン7
28は、1組のデータ、アドレス、制御信号ドライバ/
レシーバ724を経由してQC/CPバス204上で指
示された要求を行う。CPUインタフェース700は、
当該のCHIP SELECTm*信号を用いて1つか
複数の当該のQCデバイス202に対して必要なリード
・サイクルを実行し、その情報を統計バッファ726に
書き込む。
【0122】要求されたデータがすべて取り出されて統
計バッファ726に格納されると、CPUインタフェー
ス700はPCBレジスタ内のPOLLING SOU
RCEレジスタのSTAT_RDYビットを更新し、I
NTERRUPT SOURCEレジスタ内のSTAT
_RDY割り込みビットをセットする。EPSM210
はCPU230へのCPU_INT*信号をアサート
し、CPU230はこれに応答してINTERRUPT
SOURCEレジスタを読み取り、割り込み元を特定
する。もし割り込みがマスクされていれば、CPU23
0はポーリング・ルーチン中にPOLLING SOU
RCEレジスタのSTAT_RDYビットを検知する。
このようにして、CPU230は要求が割り込みか、割
り込みがマスクされていればポーリングのメカニズムに
よって完了したことを判断する。もしポーリング・メカ
ニズムを適用するのであれば、プログラミングによって
STAT_RDY割り込みを必要に応じてマスクするこ
とができる。CPU23は、応答方式により1つまたは
連続した複数のプロセッサ・サイクルで、統計バッファ
726から統計情報をすべて取り出す。CPUバス21
8上のプロセッサ・サイクルは標準どおりのプロセッサ
・バス・サイクルでよいが、大量データの転送にはバー
ストのサイクルが望ましい。
【0123】勿論いくつかの別の実施形態が企図され
る。第1の別の実施形態においては、CPU230がQ
Cデバイス202のいずれかに対応する番号を供給する
だけで、EPSM210が応答してQCデバイス202
のすべてのポートのすべてのレジスタ306のデータを
全部収集する。第2の代案実施例においては、CPU2
30がグローバルな統計情報の要求を出すだけで、すべ
てのQCデバイス202のすべてのレジスタ306の情
報が収集される。しかし、CPU230は一回につきポ
ート104の1つだけの情報を必要とする点に留意す
る。
【0124】CPU230が、EPSM 210に対す
るただ1回の要求でポート104のいずれに関する統計
情報をも、すべて取り出すことができることは高い評価
に値する。特に、要求を出す場合はQC STATIS
TICS INFORMATIONレジスタが1つのコ
マンドでCPU230によって書き込まれる。その後C
PU230は、QCデバイス202からの応答の待機に
拘束されることなく、自由に他のタスクを実行に移るこ
とができる。その代わりにEPSM 210がQC/C
PUバス204を介して個々の統計読み取り要求を実行
し、全部のデータを収集する。CPU230に対する通
知が割り込み信号、もしくはポーリング・メカニズムに
よって行われ、CPU230は要求したすべての情報を
取り出すことができる。その結果、CPU230のプロ
セッサ時間の使用効率が向上する。
【0125】図28は、CPUインタフェース700と
MCB 404間のインタフェースの詳細ブロック図で
ある。アドレス復号/要求生成ロジック714からのメ
モリ要求信号が、アドレス生成ロジック746およびF
IFO状態/割り込み生成ロジック742に結合してい
るFIFOアクセス状態マシン740に供給される。R
X BUF 706およびTX BUF 708を含む
FIFOブロック748が、アドレス生成ロジック74
6とFIFO状態/割り込み生成ロジック742に結合
している。アドレス生成ロジック746およびFIFO
状態/割り込み生成ロジック742は、バス703を介
してCPUインタフェース700と、およびMCBバス
428を介してMCB404とそれぞれインタフェース
するために、両方とも1組のデータ、アドレス、制御信
号ドライバ/レシーバ744に結合している。
【0126】図29は、CPUインタフェース700と
HCB402間のインタフェースの詳細ブロック図であ
る。アドレス復号/要求生成ロジック714からのパケ
ット読み出し要求信号が、TX BUF 712を含む
送信バッファ762に結合されている送信パケット状態
マシン760に供給される。アドレス復号/要求生成ロ
ジック714からのパケット書き込み要求信号が、RX
BUF 710を含む受信バッファ770に結合され
ている受信パケット状態マシン768に供給される。送
信バッファ762および受信バッファ770は、バス7
05を介してCPUインタフェース700と、およびH
CBバス438を介してHCB 402とそれぞれイン
タフェースするために、両方とも1組のデータ、アドレ
ス、制御信号ドライバ/レシーバ764に結合してい
る。
【0127】次に図30を参照する。TPI 220の
簡略ブロック図であり、これの全体を示している。TP
I220は、HSB206とPCIバス222との間に
介在してデータ転送を行い、TLAN 226とEPS
M 210との間でネットワーク・データの受け渡しを
行う。TPI220はHSB206上でスレーブとして
動作し、EPSM210のポーリングに応答し、そして
QCデバイス202と同じようにEPSM210とデー
タの受け渡しを行う。PCIバス222側では、TPI
220がPCIバス222を介して4つのTLAN22
6(PORT24、PORT25、PORT26、およ
びPORT27)のそれぞれとネットワーク・データの
受け渡しを行う。
【0128】TPI 220は、HSBコントローラ8
04、PCIバス・コントローラ802、およびメモリ
806を含む。PCIバス・コントローラ802は、P
CIバスの標準に従ってPCIバス222とインタフェ
ースし、TPI220とPCIバス222との間のデー
タ転送を簡便化する。PCIバス標準は、IntelA
rchitecture Labとその業界のパートナ
ー各社によって定義されているものである。HSBコン
トローラ804は、HSB206の定義済み動作に従っ
てHSB 206とインタフェースし、TPI220と
EPSM210との間のデータ転送を簡便化する。メモ
リ806は1個所に集中あるいは分散配置することがで
き、複数のデータ・バッファ807および1つの制御リ
スト・メモリ808を含む。データ・バッファ807
は、PCIバス222とHSB206との間のデータ転
送を簡便化するための一時的なメモリとして機能する。
制御リスト・メモリ808はPCIバス222上におけ
る各TLAN 226のバス・マスタ動作を簡便化す
る。
【0129】次に図31を参照する。TPI 220の
詳細ブロック図である。TPI220は、PCIバス2
22とのインタフェースに用いられるバッファ、ドライ
バ、および関連の回路を含んだPCIバス・インタフェ
ース・ロジック810を含む。本実施例のPCIバス2
22は、データ幅が32ビットで33 MHzのクロッ
ク周波数で動作する。しかし、PCIバス222のデー
タ幅は特にこれでなくてもよく、また動作クロックも、
例えば66 MHzといった任意の、あるいは使用可能
ないずれの周波数でも構わないことはもとより理解され
ている。TPI220はPCIアービタ811を含み、
これがPCIバス222へのアクセスとこれの制御につ
いてTLAN 226、TPI 220、およびCPU
230のそれぞれの間で調停を行う。特に、TLAN
226、TPI 220、およびCPU230は、そ
れぞれいくつかの要求信号REQmの1つをアサートし
てPCIバス222の制御を要求する。REQm信号は
PCIアービタ811に受け取られる。PCIアービタ
811は、応答してそれぞれの許可信号GNTmをアサ
ートすることによって要求しているデバイスの1つに制
御を許可する。PCIアービタ811は必要に応じて他
のアービトレーション・スキームを適用することもでき
るが、図解した実施形態においては、PCIアービタ8
11による調停はラウンドロビン法に基づいている。1
つのTLAN 226にPCIバス222の制御を許可
した後で、PCIアービタ811はTLAN選択信号
(TSELm)をアサートしてその特定のTLAN 2
26を識別する。
【0130】TPI220は、TPI220とHSB
206とのインタフェースに用いるバッファ、ドライ
バ、および関連の回路を含んだHSBデータ転送インタ
フェース・ロジック819を含む。HSBデータ送信イ
ンタフェース・ロジック819は、HSB 206上に
おける同時リード/ライト・サイクルのためにリード・
ラッチ819aおよびライト・ラッチ819bを含む。
HSBデータ転送インタフェース・ロジック819は、
EPSM 210のポーリングに応答し、HSB206
上で実行されているサイクルを監視するために、ポート
状態ロジック820を含む。特にポート状態ロジック8
20は、STROBE*信号がEPSM210によって
アサートされればそれを検知し、応答してPKT_AV
IAL[6]*およびBUF_AVAIL[6]*信号
をTPI 220のデータ状態に基づいて多重化の方式
でアサートする。ポート状態ロジック820は、REA
D_OUT_PKT[6] *およびWRITE_IN
_PKT[6]*信号をそれぞれアサートし、TPI2
20に意図されたHSB 206上でのリードおよびラ
イト・サイクルも検知する。TPI220からEPSM
210へのHSBバス206を介したパケット・デー
タの転送中、ポート状態ロジック820は転送されてい
るデータがパケットの始め、またはパケットの終わりで
あれば、それぞれSOP*またはEOP*信号をHSB
206のバス・サイクルの期間アサートする。EPS
M210からTPI 220へのHSBバス206を介
したパケット・データの転送中、ポート状態ロジック8
20はSOP*またはEOP*信号を読み取って、受信
されているデータがパケットの始めであるか、あるいは
パケットの終わりであるかを判断する。
【0131】データ・バッファ807はいくつかの双方
向FIFOデータ・バッファ、807a 、807b、
807c、および807d(807a−d)を含み、そ
れぞれは32ビット幅の送信バッファ(TPI TX
FIFO)および32ビット幅の受信バッファ(TPI
RX FIFO)を含む。示した実施形態において、
データ・バッファ807a、807b、807c、およ
び807dは、それぞれポートPORT24、PORT
25、PORT26、およびPORT27に対応する。
各TPI RX FIFOは、PCIバス222を介し
てそれぞれのTLAN 226からデータを受け取り、
そのデータはTPI220によりHSB206を介して
EPSM210に送られる。各TPI TX FIFO
は、HSB206を介してEPSM210からデータを
受け取り、そのデータはTPI220によりPCIバス
222を介してそれぞれのTLAN 226へ送られ
る。
【0132】受信リスト復号ロジック812はPCIバ
ス・インタフェース・ロジック810に結合されてお
り、少なくとも1つの受信制御リストを制御リスト・メ
モリ808の一部である受信制御リスト・メモリ(RX
CNTL LIST)808aに格納する。受信リス
ト復号ロジック812は、PCIバス222上のアドレ
スとしてアサートされたRECEIVE LIST M
EMORY BASEADDRESSに応答し、PCI
バス222へのデータとしてRX CNTLLIST8
08aからの受信制御リストの書き込みを行う。示した
実施形態においては、RX CNTL LIST808
aは一時に1つの受信制御リストを保持する。特に、そ
れぞれのTLAN 226はPCIバス222の制御権
を得てRECEIVE LIST MEMORY BA
SE ADDRESSをPCIバス222上でアサート
し、対応する受信制御リストをRX CNTL LIS
T 808aから受け取る。受信制御リストは、TLA
N 226が使用するPACKET DATA MEM
ORY BASE ADDRESSを含み、これは受信
データを格納する場所を示すアドレスである。それぞれ
のポートからのデータ・パケットの受信に応答し、TL
AN226は再びPCIバス222の制御権を得て、受
信データ・パケットからのデータを、予め取り出してあ
る受信制御リスト内に格納されているアドレスを用いて
TPI220へ転送する。本明細書で後に詳述するよう
に、TLAN 226は調停を行ってPCIバス222
の制御を許可され、PACKET DATA MEMO
RY BASE ADDRESSをPCIバス222上
でライト・サイクル中にアサートする。
【0133】受信データ復号ロジック813、PCI
RX FIFO制御ロジック817、PCIアービタ8
11、およびFIFO同期ロジック818が、PCIバ
ス・インタフェース・ロジック810から対応するTP
I RX FIFOへの受信データの流れを制御する。
PCI RX FIFO制御ロジック817は、PCI
バス・インタフェース・ロジック810からのデータを
受け取る入力、およびそれぞれが対応するTPI RX
FIFOに結合されているいくつかの選択可能な出力
を含む。PCIアービタ811はTSELm信号をFI
FO同期ロジック818に供給し、これがPCI RX
FIFO制御ロジック817への対応するPCIバッ
ファ選択信号(PBSELm)をアサートし、PCIバ
ス222へのアクセスが許可されている特定のTLAN
226に基づいて適当なTPIRX FIFOを選択
する。受信データ復号ロジック813は、PCIバス2
22上でライト・サイクルを実行中のTLAN 226
によってアサートされたPACKET DATA ME
MORY BASE ADDRESSを受け取って復号
化し、応答してPCI RX FIFO制御ロジック8
17への受信イネーブル信号(REN)をアサートして
選択したTPI RX FIFOにデータを渡す。
【0134】PCIバス222とHSB 206との間
における双方向データ・フローは、データ・バッファ8
07を介して実現されることに留意する。1つの実施形
態において、PCIバス222とHSB 206は33
MHzといった等しい速度で動作するが、代案の実施
形態では異なったクロック周波数で動作することも考え
られる。例えば別の実施形態において、HSB 206
が33 MHzで動作し、一方PCIバス222で66
MHz動作する。クロックの速度が異なっても、TP
I220の機能が遂行されてデータ・フローを処理して
同期が実現される。データ・バッファ807a−dのそ
れぞれのTPI RX FIFOおよびTPI TX
FIFOは、データの書き込みと読み出しのためにポイ
ンタを両端に保持したサーキュラ・バッファとしての機
能の遂行が望ましい。FIFO同期ロジック818は、
一般に各FIFOの両端のポインタの同期、保持、およ
び更新のために動作し、適当なTPI FIFOとの正
しいデータの読み書きを保証する。
【0135】前述したように、各TPI RX FIF
Oはサーキュラ・バッファとして機能を遂行する。PC
I RX FIFO制御ロジック817はいくつかのP
CI受信ポインタ(PCI RX PTR)を含み、選
択されたTPI RX FIFO内の1DWORD(3
2ビット)のデータを受け取る次のロケーションを指示
あるいはアドレスするために、それぞれのTPI RX
FIFOに1つのポインタが充てられている。同様
に、HSB RX FIFO制御ロジック821が各T
PI RX FIFOの他端にあり、いくつかのPCI
受信「シンクロナイズド」ポインタ(PCI RX S
PTR)を含み、これらのポインタは、それぞれが対応
する1つのPCI RX PTRのシンクロナイズされ
たコピーである。適当なTPI RX FIFOを選択
するためのPBSELm信号とともに、FIFO同期ロ
ジック818も複数のPCIカウント信号(PCNT
m)の対応する1つをアサートし、PCI RX FI
FO制御ロジック817内の当該のPCI RX PT
Rの同期的な更新すなわち増分を行う。FIFO同期ロ
ジック818は、さらに複数のHSBカウント信号(H
CNTm)の対応する1つをアサートし、HSB RX
FIFO制御ロジック821内の当該のPCIRX
SPTRの同期的な更新すなわち増分を行う。このよう
に、それぞれのTPI RX FIFOの両端に1つず
つ用意されたポインタによって、データを挿入すべき場
所が指示される。
【0136】PCI TX FIFO制御ロジック81
6は、TPI TX FIFOのいずれかの中でデータ
を検出し、送信すべきデータを持っているTPI TX
FIFOに対応するTLAN226対してコマンドを
送るため、TPI220にPCIバス222の制御を要
求させ、その制御を得させる。PCI TX FIFO
制御ロジック816は、1組のTPI制御レジスタ84
6から当該のTLAN226のアドレスにアクセスす
る。TPI220は当該のTLAN226にコマンドを
書き込み、TRANSMIT LIST MEMORY
BASE ADDRESSを用意し、TLAN226
にそのTRANSMIT LIST MEMORY B
ASE ADDRESSを使用するTPI220から送
信制御リストを続いて要求させる。
【0137】送信リスト・デコード・ロジック814
は、PCIバス・インタフェース・ロジック810に結
合されており、少なくとも1つの送信コントロール・リ
ストをコントロール・リスト・メモリ808の一部であ
る送信コントロール・リスト・メモリ(TX CNTL
LIST)808bに格納する。送信リスト・コント
ロール・ロジック814は、PCIバス222上のアド
レスとしてアサートされた送信リスト・メモリ・ベース
・アドレス(TRANSMIT LIST MEMOR
Y BASE ADDRESS)に応答し、PCIバス
222へのデータとしてTX CNTL LIST80
8bからの送信コントロール・リストの書き込みを行
う。示した実施例においては、TX CNTL LIS
T808bは、一時に1つの送信コントロール・リスト
を保持する。このようにして、それぞれのTLAN 2
26はPCIバス222の制御権を得て、TRANSM
ITLIST MEMORY BASE ADDRES
SをPCIバス222上でアサートし、対応する送信コ
ントロール・リストをTX CNTL LIST808
bから受け取る。送信コントロール・リストを取り出し
た後、TLAN226はPCIバス222を要求し、そ
のバスの制御権を得ることによってその送信コントロー
ル・リストを実行し、リード・サイクルを1回実行し
て、TPI220の対応するTPI TX FIFOか
らパケット・データ・メモリ・ベース・アドレス(PA
CKET DATA MEMORY BASE ADD
RESS)を用いてデータを取り出す。
【0138】送信データ・デコード・ロジック815、
PCI TX FIFOコントロール・ロジック81
6、PCIアービタ811、およびFIFO同期ロジッ
ク818が、データ・バッファ807の各TPI TX
FIFOからPCIバス222へのデータの流れを制
御する。PCI TX FIFOコントロール・ロジッ
ク816は、PCIバス・インタフェース・ロジック8
10へデータを供給する出力、およびそれぞれがTPI
TX FIFOの対応する1つに結合されているいく
つかの選択可能な入力を含む。TLAN226がデータ
を読み取るべくPCIバス222上でリード・サイクル
を実行するとき、PCIアービタ811はTSELm信
号をFIFO同期ロジック818に供給し、これがPC
I TXFIFOコントロール・ロジック816へのP
BSELm信号をアサートし、PCIバス222の制御
権を持っている特定のTLAN226に基づいて、対応
するTPI TX FIFOを選択する。送信データ・
デコード・ロジック815は、TLAN226によって
アサートされたPACKET DATA MEMORY
BASE ADDRESSを受け取って復号化し、そ
れに応答して、PCI TX FIFOコントロール・
ロジック816への送信イネーブル信号(TEN)をア
サートすることによって、選択されたTPI TX F
IFOへのデータの転送を可能とする。PBSELm信
号がPCI RX FIFOコントロール・ロジック8
17とPCI TX FIFOコントロール・ロジック
816の両方に供給されること、そしてTENおよびR
EN信号によるPCI RXFIFOコントロール・ロ
ジック817とPCI TX FIFOコントロール・
ロジック816との間の選択が、サイクルのタイプ、お
よびデータ・フローの方向に依存していることに留意す
る必要がある。
【0139】示された本実施例において、各TPI T
X FIFOはサーキュラ・バッファとして機能を遂行
する。PCI TX FIFOコントロール・ロジック
816はいくつかのPCI送信ポインタ(PCI TX
PTR)を含み、1つのデワード(DWORD)のデ
ータを読み出すべき次のロケーションを指示あるいはア
ドレス指定するために、それぞれのTPI TX FI
FOに1つのポインタが充てられている。同様に、TP
I TX FIFOの他端にある、本明細書で後に詳述
するHSB TX FIFOコントロール・ロジック8
22は、いくつかのPCI送信「同期(シンクロナイズ
ド)」ポインタ(PCI TX SPTR)を含み、こ
れらのポインタは、それぞれが対応する1つのPCI
TX PTRの同期されたコピーである。FIFO同期
ロジック818は、PCI TXFIFOコントロール
・ロジック816から1つのDWORDのデータがPC
Iバス222に供給される度に、対応する1つのPCN
Tm信号をアサートして当該のPCI TX PTRを
増分し、対応する1つのHCNTm信号をアサートして
当該のPCI TX SPTRを増分する。このよう
に、それぞれのTPI TX FIFOの両端に1つず
つ用意されたポインタによって、データを読み出すべき
場所が指示される。
【0140】HSB RX FIFOコントロール・ロ
ジック821は、それぞれがTPIRX FIFOの対
応する1つの出力に結合された幾つかの選択可能な入力
を持っている。HSB RX FIFOコントロール・
ロジック821は、HSB206上でアサートされるべ
きデータをHSBデータ転送インタフェース・ロジック
819に供給するための1つの出力を持っている。HS
B TX FIFOコントロール・ロジック822は、
それぞれがTPI TX FIFOの対応する1つの入
力に結合された幾つかの選択可能な出力を持っている。
HSB TX FIFOコントロール・ロジック822
は、HSBデータ転送インタフェース・ロジック819
からHSB206を介してデータを受け取るための1つ
の入力を持っている。
【0141】HSB RX FIFOコントロール・ロ
ジック821、ポート状態ロジック820、およびFI
FO同期ロジック818は、TPI220からEPSM
210へのデータ転送中、データ・バッファ807a〜
807dのTPI RX FIFOとHSB206との
間におけるデータの流れを制御する。ポート状態ロジッ
ク820は、HSB206上におけるリード・サイクル
を示READ_OUT_PKT[6]*信号がアサート
とされたときにそれを検知し、選択されているポートの
対応するTPI RX FIFOを識別すべくPORT
_NO[1:0]信号をデコードする。特に、EPSM
210は、PORT_NO[1:0]信号00、01、
10、または11をアサートして、ポートPORT2
4、PORT25、PORT26、またはPORT27
にそれぞれ対応するデータ・バッファ807a、807
b、807c、または807dの1つのTPI RX
FIFOを選択する。ポート状態ロジック820は、F
IFO同期ロジック818へのポート選択信号(PSE
Lm)をアサートして選択されたポートを表示し、FI
FO同期ロジック818が応答して対応するHSB選択
信号(HBSELm)をアサートし、対応するTPI
RX FIFOに結合されているHSB RX FIF
O制御ロジック821の1つの出力を選択する。また、
ポート状態ロジック820がHSBイネーブル信号(H
REN)をアサートすることにより、HSB RX F
IFO制御ロジック821は、HSB206上でアサー
トされるべきデータをHSBデータ転送インタフェース
・ロジック819に供給することができる。
【0142】HSB RX FIFOコントロール・ロ
ジック821は、TPI RX FIFO内における特
定のデータのロケーションを示すためのHSB受信ポイ
ンタ(HSB RX PTR)を、それぞれのTPI
RX FIFOについて1つずつ含む。FIFO同期ロ
ジック818は、HCNTm信号の対応する1つをアサ
ートして、TPI RX FIFOからDWORDが1
つ読み出される度に、選択されているTPI RX F
IFOの対応するHSB RX PRTを更新すなわち
減分する。また、PCI RX FIFOコントロール
・ロジック817は、対応するHSB 受信「同期」ポ
インタ(HSB RX SPTR)を含み、これはFI
FO同期ロジック818がPCNTm信号の対応する1
つをアサートすることによって減分される。このよう
に、HSB RX FIFOコントロール・ロジック8
21は、TPI RX FIFOのそれぞれについて2
つのポインタを含み、PCI RX SPTRはデータ
を書き込むべき場所を指示し、HSB RX PTRは
データを読み出すべき場所を指示する。ポート状態ロジ
ック820もこれらのポインタにアクセスし、各TPI
RX FIFO内の有効なデータの量あるいは有効な
データ・バイト数を引き出す。このカウントは(TBU
Sの値に対応している)対応するRBSIZEと比較さ
れ、HSB206が、STROBE*信号に応答して、
PKT_AVAIL[6]*信号をアサートする方法を
決定する。
【0143】HSB TX FIFOコントロール・ロ
ジック822、ポート状態ロジック820、およびFI
FO同期ロジックは、EPSM210からTPI220
へのデータ転送中、TPI TX FIFOとHSB2
06との間におけるデータの流れを制御する。ポート状
態ロジック820はWRITE_IN_PKT[6]*
信号がアサートとされたときにそれを検知し、EPSM
210がHSB206上で実行しているライト・サイク
ルの間に、PORT_NO[1:0]信号からポート番
号を検出する。ポート状態ロジック820はそれに応答
して、PSELm信号およびHSB送信イネーブル信号
(HTEN)をアサートし、当該するTPI TX F
IFOを示す。FIFO同期ロジック818はそれに応
答して、HBSELm信号をアサートし、当該TPI
TX FIFOに対してHSBTX FIFOコントロ
ール・ロジック822の対応する入力を選択する。HT
EN信号によってHSB TX FIFOコントロール
・ロジック822がイネーブルされ、HSBデータ転送
インタフェース・ロジック819から選択されたTPI
TX FIFOにアサートすべきデータを受け取る。
【0144】HSB TX FIFOコントロール・ロ
ジック822は、それぞれのTPITX FIFOにつ
いて1つのHSB送信ポインタ(HSB TX PT
R)を含み、これによって、データを書き込むべきTP
I TX FIFO内の特定のロケーションが指示され
る。FIFO同期ロジック818はHCNTm信号の対
応する1つをアサートし、選択されたTPI TX F
IFOに1つのDWORDが書き込まれる度に、その選
択されたTPI TX FIFOの対応するHSB T
X PRTを更新すなわち増分する。また、PCI T
X FIFOコントロール・ロジック816は、対応す
るHSB送信「同期」ポインタ(HSBTX SPT
R)を含み、これは、FIFO同期ロジック818がP
CNTm信号の対応する1つをアサートすることによっ
て増分される。このように、HSB TX FIFOコ
ントロール・ロジック822はTPI TX FIFO
のそれぞれについて2つのカウンタを含み、PCI T
X SPTRはデータを読み出すべき場所を指示し、H
SB TX PTRはデータを書き込むべき場所を指示
する。ポート状態ロジック820もこれらのポインタに
アクセスし、各TPI TX FIFO内の使用可能な
スペース量あるいは空のデータ・バイト数を取り出す。
このカウントは(TBUSの値に対応している)対応す
るXBSIZEと比較され、HSB 206がSTRO
BE*信号に応答して、BUF_AVAIL[6]*信
号をアサートする方法を決定する。
【0145】TPI220内には1組のTPI PCI
コンフィギュレーション・レジスタ835が用意されて
おり、PCIバス222を介したアクセスのために、P
CIバス・インタフェース・ロジック810に結合され
ている。また、TPIコントロール・レジスタ846が
用意されており、TPI220内の各種のデバイス、お
よびPCIバス222を介したアクセスのために、PC
Iバス・インタフェース・ロジック810に結合されて
いる。これらのレジスタ846および835の内容や構
造は、後に詳述する。HSBデータ転送インタフェース
・ロジック819は、PACKET SIZEタグ・レ
ジスタ819cも含む。HSBデータ転送インタフェー
ス・ロジック819は、EPSM210から送られる各
パケット・データの最初のDWORDを捉え、パケット
・サイズ(PACKET SIZE)タグ・レジスタ8
19cに格納し、該レジスタ819cの内容を送信リス
トデコード・ロジック814のTX CNTL LIS
Tに書き込む。
【0146】次に図32を参照する。各TLAN226
の構成と機能を示すブロック図である。TLAN226
は、イーサネット(Ethernet)・ポート11
0、PCIバス・インタフェース824、およびイーサ
ネット・ポート110とPCIバス・インタフェース8
24との間に結合されたメモリ825を含む。
【0147】イーサネット・ポート110は、対応する
ネットワーク112との間におけるパケット・データの
送受信のために、100Mbのイーサネット・セグメン
ト114の適合するコネクタを受容するための適宜のソ
ケットを含む。イーサネット・ポート110は、受信し
たパケット・データをメモリ825内のデータ・バッフ
ァ826に供給する。イーサネット・ポート110はデ
ータ・バッファ826からデータを取り出し、そのパケ
ット・データをイーサネット・セグメント114に送信
する。
【0148】TLAN226は、その動作を制御するた
めの1組のレジスタ828をメモリ825内に含む。レ
ジスタ828は、外部のデバイスがPCIバス222を
介してコマンドを挿入できるようにするために、コマン
ド・レジスタ828aを含む。レジスタ828は、外部
のメモリからPCIバス222を介してコマンド・リス
トをアクセスするためのアドレスを格納する、チャネル
・パラメータ・レジスタ828bをさらに含む。コマン
ド・レジスタ828aは、TLAN226に対し、コマ
ンド・リストを取り出して実行するように指示するため
の(示していないが)GOビットを含む。コマンド・レ
ジスタ828aは、TLAN226に対し、(RXの場
合)受信コマンド・リストを、そして(TXの場合)送
信コマンド・リストを取り出して実行するように指示す
るための(示していないが)RX/TXビットも含む。
メモリ825は現在のコントロール・リストを格納する
ためのリスト・バッファ827を含み、さらにリスト・
バッファ827は、現在の受信・コントロール・リスト
を格納するための受信コントロール・リスト・バッファ
827a、およびカレントの送信コントロール・リスト
を格納するための送信コントロール・リスト・バッファ
827bを含む。
【0149】PCIバス・インタフェース824は、P
CIバス222に結合し、データ転送中にPCIバス2
22のバス・マスタを動作させることによって、TPI
220とTLAN226との間のデータ転送を制御する
ためのロジックを含む。TPI220やCPU230の
ような外部のデバイスは、チャネル・パラメータ・レジ
スタ828bにアドレスを書き込み、コマンド・レジス
タ828aにコマンドを書き込む。TLAN226はそ
れに応答してREQm信号をアサートし、PCIバス2
22を仲裁に委ねる。GNTm信号を受け取ると、TL
AN226は指示されたコマンド・リストを受け取って
リスト・バッファ827に格納するため、PCIバス2
22上で1サイクルを実行する。コマンドは、RX/T
XビットがTXにセットされていれば送信コマンドとみ
なされ、RX/TXビットがRXにセットされていれば
受信コマンドとみなされる。
【0150】受信動作を開始するために、CPU230
は、受信リスト・メモリ・ベース・アドレス(RECE
IVE LIST MEMORY BASE ADDR
ESS)をチャネル・パラメータ・レジスタ828bに
書き込み、受信コマンドを各TLAN226のコマンド
・レジスタ828aに書き込む。TLAN226は、応
答してRECEIVE LIST MEMORY BA
SE ADDRESSを用いて受信コントロール・リス
トを取り出すべく、PCIバス222を要求する。TP
I220は受信コントロール・リストをTLAN226
に供給し、そしてTLAN226は、データの受信を待
ってから受信コントロール・リストを実行する。受信コ
ントロール・リストは順方向ポインタを含み、TLAN
226はそれを用いて次の受信コントロール・リストを
取り出し、コントロール・リストのチェーン(連鎖)を
形成する。しかし、望ましい実施例では、TPI220
が各受信コントロール・リストの順方向ポインタを同一
のRECEIVE LIST MEMORY BASE
ADDRESSとともにロードする。ポート110か
らのデータがTPI220に受信さる場合、PCIバス
・インタフェース824は仲裁に委ねて、PCIバス2
22の制御権を得てから、その受信コントロール・リス
ト・バッファ827a内の受信コントロール・リストを
実行して、データをPCIバス222を介してTPI2
20に転送する。データ・パケット全体の転送が完了し
たとき、TLAN226は、現在の受信コントロール・
リストの順方向ポインタ内のRECEIVE LIST
MEMORY BASE ADDRESSを使用し、
新しく別の受信コントロール・リストを要求する。
【0151】送信動作について説明する。TPI220
がそのTPI TX FIFOのいずれかから送信すべ
きデータを検知し、仲裁に委ねてPCIバス222の制
御権を獲得する。それからTPI RX FIFOは、
送信リスト・メモリ・ベース・アドレス(TRANSM
IT LIST MEMORY BASE ADDRE
SS)をそれぞれのTLAN226のチャネル・パラメ
ータ・レジスタ828bに、送信コマンドをコマンド・
レジスタ828aに書き込む。TLAN226は、TR
ANSMIT LIST MEMORY BASE A
DDRESSを用いて送信コントロール・リストを取り
出すべく、PCIバス222を要求する。送信コントロ
ール・リストが受け取られると、TLAN226はその
送信コントロール・リストを送信コントロール・リスト
・バッファ827bに格納し、そして、格納されている
送信コントロール・リストを実行してパケット・データ
を受け取る。送信コントロール・リストも順方向ポイン
タを含み、通常はこれをTLAN226が次のアドレス
として用いることによって次の送信コントロール・リス
トを受け取り、コントロール・リストのチェーンを形成
する。ただし、示した実施例では、TPI 220は各
送信コントロール・リストの順方向ポインタをヌル値と
ともにロードする。従って、その送信コントロール・リ
スト・バッファ827b内の送信コントロール・リスト
の実行後は、TLAN 226はTPI220が新しく
別の送信コマンドを書き込むまで、待機することにな
る。
【0152】次に図33を参照する。該図はコントロー
ル・リスト830を示している。これは受信と送信の両
方のコントロール・リストの形式であり、さらにRX
CNTL LIST808aおよびTX CNTL L
IST808bの形式でもある。コントロール・リスト
830は、FORWARD_POINTERフィールド
831、PACKET_SIZEフィールド832a、
CSTATフィールド832b、COUNTフィールド
833、およびDATA_POINTERフィールド8
34を含む。各フィールドは32ビットであるが、PA
CKET_SIZEフィールド832aとCSTATフ
ィールド832bは、16ビットのフィールドである。
【0153】FORWARD_POINTERフィール
ドは、一般に複数のコントロール・リストをチェーン化
するために使用される。受信動作については、FORW
ARD_POINTERフィールド831がそれぞれの
ケースで同じRECEIVELIST MEMORY
BASE ADDRESSであるので、TPI220
が、RX CNTL LIST808aから何度も繰り
返して供給する受信コントロール・リストをTLAN2
26が実行する。このように、各TLAN226は、そ
のカレントの受信コントロール・リストのFORWAR
D_POINTERフィールド831内のRECEIV
E LIST MEMORY BASEADDRESS
を使用して、ネットワーク112から次のデータ・パケ
ットが受信されたとき、次の受信コントロール・リスト
を要求する。従って、受信動作に関しては、TLAN2
26に対してTPI220が動作開始コマンドを出す必
要がない。送信動作については、TPI220が毎回同
一のTX CNTL LIST808bからの送信コン
トロール・リストを実行する。しかし、TPI220は
FORWARD_POINTERフィールド831をヌ
ル値(0000h)にセットし、従ってTPI220に
よって開始されたときは、TPI220およびそれぞれ
のTLAN226は1つの送信動作を実行する。いずれ
かのTPIRX FIFOの中でデータが検知されて、
TPI220がTPI RX FIFOのそれぞれのT
LANポート上で送信動作を行っていないとき、TPI
220は送信コマンドをそれぞれのTLAN226に対
して発生し、送信動作が開始される。それぞれのTLA
N226はTX CNTL LIST808bから送信
コントロール・リストを取り出し、その送信コントロー
ル・リストを実行し、そしてFORWARD_POIN
TERフィールド831のヌル値を検知したとき、デフ
ォルトの状態に戻る。
【0154】PACKET_SIZEフィールド832
aは、通常データ・パケットのサイズを表示する。受信
動作については、TPI220が最初にRX CNTL
LIST808a内のPACKET_SIZEフィー
ルド832aをゼロにセットする。TLAN226がT
PI220に対して1つのデータ・パケット全体の送信
を完了した後、TLAN226は、RX CNTL L
IST808aのPACKET_SIZEフィールド8
32aおよびCSTATフィールド832bに対して最
後のDWORDの書き込みを実行する。PACKET_
SIZEフィールド832aは実際のパケット・データ
のサイズでロードされ、CSTATフィールド832b
内のフレーム完了ビットがセットされる。送信動作につ
いては、TX CNTL LIST808bのPACK
ET_SIZEフィールド832aは、TPI220に
よってTLAN226に送信されるべきデータ・パケッ
トのサイズでロードされる。HSBデータ転送インタフ
ェース・ロジック819は、TX CNTL LIST
808bのPACKET_SIZEレジスタ・タグ81
9c内のパケット・サイズDWORDを送信リスト・デ
コード・ロジック814内のTX CNTL LIST
808bに書き込む。そして、TPI220が前述した
ように送信コマンドを対応するTLAN226に書き込
み、TX CNTL LIST808bの内容が送信コ
ントロール・リストとしてTLAN226に対して要求
されたときに供給される。
【0155】CSTATフィールド832bは、TPI
220とTLAN226との間におけるコマンドおよび
状態情報の受け渡しに使用される。TPI220はRX
CNTL LIST808aのCSTATフィールド
832bを最初にゼロにセットする。TLAN226か
らそれぞれのTPI RX FIFOへのパケット・デ
ータの転送が完了したとき、TPI220はRX CN
TL LIST808a内のCSTATフィールド83
2bのフレーム完了ビット(ビット14)をセットする
ことによって、パケット・データ転送の完了を表示す
る。TPI220は、データ・パケットをHSB206
を介してEPSM210へ転送を開始できる状態にある
ことをポート状態ロジック820に知らせる。そしてポ
ート状態ロジック820は、それぞれのTPI RX
FIFO内にEPSM210によるポーリングに応答し
て、EPSM210に対して送信可能なデータがあるこ
とを表示する。パケットの終わりは必ず転送しなければ
ならないため、たとえパケットの終わりのデータ量がR
BSIZEもしくはTBUSの値に適合しない場合で
も、同様である。
【0156】TPI220は、EPSM 10からのデ
ータ・パケットの受信中におけるAL_FCS_IN*
(またはFBPN*)信号の状態に基づいて、TX C
NTL LIST808bのCSTATフィールド83
2b内のパス巡回冗長検査CRC(Cyclic Re
dundancy Check)ビットをセットする。
TPI220は、データ・パケットがCRCに使用され
るデータを含んでいるかどうかを示すCRCビットをセ
ットする。CRCを含むイーサネットのデータ・パケッ
トには、パケット・データに加えて誤り検査に用いられ
る4バイトのCRCデータが入っている。
【0157】DATA_POINTERフィールド83
4は、データ転送動作中にTLAN226によってアサ
ートされるべきPCIアドレスを指定する。このアドレ
スは、パケット・データ・メモリ・ベース・アドレス
(PACKET DATAMEMORY BASE A
DDRESS)であって、送信および受信動作の両方に
同じものであることが望ましい。データ受信動作中、T
LAN226がPACKET DATA MEMORY
BASE ADDRESSをアサートし、受信データ
復号ロジック813がPCIバス222上のアドレスお
よびライト・サイクルをデコードし、そして、選択され
ているTPI RX FIFO内へパケット・データが
受容されるように、PCI RX FIFOコントロー
ル・ロジック817をイネーブルする。データ送信動作
中、TLAN226がPACKET DATA MEM
ORY BASE ADDRESSをアサートし、送信
データ復号ロジック815がアドレスおよび読み出し動
作をデコードし、そしてTPI TX FIFOからの
パケット・データの送信を促進するように、PCI T
X FIFO制御ロジック816をイネーブルする。
【0158】COUNTフィールド833は、存在する
データの量あるいはDATA_POINTERフィール
ド834の現在値における使用可能なバッファ・スペー
スを示す。データ受信動作中、受信リスト・デコード・
ロジック812は、COUNTフィールド833をTP
Iコントロール・レジスタ846のRCV_DATA_
COUNTレジスタ847b(第8F図)内に書き込ま
れる値に設定する。RCV_DATA_COUNTレジ
スタ847bの値でTPI220が受信すべき最大パケ
ット・サイズが決まる。既定値は1,518バイトであ
って、これはCRCの4バイトを含むイーサネット・デ
ータ・パケットの最大サイズである。データ送信動作
中、TPI220はCOUNTフィールド833をPA
CKET_SIZEフィールド832aと同じ値に設定
する。
【0159】次に図34を参照する。該図は、TPI2
20に使用されるTPI PCIコンフィギュレーショ
ン・レジスタ835の定義を示している。TPI PC
Iコンフィギュレーション・レジスタ835は、TPI
220専用の追加的なレジスタ、およびすべてのPCI
バスのアーキテクチャに共通のレジスタを含む。すべて
のPCIバスに共通のレジスタは、DEVICE_ID
レジスタ836a、VENDOR_IDレジスタ836
b、状態(STATUS)レジスタ837a、コマンド
(COMMAND)レジスタ837b、CLASS_C
ODEレジスタ838a、REV_IDレジスタ838
b、BISTレジスタ839a、HDR_TYPEレジ
スタ839b、レイテンシすなわち待ち時間(LATE
NCY)レジスタ839c、CACHELSレジスタ8
39d、MAXLATレジスタ845a、MINGNT
レジスタ845b、INTPINレジスタ845c、お
よびINTLINEレジスタ845dである。
【0160】TPI220専用のレジスタは、TPIコ
ントロールIOベース・アドレス(CONTROL I
O BASE ADDRESS)レジスタ840、TP
Iコントロール・メモリ・ベース・アドレス(CONT
ROL MEMORY BASE ADDRESS)レ
ジスタ841、送信リスト・メモリ・ベース・アドレス
(TRANSMIT LIST MEMORY BAS
E ADDRESS)レジスタ842、受信リスト・メ
モリ・ベース・アドレス(RECEIVE LIST
MEMORY BASE ADDRESS)レジスタ8
43、およびパケット・データ・メモリ・ベース・アド
レス(PACKET DATA MEMORY BAS
E ADDRESS)レジスタ844である。
【0161】初期化後、TPIコントロールIOベース
・アドレス・レジスタ840にはTPIコントロール・
レジスタ846のためのTPI CONTROL IO
BASE ADDRESSが入っている。TPIコン
トロール・メモリ・ベース・アドレス・レジスタ841
にはTPIコントロール・レジスタ846のためのTP
I CONTROL MEMORY BASE ADD
RESSが入っている。このように、TPIコントロー
ル・レジスタ846は、PCIバス222の入出力とメ
モリ・スペースの両方でアクセスが可能である。送信リ
スト・メモリ・ベース・アドレス・レジスタ842に
は、送信リストデコード・ロジック814によってデコ
ードされるTX CNTL LIST808bのための
TRANSMIT LIST MEMORY BASE
ADDRESSが入っている。受信リスト・メモリ・
ベース・アドレス・レジスタ843には、受信リストデ
コード・ロジック812によってデコードされるRX
CNTL LIST808aのためのRECEIVE
LIST MEMORY BASE ADDRESSが
入っている。パケット・データ・メモリ・ベース・アド
レス・レジスタ844には、TPI220のデータ・バ
ッファ807に対応するPACKET DATA ME
MORY BASE ADDRESSが入っている。P
ACKET DATA MEMORY BASE AD
DRESSは、送信リスト・デコード・ロジック814
と受信リスト・デコード・ロジック812の両方によっ
てデコードされる。
【0162】次に図35を参照する。該図は、TPI
220に使用されるTPIコントロール・レジスタ84
6の定義の図解である。TPIコントロール・レジスタ
846は、RCV_DATA_COUNTレジスタ84
7b、XBSIZE3レジスタ848a、XBSIZE
2レジスタ848b、XBSIZE1レジスタ848
c、XBSIZE0レジスタ848d、RBSIZE3
レジスタ849a、RBSIZE2レジスタ849b、
RBSIZE1レジスタ849c、RBSIZE0レジ
スタ849d、NET_PRI3レジスタ850a、N
ET_PRI2レジスタ850b、NET_PRI1レ
ジスタ850c、NET_PRI0レジスタ850d、
TLAN0メモリ・ベース・アドレス(MEMORY
BASEADDRESS)レジスタ851、TLAN1
メモリ・ベース・アドレス・レジスタ852、TLAN
2メモリ・ベース・アドレス・レジスタ853、および
TLAN3メモリ・ベース・アドレス・レジスタ854
を含む。
【0163】RCV_DATA_COUNTレジスタ8
47bは、TPI 20が処理した受信データ・パケッ
トの最大サイズを格納する。TPI220は、この値を
取り出してRX CNTL LIST 08aのCOU
NTフィールド833に入れる。XBSIZEレジスタ
848a〜dの各々は、それぞれのポートについてDW
ORD単位の送信バースト・サイズを保持している。す
なわち、PORT24にはXBSIZE0、PORT2
5にはXBSIZE1、PORT26にはXBSIZE
2、そしてPORT27にはXBSIZE3である。X
BSIZEの送信バースト・サイズの値は、それぞれの
ポートに対してEPSM210からデータを要求できる
だけの十分なパケット・バッファ・スペースがそれぞれ
のTPITX FIFOにあるかどうかを判定すると
き、TPI220のHSB TXFIFOコントロール
・ロジック822およびポート状態ロジック820によ
って用いられる。RBSIZEレジスタ849a〜dの
各々は、それぞれのポートについてDWORD単位のH
SB受信バースト・サイズを保持する。すなわち、PO
RT24にはRBSIZE0、PORT25にはRBS
IZE1、PORT26にはRBSIZE2、そしてP
ORT27にはRBSIZE3である。RBSIZEの
受信バースト・サイズの値は、それぞれのポートからE
PSM210に対する受信データ転送を要求できるだけ
の十分なパケット・データがそれぞれのTPI RX
FIFOにあるかどうかを判定するとき、HSB RX
FIFOコントロール・ロジック821およびポート
状態ロジック820によって用いられる。図解した実施
例において、XBSIZEおよびRBSIZEレジスタ
848、849の値はそれぞれが等しく、またTBUS
の値とも等しい。しかし、XBSIZEレジスタ848
およびRBSIZEレジスタ849は、必要に応じて任
意のバースト転送値でプログラミングされる。
【0164】NET_PRIレジスタ850は、それぞ
れのポートに関するそれぞれのネットワーク優先権の値
を保持する。すなわち、PORT24にはNET_PR
I0、PORT25にはNET_PRI1、PORT2
6にはNET_PRI2、そしてPORT27にはNE
T_PRI3である。これらの値は、送信リスト・デコ
ード・ロジック814がそれぞれのポートの送信優先権
を設定するために使用される。TLAN0メモリ・ベー
ス・アドレス・レジスタ851は、PORT24につい
てTLAN0 MEMORY BASE ADDRES
SというPCIメモリ・アドレスを保持する。TLAN
1メモリ・ベース・アドレス・レジスタ852は、PO
RT25についてTLAN1 MEMORY BASE
ADDRESSというPCIメモリ・アドレスを保持
する。TLAN2メモリ・ベース・アドレス・レジスタ
853は、PORT26についてTLAN2 MEMO
RY BASE ADDRESSというPCIメモリ・
アドレスを保持する。TLAN3メモリ・ベース・アド
レス・レジスタ854は、PORT27についてTLA
N3 MEMORY BASE ADDRESSという
PCIメモリ・アドレスを保持する。これらのレジスタ
のそれぞれを、起動時にCPU 230が各TLAN
226のアドレスを認識してから初期化する。これらの
値はPCITX FIFOコントロール・ロジック81
6に供給され、このロジックがPCIバス222上にそ
れぞれの送信コマンドを出してパケット送信動作を開始
するために該値を使用する。
【0165】次に図36を参照する。該図は、ネットワ
ーク・スイッチ102の初期化、起動あるいはリセット
時におけるCPU230のPCI初期化動作を図解した
フローチャートである。最初のステップ855におい
て、CPU230はPCIバス222のコンフィギュレ
ーションを行い、それぞれのTLAN226をPCIメ
モリ・スペースにマッピングし、そして、このコンフィ
ギュレーションをPCIバス222を介してTPI P
CIコンフィギュレーション・レジスタ835に書き込
む。PCIバス222のコンフィギュレーションを行う
手順は既知であり、ここではさらに説明しない。
【0166】特に、DEVICE_IDレジスタ836
aは、標準のPCIデバイスIDレジスタであり、その
値は0x5000hに設定される。VENDOR_ID
レジスタ836bは標準のPCIベンダIDレジスタで
あり、その値は0x0E11hに設定される。STAT
USレジスタ837aは標準のPCIデバイス状態レジ
スタである。COMMANDレジスタ837bは標準の
PCIデバイス・コマンド・レジスタである。CLAS
S_CODEレジスタ838aは標準のPCIデバイス
・クラス・コード・レジスタであり、その値は0x06
0200hに設定される。REV_IDレジスタ838
bは標準のPCIデバイス改定IDレジスタであり、そ
の値は0x00hに設定される。BISTレジスタ83
9aは標準のPCI BIST状態レジスタであり、そ
の値は0x00hに設定される。HDR_TYPEレジ
スタ839bは標準のPCIヘッダ・タイプ・レジスタ
であり、その値は0x80hに設定される。LATEN
CY(待ち時間)レジスタ839cは標準のPCI待ち
時間レジスタであり、CPU230によって初期化され
る。CACHELSZレジスタ839dは標準のPCI
キャッシュ・ライン・サイズ・レジスタであり、CPU
230によって初期化される。MAXLATレジスタ8
45aは標準のPCI最長待ち時間レジスタであり、そ
の値は0x00hに設定される。MINGNTレジスタ
845bは標準のPCIデバイス・ミニマム・グラント
・レジスタであり、その値は0x00hに設定される。
INTPINレジスタ845cは標準のPCIデバイス
割り込みピン・レジスタであり、その値は0x00hに
設定される。INTLINEレジスタ845dは標準の
PCIデバイス割り込みライン・レジスタであり、CP
U 230によって設定される。
【0167】ステップ855では、さらにCPU230
が0xFFFFFFFFhの値を次のそれぞれのレジス
タに書き込む。すなわち、TPI CONTROL I
OBASE ADDRESSレジスタ840; TPI
CONTROL MEMORY BASE ADDR
ESSレジスタ841; TRANSMIT LIST
MEMORY BASE ADDRESSレジスタ8
42; RECEIVE LIST MEMORY B
ASE ADDRESSレジスタ843;およびPAC
KET DATA MEMORY BASE ADDR
ESSレジスタ844に書き込む。それぞれへの書き込
み完了後、TPI220が各レジスタ内の値を、指示さ
れた特定のレジスタに求められる量の入出力(I/O)
またはメモリ・スペースを示す値に置き換える。CPU
230は、それに応答して各レジスタ内のそれぞれの新
しい値を読み取り、各レジスタにベース(基準)・アド
レスを書き返し、そのエンティティをPCI I/Oま
たはメモリ・スペースにマッピングする。
【0168】特に、必要なメモリ・スペースの量を決定
してから、CPU230はCONTROL IO BA
SE ADDRESSをTPI CONTROL IO
BASE ADDRESSレジスタ840に書き込ん
で、TPIコントロール・レジスタ846の入出力スペ
ースへのアクセスを可能とし、CPU230はTPIC
ONTROL MEMORY BASE ADDRES
SをTPI CONTROL MEMORY BASE
ADDRESSレジスタ841に書き込んでTPIコ
ントロール・レジスタ846のメモリ・スペースへのア
クセスを可能とし、CPU230はTRANSMIT
LIST MEMORY BASEADDRESSをT
X CNTL LIST808bメモリ・ブロックのア
ドレスに対応するTRANSMIT LIST MEM
ORY BASE ADDRESSレジスタ842に書
き込み、CPU230は RECEIVE LISTM
EMORY BASE ADDRESSをRX CNT
L LIST808aのアドレスに対応するRECEI
VE LIST MEMORY BASEADDRES
Sレジスタ843に書き込み、そしてCPU230はP
ACKETDATA MEMORY BASE ADD
RESSをデータ・バッファ807のPCIアドレスに
対応するPACKET DATA MEMORY BA
SE ADDRESSレジスタ844に書き込む。
【0169】次のステップ856aにおいて、CPU2
30はPCIバス222上のそれぞれのTLAN226
に対して1つずつ問い合わせを行い、存在するTLAN
の数、およびそれらのTLANの対応するPCIアドレ
スを認識する。続くステップ856bで、CPU230
は問い合わせたTLAN226を既知で休止の状態に初
期化する。そしてCPU230は、次のステップ857
でTLAN226がそれ以上存在するかどうかを調べ、
もし存在すればステップ856aに戻って、次のTLA
N226に対して問い合わせを行い、PCIバス222
上のTLAN226がすべて初期化されるまでこれを繰
り返す。この時点では、TLAN0 MEMORY B
ASE ADDRESS、TLAN1 MEMORY
BASEADDRESS、TLAN2 MEMORY
BASE ADDRESS、およびTLAN3 MEM
ORY BASE ADDRESSの値は既知である。
【0170】次のステップ858において、CPU23
0は、図35に関して前述したように、TPIコントロ
ール・レジスタ846を適切な値に初期化する。これ
は、TLAN0 MEMORY BASE ADDRE
SS、TLAN1 MEMORY BASE ADDR
ESS、TLAN2 MEMORY BASE ADD
RESS、およびTLAN3 MEMORY BASE
ADDRESSの値を含む。続くステップ859で、
CPU230は、RECEIVE LIST MEMO
RY BASE ADDRESSをチャネル・パラメー
タ・レジスタ828bに書き込み、各TLAN226の
受信動作の始動を開始する。受信動作の開始はステップ
960で完了し、CPU230が各TLAN226のコ
マンド・レジスタ828aに対して書き込みを行う。こ
のように初期化されて、それぞれのTLAN226は受
信コントロール・リストを要求するために、PCIバス
222を要求して、直ちに受信動作を始める。
【0171】次に図37を参照する。該図は、各TLA
N226についてネットワーク・スイッチ102が行う
受信動作を図解するフローチャートである。動作は第1
ステップ861aで始まり、TLAN226は、PCI
アービタ811にPCIバス222を要求してこれを受
け取る。TLAN226は第2ステップ861bでRE
CEIVE LIST MEMORY BASE AD
DRESSをPCIバス222にアサートして受信コン
トロール・リストを要求し、TPI220が第3のステ
ップ861cで受信コントロール・リストをそのTLA
N226に供給する。受信コントロール・リストは、受
信したデータ・パケットをどこで、もしくはどのように
送信するかをTLAN 226に知らせるためのPAC
KETDATA MEMORY BASE ADDRE
SSを含む。次の第4のステップ8611で、TLAN
226はPCIバス222の制御権を放棄する。
【0172】TLAN226は、次のステップ862a
において、最終的にネットワーク112からデータ・パ
ケットを受信し、ステップ862bにおいて、PCIバ
ス222の制御権を要求してこれを受け取る。TLAN
226はステップ862cで、PACKET DATA
MEMORY BASE ADDRESSをPCIバ
ス222上のアドレスとして用い、1バーストのデータ
の書き込みを行い、一方TPI220は、ステップ86
2dにおいて、そのデータを選択されたTPIRX F
IFOに書き込む。書き込みバーストの完了と同時に、
TLAN226は次のステップ862eに移って、PC
Iバス222の制御権を放棄する。さらに次のステップ
865において、TLAN226は、最終DWORDの
書き込み動作で示されるべき、パケット・データの全体
のTPI RX FIFOに対する送出が完了したかど
うかをチェックし、まだであれば、動作はステップ86
2bへ戻り、TLAN226はもう一度PCIバス22
2を要求するために別のバースト・データを送る。
【0173】TLAN226は、データ・パケットの最
終部分を送り終わった後、最後の反復動作を行って、T
PI RX FIFOに対しパケットの終わりを知らせ
る。特にTLAN226は、TPI220のRX CN
TL LIST808a内のPACKET_SIZEフ
ィールド832aおよびCSTATフィールド832b
に対して、最後の1DWORDの転送を実行する。この
DWORDの転送によって、RX CNTL LIST
808aが完了したばかりのデータ・パケットのパケッ
トのサイズで更新され、CSTATフィールド832b
内のフレーム完了ビットが更新される。TPI220は
この書き込み動作をステップ865で検知して動作完了
を表す内部フラグをセットし、ステップ866におい
て、その適宜の状態をポート状態ロジック820に渡
す。動作はステップ861aへ戻って、別の受信コント
ロール・リストを要求する。
【0174】次に図38を参照する。該図は、TPI2
20からEPSM210へのHSB206を介した受信
データ転送動作を図解するフローチャートである。動作
は最初のステップ876で開始し、TPI220のポー
ト状態ロジック820が、TPI RX FIFOのい
ずれか1つに存在するTPIコントロール・レジスタ8
46で用意されたそれぞれのRBSIZEと比べて等し
いか大きい一定量のデータを検知するか、もしくは、T
LAN226によって表示されているそのポートに関す
るパケットの終わりEOPを検出する。
【0175】次のステップ877では、TPI220が
EPSM210のポーリングに応答し、各TPI RX
FIFO内に十分なデータが存在するか否かを表すP
KT_AVAIL[6]*信号を多重化の方式で適切に
アサートする。このポーリングは、独立して発生し、ク
ラリフィケーションの目的で含まれている。TPI22
0のいずれかのTPI RX FIFO内に十分なデー
タが存在することをPKT_AVAIL[6]*信号が
表示した場合、EPSM210の使用可能な受信バッフ
ァ内に十分なバッファ記憶スペースがあれば、EPSM
210はHSB206上でリード・サイクルを開始す
る。
【0176】TPI220のポート状態ロジック820
は、HSB206上のリード・サイクルを検知し、当該
のTPI RX FIFOを選択して次のステップ87
9でデータを供給する。それからTPI220は、ステ
ップ880において、EPSM210に対しHSB20
6を介してデータ・バーストを転送する。ステップ88
0でのデータ転送中、次のステップ881aで、ポート
状態ロジック820がHSB206を介した現在のデー
タ転送がパケットの始めであると判断すれば、データ転
送中にTPI220がステップ881bにおいてHSB
206上でSOP*信号をアサートする。同様に、ステ
ップ880でのデータ転送中、ステップ882aにおい
て、ポート状態ロジック820がHSB206を介した
現在のデータ転送がパケットの終わりであると判断すれ
ば、データ転送中にTPI220が、ステップ882b
において、HSB206上でEOP*信号をアサートす
る。ステップ882aまたは882bから、動作はステ
ップ876へ戻る。
【0177】次に図39を参照する。該図は、EPSM
210からTPI220へパケット・データを送るため
のHSB206を介した送信データ転送動作を図解する
フローチャートである。動作はステップ890で開始
し、TPI220のポート状態ロジック820がTPI
TX FIFOののいずれか1つに、対応するXBS
IZEと比較して等しいか大きいバッファ・スペースが
あることを検知する。動作は次のステップ891へ進
み、ポート状態ロジック820は、EPSM210のポ
ーリングに応答してBUF_AVAIL[6]*信号を
多重化の方式で適切にアサートし、対応するTPI T
X FIFO内に使用可能なバッファ・スペースがある
ことを表示する。前述したように、このポーリングは独
立して発生し、クラリフィケーションの目的で含まれて
いる。次のステップ892において、十分なスペースの
あるTPI TX FIFOに対してEPSM210が
転送するだけの十分なデータがあるとき、EPSM21
0は、HSB206上でそのTPI TX FIFOに
対応するポートへのライト・サイクルを開始する。続く
ステップ893では、TPI220のポート状態ロジッ
ク820がHSB206上のライト・サイクルを検知
し、指示されたポートに適当なTPI TX FIFO
を選択する。次のステップ894において、EPSM2
10はTPI220に対してHSB206を介し1バー
ストのデータを転送し、TPI220はそのデータをT
PI220内の対応するTPI TX FIFOに書き
込む。
【0178】ステップ895aにおいて、TPI220
がステップ894のデータ・バースト中にSOP*信号
がアサートされたことを検知した場合、そのパケット・
サイズを持っているデータの先頭のDWORDは、ステ
ップ895bにおいてPACKET SIZEタグ・レ
ジスタ819cに入れられる。ステップ896aにおい
て、TPI220が、ステップ894でのデータ・バー
スト中にEOP*信号がアサートされたことを検知すれ
ば、TPI220はステップ896でパケットの終わり
を表すTPI220内のフラグをセットする。ステップ
896aまたは896bから、動作はステップ890へ
戻る。
【0179】次に図40を参照する。該図は、各TLA
N226に関するネットワーク・スイッチ102の送信
動作を図解するフローチャートである。最初のステップ
867において、TPI220はTPI TX FIF
Oのいずれか1つの中にデータを検知し、それに応答し
てPCIバス222を要求し、PCIアービタ811か
らこれの制御権を受け取る。次のステップ868で、T
PI220は、対応するTLAN226のコマンド・レ
ジスタ828aに送信コマンドを書き込む。TPI22
0は、その後ステップ869で、PCIバス222の制
御権を放棄する。
【0180】続くステップ870aにおいて、送信コマ
ンドを受け取ったTLAN226は、PCIバス222
の制御権を要求し、PCIアービタ811からこれの制
御権を受け取り、TPI220に対して送信コントロー
ル・リストを要求する。次のステップ870bで、TP
I220はPCIバス222の制御権を持っているTL
AN226に送信コントロール・リストを供給し、TL
AN226はその送信コントロール・リストをその送信
コントロール・リスト・バッファ827bに入れる。続
くステップ870cにおいて、TLAN226はPCI
バス222の制御権を放棄するが、直ちにステップ87
0dでPCIバス222の制御権を再要求する。再びP
CIバス222の制御権を得ると、TLAN226はス
テップ871aでTPI220に対して1バーストのデ
ータを要求し、送信コントロール・リストの実行を開始
する。特に、TLAN226は、ステップ871aにお
いて、PCIバス222上でPACKET DATA
MEMORY BASEADDRESSをアサートす
る。続くステップ871bでは、TPI220がそれに
応答して、対応するTPI TX FIFOを選択して
イネーブルし、PCIバス222を介してTLAN22
6にデータを供給する。それぞれのデータ・バースト
後、TLAN226は、ステップ871cにおいてPC
Iバス222の制御権を放棄する。ステップ872aに
おいて、データのパケット全体の転送が完了していない
と判定すると、動作はステップ870cに戻り、TLA
N226は再びPCIバス222の制御権を要求し、最
終的に該制御権を取り戻す。
【0181】ステップ872aにおいて、パケットの送
信が完了していると判定すると、動作はステップ873
aに移り、TLAN226はTPI220に対してデー
タ転送完了の旨を書き込み、TPI220はそれに応答
して動作の完了を表示する。特に、TLAN226はT
X CNTL LIST808bのCSTATフィール
ド832bに最後の1DWORDの書き込みを行い、C
STATフィールド832b内のフレーム完了ビットを
セットする。さらに、TX CNTL LIST808
bのPACKET_SIZEフィールド832aが、T
PI220によってTLAN226に送信されるべきデ
ータ・パケットのサイズでロードされる。TLAN22
6は、書き込み動作を完了すると、ステップ873bで
PCIバス222を放棄する。ステップ873bから、
動作は次の送信動作に備えてステップ867に戻る。
【0182】CPU230による初期化後、TPI22
0はTLAN226と協調して動作するように構成され
ることによって、CPU230がネットワーク・スイッ
チ102の他の重要なタスクや機能を遂行することがで
きる点は、高い評価に値する。CPU230は、PCI
バス222上のデバイスのタイプや数を確認し、対応す
るアドレス値を割り当てて、PCIメモリおよび入出力
スペースを初期化する。CPU230は、TLAN22
6のアドレス値をTPI220に供給する。さらに、C
PU230はTPI220のアドレスの初期値をそれぞ
れのTLAN226に供給し、コマンドを挿入して動作
を起動する。TLAN226は、コントロール・リスト
を要求して該コントロール・リストを実行し、そのコン
トロール・リスト内のアドレスにあるメモリとの間で、
データの読み書きを行うように構成される。TPI22
0はまた、各コントロール・リストを更新し、それぞれ
を、要求している各TLAN226に供給するように構
成される。さらに、TPI220は、適宜のTLAN2
26にコマンドを書き込んで送信動作を開始するよう構
成され、また対応する送信コントロール・リストを後続
の要求に応じて供給するように構成される。このように
して、CPU230は初期化の実行後は、ネットワーク
・スイッチ102の他の機能を自由に遂行することがで
きる。
【0183】図41は、メモリ212の編成を図解する
ブロック図である。示した実施例では、メモリ212の
サイズは4〜16メガバイト(Mbyte)であるが、
このメモリ・サイズは可変であって、必要に応じた増減
が可能である。図41〜図47に示すメモリ・セクショ
ン・ブロックの幅、従って各メモリ・ラインの幅は、1
DWORDすなわち32ビットである。メモリ212
は、ハッシュ・メモリ・セクション902およびパケッ
ト・メモリ・セクション904という、2つの主なセク
ションに分けられる。ハッシュ・メモリ・セクション9
02はネットワーク・デバイス識別セクションとして機
能し、ネットワーク・スイッチ102に結合しているネ
ットワーク106、112内の1つまたは複数のネット
ワーク・デバイスを識別する。ハッシュ・メモリ・セク
ション902のサイズは、必要なデバイス、関連のアド
レスおよびエントリの数に基づいて、プログラミングす
ることができる。示した実施例において、ハッシュ・メ
モリ・セクション902は256キロバイト(Kbyt
e)のメモリで、最小8K(K=210=1,024)か
ら最大16Kまでのアドレスをサポートする。ハッシュ
・メモリ・セクション902は、メモリ212内のどこ
に置かれてもよく、示した実施例ではメモリ212の先
頭に位置している。パケット・メモリ・セクション90
4のサイズは、メモリ212の残りの領域、すなわちハ
ッシュ・メモリ・セクション902が使用していない部
分である。
【0184】図42は、メモリ212のハッシュ・メモ
リ・セクション902の編成を示すブロック図である。
ハッシュ・メモリ・セクション902は長さが256キ
ロバイトとして示されているが、ハッシュ・メモリ・セ
クションのサイズは固定、あるいは必要に応じてプログ
ラミング可能であることは理解されよう。ハッシュ・メ
モリ・セクション902は、一次的なハッシュ・エント
リのための1番目の128キロバイトの一次ハッシュ・
エントリ・セクション906、およびチェーン(連鎖)
・ハッシュ・エントリ用の2番目の128キロバイトの
チェーン・ハッシュ・エントリ・セクション908とい
う、2つの128キロバイトのセクションに分かれてい
る。セクション906、908の各々は、それぞれの長
さが16バイトの8Kのエントリを含む。
【0185】図43は、一次ハッシュ・エントリ・セク
ション906とチェーン・ハッシュ・エントリ・セクシ
ョン908の両方を含む、ハッシュ・メモリ・セクショ
ン902内の各エントリを表すハッシュ・テーブル・エ
ントリ910の編成の図解である。各エントリ910
は、ネットワーク・スイッチ102に結合しているネッ
トワーク106、112のネットワーク・デバイスの1
つに対応する。各一次エントリは1つのハッシュ・アド
レスに存在し、ハッシュ・アドレスはそのデバイスのM
ACアドレスを「ハッシュ」して決定される。特に、ネ
ットワーク・デバイスには、物理アドレスあるいはMA
Cアドレスとも呼ばれる48ビットのハードウェア・ア
ドレスが割り当てられ、このアドレスは製造過程におい
て、あるいはネットワークの設置中に、ジャンパまたは
スイッチを設定して各ネットワーク・デバイスに割り当
てられる一意の数値である。このMACアドレスの一部
は、米国電気電子技術者協会IEEE(Institu
te of Electrical and Elec
tronics Engineers)によって製造業
者に割り当てられたもので、その製造業者のすべての製
品に共通しており、ハードウェア・アドレスの他の一部
は、ハードウェアの製造業者が割り当てた一意の値であ
る。ハッシュ・テーブル・エントリ910最初の6バイ
ト、すなわちバイト5〜0には、その項目に関連するデ
バイスのMACアドレスが入っている。従ってネットワ
ーク・スイッチ102は、そのMACソース・アドレス
を含むデータ・パケットを送信する各ネットワーク・デ
バイスに、1つのハッシュ・テーブル・エントリを付加
する。
【0186】ネットワーク106、112内の各ネット
ワーク・デバイスから送信されるそれぞれのデータ・パ
ケットは、一般に送信元と受信先のMACアドレスを含
み、これらは両方とも、いくつかのアルゴリズムの1つ
に従ってハッシュされるものである。示した実施例にお
いては、各MACアドレスの2つの部分を論理的に結合
あるいは比較して対応するハッシュ・アドレスを算出す
る。各部分は13ビットから16ビットであり、排他的
論理和(XOR)のロジックを使用してビット単位の方
式で結合され、13から16ビットのハッシュ・アドレ
スを形成する。例えば、最初の16ビットのMACアド
レスMA[15:0]と、次の16ビットのMACアド
レスMA[31:16]とのビット単位の方式による論
理和が、ハッシュ・アドレスHA[15:0]となる。
ある実施例では、ハッシュされた結果の最初の13、1
4、15、または16ビットが、ハッシュ・アドレスH
Aとして使用される。あるいは、MACアドレスの最初
の13ビットのMA[12:0]を次の13ビットのM
A[25:13]とハッシュして、13ビットのハッシ
ュ・アドレスHA[12:0]を得る。もしくは、MA
Cアドレスの最初の14ビットのMA[13:0]を次
の14ビットのMA[27:14]とハッシュして、1
4ビットのハッシュ・アドレスHA[13:0]とする
など、以下同様に行われる。ハッシュ処理には多種多様
なアルゴリズムが知られており、当業者には既知のよう
に、アドレス・ビットの特定の組み合わせの結合に用い
られること、および本発明は何ら特定のハッシュ法に限
定されるものではないことは、理解されであろう。
【0187】ハッシュ・アドレスは、一次ハッシュ・エ
ントリ・セクション906内のそれぞれのハッシュ・エ
ントリの位置を特定するための実アドレス、またはオフ
セット・アドレスとして使用される。MACアドレスは
一意であるが、ハッシュ・アドレスの場合は、異なった
2つのMACアドレスが同じハッシュ・アドレスにハッ
シュする限りにおいて、一意である必要はない。チェー
ン・ハッシュ・エントリ・セクション908は、本明細
書で後に詳述するように、異なったデバイスの重複した
ハッシュ・アドレスを格納すべく用意されている。ハッ
シュ・アドレスでアクセスできる一次ハッシュ・エント
リ・セクション906と、一次ハッシュ・エントリ・セ
クション906の先頭エントリ内にあるリンク・アドレ
スでアクセス可能なチェーン・ハッシュ・エントリ・セ
クション908による編成により、少なくとも1つのブ
ランチ動作が節約できる。ポインタのリストを用いてテ
ーブル・エントリにアクセスするのではなく、メモリ2
12内の最初のエントリは1回のブランチ動作で検索さ
れ、次のエントリは2回目のブランチ動作で、というよ
うに以下同様である。このように、メモリ212の以上
のような編成によってアクセス1回につき少なくとも1
つのブランチ動作が節約できるため、ハッシュ・エント
リに対するアクセスの効率が向上する。
【0188】ハッシュテーブル・エントリ910の次の
バイト(6)には、デバイスが接続されている関連のポ
ート番号を識別する2進ポート番号(PortNum)
が入っており、ここでPORT0のポート番号はゼロ、
PORT1のポート番号は1、(CPU230の)PO
RT28のポート番号は28、というようになってい
る。次のバイト(7)は、制御およびエイジ情報バイト
(CONTROL/AGE)であり、エントリが有効で
あるかどうかを識別するバリッド・ビット(VALID
ENTRY)を含み、これがロジック1であればそのエ
ントリは有効、ロジック0であればその項目は有効でな
い、つまり空ビットであることを示す。CONTROL
/AGEバイトは、このデバイスに関する最後のソース
・アクセスからの経過時間を表す2進のエイジ数(AG
E)を含む。最後のソース・アクセスから予め決められ
た不使用の時間量が経過すれば、デバイスは老化してC
PU230によってハッシュ・エントリから削除され
る。経過時間はいくつかの方法の1つを用いて測られ、
その単位は秒かそれ以下、分、時、その他である。デバ
イスを老化とみなす不使用時間は、プログラミングが可
能である。他の実施例において、AGE数は特定のデバ
イスが「旧」であるかどうかを表すために用いられる1
つのビットであり、一定の経過時間あるいはそのような
要因で設定される。
【0189】次の4バイト(B:8)は、もし適用され
ていれば、ポートのグループを表す29ビットの仮想L
AN(VLAN)のビットマップ値を定義する。VLA
N値の各ビットはポートのそれぞれ1つに対応し、デバ
イスかポートがそのポートとグループ化されれば、セッ
トされる。従ってVLAN値は、その他のポートのう
ち、どのポートがデバイスとグループ化されたかを識別
する。これにより、ネットワーク106、112を任意
の組み合わせでグルーピプ化して、ネットワーク・スイ
ッチ102に結合された複数の異なったTLANを形成
することができる。例えば、最初の5ポートPORT0
〜PORT4が一緒になってグルーピングされれば、そ
れぞれのVLAN値は0000001Fhとなる。ここ
で、hは16進数を示す。PORT2に結合されている
1つのデバイスから送られたBCパケットは、PORT
0、PORT1、およびPORT3にリピートされ、ネ
ットワーク・スイッチ102のその他のすべてのポート
にはリピートされない。VLAN値が全部1か1FFF
FFFFhであれば、そのデバイスにグループ化が適用
されていないことを表している。1つのデバイスを複数
のグループに関連させられることに留意する必要があ
る。他の実施例においては、各デバイスが属するいくつ
かのVLANグループがあれば、それらの2つ以上を識
別するために1つのVLANフィールドを含むことがで
きる。
【0190】各ハッシュ・テーブル・エントリ910の
最後の4バイト(F:C)は、チェーン・ハッシュ・エ
ントリ・セクション908内で、もしあれば、同じハッ
シュ・アドレスを持った次のエントリを指示するリンク
・アドレス(LINK A[31:0]すなわちLIN
K ADDRESS)である。次のエントリは、チェー
ン・ハッシュ・エントリ・セクション908内で次の使
用可能なロケーションに格納されている。このように、
2つの異なったデバイスの2つのMACアドレスが同一
のハッシュ・アドレスにハッシュすれば、最初の、すな
わち「一次」エントリが一次ハッシュ・エントリ・セク
ション906に格納され、2番目のエントリがチェーン
・ハッシュ・エントリ・セクション908内に格納さ
れ、一次エントリのLINK ADDRESSが2番目
のエントリを指示する。別のMACアドレスが最初の2
つと同じハッシュ・アドレスをハッシュすれば、各追加
エントリはチェーン・ハッシュ・エントリ・セクション
908に格納され、LINKADDRESSによって連
続した順序で、一緒に連鎖される。従って、最初が2番
目を指示し、2番目が3番目を指示し、以下同様とな
る。それぞれのエントリは、ハッシュ・テーブル・エン
トリ910のフォーマットに従う。LINKADDRE
SSの形式は、適宜自由に定義することができる。LI
NK ADDRESSは一般に、メモリ212内のハッ
シュ・メモリ・セクション902を指示するベース・ア
ドレス・ポーション、およびハッシュ・メモリ・セクシ
ョン902内の実際のエントリへのオフセット・ポーシ
ョンを含む。下位のアドレス・ビットは、バイト整合の
ために必要に応じてゼロに設定する。各チェーン内の最
後のエントリは、LINK ADDRESSの一部をゼ
ロにセットして識別する。例えば、LINK ADDR
ESSのビット[31:28]をゼロにセットして、最
後のエントリを表す。
【0191】図44は、メモリ212のパケット・メモ
リ・セクション904の編成を示すブロック図である。
示した実施例において、メモリ212のパケット・メモ
リ・セクション904は複数の隣接した等しいサイズの
セクタ912として編成され、各セクタ912は、セク
タ・プレフィクス914と呼ばれるセクタ情報セクショ
ン、および1つまたは複数のパケット・データ・ブロッ
クを含むパケット・セクション916を含む。各セクタ
912は、設計を簡略化しオーバーヘッドを下げるた
め、メモリ212の機能を遂行するメモリ・デバイスの
ページ・サイズに対応して、そのサイズを2Kバイトに
することが望ましい。示した実施例において、FPM
DRAM SIMMは4Kバイトのページ・バウンダリ
(境界)で編成され、同期DRAM SIMMは2Kb
yteのページ・バウンダリで編成されている。従っ
て、2Kバイトのセクタ・サイズで、サポートされるタ
イプのメモリ・デバイスに十分である。セクタ912は
初期において空であるが、LINK ADDRESSと
一緒にチェーン化されて、空メモリ・セクタのFREE
POOL CHAIN(フリープール・チェーン)を形
成する。
【0192】ポート104、110のそれぞれから新し
い情報のパケットが受け取られると、1つまたは複数の
セクタ912がFREEPOOL CHAINから切り
離され、1ポートにつき1つのRECEIVE SEC
TOR CHAIN内で一緒にリンクされる。また、各
パケットは、同じまたは別のRECEIVE SECT
OR CHAIN内で他のパケットとリンクされ、1ポ
ートにつき1つのTRANMIT SECTOR CH
AIN形成する。このようにして、1つのポートのRE
CEIVE SECTOR CHAIN内のパケット
は、さらに別のポートのTRANMIT SECTOR
CHAINにも入れられる。セクタ912のパケット
・セクション916内のデータがすべて受信先のポート
へ送信されると、そのセクタは、そのRECEIVE
SECTOR CHAINから解放され、再びFREE
POOL CHAINに戻ってリンクされる。RECE
IVE SECTORおよびFREEPOOLチェーン
の機能は、本明細書で後に詳述する方式で、1つのセク
タから次のセクタへのリンク・アドレスあるいはポイン
タを用いて遂行される。
【0193】図45は、パケット・メモリ・セクション
904の各セクタ912の各セクタ・プレフィクス91
4の編成の図解である。セクタ・プレフィクス914
は、対応するセクタ912の情報を含み、さらに次のセ
クタ912があれば、それへのリンクとして機能する。
プレフィクスの情報部分は、セクタ912内のどこに入
っていてもよい点に留意されたい。最初のバイト(0)
は、そのときのセクタ912内のパケットまたはパケッ
ト片の数を表す2進のセクタ・パケット・カウント(S
ecPktCnt)を定義する。セクタ・パケット・カ
ウントは、そのセクタにパケット・データが格納される
と増分され、受信先のポートによる送信のためにデータ
が読み出されると減分される。セクタ・パケット・カウ
ントSecPktCntがゼロに減分されたとき、その
セクタがRECEIVE SECTOR CHAINの
最後にあるものでなければ、該セクタは解放されてFR
EEPOOL CHAINに戻る。次のバイト(1)
は、受信したパケットの送信元ポートを示すセクタ・ソ
ース値(SecSource)である。この値は、その
セクタが解放されてFREEPOOL CHAINに戻
るとき、当該受信ポート・セクタ・カクント(RxSe
cCnt)を識別して減分するために必要である。次の
2つのバイト(3:2)は、リザーブすなわち未使用と
なっている。
【0194】それぞれのセクタ・プレフィクス914内
の次の4バイトは、対応するRECEIVE SECT
OR CHAINまたはFREEPOOL CHAIN
内の次のセクタへのネクスト・リンク・アドレス(Ne
xtSecLink)である。同一のリンク・アドレス
が両方の目的に使用されているが、異なったリンク・ア
ドレスを用いてもよい。示した実施例において、Nex
tSecLinkアドレスは32ビットで、ベース(基
準)およびオフセットの部分から成る。下位の“n”個
のビットは、NextSecLinkのセクタ・サイズ
に応じた整合のために、ゼロにセットしてもよい。整数
“n”は、4Kバイトのセクタでは12、2Kバイトの
セクタでは11、11Kバイトのセクタでは10、そし
て512Kバイトのセクタでは9である。示した実施例
においては、nは2Kバイトのセクタに11、などとな
っている。このようにして、ポート104、110から
1つまたは複数のパケットが受け取られると、そのポー
トによって受信されたその1つまたは複数のパケットを
格納すべく、セクタ912のRECEIVE SECT
OR CHAINが1つ割り当てられる。複数のセクタ
912は、そのチェーン内の各セクタ912のセクタ・
プレフィクス914内のNextSecLinkアドレ
スを用いて、チェーン化の方式で一緒にリンクされる。
パケット・データは、各RECEIVE SECTOR
CHAIN内のそれぞれのセクタ912のパケット・
セクション916内に順に格納される。1つのパケット
のパケット・データは、RECEIVE SECTOR
CHAIN内のセクタ・バウンダリを越えてもよいと
いう点に留意する必要がある。セクタ・プレフィクス9
14の最後の8バイト(15:8)は、リザーブすなわ
ち未使用となっている。
【0195】図46は、パケット・セクション916内
の各パケット・データ・ブロックを表す例示的なパケッ
ト・データ・ブロック917の図である。パケット・デ
ータ・ブロック917は、パケット・ブロック・ヘッダ
918およびパケット・データ・セクション920とい
う2つの部分に分かれている。パケット・ブロック・ヘ
ッダ918は、MCB404によって各パケットの前に
付加されてパケット・データ・ブロック917を形成す
るのが望ましい。パケット・ブロック・ヘッダ918の
最初の2バイト(1:0)は、パケットの長さをバイト
数で定義する15ビットの2進パケット長(PktLe
ngth)値、およびCTモードのパケットがポートの
停動(stall)のためメモリ212へ転送されたと
きにセットされる1ビットの中間(ミッド)パケットC
T値(MidPktCT)を形成する。MCB404
は、TLAN226のポートPORT24とPORT2
7、およびCPU230のポートPORT28へ送信す
るとき、PktLengthを含むこの最初のDWOR
Dをパケットに付加する。パケット・ブロック・ヘッダ
918の次のバイト(2)は、パケットのソース・ポー
トすなわち送信元ポート(SourcePort)番号
を識別する。これは、ソース・アドレスに関するポート
番号を識別するための8ビットで2進のポートID番号
である。送信元ポートは、そのパケットが格納されてい
る特定のRECEIVE SECTORCHAINによ
っても識別される。次のバイト(4)は、宛先ポートす
なわち受信先ポート(DestPort)番号を識別す
る。これは、SourcePort値の場合と同様に、
受信先のポート番号を識別するための8ビットで2進の
ポートID番号である。受信先ポートは、そのパケット
が属する特定のTRANMIT PACKET CHA
INによっても識別される。
【0196】パケット・ブロック・ヘッダ918の4バ
イト(11:8)は、TRANMIT PACKET
CHAIN内の次のデータ、またはパケット・データ・
ブロック917への32ビットのネクスト・リンク・ア
ドレス(NextTxLink)を定義する。送信パケ
ット・カウント(TxPktCnt)がゼロまで減分さ
れたとき、TRANMIT PACKET CHAIN
の終わりが表示される。NextTxLinkアドレス
の下位ビットA0は、次のパケットがブロードキャスト
であるか否かを示すBCパケット・ビット(NextP
ktBC)として使用される。NextPktBC=1
であれば、次のパケットは後述するブロードキャストの
形式であり、もしNextPktBC=0であれば、次
のパケットは非ブロードキャストである。NextTx
Linkアドレスの次の下位ビットA1は、次のパケッ
トがSnFであるか否かを同様に表示するSnFパケッ
ト・ビット(NextPktSnF)として使用され
る。NextTxLinkアドレスの下位半バイト(4
ビット)は、その半バイトの実際の値にかかわらず、バ
イト整合の目的にゼロと想定してもよいことに留意され
たい。従って、例えばNextTxLinkアドレスが
読み取られるとき、ビットA[3:0]が実際はNex
tPktBC=1のような値であっても、これを無視し
てゼロと想定することができる。これにより、これらの
ビットは代替用途に使用することができる。示した実施
例においては、下位ビットA[3:0]がゼロと想定さ
れるように、データ構造が16バイト整合となってい
る。
【0197】示した実施例においては、パケット・デー
タ・セクション920がパケット・ブロック・ヘッダ9
18の直後に置かれ、パケット・ヘッダ内でデータフィ
ールドの長さが定義される。しかし、示した実施例にお
ける各セクタの特定の序列や各値の特定の位置などは多
少恣意的であって例示の域を出ないものであり、従って
本発明の範囲を越えない限りにおいて、編成は必要に応
じて任意である。
【0198】先に述べたように、パケットは、ポートP
ORT0〜PORT28の各々から検索され、セクタ9
12の対応する受信セクタ・チェーン(RECEIVE
SECTOR CHAIN)に格納される。
【0199】受信セクタ・チェーンは、ポート当たり1
つ対応して設けられている。図48示されるように、第
1の受信セクタ・チェーン930がPORT0に対して
示され、ここで第1のセクタ931のセクタ・プレフィ
ックス914におけるNextSecLinkを用い
て、セクタ931が別のセクタ932にリンクされる。
必要に応じて、セクタ・プレフィックス914における
リンク・アドレスを用いて、更に他のセクタがリンクさ
れる。また、第2の受信セクタ・チェーン940がPO
RT1に対して示され、このポートで、第1のセクタ9
41のセクタ・プレフィックス914におけるNext
SecLinkを用いて、セクタ941が別のセクタ9
42にリンクされる。あるポートで受取られた各パケッ
トごとに、パケット・ブロック・ヘッダ918が、対応
する受信セクタ・チェーンのその時のセクタ(現在セク
タ)912のパケット・セクション916において前に
受取られたパケット・データ・ブロック917の直後に
置かれ、パケット・ブロック・ヘッダ918に、そのパ
ケット・データ・セクション920が後続する。現在セ
クタ912のパケット・セクション916がパケット・
データ・ブロック917を格納中に一杯になると、別の
セクタ912がフリープール・チェーン(FREEPO
OL CHAIN)から割付けられ、当該ポートに対す
る受信セクタ・チェーンリンクされる。このように、ポ
ートから受取ったパケット・データ・ブロック917
は、当該ポートに関して対応する受信セクタ・チェーン
内に連続的に配置される。また、セクタ912のパケッ
ト・セクションは、パケット全体および(または)パケ
ットの部分を含むことができる。
【0200】したがって、図48に示されるように、ポ
ートPORT0で受取られたパケット・データ・ブロッ
ク934、935および936が、セクタ931、93
2内に配置される。パケット・データ・ブロック935
がセクタ931、932に跨がることに注目されたい。
同様に、ポートPORT1で受取られたパケット・デー
タ・ブロック944および945が、図示のように、セ
クタ941、942内に置かれ、パケット・データ・ブ
ロック945がセクタ941、942に跨がっている。
【0201】各パケットはまた、各宛先ポートに対する
パケットの送信パケット・チェーン(TRANSMIT
PACKET CHAIN)と関連させられ、該ポー
トでは、これらのパケットが、NextSecLink
アドレスを用いて、一緒にリンクされる。各送信パケッ
ト・チェーンにおけるパケットは一般に、ネットワーク
・スイッチ102により受取られる時間に基いて順序付
けられ、その結果、関連する宛先ポートへ送られる時、
この順序が維持される。例えば、図48に示されるよう
に、パケット・データ・ブロック934、944がポー
トPORT10から送られべきであり、そしてパケット
・データ・ブロック934がパケット・データ・ブロッ
ク944の直前に送られるべきならば、パケット・デー
タ・ブロック934のパケット・ブロック・ヘッダ91
8のNextTxLinkアドレスが、パケット・デー
タ・ブロック944を指示する。パケット・データ・ブ
ロック944のパケット・ブロック・ヘッダ918のN
extTxLinkアドレスは、次に送られるべきパケ
ット・データ・ブロックを指示する、、、の如くであ
る。伝送の実際の順序は、1つのパケットが送信パケッ
ト・チェーンへリンクされる時に決定される。CTモー
ド・パケットは、このパケットが受取られる時の初めに
リンクされ、SnFモード・パケットは、パケット全体
が格納された後にリンクされる。中間パケット暫定CT
モード・パケットは、適切な順序付けを保証するため、
対応する送信パケット・チェーンの前にリンクされる。
【0202】図47は、正規(通常)のパケット・ブロ
ック・ヘッダ918を置換する、BC(ブロードキャス
ト)パケットに対して用いられる128バイトのパケッ
ト・ヘッダ922を示すブロック図である。BCパケッ
トにおいては、NextPktBC値が前のパケットに
セットされて現在パケットがBCパケットであることを
示す。各送信パケット・チェーンが、伝送されるBCパ
ケットを含む全てのポートに対して維持されるべきであ
る。従って、BCパケット・ヘッダ922は、0〜28
が番号が付された各ポート(ポート104、110及び
CPU230を含む)ごとに、4バイトのリンク・アド
レス( Port# NextTxLink)を含み、各
NextTxLinkアドレスが、リストにおける場所
(ポート番号Port#)により識別される対応ポート
と関連する送信パケット・チェーンにおける次のパケッ
トを指示する。このように、NextTxLinkアド
レスは、バイト(11:8)で始まり、バイト(12
3:120)で終る。第1のNextTxLinkアド
レス・エントリ(11:8)は、第1のポートPORT
0に対するメモリ212における次のパケットと対応
し、第2のエントリ(バイト15:12)は、第2のポ
ートPORT1に対するメモリ212における次のパケ
ットに対するNextTxLinkアドレスである。こ
のように、CPU230に関する次のパケットに対する
NextTxLinkである最後のエントリ(バイト1
23:120)まで続いている。各BCリンク・アドレ
スもまた、各送信パケット・チェーンにおける次のパケ
ットがBCパケットか否かを示す次のBCパケット(N
extPktBC)ビットと、各送信パケット・チェー
ンにおける次のパケットがSnFパケットか否かを示す
次のSnFパケット(NextPktSnF)ビットと
を含んでいる。
【0203】BCパケット・ヘッダ922の最初の4バ
イト(3:0)は、正規のパケット・ブロック・ヘッダ
918の最後の4バイトに類似し、MidPktct値
がBCパケットに対してゼロであることを除いて、Pk
tLength、MidPktCT、SourcePo
rt(ソース・ポート)およびDestPort(宛先
ポート)の値を含んでいる。BCパケット・ヘッダ92
2の次の4バイト(7:4)は、バイト28:0の各々
がBCパケット・データを受取るポートに対応するブロ
ードキャスト・ポート・ビットマップ(BC Port
s)である。各ビットは、パケットが対応するポートへ送
られる時にクリアされる。全てのBC ポート・ビットが
クリアされた時、先に述べたSecPktCntカウン
トもまた減分される。
【0204】図49には、各々が同じBCパケット10
10を包含する幾つかの送信パケット・リンクを示すブ
ロック図が例示される。この例では、ポート1、5、1
1および12が、VLAN関数などを用いてグループ化
され、その結果、ポート12の如き1つのソース・ポー
ト(例えば、ポート12)で受取られるBCパケット1
010のデータが当該グループにおける残りのポート
(ポート1、5および11)に複写される。4つの送信
パケット・チェーン1002、1004、1006およ
び1008が、それぞれポート1、5、11および12
に対して示される。送信パケット・チェーン1002、
1004および1006は、幾つかの一般的な非ブロー
ドキャスト・パケット1000をBCパケット1010
とリンクする。ポート12がソース・ポートであるか
ら、BCパケット1010はポート12に送られず、従
ってこのポートは送信パケット・チェーン1008には
含まれない。BCパケット1010はBCパケット・ヘ
ッダ1012を含み、このヘッダは、ポート1の送信パ
ケット・チェーン1002における次のパケット100
0を指示するリンク・アドレス1016と、ポート5の
送信パケット・チェーン1004における次のパケット
1000を指示するリンク・アドレス1018と、ポー
ト11の送信パケット・チェーン1006における次の
パケット1000を指示するリンク・アドレス1020
とを含む、各ポートに1つずつリンク・アドレスのリス
トを含んでいる。このように、送信パケット・チェーン
1002、1004および1006の各々が保持され
る。各送信パケット・チェーンが1つ以上のBCパケッ
トを含み、これが必要に応じて、非連続的あるいは連続
的に現れることも判る。
【0205】図50は、1組のMCBパケット制御レジ
スタ1102を示すブロック図であり、これらのレジス
タはSRAM650内に備えられて、ネットワーク・ス
イッチ102のCPU230を含む29個のポート10
4、110の各々に対して同様に備えられている。CP
U230は、スパニング・ツリー処理のためのブリッジ
・プロトコル・データ・ユニット(BPDU)の送受な
どのある目的のため、「ポート(PORT28)」とし
て扱われる。各MCBパケット制御レジスタ1102
は、受信セクション1104と送信セクション1106
とを含んでいる。受信セクション1104では、28ビ
ットの受信パケット・ヘッダのベース・ポインタ(Rx
BasePtr)が、当該ポートに対する受信セクタ・
チェーンの初めである対応ポートに対応するその時の受
信パケット・ヘッダのベース(基底)に対するポインタ
である。メモリ212について先に述べたように、SR
AM650に対するデータ構造は、16バイトが割り当
てられ、全てのポインタの最下位ビットA[3:0]が
ゼロと仮定される。28ビットのそのときの受信ポイン
タ(RxCurPtr)は、当該ポートの受信セクタ・
チェーンに関するその時のデータ記憶場所に対するポイ
ンタである。RxCurPtr値の下位4ビットは、受
信BCパケット表示ビット(RxBC)と、「パケット
開始(SOP)」フラグとして用いられる受信伝送進行
中(RxIP)ビットと、その時のパケットがセクター
境界と交差するかどうかを示す多重セクタ・パケット
(MultiSecPkt)ビット1と、送信リンクが
パケットの終りで更新されることを示すSnFビット0
とを含む、制御ビットである。受信セクション1104
は更に、MidパケットCTビット(MidCT)と、
RxCurPtrまでのバイトで受取られるその時のパ
ケットの長さに等しい16ビットの受信パケット長(R
xPktLn)値と、対応するポートによりその時使用
中であるセクタの数を示す16ビットの受信ポート・セ
クタ・カウント(RxSecCnt)と、各ポートまた
は受信セクタ・チェーンに対して許容されるCPUプロ
グラムされたセクタ最大数を識別する16ビットの受取
りセクタ閾値(RxSecThreshold)値とを
含んでいる。RxSecThreshold値は、該R
xSecThresholdをRxSecCntと比較
することにより、バックプレシャが当該ポートに対して
加えられるべきかどうかを決定するために用いられる。
バックプレシャがディスエーブル(不動作)状態にされ
ると、RxSecThreshold値を用いて、対応
するポートで受取られる更なるパケットをドロップする
(捨てる)。
【0206】受信セクション1104は更に、対応する
ポートに対する送信パケット・チェーンにおける最後の
パケットのベースを示す28ビットのポインタである送
信キュー・ポインタ(EndOfTxQPtr)の終り
を含んでいる。最後に、送信キューBC(EOQ
C)の終りが、対応するポートに対する送信パケット・
チェーンにおける最後のパケットに対するブロードキャ
スト・フォーマットを示すようにセットされる。
【0207】送信セクション1106は、対応するポー
トに送信パケット・チェーンに関する情報を提供する。
送信ベース・ポインタ(TxBasePtr)は、その
時の伝送パケット・ヘッダのベースに対する28ビット
のポインタであり、別の28ビットの送信の現在ポイン
タ(TxCurPtr)が、対応するポートに対するそ
の時のデータ検索場所を指示する。送信ブロードキャス
ト(TxBC)ビットが、パケット・ヘッダがブロード
キャスト・フォーマットであることを示すようにセット
される。送信進行中(TxIP)ビットが論理値1にセ
ットされると、それにより、送信がその時ポートに対し
て進行中であり、SOPを示す。8ビットの送信ソース
・ポート(TxSrcPort)番号は、SOPにおけ
るパケット・ヘッダから読出されるその時の送信パケッ
トのソース・ポート番号ある。16ビット送信パケット
長(TxPktLn)値は、その時の送信パケットに対
して送られるべき残りのバイトと等しい。あるパケット
が伝送されるとき、パケットのパケット・ブロック・ヘ
ッダ918におけるPktLength値が送信セクシ
ョン1106におけるTxPktLn値へ複写され、次
いでTxPktLn値は、パケットが伝送される時、T
Xコントローラ606によって減分される。TxPkt
Ln減分されてゼロになると、EPSM210が、パケ
ットの終りを示す対応するEOP*信号を生成する。1
6ビットの最大パケット数(TxPktThresho
ld)値は、各ポートに対してキューさせられるCPU
プログラムされたパケットの最大数に等しい。CPU2
30を宛て先とするパケットがTxPktThresh
oldまたはRxPktThresholdの制限を受
けないことが判る。最後に、16ビットの送信パケット
・カウント(TxPktCnt)は、対応するポートに
対してその時にキューされるパケットの数に等しい。
【0208】図51は、SRAM650に置かれたフリ
ープール・パケット制御レジスタ1108を示すブロッ
ク図であり、これらのレジスタは、レジスタのフリープ
ール・チェーン(FREEPOOL CHAIN)と関
連されている。各フリープール・レジスタ1108は、
フリープール・チェーンにおける次の自由なフリー・セ
クタに対するポインタ(NextFreeSecPt
r)と、フリープール・チェーンにおける最後のセクタ
に対するポインタ(LastSecCnt)と、その時
利用可能なフリー・セクタの数に等しいフリー・セクタ
・カウント(FreeSecCnt)と、メモリ・オー
バーフロー・フラグ(MOF)がバックプレシャまたは
フィルタリング(パケットの抜き取り)の目的のために
セットされる前に許容される、CPUプログラムされた
セクタの最小数に等しいフリー・セクタ閾値(Free
SecThreshold)数と、その時にメモリ21
2にあるBCパケット数に等しいBCパケット・カウン
ト(BC PktCnt)と、メモリ212に許容され
るBCパケットのCPUプログラムされた最大数に等し
いBCパケット閾値(BC PktThreshol
d)カウントとを含んでいる。
【0209】図52は、メモリ212へのデータ・パケ
ットの受取りのため、およびCT動作モードにおけるデ
ータ・パケットの送信のための、ネットワーク・スイッ
チ102の動作をフロー図で示している。データは通
常、リアルタイムであるいは全体的にパケットの形態に
おけるネットワーク・スイッチ102のポートPORT
0〜PORT27により送受信され、セグメント10
8、14に跨がって送られている間は、細分割されるこ
とはない。しかし、ネットワーク・スイッチ102内の
FIFOは一般に、全パケットを格納するのに充分なほ
どには大きくない。このため、パケット・データは、ネ
ットワーク・スイッチ102内で、パケットの一部ある
いはパケットの細分割の形態で、1つのFIFOから別
のFIFOへ送られる。
【0210】第1のステップ1200において、EPS
M210は、信号PKT AVAILm*の表示によ
り、ポート104、110の一方により受取られる新た
なパケットを検出する。次のステップ1202におい
て、パケットの初めの部分即ちヘッダがソース・ポート
から検索されて、ハッシュ・リクエスト・ロジック53
2へ読込まれる。ヘッダは、宛先MACアドレスおよび
ソースMACアドレスを含んでいる。ハッシュ・リクエ
スト・ロジック532は、宛先アドレスおよびソース・
アドレスとソース・ポート番号を、HASH DA
A[15:0]信号中に与え、MCB404へHASH
REQ*信号をアサートする。MCB404は、それ
に応答して、パケットに対する適切な動作を決定するた
めのハッシング手順を呼出し、ソース・アドレスおよび
宛先アドレスがハッシュされて、このアドレスのいずれ
かがそれ以前にメモリ212に格納されたかどうかを判
定する。MCB404は、HCB402に対して充分な
情報が得られる場合に、信号HASH DONE*をア
サートして、パケットに対してとるべき適切な動作を判
定する。図52に示されるフロー図は、宛先アドレスお
よびソース・アドレスに関する2つの主要部分を含んで
おり、これについては後述する。図示した実施例では、
宛先アドレスが最初にハッシュされ、ソース・アドレス
がその後に続くが、これらの手順は同時に実行しても良
いし、所望の順番で実行してもよい。
【0211】宛先アドレスの場合は、処理はステップ1
204へ進み、ハッシング手順が呼出されて宛先アドレ
スをハッシュする。信号HASH DONE*に応答し
て動作がステップ1204からステップ1208へ進ん
で、ユニキャストとBCパケットの双方に対するスレッ
ショルド・コンディション(閾値条件)を調べる。ステ
ップ1208において、関連するスレッショルド・コン
ディションを新たなパケットが違反するかどうかが判定
される。特に、FreeSecCnt数がFreeSe
cThreshold数と等しいかあるいはこれより小
さければ、パケットをメモリ212に格納するのに充分
な余地がないことである。また、RxSecCntがソ
ース・ポートに対するRxSecThresholdよ
り大きいかあるいはこれに等しければ、ネットワーク・
スイッチ102が、パケットをドロップする(捨てる)
ことを決定する。BCパケットの場合は、BC Pkt
Threshold数が、BCパケットの実際数である
BC PktCnt数に比較されて、BCパケットの最
大数が既に受取られたかどうか判定する。ユニキャスト
・パケットの場合は、TxSecThreshold数
が、宛先ポートに対するTxSecCntに比較され
る。
【0212】ステップ1208からステップ1205へ
進み、ここでHCB402が、HASH STATUS
[1:0]信号から、またスレッショルド・コンディシ
ョンのどれかの比較から、パケットをドロップすべきか
どうか判定する。このパケットは、先に述べたような様
々な他の理由、例えば、ソース・ポートと宛先ポートが
等しいなどの理由からドロップされる。パケットがドロ
ップされるべきであれば、動作はステップ1205から
ステップ1207へ進み、ここでパケットがドロップさ
れるかあるいはバックプレシャ(BC)が加えられる。
条件FreeSecThresholdまたはRxSe
cThresholdが違反され、かつバックプレシャ
がイネーブル状態にされソース・ポートがハーフ2重モ
ードで動作しているならば、バックプレシャが提供され
る。さもなければ、パケットがドロップされる。バック
プレシャにおいては、EPSM210がHSB206に
おいてバックプレシャ・サイクルを実行して、ソース・
ポートに送出側装置に対するジャミング・シーケンスを
アサートさせる。ABORT OUT*信号により示さ
れるように、バックプレシャ指令がソース・ポートによ
り受入れられなければ、この指令がジャミング・シーケ
ンスのアサートに遅すぎて提供されたことであり、パケ
ットがドロップされる。また、BC PktThres
hold条件が抵触される唯一つのスレッショルド・コ
ンディションであっても、パケットがドロップされる。
ネットワーク・スイッチ102がドロップされるパケッ
トの残部を受取り続けるが、パケットは格納されず、あ
るいは別のポートへ送られない。動作は、ステップ12
07からステップ1214へ進み、ここでMCBコンフ
ィギュレーション・レジスタ448における適切な統計
レジスタが、ステップ1207で行われる動作に基いて
更新される。当該統計レジスタは、オーバーフロー条件
によりパケットがドロップされたかバックプレシャされ
たかを示す。例えば、ポート当たりの「ドロップされた
パケット−バッファなし」カウントがソース・ポートに
対して増分されて、パケットがオーバーフロー条件によ
り捨てられるか、あるいは、パケットがバックプレシャ
されるならば、「バックプレシャされたパケット」カウ
ントが増分されることを示す。
【0213】パケットがドロップされなければ、動作は
ステップ1205からステップ1206へ進み、ここで
宛先アドレス(DA)がハッシュ・メモリ・セクション
902で見出されたかどうか、またパケットがブロード
キャストされるべきかどうか判定される。宛先アドレス
が認識されず従って宛先ポートが未知であるか、あるい
はパケット内のグループ・ビットがセットされるなら
ば、パケットがブロードキャストされる。宛先アドレス
が見出されなければ、あるいは、パケットがステップ1
206で判定されるようなBCパケットであるならば、
パケットがブロードキャストされて動作がステップ12
10へ進み、EPSM210のMCB404が、必要に
応じて、新たなパケットに対するメモリ212内に別の
セクタを割付ける。現在のすなわちその時のセクタがパ
ケットに対して充分な余地を有するならば、新たなセク
タは不要である。次いで、動作はステップ1216へ進
み、パケットの残りがバースト単位でEPSM210を
介してバッファ記憶され、そしてメモリ212へ送られ
る。ポート設定の如何を問わず、BCパケットがSnF
モードで処理され、ここで全パケットが伝送される前に
メモリ212に格納される。ステップ1216から、動
作がステップ1217へ進んで、パケット・エラーによ
るパケットの受取り中に信号ABORT OUT*がア
サートされたことを判定する。ポートPORT1〜PO
RT27により、FIFOオーバーラン、ラン・パケッ
ト、オーバーサイズ・パケット、パケットが不正FCS
を持つこと(フレーム検査シーケンス)の検出、あるい
はPLLエラーが検知されたかのような、幾つかのエラ
ー条件が調べられる。パケット・エラーがステップ12
17において検出されるならば、動作はステップ121
9へ進み、ここでパケットがメモリ212から除去され
る。
【0214】パケット・エラーがステップ1217で検
出されなければ、動作はステップ1218へ進み、ここ
でBCパケットのパケット・ヘッダ922におけるブロ
ードキャスト・ポート・ビット・マップBC Port
sが、BCパケットが送られるべきアクティブなポート
で更新される。次のポート、即ち、ソース・ポートか、
ソース・ポートがCPU230であるならば前送(FO
RWARDING)状態ではない任意のポートか、ある
いは、ソース・ポートがCPU230であるならばディ
スエーブル状態の任意のポート、および対応するTxP
ktThresholdより大きいかこれと等しいTx
PktCnt数を持つポートを除いて、BCパケットが
ポート104、110の全てへ送られる。VLANがイ
ネーブル状態にあるならば、ハッシュ・テーブル・エン
トリ910におけるVLANビット・マップ値もまた調
べられ、これが更に、ポートをVLANグループにおけ
るアクティブ状態の関連ポートに限定する。また、パケ
ットが未知の宛先アドレスによりブロードキャストされ
るミスBCパケットが、MissBCBitMapレジ
スタに従って前送される。パケットがいずれのポートに
も送られないように、得られたBC Portのビット
マップが全てゼロであるならば、この判定がステップ1
205で行われて当該パケットがステップ1207でド
ロップされ、あるいはパケットはステップ1219でメ
モリ212から除去されることが判る。
【0215】動作はステップ1218からステップ12
20へ進み、得られたBC Portのビット・マップ
における各ポートに対する送信パケット・チェーンへ、
パケットが付加される。特に、パケット・ヘッダ922
におけるBC Portビット・マップで示される各ポ
ートに対するNextTxLinkリンク・アドレスの
各々が更新されて、BCパケットを適切なポートの送信
パケット・チェーンに挿入する。他の全てのレジスタ、
あるいはネットワーク・スイッチ102におけるカウン
ト値および統計数値も、例えばBC PktCnt数の
ように同様に然るべく更新される。
【0216】再びステップ1206に戻り、宛先アドレ
スが見出されたがパケットがBCパケットでなければ、
動作はステップ1222へ進み、ここでハッシュ・キャ
ッシュ・テーブル603が更新される。次いで、動作は
次のステップ1224へ進み、ここでソース・ポートあ
るいは宛先ポートのいずれかがSnFモードに対してセ
ットされるかどうか質問される。両方のポートがCTモ
ードにセットされ、等しいポート速度および宛先ポート
に対するTBUS設定がソース・ポートに対するTBU
S設定に等しいなどの、他のCT条件が満たされるなら
ば、動作はステップ1225へ進み、ここで宛先ポート
への経路が使用中であるかどうかが質問される。ステッ
プ1224で決定されるようにSnFモードが指示され
るか、あるいはCTモードに指示されるが暫定CTモー
ドが開始されるように宛先ポートがステップ1225で
決定されるように使用中であるならば、動作はステップ
1226へ進み、ここでEPSM210のMCB404
が、必要に応じて、新たなパケットに対してメモリ21
2内のスペースを割付ける。ステップ1226から、動
作はステップ1228へ進み、ここでパケットの残りの
部分がEPSM210へ検索され、メモリ212へ送ら
れる。ステップ1217に類似するステップ1229で
示されるように、パケットの受取り中にパケット・エラ
ーが生じるならば、動作はステップ1219へ進んでメ
モリ212からこのパケットを除去する。さもなけれ
ば、動作は次のステップ1230へ進み、ここでパケッ
トは宛先ポートの送信パケット・チェーンに付加され、
適切なリンク・アドレス、カウントおよびチェーンが更
新される。
【0217】再びステップ1225において、宛先ポー
トの経路が使用中でなければ、動作はステップ1231
へ進み、ここでソース・ポートおよび宛先ポートが、そ
の時のパケットに対する正規のCT動作に関して指定さ
れる。正規のCTモードでは、各々の残りのパケット部
分がメモリ212へは送られず、その代わり、CTBU
F(CTバッファ)528を介して宛先ポートへバッフ
ァ記憶される。パケットのヘッダは、EPSM210の
RX FIFOから直接宛先ポートへ送られる。次のス
テップ1232は、CTバッファ528へのデータ・パ
ケット部分の受信及び宛先ポートへのパケット部分の転
送とを示している。CT動作の間、次のステップ123
3は、宛先ポートまたは経路が使用中かあるいは利用で
きないかどうかを質問する。ステップ1233でのこの
質問は、データが主アービタ512によりCTバッファ
528に受取られる前に行われる。宛先ポートが更なる
データに対してまだ利用可能である間、動作はステップ
1234へループして、全パケットが宛先ポートへ送ら
れたかどうかを判定し、送られなかったならば、再びス
テップ1232へ戻り更なるデータを伝送する。全パケ
ットがステップ1234で判定されたようにCTモード
で転送された時、このパケットに対する動作が完了す
る。
【0218】ステップ1233で宛先ポートが使用中ま
たは利用できないと判定すると、動作はステップ123
5へ進んで、メモリ212にパケットの残りの部分を受
取って、中間パケットの暫定CTモードを開始する。中
間パケット暫定CTモードでは、パケットの残りの部分
がメモリ212にバッファ記憶される。パケットが伝送
の途中にあったため、メモリ212へ送られる残りのパ
ケット・データはこのポートに対する送信パケット・チ
ェーンの初めに置かれて、次のステップ1236で示さ
れる適切なパケット順序付けを保証する。正規のCT動
作モードにおけるように、中間パケット暫定CTモード
の間にメモリ212へ供給された各データ部分は、受取
り後すぐに宛先ポートへの転送のために利用可能であ
る。
【0219】再びステップ1202において、動作はソ
ース・アドレスをハッシュするためステップ1240へ
進む。次いで、ステップ1242へ進み、ソース・アド
レスがハッシュ・メモリ・セクション902で見出され
たかどうか、かつパケット内のグループ(GROUP)
ビットがセットされたかどうかが判定される。ソース・
アドレスが見出され、GROUPビットがセットされな
かったならば、動作はステップ1244へ進み、ハッシ
ュ・メモリ・セクション902のAGEフィールドがA
GE情報で更新される。例えば、AGE値はゼロにセッ
トされる。ソースMACアドレスおよびソース・ポート
番号が前のエントリとは対応しないことが判る。このこ
とは、例えば、ネットワークまたはデータ装置が1つの
ポートから他のポートへ移される場合に生じる。この情
報は、ステップ1244において比較され、更新され
る。
【0220】ステップ1242において、ソース・アド
レスが見出されず、あるいはGROUPビットがセット
されたならば、ステップ1246へ進み、CPU230
に対して割込みが生成され、CPUが以降のステップを
実行する。次のステップ1248において、CPU23
0は、メモリ212のハッシュ・メモリ・セクション9
02にハッシュ・テーブル・エントリを割り当て、ある
いは新たなソース・ポート・アドレスに関するハッシュ
・キャッシュ・テーブル603のハッシュ・テーブル・
エントリ、あるいはリースト・レーセントリ・ユーズド
(最低使用頻度:LRU)セクションを割付ける。次い
で、ステップ1250へ進み、割付けられたハッシュ・
エントリにおけるソースMACアドレス、ソース・ポー
ト番号およびAGE情報等が更新される。
【0221】図53は、メモリ212から1つ以上の宛
先ポートへデータを送信するためのネットワーク・スイ
ッチ102の一般的動作を示すフロー図である。この送
信手順は一般に、以下に述べるように、SnFモードお
よび中間パケット暫定CT動作モードに適用し、BCパ
ケットに適用する。第1のステップ1260は一般に、
先に述べた手順に従って、パケット・データがメモリ2
12において待ち行列に入れられる(キューされる)こ
とを表わす。次のステップ1262へ進み、MCB40
4がHCB402に対してパケット・データが得られる
ことを示す。中間パケット・データ暫定CTモードにお
いては、この表示は、宛先ポートへ送るためにデータが
直ちに得られるので、データの最初のデワード(DWO
RD)がメモリ212に格納するためMCB404へ送
られると、直ちに与えられる。しかし、SnFモードの
場合は、この表示は、全パケットが送信に先立ち格納さ
れるので、データ・パケットに対するデータの最後のデ
ワードがMCB404へ送られた後にのみ与えられる。
パケット・データが送信のために利用可能であると、動
作はステップ1264へ進み、伝送されるパケット・デ
ータを受取るために利用可能なバッファ・スペースを宛
先ポートが有するかどうかが判定される。ステップ12
64は一般に、先に述べたように、対応する信号BUF
AVAILm*に応答するポート104、110のそ
れぞれをポーリングするため、EPSM210により行
われるポーリング手順を表わす。宛先ポートがパケット
・データの受取りに利用可能なバッファ・スペースを持
つことを示すまで、動作はステップ1264に止まる。
【0222】ステップ1264において、送信先ポート
すなわち宛先ポートがバッファ・スペースを持つと判定
すると、動作はステップ1266へ進み、HCB402
が宛先ポートに対するデータの転送を要求する。そし
て、ステップ1268において、データのバーストがメ
モリ212から宛先ポートへ送られる。次のステップ1
270へ進み、メモリ212におけるデータの全てが宛
先ポートへ送られたかどうかが判定される。送られなか
ったならば、ステップ1264へ戻って、宛先ポートが
データの別の転送のため利用可能なより多くのバッファ
・スペースを有することになるまで、待機する。最終的
には、SnFモードおよび暫定CTモードの場合におけ
る全データ・パケット、あるいは中間パケット・データ
暫定CTモードの場合における残りのパケット・データ
が、転送され、これはステップ1270で判定される。
【0223】動作はステップ1272へ進み、パケット
がBCパケットであるかないか判定される。パケットが
BCパケットであるならば、動作はステップ1274へ
進んで、全パケットが全てのアクティブ・ポートへ転送
されたかどうか判定する。転送されなかったならば、そ
の時のパケットに対しては、動作が完了する。この手順
は、パケットが全てのアクティブ・ポートへ転送される
まで、各ポートに対して再び実行される。各BCパケッ
トに対する各宛先ポートに関して、ステップ1264〜
ステップ1270が行われることを、ステップ1272
と1274が表わしていることが判る。このように、全
BCデータ・パケットは、送信のため全てのアクティブ
な宛先ポートへ送られるまで、メモリ212に保持され
る。当該パケットがBCパケットでなければ、あるいは
ステップ1274で示されるようにBCパケットに対す
る全てのアクティブ・ポートへ全パケットが送られた後
は、動作はステップ1276へ進み、BCパケットを保
持するメモリ212におけるバッファ・スペースが解放
される。特に、パケット・データを保持するセクター
は、メモリ212内のフリー・メモリ・セクタのフリー
プール・チェーン(FREEPOOL CHAIN)へ
戻される。
【0224】図54には、EPSM210のハッシュ・
ルックアップ動作を示すフロー図が示される。図54の
フロー図におけるステップは、MCB404によって行
われる。初期ステップ1302は、信号HASH RE
Q*のアサートにより示されるハッシュ・リクエストを
検出する。HCB402は、新たなパケットとしてのパ
ケットのヘッダを識別し、ソース・アドレスおよび宛先
アドレス、およびソース・ポート番号を決定し、MCB
404のハッシュ・コントローラ602に対する信号H
ASH DA SA[15:0]を表明する。次に、M
CB404は、ソース・アドレスおよび宛先MACアド
レス、およびソース・ポート番号を検索して、ハッシン
グ手順を実施し、これにより、パケットに対する適切な
動作を決定する。
【0225】MCB404は一般に、各パケットに関し
て、ソース・ポート番号、ソース・アドレスおよび宛先
MACアドレスに基づく、4つの動作の1つを行う。特
に、ハッシュ・コントローラ602は、信号HASH
STATUS[1:0]を決定し、これにより、パケッ
トを宛先ポートへ送るようにFORWARD PKTを
セットし、パケットをドロップして無視するようにDR
OP PKTをセットし、宛先MACアドレスが新規で
ありかつ未知であってパケットが他の全てのポートにブ
ロードキャストすなわち送信される場合にMISS
Cをセットし、又は、パケットがサブセットの関連ポー
トに複写されて送信されるべき場合にGROUP BC
をセットする。ステップ1302からステップ1304
へ進んで、以下の式(1)により、パケットを捨てるか
どうかを決定する。
【0226】
【数1】 DropPkt:=(SrcState=DIS)or(!FilterHit&SrcState!=FWD) (1) 但し、SrcStateは、ソース・ポートのスパニン
グ・ツリー状態を識別するものであり、HilterH
itは、ソースMACアドレスが予め定めた範囲内にあ
る場合にアサートされるビットであり、間投詞「!」記
号は論理的否定を示し、記号「!=」は関数「に不等」
を示し、記号「:=」は関数「に等」を示す。各ポート
は、HSBコンフィギュレーション・レジスタ448に
提供され、学習(LRN)、前送(FWD)、ブロック
ド(BLK)、リスニング(LST)およびディスエー
ブル状態(DIS)を含む、IEEE仕様802.1の
スパニング・ツリー関数により決定されるような、5つ
の状態の1つを持つ。図示した実施例においては、BL
K状態とLST状態は同じものとして処理される。この
ため、ソース・ポートがディスエーブル状態にされる
か、あるいはソースMACアドレスが予め定めたフィル
タ範囲内になく、かつソース・ポートの状態が前送され
なければ、パケットはドロップすなわち捨てられる。
【0227】DropPktがステップ1304で死ん
であると判定されると、ステップ1305へ進み、パケ
ットを無視するかさもなければ捨てるようHCB402
に命令するように、信号HASH STATUS[1:
0]が00b=DROP PKTに等しくセットされ
る。DropPktが偽であるならば、ステップ130
6へ進み、FilterHitビットが調べられて、ソ
ースMACアドレスが予め定めた範囲内に含まれるかど
うかを判定する。この予め定めた範囲は、CPU230
をソースとし、あるいは宛先とするパケットを識別し、
CPU230へ送られるブリッジ・プロトコル・ユニッ
ト(BPDU)を含む。FilterHitビットがス
テップ1306で死んであると判定されると、ステップ
1308へ進んで、宛先ポート(DstPrt)を識別
する。パケットがCPU230からであれば(SrcP
rt=CPU)、宛先ポートは、前の動作においてCP
U230によりセットされる値FltrPrtに等しく
セットされる(DstPrt:=FltrPrt)。さ
もなければ、パケットはCPU230へ送られる(Ds
tPrt:=PORT28)。次いで、ステップ130
8からステップ1310へ進んで、以下の式(2)に基
づいて、パケットを前送する(FwdPkt)かどうか
を判定する。
【0228】
【数2】 FwdPkt: =(DstPrt!=SrcPrt)&((DstState=FWD)or(SrcPrt=CPU&DstState!=DIS)) (2) 但し、式(2)において、DstStateは、宛先ポ
ート(DstPrt)のスパニング・ツリー状態であ
り、「&」は論理的AND演算を示す。このように、宛
先ポートおよびソース・ポートが同じでなく、かつ宛先
ポートの状態が前送であるならば、あるいはソース・ポ
ートがCPU230であり宛先ポートの状態がディスエ
ーブル状態でなければ、パケットは宛先ポートへ送られ
る。ハッシュ・ルックアップがなくとも、宛先ポート
は、CPU230であるか、あるいはCPU230によ
りFltrPrtにより判定されるので、既知である。
FltrPrtが偽であれば、ステップ1305へ進ん
でパケットを捨てる。さもなければ、FltrPrtが
真の場合、ステップ1312へ進み、HASH STA
TUS[1:0]信号が11b=FORWARD PK
Tに等しくセットされ、パケットが宛先ポートへ送られ
るべきことを示す。また、HASH DSTPRT
[4:0]信号はDstPrt宛先ポート番号と関連さ
せられる。
【0229】ステップ1306において、ソース・アド
レスが予め定めた範囲内になく、従ってフィルタされた
MACアドレス外であるならば、動作はステップ131
4へ進んで、パケットがBCパケットであるか否かを示
す、受取ったパケット内のGROUPビットを調べる。
GROUPが偽(GROUPビット=論理値0)であれ
ば、ステップ1316へ進んで、宛先MACアドレス
(DA)のハッシュ・ルックアップを行う。MACアド
レスは、2つの異なるセット(組)のビットをアドレス
から取り、そしてこの2つのセットを一緒にビット単位
で論理的に組合わせて比較することにより、ハッシュさ
れる。これにより、先に述べたように、対応する13〜
16ビットのハッシュ・アドレスを形成する。MACア
ドレスの任意のビットをハッシング手順の目的のために
選定することができる。図55のフロー図に関連して以
下に述べる別個のルーチンまたは関数により、実際のル
ップアップ手順が行われる。
【0230】ステップ1316におけるルックアップ手
順が、HITと呼ばれるビットを含む1つ以上の値を必
要に応じて返送し、これが宛先アドレスに対するDA
Hitとして、あるいはソース・アドレスに対するSA
Hitとして返送される。HITビットは、ハッシュ
されたアドレスがハッシュ・メモリ・セクション902
に見出されたかどうかを判定する。ステップ1316か
らステップ1318へ進み、ここでDA Hit値が調
べられてアドレスが見出されたか否かを判定する。この
アドレスは、宛先MACアドレスと対応する装置がパケ
ットを前に送信した場合に、メモリ212中に見出され
る。DA Hitが真ならば、動作はステップ1310
へ進んで、先に述べたようにパケットを前送するかどう
かを判定する。ハッシュ・アドレスが見出されずDA
Hitが偽であるならば、ステップ1320へ進み、こ
こでHASH STATUS[1:0]信号が10b=
MISS BCにセットされて、新たなMACアドレス
を示す。宛先装置と関連するポート番号が未知であるの
で、パケットは他の全てのアクティブ・ポート(VLA
Nにより定性化されるポート、および他の論理的ポー
ト)へ、ブロードキャストされて、パケットが適切な宛
先装置へ送られることを保証する。最終的には、宛先装
置は、ソース・アドレスと同じMACアドレスを含む新
たなパケットに答する。この時、ネットワーク・スイッ
チ102は、MACアドレスをポートとポート番号とに
関連付けて、これに対応してハッシュ・メモリ・セクシ
ョン902を更新する。ステップ1314において、G
ROUPビットが真(即ち、論理値1)であるならば、
動作はステップ1322へ進み、ここでHASH ST
ATUS[1:0]信号が01b=GROUP BCに
セットされ、パケットが他の全てのポート、あるいはV
LAN関数により指定されるポートのグループへブロー
ドキャストされることを示す。
【0231】ステップ1305、1312、1320あ
るいは1322のいずれかから、ステップ1324へ進
んで、SrcLookUp値を調べることにより、ソー
スMACアドレスについてハッシュ・メモリ・セクショ
ン902を検索するかどうかを判定する。SrcLoo
kUp値は、以下の式(3)に従って決定される。
【0232】
【数3】 SrcLookUp:=(SrcState=(LRNorFWD))&SrcPrt!=CPU (3) 式(3)は、ソース・ポートが学習モードあるいは前送
モードにあり、かつ該ソース・ポートがCPU230で
ない場合は、MACソース・アドレスが探索されること
を示している。SrcLookUpがアサートされて真
であるとステップ1324で判定されると、動作はステ
ップ1326へ進み、2つの値VLANおよびSecu
rePortが調べられる。VLANモードのどれかが
イネーブル状態にされるならばVLANビットは真であ
るが、それ以外は偽である。ソース・ポートが確実であ
ればSecurePortが真である、すなわちアサー
トされ、ここでは新たなアドレスはハッシュ・メモリ・
セクション902へは付加されず、未知のソース・アド
レスからのパケットが捨てられる。VLANが真でなく
ポートが確実でなければ、動作はステップ1328へ進
み、HASH DONE*信号がアサートされて、一時
的にアサート状態を保つ。この時、信号HASH_ST
ATUSおよびHASH_DSTPRTが、HCB40
2により捕捉される。
【0233】ステップ1326において、VLANが真
であるか、あるいはSecurePortが真であると
判定された場合、あるいはステップ1328が行われた
後は、ソース・アドレス・ルックアップの後まで、HA
SH_DONE*信号のアサートが遅延される。次いで
ステップ1330へ進み、宛先MACアドレスに関して
先に述べたと類似の方法で、ハッシュ・ルックアップが
ソースMACアドレス(SA)に関して行われる。ステ
ップ1330において、対応する装置に関するハッシュ
・アドレスが見出されるならば、値SA_Hitが真に
戻される。ステップ1330からステップ1332へ進
み、ここで値Src_Hitが調べられる。Src_H
itは、以下の式(4)によりSA_Hitに関連付け
られる。
【0234】
【数4】 Src_Hit:=SA_Hit&(HshPrt=SrcPort) (4) 式(4)において、ソース・ヒットが生じ(SA_Hi
tが真)、かつハッシュ・メモリ・セクション902に
おけるエントリで見出されたポート番号がパケットが受
取られた実際のソース・ポート番号と等しければ、Sr
c_Hitは真である。格納されたソース・ポート番号
が実際のソース・ポート番号と等しくなければ、以下に
述べるように、装置は別のポートへ移されたことであ
り、ハッシュ・メモリ・セクション902はCPU23
0により更新される。Src_Hitが真であれば、動
作はステップ1334へ進み、VLANが偽ならば、H
ASH_DONE*信号がアサートされる。次いで、動
作はステップ1336へ進み、装置のAGE番号がゼロ
であるか判定される。AGEがゼロに等しくなければ、
AGE番号はステップ1338においてゼロに等しくセ
ットされる。ステップ1336でAGE番号がゼロであ
ると判定された場合、あるいはステップ1338におい
てゼロにセットされた後、ステップ1340へ進み、V
LANビットが再び調べられる。VLANが真であれ
ば、ステップ1342へ進み、ここでハッシュVLAN
ルーチンすなわち手順が調べられて、関連するポートを
ハッシュ・テーブル・エントリ910における対応する
VLANビット・マップ値から決定されたものとして、
識別する。ステップ1340でVLANが真でないと判
定すると、動作はステップ1344へ進み、既にアサー
トされていない場合は、HASH_DONE*信号があ
る期間だけアサートすなわちパルスが発生され、次に否
定される。ステップ1344の終了により、この手順の
動作が完了する。HASH_DONE*信号の否定信号
により、HCB402のハッシュ・ルックアップを終了
する。
【0235】ステップ1332において、Src_Hi
tが偽ならば、ステップ1350へ進み、LearnD
isPrt値を調べることにより、ソース・ポートがデ
ィスエーブル状態にされたことを学習しているかどうか
判定される。もし学習していなければ、ステップ135
2へ進み、パケットの新たな情報が適切なレジスタへロ
ードされ、CPU230が割込みされる。CPU230
は、これに応答して、ハッシュ・メモリ・セクション9
02を新たなハッシュ・テーブル・エントリ910で更
新する。ソース・ポートがステップ1350でディスエ
ーブル状態にされたことを学習していると判定した場
合、あるいはハッシュ・メモリ・セクション902がス
テップ1352で更新された後は、ステップ1354へ
進んで、SecurePortビットを調べる。Sec
urePortが真ならば、動作はステップ1356へ
進み、ここでHASH_STATUS[1:0]信号が
00b=DROP_PKTへ変更される。この場合、ア
ドレスが新しく、かつ新アドレスが保全ポートでは許容
されないので、新たなパケットがドロップされる。ま
た、必要に応じて、セキュリティ(保全)違反割込みが
CPU230に対してアサートされて、セキュリティ違
反に応答して適切な処置を行う。ステップ1356から
ステップ1344へ進む。再びステップ1354におい
て、SecurePortビットが非保全ポートを示す
偽であるならば、ステップ1340へ進む。ステップ1
324において、SrcLookUpが偽であれば、直
接ステップ1344へ進む。
【0236】図55には、ハッシュ・メモリ・セクショ
ン902におけるハッシュ・テーブル・エントリ910
の全てを探索するためのハッシュ・ルックアップ手順を
示すフロー図が示されている。最初のステップ1402
において、アドレス値Aがステップ1316または13
30から送られる受取られたハッシュ・アドレスに等し
くセットされる。動作はステップ1404へ進み、ここ
で受取られたハッシュ・アドレスと関連する主ハッシュ
・エントリ・セクション906内のハッシュ・テーブル
・エントリ910が読出される。動作はステップ140
6へ進み、VALIDENTRY(エントリ有効)ビッ
トが読出され、新たなパケットのMACアドレスが格納
されたMACアドレスと比較される。エントリが有効で
あり正確な整合がMACアドレス間に生じるならば、動
作はステップ1408へ進み、HITビットが真にセッ
トされてハッシュ・ビットを示し、動作は呼出し手順即
ちルーチンへ戻る。エントリは有効でないか、あるいは
アドレスの整合が起きなかったならば、ステップ141
0へ進み、ここでVALIDENTRYビットと、エン
トリのEOC(チェーン終り)値が調べられる。エント
リが有効でないか、あるいはEOCに到達しなければ、
動作はHITビットを偽として戻る。さもなければ、ハ
ッシュ・アドレスが、ステップ1412においてハッシ
ュ・エントリ内のリンク・アドレス(バイトF:C)に
等しくセットされ、ステップ1404へ戻って、チェー
ン化されたハッシュ・エントリ・セクション908内の
次のチェーン化エントリを試みる。MACアドレス整合
による有効なエントリが見出されるまでか、あるいはE
OC値に遭遇するまで、動作はステップ1404、14
06、1410および1412間をループする。
【0237】以下のテーブル(1)は、本発明により実
現された特定の実施形態におけるCPU230の入出力
(I/O)スペース・レジスタを示している。テーブル
(1)は、単に例示的に示したものであり、また、該例
においては、レジスタが特殊な実施例中か又はそれ以外
で実現されるか、若しくは同様なレジスタが異なる呼称
で呼ばれている。
【0238】
【表1】
【0239】
【表2】
【0240】
【表3】
【0241】
【表4】
【0242】
【表5】
【0243】
【表6】
【0244】
【表7】
【0245】
【表8】
【0246】
【表9】
【0247】
【表10】
【0248】
【表11】
【0249】
【表12】
【0250】
【表13】
【0251】
【表14】
【0252】
【表15】
【0253】
【表16】
【0254】
【表17】
【0255】
【表18】
【0256】
【表19】
【0257】
【表20】
【0258】
【表21】
【0259】
【表22】
【0260】テーブル1の(1)〜(77)の説明 (1)CPU230に対する任意の割り込み(1又は複
数)のソース。これらの割り込みはCPU230が割り
込みをアクノレッジ(確認)するときに該CPU230
によってクリアされる (2)CPU230に対するマスクされるべき割り込み (3)このレジスタはCPU230によって書き込まれ
る (4)このレジスタはEPSM210によって書き込ま
れる (5)このレジスタはシフト・レジスタ・インターフェ
ースを通じてSIMM上の情報を含む (6)CPU230に対するマスクされている任意の割
り込み(1又は複数)のソース (7)CPU230に対する任意の割り込み(1又は複
数)のソース。これらの割り込みはCPU230が割り
込みをアクノレッジ(確認)するときに該CPU230
によってクリアされる (8)CPU230に対するマスクされるべき割り込み (9)このレジスタに書き込むCPU230は、適当な
ポートの統計リード(読み出し)を発行するようにQC
インターフェースに知らせる (10)このレジスタはEPSM210によって書き込ま
れる (11)このレジスタは、書き込まりれたときに、FIF
O内容をフラッシュ(消去)し、EOPを受信するまで
フラッシュを続ける (12)このレジスタは一般的セットアップ・パラメータ
を保持する (13)これはポート速度ビットマップ・レジスタであ
る。ポートに対するビットがリセットされたとき、これ
は10mhzポートであり、ビットがセットされたと
き、これは100mhzポートである。即ち、0=10
mhz、1=100mhzである。パワーアップ・デフ
ォールトは正しい値を含むべきである (14)これはポート・タイプ・ビットマップ・レジスタ
である。ポートに対するビットがリセットされたとき、
これはQCポートであり、ビットがセットされたとき、
これはTLANポートである。即ち、0=QC、1=T
LANである。パワーアップ・デフォールトは正しい値
を含むべきである (15)これは、CPU230からのメモリ転送に対する
アドレス及びコントロールを含むレジスタである (16)このリード・オンリ・レジスタはEPSM210
に対する改訂番号(revision number)を供給する (17)このレジスタは、HCB402使用率(ユーティ
リゼーション)について観察されるべきポート及びモー
ド・ビットを選択する。その可能なモードは、TX、R
X及びその両方である (18)HCB402ユーティリゼーションは、選択され
たポートがバス上にある平均時間である (19)このレジスタは、どのソース・ポートがCTを行
えるか及びどのものがSnFを行うことのみできるかを
示すための、ポートに対するビットマップである (20)このレジスタは、どの宛て先ポートがCTを行え
るか及びどのものがSnFを行うことのみできるかを示
すための、ポートに対するビットマップである (21)このレジスタは指定されたポートに対するエクス
ファーサイズ(xfersize)を含む (22)このレジスタは指定されたポートに対するエクス
ファーサイズ(xfersize)を含む (23)このレジスタは指定されたポートに対するエクス
ファーサイズ(xfersize)を含む (24)このレジスタは指定されたポートに対するエクス
ファーサイズ(xfersize)を含む (25)このレジスタはアービトレーション(仲裁)・モ
ード値を含む。使用可能なアービトレーション・モード
はFCFS、ウエイト(重み付け)、又はラウンド・ロ
ビン(round robin)である (26)HCB402のサブセクションに対する種々のコ
ントロール (27)ディスエーブルされるべきポートのビットマップ (28)このレジスタは、ポート状態ビットマップ・レジ
スタにおいて示されたポートがどの状態に変更すべきか
を教える 状態値 条件 00b ディスエーブルされる 01b ブロックされる/ 聞く 10b 学習する 11b 送る (29)このレジスタは、どのポートがその状態を変化さ
せるかを示す。このレジスタはプログラム・ポート状態
レジスタと組になって、ポート状態レジスタを満たす (30)各ポートに対しての2ビットが、以下のように、
アービタにポートがどの状態にあるかを教える 状態値 条件 00b ディスエーブルされる 01b ブロックされる/ 聞く 10b 学習する 11b 送る (31)各ポートに対しての2ビットが、以下のように、
アービタにポートがどの状態にあるかを教える 状態値 条件 00b ディスエーブルされる 01b ブロックされる/ 聞く 10b 学習する 11b 送る (32)宛て先ミス・ブロードキャスト(放送)・ビット
マップ (33)メモリ・バス214モニタ・コントロールは、メ
モリ・バス214上で行われる監視(モニタリング)を
(それが行われる場合に)セットアップするために用い
られる (34)メモリ・バス214モニタ・スレッショルドは、
アラームをセットするため及びアラームをクリアするた
めに用いられる (35)メモリ・バス214ユーティリゼーション・レジ
スタ (36)メモリ・スレッショルド・カウンタによるメモリ
・スペースの欠如によってドロップされる(落とされ
る)パケットの数。このレジスタはリード(読み出し)
されるときにクリアされる (37)ブロードキャスト・メモリ・スペースの欠如によ
ってドロップされるブロードキャスト・パケットの数 (38)ハッシュ・テーブルのベースに対するアドレス。
ハッシュ・テーブルのサイズはレジスタの定義で説明し
たものである (39)受信セクタ・スレッショルド・オーバーフローの
セット又はクリアの何れかによってCPU230に割り
込みを行ったポートのビットマップ (40)送信パケット・スレッショルド・オーバーフロー
のセット又はクリアの何れかによってCPU230に割
り込みを行ったポートのビットマップ (41)ハッシュ・テーブル内を見たときにミスしたアド
レス (42)残りのハッシュ・アドレス及びソース・ポート (43)受信メモリ・セクタ・オーバーフローによってド
ロップされたパケットの数。このレジスタは読み出され
たときにクリアされる (44)送信メモリ・セクタ・オーバーフローによってド
ロップされたパケットの数。このレジスタは読み出され
たときにクリアされる (45)このレジスタは、受信オーバーフローによってパ
ケットをドロップしたポートのビットマップである (46)このレジスタは、送信オーバーフローによってパ
ケットをドロップしたポートのビットマップである (47)学習(ラーニング、learning)ディスエーブル・
ポート・ビットマップ (48)セキュア(機密保護、secure)・ポート・ビット
マップ (49)このレジスタはポート・セキュリティによってド
ロップされたパケットの合計を含む (50)このレジスタは、セキュリティによってパケット
をドロップしたポートのビットマップである (51)このレジスタはメモリ・タイプ、速度その他を含
む (52)RASがメモリの4Mブロックをイネーブルにす
る (53)リフレッシュ・カウンタがメモリ・コントローラ
に対してリフレッシュ信号を生成する (54)このレジスタはアドレス・フィルタリング及びア
ドレスのマスキングをイネーブルにする (55)このレジスタはアドレス・フィルタリングに対す
るマスク・ビットを含む (56)このレジスタはアドレス・フィルタリングに対す
るマスク・ビットを含む (57)このレジスタはアドレス・フィルタ0のバイト0
−3を含む (58)このレジスタはアドレス・フィルタ0のバイト4
−5を含む (59)このレジスタはアドレス・フィルタ1のバイト0
−3を含む (60)このレジスタはアドレス・フィルタ1のバイト4
−5を含む (61)このレジスタはアドレス・フィルタ2のバイト0
−3を含む (62)このレジスタはアドレス・フィルタ2のバイト4
−5を含む (63)このレジスタはアドレス・フィルタ3のバイト0
−3を含む (64)このレジスタはアドレス・フィルタ3のバイト4
−5を含む (65)このレジスタはMCB404において開始された
任意の割り込みのソースを含む (66)このレジスタはMCB404において開始された
任意の割り込みに対するマスキングを含む (67)このレジスタは、マスクされたMCB404にお
いて開始された任意の割り込みのソースを含む (68)このレジスタはプロミスキュアス(無差別、prom
iscuous)・モードで観察されているポートの値を保持
する。また、RXトラフィック及びTXトラフィックが
現れるポートを含む (69)これはカッド・カスケード・レジスタに対するオ
フセットである。これはQC0に対するものである (70)これはカッド・カスケード・レジスタに対するオ
フセットである。これはQC1に対するものである (71)これはカッド・カスケード・レジスタに対するオ
フセットである。これはQC2に対するものである (72)これはカッド・カスケード・レジスタに対するオ
フセットである。これはQC3に対するものである (73)これはカッド・カスケード・レジスタに対するオ
フセットである。これはQC4に対するものである (74)これはカッド・カスケード・レジスタに対するオ
フセットである。これはQC5に対するものである (75)これは、カッド・カスケードから読み出されたば
かりの統計バッファに対するアドレス・スペースである (76)これは、パケット・データをHCB402へ送信
するため/パケット・データをHCB402から受信す
るための、FIFOのアドレスである (77)これは、データをMCB404へ送信するため/
データをMCB404から受信するための、FIFOの
アドレスである テーブル(1)のレジスタを明瞭にするため、下記のレ
ジスタ定義を提供する。
【0261】
【表23】割込み情報 EPSM210からCPU230に対する3つの割込み
ピン;CPUINTHASHL、CPUINTPKTL
およびCPUINTLがある。CPUINTHASHL
は、ハッシュ・ミスが生じた時にのみ代入され、(オフ
セット 'hocにおける)ハッシュ・アドレス・ロー・レ
ジスタを読出すことによりクリアされる。CPUINT
PKTLは、パケット・インターフェースFIFOで利
用可能なパケットがある時か、あるいはパケット・イン
ターフェースFIFOが更に多くのパケット・データを
送るためクリアされるバッファ・スペースを有するなら
ば、代入される。CPUINTLは、4つのあり得るソ
ースに対して代入され;これらソースの1つがMCB4
04における8つのあり得るソースを指す。割込みソー
スは、これらソースがマスクされなければ、CPU23
0を割込みさせる。CPU230が割込みされることな
く割込みソースの情報を利用可能にさせるため、ポーリ
ング機構が利用可能である。割込みソースのマスキング
が割込みをCPU230からブロックさせるが、情報は
いぜんとしてポーリング・ソース・レジスタで利用可能
である。例えば、要求される統計数字が利用可能である
時にSTAT_RDYマスク・ビットがセットされるな
らば、割込みは生じないが、CPU230はいぜんとし
て統計数字がポーリング・レジスタの読出しにより読出
す用意があると判定することができる。注:割込みソー
ス・レジスタはこれを読出すことによりクリアされる
が、ポーリング・ソース・レジスタはこれをクリアする
ため書込まれなければならない。 割込みソース1レジスタ:(オフセット='h00)C
PU230へ送られるCPUINTL割込みのソース。
このレジスタは、EPSM210により更新され、その
時割込みがCPU230へ送出される。CPU230が
このレジスタに達すると内容がクリアされる。1ビット
における1の値は、割込みが生じたことを表示する。デ
フォルト=32'h0000_0000。 ビット0(W/R) MCB_INTは、割込みがMC
B404に生じたことおよび割込みを更に理解するため
MCB割込みソース・レジスタが読出される必要がある
ことをCPU230に通知する割込みである。デフォル
トは0。 ビット1(W/R) MEM_RDYは、要求されたメ
モリ・データがバッファ・スペースで利用可能であるこ
とをCPU230に通知する割込みである。デフォルト
は0。 ビット2(W/R) ABORT_PKTは、ABOR
T_IN*信号がPCB406へ表明されたことをCP
U230に通知する割込みである。デフォルトは0。 ビット3(W/R) STAT_RDYは、要求された
統計数字情報がPCB406のバッファ・スペースにお
いて用意があることをCPU230に通知する割込みで
ある。デフォルトは0。 ビット4〜31(RO) 予約(RESERVED)
常に0として読出す。 割込みソース・レジスタに対するpcbregsインタ
ーフェース McbInt(in) MCBからの入力、ビット0を
判別 MemRdy(in) メモリFIFOからの入力、ビ
ット1を判別 AbortPktInt(in) HCB402インタ
ーフェースからの入力、ビット4を判別 StatRdyInt(in) QCインターフェース
からの入力、ビット5を判別 CpuInt_(out) 割込みが生じたことを示す
CPU230への信号。 割込みマスク1レジスタ (オフセット='h04)C
PU230によりマスクされる割込み。任意のビットに
おける1の値が、割込みがマスクされることを示す。デ
フォルト=32’h0000_00lf ビット0(W/R) CPU230に対するMcbIn
t割込みをマスク。デフォルトは1 ビット1(W/R) CPU230に対するMemRd
y割込みをマスク。デフォルトは1 ビット2(W/R) CPU230に対するAbort
PktInt割込みをマスク。デフォルトは1 ビット3(W/R) CPU230に対するStatR
dyInt割込みをマスク。デフォルトは1 ビット4(W/R) CPU230に対するHashM
iss割込みをマスクデフォルトは1 ビット5〜31(RO) 予約。常に0として読出し。 割込みソース2レジスタ (オフセット='h18)CP
U230へ送られるCPUINTPKTL割込みのソー
ス。このレジスタはEPSM210により更新され、次
に割込みがCPU230へ送られる。CPU230がこ
のレジスタを読出す時、内容がクリアされる。1ビット
における1の値は、割込みが生じたことを示す。デフォ
ルト=32’h0000_0000 ビット0(W/R) PKT_AVAILは、パケット
・データがCPU230に対して利用可能であることを
CPU230へ通知する割込み。デフォルトは0 ビット1(W/R) BUF_AVAILは、パケット
・データを送出するためバッファ・スペースがCPU2
30に対して利用可能であることをCPU230に通知
する割込み。デフォルトは0 ビット2〜31(RO) 予約。常に0として読出し 割込みソース・レジスタに対するpcbregsインタ
ーフェース PktAvailInt(in) TX FIFOから
の入力、ビット2を判別 BufAvailInt(in) RX FIFOから
の入力、ビット3を判別 CpuInt_Pkt_(out) パケット割込みが
生じたことを示すCPU230に対する信号 インターフェース・マスク2レジスタ (オフセット
='hlc)CPU230によりマスクされる割込み。
任意のビットにおける1の値は、割込みがマスクされる
ことを示す。デフォルト=32'h0000_000
3。 ビット0(W/R) CPU230に対するPktAv
ailInt割込みをマスク。デフォルトは1 ビット1(W/R) CPU230に対するBufAv
ailInt割込みをマスク。デフォルトは1 ビット2〜31(RO) 予約。常に0として読出し ポーリング・ソース1&2レジスタ (オフセット='
h14)このレジスタはマスクされた割込み情報を含
み、所望のビットをクリアするため1を書込むCPU2
30によりクリアされる。このため、CPU230が割
込みされる代わりにポーリングすることを可能にする。
CPUは代わりにポーリングを欲する任意の割込みソー
スをマスクしなければならない ビット0(W/R) MCB_INTは、割込みがMC
B404に生じたことおよび割込みを更に理解するため
MCB割込みソース・レジスタが読出される必要があ
る。デフォルトは0 ビット1(W/R) MEM_RDYは要求されたメモ
リ・データがバッファ・スペースで利用可能であること
をCPU230に通知する割込み。デフォルトは0 ビット2(W/R) PKT_AVAILは、パケット
・データがCPU230に対して利用可能であることを
CPU230に通知する割込み。デフォルトは0 ビット3(W/R) BUF_AVAILは、バッファ
・スペースがCPU230がパケット・データを送るた
めに利用可能であることをCPU230に通知する割込
み。デフォルトは0 ビット4(W/R) ABORT_PKTは、ABOR
T_IN信号がPCB406へアサートされたことをC
PU230に通知する割込み。デフォルトは0 ビット5(W/R) STAT_RDYは、要求された
統計情報がPCB406のバッファ・スペースにおいて
用意があることCPU230に通知する割込み。デフォ
ルトは0 ビット6(W/R) HASH_MISSは、ハッシュ
・ミスが生じたことをCPU230に通知する割込み。 ビット7〜31(RO) 予約。常に0として読出し ポーリング・ソース・レジスタに対するpcbregs
インターフェース McbInt(in) MCBからの入力。ビット0を
判別 MemRdy(in) メモリFIFOからの入力。ビ
ット2を判別 PktAvailInt(in) TX FIFOから
の入力ビット2を判別 BufAvailInt(in) RX FIFOから
の入力ビット3を判別 AbortPktInt(in) HCB402インタ
ーフェースからの入力ビット4を判別 StatRdyInt(in) QCインターフェー
スからの入力ビット6を判別 m_HashInt(in) MCB404からの入力
ビット6を判別。
【0262】
【表24】パケット・データのコンフィギュレーション パケット転送のため使用される3つのレジスタがあり、
1つは受取られたパケットに対し、2つは伝送パケット
に対する。受信パケットは、HSB206からのRea
dOutPkt信号と関連させられる。送信パケット
は、HSB206からのWriteInPkt信号と関
連させられる。注:受信と送信の用語は、HSB206
から参照される。CPU230は、パケット・データ・
バッファをアクセスする前に適切なレジスタをアクセス
しなければならない。 パケット情報RdPktレジスタ (オフセット='h
08)CPU230により送られるデータのパケットに
対する必要な情報。HSB206から参照される受信パ
ケットデフォルト=32'h0000_0000 ビット0(W/R) SOP CPU230からのパ
ケットの初め1=SOP ビット1(W/R) EOP CPU230からのパ
ケットの終り1=EOP ビット2〜15(RO) 予約。常,に0として読出し ビット16〜23(W/R) EOPがアサートされる
時、FIFOにおけるデータ長さ(バイト数) ビット24〜31(RO) 予約。常に0として読出し パケット情報RdPktレジスタに対するpcbreg
sインターフェース r_Sop(out) HSB206インターフェース
に与えられたパケット・インジケータの開始 r_Eop(out) HSB206インターフェース
に与えられたパケット・インジケータの終り r_length(out) EOPが表示される時バ
ッファにおけるデータのバイト長 パケット情報WrPktレジスタ (オフセット='h
0c) HSB206により送られるデータのパケット
に対する必要情報。HSB206から照会される伝送パ
ケットデフォルト=32'h0000_0000 ビット0(W/R) SOP。HSB206からのパケ
ットの開始l=SOP ビット1(W/R) EOP。HSB206からのパケ
ットの終りI=EOP ビット2〜5(W/R) SOPまたはEOPと関連す
るDWORDに対するバイト使用可能。通常は、全ての
バイトが使用可能化される。l=使用可能化 ビット6〜15(RO) 予約。常に0として読出し ビット16〜23(W/R)FIFOにおけるデータ長
さ(バイト数) ビット24〜31(RO) 予約。常に0として読出し パケット情報WrPktレジスタに対するpcbreg
sインターフェース h_SopIn_(in) HSB206インターフェ
ースからのSOPインジケータ h_EopIn_(in) HSB206インターフェ
ースからのEOPインジケータ h_ByteValIn_(in) HSB206イン
ターフェースからのバイト使用可能 合計パケットInfo(オフセット='h24)これ
は、MCB404がパケットをCPU230へ送る前に
そのパケットに付加する情報。この値は、CPU向けパ
ケットに対するSOPがある時にセットされる デフォルト=32'h0000_0000 ビット0〜15 パケット長 ビット16〜23(RO) ソース・ポート ビット24〜31(RO) 宛先ポート
【0263】
【表25】メモリ存在の検出 SIMM/DIMM存在検出レジスタ (オフセット='h10)システムにお けるSIMMについての情報を保持。この情報は、オン ボードのシフト・レジスタからリセットされた僅かに後 でロードされる ビット0〜3(RO) simm1_pd[0..3] ビット4〜7(RO) simm2_pd[0..3] ビット8〜11(RO) simm3_pd[0..3] ビット12〜15(RO) simm4_pd[0..3] ビット16〜31(RO) 予約。常に0として読出し 存在検出レジスタに対するpcbregsインターフェース i_PDSerIn(in) 存在検出シフト・レジスタからのシリアル入力
【0264】
【表26】クワッドカスケード統計セットアップ QC統計Infoレジスタ (オフセット='h20)
クワッドカスケード統計レジスタの読出し動作のための
セットアップ情報。CPUは、このレジスタに統計読出
しを開始することを書込む。デフォルト=32'h00
00_8000 ビット0〜1(W/R) ポート番号。これは、その統
計数字が読出されるポート番号。読出すべきポートは、
この番号と指定クワッドカスケードにより決定される ビット2〜4(W/R) QC番号。アクセスするクワ
ッドカスケードを指示予約された組合わせ:3’b11
0および3’b111 ビット5〜9(W/R) レジスタ番号。これは、指定
されたポートに対して読出されるべき第1のレジスタの
番号 ビット10〜14(W/R) レジスタ数。これは、読
出すべきレジスタ数 注:ソフトウエアは、この数を、読出すため利用可能な
レジスタ範囲内のレジスタ番号と共に保持するため要求
される ビット15〜19(W/R) 最大レジスタ数。これ
は、クワッドカスケードで利用可能な統計的レジスタの
最大数。デフォルト=6'h17 ビット20〜31(W/R) 予約。常に0として読出
し クワッドカスケード統計セットアップ・レジスタに対す
るpcbregsインターフェース r_QcStatPortNo(out) 読出された
統計に対するポート番号。これは、0と3間の値。この
値は、QC数と共に用いられて、スイッチにおけるどの
ポートが観察されつつあるかを決定する r_QcStatQcNo(out) Qc数。ポート
番号と共に用いられる。 r_StatRegNo(out) 始動レジスタ番
号。これは、読出されるべき最初の統計レジスタの番号 r_NoStatRegs(out) 読出すべき統計
レジスタ数 r_Maxregs(out) 存在する統計レ
ジスタの最大数。これは、保持される統計数字が変更さ
れるならば将来の使用のために特に利用可能。
【0265】
【表27】EPSM210のセットアップ EPSMセットアップ・レジスタ (オフセット='h
30)EPSM210に対する汎用セットアップ・パラ
メータ。デフォルト=32'h0007_1000また
は32'h0007_3000、ckllsel入力に
依存 ビット0(W/R) TPIインストール。l=TPI
220インストールデフォルト=0。このビットは、マ
スタ・スイッチ使用可能(ビット2)が否定される時に
のみ、書込まれる ビット1(W/R) EXPインストール。l=拡張イ
ンストール。デフォルト=0。このビットは、マスタ・
スイッチ使用可能(ビット2)が否定される時にのみ、
書込まれる ビット2(W/R) マスタ・スイッチ使用可能。l=
パケット・トラフィック使用可能。デフォルト=0 ビット3〜4(W/R)QcXferSize[1:
0]これらビットは、マスタ・スイッチ使用可能(ビッ
ト2)が否定される時にのみ、書込まれる 00=HSB206における16バイト転送サイズ 01=HSB206における32バイト転送サイズ 10=HSB206における64バイト転送サイズ 11=無効組合わせ ビット5〜6(W/R)TPIXferSize[1:
0]これらのビットはマスタ・スイッチ使用可能(ビッ
ト2)が否定される時にのみ、書込まれる 00=HSB206における16バイト転送サイズ 01=HSB206における64バイト転送サイズ 10=HSB206における128バイト転送サイズ 11=HSB206における256バイト転送サイズ ビット7(W/R) AIFCS。このビットは、ク
ワッドカスケードがFCSビットを自動挿入することを
可能にするため使用される。これは、CPU230から
のパケットに対してのみ用いられる ビット8(W/R) DramWrDis。これは、
セットされた時、CPU230からDRAMへの書込み
を使用不能状態にする。デフォルト=0 ビット9(W/R) SramWrDis。これは、
セットされた時、CPU230から内部SRAMへの書
込みを使用不能状態にする ビット10〜12(W/R) EPSM210アドレス
・デコード。これらビットは、EPSM210のレジス
タ・スペースとメモリ・インターフェースをデコードす
るため用いられる ビット13(RO) clklsel 1=CLK2周波数は1X CLK1周波数である 0=CLK2周波数は2X CLK1周波数である ビット14〜21(RO) CPUポート番号。CPU
230のポート番号を指示。デフォルト=8'h1c ビット22〜〜31(RO) 予約。常に0として読出
し EPSMセットアップ・レジスタに対するpcbreg
sインターフェース clklsel(in) clkl1およびclk2が
同じレートであるかどうかを判別するためピンからの入
力 r_DramWrDis(out) CPU230イン
ターフェースに、DRAMへの書込みが使用不能化され
ることを知らせる r_SramWrDis(out) CPU230イン
ターフェースに、内部SRAMへの書込みが使用不能化
されることを知らせる r_EPSMAdrDcd(out) この3ビット数
は、CPU230バスにおけるアドレス・ビット31:
29と比較される。 EPSMセットアップ・レジスタに対するhcbreg
sインターフェース r_MstrSwEn(out) スイッチがパケット
通信量に対して使用可能化されることをアービタなどに
対して通知 r_TpiInst(out) r_ExpInst(out) r_NonULBCMode[1:0](out) r_ULBCMode[1:0](out) r_AIFCS(out) EPSMセットアップ・レジスタに対するmcbreg
sインターフェース r_DramWrDis(out) DRAM書込みの
CPU要求を使用不能 r_SramWrDis(out) 内部SRAM書込
みのCPU要求を使用不能 EPSM改訂レジスタ (オフセット='h40)EP
SM210の改訂番号 ビット0〜7(RO) EPSM210の改訂番号 ビット8〜31(RO) リザーブ(予約)。常に0とし
て読出し EPSM改訂レジスタに対するpcbregsインター
フェース なし。
【0266】
【表28】ポート・セットアップ ポート速度レジスタ (オフセット='h34)各ポー
トの速度を含むビット・マップ。1=100MHz;0
=10MHz。デフォルト=32'h0f00_0000 ビット0(W/R) ポート0の速度 ビット1(W/R) ポート1の速度 : : ビット27(W/R) ポート27の速度 ビット28〜31(RO) 留保済み。常に0として
読出し ポート速度レジスタに対するhcbregsインターフ
ェース r_PortSpd[27:0](out) HCB4
02ブロックに対するポート速度ビット・マップ ポート・タイプ・レジスタ (オフセット=’h38)
各ポートのタイプを含むビット・マップ。1=TLA
N;0=カッドカスケード。デフォルト=32'h0f
00_0000 ビット0(W/R) ポート0タイプ ビット1(W/R) ポート1タイプ : : ビット27(W/R) ポート27タイプ ビット28〜31(W/R) 予約。常に0として読出
し ポート・タイプ・レジスタに対するmcbregs&h
cbregsインターフェース r_PortType[27:0](out) HCB
402およびMCB404に対するポート・タイプ・ビ
ット・マップCPUメモリ要求 CPU230によるメモリ要求は、2つの方法で行うこ
とができる。下記のレジスタが両方法で用いられる;C
PU230は、初期レジスタ/FIFOメモリ要求法を
用いる時に、レジスタを直接アクセスするのみ。 メモリ要求レジスタ (オフセット='h3c)CPU
は、このレジスタにメモリ読出しまたは書込みを要求す
るよう書込む。この要求された機構は、外部DRAMま
たは内部SRAMのいずれかのアクセスのため用いられ
る。 ビット0〜23(W/R) 転送の開始アドレス[2
5:2]。SRAMアクセスのためには、ビット23−
8が留保されるビット7:0が256の24ビット・ワ
ードをアドレス指定する ビット24(W/R) 0=外部DRAMアクセス
(即ち、パケット&ハッシュ・メモリ) 1=内部SRAMアクセス(即ち、パケット制御レジス
タ) ビット25(W/R) 転送長 0=1転送(4バイト) 1=4転送(16バイト) 注:開始アドレス&転送長さは、転送が2Kページ境界
に跨がるようにセットされるべきではない。これを保証
する1つの方法は、全てのデータ構造(ハッシュ・エン
トリの如き)が16バイト整合されることを確認するこ
とである ビット26〜29(W/R) バイト使用可能[3:
0]。(1=表明)部分ワード書込みに有効。また、C
ASを含まない読出しを行うようセットされたEDOテ
スト・モードと共に使用される。1より大きい転送長の
書込みのため、ByteEnablesは1111でな
ければならない。これらは、EDOテスト・モードがセ
ットされなければ、読出しは問題外(don’t ca
re)である。 ビット30(W/R) 書込み/読出し。0=読出し、
1=書込み ビット31(W/R) ロックされたページ・ヒット。
別のCPU要求が同じメモリ・ページ内に続くことを示
す。DRAMメモリ・アービタはメモリ・システムが別
の要求をすることを許容せず、RASはその時のサイク
ル後に表明されたままとなる。EDOテスト・モードの
みにおいて用いられる。リフレッシュを含む他の要求側
は、セットされる間はメモリ・アクセスを行わない。S
RAMがロックされる間パケット・メモリ通信量入力が
停止するので、SRAMアクセスにおいては決して使用
すべきでない(ハードウエアのデバギングを除く)。メモリ要求レジスタに対するmcbregsインターフ
ェース CpuAdr[25:2](out) 開始アドレスm
emctlおよびmcbsramモジュールをパス CpuBE[3:0](out) memctlおよび
mcbsramモジュールへByteEnablesを
パス CpuLn[1:0](out) memctlおよび
mcbsramへ転送長さをパス(00 1のIn=1
ならば、00;In=4ならば、11) CpuMemSel(out) 外部DRAM(0)お
よび内部SRAM(1)データ間のmux制御 CpuWr(out) 書込み/読出しビット=1なら
ば、memctlおよびmcbsramモジュールへア
サート CpuPgHit(out) ロック・ページ・ヒット
・ビット=1ならば、memctlおよびmcbsra
mモジュールへアサート CpuReq(out) メモリ要求レジスタが書込ま
れメモリ選択=0である時、memctlモジュールへ
アサートCpuAckがアサートされるまで、アサート
されたままでなければならない CpuAck(in) CpuReqが受入れられる
時、memctlモジュールからmcbregsへアサ
ートされる CpuInternalReq(out) メモリ要求
レジスタが書込まれ、メモリ選択=1である時、mcb
sramモジュールへアサート。CpuInterna
lAckがアサートされるまで、アサートされたままで
なければならない CpuInternalAck(in) CpuInt
ernalReqが受信される時、mcbsramモジ
ュールからmcbregsへアサートされる 注:以下のシーケンスをEDOメモリに対するテストに
用いるべきである: 1.EDOテスト・モード・ビットをメモリ制御レジス
タにセット 2.DWORDを0000hでテスト中のバンクに書込
む 3.ロックド・ページ・ヒット・セットおよびバイト使
用可能=1111bを持つ同じDWORDを読出す。そ
の後、FPM DRAMがMDをフロートさせる間ED
O DRAMがMDをローに保持し、約100ns後に
MD[0]におけるプルアップ・レジスタがこの線をハ
イに引上げる 4.ロックド・ページ・ヒット・ビットがクリヤされ、
バイト使用可能=0000bによりDWORDを再び読
出す。これは、CASがアサートされない読出しであ
る。MD[0]は、EDO DRAMに対してロー、F
PMに対してハイとなる 5.インストールされたメモリの各バンクごとにステッ
プ1〜4を繰返す。全てのバンクがEDO DRAMを
含むだけで、メモリ・タイプがEDO DRAMへセッ
トされる 6.EDOテスト・モード・ビットをクリヤして、メモ
リ・タイプをセットする。EDOテスト・モードをセッ
トしたままにしてはならない
【0267】
【表29】混雑ポート 混雑ポート・レジスタ (オフセット='h148)ポ
ートが混雑モードで観察される制御がレジスタに含まれ
る。デフォルト=32'h0000_0000。このレ
ジスタは、マスタ・スイッチ使用可能(EPSMセット
アップ・レジスタ)が否定される時にのみ書込まれる ビット0〜7(W/R) 混雑モードで観察されるポー
ト番号 ビット8〜15(W/R) 受取られつつあるデータが現
れるポート ビット16〜23(W/R) 観察されるポートへ送ら
れるデータが現れるポート ビット24〜31(W/R) 予約。常に0として読出
し。
【0268】
【表30】高速バス・モニタ HSB使用セットアップ・レジスタ (オフセット='
h54)どのポートがHSB206の使用のためのモニ
ターとなるか制御 デフォルト=32'h0000_0000 ビット0〜7(W/R) ポート番号または合計 ビット8〜9(W/R) モード ビット10〜31(RO) 予約。常に0として読出
し HSB使用レジスタ (オフセット='h58)HS
B206の使用は、選択されたポートがHSB206に
ある平均時間である。デフォルト=32'h0000_
0000 ビット0〜31(RO) 選択された平均時間ポートは
HSB206にある。
【0269】
【表31】クワッドスルー/ストアN前送情報 ソースCT_SNFレジスタ (オフセット='h5
c)ソース・ポートのCT/SnF状態を含むビット・
マップ。0=CT;1=SNFデフォルト=32'h0
000_0000 ビット0(W/R) ポート0ソースCT_SNF ビット1(W/R) ポート1ソースCT_SNF : : ビット27(W/R) ポート27ソースCT_SNF ビット28〜31(W/R) 予約。常に0として読出
し ソースCT_SNFレジスタに対するhcbregsイ
ンターフェース TblSrcPrt(in) その時のパケット・ソー
ス・ポート。8ビット入力 r_RxPortCtSnf(out) TblSrc
Prtに対するCT_SNF状態 1ビット出力 宛先CT_SNFレジスタ (オフセット='h60)
宛先ポートのCT/SnF状態を含むビット・マップ。
0=CT;1=SNF。デフォルト=32'h0000
_0000 ビット0(W/R) ポート0宛先CT_SNF ビット1(W/R) ポート1宛先CT_SNF : : ビット27(W/R) ポート27宛先CT_SNF ビット28〜31(RO)予約。常に0として読出し ソースCT_SNFレジスタに対するhcbregsイ
ンターフェース TblDstPrt(in) その時のパケット宛先ポ
ート。8ビット入力 r_TxPortCtSnf(out)TblDstP
rtに対するCT_SNF状態。1ビット出力。
【0270】
【表32】調停情報 調停モード・レジスタ (オフセット='h74)調停
モード値を含む。デフォルト=32'h0000_00
00。このレジスタは、マスタ・スイッチ使用可能(E
PSMセットアップ・レジスタ)が否定される時にのみ
書込まれる ビット0〜1(W/R) 調停(アービタレション)モ
ード 2'b00:先入れ先サーブ調停モード 2'b01:重み付け優先調停モード 2'b10:ラウンド・ロビン調停モード 2'b11:これも先入れ先サーブ・モード ビット2〜31(RO) 予約。常に0として読出し 調停モード・レジスタに対するhcbregsインター
フェース r_ArbMode(out) HCB402における
調停モジュールで必要である先に示した2ビット値 調停重み付けレジスタ#1 (オフセット='h64)
重み付け優先調停モードに対するポート0〜7の重み ビット0〜3(W/R) 重み付け優先モードに対する
ポート0調停重み ビット4〜7(W/R) 重み付け優先モードに対する
ポート1調停重み ビット8〜11(W/R) 重み付け優先モードに対す
るポート2調停重み ビット12〜15(W/R) 重み付け優先モードに対
するポート3調停重み ビット16〜19(W/R) 重み付け優先モードに対
するポート4調停重み ビット20〜23(W/R) 重み付け優先モードに対
するポート5調停重み ビット24〜27(W/R) 重み付け優先モードに対
するポート6調停重み ビット28〜31(W/R) 重み付け優先モードに対
するポート7調停重み 調停重みレジスタ#1に対するhcbregsインター
フェース r_ArbWt0(out) これら4ビットが、重み
付け調停モードにおけるポート0に対する重み付けのた
めHCB402により使用される r_ArbWt1(out) これら4ビットが、重み
付け調停モードにおけるポート1に対する重み付けのた
めHCB402により使用される r_ArbWt2(out) これら4ビットが、重み
付け調停モードにおけるポート2に対する重み付けのた
めHCB402により使用される r_ArbWt3(out) これら4ビットが、重み
付け調停モードにおけるポート3に対する重み付けのた
めHCB402により使用される r_ArbWt4(out) これら4ビットが、重み
付け調停モードにおけるポート4に対する重み付けのた
めHCB402により使用される r_ArbWt5(out) これら4ビットが、重み
付け調停モードにおけるポート5に対する重み付けのた
めHCB402により使用される r_ArbWt6(out) これら4ビットが、重み
付け調停モードにおけるポート6に対する重み付けのた
めHCB402により使用される r_ArbWt7(out) これら4ビットが、重み
付け調停モードにおけるポート7に対する重み付けのた
めHCB402により使用される 調停重みレジスタ#2 (オフセット='h6
8)重み付けされた優先調停モードのためのポート8〜
15に対する重み ビット0〜3(W/R) 重み付け優先モードのため
のポート8調停重み ビット4〜7(W/R) 重み付け優先モードのため
のポート9調停重み ビット8〜11(W/R) 重み付け優先モードのため
のポート10調停重み ビット12〜15(W/R)重み付け優先モードのため
のポート11調停重み ビット16〜19(W/R)重み付け優先モードのため
のポート12調停重み ビット20〜23(W/R)重み付け優先モードのため
のポート13調停重み ビット24〜27(W/R)重み付け優先モードのため
のポート14調停重み ビット28〜31(W/R)重み付け優先モードのため
のポート15調停重み 調停重みレジスタ#2に対するhcbregsインター
フェース r_ArbWt8(out) これら4ビットが、重み
付け調停モードにおけるポート8に対する重み付けのた
めHCB402により使用される r_ArbWt9(out) これら4ビットが、重み
付け調停モードにおけるポート9に対する重みつけのた
めHCB402により使用される r_ArbWt10(out)これら4ビットが、重み
付け調停モードにおけるポート10に対する重み付けの
ためHCB402により使用される r_ArbWt11(out)これら4ビットが、重み
付け調停モードにおけるポート11に対する重み付けの
ためHCB402により使用される r_ArbWt12(out)これら4ビットが、重み
付け調停モードにおけるポート12に対する重みつけの
ためHCB402により使用される r_ArbWt13(out)これら4ビットが、重み
付け調停モードにおけるポート13に対する重み付けの
ためHCB402により使用される r_ArbWt14(out)これら4ビットが、重み
付け調停モードにおけるポート14に対する重み付けの
ためHCB402により使用される r_ArbWt15(out)これら4ビットが、重み
付け調停モードにおけるポート15に対する重み付けの
ためHCB402により使用される 調停重みレジスタ#3 (オフセット='h6
c)重み付け優先モードに対するポート16〜23の重
み ビット0〜3(W/R) 重み付け優先モードに対する
ポート16調停重み ビット4〜7(W/R) 重み付け優先モードに対する
ポート17調停重み ビット8〜11(W/R) 重み付け優先モードに対す
るポート18調停重み ビット12〜15(W/R)重み付け優先モードに対す
るポート19調停重み ビット16〜19(W/R)重み付け優先モードに対す
るポート20調停重み ビット20〜23(W/R)重み付け優先モードに対す
るポート21調停重み ビット24〜27(W/R)重み付け優先モードに対す
るポート22調停重み ビット28〜31(W/R)重み付け優先モードに対す
るポート23調停重み 調停重みレジスタ#3に対するhcbregsインター
フェース r_ArbWt16(out)これら4ビットが、重み
付け調停モードにおけるポート16に対する重み付けの
ためHCB402により使用される r_ArbWt17(out)これら4ビットが、重み
付け調停モードにおけるポート17に対する重み付けのた
めHCB402により使用される r_ArbWt18(out)これら4ビットが、重み
付け調停モードにおけるポート18に対する重み付けの
ためHCB402により使用される r_ArbWt19(out)これら4ビットが、重み
付け調停モードにおけるポート19に対する重み付けの
ためHCB402により使用される r_ArbWt20(out)これら4ビットが、重み
付け調停モードにおけるポート20に対する重み付けの
ためHCB402により使用される r_ArbWt21(out)これら4ビットが、重み
付け調停モードにおけるポート21に対する重み付けの
ためHCB402により使用される r_ArbWt22(out)これら4ビットが、重み
付け調停モードにおけるポート22に対する重み付けの
ためHCB402により使用される r_ArbWt23(out)これら4ビットが、重み
付け調停モードにおけるポート23に対する重み付けの
ためHCB402により使用される 調停重みレジスタ#4 (オフセット='h70)
重み付け優先モードに対するポート16〜23の重み ビット0〜3(W/R) 重み付け優先モードに対する
ポート24調停重み ビット4〜7(W/R) 重み付け優先モードに対する
ポート25調停重み ビット8〜11(W/R) 重み付け優先モードに対す
るポート26調停重み ビット12〜15(W/R)重み付け優先モードに対す
るポート27調停重み ビット16〜19(W/R)重み付け優先モードに対す
るポート28調停重み ビット20〜31(RO) 予約。常に0として読出し 調停重みレジスタ#4に対するhcbregsインター
フェース r_ArbWt24(out)これら4ビットが、重み
付け調停モードにおけるポート24に対する重み付けの
ためHCB402により使用される r_ArbWt25(out)これら4ビットが、重み
付け調停モードにおけるポート25に対する重み付けの
ためHCB402により使用される r_ArbWt26(out)これら4ビットが、重み
付け調停モードにおけるポート26に対する重み付けの
ためHCB402により使用される r_ArbWt27(out)これら4ビットが、重み
付け調停モードにおけるポート27に対する重み付けの
ためHCB402により使用される r_ArbWt28(out)これら4ビットが、重み
付け調停モードにおけるポート28に対する重み付けの
ためHCB402により使用される。
【0271】
【表33】HCB402混雑制御 HCB混雑制御 (オフセット='h78)HCB40
2に対する混雑制御 デフォルト=32'h0000_0000 ビット0(W/R) CT FIFO使用可能。1=C
T FIFO使用可能 ビット1(W/R) 読出し使用可能特別待機状態。1
=待機状態使用可能 ビット2(W/R) クワッドカスケードに対する同時
読出しおよび書込みの使用可能 ビット3(W/R) QE110に対する同時読出しお
よび書込みの使用可能 ビット4(W/R) 早期アドレス使用可能 ビット5〜31(RO) 予約。常に0として読出し。
【0272】
【表34】ポート遮断 ポート遮断 (オフセット='h7c)ポートが遮断さ
れるビット・マップ デフォルト=32'h0000_0000 ビット0〜27(W/R) ポート0ないし27に対す
るビット・マップ 1=ポートが遮断。# ビット28〜31(RO) 予約。常に0として読出
し。
【0273】
【表35】ポート状態セットアップ 1つのポートの状態をセットアップまたは変更するため
に、2つのレジスタが書込まれなければならない。書込
む第1のレジスタは、変更されるポートのビット・マッ
プを含むポート状態ビット・マップ・レジスタである。
書込む第2のレジスタは、状態値を含み、2つのポート
状態レジスタのプログラミングを開始するプログラム・
ポート状態レジスタである。CPUのポート状態は、常
に前送中であり、決して変更できない。 ポート状態ビット・マップ・レジスタ (オフセット='h90)その状態が変 化するポートのビット・マップ。1=当該ポート状態をプログラ ム・ポート状態レジスタにおける値へ変更 デフォルト=32'h0000_0000 ビット0(W/R) ポート0。このビットの設定がポート0の状態の変更を 使用可能にする ビット1(W/R) ポート1。このビットの設定がポート1の状態の変更を 使用可能にする : : ビット27(W/R) ポート27。このビットの設定がポート27の状態の 変更を使用可能にする ビット29〜31(RO) 予約。常に0として読出し プログラム・ポート状態レジスタ (オフセット='h80)ポート状態。CP Uが、ポート状態レジスタのプログラミングを 開始する当該レジスタに書込む。当該ポート状 態ビット・マップ・レジスタは、「最初に書込 まれねばならない」 デフォルト=32'h0000_0000 ビット0〜1(W/R) 状態値。この値は、オフセット30におけるビット ・マップに示されるポートに置かれる 状態値 条件 00b 使用不能 01b ブロック/リスニング 10b 学習 11b 前送 ビット2〜31(RO) 予約。常に0として読出し ポート状態#1レジスタ (オフセット='h94)ポート0ないし15の状態 プログラム・ポート状態レジスタおよびポート状態ビ ット・マップ・レジスタによりプログラムされる デフォルト=32'h0000_0000 状態値 条件 00b 使用不能 01b ブロック/リスニング 10b 学習 11b 前送 ビット0〜1(RO) Port_0_st[1:0] ビット2〜3(RO) Port_1_st[1:0] ビット4〜5(RO) Port_2_st[1:0] ビット6〜7(RO) Port_3_st[1:0] ビット8〜9(RO) Port_4_st[1:0] ビット10〜11(RO) Port_5_st[1:0] ビット12〜13(RO) Port_6_st[1:0] ビット14〜15(RO) Port_7_st[1:0] ビット16〜17(RO) Port_8_st[1:0] ビット18〜19(RO) Port_9_st[1:0] ビット20〜21(RO) Port_10_st[1:0] ビット22〜23(RO) Port_11_st[1:0] ビット24〜25(RO) Port_12_st[1:0] ビット26〜27(RO) Port_13_st[1:0] ビット28〜29(RO) Port_14_st[1:0] ビット30〜31(RO) Port_15_st[1:0] ポート状態#2レジスタ (オフセット='h98)ポート16ないし28の状 態。プログラム・ポート状態レジスタおよびポート状 態ビット・マップ・レジスタによりプログラムされ る。デフォルト=32'h0300_0000 状態値 条件 00b 使用不能 01b ブロック/リスニング 10b 学習 11b 前送 ビット0〜1(RO) Port_16_st[1:0] ビット2〜3(RO) Port_17_st[1:0] ビット4〜5(RO) Port_18_st[1:0] ビット6〜7(RO) Port_19_st[1:0] ビット8〜9(RO) Port_20_st[1:0] ビット10〜11(RO) Port_21_st[1:0] ビット12〜13(RO) Port_22_st[1:0] ビット14〜15(RO) Port_23_st[1:0] ビット16〜17(RO) Port_24_st[1:0] ビット18〜19(RO) Port_25_st[1:0] ビット20〜21(RO) Port_26_st[1:0] ビット22〜23(RO) Port_27_st[1:0] ビット24〜25(RO) Port_28_st[1:0] CPUポート は常に前送(11) ビット26〜31(RO) 予約。常に0として読出し ポート状態セットアップ・レジスタに対するmcbregsインターフェース SourcePort[7:0](in) mcbhashモジュールからの ソース・ポート番号 m_HashDstprt[7:0](in) mcbhashモジュールか らの宛先ポート SrcPrtState[1:0](out) ソース・ポート・レジスタお よびポート状態レジスタに基くmcbhashに対 する組合わせ出力 DstPrtState[1:0](out) m_HashDstPrtお よびポート状態レジスタに基くmcbhashに対 する組合わせ出力。
【0274】
【表36】パケット・メモリ定義 メモリ・セクター情報レジスタ (オフセット='ha
0)パケット・メモリは、固定数のセクターからなる。
このレジスタは、セクター・サイズを定義する。2Kバ
イトの最小セクター・サイズは、最大パケット(151
8バイト+オーバーヘッド)が1つ以上のセクター境界
の抵触を行い得ないことを保証する。2Kバイトの現在
唯一つのセクター・サイズがサポートされる。このレジ
スタは、マスタ・スイッチ使用可能(EPSMセットア
ップ・レジスタ)が否定される時にのみ書込まれる ビット0〜1(W/R) セクター・サイズ。2Kバイ
トの現在唯一つのセクターがサポートされる 00=2Kバイト(デフォルト) 01=4Kバイト 10=8Kバイト 11=16Kバイト ビット2〜31(RO) 予約。常に0として読出し。
【0275】
【表37】メモリ・バス帯域幅モニタ メモリ・バス・モニタ制御レジスタ (オフセット='ha8)当該レジスタに より制御される2つの独立バス・モニタがある。モニ タ選択ビット(24)は、どのモニタがアクセス中 であるかを選択するため用いられる。このビットはま た、メモリ・バス・モニタ閾値レジスタとメモリ使用 レジスタとに対するアクセスを制御する。モニタ・ビ ットは、当該レジスタの高いバイトのみを書込むこと により独立的にセットすることができる ビット0〜9(W/R) モニタ・モード[9:0]。監視されるべきバス の活動状態のタイプを定義 デフォルトは10'h3FF(全てを監視) CycleType(1つ以上のビットをセット) ビット0 パケット(パケット関連トラフィックを 監視するようセット) ビット1 ハッシュ(ハッシュ索引トラフィック を監視するようセット) ビット2 CPU(メモリに対するCPUアクセス を監視するようセット) ビット3 リフレッシュ(リフレッシュ・サイクル を監視するようセット) パケット・タイプ(パケット・ビット(0)がセットされるな らば、一方または両方のビットをセットしなければならない) ビット4 ユニキャスト(既知の個々のアドレス ・ード・パケットを監視するようセット) ビット5 ブロードキャスト(グループ・ビット ・セットまたはハッシュ・ミスを持つパケ ットを監視するようセット) パケットTx/Rc(パケット・ビット(0)がセットされる ならば、一方または両方のビットをセットしなければならない) ビット6 送信(送信関連トラフィックを監視する ようセット) ビット7 受信(受信関連トラフィックを監視 するようセット) パケット・データ/オーバーヘッド(パケット・ビット(0) がセットされるならば、一方または両方のビットをセットしな ければならない) ビット8 データ(パケット転送のデータ部分をモ ニタするようセット) ビット9 オーバーヘッド(パケット転送の非デー タ関連部分、即ち、バス調停、パケット ・メモリ保守、未使用サイクルをモニタ するようセット) ビット10〜15(RO) 予約。常に0を読出す ビット16〜19(RO) フィルタ・タイム・スケール。LPフィルタリン グのための略々時定数をセット 0h=75ミリ秒 4h=300ミリ秒 8h=予約 Ch=予約 1h=600ミリ秒 5h=2.5秒 9h=予約 Dh=予約 2h=5ミリ秒 6h=20秒 Ah=予約 Eh=予約 3h=40ミリ秒 7h=2.5分 Bh=予約 Fh=予約 デフォルト=0h。フィルタ・モードにおいてのみ適用 ビット20(W/R) カウント/フィルタ・モード。(デフォルト=0、フ ィルタ・モード) 0=モニターが、フィルタ・タイムスケールによ り定義されるように低域通過フィルタとして 動作 バス使用レジスタの読出しは、フィルタ・モニタに おける値に影響を及ぼさない 1=モニタ・カウント・バス・サイクル、しか し、フィルタ動作は行わない。カウント・モ ードにある時、読出し時はバス使用レジスタ はクリアされる ビット21(W/R) タイマ・モード。カウント・モードにある時のみ適用 (デフォルト=0) 0=モニター・モード・ビットにより定義される サイクルのみをカウント 1=クロック・サイクルごとにカウンタを増分 ビット22(W/R) バックプレシャ可能化。1=全てのポートにおけるバ ックプレシャを使用可能するため当該モニタからのア ラーム使用。デフォルト=0、不使用可能 ビット23(W/R) ブロードキャスト制御使用可能。1=任意のポートか ら受信されたブロードキャスト・パケットを捨てるた めモニタからのアラームを使用 デフォルト=0、不使用可能 ビット24(W/R) モニタ選択。0=モニタ0(デフォルト) 1=モニタ1 ビット25(RO) 予約。常に0を読出し メモリ・バス・モニター閾値/BWレジスタ(オフセット='hac)モニタ 選択ビットは、当該レジスタのアクセスに先立ちセットされねば ならない ビット0〜7(W/R) アラーム設定閾値。バス使用がこの値に達するかあ るいはこれを越えるならば、アラーム・フラグがセ ットされ、CPU割込みが生成される。使用可能に されるならば、バックプレシャまたはブロードキャ スト制御が適用される(デフォルト=8'h00) ビット8〜15(W/R) アラーム・クリア閾値。バス使用が、この値まで低 減するかあるいはこれより低減する時、アラーム・ フラグがクリアされ、CPU割込みが生成される バックプレシャおよびブロードキャストの制御が解 放される (デフォルト=8'h00) ビット16〜23(RO)ピークBW。最後の読出し以後、最大帯域幅が検出 される。読出し時に、クリアされる ビット24〜31(RO)その時のBW。バス帯域幅使用フィルタのその時の 値。00h値は、0%の使用を表わし、FFhの値 は100%の使用を表わす メモリ・バス使用レジスタ(オフセット='hb0)当該レジスタのアクセスに 先立ち、モニタ選択ビットがセットされねばなら ない ビット0〜31(RO) バス使用[31:0]。メモリ・バス使用カウンタ カウント・モードでは、カウンタが最後に始動された後は、こ の値は使用中のバス・サイクル数のカウントである。読出し時 にクリアされる。両方の「バス利用レジスタ」が読出された時、 両方のフィルタのカウンタが同時に始動する フィルタ・モードでは、上位8ビットがカウントBWとして閾値 /BWに複写されるので、このレジスタを読出す必要がない。B Wに対して8ビットより多くを使用することが望ましければ、最 大域幅値が常に32′hFF00_0000となり、かつ選択さ れるタイム・スロットに応じて最小値が 32′hFF00_0000と32′h00FF_FFFFの間 に なることに注意すべきである フィルタ・モードで読出された時は、クリアされない。
【0276】
【表38】メモリ帯域幅モニターに対するmcbreg
sインターフェース SelectedBandWidth[31:0](in) 選択されたモニタに対
するメモリ・バス利用レジスタ[31:0]。また、ビ
ット24〜31が閾値/BWレジスタにおけるその時の
BWである SelectedMaxBW[7:0](in) 閾値/BWレジスタ・ビ
ット16〜23におけるピークBW Alarm0(in) モニター0に対するア
ラーム・フラグ。このフラグがセットされクリアされる
時、mcbregsが割込みBWALARMSET0と
BWALARMCLR0を生成する Alarm1(in) モニタ1に対するアラ
ーム・フラグ。このフラグがセットされクリアされる
時、mcbregsが割込みBWALARMSET1と
BWALARMCLR1を生成する r_MonMode0[9:0](out) モニタ0に対するモニ
タ・モード r_MonMode1[9:0](out) モニタ1に対するモニ
タ・モード r_BwScale0[2:0](out) モニタ0に対するフィ
ルタ・タイムスケール r_BwScale1[2:0](out) モニタ1に対するフィ
ルタ・タイムスケール r_CountOnly0(out) モニタ0に対するカウ
ント/フィルタ・モード r_CountOnly1(out) モニタ1に対するカウ
ント/フィルタ・モード r_TimerMode0(out) モニタ0に対するタイ
マ・モード r_TimerMode1(out) モニタ1に対するタイ
マ・モード r_BackPresOnAlarm0(o) モニタ0に対するバッ
クプレシャ使用可能 r_BackPresOnAlarm1(o) モニタ1に対するバッ
クプレシャ使用可能 r_BackBcPktsOnAlarm0(o) モニタ0に対するブロ
ードキャスト制御使用可能ビット r_DropBcPktsOnAlarm1(o) モニタ1に対するブロ
ードキャスト制御使用可能ビット r_FilterSelect(out) モニタ選択ビット r_AlarmSet0[7:0](out) モニタ0に対するアラ
ーム・セット閾値 r_AlarmSet1[7:0](out) モニタ1に対するアラ
ーム・セット閾値 r_AlarmClr[7:0](out) モニタ1に対するアラ
ーム・クリア閾値 ClrBwCtr0(out) モニタ0に対する利用
レジスタが読出される時1クロックに対してアサート ClrBwCtr1(out) モニタ1に対する利用
レジスタが読出される時1クロックに対してアサート ClrMaxBW0(out) モニタ0に対する閾値
/BWレジスタが読出される時1クロックに対してアサ
ート ClrMaxBW0(out) モニタ0に対する閾値
/BWレジスタが読出される時1クロックに対してアサ
ート。
【0277】
【表39】ドロップ・パケット統計 メモリのオーバーフロー、同報オーバーフロー、受信セ
クター・オーバーフローおよび送信セクター・オーバー
フローによりドロップされたパケットがカウントされ
る。受信セクター・オーバーフローおよび送信セクター
・オーバーフローに対するこれらのカウントおよびビッ
ト・マップが保持される。これら条件もまた、CPU2
30に対する割込みを生じる。割込み情報が、MCB割
込みソース・レジスタに保持される ドロップ・パケット・メモリ・オーバーフロー・レジス
タ (オフセット=′hb 8)このレジスタは、2つの条件により生じるメモリ・
オーバーフローによりドロップされたパケット数を含
む。これら条件は、パケットが記憶されている時のハッ
シュ索引および実際のメモリ・オーバーフロー時に閾値
を越えさせられ、これが打切りパケットを生じる ビット0〜31(W/R) メモリ・オーバーフローに
よりドロップされたパケット数 ドロップ・パケット・ブロードキャスト・オーバーフロ
ー・レジスタ(オフセット=hbc) このレジスタは、ブロードキャスト閾値オーバーフロー
によりドロップされたパケット数を含む ビット0〜31(W/R) ブロードキャスト閾値オー
バーフローによりドロップされたパケット数 ドロップ・パケット受信セクタ・オーバーフロー・レジ
スタ (オフセット=′h d4)このレジスタは、受信セクタ・オーバーフローに
より外されたパケット数を保持する ビット0〜31(W/R) 受信セクタ・オーバーフロ
ーにより外されたパケット数 ドロップ・パケット送信セクタ・オーバーフロー・レジ
スタ (オフセット=′h d8)このレジスタは、送信セクタ・オーバーフローに
より外されたパケット数を保持する ビット0〜31(W/R) 送信セクタ・オーバーフロ
ーにより外されたパケット数 ドロップ・パケット受信セクタ・ビット・マップ・レジ
スタ (オフセット=′h dc)このレジスタは、受信セクタ・オーバーフローに
よりパケットをドロップしたポートのビット・マップを
保持する ビット0〜28(W/R) 受信セクタ使用のオーバー
フローを通知するポートのビット・マップ ドロップ・パケット送信セクタ・ビット・マップ・レジ
スタ (オフセット=′h e0)このレジスタは、送信セクター・オーバーフロー
によりパケットをドロップしたポートのビット・マップ
を保持する ビット0〜28(W/R) 送信セクタ使用のオーバー
フローを通知するポートのビット・マップドロップ・パケット統計に対するmcbregsインタ
ーフェース x_RxPktAborted_ メモリ・オーバーフ
ローによりパケットが打切られた時を通知するXCBか
らストローブ DropPktStb_MemOF メモリをオーバー
フローするのでパケットが外された時を通知するストロ
ーブ DropPktStb_BCOF ブロードキャスト閾
値がオーバーフローするのでパケットが打切られた時を
通知するストローブ DropPktStb_RxOF 受信セクター閾値が
オーバーフローするのでパケットがドロップされた時を
通知するストローブ DropPktStb_TxOF 送信セクタ閾値がオ
ーバーフローするのでパケットがドロップされた時を通
知するストローブ。
【0278】
【表40】ハッシュ・テーブル定義 ハッシュ・テーブル定義レジスタ (オフセット=′h
c0)主要ハッシュ・エントリ・テーブルの基底アドレ
スおよびサイズを定義。ハッシュ・テーブルの多重コピ
ーがメモリに保持されるならば、EPSM210スイッ
チを間に持つようにこのレジスタが使用される ビット0〜14(RO) 主要ハッシュならば、テーブ
ル基底アドレス[16:2]。常に0 ビット15〜23(RO)主要ハッシュ・テーブル基底
アドレス[25:17]常に0 ビット24〜25(W/R)主要ハッシュ・テーブル・
サイズ[1:0]。(デフォルトは00) 00=キー・サイズ13ビット。テーブル・サイズ12
8Kバイト(8K 16バイト・エントリ) 01=キー・サイズ14ビット。テーブル・サイズ25
6Kバイト(16K 16バイト・エントリ) (基底アドレス・ビット17が無視され、内部で0に強
制される) 10=キー・サイズ15ビット。テーブル・サイズ51
2Kバイト(32K 16バイト・エントリ) (基底アドレス・ビット18:17が無視され、内部で
0に強制される) 11=キー・サイズ16ビット。テーブル・サイズ1メ
ガバイト(64K 16バイト・エントリ) (基底アドレス・ビット19:17が無視され、内部で
0に強制される) ビット26(W/R) ハッシュ・サイクル・ロック。
このビットのセッティングが、ハッシュ索引中のメモリ
・サイクルをロックさせる。これは、メモリに対するパ
ケット読出しおよび書込み転送を遅らせることを代償
に、ハッシュ索引時間を最短化する。デフォルトは0 ビット31:27(RO) 予約。常に0として読出しハッシュ・テーブル定義レジスタに対するmcbreg
sインターフェース r_HashBaseAdr[25:17](out) 基底アドレスをmemh
ashモジュールへ通過 r_HashKeySize[1:0](out) キー・サイズをmemh
ashモジュールへ通過 r_LockHashCycs(out) ロック・ハッシュ・サイ
クル・ビットがセットされるならば、mcbhashモ
ジュールへアサート HashLookUpIP(in) ハッシュ索引が進行中で
ありハッシュ・テーブル定義レジスタに対する書込みが
無視されるまで延期されるべきことを表示するためmc
bhashモジュールによりアサート。mcbhash
が、HashLookUpIPが否定されると任意の立
上がりクロック・エッジでレジスタを更新。
【0279】
【表41】ソース・ポート学習 ハッシュ・ソース・ミス・レジスタ・ロー (オフセッ
ト=′hcc)ハッシュ・テーブルに付加される新しい
ソース・アドレスのバイト3:0。これらレジスタがロ
ードされ、ハッシュSAが未知であるか、あるいはポー
トが変化し、かつソース・ポートが学習不使用にされる
時に、割込みが発される。レジスタは、ハッシュ・ソー
ス・ミス・レジスタ・ハイのレジスタが読出されるまで
ロックされる(ローのレジスタが最初に読出されねばな
らない)。レジスタがロックされる間遭遇された未知の
SAまたはポート変化は否定される。 ビット0〜7(RO) ハッシュ・テーブルに追加されるべきMACアドレスの バイト0(高次のアドレス・バイト。グループ・ビット =ビット0) ビット8〜15(RO)ハッシュ・テーブルに追加されるべきMACアドレスの バイト1 ビット16〜23(RO)ハッシュ・テーブルに追加されるべきMACアドレス のバイト2 ビット24〜31(RO)ハッシュ・テーブルに追加されるべきMACアドレス のバイト3 ハッシュ・ソース・ミス・レジスタ・ハイ(オフセット=′hd0)新たなソー ス ・アドレスとソース・ポートIDのバイト5:4 ビット0〜7(RO) ハッシュ・テーブルに追加されるべきMACアドレスの バイト4 ビット8〜15(RO)ハッシュ・テーブルに追加されるべきMACアドレスの バイト5 ビット16〜23(RO)ハッシュ・テーブルへ追加されるべきソース・ポート ID[7:0] ビット24〜31(RO)予約。常に0として読出し 学習不能ポート・レジスタ (オフセット=′he4)ビット・マップされた学 習不能ポート・レジスタ。CPUには適用しない ビット0(W/R) ポート0学習不能。1=使用不能。デフォルト=0 ビット1(W/R) ポート1学習不能。1=使用不能。デフォルト=0 ... ビット28(W/R)ポート28学習不能。1=使用不能。デフォルト=0 ビット29〜31(W/R)予約。常に0として読出しソース・ポート学習に対するmcbregsインターフェース SelectedAdr[47:0](in) memhashモジュールからのソース・アドレス SourcePort[47:0](in) memhashモジュールからのソース・ポート SrcMissStb(in) ハッシュSAミスが生じた時memhashモジュー ル によりアサートされ、ソース・ミス・レジスタおよび ソ ース・ポートが妥当する。ハッシュ・ソース・ミス・レ ジスタに対してゲートとして使用されるならば、mem hashは保持時間を保証する SrcMissLock(out) 学習不能がポートに対してセットされたかどうかアサ ートする。これは、ソース・ポート入力と学習不能レジ スタに基くmemhashに対する組合せ出力であり、 連続的に評価される。memhashはサンプルする時 を知る。
【0280】
【表42】ポート・セキュリティ ソース・ポート・レジスタ (オフセット='he8)ビット・マップされたソ ー ス・ポート・レジスタ。(セキュリティが使用可能に されたポートに対して学習不能ビットをセットするこ とも望ましい) ビット0(W/R) ポート0セキュリティ可能。1=使用可能 デフォルト=0 ビット1(W/R) ポート1セキュリティ可能。1=使用可能 デフォルト=0 ... ビット28(W/R)ポート28セキュリティ使用可能。1=使用可能 デフォルト=0 ビット29〜31(RO)予約。常に0として読出し セキュリティ違反レジスタ (オフセット='hf0)ポートによりビット・マ ップされたセキュリティ違反。読出し時にクリア。0に初期設定。最初のビット がセットされる時割込みが発され、読出される時クリアされる ビット0(RO) セキュリティ違反ポート0。1=違反の発生 ビット1(RO) セキュリティ違反ポート1。1=違反の発生 ... ビット28(RO)セキュリティ違反ポート28。1=違反の発生 ビット29〜31(RO)予約。常に0として読出し セキュリティ違反統計レジスタ (オフセット='hec)全てのポートにおけ る全セキュリティ違反のカウント。読出し時にクリア。0に初期設定 ビット0〜31(RO)セキュリティ違反カウント[31:0]ポートセキュリティに対するmcbregsインターフェース SourcePort[7:0](in) memhashモジュールからのソース・ポート番号 SecurePort(out) セキュリティ・モードがポートに対してセットされるか ど うかアサート。これは、SecurePort入力および ソース・ポート・レジスタに基くmemhashに対する 組合わせ出力であり、連続的に評価される。memhas hはサンプルする時を知る SecViolationStb(in) セキュリティ違反が表示されたソース・ポートに生じた こ とを示すストローブ。ソース・ポートにより示されるセキュ リティ違反レジスタに対してゲートとして用いられるなら ば、memhashが保持時間を保証する。
【0281】
【表43】メモリ・コンフィギュレーション メモリ制御レジスタ (オフセット='hf4)種々の
メモリ制御機能。マスタ・スイッチ使用可能(EPSM
セットアップ・レジスタ)が否定される時に、このレジ
スタのみが書込まれる ビット0〜1(W/R) メモリ・タイプ 00=高速ページ・モードDRAM(デフォルト) 01=EDO DRAM 10=シンクロナスDRAM 11=留保 ビット2(W/R) メモリ速度(0=60ns、1=
50ns) デフォルトは0ビット3(W/R) EDOテスト・モード(1=可能化)。デフォルトは0 ビット4(W/R) ダブル・リンク・モード。デフォ
ルトは0 ビット5(W/R) 使用不能受信ページ・ヒット。デ
フォルトは0 ビット6(W/R) 使用不能送信ページ・ヒット。デ
フォルトは0 ビット7〜31(RO)予約。常に0として読出しメモリ制御レジスタに対するmcbregsインターフ
ェース r_MemEDO(out) メモリ・タイプが01ならば、mem
ctlモジュールに対してmcbregsによりアサー
ト r_MemSync(out) メモリ・タイプが10ならば、mem
ctlモジュールに対してmcbregsによりアサー
ト r_Mem50ns(out) メモリ速度ビットが1ならば、mem
ctlモジュールに対してmcbregsによりアサー
ト r_TestForEDO(out)EDOテスト・モードが1ならば、
memctlモジュールに対してmcbregsにより
アサート ビット0〜1(W/R) 0000000h−03FF
FFFhに対するRAS選択(4M) ビット2〜3(W/R) 0400000h−07FF
FFFhに対するRAS選択(8M) ビット4〜5(W/R) 0800000h−0BFF
FFFhに対するRAS選択(12M) ビット6〜8(W/R) 0C00000h−0FFF
FFFhに対するRAS選択(16M) ... ビット30〜31(W/R)3C00000h−3FF
FFFFhに対するRAS選択(64M) RAS選択は次のようにコード化される。即ち、00=
RAS0、01=RAS1、0=RAS2、11=RA
S3。デフォルトは常に0メモリRAS選択レジスタに対するmcbregsイン
ターフェース r_RasSelReg[31:0](out) データをmcbregsから
memctlモジュールへ送る メモリ・リフレッシュ・カウント・レジスタ (オフセ
ット='hfc)リフレッシュ要求間のCLKサイクル
数を定義 ビット0〜9(W/R) リフレッシュ・カウント
[9:0]。リフレッシュ・カウント×CLK周期は1
5.625ミリ秒より小さいかこれと等しくなければな
らない。デフォルトは20.8h。(30nsCLKに
対しては、15.60ミリ秒) ビット10〜31(RO)予約。常に0として読出しメモリ・リフレッシュ・カウント・レジスタに対するm
cbregsインターフェース RefReq(out) memctlモジュールに対するリフレ
ッシュ要求ストローブ。memctlが正のエッジにお
ける要求を検出するので、ストローブは任意の長さでよ
い。確認は返さない。
【0282】
【表44】MACアドレス・フィルタリング CPU230に出入りさせるようパケットを指向するた
め、宛先アドレスに基くフィルタリングが行われる。そ
の時2つのみに対する要求が存在するが、4つのフィル
タが設けられる。その時要求がなくとも、アドレス比較
に「ドント・ケア」を含むマスキングが得られる。1つ
がCPU230の個々のアドレスを持ち他が(スパニン
グ・ツリーに対する)BPDU多重キャスト・アドレス
を持つ2つのフィルタをセットアップすべきである。C
PU230でないポートからの受信パケットがフィルタ
・アドレスにヒットするならば、(BCまたはMCであ
っても)パケットはCPU230のみへ送られる。CP
U230から起生したパケットがフィルタ・アドレス
(BPDUアドレス)にヒットするならば、このパケッ
トはフィルタ・アドレス・レジスタに指定された宛先ポ
ートへ送られる。パケットがフィルタ・アドレスにヒッ
トするならば、ハッシュ・テーブルの宛先索引が迂回さ
れる フィルタ制御レジスタ (オフセット='h100)M
AC宛先アドレス・フィルタリングを制御 ビット0〜3(W/R) フィルタ使用可能アドレス
[3:0]。1=対応するアドレス・フィルタ・レジス
タ[3:0]に対する個々の宛先アドレス・フィルタリ
ング使用可能。デフォルトは0 ビット4〜7(W/R) アドレス・マスク使用可能
[3:0]。1=アドレス・フィルタ・レジスタ[3:
0]がアドレス・フィルタ・マスク・レジスタを持つな
らば、マスキング使用可能。デフォルトは0 フィルタ・マスク・レジスタ・ロー (オフセット='
h104)デフォルト=0 ビット0〜7(W/R) MACアドレス・マスクのバ
イト0(1=マスク・アドレス・ビット) ビット8〜15(W/R)MACアドレス・マスクのバ
イト1(1=マスク・アドレス・ビット) ビット16〜23(W/R)MACアドレス・マスクの
バイト2(1=マスク・アドレス・ビット) ビット24〜31(W/R)MACアドレス・マスクの
バイト3(1=マスク・アドレス・ビット) フィルタ・マスク・レジスタ・ハイ (オフセット='
h108)デフォルト=0 ビット0〜7(W/R) MACアドレス・マスクのバ
イト4(1=マスク・アドレス・ビット) ビット8〜15(W/R)MACアドレス・マスクのバ
イト5(1=マスク・アドレス・ビット) ビット16〜31(RO)予約。常に0として読出し フィルタ・アドレス・レジスタ0ロー (オフセット
='h10c) ビット0〜7(W/R) 前送されるMACアドレスの
バイト0 ビット8〜15(W/R)前送されるMACアドレスの
バイト1 ビット16〜23(W/R)前送されるMACアドレス
のバイト2 ビット24〜31(W/R)前送されるMACアドレス
のバイト3 フィルタ・アドレス・レジスタ0ハイ (オフセット
='h110) ビット0〜7(W/R) 送られるMACアドレスのバ
イト4 ビット8〜15(W/R) 送られるMACアドレスの
バイト5 ビット16〜23(W/R)宛先ポート。ソース・ポー
トがCPU230ならば、MACアドレスがフィールド
・アドレスに一致するならば、このフィールドがパケッ
トをどのポートへ送るべきかを指定する。ソース・ポー
トがCPU230でなければ、このフィールドが無視さ
れて、フィールドMACアドレスに対するヒットがCP
U230へ送られる ビット24〜31(W/R)予約。常に0として読出し フィルタ・アドレス・レジスタ1ロー (オフセット
='h114)前参照 フィルタ・アドレス・レジスタ1ハイ (オフセット
='h118)前参照 フィルタ・アドレス・レジスタ2ロー (オフセット
='h11c)前参照 フィルタ・アドレス・レジスタ2ハイ (オフセット
='h120)前参照 フィルタ・アドレス・レジスタ3ロー (オフセット
='h124)前参照 フィルタ・アドレス・レジスタ3ハイ (オフセット
='h128)前参照アドレス・フィルタリングに対するmcbregsイン
ターフェース SelectedAdr[47: 0](in) memhashモジュールか
らの宛先アドレス filterHit(out) フィルタ・アドレス・ヒット
が生じるならば、アサート これは、SelectedAdrおよびフィルタ・レジスタに基く
memhashに対する組合せ出力であり、連続的に評
価される。memhashはサンプルする時を知る FilterPort[7:0](out) ソース・ポートがCPU230
であれば、FilterPortは、フィルタ・ヒット
を生成するフィルタ・レジスタからの宛て先ポート・フ
ィールドに等しい。ソース・ポートがCPU230でな
ければ、FilterPortは(EPSMセットアッ
プ・レジスタからの)CpuPortに等しい SourcePort[7:0](in) memhashモジュールから
のソース・ポート番号 SrcPrtIsCpu SourcePort入力がE
PSMセットアップ・レジスタにおけるCpuPort
番号と整合するならば、アサートされる。
【0283】
【表45】MCB割込み情報 MCB404には8つの割込みソースがある。割込みソ
ースは、ソースがマスクされなければ、CPU230を
割込みさせる。CPU230が割込みされずに割込みソ
ースの情報を得ることを可能にするため、ポーリング機
構が使用可能である。割込みソースのマスキングは、割
込みをCPU230からブロックさせるが、情報はポー
リング・ソース・レジスタから依然として得られる。 MCB割込みソース・レジスタ (オフセット='h1
2c)CPU230へ送られる割込みのソース。このレ
ジスタは、EPSM210により更新され、割込みがC
PU230へ送られる。CPU230がこのレジスタを
読出す時、内容はクリアされる。ビットにおける1の値
は、割込みが生じたことを示す。デフォルト=32′h
0000_0000 ビット0(W/R) セキュリティ割込み。セキュリテ
ィ違反が生じると、この割込みが生じる ビット1(W/R) メモリ・オーバーフロー・セッ
ト。メモリがパケットで一杯になりオーバーフロー閾値
が送られると、この割込みが生じる ビット2(W/R) メモリ・オーバーフロー・クリ
ア。メモリが空になりオーバーフロー閾値が送られる
と、この割込みが生じる ビット3(W/R) セットのブロードキャスト。ブロ
ードキャスト・パケットがメモリを一杯にし、ブロード
キャスト閾値が送られると、この割込みが生じる ビット4(W/R) クリアのブロードキャスト。ブロ
ードキャスト・パケットがメモリから空になり、ブロー
ドキャスト閾値が送られると、この割込みが生じる ビット5(W/R) OFの受取り。ポートがパケット
を受取るためのその割付けスペースを越えると、この割
込みが生じる ビット6(W/R) OFの送出。パケットを送信して
いるポートがその割付けスペースを越えると、この割込
みが生じる ビット7(W/R) Rxパケット打切り。パケットが
記憶され始め、メモリが超過すると判定されると、パケ
ットが打切られ、この割込みが生じる ビット8〜31(RO)予約。常に0として読出し 割込みソース・レジスタに対するmcbregsインタ
ーフェース 割込みマスク・レジスタ (オフセット='h130)
CPU230によりマスクされる割込み。任意のビット
における1の値は、割込みがマスクされることを示す。
デフォルト=32′h0000_0000 ビット0(W/R) セキュリティ割込みに対するマス
ク ビット1(W/R) メモリ・オーバーフロー・セット
割込みに対するマスク ビット2(W/R) メモリ・オーバーフロー・クリア
割込みに対するマスク ビット3(W/R) 同報OFセット割込みに対するマ
スク ビット4(W/R) 同報OFクリア割込みに対するマ
スク ビット5(W/R) 受信OF割込みに対するマスク ビット6(W/R) 送信OF割込みに対するマスク ビット7(W/R) Rxパケット打切り割込みに対す
るマスク ビット8〜31(W/R)予約。常に0として読出し ポーリング・ソース・レジスタ (オフセット='h1
34)このレジスタは、マスクされた割込み情報を含
み、所望のビットをクリアするため、CPU230が1
を書込むことによりクリアされる。これにより、CPU
230が割込みの代わりにポーリングすることを許容す
る。CPUは、代わりにポーリングを欲する任意の割込
みソースをマスクしなければならない。 ビット0(W/R) セキュリティ割込み。セキュリテ
ィ違反が生じるならば、この割込みが生じる ビット1(W/R) メモリ・オーバーフロー・セッ
ト。メモリがパケットで一杯となりオーバーフロー閾値
が送られると、この割込みが生じる ビット2(W/R) メモリ・オーバーフロー・クリ
ア。メモリが空になりオーバーフロー閾値が送られる
と、この割込みが生じる。 ビット3(W/R) ブロードキャストOFセット。ブ
ロードキャスト・パケットがメモリを一杯にしてブロー
ドキャスト閾値が送られと、この割込みが生じる ビット4(W/R) ブロードキャストOFクリア。ブ
ロードキャスト・パケットがメモリから空になりブロー
ドキャスト閾値が送られると、この割込みが生じる ビット5(W/R) 受取りOF。ポートがパケットを
受取るその割付けスペースを越えると、この割込みが生
じる ビット6(W/R) 送信OF。パケットを送出してい
るポートがその割付けスペースを越えると、この割込み
が生じる ビット7(W/R) Rxパケット打切り。パケットが
記憶され始め、メモリが越えられると判定されると、パ
ケットが打切られてこの割込みが生じる ビット8〜31(W/R)予約。常に0として読出し ポーリング・ソース・レジスタに対するmcbregs
インターフェース。
【0284】
【表46】バックプレシャ バックプレシャ使用可能 (オフセット='h138)
バックプレシャを使用可能にするビット・マップ ビット0〜23(RO) 予約。常に0として読出し ビット24〜27(W/R)ビット・マップ ビット28〜31(RO) 予約。常に0として読出
し。
【0285】
【表47】ポート・ボンディング 2組の結合されたポートがある。従って、どのポートが
一緒に結合されるかを通知する2つのレジスタがある。 (註)各レジスタにおける僅かに2ビットがセットされ
るべきであり、即ち、2つのポートが一緒に結合される
べきである。 結合ポート・セット0 (オフセット='h13c)こ
のビット・マップはどのポートが当該セットにおいて一
緒に結合されるかを通知する ビット0〜27(W/R) セット0に対するビット・
マップ ビット28〜31(RO) 予約。常に0として読出し 結合ポート・セット1 (オフセット='h140)こ
のビット・マップが、どのポートが当該セットにおいて
一緒に固定されるかを通知する ビット0〜27(W/R) セット1に対するビット・
マップ ビット28〜31(RO) 予約。常に0として読出しVLAN デフォルトVLANレジスタ (オフセット='h14
4)
【0286】ネットワーク・スイッチに対する多重ポー
ト・ポーリング・システムが複数のネットワーク・ポー
トに対する受送信状態を決定するための有効なシステム
を提供することが判る。ポーリング・ロジックが、1つ
照会信号をアサートして複数の送受信状態信号を受取
り、これにより多重ポートの状態を一時に受取る。ポー
リング・ロジックが、全てのポートの状態を連続的に追
跡するように送受信リストを然るべく更新する。このこ
とが、ソース・ポートからのデータを検索する時と伝送
のためポートへデータを提供する時とを決定するためリ
ストを検査する調停および制御ロジックを容易にする。
【0287】本出願の好適な実施例について説明してき
たが、本発明の変形及び変更が本発明の技術的思想を変
更することなく可能であることは、当業者に明らかであ
ろう。
【図面の簡単な説明】
【図1】本発明によるネットワーク・スイッチを含むネ
ットワーク・システムを示す簡略図である。
【図2】図1のネットワーク・スイッチの更に詳細なブ
ロック図である。
【図3】ネットワーク・スイッチのポートを構成する図
2のクワッド・カスケード装置形態を示すブロック図で
ある。
【図4】図3に示した特定のクワッド・カスケード装置
の信号を示す図である。
【図5】図3のクワッド・カスケード装置のプロセッサ
読出しタイミングを示すタイミング図である。
【図6】図3のクワッド・カスケード装置のプロセッサ
書込みタイミングを示すタイミング図である。
【図7】図3のクワッド・カスケード装置のプロセッサ
・バースト読出しアクセスを示すタイミング図である。
【図8】図3の各ポートのバッファ状態照会を示す模範
的タイミング図である。
【図9】図2のHSBにおける同時読出し書込みサイク
ルを示すタイミング図である。
【図10】図2のHSBにおける同時読出し書込みサイ
クルを実行する手順を示すフロー図である。
【図11】図2のスイッチ・マネージャを示すブロック
図である。
【図12】図4のバス・コントローラ・ブロックの更に
詳細なブロック図である。
【図13】図5Aのバス・コントローラ・ブロックのメ
モリ内のバッファを示す図である。
【図14】図12のバス・コントローラ・ブロック内の
受信ポーリング状態マシンの動作を示す状態図である。
【図15】図12のバス・コントローラ・ブロック内の
受信ポーリング状態マシンの動作を示す状態図である。
【図16】図12のバス・コントローラ・ブロック内の
受信ポーリング状態マシンの動作を示す状態図である。
【図17】図12のバス・コントローラ・ブロック内の
受信ポーリング状態マシンの動作を示す状態図である。
【図18】図12のバス・コントローラ・ブロック内の
受信ポーリング状態マシンの動作を示す状態図である。
【図19】図12のバス・コントローラ・ブロック内の
送信ポーリング状態マシンの動作を示す状態図である。
【図20】図12のバス・コントローラ・ブロック内の
送信ポーリング状態マシンの動作を示す状態図である。
【図21】図12のバス・コントローラ・ブロック内の
送信ポーリング状態マシンの動作を示す状態図である。
【図22】図12のバス・コントローラ・ブロック内の
送信ポーリング状態マシンの動作を示す状態図である。
【図23】図12のバス・コントローラ・ブロック内の
送信ポーリング状態マシンの動作を示す状態図である。
【図24】図11のメモリ・コントローラ・ブロックの
更に詳細なブロック図である。
【図25】図11のプロセッサ・コントローラ・ブロッ
クの更に詳細なブロック図である。
【図26】図11のプロセッサ・コントローラ・ブロッ
クの更に詳細なブロック図である。
【図27】図11のプロセッサ・コントローラ・ブロッ
クの更に詳細なブロック図である。
【図28】図11のプロセッサ・コントローラ・ブロッ
クの更に詳細なブロック図である。
【図29】図11のプロセッサ・コントローラ・ブロッ
クの更に詳細なブロック図である。
【図30】図2のThunderLANポート・インタ
ーフェース(TPI)を示す簡略ブロック図である。
【図31】TPIの更に詳細なブロック図である。
【図32】図2のThunderLAN(TLAN)の
各々の構成と機能とを示すブロック図である。
【図33】任意のTLANにより実行される制御リスト
の全体フォーマットを示す図である。
【図34】図2のPCIバスと関連するTPIにより使
用されるTPI周辺要素相互接続(PCI)構成レジス
タの定義を示す図である。
【図35】TPIにより使用されるTPI制御レジスタ
の定義を示す図である。
【図36】図2のCPUのPCI初期設定動作を示すフ
ロー図である。
【図37】TLANの各々に対する受取り動作を示すフ
ロー図である。
【図38】図2の高速バス(HSB)に跨がる受取りデ
ータ転送動作を示すフロー図である。
【図39】HSBに跨がる伝送データ転送動作を示すフ
ロー図である。
【図40】TLANの各々に対する伝送動作を示すフロ
ー図である。
【図41】図2のメモリの構成を示すブロック図であ
る。
【図42】図2のメモリの構成を示すブロック図であ
る。
【図43】図2のメモリの構成を示すブロック図であ
る。
【図44】図2のメモリの構成を示すブロック図であ
る。
【図45】図2のメモリの構成を示すブロック図であ
る。
【図46】図2のメモリの構成を示すブロック図であ
る。
【図47】図2のメモリの構成を示すブロック図であ
る。
【図48】図2のメモリの構成を示すブロック図であ
る。
【図49】同報パケットを組込んだ幾つかの伝送パケッ
ト・リンクを示すブロック図である。
【図50】図6のスタティック・メモリの構成を示すブ
ロック図である。
【図51】図6のスタティック・メモリの構成を示すブ
ロック図である。
【図52】メモリに対するデータ・パケットの受取りと
動作のカットスルーモードにおけるデータ・パケットの
送出とのための図2のネットワーク・スイッチの全体動
作を示すフロー図である。
【図53】メモリからデータ・パケットを伝送するため
の図2のネットワーク・スイッチの全体動作を示すフロ
ー図である。
【図54】図2のスイッチ・マネージャのハッシュ索引
動作を示すフロー図である。
【図55】図2のメモリにおけるハッシュ・テーブル・
エントリを探索するためのハッシュ索引手順を示すフロ
ー図である。
フロントページの続き (71)出願人 591030868 20555 State Highway 249,Houston,Texas 77070,United States o f America (72)発明者 ウィリアム・ジェイ・ウォーカー アメリカ合衆国テキサス州77070,ヒュー ストン,ミルズ・リバー 13154 (72)発明者 ゲイリー・ビー・コズアー アメリカ合衆国テキサス州77388,スプリ ング,フォーレスト・エルムズ・ドライブ 18406 (72)発明者 デール・ジェイ・メイヤー アメリカ合衆国テキサス州77070,ヒュー ストン,ムーアクリーク 11819 (72)発明者 マイケル・エル・ウィットコウスキー アメリカ合衆国テキサス州77375,トムボ ール,エイヴンプレイス・ロード 16223

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 各々が統計数字情報を記憶する少なくと
    も1つの統計レジスタを含むデータ受取り伝送するため
    の複数のネットワーク・ポートと、 前記複数のネットワーク・ポートの各々に接続されたス
    イッチ・マネージャとを備え、該スイッチ・マネージャ
    は、 メモリと、 統計要求信号を検出して、これに応じて前記複数のネッ
    トワーク・ポートの少なくとも1つの前記少なくとも1
    つの統計レジスタから前記統計情報を検索し、統計情報
    を前記メモリに記憶する検索ロジックと、 前記統計情報が前記メモリに記憶された後に統計応答信
    号をアサートする応答ロジックとを含み、 前記スイッチ・マネージャに接続されたプロセッサ・バ
    スと、 前記プロセッサ・バスに接続されて、前記統計要求信号
    をアサートし、前記統計応答信号を受信し、前記統計情
    報を前記メモリから検索するプロセッサと、を備えるネ
    ットワーク・スイッチ。
  2. 【請求項2】 前記スイッチ・マネージャが統計要求レ
    ジスタを含み、該マネージャが更にセットされた時に前
    記統計要求信号を提供する統計要求ビットを含み、 前記プロセッサが、前記統計要求ビットをセットするた
    め前記統計要求レジスタに書込む、請求項1記載のネッ
    トワーク・スイッチ。
  3. 【請求項3】 前記統計要求レジスタが、前記複数のネ
    ットワーク・ポートの1つを識別するため前記プロセッ
    サによりプログラム可能であるポート番号を含み、 前記検索ロジックが、前記ポート番号により識別される
    前記複数のネットワーク・ポートの前記1つから前記統
    計情報を検索する、請求項2記載のネットワーク・スイ
    ッチ。
  4. 【請求項4】 前記複数のネットワーク・ポートの各々
    が、それぞれ対応するレジスタ番号を持つ複数の統計レ
    ジスタを含み、 前記統計要求レジスタが前記プロセッサによりプログラ
    ム可能なレジスタ番号を含み、 前記検索ロジックが、前記統計要求レジスタの前記レジ
    スタ番号により識別される前記複数の統計レジスタの1
    つから前記統計情報を検索する、請求項3記載のネット
    ワーク・スイッチ。
  5. 【請求項5】 前記統計要求レジスタが更に、統計レジ
    スタの番号を指定するため前記プロセッサによりプログ
    ラム可能であるカウントを更に含み、 前記検索ロジックが、前記統計要求レジスタの前記レジ
    スタ番号に対応する統計レジスタで始まる前記カウント
    により指定される前記複数の統計レジスタの連続番号か
    ら前記統計情報を検索する、請求項4記載のネットワー
    ク・スイッチ。
  6. 【請求項6】 前記プロセッサ・バスが割込み信号を含
    み、 前記応答ロジックが、前記統計応答信号を表わす実行可
    能ビットを含む割込みレジスタを含み、ここで前記応答
    ロジックが、前記実行可能ビットをセットして前記割込
    み信号をアサートすることにより前記統計応答信号をア
    サートする、請求項1記載のネットワーク・スイッチ。
  7. 【請求項7】 前記応答ロジックが、前記統計応答信号
    を表わす実行可能ビットを含むポーリング・レジスタを
    含み、ここで前記応答ロジックが、前記ポーリング・レ
    ジスタにおける前記実行可能ビットをセットすることに
    より前記統計応答信号をアサートし、 前記プロセッサが、前記実行可能ビットの状態を決定す
    るため前記ポーリング・レジスタを周期的にポーリング
    する、請求項1記載のネットワーク・スイッチ。
  8. 【請求項8】 前記統計要求信号をアサートし、前記統
    計応答信号を検出し、前記統計情報を前記メモリから検
    索するように前記プロセッサに指令するため、前記プロ
    セッサにより実行されるソフトウエアを記憶するメモリ
    を更に備える、請求項1記載のネットワーク・スイッ
    チ。
  9. 【請求項9】 前記複数のネットワーク・ポートの各々
    が、 前記少なくとも1つの統計レジスタに接続されたネット
    ワーク・インターフェースと、 前記少なくとも1つの統計レジスタに接続されたプロセ
    ッサ・ポート・インターフェースとを含み、 前記複数のネットワーク・ポートの各々の前記プロセッ
    サ・ポート・インターフェースに接続されたポート・イ
    ンターフェース・バスを更に備え、 前記スイッチ・マネージャが、前記ポート・インターフ
    ェース・バスと前記プロセッサ・バスとに接続されたプ
    ロセッサ・インターフェースを含む、請求項1記載のネ
    ットワーク・スイッチ。
  10. 【請求項10】 前記複数のネットワーク・ポートの各
    々が、 前記ネットワーク・インターフェースに接続された少な
    くとも1つの受信バッファと、 前記ネットワーク・インターフェースに接続された少な
    くとも1つの送信バッファと、 前記受信バッファと前記送信バッファとに接続されたデ
    ータ・バス・インターフェースとを含み、 前記複数のネットワーク・ポートの各々の前記データ・
    バス・インターフェースに接続されたデータ・バスを更
    に備え、 前記スイッチ・マネージャが、前記データ・バスに接続
    されたデータ・バス・インターフェースを含む、請求項
    9記載のネットワーク・スイッチ。
  11. 【請求項11】 前記複数のネットワーク・ポートの各
    々がイーサネット・ポートであり、前記統計情報がイー
    サネットの統計情報を含む、請求項1記載のネットワー
    ク・スイッチ。
  12. 【請求項12】 各々が、ネットワーク・インターフェ
    ースと、データ・バス・インターフェースとプロセッサ
    ・ポート・インターフェースとを含む、データを受取り
    伝送するための複数のネットワーク・ポートと、 前記ネットワーク・インターフェースと前記プロセッサ
    ・インターフェースとに接続されて統計情報とコンフィ
    ギュレーション情報とを集める複数の統計レジスタと、 前記複数のネットワーク・ポートの各々の前記データ・
    バス・インターフェースに接続されたデータ・バスと、 前記複数のネットワーク・ポートの各々の前記プロセッ
    サ・ポート・インターフェースに接続されたポート・イ
    ンターフェース・バスと、 プロセッサ・バスと、 前記データ・バスと前記プロセッサ・バスと前記ポート
    ・インターフェース・バスとに接続されて、前記複数の
    ネットワーク・ポートの各々間のデータの流れを制御
    し、かつ統計情報とコンフィギュレーション情報とを集
    めるスイッチ・マネージャと、を備え、該スイッチ・マ
    ネージャが、 前記複数のネットワーク・ポートの1つを識別するプロ
    グラム可能ポート番号を含む統計要求レジスタと、統計
    情報とコンフィギュレーション情報とを記憶する統計バ
    ッファと、前記統計バッファに記憶された前記統計情報
    と前記コンフィギュレーション情報とを表わす実行可能
    ビットを含む完了レジスタとを含むメモリと、 前記メモリに接続されてプログラムされる前記統計レジ
    スタを検出し、これに応じて、前記プログラム可能ポー
    ト番号により識別されるネットワーク・ポートの前記複
    数の統計レジスタから統計情報とコンフィギュレーショ
    ン情報とを検索し、前記統計バッファに検索された統計
    情報とコンフィギュレーション情報とを記憶する検索ロ
    ジックと、 前記メモリに接続されて、統計情報とコンフィギュレー
    ション情報とが前記統計バッファに記憶された後に前記
    実行可能ビットをセットする応答ロジックと、を含み、 前記プロセッサ・バスに接続されて、前記統計要求レジ
    スタをプログラミングし、セットされる前記使用可能ビ
    ットを検出し、前記統計バッファから統計情報とコンフ
    ィギュレーション情報とを検索するプロセッサ、を備え
    るネットワーク・スイッチ。
  13. 【請求項13】 前記統計要求レジスタが更に、前記プ
    ロセッサによりプログラム可能なレジスタ番号を含み、 前記検索ロジックが、前記統計要求レジスタの前記レジ
    スタ番号により識別される前記複数の統計レジスタの1
    つから統計情報とコンフィギュレーション情報とを検索
    する、請求項12記載のネットワーク・スイッチ。
  14. 【請求項14】 前記統計要求レジスタが更に、統計レ
    ジスタ数を指定するカウントを含み、 前記検索ロジックが、前記統計要求レジスタの前記レジ
    スタ番号に対応する統計レジスタで始まる前記カウント
    により指定される前記複数の統計レジスタ数から統計情
    報とコンフィギュレーション情報とを検索する、請求項
    13記載のネットワーク・スイッチ。
  15. 【請求項15】 前記プロセッサ・バスが割込み信号を
    含み、 統計情報とコンフィギュレーション情報とが前記統計バ
    ッファに記憶された後に、前記応答ロジックが更に前記
    割込み信号をアサートする、請求項12記載のネットワ
    ーク・スイッチ。
  16. 【請求項16】 前記プロセッサが、前記実行可能ビッ
    トの状態を検出するため前記完了レジスタを周期的にポ
    ーリングする、請求項12記載のネットワーク・スイッ
    チ。
  17. 【請求項17】 前記プロセッサが、設定される前記実
    行可能ビットに応答してバースト・サイクルを実行し、
    前記メモリから統計情報とコンフィギュレーション情報
    とを検索する、請求項12記載のネットワーク・スイッ
    チ。
  18. 【請求項18】 各々がデータ・パケットを送出し受取
    る少なくとも1つのデータ装置を含む複数のネットワー
    クと、 前記複数のネットワークに接続されて、前記データ・パ
    ケットを転送するネットワーク・スイッチとを備え、該
    ネットワーク・スイッチが各々が統計情報を記憶するた
    めの複数の統計レジスタを含む複数のネットワーク・ポ
    ートと、 前記複数のネットワーク・ポートの各々に接続されたス
    イッチ・マネージャとを含み、該スイッチ・マネージャ
    がメモリと、統計要求信号を検出し、これに応答して、
    前記複数のネットワーク・ポートの少なくとも1つの前
    記複数の統計レジスタの少なくとも1つから前記統計情
    報を検索し、検索された統計情報を前記メモリに記憶す
    る検索ロジックと、前記統計情報が前記メモリに記憶さ
    れた後に統計応答信号をアサートする応答ロジックとを
    含み、 前記ネットワーク・スイッチが、 前記スイッチ・マネージャに接続されたプロセッサ・バ
    スと、 前記プロセッサ・バスに接続されて、前記統計要求信号
    をアサートし、前記統計応答信号を受取り、前記統計情
    報を前記メモリから検索するプロセッサとを含むネット
    ワーク・システム。
  19. 【請求項19】 前記メモリが、前記複数のネットワー
    ク・ポートの1つを識別するプログラム可能ポートと、
    前記複数のネットワーク・ポートの前記1つにおける前
    記複数の統計レジスタの前記各々の1つに対応するプロ
    グラム可能レジスタ番号と、統計レジスタ数を指定する
    プログラム可能カウントとを含む統計要求レジスタを含
    み、 前記プロセッサが、前記統計要求信号をアサートするよ
    うに前記統計要求レジスタをプログラミングし、 前記検索ロジックが、これに応答して、前記プログラム
    可能ポート番号により識別されるネットワーク・ポート
    の前記プログラム可能レジスタ番号により識別される統
    計レジスタで始まる前記カウントと等しい前記複数の統
    計レジスタ数から統計情報を検索する、請求項18記載
    のネットワーク・スイッチ。
  20. 【請求項20】 前記メモリが更に、前記メモリに記憶
    された統計情報を表わす実行可能ビットを含む完了レジ
    スタを含む請求項19記載のネットワーク・スイッチ。
JP36069797A 1996-12-30 1997-12-26 統計読出しアクセスを備えたネットワーク・スイッチ Expired - Fee Related JP4002334B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/774,553 US6233246B1 (en) 1996-12-30 1996-12-30 Network switch with statistics read accesses
US774553 1996-12-30

Publications (2)

Publication Number Publication Date
JPH10233797A true JPH10233797A (ja) 1998-09-02
JP4002334B2 JP4002334B2 (ja) 2007-10-31

Family

ID=25101598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36069797A Expired - Fee Related JP4002334B2 (ja) 1996-12-30 1997-12-26 統計読出しアクセスを備えたネットワーク・スイッチ

Country Status (4)

Country Link
US (1) US6233246B1 (ja)
EP (1) EP0854606B1 (ja)
JP (1) JP4002334B2 (ja)
DE (1) DE69731366T2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098109A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Programmable arbitration system for determining priority of the ports of a network switch
US6763030B1 (en) * 1997-08-05 2004-07-13 Micron Technology, Inc. Simplified switching hub for data communication networks
US6617879B1 (en) 1997-09-17 2003-09-09 Sony Corporation Transparently partitioned communication bus for multi-port bridge for a local area network
US6744728B1 (en) 1997-09-17 2004-06-01 Sony Corporation & Sony Electronics, Inc. Data pipeline timing optimization technique in a multi-port bridge for a local area network
US6104696A (en) 1998-07-08 2000-08-15 Broadcom Corporation Method for sending packets between trunk ports of network switches
US6876653B2 (en) 1998-07-08 2005-04-05 Broadcom Corporation Fast flexible filter processor based architecture for a network device
US6430188B1 (en) 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
US7120117B1 (en) 2000-08-29 2006-10-10 Broadcom Corporation Starvation free flow control in a shared memory switching device
US7145869B1 (en) 1999-03-17 2006-12-05 Broadcom Corporation Method for avoiding out-of-ordering of frames in a network switch
US6850521B1 (en) 1999-03-17 2005-02-01 Broadcom Corporation Network switch
US7031302B1 (en) 1999-05-21 2006-04-18 Broadcom Corporation High-speed stats gathering in a network switch
WO2000072533A1 (en) 1999-05-21 2000-11-30 Broadcom Corporation Stacked network switch configuration
US7315552B2 (en) 1999-06-30 2008-01-01 Broadcom Corporation Frame forwarding in a switch fabric
AU5737300A (en) * 1999-06-30 2001-01-31 Broadcom Corporation Network switch enhancements
US6859454B1 (en) 1999-06-30 2005-02-22 Broadcom Corporation Network switch with high-speed serializing/deserializing hazard-free double data rate switching
WO2001019040A1 (en) 1999-09-03 2001-03-15 Broadcom Corporation Apparatus and method for enabling voice over ip support for a network switch
US7065779B1 (en) 1999-10-13 2006-06-20 Cisco Technology, Inc. Technique for synchronizing multiple access controllers at the head end of an access network
US7131001B1 (en) 1999-10-29 2006-10-31 Broadcom Corporation Apparatus and method for secure filed upgradability with hard wired public key
US7143294B1 (en) 1999-10-29 2006-11-28 Broadcom Corporation Apparatus and method for secure field upgradability with unpredictable ciphertext
US6779043B1 (en) * 1999-11-16 2004-08-17 National Semiconductor Corporation Network address manager
US7539134B1 (en) 1999-11-16 2009-05-26 Broadcom Corporation High speed flow control methodology
AU1580301A (en) 1999-11-16 2001-05-30 Broadcom Corporation Network switch with high-speed serializing/deserializing hazard-free double datarate switching
AU1754801A (en) 1999-11-18 2001-05-30 Broadcom Corporation Table lookup mechanism for address resolution in a packet network switch
ATE265774T1 (de) 1999-12-07 2004-05-15 Broadcom Corp Spiegelung in einer netzwerkvermittlungsstapelanordnung
US7009973B2 (en) 2000-02-28 2006-03-07 Broadcom Corporation Switch using a segmented ring
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
US7103053B2 (en) 2000-05-03 2006-09-05 Broadcom Corporation Gigabit switch on chip architecture
US6826561B2 (en) 2000-05-22 2004-11-30 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
EP1162788B1 (en) 2000-06-09 2012-11-21 Broadcom Corporation Trunking and mirroring across stacked gigabit switches
DE60126533T2 (de) 2000-06-19 2007-11-22 Broadcom Corp., Irvine Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung
US7126947B2 (en) 2000-06-23 2006-10-24 Broadcom Corporation Switch having external address resolution interface
US6999455B2 (en) 2000-07-25 2006-02-14 Broadcom Corporation Hardware assist for address learning
US7227862B2 (en) 2000-09-20 2007-06-05 Broadcom Corporation Network switch having port blocking capability
US6851000B2 (en) 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US7274705B2 (en) 2000-10-03 2007-09-25 Broadcom Corporation Method and apparatus for reducing clock speed and power consumption
US7020166B2 (en) 2000-10-03 2006-03-28 Broadcom Corporation Switch transferring data using data encapsulation and decapsulation
US7120155B2 (en) 2000-10-03 2006-10-10 Broadcom Corporation Switch having virtual shared memory
US6988177B2 (en) 2000-10-03 2006-01-17 Broadcom Corporation Switch memory management using a linked list structure
US7420977B2 (en) 2000-10-03 2008-09-02 Broadcom Corporation Method and apparatus of inter-chip bus shared by message passing and memory access
US7035286B2 (en) 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US6850542B2 (en) 2000-11-14 2005-02-01 Broadcom Corporation Linked network switch configuration
US7035255B2 (en) 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
US7424012B2 (en) 2000-11-14 2008-09-09 Broadcom Corporation Linked network switch configuration
US7085287B1 (en) 2001-06-27 2006-08-01 Cisco Technology, Inc. Map routing technique implemented in access networks
US7688828B2 (en) * 2001-06-27 2010-03-30 Cisco Technology, Inc. Downstream remote physical interface for modular cable modem termination system
US7209442B1 (en) 2001-06-27 2007-04-24 Cisco Technology, Inc. Packet fiber node
US7639617B2 (en) * 2001-06-27 2009-12-29 Cisco Technology, Inc. Upstream physical interface for modular cable modem termination system
US7139923B1 (en) 2001-06-27 2006-11-21 Cisco Technology, Inc. Technique for synchronizing network devices in an access data network
US7355970B2 (en) 2001-10-05 2008-04-08 Broadcom Corporation Method and apparatus for enabling access on a network switch
US7420987B1 (en) 2002-01-17 2008-09-02 Juniper Networks, Inc. Arbiter for multiple mutually exclusive vectors
US7039010B2 (en) 2002-03-06 2006-05-02 Broadcom Corporation Optimized data path structure for multi-channel management information base (MIB) event generation
JP3996010B2 (ja) 2002-08-01 2007-10-24 株式会社日立製作所 ストレージネットワークシステム、管理装置、管理方法及びプログラム
US7583704B1 (en) 2003-06-10 2009-09-01 Carl Walker Synchronizing separated upstream and downstream channels of cable modem termination systems
US8843604B2 (en) 2003-06-19 2014-09-23 International Business Machines Corporation Method for interlocking a server to a server system and a computer system utilizing the same
JP4516306B2 (ja) 2003-11-28 2010-08-04 株式会社日立製作所 ストレージネットワークの性能情報を収集する方法
US7835274B2 (en) * 2004-05-25 2010-11-16 Cisco Technology, Inc. Wideband provisioning
US7646786B2 (en) * 2004-05-25 2010-01-12 Cisco Technology, Inc. Neighbor discovery in cable networks
US7532627B2 (en) * 2004-05-25 2009-05-12 Cisco Technology, Inc. Wideband upstream protocol
US8149833B2 (en) * 2004-05-25 2012-04-03 Cisco Technology, Inc. Wideband cable downstream protocol
US7864686B2 (en) * 2004-05-25 2011-01-04 Cisco Technology, Inc. Tunneling scheme for transporting information over a cable network
US7817553B2 (en) * 2004-05-25 2010-10-19 Cisco Technology, Inc. Local area network services in a cable modem network
US7539208B2 (en) * 2004-05-25 2009-05-26 Cisco Technology, Inc. Timing system for modular cable modem termination system
US8102854B2 (en) * 2004-05-25 2012-01-24 Cisco Technology, Inc. Neighbor discovery proxy with distributed packet inspection scheme
US7720101B2 (en) * 2004-05-25 2010-05-18 Cisco Technology, Inc. Wideband cable modem with narrowband circuitry
US7630361B2 (en) * 2005-05-20 2009-12-08 Cisco Technology, Inc. Method and apparatus for using data-over-cable applications and services in non-cable environments
US7701951B2 (en) * 2006-03-06 2010-04-20 Cisco Technology, Inc. Resource reservation and admission control for IP network
US8910168B2 (en) 2009-04-27 2014-12-09 Lsi Corporation Task backpressure and deletion in a multi-flow network processor architecture
US8949582B2 (en) 2009-04-27 2015-02-03 Lsi Corporation Changing a flow identifier of a packet in a multi-thread, multi-flow network processor
US9300597B2 (en) 2009-04-27 2016-03-29 Intel Corporation Statistics module for network processors in virtual local area networks
US9152564B2 (en) 2010-05-18 2015-10-06 Intel Corporation Early cache eviction in a multi-flow network processor architecture
US8873550B2 (en) 2010-05-18 2014-10-28 Lsi Corporation Task queuing in a multi-flow network processor architecture
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US9727508B2 (en) 2009-04-27 2017-08-08 Intel Corporation Address learning and aging for network bridging in a network processor
US8874878B2 (en) 2010-05-18 2014-10-28 Lsi Corporation Thread synchronization in a multi-thread, multi-flow network communications processor architecture
US8949578B2 (en) 2009-04-27 2015-02-03 Lsi Corporation Sharing of internal pipeline resources of a network processor with external devices
US10958506B2 (en) 2017-12-07 2021-03-23 Cisco Technology, Inc. In-situ OAM (IOAM) network risk flow-based “topo-gram” for predictive flow positioning
US11128546B2 (en) 2017-12-07 2021-09-21 Cisco Technology, Inc. Dynamic bypass tunnel instantiation based on analytical health risk heatmap
CN110049144B (zh) * 2018-01-17 2023-05-23 厦门雅迅网络股份有限公司 一种通过以太网获取网络设备端口的方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2011935A1 (en) 1989-04-07 1990-10-07 Desiree A. Awiszio Dual-path computer interconnect system with four-ported packet memory control
US5001706A (en) * 1989-06-23 1991-03-19 At&T Bell Laboratories Packet cross connect switch system including improved throughput
US5495482A (en) 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
EP0453863A2 (en) 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
EP0495575B1 (en) 1991-01-18 1997-08-06 National Semiconductor Corporation Repeater interface controller
US5367643A (en) 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5295133A (en) 1992-02-12 1994-03-15 Sprint International Communications Corp. System administration in a flat distributed packet switch architecture
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US5530872A (en) 1992-12-23 1996-06-25 International Business Machines Corporation Method and system for directing device driver to service multiple sequential interrupt requests generated by I/O device connected thereto
US5483640A (en) 1993-02-26 1996-01-09 3Com Corporation System for managing data flow among devices by storing data and structures needed by the devices and transferring configuration information from processor to the devices
US5515376A (en) 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5521913A (en) 1994-09-12 1996-05-28 Amber Wave Systems, Inc. Distributed processing ethernet switch with adaptive cut-through switching
US5561669A (en) 1994-10-26 1996-10-01 Cisco Systems, Inc. Computer network switching system with expandable number of ports
US5566160A (en) 1994-11-10 1996-10-15 Advanced Micro Devices, Inc. Media attachment unit management interface
US5923654A (en) * 1996-04-25 1999-07-13 Compaq Computer Corp. Network switch that includes a plurality of shared packet buffers
US5761534A (en) 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5687173A (en) * 1996-07-10 1997-11-11 Cascade Communications Corp. Addressable high speed counter array

Also Published As

Publication number Publication date
JP4002334B2 (ja) 2007-10-31
US6233246B1 (en) 2001-05-15
DE69731366T2 (de) 2006-02-02
DE69731366D1 (de) 2004-12-02
EP0854606B1 (en) 2004-10-27
EP0854606A2 (en) 1998-07-22
EP0854606A3 (en) 1999-06-16

Similar Documents

Publication Publication Date Title
JP4002334B2 (ja) 統計読出しアクセスを備えたネットワーク・スイッチ
JP4002336B2 (ja) ネットワーク・スイッチのためのマルチポート・ポーリング・システム
JP3806239B2 (ja) 共用メモリ・システムを有するネットワーク・スイッチ
JP4002337B2 (ja) 多重バス・アーキテクチャを有するネットワーク・スイッチ
JPH10215266A (ja) 別のカットスルー・バッファを持つネットワーク・スイッチ
JPH10232851A (ja) ネットワーク・スイッチのポートの優先順位を決定するためのプログラマブル仲裁システム
US6201789B1 (en) Network switch with dynamic backpressure per port
JPH10243013A (ja) 同時読出し書込みサイクルをネットワーク・スイッチにおいて実行する方法および装置
EP0854613B1 (en) A network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
US6111875A (en) Apparatus and method for disabling external frame forwarding device for use with a network switch
US6424659B2 (en) Multi-layer switching apparatus and method
US6744776B1 (en) Servicing priority traffic in multiport network switch
US7031305B1 (en) Apparatus and method for programmable memory access slot assignment
US6084878A (en) External rules checker interface
US6895015B1 (en) Dynamic time slot allocation in internal rules checker scheduler
US7120155B2 (en) Switch having virtual shared memory
JPH10210069A (ja) 異なるバス間にネットワーク・データを転送する多重バス構造とブリッジ・インターフェースとを備えたネットワーク・スイッチ
EP1248415B1 (en) Switch having virtual shared memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041220

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: 20070720

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070817

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

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: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees