JP4865062B2 - 磁気ディスク装置及び同装置におけるリフレッシュ方法 - Google Patents
磁気ディスク装置及び同装置におけるリフレッシュ方法 Download PDFInfo
- Publication number
- JP4865062B2 JP4865062B2 JP2010150348A JP2010150348A JP4865062B2 JP 4865062 B2 JP4865062 B2 JP 4865062B2 JP 2010150348 A JP2010150348 A JP 2010150348A JP 2010150348 A JP2010150348 A JP 2010150348A JP 4865062 B2 JP4865062 B2 JP 4865062B2
- Authority
- JP
- Japan
- Prior art keywords
- track
- group
- tracks
- bit
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 33
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 230000008685 targeting Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006866 deterioration Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
- G11B5/09—Digital recording
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Digital Magnetic Recording (AREA)
Description
本発明の実施形態は、磁気ディスク装置及び同装置におけるリフレッシュ方法に関する。
近年、磁気ディスク装置の高容量化に伴い、高記録密度化、高トラック密度化が進んでいる。高トラック密度化により、ディスク上で隣接するトラック間の間隔(つまりトラックピッチ)が狭小化されている。
トラックピッチが狭小化されると、トラックにデータを磁気的に書き込む際に、隣接するトラックに既に磁気的に書き込まれているデータ(磁気データ)の磁気的劣化が発生する可能性がある。つまり、隣接するトラックの磁気データ(より詳細には、磁気データの磁界の強さ)が弱められる可能性がある。このような現象は、サイドイレーズ現象と呼ばれる。サイドイレーズ現象の要因は、トラックにヘッドを位置付ける際の誤差及び当該ヘッドから漏洩する磁界にある。
サイドイレーズ現象によって、対応するトラックの磁気データが弱められても、直ちに読み出しエラーが発生するわけではない。サイドイレーズ現象が繰り返し発生すると、対応するトラックの磁気データが徐々に弱まる。サイドイレーズ現象の発生回数が、ある閾値を超えると、誤り訂正符号(ECC)を最大限に用いて磁気データの修復を試みても、当該磁気データを修復することが困難となり、読み出しエラーとなる。これにより、結果として磁気データが消失する。
そこで近年の磁気ディスク装置では、サイドイレーズ現象の繰り返しによりトラックからの磁気データの読み出しが不能になる前に、当該磁気データの磁気的な劣化を回復するためのデータリフレッシュ(書き直し)が必須になりつつある。データリフレッシュは、磁気的に劣化した磁気データを、対応するトラックから読み出し、当該読み出された磁気データを当該トラックに再度書き込む動作として知られている。この磁気データの書き直し(つまりデータリフレッシュ)により、当該磁気データの磁界は強くなり、安定する。
しかし、ディスク上の各トラックをあまり頻繁にリフレッシュすると、磁気ディスク装置全体のパフォーマンスを低下させることになり好ましくない。一方、サイドイレーズ現象が繰り返し発生するトラックと、当該トラックに隣接するトラックへのデータ書き込みの回数との間には相関がある。
そこで従来の磁気ディスク装置では、上述の相関を利用するために、ディスク上のトラック毎に書き込み回数をカウントする技術が適用される。この技術によれば、書き込み回数が閾値を超えたトラックに隣接するトラックが、サイドイレーズ現象の繰り返しに起因して磁気データが弱められたトラック(つまりリフレッシュされるべきトラック)として検出される。
しかし、ディスク上のトラック毎に書き込み回数をカウントする技術では、当該トラック毎に書き込み回数を保持するために、膨大な容量の作業メモリ領域を必要とする。
そこで最近は、ディスク上のトラックの集合を当該ディスクの半径方向に複数のグループに分けて、グループ単位に書き込み回数(総書き込み回数)をカウントする技術(以下、先行技術と称する)が提案されている。各グループに属するトラック群は、ディスクの半径方向に連続する。
そこで最近は、ディスク上のトラックの集合を当該ディスクの半径方向に複数のグループに分けて、グループ単位に書き込み回数(総書き込み回数)をカウントする技術(以下、先行技術と称する)が提案されている。各グループに属するトラック群は、ディスクの半径方向に連続する。
上述した先行技術では、グループ単位に書き込み回数(総書き込み回数)がカウントされ、書き込み回数が閾値を超えたグループに属する全トラックのデータがリフレッシュされる。
ところが、ホストからの磁気ディスク装置に対するアクセス(例えば書き込み)には、局所性がある。つまり、ホストからのアクセスが、グループ内の全トラックのうち、ディスクの半径方向に連続する数トラックに集中する可能性が高い。このことは、逆に、書き込み回数が閾値を超えたグループに属するトラックの中に、データの書き込みの回数が少ないトラックに隣接するトラックが含まれている可能性があることを示す。このような隣接トラックに書き込まれているデータは、磁気的に劣化していない可能性が高い。しかし。先行技術では、このようなトラックのデータもリフレッシュされる。つまり不要なリフレッシュが発生する。
そこで本発明が解決しようとする課題は、不要なリフレッシュが発生するのを効果的に防止できる磁気ディスク装置及び同装置におけるリフレッシュ方法を提供することにある。
実施形態によれば、磁気ディスク装置は、グループ化手段とビットマップと書き込み管理手段とリフレッシュ制御手段とを具備する。前記グループ化手段は、ディスク上のトラックの集合を、物理位置が非連続の2以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、且つ前記複数のグループの各々を、1つ以上のトラックを備えた複数のサブグループに区分する。前記ビットマップは、前記複数のグループ毎に、複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備える。前記書き込み管理手段は、前記複数のグループそれぞれの書き込み回数をカウントし、前記複数のグループ毎の前記ビットマップを用いて、前記グループ内の前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理する。前記リフレッシュ制御手段は、前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を実行する際に、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを前記リフレッシュ処理におけるリフレッシュ対象外とする。
以下、実施の形態につき図面を参照して説明する。
[第1の実施形態]
図1は第1の実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図1において、電子機器は、磁気ディスク装置(HDD)10及びホスト(ホストシステム)20を備えている。電子機器は、例えば、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、或いは携帯電話機である。ホスト20はHDD10を当該ホスト20の記憶装置として利用する。
[第1の実施形態]
図1は第1の実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図1において、電子機器は、磁気ディスク装置(HDD)10及びホスト(ホストシステム)20を備えている。電子機器は、例えば、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、或いは携帯電話機である。ホスト20はHDD10を当該ホスト20の記憶装置として利用する。
HDD10は、ヘッドディスクアセンブリ部(HDA部)100と、印刷回路基板部(PCB部)200とを備えている。
HDA部100は、ディスク(磁気ディスク)110と、スピンドルモータ(SPM)130と、アクチュエータ140と、ヘッドIC150とを備えている。
HDA部100は、ディスク(磁気ディスク)110と、スピンドルモータ(SPM)130と、アクチュエータ140と、ヘッドIC150とを備えている。
ディスク110は上側と下側の2つのディスク面を有している。ディスク110の2つのディスク面の少なくとも一方のディスク面(例えば上側のディスク面)は、データが磁気記録される記録面をなしている。ディスク110はSPM130により高速に回転させられる。
アクチュエータ140はディスク110の記録面に対応して配置されるヘッド・アームの先端にヘッド(磁気ヘッド)120を備えている。ヘッド120は、ディスク110へ/からのデータの書き込み/読み出しに用いられる。ヘッド120にはヘッド番号Hが割り当てられている。第1の実施形態において、ヘッド120のヘッド番号Hは0であるものとする。
図1では、作図の都合上、ディスク110の一方のディスク面に対応してヘッド120が配置されたHDD10の例が示されている。しかし、一般には、ディスク110の2つのディスク面が共に記録面をなしており、各々のディスク面に対応してヘッドが配置される。ディスク110の下側のディスク面(記録面)に対応してヘッドが配置される場合、当該ヘッドにはヘッド番号Hとして例えば1が割り当てられる。また図1の構成では、単一枚のディスク110を備えたHDD10を想定している。しかし、ディスク110が複数枚積層配置されたHDDであっても構わない。
図2は、ディスク110の記録面のフォーマットの一例を示す概念図である。ディスク110の記録面は、図2に示すように。トラック0、トラック1及びトラック2を含む複数のトラック(データトラック)を備えている。本実施形態において、複数のトラックの形状は、同心円状であるものとする。トラック0、トラック1及びトラック2は、ディスク110の半径方向に連続して配置されている。つまりトラック0、トラック1及びトラック2の物理位置は連続している。トラック0、トラック1及びトラック2が連続しているとは、トラック0とトラック1との間、及びトラック1とトラック2との間に、他の1つ以上のトラックが存在しないことをいう。もし、トラック0とトラック1との間に他の1つ以上のトラックが存在するならば、トラック0とトラック1との物理位置は非連続である。
図2に示されるトラックT(T=0,1,2,…)における「T」は、当該トラックTのトラック番号を示す。トラック番号Tは、HDD10内で一意に識別されるデータトラックを示す番号であり、一般にヘッド番号Hとシリンダ番号Sの組によって表される。シリンダ番号Sは、ディスク110の記録面上の複数のトラックに対し、当該ディスク110の外周から順に、0,1,2,…と連続して割り当てられる番号であり、ヘッド番号Hに依存しない。
第1の実施形態では、ヘッド番号Hが3ビットで表され、シリンダ番号Sが20ビットで表される場合を想定している。この場合、ディスク上のトラックTを一意に識別するために、当該トラックTに対応するトラック番号Tが次のように定義される。
第1の実施形態において、トラックTのトラック番号Tは23ビットで表される整数である。トラックTのトラック番号Tの上位3ビットには、当該トラックTに対応するヘッドのヘッド番号Hが用いられ、下位20ビットには、当該トラックTのシリンダ番号Sが用いられる。
図3は、トラック番号Tとヘッド番号H及びシリンダ番号Sとの関係の一例を示す。
なお、トラック番号は重複していなければ任意に割り当てることが可能である。このため、上述のトラック番号の割り当ては一例である
再び図1を参照すると、アクチュエータ140はボイスコイルモータ(VCM)141を備えている。アクチュエータ140はVCM141によって駆動され、ヘッド120をディスク110の半径方向に移動させる。
SPM130及びVCM141は、後述するモータドライバIC210からそれぞれ供給される駆動電流(SPM電流及びVCM電流)により駆動される。
なお、トラック番号は重複していなければ任意に割り当てることが可能である。このため、上述のトラック番号の割り当ては一例である
再び図1を参照すると、アクチュエータ140はボイスコイルモータ(VCM)141を備えている。アクチュエータ140はVCM141によって駆動され、ヘッド120をディスク110の半径方向に移動させる。
SPM130及びVCM141は、後述するモータドライバIC210からそれぞれ供給される駆動電流(SPM電流及びVCM電流)により駆動される。
ヘッドIC150は、ヘッド120により読み出された信号(リード信号)を増幅する。ヘッドIC150はまた、後述するリード/ライトチャネル230から転送されるライトデータをライト電流に変換してヘッド120に出力する。
PCB部200は、モータドライバIC210及びシステムLSI220の2つのLSIを備えている。
モータドライバIC210は、SPMドライバ211及びVCMドライバ212を備えている。SPMドライバ211は、CPU280から指定されたSPM操作量に相当する値の駆動電流(SPM電流)をSPM130に供給することで、当該SPM130を一定の回転速度で駆動する。VCMドライバ212は、CPU280から指定されたVCM操作量に相当する値の駆動電流(VCM電流)をVCM141に供給することで、アクチュエータ140を駆動する。
モータドライバIC210は、SPMドライバ211及びVCMドライバ212を備えている。SPMドライバ211は、CPU280から指定されたSPM操作量に相当する値の駆動電流(SPM電流)をSPM130に供給することで、当該SPM130を一定の回転速度で駆動する。VCMドライバ212は、CPU280から指定されたVCM操作量に相当する値の駆動電流(VCM電流)をVCM141に供給することで、アクチュエータ140を駆動する。
システムLSI220は、リード/ライトチャネル(R/Wチャネル)230、ディスクコントローラ(HDC)240、バッファRAM250、フラッシュメモリ260、プログラムROM270、CPU280及びRAM290が単一チップに集積されたSOC(System on Chip)と呼ばれるLSIである。
R/Wチャネル230は、リード/ライトに関連する信号処理を行う周知の信号処理デバイスである。R/Wチャネル230は、リード信号をデジタルデータに変換し、このデジタルデータからリードデータを復号する。R/Wチャネル230はまた、上記デジタルデータからヘッド120の位置決めに必要なサーボデータを抽出する。R/Wチャネル230はまた、ライトデータを符号化する。
HDC240は、ホスト20とホストインタフェース21を介して接続されている。HDC240は、ホスト20から転送されるコマンド(ライトコマンド、リードコマンド等)を受信する。HDC240は、ホスト20と当該HDC240との間のデータ転送を制御する。HDC240は、R/Wチャネル230を介して行われるディスク110と当該HDC240との間のデータ転送を制御する。
バッファRAM250は、ディスク110に書き込まれるべきデータ及びディスク110からヘッドIC150及びR/Wチャネル230を介して読み出されたデータを一時格納するバッファ領域を備えている。またバッファRAM250は、HDD10のパワーオン時に、後述するリフレッシュ管理テーブル261がフラッシュメモリ260からロードされるテーブル領域も備えている。
フラッシュメモリ260は、書き換え可能な不揮発性メモリである。フラッシュメモリ260は、グループ単位のリフレッシュを管理するためのリフレッシュ管理テーブル261を格納するのに用いられる。なお、リフレッシュ管理テーブル261が、フラッシュメモリ260に代えて、ディスク110上の特定の記憶領域に格納される構成であっても構わない。リフレッシュ管理テーブル261については後述する。
プログラムROM270は、制御プログラム(ファームウェアプログラム)を予め格納する。なお、制御プログラムがフラッシュメモリ260の一部の領域に格納されていても構わない。
CPU280は、HDD10の主コントローラとして機能する。CPU280はプログラムROM270に格納されている制御プログラムに従ってHDD10内の他の少なくとも一部の要素を制御する。RAM290の一部の領域は、CPU280の作業領域として用いられる。
図4は、第1の実施形態で適用される、トラック(データトラック)の集合のグループ化の概念を示す。
第1の実施形態では、前述したように、単一枚のディスク110を備え、当該ディスク110の一方のディスク面に対応してヘッド120が配置されたHDD10を想定している。そこで以下の説明では、ディスク110の一方のディスク面に備えられたトラックの集合がグループ化されるものとする。もし、単一枚のディスク110の両ディスク面にトラックの集合が備えられているならば、その両ディスク面に備えられたトラックの集合がグループ化される。また、HDD10が複数のディスク110を備えているならば、当該複数のディスク110の各々の両ディスクに備えられたトラックの集合がグループ化される。
第1の実施形態では、前述したように、単一枚のディスク110を備え、当該ディスク110の一方のディスク面に対応してヘッド120が配置されたHDD10を想定している。そこで以下の説明では、ディスク110の一方のディスク面に備えられたトラックの集合がグループ化されるものとする。もし、単一枚のディスク110の両ディスク面にトラックの集合が備えられているならば、その両ディスク面に備えられたトラックの集合がグループ化される。また、HDD10が複数のディスク110を備えているならば、当該複数のディスク110の各々の両ディスクに備えられたトラックの集合がグループ化される。
図4に示す例では、ディスク110は、当該ディスク110の半径方向に連続するトラック0,1,…,N−1,N,N+1,…2N−1,2N,2N+1,2N+2を含むトラックの集合を備えている。
第1の実施形態においてCPU280はグループ化手段として機能して、上記トラックの集合を、トラック番号(トラック位置)が所定数(所定トラック数)Nずつ離れた16トラック毎にグループ化する。上記所定数Nは例えば219である。この場合、例えばグループ0は、物理位置が非連続のトラック0,N及び2Nを含む16トラックから構成される。グループ1は、物理位置が非連続のトラック1,N+1及び2N+1を含む16トラックから構成される。同様に、グループ2は、物理位置が非連続のトラック2,N+2及び2N+2を含む16トラックから構成される。
さて、ホスト20からのHDD10へのアクセスには、一般に局所性がある。このため、ホスト20からのアクセスは、隣接する数トラック(つまり物理位置が連続する数トラック)にアクセスが集中する可能性が高い。ここで、ホスト20からのアクセスの局所性により、例えば隣接するトラック1及び2にアクセスが集中し、当該トラック1及び2の書き込みの回数が、それぞれ500となったものとする。ここでトラック1及び2は、それぞれ異なるグループ0及び1に属している点に注意されたい。
これに対して先行技術では、例えばディスク110上のトラック0,1,…,15,16,17,…,31を含む複数のトラックの集合が、当該ディスク110上の半径方向に連続する一定数のトラックを単位にグループ化される。もし、ディスク110上のトラックの集合が、16トラックを単位にグループ化されるならば、トラック1及び2は、第1の実施形態と異なり、同一グループに属する。
ここで、グループ当たりの書き込み回数(以下、ライトカウントと称する)が閾値Rthを超えた場合に、対応するグループを対象とするリフレッシュ処理が実行されるものとする。この閾値Rthは、グループ内の1トラックにデータの書き込みが集中しても、その書き込みの回数が当該閾値Rthを超えなければ、隣接するトラックの磁気データの劣化がリフレッシュにより十分回復可能な程度に収まる回数に予め設定されている。
ここで、閾値Rthが999であるものとする。この場合、先行技術では、トラック1及び2の書き込みの回数が、それぞれ上述のように500であったとしても、トラック1及び2が属するグループのライトカウントは閾値Rthを超える。このため、先行技術では、トラック1及び2が属するグループ内の全てのトラックがリフレッシュされる。つまり、トラック1及び2が属するグループ内の例えば書き込みが発生していないトラックに隣接するトラックもリフレッシュされる。また、トラック1及び2の書き込み回数(500)はそれぞれ閾値Rth(999)よりも十分に少なく、したがってトラック1及び2に隣接するトラックの磁気データはリフレッシュを必要とするほどには劣化していないにも拘わらずに、当該隣接するトラックもリフレッシュされる。
これに対して第1の実施形態では、トラック1及び2は、それぞれ異なるグループ0及び1に属する。このため、トラック1及び2への局所アクセスが繰り返し発生しても、それぞれ異なるグループ0及び1のライトカウントとしてカウントされる。
よって、グループ0及び1内の他のトラックの書き込み回数が0であるとするならば、当該グループ0及び1のライトカウントは、いずれも500となり、閾値Rthを超えない。したがって、グループ0及び1内の全トラックは、まだリフレッシュされない。当然、トラック1及び2にそれぞれ隣接するトラックもリフレッシュされない。つまり、第1の実施形態によれば、リフレッシュを必要とするほどには磁気データが劣化していないトラックが不要にリフレッシュされるのを防止できる。
しかも第1の実施形態では、CPU280がグループ化手段として機能することにより、詳細を後述するように、グループx(x=0,1,…)毎に、そのグループxに属する16のトラックへの書き込みの有無を示す16ビットのビットマップBMxが対応付けられる。ビットマップBMxの各ビットbj(j=0,1,…15)は、当該ビットbjが割り当てられるグループ内のトラックへの書き込みの有無を示す書き込み有無ビットして用いられる。ここでは、ビットbjは、“1”で対応するトラックへの書き込みが少なくとも1回あったことを示し、“0”で対応するトラックへの書き込みが一度もなかったことを示す。ビットbjの初期値は“0”である。
第1の実施形態では、グループxのライトカウントWCxが閾値Rthを超えた場合、当該グループxを対象とするリフレッシュ処理が行われる。但し、先行技術と異なり、グループx内の全トラックがリフレッシュされるとは限らない。つまり第1の実施形態で適用されるリフレッシュ処理では、CPU280がリフレッシュ制御手段として機能して、グループxに対応するビットマップBMxを参照する。そしてCPU280は、書き込み有りを示すビットbj(=1)に対応するトラックのみ隣接トラックをリフレッシュする。つまりCPU280は、書き込み無しを示すビットbj(=0)に対応するトラックの隣接トラックをリフレッシュ対象外とする。
書き込み無しを示すビットbjに対応するトラックは、書き込みが一度もなかったトラックであり、したがって隣接トラックはリフレッシュされる必要がないことに注意すべきである。第1の実施形態によれば、ビットマップBMxに基づくリフレッシュ処理により、上述のようなリフレッシュを必要としないトラックが不要にリフレッシュされるのを防止できる。
図5は、第1の実施形態で適用されるリフレッシュ管理テーブル261の一例を示す。リフレッシュ管理テーブル261は、グループ数に一致する数のエントリを備えている。リフレッシュ管理テーブル261の各エントリは、グループ番号フィールド262、ライトカウントフィールド263及びビットマップフィールド264を備えている。
グループ番号フィールド262は、当該フィールド262を含むエントリと対応付けられているグループxのグループ番号xを登録するのに用いられる。第1の実施形態において、グループ番号xは2バイトで表現される。
ライトカウントフィールド263は、当該フィールド263を含むエントリと対応付けられているグループxへのデータ書き込みが行われた回数WCx、つまりライトカウントWCxを登録するのに用いられる。第1の実施形態において、ライトカウントWCxは2バイトで表現される。ライトカウントWCxが閾値Rthを超えた場合、グループxを対象とするリフレッシュ処理が実行される
ビットマップフィールド264は、当該フィールド264を含むエントリと対応付けられているグループxに属する16のトラックへの書き込みの有無をトラック毎に示すビットマップBMxを登録するのに用いられる。1グループが16のトラックから構成される第1の実施形態では、ビットマップBMxは16ビットから構成されるバイナリデータとして管理される。つまり、ビットマップBMxを構成する16ビットには、それぞれビット番号(ビット位置番号)0乃至15が割り当てられる。ビットマップBMxのビット番号がj(j=0,1,…15)のビットbj、つまりj番目のビットbjは、グループx内の当該ビットbjが割り当てられるトラックのデータ書き込みの有無を示す。ビットbjと当該ビットbjが割り当てられるトラックとの関係については後述する。
ビットマップフィールド264は、当該フィールド264を含むエントリと対応付けられているグループxに属する16のトラックへの書き込みの有無をトラック毎に示すビットマップBMxを登録するのに用いられる。1グループが16のトラックから構成される第1の実施形態では、ビットマップBMxは16ビットから構成されるバイナリデータとして管理される。つまり、ビットマップBMxを構成する16ビットには、それぞれビット番号(ビット位置番号)0乃至15が割り当てられる。ビットマップBMxのビット番号がj(j=0,1,…15)のビットbj、つまりj番目のビットbjは、グループx内の当該ビットbjが割り当てられるトラックのデータ書き込みの有無を示す。ビットbjと当該ビットbjが割り当てられるトラックとの関係については後述する。
次に、第1の実施形態におけるデータ書き込み時の動作について、図6のフローチャートを参照して説明する。
まず、ホスト20からHDD10に対して、トラック番号がTのトラックTへのデータの書き込みが要求されたものとする。するとCPU280は書き込み制御手段として機能して、ディスク110上の目的のトラックTにデータを書き込むための書き込み処理を実行する(ステップ601)。
まず、ホスト20からHDD10に対して、トラック番号がTのトラックTへのデータの書き込みが要求されたものとする。するとCPU280は書き込み制御手段として機能して、ディスク110上の目的のトラックTにデータを書き込むための書き込み処理を実行する(ステップ601)。
次にCPU280は、トラック番号Tに基づいて、トラックTが属するグループxのグループ番号xを取得する(ステップ602)。またCPU280は、トラック番号Tに基づいて、グループxに対応するビットマップBMx内の、トラックTに割り当てられるビットbjのビット番号(位置)jを取得(特定)する(ステップ603)。ここでは、トラック番号Tに基づいて後述する位置データPが取得され、当該位置データPの示すビットbjのビット番号jが取得される。以下の説明では、煩雑さを避けるために、「グループxに対応するビットマップBMx」を、単に「ビットマップBMx」と表現する。なお、トラック番号Tに基づいて、グループ番号x及び、ビットマップBMx内のビットbjのビット番号jを取得する仕組みについては、後述する、
次にCPU280は書き込み管理手段として機能して、グループ番号がxのグループxに対応付けられているリフレッシュ管理テーブル261内のエントリを参照する(ステップ604)。そしてCPU280は、参照エントリのライトカウントフィールド263の値、即ちライトカウントWCxを、インクリメントする(ステップ605)。またCPU280は、参照エントリのビットマップフィールド264に登録されているビットマップBMx中のビットbjを“1”に設定する(ステップ606)。
次にCPU280は書き込み管理手段として機能して、グループ番号がxのグループxに対応付けられているリフレッシュ管理テーブル261内のエントリを参照する(ステップ604)。そしてCPU280は、参照エントリのライトカウントフィールド263の値、即ちライトカウントWCxを、インクリメントする(ステップ605)。またCPU280は、参照エントリのビットマップフィールド264に登録されているビットマップBMx中のビットbjを“1”に設定する(ステップ606)。
ここでリフレッシュ管理テーブル261は、当該リフレッシュ管理テーブル261へのアクセスの高速化のために、HDD10のパワーオン時にフラッシュメモリ260からバッファRAM250にロードされる。このバッファRAM250にロードされたリフレッシュ管理テーブル261が、上記ステップ604乃至606で用いられる。なお、リフレッシュ管理テーブル261がRAM290にロードされてもよい。
次にCPU280はリフレッシュ制御手段として機能して、インクリメント後のライトカウントWCxが閾値Rthを超えたかを判定する(ステップ607)。もし、ライトカウントWCxが閾値Rthを超えたならば(ステップ607のYes)、CPU280はグループxを対象とするリフレッシュ処理(ステップ608)に進む。このリフレッシュ処理の手順については後述する。これに対し、ライトカウントWCxが閾値Rthを超えていないならば(ステップ607のNo)、CPU280はリフレッシュ処理(ステップ608)をスキップする。
次に、トラック番号Tに基づいて、グループ番号x及び、ビットマップBMx内のビットbjのビット番号jを取得する仕組みについて、図7を参照して説明する。
図7に示すように、トラック番号Tは23ビットで表される。この23ビットのトラック番号Tの下位19ビットは、前述のグループ化により、当該トラック番号がTのトラックTが属するグループxのグループ番号xを表す。トラック番号Tの上位4ビットの整数値jは、トラックTに割り当てられる、ビットマップBMxにおけるビットbjのビット番号を示す。このように、トラック番号Tの上位4ビットは、トラックTに割り当てられるビットマップBMxにおけるビットbjのビット番号を示す位置データPとして用いられる。明らかなように、グループxは、トラック番号が219(N=219)ずつ離れた16(24)のトラックの集合である。つまりグループxは、物理位置が非連続の16のトラックの集合である。これに対して、先行技術で適用されるグループは、物理位置が連続したトラックの集合である。
図7に示すように、トラック番号Tは23ビットで表される。この23ビットのトラック番号Tの下位19ビットは、前述のグループ化により、当該トラック番号がTのトラックTが属するグループxのグループ番号xを表す。トラック番号Tの上位4ビットの整数値jは、トラックTに割り当てられる、ビットマップBMxにおけるビットbjのビット番号を示す。このように、トラック番号Tの上位4ビットは、トラックTに割り当てられるビットマップBMxにおけるビットbjのビット番号を示す位置データPとして用いられる。明らかなように、グループxは、トラック番号が219(N=219)ずつ離れた16(24)のトラックの集合である。つまりグループxは、物理位置が非連続の16のトラックの集合である。これに対して、先行技術で適用されるグループは、物理位置が連続したトラックの集合である。
したがって、トラック番号Tの下位19ビットを抽出することにより、トラック番号がTのトラックTが属するグループxのグループ番号xを取得できる。また、トラック番号Tの上位4ビットを、トラックTの位置データPとして抽出することにより、当該トラックTに割り当てられるビットマップBMx内のビットbjのビット番号jを取得できる。また、図7からも明らかなように、トラック番号が近接するトラック群は、それぞれ異なるグループに属する。
次に、グループ番号がxのグループxを対象とするリフレッシュ処理(ステップ608)の手順について、図8のフローチャートを参照して説明する。
まず、CPU280は、ビットマップBMxのビットbjのビット番号を指定する変数jを、初期値0に設定する(ステップ801)。このビットマップBMxは、グループxに対応付けられているリフレッシュ管理テーブル261のエントリのビットマップフィールド264に登録されている。
まず、CPU280は、ビットマップBMxのビットbjのビット番号を指定する変数jを、初期値0に設定する(ステップ801)。このビットマップBMxは、グループxに対応付けられているリフレッシュ管理テーブル261のエントリのビットマップフィールド264に登録されている。
次にCPU280は、ビットマップBMxのj番目のビットbjを参照し(ステップ802)、当該ビットbjが“1”であるかを判定する(ステップ803)。
もし、ビットマップBMxのビットbjが“1”であるならば(ステップ803のYes)、CPU280は、当該ビットbjが割り当てられているトラックTj(つまりビットbjに対応するトラックTj)は、データの書き込みが実施されており、したがってトラックTjの隣接トラックはリフレッシュされるべきであると判断する。この場合、CPU280は、ビットbjに対応するトラックTjの隣接トラックをリフレッシュするために、ステップ804に進む。
もし、ビットマップBMxのビットbjが“1”であるならば(ステップ803のYes)、CPU280は、当該ビットbjが割り当てられているトラックTj(つまりビットbjに対応するトラックTj)は、データの書き込みが実施されており、したがってトラックTjの隣接トラックはリフレッシュされるべきであると判断する。この場合、CPU280は、ビットbjに対応するトラックTjの隣接トラックをリフレッシュするために、ステップ804に進む。
ステップ804においてCPU280は、グループ番号xと変数(ビット番号)jとに基づいて、ビットマップBMxのビット番号がjのビットbjに対応するトラックTjのトラック番号Tjを取得する。ここでは、トラックTjのトラック番号Tjは、図7からも明らかなように、グループ番号x(19ビット)の上位に、ビット番号j(つまり変数の示すビットbjのビット番号j)を示す4ビットのバイナリデータを連結することにより取得される。
次にCPU280は、取得されたトラック番号Tjで特定されるトラックTjの隣接トラックをリフレッシュする(ステップ805)。CPU280はステップ805を実行すると、ステップ806に進む。
一方、ビットマップBMxのビットbjが“1”でないならば(ステップ803のNo)、CPU280は、当該ビットbjに対応するトラックTjは、データの書き込みが実施されておらず、したがってリフレッシュされる必要がないと判定する。この場合、CPU280はステップ804及び805をスキップして、ステップ806に進む。
ステップ806においてCPU280は、ビット番号jを1だけインクリメントする。そしてCPU280は、インクリメント後のビット番号jが16未満であるかを判定する(ステップ807)。
もし、インクリメント後のビット番号jが16未満であるならば(ステップ807のYes)、CPU280はステップ802に戻り、インクリメント後のビット番号jによって示される、ビットマップBMxのj番目のビットbjを参照する。
もし、インクリメント後のビット番号jが16未満であるならば(ステップ807のYes)、CPU280はステップ802に戻り、インクリメント後のビット番号jによって示される、ビットマップBMxのj番目のビットbjを参照する。
これに対して、インクリメント後のビット番号jが16未満でないならば(ステップ807のNo)、CPU280は、ビットマップBMxにおける最終ビット(15番目のビット)b15まで処理したものと判断する。この場合、CPU280は、グループ番号がxのグループxに対応付けられているリフレッシュ管理テーブル261内のエントリのライトカウントフィールド263に設定されているライトカウントWCxを0にクリアする(ステップ808)。そしてCPU280は、グループxを対象とするリフレッシュ処理を終了する。
第1の実施形態では、前述のグループ化により、23ビットのトラック番号Tの下位19ビットが、トラック番号がTのトラックTが属するグループxのグループ番号xとして定義される。また、トラック番号Tの上位4ビットが、ビットマップBMxにおけるビット位置bjとを示す位置データPとして定義される。このため、第1の実施形態では、トラック番号Tからグループ番号x及び位置データPを簡単に取得できる。
前述したように、リフレッシュ管理テーブル261はバッファRAM250にロードして用いられる。そのためCPU280は、バッファRAM250に格納されているリフレッシュ管理テーブル261を、少なくともHDD10のパワーオフに際して、フラッシュメモリ260に保存する。勿論、リフレッシュ管理テーブル261が更新される都度、当該リフレッシュ管理テーブル261ががフラッシュメモリ260に保存されても構わない。また、リフレッシュ管理テーブル261がディスク110上の特定の記憶領域に保存されても構わない。
第1の実施形態では、グループxに属する16のトラックの全ての物理位置が非連続である。しかし、16のトラックのうちの一部の2以上のトラックの物理位置が非連続であっても構わない。また、第1の実施形態では、ビットマップBMxのビットbjが“1”である場合、当該ビットbjが割り当てられているトラックTjの隣接トラックがリフレッシュされる。しかし、この隣接トラックへの書き込みが一度もない場合、この隣接トラックをリフレッシュ対象外としても構わない。隣接トラックへの書き込みが一度もないかは、当該隣接トラックが属するグループに対応するビットマップBMx内の当該隣接トラックに対応するビットbjが“0”であるかによって判定可能である。また、トラックTjもリフレッシュされても構わない。
[第2の実施形態]
次に第2の実施形態について説明する。この第2の実施形態に係るHDDを備えた電子機器の基本構成は、第1の実施形態と同様であるため、以下の説明では図1を援用する。
第2の実施形態の特徴は、CPU280が、トラック番号Tからグループ番号x及び位置データPを取得するのに、変換テーブルを用いることにある。
次に第2の実施形態について説明する。この第2の実施形態に係るHDDを備えた電子機器の基本構成は、第1の実施形態と同様であるため、以下の説明では図1を援用する。
第2の実施形態の特徴は、CPU280が、トラック番号Tからグループ番号x及び位置データPを取得するのに、変換テーブルを用いることにある。
図9は、第2の実施形態で適用される変換テーブル900の一例を示す。変換テーブル900は、リフレッシュ管理テーブル261と同様に、フラッシュメモリ260に格納されているものとする。この変換テーブル900は、リフレッシュ管理テーブル261と同様に、HDD10のパワーオン時にバッファRAM250にロードされる。
変換テーブル900は、23ビットのトラック番号Tを、19ビットのグループ番号x及び4ビットの位置データPにCPU280が変換するのに用いられる。ここでは、トラック番号Tのビット1を含む4ビットが位置データPに変換される。トラック番号Tの残りの19ビット、つまりビット0,2,20,21及び22を含む19ビットはグループ番号xに変換される。
図9に示す変換テーブル900は、23ビットのトラック番号Tのビット位置を入れ替えることにより、当該トラック番号Tを別の23ビットのトラック番号T’に変換するビット位置を入れ替え手段とみなすことができる。図9の例では、トラック番号T’の上位4ビットが位置データPを表し、トラック番号T’の下位19ビットがグループ番号xを表す。
また、前記ステップ804に変換テーブル900を用いた逆変換を適用することにより、位置データPとグループ番号xとから、トラック番号Tjを取得することも可能である。位置データPは、ビットbjのビット番号j(変数j)を4ビットのバイナリデータに変換することで取得できる。
第2の実施形態によれば、変換テーブル900を適用することにより、トラック番号とグループ番号とを自由に対応付けることができる。なお、変換テーブル900を、ヘッド毎に用意してもよく、ディスク110の半径方向に区分される複数の領域(例えば内周側領域及び外周側領域)毎に用意してもよい。
[第3の実施形態]
次に第3の実施形態について説明する。この第3の実施形態に係るHDDを備えた電子機器の基本構成は、第1の実施形態と同様であるため、以下の説明では図1を援用する。
次に第3の実施形態について説明する。この第3の実施形態に係るHDDを備えた電子機器の基本構成は、第1の実施形態と同様であるため、以下の説明では図1を援用する。
第3の実施形態の第1の特徴は、CPU280が、トラック番号Tからグループ番号x及び位置データPを取得するのに、第2の実施形態と同様に変換テーブルを用いることにある。
第3の実施形態の第2の特徴は、CPU280がグループ化手段として機能することにより、同一グループx内の2つ以上のトラックに、ビットマップBMxのビットbjを割り当てる(対応付ける)ことにある。これにより、リフレッシュ管理テーブル261を格納するのに用いられる、フラッシュメモリ260及びバッファRAM250の記憶領域を低減できる。なお、第3の実施形態では、ビットbjに割り当てられる2つ以上のトラックの集合をサブグループと呼ぶ。つまり、グループxは、複数のサブグループに区分(サブグループ化)される。
図10は、第3の実施形態で適用される変換テーブル1000の一例を示す。変換テーブル1000は、リフレッシュ管理テーブル261と同様に、フラッシュメモリ260に格納されており、HDD10のパワーオン時にバッファRAM250にロードされる。
変換テーブル1000は、23ビットのトラック番号Tを15ビットのグループ番号x及び4ビットの位置データPに、CPU280が変換するのに用いられる。このように第3の実施形態では、グループ番号xのビット数が、第1及び第2の実施形態と比較して4ビット少ない。つまり、第3の実施形態では、グループ数は、第1及び第2の実施形態のそれの1/24(=1/16)である。一方、各グループxに属するトラックTの数は第1及び第2の実施形態のそれの24(=16)倍の256である。
この場合、256のトラックTにビットマップBMxの各ビットbjを1対1で割り当てるためには、ビットマップBMxのビット数を16ビットから256ビットに増やさなければならない。そこで、第3の実施形態では、ビットマップBMxのビット数を第1及び第2の実施形態と同様に16ビットとする代わりに、各ビットbjが2つ以上のトラックT(例えば16トラック)を備えたサブグループに割り当てられる構成を適用している。
CPU280は、図10に示す変換テーブル1000に従い、トラック番号Tのビット1,20,21及び20を含む8ビットを4ビットの位置データPに変換する。これにより、例えばトラック番号Tのビット1及び20は、位置データPの最下位ビット(後述するトラック番号T’のビット15)に変換される。この場合、トラック番号Tのビット1及び20の組み合わせで決まる“0”または“1”が、上記ビット15に設定される。更に詳細に述べるならば、ビット1及び20の組み合わせは、“00”,“01”,“10”,“11”の4通りであることから、この4通りの組み合わせのうちの第1の組み合わせが、上記ビット15の“0”に変換され、残りの第2の組み合わせが上記ビット15の“1”に変換される。位置データPの残りの3ビット(ビット16乃至18)についても同様である。このような変換により、ビットマップBMxの各ビットbjを2つ以上のトラック、例えば16のトラック(より詳細には、16のトラックを備えたサブグループ)に割り当てることができる。
トラック番号Tの残りの15ビット、つまりビット0及び2を含む15ビットは、15ビットのグループ番号xに変換される。位置データP及びグループ番号xは、23ビットのトラック番号Tが変換テーブル1000によって変換された後の19ビットのトラック番号T’の、それぞれ上位4ビット及び下位15ビットであると見なすことができる。
第3の実施形態においてCPU280は、トラックTへの書き込みが行われた場合、当該トラックTのトラック番号Tを、変換テーブル1000に従って、位置データP及びグループ番号xに変換する(図6のステップ602,603に相当)。位置データPの整数値jは、トラックTが属するグループx内のサブグループに割り当てられた、ビットマップBMxのビットbjのビット番号を示す。そこでCPU280は、第1の実施形態と同様に、このビットbjに“1”を設定する。
CPU280が、上述した変換テーブル1000に基づいてトラック番号Tを位置データP及びグループ番号xに変換する動作は、グループx(より詳細にはグループxに属する全トラック)を、2つ以上のトラックをそれぞれ備えた16のサブグループに区分し、16のサブグループにビットマップBMxのそれぞれのビットbjを割り当てることと等価である。なお、第3の実施形態では、各サブグループが2つ以上のトラックを備えていることを前提としている。しかし、各サブグループが1つ以上のトラックを備えていてもよい。明らかなように、第1及び第2の実施形態は、16のサブグループがそれぞれ1つのトラックを備えている場合に相当する。
第3の実施形態によれば、リフレッシュ管理テーブル261のエントリ数を、第1及び第2の実施形態の1/256に減らすことができる。これにより、リフレッシュ管理テーブル261を格納するのに必要な記憶領域を低減できる。但し、第3の実施形態では、16ビットのビットマップBMxのビットbjが複数のトラックに割り当てられた場合、当該複数のトラックの中に書き込みが行われていないトラックが含まれていても、当該書き込みが行われていないトラックもリフレッシュの対象となる。
[第4の実施形態]
次に第4の実施形態について説明する。この第4の実施形態に係るHDDを備えた電子機器の基本構成は、第1の実施形態と同様であるため、以下の説明では図1を援用する。
次に第4の実施形態について説明する。この第4の実施形態に係るHDDを備えた電子機器の基本構成は、第1の実施形態と同様であるため、以下の説明では図1を援用する。
第4の実施形態の特徴は、ビットマップBMxの各ビットbjに割り当てられるサブグループ内のトラックの数(つまりサブグループ化密度)を、当該サブグループと対応付けられるトラック領域に応じて設定する点にある。
一般に、ディスク110上の記録面を同心円状に複数の領域(以下、トラック領域と称する)に区分した場合、外周側のトラック領域ほど使用頻度が高く、内周側のトラック領域ほど使用頻度が低いことが知られている。そこで、第4の実施形態では、グループxを複数のサブグループに区分する際のサブグループ化密度が、外周側のトラック領域に対応するサブグループでは低く、内周側のトラック領域に対応するサブグループでは高く設定される。このため、トラック領域も、外周側のトラック領域ほどトラック数が少なく、内周側のトラック領域ほどトラック数が多くなるように設定される。以下、サブグループ化密度をサブグループ化係数Jと呼ぶ。サブグループ化係数Jは、対応するサブグループに属するトラックの数、つまりビットマップBMxのビットbjが割り当てられるトラックの数を示す。
図11は、第4の実施形態において、CPU280がグループ化手段として機能することによってグループxをサブグループ化する際に適用されるサブグループ化係数テーブル1100の一例を示す。サブグループ化係数テーブル1100は、リフレッシュ管理テーブル261と同様に、フラッシュメモリ260に格納されているものとする。このサブグループ化係数テーブル1100は、リフレッシュ管理テーブル261と同様に、HDD10のパワーオン時にバッファRAM250にロードされる。
サブグループ化係数テーブル1100は、トラック領域の数に一致するエントリを有する。サブグループ化係数テーブル1100の各エントリは、トラック領域開始番号フィールド1101、トラック領域終了番号フィールド1102、サブグループ化係数フィールド1103及びビット番号フィールド1104を備えている。
トラック領域開始番号フィールド1101は、対応するトラック領域の開始トラック番号(トラック領域開始番号)Tsを予め登録し、トラック領域終了番号フィールド1102は、対応するトラック領域の終了トラック番号(トラック領域終了番号)Teを予め登録する。
サブグループ化係数フィールド1103は、グループxをサブグループ化する際の、対応するトラック領域に対応付けられたサブグループに属するトラックの数Jを、サブグループ化係数Jとして予め登録する。
ビット番号フィールド1104は、ビットマップBMxのうちの対応するサブグループに割り当てられるビットbjのビット番号jを示す。
ビット番号フィールド1104は、ビットマップBMxのうちの対応するサブグループに割り当てられるビットbjのビット番号jを示す。
図11に示すサブグループ化係数テーブル1100の例では、グループ番号xの範囲が0000h乃至FFFFhである場合を想定している。この場合、CPU280は、グループ番号xを、グループ化係数Jとトラック番号Tから次式
グループ番号x=(T/J)mod 10000h(modは整数除算の余り)
に従って算出することができる。
グループ番号x=(T/J)mod 10000h(modは整数除算の余り)
に従って算出することができる。
例えば、トラック番号Tが758E3hの場合、CPU280は、サブグループ化係数テーブル1100の5番目のエントリから、トラック番号Tがトラック開始番号70000h及びトラック終了番号8FFFFhで示されるトラック領域に入っており、このトラック領域に対応するグループ化係数Jが2であることを認識する。この場合、CPU280は、グループ番号xとして、
グループ番号x=(758E3h/2)mod 10000=AC71h
を取得する。
グループ番号x=(758E3h/2)mod 10000=AC71h
を取得する。
また、CPU280は、サブグループ化係数テーブル1100の5番目のエントリから、トラック番号Tが758E3hのトラックTを含むサブグループに割り当てられる、ビットマップBMxのビットbjのビット番号jとして4を取得する。
次に、第4の実施形態において、CPU280が、グループ番号がxのグループxを対象とするリフレッシュ処理を行うものとする。この場合、CPU280は、グループ番号xと、ビットマップBMxのビットbj(=1)のビット番号j(つまり、第1の実施形態における変数j)とに基づき、1つ以上のリフレッシュ対象トラックのトラック番号を次のように算出する。リフレッシュ対象トラックは、グループ番号がxのグループxに属するトラックのうち、ビット番号jが割り当てられているサブグループに属する全てのトラックの隣接トラックである。
まずCPU280は、サブグループ化係数テーブル1100を参照することにより、ビット番号jに対応するトラック領域開始番号Ts及びサブグループ化係数Jを取得する。
次にCPU280は、1つ以上のリフレッシュ対象トラックの開始トラック(リフレッシュ開始トラック)のトラック番号(リフレッシュ開始トラック番号)及び終了トラック(リフレッシュ終了トラック)のトラック番号(リフレッシュ終了トラック番号)を次式
リフレッシュ開始トラック番号
=Ts+x×J
リフレッシュ終了トラック番号
=Ts+x×J+J−1
=リフレッシュ開始トラック番号+J−1
に従って算出する。
次にCPU280は、1つ以上のリフレッシュ対象トラックの開始トラック(リフレッシュ開始トラック)のトラック番号(リフレッシュ開始トラック番号)及び終了トラック(リフレッシュ終了トラック)のトラック番号(リフレッシュ終了トラック番号)を次式
リフレッシュ開始トラック番号
=Ts+x×J
リフレッシュ終了トラック番号
=Ts+x×J+J−1
=リフレッシュ開始トラック番号+J−1
に従って算出する。
なお、グループ化係数Jが1の場合、リフレッシュ開始トラック番号はリフレッシュ終了トラック番号に一致する。この場合、“Ts(トラック領域開始番号)+x(グループ番号)”で表される1トラックのみが、リフレッシュ対象トラックとなる。
例えばグループ番号xがAC71hで、ビット番号jが4の場合、CPU280は、サブグループ化係数テーブル1100から、トラック領域開始番号Tsとして70000hを、サブグループ化係数Jとして2を、それぞれ取得する。この場合、リフレッシュ開始トラック番号及びリフレッシュ終了トラック番号は、
リフレッシュ開始トラック番号
=70000h+AC71h×2
=858E2h
リフレッシュ終了トラック番号
=70000h+AC71h×2+2−1
=858E3h
となる。
リフレッシュ開始トラック番号
=70000h+AC71h×2
=858E2h
リフレッシュ終了トラック番号
=70000h+AC71h×2+2−1
=858E3h
となる。
第4の実施形態によれば、グループxを複数のサブグループに区分する際のサブグループ化密度が、外周側のトラック領域に対応するサブグループでは低く、内周側のトラック領域に対応するサブグループでは高く設定される。これにより、サブグループ化密度が高いサブグループに属する比較的多くのトラックが、ビットマップBMxのビットbjに割り当てられても、このようなサブグループを含むグループを対象とするリフレッシュ処理のパフォーマンスに悪影響を及ぼすのを防止できる。しかも、リフレッシュ管理テーブル261を格納するのに必要な記憶領域を低減できる。
第3及び第4の実施形態では、ビットマップBMxのビットbjが“1”である場合、当該ビットbjが割り当てられているサブグループに属する1つ以上のトラックの隣接トラックがリフレッシュされる。しかし、このような1つ以上のトラックの隣接トラックのうち、書き込みが一度もないサブグループに属する隣接トラックをリフレッシュ対象外としても構わない。書き込みが一度もないサブグループであるかは、当該サブグループが属するグループに対応するビットマップBMx内の当該サブグループに対応するビットbjが“0”であるかによって判定可能である。また、ビットマップBMxのビットbjが“1”である場合、当該ビットbjが割り当てられているサブグループに属する1つ以上のトラックもリフレッシュされても構わない。
以上説明した少なくとも1つの実施形態によれば、不要なリフレッシュが発生するのを効果的に防止できる磁気ディスク装置及び同装置におけるリフレッシュ方法を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…HDD(磁気ディスク装置)、20…ホスト、110…ディスク、120…ヘッド、250…バッファRAM、260…フラッシュメモリ、261…リフレッシュ管理テーブル、270…プログラム、280…CPU(グループ化手段、リフレッシュ制御手段、書き込み管理手段)、290…RAM、900,1000…変換テーブル、1100…サブグループ化係数テーブル、BMx…ビットマップ。
Claims (9)
- ディスク上のトラックの集合を、物理位置が非連続の2以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、且つ前記複数のグループの各々を、1つ以上のトラックを備えた複数のサブグループに区分するグループ化手段と、
前記複数のグループ毎に、前記複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備えたビットマップと、
前記複数のグループそれぞれの書き込み回数をカウントし、前記複数のグループ毎の前記ビットマップを用いて、前記グループ内の前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理する書き込み管理手段と、
前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を実行する際に、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを前記リフレッシュ処理におけるリフレッシュ対象外とするリフレッシュ制御手段と
を具備する磁気ディスク装置。 - 前記書き込み管理手段は、ホストから要求された目的のトラックへの書き込みに応じて、当該目的トラックが属するグループに対応する前記ビットマップ内の、当該目的トラックが属するサブグループに対応するビットを書き込み有りを示す状態に設定する請求項1記載の磁気ディスク装置。
- 前記グループ化手段は、前記トラックの集合に含まれている各トラックと、当該トラックが属するグループ及び当該トラックが属するサブグループに対応するビットマップ内のビットの位置とを、当該トラックのトラック番号に基づいて関連付ける請求項2記載の磁気ディスク装置。
- 前記グループ化手段は、前記トラック番号を表すバイナリデータの下位フィールドにより、前記トラック番号のトラックが属するグループのグループ番号を定義し、前記バイナリデータの上位フィールドにより、前記ビットの位置を示す位置情報を定義する請求項3記載の磁気ディスク装置。
- 前記関連付けのための変換テーブルを更に具備する請求項3記載の磁気ディスク装置。
- 前記リフレッシュ制御手段は、前記リフレッシュ処理の対象となるグループ内の、書き込みのあるサブグループをリフレッシュ対象として、当該書き込みのあるサブグループに属する1つ以上のトラックの隣接トラックのリフレッシュ処理を実行する請求項1記載の磁気ディスク装置。
- 前記複数のグループの各々の前記複数のサブグループは、それぞれ前記ディスク上の予め定められたトラック領域に対応付けられており、
前記グループ化手段は、前記複数のサブグループのそれぞれが備える1つ以上のトラックの数を、対応するトラック領域に応じて設定する
請求項1記載の磁気ディスク装置。 - 前記グループ化手段は、前記対応するトラック領域の使用頻度が高いほど、前記1つ以上のトラックの数を少なく設定する請求項7記載の磁気ディスク装置。
- ディスク上のトラックの集合を、物理位置が非連続の2以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、
前記複数のグループの各々を、1つ以上のトラックを備えた複数のサブグループに区分し、
前記複数のグループそれぞれの書き込み回数をカウントし、
前記複数のグループ毎に設けられた、前記複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備えたビットマップを用いて、前記グループ内の前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理し、
前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を実行する際に、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを前記リフレッシュ処理におけるリフレッシュ対象外とする
磁気ディスク装置におけるリフレッシュ方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150348A JP4865062B2 (ja) | 2010-06-30 | 2010-06-30 | 磁気ディスク装置及び同装置におけるリフレッシュ方法 |
US13/100,008 US8345370B2 (en) | 2010-06-30 | 2011-05-03 | Magnetic disk drive and refresh method for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010150348A JP4865062B2 (ja) | 2010-06-30 | 2010-06-30 | 磁気ディスク装置及び同装置におけるリフレッシュ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012014790A JP2012014790A (ja) | 2012-01-19 |
JP4865062B2 true JP4865062B2 (ja) | 2012-02-01 |
Family
ID=45399557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010150348A Expired - Fee Related JP4865062B2 (ja) | 2010-06-30 | 2010-06-30 | 磁気ディスク装置及び同装置におけるリフレッシュ方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8345370B2 (ja) |
JP (1) | JP4865062B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013157047A (ja) * | 2012-01-27 | 2013-08-15 | Toshiba Corp | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 |
KR101822463B1 (ko) * | 2013-01-21 | 2018-01-26 | 삼성전자주식회사 | 복수 개의 아이콘들을 화면상에 배치하는 장치 및 이의 운용 방법 |
JP6155768B2 (ja) | 2013-03-29 | 2017-07-05 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 |
US8941935B1 (en) * | 2014-03-10 | 2015-01-27 | HGST Netherlands B.V. | System and method for initiating refresh operations |
US9798470B2 (en) * | 2015-01-23 | 2017-10-24 | Toshiba Memory Corporation | Memory system for storing and processing translation information |
US9997192B1 (en) * | 2017-05-18 | 2018-06-12 | Seagate Technology Llc | Overlap detection for magnetic disks |
JP2019160376A (ja) * | 2018-03-15 | 2019-09-19 | 株式会社東芝 | 磁気ディスク装置及びリフレッシュ処理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394280A (en) | 1993-06-14 | 1995-02-28 | International Business Machines Corporation | Detecting a servo error on a magnetic tape and identifying extent and location of the detected servo error by linked control marks |
JP4063694B2 (ja) * | 2003-03-11 | 2008-03-19 | 株式会社日立グローバルストレージテクノロジーズ | 磁気ディスク装置 |
JP2006179102A (ja) | 2004-12-22 | 2006-07-06 | Hitachi Global Storage Technologies Netherlands Bv | 磁気ディスク装置及データの記録方法 |
US7774539B2 (en) * | 2007-02-07 | 2010-08-10 | Lenovo (Singapore) Pte. Ltd | Preservation of hard drive data via dynamic band boundary definition |
US20090244775A1 (en) * | 2008-03-31 | 2009-10-01 | Kabushiki Kaisha Toshiba 1-1 | Adjacent-track-erasure (ate) refresh with increased track resolution for often-written areas |
JP4469906B2 (ja) * | 2008-07-17 | 2010-06-02 | 株式会社東芝 | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 |
JP4504450B1 (ja) * | 2008-12-26 | 2010-07-14 | 株式会社東芝 | 磁気ディスク装置及び同装置におけるデータリフレッシュ方法 |
JP4648461B2 (ja) * | 2009-01-30 | 2011-03-09 | 株式会社東芝 | 磁気ディスク装置及び同装置における暗号鍵更新方法 |
JP4660613B2 (ja) * | 2009-07-24 | 2011-03-30 | 株式会社東芝 | 磁気ディスクドライブにおけるデータリフレッシュ方法 |
-
2010
- 2010-06-30 JP JP2010150348A patent/JP4865062B2/ja not_active Expired - Fee Related
-
2011
- 2011-05-03 US US13/100,008 patent/US8345370B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012014790A (ja) | 2012-01-19 |
US20120002315A1 (en) | 2012-01-05 |
US8345370B2 (en) | 2013-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4865062B2 (ja) | 磁気ディスク装置及び同装置におけるリフレッシュ方法 | |
US8014097B1 (en) | Disk drive with adaptive counting of writes to the data tracks for minimizing the effect of adjacent track encroachment | |
JP5681511B2 (ja) | 情報記録装置及び情報記録方法 | |
US20090103203A1 (en) | Recording apparatus and control circuit | |
JP2008243269A (ja) | ディスク・ドライブ装置及びそのデータの再書き込み方法 | |
JP2017120675A (ja) | 磁気ディスク装置、及び書き込み方法 | |
US20160293207A1 (en) | System and method of conducting in-place write operations in a shingled magnetic recording (smr) drive | |
US20150113208A1 (en) | Storage apparatus, cache controller, and method for writing data to nonvolatile storage medium | |
US10872040B2 (en) | Magnetic disk device and recording method of the same | |
US20170090768A1 (en) | Storage device that performs error-rate-based data backup | |
JP2013157068A (ja) | データ記憶制御装置、データ記憶装置、及びデータ記憶方法 | |
JP4053234B2 (ja) | ディスク装置 | |
US8078687B1 (en) | System and method for data management | |
US8854758B2 (en) | Track defect map for a disk drive data storage system | |
US9299387B2 (en) | Magnetic disk apparatus, controller and data processing method | |
JP2010152988A (ja) | ディスク記憶装置及びエリア管理方法 | |
JP5967307B2 (ja) | 情報処理装置、制御回路、制御プログラム、及び制御方法 | |
JP5713926B2 (ja) | 磁気ディスク装置及び同磁気ディスク装置におけるデータバッファリング方法 | |
US10102869B1 (en) | Magnetic disk device and read method | |
US20190220215A1 (en) | Data storage device and data storage control method | |
JP2009199665A (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
JP2017151609A (ja) | ストレージ、ストレージシステム | |
US20170068474A1 (en) | Method of managing defects in recording medium and storage apparatus | |
US9177597B2 (en) | Disk storage apparatus and method for managing storage area | |
US20150026427A1 (en) | Data reassign method and storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111018 |
|
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: 20111109 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |