JP2011503768A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2011503768A5 JP2011503768A5 JP2010534014A JP2010534014A JP2011503768A5 JP 2011503768 A5 JP2011503768 A5 JP 2011503768A5 JP 2010534014 A JP2010534014 A JP 2010534014A JP 2010534014 A JP2010534014 A JP 2010534014A JP 2011503768 A5 JP2011503768 A5 JP 2011503768A5
- Authority
- JP
- Japan
- Prior art keywords
- storage
- flash memory
- technology
- lifetime
- data
- 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.)
- Granted
Links
- 239000007787 solid Substances 0.000 claims description 5
- 230000005055 memory storage Effects 0.000 claims 12
- 238000000034 method Methods 0.000 description 8
- 230000000875 corresponding Effects 0.000 description 6
- 210000003414 Extremities Anatomy 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000004059 degradation Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000000265 homogenisation Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000002093 peripheral Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered Effects 0.000 description 1
Images
Description
[0001]本発明はメモリに関し、より詳細には、有限の寿命を有するメモリに関する。
[0002]メモリは、現代の企業コンピューティングシステムの性能の最も制限的な側面の1つである。メモリの1つの制限的な側面は、多くのタイプのメモリが限られた寿命を示すことである。例えば、フラッシュなどの不揮発性メモリの寿命は、消去され、再書込みされるごとに低下する。時間の経過、並びに数千回の消去及び再書込みに伴い、そのようなフラッシュメモリの信頼性が次第に低下する可能性がある。
[0003]メモリ寿命の低下を低減する1つの一般的な従来技術の技法は、ウェアレベリングである。ウェアレベリングは、記憶装置内の各ブロックを概ね等しい回数だけ消去し、書き込むことを可能にする。これにより、あるブロックがより頻繁に使用され、寿命の終わりに達し、使用を中止しなければならない状況が回避される。この手法は、装置全体の記憶容量を低下させる。記憶装置は予備ブロックを有しているかもしれないが、予備ブロックは使い果たされ、装置の記憶容量が低下して、記憶装置を使用できなくなる。
[0004]メモリベンダはしばしば、一定の割合のメモリの寿命期待値を保証する。例えば、フラッシュメモリベンダは、100000回のプログラム及び消去サイクルの後に(すなわち耐久性)、誤り訂正要件の超過に基づいて使用不能となるブロックが1%未満であることを保証するかもしれない。この場合、誤り訂正条件は、フラッシュ装置について512バイト当たり1ビットの誤りを訂正するように設定されるかもしれない。最近開発された装置には、ずっと低い耐久性を有するものもある。こうした装置は、より大きい誤り訂正条件を必要とする。
[0005]さらに、メモリブロックの寿命は互いに異なることがある。したがって、プログラム消去サイクルの数が平準化されるウェアレベリングを使用すると、記憶装置は、指定の割合のブロック(例えば1%)だけが不良となったときに寿命の終わりに達することがある。しかし、記憶装置に含まれる大部分のブロックがまだ動作可能な場合がある。
[0006]したがって、こうした問題及び/又は従来技術に関連する他の問題に対処することが求められている。
[0007]書込み頻度に基づいて、相異なる記憶装置にデータを書き込むシステム、方法、及びコンピュータプログラム製品を提供する。動作の際に、データが書き込まれる頻度を特定する。さらに、その頻度に基づいて、データを書き込むために、相異なるタイプの複数の記憶装置から選択を行う。
[0013]図1は、一実施形態による、メモリの複数のブロックの寿命を向上させる方法100を示す。図示するように、メモリの複数のブロックの寿命に影響を及ぼす少なくとも1つの因子を特定する。工程102を参照されたい。さらに、その少なくとも1つの因子に基づいて、書込み用の複数のブロックを選択する。工程104を参照されたい。
[0014]この説明の状況では、メモリの寿命は、メモリが任意の所望の程度のユーザビリティを示す任意の期間を含んでもよい。例えば、様々な実施形態では、そのような寿命は、全く限定はしないが、希望寿命、実寿命、推定寿命などを含んでもよい。さらに、ユーザビリティの程度は、依然として動作可能な構成要素(例えば、ブロック、セルなど)の割合、メモリ又はその構成要素の信頼性、並びに/或いはそれに関する任意の他のパラメータなどの任意のユーザビリティ関連パラメータを指してもよい。
[0015]さらに、様々な実施形態では、メモリは、限定はしないが、機械式記憶装置(例えばディスクドライブなど)、固体記憶装置(例えば、ダイナミックランダムアクセスメモリ(DRAM)、フラッシュメモリなど)、及び/又は任意の他の記憶装置を含んでもよい。メモリがフラッシュメモリを含む場合、フラッシュメモリは、限定はしないが、シングルレベルセル(SLC)装置、マルチレベルセル(MLC)装置、NORフラッシュメモリ、NANDフラッシュメモリ、MLC NANDフラッシュメモリ、SLC NANDフラッシュメモリなどを含んでもよい。一実施形態では、不揮発性メモリ装置は、セル当たり単一ビットNORフラッシュメモリ、セル当たり多ビットNORフラッシュメモリ、セル当たり単一ビットNANDフラッシュメモリ、及びセル当たり多ビットNANDフラッシュメモリのうちの少なくとも1つを含んでもよい。
[0016]さらに、この説明の状況では、因子は、メモリブロックの寿命に直接的又は間接的に影響を及ぼす可能性のある任意の因子を含んでもよい。例えば、様々な実施形態では、因子は、限定はしないが、メモリのブロックのうちの少なくとも1つに関係する読出し操作中の誤り(例えば、検出済み誤り、訂正済み誤りなど)の数、メモリのブロックのうちの少なくとも1つに関係するプログラム操作と読出し操作との間の期間、メモリのブロックのうちの少なくとも1つを消去する回数、メモリのブロックのうちの少なくとも1つを消去するのに必要な期間、メモリのブロックのうちの少なくとも1つをプログラムするのに必要な期間、メモリのブロックのうちの少なくとも1つをプログラムするのに必要な再試行の数、メモリのブロックのうちの少なくとも1つの1ページの介在読出しの数、隣接するページでの介在読出しの数、メモリの構造及び編成、並びに/或いは上記の定義を満たす任意の他の因子を含むことができる。一つの選択肢として、メモリのブロックの使用履歴を記憶してもよい。この場合、使用履歴を使用して、因子を決定してもよい。
[0017]次に、ユーザの要望に従って上記のフレームワークがそれと共に実装されることがあり、又は実装されないことのある様々な任意選択のアーキテクチャ及び機能に関するより例示的な情報を説明する。以下の情報は、例示のために説明されるものであり、いかなる形でも限定として解釈されるべきでないことに強く留意されたい。以下の機能のいずれかを、説明される他の機能を除外して、又は除外することなく任意選択的に組み込んでよい。
[0018]図2は、別の実施形態による、メモリの複数のブロックの寿命を向上させる技法200を示す。一つの選択肢として、この技法200は、図1の詳細の状況で実装することができる。しかし、もちろん技法200は任意の所望の環境で実装することができる。上述の定義は、この説明を通じて適用することができることにも留意されたい。
[0019]図示するように、複数のメモリブロック204の耐久性202を監視してもよい。この場合、図2の棒は、特定のブロック204についての書込み数を表す。この説明の状況では、耐久性202は、各メモリブロック204についての書込み及び消去サイクルの数を指す。したがって、耐久性202は、メモリブロック204の使用量に対応する。一実施形態では、書込み及び/又は消去の数を監視及び記録してもよい。
[0020]ブロック204の書込み数を監視することにより、どのブロックがより頻繁に使用されたかを判断してもよい。一実施形態では、監視を使用して、ブロック204のいずれかについての書込み数がしきい値206を超えたかどうかを判断してもよい。さらに、そのような監視によって使用量を均一化し、それによって、あるブロックについての書込み数がしきい値206に達したときに、しきい値206未満の他のブロックを書込みのために使用できるようにしてもよい。例えば、ブロックが書込み及び再利用(リサイクル)される順序を変更して、ブロック間の耐久性値の差を最小限に抑えてもよい。
[0021]動作の際に、メモリの複数のブロック204の寿命に影響を及ぼす少なくとも1つの因子を特定及び/又は監視してもよい。その場合、その少なくとも1つの因子に基づいて、書き込み用の複数のブロックを選択してもよい。様々な実施形態では、寿命の観点からブロック204の状態を示す複数の因子が存在してもよい。一実施形態では、因子は、各ブロック204に関連する訂正済み誤りの数を含んでいてもよい。そのような訂正済み誤りは、例えばデータの読出しに対応していてもよい。
[0022]様々なケースでは、因子は、複数の別の因子の影響を受けることがある。例えば、訂正済み誤りの数は、プログラム操作から読出しまでどれだけの時間が経過したか、及び読出しを何回実行したかに影響を受けることがある。さらに、ブロックを消去及びプログラムする回数も、訂正済み誤りの数に影響を与えることがある。
[0023]もちろん、他の多数の因子も、訂正した誤りの数に影響を及ぼすことがある。様々な実施形態では、因子は、ブロック204の使用の期間、書込みの頻度、操作率、操作の総許容数、及び寿命の期間などに対応していてもよい。もちろん、このような例示的態様は例示のために説明したに過ぎない。因子は、メモリのブロックの寿命期待値に影響を及ぼす可能性のある任意の特徴に対応してよいからである。
[0024]一実施形態では、スコアを使用して、ブロック204が書き込み及び再利用される順序を変更するかどうかを判断してもよい。例えば、各ブロック204は、少なくとも1つの因子に基づく、対応するスコア関数を有していてもよい。スコア関数を使用して、各ブロック204についてのスコアを求めてもよい。
[0025]このスコアを使用して、ブロック204のスコア関数間の値の差を最小限に抑えてもよい。1つの選択肢として、スコアは、ブロック204の寿命に影響を及ぼす1つの因子に基づいていてもよい。別の選択肢として、スコアは、ブロック204の寿命に影響を及ぼす複数の因子に基づいていてもよい。
[0026]例えば、2つのメモリブロックの場合、一方のメモリブロックがしきい値206を超えるスコアを有することがあり、一方がしきい値206未満のスコアを有することがある。この場合、各スコアは、ブロックの寿命に影響を及ぼす少なくとも1つの因子に対応していてよい。スコアは、上記のように任意の数の因子に対応していてよいことに留意されたい。
[0027]一実施形態では、スコアは、ブロックの寿命期待値に関する少なくとも1つの因子に対応する値を示してもよい。この場合、値の差は、ブロックの寿命期待値の差を反映してもよい。こうして、2つのブロックを均一化することができる。
[0028]一実施形態では、均一化は、しきい値206未満のブロックを使用する(例えば書き込む)と共に、しきい値206を超えるブロックを使用しないことを含んでもよい。このことを、2つのブロックが等しい値、又はほぼ等しい値に対応する時点まで行ってもよい。その時点になったら、しきい値206を上げて、両方のメモリブロックを使用してもよい。
[0029]当初、すべてのブロック204はしきい値206未満でもよい。あるブロックがしきい値206を超過したら、そのブロックを、しきい値206を超えたブロックとしてラベル付けし、或いは他の方法で特定してもよい。その場合、しきい値206未満のブロック204がしきい値206に達し、又はしきい値206を超過するまで、しきい値206未満のブロック204を使用してもよい。
[0030]このことを、しきい値206未満のすべてのブロック204が使い果たされるまで続行してもよい。使い果たされた時点で、すべての既存のブロック204が新しいしきい値未満となるように新しいしきい値を設定してもよい。このことを、ブロック204の寿命全体を通して反復してもよい。
[0031]1つの選択肢として、消去され書込みされるブロック204の総量を最小限に抑えるために、ブロック204間のばらつきが均一化される間、あるカウント割合の空きスペースを利用してもよい。さらに、様々な他の技法を使用して、ブロック間のばらつきを均一化(すなわちブロック再生)すると共に、消去及び書込みされるブロックの総量を最小限に抑えてもよい。さらに、様々な他の均一化技法を使用してブロック204間のばらつきを均一化してもよい。
[0032]一実施形態では、システムで複数のメモリモジュールを使用してもよい。この場合、メモリモジュールは、相異なる寿命を有するメモリモジュールを含むことができる。したがって、システムの全メモリ寿命は、最小の寿命を有するメモリモジュールに限定されるのではなく、最大でメモリの寿命の合計であってもよい。
[0033]一実施形態では、寿命推定器モジュールが、記憶バスを介してシステムのコントローラに通信されたコマンドを受け取るように動作してもよい。寿命推定器モジュールは、バスを介して受け取ったコマンドが実行されたと仮定して、推定寿命を計算してもよい。一実施形態では、寿命推定器を使用して、メモリブロック204の寿命に影響を及ぼす書込み数及び/又は他の因子を監視してもよい。厳密に任意選択として、寿命推定器モジュールを使用してしきい値206を設定してもよい。
[0034]もちろん、様々な技法を使用してしきい値206を設定してもよい。一実施形態では、しきい値206は所定のしきい値でよい。別の実施形態では、しきい値206を動的に設定してもよい。1つの選択肢として、しきい値は、メモリブロック206のうちの少なくとも1つに関連する装置の寿命(例えば期待寿命、希望寿命など)に直接的に相関してもよい。
[0035]一実施形態では、コストを削減し、性能を改善するために、記憶装置内冗長機能を使用してもよい。そのような実施形態では、個々の記憶装置間で、記憶装置の寿命に関連する任意の因子に基づいてデータを移動してもよい。例えば、状況が、記憶装置のうちの第1の記憶装置が1組のデータを含み、その1組のデータが記憶装置のうちの第2の記憶装置のデータに対してより頻繁に上書きされることを含んでもよい。そのような場合、寿命に関連する少なくとも1つの因子のしきい値を超過した後は、そのようなデータを第1記憶装置から第2記憶装置に移動し、それ以降は、第1記憶装置又は第1記憶装置の1つ又は複数のブロック/モジュールを、あまり頻繁に書き込まれないデータを格納するために使用してもよいし、あるいは今後使用しないようにしてもよい。
[0036]この目的のため、記憶装置寿命を適切に分散させて、ある記憶装置又は記憶装置の一部がグループの他の記憶装置に比べて非常に早い時点で故障することを回避してもよい。もちろん、この技法は、相異なる記憶装置の間だけでなく、記憶装置の各部分の間でも適用してもよい。この目的で、任意のメモリ構成要素の寿命をそのような方式で管理してもよい。
[0037]図3は、別の実施形態による、メモリの複数のブロックの寿命を向上させる方法300を示す。1つの選択肢として、この方法300は、図1〜2の機能の状況で実施することができる。しかし、もちろん方法300は任意の所望の環境で実施してもよい。上述の定義は、本説明を通じて適用することができることにも留意されたい。
[0038]図示するように、メモリのすべてのブロックがしきい値未満となるようにしきい値を定義する。工程302を参照されたい。一実施形態では、しきい値は、ブロックの使用量に対応していてもよい。例えば、ブロックが使用されるにつれて、それらのブロックに関連する使用量の値が、しきい値に近づいてもよい。別の実施形態では、しきい値は、ブロックのセットの寿命期待値に関連する少なくとも1つの他の因子に対応してもよい。
[0039]例えば、しきい値は、ブロックに関する訂正済み誤りの数に対応していてもよい。この場合、複数のブロックが使用されるにつれて、それらのブロックに関連する訂正済み誤りの数の値がしきい値に近づいてもよい。もちろん、しきい値は、ブロックの寿命に影響を及ぼす任意の数の因子に対応していてもよい。
[0040]各ブロックが下回る初期しきい値が特定されると、ブロックを再生(reclaim)する必要があるかどうかを判断する。工程304を参照されたい。例えば、ブロック又はブロックのグループがしきい値を超えており、又は他のブロックに対して不均衡に使用されていることを因子が示す場合に、1つ又は複数のブロックを再生する必要があると判断してもよい。
[0041]この説明の状況では、ブロック再生(block reclaiming)は、ガーベッジコレクション、読出し妨害、スクラビング、訂正済み誤りの数、又は他のイベントでトリガすることができ、少なくとも1つの因子に基づいてブロック間のばらつきを均一化することを指す。例えば、様々な実施形態では、ブロック再生は、読出し/書込み中に検出された誤りの数、読出し/書込み中に訂正された誤りの数、ブロックを消去するための時間の長さ、ブロックをプログラムするための時間の長さ、プログラミング中に使用されるエントリの数、ページの介在読出しの数、隣接するページでの介在読出しの数、ブロックの消去及びプログラムサイクルの数、及び/又は任意の他の因子に基づいてブロック間のばらつきを均一化することを含んでよい。
[0042]ブロックを再生する必要があると判断した場合、しきい値未満のブロックセット内のブロックを書込みのために割り振る。工程306を参照されたい。例えば、しきい値を超えるブロックセット内のブロック(複数可)ではなく、しきい値未満のブロックをメモリ操作で使用してもよい。
[0043]しきい値未満のブロックセット内のブロック(複数可)を書込みのために割り振った後は、しきい値を超えるブロックがあるかどうかを判断する。工程308を参照されたい。例えば、ブロックがしきい値を超過すると判断するまで、しきい値未満のブロックセット内のブロックに書込みを行ってもよい。
[0044]ブロックがしきい値を超過したと判断した場合、しきい値を超えるブロックに対応するブロックのセット内にブロックを配置してもよい。工程310を参照されたい。ブロックがしきい値を超過していない場合、ブロックは、しきい値未満のブロックセット内にとどまることができ、引き続き使用することができる。
[0045]次いで、しきい値未満のブロックのすべてが使い果たされたかどうかを判断する。工程312を参照されたい。言い換えれば、しきい値未満のブロックに対応するブロックのセット内のすべてのブロックが、しきい値を超えるブロックに対応するブロックのセットに含まれているかどうかを判断する。
[0046]しきい値未満のすべてのブロックが使い果たされた場合、新しいしきい値を設定し、すべての既存のブロックをその新しいしきい値未満となるように定義する。工程314を参照されたい。新しいしきい値を設定した後は、ブロックを再生する必要があるかどうかを再び判断する。1つの選択肢として、これをメモリブロックの寿命にわたって続行してもよい。
[0047]新しいしきい値及び初期しきい値は、様々な基準に基づいて設定できることに留意されたい。例えば、しきい値は、ブロックの予想使用量に基づいて設定してもよい。一実施形態では、しきい値は所定のしきい値でもよい。別の実施形態では、しきい値は、メモリブロック使用量に基づいて決定してもよい。
[0048]図4は、一実施形態による、書込み頻度に基づいて様々な記憶装置にデータを書き込む方法400を示す。1つの選択肢として、この方法400は、図1〜3の機能及びアーキテクチャの状況で実施することができる。しかし、もちろん方法400は任意の所望の環境で実装することができる。上述の定義は、本説明を通じて適用することができることにも留意されたい。
[0049]図示するように、データが書き込まれる頻度を特定する。工程402を参照されたい。さらに、頻度に基づいて、データを書き込むために相異なるタイプの複数の記憶装置から選択を行う。工程404を参照されたい。
[0050]一実施形態では、選択はしきい値に基づいてもよい。例えば、データが書き込まれる頻度がしきい値を超過する場合、一定の記憶装置を選択してデータを書き込んでもよい。1つの選択肢として、この相異なるタイプの記憶装置は、SLC及びMLC装置、相異なる耐久性を有するMLC同士、SLC及びDRAM、並びにMLC及びDRAMを含んでもよい。もちろん、様々な別の実施形態では、この相異なるタイプの記憶装置は、様々な異なるタイプのメモリを含む任意の数の装置を含んでもよい。
[0051]別の実施形態では、少なくとも2つの異なるタイプのメモリを1つの装置に集積することができる。例えば、フラッシュMLC及びSLCメモリを1つの装置上で組み合わせることができる。別の例として、2つの異なるタイプのフラッシュMLCを1つの装置に集積することができる。さらに別の例として、1つの装置でのメモリタイプの混合をプログラム的に定めてもよい。一例では、SLCフラッシュメモリに関連する記憶装置の一部を定め、MLCフラッシュメモリに関連する記憶装置の一部を定めてもよい。
[0052]特定の例として、特定のアプリケーション又はプログラムからのデータが高頻度で書き込まれると判断してもよい。この場合、SLC装置を選択してデータを書き込んでもよい。一方、特定のアプリケーション又はプログラムからのデータ、或いはディスクの特定の場所からのデータ、或いは特定のアクセスパターンからのデータが低頻度で書き込まれると判断してもよい。この場合、MLC装置を選択してデータを書き込んでもよい。もちろん、特定した頻度に基づいて任意の数の装置を選択してよいので、これは一例に過ぎない。
[0053]一実施形態では、寿命推定器モジュールは、記憶バスを介してシステムのコントローラに伝達されたコマンドを受け取るように働いてもよい。寿命推定器モジュールは、頻度を監視するとともに、バスを介して受け取ったコマンド(複数可)が実行されたと仮定して、推定寿命を計算してもよい。もちろん、頻度は様々な方式で求めることができ、寿命推定器モジュールで特定されるものに限定されない。
[0054]様々な実施形態では、上記の実施形態で述べたメモリは、機械式記憶装置(例えば、SATAディスクドライブ、SASディスクドライブ、ファイバチャネルディスクドライブ、IDEディスクドライブ、ATAディスクドライブ、CEディスクドライブ、USBディスクドライブ、スマートカードディスクドライブ、MMCディスクドライブなどを含むディスクドライブ)及び/又は非機械式記憶装置(例えば半導体ベースの記憶装置など)を含んでよいことに留意されたい。そのような非機械式メモリは、例えば揮発性又は不揮発性メモリを含んでよい。様々な実施形態では、不揮発性メモリ装置は、フラッシュメモリ(例えば、セル当たり単一ビットNORフラッシュメモリ、セル当たり多ビットNORフラッシュメモリ、セル当たり単一ビットNANDフラッシュメモリ、セル当たり多ビットNANDフラッシュメモリ、マルチレベル及び/又はセル当たり多ビットNANDフラッシュ、大規模ブロックフラッシュメモリ、抵抗型メモリ、相変化メモリ、磁気メモリなど)を含んでよい。メモリの様々な例を本明細書で述べたが、メモリに対して実施される様々な操作のために寿命が低下する可能性のある任意のタイプのメモリに様々な原理を適用することができることに留意されたい。
[0055]図5は、先の様々な実施形態の様々なアーキテクチャ及び/又は機能を実装することのできる例示的システム500を示す。例えば、例示的システム500は、先の実施形態のうちのいくつかで述べたコンピュータを表してもよい。さらに、上述の様々な装置は、システム500の構成要素でもよい。
[0056]図示するように、通信バス502に接続される少なくとも1つのホストプロセッサ501を含むシステム500が設けられる。システム500はまた、メインメモリ504をも含む。制御ロジック(ソフトウェア)及びデータがメインメモリ504内に格納され、メインメモリ504は、ランダムアクセスメモリ(RAM)の形態を取ってもよい。
[0057]システム500はまた、グラフィックスプロセッサ506、及びディスプレイ508すなわちコンピュータモニタをも含むことができる。システム500はまた、2次ストレージ510をも含むことができる。2次ストレージ510は、例えばハードディスクドライブ、及び/又はフロッピィディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表す取外し可能ストレージドライブを含む。取外し可能ストレージドライブは、周知の方式で取外し可能ストレージモジュールから読み取り、及び/又は取外し可能ストレージモジュールに書き込む。
[0058]コンピュータプログラム、又はコンピュータ制御論理アルゴリズムは、メインメモリ504及び/又は2次ストレージ510内に格納されてもよい。そのようなコンピュータプログラムは、実行されたときに、システム500が様々な機能を実施することを可能にする。メモリ504、ストレージ510、及び/又は任意の他のストレージが、コンピュータ可読媒体の可能な例である。
[0059]一実施形態では、先の様々な図のアーキテクチャ及び/又は機能は、ホストプロセッサ501、グラフィックスプロセッサ506、2次ストレージ510、ホストプロセッサ501とグラフィックスプロセッサ506の両方の機能の少なくとも一部が可能な集積回路(図示せず)、チップセット(すなわち、関連機能を実施するためのモジュールとして機能するように設計され、販売される一群の集積回路など)、及び/又はそれに関する任意の他の集積回路の状況で実装することができる。
[0060]さらに、先の様々な図のアーキテクチャ及び/又は機能は、一般的コンピュータシステム、回路板システム、エンターテイメント目的専用のゲームコンソールシステム、特定用途向けシステム、及び/又は任意の他の所望のシステムの状況で実装することができる。例えば、システム500は、デスクトップコンピュータ、ラップトップコンピュータ、及び/又は任意の他のタイプの論理機構の形態を取ることができる。さらに、システム500は、限定はしないが携帯情報端末(PDA)装置、携帯電話装置、テレビジョンなどを含む様々な他の装置の形態を取ることができる。
[0061]さらに、図示していないが、通信のためにシステム500をネットワーク[例えば、遠隔通信ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、インターネットなどの広域ネットワーク(WAN)、ピアツーピアネットワーク、ケーブルネットワークなど]に接続してもよい。
[0062]様々な実施形態を上記で説明したが、それらは限定としてではなく、例示として提示したものであることを理解されたい。したがって、好ましい実施形態の広さ及び範囲は、上述の例示的実施形態のいずれによっても限定されず、以下の特許請求の範囲及びその均等物だけに従って定義されるものとする。
Claims (41)
- 異なる記憶装置にデータを書き込む方法であって、
複数の記憶技術を備えるメモリの複数の部分にデータが書き込まれる頻度値を監視するステップであって、各前記部分が、前記複数の記憶技術のうち特定の記憶技術を備え、寿命を有しているステップと、
前記複数の部分の前記監視された頻度値と前記寿命とに少なくとも部分的に基づいて、前記データが書き込まれる前記部分を動的に選択するステップと
を含む方法。 - 前記動的に選択するステップが、しきい値に更に少なくとも部分的に基づく請求項1に記載の方法。
- しきい値を求めるステップを更に含む請求項1に記載の方法。
- 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過する場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項3に記載の方法。
- 前記第1の部分が、前記複数の記憶技術のうちシングルレベルセル(SLC)記憶技術を備える請求項4に記載の方法。
- 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過しない場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項3に記載の方法。
- 前記第1の部分が、前記複数の記憶技術のうちマルチレベルセル(MLC)記憶技術を備える請求項4に記載の方法。
- 前記頻度値が寿命推定器モジュールによって監視される請求項1に記載の方法。
- 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、前記記憶装置の推定寿命を計算する請求項8に記載の方法。
- 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、記憶コマンドに基づいて前記記憶装置の推定寿命を計算する請求項8に記載の方法。
- 前記複数の記憶技術が機械式記憶技術を含む請求項1に記載の方法。
- 前記機械式記憶技術がディスクドライブを含む請求項11に記載の方法。
- 前記複数の記憶技術が固体記憶技術を含む請求項1に記載の方法。
- 前記固体記憶技術がフラッシュメモリ技術を含む請求項13に記載の方法。
- 前記フラッシュメモリ技術がNANDフラッシュメモリを含む請求項14に記載の方法。
- 前記複数の記憶技術が、シングルレベルセル(SLC)フラッシュメモリ記憶技術及びマルチレベルセル(MLC)フラッシュメモリ記憶技術を含んでおり、前記SLCフラッシュメモリ記憶技術及び前記MLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項1に記載の方法。
- 前記複数の部分のうち少なくとも1つの部分の前記特定の記憶技術をプログラム的に定めるステップをさらに含む請求項16に記載の方法。
- 前記複数の記憶技術が、2つの異なるタイプのシングルレベルセル(SLC)フラッシュメモリ記憶技術を含んでおり、前記2つの異なるタイプのSLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項1に記載の方法。
- 前記複数の記憶技術が揮発性メモリを含む請求項1に記載の方法。
- 前記複数の記憶技術が不揮発性メモリを含む請求項1に記載の方法。
- 異なる記憶装置にデータを書き込む装置であって、
複数の記憶技術を備えるメモリの複数の部分にデータが書き込まれる頻度値を監視する手段であって、各前記部分が、前記複数の記憶技術のうち特定の記憶技術を備え、寿命を有している手段と、
前記部分の前記監視された頻度値と前記寿命とに少なくとも部分的に基づいて、前記データが書き込まれる前記部分を動的に選択する手段と
を含む装置。 - 少なくとも前記監視する手段が、システムと前記メモリとの間に結合される請求項21に記載の装置。
- 前記動的な選択が、しきい値に更に少なくとも部分的に基づく請求項21に記載の装置。
- しきい値を求める手段を更に含む請求項21に記載の装置。
- 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過する場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項24に記載の装置。
- 前記第1の部分が、前記複数の記憶技術のうちシングルレベルセル(SLC)記憶技術を備える請求項25に記載の装置。
- 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過しない場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項24に記載の装置。
- 前記第1の部分が、前記複数の記憶技術のうちマルチレベルセル(MLC)記憶技術を備える請求項25に記載の装置。
- 前記頻度値が寿命推定器モジュールによって監視される請求項21に記載の装置。
- 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、前記記憶装置の推定寿命を計算する請求項29に記載の装置。
- 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、記憶コマンドに基づいて前記記憶装置の推定寿命を計算する請求項29に記載の装置。
- 前記複数の記憶技術が機械式記憶技術を含む請求項21に記載の装置。
- 前記機械式記憶技術がディスクドライブを含む請求項32に記載の装置。
- 前記複数の記憶技術が固体記憶技術を含む請求項21に記載の装置。
- 前記固体記憶技術がフラッシュメモリ技術を含む請求項34に記載の装置。
- 前記フラッシュメモリ技術がNANDフラッシュメモリを含む請求項35に記載の装置。
- 前記複数の記憶技術が、シングルレベルセル(SLC)フラッシュメモリ記憶技術及びマルチレベルセル(MLC)フラッシュメモリ記憶技術を含んでおり、前記SLCフラッシュメモリ記憶技術及び前記MLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項21に記載の装置。
- 前記複数の部分のうち少なくとも1つの部分の前記特定の記憶技術をプログラム的に定める手段をさらに含む請求項37に記載の装置。
- 前記複数の記憶技術が、2つの異なるタイプのシングルレベルセル(SLC)フラッシュメモリ記憶技術を含んでおり、前記2つの異なるタイプのSLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項21に記載の装置。
- 前記複数の記憶技術が揮発性メモリを含む請求項21に記載の装置。
- 前記複数の記憶技術が不揮発性メモリを含む請求項21に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/942,640 | 2007-11-19 | ||
US11/942,640 US7849275B2 (en) | 2007-11-19 | 2007-11-19 | System, method and a computer program product for writing data to different storage devices based on write frequency |
PCT/US2008/012033 WO2009067138A1 (en) | 2007-11-19 | 2008-10-23 | Writing data to different storage devices based on write frequency |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011503768A JP2011503768A (ja) | 2011-01-27 |
JP2011503768A5 true JP2011503768A5 (ja) | 2011-12-15 |
JP5819610B2 JP5819610B2 (ja) | 2015-11-24 |
Family
ID=40643192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010534014A Expired - Fee Related JP5819610B2 (ja) | 2007-11-19 | 2008-10-23 | 異なる記憶装置にデータを書き込む方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7849275B2 (ja) |
JP (1) | JP5819610B2 (ja) |
CN (1) | CN101874239B (ja) |
TW (2) | TWI505088B (ja) |
WO (1) | WO2009067138A1 (ja) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747813B2 (en) * | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7809900B2 (en) * | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
KR101498673B1 (ko) * | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
KR101413736B1 (ko) * | 2007-09-13 | 2014-07-02 | 삼성전자주식회사 | 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 |
US7849275B2 (en) * | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
TWI352354B (en) * | 2007-12-31 | 2011-11-11 | Phison Electronics Corp | Method for preventing read-disturb happened in non |
TWI373768B (en) * | 2008-02-05 | 2012-10-01 | Phison Electronics Corp | System, controller and method for data storage |
US8554983B2 (en) | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
US8060719B2 (en) | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
JP2011022933A (ja) * | 2009-07-17 | 2011-02-03 | Toshiba Corp | メモリ管理装置を含む情報処理装置及びメモリ管理方法 |
US9280466B2 (en) | 2008-09-09 | 2016-03-08 | Kabushiki Kaisha Toshiba | Information processing device including memory management device managing access from processor to memory and memory management method |
JP5192352B2 (ja) | 2008-10-30 | 2013-05-08 | 株式会社日立製作所 | 記憶装置及びデータ格納領域管理方法 |
US20100146187A1 (en) * | 2008-12-05 | 2010-06-10 | Grimsrud Knut S | Endurance management technique |
KR101015655B1 (ko) * | 2009-05-29 | 2011-02-22 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 구동 방법 |
CN102576330B (zh) * | 2009-06-12 | 2015-01-28 | 提琴存储器公司 | 具有持久化无用单元收集机制的存储系统 |
JP2011186555A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
US8140712B2 (en) * | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
JP2011186563A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
JP2011186554A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
JP2011186561A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置 |
JP5322978B2 (ja) * | 2010-03-04 | 2013-10-23 | 株式会社東芝 | 情報処理装置及び方法 |
JP2011186562A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
JP2011186558A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
EP2455865B1 (en) * | 2009-07-17 | 2020-03-04 | Toshiba Memory Corporation | Memory management device |
JP2011186559A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置 |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
JP5330136B2 (ja) * | 2009-07-22 | 2013-10-30 | 株式会社東芝 | 半導体記憶装置 |
US7948798B1 (en) | 2009-07-22 | 2011-05-24 | Marvell International Ltd. | Mixed multi-level cell and single level cell storage device |
CN102142277A (zh) * | 2010-01-28 | 2011-08-03 | 深圳市江波龙电子有限公司 | 一种存储器及存储器读写控制方法及系统 |
US8458417B2 (en) * | 2010-03-10 | 2013-06-04 | Seagate Technology Llc | Garbage collection in a storage device |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
CN101794199A (zh) * | 2010-03-26 | 2010-08-04 | 山东高效能服务器和存储研究院 | 基于高速磁盘缓存的计算机磁盘性能加速方法 |
US9183134B2 (en) | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
JP5553309B2 (ja) * | 2010-08-11 | 2014-07-16 | 国立大学法人 東京大学 | データ処理装置 |
US9037778B2 (en) * | 2010-08-20 | 2015-05-19 | Samsung Electronics Co., Ltd. | Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) * | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
KR101467941B1 (ko) | 2011-04-26 | 2014-12-02 | 엘에스아이 코포레이션 | 비휘발성 저장부에 대한 가변 오버프로비저닝 |
CN102184229B (zh) * | 2011-05-11 | 2013-05-01 | 中国科学院软件研究所 | 一种海量rfid标签信息的内存数据存储方法 |
WO2012159024A1 (en) * | 2011-05-19 | 2012-11-22 | Oracle International Corporation | Techniques for automatic data placement with compression and columnar storage |
US20120317337A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
US9417803B2 (en) * | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
JP5853596B2 (ja) * | 2011-10-31 | 2016-02-09 | 沖電気工業株式会社 | 半導体ディスク寿命監視装置 |
KR20130060791A (ko) * | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브 |
US9329948B2 (en) | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
US9218881B2 (en) * | 2012-10-23 | 2015-12-22 | Sandisk Technologies Inc. | Flash memory blocks with extended data retention |
KR20150049772A (ko) * | 2013-10-31 | 2015-05-08 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
US9558124B2 (en) | 2013-11-08 | 2017-01-31 | Seagate Technology Llc | Data storage system with passive partitioning in a secondary memory |
US9229640B2 (en) | 2013-11-15 | 2016-01-05 | Microsoft Technology Licensing, Llc | Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table |
US9348520B2 (en) | 2014-03-24 | 2016-05-24 | Western Digital Technologies, Inc. | Lifetime extension of non-volatile semiconductor memory for data storage device |
TWI517165B (zh) * | 2014-03-31 | 2016-01-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US9690696B1 (en) | 2014-05-14 | 2017-06-27 | Western Digital Technologies, Inc. | Lifetime extension of memory for data storage system |
JP6139807B2 (ja) | 2014-12-04 | 2017-05-31 | 株式会社東芝 | ストレージ装置、ストレージ装置の制御方法、及びプログラムを記憶するコンピュータ読み取り可能な不揮発性記憶媒体 |
CN104461754B (zh) * | 2014-12-10 | 2018-06-19 | 福州瑞芯微电子股份有限公司 | 一种监控eMMC的方法和装置 |
CN106294202A (zh) * | 2015-06-12 | 2017-01-04 | 联想(北京)有限公司 | 一种数据存储方法和装置 |
CN105117175B (zh) * | 2015-08-18 | 2018-02-02 | 重庆大学 | 一种基于软件编译层的可变电阻式存储器磨损均衡方法 |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US11294588B1 (en) * | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
US20170068467A1 (en) * | 2015-09-04 | 2017-03-09 | HGST Netherlands B.V. | Wear management for flash memory devices |
US10222982B2 (en) * | 2016-02-10 | 2019-03-05 | Ricoh Company, Ltd. | Lifetime management device and lifetime management method |
KR102523967B1 (ko) * | 2016-03-25 | 2023-04-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 |
CN106502594A (zh) * | 2016-10-31 | 2017-03-15 | 维沃移动通信有限公司 | 一种数据处理方法及终端 |
US10289548B1 (en) * | 2017-04-28 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for garbage collection in a storage system which balances wear-leveling and performance |
US11210166B1 (en) * | 2017-12-22 | 2021-12-28 | Pliops Ltd. | Efficient redundancy management in key-value NAND flash storage |
US11269747B2 (en) * | 2018-03-08 | 2022-03-08 | Symbol Technologies, Llc | Method, system and apparatus for assessing application impact on memory devices |
TWI707230B (zh) * | 2018-11-22 | 2020-10-11 | 瑞昱半導體股份有限公司 | 電腦系統、記憶體管理方法與非暫態電腦可讀取媒體 |
CN111240576A (zh) * | 2018-11-28 | 2020-06-05 | 瑞昱半导体股份有限公司 | 计算机系统、存储器管理方法与非暂态计算机可读介质 |
US11237955B2 (en) | 2019-10-28 | 2022-02-01 | Samsung Electronics Co., Ltd. | Memory device, method of operating memory device, and computer system including memory device |
KR20210050635A (ko) | 2019-10-28 | 2021-05-10 | 삼성전자주식회사 | 메모리 장치, 및 이를 포함하는 컴퓨터 시스템 |
US20210382818A1 (en) * | 2020-06-08 | 2021-12-09 | Western Digital Technologies, Inc. | Solid-State Storage Devices that Reduce Read Time for Read Time-Sensitive Data |
Family Cites Families (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7018A (en) * | 1850-01-15 | File for keeping papers | ||
US6008A (en) * | 1849-01-09 | Pkoto-litho | ||
JPH03250499A (ja) | 1990-02-27 | 1991-11-08 | Nec Corp | データ記憶回路 |
GB2251324B (en) | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
US5768182A (en) | 1991-05-21 | 1998-06-16 | The Regents Of The University Of California | Ferroelectric nonvolatile dynamic random access memory device |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
JP2610737B2 (ja) | 1991-12-20 | 1997-05-14 | シャープ株式会社 | 記録再生装置 |
US5315602A (en) | 1992-08-12 | 1994-05-24 | Digital Equipment Corporation | Optimized stripe detection for redundant arrays of disk drives |
US5341339A (en) | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for wear leveling in a flash EEPROM memory |
US5337275A (en) | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
US5485595A (en) | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
JPH08124393A (ja) | 1994-10-20 | 1996-05-17 | Fujitsu Ltd | データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置 |
DE19540915A1 (de) | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
US5568423A (en) | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
US5805809A (en) | 1995-04-26 | 1998-09-08 | Shiva Corporation | Installable performance accelerator for maintaining a local cache storing data residing on a server computer |
US5621687A (en) | 1995-05-31 | 1997-04-15 | Intel Corporation | Programmable erasure and programming time for a flash memory |
US5835935A (en) | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
US5956473A (en) | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US5963970A (en) | 1996-12-20 | 1999-10-05 | Intel Corporation | Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields |
JP3358795B2 (ja) | 1997-03-27 | 2002-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ディスクドライブ装置及びその制御方法 |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
JPH11110297A (ja) * | 1997-10-03 | 1999-04-23 | Hitachi Ltd | メモリ内蔵型1チップコンピュータ |
JP3898305B2 (ja) | 1997-10-31 | 2007-03-28 | 富士通株式会社 | 半導体記憶装置、半導体記憶装置の制御装置及び制御方法 |
US6305014B1 (en) | 1998-06-18 | 2001-10-16 | International Business Machines Corporation | Lifetime-sensitive instruction scheduling mechanism and method |
DE59811962D1 (de) | 1998-09-04 | 2004-10-21 | Hyperstone Ag | Zugriffssteuerung eines speichers beschränkter löschhäufigkeit |
US6395194B1 (en) * | 1998-12-18 | 2002-05-28 | Intersurface Dynamics Inc. | Chemical mechanical polishing compositions, and process for the CMP removal of iridium thin using same |
FR2787601A1 (fr) | 1998-12-22 | 2000-06-23 | Gemplus Card Int | Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire |
US6145069A (en) | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
KR100388179B1 (ko) | 1999-02-08 | 2003-06-19 | 가부시끼가이샤 도시바 | 불휘발성 반도체 메모리 |
US6298415B1 (en) | 1999-02-19 | 2001-10-02 | International Business Machines Corporation | Method and system for minimizing writes and reducing parity updates in a raid system |
US6195727B1 (en) | 1999-03-31 | 2001-02-27 | International Business Machines Corporation | Coalescing raid commands accessing contiguous data in write-through mode |
JP2001067881A (ja) * | 1999-08-30 | 2001-03-16 | Toshiba Corp | 連想記憶装置及び記憶媒体 |
JP2000112818A (ja) * | 1999-09-03 | 2000-04-21 | Matsushita Graphic Communication Systems Inc | フラッシュメモリ制御装置及び方法 |
US6405295B1 (en) | 1999-09-07 | 2002-06-11 | Oki Electric Industry, Co., Ltd. | Data storage apparatus for efficient utilization of limited cycle memory material |
JP3937214B2 (ja) * | 1999-09-17 | 2007-06-27 | 株式会社ルネサステクノロジ | エラー訂正回数を記録する記憶装置 |
US7130807B1 (en) | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
US20050160218A1 (en) | 2004-01-20 | 2005-07-21 | Sun-Teck See | Highly integrated mass storage device with an intelligent flash controller |
JP2001306543A (ja) * | 2000-04-19 | 2001-11-02 | Nec Corp | マイクロコンピュータ及びフラッシュメモリのデータ書換え方法 |
US6484228B2 (en) | 2000-04-19 | 2002-11-19 | Motorola, Inc. | Method and apparatus for data compression and decompression for a data processor system |
US6256232B1 (en) | 2000-07-07 | 2001-07-03 | Institute For Information Industry | Data access method capable of reducing the number of erasing to flash memory and data patch and access device using the same |
JP2002074983A (ja) * | 2000-08-25 | 2002-03-15 | Nec Microsystems Ltd | 半導体集積回路 |
US7113432B2 (en) * | 2000-09-14 | 2006-09-26 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
KR100388498B1 (ko) | 2000-12-30 | 2003-06-25 | 한국전자통신연구원 | 복수 개의 레이드를 구비한 계층적 레이드 시스템 |
GB2371886B (en) | 2001-01-31 | 2005-06-22 | Hewlett Packard Co | Storage apparatus |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
TW520514B (en) | 2001-08-02 | 2003-02-11 | Macronix Int Co Ltd | Circuit and method of qualification test for non-volatile memory |
US6948026B2 (en) | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US20030058681A1 (en) | 2001-09-27 | 2003-03-27 | Intel Corporation | Mechanism for efficient wearout counters in destructive readout memory |
US7000063B2 (en) | 2001-10-05 | 2006-02-14 | Matrix Semiconductor, Inc. | Write-many memory device and method for limiting a number of writes to the write-many memory device |
US20030084397A1 (en) | 2001-10-31 | 2003-05-01 | Exanet Co. | Apparatus and method for a distributed raid |
US6735673B2 (en) | 2002-01-10 | 2004-05-11 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for cache line compression |
US6640283B2 (en) | 2002-01-16 | 2003-10-28 | Hewlett-Packard Development Company, L.P. | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size |
US6606273B1 (en) | 2002-04-11 | 2003-08-12 | Advanced Micro Devices, Inc. | Methods and systems for flash memory tunnel oxide reliability testing |
JP2003316664A (ja) | 2002-04-24 | 2003-11-07 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US6775751B2 (en) | 2002-08-06 | 2004-08-10 | International Business Machines Corporation | System and method for using a compressed main memory based on degree of compressibility |
KR100484485B1 (ko) | 2002-10-01 | 2005-04-20 | 한국전자통신연구원 | 비휘발성 메모리에의 데이터 저장 방법 및 장치 |
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US20040135903A1 (en) | 2002-10-11 | 2004-07-15 | Brooks Lane C. | In-stream lossless compression of digital image sensor data |
CA2408979A1 (en) | 2002-10-18 | 2004-04-18 | Richard Egon Schauble | Tamper-evident use-indicating odometer and engine-timer |
CN100483552C (zh) | 2002-10-28 | 2009-04-29 | 桑迪士克股份有限公司 | 在非易失性存储系统中执行自动磨损平衡的方法 |
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
US7035967B2 (en) | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US6925523B2 (en) | 2003-03-03 | 2005-08-02 | Agilent Technologies, Inc. | Managing monotonically increasing counter values to minimize impact on non-volatile storage |
US7809252B2 (en) * | 2003-04-09 | 2010-10-05 | Corel Inc. | Systems and methods for caching multimedia data |
JP2004310650A (ja) * | 2003-04-10 | 2004-11-04 | Renesas Technology Corp | メモリ装置 |
US7320100B2 (en) | 2003-05-20 | 2008-01-15 | Cray Inc. | Apparatus and method for memory with bit swapping on the fly and testing |
JP4783545B2 (ja) * | 2003-05-21 | 2011-09-28 | パナソニック株式会社 | 部品実装装置 |
US7213102B2 (en) | 2003-06-26 | 2007-05-01 | International Business Machines Corporation | Apparatus method and system for alternate control of a RAID array |
US7606929B2 (en) * | 2003-06-30 | 2009-10-20 | Microsoft Corporation | Network load balancing with connection manipulation |
GB0320494D0 (en) | 2003-09-02 | 2003-10-01 | Ibm | Methods apparatus and controllers for a raid storage system |
US7143238B2 (en) | 2003-09-30 | 2006-11-28 | Intel Corporation | Mechanism to compress data in a cache |
US20070067366A1 (en) | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
US7032087B1 (en) | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
US8645622B2 (en) | 2003-11-18 | 2014-02-04 | International Business Machines Corporation | Method to protect data on a disk drive from uncorrectable media errors |
US8140860B2 (en) | 2003-12-15 | 2012-03-20 | International Business Machines Corporation | Policy-driven file system with integrated RAID functionality |
US7480760B2 (en) | 2003-12-17 | 2009-01-20 | Wegener Communications, Inc. | Rotational use of memory to minimize write cycles |
JP4357304B2 (ja) * | 2004-01-09 | 2009-11-04 | 株式会社バッファロー | 外部記憶装置 |
US7595796B2 (en) | 2004-04-23 | 2009-09-29 | Hewlett-Packard Development Company, L.P. | Optimizing lifetime of a display |
US7353423B2 (en) | 2004-09-24 | 2008-04-01 | International Business Machines Corporation | System and method for improving the performance of operations requiring parity reads in a storage array system |
US20060080515A1 (en) | 2004-10-12 | 2006-04-13 | Lefthand Networks, Inc. | Non-Volatile Memory Backup for Network Storage System |
US7664796B2 (en) | 2004-10-13 | 2010-02-16 | Microsoft Corporation | Electronic labeling for offline management of storage devices |
WO2006052904A2 (en) | 2004-11-08 | 2006-05-18 | Innopath Software, Inc. | Updating compressed read-only memory file system (cramfs) images |
US20060123312A1 (en) | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
US7433994B2 (en) | 2004-12-07 | 2008-10-07 | Ocz Technology Group, Inc. | On-device data compression to increase speed and capacity of flash memory-based mass storage devices |
US7224604B2 (en) | 2005-03-14 | 2007-05-29 | Sandisk Il Ltd. | Method of achieving wear leveling in flash memory using relative grades |
US7447078B2 (en) * | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
US7206230B2 (en) | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US20070124648A1 (en) | 2005-10-31 | 2007-05-31 | Ajay Dholakia | Data protection method |
US7797611B2 (en) | 2005-11-14 | 2010-09-14 | International Business Machines Corporation | Creating an error correction coding scheme and reducing data loss |
US7457178B2 (en) * | 2006-01-12 | 2008-11-25 | Sandisk Corporation | Trimming of analog voltages in flash memory devices |
US20070180186A1 (en) | 2006-01-27 | 2007-08-02 | Cornwell Michael J | Non-volatile memory management |
US20070208904A1 (en) * | 2006-03-03 | 2007-09-06 | Wu-Han Hsieh | Wear leveling method and apparatus for nonvolatile memory |
KR100735437B1 (ko) | 2006-03-07 | 2007-07-04 | 삼성전자주식회사 | 이동통신 단말기에서의 레이드 시스템 및 방법 |
US8848789B2 (en) | 2006-03-27 | 2014-09-30 | Qualcomm Incorporated | Method and system for coding and decoding information associated with video compression |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US7555575B2 (en) | 2006-07-27 | 2009-06-30 | Hitachi, Ltd. | Method and apparatus for migrating data between storage volumes of different data pattern |
US7561482B2 (en) | 2006-09-07 | 2009-07-14 | Sandisk Corporation | Defective block isolation in a non-volatile memory system |
JP5171840B2 (ja) | 2006-11-24 | 2013-03-27 | サンドフォース インコーポレイテッド | メモリの寿命を縮める動作を遅延させる方法及びストレージシステム |
JP2010511963A (ja) | 2006-12-08 | 2010-04-15 | サンドフォース インコーポレイテッド | 複数のストレージデバイスでのデータ冗長性 |
US20080183963A1 (en) | 2007-01-31 | 2008-07-31 | International Business Machines Corporation | System, Method, And Service For Providing A Generic RAID Engine And Optimizer |
KR100854032B1 (ko) * | 2007-02-09 | 2008-08-26 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 저장 방법 |
US20090055682A1 (en) | 2007-07-18 | 2009-02-26 | Panasas Inc. | Data storage systems and methods having block group error correction for repairing unrecoverable read errors |
US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US7870105B2 (en) | 2007-11-20 | 2011-01-11 | Hitachi, Ltd. | Methods and apparatus for deduplication in storage system |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US20090271659A1 (en) | 2008-04-24 | 2009-10-29 | Ulf Troppens | Raid rebuild using file system and block list |
-
2007
- 2007-11-19 US US11/942,640 patent/US7849275B2/en not_active Expired - Fee Related
-
2008
- 2008-10-23 WO PCT/US2008/012033 patent/WO2009067138A1/en active Application Filing
- 2008-10-23 JP JP2010534014A patent/JP5819610B2/ja not_active Expired - Fee Related
- 2008-10-23 CN CN200880116826.7A patent/CN101874239B/zh not_active Expired - Fee Related
- 2008-11-18 TW TW102115170A patent/TWI505088B/zh not_active IP Right Cessation
- 2008-11-18 TW TW097144479A patent/TWI420303B/zh not_active IP Right Cessation
-
2010
- 2010-11-30 US US12/956,926 patent/US8230184B2/en not_active Expired - Fee Related
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5819610B2 (ja) | 異なる記憶装置にデータを書き込む方法及び装置 | |
US20200167083A1 (en) | Techniques for controlling recycling of blocks of memory | |
JP2011503768A5 (ja) | ||
JP2011503741A5 (ja) | ||
US10592134B1 (en) | Open block stability scanning | |
US8332696B2 (en) | Defect management method for storage medium and system thereof | |
US20090172255A1 (en) | Wear leveling method and controller using the same | |
US11036429B2 (en) | Memory control method, memory storage device and memory control circuit unit to determine a source block using interleaving information | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
TW200907965A (en) | Flash memory refresh techniques triggered by controlled scrub data reads | |
US10545700B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
US20220413737A1 (en) | Secure-Erase Prediction for Data Storage Devices | |
US10346040B2 (en) | Data merging management method based on data type, memory storage device and memory control circuit unit |