"ソリッドステートメモリデバイスを制御するための方法であって、前記メモリデバイス1のユニットに格納された符号語を誤り訂正反復復号プロセスによって復号するステップと、前記ユニットの符号語の復号に成功するために必要な平均反復回数n_kを算定するステップと、前記平均反復回数n_kを監視するステップと、を含む方法。前記平均反復回数n_kを条件として、前記ユニットが操作されるモードを変更すること、損耗平均化ルーチンを適用すること、前記ユニットをそれ以上操作しないようにすること、前記ユニットに関するデータの損失を防ぐこと、前記復号プロセスにおいて用いられる1つ又は複数のパラメータを変更し、前記変更されたパラメータを用いて前記復号プロセスの実行を続けること、のうちの少なくとも1つの作業が作動する、請求項1に記載の方法。前記平均反復回数n_kを監視する前記ステップは、前記平均反復回数を閾値と比較することを含み、前記平均反復回数n_kが前記閾値を超えたときに、少なくとも1つの作業が作動する、請求項1又は請求項2に記載の方法。前記平均反復回数n_kが前記閾値を超えたときに、前記ユニットはマーク付けされる、請求項3に記載の方法。最大待ち時間及び最大反復回数ITMの一方が定められ、その後に符号語を復号するための前記復号プロセスが最終的に終了し、前記平均反復回数n_kが前記閾値を超えたときに、前記最大待ち時間又は前記最大反復回数ITMをそれぞれ増加させる、請求項3に記載の方法。最大ユーザビット誤り率が、前記誤り訂正反復復号プロセスが適用された後の符号語のビット誤り率であるユーザビット誤り率によって定められ、前記平均反復回数が増加するときに、前記最大ユーザビット誤り率を増大させる、前記いずれか1つの請求項に記載の方法。復号プロセスにおいて、メモリデバイスのセルに格納された物理値によって表された符号記号二進値の事後確率を算定するための反復において、セルごとに利用可能な符号記号の数を超える量子化レベル数が適用される、前記いずれかの請求項に記載の方法。ユニットの前記平均反復回数n_kは、前記ユニットからの所定の読出し回数wについてユニットの符号語の復号に成功するために必要な反復回数を累算し、前記累算された反復回数を前記所定の読出し回数wで割ることによって算定される、前記いずれか1つの請求項に記載の方法。前記所定の読出し回数wに必要な時間が監視される、請求項8に記載の方法。前記メモリデバイスは、複数のユニットを備え、前記平均反復回数n_kは、ユニットごとに算定され、前記デバイスについての前記平均反復回数n_kは、前記ユニットの各々の前記平均反復回数を累算し、前記累算された平均数を前記ユニットの数で割ることによって算定される、前記いずれか1つの請求項に記載の方法。前記デバイスは単一のユニットを含む、前記いずれか1つの請求項に記載の方法。請求項1から請求項11までのいずれか1つに記載の方法を行うように構成されたコンピュータ可読プログラムコードを含むコンピュータプログラム。ソリッドステートメモリデバイスを制御するためのストレージコントローラであって、前記メモリデバイス1のユニットに格納された符号語を誤り訂正反復復号プロセスによって復号するための復号器331と、前記ユニットの符号語の復号に成功するために必要な平均反復回数n_kを算定するための計算ユニット332と、前記平均反復回数n_kを監視するための監視ユニット333と、を備えるストレージコントローラ。前記復号器331は、前記メモリデバイス1の前記ユニットに格納された多数の符号語の各々を誤り訂正反復復号プロセスによって並列に復号するための多数の復号ユニットを含む、請求項13に記載のストレージコントローラ。前記復号器331は、前記メモリデバイス1の前記ユニットに格納された符号語を誤り訂正反復復号プロセスによって復号するための単一の復号ユニットを含み、前記復号器331によって復号されることになる連続する符号語を格納するためのキュー334が設けられた、請求項13に記載のストレージコントローラ。ソリッドステートメモリと、前記ソリッドステートメモリを制御するための請求項13-15のいずれか1つに記載のストレージコントローラとを含む、メモリデバイス。本発明は、ソリッドステートメモリデバイスを制御するための方法を提供することを目的とする。本発明の第1の態様の実施形態によると、ソリッドステートメモリデバイスを制御するための方法であって、メモリデバイスのユニットに格納された符号語を誤り訂正反復復号プロセスによって復号するステップと、ユニットの符号語の復号に成功するために必要な平均反復回数を算定するステップと、平均反復回数を監視するステップとを含む方法が提供される。実施形態においては、方法は、平均反復回数を条件として、ユニットが操作されるモードを変更すること、損耗平均化ルーチンを適用すること、ユニットをそれ以上操作しないようにすること、ユニットに関するデータの損失を防ぐための尺度を適用すること、復号プロセスにおいて用いられる1つ又は複数のパラメータを変更し、変更されたパラメータを用いて復号プロセスの実行を続けることのうちの少なくとも1つの作業アクティビティが作動することと、平均反復回数を監視するステップは、平均反復回数を閾値と比較することと、平均反復回数が閾値を超えたときに少なくとも1つの作業が作動することとを含むことと、平均反復回数が閾値を超えたときにユニットがマーク付けされることと、復号プロセスにおいて、最大待ち時間及び最大反復回数の一方が定められ、その後に符号語を復号するための復号プロセスが最終的に終了し、平均反復回数が閾値を超えたときに、最大待ち時間又は最大反復回数をそれぞれ増加させることと、最大ユーザビット誤り率が、誤り訂正反復復号プロセスが適用された後の符号語の誤り率であるユーザビット誤り率によって定められ、平均反復回数が閾値を超えたときには、最大ユーザビット誤り率を増大させることと、復号プロセスにおいて、メモリデバイスのセルに格納された物理値によって表された符号記号の事後確率を算定するための反復において、セルごとに利用可能な符号記号の数を超える量子化レベル数が適用されることと、ユニットの平均反復回数は、ブロックからの所定の読出し回数についてユニットの符号語の復号に成功するために必要な反復回数を累算し、累算された反復回数を所定の読出し回数で割ることによって、算定されることと所定の読出し回数に必要な時間が監視されることと、メモリデバイスは多数のユニットを備え、平均反復回数はユニットごとに算定され、デバイスについての平均反復回数は、ユニットの各々の平均反復回数を累算し、累算された平均回数をユニットの数で割ることによって算定されることと、デバイスは、単一のユニットを含むこととの特徴のうちの1つ又は複数を含むことができる。本発明の別の態様の実施形態によると、コンピュータ可読プログラムコードが具体化されたコンピュータ可読媒体を含むコンピュータプログラム製品であって、コンピュータ可読プログラムコードは、上記実施形態のいずれか1つによる方法を行うように構成されたコンピュータ可読プログラムコードを含む、コンピュータ可読プログラム製品が提供される。本発明のさらに別の態様の実施形態によると、ソリッドステートメモリデバイスを制御するためのストレージコントローラであって、メモリデバイスのユニットに格納された符号語を誤り訂正反復復号プロセスによって復号するための軟判定復号器と、ユニットの符号語の復号に成功するために必要な平均反復回数を算定するための計算ユニットと、平均反復回数を監視するための監視ユニットとを備えるストレージコントローラが提供される。実施形態においては、ストレージコントローラは、軟判定復号器が、メモリデバイスのユニットに格納された多数の符号語を誤り訂正反復復号プロセスによって並列に復号するための多数の復号ユニットを含むことと、軟判定復号器が、メモリデバイスのユニットに格納された符号語を誤り訂正反復復号プロセスによって復号するための単一の復号ユニットと、復号されることになる連続する符号語を格納するためのキューとを含むことと、の特徴のうちの1つ又は複数を含むことができる。本発明の別の態様の実施形態によると、ソリッドステートメモリと、ソリッドステートメモリを制御するための、本発明のストレージコントローラの態様によるストレージコントローラとを含むメモリデバイスが提供される方法のステップは、方法の請求項の中に挙げられたものとは異なる順序で実行できることが理解される。こうした異なる順序もまた、現在挙げられているステップの順序と同様に、こうした請求項の範囲内に含まれるものとする。方法の態様に関して説明された実施形態は、デバイス、コンピュータプログラム製品などといった他のカテゴリのいずれに関しても開示された実施形態とみなされ、逆も同様であるものとする。本発明及びその実施形態は、添付の図面と共に、現時点では好ましいがそれでもなお例示的である実施形態の詳細な説明を参照することによって、より十分に理解することができるであろう。以下の説明への導入として、最初に、ソリッドステートメモリデバイスが典型的にはストレージコントローラによって制御される方法に関して、本発明の一般的な態様が指摘される。メモリデバイスのユニットに格納された符号語は、誤り訂正反復復号プロセスによって復号される。ユニットの符号語の復号に成功するために必要な平均反復回数が算定される。こうした平均反復回数は、監視される。この概念は、反復復号を可能にする適切な誤り訂正符号を用いる軟判定復号プロセスをメモリデバイスに格納された符号語に適用するときに、損耗という、ソリッドステートメモリデバイスにおける全く異なる主題についての意味のある情報が復号操作から得られるという知見に基づく。フラッシュ、及び相変化メモリデバイスなどの他のソリッドステートメモリデバイスは、損耗という形のデバイスの物理特性のために、寿命が限られている。具体的には、フラッシュメモリデバイスは、ストレージの整合性が悪化し始めてデータを安全に読み出すことも書き込むこともできなくなるまでに、書込み-消去サイクルの回数が限られる。こうした、各ブロックが損耗しきる前にそのブロック上で行うことができる書込み-消去サイクルの最大数は、耐久度と呼ばれる。ブロックごとに著しく異なることがある一定のレベルの損耗をブロックが経験した後、性能が急速に低下する。耐久度は、10年のデータ保持期間を仮定すると、典型的には、SLCについては100000のオーダー、MLCについては10000のオーダーであることがあり、ここでデータ保持期間とは、訂正可能な誤りを伴う可能性があるデータをデバイスから読み出すことができる最大時間をいう。さらに、ソリッドステートメモリデバイスの損耗は、これらのデバイスの操作のされ方によって部分的に加速される。例えば、NANDフラッシュメモリは、ブロックのユニットと、ページのサブユニットとで構成される。多数のページがブロックを形成する。読出し及び書込み操作は、こうした操作の最小単位としてページに適用することができるが、消去操作は、ブロック全体にしか適用することができない。また、他のストレージ技術においては、古いデータは単に新しいデータで上書きすることができるが、フラッシュ技術は、新しいデータを消去されたブロックに書き込むことができる前に消去操作を必要とする。フラッシュ技術においては、消去操作は読出し又は書込み操作よりずっと長い時間がかかるという理由で、新たなデータ又は更新されたデータを古いデータが残る同じページに書き込む代わりに、空きページアロケータによって提供される或る空きページに書き込む、アウトオブプレース書込みと呼ばれる書込み技術が適用される。古いデータを含むページは、無効なページである。或る時点において、ガベージコレクションと呼ばれるプロセスが、ブロックの全ての有効なページの内容を異なるブロックにある空きページに移動することによって、新たな書込みのためにブロックを空ける。その結果、対象のブロックは、最終的に無効なページのみを含み、消去することができる。このアウトオブプレース書込み手続は、効果が書込み増幅と呼ばれる、幾つかの追加的な内部書込み操作を必要とし、書込み増幅が結果的にデバイスの損耗を増幅させる。ソリッドステートメモリデバイスの損耗を監視することは、損耗しつくされたブロックによってデータが失われることを防ぐために重要である。誤り訂正反復復号プロセスを適用するときに符号語の復号に必要な平均反復回数は、それぞれのユニットが示す損耗のレベルを表すことが見出だされた。言い換えると、符号語の復号に成功するために必要な平均反復回数は、ユニットの損耗の尺度となる。平均反復回数を監視する方法によって、ユニットの損耗を監視することができ、平均反復回数を条件として定められたアクションをとることができる。通常の使用状況下での低い損耗レベルの場合には、ブロック/ユニット性能の良さが、復号の成功を宣言するために非常に少ない反復しか必要としないことにつながり、従って、復号待ち時間もほとんど体感されない。損耗又はブロックの最後の書込み操作以降の時間が増大するにつれて、性能は低下し、復号に成功するためにより多くの反復が必要となる。従って、ブロックに格納された符号語の復号に成功するための平均反復回数は、損耗レベルの尺度として採用される。軟判定復号ではなく硬判定の形で硬判定復号が用いられる誤り訂正符号ECC用の復号アルゴリズムにおいては、符号記号codesymbolを表現し符号記号に変換されることになる、メモリデバイスのセルに格納された物理値に対して、量子化が行われる。例えば、物理値がセルに格納された電圧である場合には、量子化レベルは、セルに符号化された符号記号によって想定される可能な二進値の1つを表わす一定の電圧とすることができる。従って、硬判定復号のための量子化レベルの数は、典型的には、符号記号によって想定される可能な二進値の数に等しい。例えば、4レベルセルのフラッシュメモリデバイスにおいては、典型的には2つの二進符号記号が符号化され、硬判定のために4レベルの量子化器が用いられる。量子化によって得られた回復された符号記号列は、元の情報ビット列を表すことになる。例えば、リードソロモンRS又はボースチョードリオッカンガムBCH符号が、一般に、フラッシュメモリにおける硬判定復号アルゴリズムと共に用いられる。硬判定復号についての主な問題は、1つ又は複数の符号記号を表し得る物理値に対して硬判定量子化を行うときには常に、回復不能な情報の損失が起こることである。この問題を克服するために、ECCの軟判定復号を適用することができる。軟判定復号アルゴリズムにおいては、1つ又は複数の符号記号を表し得る物理値は、理想的には、最終的な判定が所与の少数の量子化レベルに関して行われるという硬判定符号の精神における事前の量子化がなされることなく、復号器に入力される。軟判定復号の実施に際して、物理値によって表される符号記号によって想定される可能な二進値の個数より多い、例えば8倍多い量子化レベル数で、量子化が適用される。従って、軟判定復号は、符号記号の数を大幅に増加させる量子化レベル数を用いることによって、どの符号記号二進値が物理値によって表されるかの判定に反復的に近付くことを特徴とする。或る部類の符号については、反復軟判定復号アルゴリズムが適用された場合には、達成可能な符号化利得がかなり増大する。反復軟判定復号スキームは、通常、2つの軟判定復号コンポーネント/論理の間におけるメッセージ渡し手続を適用し、それにより、各々のコンポーネントは、他方のコンポーネントからの軟判定情報を用いてより信頼できる判定を生ずる。軟判定復号プロセスを適用することによって、硬判定復号と比較して、回復不能な情報の損失を回避することができる。このように、本発明の文脈において、軟判定復号は、メモリデバイスのセルに格納された物理値によって表される符号記号二進値を求めるための種々の反復において多数の量子化レベルを用いる復号プロセスをいう。こうしたプロセスにおいては、量子化レベル数は、セルごとに利用可能な符号記号によって想定される可能な二進値の個数を超える。量子化レベル数は、セルごとに利用可能な符号記号によって想定される可能な二進値の個数を少なくとも8倍超えることが好ましい。好ましい実施形態においては、ターボ符号又は低密度パリティ検査LDPC符号のための軟判定復号器が適用される。データをデバイスに書き込むときには、データは、軟判定復号器によって復号することができる対応する誤り訂正符号、好ましくはターボ符号又は低密度パリティ検査LDPC符号によって、符号化されることが好ましい。ソリッドステートメモリデバイスにおける損耗の問題を軽減するために、損耗レベルが異なるブロックに対する不均等な誤り保護が提案されてきた。これは、損耗のレベルが早期に得られるか又は平均反復回数に暗示され得るので、軟判定復号を用いて、提案された反復符号である同じ誤り訂正符号によって全てのブロックを扱うことができるという理由により、もはや不要となる。平均反復回数を条件として、損耗平均化ウェアレベリングと呼ばれる、フラッシュコントローラによって行われる内部管理プロセスを適用することができる。このプロセスは、メモリデバイスの損耗の特徴に対処するものである。損耗平均化は、全ての利用可能なユニット間で書き込み-消去サイクルを均一にして、不均一な損耗を回避し、それによって全体の寿命を長くすることを目的とする、種々のデータ配置機能及びデータ移動機能を伴う。具体的には、損耗平均化機能は、新たなデータが書き込まれるべきブロックを選択することと、さらに、フラッシュメモリ内の格納されたデータを移動してサイクル計数の少ないブロックを開放し、損耗を一様にすることとをつかさどる。こうした損耗平均化プロセスは、識別された特定の平均反復回数又は平均反復回数の範囲によって作動するようにしてもよい。ユニットごとに書き込み-消去サイクルを計数することなどによって損耗を判断するための手段を別途確立することは、もはや必要ない。平均反復回数に暗示される損耗の尺度は、損耗平均化プロセスのきっかけとして及び/又は損耗推定入力として用いることができる。要約すると、ターボ符号又はLDPC符号などの反復符号を用いてユニットに格納された符号語の軟判定復号のために必要な反復回数が監視される。通常の使用状況下での低い損耗レベルの場合には、ユニット性能の良さが、復号の成功を宣言するために非常に少ない反復しか必要としないことにつながり、従って、復号待ち時間もほとんど体感されない。損耗又はブロックの最後の書込み操作以降の時間が増大するにつれて、性能は低下し、復号に成功するためにより多くの反復が必要となる。従って、ブロックに格納された符号語の復号に成功するための平均反復回数は、損耗レベルの尺度として採用される。図1は、本発明の実施形態による、ソリッドステートストレージデバイスを制御するための方法のフローチャートを示す。ステップ10において、例えばフラッシュベースのメモリデバイスのブロックであるユニットに格納された符号語が、誤り訂正反復復号プロセスによって復号される。ステップ11において、ユニットの符号語の復号に成功するために必要な平均反復回数が、多数の読出しプロセスと同等のステップ10における多数の符号語の復号に基づいて算定される。ステップ12において、平均反復回数が監視されて閾値と比較される。平均反復回数が閾値より小さい場合にはいいえ、ステップ11における要件に従って平均反復回数を構築できる十分な回数の読出しが行われるまで、プロセスはステップ10から新たに開始する。ステップ12において、平均反復回数が閾値より大きい場合にははい、ステップ13において、1つ又は複数の作業を適用することができる。こうした作業は、ユニットが操作されるモードを変更することと、損耗平均化ルーチンを適用することと、ユニットをそれ以上操作しないようにすることと、ユニットに関するデータの損失を防ぐための尺度を開始することと、復号プロセスにおいて用いられる1つ又は複数のパラメータを変更し、変更されたパラメータを用いて復号プロセスの実行を続けることとのうちの1つ又は複数を含むことができる。上記のリストは、網羅的なものではなく、かつ、全ての異なる作業がデバイスに同時に施される必要もない。好ましくは平均回数が閾値を超えたときの、平均反復回数を条件として開始される作業の特定の例は、次の通りとすることができる。平均回数が超えた損耗平均化閾値に関して、現在のブロックを含む多数のブロックにわたる損耗の分布を釣り合わせるために、損耗平均化プロセスを開始することができる。例えば、平均反復回数及び対応する損耗平均化閾値が、現在のブロックにおいて比較的高い損耗レベルを示す場合には、到着する新たなデータはいずれも、より低い損耗レベルを示す異なるブロックに書き込まれるようにすることができる。例えば閾値を超えることによって作動する場合には、現在のブロック上では以後は読出し操作のみが許可され、書込み操作又は消去操作は許可されないことも、操作におけるモードとして理解することができる。平均反復回数の監視の結果として操作のモードを変更することは、例えば、データの読出し、データの書込み、消去操作、符号化及び/又は復号操作、ガベージコレクション、他の管理的タスク等に影響することがある。要約すると、識別された損耗から出発し及び/又はその損耗を考慮して変更されることがある、現在のいずれの操作的プロセスも、操作のモードの変更の範囲内に含まれるものとされる。例えば反復平均回数が非常に高い損耗レベルを示す停止閾値を超える場合には、例えば現在のブロックから有効なデータが喪失することを防ぐためにフェイルセーフルーチンを適用した後で、現在のブロック上の全ての操作を停止することができ、ブロックはそれ以上用いられないことになる。好ましい実施形態においては、上に掲げた作業のうちの幾つかを逐次的に又は並列に開始することができ、異なる作業についての閾値は、閾値の値が異なる場合がある。図1における好ましい方法によると、平均反復回数が閾値を超えるブロックは、それ以上使用できないもの及び/又は信頼できないものとしてマーク付けされる。こうした場合において、即ちステップ14において、本ブロック上のいかなる操作も停止することができる。例えば復号パラメータの変更などといった、停止操作以外の作業が好ましい選択である場合には、復号プロセスは、点線で示されるようにステップ10において継続することができ、ステップ11において新たな平均反復回数を算定するために、関連する復号を含む読出し操作の新たなサイクルが実行されるが、その際には変更された復号パラメータが適用される。図1のフローチャートは、ブロックの損耗が増大するにつれて、セル性能が低下し、復号に成功するためにより多くの反復が必要となることを示す。復号に成功するために必要な平均反復回数が、セルが損耗していない初期段階における通常の操作に対して相対的に設定することができる閾値を超えたときには、そのブロックは、信頼できないものと宣言することができ、それ以上用いられない。図2は、本発明の別の実施形態によるフローチャートを示し、ここにおいても、読出し要求の際に出力を生成する軟判定復号アルゴリズムによって必要とされる反復回数が監視される。ブロックレベルで―ブロックは、本方法が適用されるフラッシュメモリデバイスのユニットとすることができる―ステップ20において操作が開始し、ステップ21にまとめて示されるように、種々のカウンタ<k>、<r>、及び<i>がゼロに設定される。サイズwの所定のウィンドウが導入され、ここでwをブロックにおける連続する読出しと考える。これは、ブロックごとのレジスタにおけるカウンタ<r>によって実装することができ、カウンタ<r>は、ブロックにおける各々の読出し操作の際に増加され、ステップ24においてrがwに達したときに、ステップ21においてリセットされる。リセットの際に、ウィンドウwのインデックスを表すカウンタ<k>は、ブロックごとのレジスタにおいて増加される。さらに別のカウンタ<i>は、ブロックごとのレジスタに実装され、ステップ22におけるブロックの読出し操作の際に結果を作り出すために必要な反復回数mに応じて、ステップ23において増加される。この意味で、カウンタ<i>は、種々の読出し操作をサポートする復号プロセスにおいて必要な反復回数を累算する。このカウンタ<i>は、ステップ21に示されるように、rがwに達したときにリセットされる。カウンタ<i>の値は、リセットされる前に、ブロックごとのレジスタにおける別のカウンタ位置<i_previous>に格納することができるが、このことは図2のフローチャートには示されない。従って、最初のwの読出しは、w_1で表される第1のウィンドウを形成し、次のwの読出しは、w_2で表される第2のウィンドウを形成し、以下同様である。その結果、ウィンドウw_kは、連続するwの読出しの列k-1×w1,k-1×w2,...,k×wを含む。rがwに達した後、必要な反復平均回数n_kは、ステップ25において、上記に基づいて次の通り計算される。ウィンドウw_kにおける平均反復回数n_k:n_k=i/wここで、こうした平均反復回数n_kは、ステップ26において閾値thresと比較することによって監視される。平均反復回数n_kが閾値thresを上回る場合にははい、ステップ27においてプロセスは停止され、本実施形態においては、それぞれのブロックが使用不能としてマーク付けされる。必要に応じて、他の作業をステップ27と組み合わせて開始してもよい。ステップ26において、平均反復回数n_kが閾値thresを下回る場合には、プロセスは、ステップ21において、wの読出しの新たなウィンドウk1について再び開始し、これについて、平均反復回数が、ステップ25において算定され、ステップ26において監視される。必要に応じて、平均反復回数n_kの算定と組み合わせて、次の通りに平均反復回数の変化率を計算することができる。ウィンドウw_k-1における平均反復回数:n_k-1=i_previous/wウィンドウw_kにおける平均反復回数の変化量d_k:d_k=n_k-n_k-1列d_kを用いて、デバイスの損耗の変化率を推定することができる。d_kが所定の閾値を超えた場合には、適切なアクションを追加的に取ることができる。データ保持期間の問題は、別の実施形態に従って対処することもできる。データ保持期間とは、訂正可能な誤りを伴う可能性がある格納されたデータを読み出すことができる最大時間をいう。読出し問題は、損耗のためではなくデータが長期間更新されずに格納され続けたために、データが破損することによって起こる場合があることを思い出されたい。具体的には、上述の方法を参照すると、典型的なウィンドウは、復号のために行われた反復回数についての情報を伴うが時間の概念を伴わない、wの読出し操作を含む。保持期間を損耗と区別するために、対応するウィンドウの存続時間、即ちウィンドウがどれだけ長くアクティブであるかを示すための追加的なカウンタを準備することができる。ウィンドウの存続時間が保持期間閾値を超え、平均反復回数がその割り当てられた閾値を超えた場合には、こうしたブロックにおいて起こり得るデータ損失は、損耗ではなくデータ保持期間が原因であると仮定することができる。ウィンドウがどれだけ長くアクティブであるかを監視した結果として、他の又は追加的な手段、例えばウィンドウの存続時間が保持期間閾値を超えた場合にはブロックの有効なデータを再配置することを、実施することができる。図2に示される手法は、いつメモリデバイス全体が損耗しきるかを検出するために拡張することもできる。1つの可能な実装形態が、以下に説明され、ブロックレベルにおける平均反復回数の算定に類似する構成を取るが、カウンタはデバイスにおけるいずれの読出しプロセスの反復も計数するように実装されるという、デバイスレベルへの移行がなされる。従って、デバイスレベルでの反復回数は、デバイスごとのカウンタを通じて計数される。具体的には、サイズWのウィンドウが導入され、ここでWをデバイスにおける連続する読出しと考える。これは、デバイスごとのレジスタにおけるカウンタ<R>によって実装することができ、カウンタ<R>は、デバイスにおける各々の読出し操作の際に増加され、RがWに達したときにリセットされる。リセットの際に、ウィンドウのインデックスを表す別のカウンタ<K>が、デバイスごとのレジスタにおいて増加される。さらに別のカウンタ<I>が、デバイスごとのレジスタに実装され、いずれかのブロックにおける読出し操作の際に結果を作り出すために必要な反復回数に応じて増加される。このカウンタ<I>は、RがWに達したときにリセットされる。カウンタ<I>の値は、リセットされる前に、デバイスごとのレジスタにおける別のカウンタ位置<I_previous>に格納することができる。従って、最初のWの読出しは、W_1で表される第1のウィンドウを形成し、次のWの読出しは、W_2で表される第2のウィンドウを形成し、以下同様である。その結果、ウィンドウW_Kは、連続するWの読出しの列K-1×W1,K-1×W2,...,K×Wを含む。必要な平均反復回数及びその変化率は、上記に基づいて次の通り計算される。W_Kにおける平均反復回数N_K:N_K=I/WW_K-1における平均反復回数:N_K-1=I_previous/WW_Kにおける平均反復回数の変化量D_K:D_K=N_K-N_K-1デバイスレベルでの平均反復回数の算定は、ブロックレベルでの算定に加えて、又はその代わりに、実装することができる。デバイスレベルでの損耗を観察するに当たって、デバイスレベルでの平均反復回数が閾値を超えた際に開始されるいずれの作業も、例えば、デバイスを損耗しきったものとしてマーク付けすること、並びに/又は、以後のさらなる書込み及び/若しくは消去操作がデバイスに適用されるのを防ぐことによって、デバイス特有のものとすることができる。別の実施形態においては、平均反復回数の算定を、デバイスの各々のブロックに対して行うことができる。さらに、デバイスレベルでの平均反復回数の算定の場合は、全てのブロックについて算定された平均反復回数を累算することができる。1つの実施形態においては、個々のブロックに対する操作は、その特定のブロックについての平均反復回数が閾値を超えた場合に停止又は修正することができ、デバイス全体に対する操作は、累算された反復回数が閾値を超えた場合に停止または修正することができ、その閾値は、ブロックレベルの閾値と同じ値に設定することも、異なる値、具体的にはより小さい値に設定することもできる。デバイス全体に対する操作は、使用不能と宣言されたブロックの数が閾値を超えた場合に停止することもできる。ブロックIDの例及びデバイスIDの例について、ブロックごと及びデバイスごとのレジスタの内容の典型的なスナップショットが、図3の表に示される。図2に関して導入されたカウンタに対応するカウンタk、r、i、K、R、Iについて、カウンタ値の例が示される。図4は、生のビット誤り率がx軸に、待ち時間/反復がy軸に、ユーザビット誤り率がz軸に表された3D図によって、本方法及び本デバイスのより広範囲の関係を示す。生のビット誤り率は、メモリに格納されたデータにおけるビット誤り率、即ち、誤り訂正が適用されない場合に格納された符号語が示すビット誤り率を特徴付けるものである。誤り訂正符号が適用されるという理由で、ビット誤り率は誤り訂正符号によって改善することができ、ユーザビット誤り率は、誤り訂正符号化されたデータを復号した後でも依然として残るビット誤り率を表す。反復復号の手法を用いる符号が用いられるという理由で、待ち時間/復号は、符号語の復号に成功するために必要な時間又は符号語の復号に成功するために必要な反復回数のいずれかを表すものとすることができる。本図において、反復回数は、多数の復号にわたって算定される平均回数ではなく、個々の符号語を復号するために必要な回数を表すことに注意されたい。本例の場合においては、ソリッドステートメモリデバイスはフラッシュメモリデバイスであり、提案される方法の実施形態は、フラッシュメモリデバイスにおけるセルからのアナログ信号の読み戻しVT、即ち時間に対する電圧のサンプルを用いる。それぞれのブロックにおける損耗が増大するにつれて、生のビット誤り率、すなわち誤り訂正前に個々の記号判定に適用可能な誤り率も増大し、その結果、復号のために必要な反復回数が増加する。符号記号の復号に成功できない場合であってもデバイスが動作し続けられる限られた待ち時間を保つために、符号語を復号するために行われる反復の回数を制限することが好ましい。従って、許容される所与の待ち時間又は最大反復回数の場合には、損耗の増大のために、生のビット誤りが増加するにつれてユーザビット誤り率が増大する。生のビット誤り率が増大したときには、反復回数を増加させ、従って復号待ち時間を増大させるのと引き換えに、特定のユーザビット誤り率を維持できることに注意されたい。デバイスの寿命の終わりの頃には、符号語の復号に成功するための反復回数は、許容される最大反復回数に近い。その時点において、即ち、例えば平均反復回数が許容される最大反復回数より小さい第1の閾値を超えたときに、許容される最大反復回数は、より大きい値に設定することができ、従って、信頼性を維持するため、即ち特定のユーザビット誤り率を維持するために、例外的に増加させることができる。第2のステップにおいて、平均反復回数が、好ましくは第1の閾値を超えるものとすることができる第2の閾値を超えたときに、ブロック又はデバイスにマーク付けし、その際に、それらを信頼できずもはや使用できないものとして宣言することができる。第2の閾値が最初の許容される最大反復回数に等しい値に設定された場合には、目標のユーザビット誤り率が、許容される最大の復号反復回数内で平均して達成できないときに、ブロックを信頼できないものと宣言することができる。図4においては、デバイスの寿命にわたって、対象となるブロックの損耗が増大し、それが、例えば生のビット誤り率がRB1からRB2に増大する結果をもたらす。生のビット誤り率RB1を伴う符号語の復号に成功するために必要な反復回数がIT1に制限される場合には、誤り訂正符号であるにもかかわらず訂正可能ではないビット誤りの尺度である、RB1及びIT1に関連するユーザビット誤り率UB1は、UB2に増大することが、図から明らかになる。しかし、許容される最大反復回数ITMがIT1より大きい値を有する場合には、IT1を超えるがITMより小さい回数の反復を実行することによって、デバイスの操作のために指定された目標ユーザビット誤り率とすることができるユーザビット誤り率UB1に固定する機会がある。平均反復回数が閾値を超える場合には、最大反復回数は、例外的に、少なくともRB3より小さい生のビット誤り率について目標ユーザビット誤り率がUB1を保つことができるように、ITMを超えるIT2に設定することを可能にする場合がある。言い換えると、図4に定性的に示されるように、ブロックの寿命と復号の待ち時間との間における種々のトレードオフを選択することが可能である。図5は、本発明の実施形態によるメモリデバイスのブロック図を示す。メモリデバイス1は、ブロック/ページメモリ空間構造を伴うフラッシュベースのソリッドステートメモリ2を含む。一部のブロックが21として示されている。メモリコントローラ3は、フラッシュメモリ2の作業を制御し、従って、メモリはコンピュータ化されたメモリと表現することができる。メモリコントローラ3は、ストレージコントローラと表すこともできる。メモリコントローラ3は、具体的には、符号化及び復号を含む、データをメモリ2へ書き込み、メモリ2から読み出すように、並びにデータの読み出し及び書き込みに関する全ての管理タスクを実行するように、適合される。メモリコントローラ3は、さらに、データを格納するためにストレージデバイス1を用いるホスト4に接続される。従って、ホスト4は、ストレージデバイス1に対して読出し及び/又は書込みコマンドを発行する。上述の実施形態のいずれか1つによる方法を実装するために、メモリコントローラ3は、図6に示されるように、好ましくはROM31といった不揮発性の書き換え不可能なストレージ媒体に格納されるコンピュータプログラムコードを提供することが好ましい。メモリコントローラは、さらに、プログラムコードをロードして入れるためのRAM32と、RAM32内のプログラムコードを実行するための処理ユニット33とを提供する。処理ユニット33は、説明された方法による軟判定復号のための軟判定復号器331、幾つかの読み込みコマンドの復号プロセスに必要な平均反復回数を算定するための計算ユニット332、及び、内部において例えば平均反復回数が閾値と比較される監視ユニット333などといった機能ユニットを含む。処理ユニット33は、復号される符号語がキュー334によって供給される信号軟判定復号器を含む。さらに、メモリコントローラ3の構成要素間で通信するための内部通信システム34が提供され、フラッシュメモリと通信するためのインターフェース35が提供され、さらに、ホストとの任意の通信のための別のインターフェース36を提供することができる。好ましい実施形態においては、LDPC符号が誤り訂正符号として実装され、軟判定復号器331におけるデータ取得のために反復軟判定復号が適用される。重要なパラメータは、復号プロセスに関連する待ち時間である。ブロックに格納された符号語の復号のための平均反復回数が監視される。受け入れ可能な損耗レベルの場合には、5000ビットまでの長さの符号語について、20回以内の反復で応答が行われることが期待される。各々の反復が1usで行われると仮定すると、応答時間は長くても20usとなり、これは適切なSSD操作として受け入れ可能な限度内である。長い待ち時間と引き換えに実装の複雑さが減少する構成である、反復復号のための単一の論理に加えて連続する読出し要求を格納するためのキューを伴う軟判定復号器331の上述の構成の代わりに、n個の符号語を一度に復号するために必要な論理を複製することによって反復復号を実装する構成とすることができ、その結果、読出し要求を並列に処理することができて、待ち時間が短くなる。最後に、図7は、ブロック21内に編成されたフラッシュメモリの部分を示すものであり、ブロック21の一部のブロック131から138が明示的に示される。ページは、縦列のように図示されるブロックにおける横縞として示される。ブロック131から138のすべてのブロックは、ユーザデータを保持するように適合されたデータブロックである。本例において、ブロック133は、受け入れ可能な閾値を上回る損耗を示すことが決定されていると仮定する。その結果、図7において矢印60によって示されるように、そのブロックの有効なページは、別のブロック、すなわち本例においてはブロック135に複製され、そのブロックが、今度は、新たなデータ又は更新されたデータの書込みをサポートする。こうしたデータ保存の後、ブロック133は、もはや使用されていないものとしてマーク付けされる。当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータプログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコード等を含む、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、本明細書においては、これらは全て、一般的に回路、モジュール又はシステムと呼ぶことがある。さらに、本発明の態様は、媒体内に具体化されたコンピュータ可読プログラムコードを有する、1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータプログラム製品の形態をとることができる。1つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線若しくは半導体のシステム、装置若しくはデバイス、又はこれらのいずれかの適切な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ可読ストレージ媒体のより具体的な例非網羅的なリストとして、以下もの、即ち、1つ又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み出し専用メモリROM、消去可能なプログラム可能読み出し専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリCD-ROM、光記憶装置、磁気記憶装置、又はこれらのいずれかの適切な組み合わせが挙げられる。本明細書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はそれらに関連して用いるためのプログラムを収容又は格納することが可能ないずれかの有形媒体とすることができる。コンピュータ可読信号媒体は、例えばベースバンドに、又は搬送波の一部として、コンピュータ可読プログラムコードが組み入れられた伝搬データ信号を含むことができる。このような伝搬信号は、電磁気、光又はそれらのいずれかの適切な組み合わせを含むがこれらに限定されない、種々の形態のうちのいずれかをとることもできる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを通信、伝搬又搬送することができる、いずれかのコンピュータ可読媒体とすることができる。コンピュータ可読媒体上に具体化されたプログラムコードは、無線、有線、光ファイバケーブル、RF等、又はこれらのいずれかの適切な組み合わせを含むがこれらに限定されるものではない、いずれかの適切な媒体を用いて伝送することができる。本発明の態様についての操作を実行するためのコンピュータプログラムコードは、Java、Smalltalk、C等のようなオブジェクト指向型プログラミング言語、及びCプログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語のいずれかの組み合わせで書くことができる。全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェアパッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカルエリアネットワークLAN若しくは広域ネットワークWANを含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある例えば、インターネットサービスプロバイダを用いたインターネットを通じて。本発明の態様は、本明細書において、本発明の実施形態による方法、装置システム及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータプログラム命令によって実装できることが理解されるであろう。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を生成するようになる。これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。コンピュータプログラム命令をコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するためのプロセスを提供するようにすることもできる。図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための1つ又は複数の実行可能な命令を含む、モジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序とは異なる順序で行われることがあることにも留意すべきである。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも留意されたい。"