JP6285762B2 - エラー訂正コードの制御方法および大容量ストレージ - Google Patents

エラー訂正コードの制御方法および大容量ストレージ Download PDF

Info

Publication number
JP6285762B2
JP6285762B2 JP2014051958A JP2014051958A JP6285762B2 JP 6285762 B2 JP6285762 B2 JP 6285762B2 JP 2014051958 A JP2014051958 A JP 2014051958A JP 2014051958 A JP2014051958 A JP 2014051958A JP 6285762 B2 JP6285762 B2 JP 6285762B2
Authority
JP
Japan
Prior art keywords
memory
ecc
host write
host
mass storage
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.)
Expired - Fee Related
Application number
JP2014051958A
Other languages
English (en)
Other versions
JP2014182834A (ja
JP2014182834A5 (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 JP2014182834A publication Critical patent/JP2014182834A/ja
Publication of JP2014182834A5 publication Critical patent/JP2014182834A5/ja
Application granted granted Critical
Publication of JP6285762B2 publication Critical patent/JP6285762B2/ja
Expired - Fee Related 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

この発明は、エラー訂正コードの制御方法およびエラー訂正コードを使用する大容量ストレージに関する。
大容量ストレージは、情報を永続的に保存し、それを使用するユーザまたはシステムのニーズに十分対応できる大きさの容量を有する。大容量ストレージは、テープライブラリ、RAID、およびJBOD等のシステムを含む。大容量ストレージは、ハードディスクドライブ、磁気テープドライブ、光ディスクドライブ、光磁気ドライブ、およびソリッドステートドライブ等のデバイスも含む。大容量ストレージは、大容量ストレージシステムまたはデバイスを使用するインフラも含む。そのようなインフラは、ダイレクト・アタッチト・ストレージ、ネットワーク・アッタチト・ストレージ、ストレージエリアネットワーク、データストレージラック、分散ファイルシステム、およびクラウドであり得る。
保存された情報のインテグリティを維持する大容量ストレージの能力は、所望の特性である。エラー訂正コード(ECC)の使用は、情報のインテグリティを維持する方法を提供する。そして、ECCは、インテグリティを維持している情報とともに保存され得る。この方法でECCを保存するには費用がかかる。1つの費用として、ECCが記憶スペースを必要とすることが挙げられる。情報保存用の大容量ストレージ内のスペースが再割り当てられてECCを保存するか、またはさらなる外付け大容量ストレージが提供されてECCを保存するかのいずれかが行われる。前者の場合、大容量ストレージの容量が減少し、後者の場合、オーバープロビジョニングが費用および複雑さを増大させる。改善されたECCまたはホスト書込ベースECCが所望される場合、大容量ストレージの容量がさらに減少するか、またはさらなるオーバープロビジョニングが提供されるかのいずれかとなる。いずれの場合も上述の費用増大を引き起こす。
大容量ストレージは、情報のコピーを保存することによって、保存された情報のインテグリティを維持し得る。その場合、大容量ストレージは、ECC情報を使用する必要はなく、関連のハードウェア/ファームウェアを削除するであろう。しかしながら、大容量ストレージの容量は、所定量の情報を保存するためにおよそ倍増されなければならないか、またはオーバープロビジョニングが用いられない場合にはその容量はおよそ半減されるであろう。また、どのコピーが正しいかの判定を試みることによって複雑さが増大する。この場合もやはり、このスキームを用いて保存された情報のインテグリティを維持するための費用が存在する。
加えて、いくつかの種類のECCは、一組のデータ上で計算される。その一組のデータが完全に書き込まれない場合、書き込まれなかったデータのすべてが記憶媒体から読み取られて新たなECCを計算しなければならないので、冗長性の計算に伴う莫大な経費が存在する。
大容量ストレージは、追加のエラー訂正コードを使用する。これらの追加コードは、関連データとは別に記憶媒体(例えば、揮発性ソリッドステートメモリ)に記憶され得る。追加コードは、不揮発性媒体に書き込まれ得るか、一時的であり得るか、またはキャッシュされ得る。現在のところ、追加コードは、他のエラー訂正コードとともにまたはそれに加えて、ユーザデータを訂正するために使用され得る。
図1は、追加のエラー訂正コードを使用するデバイスを示す。 図2は、追加のエラー訂正コードを使用する別のデバイスを示す。 図3は、追加のエラー訂正コードを使用するさらなるデバイスを示す。 図4は、追加のエラー訂正コードを使用し得るデータを示す。 図5は、追加のエラー訂正コードを使用する方法のフローチャートである。 図6は、追加のエラー訂正コードを使用する大容量ストレージの階層を示す。
大容量ストレージは、ホスト書込ベースECC(host write-based ECC)を使用するが、保存された情報が存在するメモリまたはメモリの一部とは別のメモリにそれを保存することによって、保存された情報のインテグリティを向上させることができる。このホスト書込ベースECCは、一回のホスト転送でデータによって判定されるメモリの可変範囲をカバーする。言い換えると、ホスト書込ベースECCは、単一ユニットの大容量ストレージメモリ(例えば、セクタ)または決定論的な組のセクタ群(例えば、RAIDパリティ)をカバーしない。図1を参照して、コントローラ110、大容量メモリ120、およびメモリ130を含む大容量ストレージデバイス100が示される。大容量メモリ120は、少なくとも1つの磁気ディスク、光ディスク、光磁気ディスク、テープ、ソリッドステートメモリ、もしくはホログラフィックメモリ、またはそれらのうちの少なくとも2つの組み合わせを含み得る。メモリ130は、DRAM、SRAM、フラッシュ、またはバッテリバックアップ揮発性メモリ等の揮発性または不揮発性メモリを含み得る。コントローラ110は、情報が大容量メモリ120に書き込まれるためにメモリ130をキャッシュとして使用し得る。
ホスト190は、大容量ストレージデバイス100に接続される。ホスト190は、SCSI、SAS、様々なSATA(例えば、mSATA、eSATA)、ファイバーチャネル等のデータ転送プロトコルを用いて大容量ストレージデバイス100と情報をやりとりする。ホスト190は、コントローラ110によって受信されてメモリ130にバッファリングまたはキャッシュされる情報を大容量ストレージデバイス100に書き込む。その後、大容量ストレージデバイス100は、情報を大容量メモリ120に保存し得る。大容量ストレージデバイス100は、ホストからの情報がメモリ130に/から転送されるときに、ホスト書込ベースECCを生成し得る。ホスト書込ベースECCはまた、情報がメモリ130に存在する間(例えば、メモリ130からの退避よりも前に)、いつでも生成され得る。ホスト書込ベースECCは、リード・ソロモン、ハミング、BCH、畳み込み、ターボ、単純パリティ、およびLDPC等の任意のエラー訂正コードを含む。ホスト書込ベースECCは、パリティ、チェックサム、および周期的冗長性チェック等の任意のエラー検出コードを含み得る。
ホスト書込ベースECCは、メモリ130に存在する。そこで、それは、削除、解放、または退避される前に、様々な方法で使用され得る。ホスト書込ベースECCを用いて、ユーザまたはシステムの読み取り動作のために、保存された情報のインテグリティを確実にすることができる。ホスト書込ベースECCを用いて、バックグラウンドメディアスキャン、ストライプまたは任意の他の決定論的なLBA群上でのパリティ生成、および書き込み後読み取り検証等の大容量ストレージデバイス100の内部信頼性動作中に、保存された情報の完全性を確実にすることもできる。
ホスト書込ベースECCは、いくつかの基準のうちの1つの発生に基づいて、メモリ130に保持されるか、またはメモリ130から削除、解放、もしくは退避され得る。メモリ130がキャッシュ退避ポリシーによって制御される場合、ホスト書込ベースECCを退避する基準は、最長時間未使用(LRU)方式、最低頻度使用(LFU)方式、FIFO、セットアソシアティブ等に対応し得る。さらに、ホスト書込ベースECCが生成されるとき、キャッシュポリシーは、ホスト書込ベースECCの保持および解放を考慮に入れるように変更され得る。ホスト書込ベースECCは、頻繁に書き込まれたアドレスまたはエラーを起こしやすいアドレス等のあるアドレス範囲の優先順位に基づいて、メモリ130に保持され得るか、またはメモリ130から削除、解放、もしくは退避され得る。また、ホスト書込ベースECCの保留中の退避は、内部信頼性動作を優先させることに用いられ得る。さらに、ホスト書込ベースECCは、内部信頼性動作に使用された後に削除、解放、または退避され得る。そして、ホスト書込ベースECCの大容量メモリ120からの退避は、上述のようにその使用を保証する前に許可されるか、または上述のようにそれが使用されるまで許可されないかのいずれかであり得る。
ホスト書込ベースECCは、いくつかの方法で不揮発性メモリに書き込まれ得る。図1において、ホスト書込ベースECCは、メモリ130の代わりに大容量メモリ120に書き込まれ得る。例えば、大容量メモリ120は、ホスト書込ベースECCが保持されるメディアキャッシュを有する磁気ディスクであり得る。あるいは、ホスト書込ベースECCは、メモリ130に書き込まれた後に大容量メモリ120に書き込まれ得る。この場合、ホスト書込ベースECCの大容量メモリ120への書き込みは、それをメモリ130から退避する前に、またはパワーロスが大容量ストレージデバイス100内で生じたときに生じ得る。パワーロスの場合、メモリ130は、ホスト書込ベースECCが大容量メモリ120に書き込まれ得るように、例えば、スピンドルモータの逆起電力によって電力供給され得る。
その追加のECCは、メモリ130に関する上述の同一の基準を用いて、大容量メモリ120に保持されるか、または大容量メモリ120から削除、解放、もしくは退避され得る。大容量メモリ120内のホスト書込ベースECCは、上述のようにメモリ130に関しても使用され得る。加えて、ホスト書込ベースECCの大容量メモリ120からの退避は、上述のようにその使用を保証する前に許可されるか、または上述のようにそれが使用されるまで許可されないかのいずれかであり得る。
ホスト書込ベースECCは、関連のメタデータも有し得る。メタデータは、ホスト書込ベースECCを説明するデータを指す。メタデータは、ホスト書込ベースECCがカバーするLBA範囲、ホスト書込ベースECCの位置へのポインタ、次に最古のホスト書込ベースECCへのリンク、次に最新のホスト書込ベースECCへのリンク、次に高いLBA範囲をカバーするホスト書込ベースECCへのリンク、および次に低いLBA範囲をカバーするホスト書込ベースECCへのリンクを含み得る。各ホスト書込ベースECCのために、メタデータは、対応するLBA範囲を追跡し得る。例えば、論理ブロックアドレス100〜109がホストからまたはメモリ間のいずれかで転送され、ホスト書込ベースECCが生成されると仮定する。メタデータは、ホスト書込ベースECCがそれらの論理ブロックアドレスおよびそのホスト書込ベースECCの位置(例えば、DRAMアドレス)に対して存在することを記録する。異なる種類または構成のホスト書込ベースECCも存在し得る。その場合、それもまたメタデータによって記載される。このメタデータは、ホスト書込ベースECCが予期されたパワーサイクルであっても予期せぬパワーサイクルであっても保存されるように、大容量メモリ120等の不揮発性メモリにも記憶され得る。
メモリ130は、既存のホスト書込ベースECCと重複するホスト書込ベースECCを追跡することによって、有効なメタデータ群も保持し得る。上述の例を続けて、別の書き込みが論理ブロックアドレス100〜109に対して受信される場合(またはある他の重複シナリオでもよい)、既存のホスト書込ベースECCは、上書きされたデータをカバーするので無効になる。したがって、メタデータは、上書きされたデータ用のホスト書込ベースECCが無効であることを示すように適切に管理され、新たなホスト書込ベースECCがあればそれを説明するように更新されるであろう。
図2は、ホスト書込ベースECCを使用する大容量ストレージデバイス200を示す。コントローラ210、大容量メモリ220、揮発性メモリ235、および不揮発性メモリ240は、大容量ストレージデバイス200内に含まれる。大容量メモリ220は、少なくとも1つの磁気ディスク、光ディスク、光磁気ディスク、テープ、ソリッドステートメモリ、もしくはホログラフィックメモリ、またはそれらのうちの少なくとも2つの組み合わせを含み得る。メモリ235は、DRAMおよびSRAM等の揮発性メモリを含み得る。不揮発性メモリ240は、フラッシュ、STRAM、ReRAM、MRAM等の不揮発性ソリッドステートメモリを含み得る。ホスト290は、大容量ストレージデバイス200に接続される。
大容量ストレージデバイス200は、示されたメモリのうちの1つ、2つ、または3つすべてにホスト書込ベースECCを保存し得る。例えば、ホスト書込ベースECCが最初に揮発性メモリ235に保存され、その後不揮発性メモリ240に保存され、続いて大容量メモリ220に保存される階層ストレージが使用され得る。これらのメモリ間のホスト書込ベースECCの移動は、上述の退避基準に基づき得る。これらのメモリに対して他の順列が可能である。ホスト書込ベースECCは、図1の大容量ストレージデバイス100に関して上で説明された方法のいずれかに基づいて、揮発性メモリ235に書き込まれ、その後、不揮発性メモリ240に書き込まれ得る。ホスト書込ベースECCの保持、解放、削除、退避、および使用は、大容量ストレージデバイス100に関して上で説明されたものと同一であり得る。
図3は、コントローラ310およびメモリ/大容量メモリ325を含む大容量ストレージデバイス300に接続されたホスト390を示す。メモリ/大容量メモリ325は、フラッシュメモリまたは磁気ディスク等の同種の記憶媒体であり得る。この種の記憶媒体は、ホスト書込ベースECCを記憶するためのメモリとしても、関連情報を保存するための大容量メモリとしても使用され得る。フラッシュメモリが使用される場合、メモリ/大容量メモリ325のメモリ部は、SLCであり得、大容量メモリ部は、MLCであり得る。別の選択肢として、MLCデバイスのLSBページが挙げられる。LSBページは、典型的には、MSBページよりもはるかに速くプログラミングする。磁気ディスクが使用される場合、メモリ部は、メディアキャッシュであり、大容量メモリ部は、ディスクの残りの表面であり得る。いずれの場合にも、メモリ部は、大容量メモリ部よりも速い読み取りもしくは書き込み速度(またはそれら両方)を呈する。ホスト書込ベースECCの保持、解放、削除、退避、および使用は、大容量ストレージデバイス100に関して上で説明されたものと同一であり得る。
そのように記載されるホスト書込ベースECCの適用は、図4を参照して説明される。図4において、410〜470がデータブロックであり、480が訂正コード(ECC)ブロックである。データブロック410〜470の各々は、独自のエラー検出もしくは訂正情報(またはそれら両方)を含み得る。ECCブロック480は、データブロック410〜470のすべてに使用される。ブロック410〜480は、磁気ディスクのトラック、フラッシュメモリ内のブロック、または各ブロック410〜480が異なる大容量ストレージデバイス上に記憶されるRAIDシステムのストライプ上で連続した状態であり得る。
例えば、図1の大容量ストレージデバイス100と接続されるホストは、情報をデータブロック430〜440に書き込むように要求し得る。関連のホスト書込ベースECCは、上述のようにデータブロック430〜440に対して生成され、メモリ130等のメモリに保存される。EDCブロック480は、それが保護するデータの一部が新たに書き込まれたので、無効になる。大容量ストレージデバイス100は、バックグラウンドメディアスキャン等の内部信頼性動作を実行し得る。また、ECCブロック480は、それが保護するデータの一部が新たに書き込まれたので、無効になる。ブロック430〜440に対して生成されたECCは、EDCECCブロック480を更新することに用いられ得る。
データブロック430内でエラーが発見された場合、大容量ストレージデバイスは、データブロック430またはECCブロック480が更新された場合にデータブロック430またはECCブロック480内のエラー検出もしくは訂正情報のいずれか(またはそれら両方)とともに、それに加えて、またはその代替として、関連のホスト書込ベースECCを使用してエラーを訂正することができる。
図5は、説明されたホスト書込ベースECCに関連した方法500を示す。方法500は、ステップ510から始まり、その後、大容量ストレージがホスト書込ベースECCを保持して情報エラーを訂正するステップ520に進む。ステップ530において、退避、解放、または削除基準が満たされているかの判定がなされる。満たされていない場合、この方法は、ステップ520に戻る。満たされている場合、この方法は、ホスト書込ベースECCが退避されるステップ540に進む。その後、方法500は、ステップ550で終了する。
上述の大容量ストレージのいずれかにおいて、ホスト書込ベースECCは、関連情報が上書き、消去、または解放される前に、退避、解放、または削除され得る。その結果、ホスト書込ベースECCは、関連情報と比較して一時的である。例えば、大容量ストレージは、ホスト書込ベースECCを使用して、EDCブロック480等のパリティを生成し得る。その後、ホスト書込ベースECCは、メモリから退避され得る。これは、単回使用の一時性の例である。別の例として、ホスト書込ベースECCは、退避、解放、または削除されるまで上述のように使用され得る。これは、非単回使用の一時性の例である。
さらなる説明として、パリティ/冗長性の計算は、パリティストライプ(すなわち、RAIDグループ)上で実行され、そのパリティストライプとともにアドレス位置に保存され得る。上述の大容量ストレージは、パリティストライプの内容のいかなる知識も必要とすることなく、または基礎をなすパリティストライプの存在なしでさえも、ホスト書込ベースECCを計算する。ホスト書込ベースECCは、最近書き込まれたデータ上に一時的に保持される場合もあり、必ずしも全データセット(例えば、パリティストライプ)に保持されるとは限らない。
図6は、上述のようにホスト書込ベースECCを使用する大容量ストレージの階層を示す。ここで、ホスト書込ベースECCは、大容量ストレージデバイス、システム、またはインフラのメモリ内に記憶され得る。追加のECCおよび保存された情報がどこに存在するかにかかわらず、大容量ストレージデバイス、システム、またはインフラは、その情報およびホスト書込ベースECCの両方を読み出し、それを上述のように使用し得る。例えば、大容量ストレージシステム620は、ホスト書込ベースECCをそのメモリ内に保持し、その後、関連情報を大容量ストレージデバイス610に書き込み得る。大容量ストレージシステム620は、後に、大容量ストレージデバイス610からの関連情報の読み取りを要求し得る。大容量ストレージシステム620は、関連情報を受信すると、上述のようにホスト書込ベースECCをその関連情報とともに使用し得る。
別の例として、大容量ストレージシステム620は、ホスト書込ベースECCをそのメモリ内に保持し、その後、関連情報を大容量ストレージデバイス610に書き込み得る。大容量ストレージデバイス610は、後に、大容量ストレージシステム620からホスト書込ベースECCを要求し、それを上述のように使用し得る。同様のインタラクションが大容量ストレージインフラ630で生じ得る。
上述の方法および装置は、ホスト書込ベースECCを使用して、最近書き込まれたデータ上に検出可能な誤りまたは任意の他のエラーを生成していないかもしれない書き込みエラーからデータを修復し得る。コントローラは、単独で、または関連ファームウェアとともに、1つのメモリまたは複数のメモリ内でのホスト書込ベースECCの保持を制御する。
上述の説明は、詳細を提示するものであるが、特許請求の範囲を限定するものと見なされるべきではない。上述の説明の様々な修正、上述の説明からの削除、および上述の説明への追加は、特許請求の範囲内である。

Claims (20)

  1. ホストから書き込まれた情報に基づき生成されるホスト書込ベースECC(host write-based ECC)および前記ホスト書込ベースECCに関連付けられたデータをメモリに保持することと、
    前記ホストから書き込まれた情報であって前記ホスト書込ベースECCに関連付けられたデータが前記メモリとは異なる第2のメモリに書き込まれた後に、キャッシングポリシーに応答して前記ホスト書込ベースECCを前記メモリから前記第2のメモリとは異なる第3のメモリに退避することとを含む、方法。
  2. 前記キャッシングポリシーは、最長時間未使用(LRU)方式、最低頻度使用(LFU)方式、先入れ先出し(FIFO)方式のうちの1つである、請求項1に記載の方法。
  3. 内部信頼性動作のために前記ホスト書込ベースECCを使用することをさらに含む、請求項1または請求項2に記載の方法。
  4. 前記内部信頼性動作は、バックグラウンドメディアスキャン、パリティ生成、または書き込み後読み取り検証のうちの1つである、請求項3に記載の方法。
  5. 前記保持することは、前記ホスト書込ベースECCをキャッシュすることを含む、請求項1から請求項4のいずれか1項に記載の方法。
  6. 前記ホスト書込ベースECCを一時的に使用することをさらに含む、請求項1から請求項5のいずれか1項に記載の方法。
  7. 前記一時的な使用は、非単回使用である、請求項6に記載の方法。
  8. 前記一時的な使用は、単回使用である、請求項6に記載の方法。
  9. 他のECCとともに、他のECCに加えて、および他のECCの代替としてのうちの少なくとも1つで、前記ホスト書込ベースECCを使用することをさらに含む、請求項1から請求項8のいずれか1項に記載の方法。
  10. ホストから書き込まれた情報に基づき生成されるホスト書込ベースECCを計算することと、
    揮発性メモリに前記ホスト書込ベースECCおよび前記ホスト書込ベースECCに関連付けられたデータを一時的に保持することと、
    前記ホストから書き込まれた情報であって前記ホスト書込ベースECCに関連付けられたデータが前記揮発性メモリとは異なる第2のメモリに書き込まれた後に、キャッシングポリシーに応答して前記ホスト書込ベースECCを前記揮発性メモリから前記第2のメモリとは異なる第3のメモリに退避することとを含む、方法。
  11. 前記ホスト書込ベースECCを前記一時的に保持することは、キャッシングポリシーを使用する、請求項10に記載の方法。
  12. 前記キャッシングポリシーは退避ポリシーであって、前記退避ポリシーは、ホスト書込ベースECCの生成に基づいて変更される、請求項11に記載の方法。
  13. 前記ホスト書込ベースECCおよび対応のメタデータを不揮発性メモリに書き込むことをさらに含む、請求項10から請求項12のいずれか1項に記載の方法。
  14. 前記ホスト書込ベースECCを一時的に保持することは、あるアドレス範囲に対して優先される、請求項10から請求項13のいずれか1項に記載の方法。
  15. ユーザ読み取り用のデータの修復および内部動作中のデータの修復のうちの少なくとも一方を行うために前記ホスト書込ベースECCを使用することをさらに含む、請求項10から請求項14のいずれか1項に記載の方法。
  16. 前記一時的な保持は、非単回使用である、請求項10から請求項15のいずれか1項に記載の方法。
  17. 第1のメモリと、
    第2のメモリと、
    前記第1のメモリおよび前記第2のメモリに接続され、少なくとも前記第1のメモリにホストから書き込まれた情報に基づき生成されるホスト書込ベースECCおよび前記ホスト書込ベースECCに関連付けられたデータを一時的に保持するように構成されるコントローラとを備え、前記コントローラは、前記ホストから書き込まれた情報であって前記ホスト書込ベースECCに関連付けられたデータが前記第1のメモリとは異なる第2のメモリに書き込まれた後に、キャッシングポリシーに応答して前記ホスト書込ベースECCを前記第1のメモリから第2のメモリとは異なる第3のメモリに退避するようにさらに構成される大容量ストレージ。
  18. 前記第1のメモリは揮発性であり、前記第2のメモリは不揮発性である、請求項17に記載の大容量ストレージ。
  19. 前記コントローラは、前記ホスト書込ベースECCを一時的に保持するためにキャッシングポリシーを使用する、請求項17または請求項18に記載の大容量ストレージ。
  20. 前記ホスト書込ベースECCに関連付けられたデータは、前記第2のメモリに保存され、
    前記ホスト書込ベースECCに関連付けられたデータの上書き、消去、または解放のうちの1つが行われる前に、前記ホスト書込ベースECCの解放、削除、および退避のうちの1つが行われる、請求項17から請求項19のいずれか1項に記載の大容量ストレージ。
JP2014051958A 2013-03-15 2014-03-14 エラー訂正コードの制御方法および大容量ストレージ Expired - Fee Related JP6285762B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/843,869 2013-03-15
US13/843,869 US9141484B2 (en) 2013-03-15 2013-03-15 Transiently maintaining ECC

Publications (3)

Publication Number Publication Date
JP2014182834A JP2014182834A (ja) 2014-09-29
JP2014182834A5 JP2014182834A5 (ja) 2014-11-06
JP6285762B2 true JP6285762B2 (ja) 2018-02-28

Family

ID=51502961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014051958A Expired - Fee Related JP6285762B2 (ja) 2013-03-15 2014-03-14 エラー訂正コードの制御方法および大容量ストレージ

Country Status (3)

Country Link
US (1) US9141484B2 (ja)
JP (1) JP6285762B2 (ja)
CN (1) CN104050073B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671531B2 (en) * 2018-07-13 2020-06-02 Seagate Technology Llc Secondary memory configuration for data backup
US10915400B1 (en) * 2019-11-08 2021-02-09 Micron Technology, Inc. Dynamic over provisioning allocation for purposed blocks

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5255270A (en) 1990-11-07 1993-10-19 Emc Corporation Method of assuring data write integrity on a data storage device
JPH06266618A (ja) * 1993-03-17 1994-09-22 Toshiba Corp エラー訂正・検出機能付きの主記憶コントローラを備えた情報処理装置
US5784390A (en) * 1995-06-19 1998-07-21 Seagate Technology, Inc. Fast AtA-compatible drive interface with error detection and/or error correction
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
JPH11203056A (ja) * 1998-01-19 1999-07-30 Fujitsu Ltd 入出力制御装置及びアレイディスク装置
US6243827B1 (en) * 1998-06-30 2001-06-05 Digi-Data Corporation Multiple-channel failure detection in raid systems
JP2002023966A (ja) * 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム
US7380198B2 (en) 2003-06-11 2008-05-27 International Business Machines Corporation System and method for detecting write errors in a storage device
US7360112B2 (en) 2005-02-07 2008-04-15 International Business Machines Corporation Detection and recovery of dropped writes in storage devices
US20060294299A1 (en) 2005-06-28 2006-12-28 Intel Corporation Techniques to verify storage of information
US7650557B2 (en) * 2005-09-19 2010-01-19 Network Appliance, Inc. Memory scrubbing of expanded memory
US20070168754A1 (en) 2005-12-19 2007-07-19 Xiv Ltd. Method and apparatus for ensuring writing integrity in mass storage systems
JP2008217755A (ja) * 2007-02-05 2008-09-18 Seiko Epson Corp 記憶装置
JP4358869B2 (ja) * 2007-02-21 2009-11-04 富士通株式会社 ストレージ制御装置、ストレージ制御方法
US20090006757A1 (en) * 2007-06-29 2009-01-01 Abhishek Singhal Hierarchical cache tag architecture
US8095851B2 (en) * 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US7774540B2 (en) 2007-12-26 2010-08-10 Hitachi Global Storage Technologies Netherlands B.V. Storage system and method for opportunistic write-verify
US8140909B2 (en) 2008-02-22 2012-03-20 International Business Machines Corporation Efficient method to detect disk write errors
US9235530B2 (en) * 2010-05-31 2016-01-12 Sandisk Technologies Inc. Method and system for binary cache cleanup
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8560775B1 (en) * 2012-09-28 2013-10-15 Stec, Inc. Methods for managing cache configuration

Also Published As

Publication number Publication date
JP2014182834A (ja) 2014-09-29
US20140281821A1 (en) 2014-09-18
CN104050073B (zh) 2018-02-27
US9141484B2 (en) 2015-09-22
CN104050073A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
US8738846B2 (en) File system-aware solid-state storage management system
US9619158B2 (en) Two-level hierarchical log structured array architecture with minimized write amplification
US8825941B2 (en) SLC-MLC combination flash storage device
US9740406B2 (en) Dynamic granule-based intermediate storage
JP5623239B2 (ja) 書込みレコードの重複を排除する記憶装置、及びその書込み方法
KR102357203B1 (ko) 판독 캐시 관리
US9798623B2 (en) Using cache to manage errors in primary storage
US10474527B1 (en) Host-assisted error recovery
JP2015201204A (ja) データ記憶装置におけるデータ保全性管理
JP2019502987A (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
KR101369813B1 (ko) 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적
US7380198B2 (en) System and method for detecting write errors in a storage device
US20200104047A1 (en) Container key value store for data storage devices
US20150339058A1 (en) Storage system and control method
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP2019074897A (ja) ストレージ制御装置、及びプログラム
US8938641B2 (en) Method and apparatus for synchronizing storage volumes
WO2018188618A1 (zh) 固态硬盘访问
JP6285762B2 (ja) エラー訂正コードの制御方法および大容量ストレージ
KR20230172394A (ko) 캐시 일관된 상호 연결 저장 장치에서 raid 회로를 사용하는 중복 배열 독립 디스크 시스템 및 방법
WO2016032955A2 (en) Nvram enabled storage systems
JP2019023936A (ja) 記憶装置及びメモリシステム
JP2017045177A (ja) ストレージシステム、ホスト計算機、ストレージコントローラ及びデータ重複検出方法
JP2005004733A (ja) ストレージ・システムにおいて書込みエラーを検出するための配置構成および方法
JP2004355040A (ja) ディスク制御装置およびデータ先読み方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140826

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150915

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161004

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161013

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20161104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180202

R150 Certificate of patent or registration of utility model

Ref document number: 6285762

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

LAPS Cancellation because of no payment of annual fees