JP4615122B2 - インタフェース制御装置 - Google Patents
インタフェース制御装置 Download PDFInfo
- Publication number
- JP4615122B2 JP4615122B2 JP2000384895A JP2000384895A JP4615122B2 JP 4615122 B2 JP4615122 B2 JP 4615122B2 JP 2000384895 A JP2000384895 A JP 2000384895A JP 2000384895 A JP2000384895 A JP 2000384895A JP 4615122 B2 JP4615122 B2 JP 4615122B2
- Authority
- JP
- Japan
- Prior art keywords
- check
- check code
- control unit
- data
- circuit
- 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 - Lifetime
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、中央処理装置や入出力装置等の処理装置間に接続される入出力インタフェースの制御方式に係り、特に一つ乃至は複数フレームで構成されるデータ情報に対して、一つのFCS(Frame Check Sequence)が付属する様なデータ転送プロトコルに於いて、FCSの生成、チェックを効率的に行うインタフェース制御方式に関する。
【0002】
【従来の技術】
OSI(Open System Interconnection)モデルに代表される様に、ネットワークアーキテクチャの構造を機能によって階層化し、各階層で様々なプロトコルを実現することは、自由度の高いネットワーク構築を可能にした。ANSI(Ameriacan National Standards Institute)で規格化されているファイバチャネルも同様に階層化されており、ファイバチャネル媒体を使用し、ULP(上位レイヤプロトコル)としてIP(Internet Protocol)やSCSI(Small Computer System Interface)、FC−SB2(Single−Byte Command Code Sets Mapping Protocol−2)といったさまざまなプロトコルを実行することができる。
【0003】
しかし、この様な階層化によって、上位レイヤプロトコルが送ろうとしたデータ量が下位レイヤプロトコルで1回あたり送信可能なデータ量よりも大きい場合、データの分割・組立といった処理が必要になる。
【0004】
例えば、ファイバチャネルに於いて、光ファイバに代表される物理インタフェース上は、図2(a)に示す様なフレーム200単位でデータ転送が行われるが、ファイバチャネルのULPであるFC−SB2では、図2(b)に示す様な情報ユニットIU(Information Unit)201でデータ転送が行われるため、IUからフレームへの分割・フレームからIUへの組立といった処理が必要となる。
【0005】
フレーム200は、4バイトの開始コード(SOF)で始まり、24バイトのヘッダ情報と最大2,112バイトのデータ、更にヘッダ情報とデータの誤り検出のためにFCSとして4バイトのCRC(以下フレームCRC)を付加し、最後に4バイトの終了コード(EOF)で終結した構造をしている。また情報ユニット201は、32バイトのヘッダ情報と最大8,160バイトのデータ、更に必要なら4バイトのCRC(以下SB_CRC)を付加した構造しており、情報ユニット201のヘッダ情報とデータ、SB_CRCは、フレーム200のデータに分割してマッピングされる。SB_CRCは、図2(c)に示す様に、一つあるいは複数IUで構成されるSBデータ202のデータ部分の誤り検出のために付加される。
【0006】
従来、ファイバチャネルに代表されるインタフェース制御装置では、下位レイヤのフレーム単位での処理を行う部位と、主にULPにしたがって処理を行う部位とを分け、PCIバスやマイクロチャネルといった入出力バスに接続してデータ転送を実現することが多い。つまり、下位レイヤと上位レイヤを分割することにより、光ファイバのビットレート向上に伴う変更や、ULP変更に柔軟な構造となっており、さまざまなデータ転送系を構築することが可能となる。図8にインタフェース制御装置の従来例を示す。
【0007】
インタフェース制御装置は、ファイバチャネルの下位レイヤを制御する下位インタフェース制御装置700とULPを含むその他の制御を行う上位インタフェース制御装置701に分けることができ、両者は、入出力バス702で接続されている。
【0008】
下位インタフェース制御装置700は、光ファイバケーブル703上の光信号と送受信フレームとを変換、制御するリンク制御部704と、送受信フレームを格納する送信バッファ705、受信バッファ706と、ファイバチャネルのフレーム転送制御等をマイクロプログラムで行うFCプロトコル制御部707と、入出力バス制御部708で構成される。
【0009】
上位インタフェース制御装置701は、メインメモリ709と中央処理装置710が入出力バス制御部711を介して下位インタフェース制御装置700と接続する構造になっており、上位インタフェース制御装置701の一例としてパーソナルコンピュータがあげられる。
【0010】
以下に、フレーム送信に関する従来例の動作を、図9のフローチャートを用いて簡単に説明する。
【0011】
中央処理装置710は、送信データをメインメモリ709に格納し(800)、下位インタフェース制御装置700に対して送信指示を行う(801)。送信指示を受けた下位インタフェース制御装置700のFCプロトコル制御部707は、送信データをメインメモリ709から送信バッファ705に格納するよう入出力バス制御部708に指示する(802)。指示を受けた入出力バス制御部708は、送信データをメインメモリ709から送信バッファ705に格納し(803)、格納終了を検出したFCプロトコル制御部707は、リンク制御部704に当該送信バッファのフレーム送信指示を行う(804)。フレーム送信指示を受けたリンク制御部704は送信バッファ705からフレームのヘッダ情報、フレームCRCを生成、付加し、フレーム送信を行う(805)。
【0012】
以下に、フレーム受信に関する従来例の動作を、図10のフローチャートを用いて簡単に説明する。
【0013】
下位インタフェース制御装置700に受信されたフレームは、リンク制御部704でフレームのフレームCRCがチェックされ、受信バッファ706に格納される(810)。更に、リンク制御部704からフレーム格納の通知を受けたFCプロトコル制御部707は、フレームを解析し、必要ならフレームデータをメインメモリ709に格納するよう入出力バス制御部708に指示する(811)。指示を受けた入出力バス制御部708は、フレームデータを受信バッファ706からメインメモリ709に格納し(812)、格納終了を検出したFCプロトコル制御部707は、中央処理装置710に対して格納データの処理を依頼する(813)。最後に、中央処理装置710で格納データが処理される(814)。
【0014】
以上のインタフェース制御装置に於いて、FC−SB2を動作させた場合、複数フレームで構成されるIUや一つもしくは複数IUで構成されるデータに付加されるSB_CRCの生成、チェックは上位インタフェース制御装置701の中央処理装置710で処理され、下位インタフェース制御装置700ではメインメモリ709上のIUをフレームに分割して送信したり、受信フレームのヘッダ情報からIUへの組み立てとメインメモリ709への格納を行う。図11にIU送信、図12にIU受信に関する従来装置での制御例のフローチャートを示す。
【0015】
しかし、上述に様に、IU処理の他にSB_CRCの生成、チェックも中央処理装置710で処理すると、中央処理装置710の負荷が増大し、プログラム実行のオーバヘッドのため、ULP制御性能が低下する恐れがある。
【0016】
そこでSB_CRCの生成、チェックを下位インタフェース制御装置700で行うことにより、上位インタフェース制御装置701にSB_CRCの専用制御機構等の特別な機構を付加することなく、ULP制御性能を向上させる方法を考える。
【0017】
この様に、ULPの処理の一部を下位レイヤで行うことは上下のレイヤをバインドさせて処理させることを意味し、本来のレイヤ構造によるプロトコルの多様性や柔軟性に矛盾しているが、SAN(Storage Area Network)やInternet 等のある特定の範囲で、上下レイヤのプロトコルの組合せが限定できる場合は性能向上に有用な方法であると考える。
【0018】
データの分割・組立とそれに付随するFCS関する従来例としては、特開平9−149080号公報や特開平10−303945号公報に開示されているが、上下レイヤをバインドしたFCSの処理については述べられていない。
【0019】
【発明が解決しようとする課題】
しかし、上述に様に、SB_CRCの生成、チェックをマイクロプログラムで処理すると、中央処理装置710の負荷が増大し、プログラム実行のオーバヘッドのため、ULP制御性能が低下する恐れがあるため、SB_CRCの生成、チェックを下位インタフェース制御装置700で行うことにより、ULP制御性能を維持しつつ、上位インタフェース制御装置701の汎用性を保つことを考える。
【0020】
SB_CRCの生成、チェックを下位インタフェース制御装置700で行う場合、次に示す問題がある。
【0021】
第一の問題点は、SB_CRCをFCプロトコル制御部707で処理する場合、送受信バッファのデータをローカルメモリ712に格納してマイクロプログラムで計算するため、SB_CRC生成、チェック用のメモリ領域が必要なことと、プログラム実行のオーバヘッドが大きいということである。図13にIU送信、図14にIU受信に関する従来装置での制御例のフローチャートを示す。
【0022】
第二の問題点は、SB_CRCの生成、チェックの専用制御機構を送受信バッファ705、706の前後に付加する場合、ファイバチャネルの特徴の一つである複数ULPの同時動作や、SB_CRCを含むデータが複数同時に転送され得ることを考えると、単純に生成、チェックする回路を付加するだけでは対応しきれないということである。
【0023】
第三の問題点は、下位インタフェース制御装置700は数ギガビット/秒という高いビットレートでフレームを送受信していることから、SB_CRC生成、チェックにかかる処理時間は無視できないということである。
【0024】
本発明の第一の目的は、上記第一及び第二の問題点を克服し、データ転送プロトコルが多重動作する場合にも、柔軟に対応するSB_CRCの生成、チェック方法を提供することにある。
【0025】
本発明の第二の目的は、上記第一及び第三の問題点を克服し、SB_CRCの処理時間を低減もしくは無視可能な、SB_CRCの生成、チェック方法を提供することにある。
【0026】
【課題を解決するための手段】
上記の目的を、下位インタフェース制御装置において、マイクロプログラム処理と専用制御機構を組み合わせて達成する。
【0027】
本発明の下位インタフェース制御装置は、送信バッファのデータ格納単位をIU単位まで拡張し、マイクロプログラムのIU単位での送信要求を可能とする。更に、IU送信契機でSB_CRC生成を、SB_CRCを生成するためのSB_CRC計算回路と、生成初期値と生成結果とを保持しマイクロプログラムでリード、ライト可能なSB_CRC生成レジスタから構成されるSB_CRC生成回路で、IU送信とは非同期に行う。また、SB_CRCチェックを、SB_CRCをチェックするためのSB_CRC計算回路と、チェック初期値とチェック結果とを保持しマイクロプログラムでリード、ライト可能なSB_CRCチェックレジスタから構成されるSB_CRCチェック回路で、受信フレームから構成されたIUをメインメモリに転送する際、IU転送契機でIU転送とは非同期に行う。つまりIUを送信、転送しながらSB_CRCの生成、チェックを同時に行うことにより処理に係るオーバヘッド低減を実現する。
【0028】
更に、マイクロプログラムのIU送信要求やメインメモリへのIU転送要求に必要な情報を格納するレジスタを複数用意し、複数同時に要求可能とすることで、SB_CRCが複数IUに跨ぐ場合やデータ転送が多重に実行される場合にも柔軟に対応する。
【0029】
また、受信フレームからIUを組み立て、メインメモリに転送する際に、当該フレームの受信バッファアドレスのチェイン情報で指示可能とすることで、IU転送のための特別なメモリは必要なく、つまり、同メモリに転送するオーバヘッドも削減できる。
【0030】
SB_CRC生成について簡単に説明する。フレームを正しく送信するためには、送信バッファからのデータ読み出し速度はリンク上のビットレートより高い必要があるが、本手法では、リンク上のビットレートの2倍以上の速度で読み出し可能な送信バッファを搭載することで、SB_CRC生成のオーバヘッドを低減する。つまり、リンク上のビットレートに合わせた送信フレームのデータ読み出しを行いながら、SB_CRC生成のデータ読み出しを非同期に行い、専用制御機構でSB_CRCを生成する。また、図2(a)に示す様に、フレームには開始、終了コード(SOF、EOF)やヘッダ情報、フレームCRC等が付属され、更にフレーム間も定められた間隔を空ける必要があるため、送信フレームとSB_CRC生成データを非同期に読み出せば、SB_CRC生成は先に完了する。これを利用し、SB_CRC生成が複数IUに跨る場合には、先に終了したSB_CRC生成の結果を、次のIU送信におけるSB_CRC生成の初期値としてセットし、予め、IU送信要求を発行することにより、SB_CRC生成のオーバヘッド無しにIU送信が可能となる。
【0031】
SB_CRCチェックについて簡単に説明する。受信バッファに格納されたフレームは、そのヘッダ情報から、マイクロプログラムによってIUに組み立てられる。組立られたIUは、入出力バスを介して上位インタフェース制御装置に転送されるわけだが、ここでも、SB_CRC生成と同様に、入出力バスのデータ転送速度の2倍以上の速度で読み出し可能な受信バッファを搭載し、入出力バスへのデータを読み出しながら、SB_CRCチェックのデータ読み出しを非同期で行い、専用制御機構でSB_CRCをチェックする。この場合も、入出力バスのデータ転送プロトコルのオーバヘッドから、入出力バスのデータ転送よりSB_CRC計算が先に完了するので、IUチェックが複数IUに跨る場合も、先に終了したSB_CRC計算結果を次のIU転送におけるSB_CRCチェックの初期値としてセットし、予め、IU転送要求を発行するすることにより、SB_CRCチェックのオーバヘッド無しにIU転送が可能となる。また、この時のIU転送要求は、受信バッファアドレスA−B−E−GといったIUを構成するフレーム位置の関連付けて指示可能である。
【0032】
以上の様に、本発明の下位インタフェース制御装置は、FC−SB2のデータに付加されるSB_CRCの生成、チェックといったULPの処理の一部を行うことによって、ULPの制御性能を向上させている。
【0033】
図3に上記のSB_CRCチェックの制御例を示す。ここでは、受信バッファのデータ読み出し速度が、入出力バスのデータ転送速度の4倍であり、IUは4フレーム、SB_CRCは2IUにまたがる場合の例を示す。
【0034】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
【0035】
本実施例は、本発明におけるファイバチャネルインタフェース制御の好ましい形態の一例であり、本発明はこれに限るものではない。
【0036】
図1は、本発明のインタフェース制御方法の一例を示すインタフェース制御装置の構成図である。本構成は、送受信バッファに、それぞれ2つのポートで独立にリード、ライト可能な4ポートメモリを採用し、リードポートをデータ転送用とSB_CRC生成、チェック用とに割り当て、それぞれが非同期に動作できることに特徴がある。
【0037】
図1に示す様に、インタフェース装置制御装置は、従来例(図8)と同様に、ファイバチャネルの下位レイヤを制御する下位インタフェース制御装置100と、ULPを含むその他の制御を行う上位インタフェース制御装置101に分けることができ、両者は、入出力バス102で接続されている。
【0038】
下位インタフェース制御装置100は光ファイバケーブル103上の光信号と送受信フレームとを変換、制御するリンク制御部104、送受信フレームを格納し、4ポートメモリで構成された送信バッファ105、受信バッファ106、IU単位に付属するSB_CRCを生成、チェックするSB_CRC生成回路113、SB_CRCチェック回路114、ファイバチャネルのフレーム転送制御やIU組立等、ファイバチャネルの下位レイヤプロトコル制御をマイクロプログラムで行い、内部にローカルメモリ112を有するFCプロトコル制御部107と、入出力バス制御部108で構成される。
【0039】
送受信バッファ105、106は、図4(a),(b)で示されるように、送信バッファ105はIU単位に、受信バッファ106はフレーム単位に分割されており、各領域はそれぞれ、送信バッファ#と受信バッファ#で指示することが可能となっている。
【0040】
リンク制御部104には、FCプロトコル制御部107がIU送信制御情報を格納するためのリンク制御レジスタ115が存在する。リンク制御レジスタ115は、図5(a)に示される様に、送信制御情報、開始、終了コード、フレームヘッダ情報、送信IU長で構成され、更に送信バッファ#に対応して4つのリンク制御レジスタ情報を格納することができる。FCプロトコル制御部107からIU送信要求を出されたリンク制御部104は、リンク制御部レジスタ115を参照し、送信バッファ105からデータを読み出しながらIUをフレームに分割してフレーム送信を行う。また、リンク制御レジスタ115の送信制御情報でSB_CRC生成が指示されていた場合は、SB_CRC生成回路113でIUのSB_CRC生成を行う。このフレーム送信とSB_CRC生成は送信バッファのそれぞれ異なるリードポートから実行され、両者の動作は非同期に行われる。リンク制御レジスタ115が複数セットアップされている場合は、その優先度にしたがって、フレーム送信、SB_CRC生成がそれぞれ独立に連続して実行される。
【0041】
入出力バス制御部108には、FCプロトコル制御部107が上位インタフェース制御装置101のメインメモリ109と送受信バッファ105、106間のデータ転送制御情報を格納するためのデータ転送制御レジスタ116が存在する。データ転送制御レジスタ116は、図5(b)に示されるように、メインメモリ109のデータを送信バッファ105に転送するために用いられる送信バッファ用データ転送制御レジスタと、受信バッファ106のデータをメインメモリ109に転送するために用いられる受信バッファ用データ転送制御レジスタに分けることができる。送信バッファ用は、転送制御情報、転送元(メインメモリ)アドレス、転送長、転送先(送信バッファのアドレス)オフセット、送信バッファ#、受信バッファ用は、転送制御情報、転送先(メインメモリ)アドレス、転送長、転送元(受信バッファのアドレス)オフセット、受信バッファ#−チェイン情報で構成されており、それぞれ4つのデータ転送制御レジスタ情報を格納することができる。ここでいう受信バッファ#−チェイン情報は、受信バッファ106からメインメモリ109へのデータ転送をIU単位で行うための情報で、受信バッファ#を最大4つまで設定することができる。例えば、IUを構成するフレームが、受信バッファ#5、#7、#8、#0の順に格納されている場合は、チェイン情報#5−#7−#8−#0をセットすればよい。入出力バス制御部108は、このチェイン情報に従って、IUを組立てながらメインメモリ109に転送する。この様に本発明では、受信IUを、IUを構成するフレームが格納された受信バッファ#のチェイン情報で取り扱い、このチェイン情報でIU転送を可能とすることで、IUを組み立てる専用のメモリ領域は必要ない。また、受信バッファ用データ転送制御レジスタの転送制御情報でSB_CRCの計算が指示されていた場合は、SB_CRCチェック回路114でIUのSB_CRC計算を、更に、SB_CRCチェックが指示されていた場合は、IUのSB_CRCチェックを行う。この時、データ転送とSB_CRCチェックは受信バッファのそれぞれ異なるリードポートから実行され、両者の動作は非同期に行われる。受信バッファ用データ転送制御レジスタが複数セットアップされている場合は、その優先度に従って、データ転送、SB_CRCチェックがそれぞれ独立に連続して実行される。
【0042】
SB_CRC生成回路113、SB_CRCチェック回路114には、それぞれリンク制御レジスタ115とデータ転送制御レジスタ116に対応した4つのSB_CRC生成初期レジスタ117とSB_CRCチェック初期レジスタ118が存在し、リンク制御部104と入出力バス制御部108の指示で、SB_CRC計算を初期レジスタ値から開始して、計算結果を同レジスタに格納する。また、このレジスタはFCプロトコル制御部107のマイクロプログラムでリード、ライト可能で、SB_CRC初期値の仕様変更に柔軟に対応可能であり、更に、SB_CRCの計算が複数回に跨る場合、以前のSB_CRC計算結果を一旦ローカルメモリ112に格納し、続いて計算が必要なデータが準備できた段階で、改めてSB_CRC計算結果を初期レジスタに代入して、続きのSB_CRC計算をさせるといった制御も可能で、IUの多重処理にも柔軟に対応することができる。
【0043】
上位インタフェース制御装置101は、従来例(図8)と同様に、メインメモリ109と中央処理装置110が入出力バス制御部111を介して、下位インタフェース制御装置100と接続する構造になっている。
【0044】
以下に図1と図6のフローチャートを利用して、IU送信におけるデータの流れとSB_CRC生成方法を詳細に説明する。
【0045】
まず、上位インタフェース制御装置101のメインメモリ109に送信すべきIUを準備した(600)中央処理装置110は、入出力バス102を介して、下位インタフェース制御装置100のFCプロトコル制御部107に対して、IU送信の準備ができたことを報告する(601)。
【0046】
次に、IU送信準備完了の報告を受けたFCプロトコル制御部107は、送信バッファ105から空いている送信バッファ#を確保し、データ転送制御レジスタ116に、この送信バッファ#とオフセットアドレス、メインメモリ109のデータ転送元アドレス、データ転送長、転送制御情報をセットし、入出力バス制御部108に対してデータ転送要求を行う(602)。データ転送要求を受けた入出力バス制御部108は、データ転送制御レジスタ116に従って、メインメモリ109からデータを当該送信バッファに格納し、完了後、FCプロトコル制御部107に終了報告を行う(603)。また、IU送信準備完了を連続して受けた場合は、以前要求したデータ転送が完了するしないに関らず、次の送信バッファ#を確保し、レジスタをセットして次のデータ転送を要求する。
【0047】
次に、データ転送終了報告を受けたFCプロトコル制御部107は、SB_CRCの生成、付加が必要なら、データ転送終了した送信バッファ#に対応したSB_CRC生成初期レジスタ117にSB_CRC初期値を、リンク制御レジスタ115にフレームの開始、終了コード、ヘッダ情報、IU長、更にSB_CRC生成、付加といった送信制御情報をセットし、リンク制御部104にIU送信要求を行う(604)。IU送信要求を受けたリンク制御部104は、リンク制御レジスタ115に従って、IUをフレームに分割しながら送信し(605)、更にSB_CRC生成をフレーム送信とは非同期に行う(606)。本実施例では、送信バッファ105の1つのポートからリンクのビットレートに合わせてデータを読み出し、フレーム送信、またフレーム毎に付加するフレームCRC生成を行い、他のポートからはSB_CRC生成のためのデータを読み出し、SB_CRC生成回路113でSB_CRC生成する。
【0048】
送信IUへのSB_CRC付加が要求されている場合、分割した最終フレームのデータ部に生成したSB_CRCを付加する必要があるが、課題を解決するための手段の項で示した様に、フレーム構造やフレーム送信プロトコルのオーバヘッドから、フレーム送信より先にSB_CRC生成が終了するので、問題なくSB_CRCを付加することができる。
【0049】
また、SB_CRCが2つのIUに跨って生成される様な場合は、初めのIU送信でFCプロトコル制御部107は、SB_CRC生成初期レジスタ117にSB_CRC初期値を、リンク制御レジスタ115の送信制御情報にSB_CRC生成と生成後報告をセットし、リンク制御部104にIU送信要求を行う。IU送信要求を受けたリンク制御部104では、フレーム送信とSB_CRC生成を非同期に行い、当該IUのSB_CRC生成が終了した時点で、FCプロトコル制御部107に生成されたSB_CRCを報告する。SB_CRC生成終了の報告を受けたFCプロトコル制御部107は、先に要求したIU送信が完了する前に、次のIUが格納されている送信バッファ#に対応したSB_CRC生成初期レジスタ117に報告うけたSB_CRC値を、リンク制御レジスタ115の送信制御情報にSB_CRC生成と付加をセットし、リンク制御部104にIU送信要求を行う。リンク制御部104では、先に要求されたIU送信が完了していないものの、次のSB_CRC生成は非同期に動作可能なので、SB_CRC生成回路113において、次のSB_CRC生成を行う。先のIU送信が完了するとリンク制御部104では、続いて次のIU送信がスタートし、リンク上には、フレームが切れ目なく送信されることになる。
【0050】
以上説明した様に、SB_CRC生成を下位インタフェース制御装置のIU送信時、送信バッファからSB_CRC生成のデータとIU送信を非同期に読み出すことで、SB_CRC生成のオーバヘッド無しにIUを構成するフレームを送信することができる。
【0051】
続いて、図1と図7のフローチャートを利用して、フレーム受信からIU構築、更にはIUを上位インタフェース制御装置へ転送するデータの流れとSB_CRCチェック方法を詳細に説明する。
【0052】
光ファイバケーブル103から下位インタフェース制御装置100に入力された信号は、リンク制御部104でフレームに構築され、受信バッファ106に格納される。更に、その受信バッファ#は、FCプロトコル制御部107に報告される。フレーム単位に付加されるフレームCRCは、受信バッファ106に格納される際に、リンク制御部104でチェックされる(610)。フレーム受信報告を受けたFCプロトコル制御部107では、報告された受信バッファ#に格納されているフレームのヘッダ部や開始、終了コード、更にはリンク制御部104でチェックされたフレームCRCの合否を参照して、フレームの正当性や種類、構造、更にはULPの判断を行う(611)。受信フレームがIUを構成するフレームの1つである場合、FCプロトコル制御部107ではフレームの受信バッファ#をローカルメモリ112に格納し、IUを構成する全フレームを受信するまで、上位インタフェース制御装置101へのIU転送を保留する(612)。以上の判断は、FCプロトコル制御部107のマイクロプログラムで行われるため、ULPの仕様変更や新しいULPに柔軟に対応することができる。
【0053】
IUを構成する全フレームを受信し、さらに当該IUにSB_CRCが含まれる場合、FCプロトコル制御部107は、受信バッファ用データ転送制御レジスタ116にローカルメモリ112に格納しておいた受信バッファ#のチェイン情報とオフセットアドレス、メインメモリ109のデータ転送先アドレス、データ転送長、転送制御情報を、対応するSB_CRCチェック初期レジスタ118にSB_CRC初期値をセットし、入出力バス制御部108にデータ転送要求を行う(613)。
【0054】
データ転送要求を受けた入出力バス制御部108は、データ転送制御レジスタ116に従って、受信バッファ#をチェインさせIUを組立てながら、IUをメインメモリ109に転送し(614)、更にSB_CRC計算をIU転送とは非同期に行う(615)。本実施例では、受信バッファ106の1つのポートから入出力バスの転送レートに合わせてデータを読み出し、IU転送を行い、他のポートからはSB_CRC計算、チェックのためのデータを読み出し、SB_CRCチェック回路114でSB_CRCを計算、チェックする。
【0055】
また、SB_CRCが2つのIUに跨っている様な場合は、FCプロトコル制御部107で、初めのIUを構成する全フレームを受信してから、SB_CRCチェック初期レジスタ118にSB_CRC初期値を、データ転送制御レジスタ116に受信バッファ#のチェイン情報、SB_CRC計算、計算後報告の転送制御情報をセットし、入出力バス制御部108にIU転送要求を行う。IU転送要求を受けた入出力バス制御部108では、IU転送とSB_CRC計算を非同期に行い、当該IUのSB_CRC計算が終了した時点で、FCプロトコル制御部107に計算したSB_CRCを報告する。SB_CRC計算終了の報告を受けたFCプロトコル制御部107は、次IUを構成する全フレームの受信が完了していたら、先に要求したIU転送が完了していなくても、SB_CRCチェック初期レジスタ118に報告を受けたSB_CRC値を、データ転送制御レジスタ116に次IUを構成する受信バッファ#のチェイン情報、SB_CRC計算、チェックの転送制御情報をセットし、入出力バス制御部108にIU転送要求を行う。入出力バス制御部108では先に要求されたIU転送が完了していないものの、次のSB_CRC計算は非同期に動作可能なので、SB_CRCチェック回路114において次のSB_CRC計算、チェックを行う。先のIU転送が完了すると入出力バス制御部108では、続いて次のIU転送がスタートし、入出力バス102に効率よくデータを転送することができる。
【0056】
以上説明した様に、SB_CRCチェックを下位インタフェース制御装置のIU転送時、受信バッファからSB_CRCチェックのデータとIU転送を非同期に読み出すことで、SB_CRCチェックのオーバヘッド無しにIUを上位インタフェース制御装置に転送することができる。
【0057】
以上SB_CRCB2の様に、IU(上位プロトコルの制御単位)が、複数のフレーム(下位プロトコルの制御単位)で構成される場合について詳細に説明したが、本発明はこれに止まることなく、上位プロトコルの制御単位が複数の下位プロトコルの制御単位で構成される様なデータ転送系において当て嵌めることができるのは、いうまでもない。
【0058】
【発明の効果】
複数フレームに跨るIUのSB_CRC計算をデータ転送要求契機にデータ転送と非同期で行うことにより、SB_CRC計算のオーバヘッドを無くし、データ転送を最大性能で実行することができる。
【0059】
更に、データ転送要求を複数セット可能とすることで、IUのチェインや、更に、そのSB_CRC計算が必要な場合にも、データ転送を最大性能で実行することができる。
【0060】
SB_CRC計算の初期値や結果をマイクロプログラムでライト、リード可能とすることにより、SB_CRC計算の仕様変更や、SB_CRC計算を多重に処理する必要がある場合も柔軟に対応できる。
【0061】
受信フレームから組み立てたIUを処理する際、同IUを受信フレームの格納バッファ#のチェイン情報で処理可能とすることで、IUを組み立てる専用のメモリが必要ない。
【図面の簡単な説明】
【図1】本発明のインタフェース制御装置の一実施例を示す構成図である。
【図2】(a)は本発明に関するインタフェースのフレーム構造を示した図、(b)は本発明に関するインタフェースの情報ユニット構造を示した図、(c)は本発明に関するインタフェースのSBデータ構造を示した図である。
【図3】本発明のインタフェース制御方法で、SB_CRCチェック制御の動作例を示した図である。
【図4】(a)は本実施例における送信バッファの構成図、(b)は本実施例における受信バッファの構成図である。
【図5】(a)は本実施例におけるリンク制御レジスタの構成図、(b)は本実施例におけるデータ転送制御レジスタの構成図、(c)は本実施例におけるSB_CRC生成初期レジスタの構成図、(d)は本実施例におけるSB_CRCチェック初期レジスタの構成図である。
【図6】本実施例におけるIU送信とSB_CRC生成方法を示すフローチャートである。
【図7】本実施例におけるIU受信とSB_CRCチェック方法を示すフローチャートである。
【図8】本発明の関するインタフェース制御装置の従来例を示す構成図である。
【図9】図8において、フレーム送信制御方法を示すフローチャートである。
【図10】図8において、フレーム受信制御方法を示すフローチャートである。
【図11】図8において、SB_CRC生成を中央処理装置で実現した場合のIU送信制御方法を示すフローチャートである。
【図12】図8に於いて、SB_CRCチェック生成を中央処理装置で実現した場合のIU受信制御方法を示すフローチャートである。
【図13】図8に於いて、SB_CRC生成をFCプロトコル制御部で実現した場合のIU送信制御方法を示すフローチャートである。
【図14】図8において、SB_CRCチェック生成をFCプロトコル制御部で実現した場合のIU受信制御方法を示すフローチャートである。
【符号の説明】
100…下位インタフェース制御装置、101…上位インタフェース制御装置、102…入出力バス、103…光ファイバケーブル、104…リンク制御部、105…送信バッファ、106…受信バッファ、107…FCプロトコル制御部、108…入出力バス制御部、109…メインメモリ、110…中央処理装置、111…入出力バス制御部、112…ローカルメモリ、113…SB_CRC生成回路、114…SB_CRCチェック回路、115…リンク制御レジスタ、116…データ転送制御レジスタ、117…SB_CRC生成初期レジスタ、118…SB_CRCチェック初期レジスタ、200…フレーム、201…情報ユニット、202…SBデータ、700…下位インタフェース制御装置、701…上位インタフェース制御装置、702…入出力バス、703…光ファイバケーブル、704…リンク制御部、705…送信バッファ、706…受信バッファ、707…FCプロトコル制御部、708…入出力バス制御部、709…メインメモリ、710…中央処理装置、711…入出力バス制御部、712…ローカルメモリ。
Claims (3)
- データを格納する送信バッファと、
前記データと当該データのチェックコードを有するフレームを複数個含む情報ユニットを各フレームに分割して送信するリンク制御部と、
前記送信バッファのデータを、リンク上のビットレートよりも高速で読み出し、前記読み出したデータのチェックコードをチェックコード生成初期値を基に生成するとともに、当該生成結果を保持する前記チェックコード生成回路と、
前記チェックコード生成回路で生成されたチェックコードを判別し、前記判別結果に従って前記リンク制御部と前記チェックコード生成回路に対する処理を行うプロトコル制御部と、を有し、
前記プロトコル制御部は、
前記チェックコード生成回路で生成されたチェックコードが複数の情報ユニットに跨っている場合、前記情報ユニット毎の送信を前記リンク制御部に要求し、前記チェックコード生成回路で前記各情報ユニットに対応して生成された生成結果のうち、先の生成結果を次の情報ユニットのチェックコード生成初期値として前記チェックコード生成回路にセットし、
前記リンク制御部は、
前記チェックコード生成回路で前記各情報ユニットに対応して生成された生成結果と前記送信バッファから読み出したデータから前記各情報ユニットを構成し、当該各情報ユニットを順次複数のフレームに分割し、前記分割されたフレームの送信を、前記チェックコード生成回路によるチェックコードの生成とは非同期で行う、ことを特徴とするインタフェース制御装置。 - データと当該データのチェックコードを含むフレームを受信するリンク制御部と、
前記リンク制御部で受信されたフレームを格納する受信バッファと、
前記受信バッファからのデータを格納するメインメモリと、
前記受信バッファと前記メインメモリとの間のデータ転送を制御する入出力バス制御部と、
前記受信バッファのフレームを前記データ転送の速度よりも高速で読み出し、前記読み出したフレームのチェックコードをチェックコードチェック初期値を基にチェックするとともに、当該チェック結果を保持するチェックコードチェック回路と、
前記受信バッファの格納結果と前記チェックコードチェック回路のチェック結果を判別し、前記判別結果に従って前記入出力バス制御部と前記チェックコードチェック回路に対する処理を行うプロトコル制御部と、を有し、
前記プロトコル制御部は、
前記受信バッファに、情報ユニットを構成する複数のフレームが複数情報ユニット分格納され、且つ前記チェックコードチェック回路のチェック対象となるチェックコードが複数の情報ユニットに跨っている場合、前記情報ユニット毎の転送を前記入出力バス制御部に要求し、前記チェックコードチェック回路で前記各情報ユニットについてチェックされたチェック結果のうち、先のチェック結果を次の情報ユニットのチェックコードチェック初期値として前記チェックコードチェック回路にセットし、
前記入出力バス制御部は、
前記チェックコードチェック回路で前記各情報ユニットについてチェックされたチェック結果と前記受信バッファから読み出したデータとから前記各情報ユニットを構成し、当該各情報ユニットを順次前記メインメモリに転送し、当該転送を、前記チェックコードチェック回路によるチェックコードのチェックとは非同期で行う、ことを特徴とするインタフェース制御装置。 - データを格納する送信バッファと、
前記データと当該データのチェックコードを有するフレームを複数個含む情報ユニットを各フレームに分割して送信するとともに、前記フレームを受信するリンク制御部と、
前記送信バッファのデータを、リンク上のビットレートよりも高速で読み出し、前記読み出したデータのチェックコードをチェックコード生成初期値を基に生成するとともに、当該生成結果を保持する前記チェックコード生成回路と、
前記リンク制御部で受信されたフレームを格納する受信バッファと、
前記受信バッファからのデータを格納するメインメモリと、
前記受信バッファと前記メインメモリとの間のデータ転送を制御する入出力バス制御部と、
前記受信バッファのフレームを前記データ転送の速度よりも高速で読み出し、前記読み出したフレームのチェックコードをチェックコードチェック初期値を基にチェックするとともに、当該チェック結果を保持するチェックコードチェック回路と、
前記受信バッファの格納結果と前記チェックコードチェック回路のチェック結果および前記チェックコード生成回路で生成されたチェックコードを判別し、前記判別結果に従って前記入出力バス制御部と前記チェックコードチェック回路と前記リンク制御部および前記チェックコード生成回路に対する処理に対する処理を行うプロトコル制御部と、を有し、
前記プロトコル制御部は、
前記チェックコード生成回路で生成されたチェックコードが複数の情報ユニットに跨っている場合、前記情報ユニット毎の送信を前記リンク制御部に要求し、前記チェックコード生成回路で前記各情報ユニットに対応して生成された生成結果のうち、先の生成結果を次の情報ユニットのチェックコード生成初期値として前記チェックコード生成回路にセットし、
前記受信バッファに、情報ユニットを構成する複数のフレームが複数情報ユニット分格納され、且つ前記チェックコードチェック回路のチェック対象となるチェックコードが複数の情報ユニットに跨っている場合、前記情報ユニット毎の転送を前記入出力バス制御部に要求し、前記チェックコードチェック回路で前記各情報ユニットについてチェックされたチェック結果のうち、先のチェック結果を次の情報ユニットのチェックコードチェック初期値として前記チェックコードチェック回路にセットし、
前記リンク制御部は、
前記チェックコード生成回路で前記各情報ユニットに対応して生成された生成結果と前記送信バッファから読み出したデータから前記各情報ユニットを構成し、当該各情報ユニットを順次複数のフレームに分割し、前記分割されたフレームの送信を、前記チェックコード生成回路によるチェックコードの生成とは非同期で行い、
前記入出力バス制御部は、
前記チェックコードチェック回路で前記各情報ユニットについてチェックされたチェック結果と前記受信バッファから読み出したデータから前記各情報ユニットを構成し、当該各情報ユニットを順次前記メインメモリに転送し、当該転送を、前記チェックコードチェック回路によるチェックコードのチェックとは非同期で行う、ことを特徴とするインタフェース制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000384895A JP4615122B2 (ja) | 2000-12-13 | 2000-12-13 | インタフェース制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000384895A JP4615122B2 (ja) | 2000-12-13 | 2000-12-13 | インタフェース制御装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002183072A JP2002183072A (ja) | 2002-06-28 |
JP2002183072A5 JP2002183072A5 (ja) | 2007-12-06 |
JP4615122B2 true JP4615122B2 (ja) | 2011-01-19 |
Family
ID=18852259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000384895A Expired - Lifetime JP4615122B2 (ja) | 2000-12-13 | 2000-12-13 | インタフェース制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4615122B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006070443A1 (ja) | 2004-12-27 | 2006-07-06 | Fujitsu Limited | 転送データの正当性を判定する装置及び方法 |
JP5107880B2 (ja) * | 2008-12-10 | 2012-12-26 | 株式会社日立製作所 | データ転送処理装置及び方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0563756A (ja) * | 1991-09-02 | 1993-03-12 | Hitachi Ltd | 通信プロトコル制御装置 |
JPH0793243A (ja) * | 1993-09-27 | 1995-04-07 | Nec Eng Ltd | チャネル装置 |
JPH1155299A (ja) * | 1997-07-30 | 1999-02-26 | Matsushita Electric Ind Co Ltd | データ通信装置 |
JP2000138731A (ja) * | 1998-11-04 | 2000-05-16 | Matsushita Electric Ind Co Ltd | データ通信装置 |
-
2000
- 2000-12-13 JP JP2000384895A patent/JP4615122B2/ja not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0563756A (ja) * | 1991-09-02 | 1993-03-12 | Hitachi Ltd | 通信プロトコル制御装置 |
JPH0793243A (ja) * | 1993-09-27 | 1995-04-07 | Nec Eng Ltd | チャネル装置 |
JPH1155299A (ja) * | 1997-07-30 | 1999-02-26 | Matsushita Electric Ind Co Ltd | データ通信装置 |
JP2000138731A (ja) * | 1998-11-04 | 2000-05-16 | Matsushita Electric Ind Co Ltd | データ通信装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2002183072A (ja) | 2002-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7711871B1 (en) | Interface device and method for command processing | |
US7743178B2 (en) | Method and apparatus for SATA tunneling over fibre channel | |
KR100666515B1 (ko) | 저장 및 포워드 스위치 장치, 시스템 및 방법 | |
US6862648B2 (en) | Interface emulation for storage devices | |
US8504755B2 (en) | USB 3 bridge with embedded hub | |
US7411958B2 (en) | Method and system for transferring data directly between storage devices in a storage area network | |
US7912086B2 (en) | Method for bridging network protocols | |
JPH07325775A (ja) | 入出力通信サブシステム及び方法 | |
JPH03250946A (ja) | 通信装置 | |
JPH07325767A (ja) | 入出力通信サブシステム及び方法 | |
WO1998015896A1 (en) | High speed heterogeneous coupling of computer systems using channel-to-channel protocol | |
JPS6278659A (ja) | チヤネルシステム | |
US7460531B2 (en) | Method, system, and program for constructing a packet | |
JP2003242097A (ja) | クロスコール機能を備えるディスク制御装置 | |
JP6734824B2 (ja) | ストレージシステム | |
JP4615122B2 (ja) | インタフェース制御装置 | |
US6684274B1 (en) | Host bus adapter based scalable performance storage architecture | |
JP2723022B2 (ja) | ディスク装置のインタフェース及びその制御方法 | |
US20070076685A1 (en) | Programmable routing for frame-packet based frame processing | |
JP4148663B2 (ja) | データ保証システム | |
JP4432388B2 (ja) | 入出力制御装置 | |
US20040151191A1 (en) | Method and apparatus for processing raw fibre channel frames | |
JP3500565B2 (ja) | メッセージ分割通信方法及び通信システム | |
JP4930554B2 (ja) | 入出力制御装置 | |
JP2001034567A (ja) | 外部記憶サブシステムおよび外部記憶サブシステムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060418 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071019 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071019 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20071019 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071211 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100818 |
|
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: 20100928 |
|
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: 20101020 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4615122 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131029 Year of fee payment: 3 |
|
EXPY | Cancellation because of completion of term |