JP2001237868A - ファイバチャネルノードにおいて効率の良いi/o操作を達成するための方法及びシステム - Google Patents
ファイバチャネルノードにおいて効率の良いi/o操作を達成するための方法及びシステムInfo
- Publication number
- JP2001237868A JP2001237868A JP2001000234A JP2001000234A JP2001237868A JP 2001237868 A JP2001237868 A JP 2001237868A JP 2001000234 A JP2001000234 A JP 2001000234A JP 2001000234 A JP2001000234 A JP 2001000234A JP 2001237868 A JP2001237868 A JP 2001237868A
- Authority
- JP
- Japan
- Prior art keywords
- host
- data
- frame
- fcp
- queue
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 ホストイニシェーテッドFC I/O操作を
より効率的に達成するための方法を提供する。 【解決手段】 本発明の方法は、FCノード内のホスト
メモリにFCポートからFCPレスポンスフレームを戻
すのではなく、受信されたFCPレスポンスフレームの
内容から、FCポートが、I/O操作が上手く達成され
たかどうかを判定し(1415)、I/O操作が上手く
達成される通常の場合には、上手く達成されたことが、
ホストメモリ内の待ち行列にキューされる(1418)
達成メッセージ内の単一ビットフラッグを介して、FC
ノードのホストプロセッサに表示され、I/O操作が上
手く達成されないまれな場合には、FCポートは、ター
ゲットノードから受信されたFCレスポンスフレームを
ホストメモリ内の待ち行列にキューし(1417)、達
成メッセージをホストメモリ内の待ち行列に、エラーが
発生したことを示す単一のビットフラッグセットととも
にキューされる(1418)ことを特徴とする。
より効率的に達成するための方法を提供する。 【解決手段】 本発明の方法は、FCノード内のホスト
メモリにFCポートからFCPレスポンスフレームを戻
すのではなく、受信されたFCPレスポンスフレームの
内容から、FCポートが、I/O操作が上手く達成され
たかどうかを判定し(1415)、I/O操作が上手く
達成される通常の場合には、上手く達成されたことが、
ホストメモリ内の待ち行列にキューされる(1418)
達成メッセージ内の単一ビットフラッグを介して、FC
ノードのホストプロセッサに表示され、I/O操作が上
手く達成されないまれな場合には、FCポートは、ター
ゲットノードから受信されたFCレスポンスフレームを
ホストメモリ内の待ち行列にキューし(1417)、達
成メッセージをホストメモリ内の待ち行列に、エラーが
発生したことを示す単一のビットフラッグセットととも
にキューされる(1418)ことを特徴とする。
Description
【0001】
【発明の属する技術分野】本発明は、ファイバチャネル
ノードにおけるホストイニシェーテッドI/O操作(ho
st-initiated I/O operation)、ホストによって開始さ
れるI/O操作の実行に関するものである。より詳細に
は本発明は、ファイバチャネルノードのインターフェイ
スコントローラとホストコンピュータコンポーネント間
におけるデータ転送を少なくし、以前及び現在実施され
ているファイバチャネルノードの例よりもホストメモリ
資源、メモリリソースの割り当てを少なくして、ファイ
バチャネルノードにおけるI/O操作の達成を実施する
ための方法及びシステムに関する。
ノードにおけるホストイニシェーテッドI/O操作(ho
st-initiated I/O operation)、ホストによって開始さ
れるI/O操作の実行に関するものである。より詳細に
は本発明は、ファイバチャネルノードのインターフェイ
スコントローラとホストコンピュータコンポーネント間
におけるデータ転送を少なくし、以前及び現在実施され
ているファイバチャネルノードの例よりもホストメモリ
資源、メモリリソースの割り当てを少なくして、ファイ
バチャネルノードにおけるI/O操作の達成を実施する
ための方法及びシステムに関する。
【0002】
【従来の技術】ファイバチャネル(「FC」)は、コン
ピュータ及び周辺装置を相互接続するためのデータ通信
ネットワーク用アーキテクチャ及びプロトコルである。
FCは、小型コンピュータシステムインタフェース(ス
カジー(SCSI))プロトコルを含むさまざまな上位
レベルプロトコルをサポートする。コンピュータ又は周
辺装置は、FCポート、銅線又は光ファイバを含むFC
リンクを介して、全体として「FCノード」と呼ばれる
コンピュータ又は周辺装置、FCポート、FCリンクを
含むネットワークにリンクされている。FCポートに
は、トランシーバ及びインターフェイスコントローラが
含まれており、FCポートが含まれているコンピュータ
又は周辺装置は「ホスト」と呼ばれる。ホストには、一
般に、本出願において「ホストプロセッサ」と称する1
つ以上のプロセッサが含まれている。FCポートは、周
辺コンピュータインターフェイス(「PCI」)のよう
なローカルデータバスを介して、ホストとデータ交換を
行う。インターフェイスコントローラは、ファイバチャ
ネルと、FCポートが存在するコンピュータ又は周辺装
置との間で下位レベルのプロトコル交換を行う。
ピュータ及び周辺装置を相互接続するためのデータ通信
ネットワーク用アーキテクチャ及びプロトコルである。
FCは、小型コンピュータシステムインタフェース(ス
カジー(SCSI))プロトコルを含むさまざまな上位
レベルプロトコルをサポートする。コンピュータ又は周
辺装置は、FCポート、銅線又は光ファイバを含むFC
リンクを介して、全体として「FCノード」と呼ばれる
コンピュータ又は周辺装置、FCポート、FCリンクを
含むネットワークにリンクされている。FCポートに
は、トランシーバ及びインターフェイスコントローラが
含まれており、FCポートが含まれているコンピュータ
又は周辺装置は「ホスト」と呼ばれる。ホストには、一
般に、本出願において「ホストプロセッサ」と称する1
つ以上のプロセッサが含まれている。FCポートは、周
辺コンピュータインターフェイス(「PCI」)のよう
なローカルデータバスを介して、ホストとデータ交換を
行う。インターフェイスコントローラは、ファイバチャ
ネルと、FCポートが存在するコンピュータ又は周辺装
置との間で下位レベルのプロトコル交換を行う。
【0003】FCポート内のインターフェイスコントロ
ーラは、FCポートのシリアル受信及び送信コンポーネ
ントと、FCポートが含まれているFCノードのホスト
プロセッサとの間において、本質的に変換器として機能
する。インターフェイスコントローラは、入力側では、
受信コンポーネントから受信したシリアル符号化データ
を順序付きバイト集合にアセンブルし、順序付きバイト
集合の大部分を「FCフレーム」と呼ばれるデータ交換
の基本単位にアセンブルし、FCシーケンス(FC seque
nce)及びFCエクスチェンジ(FC exchange)と呼ばれ
るFCフレームのより大きい集合の文脈(context)内
において、状況情報と共に、FCフレームをホストプロ
セッサに渡すことに関与している。出力側では、インタ
ーフェイスコントローラは、ホストプロセッサからホス
トメモリのバッファ参照及び制御情報を受け取り、FC
シーケンス及びFCエクスチェンジのより高位レベルの
文脈内において、FCフレームに変換し、このFCフレ
ームをFCポートの送信コンポーネントに供給して、F
Cにシリアル伝送する。またインターフェイスコントロ
ーラは、ファイバチャネルを介して、遠隔ノードに対
し、ファイバチャネルを構成し、ファイバチャネルノー
ド内の状態を保持し、ノード間の一時的経路を確立し、
ファイバチャネルループの制御権を調停し、データフレ
ーム受信の応答をし、とりわけデータ転送の信頼性を遠
隔ノードにまで拡張するために用いられる下位レベルの
制御メッセージの交換を行う。
ーラは、FCポートのシリアル受信及び送信コンポーネ
ントと、FCポートが含まれているFCノードのホスト
プロセッサとの間において、本質的に変換器として機能
する。インターフェイスコントローラは、入力側では、
受信コンポーネントから受信したシリアル符号化データ
を順序付きバイト集合にアセンブルし、順序付きバイト
集合の大部分を「FCフレーム」と呼ばれるデータ交換
の基本単位にアセンブルし、FCシーケンス(FC seque
nce)及びFCエクスチェンジ(FC exchange)と呼ばれ
るFCフレームのより大きい集合の文脈(context)内
において、状況情報と共に、FCフレームをホストプロ
セッサに渡すことに関与している。出力側では、インタ
ーフェイスコントローラは、ホストプロセッサからホス
トメモリのバッファ参照及び制御情報を受け取り、FC
シーケンス及びFCエクスチェンジのより高位レベルの
文脈内において、FCフレームに変換し、このFCフレ
ームをFCポートの送信コンポーネントに供給して、F
Cにシリアル伝送する。またインターフェイスコントロ
ーラは、ファイバチャネルを介して、遠隔ノードに対
し、ファイバチャネルを構成し、ファイバチャネルノー
ド内の状態を保持し、ノード間の一時的経路を確立し、
ファイバチャネルループの制御権を調停し、データフレ
ーム受信の応答をし、とりわけデータ転送の信頼性を遠
隔ノードにまで拡張するために用いられる下位レベルの
制御メッセージの交換を行う。
【0004】インターフェイスコントローラは、PCI
バスのようなローカルバスを介して、インターフェイス
コントローラとホストプロセッサの両方にアクセス可能
な1組のホストメモリベースのデータ構造及びいくつか
の制御レジスタによって、ホストプロセッサと通信を行
う。所定の瞬間において、インターフェイスコントロー
ラは、異なるFCシーケンスに関連した出力FCフレー
ムを処理している場合もあれば、いくつかのFCシーケ
ンスに関連したFCからの着信(inbound)FCフレー
ムを処理している場合もあり得る。インターフェイスコ
ントローラは、内部キャッシュを利用して、ホストコン
ピュータとの通信に用いるホストメモリベースのデータ
構造からの情報をキャッシュ(cache)する。
バスのようなローカルバスを介して、インターフェイス
コントローラとホストプロセッサの両方にアクセス可能
な1組のホストメモリベースのデータ構造及びいくつか
の制御レジスタによって、ホストプロセッサと通信を行
う。所定の瞬間において、インターフェイスコントロー
ラは、異なるFCシーケンスに関連した出力FCフレー
ムを処理している場合もあれば、いくつかのFCシーケ
ンスに関連したFCからの着信(inbound)FCフレー
ムを処理している場合もあり得る。インターフェイスコ
ントローラは、内部キャッシュを利用して、ホストコン
ピュータとの通信に用いるホストメモリベースのデータ
構造からの情報をキャッシュ(cache)する。
【0005】インターフェイスコントローラは、マルチ
タスクオペレーティングシステム環境において、コンピ
ュータプロセッサによって実施される機能と類似した機
能をFCポート内において実施する。インターフェイス
コントローラは、極端に動的なパターンを示す状態の変
化及び情報の流れと同時発生する、多種多様な事象を処
理する。インターフェイスコントローラの状態は、一般
にホストメモリ内に記憶されていて、インターフェイス
コントローラとホストの両方にアクセス可能な、いくつ
かの動的データ構造及び待ち行列において保持される。
これらのデータ構造には、現在アクティブなFCエクス
チェンジ及びFCシーケンスの状態が保持され、並びに
入力及び出力フレーム、書き込み及び読み取り処理に関
する達成メッセージ、他のこうした情報を参照する記述
子も保持される。
タスクオペレーティングシステム環境において、コンピ
ュータプロセッサによって実施される機能と類似した機
能をFCポート内において実施する。インターフェイス
コントローラは、極端に動的なパターンを示す状態の変
化及び情報の流れと同時発生する、多種多様な事象を処
理する。インターフェイスコントローラの状態は、一般
にホストメモリ内に記憶されていて、インターフェイス
コントローラとホストの両方にアクセス可能な、いくつ
かの動的データ構造及び待ち行列において保持される。
これらのデータ構造には、現在アクティブなFCエクス
チェンジ及びFCシーケンスの状態が保持され、並びに
入力及び出力フレーム、書き込み及び読み取り処理に関
する達成メッセージ、他のこうした情報を参照する記述
子も保持される。
【0006】I/O操作、入出力操作、I/O処理は、
ファイバチャネルプロトコル内に埋め込まれたSCSI
I/O操作の文脈内において実施可能である。I/O
操作は、ターゲットノードからデータを読み取るか、又
はターゲットノードにデータを書き込むために、イニシ
エータノードによって開始される。書き込み又は読み取
り処理(「I/O操作」)の終了時に、イニシエータノ
ードは、一般にターゲットノードからI/O操作がうま
く達成されたか否かに関するFCレスポンスフレーム、
FC応答フレームを受信する。このFCレスポンスフレ
ームは、ファイバチャネルからインターフェイスコント
ローラが受信し、FCレスポンスフレームのデータ内容
が、ホストメモリのバッファに転送され、達成通知が、
インターフェイスコントローラによってホストメモリの
独立した達成待ち行列に配置される。こうして、応答F
Cフレームが開始ノードによって受信されると、データ
は、インターフェイスコントローラから2つの異なるホ
ストメモリの記憶場所に送られる。
ファイバチャネルプロトコル内に埋め込まれたSCSI
I/O操作の文脈内において実施可能である。I/O
操作は、ターゲットノードからデータを読み取るか、又
はターゲットノードにデータを書き込むために、イニシ
エータノードによって開始される。書き込み又は読み取
り処理(「I/O操作」)の終了時に、イニシエータノ
ードは、一般にターゲットノードからI/O操作がうま
く達成されたか否かに関するFCレスポンスフレーム、
FC応答フレームを受信する。このFCレスポンスフレ
ームは、ファイバチャネルからインターフェイスコント
ローラが受信し、FCレスポンスフレームのデータ内容
が、ホストメモリのバッファに転送され、達成通知が、
インターフェイスコントローラによってホストメモリの
独立した達成待ち行列に配置される。こうして、応答F
Cフレームが開始ノードによって受信されると、データ
は、インターフェイスコントローラから2つの異なるホ
ストメモリの記憶場所に送られる。
【0007】オペレーティングシステム及び他のリアル
タイム装置コントローラの場合と同様、FCコントロー
ラの場合、メモリリソースは乏しく、不必要なデータ転
送はバスによるデータ転送帯域幅を狭くし、全体として
のデータスループットを遅くすることがある。したがっ
てFCコントローラの設計者及び製造者は、I/O操作
に割り当てられるメモリリソースを減少させ、FCノー
ド間におけるI/O操作中に、FCコントローラとホス
トメモリ間で行われるデータ転送数を減少させる必要が
あることを認識している。
タイム装置コントローラの場合と同様、FCコントロー
ラの場合、メモリリソースは乏しく、不必要なデータ転
送はバスによるデータ転送帯域幅を狭くし、全体として
のデータスループットを遅くすることがある。したがっ
てFCコントローラの設計者及び製造者は、I/O操作
に割り当てられるメモリリソースを減少させ、FCノー
ド間におけるI/O操作中に、FCコントローラとホス
トメモリ間で行われるデータ転送数を減少させる必要が
あることを認識している。
【0008】
【発明が解決しようとする課題】よって本発明は、I/
O操作に割り当てられるメモリリソースを減少させ、F
Cノード間におけるI/O操作中に、FCコントローラ
とホストメモリ間で行われるデータ転送数を減少させる
方法及びシステムを提供することを課題とする。
O操作に割り当てられるメモリリソースを減少させ、F
Cノード間におけるI/O操作中に、FCコントローラ
とホストメモリ間で行われるデータ転送数を減少させる
方法及びシステムを提供することを課題とする。
【0009】
【課題を解決するための手段】本発明によれば、FCノ
ード内におけるI/O操作を効率良く達成するための方
法及びシステムが得られる。FCノードのFCポート
が、FCノードとターゲットノード間におけるI/O操
作を表すFCフレーム交換の最終FCフレームとして、
ターゲットノードからFCレスポンスフレームを受信す
ると、このFCポートは、FCレスポンスフレームのデ
ータを解析し、I/O操作がうまく達成されたか否かを
判定する。I/O操作がうまく達成された場合には、F
Cポートは、ホストメモリにおいて保持される待ち行列
に、うまく達成されたことを表示する達成メッセージを
キュー(queue)して、FCポートとホストメモリを相
互接続するバスを介し、ホストメモリに対するFCレス
ポンスフレームの伝送を回避する。一方、FCポートに
よるFCレスポンスフレームの解析の結果、I/O操作
がうまく達成されなかったと判定されると、FCポート
は、ホストメモリ内の単一フレーム待ち行列にレスポン
スフレームの一部をキューし、I/O操作がうまく達成
されなかったことを表示する達成メッセージをホストメ
モリ内のメッセージ待ち行列にキューする。
ード内におけるI/O操作を効率良く達成するための方
法及びシステムが得られる。FCノードのFCポート
が、FCノードとターゲットノード間におけるI/O操
作を表すFCフレーム交換の最終FCフレームとして、
ターゲットノードからFCレスポンスフレームを受信す
ると、このFCポートは、FCレスポンスフレームのデ
ータを解析し、I/O操作がうまく達成されたか否かを
判定する。I/O操作がうまく達成された場合には、F
Cポートは、ホストメモリにおいて保持される待ち行列
に、うまく達成されたことを表示する達成メッセージを
キュー(queue)して、FCポートとホストメモリを相
互接続するバスを介し、ホストメモリに対するFCレス
ポンスフレームの伝送を回避する。一方、FCポートに
よるFCレスポンスフレームの解析の結果、I/O操作
がうまく達成されなかったと判定されると、FCポート
は、ホストメモリ内の単一フレーム待ち行列にレスポン
スフレームの一部をキューし、I/O操作がうまく達成
されなかったことを表示する達成メッセージをホストメ
モリ内のメッセージ待ち行列にキューする。
【0010】本発明の方法及びシステムによれば、FC
ノードのホストプロセッサには、I/O操作の終了時に
ターゲットノードから戻されるFCレスポンスフレーム
のデータ部分を納めるために、メモリバッファを割り当
てる必要がない。代わりに、ホストプロセッサは、ホス
トメモリ内のメッセージ待ち行列にキューされた達成メ
ッセージ中のビットフィールドを調べることによって、
I/O操作がうまく達成されたか否かを判定することが
可能である。達成メッセージ内のビットフラグによる表
示によって、I/O操作がうまく達成されなかったとい
うことが示されれば、ホストプロセッサは、達成メッセ
ージに含まれるか、又は達成メッセージによって参照さ
れる識別情報を利用して、I/O操作が不首尾に終わる
ことによりターゲットノードによって戻されるFCレス
ポンスフレームを、ホストメモリの単一フレーム待ち行
列内に置くことが可能である。I/O操作は、一般にう
まく達成されるので、FCポートの単一フレーム待ち行
列にFCレスポンスフレームをキューすることは、比較
的まれにしか起こらない事象である。したがって本発明
の方法及びシステムによれば、ホストプロセッサが、各
I/O操作毎に割り当てるメモリは、従来技術の方法及
びシステムの場合よりも少なく、またFCポートからホ
ストメモリへのFCレスポンスフレームの伝送に関連し
た伝送オーバヘッドは、大幅に削減される。この結果、
さらに従来技術による方法及びシステムに対して、I/
O操作毎に費やされるホストプロセッササイクルが減少
し、ホストメモリバスの利用が減少し、FCノード間の
データスループットが増大し、I/O待ち時間が短縮さ
れることになる。
ノードのホストプロセッサには、I/O操作の終了時に
ターゲットノードから戻されるFCレスポンスフレーム
のデータ部分を納めるために、メモリバッファを割り当
てる必要がない。代わりに、ホストプロセッサは、ホス
トメモリ内のメッセージ待ち行列にキューされた達成メ
ッセージ中のビットフィールドを調べることによって、
I/O操作がうまく達成されたか否かを判定することが
可能である。達成メッセージ内のビットフラグによる表
示によって、I/O操作がうまく達成されなかったとい
うことが示されれば、ホストプロセッサは、達成メッセ
ージに含まれるか、又は達成メッセージによって参照さ
れる識別情報を利用して、I/O操作が不首尾に終わる
ことによりターゲットノードによって戻されるFCレス
ポンスフレームを、ホストメモリの単一フレーム待ち行
列内に置くことが可能である。I/O操作は、一般にう
まく達成されるので、FCポートの単一フレーム待ち行
列にFCレスポンスフレームをキューすることは、比較
的まれにしか起こらない事象である。したがって本発明
の方法及びシステムによれば、ホストプロセッサが、各
I/O操作毎に割り当てるメモリは、従来技術の方法及
びシステムの場合よりも少なく、またFCポートからホ
ストメモリへのFCレスポンスフレームの伝送に関連し
た伝送オーバヘッドは、大幅に削減される。この結果、
さらに従来技術による方法及びシステムに対して、I/
O操作毎に費やされるホストプロセッササイクルが減少
し、ホストメモリバスの利用が減少し、FCノード間の
データスループットが増大し、I/O待ち時間が短縮さ
れることになる。
【0011】
【発明の実施の形態】以下では、5つのサブセクション
に分けて、本発明の説明を行うことにする。最初の4つ
のサブセクションでは、FC、FCプロトコル、FCイ
ンターフェイスコントローラアーキテクチャ、及び、F
Cノードのインターフェイスコントローラとホストプロ
セッサ間におけるホストメモリインターフェイスについ
て詳述する。第5のサブセクションでは、本発明の説明
が行われる。
に分けて、本発明の説明を行うことにする。最初の4つ
のサブセクションでは、FC、FCプロトコル、FCイ
ンターフェイスコントローラアーキテクチャ、及び、F
Cノードのインターフェイスコントローラとホストプロ
セッサ間におけるホストメモリインターフェイスについ
て詳述する。第5のサブセクションでは、本発明の説明
が行われる。
【0012】ファイバチャネル ファイバチャネル(「FC」)は、(1)Fibre Channe
l Physical and Signaling Interface(“FC-PH”),A
NSI X3.230-1994,(“FC-PH-2”),ANSI X3.297-199
7;(2)Fibre Channel-Arbitrated Loop(“FC-AL-
2”),ANSI X3.272-1996;(3)Fibre Channel-Priva
te Loop SCSI Direct Attached(“FC-PLDA”),
(4)Fibre Channel Protocol for SCSI(“FCP”),
(6)Fibre Channel Fabric Requirements(“FC-F
G”),ANSI X3.289:1996;及び(7)FibreChannel 1
0-Bit Interfaceを含む、いくつかのANSI規格文書
によって定義され、それらの文書に記載されている。こ
れらの規格文書はしばしば改訂されている。追加Fibre
Channel System Initiative(“FCSI”)規格文書に
は、(1)Gigabaud Link Module Family(“GLM”),
FCSI-301;(2)Common FC-PH Feature Sets Profile
s,FCSI-101;及び(3)SCSI Profile,FCSI-201が含
まれている。これらの文書については、下記アドレスの
WWWインターネットページにおいて知ることが可能で
ある: “http://www.fibrechannel.com” FCに関する以下の説明は、本発明の議論を容易にする
ために、これらの文書に含まれる情報の一部を紹介し、
要約することを意図したものである。下記の説明におい
て紹介される論題のいずれかについてより詳細な解説を
所望される場合には、上述の文書を参照されたい。
l Physical and Signaling Interface(“FC-PH”),A
NSI X3.230-1994,(“FC-PH-2”),ANSI X3.297-199
7;(2)Fibre Channel-Arbitrated Loop(“FC-AL-
2”),ANSI X3.272-1996;(3)Fibre Channel-Priva
te Loop SCSI Direct Attached(“FC-PLDA”),
(4)Fibre Channel Protocol for SCSI(“FCP”),
(6)Fibre Channel Fabric Requirements(“FC-F
G”),ANSI X3.289:1996;及び(7)FibreChannel 1
0-Bit Interfaceを含む、いくつかのANSI規格文書
によって定義され、それらの文書に記載されている。こ
れらの規格文書はしばしば改訂されている。追加Fibre
Channel System Initiative(“FCSI”)規格文書に
は、(1)Gigabaud Link Module Family(“GLM”),
FCSI-301;(2)Common FC-PH Feature Sets Profile
s,FCSI-101;及び(3)SCSI Profile,FCSI-201が含
まれている。これらの文書については、下記アドレスの
WWWインターネットページにおいて知ることが可能で
ある: “http://www.fibrechannel.com” FCに関する以下の説明は、本発明の議論を容易にする
ために、これらの文書に含まれる情報の一部を紹介し、
要約することを意図したものである。下記の説明におい
て紹介される論題のいずれかについてより詳細な解説を
所望される場合には、上述の文書を参照されたい。
【0013】以下の議論において、「FC」は、一般的
なファイバチャネルアーキテクチャ及びプロトコルを形
容することを目的として用いられ、又はファイバチャネ
ル通信媒体の一例を表す名詞として用いられている。し
たがってFC(アーキテクチャ及びプロトコル)ポート
は、FC(通信媒体)からのFC(アーキテクチャ及び
プロトコル)シーケンスを受信する。
なファイバチャネルアーキテクチャ及びプロトコルを形
容することを目的として用いられ、又はファイバチャネ
ル通信媒体の一例を表す名詞として用いられている。し
たがってFC(アーキテクチャ及びプロトコル)ポート
は、FC(通信媒体)からのFC(アーキテクチャ及び
プロトコル)シーケンスを受信する。
【0014】FCプロトコルは、一般には1つ以上の通
信媒体によって相互接続された、コンピュータ、ワーク
ステーション、周辺装置、及びディスクアレイのような
周辺装置のアレイ又は集合である、FCノード間のデー
タ通信のためのアーキテクチャ及びプロトコルである。
通信媒体には、シールドされたツイストペア接続、同軸
ケーブル、及び光ファイバが含まれる。FCノードは、
少なくとも1つのFCポート及びFCリンクを介して通
信媒体に接続される。FCポートは、FCノードのホス
ト処理コンポーネントとレジスタ及びホストメモリイン
ターフェイスを共用し、ハードウェア及びファームウェ
アでFCプロトコルの下位レベルを実施するFCホスト
アダプタ又はFCコントローラである。FCホストは、
一般に共用メモリにおける共用データ構造を利用し、ま
たFCポートの制御レジスタを利用して、FCポートと
データ及び制御情報の交換を行う。FCポートには、電
線又は光ストランド(optical strand)を含む、FCリ
ンクを介して通信媒体に結合されたシリアル送信及び受
信コンポーネントが含まれている。
信媒体によって相互接続された、コンピュータ、ワーク
ステーション、周辺装置、及びディスクアレイのような
周辺装置のアレイ又は集合である、FCノード間のデー
タ通信のためのアーキテクチャ及びプロトコルである。
通信媒体には、シールドされたツイストペア接続、同軸
ケーブル、及び光ファイバが含まれる。FCノードは、
少なくとも1つのFCポート及びFCリンクを介して通
信媒体に接続される。FCポートは、FCノードのホス
ト処理コンポーネントとレジスタ及びホストメモリイン
ターフェイスを共用し、ハードウェア及びファームウェ
アでFCプロトコルの下位レベルを実施するFCホスト
アダプタ又はFCコントローラである。FCホストは、
一般に共用メモリにおける共用データ構造を利用し、ま
たFCポートの制御レジスタを利用して、FCポートと
データ及び制御情報の交換を行う。FCポートには、電
線又は光ストランド(optical strand)を含む、FCリ
ンクを介して通信媒体に結合されたシリアル送信及び受
信コンポーネントが含まれている。
【0015】FCはシリアル通信媒体である。データ
は、極めて速い転送速度で一度に1ビットずつ転送され
る。図1には、FCネットワークを介した転送に備え
て、データを時間的に編成される、極めて単純な階層構
造が図示されている。最下位の概念レベルにおいて、デ
ータは、データビットストリーム100とみなすことが
できる。FCネットワークによってサポートされる、最
小のデータ単位、すなわちデータビットの配列は、FC
ポートによって8ビットキャラクタ(character)とし
て復号化される10ビットキャラクタである。FCプリ
ミティブ(primitive)は、10ビットキャラクタ又は
バイトから構成されている。所定のFCプリミティブを
用いて、FCポート間で交換される制御情報の伝送が行
われる。データ編成の次のレベル、すなわちFCプロト
コルに関する基本レベルは、フレームである。図1に
は、7つのフレーム102〜108が示されている。フ
レームは、フレームに含まれるデータの性質にしたがっ
て、36〜2,148バイトのデータから構成される。
例えば、第1のFCフレームは、横方向の括弧101で
囲まれたデータビットストリーム100のデータビット
に対応する。FCプロトコルは、シーケンスと呼ばれる
次に高位の編成レベルを特徴付ける。図1には、第1の
シーケンス110と第2のシーケンス112の一部が表
示されている。第1のシーケンス110は、102〜1
05で示されるフレーム1〜4から構成されている。第
2のシーケンス112は、106〜108で示されるフ
レーム5〜7と、図示されていないそれ以外のフレーム
から構成されている。FCプロトコルは、エクスチェン
ジと呼ばれる第3の編成レベルを特徴付ける。図1に
は、エクスチェンジ114の一部が示されている。この
エクスチェンジ114は、図1に示す少なくとも第1の
シーケンス110と第2のシーケンス112から構成さ
れている。あるいはまたこのエクスチェンジは、102
〜108で示されるフレーム1〜7と、エクスチェンジ
114を構成する第2のシーケンス112及び任意の追
加シーケンスに含まれる任意の追加フレームから構成さ
れるとみなすことも可能である。
は、極めて速い転送速度で一度に1ビットずつ転送され
る。図1には、FCネットワークを介した転送に備え
て、データを時間的に編成される、極めて単純な階層構
造が図示されている。最下位の概念レベルにおいて、デ
ータは、データビットストリーム100とみなすことが
できる。FCネットワークによってサポートされる、最
小のデータ単位、すなわちデータビットの配列は、FC
ポートによって8ビットキャラクタ(character)とし
て復号化される10ビットキャラクタである。FCプリ
ミティブ(primitive)は、10ビットキャラクタ又は
バイトから構成されている。所定のFCプリミティブを
用いて、FCポート間で交換される制御情報の伝送が行
われる。データ編成の次のレベル、すなわちFCプロト
コルに関する基本レベルは、フレームである。図1に
は、7つのフレーム102〜108が示されている。フ
レームは、フレームに含まれるデータの性質にしたがっ
て、36〜2,148バイトのデータから構成される。
例えば、第1のFCフレームは、横方向の括弧101で
囲まれたデータビットストリーム100のデータビット
に対応する。FCプロトコルは、シーケンスと呼ばれる
次に高位の編成レベルを特徴付ける。図1には、第1の
シーケンス110と第2のシーケンス112の一部が表
示されている。第1のシーケンス110は、102〜1
05で示されるフレーム1〜4から構成されている。第
2のシーケンス112は、106〜108で示されるフ
レーム5〜7と、図示されていないそれ以外のフレーム
から構成されている。FCプロトコルは、エクスチェン
ジと呼ばれる第3の編成レベルを特徴付ける。図1に
は、エクスチェンジ114の一部が示されている。この
エクスチェンジ114は、図1に示す少なくとも第1の
シーケンス110と第2のシーケンス112から構成さ
れている。あるいはまたこのエクスチェンジは、102
〜108で示されるフレーム1〜7と、エクスチェンジ
114を構成する第2のシーケンス112及び任意の追
加シーケンスに含まれる任意の追加フレームから構成さ
れるとみなすことも可能である。
【0016】FCは全二重データ伝送媒体である。フレ
ーム及びシーケンスは、発信側又は起動側と、応答側又
はターゲットとの間で双方向に同時に送ることが可能で
ある。エクスチェンジは、読み取りI/Oトランザクシ
ョン又は書き込みI/Oトランザクションのような、単
一I/Oトランザクション中に、発信側又は起動側と、
応答側又はターゲットとの間で交換される、全てのシー
ケンス及びシーケンス内のフレームから構成されてい
る。FCプロトコルは、インターネットプロトコル
(「IP」)、スカジー(「SCSI」)プロトコル、
ヒッピ(High Performance Parallel Interface(「H
IPPI」))及びIntelligent Peripheral Interface
(「IPI」)を含む任意の数の高位レベルデータ交換
プロトコルにしたがってデータを転送するように設計さ
れている。SCSIプロトコルのファイバチャネルに対
する標準的な適応は、本書において、今後は「FCP」
と呼ぶ。したがってFCは、SCSIバス及び他の周辺
相互接続バスに特有のマスタスレーブ型通信パラダイ
ム、並びにインターネットの実施に用いられるような、
比較的開放的な非構造化通信プロトコルをサポートする
ことが可能である。起動側及びターゲットのSCSIバ
スアーキテクチャ概念は、上述のように、FCを介する
転送に備えてSCSIコマンド及びデータ交換をカプセ
ル化するように設計されたFCPによって順方向に伝送
される。以下の説明は、ファイバチャネルにおけるFC
Pプロトコル及び上述のSCSIプロトコルだけに関す
るものである。
ーム及びシーケンスは、発信側又は起動側と、応答側又
はターゲットとの間で双方向に同時に送ることが可能で
ある。エクスチェンジは、読み取りI/Oトランザクシ
ョン又は書き込みI/Oトランザクションのような、単
一I/Oトランザクション中に、発信側又は起動側と、
応答側又はターゲットとの間で交換される、全てのシー
ケンス及びシーケンス内のフレームから構成されてい
る。FCプロトコルは、インターネットプロトコル
(「IP」)、スカジー(「SCSI」)プロトコル、
ヒッピ(High Performance Parallel Interface(「H
IPPI」))及びIntelligent Peripheral Interface
(「IPI」)を含む任意の数の高位レベルデータ交換
プロトコルにしたがってデータを転送するように設計さ
れている。SCSIプロトコルのファイバチャネルに対
する標準的な適応は、本書において、今後は「FCP」
と呼ぶ。したがってFCは、SCSIバス及び他の周辺
相互接続バスに特有のマスタスレーブ型通信パラダイ
ム、並びにインターネットの実施に用いられるような、
比較的開放的な非構造化通信プロトコルをサポートする
ことが可能である。起動側及びターゲットのSCSIバ
スアーキテクチャ概念は、上述のように、FCを介する
転送に備えてSCSIコマンド及びデータ交換をカプセ
ル化するように設計されたFCPによって順方向に伝送
される。以下の説明は、ファイバチャネルにおけるFC
Pプロトコル及び上述のSCSIプロトコルだけに関す
るものである。
【0017】FCプロトコル 図2には、ファイバチャネルフレームの概念内容が図示
されている。ファイバチャネルフレーム202には、5
つの高レベルセクション204、206、208、21
0及び212が含まれている。フレーム開始区切り文字
204と呼ばれる第1の高レベルセクションには、フレ
ームの開始を表す4バイトが含まれている。フレームヘ
ッダ206と呼ばれる次に高レベルのセクションには、
アドレス指定情報、シーケンス情報、エクスチェンジ情
報及び各種制御フラグを含む24バイトが含まれてい
る。図2には、ファイバチャネルフレーム202から拡
大して示される、フレームヘッダ214のより詳細な図
が示されている。宛先ID216は、フレームの宛先ポ
ートを示す24ビットファイバチャネルアドレスであ
る。送信元ID 218は、フレームを送信したポート
を示す24ビットアドレスである。起動側ID、すなわ
ちOX_ID 220及び応答側ID 222、すなわち
IX_IDは、共にフレームが属するエクスチェンジを
識別する32ビットのエクスチェンジIDを構成してい
る。シーケンスID 224は、フレームが属するシー
ケンスを識別する。
されている。ファイバチャネルフレーム202には、5
つの高レベルセクション204、206、208、21
0及び212が含まれている。フレーム開始区切り文字
204と呼ばれる第1の高レベルセクションには、フレ
ームの開始を表す4バイトが含まれている。フレームヘ
ッダ206と呼ばれる次に高レベルのセクションには、
アドレス指定情報、シーケンス情報、エクスチェンジ情
報及び各種制御フラグを含む24バイトが含まれてい
る。図2には、ファイバチャネルフレーム202から拡
大して示される、フレームヘッダ214のより詳細な図
が示されている。宛先ID216は、フレームの宛先ポ
ートを示す24ビットファイバチャネルアドレスであ
る。送信元ID 218は、フレームを送信したポート
を示す24ビットアドレスである。起動側ID、すなわ
ちOX_ID 220及び応答側ID 222、すなわち
IX_IDは、共にフレームが属するエクスチェンジを
識別する32ビットのエクスチェンジIDを構成してい
る。シーケンスID 224は、フレームが属するシー
ケンスを識別する。
【0018】データペイロードと呼ばれる次に高レベル
のセクション208には、FCPフレーム内にパッケー
ジされた実際のデータが含まれている。データペイロー
ドは、データペイロードレイアウト226〜229の4
つの基本タイプにしたがってフォーマットすることが可
能である。FCP_CMNDと呼ばれるこれらのレイア
ウトのうちの最初のレイアウト226を用いて、SCS
Iコマンドが起動側からターゲットに送られる。FCP
_LUNフィールド228には、特定のSCSIアダプ
タ、そのSCSIアダプタに関連したターゲット装置及
び指定のターゲットSCSI装置に関連した物理的装置
に対応する論理装置番号を指定する8バイトアドレスが
含まれる。SCSIコマンドは、16バイトフィールド
FCP_CDB 230内に含まれている。図2に示す
第2のタイプのデータペイロードフォーマット227
は、FCP_XFER_RDYレイアウトと呼ばれる。
ターゲットにおいて、データの受信又は受け入れの準備
が整うと、このデータペイロードフォーマットを用い
て、ターゲットから起動側に進行コマンド(proceed co
mmand)が転送される。図2に示す第3のタイプのデー
タペイロードフォーマット228は、I/Oトランザク
ションの実行結果として、読み取り中又は書き込み中の
実際のデータを転送するために用いられるFCP_DA
TAフォーマットである。図2に示す最終データペイロ
ードレイアウト229は、FCP_RSPレイアウトと
呼ばれ、I/Oトランザクションの完了時に、ターゲッ
トから起動側にSCSI状況バイト234及び他のFC
P状況情報を送り返すために利用される。以下の議論に
おいて、FCP_CMND、FCP_XFER_RD
Y、FCP_DATA、FCP_RSPデータペイロー
ドを含むFCフレームを、それぞれFCP_CMNDフ
レーム、FCP_XFER_RDYフレーム、FCP_
DATAフレーム、FCP_RSPフレームと呼ぶこと
にする。
のセクション208には、FCPフレーム内にパッケー
ジされた実際のデータが含まれている。データペイロー
ドは、データペイロードレイアウト226〜229の4
つの基本タイプにしたがってフォーマットすることが可
能である。FCP_CMNDと呼ばれるこれらのレイア
ウトのうちの最初のレイアウト226を用いて、SCS
Iコマンドが起動側からターゲットに送られる。FCP
_LUNフィールド228には、特定のSCSIアダプ
タ、そのSCSIアダプタに関連したターゲット装置及
び指定のターゲットSCSI装置に関連した物理的装置
に対応する論理装置番号を指定する8バイトアドレスが
含まれる。SCSIコマンドは、16バイトフィールド
FCP_CDB 230内に含まれている。図2に示す
第2のタイプのデータペイロードフォーマット227
は、FCP_XFER_RDYレイアウトと呼ばれる。
ターゲットにおいて、データの受信又は受け入れの準備
が整うと、このデータペイロードフォーマットを用い
て、ターゲットから起動側に進行コマンド(proceed co
mmand)が転送される。図2に示す第3のタイプのデー
タペイロードフォーマット228は、I/Oトランザク
ションの実行結果として、読み取り中又は書き込み中の
実際のデータを転送するために用いられるFCP_DA
TAフォーマットである。図2に示す最終データペイロ
ードレイアウト229は、FCP_RSPレイアウトと
呼ばれ、I/Oトランザクションの完了時に、ターゲッ
トから起動側にSCSI状況バイト234及び他のFC
P状況情報を送り返すために利用される。以下の議論に
おいて、FCP_CMND、FCP_XFER_RD
Y、FCP_DATA、FCP_RSPデータペイロー
ドを含むFCフレームを、それぞれFCP_CMNDフ
レーム、FCP_XFER_RDYフレーム、FCP_
DATAフレーム、FCP_RSPフレームと呼ぶこと
にする。
【0019】図3A及び3Bには、それぞれ読み取りI
/O操作及び書き込みI/O操作中に、起動側ノードと
ターゲットノードの間で交換されるFCフレームの汎用
シーケンスが例示されている。両図において、FCフレ
ームは、FCフレーム302のような矩形として表示さ
れており、矢印304のような矢印は、FCフレームが
送られる方向を表している。矢印304のような、右を
指す矢印は、FCフレームが起動側ノードからターゲッ
トノードに伝送されることを表し、左を指す矢印は、タ
ーゲットノードから起動側ノードに伝送されることを表
している。両図におけるFCフレームのシーケンスは、
図の上部の最初のFCフレームから、図の下部の最終フ
レームまで時間順に進行する。
/O操作及び書き込みI/O操作中に、起動側ノードと
ターゲットノードの間で交換されるFCフレームの汎用
シーケンスが例示されている。両図において、FCフレ
ームは、FCフレーム302のような矩形として表示さ
れており、矢印304のような矢印は、FCフレームが
送られる方向を表している。矢印304のような、右を
指す矢印は、FCフレームが起動側ノードからターゲッ
トノードに伝送されることを表し、左を指す矢印は、タ
ーゲットノードから起動側ノードに伝送されることを表
している。両図におけるFCフレームのシーケンスは、
図の上部の最初のFCフレームから、図の下部の最終フ
レームまで時間順に進行する。
【0020】読み取りI/O操作は、起動側ノードが、
FCを介して、FC_CMNDフレーム302を含む最
初のFCシーケンスをターゲットノードに送ると、開始
される。ターゲットノードが、FCP_CMNDフレー
ムを受信し、読み取り処理の準備が整うと、ターゲット
ノードは、FCP_XFER_RDYフレーム306を
含む第2のFCシーケンスを起動側ノードに送り返し、
今やデータ伝送の進行が可能であることを表す。このタ
ーゲットノードによるFCP_XFER_RDYフレー
ムの送信は、読み取りI/O操作の場合、随意である。
次にターゲットノードは、物理的装置からデータを読み
取り、共にI/O読み取りトランザクションに対応する
エクスチェンジの第3のシーケンスを構成する、いくつ
かのFCP_DATAフレーム308〜311として、
FCを介して起動側ノードにそのデータを伝送する。全
てのデータの伝送が済むと、ターゲットノードが、状況
バイトをFCP_RSPフレーム312にパッケージ
し、FCを介して起動側ノードにFCP_RSPフレー
ムを送り返す。これで読み取りI/O操作が完了する。
FCを介して、FC_CMNDフレーム302を含む最
初のFCシーケンスをターゲットノードに送ると、開始
される。ターゲットノードが、FCP_CMNDフレー
ムを受信し、読み取り処理の準備が整うと、ターゲット
ノードは、FCP_XFER_RDYフレーム306を
含む第2のFCシーケンスを起動側ノードに送り返し、
今やデータ伝送の進行が可能であることを表す。このタ
ーゲットノードによるFCP_XFER_RDYフレー
ムの送信は、読み取りI/O操作の場合、随意である。
次にターゲットノードは、物理的装置からデータを読み
取り、共にI/O読み取りトランザクションに対応する
エクスチェンジの第3のシーケンスを構成する、いくつ
かのFCP_DATAフレーム308〜311として、
FCを介して起動側ノードにそのデータを伝送する。全
てのデータの伝送が済むと、ターゲットノードが、状況
バイトをFCP_RSPフレーム312にパッケージ
し、FCを介して起動側ノードにFCP_RSPフレー
ムを送り返す。これで読み取りI/O操作が完了する。
【0021】図3Bには、図3Aと同様に、起動側ノー
ドとターゲットノードの間における書き込みI/Oトラ
ンザクション中に交換されるFCフレームの一例が示さ
れている。図3Bは、書き込みI/O操作中に、FCP
_DATAフレームが、FCを介して、起動側ノードか
らターゲットノードに伝送される点と、ターゲットノー
ドから起動側ノードに送られるFCP_XFER_RD
Y FCフレーム314が、読み取りI/O操作の場合
のように随意ではなく、それどころか必須であるという
点だけが図3Aと異なっている。
ドとターゲットノードの間における書き込みI/Oトラ
ンザクション中に交換されるFCフレームの一例が示さ
れている。図3Bは、書き込みI/O操作中に、FCP
_DATAフレームが、FCを介して、起動側ノードか
らターゲットノードに伝送される点と、ターゲットノー
ドから起動側ノードに送られるFCP_XFER_RD
Y FCフレーム314が、読み取りI/O操作の場合
のように随意ではなく、それどころか必須であるという
点だけが図3Aと異なっている。
【0022】FCインターフェイスコントローラアーキ
テクチャ 図4には、典型的なFC/PCIホストアダプタに組み
込まれた典型的なFCインターフェイスコントローラ
(「FCIC」)が示されている。FC/PCIホスト
アダプタ402には、FCIC 404、トランシーバ
チップ406、FCリンク408、クロック410、バ
ックプレーンコネクタ412と、随意によりブートフラ
ッシュROM 414、局所同期スタティックランダム
アクセスメモリ(「RAM」)416及びローカルメモ
リ418が含まれる。FC/PCIホストアダプタ40
2は、バックプレーンコネクタ412と、1つ以上のプ
ロセッサが結合されているFCノード内のPCIバスと
を介して、FCノードの1つ以上のプロセッサとの通信
を行う。FCIC 404は、PCIインターフェイス
420を介してバックプレーンコネクタ412に結合さ
れる。FCICは、FCリンク408を介してFCに結
合されたトランシーバチップ406にFCICを結合す
る10ビットインターフェイス422を介して、FCと
の間でFCフレームの送受信を実施する。クロック41
0は、さまざまなFCホストアダプタコンポーネントと
のインターフェイスをとって、コンポーネントの動作を
同期させるためのタイミング信号をもたらす。FCホス
トアダプタ402は、上述の説明に基づいて、FCポー
トとして機能可能であり、バックプレーンコネクタ41
2を介して結合されたコンピュータシステムと共に、F
Cリンク408を介してFCに接続可能なFCノードを
構成する。
テクチャ 図4には、典型的なFC/PCIホストアダプタに組み
込まれた典型的なFCインターフェイスコントローラ
(「FCIC」)が示されている。FC/PCIホスト
アダプタ402には、FCIC 404、トランシーバ
チップ406、FCリンク408、クロック410、バ
ックプレーンコネクタ412と、随意によりブートフラ
ッシュROM 414、局所同期スタティックランダム
アクセスメモリ(「RAM」)416及びローカルメモ
リ418が含まれる。FC/PCIホストアダプタ40
2は、バックプレーンコネクタ412と、1つ以上のプ
ロセッサが結合されているFCノード内のPCIバスと
を介して、FCノードの1つ以上のプロセッサとの通信
を行う。FCIC 404は、PCIインターフェイス
420を介してバックプレーンコネクタ412に結合さ
れる。FCICは、FCリンク408を介してFCに結
合されたトランシーバチップ406にFCICを結合す
る10ビットインターフェイス422を介して、FCと
の間でFCフレームの送受信を実施する。クロック41
0は、さまざまなFCホストアダプタコンポーネントと
のインターフェイスをとって、コンポーネントの動作を
同期させるためのタイミング信号をもたらす。FCホス
トアダプタ402は、上述の説明に基づいて、FCポー
トとして機能可能であり、バックプレーンコネクタ41
2を介して結合されたコンピュータシステムと共に、F
Cリンク408を介してFCに接続可能なFCノードを
構成する。
【0023】図5には、典型的なFCインターフェイス
コントローラ及び、典型的なFCインターフェイスコン
トローラとホストとの間のメモリベースのデータ構造イ
ンターフェイスを説明したブロック図が示されている。
メモリベースのデータ構造502〜505は、FCIC
に対してPCIバス509を介してアクセス可能なホス
トプロセッサのメモリコンポーネントに保持されてい
る。図5では、FCIC507が、バックプレーンコネ
クタ(図4の412)及びPCIバス509と組み合わ
せて図示されている。FCICは、共にフレームマネー
ジャ511によってインターフェイスされる10ビット
インターフェイスを構成する、10ビット/8ビットデ
コーダ及び8ビット/10ビットエンコーダを介して、
トランシーバチップ(図4の406)とのインターフェ
イスをとる。フレームマネージャ511は、発信(outb
ound)FIFOマネージャ513を介して、FCICか
らトランシーバチップ(図4の406)に伝送されるF
Cフレームを受信し、また10ビット/8ビットデコー
ダインターフェイスを介して、トランシーバチップ(図
4の406)からデータビットストリームを受信する
と、受信データビットに処理を加えて、FCフレームと
し、これらのFCフレームを着信(inbound)FIFO
マネージャ514に記憶する。発信FIFOマネージャ
513及び着信FIFOマネージャ514は、どちらも
フレームをバッファリングし、それぞれ発信フレームの
パイプライン処理及び着信フレームの妥当性に関する巡
回冗長検査(「CRC」)を可能にする。
コントローラ及び、典型的なFCインターフェイスコン
トローラとホストとの間のメモリベースのデータ構造イ
ンターフェイスを説明したブロック図が示されている。
メモリベースのデータ構造502〜505は、FCIC
に対してPCIバス509を介してアクセス可能なホス
トプロセッサのメモリコンポーネントに保持されてい
る。図5では、FCIC507が、バックプレーンコネ
クタ(図4の412)及びPCIバス509と組み合わ
せて図示されている。FCICは、共にフレームマネー
ジャ511によってインターフェイスされる10ビット
インターフェイスを構成する、10ビット/8ビットデ
コーダ及び8ビット/10ビットエンコーダを介して、
トランシーバチップ(図4の406)とのインターフェ
イスをとる。フレームマネージャ511は、発信(outb
ound)FIFOマネージャ513を介して、FCICか
らトランシーバチップ(図4の406)に伝送されるF
Cフレームを受信し、また10ビット/8ビットデコー
ダインターフェイスを介して、トランシーバチップ(図
4の406)からデータビットストリームを受信する
と、受信データビットに処理を加えて、FCフレームと
し、これらのFCフレームを着信(inbound)FIFO
マネージャ514に記憶する。発信FIFOマネージャ
513及び着信FIFOマネージャ514は、どちらも
フレームをバッファリングし、それぞれ発信フレームの
パイプライン処理及び着信フレームの妥当性に関する巡
回冗長検査(「CRC」)を可能にする。
【0024】FCノードのホストプロセッサは、さまざ
まな制御レジスタ520に書き込み及び読み取りを行
い、メモリベースのデータ構造502〜505に対して
データの格納及び除去を行うことにより、FCICに対
する情報の制御及び交換を実施する。FCIC 524
〜532の内部コンポーネントは、制御レジスタ522
の読み取り及び書き込みを行い、メモリベースのデータ
構造502〜505からデータを受信し、またそれらに
データを格納し、さらに着信FIFOマネージャ513
及び発信FIFOマネージャ514を介して、フレーム
マネージャ511とFCフレームを交換する。
まな制御レジスタ520に書き込み及び読み取りを行
い、メモリベースのデータ構造502〜505に対して
データの格納及び除去を行うことにより、FCICに対
する情報の制御及び交換を実施する。FCIC 524
〜532の内部コンポーネントは、制御レジスタ522
の読み取り及び書き込みを行い、メモリベースのデータ
構造502〜505からデータを受信し、またそれらに
データを格納し、さらに着信FIFOマネージャ513
及び発信FIFOマネージャ514を介して、フレーム
マネージャ511とFCフレームを交換する。
【0025】着信メッセージ待ち行列(「IMQ」)5
02には、ホストプロセッサに着信及び発信トランザク
ション情報及び状況情報を通知する達成メッセージが含
まれる。単一フレーム待ち行列(「SFQ」)503に
は、FCIC 507がフレームマネージャ511から
受信して、SFQに配置する未知の又は非支援型の着信
FCフレームが含まれる。SCSI交換状態テーブル
(「SEST」)504は、FCICとホスト間で共用
され、それぞれ現在のSCSI交換(I/O操作)に対
応するSEST項目を含んでいる。交換要求待ち行列
(「ERQ」)505には、ホスト又は遠隔FCノード
によって開始されるI/O要求を表したI/O要求ブロ
ック(「IRB」)が含まれる。
02には、ホストプロセッサに着信及び発信トランザク
ション情報及び状況情報を通知する達成メッセージが含
まれる。単一フレーム待ち行列(「SFQ」)503に
は、FCIC 507がフレームマネージャ511から
受信して、SFQに配置する未知の又は非支援型の着信
FCフレームが含まれる。SCSI交換状態テーブル
(「SEST」)504は、FCICとホスト間で共用
され、それぞれ現在のSCSI交換(I/O操作)に対
応するSEST項目を含んでいる。交換要求待ち行列
(「ERQ」)505には、ホスト又は遠隔FCノード
によって開始されるI/O要求を表したI/O要求ブロ
ック(「IRB」)が含まれる。
【0026】達成メッセージマネージャ525は、IM
Qを管理し、着信データマネージャ524が達成メッセ
ージを配置する待ち行列項目を着信データマネージャに
もたらす。単一フレームマネージャ526は、ホストメ
モリにおけるSFQを管理し、FCサービスコンポーネ
ント527が着信フレームを格納する項目をFCサービ
スコンポーネントにもたらす。交換要求マネージャ53
1は、ERQから新しい項目を取り出して、処理のため
にSCSI交換発信マネージャ(「SEM−OUT」)
532に送る。着信データマネージャ524は、着信フ
レームプロセッサ、すなわちSCSI交換着信マネージ
ャ(「SEM−IN」)528、及びFCサービスコン
ポーネント527に新しいフレームについて知らせ、ホ
ストにおけるそれらの適正な宛先に対してフレームの経
路指定を行う。また着信データマネージャは、IMQ
502を介して、ホストに達成メッセージを送る。FC
サービスコンポーネント527は、SEM−IN 52
8が管理しないFCフレームの管理を行う。FCサービ
スコンポーネントは、SFQ 503にフレームを配置
する。SEM−IN 528は、FCシーケンスを受信
するSCSI交換の段階を管理する。SEM−INは、
SESTリンク取り出しマネージャ529を介して、S
EST項目を読み取り、着信データを適正なホストバッ
ファに送るか、又はFCシーケンスの次の段階を送る要
求をSEM−OUT 532に送る。SESTリンク取
り出しマネージャ529は、SEM−IN 528及び
SEM−OUT 532コンポーネントからの要求にし
たがって、SEST項目の読み取り及び書き込みの責任
を負う。SEM−OUT 532は、FCシーケンスの
送信を必要とするSCSI交換の段階(phase)を管理す
る。SEM−OUT 532は、SESTリンク取り出
しマネージャ529を介して、SEST項目を読み取
り、FCシーケンスの送信要求を作成し、その要求を発
信シーケンスマネージャ530に送る。発信シーケンス
マネージャ(「OSM」)530は、SEM−OUT
532からの要求を処理して、ホストからFCシーケン
スを送るようにし、ホストからFCフレームヘッダ及び
ペイロードを検索して、遠隔ノードに送る。OSMは、
FCシーケンスを2KバイトまでのサイズのFCフレー
ムに分割し、発信FIFOマネージャ514の待ち行列
にキューする。
Qを管理し、着信データマネージャ524が達成メッセ
ージを配置する待ち行列項目を着信データマネージャに
もたらす。単一フレームマネージャ526は、ホストメ
モリにおけるSFQを管理し、FCサービスコンポーネ
ント527が着信フレームを格納する項目をFCサービ
スコンポーネントにもたらす。交換要求マネージャ53
1は、ERQから新しい項目を取り出して、処理のため
にSCSI交換発信マネージャ(「SEM−OUT」)
532に送る。着信データマネージャ524は、着信フ
レームプロセッサ、すなわちSCSI交換着信マネージ
ャ(「SEM−IN」)528、及びFCサービスコン
ポーネント527に新しいフレームについて知らせ、ホ
ストにおけるそれらの適正な宛先に対してフレームの経
路指定を行う。また着信データマネージャは、IMQ
502を介して、ホストに達成メッセージを送る。FC
サービスコンポーネント527は、SEM−IN 52
8が管理しないFCフレームの管理を行う。FCサービ
スコンポーネントは、SFQ 503にフレームを配置
する。SEM−IN 528は、FCシーケンスを受信
するSCSI交換の段階を管理する。SEM−INは、
SESTリンク取り出しマネージャ529を介して、S
EST項目を読み取り、着信データを適正なホストバッ
ファに送るか、又はFCシーケンスの次の段階を送る要
求をSEM−OUT 532に送る。SESTリンク取
り出しマネージャ529は、SEM−IN 528及び
SEM−OUT 532コンポーネントからの要求にし
たがって、SEST項目の読み取り及び書き込みの責任
を負う。SEM−OUT 532は、FCシーケンスの
送信を必要とするSCSI交換の段階(phase)を管理す
る。SEM−OUT 532は、SESTリンク取り出
しマネージャ529を介して、SEST項目を読み取
り、FCシーケンスの送信要求を作成し、その要求を発
信シーケンスマネージャ530に送る。発信シーケンス
マネージャ(「OSM」)530は、SEM−OUT
532からの要求を処理して、ホストからFCシーケン
スを送るようにし、ホストからFCフレームヘッダ及び
ペイロードを検索して、遠隔ノードに送る。OSMは、
FCシーケンスを2KバイトまでのサイズのFCフレー
ムに分割し、発信FIFOマネージャ514の待ち行列
にキューする。
【0027】IMQ 502、SFQ 503及びERQ
505は、巡回待ち行列として実施される。図6に
は、FCICコントローラインターフェイスで利用され
る、基礎的な基本巡回待ち行列データ構造が示されてい
る。巡回待ち行列は、図6の上部に描かれた巡回待ち行
列602のような、論理的に巡回式に表された先入れ先
出し(「FIFO」)待ち行列である。巡回待ち行列の
各放射状部分604〜612又はスロットには、本質的
に1つ以上のデータフィールドを納めるレコードのよう
なデータ構造である、待ち行列項目のためのスペースが
含まれている。図6の巡回待ち行列602は、8つの待
ち行列スロット604〜612を備えて示されている
が、実際には数十又は数百の待ち行列項目を備えること
が可能である。待ち行列項目スロットに加えて、巡回待
ち行列は、2つのポインタ、すなわち(1)待ち行列項
目の消費者による巡回待ち行列からの除去が可能な次の
待ち行列項目を指示する消費者索引、及び(2)生産者
が待ち行列に追加される待ち行列項目を配置することが
可能な巡回待ち行列内の次のオープンスロットを指示す
る生産者索引に関連している。全ての待ち行列項目スロ
ットが生産者によるデータの格納に利用可能であり、待
ち行列項目スロットのどれにも、消費者によって消費さ
れる有効待ち行列項目が納められていない、空の巡回待
ち行列1402の場合、消費者検索、消費者インデック
ス614及び生産者索引、生産者インデックス616
は、どちらも、同じ空の待ち行列項目スロット612を
指示する。
505は、巡回待ち行列として実施される。図6に
は、FCICコントローラインターフェイスで利用され
る、基礎的な基本巡回待ち行列データ構造が示されてい
る。巡回待ち行列は、図6の上部に描かれた巡回待ち行
列602のような、論理的に巡回式に表された先入れ先
出し(「FIFO」)待ち行列である。巡回待ち行列の
各放射状部分604〜612又はスロットには、本質的
に1つ以上のデータフィールドを納めるレコードのよう
なデータ構造である、待ち行列項目のためのスペースが
含まれている。図6の巡回待ち行列602は、8つの待
ち行列スロット604〜612を備えて示されている
が、実際には数十又は数百の待ち行列項目を備えること
が可能である。待ち行列項目スロットに加えて、巡回待
ち行列は、2つのポインタ、すなわち(1)待ち行列項
目の消費者による巡回待ち行列からの除去が可能な次の
待ち行列項目を指示する消費者索引、及び(2)生産者
が待ち行列に追加される待ち行列項目を配置することが
可能な巡回待ち行列内の次のオープンスロットを指示す
る生産者索引に関連している。全ての待ち行列項目スロ
ットが生産者によるデータの格納に利用可能であり、待
ち行列項目スロットのどれにも、消費者によって消費さ
れる有効待ち行列項目が納められていない、空の巡回待
ち行列1402の場合、消費者検索、消費者インデック
ス614及び生産者索引、生産者インデックス616
は、どちらも、同じ空の待ち行列項目スロット612を
指示する。
【0028】生産者は、空の巡回待ち行列602に待ち
行列項目を追加する場合、1つの有効待ち行列項目を備
えた巡回待ち行列618が作成される。消費者索引62
0は変更されないので、結果として、消費者索引は、巡
回待ち行列618における単一有効待ち行列項目622
を指示することになる。生産者が、待ち行列項目622
の挿入を終えると、生産者索引624をインクリメント
して、生産者が第2の待ち行列項目を追加可能な、巡回
待ち行列618内に利用可能な次のスロット626を指
示する。ここで、消費者が単一待ち行列項目622を除
去すると、空の巡回待ち行列628が生じる。消費者が
利用可能な待ち行列項目622の除去を済ますと、消費
者は、消費者索引630をインクリメントする。空の巡
回待ち行列602に関する既述の説明におけるように、
単一待ち行列項目622を除去することによって生じる
空の巡回待ち行列628は、同じ空の利用可能な待ち行
列項目スロット634を指示する消費者索引630及び
生産者索引632の両方を備える。生産者が、消費者が
消費可能な速度よりも速い速度で、順次待ち行列項目を
追加すると、最終的には、完全な巡回待ち行列636が
作成される。完全な巡回待ち行列636において、生産
者索引638は、消費者索引644によって指示される
第1の利用可能な有効待ち行列項目642の直前に位置
する、巡回待ち行列内に単一の空の待ち行列項目スロッ
トを指示する。
行列項目を追加する場合、1つの有効待ち行列項目を備
えた巡回待ち行列618が作成される。消費者索引62
0は変更されないので、結果として、消費者索引は、巡
回待ち行列618における単一有効待ち行列項目622
を指示することになる。生産者が、待ち行列項目622
の挿入を終えると、生産者索引624をインクリメント
して、生産者が第2の待ち行列項目を追加可能な、巡回
待ち行列618内に利用可能な次のスロット626を指
示する。ここで、消費者が単一待ち行列項目622を除
去すると、空の巡回待ち行列628が生じる。消費者が
利用可能な待ち行列項目622の除去を済ますと、消費
者は、消費者索引630をインクリメントする。空の巡
回待ち行列602に関する既述の説明におけるように、
単一待ち行列項目622を除去することによって生じる
空の巡回待ち行列628は、同じ空の利用可能な待ち行
列項目スロット634を指示する消費者索引630及び
生産者索引632の両方を備える。生産者が、消費者が
消費可能な速度よりも速い速度で、順次待ち行列項目を
追加すると、最終的には、完全な巡回待ち行列636が
作成される。完全な巡回待ち行列636において、生産
者索引638は、消費者索引644によって指示される
第1の利用可能な有効待ち行列項目642の直前に位置
する、巡回待ち行列内に単一の空の待ち行列項目スロッ
トを指示する。
【0029】図7A〜Bは、関連データ構造と共に、S
EST項目を例示したブロック図である。図7Aに示さ
れるSEST項目は、I/O操作中に送信又は受信すべ
きデータを少数のバッファ内に納めることが可能な場合
に利用され、図7Bに示されるSEST項目は、送信又
は受信すべきデータが、4つ以上のメモリバッファを必
要とするのに十分なほど多量であるI/O操作に利用さ
れる。この2つのタイプのSEST項目及び関連データ
構造の共通態様については、図7Aに関連して解説さ
れ、参照番号が付けられる。これらの同じ参照番号が、
図7Bにおいても使用され、図7Aに関連して解説済み
の7Bの態様については、それ以上の説明を控える。
EST項目を例示したブロック図である。図7Aに示さ
れるSEST項目は、I/O操作中に送信又は受信すべ
きデータを少数のバッファ内に納めることが可能な場合
に利用され、図7Bに示されるSEST項目は、送信又
は受信すべきデータが、4つ以上のメモリバッファを必
要とするのに十分なほど多量であるI/O操作に利用さ
れる。この2つのタイプのSEST項目及び関連データ
構造の共通態様については、図7Aに関連して解説さ
れ、参照番号が付けられる。これらの同じ参照番号が、
図7Bにおいても使用され、図7Aに関連して解説済み
の7Bの態様については、それ以上の説明を控える。
【0030】SEST項目702には、読み取りI/O
操作の場合の受信データを記憶する種々のメモリバッフ
ァに対する参照、及び書き込みI/O操作の場合の送信
データを記憶する種々のメモリバッファに対する参照が
含まれている。図7Aに示されるタイプのSEST項目
は、比較的短いデータ転送処理の場合、又はホストメモ
リに対するデータの記憶に、大きいメモリバッファを割
り当てることが可能な場合に用いられる。このSEST
項目には、3つのデータバッファポインタ704〜70
6が、データバッファポインタ704〜706によって
参照される各データバッファの長さについて特徴付け
る、関連長さフィールド707〜709と共に含まれて
いる。図7Aの場合、データバッファ710は、図示の
ように、データバッファポインタ704によって参照さ
れ、データバッファの長さは、長さフィールド707に
よって示されている。したがって3つのデータバッファ
は、図7Aに示されるSESTタイプから参照すること
が可能である。ホストによって起動される書き込みI/
O操作の場合、SESTには、さらにターゲットノード
に対するデータ伝送中に、FCICによってFCP_D
ATAフレームにコピーすることが可能なFCP_DA
TAフレームヘッダを納めるため、ホストプロセッサに
よって作成されるFCヘッダバッファ714に対するポ
インタ712が含まれる。SEST項目には、さらにF
CP_RSPフレームバッファポインタ716も含ま
れ、これは、FCICが、ターゲットノードから最終F
CP_RSPフレームを受信した後、その最終FCP_
RSPフレームを格納するFCP_RSPフレームバッ
ファ718を指示する。ホストプロセッサによって起動
される読み取りI/O操作の場合、FCP_DATAフ
レームは、FCICによって送信されず、代わりにFC
ICによって受信されるので、FCP_RSPフレーム
バッファポインタ716及びFCP_RSPフレームバ
ッファ718は不要である。SEST項目には、FCI
CによるI/O操作の実行中における状態を保持し、I
/O操作のさまざまな態様を記述し、特定のI/O操作
を識別するための追加フラグ及びフィールドが含まれ
る。これらの追加フィールドの1つは、書き込み及び読
み取りI/O操作のどちらの場合にも、I/O操作中に
伝送されることが期待されるデータのバイト数を指定す
る、整数を納めたEXP_BYTE_CNTフィールド
720である。図7A〜Bに示されていない他のフィー
ルドには、書き込み処理の場合に、FCICがデータを
取得し、読み取りI/O操作の場合に、受信データを格
納することが可能な次の記憶場所を指定するデータバッ
ファへの現在のオフセット、I/O操作のRX_ID、
SEST項目が有効か否かを示す有効ビットフラグ、及
びそれ以外のフィールドが含まれる。
操作の場合の受信データを記憶する種々のメモリバッフ
ァに対する参照、及び書き込みI/O操作の場合の送信
データを記憶する種々のメモリバッファに対する参照が
含まれている。図7Aに示されるタイプのSEST項目
は、比較的短いデータ転送処理の場合、又はホストメモ
リに対するデータの記憶に、大きいメモリバッファを割
り当てることが可能な場合に用いられる。このSEST
項目には、3つのデータバッファポインタ704〜70
6が、データバッファポインタ704〜706によって
参照される各データバッファの長さについて特徴付け
る、関連長さフィールド707〜709と共に含まれて
いる。図7Aの場合、データバッファ710は、図示の
ように、データバッファポインタ704によって参照さ
れ、データバッファの長さは、長さフィールド707に
よって示されている。したがって3つのデータバッファ
は、図7Aに示されるSESTタイプから参照すること
が可能である。ホストによって起動される書き込みI/
O操作の場合、SESTには、さらにターゲットノード
に対するデータ伝送中に、FCICによってFCP_D
ATAフレームにコピーすることが可能なFCP_DA
TAフレームヘッダを納めるため、ホストプロセッサに
よって作成されるFCヘッダバッファ714に対するポ
インタ712が含まれる。SEST項目には、さらにF
CP_RSPフレームバッファポインタ716も含ま
れ、これは、FCICが、ターゲットノードから最終F
CP_RSPフレームを受信した後、その最終FCP_
RSPフレームを格納するFCP_RSPフレームバッ
ファ718を指示する。ホストプロセッサによって起動
される読み取りI/O操作の場合、FCP_DATAフ
レームは、FCICによって送信されず、代わりにFC
ICによって受信されるので、FCP_RSPフレーム
バッファポインタ716及びFCP_RSPフレームバ
ッファ718は不要である。SEST項目には、FCI
CによるI/O操作の実行中における状態を保持し、I
/O操作のさまざまな態様を記述し、特定のI/O操作
を識別するための追加フラグ及びフィールドが含まれ
る。これらの追加フィールドの1つは、書き込み及び読
み取りI/O操作のどちらの場合にも、I/O操作中に
伝送されることが期待されるデータのバイト数を指定す
る、整数を納めたEXP_BYTE_CNTフィールド
720である。図7A〜Bに示されていない他のフィー
ルドには、書き込み処理の場合に、FCICがデータを
取得し、読み取りI/O操作の場合に、受信データを格
納することが可能な次の記憶場所を指定するデータバッ
ファへの現在のオフセット、I/O操作のRX_ID、
SEST項目が有効か否かを示す有効ビットフラグ、及
びそれ以外のフィールドが含まれる。
【0031】I/O操作中に転送されるデータの保持に
4つ以上のデータバッファが必要とされる場合、図7B
に示されるタイプのSEST項目が利用される。このS
EST項目は、図7AのSEST項目とバイトによる長
さが同じであり、EXP_BYTE_CNTフィールド
720まで図7AのSEST項目と同じフィールドを含
んでいる。しかし図7Aに示すSEST項目の最後の2
4バイトに含まれた3つのバッファポインタ704〜7
06の代わりに、図7Bに示すSEST項目には、拡張
された分散/収集リストに対する単一ポインタ722が
含まれる。図7Aに示すタイプのSEST項目は、LO
Cビット721の値によって図7Aに示すSEST項目
から区別される。拡張分散/収集リストは、分散/収集
リスト項目723のような、任意の数の分散/収集リス
ト項目から構成される。これらの項目には、フィールド
724及び726を含むデータバッファポインタのよう
な、いくつかのデータバッファポインタが含まれてお
り、各データバッファポインタは、フィールド724及
び726を含むデータバッファポインタに関連した長さ
フィールド725のような、長さフィールドに関連づけ
られている。分散/収集リスト項目728の最後の2つ
のワードは、次の分散/収集リスト項目を指示するか、
あるいは分散/収集リストの終わりを示す値0を含んで
いる。
4つ以上のデータバッファが必要とされる場合、図7B
に示されるタイプのSEST項目が利用される。このS
EST項目は、図7AのSEST項目とバイトによる長
さが同じであり、EXP_BYTE_CNTフィールド
720まで図7AのSEST項目と同じフィールドを含
んでいる。しかし図7Aに示すSEST項目の最後の2
4バイトに含まれた3つのバッファポインタ704〜7
06の代わりに、図7Bに示すSEST項目には、拡張
された分散/収集リストに対する単一ポインタ722が
含まれる。図7Aに示すタイプのSEST項目は、LO
Cビット721の値によって図7Aに示すSEST項目
から区別される。拡張分散/収集リストは、分散/収集
リスト項目723のような、任意の数の分散/収集リス
ト項目から構成される。これらの項目には、フィールド
724及び726を含むデータバッファポインタのよう
な、いくつかのデータバッファポインタが含まれてお
り、各データバッファポインタは、フィールド724及
び726を含むデータバッファポインタに関連した長さ
フィールド725のような、長さフィールドに関連づけ
られている。分散/収集リスト項目728の最後の2つ
のワードは、次の分散/収集リスト項目を指示するか、
あるいは分散/収集リストの終わりを示す値0を含んで
いる。
【0032】図8には、I/O要求ブロックが示されて
いる。I/O要求ブロック(「IRB」)は、ERQ
(図5の505)の各項目毎に含まれている。IRB
802には、2つの独立したI/O要求記述子、すなわ
ちA記述子804及びB記述子806が含まれる。これ
ら2つの記述子は同じであり、以下ではI/O要求A記
述子804についてのみ記述する。I/O要求記述子に
は、I/O要求記述子によって記述されたI/O操作の
開始時に、FCICによって送られる初期FCP_CM
NDフレームとして用いられる、ホストプロセッサによ
って作成されたFCP_CMNDヘッダを納めているF
Cヘッダバッファの長さとアドレスをそれぞれ記述する
SFS長さフィールド808及びSFSアドレスフィー
ルド810が含まれる。I/O要求記述子には、さらに
I/O要求記述子(図7A〜Bの702)によって記述
されたI/O操作に関連したSEST項目の索引を納め
たSEST検索フィールド812も含まれる。このフィ
ールドには、SFAビットフラグ814がクリアされる
と、SEST索引が納められる。SFAビットフラグ8
14がセットされる場合には、I/O要求記述子によっ
て記述される処理は、単一フレームシーケンス処理であ
り、SFS長さフィールド808及びSFSアドレスフ
ィールド810には、その処理のために伝送される単一
フレームが記述される。
いる。I/O要求ブロック(「IRB」)は、ERQ
(図5の505)の各項目毎に含まれている。IRB
802には、2つの独立したI/O要求記述子、すなわ
ちA記述子804及びB記述子806が含まれる。これ
ら2つの記述子は同じであり、以下ではI/O要求A記
述子804についてのみ記述する。I/O要求記述子に
は、I/O要求記述子によって記述されたI/O操作の
開始時に、FCICによって送られる初期FCP_CM
NDフレームとして用いられる、ホストプロセッサによ
って作成されたFCP_CMNDヘッダを納めているF
Cヘッダバッファの長さとアドレスをそれぞれ記述する
SFS長さフィールド808及びSFSアドレスフィー
ルド810が含まれる。I/O要求記述子には、さらに
I/O要求記述子(図7A〜Bの702)によって記述
されたI/O操作に関連したSEST項目の索引を納め
たSEST検索フィールド812も含まれる。このフィ
ールドには、SFAビットフラグ814がクリアされる
と、SEST索引が納められる。SFAビットフラグ8
14がセットされる場合には、I/O要求記述子によっ
て記述される処理は、単一フレームシーケンス処理であ
り、SFS長さフィールド808及びSFSアドレスフ
ィールド810には、その処理のために伝送される単一
フレームが記述される。
【0033】図9には、着信FCP交換達成メッセージ
が示されている。この着信FCP交換達成メッセージ
は、I/O操作の達成時にFCICによってIMQ(図
5の502)に入れることができる達成メッセージの1
つのタイプである。この着信FCP交換達成メッセージ
には、着信FCP交換達成メッセージの場合、値0x0
cを納めた達成メッセージタイプフィールド904と、
着信FCP交換達成メッセージに対応するI/O操作を
記述するSEST項目の索引を納めたSEST検索フィ
ールド906が含まれる。着信FCP交換達成メッセー
ジには、追加フィールド及びビットフラグと、後述する
FEEビットフラグ908のためのスペースを含む、追
加フィールド及びビットフィールドのための予約スペー
スが含まれる。
が示されている。この着信FCP交換達成メッセージ
は、I/O操作の達成時にFCICによってIMQ(図
5の502)に入れることができる達成メッセージの1
つのタイプである。この着信FCP交換達成メッセージ
には、着信FCP交換達成メッセージの場合、値0x0
cを納めた達成メッセージタイプフィールド904と、
着信FCP交換達成メッセージに対応するI/O操作を
記述するSEST項目の索引を納めたSEST検索フィ
ールド906が含まれる。着信FCP交換達成メッセー
ジには、追加フィールド及びビットフラグと、後述する
FEEビットフラグ908のためのスペースを含む、追
加フィールド及びビットフィールドのための予約スペー
スが含まれる。
【0034】図10〜12は、図5〜9に示されるホス
トメモリデータ構造に関連して、ホストイニシェーテッ
ドI/O操作の実行に関連したホスト及びFCICのア
クションを記述する流れ制御図である。図10は、I/
O操作のホストによって実行される初期部分に関する流
れ制御図である。ステップ1002において、ホスト
は、未使用のSEST項目を選択し、所望のタイプのI
/O操作を反映するように種々のフィールド及びビット
フラグの初期化を行う。ステップ1004では、ホスト
が、データバッファの割り当てを行い、SEST内にそ
れらのデータバッファに対する参照を組み込む。上述の
ように、必要とされるデータバッファ数にしたがって、
2つの異なるタイプのSEST項目のいずれかを利用す
ることが可能である。書き込みI/O操作の場合、ホス
トは、さらにターゲットノードに書き込まれるデータを
データバッファに転送する。ステップ1006では、書
き込み処理の場合、ホストが、FCICによって送られ
るFCP_DATAフレームのためのFCヘッダバッフ
ァ内のFCヘッダを作成し、FCヘッダバッファに対す
る参照をSEST項目に組み込む。ステップ1008で
は、ホストが、I/O操作の終了時にターゲットノード
によってFCICに戻されるFCP_RSPのためのバ
ッファの割り当てを行い、FCP_RSPバッファに対
する参照をSEST項目に組み込む。最後に、ステップ
1010では、ホストが、I/O操作の初期ステップに
おいてFCICによってターゲットノードに送られたF
CP_CMNDフレームにFCヘッダ構造を割り当てる
ことを含む、所望のI/O操作を記述するIRBをER
Qに入れ、IRBに対する参照をSEST項目に含め、
ERQ生産者索引をインクリメントして、IRBを待ち
行列にキューしたことをFCICに対して表示する。ス
テップ1010の終わりに、所望のI/O操作を開始す
るために必要とされるホストの活動が完了する。
トメモリデータ構造に関連して、ホストイニシェーテッ
ドI/O操作の実行に関連したホスト及びFCICのア
クションを記述する流れ制御図である。図10は、I/
O操作のホストによって実行される初期部分に関する流
れ制御図である。ステップ1002において、ホスト
は、未使用のSEST項目を選択し、所望のタイプのI
/O操作を反映するように種々のフィールド及びビット
フラグの初期化を行う。ステップ1004では、ホスト
が、データバッファの割り当てを行い、SEST内にそ
れらのデータバッファに対する参照を組み込む。上述の
ように、必要とされるデータバッファ数にしたがって、
2つの異なるタイプのSEST項目のいずれかを利用す
ることが可能である。書き込みI/O操作の場合、ホス
トは、さらにターゲットノードに書き込まれるデータを
データバッファに転送する。ステップ1006では、書
き込み処理の場合、ホストが、FCICによって送られ
るFCP_DATAフレームのためのFCヘッダバッフ
ァ内のFCヘッダを作成し、FCヘッダバッファに対す
る参照をSEST項目に組み込む。ステップ1008で
は、ホストが、I/O操作の終了時にターゲットノード
によってFCICに戻されるFCP_RSPのためのバ
ッファの割り当てを行い、FCP_RSPバッファに対
する参照をSEST項目に組み込む。最後に、ステップ
1010では、ホストが、I/O操作の初期ステップに
おいてFCICによってターゲットノードに送られたF
CP_CMNDフレームにFCヘッダ構造を割り当てる
ことを含む、所望のI/O操作を記述するIRBをER
Qに入れ、IRBに対する参照をSEST項目に含め、
ERQ生産者索引をインクリメントして、IRBを待ち
行列にキューしたことをFCICに対して表示する。ス
テップ1010の終わりに、所望のI/O操作を開始す
るために必要とされるホストの活動が完了する。
【0035】図11は、I/O操作を実行するためのF
CICステップを記述する流れ制御図である。ステップ
1102では、FCICが、ホストがERQの生産者索
引をインクリメントしたことを検出する。検出には、生
産者索引のインクリメントによって生じるFCIC制御
プログラムの割り込みが必要になるか、あるいは代替通
知の仕組みが必要になる可能性がある。ステップ110
4では、FCICが、ホストによってERQにキューさ
れたIRBにアクセスする。もちろん、FCICが、単
一IRBによって表されるI/O操作に着手できるよう
になる前に、複数のIRBをERQにキューすることが
可能であり、この場合、図11に示すステップは、待ち
行列にキューされた各IRB毎に繰り返される。ステッ
プ1106では、FCICが、ホストによってあらかじ
め作成され、アクセスを受けたIRBから参照されるF
CP_CMNDフレームをターゲットノードに送る。F
CP_CMNDフレームには、FCP_CMNDフレー
ムによって開始されるI/O操作のタイプの表示が含ま
れる。次にステップ1108において、FCICが、タ
ーゲット装置から、書き込みI/O操作の場合、FCP
_XFER_RDYフレームを受信し、読み取りI/O
操作の場合、随意でFCP_XFER_RDYフレーム
を受信する。FCICは、他のI/O操作又はFC活動
のために、ステップ1106とステップ1108との間
の時間間隔に、種々の異なるステップ及び処理を導くこ
とができるという点に留意されたい。ステップ1110
において、FCICが、I/O操作のデータ転送部分に
取りかかる。書き込みI/O操作の場合、FCICは、
I/O操作に対応するSEST項目から参照されるメモ
リバッファからFCP_DATAフレームにデータを移
動し、FCP_DATAフレームをターゲットノードに
送信する。読み取りI/O操作の場合、FCICは、タ
ーゲットノードからFCP_DATAフレームを受信し
て、I/O操作に対応するSEST項目から参照される
メモリバッファに、FCP_DATAフレームに含まれ
ているデータを移動する。ステップ1112では、FC
ICが、ターゲットノードから、I/O操作に関する最
終FCフレーム転送を表すFCP_RSPフレームを受
信する。ステップ1110と1112との間の時間間隔
に、FCICによって、多種多様なステップ及び処理を
実施することが可能である。ステップ1114では、F
CICが、FCP_RSPフレームの情報を利用して、
FCP_RSPフレームに対応するI/O操作を識別
し、FCP_RSPフレームのOX_IDフィールドを
利用して、I/O操作に対応するSEST項目にアクセ
スする。ステップ1116において、FCICは、SE
ST項目に含まれているFCP_RSPバッファポイン
タを利用して、ある実施態様では、FCP_RSPフレ
ームを、代替実施態様では、FCP_RSPフレームの
データペイロード部分を、ホストメモリのFCP_RS
Pバッファに移動させる。ステップ1118では、FC
FIが、I/O操作が達成されたことをホストに知らせ
るため、着信FCP交換達成メッセージをIMQに入れ
る。最後に、ステップ1120において、FCICは、
IMQの生産者索引を更新し、ホストプロセッサに対し
て、達成メッセージがIMQに入れられたことを表示す
る。
CICステップを記述する流れ制御図である。ステップ
1102では、FCICが、ホストがERQの生産者索
引をインクリメントしたことを検出する。検出には、生
産者索引のインクリメントによって生じるFCIC制御
プログラムの割り込みが必要になるか、あるいは代替通
知の仕組みが必要になる可能性がある。ステップ110
4では、FCICが、ホストによってERQにキューさ
れたIRBにアクセスする。もちろん、FCICが、単
一IRBによって表されるI/O操作に着手できるよう
になる前に、複数のIRBをERQにキューすることが
可能であり、この場合、図11に示すステップは、待ち
行列にキューされた各IRB毎に繰り返される。ステッ
プ1106では、FCICが、ホストによってあらかじ
め作成され、アクセスを受けたIRBから参照されるF
CP_CMNDフレームをターゲットノードに送る。F
CP_CMNDフレームには、FCP_CMNDフレー
ムによって開始されるI/O操作のタイプの表示が含ま
れる。次にステップ1108において、FCICが、タ
ーゲット装置から、書き込みI/O操作の場合、FCP
_XFER_RDYフレームを受信し、読み取りI/O
操作の場合、随意でFCP_XFER_RDYフレーム
を受信する。FCICは、他のI/O操作又はFC活動
のために、ステップ1106とステップ1108との間
の時間間隔に、種々の異なるステップ及び処理を導くこ
とができるという点に留意されたい。ステップ1110
において、FCICが、I/O操作のデータ転送部分に
取りかかる。書き込みI/O操作の場合、FCICは、
I/O操作に対応するSEST項目から参照されるメモ
リバッファからFCP_DATAフレームにデータを移
動し、FCP_DATAフレームをターゲットノードに
送信する。読み取りI/O操作の場合、FCICは、タ
ーゲットノードからFCP_DATAフレームを受信し
て、I/O操作に対応するSEST項目から参照される
メモリバッファに、FCP_DATAフレームに含まれ
ているデータを移動する。ステップ1112では、FC
ICが、ターゲットノードから、I/O操作に関する最
終FCフレーム転送を表すFCP_RSPフレームを受
信する。ステップ1110と1112との間の時間間隔
に、FCICによって、多種多様なステップ及び処理を
実施することが可能である。ステップ1114では、F
CICが、FCP_RSPフレームの情報を利用して、
FCP_RSPフレームに対応するI/O操作を識別
し、FCP_RSPフレームのOX_IDフィールドを
利用して、I/O操作に対応するSEST項目にアクセ
スする。ステップ1116において、FCICは、SE
ST項目に含まれているFCP_RSPバッファポイン
タを利用して、ある実施態様では、FCP_RSPフレ
ームを、代替実施態様では、FCP_RSPフレームの
データペイロード部分を、ホストメモリのFCP_RS
Pバッファに移動させる。ステップ1118では、FC
FIが、I/O操作が達成されたことをホストに知らせ
るため、着信FCP交換達成メッセージをIMQに入れ
る。最後に、ステップ1120において、FCICは、
IMQの生産者索引を更新し、ホストプロセッサに対し
て、達成メッセージがIMQに入れられたことを表示す
る。
【0036】図12には、I/O操作を達成するため、
ホストプロセッサが着手する最終ステップが示される。
ステップ1202において、ホストプロセッサは、IM
Qに対する生産者索引がFCICによって更新されたこ
とを検出する。検出には、生産者索引をインクリメント
する結果として、ホストドライバ又はホストソフトウェ
アに対して自動的に知らされる割り込み、又は代替通知
方法が必要になる可能性がある。ステップ1204で
は、ホストプロセッサが、IMQにキューされた着信F
CP交換達成メッセージのSEST_INDEXフィー
ルドを利用して、FCP_RSPフレームがFCICに
よって記憶されるFCP_RSPバッファに、I/O操
作に対応するSEST項目を配置する。ステップ120
6では、ホストプロセッサが、記憶されているFCP_
RSPフレームの解析を行って、I/O操作の状況を判
定し、SEST項目のEXP_BYTE_CNTフィー
ルドの内容とI/O操作中に転送されるバイト数の表示
を比較し、データバッファ、FCP_RSPフレームバ
ッファ及び最初にI/O操作のために割り当てられた他
のメモリリソースの再割り当てを行い、ビットフラグを
セットして、SEST項目がもはや有効データによって
占有されていないことを表示し、消費者索引を更新し
て、IMQ及びERQ項目のデキューを示し、SEST
項目に記憶されている現在の索引及びメモリバッファへ
のオフセット又は他の記憶情報から推論され、I/O操
作の状況及びSEST項目のEXP_BYTE_CNT
フィールドとI/O操作中に転送されるバイト数の比較
から検出される、I/O操作の実行及び達成中に生じた
エラー条件を取り扱う。
ホストプロセッサが着手する最終ステップが示される。
ステップ1202において、ホストプロセッサは、IM
Qに対する生産者索引がFCICによって更新されたこ
とを検出する。検出には、生産者索引をインクリメント
する結果として、ホストドライバ又はホストソフトウェ
アに対して自動的に知らされる割り込み、又は代替通知
方法が必要になる可能性がある。ステップ1204で
は、ホストプロセッサが、IMQにキューされた着信F
CP交換達成メッセージのSEST_INDEXフィー
ルドを利用して、FCP_RSPフレームがFCICに
よって記憶されるFCP_RSPバッファに、I/O操
作に対応するSEST項目を配置する。ステップ120
6では、ホストプロセッサが、記憶されているFCP_
RSPフレームの解析を行って、I/O操作の状況を判
定し、SEST項目のEXP_BYTE_CNTフィー
ルドの内容とI/O操作中に転送されるバイト数の表示
を比較し、データバッファ、FCP_RSPフレームバ
ッファ及び最初にI/O操作のために割り当てられた他
のメモリリソースの再割り当てを行い、ビットフラグを
セットして、SEST項目がもはや有効データによって
占有されていないことを表示し、消費者索引を更新し
て、IMQ及びERQ項目のデキューを示し、SEST
項目に記憶されている現在の索引及びメモリバッファへ
のオフセット又は他の記憶情報から推論され、I/O操
作の状況及びSEST項目のEXP_BYTE_CNT
フィールドとI/O操作中に転送されるバイト数の比較
から検出される、I/O操作の実行及び達成中に生じた
エラー条件を取り扱う。
【0037】本発明 図10〜12に関連して上述したFCIC処理における
ホストは、結果として、I/O操作の終了時にFCIC
が受信するFCP_RSPフレームを記憶するホストメ
モリに、かなりのメモリリソースを割り当てることにな
り、FCP_RSPフレームをFCICからホストメモ
リに転送するために、かなりのシステムバス帯域幅を必
要とする。さらに、ホストプロセッサは、ホストメモリ
からFCP_RSPフレームを検索し、FCP_RSP
フレームの解析を行って、FCP_RSPフレームによ
って記述されたI/O操作の達成状況を判定するため
に、かなりの処理サイクル及びホストメモリバス帯域幅
を費やさなければならない。さらに、I/O操作の成り
ゆき状況を判定する一部として、ホストプロセッサは、
SEST項目を調べて、I/O操作中に転送されたデー
タ量を確認し、転送されたデータ量とI/O操作中に転
送されることが期待されたデータ量の比較を行なわなけ
ればならないが、さらにかなりのプロセッササイクルを
費やすことになる。本発明によれば、I/O操作の最終
段階における、冗長で不必要な、ホストメモリの割り当
て及び、FCICとホストプロセッサ間のデータ転送が
排除され、それによってシステムバスの帯域幅が増し、
I/O操作の達成に必要とされるホストメモリ、ホスト
メモリバス帯域幅、ホストプロセッササイクルを含むシ
ステム資源の利用が減少し、I/O操作に関連した待ち
時間が短縮される。
ホストは、結果として、I/O操作の終了時にFCIC
が受信するFCP_RSPフレームを記憶するホストメ
モリに、かなりのメモリリソースを割り当てることにな
り、FCP_RSPフレームをFCICからホストメモ
リに転送するために、かなりのシステムバス帯域幅を必
要とする。さらに、ホストプロセッサは、ホストメモリ
からFCP_RSPフレームを検索し、FCP_RSP
フレームの解析を行って、FCP_RSPフレームによ
って記述されたI/O操作の達成状況を判定するため
に、かなりの処理サイクル及びホストメモリバス帯域幅
を費やさなければならない。さらに、I/O操作の成り
ゆき状況を判定する一部として、ホストプロセッサは、
SEST項目を調べて、I/O操作中に転送されたデー
タ量を確認し、転送されたデータ量とI/O操作中に転
送されることが期待されたデータ量の比較を行なわなけ
ればならないが、さらにかなりのプロセッササイクルを
費やすことになる。本発明によれば、I/O操作の最終
段階における、冗長で不必要な、ホストメモリの割り当
て及び、FCICとホストプロセッサ間のデータ転送が
排除され、それによってシステムバスの帯域幅が増し、
I/O操作の達成に必要とされるホストメモリ、ホスト
メモリバス帯域幅、ホストプロセッササイクルを含むシ
ステム資源の利用が減少し、I/O操作に関連した待ち
時間が短縮される。
【0038】一般に、I/O操作の大部分はうまく達成
される。したがって、一般にホストプロセッサが、FC
P_RSPフレームを受信するためにメモリバッファを
割り当てる必要はない。代わりに、FCICが、I/O
操作がうまく達成されたか否かを判定することが可能で
あり、FCICがIMQ(図5の502)に入れる達成
メッセージに、I/O操作の達成状況の表示を含めるこ
とが可能である。I/O操作が失敗するという滅多に起
こらない場合では、FCICは、IMQに入れられる達
成メッセージに不首尾の達成状況を含め、さらにSFQ
(図5の503)にFCP_RSPフレームを入れる。
したがってI/O操作が不首尾に終わることによって、
ホストプロセッサが、FCP_RSPフレームに含まれ
ている情報の解析を行なわなければならなくなるこの稀
な場合に、ホストプロセッサは、SFQにおいてFCP
_RSPフレームを発見する。別様であれば、ホストプ
ロセッサはFCP_RSPフレームを必要としない。
される。したがって、一般にホストプロセッサが、FC
P_RSPフレームを受信するためにメモリバッファを
割り当てる必要はない。代わりに、FCICが、I/O
操作がうまく達成されたか否かを判定することが可能で
あり、FCICがIMQ(図5の502)に入れる達成
メッセージに、I/O操作の達成状況の表示を含めるこ
とが可能である。I/O操作が失敗するという滅多に起
こらない場合では、FCICは、IMQに入れられる達
成メッセージに不首尾の達成状況を含め、さらにSFQ
(図5の503)にFCP_RSPフレームを入れる。
したがってI/O操作が不首尾に終わることによって、
ホストプロセッサが、FCP_RSPフレームに含まれ
ている情報の解析を行なわなければならなくなるこの稀
な場合に、ホストプロセッサは、SFQにおいてFCP
_RSPフレームを発見する。別様であれば、ホストプ
ロセッサはFCP_RSPフレームを必要としない。
【0039】図13〜15には、本発明の方法の実施態
様の1つが示されている。図13〜15は図10〜12
に関連している。図10〜12において既に記述された
ステップに相当する図13〜15のステップは、図10
〜12の同じステップに用いられたのと同じ番号による
参照番号で表示され、以下では、これ以上の説明は控え
る。代わりに、I/O操作の実行中におけるホストのス
テップとFCICのステップの相違について指摘し、詳
述する。このセクションにおいて記述される本発明の実
施態様は、主として図13〜15に示すホスト及びFC
ICのI/O操作と、図10〜12に関連して前述のス
テップとの相違に関するものである。
様の1つが示されている。図13〜15は図10〜12
に関連している。図10〜12において既に記述された
ステップに相当する図13〜15のステップは、図10
〜12の同じステップに用いられたのと同じ番号による
参照番号で表示され、以下では、これ以上の説明は控え
る。代わりに、I/O操作の実行中におけるホストのス
テップとFCICのステップの相違について指摘し、詳
述する。このセクションにおいて記述される本発明の実
施態様は、主として図13〜15に示すホスト及びFC
ICのI/O操作と、図10〜12に関連して前述のス
テップとの相違に関するものである。
【0040】図13は、I/O操作を開始するため、ホ
ストによって実施されるステップに関する流れ制御図で
ある。図13は図10と類似している。しかし、図13
に部分的に示されている本発明のここで記述されている
実施態様では、ターゲットノードによるI/O操作の達
成時に戻されるFCP_RSPフレームを納めるため、
ホストプロセッサがメモリバッファの割り当てを行う、
図10のステップ1008は省略される。したがってこ
の実施態様におけるホストが、FCP_RSPメモリバ
ッファを割り当てるためにプロセッササイクルを費やす
のを避け、またメモリバッファの割り当て及び関連付け
を避けることによって、他の目的のためにホストの処理
及び記憶能力を増大させるという点を除けば、この実施
態様において、I/O操作を開始するためのホストのス
テップは、従来技術による方法及びシステムのホストの
ステップと同じである。
ストによって実施されるステップに関する流れ制御図で
ある。図13は図10と類似している。しかし、図13
に部分的に示されている本発明のここで記述されている
実施態様では、ターゲットノードによるI/O操作の達
成時に戻されるFCP_RSPフレームを納めるため、
ホストプロセッサがメモリバッファの割り当てを行う、
図10のステップ1008は省略される。したがってこ
の実施態様におけるホストが、FCP_RSPメモリバ
ッファを割り当てるためにプロセッササイクルを費やす
のを避け、またメモリバッファの割り当て及び関連付け
を避けることによって、他の目的のためにホストの処理
及び記憶能力を増大させるという点を除けば、この実施
態様において、I/O操作を開始するためのホストのス
テップは、従来技術による方法及びシステムのホストの
ステップと同じである。
【0041】図14は、ホストイニシェーテッドI/O
操作を実行するため、FCICによって実施されるステ
ップを示す流れ制御図である。図14は図11と類似し
ている。図14のステップ1102〜1114は、図1
1のステップ1102〜1114と同じである。しかし
FCICが、ステップ1112におけるI/O操作の達
成時にターゲットノードからFCP_RSPフレームを
受信し、1114におけるI/O操作に対応するSES
T項目を配置した後、ここで記述するFCICは、従来
技術による方法及びシステムにおいて実施されるステッ
プとは異なるステップ1415及び1417を実施す
る。最後に、ここで記述する実施態様の場合、FCIC
は、図11に示すステップ1118及び1120と同じ
ステップ1118及び1120を実施する。
操作を実行するため、FCICによって実施されるステ
ップを示す流れ制御図である。図14は図11と類似し
ている。図14のステップ1102〜1114は、図1
1のステップ1102〜1114と同じである。しかし
FCICが、ステップ1112におけるI/O操作の達
成時にターゲットノードからFCP_RSPフレームを
受信し、1114におけるI/O操作に対応するSES
T項目を配置した後、ここで記述するFCICは、従来
技術による方法及びシステムにおいて実施されるステッ
プとは異なるステップ1415及び1417を実施す
る。最後に、ここで記述する実施態様の場合、FCIC
は、図11に示すステップ1118及び1120と同じ
ステップ1118及び1120を実施する。
【0042】ステップ1415では、従来技術による方
法及びシステムとは異なり、FCICは、ターゲットノ
ードから戻されるFCP_RSPフレームを調べて、I
/O操作がうまく達成されたか否かを判定する。この判
定を行うための構成要素が2つ存在する。この判定の第
1の部分は、ターゲットノードから戻されるFCP_R
SPフレーム内にの情報を調べることに関する。2つの
異なるFCP_RSPフレームフォーマットが、I/O
操作の達成がうまくいったことを表すものと定義され
る。うまく達成されたことを表す第1のフォーマットで
は、FCP_CONF_REQビットを除いて、FCP
_STATUSフィールド(図2の240)の全てのビ
ットがゼロに等しい。うまく達成されたことを表す第2
のフォーマットでは、FCP_RSP_LEN_VAL
IDビット(FCP_STATUSフィールドのバイト
2、ビット0)がセットされ、すなわち1に等しく、F
CP_CONF_REQビットを除く、FCP_STA
TUSフィールドの他の全てのビットがセットされず、
すなわち0に等しく、RSP_CODEフィールド(F
CP_RSP_INFOフィールド(図2の242)の
バイト3)がゼロに等しい。上述の2つのFCP_RS
Pフレームフォーマット以外には、他のどんなフォーマ
ットを備えるFCP_RSPフォーマットも、達成が不
首尾のI/O操作に相当するものとみなされる。
法及びシステムとは異なり、FCICは、ターゲットノ
ードから戻されるFCP_RSPフレームを調べて、I
/O操作がうまく達成されたか否かを判定する。この判
定を行うための構成要素が2つ存在する。この判定の第
1の部分は、ターゲットノードから戻されるFCP_R
SPフレーム内にの情報を調べることに関する。2つの
異なるFCP_RSPフレームフォーマットが、I/O
操作の達成がうまくいったことを表すものと定義され
る。うまく達成されたことを表す第1のフォーマットで
は、FCP_CONF_REQビットを除いて、FCP
_STATUSフィールド(図2の240)の全てのビ
ットがゼロに等しい。うまく達成されたことを表す第2
のフォーマットでは、FCP_RSP_LEN_VAL
IDビット(FCP_STATUSフィールドのバイト
2、ビット0)がセットされ、すなわち1に等しく、F
CP_CONF_REQビットを除く、FCP_STA
TUSフィールドの他の全てのビットがセットされず、
すなわち0に等しく、RSP_CODEフィールド(F
CP_RSP_INFOフィールド(図2の242)の
バイト3)がゼロに等しい。上述の2つのFCP_RS
Pフレームフォーマット以外には、他のどんなフォーマ
ットを備えるFCP_RSPフォーマットも、達成が不
首尾のI/O操作に相当するものとみなされる。
【0043】I/O操作がうまく達成されたか否かを判
定する第2の構成要素には、書き込みI/O操作の場合
の、FCICが送信したデータバイト数、又は読み取り
I/O操作の場合の、FCICが受信したデータバイト
数と、I/O操作に対応するSEST項目のEXP_B
YTE_CNTフィールド(図7A〜Bの720)によ
って表示される、I/O操作のために転送されることが
期待されたバイト数との、FCICによる比較が必要と
される。I/O操作中に転送されたバイト数と転送され
ることが期待されたバイト数が等しい場合に限って、F
CICは、I/O操作がうまく達成されたとみなす。判
定の2つの構成要素は、FCICによってステップ14
15で実施される。したがって本発明のこの実施態様で
は、FCICによって、ホストプロセッサは、I/O操
作の達成状況を判定する雑用的処理から解放される。F
CICが、既にI/O操作に対応するSEST項目にア
クセス済みで、現在ターゲットノードによって戻される
FCP_RSPフレームを所有しているので、FCIC
が判定を行うほうがより経済的である。
定する第2の構成要素には、書き込みI/O操作の場合
の、FCICが送信したデータバイト数、又は読み取り
I/O操作の場合の、FCICが受信したデータバイト
数と、I/O操作に対応するSEST項目のEXP_B
YTE_CNTフィールド(図7A〜Bの720)によ
って表示される、I/O操作のために転送されることが
期待されたバイト数との、FCICによる比較が必要と
される。I/O操作中に転送されたバイト数と転送され
ることが期待されたバイト数が等しい場合に限って、F
CICは、I/O操作がうまく達成されたとみなす。判
定の2つの構成要素は、FCICによってステップ14
15で実施される。したがって本発明のこの実施態様で
は、FCICによって、ホストプロセッサは、I/O操
作の達成状況を判定する雑用的処理から解放される。F
CICが、既にI/O操作に対応するSEST項目にア
クセス済みで、現在ターゲットノードによって戻される
FCP_RSPフレームを所有しているので、FCIC
が判定を行うほうがより経済的である。
【0044】FCICは、断然最もよく起こりがちこと
であるが、I/O操作がうまく達成されたと判定する
と、図11におけるステップ1118及び1120と同
じステップ1118及び1120において、FCICは
I/O操作を完了する。別様であれば、FCICは、ス
テップ1417において、ターゲットノードから受信し
たFCP_RSPフレームをSFQ(図5の503)に
入れて、それによってI/O操作がうまく達成されなか
ったことに関連する問題を診断し、取り扱うため、その
後ホストプロセッサがFCP_RSPにアクセスして、
解析を行うことができる。次にFCICは、ステップ1
418において、図11のステップ1118のように、
着信FCP交換達成メッセージをIMQに入れる。しか
し本発明のこの実施態様の場合、FCICは、ステップ
1415の判定にしたがって、I/O操作がうまく達成
されなかった場合には、着信FCP交換達成メッセージ
のFEEビットフラグ(図9の908)をセットし、I
/O操作がうまく達成された場合には、着信FCP交換
達成メッセージのFEEビットフラグをクリアする。最
後に、ホストプロセッサにI/O操作の達成を通知する
ため、図11におけるステップ1120のように、IM
Q生産者索引が、ステップ1120において更新され
る。
であるが、I/O操作がうまく達成されたと判定する
と、図11におけるステップ1118及び1120と同
じステップ1118及び1120において、FCICは
I/O操作を完了する。別様であれば、FCICは、ス
テップ1417において、ターゲットノードから受信し
たFCP_RSPフレームをSFQ(図5の503)に
入れて、それによってI/O操作がうまく達成されなか
ったことに関連する問題を診断し、取り扱うため、その
後ホストプロセッサがFCP_RSPにアクセスして、
解析を行うことができる。次にFCICは、ステップ1
418において、図11のステップ1118のように、
着信FCP交換達成メッセージをIMQに入れる。しか
し本発明のこの実施態様の場合、FCICは、ステップ
1415の判定にしたがって、I/O操作がうまく達成
されなかった場合には、着信FCP交換達成メッセージ
のFEEビットフラグ(図9の908)をセットし、I
/O操作がうまく達成された場合には、着信FCP交換
達成メッセージのFEEビットフラグをクリアする。最
後に、ホストプロセッサにI/O操作の達成を通知する
ため、図11におけるステップ1120のように、IM
Q生産者索引が、ステップ1120において更新され
る。
【0045】図15は、I/O操作を達成するためにホ
ストプロセッサによって実施される最終ステップの流れ
制御図である。図15は、従来技術による方法及びシス
テムによって実施されるステップを示す図12と類似し
ている。従来技術による方法及びシステムと同様、ホス
トプロセッサは、ステップ1202において、FCIC
により、IMQ生産者索引の更新を検出する。しかし、
本発明のここで記述する実施態様において、ホストプロ
セッサによって実施される残りのステップは、従来技術
による方法及びシステムおいて、ホストプロセッサによ
って実施されるステップとは相違する。ステップ150
4では、ホストプロセッサは、I/O操作に対応するS
EST項目にアクセスするため、FCICによってIM
Qに入れられた着信FCP交換達成メッセージに含まれ
ているI/O操作識別情報を利用する。しかしホストプ
ロセッサは、I/O操作の終了時に、ターゲットノード
によって戻されるFCP_RSPフレームを納めたメモ
リバッファにアクセスしないという点に留意されたい。
ステップ1506において、ホストプロセッサは、着信
FCP交換達成メッセージのFEEビットフラグ(図9
の908)がセットされているか否かを判定する。FE
Eビットフラグがセットされている場合、ホストプロセ
ッサは、ステップ1508において、FCP_RSPフ
レームに含まれている情報の解析を行い、I/O操作の
実施において生じたエラーを診断するため、FCICに
よってSFQに格納されていた、ターゲットノードによ
って戻されるFCP_RSPフレームにアクセスする。
別様であれば、ホストコンピュータは、ステップ151
0において、I/O操作がうまく達成されたものと判定
する。最後に、ステップ1512において、ホストプロ
セッサは、I/O操作に割り当てられたメモリリソース
を割り当て解除し、IMQの消費者索引、おそらくはS
FQの消費者索引を更新し、I/O操作に関するSES
T項目内にビットフラグをセットして、SEST項目
に、もはや有効情報が含まれていないことを表示し、I
/O操作中に生じたエラーを取り扱う。したがって、I
/O操作がうまく達成される通常の場合、ホストプロセ
ッサは、期待されたバイト数が転送されたか否かを判定
するために、SEST項目にアクセスする必要がなくな
るので、プロセッササイクルが節約され、FCP_RS
Pフレームにメモリを割り当てる必要がなくなり、FC
P_RSPフレームにアクセスする必要がなくなる。さ
らに、ホストプロセッサがFCP_RSPフレームを必
要としない一般的な場合、ホストメモリをFCICに接
続するシステムバスには、FCICからホストメモリに
FCP_RSPフレームを転送する負担がかからない。
したがって本発明によれば、ホストメモリバスの利用度
が低下し、ホストプロセッサの利用度が低下し、ホスト
メモリの利用度が低下し、システムバスの利用度が低下
し、結果としてホストイニシェーテッドI/O操作のI
/O待ち時間が短縮される。
ストプロセッサによって実施される最終ステップの流れ
制御図である。図15は、従来技術による方法及びシス
テムによって実施されるステップを示す図12と類似し
ている。従来技術による方法及びシステムと同様、ホス
トプロセッサは、ステップ1202において、FCIC
により、IMQ生産者索引の更新を検出する。しかし、
本発明のここで記述する実施態様において、ホストプロ
セッサによって実施される残りのステップは、従来技術
による方法及びシステムおいて、ホストプロセッサによ
って実施されるステップとは相違する。ステップ150
4では、ホストプロセッサは、I/O操作に対応するS
EST項目にアクセスするため、FCICによってIM
Qに入れられた着信FCP交換達成メッセージに含まれ
ているI/O操作識別情報を利用する。しかしホストプ
ロセッサは、I/O操作の終了時に、ターゲットノード
によって戻されるFCP_RSPフレームを納めたメモ
リバッファにアクセスしないという点に留意されたい。
ステップ1506において、ホストプロセッサは、着信
FCP交換達成メッセージのFEEビットフラグ(図9
の908)がセットされているか否かを判定する。FE
Eビットフラグがセットされている場合、ホストプロセ
ッサは、ステップ1508において、FCP_RSPフ
レームに含まれている情報の解析を行い、I/O操作の
実施において生じたエラーを診断するため、FCICに
よってSFQに格納されていた、ターゲットノードによ
って戻されるFCP_RSPフレームにアクセスする。
別様であれば、ホストコンピュータは、ステップ151
0において、I/O操作がうまく達成されたものと判定
する。最後に、ステップ1512において、ホストプロ
セッサは、I/O操作に割り当てられたメモリリソース
を割り当て解除し、IMQの消費者索引、おそらくはS
FQの消費者索引を更新し、I/O操作に関するSES
T項目内にビットフラグをセットして、SEST項目
に、もはや有効情報が含まれていないことを表示し、I
/O操作中に生じたエラーを取り扱う。したがって、I
/O操作がうまく達成される通常の場合、ホストプロセ
ッサは、期待されたバイト数が転送されたか否かを判定
するために、SEST項目にアクセスする必要がなくな
るので、プロセッササイクルが節約され、FCP_RS
Pフレームにメモリを割り当てる必要がなくなり、FC
P_RSPフレームにアクセスする必要がなくなる。さ
らに、ホストプロセッサがFCP_RSPフレームを必
要としない一般的な場合、ホストメモリをFCICに接
続するシステムバスには、FCICからホストメモリに
FCP_RSPフレームを転送する負担がかからない。
したがって本発明によれば、ホストメモリバスの利用度
が低下し、ホストプロセッサの利用度が低下し、ホスト
メモリの利用度が低下し、システムバスの利用度が低下
し、結果としてホストイニシェーテッドI/O操作のI
/O待ち時間が短縮される。
【0046】図16には、FCインターフェイスコント
ローラ構成レジスタが示されている。本発明の一実施態
様では、32ビットのFCインターフェイスコントロー
ラ構成レジスタ内にのRDEビットフラグ1602がセ
ットされると、FCインターフェイスコントローラが、
本発明の方法を実施すべきであるということを表し、ク
リアされると、FCインターフェイスコントローラが、
上述の従来技術による方法を実施すべきであるというこ
とを表している。
ローラ構成レジスタが示されている。本発明の一実施態
様では、32ビットのFCインターフェイスコントロー
ラ構成レジスタ内にのRDEビットフラグ1602がセ
ットされると、FCインターフェイスコントローラが、
本発明の方法を実施すべきであるということを表し、ク
リアされると、FCインターフェイスコントローラが、
上述の従来技術による方法を実施すべきであるというこ
とを表している。
【0047】本発明が、特定の実施態様に関連して記述
されてきたが、本発明をこの実施態様に制限することを
意図しない。当該技術者には、本発明の精神内における
修正が明らかであろう。例えば、ターゲットノードによ
って戻されるFCP_RSPフレームの処理においてF
CICによって実施される追加ステップは、ほぼ無数の
異なる論理回路、ファームウェア又は論理回路とファー
ムウェアの組み合わせによって実施可能である。着信F
CP交換達成メッセージのFEEビットフラグの検査の
ような、達成されたI/O操作に関する処理時に、ホス
トプロセッサによって実施される追加ステップは、多種
多様なプログラミング方法論を利用して、多数の異なる
言語による、FCポートドライバを含む、任意数の異な
るソフトウェアプログラムによって実施可能である。従
来技術によるデータ構造内の種々のビットフラグ及びフ
ィールドを用いて、達成状況情報を転送し、インターフ
ェイスコントローラによる達成状況の自動検出を呼び出
すことが可能である。図12〜15に示すステップは、
種々の順序及び多種多様なやり方で実施可能である。上
述の実施態様はホストイニシェーテッドI/O操作に関
連しているが、本発明は、さらに所定のターゲットによ
って開始されるI/O操作、及びファイバチャネルを介
したデータ交換によって実施される他のタイプの処理に
も適用可能である。
されてきたが、本発明をこの実施態様に制限することを
意図しない。当該技術者には、本発明の精神内における
修正が明らかであろう。例えば、ターゲットノードによ
って戻されるFCP_RSPフレームの処理においてF
CICによって実施される追加ステップは、ほぼ無数の
異なる論理回路、ファームウェア又は論理回路とファー
ムウェアの組み合わせによって実施可能である。着信F
CP交換達成メッセージのFEEビットフラグの検査の
ような、達成されたI/O操作に関する処理時に、ホス
トプロセッサによって実施される追加ステップは、多種
多様なプログラミング方法論を利用して、多数の異なる
言語による、FCポートドライバを含む、任意数の異な
るソフトウェアプログラムによって実施可能である。従
来技術によるデータ構造内の種々のビットフラグ及びフ
ィールドを用いて、達成状況情報を転送し、インターフ
ェイスコントローラによる達成状況の自動検出を呼び出
すことが可能である。図12〜15に示すステップは、
種々の順序及び多種多様なやり方で実施可能である。上
述の実施態様はホストイニシェーテッドI/O操作に関
連しているが、本発明は、さらに所定のターゲットによ
って開始されるI/O操作、及びファイバチャネルを介
したデータ交換によって実施される他のタイプの処理に
も適用可能である。
【0048】解説を目的とした以上の説明では、本発明
の完全な理解が得られるように、特定の用語が用いられ
た。しかし当該技術者には明らかなように、本発明の実
施には、特定の細部は必要とされない。他の場合には、
基本となる本発明からの不必要な逸脱を回避するため、
周知の回路及び装置が、ブロック図の形式で示されてい
る。したがって本発明の特定の実施態様に関する以上の
説明は、例証及び解説のために示されたものであり、余
すところなく説明しようとか、あるいは本発明を開示の
形態にそっくりそのまま制限しようとするものではな
く、以上の教示に鑑みて、多くの修正及び変更が可能で
あることは明白である。実施態様の選択及び解説は、本
発明の原理及びその実際の応用例を最も分かりやすく説
明し、それによって当該技術者が、企図する特定の用途
に合うようにさまざまな修正を施して、本発明及びさま
ざまな実施態様を利用することができるように行われ
た。本発明の範囲は、付属の特許請求の範囲及びその同
等物によって規定されるものとする。
の完全な理解が得られるように、特定の用語が用いられ
た。しかし当該技術者には明らかなように、本発明の実
施には、特定の細部は必要とされない。他の場合には、
基本となる本発明からの不必要な逸脱を回避するため、
周知の回路及び装置が、ブロック図の形式で示されてい
る。したがって本発明の特定の実施態様に関する以上の
説明は、例証及び解説のために示されたものであり、余
すところなく説明しようとか、あるいは本発明を開示の
形態にそっくりそのまま制限しようとするものではな
く、以上の教示に鑑みて、多くの修正及び変更が可能で
あることは明白である。実施態様の選択及び解説は、本
発明の原理及びその実際の応用例を最も分かりやすく説
明し、それによって当該技術者が、企図する特定の用途
に合うようにさまざまな修正を施して、本発明及びさま
ざまな実施態様を利用することができるように行われ
た。本発明の範囲は、付属の特許請求の範囲及びその同
等物によって規定されるものとする。
【0049】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。 1.インターフェイスコントローラ、ホストプロセッ
サ、ホストメモリを備えるファイバチャネルノード内で
遠隔トランザクションの実行を達成するための方法であ
って、前記インターフェイスコントローラによって遠隔
ノードからレスポンスフレームを受信するステップ(1
112)と、前記インターフェイスコントローラによっ
て前記レスポンスフレームの解析を行い、前記遠隔トラ
ンザクションに関する達成状況を判定するステップと、
前記インターフェイスコントローラによって、前記遠隔
トランザクション中に転送されたバイト数の表示と、前
記遠隔トランザクション中に転送されることが期待され
たバイト数の表示とを比較するステップ(1415)
と、前記達成状況及び、前記遠隔トランザクション中に
転送されたバイト数の表示と前記遠隔トランザクション
中に転送されることが期待されたバイト数の表示の比較
結果によって、前記遠隔トランザクションがうまく達成
されたことが示されると、前記遠隔トランザクションが
うまく達成されたことの表示を含む達成メッセージを前
記ホストメモリ内のメッセージ待ち行列にキューするス
テップ(1418)と、前記達成状況及び、前記遠隔ト
ランザクション中に転送されたバイト数の表示と前記遠
隔トランザクション中に転送されることが期待されたバ
イト数の表示の比較結果によって、前記遠隔トランザク
ションがうまく達成されなかったことが示されると、前
記遠隔トランザクションがうまく達成されなかったこと
の表示を含む達成メッセージを前記ホストメモリ内の前
記メッセージ待ち行列にキューし(1417)、前記レ
スポンスフレームからのデータを前記ホストメモリに転
送するステップとからなる方法。
の組み合わせからなる例示的な実施態様を示す。 1.インターフェイスコントローラ、ホストプロセッ
サ、ホストメモリを備えるファイバチャネルノード内で
遠隔トランザクションの実行を達成するための方法であ
って、前記インターフェイスコントローラによって遠隔
ノードからレスポンスフレームを受信するステップ(1
112)と、前記インターフェイスコントローラによっ
て前記レスポンスフレームの解析を行い、前記遠隔トラ
ンザクションに関する達成状況を判定するステップと、
前記インターフェイスコントローラによって、前記遠隔
トランザクション中に転送されたバイト数の表示と、前
記遠隔トランザクション中に転送されることが期待され
たバイト数の表示とを比較するステップ(1415)
と、前記達成状況及び、前記遠隔トランザクション中に
転送されたバイト数の表示と前記遠隔トランザクション
中に転送されることが期待されたバイト数の表示の比較
結果によって、前記遠隔トランザクションがうまく達成
されたことが示されると、前記遠隔トランザクションが
うまく達成されたことの表示を含む達成メッセージを前
記ホストメモリ内のメッセージ待ち行列にキューするス
テップ(1418)と、前記達成状況及び、前記遠隔ト
ランザクション中に転送されたバイト数の表示と前記遠
隔トランザクション中に転送されることが期待されたバ
イト数の表示の比較結果によって、前記遠隔トランザク
ションがうまく達成されなかったことが示されると、前
記遠隔トランザクションがうまく達成されなかったこと
の表示を含む達成メッセージを前記ホストメモリ内の前
記メッセージ待ち行列にキューし(1417)、前記レ
スポンスフレームからのデータを前記ホストメモリに転
送するステップとからなる方法。
【0050】2.前記遠隔トランザクションが前記遠隔
ノードを対象とするI/O操作である、1項に記載の方
法。
ノードを対象とするI/O操作である、1項に記載の方
法。
【0051】3.I/O操作がうまく達成されたことを
表示するため、2つの異なるレスポンスフレームフォー
マットが定義されることと、この2つの異なるレスポン
スフレームフォーマットに、FCP_CONF_REQ
ビットを除いて、FCP_STATUSフィールドの全
てのビットがクリアされる第1のレスポンスフレームフ
ォーマットと、FCP_STATUSフィールドのFC
P_RSP_LEN_VALIDビットがセットされ、
FCP_CONF_REQビットを除く、FCP_ST
ATUSフィールドの他の全てのビットがクリアされ、
RSP_CODEフィールドがクリアされる第2のレス
ポンスフレームフォーマットが含まれる、2項に記載の
方法。
表示するため、2つの異なるレスポンスフレームフォー
マットが定義されることと、この2つの異なるレスポン
スフレームフォーマットに、FCP_CONF_REQ
ビットを除いて、FCP_STATUSフィールドの全
てのビットがクリアされる第1のレスポンスフレームフ
ォーマットと、FCP_STATUSフィールドのFC
P_RSP_LEN_VALIDビットがセットされ、
FCP_CONF_REQビットを除く、FCP_ST
ATUSフィールドの他の全てのビットがクリアされ、
RSP_CODEフィールドがクリアされる第2のレス
ポンスフレームフォーマットが含まれる、2項に記載の
方法。
【0052】4.前記ホストメモリ内の前記メッセージ
待ち行列に達成メッセージをキューするステップ(14
18)が、前記ホストプロセッサによる前記達成メッセ
ージの処理を呼び出す割り込みを発生し、前記ホストプ
ロセッサによる前記達成メッセージの処理に、前記メッ
セージ待ち行列から前記達成メッセージをデキューし、
I/O操作に割り当てられたホストメモリリソースを割
り当て解除することが含まれる、3項に記載の方法。
待ち行列に達成メッセージをキューするステップ(14
18)が、前記ホストプロセッサによる前記達成メッセ
ージの処理を呼び出す割り込みを発生し、前記ホストプ
ロセッサによる前記達成メッセージの処理に、前記メッ
セージ待ち行列から前記達成メッセージをデキューし、
I/O操作に割り当てられたホストメモリリソースを割
り当て解除することが含まれる、3項に記載の方法。
【0053】5.前記レスポンスフレームからのデータ
を前記ホストメモリに転送するステップが、さらに前記
インターフェイスコントローラによって処理できない着
信フレームが入れられる前記ホストメモリ内の待ち行列
に、前記レスポンスフレームからの前記データをキュー
するステップ(1418)を含む、4項に記載の方法。
を前記ホストメモリに転送するステップが、さらに前記
インターフェイスコントローラによって処理できない着
信フレームが入れられる前記ホストメモリ内の待ち行列
に、前記レスポンスフレームからの前記データをキュー
するステップ(1418)を含む、4項に記載の方法。
【0054】6.遠隔ノードとの遠隔トランザクション
の実行を効率よく達成するファイバチャネルノードであ
って、前記遠隔トランザクションを開始するホストプロ
セッサと、ホストメモリと、このホストメモリには、前
記ホストプロセッサが、開始された前記遠隔トランザク
ションに関連する情報を記憶することと、インターフェ
イスコントローラと、このインターフェイスコントロー
ラが、前記ホストメモリの開始された前記遠隔トランザ
クションに関連する前記情報にアクセスし(110
4)、前記遠隔ノードとファイバチャネルフレームの交
換を実施して、前記遠隔トランザクションを実行し(1
106、1108、1110)、前記遠隔ノードから最
終レスポンスフレームを受信し(1112)、前記レス
ポンスフレームに含まれた情報の解析を行い、前記遠隔
トランザクションがうまく達成されたか否かを判定し
(1415)、前記遠隔トランザクションがうまく達成
されたか否かの表示を含む達成メッセージを前記ホスト
メモリ内のメッセージ待ち行列にキューする(141
8)こととからなるファイバチャネルノード。
の実行を効率よく達成するファイバチャネルノードであ
って、前記遠隔トランザクションを開始するホストプロ
セッサと、ホストメモリと、このホストメモリには、前
記ホストプロセッサが、開始された前記遠隔トランザク
ションに関連する情報を記憶することと、インターフェ
イスコントローラと、このインターフェイスコントロー
ラが、前記ホストメモリの開始された前記遠隔トランザ
クションに関連する前記情報にアクセスし(110
4)、前記遠隔ノードとファイバチャネルフレームの交
換を実施して、前記遠隔トランザクションを実行し(1
106、1108、1110)、前記遠隔ノードから最
終レスポンスフレームを受信し(1112)、前記レス
ポンスフレームに含まれた情報の解析を行い、前記遠隔
トランザクションがうまく達成されたか否かを判定し
(1415)、前記遠隔トランザクションがうまく達成
されたか否かの表示を含む達成メッセージを前記ホスト
メモリ内のメッセージ待ち行列にキューする(141
8)こととからなるファイバチャネルノード。
【0055】7.前記遠隔トランザクションがホストプ
ロセッサによって開始されるI/O操作である、6項に
記載のファイバチャネルノード。
ロセッサによって開始されるI/O操作である、6項に
記載のファイバチャネルノード。
【0056】8.前記ホストプロセッサが、前記I/O
操作中に転送されることが期待されたバイト数の表示を
前記ホストメモリに記憶していることと、前記インター
フェイスコントローラが、前記レスポンスフレームに含
まれる情報の解析だけでなく、前記I/O操作中に転送
されることが期待されたバイト数の前記表示にアクセス
して、このアクセスした表示と前記I/O操作中に転送
されたバイト数の内部表示の比較を行い、前記I/O操
作がうまく達成されたか否かを判定する、7項に記載の
ファイバチャネルノード。
操作中に転送されることが期待されたバイト数の表示を
前記ホストメモリに記憶していることと、前記インター
フェイスコントローラが、前記レスポンスフレームに含
まれる情報の解析だけでなく、前記I/O操作中に転送
されることが期待されたバイト数の前記表示にアクセス
して、このアクセスした表示と前記I/O操作中に転送
されたバイト数の内部表示の比較を行い、前記I/O操
作がうまく達成されたか否かを判定する、7項に記載の
ファイバチャネルノード。
【0057】9.前記インターフェイスコントローラ
が、前記I/O操作がうまく達成されなかったと判定す
ると、前記インターフェイスコントローラが、前記I/
O操作がうまく達成されなかったことの表示を含む達成
メッセージを前記ホストメモリのメッセージ待ち行列に
キューする(1418)だけでなく、前記ホストメモリ
に前記最終レスポンスフレームからのデータを転送する
(1417)、8項に記載のファイバチャネルノード。
が、前記I/O操作がうまく達成されなかったと判定す
ると、前記インターフェイスコントローラが、前記I/
O操作がうまく達成されなかったことの表示を含む達成
メッセージを前記ホストメモリのメッセージ待ち行列に
キューする(1418)だけでなく、前記ホストメモリ
に前記最終レスポンスフレームからのデータを転送する
(1417)、8項に記載のファイバチャネルノード。
【0058】10.前記レスポンスフレームからのデー
タを前記ホストメモリに転送するステップ(1417)
が、さらに前記インターフェイスコントローラによって
処理できない着信フレームが入れられる前記ホストメモ
リ内の待ち行列に、前記レスポンスフレームからの前記
データを入れるステップを含み、I/O操作がうまく達
成されたことを表示するため、2つの異なるレスポンス
フレームフォーマットが定義されることと、この2つの
異なるレスポンスフレームフォーマットが、FCP_C
ONF_REQビットを除いて、FCP_STATUS
フィールドの全てのビットがクリアされる第1のレスポ
ンスフレームフォーマットと、FCP_STATUSフ
ィールドのFCP_RSP_LEN_VALIDビット
がセットされ、FCP_CONF_REQビットを除
く、FCP_STATUSフィールドの他の全てのビッ
トがクリアされ、RSP_CODEフィールドがクリア
される第2のレスポンスフレームフォーマットを含むこ
とと、前記ホストメモリ内の前記メッセージ待ち行列に
前記達成メッセージをキューするステップ(1418)
が、前記ホストプロセッサによる前記達成メッセージの
処理を呼び出す割り込みを発生することと、前記ホスト
プロセッサによる前記達成メッセージを処理するステッ
プが、前記メッセージ待ち行列から前記達成メッセージ
をデキューし、I/O操作に割り当てられたホストメモ
リリソースを割り当て解除することを含む、9項に記載
のファイバチャネルノード。
タを前記ホストメモリに転送するステップ(1417)
が、さらに前記インターフェイスコントローラによって
処理できない着信フレームが入れられる前記ホストメモ
リ内の待ち行列に、前記レスポンスフレームからの前記
データを入れるステップを含み、I/O操作がうまく達
成されたことを表示するため、2つの異なるレスポンス
フレームフォーマットが定義されることと、この2つの
異なるレスポンスフレームフォーマットが、FCP_C
ONF_REQビットを除いて、FCP_STATUS
フィールドの全てのビットがクリアされる第1のレスポ
ンスフレームフォーマットと、FCP_STATUSフ
ィールドのFCP_RSP_LEN_VALIDビット
がセットされ、FCP_CONF_REQビットを除
く、FCP_STATUSフィールドの他の全てのビッ
トがクリアされ、RSP_CODEフィールドがクリア
される第2のレスポンスフレームフォーマットを含むこ
とと、前記ホストメモリ内の前記メッセージ待ち行列に
前記達成メッセージをキューするステップ(1418)
が、前記ホストプロセッサによる前記達成メッセージの
処理を呼び出す割り込みを発生することと、前記ホスト
プロセッサによる前記達成メッセージを処理するステッ
プが、前記メッセージ待ち行列から前記達成メッセージ
をデキューし、I/O操作に割り当てられたホストメモ
リリソースを割り当て解除することを含む、9項に記載
のファイバチャネルノード。
【0059】
【発明の効果】本発明は、ホストイニシェーテッドFC
I/O操作をより効率的に達成するための方法及びシ
ステムに関する。FCノード内のホストメモリにFCポ
ートからFCPレスポンスフレームを戻すのではなく、
受信されたFCPレスポンスフレームの内容から、FC
ポートが、I/O操作が上手く達成されたかどうかを判
定する(1415)。I/O操作が上手く達成される通
常の場合には、上手く達成されたことが、ホストメモリ
内の待ち行列にキューされる(1418)達成メッセー
ジ内の単一ビットフラッグを介して、FCノードのホス
トプロセッサに表示される。I/O操作が上手く達成さ
れないまれな場合には、FCポートは、ターゲットノー
ドから受信されたFCレスポンスフレームをホストメモ
リ内の待ち行列にキューし(1417)、達成メッセー
ジをホストメモリ内の待ち行列に、エラーが発生したこ
とを示す単一のビットフラッグセットとともにキューす
る(1418)。
I/O操作をより効率的に達成するための方法及びシ
ステムに関する。FCノード内のホストメモリにFCポ
ートからFCPレスポンスフレームを戻すのではなく、
受信されたFCPレスポンスフレームの内容から、FC
ポートが、I/O操作が上手く達成されたかどうかを判
定する(1415)。I/O操作が上手く達成される通
常の場合には、上手く達成されたことが、ホストメモリ
内の待ち行列にキューされる(1418)達成メッセー
ジ内の単一ビットフラッグを介して、FCノードのホス
トプロセッサに表示される。I/O操作が上手く達成さ
れないまれな場合には、FCポートは、ターゲットノー
ドから受信されたFCレスポンスフレームをホストメモ
リ内の待ち行列にキューし(1417)、達成メッセー
ジをホストメモリ内の待ち行列に、エラーが発生したこ
とを示す単一のビットフラッグセットとともにキューす
る(1418)。
【図1】FCネットワークを介する転送のための、デー
タが時間的に編成される単純な階層構造を例示した図で
ある。
タが時間的に編成される単純な階層構造を例示した図で
ある。
【図2】FCフレームの概念内容を例示した図である。
【図3】図3A及び3Bは、それぞれ読み取りI/O操
作中及び書き込みI/O操作中に、起動側ノードとター
ゲットノードの間で交換されるFCフレームの一般的な
シーケンスを例示した図である。
作中及び書き込みI/O操作中に、起動側ノードとター
ゲットノードの間で交換されるFCフレームの一般的な
シーケンスを例示した図である。
【図4】典型的なFC/PCIホストアダプタに組み込
まれた典型的なFCインターフェイスコントローラを示
す図である。
まれた典型的なFCインターフェイスコントローラを示
す図である。
【図5】典型的なFCインターフェイスコントローラ及
び、典型的なFCインターフェイスコントローラとホス
トの間のメモリベースのデータ構造インターフェイスを
示すブロック図である。
び、典型的なFCインターフェイスコントローラとホス
トの間のメモリベースのデータ構造インターフェイスを
示すブロック図である。
【図6】FCノード内のホストプロセッサ/インターフ
ェイスコントローラのインターフェイスで利用される、
基礎的な基本巡回待ち行列データ構造を示す図である。
ェイスコントローラのインターフェイスで利用される、
基礎的な基本巡回待ち行列データ構造を示す図である。
【図7】図7A及び7Bは、関連データ構造と共に、S
EST項目を例示したブロック図である。
EST項目を例示したブロック図である。
【図8】I/O要求ブロックを例示した図である。
【図9】着信FCP交換達成メッセージを例示した図で
ある。
ある。
【図10】I/O操作のホストによって実行される初期
部分に関する流れ制御図である。
部分に関する流れ制御図である。
【図11】I/O操作を実行するための、FCインター
フェイスコントローラによって実施されるステップを表
した流れ制御図である。
フェイスコントローラによって実施されるステップを表
した流れ制御図である。
【図12】I/O操作の達成するためにホストプロセッ
サによって着手される最終ステップを例示した図であ
る。
サによって着手される最終ステップを例示した図であ
る。
【図13】本発明の実施態様の1つにおいて、I/O操
作を開始するためにホストプロセッサによって実施され
るステップに関する流れ制御図である。
作を開始するためにホストプロセッサによって実施され
るステップに関する流れ制御図である。
【図14】本発明の実施態様の1つにおいて、ホスト操
作によって開始されるI/O操作を実行するためにFC
インターフェイスコントローラによって実施されるステ
ップを示す流れ制御図である。
作によって開始されるI/O操作を実行するためにFC
インターフェイスコントローラによって実施されるステ
ップを示す流れ制御図である。
【図15】本発明の実施態様の1つにおいて、I/O操
作を達成するためにホストプロセッサによって実施され
る最終ステップに関する流れ制御図である。
作を達成するためにホストプロセッサによって実施され
る最終ステップに関する流れ制御図である。
【図16】FCインターフェイスコントローラ構成レジ
スタを示す図である。
スタを示す図である。
502 着信メッセージ待ち行列 503 単一フレーム待ち行列 504 SCSI変換状態テーブル 505 変換要求待ち行列 509 PCIローカルバス 511 フレームマネージャ 513 着信FIFOマネージャ 519 発信シーケンスマネージャ 520 スレーブレジスタ 524 着信データマネージャ 525 達成メッセージマネージャ 526 単一フレームマネージャ 527 ファイバチャネルサービス 528 SCSI交換着信マネージャ 529 SESTリンク取り出しマネージャ 530 発信シーケンスマネージャ 531 交換要求マネージャ 532 SCSI交換発信マネージャ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 399117121 395 Page Mill Road P alo Alto,California U.S.A. (72)発明者 マシュー・ポール・ウェイクレイ アメリカ合衆国カリフォルニア州956747, ローズビル,エバーグリーン・ドライブ・ 1710
Claims (1)
- 【請求項1】インターフェイスコントローラ、ホストプ
ロセッサ、ホストメモリを備えるファイバチャネルノー
ド内で遠隔トランザクションの実行を達成するための方
法であって、 前記インターフェイスコントローラによって遠隔ノード
からレスポンスフレームを受信するステップ(111
2)と、 前記インターフェイスコントローラによって前記レスポ
ンスフレームの解析を行い、前記遠隔トランザクション
に関する達成状況を判定するステップと、 前記インターフェイスコントローラによって、前記遠隔
トランザクション中に転送されたバイト数の表示と、前
記遠隔トランザクション中に転送されることが期待され
たバイト数の表示とを比較するステップ(1415)
と、 前記達成状況及び、前記遠隔トランザクション中に転送
されたバイト数の表示と前記遠隔トランザクション中に
転送されることが期待されたバイト数の表示の比較結果
によって、前記遠隔トランザクションがうまく達成され
たことが示されると、前記遠隔トランザクションがうま
く達成されたことの表示を含む達成メッセージを前記ホ
ストメモリ内のメッセージ待ち行列にキューするステッ
プ(1418)と、 前記達成状況及び、前記遠隔トランザクション中に転送
されたバイト数の表示と前記遠隔トランザクション中に
転送されることが期待されたバイト数の表示の比較結果
によって、前記遠隔トランザクションがうまく達成され
なかったことが示されると、前記遠隔トランザクション
がうまく達成されなかったことの表示を含む達成メッセ
ージを前記ホストメモリ内の前記メッセージ待ち行列に
キューし(1417)、前記レスポンスフレームからの
データを前記ホストメモリに転送するステップとからな
る方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/475,907 US6578096B1 (en) | 1999-12-30 | 1999-12-30 | Method and system for efficient I/O operation completion in a fibre channel node |
US09/475907 | 1999-12-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001237868A true JP2001237868A (ja) | 2001-08-31 |
Family
ID=23889666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001000234A Pending JP2001237868A (ja) | 1999-12-30 | 2001-01-04 | ファイバチャネルノードにおいて効率の良いi/o操作を達成するための方法及びシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US6578096B1 (ja) |
JP (1) | JP2001237868A (ja) |
DE (1) | DE10065691A1 (ja) |
GB (1) | GB2363551B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973524B1 (en) * | 2000-12-14 | 2005-12-06 | Lsi Logic Corporation | Interface for bus independent core |
US6732198B1 (en) * | 2001-07-20 | 2004-05-04 | Lsi Logic Corporation | Methods and apparatus for saving and restoring scatter/gather list processing context in intelligent controllers |
US6941408B2 (en) * | 2002-09-30 | 2005-09-06 | Lsi Logic Corporation | Bus interface system with two separate data transfer interfaces |
US7007122B2 (en) * | 2002-11-27 | 2006-02-28 | Lsi Logic Corporation | Method for pre-emptive arbitration |
US7171531B2 (en) * | 2004-01-14 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Process job flow analysis |
US8799538B2 (en) * | 2008-04-17 | 2014-08-05 | 2236008 Ontario Inc. | System for managing a cost-constrained resource |
US10623341B2 (en) * | 2015-09-30 | 2020-04-14 | International Business Machines Corporation | Configuration of a set of queues for multi-protocol operations in a target driver |
CN109643391B (zh) * | 2018-01-15 | 2023-06-13 | 深圳鲲云信息科技有限公司 | 流水处理接口结构、电子器件及电子装置 |
US12086431B1 (en) | 2018-05-21 | 2024-09-10 | Pure Storage, Inc. | Selective communication protocol layering for synchronous replication |
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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5260933A (en) * | 1992-05-15 | 1993-11-09 | International Business Machines Corporation | Acknowledgement protocol for serial data network with out-of-order delivery |
US5727207A (en) * | 1994-09-07 | 1998-03-10 | Adaptec, Inc. | Method and apparatus for automatically loading configuration data on reset into a host adapter integrated circuit |
US5598541A (en) * | 1994-10-24 | 1997-01-28 | Lsi Logic Corporation | Node loop port communication interface super core for fibre channel |
US5826068A (en) * | 1994-11-09 | 1998-10-20 | Adaptec, Inc. | Integrated circuit with a serial port having only one pin |
US5894481A (en) * | 1996-09-11 | 1999-04-13 | Mcdata Corporation | Fiber channel switch employing distributed queuing |
US5930483A (en) * | 1996-12-09 | 1999-07-27 | International Business Machines Corporation | Method and apparatus for communications control on a small computer system interface |
US6298403B1 (en) * | 1998-06-02 | 2001-10-02 | Adaptec, Inc. | Host adapter having a snapshot mechanism |
US6070200A (en) * | 1998-06-02 | 2000-05-30 | Adaptec, Inc. | Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus |
-
1999
- 1999-12-30 US US09/475,907 patent/US6578096B1/en not_active Expired - Lifetime
-
2000
- 2000-12-21 GB GB0031365A patent/GB2363551B/en not_active Expired - Fee Related
- 2000-12-29 DE DE10065691A patent/DE10065691A1/de not_active Withdrawn
-
2001
- 2001-01-04 JP JP2001000234A patent/JP2001237868A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2363551B (en) | 2003-11-26 |
GB0031365D0 (en) | 2001-02-07 |
DE10065691A1 (de) | 2001-07-12 |
GB2363551A (en) | 2001-12-19 |
US6578096B1 (en) | 2003-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6065087A (en) | Architecture for a high-performance network/bus multiplexer interconnecting a network and a bus that transport data using multiple protocols | |
US6470026B1 (en) | Fibre channel loop map initialization protocol implemented in hardware | |
KR100437146B1 (ko) | 지능망 인터페이스 장치 및 통신 가속 시스템 | |
US6397316B2 (en) | System for reducing bus overhead for communication with a network interface | |
JP5220974B2 (ja) | ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法 | |
US6493750B1 (en) | Command forwarding: a method for optimizing I/O latency and throughput in fibre channel client/server/target mass storage architectures | |
US6314477B1 (en) | Performance of fibre channel protocol sequence reassembly using expected frame information and buffer list calculations | |
US5918028A (en) | Apparatus and method for smart host bus adapter for personal computer cards | |
US5664145A (en) | Apparatus and method for transferring data in a data storage subsystems wherein a multi-sector data transfer order is executed while a subsequent order is issued | |
US5630059A (en) | Expedited message transfer in a multi-nodal data processing system | |
US20050235072A1 (en) | Data storage controller | |
EP1934760B1 (en) | Parallel processing of frame based data transfers | |
KR980013142A (ko) | 비동기 전송 방식 통신 네트워크, 시스템 처리 성능 및 메모리 이용 증진 방법 | |
US6978457B1 (en) | Method and system increasing performance substituting finite state machine control with hardware-implemented data structure manipulation | |
US5555390A (en) | Data storage method and subsystem including a device controller for respecifying an amended start address | |
US6856619B1 (en) | Computer network controller | |
JP2001237868A (ja) | ファイバチャネルノードにおいて効率の良いi/o操作を達成するための方法及びシステム | |
US6463498B1 (en) | Transmission of FCP response in the same loop tenancy as the FCP data with minimization of inter-sequence gap | |
US5613141A (en) | Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices | |
JP2001249888A (ja) | ファイバチャンネルノードにおける効果的なi/o操作完了のための方法及びシステム | |
US6108694A (en) | Memory disk sharing method and its implementing apparatus | |
WO1992015058A1 (en) | Data storage subsystem | |
WO2024103924A1 (zh) | 一种数据读写方法及相关装置 | |
WO1992015054A1 (en) | Data transfer between a data storage subsystem and host system | |
CN117908796A (zh) | Fc多协议数据存储和传输系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20070319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070320 |