特許第6285762号(P6285762)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シーゲイト テクノロジー エルエルシーの特許一覧

特許6285762エラー訂正コードの制御方法および大容量ストレージ
<>
  • 特許6285762-エラー訂正コードの制御方法および大容量ストレージ 図000002
  • 特許6285762-エラー訂正コードの制御方法および大容量ストレージ 図000003
  • 特許6285762-エラー訂正コードの制御方法および大容量ストレージ 図000004
  • 特許6285762-エラー訂正コードの制御方法および大容量ストレージ 図000005
  • 特許6285762-エラー訂正コードの制御方法および大容量ストレージ 図000006
  • 特許6285762-エラー訂正コードの制御方法および大容量ストレージ 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6285762
(24)【登録日】2018年2月9日
(45)【発行日】2018年2月28日
(54)【発明の名称】エラー訂正コードの制御方法および大容量ストレージ
(51)【国際特許分類】
   G06F 12/16 20060101AFI20180215BHJP
   G06F 3/06 20060101ALI20180215BHJP
【FI】
   G06F12/16 320F
   G06F3/06 302A
   G06F3/06 305C
【請求項の数】20
【全頁数】11
(21)【出願番号】特願2014-51958(P2014-51958)
(22)【出願日】2014年3月14日
(65)【公開番号】特開2014-182834(P2014-182834A)
(43)【公開日】2014年9月29日
【審査請求日】2014年8月26日
【審判番号】不服2016-14830(P2016-14830/J1)
【審判請求日】2016年10月4日
(31)【優先権主張番号】13/843,869
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500373758
【氏名又は名称】シーゲイト テクノロジー エルエルシー
【氏名又は名称原語表記】Seagate Technology LLC
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】マーク・エイ・ガートナー
(72)【発明者】
【氏名】ケビン・ダオ
(72)【発明者】
【氏名】スティーブン・ファウルハーバー
【合議体】
【審判長】 辻本 泰隆
【審判官】 佐久 聖子
【審判官】 須田 勝巳
(56)【参考文献】
【文献】 特開2008−217755(JP,A)
【文献】 特表2007−535058(JP,A)
【文献】 国際公開第2012/002428(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
G06F 3/06
(57)【特許請求の範囲】
【請求項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項に記載の大容量ストレージ。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、エラー訂正コードの制御方法およびエラー訂正コードを使用する大容量ストレージに関する。
【背景技術】
【0002】
大容量ストレージは、情報を永続的に保存し、それを使用するユーザまたはシステムのニーズに十分対応できる大きさの容量を有する。大容量ストレージは、テープライブラリ、RAID、およびJBOD等のシステムを含む。大容量ストレージは、ハードディスクドライブ、磁気テープドライブ、光ディスクドライブ、光磁気ドライブ、およびソリッドステートドライブ等のデバイスも含む。大容量ストレージは、大容量ストレージシステムまたはデバイスを使用するインフラも含む。そのようなインフラは、ダイレクト・アタッチト・ストレージ、ネットワーク・アッタチト・ストレージ、ストレージエリアネットワーク、データストレージラック、分散ファイルシステム、およびクラウドであり得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
保存された情報のインテグリティを維持する大容量ストレージの能力は、所望の特性である。エラー訂正コード(ECC)の使用は、情報のインテグリティを維持する方法を提供する。そして、ECCは、インテグリティを維持している情報とともに保存され得る。この方法でECCを保存するには費用がかかる。1つの費用として、ECCが記憶スペースを必要とすることが挙げられる。情報保存用の大容量ストレージ内のスペースが再割り当てられてECCを保存するか、またはさらなる外付け大容量ストレージが提供されてECCを保存するかのいずれかが行われる。前者の場合、大容量ストレージの容量が減少し、後者の場合、オーバープロビジョニングが費用および複雑さを増大させる。改善されたECCまたはホスト書込ベースECCが所望される場合、大容量ストレージの容量がさらに減少するか、またはさらなるオーバープロビジョニングが提供されるかのいずれかとなる。いずれの場合も上述の費用増大を引き起こす。
【0004】
大容量ストレージは、情報のコピーを保存することによって、保存された情報のインテグリティを維持し得る。その場合、大容量ストレージは、ECC情報を使用する必要はなく、関連のハードウェア/ファームウェアを削除するであろう。しかしながら、大容量ストレージの容量は、所定量の情報を保存するためにおよそ倍増されなければならないか、またはオーバープロビジョニングが用いられない場合にはその容量はおよそ半減されるであろう。また、どのコピーが正しいかの判定を試みることによって複雑さが増大する。この場合もやはり、このスキームを用いて保存された情報のインテグリティを維持するための費用が存在する。
【0005】
加えて、いくつかの種類のECCは、一組のデータ上で計算される。その一組のデータが完全に書き込まれない場合、書き込まれなかったデータのすべてが記憶媒体から読み取られて新たなECCを計算しなければならないので、冗長性の計算に伴う莫大な経費が存在する。
【課題を解決するための手段】
【0006】
大容量ストレージは、追加のエラー訂正コードを使用する。これらの追加コードは、関連データとは別に記憶媒体(例えば、揮発性ソリッドステートメモリ)に記憶され得る。追加コードは、不揮発性媒体に書き込まれ得るか、一時的であり得るか、またはキャッシュされ得る。現在のところ、追加コードは、他のエラー訂正コードとともにまたはそれに加えて、ユーザデータを訂正するために使用され得る。
【図面の簡単な説明】
【0007】
図1図1は、追加のエラー訂正コードを使用するデバイスを示す。
図2図2は、追加のエラー訂正コードを使用する別のデバイスを示す。
図3図3は、追加のエラー訂正コードを使用するさらなるデバイスを示す。
図4図4は、追加のエラー訂正コードを使用し得るデータを示す。
図5図5は、追加のエラー訂正コードを使用する方法のフローチャートである。
図6図6は、追加のエラー訂正コードを使用する大容量ストレージの階層を示す。
【発明を実施するための形態】
【0008】
大容量ストレージは、ホスト書込ベースECC(host write-based ECC)を使用するが、保存された情報が存在するメモリまたはメモリの一部とは別のメモリにそれを保存することによって、保存された情報のインテグリティを向上させることができる。このホスト書込ベースECCは、一回のホスト転送でデータによって判定されるメモリの可変範囲をカバーする。言い換えると、ホスト書込ベースECCは、単一ユニットの大容量ストレージメモリ(例えば、セクタ)または決定論的な組のセクタ群(例えば、RAIDパリティ)をカバーしない。図1を参照して、コントローラ110、大容量メモリ120、およびメモリ130を含む大容量ストレージデバイス100が示される。大容量メモリ120は、少なくとも1つの磁気ディスク、光ディスク、光磁気ディスク、テープ、ソリッドステートメモリ、もしくはホログラフィックメモリ、またはそれらのうちの少なくとも2つの組み合わせを含み得る。メモリ130は、DRAM、SRAM、フラッシュ、またはバッテリバックアップ揮発性メモリ等の揮発性または不揮発性メモリを含み得る。コントローラ110は、情報が大容量メモリ120に書き込まれるためにメモリ130をキャッシュとして使用し得る。
【0009】
ホスト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は、パリティ、チェックサム、および周期的冗長性チェック等の任意のエラー検出コードを含み得る。
【0010】
ホスト書込ベースECCは、メモリ130に存在する。そこで、それは、削除、解放、または退避される前に、様々な方法で使用され得る。ホスト書込ベースECCを用いて、ユーザまたはシステムの読み取り動作のために、保存された情報のインテグリティを確実にすることができる。ホスト書込ベースECCを用いて、バックグラウンドメディアスキャン、ストライプまたは任意の他の決定論的なLBA群上でのパリティ生成、および書き込み後読み取り検証等の大容量ストレージデバイス100の内部信頼性動作中に、保存された情報の完全性を確実にすることもできる。
【0011】
ホスト書込ベースECCは、いくつかの基準のうちの1つの発生に基づいて、メモリ130に保持されるか、またはメモリ130から削除、解放、もしくは退避され得る。メモリ130がキャッシュ退避ポリシーによって制御される場合、ホスト書込ベースECCを退避する基準は、最長時間未使用(LRU)方式、最低頻度使用(LFU)方式、FIFO、セットアソシアティブ等に対応し得る。さらに、ホスト書込ベースECCが生成されるとき、キャッシュポリシーは、ホスト書込ベースECCの保持および解放を考慮に入れるように変更され得る。ホスト書込ベースECCは、頻繁に書き込まれたアドレスまたはエラーを起こしやすいアドレス等のあるアドレス範囲の優先順位に基づいて、メモリ130に保持され得るか、またはメモリ130から削除、解放、もしくは退避され得る。また、ホスト書込ベースECCの保留中の退避は、内部信頼性動作を優先させることに用いられ得る。さらに、ホスト書込ベースECCは、内部信頼性動作に使用された後に削除、解放、または退避され得る。そして、ホスト書込ベースECCの大容量メモリ120からの退避は、上述のようにその使用を保証する前に許可されるか、または上述のようにそれが使用されるまで許可されないかのいずれかであり得る。
【0012】
ホスト書込ベースECCは、いくつかの方法で不揮発性メモリに書き込まれ得る。図1において、ホスト書込ベースECCは、メモリ130の代わりに大容量メモリ120に書き込まれ得る。例えば、大容量メモリ120は、ホスト書込ベースECCが保持されるメディアキャッシュを有する磁気ディスクであり得る。あるいは、ホスト書込ベースECCは、メモリ130に書き込まれた後に大容量メモリ120に書き込まれ得る。この場合、ホスト書込ベースECCの大容量メモリ120への書き込みは、それをメモリ130から退避する前に、またはパワーロスが大容量ストレージデバイス100内で生じたときに生じ得る。パワーロスの場合、メモリ130は、ホスト書込ベースECCが大容量メモリ120に書き込まれ得るように、例えば、スピンドルモータの逆起電力によって電力供給され得る。
【0013】
その追加のECCは、メモリ130に関する上述の同一の基準を用いて、大容量メモリ120に保持されるか、または大容量メモリ120から削除、解放、もしくは退避され得る。大容量メモリ120内のホスト書込ベースECCは、上述のようにメモリ130に関しても使用され得る。加えて、ホスト書込ベースECCの大容量メモリ120からの退避は、上述のようにその使用を保証する前に許可されるか、または上述のようにそれが使用されるまで許可されないかのいずれかであり得る。
【0014】
ホスト書込ベースECCは、関連のメタデータも有し得る。メタデータは、ホスト書込ベースECCを説明するデータを指す。メタデータは、ホスト書込ベースECCがカバーするLBA範囲、ホスト書込ベースECCの位置へのポインタ、次に最古のホスト書込ベースECCへのリンク、次に最新のホスト書込ベースECCへのリンク、次に高いLBA範囲をカバーするホスト書込ベースECCへのリンク、および次に低いLBA範囲をカバーするホスト書込ベースECCへのリンクを含み得る。各ホスト書込ベースECCのために、メタデータは、対応するLBA範囲を追跡し得る。例えば、論理ブロックアドレス100〜109がホストからまたはメモリ間のいずれかで転送され、ホスト書込ベースECCが生成されると仮定する。メタデータは、ホスト書込ベースECCがそれらの論理ブロックアドレスおよびそのホスト書込ベースECCの位置(例えば、DRAMアドレス)に対して存在することを記録する。異なる種類または構成のホスト書込ベースECCも存在し得る。その場合、それもまたメタデータによって記載される。このメタデータは、ホスト書込ベースECCが予期されたパワーサイクルであっても予期せぬパワーサイクルであっても保存されるように、大容量メモリ120等の不揮発性メモリにも記憶され得る。
【0015】
メモリ130は、既存のホスト書込ベースECCと重複するホスト書込ベースECCを追跡することによって、有効なメタデータ群も保持し得る。上述の例を続けて、別の書き込みが論理ブロックアドレス100〜109に対して受信される場合(またはある他の重複シナリオでもよい)、既存のホスト書込ベースECCは、上書きされたデータをカバーするので無効になる。したがって、メタデータは、上書きされたデータ用のホスト書込ベースECCが無効であることを示すように適切に管理され、新たなホスト書込ベースECCがあればそれを説明するように更新されるであろう。
【0016】
図2は、ホスト書込ベースECCを使用する大容量ストレージデバイス200を示す。コントローラ210、大容量メモリ220、揮発性メモリ235、および不揮発性メモリ240は、大容量ストレージデバイス200内に含まれる。大容量メモリ220は、少なくとも1つの磁気ディスク、光ディスク、光磁気ディスク、テープ、ソリッドステートメモリ、もしくはホログラフィックメモリ、またはそれらのうちの少なくとも2つの組み合わせを含み得る。メモリ235は、DRAMおよびSRAM等の揮発性メモリを含み得る。不揮発性メモリ240は、フラッシュ、STRAM、ReRAM、MRAM等の不揮発性ソリッドステートメモリを含み得る。ホスト290は、大容量ストレージデバイス200に接続される。
【0017】
大容量ストレージデバイス200は、示されたメモリのうちの1つ、2つ、または3つすべてにホスト書込ベースECCを保存し得る。例えば、ホスト書込ベースECCが最初に揮発性メモリ235に保存され、その後不揮発性メモリ240に保存され、続いて大容量メモリ220に保存される階層ストレージが使用され得る。これらのメモリ間のホスト書込ベースECCの移動は、上述の退避基準に基づき得る。これらのメモリに対して他の順列が可能である。ホスト書込ベースECCは、図1の大容量ストレージデバイス100に関して上で説明された方法のいずれかに基づいて、揮発性メモリ235に書き込まれ、その後、不揮発性メモリ240に書き込まれ得る。ホスト書込ベースECCの保持、解放、削除、退避、および使用は、大容量ストレージデバイス100に関して上で説明されたものと同一であり得る。
【0018】
図3は、コントローラ310およびメモリ/大容量メモリ325を含む大容量ストレージデバイス300に接続されたホスト390を示す。メモリ/大容量メモリ325は、フラッシュメモリまたは磁気ディスク等の同種の記憶媒体であり得る。この種の記憶媒体は、ホスト書込ベースECCを記憶するためのメモリとしても、関連情報を保存するための大容量メモリとしても使用され得る。フラッシュメモリが使用される場合、メモリ/大容量メモリ325のメモリ部は、SLCであり得、大容量メモリ部は、MLCであり得る。別の選択肢として、MLCデバイスのLSBページが挙げられる。LSBページは、典型的には、MSBページよりもはるかに速くプログラミングする。磁気ディスクが使用される場合、メモリ部は、メディアキャッシュであり、大容量メモリ部は、ディスクの残りの表面であり得る。いずれの場合にも、メモリ部は、大容量メモリ部よりも速い読み取りもしくは書き込み速度(またはそれら両方)を呈する。ホスト書込ベースECCの保持、解放、削除、退避、および使用は、大容量ストレージデバイス100に関して上で説明されたものと同一であり得る。
【0019】
そのように記載されるホスト書込ベースECCの適用は、図4を参照して説明される。図4において、410〜470がデータブロックであり、480が訂正コード(ECC)ブロックである。データブロック410〜470の各々は、独自のエラー検出もしくは訂正情報(またはそれら両方)を含み得る。ECCブロック480は、データブロック410〜470のすべてに使用される。ブロック410〜480は、磁気ディスクのトラック、フラッシュメモリ内のブロック、または各ブロック410〜480が異なる大容量ストレージデバイス上に記憶されるRAIDシステムのストライプ上で連続した状態であり得る。
【0020】
例えば、図1の大容量ストレージデバイス100と接続されるホストは、情報をデータブロック430〜440に書き込むように要求し得る。関連のホスト書込ベースECCは、上述のようにデータブロック430〜440に対して生成され、メモリ130等のメモリに保存される。EDCブロック480は、それが保護するデータの一部が新たに書き込まれたので、無効になる。大容量ストレージデバイス100は、バックグラウンドメディアスキャン等の内部信頼性動作を実行し得る。また、ECCブロック480は、それが保護するデータの一部が新たに書き込まれたので、無効になる。ブロック430〜440に対して生成されたECCは、EDCECCブロック480を更新することに用いられ得る。
【0021】
データブロック430内でエラーが発見された場合、大容量ストレージデバイスは、データブロック430またはECCブロック480が更新された場合にデータブロック430またはECCブロック480内のエラー検出もしくは訂正情報のいずれか(またはそれら両方)とともに、それに加えて、またはその代替として、関連のホスト書込ベースECCを使用してエラーを訂正することができる。
【0022】
図5は、説明されたホスト書込ベースECCに関連した方法500を示す。方法500は、ステップ510から始まり、その後、大容量ストレージがホスト書込ベースECCを保持して情報エラーを訂正するステップ520に進む。ステップ530において、退避、解放、または削除基準が満たされているかの判定がなされる。満たされていない場合、この方法は、ステップ520に戻る。満たされている場合、この方法は、ホスト書込ベースECCが退避されるステップ540に進む。その後、方法500は、ステップ550で終了する。
【0023】
上述の大容量ストレージのいずれかにおいて、ホスト書込ベースECCは、関連情報が上書き、消去、または解放される前に、退避、解放、または削除され得る。その結果、ホスト書込ベースECCは、関連情報と比較して一時的である。例えば、大容量ストレージは、ホスト書込ベースECCを使用して、EDCブロック480等のパリティを生成し得る。その後、ホスト書込ベースECCは、メモリから退避され得る。これは、単回使用の一時性の例である。別の例として、ホスト書込ベースECCは、退避、解放、または削除されるまで上述のように使用され得る。これは、非単回使用の一時性の例である。
【0024】
さらなる説明として、パリティ/冗長性の計算は、パリティストライプ(すなわち、RAIDグループ)上で実行され、そのパリティストライプとともにアドレス位置に保存され得る。上述の大容量ストレージは、パリティストライプの内容のいかなる知識も必要とすることなく、または基礎をなすパリティストライプの存在なしでさえも、ホスト書込ベースECCを計算する。ホスト書込ベースECCは、最近書き込まれたデータ上に一時的に保持される場合もあり、必ずしも全データセット(例えば、パリティストライプ)に保持されるとは限らない。
【0025】
図6は、上述のようにホスト書込ベースECCを使用する大容量ストレージの階層を示す。ここで、ホスト書込ベースECCは、大容量ストレージデバイス、システム、またはインフラのメモリ内に記憶され得る。追加のECCおよび保存された情報がどこに存在するかにかかわらず、大容量ストレージデバイス、システム、またはインフラは、その情報およびホスト書込ベースECCの両方を読み出し、それを上述のように使用し得る。例えば、大容量ストレージシステム620は、ホスト書込ベースECCをそのメモリ内に保持し、その後、関連情報を大容量ストレージデバイス610に書き込み得る。大容量ストレージシステム620は、後に、大容量ストレージデバイス610からの関連情報の読み取りを要求し得る。大容量ストレージシステム620は、関連情報を受信すると、上述のようにホスト書込ベースECCをその関連情報とともに使用し得る。
【0026】
別の例として、大容量ストレージシステム620は、ホスト書込ベースECCをそのメモリ内に保持し、その後、関連情報を大容量ストレージデバイス610に書き込み得る。大容量ストレージデバイス610は、後に、大容量ストレージシステム620からホスト書込ベースECCを要求し、それを上述のように使用し得る。同様のインタラクションが大容量ストレージインフラ630で生じ得る。
【0027】
上述の方法および装置は、ホスト書込ベースECCを使用して、最近書き込まれたデータ上に検出可能な誤りまたは任意の他のエラーを生成していないかもしれない書き込みエラーからデータを修復し得る。コントローラは、単独で、または関連ファームウェアとともに、1つのメモリまたは複数のメモリ内でのホスト書込ベースECCの保持を制御する。
【0028】
上述の説明は、詳細を提示するものであるが、特許請求の範囲を限定するものと見なされるべきではない。上述の説明の様々な修正、上述の説明からの削除、および上述の説明への追加は、特許請求の範囲内である。
図1
図2
図3
図4
図5
図6