JP2001230833A - フレーム処理方法 - Google Patents

フレーム処理方法

Info

Publication number
JP2001230833A
JP2001230833A JP2000402400A JP2000402400A JP2001230833A JP 2001230833 A JP2001230833 A JP 2001230833A JP 2000402400 A JP2000402400 A JP 2000402400A JP 2000402400 A JP2000402400 A JP 2000402400A JP 2001230833 A JP2001230833 A JP 2001230833A
Authority
JP
Japan
Prior art keywords
frame
data
acknowledgment
frames
arriving
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.)
Pending
Application number
JP2000402400A
Other languages
English (en)
Inventor
Joseph H Steinmetz
ヨセフ・エイチ・ステインメッツ
Matthew Paul Wakeley
マッシュー・ポール・ウェイクリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JP2001230833A publication Critical patent/JP2001230833A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 FIFO待ち行列内におけるFCデータ・フレーム
およびACKフレームのインターリーブにおいて発生して
いた問題点、すなわち、ACKフレーム処理の潜在的遅延
およびブロックを軽減可能なフレーム処理技術を提供す
ること。 【解決手段】 FCインターフェース・コントローラ70
7には、到着FCデータ・フレーム待ち行列713および
到着リンク制御フレーム待ち行列1102が含まれる。
このため到着FCデータ・フレームは、到着ACKフレーム
から独立して待ち行列に入れられる。従来のFCインター
フェース・コントローラの到着データ・マネージャに属
する機能性は、FCインターフェース・コントローラ70
7においては、出発シーケンス・マネージャ730およ
び到着フレーム・ルータ1106へと移動し、ACKフレ
ームの処理を簡素化および合理化している。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ファイバ・チャネ
ル・ノードによるファイバ・チャネル・フレームの送受
信に係り、特に、同時に発生するデータ・フレームの送
信およびデータ・フレームとアクノレッジ・フレームと
受信の非ブロック方法、並びに、そのファイバ・チャネ
ル・インターフェース・コントローラによる実行に関す
る。
【0002】
【従来の技術】ファイバ・チャネル(FC)は、コンピュ
ータと周辺デバイスとを相互接続するデータ通信ネット
ワークに対するアーキテクチャおよびプロトコルであ
る。FCは、小型コンピュータ・システム・インターフェ
ース(SCSI)プロトコルを含む種々の上位レベルのプロ
トコルをサポートしている。コンピュータまたは周辺デ
バイスは、銅線または光ファイバのFCポートおよびFCリ
ンクを会してネットワークに接続されており、コンピュ
ータまたは周辺デバイスおよびFCポート、並びにFCリン
クは、統合的に「FCノード」と称される。FCポートには
トランシーバおよびインターフェース・コントローラが
含まれ、FCポートが含まれるコンピュータまたは周辺デ
バイスは「ホスト」と称される。一般に、ホストは、現
行のアプリケーションにおいて、「ホスト・プロセッ
サ」と称される少なくとも1つのプロセッサを含む。FC
ポートは、周辺コンピュータ・インターフェース(PC
I)バスなどのローカル・データ・バスを介してホスト
とデータ交換を行う。インターフェース・コントローラ
は、ファイバ・チャネルと、FCポートが属するコンピュ
ータまたは周辺デバイスとの間で下位レベルのプロトコ
ル交換を行う。
【0003】FCポート内のインターフェース・コントロ
ーラは、本質的に、FCポートのシリアル受信機および送
信機の構成要素と、FCポートが含まれるFCノードのホス
ト・プロセッサとの間の変換器として提供される。イン
ターフェース・コントローラは、入力側において、受信
機の構成要素から受信される連続した符号化データを命
令された複数組のバイトにアセンブルすること、上記命
令された複数組のバイトの大多数を「FCフレーム」と呼
ばれるデータ交換の基礎ユニットにアセンブルするこ
と、並びにFCシーケンスおよびFC交換と呼ばれるFCフレ
ームをより多く収集することとの関係において、FCフレ
ームを通過してステータス情報に沿ってホスト・プロセ
ッサに進むことに関係している。インターフェース・コ
ントローラは、出力側において、ホスト・メモリ・バッ
ファ基準とホスト・プロセッサからの制御情報とを受け
入れ、これらをFCシーケンスおよびFC交換の上位レベル
の関係においてFCフレームに変換し、FCへのシリアル送
信のため、FCポートの送信機の構成要素にFCフレームを
供給する。インターフェース・コントローラは、特にFC
を形成するため、FCノード内の状態を維持するため、ノ
ード間の一時的経路を確立するため、FCループの制御を
裁定するため、FCデータ・フレームの受領を承認するた
め、また、データ転送クレジットを遠隔ノードへ広げる
ために使用されるFCを介して、遠隔ノードと下位レベル
の制御メッセージの交換も行う。
【0004】インターフェース・コントローラは、1組
のホスト・メモリをベースとしたデータ構造を通して、
およびPCIバスなどのローカル・バスを介してインター
フェース・コントローラとホスト・プロセッサとの両者
にアクセス可能な多数の制御レジスタを通して、ホスト
・プロセッサと通信を行う。いかなる所定の瞬間におい
ても、インターフェース・コントローラは異なるFCシー
ケンスと関連付けられるような出て行くFCフレームをハ
ンドルすることが可能であり、多数のFCシーケンスと関
連付けられるFCからの到着FCフレームをハンドルするこ
とも可能である。インターフェース・コントローラは内
部キャッシュメモリを使用して、インターフェース・コ
ントローラがホスト・プロセッサと通信を行う際に用い
るホスト・メモリをベースとしたデータ構造からの情報
を、キャッシュメモリに入れる。
【0005】インターフェース・コントローラは、FCポ
ート内で、マルチ・タスク作動システム環境においてコ
ンピュータ・プロセッサが果たす機能と類似した機能を
果たす。インターフェース・コントローラは、極めてダ
イナミックなパターンの状態変化および情報の流れと同
時に、多くの異なる事象をハンドルする。インターフェ
ース・コントローラの状態は、一般的にホスト・メモリ
内に記憶されるような、かつインターフェース・コント
ローラおよびホストの両者にアクセス可能であるよう
な、多数の異なったダイナミック・データ構造および待
ち行列内に維持される。現在アクティブな各FC交換およ
びFCシーケンスの状態は、入力されるおよび出力される
フレームに関連付けられた記述子、書き込みおよび読み
取り動作用完成メッセージ、並びにこのようなその他の
情報と同様に、データ構造内に維持される。
【0006】I/Oオペレーションは、FCプロトコル内に
埋め込まれたSCSI I/Oオペレーションとの関係において
行うことが可能である。I/Oオペレーションは、ターゲ
ット・ノードからデータを読み取るため、またはターゲ
ット・ノードにデータを書き込むため、イニシエータ・
ノードによって開始される。書き込みまたは読み取りオ
ペレーション(I/Oオペレーション)の終結時点で、イ
ニシエータ・ノードは、一般的に、I/Oオペレーション
がうまく完了したかどうかにかかわらず、ターゲット・
ノードからFCレスポンス・フレームを受信する。このFC
レスポンス・フレームは、インターフェース・コントロ
ーラがFCから受信するものであり、FCレスポンス・フレ
ームのデータ・コンテンツはホスト・メモリ内のバッフ
ァに転送され、インターフェース・コントローラはホス
ト・メモリ内の独立した完成待ち行列内に完成通知を配
置する。このようにデータは、レスポンスFCフレームの
開始ノードによって受信されるとインターフェース・コ
ントローラから2つの異なるホスト・メモリ位置へと送
られる。
【0007】FCコントローラにおいては、作動システム
およびその他のリアルタイム・デバイス・コントローラ
と同様に、出力データおよび入力データをバッファリン
グするため、待ち行列が採用される。一般的なFCコント
ローラにおいて、到着フレームはFCインターフェース・
コントローラによってFCインターフェース・コントロー
ラを含むFCノードのトランシーバ構成部分から受信さ
れ、かつFCインターフェース・コントローラ内における
到着先入れ先出し(FIFO)待ち行列内に配置される。
【0008】FCフレームは、FCデータ・フレームとFCリ
ンク制御フレームとを含む。FCリンク制御フレームの一
形態は、アクノレッジ(ACK)フレームである。FCノー
ドは、FCデータ・フレームの受信を承認するため、FCデ
ータ・フレームを受信した元となる遠隔ノードにACKフ
レームを送る。FCノードは、FCフレームを遠隔ノードに
送信するよりも先にクレジットを得なければならないよ
うな端と端とを接した(end-to-end: EE)クレジット管
理戦略を採用する。FCフレームの承認に関する受信の他
に、ACKフレームはクレジットを遠隔ノードに転送させ
るためにも使用され、遠隔ノードがFCノードに対してさ
らに追加のフレームを送ることができるようになされて
いる。また、ACKフレームは、現在のアプリケーション
の範囲を越えるような多数の付加的機能のためにも採用
される。
【0009】一般的なFCインターフェース・コントロー
ラの実行において、単一の到着FIFO待ち行列は受信され
たFCフレームを待ち行列に入れるために用いられるもの
であるため、FCデータ・フレームおよびACKフレーム
は、通常、到着FIFO待ち行列内においてインターリーブ
される。FCデータ・フレームは一般的にはACKフレーム
よりもかなり大きなものであり、FCノード内において、
FCインターフェース・コントローラおよびホスト・プロ
セッサの両者によるACKフレームよりもさらに広範囲に
わたる処理が必要とされる。待ち行列に入れられたACK
フレームの処理は、ACKフレームが到着FIFO待ち行列内
においてFCデータ・フレームに先立つものである場合、
一時的にブロックすることが可能である。また、到着FI
FO待ち行列に入れられたACKフレームの処理が一時的に
ブロックされる場合、FCノードは適時遠隔ノードからの
クレジットを得ることができず、その結果FCノードから
遠隔ノードへの出発FCフレームの送信がブロックされる
ことになる。ある事例においては、2つの相互通信を行
っているFCノードによる到着ACKフレームの処理がブロ
ックされると、デッドロックが発生する可能性がある。
このようなACKフレーム処理ブロックは、FCリンク上の
フレーム間のギャップを増大させ、EEクレジット・タイ
ムアウトが発生する可能性を増大させ、FCリンクの帯域
幅の有用性を減少させ、I/O待ち時間を増大させ、さら
なる性能上の問題の原因となり、また、I/O処理中にFC
ノードが引き受けるループ裁定数を増大させるといった
可能性がある。これらの理由から、FCインターフェース
・コントローラの設計者、開発者および製造者は、FCを
ベースとしたネットワーキングおよび記憶システムのユ
ーザと同様に、FCインターフェース・コントローラによ
るFCデータ・フレームおよびACKフレームのより最適な
ブロックされない処理の必要性を認めてきた。
【0010】
【発明が解決しようとする課題】本発明は、上記従来の
事情に鑑みてなされたものであって、FIFO待ち行列内に
おけるFCデータ・フレームおよびACKフレームのインタ
ーリーブにおいて発生していた問題点、すなわち、ACK
フレーム処理の潜在的遅延およびブロックを軽減可能な
フレーム処理技術を提供することを目的としている。
【0011】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、リンク制御フレームおよびFCデータ・フ
レームに対して独立したFIFO待ち行列を採用し、ACKフ
レームに先立って待ち行列に入れられるFCデータ・フレ
ームがACKフレーム処理をブロックさせることがないよ
うにする方法およびこのようなFCインターフェース・コ
ントローラの実行を提供するものである。本発明の一実
施例において、インターフェース・コントローラには、
到着FCデータ・フレームFIFO待ち行列および到着リンク
制御フレーム待ち行列が含まれる。このため到着FCデー
タ・フレームは、到着ACKフレームから独立して待ち行
列に入れられる。従来技術のFCインターフェース・コン
トローラの到着データ・マネージャ構成部分内に属する
機能性は、本発明の一実施例を表すFCインターフェース
・コントローラにおいては、出発シーケンス・マネージ
ャ構成部分および到着フレーム・ルータ構成部分へと移
動し、ACKフレームの処理を簡素化および合理化してい
る。このように、本発明はACKフレームをクレジットに
変換する際の待ち時間を減少させ、FCインターフェース
・コントローラ内において到着FCデータ・フレームを処
理する際にブロックが到着ACKフレームの処理および到
着ACKフレームのクレジットへの変換をブロックするこ
とがないようにし、インターフェース・コントローラ内
における到着および出発フレームの処理をさらに完全に
独立させ、また、FCインターフェース・コントローラに
よる出発フレームの処理および送信の能率を向上させる
ものである。これは、FCインターフェース・コントロー
ラに関連するFCリンク上のフレーム間ギャップを減少さ
せ、EEクレジット・タイムアウトが発生する可能性を減
少させ、FCリンクの帯域幅の有用性を増大させ、I/O待
ち時間を減少させ、一般的な性能を増大させ、また、I/
O処理中にFC裁定ループ・トポロジー内においてFCノー
ドが引き受けるループ裁定数を減少させるものである。
【0012】
【発明の実施の形態】本発明は、4つのサブセクション
にわけて説明される。最初の3つのサブセクションで
は、FC、FCプロトコル、FCインターフェース・コントロ
ーラ・アーキテクチャについて、また、FCデータ・フレ
ームとACKフレームとの両者をFCインターフェース・コ
ントローラ内において単一のFIFO待ち行列に入れること
に関連する問題について、詳細に述べられている。4つ
めのサブセクションでは、本発明の説明が行われてい
る。
【0013】〔1.ファイバ・チャネル〕ファイバ・チ
ャネル(FC)は、(1)ファイバ・チャネル物理および
通信インターフェース(FC-PH),ANSI X3.230-1994、
(FC-PH-2),ANSI X3.297-1997、(2)ファイバ・チ
ャネル−裁定ループ(FC-AL-2),ANSI X3.272-1996、
(3)ファイバ・チャネル−プライベート・ループSCSI
ダイレクト・アタッチ(FC-PLDA)、(4)ファイバ・
チャネル−ファブリック・ループ・アッタチメント(FC
-FLA)、(5)SCSI用ファイバ・チャネル・プロトコル
(FCP)、(6)ファイバ・チャネル・ファブリック要
件(FC-FG),ANSI X3.289:1996、および(7)ファイ
バ・チャネル10ビット・インターフェースを含む多数
のANSI標準書によって規定または説明されている。な
お、標準書は頻繁に改訂がなされている。付加的ファイ
バ・チャネル・システム・イニシアチブ(FCSI)標準書
には、(1)ギガボー・リンク・モジュール・ファミリ
(GLM),FCSI-301、(2)共通FC-PH特徴設定プロファ
イル,FCSI-101、および(3)SCSIプロファイル,FCSI
-201が含まれている。これらの書類は、URLが「http://
www.fibrechannel.com」のホームページに掲載されてい
る。以下のFCについての説明は、本発明に関する議論を
容易にするため、上記書類に含まれる情報を紹介および
要約することを意図するものである。以下の説明におい
て紹介される題目のいずれかについてより詳細な議論が
望まれる場合には、上述の書類を調べることが可能であ
る。
【0014】以下の説明において、「FC」は一般的なフ
ァイバ・チャネル・アーキテクチャおよびプロトコルに
ついて述べるための形容詞として、また、ファイバ・チ
ャネル通信媒体の例について述べるための名詞として使
用されている。このためFC(アーキテクチャおよびプロ
トコル)ポートはFC(通信媒体)からのFC(アーキテク
チャおよびプロトコル)シーケンスを受信することが可
能である。
【0015】FCプロトコルは、1つ以上の通信媒体によ
って相互接続される、一般的にはコンピュータやワーク
ステーション、周辺デバイス、ディスク・アレイなどと
いった周辺デバイス・アレイまたはコレクションである
ような、FCノード間のデータ通信用アーキテクチャおよ
びプロトコルである。通信媒体には、シールドされ撚り
合わされた対をなす接合部や同軸ケーブル、光ファイバ
が含まれる。FCノードは、少なくとも1つのFCポートお
よびFCリンクを介して通信媒体に接続されている。FCポ
ートは、レジスタおよびホスト・メモリ・インターフェ
ースをFCノードのホスト処理構成部分と共有するよう
な、また、ハードウェアおよびファームウェアにおいて
下位レベルのFCプロトコルを実行するようなFCホスト・
アダプタまたはFCコントローラである。FCホストは一般
に、共有されたメモリ内における共有されたデータ構造
を用いて、また、FCポート内における制御レジスタを用
いて、データおよび制御情報をFCポートと交換する。FC
ポートは、電線または光ストランドを含むFCリンクを介
して通信媒体に連結されるシリアル送信機および受信機
の構成部分を含む。
【0016】FCはシリアル通信媒体である。データは、
極めて高い転送レートで1回につき1ビットが転送され
る。図1は、FCネットワークを介して転送を行うために
適宜データが組織される際の、非常に簡単な階層につい
て示す説明図である。最も下位の概念レベルにおいて
は、データはデータ・ビット・ストリーム100と考え
ることが可能である。FCネットワークによってサポート
されるデータまたはデータ・ビット・グループの最小単
位は10ビット・キャラクタであり、これはFCポートに
よって8ビット・キャラクタとして復号される。FCの基
本構成は、概して10ビット・キャラクタまたはバイト
から構成される。あるFC基本構成は、FCポート間で交換
される制御情報を伝送するために採用される。データ組
織の次のレベルであるFCプロトコルに関する基礎レベル
は、フレームである。7つのフレーム102〜108が
図1に示されている。フレームは、フレーム内に含まれ
るデータの性質によって36〜2148バイトのデータ
から構成することが可能である。例えば、第1のFCフレ
ームは、水平ブラケット101に取り囲まれるデータ・
ビット・ストリーム100のデータ・ビットに対応す
る。FCプロトコルは、シーケンスと呼ばれる次に高い組
織レベルについて明記している。シーケンス110とシ
ーケンス112の一部とが、図1に示されている。シー
ケンス110は、1から4のフレーム102〜105に
よって構成される。シーケンス112は、5から7のフ
レーム106〜108と図示されていないフレームとに
よって構成される。FCプロトコルは、交換と呼ばれる第
3の組織レベルについて明記している。交換X114の
一部が図1に示されている。この交換X114は、図1
に示される少なくともシーケンス110およびシーケン
ス112から構成される。または、この交換X14は、
1から7のフレーム102〜108と、シーケンス11
2内および交換X114を構成するいくつかの付加的シ
ーケンス内に含まれるいくつかの付加的フレームとから
構成されると考えることが可能である。
【0017】FCは全二重データ送信媒体である。フレー
ムおよびシーケンスは、オリジネータまたはイニシエー
タとレスポンダまたはターゲットとの間で両方向に同時
に受け渡し可能である。交換は、読み取りI/O処理や書
き込みI/O処理などといった単一のI/O処理中に、イニシ
エータまたはオリジネータとレスポンダまたはターゲッ
トとの間で交換される全てのシーケンスとシーケンス内
のフレームとを含む。FCプロトコルは、インターネット
・プロトコル(IP)、小型コンピュータ・システム・イ
ンターフェース(SCSI)プロトコル、高性能パラレル・
インターフェース(HIPPI)およびインテリジェント周
辺インターフェース(IPI)を含むより上位のデータ交
換プロトコルのいくつかにしたがって、データを転送す
るよう設計される。SCSIプロトコルのファイバ・チャネ
ルへの標準的な適合(adaptation)は、本明細書では
「FCP」と称されている。これによりFCは、SCSIバスお
よびその他の周辺相互接続バスの特徴であるような主従
型の通信パラダイムを、インターネットを実行するため
に使用されるプロトコルのような比較的オープンかつ不
統一な通信プロトコルと同様にサポートすることが可能
である。イニシエータおよびターゲットのSCSIバス・ア
ーキテクチャの概念は、上述されているように、FCを介
した伝送のためにSCSIコマンドおよびデータ交換を簡約
するように設計されたFCP内で進められる。下記は、FC
上のFCPプロトコルと上述されたSCSIプロトコルに関す
るものである。
【0018】〔2.PCプロトコル〕図2は、FCフレーム
の概念を示す説明図である。FCフレーム202は、5つ
の高度セクション204,206,208,210,2
12を含む。第1の高度セクションは、フレーム開始デ
リミッタ(SOF)204と呼ばれ、FCフレーム202の
始まりを記録する4バイトのデータである。また、第2
の高度セクションは、フレーム・ヘッダ206と呼ば
れ、アドレス情報、シーケンス情報、交換情報および種
々の制御フラッグを含む24バイトのデータである。フ
レーム・ヘッダ206についてのより詳細な概要は、図
2においてFCフレーム202のフレーム・ヘッダ206
から展開して示されている。宛先ID(D-ID)216は、
フレームに対する宛先ポートを示す24ビットFCアドレ
スである。また、出所ID(S-ID)218は、上記フレー
ムを送信したポートを表示する24ビット・アドレスで
ある。また、オリジネータID(OX-ID)220およびレ
スポンダID(RX-IDまたはIX-ID)222は共に、フレー
ムが属する交換を識別するような32ビット交換IDを構
成している。さらに、シーケンスID(SEQ-ID)224
は、フレームが属するシーケンスを識別するためのもの
である。
【0019】第3の高度セクション208は、データ・
ペイロードと呼ばれ、FCPフレーム内にパッケージされ
る実際のデータである。このデータ・ペイロードは、4
つの基本タイプのデータ・ペイロード・レイアウト22
6〜229に従ってフォーマットすることが可能であ
る。これらのレイアウトの内、第1のレイアウト226
はFCP-CMNDと呼ばれ、SCSIコマンドをイニシエータから
ターゲットに伝送するために用いられる。FCP-LUNフィ
ールド230は、特定のSCSIアダプタと、SCSIアダプタ
に関するターゲット・デバイスと、特定のターゲットSC
SIデバイスに関する物理デバイスに対応する論理ユニッ
ト数とを条件として指定する8バイト・アドレスを含
む。SCSIコマンドは、16バイト・フィールドFCP-CDB
232内に含まれている。次に、図2に示される第2の
レイアウト227はFCP-XFER-RDYと呼ばれる。このフォ
ーマットは、ターゲットがデータの受信または受理を開
始する準備ができた際に、ターゲットからイニシエータ
に前進コマンドを転送するために使用される。次に、図
2に示される第3のレイアウト228はFCP-DATAと呼ば
れ、I/O処理を実行した結果として読み取られているま
たは書き込まれている実際のデータを転送するために用
いられる。図2に示される第4のレイアウト229は、
FCP-RSPと呼ばれ、他のFCPステータス情報と同様に、I/
O処理が完了した時点においてターゲットからイニシエ
ータに戻るようにSCSIステータス・バイト234を転送
するために用いられる。以下の説明において、FCP-CMN
D、FCP-XFER-RDY、FCP-DATA、FCP-RSPデータ・ペイロー
ドを含むFCフレームは、それぞれFCP-CMNDフレーム、FC
P-XFER-RDYフレーム、FCP-DATAフレーム、FCP-RSPフレ
ームと称される。
【0020】FCプロトコルは、2つの主なタイプのFCフ
レームをサポートする。第1のタイプはFCデータ・フレ
ームである。FCデータ・フレームは、FCリンク・フレー
ム、FCデバイス・フレームおよびFCビデオ・フレームを
含む。FCデータ・フレームは全て、データを含むデータ
・ペイロード・フィールド208を有する。したがって
上述したFCP-CMNDフレーム、FCP-XFER-RDYフレーム、FC
P-DATAフレームおよびFCP-RSPフレームは、FCデータ・
フレームの例である。
【0021】第2のタイプのFCフレームはリンク制御フ
レームである。リンク制御フレームは、ACKフレーム、
リンク・レスポンス・フレームおよびリンク・コマンド
・フレームを含む。リンク制御フレームは、データ・ペ
イロード・フィールドを有さない。リンク・レスポンス
・フレームは、一般的には1つ以上のFCデータ・フレー
ムの伝送が失敗したことを表示するために送られる。リ
ンク制御フレームは、リセット機能などといった低いレ
ベルの機能のために採用される。上述したように、ACK
フレームは、特にFCデータ・フレームの受信が成功した
ことを承認するため、およびクレジットを遠隔ノードに
転送してさらなるFCデータ・フレームを送るために使用
される。
【0022】図3は、ACKフレームのレイアウトを示す
説明図である。図3において、ACKフレームのフィール
ドはバイト順に配列されている。図3の最下段304は
各フィールドのバイト数を示しており、上段306はワ
ードの境界を、一定のフィールドについてはワード内に
おけるビットの番号付けを示している。図2で先に示さ
れているフィールドには、図2において使用されている
符号と同じ符号が付されている。FCリンク制御フレーム
は、高度4ビットのR-CTLフィールド302のコンテン
ツによって、FCデータ・フレームとは区別される。上記
4ビットがバイナリ値「1100」を含んでいる場合、
フレームはリンク制御フレームである。そうでない場
合、フレームはFCデータ・フレームである。下から2番
目に低い4ビットのR-CTLフィールド308は、リンク
制御フレームを示している。FCは、3つの異なるタイプ
のACKフレームをサポートする。すなわち、(1)単一
のFCデータ・フレームのアクノレッジACK-1、(2)n個
のFCフレームのアクノレッジACK-Nおよび(3)FCシー
ケンス内における全てのFCデータ・フレームのアクノレ
ッジACK-0をサポートする。上から2番目に高い4ビッ
トのR-CTLフィールド308は、ACK-0およびACK-Nタイ
プのACKフレームに対してはバイナリ値「0001」
を、ACK-1タイプのACKフレームに対してはバイナリ値
「0000」を有する。宛先ID(D-Id)のフィールド2
16は、FCデータ・フレームの出所またはACKフレーム
がアクノレッジであるようなFCデータ・フレームを識別
し、出所ID(S-ID)のフィールド218はACKフレーム
を送るノードを識別する。シーケンスID(SEQ-ID)のフ
ィールド224は承認されているFCデータ・フレームを
含むシーケンスを識別し、SEQ-CNTフィールド312はA
CKフレームがアクノレッジであるようなシーケンス内の
最低数のFCデータ・フレームを示す。また、パラメータ
・フィールド214は、先に送信された全てのFCデータ
・フレームに対する承認が既に送られているかどうかを
示すような、言い換えると、FCデータ・フレームの送達
が、ACKフレームがアクノレッジとして提供されるよう
な最高次数のFCデータ・フレームによって占領されるFC
シーケンス内のポイントに至るまで続いてきたものであ
るかどうかを示すような、Hビット314を含む。ま
た、最も低い16ビットのパラメータ・フィールド21
4は、ACKフレームによって承認されているFCデータ・
フレーム数を含むような、またはACK-0タイプのACKフレ
ームについては値「0」を含むようなNフィールド31
6を包含する。ACK-1タイプのACKフレームについては、
Nフィールド316の値は「1」であり、ACK-Nタイプの
ACKフレームについては、Nフィールド316の値は
「n」である。
【0023】図4は、読み取りI/Oオペレーションおよ
び書き込みI/Oオペレーション中にイニシエータ・ノー
ドとターゲット・ノードとの間で交換されるFCフレーム
の、一般化されたシーケンスを示す説明図である。同図
においてFCフレームは符号402などの矩形で表され、
符号404などの矢印はFCフレームが送られる方向を表
す。符号404などの右方向を指す矢印は、FCフレーム
がイニシエータ・ノードからターゲット・ノードへ送信
されることを示すものであり、左を指す矢印はFCフレー
ムがターゲット・ノードからイニシエータ・ノードへ送
信されることを示すものである。同図におけるFCフレー
ムのシーケンスは、図の一番上にある最初のFCフレーム
から図の一番下にある最後のFCフレームまで時間順に進
む。
【0024】読み取りI/Oオペレーションは、イニシエ
ータ・ノードがFCを通して、FCP-CMNDフレーム402を
包含する最初のFCシーケンスをターゲット・ノードに送
る際に開始される。ターゲット・ノードがFCP-CMNDフレ
ームを受信して読み取りオペレーションの準備を行う
と、その後、ターゲット・ノードは、FCP-XFER-RDYフレ
ーム406を包含する第2のFCシーケンスをイニシエー
タ・ノードに返信し、データ送信が現在続行可能である
ことを示すことができる。ターゲット・ノードによるこ
のFCP-XFER-RDYフレームの送信は、読み取りI/Oオペレ
ーションの場合は任意のものである。その後、ターゲッ
ト・ノードは物理デバイスからデータを読み取り、その
データを、共にI/O読み取り処理に対応する交換の第3
のシーケンスを含む多数のFCP-DATAフレーム408〜4
11として、FCを通してイニシエータ・ノードに送信す
る。上記データが全て送信されると、ターゲット・ノー
ドはステータス・バイトをFCP-RSPフレーム412にパ
ッケージすると共に、FCを通してこのFCP-RSPフレーム
をイニシエータ・ノードに返送する。これによって読み
取りI/Oオペレーションは完了する。
【0025】図4(b)は、図4(a)と同様に、イニ
シエータ・ノードとターゲット・ノードとの間において
書き込みI/O処理中に交換されるFCフレームの例を示し
ている。図4(b)は、FCP-DATAフレームが書き込みI/
Oオペレーション中にFCを用いてイニシエータ・ノード
からターゲット・ノードに送信されるという点において
のみ図4(a)とは異なっており、ターゲット・ノード
からイニシエータ・ノードへ送られるFCP-XFER-RDYフレ
ーム414は、読み取りI/Oオペレーションの場合のよ
うに任意のものではなく必須のものである。
【0026】図5〜図7は、2つのノード間におけるFC
データ・フレームの交換中に、FCデータ・フレームを用
いてインターリーブされるACKフレームを示す説明図で
ある。図5〜図7は、図4において採用されているのと
同じ図解慣例を採用している。FCは全二重通信媒体であ
るため、FCシーケンスはFCノードによって同時に送受信
されることが可能である。また単一のFCシーケンス内に
おいても、FCデータ・フレームはイニシエータ・ノード
とターゲット・ノードとの間を両方向に送信され得るも
のである。図5〜図7においては、FCデータ・フレーム
を特定シーケンスまたはより高度なプロトコル・オペレ
ーションに割り当てるための試みは一切なされていな
い。図5〜図7におけるノードAおよびノードBは全二
重モードにおいて動作し、したがってFCシーケンスを同
時に送受信することができると仮定される。
【0027】図5は、ACK-1タイプのACKフレームの使用
について説明している。図5において、ノードBはFCデ
ータ・フレーム502をノードAに送り、ノードAはFC
データ・フレーム502を承認するACKフレーム504
を用いて返信する。図5に示されているように、各FCデ
ータ・フレームは、FCデータ・フレームから反対の方向
に送信されるACKフレームによって明確に承認される。
ノードAは、一旦クレジットを有するのと同じ位多くの
FCデータ・フレームをノードBに送信すると、送信され
たFCデータ・フレームの内の1つに対応するACKフレー
ムを受信するまで、すなわち、再びFCフレームをノード
Bに送信するためにクレジットを有するまでは、別のFC
データ・フレームをノードBに送信することはできな
い。ACK-1タイプのACKフレームは各々単一のFCデータ・
フレームを承認し、単一のクレジットを受信FCノードに
転送する。
【0028】図6は、ACK-NタイプのACKフレームの使用
について説明している。図6において、各ACK-Nタイプ
のACKフレームは2つのFCデータ・フレームを承認して
いる。このため、例えばノードAはFCデータ・フレーム
510,512をノードBに送り、単一のACK-Nタイプ
のACKフレーム514を実質的に受信してFCデータ・フ
レーム510,512の送達が成功したことを承認す
る。同様に、ノードAはFCデータ・フレーム516,5
18の受領をACK-NタイプのACKフレーム520を用いて
承認する。ACK-NタイプのACKフレームは、n個のクレジ
ットを受信FCノードに転送する。
【0029】図7は、ACK-0タイプのACKフレームの使用
について説明している。ACK-0タイプのACKフレームは、
FCシーケンスの一部として送信される全てのFCデータ・
フレームを承認する。このため図7において、ノードA
はFCデータ・フレーム521をノードBに送り、ノード
Bは6つのFCデータ・フレーム522〜527を、単一
のFCシーケンスの一部としてノードAに送信する。最後
にノードAは、ノードBからACK-0タイプのACKフレーム
528を受信し、ノードBはノードAからACK-0タイプ
のACKフレーム530を受信する。ACKフレーム528
は、ノードAによってノードBから受信されるFCデータ
・フレーム522〜527の一部または全部を受信する
前に、ノードAによってノードBから受信可能であると
いうことに留意されたい。ACK-NタイプのACKフレームと
同様に、ACK-0タイプのACKフレームは多種多様なクレジ
ットを受信FCノードに転送する。
【0030】FCシーケンス交換に必要とされる両ノード
には、同一の型のACKフレームが採用される。上記ノー
ドが使用するACKフレームのタイプは、ログイン処理中
に決定することが可能である、またはノードが後に取り
決めることが可能である。一般的には、採用されるデフ
ォルトのACKフレームはACK-1タイプのFC ACKノードであ
る。
【0031】〔3.FCインターフェース・コントローラ
のアーキテクチャ〕図8は、一般的なFC/PCIホスト・ア
ダプタ内に組み込まれる一般的なFCインターフェース・
コントローラ(FCIC)を示すブロック図である。FC/PCI
ホスト・アダプタ602は、FCIC604と、トランシー
バ・チップ606と、FCリンク608と、クロック61
0と、バックプレーン・コネクタ612とを有し、ブー
ト・フラッシュROM614と、ローカル同期スタティッ
ク・ランダム・アクセス・メモリ(RAM)616と、ロ
ーカル・メモリ618とを任意に含むものである。FC/P
CIホスト・アダプタ602は、単数または複数のプロセ
ッサが連結されるFCノード内におけるバックプレーン・
コネクタ612およびPCIバスを介して、FCノードの単
数または複数のプロセッサと通信を行う。FCIC604
は、PCIインターフェース620を介してバックプレー
ン・コネクタ612と接続されている。FCIC604は、
10ビット・インターフェース622を介してFCへまた
はFCからFCフレームを送受信する。10ビット・インタ
ーフェース622はFCICをトランシーバ・チップ606
に接続しており、トランシーバ・チップ606は、順
に、FCリンク608を介してFCに接続される。クロック
610は、種々のFCホスト・アダプタ構成部分をインタ
ーフェースで接続し、上記構成部分の動作の同期をとる
ためにタイミング信号を供給する。FC/PCIホスト・アダ
プタ602はFCポートとされても良く、FC/PCIホスト・
アダプタ602は、バックプレーン・コネクタ612を
介して接続されるコンピュータ・システムと共に、FCリ
ンク608を介してFCに接続可能であるようなFCノード
を構成する。
【0032】図9は、一般的なFCインターフェース・コ
ントローラ、および一般的なFCインターフェース・コン
トローラとホストとの間のメモリをベースとしたデータ
構造インターフェースを示すブロック図である。上記メ
モリをベースとしたデータ構造702〜705は、PCI
バス709を介してFCICにアクセス可能なホスト・プロ
セッサのメモリ構成部分内において維持される。図9に
おいて、FCIC707は、バックプレーン・コネクタ(図
4の412)およびPCIバス709と組み合わされてい
るものとして表される。FCIC707は、フレーム・マネ
ージャ711が接続される10ビット・インターフェー
スを共に含む10ビット/8ビットエンコーダおよび8
ビット/10ビットデコーダを介して、トランシーバ・
チップ(図8の606)とインターフェースで接続され
る。フレーム・マネージャ711は、トランシーバ・チ
ップ(図8の606)への送信のためのFCフレームを、
出発FIFOマネージャ719および出発データ経路マルチ
プレクサ718を介してFCIC707から受信する。ま
た、10ビット/8ビットエンコーダとのインターフェ
ースを介してトランシーバ・チップ(図8の606)か
らデータ・ビット・ストリームを受信し、受信したデー
タ・ビットをFCフレームに処理し、このFCフレームを到
着FIFOマネージャ713内に格納する。出発FIFOマネー
ジャ719および到着FIFOマネージャ713の両者はフ
レームをバッファリングし、それぞれ到着フレームのパ
イプライン処理と到着フレームの周期冗長検査(CRC)
の検証を行えるようにしている。出発および到着FIFOマ
ネージャ719および713の両者の実体はFIFO待ち行
列であり、出発FIFOマネージャ719および到着FIFOマ
ネージャ713もまた、それぞれ「出発FIFO待ち行列」
および「到着FIFO待ち行列」と称される。
【0033】リンク制御フレーム・ジェネレータ715
は、受信されたFCデータ・フレームのFCフレーム・ヘッ
ダを変更して、主としてACKフレームであるようなFCリ
ンク制御フレームを作成し、この作成されたFCリンク制
御フレームをFCに送信するため、FCリンク制御フレーム
・リスト716内に格納する。出発データ経路マルチプ
レクサ718は、FCリンク制御フレーム・リスト716
から出発FCリンク制御フレームを、また、出発FIFOマネ
ージャ719から出発FCデータ・フレームを検索し、フ
レーム・マネージャ711に送る。リンク制御フレーム
・ジェネレータ715は、受信されたFCデータ・フレー
ムのFCヘッダを用いて、FCデータ・フレームの送信およ
び受信の成功に応じて送られるACKフレームを生成す
る。リンク制御フレーム・ジェネレータ715は、高度
8ビットのR-CTLフィールド、並びにHおよびNのサブフ
ィールドのパラメータ・フィールドを更新すると共に、
対応するACKフレームを生成するため、受信されたFCデ
ータ・フレームのD-RDフィールドおよびS-RDフィールド
を相互交換する。
【0034】FCノードのホスト・プロセッサは、種々の
制御レジスタ720を書き込むおよび読み取ることによ
って、またメモリをベースとしたデータ構造702〜7
05内にデータを入れる、およびデータ構造702〜7
05からデータを削除することによって、FCIC707を
用いて情報の制御および交換を行う。FCICの内部構成部
分724〜732は、制御レジスタ720の読み取りお
よび書き込みを行い、メモリをベースとしたデータ構造
702〜705からデータを読み出し、およびデータ構
造702〜705内にデータを入れ、到着FIFOマネージ
ャ713および出発FIFOマネージャ719を介してフレ
ーム・マネージャ711とFCフレームの交換を行う。
【0035】到着メッセージ待ち行列(IMQ)702
は、到着処理情報、出発処理情報およびステータス情報
についてホスト・プロセッサに通知を行う完了メッセー
ジを含んでいる。単一フレーム待ち行列(SFQ)703
は、FCIC707がフレーム・マネージャ711から受信
し、かつSFQ703内に入れるような未知のまたは支援
されていない到着FCフレームを含んでいる。SCSI交換状
態表(SEST)704は、FCIC707とホストとの間で共
有されており、各々現在のSCSI交換(I/Oオペレーショ
ン)に対応するSESTエントリを含んでいる。交換リクエ
スト待ち行列(ERQ)705は、ホストによってまたは
遠隔FCノードによって開始されるI/Oリクエストを表すI
/Oリクエスト・ブロック(IRB)を含む。
【0036】完了メッセージ・マネージャ725はIMQ
702を管理し、到着データ・マネージャ724が完了
メッセージを入れるような到着データ・マネージャ72
4に対する待ち行列エントリを供給する。単一フレーム
・マネージャ726は、ホスト・メモリ内においてSFQ
703を管理し、FC構成部分サービスが到着フレームを
入れるようなFCサービス構成部分727へのエントリを
供給する。交換リクエスト・マネージャ731は、新し
いエントリをERQ705から呼び出して処理を行うため
にこれをSCSI交換マネージャ出発(SEM-OUT)732に
送る。到着データ・マネージャ724は到着フレーム・
プロセッサ、すなわちSCSI交換マネージャ到着(SEM-I
N)728および新しいフレームのFCサービス構成部分
727に通知を行い、ホスト内においてフレームの適切
な宛先までの経路を定める。また、到着データ・マネー
ジャ724は、IMQ702を介してホストに完了メッセ
ージを送る。FCサービス構成部分727は、SEM-IN72
8が管理しないようなFCフレームを管理する。FCサービ
ス構成部分727は、SFQ703内にフレームを配置す
る。SEM-IN728は、FCシーケンスを受信するSCSI交換
のフェーズを管理する。SEM-IN728は、SESTリンクフ
ェッチマネージャ729を介してSESTエントリを取り出
し、到着データを適切なホスト・バッファに送るか、リ
クエストをSEM-OUT732に送るかして、次のFCシーケ
ンスのフェーズを送る。SESTリンクフェッチマネージャ
729は、SEM-IN728およびSEM-OUT732からのリ
クエストに応じてSESTエントリの読み取りおよび書き込
みに対応している。SEM-OUT732は、FCシーケンスの
送信が必要とされるようなSCSI交換のフェーズを管理す
る。SEM-OUT732は、SESTリンクフェッチマネージャ
729を介してSESTエントリを読み取り、FCシーケンス
の送信リクエストを構築し、出発シーケンス・マネージ
ャ730にこの送信リクエストを送る。出発シーケンス
・マネージャ730は、SEM-OUT732からのリクエス
トを処理してホストからのFCシーケンスを送信し、ホス
トからのFCフレーム・ヘッダおよびペイロードを検索し
てこれを遠隔ノードに送る。出発シーケンス・マネージ
ャ730は、シーケンスを最高2キロバイトの大きさの
FCフレームにセグメント分割し、これを出発FIFOマネー
ジャ719の待ち行列に入れる。
【0037】一般的なFCインターフェース・コントロー
ラは、単一の到着FIFO待ち行列(図9の713)を採用
しているため、FCデータ・フレームは、通常、到着FIFO
待ち行列内においてACKフレームを用いてインターリー
ブされる。その結果、ACKフレームによる処理が一時的
に遅れる可能性はあるが、先に待ち行列に入れられてい
るFCデータ・フレームは、FCインターフェース・コント
ローラおよびホスト・プロセッサによって処理される。
図10は、到着FIFOフレーム・バックアップを示す説明
図である。同図は、2つの相互通信を行うFCノードAお
よびBの到着FIFO待ち行列802,804を示してい
る。FCフレームは、ノードAおよびBのFCインターフェ
ース・コントローラによる処理のため、到着FIFO待ち行
列806,808の最上部から削除される。また、FCフ
レームは、到着FCフレームがFCノードのトランシーバ構
成部分によって受信され、かつ、フレーム・マネージャ
(図9の711)によって処理されるため、到着FIFO待
ち行列810,812の最下部の待ち行列に入れられ
る。到着FIFO待ち行列802においては、4つのFCデー
タ・フレーム814〜817が到着FIFO待ち行列802
内のACKフレーム818に先立つ。このため、FCデータ
・フレーム814〜817は、ACKフレーム818が待
ち行列から外され処理されることが可能である以前に、
到着データ・マネージャ(図9の724)によって待ち
行列から外され処理されなければならない。同様の状況
は、ノードBに対する到着FIFO待ち行列804にも発生
する。いずれの場合においても、ACKフレームは、処理
される際にACKフレームを送るFCノードに対して受信FC
ノードが1つ以上のさらなるFCデータ・フレームを送信
することができるような、他のFCノードから受信された
クレジットを表す。但し、クレジットを処理することは
できず、さらなるFCデータ・フレームは、先に待ち行列
に入れられた全てのFCデータ・フレームが処理されるま
で送信することができない。FCデータ・フレームは一般
的にはACKフレームよりもかなり長いものであり、到着
データ・マネージャによる、また最終的にはホスト・プ
ロセッサによる、さらに広範囲にわたる処理を必要とす
るものである。両者の到着FIFO待ち行列におけるFCデー
タ・フレームの停動処理によるACKフレーム処理のブロ
ックは、ノードAまたはノードBがいずれも、さらなる
FCデータ・フレームを送信するためにクレジットを受信
することができないようなデッドロック状況を引き起こ
す可能性がある。このデッドロック状況は、アボートさ
れたFCシーケンスのタイムアウトおよび再送信をもって
解決される。
【0038】単一の到着FIFO待ち行列を有するFCコント
ローラの現在の実行が原因となる、ACKフレームの処理
における遅延が最初に現れるのは、出発FCデータ・フレ
ームを遠隔FCノードに送信することができるようにする
クレジットをポストする際の遅延である。この遅延は、
上述したようなFCインターフェース・コントローラを含
むFCノードに関連するFCリンクにおいて、また一般的に
はFCにおいて、著しい性能問題とI/Oの待ち時間とを本
質的にかつ自発的に引き起こす可能性がある。事実、多
くの付加的問題が発生するかもしれない。例えば出発FC
フレームを送信する際の遅延は、出発データを記憶する
ホスト・メモリの能力を酷使して、最終的にFCノードが
同時に処理することのできるI/O処理数を減少させる結
果となるかもしれない。出発FCフレームを送信する際の
遅延は、出発フレーム間の時間間隔の増大に変わり、FC
リンクを介したデータ転送に対する帯域幅を実際上減少
させるかもしれない。出発FCフレームを送信する際の遅
延が増大すると、FCシーケンスの交換に必要とされるFC
ノードの両方またはいずれか一方がEEクレジットのタイ
ムアウトを経験する可能性が増える。EEクレジットのタ
イムアウトは、結果的に、アボートされたFCシーケンス
内において先に送信された全てのFCデータ・フレームを
再送信することになるかもしれない。同様に、FC裁定ル
ープ・トポロジーにおいては、出発FCフレームを送信す
る際の遅延の原因となるようなACKフレームを処理する
際の遅延は、単一のFCシーケンスの送信を完了するため
に、FCノードが繰り返しFC裁定ループの制御に対して再
裁定を行う原因となるかもしれない。
【0039】図11は、到着データ・マネージャのため
のフロー制御図である。図11のフロー制御図は、全て
の到着データ・マネージャ・タスクのための総合的なフ
ロー制御図として解釈されるものではないが、その代わ
り、到着FIFO待ち行列(図9の713)に入れられるFC
データ・フレームおよびACKフレームの処理に向けられ
たものである。まず、ステップ902において、到着デ
ータ・マネージャはハンドルする次の到着FIFO待ち行列
事象があるかどうかを判定する。ない場合、ステップ9
04において、到着データ・マネージャは次の事象が発
生するまで待機する。ステップ906において、到着デ
ータ・マネージャは、最も早く待ち行列に入れられたFC
フレームを到着FIFO待ち行列からデキューする。次に、
ステップ908において、到着データ・マネージャは、
待ち行列からデキューされたFCフレームがACKフレーム
であるかどうか判定する。到着FIFO待ち行列からデキュ
ーされたFCフレームがACKフレームではない場合、ステ
ップ910において、到着データ・マネージャは待ち行
列からデキューされたFCフレームを処理する。FCデータ
・フレームについて、到着データ・マネージャは、待ち
行列からデキューされたFCフレームが属するFCシーケン
スの状態について説明するデータ情報を更新することが
可能であり、ホスト・メモリ内のメモリ・バッファへの
FCフレームの全部または一部の転送を開始することが可
能である。ACKフレームではないFCリンク制御フレーム
の処理もまた、状態情報の更新を伴うことが可能である
と共に、出発シーケンス・マネージャ(図9の730)
と相互に作用し合って、FCリンク制御フレームによって
表される制御効果が出発FCデータ・フレームの送信に関
して実現されるようにすることが可能である。待ち行列
からデキューされたFCフレームがステップ908におい
てACKフレームであると判定された場合、ステップ91
2において、到着データ・マネージャは待ち行列から外
されたACKフレームの有効性を判定するために、出発シ
ーケンス・マネージャからコンテクスト情報を取り出
す。コンテクスト情報は、ACKフレームが属するFCシー
ケンスの状態に関係する情報である。次に、ステップ9
14において、ACKフレームが有効であると到着データ
・マネージャが判定する場合、到着データ・マネージャ
はステップ916において、ACKフレームのタイプに応
じて1つ以上のクレジットを出発シーケンス・マネージ
ャにポストする。これにより出発シーケンス・マネージ
ャは、ACKフレームを送った遠隔ノードにさらにFCデー
タ・フレームを送信することができるようになる。ステ
ップ912における出発シーケンス・マネージャから呼
び出された情報のコンテクストの範囲内において、待ち
行列からデキューされたACKフレームが有効ではないよ
うな場合、到着データ・マネージャはステップ918に
おいて、ホストがハンドルするようにSFQ内にACKフレー
ムを入れることによって、ACKフレームの無効性をハン
ドルする。
【0040】図12は、出発シーケンス・マネージャの
ためのフロー制御図である。図11の場合と同様に、図
12のフロー制御図は、出発FCデータ・フレームおよび
ACKフレームの処理に関する出発シーケンス・マネージ
ャ・タスクおよび活動のみを扱うものである。まず、ス
テップ1002において、出発シーケンス・マネージャ
はハンドルする事象があるかどうかを判定する。ない場
合、ステップ1004において、出発シーケンス・マネ
ージャは次の事象が発生するまで待機する。ステップ1
006において、出発シーケンス・マネージャは、ハン
ドルする事象が図11のステップ912において表され
ている到着データ・マネージャから受信されたACKフレ
ームに関するコンテクスト情報リクエストであるかどう
かを判定する。そうである場合、ステップ1008にお
いて、出発シーケンス・マネージャはACKフレームが属
するFCシーケンスに対するコンテクスト情報にアクセス
し、到着データ・マネージャに上記コンテクスト情報を
返送する。そうでない場合、ステップ1010におい
て、出発シーケンス・マネージャは上記事象が図11の
ステップ916において表されている到着データ・マネ
ージャからのクレジットのポストであるかどうかを判定
する。そうである場合、ステップ1012において、出
発シーケンス・マネージャは、結果的に到着データ・マ
ネージャによるクレジットのポストになるようなACKフ
レームを送信した遠隔ノードに関して内部安全情報を更
新する。そうでない場合、本説明では、出発シーケンス
・マネージャは、ハンドルする事象が、遠隔ノードに送
信を行うためにホスト・メモリ内において利用可能なデ
ータからのFCデータ・フレームを構築すると仮定する。
まずステップ1014において、出発シーケンス・マネ
ージャは、FCデータ・フレームが送られる遠隔ノードか
らFCノードがクレジットを受信したかどうかを判断する
ためにチェックを行う。次に、ステップ1016におい
て、FCノードが十分なクレジットを受信していたと判定
された場合、出発シーケンス・マネージャはFCデータ・
フレームを作成し、ステップ1018において、作成さ
れたFCデータ・フレームを出発FIFO待ち行列(図9の7
19)に入れる。出発シーケンス・マネージャはFCフレ
ーム・ヘッダおよびデータ・ペイロード・セクションな
どといったFCデータ・フレームの大部分を構築してお
り、出発FIFOマネージャ(図9の719)およびフレー
ム・マネージャ(図9の711)は出発FCフレームのそ
の他の部分を生成することが可能である、ということに
留意されたい。FCデータ・フレームを送るクレジットが
十分でない場合、ステップ1020において、出発シー
ケンス・マネージャはクレジット状況の欠如をハンドル
する。出発シーケンス・マネージャは、失敗したFCフレ
ームの構築のタイムスタンプを行うか別の方法でFCデー
タ・フレームを送ることができないということを示し、
その結果、クレジットが何らかの最大許容時間内にポス
トされない場合にはEEクレジット・タイムアウトが生成
される。クレジット・エラーのハンドルに関するさらな
る欠如およびクレジットのハンドルに関する別の種類の
欠如もまた発生する可能性がある。
【0041】〔4.本発明〕FIFO待ち行列内におけるFC
データ・フレームおよびACKフレームのインターリーブ
から問題が生ずる可能性があるため、FCコントローラの
実行の範囲内において到着FCフレームに対して独立した
FIFO待ち行列を提供することによりACKフレームからのF
Cデータ・フレームの処理を分離し、ACKフレーム処理の
潜在的遅延およびブロックを軽減することができる。図
13は、本発明の一実施形態に係るFCインターフェース
・コントローラを示すブロック図である。同図に示した
FCインターフェース・コントローラの構成部分の多く
は、図9に示される一般的なインターフェース・コント
ローラの構成部分と類似しているか同一となっている。
したがって、これら類似または同一の構成部分について
は説明しない。以下、本実施形態で追加された構成部分
について、図13を参照して説明する。図13に示す本
実施形態のFCインターフェース・コントローラと図9の
FCインターフェース・コントローラと間の第1の顕著な
差異は、本実施形態のFCインターフェース・コントロー
ラには、到着FCリンク制御フレームに対する独立したリ
ンク制御フレームFIFO待ち行列が含まれているという点
である。図13に示す到着FCリンク制御フレーム待ち行
列(以下、FCリンク制御フレームFIFOという)1102
は、最高8つのFCリンク制御フレームを記憶することが
可能である。現時点においては2つの独立した到着FIFO
待ち行列が存在するため、到着フレーム・ルータ110
6と称される付加的構成部分が、適切な到着FIFO待ち行
列への到着フレームの経路を定めるために備えられてい
る。到着フレーム・ルータ1106は、入って来る各FC
フレームのR-CTLフィールドの高度4ビットを構文解析
し、FCフレームがリンク制御フレームであるかどうかを
判定する。到着フレーム・ルータ1106は、到着FIFO
マネージャ713へのFCデータ・フレームの経路を定
め、FCリンク制御フレームFIFO1102への到着FCリン
ク制御フレームの経路を定める。
【0042】図14は、本発明の一実施形態に係る到着
データ・マネージャのためのフロー制御図である。図1
4は図11と対照可能であり、図11に示した到着デー
タ・マネージャのためのフロー制御図と比較すると、FC
データ・フレームおよびFCリンク制御フレームに対する
独立した到着FIFO待ち行列から生ずるような、本発明に
基づく到着データ・マネージャの簡素化を直接明らかに
している。なお、図14に示すフロー制御図の各ステッ
プは、図11に示したフロー制御図のステップに相当す
るものであれば同一の符号が付されている。図14に示
されている全てのステップは図11のステップに含まれ
ており、図11のステップ908、912、914、9
16および918は、図14に示すフロー制御図では既
に削除されている。同様に、図15は、本発明の一実施
形態に係る出発シーケンス・マネージャのためのフロー
制御図である。図15に示すフロー制御図のステップの
多くは、図11および図12に示した到着データ・マネ
ージャおよび出発シーケンス・マネージャのフロー制御
図に含まれており、同一の符号が付されている。以下、
図15における新しいステップについてのみ説明する。
ステップ1002またはステップ1004の後の、ステ
ップ1302において、出発シーケンス・マネージャ
(図9の730)は、ACKフレームがFCリンク制御フレ
ームFIFO1102の待ち行列に入れられているかどうか
を判断するためにチェックを行う。待ち行列に入れられ
ている場合、ステップ1304において、ACKフレーム
が属するFCシーケンスに対する出発シーケンス・マネー
ジャによって維持されたコンテクスト情報に、受信され
たACKフレームが照合される。ステップ914において
受信されたACKフレームが有効であると判定された場
合、ステップ1306において、ACKフレームが受信さ
れた元となる遠隔ノードに対する出発シーケンス・マネ
ージャ内において内部的にクレジットがポストされる。
待ち行列に入れられていない場合、ステップ1308に
おいてエラーのハンドルが行われる。このため本発明に
係る本実施形態の出発シーケンス・マネージャは、先行
技術を実行する際に、到着データ・マネージャおよび出
発シーケンス・マネージャの両者によってハンドルされ
る、入ってくるACKフレームの処理をハンドルする。ACK
フレームがFCリンク制御フレームFIFO1102において
有用ではない場合、その事象は、FCデータ・フレームが
構築され、遠隔ノードに送信される元となるようなホス
ト・メモリ内におけるデータの有用性を意味するもので
あると仮定される。有用なデータを処理する行程はステ
ップ1014、1016、1018および1020を含
み、本発明に係る本実施形態の出発シーケンス・マネー
ジャに対しては、図12に示されるFCインターフェース
・コントローラにおいて有用なデータを処理するための
行程と同じである。
【0043】FCデータ・フレームおよびACKフレームに
対して独立したFIFOを採用することにより、単一のFIFO
待ち行列内におけるFCデータ・フレームおよびACKフレ
ームのインターリーブに関する上述の問題は回避され
る。このため、ACKフレームの受信に応じたクレジット
のポストは、先に受信されたFCデータ・フレームの処理
によって遅延されることはないが、出発シーケンス・マ
ネージャによって直接的に実行される。受信されたACK
フレームをクレジットに変換する際の待ち時間は著しく
減少される。また、図13のFCインターフェース・コン
トローラにおいては、出発FCデータ・フレームの送信は
もはや到着FCデータ・フレームの処理に依存することは
ない。また順に、FCリンク上のフレーム間ギャップが減
少され、ACKフレーム処理の遅延またはブロックから生
じるEEタイムアウトの可能性が減少され、FCリンクの帯
域幅の有用性が増大し、I/O待ち時間が減少され、そし
てFC裁定ループ・トポロジー内のI/Oごとに要求される
ループ裁定数が減少される。
【0044】本発明は、FCデータ・フレームおよびACK
フレームを独立して待ち行列に入れることに関する。FC
リンク制御FIFO待ち行列(図13の1102)およびFC
リンク制御リスト(図9の716)は、リンク_レスポ
ンス・フレームやリンク_コマンド・フレームなどとい
った他のタイプのリンク制御フレームを付加的に含むこ
とが可能である。これら他のタイプのリンク制御フレー
ムを処理するということは、上記フレームをSFQの待ち
行列に入れてこれをホストが処理できるようにするとい
うことを含む。
【0045】本発明は特定の実施例を用いて説明されて
きたが、本発明が上記実施例に限られるということは意
図されていない。本発明の精神の範囲内における変更
は、当該技術分野における技術者にとっては明らかなも
のであろう。例えば図14および図15において示され
るフロー制御図で説明されている機能性は、殆ど制限さ
れない数の異なる論理回路、ファームウェア、または論
理回路とファームウェアとの組み合わせにおいて実行可
能である。同様にFIFO待ち行列は、FCインターフェース
・コントローラ内における多くの異なる論理回路および
低レベル構成部分を実行する上で実行可能である。リン
ク制御フレームの一般的な促進処理においては、リンク
制御フレームおよびFCデータ・フレームの処理を命令す
るものの合理的な時間間隔内におけるFCデータ・フレー
ムの処理は保証するため、異なる戦略を採用することが
可能である。遠隔ノードおよびFCシーケンスに関して現
在の情報を維持し、受信されたACKフレームの有効性お
よびFCデータ・フレームの送信制御を考慮するために
は、多くの異なるタイプによる内部データの記憶および
論理回路の実行を採用することが可能である。上述の実
行においては、ACKフレームおよびFCデータ・フレーム
の処理に関する到着データ・マネージャおよび出発シー
ケンス・マネージャ・タスクは反復ループとして示され
ているが、独立した論理回路は内部信号経路を介して直
接的に呼び出され、上記タスクをハンドルすることが可
能である、または独立したファームウェア・ルーチンは
内部割り込みまたはその他の呼び出し機構によって呼び
出すことが可能である。FIFO待ち行列以外のバッファ
は、到着および出発FCデータ・フレームおよびFCリンク
制御フレームをバッファリングするために採用すること
が可能である。
【0046】前述の記述においては、本発明を完全に理
解できるよう、説明の目的で特定の名称が用いられた。
しかし当該技術分野の技術者にとっては、本発明を実施
するために特に詳細な説明は必要ないということは明ら
かであろう。他の事例においては、基礎をなす発明にお
いて不必要に注意がそらされることを避けるため、公知
の回路およびデバイスはブロック図の形式で示される。
このため本発明による特定実施例の前述の説明は、図解
および記述を行う目的で示されている。本発明による特
定実施例についての前述の説明は、図解および記述の目
的で呈示されている。上記前述の説明は網羅的なもので
あると解釈されるものではなく、または本発明を開示さ
れた正確な形に限定するものであると解釈されるもので
もなく、上記教示事項の観点から、多くの変更および変
形が可能であることは明らかである。上記実施例は、本
発明の原理およびその実際の応用について最も適切に説
明するため、およびこれによって当該技術分野における
他の技術者が、本発明および種々の実施例を、企図され
る特定の使用に適合されるような種々の変更をもって最
も適切に利用できるようにするために、選択および記述
されたものである。本発明の範囲は、特許請求の範囲お
よびその均等物によって定められると解釈される。
【0047】以下に本発明の実施の形態を要約する。 1.ファイバ・チャネル・インターフェース・コントロ
ーラ内における到着データ・フレームおよびアクノレッ
ジ・フレームを処理するフレーム処理方法であって、入
って来るデータ・フレームをバッファリングするための
前記ファイバ・チャネル・インターフェース・コントロ
ーラ内における到着データ・フレーム・バッファ(71
3)と、入って来るアクノレッジ・フレームをバッファ
リングするための前記ファイバ・チャネル・インターフ
ェース・コントローラ内における到着アクノレッジ・フ
レーム・バッファ(1102)と、を提供し、ファイバ
・チャネル・リンクからの入って来るデータ・フレーム
を前記到着データ・フレーム・バッファの方へ向け、か
つ前記ファイバ・チャネル・リンクからの入って来るア
クノレッジ・フレームを前記到着アクノレッジ・フレー
ム・バッファの方へ向け、前記到着アクノレッジ・フレ
ーム・バッファ内でバッファリングされた到着アクノレ
ッジ・フレームを処理して前記到着アクノレッジ・フレ
ームを立証し、立証されたアクノレッジ・フレームを、
前記アクノレッジ・フレームを送信した遠隔ノードに関
するクレジットに変換し、前記到着データ・フレーム・
バッファ内でバッファリングされた到着データ・フレー
ムを処理するフレーム処理方法。
【0048】2.前記到着データ・フレーム・バッファ
(713)および前記到着アクノレッジ・フレーム・バ
ッファ(1102)は、共に先入れ先出しの待ち行列で
あり、データ・フレームは、前記ファイバ・チャネル・
リンクからの到着順に前記到着データ・フレーム先入れ
先出し待ち行列に入れられ、アクノレッジ・フレーム
は、前記ファイバ・チャネル・リンクからの到着順に前
記到着アクノレッジ・フレーム先入れ先出し待ち行列に
入れられ、最も早く待ち行列に入れられたデータ・フレ
ームは、前記データ・フレームが処理される前に前記到
着データ・フレーム先入れ先出し待ち行列からデキュー
され、最も早く待ち行列に入れられたアクノレッジ・フ
レームは、前記アクノレッジ・フレームが処理される前
に前記到着アクノレッジ・フレーム先入れ先出し待ち行
列からデキューされる上記1記載のフレーム処理方法。
【0049】3.前記到着アクノレッジ・フレーム・バ
ッファ(1102)内でバッファリングされた到着アク
ノレッジ・フレームは、バッファリングされたデータか
らデータ・フレームを作成し、かつ前記ファイバ・チャ
ネル・リンクに送信を行うため前記データ・フレームを
出発先入れ先出し待ち行列(719)に入れる出発シー
ケンス・マネージャ構成部分によって処理され、出発ア
クノレッジ・フレームは、到着データ・フレーム・ヘッ
ダから作成され、かつ前記ファイバ・チャネル・リンク
に送信され、アクノレッジ・フレームは、ACK-0およびA
CK-1アクノレッジ・フレームまたはACK-Nアクノレッジ
・フレームを含む上記2記載のフレーム処理方法。
【0050】4.前記到着データ・フレーム・バッファ
(713)内でバッファリングされた到着データ・フレ
ームの処理は、前記到着データ・フレームからメモリへ
データを移動させ、前記データ・フレームを含むファイ
バ・チャネル・シーケンスに関する状態情報を更新し、
アクノレッジ・フレームの生成を開始して、前記データ
・フレームの受信を承認するために前記データ・フレー
ムを送ったノードに返し、かつ前記データ・フレームを
送ったノードにクレジットを送信する上記2記載のフレ
ーム処理方法。
【0051】5.到着データ・マネージャ構成部分は、
前記到着データ・フレーム・バッファ内でバッファリン
グされた到着データ・フレームを処理し、到着フレーム
・ルータ(1106)は、前記ファイバ・チャネル・リ
ンクからの入って来るデータ・フレームを前記到着デー
タ・フレーム・バッファ(713)へ向けると共に、前
記ファイバ・チャネル・リンクからの入って来るアクノ
レッジ・フレームを前記到着アクノレッジ・フレーム・
バッファ(1102)へ向ける上記1記載のフレーム処
理方法。
【0052】6.到着データ・フレーム・バッファ(7
13)と、到着アクノレッジ・フレーム・バッファ(1
102)と、出発フレーム・バッファ(719)と、到
着データ・フレームを前記到着データ・フレーム・バッ
ファへ向け、到着アクノレッジ・フレームの前記到着ア
クノレッジ・フレーム・バッファへの経路を定める到着
フレーム・ルータ(1106)と、前記到着データ・フ
レーム・バッファに記憶された到着データ・フレームを
処理する到着データ・マネージャ構成部分と、前記到着
アクノレッジ・フレーム・バッファに記憶されたアクノ
レッジ・フレームを処理し、遠隔ノードに送信するため
データ・フレームを作成し、かつ、前記作成されたデー
タ・フレームを前記出発フレーム・バッファ(719)
に格納する出発シーケンス・マネージャ構成部分と、を
備えたファイバ・チャネル・インターフェース・コント
ローラ。
【0053】7.前記出発シーケンス・マネージャ構成
部分は、前記到着アクノレッジ・フレーム・バッファ
(1102)でバッファリングされた到着アクノレッジ
・フレームを処理して、前記到着アクノレッジ・フレー
ムを立証すると共に、立証されたアクノレッジ・フレー
ムを、前記アクノレッジ・フレームを送信した遠隔ノー
ドと関連するクレジットに変換する上記6記載のファイ
バ・チャネル・インターフェース・コントローラ。
【0054】8.前記到着データ・フレーム・バッファ
(713)および前記到着アクノレッジ・フレーム・バ
ッファ(1102)は、共に先入れ先出し待ち行列であ
り、データ・フレームは、前記ファイバ・チャネル・リ
ンクからの到着順に前記到着データ・フレーム先入れ先
出し待ち行列に入れられ、アクノレッジ・フレームは、
前記ファイバ・チャネル・リンクからの到着順に前記到
着アクノレッジ・フレーム先入れ先出し待ち行列に入れ
られ、最も早く待ち行列に入れられたデータ・フレーム
は、前記データ・フレームが処理される前に前記到着デ
ータ・マネージャ構成部分によって前記到着データ・フ
レーム先入れ先出し待ち行列からデキューされ、最も早
く待ち行列に入れられたアクノレッジ・フレームは、前
記アクノレッジ・フレームが処理される前に前記到着ア
クノレッジ・フレーム先入れ先出し待ち行列からデキュ
ーされる上記6記載のファイバ・チャネル・インターフ
ェース・コントローラ。
【0055】9.出発アクノレッジ・フレームは、到着
データ・フレーム・ヘッダから作成され、かつ前記ファ
イバ・チャネル・リンクに送信され、前記到着データ・
マネージャ構成部分は、前記到着データ・フレームから
メモリへデータを移動させること、および前記データ・
フレームを含むファイバ・チャネル・シーケンスに関す
る状態情報を更新することによって、前記到着データ・
フレーム・バッファ(713)内でバッファリングされ
た到着データ・フレームを処理し、前記到着データ・フ
レーム・バッファ(713)でバッファリングされる到
着データ・フレームの処理には、アクノレッジ・フレー
ムの生成を開始して、これを前記データ・フレームの受
信を承認するために前記データ・フレームを送ったノー
ドに返し、かつ前記データ・フレームを送ったノードに
クレジットを送信することがさらに含まれる上記6記載
のファイバ・チャネル・インターフェース・コントロー
ラ。
【0056】10.アクノレッジ・フレームは、ACK-0
およびACK-1アクノレッジ・フレームまたはACK-Nアクノ
レッジ・フレームのいずれかを含む上記6記載のファイ
バ・チャネル・インターフェース・コントローラ。
【0057】
【発明の効果】以上説明したように、本発明では、FCデ
ータ・フレームおよびACKフレームを独立して待ち行列
に入れることによって、FIFO待ち行列内におけるFCデー
タ・フレームおよびACKフレームのインターリーブにお
いて発生していた問題点を解決することができる。
【図面の簡単な説明】
【図1】FCネットワークを通して転送を行うために適宜
データを組織化する簡単な階層を示す説明図である。
【図2】FCフレームの概念を示す説明図である。
【図3】ACKフレームのレイアウトを示す説明図であ
る。
【図4】読み取りI/Oオペレーションおよび書き込みI/O
オペレーション中にイニシエータ・ノードとターゲット
・ノードとの間で交換されるFCフレームの、一般化され
たシーケンスを示す説明図である。
【図5】FCデータ・フレームを用いてインターリーブさ
れたACK-1タイプのACKフレームを示す説明図である。
【図6】FCデータ・フレームを用いてインターリーブさ
れたACK-NタイプのACKフレームを示す説明図である。
【図7】FCデータ・フレームを用いてインターリーブさ
れたACK-0タイプのACKフレームを示す説明図である。
【図8】一般的なFC/PCIホスト・アダプタ内に組み込ま
れる一般的なFCインターフェース・コントローラを示す
ブロック図である。
【図9】一般的なFCインターフェース・コントローラ、
および一般的なFCインターフェース・コントローラとホ
ストとの間のメモリをベースとしたデータ構造インター
フェースを示すブロック図である。
【図10】到着FIFOフレーム・バックアップを示す説明
図である。
【図11】到着データ・マネージャのためのフロー制御
図である。
【図12】出発シーケンス・マネージャのためのフロー
制御図である。
【図13】本発明の一実施形態に係るFCインターフェー
ス・コントローラを示すブロック図である。
【図14】本発明の一実施形態に係る到着データ・マネ
ージャのためのフロー制御図である。
【図15】本発明の一実施形態に係る出発シーケンス・
マネージャのためのフロー制御図である。
【符号の説明】
100 データ・ビット・ストリーム 101 水平ブラケット 102〜108 フレーム 110,112 シーケンス 114 交換X 202 FCフレーム 204 フレーム開始デリミッタ(SOF) 206 フレーム・ヘッダ 208 データ・ペイロード 214 パラメータ・フィールド 216 宛先ID(D-ID) 218 出所ID(S-ID) 220 オリジネータID(OX-ID) 222 レスポンダID(RX-IDまたはIX-ID) 224 シーケンスID(SEQ-ID) 226 FCP-CMNDレイアウト 227 FCP-XFER-RDYレイアウト 228 FCP-DATAレイアウト 229 FCP-RSPレイアウト 230 FCP-CDBフィールド 234 SCSIステータス・バイト 302,308 R-CTLフィールド 312 SEQ-CNTフィールド 314 Hビット 316 Nフィールド 402 FCP-CMNDフレーム 406 FCP-XFER-RDYフレーム 408〜411 FCP-DATAフレーム 412 FCP-RSPフレーム 414 FCP-XFER-RDYフレーム 502,510,512,516,518,522〜5
27,814〜817 FCデータ・フレーム 504,514,520,528,530,818 AC
Kフレーム 602 FC/PCIホスト・アダプタ 604,707 FCIC 606 トランシーバ・チップ 608 FCリンク 610 クロック 612 バックプレーン・コネクタ 614 ブート・フラッシュROM 616 ローカル同期スタティック・ランダム・アクセ
ス・メモリ(RAM) 618 ローカル・メモリ 620 PCIインターフェース 622 10ビット・インターフェース 702 到着メッセージ待ち行列(IMQ) 703 単一フレーム待ち行列(SFQ) 704 SCSI交換状態表(SEST) 705 交換リクエスト待ち行列(ERQ) 709 PCIバス 711 フレーム・マネージャ 713 到着FIFOマネージャ 715 リンク制御フレーム・ジェネレータ 716 FCリンク制御フレーム・リスト 718 出発データ経路マルチプレクサ 719 出発FIFOマネージャ 720 制御レジスタ 724 到着データ・マネージャ 725 完了メッセージ・マネージャ 726 単一フレーム・マネージャ 727 FCサービス構成部分 728 SCSI交換マネージャ到着(SEM-IN) 729 SESTリンクフェッチマネージャ 730 出発シーケンス・マネージャ(OSM) 731 交換リクエスト・マネージャ 732 SCSI交換マネージャ出発(SEM-OUT) 802,804 到着FIFO待ち行列 802 FCノードAの到着FIFO待ち行列 804 FCノードBの到着FIFO待ち行列 806,808,810,812 到着FIFO待ち行列 1102 到着FCリンク制御フレーム待ち行列(FCリン
ク制御フレームFIFO) 1106 到着フレーム・ルータ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 399117121 395 Page Mill Road P alo Alto,California U.S.A. (72)発明者 マッシュー・ポール・ウェイクリー アメリカ合衆国 カリフォルニア州,ロゼ ヴィル,エバーグリーン・ドライブ 1710

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 ファイバ・チャネル・インターフェース
    ・コントローラ内における到着データ・フレームおよび
    アクノレッジ・フレームを処理するフレーム処理方法で
    あって、 入って来るデータ・フレームをバッファリングするため
    の前記ファイバ・チャネル・インターフェース・コント
    ローラ内における到着データ・フレーム・バッファ(7
    13)と、入って来るアクノレッジ・フレームをバッフ
    ァリングするための前記ファイバ・チャネル・インター
    フェース・コントローラ内における到着アクノレッジ・
    フレーム・バッファ(1102)と、を提供し、 ファイバ・チャネル・リンクからの入って来るデータ・
    フレームを前記到着データ・フレーム・バッファの方へ
    向け、かつ前記ファイバ・チャネル・リンクからの入っ
    て来るアクノレッジ・フレームを前記到着アクノレッジ
    ・フレーム・バッファの方へ向け、 前記到着アクノレッジ・フレーム・バッファ内でバッフ
    ァリングされた到着アクノレッジ・フレームを処理して
    前記到着アクノレッジ・フレームを立証し、立証された
    アクノレッジ・フレームを、前記アクノレッジ・フレー
    ムを送信した遠隔ノードに関するクレジットに変換し、 前記到着データ・フレーム・バッファ内でバッファリン
    グされた到着データ・フレームを処理することを特徴と
    するフレーム処理方法。
  2. 【請求項2】 前記到着データ・フレーム・バッファ
    (713)および前記到着アクノレッジ・フレーム・バ
    ッファ(1102)は、共に先入れ先出しの待ち行列で
    あり、データ・フレームは、前記ファイバ・チャネル・
    リンクからの到着順に前記到着データ・フレーム先入れ
    先出し待ち行列に入れられ、アクノレッジ・フレーム
    は、前記ファイバ・チャネル・リンクからの到着順に前
    記到着アクノレッジ・フレーム先入れ先出し待ち行列に
    入れられ、最も早く待ち行列に入れられたデータ・フレ
    ームは、前記データ・フレームが処理される前に前記到
    着データ・フレーム先入れ先出し待ち行列からデキュー
    され、最も早く待ち行列に入れられたアクノレッジ・フ
    レームは、前記アクノレッジ・フレームが処理される前
    に前記到着アクノレッジ・フレーム先入れ先出し待ち行
    列からデキューされることを特徴とする請求項1記載の
    フレーム処理方法。
  3. 【請求項3】 前記到着アクノレッジ・フレーム・バッ
    ファ(1102)内でバッファリングされた到着アクノ
    レッジ・フレームは、バッファリングされたデータから
    データ・フレームを作成し、かつ前記ファイバ・チャネ
    ル・リンクに送信を行うため前記データ・フレームを出
    発先入れ先出し待ち行列(719)に入れる出発シーケ
    ンス・マネージャ構成部分によって処理され、 出発アクノレッジ・フレームは、到着データ・フレーム
    ・ヘッダから作成され、かつ前記ファイバ・チャネル・
    リンクに送信され、 アクノレッジ・フレームは、ACK-0およびACK-1アクノレ
    ッジ・フレームまたはACK-Nアクノレッジ・フレームを
    含むことを特徴とする請求項2記載のフレーム処理方
    法。
  4. 【請求項4】 前記到着データ・フレーム・バッファ
    (713)内でバッファリングされた到着データ・フレ
    ームの処理は、 前記到着データ・フレームからメモリへデータを移動さ
    せ、 前記データ・フレームを含むファイバ・チャネル・シー
    ケンスに関する状態情報を更新し、 アクノレッジ・フレームの生成を開始して、前記データ
    ・フレームの受信を承認するために前記データ・フレー
    ムを送ったノードに返し、かつ前記データ・フレームを
    送ったノードにクレジットを送信することを特徴とする
    請求項2記載のフレーム処理方法。
  5. 【請求項5】 到着データ・マネージャ構成部分は、前
    記到着データ・フレーム・バッファ内でバッファリング
    された到着データ・フレームを処理し、到着フレーム・
    ルータ(1106)は、前記ファイバ・チャネル・リン
    クからの入って来るデータ・フレームを前記到着データ
    ・フレーム・バッファ(713)へ向けると共に、前記
    ファイバ・チャネル・リンクからの入って来るアクノレ
    ッジ・フレームを前記到着アクノレッジ・フレーム・バ
    ッファ(1102)へ向けることを特徴とする請求項1
    記載のフレーム処理方法。
  6. 【請求項6】 到着データ・フレーム・バッファ(71
    3)と、 到着アクノレッジ・フレーム・バッファ(1102)
    と、 出発フレーム・バッファ(719)と、 到着データ・フレームを前記到着データ・フレーム・バ
    ッファへ向け、到着アクノレッジ・フレームの前記到着
    アクノレッジ・フレーム・バッファへの経路を定める到
    着フレーム・ルータ(1106)と、 前記到着データ・フレーム・バッファに記憶された到着
    データ・フレームを処理する到着データ・マネージャ構
    成部分と、 前記到着アクノレッジ・フレーム・バッファに記憶され
    たアクノレッジ・フレームを処理し、遠隔ノードに送信
    するためデータ・フレームを作成し、かつ、前記作成さ
    れたデータ・フレームを前記出発フレーム・バッファ
    (719)に格納する出発シーケンス・マネージャ構成
    部分と、を備えたことを特徴とするファイバ・チャネル
    ・インターフェース・コントローラ。
  7. 【請求項7】 前記出発シーケンス・マネージャ構成部
    分は、前記到着アクノレッジ・フレーム・バッファ(1
    102)でバッファリングされた到着アクノレッジ・フ
    レームを処理して、前記到着アクノレッジ・フレームを
    立証すると共に、立証されたアクノレッジ・フレーム
    を、前記アクノレッジ・フレームを送信した遠隔ノード
    と関連するクレジットに変換することを特徴とする請求
    項6記載のファイバ・チャネル・インターフェース・コ
    ントローラ。
  8. 【請求項8】 前記到着データ・フレーム・バッファ
    (713)および前記到着アクノレッジ・フレーム・バ
    ッファ(1102)は、共に先入れ先出し待ち行列であ
    り、データ・フレームは、前記ファイバ・チャネル・リ
    ンクからの到着順に前記到着データ・フレーム先入れ先
    出し待ち行列に入れられ、アクノレッジ・フレームは、
    前記ファイバ・チャネル・リンクからの到着順に前記到
    着アクノレッジ・フレーム先入れ先出し待ち行列に入れ
    られ、最も早く待ち行列に入れられたデータ・フレーム
    は、前記データ・フレームが処理される前に前記到着デ
    ータ・マネージャ構成部分によって前記到着データ・フ
    レーム先入れ先出し待ち行列からデキューされ、最も早
    く待ち行列に入れられたアクノレッジ・フレームは、前
    記アクノレッジ・フレームが処理される前に前記到着ア
    クノレッジ・フレーム先入れ先出し待ち行列からデキュ
    ーされることを特徴とする請求項6記載のファイバ・チ
    ャネル・インターフェース・コントローラ。
  9. 【請求項9】 出発アクノレッジ・フレームは、到着デ
    ータ・フレーム・ヘッダから作成され、かつ前記ファイ
    バ・チャネル・リンクに送信され、 前記到着データ・マネージャ構成部分は、 前記到着データ・フレームからメモリへデータを移動さ
    せること、および前記データ・フレームを含むファイバ
    ・チャネル・シーケンスに関する状態情報を更新するこ
    とによって、前記到着データ・フレーム・バッファ(7
    13)内でバッファリングされた到着データ・フレーム
    を処理し、 前記到着データ・フレーム・バッファ(713)でバッ
    ファリングされる到着データ・フレームの処理には、ア
    クノレッジ・フレームの生成を開始して、これを前記デ
    ータ・フレームの受信を承認するために前記データ・フ
    レームを送ったノードに返し、かつ前記データ・フレー
    ムを送ったノードにクレジットを送信することがさらに
    含まれることを特徴とする請求項6記載のファイバ・チ
    ャネル・インターフェース・コントローラ。
  10. 【請求項10】 アクノレッジ・フレームは、ACK-0お
    よびACK-1アクノレッジ・フレームまたはACK-Nアクノレ
    ッジ・フレームのいずれかを含むことを特徴とする請求
    項6記載のファイバ・チャネル・インターフェース・コ
    ントローラ。
JP2000402400A 1999-12-30 2000-12-28 フレーム処理方法 Pending JP2001230833A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/474,945 US6791989B1 (en) 1999-12-30 1999-12-30 Fibre channel interface controller that performs non-blocking output and input of fibre channel data frames and acknowledgement frames to and from a fibre channel
US09/474945 1999-12-30

Publications (1)

Publication Number Publication Date
JP2001230833A true JP2001230833A (ja) 2001-08-24

Family

ID=23885614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000402400A Pending JP2001230833A (ja) 1999-12-30 2000-12-28 フレーム処理方法

Country Status (4)

Country Link
US (1) US6791989B1 (ja)
JP (1) JP2001230833A (ja)
DE (1) DE10065656A1 (ja)
GB (1) GB2363041B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007518360A (ja) * 2004-01-07 2007-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Tcp受信器による完了合体

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1388266B1 (en) * 2001-05-14 2013-01-30 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method for protecting against overload in a mobile communication network
US6834307B2 (en) * 2001-06-26 2004-12-21 Intel Corporation Event-based application layer switching for high-speed protocol processing
US20030056000A1 (en) * 2001-07-26 2003-03-20 Nishan Systems, Inc. Transfer ready frame reordering
US7809852B2 (en) * 2001-07-26 2010-10-05 Brocade Communications Systems, Inc. High jitter scheduling of interleaved frames in an arbitrated loop
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7313104B1 (en) 2001-12-28 2007-12-25 Advanced Micro Devices, Inc. Wireless computer system with latency masking
US7149213B1 (en) * 2001-12-28 2006-12-12 Advanced Micro Devices, Inc. Wireless computer system with queue and scheduler
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
JP4432388B2 (ja) 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US20060126520A1 (en) * 2004-12-15 2006-06-15 Cisco Technology, Inc. Tape acceleration
US7606234B2 (en) * 2005-06-14 2009-10-20 Microsoft Corporation Multi-stream acknowledgement scheduling
US8069270B1 (en) 2005-09-06 2011-11-29 Cisco Technology, Inc. Accelerated tape backup restoration
US8266431B2 (en) * 2005-10-31 2012-09-11 Cisco Technology, Inc. Method and apparatus for performing encryption of data at rest at a port of a network device
US20070121668A1 (en) * 2005-11-30 2007-05-31 Michael Moretti Firmware architecture of active-active fibre channel capability in SATA and SAS devices
US20070121621A1 (en) * 2005-11-30 2007-05-31 Michael Moretti Integrated active-active fibre channel capability in SATA and SAS devices
US20070121633A1 (en) * 2005-11-30 2007-05-31 Michael Moretti Active-active fibre channel capability in SATA and SAS devices
JP4740763B2 (ja) 2006-02-15 2011-08-03 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US8464074B1 (en) 2008-05-30 2013-06-11 Cisco Technology, Inc. Storage media encryption with write acceleration
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US10310760B1 (en) 2018-05-21 2019-06-04 Pure Storage, Inc. Layering communication fabric protocols

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2585909B1 (fr) * 1985-08-02 1987-10-09 Lmt Radio Professionelle Procede de transmission de donnees par paquets a travers un reseau ou une chaine de transmission, et dispositif de mise en oeuvre
US4995056A (en) * 1989-01-13 1991-02-19 International Business Machines Corporation System and method for data communications
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
GB2252020A (en) * 1990-12-04 1992-07-22 Ibm Flow control in data communication systems.
JP2700843B2 (ja) * 1991-12-10 1998-01-21 三菱電機株式会社 多重通信制御装置
DE4341886A1 (de) * 1992-12-16 1994-06-23 Rolm Co HDLC-Hardwaremaschine und Speicherschnittstelle
US5588009A (en) * 1994-02-03 1996-12-24 Will; Craig A. Personal paging, communications, and locating system
US5734825A (en) * 1994-07-18 1998-03-31 Digital Equipment Corporation Traffic control system having distributed rate calculation and link by link flow control
US5619497A (en) * 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5777987A (en) * 1995-12-29 1998-07-07 Symbios, Inc. Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver
US5907717A (en) * 1996-02-23 1999-05-25 Lsi Logic Corporation Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof
US6002675A (en) * 1997-01-06 1999-12-14 Cabletron Systems, Inc. Method and apparatus for controlling transmission of data over a network
US5825748A (en) * 1997-04-08 1998-10-20 International Business Machines Corporation Credit-based flow control checking and correction system
EP0940941A1 (en) * 1998-03-05 1999-09-08 ICO Services Ltd. Transactional message handling in communications systems
US6366968B1 (en) * 1998-06-26 2002-04-02 Intel Corporation Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
US6347337B1 (en) * 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007518360A (ja) * 2004-01-07 2007-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Tcp受信器による完了合体
JP4709773B2 (ja) * 2004-01-07 2011-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Tcp受信器による完了合体
US8131881B2 (en) 2004-01-07 2012-03-06 International Business Machines Corporation Completion coalescing by TCP receiver

Also Published As

Publication number Publication date
DE10065656A1 (de) 2001-07-12
GB2363041B (en) 2004-04-28
US6791989B1 (en) 2004-09-14
GB0031361D0 (en) 2001-02-07
GB2363041A (en) 2001-12-05

Similar Documents

Publication Publication Date Title
JP2001230833A (ja) フレーム処理方法
US10204070B2 (en) Method, device, system and storage medium for implementing packet transmission in PCIE switching network
US6948004B2 (en) Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
JP5220974B2 (ja) ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US6493750B1 (en) Command forwarding: a method for optimizing I/O latency and throughput in fibre channel client/server/target mass storage architectures
US6425034B1 (en) Fibre channel controller having both inbound and outbound control units for simultaneously processing both multiple inbound and outbound sequences
US5959994A (en) ATM/SONET network enhanced as a universal computer system interconnect
US6470026B1 (en) Fibre channel loop map initialization protocol implemented in hardware
US5768530A (en) High speed integrated circuit interface for fibre channel communications
US6314477B1 (en) Performance of fibre channel protocol sequence reassembly using expected frame information and buffer list calculations
JP4690202B2 (ja) 高可用性大容量ストレージデバイスシェルフ
US9294569B2 (en) Cell fabric hardware acceleration
US20020073257A1 (en) Transferring foreign protocols across a system area network
US20020071450A1 (en) Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
JPH11134274A (ja) デバイス・ドライバ中の割込みオーバヘッドを低減させる機構
JPH02196541A (ja) ワークステーシヨンをローカル・エリヤ・ネツトワークに接続する方法および装置
JPH04233352A (ja) システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法
JP2004531001A (ja) ホスト・コンピュータ・システムとイーサネット(r)・アダプタの間におけるデータ転送
US6978457B1 (en) Method and system increasing performance substituting finite state machine control with hardware-implemented data structure manipulation
US7409432B1 (en) Efficient process for handover between subnet managers
US20020198927A1 (en) Apparatus and method for routing internet protocol frames over a system area network
US6463498B1 (en) Transmission of FCP response in the same loop tenancy as the FCP data with minimization of inter-sequence gap
US20020078265A1 (en) Method and apparatus for transferring data in a network data processing system
US7568062B2 (en) Data cut-through in an infiniband/fibre channel bridge
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070319