(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024125624
(43)【公開日】2024-09-19
(54)【発明の名称】磁気ディスク装置
(51)【国際特許分類】
G11B 5/09 20060101AFI20240911BHJP
G11B 20/18 20060101ALI20240911BHJP
G11B 20/10 20060101ALI20240911BHJP
G11B 5/012 20060101ALI20240911BHJP
G06F 3/06 20060101ALI20240911BHJP
【FI】
G11B5/09 311Z
G11B20/18 552B
G11B20/18 572B
G11B20/18 572F
G11B20/10 301Z
G11B20/10 H
G11B5/012
G06F3/06 303G
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023033560
(22)【出願日】2023-03-06
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小林 龍
【テーマコード(参考)】
5D044
【Fターム(参考)】
5D044BC01
5D044CC04
5D044DE68
5D044DE71
5D044EF05
5D044FG18
5D044GK19
(57)【要約】
【課題】磁気ディスク上のキャッシュエリアにおいてATIに応じたリライトの実行を抑制した磁気ディスク装置を提供すること。
【解決手段】磁気ディスクは、複数のブロックを備える第1エリアと、ホストからライト先として指定される第2エリアと、が設けられている。第1メモリは、ホストから受信したライトデータを受ける揮発性のメモリである。コントローラは、複数のブロックのそれぞれについてATIの影響の度合いを推定し、ATIの影響の度合いが第1しきい値に達した第1ブロックと、隣接する2つのブロックと、をライト不可に設定する。コントローラは、複数のブロックのうちのライト不可に設定されておらず、かつ空きがある1以上のブロックのうちの一を選択し、第1メモリ内のライトデータのコピーを、少なくともライトデータを第2エリアにライトするまでの期間、選択された一のブロックに格納する。
【選択図】
図13
【特許請求の範囲】
【請求項1】
複数のブロックを備える第1エリアと、ホストからライト先として指定される第2エリアと、が設けられた磁気ディスクと、
前記ホストから受信したライトデータを受ける揮発性の第1メモリと、
前記磁気ディスクに対してデータのライトおよびデータのリードを行う磁気ヘッドと、
前記複数のブロックのそれぞれについてATI(Adjacent Track Interference)の影響の度合いを推定し、
前記複数のブロックのうちのATIの影響の度合いが第1しきい値に達した第1ブロックと、前記複数のブロックのうちの前記第1ブロックに隣接する2つのブロックと、をライト不可に設定し、
前記複数のブロックのうちのライト不可に設定されておらず、かつ空き(free space)がある1以上のブロックのうちの一を選択し、
前記第1メモリ内のライトデータのコピーを、少なくとも前記ライトデータを前記第2エリアにライトするまでの期間、前記選択された一のブロックに格納する、
コントローラと、
を備える磁気ディスク装置。
【請求項2】
不揮発性の第2メモリを備え、
前記コントローラは、
前記第1メモリに受けたライトデータのうちの未だ前記複数のブロックのいずれにもコピーされていないライトデータの量が第1量に達する毎に、未だ前記複数のブロックの何れにもコピーされていないライトデータを前記複数のブロックのうちから選択された一のブロックに格納し、
電源断が発生した場合、未だ前記複数のブロックの何れにもコピーされていないライトデータを前記第2メモリに退避し、
前記電源断の後に電源供給が開始された場合、前記複数のブロックに格納された1以上のコピーと、前記第2メモリに退避されたライトデータと、に基づいて前記第1メモリ内のライトデータを復元する、
請求項1に記載の磁気ディスク装置。
【請求項3】
前記コントローラは、
それぞれは前記複数のブロックのうちの一にかかるカウンタである複数のカウンタを管理し、
前記複数のブロックのうちの一のブロックである第2ブロックに対して前記第1メモリ内のライトデータのコピーのライトを行った場合、前記複数のブロックのうちの前記第2ブロックに隣接する2つのブロックのうち、未だオリジナルのライトデータの前記第2エリアへのライトが完了していないコピーが格納されているブロックにかかるカウンタをインクリメントし、
前記複数のブロックのうちの格納されている全てのコピーのオリジナルのライトデータの前記第2エリアへのライトが完了したブロックにかかるカウンタをリセットし、
前記複数のカウンタに基づき前記複数のブロックのそれぞれについてATIの影響の度合いを推定する、
請求項1または請求項2に記載の磁気ディスク装置。
【請求項4】
前記コントローラは、前記複数のカウンタのうちの最小値からの差分が前記第1しきい値に達したブロックを前記第1ブロックとして特定する、
請求項3に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、磁気ディスク装置に関する。
【背景技術】
【0002】
従来、磁気ディスク上にキャッシュエリアを有する磁気ディスク装置がある。そのような磁気ディスク装置においては、ホストからライトが要求されたデータが一時的にキャッシュエリアに保存され得る。
【0003】
磁気ディスクへのライトの際に隣接トラックに与える影響のひとつとして、隣接トラック干渉(Adjacent Track Interference:ATI)が知られている。一つのトラックに対するライトの回数に応じて、隣接トラックが受けるATIの影響が蓄積し、隣接トラックのデータはやがてリードが困難になる。よって、隣接トラックのデータのリードが困難になる前に、隣接トラックに対し、全データのリライトが実行される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一つの実施形態は、磁気ディスク上のキャッシュエリアにおいてATIに応じたリライトの実行を抑制した磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態によれば、磁気ディスク装置は、磁気ディスクと、第1メモリと、磁気ヘッドと、コントローラと、を備える。磁気ディスクは、複数のブロックを備える第1エリアと、ホストからライト先として指定される第2エリアと、が設けられている。第1メモリは、ホストから受信したライトデータを受ける揮発性のメモリである。磁気ヘッドは、磁気ディスクに対してデータのライトおよびデータのリードを行う。コントローラは、複数のブロックのそれぞれについてATI(Adjacent Track Interference)の影響の度合いを推定する。コントローラは、複数のブロックのうちのATIの影響の度合いが第1しきい値に達した第1ブロックと、複数のブロックのうちの第1ブロックに隣接する2つのブロックと、をライト不可に設定する。コントローラは、複数のブロックのうちのライト不可に設定されておらず、かつ空き(free space)がある1以上のブロックのうちの一を選択し、第1メモリ内のライトデータのコピーを、少なくともライトデータを第2エリアにライトするまでの期間、選択された一のブロックに格納する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実施形態の磁気ディスク装置の構成の一例を示す模式的な図である。
【
図2】
図2は、実施形態の磁気ディスクの構成の一例を示す図である。
【
図3】
図3は、実施形態の磁気ディスクの記録面の半径方向に配列された複数のエリアの一例を示す図である。
【
図4】
図4は、実施形態の磁気ディスク装置が備えるメモリの構成の一例を示す模式的な図である。
【
図5】
図5は、実施形態の各メディアキャッシュエリアに設けられた複数のブロックの一例を説明するための模式的な図である。
【
図6】
図6は、実施形態のATI管理テーブルのデータ構造の一例を示す模式的な図である。
【
図7】
図7は、実施形態の磁気ディスク装置の、ライトデータの受信に応じた動作の一例を示すフローチャートである。
【
図8】
図8は、実施形態の磁気ディスク装置の、PLP機能に関する動作の一例を示すフローチャートである。
【
図9】
図9は、実施形態の磁気ディスク装置の、バッファエリア内の一時格納データをLBAエリアにライトする動作の一例を示すフローチャートである。
【
図10】
図10は、実施形態のATIカウンタのインクリメントの動作の一例を示すフローチャートである。
【
図11】
図11は、実施形態のATIカウンタのリセットの動作の一例を示すフローチャートである。
【
図12】
図12は、実施形態のATIカウンタに基づくライト不可の設定の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、実施形態にかかる磁気ディスク装置を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【0009】
(実施形態)
図1は、実施形態の磁気ディスク装置1の構成の一例を示す模式的な図である。
【0010】
磁気ディスク装置1は、ホスト2に接続される。磁気ディスク装置1は、ホスト2から、ライトコマンドやリードコマンドなどの、アクセスコマンドを受信することができる。
【0011】
磁気ディスク装置1は、表面に磁性層が形成された磁気ディスク11を備える。磁気ディスク装置1は、アクセスコマンドに応じて磁気ディスク11にデータをライトしたり磁気ディスク11からデータをリードしたりする。
【0012】
アクセスコマンドは、論理アドレスを含む。磁気ディスク装置1は、ホスト2に論理的なアドレス空間を提供する。論理アドレスは、当該アドレス空間における位置を示す。ホスト2は、論理アドレスを用いることによって、データをライトする位置またはデータのリードを行う位置を指定する。つまり、論理アドレスは、ホスト2から指定される位置情報である。なお、論理アドレスを、LBA(Logical Block Address)と表記する。
【0013】
データのライトおよびリードは、磁気ヘッド22を介して行われる。磁気ディスク装置1は、磁気ディスク11のほかに、スピンドルモータ12、ランプ13、アクチュエータアーム15、ボイスコイルモータ(VCM)16、モータドライバIC(Integrated Circuit)21、磁気ヘッド22、ハードディスクコントローラ(HDC)23、ヘッドIC24、リードライトチャネル(RWC)25、プロセッサ26、RAM27、およびFROM(Flash Read Only Memory)28を備える。
【0014】
磁気ディスク11は、同軸に取り付けられたスピンドルモータ12により、所定の回転速度で回転される。スピンドルモータ12は、モータドライバIC21により駆動される。
【0015】
プロセッサ26はモータドライバIC21を介して、スピンドルモータ12の回転およびVCM16の回転を制御する。
【0016】
磁気ヘッド22は、それに備わるライトコア22wおよびリードコア22rにより、磁気ディスク11に対して情報のライトおよびリードを行う。また、磁気ヘッド22は、アクチュエータアーム15の先端に取り付けられている。磁気ヘッド22は、VCM16により、磁気ディスク11の半径方向に移動される。なお、磁気ヘッド22に備わるライトコア22wおよびリードコア22rのいずれか一方、またはその両方は、それぞれ単一の磁気ヘッド22に対して複数設けられても良い。
【0017】
磁気ディスク11の回転が停止しているときなどは、磁気ヘッド22は、ランプ13上に移動される。ランプ13は、磁気ヘッド22を、磁気ディスク11から離間した位置で保持するように構成されている。
【0018】
ヘッドIC24は、リード動作時に、磁気ヘッド22が磁気ディスク11からリードした信号を増幅して出力し、RWC25に供給する。また、ヘッドIC24は、ライト動作時に、RWC25から供給されたライト対象のデータに対応した信号を増幅して、磁気ヘッド22に供給する。
【0019】
HDC23は、I/F バスを介してホスト2との間で行われるデータの送受信の制御などを行う。
【0020】
RAM27は、磁気ディスク11にライトされるデータや、磁気ディスク11からリードされたデータのバッファとして用いられる。
【0021】
また、RAM27は、プロセッサ26によって動作用のメモリとして使用される。RAM27は、ファームウェアがロードされる領域、および各種の管理データが一時記憶される領域として使用される。
【0022】
RAM27は、高速な動作が可能な揮発性メモリによって構成される。RAM27を構成するメモリの種類は、特定の種類に限定されない。RAM27は、例えば、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって構成され得る。なお、RAM27は、任意の不揮発性メモリによって構成されてもよい。RAM27の使用方法の詳細は後述される。
【0023】
RWC25は、HDC23から供給されるライト対象のデータに対して、セクタ単位で誤り訂正符号化などの変調を行い、変調後のデータをヘッドIC24に供給する。また、RWC25は、磁気ディスク11からリードされヘッドIC24から供給された信号に対してセクタ単位の誤り訂正を含む復調を行い、復調後の信号をデジタルデータとしてHDC23へ出力する。
【0024】
プロセッサ26は、例えばCPU(Central Processing Unit)である。プロセッサ26には、RAM27およびFROM(Flash Read Only Memory)28が接続されている。
【0025】
FROM28は、不揮発性メモリである。FROM28には、ファームウェア(プログラムデータ)および各種の動作パラメータなどが格納される。
【0026】
プロセッサ26は、FROM28に格納されているファームウェアに従って、この磁気ディスク装置1の全体的な制御を行う。例えば、プロセッサ26は、ファームウェアをFROM28または磁気ディスク11からRAM27にロードし、ロードされたファームウェアに従って、モータドライバIC21、ヘッドIC24、RWC25、HDC23などの制御を実行する。
【0027】
また、FROM28は、電源断の発生時においてRAM27内のデータの退避(save)先として使用される。
【0028】
HDC23、RWC25、およびプロセッサ26を含む構成は、磁気ディスク装置1の動作を制御するコントローラ30と見なすこともできる。コントローラ30は、これらのほかに、他の要素(例えばRAM27、またはFROM28など)を含んでいてもよい。
【0029】
ファームウェアプログラムは磁気ディスク11に格納されていてもよい。また、プロセッサ26の機能の一部または全部は、FPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)などのハードウェア回路によって実現されてもよい。
【0030】
なお、磁気ディスク装置1に具備される磁気ディスク11の数は1つに限定されない。また、磁気ディスク装置1は、磁気ディスク11の数に応じた数のアクチュエータアーム15および磁気ヘッド22を有し得る。また、磁気ディスク装置1が複数の磁気ヘッド22を有する場合、当該複数の磁気ヘッド22は一体的に移動せしめられてもよいし、当該複数の磁気ヘッド22はそれぞれ独立に移動可能な複数のグループを構成していてもよい。
【0031】
図2は、実施形態の磁気ディスク11の構成の一例を示す図である。磁気ディスク11の表面に形成された磁性層には、例えばサーボライタによって、またはセルフサーボライト(SSW)によって、磁気ヘッド22の位置決めに使用されるサーボデータがライトされる。
【0032】
図2には、サーボデータがライトされたサーボエリアの配置の一例として放射状に配置されたサーボエリア41が示されている。円周方向において、2つのサーボエリア41の間は、データのライトが可能なデータエリア42とされる。磁気ディスク11の半径方向には同心円の複数のトラック43が設けられる。トラック43上においてデータエリア42にはそれぞれは所定サイズのデータがライトされる複数のセクタが設けられる。所定サイズは、セクタサイズである。
【0033】
サーボデータは、サーボマーク、グレイコード、バーストパターン、およびポストコードを含む。サーボマークは、サーボデータの開始を示す。グレイコードは、磁気ディスク11に設けられた各トラック43を識別するためのID、即ちトラック番号と、トラック43上の各サーボセクタ(即ちサーボエリア41)を識別するためのID、即ちサーボセクタ番号と、を含む。バーストパターンは、グレイコードに含まれるトラック番号が示すトラックのセンターからの位置ずれ量を検出するために使用されるデータである。グレイコードに含まれるトラック番号は例えば整数値として与えられており、バーストパターンを復調することによってトラック番号が示す位置を基準とした小数点以下のオフセット量を得ることが可能である。つまり、バーストパターンを復調することによって、半径方向における磁気ヘッド22の現在位置が得られる。ポストコードは、グレイコード、バーストパターンによって規定されるトラック43の形状の、理想的なトラック43の形状からの位置ずれを補正するためのデータである。
【0034】
コントローラ30は、磁気ディスク11にデータをライトしたり磁気ディスク11からデータをリードしたりする際には、磁気ヘッド22がサーボエリア41からリードしたサーボデータに基づいて磁気ヘッド22の位置決め、つまりシーク制御およびトラッキング制御、を実行する。
【0035】
磁気ディスク11の記録面は、用途が異なる少なくとも2つのエリアに分割されている。少なくとも2つのエリアのうちの一はLBAエリアであり、少なくとも2つのエリアのうちの他はメディアキャッシュエリアである。
【0036】
図3は、実施形態の磁気ディスク11の記録面の半径方向に配列された複数のエリアの一例を示す図である。
【0037】
図3に示される例では、磁気ディスク11の記録面100には、内周側(inner side)から外周側(outer side)に向かって、LBAエリア110a、メディアキャッシュエリア120a、LBAエリア110b、メディアキャッシュエリア120b、LBAエリア110c、メディアキャッシュエリア120c、LBAエリア110d、メディアキャッシュエリア120dがこの順番で設けられている。
【0038】
以降では、LBAエリア110a、LBAエリア110b、LBAエリア110c、およびLBAエリア110dのそれぞれを、LBAエリア110と表記することがある。メディアキャッシュエリア120a、メディアキャッシュエリア120b、メディアキャッシュエリア120c、およびメディアキャッシュエリア120dのそれぞれを、メディアキャッシュエリア120と表記することがある。
【0039】
各LBAエリア110にはLBAがマッピングされている。よって、ホスト2は、全てのLBAエリア110のうちのライト先の位置またはリード先の位置を指定することができる。各LBAエリア110は、ホスト2からライトコマンドによってライトが要求されたデータ(以降、ライトデータと表記する)の最終的な格納先とされる。
【0040】
各メディアキャッシュエリア120は、ライトデータの一時的な格納場所として使用される。
【0041】
記録面100に設けられるメディアキャッシュエリア120の数および位置は、
図3に示された例に限定されない。また、記録面100に設けられるLBAエリア110の数および位置は、
図3に示された例に限定されない。記録面100には、LBAエリア110およびメディアキャッシュエリア120に加えて、任意の用途のエリアが設けられていてもよい。
【0042】
各メディアキャッシュエリア120は第1エリアの一例である。各LBAエリア110は第2エリアの一例である。
【0043】
図4は、実施形態の磁気ディスク装置1が備えるメモリ(即ちRAM27およびFROM28)の構成の一例を示す模式的な図である。
【0044】
RAM27にはバッファエリア271がアロケートされている。バッファエリア271には、ホスト2から受信したライトデータが最初に格納される。つまり、バッファエリア271は、ホスト2から受信したライトデータを受ける。
【0045】
RAM27は、揮発性メモリである。よって、バッファエリア271に格納されているライトデータは、電源断時にはバッファエリア271から失われる。実施形態の磁気ディスク装置1は、バッファエリア271内のライトデータが失われることでそのライトデータが磁気ディスク装置1から失われることを防止するために、パワーロスプロテクション(PLP)機能を有する。
【0046】
PLP機能によれば、電源断が起きた時、磁気ディスク装置1は、SPM12で生成される逆起電力などの予備的な電力を利用して、バッファエリア271内のライトデータをFROM28に退避する。退避は、転送、移動、またはコピーである。FROM28には、ライトデータの退避用のエリアであるPLP退避エリア281が設けられている。FROM28は不揮発性メモリであるので、PLP退避エリア281に退避されたライトデータは電源断後も失われない。これによって、バッファエリア271に受けたライトデータは電源断による喪失から保護される。
【0047】
実施形態では、一例として、PLP退避エリア281の容量が、バッファエリア271の容量に比べて小さい。よって、コントローラ30は、バッファエリア271に新しく格納されたライトデータの量がPLP退避エリア281に退避可能な所定量(例えばPLP退避エリア281の容量と同じサイズ)に至る毎に、バッファエリア271に新しく格納されたライトデータを何れかのメディアキャッシュエリア120にコピーする。PLP退避エリア281に退避可能な所定量を、以降では、第1量、と表記する。
【0048】
バッファエリア271に格納されたライトデータのうち、メディアキャッシュエリア120にそのコピーがライトされたオリジナルのライトデータは、電源断が起きるとバッファエリア271から失われる。電源供給が再開された後には、メディアキャッシュエリア120に格納されたコピーに基づき、当該オリジナルのライトデータと同じライトデータがバッファエリア271内に復元される。
【0049】
バッファエリア271に格納されたライトデータのうち、未だ何れのメディアキャッシュエリア120にもコピーされていないライトデータの量は、第1量以下にコントロールされる。よって、バッファエリア271に格納されたライトデータのうち、未だメディ何れのアキャッシュエリア120にもコピーされていないライトデータは、全て、電源断に応じてPLP退避エリア281に退避される。
【0050】
よって、バッファエリア271に格納されたライトデータの全ては、電源断によって磁気ディスク装置1から失われることが防止される。
【0051】
以降では、ホスト2から受信してから未だ何れのLBAエリア110にもライトされていないライトデータを、一時格納データ(temporary stored data)、と表記する。一時格納データは、バッファエリア271に格納されたライトデータ、メディアキャッシュエリア120に格納されたライトデータのコピー、およびPLP退避エリア281に退避されたライトデータを含む。
【0052】
さらに、バッファエリア271内のライトデータのうち、未だ何れのメディアキャッシュエリア120にもそのコピーがライトされていないライトデータを、未保護(unprotected)の一時格納データ、と表記する。
【0053】
さらに、各メディアキャッシュエリア120にライトされるライトデータのコピーを、コピーデータ、と表記する。
【0054】
RAM27には、ATI管理テーブル50が格納される。ATI管理テーブル50は、ATIの影響の度合いの推定に使用される。各メディアキャッシュエリア120は、複数のブロックに分割されており、ATI管理テーブル50に基づき、ブロック毎にATIの影響の度合いが推定される。
【0055】
図5は、各メディアキャッシュエリア120に設けられた複数のブロックの一例を説明するための模式的な図である。本図には、メディアキャッシュエリア120a~120dの代表として、メディアキャッシュエリア120aが図示されている。
【0056】
メディアキャッシュエリア120aは、複数のブロックとして、8個のMCブロックに分割されている。8個のMCブロックには、#0から#7までの識別番号が与えられている。MCブロックの識別番号を、MCブロック番号と表記する。
【0057】
8個のMCブロックのそれぞれは、第1量と同じか、または第1量よりも若干大きい容量を備える。よって、8個のMCブロックのそれぞれには、第1量の未保護の一時格納データのコピーが格納され得る。
【0058】
8個のMCブロックのそれぞれは、1トラック未満のエリアを占めていてもよいし、1トラック以上のエリアを占めていてもよい。8個のMCブロックのそれぞれは、1トラックによって構成されてもよい。また、8個のMCブロックのそれぞれが備える容量は、上記された例に限定されない。8個のMCブロックのそれぞれは、第1量の2倍以上の容量を備えていてもよい。
【0059】
各メディアキャッシュエリア120が備えるMCブロックの数は、複数である限り任意である。1つのメディアキャッシュエリア120が備えるMCブロックの数は、メディアキャッシュエリア120a~120d間で共通していてもよいし、共通していなくてもよい。
【0060】
図6は、ATI管理テーブル50のデータ構造の一例を示す模式的な図である。本図に示される例では、ATI管理テーブル50は、メディアキャッシュエリア120毎のサブテーブル51を含む。各サブテーブル51は、MCブロック番号毎にATIカウンタが記録されるテーブルである。
【0061】
或るMCブロックに新たなコピーデータのライトが行われた時、当該MCブロックにの両隣のMCブロックのうちの既に任意の一時記憶データのコピーデータが格納されたMCブロックにかかるATIカウンタが1だけインクリメントされる。或るMCブロックに格納された全てのコピーデータに対応するバッファエリア271内のオリジナルの一時格納データがLBAエリア110にライトされた場合、そのMCブロックにかかるATIカウンタが0にリセットされる。
【0062】
つまり、ATIカウンタは、コピーデータが格納されたMCブロックにおける、隣接するMCブロックにライトが行われた回数を表す。実施形態では、一例として、各MCブロックのATIカウンタの、個別のメディアキャッシュエリア120におけるATIカウンタの最小値からの差分を、ATIの影響の度合いの推定値と見なされる。
【0063】
一般に、一つのトラックに対するライトの回数に応じて、隣接トラックが受けるATIの影響が蓄積し、隣接トラックのデータはやがてリードが困難になる。コントローラ30は、例えば各LBAエリア110においては、隣接トラック43のデータのリードが困難になる前に、隣接トラック43に対し、全データのリライトを実行する。このような、ATIの影響によってリードが困難になることを防止するためのリライトを、ATIリフレッシュ動作、と表記する。
【0064】
ここで、実施形態と比較される技術について説明する。実施形態と比較される技術を、比較例と表記する。比較例によれば、実施形態と同様に、未保護の一時記憶データの量は第1量を超えないように、適時、一時記憶データのメディアキャッシュエリアへのコピーが実行される。加えて、メディアキャッシュエリアにおいてもATIリフレッシュ動作が実行される。
【0065】
比較例において、メディアキャッシュエリアにおいてATIリフレッシュ動作が実行されると、ATIリフレッシュ動作の実行によって、一時記憶データのメディアキャッシュエリアへのコピーの処理が滞る。その結果、ホストからの新しいライトデータの受け付けの速度(rate)が低下する。つまり、メディアキャッシュエリアにおけるATIリフレッシュ動作によって、磁気ディスク装置のライト性能が悪化し得る。
【0066】
実施形態では、メディアキャッシュエリア120におけるATIリフレッシュ動作を不要とするために、或るMCブロック(第1のMCブロックと表記する)が受けたATIの影響の度合いの推定値が所定のレベル(第1しきい値と表記する)に達した場合、コントローラ30は、第1のMCブロックの両隣のMCブロックをライト不可(unwritable)に設定する。第1のMCブロックの両隣のMCブロックへのライトが禁止されることによって、第1のMCブロックが受けるATIの影響の蓄積が止まる。これによって、第1のMCブロックに対するATIリフレッシュ動作が実行されなくても、第1のMCブロック内のデータのリードが困難になることが防止される。
【0067】
続いて、実施形態の磁気ディスク装置1の動作の詳細を説明する。
【0068】
図7は、実施形態の磁気ディスク装置1の、ライトデータの受信に応じた動作の一例を示すフローチャートである。なお、本図に示される一連の動作は、例えば、磁気ディスク装置1がライトデータを受信する毎に実行される。
【0069】
磁気ディスク装置1がホスト2からライトデータを受信すると(S101)、コントローラ30は、そのライトデータをバッファエリア271に格納する(S102)。そして、コントローラ30は、バッファエリア271内の未保護の一時格納データの量が第1量に達したか否かを判定する(S103)。
【0070】
バッファエリア271内の未保護の一時格納データの量が第1量に達していない場合(S103:No)、S101の処理によって受信したライトデータにかかる動作が終了する。
【0071】
バッファエリア271内の未保護の一時格納データの量が第1量に達した場合(S103:Yes)、コントローラ30は、ライト不可に設定されておらず、かつ空き(free space)がある全てのMCブロックのうちから、1つのMCブロックを選択する(S104)。
【0072】
S104の処理では、コントローラ30は、コマンドリオーダリングに基づいて1つのMCブロックを選択する。つまり、コントローラ30は、現在の磁気ヘッド22の位置および移動速度と、ライト不可に設定されておらずかつ空きがある全てのMCブロックの位置とに基づき、最も早くまたはできるだけ早くライトが可能なMCブロックを選択する。
【0073】
コントローラ30は、バッファエリア271内の第1量の未保護の一時格納データをS104の処理によって選択されたMCブロックにコピーする(S105)。そして、ライトデータの受信に応じた動作が終了する。
【0074】
図8は、実施形態の磁気ディスク装置1の、PLP機能に関する動作の一例を示すフローチャートである。
【0075】
外部からの磁気ディスク装置1への電力供給が停止すると、コントローラ30は、電力供給の停止を電源断として検知する(S201)。
【0076】
例えば、コントローラ30は、外部から電力が供給される電力線(不図示)の電圧を監視している。そして、コントローラ30は、電力線の電圧が所定値を下回ると、電源断が発生したと判断する。なお、電源断の検知方法はこれに限定されない。
【0077】
電源断の検知に応じて、コントローラ30は、バッファエリア271内の未保護の一時格納データをPLP退避エリア281に退避する(S202)。S202の処理は、例えばSPM12で生成される逆起電力を使用して実行される。バッファエリア271内の未保護の一時格納データの量は、
図7に示された一連の動作により、第1量以下にコントールされている。よって、S202の処理では、コントローラ30は、バッファエリア271内の未保護の一時格納データの全てをPLP退避エリア281に退避することができる。
【0078】
S202の処理に続いて、磁気ディスク装置1は、動作を停止する(S203)。
【0079】
その後、磁気ディスク装置1への電力供給が再開すると、コントローラ30は、PLP退避エリア281内の一時格納データと、メディアキャッシュエリア120内のコピーデータと、をバッファエリア271に転送する(S204)。これによって、電源断の直前にバッファエリア271に格納されていた一時格納データがバッファエリア271内に復元される。そして、PLP機能に関する動作が終了する。
【0080】
図9は、実施形態の磁気ディスク装置1の、バッファエリア271内の一時格納データをLBAエリア110にライトする動作の一例を示すフローチャートである。
【0081】
コントローラ30は、磁気ディスク装置1がアイドル状態にあるか否かを判定する(S301)。アイドル状態は、例えば、ホスト2からのアクセスコマンドの受信が無い期間が所定時間を超えた状態である。
【0082】
磁気ディスク装置1がアイドル状態にない場合(S301:No)、S301の処理が再び実行される。
【0083】
磁気ディスク装置1がアイドル状態にある場合(S301:Yes)、コントローラ30は、バッファエリア271内の一時格納データから一のライトコマンドにかかるライトデータを選択する(S302)。ここで、コントローラ30は、コマンドリオーダリングに基づいてライトデータを選択する。つまり、最も早くまたはできるだけ早くライト先のセクタにライトされ得るライトデータを選択する。
【0084】
コントローラ30は、選択されたライトデータをLBAエリア110にライトする(S303)。そして、コントローラ30は、バッファエリア271内のLBAエリア110へのライトが完了したライトデータおよびメディアキャッシュエリア120内のそのライトデータのコピーデータを無効化する(S305)。そして、コントローラ30は、S301の処理を再び実行する。
【0085】
無効化は、使用できなくすることである。無効化は、消去であってもよい。以降では、無効化されていないデータの状態を、有効、と表記する。
【0086】
図9に示された例では、一時格納データのLBAエリア110へのライトは、磁気ディスク装置1がアイドル状態にあるときに実行されることとした。一時格納データのLBAエリア110へのライトが実行される条件はこれに限定されない。例えば、バッファエリア271が有効な一時格納データでいっぱいになったときなどに一時格納データのLBAエリア110へのライトが実行されてもよい。
【0087】
図7および
図9に示された動作によって、MCブロックには、オリジナルのライトデータがバッファエリア271に格納されてからLBAエリア110にライトされるまでの期間、そのオリジナルのライトデータに対応するコピーデータが格納されることになる。
【0088】
図10は、実施形態のATIカウンタのインクリメントの動作の一例を示すフローチャートである。
【0089】
コントローラ30は、1つのMCブロックに対してライトを実行する(S401)。S40の処理は、具体的には、
図7に示されたS105の処理に該当する。S401の処理によってコピーデータのライトが実行されたMCブロックを、第1対象のMCブロックと表記する。
【0090】
S401の処理に続いて、コントローラ30は、第1対象のMCブロックの両隣のMCブロックのうち、有効なコピーデータが格納されているMCブロックのATIカウンタを1だけインクリメントする(S402)。ATIカウンタのインクリメントの動作が終了する。
【0091】
図10に示された一連の動作は、
図7に示されたS105の処理が実行される毎に実行される。
【0092】
図11は、実施形態のATIカウンタのリセットの動作の一例を示すフローチャートである。
【0093】
図9に例示された一連の動作によれば、各MCブロック内のコピーデータは、ライトコマンド単位で無効化される。よって、1つのMCブロックには、有効なコピーデータと無効なコピーデータとが混在し得る。
【0094】
コントローラ30は、
図9に例示された一連の動作が1回以上実行されることによって1つのMCブロックに格納されている全てのコピーデータの無効化が完了すると(S501)、そのMCブロックのATIカウンタを0にリセットする(S502)。そして、ATIカウンタのリセットの動作が終了する。
【0095】
図12は、実施形態のATIカウンタに基づくライト不可の設定の動作の一例を示すフローチャートである。
【0096】
コントローラ30は、何れかのメディアキャッシュエリア120において個別のメディアキャッシュエリア120の範囲のATIカウンタの最小値からのATIカウンタの差分が第1しきい値に達したMCブロックがあるか否かを判定する(S601)。個別のメディアキャッシュエリア120の範囲のATIカウンタの最小値からのATIカウンタの差分が第1しきい値に達したMCブロックを、第2対象のMCブロック、と表記する。
【0097】
第2対象のMCブロックがある場合(S601:Yes)、コントローラ30は、第2対象のMCブロックと、第2対象のMCブロックの両隣のMCブロックと、をライト不可に設定する(S602)。そして、コントローラ30は、他のMCブロック(より正確には第2対象のMCブロックおよび第2対象のMCブロックの両隣のMCブロックを除く全てのMCブロック)のライト不可の設定を解除する(S603)。なお、ライト不可に設定されたMCブロックが他にない場合には、コントローラ30は、S603の処理では何もしない。
【0098】
第2対象のMCブロックがない場合(S601:No)、コントローラ30は、S602の処理をスキップする。
【0099】
S603の処理の後、コントローラ30は、S601の処理を再び実行する。
【0100】
図13は、
図10~
図12に例示された動作の具体例を説明するための模式的な図である。
図13には、ATI管理テーブル50に含まれるサブテーブル51のうちの或るメディアキャッシュエリア120にかかるサブテーブル51が例示されている。
【0101】
なお、
図13に示される例の説明では、第1しきい値は「10」であることとする。
【0102】
図13の(A)に示されるサブテーブル51によれば、MCブロック#0~#3、#5、#6は空(empty)の状態となっており、これによって、MCブロック#0~#3、#5、#6のそれぞれにかかるATIカウンタは「0」となっている。MCブロック#4には有効なコピーデータが格納されており、MCブロック#4にかかるATIカウンタは「9」となっている。MCブロック#7にも有効なコピーデータが格納されており、MCブロック#7にかかるATIカウンタは「5」となっている。
【0103】
なお、空とは、有効なコピーデータが格納されていないことをいう。つまり、空とは、MCブロックそのものが空きとなっていることと同義である。
【0104】
各MCブロックにかかるATIカウンタが
図13の(A)に示される状態となっているときにコントローラ30がMCブロック#3に対するコピーデータのライトを実行する(S701)。すると、
図13の(B)に示されるように、コントローラ30は、MCブロック#3に隣接するMCブロックであるMCブロック#2およびMCブロック#4のうちの有効なコピーデータが格納されているMCブロックであるMCブロック#4にかかるATIカウンタを「1」だけインクリメントする。その結果、MCブロック#4にかかるATIカウンタの、サブテーブル51に記録されたATIカウンタの最小値である「0」からの差分が、第1しきい値である「10」に至る。よって、コントローラ30は、MCブロック#4およびMCブロック#4の両隣のMCブロック#3、#5をライト不可に設定する(S702)。
【0105】
つまり、MCブロック#4へのさらなるATIの影響の蓄積を防ぐために、MCブロック#5は空であるにも関わらずMCブロック#5へのライトが禁止される。
【0106】
続いて、
図13の(C)に示されるように、コントローラ30がMCブロック#4内の全てのコピーデータの無効化を完了すると、コントローラ30は、MCブロック#4にかかるATIカウンタを「0」にリセットし、MCブロック#4およびMCブロック#4の両隣のMCブロック#3、#5のライト不可の設定を解除する(S703)。これによって、コントローラ30は、空のMCブロック#4、#5へのライトが可能となる。
【0107】
なお、以上述べた説明では、コントローラ30は、未保護の一時格納データのコピーを第1量毎にメディアキャッシュエリア120にライトする、として説明した。1回にメディアキャッシュエリア120にライトされるコピーデータの量はこれに限定されない。
【0108】
例えば、FROM28にPLP退避エリア281が設けられておらず、コントローラ30は、バッファエリア271に格納された全ての一時格納データを任意のタイミングでメディアキャッシュエリア120にコピーするように構成されてもよい。
【0109】
また、各MCブロックのATIカウンタの、個別のメディアキャッシュエリア120におけるATIカウンタの最小値からの差分が、ATIの影響の度合いの推定値として見なされた。ATIの影響の度合いの推定値の例はこれに限定されない。
【0110】
一例では、コントローラ30は、ATIカウンタそのものをATIの影響の度合いの推定値として扱ってもよい。別の例では、各MCブロックのATIカウンタの、全てのメディアキャッシュエリア120におけるATIカウンタの最小値からの差分を、ATIの影響の度合いの推定値として扱ってもよい。
【0111】
以上述べたように、実施形態によれば、コントローラ30は、複数のMCブロックのそれぞれについてATIの影響の度合いを推定し、複数MCのブロックのうちのATIの影響の度合いが第1しきい値に達したMCブロック(第1MCブロックと表記する)と、複数のMCブロックのうちの第1MCブロックに隣接する2つのMCブロックと、をライト不可に設定する。コントローラ30は、複数のブロックのうちのライト不可に設定されておらず、かつ空きがある1以上のMCブロックのうちの一を選択し、バッファエリア271内のライトデータのコピーを、少なくともライトデータをLBAエリア110にライトするまでの期間、選択された一のブロックに格納する。
【0112】
よって、何れのメディアキャッシュエリア120においてもATIリフレッシュ動作の実行を必要とすることなくATIの影響によってデータのリードが困難になることを防止することができる。何れのメディアキャッシュエリア120においてもATIリフレッシュ動作が実行されないので、磁気ディスク装置1のライト性能の悪化が抑制される。
【0113】
また、実施形態によれば、磁気ディスク装置1は、バッファエリア271に受けた一時格納データのうちの未だメディアキャッシュエリア120にコピーされていない一時格納データの量が第1量に達する毎に、未だメディアキャッシュエリア120にコピーされていない一時格納データを選択されたMCブロックにコピーする。電源断が発生した場合、コントローラ30は、未だメディアキャッシュエリア120にコピーされていない一時格納データをPLP退避エリア281に退避する。電源断の後に電源供給が開始された場合、コントローラ30は、メディアキャッシュエリア120に格納されたコピーデータと、PLP退避エリア281に退避された一時格納データと、に基づいてバッファエリア271内の一時格納データを復元する。
【0114】
よって、電源断によってバッファエリア271内のライトデータが磁気ディスク装置1から喪失することが防止される。
【0115】
また、実施形態によれば、コントローラ30は、MCブロック毎のATIカウンタの群を管理する。コントローラ30は、或るMCブロック(第2MCブロックと表記する)に対するコピーデータのライトを行った場合、第2MCブロックに隣接する2つのMCブロックのうち、有効なコピーデータ、つまり未だLBAエリア110へのライトが完了していない一時格納データのコピー、が格納されているMCブロックにかかるATIカウンタをインクリメントする。コントローラ30は、格納されている全てのコピーデータの無効化が完了したMCブロックにかかるATIカウンタをリセットする。コントローラ30は、ATIカウンタに基づき、各MCブロックについてATIの影響の度合いを推定する。具体的には、コントローラ30は、最小値からのATIカウンタの差分が第1しきい値に達したMCブロックを第1MCブロックとして特定する。
【0116】
よって、コントローラ30は、第1MCブロックに格納されているコピーデータのリードが困難になる前に第1MCブロックが受けるATIの影響の蓄積を止めることが可能である。
【0117】
なお、前述されたように、コントローラ30は、ATIカウンタをATIの影響の度合いの推定値として用いてもよい。また、コントローラ30は、全てのメディアキャッシュエリア120におけるATIカウンタの最小値からのATIカウンタの差分をATIの影響の度合いの推定値として用いてもよい。つまり、コントローラ30は、ATIカウンタに基づいてATIの影響の度合いを推定することができる。
【0118】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0119】
1 磁気ディスク装置、2 ホスト、11 磁気ディスク、12 スピンドルモータ、13 ランプ、15 アクチュエータアーム、16 VCM、21 モータドライバIC、22 磁気ヘッド、22r リードコア、22w ライトコア、23 HDC、24 ヘッドIC、25 RWC、26 プロセッサ、27 RAM、28 FROM、30 コントローラ、41 サーボエリア、42 データエリア、43 トラック、50 ATI管理テーブル、51 サブテーブル、100 記録面、110,110a,110b,110c,110d LBAエリア、120,120a,120b,120c,120d メディアキャッシュエリア、271 バッファエリア、281 PLP退避エリア。