(57)【特許請求の範囲】
【請求項１】
ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるディスク記憶装置において、
前記ディスク記憶装置に加えられる振動を検出する振動検出手段と、
前記ディスク上のセクタに対するリード動作でエラーが発生した場合に、上限リトライ回数の範囲で当該リード動作のリトライを制御するリトライ制御手段と、
前記リード動作のリトライでエラーが発生する都度、前記振動検出手段によって振動が検出されているかを調べ、振動が検出されている場合に、エラーの原因が振動にあると判定する第１の判定手段と、
前記リード動作のリトライの期間において、エラーの原因が振動にあると前記第１の判定手段によって判定された回数をカウントする振動カウンタと、
前記リード動作のリトライの期間において、第１の規定回数未満のリトライで前記セクタから正常にデータがリードできた場合に、当該セクタが正常セクタであると判定し、前記第１の規定回数以上のリトライで前記セクタから正常にデータがリードできた場合には、その際の前記振動カウンタの値が、前記第１の規定回数よりも少ない第２の規定回数以上であるかを判定することによって、当該セクタが、正常セクタであるか、或いは当該セクタに前記代替領域内の任意のセクタを割り当てる代替処理の対象となる欠陥セクタであるかを判定する第２の判定手段と、
前記第２の判定手段によって欠陥セクタであると判定されたセクタの代替先として前記代替領域内の任意のセクタを割り当てて、当該任意のセクタに、前記欠陥セクタであると判定されたセクタから前記リトライで正常にリードされたデータを書き込む代替処理を実行する代替処理手段と、
前記上限リトライ回数のリトライでも正常にデータがリードできなかった場合、ホストシステムにエラーを通知するための終了ステータスを設定する終了ステータス設定手段と
を具備することを特徴とするディスク記憶装置。
【請求項２】
ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタを割り当てるディスク記憶装置におけるセクタ代替処理方法において、
前記ディスク上のセクタに対するリード動作でエラーが発生した場合に、上限リトライ回数の範囲で当該リード動作のリトライを実行するステップと、
前記リード動作のリトライでエラーが発生する都度、前記ディスク記憶装置に設けられた振動検出手段によって前記ディスク記憶装置に加えられる振動が検出されているかを調べ、振動が検出されている場合に、エラーの原因が振動にあると判定するステップと、
前記リード動作のリトライの期間において、エラーの原因が振動にあると判定され都度、前記ディスク記憶装置に設けられた振動カウンタをインクリメントするステップと、
前記リード動作のリトライの期間において、第１の規定回数未満のリトライで前記セクタから正常にデータがリードできた場合に、当該セクタが正常セクタであると判定するステップと、
前記第１の規定回数以上のリトライで前記セクタから正常にデータがリードできた場合には、その際の前記振動カウンタの値が、前記第１の規定回数よりも少ない第２の規定回数以上であるかを判定することによって、当該セクタが、正常セクタであるか、或いは当該セクタに前記代替領域内の任意のセクタを割り当てる代替処理の対象となる欠陥セクタであるかを判定するステップと、
前記欠陥セクタであると判定されたセクタの代替先として前記代替領域内の任意のセクタを割り当てて、当該任意のセクタに、前記欠陥セクタであると判定されたセクタから前記リトライで正常にリードされたデータを書き込む代替処理を実行するステップと、
前記上限リトライ回数のリトライでも正常にデータがリードできなかった場合、ホストシステムにエラーを通知するための終了ステータスを設定するステップと
を具備することを特徴とするディスク記憶装置におけるセクタ代替処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるディスク記憶装置に係り、特に代替の対象とする欠陥セクタを判別する機能を有するディスク記憶装置及び同装置におけるセクタ代替処理方法に関する。
【０００２】
【従来の技術】
記録媒体（記録メディア）にディスクを用いたディスク記憶装置において、当該ディスク上の各トラックに対するデータの記録単位はセクタ（データセクタ）と呼ばれている。もし、ディスク上のセクタの中にディフェクト（傷）等に起因した欠陥セクタが存在する場合には、ディスク上に確保された代替領域内の任意のセクタを欠陥セクタの代替セクタとして割り当てる代替処理を実行するのが一般的である。従来のディスク記憶装置では、この欠陥セクタは次のように検出される。
【０００３】
まず、例えばセクタリード動作に失敗した場合、つまりセクタリードエラーとなった場合、リードリトライ（リード動作の再試行）が行われる。このリードリトライを所定回数以上行うことで正しくリードできたならば、該当するセクタは代替処理の対象となる欠陥セクタである判定される。
【０００４】
欠陥セクタが検出された場合、代替領域内の任意のセクタを当該欠陥セクタの代替セクタとして割り当て、その代替セクタに、上記リードできたデータを書き込む代替処理（リアサイン処理）を行う。以後、欠陥セクタへのアクセスは代替セクタへのアクセスに置き換えられる。これにより、たとえ欠陥セクタの傷等が進行して当該セクタの内容を読むことができないような状態になったとしても、代替セクタへのアクセスが行われることにより、正しいデータを読み出すことが可能となる。
【０００５】
【発明が解決しようとする課題】
従来のディスク記憶装置で行われている上述の代替処理は、本来、ディスク記憶装置の製造段階以後に発生する傷等のメディア異常、つまり後発のメディア異常に対処するための処理である。
【０００６】
ところで、例えば継続的に振動が加えられるような環境でディスク記憶装置を使用した場合には、振動を原因として例えばリード動作で所定回数以上のリトライが発生する可能性が高くなる。もし、所定回数以上のリトライが発生した場合、従来のディスク記憶装置では、リトライ回数が多いセクタは傷等のメディア異常のある後発の欠陥セクタであるとして、代替処理される。
【０００７】
したがって、継続的に振動が加えられ環境での使用が多いディスク記憶装置では、多くのセクタが代替処理される。しかしながら、この代替処理されるセクタの多くは、振動を原因として所定回数以上のリトライが行われたために欠陥セクタと判定されたものであり、本来は「正常なセクタ」である。
【０００８】
このように従来のディスク記憶装置では、リトライ回数が多いセクタは後発の欠陥セクタであるとして代替処理の対象としていたため、外部からの加振が多い環境で使用された場合に、本来「正常なセクタ」に対しても振動が原因で代替処理が行われてしまい、代替領域を使い切ってしまう恐れがあった。また、外部からの加振が多い環境に限らず、温度が異常に高いもしくは低い環境、または気圧が異常に高いもしくは低い環境で使用されるディスク記憶装置においても、リトライ回数が多くなりやすく、やはり「正常なセクタ」に対して代替処理が行われて、代替領域を使い切ってしまう恐れがあった。
【０００９】
本発明は上記事情を考慮してなされたものでその目的は、使用環境を原因としてリトライ処理が多発した結果正常なセクタに対する代替処理が発生するのを防ぎ、代替処理を適切に行うことができるディスク記憶装置及び同装置におけるセクタ代替処理方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明は、ディスク上の欠陥セクタの代替先として当該ディスク上に確保された代替領域内の任意のセクタが割り当てられるディスク記憶装置において、このディスク記憶装置が使用される環境を検出する環境検出手段と、上記ディスク上のセクタに対するリードまたはライト動作時のリトライの回数に応じて当該セクタが欠陥セクタであるか否かを判定する第１の判定手段と、この第１の判定手段により欠陥セクタであると判定された場合、欠陥セクタと判定された原因が上記環境検出手段によって検出されるディスク記憶装置の使用環境にあるか否かを判定する第２の判定手段と、上記欠陥セクタを上記代替領域内の任意のセクタに割り当てる代替処理を実行する代替処理手段であって、欠陥セクタと判定された原因がディスク記憶装置の使用環境にあると上記第２の判定手段により判定された場合には、当該セクタは正常セクタであるとして代替処理を抑止する代替処理手段とを備えたことを特徴とする。
【００１１】
このように本発明においては、ディスク上のセクタに対するリードまたはライト動作時のリトライの回数に応じて欠陥セクタと判定された場合に、そのまま当該セクタを代替領域内の任意のセクタに割り当てる代替処理を実行するのではなく、欠陥セクタと判定された原因が装置の使用環境にあるか否かを判定し、装置の使用環境以外の原因で欠陥セクタと判定された場合だけ、当該セクタの代替処理を実行し、装置の使用環境が原因で欠陥セクタと判定された場合には、当該セクタは本来正常なセクタであるとして代替処理を抑止している。
【００１２】
これにより、本来正常なセクタが、装置の使用環境の一時的な悪化が原因で代替処理されるのを防ぎ、代替領域が不要に消費されるのを防止できる。
【００１３】
ここで、リードまたはライト動作時のリトライのうち前記環境検出手段によって検出される前記ディスク記憶装置の使用環境を原因とするリトライの回数をカウントするための環境カウンタを設け、上記第２の判定手段の判定、即ち上記第１の判定手段により欠陥セクタであると判定された原因がディスク記憶装置の使用環境にあるか否かの判定を、当該環境カウンタの値に基づいて行うとよい。
【００１４】
【発明の実施の形態】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
【００１５】
図１は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。
【００１６】
図１の磁気ディスク装置（以下、ＨＤＤと称する）１において、１１はデータが磁気記録される記録媒体としてのディスク（磁気ディスク媒体）、１２はディスク１１へのデータ書き込み（データ記録）及びディスク１１からのデータ読み出し（データ再生）に用いられるヘッド（磁気ヘッド）である。ヘッド１２は、ディスク１１の各記録面に対応してそれぞれ設けられているものとする。なお、図１の構成では、単一枚のディスク１１を備えたＨＤＤを想定しているが、ディスク１１が複数枚積層配置されたＨＤＤであっても構わない。
【００１７】
ディスク１１の各記録面には、ユーザから利用可能なユーザ領域１１ａと、欠陥セクタの代替先となる代替トラックが確保された代替領域１１ｂと、システム管理に必要な情報（システム管理情報）を保存する管理領域１１ｃとが割り当てられている。システム管理情報は、欠陥セクタと当該セクタの代替先セクタとの対応関係を示す欠陥セクタ管理情報を含む。代替領域１１ｂと管理領域１１ｃとは、システムのみが使用する、つまりユーザからは見えない非ユーザ領域である。この代替領域１１ｂと管理領域１１ｃとを合わせた領域はシステム領域と呼ばれる。なお、管理領域１１ｃだけがシステム領域と呼ばれることもある。
【００１８】
ディスク１１はスピンドルモータ（以下、ＳＰＭと称する）１３により高速に回転する。ヘッド１２はヘッド移動機構としてのアクチュエータ（ロータリ型ヘッドアクチュエータ）１４に取り付けられており、当該アクチュエータ１４の回動（角度回転）に従ってディスク１１の半径方向に移動する。これにより、ヘッド１２は、目標トラックの目標位置にシーク・位置決めされるようになっている。アクチュエータ１４は、当該アクチュエータ１４の駆動源となるボイスコイルモータ（以下、ＶＣＭと称する）１５を有しており、当該ＶＣＭ１５により駆動される。ＳＰＭ１３及びＶＣＭ１５は、ＶＣＭ・ＳＰＭドライバ１６からそれぞれ供給される駆動電流（ＳＰＭ電流及びＶＣＭ電流）により駆動される。
【００１９】
ＣＰＵ１７はＨＤＤ１の主制御部をなし、当該ＨＤＤ１全体の制御及びＶＣＭ・ＳＰＭドライバ１６の制御を時分割で行う。
【００２０】
ＣＰＵ１７はＣＰＵバス１８に接続されている。ＣＰＵバス１８には、ＣＰＵが実行すべきプログラム（制御プログラム）が格納されているＲＯＭ１９と、ＣＰＵ１７が使用するワーク領域、変数領域等に使用するためのＲＡＭ２０と、ディスクコントローラ（以下、ＨＤＣと称する）２１と、ＨＤＤ１の制御に必要な諸信号の生成を行うゲートアレイ２２とが接続されている。
【００２１】
ＲＡＭ２０には、リトライカウンタ２０ａ及び振動カウンタ２０ｂの領域が確保されている。リトライカウンタ２０ａは、ディスク１１からのデータリードの失敗が発生する度に１だけ減算されるダウンカウンタである。リトライカウンタ２０ａは、データリードの失敗の原因に無関係に必ず減算される。振動カウンタ２０ｂは、データリードの失敗が発生し、且つ失敗した原因が振動による場合に限り１だけ加算されるアップカウンタである。
【００２２】
ＨＤＣ２１及びゲートアレイ２２は制御用のレジスタ群（図示せず）を有している。この制御用レジスタ群はＣＰＵ１７のメモリ領域の一部に割り当てられており、ＣＰＵ１７がこの領域に対して読み出し及び書き込みを行うことでＨＤＣ２１及びゲートアレイ２２を制御する。
【００２３】
ヘッド１２はヘッドＩＣ（ヘッドアンプ回路）２３と接続されている。ヘッドＩＣ２３はヘッド１２により読み出されたリード信号を増幅するリードアンプ、及びライトデータをライト電流に変換するライトアンプを有する。ヘッドＩＣ２３は、リード／ライトＩＣ（リード／ライトチャネル）２４と接続されている。リード／ライトＩＣ２４は、リード信号に対するＡ／Ｄ（アナログ／ディジタル）変換処理、ライトデータの符号化処理及びリードデータの復号化処理等の各種の信号処理を実行する。
【００２４】
ＨＤＣ２１は、ＣＰＵバス１８以外に、ゲートアレイ２２、リード／ライトＩＣ２４、ゲートアレイ２２及びバッアァＲＡＭ２５にも接続されている。ＨＤＣ２１はまた、ＨＤＤ１を利用するパーソナルコンピュータ等のホストシステム２とホストインタフェース３を介して接続されている。
【００２５】
ホストシステム２からのリードコマンドの実行時には、当該コマンドにより指定されたディスク１１上の領域に記録されているデータ信号がヘッド１２によって読み出される。ヘッド１２により読み出された信号（アナログ信号）はヘッドＩＣ２３により増幅され、リード／ライトＩＣ２４によって符号化される。ＨＤＣ２１は、リード／ライトＩＣ２４によって符号化されたデータをゲートアレイ２２からの制御用の各信号に従って処理することにより、ホストシステム２に転送すべきデータ（リードデータ）を生成する。このデータは一旦バッファＲＡＭ２５に格納されてからホストシステム２に転送される。
【００２６】
ホストシステム２からのライトコマンドの実行時には、ホストシステム２からＨＤＣ２１に転送されたデータ（ライトデータ）は一旦バッアァＲＡＭ２５に格納された後、ゲートアレイ２２からの制御用の各信号に従ってＨＤＣ２１によって符号化されてリード／ライトＩＣ２４に転送される。このＨＤＣ２１により符号化されたライトデータはリード／ライトＩＣ２４によって書き込み用の信号に変換され、ヘッドＩＣ２３を経由してヘッド１２に導かれ、当該ヘッド１２により、ディスク１１の上記コマンドで指定された領域に書き込まれる。
【００２７】
ゲートアレイ２２には、ＨＤＤ１に対して加えられる振動（加振）を検出する振動検出機構２６が接続されている。この振動検出機構２６での振動検出結果は定期的にゲートアレイ２２に読み込まれてデジタル値に変換され、当該ゲートアレイ２２内の所定の振動レジスタに保持される。
【００２８】
次に、図１に示した構成のＨＤＤ１におけるコマンド処理の全体の流れについて、図２のフローチャートを参照して説明する。
ＨＤＤ１内のＣＰＵ１７は、装置の電源投入時等においてＨＤＤ１を起動する処理を行うと、ホストシステム２からコマンドが転送されるのを待つコマンド待ちのループに入る（ステップ１０１）。
【００２９】
ＣＰＵ１７は、コマンド待ちのループでホストシステム２からコマンドが転送され、ＨＤＣ２１で受信されると、当該コマンドをＨＤＣ２１から受け取って解釈を行う（ステップ１０２）。
【００３０】
コマンド解釈の結果、受信したコマンドがリードコマンド以外であれば、ＣＰＵ１７は当該コマンドに応じた処理を行う。そしてＣＰＵ１７は、コマンド処理の結果をホストシステム２に通知するための当該結果に対応した終了ステータスを設定して（ステップ１２０）、コマンドを終了させ（ステップ１０７）、しかる後にコマンド待ちループ（ステップ１０１）に戻る。
【００３１】
一方、受信したコマンドがリードコマンドであれば、ＣＰＵ１７はＶＣＭ・ＳＰＭドライバ１６を制御して、当該コマンドで指定されたデータが記録されているＨＤＤ１上のトラック（目標トラック）へヘッド１２を移動させるシーク制御を行う（ステップ１０３）。そして、ＣＰＵ１７は上記コマンドで指定された目標トラック上の先頭セクタから順にデータを読み出すためのリード制御（ステップ１０４）を開始する。ＣＰＵ１７はこのリード制御で、ＨＤＣ２１からホストシステム２へのデータ転送の開始を許可し、ディスク１１上の目標トラックから正常に読み出されたデータが、バッアァＲＡＭ２５を介してＨＤＣ２１からホストシステム２に転送されるように制御する。
【００３２】
ＣＰＵ１７は、ホストシステム２からのリードコマンドで指定されたリード動作（ディスクリード動作）が終了すると、リード動作でエラーが発生しているか否かを確認する（ステップ１０５）。
【００３３】
もし、エラーが発生していた場合、ＣＰＵ１７はＨＤＣ２１からホストシステム２に通知する終了ステータスにエラーの内容を設定して（ステップ１１０）、コマンドを終了させ（ステップ１０７）、しかる後にコマンド待ちループ（ステップ１０１）に戻る。
【００３４】
これに対し、エラーが発生していなかった場合、即ちリード動作が正常に行われた場合、ＣＰＵ１７は終了ステータスに正常終了を示す内容を設定して（ステップ１０６）、コマンドを終了させ（ステップ１０７）、しかる後にコマンド待ちループ（ステップ１０１）に戻る。
【００３５】
次に、図１のＨＤＤ１における上記リード動作の詳細について、図３のフローチャートを参照して説明する。
ＣＰＵ１７は、リード動作の開始時に、ＨＤＣ２１内のアクセス開始アドレスレジスタに、ホストシステム２からのリードコマンドで指定された先頭アドレス（アクセス開始セクタアドレス）を設定する（ステップ２０１）。またＣＰＵ１７は、ＲＡＭ２０上の所定領域に配置されているリトライカウンタ２０ａ及び振動カウンタ２０ｂ（の領域）を初期化する（ステップ２０２）。ここではリトライカウンタ２０ａの初期値はリトライ回数の上限値（上限リトライ回数）Ｎであり、振動カウンタ２０ｂの初期値は０である。
【００３６】
本実施形態では、ディスク１１からのデータリードに失敗すると、上記の回数Ｎを上限にリトライが行われる。ＲＡＭ２０内に確保されたリトライカウンタ２０ａ及び振動カウンタ２０ｂは、このリトライ回数の管理のためと、リアサイン実施判定とに用いられる。リアサインとは、欠陥セクタの代替先として、ディスク１１に確保された代替領域１１ｂ内の任意のセクタ（空きセクタ）を割り当てることをいう。
【００３７】
ＣＰＵ１７はリトライカウンタ２０ａ及び振動カウンタ２０ｂを初期設定すると、ディスク１１からデータをリードするための制御を行う（ステップ２０３）。もし、あるセクタ（セクタブロック）からのデータリード動作中にエラーが発生し、リードエラーが検出（判定）されると（ステップ２０４）、ＣＰＵ１７はリード動作のリトライのための処理を次のように行う。
【００３８】
まずＣＰＵ１７は、リードエラーの原因が外部からの加振であるか否かをゲートアレイ２２内の振動レジスタを参照することにより調ベる（ステップ２１０）。ＣＰＵ１７は、リードエラーの原因が外部からの加振である場合のみ、振動カウンタ２０ｂの値を１だけインクリメントする（ステップ２１１）。そしてＣＰＵ１７は、リトライカウンタ２０ａの値を、リードエラーの原因に無関係に１だけデクリメントする（ステップ２１２）。
【００３９】
ＣＰＵ１７はステップ２１２を実行すると、当該ステップ２１２でのデクリメント後のリトライカウンタ２０ａの値が０になっているか否かを調べる（ステップ２１３）。もし、リトライカウンタ２０ａの値が０になっていないならば、ＣＰＵ１７はリードエラーが発生したセクタブロックに対するリトライを継続するため、ステップ２０３に戻ってリード動作を再度実行する。
【００４０】
これに対し、リトライカウンタ２０ａの値が０になっている場合、ＣＰＵ１７はリトライをＮ回、つまり上限リトライ回数実行しても正しく読み出せないエラーであると判定し、ＨＤＣ２１からホストシステム２に通知する終了ステータスにエラーを示す内容を設定して（ステップ２１４）、リード動作を終了する（ステップ２０９）。
【００４１】
また、ステップ２０４での状態判定（リードエラー判定）でリードエラーが発生していないことが判定されたならば、ＣＰＵ１７は該当するセクタブロックのリアサインを実施する必要があるか否かを次のようにして判定する。
【００４２】
まずＣＰＵ１７は、リトライカウンタ２０ａの値を読み出し、リードリトライ動作が第１の規定回数ｎ（ｎはｎ＜Ｎを満足する整数）以上行われたか否かを判定する（ステップ２０５）。もし、第１の規定回数ｎ以上のリトライが行われていなかった場合、つまりｎ回以上のリトライを行うことなく、セクタブロックから正しくリードできた場合、ＣＰＵ１７は当該セクタは欠陥が無いと判断する。この場合、ＣＰＵ１７は終了ステータスに正常終了を示す内容を設定して（ステップ２０８）、リード動作を終了する（ステップ２０９）。
【００４３】
一方、第１の規定回数ｎ以上のリトライが行われていた場合、つまりｎ回以上のリトライを行うことでセクタブロックから正しくリードできた場合、ＣＰＵ１７は当該セクタブロックを欠陥セクタと仮判定する。そしてＣＰＵ１７は、欠陥セクタと仮判定したセクタブロックが本当に欠陥セクタブロックであるか、或いは正常なセクタブロックであるかを判定するために、振動カウンタ２０ｂの値を読み出し、その値が第２の規定回数ｍ以上であるか否か、つまりｎ回以上のリトライのうちｍ回以上が振動（外部からの加振）を原因とするリトライであるか否かを判定する（ステップ２０６）。ここで、第１の規定回数ｎはＮ以下、即ちリトライカウンタ２０ａの初期値以下の値に設定され、第２の規定回数ｍは第１の規定回数ｎ以下の値に設定される。
【００４４】
もし、第１の規定回数ｎ以上のリトライが行われていた場合でも、振動カウンタ２０ｂの値から、ｎ回以上のリトライうち第２の規定回数ｍ以上が振動を原因とするリトライであったならば、ＣＰＵ１７はディスク１１上の該当するセクタブロックには欠陥はなく当該セクタブロックは記録再生に適していると判断する。この場合、ＣＰＵ１７は終了ステータスに正常終了を示す内容を設定して（ステップ２０８）、リード動作を終了する（ステップ２０９）。
【００４５】
これに対し、ｎ回以上のリトライが行われ、且つ当該ｎ回以上のリトライのうち振動を原因とするリトライが第２の規定回数ｍ未満であったならば（ステップ２０６）、ＣＰＵ１７はリトライの原因が振動によるものではなく、該当するセクタブロックの傷等の欠陥によるものと判断する。この場合、ＣＰＵ１７は該当するセクタブロックを本当の欠陥セクタ（後発欠陥セクタ）であるとして、当該欠陥セクタにディスク１１の代替領域１１ｂ内の任意の空きセクタを代替セクタとして割り当て、当該代替セクタにステップ２０３で正常にリードできたデータを書き込むリアサイン処理（代替処理）を実行する（ステップ２０７）。そしてＣＰＵ１７は、終了ステータスに正常終了を示す内容を設定して（ステップ２０８）、リード動作を終了する（ステップ２０９）。
【００４６】
このように本実施形態においては、ｎ回以上のリトライで正しくリード動作が行えた場合でも、当該ｎ回以上のリトライのうち振動を原因とするリトライがｍ回以上であったならば、該当するセクタブロックは正常であり記録再生に適しているとして、リアサイン処理を抑止するようにした。これにより、振動を原因とするリトライで正常なセクタに対する代替処理が発生するのを防止でき、代替領域１１ｂが不要に消費されるのを防ぐことができる。
【００４７】
なお、前記実施形態では、リード動作で目的セクタブロックからデータが正しくリードできないリードエラーの場合について説明したが、これに限るものではない。例えば、ライト動作で目的セクタブロックが検出できないライトエラーの場合にも、同様に適用できる。即ち、ｎ回以上のリトライで正しくライト動作が行えた場合でも、当該ｎ回以上のリトライのうち振動を原因とするリトライがｍ回以上であったならば、該当するセクタブロックは正常で記録再生に適しているとして、リアサイン処理を抑止する。
【００４８】
また、前記実施形態では、振動を原因とするリトライで正常なセクタに対する代替処理が発生するのを防止する場合について説明したが、これに限るものではない。即ち、本来は正常なセクタでありながらリトライが発生する原因には、振動以外にも種々存在する。例えば、ヘッド１２の特性及びＳＰＭ１３の回転精度に影響を及ぼす温度（ＨＤＤ１が置かれている温度）や、ヘッド１２の浮上量に影響を及ぼす気圧（ＨＤＤ１が置かれている気圧）などである。つまり、温度が高すぎる、或いは低すぎる場合、気圧が高すぎる、或いは低すぎる場合等である。このように、振動以外のＨＤＤ１の使用環境でも、当該環境が規定の環境条件から外れている場合には、リトライが発生して、本来は正常なセクタでありながら代替処理が発生する恐れがある。そこで、ｎ回以上のリトライで正しくリード／ライト動作が行えた場合でも、当該ｎ回以上のリトライのうち使用環境を原因とするリトライがｍ回以上であったならば、該当するセクタは正常であり記録再生に適しているとして、リアサイン処理を抑止するようにするとよい。ここで、ｎ，ｍ，Ｎの値を、リードとライトとで別々に設定してもよい。
【００４９】
以上に述べた実施形態では、本発明をＨＤＤ（磁気ディスク装置）に適用した場合について説明したが、これに限るものではなく、本発明は、光磁気ディスク装置などＨＤＤ以外のディスク記憶装置にも適用可能である。
【００５０】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００５１】
【発明の効果】
以上詳述したように本発明によれば、ディスク上のセクタに対するリードまたはライト動作時のリトライの回数に応じて欠陥セクタと判定された場合に、欠陥セクタと判定された原因が装置の使用環境にあるか否かを判定し、装置の使用環境が原因で欠陥セクタと判定された場合には、当該セクタは本来正常なセクタであるとして代替処理を抑止するようにしたので、本来正常なセクタが、装置の使用環境の一時的な悪化が原因で代替処理されるのを防ぎ、代替領域が不要に消費されるのを防止できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図２】同実施形態におけるコマンド処理の全体の流れを説明するためのフローチャート。
【図３】同実施形態におけるリード動作の詳細を説明するためのフローチャート。
【符号の説明】
１…ＨＤＤ（磁気ディスク装置、ディスク記憶装置）
２…ホストシステム
１１…ディスク
１１ａ…ユーザ領域
１１ｂ…代替領域
１１ｃ…管理領域
１２…ヘッド
１７…ＣＰＵ
２０…ＲＡＭ
２０ａ…リトライカウンタ
２０ｂ…振動カウンタ（環境カウンタ）
２１…ＨＤＣ（ディスクコントローラ）
２６…振動検出機構（環境検出手段）
【図１】
0003977611.tif 000002
【図２】
0003977611.tif 000003
【図３】
0003977611.tif 000004