(57)【要約】【課題】ホスト装置からの受信フレームの順序不正が生じると、マルチデータフレームの再送を要求したり、或いはデバイスへのリード、ライトをセクタ単位からセクタより小さいデータサイズに切り替える等が必要である。【解決手段】順序不正フレームを転送する場合、順次不正フレームの１つ前のフレームの最終セクタのデータにダミーデータ８を付加し、順序不正フレームの先頭セクタのデータにダミーデータ８を付加し、セクタ単位でデバイス部に転送する。また、デバイス部から１つ前のフレームの最終セクタ及び順序不正フレームの先頭セクタを記憶部３０７に読み込み、各セクタのうちダミーデータをフレームデータに置き換え、再度、セクタ単位でデバイス部に転送する。【選択図】　　　　　図１
2004030824.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からフレーム単位で転送されたデータを受信するコントロール部と、前記コントロール部とシステムバスで接続され、前記コントロール部から転送されたデータを格納するデバイス部とを有するディスク装置において、前記ホスト装置から転送されたフレームの順序不正を検出する手段と、所定のダミーデータを出力する手段と、少なくとも１セクタの容量を有する記憶手段と、前記コントロール部からデバイス部へのデータ転送を制御する制御手段とを含み、前記制御手段は、前記検出手段で検出された順序不正フレームを転送する場合には、順次不正フレームの１つ前のフレームの最終セクタにおけるデータに前記ダミーデータ出力手段のダミーデータを付加してセクタ単位でデータを転送した後、順序不正フレームの先頭セクタにおけるデータに前記ダミーデータ出力手段のダミーデータを付加してセクタ単位で前記デバイス部に転送することを特徴とするディスク装置。
【請求項２】
前記制御手段は、前記デバイス部から前記１つ前のフレームの最終セクタ及び前記順序不正フレームの先頭セクタをそれぞれ前記記憶手段に読み込み、且つ、各セクタのうちダミーデータをフレームデータに置き換え、再度、前記記憶手段からセクタ単位で前記デバイス部に転送することを特徴とする請求項１に記載のディスク装置。
【請求項３】
前記ディスク装置は、前記ホスト装置に複数のファブリックから成るファブリック群を介して接続されていることを特徴とする請求項１に記載のディスク装置。
【請求項４】
前記ホスト装置からディスク装置にコネクション確立型ではないファイバチャネル仕様の転送方式でデータが転送されることを特徴とする請求項１に記載のディスク装置。
【請求項５】
前記ホスト装置は、ＦＣ−ＳＣＳＩプロトコルを使用していることを特徴とする請求項１に記載のディスク装置。
【請求項６】
前記検出手段は、フレームデータのシーケンス番号とパラメータフィールドからフレームの順序不正を検出することを特徴とする請求項１に記載のディスク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク装置、特に、ホスト装置からのフレーム単位のデータを受信するディスク装置に関するものである。
【０００２】
【従来の技術】
図４は従来のホスト装置、ディスク装置等を含む情報記録システムの一例を示す概略ブロック図である。図４において、１０１はファイバチャネルインタフェースで接続されたホスト装置、１１１〜１１４はファブリック、１２１はディスク装置である。ホスト装置１０１は複数のファブリックから成るファブリック群を介してディスク装置１２１と接続されている。
【０００３】
このシステムにおいて、ホスト装置１０１から複数のファブリック１１１〜１１４から成るファブリック群を介してディスク装置１２１にコネクション確立型ではない方式でフレームデータを転送すると、例えば、ホスト装置１０１から送信されたマルチフレームが各フレーム毎に経路Ａや経路Ｂの別経路を通ってディスク装置１２１に転送されることがあり、各経路の負荷状況によってはマルチデータフレームの順序性がディスク装置１２１で保証されない場合がある。
【０００４】
【発明が解決しようとする課題】
このように従来システムにおいては、ホスト装置１０１からディスク装置１２１に対して複数のファブリックからなるファブリック群を介してフレームデータが転送されると、転送経路が確定されないファイバチャネルのクラス２、クラス３の様なフレーム転送方式の場合には、特定ファブリックの負荷状態によりディスク装置１２１のフレーム受信順序が保証されない問題があった。
【０００５】
通常、ディスク装置１２１はデータフレームを受信すると、フレーム順序のチェックを行い、順序不正を検出すると、例えば、一連のマルチデータフレームの再送をデータ転送元装置に対して要求する。また、他の方法として、ディスク装置１２１のコントローラ（図示せず）はフレームの順序不正を検出以降にデバイス（メモリカード）側へのリード、ライトをセクタ単位の転送からセクタより小さいデータサイズ（固定サイズ）に切り替えて転送したり、或いは、例えば、１バイト単位の可変長セクタアクセス転送の機能を別途付加する必要があった。
【０００６】
即ち、これは、ファイバチャネルの可変フレーム長とデバイスの固定セクタ長の区切りが一般的には一致しない為、受信フレームの順序不正の検出時にはファイバチャネルの可変長フレームの受信から固定長セクタ単位でデバイスにリード、ライト可能な様にデータ長を変換する必要があるためであった。
【０００７】
本発明は、上記従来の問題点に鑑みなされたもので、その目的は、可変長セクタアクセス転送等の機能を要することく、受信フレームの順序不正に簡単に対応可能なディスク装置を提供することにある。
【０００８】
【課題を解決するための手段】
本発明は、上記目的を達成するため、ホスト装置からフレーム単位で転送されたデータを受信するコントロール部と、前記コントロール部とシステムバスで接続され、前記コントロール部から転送されたデータを格納するデバイス部とを有するディスク装置において、前記ホスト装置から転送されたフレームの順序不正を検出する手段と、所定のダミーデータを出力する手段と、少なくとも１セクタの容量を有する記憶手段と、前記コントロール部からデバイス部へのデータ転送を制御する制御手段とを含み、前記制御手段は、前記検出手段で検出された順序不正フレームを転送する場合には、順次不正フレームの１つ前のフレームの最終セクタにおけるデータに前記ダミーデータ出力手段のダミーデータを付加してセクタ単位でデータを転送した後、順序不正フレームの先頭セクタにおけるデータに前記ダミーデータ出力手段のダミーデータを付加してセクタ単位で前記デバイス部に転送することを特徴とする。
【０００９】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。まず、本発明はコネクション確立型ではない転送方式（ファイバチャネル仕様のクラス２、クラス３）でデータ転送を行った場合に生じる受信フレームの順序不正検出時に一連のマルチフレームデータの再送信を要求することなく、大規模な記憶手段を要することなく、更に、デバイス側への固定長セクタアクセス方式を変更することなく、セクタアクセスの効率低下を最小限に抑えることが可能なディスク装置を実現するものである。
【００１０】
図１は本発明のディスク装置の一実施形態の構成を示すブロック図である。なお、本実施形態では、ＦＣ−ＳＣＳＩプロトコルを使用したホスト装置からファブリック群を介して電子ディスク装置にマルチフレームのデータ転送を行う場合を説明をする。また、図１の電子ディスク装置は図４のホスト装置１０１と複数のファブリック１１１〜１１４等から成るファブリック群を介して接続され、ホスト装置１０１からフレーム単位で転送されたデータを受信する。
【００１１】
ここで、図１の電子ディスク装置は、図４のホスト装置１０１からファブリック群を介して送信されるファイバチャネルフレームを受信し制御するコントローラ側と、このフレームをデータとして格納する複数のメモリカードから成るデバイス側がシステムバスで接続された構成となっている。
【００１２】
ディスク装置のコントローラ側はホスト装置１０１からファイバチャネルのフレームデータを受信し格納するフレーム受信部３０１、ファイバチャネルのヘッダを格納し、シーケンス番号とパラメータフィールドからフレームの順序不正を検出するヘッダ記憶部３０２、ＦＣ−ＳＣＳＩプロトコルで一連のマルチフレームシーケンスのコマンド内容を示すＦＣＰ＿ＣＭＮＤフレームを格納するコマンド記憶部３０３、コマンド記憶部３０３からの情報（論理ユニット番号、論理ブロックアドレス、転送長）でシーケンスのデータ長を計数するデータ長カウンタ３０４を含んでいる。
【００１３】
また、ディスク装置のコントロール側はコマンド記憶部３０３とセクタアクセス制御部３０５の情報（転送セクタ番号）からメモリカードのアドレスへ変換を行うアドレス制御部３０６、順序不正フレーム受信時にメモリカードの１セクタを読み込んで格納し、フレーム受信部３０１からセクタを部分的に編集しメモリカードに対して書き戻しを行う一時的セクタ記憶部３０７、セクタの一部にダミーデータを付加するダミーデータ３０８、システムバスへ転送するセクタを選択するセクタ３０９、フレーム受信部３０１と一時的セクタ記憶部３０７とダミーデータ３０８をセレクトしてメモリカードのセクタアクセスを制御するセクタアクセス制御部３０５から構成されている。
【００１４】
デバイス側は複数のメモリカード３２０、３２１を含んでおり、これらのメモリカード３２０、３２１はシステムバス３１１、コントロールバス３１０に接続されている。メモリカード３２０、３２１は、それぞれセクタ０〜セクタｎ−１から構成され、ホスト装置１０１から送信されたデータが格納される。
【００１５】
次に、本実施形態の動作を図１、図２、図３を参照して説明する。まず、電子ディスク装置はホスト装置１０１からＦＣＰ＿ＣＭＮＤフレームを受信すると、当該シーケンスの論理ユニット番号、論理ブロックアドレス、転送長をコマンド記憶部３０３に格納し、続いて転送されるＦＣＰ＿ＤＡＴＡの受信時にはフレーム受信部３０１にフレームデータを格納すると共に、各フレームのヘッダ（シーケンスカウント、パラメータフィールド）をヘッダ記憶部３０２に格納する。
【００１６】
ここで、図２に示すケース１の様に受信したＦＣＰ＿ＤＡＴＡのフレーム順序がフレーム１、２、３、４、…というように正常である場合には、セクタアクセス制御部３０５はヘッダ記憶部３０２より順序が正常なフレームであると通知され、セクタアドレス制御部３０５はセレクタ３０９によりシステムバス３１１へ送出するデータをフレーム受信部３０１側に切り替える。
【００１７】
また、アドレス制御部３０６はコマンド記憶部３０３から通知された論理ユニット番号、論理ブロックアドレス、転送セクタ番号を基に当該シーケンスのメモリカード上のアドレスを算出する。更に、アドレス制御部３０６はセクタアクセス制御部３０５がフレーム受信部３０１からセクタ単位でシステムバス３１１を介してメモリカードにデータを転送するのに同期して、転送セクタ分シフトさせたアドレス（各セクタに対応するアドレス）をコントロールバス３１０に送出し、セクタ単位のデータ転送を行う。
【００１８】
この様子を図２のケース１のデバイス側に示す。即ち、セクタ０、１、２、３、ｎ−１、…ライトとして示すようにセクタ単位でデバイス側に転送される。この結果、フレーム受信部３０１のデータがセクタ単位でシステムバス３１１を介してデバイス側に転送され、デバイス側のメモリカード３２０又は３２１に格納される。
【００１９】
一方、図２に示すケース２の様に本来はフレーム０、１、２、３、４、…の順に受信するはずのマルチフレームシーケンスが、例えば、フレーム０、１、３、４、２、…の順にフレーム受信部３０１で受信した場合には、セクタアクセス制御部３０５はフレーム０、１の受信までは正常順序なので、図３に示すセクタ０、１、２までは、メモリカード３２０又は３２１に通常通りデータ転送制御を行う。
【００２０】
この場合のデバイス側へのセクタの転送順序を図２（ケース２のデバイス側）に示す。即ち、図２のデバイス側にセクタ０、１、２ライトとして示すようにセクタ０、１、２までは通常通りにセクタ単位で転送を行う。なお、図３はフレーム受信部３０１における各セクタのアドレスイメージを示すものであり、物理的なフレームデータの格納場所を示すものではない。
【００２１】
また、ヘッダ記憶部３０２はフレーム３を受信してフレームの順序不正を検出し、本来受信すべきフレーム２より大きなシーケンス番号であることを認識すると、セクタアクセス制御部３０５に通知し、セクタアクセス制御部３０５ではフレーム受信部３０１から図２のセクタ３Ａを掃き出す。続いて、セクタアクセス制御部３０５はセレクタ３０９を制御してダミーデータ３０８に切り替え、当該セクタの残りのセクタ３Ｂ分をダミーデータ３０８に切り替えてセクタ３Ａにダミーデータを付加し、合計で１セクタ分のデータ転送（セクタ３）を行う。この様子を図２のケース２のデバイス側にセクタ３ライト（ダミー）として示している。
【００２２】
次いで、フレーム３のデータを転送するため、セクタアクセス制御部３０５はセレクタ３０９を制御することによりセクタ５Ａ分をダミーデータ３０８に切り替えて転送を行い、続いてセクタ５Ｂ分をフレーム受信部３０１に格納されたデータを付加して合計１セクタ分のデータ転送（セクタ５）を行う。この様子を図２のケース２のデバイス側にセクタ５ライト（ダミー）として示す。次に、フレーム４の連続性は保たれているので、セクタ６、７、８の転送を行う。この様子を図２のケース２のデバイス側にセクタ６、７、８ライトとして示す。
【００２３】
最後に、フレーム２を受信してフレームの順序不正を検出し、本来受信すべきフレーム５より小さなシーケンス番号であることを認識すると、セクタアクセス制御部３０５は一時的セクタ記憶部３０７にメモリカードからセクタ３を読み込む。この様子を図２のケース２のデバイス側にセクタ３リードとして示す。この際、セクタアクセス制御部３０５はセクタ３Ａは編集せずにセクタ３Ｂをフレーム受信部３０１より書き込み、更に、セレクタ３０９を制御してシステムバス３１１への転送を一時的セクタ記憶部３０７に切り替え、１セクタ分（セクタ３）をデバイス側のメモリカードに転送する。この様子を図２のケース２のデバイス側にセクタ３ライトとして示す。
【００２４】
次いで、セクタアクセス制御部３０５はセレクタ３０９を制御してフレーム受信部３０１に切り替えてセクタ４を転送する。この様子を図２のケース２のデバイス側にセクタ４ライトとして示す。その後、セクタアクセス制御部３０５は一時的セクタ記憶部３０７にメモリカードからセクタ５を読み込む。この様子を図２のケース２のデバイス側にセクタ５リードとして示す。
【００２５】
この時、セクタアクセス制御部３０５はセクタ５Ａをフレーム受信部３０１より書き込み、セクタ５Ｂは編集せずに、セレクタ３０９により一時的セクタ記憶部３０７に切り替え、１セクタ分（セクタ５）をデバイス側のメモリカードに転送する。この様子を図２のケース２のデバイス側にセクタ５ライトとして示す。
【００２６】
以上の動作により、順序不正のフレーム受信においても、コントローラ側とデバイス側のインタフェースをセクタ長より小さいデータサイズで転送することなく、セクタアクセスの効率低下を抑えることができ（図２のケース２におけるセクタ３のダミーライト、セクタ５のダミーライト、セクタ３のリード、セクタ５のリードのアクセスが増加）、固定長セクタ単位でのデータ転送が可能となる。
【００２７】
このように本実施形態では、ディスク装置のコントローラ側とデバイス側のインタフェースであるシステムバスのセクタ単位でのリード、ライト回数は多少増加はするものの、セクタサイズより小さいデータサイズの転送は行う必要がなく、更に、コントローラ側とデバイス側に可変長セクタアクセスの機能を盛り込む必要がなく、システムバスのアクセス効率の低下を最低限に抑えた固定長アクセスによる簡易なシステムバス動作を実現することができる。
【００２８】
【発明の効果】
以上説明したように本発明によれば、受信フレームの順序不正が起こった場合（フレーム損失ではない）でも、一連のマルチデータフレームの再送を行うことなく次処理を継続することができる。また、ディスク装置のコントローラ側に一連のマルチデータフレームのすべてを記憶可能な大容量の記憶手段を持つ必要がない。
【００２９】
更に、コントローラ側に１セクタ容量の記憶手段を持つだけでコントロール側とデバイス側のインタフェース上で可変長フレームと固定長セクタのデータ長の変換機能を設ける必要がなく、受信フレームの順序不正に対応できる。また、受信フレームの順序不正検出以降にもデバイス側への転送データサイズをセクタサイズより小さくする必要がないため、インタフェースのアクセス効率の低下を最小限に抑えることができる。
【図面の簡単な説明】
【図１】本発明のディスク装置の一実施形態の構成を示すブロック図である。
【図２】図１の実施形態のフレーム転送が正常な場合と順序不正が生じた場合のデータ転送のタイミングを示す図である。
【図３】図１のフレーム受信部における各セクタのアドレスイメージを示す図である。
【図４】ホスト装置とディスク装置を含むシステムの概略構成を示すブロック図である。
【符号の説明】
１０１　ホスト装置
１１１〜１１４　ファブリック
１２１　ディスク装置
３０１　フレーム受信部
３０２　ヘッダ記憶部
３０３　コマンド記憶部
３０４　データ長カウンタ
３０５　セクタアクセス制御部
３０６　アドレス制御部
３０７　一時的セクタ記憶部
３０８　ダミーデータ
３０９　セレクタ
３１０　コントロールバス
３１１　システムバス
３２０、３２１　メモリカード
【図１】
2004030824.tif 000003
【図２】
2004030824.tif 000004
【図３】
2004030824.tif 000005
【図４】
2004030824.tif 000006