IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝デバイス&ストレージ株式会社の特許一覧

特許7490614磁気ディスク装置及びリード/ライト処理方法
<>
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図1
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図2
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図3
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図4
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図5
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図6
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図7
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図8
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図9
  • 特許-磁気ディスク装置及びリード/ライト処理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-17
(45)【発行日】2024-05-27
(54)【発明の名称】磁気ディスク装置及びリード/ライト処理方法
(51)【国際特許分類】
   G11B 20/18 20060101AFI20240520BHJP
   G11B 20/10 20060101ALI20240520BHJP
   G11B 5/09 20060101ALI20240520BHJP
【FI】
G11B20/18 552B
G11B20/10 311
G11B20/18 572B
G11B20/18 572F
G11B20/18 576Z
G11B20/18 552E
G11B20/18 532B
G11B5/09 311Z
G11B5/09 331
G11B5/09 361F
【請求項の数】 12
(21)【出願番号】P 2021092909
(22)【出願日】2021-06-02
(65)【公開番号】P2022185311
(43)【公開日】2022-12-14
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】前東 信宏
【審査官】川中 龍太
(56)【参考文献】
【文献】特開2021-047946(JP,A)
【文献】特開2019-153367(JP,A)
【文献】特開2019-164855(JP,A)
【文献】特開2013-161490(JP,A)
【文献】特開2003-296903(JP,A)
【文献】米国特許出願公開第2014/0101515(US,A1)
【文献】米国特許第08988800(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G11B 20/18
G11B 20/10 - 20/16
G11B 5/09
(57)【特許請求の範囲】
【請求項1】
ディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記ディスクの半径方向で第1トラックに第2トラックを重ね書きし、前記第1トラックにおいてユーザにより利用可能な第1ユーザセクタをライトできない場合に前記第1ユーザセクタを第1領域に記録する第1代替処理を実行し、前記第1トラックにおいてXOR演算して取得される第1パリティセクタをライトできない場合に前記第1パリティセクタを第2領域に記録する前記第1代替処理と異なる第2代替処理を実行する、コントローラと、を備える磁気ディスク装置。
【請求項2】
前記コントローラは、前記第1トラックにおいて前記第1ユーザセクタをライトできない、且つ前記第1トラックにおいて再度データをライトするライトリトライを実行したライトリトライ回数が前記ライトリトライを実行可能な上限値を超えている場合に、前記第1代替処理を実行し、前記第1トラックにおいて前記第1パリティセクタをライトできない、且つ前記ライトリトライ回数が前記上限値を超えている場合に、前記第2代替処理を実行する、請求項1に記載の磁気ディスク装置。
【請求項3】
前記第1領域は、LBAが設定されている領域であり、前記第2領域は、LBAが設定されていない領域である、請求項1又は2に記載の磁気ディスク装置。
【請求項4】
前記第1代替処理は、前記第1トラックの前記第1ユーザセクタの前記ディスクの円周方向のデータをライトする第1方向に隣接する第2ユーザセクタからライト処理を再開する処理である、請求項1乃至3のいずれか1項に記載の磁気ディスク装置。
【請求項5】
前記第1代替処理は、前記第1トラックの前記第1ユーザセクタに対応する第1LBAの次の第2LBAに対応する第2ユーザセクタからライト処理を再開する処理である、請求項1乃至3のいずれか1項に記載の磁気ディスク装置。
【請求項6】
前記第1領域は、前記ディスクのユーザにより利用可能なユーザデータ領域に相当し、
前記第2領域は、前記ユーザデータ領域にライトするデータを一時的にライトする前記ディスクのメディアキャッシュ、又はシステム管理に必要な情報をライトする前記ディスクのシステムエリアに相当する、請求項1乃至5のいずれか1項に記載の磁気ディスク装置。
【請求項7】
不揮発性メモリを備え、
前記第1領域は、ディスクのユーザにより利用可能なユーザデータ領域に相当し、
前記第2領域は、前記不揮発性メモリに相当する、請求項1乃至5のいずれか1項に記載の磁気ディスク装置。
【請求項8】
前記コントローラは、前記第2領域からリードした前記第1パリティセクタに基づいて、前記第1トラックでリードできない第3ユーザセクタをエラー訂正する、請求項1乃至7のいずれか1項に記載の磁気ディスク装置。
【請求項9】
ディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記ディスクの第1トラックのユーザにより利用可能な第1ユーザセクタをライトできない、且つ前記第1トラックにおいて再度データをライトするライトリトライを実行したライトリトライ回数が前記ライトリトライを実行可能な上限値を超えている場合に前記第1ユーザセクタをユーザにより利用可能な第1領域に記録し、前記第1トラックにおいてXOR演算して取得される第1パリティセクタをライトできない、且つ前記ライトリトライ回数が前記上限値を超えている場合に前記第1パリティセクタを前記第1領域と異なる第2領域に記録する、コントローラと、を備える磁気ディスク装置。
【請求項10】
前記コントローラは、前記第1ユーザセクタをライトできない場合に前記第1ユーザセクタの第1LBAの次の第2LBAに対応する第2ユーザセクタに前記第1ユーザセクタをライトする、請求項9に記載の磁気ディスク装置。
【請求項11】
前記第1領域は、LBAが設定されている領域であり、前記第2領域は、LBAが設定されていない領域である、請求項9又は10に記載の磁気ディスク装置。
【請求項12】
ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、を備える磁気ディスク装置に適用されるライト処理方法であって、
前記ディスクの半径方向で第1トラックに第2トラックを重ね書きし、
前記第1トラックにおいてユーザにより利用可能な第1ユーザセクタをライトできない場合に前記第1ユーザセクタを第1領域に記録する第1代替処理を実行し、
前記第1トラックにおいてXOR演算して取得される第1パリティセクタをライトできない場合に前記第1パリティセクタを第2領域に記録する前記第1代替処理と異なる第2代替処理を実行する、リード/ライト処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、磁気ディスク装置及びリード/ライト処理方法に関する。
【背景技術】
【0002】
近年、高記録密度を実現する技術を有する磁気ディスク装置が開発されている。高記録密度を実現する磁気ディスク装置として、ディスクの半径方向に複数のトラックを重ね書きする瓦記録型式(Shingled write Magnetic Recording:SMR、又はShingled Write Recording:SWR)を実行可能な磁気ディスク装置がある。
【0003】
磁気ディスク装置は、所定のトラックの各セクタを排他的論理和(Exclusive OR:XOR)演算したパリティセクタを含むトラックを有する。磁気ディスク装置は、このトラックの所定のセクタでエラーを検出した場合、このトラックに対応するパリティセクタに基づいて誤り訂正符号(Error Correction Code)によりエラーを訂正するエラー訂正処理(以下、トラックECC処理と称する場合もある)を実行する。瓦記録型式の磁気ディスク装置では、トラックECCを実装することで、トラック密度を向上させることが可能である。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許第9229813号明細書
【文献】米国特許第10854239号明細書
【文献】米国特許第9983963号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態が解決しようとする課題は、トラック密度を向上可能な磁気ディスク装置及びリード/ライト処理方法を提供することである。
【課題を解決するための手段】
【0006】
本実施形態に係る磁気ディスク装置は、ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記ディスクの半径方向で第1トラックに第2トラックを重ね書きし、前記第1トラックにおいてユーザにより利用可能な第1ユーザセクタをライトできない場合に前記第1ユーザセクタを第1領域に記録する第1代替処理を実行し、前記第1トラックにおいてXOR演算して取得される第1パリティセクタをライトできない場合に前記第1パリティセクタを第2領域に記録する前記第1代替処理と異なる第2代替処理を実行する、コントローラと、を備える。
【図面の簡単な説明】
【0007】
図1図1は、実施形態に係る磁気ディスク装置の構成を示すブロック図である。
図2図2は、実施形態に係るディスクの一例を示す模式図である。
図3図3は、瓦記録処理の一例を示す模式図である。
図4図4は、通常記録処理の一例を示す模式図である。
図5図5は、セクタスリップ処理を実行しない場合のバンド領域の瓦記録された複数のトラックの一例を示す模式図である。
図6図6は、セクタスリップ処理を実行する場合のバンド領域の瓦記録された複数のトラックの一例を示す模式図である。
図7図7は、実施形態に係るパリティセクタ代替処理の一例を示す模式図である。
図8図8は、実施形態に係るパリティセクタ代替処理の一例を示す模式図である。
図9図9は、実施形態に係るライト処理方法の一例を示すフローチャートである。
図10図10は、実施形態に係るリード処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0008】
以下、実施の形態について図面を参照して説明する。なお、図面は、一例であって、発明の範囲を限定するものではない。
(実施形態)
図1は、実施形態に係る磁気ディスク装置1の構成を示すブロック図である。
磁気ディスク装置1は、後述するヘッドディスクアセンブリ(HDA)と、ドライバIC20と、ヘッドアンプ集積回路(以下、ヘッドアンプIC、又はプリアンプ)30と、揮発性メモリ70と、不揮発性メモリ80と、バッファメモリ(バッファ)90と、1チップの集積回路であるシステムコントローラ130とを備える。また、磁気ディスク装置1は、ホストシステム(以下、単に、ホストと称する)100と接続される。
【0009】
HDAは、磁気ディスク(以下、ディスクと称する)10と、スピンドルモータ(以下、SPMと称する)12と、ヘッド15を搭載しているアーム13と、ボイスコイルモータ(以下、VCMと称する)14とを有する。ディスク10は、SPM12に取り付けられ、SPM12の駆動により回転する。アーム13及びVCM14は、アクチュエータを構成している。アクチュエータは、VCM14の駆動により、アーム13に搭載されているヘッド15をディスク10の所定の位置まで移動制御する。ディスク10およびヘッド15は、2つ以上の数が設けられてもよい。
【0010】
ディスク10は、そのデータをライト可能な領域に、ユーザから利用可能なユーザデータ領域10aと、ホスト等から転送されたデータ(又はコマンド)をユーザデータ領域10aの所定の領域にライトする前に一時的に保持するメディアキャッシュ(又は、メディアキャッシュ領域と称する場合もある)10bと、システム管理に必要な情報をライトするシステムエリア10cとが割り当てられている。なお、メディアキャッシュ10bは、ディスク10に配置されていなくともよい。以下、ディスク10の内周から外周へ向かう方向、又はディスク10の外周から内周へ向かう方向を半径方向と称する。半径方向において、内周から外周へ向かう方向を外方向(外側)と称し、内周から外周へ向かう方向を内方向(内側)と称する。ディスク10の半径方向に直交する方向を円周方向と称する。円周方向は、ディスク10の円周に沿った方向に相当する。また、ディスク10の半径方向の所定の位置を半径位置と称し、ディスク10の円周方向の所定の位置を円周位置と称する場合もある。半径位置及び円周位置をまとめて単に位置と称する場合もある。なお、“トラック”は、ディスク10の半径方向に区分した複数の記録領域の内の1つの記録領域、ディスク10の半径方向に区分した複数の記録領域の内の1つの記録領域にライトされたデータ、所定の半径位置におけるヘッド15の経路、ディスク10の円周方向に延長するデータ、所定の半径位置のトラックにライトされた1周分のデータ、ディスク10の所定のトラックにライトされたデータ、ディスク10の所定のトラックにライトされたデータの一部や、その他の種々の意味で用いる。“セクタ”は、ディスク10の所定のトラックを円周方向に区分した複数の記録領域の内の1つの記録領域、ディスク10の所定のトラックを円周方向に区分した複数の記録領域の内の1つの記録領域にライトされたデータ、ディスク10の所定の半径位置における所定の円周位置にライトされたデータ、ディスク10の所定のトラックの所定のセクタにライトされたデータや、その他の種々の意味で用いる。“トラックの半径方向の幅”を“トラック幅”と称する場合もある。“所定のトラックにおけるトラック幅の中心位置を通る経路”を“トラックセンタ”と称する。ユーザデータ領域10aにライトされるユーザにより利用可能なデータをユーザデータと称する場合もある。ユーザデータがライトされるセクタをユーザセクタと称する場合もある。ユーザセクタには、LBA(Logical Block Address)が設定される。
【0011】
ヘッド15は、スライダを本体として、当該スライダに実装されているライトヘッド15Wとリードヘッド15Rとを備える。ライトヘッド15Wは、ディスク10にデータをライトする。リードヘッド15Rは、ディスク10にライトされたデータをリードする。なお、“ライトヘッド15W”を単に“ヘッド15”と称する場合もあるし、“リードヘッド15R”を単に“ヘッド15”と称する場合もあるし、“ライトヘッド15W及びリードヘッド15R”をまとめて“ヘッド15”と称する場合もある。“ヘッド15の中心部”を“ヘッド15”と称し、“ライトヘッド15Wの中心部”を“ライトヘッド15W”と称し、“リードヘッド15Rの中心部”を“リードヘッド15R”と称する場合もある。“ライトヘッド15Wの中心部”を単に“ヘッド15”と称する場合もあるし、“リードヘッド15Rの中心部”を単に“ヘッド15”と称する場合もある。“ヘッド15の中心部を所定のトラックのトラックセンタに位置決めする”ことを“ヘッド15を所定のトラックに位置決めする”、“ヘッド15を所定のトラックに配置する”、又は“ヘッド15を所定のトラックに位置する”等で表現する場合もある。
【0012】
図2は、本実施形態に係るディスク10の一例を示す模式図である。図2に示すように、円周方向において、ディスク10の回転する方向を回転方向と称する。なお、図2に示した例では、回転方向は、反時計回りで示しているが、逆向き(時計回り)であってもよい。図2において、ディスク10は、内方向に位置する内周領域IRと、外方向に位置する外周領域ORと、内周領域IR及び外周領域ORの間に位置する中周領域MRとに区分されている。
【0013】
図2に示した例では、ディスク10は、ユーザデータ領域10a、メディアキャッシュ10b、及びシステムエリア10cを含む。図2では、ユーザデータ領域10a、メディアキャッシュ10b、及びシステムエリア10cは、外方向に向かって記載の順に配置されている。図2では、メディアキャッシュ10bは、ユーザデータ領域10aの外方向に隣接して配置されている。言い換えると、メディアキャッシュ10bは、ユーザデータ領域10a及びシステムエリア10cの間に配置されている。ここで、“隣接”とは、データ、物体、領域、及び空間等が接して並んでいることはもちろん、所定の間隔を置いて並んでいることも含む。図2では、システムエリア10cは、メディアキャッシュ10bの外方向に隣接して配置されている。なお、ユーザデータ領域10a、メディアキャッシュ10b、及びシステムエリア10cの配置の順番は、図2に示した順番に制限されるものではなく、任意の順番を取り得る。また、メディアキャッシュ10bがディスク10に配置されていない場合、システムエリア10cは、ユーザデータ領域10aの外方向に隣接して配置され得る。
【0014】
図2に示した例では、ユーザデータ領域10aは、半径方向において、内周領域IRから外周領域ORに亘って配置されている。図2に示した例では、メディアキャッシュ10bは、半径方向において、外周領域ORに配置されている。なお、メディアキャッシュ10bは、内周領域IR又は中周領域MRに位置していてもよい。また、メディアキャッシュ10bは、外周領域OR、中周領域MR、及び内周領域IRに分散して位置していてもよい。図2に示した例では、システムエリア10cは、半径方向において、外周領域ORに配置されている。言い換えると、システムエリア10cは、外周領域ORの所定の位置からディスク10の最外周に亘って配置されている。なお、システムエリア10cは、中周領域MR又は内周領域IRに配置されていてもよい。
【0015】
ディスク10のユーザデータ領域10aには、所定のトラックの半径方向の一部に次にライトするトラックを重ね書きする瓦記録(Shingled Write Magnetic Recording : SMR、又はShingled Write Recording : SWR)型式でデータがライトされ得る。なお、ユーザデータ領域10aには、所定のトラックに半径方向で隣接するトラック(以下、隣接トラックと称する場合もある)をこの所定のトラックから半径方向に所定の間隔(ギャップ)を空けてライトする、又はランダムにデータをライト可能な通常記録(Conventional Magnetic Recording : CMR)型式でデータがライトされてもよい。以下、”瓦記録型式でデータをライトする“ことを単に”瓦記録する“、”瓦記録処理を実行する“、又は単に”ライトする“と称する場合もある。”通常記録処理“以外のライト処理を”瓦記録処理“と称する場合もある。また、“通常記録型式でデータをライトする”ことを単に“通常記録する”、“通常記録処理を実行する”、又は単に“ライトする”と称する場合もある。
【0016】
図2に示すように、ヘッド15は、ディスク10に対してVCM14の駆動により回転軸周りで回転して内方向から外方向に向かって移動して所定の位置に配置される、又は外方向から内方向に向かって移動して所定の位置に配置される。
【0017】
ドライバIC20は、システムコントローラ130(詳細には、後述するMPU60)の制御に従って、SPM12およびVCM14の駆動を制御する。
ヘッドアンプIC(プリアンプ)30は、リードアンプ及びライトドライバ等を備えている。リードアンプは、ディスク10からリードしたリード信号を増幅して、システムコントローラ130(詳細には、後述するリード/ライト(R/W)チャネル40)に出力する。ライトドライバは、R/Wチャネル40から出力される信号に応じたライト電流をヘッド15に出力する。
【0018】
揮発性メモリ70は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ70は、磁気ディスク装置1の各部での処理に必要なデータ等を格納する。揮発性メモリ70は、例えば、DRAM(Dynamic Random Access Memory)、又はSDRAM(Synchronous Dynamic Random Access Memory)である。
【0019】
不揮発性メモリ80は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ80は、例えば、NOR型またはNAND型のフラッシュROM(Flash Read Only Memory :FROM)である。
【0020】
バッファメモリ90は、磁気ディスク装置1とホスト100との間で送受信されるデータ等を一時的に記録する半導体メモリである。なお、バッファメモリ90は、揮発性メモリ70と一体に構成されていてもよい。バッファメモリ90は、例えば、DRAM、SRAM(Static Random Access Memory)、SDRAM、FeRAM(Ferroelectric Random Access memory)、又はMRAM(Magnetoresistive Random Access Memory)等である。
【0021】
システムコントローラ(コントローラ)130は、例えば、複数の素子が単一チップに集積されたSystem-on-a-Chip(SoC)と称される大規模集積回路(LSI)を用いて実現される。システムコントローラ130は、リード/ライト(R/W)チャネル40と、ハードディスクコントローラ(HDC)50と、マイクロプロセッサ(MPU)60と、を含む。システムコントローラ130は、例えば、ドライバIC20、ヘッドアンプIC30、揮発性メモリ70、不揮発性メモリ80、バッファメモリ90、及びホストシステム100等に電気的に接続されている。
【0022】
R/Wチャネル40は、後述するMPU60からの指示に応じて、ディスク10からホスト100に転送されるデータ(以下、リードデータと称する場合もある)とホスト100から転送されるデータ(以下、ライトデータと称する場合もある)との信号処理を実行する。R/Wチャネル40は、ライトデータを変調する回路、又は機能を有している。R/Wチャネル40は、リードデータの信号品質を測定及び復調する回路、又は機能を有している。R/Wチャネル40は、例えば、ヘッドアンプIC30、HDC50、及びMPU60等に電気的に接続されている。
【0023】
HDC50は、データの転送を制御する。例えば、HDC50は、後述するMPU60からの指示に応じて、ホスト100とディスク10との間のデータの転送を制御する。HDC50は、例えば、R/Wチャネル40、MPU60、揮発性メモリ70、不揮発性メモリ80、及びバッファメモリ90等に電気的に接続されている。
【0024】
MPU60は、磁気ディスク装置1の各部を制御するメインコントローラである。MPU60は、ドライバIC20を介してVCM14を制御し、ヘッド15の位置決めを行なうサーボ制御を実行する。MPU60は、ドライバIC20を介してSPM12を制御し、ディスク10を回転させる。MPU60は、ディスク10へのデータのライト動作を制御すると共に、ホスト100から転送されるデータ、例えば、ライトデータの保存先を選択する。MPU60は、ディスク10からのデータのリード動作を制御すると共に、ディスク10からホスト100に転送されるデータ、例えば、リードデータの処理を制御する。また、MPU60は、データを記録する領域を管理する。MPU60は、磁気ディスク装置1の各部に接続されている。MPU60は、例えば、ドライバIC20、R/Wチャネル40、及びHDC50等に電気的に接続されている。
【0025】
MPU60は、リード/ライト制御部610、ユーザセクタ管理部620、パリティセクタ管理部630、及びエラー訂正部640等を有している。MPU60は、各部、例えば、リード/ライト制御部610、ユーザセクタ管理部620、パリティセクタ管理部630、及びエラー訂正部640等の処理をファームウェア上で実行する。なお、MPU60は、各部、例えば、リード/ライト制御部610、ユーザセクタ管理部620、パリティセクタ管理部630、及びエラー訂正部640等を回路として有していてもよい。リード/ライト制御部610、ユーザセクタ管理部620、パリティセクタ管理部630、及びエラー訂正部640等は、R/Wチャネル40又はHDC50に含まれていてもよい。
【0026】
リード/ライト制御部610は、ホスト100からのコマンド等に従って、ディスク10からデータをリードするリード処理とディスク10にデータをライトするライト処理とを制御する。リード/ライト制御部610は、ドライバIC20を介してVCM14を制御し、ヘッド15をディスク10の所定の位置に位置決めし、リード処理又はライト処理を実行する。以下、所定の領域にデータを記録若しくはライトすること(又はライト処理)、所定の領域からデータを読み出す若しくはリードすること(又はリード処理)や、所定の領域にヘッド15等を移動させることを含む意味で“アクセス”という用語を用いる場合もある。
【0027】
リード/ライト制御部610は、ホスト100からのコマンド等に従って、ディスク10の所定の領域毎にデータを瓦記録する。データを瓦記録する領域の単位をバンド(又はバンド領域)と称する場合もある。リード/ライト制御部610は、バンド領域に複数のトラックをシーケンシャルに瓦記録する。なお、リード/ライト制御部610は、ホスト100からのコマンド等に従って、ディスク10の所定の領域にデータを通常記録してもよい。
【0028】
リード/ライト制御部610は、所定の領域、例えば、所定のセクタにデータをライト(又は瓦記録)する時に、Write Faultが生した場合、Write Faultが生じたためにライトできなかったデータを再度同じセクタにライトするライトリトライを実行する。“同じ”、“同一”、“一致”、及び“同等”などの用語は、全く同じという意味はもちろん、実質的に同じであると見做せる程度に異なるという意味を含む。リード/ライト制御部610は、所定の領域、例えば、所定のセクタにデータをライト(又は瓦記録)する時に、Write Faultが生じた場合、ライトリトライを実行する回数(以下、ライトリトライ回数と称する場合もある)がライトリトライを実行できる回数の上限値(以下、ライトリトライ上限値と称する場合もある)を超えているかライトリトライ上限値以下であるかを判定する。ライトリトライ回数がライトリトライ上限値以下であると判定した場合、リード/ライト制御部610は、ライトリトライを実行する。
【0029】
瓦記録処理ではトラック密度設計上、ライトリトライを実行できる回数の上限値(以下、ライトリトライ上限値と称する場合もある)が小さい値に設定され得る。例えば、瓦記録処理では、ライトリトライ上限値は、1回である。例えば、瓦記録処理では、ライトリトライ上限値は、数回以下である。
【0030】
図3は、瓦記録処理の一例を示す模式図である。図3には、進行方向を示している。円周方向においてディスク10に対してヘッド15がデータをシーケンシャルにライト及びリードする方向、つまり、円周方向においてディスク10に対してヘッド15が進行する方向を進行方向と称する場合もある。例えば、進行方向は、ディスク10の回転方向とは反対向きである。なお、進行方向は、ディスク10の回転方向と同じ向きであってもよい。円周方向において、進行方向を後方向、又は後と称する場合もある。円周方向において、後方向と反対方向を前方向、又は前と称する場合もある。図3には、順方向を示している。半径方向において複数のトラックを連続的に瓦記録する方向、つまり、半径方向において1つ前にライトしたトラックに対して次にライトするトラックを重ねる方向を順方向と称する場合もある。図3では、半径方向において内方向を順方向としているが、外方向を順方向としてもよい。
【0031】
図3には、バンド領域BAeを示している。図3のバンド領域BAeには、複数のトラックSTR1、STR2、及びSTR3が記載の順番で順方向に連続的に重ね書きされている。以下、瓦記録では、ライトヘッド15Wによりデータがライトされた領域をライトトラックと称し、所定のトラックにおいて他のライトトラックが重ね書きされた領域以外の残りの領域をリードトラックと称する場合もある。図3には、他のトラックが重ね書きされていない場合のトラックSTR1のトラックセンタSTC1と、他のトラックが重ね書きされていない場合のトラックSTR2のトラックセンタSTC2と、他のトラックが重ね書きされていない場合のトラックSTR3のトラックセンタSTC3と、を示している。図3に示した例では、トラックSTR1、STR2、及びSTR3は、トラックピッチSTPでライトされている。トラックSTR1のトラックセンタSTC1とトラックSTR2のトラックセンタSTC2とは、トラックピッチSTPで離れている。トラックSTR2のトラックセンタSTC2とトラックSTR3のトラックセンタSTC3とは、トラックピッチSTPで離れている。トラックSTR1乃至STR3は、異なるトラックピッチでライトされていてもよい。図3において、トラックSTR1においてトラックSTR2が重ね書きされていない領域の半径方向の幅と、トラックSTR2においてトラックSTR3が重ね書きされていない領域の半径方向の幅とは、同じである。なお、トラックSTR1においてトラックSTR2が重ね書きされていない領域の半径方向の幅と、トラックSTR2においてトラックSTR3が重ね書きされていない領域の半径方向の幅とは、異なっていてもよい。図3では、説明の便宜上、各トラックを所定のトラック幅で円周方向に延出している長方形状に示しているが、実際には、円周方向に沿って湾曲している。また、各トラックは、半径方向に変動しながら円周方向に延出している波状であってもよい。なお、図3では、3つのトラックを重ね書きしているが、3つ未満、又は3つよりも多くのトラックを重ね書きしてもよい。
【0032】
図3に示した例では、MPU60は、バンド領域BAeにおいてトラックSTR1乃至STR3を内方向に向かってトラックピッチSTPでシーケンシャルに瓦記録する。なお、MPU60は、トラックSTR1乃至STR3を外方向に向かってトラックピッチSTPでシーケンシャルに瓦記録してもよい。MPU60は、トラックSTR1の内方向にトラックピッチSTPでトラックSTR2をライトし、トラックSTR1の内方向の一部にトラックSTR2を重ね書きする。MPU60は、トラックSTR2の内方向にトラックピッチSTPでトラックSTR3をライトし、トラックSTR2の内方向の一部にトラックSTR3を重ね書きする。
【0033】
図4は、通常記録処理の一例を示す模式図である。図4には、トラックCTR1、CTR2、及びCTR3を示している。図4では、例えば、トラックCTR1、CTR2、及びCTR3のトラック幅は、同じである。なお、トラックCTR1乃至CTR3のトラック幅は、異なっていてもよい。図4には、トラックCTR1のトラックセンタCTC1、トラックCTR2のトラックセンタCTC2、及びトラックCTR3のトラックセンタCTC3を示している。図4に示した例では、トラックCTR1、CTR2、及びCTR3は、トラックピッチCTPでライトされている。トラックCTR1のトラックセンタCTC1とトラックCTR2のトラックセンタCTC2とは、トラックピッチCTPで離れている。トラックCTR2のトラックセンタCTC2とトラックCTR3のトラックセンタCTC3とは、トラックピッチCTPで離れている。トラックCTR1及びトラックCTR2は、ギャップGPで離れている。トラックCTR2及びトラックCTR3は、ギャップGPで離れている。なお、トラックCTR1乃至CTR3は、異なるトラックピッチでライトされていてもよい。図4では、説明の便宜上、各トラックを所定のトラック幅で円周方向に延出している長方形状に示しているが、実際には、円周方向に沿って湾曲している。また、各トラックは、半径方向に変動しながら円周方向に延出している波状であってもよい。
【0034】
図4に示した例では、MPU60は、ディスク10の所定の領域、例えば、ユーザデータ領域10aにおいて、トラックセンタCTC1にヘッド15を位置決めしてトラックCTR1又はトラックCTR1の所定のセクタを通常記録する。MPU60は、ユーザデータ領域10aにおいて、トラックCTR1のトラックセンタCTC1から内方向にトラックピッチCTPで離間しているトラックセンタCTC2にヘッド15を位置決めしてトラックCTR2又はトラックCTR2の所定のセクタを通常記録する。MPU60は、ユーザデータ領域10aにおいて、トラックCTR2のトラックセンタCTC2から内方向にトラックピッチCTPで離間しているトラックセンタCTC3にヘッド15を位置決めしてトラックCTR3又はトラックCTR3の所定のセクタを通常記録する。MPU60は、ディスク10の所定の領域、例えば、ユーザデータ領域10aにおいて、トラックCTR1、CTR2、及びCTR3をシーケンシャルに通常記録してもよいし、トラックCTR1の所定のセクタ、トラックCTR2の所定のセクタ、及びトラックCTR3の所定のセクタにランダムに通常記録してもよい。
【0035】
ユーザセクタ管理部620は、ディスク10の所定のセクタ、例えば、ユーザセクタを管理する。ユーザセクタ管理部620は、ディスク10の所定のユーザセクタに対応するLBAと、所定のユーザセクタにライトするデータ、例えば、ユーザデータとを管理する。なお、ユーザセクタ管理部620は、所定のユーザセクタと、所定のユーザセクタに対応するLBAと、所定のユーザセクタにライトするユーザデータとの関係をテーブルとして、ディスク10、揮発性メモリ70、不揮発性メモリ80、及びバッファメモリ90等に記録していてもよい。
【0036】
ユーザセクタ管理部620は、ホスト100等のコマンドに従って、所定のユーザデータを所定のLBAに対応する所定のユーザセクタにライトする。ユーザセクタ管理部620は、ホスト100等のコマンドに従って、バンド領域において複数のトラックに亘って配置され、連続する複数のLBAにそれぞれ対応する複数のユーザセクタにLBAの順番に従ってユーザデータを瓦記録する。
【0037】
ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックの所定のユーザセクタ(以下、Faultセクタと称する場合もある)でWite Faultが生じてFaultセクタにライト不可能となった場合、このFaultセクタと異なるユーザデータ領域10aにFaultセクタにライトするユーザデータ(以下、Faultライトデータと称する場合もある)及びこのFaultライトデータに続くユーザデータを瓦記録する代替処理(以下、ユーザセクタ代替処理と称する場合もある)を実行する。
【0038】
ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultセクタの後に配置されたユーザセクタ(以下、円周方向セクタと称する場合もある)からFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタから後にずれた円周方向セクタからこの円周方向セクタに続くユーザセクタに瓦記録(又は瓦記録を再開)する。
【0039】
ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultセクタに対応するLBAを所定の値インクリメントしたLBAに対応する円周方向セクタからFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタのLBAを所定の値インクリメントしたLBAに対応する円周方向セクタからこの円周方向セクタに続くユーザセクタに瓦記録(又は瓦記録を再開)する。
【0040】
ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultセクタの1つ後に隣接するユーザセクタ(以下、円周方向隣接セクタと称する場合もある)からFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタから後に1セクタ分ずれた円周方向隣接セクタからこの円周方向隣接セクタに続くユーザセクタに瓦記録(又は瓦記録を再開)する。
【0041】
ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultセクタに対応するLBAを1インクリメントしたLBAに対応する円周方向隣接セクタからFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、この所定のトラックのFaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタのLBAを1インクリメントしたLBAに対応する円周方向隣接セクタからこの円周方向隣接セクタに続くユーザセクタに瓦記録(又は瓦記録を再開)する。
【0042】
ユーザセクタ管理部620は、バンド領域にユーザデータを瓦記録している際に、このバンド領域の所定のFaultセクタでWrite Faultが生じた場合に、ライトリトライ回数がライトリトライ上限値を超えているかライトリトライ上限値以下であるかを判定する。
【0043】
ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultセクタの後に配置された円周方向セクタからFaultセクタにライトするFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は、瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタから後にずれた円周方向セクタからこの円周方向セクタに続くユーザセクタに瓦記録する。
【0044】
ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultセクタに対応するLBAを所定の値インクリメントしたLBAに対応する円周方向セクタからFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は、瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタのLBAを所定の値インクリメントしたLBAに対応する円周方向セクタからこの円周方向セクタに続くユーザセクタに瓦記録する。
【0045】
ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultセクタの1つ後に隣接する円周方向隣接セクタからFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は、瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタから後に1セクタ分ずれた円周方向隣接セクタからこの円周方向隣接セクタに続くユーザセクタに瓦記録する。
【0046】
ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultセクタに対応するLBAを1インクリメントしたLBAに対応する円周方向隣接セクタからFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録(又は、瓦記録を再開)する。言い換えると、ユーザセクタ管理部620は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、このFaultライトデータからこのFaultライトデータに続くユーザデータをFaultセクタのLBAを1インクリメントしたLBAに対応する円周方向隣接セクタからこの円周方向隣接セクタに続くユーザセクタに瓦記録する。
【0047】
以下、FaultセクタでWrite Faultが生じてFaultセクタにライト不可能となった場合にFaultライトデータからこのFaultライトデータに続くユーザデータをこのFaultセクタから後にずれた、例えば、1セクタ分の後の円周方向隣接セクタからこの円周方向隣接セクタに続くユーザセクタにライトすることをセクタスリップ(Sector Slip)又はセクタスリップ(Sector Slip)処理と称する場合もある。
【0048】
パリティセクタ管理部630は、ディスク10の所定のパリティセクタ(又はパリティデータ)を管理する。パリティセクタ管理部630は、排他的論理和(Exclusive OR:XOR)演算してパリティセクタを算出し、算出したパリティセクタをディスク10の所定の領域、例えば、LBAが設定されていない領域(以下、LBA未設定領域と称する場合もある)にライトし、このパリティセクタを管理する。パリティセクタは、例えば、パリティビット、及びパリティ検出符号を含む。なお、パリティセクタ管理部630は、所定のパリティセクタと、所定のパリティセクタに対応するLBA未設定領域との関係をテーブルとしてディスク10、揮発性メモリ70、不揮発性メモリ80、及びバッファメモリ90等に記録していてもよい。
【0049】
パリティセクタ管理部630は、所定のトラックの全てのセクタにXOR演算してパリティセクタを算出し、算出したパリティセクタをこのトラックの所定のセクタ(以下、パリティライトセクタと称する場合もある)にライトする。パリティライトセクタは、LBAが設定されていない。なお、パリティセクタ管理部630は、所定のトラックの一部のセクタにXOR演算してパリティセクタを算出し、算出したパリティセクタをこのトラックのパリティライトセクタにライトしてもよい。
【0050】
パリティセクタ管理部630は、所定のトラックにおいてFaultセクタ以外の全てのセクタ(以下、有効セクタと称する場合もある)にライトされたユーザデータをXOR演算してパリティセクタを算出し、算出したパリティセクタをこのトラックのパリティライトセクタにライトする。
【0051】
パリティセクタ管理部630は、バンド領域にユーザデータを瓦記録している際に、このバンド領域の所定のトラックのパリティライトセクタ(以下、Faultパリティライトセクタと称する場合もある)でWrite Faultが生じてこのFaultパリティライトセクタにライト不可能となった場合、このFaultパリティライトセクタと異なるユーザデータ領域10a以外の領域(以下、非ユーザデータ領域又は代替領域と称する場合もある)にFaultパリティライトセクタにライトするパリティセクタ(以下、Faultパリティセクタと称する場合もある)を記録(又は退避)する代替処理(以下、パリティセクタ代替処理と称する場合もある)を実行する。代替領域は、LBAが設定されていない。パリティセクタ代替処理と前述したユーザセクタ代替処理とは、異なる代替処理である。以下、パリティセクタ代替処理及びユーザセクタ代替処理をまとめて代替処理と称する場合もある。代替処理は、所定のデータをライトする予定であった領域と異なる領域に記録する処理を含む。非ユーザデータ領域(又は代替領域)は、例えば、ディスク10のメディアキャッシュ10b、システムエリア10c、及び不揮発性メモリ80等を含む。なお、バンド領域の所定のトラックのパリティライトセクタでWrite Faultが生じてこのFaultパリティライトセクタにライト不可能となった場合に、この所定のトラックの順方向に隣接する隣接トラックをライトしないという方法も考えられるが、1トラック分のユーザデータ領域10aを失う可能性がある。
【0052】
パリティセクタ管理部630は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、このバンド領域の所定のトラックのFaultパリティライトセクタでWrite Faultが生じてこのFaultパリティライトセクタにライト不可能となった場合、代替領域、例えば、ディスク10のシステムエリア10c(のパリティセクタを記録するための特定の領域(以下、パリティ記録領域と称する場合もある))にFaultパリティセクタを記録(又は退避)する。
【0053】
パリティセクタ管理部630は、バンド領域の所定のトラックにユーザデータを瓦記録している際に、このバンド領域の所定のFaultパリティライトセクタでWrite Faultが生じた場合、ライトリトライ回数がライトリトライ上限値を超えているかライトリトライ上限値以下であるかを判定する。
【0054】
パリティセクタ管理部630は、ライトリトライ回数がライトリトライ上限値を超えていると判定した場合、代替領域、例えば、ディスク10のシステムエリア10c(のパリティ記録領域)にFaultパリティセクタを記録(又は退避)する。
【0055】
エラー訂正部640は、リードできないデータ(以下、リードエラーデータ又はエラーデータと称する場合もある)又はリードできないセクタ(以下、リードエラーセクタ又はエラーセクタと称する場合もある)を復旧(訂正、救済、又はエラー訂正)する。エラー訂正部640は、エラーデータ又はエラーセクタを複数回リードするリードリトライを実行する。また、エラー訂正部640は、誤り訂正符号(Error Correction Code)に基づいてデータ又はセクタのエラー(誤り)を訂正する処理(以下、ECC処理又はエラー訂正処理と称する場合もある)を実行する。エラー訂正部640は、所定のトラックのエラーデータ又はエラーセクタに対応するECC(以下、セクタECCと称する場合もある)に基づいて、ECC処理(以下、セクタECC処理と称する場合もある)をこのエラーセクタに実行する。エラー訂正部640は、所定のトラックのエラーデータ又はエラーセクタに対応するECC(以下、トラックECCと称する場合もある)に基づいて、ECC処理(以下、トラックECC処理と称する場合もある)をこのエラーセクタに実行する。例えば、エラー訂正部640は、所定のトラックに対応するパリティデータ、又はパリティセクタに基づいて、このトラックのエラーセクタをトラックECC処理する。なお、エラー訂正部640は、例えば、エラーセクタに関連する情報(以下、エラーセクタ情報と称する場合もある)をテーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、又は不揮発性メモリ80に記録してもよい。
【0056】
エラー訂正部640は、所定のトラックで所定のエラーセクタにトラックECC処理を実行する場合に、このトラックにおいてパリティ代替処理を実行したかパリティ代替処理を実行していないかを判定する。エラー訂正部640は、所定のトラックにおいてパリティ代替処理を実行したと判定した場合、代替領域からこのトラックに対応するパリティセクタを読み出して、このパリティセクタに基づいて、このトラックのエラーセクタをトラックECC処理する。
【0057】
図5は、セクタスリップ処理を実行しない場合のバンド領域BA0の瓦記録された複数のトラックTRk及びTRk+1の一例を示す模式図である。図5には、バンド領域BA0を示している。バンド領域BA0には、トラックTRk及びトラックTRk+1が、記載の順番で順方向に瓦記録されている。なお、バンド領域BA0には、3つ以上のトラックが順方向に瓦記録されていてもよい。トラックTRkは、ユーザセクタSc00、Sc01、Sc02、Sc03、…、Sc0n、及びパリティライトセクタPs0を含む。トラックTRkにおいて、ユーザセクタSc00、Sc01、Sc02、Sc03、…、Sc0n、及びパリティライトセクタPs0は、記載の順番で進行方向に連続して配置されている。パリティライトセクタPs0は、トラックTRkにおける全てのユーザセクタの内の最後のユーザセクタSc0nの後に隣接している。ユーザセクタSc00は、LBA LA0が設定され、ユーザセクタSc01は、LBA LA1が設定され、ユーザセクタSc02は、LBA LA2が設定され、ユーザセクタSc03は、LBA LA3が設定され、ユーザセクタSc0nは、LBA LAnが設定されている。図5には、トラックTRkにライトされるユーザデータDAT0、DAT1、DAT2、DAT3、…、DATnと、を示している。図5には、トラックTRkのパリティライトセクタPs0にライトされるパリティセクタP0を示している。トラックTRk+1は、ユーザセクタSc10、Sc11、Sc12、Sc13、…、Sc1n、及びパリティライトセクタPs1を含む。トラックTRkにおいて、ユーザセクタSc10、Sc11、Sc12、Sc13、…、Sc1n、及びパリティライトセクタPs1は、記載の順番で進行方向に連続して配置されている。パリティライトセクタPs1は、トラックTRk+1における最後のユーザセクタSc1nの後に隣接している。ユーザセクタSc10は、LBA LAn+1が設定され、ユーザセクタSc11は、LBA LAn+2が設定され、ユーザセクタSc12は、LBA LAn+3が設定され、ユーザセクタSc13は、LBA LAn+3が設定され、ユーザセクタSc1nは、LBA LAn+mが設定されている。図5には、トラックTRk+1にライトされるユーザデータDATn+1、DATn+2、DATn+3、…、DATn+mと、を示している。図5には、トラックTRk+1のパリティライトセクタPs1にライトされるパリティセクタP1を示している。
【0058】
MPU60は、トラックTRkにおいて、ユーザセクタSc00乃至Sc0nにDAT0乃至DATnをそれぞれ瓦記録し、DAT0乃至DATnにXOR演算して取得したパリティセクタP0をパリティライトセクタPs0にライトする。MPU60は、トラックTRk+1において、ユーザセクタSc10乃至Sc1nにDATn+1乃至DATn+mをそれぞれ瓦記録し、DATn+1乃至DATn+mにXOR演算して取得したパリティセクタP1をパリティライトセクタPs1にライトする。
【0059】
図6は、セクタスリップ処理を実行する場合のバンド領域BA0の瓦記録された複数のトラックTRk及びTRk+1の一例を示す模式図である。図6は、図5に対応している。図6において、ユーザセクタSc02は、Faultセクタに相当する。図6には、トラックTRkにライトされるユーザデータDATn―1と、トラックTRk+1にライトされるユーザデータDATn+m―1と、を示している。図6には、トラックTRkのパリティライトセクタPs0にライトされるパリティセクタP2と、トラックTRk+1のパリティライトセクタPs1にライトされるパリティセクタP3と、を示している。なお、図6においてライトリトライ回数は、ライトリトライ上限値を超えるものとする。
【0060】
図6に示した例では、MPU60は、トラックTRkを瓦記録している際に、ユーザセクタSc02でWrite Faultが生じてこのFaultセクタにライト不可能となった場合、DAT2をユーザセクタSc03に瓦記録し、DATn―1をユーザセクタSc0nに瓦記録し、DAT0乃至DATn―1にXOR演算して取得したパリティセクタP2をパリティライトセクタPs0にライトする。MPU60は、トラックTRk+1において、ユーザセクタSc10乃至Sc1nにDATn乃至DATn+m―1をそれぞれ瓦記録し、DATn乃至DATn+m―1にXOR演算して取得したパリティセクタP3をパリティライトセクタPs1にライトする。
【0061】
図7は、本実施形態に係るパリティセクタ代替処理の一例を示す模式図である。図7は、図5に対応している。図7において、パリティライトセクタPs0は、Faultパリティライトセクタに相当する。図7には、代替領域としてディスク10のメディアキャッシュ10b及びシステムエリア10cを示している。なお、図7においてライトリトライ回数は、ライトリトライ上限値を超えるものとする。
【0062】
図7に示した例では、MPU60は、トラックTRkのパリティライトセクタPs0でWrite Faultが生じてこのパリティライトセクタにライト不可能となった場合、メディアキャッシュ10b又はシステムエリア10c(のパリティ記録領域)にパリティセクタP0を記録する。
【0063】
図7に示した例では、MPU60は、トラックTRkのエラーセクタにトラックECC処理を実行する場合、メディアキャッシュ10b又はシステムエリア10c(のパリティ記録領域)からパリティセクタP0を読み出して、このパリティセクタP0に基づいて、このトラックTRkのエラーセクタをトラックECC処理する。
【0064】
図8は、本実施形態に係るパリティセクタ代替処理の一例を示す模式図である。図8は、図7に対応している。図8には、代替領域として不揮発性メモリ80を示している。なお、図8においてライトリトライ回数は、ライトリトライ上限値を超えているものとする。
【0065】
図8に示した例では、MPU60は、トラックTRkのパリティライトセクタPs0でWrite Faultが生じてこのパリティライトセクタにライト不可能となった場合、不揮発性メモリ80(のパリティ記録領域)にパリティセクタP0を記録する。
【0066】
図8に示した例では、MPU60は、トラックTRkのエラーセクタにトラックECC処理を実行する場合、不揮発性メモリ80(のパリティ記録領域)からパリティセクタP0を読み出して、このパリティセクタP0に基づいて、このトラックTRkのエラーセクタをトラックECC処理する。
【0067】
図9は、本実施形態に係るライト処理方法の一例を示すフローチャートである。
MPU60は、データを所定のトラックの所定のセクタにライトする(B901)。例えば、MPU60は、データを所定のバンド領域の所定のトラックの所定のセクタに瓦記録する。MPU60は、この所定のセクタでWrite Faultが生じているか生じていないかを判定する(B902)。この所定のセクタでWrite Faultが生じていないと判定した場合(B902のNO)、MPU60は、処理を終了する。この所定のセクタでWrite Faultが生じていると判定した場合(B902のYES)、MPU60は、このトラックに対応するライトリトライ回数がライトリトライ上限値を超えているかライトリトライ上限値以下であるかを判定する(B903)。このトラックに対応するライトリトライ回数がライトリトライ上限値以下であると判定した場合(B903のNO)、MPU60は、B901の処理に進む。このトラックに対応するライトリトライ回数がライトリトライ上限値を超えていると判定した場合(B903のYES)、MPU60は、この所定のセクタがパリティライトセクタであるかパリティライトセクタでないかを判定する(B904)。言い換えると、このトラックに対応するライトリトライ回数がライトリトライ上限値を超えていると判定した場合、MPU60は、この所定のセクタがパリティライトセクタであるかユーザセクタであるかを判定する。この所定のセクタがパリティセクタであると判定した場合(B904のYES)、MPU60は、パリティセクタ代替処理を実行し(B905)、処理を終了する。例えば、この所定のセクタがパリティライトセクタであると判定した場合、MPU60は、所定のFaultパリティセクタを代替領域、例えば、システムエリア10c(のパリティ記録領域)に記録し、処理を終了する。この所定のセクタがパリティライトセクタでない、つまり、ユーザセクタであると判定した場合(B904のNO)、MPU60は、ユーザセクタ代替処理を実行し(B906)、処理を終了する。例えば、この所定のセクタがユーザセクタであると判定した場合、MPU60は、Faultセクタの円周方向隣接セクタからFaultライトデータ及びこのFaultライトデータに続くユーザデータを瓦記録し、処理を終了する。
【0068】
図10は、本実施形態に係るリード処理方法の一例を示すフローチャートである。
MPU60は、所定のトラックの所定のセクタをリードする(B1001)。MPU60は、所定のセクタがエラーセクタであるかエラーセクタでないかを判定する(B1002)。所定のセクタがエラーセクタでないと判定した場合(B1002のNO)、MPU60は、処理B1001に進む。所定のセクタがエラーセクタであると判定した場合(B1002のYES)、MPU60は、このトラックにおいてパリティセクタ代替処理を実行したか実行していないかを判定する(B1003)。言い換えると、所定のセクタがエラーセクタであると判定した場合、MPU60は、このトラックに対応するパリティセクタを代替領域に記録したか代替領域に記録していないかを判定する。パリティセクタ代替処理を実行したと判定した場合(B1003のYES)、MPU60は、代替領域、例えば、システムエリア10c(のパリティ記録領域)からこのトラックに対応するパリティセクタを取得し(B1004)、B1006の処理に進む。パリティセクタ代替処理を実行していないと判定した場合(B1003のNO)、MPU60は、ユーザデータ領域のこのトラックのパリティライトセクタからパリティセクタを取得し(B1005)、取得したパリティセクタに基づいてこのトラックのエラーセクタにトラックECC処理を実行し(B1006)、処理を終了する。
【0069】
実施形態によれば、磁気ディスク装置1は、所定のバンド領域に複数のトラックを瓦記録する。磁気ディスク装置1は、このバンド領域の所定のトラックの所定のセクタでWrite Faultが生じている場合、この所定のセクタがユーザセクタであるかパリティライトセクタであるかによって、異なる代替処理を実行する。磁気ディスク装置1は、このバンド領域の所定のトラックのFaultセクタ(ユーザセクタ)でWrite Faultが生じており、且つこのトラックに対応するライトリトライ回数がライトリトライ上限値を超えている場合、このFaultセクタの円周方向隣接セクタからFaultライトデータ及びこのFaultデータに続くユーザデータを瓦記録する(スリップセクタ処理を実行する)。磁気ディスク装置1は、このバンド領域の所定のトラックのFaultパリティライトセクタ(パリティライトセクタ)でWrite Faultが生じており、且つこのトラックに対応するライトリトライ回数がライトリトライ上限値を超えている場合、このトラックに対応する所定のFaultパリティセクタを代替領域、例えば、システムエリア10c(のパリティ記録領域)に記録する。磁気ディスク装置1は、所定のバンド領域の全てのトラックに対応するパリティセクタを保持することができる。そのため、磁気ディスク装置1は、所定のバンド領域の全てのトラックにおいて、トラックECC処理を実行できる。したがって、磁気ディスク装置1は、トラック密度を向上することができる。
なお、前述した実施形態の構成は、瓦記録型式の磁気ディスク装置1のみではなく、通常記録型式の磁気ディスク装置1にも適用することができる。
【0070】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0071】
1…磁気ディスク装置、10…磁気ディスク、10a…ユーザデータ領域、10b…メディアキャッシュ、10c…システムエリア、12…スピンドルモータ(SPM)、13…アーム、14…ボイスコイルモータ(VCM)、15…ヘッド、15W…ライトヘッド、15R…リードヘッド、20…ドライバIC、30…ヘッドアンプIC、40…リード/ライト(R/W)チャネル、50…ハードディスクコントローラ(HDC)、60…マイクロプロセッサ(MPU)、70…揮発性メモリ、80…不揮発性メモリ、90…バッファメモリ、100…ホストシステム(ホスト)、130…システムコントローラ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10