(57)【要約】【課題】早急にリライト処理を行う必要のあるデータに対して優先的にリライト処理を行うこと。【解決手段】ハードディスクコントローラ１００は、装置環境データ設定部１６０が、装置環境データを生成し、生成した装置環境データをシンボルデータに入力し、磁気ディスクに書き込む。そして、リードベリファイ実行処理部１８０が、リードベリファイ実行時に、磁気ディスクから読み出したデータに含まれる装置環境データを基にして、リライト処理を実行するか否かを判定する。【選択図】        図４
2006139581.tif 000002
【特許請求の範囲】
【請求項１】
記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御装置であって、
前記ディスク装置の環境に係る情報である環境情報を生成する環境情報生成手段と、
前記環境情報生成手段によって生成された前記環境情報を、前記記憶ディスクに書き込むデータに格納する格納手段と、
前記記憶ディスクから読み込まれたデータに格納された前記環境情報を基にしてリライト処理を実行するか否かを判定するリライト判定処理手段と、
を備えたことを特徴とするディスク制御装置。
【請求項２】
前記環境情報は、前記記憶ディスク装置内部の温度の情報、前記記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、前記記憶ディスクに書き込まれるデータのオフセット量の情報および前記記憶ディスク装置の稼動年数の情報を含んでいることを特徴とする請求項１に記載のディスク制御装置。
【請求項３】
データの単位をバイトからシンボルに変換する単位変換手段をさらに備え、前記格納手段は、単位が変換されたデータに生じる未使用領域に、前記環境情報を格納することを特徴とする請求項１または２に記載のディスク制御装置。
【請求項４】
記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御プログラムであって、
前記ディスク装置の環境に係る情報である環境情報を生成する環境情報生成手順と、
前記環境情報生成手順によって生成された前記環境情報を、前記記憶ディスクに書き込むデータに格納する格納手順と、
前記記憶ディスクから読み込まれたデータに格納された前記環境情報を基にしてリライト処理を実行するか否かを判定するリライト判定処理手順と、
をコンピュータに実行させることを特徴とするディスク制御プログラム。
【請求項５】
前記環境情報は、前記記憶ディスク装置内部の温度の情報、前記記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、前記記憶ディスクに書き込まれるデータのオフセット量の情報および前記記憶ディスク装置の稼動年数の情報を含んでいることを特徴とする請求項４に記載のディスク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御装置およびディスク制御プログラムに関し、特にリライト処理を行う必要のあるデータに対して優先的にリライト処理を実行可能なディスク制御装置およびディスク制御プログラムに関するものである。
【背景技術】
【０００２】
従来、磁気ディスク装置は、ホストコンピュータなどからデータを取得した場合には、取得したデータにＣＲＣ（Cyclic Redundancy Check）やＥＣＣ（Error Correcting Code）などの情報を付加し、磁気ディスクに書き込んでいる。
【０００３】
しかし、時間が経過するにしたがって、磁気ディスクに塗布された磁性体の磁化の向きなどが変化してしまうため、磁気ディスク装置は、磁気ディスクに書き込んだ所定時間前のデータを、正常に読み出すことができなくなってしまう。
【０００４】
そこで、現在使用されている磁気ディスク装置は、一度磁気ディスクに書き込んだデータを再び読み込んで、磁気ディスクに再度データを書き込むリライト処理を定期的に行い、データが読み取り不能となることを防いでいる。
【０００５】
なお、特許文献１では、磁気ディスク装置の温度変化に応じて、データ読み込み回路のパラメータを変更し、磁気ディスクに書き込まれたデータを効率よく読み出すことを可能とする技術が公開されている。
【０００６】
【特許文献１】特開２００４−１４０９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、かかる従来の技術では、リライト処理を効率よく行うことができないという問題があった。
【０００８】
なぜなら、磁気ディスク装置内の温度が低い状態で、磁気ディスクに書き込んだデータや、トラック中心からずれた位置に書き込まれたデータほど、急速にデータが読み取りにくくなるにもかかわらず、磁気ディスクに記憶された他のデータと区別することなく順番にリライト処理を実行しているからである。
【０００９】
すなわち、磁気ディスクに書き込まれたデータに対して順にリライト処理を行うのではなく、早急にリライト処理を行う必要のあるデータに対して優先的にリライト処理を行うことが極めて重要な課題となっている。
【００１０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、早急にリライト処理を行う必要のあるデータに対して優先的にリライト処理を行うことができるディスク制御装置およびディスク制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るディスク制御装置は、記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御装置であって、前記ディスク装置の環境に係る情報である環境情報を生成する環境情報生成手段と、前記環境情報生成手段によって生成された前記環境情報を、前記記憶ディスクに書き込むデータに格納する格納手段と、前記記憶ディスクから読み込まれたデータに格納された前記環境情報を基にしてリライト処理を実行するか否かを判定するリライト判定処理手段と、を備えたことを特徴とする。
【００１２】
この請求項１の発明によれば、ディスク制御装置は、ディスク装置の環境に係る情報である環境情報を生成し、生成した環境情報を記憶ディスクに書き込むデータに格納し、記憶ディスクから読み込まれたデータに格納された環境情報を基にしてリライト処理を実行するか否かを判定する。
【００１３】
また、請求項２の発明に係るディスク制御装置は、請求項１の発明において、前記環境情報は、前記記憶ディスク装置内部の温度の情報、前記記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、前記記憶ディスクに書き込まれるデータのオフセット量の情報および前記記憶ディスク装置の稼動年数の情報を含んでいることを特徴とする。
【００１４】
この請求項２の発明によれば、ディスク制御装置は、記憶ディスク装置内部の温度の情報、記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、記憶ディスクに書き込まれるデータのオフセット量の情報および記憶ディスク装置の稼動年数の情報を含んだ環境情報を基にして、リライト処理を実行するか否かを判定する。
【００１５】
また、請求項３の発明に係るディスク制御装置は、請求項１または２の発明において、データの単位をバイトからシンボルに変換する単位変換手段をさらに備え、前記格納手段は、単位が変換されたデータに生じる未使用領域に、前記環境情報を格納することを特徴とする。
【００１６】
この請求項３の発明によれば、ディスク制御装置は、データの単位をバイトからシンボルに変換し、単位が変換されたデータに生じる未使用領域に、環境情報を格納する。
【００１７】
また、請求項４の発明に係るディスク制御プログラムは、記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御プログラムであって、前記ディスク装置の環境に係る情報である環境情報を生成する環境情報生成手順と、前記環境情報生成手順によって生成された前記環境情報を、前記記憶ディスクに書き込むデータに格納する格納手順と、前記記憶ディスクから読み込まれたデータに格納された前記環境情報を基にしてリライト処理を実行するか否かを判定するリライト判定処理手順と、をコンピュータに実行させることを特徴とする。
【００１８】
この請求項４の発明によれば、ディスク制御プログラムは、ディスク装置の環境に係る情報である環境情報を生成し、生成した環境情報を記憶ディスクに書き込むデータに格納し、記憶ディスクから読み込まれたデータに格納された環境情報を基にしてリライト処理を実行するか否かを判定する。
【００１９】
また、請求項５の発明に係るディスク制御プログラムは、請求項４の発明において、前記環境情報は、前記記憶ディスク装置内部の温度の情報、前記記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、前記記憶ディスクに書き込まれるデータのオフセット量の情報および前記記憶ディスク装置の稼動年数の情報を含んでいることを特徴とする。
【００２０】
この請求項５の発明によれば、記憶ディスク装置内部の温度の情報、記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、記憶ディスクに書き込まれるデータのオフセット量の情報および記憶ディスク装置の稼動年数の情報を含んだ環境情報を基にして、リライト処理を実行するか否かを判定する。
【発明の効果】
【００２１】
請求項１の発明によれば、ディスク制御装置は、ディスク装置の環境に係る情報である環境情報を生成し、生成した環境情報を記憶ディスクに書き込むデータに格納し、記憶ディスクから読み込まれたデータに格納された環境情報を基にしてリライト処理を実行するか否かを判定するので、効率よくリライト処理を実行することができるという効果を奏する。
【００２２】
また、請求項２の発明によれば、ディスク制御装置は、記憶ディスク装置内部の温度の情報、記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、記憶ディスクに書き込まれるデータのオフセット量の情報および記憶ディスク装置の稼動年数の情報を含んだ環境情報を基にして、リライト処理を実行するか否かを判定するので、早急にリライト処理が必要なデータを優先してリライト処理を行うことができるという効果を奏する。
【００２３】
また、請求項３の発明によれば、ディスク制御装置は、データの単位をバイトからシンボルに変換し、単位が変換されたデータに生じる未使用領域に、環境情報を格納するので、限られたデータ資源を有効利用することができるという効果を奏する。
【００２４】
また、請求項４の発明によれば、ディスク制御プログラムは、ディスク装置の環境に係る情報である環境情報を生成し、生成した環境情報を記憶ディスクに書き込むデータに格納し、記憶ディスクから読み込まれたデータに格納された環境情報を基にしてリライト処理を実行するか否かを判定するので、効率よくリライト処理を実行することができるという効果を奏する。
【００２５】
また、請求項５の発明によれば、ディスク制御プログラムは、記憶ディスク装置内部の温度の情報、記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、記憶ディスクに書き込まれるデータのオフセット量の情報および記憶ディスク装置の稼動年数の情報を含んだ環境情報を基にして、リライト処理を実行するか否かを判定するので、早急にリライト処理が必要なデータを優先してリライト処理を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、この発明に係るディスク制御装置およびディスク制御プログラムの好適な実施の形態を詳細に説明する。
【実施例】
【００２７】
まず、本実施例にかかるハードディスクコントローラの概念について説明する。本実施例にかかるハードディスクコントローラは、ホストから受け取ったデータ（以下、ホストデータと表記する）の単位をバイト（Byte）からシンボル（Symbol）に変換した際に生じる無駄なデータを、装置環境データとして割り当て、ホストデータと共に磁気ディスクに書き込む。そして、ハードディスクコントローラは、リードベリファイ時などに、磁気ディスクから読み取ったデータに含まれる装置環境データを基にして、リライトを実行するか否かを判定する。
【００２８】
ここで、装置環境データには、磁気ディスクにデータを書き込む時点での、磁気ディスク装置内の温度の情報、磁気ディスクに書込まれるデータが先頭セクタに対応するか否かの情報、磁気ディスクに書込まれるデータのオフセット量の情報および磁気ディスク装置の稼動年数の情報が含まれる。なお、１バイトは８ビット（bit）であり、１シンボルは１０ビットである。
【００２９】
次に、本実施例にかかる磁気ディスク装置の構成について説明する。図１は、本実施例にかかる磁気ディスク装置の構成を示す機能ブロック図である。同図に示すように、この磁気ディスク装置１０は、プリント基板２０およびディスクエンクロージャー３０を有する。
【００３０】
プリント基板２０は、データバッファ４０と、フラッシュＲＯＭ（Read Only Memory）５０と、ショックセンサ６０と、サーボコントローラ７０と、クロック生成部８０と、リードチャネル９０を有し、ディスクエンクロージャー３０は、温度検出部２００と、ヘッドＩＣ（Integrated Circuit）２１０と、ヘッド２２０と、ボイスコイルモータ２３０と、スピンドルモータ２４０と、磁気ディスク２５０とを有する。
【００３１】
データバッファ４０は、図示しないホストからのデータを一時的に記憶する記憶部であり、フラッシュＲＯＭ５０は、ハードディスクコントローラ１００が利用するプログラムなどのデータを記憶する記憶部である。
【００３２】
ショックセンサ６０は、磁気ディスク装置１０に対する上下左右の振動を検出し、検出した振動の情報である振動情報をサーボコントローラ７０に通知する装置であり、サーボコントローラ７０は、ハードディスクコントローラ１００からの命令や振動情報などに基づいて、ボイスコイルモータ２３０およびスピンドルモータ２４０を制御する装置である。
【００３３】
クロック生成部８０は、クロックを生成し、生成したクロックをハードディスクコントローラ１００に供給する装置である。リードチャネル９０は、ハードディスクコントローラ１００またはヘッドＩＣ２１０からのアクセスを受付け、ハードディスクコントローラ１００とヘッドＩＣ２１０との間で、データの橋渡しを行う装置である。また、リードチャネル９０は、温度検出部２００からディスクエンクロージャー３０内の温度の情報である温度情報を受け取り、受け取った温度情報をハードディスクコントローラ１００に渡す。
【００３４】
ハードディスクコントローラ１００は、磁気ディスク装置１０全体を制御する装置である。また、ハードディスクコントローラ１００は、リードチャネル９０から渡される温度情報、磁気ディスク２５０に書き込まれるデータが先頭セクタに対応するか否かの情報（以下、先頭セクタ情報と表記する）、磁気ディスク２５０に書込まれるデータのオフセット量の情報（以下、オフセット量情報と表記する）および磁気ディスク装置１０の稼動年数の情報（以下、稼動年数情報）を基にして、装置環境データを生成する。
【００３５】
そして、ハードディスクコントローラ１００は、ホストデータの単位をバイトからシンボルに変換した際に生じる無駄なデータ領域を装置環境データとして設定し、装置環境データを設定したデータを磁気ディスク２５０に書き込む。そして、ハードディスクコントローラ１００は、リードベリファイ時に、データに設定された装置環境データを基にして、リライトを行うか否か判定し、リライトを行うと判定した場合にのみ、リライトを行う。
【００３６】
温度検出部２００は、ディスクエンクロージャー３０内の温度を検出し、検出した温度を温度情報としてリードチャネル９０に渡す装置である。ヘッドＩＣ２１０は、リードチャネル９０から渡されるデータをヘッド２２０に渡し、ヘッド２２０によって読み取られたデータをリードチャネル９０に渡す装置である。
【００３７】
ヘッド２２０は、磁気ディスク２５０にデータを書き込んだり、書き込まれたデータを読み取ったり消去したりする装置であり、ボイスコイルモータ２３０は、サーボコントローラ７０の指示にしたがって、ヘッド２２０を磁気ディスク２５０上の適切な位置に移動させる装置である。
【００３８】
スピンドルモータ２４０は、サーボコントローラ７０の指示にしたがって、磁気ディスク２５０を適切な回転速度で回転させる装置であり、磁気ディスク２５０は、塗布された磁性体の磁化状態を電気的に変化させることにより、データを記憶する記憶媒体である。
【００３９】
次に、図１に示したハードディスクコントローラ１００のデータ処理について説明する。図２は、図１に示したハードディスクコントローラ１００のデータ処理を説明するための説明図である。
【００４０】
同図に示すように、ハードディスクコントローラ１００は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）１１０と、バイト／シンボル変換部１２０と、ＤＦＩＦＯ（Data First In First Out）１３０と、ＥＣＣ（Error Correcting Code）生成部１４０と、レイテンシシフト部１５０とを有する。
【００４１】
ＳＤＲＡＭ１１０は、ホスト（図示しない）から送信されるホストデータを一時的に記憶した後、記憶したホストデータをバイト／シンボル変換部１２０に渡す処理部であり、バイト／シンボル変換部１２０は、ホストデータの単位をバイトからシンボルに変換する処理部である。
【００４２】
具体的に、バイト／シンボル変換部１２０は、ホストデータが５１２バイト、ＣＲＣ（Cyclic Redundancy Check）データが４バイトの計５１６バイトの単位をシンボルに変換する場合には、１６／２０変換（５１６×１６÷２０＝４１２．８）を行い、４１２．８シンボルとする。そして、バイト／シンボル変換部１２０は、シンボルに変換したデータ（以下、シンボルデータと表記する）をＤＦＩＦＯ１３０に渡す。
【００４３】
ＤＦＩＦＯ１３０は、バイト／シンボル変換部１２０から渡されるシンボルデータを一旦格納し、古く格納したシンボルデータの順に、ＥＣＣ生成部１４０およびレイテンシシフト部１５０に渡す処理部である。
【００４４】
また、従来、ＤＦＩＦＯ１３０は、４１２．８シンボルのシンボルデータを受信した場合には、１．２シンボルのダミーデータをシンボルデータに付加し、４１４シンボルとして、ＥＣＣ生成部１４０およびレイテンシシフト部１５０に渡していたが、本発明では、ダミーデータの代わりに、装置環境データをシンボルデータに付加する。なお、本実施例では一例として、１．２シンボル（１２ビット）の装置環境データをシンボルデータに付加する場合を示すが、これに限定されるものではない。
【００４５】
ＥＣＣ生成部１４０は、ＤＦＩＦＯ１３０から取得するシンボルデータを基にして、ＥＣＣを生成し、生成したＥＣＣをリードチャネル９０のＲＬＬ９０ａに渡す処理部であり、レイテンシシフト部１５０は、ＤＦＩＦＯ１３０から取得するシンボルデータを遅延させてリードチャネル９０のＲＬＬ９０ａに渡す処理部である。なお、本実施例では一例として、ＥＣＣ生成部１４０で生成されるＥＣＣのデータ量は、３２シンボルとする。
【００４６】
ＲＬＬ９０ａは、データを表す波形が、直線に近くなることを防ぎ、定期的に波を発生させる処理部である。例えば、同じデータ（０など）が連続して続いた場合に、データを表す波形が直線的になってしまうため、ＲＬＬ９０ａは、データを表す波形に周期的に波が発生するように修正する。
【００４７】
また、ＲＬＬ９０ａは、スクランブラー（Scrambler）を有し、取得したデータの順番を無秩序に変更する。なお、無秩序に順番を変更されたデータは、リードチャネル９０によってもとの順番に戻すことが可能である。
【００４８】
また、ＲＬＬ９０ａは、ＥＣＣ生成部１４０から渡される３２シンボルのＥＣＣデータおよびレイテンシシフト部１５０から渡される４１４のシンボルデータを合計した４４６シンボルのデータに対して６０／６３変換を実行することになる。
【００４９】
図２に示したハードディスクコントローラ１００の全体のデータ処理を説明すると、ホストから渡されたホストデータをＳＤＲＡＭ１１０が一旦記憶した後、バイト／シンボル変換部１２０にホストデータを渡し、バイト／シンボル変換部１２０がホストデータの単位をバイトからシンボルに変換し、変換したシンボルデータをＤＦＩＦＯ１３０に渡す。
【００５０】
そして、ＤＦＩＦＯ１３０は、シンボルデータに装置環境データを付加し、付加したデータをＥＣＣ生成部１４０およびレイテンシシフト部１５０に渡す。ＥＣＣ生成部１４０は、ＤＦＩＦＯ１３０から取得したデータを基にＥＣＣを生成し、生成したＥＣＣをＲＬＬ９０ａに渡し、レイテンシシフト部１５０は、ＤＦＩＦＯ１３０から取得したデータを遅延させて、ＲＬＬ９０ａに渡す。
【００５１】
なお、ハードディスクコントローラ１００のデータ処理は、図２に限定されるものではなく、例えば図３のようにデータ処理を行ってもよい。図３は、ハードディスクコントローラ１００のデータ処理の他の例を説明するための説明図である。同図に示すようにこのハードディスクコントローラ１００は、図２の場合に加えてＨＲＲＬＬ１００ａおよびＬＲＲＬＬが追加されている。なお、その他の処理部は、図２に示した各処理部と同様であるため、同様の符号を付して説明を省略する。
【００５２】
ＨＲＲＬＬ１００ａは、ＤＦＩＦＯ１３０から渡されるシンボルデータを４１６／４１４変換（４１４×４１６÷４１４＝４１６）を行い、４１６シンボルとなったシンボルデータをＥＣＣ生成部１４０およびレイテンシシフト部１５０に渡す処理部である。なお、ＨＲＲＬＬ１００ａは、スクランブラーを有し、シンボルデータの順番を無秩序に変更する。
【００５３】
ＬＲＲＬＬ１００ｂは、ＥＣＣ生成部１４０から渡される３２シンボルのＥＣＣのデータに対して３１／３０変換（３２×３１÷３０≒３３．１）を行い、ダミーデータ０．９を付加して、３４シンボルのＥＣＣのデータをＲＬＬ９０ａに渡す。
【００５４】
図３に示すＲＬＬ９０ａは、受信したデータに対して６０／６１変換を実行する。また、図３に示すＲＬＬ９０ａは、ＨＲＲＬＬ１００ａがスクランブラーを有しているため、スクランブラーを有さない（または、スクランブラーの機能を無効にしている）。
【００５５】
図３に示したハードディスクコントローラ１００の全体のデータ処理を説明すると、ホストから渡されたホストデータをＳＤＲＡＭ１１０が一旦記憶した後、バイト／シンボル変換部１２０にホストデータを渡し、バイト／シンボル変換部１２０がホストデータの単位をバイトからシンボルに変換し、変換したシンボルデータをＤＦＩＦＯ１３０に渡す。
【００５６】
そして、ＤＦＩＦＯ１３０は、シンボルデータに装置環境データを付加し、付加したデータをＨＲＲＬＬ１００ａに渡し、ＨＲＲＬＬ１００ａは、ＤＦＩＦＯ１３０から取得したデータに対して４１６／４１４変換を実行し、４１６シンボルのデータをＥＣＣ生成部１４０およびレイテンシシフト部１５０に渡す。
【００５７】
ＥＣＣ生成部１４０は、ＨＲＲＬＬ１００ａから取得したデータを基にＥＣＣを生成し、生成したＥＣＣに対して３１／３０変換を実行し、３４シンボルのＥＣＣのデータをＲＬＬ９０ａに渡し、レイテンシシフト部１５０は、ＨＲＲＬＬ１００ａから取得したデータを遅延させて、ＲＬＬ９０ａに渡す。
【００５８】
次に、図１に示したハードディスクコントローラ１００の構成について説明する。図４は、ハードディスクコントローラ１００の構成を示す機能ブロック図である。同図に示すように、このハードディスクコントローラ１００は、ＤＦＩＦＯ１３０と、装置環境データ設定部１６０と、記憶部１７０と、リードベリファイ実行処理部１８０とを有する。
【００５９】
ＤＦＩＦＯ１３０は、図２に示したＤＦＩＦＯと同様であるため説明を省略する。また、ＤＦＩＦＯ１３０は、図２に示したようにバイト／シンボル変換部１２０、ＥＣＣ生成部１４０およびレイテンシシフト部１５０に接続されるが、図４では省略する。
【００６０】
装置環境データ設定部１６０は、ホストからライトコマンドを受け取った場合に、記憶部１７０に記憶されたデータを基にして装置環境データを生成し、生成した装置環境データを、ＤＦＩＦＯ１３０が一時保持するシンボルデータに入力する処理部である。
【００６１】
図５は、装置環境データのデータ構造の一例を示す図である。同図に示すように、装置環境データは、１ビットで表される設定温度情報、１ビットで表される先頭セクタ情報、４ビットで表される設定オフセット量情報および６ビットで表される設定稼動年数情報を有する。
【００６２】
設定温度情報は、記憶部１７０に記憶された温度情報によって特定されるディスクエンクロージャー３０内の温度が所定の温度よりも低いか否かを示す情報であり、装置環境データ設定部１６０は、ディスクエンクロージャー３０内の温度が所定の温度よりも低い場合に、設定温度情報のビットを立てる（設定温度情報を１にする）。
【００６３】
先頭セクタ情報は、対応するシンボルデータが連続するデータの中で、磁気ディスク２５０の先頭セクタに書き込まれるか否かの情報であり、装置環境データ設定部１６０は、ホストからライトコマンドと共に、先頭セクタである旨の情報を受け取った場合にのみ、先頭セクタ情報のビットを立てる（先頭セクタ情報を１にする）。
【００６４】
設定オフセット量情報は、ヘッドの位置とトラック中心とのずれ（オフセット量）の度合いを１６段階で示した情報であり、装置環境データ設定部１６０は、記憶部１７０に記憶されたオフセット量情報に応じて設定オフセット量情報の数値を決定する。例えば、ヘッドの位置とトラック中心とがずれていない場合には、設定オフセット情報は０となり、ヘッドの位置とトラック中心との位置が最大限ずれている場合には１５となる。
【００６５】
設定稼動年数情報は、磁気ディスク装置１０が工場から出荷されてから現在に至るまでの年数を示す情報であり、装置環境データ設定部１６０は、記憶部１７０に記憶された日付情報を基にして、稼動年数情報を設定する。なお、日付情報が「秒」で記録されている場合には、「年」に変更して設定する。
【００６６】
図６は、装置環境データ設定部１６０がシンボルデータに装置環境データを入力した場合のシンボルデータのデータ構造の一例を示す図である。同図に示すように、シンボルデータは全４１４シンボルの内、ホストデータおよびＣＲＣが４１２．８シンボルを占め、装置環境データは１．２シンボル（１２ビット）となっている。
【００６７】
このように、従来はダミーデータとして利用されていなかったデータ領域を、装置環境データとして利用することで、磁気ディスクなどの記憶資源を有効に利用することができる。
【００６８】
図４の説明に戻る。記憶部１７０は、装置環境データ設定部１６０が装置環境データを生成する場合に利用するデータや、リードベリファイ実行処理部１８０が利用するデータを記憶する記憶部である。記憶部１７０は、温度情報１７０ａと、オフセット量情報１７０ｂと、日付情報１７０ｃと、リードベリファイ実行温度範囲情報１７０ｄと、リライト実行温度範囲情報１７０ｅと、オフセット量範囲情報１７０ｆと、稼動年数範囲情報１７０ｇとを有する。
【００６９】
温度情報１７０ａは、ディスクエンクロージャー３０内の温度を示す情報であり、オフセット量情報１７０ｂは、ヘッドの位置とトラック中心とのずれの度合いを示す情報であり、日付情報１７０ｃは、磁気ディスク装置１０が工場出荷されてから現在に至るまでの年数を示す情報である。
【００７０】
リードベイファイ実行温度範囲情報１７０ｄは、リードベリファイを実行するのに適した温度範囲を示す情報であり、リライト実行温度範囲情報１７０ｅは、リライトを実行するのに適した温度範囲を示す情報であり、オフセット量範囲情報１７０ｆは、リライトを実行すべきオフセット量の範囲を示す情報であり、稼動年数範囲情報１７０ｇは、リライトを実行すべき稼動年数の範囲を示す情報である。
【００７１】
リードベリファイ実行処理部１８０は、定期的に磁気ディスク２５０に記憶されたデータを読み取って、読み取ったデータに含まれる装置環境データと、記憶部１７０に記憶された情報とを基にして、リライトを実行するか否かを判定する処理部である。
【００７２】
具体的には、リードベリファイ実行処理部１８０は、データが書き込まれた時点でのディスクエンクロージャー３０内の温度が所定値より小さい場合、書き込まれたデータが先頭セクタに対応する場合、書き込まれたデータのオフセット量が所定値以上である場合または磁気ディスク装置１０の稼動年数が所定値以上である場合に、リライトを実行すると判定する。
【００７３】
そして、リードベリファイ実行処理部１８０は、リライトを実行すると判定した場合には、磁気ディスク２５０から読み取ったデータをＤＦＩＦＯ１３０に渡し、リライトを行う。また、リードベリファイ実行処理部１８０は、定期的に記憶部１７０の温度情報１７０ａ、オフセット量情報１７０ｂおよび日付情報１７０ｃを更新する。
【００７４】
次に、装置環境データ設定部１６０の処理について説明する。図７は、装置環境データ設定部１６０の処理手順を示すフローチャートである。図７に示すように、装置環境データ設定部１６０は、ホストからライトコマンドを受付け（ステップＳ１０１）、先頭セクタ情報設定を行う（ステップＳ１０２）。
【００７５】
ここで、先頭セクタ情報設定について詳しく説明すると、装置環境データ設定部１６０は、ホストからライトコマンドと共に、先頭セクタである旨の情報を受け取った場合には、装置環境データの先頭セクタ情報に１を格納する。一方、ホストからライトコマンドと共に先頭セクタに該当しない旨の情報を受け取った場合には、先頭セクタ情報に０を格納する。
【００７６】
続いて、装置環境データ設定部１６０は、温度情報設定を行う（ステップＳ１０３）。ここで、温度情報設定について詳しく説明すると、装置環境データ設定部１６０は、記憶部１７０から温度情報１７０ａと、リードベリファイ実行温度範囲情報１７０ｄとを読み込み、温度情報１７０ａによって特定される温度が、リードベリファイ実行温度範囲に含まれない場合には、装置環境データの設定温度情報に１を格納する。一方、温度情報１７０ａによって特定される温度が、リードベリファイ実行温度範囲に含まれる場合には、設定温度情報に０を格納する。
【００７７】
そして、装置環境データ設定部１６０は、オフセット量設定を行う（ステップＳ１０４）。ここで、オフセット量設定について詳しく説明すると、装置環境データ設定部１６０は、記憶部１７０からオフセット量情報１７０ｂを読み込み、読み込んだオフセット量情報１７０ｂを基にして、オフセット量を特定し、特定したオフセット量を装置環境データの設定オフセット量情報に格納する。
【００７８】
続いて、装置環境データ設定部１６０は、稼動年情報設定を行う（ステップＳ１０５）。ここで、稼動年情報設定について詳しく説明すると、装置環境データ設定部１６０は、記憶部１７０から日付情報１７０ｃを読み込み、日付情報１７０ｃを基にして磁気ディスク装置１０の出荷日から現在に至るまでの年数を特定し、特定した年数を装置環境データの設定稼動年数情報に格納する。そして、装置環境データ設定部１６０は、設定温度情報、先頭セクタ情報、設定オフセット量情報および設定稼動年数情報を設定した装置環境データをシンボルデータに入力する（ステップＳ１０６）。
【００７９】
このように、装置環境データ設定部１６０は、磁気ディスク装置１０の温度などを基にして、装置環境データを生成し、生成した装置環境データをシンボルデータのダミーデータの代わりに入力するので、無駄なデータ領域を有効に利用することができる。
【００８０】
次に、リードベリファイ実行処理部１８０が設定温度情報を基にリライトを実行するか否かを判定する処理手順について説明する。図８は、リードベリファイ実行処理部１８０が設定温度情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【００８１】
同図に示すように、リードベリファイ実行処理部１８０が温度情報１７０ａを取得し（ステップＳ２０１）、リードベリファイ実行温度範囲情報１７０ｄおよびリライト実行温度範囲情報を取得し（ステップＳ２０２）、ディスクエンクロージャー３０内の温度がリードベリファイ実行温度範囲内か否かを判定する（ステップＳ２０３）。
【００８２】
ディスクエンクロージャー３０内の温度がリードベリファイ実行温度範囲内でない場合には（ステップＳ２０３，Ｎｏ）、処理を終了し、リードベリファイ実行温度範囲内である場合には（ステップＳ２０３，Ｙｅｓ）、装置環境データの設定温度情報を取得する（ステップＳ２０４）。
【００８３】
そして、設定温度情報が１に設定されている場合には（ステップＳ２０５，Ｙｅｓ）、ディスクエンクロージャー３０内の温度がリライト実行範囲内か否かを判定し（ステップＳ２０６）、ディスクエンクロージャー３０内の温度がリライト実行範囲内である場合には（ステップＳ２０６，Ｙｅｓ）、リライト処理を実行する（ステップＳ２０７）。
【００８４】
一方、設定温度情報が０に設定されている場合には（ステップＳ２０５，Ｎｏ）、後述するステップＳ２０８に移行する。また、ディスクエンクロージャー３０内の温度がリライト実行範囲外である場合には（ステップＳ２０６，Ｎｏ）、ステップＳ２０８に移行する。
【００８５】
リードベリファイ実行処理部１８０は、リライト処理を実行した後、リライト処理を続行するか否かを判定し（ステップＳ２０８）、リライト処理を続行する場合には（ステップＳ２０８，Ｙｅｓ）、次の装置環境データの設定温度情報を取得し（ステップＳ２０９）、ステップＳ２０５に移行する。一方、リライト処理を続行しない場合には（ステップＳ２０８，Ｎｏ）、処理を終了する。
【００８６】
このように、リードベリファイ実行処理部１８０は、装置環境データの設定温度情報に１が格納されている場合に、リライト処理を行うので、低温で書き込まれ、正常に読み出しづらいデータを効率よくリライトすることができる。
【００８７】
次に、リードベリファイ実行処理部１８０が設定オフセット量情報を基にリライトを実行するか否かを判定する処理手順について説明する。図９は、リードベリファイ実行処理部１８０が設定オフセット量情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【００８８】
同図に示すように、リードベリファイ実行処理部１８０がオフセット量範囲情報１７０ｆを取得し（ステップＳ３０１）、装置環境データの設定オフセット量情報を取得する（ステップＳ３０２）。
【００８９】
そして、設定オフセット量情報によって特定されるオフセット量が、許容するオフセット量範囲外である場合には（ステップＳ３０３，Ｎｏ）、リライト処理を行い（ステップＳ３０４）、読み取った装置環境データに対応するデータが書き込まれた位置の両隣に位置するセクタのデータに対してもリライト処理を行う（ステップＳ３０５）。
【００９０】
一方、設定オフセット量情報によって特定されるオフセット量が、許容するオフセット量範囲内である場合には（ステップＳ３０３，Ｙｅｓ）、後述するステップＳ３０６に移行する。
【００９１】
リードベリファイ実行処理部１８０は、リライト処理を行った後、リライト処理を続行するか否かを判定し（ステップＳ３０６）、リライト処理を続行する場合には（ステップＳ３０６，Ｙｅｓ）、次の装置環境データの設定オフセット量を取得し（ステップＳ３０７）、ステップＳ３０３に移行する。一方、リライト処理を続行しない場合には（ステップＳ３０６，Ｎｏ）、処理を終了する。
【００９２】
このように、リードベリファイ実行処理部１８０は、磁気ディスク２５０に書き込まれたデータのオフセット量が所定値よりも大きい場合にもリライト処理を行うので、正常に読み取りづらいデータを効率よくリライトすることができる。
【００９３】
次に、リードベリファイ実行処理部１８０が先頭セクタ情報を基にリライトを実行するか否かを判定する処理手順について説明する。図１０は、リードベリファイ実行処理部１８０が先頭セクタ情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【００９４】
同図に示すように、リードベリファイ実行処理部１８０は、装置環境データの先頭セクタ情報および設定温度情報を取得し（ステップＳ４０１）、先頭セクタである場合には（ステップＳ４０２，Ｙｅｓ）、設定温度情報が１に設定されているか否かを判定し（ステップＳ４０３）、設定温度情報が１に設定されている場合には（ステップＳ４０３，Ｙｅｓ）、リライト処理を行う（ステップＳ４０４）。
【００９５】
一方、先頭セクタでない場合（ステップＳ４０２，Ｎｏ）や設定温度情報に１が設定されていない場合には（ステップＳ４０３，Ｎｏ）、後述するステップＳ４０５に移行する。
【００９６】
リードベリファイ実行処理部１８０は、リライト処理を行った後、リライト処理を続行するか否かを判定し（ステップＳ４０５）、リライト処理を続行する場合には（ステップＳ４０５，Ｙｅｓ）、次のデータに書き込まれた装置環境データの先頭セクタ情報および設定温度情報を取得し（ステップＳ４０６）、ステップＳ４０２に移行する。一方、リライト処理を続行しない場合には（ステップＳ４０５，Ｎｏ）、処理を終了する。
【００９７】
このように、リードベリファイ実行処理部１８０は、磁気ディスク２５０に書き込まれたデータが先頭セクタに対応し、設定温度情報が１に設定されている場合に、リライト処理を行うので、正常に読み取りづらいデータを効率よくリライトすることができる。
【００９８】
なお、リードベリファイ実行処理部１８０は、磁気ディスク２５０にデータが書き込まれた時点での温度と、リライト時の温度とを比較して、リライト時の温度の方が高い場合にリライト処理を行ってもよい。
【００９９】
次に、リードベリファイ実行処理部１８０が設定稼動年数情報を基にリライトを実行するか否かを判定する処理手順について説明する。図１１は、リードベリファイ実行処理部１８０が設定稼動年数情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【０１００】
同図に示すように、リードベリファイ実行処理部１８０が、稼動年数範囲情報１７０ｇを取得し（ステップＳ５０１）、装置環境データの設定稼動年数情報を取得する（ステップＳ５０２）。
【０１０１】
そして、稼動年数が許容する稼動年数範囲内か否かを判定し（ステップＳ５０３）、許容する稼動年数範囲外である場合には（ステップＳ５０３，Ｎｏ）、リライト処理を実行し（ステップＳ５０４）、リライト処理を続行する場合には（ステップＳ５０５，Ｙｅｓ）、次のデータに書き込まれた装置環境データの設定稼動年数情報を取得し（ステップＳ５０６）、ステップＳ５０３に移行する。一方、リライト処理を続行しない場合には（ステップＳ５０５，Ｎｏ）、処理を終了する。ところで、稼動年数が許容する稼動年数範囲内である場合には、そのまま（ステップＳ５０５）に移行する。
【０１０２】
このように、リードベリファイ実行処理部１８０は、磁気ディスク装置１０の稼動年数が、許容する稼動年数範囲外の場合に、リライト処理を行うので、正常に読み取りづらいデータを効率よくリライトすることができる。
【０１０３】
上述してきたように、本実施例にかかるハードディスクコントローラ１００は、装置環境データ設定部１６０が、装置環境データを生成し、生成した装置環境データをシンボルデータに入力する。そして、リードベリファイ実行処理部１８０が、リードベリファイ実行時に、磁気ディスク２５０から読み出したデータに含まれる装置環境データを基にして、リライト処理を実行するか否かを判定するので、正常に読み取りづらいデータを効率よくリライトすることができる。
【０１０４】
（付記１）記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御装置であって、
前記ディスク装置の環境に係る情報である環境情報を生成する環境情報生成手段と、
前記環境情報生成手段によって生成された前記環境情報を、前記記憶ディスクに書き込むデータに格納する格納手段と、
前記記憶ディスクから読み込まれたデータに格納された前記環境情報を基にしてリライト処理を実行するか否かを判定するリライト判定処理手段と、
を備えたことを特徴とするディスク制御装置。
【０１０５】
（付記２）前記環境情報は、前記記憶ディスク装置内部の温度の情報、前記記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、前記記憶ディスクに書き込まれるデータのオフセット量の情報および前記記憶ディスク装置の稼動年数の情報を含んでいることを特徴とする付記１に記載のディスク制御装置。
【０１０６】
（付記３）データの単位をバイトからシンボルに変換する単位変換手段をさらに備え、前記格納手段は、単位が変換されたデータに生じる未使用領域に、前記環境情報を格納することを特徴とする付記１または２に記載のディスク制御装置。
【０１０７】
（付記４）前記リライト判定処理手段は、前記ディスク装置内部の温度が所定値未満の場合に、リライト処理を実行すると判定することを特徴とする付記２または３に記載のディスク制御装置。
【０１０８】
（付記５）前記リライト判定処理手段は、前記ディスク装置に書き込むデータが先頭セクタに対応する場合に、リライト処理を実行すると判定することを特徴とする付記２、３または４に記載のディスク制御装置。
【０１０９】
（付記６）前記リライト判定処理手段は、前記記憶ディスクに書き込まれたデータのオフセット量が所定値以上の場合に、リライト処理を実行すると判定することを特徴とする付記２〜５のいずれか一つに記載のディスク制御装置。
【０１１０】
（付記７）前記リライト判定処理手段は、前記記憶ディスク装置の稼動年数が所定値以上である場合に、リライト処理を実行すると判定することを特徴とする付記２〜６のいずれか一つに記載のディスク制御装置。
【０１１１】
（付記８）記憶ディスクに対してデータの書き込みまたは読み込みを行うと共に、前記記憶ディスクに書き込んだデータに対してリライト処理を実行するディスク装置を制御するディスク制御プログラムであって、
前記ディスク装置の環境に係る情報である環境情報を生成する環境情報生成手順と、
前記環境情報生成手順によって生成された前記環境情報を、前記記憶ディスクに書き込むデータに格納する格納手順と、
前記記憶ディスクから読み込まれたデータに格納された前記環境情報を基にしてリライト処理を実行するか否かを判定するリライト判定処理手順と、
をコンピュータに実行させることを特徴とするディスク制御プログラム。
【０１１２】
（付記９）前記環境情報は、前記記憶ディスク装置内部の温度の情報、前記記憶ディスクに書き込むデータが先頭セクタに対応するか否かの情報、前記記憶ディスクに書き込まれるデータのオフセット量の情報および前記記憶ディスク装置の稼動年数の情報を含んでいることを特徴とする付記８に記載のディスク制御プログラム。
【０１１３】
（付記１０）データの単位をバイトからシンボルに変換する単位変換手順をさらにコンピュータに実行させ、前記格納手順は、単位が変換されたデータに生じる未使用領域に、前記環境情報を格納することを特徴とする付記８または９に記載のディスク制御プログラム。
【０１１４】
（付記１１）前記リライト判定処理手順は、前記ディスク装置内部の温度が所定値未満の場合に、リライト処理を実行すると判定することを特徴とする付記９または１０に記載のディスク制御プログラム。
【０１１５】
（付記１２）前記リライト判定処理手順は、前記ディスク装置に書き込むデータが先頭セクタに対応する場合に、リライト処理を実行すると判定することを特徴とする付記９、１０または１１に記載のディスク制御プログラム。
【０１１６】
（付記１３）前記リライト判定処理手順は、前記記憶ディスクに書き込まれたデータのオフセット量が所定値以上の場合に、リライト処理を実行すると判定することを特徴とする付記９〜１２のいずれか一つに記載のディスク制御プログラム。
【０１１７】
（付記１４）前記リライト判定処理手順は、前記記憶ディスク装置の稼動年数が所定値以上である場合に、リライト処理を実行すると判定することを特徴とする付記９〜１３のいずれか一つに記載のディスク制御プログラム。
【産業上の利用可能性】
【０１１８】
以上のように、本発明にかかるディスク制御装置およびディスク制御プログラムは、リライト処理を効率よく行う必要があるディスク装置などに対して有用である。
【図面の簡単な説明】
【０１１９】
【図１】本実施例にかかる磁気ディスク装置の構成を示す機能ブロック図である。
【図２】図１に示したハードディスクコントローラのデータ処理を説明するための説明図である。
【図３】ハードディスクコントローラのデータ処理の他の例を説明するための説明図である。
【図４】ハードハードディスクコントローラの構成を示す機能ブロック図である。
【図５】装置環境データのデータ構造の一例を示す図である。
【図６】装置環境データ設定部がシンボルデータに装置環境データを入力した場合のシンボルデータのデータ構造の一例を示す図である。
【図７】装置環境データ設定部の処理手順を示すフローチャートである。
【図８】リードベリファイ実行処理部が設定温度情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【図９】リードベリファイ実行処理部が設定オフセット量情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【図１０】リードベリファイ実行処理部が先頭セクタ情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【図１１】リードベリファイ実行処理部が設定稼動年数情報を基にリライトを実行するか否かを判定する処理手順を示すフローチャートである。
【符号の説明】
【０１２０】
１０    磁気ディスク装置
２０    プリント基板
３０    ディスクエンクロージャー
４０    データバッファ
５０    フラッシュＲＯＭ
６０    ショックセンサ
７０    サーボコントローラ
８０    クロック生成部
９０    リードチャネル
９０ａ  ＲＬＬ
１００    ハードディスクコントローラ
１００ａ  ＨＲＲＬＬ
１００ｂ  ＬＲＲＬＬ
１１０    ＳＤＲＡＭ
１２０    バイト／シンボル変換部
１３０    ＤＦＩＦＯ
１４０    ＥＣＣ生成部
１５０    レイテンシシフト部
１６０    装置環境データ設定部
１７０    記憶部
１７０ａ  温度情報
１７０ｂ  オフセット量情報
１７０ｃ  日付情報
１７０ｄ  リードベリファイ実行温度範囲情報
１７０ｅ  リライト実行温度範囲情報
１７０ｆ  オフセット量範囲情報
１７０ｇ  稼動年数範囲情報
１８０    リードベリファイ実行処理部
２００    温度検出部
２１０    ヘッドＩＣ
２２０    ヘッド
２３０    ボイスコイルモータ
２４０    スピンドルモータ
２５０    磁気ディスク
【図１】
2006139581.tif 000003
【図２】
2006139581.tif 000004
【図３】
2006139581.tif 000005
【図４】
2006139581.tif 000006
【図５】
2006139581.tif 000007
【図６】
2006139581.tif 000008
【図７】
2006139581.tif 000009
【図８】
2006139581.tif 000010
【図９】
2006139581.tif 000011
【図１０】
2006139581.tif 000012
【図１１】
2006139581.tif 000013