JP2010157287A - 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 - Google Patents
磁気ディスク装置及び同装置におけるデータリフレッシュ方法 Download PDFInfo
- Publication number
- JP2010157287A JP2010157287A JP2008334882A JP2008334882A JP2010157287A JP 2010157287 A JP2010157287 A JP 2010157287A JP 2008334882 A JP2008334882 A JP 2008334882A JP 2008334882 A JP2008334882 A JP 2008334882A JP 2010157287 A JP2010157287 A JP 2010157287A
- Authority
- JP
- Japan
- Prior art keywords
- refresh
- track
- data
- write operation
- backup
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
- G11B5/09—Digital recording
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/04—Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
- G11B19/041—Detection or prevention of read or write errors
- G11B19/045—Detection or prevention of read or write errors by detecting mistracking
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Digital Magnetic Recording (AREA)
Abstract
【課題】電源遮断に対処しつつデータリフレッシュ動作の効率低下を防止する。
【解決手段】CPU115は、Lを自然数とすると、ディスク101上のリフレッシュされるべきトラックからブロック数がLのデータをヘッド102により読み出すためのリフレッシュデータリード動作と、前記読み出されたデータをディスク101上のバックアップトラックにヘッド102により書き込むためのバックアップライト動作と、前記読み出されたデータを前記リフレッシュされるべきトラックの元の記憶領域に書き込むためのリフレッシュライト動作とを制御する。CPU115は、Nを自然数とすると、前記ブロック数Lを、ディスク101のN回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定する。
【選択図】 図1
【解決手段】CPU115は、Lを自然数とすると、ディスク101上のリフレッシュされるべきトラックからブロック数がLのデータをヘッド102により読み出すためのリフレッシュデータリード動作と、前記読み出されたデータをディスク101上のバックアップトラックにヘッド102により書き込むためのバックアップライト動作と、前記読み出されたデータを前記リフレッシュされるべきトラックの元の記憶領域に書き込むためのリフレッシュライト動作とを制御する。CPU115は、Nを自然数とすると、前記ブロック数Lを、ディスク101のN回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定する。
【選択図】 図1
Description
本発明は、ディスクに書き込まれているデータをリフレッシュするのに好適な磁気ディスク装置及び同装置におけるデータリフレッシュ方法に関する。
近年、磁気ディスク装置の高容量化に伴い、高記録密度化、高トラック密度化が進んでいる。高トラック密度化により、ディスク上で隣接するトラック(記録トラック)間の間隔(つまりトラックピッチ)が狭小化されている。各トラックはヘッド(ヘッドに含まれる書き込み素子)の幅と同じ幅を持つ。しかし、データ書き込み時にヘッドによって生成される磁界(記録磁界)の分布の幅は必ずしも当該ヘッドの幅に一致せず、その周辺にも磁界が加わる(漏れる)状態となる。この状態は、ライトフリンジングと呼ばれる。
このため、トラックピッチが狭小化されると、データが書き込まれるべきトラックにヘッドを位置付けてデータを書き込む際に、当該トラックに対するヘッドの位置決め誤差及びライトフリンジングの影響により、隣接するトラックに書き込まれているデータ(記録データ)の劣化が発生する可能性がある。記録データ(記録信号)の劣化が繰り返し発生すると、その記録データの読み出しが非常に困難になる。つまり、誤り訂正符号(ECC)を最大限に用いて記録データの修復を試みても、当該記録データを修復することが困難となる。
そこで近年の磁気ディスク装置では、記録データの劣化により当該記録データの読み出しが不能になる前に、当該記録データの劣化を回復するためのデータリフレッシュ(書き直し)が必須になりつつある。データリフレッシュは、劣化した記録データをトラックから読み出し、当該読み出されたデータを当該トラックの元の記憶領域に書き戻すことで、当該記録データを正常な状態に戻す動作として知られている。
例えば、特許文献1には、データライト回数が規定回数に達したトラックに隣接するトラックに書き込まれているデータをリフレッシュする技術(先行技術)について記載されている。この先行技術によれば、まず、データライト回数が規定回数に達したトラックに隣接するトラックのデータは劣化していると判定される。次に、このような隣接トラックのデータがリフレッシュされるべきデータとして読み出されてRAMに一時記憶される。そして、このRAMに一時記憶された隣接トラックのデータが当該隣接トラックの元の記憶領域に再度書き込まれる。つまり、リフレッシュされるべきトラックのデータが、当該トラックから読み出されたデータで書き直される。このようなデータ書き直し動作、つまりデータリフレッシュ動作により、データの劣化が回復される。
特開2004−273060号公報
しかしながら、上記先行技術では、データリフレッシュ動作の最中に磁気ディスク装置の電源が遮断すると、リフレッシュされるべきデータが失われる可能性がある。更に具体的に述べるならば、データリフレッシュの対象となるトラック(以下、リフレッシュトラックと称する)から読み出されたデータを当該トラックの元の記憶領域に再度書き込むための動作(リフレッシュライト動作)の最中に磁気ディスク装置の電源が遮断すると、当該データが失われる可能性がある。この理由について説明する。
まず、リフレッシュライト動作の最中に電源が遮断したものとする。この場合、リフレッシュトラックへのデータライト動作が未完了となることから、当該トラックのデータが破壊される。このとき、RAMに一時記憶されているリフレッシュトラックのデータは消失する。このため、電源が復帰しても、未完了となったデータライト動作を再度行うことができず、リフレッシュトラックのデータは失われる。
このような不具合を防止するために、上記RAMに代えて、ディスク上の特定のトラックを用いることが考えられる。つまり、ディスク上の特定のトラックを、リフレッシュトラックのデータを一時退避(つまりバックアップ)するためのバックアップトラックとして用いることが考えられる。
RAMに代えてディスク上の特定のトラック(バックアップトラック)を用いる場合、一般的には、次のようなデータリフレッシュ動作が想定される。まず、リフレッシュトラックから読み出されたデータ(元データ)を、ディスク上のバックアップトラックに書き込む動作(バックアップライト動作)が行われる。このバックアップライト動作では、データリフレッシュ動作の状態を示すリフレッシュ管理情報もリフレッシュトラックに書き込まれる。
バックアップライト動作が完了すると、バックアップトラックに書き込まれた(つまり退避された)データを読み出して、リフレッシュトラックの元の記憶領域に書き戻す動作(リフレッシュライト動作)が行われる。このリフレッシュライト動作が完了すると、バックアップトラックに書き込まれているリフレッシュ管理情報が、データリフレッシュの完了を示す完了フラグを含むリフレッシュ管理情報に書き換えられる。つまり、バックアップトラックにデータリフレッシュの完了を示す完了フラグが書き込まれる。このため、リフレッシュライト動作中に電源が遮断してリフレッシュライト動作が完了しなかった場合、バックアップトラックには完了フラグは書き込まれないことになる。
このように、RAMに代えてディスク上の特定トラック(バックアップトラック)を使用すると、リフレッシュライト動作中に電源が遮断しても、元データはバックアップトラックに退避されているため、当該元データは失われない。このため、バックアップトラックに退避されている元データを用いることにより、未完了となったリフレッシュライト動作を再度行うことができる。リフレッシュライト動作が完了したか否かは、当該バックアップトラックに完了フラグが書き込まれているか否かによって判定することができる。
しかし、RAMに代えてディスク上の特定トラック(バックアップトラック)を用いると、詳細を後述するように、例えばバックアップライト動作を開始する前と、リフレッシュライト動作を開始する前とに、それぞれ、ヘッドの位置が該当するトラックの書き込み開始位置に一致するまで、ディスクが回転するのを待つ回転待ちが必要となる。このためデータリフレッシュ動作の効率が低下する。
本発明は上記事情を考慮してなされたものでその目的は、電源遮断に対処しつつ、データリフレッシュ動作の効率が低下するのを防止できる磁気ディスク装置及び同装置におけるデータリフレッシュ方法を提供することにある。
本発明の1つの観点によれば、磁気ディスク装置が提供される。この磁気ディスク装置は、複数のトラックの少なくとも1つが、リフレッシュされるべきトラックのデータを一時退避するためのバックアップトラックとして割り当てられるディスクと、Lを自然数とすると、前記ディスク上のリフレッシュされるべきトラックからブロック数がLのデータをヘッドにより読み出すためのリフレッシュデータリード動作と、前記読み出されたデータを前記バックアップトラックに前記ヘッドにより書き込むためのバックアップライト動作と、前記読み出されたデータを、前記バックアップライト動作の後に前記リフレッシュされるべきトラックの元の記憶領域に前記ヘッドにより書き込むためのリフレッシュライト動作とを含むデータリフレッシュ動作を制御するコントローラであって、Nを自然数とすると、前記リフレッシュされるべきデータのブロック数Lを、前記リフレッシュデータリード動作が完了してから前記ディスクのN回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定するコントローラとを具備する。
本発明によれば、リフレッシュされるべきデータのブロック数Lの設定により、リフレッシュデータリード動作が完了してからディスクのN回転に対応する時間でリフレッシュライト動作が完了する構成とすることにより、電源遮断に対処するために、リフレッシュデータリード動作で読み出されたデータがディスク上に確保されたバックアップトラックに退避される構成を適用しながら、バックアップライト動作及びリフレッシュライト動作を含むデータリフレッシュ動作におけるディスクの回転待ちを削減して、当該データリフレッシュ動作を効率的に行うことができる。
図1は本発明の一実施形態に係る磁気ディスク装置(HDD)の構成を示すブロック図である。図1に示されるHDD100は、ホストシステム200からの要求に応じてディスク(磁気ディスク)101の記録面上にデータを書き込み、或いは当該記録面からデータを読み出すための記憶装置である。ホストシステム200は、HDD100を記憶装置として利用するパーソナルコンピュータのような電子機器である。
ディスク101はスピンドルモータ(SPM)103に固定されており、SPM103が駆動されることにより一定の速度で回転する。ディスク101の例えば一方のディスク面は、データが磁気記録される記録面をなしている。ヘッド(磁気ヘッド)102はディスク101の記録面に対応して配置される。ヘッド102はアクチュエータ105の一端に固定されている。アクチュエータ105の他端はボイスコイルモータ(VCM)104に固定されている。ヘッド102は、VCM104が駆動されることにより、VCM104の軸を中心とした円弧軌道のうちディスク101の面に重なる範囲を移動する。
図1の構成では、単一枚のディスク101を備えたHDD100を想定している。しかし、複数のディスク101がある間隙をもった状態でSPM103に固定された構成であっても構わない。この場合、複数のアクチュエータ105が、複数のディスク101の間隙に適合するように重なった状態でVCM104に固定される。複数のアクチュエータ105の一端にはそれぞれヘッド102が固定されている。したがってSPM103が駆動されると、全てのディスク101は同時に回転し、VCM104が駆動されると、全てのヘッド102は同時に移動する。また、図1の構成では、ディスク101の一方の面が記録面をなしている。しかし、ディスク101の両面がいずれも記録面をなし、両記録面にそれぞれ対応してヘッド102が配置されても構わない。
図2はディスク101のトラック配置を含むフォーマットを示す概念図である。
図2において、ディスク101の記録面には、複数のトラック201が同心円状に配置されている。ホストシステム200からHDD100が受け取ったデータは、当該ホストシステム200によって指定されたアドレスに応じ、複数のトラック201の少なくとも1つに記録される。
図2において、ディスク101の記録面には、複数のトラック201が同心円状に配置されている。ホストシステム200からHDD100が受け取ったデータは、当該ホストシステム200によって指定されたアドレスに応じ、複数のトラック201の少なくとも1つに記録される。
また、ディスク101の複数のトラック201上にはサーボ領域202及びデータ領域203が交互に且つ等間隔に配置されている。サーボ領域202には、ヘッド102の位置決めに用いられるサーボ信号が記録されている。データ領域203は、ホストシステム200から転送されるデータを記録するのに用いられる。
ディスク101には、CDR(constant density recording)と呼ばれる記録フォーマットが適用されている。このCDRフォーマットを適用するディスク101の記録面は、当該ディスク101の半径方向に複数のゾーン(CDRゾーン)に分割して管理される。各ゾーンのトラック(シリンダ)当たりのデータセクタ(以下、単にセクタと称する)の数は、ディスク101の外周側のゾーンほど多く設定されている。
再び図1を参照すると、CPU115はHDD100の主コントローラとして機能する。CPU115はモータドライバ106を介してSPM103の起動・停止及び回転速度維持のための制御を行う。CPU115はまたモータドライバ106を介してVCM104を駆動制御することで、ヘッド102を目標とするトラックに移動させて、当該トラックの目標とする範囲内に整定するための制御を行う。ヘッド102を目標とするトラックに移動させる制御はシーク制御と呼ばれ、ヘッド102を目標とするトラックの目標とする範囲内に整定する制御はヘッド位置決め制御と呼ばれる。CPU115は更に、ディスク101のトラック201に書き込まれているデータをリフレッシュするための制御(データリフレッシュ処理)を行う。
ヘッド102の位置決めはSPM103の起動後の定常回転状態で行われる。上述のように、サーボ領域202はディスク101の円周方向に等間隔に配置されている。このため、ヘッド102によってディスク101から読み出され、ヘッドIC107で増幅されたアナログ信号中には、サーボ領域202に記録されているサーボ信号が時間的に等間隔に現れることになる。リード・ライトIC108(リード・ライトIC108に含まれているサーボブロック121)とゲートアレイ109とは、この状態を利用して上記アナログ信号を処理することにより、ヘッド102の位置決めのための信号を生成する。CPU115はこの信号をもとにモータドライバ106を制御することにより、当該モータドライバ106からVCM104に、ヘッド102の位置決めのための電流(VCM電流)をリアルタイムで供給させる。
CPU115は、上述のようにモータドライバ106を介してSPM103及びVCM104を制御する一方で、HDD100内の他の要素の制御及びコマンド処理などを行う。CPU115はCPUバス112に接続されている。
CPUバス112には、リード・ライトIC108、ゲートアレイ109、ディスクコントローラ(HDC)110、RAM113及びフラッシュROM114が接続されている。フラッシュROM114は、書き換え可能な不揮発性メモリである。ここでは、フラッシュROM114の書き換えは、CPU115からの制御により行われる。
フラッシュROM114には、CPU115が実行すべきプログラムが予め格納されている。CPU115による上述の制御は、当該CPU115が上記プログラムを実行することにより実現される。フラッシュROM114には更に後述するブロック数テーブル600(図6参照)が予め格納されている。
RAM113は、例えばCPU115が使用する種々の変数を格納するのに用いられる。RAM113の記憶領域の一部は、CPU115のワーク領域として用いられる。RAM113の記憶領域の他の一部は、トラックグループ毎のライト回数(データライト回数、ライト実行回数)を保持するライトカウントテーブル500(図5参照)を格納するのに用いられる。
リード・ライトIC108は、サーボブロック121とリード・ライトブロック122とを有する。サーボブロック121は、サーボ信号の抽出を含む、ヘッド102の位置決めに必要な信号処理を行う。リード・ライトブロック122は、データの読み出し・書き込みのための信号処理を行う。ゲートアレイ109は、サーボブロック121によるサーボ信号の抽出のための信号を含む、制御用の諸信号を生成する。
HDC110は、CPUバス112以外に、リード・ライトIC108、ゲートアレイ109及びバッファRAM111に接続されている。HDC110は、ホストブロック123、リード・ライトブロック124及びバッファブロック125を有する。ホストブロック123は、ホストシステム200から転送されるコマンド(ライトコマンド、リードコマンド等)を受信し、且つホストとHDC110との間のデータ転送を制御する、ホストインタフェース制御機能を有する。リード・ライトブロック124は、リード・ライトIC108及びゲートアレイ109と接続され、リード・ライトIC108を介して行われるデータの読み出し・書き込み処理を行う。バッファブロック125は、バッファRAM111を制御する。バッファRAM111の記憶領域の一部は、HDC110(HDC110内のリード・ライトブロック124)を介してディスク101に書き込まれるべきデータ(ライトデータ)を一時格納するためのライトバッファとして用いられる。バッファRAM111の記憶領域の別の一部は、HDC110を介してディスク101から読み出されたデータ(リードデータ)を一時格納するためのリードバッファとして用いられる。
リード・ライトIC108、ゲートアレイ109、及びHDC110は、それぞれ制御用レジスタを有する。これらの制御用レジスタは、それぞれCPU115のメモリ空間の一部に割り当てられており、CPU115はこの一部の領域に対してアクセスすることで、制御用レジスタを介してリード・ライトIC108、ゲートアレイ109、またはHDC110を制御する。
図1のHDD100において、データの読み出しは次のように行われる。まずヘッド102によってディスク101から読み出された信号(アナログ信号)は、ヘッドIC107によって増幅される。増幅されたアナログ信号はリード・ライトIC108によってサーボ信号とデータ信号とに分離される。データ信号はリード・ライトIC108内のリード・ライトブロック122で復号化された後HDC110に送られる。HDC110内のリード・ライトブロック124は、復号化されたデータ信号をゲートアレイ109からの制御用の信号に従って処理することにより、ホストシステム200に転送すべきデータを生成する。ここでの処理は、後述するECCデータに基づくデータの誤りの検出と誤りの訂正とを含む。生成されたデータは、HDC110内のバッファブロック125によって一旦バッファRAM111に格納されてから、当該HDC110内のホストブロック123によってホストシステム200に転送される。
図1のHDD100において、データの書き込みは次のように行われる。ホストシステム200からHDC110に転送されたデータは、当該HDC110内のホストブロック123で受信された後、当該HDC110内のバッファブロック125によって一旦バッファRAM111に格納される。バッファRAM111に格納されたデータは、バッファブロック125によって取り出された後、ゲートアレイ109からの制御用の信号に従ってHDC110内のリード・ライトブロック124によってリード・ライトIC108へ送られる。リード・ライトIC108に送られたデータは、当該リード・ライトIC108内のリード・ライトブロック122によって符号化される。符号化されたデータはヘッドIC107を介してヘッド102に送られて、当該ヘッド102によってディスク101に書き込まれる。上述のデータの読み出し/書き込みは、CPU115の制御の下で行われる。
次に、図1のHDD100で実行されるデータリフレッシュ動作の概要について、図3及び図4を参照して説明する。図3において、同図(a)及び(b)は、本実施形態で適用されるデータリフレッシュ動作(以下、第1のデータリフレッシュ動作と称する)の概要を、ヘッド102がディスク101上に描く軌跡を用いて説明するための概念図であり、同図(c)及び(d)は、RAMに代えてディスク101上の特定トラックをバックアップトラックとして用いる場合に一般に適用されると想定されるデータリフレッシュ動作(以下、第2のデータリフレッシュ動作と称する)の概要を、ヘッド102がディスク101上に描く軌跡を用いて説明するための概念図である。図4は、第1のデータリフレッシュ動作を、ディスク101上のトラックを対象とするデータの読み出し/書き込みを中心に説明するための概念図である。
まず、第2のデータリフレッシュ動作について、図3(c)及び(d)を参照して説明する。図3(c)及び(d)の例では、ディスク101上の例えば外周側のトラック201がバックアップトラック201bとして割り当てられている。また、図3(c)及び(d)の例では、データリフレッシュの対象となるトラック201、つまりリフレッシュトラック201が、リフレッシュトラック201rと表現されている。
図3(c)及び(d)には、第2のデータリフレッシュ動作の手順B1乃至B12に対応付けて、当該第2のデータリフレッシュ動作が開始されてから完了するまでにヘッド102がディスク101上に描く軌跡B1乃至B12が示されている。つまり、図3(c)及び(d)において、参照符号B1乃至B12は、第2のデータリフレッシュ動作の手順とヘッド102が描く軌跡とを示す。
第2のデータリフレッシュ動作では、まず、ヘッド102を現在の位置Pcからリフレッシュトラック201rに移動させるためのシーク動作B1が行われる。このシーク動作B1により、軌跡B1が描かれる。
次に、リフレッシュトラック201rまで移動されたヘッド102に、当該トラック201r上のリフレッシュライト開始位置Psがディスク101の回転に伴って到達するのを待つ、いわゆる回転待ちB2が発生する。この回転待ちB2により、軌跡B2が描かれる。
次に、リフレッシュトラック201r上のリフレッシュライト開始位置Psから始まる記憶領域から、リフレッシュされるべき元データを読み出すためのリフレッシュデータリード動作B3が行われる。このリフレッシュデータリード動作B3により、軌跡B3が描かれる。
次に、ヘッド102を、リフレッシュデータリード動作B3が完了した位置からバックアップトラック201bに移動させるためのシーク動作B4が行われる。このシーク動作B4により、軌跡B4が描かれる。
次に、バックアップトラック201bまで移動されたヘッド102に、当該トラック201b上の所定のバックアップライト開始位置(例えば当該トラック201b上の先頭セクタ)が到達するのを待つ回転待ちB5が発生する。この回転待ちB5により、軌跡B5が描かれる。
次に、バックアップトラック201b上のバックアップライト開始位置(つまりバックアップライト開始セクタ)から始まる記憶領域に、先のリフレッシュデータリード動作B3で読み出された元データを書き込む(退避する)ためのバックアップライト動作B6が行われる。このバックアップライト動作B6により、軌跡B6が描かれる。バックアップライト動作B6では、元データだけでなくリフレッシュ管理情報もバックアップトラック201bに書き込まれる。このリフレッシュ管理情報は、リフレッシュデータリード動作B3の実行アドレス(開始アドレス)及びブロック数を含む。この実行アドレスは、リフレッシュライト開始位置Psを示す。
次に、ヘッド102を、バックアップライト動作B6が完了した位置からリフレッシュトラック201rに移動させるためのシーク動作B7が行われる。このシーク動作B7により、軌跡B7が描かれる。
次に、リフレッシュトラック201rまで移動されたヘッド102に、当該トラック201r上のリフレッシュライト開始位置Psが到達するのを待つ回転待ちB8が発生する。この回転待ちB8により、軌跡B8が描かれる。
次に、リフレッシュトラック201r上のリフレッシュライト開始位置Psから始まる記憶領域に、先のリフレッシュデータリード動作B3で読み出された元データを書き込む(書き戻す)ためのリフレッシュライト動作B9が行われる。このリフレッシュライト動作B9により、軌跡B9が描かれる。
次に、ヘッド102を、リフレッシュライト動作B9が完了した位置からバックアップトラック201bに移動させるためのシーク動作B10が行われる。このシーク動作B10により、軌跡B10が描かれる。
次に、バックアップトラック201bまで移動されたヘッド102に、当該トラック201b上のバックアップライト開始位置が到達するのを待つ回転待ちB11が発生する。この回転待ちB11により、軌跡B11が描かれる。
次に、バックアップトラック201b上のバックアップライト開始位置から始まる記憶領域に書き込まれているリフレッシュ管理情報を、リフレッシュライト動作の完了を示す完了フラグを含むリフレッシュ管理情報に書き換える動作B12が行われる。この動作B12により、軌跡B12が描かれる。動作B12が完了すると、第2のデータリフレッシュ動作は終了する。
図3(c)及び(d)に示す第2のデータリフレッシュ動作では、ディスク101のほぼ3回転に要する時間、回転待ちが発生する。
次に、本実施形態で適用される第1のデータリフレッシュ動作について、図3(a)及び(b)並びに図4を参照して説明する。図3(a)及び(b)の例においても、図3(c)及び(d)の例と同様に、ディスク101上の外周側のトラック201がバックアップトラック201bとして割り当てられているものとする。また図3(a)及び(b)の例においても、データリフレッシュの対象となるトラック201、つまりリフレッシュトラック201が、リフレッシュトラック201rと表現されている。なお、図3(a)及び(b)の例では、単一のバックアップトラック201b及びリフレッシュトラック201rが示されているが、シリンダ番号が連続する複数のバックアップトラック201b及びリフレッシュトラック201rが用いられても構わない。
図3(a)及び(b)には、第1のデータリフレッシュ動作の手順A1乃至A11に対応付けて、当該第1のデータリフレッシュ動作が開始されてから完了するまでにヘッド102がディスク101上に描く軌跡A1乃至A11が示されている。つまり、図3(a)及び(b)において、参照符号A1乃至A11は、第2のデータリフレッシュ動作の手順とヘッド102が描く軌跡とを示す。
第1のデータリフレッシュ動作では、まず第2のデータリフレッシュ動作と同様に、ヘッド102を現在の位置Pcからリフレッシュトラック201rに移動させるためのシーク動作A1が行われる。このシーク動作A1により、軌跡A1が描かれる。
次に、リフレッシュトラック201rまで移動されたヘッド102に、当該トラック201r上のリフレッシュライト開始位置Psが到達するのを待つ回転待ちA2が発生する。この回転待ちA2により、軌跡A2が描かれる。
次に、リフレッシュトラック201r上のリフレッシュライト開始位置Psから始まる記憶領域401(図4参照)から、リフレッシュされるべき元データ(リフレッシュデータ)を読み出すためのリフレッシュデータリード動作A3が行われる。このリフレッシュデータリード動作A3により、軌跡A3が描かれる。
次に、ヘッド102を、リフレッシュデータリード動作A3が完了した位置からバックアップトラック201bに移動させるためのシーク動作(第1のシーク動作)A4が行われる。このシーク動作A4により、軌跡A4が描かれる。ここまでの動作は、第2のデータリフレッシュ動作と同様である。
シーク動作A4が完了すると、ヘッド102が到達したバックアップトラック201bの位置に対応するセクタをバックアップライト開始セクタとして、当該開始セクタから始まる記憶領域402(図4参照)に、先のリフレッシュデータリード動作A3で読み出された元データ(リフレッシュデータ)を書き込むためのバックアップライト動作A5が行われる。ヘッド102が到達したバックアップトラック201bの位置に対応するセクタとは、シーク動作A4が完了した後に、バックアップトラック201bのセクタのうち、最初にヘッド102に到達するセクタを指す。
バックアップライト動作A5では、元データ(リフレッシュデータ)の前後に、ヘッダ及びフッタが付される。ヘッダ及びフッタは、それぞれリフレッシュ管理情報を含む。このリフレッシュ管理情報については後述する。
上述のバックアップライト動作A5から明らかなように、第1のデータリフレッシュ動作では、シーク動作A4が完了してからバックアップライト動作A5が開始されるまでの待ち時間(回転待ちの時間)はほぼ0となる。第1のデータリフレッシュ動作では、第2のデータリフレッシュ動作と異なり、バックアップライト開始セクタが予め定められていない点に注意されるべきである。バックアップライト動作A5により、軌跡A5が描かれる。
次に、ヘッド102を、バックアップライト動作A5が完了したバックアップトラック201b上の位置から、リフレッシュ管理情報が書き込まれるべきトラック201、つまりリフレッシュ管理トラック201に移動させるためのシーク動作(第3のシーク動作)A6が行われる。図3(a)及び(b)の例では、このリフレッシュ管理トラック201が、リフレッシュ管理トラック201rmと表現されている。ここでは、バックアップトラック201bにディスク101の内周側で隣接するトラック201が、リフレッシュ管理トラック201rmとして割り当てられている。図3(a)及び(b)の例では、シーク動作A6により、軌跡A6が描かれる。
シーク動作A6が完了すると、ヘッド102が到達したリフレッシュ管理トラック201rmの位置に対応するセクタ(記憶領域)403(図4参照)にリフレッシュ管理情報を書き込むためのリフレッシュ管理情報ライト動作A7が行われる。このため、シーク動作A6が完了してからリフレッシュ管理情報ライト動作A7が開始されるまでの回転待ちの時間はほぼ0となる。このリフレッシュ管理情報ライト動作A7により、軌跡A7が描かれる。
リフレッシュ管理情報ライト動作A7でリフレッシュ管理トラック201rm上のセクタ403に書き込まれるリフレッシュ管理情報は、リフレッシュデータリード動作A3及びバックアップライト動作A5の実行アドレス(開始アドレス)及びブロック数、完了フラグ並びにカウンタ値を含む。リフレッシュデータリード動作A3の実行アドレスは、シリンダアドレス、ヘッドアドレス及びセクタアドレスから構成され、当該リード動作A3で読み出されたデータ(元データ)が書き込まれている、リフレッシュトラック201rの記憶領域の開始位置、つまりリフレッシュライト開始位置Psを示す。バックアップライト動作A5の実行アドレスも、シリンダアドレス、ヘッドアドレス及びセクタアドレスから構成され、当該ライト動作A5でデータ(元データ)が書き込まれた、バックアップトラック201bの記憶領域の開始位置、つまりバックアップライト開始位置を示す。
リフレッシュ管理情報ライト動作A7でリフレッシュ管理トラック201rmのセクタ403(図4参照)に書き込まれるリフレッシュ管理情報に含まれている完了フラグはリセット(OFF)状態にあり、リフレッシュライト動作が未完了であることを示す。またリフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック201rmへの書き込みが実行される都度インクリメントされる値が用いられる。なお、バックアップトラック201bに書き込まれるリフレッシュデータ(元データ)の前後に付されるヘッダ及びフッタに含まれるリフレッシュ管理情報は、リフレッシュ管理情報ライト動作A7でリフレッシュ管理トラック201rmに書き込まれるリフレッシュ管理情報と同一であるものとする。
次に、ヘッド102を、リフレッシュ管理情報ライト動作A7が完了したリフレッシュ管理トラック201rm上の位置からリフレッシュトラック201rに移動させるためのシーク動作A8が行われる。このシーク動作A8により、軌跡A8が描かれる。
本実施形態では、シーク動作A8が完了した際にヘッド102が到達するバックアップトラック201bの位置が、リフレッシュライト開始位置Psのセクタに対応するように、バックアップライト及びリフレッシュライトされるブロック(セクタ)数が設定される。ここで、バックアップトラック201b及びリフレッシュトラック201rのそれぞれトラック当たりのブロック数は、ディスク101の記録フォーマットにCDRを適用する本実施形態では必ずしも等しくはない。
そこで本実施形態では、N及びLを自然数とすると、リフレッシュデータリード動作A3が完了した後、ディスク101のN回転に対応する時間で、バックアップライト動作A5及び後述するリフレッシュライト動作A9が完了するように、リフレッシュされるべきブロック(セクタ)数L、つまりバックアップライト及びリフレッシュライトされるブロック(セクタ)数Lが設定される。このブロック(リフレッシュブロック)数Lの設定では、トラック当たりのブロック数がCDRゾーンによって異なる点と、シーク動作(第1のシーク動作)A4及びシーク動作(第2のシーク動作)A8に要する時間とが考慮される。このブロック数Lの設定については後述する。
シーク動作A8が完了した際のヘッド102の位置は、上記設定により、リフレッシュトラック201r上のリフレッシュライト開始位置Psに対応する。そこでシーク動作A8が完了すると、リフレッシュトラック201r上のリフレッシュライト開始位置Psから始まる記憶領域401(図4参照)に、先のリフレッシュデータリード動作A3で読み出された元データを書き戻すためのリフレッシュライト動作A9が直ちに行われる。シーク動作A8が完了してからリフレッシュライト動作A9が開始されるまでの待ち時間(回転待ちの時間)はほぼ0である。図3(a)及び(b)の例では、リフレッシュライト動作A9により、軌跡A9が描かれる。
次に、ヘッド102を、リフレッシュライト動作A9が完了したリフレッシュトラック201r上の位置からリフレッシュ管理トラック201rmに移動させるためのシーク動作A10が行われる。このシーク動作A10により、軌跡A10が描かれる。
シーク動作A10が完了すると、その際にヘッド102が到達したリフレッシュ管理トラック201rmの位置に対応するセクタ404(図4参照)にリフレッシュ管理情報を書き込むためのリフレッシュ管理情報ライト動作A11が行われる。このリフレッシュ管理情報ライト動作A11により、軌跡A11が描かれる。リフレッシュ管理情報ライト動作A11が完了すると、第1のデータリフレッシュ動作は終了する。
上述したように、図3(a)及び(b)に示す第1のデータリフレッシュ動作では、ディスク101のN回転に対応する時間で、バックアップライト動作A5及びリフレッシュライト動作A9が完了するように、リフレッシュされるべきブロック数が設定される。このため、図3(a)及び(b)に示す第1のデータリフレッシュ動作では、回転待ちを、ディスク101のほぼ1.5回転に要する時間に低減することができる。
さて、リフレッシュ管理情報ライト動作A11でリフレッシュ管理トラック201rm上のセクタ404に書き込まれるリフレッシュ管理情報(以下、第1のリフレッシュ管理情報と称する)は、リフレッシュ管理情報ライト動作A7でリフレッシュ管理トラック201rm上のセクタ403に書き込まれるリフレッシュ管理情報(以下、第2のリフレッシュ管理情報と称する)と同様に、完了フラグ及びカウント値を含む。但し、第1のリフレッシュ管理情報に含まれている完了フラグは、第2のリフレッシュ管理情報と異なってセット(ON)状態にあり、リフレッシュライト動作が完了していること(リフレッシュライト済み)を示す。
このため、リフレッシュライト動作中にHDD100の電源が遮断してリフレッシュライト動作が完了しなかった場合、リフレッシュ管理トラック201rmには、今回行われたリフレッシュライト動作の完了を示す完了フラグを含む第1のリフレッシュ管理情報は書き込まれないことになる。このため、リフレッシュライト動作が完了したか否かは、最新の第1のリフレッシュ管理情報がリフレッシュ管理トラック201rmに書き込まれているか否か、つまりリフレッシュライト動作の完了を示す完了フラグを含む最新のリフレッシュ管理情報(第1のリフレッシュ管理情報)がリフレッシュ管理トラック201rmに書き込まれているか否かによって判定することができる。
第1のリフレッシュ管理情報に含まれているカウント値は、最も最近のリフレッシュ管理情報ライト動作A7でリフレッシュ管理トラック201rmに書き込まれた第2のリフレッシュ管理情報中のカウント値よりも1だけ大きい。
本実施形態では、リフレッシュ管理情報ライト動作A7及びA11のそれぞれでリフレッシュ管理情報が書き込まれるセクタ(つまりリフレッシュ管理トラック201rm上のセクタ)は、常に同一であるとは限らない。しかし、リフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック201rmへの書き込みが実行される都度インクリメントされる値が用いられる。このため、リフレッシュ管理トラック201rm内の複数のセクタにリフレッシュ管理情報が書き込まれている場合、リフレッシュ管理情報中のカウント値を比較して、最も値が大きいカウント値を含むリフレッシュ管理情報を、最新のリフレッシュ管理情報と特定することができる。そして、この最新のリフレッシュ管理情報中の完了フラグの状態に基づき、当該リフレッシュ管理情報中の実行アドレス及びブロック数で示されるディスク101上の記憶領域のデータのリフレッシュライト動作が完了しているかを判定することができる。
次に、ディスク101のN回転に対応する時間、例えばディスク101がちょうどN回転するのに要する時間で、バックアップライト動作A5及びリフレッシュライト動作A9が完了するようにブロック(リフレッシュブロック)数Lを設定するための計算式について説明する。リフレッシュブロック数Lは、1回のバックアップライト動作A5及びリフレッシュライト動作A9での書き込みに用いられるブロック数を示す。
本実施形態において、リフレッシュ管理情報の書き込みに必要なブロック数は1ブロックであり、リフレッシュブロック数Lに比べて十分少ない。このため本実施形態では、リフレッシュ管理情報を書き込むのに必要な時間については、説明の簡略化のため考慮されていない。また、この時間を考慮しなくても、リフレッシュブロック数Lの算出に大きな影響はない。勿論、この時間を考慮して、リフレッシュブロック数Lを算出することも可能である。
また、リフレッシュトラック201rからバックアップトラック201bに、またはその逆の方向に、ヘッド102を移動するためのシーク動作に必要な時間が20msであるものとする。
次に、リフレッシュトラック201rが属するCDRゾーンのトラック当たりのブロック数が1000であり、バックアップトラック201bが属するCDRゾーンのトラック当たりのブロック数が2000であるものとする。
また、ディスク101の1分(つまり60秒)当たりの回転数が5400であり、したがってディスク101の1回転に要する時間が11msであるものとする。
この場合、バックアップトラック201bにLブロックのデータをライトするためのバックアップライト動作に必要な時間(バックアップライト時間)Tbは、次式
Tb[ms]=11×(L/2000) (1)
で表される。
Tb[ms]=11×(L/2000) (1)
で表される。
同様に、リフレッシュトラック201rにLブロックのデータをライトするためのリフレッシュライト動作に必要な時間(リフレッシュライト時間)Trは、次式
Tr[ms]=11×(L/1000) (2)
で表される。
Tr[ms]=11×(L/1000) (2)
で表される。
よって、次の条件式
Tb+Tr+2×20(往復のシーク時間)
=11×(L/2000)+11×(L/1000)+2×20
=11(1回転に要する時間)×N (3)
が成立する。
Tb+Tr+2×20(往復のシーク時間)
=11×(L/2000)+11×(L/1000)+2×20
=11(1回転に要する時間)×N (3)
が成立する。
上記条件式(3)を変形すると、次の条件式
33L=22000×N−80000 (4)
のように表される。
33L=22000×N−80000 (4)
のように表される。
条件式(4)を満たす、自然数N及びLは、
N=4、且つL=242
N=5、且つL=909
N=6、且つL=1576
……
のようになる。
N=4、且つL=242
N=5、且つL=909
N=6、且つL=1576
……
のようになる。
そこで、これらのLのうち、バッファRAM111内のライトバッファの容量以下で、且つ最大のLを、リフレッシュブロック数とするならば、回転待ちを低減して効率よくデータリフレッシュを実行することができる。
ここで、バックアップトラック201bが属するCDRゾーンのトラック当たりのブロック数をBb、リフレッシュトラック201rが属するCDRゾーンのトラック当たりのブロック数をBr、そしてディスク101の1回転に要する時間をTd[ms]とする。この場合、バックアップライト時間Tb及びTrは、それぞれ次式
Tb[ms]=Td×(L/Bb) (5)
Tr[ms]=Td×(L/Br) (6)
で表される。
Tb[ms]=Td×(L/Bb) (5)
Tr[ms]=Td×(L/Br) (6)
で表される。
よって、リフレッシュトラック201rからバックアップトラック201bに、またはその逆の方向に、ヘッド102を移動するためのシーク動作に必要な時間をTsとするならば、次の条件式
Tb+Tr+2×Ts(往復のシーク時間)
=Td×(L/Bb)+Td×(L/Br)+2×Ts
=Td(1回転に要する時間)×N (7)
が成立する。
Tb+Tr+2×Ts(往復のシーク時間)
=Td×(L/Bb)+Td×(L/Br)+2×Ts
=Td(1回転に要する時間)×N (7)
が成立する。
上記条件式(7)を変形すると、次の条件式
(Bb+Br)×Td×L
=Bb×Br×{(Td×N)−2×Ts} (8)
のように表される。この条件式(8)から、ブロック数Bb及びBrと、ディスク101の1回転に要する時間Tdと、シーク時間Tsとに基づいて、NとLとの関係を取得することができることは明らかである。前述の条件式(4)は、Bb、Br、Td、Tsが、それぞれ2000、1000、11[ms]、20[ms]である場合のNとLとの関係を示したものである。
(Bb+Br)×Td×L
=Bb×Br×{(Td×N)−2×Ts} (8)
のように表される。この条件式(8)から、ブロック数Bb及びBrと、ディスク101の1回転に要する時間Tdと、シーク時間Tsとに基づいて、NとLとの関係を取得することができることは明らかである。前述の条件式(4)は、Bb、Br、Td、Tsが、それぞれ2000、1000、11[ms]、20[ms]である場合のNとLとの関係を示したものである。
本実施形態では、ディスク101の記録面に配置されたトラック201の集合は予め定められた一定数のトラックを単位にグループ化されて、グループ単位でデータリフレッシュ動作が行われる。このグループを、トラックグループと称する。ここでは、トラックグループ毎に、そのトラックグループ全体へのデータライト動作の総数(ライト回数)がカウントされる。このカウント値が予め定められた一定値に達したならば、該当するトラックグループを対象とするデータフリフレッシュ処理が、上記ブロック数Lを単位に行われる。
図5はトラックグループ毎のライト回数(データライト回数、ライト実行回数)を保持するライトカウントテーブル500のデータ構造例を示す。ライトカウントテーブル500は、例えば図1におけるRAM113の所定の領域に格納される。
図5のライトカウントテーブル500の例では、説明の一般化のために、HDD100がm本のヘッド102を有すると共に、当該HDD100がp個のシリンダグループから構成される場合を想定している。この場合、ライトカウントテーブル500は、ヘッド(ヘッド番号)h、シリンダグループ(シリンダグループ番号)cを用いて表される全てのトラックグループの各々について、そのトラックグループへのデータライト動作の回数(ライト回数)W(h,c)(0≦h≦m−1,0≦c≦p−1)を保持している。W(h,c)はヘッド番号h及びシリンダグループ番号cで特定されるトラックグループへのライト回数をカウントするライトカウンタとして用いられる。なお、図1のHDD100の構成の場合、mは1である。
シリンダグループとは、予め定められた一定数のシリンダの集合であり、1シリンダグループ当たりのシリンダ数は、トラックグループ当たりのトラック数と同じである。したがって、同一のシリンダグループ番号を持つトラックグループは、HDD100内に、ヘッド102の数mに一致する数だけ存在する。トラックグループは、シリンダグループ番号cとヘッド番号hとにより特定される。シリンダグループ番号cとヘッド番号hとで特定されるトラックグループ内のトラックへのデータの書き込み(ライトアクセス)が行われると、カウントテーブル500に保持されているライト回数(ライトカウンタ)W(h,c)が、書き込みが行われた回数だけインクリメントされる。
本実施形態では、ライトカウントテーブル500は、前述のようにRAM113に格納される。RAM113の内容はHDD100の電源の遮断により失われる。したがって、ライトカウントテーブル500の内容も電源遮断と共に失われる。このため本実施形態では、ライトカウントテーブル500を含む、RAM113内の予め定められた領域の内容は、必要に応じて(例えばHDD100の省電力状態への移行時に)、ディスク101の所定領域に保存(退避)される。このディスク101の所定領域に保存されたカウントテーブル500を含む内容は、HDD100の起動時(電源投入時)に読み出されて、RAM113内に復元される。
図6はCDRゾーン毎のトラック当たりのブロック数をヘッド(ヘッド番号)別に保持するブロック数テーブル600のデータ構造例を示す。ブロック数テーブル600は、図1におけるフラッシュROM114の記憶領域の一部に予め格納されてる。
図6のブロック数テーブル600の例では、説明の一般化のために、HDD100がm本のヘッド102を有すると共に、ディスク101の記録面当たりのCDRゾーン数がpである場合を想定している。この場合、ブロック数テーブル600は、CDRゾーン(ゾーン番号)z及びヘッド(ヘッド番号)hを用いて表される、CDRゾーンの各々について、そのゾーンのトラック当たりのブロック数B(h,z)(0≦h≦m−1,0≦z≦p−1)を保持している。
ブロック数テーブル600は、HDD100の電源投入時に、フラッシュROM114から読み出されてRAM113の所定領域に格納される。前述のリフレッシュブロック数Lの計算には、このRAM113に格納されたブロック数テーブル600が用いられる。
次に、図1のHDD100における全体的な動作について、図7のフローチャートを参照して説明する。
まず、HDD100の電源が投入され、CPU115の動作が開始されたものとする(ステップ701)、するとCPU115は、HDD100全体を対象とする初期化処理及び起動処理を行う(ステップ702)。起動処理が終わるとCPU115は、HDC110を介してホストシステム200からコマンドを受信できる状態になり、コマンド待ちループ(ステップ703乃至707)に入る。
まず、HDD100の電源が投入され、CPU115の動作が開始されたものとする(ステップ701)、するとCPU115は、HDD100全体を対象とする初期化処理及び起動処理を行う(ステップ702)。起動処理が終わるとCPU115は、HDC110を介してホストシステム200からコマンドを受信できる状態になり、コマンド待ちループ(ステップ703乃至707)に入る。
ステップ703においてホストシステム200からのコマンドの受信を確認すると、CPU115は、ステップ712に分岐することでコマンド待ちループを抜け、ホストシステム200からのコマンドに応じた処理を実行する。ステップ712においてCPU115は、ホストシステム200からのコマンドがライトコマンドであるかを判定する。もし、そうであれば(ステップ712がYES)、CPU115は、ライトコマンドで指定されたライト処理を行う(ステップ713)。
ライト処理(ステップ713)が完了したなら、CPU115は、そのライト処理がライトカウントテーブル500に反映されるように、当該テーブル500を更新する(ステップ714)。つまりCPU115は、ライト処理がヘッドh、シリンダグループcで特定されるトラックグループに対して行われた場合、ライトカウントテーブル500内のライト回数W(h,c)をライト処理が反映されるように更新する。更に詳細に述べるならば、CPU115は、ライトカウントテーブル500内のライト回数W(h,c)に対してライトが行われた回数を加算する。ここでは通常は、1が加算される。但し、ライト処理でリトライが行われた場合には、当該リトライも通常のライト動作と同様に隣接トラックに影響するので、当該リトライの回数も併せて加算される。
ステップ714が実行されると、ライトコマンドの処理は完了する。そこでCPU115は、レジスタ類の更新、及びビジー状態の解除など、コマンドの終了処理を行い(ステップ715)、コマンド待ちループに戻る。
一方、受信したコマンドがライトコマンド以外であった場合(ステップ712がNO)、CPU115は、当該受信したコマンドに応じた処理(ステップ720)及びコマンドの終了処理(ステップ715)を行い、コマンド待ちループに戻る。
次に、コマンド待ちループにおけるステップ703で、コマンドを受信していないと判定されたものとする。この場合、アイドル時処理が行われる。また、ステップ715でコマンドの終了処理が行われた後も、アイドル時処理が行われる。アイドル時処理は、データリフレッシュ処理を含む。本実施形態においてCPU115は、データリフレッシュ処理の前に、当該データリフレッシュ処理を行うかを次のように判定する(ステップ704,705)。
まずステップ704においてCPU115は、データリフレッシュ処理を行わずにホストシステム200からのコマンドを即座に実行する必要があるか、或いはリフレッシュ処理を回避すべき状況にあるかなどを総合的に判断する。コマンドを即座に実行する必要があるのは、例えば、ステップ715の直後にホストシステム200からコマンドを受信した場合である。リフレッシュ処理を回避すべき状況は、例えば、外部からHDD100に一定レベルを超える振動が加わった場合、HDD100の環境温度が、当該HDD100の動作が保証される温度範囲から外れた場合等、HDD100が悪条件下で用いられる場合である。
次にステップ705においてCPU115は、ステップ704での総合的な判断結果から、データリフレッシュ処理が実行可能かを判定する。データリフレッシュ処理を行うと判定された場合のみ、CPU115はデータリフレッシュ処理を行う(ステップ706)。このステップ706の詳細については後述する。
ステップ706でのデータリフレッシュ処理が終了するか、ステップ705でデータリフレッシュ処理を行うべきでないと判定された場合には、CPU115はステップ707を実行する。このステップ707においてCPU115は、省電力状態に遷移するための省電力処理を実行するかを判定し、実行する必要があるならば当該処理を実行する。省電力処理は、ヘッド102をディスク101上からアンロードさせるためのアンロード処理、及びまたは、SPM103の回転を停止させるSPM停止処理のような処理を含む。
ステップ707で省電力処理が実行されると、CPU115はステップ703に戻る。これに対し、ホストシステム200からのコマンドを即座に実行する必要がある場合には、ステップ707で省電力処理を実行すべきでないと判定される。この場合、CPU115は省電力処理を実行せずにステップ703に戻る。以後CPU115は、ステップ703を含む上述の処理を繰り返す。
次に、上記ステップ706のデータリフレッシュ処理の詳細な手順について、図8のフローチャートを参照して説明する。
CPU115は、図8のフローチャートで示されるデータリフレッシュ処理801において、リフレッシュ処理が中断されているトラックグループが存在するかを判定する(ステップ802)。このステップ802は、トラックグループ内の所定のブロック数のブロック毎にリフレッシュ処理を中断できるようにしていることに関連する。
所定のブロック数のブロック毎にリフレッシュ処理を中断可能とする理由は、トラックグループ内の全てのトラックのデータをリフレッシュするには時間がかかるので、リフレッシュ処理の間に受信されたホストシステム200からのコマンドへの応答性を低下させないためである。つまり本実施形態では、リフレッシュ処理の実行中にホストシステム200からのコマンドが受信された場合、当該コマンドの実行を優先させるために、当該リフレッシュ処理が中断される。
リフレッシュ処理が中断されているトラックグループが存在するならば(ステップ802がYES)、そのことはリフレッシュの対象となるトラックグループ(以下、リフレッシュトラックグループと称する)が決まっていることを意味する。この場合、CPU115は、図3(a)及び(b)を参照して説明したような、データリフレッシュ動作(ステップ806)を制御する。
一方、リフレッシュ処理が中断されているリフレッシュトラックグループが存在しないならば(ステップ802がNO)、CPU115は新たなリフレッシュトラックグループをライトカウントテーブル500に基づいて探す(ステップ803)。ここではCPU115は、ライトカウントテーブル500内で値の最も大きいライト回数W(h,c)を検索する。そしてCPU115は、検索されたライト回数W(h,c)が予め定められた一定値を超えているかによって、リフレッシュ処理が必要なトラックグループが存在するかを判定する(ステップ804)。
検索されたライト回数W(h,c)が一定値を超えている場合、CPU115は、リフレッシュ処理が必要なトラックグループが存在し、そのトラックグループが当該ライト回数W(h,c)と対応付けられているトラックグループ(ヘッド番号h、シリンダグループ番号cで表されるトラックグループ)であると判定する(ステップ804がYES)。このように、リフレッシュ処理が必要なトラックグループ(つまりリフレッシュ処理が行われるべきリフレッシュトラックグループ)が存在すると判定される場合、そのトラックグループ(つまり値の最も大きいライト回数W(h,c)と対応付けられているトラックグループ)も特定される。この場合、CPU115はデータリフレッシュ動作(ステップ806)の前処理であるリフレッシュブロック数算出処理を行う(ステップ805)。
これに対し、検索されたライト回数W(h,c)が一定値以下の場合、CPU115は、リフレッシュ処理が必要なトラックグループは存在しないと判断する(ステップ804がNO)。この場合、データリフレッシュ動作を制御する必要はないので、CPU115はデータリフレッシュ処理801から元の処理にリターンする(ステップ814)。これにより図7のフローチャートにおけるステップ707が実行される。
ステップ805においてCPU115は、1回のデータリフレッシュ動作(リフレッシュライト動作)で処理されるべきブロック数(つまりリフレッシュブロック数)Lを算出するためのリフレッシュブロック数算出処理を実行する。データリフレッシュ動作は、バックアップライト動作(A5)及びリフレッシュライト動作(A9)を含む。リフレッシュブロック数Lは、前述の式(8)及びブロック数テーブル600に基づいて算出される。リフレッシュブロック数算出処理(ステップ805)の詳細については後述する。
CPU115は、算出されたリフレッシュブロック数Lのブロックを対象に、バックアップライト動作及びリフレッシュライト動作を含むデータリフレッシュ動作(ステップ806)を制御する。
次にCPU115は、データリフレッシュ動作(ステップ806)が完了すると、つまりリフレッシュブロック数Lのブロックのリフレッシュが完了すると、データリフレッシュ処理の中断要求があるかを判定する(ステップ810)。ホストシステム200からのコマンドの受信は、データリフレッシュ処理の中断要求を判定する条件の1つである。HDC110内のホストブロック123がホストシステム200からコマンドを受信すると、当該ホストブロック123のハードウェアの機能によりHDD100は即座にビジー状態に遷移する。同時に、このビジー状態を表すフラグ(ビジーフラグ)がセットされる。そこでCPU115は、ステップ810でビジーフラグの状態をチェックする。
なお、ビジーフラグのセットはデータリフレッシュ動作が実行中であるかに関係なく行われる。したがって、ホストシステム200から認識されるコマンドの応答時間は、当該コマンドを発行してからその際に実行中のデータリフレッシュ動作が完了するまでの時間と本来のコマンド実行時間との合計となる。このことから、ホストシステム200からのコマンドが受信された場合に、リフレッシュトラックグループを対象とする全てのリフレッシュが終わるまで待つと、当該コマンドへの応答性を低下させてしまう。
そこで本実施形態では、コマンドへの応答性の低下を回避するために、リフレッシュブロック数Lのブロックのリフレッシュが完了する毎に、上述のようにデータリフレッシュ処理の中断要求があるかが判定される(ステップ810)。そして、データリフレッシュ動作の実行中にホストシステム200からのコマンドが受信された場合のように、データリフレッシュ処理の中断要求があるならば(ステップ810がYES)、CPU115は元の処理にリターンする(ステップ814)。つまりCPU115は、ホストシステム200からのコマンドのための処理を開始させるため、速やかにデータリフレッシュ処理を中断させてステップ706(図7参照)を終了させる。
CPU115はステップ706を終了させるとステップ707を実行する。このステップ707においても、CPU115は、速やかにステップ703に分岐させてホストシステム200からのコマンドのための処理を開始させるため、ステップ810と同様な処理を行う。
一方、データリフレッシュ処理の中断要求がない場合(ステップ810がNO)、CPU115は、リフレッシュトラックグループを対象とするリフレッシュを全て完了したかを判定する(ステップ811)。リフレッシュトラックグループを対象とするリフレッシュが完了していなければ(ステップ811がNO)、CPU115はステップ806に戻って、データリフレッシュ動作の制御を継続して行う。これに対し、リフレッシュトラックグループを対象とするリフレッシュを全て完了しているならば(ステップ811がYES)、CPU115はステップ812に分岐することでステップ806,810及び811の処理ループ(トラックグループ処理ループ)を抜ける。
ステップ812においてCPU115は、リフレッシュトラックグループを対象とするリフレッシュ処理が全て完了し、処理中のトラックグループが存在しないことを表すため、リフレッシュ管理情報をクリアする。リフレッシュ管理情報をクリアすることにより、後述するステップ813からステップ802に戻った際に、当該ステップ802での判定を正しく行うことが可能となる。
CPU115はステップ812を実行すると、リフレッシュ処理が完了したリフレッシュトラックグループに対応付けてライトカウントテーブル500に保持されているライト回数W(h,c)を、0に初期化(つまりクリア)する(ステップ813)。
ライトカウントテーブル500に保持されているトラックグループ毎のライト回数W(h,c)は、そのトラックグループへのライト動作の実行回数を示す。ライト回数W(h,c)は、当該ライト回数W(h,c)と対応付けられているトラックグループにおけるデータの劣化の程度と相関がある。そのため本実施形態では、ライト回数W(h,c)は便宜的にデータ劣化の程度として扱われる。
リフレッシュトラックグループを対象とするリフレッシュ処理が完了した直後は、当該グループにおけるデータの劣化はない。このことを、リフレッシュ処理が完了したリフレッシュトラックグループに対応付けられたライト回数W(h,c)に反映させるために、上述のように当該ライト回数W(h,c)が0に初期化される(ステップ813)。
CPU115は、ステップ813を実行すると、再びステップ802に分岐して次のトラックグループに対する処理を開始する。この場合、ステップ802からの分岐先は常にステップ803になり、リフレッシュを必要とするトラックグループを検索するための動作を含む処理が上述の場合と同様に行われる。リフレッシュ処理の中断要求がなければ、リフレッシュトラックグループを対象とするリフレッシュ処理が終了するのは、それを必要とするトラックグループがなくなった場合のみである(ステップ804がNO)。
次に、上記ステップ805のリフレッシュブロック数算出処理の詳細な手順について、図9のフローチャートを参照して説明する。
まずCPU115は、ブロック数テーブル600を参照することにより、リフレッシュトラック201r及びバックアップトラック201bが属するCDRゾーンにおけるトラック当たりのブロック数Br及びBbをそれぞれ取得する(ステップ902及び903)。更に詳細に述べるならば、リフレッシュトラック201rが属するCDRゾーン及びヘッドのそれぞれゾーン番号及びヘッド番号をzr及びhrとすると、CPU115は、ゾーン番号zr及びヘッド番号hrに対応付けてブロック数テーブル600に保持されているブロック数B(hr,zr)をブロック数Brとして取得する。同様に、バックアップトラック201bが属するCDRゾーン及びヘッドのそれぞれゾーン番号及びヘッド番号をzb及びhbとすると、CPU115は、ゾーン番号zb及びヘッド番号hbに対応付けてブロック数テーブル600に保持されているブロック数B(hb,zb)をブロック数Bbとして取得する。
まずCPU115は、ブロック数テーブル600を参照することにより、リフレッシュトラック201r及びバックアップトラック201bが属するCDRゾーンにおけるトラック当たりのブロック数Br及びBbをそれぞれ取得する(ステップ902及び903)。更に詳細に述べるならば、リフレッシュトラック201rが属するCDRゾーン及びヘッドのそれぞれゾーン番号及びヘッド番号をzr及びhrとすると、CPU115は、ゾーン番号zr及びヘッド番号hrに対応付けてブロック数テーブル600に保持されているブロック数B(hr,zr)をブロック数Brとして取得する。同様に、バックアップトラック201bが属するCDRゾーン及びヘッドのそれぞれゾーン番号及びヘッド番号をzb及びhbとすると、CPU115は、ゾーン番号zb及びヘッド番号hbに対応付けてブロック数テーブル600に保持されているブロック数B(hb,zb)をブロック数Bbとして取得する。
次にCPU115は、リフレッシュトラック201rとバックアップトラック201bとの間でヘッド102を往復させるのに必要なシーク時間(往復のシーク時間)2×Tsを算出する(ステップ904)。
次にCPU115は、取得されたブロック数Br及びBb並びに往復のシーク時間2×Tsと、ディスク101の1回転に要する時間Tdとに基づいて、上述の式(8)から、データリフレッシュ動作での回転待ち時間が最小となるようなリフレッシュブロック数Lを算出する(ステップ905)。ここで時間Tdは、ディスク101の回転速度に基づき予め算出可能である。
CPU115は、ステップ905を実行すると、リフレッシュブロック数算出処理901から元の処理にリターンする(ステップ906)。これにより図8のフローチャートにおけるステップ806が実行される。
次に、上記ステップ702の初期化処理の中で実行されるデータ修復処理の手順について、図10のフローチャートを参照して説明する。
まずCPU115は、ディスク101のリフレッシュ管理トラック201rmからカウント値が最大のリフレッシュ管理情報をサーチする(ステップ1001)。本実施形態では、リフレッシュ管理情報ライト動作A7及びA11で、リフレッシュ管理トラック201rmにリフレッシュ管理情報が書き込まれる。このリフレッシュ管理情報ライト動作A7及びA11の特徴から、リフレッシュ管理情報が書き込まれるリフレッシュ管理トラック201rm上のセクタは、常に同一であるとは限らない。しかし、リフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック201rmへの書き込みが実行される都度インクリメントされる値が用いられる。このため、リフレッシュ管理トラック201rm内の複数のセクタにそれぞれリフレッシュ管理情報が書き込まれている場合、最も値が大きいカウント値を含むリフレッシュ管理情報を、最新のリフレッシュ管理情報と特定することができる。つまりステップ1001でサーチされたリフレッシュ管理情報は、最新のリフレッシュ管理情報である。
まずCPU115は、ディスク101のリフレッシュ管理トラック201rmからカウント値が最大のリフレッシュ管理情報をサーチする(ステップ1001)。本実施形態では、リフレッシュ管理情報ライト動作A7及びA11で、リフレッシュ管理トラック201rmにリフレッシュ管理情報が書き込まれる。このリフレッシュ管理情報ライト動作A7及びA11の特徴から、リフレッシュ管理情報が書き込まれるリフレッシュ管理トラック201rm上のセクタは、常に同一であるとは限らない。しかし、リフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック201rmへの書き込みが実行される都度インクリメントされる値が用いられる。このため、リフレッシュ管理トラック201rm内の複数のセクタにそれぞれリフレッシュ管理情報が書き込まれている場合、最も値が大きいカウント値を含むリフレッシュ管理情報を、最新のリフレッシュ管理情報と特定することができる。つまりステップ1001でサーチされたリフレッシュ管理情報は、最新のリフレッシュ管理情報である。
CPU115は、サーチされたリフレッシュ管理情報中の完了フラグを参照する(ステップ1002)。そしてCPU115は、参照された完了フラグがOFF状態にあるかを判定する(ステップ1003)。完了フラグがOFF状態にあることは、最も最近に実行されたデータリフレッシュ動作中のリフレッシュライト動作が未完了であることを示す。つまりCPU115は、参照された完了フラグがOFF状態にあるかを判定することにより、リフレッシュライト動作中にHDD100の電源が遮断されたかを判定する。もし、リフレッシュライト動作中にHDD100の電源が遮断された場合、リフレッシュライトの対象となっていたトラック(リフレッシュトラック201r)に書き込まれていた元データは破壊されている可能性がある。
そこでCPU115は、完了フラグがOFF状態にあるためにリフレッシュライト動作(A9)中にHDD100の電源が遮断されたと判定した場合(ステップ1003がYES)、リフレッシュライト動作の再実行を制御する(ステップ1004)。但し、リフレッシュトラック201rに再度書き込まれるデータには、バックアップトラック201bに書き込まれている(退避されている)データ(元データ)が用いられる。ここで、この元データが書き込まれているバックアップトラック201b上の記憶領域の開始アドレス及びサイズ(ブロック数)と、元データが再度書き込まれるリフレッシュトラック201r上の記憶領域の開始アドレス及びサイズ(ブロック数)とは、上記サーチされたリフレッシュ管理情報に含まれている。
ステップ1004では、リフレッシュライト動作が完了すると、通常のデータリフレッシュ処理におけるリフレッシュライト動作A9の場合と同様に、シーク動作A10及びリフレッシュ管理情報ライト動作A11も行われる。
[変形例]
次に上記実施形態の変形例について説明する。
図11は、上記実施形態の変形例で適用される、ディスク101上のバックアップトラック201b及びリフレッシュ管理トラック201rmの位置を示す。
次に上記実施形態の変形例について説明する。
図11は、上記実施形態の変形例で適用される、ディスク101上のバックアップトラック201b及びリフレッシュ管理トラック201rmの位置を示す。
上記実施形態では、ディスク101の外周側にバックアップトラック201b及びリフレッシュ管理トラック201rmが確保されている。しかし、バックアップトラック201b及びリフレッシュ管理トラック201rmが、例えば図11(a)に示されるように、ディスク101の内周側に確保されても構わない。また、バックアップトラック201b及びリフレッシュ管理トラック201rmが、例えば図11(b)に示されるように、ディスク101の中周に確保されても構わない。また、バックアップトラック201b及びリフレッシュ管理トラック201rmのディスク101上での相互の位置関係が上記実施形態の逆であっても構わない。つまり、リフレッシュ管理トラック201rmがバックアップトラック201bにディスク101の外周側で隣接しても構わない。
更に、バックアップトラック201b及びリフレッシュ管理トラック201rmがディスク101上のCDRゾーン毎に確保されても構わない。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、ディスク101が必ずしもCDRフォーマットを適用する必要はない。この場合、バックアップライト時間Tb及びリフレッシュライト時間Trは等しくなる。
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
100…磁気ディスク装置(HDD)、101…ディスク、102…ヘッド、113…RAM、114…フラッシュROM、115…CPU(コントローラ)、200…ホストシステム、201…トラック、201r…リフレッシュトラック、201b…バックアップトラック、201rm…リフレッシュ管理トラック、500…ライトカウントテーブル、600…ブロック数テーブル
Claims (15)
- 磁気ディスク装置において、
複数のトラックの少なくとも1つが、リフレッシュされるべきトラックのデータを一時退避するためのバックアップトラックとして割り当てられるディスクと、
Lを自然数とすると、前記ディスク上のリフレッシュされるべきトラックからブロック数がLのデータをヘッドにより読み出すためのリフレッシュデータリード動作と、前記読み出されたデータを前記バックアップトラックに前記ヘッドにより書き込むためのバックアップライト動作と、前記読み出されたデータを、前記バックアップライト動作の後に前記リフレッシュされるべきトラックの元の記憶領域に前記ヘッドにより書き込むためのリフレッシュライト動作とを含むデータリフレッシュ動作を制御するコントローラであって、Nを自然数とすると、前記リフレッシュされるべきデータのブロック数Lを、前記リフレッシュデータリード動作が完了してから前記ディスクのN回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定するコントローラと
を具備することを特徴とする磁気ディスク装置。 - 前記データリフレッシュ動作は、前記リフレッシュデータリード動作の後に前記ヘッドを前記バックアップトラックに移動させるための第1のシーク動作及び前記バックアップライト動作の後に前記ヘッドを前記リフレッシュされるべきトラックに移動させるための第2のシーク動作を含み、
前記コントローラは、前記第1のシーク動作によって前記ヘッドが前記バックアップトラックに到達した時点から前記バックアップライト動作を開始させる
ことを特徴とする請求項1記載の磁気ディスク装置。 - 前記コントローラは、前記第1のシーク動作によって前記ヘッドが到達した前記バックアップトラック上の位置から始まる記憶領域に、前記読み出されたデータが前記ヘッドによって書き込まれるように、前記バックアップライト動作を制御することを特徴とする請求項2記載の磁気ディスク装置。
- 前記ディスクはCDRフォーマットを適用し、
前記ブロック数Lを設定するのに用いられる前記条件は、前記バックアップライト動作及び前記リフレッシュライト動作にそれぞれ必要な時間Tb及びTrを含み、
前記コントローラは、前記時間Tb及びTrを、それぞれ前記バックアップトラック及び前記リフレッシュトされるべきトラックが属するCDRゾーンのトラック当たりのブロック数と、前記ブロック数Lと、前記ディスクの1回転に要する時間とに基づき算出する
ことを特徴とする請求項3記載の磁気ディスク装置。 - 前記ディスク上で前記バックアップトラックに隣接するトラックがリフレッシュ管理トラックとして割り当てられており、
前記データリフレッシュ動作は、前記バックアップライト動作の後で且つ前記第2のシーク動作の前に、前記読み出されたデータが書き込まれている前記リフレッシュされるべきトラック上の位置を示すアドレス、前記読み出されたデータが前記バックアップライト動作で書き込まれた前記バックアップトラック上の位置を示すアドレス、及び前記ブロック数Lを含むリフレッシュ管理情報を前記リフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作を含み、
前記コントローラは、前記リフレッシュライト動作の最中に前記磁気ディスク装置の電源が遮断した場合には、次に当該電源が投入された際に、前記リフレッシュ管理トラックに書き込まれている最新のリフレッシュ管理情報に基づいて、前記バックアップトラックに書き込まれている前記読み出されたデータを前記元の記憶領域に書き込むための再リフレッシュライト動作を制御する
ことを特徴とする請求項2乃至4のいずれかに記載の磁気ディスク装置。 - 前記データリフレッシュ動作は、前記バックアップライト動作の後で且つ前記リフレッシュ管理情報ライト動作の前に、前記ヘッドを前記リフレッシュ管理トラックに移動させるための第3のシーク動作を含み、
前記コントローラは、前記第3のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から前記リフレッシュ管理情報ライト動作を開始させる
ことを特徴とする請求項5記載の磁気ディスク装置。 - 前記リフレッシュ管理情報はカウント値を含み、当該カウント値には前記リフレッシュ管理情報ライト動作の都度インクリメントされる値が用いられる、
前記コントローラは、前記リフレッシュ管理トラックに複数のリフレッシュ管理情報が書き込まれている場合、最も値が大きいカウント値を含むリフレッシュ管理情報を、前記最新のリフレッシュ管理情報として用いる
ことを特徴とする請求項6記載の磁気ディスク装置。 - 前記リフレッシュ管理情報は前記リフレッシュライト動作が完了したかを示す完了フラグを含み、
前記コントローラは、前記リフレッシュライト動作の後に前記ヘッドを前記リフレッシュ管理トラックに移動させるための第4のシーク動作と、前記第4のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から、前記リフレッシュライト動作が完了したことを示す完了フラグを含む前記リフレッシュ管理情報を前記リフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作とを制御し、前記電源が投入された際に、前記最新のリフレッシュ管理情報に前記リフレッシュライト動作が完了したことを示す完了フラグが含まれているかを判定することにより、前記リフレッシュライト動作が完了したか、或いは前記リフレッシュライト動作の最中に前記電源が遮断したかを判定する
ことを特徴とする請求項7記載の磁気ディスク装置。 - 磁気ディスク装置においてディスクに書き込まれているデータをリフレッシュするためのデータリフレッシュ方法であって、
Lを自然数とすると、前記ディスク上のリフレッシュされるべきトラックからブロック数がLのデータをヘッドにより読み出すためのリフレッシュデータリード動作を実行するステップと、
前記読み出されたデータを前記ディスク上に確保されているバックアップトラックに前記ヘッドにより書き込むためのバックアップライト動作を実行するステップと、
前記読み出されたデータを、前記バックアップライト動作の後に、前記リフレッシュされるべきトラックの元の記憶領域に前記ヘッドにより書き込むためのリフレッシュライト動作を実行するステップと、
前記リフレッシュデータリード動作を実行するステップに先行して、前記リフレッシュされるべきデータのブロック数Lを設定するステップであって、Nを自然数とすると、前記ブロック数Lを、前記リフレッシュデータリード動作が完了してから前記ディスクのN回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定するステップと
を具備することを特徴とするデータリフレッシュ方法。 - 前記リフレッシュデータリード動作の後に前記ヘッドを前記ディスク上に確保されたバックアップトラックに移動させるための第1のシーク動作を実行するステップと、
前記バックアップライト動作の後に前記ヘッドを前記リフレッシュされるべきトラックに移動させるための第2のシーク動作を実行するステップとを更に具備し、
前記バックアップライト動作が、前記第1のシーク動作によって前記ヘッドが前記バックアップトラックに到達した時点から開始される
ことを特徴とする請求項9記載のデータリフレッシュ方法。 - 前記ディスクはCDRフォーマットを適用し、
前記ブロック数Lを設定するのに用いられる前記条件は、前記バックアップライト動作及び前記リフレッシュライト動作にそれぞれ必要な時間Tb及びTrを含み、
前記設定するステップは、前記時間Tb及びTrを、それぞれ前記バックアップトラック及び前記リフレッシュトされるべきトラックが属するCDRゾーンのトラック当たりのブロック数と、前記ブロック数Lと、前記ディスクの1回転に要する時間とに基づき算出するステップを含む
ことを特徴とする請求項10記載のデータリフレッシュ方法。 - 前記バックアップライト動作の後で且つ前記第2のシーク動作の前に、前記読み出されたデータが書き込まれている前記リフレッシュされるべきトラック上の位置を示すアドレス、前記読み出されたデータが前記バックアップライト動作で書き込まれた前記バックアップトラック上の位置を示すアドレス、及び前記ブロック数Lを含むリフレッシュ管理情報を、前記ディスク上に確保されている、前記バックアップトラックに隣接するリフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作を実行するステップと、
前記リフレッシュライト動作の最中に前記磁気ディスク装置の電源が遮断した場合には、次に当該電源が投入された際に、前記リフレッシュ管理トラックに書き込まれている最新のリフレッシュ管理情報に基づいて、前記バックアップトラックに書き込まれている前記読み出されたデータを前記元の記憶領域に書き込むための再リフレッシュライト動作を実行するステップと
を更に具備することを特徴とする請求項11記載のデータリフレッシュ方法。 - 前記バックアップライト動作の後で且つ前記リフレッシュ管理情報ライト動作の前に、前記ヘッドを前記リフレッシュ管理トラックに移動させるための第3のシーク動作を実行するステップを更に具備し、
前記リフレッシュ管理情報ライト動作が、前記第3のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から開始される
ことを特徴とする請求項12記載のデータリフレッシュ方法。 - 前記リフレッシュ管理情報はカウント値を含み、当該カウント値には前記リフレッシュ管理情報ライト動作の都度インクリメントされる値が用いられる、
前記データリフレッシュ方法は、前記リフレッシュ管理トラックから最も値が大きいカウント値を含むリフレッシュ管理情報を、前記最新のリフレッシュ管理情報としてサーチするステップを更に具備する
ことを特徴とする請求項13記載のデータリフレッシュ方法。 - 前記リフレッシュ管理情報は前記リフレッシュライト動作が完了したかを示す完了フラグを含み、
前記データリフレッシュ方法は、
前記リフレッシュライト動作の後に前記ヘッドを前記リフレッシュ管理トラックに移動させるための第4のシーク動作を実行するステップと、
前記第4のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から、前記リフレッシュライト動作が完了したことを示す完了フラグを含む前記リフレッシュ管理情報を前記リフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作とを実行するステップと、
前記サーチされた最新のリフレッシュ管理情報に前記リフレッシュライト動作が完了したことを示す完了フラグが含まれているかを判定することにより、前記リフレッシュライト動作が完了したか、或いは前記リフレッシュライト動作の最中に前記電源が遮断したかを判定するステップと
を更に具備することを特徴とする請求項14記載のデータリフレッシュ方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008334882A JP4504450B1 (ja) | 2008-12-26 | 2008-12-26 | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 |
US12/608,975 US7870460B2 (en) | 2008-12-26 | 2009-10-29 | Magnetic disk drive capable of refreshing data written to disk and data refresh method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008334882A JP4504450B1 (ja) | 2008-12-26 | 2008-12-26 | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4504450B1 JP4504450B1 (ja) | 2010-07-14 |
JP2010157287A true JP2010157287A (ja) | 2010-07-15 |
Family
ID=42284645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008334882A Expired - Fee Related JP4504450B1 (ja) | 2008-12-26 | 2008-12-26 | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7870460B2 (ja) |
JP (1) | JP4504450B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8879181B2 (en) | 2012-09-07 | 2014-11-04 | Kabushiki Kaisha Toshiba | Read/write apparatus and read/write method |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8320067B1 (en) * | 2010-05-18 | 2012-11-27 | Western Digital Technologies, Inc. | Refresh operations using write/read commands |
JP4865062B2 (ja) * | 2010-06-30 | 2012-02-01 | 株式会社東芝 | 磁気ディスク装置及び同装置におけるリフレッシュ方法 |
US8531791B1 (en) | 2012-02-01 | 2013-09-10 | Western Digital Technologies, Inc. | Methods for adaptive throttling of data refresh operations and disk drives implementing the same |
US10379760B1 (en) | 2018-01-23 | 2019-08-13 | Western Digital Technologies, Inc. | Data storage device opportunistically refreshing data |
US11276431B1 (en) * | 2021-03-17 | 2022-03-15 | Western Digital Technologies, Inc. | Data storage device executing just-in-time refresh |
CN113608682B (zh) * | 2021-06-30 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种基于hdd磁盘压力的智能流控方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001110004A (ja) * | 1999-08-06 | 2001-04-20 | Komag Inc | 熱による劣化が起こる十分に高密度に記録されたデータをリフレッシュするための回路及びその方法 |
JP2001118343A (ja) * | 1999-10-15 | 2001-04-27 | Hitachi Ltd | 磁気ディスク装置 |
JP2002100126A (ja) * | 2000-09-18 | 2002-04-05 | Internatl Business Mach Corp <Ibm> | 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置 |
JP2004273060A (ja) * | 2003-03-11 | 2004-09-30 | Hitachi Ltd | 磁気ディスク装置 |
JP2005267702A (ja) * | 2004-03-17 | 2005-09-29 | Hitachi Global Storage Technologies Netherlands Bv | 磁気ディスク装置及びリフレッシュ方法 |
JP2008140459A (ja) * | 2006-11-30 | 2008-06-19 | Toshiba Corp | ハイブリッドディスク記憶装置及び同装置に適用されるディスクライト方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210866A (en) * | 1990-09-12 | 1993-05-11 | Storage Technology Corporation | Incremental disk backup system for a dynamically mapped data storage subsystem |
JPH04137032A (ja) | 1990-09-28 | 1992-05-12 | Fujitsu Ltd | 交代セクタ割り付け方式 |
US5452429A (en) * | 1993-11-17 | 1995-09-19 | International Business Machines Corporation | Error correction code on add-on cards for writing portions of data words |
EP0922254B1 (de) * | 1996-08-30 | 2000-05-24 | Siemens Aktiengesellschaft | Fehlererkennung in einem speichersystem |
JPH1092116A (ja) | 1996-09-19 | 1998-04-10 | Toshiba Corp | データ記録再生装置及び同装置におけるスペアトラック配置方法 |
JP4779183B2 (ja) * | 1999-03-26 | 2011-09-28 | ソニー株式会社 | 再生装置および再生方法 |
US7167561B1 (en) * | 1999-03-03 | 2007-01-23 | Sony Corporation | Recording apparatus, recording method, reproducing apparatus, and reproducing method |
JP4077993B2 (ja) * | 1999-07-30 | 2008-04-23 | 株式会社日立グローバルストレージテクノロジーズ | 性能評価方法及び性能評価装置並びにこれらを用いた記録再生装置 |
US6715116B2 (en) * | 2000-01-26 | 2004-03-30 | Hewlett-Packard Company, L.P. | Memory data verify operation |
WO2001075865A2 (en) * | 2000-03-31 | 2001-10-11 | Seagate Technology Llc | Ultrahigh density longitudinal recording on magnetic media |
JP2002175090A (ja) * | 2000-12-07 | 2002-06-21 | Sony Corp | 再生装置および再生方法 |
US6938180B1 (en) * | 2001-12-31 | 2005-08-30 | Emc Corporation | Logical restores of physically backed up data |
TW594690B (en) * | 2002-09-13 | 2004-06-21 | Mediatek Inc | Method for managing defects of optical disk |
US20070128899A1 (en) * | 2003-01-12 | 2007-06-07 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
-
2008
- 2008-12-26 JP JP2008334882A patent/JP4504450B1/ja not_active Expired - Fee Related
-
2009
- 2009-10-29 US US12/608,975 patent/US7870460B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001110004A (ja) * | 1999-08-06 | 2001-04-20 | Komag Inc | 熱による劣化が起こる十分に高密度に記録されたデータをリフレッシュするための回路及びその方法 |
JP2001118343A (ja) * | 1999-10-15 | 2001-04-27 | Hitachi Ltd | 磁気ディスク装置 |
JP2002100126A (ja) * | 2000-09-18 | 2002-04-05 | Internatl Business Mach Corp <Ibm> | 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置 |
JP2004273060A (ja) * | 2003-03-11 | 2004-09-30 | Hitachi Ltd | 磁気ディスク装置 |
JP2005267702A (ja) * | 2004-03-17 | 2005-09-29 | Hitachi Global Storage Technologies Netherlands Bv | 磁気ディスク装置及びリフレッシュ方法 |
JP2008140459A (ja) * | 2006-11-30 | 2008-06-19 | Toshiba Corp | ハイブリッドディスク記憶装置及び同装置に適用されるディスクライト方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8879181B2 (en) | 2012-09-07 | 2014-11-04 | Kabushiki Kaisha Toshiba | Read/write apparatus and read/write method |
Also Published As
Publication number | Publication date |
---|---|
JP4504450B1 (ja) | 2010-07-14 |
US20100165502A1 (en) | 2010-07-01 |
US7870460B2 (en) | 2011-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7925828B2 (en) | Magnetic disk drive refreshing data written to disk and data refreshment method applied to magnetic disk drive | |
USRE48952E1 (en) | Recording medium controller and method thereof | |
JP4504450B1 (ja) | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 | |
JP5681511B2 (ja) | 情報記録装置及び情報記録方法 | |
JP4648461B2 (ja) | 磁気ディスク装置及び同装置における暗号鍵更新方法 | |
JP2009020986A (ja) | ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法 | |
US8291190B2 (en) | Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto | |
JP4660613B2 (ja) | 磁気ディスクドライブにおけるデータリフレッシュ方法 | |
JP4138813B2 (ja) | サーボ情報書き込み方法及びディスク記憶装置 | |
JP2001216746A (ja) | ディスク記憶装置及びリトライ制御方法 | |
JP4869416B2 (ja) | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 | |
JP2002100126A (ja) | 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置 | |
JP4919983B2 (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
US7389378B2 (en) | Write processing method for stream type commands and medium storage apparatus | |
US20160170891A1 (en) | Disk apparatus and control method | |
JP7056867B2 (ja) | 制御装置、制御プログラム、及び制御方法 | |
JP2011087313A (ja) | 情報記録装置及び情報記録方法 | |
JP2009054209A (ja) | 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法 | |
JP2010044820A (ja) | 記録装置及び記録方法 | |
US9190107B2 (en) | Information recording device and information recording method | |
US9053746B2 (en) | Disk device and data recording method | |
JP2011129221A (ja) | 異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ及びそのユーザ・データのバックアップ方法 | |
JP2006179100A (ja) | ディスク装置及びその制御方法 | |
JPH1139783A (ja) | 情報記録装置の起動方法及び装置 | |
JP2010282677A (ja) | データ消去方法及びそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100330 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100422 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |