JP4642755B2 - ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置 - Google Patents

ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置 Download PDF

Info

Publication number
JP4642755B2
JP4642755B2 JP2006518921A JP2006518921A JP4642755B2 JP 4642755 B2 JP4642755 B2 JP 4642755B2 JP 2006518921 A JP2006518921 A JP 2006518921A JP 2006518921 A JP2006518921 A JP 2006518921A JP 4642755 B2 JP4642755 B2 JP 4642755B2
Authority
JP
Japan
Prior art keywords
port
loop
register
switch
lip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006518921A
Other languages
English (en)
Other versions
JP2007529151A (ja
Inventor
カール ミース,
ブルース グレゴリー ウォーレン,
Original Assignee
エミュレックス デザイン アンド マニュファクチュアリング コーポレーション
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 エミュレックス デザイン アンド マニュファクチュアリング コーポレーション filed Critical エミュレックス デザイン アンド マニュファクチュアリング コーポレーション
Publication of JP2007529151A publication Critical patent/JP2007529151A/ja
Application granted granted Critical
Publication of JP4642755B2 publication Critical patent/JP4642755B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/357Fibre channel switches

Description

(出願関連情報)
本出願は、「Method and Apparatus for Switching Fibre Channel Arbitrated Loop Devices」と題された、2003年7月1日出願の米国実用新案出願第10/612,753号の一部継続出願であり、該実用新案出願は、「Method and Apparatusfor Switching In a Fibre Channel Network」と題された、2002年7月2日出願の米国仮出願第60/393,164号、および「System and Method for Multiple Trunk Connections Between Fibre Channel Switches」と題された2002年7月10日提出の米国仮出願第60/395,107号に対して優先権を主張する。これら全てをここに完全に記載したものとして本明細書に援用する。
ファイバチャネルとは、HIPPI、IPI、SCSI、IP、ATM、FDDIおよびその他のもの等のハイレベルなストレージおよびネットワーキングのプロトコルをサポートしているハイパフォーマンスシリアル伝送プロトコルを記載しているAmerican National Standards Institute(ANSI)規格のセットである。ファイバチャネルは、チャンネルユーザおよびネットワークユーザの両方の要求を満たす新規なI/Oインタフェースを作成するために、チャネル技術の利点をネットワーク技術と統合するべく作成された。チャネル技術は通常、閉じられた(closed)、構造的で予測可能な環境においてI/Oシステムによって実施され、ネットワーク技術は通常、開かれた(open)、非構造的で予測不可能な環境に当てはまる。
ファイバチャネルの利点には、次のものが含まれる。第1に、ギガビット速度で、現在の、コンピュータとストレージとの間およびコンピュータとコンピュータインターフェースとの間の帯域幅制限を開放するのに重要なハイパフォーマンスを実現する。第2に、光ファイバ技術を利用して、ファイバチャネルは従来のI/Oチャネルの距離制限を克服し、ギガビット速度で6マイルを超える距離でデバイスを相互接続することができる。第3に、ファイバチャネルは、ハイレベルのプロトコル独立であり、同じ媒体上で様々なプロトコルを運ぶことができる。第4に、ファイバチャネルはノイズ特性が非常に小さいという特性を持つ光ファイバ技術を使用している。最後に、ファイバチャネルは通常扱いにくい銅線を小さくて軽量な光ファイバケーブルに置き換えるため、配線が簡単である。
ファイバチャネルは、ポイントツーポイント、アービトレート型ループ、ファブリック接続という3つの異なるトポロジをサポートしている。ポイントツーポイントトポロジは、2つのデバイスを直接接続する。アービトレート型ループトポロジは、デバイスをループに接続する。ファブリック接続トポロジは、デバイスをファブリックと直接接続する。
ファイバチャネルによるアービトレート型ループトポロジでは、126までのデバイスと、ファブリックスイッチへの1つの接続とが単一のアービトレート型ループ物理アドレス(ALPA)空間に存在し得る。ALPA空間内のデータは、デイジーチェーン方式でノードからノードへと物理的に移動し、最終的にループ内を移動する。ループ上のデバイスによるコントロールは、ループアービトレーションのプロセスを通して取得され、その後アービトレーションに勝ったデバイスがデータを送る。半二重モードでは、任意の時点において1つのデバイスのみがデータを送る。全二重モードでは、2つのデバイスが同時に相互に通信することができる。
一般に、アービトレート型ループトポロジの不利な点には次のものが含まれる。第1に、これはブロッキングトポロジである。すなわち、(ブロードキャストモードを除き)任意の時点においてノードペア間で1つの接続のみが許可される。第2に、6ワードバッファを有しているため、各デバイスでデバイスバファリングが発生し、225ナノ秒までの遅延が発生する。この遅延は、ループの各デバイスに付加される。多数のデバイスがループに接続される場合、この遅延は通信するデバイスにオーバヘッドをもたらす。第3に、距離によってもループに遅延が付加され、各デバイスに対して付加される。第4に、全てのデバイスが1つのループ上にあるため、任意のデバイスの障害によってループ全体の障害やリセットが発生するという点で強さが問題となる。第5に、利用可能な全帯域幅がループ自体の帯域幅に限定される。
ループデバイスは一般に、ハブを用いてアービトレート型ループに接続される。ハブはパッシブデバイスであるため、ハブ内部にループが存在する。ポートバイパス回路を使用することによってデバイスが取り外されるか、電源を切られるか、あるいは障害が発生した場合、ほとんどの場合においてハブはループの統合性を維持する。ハブは単に信号を受け取り、個々のデバイスに信号を渡す。
ハブの利点としては、低コスト、低い複雑性、使いやすさ、多数のファイバチャネルアービトレート型ループをサポートしているデバイスとの相互動作が可能であることが含まれる。
また、ファイバチャネルアービトレート型ループデバイスとハブとの相互接続には多数の不利点が存在する。第1に、ハブはループトポロジのブロッキングの性質に対応していない。第2に、ジッターがバイパスノードから伝播される。この付加効果によって、多数のデバイスが相互に接続されるときにループの不安定性が生じる。第3に、データが現在転送されていて、ハブに取り付けられたデバイスがオフになっているか、このデバイスに障害が発生しているとき、ループがリセットされることがあり、これは通信中のデバイスにとって破壊的である。第4に、デバイスがライブループに挿入される場合、ループはリセットされ、これは通信中のデバイスにとって破壊的である。
「Fibre Channel Switching」と題された、Bermanの米国特許第6,185,203号において、接続された各デバイスに対して1つの個別のポートコントロールモジュールと、中央ルータモジュールと、スイッチコアモジュールと、ファブリックコントロールモジュールと、ブルータ(ブリッジ/ルータ)モジュールとを備える装置が開示されている。ポートコントロールモジュールは、個別のルート要求接続と個別のルート応答接続とによってルータモジュールに接続される。この構造を通して、ルート要求はポートコントロールモジュールからルータへ提供され得、同時に、ルータはルート要求応答を同じポートコントロールモジュールへ提供する。好ましくは、一般的なルート要求チャネルが利用される。したがって、他のポートがルート要求をアービトレーションし中央ルータに送っているときに、あらかじめ要求したポートへルート応答を返信するための装置が提供される。さらに一般的には、この装置は、複数の要求者からの読み取りリソース提供リソース要求の読み取りを提供し、同時に先の要求者に対してリソース許可応答の返信を提供する。
「Methods And Apparatus For Fiber Channel Interconnection Of Private Loop Devices」と題されたBermanの米国特許第6,118,776号において、ファイバチャネルプライベートループデバイス相互接続システムを通して複数のプライベートループデバイス間におけるファイバチャネル相互接続のための方法および装置が提供されている。好ましい実施形態において、ファイバチャネルプライベートループデバイス相互接続システムは、ファブリックまたはインテリジェントブリッジングハブである。一局面において、ファイバチャネルプライベートループデバイスは、1つ以上のプライベートループデバイスを含む、あるいは含むように適合された、2つ以上のアービトレート型ループと接続される。好ましくは、相互接続システムは、どのファイバチャネルフレームがファブリックを通してルーティングを試行されなければならないかを決めるためにインカミングアービトレート型ループ物理アドレス(ALPA)をフィルタリングする、ルーティングフィルタを含んでいる。相互接続システムの多数のトポロジが実現可能である。別の態様では、論理ループを複数のセットにスイッチングし、各セットを物理アービトレート型ループに割り当て、アービトレート型ループをファイバチャネルプライベートループデバイス相互接続システムに接続することによって、プライベートループデバイスの論理ループを実装する方法が提供される。接続デバイスを一定範囲内のアービトレート型ループ物理アドレスに制限するためのさらなる方法が提供される。さらに、ホストをリセットする方法、一般に最初のアービトレート型ループへのストレージ装置の追加を検出し、その後アービトレート型ループ、または1つまたは複数のホストが2番目のアービトレート型ループに存在するループをリセットする方法が提供される。SCSIイニシエータを使用したオペレーションの方法は、アドレスマッチが見つからないか、アドレスマッチが見つかったが宛先ALPAを持つデバイスが宛先に対応するアービトレート型ループに存在しない場合、リンクサービス拒否を作成する。
必要なことは、低コストかつ展開しやすい方法でファイバチャネルアービトレート型ループデバイスを相互接続できることである。
したがって、本発明の目標は、これらの問題を低コストで、展開や管理が容易なソリューションによって解決または緩和する方法と装置を提供することである。
複数のファイバチャネルループデバイス間でファイバチャネルアービトレート型ループシステムを切り替えるための方法と装置が提供される。本発明の1つの態様においては、システムスイッチは少なくとも一部のアービトレート型ループプリミティブを基にしていた。例示的な相互接続システムは、第1ポートと第2ポートを含み、両方が特定のアービトレート型ループプリミティブをモニタするためのポートロジック、接続装置、ALPAアドレスとその関連ポートから構成されるルーティングテーブルを含むルート決定装置、各ポートに接続されたルート決定装置を含み、接続装置がアービトレート型プリミティブを基にしてポート間のパスを作成する。1つの実施形態では、接続装置は、クロスバースイッチである。スイッチにポート間のパスを作成させるアービトレート型ループプリミティブの例は、ARB、OPN、CLSの1つまたは複数を含む。
ファイバチャネルアービトレート型ループデバイスを相互接続するさらなる他のシステムは、1つまたは複数のファイバチャネルアービトレート型ループデバイスを含む第1アービトレート型ループ、第2アービトレート型ループデバイス、ファイバチャネルアービトレート型ループ相互接続システム、第1アービトレート型ループと組みになったポートロジックを含む第1ポート、第2アービトレート型ループと組みになったポートロジックを含む第2ポート、ポート間でルートを選択するルート決定装置を含む相互接続システム、ルート決定装置のコントロール下にあるポート間のフレームを切り替えるため第1および第2ポートとルート決定装置と組みになっている接続装置から構成されている。前記ルート決定装置はポートから受け取ったファイバチャネルアービトレート型ループプリミティブを基にしてルートを選択し、ALPAアドレスとその関連ポートを含んでいるルーティングテーブルを含む。ここでも、接続装置はクロスバースイッチであり、アービトレート型ループプリミティブはARB、Open、Closeである。
本発明のさらなる別の態様では、トランキングのための方法と装置が提供される。例証として、ファイバチャネルアービトレート型ループデバイスを相互接続するシステムに、第1ファイバチャネルアービトレート型ループスイッチと、第2ファイバチャネルアービトレート型ループスイッチが含まれ、両方がポートロジック、接続装置、ルート決定ロジック、ARB、OPN、CLSのような特定のアービトレート型ループプリミティブの受取りを基にしてルートを作成し、第1ループスイッチと第2ループスイッチが2つ以上のファイバチャネルアービトレート型ループリンクによって相互接続され、両方のポートでフレームが伝送されるようなルート決定ロジックを含むことがある。
本発明のさらなる別の態様では、システムと方法は、ファイバチャネルアービトレート型ループシステムでのデバイスアクセスフェアネスを保証するように試みる。かかるシステムは、それぞれがポートロジック、ルート決定装置、接続装置、フェアネスを実施するための定義済みループコントロール基準を実装しているロジックを含む、複数のファイバチャネルアービトレート型ループポートを含むことがある。例証として、ロジックによって実装される定義済みループコントロール基準は、接続済み装置が他の装置をオープンする回数を制限することができる。特に、接続済み装置が他の装置をシーケンシャルにオープンする回数を制限することができる。これは、オープンの回数、特にシーケンシャルの回数をカウントするカウンタによって実装されるのが適切である。任意で、システムは進んでデバイスを閉じることができる。フェアネスに関するさらなる他の態様では、ポートには、ポートタイプなどを基にして異なるアクセスプライオリティを割り当てることができる。さらなる他の態様では、プライオリティ順番制がデバイスアクセスフェアネスを保証するのに役立つ。
本発明のさらなる別の態様では、ファイバチャネルアービトレート型ループシステムでデバイスゾーニングが使用される。例示的なシステムは、それぞれがポートロジック、ルート決定装置、接続装置(たとえばいわゆる第1ポートで受け取ったLIPが選択的に1つまたは複数のポートに伝播される特定のファイバチャネルアービトレート型ループプリミティブの受取りを基にしてファイバチャネルアービトレート型ループポートに接続するように調整されたクロスバースイッチ)を含む複数のファイバチャネルアービトレート型ループポートを含む。
(本発明の目的)
したがって、本発明は、ARB、OPN、CLSのようなアービトレート型ループプリミティブを少なくとも一部を基にして効果的かつ効率的に切り替えるファイバチャネルアービトレート型ループシステムを提供することを目的としている。
本発明のさらなる一つの目的は、優れたデバイスアクセスフェアネスを持つシステムと方法を提供することである。
本発明のさらなる一つの目的は、フレームが複数のポートで転送されるようなトランキングを持つシステムを提供することである。
さらに本発明は、デバイスゾーニングを使用するシステムと方法を提供することも目的としている。
目次
1. 定義
2. ループスイッチフィーチャセット
3. 機能概要
3.1 ハブエミュレーションモード(共有帯域幅)
3.2 非オーバラップハードゾーニング(複数ループ)
3.3 スイッチング(セグメント化)モード
3.4 オーバラップハードゾーニング(バーチャルループ)
4. アーキテクチャの説明
4.1 ポートロジック
4.2 ルータ
4.3 スイッチロジック
4.4 ファイバチャネルポート
4.5 内部Serdes
5. 機能の説明
5.1 ループスイッチ内部セルフテスト
5.2 内部ループバック
5.3 ポート挿入
5.3.1 ワードシンクの確立
5.3.2 Vixelループスイッチへの直接接続の検出
5.3.3 接続でのシリアル番号交換(SEOC)
5.3.4 SEOC障害
5.3.5 ポート挿入の完了
5.3.6 ポート挿入障害
5.4 ポートバイパス
5.5 デバイスディスカバリ
5.5.1 フルループスイッチ初期化時のパッシブデバイスディスカバリ
5.5.2 LILPありシャドーデバイスALPA解決
5.5.3 LILPなしシャドーデバイスALPA解決
5.5.4 デバイスディスカバリエラー
5.5.5 ループ初期化タイムアウト
5.6 ARBffによるアイドル交換
5.7 スイッチング(セグメント化)モードオペレーション
5.7.1 同じポートのソースノードと宛先ノード
5.7.2 異なるポートでのソースノードと宛先ノード
5.7.3 同時オープン接続要求
5.7.4 非存在デバイスに送られるOPN
5.7.5 OPNに続くR_RDY
5.7.6 ノード障害
5.7.7 マイクロプロセッサ支援オペレーション
5.8 カスケード接続
5.8.1 シングルカスケード
5.8.2 重複カスケード−トランキング
5.9 ポートフェアネス
5.9.1 シングルループスイッチフェアネス
5.9.2 フェアネスに対する複数ループスイッチシステムの影響
5.9.3 フェアネスに対する反復クロージャ影響
5.10 ゾーニング
5.10.1 非オーバラップゾーニング
5.10.2 オーバラップゾーニング(スイッチングモード)
5.11 LIPアイソレーション
5.11.1 非ステルスモード
5.11.2 ステルスモード
5.11.3 ステルスモードアイソレーション。シングルASIC、シングルLIPゾーンのデバイス、ルートブロッキングなし
5.11.4 ステルスモードアイソレーション。シングルASIC、マルチLIPゾーンのデバイス、ルートブロックなし
5.11.5 ステルスモードアイソレーション。シングルASIC、マルチLIPゾーンのデバイス、ルートブロックあり
5.11.6 ステルスモードアイソレーション。マルチASIC、マルチLIPゾーンのデバイス、ルートブロックあり
5.11.7 ステルスモードアイソレーション、マルチASIC、マルチゾーン、接続でのHBA #1 & HBA #2
5.11.8 ステルスモードアイソレーション、マルチASIC、マルチLIPゾーンのデバイス、同時LIP
5.12 CPUポートインタフェース
5.12.1 CPUポートの説明と動作
5.13 ポート管理機能
5.13.1 ポートコントロール
5.13.2 ポートステータス
5.13.3 順序集合定義
5.13.4 ユーザマッチ機能
5.13.5 順序集合伝送
5.13.6 GBIC/SFPステータスおよびコントロール
5.13.7 FBIC/SFPシリアルID
5.13.8 エラーカウンタ
5.13.9 ポートモニタリングモード
5.13.10 ポート外部ループバック
5.13.11 周波数チェック回路
5.13.12 ポートオペレーションポリシー
5.13.13 ALPAからポートへのマップ
5.13.14 トラフィックパターン(スイッチモードのみ)
5.13.15 ポート/ループセグメント利用率測定
5.13.16 ポートオーバラップハードゾーニング(スイッチモードのみ)
5.13.17 ローデータスヌープポート
5.14 ループスイッチ管理機能
5.14.1 入力データ信号
5.15 ループスイッチ管理機能
5.15.1 環境モニタリング
5.15.2 ループステート検出とLED
5.15.3 ループ初期化
5.16 FCポートインタフェース
5.16.1 GBIC/SFPピン
5.16.2 Lock−to_Reference
5.17 システムインタフェース
5.18 マイクロプロセッサインタフェース
5.18.1 割込み信号
5.18.2 ICシリアルインタフェース
5.18.3 パラレルプロセッサインタフェース
5.19 シリアルEEPROMインタフェース
6. Vixel SOC422ループスイッチのレジスタ定義
6.1 ルータレジスタ定義
6.1.1 ルータ構成レジスタ
6.1.2 ルータコントロールレジスタ#1
6.1.3 ルータコントロールレジスタ#2
6.1.4 リムーブコネクション/ペンディングOPNレジスタ
6.1.5 ストール閾値レジスタ
6.1.6 ルータローカルSEOC USERレジスタ
6.1.7 RTR SWマトリクス構成レジスタ
6.1.8 ポートアクティブステータスレジスタ
6.1.9 スイッチマトリクスコントロールレジスタ
6.1.10 スイッチマトリクス選択レジスタ
6.1.11 Rem conn_cntレジスタ
6.1.12 ポートアンフェアレジスタ
6.1.13 ポート15−0 割込みステータスレジスタ
6.1.14 フューチャポート31−23/ポート22−16割込みステータスレジスタ
6.1.15 ルータステータスレジスタ#1
6.1.16 ルータステータスレジスタ#2(ルータ割込みステータス)
6.1.17 ルータステータスレジスタ#3
6.1.18 ルータステータスレジスタ#4
6.1.19 ブロックALPA/ルータループアップカウンタレジスタ
6.1.20 ルータコントロールレジスタ#3
6.1.21 システムLEDオーバライドレジスタ
6.1.22 ルータ割込みマスクレジスタ
6.1.23 ポートフェアネスコントロールレジスタ
6.1.24 バリアブルプライオリティタイマーレジスタ
6.1.25 ルータオーバラップハードゾーンコントロールレジスタ
6.1.26 ルータオープンポートマップレジスタ
6.1.27 ルータALPAポートマップレジスタ
6.1.28 ルータALPAポジションマップ(LILPペイロード)レジスタ
6.1.29 ルータシリアルEEPROMキャプチャレジスタ
6.1.30 ループ初期化マスターWWNレジスタ
6.1.31 ソフトウェアオーバライドイニシエータビットマップ
6.1.32 キャプチャイニシエータビットマップ
6.1.33 トランク分類レジスタ
6.1.34 ラーンドイニシエータポートマップレジスタ
6.1.35 宛先ALPAでのクローズカウントレジスタ
6.1.36 Per ALPAオープンカウンタマックスレジスタ
6.1.37 ステルスアイソレーションコントロールレジスタ#1
6.1.38 ステルスアイソレーションコントロールレジスタ#2
6.1.39 ストップトラフィックコントロールレジスタ
6.1.40 ステータスレジスタ#5
6.1.41 ステータスレジスタ#5割込みのためのマスクレジスタ
6.1.42 ステルスタイムアウトレジスタ
6.1.43 ステータスレジスタ#6(ステルス状態)
6.1.44 ステルスLIPインタースイッチ伝送ペイロードレジスタ
6.1.45 ステルス受信インタースイッチASICフレームレジスタ
6.1.46 LIFAフレーム修正レジスタ
6.1.47 LIRPフレーム修正レジスタ
6.1.48 ルートブロッキングレジスタ、グループ0から7まで
6.1.49 ルートブロッキングレジスタ、グループ8からEまで
6.1.50 LIPアイソレーションゾーンコントロールレジスタ
6.1.51 ステルスジェネリックインタースイッチフレームへッダレジスタ
6.1.52 ステルスジェネリックインタースイッチフレーム伝送ペイロードレジスタ
6.1.53 ステルスジェネリックインタースイッチフレームペイロードレジスタ
6.2 ポートレジスタ定義
6.2.1 ポート構成レジスタ
6.2.2 ポートコントロールレジスタ#1
6.2.3 ポートユーザ順序集合マッチレジスタ
6.2.4 ポートユーザ順序集合伝送レジスタ
6.2.5 ユーザ10Bワード
6.2.6 ローカル SEOC P_INFO
6.2.7 ポート割込みマスクレジスタ#1
6.2.8 ポート割込みマスクレジスタ#2
6.2.9 No Comma Timerレジスタ
6.2.10 OS/CRCエラー閾値レジスタ
6.2.11 ポートコントロールレジスタ#2
6.2.12 ストールカウンタレジスタ
6.2.13 ポートエラー/変更ステータスレジスタ#1
6.2.14 ポートエラー/変更ステータスレジスタ#2
6.2.15 ポートステータスレジスタ#1
6.2.16 ポートステータスレジスタ#2
6.2.17 ポートディテクタレジスタ#1
6.2.18 ポートディテクタレジスタ#2
6.2.19 ポートOSエラーカウント
6.2.20 カレント宛先レジスタ
6.2.21 ポートマッチカウントレジスタ
6.2.22 ポート利用率レジスタ
6.2.23 ポートキャプチャ順序集合レジスタ
6.2.24 無効OPN/ブロードキャスト(ARBx)ALPAキャプチャレジスタ
6.2.25 ポート挿入/ルックアップカウンタレジスタ
6.2.26 ポートCRCエラーALPAレジスタ
6.2.27 RXフレームカウントレジスタ
6.2.28 ポート接続試行レジスタ
6.2.29 ポート接続延期レジスタ
6.2.30 ポートクロックデルタカウントタ
6.2.31 Src/Dest ALPAレジスタ
6.2.32 ポートALPAビットマップレジスタ
6.2.33 リモートSEOC P_INFOレジスタ
6.2.34 リモートSEOC USERレジスタ
6.2.35 GBIC/SFPリードアドレスレジスタ
6.2.36 ポートオープンロックアップマックスカウントレジスタ
6.2.37 GBIC/SFPシリアルIDデータレジスタ
6.2.38 ミスマッチOPNのSrc/Dest ALPAレジスタ
6.2.39 OPNミスマッチレジスタ上の宛先ID
6.2.40 未知のOPN/LostノードからのSrc/Dest ALPAレジスタ
6.2.41 その他のコントロールレジスタ
6.2.42 SCSI統計情報ALPA
6.2.43 SCSIリードIOカウンタ
6.2.44 SCSIライトIOカウンタ
6.2.45 SCSIリードバイトカウンタ
6.2.46 SCSIライトバイトカウンタ
6.3 CPUポートレジスタ
6.3.1 割込みレジスタ
6.3.2 割込みマスクレジスタ
6.3.3 コントロールレジスタ
6.3.4 Xmt FIFOリードライトポインタレジスタ
6.3.5 Xmt FIFOデータレジスタ
6.3.6 Rcv DMAサービスタイマーレジスタ
6.3.7 Rcv FIFOリートライトポインタレジスタ
6.3.8 Rcv FIFOデータレジスタ
6.3.9 統計カウンタレジスタ
6.3.10 ミリ秒タイムベースコントロールレジスタ
7. 信号の説明
1. 定義
略語と説明
アービトレート型ループ−ループへのアクセスするためにポートがアービトレーションを使用するファイバチャネルトポロジ
ARB−ファイバチャネルアービトレートプリミティブ(順序集合)。ループのコントロールを取得するのに使用される
AL_TIME−アービトレート型ループタイマー。AL標準で定義されているデフォルト値が15msのタイマー
ALPAまたはAL_PA−アービトレート型ループ物理アドレス、ユニークな1バイト(8ビット)値。詳細についてはFCAL T11仕様を参照
API−アプリケーションプログラミングインタフェース
ASIC−アプリケーション固有集積回路
ビーコニング−サービス要員の注意を引き付けるためにポートのLEDが点滅
カスケード−2つのハブの間での名目上の接続。アービトレーションメカニズムは、フェアシステムオペレーションを促進するために修正される
CLS−ファイバチャネルプリミティブをクローズ。ループ回路を終端するためにL_Portによって使用されるプロシージャ
CRC−巡回冗長検査。データフレームのデータ完全性を検査するのに使用される。
DITH−Deer In The Headlights。SEOC情報転送がFC−AL仕様を満たすようにループスイッチASICによって使用されるアルゴリズム
重複カスケード−2つ以上のインタースイッチが存在しているときの、ループスイッチ間のリンク。トランキングとも呼ばれる
動的ロードバランシング−同じ2つのループスイッチ間の2つ以上のリンクでフレームトラフィックを操る能力
EWRAP−電気的WRAP トランシーバへのループバック信号
EEPROM −電気的消去可能プログラマブルROM
フェアネスウィンドウ−(またはアクセスフェアネスウィンドウ)フェアL_Portが1回だけアービトレーションしループへのアクセスを獲得する期間。詳細についてはANSI FCALを参照
FC−ファイバチャネル
FC−AL−ファイバチャネル−アービトレート型ループプロトコル
FC MAC−ファイバチャネルメディアアクセスコントロール。FC0、FC1、FC2−ANSIファイバチャネル機能のいくつかを実装。
FPGA−フィールドプログラマブルゲートアレイ
FL_Port−FCALによって定義されているループポート状態マシーンを含むF_Port(すなわちファブリックポート)
GBIC−ギガビットインタフェースコンバータ
Gbps−ギガビット/秒
ハードゾーン−相互に分かれているゾーンまたはエリア(すなわち、ファイバチャネルフレームまたはアービトレート型ループプリミティブはゾーンを通らない)
HBA−ホストバスアダプタ
ハブエミュレーションモード−すべてのポートを一緒に配線してハブ接続のようなものよってループスイッチがハブをエミュレートするモード
C−Inter−Integrated Circuitプロトコル(IC)
JBOD−Just a Bunch of Disks。ポートバイパス手段によって接続された、シングルエンクロージャのFC−ALディスクのグループ
LIM−ループ初期化マスター−ループの初期化を担当するL_Port
LIP−ループ初期化プリミティブシーケンス−いずれかのLIPプリミティブシーケンス。FCALを参照
LIPブロッキング−LIPの伝播をブロックする行為。通信を撹乱しないようにループスイッチのポートで使用される
LIPゾーン−ゾーンのいずれかの装置によって受け取られた場合、ループスイッチがLIPを伝播するデバイスのリスト
ループ−ANSI FCALで説明されているアービトレート型ループ
ループ回路−同じループで2つのL_Port間での通信を可能にする双方向パス
ループスイッチ−ARB、OPN、CLSのようなFCALプリミティブを切り替えるスイッチ。ループスイッチは、クロスバースイッチ、ルータ、ポートロジックを含むことがある
LPB−ループポートバイパスプリミティブシーケンス
LPE−ループポートバイパスプリミティブシーケンス
L_Port−ANSI X3、FCPHで定義されているFL_PortまたはNL_Portのいずれか
LPSM−ループポート状態マシーン
NL_Port−FCALで定義されているループポート状態マシーンを含むN_Port(すなわちノードポート)
オープン−ループ回路を確立するためにL_Portによって使用されるプロシージャ
OPN−ALPAによって識別される特定のデバイスへの接続をオープンするのに使用されるオープンファイバチャネルプリミティブ、FCALを参照
OS−順序集合。ファイバチャネルプリミティブ、長さは4バイト
POST−電源投入時セルフテスト
プリミティブシーケンス−プリミティブシーケンスによって伝えられる関数が実行される前の、3つの同じ連続的順序集合、ANSI FCPHを参照
RAR−Register−Select−Register
SOC422−シングルASIC製品でのVixelのループスイッチ
SBOD−Switched Bunch Of Disks。スイッチによって接続されたシングルエンクロージャでのFC−ALディスクのグループ
スイッチングまたはセグメント化モード−様々なポートに接続されたデバイスへの同時非ブロッキング接続を行うのにクロスバースイッチを利用するループスイッチのモード。接続はOPNで作成され、CLSループプリミティブによってクローズされる
SEOC−接続時シリアル番号交換。ファイバチャネルFC−AL相互接続デバイスの接続の前にシリアル番号を交換するのに使用されるプロトコル
Serdes−シリアル化/非シリアル化
シリアルID−構成データを含むシリアルEEPROMでのGBICのタイプ
SFP−スモールフォームファクタトランシーバ
スマート挿入アルゴリズム−いつポートを動作中と宣言するかを決めるための選択肢を追加するアルゴリズム
SN−シリアル番号
Stall−ループスイッチでオープンされたが、一定期間使われていない接続
ステルスモード−すべてのループプリミティブ及び/又はファイバチャネルフレームがすべてのデバイスに伝えられないモード
ステルスLIPアイソレーション−すべてのデバイスへのLIPの伝達を制限
ストリングカスケード−ストリング経由で接続される各ループスイッチが仮想ループでシングル論理デバイスとして扱われるカスケード接続。ARBxは、ストリングカスケード全体を巡回し、コントロールを取得してOPNをカスケードに置かなければならない
ツリーカスケード−各ループスイッチがカスケードにOPNを置く前にリンクのコントロールのために直近のループスイッチのみとアービトレーションするカスケード接続
トランキング−ループスイッチ間の複数の接続を使用して帯域幅を増やす
USER−ユーザ定義順序集合
2. ループスイッチフィーチャセット
以下では、Vixelベースの製品SOC422に含まれている実装を取り上げて、ループスイッチの特徴を説明する。先にループスイッチの実装について説明したが、先に説明した実装または発明の精神や範囲から離れることなく、特定の変更や修正を行うことができることは本発明の内容に照らして当業者には明らかである。ループスイッチの実装はVixel SOC422を含むことに注意しなければならない。
1、2、または4 Gb/sファイバチャネルデータ速度をサポートする、内部serdes付きの22ポートASIC(高いあるいは低いポートASICではポート数は増えるまたは減ることがある)
プロセッサ支援なしでハブエミュレーションモードまたはスイッチング(セグメント化)モードのループスイッチ間のシングルおよびマルチカスケード接続をサポートする。スイッチング(セグメント化)モードで、複製カスケード接続はファームウェアサポートにより動的ロードバランシングをサポートする。ループモードでは、マルチカスケード接続はバイパスされ、プライマリカスケード接続のみがアクティブになる。
16アドレス、16データ、RD、WR、CSおよび割込みラインとのパラレルプロセッサインタフェースまたはICインタフェースをサポートする。これらのインタフェースは、内部レジスタセットへの読み書きアクセスを提供する。
オプションのEEPROMは、プロセッサなしでのオペレーションのためのカスケード、重複カスケードのための構成情報、serdes構成、ポート構成を提供する。
ハブエミュレーションモードまたはスイッチング(セグメント化)モードで動作可能。
複数ループスイッチASICのカスケード接続をサポート
プロセッサ支援なしのスイッチモードでのLIPアイソレーション付きの16の非オーバラップハードゾーンをサポート。
スイッチング(セグメント化)モードでのオーバラップハードゾーンをサポート
ハブエミュレーションモードまたはスイッチング(セグメント化)モードでゾーンアイソレーション(LIPブロッキング)をサポート
複数のASICシステムにおいて重複LIPゾーンでステルスLIPアイソレーションをサポート
インバンドインタースイッチフレームをサポート
次のポート機能をサポート
−ハードウェアにスマート挿入アルゴリズムを実装
−各ポートでOS検出回路を実装
ポートLED機能。スイッチングモードで、各ポートは、ポートアクティビティLEDを持つ。
EMI排出削減のためにARBffまたはその他のユーザ指定ARBタイプでアイドルを交換がプログラム可能
管理を通していずれかの他のポートをパッシブにスヌープするようにどのポートでも構成可能である。ポートやループのオペレーションの診断のためにアナライザが使用
スイッチへのリンクが良好かどうか検証するための、接続デバイスの外部ループバックパス
ポート当りの不良伝送キャラクタカウント(24ビット)を提供
各ポートに関してCRCエラーカウント(8ビット)を提供
ループへの挿入前または後にポートに順序集合を伝送する能力を提供。ループでは、順序集合は指定回数のみあるいは連続して伝送できる。
伸縮性バッファ挿入/削除を使用して周波数チェック機能を提供
CインタフェースをサポートするGBICs/SFPsからのシリアルID読み取りをサポート
ポートループ利用カウンタを提供。データに使用される帯域幅の割合、またはスイッチング接続がアクティブであるまたは要求される時間の割合を測定
各デバイスに等しいポートアクセスを保証するために(FCALアクセスフェアネスアルゴリズムに加えて)ユニークなフェアネス方式を実装
ポートベースでLIPを隔離する能力を提供
奇数パリティを使用して各ポートを通るデータパスの完全性をモニタ。
フレームルーティングを検証するために最後のOPNで宛先ALPAへの各フレームでの宛先IDを比較
システム状態信号をモニタするためのレジスタインタフェースを提供
LEDを駆動するシフトレジスタインタフェースを提供(ピンを保存)
温度センサやファンロータスタックセンサからの入力を受け付け、LEDを駆動するばかりでなくステータスレジスタでの障害をレポートする環境監視機能
Management Ethernet(登録商標) Activiety LEDをコントロール。カードからの入力を取ってLEDを駆動
ループ状態LEDをコントロールして、ループが立ち上がっているかどうかを示す、または初期化を完了しようとする
リセット後にLEDセルフテストモードを提供し、その際LEDは2秒間オンになった後2秒間オフになりその後ノーマルモードに戻る
特殊動作モードをコントロールするマネージメントカードの存在を示す外部ステータスビット
CPUポート(ファイバチャネルMAC、FC2)機能
−ファイバチャネルフレームを送受信できるプロセッサインタフェースを提供
−アービトレート型ループ標準に従ってNL_PortまたはFL_Port機能を実行する能力
−ALPAまたはいくつかのユーザプログラマブルALPAを取るために、LIMとして、あるいはLIMとしてではなくループ初期化を実行
−プロセッサがFIFOサービスを提供しなければならなくなる前にバッファ間送受信フレームを実装
3. 機能概要
ループスイッチは、様々なモードで動作する能力を有している。ハブエミュレーションモードとスイッチング(セグメント化)モードは、2つの基本モードである。さらに、各モードのバリエーションにより、ループスイッチが様々なシステム要件の範囲を満たすことが可能になる。
3.1 ハブエミュレーションモード(共有帯域幅)
ファイバチャネルアービトレート型ループ標準は、リング構成で多数のデバイスが相互に接続できるトポロジを定義している。図1を参照。最後のデバイスのトランスミッタが最初のデバイスのレシーバに接続されるまで、あるデバイスのトランスミッタが他のデバイスのレシーバに接続されていく。
当然、この構成では、各相互接続20、21、22、23、24、25、26と各ノード10、11、12、13、14、15、16がループ全体の単一障害点になるという問題がある。いずれかのデバイスまたはリンクで障害が発生した場合、すべての通信が停止する。これはハブが展開される場所である。図2を参照。ハブ70はアービトレート型ループのリングトポロジを、簡単なケーブル設置を可能にするスタートポロジに変換している。
また、ハブは、ループを動作状態に保つために未使用または誤動作ノードまたは相互接続をバイパスするメカニズムを提供する。図3に示されているように、ノード3 90は、通常ならばループを動作不能にする、切れたファイバ100を有している。ハブ120は、ノード3が接続されているポート112をバイパスし、他のデバイス91、92、93、94、95、96におけるループ112、101、102、103、113、104、106、105、114、107、108、115、109、110を動作可能状態に保つ。
3.2 非オーバラップハードゾーニング(マルチループ)
ハブエミュレーションモードで動作している間、ループスイッチも各ポートを多数の「ゾーン」の1つに割り当てることができる。各ゾーンは、対応する127ノードアドレス空間と別個の初期化空間を持つユニークな隔離ループを表している。これにより、複数の別個のループが1つのループスイッチ内で動作可能になる。このタイプのゾーニングでは、各ループは完全に独立であり、あるループのLIPはいかなる方法でも他のループに影響することはない。
3.3 スイッチング(セグメント化)モード
スイッチングモードでは、ループスイッチはクロスバースイッチを使用し、ファブリックスイッチのようにFC2フレームではなく、ファイバチャネルアービトレート型ループプリミティブに基づいて切り替える。このような切り替えの利点は、接続されたFCALデバイスがファイバチャネルファブリックサービスを実装する必要がないということである。ファブリックサービスの実装は、管理と相互運用性をさらに複雑にする。
このスイッチングモードを使用して、個別ノード、多数のノードのストリング、多数のノードが接続された通常のループFC−ALハブを相互に接続することができる。また、ファイバチャネルスイッチファブリックにも接続できる。ほとんどのFC−ALデバイスは、ドライバ、ファームウェア、またはソフトウェアを変更しなくてもループスイッチに接続し、ハブの利点を享受することができる。また、ハブとスイッチの両方の特徴の多数を共用する。ループスイッチ(セグメント化)モードで動作するように構成されているとき、ループスイッチは以下のハブのような特徴のいくつかを示す。
アービトレート型ループでのみ使用することができる。ファブリックアタッチ専用(N−Port)デバイスでは使えない。
接続可能なデバイスの最大数はゾーン当り127である。本物のスイッチとは異なり、ループアドレス空間の拡張には対応していない。
ループスイッチのスイッチング(セグメント化)モードのスイッチと似た特徴は、以下のとおりである。
ループを複数のループセグメントに分割する。
ループ分割により、複数のデバイスペアが同時に通信することができる。10までのポートペアが20のポートループスイッチで同時に通信できる。
スイッチと同様に、ループスイッチの各ポートは相互に独立している。2つのノードの間のトラフィックは、関連ノードにサービスを提供するループスイッチポートのみに現れる。他のポートまたは関連のループセグメントではトラフィックは送られない。これは、高い帯域幅カンバセーションの隔離を可能にし、また、他のローカルトラフィックから長いループセグメントを隔離するのに使用することができる。
ループセグメントは、ループ初期化時に相互に隔離することができる。その後、ループスイッチを構成してLIPがあるループから別のループに溢れるのを防止することができる。これにより、非初期化ループセグメントでのシステムダウンタイムが減少する。
ループスイッチのすべてのポートがアイドル状態にあるとき、各ポートは相互に完全に隔離される。図5を参照。ループスイッチ200は相互にリッスンしており、アービトレーション活動を探している。ポート1 232のノード3 201のようにループについてデバイスがアービトレーションしている場合、ループスイッチはARBを受け付け、そのままノード3 201に210ポート1 232を戻す。ノード3 201は自分のARBを見て、OPNを送る(この場合、OPNはノード6 207向けである)。ループスイッチ200は宛先デバイスがどのポートにあるかをルックアップし、スイッチングマトリクス230、231を通した接続を確立してOPNをデバイスに渡す。
図5が示すように、ノード3 201とノード6 207の間にポート1 232とポート8 233を通した接続230、231が存在している。他のポート234、235、236、237、238、239もまだアイドル状態にある。
他のノードがアービトレーションを試み、ノードが存在するポートがアイドルである場合、ループスイッチは、図6に示すように要求された接続を提供する。図6は、ポートペア3,7 292,296と1,8 290,297を使用してスイッチ283、282、281、280を経由して確立された2つの接続を示している。図6は、ソースノードと同じポート上にある宛先ノードが取り扱われる方法も示している。ポート5 294で、ノード7 255はノード4 254と通信している。ループスイッチ250は、この通信を可能にするためにポート294を自分に接続しているにすぎない。この例では、3つの同時カンバセーションを持つということは帯域幅合計が回線速度の3倍に増えたということを意味することに注目しなければならない。また、ノード5 256が10km離れたリモートテープバックアップシステムであった場合、ポート3 292とポート7 296のループセグメントのみがロングセグメントによって影響を受けるということにも注目しなければならない。他のポートで発生するカンバセーションは、ずっと小さい待ち時間で、また高い帯域幅で行われうる。
図5では、ノード5 206がすでにノード6 207に接続されているときにノード3 201をOPNしようとした場合、ループスイッチ200は宛先ポートが開放されるまでOPNを保持する。ソースノードが通過しない場合、ノードが、CLSを発行するか、ループを再初期化することによって試行を異常終了すると思われる。これにより、チップのすべての接続要求は終了する。
3.4 オーバラップハードゾーニング(バーチャルループ)
ループスイッチがスイッチング(セグメント化)モードに構成されているとき、ループスイッチはオーバラップハードゾーンまたはバーチャルループを作成することができる。これは、スイッチング(セグメント化)モードにあるループスイッチの特定のポートを構成してアクセスを他のいずれかのポートに制限することができるということである。たとえば、これにより、ユーザは3つのMicrosoft NTサーバをループスイッチの3のポートに接続し、3のディスクアレイをループスイッチの他の3のポートに接続し、他のアレイは特定のサーバから制限されている間、あるサーバからあるアレイへの関連を作成することができる。同時に、共有テープライブラリをさらに別のポートに接続して、ユーザはすべてのサーバにテープへのアクセスを許可することができる。このようにして、ループをサーバからディスクアレイへの高帯域相互接続として使用し、テープへの共有アクセスを提供することができる。
4. アーキテクチャの説明
図4は、ループスイッチ140のハイレベルアーキテクチャを示している。主なコンポーネントとして、ポートロジック141、142、143、144、145、146、147、148、ルータ181、スイッチロジック150が含まれる。簡略化し、8ポートループスイッチのみが示されているが、任意の数のポートがサポートされる。たとえば、SOC422は22のポートをサポートしている。
4.1 ポートロジック
ポートロジックを構成するいくつかのブロックは、次のものを含む。図8を参照。
16/20ビットエンコーダ414と20/16デコーダ409
OSデコード403、421
伸縮性およびリタイミングバッファ407
OSジェネレータ401、418
パリティチェックロジック406、420
メインコントロールロジック422
周波数チェックロジック451
ポートは、ルータに合図を出すループプリミティブのファイバチャネルリンクのモニタを担当する。また、ポートコントロールはループプリミティブを除去、挿入して接続されたループアービトレーションを操作する。
4.2 ルータ
ループスイッチは、ルータモジュールを含む。図4を参照。ルータは各ポートモジュール151、152、153、154、155、156、157、158に接続され、スイッチロジック181に接続されている。ポートロジックは、特定の条件が発生したときにルータに合図を出す。信号は、受信したARBおよびOPNループプリミティブを基にした接続要求を含む。図8の426、427、424、425を参照。
4.3 スイッチロジック
図4に示すように、スイッチロジックは各ポート160、161、162、163、164、165、166、167、170、171、172、173、174、175、176、177とルータ181に接続される。スイッチロジックは、フルNxNノンブロッキングクロスバースイッチを実装している。ここで、Nはポートの数である。VixelはSOC422製品に22x22クロスバースイッチを実装したが、設計は22のポートに限られるものではない。図8に示すように、ポートロジック400からスイッチ430への、またスイッチからポートロジック419へのデータパス428は一方向バスである。ポートロジック400からルータおよびスイッチロジック430へのコントロール信号には、アービトレートループプリミティブ接続要求(arb_connect_req)427信号やOPENループプリミティブ接続要求(opn_connect_req)信号426が含まれることがある。ルータおよびスイッチロジック430からポートロジック400へのコントロール信号には、ソース接続(src_connect)信号425や宛先(dest_connect)信号424が含まれることがある。
4.4 ファイバチャネルポート
SOC422ループスイッチは、図7に示すようにさらなる機能を追加する。これには、ファイバチャネルMACモジュール302が含まれる。このモジュールは317とスイッチクロスバースイッチ301とのインタフェースとなり、NL_PortまたはFL_Portインタフェースを備えた、ファイバチャネル端末装置として動作する。ファイバチャネルMACモジュール302は、メモリまたはパラレルインタフェース310を通してCPUデバイス308とインタフェースを取る。そしてCPU308は、ファイバチャネルワードデコードフレームにアクセスすることができる。FC MAC302は、すべての8B/10Bエンコードおよびデコードを行い、FCALループポート状態マシーンを実装し、R_RDYやファイバチャネル端末装置に必要なその他の機能を通してバッファ間管理を実装している。
4.5 内部Serdes
図7に示すように、SOC422ループスイッチもまた、各ポート303、304に一つの内部ファイバチャネルSerdesを含んでいる。これは、より総合的でコスト効率の良い解決策を可能にする。
5. 機能の説明
5.1 ループスイッチ内部セルフテスト
ループスイッチは、ループスイッチASIC内の高速データパスのセルフテストを実行するのに使用される状態マシーンを有している。セルフテストは、シリアルEEPROMが読み込まれた後各リセット後にまたはルータ構成レジスタでRUN_SELFTESTモードを設定することによって実行される。GBIC/SFPがインストールされている、あるいはインストールされていないため、このテストの間、Rx_LOS信号(GBIC/SFPインタフェース信号)は無視されることに注意しなければならない。状態マシーンはテストされるすべてのポートの完全なループを作成するためにスイッチマトリクスを構成し、シリアルEEPROMに含まれる検査ポートを有効にする。ルータは約1msのIDLE順序集合を作成してserdesがsyncを獲得できるようにする。次に、ルータは固定データパターンを作成し、それを構成済みのループに送る。状態マシーンはループに返されたデータを比較し、データが正確に同じである場合、セルフテスト合格を通知する。ループスイッチASICリセットがハブ障害状態を設定し、このハブ障害状態によりハブ障害LEDを点灯されることに注意しなければならない。セルフテストに合格した場合、状態マシーンはこの状態をクリアし、LEDを消灯する。セルフテストに失敗した場合も、ルータステータスレジスタ#1のハブ障害ビットが設定され、ループスイッチがループに任意のポートを挿入することを阻止する。デバッグのために、この障害条件はルータ構成レジスタのH_Fault上書きビットに書き込むことによって無効にすることができる。
シリアルEEPROMは、ループスイッチチップの構成ビットを含んでいる。port_enビットはどのポートが有効であり、セルフテストに含まれているかを示す。データパターンは、セルフテストフラグの終端として使用される認識可能な終端文字パターンを有している。ループスイッチがパターンをポートを通して渡しカスケードに戻すと、ループスイッチはセルフテストモードをオフにし、ハブエミュレーションに移行する。
以下の表に示されている送信パターンは実際には2セットのパターンであることに注意しなければならない。最初のものが実際のテストパターンである(ワード0〜18)。これが検証されるパターンである。2番目のパターン(ワード0〜21)は、最初のパターンが検証された場合にのみ送信される。
このパターンは終端パターンを持つ。
Figure 0004642755
5.2 内部ループバック
ループスイッチもまた、ルータ構成レジスタのコントロールビットを介して、マイクロプロセッサに内部ループバックモードをコントロールさせる。マイクロプロセッサは、このビットを表明し、ルータスイッチマトリクスコントロールレジスタを使用してスイッチマトリクスを完全なループに構成し、ポートのいずれかの伝送順序集合レジスタを使用して構成済みのループにテストパターンを送り、他のすべてのポートでディテクタをモニタする。
ルータ構成レジスタの内部ループバックコントロールビットを設定すると、すべてのポートのトランシーバはループバックに置かれることに注意しなければならない。
5.3 ポート挿入
GBIC/SFPがループスイッチに挿入されデバイスがGBIC/SFPに接続されたとき、あるいはループ初期化がすでに接続されているポートで発生したときにポート挿入が発生する。ポートは、入ってくるデータストリームを検証し、ポートのレシーバをループにカットし、LIPをデバイスにフォースアウトし、LIPがループに伝播し、トランスミッタに戻ってくるのを待つ。LIPがポートのトランスミッタサイドで検出されると、ポートは完全にカットされ、通常のループ初期化を継続できる。
5.3.1 ワードシンクの確立
ポートがGBICもSFPもインストールしていないとき、ポートロジックは何も送らない。すなわち、特定のTX出力が定常状態に保たれる。GBICまたはSFPがインストールされた場合、ポートは内部ループに存在する情報を送信するか、IDLEをソーシングする。チップがループスイッチとして固定されループスイッチに動作中のループが存在している場合、ポートはそのループデータを送信する。ループスイッチがハブエミュレーションモードである場合、またはループスイッチに動作ループが存在しない場合、IDLEが送られる。
ポートのレシーバで信号が検出されると、ポートは入ってくるデータストリームをチェックして、ワードシンクが獲得されたことを確認する。ワードシンクが確立されると、ポートはすでにループにあるデータの反復を停止し、IDLEのストリームを送り始める。
5.3.2 Vixelループスイッチへの直接接続を検出
ワードシンクの後、ポートロジックは、接続されているデバイスが他のVixelループスイッチのように動作しているかどうか調べる。通常、L_Portが3以上のLIPのストリームを受け取るとき、L_Portは受け取った同じLIPの少なくとも12を再送信する。その後、L_Portは15msアイドルを送り、入ってくるすべての順序集合を無視する。DITHアルゴリズムはこれを利用して、接続(SEOC)アルゴリズムでシリアル番号交換をサポートしているVixelループスイッチへの直接接続を検出する。ワードシンクの後、ループスイッチポートは10−20 us(2タイマーチック)LIP(F7,FB)を送り、LIPはアタッチされているループの各L_Portに同じLIPを再送させる。LIPの後にLISMを送るのではなく、ループスイッチポートはARB(FB)順序集合のストリームを送る。SEOC準拠のVixelループスイッチが初期化中にポートに接続されていない場合、ARB(FB)は認識されず、L_Portによって再送されない。SEOC準拠のVixelループスイッチが初期化中のポートに接続されている場合、接続の両端が同時にARB(FB)を送り、各ポートは接続の両端はシリアル番号交換アルゴリズムをサポートしていることを認識する。ループスイッチポートが8ms以内にARB(FB)を検出しない場合、ループスイッチポートは他のタイプのデバイスが接続されていると想定し、SEOCプロセスをスキップして通常の挿入を継続する。8ms以内にループスイッチポートがARB(FB)を検出した場合、SEOC準拠Vixelが接続されていると想定して、シリアル番号交換を試みる。
5.3.3 接続時のシリアル番号交換(SEOC)
SEOC交換は、SN1、SN2、SN3、SN4、SN5、P_INFO、USER1、USER2というラベルの付いた8の独自プリミティブシーケンスを通して通信する。ARB(FB)交換の後に、ポートは10〜20マイクロ秒間LIP(F7,FB)の別のショートバーストを送信する。その後、ポートは接続ポートからSN1を受け取るまで連続してSN1を送る。SEOCシーケンスを受け取ると、埋め込みのシリアル番号がそのポートのためのリモートシリアル番号、ポート情報、ユーザレジスタにロードされる。各順序集合のペイロードバイトであるバイト4は、P_INFOを例外としてルータメモリマップスペースのレジスタにより送信サイドで初期化される。P_INFOは各ポートでユニークであり、ポートメモリマップスペースにマッピングされる。電源投入時に、P_INFOフィールドは対応するポート番号に初期化される。
Figure 0004642755
その後、ループスイッチポートはSN2シーケンスを受け取るまで、連続したSN2を伴ったLIP(F7,FB)の別のショートバーストを送る。SN2を受け取ると、埋め込みシリアル番号バイトが再度そのポートのリモートシリアル番号レジスタに保存される。8バイトすべてがそのポートの当該レジスタに保存されるまでSN3からUSER2までで同じプロセスが行われる。USER2が保存されると、そのポートにシリアル番号交換割込みがトリガーされる。マイクロプロセッサは他の情報と共にこのシリアル番号を読み、重複アドレスであるかどうか検証し、ポートのコントロールレジスタにビットを書き込み、チップを開放して挿入を完了する。ポートが他のVixelループスイッチを検出しなかった場合、このマイクロプロセッサ対話はスキップされる。このあと、ポートはカットインプロセスを完了する。ポートが待っている間にいずれかのSEOC順序集合を10ms以内に受け取らなかった場合、ポートはタイムアウトし、挿入プロセスを最初から再開する。獲得したシリアル番号はGBICまたはSFPが除かれるまで、または信号の損失が検出されるまで保存されたままであり有効なままである。いずれかの事態が発生したら、リモートシリアル番号、P_INFOとユーザレジスタはゼロにリセットされる。
Figure 0004642755
5.3.4 SEOC障害
接続されているデバイスが他のVixelループスイッチ以外のものである場合、ポートロジックは連続して112ms間LIP(F7,F7)を送り、レシーバでLIP(F7,F7)の有効なストリームを確認しようと試みる。ポートは最初の15ms間すべてのLIP(F8)を無視して接続されたデバイスがAL_TIMEを巡回できるようにする。その後、ポートは97ms、LIP(F8)をモニタする。LIP(F8)を受け取った場合、ポートは再度挿入プロセスを開始する(Vixelループスイッチが接続されているかどうか検出する)。これにより、ポートエラー/ステータスチェンジレジスタのinsert_lipf8_faultビットが設定される。97msの間にLIPf8を受け取らず、97msの最後までにLIP(F7)を受け取った場合、ポートはレシーバをループに挿入するが、LIP(F7,F7)の送信を続ける。LIP(F7)を97ms時間の最後までに受け取らなかった場合、ポートは再度挿入プロセスを開始し、ポートエラー/ステータスチェンジレジスタのinsert_timeoutビットを設定する。
ポートが112msの間LIP(F8)以外のすべてのLIPを無視するのは、デバイスによっては100ms毎に1回LIP(F8)を送信するためである。112msまでLIP(F8)を探しLIP(F7,F7)を無視することにより、ポートはアクティブ状態と非アクティブ状態の間を過度に巡回することなく、このように振る舞うデバイスを正しく検出できるようになる。112msという値はいくらか余裕をもって100msのカバレージを提供するために選択された。
5.3.5 ポート挿入の完了
SEOCの正常完了、またはSEOCが正常に完了しなかった場合LIP(F7,F7)のストリームの検証の後、ポートはループをスクラブしてLIP(F7,F7)がループ全体に伝わったことを保証する。ポートは連続してLIP(F7,F7)を送信し、近隣上流ポートからの受信データストリームによって提供される、伝送データパスへの入力ストリームをモニタする。これにより、LIP(F7)はLIPがループ全体をすべて通過したことを確認する。トランスミッタ入力でLIP(F7)が検出されると、トランスミッタサイドが挿入され、ポートは通常のループトラフィックの送信を開始する。LIP(F7,F7)(FC−AL当り)またはなんらかのARB(FC−AL−2当り)を受け取ることなしにSOF、EOF、IDLESのシーケンスを50msの間受け取らなかった場合、ポート挿入は異常終了する。
5.3.6 ポート挿入障害
なんらかの理由によりポート挿入が失敗した場合、成功するまで自動的に再度試みられる。特定の障害条件は、tx_disable信号を表明することによってGBICまたはSFPのリセットをトリガーする。tx_disableが表明されると、tx_disableは約10msの間表明されたままとなる。tx_disableパルスの最小間隔は350msである。tx_disableパルスをトリガーする障害条件は、以下のとおりである。
SEOCが完了しておらず、リンク障害条件が検出されたか(以下の注を参照)、強制バイパスが真である
SEOC順序集合を10□sの間受け取らなかった
スクラブループオペレーションの間に2.418秒タイマーが切れた
先の条件の場合、リンク障害は次のものとして定義されている
1. tx_fault入力が検出された
2. GBIC/SFPが抜かれた
3. 信号損失が検出された
4. 100msの間ワードシンク損失が検出された
5. LIP(F8)を受け取った
6. 100ms間コンマ文字を受け取らなかった、dis_byp_no_comma
5.4 ポートバイパス
以下のいずれかの条件が発生した場合、挿入されたポートはバイパスされる。
Rx_LOS−Rx_LOS信号がGBIC/SFPによって表明されるとポートは直ちにバイパスされる。
tx_fault−tx_fault信号がGBIC/SFPまたは固定レシーバ回路によって表明されるとポートは直ちにバイパスされる。
LIPf8−ポートが受信したLIPf8を検出した場合、ポートはLIPf8をLIPf7と置き換え、この16のLIPをループに転送してからポートをバイパスする。
同期の喪失−ポートが100msの間同期を喪失した場合、タイムアウトがトリガーされポートはバイパスされる。
ソフトウェア開始のバイパス
これらの理由のいずれかによりポートがバイパスされるとき、ポートは実際のバイパスの前に16のLIPを他のポートに送信することにより、ループが再初期化されるようにすること注意しなければならない。当然、これはポリシービットがバイパス機能でLIPを無効にしていないと想定している。注:ポリシービットはポートオペレーションのセクションの本文において説明されている。
5.5 デバイスディスカバリ
デバイスディスカバリプロセスは、各ALPAがどのループスイッチポートにアタッチされるかを説明するALPAマップテーブルの作成に使用される。このテーブルは、管理ソフトウェアにとって有用であり、(ループスイッチモードではなく)ループスイッチオペレーションに要求される。デバイスディスカバリはLIPが検出されフルループスイッチループ初期化が行われるときに開始される。この時、すべてのデバイスはシングルループにマッピングされ、同じポートにアタッチされるかどうかにかかわらず共に初期化される。
5.5.1 フルループスイッチループ初期化時のパッシブデバイスディスカバリ
パッシブデバイスディスカバリプロセスは、フルループスイッチループ初期化時に使用される。LISMフレームがルータモジュールのデータパスを通るたびに、フレームのペイロードのWWNはレジスタに保存され、前の値は上書きされる。その結果、次のサイクルの最初までLIMのWWNが、ループ初期化サイクルの最後から取得され保存される。この値は、マイクロプロセッサが読むことができる。
フルループスイッチループ初期化の各段階(LIFA、LIPA、LIHA、LISA)に、各ポートは通常アウトバウンドフレームを見、その後同じタイプのインバウンドフレームを見る。各ポートはアウトバウンドフレームおよびインバウンドフレームALPAビットマップを取得し、その後各段階後に2つのビットマップの間の差を計算する。その段階の差は、前の段階からの差と共に蓄積され、LISA段階が完了するまでホールディングレジスタに保存される。インバウンドビットマップとアウトバウンドビットマップの間の蓄積された差は、ループ初期化時にループスイッチのそのポートで求められたすべてのALPAを表している。LISA段階が完了すると、各ポートの蓄積されたALPAビットマップの差を使用してALPAマップが更新される。
LIMが存在しているループは、アウトバウンドフレームビットマップとインバウンドフレームビットマップの差を計算する特殊な場合である。最初にLIMポートを決定するために、各ポートはループ初期化時にARB(F0)を受け取るとフラグを設定する。ARB(F0)を見る最初のループスイッチポートがLIMポートとして識別される。その後、次のフルループスイッチループ初期化サイクルまで、LIMポート番号がデバイスディスカバリロジックに保存される。LIMはすべてのループ初期化フレームを始めるため、ループスイッチは同じフレームタイプが戻ってくるまでフレームがポートを出ていくのを見ない。したがって、LIFAフレームを始めて受け取ったとき、アウトバウンドビットマップはLIMポートでゼロであると想定されなければならない。LIFA段階のビットマップ差は、インバウンドLIFAフレームALPAビットマップと等しい。そこから、LIMポートはインバウンドLIPAとアウトバウンドLISA、インバウンドLIHAとアウトバウンドLIFA、インバウンドLISAとアウトバウンドLIHAフレームを比較してビットマップ差を計算する。
このプロセスは、同じループに位置しているものを除きLIMデバイスから上流のすべてのALPAを識別する。これらのデバイスはデバイスディスカバリ用にLIMの「シャドー」に位置しているためシャドーデバイスと呼ばれ、プロセスの後の段階で解決される。その理由は、LIMで受け取ったLISAフレームはポートのインバウンドサイドには決して戻らないためである。したがって、最後のLISAビットマップをLIMがあるポートで捕捉することはできない。
ALPAマップは、127の可能なALPA値のぞれぞれに8ビットポート割り当てを保存する。いずれかのポートがLIPシーケンスを検出すると、ループスイッチはスイッチングモードを抜け、ループ初期化プロセスを開始する。この時、ALPAマップへの各エントリは、値0xE0によってマークされ各ALPAのポート割り当てはマッピングされていないことを示す。所与のポートでLISAフレームを受け取ると、そのポートはALPAマップへのデータの入力を開始し、そのポートで主張されているすべてのALPAを識別する。主張されたALPAのそれぞれのポート番号(0x00−0x1F)がALPAマップの適切な位置に入れられる。この点では未請求ALPAも解決されず、そのALPAマップ位置はアンマップポートインジケータ(0xE0)を保持する。有効なポート値(0x00−0x1F)または無効なインジケータ(0xC0)は、後にシャドーデバイスALPAが解決されるときにパッシブまたはアクティブな手段で他のデバイスをアンマップポート値で置き換える。注:ポート0x14−0x1Fは将来ありうる実装であり、現在は有効なエントリではない。
5.5.2 LILPありのシャドーデバイスALPA解決
LIRPとLILPがループスイッチのすべてのデバイスでサポートされている場合、このフレームはループでのLISAに続く。LILPが存在する場合、ALPAマップを完成するためにそのペイロードが捕捉され、検索される。保存されたLILPペイロードが、管理ソフトウェアによって使用されることもある。ペイロードが検索されるとき、前に入力された有効なポート値を持たないすべての請求ALPA値はLIMポートに対応するポート値によってマークされる。まだアンマップポートインジケータによってマークされている他のALPAマップ位置は、無効なALPA値によってマークされる。LILPがサポートされている場合、このアクションはデバイスディスカバリを完了し、選択されている場合ループスイッチはスイッチング(セグメント化)モードに入ることができる。
5.5.3 LILPなしのシャドーデバイスALPA解決
ループスイッチに接続されているすべてのデバイスでLIRPとLILPがサポートされていない場合、CLSがLISAフレームに続く。これは、デバイスディスカバリプロセスのパッシブ部分を完成させ、選択されている場合、ループスイッチはスイッチングモードに入ることができる。以後、アンマップポート位置としてマークされているALPAマップ位置は、スイッチングモードオペレーション時にのみ、そして必要とされているときのみパッシブに解決される。OPNが検出され、その宛先がALPAマップでのアンマップポート位置としてマークされているALPAであるとき、受け取ったOPNはLIMポートに向けられる。デバイスが存在していない場合、OPNはループスイッチのLIMポートに戻され、ALPAマップの対応するデバイス位置が無効デバイスとしてマークされる。デバイスがLIMポートに存在している場合、R_RDYまたはCLSにより、ポートはALPAマップにLIMポートの有効なデバイスとして記録される。OPNがLIMポートでソーシングされ、LIMポートのアンマップデバイスに戻されるとき、ポートは、反射したOPNを検出できないため、アンマップALPAを解決するだけに十分な可視性をループプロトコルに有していない。したがって、このイベントはALPAマップでの変化を引き起こさない。
ALPAマップ位置が無効デバイスとマークされると、そのALPAに送られる将来のOPNは送信元に戻される。実際に、未解決の各ALPAがアクセスされ、有効と判断され適切なポート値によってマークされるか、あるいは無効と判断され、有効なポート値を持たないとマークされる。
5.5.4 デバイスディスカバリエラー
1つのALPAが複数のループスイッチポートで主張されているときにフラグ付きのエラーが発生する。そのエラーがLIXAフレームビットマップのある位置で発生することがそのポートで設定され、他のポートではクリアされ、そして3番目のループスイッチポートでは再度設定されなければならない。この条件が発生した場合、ALPAマップの対応位置は「known invalid」デバイス位置とマークされ、ポートディスカバリエラー割込みがルータステータスレジスタで表明される。このALPAへのアクセスが試みられOPNがその位置に送られる場合、ループスイッチはOPNをソースに戻す。もし存在している場合、マイクロプロセッサはLIPをループにフォースアウトして、望むならばプロセスを再開始する。マイクロプロセッサが存在していない場合、OPNを送ったデバイスはループの再初期化を選択して、このエラーをクリアすることができる。
ポートディスカバリ時に受け取ったフレームでCRCエラーが検出されるという別のエラーが発生することもある。LIXAフレームでCRCエラーを検出した場合、ハードウェアはデバイスディスカバリプロセスを完了しない。CRCエラー割込みがポートエラーステータスレジスタでトリガーされ(いずれのCRCエラーでも当てはまる)、map_doneステータスビットはルータステータスレジスタで設定されない。存在している場合、希望するならばマイクロプロセッサはLIPをループにフォースアウトして、プロセスを再開始することができる。マイクロプロセッサが存在しておらず、OPNが有効なアンマップデバイスに送られる場合、OPNはそのソースに戻される。OPNを送ったデバイスは、ループを再初期化してこのエラーをクリアすることを選択することもできる。
5.5.5 ループ初期化タイムアウト
ロックアップしたループ初期化サイクルからの回復を助けるために、500ms内部ウオッチドッグタイマーにより、有効なLIPを受け取るまで、あるいはASICがリセットされるまで外部ピンリップタイムアウトはローになる。この機能が要求される場合、ASICをリセットする外部ロジックが要求される。
5.6 ARBffによるアイドル交換
EMI排出を抑えるために、ループスイッチのポートロジックは受け取ろうとしているIDLEをARBffで置き換えるアルゴリズムを使用している。IDLEの周波数内容は非常に大きな531MHzコンポーネントである。ARBffスペクトル成分はずっと広い。標準化委員会は、FC−AL−2に対するこの変更を受け入れている。実際のプロセスは、受信シンボルストリームでIDLEを探し、伝送ポートで6のIDLEを転送する。以後連続したIDLEを受け取った場合、ロジックはこれをARBffで置き換える。ARBffは、最下位プライオリティARBとして定義されており、アイドルと同じと見なされる。このタイプのIDLE置き換えは、ポートが挿入されループ初期化が完了したときのみ行われる。一度ループ初期化がトリガーされると、この置き換えはループ初期化が完了するまで許されない。
(注:有効なスイッチングモードオペレーションにポートフェアネスを確立するために、IDLEはARBによってALPA=0xffに置き換えられる。この場合、ARBff置き換えに先立ちIDLEを渡すことは許されない。これは独自の実装であり、FC−AL−2で説明されている手順とはまったく異なるARBffの使用法である。詳細については、ポートフェアネスを説明しているセクションを参照)。
5.7 スイッチング(セグメント化)モードオペレーション
スイッチング(セグメント化)モードに構成されているループスイッチは、デバイスディスカバリ段階を含め構成が変わったときにハブエミュレーションモードと同じプロセスをたどる。これが正常に完了した場合、ループスイッチはスイッチング(セグメント化)モードに入る
デバイスディスカバリプロセスが正常に終了し、ループスイッチがスイッチング(セグメント化)モードに構成されている場合、ループスイッチはスイッチ(セグメント化)モードに入る。この時点で、すべてのポートは接続が切られ、ポートトランスミッタによってIDLEがソーシングされる。ポートがARBを受け取ると、ポートはarb_connect_req信号を表明して接続を要求する。図8の427を参照。ルータロジック430(図4、149)はポートを自分に接続し、src_connect(ソース接続)425とdest_connect(宛先接続)424信号を表明する。ARBはスイッチロジックを通して転送され、その元になったデバイスが受け取る。このデバイスは、OPNを宛先デバイスに向ける。この時、ループスイッチポートは各IDLEの代わりにARBffを用いる。ループスイッチが送信ARBxからARBffに切り替わるため、どのIDLEもARBffに先んじて通過することはない。ループスイッチからのARBは、ループのすべてのデバイスがいつその会話を完了し、ループがアイドルになるかを判断するのに使用される。この機能のデフォルトALPA値は0xffであるが、マイクロプロセッサを通じてプログラムし直すことができる。
5.7.1 同じポートのソースノードと宛先ノード
図9a、9b、9c、9dが示すように、宛先デバイス532が同じポート520上にあるOPN521をソーシングするデバイス531の下流にある場合、これ以上の介入なしでループテナンシーが発生する。接続が閉じられ523、他のどのポートもアクセスを要求していないとき、ARBff581が、ループテナンシーの完了時にポートレシーバ585で検出される。これが発生した場合、スイッチロジックを通る接続は切れ582、583、IDLE580が再度ポートトランスミッタによってソーシングされる。ルート515、514、523、551、583、582は、ループスイッチに内的である。
図10a、10b、10c、10dが示しているように、宛先デバイス604はOPN 613をソーシングするデバイス610よりも上流にあるため、OPNはポートレシーバ603で検出される。OPNが検出されると、ポートレシーバのレジスタに保存され、宛先ALPAがルータに提供され、opn_connect_req信号が表明される。図8の426を参照。ルータ430はポート接続を切り(図10bの650、661)、提供されているALPAのポートルックアップを実行する。ルータはポート接続を切らなければならないことに注意しなければならない。これを実行しないと、プライオリティロジックが有効にならずポートの不足が起こりかねない。ALPAは同じポートにある場合、ルータはポートを自分自身につなぎ戻し、src_connect425とdest_connect424信号を表明し、新しい接続680を確立する。ポートレシーバがOPNをスイッチ受信データバスに送るとループテナンシーが始まる。再度、ポートは受け取ったIDLEをARBffで置き換える。ループのすべてのデバイスがその会話を終了すると、ポートレシーバでARBffが検出される。これが発生すると、スイッチロジックを通る接続が切れ、701、702、IDLE 700が再度ポートトランスミッタ608によってソーシングされる。
先に説明し、図10a、10b、10c、10dに示されているように、アービトレーション時そして宛先デバイスがソースデバイスと同じポートにあるとき、ポートが自分に接続される。この場合、ポートレシーバロジックは検出したARBf0 682をARBff 681で置き換える。その他すべてのARBは転送され、各セグメントでのフェアネスを維持することに関わる複雑さが最小化される。これにより、ポートが自分に接続されるシングル接続時にいくつかのループテナンシーが発生することがある。ルート600、661、650、680、701、702、720はループスイッチに内的である。
図11a、11b、11cおよび11dはこの場合を示している。ノード11 723が最初にアービトレーションして接続しOPN724をノード12 725にソーシシングする。ノード11 723がノード12 725に対してオープンであるとき、ノード13はアービトレーションする。ノード11とノード12の間のテナンシーが完了したとき、ノード13はARBを受け取り、OPN 745をノード14にソーシングする。ノード13とノード14の間のテナンシーは、これ以上の介入なしで発生する。
いずれのポートでもすべてのノードはシングル接続時に1つのOPNをソーシングする。その点で、ポートレシーバでのARBf0のブロッキングにより、ループアクセスウィンドウがリセットされないことが保証される。すべてのノードが「フェア」に動作している場合、このメカニズムはポート接続が切れ、他のポートによるアクセスを許可することを保証する。パス720、730、740、750、751はループスイッチに内的である。
5.7.2 異なるポートでのソースノードと宛先ノード
ポートレシーバでARBが検出された結果として接続が確立され、OPNが別のポートに存在するデバイスに送られると、ポートレシーバでOPNが検出される。
5.7.2.1 宛先ポートが接続されていない
OPNが検出されると、ポートレシーバは内部レジスタにOPNを保存し(図12aの801)、宛先ALPAをルータに提供し、opn_connect_req信号を表明する(図8の426)。ルータはARBが渡されるとき確立されているポート接続を切り、提供されているALPAのポートルックアップを実行する。ALPAがOPNをソーシングしているポート855とは別のポート856にある場合、ルータはソースポートと宛先ポート850、851を接続し、src_connect信号(図8の425)をOPN855をソーシングしているポートで表明し、dest_connect信号(図8の424)を宛先ポート856で表明する。この場合のポートレシーバロジックは、すべてのARBをARBffによって置き換える。これにより、この接続時の追加テナンシーが避けられる。ポートレシーバとポートトランスミッタの両方でのCLSの受信がこのテナンシーの終了を決定する。これらの条件の両方が満たされると、ポート間の接続が切られる。図12a、12b、12cはこのシナリオを示している。パス800、804、850、851、860、861はループスイッチに内的である。
5.7.2.2 宛先ポート接続
図13aと13bに示されているように、ポート900がすでに接続されている宛先ポート901への接続905を要求した場合、ポートロジックは接続が確立されるのを待つ。オープンをソーシングしたノードがクローズのソーシングを決定できる。これが発生する場合、opn_connect_req(図8の426)がアサート停止され、ポートトランスミッタはクローズ915をオープンをソーシングしたデバイスに転送する。
5.7.3 同時オープン接続要求
図14a、14bに示されているように、ポート2 951がポート1 950への接続を要求したのと同時にポート1 950がポート2 951への接続を要求した場合、すべてのポートが公平にサービスを受けることを保証するプライオリティ方式が使用される(このプライオリティ方式については、ポートフェアネスを取り上げるセクションで詳しく説明する)。勝った要求967と負けた要求958がプライオリティ比較を通して確定されると、宛先ポートとしてオープンされなければならない負けたソースポート950は、勝ったOPNを転送する前にポートトランスミッタからCLS968を送る。転送を完了するためには負けたOPNを送ったデバイスは後に再度アービトレーションし、再度OPNを送らなければならない。パス953、952、957、956、968、967はループスイッチに内的である。
最上位プライオリティのソースループとその宛先ループの両方が作成されつつあるOPN要求を有している一般的な場合、最下位プライオリティのポートは常にCLSを受け取る。しかし、低いプライオリティのポートでOPN要求を表明されているが、他のポートからの最上位のプライオリティのOPN要求にサービスを提供するために閉じられる必要がない場合、低いプライオリティのポートはそのOPN要求が後でサービスを受けるまでオープンしたままである。
5.7.4 非存在デバイスに送られたOPN ループスイッチの宛先ポートからOPNが送られ、ループスイッチ宛先ポートに戻された場合、ソースデバイスがエラーを検出し適切に応答できるようにOPNがソースポートから戻される。ALPAマップでまだ識別されていない無効なデバイスへのアクセスが試みられたときにこの条件が発生しうる。この条件が発生した場合、ループスイッチはCLSがループを送られるとき接続されたポートの接続を切る。
5.7.5 OPN以後のR_RDY
OPNがポートレシーバで検出されたとき、オープンを内部レジスタに保存する他に、ポートレシーバは検出されたが転送されていないR_RDYをカウントしなければならない。255までのR_RDYをカウントし、保存し、後で再送できる。接続が提供されると、ポートレシーバはOPNが送られる前にR_RDYを送らなければならない。これには、OPN後のすべての第3フィルワードのR_RDYによる置き換えと、R_RDYカウンタのデクリメントとによって遂行される。これは、カウンタが0になるまで続く。R_RDY転送はすべてが送信される前にフレームの到着を容認しなければならないことに注意しなければならない。この場合、残りのR_RDYはフレームが転送された後に送られる。
各R_RDYの前後に少なくとも2つのフィルワードが必ず送られるのを保証するための慎重な検討が行われた。フレームは任意の時に伸縮性FIFOの出力に到着するためこれは難しい。したがって、R_RDY再送ロジックが当該送受信データパスに広げられ、順序集合間隔要件を満たすのみの十分なルックアヘッド能力を保証する。最初に、R_RDYがカウントされ保存されるため、再送される最初のR_RDYはカウンタから送られる。カウンタが完全にデクリメントされ、バッファリングされていたすべてのR_RDYが送信されると、さらにすべてのR_RDYはカウンタにバッファリングされることなく、そのまま通過していく。そこから、R_RDYソースポートが順序集合最小間隔の保証を担当する。
5.7.6 ノード障害
ポートロジックは、常にLIPf8のポートレシーバをモニタする。図15a、15b、15c、15dを参照。図4のルータロジック149は常にポート151、152、153、154、15、156、157、158からのlip_received信号をモニタする。ポートがこのプリミティブを検出した場合、ポートレシーバ図15の1554、1547はLIPf8 1504、1524をLIPf7 1502、1523によって置き換える。ルータロジックがlip_received信号151、152、153、154、155、156、157、158の表明を検出すると、すべてのアクティブポートをInitialize State−非交換モードに再接続する(これはフレームまたは複数のフレームの途中で起こり、失われることに注意)。ポートが16のLIPを転送したら、ポートアクティブ信号をアサート停止する。ルータ図4の149はスイッチマトリクス150にポートをバイパスするように指示する181。ループは存在しているLIPf8をソーシングするノードでポートなしに再初期化する。
また、ポートロジックはポートトランスミッタ1553でLIPf7 1503、1525、1543をソーシングし、ポートレシーバ1554をモニタし続ける。ポートがLIPf7を受け取った場合、最初にLIPf8をソーシングしたノードが活動状態になる。次にポートはそのポートアクティブ信号を表明する。ポートはこの時点でループに戻される。ポートトランスミッタは、LIPf7を受け取るまでLIPf7をソーシングし続ける。ポートトランスミッタでLIPf7を受け取ると、ノードは初期化の完了させるそのポートトランスミッタでのLIPf7のソーシングを停止する。
5.7.7 マイクロプロセッサ支援オペレーション
ループスイッチは、少数の例外はあるが、マイクロプロセッサの支援なしにハブエミュレーションまたはスイッチング(セグメント化)オペレーションを提供するよう設計されている。この例外について、以下で詳細に説明する。
デバイスディスカバリ段階で、ループスイッチとのある種のプロセッサ会話が必要なことがある。なんらかの理由によりディスカバリが失敗した場合、ループスイッチはステータスレジスタでエラーを通知し、マイクロプロセッサはエラーの原因を読むことができる。その時、プロセッサは再初期化を試みエラーからの回復を強制することができる。これは必須ではないが、エラーが一般的である場合にループスイッチのパフォーマンスレベルを改善するのに役立つことがある。
また、プロセッサを埋め込みファイバチャネルMACと共に使用して、手動でスイッチング(セグメント化)モードに入ることができる。そのためには、以下のステップを実施しなければならない。通常のポートディスカバリプロセスをバイパスするには、ルータのポートディスカバリディスエーブルビットが設定されなければならない。ループがダウンし再度復活したことを示すために各ポートモジュールでの割込みにより検出される各ループ初期化サイクル後に、プロセッサはFC MACを通したデバイスディスカバリの実行を支援する。プロセッサは各ポート内のユーザマッチビットを初期化して、送られる最初のOPNを検出し、OPNを送り出してから、ループを通るときにどのポートが実際にOPNを見ているかを知る。OPNがあるポートから次のポートに渡らないとき、OPNが目標としたデバイスはOPNを見た最後のポートのすぐ後のポートにあると想定する。次に、プロセッサは同じようにしてすべてのOPN値を通り、ALPAマップに書き出すのに必要な情報を決定する。プロセッサデバイスディスカバリの後に、ルータのARBブロッキングビットを設定しなければならない。これは、既存のループテナンシーが完了したときにすべてのループトラフィックをホールドオフし、スイッチングモードへのスムースな遷移を可能にする。その後、プロセッサは各ALPAのポート値でALPAマップをロードする。次に、プロセッサはルータのビットを設定して、ループスイッチをスイッチングモードにし、ルータのARBブロッキングビットもリセットする。ARBブロッキングビットをリセットすると、スイッチングモードへの手動切り替えが完了し、通常のトラフィックの再開が可能になる。
5.8 カスケーディング
カスケーディングとは、ループスイッチの相互接続を指している。次のセクションで、ループスイッチはルートスイッチに含まれている。図16b 919と図16c 944とSBODSを参照、図16a 1906、1908、1910、1912、図16b 1924、1926、1928、1930、図16c 1950、1947を参照。ルートスイッチは、マイクロプロセッサ、サポートロジック、パワーサプライがすべて1つのシャーシに収まったプリント回路基盤のループスイッチASICとして実装される。これは、スタンドアロンスイッチボックスに含まれているループスイッチである。あるいは、ループスイッチはハードディスクドライブストレージエンクロージャ、すなわちJBOD内に展開される。ループスイッチがプリント回路基盤に含まれ、ハードディスクドライブストレージエンクロージャのバックプレインまたはミッドプレインに差し込まれると、これはswitched bunch of disksすなわちSBODになる。各ディスクは直接ループスイッチに接続される。
5.8.1 シングルカスケード
5.8.1.1 ハブエミュレーションモード
追加接続を提供するために、2つのループスイッチをハブエミュレーションモードでカスケード接続することができる。1つのループスイッチ間ハブエミュレーションカスケードの実施に、特に検討すべきこともない。
5.8.1.2 スイッチング(セグメント化)モード
ループスイッチがスイッチングモードでカスケード接続されるとき、正しい動作を保証するために特別の検討が必要である。カスケード接続されたループスイッチがスイッチングモードで動作し、もう1つのループスイッチがハブエミュレーションモードで動作している場合、ビジーループを検出するのに使用されるARBff方式によるIDLE置換え方式を前に説明したように使用することができ、いかなる動作上の問題もない。ループがビジーかどうかをARBffを送受信を通してポートが判断するため、スイッチングモードのループスイッチは、アービトレーションなしで盲目的にOPNを宛先ループに送ることがある。しかし、スイッチングモードの2つのループスイッチがカスケード接続されているとき、接続されたループスイッチの両方のポートがARBffを送受信し、オペレーションの通常ルール(非カスケード)の下で任意の時にOPNを送ることがある。両サイドがほとんど同時にOPNを送った場合、接続の両サイドはカスケードループ接続の完全コントロールを想定しているため衝突が発生することがある。この競合を回避するために、ループスイッチのカスケード接続ポートは、非カスケード接続ループスイッチのポートとは異なる動作をしなければならない。
スイッチングモードの2つのループスイッチがカスケード接続されているとき、以下のいずれかのタイプのカスケードアービトレーション構成が設定されなければならない。図16bのツリーカスケード、または図16aのストリングカスケードである。ツリーカスケード構成とストリングカスケード構成を結合する、ループスイッチの追加展開もある。一方の展開はストリングカスケードのツリーである。図16cを参照。
ツリーカスケードは、中央またはルート位置のもの1919を使用してループスイッチ1919、1924、1926、1928、1930を相互接続し、残りをそのルートスイッチのポート1920、1921、1922、1923に接続する。ツリーカスケードでは、カスケード接続の両方のポート1920,1921、1922、1923はポートがビジーかどうか判断するのにARBff伝播特性に頼らない。むしろ、カスケード接続ポート1920、1921、1922、1923の間でループをアクティブにアービトレーションし、他のサイドたとえば1917、1918にOPNを送る前に勝者を決める。カスケードポートで送られるARBx ALPA値はOPNがソーシングされたポートにARBxで戻されたものと同じALPA値である。カスケードポートは、FC−ALループプロトコルの通常のルールに従ってアービトレーションする。しかし、標準ARB(f0)アービトレーションフェアネス方式(FCALアクセスフェアネスアルゴリズム)はこの場合には適用されない。それは、勝者にアクセス権を提供するためにアービトレーション敗者は接続を切られなければならないためである。したがって、敗者はアービトレーションを継続できず、勝者側の接続が取り除かれるまでアクセス権を取得できない。その点で、次の勝者は、(1) アービトレーション要求の到着時間と(2) ソースALPA値のプライオリティという2つの要因によって決められる。このアービトレーションは、2つの直接接続ループスイッチ1920、1921、1922、1923の間でのみ行われ、カスケードをアービトレーションする2つのループスイッチのいずれかのサイドのループスイッチには影響しない。
ストリングカスケード、図16aでは、各ループスイッチ1906、1908、1910、1912は、バーチャルループの論理デバイスとして扱われる。カスケードをコントロールするには、アービトレーションは、ループスイッチ1902、1903、1904、1905の全ストリングをコントロールできなければならない。アービトレーションの勝者は、標準のアービトレーション済みループと同様にソースALPAのプライオリティのみによって決められる。ストリングカスケードのコントロールを得るには、ループスイッチはアクセスを要求するデバイスのARBx ALPAをストリングカスケードループに置き、ARBx ALPAが戻されるのを待たなければならない。ループスイッチが自分のALPAを受け取る前に高いプライオリティのALPAを受け取った場合、ループスイッチは高いプライオリティのARBx ALPAを転送する。低いプライオリティのARBx ALPA、またはループスイッチが自分のARBを受け取った後に受け取ったARBx ALPAは、標準ループ同様にブロックされる。ループスイッチがカスケードストリングループのコントロールを得たと判断すると、ループスイッチはそのOPNをループに置き、希望する接続を確立する。接続が閉じられると、ループスイッチはループでARB(f0)を送り、ループがフリーであることを知らせる。元のループスイッチがARB(f0)を戻された場合、ループはフリーであると判断し、ループでIDLEを送る。ループがフリーでない場合、ループスイッチは受け取ったARBx ALPA順序集合を転送する。各ループスイッチは、ループスイッチフェアネスを保証するための、IDLEリセット期間当り1回のみループで自分の順番がまわってくる。
両方のアプローチは、ファイバチャネルループプロトコルをサポートしており、「カスケード接続された」ポートに接続された非Vixelループスイッチは、宛先ループのコントロールを得るために使用する方式で通常デバイスのように振る舞う。これにより、ループスイッチはカスケードポートに接続された非Vixelデバイスと協調できるようになる。
5.8.2 重複カスケード−トランキング
5.8.2.1 ハブエミュレーションモード
ハブエミュレーションモードでは、2つの同一リモートシリアル番号を2つの異なるポートで得た場合、下位の番号のデバイスがマスターと指名され、もう一方がスレーブとなる。ハブエミュレーションモードのマスターループスイッチは、ポートコントロールレジスタにビットを書き込むことによって、一方のカスケードポートをプライマリカスケードに割り当てる。ハブエミュレーションモードにあるマスターループスイッチの他のカスケードポートは、ポートコントロールレジスタに複製とマークされる。複製ポートと指定された各ポートはバイパスされる。これにより、ハブエミュレーションモードにあるループスイッチの複製ポートがスイッチングモードにあるループスイッチのポートに接続される場合、スイッチングモードのループスイッチは接続を使用しようとしないことが保証される。ハブエミュレーションモードにあるループスイッチの複製カスケードポートの同時活性化により無効なループトポロジが存在するようになるため、これは必須である。
5.8.2.2 スイッチング(セグメント化)モード(トランキング)
スイッチングモードにあるループスイッチ間の複数の複製カスケードを使用して、近隣ループスイッチ間のスループットを増やし、無効なループトポロジを作成することなく、同時に活性化することができる。イニシエータベースでのカスケード間のロードバランシングがサポートされる。図27を参照。2つのイニシエータとプライマリ/複製カスケードペアを持つシステムでは、各イニシエータは、専用の論理カスケードチェーンを持つことができ、これにより、シングルカスケードシステムの約2倍のスループットが提供される。たとえば図27に示すように、HBA1 1801は、SBOD 1803、1804、1805のストリングを通してフル帯域幅パス1813、1829、1831を持つ。イニシエータHBA2 1802もSBOD 1803、1804、1805のストリングを通してフル帯域幅パス1814、1830、1832を持つ。SBODのHBA1およびディスクとSBODのHBA2およびディスクとの間の同時通信が可能になる。たとえば、HBA2 1802がパス1814、1819を使用してSBOD 1803のディスク16 1819と通信しているときに、HBA1は同時にパス1813、1817を使用してSBOD 1803のディスク1 1817通信することができる。トランクでの複製カスケードの数はハードウェアによって制限されない。トランクグループは、希望するならば22のポートASICで21のトランクとして定義することができる(接続の他のサイドを提供するために、1つのポートはトランクに割り当てない)。カスケードより多くのイニシエータが追加される場合、グループ内の各トランクに割り当てられる相対トラフィックを基にしてスループットは影響を受ける。
5.8.2.3 イニシエータ検出
ループスイッチASIC内の状態マシーンが、ルータコントロールレジスタのビットの設定を基にしてPort Login(PLOGI)、SCSI FCP、またはPRLIフレームのようなファイバチャネルフレームをモニタすることにより、どのイニシエータALPAがループに存在しているか判断する。状態マシーンは各ポートに存在して、同時応答フレームの検出に対応する。ループスイッチのルータコアのロジックは、イニシエータALPAを収集し、それをルータのテーブルに保存する。このテーブルは、各ALPAにビットが割り当てられており、「1」はALPAがイニシエータとして識別されたことを示す。テーブルのフォーマットは、LixA(LixA = LISA、LIHA、LIFAなど)フレームのALPAマッピングと同一である。
ハードウェアイニシエータ検出は、ルータコントロールレジスタのディスエーブルビットによってグローバルに、またはルータレジスタにあるイニシエータレジスタのソフトウェアオーバライドによって個別に無効にすることができる。ソフトウェアオーバライドビットは、ハードウェア検出イニシエータビットとXORされ、なんらかの理由により検出されなかったイニシエータを含めたり、検出されたイニシエータを排除したりすることができる。
5.8.2.4 イニシエータロードバランシング
ルータのイニシエータALPAテーブルによって、マイクロプロセッサはループスイッチに接続されたトランクのグループの間でイニシエータのロードバランシングをするのに必要な情報をすべて有している。ソフトウェアは、3つの情報を相互参照することによって、このループスイッチがロードバランシングマスターとしてどのイニシエータをコントロールするか決める。この情報には、1) システムのイニシエータ、2) 各ALPAが存在するポート、3) プライマリカスケード、重複カスケードであるポートと分類法が含まれる。トランクグループの一部ではないポートに位置するイニシエータは、ロードバランシングのためこのループスイッチに属すると決められる。さらに、あるトランクグループでイニシエータが検出された場合、ソフトウェアは、そのイニシエータをそのループスイッチの他のトランクグループに割り当てなければならない。しかし、カスケードポートがつなげられる場合、ハードウェアは自動的にストリングパスに従う。
ソフトウェアがロードバランシングのためにコントロールする必要があるイニシエータを決めると、ソフトウェアはルータレジスタにあるトランク分類テーブルを初期化する。各イニシエータは、各プライマリ/複製カスケードセットに対して1つのエントリをトランク分類に有していなければならない。希望する構成やトラフィックフローを想定して(図17を参照)、トランク分類は次のようになる。
Figure 0004642755
ループスイッチA 1002は、すべてのローカルイニシエータ1000、1001、1020、1021を特定のトランクに割り当てている。ポート11 1018に結び付けられているツリーカスケードグループに入るイニシエータも、ポート7 1003に結び付けられているカスケードグループのトランクに割り当てられている。ループスイッチE 1012は、自分がマスターとなり割り当てねばならない1つのローカルイニシエータ1011を有している。
ループスイッチB 1005、C 1016、D 1010はマスターではなく、各イニシエータからの前のOPNがループスイッチに到着したパスを基にして各接続を送るトランクを自動的に学習する。あるいは接続は、各フレーム内のソースおよび宛先IDから学ぶことができる。この例では、ループスイッチB 1005とC 1016はプライマリ1018、1003とセカンダリトランク1004、1017を接続するストリング関連を有しており、接続は、トランザクションがループスイッチを通るときストリングに従うと想定される。ループスイッチB 1005とC 1016のカスケード接続がストリングとして定義されていない場合、イニシエータは希望するロードバランシングを保持するためにカスケードトランク1003、1004、1006、1007、1018、1019、1014、1013に割り当てられなければならない。ループスイッチB 1005において、ALPA 01、04、08 1023はポート7に割り当てられ、ALPA 02、17 1024はポート8に割り当てられなければならない。同様に、ループスイッチCにおいて、ALPA 01と04 1022はポート11 1018に割り当てられ、ALPA 02、17と08 1019はポート12 1017に割り当てられる。
イニシエータのALPAのいずれかがルータレジスタマップのトランク分類テーブルにロードされない場合、そのイニシエータのトラフィックはプライマリポート1003、1006、1014、1018にデフォルト設定される。テーブルに保持可能な多くのイニシエータをサポートするためにイニシエータのトランク割り当てを拡張するには、イニシエータをプライマリポートに割り当てるエントリを削除しなければならない。
同じ2つのデバイスの間のOPNが異なるトランクを通過するロックアップケースの可能性を最小化するために、2つのルールが分類テーブルにおいて明示的に設定されるか、イニシエータからのOPNをモニタすることによって学習されたトランク割り当てを無効にする。
1. イニシエータ間トラフィックは常にプライマリトランクを通る。
2. 半二重トラフィックは常にプライマリトランクを通る。
5.8.3 ターゲットロードバランシング
シングルイニシエータシステムでは、ソフトウェアイニシエータがテーブルを無効にし、イニシエータ間トラフィックは常にプライマリリンクを通るというルールが、2のトランクカスケード接続のための基本ターゲットロードバランシングメカニズムの定義を可能にする。すべての「真の」イニシエータトラフィックは、複製カスケードに割り当てられ、ターゲットの半分はイニシエータとして定義される。この場合、トラフィックは2つのトランクの間で分割される。「真の」イニシエータとソフトウェア割り当てイニシエータと間のすべてのトラフィックは、プライマリインク上にある。その他のすべてのトラフィックは複製リンク上にある。
5.9 ポートフェアネス
アービトレート型ループ仕様は、アクセスフェアネスアルゴリズムと呼ばれるループフェアネスのためのアルゴリズムを有している。FC_AL artでよく知られているように(Robert W. KembelのArbitrated Loop 1997 Connectivity Solutionsを参照)、オープン(OPN)要求を送る前に、デバイスはループをアービトレーションすることが要求される。アービトレーション(ARB)サイクルがループで実施され、デバイスがループへのアクセス権を獲得した後、デバイスはアイドル(IDLE)を受け取るまで再度アービトレーションすることは許されない。勝ったポートは、ループを勝ち取ろうとしている他のポートから受け取ったARB(x)をフィルワードARB(F0)によって置き換える。勝者側のポートが自分のARB(F0)を戻された場合、このポートは他のどのポートもループをARBしていないということを知る。この場合、勝者側のポートは、フィルワードIDLEを送る。このフィルワードは、ループの他のポートが受け取ったとき、このポートがアクセスケーパビリティをTRUEに設定できるようにする。そして、これは、プライオリティが低い他のポートに自分の番がまわってこないため、前にループへのアクセスを禁じられていたポートが再度ループのコントロールをアービトレーションすることを可能にする。他方で勝者ポートがループをコントロールし、ARB(F0)フィルワードを送っているときにループへのアクセスを希望する他のペンディングデバイスが存在する場合、このポートはARB(F0)を破棄し、自分のポートアドレスに置き換える。コントロール側のポートはARB(y)が返るのを知っているためリセットIDLEワードを送らないが、ARB(F0)を送り続ける。コントロール側のポートがループを終えているとき、最高位のプライオリティのペンディングポートのARB(y)が通過するのを可能にし、ARB(y)が戻ったとき「y」ポートはループをコントロールすることができる。
5.9.1 シングルループスイッチフェアネス
スイッチングまたはセグメント化オペレーションを説明しているセクションで取り上げたように、ループレベルでのポートフェアネスを確立するためにIDLEはARBffによって置き換えられる。しかし、これは3つのIDLEがARBff置換の前に通ることは許されないという点で、標準的なARBff置換の場合とは異なる。ループスイッチポートでのアイドルブロッキングは、ループの各ノードデバイスがループのコントロールを取得するチャンスを持ち、アクセスウィンドウは直ちにリセットされないことを保証する。ループスイッチは最初にビジーポートのデバイスがルータを通して他の接続を初期化する前に他のポートが以前にビジーであったポートに接続するのを許可する。アイドルブロッキングオペレーションは、ブロッキングALPAレジスタへのレジスタ書込みを通して修正できる。その結果、ARBffの使用に関連した相互運用性問題が存在する場合に0xFF以外のALPAが使用される。
固定プライオリティ値を各ポートに割り当てた固定プライオリティ方式を使用してどのOPN要求が最初にサービスを受けるかを決めている場合、プライオリティが低いループスイッチポートは、スループットがデグレードし、データに不足するようになり得る。この条件を観察するために、3つのポート(ポート1、ポート2、ポート3)が連続して4番目のポート(ポート4)に連続してアクセスする場合を検討してみよう。ポート1とポート2はポート3より高いプライオリティを有しているため、ポート3がアクセス権を取得できないときにポート4に交互にアクセスし得る。これを防止するために、ポートアクセスの順序リストが保守される。このリストは、複数のポートから要求があったときにどのポートが最初にサービスを受けるかを決めるアクセスプライオリティを決定するのに使用される。OPNの受信によりポートに接続が与えられると、そのポートはリストの下部に移動し、プライオリティの低いポートがリストのトップに向かって移動する。2つのポートが相互にアクセスしようとしている場合、プライオリティの低いポートにCLSが送信され、プライオリティの高いポートが接続を確立できるようになる。
5.9.2 フェアネスへのマルチループスイッチシステムの影響
先のパラグラフで説明されたプライオリティ順番制はシングルループスイッチシステムではかなりうまくいくが、マルチループスイッチシステムでは十分な公平性を提供できない。マルチループスイッチシステムは、ポートを「ツリー」として図16b、または「ストリング」として図16aカスケード構成することにより相互接続される。カスケードポートとして構成されているポートがデバイスとして構成されているポートからのペンディング要求と衝突するペンディング要求を有している場合、先着順の優先順位付けはシステムパフォーマンスにとって最良のソリューションではない。カスケードポートからのペンディングOPN要求は、少なくとも2つのループスイッチがすでに接続に関与していることを意味している。ローカルに接続されたデバイスからのペンディングOPNがすでに複数のループスイッチを通って伝播している接続を閉じることを許可すれば、システムパフォーマンスに悪影響を与えることになる。
任意に、フェアネスメカニズムに第2層を追加することができる。この層は、本物のプライオリティ順番制と比べてシステムパフォーマンスを改善する。異なる構成のポートがペンディングアクセス衝突を有しているとき優先権を得るポートタイプベースのプライオリティシステムが実装された。「ストリング」カスケードは複数のループスイッチが相互に接続されていることを意味し、「ツリー」カスケードは2つのループスイッチのみが相互に接続されていることを意味しているため、ポートタイプベースのプライオリティは次のように設定される。
ストリングカスケード 最上位のプライオリティ
ツリーカスケード 2番目に高いプライオリティ
デバイスポート 一番低いプライオリティ
同じタイプの2つのポートがアクセス要求衝突を有している場合、プライオリティ順番制は最初に受け取った接続要求が処理され、2番目に来た要求は閉じられる。
5.9.2.1 ストリングカスケードでのフェアネス
「ストリングカスケード」で相互接続されたスイッチのみから構成されている「バーチャル」アービトレート型ループはどのスイッチが相互接続のコントロール権を得るか決めるためにアービトレーションし、デバイスがインタースイッチカスケードループへのペンディングオープン要求アクセスを有していることを許可する。カスケードストリングの各スイッチはアービトレーションとデバイスフェアネスにファイバチャネルアービトレート型ループ標準に従って、バーチャルループのコントロールを得る。インタースイッチカスケードでのデバイスアクセスを決めるための前の方法は、利用可能なカスケードへのアクセスを決めるのに先着順とALPAプライオリティの組合わせを利用していた。このメカニズムは規模の大きいシステムでのフェアネスを保証せず、プライオリティの高いALPAデバイスがプライオリティの低いALPAデバイスを苦しめる(starve)のを可能にし、アクセス解決の先着順の部分での衝突によるデバイスオープン/クローズ(OPN−CLS)サイクルスラッシングを発生させる。非ファブリックスイッチング方式で複数のスイッチを接続するに際しての課題は、カスケードのすべてのスイッチの各デバイスが等しいアクセスを持つことを保証することである。
シングルループスイッチを使ったファイバチャネル実装は、複数のデバイスを含んでいる場合、スイッチの各ポートを別個のループとして扱う。これは、どのポートが別のスイッチポートに最後にアクセスし、次にどのポートがアクセスを待っているかをスイッチが内部レジスタに保存して知っており、かかるフェアネスシステムを実施するため、シングルループスイッチではなんら問題は生じない。他方で、複数のスイッチがカスケードに接続される場合、各スイッチは他のスイッチで何が起こっているか知らない。デバイスは様々なスイッチループに広がっているため、従来型のアービトレート型ループアクセスフェアネスアルゴリズムは、当初の設計どおりには動かない。本発明は、スイッチのストリングにカスケード接続されるときに各スイッチを1つのアービトレート型ループのシングルデバイスとして扱うことによってこの問題を解決するものである。したがって、相互接続されたループスイッチの「バーチャル」ループが存在する。各ループスイッチは、標準ファイバチャネルの一部がループをアービトレーションしたときに各デバイスが受け取るチャンスと似た、通信のチャンスを取得する。各個別スイッチのカスケードストリングポート(個別スイッチをスイッチのカスケードに接続するポート)のプライオリティロジックは、そのスイッチと結び付けられた各デバイスが自分の順番を持つことを保証する。ホストバスアダプタ(HBA)は、サーバまたはワークステーションバスとファイバチャネルネットワークの間のインタフェースである。スイッチと共にHBAは相互接続されたスイッチループ上に存在しうる。しかし、HBAは、カスケードループでのプライオリティの達成ということになると、単なる他のスイッチとして扱われる。したがって、1つのスイッチは接続された関連のHBAを有している3つのスイッチのカスケードストリングは、4つのエンティティがループをアービトレーションするということを意味する。
好ましい実施形態では、スイッチのどのポートもストリングカスケードポートして動作するように構成することができる。スイッチが「カスケードストリング」モードで構成されているときシングルスイッチのポートの間の論理接続が確立される。この論理接続により、ARBは、そのスイッチ上の他のストリングポートに特定のポートを通して渡すことができ、またストリングのスイッチの間の物理接続を通して渡すことができる。図28に例が示されている。図から分かるように、スイッチ1 2014は、ストリングカスケードポート1 2024に接続されたHBA 2012を有しており、ストリングカスケードポート2 2026との論理カスケード接続が確立されている。この接続の他に、このスイッチのポート3 2008とポート4 2019に接続された外部メモリストレージデバイス2020が存在する。ポート1とポート2はカスケードストリングポートとして構成されている。これは、スイッチを接続しているバーチャルスイッチループにHBAを接続している。スイッチ2 2016では、カスケードストリングポートもポート1 2028とポート2 2027であるように構成されており、やはり外部メモリストレージデバイスが2021と2022がポート3とポート4に接続されている。これは、最後のスイッチに到達するまで繰り返され、カスケードループに接続される必要があるスイッチ3 2018の後にはスイッチがないため、1つのカスケードストリングポートのみを必要とする。
図28の構成では、HBA 2012はカスケードループの最後のスイッチ2018に位置するアービトレート型ループデバイスにOPNを送ることを希望している。HBAは最初にスイッチループのオーナーシップを要求するARBメッセージを送る。HBAはスイッチのカスケードストリングに位置しているため(ポート1とポート2はカスケードストリングポートであることを忘れないこと)、ARBはカスケードストリングにある各スイッチのポートを通っていく。ARBは、スイッチ1 2014のポート2 2026から伝送され始め、スイッチ2 2016のポート1 2028へと達する。その後、ARBはスイッチ2 2016のポート2 2027にルーティングされ、スイッチ3 2018のポート1 2023に行く。最後のスイッチがポート1でARBを受け取るまでこれが次のスイッチで繰り返される。そして、最後のスイッチは同じポートからARBを返す(最後のスイッチであるため、信号の送受信に同じポートを使用する)。ARBは各スイッチのカスケードストリングポートを通して開始HBAに戻る。HBAが戻ったARBを受け取ると、HBAはオープン(OPN)信号を送信する。次に、OPNはOPN信号と結び付けられている宛先アドレスを基にして正しいスイッチに達する。正しいスイッチに達すると、信号はクロスポイントスイッチングモジュールを通って正しいスイッチデバイスポートに行く。カスケード接続されたストリングループへのアクセスを要求している(様々なスイッチの)複数のペンディングOPNが存在する場合、そのアクセスは従来のアービトレート型ループフェアネスアルゴリズムによってコントロールされる。スイッチのループは標準のアービトレート型ループプロトコルのデバイスのループと同じように動作する。ペンディングOPN要求を有している各スイッチは、ARBをカスケードループストリングに伝送することができる。ARBが同じくARBペンディングを有しているポートに来ると、プライオリティの一番高いARB(普通の場合一番高いプライオリティは一番低いアドレスに属する)が渡され、プライオリティの一番低いARBがブロックされる。これにより、ARB要求の中で1つしか勝者がいないことが保証される。プライオリティの高いARBが終了し、適切なデバイスがそのデータを適切なアドレスに渡すと、その勝者のデバイスはクローズ信号(CLS)を送る。システムアイドルが伝えられるまで再度ARBすることは許可されない。システムアイドルは、接続を要求しているデバイスを持つ各スイッチがバーチャルスイッチループでチャンスを持ったときのみ伝えられる。その際、システムアイドルはサイクルが繰り返されるとすぐにすべてのスイッチのアクセスウィンドウをリセットする。したがって、アドレスが低い(したがってプライオリティが高い)ポートとの他のARB競争に負けた他のペンディングデバイスに順番が回ってくる。デバイスがバーチャルカスケードスイッチループのコントロールを獲得したら、そのデバイスのOPNコマンドは自分自身の要求による以外、またはアドレッシング先のデバイスからCLSを受け取ったとき以外無効にできないことに注意するのが重要である。
本発明の別の実施形態を図29に示した。これは、カスケードループストリングのツリーを示している。トップのループスイッチ1 2114ポート1 2144は、HBA 2112を有している。他のループスイッチ1 2114ポート2 2142と4 2136は、それぞれに接続されたスイッチのシリアルペア、ループスイッチ2 2116とループスイッチ4 2138を有している。ポートはカスケードポートとして構成され、ツリーカスケードポートして指定されている。ループスイッチ4 2138とループスイッチ5 2140は、スイッチ1 2114のポート4 2136からのカスケード接続がそれらを接続している自分のカスケードストリングループ2146を有しているものとして示されている。この構成で発生しうる条件は、OPNをスイッチ1ポート4が受け取りスイッチ1ポート1の宛先を持ち(ポート4がアービトレーションに勝った)、第2のOPNをHBAからポート1が受け取り、それがポート2の宛先を有しているとき、カスケードストリングのARB後にポート1はポート4のOPNによって閉じられることがあるということである。これは、正常なオペレーションである。なぜなら、ポート4からのOPNはポート1のオペレーションに対し優先しているが、ポート1はカスケードストリングの左サイドをARBしており、ポート1のARBがループに残されるように閉じられるためである。ARBはループを巡回し、対応しない場合問題が引き起こされる。この状況の解決は、期間の最後までARBがループに伝わり、ポート2によってスクラブされるのに十分なタイムアウト期間を持つことである。タイムアウト期間は、レジスタで設定され、その好ましいデフォルト値は30〜40μ秒である。
図30は、カスケードループが必要とされないときで、必要とされる唯一の通信が(同じスイッチ内の)イントラスイッチであるときに接続されたスイッチが個別に動作し得ることを示している。ここで、HBA2212を使用しているサーバ2210は、スイッチ2 2216が同時にポート5とポート6でデバイスを接続しているとき2246、ストレージデバイス2242への接続2244を通してデータを送受信している。
図31は、他のワークステーションサーバ2350をどのようにしてカスケードループスイッチ2318に接続できるかを示している。この構成で、HBA 2350はループスイッチに接続された他のアービトレート型ループデバイスと同じプロトコルを使用している。ループのコントロールを取得するために先に取り上げたカスケードループアービトレーションプロトコルを使用してHBAを直接カスケードループに接続することも可能であることに注意しなければならない。
図32は、カスケードループで使用される実際の接続方法を示している。すべてのポートは、受信モジュール2408Aと送信モジュール2408Bから構成されている。カスケードループがアイドルモードにあるとき、カスケードループはポート2 2430の送信モジュール2426に論理的に接続されたポート1の受信モジュール2424を含み、3つのすべてのスイッチ2424、2416、2418を通っている。スイッチ間のインタースイッチ接続は物理接続である。ループスイッチ3 2418のポート1 2434は自分自身2436に接続されていることに注意する。通信ループは、図に示されているようにストリングを戻り、HBA 2412へと戻って終わっている。
図33は、ループスイッチ2 2516のファイバチャネルハードディスクデバイス2521に接続されたHBA 2512を示している。好ましいモードでは、カスケードループは依然として、スイッチのチェーン全体を通る(データがクロスポイントモジュールを通してファイバチャネルハードディスクデバイス2521に転送されるとすぐにスイッチ2 2516ポート2 2527の受信モジュールに到着する前にデータはループスイッチ3ポート1 2523を通ることに注意)。
図34は、ループスイッチカスケード2614、2616、2618のループスイッチ3 2618のポート2 2614に接続されたストレージデバイス2622と通信しているHBA 2612での同じようなシナリオを示している。明らかに、3を超えるスイッチがカスケードループまたはツリーカスケードループに接続されている。唯一の制限は、カスケードストリングでは最大で126しかデバイスをアドレッシングできないことである。
図4は、メインコンポーネント内のループスイッチのブロック図を示している。スイッチコア150は、実際に正しい関連ポートに論理接続を確立するクロスポイントスイッチングモジュールから構成されており、ルータ149は、カスケードループに接続したいデバイスのアドレスを保守し、OPN要求からソースデバイスのアドレスを取り除くALPAフィルタを含み、カスケードループアービトレーション要求にそのアドレスを使用する。オープン要求は、ソース情報が存在していない半二重動作モードであることもある。この場合、アービトレーションに使用されるAL−PAは現在のOPN要求の前に受け取った最後のARBアドレスである。OPN要求がソースデバイスと同じスイッチのデバイスのための宛先アドレスを有している場合、クロスポイントスイッチングモジュールは、デバイスがその上に存在しているポートを接続する。OPN要求が要求したデバイスが存在しているのとは異なるスイッチ上に宛先アドレスを有している場合、スイッチルータはループのためのソースデバイスアドレスとARBを記録する。図35は、カスケードループをARBするのにHBAが使用するプロセスを示しているフローチャートである。HBAはARBをその関連スイッチポート2863へとソーシングする。ポートは送信ポートと受信ポートを接続し、ARBをHBAに戻す。自分のARBを受け取ると、HBAはアクセス権を獲得し、OPN 2865をその関連ポートへとソーシングする。そのポートは、OPNが処理されるスイッチコアにOPNを送る。スイッチルータが宛先アドレスは別のスイッチの上にあると判断した場合、ルータはスイッチアクセス状態2866をチェックする。スイッチがカスケードループへのアクセスを有している場合、スイッチはARBをそのループ2872に置く。スイッチがまだカスケードループへのアクセスを有していない場合、スイッチはOPN要求をFIFOキュー2868に入れ、アクセスが可能になるのを待つ。アクセスが可能になると、スイッチはARBをカスケードループ2872に置く。HBAのARBが同時にループでのARBのうちで一番高いプライオリティを有している場合、HBAのARBはループのコントロールを獲得し、HBAが存在しているスイッチはOPNをソーシングして、HBAをカスケードループに接続する。OPNは宛先アドレスを有しているデバイスを含むスイッチに来るまでループを巡回する。そのスイッチはそのクロスポイントスイッチングモジュールを使用して、カスケードループを宛先デバイス2878に接続する。
5.9.3 フェアネスに対する反復クロージャ影響
カスケードとフェアネスに関するセクションで前に説明したメカニズムにもかかわらず、システムは、特定のデバイスが反復してクローズダウンするアクセス衝突のパターンに入ることがある。この条件の簡単な説明を図18に示した。
図18は、ポート1103に接続された6つのディスク1105、1106、1107、1108、1109、1110のループを有しているループスイッチ1102に接続されたシングルHBA 1100を示している。すべてのディスクが同時に要求ペンディングを有している場合、6のディスクのJBOD 1104は、最高のプライオリティを持ち、JBOD内でのアービトレート型ループを得たため、ループスイッチポートに対してALPA A3 1105を示す。しかし、JBOD 1104へのHBA 1100アクセス要求が最初にループスイッチに到着した場合、プライオリティ順番制はCLSをJBOD 1104に送ってHBA 1100アクセスを許可する。ディスク A3 1105はクローズダウンしているため、IDLEがJBOD 1104のフェアネスウィンドウをリセットするまで、他のアクセスを要求できない。すべてのディスクがサービスを受けたか、あるいはHBA 1100によってクローズダウンされた後に、IDLEがJBODおよびA3で巡回し、その他のペンディングディスクと共に再度アクセスを要求できるようになる。やはり、HBAの要求は、ディスクA3からの要求の前にペンディングになっており、クローズダウンしてフェアネスがリセットされるまでそのアクセススロットを緩める。これが続く場合、実際にディスクA3トランザクションが不足してHBAをタイムアウトさせ、ループをLIPするかディスクA3に非応答というフラグを立てる。
不足条件をなくすために、フェアネスメカニズムの第3層が存在している。ALPAを基にしたCLSカウンタが、フレームが移されることなくALPAのOPN要求がクローズダウンした回数を追跡する。CLSカウンタがソフトウェア設定閾値に到達した場合、次にALPAをソースとして含んでいるOPNを受け取り、そのプライオリティが最高位まで上げられる。少なくともデータのフレームを転送する接続が確立されるまで、このALPAによる要求は一番高いプライオリティを保ち、ペンディングの接続衝突に勝つ(最優先の2つのポートが衝突を要求している場合、先着順プライオリティが勝者を決める)。各ポートは、個別にこのALPAベースプライオリティ増加をポートコントロールレジスタ#1を介して有効/無効にできる。
「ダム」タイムベースのプライオリティメカニズムを使用することもできる。このメカニズムは、ALPAベースではなくタイムスロットベースでポートのプライオリティを上げる。このタイマーのデューティサイクルがコントロールされ、ポートはポートコントロールレジスタ#1を介して有効となる。
ALPAプライオリティコントロールもタイムベースプライオリティコントロールも、どのタイプのポートにでも適用できる。
5.10 ゾーニング
5.10.1 非重複ゾーニング
オペレーションのハブエミュレーションモードでもスイッチング(セグメント化)モードでも、各ポートは多数の可能性のある非重複ゾーンの1つに割り当てることができる。各ポートのゾーン割り当ては、特定のゾーン値を非重複ゾーンレジスタにプログラミングすることによって割り当てられる。あるゾーン内の各ポートのデバイスは、これらのデバイスのみが相互に対話でき、ループスイッチの他のすべてのポートから完全に孤立したループを形成するように接続される。データ転送も、ループ初期化活動も、完全に個別ゾーンに制限される。ループスイッチがシングルALPAマップをサポートするように設計されているため、ポートディスカバリは、非重複ゾーニングがオンのときのみゾーン0で有効である。非重複ゾーン情報は、シリアルEEPROMインタフェースを通じて取得される。
5.10.2 重複ゾーニング(スイッチングモード)
スイッチングオペレーションでは、重複ゾーンは、特定のソース/宛先ポート組み合わせを無効にすることによって構成できる。スイッチング(セグメント化)モードのループスイッチは、各ポートで個別ループセグメントに分割されるため、各ポートのデバイスはそれぞれ別のゾーンに位置する。通常、異なるポートのデバイスは、先に説明したプロセスを通じて相互に対話することができる。しかし、各ソースポートで、特定の宛先ポートへのアクセスを無効にし、ゾーン間分離能力を提供することができる。この無効化機能は、重複ゾーン宛先ポート無効化レジスタにソース/宛先ポート無効コントロールを書くことによって実行される。単独では、重複ハードゾーニングは、個別ループセグメントにループ初期化活動を隔離しない。そのためには、LIPアイソレーションが明示的に有効とされなければならない。
5.11 LIPアイソレーション
通常LIPがポートで受け取られると、すでにそのように構成されていない場合ループスイッチはハブエミュレーションモードに戻る。次にLIPはループスイッチのすべてのポートを伝播してループ初期化を許可する。システム要求に応じて、これにより、ループトラフィックに受け入れがたい割込みが発生することがある。頻度を減らす、もしくは少なくともこの割込みのタイミングを管理するために、ループスイッチはLIPアイソレーションをスイッチングモードで提供するように構成することができる。このアイソレーションは、GBIC/SFPが取り除かれているとき(後で再挿入されている)のLIPの伝播防止を含む。LIPアイソレーションの2つの主な分類、非ステルスモードとステルスモードがありうる。
5.11.1 非ステルスモード
非ステルスモードアイソレーションは、他のゾーンに対する影響を持たない特定のゾーンにLIP伝播を隔離するか、デバイスを完全にループから隔離する。LIPを作成したデバイスは、LIPと以後のループ初期化サイクルがシステムパフォーマンスに影響しないことが分かるまで、システムから隔離される。
5.11.1.1 ハブエミュレーションモード
非重複ハードゾーンは、LIPがあるゾーンから他のゾーンに伝わらないことを保証するが、いずれかのゾーンのLIPはそのゾーンのすべてのその他のポートを再初期化させる。
5.11.1.2 スイッチング(セグメント化)モード
ループスイッチのスイッチング(セグメント化)モードでは、2つのLIPアイソレーションソリューションがありうる。ソリューションが有効になるには、ルータでグローバルLIPアイソレーションイネーブルビットが設定されなければならない。これはポートの特定の動作を決定しない。単に、すべてのポートでのポート固有動作を有効にするにすぎない。各ポートでのLIPアイソレーション動作はポートコントロールレジスタでコントロールされ、ポートベースで個別に選択可能である。
非ステルスLIPアイソレーションコントロールの要約
Figure 0004642755
5.11.1.2.1 手動挿入モード(LIPブロッキング)
手動挿入モードでは、LIPはポートを離れる前にブロッキングされる。このモードがポートで活性化されるには、ルータでグローバルアイソレーションイネーブルビットが設定され、ポートアイソレーションがそのポートでイネーブルに設定されなければならない。ブロックされるLIPは他のポートに影響しないし、LIPが発したフルループを伝わることも許されない。これはLIPアイソレーションの最も厳しい形式であり、デバイスのLIPは不活動なままであり、通信することは許可されない。ポートをループに戻すには、LIPがループスイッチのすべてのポートを通して送られなければならないか、マイクロプロセッサが指向性のLIPをそのポートに送り、ループに入るのを認めなければならない。どちらの場合も、システム全体がループに入り込み、すべてのポートがループ初期化サイクルに参加する。ファームウェアは、そのポートへの割込みによってポートが隔離されたことを検出できる。
5.11.1.2.2 ローカル挿入モード
ローカル挿入モードは、LIPを検出したポートはローカルな隔離ループ初期化がそのポートでスタンドアロンループとして進行することを許可するという点を除けば、手動挿入モードと似ている。ローカルループ初期化に従って、ポートは内部で自身に配線される。ローカルデータ転送が進むことが許可されるが、他のポートとの通信は許されない。OPNが他のポートから隔離されたポートに送られた場合、OPN要求は通常応答を受け取る前に隔離ポートが利用可能になるまで、あるいはループスイッチ全体が初期化されるまで待つ。OPNに応答がない場合、ソースポートはCLSを送り、他の接続を試みることができる。ルータコントロールレジスタで選択されている場合、ポートはOPNが隔離されたポートに送られたときループスイッチから直ちにCLSを戻すことができる。どちらの場合も、システム全体がループに入り込み、すべてのポートはループ初期化サイクルに参加する。手動挿入モードの場合と同じように、ファームウェアはそのポートの割込みによってポートが隔離されていることを検出できる。
5.11.2 ステルスモード
ステルスモードLIPアイソレーションは、システムのすべてのデバイスをLIPすることなくデバイスがシステムに加わることを可能にする、ローインパクトメカニズムを提供する。システムの構成に応じて、システムへの影響は(新しいデバイスを除き)どのデバイスもLIPを受け取らないため、少数のデバイスがLIPを受け取る、システム全体がLIPされるまで様々まである。
図19のフローチャートは、ステルスLIPサイクルを処理するために内部状態マシーンがたどるフローを示している。
ステルスモードアイソレーションにはいくつかのレベルのコントロールが存在する。次のセクションは、ステルスアイソレーションのカスケード接続ループスイッチASICの例と共に、シングルループスイッチASICでのステルスアイソレーションのいくつかの構成を示す。それぞれの場合で、ループスイッチASICの回路の内部で発生するステップの詳細説明と共に、ブラックボックス説明が与えられる。
下の表で、グローバルアイソレーションコントロールをイネーブルにして、ステルスアイソレーションのポートレベルコントロールの機能が示されている。
Figure 0004642755
上に示されているビットの他に、ルートブロッキングとLIPアイソレーショングループを使用して、スイッチポートに基づくLIPアイソレーションばかりでなく、各デバイスのALPAに基づくデバイス間ルーティングアクセスをコントロールすることができる。
5.11.2.1 ルートブロッキンググループ
ループスイッチASICは、各デバイスのALPAを基にしてルートブロッキングを提供する複数のグループをサポートしている。各グループは、ループでの各ALPAに対応した126ビットの集合を含んでいる。ビットが「1」に設定されている場合、その関連デバイスはイネーブルが「1」に設定されているそのグループの他のデバイスと通信することができない。ルートブロッキングメカニズムは、カスケードホップに関係なく、ループスイッチASICを通る接続をカバーする。ルータルックアップ状態マシーンがOPNを受け取ると、各ルートブロッキンググループが解析され、接続がブロックされているかどうか判明する。接続がブロックされている場合、OPNが元のポートに戻され、元のデバイスに宛先ALPAはループ上にないことが明らかになる。半二重OPNは特殊な場合であり、ルートブロッキングはサポートされていない。ソースポートは、OPNフレームに含まれないため、ロジックはそのポートの存在するすべてのALPAを解析しなければならない。
いくつかのイニシエータは、そのALPAがLILPフレームにあるが、オープンできないデバイスに連続してアクセスしようと試みる。複数回の試行の後、そのイニシエータはループをLIPする。フィルタリングされたLIRP/LILPメカニズムが無効になっていない限り、LIPはLIPサイクル時に受け取ったイニシエータのLILPからブロックされているALPAをクリアし、システムオペレーションを継続しなければならない。
ALPAは、複数のルートブロッキンググループに含まれていることがある。LIPアイソレーショングループのハードウェア作成が有効になっている場合、このルートブロッキンググループは自動的に重複アイソレーショングループを作成する。
SOC422ループスイッチでは、3つのルートブロッキンググループがSEPROMスペースに含まれ、管理していないスイッチでのいずれかのレベルのルートブロッキング/LIPアイソレーションに対応する。
5.11.2.2 LIPアイソレーションゾーングループ
ループスイッチASICは、16のLIPアイソレーションゾーンをサポートしている。16という数は実装値であり設計値でないことに注意しなければならない。
各ポートは、各アイソレーションゾーンに対応する16ビット集合を含むルータのメモリマップスペースで定義されているコントロールレジスタを持つ。ビットが「1」に設定されている場合、ポートはそのLIPアイソレーショングループに含まれる。「0」に設定されている場合、ポートは含まれない。シングルループスイッチASICに対してグループが定義されており、複数のループスイッチASICがカスケード接続されている場合、あるループスイッチASICのゾーン2から転送されるLIPによって、システムのすべてのループスイッチASICのゾーン2のポートが影響を受けるようになる。
アイソレーショングループは、ポートで重複することがある。LIPを転送するように構成されているポートでLIPが検出された場合、有効になっているすべてのポートを含むループ初期化に、元のポートが属しているすべてのゾーンでLIPを受け取らせる。
5.11.2.3 インタースイッチフレーム
ループスイッチASICは、システムのすべてのスイッチでLIPアイソレーションとルートブロッキングをサポートしている。(ステルスインタースイッチカスケードレジスタの非ゼロ値によって示される)複数のステルスモードスイッチがシステムに存在する場合、複数のスイッチでの同時LIPイベントの際にループをコントロールするスイッチを決めるためにアービトレーションのメカニズムが必要となる。さらに、コントロールが決められると、どのゾーンがLIPサイクルに関与するかを知らせるメカニズムが必要となる。ブロードキャスト、インタースイッチフレームは、両方のニーズをカバーする。また、ファームウェアがシステムの他のスイッチとインバンド通信するためのメカニズムを提供する汎用インタースイッチフレームがサポートされている。
5.11.2.3.1 LIPサイクルインタースイッチフレーム
LIPサイクルのインタースイッチフレームは、ほぼループ初期化フレームの一般フォーマットを基にしている。7つの32ビットワードはへッダを構成し、16バイトへ続くペイロードとCRCを伴う。このフレームは、下の図のフォーマットを有している。
Figure 0004642755
ペイロードの1番目のワードは、フレームがLIPインタースイッチフレームであることを示している。ペイロードの2番目のワードは、LIPサイクルのコントロールを得ようとするスイッチのシリアル番号(ビット31−0のみ)を含んでいる。3番目のワードは、上半分でLIPサイクルに含まれ、下半分でゼロの2バイトによってパディングされるゾーンを示しているビットマップを含んでいる。
5.11.2.3.2 汎用インタースイッチフレーム
汎用インタースイッチフレームは、へッダの1番目のワードと3番目のワードのマッチでデータフレームをキャプチャするループスイッチASICでユーザプログラム可能である。フレームは32バイトペイロードを持つ。ペイロードの先頭4バイトは、ループスイッチASICのシリアル番号でなければならず、それらが伝送インタースイッチフレームレジスタで読み込みアクセス可能であっても、ループスイッチASICによって自動的に挿入される。ペイロードの残りの28バイトはユーザにより定義される。
Figure 0004642755
ループスイッチASICは、ペイロードで受け取ったシリアル番号をローカルシリアル番号と比較し、フレームが他のスイッチから来たもので転送しなければならないかどうか判断する。また、自分のスイッチから来た場合にはブロックする。リモートフレームの検出時またはラップバックされたローカルフレームの受け取り時に割込みを作成することができる。
5.11.3 ステルスモードアイソレーション、シングルASIC、シングルLIPゾーンのデバイス、ルートブロッキングなし
下の表は、各デバイスのステルスアイソレーションの基本コントロールを示している。
Figure 0004642755
この例で(図20を参照)、ループスイッチASIC 1200、1204、1205、1209に接続されている4つのすべてのデバイスはルートがブロックされることなく同じLIPゾーンに属している。ルートブロックはそのALPAを基にして特定のデバイスが他のデバイスと通信するのを阻止する。シングルゾーンの実装は、LIPがルータ1208に転送されたときはいつでも、LIPについて通知するように構成されているすべてのデバイスがループ初期化に関与するということである。HBAポート1211、1210は、LIPがルータ1208に転送された際、HBAが通知を受けるように構成されているが、HBAはLIPを他のデバイスには転送しないように構成されている。ディスクポート1212と1213はそれぞれ逆に構成されている。ディスクからのLIPはシステムに転送されるが、システムのLIPはディスクポートに渡されない。
LIPがディスク#1 1204によって作成される場合、ポートはループスイッチ1201、1203、1206、1207に内的なパスによって示されているようにループに接続される。2つのHBA 1200、1209がディスク#1 1204付きのループに含まれているが、ディスク#2 1205は影響を受けない。ディスク#1 1204はLIP転送が有効になっているため、LIPを転送する。HBAとは異なりLIPを受け取るように構成されていないため、ディスク#2 1205はLIPサイクルから除かれる。3つのデバイス1200、1204、1209は、ループ初期化サイクルを実行する。完了時に、3つのすべてのデバイスは、スイッチングモードに入り、ディスク#2 1205と通信できるようになる。
ループスイッチASIC内で、ディスク#1 1212に接続されているポートがLIPを検出する。ポート1212でLIPがブロックされるが、「LIP検出」信号がルータ1208に転送される。ルータロジック1208はすべてのポート1211、1210、1212、1213をコントロールし、フィルワードがブロッキングARBによって置き換えられ、ループスイッチASIC 1202内で新しい通信が作成されないようにする。さらに、R_RDY順序集合は、既存の通信をすばやく完了するためにループスイッチASIC 1202を通して渡されない。
ルータロジック1208は、LIPされたゾーンに存在しないか、LIPについて通知しないように構成されているポートにある、スイッチのすべてのALPAを含んでいるLIFAフレームによって論理ORしてビットをフォーマットする(この場合、ディスク#2には1ビットが設定される)。さらに、LIPされているがLIPついて通知するように構成されていないゾーン内のスイッチ上のすべてのデバイスのALPAは、ルータ内のリストにフォーマットされ、LIRPフレームに挿入される。この場合、これはディスク#2 1205のALPAにすぎない。
ロジックがすべてのトラフィックが停止されたことを検出すると、直ちにクロスバースイッチがループ初期化サイクルのためポートとルータをループに接続するように構成される。この点で、トラフィックは、ループ初期化に含まれないすべてのポートで再開を許可される。初期化ループに入るデバイス向けのOPNは、OPNの発呼者に戻されてCLSと共に応答され、要求されたデバイスはビジーであることを知らせる。ポートからのLIPは、隔離されたポートのループを巡回することを許可される。
LIFAフレームがルータを通るとき、ルータにフォーマットされているリストのすべてのALPAが論理ORされてルータにより修正される。
LIRPフレームがルータを通るときも修正される。初期化されるが、実際には初期化に関与していないゾーンのデバイスを含むALPAリストがLIRPフレームに挿入される。オフセットフィールドがインクリメントされ、CRCが計算し直される。
ループ初期化サイクルは、ループを巡回しているLILPフレームとCLS順序集合でもって終了する。
ループスイッチASICが初期化が完了したことを検出すると、ルータは隔離されたポートが再度メインシステムに加わることを許可する。
5.11.4 ステルスモードアイソレーション、シングルASIC、マルチLIPゾーンのデバイス、ルートはブロックされない
下の表は、各デバイスのステルスアイソレーションの基本コントロールを示している。図21も参照。
Figure 0004642755
この例では、ループスイッチASICに接続された4つのすべてのデバイスが1組みのLIPゾーンにある。図21 1233、1234を参照。ルートはブロックされない。すべてのデバイス1220、1228、1232、1229はすべての他のデバイスと通信することができる。別個のゾーンにあるということは、LIPがルータ1226に転送されると、LIPについて通知するように構成されている同じゾーン内のデバイスのみが、ループ初期化に参加するということである。HBAポート1221、1231は、LIPがいつルータに転送されたか通知を受けるが、LIPを他のデバイスに転送しないように構成されている。ディスクポート1225、1230は逆に構成されている。ディスクからのLIPはシステムに転送されるが、システムのLIPはディスクポート1230、1228に渡されない。
LIPがディスク#1 1228によって作成される場合、ループスイッチ1222、1223、1234内のパスによって示されているようにポートはループに接続される。HBA #1 1220のみがディスク#1 1228と共にループ1222、1223、1224に含められ、HBA #2 1232とディスク#2 1229は影響を受けず通信を続けることができる。隔離されているときにHBA #2 1232またはディスク #2 1229がHBA #1 1220またはディスク#1 1228のいずれかにOPNを送ろうとした場合、CLSが元のデバイスに返される。LIP転送が有効になっているため、ディスク#1はLIPをルータ1226に転送する。2つのデバイスはループ初期化サイクルを実行する。完了すると、両方のデバイスはスイッチングモードに入り、HBA #2およびディスク#2と通信することができる。
HBA #1は、LIRP/LILPフレームにHBA #2のALPAを含んでいないループ初期化サイクルに含まれていた。HBA #1はHBA #2について知らないため、HBA #1からHBA #2への通信は基本的に分割される。ルータコントロールレジスタのオプション設定により、システムのすべてのALPAをLIRP/LILPフレームに含めることができる。
ループスイッチASIC 1227内で、ディスク#1 1225に接続されるポートはLIPを検出する。ポートでLIPはブロックされるが、「LIP検出」の信号がルータに転送される。ルータロジック1226は、すべてのポート1221、1231、1225、1230をコントロールし、フィルワードをブロッキングARBによって置き換え、ループスイッチASIC 1227内からの新しい接続の作成を阻止する。さらに、R_RDY順序集合は、既存の接続を速やかに完了させるためにループスイッチASICを通らない。
ルータロジック1226は、LIFAフレームと論理ORしてビットをフォーマットする。この例では、HBA #2とディスク #2のALPAに対応するビットが設定される。シングルゾーンの例とは異なり、ゾーン1のすべてのデバイスは、どのALPAもLIRPフレームに挿入されるリストでフォーマットされないようにループに含まれる。
ルータロジックがすべてのトラフィックの停止を検出すると、ループ初期化サイクルのためにクロスバースイッチがポートとルータをループに接続するように構成される。この点で、トラフィックはHBA #2とディスク#2に接続されているポートでの再開を許可される。OPNがHBA #1またはディスク#1に向けられている場合、OPNの発信者に戻されるCLSによって応答し、要求されたデバイスはビジーであることを知らせる。ポートからのLIPは、隔離ポートのループを巡回することを許可される。
LIFAフレームはルータを通るとき、ルータにフォーマットされるリストからのすべてのALPAを論理ORしてルータにより修正される。
LIRPフレームがルータを通るとき、修正されない。ゾーンのすべてのデバイスがループ初期化に参加する。
ループ初期化サイクルは、ループを巡回するLILPフレームとCLS順序集合でもって終了する。
ループスイッチASICが初期化が完了したことを検出すると、ルータは隔離ポートが再度メインシステムに参加することを許可する。
5.11.5 ステルスモードアイソレーション、シングルASIC、マルチLIPゾーンのデバイス、ルートブロックあり
下の表は、各デバイスのステルスモードアイソレーションの基本コントロールを示している。図22も参照。
Figure 0004642755
この例で、ループスイッチASICに接続されている4つのすべてのデバイスは1組みのLIPゾーンにある。図22 1255、1254を参照。2つのイニシエータ1240、1241の間のルートはブロックされる。HBA #1 1240はいずれかのディスク1243、1242がLIPする場合LIPされる。HBA #2 1241はディスク#2 1242がLIPする場合のみLIPされる。
LIPがディスク#2 1242によって作成される場合、ポート1247、1246、1245はパス1250、1251、1252、1253によって示されるようにループに接続される。HBA #1 1240もHBA #2 1241もディスク#2 1242と共にループ1255に含められ、ディスク#1 1243は影響を受けず、他のデバイスが利用可能である場合通信を続けることができる。ディスク#1 1243がOPNをいずれかの隔離デバイスに送ろうとする場合、CLSが元のデバイスに戻される。LIP転送が有効になっているため、ディスク#1はLIPをルータ1248に戻し、両方のHBAはオーバラップゾーン1255、1254のためアイソレーションループにロールインする。3つのデバイスがループ初期化サイクル1240、1243、1242を実行する。完了時に、すべてのデバイスはスイッチングモードに入り通信することを許可される。
この例では、HBA1240およびHBA1241も他のHBAのALPAを見ているが、あるHBAから他のHBAに送られるOPNはブロックルートとして検出され、OPNは元のHBAに戻される。いずれかのHBAがループ上にあると考えているデバイスへのOPNの連続した戻りに動転する場合、LIPすることがある。このLIPは、LIPしているHBAとルータ1248を含んでいるにすぎず、これらがそのLIPゾーンのALPAをLIRPフレームに挿入し、実際にテーブルから他のHBAのALPAを取り除く。
ループスイッチASIC 1249内で、ディスク#2 1245に接続されているポートはLIPを検出する。「LIP検出」信号はルータロジック1248に転送されるため、LIPはポートでブロックされる。ルータロジック1248は、すべてのポート1247、1246、1244、1245をコントロールし、ループスイッチASIC 1249内で新しい接続が作成されるのを防止するためにフィルワードがブロッキングARBによって置き換えられるようにする。さらに、R_RDY順序集合は、既存の接続をすばやく終えさせるためにループスイッチASIC 1249を通らない。
ルータロジックは、LIFAフレームと論理ORしてビットをフォーマットする。この例では、ディスク #1のALPAに対応したビットが設定される。さらに、ディスク #1のALPAは、LIRPフレームに挿入されるリストにフォーマットされる。
ルータロジックがすべてのトラフィックは停止したことを検出すると、クロスバースイッチがループ初期化サイクルのためにポートとルータがループに接続されるように構成される。この点で、トラフィックはディスク#1に接続されているポートでの再開を許可される。OPNがHBAまたはディスク #2に向けられている場合、OPNはディスク #1に戻されるCLSによって応答され、要求されたデバイスはビジーであることを示す。その後、ポートからのLIPは隔離されたポートのループを巡回することを許可される。
LIFAフレームがルータを通るとき、ディスク #1のALPAに対応するビットでORし、ルータによって修正される。
LIRPフレームがルータを通るときも、修正される。初期化されるが実際には初期化に関与していないゾーンのデバイスを含むALPAリスト(ディスク #1のALPA)がLIRPフレームに挿入される。オフセットフィールドがインクリメントされ、CRCが再計算される。
ループ初期化サイクルは、ループを巡回しているLILPフレームとCLS順序集合でもって終了する。
初期化が完了したことをループスイッチASICが検出すると、ルータは隔離されたポートが再度メインシステムに加わることを許可する。
この点で、両方のHBAは各デバイスにPLOGIするためにLILPフレームで検出された各ALPAをOPNしようとする。HBA #1とHBA #2の間のルートはブロックされているため、ルータはいずれかのHBAが他のHBAをオープンしようとするとき発起者にOPNを返す。
5.11.6 ステルススイッチアイソレーション、マルチASIC、マルチLIPゾーンのデバイス、ルートはブロック
下の表は、各デバイスのステルスアイソレーションの基本コントロールを示している。図23を参照。
Figure 0004642755
この例で、ループスイッチASICに接続されている5つのすべてのデバイスは1組みのLIPゾーンにある。図23、1328、1329を参照。両方のイニシエータHBAの1300、1301の間のルートはブロックされている。HBA #1 1300は、ディスク #1 1302または#2 1303がLIPする場合、LIPされる。ディスク #2 1303または#3 1304がLIPする場合、HBA #2 1301はLIPされる。マルチループスイッチ1319、1320システムをサポートするために、各ループスイッチASIC 1319、1320の重複カスケード1306はステルスインタースイッチカスケードとして構成される。
LIPがディスク #2 1303によって作成される場合、ポートはパス1321、1322、1323によってループスイッチに内で接続される。HBA #1 1300とHBA #2 1301の両方がディスク #2 1303と共にループ1324、1325、1326、1327、1322、1323、1321に含まれ、ディスク#1 1302と#3 1304は影響を受けず、他のデバイスが利用可能である場合通信を続けることができる。ディスク#1 1302または#3 1304がいずれかの隔離デバイスにOPNを送ろうとした場合、CLSが元のデバイスに戻される。LIP転送が有効になっているためディスク #2 1303はLIPをルータ1317に転送し、オーバラップゾーン1329、1328により両方のHBAはアイソレーションループにロールインされる。3つのデバイスは、ループ初期化サイクルを実行する。完了時に、すべてのデバイスはスイッチングモードに入り通信することを許可される。
この例で、両方のHBAは他のHBAのALPAを見ているが、一方のHBAから他方のHBAに送られたOPNはブロックルートとして検出され、OPNは元のHBAに戻される。いずれかのHBAがループに存在していると思っているデバイスにOPNが連続して戻されることに動転した場合、LIPすることがある。このLIPは、LIPするHBAとルータのみを含み、これらはそのLIPゾーンのALPAのみをLIRPフレームに挿入し、そのテーブルから他のHBAのALPAを実際に取り除く。
ループスイッチASIC内で、ディスク #2に接続されているポート1315がLIPを検出する。LIPはポートでブロックされているが、「LIP検出」信号はルータに転送される。ルータロジックがすべてのポートをコンロトールし、ASIC内で新しい接続が作成されないようにフィルワードをブロッキングARBによって置き換える。さらに、R_RDY順序集合は、既存の接続をすばやく終えさせるためにASICを通らない。
シングルループスイッチASICシステムとは異なり、このシステムは初期化サイクルのマスターをアービトレーションし、LIPゾーン影響情報を他のループスイッチASICに渡さなければならない。ループスイッチASIC #2 1320でトラフィックが停止されると、ルータをステルスインタースイッチカスケードポート、この場合はループスイッチASIC間の重複カスケード1306に接続しているループがループスイッチ内で確立される。インタースイッチ/ループが作成されると、16のLIPのストリームが送出される。ループスイッチASIC #1の1319トラフィックはすでに停止されているため、LIPの受領時にそのルータと重複カスケードをループに接続することができる。LIPインタースイッチフレームがループスイッチASIC #2によって作成され、ループスイッチASIC #1 1319のルータによって受け取られ、保存されてループスイッチASIC #2に戻される。ループスイッチASIC #1は最初のサイクルでLIPフレームを見ているため、再送要求ビットをループスイッチASIC #2に戻されるフレームに設定する。これにより、ループスイッチASIC #2にLIPフレームを再送させる。ループスイッチASIC #1は、すでにLIPフレームを見ているため今回は修正することなくそのままループスイッチASIC #2にフレームを戻す。注:この再送メカニズムにより、スイッチコアでのステルスカスケードとルータの関係にかかわらず、すべてのスイッチがLIPフレームを受け取ることが保証される。
ARB FF順序集合がフィルワードとしてループスイッチASIC #2に送出される。
初期化サイクルのコントロールを得ると、ループスイッチASIC #2 1320はループのディスク#2 1303をローカルルータ1317と重複カスケードポート1313と接続する。このループを作成した後、LIPはディスク#2からシステム全体に伝播することが許可される。
2番目のLIPを受け取ると、ループスイッチASIC #1はインタースイッチフレームを基にして初期化サイクル向けにポートを構成する。この場合、両方のHBA、重複カスケードポート、ルータがループにロールインする。隔離ループが各ループスイッチで作成されると、各ループスイッチはそのループスイッチで影響を受けないポートが通信を再開するのを許し、プライマリカスケードでループスイッチASIC間のトラフィックが再開される。隔離ループ初期化においてデバイスはLIMを決定するためにアービトレーションを開始する。
ループスイッチASIC #1 1318のルータロジックは、LIFAフレームもLIRPフレームも修正しようとはしない。このループスイッチASICにローカルに接続されている両方のデバイスは、初期化サイクルに関与するが、ループスイッチASICがそのALPAを確保することを要求しない。ループスイッチASIC #2のルータロジックは、LIFAフレームと論理ORしてビットをフォーマットする。この例では、ディスク#1と#3のALPAに対応したビットが設定される。さらに、ディスク#1と#3のALPAは、LIRPフレームに挿入されるリストにフォーマットされる。
LIFAフレームはループスイッチASIC #1のルータを通るとき、影響を受けない。LIFAフレームがループスイッチASIC #2のルータを通るとき、ルータでフォーマットされたリストのすべてのALPAを論理ORし、ルータによって修正される。
LIRPフレームはループスイッチASIC #2のルータを通るとき、やはり影響を受ける。初期化されるが、初期化に実際には関与しないデバイスを含むALPAリストがLIRPフレームに挿入される。オフセットフィールドがインクリメントされ、CRCが再計算される。
ループ初期化サイクルは、ループを巡回しているLILPフレームとCLS順序集合でもって終了する。
ループスイッチASICが初期化が完了したことを検出すると、ルータは隔離ポートが再度メインシステムに加わることを許可する。
この点で、両方のHBAは各デバイスにPLOGIするためにLILPフレームで検出された各ALPAをOPNしようとする。HBA #1とHBA #2の間のルートはブロックされているため、ルータはいずれかのHBAが他方のHBAをオープンしようとするとき発起者にOPNを返す。さらに、HBA #1はディスク #3の存在を発見し、そのディスクをPLOGIしようとし得る。このアクセスを望まない場合、HBA #1とディスク#3の間のルートブロッキングを構成するか、ディスク#3とHBA #2のみをカバーしている3番目のアイソレーションゾーンを設定することができる。
5.11.7 ステルスモードアイソレーション、マルチASIC、マルチゾーン、接続でのHBA #1とHBA #2
下の表は、各デバイスのステルスアイソレーションの基本コントロールを示している。図23も参照。
Figure 0004642755
この例では、ループスイッチASICに接続されている5つのすべてのデバイス1300、1301、1302、1303、1304は1組のLIPゾーンにある。図23 1328、1329を参照。両方のイニシエータ1300、1301の間のルートはブロックされている。ディスク #1 1302または#2 1303がLIPする場合、HBA #1 1300はLIPされる。ディスク#2 1303または#3 1304がLIPする場合、HBA #2 1301はLIPを得る。複数のスイッチシステム1319、1320をサポートするために、各ループスイッチASICの重複カスケード1306は、ステルスインタースイッチカスケードとして構成される。
LIPがディスク#2 1303によって作成されるとき、HBA #1 1300とHBA #2 1301は通信中である。システムのすべてのトラフィックが停止した後、パス1321、1322、1323、1325、1327、1326、1324によって示されているようにポートがループに接続される。HBA #1 1300もHBA #2 1301もディスク#2 1303と共にループに含まれる。そしてディスク#1 1302と#3 1304は影響を受けず、他のデバイスが利用可能である場合、通信を続ける。ディスク#1 1302がいずれかの隔離デバイスにOPNを送ろうとしている場合、CLSが元のデバイスに返される。LIP転送が有効になっているためディスク#2 1303はLIPをルータ1317に転送し、両方のHBAはオーバラップゾーンにより隔離ループにルールインする。3つのデバイスが初期化サイクルを実行する。完了時に、すべてのデバイスはスイッチングモードに入り通信することを許可される。
ループスイッチASIC 1320内で、ディスク #2 1315に接続されているポートがLIPを検出する。ポート1315でLIPはブロックされているが、「LIP検出」信号がルータ1317に転送される。ルータロジック1317はすべてのポートをコントロールし、ASIC内で新しい接続が作成されないようにするためにフィルワードをブロッキングARBで置き換える。さらに、R_RDY順序集合は、既存の接続をすばやく終えさせるためにASICを通らない。
シングルループスイッチASICシステムとは異なり、このシステムは初期化サイクルのマスターをアービトレーションし、LIPゾーン影響情報を他のループスイッチASICに渡さなければならない。ループスイッチASIC #2でトラフィックが停止されると、ルータをステルスインタースイッチカスケードポート、この場合はループスイッチASIC間の重複カスケードに接続しているループがループスイッチ内で確立される。インタースイッチ/ループが作成されると、16のLIPのストリームが送出される。ASIC #1のトラフィックで実行中のものもあるため、HBA #1とHBA #2の間の接続の終了を控えている。ループスイッチASIC #1とループスイッチASIC#2の間のカスケードはループスイッチASIC #2サイドから停止されている。ループスイッチASIC #1は複製カスケードでLIPを検出するため、ルータと重複カスケードをLIP受領時にループに接続する。LIPインタースイッチフレームがループスイッチASIC #2によって作成され、ループスイッチASIC #1によって受け取られ、ループスイッチASIC #1のルータに保存される。ループスイッチASIC #1のすべてのトラフィックが停止されると、インタースイッチフレークがASIC #2に転送される。ARB FF順序集合がフィルワードとしてループスイッチASIC #2によって送出される。
初期化サイクルのコントロールを得ると、ループスイッチASIC #1は、ローカルルータや重複カスケードポート共にループにディスク#2を接続する。このループを作成した後、LIPはディスク#2からシステム全体に伝播することが許可される。
2番目のLIPを受け取ると、ループスイッチASIC #1はインタースイッチフレームを基にして初期化サイクル向けにポートを構成する。この場合、HBA、重複カスケードポート、ルータがループにロールインする。ループが各ループスイッチで作成されると、各ループスイッチはそのループスイッチで影響を受けないポートが通信を再開するのを許し、プライマリカスケードでループスイッチASIC間のトラフィックが再開される。ループ初期化においてデバイスはLIMを決定するためにアービトレーションを開始する。
ループスイッチASIC #1 ルータロジックはLIFAフレームもLIRPフレームも修正しようとはしない。このループスイッチASICにローカルに接続されている両方のデバイスは、初期化サイクルに関与するが、ループスイッチASICがそのALPAを確保することを要求しない。ループスイッチASIC #2のルータロジックはLIFAフレームと論理ORしてビットをフォーマットする。この例では、ディスク#1と#3のALPAに対応したビットが設定される。さらに、ディスク#1と#3のALPAは、LIRPフレームに挿入されるリストにフォーマットされる。
LIFAフレームはループスイッチASIC #1のルータを通るとき、影響を受けない。LIFAフレームがループスイッチASIC#2のルータを通るとき、ルータでフォーマットされたリストのすべてのALPAを論理ORし、ルータによって修正される。
LIRPフレームはループスイッチASIC #2のルータを通るとき、やはり影響を受ける。初期化されるが、初期化に実際には関与しないデバイスを含むALPAリストがLIRPフレームに挿入される。オフセットフィールドがインクリメントされ、CRCが再計算される。
ループ初期化サイクルは、ループを巡回しているLILPフレームとCLS順序集合でもって終了する。
ループスイッチASICが初期化が完了したことを検出すると、ルータは隔離ポートが再度メインシステムに加わることを許可する。
この点で、両方のHBAは各デバイスにPLOGIするためにLILPフレームで検出された各ALPAをOPNしようとする。HBA #1とHBA #2の間のルートはブロックされているため、ルータはいずれかのHBAが他のHBAをオープンしようとするとき発起者にOPNを返す。さらに、HBA #1は、ディスク #3の存在を発見し、そのディスクをPLOGIしようとし得る。このアクセスを望まない場合、HBA #1とディスク#3の間のルートブロッキングを構成するか、ディスク#3とHBA #2のみをカバーしている3番目のアイソレーションゾーンを設定することができる。
5.11.8 ステルスモードアイソレーション、マルチASIC、マルチLIPゾーンのデバイス、同時LIP
下の表は、各デバイスのステルスモードアイソレーションの基本コントロールを示している。図24と図25も参照。
Figure 0004642755
この例では、ループスイッチASICに接続されている5つのすべてのデバイスはLIPゾーン1429、1428、1529、1528の組みにある。ディスク#1 1402、1502、または#2 1403、1503がLIPを作成する場合、HBA #1 1400、1500はLIPされる。ディスク#3 1401、1501がLIPを作成する場合、HBA #2 1404、1504はLIPを取得する。複数のスイッチシステム1419、1420、1519、1520をサポートするために、各ループスイッチASICの重複カスケード1406、1506はステルスインタースイッチカスケードとして構成される。
LIPがディスク#2 1403、1503とディスク#3 1401、1501によってほとんど同時に作成される場合、非オーバラップゾーンを処理するために2つの初期化サイクルが実行されなければならない。ループスイッチASIC#1 1419、1519が(シリアル番号が小さいため)最初の初期化サイクルのコントロールを獲得し、図24、1427、1426、1425のパスによって示されているようにポートはループに接続される。HBA #2 1404、1504はディスク#3 1401、1501とのみループに含まれ、HBA #1 1400、1500とディスク#1 1402、1502は影響を受けず、プライマリカスケードで通信を継続する。HBA #2 1404、1504とディスク#3 1401、1501はループ初期化サイクルを実行する。完了時に、これらのデバイスはスイッチングモードに入り通信することを許可される。
完全なループ初期化サイクルの検出時に、ループスイッチASIC #2 1420、1520はHBA #1 1400、1500とディスク#2 1403、1503を含むループ初期化サイクルを開始する。作成されるループを図25、1525、1526、1527、1522、1521、1523に示した。HBA #1 1500とディスク#2 1503はループ初期化サイクルを実行する。完了時に、両方のデバイスはスイッチングモードに入りシステムの他の部分と通信することを許可される。注:両方のLIPingデバイスが同じゾーンにあった場合、ループスイッチASIC #2 1520はそのことを検出しており、1つのループ初期化しか必要でなかった。
ループスイッチASIC内で、ディスク#2と#3に接続されているポート1514、1515はLIPを検出する。各ポートでLIPはブロックされるが、「LIP検出」信号が、各ループスイッチASICのルータ1417、1418、1517、1518に転送される。ルータロジック1417、1418、1517、1518はすべてのポート1408、1409、1410、1411、1412、1413、1414、1415、1416、1508、1509、1510、1511、1512、1513、1514、1515、1516をコントロールし、ループスイッチASIC内に新しい接続が作成されないようにするためにフィルワードをブロッキングARBで置き換える。さらに、R_RDY順序集合は、既存の接続をすばやく終えさせるためにASICを通らない。
シングルループスイッチASICシステムとは異なり、このシステムは初期化サイクルのマスターをアービトレーションし、LIPゾーン影響情報を他のループスイッチASICに渡さなければならない。ループスイッチASICでトラフィックが停止されると、ルータをステルスインタースイッチカスケードポート、この場合はループスイッチASIC間の重複カスケードに接続しているループがループスイッチ内で確立される。各ループスイッチASICのインタースイッチ/ループが作成されると、16のLIPのストリームが送出される。LIPインタースイッチフレームはループスイッチASIC #2によって作成され、ループスイッチASIC #1が受け取るが、ループスイッチASIC #1よりも大きいシリアル番号を有しているため破棄される。ループスイッチASIC #1インタースイッチフレームはループスイッチASIC #2が受け取り、そして保存してループスイッチASIC #1に戻される。ARB FF順序集合が両方のループスイッチASICによってフィルワードとして送出される。勝ったことが分かると、ループスイッチASIC #1はディスク#3と重複カスケードポートをループにロールインし、少なくとも10ミリ秒のLIPを作成する。
2番目のLIPを受け取ると、ループスイッチASIC #2はループスイッチASIC #1からのインタースイッチフレームを基にして初期化サイクル向けにポートを構成する。この場合、HBA #2、重複カスケードポート、ディスク#3がループにロールインする。このループが各ループスイッチで作成されると、各ループスイッチはそのループスイッチで影響を受けないポートが通信を再開するのを許し、プライマリカスケードでループスイッチASIC間のトラフィックが再開される。ループ初期化においてデバイスはLIMを決定するためにアービトレーションを開始する。
ループスイッチASIC #1のルータロジックは、LIFAフレームにおけるHBA #1のALPAを表しているビットをORするが、HBA #1は別のアイソレーションゾーンにいるため、ALPAをLIRPフレームに追加することはしない。ループスイッチASIC#2のルータロジックはLIFAフレームと論理ORしてビットをフォーマットする。この例では、ディスク#1と#2のALPAに対応するビットがこれらのALPAを保持するために設定されるが、他のディスクは別のLIPアイソレーションゾーンにあるためLIRPフレームを修正することはしない。
ループスイッチは、各ループスイッチASICに対してLIMを含んでいるポートを検出し、初期化ループにおいてLIMポートと他のポートの間で各ループスイッチASICのルータを接続する(この場合、ディスク#3がLIMになった)。LIFAフレームがループスイッチASIC #1を通るとき、HBA #1のALPAビットはORされ、CRCが再計算される。LIFAフレームはループスイッチASIC #2のルータを通るとき、ディスク#1とディスク#2の両方のすべてのALPAをORして、ルータにより修正される。
LIRPフレームが各ループスイッチASICのルータを通るとき、修正されない。
ループ初期化サイクルは、ループを巡回するLILPフレームとCLS順序集合によって終わる。
ループスイッチASICが初期化の完了を検出すると、ルータは隔離ポートが再度メインシステムに加入できるようにする。
ループスイッチASIC #2は、LIPゾーン#2 1428、1528サイクルが完了したことを検出し、LIPゾーン#1 1429、1529ループ初期化サイクルを開始する。
5.12 CPUポートインタフェース
5.12.1 CPUポートの説明と動作
ループスイッチがSBOD構成に含まれているときスイッチとRAIDコントローラのようなリモートファイバチャネルデバイスの間でインバンド通信が必要になることがある。cpu_portはファイバチャネルMACであり、エンコーダ/デコーダまたはリンクサイドはループスイッチクロスバースイッチに接続される。これは、追加ポート経由でアクセスされる。CPUポートは、ループスイッチポートにある他のデバイスのように見える。そこでは、23番目または追加のポートは、すべての他のポート機能と共に他のポートと同様にデバイス、ツリー、またはストリングであるように構成できる。
伝送エンジンはFCインタフェースからコマンドにデータを送信するのに使用される。ファームウェアはRAMにフレームまたはパケットを作成する。RAMからCPUポート伝送バッファにデータを構成し、ロードする。バッファはFCフレーム全体(2112バイトペイロード)を入れるのに十分な大きさである。割込みがプロセッサに戻されて、伝送がいつ完了したか通知する。CRCが作成されフレームと共に送出される。CPUポート伝送バッファは、パラレルインタフェースまたはICインタフェースを通してアクセスされる。
受信エンジンは、CPUポートに送られるフレームやパケットを扱う。バッファは、FCフレーム全体(2112バイトペイロード)を入れるのに十分な大きさである。フレームが到着するとCRCがチェックされる。割込みがプロセッサに戻されて、いつフレームを受信し、いつフレームが読まれたかを通知する。CPUポート受信バッファはパラレルインタフェースまたはICインタフェースを通してアクセスされる。
伝送エンジンでは、プロセッサはデータをCPUポートの伝送FIFOに移動する。図26を参照。これは、最初にゼロをTx FIFOポインタレジスタ1602に書き込むことによって行われる。これはFIFOポインタバッファをゼロに設定する。次に、データをデータポートレジスタ1603に書き込む。FIFOに書き込まれるデータは2ワード幅のFIFOに書き出される。すなわち、データは2ワードが送信されるまでFIFOに書き込まれないということである。したがって、たとえ奇数のワードが存在していても、32’h0のダミー書き込みが最後の2ワード1611にロードするために実行される必要がある。送信される最初のワードと最後のワードは、システムSOFおよびEOF定義である。システムデリミタの定義は以下のとおりである。有効なSOFデリミタは32’h2e000000であり、有効なEOFは32’h41000000である。DMA転送が完了した後、コントロールレジスタの送信フレームビットを設定してフレームをスイッチコア1605に送る。
受信エンジンでは、プロセッサはデータをCPUからRAMに読み込む。Rx FIFOでrxされるフレームで割込みが発生する。Rx FIFOポインタレジスタを読んで、Rxフレーム1613の長さを判断しなければならない。Rxポインタレジスタは、読み取り1612のためのデータをプレロードするために、ゼロの書き込みを登録する。フレームの最初のワードと最後のワードは特に符合化されたシステムSOFとEOFデリミタである。
5.13 ポート管理機能
5.13.1 ポートコントロール
ポートコントロール機能は、ビーコニング、ポート挿入またはバイパスの強制、ポリシーの設定、順序集合をポートに伝送またはポートでの順序集合のキャプチャを含む。
5.13.2 ポートステータス
ポートステータス機能は、ポートベースでの順序集合検出能力ばかりでなく、ポート初期化状態、GBIC/SFPステータス、トランシーバ動作ステータスを含む。
5.13.3 順序集合定義
順序集合定義はポートディテクタレジスタで絶えず行われている。このレジスタは読み取り時またはポートコントロールレジスタのクリアステータスレジスタビットに書き込むことによってクリアされる。管理カードが検出サイクルを行うために、ディテクタレジスタをクリアし、一定時間待ってデータストリングをサンプリングし、ディテクタレジスタを読み込む。
5.13.4 ユーザマッチ機能
ユーザマッチ機能は、ループまたはポートで発生している出来事を検出するための別のメカニズムを提供する。ユーザマッチ機能は、特定の順序集合を検索し、事前定義済みのディテクタビットを持たない順序集合を検索し、検索基準にマッチする順序集合の数をカウントし、検索基準にマッチする順序集合をキャプチャする能力を含んでいる。
特定の順序集合の検索という最初の機能は、ユーザ順序集合マッチレジスタを順序集合によって設定しポートコントロールレジスタでユーザマッチイネーブルビットを探し設定することによって実行される。マッチすると、ポートディテクタレジスタのユーザマッチビットが設定される。設定可能なオプションビットはMatch3xビットと1つまたは複数のマッチマスクビットである。Match3xビットは、ユーザマッチビットを設定する前にロジックに検索基準にマッチする連続した順序集合を見るようにさせる。これは、FCプリミティブシーケンスの検索を可能にする。マッチマスクビットにより、ユーザは順序集合のどのビットでも問題ない。これにより、たとえばSOFのタイプに関係なくSOFを検索したり、ソースまたは宛先ALPAに関係なくOPNを検索することができるようになる。
2番目の機能は、ディテクタレジスタに事前定義ビットを持たない順序集合の検索である。これは、match_othrビットとユーザマッチイネーブルビットを設定することによって行う。ユーザ順序集合マッチレジスタがこの機能のために使用されることはない。LIP、OPN、CLS、RRDY、ARB、IDLE、SOF、またはEOFでない順序集合を受け取ったとき、ユーザマッチビットが設定される。受け取った順序集合がポイントツーポイントOS(すなわち、OLS. NOS、LR、またはLRR)である場合、Match、Unknown OS、Pt−Ptプリミティブビットがポートディテクタレジスタで設定される。受け取ったOSが他のものである場合、Match(us
r_match_detect)とUnknown OS Detect(unk_os_detect)ビットが設定される。Match Otherビットが設定されているときmatch3xフラグは無視されることに注意しなければならない。
次の2つの機能は、最初の2つの機能が有効なときに実行される。ポートマッチカウンタレジスタは、マッチの回数をカウントする。たとえMatch 3xビットが設定されていても、カウンタは各順序集合をカウントすることに注意しなければならない。ユーザ順序集合マッチレジスタにマッチする連続した2つの順序集合のみを受け取った場合、カウントは2だけインクリメントされるが、ディテクタビットは3番目のOSを受け取らない場合見られない。マッチカウンタは、マッチイネーブルビットがポートコントロールレジスタに書き込まれるとクリアされ、ビットがクリアされるまでカウントし続ける。
ポートキャプチャ順序集合レジスタを使用して、検索基準にマッチする最初の順序集合を記録する。やはり、この機能はMatch3xビットを使わない。この機能を使用して、どの順序集合がユーザマッチ(usrm_en)ビットを設定させたか知ることができる。この機能は、マッチマスクビットを使用するとき、またはMatch Otherビットを使用するときに非常に興味深い。
ユーザマッチレジスタの別の機能は、ユーザマッチ検出時の内部パリティの注入である。この機能により、ソフトウェアエラーハンドリングルーチンが実行されるようになる。
5.13.5 順序集合伝送
順序集合伝送は、順序集合を送る際に使用する方法を設定する、レジスタのコントロールビットと共に希望する順序集合をポートユーザ順序集合伝送レジスタに書き込むことによって行う。「S」ビットは所与の順序集合を連続して送るか、それとも1〜15回送るかを制御する(送信する順序集合の数のコントロールは、ポートコントロールレジスタ#2ビットを使用して行う)。「I」ビットは、順序集合を即座に送るか、それとも待ってフィルワードのみを置き換えるかを制御する。「M」ビットにより、ユーザはユーザ順序集合セットマッチレジスタを使用して受信データストリームで探す特定の順序集合を定義し、この順序集合をユーザ順序集合セット伝送レジスタで定義されている新しいもので置き換えることができる。「F」は、ユーザ順序集合セット伝送レジスタのデータフィールドを使わないがユーザ順序集合マッチレジスタにマッチする順序集合を探し、それを最新のフィルワードで置き換えるという点で、少し異なる動作をする。
順序集合を送るには、上位ワードではTX Enable(xmit_os_reg)ビットを設定して、最初に下位ワードを書き込まなければならない。他の伝送ワードに変更するには、新しい下位ワードを書き込み、その後やはりTX Enableビットを設定して新しい上位ワードを書き込む。上位ワードの書き込みが完了すると、ループスイッチは同期的に新しいワードに変わる。ユーザワードの伝送を止めるには、TX Enableビットをクリアして上位ワードを書き込む。ループスイッチはレジスタ書き込みが完了すると同期的に伝送を終了する。
ポートがループに挿入された場合、順序集合の伝送は通常送られる順序集合に取って代わることに注意しなければならない。ポートが挿入されない場合、伝送された通常のIDLEまたはARB文字が所与の順序集合に取って代わる。要求された伝送が完了すると、通常のデータストリームが再開される。
動作ループでの伝送能力の使用例は、ループでMark文字を送りどのループスイッチが相互に接続されているかを検出するというものである。ユーザ順序集合マッチとユーザ順序集合セット伝送レジスタはMark文字によってロードされる。ユーザ順序集合伝送レジスタでは「E」、「S」、「F」ビットが設定される。これは、(カウントが1に設定されている場合)フィル文字を置換することによって1回のみMark文字を送り、Markが戻ってきてマッチ機能によって検出されると取り除かれる。
5.13.6 GBIC/SFPステータスおよびコントロール
ポートステータスとコントロールレジスタは、管理カードがコントロールピンばかりでなくGBIC/SFPのステータスピンにアクセスできるようにする。ステータスは、レシーバ信号損失(RX_LOS)、トランスミッタ障害(TX_FAULT)、設置されているGBICまたはSFPのタイプを示すMod_Defピンを含む。GBIC/SFPのコントロール信号のみが伝送ディスエーブルピンである。
5.13.7 GBIC/SFPシリアルID ループスイッチは、ICインタフェースをサポートしている接続のGBIC/SFPからシリアルIDを読むメカニズムを提供する。2つのマイクロプロセッサアクセス可能レジスタは、EEPROMを読み込むことにおいて、ループスイッチをアシストするように定義される。1番目のレジスタは、EEPROMへの次のアクセスがどこで発生するかを示すアドレスレジスタである。2番目のレジスタは、シリアルIDが読み込まれる16ビットデータレジスタである。リセット後、またはGBICあるいはSFPがループスイッチに挿入された後、ループスイッチは2秒間休んで、GBIC/SFP内部ロジックが既知の状態に落ち着き、自動的にGBICから先頭2バイトを読み出し、それをデータレジスタに入れさせる。その後、ループスイッチはポートステータスレジスタ#2のシリアルIDレディービットを設定する。そして、マイクロプロセッサは、GBIC/SFPシリアルIDデータレジスタを読んでデータを取得することができる。このデータがループスイッチに次の2ワードを読ませる。また、マイクロプロセッサは、別のアドレスをGBIC/SFPリードアドレスレジスタに書き、ループスイッチに新しい位置からデータを読ませるデータレジスタの読み取りを実行することができる。マイクロプロセッサは最初にアドレスを設定してから、データレジスタ読み取りを実施し、ループスイッチに適切な位置から読み込ませる。リードプロセス時にアドレスが壊れることを防止するためにシリアルIDレディービットがポートステータスレジスタ#2で設定されていない場合、GBICリードアドレスレジスタを修正してはならないことに注意すること。
また、データはGBIC/SFPから一度に1バイト読み出されることに注意しなければならない。Finisar GBICの読み取りの際の問題を防止するために完全準拠ICプロトコルを使用して読み取りを実施する。
5.13.8 エラーカウンタ
各ポートは、フレームCRCエラーとバッド伝送ワードカウンタを保持する。バッド伝送文字は、10b/18bデコードロジック内で検出される。バッド文字が40ビットワード内で検出される場合、カウンタは1だけインクリメントされる。ポートのレシーバで検出された各フレームのCRCが計算される。CRCは、それぞれのポートのレシーバにおいて、16ビットにて計算され、確証される。両方のカウンタはその最大値を継続して保持し、マイクロプロセッサからの読み取りによってクリアされる。CRCエラーの検出と共に、ループスイッチはCRCエラーALPAレジスタにエラーを有していた最後のフレームのS_IDの下位バイトを保存する。これを使用して、フレームのソースノードのALPAを決めることができる。この情報を使用して、障害のあるリンクが存在している場所を知ることができる。
各ポートは、ポート挿入とループアップステート変化のための8ビットカウンタを保守する。ループアップカウンタは、各ポートで保守され、ポートのハードゾーン化を可能にし、しかも各ゾーンのためのループアップカウンタを保守する。
その他のエラー検出機能としては、LIPを作成する最初のポートの番号を取得する能力がある。これを使用して、頻繁なループ初期化の実行を要求している問題に遭遇しているポートを特定することができる。
5.13.9 ポートモニタリングモード
ルータロジックは、スイッチマトリクスコントロールレジスタというレジスタを有している。このレジスタにより、管理エンティティはポートをモニタリングポートして構成することができる。このモニタリングポートは、拡張ポートやモニタリングポート自身のレシーバを含め、どのポートのレシーバにでも接続することができる。このケーパビリティにより、特定のポートを、FCプロトコルアナライザを差し込めるアナライザポートとして取っておくことができる。管理カードは、アナライザをポートからポートへと「移動」して、何が起こっているのかを見つける。スイッチマトリクスコントロールレジスタがポートのコントロールを得ると、そのポートのバイパスLEDが点滅を始め手動コントロールを実行中であることを示すことに注意しなければならない。
5.13.10 ポート外部ループバック
ポートは、先に説明したように、ポートが自分をモニタしているモニタリングモードにすることもできる。この場合、ポートはポートで受け取ったものがトランスミッタに戻されるループバックモードで動作している。管理者は、このモードを使用してループに挿入する前にループスイッチへのリンクを検査することができる。ループバックモードのポートでは、ポートに接続されるループセグメントは、リンクが良好な場合ループ初期化を完了する。ループスイッチの診断では、管理者はループが動いていることを確認してからポートをループにつなぐことができる。
5.13.11 周波数チェック回路
周波数チェック回路は、伸縮性バッファ内に実装される。この回路は伸縮性バッファ内の挿入/削除の間の時間を知るのに使用されるワードカウンタである。カウンタは、上流ノードの周波数が高いか低いかを指定する上位ビット付きの16ビットである。16番目のビットの1は、上流ノード周波数が高いことを示し、ゼロは、上流ノード周波数が低いことを示す。他の15ビットは、挿入または削除間の周波数デルタをカウントする。およそ10,000十進数(十六進数では2710)より小さいカウント値は、指定の範囲(プラスまたはマイナス100PPM=200PPM)外の周波数デルタを示している。カウンタ値は、752.94マイクロ秒毎にプロセッサアクセスレジスタにロードさえ、再初期化されて新しいサンプリングを開始する。サンプリング期間は読み取り後の最初の挿入/削除で有効になり、2番目の挿入/で無効になる。
ファイバチャネルトランスミッタのクロック公差は、+/−100 ppmである。いずれかのトランスミッタが公差範囲の低速端で伝送しており、他方のトランスミッタが公差範囲の高速端で伝送している場合、2つのクロックの間の最大許容差は、200 ppmである。ファイバチャネルトランスミッタの理想的内周波数は1062500 Kbpsであり、200 ppmは200 KBPSの差である。これは、5,000伝送毎の1伝送ワードに、あるいは10,000ハーフワード毎に1ワードに相当する(設計の伸縮保存部分は16ビットの内部データパスを使用しており、ASICのリセットは32ビットパスを使用している)。カウンタはハーフワード毎にインクリメントされるため、許容リミットは10,000である。このレジスタでの値0x8000または0x0000は、挿入または削除がレジスタの読み取り以後発生せず、2つのクロックは仕様内に収まっていることを示している。
同じ周波数に非常に近いクロックの場合、プレスカラー回路により、カウンタは周波数カウンタのlsb解像度を変更することによって挿入または削除の間のより長い時間を追跡できるようになる。カウンタは、周波数カウンタで報告された値がプレスカラー設定を説明するために処理されなければならないということを除けば、先に説明したとおりに動作する。
5.13.12 ポートオペレーションポリシー
ループスイッチASICは、特定の設置先で望ましい/望ましくない多数の自動機能を有している。このポリシーは、EEPROMポリシービットを通してロードされる。このため、ループスイッチのいくつかの機能は、管理オーバライドがビルトインされている。このオーバライドは、ポート構成レジスタに含まれている。管理ステーションは、このポリシーフラグの1つまたは複数を設定し、希望しない機能をポート毎に無効にすることができる。TINMANは例外であるが、すべてのポリシーは独立である。
ワードシンクでのポート挿入(TINMAN):チップが同期できる受信入力に信号が存在している場合、このモードによりポートの挿入が可能になる。コンマ文字を含んでいるかどうかチェックを除き、受け取ったデータが良いかどうかのチェックは行われない。有効な場合byp_no_commaを除きすべての他のポリシーを無効にする。初期状態は、EEPROMのポリシーbit[0]によって設定する。
接続デバイスディスカバリを無効に(SEOC):ポート挿入時に、ポートは様々な信号をデバイスに送ることによってどのようなデバイスが接続されているか決定しようとする。この信号送出により相互互換性問題が発生する場合、このポリシーを設定してこの信号送出を無効にする。初期状態は、EEPROMのポリシーbit[1]によって設定する。
LIPf8存在でのポートバイパス(byp on lipf8):ポートがLIPf8順序集合を検出すると、その順序集合をLIPf7に変更し、ループを通させる。LIPf7がポートに戻ると、ポートはバイパスされ、ループは通常の挿入プロセスを通ることが許可される。このポリシーフラグを設定すると、LIPf8置換と以後のバイパスが無効になる。初期状態は、EEPROMのポリシーbit[2]によって設定する。
データなしでのポートバイパス(byp no comma):100μs以上コンマ文字を含んでいる順序集合が通らないことをポートが検出すると、ポートはバイパスされ、ポートが挿入基準に合格するまでその状態になっている。このポリシーフラグを設定すると、チェックと以後のバイパスを無効にできる。初期状態は、EEPROMのポリシーbit[3]によって設定される。
ポートバイパスでのLIP(lip on byp):ポートがバイパスされると、ループスイッチはLIPf7をループに入れ、ループのすべてのデバイスがループ構成の変更を必ず認識するようにする。このポリシーを設定すると、LIP作成が無効になり、ポートはループから取り除かれる。注:TINMANポリシーがアクティブでもLIPf7は作成されない。初期状態は、EEPROMのポリシーbit[4]によって設定される。
ポート挿入時のLIP(lip on ins):ポートがループに挿入されると、ループスイッチはLIPf7をループに入れ、ループのすべてのデバイスがループ構成の変更を必ず認識するようにする。このポリシーを設定すると、LIP作成が無効になり、ポートをループに挿入する。これにより、FC−AL1初期化プロトコルに従っている現在のデバイスと、古いプロトコルに従い得ない将来のデバイスとのミックスが可能になる。注:TINMANポリシーがアクティブでもLIPf7は作成されない。初期状態は、EEPROMのポリシーbit[5]によって設定される。
カスケードロードバランシングを無効に(dis_balance):ループスイッチ間で複数のトランクが接続されているとき、このビットを設定するとトランクのロードバランシングのためのイニシエータのハードウェア検出が無効になる。接続のソフトウェア指定ロードバランシングは、有効なままである。
5.13.13 ALPAからポートへのマップ
ループスイッチは、すべての既存のALPAをループスイッチのポートにマッピングするデバイスディスカバリプロセスを実行する。このマッピングは、管理エンティティがトポロジマップを作成するために使用するルータのポートALPAレジスタで利用可能である。
5.13.14 トラフィックパターン
トラフィックパターンは、各ポートにOPNポートビットマップレジスタを保持することによって決められる。2つのポートの間の接続が確立されると、OPNをソーシングするポートのレジスタは、宛先ポートに対応するビットを設定することによって更新される。さらに、各ポートは接続が確立されると宛先ALPAを保存する。ポートビットマップレジスタは、マイクロプロセッサからの読み込みによってクリアされる。
5.13.15 ポート/ループセグメント利用率測定
各ループスイッチのポートは、ポート利用の指標を提供するレジスタセットを有している。この測定は2つの方法のいずれかで行われる。ループスイッチモードでは、ポートを通るフレームデータの量が測定される。スイッチングモードでは、送信されるデータの数量には関係なくポートが接続に関与していた時間の割合が測定される。
ループモードでは、いずれかのレジスタが連続して伝送ワードをカウントし、他方のレジスタはSOFとEOFの間の伝送ワードをカウントする。最初のカウンタが最終カウントに達すると、2番目のレジスタの最上位ビットが実際のデータペイロードを運んだトラフィックの割合を表すものとして保存される。このストアオフ値は、〜240ms毎にCPUによってサンプリングされる。
スイッチングモードでは、代わりにSOFとEOFの間の伝送ワードをカウントするという点を除けば同じように動作する。ポートで接続が立ち上がっている間に2番目のカウンタが伝送ワードをカウントする。
2つのカウンタは最初のカウンタが0xC80000までカウントできる24ビットのカウンタであり、2番目のカウンタのトップ8ビットが利用率である。この8ビット値はCPU読み取り可能レジスタに保存され、0.5%のインクリメントで利用率を表す。
5.13.16 ポートオーバラップハードゾーニング(セグメント化モードのみ)
ポート間の接続は、宛先ディスエーブルレジスタを使用して無効にできる。各ポート用にレジスタが存在し、ルックアップ時にALPA−to−portレジスタの有効ビットをマスクする。マイクロプロセッサは、スイッチングモードが有効なときに接続が確立されないようにするために、ポートディスカバリの完了前にこれらのレジスタに書き込まなければならない。デバイスがポートへの接続を要求し、ポートへのアクセスが無効になった場合、OPNを送ったノードはOPNを戻される。ALPAが存在しない場合も、同じアクションが発生することに注意しなければならない。
5.13.17 ローデータスヌープポート
ポートロジックの二次的機能は、ループスイッチチップの受信ポートに接続できるスヌープポートとして構成できることである。このモードでは、ポートからのデコード化伝送ワードは、スイッチマトリクスを通り、データストリームはスヌープポートのトランスミッタに現れる。このモードのポートは、ポートをロジックアナライザに接続し、ポートのローデータ出力を見ることによってデバッギングツールとして使用することができる。スイッチコントロールレジスタを使用して、どのポートをスヌープするか選択する。注:スヌープポートの制限は、OPNの後であるが接続が確立される前に受け取ったR_RDY順序集合はスヌープポートに反映されないことである。
5.14 ループスイッチ管理機能
5.14.1 入力データ信号
フレーム抽出ロジックは、EOFをEOFに置き換えたり、CRCを壊したり、フレーム全体を最後のフィルワードで置き換えたりすることによって、データフレームをフィルタリングする機能を有している。外部ロジックは「フィルタフレーム」コマンドとフィルタリングされるフレームのレシーバポート番号を提供する。ASIC内のロジックは、フィルタコマンドを当該トランスミッタにルーティングする。トランスミッタはフィルタコマンドの後に見る現在のあるいは次のフレームをフィルタリングするため、このフィルタコマンドはタイムクリティカルであることに注意しなければならない。
5.15 ループスイッチ管理機能
5.15.1 環境モニタリング
ループスイッチは、2つの環境モニタリング機能を有している。最初の機能は、過熱センサの入力である。これは、エンクロージャ温度が外的に構成された閾値を有していることを示す1つの信号入力である。2番目の機能は、エンクロージャにファン障害が発生したかどうかを示す4つの入力である。ループスイッチは、これらの機能のいずれかに障害がある場合、環境アラートLEDを点灯し、管理エンティティにレポートするためにルータステータスレジスタ#3で障害条件をレポートする。これにより、存在している場合管理カードへの割込みが発生する。
5.15.2 ループステート検出とLED
ループスイッチは、ループの状態を追跡する2つの異なる方法を有している。最初の方法では、各ポートはループ初期化を通じて進捗を追跡する状態マシーンを有している。この状態は、ポートのステータスレジスタ#1でレポートされる。この情報は、ポートがゾーンに分けられていて、ゾーンの各ループステートに関するレポートが必要とされる場合に提供される。
2番目の方法では、ルータがループ初期化の進捗を追跡する状態マシーンを有している。この状態マシーンはポートディスカバリプロセスを実施するロジックに存在する。ルータの状態マシーンのループステートを使用して、ループスイッチのループアップLEDを駆動する。ハードゾーン化モードでは、ループアップLEDは、ゾーン0の状態を反映している。
5.15.3 ループ初期化
ループスイッチは、ルータ構成レジスタに書き込むことによってループをリセットすることができる。これは、変更を見たことを保証するためにループスイッチ再構成が必要な場合に使用することができる。この機能は非オーバラップハードゾーンがハブエミュレーションモードで使われないとき、またLIPアイソレーションがスイッチング(セグメント化)モードで選択されていないときにのみ適用される。
5.16 FCポートインタフェース
5.16.1 GBIC/SFPピン
ループスイッチは、標準GBICとSFPのすべてのステータスピンとコントロールピンをサポートしている。これは、伝送ディエーブル、伝送障害、レシーバ信号喪失、mod_defピンを含む。ループスイッチは、この機能をサポートしているGBICまたはSFPのシリアルID EEPROMにアクセスする能力も提供する。
5.16.2 Lock−to−Reference
ループスイッチは、各内蔵トランシーバのLock−to−Reference信号を駆動する内部ロジックを有している。lock_to_refを要求する部分を使わなければならない場合、この信号を送り出すことができる。
5.17 システムインタフェース
システムインタフェースは、論理的に作成されたクロックとリセット信号を含む。ループスイッチは、1つの106.25 MHzシステムクロックを要求する。
5.18 マイクロプロセッサインタフェース
ループスイッチは、ICインタフェースまたは16に非多重化アドレスとデータライン、RD、WR、CSを持つパラレルインタフェースを通して直接アクセス可能である。
5.18.1 割込み信号
ループスイッチが管理エンティティを含む構成で動作している場合、ループスイッチは管理エンティティにとって関心がある様々な構成変更に割込みを発生する。この変更には、次のものが含まれる。
ループのダウンとアップ。
GBIC/SFPの挿入または取外し。
ポートの挿入またはバイパス。
他のVixelループスイッチへのカスケードの挿入。ポートはすべての挿入基準を満たし、マイクロプロセッサはシリアル番号レジスタを審査して、他のスイッチング(セグメント化)モードのループスイッチへの複数のカスケードが確立されたかどうか知ることができる。複数のカスケードは管理下にあるスイッチング(セグメント化)モードのループスイッチの間でのみサポートされていることに注意しなければならない。すべてに問題がなければ、ポートは挿入を完了することができる。
環境障害:ファンに障害がある、または温度が設定点を越えた。
無効なOPN順序集合を受け取った。
LIP順序集合を受け取り、隔離した。
エラーカウント閾値を越えた。
割込みピンは、複数のループスイッチが駆動できるオープンドレインピンである。マイクロプロセッサは、ループスイッチ「00」のルータステータスレジスタ#2を読み、割込み信号が表明されているかどうか調べなければならない。表明されていない場合、マイクロプロセッサは他のループスイッチのステータスレジスタを読む。適切なループスイッチが見つかったら、ステータスレジスタはポートが割込み条件を引き起こしているかどうかを示している。引き起こしている場合、マイクロプロセッサはポートエラー/変更ステータスレジスタを読んで、どのような割込み条件であるか調べなければならない。ルータが割込みを引き起こしている場合、ステータスレジスタは他の割込み条件の1つを示す。
各割込みステータスレジスタには割込みマスクレジスタが提供されている。このマスクレジスタはデフォルトですべての割込みを有効にする。
5.18.2 ICシリアルインタフェース
Cインタフェースを使用して、SOC422で展開されている回路を管理する。
5.18.3 パラレルプロセッサインタフェース
Cインタフェースの他に、ループスイッチは、16ビット非同期パラレルインタフェースを提供している。
5.19 シリアルEEPROMインタフェース
シリアルEEPROMを使用して、ループスイッチのリセット構成情報にパワーを保存する。内部状態マシーンは各リセット後に構成を読み、情報をループスイッチの様々なレジスタに保存する。外部EEPROM_presピンがロジックハイにプルされている場合、ASICは、いかなるEEPROMも存在しておらず、EEPROMローディングプロセスをスキップする。
6. Vixel SOC422ループスイッチのレジスタ定義
6.1 ルータレジスタ定義
Figure 0004642755
Figure 0004642755
Figure 0004642755
Figure 0004642755
Figure 0004642755
Figure 0004642755
6.1.1 ルータ構成レジスタ
構成レジスタのビットは、一度設定されたら、まれにしか変更されないモードで動作する。
Figure 0004642755
Figure 0004642755
6.1.2 ルータコントロールレジスタ#1
コントローレジスタは、通常動作時に変更されるビットを含んでいる。このビットはループスイッチ/ルータ全体の動作に影響する。個別ポートはポートコントロールレジスタを通してコントロールされる。
Figure 0004642755
Figure 0004642755
ルータコントロールレジスタ#1の定義
6.1.3 ルータコントロールレジスタ#2
コントロールレジスタは、通常動作時に変更されるビットを含んでいる。このビットは、ループスイッチまたはルータ全体の動作に影響する。個別ポートはポートコントロールレジスタを通してコントロールされる。
Figure 0004642755
Figure 0004642755
ルータコントロールレジスタ#1の定義
6.1.4 リムーブコネクション/ペンディングOPNレジスタ
リムーブコネクションモードでは:
いずれかのビットが設定されると、その設定ビットに対応するポートの既存のスイッチング接続が取り除かれる。これは、2つの通信デバイスの間の通信を閉じるCLSが作成されない場合にデッドロック接続を切るのに便利である。このビットはセルフクリアである。ポート15〜0はリムーブ接続レジスタ#1のビット15〜0によってそれぞれコントロールされ、ポート21〜16はリムーブ接続レジスタ#2によってコントロールされる。注:レジスタ#1が最初に書き込まれ、次にレジスタ#2に書き込まなければならない。リムーブ接続レジスタ#2への書き込みが両方のレジスタでラッチされ、リムーブ接続がすべてのポートに同時に動作するようにする。
リムーブペンディングOPNモードでは(アドレス0x08のビット14は「1」である):
複数のポートが相互にペンディングOPNであるときロックアップ条件の原因となったペンディングOPNのみが取り除かれる。
プロセッサがすべての接続を迅速にキルすることができるように、リムーブ接続レジスタ#2のビット15はグローバルリムーブ接続ビットである。このビットを設定すると、すべての接続(またはすべてのペンディングOPN)が切られる。
Figure 0004642755
6.1.5 ストール閾値レジスタ
このレジスタは、スイッチングモードのポート接続に対するストール閾値を含んでいる。このレジスタの値は、stall_detect割込みがポート割込みステータスレジスタでトリガーされる前にポートストールカウンタでカウントされなければならないタイマーチックの数の閾値として使用される。ストールカウンタの解像度は10ミリ秒である。
6.1.6 ルータローカルSEOC USERレジスタ
このレジスタは、SEOC交換シーケンス順序集合USER1とUSER2でペイロードとして伝送される情報を含んでいる。リモートループスイッチデバイスから受け取った情報は、個別ポートレベルで保存される。EEPROMが存在している場合、このデータはリセット時にEEPROMからロードされる。注:このレジスタにロードされるデータはニュートラルディスパリティでなければならない。そうでない場合、リンクは適切に動作しない。
6.1.7 RTR SWマトリクス構成レジスタ
このレジスタは、ルータスヌープポートの動作を構成し、データ速度を設定して離散入力データ速度選択を無効にする。
Figure 0004642755
ルータデータ速度/SWマトリクス構成レジスタの定義
6.1.8 ポートアクティブステータスレジスタ
P_Activeレジスタは、ポートの0〜21と1CPU PORT(port22)のP_Active信号の現在の状態を示している。
6.1.9 スイッチマトリクスコントロールレジスタ
このレジスタは、ポートが自動モードで動いているか、それともモニタポートして構成されそのトランスミッタが他のポートのレシーバに接続されているかを示す20の8ビットフィールドを含んでいる。ポートがモニタリングモードにある場合、そのレシーバは他のポートがそのポートをモニタするように構成されていない場合、スイッチマトリクスからの接続は切れたままである。このモードを使って、アナライザが接続され、管理者を通して診断のために様々なポートに接続されるモニタポートとして1つまたは複数のポートを設定することができる。
ポートがプローブmuxをモニタしている場合、プローブmuxからの有効なデータストリームをモニタしていることに注意しなければならない。ポート0〜21とCPU PORT(port22)のpbmux[5:0]アドレス0x03〜0x07が有効である。他のプローブmuxのモニタしても結果は未定義である。
ポートはリセット後は自動であることに注意しなければならない。このレジスタはループとループスイッチスイッチングモードの両方で使用することができる。次の表は、各ポートでの様々なビット構成が意味するものを定義している。
Figure 0004642755
6.1.10 スイッチマトリクス選択レジスタ
このレジスタは、オペレーション時のスイッチマトリクスの構成を示している。各ポートの8ビット値は、muxがどのポートをモニタしているかを示している。ルータロジックmux(Port #32)はRTR SWマトリクス構成レジスタに位置している。
6.1.11 Rem_conn_cntレジスタ
この10ビットレジスタは、ブロッキングARBを通したトラフィック停止、R_RDYの消尽、影響を受けるポートの受信状態マシーンのリセットの間でリムーブ接続が待つ遅延を設定する。各LSBは10ミリ秒であり、デフォルト設定では2ミリ秒の遅延が発生する。
6.1.12 ポートアンフェアレジスタ
このレジスタにより、ポートプライオリティロジックがバイパスされるアンフェアモードに設定することができる。このビットはさらなるアクセスを可能にするカスケードポートで主に使用される。
6.1.13 ポート15〜0割込みステータスレジスタ
このレジスタは、ポート15〜0割込みステータスビットを含んでいる。このレジスタのビットが1に設定されている場合、ルータ割込みレジスタでビット0が設定されプロセッサへの割込みが作成される。
6.1.14 フューチャポート31〜23/ポート22〜16割込みステータスレジスタ
このレジスタは、フューチャポート31〜23割込みステータスビットの予約ビットばかりでなく、ポート22〜16割込みステータスビットを含んでいる。このレジスタのビットが1に設定されている場合、割込みステータスレジスタのビット1が設定されプロセッサへの割込みが作成される。
6.1.15 ルータステータスレジスタ#1
このレジスタは、指定の条件のリアルタイムスナップショットを提供する。ステータスレジスタクリアはこのコントロールレジスタをクリアしない。
Figure 0004642755
Figure 0004642755
ルータステータスレジスタ#1の定義
6.1.16 ルータステータスレジスタ#2(ルータ割込みステータス)
このレジスタは、ループスイッチの状態の変更をレポートする。これは、ポート構成状態ばかりでなくループ状態も含まれる。このレジスタで設定されたどのビットも、割込みピンを表明させる。このレジスタは、ビット0、1、2、8を除き読み込み時にクリアされる。このビットは対応する割込みステータスレジスタでクリアされる必要がある。
管理障害LEDはこのステータスレジスタの読み取りをオフにすることに注意しなければならない。管理存在信号が管理カードが存在していることを示している場合、ウォッチドッグタイマーはこのレジスタの最初の読み取りによって活性化される。このタイマーはこのレジスタが少なくとも100ms毎に読み取られていると想定している。それ以外の場合、管理LEDは点灯しない。
Figure 0004642755
Figure 0004642755
ルータステータスレジスタ#2の定義
6.1.17 ルータステータスレジスタ#3
このレジスタは、特定の条件のリアルタイムスナップショットを提供する。ステータスレジスタクリアは、このコントロールレジスタをクリアしない。
Figure 0004642755
ルータステータスレジスタ#3の定義
6.1.18 ルータステータスレジスタ#4
レジスタは、ある条件のリアルタイムスナップショットを提供する。ステータスレジスタクリアはこのコントロールレジスタをクリアしない。
Figure 0004642755
Figure 0004642755
ルータステータスレジスタ#4の定義
6.1.19 ブロックALPA/ルータループアップカウンタレジスタ
このレジスタは、プログラム可能なアイドルブロッキングALPA値をループが立ち上がった回数と結合する。
Figure 0004642755
ルータブロックALPA/ルータループアップカウンタレジスタの定義
6.1.20 ルータカウンタレジスタ#3
このレジスタの各ビットは、下の表で定義されているように機能をコントロールする。
Figure 0004642755
Figure 0004642755
6.1.21 システムLEDオーバライドレジスタ
このレジスタは、マイクロプロセッサが直接システムレベルLEDの状態をコントロールすることを可能にするLEDオーバライドを含む。各機能のオーバライドビットを設定すると、マイクロプロセッサはそのLEDをコントロールできるようになる。
Figure 0004642755
Figure 0004642755
6.1.22 ルータ割込みマスクレジスタ
このレジスタを使って、ルータ割込みステータスビットをマスクする。このレジスタのビットが1に設定されている場合、ルータステータスレジスタ#2の対応ビットが有効になりプロセッサへの割込みが作成される。
6.1.23 ポートフェアネスコントロールレジスタ
このレジスタは、ALPAとALPAがデータのシングルフレームも転送することなしにトランザクションを試みた回数を基にしてポートのプライオリティを変えるのに使用されるCLSカウンタのオペレーションをコントロールする。
Figure 0004642755
6.1.24 バリアブルプライオリティタイマーレジスタ
このレジスタは、バリアブルプライオリティポートのデューティサイクルを設定する。ポートは、low_pulseデューティサイクルにポートタイプによって設定された通常のプライオリティを有する。high_pulseデューティサイクル時には、ポートのプライオリティが上がり、クローズダウンしデバイスに不足しないようにペンディングOPN要求を最小化する。注:ALPAベースのクローズカウンタを通常のオペレーションで使用することを推奨する。
Figure 0004642755
6.1.25 ルータオーバラップハードゾーンコントロールレジスタ
このレジスタセットは、所与のポートのデバイスが他のポートデバイスにアクセスすることを防止するためのビットマップを定義している。各ポートに32ビットマップが定義される。各ポートビットマップのビット31〜0は、ぞれぞれポート31からポート0までを表している。適切なビットを設定してポートへのアクセスを無効にする(すなわちレジスタ0x80のヒット2とビット14を設定してポート0のポート2とポート14へのアクセスを防止する)。このレジスタはスイッチングモードでのみ使用される。注:ポート21以上のポートの参照は、将来の実装に任されている。
これらのレジスタは、upper_page_selectビットが「0000」に設定されているとき指定のアドレスでアクセスできる。
6.1.26 ルータオープンポートマップレジスタ
このレジスタは、指定のポートによってOPNされたポートの累積ビットマップを含んでいる。このレジスタは読み取り時にクリアされる。このレジスタはスイッチングモードでのみ使用される。
このレジスタは、upper_page_selectビットが「0001」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.27 ルータALPAポートマップレジスタ
このレジスタセットは、各ALPAでのALPAからポートへのマップを含んでいる。ALPAは、ポートディスカバリ時に決められる。各ALPAのALPAからポートへのビットマップは、下のテーブルで定義されているとおりである。このレジスタは読み書き可能レジスタであるため、ポートディスカバリは、ポートディスカバリでASIC問題がある場合スイッチングモードに入る前にファームウェアによって実行することができる。
Figure 0004642755
このレジスタは、upper_page_selectビットが「0010」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.28 ルータALPAポジションマップ(LILPペイロード)レジスタ
このレジスタは、可能な各ALPAでのALPAからポートへのマップを含んでいる。このレジスタは、ポジションマッピングがサポートされている最近のループ初期化サイクルからのLILPフレームペイロードのスナップショットを含んでいる。
このレジスタは、upper_page_selectビットが「0011」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.29 ルータシリアルEEPROMキャプチャレジスタ
このレジスタは、スタートアップ時のシリアルEEPROMからのグローバルコントロール読み取りをレポートする。この値は、デバッグやASICシミュレーションのためにマイクロプロセッサが読むこともできる。ポート固有の構成ビットは、適切なレジスタへのポートレジスタアクセスを通してアクセス可能である。
注:ASICへの書き込みはルータメモリマップの値を変えるが、プロセッサはICバス経由のEEPROMのアップデートを担当する。
このレジスタは、upper_page_selectビットが「0100」に設定されているときに指定のアドレスでアクセスすることができる。
6.1.30 ループ初期化マスターWWNレジスタ
このレジスタは、最近のループ初期化サイクル時のLISMフレームから取得したWWNの値を含んでいる。ビット63〜48がレジスタ#1に、ビット47〜32がレジスタ#2に、ビット31〜16がレジスタ#3に、ビット15〜0がレジスタ#4に含まれている。
このレジスタは、upper_page_selectビットが「0100」に設定されているときに指定のアドレスでアクセスすることができる。
6.1.31 ソフトウェアオーバライドイニシエータビットマップ
この128ビットテーブルは、下の表に従って構成されている。ソフトウェアコントロールの下で、イニシエータは、以下で説明するハードウェアキャプチャイニシエータテーブルに加えたり、このテーブルから引いたりすることができる。このテーブルは、キャプチャされたイニシエータテーブルとXORされて、ハードウェアにループに存在するイニシエータを提供する。ハードウェアが要求されたOPN接続で2つのイニシエータを検出した場合、その接続はプライマリカスケードにルーティングされる。OPNのいずれかのALPAのみがイニシエータである場合、ハードウェアは、デフォルトで代替重複トランクルートが以下で説明するトランク分類レジスタで定義されていない場合、プライマリカスケードに接続をルーティングする。
ソフトウェアは、ターゲットベースロードバランシングのため指定のデバイスがイニシエータとして扱われるようにすることができる。すべての他の接続が重複トランクにルーティングされているときに、半分のターゲットをイニシエータとして定義してすべてのトラフィックをプライマリ接続にルーティングする。
Figure 0004642755
このレジスタは、upper_page_selectビットが「0101」に設定されているときに指定のアドレスでアクセスすることができる。
6.1.32 キャプチャイニシエータビットマップ
このレジスタは、ソフトウェアオーバライドイニシエータビットマップで設定されているイニシエータとXORされたループで検出されたすべてのイニシエータのALPAを含んでいる。この128ビットテーブルは、以下の表のビットマッピングに従って構成されている。検出されたイニシエータのALPAは、テーブルに設定された対応ビットを持っている。LIPはテーブルをクリアしてループが初期化されるたびに有効なエントリがロードされようにする。ハードウェアイニシエータ検出機能がルータコントロールレジスタ#2で無効になっている場合、いかなるイニシエータも検出されない。先のイニシエータレジスタのソフトウェアオーバライドとのXORにより、ソフトウェアはイニシエータテーブルを定義するか、イニシエータのマスキングによって個別ALPAを上書きすることができる。
イニシエータの検出がdis_hw_initiator_detビットによって無効になっている場合、このビットは常に「0」である。
Figure 0004642755
このレジスタは、upper_page_selectビットが「0101」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.33 トランク分類レジスタ
トランク分類レジスタは、次の3つのフィールドを含む2つのレジスタの24の集合から構成されている。1)トランクセットプライマリポート、2)トランクセット割り当て(または代替)ポート、および影響を受けるイニシエータのALPA。ALPAが先に説明したテーブルのいずれかでイニシエータとして定義されている場合、このテーブルにもロードすることができる。OPN要求は、最初にノーマル接続として処理される。ルックアップからのポート番号出力は、トランクセットプライマリポートエントリと比較される。ルックアップテーブルの出力ポート番号がALPAエントリばかりでなく、トランク分類テーブルのものとマッチする場合、OPNは指定の代替ポートにルーティングされる。代替ポートはアクティブポートであることを確認するために内部「p_active」フラグによって修飾される。代替ポートがアクティブでない場合、接続は元のプライマリポートのデフォルト設定される。このルールには2つの例外がある。1)イニシエータ間のOPNは常にプライマリ接続にルーティングされる、2)半二重OPNは常にプライマリポートにルーティングされる。この2つの例外は、相互の別個のカスケードに入りデッドロック状況を作り出すデバイスAとデバイスBからの2つのOPN要求を最小化するために存在している。
トランクセットレジスタの各ペアについて、ビットフォーマットは次のとおりである。
Figure 0004642755
Figure 0004642755
このレジスタは、upper_page_selectビットが「0101」に設定されているときに指定のアドレスでアクセスすることができる。
6.1.34 ラーンドイニシエータポートマップレジスタ
このレジスタセットは、可能な各イニシエータALPAでのALPAからポートへのマップを含んでいる。ALPAポートマッピングは、受け取ったOPNフレームをモニタし、イニシエータをソースとしてOPNのポート番号をテーブルにロードすることによって決められる。このテーブルは、輻輳を最小化するためにイニシエータへのトランザクションが最後のトランザクションでイニシエータが使ったパスを使用するようにするのに使用される。
Figure 0004642755
このレジスタは、upper_page_selectビットが「0110」に設定されているとき指定のアドレスでアクセスすることができる。
このレジスタは、upper_page_selectビットが「0111」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.35 宛先ALPAでのクローズカウントレジスタ
このレジスタの各ビットはポートに対応している。すなわちアドレス0x90はポート15:0を構成し、アドレス0x92ビット5:0はポート21:16を構成する。ビットが設定されている場合、OPNの宛先がインクリメントされるクローズカウンタを決める。注:明示的にポートフェアネスコントロールレジスタで無効になっていない場合、イニシエータは自動的にOPNの宛先を使って、インクリメントするクローズカウンタを決定するようにデフォルト設定されている。
6.1.36 Per ALPAオープンカウンタマックスレジスタ
Per ALPAオープンカウンタにより、OPNカウンタは、ALPA当りのユニークな最大クローズOPNカウント閾値によって各ALPAのOPN要求のプライオリティを上げることができる。閾値は、ALPA当り0x0から0x0fまでの値である。0x0の値は常にプライオリティを上げる。0xfの値はその特定のALPAのCLSカウンタオペレーションを無効にする。0x01の値は1回クローズの後にプライオリティを上げる。0x2の値は2回クローズの後にプライオリティを上げる。閾値は、順次増えるALPA順番でレジスタに4が割り当てられる。
このレジスタは、upper_page_selectビットが「0111」に設定されているときに指定のアドレスでアクセスすることができる。
6.1.37 ステルスアイソレーションコントロールレジスタ#1
ステルスアイソレーションコントロールレジスタ#1は、ポリシーの観点からオペレーションのステルスアイソレーションモードをコントロールする。このコントロールは、元の構成時に設定されるものであり、ノーマルオペレーションでは修正されないものである。
このレジスタは、upper_page_selectビットが「1000」に設定されているときにアクセスできる
Figure 0004642755
Figure 0004642755
6.1.38 ステルスアイソレーションコントロールレジスタ#2
ステルスアイソレーションコントロールレジスタ#2は、外部マイクロプロセッサによるステルスループ初期化サイクルの対話式コントロールを可能にする。
このレジスタは、upper_page_selectビットが「1000」に設定されているときに指定のアドレスでアクセスすることができる。
Figure 0004642755
Figure 0004642755
6.1.39 ストップトラフィックコントロールレジスタ
このレジスタにより、マイクロプロセッサはOPN要求をホールドし、したがってトラフィックをブロックするメカニズムとして、ブロッキングARBをいずれかのポートでのフィルワードとすることができる。
このレジスタは、upper_page_selectビットが「1000」に設定されているときに指定のアドレスでアクセスすることができる。
Figure 0004642755
6.1.40 ステータスレジスタ#5
このレジスタは、ステルスアイソレーションオペレーション関係のステータスビットを含んでいる。すべてのステータスビットは読み取り時にクリアされ、ステータスレジスタ#5割込みマスクレジスタを介してマスク可能である。ハイなアンマスクビットは割込みを作成し、ルータステータスレジスタ#2のStealth_Isolationステータスビットを設定する。
このレジスタは、upper_page_selectビットが「1000」に設定されているときに指定のアドレスでアクセスすることができる。
Figure 0004642755
Figure 0004642755
6.1.41 ステータスレジスタ#5割込みのためのマスクレジスタ
このレジスタは、ステルスアイソレーションオペレーション関係の、ステータスレジスタ#5のための、マスクビットを含んでいる。ハイなアンマスクビットは割込みを作成し、ルータステータスレジスタ#2のStealth_Isolationステータスビットを設定する。
6.1.42 ステルスタイムアウトレジスタ
これは、ステルス状態マシーンによって使用される2つのタイムアウトの最大値を登録する。
Figure 0004642755
6.1.43 ステータスレジスタ#6(ステルス状態)
このレジスタは、下に示す他のコントロール信号状態ばかりでなく、ステルス状態マシーンの現在の状態を表示する。
Figure 0004642755
6.1.44 ステルスLIPインタースイッチ伝送ペイロードレジスタ
このレジスタは、伝送されるLIPインタースイッチフレームにロードされる10バイトのペイロードを含んでいる。通常のステルスLIPアイソレーションサイクル時に、このフレームは、各スイッチのルータを通して渡され、サイクルに関わるLIPアイソレーションゾーンを含むばかりでなく既存のループ初期化サイクルをどのスイッチがコントロールするかを決める。ASICは自動ステルスアイソレーションサイクル時に自動的にフレームをフォーマットする。対話式ステルスフレーム中に命令されるサイクルは、プロセッサによりこのレジスタに書き込まれるデータを使用する。フレームのペイロードのフォーマットを以下に示す。
Figure 0004642755
Figure 0004642755
6.1.45 ステルス受信インタースイッチASICフレームレジスタ
この読取り専用リレジスタは、LIPインタースイッチフレームで受け取った10バイトのペイリードを含んでいる。ステルスLIPアイソレーションサイクル時に、サイクルに関与するLIPアイソレーションゾーンを含むばかりでなく既存のループ初期化サイクルをどのスイッチがコントロールするかを決めるために、このフレームを受け取る。
Figure 0004642755
6.1.46 LIFAフレーム修正レジスタ
LIFAフレーム修正レジスタは、ステルスLIPアイソレーションサイクル時にLIFAフレームを修正するのに使用される値を保持する。ノーマルオペレーションでは、このレジスタはASICのハードウェアが各ALPAを表すビットをフォーマットしてマイクロプロセッサが読むのみである。dis_hw_LIFA_GENビットがステルスアイソレーションコントロールレジスタ#2で設定されている場合、このレジスタへの書き込みアクセスが有効になり、プロセッサがこのレジスタでの値の作成を担当する。
FRC_LIFA_FRM_MODビットがステルスアイソレーションコントロールレジスタ#2で設定されている場合、このレジスタの値はLIFAフレームでのペイロードを上書きする。FRC_LIFA_FRM_MODビットが設定されていない場合、ASICはLIFAペイロードとこのレジスタを論理ORする。
このレジスタは、upper_page_selectビットが「1000」に設定されているとき指定のアドレスでアクセスすることができる。
Figure 0004642755
6.1.47 LIRPフレーム修正レジスタ
LIRPフレーム修正レジスタは、ステルスLIPアイソレーションサイクル時にLIRPフレームを修正するのに使用される値を保持する。ノーマルオペレーションでは、このレジスタはASICのハードウェアがカウンタとALPAリストをフォーマットしてマイクロプロセッサが読むのみである。ステルスアイソレーションコントロールレジスタ#2でdis_hw_LIRP_GENビットが設定されている場合、このレジスタへの書き込みアクセスが有効になり、プロセッサはこのレジスタでの値の作成を担当する。
ステルスアイソレーションコントロールレジスタ#2でFRC_LIRP_FRM_MODビットが設定されている場合、このレジスタの値は、LIRPフレームのペイロードを上書きする。FRC_LIRP_FRM_MODビットが設定されていない場合、ASICは、LIRP ALPAカウントフィールドによって示されているALPAの数をLIRPペイロードのALPAにアペンドし、追加されたALPAを反映するようにカウントを更新する。
このレジスタは、upper_page_selectビットが「1001」に設定されているとき指定のアドレスでアクセスすることができる
Figure 0004642755
6.1.48 ルートブロッキングレジスタ、グループ0から7まで
ルートブロッキングレジスタは、OPN順序集合に含まれているALPAを使って様々なデバイスの間でアクセス特権を決めるのに使用される値を保持する。「1」をロケーションブロックに書くと、ALPAを持っているデバイスが、そのALPAがブロックされているデバイスと通信するのをブロックする。各ALPAは、下のテーブルで示されているように各グループでシングルビットによって表される。ここで、アドレスフィールドの「?」は、それぞれグループ0−7に対する8−Fの値である。注:未使用のビットは最下位を使っているLixAフレームとは異なり、各グループの最上位に置かれる。
Figure 0004642755
このレジスタは、upper_page_selectビットが「1010」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.49 ルートブロッキングレジスタ、グループ8からFまで
ルートブロッキングレジスタは、OPN順序集合に含まれているALPAを使って様々なデバイスの間でアクセス特権を決めるのに使用される値を保持する。「1」をロケーションブロックに書くと、ALPAを持っているデバイスが、そのALPAがブロックされているデバイスと通信するのをブロックする。各ALPAは、下のテーブルで示されているように各グループでシングルビットによって表される。ここで、アドレスフィールドの「?」は、それぞれグループ8−Fに対する8−Fの値である。注:未使用のビットは最下位を使っているLixAフレームとは異なり、各グループの最上位に置かれる。
Figure 0004642755
6.1.50 LIPアイソレーションゾーンコントロールレジスタ
このレジスタセットは、ASIC内でLIPアイソレーションゾーンを設定するビットマップを定義する。各ポートは関連の16ビットレジスタを持ち、そこではビット0はLIPアイソレーションゾーン0に、ビット1はゾーン1に対応している(以下同様)。
このレジスタは、upper_page_selectビットが「1100」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.51 ステルスジェネリックインタースイッチフレームへッダレジスタ
このレジスタは、伝送されるジェネリックインタースイッチフレームにロードされるへッダの6ワードを含んでいる。さらに、へッダのワード0とワード3を使って、受け取ったジェネリックインタースイッチフレームを検出する。
Figure 0004642755
Figure 0004642755
このレジスタは、upper_page_selectビットが「1101」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.52 ステルスジェネリックインタースイッチフレーム伝送ペイロードレジスタ
このレジスタは、伝送されるジェネリックインタースイッチフレームにロードされるペイロードを8ワード含んでいる。注:ペイロードワード0はブロードキャストフレームのローカルシリアル番号でなければならない。ローカルシリアル番号が使われない場合、フレームはマッチするシリアル番号を有するスイッチによってブロックされる。
Figure 0004642755
このレジスタは、upper_page_selectビットが「1101」に設定されているとき指定のアドレスでアクセスすることができる。
6.1.53 ステルスジェネリックインタースイッチフレームペイロードレジスタ
このレジスタは、ジェネリックインタースイッチフレームで受け取ったペイロードを8ワード含んでいる。
Figure 0004642755
このレジスタは、upper_page_selectビットが「1101」に設定されているとき指定のアドレスでアクセスすることができる。
6.2 ポートレジスタ定義
Figure 0004642755
Figure 0004642755
注:多くのポートレジスタは、読取り専用とマークされている。いくつかのレジスタ(たとえば、maxを継続して保持するカウンタ)は、実際に検査やシミュレーションのために読み書きできる。ノーマルオペレーションでは、このレジスタは、読まれるためのものであり、ファームウェアによって書き込まれてはならない。
6.2.1 ポート構成レジスタ
ポート構成レジスタビットは、設定されている動作モードやめったに変わらないコントロール信号を定義する。
Figure 0004642755
Figure 0004642755
6.2.2 ポートコントロールレジスタ#1
Figure 0004642755
Figure 0004642755
6.2.3 ポートユーザ順序集合マッチレジスタ
このレジスタセットは、受け取ったデータストリームでポートが検索する順序集合を定義する。順序集合のペイロードバイトの各ビットは、個別のオフとマークできる。マッチするものが見つかったとき、ステータスレジスタのUSRマッチビットが設定される。
アドレス0x04の下位8ビットは、K28.5に従う順序集合の2番目のバイトである。アドレス0x04の上位8ビットは、2番目のバイトのビットマスクを含む。ビットがビットマスクで設定されている場合、そのビットはバイト比較オペレーション時に「don’t care」として扱われる。アドレス0x06は、マッチする3番目のバイトと関連マスクを含んでいる。アドレス0x08は、マッチする4番目のバイトと関連マスクを含んでいる。順序集合の先頭バイトは、K28.5(ポジティブまたはネガティブ実行ディスパリティ)に固定接続されていることに注意しなければならない。すなわち、キャプチャを実行するためには、K28.5は、ループに存在しなければならない。いずれかの実行ディスパリティのK28.5が認識されるため、EOFをキャプチャできることに注意しなければならない。
マッチビットでのパリティエラーが設定されている場合、このレジスタの値にマッチする順序集合はパリティエラーを作成する。
6.2.4 ポートユーザ順序集合伝送レジスタ
このレジスタセットは、ループで送られる任意の順序集合を定義する。アドレス0x0Cの下位8ビットは、K28.5後に伝送される2番目のバイトである。アドレス0x0Aは、3番目と4番目のバイトを含んでいる。このデータが適切に書き込まれるには、上位に先立ち下位レジスタが書き込まれなければならず、上位レジスタ書き込みは書き出されるデータでイネーブルビット(xmit_os_reg)が設定されていなければならない。
Figure 0004642755
6.2.5 ユーザ10Bワード
このレジスタは、ユーザ構成可能な10b符合化ワードを含んでいる。ポートユーザ順序集合伝送レジスタのxmit_bad_10b_onceまたはxmit_bad_10b_immビットの条件が満たされると、この符合化ワードは、ASICから伝送される。注:ASICは、ワードをチェックを実行しない。その使用は厳密に検査のためのみである。
Figure 0004642755
6.2.6 ローカル SEOC P INFO
このレジスタの上位8ビットは、このポートのP_INFO SEOC順序集合のペイロードデータを含んでいる。リセット時に、この値はポートを示すニュートラルディスパリティ値にロードされる。ニュートラルディスパリティ値は、ポート0では0x00で始まり、ポート1では0x01、ポート2では0x02、ポート3では0x04で始まる。
6.2.7 ポート割込みマスクレジスタ#1
このレジスタを使って、ポートエラーステータスレジスタ#1のポート割込みステータスビットをマスクする。このレジスタのビットが1に設定されている場合、ポート割込みステータスレジスタの対応ビットがイネーブルとなり、プロセッサに割込みを作成する。
6.2.8 ポート割込みマスクレジスタ#2
このレジスタを使って、ポートエラーステータスレジスタ#2のポート割込みステータスビットをマスクする。このレジスタのビットが1に設定されている場合、ポート割込みステータスレジスタの対応ビットがイネーブルとなり、プロセッサに割込みを作成する。
6.2.9 No Comma Timerレジスタ
Figure 0004642755
6.2.10 OS/CRCエラー閾値レジスタ
アドレス0x1eに含まれる24ビット値とアドレス0x20の下位8ビットはOSエラーカウントレジスタのカウントと比較され、カウントが閾値を越えている場合、CPUに割込みが作成される。一定数の順序集合エラーが発生することが予想される。通常の動作条件の下では割込みはめったにトリガーされないような値に、閾値を設定しなければならない。
アドレス0x20の上位8ビットの値がCRCエラーカウントレジスタのカウントと比較され、カウントが閾値を越えている場合、割込みがCPUに発行される。この値は0xFFにリセットされる。
6.2.11 ポートコントロールレジスタ#2
ポートコントロール#2レジスタは、ノーマルオペレーション時に変更されるビットを含んでいる。
Figure 0004642755
Figure 0004642755
6.2.12 ストールカウンタレジスタ
ストールカウンタレジスタは、ポートの接続がアクティブであったが、SOFまたはEOF順序集合も通らなかった時間を含んでいる。カウンタは、SOFまたはEOF順序集合を検出することにより、または0x0000のプロセッサ書き込みによってリセットされる。カウンタは、ストール閾値にターミナルカウントを持ち、ルータメモリマップスペースで設定される。ストール閾値に達すると、割込みが作成される。カウンタの解像度は10□sである。
6.2.13 ポートエラー/変更ステータスレジスタ#1
このレジスタは、ポートの構成におけるエラーや変更をレポートする。このレジスタの状態のいかなる変更もルータステータスレジスタ#2に割込みをもたらす。これにより、管理エンティティは、変更に関してルータステータスレジスタをポーリングし、その後当該ポートレジスタを読むことによって変更を知ることができる。このレジスタは読み取り時にクリアされる。
Figure 0004642755
Figure 0004642755
6.2.14 ポートエラー/変更ステータスレジスタ#2
このレジスタは、ポートの構成におけるエラーや変更をレポートする。このレジスタの状態のいかなる変更もルータステータスレジスタ#2に割込みをもたらす。これにより、管理エンティティは、変更に関してルータステータスレジスタをポーリングし、その後当該ポートレジスタを読むことによって変更を知ることができる。このレジスタは読み取り時にクリアされる。
Figure 0004642755
Figure 0004642755
6.2.15 ポートステータスレジスタ#1
このレジスタは、読み取り時にポートのリアルタイムステータスを提供する。
Figure 0004642755
Figure 0004642755
6.2.16 ポートステータスレジスタ#2
Figure 0004642755
6.2.17 ポートディテクタレジスタ#1
このレジスタは、ポートに特定の条件が発生したことを示すディテクタビットを含んでいる。このレジスタは読み取り時にクリアされるが、ポートコントロールレジスタにクリアディテクタレジスタビットを設定することによってもクリアすることができる。すべてのポートでこのレジスタを同時にクリアするには、ルータコントロールレジスタでクリアポートディテクタを設定する。このレジスタはセルフテスト時にデータパターンを渡すことによるリセット後にこのレジスタのビットが設定されることに注意しなければならない。セルフテストパターンは、ユーザマッチ(0xFFFE)を除きすべてのビットを設定するように設計されている。
Figure 0004642755
Figure 0004642755
6.2.18 ポートディテクタレジスタ#2
このレジスタは、ポートに特定の条件が発生したことを示すディテクタビットを含んでいる。このレジスタは読み取り時にクリアされるが、ポートコントロールレジスタにクリアディテクタレジスタビットを設定することによってもクリアすることができる。すべてのポートでこのレジスタを同時にクリアするには、ルータコントロールレジスタでクリアポートディテクタを設定する。
Figure 0004642755
6.2.19 ポートOSエラーカウント
この24ビットカウンタは、符合化エラーによりこのポートで受け取った伝送ワードの実際の数を保有している。たとえ複数のエラーが1ワード内で発生した場合でもカウンタは各バッドワードで1回だけインクリメントされる。カウントは最大カウントを継続して保持し下位OSエラーカウントレジスタが読まれるとクリアされる。このカウンタは、2つのレジスタの読み取りを要求する。正確な読み取りを保証するために最下位レジスタが最初に読まれ、その後最上位レジスタが読まれなければならない。最下位レジスタが読まれると、両方のレジスタをクリアする前に最上位レジスタはホールディングレジスタになる。
6.2.20 カレント宛先レジスタ
この8ビット値は、現在このポートに接続されているポートを示す。高速接続と低速ICインタフェースにより、このレジスタは主にストールした接続のクリアを目的としている。この8ビットは、16ビットレジスタのビット[15:8]にある。下位半分は、先に説明したポートOSエラーカウント用である。
6.2.21 ポートマッチカウントレジスタ
上位マッチカウントレジスタと下位マッチカウントレジスタの下位4ビットは、モニタされているリンクで見られたユーザマッチ順序集合の数をカウントするのに使用される20ビットカウンタを構成する。この機能は、ユーザマッチ機能が有効になっているときに有効である。このカウンタは、2つのレジスタの読み取りを要求する。正確な読み取りを保証するために最下位レジスタが最初に読まれ、その後に最上位レジスタが読まれなければならない。このレジスタは、ユーザマッチ機能が有効なときのみクリアされ、読まれるときにはクリアされない。このカウントは、ユーザマッチイネーブルビットがゼロから1になるとリセットされる。
6.2.22 ポート利用率レジスタ
このレジスタは、2つの異なる測定値を反映するのに使用される8ビット値を含んでいる。デフォルトでは、このレジスタはトラフィック全体に対する1フレーム内の伝送ワードの割合を表している。util_conn_enビットがポートコントロールレジスタで設定され、ループスイッチがスイッチング(セグメント化)モードで動作している場合、このレジスタはスイッチングモード時にこのポートで確立された接続の時間の割合を表している。この値は〜240ms毎に更新される。ビット値は、0.5%のインクリメントで与えられる。
6.2.23 ポートキャプチャ順序集合レジスタ
このレジスタセットは、ユーザマッチビットが設定されているときに存在している順序集合を保存するのに使用される。このレジスタはクリアされその後設定されるユーザマッチイネーブルコントロールビットによってキャプチャのためのみ、再度有効になる。この機能を簡単なトリガーアナライザとして使用することができる。
レジスタ3Eは、K28.5に続く順序集合の2番目のバイトである。レジスタ3Cは、3番目のバイトと4番目のバイトを含む。順序集合の1番目のバイトはK28.5に固定されていることに注意しなければならない。すなわち、K28.5はキャプチャを実行するためにループに存在していなければならない。
6.2.24 無効OPN/ブロードキャスト(ARBx)ALPAキャプチャレジスタ
Figure 0004642755
6.2.25 ポート挿入/ルックアップカウンタレジスタ
Figure 0004642755
6.2.26 ポートCRCエラーALPAレジスタ
このレジスタは、CRCエラーを有した最後のフレームのALPAを含んでいる。ALPAは、フレームのSIDから得られる。SIDが壊れており、このALPAが正確でないこともありうることに注意しなければならない。MSBは、ALPAフィールドが更新されたかどうかを示している。レジスタが読まれると有効なビットがクリアされる。リセット後にこのレジスタはCRCエラーが発生しALPAをキャプチャしたことを示していることに注意しなければならない。これは、セルフテスト時に内部ループで送られたデータパターンの結果である。このレジスタの値は0x80D5である。
6.2.27 RXフレームカウントレジスタ
RXフレームカウントレジスタは、モニタされているRXリンクで見られたフレームの数をカウントするのに使用される16ビットカウンタである。このカウントは読み取り時にリセットされる。
6.2.28 ポート接続試行レジスタ
ARB接続要求により、このポートが接続を確立しようと試みた回数。カウントは最大値を継続して保持し読み取り時にクリアされる。この値はスイッチングモードでのみ有効である。
6.2.29 ポート接続延期レジスタ
このポートが接続を試みたがビジーポートによって先送りされた回数。カウントは最大カウントに固執し読み取り時にクリアされる。この値はスイッチングモードでのみ有効である。
6.2.30 ポートクロックデルタカウントタ
このレジスタは、伝送/受信クロックデルタカウンタの値を含んでいる。
6.2.31 Src/Dest ALPAレジスタ
ALPA有効ビットがポートエラー/変更ステータスレジスタ#2で設定されているとき、このレジスタはこのポートで受け取った最後のフレームのソースおよび宛先ALPAを含んでいる。各読み取りアクセス後にこのレジスタはクリアされる。
6.2.32 ポートALPAビットマップレジスタ
このレジスタは、最後のループ初期化サイクル時にこのポートで要求されたALPAのビットマップを含んでいる。
6.2.33 リモートSEOC P_INFOレジスタ
このレジスタは、検出時にリモートSEOC準拠デバイスから受け取ったP_INFO SEOC順序集合からのペイロードデータを含んでいる。いかなるデバイスも検出されなかった場合または非SEOC準拠デバイスが検出された場合、このレジスタはすべてゼロにリセットされる。
6.2.34リモートSEOC USERレジスタ
このレジスタは、検出時にリモートSEOC準拠デバイスから受け取ったUSER1およびUSER2 SEOC順序集合からのペイロードデータを含んでいる。いかなるデバイスも検出されなかった場合、また非SEOC準拠デバイスが検出された場合、このレジスタはすべてゼロにリセットされる。
6.2.35 GBIC/SFPリードアドレスレジスタ
このレジスタは、ループスイッチによって読み取られる、GBIC(またはSFP)のシリアルID EEPROMでの次の位置のアドレスを含んでいる。このレジスタはリセット時にゼロにリセットされ、GBIC/SFPへの読み取りが行われるたびにインクリメントされる。マイクロプロセッサは、ループスイッチが次の値を読むときにこのレジスタに新しい値を書き込み変更することができる。このレジスタはポートステータスレジスタ#2でシリアルRDYビットが設定されたときのみ変更されなければならない。GBIC/SFPアドレスは11ビット値である。レジスタのトップの5ビットは常に0である。
6.2.36 ポートオープンロックアップマックスカウントレジスタ
このレジスタのビット[7:0]は、ポートOPNロックアップウオッチドッグタイマーのタイムアウト値を設定する。8ビットフィールドはレジスタの下位半分にあり、40マイクロ秒の解像度を持っている。
このレジスタのビット[15:8]は、stop_traffic_cnt_max値を含んでいる。この8ビットフィールドは、状態マシーンが状態ARB_CREQまたはARB_CONNで安定している場合にトラフィックを本当に停止することを決定する前に「rxstate」状態マシーンが取る遅延を定義している。このカウンタの解像度は10ミリ秒である。
6.2.37 GBIC/SFPシリアルIDデータレジスタ
このレジスタは、GBIC(またはSFP)のシリアルID EEPROMから読んだデータを含んでいる。リセット後に、ループスイッチはGBIC/SFPから先頭2バイトを読み(シリアルID GBICまたはSFPであると想定)、それをここに保存する。またループスイッチは、ポートステータスレジスタ#2にシリアルID Rdyビットを設定してデータがレディであることを示す。その後、マイクロプロセッサがこのデータを読むことができる。その際、ループスイッチは、自動的に進んでGBIC/SFPから次の2バイトを読む。ループスイッチは一度に1バイトEEPROMからデータを読み、読み取った最初のバイトはLSBに、次のバイトはこのレジスタのMSBに置かれる。
6.2.38 ミスマッチOPNのSRC/DEST ALPAレジスタ
このレジスタは、ソース、ビット[15:8]、宛先、ビット[7:0]、宛先IDが前に受け取ったOPNで宛先ALPAとマッチしないフレームの最後の検出と結び付けられたALPAを含んでいる。スイッチングモードでのみ有効であり、ハブエミュレーションモードではクリアされる。
6.2.39 OPNミスマッチ宛先IDレジスタ
このレジスタは、フレームのFCへッダからの宛先ID、ビット[7:0]、宛先IDが前に受け取ったOPNで宛先ALPAとマッチしないフレームの最後の検出と結び付けられたALPAを含んでいる。スイッチングモードでのみ有効であり、ハブエミュレーションモードではクリアされる。
6.2.40 未知のOPN/LostノードからのSRC/DEST ALPAレジスタ
レジスタは、ソース、ビット[7:0]、宛先、ビット[15:8]、未知のOPNまたは失われたノードエラーの最後の検出と結び付けられているALPAを含んでいる。このレジスタはスイッチングモードでのみ使われ、ハブエミュレーションモードではクリアされる。
6.2.41 その他のコントロールレジスタ
Figure 0004642755
6.2.42 SCSI統計情報ALPA
このレジスタの下位8ビットは、読み書き統計情報を収集するのに使用されるSCSI FCPフレームの宛先ALPAを決めるフィルタをコントロールする。0xffという値は、ポート統計全体のすべての宛先ALPAを有効にする。特定の宛先ALPAにより、ASICはその宛先ALPAのみの統計情報を追跡する。上位8ビットは、追跡されるFCPフレームのソースALPAを決める。上位8ビットの0xff値によって、すべてのソースALPAの追跡が有効となる。
6.2.43 SCSIリードIOカウンタ
このレジスタは、SCSI統計情報ALPAレジスタで設定されているソース/宛先ALPA基準にマッチするフレームのリードI/Oの数を追跡するリードカウンタのクリアを含んでいる。
6.2.44 SCSIライトIOカウンタ
このレジスタは、SCSI統計情報ALPAレジスタで設定されているソース/宛先ALPA基準にマッチするフレームのライトI/Oの数を追跡するリードカウンタのクリアを含んでいる。
6.2.45 SCSIリードバイトカウンタ
このレジスタは、SCSI統計情報ALPAレジスタで設定されているソース/宛先ALPA基準にマッチするフレームのリードバイトの数を追跡するリードカウンタのクリアを含んでいる。注:カウンタの正確な読み取りを保証するために、カウンタのビット47−16は、ビット15−0の読み取り時に一時ホールディングレジスタにロードされる(アドレス0x84)。一時ホールディングレジスタは、ライトバイトカウンタと共用されるため、両方のレジスタの上位2ワードへのアクセス時に注意しなければならない。
6.2.46 SCSIライトバイトカウンタ
このレジスタは、SCSI統計情報ALPAレジスタで設定されているソース/宛先ALPA基準にマッチするフレームからの読み取りバイト数を追跡するリードカウンタのクリアを含んでいる。注:カウンタの正確な読み取りを保証するために、カウンタのビット47−16は、ビット15−0の読み取り時に一時ホールディングレジスタにロードされる(アドレス0x8a)。一時ホールディングレジスタは、ライトバイトカウンタと共用されるため、両方のレジスタの上位2ワードへのアクセス時に注意しなければならない。
6.3 CPUポートレジスタ
Figure 0004642755
Figure 0004642755
6.3.1 割込みレジスタ
Figure 0004642755
Rcv CRC error(bit 0) これは、受信データフレームでCRCエラーが検出されたときに設定される(スイッチコアからのデータ)。このビットはゼロにリセットされる。
Rcv Tag error(bit 1) これは、受信データでタグエラーが検出されたときに設定される(スイッチコアからのデータ)。このビットはゼロにリセットされる。
Rcv Missing Delimiter error(bit 2) これは受信データフレームで欠けているSOFまたはEOFが検出されたときに設定される(スイッチコアからのデータ)。このビットはゼロにリセットされる。
Xmt Missing Delimiter error(bit 3) これは、伝送データフレームで欠けているSOFまたはEOFが検出されたときに設定される(AHBバスからのデータ)。このビットはゼロにリセットされる。
Rcv FIFO overrun(bit 4) これは、受信FIFOにオーバランがあったときに設定される。このビットはゼロにリセットされる。
Xmt FIFO overrun(bit 5) これは、伝送FIFOにオーバランがあったときに設定される。このビットはゼロにリセットされる。
Rcv DMA service timer expired(bit 7) これは、DMAサービスタイマーが受信側で切れたときに設定される。このビットはゼロにリセットされる。
Rcv CRC error counter wrap(bit 8) これは、Rcv CRCエラーカウンタが最大カウントからゼロに戻ったときに設定される。このビットはゼロにリセットされる。
Rcv TAG error counter wrap(bit 9) これは、Rcv タグエラーカウンタが最大カウントからゼロに戻ったとときに設定される.このビットはゼロにリセットされる。
Rcv Delimiter error counter wrap(bit 10) これは、Rcv Delimiterエラーカウンタがその最大カウントからゼロに戻ったときに設定される。このビットはゼロにリセットされる。
Rcv DMA service expired counter wrap(bit 11) これは、Rcv DMAサービスカウンタが最大カウントからゼロに戻ったときに設定される。このビットはゼロにリセットされる。
Xmt Delimiter error counter wrap(bit 12) これは、Xmt Delimiterエラーカウンタが最大カウントからゼロにリセットされる設定される。このビットはゼロにリセットされる。
Rcv word counter wrap(bit 14) これは、Rcv wordカウンタが最大値をゼロに戻ったときに設定される。このビットはゼロにリセットされる。
Xmt word counter wrap(bit 15) これはXmt wordカウンタがその最大カウントからゼロに戻ったときに設定される。このビットはゼロにリセットされる。
Rcv Frame received (bit 16) これは、Rcv FIFOがスイッチコアから完全なフレームを受け取ったときに設定される。このビットはゼロにリセットされる。
Xmt Frame received(bit 17) これは、Xmt FIFOがスイッチコアから完全なフレームを伝送したときに設定される。このビットはゼロにリセットされる。
Rcv Frame DMA’ed(bit 18) これは、FIFOのRcv frameがプロセッサによりDMAされた後に設定される。
Timer 0(bit 24) これは、Timer 0カウンタが0に達したときに設定される。
Timer 1(bit 25) これは、Timer 1カウンタが0に達したときに設定される。
Heartbeat(bit 26) これはHeartbeatカウンタが0に達したときに設定される。
6.3.2 割込みマスクレジスタ
Figure 0004642755
Event interrupt mask(bits 31:0) プロセッサに割込みを作成する割込みビットに対応したマスクビットを設定する。無視される割込みに対応したマス九ビットをリセットする。このレジスタは、ゼロにリセットされる。注:このレジスタは「INT_」出力ピンに寄与する割込みビットを選択するにすぎない。実際の割込みレジスタビットには影響しない。
6.3.3 コントロールレジスタ
Figure 0004642755
Rev enable(bit 0) このビットは受信パスを有効にするために設定されなければならない。このビットはゼロにリセットされる。
Xmt enable(bit 1) このビットは受信パスを有効にするために設定されなければならない。このビットはゼロにリセットされる。
Rcv CRC checking enable(bit 2) このビットが設定されていると、受信パスでCRCチェックが有効になる。このビットはゼロにリセットされる。
Xmt CRC generation enable(bit 3) このビットが設定されていると、送信パスでCRC作成が有効になる。このビットはゼロにリセットされる。
Rcv DAM service timer enable(bit 4) このビットが設定されていると、Receive DMAサービスタイマーが有効になる。このビットはゼロにリセットされる。
Big endian(bit 5) このビットが設定されていると、次のようにスイッチとの間で出入りするすべてのワードでバイトスワップが実施される。[7:0]から[31:24]、[15:8]から[23:16]、[23:16]から[15:8]、[31:24]から[7:0]
DMA Reset(bit 6) 設定されていると、このビットはCPUポートモジュールを初期化する。リセットオペレーションを終了するには、このビットにゼロを書き込まなければならない。このビットはゼロにリセットされる。
Rcv Tag checking enable(bit 7) このビットが設定されていると、受信パスでタグチェックが有効になる。このビットはゼロにリセットされる。
Xmt Tag generation enable(bit 8) このビットが設定されていると、伝送パスでタグ作成が有効になる。このビットが設定されていない場合、タグ情報はTXライトタグやRxライトタグを通して提供されなければならない。注:EOFタグは、前の2つのデータワードで設定される必要がある。このビットはゼロにリセットされる。
Rcv DMA request enable(bit 9) このビットが設定されていると、DMA要求インタフェース機能が受信パスで有効になる。このビットはゼロにリセットされる。
Xmt DMA request enable(bit 10) このビットが設定されていると、DMA要求インタフェース機能が伝送パスで有効になる。このビットはゼロにリセットされる。
Discard frame on error enable(bit 11) このビットが設定されていると、エラーが検出された際にフレームが破棄される。このビットはゼロにリセットされる。
Router request enable(bit 12) このビットが設定されていると、ルータインタフェース機能が有効になる。このビットはゼロにリセットされる。
Global Reset(bit 14) この信号は出力ピンにマッピングされ、システムレベル同期を保持するためASICグループ全体をリセットする。リセットオペレーションを終了するには、このビットにゼロを書き込まなければならない。このビットはゼロにリセットされる。
ARM Reset(bit 15) 設定されていると、このビットはARMプロセッサを初期化する。リセットオペレーションを終了するには、このビットにゼロを書き込まなければならない。このビットはゼロにリセットされる。
Tx write tag[1:0](bit 17:16) このフィールドは、手動でTx FIFOに書き込む際のタグビットを提供する。このフィールドはゼロにリセットされる。
Rx write tag[1:0](bit 21:20) このフィールドは、手動でRx FIFOに書き込む際のタグビットを提供する。このフィールドはゼロにリセットされる。
MSTB Reset(bit 22) このビットが設定されていると、ミリ秒タイマーがゼロにリセットされる。このビットはゼロにリセットされる
10μs Reset(bit 22) このビットが設定されていると、10ミリ秒タイマーがゼロにリセットされる。このビットはゼロにリセットされ。
Send Frame(bit 24) フレームがTx FIFOにロードされた後、フレームをスイッチコアに送るにはこのビットを設定する必要がある。このビットはセルフクリアである。
CRC Error Cnt Enable(bit 25) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
Tag Error Cnt Enable(bit 26) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
RCV Delimiter Error Cnt Enable(bit 27) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
DMA Service Expired Cnt Enable(bit 28) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
XMT Delimiter Error Cnt Enable(bit 29) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
RCV Frame Cnt Enable(bit 30) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
XMT Frame Cnt Enable(bit 31) このビットは統計カウンタに対応している.このビットが設定されていると、カウンタが有効になる。
6.3.4 Xmt FIFOリードライトポインタレジスタ
Figure 0004642755
Xmt FIFO write pointer[8:0](bit 8:0) このフィールドは、Xmt FIFOで書き込まれる次の位置を指定する。このフィールドはゼロにリセットされる。
Xmt FIFO read pointer[8:0](bit 24:16) このフィールドは、Xmt FIFOから読まれる次の位置を指定する。このフィールドはゼロにリセットされる。
6.3.5 Xmt FIFOデータレジスタ
Figure 0004642755
Xmt FIFO data[31:0](bits 31:0) このレジスタの読み取りは、Xmtリードポインタによってアドレス指定されるXmt FIFO RAMの内容をレポートする。Xmtリードポインタはこのレジスタからの読み取り毎に1だけ自動的にインクリメントされる。このレジスタへの書き込みは、Xmtライトポインタによってアドレス指定されるワードへの書き込みとなる。Xmtライトポインタはこのレジスタへの書き込み毎に1だけ自動的にインクリメントされる。このレジスタはゼロにリセットされる。
6.3.6 Rcv DMAサービスタイマーレジスタ
Figure 0004642755
Rcv DMA service timer[9:0](bits 9:0) このフィールドは、DMAサービスタイマーカウンタにアクセスする。カウンタは、FIFOにフルフレームを受け取るとカウントが開始され、フルフレームが完全にDMAされるとカウントが停止される。各ビットは、MSTBから派生した1ミリ秒を表している。DMAサービスタイマーはカウンタが載っている実際のカウントである。このカウンタはゼロにリセットされる。
Rcv DMA service Max[9:0](bits 25:16) RCV DMAサービスマックスは、対応する割込みビットを設定する前にカウンタがそこまでカウントする最大値である。このカウンタはゼロにリセットされる。
6.3.7 Rcv FIFOリートライトポインタレジスタ
Figure 0004642755
Rcv FIFOライトポインタ[8:0](bits 8:0) このフィールドは、Rcv FIFOで書き込まれる次の位置を指定する。このフィールドはゼロにリセットされる。
Rcv FIFOリードポインタ[8:0](bits 24:16) このフィールドは、Rcv FIFOから読まれる次の位置を指定する。このフィールドはゼロにリセットされる。
6.3.8 Rcv FIFOデータレジスタ
Figure 0004642755
Rcv FIFO data[31:0](bits 31:0) このレジスタを読むと、Rcvリードポインタがアドレス指定しているRcv FIFO RAMワードの内容がレポートされる。Rcvリードポインタは、このレジスタからのリード毎に1だけ自動的にインクリメントされる。このレジスタに書き込むと、Rcvライトポインタによってアドレス指定されているワードに書き込まれる。Rcvライトポインタは、このレジスタへの書き込み毎に1だけ自動的にインクリメントされる.このレジスタはゼロにリセットされる。
6.3.9 統計カウンタレジスタ
Figure 0004642755
Statistic counter[31:0](bits 31:0) このレジスタを読むと、カウンタ値がレポートされる。このレジスタに書き込むと、このレジスタの値でカウンタがプリセットされる。各対応レジスタのイネーブルビットは、コントロールレジスタにある。カウンタはゼロにリセットされる。
7. 信号の説明
下の表は、Vixel SOC422ループスイッチの信号を説明している。
SOC422 信号の説明
Figure 0004642755
Figure 0004642755
Figure 0004642755
Figure 0004642755
先の発明は図と例を使って明瞭に分かりやすく詳しく説明されているが、以下の請求の精神や範囲から離れることなく、変更や修正を行うことができることは、本発明の内容に照らして通常の技量を有する者には明らかである。
図1は、ファイバチャネルアービトレート型ループで相互接続されるデバイスの図である。 図2は、ハブエミュレーションモードのループスイッチの図である。 図3は、デバイスリンクエラーとなっているハブエミュレーションモードのループスイッチの図である。 図4は、ループスイッチのアーキテクチャのブロック図である。 図5は、ループスイッチを通した2つの通信中のファイバチャネルデバイスの図である。 図6は、ループスイッチを通した同時通信中のファイバチャネルデバイスの2つのペアの図である。 図7は、ファイバチャネルMACブロックを持つループスイッチのアーキテクチャのブロック図である。 図8は、ループスイッチのポートロジックのブロック図である。 図9aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図9bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図9cは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図9dは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図10aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図10bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図10cは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図10dは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図11aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図11bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図11cは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 (記載なし) 図12aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図12bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図12cは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図13aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図13bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図14aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図14bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図15aは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図15bは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図15cは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図15dは、ループスイッチに取り付けられているアービトレート型ループでの通信デバイスの図である。 図16aは、ループスイッチのストリングカスケードの図である。 図16bは、ループスイッチのツリーカスケードの図である。 図16cは、ループスイッチのストリングカスケードのツリーの図である。 図17は、ループスイッチの重複ツリーカスケードの図である。 図18は、ポートの複数のディスクを持つループスイッチの図である。 図19は、ループスイッチ内のステルスモードLIPアイソレーションの状態図である。 図20は、シングルループスイッチとシングルゾーンステルスLIPアイソレーションの図である。 図21は、複数のLIPゾーンを持つシングルループスイッチの図である。 図22は、複数の重複LIPゾーンを持つシングルループスイッチの図である。 図23は、複数の重複LIPゾーンを持つ複数ループスイッチの図である。 図24は、同時LIPを持つ複数LIPゾーンの複数ループスイッチの図である。 図25は、同時LIPを持つ複数LIPゾーンの複数ループスイッチの図である。 図26は、CPUポートオペレーションの流れ図である。 図27は、ストレージエンクロージャ内のループスイッチのストリングを示している。 図28は、ループスイッチのストリングを示している。 図29は、ループスイッチのツリーとストリングを示している。 図30は、ループスイッチのストリングを示している。 図31は、ループスイッチのストリングを示している。 図32は、ループスイッチのストリングを示している。 図33は、ループスイッチのストリングを示している。 図34は、ループスイッチのストリングを示している。 図35は、カスケード接続されたループスイッチでのHBAとアービトレーション勝利関連のフローチャートである。

Claims (8)

  1. 複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステムであって、
    該システムは、
    複数のファイバチャネルアービトレイテッドループポートであって、各ファイバチャネルアービトレイテッドループポートは、ポートロジックを含む、複数のファイバチャネルアービトレイテッドループポートと、
    アクセスフェアネスアルゴリズムに加えて、異なるスイッチおよび異なるポートタイプに従って該複数のポートに異なるアクセス優先順位を割り当てることによって、単一のループスイッチシステムおよび複数のループスイッチシステムに対してフェアネスを実施するように、所定のループコントロール基準が実装されたロジックを含むルート決定装置であって、該フェアネスは、ループにアクセスすることを所望する各ポートに、該ループに対するフェアなアクセスが与えられることを可能にする、ルート決定装置と、
    所定のファイバチャネルアービトレイテッドループプリミティブを受信したことに基づいて、該複数のファイバチャネルアービトレイテッドループポート接続するように構成されたクロスバースイッチと
    を備え、
    1のポートにおいて受信されたループ初期化プリミティブシーケンス(LIP)は、複数のポートのうち1つ以上のポート選択的に伝達される、システム。
  2. 前記LIPは、LIPアイソレーションテーブルに基づいて選択的に伝達される、請求項1に記載の複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステム。
  3. 前記LIPアイソレーションテーブルは、アービトレート型物理アドレス(ALPA)アドレスのリストを含む、請求項2に記載の複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステム。
  4. 前記LIPアイソレーションテーブルは、特定のLIPゾーンを含む、請求項2に記載の複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステム。
  5. 前記LIPアイソレーションテーブルは、デバイスがLIPを受信することが可能であるか否かを示す情報を含む、請求項2に記載の複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステム。
  6. 前記LIPアイソレーションテーブルは、デバイスがLIPを生成することが可能であるか否かを示す情報を含む、請求項2に記載の複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステム。
  7. 複数のファイバチャネルアービトレイテッドループデバイスを相互接続する方法であって、
    該方法は、
    複数のファイバチャネルアービトレイテッドループポートに結合されたループスイッチを提供するステップであって、各ファイバチャネルアービトレイテッドループポートは、ポートロジックを含む、ステップと、
    ルート決定装置において、ルートを決定するステップであって、該ルート決定装置は、アクセスフェアネスアルゴリズムに加えて、異なるスイッチおよび異なるポートタイプに従って該複数のポートに異なるアクセス優先順位を割り当てることによって、単一のループスイッチシステムおよび複数のループスイッチシステムに対してフェアネスを実施するように、所定のループコントロール基準が実装されたロジックを含み、該フェアネスは、ループにアクセスすることを所望する各ポートに、該ループに対するフェアなアクセスが与えられることを可能にする、ステップと、
    所定のファイバチャネルアービトレイテッドループプリミティブを受信したことに基づいて、該複数のファイバチャネルアービトレイテッドループ間を接続するステップと
    ループ初期化プリミティブシーケンス(LIP)が生成されたときに、所定のLIPブロッキングリストに基づいて、該LIPが所定のポート上でブロックされるかを決定するステップと
    を包含する、方法。
  8. 記LIPアイソレーションテーブルは、前記ルート決定装置内にある、請求項2に記載の複数のファイバチャネルアービトレイテッドループデバイスを相互接続するシステム。
JP2006518921A 2003-07-10 2004-07-09 ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置 Expired - Fee Related JP4642755B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/616,866 US7397788B2 (en) 2002-07-02 2003-07-10 Methods and apparatus for device zoning in fibre channel arbitrated loop systems
PCT/US2004/021983 WO2005008406A2 (en) 2003-07-10 2004-07-09 Methods and apparatus for device zoning in fibre channel arbitrated loop systems

Publications (2)

Publication Number Publication Date
JP2007529151A JP2007529151A (ja) 2007-10-18
JP4642755B2 true JP4642755B2 (ja) 2011-03-02

Family

ID=34079676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006518921A Expired - Fee Related JP4642755B2 (ja) 2003-07-10 2004-07-09 ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置

Country Status (4)

Country Link
US (1) US7397788B2 (ja)
EP (1) EP1652035A4 (ja)
JP (1) JP4642755B2 (ja)
WO (1) WO2005008406A2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US7239636B2 (en) 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices
GB0119070D0 (en) * 2001-08-06 2001-09-26 Ibm Method and apparatus for managing a loop network
US7295555B2 (en) 2002-03-08 2007-11-13 Broadcom Corporation System and method for identifying upper layer protocol message boundaries
US7664018B2 (en) * 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
US7630300B2 (en) * 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking in fibre channel arbitrated loop systems
US7660316B2 (en) * 2002-07-02 2010-02-09 Emulex Design & Manufacturing Corporation Methods and apparatus for device access fairness in fibre channel arbitrated loop systems
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7934021B2 (en) 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7313623B2 (en) 2002-08-30 2007-12-25 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
WO2004021626A2 (en) 2002-08-30 2004-03-11 Broadcom Corporation System and method for handling out-of-order frames
US8180928B2 (en) 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US6886141B1 (en) * 2002-10-07 2005-04-26 Qlogic Corporation Method and system for reducing congestion in computer networks
US7869553B1 (en) 2003-01-21 2011-01-11 Altera Corporation Digital phase locked loop circuitry and methods
US7138837B2 (en) * 2003-01-21 2006-11-21 Altera Corporation Digital phase locked loop circuitry and methods
US7471635B2 (en) * 2003-07-16 2008-12-30 Qlogic, Corporation Method and apparatus for test pattern generation
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7466700B2 (en) * 2003-07-21 2008-12-16 Qlogic, Corporation LUN based hard zoning in fibre channel switches
US7792115B2 (en) 2003-07-21 2010-09-07 Qlogic, Corporation Method and system for routing and filtering network data packets in fibre channel systems
US7558281B2 (en) * 2003-07-21 2009-07-07 Qlogic, Corporation Method and system for configuring fibre channel ports
US7447224B2 (en) * 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7684401B2 (en) * 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7420982B2 (en) * 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US7406092B2 (en) 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7430175B2 (en) * 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7340167B2 (en) * 2004-04-23 2008-03-04 Qlogic, Corporation Fibre channel transparent switch for mixed switch fabrics
US7702405B2 (en) * 2004-06-02 2010-04-20 Standard Microsystems Corporation System and method for transferring non-compliant packetized and streaming data into and from a multimedia device coupled to a network across which compliant data is sent
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
JP4164490B2 (ja) * 2004-12-17 2008-10-15 キヤノン株式会社 通信装置、プロファイル情報取得方法、及び、プログラム
US7680232B2 (en) * 2005-01-21 2010-03-16 Altera Corporation Method and apparatus for multi-mode clock data recovery
US7839865B2 (en) * 2005-01-26 2010-11-23 Emulex Design & Manufacturing Corporation Dynamically controlling fair access to a system packet interface attached switch enclosure
US7813360B2 (en) * 2005-01-26 2010-10-12 Emulex Design & Manufacturing Corporation Controlling device access fairness in switched fibre channel fabric loop attachment systems
US7817661B1 (en) * 2005-02-24 2010-10-19 Marvell International Ltd. Dual-media network interface that automatically disables inactive media
US7668105B1 (en) * 2006-02-02 2010-02-23 Marvell Israel (M.I.S.L) Ltd. System for testing and/or evaluating the performance of a network switching apparatus
US7548560B1 (en) 2006-02-27 2009-06-16 Qlogic, Corporation Method and system for checking frame-length in fibre channel frames
US8687628B2 (en) * 2006-03-16 2014-04-01 Rockstar Consortium USLP Scalable balanced switches
US7953866B2 (en) 2006-03-22 2011-05-31 Mcdata Corporation Protocols for connecting intelligent service modules in a storage area network
US20070248111A1 (en) * 2006-04-24 2007-10-25 Shaw Mark E System and method for clearing information in a stalled output queue of a crossbar
US20070258380A1 (en) * 2006-05-02 2007-11-08 Mcdata Corporation Fault detection, isolation and recovery for a switch system of a computer network
US8122275B2 (en) * 2006-08-24 2012-02-21 Altera Corporation Write-leveling implementation in programmable logic devices
US7669001B1 (en) * 2006-08-31 2010-02-23 Qlogic, Corporation Method and system for using application specific integrated circuits
US8614954B2 (en) * 2006-10-26 2013-12-24 Hewlett-Packard Development Company, L.P. Network path identification
US20080168161A1 (en) * 2007-01-10 2008-07-10 International Business Machines Corporation Systems and methods for managing faults within a high speed network employing wide ports
US20080168302A1 (en) * 2007-01-10 2008-07-10 International Business Machines Corporation Systems and methods for diagnosing faults in a multiple domain storage system
US7769931B1 (en) * 2007-02-15 2010-08-03 Emc Corporation Methods and systems for improved virtual data storage management
US7925918B2 (en) * 2007-02-27 2011-04-12 International Business Machines Corporation Rebuilding a failed disk in a disk array
US20080267060A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Method, system and computer program product for providing high speed fault tracing within a blade center system
US7936767B2 (en) * 2007-04-30 2011-05-03 International Business Machines Corporation Systems and methods for monitoring high speed network traffic via sequentially multiplexed data streams
US20080270638A1 (en) * 2007-04-30 2008-10-30 International Business Machines Corporation Systems and methods for monitoring high speed network traffic via simultaneously multiplexed data streams
US8391300B1 (en) * 2008-08-12 2013-03-05 Qlogic, Corporation Configurable switch element and methods thereof
US7860113B2 (en) * 2008-10-02 2010-12-28 International Business Machines Corporation Enforced routing in switch
US8116330B2 (en) * 2009-06-01 2012-02-14 Lsi Corporation Bridge apparatus and methods for coupling multiple non-fibre channel devices to a fibre channel arbitrated loop
US8798456B2 (en) * 2010-09-01 2014-08-05 Brocade Communications Systems, Inc. Diagnostic port for inter-switch link testing in electrical, optical and remote loopback modes
EP2466486A1 (en) * 2010-12-16 2012-06-20 STMicroelectronics (Grenoble 2) SAS An arrangement
US9225808B1 (en) * 2012-11-15 2015-12-29 Qlogic, Corporation Systems and methods for processing information by a network device
US8989191B1 (en) * 2012-11-15 2015-03-24 Qlogic, Corporation Systems and methods for hard zoning in networks
US8971145B2 (en) * 2013-02-28 2015-03-03 Freescale Semiconductor, Inc. Synchronous multiple port memory with asynchronous ports
TWI525449B (zh) * 2014-09-10 2016-03-11 緯創資通股份有限公司 伺服器控制方法及機架控制器
US10116493B2 (en) 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
JP6582922B2 (ja) * 2015-11-26 2019-10-02 富士通株式会社 グラフ処理プログラム、グラフ処理方法、および情報処理装置
US10333828B2 (en) 2016-05-31 2019-06-25 Cisco Technology, Inc. Bidirectional multicasting over virtual port channel
US11509501B2 (en) * 2016-07-20 2022-11-22 Cisco Technology, Inc. Automatic port verification and policy application for rogue devices
US10623166B2 (en) * 2016-08-26 2020-04-14 T-Mobile Usa, Inc. Systems and methods for improved uptime for network devices
US10193750B2 (en) 2016-09-07 2019-01-29 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US10778561B2 (en) 2017-09-08 2020-09-15 Avago Technologies International Sales Pte. Limited Diagnostic port for inter-switch and node link testing in electrical, optical and remote loopback modes
CN108111354B (zh) * 2017-12-28 2021-06-29 杭州迪普科技股份有限公司 一种框式设备端口状态标识设置方法及装置
US10523513B2 (en) * 2018-04-30 2019-12-31 Virtustream Ip Holding Company Llc Automated configuration of switch zones in a switch fabric
US10985943B1 (en) * 2018-07-15 2021-04-20 Concurrent Ventures Hardware defined anything in a platform with swappable pods, message interface, sandboxes and memory superposition
CN112147961A (zh) * 2020-09-18 2020-12-29 中船邮轮科技发展有限公司 一种船用风机盘管集控系统
US11750457B2 (en) 2021-07-28 2023-09-05 Dell Products L.P. Automated zoning set selection triggered by switch fabric notifications
US20230089819A1 (en) * 2021-09-22 2023-03-23 Hewlett Packard Enterprise Development Lp Source port-based identification of client role
US11586356B1 (en) 2021-09-27 2023-02-21 Dell Products L.P. Multi-path layer configured for detection and mitigation of link performance issues in a storage area network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020196773A1 (en) * 1997-02-18 2002-12-26 Vixel Corporation Methods and apparatus for fibre channel interconnection of private loop devices

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535035A (en) 1994-09-15 1996-07-09 International Business Machines Corporation Optical fiber ring communications system and communications method
US5619497A (en) 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5754549A (en) 1995-12-05 1998-05-19 International Business Machines Corporation Inexpensive two-way communications switch
US5751715A (en) 1996-08-08 1998-05-12 Gadzoox Microsystems, Inc. Accelerator fiber channel hub and protocol
US5991891A (en) 1996-12-23 1999-11-23 Lsi Logic Corporation Method and apparatus for providing loop coherency
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6185203B1 (en) * 1997-02-18 2001-02-06 Vixel Corporation Fibre channel switching fabric
JP2001523861A (ja) 1997-11-17 2001-11-27 シーゲイト テクノロジー エルエルシー フレーム受信のための方法及び専用のフレームバッファ
US6324181B1 (en) 1998-04-16 2001-11-27 3Com Corporation Fibre channel switched arbitrated loop
US6272131B1 (en) 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
US6396832B1 (en) * 1998-09-04 2002-05-28 3Com Corporation Method and apparatus for optimizing a switched arbitrated loop for maximum access fairness
US6529963B1 (en) 1998-12-29 2003-03-04 Lsi Logic Corporation Methods and apparatus for interconnecting independent fibre channel fabrics
US6459701B1 (en) 1999-08-06 2002-10-01 Emulex Corporation Variable access fairness in a fibre channel arbitrated loop
IES20010395A2 (en) 2000-07-26 2002-02-06 Richmount Computers Ltd Crosspoint switch for a fibre channel arbitrated loop
US6975590B2 (en) 2000-09-07 2005-12-13 Eurologic Systems Limited Fiber-channel arbitrated-loop split loop operation
US6999460B1 (en) 2000-10-16 2006-02-14 Storage Technology Corporation Arbitrated loop port switching
US6915429B1 (en) 2000-11-16 2005-07-05 International Business Machines Corporation System and method for fiber channel remote activation and enhanced security
US6532212B1 (en) 2001-09-25 2003-03-11 Mcdata Corporation Trunking inter-switch links
AU2003220679A1 (en) 2002-04-09 2003-10-27 Next Generation Systems, Inc. Systems and methods for providing qos environment ____________
US20040076428A1 (en) 2002-05-20 2004-04-22 The Boeing Company Form existing fibers into a fibre channel-arbitrated loop

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020196773A1 (en) * 1997-02-18 2002-12-26 Vixel Corporation Methods and apparatus for fibre channel interconnection of private loop devices

Also Published As

Publication number Publication date
EP1652035A2 (en) 2006-05-03
WO2005008406A3 (en) 2006-06-22
EP1652035A4 (en) 2007-05-02
WO2005008406A2 (en) 2005-01-27
JP2007529151A (ja) 2007-10-18
US7397788B2 (en) 2008-07-08
US20040085974A1 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
JP4642755B2 (ja) ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置
JP5370973B2 (ja) ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置
JP4820752B2 (ja) ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置
JP4448515B2 (ja) ファイバチャネルアービトレート型ループシステムにおけるデバイスアクセスフェアネスのための方法および装置
US7664018B2 (en) Methods and apparatus for switching fibre channel arbitrated loop devices
US7801117B2 (en) Fibre channel switching fabric router
EP1199642B1 (en) Method and apparatus of sharing an inter-chip bus for message passing and memory access

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100712

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100716

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100720

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101013

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101201

R150 Certificate of patent or registration of utility model

Ref document number: 4642755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees