JP5523562B2 - ストレージデバイス内のエラーデータを追跡するシステムおよび方法 - Google Patents

ストレージデバイス内のエラーデータを追跡するシステムおよび方法 Download PDF

Info

Publication number
JP5523562B2
JP5523562B2 JP2012517703A JP2012517703A JP5523562B2 JP 5523562 B2 JP5523562 B2 JP 5523562B2 JP 2012517703 A JP2012517703 A JP 2012517703A JP 2012517703 A JP2012517703 A JP 2012517703A JP 5523562 B2 JP5523562 B2 JP 5523562B2
Authority
JP
Japan
Prior art keywords
checksum
error
data
errors
memory
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
JP2012517703A
Other languages
English (en)
Other versions
JP2012532372A (ja
JP2012532372A5 (ja
Inventor
アントニオ ジ・アブレウ,マニュエル
スカラ,スティーブン
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
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 サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2012532372A publication Critical patent/JP2012532372A/ja
Publication of JP2012532372A5 publication Critical patent/JP2012532372A5/ja
Application granted granted Critical
Publication of JP5523562B2 publication Critical patent/JP5523562B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータメモリシステムに関し、より詳しく言えば、データストレージデバイスのエラー検出およびエラー場所追跡に関する。
エラー検出訂正プロセスは、メモリストレージデバイスおよび通信チャネル内のデータの完全性の維持を促すプロセスである。例えば、エラー訂正コード(ECC)は、コンピュータメモリサブシステムの欠陥検出のために一般に使用される。ECCは、メモリの格納データに対して1つ以上のエラーを特定するための冗長データを含む。例えば、「ソフト」エラーは、典型的に、送電障害によって生じるのに対して、「ハード」エラーは、メモリデバイスが原因の場合もある。
ストレージデバイスの回路の縮小化および動作電圧の低下に伴い、エラーを特定し訂正するプロセスの精度および効率を高めることが必要とされている。
エラーを特定し訂正するための改良されたシステムおよび方法が開示される。メモリの領域に対してエラー場所セットを各々特定する多数のエラー訂正コード演算が実行されてもよい。エラー場所セットは、先行エラー場所と比較されてもよく、適切な動作が開始されてもよい。エラー場所セットは、例えば、チェックサムを介して、エラー場所情報を保存するように符号化されてもよい。エラー場所セットに関連するチェックサムが、各エラー訂正コード演算に対して決定されてもよい。2つ以上のチェックサムが、傾向を特定するために比較されてもよい。エラーをアドレス指定するための動作が、チェックサム比較の結果に基づいて、または検出された傾向を評価することによって開始されてもよい。
例えば、経時的に同じチェックサムは、劣化していないビットのハード障害を示しうる。経時的に場所を移動するエラーが決定されれば、エラーは、ハードウェア欠陥ではなく、伝送障害に起因する可能性がある。このようなエラーは、ECCの総数が変わらない限り管理されてもよい。エラーがワード線の端部で特定されれば、破損したワード線などのワード線欠陥が特定されうる。
エラーデータを追跡するために使用されてもよいデータストレージデバイスのブロック図である。 データストレージデバイスに関連づけられたエラーデータを追跡するために使用されてもよいシステムのブロック図である。 エラー訂正コード演算の第1のセットの結果を示す。 エラー訂正コード演算の第2のセットの結果を示す。 エラー訂正コード演算の第3のセットの結果を示す。 エラーデータを追跡する方法のフローチャートを示す。 エラーデータを追跡し格納する方法のフローチャートを示す。 エラーデータを追跡し評価する方法のフローチャートを示す。 エラーデータを特定し訂正する方法のフローチャートを示す。 複数のエラー訂正コード演算で発生したエラーによって示される傾向を特定する方法のフローチャートを示す。
図1を参照すると、エラーデータを追跡するために使用されてもよいデータストレージデバイスの例示的な実施形態が描かれ、概して100で示されている。データストレージデバイス100は、メモリアレイ104に連結されたコントローラ102を含む。コントローラ102は、メモリアレイ104から読み出されたデータに対応するエラー場所データを追跡および比較するように構成され、その比較に基づいて動作を開始してもよい。
メモリアレイ104は、フラッシュメモリなどの不揮発性メモリを含んでもよい。メモリアレイ104は、格納データ110を含む代表的なメモリ領域106を含む。メモリ領域106は、ワード線、メモリブロックまたはメモリページであってもよい。ワード線は、メモリアレイ104内の行方向の線を含んでもよい。メモリブロックが、消去可能メモリの最小単位を含んでもよい。メモリページが、書き込み可能なメモリの最小単位を含んでもよい。データ110は、格納データ110内のそれぞれの場所118に関連づけられた検出可能なエラー114を含む。
コントローラ102は、メモリアレイ104から読み出されたデータ112を戻す論理通信リンクを介してデータ110を読み出すために、メモリアレイ104にアクセスするように構成されてもよい。コントローラ102のエラー検出モジュール108が、多数のエラー114を検出し、データ110の読み出しに応答してエラー場所118を検出するように構成されてもよい。例えば、エラー検出モジュール108は、エラー訂正コード(ECC)エンジンを含んでもよい。
コントローラ102は、チェックサムジェネレータ120をさらに含んでもよい。チェックサムジェネレータ120は、エラー場所データ118に基づいてチェックサムを生成してもよい。例えば、チェックサムジェネレータ120は、第1および第2のエラー訂正コード(ECC)演算中に、エラー検出モジュール108によってそれぞれ生成されたエラー場所データ118の第1のチェックサム124および第2のチェックサム126を出力してもよい。第1のチェックサム124および第2のチェックサム126の各々は、エラー訂正コード演算のそれぞれに対する複数のエラーの各々に関連づけられた複数の場所に基づいたものであってもよい。あるいは、チェックサムジェネレータ120は、多入力シグネチャレジスタ(MISR:Multiple Input Signature Register )を含んでもよい。MISRを組み込むことで、ハードウェア要求を低下しうる。チェックサムジェネレータ120の別の例は、多項式ベースの回路を含んでもよい。多項式ベースの回路は、線形帰還シフトレジスタ(LFSR:Linear Feedback Shift Register)または組み合わせ論理を含んでもよい。チェックサムジェネレータの別の実施例は、累加算器として機能する加算器および累算器を備えた回路である。チェックサムジェネレータ120は、ECCエンジンの一部であってもよい。
第1のチェックサム124および第2のチェックサム126は、メモリアレイ104のログファイル122内に格納されてもよい。例えば、コントローラ102は、メモリアレイ104の各領域に対して経時的に生成されたチェックサムを格納してもよい。コントローラ102は、第1のチェックサム124および第2のチェックサム126の各々を異なるタイムスタンプに論理的に関連づけてもよい。例えば、タイムスタンプは、チェックサムの生成中のエラー訂正コード演算に対応してもよい。
演算中、コントローラ102は、メモリアレイ104のログファイル122から第1のチェックサム124および第2のチェックサム126を取得してもよい。コントローラ102は、第1のチェックサム124と第2のチェックサム126とをさらに比較してもよく、少なくとも部分的に、第1のチェックサム124と第2のチェックサム126との比較に基づいて、メモリ領域106に関連づけられた動作を開始してもよい。以下、図3〜図10に関して説明するように、動作の例には、データの移動、読み出しスクラブの開始、データのリフレッシュ、データブロックを不良データとして指定、データのモニタリングおよび複数のエラーのエラー訂正がありうる。
このように、図1は、それぞれのエラー訂正コード演算に対して複数のエラーの各々に関連づけられた複数の場所に各々基づくチェックサムを生成するためのデータストレージデバイス100を示す。第1のチェックサム124および第2のチェックサム126は、エラーデータを効率的に追跡および訂正するために比較される。エラー検出モジュール108およびチェックサムジェネレータ120が別々の要素として示されているが、エラー検出モジュール108およびチェックサムジェネレータ120は、同じ要素(例えば、ECC)に位置してもよい。さらに、第1のチェックサム124および第2のチェックサム126が、ログファイル122から取得されるように示されているが、図2に関して説明するように、他の実施形態において、第1のチェックサム124および第2のチェックサム126の1つ以上が、ログファイル122から取得されなくてもよい。
図2を参照すると、ストレージデバイスに関連づけられたエラーデータを追跡するために使用されてもよいシステムの例示的な実施形態が描かれ、概して200で示されている。システム200は、メモリアレイ204に連結されたコントローラ202を含む。コントローラ202はまた、ホストコンピューティングデバイス250に連結される。コントローラ202およびメモリアレイ204は、取り外し可能なデータストレージデバイスのコンポーネントであってもよい。コントローラ202は、先行する読み出し演算から保存されたエラー場所情報と比較して、データ読み出し演算から得られたエラー場所情報を比較することによって、メモリアレイ204の状態を追跡するように構成される。例えば、メモリアレイ204のログファイル216が、チェックサム履歴218を含んでもよい。 メモリアレイ204は、第1のメモリ領域206と、第2のメモリ領域208とを含む。第1のメモリ領域206は、メモリアレイ204のページまたはブロックを表すものであってもよい。
コントローラ202は、エラー検出モジュール220を含む。エラー検出モジュール220は、メモリアレイ204から読み出されたデータ212に応答して、多数のエラー214およびエラー場所222を検出するように構成されてもよい。エラー検出モジュール220は、ECCエンジンを含んでもよい。
コントローラ202はまた、エラー場所222を受信し、チェックサム226を生成するように構成されたチェックサムジェネレータ224を含む。チェックサムジェネレータ224は、MISRまたは別の多項式ベースの回路を含んでもよい。例えば、多項式ベースの回路は、LFSRまたは組み合わせ論理を用いて実装されてもよい。複数のエラー訂正コード演算中、チェックサムジェネレータ224は、メモリアレイ204の特定の領域に対応する複数のチェックサムを生成してもよい。チェックサム出力は、ログファイル216のチェックサム履歴218に格納され、その後、1つ以上の先行チェックサムとして取得されてもよい。各チェックサム(例えば、チェックサム226および先行チェックサム234)は、それぞれのエラー訂正コード演算に対してエラーの各々に関連づけられた複数の場所に基づいたものであってもよい。
コントローラ202はまた、エラー検出モジュール220に連結されたプロセッサ240を含む。プロセッサ240は、メモリアレイ204内のログファイル216に対してチェックサム226の格納を開始してもよく、メモリアレイ204内のログファイル216から先行チェックサム234の取得を開始してもよい。
プロセッサ240は、チェックサム226と先行チェックサム234とを比較するように構成されたチェックサム解析モジュール228を含む。プロセッサ240はまた、動作選択モジュール230を含む。動作選択モジュール230は、チェックサム226と先行チェックサム234との比較に基づいて複数の利用可能な動作232を自動的に開始するように構成される。動作の例には、データの移動、読み出しスクラブの開始、データのリフレッシュ、データブロックを不良データとして指定、データのモニタリングおよび1つ以上のエラーの訂正がある。一例として、チェックサム解析モジュール228は、チェックサム226および先行チェックサム234を取得し比較するように、プロセッサ240によって実行されてもよい。チェックサム解析モジュール228はまた、比較に基づいた結果を特定するように構成されてもよい。例えば、チェックサム解析モジュール228は、エラーが無相関であり、無作為であり、障害に起因することを比較から特定してもよい。別の例において、チェックサム解析モジュール228は、エラーが同様の場所のものであり、ハードエラーの可能性があることを特定してもよい。動作選択モジュール230は、チェックサム解析モジュール228からの結果を受信し、動作を選択的に開始するために、プロセッサ240によって実行されてもよい。
このように、図2は、ストレージデバイスに関連づけられたエラーに関する動作を追跡し、選択的に行うためのシステム200を示す。システム200により、効率的かつ正確なエラー追跡訂正が可能になる。
図3は、不良ストレージ要素を示す第1および第2のエラー訂正コード演算の結果の例を示す。エラー訂正コード演算は、ワード線または図1のデータ110など、メモリから読み出された別のデータに異なる時間で実行されてもよい。データ302は、第1のエラー訂正コード演算中に評価されてもよいエラー場所データの例である。例えば、データ302は、図1のエラー検出モジュール108によって生成されるエラー場所情報118であってもよく、図2のエラー検出モジュール220によって生成されたエラー場所情報222であってもよい。データ302は、メモリのストレージ要素に対応するメモリ要素の場所306、308、310、312、314、316、318、320および322を含む。一例として、エラー350は場所308に関連づけられ、エラー352は場所316に関連づけられる。
データ302は、図1のチェックサムジェネレータ120など、チェックサムジェネレータ342によって受信されてもよい。チェックサムジェネレータ342は、エラー350、352に関連づけられた場所308、316に基づいて、図1の第1のチェックサム124などのチェックサム344を生成してもよい。図に示したように、チェックサム344は、2進数「1011」に等しく、この値は10進数「11」に等しい。
データ304は、第2のエラー訂正コード演算中に評価されてもよい。データ304は、ビット場所324、326、328、330、332、334、336、338および340を含む。エラー354が場所326に関連づけられ、エラー356が場所334に関連づけられる。
データ304は、図1のチェックサムジェネレータ120などのチェックサムジェネレータ346によって受信されてもよい。チェックサムジェネレータ346は、エラー354、356に関連づけられた場所326、334に基づいて、図1の第1のチェックサム124などのチェックサム348を生成してもよい。図に示したように、チェックサム348は、2進数「1011」に等しく、この値は10進数「11」に等しい。
370において、チェックサム344、348は、データ302およびデータ304のエラーが同じ場所にあるため、不良ストレージ要素を特定するために比較されてもよい。チェックサム342がチェックサム346と等しいことによって、不良ストレージ要素が示されうる。例えば、エラー350、352、354、356は、第1および第2のエラー訂正コード演算のデータ302、304内の同じ相対場所308、316、326、334を有するエラー350、352、354、356に基づいてハードエラーであるように決定されてもよい。
このように、図3は、エラー350、352、354、356および関連する場所308、316、326、334を決定するために用いられる第1および第2のエラー訂正コード演算を示す。エラー場所308、316、326、334に基づいて算出されたチェックサム344、348は、エラー308、316、326、334の場所が両方のエラー訂正コード演算において同じであることを決定するために比較されてもよい。エラー350、352、354、356の同じ相対場所308、316、326、334は、ハードエラーの存在を示すものであってもよい。
図4は、ランダムエラーを示す第1および第2のエラー訂正コード演算の結果の例を示す。エラー訂正コード演算は、図1のデータ110など、データ要素に異なる時間で実行されてもよい。データ402は、第1のエラー訂正コード演算中に評価されてもよい。例えば、データ402は、図1のエラー検出モジュール108によって生成されたエラー場所情報118、または図2のエラー検出モジュール220によって生成されたエラー場所情報222であってもよい。データ402は、メモリのストレージ要素に対応するビット場所406、408、410、412、414、416、418、420および422を含む。エラー450が場所408に関連づけられ、エラー452が場所410に関連づけられ、エラー454が場所416に関連づけられる。
データ402は、図1のチェックサムジェネレータ120など、チェックサムジェネレータ442によって受信されてもよい。チェックサムジェネレータ442は、エラー450、452および454に関連づけられた場所408、410および416に基づいて、図1の第1のチェックサム124などのチェックサム444を生成してもよい。図に示したように、チェックサム444は2進値「1100」に等しく、この値は10進値「12」に相当する。データ404は、第2のエラー訂正コード演算中に評価されてもよい。データ404は、ビット場所424、426、428、430、432、434、436、438および440を含む。エラー456が場所424に関連づけられ、エラー458が場所430に関連づけられる。
データ404は、図1のチェックサムジェネレータ120など、チェックサムジェネレータ446によって受信されてもよい。チェックサムジェネレータ446は、エラー456、458に関連づけられた場所424、430に基づいて、図1の第1のチェックサム124などのチェックサム448を生成してもよい。図に示したように、チェックサム448は2進値「0100」に等しく、この値は10進値「4」に相当する。
470において、チェックサム444、448は、エラーをランダムとして特定するために比較されてもよい。チェックサム444の10進値「12」とチェックサム448の10進値「4」との間の不一致は、無相関のランダムエラーを示しうる。エラー450、452、454、456は、第1および第2のエラー訂正コード演算の両方のデータ402、404内に異なる相対場所408、416、426、434を有するエラー450、452、454、456に基づいてランダムエラーであるように決定されてもよい。また、チェックサム444とチェックサム448との差が、エラー場所が異なることを特定するために、しきい値と比較されてもよい。
このように、図4は、エラー450、452、454、456および関連する場所408、416、426、434を決定するために用いられる第1および第2のエラー訂正コード演算を示す。エラー場所408、416、426、434に基づいて算出されたチェックサム444、448は、エラー408、416、426、434の場所が両方のエラー訂正コード演算において異なることを決定するために比較されてもよい。
図5は、第1および第2のエラー訂正コード演算の結果の例を示す。第1および第2のエラー訂正演算は、データ502の端部分付近のエラー550、552、554の場所が、データ504の端部分付近に位置するエラー558、560、562に同様に分散されることを示す。エラー訂正コード演算は、ワード線または図1のデータ110など、メモリから読み出された他のデータに異なる時間で実行されてもよい。データ502は、第1のエラー訂正コード演算中に評価されてもよい。例えば、データ502は、図1のエラー検出モジュール108によって生成されるエラー場所情報118であってもよく、図2のエラー検出モジュール220によって生成されたエラー場所情報222であってもよい。データ502は、メモリのストレージ要素に対応するメモリ要素の場所506、508、510、512、514、516、518、520および522を含む。エラー550が場所506に関連づけられ、エラー552が場所508に関連づけられる。第3のエラー554は場所512にあり、第4のエラー556は場所516にある。
データ502は、図1のチェックサムジェネレータ120などのチェックサムジェネレータ542によって受信されてもよい。チェックサムジェネレータ542は、エラー550、552、554および556に関連づけられた場所506、508、512および516に基づいて、図1の第1のチェックサム124などのチェックサム544を生成してもよい。図に示したように、チェックサム544は2進値「1110」を含み、この値は10進値「14」に相当する。
データ504は、第2のエラー訂正コード演算中に評価されてもよい。データ504は、ビット場所524、526、528、530、532、534、536、538および540を含む。エラー558が場所524に関連づけられ、エラー560が場所526に関連づけられる。エラー562が場所530に関連づけられ、エラー564が場所540に関連づけられる。
データ504は、図1のチェックサムジェネレータ120など、チェックサムジェネレータ546によって受信されてもよい。チェックサムジェネレータ546は、エラー558、560、562および564に関連づけられた場所524、526、530および540に基づいて、図1の第1のチェックサム124などのチェックサム548を生成してもよい。図に示したように、チェックサム548は2進値「1101」を含み、この値は10進値「13」に相当する。
570において、チェックサム544、548は、不良ワード線を特定するために比較されてもよい。両方のチェックサム544、548は、比較的大きな値を含む。ほとんどのエラーは、ワード線の同じ端部に存在する。データ502のエラー550、552、554は、両方の第1および第2のエラー訂正コード演算中に評価されるとき、データ504の同様に位置するエラー558、560、562に基づいて不良ワード線に関連づけられるように決定されてもよい。
このように、図5は、エラー550、552、554、556、558、560、562および564および関連する場所506、508、512、516、524、526、530および540を決定するために用いられた第1および第2のエラー訂正コード演算を示す。エラー場所506、508、512、516、524、526、530および540に基づいて算出されたチェックサム544、548は、エラー550、552、554、558、560および562の場所が、両方のエラー訂正コード演算においてデータ502、504の同様の部分に集中していることを決定するために比較されてもよい。エラー550、552、554、558、560および562の同じ相対場所506、508、512、524、526および530は、不良ワード線から得られるハードエラーの存在を示すものであってもよい。
当業者であれば、図3〜図5が説明をしやすくするために簡略化されていることを認識するはずである。図3〜図5は、いくつかあるパラメータの中でも特に、正確な値またはデータワードサイズを必ずしも示しているわけではない。結果的に、実施形態は、これらの例示的な実施例に限定されない。
図6は、エラーデータを追跡する方法600のフローチャートを示す。図6の方法600は、図1のコントローラ102または図2のコントローラ202など、メモリにアクセスするコンピューティングシステムによって実行されてもよい。602において、複数のエラーの各々にそれぞれ関連づけられた複数のエラーおよび複数の場所を特定するために、エラー訂正コード演算が実行されてもよい。例えば、図1のコントローラ102は、メモリアレイ104からデータ110を取得してもよい。データ110は、エラー検出モジュール108に出力されてもよい。場所にそれぞれ関連づけられたエラー114を特定するために、第1の時間に第1のエラー検出演算をエラー検出モジュール108に実行させるように制御信号が生成されてもよい。
604において、複数のエラーの各々に関連づけられた複数の場所に基づいて、チェックサムが生成されてもよい。例示するために、図1のチェックサムジェネレータ120は、エラー場所データ118を受信し、検出されたエラー114に関連づけられた場所に基づいて第1のチェックサム124を生成してもよい。
606において、メモリアレイから第2のチェックサムが取得されてもよい。例示するために、第2のチェックサムは、図2の先行チェックサム234であってもよい。第2のチェックサムは、第1のチェックサムとして同じメモリ領域からの先行データ読み出し演算に相当するものであってもよい。
第1のチェックサムおよび第2のチェックサムは、608で比較されてもよい。例えば、図1のコントローラ102は、第1のチェックサム124と第2のチェックサム126とを比較してもよい。別の実施例において、図2のチェックサム解析モジュール228は、チェックサム226と先行チェックサム234とを比較してもよい。
610において、第1のチェックサムと第2のチェックサムとの差が小さいかに関する決定がなされてもよい。例えば、図1のコントローラ102は、第1のチェックサム124と第2のチェックサム126との差が小さいかを決定してもよい。
第1のチェックサムと第2のチェックサムとの決定された差が小さい場合、610において、場所情報が評価されてもよい。例えば、図1のコントローラ102は、エラーの場所に基づいて、第1のチェックサム124と第2のチェックサム126との差を決定してもよい。図3に示すように、第1のエラーコード演算におけるエラー350の場所308は、第2のエラーコード演算におけるエラー354の場所326と同じであってもよい。あるいは、図4に示すように、第1のエラーコード演算におけるエラー450の場所408は、第2のエラーコード演算のエラー456の場所424とは異なるものであってもよい。第1のチェックサムと第2のチェックサムとの差が小さいかを決定することは、差をしきい値と比較することを含んでもよい。しきい値は、特定のチェックサム生成タイプの場所符号化特性に基づいて設定されてもよい。
場所情報は、612において、不良の可能性のあるワード線を特定するために評価されてもよい。例えば、エラーが、ワード線の端部付近に一貫して集中していることが決定されてもよい。例示するために図5を用いながら、第1のエラーコード演算におけるエラー550、552、554の場所506、508、512は、第2のエラーコード演算におけるエラー558、560、562に関連づけられた場所524、526、530に類似してもよい。ワード線の一端で繰り返し起こるエラーは、不良ワード線を示しうる。
614において、欠陥ストレージ要素を有するものとしてメモリ領域が特定されてもよい。例えば、図1のコントローラ102は、格納されたデータストリング内に欠陥セルを有するものとしてメモリ領域106を特定してもよい。図3に示すように、特定のメモリ場所で繰り返し起こるエラーは、不良メモリセルを示しうる。
616において、データ内の場所はモニタリングされてもよい。例えば、図1のコントローラ102は、後のエラー発生に備えて検出されたエラー114に対応する場所をモニタリングしてもよい。
618において、第1のチェックサムと第2のチェックサムとの差が大きいかに関する決定がなされてもよい。例えば、図1のコントローラ102は、第1のチェックサム124と第2のチェックサム126との差が大きいかを決定してもよい。差が大きいかを決定することは、差をしきい値と比較することを含んでもよい。しきい値は、特定のチェックサム生成タイプの場所符号化特性に基づいて設定されてもよい。
618において、第1のチェックサムと第2のチェックサムとの決定された差が大きい場合、620において、複数のエラーのうちのあるエラーがランダムであるかを決定するために、場所情報が評価されてもよい。例えば、図1のコントローラ102は、検出されたエラー114が、第1のチェックサム124と第2のチェックサム126との差に基づいてランダムであることを決定してもよい。
622において、エラーがランダムであるという決定に応答して、動作が開始されなくてもよい。624において、第1のチェックサムは格納されてもよい。例えば、図2のコントローラ102は、メモリアレイ104のログファイル122内に第1のチェックサム124を格納してもよい。
このように、図6は、エラーデータを追跡するために用いられる方法600を示す。第1のチェックサムおよび第2のチェックサムが生成され比較される。チェックサムは、ワード線または他のデータストリング内の検出されたエラーの場所に基づいて生成される。チェックサムの比較によって、チェックサム間の差が大きいかまたは小さいかを決定してもよい。小さな差は欠陥ストレージ要素を示しうるのに対して、大きな差はランダムエラーを示しうる。検出されたエラーがランダムであると決定されれば、動作を起こさないように決定がなされてもよい。
図7は、エラーデータを追跡し格納する方法700のフローチャートを示す。図7の方法700は、図1のコントローラ102または図2のコントローラ202など、メモリにアクセスするコンピューティングシステムによって実行されてもよい。702において、第1の複数の場所にそれぞれ関連づけられた第1の複数のエラーを特定するために、第1のエラー訂正コード演算が第1の時間で実行されてもよい。例えば、第1の複数の場所のうちのある場所が、不揮発性データストレージデバイス内のページまたはブロックのビット位置を含む。第1のエラー訂正コード演算は、不揮発性データストレージデバイス内においてコントローラで実行されてもよい。例えば、図2のコントローラ202は、メモリアレイ204からデータ212を取得してもよい。データ212は、エラー検出モジュール220に出力されてもよい。第1の複数の場所にそれぞれ関連づけられたエラー214を特定するために、第1の時間で第1のエラー検出演算をエラー検出モジュール220に実行させるように制御信号が生成されてもよい。
704において、第2の複数の場所にそれぞれ関連づけられた第2の複数のエラーを特定するために、第2のエラー訂正コード演算が第2の時間で実行されてもよい。例示するために、図2のコントローラ202は、メモリアレイ204からデータを再度取得してもよい。データは、エラー検出モジュール220に出力されてもよい。第2の複数の場所にそれぞれ関連づけられたエラーを特定するために、第2の時間で第2のエラー検出演算をエラー検出モジュール220に実行させるように制御信号が生成されてもよい。
706において、不揮発性データストレージデバイス内のメモリアレイのログファイル内に、第1の複数の場所に相関された第1のデータおよび第2の複数の場所に相関された第2のデータが格納されてもよい。第1のデータは、第1の複数の場所の第1のチェックサムを含んでもよく、第2のデータは、第2の複数の場所の第2のチェックサムを含んでもよい。例えば、図2のコントローラ202は、メモリアレイ204のログファイル216内にチェックサム履歴データ218を格納してもよい。
このように、図7は、第1のエラー訂正コード演算および第2のエラー訂正コード演算を実行する方法700を示す。各演算は、場所に関連づけられたエラーを特定してもよい。場所に相関されたデータは、訂正するためのエラーを効率的に特定する際に使用するためにメモリ内に格納されてもよい。
図8は、エラーデータを追跡し評価する方法800のフローチャートを示す。図8の方法800は、図1のコントローラ102または図2のコントローラ202など、コンピューティングシステムによって実行されてもよい。802において、第1のエラー訂正コード演算の第1の複数のエラー場所に関連づけられた第1のチェックサムが受信されてもよい。第1のエラー訂正コード演算は、メモリアレイの領域内のエラーを訂正することに関連づけられてもよい。また、第2のエラー訂正コード演算の第2の複数のエラー場所に関連づけられた第2のチェックサムが受信されてもよい。例えば、図2のコントローラ202は、メモリアレイ204のログファイル216から第1のチェックサム226および先行チェックサム234を受信してもよい。
804において、第1のチェックサムは、第2のチェックサムに比較されてもよい。例えば、図2のチェックサム解析モジュール228は、チェックサム226と先行チェックサム234とを比較してもよい。
806において、メモリアレイの領域内のエラーがランダムであるかの決定がなされてもよい。例示するために、図2のチェックサム解析モジュール228は、エラーがランダムであるかを決定するためにチェックサムデータ226を評価してもよい。
808において、エラーがランダムであるという決定に応答して、動作が開始されなくてもよい。810において、メモリアレイの領域への動作が、比較の結果に基づいて開始されてもよい。第1のチェックサムと第2のチェックサムとの比較に基づいた複数の利用可能な動作の1つが実行されてもよい。例えば、図2の動作選択モジュール230は、データ212の移動、読み出しスクラブの開始、データのリフレッシュ、データ212のブロックを不良として指定、データ212のモニタリングまたはエラー214の訂正動作の開始を行うものであってもよい。
このように、図8は、第1および第2のエラー訂正コード演算のエラー場所に関連づけられたチェックサムを受信することを含む方法800のフローチャートを示す。チェックサムは、エラーがランダムであるかを決定するために比較されてもよい。エラーがランダムでない場合、訂正動作が開始されてもよい。
図9は、エラーデータを追跡しアドレス指定する方法900のフローチャートを示す。図9の方法900は、図1のコントローラ102または図2のコントローラ202など、コンピューティングシステムによって実行されてもよい。902において、メモリから第1のチェックサムが取得されてもよい。第1のチェックサムは、メモリ領域の第1のエラー場所セットに関連づけられてもよい。第1のエラー場所セットのうちのあるエラー場所が、不揮発性データストレージデバイス内のページまたはブロックのビット位置を含んでもよい。例えば、図1のコントローラ102は、メモリアレイ114のログファイル122から第1のチェックサム124を取得してもよい。第1のチェックサム124は、メモリ領域106のエラー場所に関連づけられてもよい。
904において、第1のチェックサムは、メモリ領域の第2のエラー場所セットに関連づけられた第2のチェックサムに比較されてもよい。例えば、図2のチェックサム解析モジュール228は、チェックサム226と先行チェックサム234とを比較してもよい。
906において、比較の結果に基づいてメモリ領域に対して動作が開始されてもよい。例えば、図2の動作選択モジュール230は、データの結果に基づいて動作を開始してもよい。第1のチェックサムと第2のチェックサムとの決定された差が小さいとき、第1の動作が開始されてもよい。例示するために、決定された差が小さいということは、エラー場所が同様のものであることを示しうる。第1のチェックサムと第2のチェックサムとの決定された差が大きいとき、第2の動作が開始されてもよい。一例において、決定された差が大きいということは、エラー場所の差が大きいことを示しうる。
908において、複数の利用可能な動作の1つが実行されてもよい。例えば、図2の動作選択モジュール230は、コントローラ202にデータ212を移動させ、データ212のブロックを不良であると指定し、データ212をモニタリングし、読み出しスクラブを実行し、データをリフレッシュし、またはエラー214の訂正を行うためのプロセスを実行する動作を開始してもよい。
図9は、エラーを特定し訂正する方法900のフローチャートを示す。エラー場所に関連づけられたチェックサムを取得し比較する。エラーを訂正するための動作が、比較の結果に基づいて開始されてもよい。
図10は、エラーデータを追跡しアドレス指定する方法1000のフローチャートを示す。図10の方法1000は、図1のコントローラ102または図2のコントローラ202など、コンピューティングシステムによって実行されてもよい。1002において、第1のエラー訂正コード演算の第1の複数のエラー場所に関連づけられた第1のチェックサムが受信されてもよい。例えば、図2のチェックサム解析モジュール228は、チェックサムジェネレータ224からチェックサム226を受信してもよい。
また、1004において、第2のエラー訂正コード演算の第2の複数のエラー場所に関連づけられた第2のチェックサムが受信されてもよい。例えば、図2のコントローラ202は、メモリアレイ204のログファイル216から先行チェックサム234を取得してもよい。
1006において、第1のチェックサムは、第2のチェックサムに比較されてもよい。例えば、図2のチェックサム解析モジュール228は、チェックサム226と先行チェックサム234とを比較してもよい。
1008において、比較の結果に基づいてメモリ領域に対して動作が開始されてもよい。例えば、図2の動作選択モジュール230は、データの結果に基づいて動作を開始してもよい。
1010において、第3のエラー訂正コード演算の第3の複数のエラー場所に関連づけられた第3のチェックサムが受信されてもよい。また、第4のエラー訂正コード演算の第4の複数のエラー場所に関連づけられた第4のチェックサムが受信されてもよい。例えば、図2のチェックサム解析モジュール228は、メモリアレイ204のログファイル216のチェックサム履歴218から第3および第4のチェックサムを受信してもよい。
1012において、傾向を特定するために、第1のチェックサム、第2のチェックサム、第3のチェックサムおよび第4のチェックサムが使用されてもよい。例示するために、図2のチェックサム解析モジュール228は、傾向を特定するためにチェックサム履歴218から取得されてもよい。例えば、チェックサム解析モジュール240は、多数のエラーが一貫して起こるか、または同じ相対場所に集中していることを決定してもよい。
1014において、傾向に基づいて動作が開始されてもよい。例えば、図2の動作選択モジュール230は、データを移動し、読み出しスクラブを開始し、データブロックを不良であると指定し、データをモニタリングし、またはエラーを訂正するための動作を開始してもよい。
図10は、一連のエラー訂正コード演算で生じたエラーが示す傾向を特定する方法1000のフローチャートを示す。特定された傾向は、適切な訂正動作を開始するために使用されてもよい。
開示された実施形態の態様は、エラーの総数だけではなく、エラーの場所を評価することによってエラーの特定精度を上げうる。このようにして、プロセスは、エラー総数が一定のままの場合でも、場所を移動するエラーを特定しうる。
開示された実施形態の他の態様は、各読み出し演算で起こるECC訂正に基づいたデータを使用してエラーを追跡しうる。追跡されたエラーデータは、エラー場所および複数のエラーの両方を含みうる。追跡された複数のエラーは、消耗および欠陥をモニタリングするために使用されてもよく、エラー場所データは、障害検出に使用されてもよい。
開示された実施形態の他の態様は、1つ以上のエラー場所に基づいて、複数のチェックサムを生成してもよい。例えば、メモリの各ページに対して、4つのチェックサムが集められてもよい。チェックサムが決定され、追跡用ログファイル内に含められてもよい。
本願明細書に示されたさまざまなコンポーネントは、ブロックコンポーネントとして例示され、一般論として記載されているが、このようなコンポーネントは、1つ以上のマイクロプロセッサ、状態マシン、または図1のデータエラー検出モジュール108およびチェックサムジェネレータ120、および図2のエラー検出モジュール220、チェックサムジェネレータ224、チェックサム解析モジュール228および動作選択モジュール230が、このようなコンポーネントまたはそれらの任意の組み合わせによって生じる特定の機能を実行できるように構成された他の回路を含んでもよい。例えば、図1のエラー検出モジュール108、チェックサムジェネレータ120またはそれらの両方は、ハードウェアコントローラ、状態マシン、論理回路または図1のデータストレージデバイス100にエラーデータを追跡させる他の構造などの物理コンポーネントであってもよい。
データストレージデバイス100は、1つ以上の外部デバイスに選択的に連結されるように構成されたポータブルデバイスであってもよい。しかし、他の実施形態において、データストレージデバイス100は、ポータルブル通信デバイスのハウジング内など、1つ以上のホストデバイス内に取り付けられるかまたは埋め込まれてもよい。例えば、データストレージデバイス100は、無線電話、携帯用情報端末(PDA)、ゲーム機またはゲームコンソール、ポータブルナビゲーションデバイスまたは内部不揮発性メモリを使用する他のデバイスなどのパッケージ装置内にあってもよい。特定の実施形態において、データストレージデバイス100は、フラッシュメモリ(例えば、NAND、NOR、マルチレベルセル(MLC)、分割ビット線NOR(DINOR:Divided bit-line NOR)、AND、高容量結合率(HiCR)、非対称コンタクトレストランジスタ(ACT:asymmetrical contactless transistor )または他のフラッシュメモリ)、消去可能でプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、読み出し専用メモリ(ROM)、ワンタイムプログラマブルメモリ(OTP)または任意の他のタイプのメモリなどの不揮発性メモリを含む。
本願明細書に記載した実施形態の説明は、種々の実施形態を一般的に理解するために与えることを意図したものである。本開示から他の実施形態が利用され導き出されてもよく、本開示の範囲から逸脱することなく、構造的および論理的な代替および変更がなされてもよい。本開示は、種々の実施形態の任意およびすべての後続の適応または変更に及ぶように意図される。以上のことから、本開示および図面は、制限的なものではなく例示的なものとして見なされるべきものである。
前に開示された主題は、制限的ではなく例示的なものとして見なされるべきであり、添付の特許請求の範囲は、本開示の範囲内にあるこのようなすべての修正例、改良例および他の実施形態に及ぶように意図される。このようにして、法によって認められる最大限の範囲において、本発明の範囲は、以下の特許請求の範囲およびその均等物を最大限に幅広く解釈することによって決定されるべきであり、前述した詳細な説明によって制約または制限されるものではない。

Claims (6)

  1. エラーデータを追跡する方法であって、
    メモリから読み出されたデータを受信するステップと、
    複数のエラーおよび複数の場所を特定するために、受信したデータにエラー検出演算を実行するステップであって、複数のエラーの各エラーが複数の場所の対応する場所に関連づけられるステップと、
    複数のエラーの各々に関連づけられた複数の場所に基づいて、チェックサムを生成するステップと、
    前記チェックサムを前記メモリに格納するステップと、
    第1の時間に実行された第1のエラー検出演算に基づいて第1のチェックサムを格納し、第2の時間に実行された第2のエラー検出演算に基づいて第2のチェックサムを格納するステップと、
    前記第1のチェックサムと前記第2のチェックサムとを比較するステップと、
    前記第1のチェックサムと前記第2のチェックサムとの決定された差が第1の所定のしきい値を満たす場合、第1の動作を開始し、前記第1のチェックサムと前記第2のチェックサムとの決定された差が第2の所定のしきい値を満たす場合、第2の動作を開始するステップと、
    を含む方法。
  2. エラーデータを追跡する方法であって、
    メモリから読み出されたデータを受信するステップと、
    複数のエラーおよび複数の場所を特定するために、受信したデータにエラー検出演算を実行するステップであって、複数のエラーの各エラーが複数の場所の対応する場所に関連づけられるステップと、
    複数のエラーの各々に関連づけられた複数の場所に基づいて、チェックサムを生成するステップと、
    前記チェックサムを前記メモリに格納するステップと、
    第1の時間に実行された第1のエラー検出演算に基づいて第1のチェックサムを格納し、第2の時間に実行された第2のエラー検出演算に基づいて第2のチェックサムを格納するステップと、
    前記第1のチェックサムと前記第2のチェックサムとを比較するステップと、
    前記メモリの不良の可能性のあるワード線を特定するために、前記第1のチェックサムと前記第2のチェックサムとの決定された差が第1の所定のしきい値を満たす場合、前記第1のチェックサムおよび前記第2のチェックサムのうちの少なくとも1つによって表される場所情報を評価するステップと、
    を含む方法。
  3. 請求項2記載のエラーデータを追跡する方法であって、
    前記メモリの不良の可能性のあるワード線が、前記不良の可能性のあるワード線ノズルの一端に、複数のエラーのすべてが生じていることを示す場所情報に基づいて特定される方法。
  4. エラーデータを追跡する方法であって、
    メモリから読み出されたデータを受信するステップと、
    複数のエラーおよび複数の場所を特定するために、受信したデータにエラー検出演算を実行するステップであって、複数のエラーの各エラーが複数の場所の対応する場所に関連づけられるステップと、
    複数のエラーの各々に関連づけられた複数の場所に基づいて、チェックサムを生成するステップと、
    前記チェックサムを前記メモリに格納するステップと、
    第1の時間に実行された第1のエラー検出演算に基づいて第1のチェックサムを格納し、第2の時間に実行された第2のエラー検出演算に基づいて第2のチェックサムを格納するステップと、
    前記第1のチェックサムと前記第2のチェックサムとを比較するステップと、
    前記第1のチェックサムと前記第2のチェックサムとの差が第2の所定のしきい値を満たすという決定に応答して、複数のエラーのうちのあるエラーがランダムであるかを決定するステップと、
    を含む方法。
  5. 請求項4記載の方法において、
    前記エラーがランダムであるという決定に応答して、動作を開始しないステップをさらに含む方法。
  6. エラーデータを追跡する方法であって、
    メモリ領域の第1のエラー場所セットに関連づけられた第1のチェックサムをメモリから取得するステップと、
    前記第1のチェックサムと、前記メモリ領域の第2のエラー場所セットに関連づけられた第2のチェックサムとを比較して、比較結果をもたらすステップと、
    前記比較結果に基づいて、前記メモリ領域に対して動作を開始するステップと、
    前記第1のチェックサムと前記第2のチェックサムとの決定された差が第1の所定のしきい値を満たす場合、第1の動作を開始し、前記第1のチェックサムと前記第2のチェックサムとの決定された差が第2の所定のしきい値を満たす場合、第2の動作を開始するステップと、
    を含む方法。
JP2012517703A 2009-06-29 2010-06-23 ストレージデバイス内のエラーデータを追跡するシステムおよび方法 Active JP5523562B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/494,186 US8255773B2 (en) 2009-06-29 2009-06-29 System and method of tracking error data within a storage device
US12/494,186 2009-06-29
PCT/US2010/039699 WO2011002656A1 (en) 2009-06-29 2010-06-23 System and method of tracking error data within a storage device

Publications (3)

Publication Number Publication Date
JP2012532372A JP2012532372A (ja) 2012-12-13
JP2012532372A5 JP2012532372A5 (ja) 2013-05-30
JP5523562B2 true JP5523562B2 (ja) 2014-06-18

Family

ID=42340746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517703A Active JP5523562B2 (ja) 2009-06-29 2010-06-23 ストレージデバイス内のエラーデータを追跡するシステムおよび方法

Country Status (7)

Country Link
US (1) US8255773B2 (ja)
EP (4) EP2530595B1 (ja)
JP (1) JP5523562B2 (ja)
KR (1) KR20120051606A (ja)
CN (1) CN102804146B (ja)
TW (1) TWI505277B (ja)
WO (1) WO2011002656A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683456B2 (en) 2009-07-13 2014-03-25 Apple Inc. Test partitioning for a non-volatile memory
JP5421152B2 (ja) * 2010-03-08 2014-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路
US8650446B2 (en) * 2010-03-24 2014-02-11 Apple Inc. Management of a non-volatile memory based on test quality
US8645776B2 (en) * 2010-03-24 2014-02-04 Apple Inc. Run-time testing of memory locations in a non-volatile memory
US8751903B2 (en) 2010-07-26 2014-06-10 Apple Inc. Methods and systems for monitoring write operations of non-volatile memory
US8640006B2 (en) * 2011-06-29 2014-01-28 International Business Machines Corporation Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis
WO2014018060A1 (en) * 2012-07-27 2014-01-30 Hewlett-Packard Development Company, L.P. Systems and methods for detecting a dimm seating error
US8914696B2 (en) 2012-08-29 2014-12-16 Seagate Technology Llc Flash memory read scrub and channel tracking
DE102012020442B4 (de) * 2012-10-18 2020-03-05 Robert Bosch Gmbh Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
US10102003B2 (en) * 2012-11-01 2018-10-16 International Business Machines Corporation Intelligent context management
US10078518B2 (en) * 2012-11-01 2018-09-18 International Business Machines Corporation Intelligent context management
CN103092717B (zh) * 2013-01-18 2016-03-02 深圳市硅格半导体有限公司 闪存的数据处理方法及装置
US8972776B2 (en) 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
CN104750569A (zh) * 2013-12-30 2015-07-01 深圳市中兴微电子技术有限公司 一种实现数据纠错的方法及装置
US9436434B2 (en) * 2014-03-14 2016-09-06 International Business Machines Corporation Checksum adder
DE102014208609A1 (de) * 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
US9087012B1 (en) 2014-06-04 2015-07-21 Pure Storage, Inc. Disaster recovery at high reliability in a storage cluster
US20150355862A1 (en) * 2014-06-04 2015-12-10 Pure Storage, Inc. Transparent array migration
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10552403B2 (en) * 2015-05-21 2020-02-04 Vmware, Inc. Using checksums to reduce the write latency of logging
GB2539455A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Memory watch unit
US9548105B1 (en) * 2015-10-29 2017-01-17 Sandisk Technologies Llc Enhanced post-write read for 3-D memory
KR20170052066A (ko) * 2015-11-03 2017-05-12 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20180055148A (ko) * 2016-11-16 2018-05-25 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20180106494A (ko) 2017-03-20 2018-10-01 에스케이하이닉스 주식회사 반도체장치
CN108304503A (zh) * 2018-01-18 2018-07-20 阿里巴巴集团控股有限公司 一种数据的处理方法、装置及设备
CN108628699B (zh) * 2018-05-11 2021-10-19 简式国际汽车设计(北京)有限公司 一种基于ecc的flash数据异常处理方法及装置
US11128314B2 (en) * 2019-06-24 2021-09-21 SK Hynix Inc. Error characteristic estimation for NAND flash
US11409688B1 (en) * 2019-11-01 2022-08-09 Yellowbrick Data, Inc. System and method for checking data to be processed or stored
KR20210153407A (ko) * 2020-06-10 2021-12-17 에스케이하이닉스 주식회사 에러정정동작 및 에러체크동작을 수행하기 위한 전자장치

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077028A (en) * 1976-06-14 1978-02-28 Ncr Corporation Error checking and correcting device
US4646312A (en) * 1984-12-13 1987-02-24 Ncr Corporation Error detection and correction system
US5754753A (en) * 1992-06-11 1998-05-19 Digital Equipment Corporation Multiple-bit error correction in computer main memory
US5463642A (en) * 1993-06-29 1995-10-31 Mitsubishi Semiconductor America, Inc. Method and apparatus for determining error location
DE69814465T2 (de) * 1998-01-16 2004-04-01 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
US6397365B1 (en) * 1999-05-18 2002-05-28 Hewlett-Packard Company Memory error correction using redundant sliced memory and standard ECC mechanisms
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
US6829167B2 (en) * 2002-12-12 2004-12-07 Sandisk Corporation Error recovery for nonvolatile memory
JP4256198B2 (ja) * 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US7191379B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
JP2005196680A (ja) * 2004-01-09 2005-07-21 Ricoh Co Ltd コンピュータシステム
JP2005285205A (ja) * 2004-03-29 2005-10-13 Hitachi Global Storage Technologies Netherlands Bv 情報記録再生装置
US7275190B2 (en) * 2004-11-08 2007-09-25 Micron Technology, Inc. Memory block quality identification in a memory device
US20070255889A1 (en) * 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
EP2024839B1 (en) * 2006-05-15 2014-07-02 SanDisk Technologies Inc. Non-volatile memory system with end of life calculation
US7844886B1 (en) * 2006-05-16 2010-11-30 Altera Corporation Parallel processing error detection and location circuitry for configuration random-access memory
JP2008027296A (ja) * 2006-07-24 2008-02-07 Yokogawa Electric Corp メモリ装置
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
CN101458645A (zh) * 2007-12-11 2009-06-17 英业达股份有限公司 计算机操作系统与其软件的文件数据修复系统及其方法

Also Published As

Publication number Publication date
US20100332949A1 (en) 2010-12-30
CN102804146B (zh) 2015-08-19
EP2530594A1 (en) 2012-12-05
JP2012532372A (ja) 2012-12-13
KR20120051606A (ko) 2012-05-22
WO2011002656A1 (en) 2011-01-06
EP2530594B1 (en) 2014-11-05
EP2530596A1 (en) 2012-12-05
EP2530596B1 (en) 2014-12-31
EP2530595B1 (en) 2014-11-05
CN102804146A (zh) 2012-11-28
EP2449468A1 (en) 2012-05-09
TW201108236A (en) 2011-03-01
TWI505277B (zh) 2015-10-21
US8255773B2 (en) 2012-08-28
EP2530595A1 (en) 2012-12-05
EP2449468B1 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
JP5523562B2 (ja) ストレージデバイス内のエラーデータを追跡するシステムおよび方法
JP5792380B2 (ja) データ完全性を与えるための装置および方法
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US10755787B2 (en) Efficient post programming verification in a nonvolatile memory
KR101536853B1 (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
CN101529526B (zh) 用于估计和报告闪存盘存储器的预期寿命的方法
US9037946B2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
CN105788648B (zh) 基于异构混合内存的nvm坏块识别处理及纠错方法和系统
CN105144302A (zh) 存储器装置中的错误校正操作
JP2012532372A5 (ja)
US20190019569A1 (en) Row repair of corrected memory address
US20080072119A1 (en) Allowable bit errors per sector in memory devices
CN111078462A (zh) 数据校验方法及电路
US11698832B2 (en) Selective sampling of a data unit during a program erase cycle based on error rate change patterns
US8527839B2 (en) On-the-fly repair method for memory
US8028221B2 (en) Error correction and error detection method for reading of stored information data and a storage control unit for the same
US10475522B2 (en) Memory system including a delegate page and method of identifying a status of a memory system
US20240194282A1 (en) Flash memory module testing method and associated memory controller and memory device
US20160117218A1 (en) Monitoring data error status in a memory
CN112486416A (zh) 数据处理方法、装置、存储介质及处理器

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130408

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130408

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130408

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140221

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: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140408

R150 Certificate of patent or registration of utility model

Ref document number: 5523562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250