JP2014182847A - エラー訂正方法、エラー訂正装置、および情報記憶装置。 - Google Patents

エラー訂正方法、エラー訂正装置、および情報記憶装置。 Download PDF

Info

Publication number
JP2014182847A
JP2014182847A JP2013055714A JP2013055714A JP2014182847A JP 2014182847 A JP2014182847 A JP 2014182847A JP 2013055714 A JP2013055714 A JP 2013055714A JP 2013055714 A JP2013055714 A JP 2013055714A JP 2014182847 A JP2014182847 A JP 2014182847A
Authority
JP
Japan
Prior art keywords
data
information
error
error correction
stored
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
Application number
JP2013055714A
Other languages
English (en)
Inventor
Goki Koike
豪紀 小池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013055714A priority Critical patent/JP2014182847A/ja
Priority to US13/960,665 priority patent/US20140281677A1/en
Publication of JP2014182847A publication Critical patent/JP2014182847A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理すること。
【解決手段】実施形態によれば、外部メモリに格納される第1のデータのエラー訂正が開始される前に第1のデータに対する他のアクセスを遮断し、外部メモリに格納される第1のデータのエラーを訂正し、エラーが訂正された第2のデータを外部メモリに格納し、第2のデータを外部メモリに格納した後、第2のデータに対する前記他のアクセスを解放する。
【選択図】 図3

Description

本発明の実施形態は、データのエラー訂正を実行するエラー訂正方法、エラー訂正装置、および情報記憶装置に関する。
近年、ハードディスクドライブ(HDD)やSSDといった情報記憶装置では、記憶領域から読み出したデータのエラー訂正が行われている。一般に、記憶領域から読み出されエラー訂正の対象となるデータは、DRAMやSRAMなどの演算用の一時記憶領域に格納される。一時記憶領域に格納されたデータのエラー訂正は、一時記憶領域とのインターフェースを実行するハードウェアブロックを介して、ファームウェアに基づくCPUによって制御されることがある。エラー訂正のために一時記憶領域に格納されたデータが、他のファームウェアなどの複数のブロックに共有されると、これら複数のブロックからのアクセスが衝突する可能性が生じる。
特開2001−155444号公報
本発明が解決しようとする課題は、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができるエラー訂正方法、エラー訂正装置、および情報記憶装置を提供することである。
実施形態のエラー訂正方法は、外部メモリに格納される第1のデータのエラー訂正が開始される前に第1のデータに対する他のアクセスを遮断し、外部メモリに格納される第1のデータのエラーを訂正し、エラーが訂正された第2のデータを外部メモリに格納し、第2のデータを外部メモリに格納した後、第2のデータに対する前記他のアクセスを解放する。
実施形態にかかる情報記憶装置としての磁気ディスク装置(HDD)を備える電子機器の構成を示すブロック図。 本実施形態にかかる情報記憶装置に備えられ、エラー訂正処理を実行するブロックの構成例を説明するための図。 本実施形態にかかる情報記憶装置で実行されるエラー訂正処理の概略的な動作を説明するための図。 本実施形態にかかるエラー訂正処理で利用される訂正情報テーブルの一例を示す図。 本実施形態にかかるエラー訂正処理で利用される一時退避テーブルの一例を示す図。 本実施形態にかかる情報記憶装置で実行されるエラー訂正処理の動作フローを説明するためのフローチャート。
以下、いくつかの実施形態について図面を用いて説明する。なお、本発明は以下の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、以下の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
図1は、実施形態にかかる情報記憶装置としての磁気ディスク装置(以下、HDDとも称する)10を備える電子機器150の構成を示すブロック図である。電子機器150はホスト装置100およびHDD10を備えている。ホストI/F120は、ホスト装置100とHDD10とを接続し、ホスト装置100とHDD10との間のコマンドおよびユーザデータの送受信に利用される。HDD10は、ホストI/F120を介してホスト装置100と接続され、ホスト装置100の記憶モジュールとして機能する。例えば、電子機器150は、パーソナルコンピュータやモバイル機器であり、ホスト装置100は、パーソナルコンピュータ等に備えられるチップセットICである。
本実施形態では、情報記憶装置としてHDD10の例を説明するが、半導体メモリを記録媒体とする装置(SSDやメモリカード)、光ディスクドライブ、光磁気ディスクドライブなどの情報記憶装置に、本実施形態の構成を適用することが可能である。本実施形態にかかる情報記憶装置は、記録媒体から読み出された情報に訂正可能な情報がある場合に、この情報のエラー訂正処理を行う。
HDD10は、磁気ディスク1、スライダ2、アーム3、VCM(ボイスコイルモータ)4、及びSPM(スピンドルモータ)5などの機構部を有する。またHDD10は、モータドライバ21、ヘッドIC22、NVRAM43、及びコントローラ60などの回路ブロックを備える。コントローラ60は、リードライトチャネル(以下、RDCとも称する)31、CPU41、RAM42、およびHDC(Hard Disc Controller)50を含む。本実施形態に係るHDD10では、磁気ディスク1やNVRAM43に恒久的に記録された情報に訂正可能な情報がある場合に、この情報に対するエラー訂正処理が行われる。
例えば、ホスト装置100からの要求に応じて磁気ディスク1から読み出された情報は、磁気ディスク1に対してデータ転送速度が相対的に速い記憶領域(例えば、RAM42)に一時的に格納される。一時的に格納された情報に対して、エラー訂正の要否が判定され、判定結果に応じてエラー訂正処理が実行される。一時的に格納された情報は、複数のブロック(ファームウェアまたはハードウェア)からアクセスされる。これら複数のブロックは、メモリアクセスクライアントと称されることがある。複数のメモリアクセスクライアントからのアクセスが好適に調停されることで、本実施形態にかかる情報記憶装置は、記憶領域に格納され、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができる。
磁気ディスク1は、SPM5に固定され、SPM5が回転駆動することで回転する。磁気ディスク1の少なくとも一方の面は磁気的に情報が記録される記録面である。つまり、磁気ディスク1は磁気記録媒体である。記録面には例えば同心円の複数のトラックが定義され、各トラックはサーボ領域とデータ領域とを有する。サーボ領域には、磁気ディスク1の記録面上での物理的なアドレスを示す位置情報を含むサーボ情報が記録されている。データ領域には、HDD10の制御に用いられるプログラムや管理情報、およびホスト装置100から送信された情報が記録される。
スライダ2は、磁気ディスク1の記録面に対応するようにアーム3の一端に備えられる。スライダ2は、リードヘッド(不図示)及びライトヘッド(不図示)を備えている。リードヘッド(不図示)は、磁気ディスク1の記録面に記録された信号を磁気的に読み取る。読み取られた信号は、アーム3上の導体パターンを介してヘッドIC22へ出力される。ライトヘッド(不図示)は、ヘッドIC22からアーム3上の導体パターンを介して入力されるライト信号(ライト電流)に応じて、磁気ディスク1の記録面に磁気的に記録する。
アーム3は、一端にスライダ2、他端に軸受部3aを備えている。アーム3は、VCM4への駆動電流の供給に応じて、軸受部3aの略中央部を中心として回転し、磁気ディスク1の記録面上でスライダ2を半径方向に移動させる。
VCM4は、モータドライバ21から供給される駆動信号(電流)に応じて駆動し、アーム3を回転させる。
SPM5は、モータドライバ21から供給される駆動信号(電流)に応じて駆動し、磁気ディスク1を回転させる。
モータドライバ21は、コントローラ60(さらに詳細にはCPU41)からの制御信号に基づいて、VCM4を駆動するための駆動信号(電流)をVCM4へ、SPM5を駆動するための駆動信号(電流)をSPM5へ供給する。
ヘッドIC22は、スライダ2に備えられたリードヘッド(不図示)からアーム3上の導体パターンを介して入力された信号を増幅し、増幅した信号をリード情報としてコントローラ60(さらに詳細にはRDC31)に出力する。また、ヘッドIC22は、コントローラ60(またはRDC31)から出力された記録情報に応じたライト信号(ライト電流)を、スライダ2に備えられたライトヘッド(不図示)へ、アーム3上の導体パターンを介して出力する。
コントローラ60は、RDC31、CPU41、RAM42、およびHDC50を含むSoC(System On Chip)として構成される。本実施形態では、コントローラ60は、磁気ディスク1またはNVRAM43から読み出された情報に対するエラー訂正処理の実行を制御する。なお、コントローラ60がRAM42を含まず、コントローラ60の外部にRAM42が接続される構成であってもよい。
RDC31は、ヘッドIC22から出力されたリード情報から、サーボ領域に対応するサーボ情報(アドレス情報および位置情報を含む)を抽出し、抽出したサーボ情報をCPU41へ出力する。またRDC31は、リード情報からデータ領域に対応する情報を抽出し、抽出した情報に所定の処理を施して復号化する。復号化された情報はHDC50へ出力される。さらにRDC31は、HDC50から入力された記録すべき情報に所定の処理を施して符号化し、この符号化した情報を記録情報としてヘッドIC22へ出力する。RDC31は、これらの複数の処理のためにRAM42をワークメモリとして利用する。
CPU41は、磁気ディスク1またはNVRAM43に記憶されたプログラムに基づくファームウェアを実行して、HDD10に備えられた各ブロックを制御するプロセッサである。例えばCPU41は、磁気ディスク1の記録面に対するリードヘッド(不図示)の位置制御処理、VCM4及びSPM5の回転制御処理、及び磁気ディスク1に対する情報の再生記録処理の動作を制御する。CPU41は、所定のプログラムに基づいて、コントローラ60がサーボコントローラ、又はリードライトコントローラとして動作するように、HDD10に備えられた各ブロックを制御する。CPU41は、これらの制御においてRAM42をワークメモリとして利用する。
本実施形態では、コントローラ60がリードライトコントローラとして動作する場合、CPU41は、HDC50での情報の復号化において実行されるエラー訂正処理の動作を制御する。また、CPU41は、エラー訂正処理で訂正される情報に関する、エラー訂正の状態やエラーの発生状態を管理するための訂正管理情報を更新する。さらに、CPU41は、本実施形態にかかるエラー訂正処理において、訂正される情報が格納される記憶領域の位置情報を管理する。このエラー訂正処理は、CPU41で実行されるファームウェアに対する割り込み要求をトリガとして実行される。本実施形態にかかる情報記憶装置は、このエラー訂正処理により、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができる。
RAM42は、RDC31、CPU41及びHDC50のワークメモリである。RAM42には、主にHDC50によって実行されるエラー訂正処理の対象となる情報が一時的に記憶される。またRAM42には、エラー訂正処理で訂正される情報に関する訂正管理情報が記憶される。さらに、RAM42には、CPU41で実行されるファームウェアにかかるプログラムが記憶される。RAM42としては、揮発性メモリであるDRAM(SDRAM)またはSRAMが適用される。RAM42に一時的に格納された情報は、ハードウェアまたはファームウェアによる複数のブロックからアクセスされる。RAM42に格納された情報に対する主たるメモリアクセスクライアントは、CPU41である。
NVRAM43は、CPU41が実行するプログラムを記憶する不揮発性メモリである。NVRAM43に記憶されるプログラムは更新可能である。NVRAM43は、CPU41が制御する複数の処理で利用されるパラメータ値を記憶する。NVRAM43に、エラー訂正処理で訂正される情報に関する訂正管理情報が記憶されてもよい。NVRAM43に格納されるデータは、HDC40で実行されるエラー訂正処理の対象のデータとなり得る。
HDC50は、ホスト装置100との間で情報を送受信する通信処理を実行する。HDC50は、RDC31からの復号化された情報に所定の処理を施して符号化し、符号化した情報を送信情報としてホスト装置100へ送信する。またHDC50は、ホスト装置100から受信した受信情報に所定の処理を施して復号化し、復号化した情報を記録すべき情報としてRDC31へ出力する。例えばHDC50は、ホスト装置100との間でSATA(Serial Advanced Technology Attachment)規格に準拠した通信処理を実行する。HDC50は、CPU41で実行されるファームウェアにかかるプログラムのデータに対しても、復号化または符号化の処理を行う。HDC50は、情報の符号化または復号化の処理において、RAM42に一時的に情報を記憶させる。本実施形態では、HDC50は、訂正可能な情報がある場合に、この情報に対するエラー訂正処理を実行する。
このような構成により、本実施形態に係るHDD10に備えられた複数のブロックによって、訂正可能な情報に対するエラー訂正処理が実行される。このエラー訂正処理は、主にHDC50によって、RAM42に一時的に格納された情報に対して実行される。RAM42に格納された情報は、ハードウェアまたはファームウェアによる複数のブロックからアクセスされる。本実施形態にかかるHDD10は、複数のブロックそれぞれからのアクセスを好適に調停するため、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができる。
次に、図2を用いて、本実施形態にかかる情報記憶装置に備えられ、エラー訂正処理を実行するブロックの構成を説明する。図2は、本実施形態にかかる情報記憶装置に備えられ、エラー訂正処理を実行するブロックの構成例を説明するための図である。
本実施形態にかかるエラー訂正処理は、主にHDC50に備えられる複数のブロックによって実行される。これらのブロックは、CPU41で実行されるファームウェアによって制御される。
HDC50は、メモリコントローラ201、調停部202、訂正部203を備える。CPU41、RDC31、またはホスト装置100は、メモリコントローラ201および調停部202を介して、RAM42に格納されたデータに対してアクセスする。すなわち、CPU41、RDC31、およびホスト装置100は、RAM42に対するメモリアクセスクライアントである。
メモリコントローラ201は、調停部202とRAM42との間に接続され、RAM42とデータを送受するためのハードウェアブロックである。メモリコントローラ201は、RAM42に対して、データを格納するため、またはデータを読み出すためのインターフェース手段として機能する。メモリコントローラ201は、調停部202から要求されたアドレスに基づいて、データを記録またはデータを読み出すための信号をRAM42に出力する。
調停部202は、RAM42に格納されたデータに対する、CPU41、RDC31、またはホスト装置100からのアクセスを調停する。調停部202は、RAM42に格納されたデータに対する、CPU41で実行される複数のファームウェアからのアクセスも調停する。本実施形態にかかるエラー訂正処理では、調停部202は、RAM42に格納され、エラー訂正の対象となるデータに対する、現在のメモリアクセスクライアントからのアクセスを優先的に維持し、他のメモリアクセスクライアントからのアクセスを遮断する。本実施形態にかかるエラー訂正処理におけるメモリアクセスクライアントは、CPU41(より詳細には、CPU41で実行されるエラー訂正処理に関するファームウェア)である。
訂正部203は、RAM42に格納されたデータがエラー訂正可能か否かを判定し、判定の結果が訂正可能なデータに対してエラー訂正処理を実行する。エラー訂正処理において、訂正部203は、CPU41(より詳細には、CPU41で実行されるエラー訂正処理に関するファームウェア)によって制御されてエラー訂正処理を実行する。
このような構成により、RAM42に格納されたデータに対する、複数のメモリアクセスクライアントからのアクセスが好適に調停されるエラー訂正処理が実行される。すなわち、本実施形態にかかる情報記憶装置によれば、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができる。
次に、図3,4,5を用いて、本実施形態にかかる情報記憶装置で実行されるエラー訂正処理の概略的な動作を説明する。図3は、本実施形態にかかる情報記憶装置で実行されるエラー訂正処理の概略的な動作を説明するための図である。
図3には、メモリコントローラ201を介した、RAM42とメモリアクセスクライアントとの間でのデータのやり取りが概略的に示される。図3に示すデータのやり取りの間、RAM42に格納されたデータに対する、特定のメモリアクセスクライアント300からのアクセスが維持される。アクセスの維持は、主に調停部202によって制御される。
(B301)で、メモリアクセスクライアント300は、メモリコントローラ201を介して、RAM42の特定のアドレスに格納されたデータをリードする。メモリアクセスクライアント300によるRAM42からのデータリードは、バースト転送とも称される。(B301)の前に、調停部202はメモリアクセスクライアント300によるアクセスを優先して確保しておく。換言すると、(B301)の前に、調停部202は、メモリアクセスクライアント300以外のメモリアクセスクライアントによる、RAM42の特定のアドレスに格納されたデータへのアクセスを遮断する。
(B302)で、エラー訂正部203により、リードされたデータに訂正可能なエラーがあるか否かが判断される。エラーがないと判断された場合、リードされたデータはメモリアクセスクライアント300に提供され、訂正可能なエラーがあると判断された場合、エラー訂正部203はエラーを訂正し、訂正されたデータは訂正情報テーブル310に格納される。何れの判断に応じた処理が行われた場合でも、エラー訂正に関する情報が、訂正情報テーブル310に格納される。また、リードされたデータに訂正不可能なエラーがある場合、一時退避テーブル320から読み出されたデータが、メモリアクセスクライアント300に提供される。訂正情報テーブル310および一時退避テーブル320は、訂正管理情報である。
図4に、訂正情報テーブル310の一例を示す。図4は、本実施形態にかかるエラー訂正処理で利用される訂正情報テーブル310の一例を示す図である。訂正情報テーブル310には、訂正の状態を示す情報として1bitで表現される複数のフラグ情報が用いられる。フラグ情報として、「Stored Flag」、「Corrected Flag」、「Verified Flag」、そして「Reassign Flag」が定義されているが、これらに限定されるものではない。「Stored Flag」は、エラー訂正に関する有効な情報があるか否かを示す情報である。「Corrected Flag」は、エラー訂正後のデータがRAM42に書き戻されたか否かを示す情報である。「Verified Flag」は、RAM42に書き戻されたデータに対するベリファイチェックがなされたか否かを示す情報である。そして、「Reassign Flag」は、ベリファイチェックの結果に応じて、チェックされたデータが一時的に退避されたか否かを示す情報である。
また、訂正情報テーブル310では、フラグ情報に対してアドレス情報とデータが対応付けられた「段」が定義される。アドレス情報は、エラー訂正の判定対象となったデータの、RAM42でのアドレス範囲を示す情報である。データは、エラー訂正の判定対象となったデータ、もしくは、エラー訂正されたデータである。すなわち、フラグ情報によって、RAM42のあるアドレス範囲に格納されたデータのエラー訂正の状態を管理することができる。例えば、全てのフラグ情報の値が「0」である段は、「エラー訂正に関する情報がない」状態を示す。この場合、アドレス情報「AD7」およびデータ「DA7」は、意味のない値となる。すなわち、全てのフラグ情報の値が「0」である段は、新たに情報を追加する際に用いることが可能である。また、全てのフラグ情報の値が「1」である、アドレス情報が「AD0」のデータ「DA0」は、「エラー訂正後にRAM42に格納されたデータのベリファイチェックの結果でエラーがある」状態を示す。これらの他に、「訂正可能なエラーがある」、「訂正可能なエラーを訂正後にRAM42に格納した」、または「エラー訂正後にRAM42に格納されたデータのベリファイチェックの結果でエラーがない」状態などを示すことができる。
なお、訂正情報テーブル310は、RAM42の一部に格納されるが、情報記憶装置(RAM42)の電源が遮断される前に、不揮発の記憶領域(例えば、NVRAM43や磁気ディスク1)に退避されてもよい。また、訂正情報テーブル310の情報は、複数の「段」によるテーブル形式で管理されている必要はなく、各情報が対応付けられて管理されていればよい。
図3に戻り、(B303)〜(B304)で、メモリアクセスクライアント300は、エラー訂正を施したデータを、メモリコントローラ201を介してRAM42の元のアドレス(読み出した際のアドレス)に書き戻す。すなわち、元のアドレスに対して、エラー訂正されたデータが上書き更新される。
(B305)で、メモリアクセスクライアント300は、RAM42に書き戻したデータを(書き戻したアドレスから)再びリードし、エラー訂正部203がリードされたデータをベリファイチェックする。
(B306)で、エラー訂正部203により、再びリードされたデータに訂正不可能なエラーがあると判断された場合、このデータはアドレス情報と共に一時退避テーブル320に格納される。再びリードされたデータに訂正不可能なエラーがあるか否かに因らず、エラー訂正に関する情報は、訂正情報テーブル310に格納される。
図5に、一時退避テーブル320の一例を示す。図5は、本実施形態にかかるエラー訂正処理で利用される一時退避テーブル320の一例を示す図である。一時退避テーブル320には、訂正情報テーブル310の全てのフラグ情報の値が「1」である「エラー訂正後にRAM42に格納されたデータのベリファイチェックの結果でエラーがある」状態のデータとそのアドレス情報が対応付けられて管理される。すなわち、一時退避テーブル320に格納されるデータは、エラーデータを含む可能性があるデータである。
なお、一時退避テーブル320は、RAM42の一部に格納されるが、情報記憶装置(RAM42)の電源が遮断される前に、不揮発の記憶領域(例えば、NVRAM43や磁気ディスク1)に退避されてもよい。また、一時退避テーブル320の情報は、テーブル形式で管理されている必要はなく、アドレス情報とデータとが対応付けられて管理されていればよい。このアドレス情報およびデータは、訂正情報テーブル310にも格納されているため、一時退避テーブル320にはアドレス情報のみが格納されていてもよい。
再び図3に戻り、(B307)で、一時退避テーブル320に格納されたデータが、エラー訂正処理の初めにRAM42からリードされたデータに置き換えられて、メモリアクセスクライアント300に提供されることが可能である。(B301)から(B307)の処理が完了した後、調停部202は、メモリアクセスクライアント300によるアクセスを他のメモリアクセスクライアントに解放する。換言すると、(B301)から(B307)の処理が完了した後、調停部202は、メモリアクセスクライアント300以外の他のメモリアクセスクライアントの遮断を解除する。
このような動作により、本実施形態にかかるエラー訂正処理では、RAM42に格納されたデータに対する特定のメモリアクセスクライアントからのアクセスが保護される。すなわち、RAM42に格納されたデータに訂正可能なエラーがある場合に、このエラーの訂正処理の実行を他のメモリアクセスクライアントから保護することが可能となる。このようにして、本実施形態にかかる情報記憶装置によれば、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができる。
次に、図6を用いて、本実施形態にかかる情報記憶装置で実行されるエラー訂正処理の動作フローを説明する。図6は、本実施形態にかかる情報記憶装置で実行されるエラー訂正処理の動作フローを説明するためのフローチャートである。
調停部202は、メモリアクセスクライアント300によるRAM42へのアクセスの開始前に、このアクセスの保護を開始する。メモリアクセスクライアント300が、調停部202によるアクセスの保護の下で、メモリコントローラ201を介してRAM42からデータをリードする(B601)と、エラー訂正部203が、リードされたデータのエラーの状態(訂正可能なエラーがあるか否か)をチェックする(B602)。エラーの状態のチェック結果の判断(B603)で、エラーがない場合(B603のNo)、エラー訂正部203は、チェック結果を訂正情報テーブル310に登録する(B604)。チェック結果の判断でエラーがある場合(B603のYes)、エラー訂正部203は、そのエラーが訂正可能か否かを判定する(B605)。エラーが訂正可能である場合(B605のYes)、エラー訂正部203は、そのエラーを訂正し、訂正したデータを含む、この訂正にかかる情報を、訂正情報テーブル310に登録する(B604)。
一方、エラーが訂正可能ではない場合(B605のNo)、メモリアクセスクライアント300は、そのデータが読み出されたアドレス情報(と共に管理されているデータ)が、一時退避テーブル320に格納されているか否かを判定する(B606)。アドレス情報(またはデータ)が格納されている場合(B606のYes)、メモリアクセスクライアント300は、一時退避テーブル320に格納されているデータを読み出して、訂正可能でないと判定されたデータと置換する(B607)。一時退避テーブル320にデータが格納されていない場合(B606のNo)の処理については後述するため、ここでの説明を省略する。
訂正情報テーブル310にエラー訂正に関する情報が格納された(B605)後、および、一時退避テーブル320に格納されているデータへの置換がなされた(B607)後、メモリアクセスクライアント300は、エラーの状態をチェックされたデータが、アクセスすべきデータの最終データであるか否かを判定する(B608)。そのデータが最終データでない場合(B608のNo)、継続するアクセス(すなわち、RAM42からのデータのリード)(B601)が再び行われる。エラー状態をチェックされたデータが、最終データである場合(B608のYes)、メモリアクセスクライアント300は、訂正情報テーブル310に格納された情報を確認する(B609)。
訂正情報テーブル310に新たな情報がある場合(B609のYes)、メモリアクセスクライアント300は、新たな情報として格納されている対象のデータを、対応するRAM42のアドレス情報に上書き更新し、上書き更新したデータを再び読み出す。エラー訂正部203は、読み出されたデータのエラーの状態をチェック(ベリファイ)する(B610)。エラーの状態のチェック結果の判断(B611)で、エラーがない場合(B611のNo)、エラー訂正部203は、チェック結果を訂正情報テーブル310に登録する(B612)。チェック結果の判断(B611)で、エラーがある場合(B611のYes)、エラー訂正部203は、そのエラーの訂正を試み、訂正結果のデータを含む、この訂正にかかる情報を、一時退避テーブル320に登録する(B613)。エラー訂正部203は、この場合でも、チェック結果を訂正情報テーブル310に登録する(B612)。なお、訂正情報テーブル310に新たな情報が複数ある場合、これらの処理はそれぞれの情報(データ)に対して行われる。
そして、メモリアクセスクライアント300によるRAM42へのアクセスが完了し、アクセスした全てのデータがメモリアクセスクライアント300に転送されると、調停部202は、このアクセスを解放する(B614)。また、最終データへのアクセス後に訂正情報テーブル310に新たな情報がない場合(B609のNo)も同様に、メモリアクセスクライアント300によるRAM42へのアクセスは完了し、アクセスした全てのデータが転送されて、このアクセスが解放される。一方で、RAM42から読み出したデータが訂正可能でなく、一時退避テーブル320にそのアドレス情報(およびデータ)が格納されていない場合(B606のNo)は、メモリアクセスクライアント300によるRAM42へのアクセスは中断されて、このアクセスが解放される(B615)。
なお、本実施形態のエラー訂正処理を実行するファームウェア(メモリアクセスクライアント300)は、図6に示したフローチャートにおける各処理以外に、例えば、以下に示す条件で割り込み要求を受けることがある。それぞれの割り込み要求に対応した処理は、エラー訂正処理を実行するファームウェア以外のファームウェアによって実行される。具体的には、以下に記述するように、条件1に対して処理1が実行され、同様に、条件2〜5それぞれに対して処理2〜5が実行される。
(条件1)ベリファイの結果、訂正可能なデータが検出されて訂正情報テーブルが更新された場合。すなわち、訂正情報テーブル310の各フラグの値が、(stored flag, corrected flag, verified flag, reassign flag)=(1, 1, 1, 0)の状態に更新された場合。(処理1)訂正情報テーブル310の更新されたアドレスとデータに対応づけられた情報(フラグ情報)がクリアされる。すなわち、フラグ情報がクリアされるとは、訂正情報テーブル310の各フラグの値が、(stored flag, corrected flag, verified flag, reassign flag)=(0, 0, 0, 0)の状態に更新されることを示す。
(条件2)ベリファイの結果、RAM42から読み出されたデータの修復に失敗し(エラーが訂正できず)、一時退避テーブル320に新規の情報が追加された。(処理2)修復に失敗したため、一時退避テーブル320に新たに格納されたデータのアドレスが確認されて、RAM42の該当アドレスの周辺アドレスは使用不可能であると判定され、RAM42の他のアドレスにデータを展開し直す。また、この処理の完了後に、訂正情報テーブル310および一時退避テーブル320の該当アドレスに関する情報がクリアされる。
(条件3)訂正情報テーブル310がオーバーフローした。すなわち、訂正情報テーブル310のフラグ情報が(stored flag, corrected flag, verified flag, reassign flag)=(0, 0, 0, 0)の状態の段がない状態で(すなわち、新規の訂正情報をこれ以上登録できない状態で)、新たに訂正可能なデータが検出された。(処理3)訂正情報テーブル310に格納された情報の内容が確認され、確認された情報の中で格納しておく必要のない情報が無効化されて、訂正情報テーブルに情報の格納領域が確保される。
(条件4)訂正実施テーブル310のフラグ情報の値(エラー訂正の状態)によらず、訂正不可能なデータが検出された。(処理4)一時待避テーブル320に登録されたデータが使用されたか否かに応じて異なる処理が実行される。一時退避テーブル320に情報(アドレスおよびデータ)が登録された時点では、その情報は訂正可能の状態であったはずである。そのアドレスのデータを読み出した際に訂正不可能になったということは、RAM42の該当アドレスの周辺アドレスは物理的に損傷している可能性があるため使用を中止したほうが良いと判断することができる。そこで、この場合は、RAM42の他のエリア(アドレス領域)に一時待避テーブル320に登録されたデータを移動する処理が必要とされる。この処理が終了した後、一時退避テーブル320の該当情報(アドレスおよびデータ)がクリア(flagを0にする)される。一方、一時退避テーブル320に該当の情報(アドレスおよびデータ)が登録されていなかった場合、RAM42上の該当アドレスのデータが壊れているかの再チェック(例えば、該当アドレスに対するライト&リードなど)がなされる。RAM42自身が壊れていないと判断された場合、該当データが元々格納されていた磁気ディスク1やNVRAM43からデータをロードし直す(データの修復)などの処理が実行される。
(条件5)一時退避テーブル320がオーバーフローした。(処理5)一時格納テーブル320に格納されたデータの アドレスが確認されて、RAM42の該当アドレスの周辺アドレスは使用不可能であると判定され、RAM42の他のアドレスにデータを展開し直す。この処理の完了後に、一時退避テーブル320の該当アドレスに関する情報がクリアされる。
このような動作フローにより、本実施形態にかかるHDD10は、RAM42に格納されたデータに対する特定のメモリアクセスクライアントからのアクセスが保護されるエラー訂正処理を実行することができる。すなわち、本実施形態にかかるエラー訂正処理によれば、RAM42に格納されたデータに訂正可能なエラーがある場合において、このエラーの訂正処理の実行を他のメモリアクセスクライアントから保護することが可能となる。このようにして、本実施形態にかかる情報記憶装置によれば、複数のブロックに共有されるデータに対する複数のブロックからのアクセスを好適に管理することができる。
以上説明したように本実施形態によれば、メモリコントローラ201を介して、メモリアクセスクライアント300によるRAM42に格納された情報へのアクセスが実行される。このアクセスにおける、訂正可能なデータに対するエラー訂正処理が実行される期間は、調停部202によって他のメモリアクセスクライアントからのアクセスから保護される。
すなわち、本実施形態によれば、エラー訂正処理における、エラーの検出から訂正までの時間が短縮化されるため、RAM42のあるビットの特性が劣化するビット故障が存在する場合に、エラーの検出から訂正までの時間に多くの時間を要すことでビット故障が進行することを抑制することができる。
また、本実施形態によれば、エラー訂正処理を実行するためのメモリアクセスクライアント(ファームウェア)による制御が優先的に実行されるため、他のメモリアクセスクライアントによる割り込み処理を考慮する必要がなくなる。そのため、エラー訂正処理を実行するためのファームウェアの構造を簡素化することが可能となる。また、エラー訂正処理を実行するためのファームウェアによるアクセスと、他のメモリアクセスクライアント(ファームウェア)のアクセスとの衝突を回避することが可能となる。また、エラーの訂正に時間がかかる場合であっても、この訂正処理を中断せずに継続することが可能となる。
さらに、本実施形態にかかるエラー訂正処理は、訂正したデータのベリファイ処理を伴うため、RAM42に格納されるデータの格納位置(アドレス情報)を変更することの必要性を適時に把握することができ、RAM42に格納されるデータの格納位置を最適に設定することができる。
本実施形態にかかるエラー訂正処理は、データを情報記憶領域に記憶する際の管理情報を多く必要とし、比較的頻繁にこの管理情報を更新する装置(例えば、SSDやメモリカードなどの半導体記憶媒体を利用する装置)に適用される場合に、より大きな効果を奏することができる。
以上、少なくとも一つの実施形態を説明したが、説明した実施形態は一例として提示したものであり、発明の範囲はこの実施形態に限定されない。また、説明した実施形態は、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。さらに、前述した実施形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよく、さらに、異なる実施形態に係る構成要素を適宜組み合わせても良い。これらの実施形態やその変形は、発明の範囲や要旨に含まれ、特許請求の範囲に記載された発明と、その均等の範囲に含まれるものである。
1…磁気ディスク、2…スライダ、3…アーム、4…VCM(ボイスコイルモータ)、5…SPM(スピンドルモータ)、10…磁気ディスク装置(HDD)、21…モータドライバ、22…ヘッドIC、31…リードライトチャネルIC(RDC)、41…CPU、42…RAM、43…NVRAM、50…HDC(Hard Disc Controller)、100…ホスト装置、120…通信媒体(ホストI/F)、150…電子機器、201…メモリコントローラ、202…調停部、203…訂正部。

Claims (6)

  1. 外部メモリに格納されるデータのエラー訂正方法であって、
    前記外部メモリに格納される第1のデータのエラー訂正が開始される前に当該第1のデータに対する他のアクセスを遮断し、
    前記外部メモリに格納される前記第1のデータのエラーを訂正し、
    前記エラーが訂正された第2のデータを前記外部メモリに格納し、
    前記第2のデータを前記外部メモリに格納した後、前記第2のデータに対する前記他のアクセスの遮断を解除する
    エラー訂正方法。
  2. 前記第1のデータのエラーを訂正することは、前第1のデータの訂正可能なエラーの有無を示す情報、前記第1のデータのエラーの訂正が完了したか否かを示す情報を管理して記憶する、ことを含む請求項1に記載のエラー訂正方法。
  3. 前記外部メモリに格納した前記第2のデータを読み出した第3のデータのエラーを訂正し、当該第3のデータに訂正できないエラーがある場合、前記第3のデータを一時的に格納し、前記第2のデータのリード要求に応じて前記一時的に格納した第3のデータを送出する、請求項1または請求項2に記載のエラー訂正方法。
  4. 前記第3のデータのエラーを訂正することは、前記第3のデータに訂正できないエラーがあるか否かを示す情報を管理して記憶する、ことを含む請求項3に記載のエラー訂正方法。
  5. 外部メモリとデータを送受するためのインターフェース手段と、
    前記インターフェース手段を介して前記外部メモリに格納されるデータのエラーを訂正する訂正手段と、
    前記訂正手段による前記訂正が開始される前から当該訂正が完了するまで、前記外部メモリに格納される前記訂正の対象となるデータに対するアクセスを優先して確保する調停手段と、
    を具備するエラー訂正装置。
  6. 請求項5に記載のエラー訂正装置と、
    前記外部メモリと、
    前記エラー訂正装置と前記外部メモリとの間の前記データの送受を制御するためのプロセッサと、
    を具備する情報記憶装置。
JP2013055714A 2013-03-18 2013-03-18 エラー訂正方法、エラー訂正装置、および情報記憶装置。 Pending JP2014182847A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013055714A JP2014182847A (ja) 2013-03-18 2013-03-18 エラー訂正方法、エラー訂正装置、および情報記憶装置。
US13/960,665 US20140281677A1 (en) 2013-03-18 2013-08-06 Error correction method and device and information storing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013055714A JP2014182847A (ja) 2013-03-18 2013-03-18 エラー訂正方法、エラー訂正装置、および情報記憶装置。

Publications (1)

Publication Number Publication Date
JP2014182847A true JP2014182847A (ja) 2014-09-29

Family

ID=51534163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013055714A Pending JP2014182847A (ja) 2013-03-18 2013-03-18 エラー訂正方法、エラー訂正装置、および情報記憶装置。

Country Status (2)

Country Link
US (1) US20140281677A1 (ja)
JP (1) JP2014182847A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200038857A (ko) * 2018-10-03 2020-04-14 실리콘 모션 인코포레이티드 에러 핸들링 방법 및 데이터 저장장치 및 그 컨트롤러
US10990325B2 (en) 2018-10-03 2021-04-27 Silicon Motion, Inc. Write control method, associated data storage device and controller thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9928924B2 (en) * 2015-12-15 2018-03-27 Qualcomm Incorporated Systems, methods, and computer programs for resolving dram defects

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
US6167485A (en) * 1997-12-31 2000-12-26 Emc Corporation On-line data verification and repair in redundant storage systems
US6754842B2 (en) * 2000-02-22 2004-06-22 International Business Machines Corporation Facilitating a restart operation within a data processing system
US6993688B2 (en) * 2001-09-27 2006-01-31 Seagate Technology Llc Data sector error tracking and correction mechanism
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7386664B1 (en) * 2004-10-13 2008-06-10 Symantec Operation Corporation Method and system for mirror storage element resynchronization in a storage virtualization device
US7353445B1 (en) * 2004-12-10 2008-04-01 Sun Microsystems, Inc. Cache error handling in a multithreaded/multi-core processor
JP5076488B2 (ja) * 2006-12-22 2012-11-21 富士通株式会社 情報処理装置、履歴管理方法、履歴管理プログラム
US7743284B1 (en) * 2007-04-27 2010-06-22 Netapp, Inc. Method and apparatus for reporting storage device and storage system data
WO2009095902A2 (en) * 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US7774540B2 (en) * 2007-12-26 2010-08-10 Hitachi Global Storage Technologies Netherlands B.V. Storage system and method for opportunistic write-verify
US9582345B2 (en) * 2009-12-14 2017-02-28 Appfolio, Inc. Systems and methods for importing data from data sources over a network while correcting and transforming the data
JP5532982B2 (ja) * 2010-02-03 2014-06-25 富士通株式会社 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法
US8819330B1 (en) * 2011-09-20 2014-08-26 Google Inc. System and method for updating a locally stored recovery image

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200038857A (ko) * 2018-10-03 2020-04-14 실리콘 모션 인코포레이티드 에러 핸들링 방법 및 데이터 저장장치 및 그 컨트롤러
KR102175884B1 (ko) 2018-10-03 2020-11-09 실리콘 모션 인코포레이티드 에러 핸들링 방법 및 데이터 저장장치 및 그 컨트롤러
US10884856B2 (en) 2018-10-03 2021-01-05 Silicon Motion, Inc. Error-handling method, associated data storage device and controller thereof
US10990325B2 (en) 2018-10-03 2021-04-27 Silicon Motion, Inc. Write control method, associated data storage device and controller thereof

Also Published As

Publication number Publication date
US20140281677A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US10210900B2 (en) Rewriting of data stored in defective storage regions into other storage regions
US20190172491A1 (en) Error Correction For Storage Devices
US7647544B1 (en) Disk drive implementing data path protection without writing the error detection code data to the disk
US8285923B2 (en) Disk drive and method using native command queuing tags to identify logical block size and implement protection information
US8255774B2 (en) Data storage system with non-volatile memory for error correction
US8122322B2 (en) System and method of storing reliability data
US8291190B2 (en) Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto
US10140180B1 (en) Segment-based outer code recovery
US8947803B1 (en) Data storage device and data erasing method
JP2012174325A (ja) 情報記録装置及び情報記録方法
US10438615B2 (en) Disk device, controller circuit, and control method
JP2014182847A (ja) エラー訂正方法、エラー訂正装置、および情報記憶装置。
JP5886803B2 (ja) 情報記録装置およびデータ復旧方法
CN105808386A (zh) 硬盘数据恢复校验方法
US20110205654A1 (en) Control apparatus, nonvolatile storage apparatus and data initialization method
US20170262179A1 (en) Memory system and memory system controlling method
US10867633B1 (en) Reduced adjacent track erasure from write retry
US9047206B1 (en) Disk drive apparatus and method of manufacturing the disk drive apparatus
US10379972B1 (en) Minimizing reads for reallocated sectors
US11164598B1 (en) Managing data associated with overwritten portions of previously-written tracks
US10102145B1 (en) Out of order LBA processing
JP2019153363A (ja) 磁気ディスク装置及びライト方法
US8924775B1 (en) Methods, devices and systems for tracking and relocating intermittently defective disk sectors to prevent indefinite recycling thereof
JP2023142223A (ja) 磁気ディスク装置
US8879192B1 (en) Information recording device and information recording method

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20140812

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140902

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150216

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150218