【誤訳訂正書】
【提出日】平成23年10月21日(2011.10.21)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】メモリの複数のブロックの寿命の向上
【技術分野】
【０００１】
[0001]本発明はメモリに関し、より詳細には、有限の寿命を有するメモリに関する。
【背景技術】
【０００２】
[0002]メモリは、現代の企業コンピューティングシステムの性能の最も制限的な側面の１つである。メモリの１つの制限的な側面は、多くのタイプのメモリが限られた寿命を示すことである。例えば、フラッシュなどの不揮発性メモリの寿命は、消去され、再書込みされるごとに低下する。時間の経過、並びに数千回の消去及び再書込みに伴い、そのようなフラッシュメモリの信頼性が次第に低下する可能性がある。
【０００３】
[0003]メモリ寿命の低下を低減する１つの一般的な従来技術の技法は、ウェアレベリングである。ウェアレベリングは、記憶装置内の各ブロックを概ね等しい回数だけ消去し、書き込むことを可能にする。これにより、あるブロックがより頻繁に使用され、寿命の終わりに達し、使用を中止しなければならない状況が回避される。この手法は、装置全体の記憶容量を低下させる。記憶装置は予備ブロックを有しているかもしれないが、予備ブロックは使い果たされ、装置の記憶容量が低下して、記憶装置を使用できなくなる。
【０００４】
[0004]メモリベンダはしばしば、一定の割合のメモリの寿命期待値を保証する。例えば、フラッシュメモリベンダは、１０００００回のプログラム及び消去サイクルの後に（すなわち耐久性）、誤り訂正要件の超過に基づいて使用不能となるブロックが１％未満であることを保証するかもしれない。この場合、誤り訂正条件は、フラッシュ装置について５１２バイト当たり１ビットの誤りを訂正するように設定されるかもしれない。最近開発された装置には、ずっと低い耐久性を有するものもある。こうした装置は、より大きい誤り訂正条件を必要とする。
【０００５】
[0005]さらに、メモリブロックの寿命は互いに異なることがある。したがって、プログラム消去サイクルの数が平準化されるウェアレベリングを使用すると、記憶装置は、指定の割合のブロック（例えば１％）だけが不良となったときに寿命の終わりに達することがある。しかし、記憶装置に含まれる大部分のブロックがまだ動作可能な場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
[0006]したがって、こうした問題及び／又は従来技術に関連する他の問題に対処することが求められている。
【課題を解決するための手段】
【０００７】
[0007]メモリの複数のブロックの寿命を向上させるシステム、方法、及びコンピュータプログラム製品を提供する。動作の際に、メモリの複数のブロックの寿命に影響を及ぼす少なくとも１つの因子を特定する。さらに、その少なくとも１つの因子に基づいて、書込み用の複数のブロックを選択する。
【図面の簡単な説明】
【０００８】
【図１】一実施形態による、メモリの複数のブロックの寿命を向上させる方法を示す図である。
【図２】別の実施形態による、メモリの複数のブロックの寿命を向上させる技法を示す図である。
【図３】別の実施形態による、メモリの複数のブロックの寿命を向上させる方法を示す図である。
【図４】一実施形態による、書込み頻度に基づいて相異なる記憶装置にデータを書き込む方法を示す図である。
【図５】様々な従来の実施形態の様々なアーキテクチャ及び／又は機能を実装することのできる例示的システムを示す図である。
【発明を実施するための形態】
【０００９】
[0013]図１は、一実施形態による、メモリの複数のブロックの寿命を向上させる方法１００を示す。図示するように、メモリの複数のブロックの寿命に影響を及ぼす少なくとも１つの因子を特定する。工程１０２を参照されたい。さらに、その少なくとも１つの因子に基づいて、書込み用の複数のブロックを選択する。工程１０４を参照されたい。
【００１０】
[0014]この説明の状況では、メモリの寿命は、メモリが任意の所望の程度のユーザビリティを示す任意の期間を含んでもよい。例えば、様々な実施形態では、そのような寿命は、全く限定はしないが、希望寿命、実寿命、推定寿命などを含んでもよい。さらに、ユーザビリティの程度は、依然として動作可能な構成要素（例えば、ブロック、セルなど）の割合、メモリ又はその構成要素の信頼性、並びに／或いはそれに関する任意の他のパラメータなどの任意のユーザビリティ関連パラメータを指してもよい。
【００１１】
[0015]さらに、様々な実施形態では、メモリは、限定はしないが、機械式記憶装置（例えばディスクドライブなど）、固体記憶装置（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリなど）、及び／又は任意の他の記憶装置を含んでもよい。メモリがフラッシュメモリを含む場合、フラッシュメモリは、限定はしないが、シングルレベルセル（ＳＬＣ）装置、マルチレベルセル（ＭＬＣ）装置、ＮＯＲフラッシュメモリ、ＮＡＮＤフラッシュメモリ、ＭＬＣ  ＮＡＮＤフラッシュメモリ、ＳＬＣ  ＮＡＮＤフラッシュメモリなどを含んでもよい。一実施形態では、不揮発性メモリ装置は、セル当たり単一ビットＮＯＲフラッシュメモリ、セル当たり多ビットＮＯＲフラッシュメモリ、セル当たり単一ビットＮＡＮＤフラッシュメモリ、及びセル当たり多ビットＮＡＮＤフラッシュメモリのうちの少なくとも１つを含んでもよい。
【００１２】
[0016]さらに、この説明の状況では、因子は、メモリブロックの寿命に直接的又は間接的に影響を及ぼす可能性のある任意の因子を含んでもよい。例えば、様々な実施形態では、因子は、限定はしないが、メモリのブロックのうちの少なくとも１つに関係する読出し操作中の誤り（例えば、検出済み誤り、訂正済み誤りなど）の数、メモリのブロックのうちの少なくとも１つに関係するプログラム操作と読出し操作との間の期間、メモリのブロックのうちの少なくとも１つを消去する回数、メモリのブロックのうちの少なくとも１つを消去するのに必要な期間、メモリのブロックのうちの少なくとも１つをプログラムするのに必要な期間、メモリのブロックのうちの少なくとも１つをプログラムするのに必要な再試行の数、メモリのブロックのうちの少なくとも１つの１ページの介在読出しの数、隣接するページでの介在読出しの数、メモリの構造及び編成、並びに／或いは上記の定義を満たす任意の他の因子を含むことができる。一つの選択肢として、メモリのブロックの使用履歴を記憶してもよい。この場合、使用履歴を使用して、因子を決定してもよい。
【００１３】
[0017]次に、ユーザの要望に従って上記のフレームワークがそれと共に実装されることがあり、又は実装されないことのある様々な任意選択のアーキテクチャ及び機能に関するより例示的な情報を説明する。以下の情報は、例示のために説明されるものであり、いかなる形でも限定として解釈されるべきでないことに強く留意されたい。以下の機能のいずれかを、説明される他の機能を除外して、又は除外することなく任意選択的に組み込んでよい。
【００１４】
[0018]図２は、別の実施形態による、メモリの複数のブロックの寿命を向上させる技法２００を示す。一つの選択肢として、この技法２００は、図１の詳細の状況で実装することができる。しかし、もちろん技法２００は任意の所望の環境で実装することができる。上述の定義は、この説明を通じて適用することができることにも留意されたい。
【００１５】
[0019]図示するように、複数のメモリブロック２０４の耐久性２０２を監視してもよい。この場合、図２の棒は、特定のブロック２０４についての書込み数を表す。この説明の状況では、耐久性２０２は、各メモリブロック２０４についての書込み及び消去サイクルの数を指す。したがって、耐久性２０２は、メモリブロック２０４の使用量に対応する。一実施形態では、書込み及び／又は消去の数を監視及び記録してもよい。
【００１６】
[0020]ブロック２０４の書込み数を監視することにより、どのブロックがより頻繁に使用されたかを判断してもよい。一実施形態では、監視を使用して、ブロック２０４のいずれかについての書込み数がしきい値２０６を超えたかどうかを判断してもよい。さらに、そのような監視によって使用量を均一化し、それによって、あるブロックについての書込み数がしきい値２０６に達したときに、しきい値２０６未満の他のブロックを書込みのために使用できるようにしてもよい。例えば、ブロックが書込み及び再利用（リサイクル）される順序を変更して、ブロック間の耐久性値の差を最小限に抑えてもよい。
【００１７】
[0021]動作の際に、メモリの複数のブロック２０４の寿命に影響を及ぼす少なくとも１つの因子を特定及び／又は監視してもよい。その場合、その少なくとも１つの因子に基づいて、書き込み用の複数のブロックを選択してもよい。様々な実施形態では、寿命の観点からブロック２０４の状態を示す複数の因子が存在してもよい。一実施形態では、因子は、各ブロック２０４に関連する訂正済み誤りの数を含んでいてもよい。そのような訂正済み誤りは、例えばデータの読出しに対応していてもよい。
【００１８】
[0022]様々なケースでは、因子は、複数の別の因子の影響を受けることがある。例えば、訂正済み誤りの数は、プログラム操作から読出しまでどれだけの時間が経過したか、及び読出しを何回実行したかに影響を受けることがある。さらに、ブロックを消去及びプログラムする回数も、訂正済み誤りの数に影響を与えることがある。
【００１９】
[0023]もちろん、他の多数の因子も、訂正した誤りの数に影響を及ぼすことがある。様々な実施形態では、因子は、ブロック２０４の使用の期間、書込みの頻度、操作率、操作の総許容数、及び寿命の期間などに対応していてもよい。もちろん、このような例示的態様は例示のために説明したに過ぎない。因子は、メモリのブロックの寿命期待値に影響を及ぼす可能性のある任意の特徴に対応してよいからである。
【００２０】
[0024]一実施形態では、スコアを使用して、ブロック２０４が書き込み及び再利用される順序を変更するかどうかを判断してもよい。例えば、各ブロック２０４は、少なくとも１つの因子に基づく、対応するスコア関数を有していてもよい。スコア関数を使用して、各ブロック２０４についてのスコアを求めてもよい。
【００２１】
[0025]このスコアを使用して、ブロック２０４のスコア関数間の値の差を最小限に抑えてもよい。１つの選択肢として、スコアは、ブロック２０４の寿命に影響を及ぼす１つの因子に基づいていてもよい。別の選択肢として、スコアは、ブロック２０４の寿命に影響を及ぼす複数の因子に基づいていてもよい。
【００２２】
[0026]例えば、２つのメモリブロックの場合、一方のメモリブロックがしきい値２０６を超えるスコアを有することがあり、一方がしきい値２０６未満のスコアを有することがある。この場合、各スコアは、ブロックの寿命に影響を及ぼす少なくとも１つの因子に対応していてよい。スコアは、上記のように任意の数の因子に対応していてよいことに留意されたい。
【００２３】
[0027]一実施形態では、スコアは、ブロックの寿命期待値に関する少なくとも１つの因子に対応する値を示してもよい。この場合、値の差は、ブロックの寿命期待値の差を反映してもよい。こうして、２つのブロックを均一化することができる。
【００２４】
[0028]一実施形態では、均一化は、しきい値２０６未満のブロックを使用する（例えば書き込む）と共に、しきい値２０６を超えるブロックを使用しないことを含んでもよい。このことを、２つのブロックが等しい値、又はほぼ等しい値に対応する時点まで行ってもよい。その時点になったら、しきい値２０６を上げて、両方のメモリブロックを使用してもよい。
【００２５】
[0029]当初、すべてのブロック２０４はしきい値２０６未満でもよい。あるブロックがしきい値２０６を超過したら、そのブロックを、しきい値２０６を超えたブロックとしてラベル付けし、或いは他の方法で特定してもよい。その場合、しきい値２０６未満のブロック２０４がしきい値２０６に達し、又はしきい値２０６を超過するまで、しきい値２０６未満のブロック２０４を使用してもよい。
【００２６】
[0030]このことを、しきい値２０６未満のすべてのブロック２０４が使い果たされるまで続行してもよい。使い果たされた時点で、すべての既存のブロック２０４が新しいしきい値未満となるように新しいしきい値を設定してもよい。このことを、ブロック２０４の寿命全体を通して反復してもよい。
【００２７】
[0031]１つの選択肢として、消去され書込みされるブロック２０４の総量を最小限に抑えるために、ブロック２０４間のばらつきが均一化される間、あるカウント割合の空きスペースを利用してもよい。さらに、様々な他の技法を使用して、ブロック間のばらつきを均一化（すなわちブロック再生）すると共に、消去及び書込みされるブロックの総量を最小限に抑えてもよい。さらに、様々な他の均一化技法を使用してブロック２０４間のばらつきを均一化してもよい。
【００２８】
[0032]一実施形態では、システムで複数のメモリモジュールを使用してもよい。この場合、メモリモジュールは、相異なる寿命を有するメモリモジュールを含むことができる。したがって、システムの全メモリ寿命は、最小の寿命を有するメモリモジュールに限定されるのではなく、最大でメモリの寿命の合計であってもよい。
【００２９】
[0033]一実施形態では、寿命推定器モジュールが、記憶バスを介してシステムのコントローラに通信されたコマンドを受け取るように動作してもよい。寿命推定器モジュールは、バスを介して受け取ったコマンドが実行されたと仮定して、推定寿命を計算してもよい。一実施形態では、寿命推定器を使用して、メモリブロック２０４の寿命に影響を及ぼす書込み数及び／又は他の因子を監視してもよい。厳密に任意選択として、寿命推定器モジュールを使用してしきい値２０６を設定してもよい。
【００３０】
[0034]もちろん、様々な技法を使用してしきい値２０６を設定してもよい。一実施形態では、しきい値２０６は所定のしきい値でよい。別の実施形態では、しきい値２０６を動的に設定してもよい。１つの選択肢として、しきい値は、メモリブロック２０６のうちの少なくとも１つに関連する装置の寿命（例えば期待寿命、希望寿命など）に直接的に相関してもよい。
【００３１】
[0035]一実施形態では、コストを削減し、性能を改善するために、記憶装置内冗長機能を使用してもよい。そのような実施形態では、個々の記憶装置間で、記憶装置の寿命に関連する任意の因子に基づいてデータを移動してもよい。例えば、状況が、記憶装置のうちの第１の記憶装置が１組のデータを含み、その１組のデータが記憶装置のうちの第２の記憶装置のデータに対してより頻繁に上書きされることを含んでもよい。そのような場合、寿命に関連する少なくとも１つの因子のしきい値を超過した後は、そのようなデータを第１記憶装置から第２記憶装置に移動し、それ以降は、第１記憶装置又は第１記憶装置の１つ又は複数のブロック／モジュールを、あまり頻繁に書き込まれないデータを格納するために使用してもよいし、あるいは今後使用しないようにしてもよい。
【００３２】
[0036]この目的のため、記憶装置寿命を適切に分散させて、ある記憶装置又は記憶装置の一部がグループの他の記憶装置に比べて非常に早い時点で故障することを回避してもよい。もちろん、この技法は、相異なる記憶装置の間だけでなく、記憶装置の各部分の間でも適用してもよい。この目的で、任意のメモリ構成要素の寿命をそのような方式で管理してもよい。
【００３３】
[0037]図３は、別の実施形態による、メモリの複数のブロックの寿命を向上させる方法３００を示す。１つの選択肢として、この方法３００は、図１〜２の機能の状況で実施することができる。しかし、もちろん方法３００は任意の所望の環境で実施してもよい。上述の定義は、本説明を通じて適用することができることにも留意されたい。
【００３４】
[0038]図示するように、メモリのすべてのブロックがしきい値未満となるようにしきい値を定義する。工程３０２を参照されたい。一実施形態では、しきい値は、ブロックの使用量に対応していてもよい。例えば、ブロックが使用されるにつれて、それらのブロックに関連する使用量の値が、しきい値に近づいてもよい。別の実施形態では、しきい値は、ブロックのセットの寿命期待値に関連する少なくとも１つの他の因子に対応してもよい。
【００３５】
[0039]例えば、しきい値は、ブロックに関する訂正済み誤りの数に対応していてもよい。この場合、複数のブロックが使用されるにつれて、それらのブロックに関連する訂正済み誤りの数の値がしきい値に近づいてもよい。もちろん、しきい値は、ブロックの寿命に影響を及ぼす任意の数の因子に対応していてもよい。
【００３６】
[0040]各ブロックが下回る初期しきい値が特定されると、ブロックを再生（ｒｅｃｌａｉｍ）する必要があるかどうかを判断する。工程３０４を参照されたい。例えば、ブロック又はブロックのグループがしきい値を超えており、又は他のブロックに対して不均衡に使用されていることを因子が示す場合に、１つ又は複数のブロックを再生する必要があると判断してもよい。
【００３７】
[0041]この説明の状況では、ブロック再生（ｂｌｏｃｋ  ｒｅｃｌａｉｍｉｎｇ）は、ガーベッジコレクション、読出し妨害、スクラビング、訂正済み誤りの数、又は他のイベントでトリガすることができ、少なくとも１つの因子に基づいてブロック間のばらつきを均一化することを指す。例えば、様々な実施形態では、ブロック再生は、読出し／書込み中に検出された誤りの数、読出し／書込み中に訂正された誤りの数、ブロックを消去するための時間の長さ、ブロックをプログラムするための時間の長さ、プログラミング中に使用されるエントリの数、ページの介在読出しの数、隣接するページでの介在読出しの数、ブロックの消去及びプログラムサイクルの数、及び／又は任意の他の因子に基づいてブロック間のばらつきを均一化することを含んでよい。
【００３８】
[0042]ブロックを再生する必要があると判断した場合、しきい値未満のブロックセット内のブロックを書込みのために割り振る。工程３０６を参照されたい。例えば、しきい値を超えるブロックセット内のブロック（複数可）ではなく、しきい値未満のブロックをメモリ操作で使用してもよい。
【００３９】
[0043]しきい値未満のブロックセット内のブロック（複数可）を書込みのために割り振った後は、しきい値を超えるブロックがあるかどうかを判断する。工程３０８を参照されたい。例えば、ブロックがしきい値を超過すると判断するまで、しきい値未満のブロックセット内のブロックに書込みを行ってもよい。
【００４０】
[0044]ブロックがしきい値を超過したと判断した場合、しきい値を超えるブロックに対応するブロックのセット内にブロックを配置してもよい。工程３１０を参照されたい。ブロックがしきい値を超過していない場合、ブロックは、しきい値未満のブロックセット内にとどまることができ、引き続き使用することができる。
【００４１】
[0045]次いで、しきい値未満のブロックのすべてが使い果たされたかどうかを判断する。工程３１２を参照されたい。言い換えれば、しきい値未満のブロックに対応するブロックのセット内のすべてのブロックが、しきい値を超えるブロックに対応するブロックのセットに含まれているかどうかを判断する。
【００４２】
[0046]しきい値未満のすべてのブロックが使い果たされた場合、新しいしきい値を設定し、すべての既存のブロックをその新しいしきい値未満となるように定義する。工程３１４を参照されたい。新しいしきい値を設定した後は、ブロックを再生する必要があるかどうかを再び判断する。１つの選択肢として、これをメモリブロックの寿命にわたって続行してもよい。
【００４３】
[0047]新しいしきい値及び初期しきい値は、様々な基準に基づいて設定できることに留意されたい。例えば、しきい値は、ブロックの予想使用量に基づいて設定してもよい。一実施形態では、しきい値は所定のしきい値でもよい。別の実施形態では、しきい値は、メモリブロック使用量に基づいて決定してもよい。
【００４４】
[0048]図４は、一実施形態による、書込み頻度に基づいて様々な記憶装置にデータを書き込む方法４００を示す。１つの選択肢として、この方法４００は、図１〜３の機能及びアーキテクチャの状況で実施することができる。しかし、もちろん方法４００は任意の所望の環境で実装することができる。上述の定義は、本説明を通じて適用することができることにも留意されたい。
【００４５】
[0049]図示するように、データが書き込まれる頻度を特定する。工程４０２を参照されたい。さらに、頻度に基づいて、データを書き込むために相異なるタイプの複数の記憶装置から選択を行う。工程４０４を参照されたい。
【００４６】
[0050]一実施形態では、選択はしきい値に基づいてもよい。例えば、データが書き込まれる頻度がしきい値を超過する場合、一定の記憶装置を選択してデータを書き込んでもよい。１つの選択肢として、この相異なるタイプの記憶装置は、ＳＬＣ及びＭＬＣ装置、相異なる耐久性を有するＭＬＣ同士、ＳＬＣ及びＤＲＡＭ、並びにＭＬＣ及びＤＲＡＭを含んでもよい。もちろん、様々な別の実施形態では、この相異なるタイプの記憶装置は、様々な異なるタイプのメモリを含む任意の数の装置を含んでもよい。
【００４７】
[0051]別の実施形態では、少なくとも２つの異なるタイプのメモリを１つの装置に集積することができる。例えば、フラッシュＭＬＣ及びＳＬＣメモリを１つの装置上で組み合わせることができる。別の例として、２つの異なるタイプのフラッシュＭＬＣを１つの装置に集積することができる。さらに別の例として、１つの装置でのメモリタイプの混合をプログラム的に定めてもよい。一例では、ＳＬＣフラッシュメモリに関連する記憶装置の一部を定め、ＭＬＣフラッシュメモリに関連する記憶装置の一部を定めてもよい。
【００４８】
[0052]特定の例として、特定のアプリケーション又はプログラムからのデータが高頻度で書き込まれると判断してもよい。この場合、ＳＬＣ装置を選択してデータを書き込んでもよい。一方、特定のアプリケーション又はプログラムからのデータ、或いはディスクの特定の場所からのデータ、或いは特定のアクセスパターンからのデータが低頻度で書き込まれると判断してもよい。この場合、ＭＬＣ装置を選択してデータを書き込んでもよい。もちろん、特定した頻度に基づいて任意の数の装置を選択してよいので、これは一例に過ぎない。
【００４９】
[0053]一実施形態では、寿命推定器モジュールは、記憶バスを介してシステムのコントローラに伝達されたコマンドを受け取るように働いてもよい。寿命推定器モジュールは、頻度を監視するとともに、バスを介して受け取ったコマンド（複数可）が実行されたと仮定して、推定寿命を計算してもよい。もちろん、頻度は様々な方式で求めることができ、寿命推定器モジュールで特定されるものに限定されない。
【００５０】
[0054]様々な実施形態では、上記の実施形態で述べたメモリは、機械式記憶装置（例えば、ＳＡＴＡディスクドライブ、ＳＡＳディスクドライブ、ファイバチャネルディスクドライブ、ＩＤＥディスクドライブ、ＡＴＡディスクドライブ、ＣＥディスクドライブ、ＵＳＢディスクドライブ、スマートカードディスクドライブ、ＭＭＣディスクドライブなどを含むディスクドライブ）及び／又は非機械式記憶装置（例えば半導体ベースの記憶装置など）を含んでよいことに留意されたい。そのような非機械式メモリは、例えば揮発性又は不揮発性メモリを含んでよい。様々な実施形態では、不揮発性メモリ装置は、フラッシュメモリ（例えば、セル当たり単一ビットＮＯＲフラッシュメモリ、セル当たり多ビットＮＯＲフラッシュメモリ、セル当たり単一ビットＮＡＮＤフラッシュメモリ、セル当たり多ビットＮＡＮＤフラッシュメモリ、マルチレベル及び／又はセル当たり多ビットＮＡＮＤフラッシュ、大規模ブロックフラッシュメモリ、抵抗型メモリ、相変化メモリ、磁気メモリなど）を含んでよい。メモリの様々な例を本明細書で述べたが、メモリに対して実施される様々な操作のために寿命が低下する可能性のある任意のタイプのメモリに様々な原理を適用することができることに留意されたい。
【００５１】
[0055]図５は、先の様々な実施形態の様々なアーキテクチャ及び／又は機能を実装することのできる例示的システム５００を示す。例えば、例示的システム５００は、先の実施形態のうちのいくつかで述べたコンピュータを表してもよい。さらに、上述の様々な装置は、システム５００の構成要素でもよい。
【００５２】
[0056]図示するように、通信バス５０２に接続される少なくとも１つのホストプロセッサ５０１を含むシステム５００が設けられる。システム５００はまた、メインメモリ５０４をも含む。制御ロジック（ソフトウェア）及びデータがメインメモリ５０４内に格納され、メインメモリ５０４は、ランダムアクセスメモリ（ＲＡＭ）の形態を取ってもよい。
【００５３】
[0057]システム５００はまた、グラフィックスプロセッサ５０６、及びディスプレイ５０８すなわちコンピュータモニタをも含むことができる。システム５００はまた、２次ストレージ５１０をも含むことができる。２次ストレージ５１０は、例えばハードディスクドライブ、及び／又はフロッピィディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表す取外し可能ストレージドライブを含む。取外し可能ストレージドライブは、周知の方式で取外し可能ストレージモジュールから読み取り、及び／又は取外し可能ストレージモジュールに書き込む。
【００５４】
[0058]コンピュータプログラム、又はコンピュータ制御論理アルゴリズムは、メインメモリ５０４及び／又は２次ストレージ５１０内に格納されてもよい。そのようなコンピュータプログラムは、実行されたときに、システム５００が様々な機能を実施することを可能にする。メモリ５０４、ストレージ５１０、及び／又は任意の他のストレージが、コンピュータ可読媒体の可能な例である。
【００５５】
[0059]一実施形態では、先の様々な図のアーキテクチャ及び／又は機能は、ホストプロセッサ５０１、グラフィックスプロセッサ５０６、２次ストレージ５１０、ホストプロセッサ５０１とグラフィックスプロセッサ５０６の両方の機能の少なくとも一部が可能な集積回路（図示せず）、チップセット（すなわち、関連機能を実施するためのモジュールとして機能するように設計され、販売される一群の集積回路など）、及び／又はそれに関する任意の他の集積回路の状況で実装することができる。
【００５６】
[0060]さらに、先の様々な図のアーキテクチャ及び／又は機能は、一般的コンピュータシステム、回路板システム、エンターテイメント目的専用のゲームコンソールシステム、特定用途向けシステム、及び／又は任意の他の所望のシステムの状況で実装することができる。例えば、システム５００は、デスクトップコンピュータ、ラップトップコンピュータ、及び／又は任意の他のタイプの論理機構の形態を取ることができる。さらに、システム５００は、限定はしないが携帯情報端末（ＰＤＡ）装置、携帯電話装置、テレビジョンなどを含む様々な他の装置の形態を取ることができる。
【００５７】
[0061]さらに、図示していないが、通信のためにシステム５００をネットワーク［例えば、遠隔通信ネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスネットワーク、インターネットなどの広域ネットワーク（ＷＡＮ）、ピアツーピアネットワーク、ケーブルネットワークなど］に接続してもよい。
【００５８】
[0062]様々な実施形態を上記で説明したが、それらは限定としてではなく、例示として提示したものであることを理解されたい。したがって、好ましい実施形態の広さ及び範囲は、上述の例示的実施形態のいずれによっても限定されず、以下の特許請求の範囲及びその均等物だけに従って定義されるものとする。
【誤訳訂正２】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
メモリの複数のブロックの寿命に影響を及ぼす少なくとも１つの因子を特定するステップと、
前記少なくとも１つの因子に基づいて、前記複数のブロックのうち書込みを行うブロックを選択するステップとを含む方法。
【請求項２】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つに関係する読出し操作中の誤りの数を含む請求項１に記載の方法。
【請求項３】
前記誤りが、検出済みの誤りである請求項２に記載の方法。
【請求項４】
前記誤りが、訂正済みの誤りである請求項２に記載の方法。
【請求項５】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つに関係するプログラム操作と読出し操作との間の期間を含む請求項１に記載の方法。
【請求項６】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つを消去する回数を含む請求項１に記載の方法。
【請求項７】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つを消去するのに必要な期間を含む請求項１に記載の方法。
【請求項８】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つをプログラムするのに必要な期間を含む請求項１に記載の方法。
【請求項９】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つをプログラムするのに必要な再試行の数を含む請求項１に記載の方法。
【請求項１０】
前記少なくとも１つの因子が、メモリの前記ブロックのうちの少なくとも１つのページの介在読出しの数を含む請求項１に記載の方法。
【請求項１１】
前記少なくとも１つの因子が、隣接するページでの介在読出しの数を含む請求項１に記載の方法。
【請求項１２】
前記少なくとも１つの因子に基づいてスコアを計算するステップをさらに含む請求項１に記載の方法。
【請求項１３】
選択する前記ステップが前記スコアに基づく請求項１２に記載の方法。
【請求項１４】
選択する前記ステップが複数の前記因子に基づく請求項１に記載の方法。
【請求項１５】
前記ブロックのうち、より長い推定寿命を有する第１ブロックが、前記ブロックのうち、より短い推定寿命を有する第２ブロックよりも前に書き込まれる請求項１に記載の方法。
【請求項１６】
前記ブロックのうち、より短い推定寿命を有する前記第２ブロックが、しきい値を超える請求項１５に記載の方法。
【請求項１７】
前記ブロックのうち、より長い推定寿命を有する前記第１ブロックが、しきい値未満である請求項１６に記載の方法。
【請求項１８】
前記メモリが機械式記憶装置を含む請求項１に記載の方法。
【請求項１９】
前記メモリが揮発性メモリ装置を含む請求項１に記載の方法。
【請求項２０】
前記メモリが不揮発性メモリ装置を含む請求項１に記載の方法。
【請求項２１】
前記不揮発性メモリ装置が、セル当たり単一ビットＮＯＲフラッシュメモリ、セル当たり多ビットＮＯＲフラッシュメモリ、セル当たり単一ビットＮＡＮＤフラッシュメモリ、及びセル当たり多ビットＮＡＮＤフラッシュメモリのうちの少なくとも１つを含む請求項２０に記載の方法。
【請求項２２】
メモリの前記複数のブロックの使用履歴を記憶するステップをさらに含む請求項１に記載の方法。
【請求項２３】
コンピュータ可読媒体上で実施されるコンピュータプログラム製品であって、
メモリの複数のブロックの寿命に影響を及ぼす少なくとも１つの因子を特定するコンピュータコードと、
前記少なくとも１つの因子に基づいて、書き込むための前記複数のブロックのうちのいずれかを選択するコンピュータコードとを含む、コンピュータプログラム製品。
【請求項２４】
メモリの複数のブロックの寿命に影響を及ぼす少なくとも１つの因子に基づいて、前記複数のブロックのうち書込みを行うブロックを選択する論理機構を備える装置。
【請求項２５】
前記論理機構が、システムとメモリとの間に結合される請求項２４に記載の装置。
【誤訳訂正３】
【訂正対象書類名】図面
【訂正対象項目名】図１
【訂正方法】変更
【訂正の内容】
【図１】
2011503741.tif 000001
【誤訳訂正４】
【訂正対象書類名】図面
【訂正対象項目名】図３
【訂正方法】変更
【訂正の内容】
【図３】
2011503741.tif 000002
【誤訳訂正５】
【訂正対象書類名】図面
【訂正対象項目名】図４
【訂正方法】変更
【訂正の内容】
【図４】
2011503741.tif 000003