JP2022137803A - 磁気ディスク装置 - Google Patents
磁気ディスク装置 Download PDFInfo
- Publication number
- JP2022137803A JP2022137803A JP2021037475A JP2021037475A JP2022137803A JP 2022137803 A JP2022137803 A JP 2022137803A JP 2021037475 A JP2021037475 A JP 2021037475A JP 2021037475 A JP2021037475 A JP 2021037475A JP 2022137803 A JP2022137803 A JP 2022137803A
- Authority
- JP
- Japan
- Prior art keywords
- track
- sector
- parity
- sectors
- error
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/012—Recording on, or reproducing or erasing from, magnetic disks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1222—ECC block, i.e. a block of error correction encoded symbols which includes all parity data needed for decoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Digital Magnetic Recording (AREA)
- Recording Or Reproducing By Magnetic Means (AREA)
Abstract
【課題】 リード性能を向上可能な磁気ディスク装置を提供することである。【解決手段】 本実施形態に係る磁気ディスク装置は、第1パリティセクタを含む第1トラックと第2パリティセクタを含む第2トラックとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、コントローラと、を備える。【選択図】図1
Description
本発明の実施形態は、磁気ディスク装置に関する。
磁気ディスク装置は、各セクタを排他的論理和(Exclusive OR:XOR)演算したパリティセクタを含むトラックを有する。磁気ディスク装置は、このトラックの所定のセクタでエラーを検出した場合、このトラックに対応するパリティセクタに基づいて誤り訂正符号(Error Correction Code)によりエラーを訂正するエラー訂正処理(以下、トラックECC処理と称する場合もある)を実行する。
本発明の実施形態が解決しようとする課題は、リード性能を向上可能な磁気ディスク装置を提供することである。
本実施形態に係る磁気ディスク装置は、第1パリティセクタを含む第1トラックと第2パリティセクタを含む第2トラックとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、コントローラと、を備える。
以下、実施の形態について図面を参照して説明する。なお、図面は、一例であって、発明の範囲を限定するものではない。
(実施形態)
図1は、実施形態に係る磁気ディスク装置1の構成を示すブロック図である。
磁気ディスク装置1は、後述するヘッドディスクアセンブリ(HDA)と、ドライバIC20と、ヘッドアンプ集積回路(以下、ヘッドアンプIC、又はプリアンプと称する場合もある)30と、揮発性メモリ70と、不揮発性メモリ80と、バッファメモリ(バッファ)90と、1チップの集積回路であるシステムコントローラ130とを備える。また、磁気ディスク装置1は、ホストシステム(ホスト)100と接続される。
(実施形態)
図1は、実施形態に係る磁気ディスク装置1の構成を示すブロック図である。
磁気ディスク装置1は、後述するヘッドディスクアセンブリ(HDA)と、ドライバIC20と、ヘッドアンプ集積回路(以下、ヘッドアンプIC、又はプリアンプと称する場合もある)30と、揮発性メモリ70と、不揮発性メモリ80と、バッファメモリ(バッファ)90と、1チップの集積回路であるシステムコントローラ130とを備える。また、磁気ディスク装置1は、ホストシステム(ホスト)100と接続される。
HDAは、磁気ディスク(以下、ディスクと称する)10と、スピンドルモータ(SPM)12と、ヘッド15を搭載しているアーム13と、ボイスコイルモータ(VCM)14とを有する。ディスク10は、スピンドルモータ12に取り付けられ、スピンドルモータ12の駆動により回転する。アーム13及びVCM14は、アクチュエータを構成している。アクチュエータは、VCM14の駆動により、アーム13に搭載されているヘッド15をディスク10の所定の位置まで移動制御する。ディスク10およびヘッド15は、2つ以上の数が設けられてもよい。
ディスク10には、データをライト可能な領域に、ユーザから利用可能なユーザデータ領域10aと、システム管理に必要な情報を記録するシステムエリア10bとが割り当てられている。なお、ディスク10には、ユーザデータ領域10a及びシステムエリア10bとは別の領域として、ホスト100等から転送されたデータ(又はコマンド)をユーザデータ領域10aの所定の領域にライトする前に一時的に保持するメディアキャッシュ(メディアキャッシュ領域と称する場合もある)が割り当てられていてもよい。以下、ディスク10の内周から外周へ向かう方向、又はディスク10の外周から内周に向かう方向を半径方向と称する。半径方向において、内周から外周へ向かう方向を外方向(又は、外側)と称し、外周から内周へ向かう方向、つまり、外方向と反対方向を内方向(又は、内側)と称する。ディスク10の半径方向に直交する方向を円周方向と称する。すなわち、円周方向は、ディスク10の円周に沿った方向に相当する。また、ディスク10の半径方向の所定の位置を半径位置と称し、ディスク10の円周方向の所定の位置を円周位置と称する場合もある。半径位置及び円周位置をまとめて単に位置と称する場合もある。ディスク10は、半径方向の所定の範囲毎に複数の領域(以下、ゾーン、又はゾーン領域と称する場合もある)に区分される。ゾーンには、半径方向の所定の範囲毎にデータがライトされ得る。言い換えると、ゾーンには、複数のトラックがライトされ得る。トラックは、円周方向の所定の範囲毎にデータがライトされ得る。言い換えると、トラックは、複数のセクタを含む。なお、“トラック”は、ディスク10を半径方向に所定の範囲毎に区分した複数の領域の内の1つの領域、ディスク10の所定の半径位置におけるヘッド15の経路、ディスク10の所定の半径方向で円周方向に延出するデータ、ディスク10の所定のトラックにライトされた1周分のデータ、ディスク10の所定のトラックにライトされたデータや、その他の種々の意味で用いる。“セクタ”は、ディスク10の所定のトラックを円周方向で区分した複数の領域の内の1つの領域、ディスク10の所定の半径位置における所定の円周位置にライトされたデータ、ディスク10の所定のセクタにライトされたデータや、その他の種々の意味で用いる。“トラックの半径方向の幅”を“トラック幅”と称する場合もある。また、“セクタの半径方向の幅”を“セクタ幅”と称する場合もある。
ヘッド15は、スライダを本体として、当該スライダに実装されているライトヘッド15Wとリードヘッド15Rとを備える。ライトヘッド15Wは、ディスク10にデータをライトする。例えば、ライトヘッド15Wは、ディスク10に所定のトラックをライトする。リードヘッド15Rは、ディスク10に記録されているデータをリードする。例えば、リードヘッド15Rは、ディスク10の所定のトラックをリードする。
図2は、本実施形態に係るディスク10に対するヘッド15の配置の一例を示す模式図である。図2に示すように、円周方向において、ディスク10の回転する方向を回転方向と称する。なお、図2に示した例では、回転方向は、反時計回りの方向で示しているが、逆向き(時計回り)の方向であってもよい。
ヘッド15は、ディスク10に対してVCM14の駆動により回転軸周りで回転して内方向から外方向に向かって所定の位置に移動する、又は外方向から内方向に向かって移動する。
図2に示した例では、ディスク10において、システムエリア10bは、ユーザデータ領域10aの外方向に配置されている。図2に示した例では、システムエリア10bは、ディスク10の最外周に配置されている。なお、システムエリア10bは、図2に示した位置と異なる位置に配置されていてもよい。
図2に示した例では、ディスク10において、システムエリア10bは、ユーザデータ領域10aの外方向に配置されている。図2に示した例では、システムエリア10bは、ディスク10の最外周に配置されている。なお、システムエリア10bは、図2に示した位置と異なる位置に配置されていてもよい。
ドライバIC20は、システムコントローラ130(詳細には、後述するMPU60)の制御に従って、SPM12およびVCM14の駆動を制御する。
ヘッドアンプIC(プリアンプ)30は、リードアンプ及びライトドライバを備えている。リードアンプは、ディスク10からリードしたリード信号を増幅して、システムコントローラ130(詳細には、後述するリード/ライト(R/W)チャネル40)に出力する。ライトドライバは、R/Wチャネル40から出力されるライトデータに応じたライト電流をヘッド15に出力する。
ヘッドアンプIC(プリアンプ)30は、リードアンプ及びライトドライバを備えている。リードアンプは、ディスク10からリードしたリード信号を増幅して、システムコントローラ130(詳細には、後述するリード/ライト(R/W)チャネル40)に出力する。ライトドライバは、R/Wチャネル40から出力されるライトデータに応じたライト電流をヘッド15に出力する。
揮発性メモリ70は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ70は、磁気ディスク装置1の各部での処理に必要なデータ等を格納する。揮発性メモリ70は、例えば、DRAM(Dynamic Random Access Memory)、又はSDRAM(Synchronous Dynamic Random Access Memory)である。
不揮発性メモリ80は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ80は、例えば、NOR型またはNAND型のフラッシュROM(Flash Read Only Memory :FROM)である。
バッファメモリ90は、磁気ディスク装置1とホスト100との間で送受信されるデータ等を一時的に記録する半導体メモリである。なお、バッファメモリ90は、揮発性メモリ70と一体に構成されていてもよい。バッファメモリ90は、例えば、DRAM、SRAM(Static Random Access Memory)、SDRAM、FeRAM(Ferroelectric Random Access memory)、又はMRAM(Magnetoresistive Random Access Memory)等である。
システムコントローラ(コントローラ)130は、例えば、複数の素子が単一チップに集積されたSystem-on-a-Chip(SoC)と称される大規模集積回路(LSI)を用いて実現される。システムコントローラ130は、リード/ライト(R/W)チャネル40、ハードディスクコントローラ(HDC)50、及びマイクロプロセッサ(MPU)60等を含む。R/Wチャネル40、HDC50、及びMPU60は、それぞれ、互いに電気的に接続されている。システムコントローラ130は、例えば、ドライバIC20、ヘッドアンプIC30、揮発性メモリ70、不揮発性メモリ80、バッファメモリ90、及びホストシステム100等に電気的に接続されている。
R/Wチャネル40は、後述するMPU60からの指示に応じて、ディスク10からホスト100に転送されるデータ(以下、リードデータと称する場合もある)とホスト100から転送されるデータ(以下、ライトデータと称する場合もある)との信号処理を実行する。R/Wチャネル40は、ライトデータを変調する回路、又は機能を有している。R/Wチャネル40は、リードデータの信号品質を測定及び復調する回路、又は機能を有している。R/Wチャネル40は、例えば、ヘッドアンプIC30、HDC50、及びMPU60等に電気的に接続されている。
HDC50は、データの転送を制御する。例えば、HDC50は、後述するMPU60からの指示に応じて、ホスト100とディスク10との間のデータの転送を制御する。HDC50は、例えば、R/Wチャネル40、MPU60、揮発性メモリ70、不揮発性メモリ80、及びバッファメモリ90等に電気的に接続されている。
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等に電気的に接続されている。
MPU60は、リード/ライト制御部610と、エラー検出部620と、パリティセクタ管理部630と、及びエラー訂正部640とを備えている。MPU60は、これら各部、例えば、リード/ライト制御部610と、エラー検出部620と、パリティセクタ管理部630と、及びエラー訂正部640等の処理をファームウェア上で実行する。なお、MPU60は、これら各部を回路として備えていてもよい。また、リード/ライト制御部610と、エラー検出部620と、パリティセクタ管理部630と、及びエラー訂正部640は、それぞれ、R/Wチャネル40又はHDC50に備えられていてもよい。
リード/ライト制御部610は、ホスト100等からのコマンドに従って、ディスク10からデータをリードするリード処理とディスク10にデータをライトするライト処理とを制御する。リード/ライト制御部610は、ドライバIC20を介してVCM14を制御し、ヘッド15をシークし、このヘッド15をディスク10の所定の位置に位置決めし、リード処理又はライト処理を実行する。リード/ライト制御部610は、ヘッド15を所定の半径位置に位置決めし、所定の領域にデータをライトする。リード/ライト制御部610は、ホスト100等からのライトコマンドを受けた場合、セクタ毎に訂正コード(又は、誤り訂正符号(Error Correction Code:ECC))を付与したデータをライトする。リード/ライト制御部610は、ヘッド15を所定の半径位置に位置決めし、所定の領域からデータをリードする。リード/ライト制御部610は、ホスト100等からのリードコマンドを受けた場合、所定のトラック又は所定のセクタにライトされたデータをリードする。以下、所定の領域にデータを記録若しくはライトすること(又はライト処理)、所定の領域からデータを読み出す若しくはリードすること(又はリード処理)や、所定の領域にヘッド15等を移動させることを含む意味で“アクセス”という用語を用いる場合もある。また、”ヘッド15(ライトヘッド15W又はリードヘッド15R)の中心部を所定の位置に位置決め、又は配置する”ことを単に”ヘッド15(ライトヘッド15W又はリードヘッド15R)を所定の位置に位置決め、又は配置する”と表現する場合もある。
なお、リード/ライト制御部610は、所定のトラックの半径方向の一部に次にライトするトラックを重ね書きする瓦記録(Shingled Write Magnetic Recording : SMR、又はShingled Write Recording : SWR)型式でデータをライトしてもよいし、所定のトラックの半径方向に隣接するトラック(以下、隣接トラックと称する場合もある)又は所定のトラックの半径方向に隣接するセクタ(以下、隣接セクタと称する場合もある)をこの所定のトラック又はこの所定のセクタから半径方向に所定の間隔を空けてライトする通常記録(Conventional Magnetic Recording : CMR)型式でデータをライトしてもよい。ここで、“隣接”とは、データ、物体、領域、及び空間等が接して並んでいることはもちろん、所定の間隔を置いて並んでいることも含む。”隣接トラック”は、“所定のトラックの外方向に隣接するトラック”、“所定のトラックの内方向に隣接トラック”、及び“所定のトラックの外方向及び内方向に隣接する複数のトラック”を含む。”隣接セクタ”は、“所定のセクタの外方向に隣接するセクタ”、“所定のセクタの内方向に隣接セクタ”、及び“所定のセクタの外方向及び内方向に隣接する複数のセクタ”を含む。“瓦記録型式でデータをライトする“ことを” 瓦記録する“、” 瓦記録処理を実行する“、又は単に”ライトする“と称する場合もある。“通常記録型式でデータをライトする“ことを”通常記録する“、”通常記録処理を実行する“、又は単に”ライトする“と称する場合もある。
エラー検出部620は、エラーが生じているデータ、セクタ、及び領域等を検出する。エラー検出部620は、リードできないデータ(以下、リードエラーデータ若しくはエラーデータと称する場合もある)又はリードできないセクタ(以下、リードエラーセクタ若しくはエラーセクタと称する場合もある)を検出する。エラー検出部620は、検出(検査)符号に基づいて、リードエラーセクタ又はリードエラーセクタにライトされたリードエラーデータを検出する。例えば、エラー検出部620は、パリティ検査符号に基づいて、所定のトラックのリードエラーセクタ又は所定のトラックのリードエラーセクタにライトされたリードエラーデータを検出する。
パリティセクタ管理部630は、所定の領域のデータに排他的論理和(Exclusive OR:XOR)演算してパリティセクタ(又はパリティデータ)を算出し、算出したパリティセクタ(又はパリティデータ)をディスク10の所定の領域にライトする。パリティセクタ管理部630は、所定のパリティセクタに基づいて所定のトラックに対応するECC(以下、トラックECCと称する場合もある)によりエラーを訂正するエラー訂正処理(以下、トラックECC処理、トラックECC、又はエラー訂正処理と称する場合もある)でエラーを訂正(復旧又は救済)可能な領域をテーブル(以下、トラックECC管理テーブルと称する場合もある)として所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録してもよい。
パリティセクタ管理部630は、所定のトラックの(例えば、エラーセクタ及びパリティセクタ以外の)全てのセクタにXOR演算してパリティセクタ(以下、単一トラックパリティと称する場合もある)を算出し、算出したパリティセクタをこのトラックにライトする。なお、パリティセクタ管理部630は、所定のトラックの(例えば、エラーセクタ以外の)一部のセクタにXOR演算してパリティセクタを算出し、算出したパリティセクタをこのトラックにライトしてもよい。パリティセクタ管理部630は、パリティセクタに対応する所定のトラックの情報及び所定のトラックの一部のセクタの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
パリティセクタ管理部630は、複数のトラックの(例えば、エラーセクタ及びパリティセクタ以外の)一部のセクタにXOR演算してパリティセクタ(以下、複数トラックパリティと称する場合もある)を算出し、算出したパリティセクタをこれらトラックの1つのトラックにライトする。例えば、パリティセクタ管理部630は、複数のトラックにそれぞれ含まれる(例えば、エラーセクタ及びパリティセクタ以外の)複数のセクタにXOR演算してパリティセクタ(以下、複数トラックパリティと称する場合もある)を算出し、算出したパリティセクタをこれらトラックの1つのトラックにライトする。なお、パリティセクタ管理部630は、複数のトラックの(例えば、エラーセクタ及びパリティセクタ以外の)全てのセクタにXOR演算してパリティセクタを算出し、算出したパリティセクタをこれらトラックの少なくとも1つのトラックにライトしてもよい。パリティセクタ管理部630は、パリティセクタに対応する複数のトラックの一部のセクタの情報及び複数のトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
パリティセクタ管理部630は、例えば、ホスト100等からライトコマンドを受けて、このライトコマンドに従って所定のトラックをライトする場合、このトラックの各セクタにXOR演算して単一トラックパリティを算出し、算出した単一トラックパリティをこのトラックの所定のセクタにライトする。パリティセクタ管理部630は、この単一トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
パリティセクタ管理部630は、例えば、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、対象となる複数のトラック内の一部のセクタを規則的(又は不連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等においてリードした複数のトラック内の規則的(又は不連続)に選択した一部のセクタをインターリーブ(又は、インターリーブパリティ符号化と称する場合もある)する(送信又は/及び並び替えする)。なお、パリティセクタ管理部630は、例えば、アイドル(Idle)時に、対象となる複数のトラック内の一部のセクタを不規則的(又は連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等においてリードした複数のトラック内の不規則的(又は連続)に選択した一部のセクタをインターリーブしてもよい。パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において複数のトラック内の規則的(又は不連続)に選択した一部のセクタにXOR演算して複数トラックパリティを算出し、算出した複数トラックパリティをこれらトラックの1つのトラックの単一トラックパリティにライト(又は上書き)する。パリティセクタ管理部630は、この複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。なお、パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において複数のトラック内の不規則的(又は連続)に選択した一部のセクタにXOR演算して複数トラックパリティを算出し、算出した複数トラックパリティをこれらトラックの1つのトラックの単一トラックパリティにライト(又は上書き)してもよい。
例えば、パリティセクタ管理部630は、Idle時に、複数のトラックの全てのセクタにおいて2セクタ置きの(エラーセクタ及びパリティセクタ以外の)複数のセクタ(又はセクタ群)を規則的(又は不連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)をインターリーブする。パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)にXOR演算して複数トラックパリティを算出し、算出した複数トラックパリティ(のみ)をこれらトラックの1つのトラックの単一トラックパリティにライト(又は上書き)する。パリティセクタ管理部630は、この複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
例えば、パリティセクタ管理部630は、半径方向に連続する複数のトラックの内の最も外方向若しくは内方向のトラックの最初のセクタから2セクタ置きの複数のセクタから斜め方向に配置されたこれらトラックの複数のセクタ(又はセクタ群)を規則的に(又は不連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)をインターリーブする。パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)にXOR演算して複数トラックパリティを算出し、算出した複数トラックパリティ(のみ)を最も外方向若しくは内方向のトラックの単一トラックパリティにライト(又は上書き)する。パリティセクタ管理部630は、この複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
例えば、パリティセクタ管理部630は、半径方向に連続する複数のトラックの内の最も外方向若しくは内方向のトラックの最初のセクタから進行方向の隣接セクタから2セクタ置きの複数のセクタから斜め方向に配置されたこれらトラックの複数のセクタ(又はセクタ群)を規則的に(又は不連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)をインターリーブする。パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)にXOR演算して複数トラックパリティを算出し、算出した複数トラックパリティ(のみ)を最も外方向若しくは内方向のトラックの外方向若しくは内方向の隣接トラックの単一トラックパリティにライト(又は上書き)する。パリティセクタ管理部630は、この複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
例えば、パリティセクタ管理部630は、半径方向に連続する複数のトラックの内の最も外方向若しくは内方向のトラックの最初のセクタから2セクタ置きの複数のセクタから半径方向に配置されたこれらトラックの複数のセクタ(又はセクタ群)を規則的に(又は不連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)をインターリーブする。パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等においてリードした複数のセクタ(又はセクタ群)にXOR演算して複数トラックパリティ(のみ)を算出し、算出した複数トラックパリティを最も外方向若しくは内方向のトラックの単一トラックパリティにライト(又は上書き)する。パリティセクタ管理部630は、この複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
例えば、パリティセクタ管理部630は、半径方向に連続する複数のトラックの内の最も外方向若しくは内方向のトラックの最初のセクタから進行方向の隣接セクタから2セクタ置きの複数のセクタから半径方向に配置されたこれらトラックの複数のセクタを規則的に(又は不連続)に選択し、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)をインターリーブする。パリティセクタ管理部630は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、若しくはバッファメモリ90等において規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)にXOR演算して複数トラックパリティを算出し、算出した複数トラックパリティを最も外方向若しくは内方向のトラックの外方向若しくは内方向の隣接トラックの単一トラックパリティにライト(又は上書き)する。パリティセクタ管理部630は、この複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
エラー訂正部640は、エラーデータ又はエラーセクタを訂正(エラー訂正、復旧、又は救済)する。エラー訂正部640は、エラーデータ又はエラーセクタを所定の回数リードするリードリトライを実行する。エラー訂正部640は、所定のトラックのエラーセクタに対応するECC(以下、セクタECCと称する場合もある)によりこのエラーセクタにエラー訂正(以下、セクタECC又はセクタECC処理と称する場合もある)を実行する。エラー訂正部640は、所定のトラックに対応するECC(トラックECC)によりこのトラックのエラーセクタにエラー訂正(トラックECC又はトラックECC処理)を実行する。エラー訂正部640は、所定のトラックのパリティセクタに基づいて、トラックECCによりこのトラックのエラーセクタにトラックECC処理を実行する。
例えば、エラー訂正部640は、所定のトラックのパリティセクタに基づいて、リードリトライ及びセクタECC処理により訂正できないエラーセクタにトラックECC処理を実行し、このエラーセクタを訂正する。
例えば、エラー訂正部640は、所定のトラックに対応する単一トラックパリティに基づいて、リードリトライ及びセクタECC処理により訂正できないエラーセクタにトラックECC処理(以下、単一トラックECC又は単一トラックECC処理と称する場合もある)を実行し、このエラーセクタを訂正する。
例えば、エラー訂正部640は、複数のトラックに対応する複数トラックパリティに基づいて、リードリトライ及びセクタECC処理により訂正できないエラーセクタにトラックECC処理(以下、複数トラックECC又は複数トラックECC処理と称する場合もある)を実行し、このエラーセクタを訂正する。
以下、図3乃至図6を参照してパリティセクタのライト方法の一例について説明する。
図3は、単一トラックパリティP1-0、P2-0、及びP3-0のライト方法の一例を示す模式図である。図3には、進行方向を示している。円周方向においてディスク10に対してヘッド15がデータをシーケンシャルにライト及びリードする方向、つまり、円周方向においてディスク10に対してヘッド15が進行する方向を進行方向と称する場合もある。例えば、進行方向は、ディスク10の回転方向とは反対向きである。なお、進行方向は、ディスク10の回転方向と同じ向きであってもよい。図3には、トラックTr1、Tr2、及びTr3を示している。“同じ”、“同一”、“一致”、及び“同等”などの用語は、全く同じという意味はもちろん、実質的に同じであると見做せる程度に異なるという意味を含む。図3において、トラックTr1、Tr2、及びTr3は、記載順に内方向に連続して並んでいる。トラックTr2は、トラックTr1の内方向に隣接している。トラックTr3は、トラックTr2の内方向に隣接している。トラックTr1は、セクタSc1-1、Sc1-2,Sc1-3、Sc1-4、Sc1-5、Sc1-6、…、Sc1-(n―2)、Sc1(n―1)、Sc1-n、及びパリティセクタP1-0を含む。図3では、セクタSc1-1、Sc1-2,Sc1-3、Sc1-4、Sc1-5、Sc1-6、…、Sc1-(n―2)、Sc1-(n―1)、Sc1-n、及びパリティセクタP1-0は、記載順に進行方向に連続して並んでいる。パリティセクタP1-0は、セクタSc1-1、Sc1-2,Sc1-3、Sc1-4、Sc1-5、Sc1-6、…、Sc1-(n―2)、Sc1-(n―1)、及びSc1-nにXOR演算した結果に相当する。トラックTr2は、セクタSc2-1、Sc2-2,Sc2-3、Sc2-4、Sc2-5、Sc2-6、…、Sc2-(n―2)、Sc2-(n―1)、Sc2-n、及びパリティセクタP2-0を含む。図3では、セクタSc2-1、Sc2-2,Sc2-3、Sc2-4、Sc2-5、Sc2-6、…、Sc2-(n―2)、Sc2-(n―1)、Sc2-n、及びパリティセクタP2-0は、記載順に進行方向に連続して並んでいる。パリティセクタP2-0は、セクタSc2-1、Sc2-2,Sc2-3、Sc2-4、Sc2-5、Sc2-6、…、Sc2-(n―2)、Sc2-(n―1)、及びSc2-nにXOR演算した結果に相当する。トラックTr3は、セクタSc3-1、Sc3-2,Sc3-3、Sc3-4、Sc3-5、Sc3-6、…、Sc3-(n―2)、Sc3-(n―1)、Sc3-n、及びパリティセクタP3-0を含む。図3では、セクタSc3-1、Sc3-2,Sc3-3、Sc3-4、Sc3-5、Sc3-6、…、Sc3-(n―2)、Sc3-(n―1)、Sc3-n、及びパリティセクタP3-0は、記載順に進行方向に連続して並んでいる。パリティセクタP3-0は、セクタSc3-1、Sc3-2,Sc3-3、Sc3-4、Sc3-5、Sc3-6、…、Sc3-(n―2)、Sc3-(n―1)、及びSc3-nにXOR演算した結果に相当する。
図3は、単一トラックパリティP1-0、P2-0、及びP3-0のライト方法の一例を示す模式図である。図3には、進行方向を示している。円周方向においてディスク10に対してヘッド15がデータをシーケンシャルにライト及びリードする方向、つまり、円周方向においてディスク10に対してヘッド15が進行する方向を進行方向と称する場合もある。例えば、進行方向は、ディスク10の回転方向とは反対向きである。なお、進行方向は、ディスク10の回転方向と同じ向きであってもよい。図3には、トラックTr1、Tr2、及びTr3を示している。“同じ”、“同一”、“一致”、及び“同等”などの用語は、全く同じという意味はもちろん、実質的に同じであると見做せる程度に異なるという意味を含む。図3において、トラックTr1、Tr2、及びTr3は、記載順に内方向に連続して並んでいる。トラックTr2は、トラックTr1の内方向に隣接している。トラックTr3は、トラックTr2の内方向に隣接している。トラックTr1は、セクタSc1-1、Sc1-2,Sc1-3、Sc1-4、Sc1-5、Sc1-6、…、Sc1-(n―2)、Sc1(n―1)、Sc1-n、及びパリティセクタP1-0を含む。図3では、セクタSc1-1、Sc1-2,Sc1-3、Sc1-4、Sc1-5、Sc1-6、…、Sc1-(n―2)、Sc1-(n―1)、Sc1-n、及びパリティセクタP1-0は、記載順に進行方向に連続して並んでいる。パリティセクタP1-0は、セクタSc1-1、Sc1-2,Sc1-3、Sc1-4、Sc1-5、Sc1-6、…、Sc1-(n―2)、Sc1-(n―1)、及びSc1-nにXOR演算した結果に相当する。トラックTr2は、セクタSc2-1、Sc2-2,Sc2-3、Sc2-4、Sc2-5、Sc2-6、…、Sc2-(n―2)、Sc2-(n―1)、Sc2-n、及びパリティセクタP2-0を含む。図3では、セクタSc2-1、Sc2-2,Sc2-3、Sc2-4、Sc2-5、Sc2-6、…、Sc2-(n―2)、Sc2-(n―1)、Sc2-n、及びパリティセクタP2-0は、記載順に進行方向に連続して並んでいる。パリティセクタP2-0は、セクタSc2-1、Sc2-2,Sc2-3、Sc2-4、Sc2-5、Sc2-6、…、Sc2-(n―2)、Sc2-(n―1)、及びSc2-nにXOR演算した結果に相当する。トラックTr3は、セクタSc3-1、Sc3-2,Sc3-3、Sc3-4、Sc3-5、Sc3-6、…、Sc3-(n―2)、Sc3-(n―1)、Sc3-n、及びパリティセクタP3-0を含む。図3では、セクタSc3-1、Sc3-2,Sc3-3、Sc3-4、Sc3-5、Sc3-6、…、Sc3-(n―2)、Sc3-(n―1)、Sc3-n、及びパリティセクタP3-0は、記載順に進行方向に連続して並んでいる。パリティセクタP3-0は、セクタSc3-1、Sc3-2,Sc3-3、Sc3-4、Sc3-5、Sc3-6、…、Sc3-(n―2)、Sc3-(n―1)、及びSc3-nにXOR演算した結果に相当する。
図3に示した例では、MPU60は、ホスト100等からトラックTr1をライトするライトコマンドを受けてトラックTr1をライトする場合、トラックTr1のセクタSc1-1乃至Sc1-nにXOR演算して単一トラックパリティP1-0を算出し、単一トラックパリティP1-0をトラックTr1のセクタSc1-nの進行方向の隣接セクタにライトする。MPU60は、トラックTr1の情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
図3に示した例では、MPU60は、ホスト100等からトラックTr2をライトするライトコマンドを受けてトラックTr2をライトする場合、トラックTr2のセクタSc2-1乃至Sc2-nにXOR演算して単一トラックパリティP2-0を算出し、単一トラックパリティP2-0をトラックTr2のセクタSc2-nの進行方向の隣接セクタにライトする。MPU60は、トラックTr2の情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
図3に示した例では、MPU60は、ホスト100等からトラックTr3をライトするライトコマンドを受けてトラックTr3をライトする場合、トラックTr3のセクタSc3-1乃至Sc3-nにXOR演算して単一トラックパリティP3-0を算出し、単一トラックパリティP3-0をトラックTr3のセクタSc3―nの進行方向の隣接セクタにライトする。MPU60は、トラックTr3の情報をトラックECC管理テーブルとして所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に記録する。
図4は、本実施形態に係るパリティセクタの生成方法の一例を示す模式図である。図4は、図3に対応している。
図4に示した例では、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。言い換えると、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラックTr1乃至Tr3のセクタSc1-1乃至Sc3-nをリードする。MPU60は、リードした複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3のセクタSc1-1乃至Sc3―nを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する。
図4に示した例では、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。言い換えると、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラックTr1乃至Tr3のセクタSc1-1乃至Sc3-nをリードする。MPU60は、リードした複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3のセクタSc1-1乃至Sc3―nを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する。
図5は、本実施形態に係るパリティセクタの算出方法の一例を示す模式図である。図5は、図4に対応している。
図5に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-1、Sc1-4、…、Sc1―(n―2)から進行方向且つ内方向に斜めに(又は千鳥状に)配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-1、Sc2-2、Sc3-3、Sc1-4、Sc2-5、Sc3-6、…、Sc1―(n―2)、Sc2―(n―1)、及びSC3-nを記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-1乃至SC3-nにXOR演算してトラックTr1に対応する複数トラックパリティP1-1を算出する。
図5に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-1、Sc1-4、…、Sc1―(n―2)から進行方向且つ内方向に斜めに(又は千鳥状に)配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-1、Sc2-2、Sc3-3、Sc1-4、Sc2-5、Sc3-6、…、Sc1―(n―2)、Sc2―(n―1)、及びSC3-nを記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-1乃至SC3-nにXOR演算してトラックTr1に対応する複数トラックパリティP1-1を算出する。
図5に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-2、Sc1-5、…、Sc1―(n―1)から進行方向且つ内方向に斜めに(又は千鳥状に)配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-2、Sc2-3、Sc3-4、Sc1-5、Sc2-6、Sc3-6、…、Sc3―(n―2)、Sc1―(n―1)、Sc2―n、及びSc3-1を記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-2乃至Sc3-1にXOR演算してトラックTr2に対応する複数トラックパリティP2-1を算出する。
図5に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-3、Sc1-6、…、Sc1―nから進行方向且つ内方向に斜めに(又は千鳥状に)配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-3、Sc2-4、Sc3-5、Sc1-6、…、Sc2―(n―2)、Sc3-(n-1)、Sc1―n、Sc2-1、及びSc3-2を記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-3乃至Sc3-2にXOR演算してトラックTr3に対応する複数トラックパリティP3-1を算出する。
図6は、本実施形態に係るパリティセクタのライト方法の一例を示す模式図である。図6は、図3、図4及び図5に対応している。
図6に示した例では、MPU60は、図5に示した複数トラックパリティP1―1をトラックTr1の単一トラックパリティP1―0にライト(又は上書き)する。
図6に示した例では、MPU60は、図5に示した複数トラックパリティP2-1をトラックTr2の単一トラックパリティP2―0にライト(又は上書き)する。
図6に示した例では、MPU60は、図5に示した複数トラックパリティP3―1をトラックTr3の単一トラックパリティP3-0にライト(又は上書き)する。
図6に示した例では、MPU60は、図5に示した複数トラックパリティP1―1をトラックTr1の単一トラックパリティP1―0にライト(又は上書き)する。
図6に示した例では、MPU60は、図5に示した複数トラックパリティP2-1をトラックTr2の単一トラックパリティP2―0にライト(又は上書き)する。
図6に示した例では、MPU60は、図5に示した複数トラックパリティP3―1をトラックTr3の単一トラックパリティP3-0にライト(又は上書き)する。
図7は、本実施形態に係るエラー訂正処理の一例を示す模式図である。図7は、図3乃至図6に対応している。図7において、セクタSc3-3、Sc3-4、及びSc3-5は、エラーセクタに相当する。
図7に示した例では、MPU60は、トラックECC管理テーブルを参照して、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。MPU60は、複数トラックパリティP1-1に基づいて、複数トラックパリティP1-1に対応するセクタSc3-3に複数トラックECC処理を実行し、セクタSc3-3をエラー訂正する。MPU60は、複数トラックパリティP2-1に基づいて、複数トラックパリティP2-1に対応するセクタSc3-4に複数トラックECC処理を実行し、セクタSc3-4をエラー訂正する。MPU60は、複数トラックパリティP3-1に基づいて、複数トラックパリティP3-1に対応するセクタSc3-5に複数トラックECC処理を実行し、セクタSc3-5をエラー訂正する。
図8は、本実施形態に係るエラー訂正処理の一例を示す模式図である。図8は、図3乃至図6に対応している。図8において、セクタSc1-3、Sc2-3、及びSc3-3は、エラーセクタに相当する。
図8に示した例では、MPU60は、トラックECC管理テーブルを参照して、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。MPU60は、複数トラックパリティP1-1に基づいて、複数トラックパリティP1-1に対応するセクタSc3-3に複数トラックECC処理を実行し、セクタSc3-3をエラー訂正する。MPU60は、複数トラックパリティP2-1に基づいて、複数トラックパリティP2-1に対応するセクタSc2-3に複数トラックECC処理を実行し、セクタSc2-3をエラー訂正する。MPU60は、複数トラックパリティP3-1に基づいて、複数トラックパリティP3-1に対応するセクタSc1-3に複数トラックECC処理を実行し、セクタSc1-3をエラー訂正する。
図9は、本実施形態に係るエラー訂正処理の一例を示す模式図である。図9は、図3乃至図6に対応している。図9において、セクタSc3-1、Sc3-5、及びSc3-6は、エラーセクタに相当する。
図9に示した例では、MPU60は、トラックECC管理テーブルを参照して、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。MPU60は、複数トラックパリティP1-1に基づいて、複数トラックパリティP1-1に対応するセクタSc3-6に複数トラックECC処理を実行し、セクタSc3-6をエラー訂正する。MPU60は、複数トラックパリティP2-1に基づいて、複数トラックパリティP2-1に対応するセクタSc3-1に複数トラックECC処理を実行し、セクタSc3-1をエラー訂正する。MPU60は、複数トラックパリティP3-1に基づいて、複数トラックパリティP3-1に対応するセクタSc3-5に複数トラックECC処理を実行し、セクタSc3-5をエラー訂正する。
図10は、本実施形態に係るトラックECC管理テーブルTBの一例を示す模式図である。トラックECC管理テーブルTBは、グループ番号、ヘッド番号、開始トラック番号、及び対象トラック数を含む。グループ番号は、所定のパリティセクタの番号に相当する。ヘッド番号は、グループ番号のパリティセクタに対応するヘッド番号に相当する。開始トラック番号は、グループ番号のパリティセクタに対応する開始トラックの番号に相当する。対象トラック数は、グループ番号のパリティセクタに対応するトラック数に相当する。
図10に示した例では、MPU60は、開始トラック番号3000且つ対象トラック数1のトラックの全てのセクタにXOR演算してグループ番号1の単一トラックパリティを算出し、算出した単一トラックパリティに対応するトラックの情報、例えば、グループ番号1、ヘッド番号2、開始トラック番号3000、及び対象トラック数1をトラックECC管理テーブルTBに記録する。
図10に示した例では、MPU60は、開始トラック番号3001且つ対象トラック数1のトラックの全てのセクタにXOR演算してグループ番号2の単一トラックパリティを算出し、算出した単一トラックパリティに対応するトラックの情報、例えば、グループ番号2、ヘッド番号2、開始トラック番号3001、及び対象トラック数1をトラックECC管理テーブルTBに記録する。
図10に示した例では、MPU60は、開始トラック番号3002且つ対象トラック数1のトラックの全てのセクタにXOR演算してグループ番号3の単一トラックパリティを算出し、算出した単一トラックパリティに対応するトラックの情報、例えば、グループ番号3、ヘッド番号2、開始トラック番号3002、及び対象トラック数1をトラックECC管理テーブルTBに記録する。
図10に示した例では、MPU60は、開始トラック番号1333581且つ対象トラック数1のトラックの全てのセクタにXOR演算してグループ番号4の単一トラックパリティを算出し、算出した単一トラックパリティに対応するトラックの情報、例えば、グループ番号4、ヘッド番号4、開始トラック番号1333581、及び対象トラック数1をトラックECC管理テーブルTBに記録する。
図10に示した例では、MPU60は、開始トラック番号30950且つ対象トラック数1のトラックの全てのセクタにXOR演算してグループ番号5の単一トラックパリティを算出し、算出した単一トラックパリティに対応するトラックの情報、例えば、グループ番号5、ヘッド番号3、開始トラック番号30950、及び対象トラック数1をトラックECC管理テーブルTBに記録する。
図11は、本実施形態に係るトラックECC管理テーブルTBの一例を示す模式図である。図11は、図10に対応している。
図11に示した例では、MPU60は、開始トラック番号3000且つ対象トラック数3のトラックの全てのセクタをヘッド番号2のヘッド15で規則的に(又は不連続)に選択し、開始トラック番号3000且つ対象トラック数3のトラックの全てのセクタから規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)にXOR演算したグループ番号1且つ対象トラック数3の複数トラックパリティを算出し、算出した複数トラックパリティに対応するトラックの情報、例えば、グループ番号1、ヘッド番号2、開始トラック番号3000、及び対象トラック数3をトラックECC管理テーブルTBに記録する。
図11に示した例では、MPU60は、開始トラック番号3000且つ対象トラック数3のトラックの全てのセクタをヘッド番号2のヘッド15で規則的に(又は不連続)に選択し、開始トラック番号3000且つ対象トラック数3のトラックの全てのセクタから規則的に(又は不連続)に選択した複数のセクタ(又はセクタ群)にXOR演算したグループ番号1且つ対象トラック数3の複数トラックパリティを算出し、算出した複数トラックパリティに対応するトラックの情報、例えば、グループ番号1、ヘッド番号2、開始トラック番号3000、及び対象トラック数3をトラックECC管理テーブルTBに記録する。
図12は、本実施形態に係る単一トラックパリティのライト方法の一例を示すフローチャートである。
MPU60は、ライトコマンドを受ける(B1201)。MPU60は、所定のトラックの各セクタにセクタECCを付与する(B1202)。MPU60は、所定のトラックの全てのセクタにXOR演算して単一トラックパリティを算出する(B1203)。MPU60は、算出した単一トラックパリティに対応するトラックの情報をトラックECC管理テーブルTBに記録してトラックECC管理テーブルTBを更新する(B1204)。MPU60は、単一トラックパリティを所定のトラックの所定のセクタにライトし(B1205)、処理を終了する。
MPU60は、ライトコマンドを受ける(B1201)。MPU60は、所定のトラックの各セクタにセクタECCを付与する(B1202)。MPU60は、所定のトラックの全てのセクタにXOR演算して単一トラックパリティを算出する(B1203)。MPU60は、算出した単一トラックパリティに対応するトラックの情報をトラックECC管理テーブルTBに記録してトラックECC管理テーブルTBを更新する(B1204)。MPU60は、単一トラックパリティを所定のトラックの所定のセクタにライトし(B1205)、処理を終了する。
図13は、本実施形態に係る複数トラックパリティのライト方法の一例を示すフローチャートである。
MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラック管理テーブルTBを参照し(B1301)、複数トラックECC処理に対応する複数のトラックの全てのセクタをリードし、リードした全てのセクタを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する(B1302)。MPU60は、複数トラックECC処理に対応する複数のトラックの全てのセクタから規則的に(又は不連続)に選択した複数のセクタをインターリーブし(B1303)、インターリーブした複数のセクタにXOR演算して複数トラックパリティを算出する(B1304)。MPU60は、算出した複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルTBに記録してトラックECC管理テーブルTBを更新する(B1305)。MPU60は、算出した複数トラックパリティのみを複数トラックECC処理に対応する複数のトラックの内の1つのトラックの単一トラックパリティにライト(又は上書き)し(B1306)、処理を終了する。
MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラック管理テーブルTBを参照し(B1301)、複数トラックECC処理に対応する複数のトラックの全てのセクタをリードし、リードした全てのセクタを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する(B1302)。MPU60は、複数トラックECC処理に対応する複数のトラックの全てのセクタから規則的に(又は不連続)に選択した複数のセクタをインターリーブし(B1303)、インターリーブした複数のセクタにXOR演算して複数トラックパリティを算出する(B1304)。MPU60は、算出した複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルTBに記録してトラックECC管理テーブルTBを更新する(B1305)。MPU60は、算出した複数トラックパリティのみを複数トラックECC処理に対応する複数のトラックの内の1つのトラックの単一トラックパリティにライト(又は上書き)し(B1306)、処理を終了する。
図14は、本実施形態に係るリード処理方法の一例を示すフローチャートである。
MPU60は、ホスト100等からリードコマンドを受け(B1401)、リード時に検出したエラーセクタにセクタECC処理を実行する(B1402)。MPU60は、エラーセクタをセクタECC処理で訂正できるか訂正できないかを判定する(B1403)。エラーセクタを訂正できると判定した場合(B1403のYES)、MPU60は、処理を終了する。エラーセクタを訂正できないと判定した場合(B1403のNO)、MPU60は、トラックECC管理テーブルTBを参照し(B1404)、エラーセクタが複数トラックECC処理の対象となるか対象とならないかを判定する(B1405)。
MPU60は、ホスト100等からリードコマンドを受け(B1401)、リード時に検出したエラーセクタにセクタECC処理を実行する(B1402)。MPU60は、エラーセクタをセクタECC処理で訂正できるか訂正できないかを判定する(B1403)。エラーセクタを訂正できると判定した場合(B1403のYES)、MPU60は、処理を終了する。エラーセクタを訂正できないと判定した場合(B1403のNO)、MPU60は、トラックECC管理テーブルTBを参照し(B1404)、エラーセクタが複数トラックECC処理の対象となるか対象とならないかを判定する(B1405)。
エラーセクタが複数トラックECC処理の対象とならないと判定した場合(B1405のNO)、MPU60は、エラーセクタに単一トラックECC処理を実行し(B1406)、B1409の処理を進む。エラーセクタが複数トラックECC処理の対象となると判定した場合(B1405のYES)、MPU60は、複数トラックECC処理の対象となる複数のトラックをリードし(B1407)、エラーセクタに複数トラックECC処理を実行する(B1408)。
MPU60は、エラーセクタをトラックECC処理(複数トラックECC処理及び単一トラックECC処理)で訂正できるか訂正できないかを判定する(B1409)。エラーセクタをトラックECC処理で訂正できないと判定した場合(B1409のNO)、MPU60は、処理を終了する。エラーセクタをトラックECC処理で訂正できると判定した場合、MPU60は、エラー訂正したエラーセクタに対応するリードデータをホスト100等に転送し(B1410)、処理を終了する。
本実施形態によれば、磁気ディスク装置1は、処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラック管理テーブルTBを参照し、複数トラックECC処理に対応する複数のトラックの全てのセクタをリードし、リードした全てのセクタを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する。磁気ディスク装置1は、複数トラックECC処理に対応する複数のトラックの全てのセクタから規則的に(又は不連続)に選択した複数のセクタをインターリーブ(又はインターリーブパリティ符号化)し、インターリーブした複数のセクタにXOR演算して複数トラックパリティを算出する。磁気ディスク装置1は、算出した複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルTBに記録してトラックECC管理テーブルTBを更新する。MPU60は、算出した複数トラックパリティのみを複数トラックECC処理に対応する複数のトラックの内の1つのトラックの単一トラックパリティにライトする。そのため、磁気ディスク装置1は、処理能力に余裕がある、時間的に余裕のある、又は停止している場合にパリティセクタを算出することで、時間的なロスなくデータをライトできる。また、磁気ディスク装置1は、複数のトラックにまとめてトラックECC処理を実行して、これら複数のトラックの全てのセクタから規則的に(又は不連続に)選択した複数のセクタにXOR演算したこれらトラック数に対応する複数のパリティセクタを算出する。磁気ディスク装置1は、これらパリティセクタに基づいて1トラック内に生じた複数のエラーセクタを訂正することが可能となる。そのため、磁気ディスク装置1は、リード性能を向上できる。
次に、変形例に係る磁気ディスク装置について説明する。変形例において、前述の実施形態と同一の部分には同一の参照符号を付してその詳細な説明を省略する。
(変形例1)
変形例1に係る磁気ディスク装置1は、パリティセクタのライト方法が前述した実施形態の磁気ディスク装置1と異なる。
以下、図15乃至図17を参照してパリティセクタのライト方法の一例について説明する。
図15は、本実施形態に係るパリティセクタの生成方法の一例を示す模式図である。図4は、図3及び図4に対応している。
図15に示した例では、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。言い換えると、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラックTr1乃至Tr3のセクタSc1-1乃至Sc3-nをリードする。MPU60は、リードした複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3のセクタSc1-1乃至Sc3―nを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する。
(変形例1)
変形例1に係る磁気ディスク装置1は、パリティセクタのライト方法が前述した実施形態の磁気ディスク装置1と異なる。
以下、図15乃至図17を参照してパリティセクタのライト方法の一例について説明する。
図15は、本実施形態に係るパリティセクタの生成方法の一例を示す模式図である。図4は、図3及び図4に対応している。
図15に示した例では、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。言い換えると、MPU60は、磁気ディスク装置1の処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、トラックTr1乃至Tr3のセクタSc1-1乃至Sc3-nをリードする。MPU60は、リードした複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3のセクタSc1-1乃至Sc3―nを所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等に一時的に記録する。
図16は、本実施形態に係るパリティセクタの算出方法の一例を示す模式図である。図5は、図15に対応している。
図16に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-1、Sc1-4、…、Sc1―(n―2)から内方向に配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-1、Sc2-1、Sc3-1、Sc1-4、Sc2-4、Sc3-4、…、Sc1―(n-2)、Sc2―(n-2)、及びSc3-(n-2)を記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-1乃至Sc3-(n-2)にXOR演算してトラックTr1に対応する複数トラックパリティP1-1を算出する。
図16に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-1、Sc1-4、…、Sc1―(n―2)から内方向に配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-1、Sc2-1、Sc3-1、Sc1-4、Sc2-4、Sc3-4、…、Sc1―(n-2)、Sc2―(n-2)、及びSc3-(n-2)を記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-1乃至Sc3-(n-2)にXOR演算してトラックTr1に対応する複数トラックパリティP1-1を算出する。
図16に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-2、Sc1-5、…、Sc1―(n―1)から内方向に配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-2、Sc2-2、Sc3-2、Sc1-5、Sc2-5、Sc3-5、…、Sc3―(n―1)、Sc2―(n―1)、及びSc3―(n-1)を記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-2乃至Sc3-(n-1)にXOR演算してトラックTr2に対応する複数トラックパリティP2-1を算出する。
図16に示した例では、MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、ディスク10でセクタSc1-3、Sc1-6、…、Sc1―nから内方向に配置された複数のセクタを選択する。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、選択したセクタSc1-3、Sc2-3、Sc3-3、Sc1-6、Sc2-6、Sc3-6、…、Sc1-n、Sc2-n、及びSc3―nを記載の順にインターリーブする。MPU60は、所定の記録領域、例えば、ディスク10、揮発性メモリ70、不揮発性メモリ80、又はバッファメモリ90等において、セクタSc1-3乃至Sc3-nにXOR演算してトラックTr3に対応する複数トラックパリティP3-1を算出する。
図17は、本実施形態に係るパリティセクタのライト方法の一例を示す模式図である。図17は、図3、図15及び図16に対応している。
図17に示した例では、MPU60は、図16に示した複数トラックパリティP1―2をトラックTr1の単一トラックパリティP1―0にライト(又は上書き)する。
図17に示した例では、MPU60は、図16に示した複数トラックパリティP2-2をトラックTr2の単一トラックパリティP2―0にライト(又は上書き)する。
図17に示した例では、MPU60は、図16に示した複数トラックパリティP3―2をトラックTr3の単一トラックパリティP3-0にライト(又は上書き)する。
図17に示した例では、MPU60は、図16に示した複数トラックパリティP1―2をトラックTr1の単一トラックパリティP1―0にライト(又は上書き)する。
図17に示した例では、MPU60は、図16に示した複数トラックパリティP2-2をトラックTr2の単一トラックパリティP2―0にライト(又は上書き)する。
図17に示した例では、MPU60は、図16に示した複数トラックパリティP3―2をトラックTr3の単一トラックパリティP3-0にライト(又は上書き)する。
図18は、本実施形態に係るエラー訂正処理の一例を示す模式図である。図18は、図15乃至図17に対応している。図18において、セクタSc3-4、Sc3-5、及びSc3-6は、エラーセクタに相当する。
図18に示した例では、MPU60は、トラックECC管理テーブルを参照して、複数トラックECC処理に対応するトラックTr1、Tr2、及びTr3をリードする。MPU60は、複数トラックパリティP1-2に基づいて、複数トラックパリティP1-2に対応するセクタSc3-4に複数トラックECC処理を実行し、セクタSc3-4をエラー訂正する。MPU60は、複数トラックパリティP2-2に基づいて、複数トラックパリティP2-2に対応するセクタSc3-5に複数トラックECC処理を実行し、セクタSc3-5をエラー訂正する。MPU60は、複数トラックパリティP3-2に基づいて、複数トラックパリティP3-2に対応するセクタSc3-6に複数トラックECC処理を実行し、セクタSc3-6をエラー訂正する。
変形例1によれば、磁気ディスク装置1は処理能力に余裕がある、時間的に余裕のある、又は停止している場合、例えば、アイドル(Idle)時に、複数トラックECC処理に対応する複数のトラックの全てのセクタから規則的に選択した複数のセクタをインターリーブ(又はインターリーブパリティ符号化)し、インターリーブした複数のセクタにXOR演算して複数トラックパリティを算出する。磁気ディスク装置1は、算出した複数トラックパリティに対応するトラックの情報をトラックECC管理テーブルTBに記録してトラックECC管理テーブルTBを更新する。MPU60は、算出した複数トラックパリティのみを複数トラックECC処理に対応する複数のトラックの内の1つのトラックの単一トラックパリティにライトする。そのため、磁気ディスク装置1は、処理能力に余裕がある、時間的に余裕のある、又は停止している場合にパリティセクタを算出することで、時間的なロスなくデータをライトできる。また、磁気ディスク装置1は、複数のトラックにまとめてトラックECC処理を実行して、これら複数のトラックの全てのセクタから規則的に(又は不連続に)選択した複数のセクタにXOR演算したこれらトラック数に対応する複数のパリティセクタを算出する。磁気ディスク装置1は、これらパリティセクタに基づいて1トラック内に生じた複数のエラーセクタを訂正することが可能となる。そのため、磁気ディスク装置1は、リード性能を向上できる。
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
本明細書にて開示した構成から得られる磁気ディスク装置、及びエラー訂正方法の一例を以下に付記する。
(1)
第1パリティセクタを含む第1トラックと第2パリティセクタを含む第2トラックとを有するディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、コントローラと、を備える磁気ディスク装置。
(2)
前記コントローラは、アイドル時に、前記第3パリティセクタ及び前記第4パリティセクタを算出し、前記第3パリティセクタを前記第1パリティセクタにライトし、前記第4パリティセクタを前記第2パリティセクタにライトする、(1)の磁気ディスク装置。
(3)
前記コントローラは、前記第1トラック及び前記第2トラックをリードし、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタにおいて前記第1トラックの最初の第1セクタから数セクタ置きに配置された前記第1セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出し、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタにおいて前記第1トラックの前記第1セクタの前記ディスクの円周方向に隣接する第2セクタから数セクタ置きに配置された前記第2セクタ群を選択し、前記第2セクタ群をインターリーブし、インターリーブした前記第2セクタ群にXOR演算して前記第4パリティセクタを算出する、(1)又は(2)の磁気ディスク装置。
(4)
前記コントローラは、前記第1トラック及び前記第2トラックをリードし、記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタから千鳥状に前記第1セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出し、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタから千鳥状に前記第2セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出する、(1)又は(2)の磁気ディスク装置。
(5)
前記コントローラは、前記第3パリティセクタ及び前記第4パリティセクタに対応する前記第1トラック及び第2トラックの情報をテーブルに記録する、(1)乃至(4)のいずれか1の磁気ディスク装置。
(6)
前記コントローラは、前記第3パリティセクタに基づいて、前記第2トラックのエラーセクタをエラー訂正する、(1)乃至(5)のいずれか1の磁気ディスク装置。
(7)
前記コントローラは、前記第4パリティセクタに基づいて、前記第1トラックのエラーセクタをエラー訂正する、(1)乃至(5)のいずれか1の磁気ディスク装置。
(8)
前記コントローラは、前記第3パリティセクタに基づいて、前記第2トラックの第1エラーセクタをエラー訂正し、前記第4パリティセクタに基づいて、前記第2トラックの前記第1エラーセクタに隣接する第2エラーセクタをエラー訂正する、(1)乃至(5)のいずれか1の磁気ディスク装置。
(9)
前記コントローラは、ライトコマンドを受けた場合、前記第1トラックを前記ディスクにライトし、前記第1トラックの全てのセクタにXOR演算して算出した前記第1パリティセクタを前記第1トラックにライトし、前記第2トラックを前記ディスクにライトし、前記第2トラックの全てのセクタにXOR演算して算出した前記第2パリティセクタを前記第2トラックにライトする、(1)乃至(8)のいずれか1の磁気ディスク装置。
(10)
第1パリティセクタを含む第1トラックと第2パリティを含む第2トラックとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、を備えている磁気ディスク装置に適用されるエラー訂正処理方法であって、
前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、
前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、エラー訂正処理方法
本明細書にて開示した構成から得られる磁気ディスク装置、及びエラー訂正方法の一例を以下に付記する。
(1)
第1パリティセクタを含む第1トラックと第2パリティセクタを含む第2トラックとを有するディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、コントローラと、を備える磁気ディスク装置。
(2)
前記コントローラは、アイドル時に、前記第3パリティセクタ及び前記第4パリティセクタを算出し、前記第3パリティセクタを前記第1パリティセクタにライトし、前記第4パリティセクタを前記第2パリティセクタにライトする、(1)の磁気ディスク装置。
(3)
前記コントローラは、前記第1トラック及び前記第2トラックをリードし、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタにおいて前記第1トラックの最初の第1セクタから数セクタ置きに配置された前記第1セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出し、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタにおいて前記第1トラックの前記第1セクタの前記ディスクの円周方向に隣接する第2セクタから数セクタ置きに配置された前記第2セクタ群を選択し、前記第2セクタ群をインターリーブし、インターリーブした前記第2セクタ群にXOR演算して前記第4パリティセクタを算出する、(1)又は(2)の磁気ディスク装置。
(4)
前記コントローラは、前記第1トラック及び前記第2トラックをリードし、記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタから千鳥状に前記第1セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出し、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタから千鳥状に前記第2セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出する、(1)又は(2)の磁気ディスク装置。
(5)
前記コントローラは、前記第3パリティセクタ及び前記第4パリティセクタに対応する前記第1トラック及び第2トラックの情報をテーブルに記録する、(1)乃至(4)のいずれか1の磁気ディスク装置。
(6)
前記コントローラは、前記第3パリティセクタに基づいて、前記第2トラックのエラーセクタをエラー訂正する、(1)乃至(5)のいずれか1の磁気ディスク装置。
(7)
前記コントローラは、前記第4パリティセクタに基づいて、前記第1トラックのエラーセクタをエラー訂正する、(1)乃至(5)のいずれか1の磁気ディスク装置。
(8)
前記コントローラは、前記第3パリティセクタに基づいて、前記第2トラックの第1エラーセクタをエラー訂正し、前記第4パリティセクタに基づいて、前記第2トラックの前記第1エラーセクタに隣接する第2エラーセクタをエラー訂正する、(1)乃至(5)のいずれか1の磁気ディスク装置。
(9)
前記コントローラは、ライトコマンドを受けた場合、前記第1トラックを前記ディスクにライトし、前記第1トラックの全てのセクタにXOR演算して算出した前記第1パリティセクタを前記第1トラックにライトし、前記第2トラックを前記ディスクにライトし、前記第2トラックの全てのセクタにXOR演算して算出した前記第2パリティセクタを前記第2トラックにライトする、(1)乃至(8)のいずれか1の磁気ディスク装置。
(10)
第1パリティセクタを含む第1トラックと第2パリティを含む第2トラックとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、を備えている磁気ディスク装置に適用されるエラー訂正処理方法であって、
前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、
前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、エラー訂正処理方法
1…磁気ディスク装置、10…磁気ディスク、10a…ユーザデータ領域、10b…システムエリア、12…スピンドルモータ(SPM)、13…アーム、14…ボイスコイルモータ(VCM)、15…ヘッド、15W…ライトヘッド、15R…リードヘッド、20…ドライバIC、30…ヘッドアンプIC、40…リード/ライト(R/W)チャネル、50…ハードディスクコントローラ(HDC)、60…マイクロプロセッサ(MPU)、70…揮発性メモリ、80…不揮発性メモリ、90…バッファメモリ、100…ホストシステム(ホスト)、130…システムコントローラ。
Claims (9)
- 第1パリティセクタを含む第1トラックと第2パリティセクタを含む第2トラックとを有するディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記第1トラック及び前記第2トラックのそれぞれに含まれる第1セクタ群にXOR演算した第3パリティセクタを前記第1パリティセクタにライトし、前記第1トラック及び前記第2トラックのそれぞれに含まれる前記第1セクタ群と異なる第2セクタ群にXOR演算した第4パリティセクタを前記第2パリティセクタにライトする、コントローラと、を備える磁気ディスク装置。 - 前記コントローラは、アイドル時に、前記第3パリティセクタ及び前記第4パリティセクタを算出し、前記第3パリティセクタを前記第1パリティセクタにライトし、前記第4パリティセクタを前記第2パリティセクタにライトする、請求項1に記載の磁気ディスク装置。
- 前記コントローラは、前記第1トラック及び前記第2トラックをリードし、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタにおいて前記第1トラックの最初の第1セクタから数セクタ置きに配置された前記第1セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出し、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタにおいて前記第1トラックの前記第1セクタの前記ディスクの円周方向に隣接する第2セクタから数セクタ置きに配置された前記第2セクタ群を選択し、前記第2セクタ群をインターリーブし、インターリーブした前記第2セクタ群にXOR演算して前記第4パリティセクタを算出する、請求項1又は2に記載の磁気ディスク装置。
- 前記コントローラは、前記第1トラック及び前記第2トラックをリードし、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタから千鳥状に前記第1セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出し、前記第1トラック及び前記第2トラックの前記第1パリティセクタ及び前記第2パリティセクタ以外の全てのセクタから千鳥状に前記第2セクタ群を選択し、前記第1セクタ群をインターリーブし、インターリーブした前記第1セクタ群にXOR演算して前記第3パリティセクタを算出する、請求項1又は2に記載の磁気ディスク装置。
- 前記コントローラは、前記第3パリティセクタ及び前記第4パリティセクタに対応する前記第1トラック及び第2トラックの情報をテーブルに記録する、請求項1乃至4のいずれか1項に記載の磁気ディスク装置。
- 前記コントローラは、前記第3パリティセクタに基づいて、前記第2トラックのエラーセクタをエラー訂正する、請求項1乃至5のいずれか1項に記載の磁気ディスク装置。
- 前記コントローラは、前記第4パリティセクタに基づいて、前記第1トラックのエラーセクタをエラー訂正する、請求項1乃至5のいずれか1項に記載の磁気ディスク装置。
- 前記コントローラは、前記第3パリティセクタに基づいて、前記第2トラックの第1エラーセクタをエラー訂正し、前記第4パリティセクタに基づいて、前記第2トラックの前記第1エラーセクタに隣接する第2エラーセクタをエラー訂正する、請求項1乃至5のいずれか1項に記載の磁気ディスク装置。
- 前記コントローラは、ライトコマンドを受けた場合、前記第1トラックを前記ディスクにライトし、前記第1トラックの全てのセクタにXOR演算して算出した前記第1パリティセクタを前記第1トラックにライトし、前記第2トラックを前記ディスクにライトし、前記第2トラックの全てのセクタにXOR演算して算出した前記第2パリティセクタを前記第2トラックにライトする、請求項1乃至8のいずれか1項に記載の磁気ディスク装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021037475A JP2022137803A (ja) | 2021-03-09 | 2021-03-09 | 磁気ディスク装置 |
CN202110811676.9A CN115048038A (zh) | 2021-03-09 | 2021-07-19 | 磁盘装置 |
US17/399,524 US11404085B1 (en) | 2021-03-09 | 2021-08-11 | Magnetic disk device and error correction processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021037475A JP2022137803A (ja) | 2021-03-09 | 2021-03-09 | 磁気ディスク装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022137803A true JP2022137803A (ja) | 2022-09-22 |
Family
ID=82652495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021037475A Pending JP2022137803A (ja) | 2021-03-09 | 2021-03-09 | 磁気ディスク装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11404085B1 (ja) |
JP (1) | JP2022137803A (ja) |
CN (1) | CN115048038A (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011233186A (ja) | 2010-04-23 | 2011-11-17 | Toshiba Corp | ディスク記憶装置及びデータ復元方法 |
US9059737B2 (en) | 2013-01-11 | 2015-06-16 | HGST Netherlands B.V. | Disk drive with distributed codeword blocks |
US9443551B1 (en) | 2014-04-16 | 2016-09-13 | Marvell International Ltd. | Method and system for writing and reading closely-spaced data tracks |
US9007707B1 (en) | 2014-10-31 | 2015-04-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for accessing codewords in parallel using a three sensor reader |
US10606699B2 (en) * | 2018-05-17 | 2020-03-31 | Western Digital Technologies, Inc. | Data storage device employing multi-level parity sectors for data recovery procedure |
-
2021
- 2021-03-09 JP JP2021037475A patent/JP2022137803A/ja active Pending
- 2021-07-19 CN CN202110811676.9A patent/CN115048038A/zh active Pending
- 2021-08-11 US US17/399,524 patent/US11404085B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11404085B1 (en) | 2022-08-02 |
CN115048038A (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3663377B2 (ja) | データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法 | |
JP5023204B2 (ja) | 磁気記録装置 | |
US9015549B2 (en) | Iterating inner and outer codes for data recovery | |
KR102365624B1 (ko) | 슁글드 자기 기록 인터밴드 트랙 피치 튜닝 | |
CN110289020B (zh) | 磁盘装置及重复偏出修正数据的写入方法 | |
US7308637B2 (en) | Data recording/reproducing device, data recording/reproducing method, program, and recording medium | |
US11657834B2 (en) | Magnetic disk device and method of write processing of postcode | |
JP2019215943A (ja) | 磁気ディスク装置及びライト処理方法 | |
US20240038267A1 (en) | Magnetic disk device and dol setting method | |
JP4724244B2 (ja) | ディスク記憶装置及びデータ記録再生方法 | |
JP2022137803A (ja) | 磁気ディスク装置 | |
US20220293129A1 (en) | Magnetic disk device and read/write processing method | |
US8908311B1 (en) | Data storage device writing a multi-sector codeword in segments over multiple disk revolutions | |
JP7490614B2 (ja) | 磁気ディスク装置及びリード/ライト処理方法 | |
JP3590390B2 (ja) | ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 | |
US20220084554A1 (en) | Magnetic disk device and error correction method | |
US11335375B2 (en) | Magnetic disk device and error correction method | |
JP7512225B2 (ja) | 磁気ディスク装置及びリード/ライト処理方法 | |
JP2022143899A (ja) | 磁気ディスク装置 | |
US12033662B2 (en) | Magnetic disk device | |
US11508409B2 (en) | Magnetic disk device and write processing method | |
US11074937B1 (en) | Magnetic disk device and depop processing method | |
JPS62236185A (ja) | エラ−訂正方法 | |
CN116612789A (zh) | 磁盘装置以及写处理方法 |