複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステムにおいて、a複数のフラッシュメモリセルからデータビットを読み取ること、bエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正しようと試みること、cエラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールが前記エラーの訂正を成功させるまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルから前記データビットの再読み出しを行うこと、d前記訂正の後に、モジュールが前記エラーの訂正に成功したときの少なくとも一つの読み出し基準電圧を記憶すること、e前記記憶の後に、前記記憶した少なくとも一つの読み出し基準電圧を読み出すこと、そしてg前記読み出しの後、前記読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み取ることからなる、データを読み取る方法。少なくとも一つの前記読み出した基準電圧が、揮発性メモリ内に記憶される、請求項1の方法。少なくとも一つの前記読み出した基準電圧が、不揮発性メモリ内に記憶される、請求項1の方法。少なくとも一つの前記読み出した基準電圧が、一つ以上のフラッシュメモリセル内に記憶される、請求項1の方法。前記読み取ったデータビットが、フラッシュコントローラを用いて読み取られ、そして少なくとも一つの前記読み出した基準電圧が、前記フラッシュコントローラ内に記憶される、請求項1の方法。前記記憶の前の最初の前記読み取りが、最初の読み出しリクエストに応答したものであり、そして前記読み出した少なくとも一つの読み出し基準電圧を用いる以降の読み取りが、以降の読み出しリクエストに応答したものである、請求項1の方法。複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステムにおいて、a複数のフラッシュメモリセルからデータビットを読み取ること、bエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正しようと試みること、cエラー検出訂正モジュールによるエラー訂正が失敗した前記読み取り以降、少なくとも一つの新しい読み出し基準電圧を導き出すこと、そしてd前記導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリセルから前記データビットを読み出すことからなる、データを読み取る方法。前記導き出した少なくとも一つの新しい電圧が、少なくとも部分的にエラー検出訂正モジュールが提供する情報に応じて決定される、請求項7の方法。前記導き出した少なくとも一つの新しい電圧が、少なくとも部分的にランダムに決定される、請求項7の方法。複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステムにおいて、a複数のフラッシュメモリセルからデータビットを読み取ること、bエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正すること、そしてc前記訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルから前記データビットを読み出すことからなる、データを読み取る方法。前記訂正の後、かつ前記少なくとも一つの修正基準電圧を用いた前記読み出しの前に、複数のメモリセルが書き込まれることがない、請求項10の方法。少なくとも一つの前記修正基準電圧は、少なくとも部分的にエラー検出訂正モジュールが提供する情報に応じて導き出される、請求項10の方法。前記訂正の前の最初の前記読み取りが、最初の読み出しリクエストに応答したものであり、そして前記訂正の後の前記以降の読み取りが、以降の読み出しリクエストに応答したものである、請求項10の方法。データ記憶のためのフラッシュメモリデバイスであって、aデータビットを記憶するための複数のフラッシュメモリセル、b前記データビットにおけるエラーを検出して訂正するためのエラー検出訂正モジュール、そしてc前記フラッシュメモリセルから前記データビットを読み取るためのコントローラからなり、前記コントローラが、i複数のフラッシュメモリセルからデータビットを読み取ること、ii前記エラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正しようと試みること、iiiエラー検出訂正モジュールによるエラー訂正が失敗した場合、前記モジュールが前記エラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、前記複数のフラッシュメモリセルからデータビットの再読み出しを行うこと、そしてiv前記訂正の後に、モジュールが前記エラーの訂正に成功したときの少なくとも一つの読み出し基準電圧を記憶することによって、最初の読み出しリクエストに応答するよう作動可能であり、また、前記記憶の後、前記コントローラが、さらに、i前記記憶した少なくとも一つの読み出し基準電圧を読み出すこと、そしてii前記読み出しの後、前記読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み取ることによって、以降の読み出しリクエストに応答するよう作動可能である、フラッシュメモリデバイス。前記コントローラが、揮発性メモリに、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項14のデバイス。前記コントローラが、不揮発性メモリに、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項14のデバイス。前記コントローラが、一つ以上の前記フラッシュメモリセルに、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項14のデバイス。前記コントローラが、前記コントローラ内に、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項14のデバイス。データ記憶のためのフラッシュメモリデバイスであって、aデータビットを記憶するための複数のフラッシュメモリセル、b前記データビットにおけるエラーを検出するためのエラー検出訂正モジュール、そしてc前記フラッシュメモリセルから前記データビットを読み取るためのコントローラからなり、前記コントローラが、i前記データビットを複数のフラッシュメモリセルから読み取ること、iiエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正しようと試みること、iiiエラー検出訂正モジュールによるエラー訂正が失敗した前記読み取り以降、少なくとも一つの新しい読み出し基準電圧を導き出すこと、そしてiv前記導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリセルから前記データビットを読み出すことによって、読み出しリクエストに応答するよう作動可能である、フラッシュメモリデバイス。前記コントローラが、少なくとも部分的にエラー検出訂正モジュールが提供する情報に応じて前記少なくとも一つの新しい電圧を導き出すよう作動可能である、請求項19のデバイス。前記コントローラが、少なくとも部分的にランダムに前記少なくとも一つの新しい電圧を導き出すよう作動可能である、請求項19のデバイス。データ記憶のためのフラッシュメモリデバイスであって、aデータビットを記憶するための複数のフラッシュメモリセル、b前記データビットにおけるエラーを検出するためのエラー検出訂正モジュール、そしてc前記フラッシュメモリセルから前記データビットを読み取るためのコントローラからなり、前記コントローラが、i複数のフラッシュメモリセルからデータビットを読み取ること、そしてii前記エラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正することによって、最初の読み出しリクエストに応答するよう作動可能であり、また、前記コントローラが、iii少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出すことによって、以降の読み出しリクエストに応答するよう作動可能である、フラッシュメモリデバイス。前記コントローラが、前記訂正の後、かつ前記少なくとも一つの修正基準電圧を用いる前記読み取りの前に、前記複数のメモリセルに書き込むことなく、前記最初の、そして前記以降の読み出しリクエストに応答するよう作動可能である、請求項22のデバイス。前記コントローラが、少なくとも部分的に前記エラー検出訂正モジュールが提供する情報に応じて、少なくとも一つの前記修正基準電圧を導き出すよう作動可能である、請求項22のデバイス。コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、a複数のフラッシュメモリセルからデータビットを読み取る命令、bエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正しようと試みる命令、cエラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールが前記エラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルから前記データビットの再読み出しを行う命令、d前記訂正の後、モジュールが前記エラーの訂正に成功したときの少なくとも一つの読み出し基準電圧を記憶する命令、e前記記憶の後、前記記憶した少なくとも一つの読み出し基準電圧を読み出す命令、そしてg前記読み出しの後、前記読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み取る命令からなる、コンピュータで読み取り可能な記憶メディア。コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、a複数のフラッシュメモリセルからデータビットを読み取る命令、bエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正しようと試みる命令、cエラー検出訂正モジュールによるエラー訂正が失敗した前記読み取り以降、少なくとも一つの新しい読み出し基準電圧を導き出す命令、そしてd前記導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリセルから前記データビットを読み出す命令からなる、コンピュータで読み取り可能な記憶メディア。コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、a複数のフラッシュメモリセルからデータビットを読み取る命令、bエラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正する命令、そしてc前記訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルから前記データビットを読み出す命令からなる、コンピュータで読み取り可能な記憶メディア。前述の問題、そして他の問題のいくつか、あるいはすべては、本発明のいくつかの局面によって満たすことができる。さて、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、a複数のフラッシュメモリセルからデータビットを読み出すステップ、bエラー検出訂正モジュールを用いて、読み出したデータビットのエラーを訂正しようと試みるステップ、cエラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットの再読み出しを行うステップ、d訂正の後、モジュールがエラーの訂正に成功した少なくとも一つの読み出し基準電圧を記憶するステップ、e記憶の後、記憶した少なくとも一つの読み出し基準電圧を読み出すステップ、そしてg読み出し後、読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み取るステップからなる。少なくとも一つの読み出し基準電圧は、揮発性および/または不揮発性メモリの組み合わせ内に記憶してもよい。いくつかの実施例によれば、少なくとも一つの読み出し基準電圧は、一つ以上のフラッシュメモリセルに記憶する。いくつかの実施例によれば、読み出すべきデータビットは、フラッシュコントローラを用いて読み出し、そして少なくとも一つの読み出し基準電圧は、フラッシュコントローラ内にすなわち、フラッシュコントローラの揮発性および/または不揮発性メモリの組み合わせ内に記憶する。いくつかの実施例によれば、記憶前の最初の読み取りは、最初の読み出しリクエストに応答したものであり、読み出した少なくとも一つの読み出し基準電圧を用いた以降の読み取りは、以降の読み出しリクエストに応答したものである。さて、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、a複数のフラッシュメモリセルからデータビットを読み出すステップ、bエラー検出訂正モジュールを用いて、読み出したデータビットのエラーを訂正しようと試みるステップ、cエラー検出訂正モジュールによるエラー訂正が失敗した読み出しの後、少なくとも一つの新しい読み出し基準電圧を導き出すステップ、そしてd導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出すステップからなる。いくつかの実施例によれば、導き出した少なくとも一つの新しい電圧は、エラー検出訂正モジュールが提供する情報に少なくとも部分的に応じて決定する。いくつかの実施例によれば、導き出した少なくとも一つの新しい電圧は、少なくとも部分的にランダムに決定される。さて、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、a複数のフラッシュメモリセルからデータビットを読み出すステップ、bエラー検出訂正モジュールを用いて、読み出したデータビットのエラーを訂正するステップ、そしてc訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出すステップからなる。いくつかの実施例によれば、少なくとも一つの修正基準電圧を用いた以降のデータビットの読み出しは、当座の間すなわち、ステップaでデータビットを読み出した後、かつ少なくとも一つの修正基準電圧による再読み出しの前にたとえエラー訂正検出および訂正モジュールによるエラー訂正の失敗が全くなくとも実行される。いくつかの実施例によれば、複数のメモリセルは、訂正後に、また、少なくとも一つの修正基準電圧を用いる読み出し前に、書き込まれない。いくつかの実施例によれば、少なくとも一つの修正基準電圧は、少なくとも部分的にエラー検出訂正モジュールが提供する情報例えば、エラー数を示す情報に応じて導き出す。いくつかの実施例によれば、訂正前の最初の読み取りは、最初の読み出しリクエストに応答したものであり、訂正後以降の読み取りは、以降の読み出しリクエストに応答したものである。さて、次のものからなる、データ記憶のためのフラッシュメモリデバイスを初めて開示する。aデータビットを記憶するための複数のフラッシュメモリセル、bデータビットにおけるエラーを検出して訂正するためのエラー検出訂正モジュール、そしてcメモリセルからデータビットを読み出すためのコントローラ。Iコントローラは、i複数のフラッシュメモリセルからデータビットを読み出すこと、iiエラー検出訂正モジュールを用いて、読み出したデータビットのエラーを訂正しようと試みること、iiiエラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットの再読み出しを行うこと、そしてiv訂正の後、モジュールがエラーの訂正に成功した少なくとも一つの読み出し基準電圧を例えば、コントローラの補助メモリ内に、あるいは他のメモリ内に記憶することによって、最初の読み出しリクエストに応答するよう作動可能である。そして記憶の後、IIコントローラは、さらに、i記憶した少なくとも一つの読み出し基準電圧を読み出すこと、そしてii読み出し後、読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み取ることによって、以降の読み出しリクエストに応答するよう作動可能である。いくつかの実施例によれば、コントローラは、揮発性メモリに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。いくつかの実施例によれば、コントローラは、不揮発性メモリに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。いくつかの実施例によれば、コントローラは、一つ以上のフラッシュメモリセルに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。いくつかの実施例によれば、コントローラは、コントローラ例えば、フラッシュコントローラの揮発性および/または不揮発性メモリに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。さて、次のものからなる、データ記憶のためのフラッシュメモリデバイスを初めて開示する。aデータビットを記憶するための複数のフラッシュメモリセル、bデータビットにおけるエラーを検出するためのエラー検出訂正モジュール、そしてcフラッシュメモリセルからデータビットを読み出すためのコントローラ。コントローラは、i複数のフラッシュメモリセルからデータビットを読み出すこと、iiエラー検出訂正モジュールを用いて、読み出したデータビットのエラーを訂正しようと試みること、iiiエラー検出訂正モジュールによるエラー訂正が失敗した読み出しの後、少なくとも一つの新しい読み出し基準電圧を導き出すこと、そしてiv導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出すことによって、読み出しリクエストに応答するよう作動可能である。いくつかの実施例によれば、コントローラは、エラー検出訂正モジュールが提供する情報に少なくとも部分的に応じて、少なくとも一つの新しい電圧を導き出すよう作動可能である。いくつかの実施例によれば、コントローラは、少なくとも部分的にランダムに、少なくとも一つの新しい電圧を導き出すよう作動可能である。さて、次のものからなる、データ記憶のためのフラッシュメモリデバイスを初めて開示する。aデータビットを記憶するための複数のフラッシュメモリセル、bデータビットにおけるエラーを検出するためのエラー検出訂正モジュール、そしてcフラッシュメモリセルからデータビットを読み出すためのコントローラ。Iコントローラは、i複数のフラッシュメモリセルからデータビットを読み出すこと、そしてii前記エラー検出訂正モジュールを用いて、前記読み取ったデータビットのエラーを訂正することによって、最初の読み出しリクエストに応答するよう作動可能である。また、IIコントローラは、さらに、iii少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出すことによって、以降の読み出しリクエストに応答するよう作動可能である。いくつかの実施例によれば、コントローラは、訂正後、かつ少なくとも一つの修正基準電圧を用いる読み出しの前に複数のメモリセルに書き込みを行うことなく、最初の、そして以降の読み出しリクエストに応答するよう作動可能である。いくつかの実施例によれば、コントローラは、エラー検出訂正モジュールが提供する情報に少なくとも部分的に応じて、少なくとも一つの修正基準電圧を導き出すよう作動可能である。さて、コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアを初めて開示する。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a複数のフラッシュメモリセルからデータビットを読み取る命令、bエラー検出訂正モジュールを用いて、読み取ったデータビットのエラーを訂正しようと試みる命令、cエラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットの再読み出しを行う命令、d訂正の後、モジュールがエラーの訂正に成功した少なくとも一つの読み出し基準電圧を記憶する命令、e記憶の後、記憶した少なくとも一つの読み出し基準電圧を読み出す命令、そしてg読み出し後、読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出す命令からなる。さて、コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアを初めて開示する。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a複数のフラッシュメモリセルからデータビットを読み取る命令、bエラー検出訂正モジュールを用いて、読み取ったデータビットのエラーを訂正しようと試みる命令、cエラー検出訂正モジュールによるエラー訂正が失敗した読み出しの後、少なくとも一つの新しい読み出し基準電圧を導き出す命令、そしてd導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出す命令からなる。コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディア。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリセルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a複数のフラッシュメモリセルからデータビットを読み取る命令、bエラー検出訂正モジュールを用いて、読み取ったデータビットのエラーを訂正する命令、そしてc訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリセルからデータビットを読み出す命令からなる。これらの実施例および他の実施例を、以下で詳細に説明する。詳細な説明さて、本発明を、特定の実施例に関して説明する。本発明が開示の実施例に限定されないことは理解すべきである。また、添付の請求項の特定な発明を実施するのに、ここに開示する、フラッシュメモリのエラーから復旧するための方法、デバイスおよびコンピュータで読み取り可能なコードのすべての特徴が必要であるというわけではないことも理解すべきである。本発明を完全に可能なものにするために、種々の素子およびデバイスの特徴を説明する。また、プロセスまたは方法を説明する本開示を通して、方法のステップは、ステップが、他のステップが最初に実行されることに依存していることが文脈から明白である場合を除き、どの順序で実行しても、または同時に実行してもよい、ということも理解すべきである。図3のフラッシュメモリデバイス図3は、本発明の模範的な実施例によるフラッシュメモリデバイス50を表すブロック図である。フラッシュメモリデバイス50は、複数のフラッシュメモリセルおよびフラッシュコントローラ10を有するフラッシュメモリ30を含む。フラッシュコントローラ10は、フラッシュメモリセル30からデータを読み取るように作用し、また、オプションとして、フラッシュメモリセル30内へデータを書き込むように作用する。フラッシュデバイス50は、また、図3に示すようにフラッシュコントローラ10の一部として、または別個のものとしてエラー検出訂正回路20を含む。フラッシュコントローラ10は、フラッシュデバイス50の外部から、例えば、ホストデバイス図示せずから受信した命令に従って、フラッシュメモリ30にアクセスしてもよい。図4の説明図4は、本発明の実施例としてのフラッシュデバイス50による、一つ以上の読み出しリクエストの処理を説明するフローチャートである。読み出しリクエストを受信した110後、フラッシュコントローラ10は、一セットの基準電圧を用いて、フラッシュメモリ30からデータビットを読み取る112C例えば、デフォルトの基準電圧あるいは他のセットの基準電圧。このため、各メモリセルは、それぞれの基準電圧を用いて読み取る。ECCを用いて、読み取ったデータビットの訂正を試みる114。エラー訂正が成功した場合116、コントローラ10は、訂正されたデータを送信することによって、読み出しリクエストへ例えば、ホストデバイスに応答してもよい118。読み出しリクエストに応答した118後、デバイス50は、次の読み出しリクエストを処理することができる。もしエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧を用いて120、フラッシュメモリからデータビットを再び読み出してもよい112Bすなわち、少なくとも一つのこの電圧が、先の読み出しに用いたもの112Cと異なる。再読み取り112Bの後、もう一度、追加のエラー訂正を試みる114。もしこのエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧を用いて、さらにもう一回、メモリセル30からデータビットを読み取ってもよい112Bすなわち、少なくとも一つのこの電圧が、先の読み出し112Bで用いたものと異なる。修正電圧による再読み取り112Bおよびエラー訂正の試み114を、エラー訂正が成功する116まで繰り返す。この時点で、読み出しリクエストへの応答118を送信してもよい。そしてコントローラは、次の読み出しリクエストに応答する110ためにスタンバイする。注目すべきことは、図4で説明した実施例によれば、エラー訂正が成功した後、データがフラッシュメモリセル内へ再び書き込まれることがないことである。注目すべきは、図4では、エラー訂正プロセスは、修正基準電圧を用いて120少なくとも一回、フラッシュメモリセルを再び読み出す112Bことを含むことである。図4への必要条件ではないが、いくつかの実施例では、修正基準電圧の順番を予め決定しておいてもよく、繰り返す度に、所定基準電圧の異なるセットを用いてもよい。択一的に、例えば、フラッシュコントローラ10のマイクロプロセッサを用いて、一つ以上の修正基準電圧を計算してもよい。図4に関する考察データを再書き込みしないので、以降の読み出しリクエストを処理するときに、最初の読み出しリクエストの処理で遭遇したと同じデータエラーが、もう一度、発生する傾向にあるすなわち、メモリセルを、再書き込みデータで若返らせて、デフォルト電圧を用いたエラー訂正の失敗率を減少させなかったためである。したがって、デバイスは、次の読み出しリクエストを処理する際に、もう一度、エラー訂正プロシージャ例えば、図4で説明したプロシージャを利用する必要がある。さて、本発明者は、多くの状況下で、フラッシュメモリ内へデータを再書き込みする図2の124を参照という時間のかかるステップを排除したすなわち、より速い復旧プロシージャを発動するスピードの利得が、複数回の読み出しの繰り返しに関する効率の損失、そして、読み出しエラーからのより頻繁な復旧の必要性を上回る可能性があることを、初めて開示する。したがって、本発明者は、図4のプロシージャが、平均で、図2のものよりも速い、多くの状況が存在することを開示する。図5の説明図5は、本発明の実施例としてのフラッシュデバイス50による、一つ以上の読み出しリクエストの処理を説明するフローチャートである。読み出しリクエストを受信した110後、フラッシュコントローラ10は、一セットの基準電圧を用いて、フラッシュメモリ30からデータビットを読み取る112C例えば、デフォルト基準電圧あるいは他の基準電圧セット。したがって、各メモリセルは、それぞれの基準電圧を用いて読み取る。ECCを用いて、読み取ったデータビットの訂正を試みる114。エラー訂正が成功した場合116、コントローラ10は、訂正されたデータを送信することによって、読み出しリクエストへ例えば、ホストデバイスへ応答してもよい118。読み出しリクエストに応答した118後、デバイス50は、次の読み出しリクエストを処理するよう作動可能である。もしエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧120を用いて、フラッシュメモリからデータビットを再び読み出してもよい112Bすなわち、少なくとも一つのこの電圧は、先の読み出しの際に用いたもの112Cと異なる。再読み取り112Bの後、追加のエラー訂正をもう一度試みる114。もしこのエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧を用いて、さらにもう一度、メモリセル30からデータビットを読み取ってもよい112Bすなわち、少なくとも一つのこの電圧は、先の読み出しの際に用いたもの112Bと異なる。修正電圧による再読み取り112B、そしてエラー訂正の試み114を、エラー訂正が成功する116まで繰り返す。この時点で、読み出しリクエストへの応答を送信してもよい118。図5に表す実施例によれば、エラー訂正が成功した116後、すなわち、復旧が成功した後、これ以降の使用のために、一つ以上の成功した基準電圧130をメモリ内に記憶してもよい。以降の読み出しリクエストを受信したら110、これらの記憶基準電圧のすなわち、先の読み出しリクエストの処理で復旧が成功した後に記憶した130一つ以上を読み出し132、以降の読み出しリクエストを処理するためにフラッシュメモリを読み取る112Dに用いてもよい。図5に明示していないし、また、図5の制限でもないが、いくつかの実施例では、図4の場合のように、フラッシュセルから読み出した実際のデータを、フラッシュセル内へ再書き込みする必要がないことは評価できる。図5の考察制限ではなく、図5は、図4の説明で上記に開示したことへの改善とみなしてよい。上記図4の説明において、注目したことは、フラッシュメモリセルへデータを再書き込みしないので、すなわち、時間のかかるフラッシュ書き込みオペレーションを避けるため、以降の読み出しリクエストを処理するときに同じエラーに遭遇することになるすなわち、再書き込みデータでメモリセルを若返らせて、デフォルト電圧を用いるエラー訂正の失敗の可能性を減少させることをしなかった。図5のプロシージャは、エラー訂正後以降の読み出しリクエストに応答する際に必要となる読み取りの繰り返し数を減少させるのに有用である。より詳しくは、多くの状況において、記憶成功基準電圧すなわち、直前の読み出しリクエストからのものが、以降の読み出しリクエストに適当な基準電圧の良好な第一近似値を提供する。したがって、エラー訂正後これらの基準電圧を記憶し、そして後にこれらの電圧を読み出すことによって、スピードに関してさらにもう一つの改善が達成できる。例えば、単一の読み出し基準値を持つSBCフラッシュにおいて、特定なフラッシュセルに対する読み出し基準を、繰り返しの度に25ミリボルト修正するすなわち、ステップ120と仮定する。もし実際に起こったセルのスレショルド電圧のドリフトが100ミリボルトであるなら、データを読み取ろうとする最初の試みすなわち、ステップ112Cは、5回の読み取り繰り返し後に成功することになるデフォルト読み出し基準値が、許容安全域なしに、分布の端に非常に近いと単純に仮定している。この仮定は、通常、フラッシュメモリデバイスに該当しない。読み出し成功後、100ミリボルトの値を、後の使用のために記憶する。以降、読み出しリクエストの受信後、そのデータを再び読み出す112Dとき、100ミリボルトの記憶値を取り出して使用する。一つの実施例すなわち、図5に例示したようなものによれば、デフォルトの読み出しをスキップして、デフォルト値から100ミリボルト離れた基準から、読み出しを始めてもよい。択一的に、以降の読み出しリクエストを受信したら、デフォルト基準電圧を用いて最初の読み出しを試み、そしてデータを訂正できない場合にのみ、100ミリボルトシフトさせた値で読み出しを試みてもよい。このように、5回の繰り返しではなく、1、2回の読み出し繰り返しのみのオーバーヘッドで済む。注目すべきことは、フラッシュメモリの種々のページに対するすなわち、かなりの量の読み出しに対する成功基準値を、揮発性メモリ、不揮発性メモリあるいはそれらの組み合わせ内に記憶してもよい130。例えば、成功基準値を、フラッシュコントローラ内のRAM内のテーブルに、あるいはフラッシュデバイス内に記憶してもよい130。RAM内への記憶は速いので効率的であるため、プロセスの速度を上げるという目的にかなっている。欠点は、一旦電源を切ってしまうと、記憶基準値が失われるということである。しかし、記憶値がメモリシステムオペレーションに必須なものでないため、これは許容できることである。もし、かなりの量のデータに関する記憶基準値が失われてしまったなら、そのかなりの量のデータに対する次の読み出しの際は、まず最初に、例えば、図4に記載したような低速で完全な反復プロセスを用いてもよい。しかし、データはなお、正しく読み出すことができる。図6の説明および考察図4では、基準電圧の修正120のやり方に制限がないことに注目した。図6においては、少なくとも一つの電圧を導き出す140、あるいは、特定な方法で例えば、フラッシュコントローラ10のマイクロプロセッサを用いて計算することを開示する。このセクションでは、一つ以上の基準電圧を導き出す、あるいは計算する140、二つの模範的なプロシージャを説明する。第一のプロシージャは、ECCモジュールが提供する情報によって、基準電圧を計算する140ことに関する。そして、第二のプロシージャは、ランダムに選択した電圧を用いて、基準電圧を導き出す140ことに関する。図5あるいは図6に明示していないが、注意すべきことは、典型的に、データ回復後、フラッシュメモリセルへデータを再び書き込むことをしないことである。基準電圧を導き出す140ための第一のプロシージャいくつかの実施例そして図6に例示するような例においては、データ訂正に失敗したとき、ECCモジュールが提供する情報を有利に用いることができる。例えば、いくつかのECC方法は、訂正できないデータに関するエラーの重大度の指標を提供するように構成できる。この文脈におけるエラーの重大度は、典型的に、そのデータ内のエラー数を意味する。したがって、ECCモジュールには、正確なエラーは分からなくともしかも、それらの正確な数さえ分からなくとも、エラー回数が大きいのか、あるいは小さいのかを示す情報は存在する。そのような情報を提供可能なECCモジュールを利用する場合、読み取り繰り返し数を減少させるように用いることができる。多数のエラーはスレショルド電圧の大規模なドリフトと相関があり、少数のエラーは小規模のドリフトと相関している、と予想することは合理的である。その最も単純な形態において、ECCモジュールが、バイナリの大きな、あるいは小さなエラー回数の標識のみを提供する場合、この実施例は、以下のとおりに作用する。第一のデフォルト値ベースの読み出しが失敗したとき、ECCモジュールに、エラーの重大度を尋ねる。それから、この重大度に基づいて決定した基準値を用いて、次の読み出しを試みる。多くのエラーがあるなら、基準値を大規模にシフトしてもよいし、エラーが少ないなら、小さなシフトでよい。このようにすれば、次の読み出しの試みが成功する可能性が高く、読み出しオペレーション毎の平均読み取り繰り返し数が減少する。注目すべきことは、例えば、ECCモジュールが提供する情報から繰り返しの各々に用いる基準電圧を導き出すことによって、基準電圧を予め定めないエラー訂正スキームを提供できることである。したがって、基準電圧の順序は、データの異なるページに対して異なってもよく、また、同じページに対する2回の読み出しオペレーションでさえ異なってもよい。基準電圧の予測が失敗した場合には、図4あるいは図5で説明したスキーム、または他のスキームへ戻すことが常に可能であることは明らかである。基準電圧を導き出す140ための第二のプロシージャエラー訂正中、所定値を用いるよりむしろ、少なくとも一つの基準電圧をランダムに導き出す140ことが望ましい多くのケースがある。例えば、もしBCHあるいはハミング符号などの、多くの単純なECCスキームでそうであるように、ECCモジュールがエラーの重大度に関する情報を提供できない場合、データビットから導き出した情報に応じて、読み出し基準電圧を選択することも可能である。したがって、値をランダムに用いることが望ましいこともある。異なるページ間で潜在するドリフト量の変化が大きい場合は、ランダムセレクションが所定の選択よりも有利であるかもしれない。ランダムセレクションを用いることによって、読み出しオペレーション毎の読み取り繰り返し数を平均化できるため、システム内に設置した特定のフラッシュデバイスに依存することの少ない、より安定な性能を提供できるかもしれない。図7の説明および考察修正電圧すなわち、所定修正電圧、あるいは新しく計算した電圧を用いて、データセルを再び読み出すエラー訂正プロシージャを説明する。しかし、注目すべきは、本発明はまた、最初のデータ読み出しが成功した場合に対しても、フラッシュメモリセルからデータを読み出すためのプロシージャを提供することである。さて、図7を参照する。最初の読み出しリクエストを受信した110A後、所定セットの基準電圧例えば、デフォルト基準電圧を用いて、フラッシュデータセルを読み取る112Cことに注意すべきである。読み取ったデータが、ECCを用いてうまく訂正された150ら、第一の読み出しリクエストへ応答してもよい118。第一のリクエスト110Aに応答してデータがうまく読み取られて訂正されたすなわち、エラー訂正ルーチンの必要がなかったにもかかわらず、第二の読み出しリクエスト110Bに応答して、基準電圧を修正する。典型的に、基準電圧は、第一の読み出しリクエストで読み取ったデータを訂正した後、ECCが提供する情報に応じて修正する。しかし、これは限定ではない。特に、注目すべきは、ほとんどのECCスキームは、データ訂正が成功した場合、訂正エラー数に関する情報を提供することが可能であることである。したがって、エラー訂正成功の場合は、訂正が失敗の場合ほどに重大度はあまり高くないが、それでも訂正エラーに関する重大度の指標が利用できる。この指標に基づいて、重大度が、読み出し基準電圧の調整を正当化するのに十分に高いかどうかを判定してもよい。その調整が、同じデータの次の読み出しリクエストに対する出発点となる。調整値から始めれば、次の読み出しの際に、読み取りの繰り返しを一回以上少なくできる。図5で説明した実施例のように、揮発性例えばRAMや不揮発性メモリ例えばフラッシュメモリの組み合わせにおいて、種々のデータページに用いる基準電圧を、後の使用のために記憶してもよい。したがって、データビットの最初の読み出し112C後に、エラー検出訂正モジュールよるエラー訂正の失敗がなかったとしても、修正基準電圧を用いる読み出し112Bを実行してもよいことに注意すべきである。模範的な実施例の全般的な考察上記のように、本発明の実施例は、フラッシュメモリデバイスからデータを読み取るための方法に関する。いくつかの実施例は、本文で説明した方法によって、フラッシュメモリセルのアレイから読み出すように作動可能なフラッシュメモリコントローラを提供する。いくつかの本発明の実施例は、フラッシュメモリセルのアレイを、ここに開示の方法でアレイから読み出すフラッシュメモリコントローラと組み合わせるフラッシュメモリデバイスを提供する。理解すべきことは、本発明は、SBCおよびMBCフラッシュメモリに等しく適用できることである。SBCセルでは、単一の読み出し基準電圧のみであるが、MBCセルにおいては、複数の読み出し基準電圧がある。ここに開示する、フラッシュメモリセルを読むためのプロシージャは、両ケースに採用できる。MBCケースでは、基準のシフトを、各基準電圧に平行に、あるいは別個に、すべての基準へ適用してもよい。エラー訂正失敗の考察いくつかの実施例では、デバイスがECC失敗を示す例えば、所定のサイズのデータ量毎の所定エラー数よりもエラーが多い場合、ECC失敗イベントが発生する。しかし、これは本発明の限界ではない。例えば、ECCモジュールがエラー訂正成功を示す場合でも、実は、読み出したかなりの量のデータにおけるエラーの数および/あるいはタイプに関する代替の所定エラー訂正失敗基準によれば、エラー訂正失敗イベントが発生していることが分かることがある。したがって、本発明の実施例そして特に図3から図6で説明した実施例は、フラッシュメモリコントローラ10が、ECCモジュールの判定基準とは異なる、エラー訂正失敗イベントを定義するための所定判定基準を用いるケースに関する。一例によれば、ECCモジュールがその最大エラー訂正能力近くで作動している場合は、ECCモジュールに依存することは望ましくない。例えば、ECCモジュールが、フラッシュメモリから読み出したデータ塊における四つのエラーまで訂正できると仮定する。この例によれば、三つ以下のエラーの訂正に関しては非常に信頼できるが、四つのエラーの訂正に関しては、信頼できないと仮定してもよいすなわち、これは、エラー訂正失敗イベントに対する所定判定基準の例であり、データ塊毎のエラー数が所定値を上回っている。これは、四つのエラーがあるときには、真のデータは、ECCモジュールが返すものではなく、それとは異なる何かである可能性がゼロではないためである。したがって、ECCが実際に訂正を提案できるという事実にもかかわらず、四つのエラーがあるケースを訂正失敗とみなして、より信頼できる読み出しを得るために、本発明のいくつかの例えば、図4から図6に開示の実施例が提供するエラー訂正技術を適用することを選択してもよい。したがって、模範的なケースは、本文で説明したいずれの実施例にも該当する。また、用語エラーを訂正できないは、エラーを訂正できない、または訂正が、他の所定エラー基準によれば信頼できないと考えられることを含む、と理解すべきである。本出願の説明文および請求項における動詞なる、含むおよび持つ、そして、それらの同根語の各々は、動詞の目的語あるいは複数の目的語が、必ずしも、動詞の主語あるいは複数の主語の、リストされた部材、コンポーネント、素子または部品のすべてを含むというわけではないことを示すために用いている。本文におけるすべての引用文献は、参照によって、それらの全体が含まれる。参考文献からの引用は、その参照が従来の技術であると認めることを意味しない。不定冠詞aおよびanは、または、その冠詞の文法的対象の一つ以上すなわち、少なくとも一つに言及するために、本文で用いている。例証として、素子は、一つの素子あるいは複数の素子を意味する。用語含むは、表現含むが、これに限定されるものではないを意味するために本文で用いており、その表現と置き換えて用いることができる。用語またはは、用語および/またはを意味するために本文で用いており、前後関係がそれを指示しないことが明らかでない限り、その用語と置き換えて用いることができる。用語例えばは、表現例えば、しかしそれに限定しないを意味するために本文で用いており、その表現と置き換えて用いることができる。実施例の詳細な説明を用いて、本発明を説明したが、それらは、例として提供したもので、発明の範囲を限定することを意図していない。説明した複数の実施例は、異なる特徴からなるが、それらのすべてが、本発明のすべての実施例に必要というわけではない。本発明のいくつかの実施例は、いくつかの特徴のみを利用する、または特徴の組み合わせを利用するものである。同業者は、説明した本発明の種々の実施例、そして説明した実施例で注目した特徴の異なる組み合わせからなる本発明の実施例を思いつくであろう。