(57)【要約】【課題】データリード時の処理速度を低下させることなくデータの信頼性を高めることのできるディスク装置を提供する。【解決手段】計時部１０６がディスク装置１のアイドル時間を計測し、このアイドル時間が一定以上となったときにデータ比較部１０５が多重化されたデータを比較し、比較の結果データの異常が検出された場合は、多重化管理部１０４がその異常が検出されたデータを修復するようライト処理部１０２を制御することで、ディスクへのアクセスが無い時間を利用して、データの誤りを自動的に修復する。【選択図】        図２
2007193887.tif 000002
【特許請求の範囲】
【請求項１】
データを多重化して記録するディスク装置であって、
装置のアイドル時間を計測するアイドル時間計測手段と、
前記アイドル時間計測手段が計測するアイドル時間が所定値以上であるときに、多重化されたデータの全ての記録先からデータを読み出して該データを比較するデータ比較手段と、
前記データ比較手段が比較したデータにおいてデータの異常が検出された場合に該データを修復するデータ修復手段と、
を備えたことを特徴とするディスク装置。
【請求項２】
データごとにアクセス回数を計数するアクセス回数計数手段をさらに備え、
前記データ比較手段によるデータの比較は、前記アクセス回数計数手段が計数したアクセス回数が閾値以上となったデータに対して実行することを特徴とする請求項１に記載のディスク装置。
【請求項３】
前記データ比較手段により多重化されたデータの不一致が検出された際には、前記データ修復手段は、多重化されたデータのうち最後に書き込まれたデータを元に他のデータを書き換えることを特徴とする請求項１または２に記載のディスク装置。
【請求項４】
前記データ比較手段は、多重化されたデータの不一致を検出した際には、多重化されたデータの中から誤りが発生したデータを特定し、
前記データ修復手段は、該誤りが発生したデータに対してデータを書き換えることを特徴とする請求項１または２に記載のディスク装置。
【請求項５】
データを多重化して記録するディスク装置を制御するディスク制御方法であって、
装置のアイドル時間を計測するアイドル時間計測工程と、  前記アイドル時間計測工程で前記アイドル時間が所定値以上となったことが計測されたときに、多重化されたデータの全ての記録先からデータを読み出し、該データを比較するデータ比較工程と、
前記データ比較工程で比較したデータにおいてデータの異常が検出された場合に該データを修復するデータ修復工程と、
を含んだことを特徴とするディスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データを多重化して記録するディスク装置およびディスク制御方法に関し、特に、データの誤りを自動的に修復することができ、もってデータの信頼性を高めることのできるディスク装置およびディスク制御方法に関するものである。
【背景技術】
【０００２】
近年、磁気ディスク装置に記録されるデータの信頼性を高める目的で、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）に代表されるデータを多重化して記録する方法が広く普及してきた。しかし、ＲＡＩＤによりデータを多重化して記録する方法では、複数台の磁気ディスク装置を備えなければならず、コスト面および省スペース性に課題がある。
【０００３】
そこで、従来では、１台の磁気ディスク装置によりデータを多重化して記録することを可能とする制御方法が開示されており、例えば特許文献１には、磁気ディスク装置へのアクセスの無い時間が規定時間以上続いたときに、予めホストから指定されたデータに対して自動的にバックアップを作成してデータを二重化し、データリード時にリードエラーが発生したときには二重化された他のデータ記録先からデータを読み出すことで、データの信頼性を高めることができる磁気ディスク装置が開示されている。
【０００４】
【特許文献１】特開２００５−１０８０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の磁気ディスク装置では、データが欠損しリードエラーが発生した場合にしかデータの誤りを検出することができないという問題があった。このため、たとえデータがビット化けを起こしていても、正常に読み出せた場合はそのデータの誤りを検出することができなかった。
【０００６】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データの誤りを自動的に修復することができ、もってデータの信頼性を高めることのできるディスク装置およびディスク制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るディスク装置は、データを多重化して記録するディスク装置であって、装置のアイドル時間を計測するアイドル時間計測手段と、前記アイドル時間計測手段が計測するアイドル時間が所定値以上であるときに、多重化されたデータの全ての記録先からデータを読み出して該データを比較するデータ比較手段と、前記データ比較手段が比較したデータにおいてデータの異常が検出された場合に該データを修復するデータ修復手段と、を備えたことを特徴とする。
【０００８】
この請求項１の発明によれば、装置のアイドル時間を計測し、アイドル時間が所定値以上であるときに多重化されたデータの全ての記録先からデータを読み出してそのデータを比較し、比較したデータにおいてデータの異常が検出された場合にそのデータを修復するよう構成したので、ディスクへのアクセスが無い時間を利用して、データの誤りを自動的に修復することができる。
【０００９】
また、請求項２の発明に係るディスク装置は、請求項１の発明において、データごとにアクセス回数を計数するアクセス回数計数手段をさらに備え、前記データ比較手段によるデータの比較は、前記アクセス回数計数手段が計数したアクセス回数が閾値以上となったデータに対して実行することを特徴とする。
【００１０】
この請求項２の発明によれば、データごとにアクセス回数を計数し、データの比較はこのアクセス回数が閾値以上となったデータに対して実行するよう構成したので、アクセス頻度の高いデータに対して優先的にデータを比較することができる。
【００１１】
また、請求項３の発明に係るディスク装置は、請求項１または２の発明において、前記データ比較手段により多重化されたデータの不一致が検出された際には、前記データ修復手段は、多重化されたデータのうち最後に書き込まれたデータを元に他のデータを書き換えることを特徴とする。
【００１２】
この請求項３の発明によれば、多重化されたデータの不一致を検出した際には、多重化されたデータのうち最後に書き込まれたデータを元に全てのデータを書き換えるよう構成したので、最後に書き込まれたデータを元にデータを自動的に修復して全てのデータを統一することができる。
【００１３】
また、請求項４の発明に係るディスク装置は、請求項１または２の発明において、前記データ比較手段は、多重化されたデータの不一致を検出した際には、多重化されたデータの中から誤りが発生したデータを特定し、前記データ修復手段は、該誤りが発生したデータに対してデータを書き換えることを特徴とする。
【００１４】
この請求項４の発明によれば、多重化されたデータの不一致を検出した際には、その多重化されたデータの中から誤りが発生したデータを特定し、その誤りが発生したデータに対してデータを書き換えるよう構成したので、正常なデータに基づいて誤りのあるデータを自動的に修復して全てのデータを統一することができる。
【００１５】
また、請求項５の発明に係るディスク制御方法は、データを多重化して記録するディスク装置を制御するディスク制御方法であって、装置のアイドル時間を計測するアイドル時間計測工程と、前記アイドル時間計測工程で前記アイドル時間が所定値以上となったことが計測されたときに、多重化されたデータの全ての記録先からデータを読み出し、該データを比較するデータ比較工程と、前記データ比較工程で比較したデータにおいてデータの異常が検出された場合に該データを修復するデータ修復工程と、を含んだことを特徴とする。
【００１６】
この請求項５の発明によれば、装置のアイドル時間を計測し、アイドル時間が所定値以上となったことを計測したときに、多重化されたデータの全ての記録先からデータを読み出してそのデータを比較し、比較したデータにおいてデータの異常が検出された場合にそのデータを修復するよう構成したので、ディスクへのアクセスが無い時間を利用して、データの誤りを自動的に修復することができる。
【発明の効果】
【００１７】
請求項１および５の発明によれば、ディスクへのアクセスが無い時間を利用して、データの誤りを自動的に修復することができるので、データの信頼性を高めることができるという効果を奏する。
【００１８】
また、請求項２の発明によれば、アクセス頻度の高いデータに対して優先的にデータを比較することができるので、欠損が生じやすいデータに対する信頼性を高めることができるという効果を奏する。
【００１９】
また、請求項３の発明によれば、最後に書き込まれたデータを元にデータを自動的に修復して全てのデータを統一することができるので、データの信頼性を高めることができるという効果を奏する。
【００２０】
また、請求項４の発明によれば、正常なデータに基づいて誤りのあるデータを自動的に修復して全てのデータを統一することができるので、データの信頼性を高めることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明に係るディスク装置およびディスク制御方法の好適な実施例を詳細に説明する。
【実施例】
【００２２】
まず、本実施例に係る磁気ディスク装置の構成について説明する。図１は、本実施例に係る磁気ディスク装置の構成を示すハードウェア構成図である。同図に示すように、この磁気ディスク装置１は、ＰＣＢＡ（Printed Circuit Board Assembly）１０と、ディスクドライブ２０とにより構成される。この磁気ディスク装置１は、ＡＴＡインタフェースによりホスト２と接続され、磁気ディスク装置１とホスト２との間でデータや制御コマンドなどが伝送される。
【００２３】
ＰＣＢＡ１０は、磁気ディスク装置１を制御する種々のＬＳＩが配置されたプリント基板である。このＰＣＢＡ１０は、ＨＤＣ（Hard Disk Controller）１１と、ＲＤＣ（Read Channel）１２と、バッファ１３と、ＦＲＯＭ１４と、ＣＰＵ１５と、ＲＯＭ１６と、ＳＲＡＭ１７とを有しており、これらは互いにバスで接続されている。
【００２４】
ＨＤＣ１１は、バッファ１３に格納されたデータをディスクドライブ２０に書き込む際の動作や、ディスクドライブ２０に記録されたデータを読み出してバッファ１３に格納する際の動作を制御するコントローラである。ＲＤＣ１２は、バッファ１３とディスクドライブ２０との間を仲介し、データを変調または復調するＬＳＩである。
【００２５】
バッファ１３は、ホスト２とディスクドライブ２０との間でリードまたはライトされるデータを一時的に格納するキャッシュである。ＦＲＯＭ１４は、この磁気ディスク装置１の動作を制御するファームウェアを記憶する不揮発性のメモリである。
【００２６】
ＣＰＵ１５は、ＳＲＡＭ１７に展開されたファームウェアを読み出して実行する中央処理装置であり、そのファームウェアの一部はリード／ライト制御部１００としてＣＰＵ１５の内部で実行される。このリード／ライト制御部１００は、磁気ディスク装置１のデータリードおよびデータライトを制御する処理部であり、データの多重リードおよび多重ライトを制御する。すなわち、このリード／ライト制御部１００は、データを多重化する際の多重度などがホスト２から指定されると、その指定に基づいて複数の記録先に対するデータライトおよびデータリードをＨＤＣ１１に指示することで、データの多重リードおよび多重ライトを制御する。
【００２７】
このように、リード／ライト制御部１００が、ホスト２からの指定に基づいて複数の記録先に対するデータライトおよびデータリードをＨＤＣ１１に指示するので、磁気ディスク装置１はデータを多重リードおよび多重ライトすることができる。
【００２８】
ＲＯＭ１６は、磁気ディスク装置１を動作させる際に必要となる各種定数を記憶する不揮発性のメモリである。ＳＲＡＭ１７は、ＦＲＯＭ１４に記憶されたファームウェアを展開するための揮発性のメモリである。また、このＳＲＡＭ１７は、データを多重化して記録した際のデータ記録先などの情報を、多重化管理テーブル１７１（図３参照）として記憶する。
【００２９】
ディスクドライブ２０は、この磁気ディスク装置１においてデータが記録される部分であり、４つのプラッタ２１（プラッタ２１−０〜２１−３）と、ＤＣＭ２２と、８つのヘッド２３（ヘッド２３−０〜２３−７）と、ＶＣＭ２４とを有する。
【００３０】
プラッタ２１は、裏表両面に磁気記録面を有する円盤状の基板であり、磁気ディスク媒体とも言われる。ＤＣＭ２２は、積層された複数のプラッタ２１を回転させる駆動装置である。ヘッド２３は、プラッタ２１の磁気記録面に対して磁気的にデータのリード／ライトを行う磁気ヘッドである。ＶＣＭ（ボイスコイルモータ）２４は、ヘッド２３をディスク半径方向に移動させて、ヘッド２３を目的のデータリード／ライト先へと移動させる駆動装置である。
【００３１】
次に、リード／ライト制御部１００の構成について説明する。図２は、リード／ライト制御部１００の構成を示す機能ブロック図である。同図に示すように、磁気ディスク装置１のＣＰＵ１５は、内部にコマンドレジスタ１５１を有している。
【００３２】
このコマンドレジスタ１５１は、ホスト（パソコン、ＡＶ機器等の上位コントローラ）２が磁気ディスク装置１に対して発行する制御コマンドを格納するレジスタである。このコマンドレジスタ１５１に格納される制御コマンドには、データライトを指示するコマンド、データリードを指示するコマンド、データを多重化して書き込む際に多重数などを指定するコマンドなどがある。リード／ライト制御部１００は、このコマンドレジスタ１５１に格納された制御コマンドを読み出し、その制御コマンドに対応する処理を実行する。
【００３３】
ＣＰＵ１５の内部のリード／ライト制御部１００は、コマンド解析部１０１と、ライト処理部１０２と、リード処理部１０３と、多重化管理部１０４と、データ比較部１０５と、計時部（タイマ）１０６とを有する。なお、多重化管理部１０４の後述する各制御はファームウェアにより実行される。
【００３４】
コマンド解析部１０１は、コマンドレジスタ１５１に格納された制御コマンドの種別を解析し、その制御コマンドがデータライトを指示するコマンドであればライト処理部１０２へ、データリードを指示するコマンドであればリード処理部１０３へ、データの多重化に関する設定を指定するコマンドであれば多重化管理部１０４へと制御コマンドを振り分ける処理部である。
【００３５】
ライト処理部１０２は、ディスクドライブ２０へのデータの書き込みをＨＤＣ１１に指示する処理部である。このライト処理部１０２は、コマンド解析部１０１からライトコマンドを受領すると、バッファ１３に格納されたデータを、多重化管理部１０４が指定したデータライト先に書き込むようＨＤＣ１１に指示する。
【００３６】
また、多重化データ自己修復処理（図４参照）が実行されるときには、このライト処理部１０２は、多重化管理部１０４から修復元データおよび修復先が指定されると、その修復元データを、その修復先に対して書き込むようＨＤＣ１１に指示することで、データを修復する。
【００３７】
リード処理部１０３は、ディスクドライブ２０からのデータの読み出しをＨＤＣ１１に指示する処理部である。このリード処理部１０３は、コマンド解析部１０１からリードコマンドを受領すると、多重化管理部１０４が指定したデータリード先からデータを読み出してバッファ１３に格納するようＨＤＣ１１に指示する。
【００３８】
多重化管理部１０４は、多重ライトされたデータの記録先やアクセス回数などを管理し、データの多重リード／ライトを実行する際の各データリード／ライト先を指定する処理部である。この多重化管理部１０４は、コマンド解析部１０１から受領した多重指定コマンドに基づいてデータごとに複数のデータライト先を決定して、その複数のデータライト先をライト処理部１０２へ渡すことで、データを多重ライトさせる。そして、多重化管理部１０４は、このときのデータの各記録先を、そのデータのアクセス回数、多重ライトされた際の書き込まれた順番などの情報と関連付けて、多重化管理テーブル１７１として管理する。
【００３９】
また、この多重化管理部１０４は、ホスト２から磁気ディスク装置１へのアクセスが無い状態が続き、磁気ディスク装置１のアイドル時間が一定以上となったときに、リード／ライト制御部１００の各部を制御し、多重化されたデータを修復する。
【００４０】
データ比較部１０５は、多重化されたデータをリード処理部１０３が読み出しバッファ１３に格納されたときに、その全てのデータに対してコンペアを実行してデータが一致するか否かを判定する処理部である。
【００４１】
計時部１０６は、磁気ディスク装置１のアイドル時間を計測するためのタイマであり、このアイドル時間が一定以上となると、多重化管理部１０４は多重化されたデータの自己修復を開始する。この計時部１０６は、磁気ディスク装置１の稼働中は常にアイドル時間を計測し、コマンド解析部１０１が制御コマンドを受領したときにはそのアイドル時間をクリアする。
【００４２】
このように、計時部１０６は磁気ディスク装置１のアイドル時間を計測し、このアイドル時間が一定以上となると、多重化管理部１０４は多重化されたデータの自己修復を開始するので、磁気ディスク装置１はアクセスの無い間に多重化されたデータを自己修復することができる。
【００４３】
次に、多重化管理部１０４が管理する多重化管理テーブル１７１について説明する。図３は、多重化管理テーブル１７１の一例を示す図である。なお、この多重化管理テーブル１７１は、磁気ディスク装置１の停止時にディスクドライブ２０のシステムエリアに記録され、起動時にディスクドライブ２０から読み出されてＳＲＡＭ１７に記憶される。
【００４４】
図３に示すように、この多重化管理テーブル１７１は、ホスト指定開始ＬＢＡアドレスと、そのデータのサイズと、多重数と、アクセス回数と、そのデータが書き込まれた全てのデータ記録先とを有する。
【００４５】
アクセス回数は、ホスト２がそのデータにアクセスした回数を示し、データ比較部１０５により多重化されたデータのコンペアが実行されると、このアクセス回数はクリアされる。多重化管理部１０４は、ライト処理部１０２またはリード処理部１０３により該当するデータがアクセスされるたびに、このアクセス回数の値を１ずつ増加させる。そして、このアクセス回数の値が閾値以上となると、多重化管理部１０４はそのデータが頻繁にアクセスされているとみなし、データ比較部１０５によるデータのコンペアを実行する対象として決定する。
【００４６】
データ記録先は、多重化された各データの記録先を示しており、その記録先はＣＨＳ形式により指定される。また、このデータ記録先の項目における左右方向の配置の順序は、データが書き込まれた順番に対応しており、同図における左側に位置するほどデータ最終書込日時が古いことを示している。例えば、ホスト指定開始ＬＢＡアドレスが「Ａ」のデータにおいては、多重化された３つのデータは「Ａ０」，「Ａ１」，「Ａ２」の順に書き込まれたことを示している。
【００４７】
さらに、この多重化管理テーブル１７１における上下方向の配置の順序は、データが書き込まれた順番に対応しており、同図における上側に位置するほどデータ最終書込日時が古いことを示している。そして、新たにデータが多重化して書き込まれたときは、そのデータに関する各情報が、この多重化管理テーブル１７１の最下段に追加される。また、多重化されたデータの上書きや修復を行った際は、データが書き込まれた順番に従って上下方向に対する並べ替えが行われ、そのデータに対応する全項目がこの多重化管理テーブル１７１の最下段へと移される。
【００４８】
そして、多重化されたデータに対し、データ比較部１０５がデータの不一致を検出した場合は、多重化管理部１０４は、その複数のデータ記録先のうち最後に書き込まれたデータを元に、全てのデータを統一する。例えば、ホスト指定開始ＬＢＡアドレスが「Ａ」に対応するデータに対して、多重化されたデータの不一致が検出された場合は、多重化管理部１０４は、その３つのデータ記録先のうち最後に書き込まれたデータである「Ａ２」を修復元データに決定し、他のデータ記録先である「Ａ０」と「Ａ１」とを修復先に決定する。その後、多重化管理部１０４は、この決定に基づいて、バッファ１３に格納されたリードデータのうち「Ａ２」のデータ記録先から読み出されたデータを、２カ所のデータ記録先「Ａ０」，「Ａ１」に対して書き込むようライト処理部１０２を制御する。
【００４９】
また、多重化されたデータに対し、リード処理部１０３がデータを読み出した際にリードエラーが発生した場合は、多重化管理部１０４は、正常に読み出せたデータを元に、リードエラーが発生したデータを修復する。例えば、ホスト指定開始ＬＢＡアドレスが「Ａ」に対応するデータに対して、データ記録先が「Ａ１」のデータにおいてリードエラーが発生した場合は、多重化管理部１０４は、正常に読み出せたデータ（「Ａ０」または「Ａ２」）を修復元データに決定し、リードエラーが発生したデータ記録先「Ａ１」を修復先に決定する。その後、多重化管理部１０４は、この決定に基づいて、バッファ１３に格納されたリードデータのうち正常に読み出せたデータを、データ記録先「Ａ１」に対して書き込むようライト処理部１０２を制御する。
【００５０】
このように、多重化管理部１０４は、多重化されたデータごとに、そのデータの各記録先、データのアクセス回数、データが書き込まれた順番などの情報を有する多重化管理テーブル１７１を管理し、そのうちアクセス回数の値が閾値以上となったデータに対してデータ比較部１０５によるデータのコンペアを実行させるよう制御するので、アクセス頻度の高いデータに対して優先的にデータを比較することができる。
【００５１】
次に、多重化管理部１０４が実行する多重化データ自己修復処理の処理手順について説明する。図４は、多重化管理部１０４が実行する多重化データ自己修復処理の処理手順を示すフローチャートである。なお、この多重化データ自己修復処理は、計時部１０６が計測するアイドル時間が一定以上であるときに実行され、ホスト２からデータリードなどの制御コマンドを受領するまで続行される。
【００５２】
同図に示すように、多重化管理部１０４は、多重化管理テーブル１７１を検索して、アクセス回数が閾値以上のデータのうち、データ書込順が最も古いデータを１つ抽出し（ステップＳ１０１）、そのデータと対応する全てのデータ記録先を取得する（ステップＳ１０２）。
【００５３】
そして、多重化管理部１０４は、取得したそのデータ記録先からデータを読み出してそのデータをバッファ１３に格納するようリード処理部１０３を制御し（ステップＳ１０３）、その際にリードエラーが発生したか否かを判定する（ステップＳ１０４）。
【００５４】
その結果、リードエラーが発生しなかった場合は、多重化管理部１０４は、データ比較部１０５を制御してバッファ１３に格納された全てのデータに対してコンペアを実行させ（ステップＳ１０５）、データ比較部１０５により全てのデータの一致が検出されたか否かを判定する（ステップＳ１０６）。
【００５５】
その結果、データに不一致がある場合は、多重化管理部１０４は、多重ライトされたデータのうち最後に書き込まれたデータを元に、全てのデータを統一する。すなわち、多重化管理部１０４は、多重化管理テーブル１７１における複数のデータ記録先のうち、最も右側に位置するデータを修復元データに決定するとともに、それ以外のデータ記録先を修復先に決定する（ステップＳ１０７）。そして、多重化管理部１０４は、その修復元データに決定されたデータを、全ての修復先に対して書き込むようライト処理部１０２を制御し、全てのデータを統一する（ステップＳ１０８）。
【００５６】
その後、多重化管理部１０４は、データを統一した後の結果を多重化管理テーブル１７１に反映させる。すなわち、多重化管理部１０４は、ステップＳ１０８においてデータが書き込まれた順に応じて多重化管理テーブル１７１のデータ記録先を左右方向に並べ替え（ステップＳ１０９）、統一したデータに対応する全項目を多重化管理テーブル１７１の最下段に移動させることで、データが多重化して書き込まれた順番を「最新」に変更して（ステップＳ１１０）、アクセス回数の値をクリアし（ステップＳ１１１）、この多重化データ自己修復処理を終了する。
【００５７】
一方、データが全て一致する場合は、リード／ライト制御部１００は、データを修復することなく多重化管理テーブル１７１におけるアクセス回数の値のみをクリアして（ステップＳ１１１）、この多重化データ自己修復処理を終了する。
【００５８】
また、ステップＳ１０４においてリードエラーが発生したと判定された場合は、多重化管理部１０４はさらに、正常に読み出せたデータが存在するか否かを判定する（ステップＳ１１２）。
【００５９】
その結果、正常に読み出せたデータが存在する場合は、多重化管理部１０４は、その正常に読み出せたデータを元に、データを修復する。すなわち、多重化管理部１０４は、正常に読み出せたデータの１つを修復元データに決定するとともに、リードエラーが発生したデータ記録先を修復先に決定する（ステップＳ１１３）。そして、多重化管理部１０４は、正常に読み出されて修復元データに決定されたデータを、リードエラーが発生した修復先に対して書き込むようライト処理部１０２を制御し、リードエラーが発生したデータを修復する（ステップＳ１１４）。その後、多重化管理部１０４は上述したステップＳ１０９以降の処理を実行し、この多重化データ自己修復処理を終了する。
【００６０】
一方、正常に読み出せたデータが存在せず、多重化された全てのデータ記録先でリードエラーが発生した場合は、多重化管理部１０４は、リードエラーをホスト２に送信し（ステップＳ１１５）、この多重化データ自己修復処理を終了する。
【００６１】
このように、多重化管理部１０４は、多重化管理テーブル１７１が有するデータのアクセス回数およびデータ書込順に基づいて選択された多重化データに対してデータ比較部１０５によるコンペア処理を実行させ、これらのデータが一致しないときには、最後に書き込まれたデータを元に他のデータを書き換えることとしたので、最後に書き込まれたデータを元にデータを自動的に修復して全てのデータを統一することができ、もってデータの信頼性を高めることができる。
【００６２】
なお、ここでは、データ比較部１０５によりデータの不一致が検出されたときは、多重ライトされたデータのうち最後に書き込まれたデータを元にデータを統一することとしたが、データの誤りが発生したデータ記録先が特定できた場合は、その誤りが発生したデータ記録先に対してのみデータを書き換えることで、全てのデータを統一することとしてもよい。例えば、多重数が３多重の場合は、３つのデータのうち２つだけが一致したときに、残る他の１つのデータについては誤りが発生したものと特定することができる。
【００６３】
上述してきたように、本実施例では、計時部１０６が磁気ディスク装置１のアイドル時間を計測し、このアイドル時間が一定以上となったときにデータ比較部１０５が多重化されたデータを比較し、比較の結果データの異常が検出された場合は、多重化管理部１０４はその異常が検出されたデータを修復するようライト処理部１０２を制御することとしたので、ディスクへのアクセスが無い時間を利用して、データの誤りを自動的に修復することができ、もってデータの信頼性を高めることができる。
【００６４】
また、本実施例では、磁気ディスク装置について説明したが、本発明はこれに限定されるものではなく、例えば、ＣＤやＤＶＤ等の光ディスク装置など他のディスク装置にも同様に適用することができる。
【００６５】
（付記１）データを多重化して記録するディスク装置であって、
装置のアイドル時間を計測するアイドル時間計測手段と、
前記アイドル時間計測手段が計測するアイドル時間が所定値以上であるときに、多重化されたデータの全ての記録先からデータを読み出して該データを比較するデータ比較手段と、
前記データ比較手段が比較したデータにおいてデータの異常が検出された場合に該データを修復するデータ修復手段と、
を備えたことを特徴とするディスク装置。
【００６６】
（付記２）データごとにアクセス回数を計数するアクセス回数計数手段をさらに備え、
前記データ比較手段によるデータの比較は、前記アクセス回数計数手段が計数したアクセス回数が閾値以上となったデータに対して実行することを特徴とする付記１に記載のディスク装置。
【００６７】
（付記３）前記データ比較手段により多重化されたデータの不一致が検出された際には、前記データ修復手段は、多重化されたデータのうち最後に書き込まれたデータを元に他のデータを書き換えることを特徴とする付記１または２に記載のディスク装置。
【００６８】
（付記４）前記データ比較手段は、多重化されたデータの不一致を検出した際には、多重化されたデータの中から誤りが発生したデータを特定し、
前記データ修復手段は、該誤りが発生したデータに対してデータを書き換えることを特徴とする付記１または２に記載のディスク装置。
【００６９】
（付記５）前記データ比較手段により該多重化されたデータの少なくとも１つでリードエラーが発生した際には、前記データ修復手段は、該リードエラーが発生したデータに対してデータを書き換えることを特徴とする付記１〜４のいずれか一つに記載のディスク装置。
【００７０】
（付記６）データを多重化して記録するディスク装置を制御するディスク制御方法であって、
装置のアイドル時間を計測するアイドル時間計測工程と、
前記アイドル時間計測工程で前記アイドル時間が所定値以上となったことが計測されたときに、多重化されたデータの全ての記録先からデータを読み出し、該データを比較するデータ比較工程と、
前記データ比較工程で比較したデータにおいてデータの異常が検出された場合に該データを修復するデータ修復工程と、
を含んだことを特徴とするディスク制御方法。
【００７１】
（付記７）データごとにアクセス回数を計数するアクセス回数計数工程をさらに備え、
前記データ比較工程によるデータの比較は、前記アクセス回数計数工程が計数したアクセス回数が閾値以上となったデータに対して実行することを特徴とする付記６に記載のディスク制御方法。
【００７２】
（付記８）前記データ比較工程により多重化されたデータの不一致が検出された際には、前記データ修復工程は、多重化されたデータのうち最後に書き込まれたデータを元に他のデータを書き換えることを特徴とする付記６または７に記載のディスク制御方法。
【００７３】
（付記９）前記データ比較工程は、多重化されたデータの不一致を検出した際には、多重化されたデータの中から誤りが発生したデータを特定し、
前記データ修復工程は、該誤りが発生したデータに対してデータを書き換えることを特徴とする付記６または７に記載のディスク制御方法。
【００７４】
（付記１０）前記データ比較工程により該多重化されたデータの少なくとも１つでリードエラーが発生した際には、前記データ修復工程は、該リードエラーが発生したデータに対してデータを書き換えることを特徴とする付記６〜９のいずれか一つに記載のディスク制御方法。
【産業上の利用可能性】
【００７５】
以上のように、本発明に係るディスク装置およびディスク制御方法は、データの信頼性の向上に有用であり、特に、データリード時の処理速度を維持したままデータの信頼性を向上させたい場合に適している。
【図面の簡単な説明】
【００７６】
【図１】本実施例に係る磁気ディスク装置の構成を示すハードウェア構成図である。
【図２】リード／ライト制御部の構成を示す機能ブロック図である。
【図３】多重化管理テーブルの一例を示す図である。
【図４】多重化管理部が実行する多重化データ自己修復処理の処理手順を示すフローチャートである。
【符号の説明】
【００７７】
１    磁気ディスク装置
２    ホスト
１０    ＰＣＢＡ
１１    ＨＤＣ
１３    バッファ
１５    ＣＰＵ
１７    ＳＲＡＭ
２０    ディスクドライブ
１００    リード／ライト制御部
１０１    コマンド解析部
１０２    ライト処理部
１０３    リード処理部
１０４    多重化管理部
１０５    データ比較部
１０６    計時部
１５１    コマンドレジスタ
１７１    多重化管理テーブル
【図１】
2007193887.tif 000003
【図２】
2007193887.tif 000004
【図３】
2007193887.tif 000005
【図４】
2007193887.tif 000006