JP2010061756A - 記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法 - Google Patents
記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法 Download PDFInfo
- Publication number
- JP2010061756A JP2010061756A JP2008227800A JP2008227800A JP2010061756A JP 2010061756 A JP2010061756 A JP 2010061756A JP 2008227800 A JP2008227800 A JP 2008227800A JP 2008227800 A JP2008227800 A JP 2008227800A JP 2010061756 A JP2010061756 A JP 2010061756A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- calculation
- error
- correction code
- 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
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】 エラーリカバリ能力を向上させる記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法を提供する。
【解決手段】 ディスク媒体15に書き込まれるデータに対して、第1ブロック毎に誤り訂正符号を付加するフォーマット制御部5と、フォーマット制御部5により付加された誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、演算の結果を演算データとして出力する冗長生成部18と、冗長生成部18により出力された演算データを更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込むMPU8とを備える。
【選択図】 図2
【解決手段】 ディスク媒体15に書き込まれるデータに対して、第1ブロック毎に誤り訂正符号を付加するフォーマット制御部5と、フォーマット制御部5により付加された誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、演算の結果を演算データとして出力する冗長生成部18と、冗長生成部18により出力された演算データを更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込むMPU8とを備える。
【選択図】 図2
Description
本発明は記憶装置におけるデータ訂正に関するものである。
近年、記憶装置、とりわけディスク装置の記憶容量は増加の傾向にある。例えば、1台のディスク装置が1テラバイト以上の容量を保有するまでになっている。このようなディスク容量の増加にともない、ディスク装置内のデータ管理に関するディレクトリ情報が記録されているセクタが読み出しエラーとなった場合、このエラーにより被害を受けるデータは膨大である。また、データが受ける被害は、ディスク装置の容量が増すほど増えるものである。従来、このようなディスク装置における障害を避けるための手段として、例えば、ディスク装置をアレイシステムとして構築し、あるセクタが読み出しエラーとなったディスク装置が存在しても、冗長性を高めるために余分に配置されている他のディスク装置のデータを用いてリカバリを行うようなシステムが、主に大型システム向けに用意されている。また、ディスク装置単体により読み出しエラーへの耐久性を高めるために、ECC(Error Correcting Code)コードがセクタに付加されている。このECCコードは、付加されたセクタに対してエラーチェック、データ訂正を行うためのコードであり、その訂正能力は緩やかに高まっている。
なお、本発明の関連ある従来技術として、エラーの発生したデータを特定し、ECC訂正不可能なエラーを修正する磁気ディスク装置が知られている(例えば、特許文献1参照)。
特開平5−109208号公報
しかしながら、あるデータの読み出しにおいて、リトライによってもデータを復旧できず、また付加されたECCコードによるデータの訂正も不可能である場合、ディスク装置は、接続された上位装置に対してエラーを通知して終了していた。また、上述したように、ECCコードによるデータ訂正能力は緩やかに高まってはいるが、新しいデータ訂正技術は採用されておらず、近年は同じような技術が用いられ続けている。このことは、ディスク装置単体の記憶容量の増加傾向に対して、ECCコードの訂正能力は追い付いていないことによって、相対的にディスク装置におけるデータ喪失の可能性が増加していることを意味する。
本発明は、上述した問題点を解決するためになされたものであり、エラーリカバリ能力を向上させる記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法を提供することを目的としている。
上述した課題を解決するため、記憶データ処理装置は、所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる装置であって、前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部とを備える。
また、記憶装置は、所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う装置であって、前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部とを備える。
また、記憶データ処理プログラムは、所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられるプログラムであって、前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップとをコンピュータに実行させる。
また、記憶データ処理方法は、所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる方法であって、前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップとを備える。
本発明によれば、エラーリカバリ能力を向上させることができるという効果を奏する。
以下、本発明の実施の形態について図を用いて説明する。
まず、本実施の形態に係るHDDの構成について説明する。図1は、本実施の形態に係る上位装置とHDDを示すブロック図である。また、図2は、本実施の形態に係るHDDの構成を示すブロック図である。
図1に示すように、上位装置2とHDD1はホストIF17を介して接続されている。上位装置2は、例えば、記憶装置としてHDD1を備えるパーソナルコンピュータであり、データの読み書きにおいて、HDD1に対してコマンドを発行するものである。
また、HDD1は、図2に示すように、ホストIF制御部2、バッファ制御部3、バッファメモリ4、フォーマット制御部(訂正符号付加部)5、リードチャネル6、ヘッドIC7、MPU(書き込み部、読み出し部、エラー位置特定部、エラー位置記録部)8、メモリ9、不揮発メモリ10、サーボ制御部11、VCM(Voice Coil Motor)12、SPM(Spindle Motor)13、リードライトヘッド14、ディスク媒体(記憶媒体)15、コモンバス16、ホストIF17、冗長生成部(演算部、エラー位置特定部)18を備えるものである。
ディスク媒体15は、データを格納するものである。また、リードライトヘッド14は、ディスク媒体15に対して、データとして信号の書き込み、読み出しを行うものである。また、SPM13は、ディスク媒体15を回転させるモータである。また、VCM12は、リードライトヘッド14を駆動させるモータである。また、サーボ制御部11は、VCM12及びSPM13を制御するものである。また、ヘッドIC7は、リードライトヘッド14によりディスク媒体15に対して読み書きされる信号を増幅するものである。また、リードチャネル6は、ディスク媒体15に読み書きするデータを信号に変換するものである。また、フォーマット制御部5は、ディスク媒体15に記録するデータの記録フォーマットを生成するものである。また、バッファメモリ4は、ディスク媒体15に読み書きされるデータを一時的に格納するメモリである。また、バッファ制御部3は、バッファメモリ4を制御するものである。また、メモリ9は揮発性のメモリである。また、不揮発メモリは、HDDを制御するためのプログラムを格納するものである。また、ホストIF17は、ディスク媒体15に読み書きされるデータ、コマンドを上位装置2と通信するためのIFである。また、MPU8は、HDD1における制御及び処理を実行するものである。なお、冗長生成部18については後述する。
一般的に、このようなHDD1においてディスクからデータが読み出される場合、データはリードライトヘッド14によりディスク媒体15から読み出され、ヘッドIC7を経由してリードチャネル6に送られる。リードチャネル6に送られたデータは、フォーマット制御部5、バッファ制御部3を経由してバッファメモリ4に一時的に保持される。バッファメモリ4に保持されたデータは、ホストIF制御部2、ホストIF17を経由して上位装置へ送られる。また、データが書き込まれる場合、上位装置2よりホストIF17、ホストIF制御部2、バッファ制御部3を経由してバッファメモリ4に一時的に保持される。バッファメモリ4に保持されたデータは、書き込みをするのに適当なタイミングにおいて、フォーマット制御部5、リードチャネル6、ヘッドIC7を経由してリードライトヘッド14によりディスク媒体15に書き込まれる。
次に、本実施の形態に係るHDDのフォーマット制御部及び冗長生成部について説明する。図3は、フォーマット制御部の構成を示すブロック図である。また、図4は、冗長生成部の構成を示すブロック図である。
図3に示すように、フォーマット制御部5は、RLL(Run Lengt Limited)部51及びECC部52を備えるものである。RLL部51は、ディスク媒体に書き込まれるデータに対して、RLL符号化を行うものである。また、ECC部52は、ディスク媒体15に書き込まれるデータの各セクタに対してECCデータを付加するものである。また、フォーマット制御部5は、読み出されたデータに対して、付加されたECCデータにより訂正処理を施す機能を持つが、この訂正処理を施さずにデータをバッファメモリ4に転送することもできる。また、ECC部52は、ECCデータの代わりに誤り検出符号を付加しても良い。
また、図4に示すように、冗長生成部18は、データメモリ181及びXOR(Exclusive OR:排他的論理和)計算回路182を備えるものである。データメモリ181は、セクタサイズの容量を持ち、XOR計算回路182による1セクタ分の演算結果データを保持するものである。また、XOR計算回路182は、外部から入力された1セクタ分の入力データと、データメモリ181に保持された1セクタ分の演算結果データにより、ビット位置毎のXOR演算を行うものである。このXOR演算による演算結果は、新たな演算結果データとしてデータメモリ181に保持される。なお、MPU8は、データメモリ181に保持された演算結果データを、コモンバス16を介して読み出し、冗長データとすることができる。
XOR計算回路182は、この冗長データと、エラーセクタデータ以外のユーザデータの各セクタ(第1ブロック)とに対してXOR演算を行うことによりエラーセクタデータを復元することができる。また、XOR計算回路182は、入力データの順序を変えても演算結果データが変わらないことから、ある区分について全てのセクタデータをいかなる順序に入力しても、最終的な演算結果データとして、冗長データを得ることができる。また、同様に、エラーセクタが存在する区分についてエラーセクタデータ以外のユーザデータと冗長データとをいかなる順序でXOR計算回路182に入力しても、最終的な演算結果データとして復元されたエラーセクタデータを得ることができる。また、ディスク媒体15における最後の区分のような他の区分よりもセクタ数が少ない区分であっても、区分内のユーザデータにおける全てのセクタデータを用いることにより、他の区分と同様に冗長データの生成と、エラーセクタデータの復元を行うことができる。なお、本実施の形態において、冗長生成部18はリードチャネル6とフォーマット制御部5との間にあるため、冗長生成部18のデータメモリ181は、XOR演算においてECCデータも含むユーザデータを格納することができる。また、演算結果データとしてデータメモリ181に格納されたデータはフォーマット制御部5を経由してバッファメモリ4に送られるため、バッファメモリ4は、ECCチェックを済ませたユーザデータを受け取ることができる。
次に、ディスク媒体上のユーザ領域におけるセクタ配置について説明する。図5は、トラック単位に冗長セクタが置かれる場合のセクタ配置の一例を示す図である。また、図6及び図7は、所定のセクタ数毎に冗長セクタが配置される場合のセクタ配置の一例を示す図である。
本実施の形態において、冗長セクタ(第3ブロック)は、トラックまたは所定のセクタ単位(第2ブロック)毎に置かれる。まず、トラック単位に冗長セクタが配置される場合について説明する。図5において、LSNは、トラック内において最も小さいLBA(Logical Block Address)から割り振られる番号であるロジカルセクタナンバ(Logical Sctor Number)を示す。また、図5は、最も小さいLBAを0、最も大きなLBAをA−1としてLSNを割り振ったものであり、トラック番号Kのトラックには、ユーザデータを格納する領域として使用するセクタ(ユーザデータセクタ)LSN0〜A−1、これらのセクタに後続する冗長セクタKと合わせて、セクタがA+1個(ロジカルセクタナンバが0から始まるため)あることを示している。
また、トラック番号K+1で示されるトラックKと同じゾーンに属するトラックK+1内のセクタ数は、同様にA+1個である。また、トラックK及びトラックK+1と異なるゾーンに属し、トラック番号Mで示されるトラックM内のセクタ数は、トラックK及びトラックK+1と異なり、C−1個であり、冗長セクタMは、ユーザデータセクタLSN 0〜C−1に後続する。つまり、トラック単位に冗長セクタが置かれる場合、冗長セクタは、トラック内で最も大きいLSNが割り振られたセクタに後続するセクタとなる。
次に、所定数のセクタ単位毎に冗長セクタが配置される場合について説明する。図6に示すように、先頭セクタがLBA=0であるK+1個からなる複数のセクタに対して冗長セクタを配置する場合、冗長セクタVはユーザデータセクタLBA 0〜K−1のセクタに後続する。また、同様に、先頭セクタがLBA=Kである場合、冗長セクタWはユーザデータセクタLBA K〜2K−1のセクタに後続する。また、図7に示すように、同一トラック上にLBA K−1とLBA Kが位置する場合、冗長セクタVはLBA K−1とLBA Kのセクタ間に配置される。また、LBA K−1があるトラックの最終セクタである場合、冗長セクタは、LBA Kが配置されているトラックにおいて、LBA Kの前に位置する。
次に、本実施の形態に係るHDDの動作について説明する。図8は、冗長データ更新処理の動作を示すフローチャートである。この冗長データ更新処理は、上位装置2からのコマンドが来ていない間に冗長データを生成するための処理である。
まず、HDD1のMPU8は、HOSTとしての上位装置2からコマンドが来たかどうかを判断する(S101)。
上位装置2からコマンドが来ない場合(S101,NO)、MPU8は、コマンド待ち時間(コマンドが来ない時間)が1秒より大きいかどうかを判断する(S102)。
コマンド待ち時間が1秒より大きい場合(S102,YES)、MPU8は、ディスク媒体15を参照し、冗長データ生成を要する区分(所定数のセクタまたはトラック単位)を選択し(S103)、後述する冗長データ生成処理を実行し(S104)、全ての区分において更新が終わったかどうかを判断する(S105)。なお、ここで更新とはディスク媒体15におけるユーザデータに冗長データが作成されることを示す。
全ての区分において更新が終わった場合(S105,YES)、MPU8は、冗長データ更新処理を実行する。
一方、更新が終わっていない区分がある場合(S105,NO)、MPU8は、再度、上位装置2からコマンドが来たかどうかを判断する(S101)。
また、ステップS102において、コマンド待ち時間が1秒以下である場合(S102,NO)、MPU8は、再度、上位装置2からコマンドが来たかどうかを判断する(S101)。
また、ステップS101において、上位装置2からコマンドが来た場合(S101)、MPU8は、来たコマンドに従ってコマンド処理を実行する(S106)。
この冗長データ更新処理によれば、コマンド待機時間、つまり、HDD1が処理を必要としていない間に冗長データを更新することができ、冗長データ生成によりコマンド処理に掛かる時間が増大することを防ぐことができる。
次に、冗長データ生成処理について説明する。図9は、冗長データ生成処理の動作を示すフローチャートである。この冗長データ生成処理は、図8におけるステップS104に相当する処理である。また、図10〜13は、冗長データ生成処理におけるデータ経路を示す図である。以下、図9のフローチャートに沿って、図10〜13を用いて冗長データ生成処理の動作を説明する。なお、図9において、ユーザデータの各セクタにはすでにECCが付加されているものとする(訂正符号付加ステップ)。
まず、MPU8は、ディスク媒体15に書き込まれたユーザデータを参照し、ユーザデータの各区分における冗長セクタのデータが有効かどうか、つまり冗長セクタにユーザデータに対応する冗長データが書き込まれているかどうかを判断する(S201)。
冗長セクタのデータが有効ではない場合(S201,NO)、MPU8は、図10に示すように、冗長セクタのデータが有効ではない区分におけるECCデータが各セクタに付加されたユーザデータをリードチャネル4に読み出させ、このユーザデータを、フォーマット制御部5を介して、バッファ制御部3にバッファメモリ4に取り込ませる(S202)。
次に、MPU8は、バッファメモリ4上のユーザデータを、図11に示すように、フォーマット制御部5を介して冗長生成部18に転送させ(S203、演算ステップ)、図12に示すように、データメモリ181上の演算結果データを冗長データとして、リードチャネル4に、冗長生成部18への入力データであるユーザデータの区分における冗長セクタに書き込ませる(S204、書き込みステップ)。
また、ステップS201において、冗長セクタのデータが有効である場合(S201,YES)、MPU8は、冗長生成処理を終了する。
このように冗長生成処理は、区分内のデータを全て読み出して冗長データを更新する。なお、区分内のデータがすべて更新(すなわち新たに上書き)される場合は、対応する冗長データが有効であるか否かを確認するまでもなく更新が必要である。このように、区分内の全セクタが上書きされる場合、図13に示すように、MPU8は、書き込みデータをリードチャネル4に入力するとともに、冗長生成部18にも入力することにより、ディスク媒体15からのデータ読み出しを省略して冗長データを生成することができる。
次に、エラーデータ復旧処理について説明する。図14は、エラーデータ復旧処理の動作を示すフローチャートである。また、図15〜18は、エラーデータ復旧処理におけるデータ経路を示す図である。以下、図14のフローチャートに沿って、図15〜18を用いて冗長データ生成処理の動作を説明する。
まず、MPU8は、所定のセクタのデータを読み出し(S301)、読み出したデータがエラーセクタデータかどうかを判断する(S302)。
読み出したデータがエラーセクタデータである場合(S302,YES)、図15に示すように、MPU8は、エラーセクタデータが存在する区分におけるエラーセクタデータ以外のセクタデータをリードチャネル4にディスク媒体15から読み込ませ、フォーマット制御部5を介してバッファメモリ4に格納する(S303、読み出しステップ)。
次に、MPU8は、図16に示すように、読み出した区分に対応する冗長セクタから冗長データをリードチャネル4にディスク媒体15から読み出させて、データメモリ181に格納し(S304、演算ステップ)、この冗長データが有効かどうかを判断する(S305)。
冗長データが有効である場合(S305,YES)、MPU8は、図17に示すように、バッファメモリ4に格納されたエラーセクタデータ以外のセクタデータを冗長生成部18へ転送する(S306、演算ステップ)。
セクタデータが冗長生成部18に転送されることにより、XOR計算回路182によりデータメモリ181に格納された冗長データとのXOR演算がなされ、演算結果データが算出される。MPU8は、図18に示すように、得られた演算結果データをエラーセクタデータの復旧データとして、フォーマット制御部5を介してバッファメモリ4に返送する(S307)。
また、ステップS305において、冗長データが有効ではない場合(S305,NO)、MPU8は、エラーデータ復旧処理を終了する。
また、ステップS302において、読み出したデータがエラーセクタデータではない場合(S302,NO)、MPU8は、エラーデータ復旧処理を終了する。
このように、エラーデータ復旧処理は、エラーセクタ以外のデータをバッファメモリ4に格納し、格納したデータと冗長データとのXOR演算によりエラーセクタデータを復旧する処理である。なお、このエラーデータ復旧処理は、以下に示すように、エラーセクタ以前のデータだけがバッファメモリ4に格納されるような処理であっても良い。図19は、エラーセクタ以前のデータのみをデータバッファに格納する場合のエラーデータ復旧処理の動作を示すフローチャートである。また、図20〜23は、エラーデータ復旧処理におけるデータ経路を示す図である。以下、図19のフローチャートに沿って、図18及び図20〜22を用いてエラーセクタ以前のデータのみをデータバッファに格納する場合の冗長データ生成処理の動作を説明する。
まず、MPU8は、所定のセクタのデータを読み出し(S401)、読み出したデータがエラーセクタデータかどうかを判断する(S402)。
読み出したデータがエラーセクタデータである場合(S402,YES)、図20に示すように、MPU8は、エラーセクタデータが存在する区分におけるエラーセクタ以前のセクタデータをリードチャネル4にディスク媒体15から読み込ませ、フォーマット制御部5を介してバッファメモリ4に格納する(S403、読み出しステップ)。
次に、MPU8は、図21に示すように、エラーセクタ以後のセクタデータと冗長データとをリードチャネル4にディスク媒体15から読み出させ、データメモリ181に格納し(S404、読み出しステップ、演算ステップ)、この冗長データが有効かどうかを判断する(S405)。
冗長データが有効である場合(S405,YES)、MPU8は、図22に示すように、バッファメモリ4に格納されたエラーセクタ以前のセクタデータを冗長生成部18へ転送する(S406、演算ステップ)。
エラーセクタ以前のセクタデータが冗長生成部18に転送されることにより、XOR計算回路182によりデータメモリ181に格納されたエラーセクタ以後のセクタデータと冗長データによる演算結果とのXOR演算がなされ、演算結果データが算出される。MPU8は、図18に示すように、得られた演算結果データをエラーセクタデータの復旧データとして、フォーマット制御部5を介してバッファメモリ4に返送する(S407)。
また、ステップS405において、冗長データが有効ではない場合(S405,NO)、MPU8は、エラーデータ復旧処理を終了する。
また、ステップS402において、読み出したデータがエラーセクタデータではない場合(S402,NO)、MPU8は、エラーデータ復旧処理を終了する。
このように、エラーセクタ以前のセクタデータのみをバッファメモリ4に読み込んでエラーデータ復旧処理を実行することにより、エラーデータ復旧におけるバッファメモリ4の使用量を抑えることができる。
また、本実施の形態に係るHDD1は、エラーセクタデータと復旧データによるXOR演算を行うことにより、データの壊れ位置を特定することができる。図23は、壊れ位置特定処理の動作を示すフローチャートである。また、図24は、壊れ位置特定処理におけるデータ経路を示す図である。また、図25は、壊れ位置情報を示す図である。以下、図23のフローチャートに沿って、図23及び24を用いて壊れ位置特定処理の動作を説明する。
まず、MPU8は、上述したエラーデータ復旧処理を実行し(S501)、エラーセクタデータを、フォーマット制御部5を介してバッファメモリ4に読み出す(S502)。この際、フォーマット制御部5は、エラーセクタデータに対してECC訂正を施さない。
次に、MPU8は、図24に示すように、エラーデータ復旧処理により復旧されたエラーセクタデータである復旧データを冗長生成部18へ転送し(S503、エラー位置特定ステップ)、エラーセクタデータを冗長生成部18へ転送する(S504、エラー位置特定ステップ)。MPU8は、これら復旧データとエラーセクタデータによるXOR演算の演算結果データに基づいて、データの壊れ位置を特定する(S505、エラー位置特定ステップ)。この演算結果データにおいて、二つのデータの相違箇所のビットは1となり、同一箇所のビットは0となるため、データが壊れている箇所の特定が可能となる。
次に、MPU8は、図25に示すように、特定したデータ壊れ位置を壊れ位置情報としてディスク媒体15のシステム領域に記録する(S506、エラー位置記録ステップ)。この壊れ位置情報は、壊れたセクタのLBA、セクタにおける壊れ開始位置及び壊れ終了位置、壊れ総ビット数とを対応付けるものである。
上述したように、ECCデータも含めたユーザデータに対して冗長セクタデータを生成することによって、データが壊れた位置の統計データをHDD1内部のシステム領域に記録することができ、HDD1の品質を管理するためのデータとして利用することができる。
なお、本実施の形態において、冗長セクタデータの生成及びこの冗長セクタデータを用いたエラーセクタデータの復元にXOR演算を用いたが、入力データとする複数のセクタの順序を変えても演算結果が同じである演算であれば、他の演算を用いても良い。また、本実施の形態において、入力データと演算結果データをセクタ単位としたが、バイト単位、ワード単位など、他のデータ長を単位としても良い。
本発明は、その要旨または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
なお、本発明は以下に示すような上位装置2としてのコンピュータシステムにおいて適用可能である。図26は、本発明が適用されるコンピュータシステムの一例を示す図である。図26に示すコンピュータシステム900は、CPUやHDD1を内蔵した本体部901、本体部901からの指示により画像を表示するディスプレイ902、コンピュータシステム900に種々の情報を入力するためのキーボード903、ディスプレイ902の表示画面902a上の任意の位置を指定するマウス904及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置905を有する。通信装置905は、ネットワーク通信カード、モデムなどが考えられる。
上述したようなHDD1のMPU8またはコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、記憶データ処理プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読取り可能な記録媒体に記憶させることによって、コンピュータシステムに実行させることが可能となる。また、コンピュータシステムにより読み取られるこのプログラムは、コンピュータシステムを介してHDD1の不揮発性メモリ10に格納可能である。上述した各ステップを実行するプログラムは、ディスク910等の可搬型記録媒体に格納されるか、通信装置905により他のコンピュータシステムの記録媒体906からダウンロードされる。また、コンピュータシステム900に少なくともデータリカバリ機能を持たせる記憶データ処理プログラム(記憶データ処理ソフトウェア)は、コンピュータシステム900に入力されてコンパイルされる。このプログラムは、コンピュータシステム900をリカバリ機能を有するリカバリシステムとして動作させる。また、このプログラムは、例えばディスク910等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム900により読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、ディスク110やフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置105のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
(付記1) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理装置であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、
前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、
前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部と
を備える記憶データ処理装置。
(付記2) 付記1に記載の記憶データ処理装置において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出し部を更に備え、
前記演算部は更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理装置。
(付記3) 付記2に記載の記憶データ処理装置において、
前記読み出し部により読み出されたエラーブロックと、前記演算部による演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定部を更に備える記憶データ処理装置。
(付記4) 付記3に記載の記憶データ処理装置において、
前記エラー位置特定部により特定されたエラー位置を記録するエラー位置記録部を更に備えるデータ処理装置。
(付記5) 付記4に記載の記憶データ処理装置において、
前記誤り訂正符号付加ブロックはセクタであり、
前記エラー位置記録部は、前記エラー位置を、該エラー位置を含むセクタのアドレスとバイト位置により統計として記録することを特徴とする記憶データ処理装置。
(付記6) 付記1に記載の記憶データ処理装置において、
前記演算部による演算は、順次演算を行う順序を変えても演算結果が変わらない演算であることを特徴とする記憶データ処理装置。
(付記7) 付記5に記載の記憶データ処理装置において、
前記演算部による演算は、排他的論理和であることを特徴とする記憶データ処理装置。
(付記8) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、
前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、
前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部と
を備える記憶装置。
(付記9) 付記8に記載の記憶装置において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出し部を更に備え、
前記演算部は更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶装置。
(付記10) 付記9に記載の記憶装置において、
前記読み出し部により読み出されたエラーブロックと、前記演算部による演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定部を更に備える記憶装置。
(付記11) 付記10に記載の記憶装置において、
前記エラー位置特定部により特定されたエラー位置を記録するエラー位置記録部を更に備える記憶装置。
(付記12) 付記11に記載の記憶装置において、
前記誤り訂正符号付加ブロックはセクタであり、
前記エラー位置記録部は、前記エラー位置を、該エラー位置を含むセクタのアドレスとバイト位置により統計として記録することを特徴とする記憶装置。
(付記13) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理プログラムであって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、
前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、
前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップと
をコンピュータに実行させる記憶データ処理プログラム。
(付記14) 付記13に記載の記憶データ処理プログラムにおいて、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出しステップを更にコンピュータに実行させ、
前記演算ステップは更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理プログラム。
(付記15) 付記14に記載の記憶データ処理プログラムにおいて、
前記読み出しステップにより読み出されたエラーブロックと、前記演算ステップによる演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定ステップを更にコンピュータに実行させる記憶データ処理プログラム。
(付記16) 付記15に記載の記憶データ処理プログラムにおいて、
前記エラー位置特定ステップにより特定されたエラー位置を記録するエラー位置記録ステップを更にコンピュータに実行させる記憶データ処理プログラム。
(付記17) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理方法であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、
前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、
前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップと
を備える記憶データ処理方法。
(付記18) 付記17に記載の記憶データ処理方法において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出しステップを更に備え、
前記演算ステップは更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理方法。
(付記19) 付記18に記載の記憶データ処理方法において、
前記読み出しステップにより読み出されたエラーブロックと、前記演算ステップによる演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定ステップを更に備える記憶データ処理方法。
(付記20) 付記19に記載の記憶データ処理方法において、
前記エラー位置特定ステップにより特定されたエラー位置を記録するエラー位置記録ステップを更に備える記憶データ処理方法。
(付記1) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理装置であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、
前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、
前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部と
を備える記憶データ処理装置。
(付記2) 付記1に記載の記憶データ処理装置において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出し部を更に備え、
前記演算部は更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理装置。
(付記3) 付記2に記載の記憶データ処理装置において、
前記読み出し部により読み出されたエラーブロックと、前記演算部による演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定部を更に備える記憶データ処理装置。
(付記4) 付記3に記載の記憶データ処理装置において、
前記エラー位置特定部により特定されたエラー位置を記録するエラー位置記録部を更に備えるデータ処理装置。
(付記5) 付記4に記載の記憶データ処理装置において、
前記誤り訂正符号付加ブロックはセクタであり、
前記エラー位置記録部は、前記エラー位置を、該エラー位置を含むセクタのアドレスとバイト位置により統計として記録することを特徴とする記憶データ処理装置。
(付記6) 付記1に記載の記憶データ処理装置において、
前記演算部による演算は、順次演算を行う順序を変えても演算結果が変わらない演算であることを特徴とする記憶データ処理装置。
(付記7) 付記5に記載の記憶データ処理装置において、
前記演算部による演算は、排他的論理和であることを特徴とする記憶データ処理装置。
(付記8) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、
前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、
前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部と
を備える記憶装置。
(付記9) 付記8に記載の記憶装置において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出し部を更に備え、
前記演算部は更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶装置。
(付記10) 付記9に記載の記憶装置において、
前記読み出し部により読み出されたエラーブロックと、前記演算部による演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定部を更に備える記憶装置。
(付記11) 付記10に記載の記憶装置において、
前記エラー位置特定部により特定されたエラー位置を記録するエラー位置記録部を更に備える記憶装置。
(付記12) 付記11に記載の記憶装置において、
前記誤り訂正符号付加ブロックはセクタであり、
前記エラー位置記録部は、前記エラー位置を、該エラー位置を含むセクタのアドレスとバイト位置により統計として記録することを特徴とする記憶装置。
(付記13) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理プログラムであって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、
前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、
前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップと
をコンピュータに実行させる記憶データ処理プログラム。
(付記14) 付記13に記載の記憶データ処理プログラムにおいて、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出しステップを更にコンピュータに実行させ、
前記演算ステップは更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理プログラム。
(付記15) 付記14に記載の記憶データ処理プログラムにおいて、
前記読み出しステップにより読み出されたエラーブロックと、前記演算ステップによる演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定ステップを更にコンピュータに実行させる記憶データ処理プログラム。
(付記16) 付記15に記載の記憶データ処理プログラムにおいて、
前記エラー位置特定ステップにより特定されたエラー位置を記録するエラー位置記録ステップを更にコンピュータに実行させる記憶データ処理プログラム。
(付記17) 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理方法であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、
前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、
前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップと
を備える記憶データ処理方法。
(付記18) 付記17に記載の記憶データ処理方法において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出しステップを更に備え、
前記演算ステップは更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理方法。
(付記19) 付記18に記載の記憶データ処理方法において、
前記読み出しステップにより読み出されたエラーブロックと、前記演算ステップによる演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定ステップを更に備える記憶データ処理方法。
(付記20) 付記19に記載の記憶データ処理方法において、
前記エラー位置特定ステップにより特定されたエラー位置を記録するエラー位置記録ステップを更に備える記憶データ処理方法。
1 HDD、2 上位装置、3 バッファ制御部、4 バッファメモリ、5 フォーマット制御部、6 リードチャネル、7 ヘッドIC、8 MPU、9 メモリ、10 不揮発メモリ、11 サーボ制御部、12 VCM、13 SPM、14 リードライトヘッド、15 ディスク媒体、16 コモンバス、17 ホストIF、18 冗長生成部、51 RLL部、52 ECC部、181 データメモリ、182 XOR計算回路。
Claims (8)
- 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理装置であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、
前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、
前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部と
を備える記憶データ処理装置。 - 請求項1に記載の記憶データ処理装置において、
読み出し対象として指定される第2ブロックの読み出しにおいて、前記誤り訂正符号が付加された第1ブロックである誤り訂正符号付加ブロックから読み出されたデータがエラーデータである場合、エラーデータである誤り訂正符号付加ブロックをエラーブロックとし、前記読み出し対象として指定される第2ブロック中の前記エラーブロック以外の全ての誤り訂正符号付加ブロックの正常データを読み出し、前記読み出し対象として指定される第2ブロックに対応する第3ブロックのデータである冗長データを読み出す読み出し部を更に備え、
前記演算部は更に、前記正常データと前記冗長データについてビット位置毎の演算を行い、該演算結果を前記エラーブロックのデータとすることを特徴とする記憶データ処理装置。 - 請求項2に記載の記憶データ処理装置において、
前記読み出し部により読み出されたエラーブロックと、前記演算部による演算結果とをビット位置毎に比較し、該比較による前記記憶媒体における相違箇所を、エラー位置として特定するエラー位置特定部を更に備える記憶データ処理装置。 - 請求項3に記載の記憶データ処理装置において、
前記エラー位置特定部により特定されたエラー位置を記録するエラー位置記録部を更に備えるデータ処理装置。 - 請求項1乃至請求項4のいずれかに記載の記憶データ処理装置において、
前記演算部による演算は、順次演算を行う順序を変えても演算結果が変わらない演算であることを特徴とする記憶データ処理装置。 - 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加部と、
前記誤り訂正符号付加部により付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算部と、
前記演算部により出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込み部と
を備える記憶装置。 - 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理プログラムであって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、
前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、
前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップと
をコンピュータに実行させる記憶データ処理プログラム。 - 所定のデータ長の第1ブロックを単位としてデータが配置される記憶媒体に対して少なくとも書き込み処理を行う記憶装置に用いられる記憶データ処理方法であって、
前記記憶媒体に書き込まれるデータに対して、前記第1ブロック毎に誤り訂正符号を付加する誤り訂正符号付加ステップと、
前記誤り訂正符号付加ステップにより付加された前記誤り訂正符号を含む複数の第1ブロックにより構成される第2ブロックであって、更新対象として指定される第2ブロックにおける全ての第1ブロックのデータについてビット位置毎の演算を行い、該演算の結果を演算データとして出力する演算ステップと、
前記演算ステップにより出力された演算データを前記更新対象として指定される第2ブロックに対応付けられた第3ブロックへ書き込む書き込みステップと
を備える記憶データ処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008227800A JP2010061756A (ja) | 2008-09-05 | 2008-09-05 | 記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法 |
US12/511,801 US20100064198A1 (en) | 2008-09-05 | 2009-07-29 | Stored data processing apparatus, storage apparatus, medium storing stored data processing program, and stored data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008227800A JP2010061756A (ja) | 2008-09-05 | 2008-09-05 | 記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010061756A true JP2010061756A (ja) | 2010-03-18 |
Family
ID=41800205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008227800A Pending JP2010061756A (ja) | 2008-09-05 | 2008-09-05 | 記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100064198A1 (ja) |
JP (1) | JP2010061756A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098105B2 (en) * | 2012-08-24 | 2015-08-04 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Dynamic Y-buffer size adjustment for retained sector reprocessing |
JP2019164866A (ja) | 2018-03-20 | 2019-09-26 | 株式会社東芝 | ディスク装置およびデータ管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006996A (ja) * | 2001-06-19 | 2003-01-10 | Fujitsu Ltd | ディスク読み書き制御プログラム |
JP2008077782A (ja) * | 2006-09-22 | 2008-04-03 | Fujitsu Ltd | 記憶データ処理装置、記憶装置、記憶データ処理プログラム |
-
2008
- 2008-09-05 JP JP2008227800A patent/JP2010061756A/ja active Pending
-
2009
- 2009-07-29 US US12/511,801 patent/US20100064198A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003006996A (ja) * | 2001-06-19 | 2003-01-10 | Fujitsu Ltd | ディスク読み書き制御プログラム |
JP2008077782A (ja) * | 2006-09-22 | 2008-04-03 | Fujitsu Ltd | 記憶データ処理装置、記憶装置、記憶データ処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20100064198A1 (en) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6687850B1 (en) | Disk drive for storing sector-reconstruction sectors and for storing a sector-reconstruction status in sectors distributed around a disk | |
JP4634157B2 (ja) | ストレージシステム | |
JP2008204041A (ja) | ストレージ装置及びデータ配置制御方法 | |
US7702954B2 (en) | Data storage apparatus having error recovery capability | |
JP4922433B2 (ja) | 磁気ディスク装置及びデータブロックの書き換え方法 | |
JP2015018451A (ja) | メモリコントローラ、記憶装置およびメモリ制御方法 | |
JP4884721B2 (ja) | 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法 | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
US20100058145A1 (en) | Storage device and method of controlling storage device | |
JP2008077458A (ja) | 記憶データ処理装置、記憶装置、記憶データ処理プログラム | |
JP2013157068A (ja) | データ記憶制御装置、データ記憶装置、及びデータ記憶方法 | |
JP2012032962A (ja) | バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法 | |
US8078921B2 (en) | System including a plurality of data storage devices connected via network and data storage device used therefor | |
JP2008077782A (ja) | 記憶データ処理装置、記憶装置、記憶データ処理プログラム | |
JP2008181425A (ja) | 記憶装置、記憶装置の制御方法、及び記憶装置の制御プログラム | |
JP2010061756A (ja) | 記憶データ処理装置、記憶装置、記憶データ処理プログラム及び方法 | |
JP2018136735A (ja) | メモリ制御装置及びメモリ制御方法 | |
US9299387B2 (en) | Magnetic disk apparatus, controller and data processing method | |
JP2007179085A (ja) | ディスク装置、ディスク書込データ選択方法およびディスク書込データ選択プログラム | |
CN110310674B (zh) | 盘装置以及数据管理方法 | |
US10379972B1 (en) | Minimizing reads for reallocated sectors | |
JP5598124B2 (ja) | データ記録再生装置、データ記録方法、及び、データ記録プログラム | |
JP2005004733A (ja) | ストレージ・システムにおいて書込みエラーを検出するための配置構成および方法 | |
JP2010146625A (ja) | 記憶装置および記憶装置制御方法 | |
JP2005242708A (ja) | ファイル修復方法、およびファイル記録装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100910 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111011 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111018 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120228 |