JP2010027105A - ディスク・ドライブ装置及びそのエラー回復処理の方法 - Google Patents
ディスク・ドライブ装置及びそのエラー回復処理の方法 Download PDFInfo
- Publication number
- JP2010027105A JP2010027105A JP2008184345A JP2008184345A JP2010027105A JP 2010027105 A JP2010027105 A JP 2010027105A JP 2008184345 A JP2008184345 A JP 2008184345A JP 2008184345 A JP2008184345 A JP 2008184345A JP 2010027105 A JP2010027105 A JP 2010027105A
- Authority
- JP
- Japan
- Prior art keywords
- error recovery
- recovery processing
- command
- write
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】ホストへのリード・データの転送遅延を防ぐことができる。
【解決手段】本発明の一形態において、HDC/MPU23は、ホスト51からのリード/ライト・コマンドに対応した処理において発生したエラーに対して、エラー回復処理を行う。エラー回復処理の実行中に、新たなコンティニュアス・モードのリード・コマンドをホストから受信すると、設定条件に従って実行中のエラー回復処理を中断する。HDDは、リード・コマンドが指定するアドレスのデータを磁気ディスクから読み出し、その読み出したデータをホストに転送する。
【選択図】図4
【解決手段】本発明の一形態において、HDC/MPU23は、ホスト51からのリード/ライト・コマンドに対応した処理において発生したエラーに対して、エラー回復処理を行う。エラー回復処理の実行中に、新たなコンティニュアス・モードのリード・コマンドをホストから受信すると、設定条件に従って実行中のエラー回復処理を中断する。HDDは、リード・コマンドが指定するアドレスのデータを磁気ディスクから読み出し、その読み出したデータをホストに転送する。
【選択図】図4
Description
本発明はディスク・ドライブ装置及びそのエラー回復処理の方法に関し、特に、エラー回復処理中に新たなコマンドを受信した場合の処理に関する。
ディスク・ドライブ装置として、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のメディアを使用する装置が知られているが、その中で、ハードディスク・ドライブ(HDD)は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システムあるいは携帯電話など、HDDの用途は、その優れた特性により益々拡大している。
HDDは、ホストからのリード・コマンドに応答して、規定時間内にデータをホストに転送することが要求される。特に、AV機器向けのHDDは、短い規定時間内にデータを読み出す必要がある。AV機器においては、映像や音声の停止は障害として目、耳によりユーザに認識されやすいため、それを避けることが強く要求される。そのため、HDDからホスト(AV機器内のメイン・コントローラ)に対して遅滞なくリード・データが転送されることが要求される。
そこで、多くのAV機器において、映像/音声データのリードのためにストリーム・コマンドが使用される。ストリーム・コマンドは、通常のATAコマンドと異なり、コンティニュアス・モードを指定することができる。このコンティニュアス・モードにおいて、HDDは、リード・エラーが発生してもその回復処理を行わず、次のセクタのリードに移る。ホストは、リード・コマンド内のフィールドでモード設定を行うことができる。HDDは、コンティニュアス・モードを示すリード・コマンドに対しては、エラー回復処理を省略してリード処理を行う。
エラーが発生したセクタについては、正確なデータがホストに転送されないために、多少の画像飛びや音声飛びが発生する。しかし、HDDはコンティニュアス・モードにおいては、リード・コマンドに対応した処理においてエラーが発生しても、エラー回復処理のために磁気ディスクからのデータ読み出し及びリード・データ転送を停止しないため、ホストに対してリード・データが遅滞なく転送され、AV機器においても最も避けるべき事象である映像/音声の静止を効果的に防ぐことができる。
一方、システム領域のリード/ライトについては、誤ったデータがリード/ライトされることは、AV機器全体の故障につながる。従って、HDDは、そのようなデータのリード/ライト処理においてエラーが発生した場合には、そのエラーに対応したエラー回復処理を行い、正確なデータのリード/ライトを行うことが必要であり、一般に、ホストはコンティニュアス・モードを指定しない。あるいは、AV機器においても、映像/音声データのライト処理にためには、一般に、ホストはエラー回復処理を伴うモードをHDDに対して指示する。従って、HDDは、映像/音声データのライトにおいてエラーが発生した場合、そのエラー回復処理を実行する。
HDDは、複数のエラー回復ステップが登録されているテーブルに従って上記エラー回復処理を行う。HDDは、エラーが回復されるまで各ステップを順次実行していくため、実行ステップによってエラーが回復しないために、エラー回復に多くの時間がかかることがある。このような場合、ホストとHDDとの間の必要な転送レートが確保されない可能性がある。そのため、例えば特許文献1は、必要な転送レートを保証するために、エラー回復処理におけるリトライ回数の上限値を変更することを提案している。
特開2001−84712号公報
特許文献1の技術によれば、HDDは、個々のコマンドに対するエラー回復処理に要する時間を制限することにより、コマンド発行間隔内にそのコマンドの処理を終了することができる。しかし、上記技術は、HDDが受信したコマンドが転送レート保障コマンドである場合に、そのコマンドの処理におけるエラー回復処理の処理時間の上限を設定する。上記特許文献においては、特定のコマンドの実行に対する他のコマンドのエラー回復処理の処理時間の影響は考慮されていない。
例えば、ライト処理においてエラーが発生してエラー回復処理を行っている間に、HDDはコンティニュアス・モードのリード・コマンドを受信する場合がある。このとき、コンティニュアス・モードのリード・コマンドは、実行中のライト・コマンドのエラー回復処理の終了を待たなければならない。エラー回復処理に多くの時間を要する場合、コンティニュアス・モードのリード・コマンドの実行が遅れ、ユーザが視聴している映像や音声が静止してしまうことがありうる。従って、他のコマンドの処理によるリード・データの転送遅延をより確実に防ぐ技術が望まれる。
本発明の一態様は、ディスク・ドライブ装置におけるエラー回復処理の方法である。この方法は、ホストからのディスクへのアクセスを伴うコマンドに対応した処理において発生したエラーに対して、エラー回復処理を開始する。前記エラー回復処理の実行中に、新たなリード・コマンドを前記ホストから受信する。設定条件に従って前記エラー回復処理を中断して、前記リード・コマンドが指定するアドレスのデータをディスクから読み出す。前記読み出したデータを前記ホストに転送する。これにより、必要なデータの転送遅延を抑制することができる。
好ましくは、前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、二つのエラー回復ステップの間において前記エラー回復処理を中断する。これにより、エラー回復ステップが中断されず、全体的な処理効率の低下を避けることができる。
好ましくは、受信したリード・コマンドのコマンド・タイプを参照し、前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する。これにより、転送遅延を避けることを必要とされるコマンドの遅延を避けると共に、エラー回復処理の中断に伴う処理効率の低下を避けることができる。
好ましくは、前記エラー回復処理を中断する条件は、リード・データのためのバッファ空き容量が前記リード・コマンドのデータに足りていることを含む。これにより、無駄な中断による処理効率の低下を避けることができる。
好ましくは、受信したリード・コマンドのコマンド・タイプを参照し、前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する。これにより、転送遅延を避けることを必要とされるコマンドの遅延を避けると共に、エラー回復処理の中断に伴う処理効率の低下を避けることができる。
好ましくは、前記エラー回復処理を中断する条件は、リード・データのためのバッファ空き容量が前記リード・コマンドのデータに足りていることを含む。これにより、無駄な中断による処理効率の低下を避けることができる。
好ましくは、前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、次に実行するエラー回復処理ステップの内容に基づいて前記エラー回復処理を中断するか否かを判定する。これにより、中断処理を行う場合において、エラー回復率を上げることができる。さらに、前記エラー回復処理を中断しないと判定する条件は、前記次に実行するエラー回復処理ステップが、その前のエラー回復処理ステップと同様にターゲット・トラックのフォローイングを維持してデータ書き込みを試みるステップであることを含む、ことが好ましい。このようなステップは、連続処理によりエラー回復の可能性を高めることができるからである。
好ましくは、前記エラー回復処理のコマンド・タイプを参照し、前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する。これにより、優先すべきコマンドのエラー回復処理を先に終了することができる。
好ましくは、前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、実行済みのエラー回復処理ステップ数に基づいて前記エラー回復処理を中断するか否かを判定する。これにより、データ転送遅延を抑制しながら、エラー回復の可能性を高めることができる。
好ましくは、前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、実行済みのエラー回復処理ステップ数に基づいて前記エラー回復処理を中断するか否かを判定する。これにより、データ転送遅延を抑制しながら、エラー回復の可能性を高めることができる。
好ましくは、前記エラー回復処理のコマンドのタイム・アウトまでの時間に基づいて前記エラー回復処理を中断するか否かを判定する。これにより、より確実にタイム・アウトを避けることができる。
好ましい例において、前記エラー回復処理のコマンドはライト・コマンドであり、ライト・データのためのバッファの空き容量及び/もしくはリード・データのためのバッファ空き容量に基づいて前記エラー回復処理を中断するか否かを判定する。これにより、無駄な中断による処理効率の低下を避けることができる。
好ましい例において、前記エラー回復処理のコマンドはライト・コマンドであり、ライト・データのためのバッファの空き容量及び/もしくはリード・データのためのバッファ空き容量に基づいて前記エラー回復処理を中断するか否かを判定する。これにより、無駄な中断による処理効率の低下を避けることができる。
本発明の他の態様に係るディスク・ドライブ装置は、データを記憶するディスクを回転するモータと、前記ディスクにアクセスするヘッドと、前記ヘッドを移動して前記ディスクの所望の半径位置に前記ヘッドを移動する移動機構と、ホストからの前記ディスクへのアクセスを伴うコマンドに対応した処理において発生したエラーに対するエラー回復処理の実行中に新たなリード・コマンドを前記ホストから受信すると、設定条件に従って前記エラー回復処理を中断して、前記リード・コマンドが指定するアドレスのデータを前記ヘッド及び前記移動機構を制御して前記ディスクから読み出し前記ホストに転送する、コントローラと、を有する。これにより、必要なデータの転送遅延を抑制することができる。
本発明によれば、ホストへのリード・データの転送遅延を防ぐことができる。
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブ装置の一例であるハードディスク・ドライブ(HDD)について説明する。
本形態のHDDは、所定の条件に従って、アクセスを伴うコマンド(リード・コマンドもしくはライト・コマンド)に対する処理のエラー回復処理(ERP)を中断し、エラー回復処理の実行中に受信したリード・コマンドが指定するアドレスのデータを磁気ディスクから読み出してホストに転送する。これにより、リード・コマンドが指定するリード・データのホストへの転送が遅延することを防止する。リード・データの転送後、HDDは、中断していたERPを再開する。本形態のERPについて詳細に説明する前に、まず、HDDの全体構成を説明する。
図1は、HDD1の全体構成を模式的に示すブロック図である。HDD1は、エンクロージャ10の外側に固定された回路基板20を備えている。回路基板20上には、リード・ライト・チャネル(RWチャネル)21、モータ・ドライバ・ユニット22、ハードディスク・コントローラ(HDC)とMPUの集積回路(HDC/MPU)23及び半導体メモリのRAM24などの各回路要素を有している。エンクロージャ10内において、スピンドル・モータ(SPM)14は所定の角速度で磁気ディスク11を回転する。磁気ディスク11は、データを記憶するディスクである。HDC/MPU23からの制御データに従って、モータ・ドライバ・ユニット22がSPM14を駆動する。
磁気ディスク11にアクセス(リードもしくはライト)するヘッド・スライダ12は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換(データのリード・ライト)を行うヘッド素子部とを備えている。各ヘッド・スライダ12はアクチュエータ16の先端部に固定されている。
アクチュエータ16はボイス・コイル・モータ(VCM)15に連結され、回動軸を中心に回動することによって、ヘッド・スライダ12を回転する磁気ディスク11上においてその半径方向に移動する。モータ・ドライバ・ユニット22は、HDC/MPU23からの制御データに従ってVCM15を駆動する。アーム電子回路(AE)13は、HDC/MPU23からの制御データに従って複数のヘッド素子部12の中から磁気ディスク11にアクセスするヘッド・スライダ12を選択し、リード/ライト信号の増幅を行う。
RWチャネル21は、リード処理において、AE13から取得したリード信号からサーボ・データ及びユーザ・データを抽出し、デコード処理を行う。デコード処理されたデータは、HDC/MPU23に供給される。また、RWチャネル21は、ライト処理において、HDC/MPU23から供給されたライト・データをコード変調し、さらに、コード変調されたデータをライト信号に変換してAE13に供給する。
HDC/MPU23において、HDCはロジック回路であり、MPUはRAM24にロードされたファームウェアに従って動作する。HDC/MPU23はコントローラの一例であり、ヘッド・ポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、HDD1の全体制御を実行する。特に本形態において、HDC/MPU23は、リードERP及びライトERPの実行制御にその特徴を有している。
本形態において、HDC/MPU23は、所定の条件に従って、実行中のリード処理及び/もしくはライト処理のエラー回復処理を中断してそのエラー回復処理の実行中に受信したリード・コマンドの処理を開始する。これにより、迅速な転送が要求されるリード・データを、ホスト51に遅滞なく転送することができる。例えば、AV機器において、ホスト51は、その機器内のメイン・コントローラである。HDC/MPU23がエラー回復処理を中断する条件のいくつかの好ましい態様が存在する。以下において、これらの好ましい態様について詳細に説明する。以下において、リード・コマンドという言葉は、異なるタイプのリード・コマンドを包含し、ライト・コマンドについても同様である。また、コマンド・タイプという言葉は、リード・コマンドとライト・コマンドの双方のコマンド・タイプを包含する。
ERP実行中にリード・コマンドを受信した場合に常にERPを中断することは、迅速な転送を要求されないリード・データの転送のために現在実行中の処理を中断する、あるいは、他の条件からリード・データの転送よりもERPを優先すべき場合にもERPを中断することになり、HDD1の処理効率を大きく低下させることになる。従って、HDC/MPU23は、予め設定されている条件が満足する場合にERPを中断する。
HDC/MPU23がERPの中断を判断する条件項目として、好ましい複数の条件項目が存在する。これらの条件項目から選択する、あるいは、これらの条件項目のいくつかを適切に組み合わせることによって、HDD1は、それが実装される装置に適切な処理を行うことができる。ERP中断の条件項目は、受信したリード・コマンドのコマンド・タイプ、実行中のERPが対応するコマンドあるいはそのコマンドのタイム・アウトまでの時間、次に行うERPステップや実行済みERPステップ数などの実行中のERPの状態、バッファの状態などの項目を含む。
HDC/MPU23は、設定されている一つあるいは複数のERP中断条件項目について判定を行い、全ての条件項目が満足される場合にERPを中断する。以下において、好ましい条件項目を具体的に説明するが、HDD1の設計においては、各位項目を独立して使用する、また、適切な組み合わせを選択することができる。
複数の好ましい条件項目の組み合わせが存在するが、その中で、まず、ライトERPを実行中に特定のリード・コマンドを受信した場合に、ライトERPを中断する処理を説明する。特定のリード・コマンドの好ましい例は、コンティニュアス・モードを指定するリード・コマンドである。このリード・コマンドは、AVデータに有用なストリーム・コマンドの一つである。コンティニュアス・モードにおいて、HDC/MPU23は、リード処理において発生したエラーを無視し、エラー回復処理を行うことなく磁気ディスク11からのリード・データの読み出しとホスト51への転送を続行する。
図2は、リード・ストリーム・コマンドのフォーマットの一例を示している。リード・コマンドは、コマンドの種類を示すコマンド・タイプ、データを読み出す開始アドレスであるスタートLBA(Logical Block Address)、そしてデータ長のそれぞれを示す各フィールドを有している。HDC/MPU23は、コマンド・タイプを参照することで、そのリード・コマンドがコンティニュアス・モードを指定しているか否かを特定することができる。
HDC/MPU23は、リード・コマンドが指定するデータがキャッシュ・ヒットしている場合は、エラー回復処理を中断することなく、リード・データのホスト51への転送とエラー回復処理とを並行して行う。キャッシュ・ヒットしている場合はバッファ内のデータを転送すればよいので、HDC/MPU23は磁気ディスク11にアクセスする必要がなく、ライトERPとリード・データ転送を並行して行うことができる。
HDC/MPU23は、ライトERPをライトERPテーブルに従って実行する。ライトERPテーブルは、エラー回復のための複数のライトERPステップから構成されている。HDC/MPU23は、ライトERPテーブルに登録されている優先度の高いステップから順次実行していく。
好ましくは、HDC/MPU23は、ライトERPステップの途中で処理を中断することなく、ライトERPステップの間においてライトERPを中断する。ホスト51はバッファを有しており、リード・データの転送を完了すべきタイミングまでに相応の猶予時間が存在する。従って、実行中のERPステップを終了させることで、ライト・エラーからの回復確率を上げ、全体の処理効率の低下を避けることが好ましい。
さらに、好ましい態様として、HDC/MPU23は、次に実行するライトERPステップの内容に応じて、ライトERPを中断するか否かを決定する。特定のライトERPステップが次のステップである場合、HDC/MPU23はライトERPを中断することなく、そのライトERPステップを実行する。例えば、ライトERPステップの中には、連続して実行することが好ましいステップが存在する。HDC/MPU23は、そのような予め設定されている特定のライトERPステップを、新たなリード・コマンドの実行よりも優先して実行し、ライト・エラーからの回復確率を上げ、HDD1全体の処理効率の低下を避けることが好ましい。
これらの条件においてライトERP(ERPの中断)を行う処理の流れを、図3のフローチャートを参照して説明する。また、また、図4のブロック図を合わせて参照する。HDC/MPU23は、ホスト51からのライト・コマンドに従い磁気ディスク11へのデータ書き込みを行う。ライト・キャッシュ機能はイネーブルされており、HDC/MPU23は、ホスト51からライト・データをRAM24のバッファ242に格納すると、ホスト51にライト完了の通知を行う。
ライト処理中にエラーが発生すると、HDC/MPU23は、ライトERPを開始する(S11)。HDC/MPU23は、RAM24に格納されているライトERPテーブル241を参照し、優先度の高いステップから順次実行する。ライトERP実行中にホスト51からリード・コマンドを受信すると(S12)、HDC/MPU23は、そのリード・コマンドがキャッシュ・ヒットしているか判定する(S13)。キャッシュ・ヒットしている場合(S13におけるY)、HDC/MPU23は、ライトERPを中断することなく続行する(S16)。また、ライトERPと並行して、HDC/MPU23は、バッファ242内にあるデータをホスト51に転送する。
リード・コマンドの指定アドレスのデータが、キャッシュ・ヒットしてない場合(S13におけるN)、HDC/MPU23はコマンドのタイプを特定する(S14)。図2を参照して説明したように、HDC/MPU23はコマンド内のフィールドを参照することで、コマンドのタイプを特定することができる。受信したリード・コマンドがリード・コンティニュアス・モードのリード・コマンドでない場合(S14におけるN)、HDC/MPU23は、ライトERPを中断することなく続行する(S16)。HDC/MPU23は、ライトERPが終了した後に、そのリード・コマンドに応じて磁気ディスク11からデータを読み出す(S17)。
受信したリード・コマンドがリード・コンティニュアス・モードのリード・コマンドである場合(S14におけるY)、HDC/MPU23は、実行中のライトERPステップを完了した後、次のライトERPステップが、ライトERPを続行すべきステップであるか判定する。(S15)。ライトERPを続行する特定のERPステップは、予め設定されており、HDC/MPU23は、次のERPステップがERP続行のステップ・グループ内に含まれているかを判定する。
次のライトERPステップが上記特定のERPステップである場合(S15におけるY)、HDC/MPU23は、ライトERPを中断することなく、そのライトERPステップの実行を開始する(S18)。そのライトERPステップが終了すると、HDC/MPU23は、上記工程(S15)に戻り、同様の工程を繰り返す。
次のライトERPステップが上記特定のERPステップでない場合(S15におけるN)、HDC/MPU23はライトERPを中断し(S19)、必要なパラメータをRAM24に格納する(S20)。具体的には、RAM24に待避させるパラメータ・セットは、RWチャネル21のパラメータ、ライト・コマンドが指定するアドレス、そして最後に終了したライトERPステップを特定する情報などを含んでいる。その後、HDC/MPU23は、受信したリード・コマンドに対応したデータを磁気ディスク11から読み出し、ホスト51に転送する(S17)。
リード・コマンドの処理(S17)が終了すると、ライトERPは中断されたままであるので(S23におけるY)、HDC/MPU23は、RAM24からライトERPのパラメータ・セットを取得し(S21)、HDC/MPU23は中断したライトERPを再開する(S22)。つまり、HDC/MPU23は、中断前に最後に終了したライトERPステップの次のステップから、ライトERPを再開する。このように、HDC/MPU23は、中断ポイントからライトERPを再開することが好ましい。ライトERPを初めからやり直すと、同じステップを何度も繰り返す可能性があり、エラー回復までの所要時間が長くなる、と考えられるからである。
上記処理フローにライトERP中断の条件項目として使用した、ライトERPを続行することが好ましいライトERPステップについて具体的に説明する。典型的には、ライトERPで実行される複数ERPステップの内、いくつかは処理内容の異なるステップであり、また、いくつかは同一のステップである。例えば、ライトERPテーブルは5の異なるライトERPステップを有し、それら5つのライトERPステップは、それぞれが2回ずつ実行するように登録されている。つまり、ライトERPテーブルには、全部で10のライトERPステップが登録されている。
具体的なライトERPステップは、HDDの設計によって異なる。いくつかのライトERPステップを例示すると、あるライトERPステップは、RWチャネル21のパラメータを初期状態にリセットして書き込みを試みる。また、他のライトERPステップは、ターゲット・トラックとトラック番号(シリンダ番号)は同じだが記録面(ヘッド・スライダ)が異なるトラックにシークした後、ターゲット・トラックに再シークして書き込みを試みる。ライトERPテーブルに登録されている同一処理のライトERPステップは、一つのみであることもあり、また、そのライトERPステップが複数ステップ登録されていることもある。複数ステップ登録されている場合、そられは連続している、あるいは分散して登録されていることがある。
種々のライトERPステップの中で、連続して実行することでエラー回復の確率を高めることができるステップが存在する。これらは、ターゲット・トラックのフォローイングを維持しながら(別トラックへシークすることなく)、データの書き込みを試みる処理である。例えば、同一処理内容の連続するライトERPステップのグループであって、そのステップの処理内容は、ターゲット・トラックのフォローイングを維持しつつデータ書き込みを試みる場合である。
このような複数ステップの実行においては、エラー回復の確率を高めるために、シーク処理を挟まずにフォローイングを続けてデータ書き込みの試みを繰り返すことが好ましい。つまり、次に実行するライトERPステップが一つ前のERPステップと同一処理内容であって、そのステップ内でターゲット・トラックのフォローイングが維持される場合、HDC/MPU23は、次に実行するライトERPステップを続けて行うことが好ましい。ライトERPの中断は、シーク処理を伴うため、そのようなステップを実行しているときは、HDC/MPU23は、ライトERPを中断することなく、それを続行することが好ましい。
このようなライトERPステップの好ましい例は、サーボ・セクタのバーストを検出することができなくてもそれを無視してターゲット・フォローイングとデータ書き込みを行う(試みる)ステップ、サーボ検出のためのRWチャネル21のパラメータを振りながらターゲット・フォローイングとデータの書き込みを試みるステップ、グレイ・コード(サーボ・トラック(サーボ・シリンダ)ID)を読み出すことができなくてもそれを無視してターゲット・フォローイングとデータの書き込みを試みるステップ、そして、セクタ番号を読み出すことができなくてもそれを無視してターゲット・フォローイングとデータの書き込みを試みるステップ、などである。RWチャネル21のパラメータを変更して書き込みを試みるステップは、各ステップにおけるHDD1の設定は異なるが、処理内容は同一である。
広く知られているように、磁気ディスク11上には、半径方向に連続して形成された複数のサーボ・トラックが形成されており、各サーボ・トラックは、円周方向において離間した複数のサーボ・セクタから構成されている。各サーボ・セクタの間に、ユーザ・データがデータ・セクタ単で記録される。各サーボ・セクタは、サーボ・トラックを識別すしグレイ・コードで形成さされたサーボ・トラック(サーボ・シリンダ)ID、サーボ・セクタを識別するセクタ番号、サーボ・トラック内のより詳細な位置を特定するためのバースト・パターンを含む。
HDC/MPU23は、上記のライトERPステップをそれぞれ複数回繰り返す。リード・コマンドを受信した後に開始する最初のライトERPステップが、これらのライトERPステップの2回目以降のステップである場合、HDC/MPU23は、ライトERPを中断することなく、そのステップを開始する。リード・コマンドを受信した後に開始する最初のライトERPステップが、これらと異なるライトERPステップである、あるいはこれらのライトERステップのうちの一つであるが、連続する複数ステップの最初のステップである場合は、HDC/MPU23は、ライトERPを中断して、リード・コマンドに対応した処理を行う。
これに対して、リード・コマンドを受信したら、そのステップを開始することなくライトERPを中断することが好ましいステップとして、例えば、ターゲット・トラックとトラック番号(シリンダ番号)は同じだが記録面(ヘッド・スライダ)が異なるトラックにシークした後にターゲット・トラックに再シークして書き込みを試みるステップは、シーク処理を含むため、その前のステップと連続して行う必要はない。あるいは、ホストから受信したライト・データにエラーが存在するため、そのエラー訂正を行うステップは、ディスクへの書き込みとは直接に係らないため、その前のステップと連続して行う必要はない。この他、他のトラックへのシークを行い、そこでダミー・ライトを行った後に再度ターゲット・トラックでの書き込みを試みるステップも中断すべきステップの一つである。
図3のフローチャートを参照して説明した好ましい例は、次に実行するライトERPステップに基づいて、ライトERPの中断/続行を決定している。HDC/MPU23は、これと異なる他のライトERPの条件項目(必要条件項目)、あるいは、これに追加された他のライトERPの条件項目に基づいて中断/続行を決定することができる。好ましい例において、HDC/MPU23は、上記条件項目に加え、ライトERPステップの実行済ステップ数に基づいてライトERPの中断/続行を決定する。ライトERPステップの実行済ステップ数が予め設定されている特定数に達していることを、ライトERP中断の必要条件とする。
具体的には、HDC/MPU23は、優先度の高い特定数のライトERPステップを終了するまではライトERPを続行し、特定数のライトERPステップが終了した後にライトERPを中断する。これにより、ライト・エラーからの回復を早めて、電源遮断によるデータ消失の可能性を低減する。例えば、HDC/MPU23は、最初から10番目のライトERPステップを終了するまでは、コンティニュアス・モードのリード・コマンドを受信してもライトERPを中断しない。この特定数は、例えばエラー回復率の点から、設計により適切な値を選択して、HDC/MPU23のファームウェアに設定する。
具体的な処理においては、例えば、HDC/MPU23は、図3のフローチャートにおいて、次のライトERPステップの内容(種類)について判定する(S15)前に、最後に終了したライトERPステップのステップ順位を参照し、その値が特定数に達しているか判定する。
ステップ順位が特定数に達していない場合、HDC/MPU23は次のライトERPステップについて判定する(S15)ことなく、次のライトERPステップを実行する。ステップ順位が特定数に達している場合、HDC/MPU23は次のライトERPステップについて判定する(S15)。実行済みライトERPステップ数の判定のために次のライトERPステップの順位を使用する場合は、その順位が特定数に1を加えた値に達しているか否か判定すればよい。
他の好ましい条件項目は、実行中のライトERPが対応するライト・コマンドのコマンド・タイプである。HDC/MPU23は、ライト・コマンドのコマンド・タイプに従って、ライトERPの中断処理を変更する。例えば、ライト・コマンドが特定のタイプである場合のみライトERPを中断し、他のタイプのライトERP実行中にいずれのリード・コマンドを受信しても、ライトERPを中断することなく続行する。
好ましい例において、ホスト51は、AVデータの読み出し/書き込みにストリーム・コマンドを使用し、システム・データ(AVデータ以外のシステム制御のためのデータ)の読み出し/書き込みにATAコマンドを使用する。HDC/MPU23は、ライトERPのコマンド・タイプがストリーム・コマンドである場合にのみ、ライトERPを中断する。
図3を参照して説明した例において、HDC/MPU23は、実行中のライトERPがストリーム・コマンドのライトERPであれば、図3のフローチャートに従った処理を行い、ATAコマンド(例えばWRITE DMA)であれば、図3のフローチャートに従った処理を開始することなく、ライトERPを続行する。これにより、電源遮断によりシステムに必須のデータが書き込まれない危険性を低減することができる。
上述のように、好ましいライトERPの中断条件としては、ライトERPに関する条件のほか、受信したリード・コマンドについての条件がある。図3を参照して説明した処理において、HDC/MPU23は、リード・ストリーム・コマンドにおいて、コンティニュアス・モードである場合に、ライトERPの中断を行う。このように、全てのリード・コマンドではなく、転送遅延を防ぐことが特に必要なコマンドに対してライトERPを中断することで、リード・データ転送遅延を避けながら、処理効率が低下することを抑えることができる。なお、設計によって、いずれのリード・コマンドを受信した場合にも、図3のフローチャートに従った処理をしてもよい。
リード・コマンドに関する好ましい条件項目は、リード・コマンドのコマンド・タイプのほかに、リード・データのためのバッファ空き容量がある。HDC/MPU23は、ホスト51から受信したリード・データを、いったん、RAM24内のバッファ242に格納する。
リード・データのためのバッファ空き容量が、そのデータ長よりも小さい場合には、リード・データを受信することはできないため、ライトERPを中断しても意味がない。HDC/MPU23は、リード・コマンドを受信すると、指定アドレスのデータ長とバッファ空き容量を比較し、データ長が空き容量以下の場合に、ライトERPの中断について判定を行う。
リード・データのためのバッファ空き容量が、そのデータ長よりも小さい場合には、リード・データを受信することはできないため、ライトERPを中断しても意味がない。HDC/MPU23は、リード・コマンドを受信すると、指定アドレスのデータ長とバッファ空き容量を比較し、データ長が空き容量以下の場合に、ライトERPの中断について判定を行う。
HDC/MPU23は、例えば、図3のフローチャートの処理を開始する前にデータ長と空き容量との関係について判定を行う。データ長が空き容量以下の場合に、HDC/MPU23は図3のフローチャートの処理を開始し、データ長が空き容量よりも大きい場合にはライトERPを続行する。なお、HDD1は、ライト・データとリード・データを同一のバッファ(シングル・バッファ)に格納してもよく、あるいは、リード・データとライト・データとを異なるバッファ(デュアル・バッファ)に格納してもよい。バッファは、典型的には、リング・バッファである。
ライトERPの中断の条件項目として、HDC/MPU23は、バッファ内のライト・データの容量を使用することができる。シングル・バッファにおいて、ライト・データが多いと、リード・バッファのための容量が少なくなってしまう。また、デュアル・バッファにおいても、新たなライト・データを受信することができず、ホスト51を待たせることになる。
そこで、好ましい例において、HDC/MPU23は、バッファ内のライト・データ容量を使用して、ライトERP中断の有無を判定する。例えば、バッファ内のライト・データ容量が特定の容量を超える場合には、HDC/MPU23はライトERPを続行する。バッファ内のライト・データ容量が特定の容量を超えていない場合、HDC/MPU23は図3のフローチャートの処理を開始する。
これまで説明した処理において、HDD1のライト・キャッシュ機能がONである。これにより、HDC/MPU23は、ライト・コマンド実行中であっても、次のコマンドを受信することができる。この他、コマンド・キューイングをサポートするHDD1に本発明を適用することができる。コマンド・キューイングを使用すると、HDC/MPU23は、リード・コマンド及びライト・コマンドを完了する前に、次のコマンドをホスト51から受信することができる。このようなHDD1は、ライトERPの他、所定条件においてリードERPを中断するようにしてもよい。
好ましい例において、HDC/MPU23は、ATAコマンド(例えば、READ DMA)のリードERPを実行中にコンティニュアス・モードのリード・ストリーム・コマンドを受信した場合、所定の条件において、リードERPを中断し、新たに受信したリード・コマンドの処理を行う。リードERP中断の条件項目も、ライトERPと同様に、受信したリード・コマンドのコマンド・タイプ、実行中のERPが対応するコマンドあるいはそのコマンドのタイム・アウトまでの時間、次に行うERPステップや実行済みERPステップ数などの実行中のERPの状態、バッファの状態などの項目を含む。
この他、ホスト51によりタイム・アウトが設定されている場合、HDC/MPU23は、タイム・アウトをERP中断の条件項目として使用することが好ましい。HDC/MPU23は、規定時間が経過する(タイム・アウト)前にコマンド処理を完了しなければならない。そのため、タイム・アウトまでの時間が少ない場合、HDC/MPU23は、ERPを中断することなく、その処理を続行することが好ましい。
例えば、HDC/MPU23は、ERPを行っているコマンドのタイム・アウトまでの時間が設定値よりも小さい場合には、他の条件が満足していていてもERPを中断することなく、その処理を続行する。これにより、他のコマンドの処理を行うことで現在実行中のコマンドがタイム・アウトとなることを避けることができる。
以上、本発明について好ましい態様を使用して説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態においては、HDDを例にとって説明したが、光ディスクや光磁気ディスクなど他のディスクを使用するディスク・ドライブ装置、あるいはそのディスクを着脱可能なディスク・ドライブ装置に本発明を適用することができる。
1 ハードディスク・ドライブ、10 筺体、11 磁気ディスク
12 ヘッド・スライダ、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 RWチャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/MPU、24 RAM
241 ERPテーブル、242 バッファ
12 ヘッド・スライダ、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 RWチャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/MPU、24 RAM
241 ERPテーブル、242 バッファ
Claims (20)
- ディスク・ドライブ装置におけるエラー回復処理の方法であって、
ホストからのディスクへのアクセスを伴うコマンドに対応した処理において発生したエラーに対して、エラー回復処理を開始し、
前記エラー回復処理の実行中に、新たなリード・コマンドを前記ホストから受信し、
設定条件に従って前記エラー回復処理を中断して、前記リード・コマンドが指定するアドレスのデータをディスクから読み出し、
前記読み出したデータを前記ホストに転送する、
方法。 - 前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、
二つのエラー回復ステップの間において前記エラー回復処理を中断する、
請求項1に記載の方法。 - 受信したリード・コマンドのコマンド・タイプを参照し、
前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する、
請求項1に記載の方法。 - 前記エラー回復処理を中断する条件は、リード・データのためのバッファ空き容量が前記リード・コマンドのデータに足りていることを含む、
請求項1に記載の方法。 - 前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、
次に実行するエラー回復処理ステップの内容に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項1に記載の方法。 - 前記エラー回復処理を中断しないと判定する条件は、前記次に実行するエラー回復処理ステップが、その前のエラー回復処理ステップと同様にターゲット・トラックのフォローイングを維持してデータ書き込みを試みるステップである、ことを含む、
請求項5に記載の方法。 - 前記エラー回復処理のコマンド・タイプを参照し、
前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する、
請求項1に記載の方法。 - 前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、
実行済みのエラー回復処理ステップ数に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項1に記載の方法。 - 前記エラー回復処理のコマンドのタイム・アウトまでの時間に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項1に記載の方法。 - 前記エラー回復処理のコマンドはライト・コマンドであり、
ライト・データのためのバッファの空き容量及び/もしくはリード・データのためのバッファ空き容量に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項1に記載の方法。 - データを記憶するディスクを回転するモータと、
前記ディスクにアクセスするヘッドと、
前記ヘッドを移動して前記ディスクの所望の半径位置に前記ヘッドを移動する移動機構と、
ホストからの前記ディスクへのアクセスを伴うコマンドに対応した処理において発生したエラーに対するエラー回復処理の実行中に新たなリード・コマンドを前記ホストから受信すると、設定条件に従って前記エラー回復処理を中断して、前記リード・コマンドが指定するアドレスのデータを前記ヘッド及び前記移動機構を制御して前記ディスクから読み出し前記ホストに転送する、コントローラと、
を有するディスク・ドライブ装置。 - 前記コントローラは、前記エラー回復処理において、テーブルに登録された複数のエラー回復処理ステップを順次実行し、二つのエラー回復ステップの間において前記エラー回復処理を中断する、
請求項11に記載のディスク・ドライブ装置。 - 前記コントローラは、受信したリード・コマンドのコマンド・タイプを参照し、前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する、
請求項11に記載のディスク・ドライブ装置。 - 前記エラー回復処理を中断する条件は、リード・データのためのバッファ空き容量が前記リード・コマンドのデータに足りていることを含む、
請求項11に記載のディスク・ドライブ装置。 - 前記コントローラは、前記エラー回復処理においてテーブルに登録された複数のエラー回復処理ステップを順次実行し、次に実行するエラー回復処理ステップの内容に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項11に記載のディスク・ドライブ装置。 - 前記エラー回復処理を中断しないと判定する条件は、前記次に実行するエラー回復処理ステップが、その前のエラー回復処理ステップと同様にターゲット・トラックのフォローイングを維持してデータ書き込みを試みるステップである、ことを含む、
請求項15に記載のディスク・ドライブ装置。 - 前記コントローラは、前記エラー回復処理のコマンド・タイプを参照し、前記コマンド・タイプに基づいて前記エラー回復処理を中断するか否かを判定する、
請求項11に記載のディスク・ドライブ装置。 - 前記コントローラは、前記エラー回復処理においてテーブルに登録された複数のエラー回復処理ステップを順次実行し、実行済みのエラー回復処理ステップ数に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項11に記載のディスク・ドライブ装置。 - 前記コントローラは、前記エラー回復処理のコマンドのタイム・アウトまでの時間に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項11に記載のディスク・ドライブ装置。 - 前記エラー回復処理のコマンドはライト・コマンドであり、
前記コントローラは、ライト・データのためのバッファの空き容量及び/もしくはリード・データのためのバッファ空き容量に基づいて前記エラー回復処理を中断するか否かを判定する、
請求項11に記載のディスク・ドライブ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008184345A JP2010027105A (ja) | 2008-07-15 | 2008-07-15 | ディスク・ドライブ装置及びそのエラー回復処理の方法 |
US12/503,792 US8117491B2 (en) | 2008-07-15 | 2009-07-15 | Disk-drive device and method for error recovery thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008184345A JP2010027105A (ja) | 2008-07-15 | 2008-07-15 | ディスク・ドライブ装置及びそのエラー回復処理の方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010027105A true JP2010027105A (ja) | 2010-02-04 |
Family
ID=41531337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008184345A Pending JP2010027105A (ja) | 2008-07-15 | 2008-07-15 | ディスク・ドライブ装置及びそのエラー回復処理の方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8117491B2 (ja) |
JP (1) | JP2010027105A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011237934A (ja) * | 2010-05-07 | 2011-11-24 | Canon Inc | 記憶装置アレイシステム、情報処理装置、記憶装置アレイ制御方法、及び、プログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8738994B2 (en) * | 2011-04-25 | 2014-05-27 | Samsung Electronics Co., Ltd. | Memory controller, memory system, and operating method |
JP5938965B2 (ja) * | 2012-03-19 | 2016-06-22 | 富士通株式会社 | マルチノードストレージシステムのノード装置および処理速度管理方法 |
TWI703566B (zh) * | 2018-08-30 | 2020-09-01 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關的存取方法及電子裝置 |
US10770110B1 (en) | 2019-09-30 | 2020-09-08 | Kabushiki Kaisha Toshiba | Disk drive with efficient handling of off-track events during sequential write |
US10770111B1 (en) | 2019-09-30 | 2020-09-08 | Kabushiki Kaisha Toshiba | Disk drive with efficient handling of off-track events during sequential write |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100245896B1 (ko) * | 1990-11-09 | 2000-03-02 | 토마스 에프.멀베니 | 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기 |
JP3252810B2 (ja) * | 1998-11-05 | 2002-02-04 | 日本電気株式会社 | 磁気ディスク装置及び磁気ディスク装置のリトライ方法 |
JP2000276857A (ja) | 1999-03-24 | 2000-10-06 | Sony Corp | データ記録装置及びデータ記録方法並びにデータ再生装置及びデータ再生方法 |
JP2001084712A (ja) | 1999-09-13 | 2001-03-30 | Toshiba Corp | 磁気ディスク装置及び同装置のエラーリトライ制御方法 |
JP2001236744A (ja) * | 2000-02-18 | 2001-08-31 | Hitachi Ltd | 情報記録再生方法及び情報記録再生装置 |
JP3793682B2 (ja) | 2000-03-07 | 2006-07-05 | 株式会社日立グローバルストレージテクノロジーズ | コマンドキューイングの機能を持つ記憶装置 |
-
2008
- 2008-07-15 JP JP2008184345A patent/JP2010027105A/ja active Pending
-
2009
- 2009-07-15 US US12/503,792 patent/US8117491B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011237934A (ja) * | 2010-05-07 | 2011-11-24 | Canon Inc | 記憶装置アレイシステム、情報処理装置、記憶装置アレイ制御方法、及び、プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20100017683A1 (en) | 2010-01-21 |
US8117491B2 (en) | 2012-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7373460B2 (en) | Media drive and command execution method thereof | |
US20100053796A1 (en) | Disk drive including a delay circuit to provide a delayed reset signal | |
US20060101174A1 (en) | Media drive, and power saving method thereof | |
JP2006099665A (ja) | データ記憶装置及びそのシリアル・インターフェース部のパワー・セーブ・モードの制御方法 | |
JP2008243269A (ja) | ディスク・ドライブ装置及びそのデータの再書き込み方法 | |
JP2009020986A (ja) | ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法 | |
JP2009266333A (ja) | データ記憶装置及び隣接トラック書き直し処理方法。 | |
JP2006268272A (ja) | データ記憶装置及びその不揮発性メモリ内データ書き換え処理方法 | |
JP2010049764A (ja) | 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法 | |
JP2010027105A (ja) | ディスク・ドライブ装置及びそのエラー回復処理の方法 | |
US20100202078A1 (en) | Read/write processing method for medium recording device and medium recording device | |
JP2010267345A (ja) | ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法 | |
US8320066B2 (en) | Storage device and read/write processing method therefor | |
US20080016429A1 (en) | Data storage device and error correction method | |
JP2006269027A (ja) | データ記憶装置 | |
JP2001216746A (ja) | ディスク記憶装置及びリトライ制御方法 | |
JP5030387B2 (ja) | データ記憶装置 | |
JP2005025829A (ja) | ディスク記憶装置及びデータストリーム制御方法 | |
JP2008158945A (ja) | 媒体記憶装置の立ち上げ処理方法、媒体記憶装置のコントローラ及び媒体記憶装置 | |
JP2005276026A (ja) | データ記憶装置におけるエラー回復処理方法、データ記憶装置及び磁気ディスク記憶装置 | |
US8125729B2 (en) | Disk drive and error-recovery processing method | |
JP2008276818A (ja) | ディスク・ドライブ装置及びそのディスクへのアクセス方法 | |
US7389378B2 (en) | Write processing method for stream type commands and medium storage apparatus | |
JP5331670B2 (ja) | 磁気ディスク・ドライブ及びそのリフレッシュ・ライト方法 | |
JP2006172032A (ja) | データ記憶装置及びそのバッファ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100510 |