JP4869416B2 - Magnetic disk device and data refresh method in the same - Google Patents
Magnetic disk device and data refresh method in the same Download PDFInfo
- Publication number
- JP4869416B2 JP4869416B2 JP2010040941A JP2010040941A JP4869416B2 JP 4869416 B2 JP4869416 B2 JP 4869416B2 JP 2010040941 A JP2010040941 A JP 2010040941A JP 2010040941 A JP2010040941 A JP 2010040941A JP 4869416 B2 JP4869416 B2 JP 4869416B2
- Authority
- JP
- Japan
- Prior art keywords
- track
- data
- refresh
- group
- spare
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
本発明は、ディスクに書き込まれているデータをリフレッシュするのに好適な磁気ディスク装置及び同装置におけるデータリフレッシュ方法に関する。 The present invention relates to a magnetic disk apparatus suitable for refreshing data written on a disk and a data refresh method in the apparatus.
近年、磁気ディスク装置に搭載されるディスク(磁気ディスク)の面(記録面)当たりの記憶容量の大容量化が図られている。ディスクの面当たりの記憶容量を増加させるためには、線記録密度及び/またはトラック密度を上げればよい。線記録密度を上げるには、1トラックあたりのセクタ数を増やせばよい。トラック密度を上げるには、つまりディスクの面内により多くのトラックを確保するためには、トラック幅を狭くして隣接するトラック間の距離(つまりトラックピッチ)を短くすればよい。 In recent years, the storage capacity per surface (recording surface) of a disk (magnetic disk) mounted on a magnetic disk device has been increased. In order to increase the storage capacity per surface of the disk, the linear recording density and / or the track density may be increased. In order to increase the linear recording density, the number of sectors per track may be increased. In order to increase the track density, that is, in order to secure more tracks in the plane of the disk, the distance between adjacent tracks (that is, the track pitch) may be shortened by narrowing the track width.
ここで、トラック密度を上げるために、トラックピッチを短くするものとする。一般には、ヘッド(磁気ヘッド)によるデータの書き込みにより、データ書き込み先に隣接するトラック(隣接トラック)のデータを劣化させない程度までしか、トラックピッチを短くすることはできない。各トラックはヘッド(ヘッドに含まれる書き込み素子)の幅と同じ幅を持つ。しかし、データ書き込み時にヘッドによって生成される磁界(記録磁界)の分布の幅は必ずしも当該ヘッドの幅に一致せず、その周辺にも磁界が加わる(漏れる)状態となる。このため、トラックピッチを短くしすぎると、ディスク上のトラックにヘッドによりデータを書き込む際に、当該ヘッドからの漏れ磁界が隣接トラックに影響を与える度合いが高くなる。 Here, it is assumed that the track pitch is shortened in order to increase the track density. In general, the track pitch can be shortened only to such an extent that the data of the track (adjacent track) adjacent to the data write destination is not deteriorated by the data writing by the head (magnetic head). Each track has the same width as the width of the head (the write element included in the head). However, the width of the distribution of the magnetic field (recording magnetic field) generated by the head at the time of data writing does not necessarily match the width of the head, and the magnetic field is applied (leaks) to the periphery of the head. For this reason, if the track pitch is made too short, the degree to which the leakage magnetic field from the head affects the adjacent track becomes high when data is written to the track on the disk by the head.
しかし、トラックピッチを限界を超えて短くした場合でも、その程度が小さければ1度乃至数度のデータ書き込み動作によって隣接トラックのデータを即座に破壊してしまうことはない。つまり、データ書き込み動作の繰り返しにより、隣接トラックのデータが、その回数に応じて次第に劣化するのが一般的である。 However, even when the track pitch is shortened beyond the limit, if the degree is small, the data in the adjacent track is not immediately destroyed by the data write operation once to several degrees. That is, generally, the data of the adjacent track gradually deteriorates according to the number of times by repeating the data writing operation.
そこで近年の磁気ディスク装置では、データ書き込み動作による隣接トラックのデータ劣化を回復するためのデータリフレッシュ(書き直し)が必須になりつつある。例えば、特許文献1には、データライト回数が規定回数に達したトラックの隣接トラックのデータをリフレッシュする技術(先行技術)について記載されている。
Therefore, in recent magnetic disk devices, data refresh (rewriting) for recovering data deterioration of adjacent tracks due to data write operation is becoming essential. For example,
上記先行技術によれば、データライト回数が規定回数に達したトラックの隣接トラックのデータが読み出されてRAMに一時記憶される。そして、このRAMに一時記憶された隣接トラックのデータが当該隣接トラックに再度書き込まれる。つまり、データリフレッシュの対象となるトラックのデータが、当該トラックから読み出されたデータで書き直される。このようなデータ書き直し処理、つまりデータリフレッシュ処理により、データの劣化が回復される。したがって、データリフレッシュ処理を適用することにより、トラックピッチを、従来の限界を超えて短くすることが可能となる。 According to the above prior art, the data of the track adjacent to the track whose number of data write has reached the specified number is read and temporarily stored in the RAM. Then, the data of the adjacent track temporarily stored in the RAM is rewritten to the adjacent track. That is, the data of the track to be refreshed is rewritten with the data read from the track. Data deterioration is recovered by such data rewriting processing, that is, data refresh processing. Therefore, by applying the data refresh process, the track pitch can be shortened beyond the conventional limit.
しかしながら、上記先行技術では、データリフレッシュ処理の最中に磁気ディスク装置の電源が遮断すると、リフレッシュされるべきデータが失われる可能性がある。更に具体的に述べるならば、データリフレッシュの対象となるトラック(以下、ターゲットトラックと称する)から読み出されたデータを当該トラックに再度書き込むための動作(データ書き込み動作)の最中に磁気ディスク装置の電源が遮断すると、当該データが失われる可能性がある。この理由について説明する。 However, in the above prior art, there is a possibility that data to be refreshed may be lost if the power of the magnetic disk device is cut off during the data refresh process. More specifically, a magnetic disk device during an operation (data write operation) for rewriting data read from a track to be refreshed (hereinafter referred to as a target track) to the track. If the power supply of the PC is cut off, the data may be lost. The reason for this will be described.
まず、ターゲットトラックへの再度のデータ書き込み動作の最中に電源が遮断したものとする。この場合、ターゲットトラックへのデータ書き込み動作が未完了となることから、当該トラックのデータが破壊される。このとき、RAMに一時記憶されているターゲットトラックのデータは消失する。このため、電源が復帰しても、未完了となったデータ書き込み動作を再度行うことができず、ターゲットトラックのデータは失われる。 First, it is assumed that the power supply is cut off during the data write operation to the target track again. In this case, since the data writing operation to the target track is not completed, the data on the track is destroyed. At this time, the data of the target track temporarily stored in the RAM is lost. For this reason, even if the power is restored, the data write operation which has not been completed cannot be performed again, and the data of the target track is lost.
このような不具合を防止するために、上記RAMに代えて、ディスク上の特定のトラックを用いることが考えられる。つまり、ディスク上の特定のトラックを、ターゲットトラックのデータを一時退避するための一時退避用のトラックとして用いることが考えられる。この場合、ターゲットトラックから読み出されたデータが、ディスク上の上記一時退避用のトラックに書き込まれる(一時退避される)。次に、上記読み出されたデータがターゲットトラック(つまり、当該データが書き込まれていたトラック)に再度書き込まれる。もし、ターゲットトラックへの再度のデータ書き込み中に電源が遮断しても、一時退避用のトラックに書き込まれた(退避された)データは失われない。このため、一時退避用のトラックに書き込まれたデータを用いることにより、未完了となったデータ書き込み動作を再度行うことができる。 In order to prevent such a problem, it is conceivable to use a specific track on the disk instead of the RAM. In other words, it is conceivable to use a specific track on the disk as a temporary saving track for temporarily saving the data of the target track. In this case, the data read from the target track is written (temporarily saved) on the temporary save track on the disk. Next, the read data is rewritten on the target track (that is, the track on which the data has been written). Even if the power is cut off during the data writing to the target track again, the data written (saved) on the temporary saving track is not lost. For this reason, the data writing operation which has not been completed can be performed again by using the data written in the temporary saving track.
しかし、RAMに代えてディスク上の一時退避用のトラックを用いることによって、ターゲットトラックのデータをリフレッシュするには、ターゲットトラックから読み出されたデータを当該ターゲットトラックに再度書き込む前に、当該データを上記一時退避用のトラックに書き込む(一時退避する)ための書き込み動作が必要となる。この書き込み動作は、RAMにデータを書き込む場合に比べて長時間を要するため、データリフレッシュ処理の効率が低下する。更に、ヘッドをターゲットトラックから一時退避用のトラックに移動させるためのシーク動作、及び当該ヘッドを一時退避用のトラックからターゲットトラックに移動させるためのシーク動作をも必要とする。この2回のシーク動作により、データリフレッシュ処理の効率が一層低下する。 However, in order to refresh the data of the target track by using a temporary saving track on the disk instead of the RAM, the data read from the target track is rewritten before the data read from the target track is rewritten. A write operation for writing (temporarily saving) to the temporary saving track is required. Since this writing operation takes a long time compared to the case of writing data to the RAM, the efficiency of the data refresh process is lowered. Furthermore, a seek operation for moving the head from the target track to the temporary retreat track and a seek operation for moving the head from the temporary retreat track to the target track are also required. This two seek operations further reduce the efficiency of the data refresh process.
このように、RAMに代えてディスク上の一時退避用のトラックを用いることにより、電源遮断に対処できるものの、データリフレッシュ処理の効率が低下するおそれがある。 As described above, by using a temporary saving track on the disk instead of the RAM, it is possible to cope with the power interruption, but there is a possibility that the efficiency of the data refreshing process is lowered.
本発明は上記事情を考慮してなされたものでその目的は、電源遮断に対処しつつ、データリフレッシュ処理の効率が低下するのを防止できる磁気ディスク装置及び同装置におけるデータリフレッシュ方法を提供することにある。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a magnetic disk device and a data refresh method in the device capable of preventing the efficiency of data refresh processing from being lowered while coping with power interruption. It is in.
本発明の1つの態様によれば、データリフレッシュを行う磁気ディスク装置が提供される。この磁気ディスク装置は、データリフレッシュに用いられる予備データトラックと複数のデータトラックを備えるデータトラックグループが複数設けられる磁気ディスクと、前記複数のデータトラックグループのいずれかのデータトラックグループ内の前記複数のデータトラックをリフレッシュする際に、前記データトラックグループ内で前記予備データトラックに隣接するデータトラックに記録されているデータが前記予備データトラックに移動され、これに応じて前記隣接データトラックが次の予備データトラックとなる切り替えが繰り返されて、前記データトラックグループ内で予備データトラックが順に移動されるように制御するコントローラとを具備する。 According to one aspect of the present invention, a magnetic disk device that performs data refresh is provided. The magnetic disk drive, a magnetic disk Lud over data track group comprising a preliminary data tracks and a plurality of data tracks that are used in the data refreshing is plurality, any data track group of the plurality of data tracks Group when refreshing the plurality of data tracks of the inner, data recorded in the data track adjacent to the front Ki予 Bei data track in the data track group is moved prior to the Ki予 Bei data track, according to this It said adjacent data tracks Te are repeated switching of the next preliminary data tracks, preliminary data track in the data track group; and a controller for controlling the so that is moved in order.
本発明によれば、リフレッシュされるべきトラックのデータを一時退避のためにディスク(一時退避用のトラック)に書き込む動作が不要となるため、一時退避用のトラックを用いる場合に比べて、ディスクへのデータ書き込みの動作を1回少なくでき、電源遮断に対処しつつ、リフレッシュ処理の効率が低下するのを防止できる。 According to the present invention, since the operation of writing the data of the track to be refreshed to the disk (temporary saving track) for temporary saving becomes unnecessary, it is possible to transfer the data to the disk as compared with the case of using the temporary saving track. The number of data write operations can be reduced once, and the efficiency of the refresh process can be prevented from being lowered while coping with power interruption.
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る磁気ディスク装置(HDD)100の構成を示すブロック図である。図1に示すHDD100は、ホストシステム200からの要求に応じてディスク(磁気ディスク)101の記録面上にデータを書き込み、あるいは当該記録面からデータを読み出すための記憶装置である。ホストシステム200は、HDD100を記憶装置として利用するパーソナルコンピュータのような電子機器である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a magnetic disk device (HDD) 100 according to an embodiment of the present invention. An
ディスク101はスピンドルモータ(SPM)3に固定されており、SPM103が駆動されることにより一定の速度で回転する。ディスク101の例えば一方のディスク面は、データが磁気記録される記録面をなしている。ヘッド(磁気ヘッド)102はディスク101の記録面に対応して配置される。ヘッド102はアクチュエータ105の一端に固定されており、アクチュエータ105の他端はボイスコイルモータ(VCM)104に固定されている。ヘッド102は、VCM104が駆動されることにより、VCM104の軸を中心とした円弧軌道のうちディスク101の面に重なる範囲を移動する。
The
図1の構成では、単一枚のディスク101を備えたHDD100を想定している。しかし、複数のディスク101がある間隙をもった状態でSPM103に固定された構成であっても構わない。この場合、複数のアクチュエータ105が、複数のディスク101の間隙に合わせて重なった状態でVCM104に固定される。複数のアクチュエータ105の一端にはそれぞれヘッド102が固定されている。したがってSPM103が駆動されると、全てのディスク101は同時に回転し、VCM104が駆動されると、全てのヘッド102は同時に移動する。また、図1の構成では、ディスク101の一方の面が記録面をなしている。しかし、ディスク101の両面がいずれも記録面をなし、両記録面にそれぞれ対応してヘッド102が配置されても構わない。
In the configuration of FIG. 1, an
図2はディスク101のトラック配置を含むフォーマットを示す概念図である。
図2において、ディスク101の記録面には、複数のトラック201が同心円状に配置されている。ホストシステム200からHDD100が受け取ったデータは、当該ホストシステム200によって指定されたアドレスに応じ、複数のトラック201の少なくとも1つに記録される。
FIG. 2 is a conceptual diagram showing a format including the track arrangement of the
In FIG. 2, a plurality of tracks 201 are concentrically arranged on the recording surface of the
また、ディスク101の複数のトラック201上にはサーボ領域202及びデータ領域203が交互に且つ等間隔に配置されている。サーボ領域202には、ヘッド102の位置決めに用いられるサーボ信号が記録されている。データ領域203は、ホストシステム200から転送されるデータを記録するのに用いられる。
再び図1を参照すると、CPU115はHDD100の主コントローラとして機能する。CPU115はモータドライバ106を介してSPM103の起動・停止及び回転速度維持のための制御を行う。CPU115はまたモータドライバ106を介してVCM104を駆動制御することで、ヘッド102を目標とするトラックに移動させて、当該トラックの目標とする範囲内に整定するための制御を行う。ヘッド102を目標とするトラックに移動させる制御はシーク制御と呼ばれ、ヘッド102を目標とするトラックの目標とする範囲内に整定する制御はヘッド位置決め制御と呼ばれる。CPU115は更に、ディスク101のトラック201に書き込まれているデータをリフレッシュするための制御(データリフレッシュ処理)を行う。
Referring again to FIG. 1, the
ヘッド102の位置決めはSPM103の起動後の定常回転状態で行われる。上述のように、サーボ領域202(図2参照)はディスク101の円周方向に等間隔に配置されている。このため、ヘッド102によってディスク101から読み出され、ヘッドIC107で増幅されたアナログ信号中には、サーボ領域202に記録されているサーボ信号が時間的に等間隔に現れることになる。リード・ライトIC108(リード・ライトIC108に含まれているサーボブロック121)とゲートアレイ109とは、このことを利用して上記アナログ信号を処理することにより、ヘッド102の位置決めのための信号を生成する。CPU115はこの信号をもとにモータドライバ106を制御することにより、当該モータドライバ106からVCM104に、ヘッド102の位置決めのための電流(VCM電流)をリアルタイムで供給させる。
Positioning of the
CPU115は、上述のようにモータドライバ106を介してSPM103及びVCM104を制御する一方で、他のICの制御及びコマンド処理など、HDD全体を制御する。CPU115はCPUバス112に接続されている。
The
CPUバス112には、リード・ライトIC108、ゲートアレイ109、ディスクコントローラ(HDC)110、RAM113及びフラッシュROM114が接続されている。フラッシュROM114は、書き換え可能な不揮発性メモリである。ここでは、フラッシュROM114の書き換えは、CPU115からの制御により行われる。フラッシュROM114には、CPU115が実行すべきプログラムが予め格納されている。CPU115による上述の制御は、当該CPU115が上記プログラムを実行することにより実現される。フラッシュROM114の記憶領域の一部は、後述するトラックシフトテーブル500(図5参照)を格納するのに用いられる。RAM113は、例えばCPU115が使用する種々の変数を格納するのに用いられる。またRAM113の記憶領域の一部は、CPU115のワーク領域として用いられる。
A read /
リード・ライトIC108は、サーボブロック121とリード・ライトブロック122とを有する。サーボブロック121は、サーボ信号の抽出を含む、ヘッド102の位置決めに必要な信号処理を行う。リード・ライトブロック122は、データの読み出し・書き込みのための信号処理を行う。ゲートアレイ109は、サーボブロック121によるサーボ信号の抽出のための信号を含む、制御用の諸信号を生成する。
The read /
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から読み出されたデータ(リードデータ)を一時格納するためのリードバッファとして用いられる。
In addition to the CPU bus 112, the
リード・ライトIC108、ゲートアレイ109、及びHDC110は、それぞれ制御用レジスタを有する。これらの制御用レジスタは、それぞれCPU115のメモリ空間の一部に割り当てられており、CPU115はこの一部の領域に対してアクセスすることで、制御用レジスタを介してリード・ライトIC108、ゲートアレイ109、またはHDC110を制御する。
The read /
図1のHDD100において、データの読み出しは次のように行われる。まずヘッド102によってディスク101から読み出された信号(アナログ信号)は、ヘッドIC107によって増幅される。増幅されたアナログ信号はリード・ライトIC108によってサーボ信号とデータ信号とに分離される。データ信号はリード・ライトIC108内のリード・ライトブロック122で復号化された後HDC110に送られる。HDC110内のリード・ライトブロック124は、復号化されたデータ信号をゲートアレイ109からの制御用の信号に従って処理することにより、ホストシステム200に転送すべきデータを生成する。ここでの処理は、後述するECCデータに基づくデータの誤りの検出と誤りの訂正とを含む。生成されたデータは、HDC110内のバッファブロック125によって一旦バッファRAM111に格納されてから、当該HDC110内のホストブロック123によってホストシステム200に転送される。
In the
図1のHDD100において、データの書き込みは次のように行われる。ホストシステム200からHDC110に転送されたデータは、当該HDC110内のホストブロック123で受信された後、当該HDC110内のバッファブロック125によって一旦バッファRAM111に格納される。バッファRAM111に格納されたデータは、バッファブロック125によって取り出された後、ゲートアレイ109からの制御用の信号に従ってHDC110内のリード・ライトブロック124によってリード・ライトIC108へ送られる。リード・ライトIC108に送られたデータは、当該リード・ライトIC108内のリード・ライトブロック122によって符号化される。符号化されたデータはヘッドIC107を介してヘッド102に送られて、当該ヘッド102によってディスク101に書き込まれる。上述のデータの読み出し/書き込みは、CPU115の制御の下で行われる。
In the
次に、図1のHDD100で実行されるデータリフレッシュ処理の概要について説明する。
発明が解決しようとする課題の欄で述べたように、データリフレッシュ中の電源遮断対策のために、データリフレッシュの対象となるトラック(ターゲットトラック)のデータをディスク上の特定のトラック(一時退避用のトラック)に一時退避させると、データリフレッシュ処理の効率が低下する。そこで本実施形態では、データリフレッシュ中の電源遮断対策を図りながら、処理効率の低下を防止可能な、次のような特徴あるデータリフレッシュ処理を適用している。
Next, an outline of data refresh processing executed in the
As described in the section of the problem to be solved by the invention, as a countermeasure against power interruption during data refresh, the data of the track (target track) to be refreshed is stored on a specific track (for temporary saving) on the disk. If the data is temporarily saved in the (track), the efficiency of the data refresh process is lowered. Therefore, in the present embodiment, the following characteristic data refresh processing that can prevent a decrease in processing efficiency while applying power cut-off measures during data refresh is applied.
本実施形態では、ディスク101上に予備トラックTiが用意される。この予備トラックTiに隣接するトラックTjが、データリフレッシュの対象となるトラック(ターゲットトラック)Tjとなる。
In this embodiment, a spare track Ti is prepared on the
まず、ヘッド102によってターゲットトラックTjからデータが読み出される。次にヘッド102がターゲットトラックTjから予備トラックTiに移動される。ここで予備トラックTiはターゲットトラックTjに隣接するため、ターゲットトラックTjから予備トラックTiにヘッド102を高速に移動できる。
First, data is read from the target track Tj by the
ヘッド102が予備トラックTiに移動されると、ターゲットトラックTjから読み出されたデータが、ヘッド102によって予備トラックTiに書き込まれる。これによりターゲットトラックTjのデータのリフレッシュが完了する。つまり本実施形態の特徴は、ターゲットトラックTjのデータを隣接する予備トラックTiに書き込むことで、当該データを予備トラックTi上でリフレッシュする点にある。上述のターゲットトラックTjからのデータの読み出しと、読み出されたデータの予備トラックTiへの書き込みとは、CPU115の制御の下で行われる。
When the
もし、ターゲットトラックTjから読み出されたデータを予備トラックTiに書き込む書き込み動作の最中に電源が遮断しても、ターゲットトラックTjのデータは失われない。このため、電源が復帰した際に、ターゲットトラックTjからデータを読み出して、その読み出されたデータを予備トラックTiに書き込むことができる。 Even if the power is cut off during the writing operation for writing the data read from the target track Tj to the spare track Ti, the data of the target track Tj is not lost. Therefore, when the power is restored, the data can be read from the target track Tj and the read data can be written to the spare track Ti.
このように本実施形態では、ターゲットトラックTjから読み出されたデータが一時退避用のトラックを介して当該ターゲットトラック(つまり元のトラック)Tjに再度書き込まれるのではないことに注意されるべきである。本実施形態によれば、ターゲットトラックのデータを一時退避のためにディスク101(一時退避用のトラック)に書き込む動作が不要となる。つまり本実施形態によれば、一時退避用のトラックを用いてターゲットトラックのデータをリフレッシュする場合に比べて、ディスク101へのデータ書き込みの動作を1回少なくでき、電源遮断に対処しつつ、リフレッシュ処理の効率が低下するのを防止できる。
Thus, in this embodiment, it should be noted that the data read from the target track Tj is not rewritten to the target track (that is, the original track) Tj via the temporary saving track. is there. According to this embodiment, the operation of writing the data of the target track to the disk 101 (temporary saving track) for temporary saving becomes unnecessary. That is, according to the present embodiment, the data write operation to the
ターゲットトラックTjから読み出されたデータが、予備トラックTiに書き込まれると、当該ターゲットトラックTjが新たな予備トラックTjとなる。そして、この新たな予備トラックTjにトラックTiとは逆側で隣接するトラックTkが、新たなターゲットトラックTkとなる。すると、ヘッド102が、トラックTiから新たなターゲットトラックTkに移動される。トラックTiと新たなターゲットトラックTkとの距離は2トラック分であるため、トラックTiから新たなターゲットトラックTkにヘッド102を高速に移動できる。
When the data read from the target track Tj is written to the spare track Ti, the target track Tj becomes a new spare track Tj. Then, the track Tk adjacent to the new spare track Tj on the side opposite to the track Ti becomes the new target track Tk. Then, the
次に、ヘッド102によってターゲットトラックTkからデータが読み出される。次にヘッド102がターゲットトラックTkから隣接する新たな(現在の)予備トラックTjに移動される。そして、ターゲットトラックTkから読み出されたデータが、ヘッド102によって現在の予備トラックTjに書き込まれる。以下同様にして、予備トラックが1トラック単位で順次切り替えられ、その都度、その際の予備トラックに隣接するトラックのデータを、その際の予備トラックに書き込む動作が行われる。
Next, data is read from the target track Tk by the
本実施形態によれば、ターゲットトラックと予備トラックとは常に隣接しているため、ターゲットトラックから予備トラックに高速でヘッド102を移動できる。また、ターゲットトラックのデータを予備トラック上でリフレッシュすると、当該ターゲットトラックが新たな予備トラックとなる。そして、この新たな予備トラックにそれまで予備トラックとして用いられていたトラック(旧予備トラック)とは逆側で隣接するトラックが、新たなターゲットトラックとなる。旧予備トラックと新たなターゲットとの距離は2トラック分であるため、旧予備トラックから新たなターゲットトラックに高速でヘッド102を移動できる。よって本実施形態によれば、一時退避用のトラックを用いてターゲットトラックのデータをリフレッシュする場合に比べて、ヘッドの移動に要する時間を短縮できる。この点からも、本実施形態によれば、電源遮断に対処しつつ、リフレッシュ処理の効率が低下するのを防止できる。
According to this embodiment, since the target track and the spare track are always adjacent to each other, the
次に、上述のデータリフレッシュ処理を、図3の概念図を参照して説明する。
本実施形態では、ディスク101の記録面に配置されたトラック201の集合は予め定められた一定数のトラックを単位にグループ化されて、グループ単位でデータリフレッシュ処理が行われる。このグループを、トラックグループと称する。ここでは、トラックグループ毎に、そのトラックグループ全体へのデータ書き込み動作の総数(ライト回数)がカウントされる。このカウント値が予め定められた一定値に達したならば、該当するトラックグループを対象とするデータフリフレッシュ処理が行われる。
Next, the data refresh process described above will be described with reference to the conceptual diagram of FIG.
In the present embodiment, the set of tracks 201 arranged on the recording surface of the
図3の例では、ディスク101上の1つのトラックグループが示されている。ここでは、説明の簡略化のために、トラックグループがトラック0乃至10の11トラックから構成されているものとする。トラック0乃至10の表記における「0」乃至「10」の数値は、トラックグループ内のトラックの相対位置(相対トラック位置)を示す。この値が小さいトラックほどディスク101上の外周側に位置し、値が大きいトラックほどディスク101上の内周側に位置するものとする。
In the example of FIG. 3, one track group on the
図3において、状態31は、1つのトラックグループ内に1つの予備トラックが確保されている状態を示す。ここでは、トラック10が予備トラックに割り当てられている。但し、予備トラックは後述するように動的に切り替えられる。トラックグループ内の予備トラック10以外のトラック0乃至9トラックには、それぞれデータA乃至Jが格納されているものとする。
In FIG. 3, a
今、状態31にあるトラックグループがデータリフレッシュの対象となったものとする。この場合、本実施形態ではまず、予備トラック10に(ディスク101の外周側で)隣接するトラック9がデータリフレッシュの対象トラック(ターゲットトラック)として選択される。そして、トラック9のデータJが読み出され、当該読み出されたデータJが、図3において矢印311で示されるように、その時点における予備トラックであるトラック10に書き込まれる。これにより、トラック9のデータが、当該トラック9に隣接するトラック10上でリフレッシュされる。
Assume that the track group in the
すると、それまでデータリフレッシュの対象となっていたトラック9が、トラック10に代わって新たに予備トラックに割り当てられる。この状態では、新たな予備トラック9に(ディスク101の外周側で)隣接するトラック8がターゲットトラックとして選択される。そして、トラック8のデータIが読み出され、当該読み出されたデータIが、図3において矢印312で示されるように、その時点における予備トラックであるトラック9に書き込まれる。これにより、トラック8のデータが、当該トラック8に隣接するトラック9上でリフレッシュされる。
Then, the track 9 that has been subject to data refresh until then is newly assigned to the spare track in place of the track 10. In this state, the track 8 adjacent to the new spare track 9 (on the outer peripheral side of the disk 101) is selected as the target track. Then, the data I of the track 8 is read, and the read data I is written in the track 9 which is a spare track at that time, as indicated by an
以下、同様の動作が予備トラックを切り替えながら順次行われる。やがて、トラック1のデータBが、図3において矢印319で示されるようにトラック2に書き込まれ、トラック0のデータAが図3において矢印320で示されるように、トラック1に書き込まれ、当該トラック0が新たに予備トラックに割り当てられたものとする。このように、トラック0が予備トラックになったところで、つまり図3において状態31にあるトラックグループが図3に示される状態32に遷移したところで、当該トラックグループを対象とするデータリフレッシュ処理(データリフレッシュ動作)が完了する。これを、順方向のリフレッシュ処理と呼ぶ。つまり、ターゲットトラックのデータがディスク101の内周方向(相対トラック位置の値が増加する方向)に隣接するトラック(予備トラック)に書き込まれるデータリフレッシュ処理を、順方向のリフレッシュ処理と呼ぶ。また、この方向をリフレッシュ方向と呼び、ターゲットトラックのデータを隣接するトラックに書き込む書き込み動作を、ずらし書き込み(シフトライト)と呼ぶ。
Thereafter, the same operation is sequentially performed while switching the spare track. Eventually, data B of
その後、図3において状態32にあるトラックグループを対象とするデータリフレッシュ処理が必要になったものとする。この場合、先の順方向のリフレッシュ処理とは逆に、予備トラック0に隣接するトラック1がターゲットトラックとして選択される。そして、トラック1のデータAが読み出され、当該読み出されたデータAが、図3において矢印321で示されるように、その時点における予備トラックであるトラック0に書き込まれる。これにより、トラック1のデータAが、当該トラック1に隣接するトラック0上でリフレッシュされる。
Thereafter, it is assumed that the data refresh process for the track group in the
すると、それまでデータリフレッシュの対象となっていたトラック1が、トラック0に代わって新たに予備トラックに割り当てられる。この状態では、新たな予備トラック1に(ディスク101の内周側で)隣接するトラック2がターゲットトラックとして選択される。そして、トラック2のデータBが読み出され、当該読み出されたデータBが、図3において矢印322で示されるように、その時点における予備トラックであるトラック1に書き込まれる。これにより、トラック2のデータBが、当該トラック2に隣接するトラック1上でリフレッシュされる。
Then, the
以下、同様の動作が予備トラックを切り替えながら順次行われる。やがて、トラック9のデータIが、図3において矢印329で示されるようにトラック8に書き込まれ、トラック10のデータJが図3において矢印330で示されるように、トラック9に書き込まれ、当該トラック10が新たに予備トラックに割り当てられたものとする。このように、トラック10が予備トラックになったところで、つまり図3において状態32にあるトラックグループが図3に示される状態33に遷移したところで、当該トラックグループを対象とするデータリフレッシュ処理が完了する。これを、逆方向のリフレッシュ処理と呼ぶ。つまり、ターゲットトラックのデータがディスク101の外周方向(相対トラック位置の値が減少する方向)に隣接するトラック(予備トラック)に書き込まれるリフレッシュ処理を、逆方向のリフレッシュ処理と呼ぶ。
Thereafter, the same operation is sequentially performed while switching the spare track. Eventually, data I of track 9 is written to track 8 as shown by arrow 329 in FIG. 3, and data J of track 10 is written to track 9 as shown by
以後は、図3に示されるトラックグループのリフレッシュが必要になる度にリフレッシュ方向を切り替えながら、リフレッシュ処理が行われる。つまり、順方向のリフレッシュ処理と逆方向のリフレッシュ処理とが交互に行われる。なお、図3の例では、説明の簡略化のために、トラックグループ当たりのトラック数は予備トラックを含めて11である。この例では、ディスク101の実質的な記憶容量は、総トラック(シリンダ)数の10/11しか確保できない。したがって実際には、トラックグループ当たりのトラック数として、もっと大きな値を設定することが好ましい。
Thereafter, the refresh process is performed while switching the refresh direction every time the track group shown in FIG. 3 needs to be refreshed. That is, the forward refresh process and the reverse refresh process are alternately performed. In the example of FIG. 3, the number of tracks per track group is 11 including the spare tracks for the sake of simplicity. In this example, the actual storage capacity of the
図4はトラックグループ毎のライト回数(データライト回数、ライト実行回数)を保持するライトカウントテーブル400のデータ構造例を示す。ライトカウントテーブル400は、例えば図1におけるRAM113の所定の領域に格納される。
FIG. 4 shows an example of the data structure of the write count table 400 that holds the number of writes (data write count, write execution count) for each track group. The write count table 400 is stored, for example, in a predetermined area of the
図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である。
In the example of the write count table 400 in FIG. 4, for the sake of general description, it is assumed that the
シリンダグループとは、予め定められた一定数のシリンダの集合であり、1シリンダグループ当たりのシリンダ数は、1トラックグループ当たりのトラック数と同じである。したがって、同一のシリンダグループ番号を持つトラックグループは、HDD100内に、ヘッド102の数mに一致する数だけ存在する。トラックグループは、シリンダグループ番号cとヘッド番号hとにより特定される。シリンダグループ番号cとヘッド番号hとで特定されるトラックグループ内のトラックへのデータの書き込み(ライトアクセス)が行われると、カウントテーブル400に保持されているライト回数(ライトカウンタ)W(h,c)が、書き込みが行われた回数だけインクリメントされる。
A cylinder group is a set of a predetermined number of cylinders, and the number of cylinders per cylinder group is the same as the number of tracks per track group. Therefore, there are as many track groups having the same cylinder group number in the
本実施形態では、ライトカウントテーブル400は、前述のようにRAM113に格納される。RAM113の内容はHDD100の電源の遮断により失われる。したがって、ライトカウントテーブル400の内容も電源遮断と共に失われる。このため本実施形態では、ライトカウントテーブル400を含む、RAM113内の予め定められた領域の内容は、必要に応じて(例えばHDD100の省電力状態への移行時に)、ディスク101の所定領域に保存(退避)される。このディスク101の所定領域に保存されたカウントテーブル400を含む内容は、HDD100の起動時(電源投入時)に読み出されて、RAM113内に復元される。
In the present embodiment, the write count table 400 is stored in the
本実施形態では、目的のデータが書き込まれているトラックは、当該トラックを含むトラックグループを対象とするデータリフレッシュの都度切り替えられる。例えば図3において、データAが書き込まれているトラックは、状態31または33ではトラック0であり、状態32ではトラック1である。この目的のデータにアクセスするためには、上述のずらし書き込みをどの向きでどこまで行ったかを示す情報を常時把握しておき、通常のアドレス変換の結果に対してシリンダ番号のずれを補正すればよい。
In the present embodiment, the track in which the target data is written is switched every time data refresh is performed on the track group including the track. For example, in FIG. 3, the track in which data A is written is
ここで、通常のアドレス変換について説明する。近年のHDDは、いわゆるCDR(Constant Density Recording)方式を適用しているのが一般的である。図1のHDD100もCDR方式を適用しているものとする。このようなHDD100を利用するホストシステム200は、当該HDD100に対してアクセス対象ブロックを指定する情報として、LBA(Logical Block Address:論理ブロックアドレス)を当該HDD100に与えるのが一般的である。この場合、HDD100では、例えばホストシステム200から指示されたリードコマンドまたはライトコマンドのようなコマンドの実行時に、当該ホストシステム200によって与えられたLBA(論理ブロックアドレス)を、ディスク101上の物理的な位置を示す、シリンダ番号、ヘッド番号及びセクタ番号(から構成される物理アドレス)に変換するためのアドレス変換(アドレス計算)が行われる。これが通常のアドレス変換である。
Here, normal address translation will be described. In recent HDDs, a so-called CDR (Constant Density Recording) system is generally applied. It is assumed that the CDR system is also applied to the
本実施形態では、このような通常のアドレス変換の結果に対して、シリンダ番号のずれを補正可能なように、トラックグループ毎にトラックグループ内の予備トラックの位置(相対位置)を示す位置情報が保持・管理される。なお、シリンダ番号のずれを補正するには、ずらし書き込みの向き(リフレッシュ方向)も把握する必要がある。しかし、このリフレッシュ方向は、後述するようにトラックグループ内の予備トラックの位置から判定可能である。このため本実施形態では、トラックグループ毎にリフレッシュ方向を示す情報が保持・管理される構成は適用されない。但し、リフレッシュ処理の実行中(または中断)のトラックグループについては、後述するリフレッシュ管理情報によって当該リフレッシュ処理のリフレッシュ方向が管理される。 In the present embodiment, position information indicating the position (relative position) of the spare track in the track group is provided for each track group so that the deviation of the cylinder number can be corrected with respect to the result of such normal address conversion. Retained and managed. In addition, in order to correct the deviation of the cylinder number, it is necessary to grasp the direction of the shift writing (refresh direction). However, the refresh direction can be determined from the position of the spare track in the track group as will be described later. For this reason, in this embodiment, a configuration in which information indicating the refresh direction is held and managed for each track group is not applied. However, for the track group in which the refresh process is being executed (or interrupted), the refresh direction of the refresh process is managed by the refresh management information described later.
図5は、トラックグループ毎の予備トラックの位置(を示す位置情報)を保持するトラックシフトテーブル500のデータ構造例を示す。図5のトラックシフトテーブル500の例では、説明の一般化のために、HDD100がm本のヘッド102を有すると共に、当該HDD100がn個のシリンダグループから構成される場合を想定している。この場合、トラックシフトテーブル500は、ヘッド(ヘッド番号)h及びシリンダグループ(シリンダグループ番号)cを用いて表される全てのトラックグループの各々について、そのトラックグループ内における予備トラックの位置S(h,c)(0≦h≦m−1,0≦c≦n−1)を保持している。この予備トラックの位置S(h,c)は、当該予備トラックが属するトラックグループ内における当該予備トラックの相対位置(相対トラック位置)を示す。なお、図1のHDD100の構成の場合、mは1である。
FIG. 5 shows an example of the data structure of the track shift table 500 that holds the position of the spare track for each track group. In the example of the track shift table 500 in FIG. 5, for the sake of generalization, it is assumed that the
トラックシフトテーブル500は、電源手段対策のために書き換え可能な不揮発性メモリに保存されるのが好ましい。このトラックシフトテーブル500のデータ量は少ない。そこで本実施形態では、プログラムを格納するのに用いられるフラッシュROM114の所定の領域にトラックシフトテーブル500が保存される構成を適用している。
The track shift table 500 is preferably stored in a rewritable nonvolatile memory as a countermeasure against power supply means. The data amount of the track shift table 500 is small. Therefore, in this embodiment, a configuration in which the track shift table 500 is stored in a predetermined area of the
上述のように、HDD100では、ホストシステム200によって与えられたLBAからディスク101上の物理的な位置を示す、シリンダ番号、ヘッド番号及びセクタ番号に変換するための通常のアドレス変換が行われる。ところが本実施形態においては、トラックグループ内の予備トラックの位置とリフレッシュ方向とにより、目的とするトラックのシリンダ番号が変わる。このため、通常のアドレス変換に加え、上記トラックシフトテーブル500によって示される予備トラックの位置とリフレッシュ方向とに応じたシリンダ番号の補正処理が必要となる。
As described above, in the
このように、トラックシフトテーブル500の内容は目的とするトラックのシリンダ番号を決定するための補正処理に欠かせない極めて重要なものである。このためトラックシフトテーブル500は、たとえHDD100の動作中に不意の電源遮断が発生しても決して失われることがあってはならない。そのためトラックシフトテーブル500は、フラッシュROM114に保存されている。
Thus, the contents of the track shift table 500 are extremely important for the correction process for determining the cylinder number of the target track. For this reason, the track shift table 500 should never be lost even if an unexpected power interruption occurs during the operation of the
一方、トラックシフトテーブル500とは対照的に、ライトカウントテーブル400はRAM113に格納される。このため、HDD100の動作中に不意の電源遮断が発生した場合、当該HDD100の再起動後には、それ以前にディスク101に最後に保存されたライトカウントテーブル400の内容が使用される。この場合、失われるデータは、ライトカウントテーブル400の内容が最後に保存されてから電源遮断までのライト回数のみであることから影響は殆どない。
On the other hand, in contrast to the track shift table 500, the write count table 400 is stored in the
これに対して、トラックシフトテーブル500において、ある期間のあるトラックグループにおける予備トラック位置S(h,c)の更新が欠落すると仮定するならば、そのトラックグループ内のトラックのシリンダ番号を補正できなくなる。このため、トラックシフトテーブル500は常に完全な形で保存される必要がある。したがって、トラックシフトテーブル500をライトカウントテーブル400と同様にRAM113に格納すると仮定するならば、1トラックのデータがリフレッシュされる度に、当該トラックシフトテーブル500の内容をディスク101の所定の領域に保存(退避)しなければならない。このようにすると、リフレッシュ処理の効率化を果たすことができなくなる。
On the other hand, in the track shift table 500, if it is assumed that the update of the spare track position S (h, c) in a certain track group for a certain period is lost, the cylinder numbers of the tracks in the track group cannot be corrected. . For this reason, the track shift table 500 must always be stored in a complete form. Therefore, if it is assumed that the track shift table 500 is stored in the
そこで本実施形態では、上述のようにトラックシフトテーブル500がフラッシュROM114に保存される構成を適用している。ここで、トラックシフトテーブル500の更新中における電源遮断にも対処できるように、正副2つのトラックシフトテーブル500を用意するとよい。つまり、これら正副2つのテーブル(トラックシフトテーブル)500がフラッシュROM114の異なるページに保存され、テーブル更新が、正副2つのテーブルに対して行われるようにする。ここでは、正テーブル500の更新が正常終了した後に、副テーブル500の更新が実行される構成を適用する。これにより、どのタイミングでHDD100の電源が遮断されても、トラックシフトテーブル500の内容が失われるのを防止できる。
Therefore, in the present embodiment, a configuration in which the track shift table 500 is stored in the
また、一般的にフラッシュROM114の書き換えは、例えばページ単位でその内容を全て消去した後に、消去されたページに新しい内容を書き込むという手順で行われる。しかし、フラッシュROM114の種類によってはページ内で追記することが可能である。もし、フラッシュROM114がページ内で追記が可能なタイプであるならば、当該フラッシュROM114内に差分用領域を設けておき、当該フラッシュROM114を次のように利用することも可能である。
In general, the
例えば、フラッシュROM114内の差分用領域を使い切るまでは、トラックシフトテーブル500を全て書き換える代わりに、差分、つまり変更されるS(h,c)のみが、当該差分用領域に順次記録される。そして、差分用領域に空きがなくなったところで、トラックシフトテーブル500が全て更新される。このような構成を適用することで、フラッシュROM114を消去する頻度を下げることもできる。ただし、差分を記録する手法では、トラックシフトテーブル500を直接参照することはできない。そこで、最新の状態を示すトラックシフトテーブル500をRAM113の所定の領域に配置し、この所定の領域内のトラックシフトテーブル500を参照するとよい。
For example, until the difference area in the
次に、トラックグループ単位のリフレッシュ処理が行われる図1のHDD100における全体的な動作について、図6のフローチャートを参照して説明する。
まず、HDD100の電源が投入され、CPU115の動作が開始されたものとする(ステップ601)。するとCPU115は、HDD100全体を対象とする周知の初期化処理及び起動処理を行う(ステップ602)。起動処理が終わるとCPU115は、HDC110を介してホストシステム200からコマンドを受信できる状態になり、コマンド待ちループ(ステップ603乃至607)に入る。
Next, the overall operation of the
First, it is assumed that the power of the
ステップ603においてホストシステム200からのコマンドの受信を確認すると、CPU115は、ステップ611に分岐することでコマンド待ちループを抜けて、ホストシステム200からのコマンドに応じた処理を実行する。ステップ611においてCPU115は、ホストシステム200からのコマンドがライトコマンドであるかを判定する。もし、そうであれば、CPU115は、ライトコマンドのための処理(ステップ612〜615)を行う。
When the reception of the command from the
受信したコマンドがライトコマンドである場合(ステップ611がYES)、ホストシステム200から要求されたアドレスへの書き込みを行うために、前述のようなシリンダ番号の補正が必要となる。そこでステップ612では、このシリンダ番号の補正(実シリンダ番号の算出)が行われる。図6のフローチャートには明示的には示されていないが、ステップ612に到達する以前に、ホストシステム200からのコマンド(ライトコマンド)で指定されるアドレス(例えばLBA)を仮想シリンダ番号、ヘッド番号、セクタ番号に変換するための処理(通常のアドレス変換)が一般的な方法によって既に実施されているものとする。
If the received command is a write command (YES in step 611), in order to write to the address requested by the
仮想シリンダ番号とは、実際(通常)のシリンダ番号(実シリンダ番号)を求めるために中間的に設けられた計算上のシリンダ番号である。ここで、実際のシリンダ番号を、仮想シリンダ番号に対比させて実シリンダ番号と呼ぶ。仮想シリンダ番号で指定されるシリンダを仮想シリンダと呼び、実シリンダ番号で指定されるシリンダを実シリンダと呼ぶ。なお、単にシリンダと表現する場合には、実シリンダを指すものとする。 The virtual cylinder number is a calculated cylinder number provided in the middle to obtain an actual (normal) cylinder number (actual cylinder number). Here, the actual cylinder number is referred to as the actual cylinder number in comparison with the virtual cylinder number. A cylinder designated by a virtual cylinder number is called a virtual cylinder, and a cylinder designated by a real cylinder number is called a real cylinder. In addition, when it only expresses as a cylinder, it shall refer to an actual cylinder.
仮想シリンダ番号は、トラックグループ(シリンダグループ)毎に1つの予備トラックが確保されることにより必要となる概念であり、予備トラック(予備シリンダ)を除く、ホストシステム200から認識可能なトラック(シリンダ)のシリンダ番号を指す。つまり、仮想シリンダ番号は各トラックグループ(シリンダグループ)内の予備トラックを飛ばして(予備トラックの存在を前提としないで)数えられる(算出される)シリンダ番号である。
The virtual cylinder number is a concept that is necessary when one spare track is secured for each track group (cylinder group), and tracks (cylinders) that can be recognized from the
仮想シリンダ番号という概念は、以下に述べるように、アドレス変換(アドレス計算)を階層化することを目的として導入されている。まず、本実施形態で適用されるようなトラックグループ単位のデータリフレッシュ処理(トラックリフレッシュ処理)が存在しないと仮定した場合と全く同様に第1のアドレス変換(アドレス計算)が行われる。この第1のアドレス変換では、ホストシステム200によって指定されたLBAが通常のアドレス変換と同様に、シリンダ番号、ヘッド番号及びセクタ番号に変換される。ホストシステム200からは予備トラックは認識されない。このため、ホストシステム200によって指定されたLBAから第1のアドレス変換で取得されるシリンダ番号は、仮想シリンダ番号である。そこで、この仮想シリンダ番号が第2のアドレス変換(アドレス計算)によって実シリンダ番号に変換される。
The concept of virtual cylinder number is introduced for the purpose of hierarchizing address translation (address calculation) as described below. First, the first address conversion (address calculation) is performed in the same manner as when it is assumed that there is no data refresh processing (track refresh processing) in units of track groups as applied in the present embodiment. In this first address conversion, the LBA specified by the
上述のように本実施形態では、ステップ612への到達時には、ホストシステム200によって指定されたLBAが、既に仮想シリンダ番号、ヘッド番号及びセクタ番号に変換されている。そこでステップ612においてCPU115は、ライト処理を行うのに必要な仮想シリンダ番号から実シリンダ番号への変換(実シリンダ番号の算出)を行う。このステップ612の詳細については後述する。CPU115は、ステップ612を実行すると、変換(算出)された実シリンダ番号と、ヘッド番号及びセクタ番号とに基づき、ライト処理(データ書き込み動作のための制御)を行う(ステップ613)。
As described above, in the present embodiment, when reaching
ライト処理(ステップ613)が完了したなら、CPU115は、そのライト処理がライトカウントテーブル400に反映されるように、当該テーブル400を更新する(ステップ614)。つまりCPU115は、ライト処理がヘッドh、シリンダグループcで特定されるトラックグループに対して行われた場合、ライトカウントテーブル400内のライト回数W(h,c)をライト処理が反映されるように更新する。更に詳細に述べるならば、CPU115は、ライトカウントテーブル400内のライト回数W(h,c)に対してライトが行われた回数を加算する。ここでは通常は、1が加算される。但し、ライト処理でリトライが行われた場合には、当該リトライも通常のライト動作と同様に隣接トラックに影響するので、当該リトライの回数も併せて加算される。
When the write process (step 613) is completed, the
ステップ614が実行されると、ライトコマンドの処理は完了する。そこでCPU115は、レジスタ類の更新、及びビジー状態の解除など、コマンドの終了処理を行い(ステップ615)、コマンド待ちループに戻る。
When
一方、受信したコマンドがライトコマンド以外であった場合(ステップ611がNO)、CPU115は、当該受信したコマンドに応じた処理(ステップ620)及びコマンドの終了処理(ステップ615)を行い、コマンド待ちループに戻る。ライトコマンド以外の場合のコマンドに応じた処理については、便宜的にステップ620にまとめて記述されている。しかし実際には、ライトコマンド以外にも様々なコマンドが存在することから、ステップ611で行われるようなコマンドコードの判定や、ステップ612,613に相当する処理がコマンドの数だけ存在し、ライトコマンドの場合と同様に行われる。
On the other hand, if the received command is other than a write command (NO in step 611), the
特にリードコマンドやシークコマンドのようにホストシステム200がアクセス対象を指定するコマンドにおいては、コマンド処理の前にステップ612と同様に仮想シリンダ番号から実シリンダ番号への変換処理が行われることに注意する必要がある。
In particular, in a command such as a read command or a seek command in which the
次に、コマンド待ちループにおけるステップ603で、コマンドを受信していないと判定されたものとする。この場合、アイドル時処理が行われる。また、ステップ615でコマンドの終了処理が行われた後も、アイドル時処理が行われる。アイドル時処理は、トラックリフレッシュ処理を含む。本実施形態においてCPU115は、このトラックリフレッシュ処理の前に、トラックリフレッシュ処理を行うかを判定する(ステップ604,605)。
Next, assume that it is determined in
ステップ604においてCPU115は、トラックリフレッシュ処理を行わずにホストシステム200からのコマンドを即座に実行する必要があるか、或いはリフレッシュ処理を回避すべき状況にあるかなどを総合的に判断する。コマンドを即座に実行する必要があるのは、例えば、ステップ615の直後にホストシステム200からコマンドを受信した場合である。リフレッシュ処理を回避すべき状況は、外部からHDD100に一定レベルを超える振動が加わった場合、HDD100の環境温度が、当該HDD100の動作が保証される温度範囲から外れた場合等、HDD100が悪条件下で用いられる場合である。ステップ605においてCPU115は、ステップ604での総合的な判断結果から、トラックリフレッシュ処理が実行可能かを判定する。
In
トラックリフレッシュ処理を行うと判定された場合のみ、CPU115は、トラックリフレッシュ処理を行う(ステップ606)。このステップ606の詳細については後述する。
Only when it is determined to perform the track refresh process, the
ステップ606でのトラックリフレッシュ処理が終了するか、ステップ605でトラックリフレッシュ処理を行うべきでないと判定された場合には、CPU115は省電力状態に遷移するための省電力処理を実行するかを判定し、実行する必要があるならば当該処理を実行する(ステップ607)。省電力処理は、ヘッド102をディスク101上からアンロードさせるためのアンロード処理、及びまたは、SPM103の回転を停止させるSPM停止処理のような処理を含む。
When the track refresh process at
ステップ607で省電力処理が実行されると、CPU115はステップ603に戻る。これに対し、ホストシステム200からのコマンドを即座に実行する必要がある場合には、ステップ607で省電力処理を実行すべきでないと判定される。この場合、CPU115は省電力処理を実行せずにステップ603に戻る。以後CPU115は、ステップ603を含む上述の処理を繰り返す。
When the power saving process is executed in
次に、上記ステップ612の実シリンダ番号の算出処理(シリンダ番号の補正処理)の詳細な手順について、図7のフローチャートを参照して説明する。
Next, the detailed procedure of the actual cylinder number calculation process (cylinder number correction process) in
上述のように、本実施形態で適用される仮想シリンダ番号は、各シリンダグループ内の予備シリンダを飛ばして数えられるシリンダ番号、つまり予備シリンダが存在しないとして数えられるシリンダ番号である。このため、仮想シリンダ番号を直接に実シリンダ番号に変換することはできない。そこでCPU115は、図7のフローチャートで示される実シリンダ番号の算出処理701において、まず、仮想シリンダ番号から、当該仮想シリンダ番号のシリンダ(仮想シリンダ)が属するシリンダグループのシリンダグループ番号と、当該仮想シリンダの当該シリンダグループにおけるオフセット(相対シリンダ位置)とを算出する(ステップ702)。
As described above, the virtual cylinder number applied in the present embodiment is a cylinder number that is counted by skipping the spare cylinder in each cylinder group, that is, a cylinder number that is counted as if there is no spare cylinder. For this reason, a virtual cylinder number cannot be directly converted into a real cylinder number. Therefore, in the actual cylinder
本実施形態では、シリンダグループ当たりの仮想シリンダ数は一定値であり、図3の例では10である。シリンダグループ番号は仮想シリンダ番号をこの一定値で割った商(整数値)、シリンダグループ内のオフセットはその余りとなる。例えば仮想シリンダ番号が34の場合、シリンダグループ番号(c)は34を10で割った商である3、オフセット(相対シリンダ位置、相対仮想シリンダ番号)はその余りである4となる。 In the present embodiment, the number of virtual cylinders per cylinder group is a constant value, which is 10 in the example of FIG. The cylinder group number is the quotient (integer value) obtained by dividing the virtual cylinder number by this constant value, and the offset in the cylinder group is the remainder. For example, when the virtual cylinder number is 34, the cylinder group number (c) is 3 which is a quotient obtained by dividing 34 by 10, and the offset (relative cylinder position, relative virtual cylinder number) is 4 which is the remainder.
次にCPU115は、ステップ702で算出された仮想シリンダのオフセット、即ちステップ702で算出されたシリンダグループ番号で示されるシリンダグループ内の相対仮想シリンダ番号から、以下に述べるように当該シリンダグループ内の相対実シリンダ番号を求める。
Next, the
まずCPU115は、ステップ612に到達する前に求められているヘッド番号(h)とステップ702で算出されたシリンダグループ番号(c)とに基づき、トラックシフトテーブル500を参照することにより、予備シリンダ(トラック)の位置(シリンダグループ内相対シリンダ位置)S(h,c)を得る(ステップ703)。上述のようにシリンダグループ番号(c)が3の例で、更にヘッド番号(h)が1の場合、予備シリンダ(トラック)のシリンダグループ内相対シリンダ位置はS(1,3)となる。
First, the
相対実シリンダ番号は、トラックシフトテーブル500から取得された予備シリンダ(トラック)のシリンダグループ内相対シリンダ位置S(h,c)(=S(1,3))と仮想シリンダのシリンダグループ内オフセット(相対仮想シリンダ番号)との位置関係により求めることができる。具体的には、予備シリンダ(トラック)のシリンダグループ内相対シリンダ位置を示す値が相対仮想シリンダ番号(オフセット)よりも大きいかによって(ステップ704)、相対実シリンダ番号が求められる。 The relative actual cylinder number is obtained by comparing the relative cylinder position S (h, c) (= S (1, 3)) within the cylinder group of the spare cylinder (track) acquired from the track shift table 500 and the offset within the cylinder group of the virtual cylinder ( (Relative virtual cylinder number). Specifically, the relative actual cylinder number is determined depending on whether the value indicating the relative cylinder position in the cylinder group of the reserve cylinder (track) is larger than the relative virtual cylinder number (offset) (step 704).
予備シリンダのシリンダグループ内相対シリンダ位置を示す値が相対仮想シリンダ番号(オフセット)よりも大きい場合(ステップ704がYES)、相対実シリンダ番号(実シリンダのシリンダグループ内相対シリンダ位置)は予備シリンダの影響を受けない。このため、相対仮想シリンダ番号と相対実シリンダ番号との間にずれは発生しない。つまり、予備シリンダが実シリンダよりも後方(シリンダ番号が大きい方)に存在する場合、相対仮想シリンダ番号と相対実シリンダ番号との間にずれは発生しない。この場合、相対実シリンダ番号は相対仮想シリンダ番号に等しい値となる。 When the value indicating the relative cylinder position in the cylinder group of the spare cylinder is larger than the relative virtual cylinder number (offset) (YES in step 704), the relative actual cylinder number (relative cylinder position in the cylinder group of the actual cylinder) is Not affected. For this reason, no deviation occurs between the relative virtual cylinder number and the relative actual cylinder number. That is, when the spare cylinder is present behind the actual cylinder (the cylinder number is larger), there is no deviation between the relative virtual cylinder number and the relative actual cylinder number. In this case, the relative real cylinder number is equal to the relative virtual cylinder number.
これに対し、予備シリンダのシリンダグループ内相対シリンダ位置を示す値が相対仮想シリンダ番号(オフセット)以下の場合(ステップ704がNO)、相対実シリンダ番号は予備シリンダの影響を受ける。つまり、予備シリンダが実シリンダよりも後方に存在しない場合、相対実シリンダ番号は予備シリンダの影響を受けて、予備シリンダの分だけずれが生じる。この場合、相対実シリンダ番号は、相対仮想シリンダ番号に対して1だけ大きい値となる。 On the other hand, when the value indicating the relative cylinder position in the cylinder group of the spare cylinder is equal to or less than the relative virtual cylinder number (offset) (NO in step 704), the relative actual cylinder number is affected by the spare cylinder. That is, when the spare cylinder does not exist behind the actual cylinder, the relative actual cylinder number is affected by the spare cylinder and is shifted by the amount of the spare cylinder. In this case, the relative real cylinder number is a value larger by 1 than the relative virtual cylinder number.
そこでCPU115は、上述の相対実シリンダ番号に対し、更にシリンダグループの先頭シリンダの実シリンダ番号、即ちシリンダグループ番号とシリンダグループ当たりの実シリンダ数との積(上述の例では3と11との積、つまり33)、を加算することによって求められる値を、実シリンダ番号として取得する(ステップ705または706)。
Therefore, the
ここで、ステップ705は、ステップ704がNOの場合に実行され、相対実シリンダ番号には、ステップ702で取得された相対仮想シリンダ番号(オフセット)に1が加算された値が用いられる。上述の例では、S(1,3)が相対仮想シリンダ番号(オフセット)4以下の場合にステップ705が実行され、33に4と1とを加えることにより実シリンダ番号として38が取得される。
Here,
これに対し、ステップ706は、ステップ704がYESの場合に実行され、相対実シリンダ番号には、ステップ702で取得された相対仮想シリンダ番号(オフセット)がそのまま用いられる。上述の例では、S(1,3)が相対仮想シリンダ番号(オフセット)4より大きい場合にステップ706が実行され、33に4を加えることにより実シリンダ番号として37が取得される。
On the other hand,
次に、上記ステップ606のトラックリフレッシュ処理の詳細な手順について、図8のフローチャートを参照して説明する。
Next, the detailed procedure of the track refresh process in
CPU115は、図8のフローチャートで示されるトラックリフレッシュ処理801において、後述する実行中フラグを参照することにより、リフレッシュ処理が中断されているトラックグループが存在するかを判定する(ステップ802)。このステップ802は、トラックグループ内のデータリフレッシュされるべきトラック毎にリフレッシュ処理を中断できるようにしていることに関連する。
In the
トラック毎にリフレッシュ処理を中断可能とする理由は、トラックグループ内の全てのトラック(但し予備トラックを除く)のデータをリフレッシュするには時間がかかるので、リフレッシュ処理の間に受信されたホストシステム200からのコマンドへの応答性を低下させないためである。つまり本実施形態では、リフレッシュ処理の実行中にホストシステム200からのコマンドが受信された場合、当該コマンドの実行を優先させるために、当該リフレッシュ処理が中断される。
The reason why the refresh process can be interrupted for each track is because it takes time to refresh the data of all the tracks (except the spare track) in the track group, and therefore the
リフレッシュ処理が中断されているトラックグループが存在するならば(ステップ802がYES)、そのことはリフレッシュの対象となるトラックグループが決まっていることを意味する。この場合、CPU115はステップ805以降のリフレッシュ処理を行う。
If there is a track group for which the refresh process is interrupted (YES in step 802), this means that the track group to be refreshed has been determined. In this case, the
一方、リフレッシュ処理が中断されているトラックグループが存在しないならば(ステップ802がNO)、CPU115はリフレッシュ処理の対象となり得るトラックグループをライトカウントテーブル400に基づいて探す(ステップ803)。ここではCPU115は、ライトカウントテーブル400内で値の最も大きいライト回数W(h,c)を検索する。そしてCPU115は、検索されたライト回数W(h,c)が予め定められた一定値を超えているかによって、リフレッシュ処理が必要なトラックグループが存在するかを判定する(ステップ804)。
On the other hand, if there is no track group for which the refresh process is interrupted (NO in step 802), the
検索されたライト回数W(h,c)が一定値を超えている場合、CPU115は、リフレッシュ処理が必要なトラックグループが存在し、そのトラックグループが当該ライト回数W(h,c)と対応付けられているトラックグループ(ヘッド番号h、シリンダグループ番号cで表されるトラックグループ)であると判定する(ステップ804がYES)。このように、リフレッシュ処理が必要なトラックグループ(つまりリフレッシュ処理が行われるべきトラックグループ)が存在すると判定される場合、そのトラックグループ(つまり値の最も大きいライト回数W(h,c)と対応付けられているトラックグループ)も特定される。この場合、CPU115はステップ805以降のリフレッシュ処理を行う。
When the retrieved number of write times W (h, c) exceeds a certain value, the
これに対し、検索されたライト回数W(h,c)が一定値以下の場合、CPU115は、リフレッシュ処理が必要なトラックグループは存在しないと判断する(ステップ804がNO)。この場合、リフレッシュ処理を行う必要はないので、CPU115はトラックリフレッシュ処理801から元の処理にリターンする(ステップ817)。これにより図6のフローチャートにおけるステップ607が実行される。
On the other hand, when the retrieved number of write times W (h, c) is equal to or less than a certain value, the
ところで、トラックリフレッシュ処理を実行するかの判定は、上記ステップ604及び605でも行われている。但し、ステップ604及び605では、先の説明から明らかなように、ステップ803及び804で行われるようなライトカウントテーブル400に基づく判定、即ちトラックリフレッシュ処理を行う必要があるトラックグループが存在するかの判定は行われない。
By the way, the determination as to whether or not the track refresh process is to be executed is also performed in
しかし、ステップ604及び605の段階でライトカウントテーブル400を参照する必要が生じるならば、この段階で、ステップ803及び804におけるのと同様の判定が行われる構成としてもよい。例えば、ステップ604及び605におけるリフレッシュ処理を実行するかの判定が、前述の振動及び温度のような環境条件に加えてトラックグループ毎のライト回数W(h,c)に基づいて行われる場合がこれに当たる。このような判定の詳細は次の通りである。まず、トラックグループへのライト回数が少ないうちは、一般にデータの劣化は少ない。このため、HDD100が悪条件下で用いられる場合には、リフレッシュ処理を実施するよりも当該リフレッシュ処理を回避した方がリスクが低いと判定される。これに対し、ライト回数が多くなるとデータの劣化が進む。このため、多少の悪条件でもリフレッシュ処理を行った方が逆にリスクが低くなると判定される。ステップ604及び605で、このような判定が行われるならば、当該ステップ604及び605で、ライト回数の最も多いトラックグループが特定されると共に、その回数が取得される。この場合、ステップ803及び804で再度これらが行われる必要はない。
However, if it is necessary to refer to the write count table 400 in the
さて、ステップ805が実行される段階では、トラックリフレッシュ処理が行われるべきトラックグループ(以下、ターゲットトラックグループと称する)は確定している。このためステップ805においてCPU115は、トラックシフトテーブル500を参照することにより、ターゲットトラックグループ内における予備トラックの相対位置S(h,c)を取得する。
Now, at the stage where step 805 is executed, a track group (hereinafter referred to as a target track group) on which track refresh processing is to be performed has been determined. Therefore, in step 805, the
ステップ802からステップ803及び804を介してステップ805に進んだ場合、当該ステップ805においてCPU115は、取得された予備トラックの相対位置S(h,c)に基づいて、ターゲットトラックグループを対象とするリフレッシュ処理の方向(リフレッシュ方向)を順方向とするか、或いは逆方向とするかを決定する。この決定の仕方については後述する。ステップ805においてCPU115は更に、トラックグループ単位のリフレッシュを管理するためのリフレッシュ管理情報をRAM113の所定の領域に格納する。
When the process proceeds from
リフレッシュ管理情報は、トラックグループ番号、方向フラグ及び実行中フラグを含む。トラックグループ番号は、ステップ804で特定された、リフレッシュ処理の対象となるトラックグループ(つまりターゲットトラック)を示す。方向フラグは、トラックグループ番号で指定されるトラックグループを対象とするリフレッシュ処理の方向(リフレッシュ方向)が順方向であるか或いは逆方向であるかを示す。ここでは、方向フラグは、ステップ805で決定されたリフレッシュ方向を示す。実行中フラグは、トラックグループ番号で指定されるトラックグループを対象とするリフレッシュ処理が実行中(または中断中)であるかを示す。ここでは、実行中フラグはセットされており、実行中を示す。
The refresh management information includes a track group number, a direction flag, and a running flag. The track group number indicates the track group (that is, the target track) that is specified in
これに対し、ステップ802からステップ805に分岐した場合、RAM113の所定の領域には後述するように有効なリフレッシュ管理情報が既に格納されている。このリフレッシュ管理情報に含まれている実行中フラグはセットされており、実行中(中断中)を示す。また、リフレッシュ管理情報に含まれている方向フラグは、実行中(中断中)のリフレッシュ処理の方向を示す。
On the other hand, when branching from
ステップ805以降の処理は、ターゲットトラックグループを対象とするリフレッシュ処理を順方向で行うか、或いは逆方向で行うかによって処理が分かれる。 The processing after step 805 is divided depending on whether the refresh processing for the target track group is performed in the forward direction or in the reverse direction.
そこでCPU115は、RAM113に格納されているリフレッシュ管理情報に含まれている方向フラグを参照することにより、当該管理情報に含まれているトラックグループ番号で指定されるトラックグループ(ターゲットトラックグループ)を対象とするリフレッシュ処理を順方向で行うかを判定する(ステップ806)。
Therefore, the
本実施形態ではリフレッシュが中断されているトラックグループが存在するならば、当該トラックグループを対象とするリフレッシュ処理が優先して行われる。このため、同時に複数のトラックグループがリフレッシュ処理中になることはない。このことから、リフレッシュ管理情報は、HDD100全体で1つのみ存在する。
In the present embodiment, if there is a track group in which refresh is interrupted, the refresh process for the track group is preferentially performed. For this reason, a plurality of track groups are not simultaneously refreshed. Therefore, only one refresh management information exists for the
上述のように、リフレッシュ管理情報はRAM113に格納される。このためリフレッシュ管理情報は、HDD100の電源の遮断により失われる。そこで、本実施形態においてリフレッシュ管理情報は、ライトカウントテーブル400と同様に、例えばHDD100の省電力状態への移行時にディスク101の所定の領域に保存される。ディスク101の所定の領域に保存されたリフレッシュ管理情報は、HDD100の起動時(電源投入時)に実行される初期化処理で読み出されて、RAM113内に復元される。
As described above, the refresh management information is stored in the
しかし、不意の電源遮断が発生した場合には、その時点における最新のリフレッシュ管理情報は失われてしまう。そこでCPU115は、最新のリフレッシュ管理情報が失われたかを、つまり復元されたリフレッシュ管理情報は正しいかを、フラッシュROM114に保存されているトラックシフトテーブル500に基づいて、電源投入時の起動処理の中で次のように確認する。
However, when an unexpected power interruption occurs, the latest refresh management information at that time is lost. Therefore, the
まずCPU115は、トラックシフトテーブル500に保持されているトラックグループ毎の予備トラックの相対位置(相対トラック位置)S(h,c)を参照することにより、予備トラックの相対位置S(h,c)が当該トラックグループの先頭位置(最外周)でも最終位置(最内周)でもないトラックグループを探す(特定する)。特定されたトラックグループは、今回の電源投入に先行して発生した電源遮断時にリフレッシュ処理の対象となっていたトラックグループである。
First, the
そこでCPU115は、特定されたトラックグループのトラックグループ番号が、RAM113に復元されたリフレッシュ管理情報に含まれているトラックグループ番号に一致するかを判定する。もし、一致しているならば、CPU115は、復元されたリフレッシュ管理情報は正しく、最新のリフレッシュ管理情報は失われていないと判定する。
Therefore, the
これに対し、一致していないならば、CPU115は、復元されたリフレッシュ管理情報は誤っており、最新のリフレッシュ管理情報は失われていると判定する。この場合、CPU115は、特定されたトラックグループを対象に、順方向または逆方向、いずれのリフレッシュを行うかを決定する。
On the other hand, if they do not match, the
このリフレッシュの方向は、順方向または逆方向のいずれに決定されても構わない。本実施形態では、この方向を決定するのに、特定されたトラックグループにおける予備トラックの相対位置S(h,c)が用いられる。更に具体的に述べるならば、順方向のリフレッシュ及び逆方向のリフレッシュをそれぞれ前提とした場合に、予備トラックの相対位置S(h,c)から求められるリフレッシュされるべきトラックの数Nf及びNbの大小関係が用いられる。ここでは、NfがNb以下であるならば順方向のリフレッシュが決定され、NbがNf未満ならば逆方向のリフレッシュが決定される。 The refresh direction may be determined in either the forward direction or the reverse direction. In this embodiment, the relative position S (h, c) of the spare track in the specified track group is used to determine this direction. More specifically, the number of tracks Nf and Nb to be refreshed obtained from the relative position S (h, c) of the spare track when the forward refresh and the reverse refresh are assumed, respectively. A magnitude relationship is used. Here, if Nf is Nb or less, forward refresh is determined, and if Nb is less than Nf, reverse refresh is determined.
決定されたリフレッシュ方向は、本来の方向と異なっている可能性がある。そこで本実施形態では、上記特定されたトラックグループを対象とする全てのリフレッシュが完了しても、当該トラックグループと対応付けられているライト回数(ライトカウンタ)W(h,c)が後述するステップ816でクリアされないように構成されている。これにより、上記特定されたトラックグループを対象とするリフレッシュが完了すると、当該トラックグループを対象とするリフレッシュ処理が、リフレッシュ方向を切り替えて続けて実行される。 The determined refresh direction may be different from the original direction. Therefore, in this embodiment, even when all the refreshes for the identified track group are completed, the number of times of writing (write counter) W (h, c) associated with the track group is a step described later. It is configured not to be cleared at 816. As a result, when the refresh for the identified track group is completed, the refresh process for the track group is continuously executed while switching the refresh direction.
なお、フラッシュROM114に保存されるトラックシフトテーブル500に保持されている、トラックグループ毎の予備トラックの相対位置S(h,c)に、リフレッシュ方向を示す例えば1ビットの方向フラグD(h,c)が付加される構成とすることも可能である。つまり、トラックシフトテーブル500により、トラックグループ毎の予備トラックの相対位置S(h,c)及び方向フラグD(h,c)を保持する構成としてもよい。このような構成を適用するならば、トラックグループ当たり1ビットの情報を追加するだけで、電源遮断時に実行されていたリフレッシュ処理の方向を特定することができる。このため、上述のような、リフレッシュ方向の決定を伴う電源遮断対策が不要となる。 Note that, for example, a 1-bit direction flag D (h, c) indicating the refresh direction is displayed in the relative position S (h, c) of the spare track for each track group held in the track shift table 500 stored in the flash ROM 114. ) May be added. That is, the track shift table 500 may hold the relative position S (h, c) and the direction flag D (h, c) of the spare track for each track group. If such a configuration is applied, it is possible to specify the direction of the refresh process that has been executed at the time of power-off only by adding information of 1 bit per track group. This eliminates the need for a power shutdown measure that involves determining the refresh direction as described above.
さて上記ステップ805において、RAM113の所定の領域に有効なリフレッシュ管理情報が格納されているならば、CPU115は、当該リフレッシュ管理情報に含まれている方向フラグの状態に基づいてリフレッシュ処理の方向を判定すればよい。ステップ802からステップ805に分岐した場合は、このような状態となる。
In step 805, if valid refresh management information is stored in a predetermined area of the
しかし、RAM113の所定の領域に有効なリフレッシュ管理情報が格納されていないならば、つまりリフレッシュ管理情報がクリアされているならば、そのことは新たにトラックリフレッシュを行うことを意味することから、リフレッシュ処理の方向を調べる必要がある。ステップ802からステップ803及び804を介してステップ805に進んだ場合は、このような状態となる。この場合、ステップ805で取得される、ターゲットトラックグループ内の予備トラックの相対位置S(h,c)は、必ず当該トラックグループの先頭位置(最外周)または最終位置(最内周)のいずれかにある。
However, if valid refresh management information is not stored in a predetermined area of the
そこで、ターゲットトラックグループ内の予備トラックの相対位置S(h,c)が当該トラックグループの最内周にあるならば、CPU115は、当該トラックグループを対象とするリフレッシュ処理の方向を順方向とすることを決定する(ステップ805)。これに対し、ターゲットトラックグループ内の予備トラックの相対位置S(h,c)が当該トラックグループの最外周にあるならば、CPU115は、当該トラックグループを対象とするリフレッシュ処理の方向を逆方向とすることを決定する(ステップ805)。ステップ805においてCPU115は、決定されたリフレッシュ方向を示す方向フラグが含まれたリフレッシュ管理情報を、RAM113の所定の領域に格納する。
Therefore, if the relative position S (h, c) of the spare track in the target track group is at the innermost circumference of the track group, the
CPU115はステップ805を実行すると、上述のように、RAM113に格納されているリフレッシュ管理情報に含まれている方向フラグを参照することにより、リフレッシュ処理の方向が順方向であるかを判定する(ステップ806)
まず、ステップ806で判定されたリフレッシュ処理の方向が順方向である場合について説明する。この場合、CPU115は、予備トラックにディスク101上の外周側で隣接するトラックをリフレッシュの対象となるトラック(ターゲットトラック)として、当該隣接するトラックのデータをヘッド102により読み出すためのデータ読み出し制御をHDC110を介して実行する(ステップ810)。次にCPU115は、読み出されたデータを、予備トラックに書き込むためのデータ書き込み制御をHDC110を介して実行する(ステップ811)。これにより、予備トラックに外周側で隣接するトラック(ターゲットトラック)のデータが、当該予備トラック上でリフレッシュされる。
When executing the step 805, the
First, a case where the direction of the refresh process determined in
CPU115は、ターゲットトラックのデータの予備トラックへの書き込み(ステップ811)が正常に終了したことを確認すると、トラックシフトテーブル500に保持されている、現在リフレッシュ対象となっているトラックグループ内における予備トラックの相対位置S(h,c)を1トラック分ディスク101の外周側にずらす(ステップ812)。これにより、予備トラックが切り替えられる。このトラックシフトテーブル500の更新(予備トラックの切り替え)をもって1トラック分のリフレッシュが完了する。
When the
トラックシフトテーブル500の更新(ステップ812)の直前、直後のいずれの状態においても、ターゲットトラックに書き込まれていたデータは、当該トラック(元のトラック)と、当該トラックのデータの書き込み先(当該トラックにディスク101上の内周側で隣接するトラック)の両方に存在する。しかし、ターゲットトラックのデータの予備トラックへの書き込み(ステップ811)が正常に終了した場合、これら両トラックに同一データが存在する必要はない。 In both the state immediately before and after the update of the track shift table 500 (step 812), the data written in the target track is the track (original track) and the data write destination (the track). On the inner circumference side of the disk 101). However, when the writing of the data of the target track to the spare track (step 811) is normally completed, it is not necessary that the same data exist in both tracks.
そこで、上記ステップ812では、トラックシフトテーブル500の更新直前にターゲットトラックとして扱われていたトラックが新たな予備トラックに切り替えられるように、上述のように予備トラックの相対位置S(h,c)が1トラック分外周側にずらされる。ここで新たな予備トラックとなったトラックには、次回のリフレッシュ処理(ステップ810,811)で、当該新たな予備トラックにディスク101上の外周側で隣接するトラックのデータが書き込まれることになる。なお、トラックシフトテーブル500(フラッシュROM114に保存されているトラックシフトテーブル500)の更新が、前述のように更新中の電源遮断に配慮した形で行われるならば、更新中の電源遮断によって予備トラックの切り替えに失敗することはない。
Therefore, in
CPU115は1トラック分のリフレッシュが完了すると、リフレッシュ処理の中断要求があるかを判定する(ステップ813)。ホストシステム200からのコマンドの受信は、リフレッシュ処理の中断要求を判定する条件の1つである。HDC110内のホストブロック123がホストシステム200からコマンドを受信すると、当該ホストブロック123のハードウェアの機能によりHDD100は即座にビジー状態に遷移する。同時に、このビジー状態を表すフラグ(ビジーフラグ)がセットされる。そこでCPU115は、ステップ813でビジーフラグの状態をチェックする。
When the refresh for one track is completed, the
なお、ビジーフラグのセットはリフレッシュ動作が実行中であるかに関係なく行われる。したがって、ホストシステム200から認識されるコマンドの応答時間は、当該コマンドを発行してからその際に実行中のリフレッシュが完了するまでの時間と本来のコマンド実行時間との合計となる。このことから、ホストシステム200からのコマンドが受信された場合に、ターゲットトラックグループを対象とする全てのリフレッシュが終わるまで待つと、当該コマンドへの応答性を低下させてしまう。
The busy flag is set regardless of whether the refresh operation is being executed. Therefore, the response time of the command recognized from the
そこで本実施形態では、コマンドへの応答性の低下を回避するために、1トラック分のリフレッシュが完了する毎に、上述のようにリフレッシュ処理の中断要求があるかが判定される(ステップ813)。そして、1トラック分のリフレッシュの実行中にホストシステム200からのコマンドが受信された場合のように、リフレッシュ処理の中断要求があるならば(ステップ813がYES)、CPU115はステップ817に分岐し、速やかにリフレッシュ処理を中断させてステップ606(図6参照)を終了させる。CPU115はステップ606を終了させるとステップ607を実行する。このステップ607においても、CPU115は、速やかにステップ603に分岐させてホストシステム200からのコマンドのための処理を開始させるため、ステップ813と同様な処理を行う。
Therefore, in this embodiment, in order to avoid a decrease in responsiveness to a command, it is determined whether or not there is a refresh processing interruption request as described above every time the refresh for one track is completed (step 813). . If there is a request for interrupting the refresh process (step 813 is YES) as in the case where a command is received from the
一方、リフレッシュ処理の中断要求がない場合(ステップ813がNO)、CPU115は、ターゲットトラックグループを対象とするリフレッシュを全て完了したかを判定する(ステップ814)。この判定は、新たな予備トラックの相対位置S(h,c)がターゲットトラックグループ内の先頭位置(最外周)にあるかによって行われる。その理由は、リフレッシュ方向が順方向である場合、予備トラックの相対位置S(h,c)がターゲットトラックグループ内の先頭位置(最外周)になったときが、当該グループ内の全トラックに対するリフレッシュの完了を意味するためである。
On the other hand, if there is no request for interrupting the refresh process (NO in step 813), the
もし、新たな予備トラックの相対位置S(h,c)がターゲットトラックグループ内の先頭位置(最外周)になく、したがって当該グループ内の全トラックに対するリフレッシュが完了していなければ(ステップ814がNO)、CPU115はステップ810に分岐して、新たなターゲットトラック、つまり新たな予備トラックにディスク101上の外周側で隣接するトラックを対象としたリフレッシュを行う。これに対し、ターゲットトラックグループ内の全トラックに対するリフレッシュが完了しているならば(ステップ814がYES)、CPU115はステップ815に分岐することでステップ810乃至814の処理ループ(トラックグループ処理ループ)を抜ける。
If the relative position S (h, c) of the new spare track is not at the head position (outermost circumference) in the target track group, and therefore refreshing of all the tracks in the group has not been completed (NO in step 814). ), The
次に、ステップ806で判定されたリフレッシュ方向が逆方向である場合について簡単に説明する。この場合、CPU115は、ステップ820乃至824の処理を行う。これらステップ820乃至824は、それぞれステップ810乃至814の順方向のリフレッシュ処理に対応した逆方向のリフレッシュ処理であり、方向が逆転する以外は順方向のリフレッシュ処理と同様である。逆方向のリフレッシュ処理で新たな予備トラックの相対位置S(h,c)がターゲットトラックグループ内の最終位置(最内周)になった結果、当該グループ内の全トラックに対するリフレッシュの完了が判定されると(ステップ824)、CPU115はステップ815に分岐することでステップ820乃至824の処理ループを抜ける。
Next, the case where the refresh direction determined in
ステップ815においてCPU115は、ターゲットトラックグループを対象とするリフレッシュ処理が完了し、現在処理中のトラックグループがないことを表すため、RAM113に格納されているリフレッシュ管理情報をクリアする。このリフレッシュ管理情報のクリアにより、その後ステップ802及びステップ806での判定を正しく行うことが可能となる。
In
次にCPU115は、リフレッシュ処理が完了したトラックグループに対応付けてライトカウントテーブル400に保持されているライト回数W(h,c)を、0に初期化(つまりクリア)する(ステップ816)。ライトカウントテーブル400に保持されているトラックグループ毎のライト回数W(h,c)は、そのトラックグループへのライト動作の実行回数を示す。ライト回数W(h,c)は、当該ライト回数W(h,c)と対応付けられているトラックグループにおけるデータの劣化の程度と相関がある。そのため本実施形態では、ライト回数W(h,c)は便宜的にデータ劣化の程度として扱われる。トラックグループを対象とするリフレッシュ処理が完了した直後は、当該グループにおけるデータの劣化はない。このことを、リフレッシュ処理が完了したトラックグループに対応付けられたライト回数W(h,c)に反映させるために、上述のように当該ライト回数W(h,c)が0に初期化される。
Next, the
CPU115は、ステップ816を実行すると、再びステップ802に分岐して次のトラックグループに対する処理を開始する。この場合、ステップ802からの分岐先は常にステップ803になり、リフレッシュを必要とするトラックグループを検索するための動作を含む処理が上述の場合と同様に行われる。リフレッシュ処理の中断要求がなければ、トラックグループを対象とするリフレッシュ処理(トラックリフレッシュ処理)が終了するのは、それを必要とするトラックグループがなくなった場合のみである(ステップ804がNO)。
When executing
[第1の変形例]
次に上記実施形態の第1の変形例について説明する。第1の変形例の特徴は、トラックシフトテーブル500が、ライトカウントテーブル400と同様にRAM113に格納される点にある。このような構成は、例えば、図1に示されるフラッシュROM114が頻繁にデータの書き換えが行えないか、或いはフラッシュROM114に代えて、書き換えが不可能なROMが用いられる場合に必須となる。
[First Modification]
Next, a first modification of the above embodiment will be described. A feature of the first modification is that the track shift table 500 is stored in the
第1の変形例でにおいても、図8のフローチャートに従うトラックリフレッシュ処理が実行される。但し第1の変形例では、例えばステップ805の直後に、CPU115の制御により、RAM113に格納されているリフレッシュ管理情報及びトラックシフトテーブル500がディスク101の所定の領域に保存される。このときリフレッシュ管理情報に含まれている実行中フラグはセットされており、当該管理情報に含まれているトラックグループ番号で指定されるトラックグループを対象とするリフレッシュ処理の実行中であることを示す。また第1の変形例では、例えばステップ816の直後に、CPU115の制御により、ディスク101の上記領域に保存されているリフレッシュ管理情報に含まれている実行中フラグがリセットされる。しかる後に、その時点においてRAM113に格納されているトラックシフトテーブル500が、ディスク101の上記領域に保存される。
Also in the first modification, the track refresh process according to the flowchart of FIG. 8 is executed. However, in the first modification, for example, immediately after step 805, the refresh management information and the track shift table 500 stored in the
第1の変形例によれば、リフレッシュ処理の実行中に不意の電源遮断が発生しても、その次のHDD100の起動時に、ディスク101の所定の領域に、実行中を示す実行中フラグが残っているかをチェックすることで、それを検知できる。
According to the first modified example, even if the power supply is unexpectedly shut down during the refresh process, an in-execution flag indicating that the execution is in progress remains in a predetermined area of the
さて、ディスク101の各トラックに配置される各セクタに書き込まれるデータには、HDC110によりECC(Error Correcting Code: エラー訂正符号)データが付加されるのが一般的である。第1の変形例では、このECCデータのシード値として、当該ECCデータが付加されるセクタが配置されるトラックの仮想シリンダ番号に基づいて生成される値が使用される。更に具体的に述べるならば、ECCデータのシード値として、当該ECCデータが付加されるセクタが配置されるトラックの仮想シリンダ番号及びヘッド番号と、当該セクタのセクタ番号とに基づいて生成される値、例えば仮想シリンダ番号、ヘッド番号及びセクタ番号が連結された値が使用される。
In general, ECC (Error Correcting Code) data is added by the
このように、仮想シリンダ番号がECCデータのシード値の生成に用いられる構成では、たとえトラックシフトテーブル500に保持されている予備セクタの相対位置が誤っていても、HDC110において、その誤りを検出できる。その理由は次の通りである。まず、誤った予備セクタに隣接するトラックのデータがステップ810または820で読み出されるものとする。この場合、シード値が異なるのでHDC110においてECCエラー(シードエラー)となる。これにより、予備セクタの相対位置が誤っていることが検出できる。
As described above, in the configuration in which the virtual cylinder number is used for generating the seed value of the ECC data, even if the relative position of the spare sector held in the track shift table 500 is incorrect, the
さて、HDD100の起動時に、ディスク101の所定の領域に、実行中を示す実行中フラグが残っているものとする。この場合、CPU115は、リフレッシュ処理の実行中に不意の電源遮断が発生したことを判定(検知)する。ディスク101の所定の領域に保存されている、上記実行中フラグを含むリフレッシュ管理情報と、トラックシフトテーブル500とは、ディスク101の所定の領域から読み出されてRAM113の所定の領域に格納(復元)される。
Now, it is assumed that an in-execution flag indicating that an execution is in progress remains in a predetermined area of the
ここで、不意の電源遮断が発生した際にリフレッシュ処理が実行されていたトラックグループに対応付けてトラックシフトテーブル500に保持されている予備トラックの相対位置は、当該電源遮断のために誤っている可能性がある。そこで第1の変形例では、予備トラックの相対位置が誤っている場合、以下に述べるように正しい相対位置に訂正される。 Here, the relative position of the spare track held in the track shift table 500 in association with the track group for which the refresh process has been executed when the unexpected power shutdown occurs is incorrect due to the power shutdown. there is a possibility. Therefore, in the first modification, when the relative position of the spare track is incorrect, it is corrected to the correct relative position as described below.
まず、RAM113の所定の領域に格納されたトラックシフトテーブル500から、電源遮断が発生した際にリフレッシュ処理が実行されていたトラックグループに対応付けられている予備トラックの相対位置が取得される。このトラックグループは、RAM113の所定の領域に格納されたリフレッシュ管理情報に含まれているトラックグループ番号によって示される。
First, from the track shift table 500 stored in a predetermined area of the
次に、ターゲットトラックグループ内の各トラックを対象に、仮想シリンダ番号が実シリンダ番号と同じであると仮定してデータ読み出し動作が行われる。このデータ読み出し動作により、シード値が合致しているトラックとそうでないトラック(シードエラーが発生しているトラック)との境界が特定される。この境界に隣接する2つのトラックのうち、シードエラーが発生しているトラックが、正しい予備トラックとして決定される。決定された予備トラックの相対位置が、トラックシフトテーブル500から取得された予備トラックの相対位置と異なるならば、当該取得された予備トラックの相対位置は誤っている。この場合、CPU115は、トラックシフトテーブル500に保持されている、誤っている予備トラックの相対位置の値を、上記決定された予備トラックの相対位置の値に訂正する。
Next, a data read operation is performed assuming that the virtual cylinder number is the same as the actual cylinder number for each track in the target track group. By this data read operation, the boundary between the track having the matching seed value and the track not having the seed value (track having a seed error) is specified. Of the two tracks adjacent to this boundary, the track in which the seed error has occurred is determined as the correct spare track. If the determined relative position of the spare track is different from the relative position of the spare track acquired from the track shift table 500, the acquired relative position of the spare track is incorrect. In this case, the
ここで、ターゲットトラックグループ内の各トラックからのデータの読み出しの順序の決定には、探索を早く行うために二分検索が用いられる。トラック内の読み出されるべきセクタについては特に制約はなく、例えば、当該トラック内の予め定められた相対位置のセクタであってもよい。また、トラック内で回転待ちが最も少なくなるセクタが動的に選択されてもよい。 Here, binary search is used to determine the order of reading data from each track in the target track group in order to speed up the search. The sector to be read in the track is not particularly limited, and may be a sector at a predetermined relative position in the track, for example. In addition, the sector with the least waiting for rotation in the track may be dynamically selected.
第1の変形例によれば、不意の電源遮断が発生しても、その次のHDD100の起動時に、そのことを検知できる。しかも第1の変形例によれば、トラックシフトテーブル500をフラッシュROMに格納しなくても、トラックシフトテーブル500に保持されている予備トラックの相対位置の情報を復元できる。したがって第1の変形例によれば、フラッシュROM114がトラックシフトテーブル500を格納するのに利用できなくても、或いはフラッシュROM114を有していないHDDであっても、トラックシフトテーブル500に基づくリフレッシュ処理を実現できる。
According to the first modified example, even if an unexpected power interruption occurs, this can be detected at the next startup of the
[第2の変形例]
次に上記実施形態の第2の変形例について説明する。第2の変形例の特徴は、逆方向のリフレッシュ処理における回転待ち時間の短縮のために、リフレッシュの単位(つまりリフレッシュのためのデータの読み出し/書き込みの単位)を最適化するようにした点にある。
[Second Modification]
Next, a second modification of the above embodiment will be described. A feature of the second modified example is that the refresh unit (that is, the unit for reading / writing data for refresh) is optimized in order to reduce the rotation waiting time in the reverse refresh process. is there.
図9は逆方向のリフレッシュ処理による回転待ち時間の短縮を目的とした、リフレッシュの単位の最適化についての概念図である。
図9に示されるように、ディスク101に配置される互いに隣接するトラックの間にはそのトラック内の先頭セクタの位置を調整するための、トラックスキューがかけられている。トラックスキューの値は、順方向アクセス、即ちLBAが増加する方向へのシーケンシャルアクセスでの回転待ち時間が最小になるように決められる。つまり、ディスク101上のあるトラックの最終セクタをアクセスした後、ヘッド102を次の(隣接する)トラックへ移動させるのに要する時間がトラックスキューの最小値となる。
FIG. 9 is a conceptual diagram of optimization of refresh units for the purpose of shortening the rotation waiting time by reverse refresh processing.
As shown in FIG. 9, a track skew is applied between adjacent tracks arranged on the
このことから、トラックリフレッシュが順方向に行われる場合にはトラックスキューが最適化されていることになり、回転待ち時間は少ない。しかし、逆方向にトラックリフレッシュが行われると、回転待ち時間が著しく増加する。 Therefore, when the track refresh is performed in the forward direction, the track skew is optimized, and the rotation waiting time is small. However, when the track refresh is performed in the reverse direction, the rotation waiting time increases remarkably.
図9(a)は、逆方向のトラックリフレッシュ(つまりリフレッシュの単位が上記実施形態のように1トラックの場合に行われる逆方向のリフレッシュ処理)において、ヘッド102がディスク101上に描く軌跡を表す。図9(a)に示されるように、逆方向のトラックリフレッシュでは、ヘッド102はディスク101上に、軌跡903、軌跡902及び軌跡901を順次描く。
FIG. 9A shows a trajectory that the
軌跡903は、ターゲットトラックからデータを読み出すための読み出し動作(リードアクセス)におけるヘッド102が描く軌跡を示し、軌跡901は読み出されたデータを予備トラックへ書き込むための書き込み動作(ライトアクセス)におけるヘッド102が描く軌跡を示す。ここでは、軌跡902の長さに相当する長い回転待ち時間が発生する。
A
第2の変形例では、図9(a)における軌跡902のような回転待ち時間を短縮するために、リフレッシュの単位(1回のリフレッシュ処理当たりのリフレッシュ量)が最適化される。図9(b)は、その一例として、リフレッシュの単位が1トラックを超えて2トラック以下に最適化された場合に行われる逆方向のリフレッシュ処理において、ヘッド102がディスク101上に描く軌跡を表す。図9(b)の例では、ヘッド102はディスク101上に、軌跡913、軌跡912及び軌跡911を順次描く。
In the second modification, the refresh unit (refresh amount per refresh process) is optimized in order to shorten the rotation waiting time as indicated by the
軌跡913は、ターゲットトラックからデータを読み出すためのリードアクセスにおけるヘッド102が描く軌跡を示し、軌跡911は読み出されたデータを予備トラックへ書き込むためのライトアクセスにおけるヘッド102が描く軌跡を示す。軌跡912の長さに相当する回転待ち時間は、図9(a)の例(1トラック単位のリフレッシュ)における軌跡902の長さに相当する回転待ち時間に比べて短縮されている。
A locus 913 indicates a locus drawn by the
トラックスキューの値によっては、リフレッシュの単位を、1トラック未満とする方がよいこともあり、このような最適化も可能である。図9(c)は、このようなリフレッシュの単位が1トラック未満に最適化された場合に行われる逆方向のリフレッシュ処理において、ヘッド102がディスク101上に描く軌跡を表す。図9(c)の例では、ヘッド102はディスク101上に、軌跡923、軌跡922及び軌跡921を順次描く。
Depending on the value of the track skew, the refresh unit may be less than one track, and such optimization is possible. FIG. 9C shows a trajectory that the
軌跡923は、ターゲットトラックからデータを読み出すためのリードアクセスにおけるヘッド102が描く軌跡を示し、軌跡921は読み出されたデータを予備トラックへ書き込むためのライトアクセスにおけるヘッド102が描く軌跡を示す。軌跡922の長さに相当する回転待ち時間は、図9(a)の例における軌跡902の長さに相当する回転待ち時間に比べて短縮されている。また、リフレッシュの単位を大きくすると、その大きさに応じてバッファRAM111内に大きなバッファ領域を確保する必要が生じる。そこで、このバッファ領域を減らす目的でリフレッシュの単位を小さくしてもよい。
A
次に、リフレッシュの単位の具体的な算出方法について述べる。
上述のように、図9(b)はリフレッシュの単位が1トラックを超えて2トラック以下に最適化された場合に行われる逆方向のリフレッシュ処理において、ヘッド102がディスク101上に描く軌跡を表す。1トラック及び2トラックは、それぞれ、ディスク101の1回転及び2回転に相当する。したがって、リフレッシュの単位が1トラックを超えて2トラック以下を、リフレッシュの単位がディスク101の1回転を超えて2回転以下と言い換えることも可能である。
Next, a specific method for calculating the refresh unit will be described.
As described above, FIG. 9B shows a trajectory that the
ここで、ディスク101の単位時間(1秒)当たりの回転数をf[回転/s]、xトラックに渡るディスク101の移動(シーク動作)に必要な時間をtx[s]とする。また、軌跡913に相当する(軌跡913を描くのに必要な)アクセス量、つまりリフレッシュの単位を、ディスク101の回転数u[回転]で表す。但し、uは、リフレッシュの単位の前提条件から、1<u≦2である。
Here, the number of revolutions per unit time (one second) of the
次に、軌跡912(回転待ち時間)に相当するディスク101の回転数をw[回転]とする。txはヘッド102の物理的な移動に要する時間のみでなく、ヘッド102の移動先でのリード・ライトアクセスのためのセットアップの時間も含む。トラックスキューは1トラック(x=1)のシークに必要な時間t1[s]に等しい。この時間t1[s]におけるディスク101の回転数は、ft1で表される。つまりトラックスキューは回転数ft1に相当する。
Next, the rotation speed of the
このとき、図9(b)から、軌跡913及び912にそれぞれ対応するリードアクセス及び回転待ち時間のために、ディスク101の2回転からトラックスキューに相当する回転数ft1を減じただけの回転数を要することがわかる。したがって、次式
u+w+ft1 =2 (1)
が成立する。
At this time, from FIG. 9B, the number of revolutions obtained by subtracting the number of revolutions ft 1 corresponding to the track skew from the two revolutions of the
Is established.
また、図9(b)から、wは2トラックに渡るヘッド102の移動に要する回転数を少なくとも必要とすることがわかる。但し、軌跡913の開始位置が、図9(b)の例とは異なって、例えば先頭トラックの終端側にある場合のように、軌跡913の開始位置によっては、トラック渡りが2度発生する可能性、すなわち軌跡913が3トラックに渡る可能性もある。このため、wは次式
w≧ft3 (2)
に示される制約を受ける。wがこの制約を満たさない場合、1回転余分に回転待ちが発生する。
Further, it can be seen from FIG. 9B that w requires at least the number of revolutions required for the movement of the
Subject to the restrictions shown in If w does not satisfy this restriction, a waiting for rotation occurs for one extra rotation.
上記(1)式及び(2)式と、リフレッシュの単位u[回転]の前提条件1<u≦2とから、リフレッシュの単位u[回転]を、次式
1<u≦2−f(t1+t3)[回転] (3)
のように求めることができる。ここでは、等号が成立する場合(つまりu=2−f(t1+t3)の場合)が最も効率がよく、これ(2−f(t1+t3))を超えない範囲でリフレッシュの単位を決めればよい。
From the above formulas (1) and (2) and the
Can be obtained as follows. Here, the case where the equal sign holds (that is, when u = 2−f (t 1 + t 3 )) is the most efficient, and refreshing is performed within a range not exceeding this (2−f (t 1 + t 3 )). Decide on the unit.
なお、図9(b)の例では、軌跡911に相当するライトアクセスが完了したら次のリフレッシュの単位を対象とするリフレッシュ処理が開始され、リードアクセスが行われる。このリードアクセスの開始位置は、軌跡913に相当するリードアクセスが完了した位置となる。軌跡911に相当するライトアクセスでのアクセス量は、軌跡913に相当するリードアクセスでのそれに等しい。したがって、軌跡911に相当するライトアクセスが完了した位置から次のリードアクセスの開始位置にヘッド102を移動させるためのシーク動作に要するディスク101の回転数は、トラックスキューに相当する回転数ft1に等しい。このため、最小の回転待ち時間で次のリフレッシュの単位に移行できる。
In the example of FIG. 9B, when the write access corresponding to the
次に図9(c)は、上述のように、リフレッシュの単位が1トラック未満(1回転未満)に最適化された場合に行われる逆方向のリフレッシュ処理において、ヘッド102がディスク101上に描く軌跡を表す。この場合も、リフレッシュの単位が1トラック(1回転)を超える場合と同様に、リフレッシュの単位u[回転]を、次式
0<u≦1−f(t1+t2)[回転] (4)
のように求めることができる。
Next, FIG. 9C shows that the
Can be obtained as follows.
リフレッシュの単位の最適化を、より一般的に表すために、kを1以上の整数として、リフレッシュの単位を(k−1)回転を超え、k回転以下に最適化する場合を想定する。この場合、リフレッシュの単位u[回転]を、次式
k−1<u≦k−f(t1+tk+1)[回転] (5)
のように求めることができる。つまり、リフレッシュの単位uは、t1にtk+1を加算した値(t1+tk+1)に基づいて決定される。ここで、t1は上述のようにトラックスキューの値に相当し、tk+1はリードアクセスが完了した位置から当該リードアクセスで読み出されたデータを書き込むためのライトアクセスの開始位置にヘッド102を移動させるのに必要な時間に相当する。
In order to more generally express the optimization of the refresh unit, it is assumed that k is an integer equal to or greater than 1, and the refresh unit is optimized to exceed (k−1) rotations and less than k rotations. In this case, the refresh unit u [rotation] is expressed by the following equation: k−1 <u ≦ k−f (t 1 + t k + 1 ) [rotation] (5)
Can be obtained as follows. That is, the unit u of refresh is determined based on the value obtained by adding the t k + 1 to t 1 (t 1 + t k + 1). Here, t 1 corresponds to the value of the track skew as described above, and t k + 1 is the head from the position where the read access is completed to the write access start position for writing the data read by the read access. This corresponds to the time required to move 102.
例えば、f=5400[rpm]=90[回転/s]、t1=2.0[ms]、t2=2.2[ms]、t3=2.4[ms]のHDD100であれば、kが1の場合には、
0<u≦1−90×(2.0+2.2)×10-3=0.622[回転]
となる。また、kが2の場合には、
1<u≦2−90×(2.0+2.4)×10-3=1.604[回転]
となる。
For example, if the
0 <u ≦ 1-90 × (2.0 + 2.2) × 10 −3 = 0.622 [rotation]
It becomes. When k is 2,
1 <u ≦ 2-90 × (2.0 + 2.4) × 10 −3 = 1.604 [rotation]
It becomes.
いずれの場合とも、1回のリフレッシュでのアクセス量を、これらの回転数を超えずにアクセスすることが可能なセクタ(ブロック)数にすればよい。セクタ数の算出にあたっては、アクセス範囲に含まれるトラック渡り部分にはアクセス可能なセクタがないことを考慮する必要がある。 In any case, the access amount in one refresh may be the number of sectors (blocks) that can be accessed without exceeding the number of rotations. In calculating the number of sectors, it is necessary to consider that there is no accessible sector in the track crossing portion included in the access range.
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。 In addition, this invention is not limited to the said embodiment or its modification example as it is, A component can be deform | transformed and embodied in the range which does not deviate from the summary in an implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modification. For example, you may delete a some component from all the components shown by embodiment or its modification.
100…磁気ディスク装置(HDD)、101…ディスク、102…ヘッド、113…RAM、114…フラッシュROM、115…CPU(コントローラ)、201…トラック、400…ライトカウントテーブル、500…トラックシフトテーブル。
DESCRIPTION OF
Claims (3)
データリフレッシュに用いられる予備データトラックと複数のデータトラックを備えるデータトラックグループが複数設けられる磁気ディスクと、
前記複数のデータトラックグループのいずれかのデータトラックグループ内の前記複数のデータトラックをリフレッシュする際に、前記データトラックグループ内で前記予備データトラックに隣接するデータトラックに記録されているデータが前記予備データトラックに移動され、これに応じて前記隣接データトラックが次の予備データトラックとなる切り替えが繰り返されて、前記データトラックグループ内で予備データトラックが順に移動されるように制御するコントローラと
を具備する磁気ディスク装置。 In a magnetic disk device that performs data refresh,
A magnetic disk Lud over data track group comprising a preliminary data tracks and a plurality of data tracks that are used in the data refreshing is plurality,
When refreshing the plurality of data tracks in any data track group of the plurality of data track groups, the data recorded in the data track adjacent to the front Ki予 Bei data track in the data track group before being moved to Ki予 Bei data tracks, the adjacent data tracks are repeated switching which is a next preliminary data tracks in response to this, the control to the preliminary data tracks are moved in sequence within the data track group magnetic disk device you and a controller.
前記複数のデータトラックグループのいずれかのデータトラックグループ内の前記複数のデータトラックをリフレッシュする際に、前記データトラックグループ内で前記予備データトラックに隣接するデータトラックに記録されているデータが前記予備データトラックに移動され、これに応じて前記隣接データトラックが次の予備データトラックとなる切り替えが繰り返されて、前記データトラックグループ内で予備データトラックが順に移動されるように制御する制御手段を具備するコントローラ。 And a controller for controlling the refreshing of data Lud over data track group comprising a preliminary data tracks and a plurality of data tracks that are used in data refresh is recorded in the plurality is a magnetic disk,
When refreshing the plurality of data tracks in any data track group of the plurality of data track groups, the data recorded in the data track adjacent to the front Ki予 Bei data track in the data track group before being moved to Ki予 Bei data tracks, the adjacent data tracks are repeated switching which is a next preliminary data tracks in response to this, the control to the preliminary data tracks are moved in sequence within the data track group Turkey controller to include a control means for.
前記複数のデータトラックグループのいずれかのデータトラックグループ内の前記複数のデータトラックをリフレッシュする際に、前記データトラックグループ内で前記予備データトラックに隣接するデータトラックに記録されているデータを前記予備データトラックに移動し、これに応じて前記隣接データトラックを次の予備データトラックとする切り替えを繰り返して、前記データトラックグループ内で予備データトラックを順に移動するデータリフレッシュ方法。 A data refresh method in the magnetic disk apparatus having a magnetic disk Lud over data track group comprising a preliminary data tracks and a plurality of data tracks that are used in the data refreshing is plurality,
When refreshing the plurality of data tracks in any data track group of the plurality of data track groups, the data recorded in the data track adjacent to the front Ki予 Bei data track in the data track group Go before Ki予 Bei data tracks, the adjacent data tracks is repeatedly switched to the next preliminary data tracks in response to this, the mobile to Lud over data refresh in the preliminary data tracks sequentially in the data track group Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010040941A JP4869416B2 (en) | 2010-02-25 | 2010-02-25 | Magnetic disk device and data refresh method in the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010040941A JP4869416B2 (en) | 2010-02-25 | 2010-02-25 | Magnetic disk device and data refresh method in the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008186317A Division JP4469906B2 (en) | 2008-07-17 | 2008-07-17 | Magnetic disk device and data refresh method in the same |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010182406A JP2010182406A (en) | 2010-08-19 |
JP4869416B2 true JP4869416B2 (en) | 2012-02-08 |
Family
ID=42763863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010040941A Expired - Fee Related JP4869416B2 (en) | 2010-02-25 | 2010-02-25 | Magnetic disk device and data refresh method in the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4869416B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5681511B2 (en) | 2011-01-31 | 2015-03-11 | 株式会社東芝 | Information recording apparatus and information recording method |
JP5781010B2 (en) | 2012-05-23 | 2015-09-16 | 株式会社東芝 | Disk storage device and method |
JP2014081984A (en) | 2012-10-18 | 2014-05-08 | Toshiba Corp | Information recording device and information recording method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0335477A (en) * | 1989-06-30 | 1991-02-15 | Nec Corp | Peripheral memory controller |
JP4063694B2 (en) * | 2003-03-11 | 2008-03-19 | 株式会社日立グローバルストレージテクノロジーズ | Magnetic disk unit |
JP4263645B2 (en) * | 2004-03-17 | 2009-05-13 | ヒタチグローバルストレージテクノロジーズネザーランドビーブイ | Magnetic disk device and refresh method |
JP4469906B2 (en) * | 2008-07-17 | 2010-06-02 | 株式会社東芝 | Magnetic disk device and data refresh method in the same |
-
2010
- 2010-02-25 JP JP2010040941A patent/JP4869416B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010182406A (en) | 2010-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4469906B2 (en) | Magnetic disk device and data refresh method in the same | |
US8363349B2 (en) | Recording medium controller and method thereof | |
US8667248B1 (en) | Data storage device using metadata and mapping table to identify valid user data on non-volatile media | |
US8825977B1 (en) | Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life | |
US8819375B1 (en) | Method for selective defragmentation in a data storage device | |
US8427771B1 (en) | Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors | |
US8612798B1 (en) | Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails | |
US6845405B1 (en) | Disk drive executing part of a linked disk command | |
US8578100B1 (en) | Disk drive flushing write data in response to computed flush time | |
JP5058060B2 (en) | Data storage device and adjacent track rewrite processing method. | |
JP4675881B2 (en) | Magnetic disk drive and control method thereof | |
JP2008152440A (en) | Hard disk drive and command execution method | |
US9070378B2 (en) | Partial write system | |
JP5728407B2 (en) | Information recording / reproducing apparatus and information recording / reproducing method | |
JP4922433B2 (en) | Magnetic disk apparatus and data block rewriting method | |
US20170200470A1 (en) | Magnetic disk device and write processing method | |
JP4504450B1 (en) | Magnetic disk device and data refresh method in the same | |
JP4660613B2 (en) | Data refresh method in magnetic disk drive | |
JP4869416B2 (en) | Magnetic disk device and data refresh method in the same | |
US20120162809A1 (en) | Magnetic disk drive and method of accessing a disk in the drive | |
JPH10301721A (en) | Method for processing defective sector of information storage medium, and information storing and reproducing device | |
US8959284B1 (en) | Disk drive steering write data to write cache based on workload | |
JP2002100126A (en) | Recording and reproducing device, storage device, computer system, data processing method, program transmitting device | |
US10867633B1 (en) | Reduced adjacent track erasure from write retry | |
JP4919983B2 (en) | Data storage device and data management method in data storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110928 |
|
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: 20111025 |
|
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: 20111115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141125 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |