JP5824087B2 - エラー訂正コードシード処理のための方法およびシステムならびに記憶媒体 - Google Patents

エラー訂正コードシード処理のための方法およびシステムならびに記憶媒体 Download PDF

Info

Publication number
JP5824087B2
JP5824087B2 JP2014043751A JP2014043751A JP5824087B2 JP 5824087 B2 JP5824087 B2 JP 5824087B2 JP 2014043751 A JP2014043751 A JP 2014043751A JP 2014043751 A JP2014043751 A JP 2014043751A JP 5824087 B2 JP5824087 B2 JP 5824087B2
Authority
JP
Japan
Prior art keywords
offset
data block
cell number
data
ecc value
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.)
Active
Application number
JP2014043751A
Other languages
English (en)
Other versions
JP2014175001A (ja
Inventor
ダニエル・ジェイ・コーネン
アブハイ・ティ・カタリア
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2014175001A publication Critical patent/JP2014175001A/ja
Application granted granted Critical
Publication of JP5824087B2 publication Critical patent/JP5824087B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

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)
  • Detection And Correction Of Errors (AREA)

Description

関連出願の相互参照
本出願は、本明細書と同時に出願された米国特許出願第13/793,999号、表題「エラー訂正コードシード処理」に関するものであり、それが開示および教示するすべてのために参照により本明細書に具体的に組み込まれる。
使用不可能なデータブロックは、ドライブ処理におけるいくつかの段階で発見される。そのようなデータブロックが発見されるとき、そのドライブが再線形化され得るため、使用可能なデータブロックは、それぞれのデータブロックに関するエラー訂正コード(EEC)情報において符号化されたシーケンシャルインデックスを有する。そのような再線形化の結果として、ECC情報は、使用可能なブロックがシーケンシャルインデックスを有するようにすべての使用可能なデータブロック上に再度書き込まれる。しかしながら、単一のドライブを再線形化するのに数時間かかり、製造業者に莫大な費用を発生させ得る。
本明細書において記載および特許請求される実装例は、セル番号に基づいて複数のデータブロックのインデックス付き配列内の1つのデータブロックにアクセスし(インデックス付き配列内のそれぞれのデータブロックが記憶されたECC値を含む)、1つのデータブロックのセル番号と関連付けられたオフセットを読み出し、セル番号およびオフセットに基づいてECC値を生成し、かつ生成されたECC値および記憶されたECC値が完全性条件を満たすかを判定することによって前述の問題に対処する。
本発明の概要は、簡略化された形態で以下の発明を実施するための形態にさらに説明される概念の選択を導入するために提供される。本発明の概要は、特許請求される主題の主要な特徴または本質的な特徴を特定することも、特許請求される主題の範囲を限定するために使用されることも意図していない。これらおよび様々な他の特徴および利点は、以下の発明を実施するための形態を読むことにより明らかになる。
図1は、データブロックのセル番号がデータブロックに記憶されたエラー訂正コード(ECC)値と一致しない場合にデータブロックから読み取られたデータを確認するための機構を有するシステムを図解する。 図2は、エラー検出モジュールのシード値を計算するために使用され得るオフセットテーブルを作成するオフセットテーブル作成モジュールを有する記憶デバイスを図解する。 図3は、データブロックのセル番号がデータブロックに記憶されたECC値と一致しない場合にデータブロックから読み取られたデータを確認するための機構を有する別のシステムを図解する。 図4は、エラー検出モジュールのシード値を計算するために使用され得るオフセットテーブルを作成するための例示の動作を図解する。 図5は、データブロックのセル番号がデータブロックに記憶されたECC値と一致しない場合にデータブロックから読み取られたデータを確認するための例示の動作を図解する。 図6は、ディスクアクセス動作中にターゲットデータブロックのインデックス付き配列内の1つ以上のデータブロックを選択的に除外するためのシステムの1つ以上の態様の実装に好適なコンピュータシステムのブロック図を開示する。
図1は、データブロックのセル番号がデータブロックに記憶されたエラー訂正コード(ECC)値と一致しない場合にデータブロックのデータを確認するための機構(例えば、オフセットルックアップモジュール114)を有するシステム100を図解する。システム100は、1つ以上のアクセスコマンド104(例えば、読み取りまたは書き込みコマンド)を記憶ドライブ106に送信するホストコンピュータ102を含む。記憶ドライブ106は、有形のコンピュータ可読記憶媒体を有するデバイスであり、コンピュータによってアクセス可能なシーケンシャルユニット(例えば、セルまたはデータブロック)にデータを記憶することができる。そのような有形のコンピュータ可読媒体には、制限なく、磁気記憶ディスク、ソリッドステートドライブ、フラッシュメモリ、光学記憶ディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROMS)等が含まれ得る。記憶ドライブ106は、一定の数の記憶バイトを保持することができるいくつかのデータブロック(例えば、データブロック108)を含む。
データブロックはそれぞれ、記憶デバイス106上の複数のデータブロックのインデックス付き配列内の1つのデータブロックの物理的位置と関連付けられた物理インデックス(例えば、データブロック108内の物理インデックス0)を有する。一実装例に従って、記憶ドライブ106上のシーケンシャルデータブロックは、連続して増加する物理インデックスと関連付けられる。データブロックはそれぞれ、データブロックの物理インデックスを符号化するECC値を含むエラー訂正コード(ECC)情報(図示されず)も含む。
記憶デバイス(例えば、記憶ドライブ106)は、デバイスの初期処理中に不良または使用不可能なものとして特定されるいくつかのデータブロックを含み得る。例えば、ディスクの表面上のブロック欠陥または不規則(例えば、サーマルアスペリティ)は、ディスクの1つ以上のブロックを使用不可能にし得る。実際の物理的欠陥を有しないデータブロックは、他の理由で記憶デバイスのデータ記憶動作から選択的に除外されるため、「使用不可能」であり得る。したがって、「使用不可能」という用語は、何らかの理由でデータ記憶動作における使用から選択的に除外される記憶ブロックを意味するために本明細書で使用される。
データが記憶ドライブ106上のデータブロックから読み直されるとき、エラー検出および訂正モジュール110は、データ完全性チェックを行って、読み取られたデータまたは書き込まれたデータが正しく、かつ正しいデータブロックがアクセスされたことを確実にする。この完全性チェックを行うために、エラー検出および訂正モジュール110は、シード値およびデータブロックから読み直されたデータを用いて、ECC値を生成する。完全性チェックが成功した場合、生成されたECC値は、データブロックに記憶されたECC値と一致する。しかしながら、そのような確認は、概して、シード値がデータブロックの物理インデックスと一致しない場合、可能ではない。
図1において、物理インデックス1および4を有するデータブロックは、最初の工場処理動作中に使用不可能なものとして特定される。しかしながら、記憶ドライブ106は、使用不可能なブロック1および4を記憶デバイスのインデックス化スキームから除外するために再線形化されなくてもよい。むしろ、システム100は、ファームウェアにおいて機能的なモジュールであり得るオフセットルックアップモジュール114を含むように製造されている。オフセットルックアップモジュール114は、エラー検出および訂正モジュール110に入力されるシード値がデータブロックの物理インデックスとは異なる場合であっても、エラー検出および訂正モジュール110がデータブロックから読み取られたデータの完全性を確認することを可能にする。
例示の図解において、ホストコンピュータ102は、4つの名前(例えば、Sarah、Jake、June、およびCharlie)を書き込むために4つのアクセスコマンド104をセル番号0〜3の4つのターゲットデータブロックに送信する。4つのターゲットデータブロックのそれぞれと関連付けられたデータ(例えば、名前)は、データブロックのそれぞれに対応する論理的ブロックアドレス(LBA)とともに、記憶ドライブ106に送信される。記憶デバイス100は、ホストコンピュータ102からのLBAを、それぞれ、セル番号0、1、2、および3に変換する。その後、データ割り当てモジュール(図示されず)は、セル番号のそれぞれに対応するように物理ブロックインデックスを選択する。物理インデックス1および4を有する使用不可能なブロックへのデータの書き込みを回避するために、データ割り当てモジュールは、セル番号0、1、2、および3と関連付けられたデータが、それぞれ、物理データブロック0、2、3、および5に割り当てられ得ることを判定する。その結果として、Sarah、Jake、June、およびCharlieという名前が物理データブロック0、2、3、および5に書き込まれる。
データが4つのターゲットデータブロックのうちの1つから読み直されるとき、オフセットルックアップモジュール114は、エラー検出および訂正モジュール110によって使用され得るシード値を計算して、ターゲットデータブロックから読み取られたデータの完全性を確認する。具体的には、オフセットルックアップモジュール114は、オフセットテーブル(図示されず)にアクセスし、ターゲットデータブロックのセル番号と関連付けられたオフセットを読み出す。セル番号およびオフセットを用いて、オフセットルックアップモジュールは、シード値を生成する。エラー検出および訂正モジュール110は、シード値および関連付けられたデータブロックから読み直されたデータを用いてECC値を計算し、それはターゲットデータブロックに記憶されたECC値と比較される。
例えば、データ「Sarah」の完全性を確認するために、オフセットルックアップモジュール114は、セル番号0と関連付けられたオフセット0を読み出す。オフセット0を用いて、オフセットルックアップモジュール114は、シード値0を計算し、物理インデックス0を有するデータブロックに記憶されたECC値と一致するECC値を計算するために使用される。
同様に、データ「Jake」の完全性を確認するために、オフセットルックアップモジュール114は、セル値1を用いて、オフセット1を読み出し、シード値2を計算する。エラー検出および訂正モジュール110は、シード2を用いて、物理インデックス2を有するデータブロックに記憶されたECC値と一致するECC値を計算する。
同様に、データ「Charlie」の完全性を確認するために、オフセットルックアップモジュール110は、セル番号3と関連付けられたオフセット2を読み出し、シード値5を計算する。エラー検出および訂正モジュール110は、シード値5および物理インデックス5を有するデータブロックから読み直されたデータを用いて、物理インデックス5を有するデータブロックに記憶されたECC値と一致するECC値を計算する。その結果として、データは、媒体上の使用可能なシーケンシャルデータブロックに書き込まれ、データの完全性が確認され、ドライブは、最初のドライブ処理中に再線形化されない。
図2は、エラー検出モジュール(図示されず)のシード値を計算し、ひいてはデータブロックから読み取られたデータの完全性を確認するために使用され得るオフセットテーブル204を作成するオフセットテーブル作成モジュール202を有する記憶デバイス200を図解する。記憶デバイス200は、一定の量のデータを記憶することができるいくつかのデータブロック(例えば、データブロック208および210)を有する記憶媒体206を含む。記憶媒体206は、任意の種類の有形のコンピュータ可読媒体であり得るが、一実装例において、記憶媒体は、磁気ディスクであり、データブロックは、ディスク上のデータトラックに沿ったシーケンシャルセクタである。別の実装例では、記憶媒体は、ソリッドステートドライブ(SSD)である。
記憶媒体206上のデータブロックはそれぞれ、インデックス付き配列(例えば、記憶媒体206上に使用可能なデータブロックおよび使用不可能なデータブロックの両方を含む配列)上のデータブロックの物理的位置と関連付けられた物理インデックス(例えば、データブロック210内の物理インデックス0)を有する。さらに、データブロックはそれぞれ、データブロックの物理インデックスを符号化する符号化されたEEC情報(例えば、データブロック210内の符号化された物理インデックス「ECC0」)を有する。工場初期化動作中(ECC情報がデータブロックのそれぞれに符号化された後であり得る)、使用不可能なデータブロック(例えば、物理インデックス1および4を有する使用不可能なデータブロック)は、エラー検出モジュール(図示されず)によって記憶媒体206上で特定される。
使用不可能なブロックを記憶動作から選択的に除外する配列内のエラー確認データブロックの機構は、オフセットテーブル作成モジュール202を用いて実装される。オフセットテーブル作成モジュール202は、使用可能なデータブロックの物理インデックスを対応するセル番号と関連付け(セル番号は、使用可能なデータブロックの連続した配列を集合的に表す)、オフセットテーブル204内に選択されたセル番号に関連した増分オフセット値を記録する。その後、そのようなオフセット値を用いて、ディスク記憶動作中に書き込まれ、かつ読み取られたデータの完全性を確認することができる。
図2は、オフセットテーブル204のオフセットを抽出するために使用される論理を例示する論理テーブル214(メモリ内に含まれても含まれなくてもよい)も含む。具体的には、論理テーブル214は、記憶媒体206上の使用可能なデータブロックおよび使用不可能なデータブロックの両方に対応する物理インデックスを含む「物理インデックス」欄を有する。論理テーブル214は、それぞれの使用可能なデータブロックに関連したセル番号を含む「セル番号」欄も有する。例えば、物理インデックス1および4は、そのようなデータブロックがエラー検出モジュールによって使用不可能なものとして特定されたため、オフセットテーブル204内に対応するセル番号を有しない。したがって、一連の連続したセル番号0、1、2、および3は、それぞれ、使用可能なシーケンシャルデータブロック0、2、3、および5の物理インデックスに対応する。オフセット(例えば、論理テーブル214内の全体のオフセット値)は、データブロックの物理インデックスとセル番号との差を表す。全体のオフセット値は、インデックス付き配列内の使用不可能なデータブロックの後のそれぞれの使用可能なデータブロックに関連して1だけ増分する。例えば、全体のオフセット値は、物理インデックス2が、物理インデックス1を有する使用不可能なデータブロックの後の次の使用可能なデータブロックに対応するため、物理インデックス2に関連して1だけ増分する。同様に、全体のオフセットは、物理インデックス5が、物理インデックス4を有する使用不可能なデータブロックの後の次の使用可能なデータブロックに対応するため、この場合もやはり、物理インデックス5に関連して1だけ増分する。論理テーブル214内に図解される情報は、オフセットテーブル作成モジュール202によって、オフセットテーブル204に凝縮され、記憶デバイス200のメモリに記憶される。
オフセットテーブル作成モジュール202は、オフセットテーブル204内に記憶デバイス上のすべての使用可能な物理インデックスと関連付けられたオフセットを記録しない。むしろ、オフセットは、増分の影響を受けた第1のシーケンシャル物理インデックスを有するそれぞれの使用可能なデータブロック(例えば、物理インデックスのインデックス付き配列内の使用不可能なデータブロックの後の第1の使用可能なデータブロック)に関連して記録される。例えば、セル番号1および2は、両方ともにオフセット1の影響を受ける。しかしながら、物理インデックス2は、オフセット1の影響を受けた第1の物理インデックスである。したがって、オフセット1は、物理インデックス2に関連して記録される。
オフセットテーブル作成モジュール202が記憶デバイス200(例えば、ファームウェア内のモジュール)の内部にあるように図解されているが、オフセットテーブル作成モジュール202および/または論理的マップモジュール202は、記憶デバイス200と通信可能に接続された外部デバイスのソフトウェアまたはファームウェアであり得る。オフセットテーブル作成モジュール202によって作成されたオフセットテーブル204は、記憶デバイス200の寿命期間にわたってアクセスされ得るように、記憶デバイス200のファームウェア内の記憶デバイス等の記憶デバイス200に関連して保存される。具体的には、オフセットテーブル204は、データがデータブロックから読み取られるたびにアクセスされ、データブロックに記憶されたデータの完全性を確認するエラー検出および訂正モジュールのシード値を計算するために使用され得る。
図3は、データブロックのセル番号がデータブロックに記憶されたECC値と一致しない場合にデータブロックから読み取られたデータを確認するための機構(例えば、オフセットルックアップモジュール310)を有する別のシステム300を図解する。このシステムは、1つ以上のアクセスコマンド304(例えば、読み取りおよび書き込みコマンド)を記憶デバイス306に送信するホストコンピュータ(図示されず)を含む。記憶デバイス306は、オフセットルックアップモジュール320、オフセットテーブル322、および記憶媒体312も含む。記憶媒体312は、データを記憶するためにいくつかのデータブロック(例えば、データブロック308)を含む。データブロックはそれぞれ、記憶媒体312上の複数のデータブロックのインデックス付き配列内の1つのデータブロックの物理的位置と関連付けられた物理インデックス(例えば、データブロック308内の物理インデックス0)を有する。さらに、データブロックはそれぞれ、データブロックの物理インデックスを符号化するEEC情報を含む。例えば、データブロック308は、データブロックの物理インデックス「0」を符号化するECC値「ECC0」を有する。
記憶デバイス306の工場処理動作中に、使用不可能なデータブロック(例えば、使用不可能なデータブロック314および318)が特定される。図2に記載されるオフセットテーブル作成モジュールと同一または同様であり得るオフセットテーブル作成モジュール(図示されず)は、オフセットテーブル322を作成する。オフセットテーブル322は、「セル番号」と題された第1の欄を含む。ここで、セル番号配列は、使用可能なブロックの連続した配列を表す。選択されたセル番号のみがオフセットテーブル322内に列記される。オフセットテーブル322は、「全体のオフセット」と題された欄も含み、これは、所与のセル番号をシードとしてエラー検出および訂正モジュール310に渡され得る値に変換するために使用され得るオフセットを含む。
図3において、ホストコンピュータは、4つの名前4つの名前(例えば、Sarah、Jake、June、およびCharlie)を書き込むために、アクセスコマンド304をセル番号0、1、2、および3と関連付けられた4つのターゲットデータブロックに送信する。具体的には、ホストは、LBAを記憶デバイス306に送信し、記憶デバイスは、LBAを関連付けられたセル番号0〜3に変換する。現在の技術を用いて、記憶デバイスは、セル番号0〜3と関連付けられたデータが、それぞれ、物理インデックス0、2、3、および5に書き込まれ得ることを判定する。
データがその後にターゲットデータブロックのうちの1つから読み直されるとき、記憶デバイス306のオフセットルックアップモジュール320は、オフセットテーブル322にアクセスし、それぞれのセル番号と関連付けられたオフセットを読み出す。例示の図解において、オフセットルックアップモジュール320は、セル番号0と関連付けられたオフセット0、セル番号1および2と関連付けられたオフセット1、ならびにセル番号3と関連付けられたオフセット2を読み出す。それぞれのターゲットデータブロックのセル番号を関連付けられたオフセットに追加することによって、オフセットルックアップモジュール310は、エラー検出および訂正モジュール310に入力される(それぞれのターゲットデータブロックの)シード値を計算する。エラー検出および訂正モジュール310は、シード値を用いて、ターゲットデータブロックに記憶されたデータの完全性を確認する。その結果として、エラー検出および訂正モジュール310は、ECC値を計算し、かつそれをターゲットデータブロックに記憶されたECC値と比較することによって、データ内のエラーを検出および訂正することができる。計算されたECC値および記憶されたECC値が完全性条件を満たす場合(例えば、その値がある他の相関と一致するか、またはそれを満たす場合)、ターゲットデータブロックに書き込まれたデータの完全性が確認される。
例えば、「Jake」という名前が正しく書き込まれ、かつ正しいデータブロックに書き込まれることを確実にするために、(関連付けられたセル番号およびオフセットテーブル322からのオフセットとともに追加することによって計算された)物理インデックス2は、物理インデックス2(例えば、「Jake」)を有するセルに書き込まれたデータとともにエラー検出および訂正モジュール310に入力される。これらの入力を用いて、エラー検出および訂正モジュール310は、物理インデックス2(例えば、ECC2)を有するデータブロックに記憶されたECC値と一致するECC値(例えば、ECC2)を計算する。
エラー検出および訂正モジュール310とオフセットルックアップモジュール320は、両方ともに記憶デバイス306(例えば、ファームウェア)の内部にあるように図解されている。しかしながら、これらのモジュールのいずれかまたは両方は、記憶デバイス300と通信可能に接続された外部デバイスのソフトウェアまたはファームウェアでもあり得る。
図4は、エラー検出モジュールのシード値を計算するために使用され得るオフセットテーブルを作成するための例示の動作を図解する。指定動作405は、使用不可能なものとしてインデックス付き配列内のデータブロックを指定し、それぞれのデータブロックは、物理インデックスと関連付けられる。インデックス付き配列は、記憶デバイス上の使用可能なデータブロックおよび使用不可能なデータブロックの両方を含む配列である。一実装例において、記憶デバイス上のシーケンシャルデータブロックは、インデックス付き配列内の連続して増加する物理インデックスに割り当てられる。関連付け動作410は、セル番号をインデックス付き配列内の特定されたデータブロックの後の次の使用可能なデータブロックと関連付ける。記録動作415は、オフセットテーブル内に次の使用可能なデータブロックのセル番号に関連したオフセットを記録し、そのオフセットを使用して、次の使用可能なデータブロックのECC値を作成する。一実装例において、オフセットは、関連付けられたセル番号に追加されて、ECC値を計算するエラー検出および訂正モジュールのシード値を作成する。計算されたECC値および次の使用可能なデータブロック上で符号化されたECC値は、完全性条件を満たし、次の使用可能なデータブロックに書き込まれたデータの完全性を確実にする。
一実装例において、記録されたオフセットは、次の使用可能なデータブロックのセル番号と物理インデックスとの間の差分である。そのオフセットは、オフセットの影響を受けたインデックス付き配列内の第1のデータブロックに関連したオフセットテーブル内に記録され得る。一実装例において、インデックス付き配列内のデータブロックは、磁気ディスク上のデータトラックに沿った連続したセクタである。
一実装例において、例示の動作400は、記憶デバイスの最初の工場初期化中に行われる。動作405〜415は、工場で複数回繰り返され得、オフセットは、ディスク上のいくつかの選択的に除外された(すなわち、使用不可能な)データブロックのそれぞれに関連して記録され得る。
図5は、データブロックのセル番号がデータブロックに記憶されたECC値と一致しないときにデータブロックから読み取られたデータを確認するための例示の動作500を図解する。アクセス動作505は、セル番号に基づいて複数のデータブロックのインデックス付き配列を有する1つのデータブロックにアクセスし、インデックス付き配列内のそれぞれのデータブロックは、記憶されたECC値を含む。一実装例において、これらの複数のデータブロックのインデックス付き配列は、記憶デバイス内の連続したデータブロックの配列である。別の実装例では、これらの複数のデータブロックは、磁気媒体ディスク内のデータトラックに沿ったセクタである。
読み出し動作510は、データブロックのセル番号と関連付けられたオフセットを読み出す。一実装例において、読み出し動作510は、記憶デバイスのファームウェアに記憶され得るオフセットアクセステーブルにアクセスすることによってオフセットを読み出す。
生成動作515は、セル番号および読み出されたオフセットに基づいてECC値を生成する。一実装例において、判定動作515は、エラー検出および訂正モジュールをセル番号およびオフセットの合計でシード処理することによってECC値を生成する。
判定動作520は、生成されたECC値および記憶されたECC値が完全性条件を満たすかを判定する。一実装例において、完全性条件は、生成されたECC値および符号化されたECC値が等しい場合に満たされる。
図6は、ディスクアクセス動作中にターゲットデータブロックのインデックス付き配列内の1つ以上のデータブロックを選択的に除外するためのシステムの1つ以上の態様の実装に好適なコンピュータシステム600のブロック図を開示する。一実装例において、コンピュータシステム600は、オフセットテーブル作成モジュール、エラー検出および訂正モジュール、ならびに/またはエラー検出および訂正動作のためにオフセットを読み出してデータブロックと関連付けられたシードを計算するオフセットルックアップモジュールを有する記憶デバイスと通信可能に接続される。
コンピュータシステム600は、有形のコンピュータ可読記憶媒体に組み込まれたコンピュータプログラム製品を実行して、コンピュータプロセスを実行することができる。有形のコンピュータ可読記憶媒体は、搬送波または他の信号に組み込まれない。データおよびプログラムファイルは、それらのファイルを読み取り、かつ1つ以上のプロセッサを用いてその中のプログラムを実行するコンピュータシステム600に入力され得る。コンピュータシステムの要素のいくつかが図6に示されており、プロセッサ602は、入出力(I/O)部分604、中央処理装置(CPU)606、およびメモリ部分608を有するように示されている。コンピューティングシステム600のプロセッサ602が単一の中央処理装置606または複数の処理装置を備えるように、1つ以上のプロセッサ602が存在し得る。コンピューティングシステム600は、従来のコンピュータ、分散型コンピュータ、または任意の他の種類のコンピュータであり得る。記載される技術は、メモリ608、ディスク記憶装置612、または取り外し可能なメモリ618にロードされるソフトウェアに任意で実装される。
例示の実装例において、エラー検出および訂正モジュール、オフセットルックアップモジュール、ならびに/またはオフセットテーブル作成モジュールは、メモリ608および/または記憶装置612に記憶され、かつプロセッサ607によって実行される命令によって具現化され得る。さらに、ローカルコンピューティングシステム、リモートデータソースおよび/またはサービス、ならびに他の関連付けられた論理は、作業負荷タスクを適応的に分配して、システム性能を向上させるように構成され得るファームウェア、ハードウェア、および/またはソフトウェアを表す。エラー検出および訂正モジュール、オフセットルックアップモジュール、ならびに/またはオフセットテーブル作成モジュールは、汎用コンピュータおよび専門ソフトウェア(サービスソフトウェアを実行するサーバ等)、ならびに特殊用途のコンピューティングシステムおよび専門ソフトウェア(サービスソフトウェアを実行するモバイルデバイスまたはネットアプライアンス等)、または他のコンピューティング構成を用いて実装され得る。加えて、オフセットテーブル等のプログラムデータは、メモリ608および/または記憶装置612に記憶され、かつプロセッサ602によって実行され得る。
本明細書に記載の本発明の実装例は、1つ以上のコンピュータシステムにおける論理ステップとして実装される。本発明の論理動作は、(1)1つ以上のコンピュータシステムを実行するプロセッサ実装ステップの配列、および(2)1つ以上のコンピュータシステム内の相互接続した機械または回路モジュールとして実装される。実装例は、本発明を実装するコンピュータシステムの性能要件に応じて選択できる問題である。したがって、本明細書に記載の本発明の実施形態を構成する論理動作は、動作、ステップ、目的、またはモジュールと様々に称される。さらに、論理動作が、別途明確に特許請求されない限り、所望通りに追加および除外することによって任意の順序で行われ得るか、または特定の順序が特許請求言語によって本質的に必要とされることを理解されたい。
上述の明細書、実施例、およびデータは、本発明の例示的な実装例の構造および使用の完全な説明を提供する。本発明の多くの実装例が本発明の精神および範囲から逸脱することなく作成され得るため、本発明は、以下に添付された特許請求の範囲に属する。さらに、異なる実装例の構造的特徴は、列挙される特許請求の範囲から逸脱することなく、さらに別の実装例に組み込まれ得る。

Claims (20)

  1. セル番号に基づいて複数のデータブロックのインデックス付き配列内の1つのデータブロックにアクセスすることであって、前記インデックス付き配列内のそれぞれのデータブロックが、記憶されたECC値を含むことと、
    前記1つのデータブロックの前記セル番号と関連付けられたオフセットを読み出すことと、
    前記セル番号および前記オフセットに基づいてECC値を生成することと、
    前記生成されたECC値および前記記憶されたECC値が完全性条件を満たすかを判定することと、を含む、方法。
  2. エラー検出および訂正モジュールに、前記ECC値の生成のために、前記セル番号および前記オフセットに基づいた値であるシード値を与えることをさらに含む、請求項1に記載の方法。
  3. 前記エラー検出および訂正モジュールに前記シード値を与えることが、
    前記エラー検出および訂正モジュールに前記セル番号および前記オフセットの合計値である前記シード値を与えることを含む、請求項2に記載の方法。
  4. 前記オフセットが、記憶デバイスのファームウェアに記憶されたオフセットテーブルから読み出される、請求項1から請求項3のいずれか1項に記載の方法。
  5. 前記オフセットテーブルが、工場初期化動作中に作成される、請求項4に記載の方法。
  6. データブロックの前記インデックス付き配列が、磁気ディスク上のデータトラックに沿った連続したセクタである、請求項1から請求項5のいずれか1項に記載の方法。
  7. 前記インデックス付き配列が、記憶デバイス上のシーケンシャルデータブロックと関連付けられた連続して増加するインデックスを含む、請求項1から請求項6のいずれか1項に記載の方法。
  8. コンピュータシステム上でコンピュータプロセスを実行するためのコンピュータ実行可能命令を符号化した状態で記憶する、1つ以上の有形のコンピュータ可読記憶媒体であっ
    て、前記コンピュータプロセスが、
    セル番号に基づいて複数のデータブロックのインデックス付き配列内の1つのデータブロックにアクセスすることであって、前記インデックス付き配列内のそれぞれのデータブロックが、記憶されたECC値を含むことと、
    前記1つのデータブロックの前記セル番号と関連付けられたオフセットを読み出すことと、
    前記セル番号および前記オフセットに基づいてECC値を生成することと、
    前記生成されたECC値および前記記憶されたECC値が完全性条件を満たすかを判定することと、を含む、1つ以上の有形のコンピュータ可読記憶媒体。
  9. 前記コンピュータプロセスが、
    エラー検出および訂正モジュールに、前記ECC値の生成のために、前記セル番号および前記オフセットに基づいた値であるシード値を与えることをさらに含む、請求項8に記載の1つ以上の有形のコンピュータ可読記憶媒体。
  10. 前記オフセットが、記憶デバイスのファームウェアに記憶されたオフセットテーブルから読み出される、請求項8または請求項9に記載の1つ以上の有形のコンピュータ可読記憶媒体。
  11. 前記オフセットテーブルが、工場初期化動作中に作成される、請求項10に記載の1つ以上の有形のコンピュータ可読記憶媒体。
  12. データブロックの前記インデックス付き配列が、磁気ディスク上のデータトラックに沿った連続したセクタである、請求項8から請求項11のいずれか1項に記載の1つ以上の有形のコンピュータ可読記憶媒体。
  13. 前記インデックス付き配列が、記憶デバイス上のシーケンシャルデータブロックと関連付けられた連続して増加するインデックスを含む、請求項8から請求項12のいずれか1項に記載の1つ以上の有形のコンピュータ可読記憶媒体。
  14. インデックス付き配列内のデータブロックを有する記憶デバイスと、
    前記インデックス付き配列内のデータブロックのセル番号と関連付けられたオフセットを読み出すように構成されるオフセットルックアップモジュールであって、前記インデックス付き配列内のそれぞれのデータブロックが、記憶されたECC値を含む、オフセットルックアップモジュールと、
    エラー検出および訂正モジュールであって、
    前記セル番号および前記オフセットに基づいてECC値を生成することと、
    前記生成されたECC値および前記記憶されたECC値が完全性条件を満たすかを判定することと、
    を行うように構成される、エラー検出および訂正モジュールと、
    を備える、システム。
  15. 前記エラー検出および訂正モジュールがさらに、前記セル番号および前記オフセットの合計であるシードを用いて前記ECC値を生成するように構成される、請求項14に記載のシステム。
  16. 前記オフセットルックアップモジュールが、記憶デバイスのファームウェアに記憶されたオフセットテーブルから前記オフセットを読み出すように構成される、請求項14またたは請求項15に記載のシステム。
  17. 前記オフセットテーブルが、工場初期化動作中に作成される、請求項16に記載のシステム。
  18. データブロックの前記インデックス付き配列が、磁気ディスク上のデータトラックに沿った連続したセクタである、請求項14から請求項17のいずれか1項に記載のシステム。
  19. 前記インデックス付き配列が、記憶デバイス上のシーケンシャルデータブロックと関連付けられた連続して増加するインデックスを含む、請求項14から請求項18のいずれか1項に記載のシステム。
  20. 前記エラー検出および訂正モジュールが、前記生成されたECC値が前記記憶されたECC値と等しい場合に、前記完全性条件が満たされたと判定する、請求項14から請求項19のいずれか1項に記載のシステム。
JP2014043751A 2013-03-11 2014-03-06 エラー訂正コードシード処理のための方法およびシステムならびに記憶媒体 Active JP5824087B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/793,999 US9262264B2 (en) 2013-03-11 2013-03-11 Error correction code seeding
US13/793,999 2013-03-11

Publications (2)

Publication Number Publication Date
JP2014175001A JP2014175001A (ja) 2014-09-22
JP5824087B2 true JP5824087B2 (ja) 2015-11-25

Family

ID=51489443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014043751A Active JP5824087B2 (ja) 2013-03-11 2014-03-06 エラー訂正コードシード処理のための方法およびシステムならびに記憶媒体

Country Status (3)

Country Link
US (1) US9262264B2 (ja)
JP (1) JP5824087B2 (ja)
CN (1) CN104050052B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9400721B2 (en) * 2013-03-11 2016-07-26 Seagate Technology Llc Error correction code seeding
US20220407813A1 (en) * 2021-06-16 2022-12-22 Ampere Computing Llc Apparatuses, systems, and methods for implied sequence numbering of transactions in a processor-based system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04172662A (ja) 1990-11-05 1992-06-19 Matsushita Graphic Commun Syst Inc 記憶媒体欠陥管理方法
JPH0736789A (ja) 1993-07-16 1995-02-07 Matsushita Electric Ind Co Ltd 交替セクタ管理方式
US6115793A (en) 1998-02-11 2000-09-05 Ati Technologies, Inc. Mapping logical cache indexes to physical cache indexes to reduce thrashing and increase cache size
US6182196B1 (en) 1998-02-20 2001-01-30 Ati International Srl Method and apparatus for arbitrating access requests to a memory
JP2968790B1 (ja) 1998-08-25 1999-11-02 茨城日本電気株式会社 磁気ディスク装置のアドレス変換方法、磁気ディスク装置、アドレス変換プログラムを記録した記録媒体
KR100366644B1 (ko) 1998-12-30 2003-02-20 삼성전자 주식회사 지역별시작위치정보를저장하는기록매체와이정보를이용한데이터관리방법
US7253981B2 (en) 2002-04-26 2007-08-07 Seagate Technology, Llc Disc drive with reduced write latency
US20040003172A1 (en) 2002-07-01 2004-01-01 Hui Su Fast disc write mechanism in hard disc drives
TWI334132B (en) * 2006-04-21 2010-12-01 Mediatek Inc Error correction system and related method thereof
JP2009105536A (ja) * 2007-10-22 2009-05-14 Toshiba Corp Rds対応受信装置
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
KR101518199B1 (ko) * 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
JP2010123078A (ja) 2008-11-21 2010-06-03 Toshiba Storage Device Corp アクセス制御装置、アクセス制御方法および記憶装置
EP2413329B1 (en) 2010-07-28 2014-03-26 Fujitsu Semiconductor Europe GmbH Electronic apparatuses
US8479062B2 (en) * 2010-12-03 2013-07-02 International Business Machines Corporation Program disturb error logging and correction for flash memory
US9146683B2 (en) 2011-04-20 2015-09-29 Seagate Technology Llc Logical block address mapping
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
US8913335B2 (en) 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions
CN102323907A (zh) * 2011-08-19 2012-01-18 长安大学 嵌入式arm处理器对nandflash数据存储和删除方法

Also Published As

Publication number Publication date
US9262264B2 (en) 2016-02-16
CN104050052A (zh) 2014-09-17
US20140258810A1 (en) 2014-09-11
CN104050052B (zh) 2017-11-17
JP2014175001A (ja) 2014-09-22

Similar Documents

Publication Publication Date Title
US8578242B1 (en) Data storage device employing seed array for data path protection
US20140068208A1 (en) Separately stored redundancy
JP6422600B2 (ja) メモリにおけるストライプマッピング
JP5675954B2 (ja) メタデータタグを介した不規則なパリティ分布の検出
JP2015201204A (ja) データ記憶装置におけるデータ保全性管理
US10466913B2 (en) Method and system for replicating and using grid level metadata in a storage system
US10922234B2 (en) Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US20180157428A1 (en) Data protection of flash storage devices during power loss
US20130166991A1 (en) Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same
WO2017143843A1 (zh) 元数据修复方法及装置
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
US10574270B1 (en) Sector management in drives having multiple modulation coding
JP5824087B2 (ja) エラー訂正コードシード処理のための方法およびシステムならびに記憶媒体
JP2015138372A (ja) 書込検査プログラム,情報処理装置,及び書込検査方法
US7577804B2 (en) Detecting data integrity
US11115056B2 (en) Location selection based on erasure code techniques
RU2014106477A (ru) Способ и устройство обработки информации, и носитель записи
CN114253478B (zh) 一种计算raid校验盘位置的方法和装置
US20140215289A1 (en) Providing memory protection using a modified error correction code
US20120290905A1 (en) System and method for optimizing read-modify-write operations in a raid 6 volume
US20100251013A1 (en) Method for processing bad block in redundant array of independent disks
US9400721B2 (en) Error correction code seeding
US9043544B2 (en) Writing of new data of a first block size in a raid array that stores both parity and data in a second block size
JP2020113132A (ja) 制御装置、ディスクアレイ装置及びパトロール診断方法
US20150199236A1 (en) Multi-level disk failure protection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151008

R150 Certificate of patent or registration of utility model

Ref document number: 5824087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250