(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとインタフェースを介して接続されたドライブ制御装置と、前記ドライブ制御装置とインタフェースを介して接続されてデータを記憶するディスク装置と、を備えた外部記憶装置であって、
連続する複数の論理ブロックにデータの書き込みを行う際に付加された、データ書き込みの先頭論理ブロックを表すスタート識別フラグ、データ書き込みの最終論理ブロックを表すエンド識別フラグ、及び論理ブロック毎に論理ブロックデータの更新情報を表す履歴情報、をもつ論理ブロックデータの読み出しを行う場合、
一の論理ブロックに対して前記エンド識別フラグの付加有無をチェックし、前記一の論理ブロック直後の論理ブロックに対して前記スタート識別フラグの付加有無をチェックし、何れの前記識別フラグも設定されていない場合には、両者の論理ブロックにおける前記履歴情報の一致か否かをチェックすることによって、前記論理ブロック毎のデータ書き込み抜けを検出する
ことを特徴とする外部記憶装置。
【請求項２】
請求項１において、
前記論理ブロック毎のデータ書き込み抜けを検出した場合に、前記データ書き込み抜けの論理ブロックに対して読み出しを停止することを特徴とする外部記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータから外部記憶装置に転送されたデータの整合性を保証する保証チェック方式に関し、特に、外部記憶装置へのデータが、連続する複数の論理ブロック数に亘って書き込まれるデータ書き込みにおけるデータ整合性の保証チェック方式に関する。
【０００２】
【従来の技術】
従来技術において、ホストコンピュータからのデータの書き込み及び読み出しを行う際のデータチェックは、各論理ブロックの最小単位毎のデータ内に何らかの原因で異常が発生した場合の為に、そのデータの整合性を保証する為の機能であるＣＲＣデータとＥＣＣデータの付加及びチェック機能と、論理ブロックデータを目的でない間違った論理ブロック記憶位置（アドレス）へ書き込みを行った場合の読み出し時の記憶位置（アドレス）チェック付加及びチェック機能と、によって、データの整合性の保証を行っている。
【０００３】
また、特開平５−７３２６６号公報においては、１つの論理ブロックを複数のデータブロックに分割して対応する複数のディスク装置に同時に書き込む方式において、分割した全てのデータブロックに対して、当該論理ブロック内の順番と更新／未更新の状態を読み出し時にチェックをできるようにして、上位装置に誤ったデータが転送されるのを防ぐ技術が開示されている。
【０００４】
また、特開平１１−１９４８９９号公報に記載の技術は、ディスク装置から読み出すべきデータを不揮発性メモリ上の書き込みバッファの空領域に物理的に連続したブロック単位に分割して詰めて格納する方式を採用するものであり、ホストからの要求データが複数の論理ブロックに分割されるという課題を解決している。この公報では、揮発性メモリに、書き込みの時間的順序を維持するためのタイムスタンプが設けられ、このタイムスタンプはホストシステムからの書き込みデータが実際にディスク装置に書き込まれるときに付加される情報であり、書き込まれる毎にタイムスタンプはインクリメントされて、ディスク上の書き込み順序の判定処理のみに使用されるものである。
【０００５】
また、特開２００１−３３８４６８号公報には、読み出し処理の際に、読み出し論理ブロックに付加されている履歴情報と、外部記憶装置が管理する全ての論理ブロック毎の履歴情報を管理しているエリア中の当該論理ブロック位置の履歴情報との比較を行い、履歴情報が一致すればデータの読み出しを行い、履歴情報が不一致であれば旧データの読み出しによるデータ障害の抑止を行うことが開示されている。
【０００６】
【発明が解決しようとする課題】
しかし、上述した従来技術では、ホストコンピュータからの書き込み処理中に何らかの原因によって発生した論理ブロック丸毎のデータ書き込み抜けに対する読み出し処理でのチェック機能は無い。即ち、目的論理ブロックへの新データ書き込みに失敗した場合、書き込みに失敗しているにも関わらず前回の書き込み処理にて旧データを新データに更新されているものと判断する。そうすると、次回の論理ブロックデータの読み出し時にて行われる従来技術であるチェック機能（ＣＲＣデータ、ＥＣＣデータ、ＬＢＡ(Logical Block Adress)データ）では、当該論理ブロック毎のデータが旧データ・新データであるかの判断を行う機能は無く、ホストコンピュータに対して更新されていない旧データを正しいデータとしホストコンピュータへ転送する処理であった。
【０００７】
また、特開平５−７３２６６号公報に記載の技術では、書き込み処理中に何らかの原因によって発生した外部記憶装置の取り扱い最小単位毎の論理ブロック丸毎のデータ書き込み抜けに対して、読み出し処理の際に連続する前後の論理ブロックとの関連性チェックにてデータ書き込み抜けを検出する技術ではない。
【０００８】
また、特開平１１−１９４８９９号公報には、メインメモリ上に作成した変換マップによって論理アドレスタグ内の各論理アドレスに付いて、有効データを指示している変換マップのタイムスタンプとそのストライプのタイムスタンプとを比較し、値が小さいブロックを無効ブロックと判定することができる旨が記載されているが、これはディスク上への書込処理の技術であり、論理ブロック丸ごとのデータ書き込み抜けのチェック方式に関するものではない。
【０００９】
また、特開２００１−３３８４６８号公報によると、各論理ブロックへの履歴情報の付加に加えて、全ての論理ブロック毎の履歴情報を管理しているエリア中の履歴情報を更新する必要があるというデメリットが発生する。また、当該エリア中の履歴情報が何等かの原因で破壊された場合等には回復することができず履歴情報チェックが不可能となる虞がある。
【００１０】
本発明の目的は、ホストコンピュータから外部記憶装置に対して書き込み処理中に、何らかの原因によって発生した論理ブロック丸毎のデータ書き込み抜けについて、データの読み出し処理の際に各論理ブロックに付加された付加情報に基づいて検知すること、また、この検知によって旧データをホストコンピュータに転送せずにデータ不正の発生を報告する高速且つ安価なシステムを提供することにある。
【００１１】
【課題を解決するための手段】
前記課題を解決するために、本発明は次のような構成を採用する。
ホストコンピュータとインタフェースを介して接続されたドライブ制御装置と、前記ドライブ制御装置とインタフェースを介して接続されてデータを記憶するディスク装置と、を備えた外部記憶装置であって、
連続する複数の論理ブロックにデータの書き込みを行う際に付加された、データ書き込みの先頭論理ブロックを表すスタート識別フラグ、データ書き込みの最終論理ブロックを表すエンド識別フラグ、及び論理ブロック毎に論理ブロックデータの更新情報を表す履歴情報、をもつ論理ブロックデータの読み出しを行う場合、
一の論理ブロックに対して前記エンド識別フラグの付加有無をチェックし、前記一の論理ブロック直後の論理ブロックに対して前記スタート識別フラグの付加有無をチェックし、何れの前記識別フラグも設定されていない場合には、両者の論理ブロックにおける前記履歴情報の一致か否かをチェックすることによって、前記論理ブロック毎のデータ書き込み抜けを検出する外部記憶装置。
【００１２】
前記外部記憶装置において、前記論理ブロック毎のデータ書き込み抜けを検出した場合に、前記データ書き込み抜けの論理ブロックに対して読み出しを停止する外部記憶装置。
【００１３】
【発明の実施の形態】
本発明の実施形態に係る外部記憶装置におけるデータ整合性の保証チェック方式について、図１〜図７を参照しながら以下詳細に説明する。図１は、本発明の実施形態に係る外部記憶装置の全体構成を示すブロック図である。図１において、１００はホストコンピュータ、１０１は外部記憶装置を示し、ホストコンピュータ１００および外部記憶装置１０１はインタフェースバス１１１を介し接続される。また、１０７はディスク装置を示し、ドライブ制御装置１０２およびディスク装置１０７はドライブインタフェースバス１１２を介し接続される。即ち、外部記憶装置１０１は、ドライブ制御装置１０２とディスク装置１０７を備えている。
【００１４】
ドライブ制御装置１０２は、論理ブロック毎の記憶位置（アドレス）及びデータの情報を基にＣＲＣデータの生成を行うＣＲＣデータ生成回路１０３と、ＣＲＣデータを基に記憶位置（アドレス）及びデータの整合性保証チェックを行うＣＲＣデータチェック回路１１０と、データ、ＣＲＣデータ構成を一時的に格納するバッファ１０４と、論理ブロック毎にＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報の付加を行う識別履歴付加回路１０５と、Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に関連性チェックを行う識別履歴チェック回路１０９と、データ、ＣＲＣデータ、Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基にＥＣＣデータの生成を行うＥＣＣデータ生成回路１０６と、ＥＣＣデータを基にデータ、ＣＲＣデータ、Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報のデータ整合性保証チェックを行うＥＣＣデータチェック回路１０８と、によって構成されている。
【００１５】
次に、ホストコンピュータ１００からディスク装置１０７に対しての論理ブロックデータの書き込み処理の流れについて説明する。ホストコンピュータ１００からインタフェースバス１１１を介して転送された論理ブロックデータは、ドライブ制御装置１０２内部にてＣＲＣデータ生成回路１０３を介し記憶位置（アドレス）及びデータを基にＣＲＣデータの生成及び付加を行い、データ、ＣＲＣデータ構成の論理ブロックデータとなる。ＣＲＣデータ生成回路１０３を介した論理ブロックデータは一時的にバッファ１０４へ格納される。
【００１６】
バッファ１０４を介した論理ブロックデータは識別履歴付加回路１０５を介して、ホストコンピュータ１００から連続する複数の論理ブロックデータを書き込む場合には、先頭論理ブロックにＳｔａｒｔ識別フラグ付加及び最終論理ブロックにＥｎｄ識別フラグ付加、及び各論理ブロック毎に履歴情報の付加を行い、また、外部記憶装置の取り扱い最小単位毎の論理ブロックデータを書き込む場合には、Ｓｔａｒｔ識別フラグ及びＥｎｄ識別フラグの付加、及び履歴情報の付加を行う。
【００１７】
識別履歴付加回路１０５を介した論理ブロックデータは、ＥＣＣデータ生成回路１０６にてＣＲＣデータ生成回路１０３で生成されたＣＲＣデータを基に、ＣＲＣデータチェックを行って、この結果、ＣＲＣエラーでなければ、データ、ＣＲＣデータ、Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に、ＥＣＣデータの生成及び付加を行い、データ及びＣＲＣデータ及びＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報構成の論理ブロックデータをディスク装置１０７へ書き込む処理を行う。
【００１８】
次に、ディスク装置１０７からホストコンピュータ１００に対しての論理ブロックデータの読み出し処理の流れについて説明する。まず、ディスク装置１０７からドライブインタフェースバス１１２を介して転送された論理ブロックデータは、ドライブ制御装置１０２内部にてＥＣＣデータチェック回路１０８を介し論理ブロックデータに付加されているＥＣＣデータを基に論理ブロックデータの整合性保証チェックを行う。
【００１９】
ＥＣＣデータチェック回路１０８にてＥＣＣエラーでなければ、識別履歴チェック回路１０９を介し論理ブロックデータに付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に、連続する前後の論理ブロックに付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報によりデータの整合性のチェック処理を行う（このチェック処理は本発明の特徴を表すものであるので、その詳細については後述する）。
【００２０】
その後、識別履歴チェック回路１０９を介した論理ブロックデータは、一時的にバッファ１０４へ格納され、バッファ１０４を介した論理ブロックデータは、ＣＲＣデータチェック回路１１０を介しＣＲＣデータを基に論理ブロックデータの整合性保証チェックを行う。ＣＲＣデータチェック回路１１０にてＣＲＣエラーでなければ論理ブロックデータをホストコンピュータ１００に転送する。
【００２１】
次に、論理ブロックデータ書き込み処理における、Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報の付加方法について、図２のフローチャートを用いて説明する。この付加方法の具体例については、図５の説明において詳述する。
【００２２】
ホストコンピュータ１００からの書き込み命令（ステップ２００）後、書き込み処理毎の履歴情報となる履歴情報更新（ステップ２０１）を行い、バッファ１０４より先頭論理ブロックデータ読み込み（ステップ２０２）を行う。その後、当該論理ブロックは先頭ブロックのためＳｔａｒｔ識別フラグの付加（ステップ２０３）を行い、また履歴情報の付加（ステップ２０４）を行う。
【００２３】
履歴情報の付加（ステップ２０４）後、当該論理ブロックが最終論理ブロックであるかの最終論理ブロック判定（ステップ２０５）を実施する。最終論理ブロック判定（ステップ２０５）にて当該論理ブロックが最終論理ブロックと判断された場合には、当該論理ブロックにＥｎｄ識別フラグを付加（ステップ２０８）し、ホストコンピュータ１００からの論理ブロックデータの書き込み（ステップ２０９）を実施して処理を終了する。
【００２４】
また、最終論理ブロック判定（ステップ２０５）により最終論理ブロックでないと判断された場合は、当該論理ブロックデータの書き込み（ステップ２０６）を実施後、バッファ１０４からの次論理ブロックデータ読み込み（ステップ２０７）を行い処理を繰り返し実施する。なお、ホストコンピュータ１００からの書き込み処理判定（ステップ２００）にて書き込み処理以外と判断された場合には、書き込み処理以外（ステップ２１０）の処理を実施する。
【００２５】
次に、論理ブロックデータ読み出し処理における、識別履歴チェック回路での関連性チェック方法について、図３のフローチャートを用いて説明する。この関連性チェック方法の具体例については、図５及び図６の説明において詳述するので、この詳述説明をも併せて参照のこと。
【００２６】
ホストコンピュータ１００から読み出し命令（ステップ３００）後、読み出し命令時の論理ブロックサイズ取得（ステップ３０１）し、先頭論理ブロックデータ読み込み（ステップ３０２）を行う。その後、先頭論理ブロックに付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報取得（ステップ３０３）し、先頭論理ブロックより取得したＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報をＲ０エリア（比較元付加情報格納するエリア）（ステップ３０４）へ格納する。
【００２７】
次に、残論理ブロックサイズをチェックする為に論理ブロックサイズ−１（ステップ３０５）を行い、残論理ブロックサイズ判定（ステップ３０６）にて残論理ブロックサイズが０と判断された場合には、残論理ブロックデータが無いと判断され処理を終了する。
【００２８】
また、残論理ブロックサイズ判定（ステップ３０６）にて残論理ブロックサイズが０でないと判断された場合には、次論理ブロックデータ読み込み（ステップ３０７）を行い、当該論理ブロックに付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報取得（ステップ３０８）し、当該論理ブロックより取得したＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報をＲ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）へ格納する。
【００２９】
その後、既にＲ０エリア（比較元付加情報格納するエリア）（ステップ３０４）に格納されているＥｎｄ識別フラグ及びＲ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）へ格納されているＳｔａｒｔ識別フラグを基に、Ｒ０エリア（比較元付加情報格納するエリア）（ステップ３０４）格納Ｅｎｄ識別フラグ及び、Ｒ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）格納Ｓｔａｒｔ識別フラグの設定状態判定（ステップ３１０）を実施する。
【００３０】
設定状態判定（ステップ３１０）にてＲ０エリア（比較元付加情報格納するエリア）（ステップ３０４）格納Ｅｎｄ識別フラグまたは、Ｒ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）格納Ｓｔａｒｔ識別フラグのどちらか一方でも設定されている場合（次論理ブロックにＳｔａｒｔ識別フラグ設定状態では、当該論理ブロックデータ書き込み処理より後に別の書き込み処理にてその記憶位置（アドレス）からの論理ブロックデータの書き込み処理を実施していると判断でき、また当該論理ブロックのＥｎｄ識別専用フラグ設定状態では、次論理ブロックデータは当該論理ブロックより以前に書き込み処理を実施したと判断されデータの整合性の保証をする必要がない為、履歴情報のチェックを行う必要はない。これについては、図５及び図６の説明参照）には、Ｒ０エリア（比較元付加情報格納するエリア）へＲ１エリア（比較対象付加情報格納するエリア）情報を格納（ステップ３１１）し、残論理ブロックサイズ分の処理を繰り返し実施する。
【００３１】
また、Ｒ０エリア（比較元付加情報格納するエリア）（ステップ３０４）格納Ｅｎｄ識別フラグ及び、Ｒ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）格納Ｓｔａｒｔ識別フラグの両方ともが設定されてない場合には、Ｒ０エリア（比較元付加情報格納するエリア）（ステップ３０４）に格納されている履歴情報とＲ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）に格納されている履歴情報の履歴情報比較（ステップ３１２）を実施する。
【００３２】
履歴情報比較（ステップ３１２）にて履歴情報が一致した場合は、前論理ブロックデータと当該論理ブロックデータのデータの整合性は正しいと判断され次に続く残論理ブロック分の処理を繰り返し実施する。また、Ｒ０エリア（比較元付加情報格納するエリア）（ステップ３０４）に格納されている履歴情報とＲ１エリア（比較対象付加情報格納するエリア）（ステップ３０９）に格納されている履歴情報の履歴情報が不一致となった場合には、前論理ブロックデータと当該論理ブロックデータのデータの整合性は正しくないと判断され、データ不正発生となる。なお、ホストコンピュータ１００からの読み出し処理判定（ステップ３００）にて読み出し処理以外と判断された場合には、読み出し処理以外（ステップ３１３）の処理を実施する。
【００３３】
データ不正発生により、ホストコンピュータ１００に対してデータの整合性不正が発生したことを専用のエラーコード用いてホストコンピュータ１００へ報告される。
【００３４】
図４は、本発明の実施形態に関するディスク装置１０７への書き込み及び読み出しを行う論理ブロック４００の構成図であり、４０１はＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報部、４０２はデータ部、４０３はＣＲＣデータ部、４０４はＥＣＣデータ部を示している。
【００３５】
次に、本発明の実施形態に関するＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報付加機能を用いて論理ブロックデータの書き込み及び読み出しを実施した具体例を基に説明を行う。
【００３６】
図５は、ホストコンピュータ１００から連続する複数の論理ブロック及び最小単位毎の論理ブロックデータの書き込み処理の成功例を表した図である。ホストコンピュータ１００からの連続する複数の論理ブロックデータ書き込み処理▲１▼にて、記憶位置（アドレス）０（５００）の論理ブロックにＳｔａｒｔ識別フラグ付加及び記憶位置（アドレス）９（５０９）の論理ブロックにＥｎｄ識別フラグ付加且つ、記憶位置（アドレス）０（５００）から９（５０９）までの論理ブロックに履歴情報０の付加を実施する。
【００３７】
書き込み処理▲２▼、▲３▼においても書き込み処理▲１▼と同様の処理を実施しＳｔａｒｔ／Ｅｎｄ識別専用フラグ及び履歴情報（書き込み処理毎に更新される）を付加する。書き込み処理▲４▼においては、論理ブロックの最小単位での論理ブロックデータの書き込み処理では、記憶位置（アドレス）４（５０４）の論理ブロックにＳｔａｒｔ識別フラグ付加及びＥｎｄ識別フラグ付加且つ、履歴情報３の付加を実施する。
【００３８】
次のホストコンピュータ１００に対しての論理ブロックデータ読み出し処理▲１▼にて、記憶位置（アドレス）０（５００）から９（５０９）の読み出し処理を行う際に各論理ブロックに付加されたＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に識別履歴付加チェック回路にてデータの整合性が保証された為、ホストコンピュータ１００からの要求分の論理ブロックデータを転送した。
【００３９】
ここで、データ整合性の保証チェックについて、具体的に述べると、読み出し処理▲１▼について、Ｓを付されたアドレス５０２は、１つ前の論理ブロック（アドレス５０１）の履歴情報とのチェックは不要であるが（一致する必要がない）、次の論理ブロック（アドレス５０３）の履歴情報とは一致する必要がある。また、Ｅを付されたアドレス５０８は、１つ前の論理ブロック（アドレス５０７）の履歴情報と一致する必要があり、次の論理ブロック（アドレス５０９）の履歴情報とチェックは不要である（一致する必要がない）。
【００４０】
図６は、ホストコンピュータ１００から連続する複数の論理ブロック及び最小単位毎の論理ブロックデータの書き込み処理失敗例を表した図である。ホストコンピュータ１００からの連続する複数の論理ブロックデータ書き込み処理▲１▼においては、記憶位置（アドレス）０（６００）の論理ブロックにＳｔａｒｔ識別フラグ付加及び記憶位置（アドレス）９（６０９）の論理ブロックにＥｎｄ識別フラグ付加且つ、記憶位置（アドレス）０（６００）から９（６０９）までの論理ブロックに履歴情報０の付加を実施する。書き込み処理▲２▼において、記憶位置（アドレス）２（６０２）から５（６０５）の論理ブロックデータの書き込み処理は問題なく実施されたが、何らかの原因によって記憶位置（アドレス）３（６０３）の論理ブロック丸毎のデータ書き込み抜けが発生していた。
【００４１】
そこで、次のホストコンピュータ１００に対しての論理ブロックデータ読み出し処理▲１▼にて、記憶位置（アドレス）０（６００）から９（６０９）の読み出し処理を行う際に各論理ブロックに付加されたＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に識別履歴付加チェック回路にてデータの整合性のチェックを行うが、記憶位置（アドレス）２（６０２）から３（６０３）の読み出し処理時にて記憶位置（アドレス）２（６０２）に対して記憶位置（アドレス）３（６０３）の論理ブロックにはＳｔａｒｔ識別フラグが付加されてなく且つ、記憶位置（アドレス）２（６０２）の論理ブロックにＥｎｄ識別フラブが付加されていないにも関わらず、記憶位置（アドレス）２（６０２）及び記憶位置（アドレス）３（６０３）の論理ブロックに付加されている履歴情報が一致していないことにより旧データが存在することを発見することができ、且つホストコンピュータ１００に対する論理ブロックデータ（旧データ）の読み出しを停止することが可能となる。
【００４２】
図７は、ホストコンピュータ１００から連続する複数の論理ブロックデータのずれ書き込み処理例を表した図である。ホストコンピュータ１００からの連続する複数の論理ブロックデータ書き込み処理▲１▼においては、記憶位置（アドレス）０（７００）の論理ブロックにＳｔａｒｔ識別フラグ付加及び記憶位置（アドレス）９（７０９）の論理ブロックにＥｎｄ識別フラグ付加且つ、記憶位置（アドレス）０（７０９）から９（７０９）までの論理ブロックに履歴情報０の付加を実施する。
【００４３】
書き込み処理▲２▼において、記憶位置（アドレス）０（７００）から９（７０９）の論理ブロックデータの書き込み処理は問題なく実施されたが、記憶位置（アドレス）３（７０３）から記憶位置（アドレス）５（７０５）の論理ブロック丸毎のデータずれ書き込みが発生していた。
【００４４】
そこで、次のホストコンピュータ１００に対しての論理ブロックデータ読み出し処理▲１▼にて、記憶位置（アドレス）０（７０９）から９（７０９）の読み出し処理を行う際に各論理ブロックに付加されたＳｔａｒｔ／Ｅｎｄ識別専用フラグ及び履歴情報を基に識別履歴付加チェック回路にてデータの整合性のチェックを行う。
【００４５】
この際、記憶位置（アドレス）２（７０２）から３（７０３）の読み込み処理時にて記憶位置（アドレス）２（７０２）に対して記憶位置（アドレス）３（７０３）の論理ブロックにはＳｔａｒｔ識別フラグが付加されてなく且つ、記憶位置（アドレス）２（７０２）の論理ブロックにＥｎｄ識別フラブが付加されていないにも関わらず、記憶位置（アドレス）２（７０２）及び記憶位置（アドレス）３（７０３）の論理ブロックに付加されている履歴情報が一致していないことにより旧データが存在することを発見することができ、且つホストコンピュータ１００に対する論理ブロックデータ（旧データ）の読み出しを停止することが可能となる。なお、旧データ発生による読み出し処理停止を行った場合には、専用のエラーコードにてホストコンピュータ１００に報告する。
【００４６】
また、ホストコンピュータ１００からディスク装置１０７に対して、ホストコンピュータからの論理ブロックデータの書き込み及び読み出し処理にて実施するＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報の付加及びチェックの動作設定切り替えを可能とする。
【００４７】
なお、ディスク装置とディスク制御装置とを備えた外部記憶装置は、ディスク装置として磁気ディスク装置が一般的であるが、これに限らずデータの書き込み／読み出し処理を行う全ての記憶装置に適用可能なものである。
【００４８】
以上説明したように、本発明の実施形態は、次のような構成、機能乃至作用を備えるものを含む。即ち、ホストコンピュータから外部記憶装置に対して書き込み処理中に、何らかの原因によって発生した論理ブロック丸毎のデータ書き込み抜けを、ホストコンピュータへのデータの読み出し処理の際に各論理ブロックに付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に連続する前後の論理ブロックとの関連性チェックにて、旧データ（新データへの更新失敗状態）をホストコンピュータに対して転送せず、データ不正が発生したことを専用のエラーコードにてホストコンピュータに対して報告するものである。
【００４９】
更に、ホストコンピュータから転送される外部記憶装置の取り扱い最小単位が記憶位置（アドレス）毎に決められ且つ一度に書き込みを行うサイズが変化する論理ブロックのデータの書き込みを許容する外部記憶装置において、ホストコンピュータからの連続する複数または最小単位毎の論理ブロックデータの書き込みを行う際に、先頭論理ブロック及び最終論理ブロックに各々Ｓｔａｒｔ／Ｅｎｄ識別フラグの付加及び各論理ブロック毎に履歴情報の付加を行う。
【００５０】
書き込み処理にてＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を論理ブロックに付加することにより、ホストコンピュータへのデータ読み出し処理にて、書き込み処理が何らかの原因により途中で中断された箇所を含むエリアを読み出す際に、各論理ブロック毎に付加している履歴情報との関連性チェックを行い履歴が一致しない論理ブロックは旧データと判断しホストコンピュータへのデータ転送を抑止することが出来る。
【００５１】
また、Ｓｔａｒｔ／Ｅｎｄ識別フラグの各々の機能の特徴は、Ｓｔａｒｔ識別フラグが設定されている論理ブロックは、１つ前の論理ブロックに付加されている履歴情報とは一致する必要がないが次論理ブロックに付加されている履歴情報とは一致しなければならない。また、Ｅｎｄ識別フラグが設定されている論理ブロックは、１つ前の論理ブロックに付加されている履歴情報とは一致なければならないが次論理ブロックに付加されている履歴情報とは一致する必要がない。
【００５２】
このように、ホストコンピュータへ連続する複数または最小単位毎の論理ブロックデータの読み出しを行う場合には、データの書き込み時に論理ブロックに付加されたＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報を基に連続する前後の論理ブロックに付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報との関連性チェックを行うことにより、論理ブロックデータに対するデータの整合性を保証することが出来る。
【００５３】
書き込み処理時に先頭ブロック及び最終論理ブロックに付加されるＳｔａｒｔ／Ｅｎｄ識別フラグは、１つの書き込み処理毎に付加されることにより、１つの書き込み処理にて更新されたデータの範囲を識別でき、また書き込み処理時に全ての論理ブロックに付加される履歴情報は、１つの書き込み処理毎に更新及び付加することにより、どの書き込み処理にて書き込まれたデータかを読み出し時に識別することが出来る。
【００５４】
また、外部記憶装置の記録媒体を初期化する際の先頭ブロックにＳｔａｒｔ識別フラグ付加、最終ブロックにＥｎｄ識別フラグ付加及び各論理ブロック毎に履歴情報を付加しても良いし、ホストコンピュータからの論理ブロックデータへの書き込み処理にて、Ｓｔａｒｔ／Ｅｎｄ識別専用フラグ及び履歴情報の付加動作を切り替え可能としても良く、更に、ホストコンピュータからの論理ブロックデータの読み込み処理にて、Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報の関連性チェック動作を切り替え可能としても良い。
【００５５】
【発明の効果】
以上説明したように、本発明による外部記憶装置によれば、書き込み処理時に何らかの原因により論理ブロック丸毎データ書き込み抜け（新データへの更新失敗状態）が発生している場合には、読み出し処理時に各論理ブロック毎に付加されているＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報をチェックすることにより、高速且つ、安価にホストコンピュータへの旧データ転送を抑止することが可能となり、外部記憶装置の論理ブロックデータの整合性を保証することが可能となった。
【図面の簡単な説明】
【図１】本発明の実施形態に係る外部記憶装置の全体構成を示すブロック図である。
【図２】本実施形態に関する論理ブロックデータ書き込み処理におけるＳｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報の付加方法を示すフローチャートである。
【図３】本実施形態に関する論理ブロックデータ読み出し処理における識別履歴チェック回路での関連性チェック方法を示すフローチャートである。
【図４】本発明の実施形態に関する論理ブロックの構成を示す図である。
【図５】本発明の実施形態に関する書き込み処理及び読み出し処理の成功した具体例を示す図である。
【図６】本発明の実施形態に関する書き込み処理失敗発生後の読み出し処理停止の具体例を示す図である。
【図７】本発明の実施形態に関するずれ書き込み処理発生後の読み出し処理停止の具体例を示す図である。
【符号の説明】
１００  ホストコンピュータ
１０１  外部記憶装置
１０２  ドライブ制御装置
１０３  ＣＲＣデータ生成回路
１０４  バッファ
１０５  識別履歴付加回路
１０６  ＥＣＣデータ生成回路
１０７  ディスク装置
１０８  ＥＣＣデータチェック回路
１０９  識別履歴チェック回路
１１０  ＣＲＣデータチェック回路
４００  論理ブロック
４０１  Ｓｔａｒｔ／Ｅｎｄ識別フラグ及び履歴情報
４０２  データ部
４０３  ＣＲＣデータ部
４０４  ＥＣＣデータ部
５００〜５０９  論理ブロック記憶位置（アドレス）
６００〜６０９  論理ブロック記憶位置（アドレス）
７００〜７０９  論理ブロック記憶位置（アドレス）
【図１】
0004205364.tif 000002
【図２】
0004205364.tif 000003
【図３】
0004205364.tif 000004
【図４】
0004205364.tif 000005
【図５】
0004205364.tif 000006
【図６】
0004205364.tif 000007
【図７】
0004205364.tif 000008