JP2011503768A5 - - Google Patents

Download PDF

Info

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
Application number
JP2010534014A
Other languages
English (en)
Other versions
JP5819610B2 (ja
JP2011503768A (ja
Filing date
Publication date
Priority claimed from US11/942,640 external-priority patent/US7849275B2/en
Application filed filed Critical
Publication of JP2011503768A publication Critical patent/JP2011503768A/ja
Publication of JP2011503768A5 publication Critical patent/JP2011503768A5/ja
Application granted granted Critical
Publication of JP5819610B2 publication Critical patent/JP5819610B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

書込み頻度に基づく相異なる記憶装置へのデータの書込み
[0001]本発明はメモリに関し、より詳細には、有限の寿命を有するメモリに関する。
[0002]メモリは、現代の企業コンピューティングシステムの性能の最も制限的な側面の1つである。メモリの1つの制限的な側面は、多くのタイプのメモリが限られた寿命を示すことである。例えば、フラッシュなどの不揮発性メモリの寿命は、消去され、再書込みされるごとに低下する。時間の経過、並びに数千回の消去及び再書込みに伴い、そのようなフラッシュメモリの信頼性が次第に低下する可能性がある。
[0003]メモリ寿命の低下を低減する1つの一般的な従来技術の技法は、ウェアレベリングである。ウェアレベリングは、記憶装置内の各ブロックを概ね等しい回数だけ消去し、書き込むことを可能にする。これにより、あるブロックがより頻繁に使用され、寿命の終わりに達し、使用を中止しなければならない状況が回避される。この手法は、装置全体の記憶容量低下させる。記憶装置予備ブロックを有しているかもしれないが、予備ブロックは使い果たされ、装置の記憶容量が低下して、記憶装置を使用できなくなる
[0004]メモリベンダはしばしば、一定の割合のメモリの寿命期待値を保証する。例えば、フラッシュメモリベンダは、100000回のプログラム及び消去サイクルの後に(すなわち耐久性)、誤り訂正要件の超過に基づいて使用不能となるブロックが1%未満であることを保証するかもしれない。この場合、誤り訂正条件は、フラッシュ装置について512バイト当たりビット誤りを訂正するように設定されるかもしれない。最近開発された装置には、ずっと低い耐久性を有するものもある。こうした装置は、より大きい誤り訂正条件を必要とする。
[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つのページの介読出しの数、隣接するページでの介読出しの数、メモリの構造及び編成、並びに/或いは上記の定義を満たす任意の他の因子を含むことができる。一つの選択として、メモリのブロックの使用履歴を記憶してもよい。この場合、使用履歴を使用して、因子を決定してもよい
[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. 異なる記憶装置にデータを書き込む方法であって、
    複数の記憶技術を備えるメモリの複数の部分にデータが書き込まれる頻度監視するステップであって、各前記部分が、前記複数の記憶技術のうち特定の記憶技術を備え、寿命を有しているステップと、
    前記複数の部分の前記監視された頻度値と前記寿命と少なくとも部分的に基づいて、前記データ書き込まれる前記部分を動的に選択するステップと
    を含む方法。
  2. 前記動的に選択するステップがしきい値に更に少なくとも部分的に基づく請求項1に記載の方法。
  3. しきい値を求めるステップをに含む請求項1に記載の方法。
  4. 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過する場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項3に記載の方法。
  5. 前記第1の部分、前記複数の記憶技術のうちシングルレベルセル(SLC)記憶技術備える請求項4に記載の方法。
  6. 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過しない場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項に記載の方法。
  7. 前記第1の部分、前記複数の記憶技術のうちマルチレベルセル(MLC)記憶技術備える請求項4に記載の方法。
  8. 前記頻度が寿命推定器モジュールによって監視される請求項1に記載の方法。
  9. 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、前記記憶装置の推定寿命を計算する請求項8に記載の方法。
  10. 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、記憶コマンドに基づいて前記記憶装置の推定寿命を計算する請求項8に記載の方法。
  11. 前記複数の記憶技術が機械式記憶技術を含む請求項1に記載の方法。
  12. 前記機械式記憶技術がディスクドライブを含む請求項11に記載の方法。
  13. 前記複数の記憶技術が固体記憶技術を含む請求項1に記載の方法。
  14. 前記固体記憶技術がフラッシュメモリ技術を含む請求項13に記載の方法。
  15. 前記フラッシュメモリ技術がNANDフラッシュメモリを含む請求項14に記載の方法。
  16. 前記複数の記憶技術が、シングルレベルセル(SLC)フラッシュメモリ記憶技術及びマルチレベルセル(MLC)フラッシュメモリ記憶技術を含んでおり、前記SLCフラッシュメモリ記憶技術及び前記MLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項1に記載の方法。
  17. 前記複数の部分のうち少なくとも1つの部分の前記特定の記憶技術をプログラム的に定めるステップをさらに含む請求項16に記載の方法。
  18. 前記複数の記憶技術が、2つの異なるタイプのシングルレベルセル(SLC)フラッシュメモリ記憶技術を含んでおり、前記2つの異なるタイプのSLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項1に記載の方法。
  19. 前記複数の記憶技術が揮発性メモリを含む請求項1に記載の方法。
  20. 前記複数の記憶技術が不揮発性メモリを含む請求項1に記載の方法。
  21. 異なる記憶装置にデータを書き込む装置であって、
    複数の記憶技術を備えるメモリの複数の部分にデータが書き込まれる頻度値を監視する手段であって、各前記部分が、前記複数の記憶技術のうち特定の記憶技術を備え、寿命を有している手段と、
    前記部分の前記監視された頻度値と前記寿命とに少なくとも部分的に基づいて、前記データが書き込まれる前記部分を動的に選択する手段と
    を含む装置。
  22. 少なくとも前記監視する手段が、システムと前記メモリとの間に結合される請求項21に記載の装置。
  23. 前記動的な選択が、しきい値に更に少なくとも部分的に基づく請求項21に記載の装置。
  24. しきい値を求める手段を更に含む請求項21に記載の装置。
  25. 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過する場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項24に記載の装置。
  26. 前記第1の部分が、前記複数の記憶技術のうちシングルレベルセル(SLC)記憶技術を備える請求項25に記載の装置
  27. 前記複数の部分のうち第1の部分にデータが書き込まれる頻度が前記しきい値を超過しない場合、前記複数の部分のうち第2の部分にデータが書き込まれる請求項24に記載の装置。
  28. 前記第1の部分が、前記複数の記憶技術のうちマルチレベルセル(MLC)記憶技術を備える請求項25に記載の装置。
  29. 前記頻度値が寿命推定器モジュールによって監視される請求項21に記載の装置。
  30. 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、前記記憶装置の推定寿命を計算する請求項29に記載の装置。
  31. 前記部分は記憶装置に対応しており、前記寿命推定器モジュールが、記憶コマンドに基づいて前記記憶装置の推定寿命を計算する請求項29に記載の装置。
  32. 前記複数の記憶技術が機械式記憶技術を含む請求項21に記載の装置。
  33. 前記機械式記憶技術がディスクドライブを含む請求項32に記載の装置。
  34. 前記複数の記憶技術が固体記憶技術を含む請求項21に記載の装置。
  35. 前記固体記憶技術がフラッシュメモリ技術を含む請求項34に記載の装置。
  36. 前記フラッシュメモリ技術がNANDフラッシュメモリを含む請求項35に記載の装置。
  37. 前記複数の記憶技術が、シングルレベルセル(SLC)フラッシュメモリ記憶技術及びマルチレベルセル(MLC)フラッシュメモリ記憶技術を含んでおり、前記SLCフラッシュメモリ記憶技術及び前記MLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項21に記載の装置。
  38. 前記複数の部分のうち少なくとも1つの部分の前記特定の記憶技術をプログラム的に定める手段をさらに含む請求項37に記載の装置。
  39. 前記複数の記憶技術が、2つの異なるタイプのシングルレベルセル(SLC)フラッシュメモリ記憶技術を含んでおり、前記2つの異なるタイプのSLCフラッシュメモリ記憶技術が1つの装置に集積されている請求項21に記載の装置。
  40. 前記複数の記憶技術が揮発性メモリを含む請求項21に記載の装置。
  41. 前記複数の記憶技術が不揮発性メモリを含む請求項21に記載の装置。
JP2010534014A 2007-11-19 2008-10-23 異なる記憶装置にデータを書き込む方法及び装置 Expired - Fee Related JP5819610B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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