JP4173636B2 - 制御とタイプヘッダのフィールドに基づいてファイバーチャネルフレームをマップする方法 - Google Patents
制御とタイプヘッダのフィールドに基づいてファイバーチャネルフレームをマップする方法 Download PDFInfo
- Publication number
- JP4173636B2 JP4173636B2 JP2000547550A JP2000547550A JP4173636B2 JP 4173636 B2 JP4173636 B2 JP 4173636B2 JP 2000547550 A JP2000547550 A JP 2000547550A JP 2000547550 A JP2000547550 A JP 2000547550A JP 4173636 B2 JP4173636 B2 JP 4173636B2
- Authority
- JP
- Japan
- Prior art keywords
- frame
- buffer
- host computer
- code
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明はコンピュータネットワークに関し、さらに詳しくは制御とタイプヘッダのフィールド(control and type header field)に基づいてフレームをマップすることによって、フレームのシーケンスを処理し伝送することに関する。
【0002】
【従来の技術】
近年、コンピュータと周辺装置の数は急激に増大している。そのため、これら装置の相互接続の改良された方法が要望されている。多種類のネットワーク化のパラダイムが開発されて、異なる種類のコンピュータと周辺コンポーネントが互いに交信できるようになってきた。
【0003】
データを、このようなネットワークにそって交換できる速度に問題がある。このことは、ネットワークアーキテクチャの速度の増大が、より速いコンピュータの処理速度と歩調がそろっていないから、予想外のことではない。コンピュータチップの処理力は、これまで、約18ヶ月毎に2倍になっており、強力なマシンと”帯域幅ハングリー(bandwidth hungry)”アプリケーションがどしどし生まれている。入力/出力の1秒当たり1メガビットが、一般に、処理力の”MIPS”(1秒当たり数百万の命令)に対して必要であると推定されている。現在、CPUは優に200MIPSを超えているので、ネットワークがこれらの一層速い速度に歩調を合わせることは困難である。
【0004】
広域のネットワークとチャンネルは、コンピュータのネットワークアーキテクチャのために開発された二つの方法である。従来のネットワーク(例えばLANやWANのネットワーク)は、大きなフレキシビリティと比較的長い距離の通信能力(relatively large distance capability)を示す。The Enterprise System Connection(ESCON)およびThe Small System Interface(SCSI)などのチャネルは、高性能と高い信頼性を得るために開発されたものである。チャネルは一般に、コンピュータ間またはコンピュータと周辺装置の間の専用の短距離の接続を使用する。
【0005】
チャネルとネットワーク両者の特徴が、”ファイバーチャネル(Fibre Channel)”として知られている新しいネットワーク標準に組み込まれて来た。ファイバチャネルシステムは、チャネルの速度と信頼性およびネットワークのフレキシビリティーと接続性を兼ね備えている。ファイバーチャネルの製品は、現在、非常に高いデータ速度、例えば、266Mbpsまたは1062Mbpsで作動可能である。このような速度は、非圧縮、フルモーション、高品質のビデオ(uncompressed full motion, high-quality video)などの全デマンディングアプリケーション(quite demanding application)を扱うのに十分な速度である。
【0006】
ファイバーチャネルネットワークを配備するのに一般に3種の方法がある。すなわち単純なポイントツーポイント接続;アービトレーテッドループ(arbitrated loop);および交換ファブリック(switched fabric)である。最も簡単な形態は、ポイントツーポイントの配置構成であり、この場合、二つのファイバーチャネルシステムが、単純に、直接、接続されている。アービトレーテッドループは、アービトレーションによって、帯域幅に対する共用アクセスを提供するファイバーチャネルリングの接続である。交換ファイバーチャネルネットワーク(”ファブリック”と呼称される)は、クロスポイントスイッチングの利点を利用することによって、最高の性能を発揮する。
【0007】
上記のファイバーチャネルのファブリックは、従来の電話システムとほぼ同様に作動する。このファブリックは、ワークステーション、パーソナルコンピュータ(PC)、サーバ、ルータ、メインフレームおよび記憶装置などのファイバーチャネルのインターフェースポートをもっている各種の装置を接続できる。これらの装置は各々、フレームのヘッダ中の宛先ポートのアドレスに入ることによって、該ファブリックを”呼び出す”オリジネーションポート(origination port)を持つことができる。このファイバーチャネルの仕様は、このフレームの構造を定義する(このフレーム構造は、以下に考察しかつ本発明が扱うデータ転送の問題を提起する)。
【0008】
上記ファイバーチャネルファブリックは所望の接続をセットアップする全ての作業を行うので、フレームのオリジネータ(フレームの発信元、frame originator)は、複雑なルーチングアルゴリズム(経路選択アルゴリズム)に関与する必要がない。セットアップすべき複雑な相手固定接続(PVC)が全くない。ファイバーチャネルファブリックは、1600万を超えるアドレスを扱うことができるので非常に大きなネットワークを収容できる。このファブリックはポートを追加するだけで拡大することができる。完全に構成されたファイバーチャネルのネットワークの集合体データの速度(aggregate data rate)は、1秒当りテラビットの範囲内であり得る。
【0009】
ファイバーチャネルの接続法の上記三つの基本的なタイプ各々は、ファイバーチャネルのテクノロジーを使用するいくつもの方式を示した図1に開示されている。特にメインフレームを互いに接続するポイントツーポイントの接続100が示されている。ディスク記憶ユニットを接続するファイバーチャネルのアービトレーテッドループ102が示されている。ファイバーチャネルのスイッチファブリック104が、ワークステーション106、メインフレーム108、サーバ110、ディスク駆動装置112およびローカルエリアのネットワーク(LAN)114を接続している。このようなLANとしては例えばイーサネット(Ethernet)、トークンリング(Token Ring)およびファイバー分散データインターフェース(fibre distributed data interface)(FDDI)ネットワークがある。
【0010】
ANSIの仕様(X3.230-1994)に、ファイバーチャネルネットワークが定義されている。この仕様によれば、ファイバーチャネルの機能は、五つの層に配分されている。図2に示すように、ファイバーチャネルの五つの機能層は、FC−0層:物理的媒体層;FC−1層:コーディングおよびエンコーディングを行う層;FC−2層:実転送機構(フレーミングプロトコルおよびノード間のフロー制御を含む);FC−3層:共通サービスの層;およびFC−4層:上層のプロトコルである。
【0011】
ファイバーチャネルは、比較的速い速度で作動するとはいえ、さらに速度を上げて、一層速いプロセッサの要求を満たすことが望ましい。これを実行する一方法は、インターフェースポイントで起こる遅延を除くかまたは小さくする方法である。この遅延の一つは、フレームをFC−1層からFC−2層へ転送する間に生じる。このインターフェースにおいて、ファイバーチャネルのデータリンクでリンクされた装置はファイバーチャネルのフレームをシリアルに受信する。プロトコルエンジン(PENG)が各フレームを受信して、これらフレームを次の層すなわち図2に示すFC−2層で処理する。上記プロトコルエンジンの機能には、各フレームを確認する機能;各フレームをホストに転送するダイレクトメモリアクセス(DMA)の操作を待ち行列に入れる(キューする)機能;およびトランスミットフレームを構築する機能がある。ファイバーチャネルフレームにはいくつものタイプがある。各フレームはヘッダとペイロード部分をもっている。フレームヘッダの一部は、フレームのタイプおよびルーティング情報を提供する、ルーティング制御とタイプ(R_CTL/TYPE)フィールドである(R_CTL/TYPEフィールドは別個のルーティングとタイプフィールドとして実行され得る)。ファイバーチャネルのネットワークは、インターネットと互換性があるTCP/IPを認識し扱うことができる。TCP/IPフレームはリンクコントロールフレームとデータフレームを含み、各々、そのそれぞれのフレームヘッダ内のR_CTL/TYPEフィールドによって識別される。TCP/IPフレームは一般に、他のタイプのファイバーチャネルフレームとは異なる処理を行う必要がある。特に、TCP/IPフレームは、特定の期間内にホストプロセッサからの応答を必要とし、さもないとエラー条件(エラー状態)が生じる。
【0012】
フレームを扱う通常の方法は一般に、フレームバイフレームベース(frame-by-frame basis)でホストCPUが行う方法である。例えば、受信されたフレームの確認およびDMAの操作と肯定応答のセットアップは一般に、ホストCPUに行わせる。これはフレームの伝送と受信の速度を制限して、ホストCPUが他のタスクを実行することを阻止する。さらにソフトウェアプロトコル”スタック(stack)”を有するホストCPUは、ファイバーチャネルのような速いネットワークと歩調を合わせることは困難である。
【0013】
一般的なファイバーチャネルのホストアダプタでは、フレームルーティングの機能は、オンボードマイクロプロセッサで実行される。しかし、低コストで実行する場合、マイクロプロセッサがベースの製品は、専用のハードウェアまたはシーケンサに基づいた解決策を利用する製品と置き換えられる。このような解決策では、オンボードプロセッサは、フレーム内のR_CTL/TYPEフィールドを処理するのに十分な計算力を持っていないので、フレームは、処理を行うためホストメモリに送らねばならない。ホストがフレームのタイプをソートするのに時間を費やすため、入ってくるリクエストに対する応答が著しく遅延することがある。
【0014】
【発明が解決しようとする課題】
上記のことからみて、本発明の目的は次のとおりである。すなわち、ファイバーチャネルのネットワークなどの高速ネットワークにおけるデータ転送処理速度を上昇させること;データフレームのプロトコルエンジンの処理を高速化するテクノロジーを提供すること;プロトコルエンジンとホストCPUとシステムメモリとの間のデータトラヒックを最小限にすること;ハードウェアでファイバーチャネルフレームルーティングを実行すること;およびハードウェアを使用して特定のタイプのフレームについてルーティングを実行することによって、ホストのソフトウェアの効率を改善することであり、さらに詳しく述べると、R_CTL/TYPEフィールドに基づく特定のホストベースのリング中にフレームの初期マッピングを行うことである。
【0015】
【発明の要約】
本発明は、コンピュータのデータリンクにおけるデータのフレームの処理と転送に関する。好ましい実施態様で、本発明は、ファイバーチャネルのプロトコルエンジンに、入ってくるフレームを、各フレームのルーチング制御(経路選択制御)とタイプのフィールドに基づいて、ホストメモリ内の特定のバッファリング中にマップさせるものである。
【0016】
さらに詳しく述べると、本発明のファイバーチャネルリンク(NL−ポート)は、ホストのソフトウェアに、ルーティング制御(R_CTL)の比較フィールド(match field)とマスクフィールド(mask field)およびTYPEの比較フィールドとマスクフィールドをセットアップさせるレシーバルーティングコード(RRコード)レジスタを備えている。前記NL−ポートは、受信したフレーム内の対応するR_CTL/TYPEフィールドに対する比較およびマスクのためにこれらのレジスタを使用し、いくつものR_CTL/TYPEのホストメモリバッファリングのなかのどれを、前記受信されたフレームを記憶するのに使用すべきかを決定する。好ましい実施態様で、NL−ポートは、フレームに付随するフレーム開始(SOF)の状態ワード内に、3ビットコード(RRコードフィールド)を置く。前記RRコードは、特定のR_CTL/TYPEホストメモリバッファリングを示すか、または一致すること(match)が全くなかったこと、または複数の一致があったことを示す。
【0017】
プロトコルエンジン(PENG)は、受信したフレームのSOF状態ワード内の前記RRコードフィールドを読み取り、次いで適当なR_CTL/TYPEバッファリングに対するダイレクトメモリアクセス(DMA)の操作を待ち行列に入れる(queue)。前記PENGは、ホストメモリ内の記憶場所の現時点の開始アドレスと長さを示す、指示されたR_CTL/TYPEバッファリングに対するバッファリストエントリ(BLE)を”プル(pull)”する。次にPENGは、受信したフレームのヘッダおよび/またはペイロードを、指示されたバッファリストエントリによって参照されるホストメモリ中に書きこむ。最後に、PENGは、前記書きこみ操作が完了したとき、ホストドライバー(host driver)に応答する。次いで、ホストは、指示されたバッファリングの内容を処理できる。そのバッファリングは、フレームタイプについて、事前分類(予めのソート、pre-sort)がなされているので、ホストは、入ってくるフレームに対して、一層効率的に応答することができる。
【0018】
本発明の諸利点は次のとおりである。ホストのソフトウェアの効率が改善されること;受信フレーム処理が一層高速であること;およびハードウェアを使って、特定のタイプのフレームに付随するホストバッファリングに対するルーティングを実行することによって、受信したフレームのルーティングが一層速いことである。
【0019】
本発明の一つ以上の実施態様の詳細を、添付図面と以下の説明によって述べる。本発明の他の特徴、目的、および利点は、以下の説明と図面および特許請求の範囲から明らかになるだろう。
【0020】
【発明の実施の形態】
概要
本発明は、ハードウェアを使用して、特定のタイプのフレームに対しルーティングを実行することによって、ソフトウェアの効率を部分的に改善するものである。本発明は、ファイバーチャネルネットワークのアーキテクチャの一部として実行されるとき、ファイバーチャネルのフレームヘッダ内のルーティング制御/タイプ(R_CTL/TYPE)フィールドを使用して、入ってくる受信フレームを、ホストメモリ内のバッファの特定のリングにマップするものである。
【0021】
図3は、ファイバーチャネルネットワークとともに使用するように構成されている好ましい通信処理システムを示す。シリアルデータがファイバーチャネルのデータリンク300にそって受信される。データリンク300から受信されたフレームはNL―ポート302によって処理され、NL−ポート302は、入ってくるシリアルデータをデコードし、ワードに並列化(parallelize)し、次にそれらワードを公知の方式でフレームにアセンブルする。
【0022】
フレームは一般に、三つの部分、すなわち、プリアンブル、データすなわち”ペイロード”の部分、および後書き部分(トレーラー部分)をもっている。ファイバーチャネルのデータリンクにおいては、例えば、フレームは、フレーム開始(SOF)ワード(4バイト);ゼロ〜2112のペイロードバイト間のフレームヘッダ(24バイト)と周期冗長検査(CRC)ワード(4バイト)を含むデータ部分;ならびにフレーム終わり(EOF)ワード(4バイト)をもっている。前記フレームヘッダを使って、リンクアプリケーションを制御し、装置のプロトコルの転送を制御し、および欠落または異常のフレームを検出する。前記CRCワードは、伝送に、例えばデータ破壊 (data corruption)などの問題があるかどうか、またはフレームの一部が伝送中にドロップしたかどうかを示す。
【0023】
また、NL−ポート302は、受信した各フレームに対するCRCワードをチェックし、結果として得られた”グッド−バッド(good-bad)”のCRC状態インジケータを、EOFワードから生成されたEOF状態内の他の状態情報ビットに加える。次にNL−ポート302は、各フレームを、受信フレームFIFOバッファ304中に書きこむ。好ましい受信フレームFIFOバッファモジュール304に関するさらなる詳細事項は、本発明の譲受人と同じ譲受人に譲渡された、発明の名称が”RECEIVE FRAME FIFO WITH END OF FRAME BYPASS”である1997年9月23日付け出願で同時係属中の米国特許願第08/935,898号に記載されている。なおこの特許願の開示事項は本願に援用するものである。
【0024】
次に、フレームは、全二重通信プロセッサ(プロトコルエンジン(PENG)とも呼称される)306が受信する。そのPENG306が以下のいくつもの機能を実施する。すなわち1)受信したフレーム内のデータをダイレクトメモリアクセス(DMA)チャネル316を介してプロセッサ314のホストメモリ312中に書きこむためのホストの指令を、待ち行列に入れる機能;2)フレームヘッダの妥当性を確認して、そのフレームが受信すべき次の論理フレームであることを保証する機能;3)当該フレームが不良か不良でないかを確認する機能;および4)受信したフレームまたはホストが発した伝送指令に応答して伝送フレームを生成する機能を実施する。
【0025】
PENG306は、フレームヘッダが受信フレームFIFOバッファ304から受信されると、PENGバッファ310内の前記フレームヘッダの妥当性を確認する。また、PENG306は、伝送フレームを構築して、その伝送フレームを、伝送フレームFIFOバッファ308を介して、データリンク300に送る。NL−ポート302、受信フレームFIFOバッファ304、およびPENG306は、単一のチップ、例えば特定用途向集積回路(ASIC)に実装することができる。好ましいPENG306のさらなる詳細事項は、本発明の譲受人と同譲受人に譲渡された、発明の名称が”FULL-DUPLEX COMMUNICATION PROCESSOR”である1997年9月24日付け出願で同時係属中の米国特許願第08/937,066号に記載されている。なおこの特許願の開示事項は本願に援用するものである。フレームの妥当性確認に関する情報については、本発明の譲受人と同じ譲受人に譲渡された、発明の名称が”METHOD OF VALIDATION AND HOST BUFFER ALLOCATION FOR UNMAPPED FIBRE CHANNEL FRAMES”である1998年3月26日付け出願で同時係属中の米国特許願第09/048,930号を参照されたい。なおこの特許願の開示事項は本願に援用するものである。
【0026】
レジスタの比較とマスキング
図4は本発明の好ましい通信処理システムのレジスタとバッファのインタラクションのブロック図である。好ましい実施態様で、NL−ポート302、受信フレームFIFOバッファ304、プロトコルエンジンのPENG306、ならびに一組の比較およびマスクのレシーバルーティングコード(”RRコード”)レジスタ400が単一の集積回路402内に実装されている。前記RRコードレジスタ400はNL−ポート302に連結されている。例えばRRコードレジスタ400は、RRコード記憶用に、三つの32ビットレジスタ400―0、400―1および400―2を備えている。
【0027】
RRコードレジスタ400−0、400−1および400−2は各々、TYPE比較、TYPEマスク、R_CTL比較、およびR_CTLマスクを定義(定める、規定する)する記憶フィールド値を記憶できる。これらフィールドの内容は、受信フレーム内の対応するフィールドと比較することができる。このように、RRコードは、複数のTYPE値および/または複数のR_CTL/TYPE値およびその組み合わせを比較するように定義できる。一般的な実施態様で、RRコードレジスタの比較フィールドまたはマスクフィールドは各々8ビットである。マスクビットは、フレームのR_CTLとTYPEのフィールド内のどの対応するビットを比較すべきかを示し、一方、比較ビットは比較すべき値を示す。例えば、マスク値:”10001000”は、ビット3と7だけ(最下位のビットがゼロ位である右から計数して)が比較値と比較できることを意味する。
【0028】
NL−ポート302がフレームを受信すると、RRコードレジスタ400の内容が、各フレームのR_CTLとTYPEのフィールドと比較される。フレームヘッダ内のR_CTLとTYPEフィールドの特別のセットの値が、そのフレームと特定のバッファリングとの関連を定義する。好ましい実施態様に、三つのR_CTL/TYPEバッファリング:0、1および2があり、これらは各々、RRコードレジスタ400―0、400―1、400―2に対応している。
【0029】
RRコードレジスタ400の内容のセットと、受信されたフレームのR_CTLとTYPEのフィールドとが一致すると、NL−ポート302は、どのバッファリングを使用して、フレームヘッダおよび/またはペイロードを記憶させるべきかを示すRRコードを生成する。他の事象もRRコードに符号化(encord)できる。好ましい実施態様で、三つのビットを使用して、下記の結果を、単一のRRコードに符号化できる。
【0030】
【表1】
【0031】
生成したRRコードを次に、好ましくはNL−ポート302によって、受信したフレームに付随するSOF状態ワード中に挿入する。次いで、PENG306が、前記受信したフレームのSOF状態ワード中のRRコードフィールドを読み取り、適当なR_CTL/TYPEバッファリング420へのダイレクトメモリアクセス(DMA)の操作を待ち行列に入れて、対応するフレームヘッダおよび/またはペイロードを記憶する。好ましい実施態様で、前記バッファリングは、以下の関連するフレームタイプ:伝送制御プロトコル/インターネットプロトコル(TCP/IP)バッファ420―0、バッファリンクサービス(BLS)バッファ420―1および拡張リンクサービス(ELS)バッファ420―2を扱うために定義(規定)される。好ましい実施態様で、R_CTL/TYPEバッファリング420を用いて、ファイバーチャネルプロトコル(FCP)レスポンダフレーム(responder frame) (すなわち、ローカルに始まったFCP交換(FCP exchange)のためのフレーム)以外のすべてのフレームを受信する。RRコード”000”または”1××”を生じるフレームは、デフォルトのR_CTL/TYPEバッファリングを使用できる。最後に、PENG306は、フレームが記憶されて操作が完了すると、ホストドライバーに応答を通知する。
【0032】
区分されたR_CTL/TYPEバッファリング420は、入ってくるフレームを適当なドライバーエントリポイントに対しデマルチプレクスする際に、ホストを援助する。これらのバッファリングは、好ましくは、R_CTL/TYPEバッファリング400―1が最も優先されるように優先付けられ、最初に、ホストによって処理される。優先順位は、より優先順位の低いデフォルトのR_CTL/TYPEの比較を参酌できる。このアーキテクチャは、TCP/IPなどのようなより高レベルのプロトコルを、ファイバーネットワークチャネルで扱うのに特に好適である。とういうのは、このようなプロトコルは、他のプロトコルより一層タイムリーな方式で、ホストからの応答を要求し得るからである。フレームをタイプによって優先順位をつけて分類することによって、ホストは、特定タイプのフレームシーケンスに一層迅速に応答するようにプログラムすることができる。
【0033】
好ましい実施態様で、R_CTL/TYPEバッファリング420は、好ましくはバッファディスクリプタ452の固定サイズの順編成リスト(sequential list)450によって定義される。前記リスト450は、論理リングとして、ハードウェアによって管理される。バッファディスクリプタ452は、二つのワードすなわち、実際の記憶バッファの(好ましくはワードの境界上の)開始を指すアドレス456、および前記バッファ内のワードの数に対する長さ(例えばバイト数)で構成されている。バッファリングのこのような間接定義は当該技術分野で公知である。
【0034】
操作の流れ
図5は、本発明の好ましい実施態様による、ヘッダフィールドに基づいてフレームをマップする方法の簡易フローチャートである。NL−ポート302が、ファイバーチャネルデータリンク300からフレームを受信し(ステップ500)次いで受信されたフレームのR_CTL/TYPEフィールドを読み取る(ステップ502)。R_CTL/TYPEフィールドをRRコードレジスタ400の内容と比較した結果に基づいて、別個のRRコードを前記フレームに割り当てる(ステップ504)。そのフレームをPENG306に送って、前記RRコード値に基づいて処理する(ステップ506)。特に、PENG306は、前記割り当てられたRRコードに対応する三つのバッファリング420のうちの一つに、前記フレームを記憶させるか、または前記RRコードがRRコードレジスタ400と全く一致しないことを示した場合は、デフォルトのバッファリングに、前記フレームを記憶させる(ステップ508)。
【0035】
図6は、本発明の好ましい実施態様による、R_CTL/TYPEヘッダフィールドに基づいて、ファイバーチャネルフレームをマップする方法のより詳細なフローチャートを示す。さらに具体的に述べると、NL−ポート302は、ファイバーチャネルフレームをファイバーチャネルデータリンク300から受信し、次に、その受信したフレームのR_CTL/TYPEフィールドを読み取る(ステップ600)。受信したフレームのR_CTL/TYPEフィールドがRRコードレジスタ400−0と一致したならば(すなわちTCP/IPフレームを示しているならば)(ステップ602)、NL−ポート302は、受信フレームのSOF状態ワードフィールド内に001の値を有する3ビットのRRコードを置く。
【0036】
しかし、受信したフレームのR_CTL/TYPEフィールドがRRコードレジスタ400−1と一致したならば(すなわちBLSフレームを示しているならば)(ステップ606)、NL−ポート302は、受信フレームのSOF状態ワードフィールド内に010の値を有する3ビットのRRコードを置く(ステップ608)。
【0037】
あるいは、受信フレームのR_CTL/TYPEフィールドがRRコードレジスタ400−2と一致したならば(すなわちELSフレームを示しているならば)(ステップ610)、NL−ポート302は、受信フレームのSOF状態ワードフィールド内に011の値を有する3ビットのRRコードを置く(ステップ610)。
【0038】
しかし、受信したフレームのR_CTL/TYPEフィールド310の値が、前記三つのR_CTL/TYPEコードレジスタ400のうちの一つと一致しなかったならば、RRコードは、そのフレームはデフォルトのR_CTL/TYPEバッファリングに記憶されるべきであるということをPENG306に示す、デフォルトの値(好ましくは000)に設定される(ステップ614)。
【0039】
次に前記フレームを、PENG306に送って,前記フレームのSOF状態ワードフィールドに割り当てられたRRコードの値に基づいて処理する。PENG306は、受信したフレームの前記割り当てられたRRコードを読み取り(ステップ616)、次いで対応するバッファリングに対するDMA操作を待ち行列に入れる(ステップ618)。
【0040】
より詳細に述べると、ステップ618は以下の機能を実施する。すなわち、受信したフレームのRRコードが”001”に等しかった場合(ステップ620)、PENG306は、TCP/IPバッファリング420−0に対するDMAの操作を待ち行列に入れる(ステップ622);受信したフレームのRRコードが”010”に等しかった場合(ステップ624)、PENG306は、BLSバッファリング420−1に対するDMA操作を待ち行列に入れる(ステップ626);受信したフレームのRRコードが”011”に等しかった場合(ステップ628)、PENG306は、ELSバッファリング420−2に対応するDMA操作を待ち行列に入れる(ステップ630)。
【0041】
受信フレームのRRコードがRRコードレジスタ400と複数一致した場合、随意に、受信したフレームのRRコードを、特定の値、好ましくは1××(但し”××”は任意の値)に設定する。
【0042】
本発明の多くの実施例について述べてきたが、本発明の精神と範囲から逸脱することなく各種の変形を行うことができるものである。例えば上記の多くのステップとテストは、異なるシーケンスで行うことができ、しかも同じ結果が得られる。したがって,他の実施態様は本願の特許請求の範囲の範囲内にある。なお、各種の図面中の同じ参照番号と名称は同じ要素を示す。
【図面の簡単な説明】
【図1】 ファイバーチャネルの技法を利用する従来技術の複合コンピュータネットワークのブロック図である。
【図2】 従来技術のファイバーチャネル標準の五つの機能層の線図である。
【図3】 本発明の好ましい通信処理システムのブロック図である。
【図4】 本発明の好ましい通信処理システムにおけるレジスタとバッファのインタラクションを示すブロック図である。
【図5】 本発明の好ましい実施態様による、ヘッダフィールドに基づいて行うフレームのマッピングを示す簡易フローチャートである。
【図6】 本発明による、ヘッダフィールドに基づいて行うフレームのマッピングを示すフローチャートである。
Claims (14)
- メモリとCPUとを有するホストコンピュータに接続された専用のハードウェアコンポーネントにより、ネットワークシステムから受信した各種タイプのフレームを前記ホストコンピュータのメモリにマップする方法であって:
(a)付随するヘッダとペイロードを含むフレームを前記専用のハードウェアコンポーネントにより受信し;
(b)前記受信したフレームのヘッダの少なくとも一つのフィールドを前記専用のハードウェアコンポーネントにより読み取り;
(c)前記専用のハードウェアコンポーネントにより、各フィールドを、少なくとも一つの対応する予め定められた比較値と比較し;
(d)前記専用のハードウェアコンポーネントにより、前記の比較の結果に基づいて、前記受信したフレームにコードを割り当て;
(e)前記専用のハードウェアコンポーネントにより、前記受信したフレームからのデータを、前記ホストコンピュータのメモリ内の前記コードに対応するバッファ内に記憶させ;
(f)優先順位を各バッファに割り当て;
(g)前記バッファの内容を前記優先順位に基いて前記ホストコンピュータのCPUにて実行されるソフトウェアにより処理する;
ステップを含んでなる方法。 - 前記比較ステップの前に、各フィールドを、予め定められた対応するマスク値によってマスクするステップをさらに含んでいる請求項1に記載の方法。
- ネットワークシステムがファイバーチャネルネットワークである請求項1に記載の方法。
- フィールドがR_CTL/TYPEフィールドである請求項3に記載の方法。
- 少なくとも一つのフレームのタイプがTCP/IPフレームである請求項3に記載の方法。
- 各バッファがリングバッファである請求項1に記載の方法。
- メモリとCPUとを有するホストコンピュータを備え、ネットワークシステムから受信した各種タイプのフレームを前記ホストコンピュータのメモリ内にマップするシステムであって、
前記ホストコンピュータに接続された専用のハードウェアコンポーネントを備え、
更に、前記専用のハードウェアコンポーネントは:
(a)付随するヘッダとペイロードを含むフレームを受信するレシーバ回路;
(b)各々、少なくとも一つの予め定められた比較値を記憶する少なくとも一つのレジスタ;
(c)受信したフレームのヘッダの少なくとも一つのフィールドを、各レジスタの対応する予め定められた各比較値と比較する比較回路;
(d)前記比較の結果に基づいて、前記受信したフレームにコードを割り当てるコード割り当て回路;及び
(e)前記受信したフレームからのデータを、前記ホストコンピュータのメモリ内の前記コードに対応するバッファに記憶させるバッファ記憶システム;
を備え、
更に、前記ホストコンピュータのメモリは前記バッファ記憶システムにより前記バッファ内に記憶されたデータを処理するソフトウェアを備え、前記コードに優先順位がつけられていて、前記バッファ記憶システムはその優先順位に基いて、前記受信したフレームからのデータを記憶するように構成されてなるシステム。 - 各レジスタが、各予め定められた比較値に関連する予め定められたマスク値を記憶し、そして前記比較回路が、比較を行う前に、対応する予め定められたマスク値によって、各フィールドをマスクする請求項7に記載のシステム。
- ネットワークシステムがファイバーチャネルネットワークである請求項7に記載のシステム。
- 少なくとも一つのフィールドがR_CTL/TYPEフィールドである請求項9に記載のシステム。
- 少なくとも一つのフレームタイプがTCP/IPフレームタイプである請求項9に記載のシステム。
- 各バッファがリングバッファである請求項7に記載のシステム。
- 前記バッファ内に記憶させるステップは、前記専用のハードウェアコンポーネントが前記ホストコンピュータのメモリに直接アクセスすることによって実行されるステップである請求項1に記載の方法。
- 前記バッファ記憶システムは、前記ホストコンピュータのメモリに直接アクセスすることによって前記データを前記バッファに記憶させる請求項7に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/071,276 US6098125A (en) | 1998-05-01 | 1998-05-01 | Method of mapping fibre channel frames based on control and type header fields |
US09/071,276 | 1998-05-01 | ||
PCT/US1999/008987 WO1999057644A1 (en) | 1998-05-01 | 1999-04-26 | Method of mapping fibre channel frames based on control and type header fields |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002513968A JP2002513968A (ja) | 2002-05-14 |
JP4173636B2 true JP4173636B2 (ja) | 2008-10-29 |
Family
ID=22100335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000547550A Expired - Fee Related JP4173636B2 (ja) | 1998-05-01 | 1999-04-26 | 制御とタイプヘッダのフィールドに基づいてファイバーチャネルフレームをマップする方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6098125A (ja) |
EP (1) | EP1075677A4 (ja) |
JP (1) | JP4173636B2 (ja) |
KR (1) | KR100345539B1 (ja) |
CA (1) | CA2330014C (ja) |
WO (1) | WO1999057644A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304910B1 (en) * | 1997-09-24 | 2001-10-16 | Emulex Corporation | Communication processor having buffer list modifier control bits |
US6425034B1 (en) * | 1998-10-30 | 2002-07-23 | Agilent Technologies, Inc. | Fibre channel controller having both inbound and outbound control units for simultaneously processing both multiple inbound and outbound sequences |
US6747984B1 (en) | 1998-12-18 | 2004-06-08 | Lsi Logic Corporation | Method and apparatus for transmitting Data |
US6532476B1 (en) | 1999-11-13 | 2003-03-11 | Precision Solutions, Inc. | Software based methodology for the storage and retrieval of diverse information |
US6625708B1 (en) * | 1999-11-23 | 2003-09-23 | Intel Corporation | Method and apparatus for dynamically defining line buffer configurations |
US6748448B1 (en) * | 1999-12-13 | 2004-06-08 | International Business Machines Corporation | High performance internet storage access scheme |
JP4175764B2 (ja) * | 2000-05-18 | 2008-11-05 | 株式会社日立製作所 | 計算機システム |
US7020715B2 (en) * | 2000-08-22 | 2006-03-28 | Adaptec, Inc. | Protocol stack for linking storage area networks over an existing LAN, MAN, or WAN |
US7114009B2 (en) * | 2001-03-16 | 2006-09-26 | San Valley Systems | Encapsulating Fibre Channel signals for transmission over non-Fibre Channel networks |
US7844683B2 (en) * | 2001-10-10 | 2010-11-30 | Juniper Networks, Inc. | String matching method and device |
US7359397B2 (en) * | 2002-04-19 | 2008-04-15 | Seagate Technology Llc | Prioritizing transfers across an interface |
US11108591B2 (en) | 2003-10-21 | 2021-08-31 | John W. Hayes | Transporting fibre channel over ethernet |
US20060161733A1 (en) * | 2005-01-19 | 2006-07-20 | Emulex Design & Manufacturing Corporation | Host buffer queues |
US7613887B1 (en) | 2006-09-18 | 2009-11-03 | Marvell International Ltd. | System and method for managing a memory storage device |
EP2544417B1 (en) | 2010-03-05 | 2014-11-12 | Nec Corporation | Communication system, path control apparatus, packet forwarding apparatus and path control method |
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 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0824315B2 (ja) * | 1990-02-15 | 1996-03-06 | 富士通株式会社 | データ転送方式 |
US5029164A (en) * | 1990-04-13 | 1991-07-02 | Digital Equipment Corporation | Congestion avoidance in high-speed network carrying bursty traffic |
US5291486A (en) * | 1991-08-19 | 1994-03-01 | Sony Corporation | Data multiplexing apparatus and multiplexed data demultiplexing apparatus |
US5404361A (en) * | 1992-07-27 | 1995-04-04 | Storage Technology Corporation | Method and apparatus for ensuring data integrity in a dynamically mapped data storage subsystem |
US5289371A (en) * | 1992-09-11 | 1994-02-22 | Memorylink, Inc. | System and method for routing data and communications |
US5495580A (en) * | 1992-10-20 | 1996-02-27 | Xlnt Designs, Inc. | Ring network security system with encoding of data entering a subnetwork and decoding of data leaving a subnetwork |
ATE171325T1 (de) * | 1993-03-20 | 1998-10-15 | Ibm | Verfahren und vorrichtung zur herausarbeitung der vermittlungsinformation aus dem kopfteil eines protokolls |
DE4329048A1 (de) * | 1993-08-28 | 1995-03-02 | Philips Patentverwaltung | Lokales, nach dem asynchronen Transfermodus (ATM) arbeitendes Netzwerk |
US5522047A (en) * | 1993-12-15 | 1996-05-28 | Xlnt Designs, Inc. | Graceful insertion of a tree into a ring network |
US5553302A (en) * | 1993-12-30 | 1996-09-03 | Unisys Corporation | Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data |
US5524258A (en) * | 1994-06-29 | 1996-06-04 | General Electric Company | Real-time processing of packetized time-sampled signals employing a systolic array |
US5659718A (en) * | 1994-08-19 | 1997-08-19 | Xlnt Designs, Inc. | Synchronous bus and bus interface device |
US5598541A (en) * | 1994-10-24 | 1997-01-28 | Lsi Logic Corporation | Node loop port communication interface super core for fibre channel |
KR100197847B1 (ko) * | 1994-11-11 | 1999-06-15 | 니시무로 타이죠 | 패킷데이타의 기록장치 및 재생장치 |
US5784380A (en) * | 1995-02-24 | 1998-07-21 | Kabushiki Kaisha Toshiba | Communication control device, communication control method and communication control system |
GB2304210B (en) * | 1995-08-11 | 2000-02-16 | Fujitsu Ltd | Data receiving devices |
US5734652A (en) * | 1995-09-27 | 1998-03-31 | Microsoft Corporation | ATM extended autoregistration and VPI/VCI assignment in a hybrid fiber-coax cable network |
US5809328A (en) * | 1995-12-21 | 1998-09-15 | Unisys Corp. | Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device |
US5768530A (en) * | 1995-12-28 | 1998-06-16 | Emc Corporation | High speed integrated circuit interface for fibre channel communications |
US5724358A (en) * | 1996-02-23 | 1998-03-03 | Zeitnet, Inc. | High speed packet-switched digital switch and method |
US5956473A (en) * | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US5881242A (en) * | 1997-01-09 | 1999-03-09 | International Business Machines Corporation | Method and system of parsing frame headers for routing data frames within a computer network |
US6014383A (en) * | 1997-02-10 | 2000-01-11 | Compaq Computer Corporation | System and method for controlling multiple initiators in a fibre channel environment |
US6038235A (en) * | 1997-08-20 | 2000-03-14 | Sun Microsystems, Inc. | Fiber channel automatic arbitration and communication control |
-
1998
- 1998-05-01 US US09/071,276 patent/US6098125A/en not_active Expired - Lifetime
-
1999
- 1999-04-26 JP JP2000547550A patent/JP4173636B2/ja not_active Expired - Fee Related
- 1999-04-26 CA CA002330014A patent/CA2330014C/en not_active Expired - Fee Related
- 1999-04-26 WO PCT/US1999/008987 patent/WO1999057644A1/en not_active Application Discontinuation
- 1999-04-26 EP EP99921470A patent/EP1075677A4/en not_active Withdrawn
- 1999-04-26 KR KR1020007012132A patent/KR100345539B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO1999057644A1 (en) | 1999-11-11 |
KR100345539B1 (ko) | 2002-07-26 |
EP1075677A4 (en) | 2006-05-31 |
EP1075677A1 (en) | 2001-02-14 |
CA2330014C (en) | 2002-08-06 |
KR20010043204A (ko) | 2001-05-25 |
JP2002513968A (ja) | 2002-05-14 |
CA2330014A1 (en) | 1999-11-11 |
US6098125A (en) | 2000-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11855881B2 (en) | System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (NIC) | |
JP4173636B2 (ja) | 制御とタイプヘッダのフィールドに基づいてファイバーチャネルフレームをマップする方法 | |
US6005849A (en) | Full-duplex communication processor which can be used for fibre channel frames | |
US6480500B1 (en) | Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes | |
US6493343B1 (en) | System and method for implementing multi-pathing data transfers in a system area network | |
US6459698B1 (en) | Supporting mapping of layer 3 priorities in an infiniband ™ network | |
US6999462B1 (en) | Mapping layer 2 LAN priorities to a virtual lane in an Infiniband™ network | |
US9118586B2 (en) | Multi-speed cut through operation in fibre channel switches | |
JP2002503914A (ja) | ファイバ・チャネル・フレームからダイナミックescon接続を確立する方法及び装置 | |
JP3735647B2 (ja) | マップされていないファイバーチャネルフレームの確認およびホストバッファの割当てを行う方法 | |
US6973085B1 (en) | Using application headers to determine InfiniBand™ priorities in an InfiniBand™ network | |
US6304910B1 (en) | Communication processor having buffer list modifier control bits | |
US7245615B1 (en) | Multi-link protocol reassembly assist in a parallel 1-D systolic array system | |
US6957270B1 (en) | Method and apparatus for performing flow control across multiple network devices | |
US20040073724A1 (en) | Network stack layer interface | |
US7085869B1 (en) | Arrangement for managing transmitted packets requiring acknowledgement in a host channel adapter | |
US7420982B2 (en) | Method and system for keeping a fibre channel arbitrated loop open during frame gaps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050315 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050608 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050616 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050914 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051006 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060711 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070613 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070619 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080722 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080814 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110822 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110822 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120822 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |