JP2011028810A - 磁気ディスクドライブにおけるデータリフレッシュ方法 - Google Patents

磁気ディスクドライブにおけるデータリフレッシュ方法 Download PDF

Info

Publication number
JP2011028810A
JP2011028810A JP2009173501A JP2009173501A JP2011028810A JP 2011028810 A JP2011028810 A JP 2011028810A JP 2009173501 A JP2009173501 A JP 2009173501A JP 2009173501 A JP2009173501 A JP 2009173501A JP 2011028810 A JP2011028810 A JP 2011028810A
Authority
JP
Japan
Prior art keywords
data
segment
segments
header
refresh
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
Application number
JP2009173501A
Other languages
English (en)
Other versions
JP4660613B2 (ja
Inventor
Takao Aoki
隆雄 青木
Yasuhiko Ichikawa
靖彦 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009173501A priority Critical patent/JP4660613B2/ja
Priority to US12/824,109 priority patent/US8154814B2/en
Publication of JP2011028810A publication Critical patent/JP2011028810A/ja
Application granted granted Critical
Publication of JP4660613B2 publication Critical patent/JP4660613B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/02Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
    • G11B5/09Digital recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10916Seeking data on the record carrier for preparing an access to a specific address
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10935Digital recording or reproducing wherein a time constraint must be met
    • G11B2020/10972Management of interruptions, e.g. due to editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Digital Magnetic Recording (AREA)

Abstract

【課題】ディスクに格納されているデータをリフレッシュする際に長距離のヘッド移動が発生する回数を減少することにより、データリフレッシュ効率を向上させる。
【解決手段】磁気ディスクドライブ内のCPUは、ディスク上の複数のトラックが配置されている領域を区分する第1のセグメント及び当該第1のセグメントに後続する複数の第2のセグメントのうちの次にリフレッシュされるべきセグメントが、前記複数の第2のセグメントの1つであることを検出する。次にリフレッシュされるべきセグメントが前記複数の第2のセグメントの前記1つである場合(ステップ807のNO)、CPUは、前記複数の第2のセグメントの前記1つに格納されているデータを前記第1のセグメントに退避する(ステップ808,809)。
【選択図】 図9

Description

本発明は、ディスクに格納されているデータをリフレッシュするためのデータリフレッシュ方法に関する。
近年、磁気ディスクドライブの高容量化に伴い、高記録密度化、高トラック密度化が進んでいる。高トラック密度化により、ディスク上で隣接するトラック(記録トラック)間の間隔(つまりトラックピッチ)が狭小化されている。各トラックはヘッド(ヘッドに含まれる書き込み素子)の幅と同じ幅を持つ。しかし、データ書き込み時にヘッドによって生成される記録磁界の分布の幅は必ずしも当該ヘッドの幅に一致せず、その周辺にも磁界が加わる状態となる。この状態は、ライトフリンジングと呼ばれる。
トラックピッチが狭小化されると、トラックにデータを書き込む際に、隣接するトラックに書き込まれているデータ(記録データ)の劣化が発生する可能性がある。その要因は、トラックにヘッドを位置付ける際の誤差及びライトフリンジングにある。記録データの劣化が繰り返し発生すると、その記録データの読み出しが非常に困難になる。つまり、誤り訂正符号(ECC)を最大限に用いて記録データの修復を試みても、当該記録データを修復することが困難となる。
そこで近年の磁気ディスクドライブでは、記録データの劣化により当該記録データの読み出しが不能になる前に、当該記録データの劣化を回復するためのデータリフレッシュ(書き直し)が必須になりつつある。データリフレッシュは、劣化した記録データをトラックから読み出し、当該読み出されたデータを当該トラックに書き戻すことで、当該記録データを正常な状態に戻す動作として知られている。
例えば、特開2004−273060号公報は、データライト回数が規定回数に達したトラックに隣接するトラックに書き込まれているデータをリフレッシュする技術(以下、先行技術と称する)を開示している。この先行技術によれば、まず、データライト回数が規定回数に達したトラックに隣接するトラックのデータは劣化していると判定される。次に、このような隣接トラックのデータがリフレッシュされるべきデータとして読み出されてRAMに一時記憶される。そして、このRAMに一時記憶された隣接トラックのデータが当該隣接トラックに再度書き込まれる。つまり、リフレッシュされるべきトラックのデータが、当該トラックから読み出されたデータで書き直される。このようなデータ書き直し動作、つまりデータリフレッシュ動作により、データの劣化が回復される。
特開2004−273060号公報
しかしながら、上記先行技術では、データリフレッシュ動作の最中に磁気ディスクドライブの電源が遮断すると、リフレッシュされるべきトラックのデータが失われる可能性がある。更に具体的に述べるならば、リフレッシュされるべきトラックから読み出されたデータを当該トラックに再度書き込むための動作(以下、書き戻し動作と称する)の最中に磁気ディスクドライブの電源が遮断すると、当該データが失われる可能性がある。この理由について説明する。
まず、書き戻し動作の最中に電源が遮断したものとする。この場合、リフレッシュされるべきトラックのデータは破壊される。このとき、RAMに一時記憶されているリフレッシュされるべきトラックのデータは消失する。このため、電源が復帰しても、未完了となった書き戻し動作を再度行うことができず、リフレッシュされるべきトラックのデータは失われる。
このような不具合を防止するために、上記RAMに代えて、ディスク上の特定のトラックを用いることが考えられる。つまり、ディスク上の特定のトラックを、リフレッシュされるべきトラックのデータを一時退避(つまりバックアップ)するための退避領域として用いることが考えられる。
ディスク上の特定のトラックを退避領域として用いる場合、退避動作と書き戻し動作とが次のように実行される。退避動作では、リフレッシュされるべきトラックから読み出されたデータが特定のトラックに書き込まれる(つまり退避される)。書き戻し動作では、特定のトラックから読み出されたデータが、リフレッシュされるべきトラックに書き戻される。これにより、リフレッシュされるべきトラックに記録されていたデータがリフレッシュされる。
退避動作に際しては、リフレッシュされるべきトラックから特定のトラックにヘッドを移動するための第1のシーク動作が行われる。書き戻し動作に際しては、特定のトラックからリフレッシュされるべきトラックにヘッドを移動するための第2のシーク動作が行われる。
このように、特定のトラックを退避領域として用いる場合、1つのトラックのデータをリフレッシュするのに2回のシーク動作が必要となる。一般に近年のディスクは、1記録当たりほぼ16万トラックを有している。このようなディスクを有する磁気ディスクドライブでは、1つのトラックのデータをリフレッシュするのに、平均16万トラックに相当する長距離のヘッド移動が必要となる。
本発明は上記事情を考慮してなされたものでその目的は、ディスクに格納されているデータをリフレッシュする際に長距離のヘッド移動が発生する回数を減少することにより、データリフレッシュ効率を向上することができるデータリフレッシュ方法を提供することにある。
本発明の1つの観点によれば、ディスクを備えた磁気ディスクドライブにおいて、前記ディスクに格納されているデータをリフレッシュするためのデータリフレッシュ方法が提供される。このデータリフレッシュ方法は、前記ディスク上の複数のトラックが配置されている領域を区分する第1のセグメント及び当該第1のセグメントに後続する複数の第2のセグメントのうちの次にリフレッシュされるべきセグメントが、前記第2のセグメントの1つであることを検出するステップと、次にリフレッシュされるべきセグメントが前記複数の第2のセグメントの前記1つである場合、前記複数の第2のセグメントの前記1つに格納されているデータを前記第1のセグメントに退避するステップとを具備する。
本発明によれば、第1のセグメントに後続する複数の第2のセグメントの各々に格納されているデータをリフレッシュする際に必要な退避領域として第1のセグメントが利用されるため、データリフレッシュのために長距離のヘッド移動が発生する回数を減らして、データリフレッシュ効率を向上することができる。
本発明の一実施形態に係る磁気ディスクドライブ(HDD)の構成を示すブロック図。 同実施形態で適用されるディスクのトラック配置を含むフォーマットを示す概念図。 同実施形態で適用されるデータリフレッシュ処理の概要図。 同実施形態で適用されるライトカウントテーブルのデータ構造例を示す図。 図1のHDDにおける全体的な動作を説明するためのフローチャート 図5のフローチャートに含まれる初期化・回復処理の詳細な手順を示すフローチャート。 図5のフローチャートに含まれるコマンド実行処理の詳細な手順を示すフローチャート。 図5のフローチャートに含まれるデータリフレッシュ処理の詳細な手順を示すフローチャート。 図5のフローチャートに含まれるデータリフレッシュ処理の詳細な手順を示すフローチャート。
以下、本発明の実施の形態につき図面を参照して説明する。
図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つに記録される。
また、ディスク101の複数のトラック201上にはサーボ領域202及びデータ領域203が交互に且つ等間隔に配置されている。サーボ領域202には、ヘッド102の位置決めに用いられるサーボ信号が記録されている。データ領域203は、ホストシステム200から転送されるデータを記録するのに用いられる。
再び図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が上記プログラムを実行することにより実現される。
RAM113は、例えばCPU115が使用する種々の変数を格納するのに用いられる。RAM113の記憶領域の一部は、CPU115のワーク領域として用いられる。RAM113の記憶領域の他の一部は、トラックグループ毎のライト回数(データライト回数)を保持するライトカウントテーブル400(図5参照)を格納するのに用いられる。トラックグループ及びライトカウントテーブル400については後述する。
リード・ライト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を参照して説明する。
前述したように、データリフレッシュ動作中の電源遮断対策のために、リフレッシュされるべき各トラックのデータをディスク上の特定のトラックに一時退避させると、各トラック毎に長距離のヘッド移動が必要となる。この場合、データリフレッシュ効率が低下する。そこで本実施形態では、データリフレッシュ動作中の電源遮断対策を図りながら、長距離のヘッド移動が発生する回数を減少して、データリフレッシュ効率を向上することが可能な、次のような特徴あるデータリフレッシュ処理を適用している。
一般に、データリフレッシュ処理の最大の目的は、各トラックにデータを書き込む際に、両側の隣接トラックに及ぼすライトフリンジングの影響を回避することである。このたため理想的には、トラック毎に隣接トラックに対するデータライトの回数を数え、データリフレッシュ処理もトラック毎に行うのが好ましい。しかし、磁気ディスクドライブの全トラックについてライト回数を保持するには、膨大なメモリ容量を必要とするため現実的ではない。
そこで本実施形態では、ディスク101の記録面に配置されたトラック201の集合が予め定められた一定数のトラック(例えば、数十乃至100程度のトラック)を単位にグループ化されて、グループ単位でデータリフレッシュ処理が行われる。このグループを、トラックグループと称する。もし、ディスク101上のトラック201の総数が16万、トラックグループ当たりのトラック数が100であるとするならば、ディスク101の1記録面当たりのトラックグループ数は、トラック201の総数の1/100、つまり1600となる。
本実施形態では、トラックグループ毎に、そのトラックグループへのデータ書き込み動作の総数(ライト回数)がカウントされる。このカウント値が予め定められた一定値に達したならば、該当するトラックグループを対象とするデータフリフレッシュ処理が行われる。
図3の例では、ディスク101上の1つのトラックグループ301が示されている。また図3の例では、システムのみが使用可能なシステム領域302が示されている。システム領域302は一般に1つ以上のトラックを含む。本実施形態では、システム領域302内の特定のトラックの一部が、専用退避領域303(特定の退避領域)として割り当てられている。この特定トラックは、いずれのトラックグループにも属さないものとする。
ディスク101上のトラック201の集合を複数のトラックグループに区分して管理する場合、次のような方法を適用するならば、トラックグループ全体のデータリフレッシュ処理に要する時間を抑えることが可能となる。この方法とは、トラックグループを単位に、トラックグループ内の全トラックから一度にデータを読み出して、それを当該全トラックに書き戻すことである。しかし、この方法は、データを読み込むためのバッファを構築するのに膨大なメモリ容量を必要とする。
そこで本実施形態では、各トラックグループが、一定数のセグメントに区分される。各トラックグループは、例えば先頭セグメントから最終セグメントまで、セグメント単位で順にリフレッシュされる。これにより、トラックグループ全体をリフレッシュすることができる。但し、先頭セグメントのリフレッシュには、後述するように、2番目のセグメント乃至最終セグメントのリフレッシュとは異なる手順が適用される。
図3の例では、トラックグループ301が、N+1個のセグメント0〜Nに区分されている。セグメント0は先頭セグメントを示し、セグメントNは最終セグメントを示す。図3において、トラックグループ301内の先頭のトラック201の終端側に位置するセグメント要素(SE)2aと、先頭のトラック201に後続するトラック201の始端側に位置するセグメント要素(SE)2aは、セグメント2を構成する。
トラックグループ301内のセグメント0は、トラックグループ301内の他のセグメント1〜Nよりもセグメント長が2セクタだけ長くなるように設定されている。つまり、セグメント1〜Nの各々がLセクタから構成されているものとすると、セグメント0は(L+2)セクタから構成されることになる。
一方、専用退避領域303は、セグメント0よりもサイズが2セクタだけ長くなるように設定されている。つまり、セグメント0が(L+2)セクタから構成されている場合、専用退避領域303は(L+4)セクタから構成されることになる。
トラックグループ301に対するデータリフレッシュ処理は、CPU115によって次のような手順で行われる。
(1)トラックグループ301内の先頭のセグメント0に格納されているデータ(つまり(L+2)セクタのデータ)を専用退避領域303に退避するための退避動作321が実行される。この(L+2)セクタのデータの前後には、それぞれ1セクタのヘッダ及びフッタが付加される。つまり退避動作321は、セグメント0に格納されている(L+2)セクタのデータをバッファRAM111に読み出す動作と、読み出された(L+2)セクタのデータにヘッダ及びフッタを付加する動作と、ヘッダ及びフッタを含むが付加された(L+4)セクタのデータを専用退避領域303に書き込む動作とを含む。退避動作321はセグメント0(第1のセグメント)に対するデータリフレッシュ動作320の一部である。データリフレッシュ動作320の残りの動作は、後述するように、セグメント1〜N(第2のセグメント)に対するデータリフレッシュ動作322-1〜322-Nが全て完了した後に実行される。
(2)トラックグループ301内の2番目のセグメント1に格納されているデータ(つまりLセクタのデータ)をリフレッシュするためのデータリフレッシュ動作322-1が実行される。データリフレッシュ動作322-1は、セグメント1に格納されているLセクタのデータをバッファRAM111に読み出す動作と、読み出されたLセクタのデータの前後に、それぞれ1セクタのヘッダ及びフッタを付加する動作と、ヘッダ及びフッタが付加された(L+2)セクタのデータをセグメント0に書き込む(つまり退避する)動作とを含む。データリフレッシュ動作322-1は更に、読み出されたLセクタのデータをセグメント1に書き戻すことにより当該セグメント1に格納されているデータをリフレッシュするための動作と、セグメント0に退避されているデータを無効化する動作を含む。このようにセグメント0は、セグメント1に格納されているデータをリフレッシュする際の一時退避領域として用いられる。本実施形態において、セグメント0に退避されているデータの無効化は、当該データに付加されているヘッダ及びフッタのうちのヘッダを無効化することによって実現される。ヘッダ及びフッタがいずれも有効な場合だけ、当該ヘッダ及びフッタを有効なヘッダ及びフッタと呼ぶ。したがってヘッダ及びフッタのうちのヘッダが無効化されている場合、当該ヘッダ及びフッタは有効なヘッダ及びフッタではない。
(3)後続のセグメント2〜Nの各々に対しても、上述のセグメント1に対するのと同様のデータリフレッシュ動作322-2〜322-Nが実行される。したがってセグメント0は、セグメント1〜Nに格納されているデータをリフレッシュする際の一時退避領域としても用いられる。
(4)トラックグループ301内の最終のセグメントNに対するデータリフレッシュ動作322-Nが完了したら、セグメント0に対する未完了のデータリフレッシュ動作320が実行される。つまりデータリフレッシュ動作320のうち既に実行済みの退避動作321を除く残りの動作である書き戻し動作323が実行される。この書き戻し動作323は、退避動作321によってセグメント0から専用退避領域303に退避されたデータをバッファRAM111に読み出す動作と、読み出されたデータを当該セグメント0に書き戻すことにより当該セグメント0に格納されているデータをリフレッシュするための動作と、専用退避領域303に退避されているデータに付加されているヘッダを無効化する動作とを含む。書き戻し動作323の実行により、トラックグループ301内のセグメント0に格納されているデータがリフレッシュされる。この結果、トラックグループ301を対象とするデータリフレッシュ処理が完了する。
このようなデータリフレッシュ処理では、トラックグループ301内の全セグメント0〜Nをリフレッシュするのに、当該トラックグループ301と当該トラックグループ301から離れた専用退避領域303との間でヘッド102を移動するための長距離シーク動作は4回発生するだけである。これに対して、セグメント0〜Nのデータを退避するのに、従来技術のように常に専用退避領域303を使用するならば、4×(N+1)回の長距離シーク動作が発生する。よって本実施形態によれば、トラックグループ当たりの長距離シーク動作の回数を従来技術に比べて著しく減少することができ、データリフレッシュ効率を向上することができる。
ここで、トラックグループ当たりのトラック数が100、ディスク101の1記録面当たりのトラック数が16万であるとする。この場合、トラックグループ内の2番目のセグメントから最終のセグメントまでの各セグメントと先頭のセグメントとの間で発生するシーク動作での平均のヘッド移動距離は、長距離シーク動作での平均のヘッド移動距離の1/1600となる。
データリフレッシュ処理中にHDD100の電源が遮断した場合、CPU115が、次のような手順で復旧処理を実行することにより、電源遮断の検出とデータの復旧とが実現される。
(手順a)専用退避領域303に退避されているデータがバッファRAM111に読み出される。
(手順b1)専用退避領域303から読み出されたデータに有効なヘッダ及びフッタが付加されていない場合、当該読み出されたデータを用いて復旧すべきデータはないと判定される。この場合、復旧処理は終了する。
(手順b2)一方、専用退避領域303から読み出されたデータに有効なヘッダ及びフッタが付加されている場合、復旧されるべきデータがあると判定される。この場合、先頭のセグメント0のデータがバッファRAM111に読み出される。
(手順b2-1)セグメント0から読み出されたデータに有効なヘッダ及びフッタが付加されていない場合、セグメント0から読み出されたデータを用いて復旧すべきデータはないと判定される。この場合、専用退避領域303から読み出されたデータを用いて復旧すべきデータがあるとして、後述する手順cに進む。
(手順b2-2)一方、セグメント0から読み出されたデータに有効なヘッダ及びフッタが付加されている場合、セグメント0から読み出されたデータを用いて復旧すべきデータがあると判定される。この場合、セグメント0から読み出されたデータを該当するセグメントに書き込み、しかる後に当該セグメント0に退避されているデータに付加されているヘッダが無効化される。
(c)専用退避領域303から読み出されたデータをセグメント0に書き込み、しかる後に当該専用退避領域303に退避されているデータに付加されているヘッダが無効化される。
図4はトラックグループ毎のライト回数(データライト回数)を保持するライトカウントテーブル400のデータ構造例を示す。ライトカウントテーブル400は、例えば図1におけるRAM113の所定の領域に格納される。つまり、RAM113の所定の領域は、ライトカウントテーブル400を格納するライトカウント記憶モジュールとして用いられる。
図4に示されるライトカウントテーブル400の例では、説明の一般化のために、HDD100がm本のヘッド102を有すると共に、当該HDD100がn個のシリンダグループから構成される場合を想定している。この場合、ライトカウントテーブル400は、ヘッド(ヘッド番号)h、シリンダグループ(シリンダグループ番号)cを用いて表される全てのトラックグループの各々について、そのトラックグループのライト回数(データライト回数)W(h,c)(0≦h≦m−1,0≦c≦n−1)を保持している。トラックグループのライト回数とは、当該トラックグループにデータを書き込む動作が実行された回数である。W(h,c)はヘッド番号h及びシリンダグループ番号cで特定されるトラックグループのライト回数をカウントするライトカウンタとして用いられる。なお、図1に示されるHDD100の構成の場合、mは1である。
シリンダグループとは、予め定められた一定数のシリンダの集合であり、1シリンダグループ当たりのシリンダ数は、1トラックグループ当たりのトラック数と同じである。したがって、同一のシリンダグループ番号を持つトラックグループは、HDD100内に、ヘッド102の数mに一致する数だけ存在する。トラックグループは、シリンダグループ番号cとヘッド番号hとにより特定される。シリンダグループ番号cとヘッド番号hとで特定されるトラックグループ内のトラックへのデータの書き込み(ライトアクセス)が行われると、カウントテーブル400に保持されているライトカウンタ(ライト回数)W(h,c)が、書き込みが行われた回数だけインクリメントされる。
本実施形態では、ライトカウントテーブル400は、前述のようにRAM113に格納される。RAM113の内容はHDD100の電源の遮断により失われる。したがって、ライトカウントテーブル400の内容も電源遮断と共に失われる。このため本実施形態では、ライトカウントテーブル400を含む、RAM113内の予め定められた領域の内容は、必要に応じて(例えばHDD100の省電力状態への移行時に)、ディスク101の所定領域に保存(退避)される。このディスク101の所定領域に保存されたカウントテーブル400を含む内容は、HDD100の起動時(電源投入時)に読み出されて、RAM113内に復元される。
次に、トラックグループ単位のデータリフレッシュ処理が行われる図1のHDD100における全体的な動作について、図5のフローチャートを参照して説明する。
まず、HDD100の電源が投入され、CPU115の動作が開始されたものとする(ステップ501)。するとCPU115は、初期化・回復処理を行う(ステップ502)。即ちCPU115は、HDD100全体を対象とする周知の初期化処理を実行し、しかる後にデータリフレッシュ処理に関する回復処理を行う。この回復処理では、前回の動作時に、データリフレッシュ処理が中断した状態で電源が遮断されていないかが調べられる。もし電源が遮断されていれば、そのデータリフレッシュ処理を完了させるための制御が行われる。回復処理では、ディスク101の所定領域に保存されているライトカウントテーブル400が読み出されて、RAM113内に格納される。
初期化・回復処理が終了するとCPU115は、HDC110を介してホストシステム200からコマンドを受信できる状態になり、コマンド待ちループ(ステップ503〜507)に入る。
ステップ503においてホストシステム200からのコマンドの受信を確認すると、CPU115は、ステップ511に分岐することでコマンド待ちループを抜けて、ホストシステム200からのコマンドに応じた処理(コマンド実行処理)を実行する。
一方、コマンド待ちループにおけるステップ503で、コマンドを受信していないと判定されたものとする。この場合、アイドル時処理が行われる。また、ステップ511でコマンド実行処理が完了した後も、アイドル時処理が行われる。アイドル時処理は、データリフレッシュ処理を含む。本実施形態においてCPU115は、このデータリフレッシュ処理に進む前に、当該データリフレッシュ処理を行うべきかを判定する(ステップ504,505)。
ステップ504においてCPU115は、例えば、データリフレッシュ処理を行わずにホストシステム200からのコマンドを即座に実行する必要があるか、或いはデータリフレッシュ処理を回避すべき状況にあるかを総合的に判断する。コマンドを即座に実行する必要があるのは、例えば、ステップ511が実行された直後にホストシステム200からコマンドを受信した場合である。データリフレッシュ処理を回避すべき状況は、外部からHDD100に一定レベルを超える振動が加わった場合、HDD100の環境温度が当該HDD100の動作が保証される温度範囲から例えば高温側に外れた場合等、HDD100が悪条件下で用いられる場合である。
ステップ505においてCPU115は、ステップ504での総合的な判断結果から、データトラックリフレッシュ処理が実行可能かを判定する。データリフレッシュ処理が実行可能と判定した場合のみ、CPU115は、当該データリフレッシュ処理を行う(ステップ506)。このデータリフレッシュ処理の詳細については後述する。
ステップ506でのデータリフレッシュ処理が終了するか、ステップ505でデータリフレッシュ処理を行うべきでないと判定された場合には、CPU115はステップ507に進む。このステップ507においてCPU115は、HDD100を省電力状態に遷移させるための省電力処理を実行するかを判定し、実行する必要があるならば当該省電力処理を実行する。省電力処理は、ヘッド102をディスク101上からアンロードさせるためのアンロード処理、及びまたは、SPM103の回転を停止させる処理を含む。
ステップ507で省電力処理が実行されると、CPU115はステップ503に戻る。これに対し、ホストシステム200からのコマンドを即座に実行する必要がある場合には、ステップ507で省電力処理を実行すべきでないと判定される。この場合、CPU115は省電力処理を実行せずにステップ503に戻る。以後CPU115は、ステップ503を含む上述の処理を繰り返す。
次に、上記ステップ502で実行される初期化・回復処理の詳細な手順について、図6のフローチャートを参照して説明する。なお、図6のフローチャートでは、データリフレッシュとは関係しない手順は省略されている。
今、初期化・回復処理が開始されたものとする(ステップ601)。するとCPU115は、ディスク101に保存されているライトカウントテーブル400を読み出してRAM113の所定の領域に格納し、しかる後に専用退避領域303に退避されているデータをバッファRAM111に読み出す(ステップ602)。
前述したように、データリフレッシュ動作では、トラックグループ(例えばトラックグループ301)内のあるセグメントのデータが読み出されると、その読み出されたデータにヘッダ及びフッタが付加される。このヘッダ及びフッタが付加されたデータが、退避先(専用退避領域303またはトラックグループ301内の先頭のセグメント0)に退避され、しかる後に上記読み出されたデータが上記あるセグメントに書き戻される(再書き込みされる)。最後に退避先に退避されているデータを無効化するために、当該データに付加されているヘッダを無効化する(例えばクリアする)ことにより、データリフレッシュ動作が完了する。
したがって、データリフレッシュ動作が完了していれば、退避先に有効なデータ(つまり有効なヘッダ及びフッタが付加されたデータ)が残っていることはない。逆に、有効なヘッダ及びフッタが付加されているデータが退避先に残っているならば、それは、データリフレッシュ動作中に予期しない電源遮断が発生したことを意味する。この場合、退避先に退避されているデータが格納されているはずのセグメント(つまり退避元)へのデータの書き込み中に電源遮断が発生して、当該セグメントのデータが破壊されている可能性も高い。そこで、退避先に退避されているデータを退避元に確実に書き込む必要がある。
CPU115は、そのための判定をステップ603で行う。このステップ603における判定の対象は専用退避領域303からバッファRAM111に読み出されたデータに付加されているヘッダ及びフッタである。つまり、ステップ603においてCPU115は、専用退避領域303から読み出されたデータに有効なヘッダ及びフッタが付加されているかを判定する。
本実施形態において、ヘッダ及びフッタは同一内容の情報を含む。そこで本実施形態では、退避先に退避されているデータの無効化は、当該データに付加されているヘッダ及びフッタのうちのヘッダをクリアすることによって実現される。この場合、ヘッダ及びフッタが同一内容であるかを調べることにより、当該ヘッダ及びフッタが有効であるかを判定(検出)できる。
さて、専用退避領域303から読み出されたデータに有効なヘッダ及びフッタが付加されていないとCPU115が判定したものとする(ステップ603のNO)。この判定結果は、専用退避領域303を退避先とするデータリフレッシュ動作320(図3参照)が完了し、したがって、最も最近に行われたトラックグループ(例えばトラックグループ301)を対象とするデータリフレッシュ処理が完了していることを意味する。この場合、もう1つの退避先である先頭のセグメント0のチェックは不要である。そこでCPU115は、初期化・回復処理を終了するためにステップ610に分岐し、図5のフローチャートに示されるようにステップ502からステップ503に進む。
これに対し、専用退避領域303から読み出されたデータに有効なヘッダ及びフッタが付加されているとCPU115が判定したものとする(ステップ603のYES)。つまり、専用退避領域303から有効なヘッダ及びフッタが見つかったものとする。この判定結果は、最も最近に行われたトラックグループを対象とするデータリフレッシュ処理が完了していないことを意味する。なお、最も最近に行われたデータリフレッシュ処理の対象となるトラックグループは、後述するように有効なヘッダ及びフッタから特定可能である。ここでは、このトラックグループがトラックグループ301であるものとする。
専用退避領域303を退避先として使用するデータリフレッシュ動作320では、トラックグループ301を対象とするデータリフレッシュ処理の一番初めに先頭のセグメント0のデータを当該専用退避領域303に退避するための退避動作321が行われる。そして、トラックグループ301を対象とするデータリフレッシュ処理の一番最後に書き戻し動作323が行われる。この書き戻し動作323では、専用退避領域303に退避されているデータが先頭のセグメント0が書き戻されて、しかる後に専用退避領域303に退避されているデータに付加されているヘッダが無効化される。
したがって、ステップ603の判定がYESであることからは、CPU115は、トラックグループ301を対象とするデータリフレッシュ処理が完了していないことを検出するのみである。そこでCPU115は、専用退避領域303以外に退避先として用いられるトラックグループ301内の先頭のセグメント0に退避されているデータを読み出す(ステップ604)。そしてCPU115は、セグメント0から読み出されたデータに有効なヘッダ及びフッタが付加されているかを判定する(ステップ605)。
もし、セグメント0から読み出されたデータに有効なヘッダ及びフッタが付加されているならば(ステップ605のYES)、CPU115はステップ606に分岐する。このステップ606においてCPU115は、セグメント0から読み出されたデータからヘッダ及びフッタが除かれたデータを、退避元である該当セグメントに書き込む。次にCPU115は、セグメント0に退避されているデータに付加されているヘッダを無効化する(クリアする)(ステップ607)。これによりCPU115は、セグメント0を利用した回復処理を終了する。そしてCPU115は、専用退避領域303を利用した回復処理を行うために、ステップ607からステップ608に分岐する。
ここで、専用退避領域303に退避されているデータに付加されている有効なヘッダ及びフッタはそれぞれ、それが有効なものであることを示す予め定められた文字列と、セグメント0の先頭セクタのアドレス(例えば論理ブロックアドレスLBA)及びセグメント0の長さ(サイズ)等を示す属性情報とを保持する。このため、ステップ604でのデータ読み出しの対象となるセグメント0と、当該セグメント0が属するトラックグループ301とは、このヘッダ及びフッタ中の属性情報(論理ブロックアドレスLBA及び長さ)から特定可能である。
同様に、一時退避領域として用いられるセグメント0に退避されているデータに付加されている有効なヘッダ及びフッタはそれぞれ、前記予め定められた文字列と、退避元である該当セグメントの先頭セクタの論理ブロックアドレスLBA及び当該該当セグメントの長さ等を示す属性情報とを保持する。このため、該当セグメントは、このヘッダ及びフッタ中の属性情報(論理ブロックアドレスLBA及び長さ)から特定可能である。
一方、セグメント0から読み出されたデータに有効なヘッダ及びフッタが付加されていないならば(ステップ605のNO)、CPU115はステップ607,607をスキップしてステップ608に分岐する。ステップ605の判定がNOとなるのは、トラックグループ301内の最終のセグメントNを対象とするデータリフレッシュ動作322-Nが完了した直後に電源が遮断した場合である。この他に、先頭のセグメント0を除くセグメントi(i=1〜N)を対象とするデータリフレッシュ動作322-iにおいて、当該セグメントiのデータを退避先(つまりセグメント0)に退避する前(例えばセグメントiからデータを読み出している最中)に電源が遮断した場合にも、ステップ605の判定がNOとなる。
ステップ608においてCPU115は、ステップ602で専用退避領域303からバッファRAM111に読み出されたデータからヘッダ及びフッタを除いたデータを先頭のセグメント0に書き込む。次にCPU115は、専用退避領域内303に格納されているデータに付加されているヘッダをクリアすることにより、当該ヘッダを無効化する(ステップ609)。するとCPU115は、初期化・回復処理を終了するためにステップ610に分岐し、図5のフローチャートに示されるようにステップ502からステップ503に進む。
図6のフローチャートで示される初期化・回復処理が終了した状態では、最も最近に行われたデータリフレッシュ処理で退避先(一時退避領域)として使用されたセグメント0には、他のセグメントのデータは退避されていない。つまり、セグメント0のデータを含め、このデータリフレッシュ処理の対象となっていたトラックグループ(以下、該当トラックグループと称する)内の全てのセグメントのデータが正しくアクセス可能な状態になっている。
但し、初期化・回復処理の目的は、上記データリフレッシュ処理の最中に発生した予期しない電源遮断からのデータの回復にある。この初期化・回復処理の終了は、該当トラックグループのリフレッシュ完了を意味しない。その理由は、初期化・回復処理では、電源遮断の発生時にデータリフレッシュ動作の対象となっていたセグメントのデータと、当該データリフレッシュ動作のために退避先として使用された先頭のセグメント0のデータのみが回復されるだけのためである。つまり、初期化・回復処理では、電源遮断のために中断した残りのデータリフレッシュ処理は行われないためである。
そこで本実施形態では、該当トラックグループに対しては、図5に示される初期化・回復処理(ステップ502)の終了後に、当該該当トラックグループの先頭のセグメント0からデータリフレッシュ処理がやり直される。その理由は、後述するように、データリフレッシュ処理において、トラックグループ内の全てのセグメントに対するデータリフレッシュ動作が完了するまでは、ライトカウントテーブル400内の該当するカウンタをクリアする処理が行われないからである。このトラックグループは、初期化・回復処理の終了後に行われるライトカウントテーブル400の検索により、改めてリフレッシュ対象トラックグループとして検出される。
次に、上記ステップ511で実行されるコマンド実行処理の詳細な手順について、図7のフローチャートを参照して説明する。
コマンド実行処理は、前述したように、ホストシステム200からのコマンドの受信時に実行される。これにより、当該コマンドに応じた処理が行われる。コマンドの受信時に、あるトラックグループ、例えばトラックグループ301に対するデータリフレッシュ処理が実行中である場合、当該トラックグループ301内の先頭のセグメント0は、当該トラックグループ301内の他のセグメントのデータリフレッシュ動作のための退避先(一時退避領域)として使用されている。つまり、セグメント0には、トラックグループ301内の他のセグメントのデータが退避されている。セグメント0のデータは、専用退避領域303に退避されている。このため、受信されたコマンドが、上記先頭のセグメント0と少なくとも一部が重複する領域へのアクセスを要求している場合、セグメント0に代えて専用退避領域303にアクセスする必要がある。つまり、受信されたコマンドの指定するアクセス範囲を補正する必要がある。このアクセス範囲の補正は、コマンド実行処理において実行される。
コマンド実行処理が開始されると(ステップ701)、CPU115は、HDD100がリフレッシュ処理モードにあるかを判定する(ステップ702)。リフレッシュ処理モードでは、選択されたトラックグループ内の各セグメントを対象とするデータリフレッシュ動作が行われる。
もし、リフレッシュ処理モードにないならば(ステップ702のNO)、CPU115はステップ705に分岐してコマンド処理を行う。これに対し、リフレッシュ処理モードにあるならば(ステップ702のYES)、CPU115はステップ703に分岐する。このステップ703においてCPU115は、受信されたコマンドの指定するディスク101上のアクセス範囲の少なくとも一部が、現在実行中のデータリフレッシュ処理の対象となっているトラックグループの先頭のセグメント0と重複しているかを判定する。アクセス範囲は、受信されたコマンドの指定するアドレス(例えば論理ブロックアドレスLBA)及びサイズによって示される。CPU115は、ステップ703の判定結果に基づいて、アクセス範囲の補正が必要かを判定する。
もし、重複していないと判定された場合(ステップ703のNO)、CPU115はアクセス範囲の補正は不要であるとして、ステップ705に分岐する。これに対して重複していると判定された場合(ステップ703のYES)、CPU115はアクセス範囲を補正(ステップ704)。
ステップ704では、受信されたコマンドで指定されるアクセス範囲のうちの重複部分は専用退避領域303を指すように変更される。これにより、アクセス範囲のうちの重複部分については、当該重複部分ではなくて、専用退避領域303がアクセスされる。一方、それ以外の部分については、その部分が通常通りアクセスされる。このため、例えば一部が先頭のセグメント0と重複するようなアクセス範囲を指定するライトコマンドを受信した場合、退避先領域303へのデータの書き込みと、指定されたアクセス範囲の残りの部分へのデータ書き込みとが連続して行われる。
次に、上記ステップ506で実行されるデータリフレッシュ処理の詳細な手順について、図8及び図9のフローチャートを参照して説明する。
今、データリフレッシュ処理が開始されたものとする(ステップ801)。するとCPU115は、HDD100がリフレッシュ処理モードにあるかを判定する(ステップ802)。このステップ802の判定は、次の理由により実行される。まず、トラックグループ内の全てのセグメントをリフレッシュするには長時間を要する。そこでリフレッシュ処理モードの期間に、ホストシステム200から受信されたコマンドへの応答性を低下させないために、1セグメントずつデータリフレッシュ動作が行われる毎にデータリフレッシュ処理を一時中断できることが好ましい。ステップ802の判定は、このことに関連する。
HDD100がリフレッシュ処理モードに設定されるのは、ライトカウントテーブル400の検索(ステップ804,805)が完了した後である。このリフレッシュ処理モードは、該当するトラックグループ内の全セグメントのリフレッシュが完了しないと解除されない。このため、データリフレッシュ処理の開始後に、HDD100がリフレッシュ処理モードにあれば(ステップ802のYES)、リフレッシュ対象となるセグメントは必ず確定している。このため、ステップ802の判定がYESの場合、CPU115はステップ806に分岐して、リフレッシュ動作の実行に移る。
一方、HDD100がリフレッシュ処理モードにないならば(ステップ802のNO)、CPU115はライトカウントテーブル400を参照することにより、最大のライト回数を示すライトカウンタW(h,c)を検出する(ステップ803)。そしてCPU115は、検出されたライトカウンタW(h,c)の示すライト回数が閾値を超えているかによって、ヘッド番号h及びシリンダグループ番号cで特定されるトラックグループのリフレッシュが必要であるかを判定する(ステップ804)。つまりCPU115は、リフレッシュが必要なトラックグループが存在するかを判定する。
もし、リフレッシュが必要なトラックグループが存在する場合(ステップ804のYES)、CPU115は、当該トラックグループを対象とするデータリフレッシュを実行するために、HDD100をリフレッシュ処理モードに設定する(ステップ805)。このステップ805においてCPU115は、トラックグループ内の次にリフレッシュされるべきセグメントを指定するセグメントポインタを、当該トラックグループ内の先頭のセグメント0を指すように設定する。ここではセグメントポインタは、先頭のセグメント0を指す「0」に設定される。このセグメントポインタは、RAM113内の所定の領域に格納されている。次にCPU115は、ステップ806以降の処理を行う。
これに対し、リフレッシュが必要なトラックグループが存在しない場合(ステップ804のNO)、CPU115は、データリフレッシュ処理を行う必要はないので、当該データリフレッシュ処理を終了するためにステップ814に分岐し、図5のフローチャートに示されるようにステップ506からステップ507に進む。
前述したように、ステップ504,505でも、データリフレッシュ処理を行うべきかが判定される。但し、ステップ504,505では、ステップ803,804と異なって、ライトカウントテーブル400に基づく判定、即ちデータリフレッシュ処理を行う必要があるトラックグループが存在するかの判定は行わない。
なお、ステップ504,505が実行される際に、ライトカウントテーブル400を参照する必要が生じたならば、ステップ504,505で、ステップ803,804に相当する判定が行われてもよい。例えば、前述のデータリフレッシュ処理を回避すべき状況にあるかを、HDD100の動作環境のレベル、及びライトカウントテーブル400内の各ライトカウンタの示すライト回数の両者に基づき判断する場合がこれに当たる。例えば、動作環境のレベルが同じでも、トラックグループにデータを書き込む動作の回数(ライト回数)が少ない間は、当該トラックグループ内の各セグメントのデータの劣化は少ない。このような状態では、悪条件下でデータリフレッシュ処理を実行するよりも、それを見送った方がリスクは低い。これに対し、ライト回数が多くなると該当するトラックグループ内の各セグメントのデータの劣化は進む。このような状態では、多少の悪条件でもデータリフレッシュ処理を実行した方が逆にリスクは低くなる。ステップ504,505で、このような判定を行えば、当該ステップ504,505で、ライト回数が最も多いトラックグループが特定されると共に、そのライト回数が取得される。この場合、ステップ803,804で必ずしもこのような判定を再度行う必要はない。
さてCPU115は、ステップ806において、データリフレッシュ処理の対象となっているトラックグループ内の最終のセグメントNのリフレッシュが終了しているかを判定(または検出)する。この判定は、上述のセグメントポインタに基づいて行われる。具体的には、CPU115は、セグメントポインタが「N+1」に設定されているかによって、最終のセグメントNのリフレッシュが終了しているかを判定する。以降の説明では、トラックグループ301がデータリフレッシュ処理の対象となっているものとする。
もし、最終のセグメントNのリフレッシュが終了していない場合(ステップ806のNO)、CPU115はステップ807に分岐して、次にリフレッシュされるべきセグメントが、トラックグループ301内の先頭のセグメント0(第1のセグメント)であるか、他のセグメント1〜N(第2のセグメント)のうちの1つであるかを判定(検出)する。
まず、次にリフレッシュされるべきセグメントが、トラックグループ301内の先頭のセグメント0である場合(ステップ807のYES)、CPU115はステップ821に分岐する。即ち、トラックグループ301を対象とするデータリフレッシュ処理で最初のデータリフレッシュ動作320が実行される場合、CPU115はステップ821に分岐する。
前述したように、トラックグループ301内の先頭のセグメント0は、当該トラックグループ301内の2番目のセグメント1乃至最終のセグメントNの各セグメントのデータを一時退避する領域(一時退避領域)として使用される。そこでステップ821においてCPU115は、先頭のセグメント0が一時退避領域として使用される前に、当該先頭のセグメント0のデータをバッファRAM111に読み出す。次にCPU115は、読み出された先頭のセグメント0のデータの前後にそれぞれヘッダ及びフッタを付加して、このヘッダ及びフッタが付加されたデータを専用退避領域303に書き込む(ステップ822)。これにより、先頭のセグメント0のデータが専用退避領域303に退避される。ステップ821,822は、前述の退避動作321(図3参照)に相当する。
ステップ822が実行された状態では、先頭のセグメント0を対象とするデータリフレッシュ動作320は未完了である。しかし本実施形態では、CPU115は、次のセグメント1を対象とするデータリフレッシュ動作322-1のために、セグメントポインタが次にリフレッシュされるべきセグメント1を指すように、当該セグメントポインタを進める(ステップ812)。
一方、次にリフレッシュされるべきセグメントが、トラックグループ301内の2番目のセグメント1乃至最終のセグメントNの1つ(以下、セグメントiと称する)である場合(ステップ807のNO)、CPU115はステップ808に分岐する。ステップ808においてCPU115は、セグメントi(i=1〜N)のデータをバッファRAM111に読み出す。
次にCPU115は、読み出されたセグメントiのデータの前後にそれぞれヘッダ及びフッタを付加して、このヘッダ及びフッタが付加されたデータをトラックグループ301内の先頭のセグメント0に書き込む(ステップ809)。即ちCPU115は、セグメント0をセグメント1のデータの一時退避領域として利用して、セグメントiから読み出されてヘッダ及びフッタが付加されたデータを、当該セグメント0に退避する。
次にCPU115は、セグメントiからバッファRAM111に読み出されたデータを、当該セグメントiに書き込む(つまり書き戻す)ことにより、当該セグメントiをリフレッシュする(ステップ810)。次にCPU115は、先頭のセグメント0に退避されているデータに付加されているヘッダをクリア(つまり無効化)する(ステップ811)。これにより、セグメントiをリフレッシュするためのデータリフレッシュ動作320-iが完了する。そこでCPU115は、セグメントポインタが次にリフレッシュされるべきセグメント(i+1)を指すように、当該セグメントポインタを「i」から「i+1」に進める(ステップ812)。
さて、最終のセグメントNのリフレッシュが終了している場合(ステップ806のYES)、CPU115はステップ831に分岐する。最終のセグメントNのリフレッシュが終了した状態では、先頭のセグメント0のデータは前述のステップ821,822(データリフレッシュ動作320における退避動作321)により、専用退避領域303に退避されている。但し、データリフレッシュ動作320は完了しておらず、先頭のセグメント0はリフレッシュされていない。
そこでステップ831においてCPU115は、先頭のセグメント0をリフレッシュするために、専用退避領域303に退避されている先頭のセグメント0のデータをバッファRAM111に読み出す(ステップ831)。次にCPU115は、専用退避領域303からバッファRAM111に読み出されたデータを、先頭のセグメント0に書き込む(つまり書き戻す)ことにより、当該先頭のセグメント0をリフレッシュする(ステップ832)。次にCPU115は、専用退避領域303に退避されているデータに付加されているヘッダをクリア(つまり無効化)する(ステップ833)。
これにより、先頭のセグメント0をリフレッシュするためのデータリフレッシュ動作320が完了する。つまり、トラックグループ301内の全てのセグメント0〜Nのリフレッシュが完了する。そこでCPU115は、リフレッシュ処理が行われているトラックグループが存在しないことを示すために、リフレッシュ処理モードを解除する(ステップ834)。このステップ834は、ステップ702,802での判定を正しく行うために必要である。
次にCPU115は、ライトカウントテーブル400内のトラックグループ301(つまりリフレッシュ処理が完了したトラックグループ)に対応するライトカウンタをクリアする(ステップ835)。これにより、トラックグループ301に対応するライトカウンタの値は0となる。このステップ835の意義について以下に説明する。
ライトカウントテーブル400内の各ライトカウンタは、前述したように、対応するトラックグループにデータを書き込む動作が実行された回数(ライト回数)を保持する。ライト回数は対応するトラックグループ内のデータの劣化の程度と相関がある。このため、ライト回数は便宜的にデータ劣化の程度として扱われる。トラックグループを対象とするリフレッシュ処理が完了した直後は当該トラックグループにおけるデータの劣化はない。このことを、ライトカウントテーブル400内の対応するライトカウンタに反映させるために、ステップ835が実行される。
さてCPU115は、ステップ812を実行するとステップ813に分岐する。またCPU115は、ステップ835を実行した場合にもステップ813に分岐する。つまりCPU115は、リフレッシュ処理の対象となるトラックグループ内のいずれか1つのセグメントをリフレッシュし終えた場合、ステップ813に分岐する。
ステップ813においてCPU115は、リフレッシュ処理の中断要求があるかを判定する。ホストシステム200からのコマンドの受信は、リフレッシュ処理の中断要求が発行される条件の1つである。HDC110内のホストブロック123がホストシステム200からのコマンドを受信すると、HDD100は即座にビジー状態となり、同時に当該ビジー状態を表すビジーフラグがセットされる。そこでCPU115は、このフラグの状態を監視する。ビジーフラグは、データリフレッシュ処理の実行中であるかに関係なくセットされる。このため、ホストシステム200によって認識されるコマンドの応答時間は、実行中のデータリフレッシュ処理が完了するまでの時間と本来のコマンド実行時間との合計となる。もし、ホストシステム200からのコマンドの受信時に、データリフレッシュ処理が完了するまで当該コマンドの実行を待たせるならば、当該コマンドへの応答性の低下を招く。これを回避するために、上記ステップ813が実行される。
もし、リフレッシュ処理の中断要求があるならば(ステップ813のYES)、CPU115は速やかにデータリフレッシュ処理を中断させるためにステップ814に分岐し、図5のフローチャートに示されるようにステップ506からステップ507に進む。この場合、CPU115は速やかにステップ503に分岐して、受信されたコマンドのための処理(コマンド実行処理)を開始させるために、ステップ507においても、ステップ813と同様の処理を行う。
これに対し、リフレッシュ処理の中断要求がないならば(ステップ813のNO)、CPU115は再びステップ802に分岐してHDD100がリフレッシュ処理モードにあるかを判定する。ここで、トラックグループ内の全てのセグメントのリフレッシュが完了している状態では、ステップ834でリフレッシュ処理モードは解除されている。つまりHDD100はリフレッシュ処理モードにない(ステップ802のNO)。この場合、CPU115は前述したように、リフレッシュを必要とするトラックグループをライトカウントテーブル400に基づいて検索する(ステップ803,804)。もし、リフレッシュを必要とするトラックグループが存在しないならば(ステップ804のNO)、CPU115はステップ814に分岐してデータリフレッシュ処理を終了する。このように、リフレッシュ処理の中断要求がないならば(ステップ813のNO)、データリフレッシュ処理を終了するのは、それを必要とするトラックグループがなくなった場合(ステップ804のNO)のみである。
一方、トラックグループ内の先頭のセグメント0を除くセグメント1乃至Nの1つのリフレッシュが完了した状態では、リフレッシュ処理モードは解除されていない。つまりHDD100はリフレッシュ処理モードにある(ステップ802のYES)。この場合、CPU115はステップ806に分岐する。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
100…磁気ディスクドライブ(HDD)、101…ディスク、102…ヘッド、111…バッファRAM、113…RAM、114…フラッシュROM、115…CPU(コントローラ)、201…トラック、301…トラックグループ、302…システム領域、303…専用退避領域、400…ライトカウントテーブル、320,322-1〜322-N…データリフレッシュ動作、321…退避動作、323…書き戻し動作。

Claims (15)

  1. ディスクを備えた磁気ディスクドライブにおいて、前記ディスクに格納されているデータをリフレッシュするためのデータリフレッシュ方法であって、
    前記ディスク上の複数のトラックが配置されている領域を区分する第1のセグメント及び当該第1のセグメントに後続する複数の第2のセグメントのうちの次にリフレッシュされるべきセグメントが、前記第2のセグメントの1つであることを検出するステップと、
    次にリフレッシュされるべきセグメントが前記複数の第2のセグメントの前記1つである場合、前記複数の第2のセグメントの前記1つに格納されているデータを前記第1のセグメントに退避するステップと
    を具備することを特徴とするデータリフレッシュ方法。
  2. 前記複数の第2のセグメントをリフレッシュする前に、前記第1のセグメントに格納されているデータを前記第1のセグメント及び前記複数の第2のセグメントとは別の前記ディスク上の特定の退避領域に退避するステップを更に具備することを特徴とする請求項1記載のデータリフレッシュ方法。
  3. 前記複数の第2のセグメントのリフレッシュが全て完了したことを検出するステップと、
    前記複数の第2のセグメントのリフレッシュが全て完了したことを検出した後、前記第1のセグメントに格納されているデータをリフレッシュするために、前記特定の退避領域に退避されているデータを前記第1のセグメントに書き戻すステップと
    を更に具備することを特徴とする請求項2記載のデータリフレッシュ方法。
  4. 前記複数の第2のセグメントの前記1つに格納されているデータを退避するステップは、前記複数の第2のセグメントの前記1つに格納されているデータを読み出すステップと、前記複数の第2のセグメントの前記1つから読み出されたデータの前後に、当該データが有効であることを示すヘッダ及びフッタを付加するステップとを含み、
    前記第1のセグメントのサイズは、前記複数の第2のセグメントの各々よりも前記ヘッダ及びフッタに対応するサイズだけ大きい
    ことを特徴とする請求項3記載のデータリフレッシュ方法。
  5. 前記複数の第2のセグメントの前記1つから読み出されて前記ヘッダ及びフッタが付加されたデータが前記第1のセグメントに退避された後、前記複数の第2のセグメントの前記1つに格納されているデータをリフレッシュするために、前記複数の第2のセグメントの前記1つから読み出されたデータを前記複数の第2のセグメントの前記1つに書き戻すステップと、
    前記複数の第2のセグメントの前記1つから読み出されたデータが前記複数の第2のセグメントの前記1つに書き戻された後、前記第1のセグメントに退避されているデータに付加されている前記ヘッダを無効化するステップと
    を更に具備することを特徴とする請求項4記載のデータリフレッシュ方法。
  6. 前記第1のセグメントに格納されているデータを退避するステップは、前記第1のセグメントに格納されているデータを読み出すステップと、前記第1のセグメントから読み出されたデータの前後に、当該データが有効であることを示すヘッダ及びフッタを付加するステップとを含み、
    前記特定の退避領域のサイズは、前記第1のセグメントよりも前記ヘッダ及び前記フッタに対応するサイズだけ大きい
    ことを特徴とする請求項5記載のデータリフレッシュ方法。
  7. 前記特定の退避領域に退避されているデータが前記第1のセグメントに書き戻された後、前記特定の退避領域に退避されているデータに付加されている前記ヘッダを無効化するステップと
    を更に具備することを特徴とする請求項6記載のデータリフレッシュ方法。
  8. 前記特定の退避領域に退避されているデータに付加されている前記ヘッダ及びフッタと、前記第1のセグメントに退避されているデータに付加されている前記ヘッダ及びフッタとに基づき、リフレッシュ動作中に前記磁気ディスクドライブの電源が遮断したことを検出するステップを更に具備することを特徴とする請求項7記載のデータリフレッシュ方法。
  9. 前記特定の退避領域に退避されているデータ及び前記第1のセグメントに退避されているデータの各々に、有効なヘッダ及びフッタが付加されている場合、前記第1のセグメントに退避されているデータを、前記複数の第2のセグメントのうちの対応する1つに書き戻すステップと、
    前記第1のセグメントに退避されているデータが前記複数の第2のセグメントのうちの前記対応する1つに書き戻された後、前記第1のセグメントに退避されているデータに付加されている前記ヘッダを無効化するステップと
    を更に具備することを特徴とする請求項8記載のデータリフレッシュ方法。
  10. 前記第1のセグメントに退避されるデータに付加される前記有効なヘッダ及びフッタは、当該ヘッダ及びフッタが有効であることを示す文字列と、当該データが格納されている複数の第2のセグメントの1つを指定する属性情報とを含み、
    前記複数の第2のセグメントのうちの前記対応する1つは、前記第1のセグメントに退避されているデータに付加された前記有効なヘッダ及びフッタに含まれている前記属性情報に基づいて特定される
    ことを特徴とする請求項9記載のデータリフレッシュ方法。
  11. 少なくとも、前記特定の退避領域に退避されているデータに有効なヘッダ及びフッタが付加されている場合、前記特定の退避領域に退避されているデータを前記第1のセグメントに書き戻すステップと
    前記特定の退避領域に退避されているデータが前記第1のセグメントに書き戻された後、前記特定の退避領域に退避されているデータに付加されている前記ヘッダを無効化するステップと
    を更に具備することを特徴とする請求項10記載のデータリフレッシュ方法。
  12. 前記ディスク上のトラックの集合は、前記第1のセグメント及び前記複数の第2のセグメントが属するトラックグループを含む複数のトラックグループに区分して管理され、
    前記複数のトラックグループの各々に対応する前記ディスク上の領域は第1のセグメント及び複数の第2のセグメントに区分され、
    前記複数のトラックグループの各々について、前記第1のセグメント及び前記複数の第2のセグメントがリフレッシュされる
    ことを特徴とする請求項3記載のデータリフレッシュ方法。
  13. 複数のトラックが配置されている領域が第1のセグメントと前記第1のセグメントに後続する複数の第2のセグメントとに区分されたディスクと、
    前記第1のセグメント及び前記複数の第2のセグメントの各セグメント毎にデータのリフレッシュを制御するコントローラであって、前記複数の第2のセグメントの各々に格納されているデータのリフレッシュに必要な退避領域として前記第1のセグメントを利用するコントローラと
    を具備することを特徴とする磁気ディスクドライブ。
  14. 前記ディスク上には、前記第1のセグメント及び前記複数の第2のセグメントとは別の特定の退避領域が配置されており、
    前記コントローラは、前記複数の第2のセグメントの各々に格納されているデータをリフレッシュする前に、前記第1のセグメントに格納されているデータのリフレッシュに必要な退避領域として前記特定の退避領域を利用する
    ことを特徴とする請求項13記載の磁気ディスクドライブ。
  15. 前記請求項14に記載の磁気ディスクドライブと、
    前記磁気ディスクドライブを記憶装置として利用するホストと
    を具備することを特徴とする電子機器。
JP2009173501A 2009-07-24 2009-07-24 磁気ディスクドライブにおけるデータリフレッシュ方法 Expired - Fee Related JP4660613B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009173501A JP4660613B2 (ja) 2009-07-24 2009-07-24 磁気ディスクドライブにおけるデータリフレッシュ方法
US12/824,109 US8154814B2 (en) 2009-07-24 2010-06-25 Method of refreshing data stored on a disk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009173501A JP4660613B2 (ja) 2009-07-24 2009-07-24 磁気ディスクドライブにおけるデータリフレッシュ方法

Publications (2)

Publication Number Publication Date
JP2011028810A true JP2011028810A (ja) 2011-02-10
JP4660613B2 JP4660613B2 (ja) 2011-03-30

Family

ID=43497120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009173501A Expired - Fee Related JP4660613B2 (ja) 2009-07-24 2009-07-24 磁気ディスクドライブにおけるデータリフレッシュ方法

Country Status (2)

Country Link
US (1) US8154814B2 (ja)
JP (1) JP4660613B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9165568B2 (en) 2014-03-04 2015-10-20 Kabushiki Kaisha Tosbhia Hard disk drive and data refresh method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
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 株式会社東芝 磁気ディスク装置及び同装置におけるリフレッシュ方法
US8049982B1 (en) * 2010-07-30 2011-11-01 Lsi Corporation Methods and apparatus for measuring servo address mark distance in a read channel using selective fine phase estimate
JP2013157047A (ja) * 2012-01-27 2013-08-15 Toshiba Corp 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002100126A (ja) * 2000-09-18 2002-04-05 Internatl Business Mach Corp <Ibm> 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置
JP2004273060A (ja) * 2003-03-11 2004-09-30 Hitachi Ltd 磁気ディスク装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193072A (en) * 1990-12-21 1993-03-09 Vlsi Technology, Inc. Hidden refresh of a dynamic random access memory
US6567091B2 (en) * 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
JP2002208274A (ja) * 2000-11-10 2002-07-26 Hitachi Ltd 半導体記憶装置
US8027470B2 (en) * 2002-01-02 2011-09-27 Sony Corporation Video slice and active region based multiple partial encryption
US7382673B2 (en) * 2005-06-15 2008-06-03 Infineon Technologies Ag Memory having parity generation circuit
JP5002306B2 (ja) 2007-04-03 2012-08-15 株式会社日立製作所 ハードディスク装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002100126A (ja) * 2000-09-18 2002-04-05 Internatl Business Mach Corp <Ibm> 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置
JP2004273060A (ja) * 2003-03-11 2004-09-30 Hitachi Ltd 磁気ディスク装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9165568B2 (en) 2014-03-04 2015-10-20 Kabushiki Kaisha Tosbhia Hard disk drive and data refresh method

Also Published As

Publication number Publication date
US8154814B2 (en) 2012-04-10
JP4660613B2 (ja) 2011-03-30
US20110019302A1 (en) 2011-01-27

Similar Documents

Publication Publication Date Title
JP4469906B2 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
US8667248B1 (en) Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8429343B1 (en) Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk
US8612798B1 (en) Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails
JP4886877B2 (ja) 記録媒体制御装置、及びその方法
US8896953B2 (en) Disk storage apparatus and method for shingled magnetic recording
JP4660613B2 (ja) 磁気ディスクドライブにおけるデータリフレッシュ方法
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
JP4648461B2 (ja) 磁気ディスク装置及び同装置における暗号鍵更新方法
US9070378B2 (en) Partial write system
JP2012160232A (ja) 情報記録装置及び情報記録方法
JP2009146500A (ja) ディスク記憶装置及びデータ書き込み方法
JP4504450B1 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
JP2011253578A (ja) 磁気ディスク装置及びデータブロックの書き換え方法
JP2013157068A (ja) データ記憶制御装置、データ記憶装置、及びデータ記憶方法
JP5787839B2 (ja) ディスク記憶装置及びデータ保護方法
US9105297B2 (en) Information recording device and data recovery method
JP2008140459A (ja) ハイブリッドディスク記憶装置及び同装置に適用されるディスクライト方法
JP4869416B2 (ja) 磁気ディスク装置及び同装置におけるデータリフレッシュ方法
JP4919983B2 (ja) データ記憶装置及びデータ記憶装置におけるデータ管理方法
US10867633B1 (en) Reduced adjacent track erasure from write retry
US9268649B1 (en) Disk drive with recent write streams list for data refresh determination
US20160170891A1 (en) Disk apparatus and control method
JP2011129213A (ja) 磁気ディスク・ドライブ及びそのリフレッシュ・ライト方法
US9053746B2 (en) Disk device and data recording method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101105

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: 20101130

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: 20101228

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees