(57)【要約】【課題】ハードディスクなどの記録手段に対し、データの読み出しや書き込みが行いにくくなった不良個所の影響を十分抑制可能にすることである。【解決手段】データ処理装置１００は、アクセス要求されていないセクタに対し、物理セクタ番号を読み取るタイミングで不良セクタの検出を行って当該不良セクタの論理セクタ番号を一時記憶領域１４４に記憶していき、ハードディスク１２１ａ全体に対し不良セクタの検出が終了した後、上記一時記憶領域１４４に記憶した論理セクタ番号に対応する不良セクタに書き込まれたデータをリザーブセクタに移動して復旧する。【選択図】          図１
2004213721.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータを、該データの各々を識別するための識別情報と関連付けて記憶する記憶手段に対しデータ処理を行うデータ処理方法において、
前記識別情報を指定してなされる前記記憶手段に対する処理要求を受け付ける工程と、
前記記憶手段に記憶されている識別情報を読み出す工程と、
前記処理要求により指定された識別情報と、前記読み出された識別情報とを比較する工程と、
前記読み出した識別情報が前記処理要求において指定された識別情報でないと判定された場合に、当該識別情報と関連付けられたデータを前記記憶手段から読み出す工程と、
前記読み出し工程の際に読み出しエラーが生じたか否かを検出する工程と、
前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得する工程と、
前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込む工程と、
を有することを特徴とするデータ処理方法。
【請求項２】
データを記憶する記憶手段に対しデータ処理を行うデータ処理方法において、
前記記憶手段に対する処理要求の有無を監視する工程と、
前記記憶手段に対する処理要求が無い場合、前記記憶手段に対し読み出しエラーの有無を検出する工程と、
前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得する工程と、
前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込む工程と、
を有することを特徴とするデータ処理方法。
【請求項３】
前記読み出しエラーが検出された場合、該読み出しエラーが生じた際に読み出そうとしたデータを含むファイルを検索する工程と、
前記読み出しエラーが検出された場合、前記ファイル名およびエラーが生じた旨を報知する工程と、
を有することを特徴とする請求項１または２に記載のデータ処理方法。
【請求項４】
複数のデータを、該データの各々を識別するための識別情報と関連付けて記憶する記憶手段と、
前記識別情報を指定してなされる前記記憶手段に対する処理要求を受け付ける処理要求入力手段と、
前記記憶手段に記憶されている識別情報を読み出す識別情報取得手段と、
前記処理要求入力手段によって受け付けられた処理要求により指定される識別情報と、前記識別情報取得手段によって読み出された識別情報とが同一であるか否かを判定する識別情報一致判定手段と、
前記データを読み出すデータ読出手段と、
前記データ読出手段によってデータが読み出される際に、読み出しエラーを検出する読出エラー検出手段と、
前記読み出しエラーが検出された場合に、当該読み出そうとしたデータを取得するデータ回復手段と、
前記データ回復手段によってデータが取得された場合、当該データを前記記憶手段の所定領域に書き込むデータ書込手段と、
前記識別情報一致判定手段による判定結果が同一であるとの判定であった場合には前記処理要求入力手段により受け付けられた処理を行い、前記判定結果が同一でないとの判定であった場合には、前記データ読出手段、前記読出エラー検出手段及び前記データ書込手段を制御して前記データ回復手段により取得されたデータを前記記憶手段の所定領域に記憶する制御手段と、
を備えたことを特徴とするデータ処理装置。
【請求項５】
データを記憶する記憶手段と、
前記記憶手段に対する処理要求の有無を監視する処理要求監視手段と、
前記記憶手段に対する処理要求が無い場合、前記記憶手段に対し読み出しエラーの有無を検出する読出エラー検出手段と、
前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得するデータ回復手段と、
前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込むデータ書込手段と、
を備えたことを特徴とするデータ処理装置。
【請求項６】
複数のデータを、該データの各々を識別するための識別情報と関連付けて記憶する記憶手段に対しデータ処理を行うコンピュータに、
前記識別情報を指定してなされる前記記憶手段に対する処理要求を受け付ける機能と、
全前記憶手段に記憶されている識別情報を読み出す機能と、
前記処理要求により指定された識別情報と、前記読み出された識別情報とを比較する機能と、
前記読み出した識別情報が前記処理要求において指定された識別情報でないと判定された場合に、当該識別情報と関連付けられたデータを前記記憶手段から読み出す機能と、
前記データが読み出される際に読み出しエラーが生じたか否かを検出する機能と、
前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得する機能と、
前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込む機能と、
を実現させるためのプログラム。
【請求項７】
データを記憶する記憶手段に対しデータ処理を行うコンピュータに、
前記記憶手段に対する処理要求の有無を監視する機能と、
前記記憶手段に対する処理要求が無い場合、前記記憶手段に対し読み出しエラーの有無を検出する機能と、
前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得する機能と、
前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込む機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理方法、データ処理装置及びデータ処理プログラムに関する。
【０００２】
【従来の技術】
近時、ハードディスクや光磁気ディスクなどにデータの読み出しや書き込みを行うためのディスク装置がＰＣ（Personal Computer）などのデジタル機器に広く利用されている。このようなディスク装置では、ＰＣなどから読み出しや書き込みなどの処理要求（以下、アクセス要求という。）がなされるとハードディスクや光磁気ディスクに形成されたセクタのなかから要求されたセクタが検索され、このセクタに対しデータの読み出しや書き込みが行われる。
【０００３】
このようなディスク装置に関し、ハードディスクや光磁気ディスクに不良個所（不良セクタ）がある場合でも、当該不良個所がない場合と略同じ処理時間で記録再生処理が可能な技術が開示されている（例えば、特許文献１参照。）。
【０００４】
【特許文献１】
特開平７―３０７０６１号公報
【０００５】
【発明が解決しようとする課題】
しかし、上記従来の技術には、以下のような問題点がある。
【０００６】
上記特許文献１に記載の従来技術では、アクセス要求されたセクタに対してのみデータの読み出しや書き込みが行われるため、データの読み出しや書き込みの際にエラーが発生するような不良セクタの検出は当該アクセス要求されたセクタに対してのみしか行われない。したがって、アクセス要求されていないセクタから不良セクタを検出することは困難であり、特にユーザからの指示がなければ、ハードディスクに形成された全セクタから不良セクタの検出を行うことはない。
【０００７】
このため、アクセス要求されないセクタが不良セクタであるような場合は、ユーザがその不良セクタを使用しているファイルにアクセスする等して、はじめて不良であることに気づく場合も多く、当該セクタに書き込まれたデータを復旧させるなど、ハードディスク全体に対し不良セクタの影響を十分に抑制することが困難となっている。
【０００８】
本発明の課題は、ハードディスクなどの記憶手段に対し、データの読み出しや書き込みが行いにくくなった不良個所を早期に検出・修復し、不良が発生したことによる影響を十分抑制することが可能なデータ処理方法、データ処理装置及びデータ処理プログラムを提供することである。
【０００９】
【課題を解決するための手段】
本発明は、このような課題を解決するために、次のような特徴を備えている。なお、次に示す手段の説明中、括弧書きにより実施の形態に対応する構成を一例として示す。符号等は、後述する図面参照符号等である。
【００１０】
請求項４に記載の発明は、
複数のデータを、該データの各々を識別するための識別情報（例えば、論理セクタ番号。）と関連付けて記憶する記憶手段（例えば、図１に示すハードディスク１２１ａ。）と、
前記識別情報を指定してなされる前記記憶手段に対する処理要求を受け付ける処理要求入力手段（例えば、図１に示すＣＰＵ１１０。）と、
前記記憶手段に記憶されている識別情報を読み出す識別情報取得手段（例えば、図１に示すＣＰＵ１１０。）と、
前記処理要求入力手段によって受け付けられた処理要求により指定される識別情報と、前記識別情報取得手段によって読み出された識別情報とが同一であるか否かを判定する識別情報一致判定手段（例えば、図１に示すＣＰＵ１１０。）と、
前記データを読み出すデータ読出手段（例えば、図１に示すＣＰＵ１１０。）と、
前記データ読出手段によってデータが読み出される際に、読み出しエラーを検出する読出エラー検出手段（例えば、図１に示すＣＰＵ１１０。）と、
前記読み出しエラーが検出された場合に、当該読み出そうとしたデータを取得するデータ回復手段（例えば、図１に示すＣＰＵ１１０。）と、
前記データ回復手段によってデータが取得された場合、当該データを前記記憶手段の所定領域（例えば、図２に示すリザーブセクタＡ６）に書き込むデータ書込手段（例えば、図１に示すＣＰＵ１１０。）と、
前記識別情報一致判定手段による判定結果が同一であるとの判定であった場合には前記処理要求入力手段により受け付けられた処理を行い、前記判定結果が同一でないとの判定であった場合には、前記データ読出手段、前記読出エラー検出手段及び前記データ書込手段を制御して前記データ回復手段により得られたデータを前記記憶手段の所定領域に記憶する制御手段（例えば、図１に示すＣＰＵ１１０。）と、
を備えたことを特徴とする。
【００１１】
請求項４に記載の発明のように、記憶手段は、複数のデータを、該データの各々を識別するための識別情報と関連付けて記憶し、処理要求入力手段は、前記識別情報を指定してなされる前記記憶手段に対する処理要求を受け付け、識別情報取得手段は、前記記憶手段に記憶されている識別情報を読み出し、識別情報一致判定手段は、前記処理要求入力手段によって受け付けられた処理要求により指定される識別情報と、前記識別情報取得手段によって読み出された識別情報とが同一であるか否かを判定し、データ読出手段は、前記データを読み出し、読出エラー検出手段は、前記データ読出手段によってデータが読み出される際に、読み出しエラーを検出し、データ回復手段は、前記読み出しエラーが検出された場合に、当該読み出そうとしたデータを取得し、データ書込手段は、前記データ回復手段によってデータが取得された場合、当該データを前記記憶手段の所定領域に書き込み、制御手段は、前記識別情報一致判定手段による判定結果が同一であるとの判定であった場合には前記処理要求入力手段により受け付けられた処理を行い、前記判定結果が同一でないとの判定であった場合には、前記データ読出手段、前記読出エラー検出手段及び前記データ書込手段を制御して前記データ回復手段により取得されたデータを前記記憶手段の所定領域に記憶する。
【００１２】
また、請求項５に記載の発明は、
データを記憶する記憶手段（例えば、図２に示すＣＰＵ２１０。）と、
前記記憶手段に対する処理要求の有無を監視する処理要求監視手段（例えば、図２に示すＣＰＵ２１０。）と、
前記記憶手段に対する処理要求が無い場合、前記記憶手段に対し読み出しエラーの有無を検出する読出エラー検出手段（例えば、図２に示すＣＰＵ２１０。）と、
前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得するデータ回復手段（例えば、図２に示すＣＰＵ２１０。）と、
前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込むデータ書込手段（例えば、図２に示すＣＰＵ２１０。）と、
を備えたことを特徴とする。
【００１３】
請求項５に記載の発明のように、記憶手段は、データを記憶し、処理要求監視手段は、前記記憶手段に対する処理要求の有無を監視し、読出エラー検出手段は、前記記憶手段に対する処理要求が無い場合、前記記憶手段に対し読み出しエラーの有無を検出し、データ回復手段は、前記読み出しエラーが検出された場合、当該読み出そうとしたデータを取得し、データ書込手段は、前記読み出そうとしたデータが取得された場合、当該データを前記記憶手段に書き込む。
【００１４】
したがって、処理要求されていないデータの格納領域に対してもエラーの検出が可能となり、ハードディスクなどの記憶手段全体に対し、不良セクタの検出が行える。このため、処理要求される前であっても事前に不良セクタの検出とデータの保守回復が可能となり、信頼性およびセキュリティの向上が図られる。
また、記憶手段に対する処理が終了した後であても、エラーの検出および当該エラー個所のデータ修復が可能となるので効率的である。
また、エラーが検出された旨がユーザに通知されるので、ユーザはエラーの有無などの記憶手段の現状を正確に認識可能となる。
【００１５】
【発明の実施の形態】
以下、図１〜図７を参照して本発明を適用したデータ処理装置１００について詳細に説明する。
【００１６】
＜実施例１＞
まず、データ処理装置１００の構成を説明する。図１に、本発明を適用したデータ処理装置１００の内部構成を示す。
【００１７】
図１に示すように、データ処理装置１００は、ＣＰＵ１１０、ディスク装置１２０、ＲＯＭ１３０、ＲＡＭ１４０、入力部１５０などを備えて構成され、各部はバス１を介して相互に接続されている。
【００１８】
ＣＰＵ（Central Processing Unit）１１０は、ディスク装置１２０〜入力部１５０などデータ処理装置１００の各構成部を制御して図２のフローチャートに示す処理を行うためのデータ処理プログラムを実行する。なお、当該データ処理については後に詳述する。
【００１９】
ディスク装置１２０は、ＨＤＤ（Hard Disk Drive）１２１やＨＤＣ（Hard Disk Controller）１２２を備える。
【００２０】
ＨＤＤ１２１は、データが記憶されるハードディスク１２１ａやハードディスク１２１ａを回転駆動するＨＤＤモータ１２１ｂなどを備える。
【００２１】
ハードディスク１２１ａは、すでに所定のフォーマット処理が行われているものとする。すなわち、ハードディスク１２１ａには、トラックおよびセクタが形成されている。
【００２２】
ここで、ハードディスク１２１ａには、図２に示すように、ファイル管理領域とデータ領域とが形成される（図中符号Ａ１参照。）。ファイル管理領域には各ファイル毎にファイル関連データが記憶されている（図中符号Ａ２参照。）。
【００２３】
ここで、ファイル関連データは、例えば、ファイル名、ファイルデータの先頭セクタおよび終了セクタの各論理セクタ番号および日付などのデータを含む（図中符号Ａ３参照。）。
【００２４】
データ領域の各セクタには、ＳＹＮＣパターン、物理セクタ番号、ファイルデータ、ＥＣＣ（Error Correcting Code）等の各データが記憶され、また必要に応じたＧＡＰ部分を有している（図中符号Ａ４参照。）。
【００２５】
また、ハードディスク１２１ａには、各論理セクタ番号と物理セクタ番号との対応テーブルＡ５が記憶されている。
【００２６】
さらに、ハードディスク１２１ａの所定の領域には、不良セクタから読み出された復旧データを格納するためのリザーブセクタが形成されている。この場合、例えば、ある論理セクタの記憶内容が図中符号Ａ６に示すようなリザーブセクタに記憶されているような場合には、論理ディスク番号と物理ディスク番号の対応テーブルＡ５に、リザーブセクタの物理セクタ番号が記憶されることとなる。
【００２７】
ＨＤＣ１２２は、ＨＤＤモータ１２１ｂを駆動してハードディスク１２１ａを回転させ、ハードディスク１２１ａに形成された各セクタの物理セクタ番号を読み出し、各セクタに対するデータの読み出しや書き込みを行う。また、ＨＤＣ１２２は、高速データ通信を可能とするＤＭＡ（Direct Memory Access）コントローラ（図示略）などを必要に応じて備える。
【００２８】
ＲＯＭ（Read Only Memory）１３０は、データ処理装置１００を制御するための各種プログラムや当該プログラムを実行する際に必要な各種データ（例えば、文字フォントデータなど。）を格納し、特に、図２のフローチャートに示す処理を実行するためのコンピュータ読み取り可能なデータ処理プログラムを格納する。
【００２９】
ＲＡＭ（Random Access Memory）１４０は、ワーク領域やテーブル領域として用いられ、書込論理セクタ番号記憶領域１４１、セクタ数記憶領域１４２、書込データ記憶領域１４３、一時記憶領域１４４などの各種記憶領域を有している。
【００３０】
書込論理セクタ番号記憶領域１４１にはハードディスク１２１ａに形成された各セクタのうち書き込みを行う予定のセクタの先頭の論理セクタ番号が記憶され、セクタ数記憶領域１４２には書き込みを行う予定のセクタの数が記憶され、書込データ記憶領域１４３にはこれらのセクタに書き込む予定のデータが記憶される。
【００３１】
一時記憶領域１４４にはハードディスク１２１ａに形成された各セクタのうち検出された不良セクタの論理セクタ番号が記憶され、読出データ記憶領域１４５には上記不良セクタから読み出されたデータが記憶される。
【００３２】
入力部１５０は、キーボードやテンキーなどの各種入力キー、あるいはマウスやタッチパネルなどの各種ポインティングデバイスを備え（何れも、図示略。）、ユーザは必要に応じて各種指示入力やデータ入力を行うことができるようになっている。
【００３３】
次に、データ処理装置１００の動作について説明する。図３に、本実施例１のデータ処理を説明するフローチャートを示す。ここで説明するデータ処理（ステップＳ１０〜Ｓ２０）は、例えばＣＰＵ１１０がＲＯＭ１３０に格納されたデータ処理プログラムを実行することにより行われる。
【００３４】
以下では、ハードディスクに対して書き込み要求のアクセスがあった場合の例を説明する。ユーザがファイルの書き込み指示などを行うと、ハードディスクに対して、ファイルデータおよび当該ファイルデータの書き込み要求と共に、データを書き込む際に必要なパラメータ（例えば、書き込み論理セクタ番号、セクタ数、書き込み開始メモリアドレスなど。）がＯＳ（Operating System）から供給される（ステップＳ１０）。すると、ＯＳから書き込みの指示がなされたセクタを探すために、ハードディスク１２１ａ上の物理セクタ番号の読み出しが開始される（ステップＳ１１）。
【００３５】
ここで、上記ＯＳから受信したパラメータのうち、例えば、書き込みセクタの論理セクタ番号は書込論理セクタ番号記憶領域１４１に記憶され、セクタ数はセクタ数記憶領域１４２に記憶され、また、受信したファイルデータは書込データ記憶領域１４３に記憶される。
【００３６】
また、ステップＳ１１における物理セクタ番号の読み出し方法は、例えば、まず各セクタのＳＹＮＣパターンを検索してこれに同期し、それから、その後方に記憶されている物理セクタ番号を読み出すというものが考えられる（図２の図中符号Ａ４参照。）。
【００３７】
ステップＳ１１の後、対応テーブルＡ５に基づいて、読み出されたセクタの物理セクタ番号が、書込論理セクタ番号記憶領域１４１に記憶された（現に書込みを要求されているセクタの）論理セクタ番号に対応するか否かが判定される（ステップＳ１２）。そして、対応しない場合（ステップＳ１２；Ｎｏ）、すなわち、読み出されたセクタが現在書き込みを要求されているセクタではなかった場合、従来は現在の書き込み動作に無関係なセクタであるとして、そのセクタをスキップしていたのであるが、本実施例では、このセクタに記憶されているファイルデータが読み出されると共にＥＣＣが算出される（ステップＳ１３）。ここで読み出されたファイルデータは、読出データ記憶領域１４５に記憶される。
【００３８】
ステップＳ１３の後、当該算出されたＥＣＣが当該セクタに記憶されているＥＣＣ（図２の図中符号Ａ４参照。）に一致するか否かが判定される（ステップＳ１４）。そして、ＥＣＣが一致する場合には（ステップＳ１４；Ｙｅｓ）、読み出しは成功しており、当該セクタは不良セクタではないと考えられるので、読出データ記憶領域１４５に記憶された当該セクタのファイルデータを消去した後、ステップＳ１１に移行する。そして、この場合は、次のセクタを対象としてステップＳ１１以降の処理を行い、本来要求されているハードディスクへの書き込み処理の対象となるセクタを発見するまでは、ステップＳ１３からＳ１５の、不良セクタのチェック処理が繰り返される。
【００３９】
一方、ステップＳ１４において、ＥＣＣの値が一致しない場合には（ステップＳ１４；Ｎｏ）、当該セクタからのデータ読み出しが失敗しているため、当該セクタは不良セクタであると判定され、この論理セクタ番号が一時記憶領域１４４に記憶されてステップＳ１１に移行する（ステップＳ１５）。なお、一次記憶領域１４４に記憶せずに直ちに当該セクタの不良を解消するための処理を行うこととしても良いが、その場合は、本来要求されていた書き込み動作を完了するまでの動作時間が遅れることとなる。このため、本実施例では、本来要求されていた書き込み動作を優先して行い、その後に、ここで見つかった不良セクタを修復する処理を行うこととし、このために不良セクタのセクタ番号を一時記憶領域に一時保持することとしているものである。
【００４０】
ステップＳ１２に戻って説明する。
一方、読み出された物理セクタ番号が書込論理セクタ番号記憶領域１４１に記憶された論理セクタ番号に対応する場合（ステップＳ１２；Ｙｅｓ）、すなわち、読み出されたセクタが現在書き込みを要求されているセクタである場合には、本来の書き込み動作として、例えば書込データ記憶領域１４３に記憶されたファイルデータがこの読み出された物理セクタ番号のセクタに書き込まれる（ステップＳ１６）。
【００４１】
ステップＳ１６の後、書込データ記憶領域１４３に記憶されたファイルデータが、書込論理セクタ番号記憶領域１４１に記憶された全セクタについて書き込まれたか否か、即ち、本来の書き込み動作が完了したか否かが判定され（ステップＳ１７）、全セクタに書き込まれていない場合（ステップＳ１７；Ｎｏ）、引き続き本来の書き込み動作を継続するために、ステップＳ１１に移行する。一方、全セクタに対する書き込みが終了した場合（ステップＳ１７；Ｙｅｓ）、本来の書き込み動作は終了したので、次に、既に不良セクタとして一時記憶領域１４４に登録されているセクタの修復を行うために、まず、一時記憶領域１４４から不良セクタの論理セクタ番号が読み出される（ステップＳ１８）。
【００４２】
その後、ステップＳ１８で読み出された論理セクタ番号に対応する不良セクタのファイルデータが、読出データ記憶領域１４５から読み出され（ステップＳ１９）、ＥＣＣなどの誤り訂正符号を用いて正しいデータに修復される。なお、ここでは読み出しデータ記憶領域１４５からデータを取得することとしているが、ここで改めて、一時記憶領域１４４に登録されている不良セクタを検索して、読み出し（リトライ）を行い、このリトライによって正しいデータを獲得することとしても良いし、所定回数リトライを行っても読み出しに失敗してしまう場合にＥＣＣを用いた誤り訂正を行うこととしても良い。そして、このようにして訂正されたデータ（復旧データ）を獲得したら、当該復旧データがハードディスク１２１ａのリザーブセクタに書き込まれて復旧される（ステップＳ２０）。なお、この際には当然、論理セクタ番号と物理セクタ番号の対応を記憶しているテーブル（図２のＡ５）に対しても書き換えを行い、正しい対応関係がテーブルに保持されているようにする。
【００４３】
ここで、ステップＳ１７の判定はセクタ数記憶領域１４２に記憶されたセクタ数に基づいて行われる。すなわち、書込論理セクタ番号記憶領域１４１に記憶された論理セクタ番号が検索される度に当該セクタ数が１だけデクリメントされ、その結果ゼロになった場合、書込データ記憶領域１４３に記憶されたファイルデータが、書込論理セクタ番号記憶領域１４１に記憶された全セクタに書き込まれたと判定される。
【００４４】
以上説明したように、本発明を適用したデータ処理装置１００は、アクセス要求されていないセクタに対し、従来何もせずにスキップしていた空き時間を利用して不良セクタの検出を行い、当該不良セクタの論理セクタ番号を一時記憶領域１４４に記憶していき、ハードディスク１２１ａ全体に対し不良セクタの検出が終了した後、上記一時記憶領域１４４に記憶した論理セクタ番号に対応する不良セクタに書き込まれたデータをリザーブセクタに移動して復旧する。
【００４５】
従って、アクセス要求されていないセクタに対しても不良セクタの検出が可能となり、ハードディスク１２１ａ全体に対し、不良セクタの検出が行える。このため、アクセス要求がなされる前であっても、事前に不良セクタの検出とデータの修復が可能となり、信頼性およびセキュリティの向上が図られる。
【００４６】
なお、本実施例１における記述は、本発明に係るデータ処理方法、データ処理装置及びデータ処理プログラムの一例を示すものであり、これに限定されるものではない。本実施例１におけるデータ処理装置１００の細部構成、詳細動作および数値に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００４７】
例えば、本実施例１では、データ書き込み時を例としたが、データ読み出し時においても本発明は適用可能である。
さらに、エラーが一度でも生じると、すぐにリザーブセクタへのデータ書き込みを行うようにしたが、これに限らず、所定回数アクセスし、規定回数以上エラーが生じた場合に限り、リザーブセクタへのデータ書き込みを行う等のようにしても良い。
さらに、リザーブセクタをハードディスク１２１ａの一部に設けたが、これに限らず、フラッシュメモリ（登録商標）など、他の記録媒体にリザーブセクタを設けるようにしても良い。
【００４８】
＜実施例２＞
さらに、不良セクタの検出を、ハードディスク１２１ａへのアクセス終了後にＨＤＤモータ１２１ｂが所定時間継続して駆動している最中に行うようにしても良い。このような処理を行う例を、以下の実施例２に示す。
【００４９】
一般に、ハードディスク１２１ａへのアクセス終了時に直ちにＨＤＤモータ１２１ｂの駆動も停止してしまうと、その直後にアクセス指示があった場合に再度ＨＤＤモータ１２１ｂを駆動させなければならず、アクセス時間にロスが生じる。このため、従来のハードディスク等では、一般的に、ハードディスク１２１ａへのアクセス終了後もＨＤＤモータ１２１ｂを所定時間継続して駆動させ、当該アクセス時間のロスを抑制する処理が施されている。本実施例に係る発明は、この、アクセス終了後も所定時間のあいだ継続されているモータの駆動時間に、不良セクタの検出を行うものである。
【００５０】
図４に、本実施例２におけるデータ処理装置２００の内部構成を示す。また、図５に、本実施例２におけるデータ処理を説明するフローチャートを示す。ここで、データ処理装置２００の各構成部のうち、データ処理装置１００と同様の構成部については同一符号を付して説明を省略する。
【００５１】
図４に示すように、データ処理装置２００は、ＣＰＵ２１０、ディスク装置１２０、ＲＯＭ２３０、ＲＡＭ１４０、入力部１５０、ＨＤＤモータ停止用タイマ２６０などを備え、これら各部はバス２を介して相互に接続されている。
【００５２】
ＣＰＵ２１０は、ディスク装置１２０〜ＨＤＤモータ停止用タイマ２６０などデータ処理装置２００の各構成部を制御して図５のフローチャートに示す処理を行うためのデータ処理プログラムを実行する。なお、当該データ処理については後に詳述する。
【００５３】
ＲＯＭ２３０は、データ処理装置２００を制御するための各種プログラムや当該プログラムを実行する際に必要な各種データ（例えば、文字フォントデータなど。）を格納し、特に、図５のフローチャートに示す処理を実行するためのコンピュータ読み取り可能なデータ処理プログラムを格納する。
【００５４】
ＨＤＤモータ停止用タイマ２６０は、ハードディスク１２１ａへのアクセス終了時からＨＤＤモータ１２１ｂを所定時間駆動させておくためのタイマである。
【００５５】
以下、図５のフローチャートに示すデータ処理について説明する。ここで説明するデータ処理（ステップＳ３０〜Ｓ３９）は、ＣＰＵ２１０がＲＯＭ２３０等に格納されたデータ処理プログラムを実行することにより行われる。なお、データ処理プログラムは、必ずしもＲＯＭに記憶されていなければならないわけではなく、ＣＤ−ＲＯＭやＤＶＤ―ＲＯＭ等から提供されても良いし、一旦ハードディスクやフラッシュメモリ等にインストールされたものでも良いし、通信回線を介して供給されるものでも良い。そして、この点に関しては他の実施例においても同様である。
【００５６】
まず、ハードディスク１２１ａが、ＯＳからのアクセス要求を受信したか否かが判定され（ステップＳ３０）、アクセス要求を受信した場合（ステップＳ３０；Ｙｅｓ）、当該アクセス要求が書き込み要求であれば、指定されたセクタへデータが書き込まれ、当該アクセス要求が読み出し要求であれば指定されたセクタのデータが読み出される（ステップＳ３１）。
【００５７】
要求された処理が終了すると、ＨＤＤモータの駆動を停止させるまでのカウント値が、ＨＤＤモータ停止用タイマ２６０に設定された後（ステップＳ３２）、ステップＳ３０に移行する。
【００５８】
ステップＳ３０に戻って説明する。ステップＳ３０で、ＯＳからのアクセス要求を受信しなかった場合（ステップＳ３０；Ｎｏ）、ＨＤＤ用モータ１２１ｂが駆動中であるか否かが判定さる（ステップＳ３３）。
【００５９】
ステップＳ３３において、ＨＤＤ用モータ１２１ｂが駆動中でない場合（ステップＳ３３；Ｎｏ）、ステップＳ３０に移行し、ＨＤＤ用モータ１２１ｂが駆動中の場合（ステップＳ３３；Ｙｅｓ）、所定セクタに書き込まれたファイルデータが読み出されると共にＥＣＣが算出される（ステップＳ３４）。ここで読み出されたファイルデータは、読出データ記憶領域１４５に記憶される。また、ステップＳ３４でデータが読み出される「所定セクタ」は、ハードディスクの記録面上の、ちょうどたまたまヘッドが通過していた部分に存在するセクタや、そこから最も近いセクタ（次にヘッドが遭遇するセクタ）であっても良いし、あるいは、別途にカウンタ等を用意して、たまたまではなくあらかじめ予定された順番に従って各セクタを順番にサーチしていくようなものでも良い。
【００６０】
ステップＳ３４の後、当該読み出されたデータに基づいて算出されたＥＣＣが、当該セクタに記憶されているＥＣＣ（図２の図中符号Ａ４参照。）に一致するか否かが判定される（ステップＳ３５）。一致する場合には（ステップＳ３５；Ｙｅｓ）、当該セクタの読み出しは成功したものと考えられるので、当該セクタのファイルデータが読出データ記憶領域１４５から消去された後、ステップＳ３０に移行する。
【００６１】
ステップＳ３５において、ＥＣＣが一致しない場合には（ステップＳ３５；Ｎｏ）、当該セクタが不良セクタと判定され、データの修復処理が行われる。すなわち、、読出データ記憶領域１４５から当該不良セクタのファイルデータが読み出され、さらにＥＣＣなどの誤り訂正符号を用いて正しいデータに修復（復旧）され（ステップＳ３６）、当該修復されたデータがハードディスク１２１ａのリザーブセクタに書き込まれる（ステップＳ３７）。なお、ここでは読み出しデータ記憶領域１４５からデータを取得することとしているが、ここで改めて、一時記憶領域１４４に登録されているデータを獲得することとしても良いし、所定回数リトライを行っても読み出しに失敗してしまう場合にＥＣＣを用いた誤り訂正を行うこととしても良い。
【００６２】
その後、ＨＤＤモータ停止用タイマ２６０がタイムアップしたか否かが判定され（ステップＳ３８）、タイムアップしていない場合（ステップＳ３８；Ｎｏ），ステップＳ３０に移行し、タイムアップした場合（ステップＳ３８；Ｙｅｓ）、ＨＤＤ用モータ１２１ｂの駆動を停止した後（ステップＳ３９）、ステップＳ３０に移行する。
【００６３】
したがって、本実施例２によれば、ハードディスク１２１ａへのアクセス終了後、ＨＤＤモータ１２１ｂが継続して駆動されている最中に不良セクタの検出および当該不良セクタのデータの修復が行われるので効率的である。
【００６４】
なお、本実施例２では、不良セクタの検出を任意のセクタに対し行うものとしたが、これに限らず、例えば、ハードディスク１２１ａの最外周トラックのセクタから順次中心に向かって不良セクタの検出を行うようにしても良い。
【００６５】
＜実施例３＞
さらに、図３のフローチャートに示すデータ処理の後に不良セクタが検出された旨をユーザに通知しても良い。このような処理を行う例を、以下の実施例３に示す。
【００６６】
図６に、本実施例３におけるデータ処理装置３００の内部構成を示す。また、図７に、本実施例３における不良セクタ通知処理を説明するフローチャートを示す。ここで、データ処理装置３００の各構成部のうち、データ処理装置１００、２００と同一構成部については、同一符号を付して説明を省略する。
【００６７】
図６に示すように、データ処理装置３００は、ＣＰＵ３１０、ディスク装置１２０、ＲＯＭ３３０、ＲＡＭ１４０、入力部１５０、表示部３７０などを備え、これら各部はバス３を介して相互に接続されている。
【００６８】
ＣＰＵ３１０は、ディスク装置１２０〜表示部３７０などデータ処理装置３００の各構成部を制御して図７のフローチャートに示す処理を行うための不良セクタ通知プログラムを実行する。なお、当該不良セクタ通知処理については後に詳述する。
【００６９】
ＲＯＭ３３０は、データ処理装置３００を制御するための各種プログラムや当該プログラムを実行する際に必要な各種データ（例えば、文字フォントデータや、不良セクタが検出された旨のメッセージを示す文字データ。）を格納し、特に、図７のフローチャートに示す処理を行うためのコンピュータ読み取り可能な不良セクタ通知プログラムを格納する。
【００７０】
表示部３７０は、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display；液晶ディスプレイ）などの表示装置を備え（何れも、図示略。）、不良セクタが検出された際に、その旨を示すメッセージ（例えば、“ＸＸＸファイルに不良セクタが検出されたので修復しました”など。）を表示する。
【００７１】
以下、図７のフローチャートに示す不良セクタ通知処理について説明する。ここで説明する不良セクタ通知処理（ステップＳ４０〜Ｓ４２）は、ＣＰＵ３１０がＲＯＭ３３０に格納された不良セクタ通知プログラムを実行することにより行われる。
【００７２】
まず、図３のフローチャートのステップＳ２０や、図５のフローチャートのステップＳ３６（何れも、復旧データをリザーブセクタに書き込む処理）の後、当該不良セクタにファイルデータが書き込まれているか否かが判定される（ステップＳ４０）。そして、ファイルデータが書き込まれていない場合（ステップＳ４０；Ｎｏ）には、当該処理が終了される。一方、ファイルデータが書き込まれている場合には（ステップＳ４０；Ｙｅｓ）、当該ファイルデータのファイル名を検索して（ステップＳ４１）このファイルに不良セクタが検出された旨のメッセージを表示部３７０に表示する（ステップＳ４２）。
【００７３】
したがって、本実施例３によれば、不良セクタが検出された場合に、その旨と、検出された不良セクタを使用していたファイルのファイル名等がユーザに通知されるので、ユーザは不良セクタの有無などハードディスク１２１ａの現状を正確に認識可能となる。
【００７４】
なお、データ処理装置３００は、ＨＤＤモータ停止用タイマ２６０を備えても良い。この場合、図５のフローチャートに示すデータ処理中、不良セクタが検出された直後のデータ復旧処理や復旧データの書き込み処理の間の任意のステップで（ステップＳ３６の前〜ステップＳ３７の後）本実施例３の不良セクタ通知処理を行っても良いし、あるいは、不良セクタを検出した際にはそのセクタ番号等を一時的に保持しておく等し、例えばＨＤＤモータの駆動を停止した後に、本実施例３の不良セクタ通知処理を行って、これらの検出された不良セクタのリストを一括で出力することとしても良い。
また、不良セクタの内容をリザーブセクタに書き込む前に本実施例３の不良セクタ通知処理を行うようにしても良い。この場合、さらに、ユーザに対して不良セクタの内容をリザーブセクタに書き込むか否かの選択入力を行うようにしても良い。
【００７５】
以上、実施例１〜実施例３について説明したが、実施例１と実施例２とを組み合わせて用いるようにしても良いし、また、実施例１、実施例２および実施例３を組み合わせて用いるようにしても良く、さらに、実施例１と実施例３を組み合わせても良く、自由である。
また、データ処理装置１００、２００、３００は、何れも、データの読み出しや書き込みをハードディスク１２１ａに対して行うものとして説明したが、これに限らず、ＭＯ（Magneto Optical Disk；光磁気ディスク）やＣＤ−Ｒ／Ｗ、ＤＶＤ−ＲＡＭその他の記憶媒体に対しデータの読み出しや書き込みが行えるようにしても良い。
【００７６】
【発明の効果】
本発明によれば、処理要求されていないデータの格納領域に対してもエラーの検出が可能となり、ハードディスクなどの記憶手段全体に対し、不良セクタの検出が行える。このため、処理要求される前であっても事前に不良セクタの検出とデータの保守回復が可能となり、信頼性およびセキュリティの向上が図られる。
また、記憶手段に対する処理が終了した後であても、エラーの検出および当該エラー個所のデータ修復が可能となるので効率的である。
また、エラーが検出された旨がユーザに通知されるので、ユーザはエラーの有無などの記憶手段の現状を正確に認識可能となる。
【図面の簡単な説明】
【図１】本発明を適用したデータ処理装置の内部構成を示すブロック図である。
【図２】ハードディスクにおけるデータ構造を示す模式図である。
【図３】データ処理を説明するフローチャートである。
【図４】他の実施例におけるデータ処理装置の内部構成を示すブロック図である。
【図５】他の実施例におけるデータ処理を説明するフローチャートである。
【図６】他の実施例におけるデータ処理装置の内部構成を示すブロック図である。
【図７】他の実施例における不良セクタ通知処理を説明するフローチャートである。
【符号の説明】
１〜３  バス
１００、２００、３００  データ処理装置
１１０、２１０、３１０  ＣＰＵ
１２０  ディスク装置
１２１  ＨＤＤ
１２１ａ  ハードディスク
１２１ｂ  ＨＤＤ用モータ
１２２  ＨＤＣ
１３０、２３０、３３０  ＲＯＭ
１４０  ＲＡＭ
１４１  書込論理セクタ番号記憶領域
１４２  セクタ数記憶領域
１４３  書込データ記憶領域
１４４  一時記憶領域
１４５  読出データ記憶領域
１５０  入力部
２６０  ＨＤＤモータ停止用タイマ
３７０  表示部
【図１】
2004213721.tif 000003
【図２】
2004213721.tif 000004
【図３】
2004213721.tif 000005
【図４】
2004213721.tif 000006
【図５】
2004213721.tif 000007
【図６】
2004213721.tif 000008
【図７】
2004213721.tif 000009