メモリブロック内のビットを消去するステップと、過消去されたビットを識別するステップと、過消去された第1サブセットのビットをソフトプログラムするステップと、前記第1サブセットのビットをソフトプログラムするステップの結果を測定するステップと、前記第1サブセットのビットをソフトプログラムするステップの結果に基づいて、複数の可能電圧条件から初期電圧条件を選択するステップと、前記初期電圧条件を過消去された第2サブセットのビットに適用しながら、前記第2サブセットのビットをソフトプログラムするステップであって、前記第2サブセットは前記選択するステップの時に依然として過消去されているビットを含む、ステップと、を含む方法。前記第2サブセットのビット内にさらにソフトプログラムが必要な第3サブセットのビットが存在するかどうかを決定するステップと、前記第3サブセットのビットが存在する場合、前記初期電圧条件より高い電圧を含む電圧条件を用いて、前記第3サブセットのビットをソフトプログラムするステップと、をさらに含む請求項1に記載の方法。前記ビットはゲートを有し、前記第1サブセットのビットをソフトプログラムするステップは、控えめな初期ゲート電圧を用いて、第1ページの過消去されたビットのゲートに適用するステップを含み、前記第1ページの過消去されたビットは前記第1サブセットのビット内である、請求項1に記載の方法。前記測定するステップが前記第1ページの過消去されたビットが十分にソフトプログラムされていないことを決定した場合、前記第1サブセットのビットをソフトプログラムするステップは、第1の増加された電圧を用いて、前記第1サブセットのビット内にある第2ページの過消去ビットのゲートに適用するステップをさらに含む、請求項3に記載の方法。前記測定するステップが前記第2ページの過消去されたビットが十分にソフトプログラムされていないことを決定した場合、前記第1サブセットのビットをソフトプログラムするステップは、前記第1の増加された電圧より高い第2の増加された電圧を用いて、前記第1サブセットのビット内にある第3ページの過消去ビットのゲートに適用するステップをさらに含む、請求項4に記載方法。前記選択するステップにおいて、少なくとも所定パーセントのビットを消去されることにおける最低所望閾値電圧以上に、少なくとも消去されることにおける最大所望閾値電圧より低い第1閾値電圧まで増加させる結果になるソフトプログラムステップの間に使用されたゲート電圧を、前記初期電圧条件として選択するステップを含む、請求項5に記載の方法。前記過消去されたビットを識別するステップは、所定量より小さい量だけ過消去されたビットを識別することをさらに特徴とする、請求項1に記載の方法。前記第1サブセットのビットをソフトプログラムするステップは、前記第1サブセットのビットが前記所定量より小さい量だけ過消去されたビットのみを含むことをさらに特徴とする、請求項7に記載の方法。前記第2サブセットのビットをソフトプログラムするステップが、全てのビットが第1閾値電圧と第1閾値電圧より高い第2閾値電圧との間にある閾値電圧を有する結果をもたらしたかどうかを決定するステップをさらに含み、ビットが前記第1閾値電圧より低い閾値電圧を有する場合、過消去された条件がそのビットに存在する、請求項1に記載の方法。全てのビットが前記第1閾値電圧と前記第2閾値電圧との間にある閾値電圧を有するまで、次第に増加される電圧条件を用いて、ソフトプログラムを続けるステップをさらに含む、請求項9に記載の方法。第1の複数のメモリセルが第1閾値電圧と前記第1閾値電圧より低い第2閾値電圧との間である閾値電圧を有するように消去され、第2の複数のメモリセルが前記第2閾値電圧と前記第2閾値より低い第3閾値電圧との間である閾値電圧を有するように消去され、第3の複数のメモリセルが前記第3閾値電圧より低い閾値電圧を有するように消去される、メモリセルのブロックを消去するステップと、ソフトプログラムに対する前記第2の複数のメモリセルの部分の応答を決定するステップと、前記ソフトプログラムに対する前記第2の複数のメモリセルの部分の応答に基づいてソフトプログラム条件を選択するステップと、前記第2閾値電圧と前記第3閾値電圧との間の閾値電圧を有する第2サブセットのメモリセル及び前記第3の複数のメモリセルに、前記選択するステップで選択されたソフトプログラム条件を適用するステップと、を含む方法。前記選択されたソフトプログラム条件は初期ゲート電圧である、請求項11に記載の方法。全てのメモリセルが前記第1閾値電圧と前記第2閾値電圧との間になるまでソフトプログラムを実行するステップ、をさらに含む請求項11に記載の方法。前記応答を決定するステップにおいて、前記第2の複数のメモリセルのサンプルが、前記サンプルのメモリセルの少なくとも所定の割合が前記第1閾値電圧と第4閾値電圧との間にある閾値電圧を有する結果で応答するまで、ソフトプログラムを実行するステップを含み、前記第4閾値電圧は前記第1閾値電圧より低く、前記第2閾値電圧より高い、請求項11に記載の方法。前記ソフトプログラム条件を選択するステップにおいて、前記サンプルの少なくとも半分が前記第4閾値電圧と前記第1閾値電圧との間にある閾値電圧を有する結果になったソフトプログラムの間に用いた、前記サンプルのメモリセルのゲートに適用したゲート電圧を選択するステップを含む、請求項14に記載の方法。前記第4閾値電圧は前記第1閾値電圧と前記第2閾値電圧の間の中間にある、請求項15に記載の方法。前記所定の割合は1/2である、請求項16に記載の方法。メモリブロックの全てのビットを消去するステップと、前記消去するステップによって過消去された前記メモリブロック内のビットを識別するステップと、前記消去するステップによって過消去された前記メモリブロック内のビットの一部をテストして、ソフトプログラムの間に適用する所望ゲート電圧を決定するステップであり、前記所望ゲート電圧は、当該所望ゲート電圧でのソフトプログラムによってテストされたビットのうちの少なくとも所定のパーセントの閾値電圧を、最大所望閾値電圧と最低所望閾値電圧との間にある少なくとも中間閾値電圧まで増加させる結果になるゲート電圧である、ステップと、全ての残りの過消去されたビットをソフトプログラムするために、前記所望ゲート電圧を用いて前記ビットのゲートに適用するステップと、を含む方法。前記テストするステップにおいて、ビットのサンプルが前記所望ゲート電圧に届くまでビットのサンプルをソフトプログラムするために、次第に増加されるゲート電圧を適用するステップを含む、請求項18に記載の方法。前記ソフトプログラムは少なくとも最低閾値電圧を有する過消去されたビットのサンプルに適用することを特徴とする請求項19に記載の方法。不揮発性メモリブロックをソフトプログラムする方法を提供する。一態様に従った方法は、ビットを消去し、消去によって過消去されたビットを識別するステップを含む。過消去された第1サブセットのビットがソフトプログラムされる。この第1サブセットのビットのソフトプログラムの結果が測定される。この第1サブセットのビットのソフトプログラムの結果に基づいて複数の可能電圧条件から初期電圧条件を選択する。第2サブセットのビットのソフトプログラムの結果が測定される。ソフトプログラムが初期電圧条件を第2サブセットのビットに適用する。第2サブセットは、選択するステップの時に依然として過消去されているビットを含む。一つの実施形態では、不揮発性メモリブロックの消去動作は、メモリブロックをプリプログラムするステップ、メモリブロックをFN消去するステップ、適応処理を用いて、後のソフトプログラムでの初期電圧を決定するステップ、メモリブロック内の消去されたビットの分布を圧縮するために決定した初期電圧を用いてメモリブロックをソフトプログラムするステップを含む。メモリブロックを消去する間に、メモリブロック内のビットが過消去される可能性がある。消去されたビットの閾値電圧が許容最低閾値電圧より低い時、ビットは過消去されたと見なされ得る。従って、メモリブロックのソフトプログラムの間に、コラムリークの低下を補助する許容レベルまで閾値電圧を上昇させるように、過消去されたビットにプログラムパルスを反復的に適用する。一つの実施形態では、適応処理の間に決定した初期電圧は、ソフトプログラムの間にプログラムパルスとして初期的に適用されるゲート電圧である。この実施形態では、適応処理は、もっと控えめなゲート電圧で始める現在の方法と比較して少ない反復を後のソフトプログラムにもたらす初期ゲート電圧を決定するために、メモリブロック内のビット群のうちのサブセット部分集合を用いる。或いは、ソフトプログラムの間に使用される初期ゲート電圧例えば、ドレイン電圧の代わりにまたはそれに加えて、他の初期電圧または条件を決定するために適応処理を用いても良い。従って、時間を取って、ソフトプログラムのための改善した初期電圧を決定するために適応処理を実行すると、反復の数従って、時間もを後のソフトプログラムにおいて低減することができる。図1は、一つの実施形態に従った集積回路10のブロック図を示す。図示された実施形態では、集積回路IC10は、一つまたはそれ以上のプロセッサ12、一つまたはそれ以上のフラッシュメモリ14、一つまたはそれ以上のメモリ16、一つまたはそれ以上のモジュール18、外部バスインタフェース20を含む。これらはバス22によって双方的に接続され得る。代替実施形態はプロセッサ12、メモリ16、他のモジュール18、または外部バスインタフェース20を含まなくても良い。図示された実施形態では、外部バスインタフェース20は、IC10へまたはIC10から情報を通信するために使用され得る外部バス24に接続される。一つの実施例では、モジュール12、14、16、18のうちの一つまたはそれ以上は、IC10に対して外部の一つまたはそれ以上の集積回路端子図示せずを含んでも良い。いくつかの実施形態では、IC10は一つまたはそれ以上のフラッシュメモリ14を含むことを理解されたい。図2は、一つの実施形態に従ったフラッシュメモリの部分の部分的概略、部分的ブロック図を示す。フラッシュメモリ14は、メモリセルすなわち、ビットセルのメモリアレイ103を含む。図示された実施形態では、メモリアレイ103は四つのビットセル105、107、109、111を含む。一つの実施形態では、セルは浮遊ゲートフラッシュメモリセルであるが、フラッシュメモリセルの他のタイプ例えば、ナノ結晶、スプリットゲートフラッシュ、窒化物ベースのメモリを実装しても良い。ビットセルの他のタイプ例えば、EEPROMセルをアレイ103内に実装しても良い。アレイ103はメモリ14の一つのメモリブロックを表す、ここで、メモリ14はいかなる数のメモリブロックを含んでも良い。メモリブロックの消去において、メモリブロックの各ビットセルはまとめて消去されることを理解されたい。例えば、アレイ103の消去において、各ビットセル105、107、109、111がまとめて消去される。図示した実施形態では、アレイ103は例示の目的で四つのメモリセル二つのロー列及び二つのコラムを含むを含んでいるが、他の実施形態はより多くのローまたはコラムを含んでも良い。例えば、アレイ103の各列は約4096ビットを含んでも良く、ここで、各列をページにさらに分割しても良い。一つの実施形態では、一つのページは256ビットを含有し、頁の各ビットは特定数のビットだけ離隔される。例えば、各ローが16頁に分割される場合、ローの各第16ビットが同一の頁に属する。メモリ14は、メモリ動作の間にワードライン電圧制御回路117からのゲート電圧VwをワードラインWL0、WL1へ選択的に供給するためのロー列デコーダ115を含む。このワードラインはアレイ103のメモリセルのゲートに接続する。メモリ14はまた、コラムデコーダセンス増幅器回路121を含む。コラムデコーダセンス増幅器回路121は、アレイ103のセルを読み取るためにビットラインBL0、BL1に接続するセンス増幅器、及びメモリ動作の間にドレイン電圧制御回路125からのVdrain電圧をビットラインBL0、BL1に適用する回路機構を含む。メモリ14はまた、ビットセルのソースに共通のソース電圧を適用するソースコントローラ127を含む。回路121はセルから読み取ったデータをデータライン上に出力する。メモリ14はまた、セルの電圧読取りのために回路121の基準センス増幅器に基準電流Irefを供給する電流基準回路123を含む。メモリ14は、メモリ14の動作の間にメモリ14の動作を制御するためのメモリコントローラ113を含む。コントローラ113は、ワードライン電圧コントロール117、基準回路123、ドレイン電圧コントロール125、及びソースコントロール127を制御して、メモリ動作の間にこれらの回路から供給される電圧及び電流の値を制御する。メモリコントローラ113はまた、メモリ動作の間にローデコード回路115及び回路121の動作を制御するために制御情報を供給する。コントローラ113は、メモリ動作を実行するために外部ソース例えば、プロセッサ12からアドレス、データ、制御情報を受信するアドレスライン、データライン、制御ラインを含む。コントローラ113はまた、一つまたはそれ以上のカウンタ138、記憶回路機構130を含む。記憶回路130は、例えば、目標電圧TV、ドレイン電圧またはゲート電圧すなわち、以下に説明すると、ソフトプログラムの間に使用されるの値を蓄積する。例えば、記憶回路130は、TVを格納するレジスタ132、ドレイン電圧を格納するレジスタ134、またはゲート電圧を格納するレジスタ136を含んでも良い。以下に説明するように、TVはアレイ103のソフトプログラムにおいて使用するドレイン電圧及び/又は初期ゲート電圧を決定するために使用され得る。他の実施形態において、他のメモリ回路は他の構成を含有しても良いことを理解されたい。消去動作のような動作に対してメモリ14の動作は図3~5を参考して、より詳細に説明する。ローデコーダ115、コラムデコーダセンス増幅器121は技術的に既に知られているように動作できることを理解されたい。図3は、一つの実施形態に従った、プログラムされたビットセル及び消去されたビットセルのビットセル閾値電圧分布のグラフを示す。縦軸は対数スケールを用いることを理解されたい。図示されたグラフにおいて、曲線202は、ソフトプログラムの前に消去動作の間にフラッシュメモリ14のメモリブロックのビットセルが消去された時に特定の閾値電圧横軸によって表されるを有するビットセルの数縦軸によって表されるを示す。図示されたグラフにおいて、曲線204は、フラッシュメモリ14のメモリブロックのビットセルが消去動作にて消去され且つソフトプログラムの後に特定の閾値電圧横軸によって表されるを有するビットセルの数縦軸によって表されるを示す。最も消去された側の分布最も左側にある分布部分が、矢印200で示されるように、ソフトプログラム検証電圧SPVによって表される許容最低閾値電圧まで上昇するように、ソフトプログラムは消去されたビットの分布を圧縮する。SPVは消去されたメモリセルの最低所望閾値電圧とも呼ばれることを理解されたい。例えば、SPVまたはそれ未満の閾値電圧を有する消去されたビットは過消去されたと考えられる。従って、ソフトプログラムの間に、全ての過消去されたビットが少なくともSPVである閾値電圧を有するように分布を圧縮するように、過消去されたビットのみがソフトプログラムされる。このように、曲線202の分布に比較すると、低下したコラムリークが達成される。図示されたグラフでは、全ての消去されたビットは高くとも消去検証電圧EVまでの閾値電圧を有する。なお、EVは消去されたメモリセルの最大所望閾値電圧とも呼ばれ得る。一つの実施形態では、矢印200に示すようにソフトプログラムの間に分布の最も消去された側のみがシフトされながら、分配の最も消去されていない側最も右側の分布部分はシフトされず、EVまたはその未満に維持される。図示されたグラフにおいて、曲線206は、フラッシュメモリ14のメモリブロックのビットセルがプログラムされた時、特定の電圧横軸によって示すを有するビットセルの数縦軸によって示すを示す。図示されたグラフでは、全てのプログラムされたビットはプログラム検証電圧PV以上の閾値電圧を有する。図3の読取り電圧とEVとの間の横ギャップはビットセルのリード1ワンマージンの量を示し、同時に、図3の読取り電圧とPVとの間の横ギャップはビットセルのリード0ゼロマージンの量を示す。一つの実施形態では、目的電圧TVはSPVとEVの間に選択され、以下で説明するようにソフトプログラムのための初期ゲート電圧を決定するために用いられる。一つの実施形態では、TVはSPVとEVの間の中間である。また、一つの実施形態では、低電圧LVが最も消去されたビットMEBの閾値電圧とSPVとの間に選択され、以下で説明するようにソフトプログラムのための初期ゲート電圧を決定するために用いられる。図4は、本発明の実施形態に従った、消去動作250のフロー図を示す。消去動作250はメモリ14の一つのブロックベースで実行する。例えば、消去動作250はアレイ103の全体で実行する。消去動作250は、メモリ14のブロックをプリプログラムするステップ252で始まる。一つの実施形態では、プリプログラムの間に、各ビットセルはPVの使用によって検証され、ビットセルの閾値電圧がPV未満の場合、プログラムパルスが適用される。その後に、各ビットセルはPVの使用によって再検証され、ビットセルの閾値電圧がまだPV未満の場合、後続のプログラムパルスが適用される。ブロックをプリプログラムした後、プログラムされたビット分布は図3の曲線206で示すように、PV以上にあるべきである。フローはステップ254に進み、ステップ254で、プリプログラムされたメモリ14のブロックはFN消去される。一つの実施形態では、FN消去の間に、各ビットセルはEVの使用によって検証され、ビットセルの閾値電圧がEVより高い場合、FN消去パルスが適用される。その後に、各ビットセルはEVの使用によって再検証され、ビットセルの閾値電圧がまだEVより高い場合、後続のパルスが適用される。FN消去パルスの適用の反復ごとに、より強いFN消去パルスが適用されてもよい。ブロックをFN消去した後、EVは消去されることにおける最大所望閾値電圧であるので、消去されたビット分布は図3の曲線202で示すようにEVまたはEV未満にあるべきである。フローはステップ256に進み、ステップ256で、ブロックの後のソフトプログラムで使用される初期ゲート電圧を決定するために適応処理を実行する。この初期ゲート電圧を決定するための工程は、以下に図5を参考し、より詳細に説明する。フローはステップ258、260に進み、ステップ258、260で、ブロックがソフトプログラムされる。例えば、ステップ256後、フローがステップ258に進み、ステップ256の適応処理によって決定された初期ゲート電圧がブロックのソフトプログラムの間に適用される。例えば、ブロックのSPVで検証されない各ビットセルまだSPV以上でないに対して、初期ソフトプログラムパルスが、ステップ256で決定された初期ゲート電圧で適用される。フローはステップ260に進み、ステップ260で、SPVは消去されることにおける最低所望閾値電圧であるので、ブロックの全てのビットがSPV以上になるまでゲート電圧を反復的に上昇させる。例えば、SPVで検証されなかった過消去されたビットセルに初期ソフトプログラムパルスを適用した後、SPVで依然として検証されないビットセルすなわち、依然として過消去されているを決定するための再検証が実行される。このビットセルにおいて、上昇されたゲート電圧が適用される。ブロックの全てのビットセルがSPV以上になるまで、この検証及び上昇されたゲート電圧の適用を交互に繰り返す。この時点で、消去動作が完了する。一つの実施形態において、消去操作250はユーザモード組み込み消去動作として呼ばれる。図5は、一つの実施形態に従った、図4のステップ256の適応処理をより詳細に示すフロー図を示す。フローは図4のステップ254から図5のステップ270に進み、ステップ270で、ソフトプログラムのために適用される現在ゲート電圧として控えめな初期ゲート電圧が選択され、ブロックの現在テストページとして消去操作を実行される初期テストページが選択される。控えめなゲート電圧は、例えば、過消去されたビットが過ソフトプログラムされないことすなわち、EVより高いレベルにプログラムしないを確保するように選択される。フローはステップ272に進み、ステップ272で、所定量だけ過消去された現在テスト頁内のビットを決定するために一つまたはそれ以上読取りが実行される。ステップ272を通る第1回について、テストページはステップ270で選択された初期テストページを意味することを理解されたい例えば、一つの実施形態では、何れのビットがSPVまたはSPV未満であるかを決定するために、現在テストページの第1検証読取りがSPVで実行され、何れのビットがLV以上であるかを決定するために、現在テストページの第2検証読取りがSPVで実行され得る。この情報を用いて、LVとSPVとの間に入る閾値電圧を有するビットを決定できる。従って、この例において、所定量だけ過消去されたビットは、SPVまたはSPV未満の閾値電圧を有するが、該閾値電圧はSPV以上であるビットである。別の実施形態では、所定量が異なり、例えば、LVのようなより低い閾値電圧を使用せずに、いかなる過消去されたビットすなわち、SPVまたはSPV未満の閾値電圧を有するいかなるビットを含むことが可能である。一つの実施形態では、現在テストページにおける所定量だけ過消去されたビットの数が計数され、例えば、コントローラ113に記憶できる。コラムデコーダセンス増幅器121からのデータライン出力を用いて、カウンタ138は過消去されたビットの数を決定できる。フローはステップ274に進み、ステップ274で、ステップ272で決定されたビットをソフトプログラムするためにパルスする間に現在ゲート電圧が適用される。例えば、現在ゲート電圧を用いるソフトプログラムパルスを、現在テストページにおける所定量だけ過消去されたと決定されたビットに適用する。ステップ274を通る第1回について、現在ゲート電圧は控えめな初期ゲート電圧であり、現在テストページは初期テストページである。フローは決定ブロック276に進み、決定ブロック276で、ソフトプログラムされた決定されたビットすなわち、ステップ274でソフトプログラムされたビットの少なくとも所定パーセントが所定目的電圧TVで検証されるかを決定する。一つの実施形態では、所定パーセントは50パーセントである。従って、この例において、ステップ274でソフトプログラムパルスを受信したビットのうちの少なくとも50パーセントがTV一つの実施形態では、コントローラ113に記憶されている以上の閾値電圧を有するかが決定される。そうでないなら、フローはステップ278に進み、ステップ278で、現在ゲート電圧が漸増的に上昇され、新テストページを現在テストページとして選択する。この新ページは以前使用されたテストページと異なる。一つの実施形態では、ブロック278で選択された各新テストページは現在消去動作のためのテストページとして選択されたいかなる以前のページとも異なる。また、一つの実施形態では、ゲート電圧の増分インクリメントは調整可能である。決定ブロック276で、ステップ274でソフトプログラムパルスを受信したビットのうちの少なくとも50がTV以上の閾値電圧を有することを決定した場合、フローはステップ280に進み、ステップ280で、ステップ258、260で実行する後のソフトプログラムのための初期ゲート電圧としての使用のために現在ゲート電圧が記憶される例えば、レジスタ136など、コントローラ113内に。すなわち、ソフトプログラムされたと決定されたビットのうちの少なくとも所定パーセントの閾値電圧を少なくともTVまで上昇させる結果になった記憶された現在ゲート電圧が、後のソフトプログラムのための初期ゲート電圧として用いられる。フローは図4のステップ258に続く。従って、図5の適応処理は、メモリブロックの選択されたサブセットを使用して、メモリブロックの全体のソフトプログラムを始める最良の初期ゲート電圧を学習して決定することを可能にする。このようにして、より控えめなゲート電圧で始めることと比較して、後のソフトプログラムはより少ない反復を使用できる。図5の初期ゲート電圧を決定する工程は時間を要するが、消去動作の総合消去時間を支配するブロックの全体をソフトプログラムする間に必要な反復の数を減少することによって総合時間が節約される。代替実施形態では、ページ以外に、メモリブロックの他のサブセットを、後のソフトプログラムのための初期ゲート電圧を決定するために使用できることを理解されたい。また、代替実施形態では、図5と類似する工程を、メモリブロックのソフトプログラムを始める最良ドレイン電圧を反復的に決定することに使用できる。すなわち、初期ゲート電圧を決定するのではなく、その代わりに初期ドレイン電圧がソフトプログラムの出発点として決定されて使用され、ステップ260でソフトプログラムする間にドレイン電圧が反復的に上昇される。また別の代替実施形態では、図5の工程は、後のソフトプログラムのための初期ドレイン電圧及び初期ゲート電圧の両方を決定するために使用できる。代替的実施形態は、他のパラメターまたは初期ソフトプログラム条件を決定するため、または、後のソフトプログラムの間に使用できる他の結果を測定するために、メモリブロックの選択されたサブセットを使用できる。すなわち、後のソフトプログラムの間に使用されるゲート電圧及び/又はドレイン電圧は、メモリの選択されたサブセットの応答または結果に基づいて選択あるいは決定される初期ソフトプログラム条件の単なる例である。本発明を実装する装置は、ほとんど当業者には既知の電子部品や回路から構成されるため、回路の詳細については、本発明の根底にある概念の理解や認識のために、また、本発明の教示内容が不明瞭になったり注意が逸れたりしないように、上述した如く必要と思われる以上の説明はしない。本発明は特定の導電タイプ又は電位の極性に対して説明し、当業者は導電タイプ及び電位の極性を逆にできることを理解されたい。さらに、本明細書中の下方のまたは下端、および上方のまたは上端などの用語は、説明目的で使用されるものであり、必ずしも恒久的な相対位置を記述するものではない。当然のことながら、相対表現は、図に描かれた配向に加えて、素子のさまざまな配向を包含する目的である。例えば、図中の素子をひっくり返すと、他の要素の下側にあるものとして記述された要素が、他の要素の上側に配向されることになる。従って、この例示した表現下方のは、図面の具体的な配向に応じて、下方および上方のいずれの方向も包含することができる。同様に、図面の1つにある素子をひっくり返すと、他の要素の下にあるものとして記述された要素は、他の素子の上に配向されることになる。従って、この例示した表現下には、上および下のいずれの配向も包含することができる。更に、当業者は、上述した動作の機能間の境界は、単なる例示であることを認識されるであろう。複数動作の機能は、単一動作に集約してもよく、及び/又は単一動作の機能は、追加の動作に分散してもよい。更に、他の実施形態には、特定の動作の複数のインスタンスを含んでもよく、動作順序は、様々な他の実施形態では、変更してもよい。上記の明細書により、本発明は特定の実施形態に基づいて記載してきた。しかし、当業者は様々な変更や変形は添付した本発明の特許請求の範囲に反することなく行われる。従って、明細書と図は説明上のもので制約的なものでない、またこれら全ての変更は本発明の範囲に内包されるものである。本明細書に用いた用語結合されたは、直接結合又は機械的結合に限定するものではない。特に明記しない限り、第1及び第2等の用語は、そのような用語が述べる要素間を任意に区別するために用いる。従って、これらの用語は、必ずしもそのような要素の時間的な又は他の優先順位付けを示そうとするものではない。以下は本発明の様々の実施形態である。項目1は、メモリブロック内のビットを消去するステップ、過消去されたビットを識別するステップ、第1サブセットの過消去されたビットをソフトプログラムするステップ、ソフトプログラムされた第1サブセットの結果を測定するステップ、ソフトプログラムされた第1サブセットの結果に基づいて複数の可能電圧条件から初期電圧条件を選択するステップ、第2サブセットの過消去されたビットをソフトプログラムしながら第2サブセットの過消去されたビットに初期電圧条件を適用するステップを含む方法を含む。ここで、第2サブセットは、選択するステップの時に依然として過消去されているビットを含む。項目2は項目1の方法を含み、第2サブセットのビット内に、さらにソフトプログラムが必要な第3サブセットが存在するかを決定するステップ、第3サブセットが存在する場合、第3サブセットをソフトプログラムするために、初期電圧条件より高い電圧を含んだ、第3サブセットに適用する電圧条件を用いるステップをさらに含む。項目3は項目1の方法を含む。ここで、ビットはゲートを有し、第1サブセットのビットをソフトプログラムするステップは、第1サブセットのビット内にある第1ページの過消去されたビットのゲートに適用する初期の控えめなゲート電圧を用いるステップを含む。項目4は項目3を含む。ここで、測定するステップが第1ページの過消去されたビットが十分にソフトプログラムされていないことを決定した場合、第1サブセットのビットをソフトプログラムするステップは、第1サブセットのビット内にある第2ページのの過消去されたビットのゲートに適用される第1の増加された電圧を用いるステップをさらに含む。項目5は項目4の方法を含む。ここで、測定するステップが第2頁の過消去されたビットが十分にソフトプログラムされていないことを決定した場合、第1サブセットのビットをソフトプログラムするステップは、第1サブセットのビット内にある第3頁の過消去されたビットのゲートに適用される、第1の増加された電圧より高い第2の増加された電圧を用いるステップをさらに含む。項目6は項目5の方法を含む。ここで、選択するステップは、消去されることにおける最低所望閾値電圧以上に、少なくとも消去されることにおける最大所望閾値電圧より低い第1閾値電圧まで少なくとも所定パーセントのビットを増加させる結果になるソフトプログラムステップの間のゲート電圧を、初期電圧条件として選択するステップを含む。項目7は項目1の方法を含む。ここで、前記過消去されたビットを識別するステップは、所定量より小さい量だけ過消去されたビットを識別することをさらに特徴とする。項目8は項目7の方法を含む。ここで、前記第1サブセットのビットをソフトプログラムするステップは、前記第1サブセットのビットは所定量より小さい量だけ過消去されたビットのみを含むことをさらに特徴とする。項目9は項目1の方法を含む。項目9は、第2サブセットのソフトプログラムが、全てのビットが第1閾値電圧と第1閾値電圧より高い第2閾値電圧との間にある閾値電圧を有する結果をもたらすかどうかを決定するステップをさらに含む。ここで、ビットが前記第1閾値電圧より低い閾値電圧を有する場合、過消去された条件がそのビット内に存在する。項目10は項目9の方法を含む。項目10は、全てのビットが前記第1閾値電圧と前記第2閾値電圧との間にある閾値電圧を有するまで、次第に増加される電圧条件を用いて、ソフトプログラムを続けるステップをさらに含む。項目11は、第1の複数のメモリセルが第1閾値電圧と第1閾値電圧より低い第2閾値電圧との間である閾値電圧を有するように消去され、第2の複数のメモリセルが前記第2閾値電圧と前記第2閾値より低い第3閾値電圧との間である閾値電圧を有するように消去され、第3複数のメモリセルが前記第3閾値電圧より低い閾値電圧を有するように消去される、メモリセルのブロックを消去するステップ、ソフトプログラムに対する前記第2複数のメモリセルの部分の応答を決定するステップ、前記ソフトプログラムに対する前記第2複数のメモリセルの部分の応答に基づいてソフトプログラム条件を選択するステップ、前記第2閾値と前記第3閾値との間の閾値電圧を依然として有する第2サブセットのメモリセル及び第3の複数のメモリセルに、選択するステップで選択されたソフトプログラム条件を適用するステップ、を含む方法を有する。項目12は項目11の方法を含む。ここで、前記選択されたソフトプログラム条件は前記初期ゲート電圧である。項目13は項目11の方法を含む。項目13は、全てのメモリセルが第1閾値電圧と第2閾値電圧との間にあるまでソフトプログラムを実行するステップをさらに含む。項目14は項目11を含む。ここで、前記応答を決定するステップにおいて、前記第2の複数のメモリセルのサンプルが、前記サンプルのメモリセルの少なくとも所定の割合が前記第1閾値電圧と第4閾値電圧との間にある閾値電圧を有する結果で応答するまでソフトプログラムを実行するステップを含む。ここで、前記第4閾値電圧は前記第1閾値電圧より低く、前記第2閾値電圧より高い。項目15は項目14の方法を含む。ここで、前記ソフトプログラム条件を選択するステップにおいて、前記サンプルの少なくとも半分が第4閾値電圧と第1閾値電圧との間にある閾値電圧を有する結果になったソフトプログラムの間に用いた、前記サンプルのメモリセルのゲートに適用したゲート電圧を選択するステップを含む。項目16は項目15の方法を含む。ここで、前記第4閾値電圧は前記第1閾値電圧と前記第2閾値電圧の間の中間にある。項目17は項目16を含む。ここで、前記所定の割合は1/2である。項目18は、メモリブロックの全てのビットを消去するステップ、前記消去するステップによって過消去されたメモリブロック内のビットを識別するステップ、所望ゲート電圧でのソフトプログラムによってテストされたビットの少なくとも所定パーセントの閾値電圧を、最大所望閾値電圧と最低所望閾値電圧との間にある少なくとも中間閾値電圧まで増加させる結果になるソフトプログラムの間に適用する所望ゲート電圧を決定するために、前記消去するステップによって過消去されたメモリブロック内のビットの一部をテストするステップ、全ての残りの過消去されたビットをソフトプログラムするために前記ビットのゲートに適用される前記所望ゲート電圧を用いるステップ、を含む方法を含む。項目19は項目18の方法を含む。ここで、前記テストするステップにおいて、ビットのサンプルが前記所望ゲート電圧に届くまでビットのサンプルをソフトプログラムするために、次第に増加されるゲート電圧を適用するステップを含む。項目20は項目19の方法を含む。ここで、前記ソフトプログラムは少なくとも最低閾値電圧を有する過消去されたビットのサンプルに適用することを特徴とする。