(57)【要約】【課題】  高性能なメモリシステムを提供する。【解決手段】  一実施形態のメモリシステムは、半導体メモリとコントローラとを含む。半導体メモリは、複数のメモリセルと、複数のメモリセルと接続されたワード線と、を含む。メモリコントローラは、複数のメモリセルの各々に４ビットのデータを書き込み、ワード線に第１電圧を印加することを通じて、複数のメモリセルから第１データを読み出し、ワード線に２つの電圧を相違するタイミングで印加することを通じて複数のメモリセルのそれぞれの第１ビットのデータを含んだデータを読み出す第１動作を各第１動作における２つの電圧を別の第１動作での２つの電圧から変えながら繰り返して複数の第２データを読み出し、複数の第２データの各々の一部を第１データを用いてマスクする、ように構成されている。【選択図】      図１０
2020047339.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルと、前記複数のメモリセルと接続されたワード線と、を備える半導体メモリと、
前記複数のメモリセルの各々に４ビットのデータを書き込み、
前記ワード線に第１電圧を印加することを通じて、前記複数のメモリセルから第１データを読み出し、
前記ワード線に２つの電圧を相違するタイミングで印加することを通じて前記複数のメモリセルのそれぞれの第１ビットのデータを含んだデータを読み出す第１動作を各第１動作における前記２つの電圧を別の第１動作での前記２つの電圧から変えながら繰り返して複数の第２データを読み出し、
前記複数の第２データの各々の一部を前記第１データを用いてマスクする、
ように構成されたコントローラと、
を備えるメモリシステム。
【請求項２】
前記コントローラは、前記第１動作の繰り返しの度に前記２つの電圧の一方を第１範囲内で変え、前記２つの電圧の他方を第２範囲内で変えるように構成されている、
請求項１のメモリシステム。
【請求項３】
前記コントローラは、
前記第１データを用いた前記マスクを通じて複数の第３データを取得し、
前記複数の第３データに基づいて、前記第１範囲内の複数の電圧にそれぞれ対応する閾値電圧を有すると推定されるメモリセルの複数の第１個数を割り出し、
前記メモリセルの複数の第１個数のうちの前記第１範囲内における１または複数の極小の数を検出する、
ようにさらに構成されている、請求項２のメモリシステム。
【請求項４】
前記コントローラは、前記複数の極小の数が検出された場合、前記複数の極小の第１個数から、前記複数のメモリセルの個数×Ｙ／１６（Ｙは１６以下の自然数）に最も近い１つの第２個数を選択し、
前記第２個数に対応する電圧を、前記複数のメモリセルのうちの１つの閾電圧が１５個の境界電圧のうち小さい方からＹ番目の境界電圧より大きいかの判断に使用する、
ようにさらに構成されている、請求項３のメモリシステム。
【請求項５】
前記コントローラは、前記ワード線に基づいて前記第１範囲を選択するようにさらに構成されている、
請求項４のメモリシステム。
【請求項６】
前記コントローラは、前記第１範囲に基づいて前記第１電圧を選択するようにさらに構成されている、
請求項５のメモリシステム。
【請求項７】
複数のメモリセルと、前記複数のメモリセルと接続されたワード線と、を備える半導体メモリと、
前記複数のメモリセルの各々にｐ（ｐは２以上の自然数）ビットのデータを書き込み、
前記ワード線に１つの電圧を相違するタイミングで印加することを通じて前記複数のメモリセルのデータを含んだデータを読み出す第１動作を各第１動作における前記１つの電圧を別の第１動作での前記１つの電圧から変えながら繰り返して複数の第１データを読み出し、
前記複数の第１データに基づいて、第１範囲内の複数の電圧にそれぞれ対応する閾値電圧を有すると推定されるメモリセルの複数の第１個数を割り出し、
前記メモリセルの複数の第１個数のうちの前記第１範囲内における１または複数の極小の数を検出し、
前記複数の極小の数が検出された場合、前記複数の極小の第１個数から、前記複数のメモリセルの個数×Ｙ／２ｐ（Ｙは２ｐ以下の自然数）に最も近い１つの第２個数を選択し、
前記第２個数に対応する電圧を、前記複数のメモリセルのうちの１つの閾電圧が２ｐ−１個の境界電圧のうち小さい方からＹ番目の境界電圧より大きいかの判断に使用する、
ように構成されたコントローラと、
を備えるメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概してメモリシステムに関する。
【背景技術】
【０００２】
半導体メモリと半導体メモリを制御するコントローラを含んだメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９１１１６２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高性能なメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態によるメモリシステムは、半導体メモリとコントローラとを含む。上記半導体メモリは、複数のメモリセルと、上記複数のメモリセルと接続されたワード線と、を含む。上記メモリコントローラは、上記複数のメモリセルの各々に４ビットのデータを書き込み、上記ワード線に第１電圧を印加することを通じて、上記複数のメモリセルから第１データを読み出し、上記ワード線に２つの電圧を相違するタイミングで印加することを通じて上記複数のメモリセルのそれぞれの第１ビットのデータを含んだデータを読み出す第１動作を各第１動作における上記２つの電圧を別の第１動作での上記２つの電圧から変えながら繰り返して複数の第２データを読み出し、上記複数の第２データの各々の一部を上記第１データを用いてマスクする、ように構成されている。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態のメモリシステム中の要素および接続、ならびに関連する要素を示す。
【図２】第１実施形態のメモリセルアレイ中のいくつかの要素および接続の例を示す。
【図３】第１実施形態のメモリセルトランジスタ当たり４ビットのデータを保持するメモリセルトランジスタの閾値電圧の分布を示す。
【図４】第１実施形態のセンスアンプ中の要素および接続を示す。
【図５】第１実施形態での或る動作のフローを示す。
【図６】第１実施形態でロワーページが選択される場合に選択ワード線に印加される電圧を時間に沿って示す。
【図７】第１実施形態でミドルページが選択される場合に選択ワード線に印加される電圧を時間に沿って示す。
【図８】第１実施形態でアッパーページが選択される場合に選択ワード線に印加される電圧を時間に沿って示す。
【図９】第１実施形態でトップページが選択される場合に選択ワード線に印加される電圧を時間に沿って示す。
【図１０】第１実施形態でロワーページが選択される場合のサブフローを示す。
【図１１】第１実施形態でロワーページからのシフトリードの間に選択ワード線に印加される電圧を時間に沿って示す。
【図１２】第１実施形態でのリードで得られる種々のデータの例を示す。
【図１３】第１実施形態で得られる分離データの例を示す。
【図１４】第１実施形態で得られる分離データの例を示す。
【図１５】第１実施形態で得られる分離データの例を示す。
【図１６】第１実施形態で得られる分離データの例を示す。
【図１７】第１実施形態での或る処理を示す図である。
【図１８】第１実施形態でミドルページが選択される場合のサブフローを示す。
【図１９】第１実施形態でミドルページからのシフトリードの間に選択ワード線に印加される電圧を時間に沿って示す。
【図２０】第１実施形態でアッパーページが選択される場合のサブフローを示す。
【図２１】第１実施形態でアッパーページからのシフトリードの間に選択ワード線に印加される電圧を時間に沿って示す。
【図２２】第１実施形態でトップページが選択される場合のサブフローを示す。
【図２３】第１実施形態でトップページからのシフトリードの間に選択ワード線に印加される電圧を時間に沿って示す。
【図２４】第２実施形態での或る動作のフローを示す。
【図２５】第２実施形態での或る動作のフローを示す。
【図２６】第３実施形態での或る動作のフローを示す。
【図２７】第３実施形態で或る動作の間に選択ワード線に印加される電圧を時間に沿って示す。
【図２８】第４実施形態での或る動作のフローを示す。
【図２９】第４実施形態で得られる分離データの例を示す。
【図３０】第４実施形態のメモリシステムの動作のサブフローを示す。
【図３１】第４実施形態で得られる“１”データビット数の差と閾値電圧との関係を示す。
【図３２】第４実施形態での谷位置の決定方法の概念を示す。
【図３３】第５実施形態での隣り合う２つのステートについての閾値電圧の分布を示す。
【図３４】第５実施形態での或る動作のフローを示す。
【図３５】第５実施形態で使用されるデータを示す。
【図３６】参考用の探索範囲を示す。
【図３７】第５実施形態での探索範囲を示す。
【発明を実施するための形態】
【０００７】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。ある実施形態についての記述は全て、明示的にまたは自明的に排除されない限り、別の実施形態の記述としても当てはまる。
【０００８】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【０００９】
また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび（または）別のステップと並行して起こることが可能である。
【００１０】
本明細書および特許請求の範囲において、ある第１要素が別の第２要素に「接続されている」とは、第１要素が直接的または常時あるいは選択的に導電性となる要素を介して第２要素に接続されていることを含む。
【００１１】
（第１実施形態）
＜１．１．構造（構成）＞
図１は、第１実施形態のメモリシステム中の要素および接続、ならびに関連する要素を示す。図１に示されるように、メモリシステム５は、ホスト装置３により制御され、半導体メモリ１およびメモリコントローラ２を含む。メモリシステム５は、例えば、ＳＳＤ（solid state drive）またはＳＤＴＭカード等であることが可能である。
【００１２】
半導体メモリ１は、メモリコントローラ２により制御される。メモリコントローラ２は、ホスト装置３から命令を受け取り、受け取られた命令に基づいて半導体メモリ１を制御する。
【００１３】
＜１．１．１．メモリコントローラ＞
メモリコントローラ２は、ホストインターフェイス２１、ＣＰＵ（central processing unit）２２、ＲＡＭ（random access memory）２３、ＲＯＭ（read only memory）２４、メモリインターフェイス２５、ＥＣＣ（error correction code）回路２６を含む。ＲＯＭ２４に格納されていてＲＡＭ２３上にロードされたファームウェア（プログラム）がＣＰＵ２２によって実行されることによって、メモリコントローラ２は種々の動作、およびホストインターフェイス２１ならびにメモリインターフェイス２５の機能の一部を実行する。ＲＡＭ２３は、さらに、データを一時的に保持し、バッファメモリおよびキャッシュメモリとして機能する。
【００１４】
ホストインターフェイス２１は、バスを介してホスト装置３と接続され、メモリコントローラ２とホスト装置３との通信を司る。メモリインターフェイス２５は、半導体メモリ１と接続され、メモリコントローラ２と半導体メモリ１との通信を司る。
【００１５】
ＥＣＣ回路２６は、半導体メモリ１に書き込まれるデータおよび半導体メモリ１からリードされたデータに対して、誤りの検出および訂正に必要な処理を行う。具体的には、ＥＣＣ回路２６は、半導体メモリ１に書き込まれるデータ（実書き込みデータ）の誤り訂正のための冗長データを生成する。生成された冗長データと実書き込みデータが半導体メモリ１に書き込まれる。また、ＥＣＣ回路２６は、半導体メモリ１からリードされたデータの中の誤りを検出し、誤りがある場合に誤りの訂正を試みる。
【００１６】
＜１．１．２．半導体メモリ＞
半導体メモリ１は、メモリセルアレイ１１、入出力回路１２、シーケンサ１３、ドライバ１５、センスアンプ１６、およびロウデコーダ１９等の要素を含む。
【００１７】
メモリセルアレイ１１は複数のメモリブロック（ブロック）ＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を含む。各ブロックＢＬＫは複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、…）の集合である。各ストリングユニットＳＵは複数のＮＡＮＤストリング（ストリング）ＳＴＲ（ＳＴＲ０、ＳＴＲ１、…）（図示せず）の集合である。ストリングＳＴＲは、複数のメモリセルトランジスタＭＴを含む。
【００１８】
入出力回路１２は、ＮＡＮＤバスを介してメモリコントローラ２と接続されている。ＮＡＮＤバスは、複数の制御信号および８ビットの幅の信号ＤＱを伝送する。制御信号は、信号￣ＣＥ、ＣＬＥ、ＡＬＥ、￣ＷＥ、￣ＲＥ、￣ＷＰ、およびデータストローブ信号ＤＱＳならびに￣ＤＱＳを含む。符号「￣」は、反転論理を示す。入出力回路１２は、信号ＤＱを受け取り、信号ＤＱを送信する。入出力回路１２は、メモリコントローラ２から制御信号を受け取り、制御信号に基づいて、信号ＤＱを取り込み、また出力する。信号ＤＱは、コマンド（ＣＭＤ）、書き込みデータまたはリードデータ（ＤＡＴ）、アドレス（ＡＤＤ）、ステータス（ＳＴＡ）等を含む。
【００１９】
シーケンサ１３は、入出力回路１２からコマンドＣＭＤおよびアドレスＡＤＤを受け取り、コマンドＣＭＤおよびアドレスＡＤＤに基づいて、ドライバ１５、センスアンプ１６、およびロウデコーダ１９を制御する。
【００２０】
ドライバ１５は、複数の電位のうちの選択されたものをロウデコーダ１９に供給する。ロウデコーダ１９は、ドライバ１５から種々の電位を受け取り、入出力回路１２からアドレスＡＤＤを受け取り、受け取られたアドレスＡＤＤに基づいて選択された１つのブロックＢＬＫにドライバ１５からの電位を転送する。
【００２１】
センスアンプ１６は、メモリセルトランジスタＭＴの状態をセンスし、センスされた状態に基づいてリードデータを生成し、また、書き込みデータをメモリセルトランジスタＭＴに転送する。
【００２２】
＜１．１．３．メモリセルアレイ＞
図２は、第１実施形態のメモリセルアレイ１１中のいくつかの要素および接続の例を示し、１つのブロックＢＬＫ０の要素および接続、ならびに関連する要素を示す。複数のブロックＢＬＫ、例えば全てのブロックＢＬＫは、みな図２に示される要素および接続を含む。
【００２３】
１つのブロックＢＬＫは、複数（例えば４つ）のストリングユニットＳＵ０〜ＳＵ３を含む。
【００２４】
ｐ（ｐは自然数）本のビット線ＢＬ０〜ＢＬ（ｐ−１）の各々は、各ブロックＢＬＫにおいて、ストリングユニットＳＵ０〜ＳＵ３の各々からの１つのストリングＳＴＲと接続されている。
【００２５】
各ストリングＳＴＲは、１つの選択ゲートトランジスタＳＴ、複数の、例えば８つのメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、および１つの選択ゲートトランジスタＤＴ（ＤＴ０、ＤＴ１、ＤＴ２、またはＤＴ３）を含む。トランジスタＳＴ、ＭＴ、およびＤＴは、この順で、ソース線ＣＥＬＳＲＣと１つのビット線ＢＬとの間に直列に接続されている。メモリセルトランジスタＭＴは、制御ゲート電極（ワード線ＷＬ）、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持することができる。
【００２６】
相違する複数のビット線ＢＬとそれぞれ接続された複数のストリングＳＴＲは１つのストリングユニットＳＵを構成する。各ストリングユニットＳＵにおいて、メモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲート電極は、ワード線ＷＬ０〜ＷＬ７とそれぞれ接続されている。さらに、各ブロックＢＬＫにおいて、相違するストリングユニットＳＵ中の同じアドレスのワード線ＷＬも相互に接続されている。１つのストリングユニットＳＵ中でワード線ＷＬを共有するメモリセルトランジスタＭＴの組は、セルユニットＣＵと称される。
【００２７】
トランジスタＤＴ０〜ＤＴ３はストリングユニットＳＵ０〜ＳＵ３にそれぞれ属する。α＝０〜３の各々のケースについて、ストリングユニットＳＵαの複数のストリングＳＴＲの各々のトランジスタＤＴαのゲートは選択ゲート線ＳＧＤＬαに接続されている。トランジスタＳＴのゲートは、選択ゲート線ＳＧＳＬに接続されている。
【００２８】
＜１．１．４．セルトランジスタ＞
図３を参照して、メモリセルトランジスタＭＴについて記述される。半導体メモリ１は、１つのメモリセルトランジスタＭＴにおいて２ビット以上のデータを保持することができる。図３は、第１実施形態のメモリシステムでのデータ書き込みの結果、１つのメモリセルトランジスタＭＴ当たり４ビットのデータを保持するメモリセルトランジスタＭＴの閾値電圧の分布を示す。各メモリセルトランジスタＭＴの閾値電圧は、保持されるデータに応じた値を有する。メモリセルトランジスタＭＴ当たり４ビットの記憶の場合、各メモリセルトランジスタＭＴは、２４＝１６個の閾値電圧のうちのいずれかを有し得る。１６個の閾値電圧は、“１１１１”データ、“１１１０”データ、“１０１０”データ、“１０００”データ、“１００１”データ、“０００１”データ、“００００”データ、“００１０”データ、“０１１０”データ、“０１００”データ、“１１００”データ、“１１０１”データ、“０１０１”データ、“０１１１”データ、“００１１”データ、および“１０１１”データをそれぞれ保持している状態である。“１１１１”データ、“１１１０”データ、“１０１０”データ、“１０００”データ、“１００１”データ、“０００１”データ、“００００”データ、“００１０”データ、“０１１０”データ、“０１００”データ、“１１００”データ、“１１０１”データ、“０１０１”データ、“０１１１”データ、“００１１”データ、および“１０１１”データをそれぞれ保持している状態のメモリセルトランジスタＭＴは、それぞれ、Ｅｒ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、およびＯステートにあると称される。Ｅｒステート、Ａステート、Ｂステート、Ｃステート、Ｄステート、Ｅステート、Ｆステート、Ｇステート、Ｈステート、Ｉステート、Ｊステート、Ｋステート、Ｌステート、Ｍステート、Ｎステート、およびＯステートにあるメモリセルトランジスタＭＴは、この順でより高い閾値電圧を有する。
【００２９】
ある同じ４ビットデータを保持する複数のメモリセルトランジスタＭＴであっても、メモリセルトランジスタＭＴの特性のばらつき等に起因して、互いに相違する閾値電圧を有し得る。なお、図３および以降の図では、閾値電圧の分布が連続的な曲線で示されているが、実際には、メモリセルトランジスタＭＴの数は、離散的である。
【００３０】
リード対象のメモリセルトランジスタＭＴによって保持されているデータの判別のために、当該メモリセルトランジスタＭＴのステートが判断される。ステートの判断のために、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯが用いられる。以下、リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯを含め、メモリセルトランジスタＭＴのステートの判断のためにリード対象のメモリセルトランジスタＭＴに印加される或る大きさの電圧は、リード電圧ＶＣＧＲと称される場合がある。
【００３１】
リード電圧ＶＡは、Ｅｒステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＡステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３２】
リード電圧ＶＢは、書き込まれた直後のＡステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＢステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３３】
リード電圧ＶＣは、書き込まれた直後のＢステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＣステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３４】
リード電圧ＶＤは、書き込まれた直後のＣステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＤステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３５】
リード電圧ＶＥは、書き込まれた直後のＤステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＥステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３６】
リード電圧ＶＦは、書き込まれた直後のＥステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＦステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３７】
リード電圧ＶＧは、書き込まれた直後のＦステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＧステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３８】
リード電圧ＶＨは、書き込まれた直後のＧステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＨステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００３９】
リード電圧ＶＩは、書き込まれた直後のＨステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＩステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４０】
リード電圧ＶＪは、書き込まれた直後のＩステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＪステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４１】
リード電圧ＶＫは、書き込まれた直後のＪステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＫステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４２】
リード電圧ＶＬは、書き込まれた直後のＫステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＬステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４３】
リード電圧ＶＭは、書き込まれた直後のＬステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＭステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４４】
リード電圧ＶＮは、書き込まれた直後のＭステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＮステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４５】
リード電圧ＶＯは、書き込まれた直後のＮステート中のメモリセルトランジスタＭＴの最も高い閾値電圧より高く、書き込まれた直後のＯステート中のメモリセルトランジスタＭＴの最も低い閾値電圧より低い。
【００４６】
リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、ＶＯは、例えばデフォルトの電圧である。リード電圧ＶＸ（Ｘは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、またはＯ）を用いたリードは、Ｘリード（ＸＲ）と称される。
【００４７】
リード対象のメモリセルトランジスタ（選択メモリセルトランジスタ）ＭＴの閾値電圧がどの範囲にあるかが、このメモリセルトランジスタＭＴのステートの割り出しに用いられる。選択メモリセルトランジスタＭＴの閾値電圧の範囲の割り出しのために、選択メモリセルトランジスタＭＴが、或るリード電圧ＶＣＧＲを超えているか否かが判断される。リード電圧ＶＣＧＲ以上の閾値電圧を有するメモリセルトランジスタＭＴは、制御ゲート電極においてリード電圧ＶＣＧＲを受け取ってもオフを維持する。一方、リード電圧ＶＣＧＲ未満の閾値電圧を有するメモリセルトランジスタＭＴは、制御ゲート電極においてリード電圧ＶＣＧＲを受け取っていると、オンしている。電圧ＶＲＥＡＤは、非リード対象のセルユニットＣＵのメモリセルトランジスタＭＴのワード線ＷＬに印加され、いずれのステートにあるメモリセルトランジスタＭＴの閾値電圧より高い。
【００４８】
１つのセルユニットＣＵのメモリセルトランジスタＭＴの同じ位置（桁）のビットのデータの組は、１つのページを構成する。各セルユニットＣＵのメモリセルトランジスタＭＴの最上位（１桁目）のビットのデータの組は、トップページと称される。各セルユニットＣＵのメモリセルトランジスタＭＴの最上位から２桁目のビットのデータの組は、アッパーページと称される。各セルユニットＣＵのメモリセルトランジスタＭＴの最上位から３桁目のビットのデータの組は、ミドルページと称される。各セルユニットＣＵのメモリセルトランジスタＭＴの最下位（４桁目）のビットのデータの組は、ロワーページと称される。
【００４９】
各ページのデータは、値の相違する複数のリード電圧ＶＣＧＲを用いたリードにより割り出される。例が以下に示される。以下、Ｘリードによって得られるデータは、ＸリードデータＸＤと称される。
【００５０】
ロワーページの各ビットは、当該ビットのデータを保持する選択メモリセルトランジスタＭＴが、リード電圧ＶＡ未満の範囲、リード電圧ＶＤ以上かつリード電圧ＶＦ未満の範囲、またはリード電圧ＶＫ以上の範囲にあると判断されると、“１”データであると判断される。一方、ロワーページの各ビットは、当該ビットのデータを保持する選択メモリセルトランジスタＭＴが、リード電圧ＶＡ以上かつリード電圧ＶＤ未満の範囲、またはリード電圧ＶＦ以上かつリード電圧ＶＫ未満にあると判断されると、“０”データであると判断される。選択メモリセルトランジスタＭＴのステートの判断のために、“０”データと判断されるステートと“１”データと判断されるステートの間の境界のリード電圧ＶＣＧＲが使用される。ロワーページリードの場合、例えば、Ａリード、Ｄリード、Ｆリード、およびＫリードが使用される。そして、ＡリードデータＡＤ、ＤリードデータＤＤ、ＦリードデータＦＤ、およびＫリードデータＫＤの論理演算によって、選択メモリセルトランジスタＭＴがどのステートにあるかが判断されることができる。
【００５１】
他のページについても同様である。ミドルページデータは、例えば、Ｃリード、Ｇリード、Ｉリード、およびＭリードを用いて割り出される。アッパーページデータは、例えば、Ｂリード、Ｈリード、およびＮリードを用いて割り出される。トップページデータは、例えば、Ｅリード、Ｊリード、Ｌリード、およびＯリードを用いて割り出される。
【００５２】
以下、或るページに保持されているデータの割り出しに必要な複数のリード（ロワーページリードの場合のＡリード、Ｄリード、Ｆリード、およびＫリード）は、当該ページについて必要な境界リードと称される。
【００５３】
メモリセルトランジスタＭＴの閾値電圧は、書き込まれた直後からディスターブおよび（または）時間経過等の要因によって変動し得る。変動の仕方によっては、メモリセルトランジスタＭＴの閾値電圧は、書き込まれたときに意図されていたステートとは別のステートにあると誤って判断され得る。
【００５４】
＜１．１．５．センスアンプ＞
図４は、第１実施形態のセンスアンプ１６中の要素および接続を示す。センスアンプ１６は、ｐ個のセンスアンプ回路ＳＡＣ、複数のデータラッチＤＬ（ＤＬ０、ＤＬ１、ＤＬ２、…ＤＬｑ（ｑは自然数））、ｐ個の演算回路ＬＣ、１つのデータラッチＸＤＬを含む。βが０からｑの各々のケースについて、データラッチＤＬβは、ｐ個のデータラッチ回路ＤＬβＣを含む。データラッチＸＤＬは、ｐ個のデータラッチ回路ＸＤＬＣを含む。データラッチ回路ＤＬβＣおよびＸＤＬＣは、データを一時的に保持する。
【００５５】
各ビット線ＢＬは、１つのセンスアンプ回路ＳＡＣ、ｑ＋１個のデータラッチ回路ＤＬ０Ｃ、ＤＬ１Ｃ、ＤＬ２Ｃ、…ＤＬｑＣ、１つの演算回路ＬＣ、１つのデータラッチ回路ＸＤＬＣと接続されている。
【００５６】
各センスアンプ回路ＳＡＣは、データのリードの間、当該センスアンプ回路ＳＡＣと接続された１つのビット線ＢＬを介して１つの選択メモリセルトランジスタＭＴと電気的に接続される。そして、各センスアンプ回路ＳＡＣは、選択メモリセルトランジスタＭＴの閾値電圧に基づいて定まる大きさの電圧を、当該センスアンプ回路ＳＡＣ中のノード上でセンスし、センスの結果に基づいて、当該センスアンプ回路ＳＡＣと電気的に接続されたメモリセルトランジスタＭＴが２つの状態のいずれに属するかを判断する。メモリセルトランジスタＭＴの２つの状態は、“０”データまたは“１”データとして表現され、各センスアンプ回路ＳＡＣは、リードデータが“０”データであるかまたは“１”データであるかを、当該センスアンプ回路ＳＡＣと接続されたいずれかのデータラッチ回路ＤＬＣにおいて保持する。
【００５７】
演算回路ＬＣは、当該演算回路ＬＣと接続されたデータラッチ回路ＤＬＣおよびＸＤＬＣ中のデータに対して論理演算を行うことができる。論理演算は、否定（ＮＯＴ）演算、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、排他的論理和（ＸＯＲ）演算、否定排他的論理和（ＸＮＯＲ）演算を含む。
【００５８】
＜１．２．動作＞
図５は、第１実施形態のメモリシステムの一動作のフローを示す。特に、図５は、或るブロックＢＬＫの或るストリングユニットＳＵの或るセルユニットＣＵの或るページからのデータリードについてのフローを示す。いくつかのステップの詳細は後述される。
【００５９】
図５に示されるように、メモリコントローラ２は、ステップＳ１において、或るセルユニットＣＵの或るページからのリードを半導体メモリ１に指示する。そのために、メモリコントローラ２は、半導体メモリ１にリードのためのコマンドセットを送信する。リードコマンドセットは、リード対象のセルユニットＣＵおよびリード対象のページを指定する。以下、リード対象のセルユニットＣＵおよびリード対象のページは、それぞれ、選択セルユニットＣＵおよび選択ページと称される。また、選択セルユニットＣＵを含んだストリングユニットＳＵは選択ストリングユニットＳＵと称され、選択ストリングユニットＳＵを含んだブロックＢＬＫは選択ブロックＢＬＫと称される。
【００６０】
ステップＳ２において、半導体メモリ１は、リードコマンドセットを受け取ると、選択ページからデータをリードし、リードされたデータをメモリコントローラ２に送信する。
【００６１】
ステップＳ３において、メモリコントローラ２は、リードデータを受け取り、ＥＣＣ回路２６を制御して、受け取られたリードデータ中の誤りの訂正を試みる。
【００６２】
誤りが含まれていない場合または誤り訂正に成功すると（ステップＳ４のＹｅｓ分岐）、選択ページに書き込まれたデータが得られる。書き込まれたデータ、すなわち、誤りが含まれていないまたは誤りが訂正されたデータは、以下、無誤りデータと称される。無誤りデータが得られる場合、図５のフローは終了する。
【００６３】
ステップＳ４において、誤りが訂正されることができない場合（Ｎｏ分岐）、処理は、ステップＳ５に移行する。ステップＳ５において、メモリコントローラ２は、次に使用されるリード電圧ＶＣＧＲを推定により決定する。リード電圧ＶＣＧＲは、当該リード電圧ＶＣＧＲを使用して選択ページから読み出されたデータから無誤りデータを取得できることを期待して推定される。ステップＳ５の詳細は後述される。１メモリセルトランジスタ当たり４ビットのデータの保持の場合、１ページからのデータのリードのために、３または４の境界リードのそれぞれのための３または４のリード電圧（境界リード電圧）ＶＣＧＲが必要である。このため、ステップＳ５は、３または４つの境界リード電圧ＶＣＧＲの推定を含む。
【００６４】
ステップＳ６において、ステップＳ５で推定された境界リード電圧ＶＣＧＲを使用するシフトリードを半導体メモリ１に指示する。シフトリードは、或る基準の（例えばデフォルトの）リード電圧ＶＣＧＲに対する調整量を指定して、基準のリード電圧ＶＣＧＲと大きさの異なるリード電圧ＶＣＧＲを使用したリードを指す。シフトリードで使用されるリード電圧ＶＣＧＲは、シフトリード電圧ＶＣＧＲＳと称される。シフトリードのために、メモリコントローラ２は、半導体メモリ１にシフトリードのためのコマンドセットを送信する。シフトリードコマンドセットは、選択セルユニットＣＵ、選択ページ、および基準のリード電圧ＶＣＧＲとシフトリード電圧ＶＣＧＲＳとの差ΔＶを指示する。１メモリセルトランジスタ当たり４ビットのデータの保持の場合、シフトリードコマンドセットは、３または４の境界リード電圧のそれぞれのための３または４つのΔＶを指定する。
【００６５】
ステップＳ７において、半導体メモリ１は、シフトリードコマンドセットを受け取ると、選択ページからシフトリード電圧ＶＣＧＲＳを使用してデータをリードし、すなわち選択ページに対してシフトリードを行い、リードされたデータをメモリコントローラ２に送信する。シフトリードにより得られるリードデータは、シフトリードデータと称される。
【００６６】
ステップＳ８において、メモリコントローラ２は、シフトリードデータを受け取り、ＥＣＣ回路２６を制御して、受け取られたデータ中の誤りの訂正を試みる。誤りを含まないシフトリードデータ（無誤りシフトリードデータ）が得られる場合（ステップＳ８のＹｅｓ分岐）、図５のフローは終了する。誤りが訂正されることができない場合（ステップＳ８のＮｏ分岐）、処理は、ステップＳ９に移行する。
【００６７】
ステップＳ９において、メモリコントローラ２は、他の方法を使用して、選択ページからのデータの誤り訂正を試みる。ステップＳ９が終わると、図５のフローは終了する。
【００６８】
＜１．２．１．ステップＳ２（リード）の詳細＞
ステップＳ２のリードは、ロワーページ、ミドルページ、アッパーページ、およびトップページのいずれが選択されているかに基づいて相違する。以下、４つのケースの各々について記述される。
【００６９】
＜１．２．１．１．ロワーページからのリードの詳細＞
図６は、第１実施形態でロワーページが選択される場合のステップＳ２の間に選択セルユニットＣＵと接続されたワード線（選択ワード線）ＷＬに印加される電圧を時間に沿って示す。
【００７０】
図６の期間の間、選択セルユニットＣＵの選択ページからのリードに必要な電圧が、関連する要素に印加されている。例えば、選択ブロックＢＬＫの選択ストリングユニットＳＵと接続された選択ゲート線ＳＧＤＬは、時刻ｔ１０１からｔ１０５の間、電圧ＶＳＧを印加される。電圧ＶＳＧは、選択ゲートトランジスタＤＴをオンさせる大きさを有する。また、ワード線ＷＬのうちの非選択のワード線ＷＬは、時刻ｔ１０１からｔ１０５の間、電圧ＶＲＥＡＤを印加されている。このような電圧の印加により、各ビット線ＢＬとセルソース線ＣＥＬＳＲＣとの間に、選択ストリングユニットＳＵのストリングＳＴＲが電気的に接続される。
【００７１】
図６に示されるように、時刻ｔ１０１から時刻ｔ１０２に亘って選択ワード線ＷＬにリード電圧ＶＡ０が印加される。相違するｗ（ｗは０または自然数）を伴うリード電圧ＶＡｗは、相違する大きさを有する。リード電圧ＶＡｗは、リード電圧ＶＡと同じ大きさを有する場合も有れば、相違する場合もある。例えば、ステップＳ２でのリードでデフォルトのリード電圧ＶＡが使用される場合は、リード電圧ＶＡ０の大きさはリード電圧ＶＡと同じである。
リード電圧ＶＡ０の印加の結果、選択メモリセルトランジスタＭＴがオンすれば、対応するビット線ＢＬからセルソース線ＣＥＬＳＲＣに電流が流れ、オフであれば電流は流れない。この電流の流れの有無が、センスアンプ１６により判断される。この判断に基づいて、選択メモリセルトランジスタＭＴの閾値電圧がリード電圧ＶＡ０未満であるか、リード電圧ＶＡ０以上であるかが判断される。
【００７２】
以下、リード電圧ＶＸｗを用いたリードは、Ｘｗリードと称される。Ａ０リードにより得られるデータは、データラッチＤＬ０〜ＤＬｑのうちの任意の第１データラッチＤＬに保持される。リード電圧ＶＡ０以上の閾値電圧を有する選択メモリセルトランジスタＭＴからは“０”データが得られ、リード電圧ＶＡ０未満の閾値電圧を有するメモリセルトランジスタＭＴからは“１”データが得られる。各選択メモリセルトランジスタＭＴから得られるデータは、第１データラッチＤＬ中の当該メモリセルトランジスタＭＴと接続されたビット線ＢＬと接続されたデータラッチ回路ＤＬＣに保持される。
【００７３】
時刻ｔ１０２から時刻ｔ１０３に亘って選択ワード線ＷＬにリード電圧ＶＤ０が印加され、Ｄ０リードが行われ、Ｄ０リードデータが取得される。時刻ｔ１０３からｔ１０４に亘って選択ワード線ＷＬにリード電圧ＶＦ０が印加され、Ｆ０リードが行われ、Ｆ０リードデータが取得される。時刻ｔ１０４からｔ１０５に亘って選択ワード線ＷＬにリード電圧ＶＫ０が印加され、Ｋ０リードが行われ、Ｋ０リードデータが取得される。Ａ０リードデータ、Ｄ０リードデータ、Ｆ０リードデータ、およびＫ０リードデータは、それぞれ、データラッチＤＬ０〜ＤＬｑのうちの相違するものに保持される。
【００７４】
この後、Ａ０リードデータ、Ｄ０リードデータ、Ｆ０リードデータ、およびＫ０リードデータに基づいて、選択セルユニットＣＵのロワーページのデータが取得される。リード電圧ＶＡｗ、ＶＤｗ、ＶＦｗ、およびＶＫｗを用いてロワーページから読み出されたデータは、ロワーページリードデータＬＤｗと称される。
【００７５】
＜１．２．１．２．ミドルページからのリードの詳細＞
図７は、第１実施形態でミドルページが選択される場合のステップＳ２の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【００７６】
図７の期間の間、図６を参照して記述されたのと同じく、選択セルユニットＣＵの選択ページからのリードに必要な電圧が関連する要素に印加されている。
【００７７】
図７に示されるように、時刻ｔ２０１から時刻ｔ２０２に亘って選択ワード線ＷＬにリード電圧ＶＣ０が印加され、Ｃ０リードが行われ、Ｃ０リードデータが取得される。時刻ｔ２０２から時刻ｔ２０３に亘って選択ワード線ＷＬにリード電圧ＶＧ０が印加され、Ｇ０リードが行われ、Ｇ０リードデータが取得される。時刻ｔ２０３からｔ２０４に亘って選択ワード線ＷＬにリード電圧ＶＩ０が印加され、Ｉ０リードが行われ、Ｉ０リードデータが取得される。時刻ｔ２０４からｔ２０５に亘って選択ワード線ＷＬにリード電圧ＶＭ０が印加され、Ｍ０リードが行われ、Ｍ０リードデータが取得される。
【００７８】
この後、Ｃ０リードデータ、Ｇ０リードデータ、Ｉ０リードデータ、およびＭ０リードデータに基づいて、選択セルユニットＣＵのミドルページのデータが取得される。リード電圧ＶＣｗ、ＶＧｗ、ＶＩｗ、およびＶＭｗを用いてミドルページから読み出されたデータは、ミドルページリードデータＭＤｗと称される。
【００７９】
＜１．２．１．３．アッパーページからのリードの詳細＞
図８は、第１実施形態でアッパーページが選択される場合のステップＳ２の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【００８０】
図８の期間の間、図６を参照して記述されたのと同じく、選択セルユニットＣＵの選択ページからのリードに必要な電圧が関連する要素に印加されている。
【００８１】
図８に示されるように、時刻ｔ３０１から時刻ｔ３０２に亘って選択ワード線ＷＬにリード電圧ＶＢ０が印加され、Ｂ０リードが行われ、Ｂ０リードデータが取得される。時刻ｔ３０２から時刻ｔ３０３に亘って選択ワード線ＷＬにリード電圧ＶＨ０が印加され、Ｈ０リードが行われ、Ｈ０リードデータが取得される。時刻ｔ３０３からｔ３０４に亘って選択ワード線ＷＬにリード電圧ＶＮ０が印加され、Ｎ０リードが行われ、Ｎ０リードデータが取得される。
【００８２】
この後、Ｂ０リードデータ、Ｈ０リードデータ、およびＮ０リードデータに基づいて、選択セルユニットＣＵのアッパーページのデータが取得される。リード電圧ＶＢｗ、ＶＨｗ、およびＶＮｗを用いてアッパーページから読み出されたデータは、アッパーページリードデータＵＤｗと称される。
【００８３】
＜１．２．１．４．トップページからのリードの詳細＞
図９は、第１実施形態でトップページが選択される場合のステップＳ２の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【００８４】
図９の期間の間、図６を参照して記述されたのと同じく、選択セルユニットＣＵの選択ページからのリードに必要な電圧が関連する要素に印加されている。
【００８５】
図９に示されるように、時刻ｔ４０１から時刻ｔ４０２に亘って選択ワード線ＷＬにリード電圧ＶＥ０が印加され、Ｅ０リードが行われ、Ｅ０リードデータが取得される。時刻ｔ４０２から時刻ｔ４０３に亘って選択ワード線ＷＬにリード電圧ＶＪ０が印加され、Ｊ０リードが行われ、Ｊ０リードデータが取得される。時刻ｔ４０３からｔ４０４に亘って選択ワード線ＷＬにリード電圧ＶＬ０が印加され、Ｌ０リードが行われ、Ｌ０リードデータが取得される。時刻ｔ４０４からｔ４０５に亘って選択ワード線ＷＬにリード電圧ＶＯ０が印加され、Ｏ０リードが行われ、Ｏ０リードデータが取得される。
【００８６】
この後、Ｅ０リードデータ、Ｊ０リードデータ、Ｌ０リードデータ、およびＯ０リードデータに基づいて、選択セルユニットＣＵのトップページのデータが取得される。リード電圧ＶＥ０、ＶＪ０、ＶＬ０、およびＶＯ０を用いてトップページから読み出されたデータは、トップページリードデータＴＤ０と称される。
【００８７】
＜１．２．２．ステップＳ５（リード電圧推定）の詳細＞
ステップＳ５のリード電圧推定は、ロワーページ、ミドルページ、アッパーページ、およびトップページのいずれが選択されているかに基づいて相違する。以下、４つのケースの各々について記述される。
【００８８】
＜１．２．２．１．選択ページがロワーページの場合＞
図１０は、第１実施形態でロワーページが選択される場合のステップＳ５のサブフローを示す。図１０に示されるように、ステップＳ４のＮｏ分岐は、ステップＳ５１０１に継続する。
【００８９】
メモリコントローラ２は、ステップＳ５１０１からのいくつかのステップによって、選択ページに対して数回のシングルステートリードを行う。シングルステートリードは、ページのデータのリードと異なり、ＸリードデータＸＤを半導体メモリ１から取得することを指す。
【００９０】
ステップＳ５１０１において、メモリコントローラ２は、選択セルユニットＣＵに対するＢリードを指示する。そのために、メモリコントローラ２は、選択セルユニットＣＵに対するＢリードを指示するコマンドを半導体メモリ１に送信する。
【００９１】
ステップＳ５１０２において、半導体メモリ１は、Ｂリードコマンドを受け取ると、選択セルユニットＣＵに対してＢリードを行い、ＢリードデータＢＤを取得し、ＢリードデータＢＤをメモリコントローラ２に送信する。メモリコントローラ２は、ＢリードデータＢＤをＲＡＭ２３中で保持する。
【００９２】
ステップＳ５１０３において、メモリコントローラ２は、選択セルユニットＣＵに対しするＥリードを指示するコマンドを半導体メモリ１に送信する。
【００９３】
ステップＳ５１０４において、半導体メモリ１は、Ｅリードコマンドを受け取ると、選択セルユニットＣＵに対してＥリードを行い、ＥリードデータＥＤを取得し、ＥリードデータＥＤをメモリコントローラ２に送信する。メモリコントローラ２は、ＥリードデータＥＤをＲＡＭ２３中で保持する。
【００９４】
ステップＳ５１０５において、メモリコントローラ２は、選択セルユニットＣＵに対するＨリードを指示するコマンドを半導体メモリ１に送信する。
【００９５】
ステップＳ５１０６において、半導体メモリ１は、Ｈリードコマンドを受け取ると、選択セルユニットＣＵに対してＨリードを行い、ＨリードデータＨＤを取得し、ＨリードデータＨＤをメモリコントローラ２に送信する。メモリコントローラ２は、ＨリードデータＨＤをＲＡＭ２３中で保持する。
【００９６】
ステップＳ５１０６は、ステップＳ５１１１に継続する。メモリコントローラ２は、ステップＳ５１１１からステップＳ５１１５によって、Ｚ（Ｚは自然数）回のシフトリードを行う。Ｚは例えば５であり、以下の記述はこの例に基づく。各シフトリードにおいて、メモリコントローラ２は、シフト量ΔＶＡ、ΔＶＤ、ΔＶＦ、およびΔＶＫを指定する。各シフトリードでのシフト量ΔＶＡ、ΔＶＤ、ΔＶＦ、およびΔＶＫは、別のシフトリードでのシフト量ΔＶＡ、ΔＶＤ、ΔＶＦ、およびΔＶＫとは相違する。以下、シフトリードごとにシフト量ΔＶＡ、ΔＶＤ、ΔＶＦ、およびΔＶＫの相違するシフトリードの実行の一例が以下に記述される。
【００９７】
ステップＳ５１１１において、メモリコントローラ２は、パラメータｚ（ｚはＺ以下の自然数）を１に設定する。
【００９８】
ステップＳ５１１２において、メモリコントローラ２は、選択セルユニットＣＵに対する第ｚループでのシフトリード電圧を使用したロワーページリード（ロワーページシフトリード）ＬＳＲｚを指示する。ロワーページシフトリードＬＳＲｚのために、メモリコントローラ２は、シフトリードコマンドセットを半導体メモリ１に送信する。シフトリードコマンドセットは、選択ページ、およびシフト量ΔＶＡｚ、ΔＶＤｚ、ΔＶＦｚ、ならびにΔＶＫｚを指定する。シフト量ΔＶＡｚ、ΔＶＤｚ、ΔＶＦｚ、およびΔＶＫｚは、ロワーページシフトリードＬＳＲｚにおいてそれぞれ基準のリード電圧ＶＡ、ＶＤ、ＶＦ、およびＶＫに付加される。
【００９９】
ステップＳ５１１３において、半導体メモリ１は、シフト量ΔＶＡｚ、ΔＶＤｚ、ΔＶＦｚ、およびΔＶＫｚを使用して、選択セルユニットＣＵに対してロワーページシフトリードＬＳＲｚを行う。すなわち、半導体メモリ１は、リード電圧ＶＡ、ＶＤ、ＶＦ、およびＶＫに代えて、シフトリード電圧ＶＡｚ、ＶＤｚ、ＶＦｚ、およびＶＫｚを使用してロワーページリードを行う。シフトリード電圧ＶＡｚはＶＡ＋ΔＶＡｚである。シフトリード電圧ＶＤｚはＶＤ＋ΔＶＤｚである。シフトリード電圧ＶＦｚはＶＦ＋ΔＶＦｚである。シフトリード電圧ＶＫｚはＶＫ＋ΔＶＫｚである。ロワーページシフトリードＬＳＲｚによって得られるデータは、ロワーページシフトリードデータＬＳＤｚと称される。半導体メモリ１は、ロワーページシフトリードデータＬＳＤｚをメモリコントローラ２に送信する。
【０１００】
ステップＳ５１１４において、メモリコントローラ２は、ｚがＺであるかを判断する。ｚ＝Ｚでない場合（Ｎｏ分岐）、ステップＳ５１１５においてメモリコントローラ２はｚ＝ｚ＋１とし、処理はステップＳ５１１２に戻る。ｚ＝Ｚである場合（Ｙｅｓ分岐）、処理はステップＳ５１２１に移行する。ステップＳ５１２１への移行の時点で、メモリコントローラ２は、ロワーページシフトリードデータＬＳＤ１、ＬＳＤ２、ＬＳＤ３、ＬＳＤ４、およびＬＳＤ５を保持している。
【０１０１】
ステップＳ５１２１において、メモリコントローラ２は、ロワーページシフトリードデータＬＳＤ１〜ＬＳＤ５の或るビットを、ＢリードデータＢＤ、ＥリードデータＥＤ、およびＨリードデータＨＤを用いてマスクする。そのために、メモリコントローラ２は、ＢリードデータＢＤ、ＥリードデータＥＤ、ＨリードデータＨＤ、およびロワーページシフトリードデータＬＳＤ１〜ＬＳＤ５を用いた論理演算を行う。論理演算により、分離データＡＤｓ（ＡＤｓ１、ＡＤｓ２、ＡＤｓ３、ＡＤｓ４、およびＡＤｓ５）、ＤＤｓ（ＤＤｓ１、ＤＤｓ２、ＤＤｓ３、ＤＤｓ４、およびＤＤｓ５）、ＦＤｓ（ＦＤｓ１、ＦＤｓ２、ＦＤｓ３、ＦＤｓ４、およびＦＤｓ５）、ならびにＫＤｓ（ＫＤｓ１、ＫＤｓ２、ＫＤｓ３、ＫＤｓ４、およびＫＤｓ５）が取得される。分離データＡＤｓｚ、ＤＤｓｚ、ＦＤｓｚ、およびＫＤｓｚは、ロワーページシフトデータのＬＳＤｚの一部からなる。分離データＡＤｓ、ＤＤｓ、ＦＤｓ、およびＫＤｓの取得の方法は後述される。メモリコントローラ２は、取得された分離データＡＤｓ、ＤＤｓ、ＦＤｓ、およびＫＤｓをＲＡＭ２３において保持する。
【０１０２】
ステップＳ５１２２において、メモリコントローラ２は、分離データＡＤｓ、ＤＤｓ、ＦＤｓ、およびＫＤｓを用いて、複数のビット数ＢＣＡ１、ＢＣＡ２、ＢＣＡ３、ＢＣＡ４、ＢＣＡ５、ＢＣＤ１、ＢＣＤ２、ＢＣＤ３、ＢＣＤ４、ＢＣＤ５、ＢＣＦ１、ＢＣＦ２、ＢＣＦ３、ＢＣＦ４、ＢＣＦ５、ＢＣＫ１、ＢＣＫ２、ＢＣＫ３、ＢＣＦ４、およびＢＣＫ５を算出する。算出の方法は後述される。
【０１０３】
ステップＳ５１２３において、メモリコントローラ２は、ビット数ＢＣＡ１、ＢＣＡ２、ＢＣＡ３、ＢＣＡ４、ＢＣＡ５、ＢＣＤ１、ＢＣＤ２、ＢＣＤ３、ＢＣＤ４、ＢＣＤ５、ＢＣＦ１、ＢＣＦ２、ＢＣＦ３、ＢＣＦ４、ＢＣＦ５、ＢＣＫ１、ＢＣＫ２、ＢＣＫ３、ＢＣＦ４、およびＢＣＫ５を用いて、境界リード電圧ＶＡＳ、ＶＤＳ、ＶＦＳ、およびＶＫＳを決定する。割り出しの方法は後述される。
【０１０４】
次いで、メモリコントローラ２は、シフト量ΔＶＡＳ、ΔＶＤＳ、ΔＶＦＳ、およびΔＶＫＳを算出する。シフト量ΔＶＡＳは、ＶＡＳ−ＶＡである。シフト量ΔＶＤＳは、ＶＤＳ−ＶＤである。シフト量ΔＶＦＳは、ＶＦＳ−ＶＦである。シフト量ΔＶＫＳは、ＶＫＳ−ＶＫである。
【０１０５】
ステップＳ５１２３は、ステップＳ６に継続する。ステップＳ６がステップＳ５１２３に後続する場合、メモリコントローラ２は、ステップＳ６において、シフト量ΔＶＡＳ、ΔＶＤＳ、ΔＶＦＳ、およびΔＶＫＳを指定する。ステップＳ６において、シフトされた境界リード電圧ＶＡＳ、ＶＤＳ、ＶＦＳ、およびＶＫＳが使用される。シフトされた境界リード電圧ＶＸＳは、シフト境界リード電圧ＶＸＳと称される。
【０１０６】
ステップＳ５１０１およびＳ５１０２の組、ステップＳ５１０３およびＳ５１０４の組、ならびにステップＳ５１０５およびＳ５１０６の組は、図１０を参照して記述された順序と異なる任意の順序で行われることができる。
【０１０７】
また、ステップＳ５１１１、Ｓ５１１２、Ｓ５１１３、Ｓ５１１４、およびＳ５１１５の組が、ステップＳ５１０１、Ｓ５１０２、Ｓ５１０３、Ｓ５１０４、Ｓ５１０５、およびＳ５１０６の組より前に行われてもよい。この場合、ステップＳ４のＮｏ分岐はステップＳ５１１１に継続し、ステップＳ５１１４のＹｅｓ分岐はステップＳ５１０１に継続し、ステップＳ５１０６はステップＳ５１２１に継続する。
【０１０８】
＜１．２．２．１．１．シフトリード＞
図１１は、第１実施形態でステップＳ５１１３の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【０１０９】
図６を参照して記述されたのと同様に、選択ワード線ＷＬに電圧が印加されている間、例えば、選択ブロックＢＬＫの選択ストリングユニットＳＵと接続された選択ゲート線ＳＧＤＬは電圧ＶＳＧを印加され、非選択のワード線ＷＬは電圧ＶＲＥＡＤを印加されている。
【０１１０】
図１１に示されるように、時刻ｔ１１１から時刻ｔ１１５の間にロワーページシフトリードＬＳＲ１のための電圧印加が行われ、続く時刻ｔ１２１から時刻ｔ１２５の間にロワーページシフトリードＬＳＲ２のための電圧印加が行われる。次いで、図示せぬ時刻ｔ１３１から時刻ｔ１３５の間にロワーページシフトリードＬＳＲ３のための電圧印加が行われ、図示せぬ時刻ｔ１４１から時刻ｔ１４５の間にロワーページシフトリードＬＳＲ４のための電圧印加が行われる。次いで、時刻ｔ１５１から時刻ｔ１５５の間にロワーページシフトリードＬＳＲ５のための電圧印加が行われる。
【０１１１】
図１１の例では、ｚ＝１、２、および３の各々のケースにおいて、シフト量ΔＶＡｚ、ΔＶＤｚ、ΔＶＦ、およびΔＶＫは負の大きさを有する。
【０１１２】
γが１から５の自然数の各々のケースについて、時刻ｔ１γ１から時刻ｔ１γ２に亘って選択ワード線ＷＬにリード電圧ＶＡγが印加されて、Ａγリードが行われる。時刻ｔ１γ２から時刻ｔ１γ３に亘って選択ワード線ＷＬにリード電圧ＶＤγが印加されて、Ｄγリードが行われる。時刻ｔ１γ３から時刻ｔ１γ４に亘って選択ワード線ＷＬにリード電圧ＶＦγが印加されて、Ｆγリードが行われる。時刻ｔ１γ４から時刻ｔ１γ５に亘って選択ワード線ＷＬにリード電圧ＶＫγが印加されて、Ｋγリードが行われる。
【０１１３】
＜１．２．２．１．２．半導体メモリからリードされるデータ＞
図１２は、ステップＳ５１０２、Ｓ５１０４、Ｓ５１０６、およびＳ５１１３によって得られるデータの例を示す。図１２の各桝は、当該桝の範囲の閾値電圧を有する選択メモリセルトランジスタＭＴからリードされた１ビットデータを示す。
【０１１４】
図１２に示されるように、ＢリードデータＢＤは、リード電圧ＶＢ未満の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有し、リード電圧ＶＢ以上の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１１５】
ＥリードデータＥＤは、リード電圧ＶＥ未満の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有し、リード電圧ＶＥ以上の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１１６】
ＨリードデータＨＤは、リード電圧ＶＨ未満の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有し、リード電圧ＶＨ以上の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１１７】
ロワーページシフトリードＬＳＲ１では、リード電圧ＶＡ、ＶＤ、ＶＦ、およびＶＫと異なるリード電圧ＶＡ１、ＶＤ１、ＶＦ１、およびＶＫ１が使用される。或る閾値電圧を有するメモリセルトランジスタＭＴからのリードであっても、異なるリード電圧が使用されると、リードにより読み出されるビットの値は異なり得る。このため、ロワーページシフトリードデータＬＳＤ１での“１”データを読み出すメモリセルトランジスタＭＴの閾値電圧と“０”データを読み出すメモリセルトランジスタＭＴの閾値電圧との境界（以下、境界電圧と称される）は、ロワーページリードデータＬＤ０での境界電圧と異なる。具体的には、ロワーページシフトリードデータＬＳＤ１での境界電圧は、ロワーページリードデータＬＤ０での境界電圧より低い。
【０１１８】
同様に、ロワーページシフトリードデータＬＳＤ２、ＬＳＤ３、ＬＳＤ４、およびＬＳＤ５の境界電圧は、ロワーページシフトリードデータＬＳＤ１と相違する。例えば、ロワーページシフトリードデータＬＳＤ１、ＬＳＤ２、ＬＳＤ３、ＬＳＤ４、およびＬＳＤ５は、この順でより高い境界電圧を有する。
【０１１９】
＜１．２．２．１．３．分離データ演算＞
図１３乃至図１６は、第１実施形態でステップＳ５１２１によって得られるデータの例を示す。図１３乃至図１６は、それぞれ、分離データＡＤｓ、ＤＤｓ、ＦＤｓ、およびＫＤｓの例を示す。
【０１２０】
メモリコントローラ２は、例えば、ＲＡＭ２３上で、以下の論理演算を行って、分離データＡＤｓ、ＤＤｓ、ＦＤｓ、およびＫＤｓを生成する。
【０１２１】
＜１．２．２．１．３．１．分離データＡＤｓの演算＞
分離データＡＤｓは、式（１）により取得されることができる。
【０１２２】
ＡＤｓ＝ＬＳＤ＆ＢＤ        （１）
演算子“＆”は、その両側の２つのオペランドに対する論理積を意味する。メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＡＤｓγ＝ＬＳＤγ＆ＢＤを演算して、分離データＡＤｓγを取得する。
【０１２３】
図１３に示されるように、分離データＡＤｓ１、ＡＤｓ２、ＡＤｓ３、ＡＤｓ４、およびＡＤｓ５は、互いに相違する数の“１”データビットを有する。“１”データビットの数が異なれば、“０”データビットの数も異なる。特に、分離データＡＤｓ１、ＡＤｓ２、ＡＤｓ３、ＡＤｓ４、およびＡＤｓ５は、リード電圧ＶＡ１とリード電圧ＶＡ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データビット数において相違する。その他のビットにおいては、各ビットにおいて分離データＡＤｓ１、ＡＤｓ２、ＡＤｓ３、ＡＤｓ４、およびＡＤｓ５は、同じ値を有する。
【０１２４】
分離データＡＤｓ１は、リード電圧ＶＡ１とリード電圧ＶＡ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有しない。
【０１２５】
分離データＡＤｓ２は、リード電圧ＶＡ１とリード電圧ＶＡ２との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１２６】
分離データＡＤｓ３は、リード電圧ＶＡ１とリード電圧ＶＡ３との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１２７】
分離データＡＤｓ４は、リード電圧ＶＡ１とリード電圧ＶＡ４との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１２８】
分離データＡＤｓ５は、リード電圧ＶＡ１とリード電圧ＶＡ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１２９】
分離データＡＤｓ１、ＡＤｓ２、ＡＤｓ３、ＡＤｓ４、およびＡＤｓ５の順で、リード電圧ＶＡ１とリード電圧ＶＡ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データビット数が増加する。このため、分離データＡＤｓ１〜ＡＤｓ５は、選択セルユニットＣＵ中でリード電圧ＶＡ２〜ＶＡ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０１３０】
＜１．２．２．１．３．２．分離データＤＤｓの演算＞
分離データＤＤｓは、式（２）により取得されることができる。  
ＤＤｓ＝（ＬＳＤ＆￣ＢＤ）＆ＥＤ      （２）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＤＤｓγ＝（ＬＳＤγ＆￣ＢＤ）＆ＥＤを演算して、分離データＤＤｓγを取得する。
【０１３１】
図１４に示されるように、分離データＤＤｓ１、ＤＤｓ２、ＤＤｓ３、ＤＤｓ４、およびＤＤｓ５は、互いに相違する数の“１”データビットを有する。特に、分離データＤＤｓ１、ＤＤｓ２、ＤＤｓ３、ＤＤｓ４、およびＤＤｓ５は、リード電圧ＶＤ１とリード電圧ＶＤ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の “０”データビット数において相違する。その他のビットにおいては、各ビットにおいて分離データＤＤｓ１、ＤＤｓ２、ＤＤｓ３、ＤＤｓ４、およびＤＤｓ５は、同じ値を有する。
【０１３２】
分離データＤＤｓ１は、リード電圧ＶＤ１とリード電圧ＶＤ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有しない。
【０１３３】
分離データＤＤｓ２は、リード電圧ＶＤ１とリード電圧ＶＤ２との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１３４】
分離データＤＤｓ３は、リード電圧ＶＤ１とリード電圧ＶＤ３との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１３５】
分離データＤＤｓ４は、リード電圧ＶＤ１とリード電圧ＶＤ４との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１３６】
分離データＤＤｓ５は、リード電圧ＶＤ１とリード電圧ＶＤ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１３７】
分離データＤＤｓ１、ＤＤｓ２、ＤＤｓ３、ＤＤｓ４、およびＤＤｓ５の順で、リード電圧ＶＤ１とリード電圧ＶＤ５の間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“０”データビット数が増加する。このため、分離データＤＤｓ１〜ＤＤｓ５は、選択セルユニットＣＵ中でリード電圧ＶＤ２〜ＶＤ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０１３８】
＜１．２．２．１．３．３．分離データＦＤｓの演算＞
分離データＦＤｓは、式（３）により取得されることができる。  
ＦＤｓ＝（ＬＳＤ＆￣ＥＤ）＆ＨＤ      （３）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＦＤｓγ＝（ＬＳＤγ＆￣ＥＤ）＆ＨＤを演算して、分離データＦＤｓγを取得する。
【０１３９】
図１５に示されるように、分離データＦＤｓ１、ＦＤｓ２、ＦＤｓ３、ＦＤｓ４、およびＦＤｓ５は、互いに相違する数の“１”データビットを有する。特に、分離データＦＤｓ１、ＦＤｓ２、ＦＤｓ３、ＦＤｓ４、およびＦＤｓ５は、リード電圧ＶＦ１とリード電圧ＶＦ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データビット数において相違する。その他のビットにおいては、各ビットにおいて分離データＦＤｓ１、ＦＤｓ２、ＦＤｓ３、ＦＤｓ４、およびＦＤｓ５は、同じ値を有する。
【０１４０】
分離データＦＤｓ１は、リード電圧ＶＦ１とリード電圧ＶＦ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有しない。
【０１４１】
分離データＦＤｓ２は、リード電圧ＶＦ１とリード電圧ＶＦ２との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１４２】
分離データＦＤｓ３は、リード電圧ＶＦ１とリード電圧ＶＦ３との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１４３】
分離データＦＤｓ４は、リード電圧ＶＦ１とリード電圧ＶＦ４との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１４４】
分離データＦＤｓ５は、リード電圧ＶＦ１とリード電圧ＶＦ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“１”データを有する。
【０１４５】
分離データＦＤｓ１、ＦＤｓ２、ＦＤｓ３、ＦＤｓ４、およびＦＤｓ５の順で、リード電圧ＶＦ１とリード電圧ＶＦ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データビット数が増加する。このため、分離データＦＤｓ１〜ＦＤｓ５は、選択セルユニットＣＵ中でリード電圧ＶＦ２〜ＶＦ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０１４６】
＜１．２．２．１．３．４．分離データＫＤｓの演算＞
分離データＫＤｓは、式（４）により取得されることができる。  
ＫＤｓγ＝ＬＳＤγ＆￣ＨＤ      （４）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＫＤｓγ＝ＬＳＤγ＆￣ＨＤを演算して、分離データＫＤｓ１、ＫＤｓ２、ＫＤｓ３、ＫＤｓ４、およびＫＤｓ５を取得する。
【０１４７】
図１６に示されるように、分離データＫＤｓ１、ＫＤｓ２、ＫＤｓ３、ＫＤｓ４、およびＫＤｓ５は、互いに相違する数の“０”データビットを有する。特に、分離データＫＤｓ１、ＫＤｓ２、ＫＤｓ３、ＫＤｓ４、およびＫＤｓ５は、リード電圧ＶＫ１とリード電圧ＶＫ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“０”データビットの数において相違する。その他のビットにおいては、各ビットにおいて分離データＫＤｓ１、ＫＤｓ２、ＫＤｓ３、ＫＤｓ４、およびＫＤｓ５は、同じ値を有する。
【０１４８】
分離データＫＤｓ１は、リード電圧ＶＫ１とリード電圧ＶＫ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有しない。
【０１４９】
分離データＫＤｓ２は、リード電圧ＶＫ１とリード電圧ＶＫ２との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１５０】
分離データＫＤｓ３は、リード電圧ＶＫ１とリード電圧ＶＫ３との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１５１】
分離データＫＤｓ４は、リード電圧ＶＫ１とリード電圧ＶＫ４との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１５２】
分離データＫＤｓ５は、リード電圧ＶＫ１とリード電圧ＶＫ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビットにおいて“０”データを有する。
【０１５３】
分離データＫＤｓ１、ＫＤｓ２、ＫＤｓ３、ＫＤｓ４、およびＫＤｓ５の順で、リード電圧ＶＫ１とリード電圧ＶＫ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“０”データビット数が増加する。このため、分離データＫＤｓ１〜ＫＤｓ５は、選択セルユニットＣＵ中でリード電圧ＶＫ２〜ＶＫ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０１５４】
＜１．２．２．１．４．ビットカウントおよびシフト境界リード電圧推定＞
図１７は、第１実施形態のステップＳ５１２２およびＳ５１２３の間の処理を説明するための図である。図１７は、ステップＳ５１２２およびＳ５１２３でのシフト境界リード電圧ＶＡＳを推定するための処理を示す。
【０１５５】
部分（ａ）は、Ｅｒステートとして書き込まれたメモリセルトランジスタＭＴの閾値電圧の分布およびＡステートして書き込まれたメモリセルトランジスタＭＴの閾値電圧の分布の境界の範囲を示す。ただし、メモリコントローラ２は、部分（ａ）のような分布を知らない。
【０１５６】
メモリコントローラ２は、分離データＡＤｓ１〜ＡＤｓ５の各々において、“０”データビットまたは“１”データビットを計数する。メモリコントローラ２は、例えば、“０”データビットおよび“１”データビットのうち、分離データＡＤｓ１〜ＡＤｓ５のそれぞれの個数が分離データＡＤｓ１〜ＡＤｓ５の昇順に増える方を計数することができる。分離データＡＤｓ１〜ＡＤｓ５での計数の場合、メモリコントローラ２は、分離データＡＤｓ１〜ＡＤｓ５の各々の“１”データを計数することができる。
【０１５７】
計数の結果の例が部分（ｂ）に示されている。ビット数ＢＣＡ１は、ＶＡ１リードデータに基づく分離データ、すなわち分離データＡＤｓ１中の“１”データビットの数である。ビット数ＢＣＡ２は、分離データＡＤｓ２中の“１”データビットの数である。ビット数ＢＣＡ３は、分離データＡＤｓ３中の“１”データビットの数である。ビット数ＢＣＡ４は、分離データＡＤｓ４中の“１”データビットの数である。ビット数ＢＣＡ５は、分離データＡＤｓ５中の“１”データビットの数である。
【０１５８】
メモリコントローラ２は、次いで、ビット数ＢＣＡ１、ＢＣＡ２、ＢＣＡ３、ＢＣＡ４、およびＢＣＡ５の特定の対の差を算出する。具体的には、メモリコントローラ２は、ＢＣＡ２−ＢＣＡ１、ＢＣＡ３−ＢＣＡ２、ＢＣＡ４−ＢＣＡ３、およびＢＣＡ５−ＢＣＡ４を算出する。算出の結果の例は、部分（ｃ）に示されている。
【０１５９】
各差は、対応する閾値電圧で初めてオンするメモリセルトランジスタＭＴの数を表現する。例えばＢＣＡ２−ＢＣＡ１は、リード電圧ＶＡ１ではオンせずに、リード電圧ＶＡ２でオンするメモリセルトランジスタＭＴの数を表現する。このことに基づいて、メモリコントローラ２は、各差を、対応するメモリセルトランジスタＭＴの数とみなす。すなわち、例えば、ＢＣＡ２−ＢＣＡ１は、リード電圧ＶＡ２の大きさの閾値電圧を有するメモリセルトランジスタＭＴの数とみなす。このような各差と対応する閾値電圧との関係は、リード電圧ＶＡ２、ＶＡ３、ＶＡ４、およびＶＡ５の大きさの閾値電圧をそれぞれ有するメモリセルトランジスタＭＴの数を示していることに等しい。この関係が部分（ｄ）に示されている。
【０１６０】
リード電圧ＶＡ２と等しい大きさの閾値電圧を有するメモリセルトランジスタＭＴの数は、ＢＣＡ２−ＢＣＡ１＝Ｃ１である。同様に、リード電圧ＶＡ３と等しい大きさの閾値電圧を有するメモリセルトランジスタＭＴの数は、ＢＣＡ３−ＢＣＡ２＝Ｃ２である。リード電圧ＶＡ４と等しい大きさの閾値電圧を有するメモリセルトランジスタＭＴの数は、ＢＣＡ４−ＢＣＡ３＝Ｃ３である。リード電圧ＶＡ５と等しい大きさの閾値電圧を有するメモリセルトランジスタＭＴの数は、ＢＣＡ５−ＢＣＡ４＝Ｃ４である。
【０１６１】
次いで、メモリコントローラ２は、数Ｃ１〜Ｃ４のうちで最少のものを谷位置（極小位置）として検出され、谷位置に対応する閾値電圧をシフト境界リード電圧ＶＡＳとして使用することを決定する。
【０１６２】
図１７を参照して記述された処理が、分離データＤＤｓ１〜ＤＤｓ５の組、ＦＤｓ１〜ＦＤｓ５の組、およびＫＤｓ１〜ＫＤｓ５の組に対して行われる。この結果、シフト境界リード電圧ＶＡＳが決定されるのと同様に、シフト境界リード電圧ＶＤＳ、ＶＦＳ、およびＶＫＳが決定されることができる。
【０１６３】
＜１．２．２．２．選択ページがミドルページの場合＞
図１８は、第１実施形態でミドルページが選択される場合のステップＳ５のサブフローを示す。図１８に示されるように、ステップＳ４のＮｏ分岐は、ステップＳ５２０１に継続する。ミドルページが選択される場合のシフト境界リード電圧の割り出しは、ロワーページが選択される場合のシフト境界リード電圧の割り出しと大きな流れは同じである。よって、以下、図１０の処理と相違する点が主に記述される。
【０１６４】
メモリコントローラ２は、ステップＳ５２０１からステップＳ５２０６によって、ＥリードデータＥＤ、ＨリードデータＨＤ、およびＫリードデータＫＤを取得する。ステップＳ５２０１、Ｓ５２０２、Ｓ５２０３、およびＳ５２０４は、図１０のステップＳ５１０３、Ｓ５１０４、Ｓ５１０５、およびＳ５１０６とそれぞれ同じである。ステップＳ５２０５では、ステップＳ５２０１でのＥリードに代えて、Ｋリードが指示される。ステップＳ５２０６では、ステップＳ５２０２でのＥリードの実行およびＥリードデータＥＤの送信にそれぞれ代えて、Ｋリードが実行され、ＫリードデータＫＤが送信される。
【０１６５】
メモリコントローラ２は、ステップＳ５２１１からステップＳ５２１５によって、図１０のステップＳ５１１１からステップＳ５１１５と同じく、Ｚ回のシフトリードを行う。各シフトリードでのシフト量ΔＶＣ、ΔＶＧ、ΔＶＩ、およびΔＶＭは、別のシフトリードでのシフト量ΔＶＣ、ΔＶＧ、ΔＶＩ、およびΔＶＭとは相違する。
【０１６６】
ステップＳ５２１１において、メモリコントローラ２は、図１０のステップＳ５１１１と同じく、ｚを１に設定する。
【０１６７】
ステップＳ５２１２は、図１０のステップＳ５１１２に類似する。ステップＳ５２１２において、メモリコントローラ２は、選択セルユニットＣＵに対する第ｚループでのシフトリード電圧を使用したミドルページリード（ミドルページシフトリード）ＭＳＲｚを指示する。ミドルページシフトリードＭＳＲｚでは、シフト量ΔＶＣｚ、ΔＶＧｚ、ΔＶＩｚ、およびΔＶＭｚが指定される。
【０１６８】
ステップＳ５２１３は、図１０のステップＳ５１１３に類似する。ステップＳ５２１３において、半導体メモリ１は、シフト量ΔＶＣｚ、ΔＶＧｚ、ΔＶＩｚ、およびΔＶＭｚを使用して、選択セルユニットＣＵに対してミドルページシフトリードＭＳＲｚを行う。すなわち、半導体メモリ１は、リード電圧ＶＣ、ＶＧ、ＶＩ、およびＶＭに代えて、シフトリード電圧ＶＣｚ、ＶＧｚ、ＶＩｚ、およびＶＭｚを使用してミドルページリードを行う。シフトリード電圧ＶＣｚはＶＣ＋ΔＶＣｚである。シフトリード電圧ＶＧｚは、ＶＧ＋ΔＶＧｚである。シフトリード電圧ＶＩｚはＶＩ＋ΔＶＩｚである。シフトリード電圧ＶＭｚはＶＭ＋ΔＶＭｚである。ミドルページシフトリードＭＳＲｚによって得られるデータは、ミドルページシフトリードデータＭＳＤｚと称される。
【０１６９】
ステップＳ５２１４およびＳ５２１５は、図１０のステップＳ５１１４およびＳ５１１５とそれぞれ同じである。ｚ＝Ｚでない場合（ステップＳ５２１４のＮｏ分岐）、ステップＳ５２１５においてメモリコントローラ２はｚ＝ｚ＋１とし、処理はステップＳ５２１２に戻る。ｚ＝Ｚである場合（Ｙｅｓ分岐）、処理はステップＳ５２２１に移行する。ステップＳ５２２１への移行の時点で、メモリコントローラ２は、ミドルページシフトリードデータＭＳＤ１、ＭＳＤ２、ＭＳＤ３、ＭＳＤ４、およびＭＳＤ５を保持している。
【０１７０】
ステップＳ５２２１は図１０のステップＳ５１２１に類似する。ステップＳ５２２１において、メモリコントローラ２は、ステップＳ５１２１と同様にして、ミドルページシフトリードデータＭＳＤ１〜ＭＳＤ５の或るビットを、ＥリードデータＥＤ、ＨリードデータＨＤ、およびＫリードデータＫＤを用いてマスクする。そのために、メモリコントローラ２は、ＥリードデータＥＤ、ＨリードデータＨＤ、ＫリードデータＫＤ、およびミドルページシフトリードデータＭＳＤ１〜ＭＳＤ５を用いた論理演算を行う。論理演算により、分離データＣＤｓ（ＣＤｓ１、ＣＤｓ２、ＣＤｓ３、ＣＤｓ４、およびＣＤｓ５）、ＧＤｓ（ＧＤｓ１、ＧＤｓ２、ＧＤｓ３、ＧＤｓ４、およびＧＤｓ５）、ＩＤｓ（ＩＤｓ１、ＩＤｓ２、ＩＤｓ３、ＩＤｓ４、およびＩＤｓ５）、ならびにＭＤｓ（ＭＤｓ１、ＭＤｓ２、ＭＤｓ３、ＭＤｓ４、およびＭＤｓ５）が取得される。分離データＣＤｓｚ、ＧＤｓｚ、ＩＤｓｚ、およびＭＤｓｚは、ミドルページシフトデータのＭＳＤｚの一部からなる。分離データＣＤｓ、ＧＤｓ、ＩＤｓ、およびＭＤｓの取得の方法は後述される。メモリコントローラ２は、取得された分離データＣＤｓ、ＧＤｓ、ＩＤｓ、およびＭＤｓをＲＡＭ２３において保持する。
【０１７１】
ステップＳ５２２２は、図１０のステップＳ５１２２に類似する。ステップＳ５２２２において、メモリコントローラ２は、ステップＳ５１２２と同様にして、分離データＣＤｓ、ＧＤｓ、ＩＤｓ、およびＭＤｓを用いて、複数のビット数ＢＣＣ１、ＢＣＣ２、ＢＣＣ３、ＢＣＣ４、ＢＣＣ５、ＢＣＧ１、ＢＣＧ２、ＢＣＧ３、ＢＣＧ４、ＢＣＧ５、ＢＣＩ１、ＢＣＩ２、ＢＣＩ３、ＢＣＩ４、ＢＣＩ５、ＢＣＭ１、ＢＣＭ２、ＢＣＭ３、ＢＣＭ４、およびＢＣＭ５を算出する。
【０１７２】
ステップＳ５２２３は、図１０のステップＳ５１２３に類似する。ステップＳ５２２３において、メモリコントローラ２は、ステップＳ５１２３と同様にして、ビット数ＢＣＣ１、ＢＣＣ２、ＢＣＣ３、ＢＣＣ４、ＢＣＣ５、ＢＣＧ１、ＢＣＧ２、ＢＣＧ３、ＢＣＧ４、ＢＣＧ５、ＢＣＩ１、ＢＣＩ２、ＢＣＩ３、ＢＣＩ４、ＢＣＩ５、ＢＣＭ１、ＢＣＭ２、ＢＣＭ３、ＢＣＭ４、およびＢＣＭ５を用いて、シフト境界リード電圧ＶＣＳ、ＶＧＳ、ＶＩＳ、およびＶＭＳを決定する。
【０１７３】
次いで、メモリコントローラ２は、シフト量ΔＶＣＳ、ΔＶＧＳ、ΔＶＩＳ、およびΔＶＭＳを算出する。シフト量ΔＶＣＳは、ＶＣＳ−ＶＣである。シフト量ΔＶＧＳは、ＶＧＳ−ＶＧである。シフト量ΔＶＩＳは、ＶＩＳ−ＶＩである。シフト量ΔＶＭＳは、ＶＭＳ−ＶＭである。
【０１７４】
ステップＳ５２２３は、ステップＳ６に継続する。ステップＳ６がステップＳ５２２３に後続する場合、メモリコントローラ２は、ステップＳ６において、シフト量ΔＶＣＳ、ΔＶＧＳ、ΔＶＩＳ、およびΔＶＭＳを指定する。
【０１７５】
ステップＳ５２０１およびＳ５２０２の組、ステップＳ５２０３およびＳ５２０４の組、ならびにステップＳ５２０５およびＳ５２０６の組は、図１８を参照して記述された順序と異なる任意の順序で行われることができる。
【０１７６】
また、ステップＳ５２１１、Ｓ５２１２、Ｓ５２１３、Ｓ５２１４、およびＳ５２１５の組が、ステップＳ５２０１、Ｓ５２０２、Ｓ５２０３、Ｓ５２０４、Ｓ５２０５、およびＳ５２０６の組より前に行われてもよい。この場合、ステップＳ４のＮｏ分岐はステップＳ５２１１に継続し、ステップＳ５２１４のＹｅｓ分岐はステップＳ５２０１に継続し、ステップＳ５２０６はステップＳ５２２１に継続する。
【０１７７】
＜１．２．２．２．１．シフトリード＞
図１９は、第１実施形態でステップＳ５２１２の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【０１７８】
図６を参照して記述されたのと同様に、選択ワード線ＷＬに電圧が印加されている間、例えば、選択ブロックＢＬＫの選択ストリングユニットＳＵと接続された選択ゲート線ＳＧＤＬは電圧ＶＳＧを印加され、非選択のワード線ＷＬは電圧ＶＲＥＡＤを印加されている。
【０１７９】
図１９に示されるように、時刻ｔ２１１から時刻ｔ２１５の間にミドルページシフトリードＭＳＲ１のための電圧印加が行われ、続く時刻ｔ２２１から時刻ｔ２２５の間にミドルページシフトリードＭＳＲ２のための電圧印加が行われる。次いで、図示せぬ時刻ｔ２３１から時刻ｔ２３５の間にミドルページシフトリードＭＳＲ３のための電圧印加が行われ、図示せぬ時刻ｔ２４１から時刻ｔ２４５の間にミドルページシフトリードＭＳＲ４のための電圧印加が行われる。次いで、時刻ｔ２５１から時刻ｔ２５５の間にミドルページシフトリードＭＳＲ５のための電圧印加が行われる。
【０１８０】
図１９の例では、ｚ＝１、２、３の各々のケースにおいて、シフト量ΔＶＣｚ、ΔＶＧｚ、ΔＶＩ、およびΔＶＭは負の大きさを有する。
【０１８１】
同様に、γが１以上５以下の自然数の各々のケースについて、時刻ｔ２γ１から時刻ｔ２γ２に亘って選択ワード線ＷＬにリード電圧ＶＣγが印加されて、Ｃγリードが行われる。時刻ｔ２γ２から時刻ｔ２γ３に亘って選択ワード線ＷＬにリード電圧ＶＧγが印加されて、Ｇγリードが行われる。時刻ｔ２γ３から時刻ｔ２γ４に亘って選択ワード線ＷＬにリード電圧ＶＩγが印加されて、Ｉγリードが行われる。時刻ｔ２γ４から時刻ｔ２γ５に亘って選択ワード線ＷＬにリード電圧ＶＭγが印加されて、Ｍγリードが行われる。
【０１８２】
＜１．２．２．２．２．分離データ演算＞
メモリコントローラ２は、ステップＳ５２２１において、例えば、ＲＡＭ２３上で、以下の論理演算を行って、分離データＣＤｓ、ＧＤｓ、ＩＤｓ、およびＭＤｓを生成する。
【０１８３】
分離データＣＤｓは、式（５）により取得されることができる。
【０１８４】
ＣＤｓ＝ＭＳＤ＆ＥＤ        （５）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＣＤｓγ＝ＭＳＤγ＆ＥＤを演算して、分離データＣＤｓγを取得する。分離データＣＤｓ１、ＣＤｓ２、ＣＤｓ３、ＣＤｓ４、およびＣＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０１８５】
分離データＧＤｓは、式（６）により取得されることができる。  
ＧＤｓ＝（ＭＳＤ＆￣ＥＤ）＆ＨＤ      （６）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＧＤｓγ＝（ＭＳＤγ＆￣ＥＤ）＆ＨＤを演算して、分離データＧＤｓγを取得する。分離データＧＤｓ１、ＧＤｓ２、ＧＤｓ３、ＧＤｓ４、およびＧＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０１８６】
分離データＩＤｓは、式（７）により取得されることができる。  
ＩＤｓ＝（ＭＳＤ＆￣ＨＤ）＆ＫＤ      （７）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＩＤｓγ＝（ＭＳＤγ＆￣ＨＤ）＆ＫＤを演算して、分離データＩＤｓγを取得する。分離データＩＤｓ１、ＩＤｓ２、ＩＤｓ３、ＩＤｓ４、およびＩＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０１８７】
分離データＭＤｓは、式（８）により取得されることができる。  
ＭＤｓ＝ＭＳＤ＆￣ＫＤ      （８）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＭＤｓγ＝ＭＳＤγ＆￣ＫＤを演算して、分離データＭＤｓγを取得する。分離データＭＤｓ１、ＭＤｓ２、ＭＤｓ３、ＭＤｓ４、およびｖＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０１８８】
δがＣ、Ｇ、Ｉ、およびＭの各々のケースについて、分離データδＤｓ１、δＤｓ２、δＤｓ３、δＤｓ４、およびδＤｓ５の順で、リード電圧Ｖδ１とリード電圧Ｖδ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データ（または“０”データ）ビット数が増加する。このため、分離データδＤｓ１〜δＤｓ５は、選択セルユニットＣＵ中でリード電圧Ｖδ２〜Ｖδ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０１８９】
＜１．２．２．２．３．ビットカウントおよびシフト境界リード電圧割り出し＞
メモリコントローラ２は、図１７を参照して記述された処理を、分離データＣＤｓ１〜ＣＤｓ５の組、分離データＧＤｓ１〜ＧＤｓ５の組、分離データＩＤｓ１〜ＩＤｓ５の組、および分離データＭＤｓ１〜ＭＤｓ５の組に対して行う。この結果、シフト境界リード電圧ＶＡＳが決定さるのと同様に、シフト境界リード電圧ＶＣＳ、ＶＧＳ、ＶＩＳ、およびＶＭＳが決定されることができる。
【０１９０】
＜１．２．２．３．選択ページがアッパーページの場合＞
図２０は、第１実施形態でアッパーページが選択される場合のステップＳ５のサブフローを示す。図２０に示されるように、ステップＳ４のＮｏ分岐は、ステップＳ５３０１に継続する。アッパーページが選択される場合のシフト境界リード電圧の割り出しは、ロワーページが選択される場合のシフト境界リード電圧の割り出しと大きな流れは同じである。よって、以下、図１０の処理と相違する点が主に記述される。
【０１９１】
メモリコントローラ２は、ステップＳ５３０１からステップＳ５３０４によって、ＥリードデータＥＤ、およびＫリードデータＫＤを取得する。ステップＳ５３０１およびＳ５３０２は、図１０のステップＳ５１０３およびＳ５１０４とそれぞれ同じである。ステップＳ５３０３では、ステップＳ５３０１でのＥリードに代えて、Ｋリードが指示される。ステップＳ５３０４では、ステップＳ５３０２でのＥリードの実行およびＥリードデータＥＤの送信にそれぞれ代えて、Ｋリードが実行され、ＫリードデータＫＤが送信される。
【０１９２】
メモリコントローラ２は、ステップＳ５３１１からのステップＳ５３１５によって、図１０のステップＳ５１１１からステップＳ５１１５と同じく、Ｚ回のシフトリードを行う。各シフトリードでのシフト量ΔＶＢ、ΔＶＨ、およびΔＶＮは、別のシフトリードでのシフト量ΔＶＢ、ΔＶＨ、およびΔＶＮとは相違する。
【０１９３】
ステップＳ５３１１において、メモリコントローラ２は、図１０のステップＳ５１１１と同じく、ｚを１に設定する。
【０１９４】
ステップＳ５３１２は、図１０のステップＳ５１１２に類似する。ステップＳ５３１２において、メモリコントローラ２は、選択セルユニットＣＵに対する第ｚループでのシフトリード電圧を使用したアッパーページリード（アッパーページシフトリード）ＵＳＲｚを指示する。アッパーページシフトリードＵＳＲｚでは、シフト量ΔＶＢｚ、ΔＶＨｚ、およびΔＶＮｚが指定される。
【０１９５】
ステップＳ５３１３は、図１０のステップＳ５１１３に類似する。ステップＳ５３１３において、半導体メモリ１は、シフト量ΔＶＢｚ、ΔＶＨｚ、およびΔＶＮｚを使用して、選択セルユニットＣＵに対してアッパーページシフトリードＵＳＲｚを行う。すなわち、半導体メモリ１は、リード電圧ＶＢ、ＶＨ、およびＶＮに代えて、シフトリード電圧ＶＢｚ、ＶＨｚ、およびＶＮｚを使用してアッパーページリードを行う。シフトリード電圧ＶＢｚはＶＢ＋ΔＶＢｚである。シフトリード電圧ＶＨｚはＶＨ＋ΔＶＨｚである。シフトリード電圧ＶＮｚはＶＮ＋ΔＶＮｚである。アッパーページシフトリードＵＳＲｚによって得られるデータは、アッパーページシフトリードデータＵＳＤｚと称される。
【０１９６】
ステップＳ５３１４およびＳ５３１５は、図１０のステップＳ５１１４およびＳ５１１５とそれぞれ同じである。ｚ＝Ｚでない場合（ステップＳ５３１４のＮｏ分岐）、ステップＳ５３１５においてメモリコントローラ２はｚ＝ｚ＋１とし、処理はステップＳ５３１２に戻る。ｚ＝Ｚである場合（Ｙｅｓ分岐）、処理はステップＳ５３２１に移行する。ステップＳ５３２１への移行の時点で、メモリコントローラ２は、アッパーページシフトリードデータＵＳＤ１、ＵＳＤ２、ＵＳＤ３、ＵＳＤ４、およびＵＳＤ５を保持している。
【０１９７】
ステップＳ５３２１は図１０のステップＳ５１２１に類似する。ステップＳ５３２１において、メモリコントローラ２は、ステップＳ５１２１と同様にして、アッパーページシフトリードデータＵＳＤ１〜ＵＳＤ５の或るビットを、ＥリードデータＥＤ、およびＫリードデータＫＤを用いてマスクする。そのために、メモリコントローラ２は、ＥリードデータＥＤ、ＫリードデータＫＤ、およびアッパーページシフトリードデータＵＳＤ１〜ＵＳＤ５を用いた論理演算を行う。論理演算により、分離データＢＤｓ（ＢＤｓ１、ＢＤｓ２、ＢＤｓ３、ＢＤｓ４、およびＢＤｓ５）、ＨＤｓ（ＨＤｓ１、ＨＤｓ２、ＨＤｓ３、ＨＤｓ４、およびＨＤｓ５）、ならびにＮＤｓ（ＮＤｓ１、ＮＤｓ２、ＮＤｓ３、ＮＤｓ４、およびＮＤｓ５）が取得される。分離データＢＤｓｚ、ＨＤｓｚ、およびＮＤｓｚは、アッパーページシフトデータのＵＳＤｚの一部からなる。分離データＢＤｓ、ＨＤｓ、およびＮＤｓの取得の方法は後述される。メモリコントローラ２は、取得された分離データＢＤｓ、ＨＤｓ、およびＮＤｓをＲＡＭ２３において保持する。
【０１９８】
ステップＳ５３２２は、図１０のステップＳ５１２２に類似する。ステップＳ５３２２において、メモリコントローラ２は、ステップＳ５１２２と同様にして、分離データＢＤｓ、ＨＤｓ、およびＮＤｓを用いて、複数のビット数ＢＣＢ１、ＢＣＢ２、ＢＣＢ３、ＢＣＢ４、ＢＣＢ５、ＢＣＨ１、ＢＣＨ２、ＢＣＨ３、ＢＣＨ４、ＢＣＨ５、ＢＣＮ１、ＢＣＮ２、ＢＣＮ３、ＢＣＮ４、およびＢＣＮ５を算出する。
【０１９９】
ステップＳ５３２３は、図１０のステップＳ５１２３に類似する。ステップＳ５３２３において、メモリコントローラ２は、ステップＳ５１２３と同様にして、ビット数ＢＣＢ１、ＢＣＢ２、ＢＣＢ３、ＢＣＢ４、ＢＣＢ５、ＢＣＨ１、ＢＣＨ２、ＢＣＨ３、ＢＣＨ４、ＢＣＨ５、ＢＣＮ１、ＢＣＮ２、ＢＣＮ３、ＢＣＮ４、およびＢＣＮ５を用いて、シフト境界リード電圧ＶＢＳ、ＶＨＳ、およびＶＮＳを決定する。
【０２００】
次いで、メモリコントローラ２は、シフト量ΔＶＢＳ、ΔＶＨＳ、およびΔＶＮＳを算出する。シフト量ΔＶＢＳは、ＶＢＳ−ＶＢである。シフト量ΔＶＨＳは、ＶＨＳ−ＶＨである。シフト量ΔＶＮＳは、ＶＮＳ−ＶＮである。
【０２０１】
ステップＳ５３２３は、ステップＳ６に継続する。ステップＳ６がステップＳ５３２３に後続する場合、メモリコントローラ２は、ステップＳ６において、シフト量ΔＶＢＳ、ΔＶＨＳ、およびΔＶＮＳを指定する。
【０２０２】
ステップＳ５３０１およびＳ５３０２の組、ならびにステップＳ５３０３およびＳ５３０４の組は、図２０を参照して記述された順序と異なる順序で、任意の順序で行われることができる。
【０２０３】
また、ステップＳ５３１１、Ｓ５３１２、Ｓ５３１３、Ｓ５３１４、およびＳ５３１５の組が、ステップＳ５３０１、Ｓ５３０２、Ｓ５３０３、およびＳ５３０４の組より前に行われてもよい。この場合、ステップＳ４のＮｏ分岐はステップＳ５３１１に継続し、ステップＳ５３１４のＹｅｓ分岐はステップＳ５３０１に継続し、ステップＳ５３０４はステップＳ５３２１に継続する。
【０２０４】
＜１．２．２．３．１．シフトリード＞
図２１は、第１実施形態でステップＳ５３１２の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【０２０５】
図６を参照して記述されたのと同様に、選択ワード線ＷＬに電圧が印加されている間、例えば、選択ブロックＢＬＫの選択ストリングユニットＳＵと接続された選択ゲート線ＳＧＤＬは電圧ＶＳＧを印加され、非選択のワード線ＷＬは電圧ＶＲＥＡＤを印加されている。
【０２０６】
図２１に示されるように、時刻ｔ３１１から時刻ｔ３１４の間にアッパーページシフトリードＵＳＲ１のための電圧印加が行われ、続く時刻ｔ３２１から時刻ｔ３２４の間にアッパーページシフトリードＵＳＲ２のための電圧印加が行われる。次いで、図示せぬ時刻ｔ３３１から時刻ｔ３３４の間にアッパーページシフトリードＵＳＲ３のための電圧印加が行われ、図示せぬ時刻ｔ３４１から時刻ｔ３４４の間にアッパーページシフトリードＵＳＲ４のための電圧印加が行われる。次いで、時刻ｔ３５１から時刻ｔ３５４の間にアッパーページシフトリードＵＳＲ５のための電圧印加が行われる。
【０２０７】
図１１の例では、ｚ＝１、２、３の各々のケースにおいて、シフト量ΔＶＢｚ、ΔＶＨｚ、およびΔＶＮは負の大きさを有する。
【０２０８】
同様に、γが１以上５以下の自然数の各々のケースについて、時刻ｔ３γ１から時刻ｔ３γ２に亘って選択ワード線ＷＬにリード電圧ＶＢγが印加されて、Ｂγリードが行われる。時刻ｔ３γ２から時刻ｔ３γ３に亘って選択ワード線ＷＬにリード電圧ＶＨγが印加されて、Ｈγリードが行われる。時刻ｔ３γ３から時刻ｔ３γ４に亘って選択ワード線ＷＬにリード電圧ＶＮγが印加されて、Ｎγリードが行われる。
【０２０９】
＜１．２．２．３．２．分離データ演算＞
メモリコントローラ２は、ステップＳ５３２１において、例えば、ＲＡＭ２３上で、以下の論理演算を行って、分離データＢＤｓ、ＨＤｓ、およびＮＤｓを生成する。
【０２１０】
分離データＢＤｓは、式（９）により取得されることができる。
【０２１１】
ＢＤｓ＝ＵＳＤ＆ＥＤ        （９）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＢＤｓγ＝ＵＳＤγ＆ＥＤを演算して、分離データＢＤｓγを取得する。分離データＢＤｓ１、ＢＤｓ２、ＢＤｓ３、ＢＤｓ４、およびＢＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０２１２】
分離データＨＤｓは、式（１０）により取得されることができる。  
ＨＤｓ＝（ＵＳＤ＆￣ＥＤ）＆ＫＤ      （１０）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＨＤｓγ＝（ＵＳＤγ＆￣ＥＤ）＆ＫＤを演算して、分離データＨＤｓγを取得する。分離データＨＤｓ１、ＨＤｓ２、ＨＤｓ３、ＨＤｓ４、およびＨＤｓ５は、互いに相違する数の“１”データのビットを有する。
【０２１３】
分離データＮＤｓは、式（１１）により取得されることができる。  
ＮＤｓ＝ＵＳＤ＆￣ＫＤ      （１１）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＮＤｓγ＝ＵＳＤγ＆￣ＫＤを演算して、分離データＮＤｓγを取得する。分離データＢＤｓ１、ＢＤｓ２、ＢＤｓ３、ＢＤｓ４、およびＢＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０２１４】
δがＢ、Ｈ、およびＮの各々のケースについて、分離データδＤｓ１、δＤｓ２、δＤｓ３、δＤｓ４、およびδＤｓ５の順で、リード電圧Ｖδ１とリード電圧Ｖδ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データ（または“０”データ）のビット数が増加する。このため、分離データδＤｓ１〜δＤｓ５は、選択セルユニットＣＵ中でリード電圧Ｖδ２〜Ｖδ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０２１５】
＜１．２．２．３．３．ビットカウントおよびシフト境界リード電圧割り出し＞
メモリコントローラ２は、図１７を参照して記述された処理を、分離データＢＤｓ１〜ＢＤｓ５の組、分離データＨＤｓ１〜ＨＤｓ５の組、および分離データＭＤｓ１〜ＭＤｓ５の組に対して行う。この結果、シフト境界リード電圧ＶＡＳが決定さるのと同様に、シフト境界リード電圧ＶＢＳ、ＶＨＳ、およびＶＮＳが決定されることができる。
【０２１６】
＜１．２．２．４．選択ページがトップページの場合＞
図２２は、第１実施形態でトップページが選択される場合のステップＳ５のサブフローを示す。図２２に示されるように、ステップＳ４のＮｏ分岐は、ステップＳ５４０１に継続する。トップページが選択される場合のシフト境界リード電圧の割り出しは、ロワーページが選択される場合のシフト境界リード電圧の割り出しと大きな流れは同じである。よって、以下、図１０の処理と相違する点が主に記述される。
【０２１７】
メモリコントローラ２は、ステップＳ５４０１からステップＳ５４０６によって、ＨリードデータＨＤ、ＫリードデータＫＤ、およびＮリードデータＮＤを取得する。ステップＳ５４０１およびＳ５４０２は、図１０のステップＳ５１０５およびＳ５１０６とそれぞれ同じである。ステップＳ５４０３では、ステップＳ５４０１でのＨリードに代えて、Ｋリードが指示される。ステップＳ５４０４では、ステップＳ５４０２でのＨリードの実行およびＨリードデータＨＤの送信にそれぞれ代えて、Ｋリードが実行され、ＫリードデータＫＤが送信される。ステップＳ５４０５では、ステップＳ５４０１でのＨリードに代えて、Ｎリードが指示される。ステップＳ５４０６では、ステップＳ５４０２でのＨリードの実行およびＨリードデータＨＤの送信にそれぞれ代えて、Ｎリードが実行され、ＮリードデータＮＤが送信される。
【０２１８】
メモリコントローラ２は、ステップＳ５４１１からのステップＳ５４１５によって、図１０のステップＳ５１１１からステップＳ５１１５と同じく、Ｚ回のシフトリードを行う。各シフトリードでのシフト量ΔＶＥ、ΔＶＪ、ΔＶＬ、およびΔＶＯは、別のシフトリードでのシフト量ΔＶＥ、ΔＶＪ、ΔＶＬ、およびΔＶＯとは相違する。
【０２１９】
ステップＳ５４１１において、メモリコントローラ２は、図１０のステップＳ５１１１と同じく、ｚを１に設定する。
【０２２０】
ステップＳ５４１２は、図１０のステップＳ５１１２に類似する。ステップＳ５４１２において、メモリコントローラ２は、選択セルユニットＣＵに対する第ｚループでのシフトリード電圧を使用したトップページリード（トップページシフトリード）ＴＳＲｚを指示する。トップページシフトリードＴＳＲｚでは、シフト量ΔＶＥｚ、ΔＶＪｚ、ΔＶＬｚ、およびΔＶＯｚが指定される。
【０２２１】
ステップＳ５４１３は、図１０のステップＳ５１１３に類似する。ステップＳ５４１３において、半導体メモリ１は、シフト量ΔＶＥｚ、ΔＶＪｚ、ΔＶＬｚ、およびΔＶＯｚを使用して、選択セルユニットＣＵに対してトップページシフトリードＴＳＲｚを行う。すなわち、半導体メモリ１は、リード電圧ＶＥ、ＶＪ、ＶＬ、およびＶＯに代えて、シフトリード電圧ＶＥｚ、ＶＪｚ、ＶＬｚ、およびＶＯｚを使用してトップページリードを行う。シフトリード電圧ＶＥｚはＶＥ＋ΔＶＥｚである。シフトリード電圧ＶＪｚはＶＪ＋ΔＶＪｚである。シフトリード電圧ＶＬｚはＶＬ＋ΔＶＬｚである。シフトリード電圧ＶＯｚはＶＯ＋ΔＶＯｚである。トップページシフトリードＴＳＲｚによって得られるデータは、トップページシフトリードデータＴＳＤｚと称される。
【０２２２】
ステップＳ５４１４およびＳ５４１５は、図１０のステップＳ５１１４およびＳ５１１５とそれぞれ同じである。ｚ＝Ｚでない場合（ステップＳ５４１４のＮｏ分岐）、ステップＳ５４１５においてメモリコントローラ２はｚ＝ｚ＋１とし、処理はステップＳ５４１２に戻る。ｚ＝Ｚである場合（Ｙｅｓ分岐）、処理はステップＳ５４２１に移行する。ステップＳ５４２１への移行の時点で、メモリコントローラ２は、トップページシフトリードデータＴＳＤ１、ＴＳＤ２、ＴＳＤ３、ＴＳＤ４、およびＴＳＤ５を保持している。
【０２２３】
ステップＳ５４２１は図１０のステップＳ５１２１に類似する。ステップＳ５４２１において、メモリコントローラ２は、ステップＳ５１２１と同様にして、トップページシフトリードデータＴＳＤ１〜ＴＳＤ５の或るビットを、ＨリードデータＨＤ、ＫリードデータＫＤ、およびＮリードデータＮＤを用いてマスクする。そのために、メモリコントローラ２は、ＨリードデータＨＤ、ＫリードデータＫＤ、ＮリードデータＮＤ、およびトップページシフトリードデータＴＳＤ１〜ＴＳＤ５を用いた論理演算を行う。論理演算により、分離データＥＤｓ（ＥＤｓ１、ＥＤｓ２、ＥＤｓ３、ＥＤｓ４、およびＥＤｓ５）、ＪＤｓ（ＪＤｓ１、ＪＤｓ２、ＪＤｓ３、ＪＤｓ４、およびＪＤｓ５）、ＬＤｓ（ＬＤｓ１、ＬＤｓ２、ＬＤｓ３、ＬＤｓ４、およびＬＤｓ５）、ならびにＯＤｓ（ＯＤｓ１、ＯＤｓ２、ＯＤｓ３、ＯＤｓ４、およびＯＤｓ５）が取得される。分離データＥＤｓｚ、ＪＤｓｚ、ＬＤｓｚ、およびＯＤｓｚは、トップページシフトデータのＴＳＤｚの一部からなる。分離データＥＤｓ、ＪＤｓ、ＬＤｓ、およびＯＤｓの取得の方法は後述される。メモリコントローラ２は、取得された分離データＥＤｓ、ＪＤｓ、ＬＤｓ、およびＯＤｓをＲＡＭ２３において保持する。
【０２２４】
ステップＳ５４２２は、図１０のステップＳ５１２２に類似する。ステップＳ５４２２において、メモリコントローラ２は、ステップＳ５１２２と同様にして、分離データＥＤｓ、ＪＤｓ、ＬＤｓ、およびＯＤｓを用いて、複数のビット数ＢＣＥ１、ＢＣＥ２、ＢＣＥ３、ＢＣＥ４、ＢＣＥ５、ＢＣＪ１、ＢＣＪ２、ＢＣＪ３、ＢＣＪ４、ＢＣＪ５、ＢＣＬ１、ＢＣＬ２、ＢＣＬ３、ＢＣＬ４、ＢＣＬ５、ＢＣＯ１、ＢＣＯ２、ＢＣＯ３、ＢＣＯ４、およびＢＣＯ５を算出する。
【０２２５】
ステップＳ５４２３は、図１０のステップＳ５１２３に類似する。ステップＳ５４２３において、メモリコントローラ２は、ステップＳ５１２３と同様にして、ビット数ＢＣＥ１、ＢＣＥ２、ＢＣＥ３、ＢＣＥ４、ＢＣＥ５、ＢＣＪ１、ＢＣＪ２、ＢＣＪ３、ＢＣＪ４、ＢＣＪ５、ＢＣＬ１、ＢＣＬ２、ＢＣＬ３、ＢＣＬ４、ＢＣＬ５、ＢＣＯ１、ＢＣＯ２、ＢＣＯ３、ＢＣＯ４、およびＢＣＯ５を用いて、シフト境界リード電圧ＶＥＳ、ＶＪＳ、ＶＬＳ、およびＶＯＳを決定する。
【０２２６】
次いで、メモリコントローラ２は、シフト量ΔＶＥＳ、ΔＶＪＳ、ΔＶＬＳ、およびΔＶＯＳを算出する。シフト量ΔＶＥＳは、ＶＥＳ−ＶＥである。シフト量ΔＶＪＳは、ＶＪＳ−ＶＪである。シフト量ΔＶＬＳは、ＶＬＳ−ＶＬである。シフト量ΔＶＯＳは、ＶＯＳ−ＶＯである。
【０２２７】
ステップＳ５４２３は、ステップＳ６に継続する。ステップＳ６がステップＳ５４２３に後続する場合、メモリコントローラ２は、ステップＳ６において、シフト量ΔＶＥＳ、ΔＶＪＳ、ΔＶＬＳ、およびΔＶＯＳを指定する。
【０２２８】
ステップＳ５４０１およびＳ５４０２の組、ステップＳ５４０３およびＳ５４０４の組、ならびにステップＳ５４０５およびＳ５４０６の組は、図２２を参照して記述された順序と異なる任意の順序で行われることができる。
【０２２９】
また、ステップＳ５４１１、Ｓ５４１２、Ｓ５４１３、Ｓ５４１４、およびＳ５４１５の組が、ステップＳ５４０１、Ｓ５４０２、Ｓ５４０３、Ｓ５４０４、Ｓ５４０５、およびＳ５４０６の組より前に行われてもよい。この場合、ステップＳ４のＮｏ分岐はステップＳ５４１１に継続し、ステップＳ５４１４のＹｅｓ分岐はステップＳ５４０１に継続し、ステップＳ５４０６はステップＳ５４２１に継続する。
【０２３０】
＜１．２．２．４．１．シフトリード＞
図２３は、第１実施形態でステップＳ５４１２の間に選択ワード線ＷＬに印加される電圧を時間に沿って示す。
【０２３１】
図６を参照して記述されたのと同様に、選択ワード線ＷＬに電圧が印加されている間、例えば、選択ブロックＢＬＫの選択ストリングユニットＳＵと接続された選択ゲート線ＳＧＤＬは電圧ＶＳＧを印加され、非選択のワード線ＷＬは電圧ＶＲＥＡＤを印加されている。
【０２３２】
図２３に示されるように、時刻ｔ４１１から時刻ｔ４１５の間にトップページシフトリードＴＳＲ１のための電圧印加が行われ、続く時刻ｔ４２１から時刻ｔ４２５の間にトップページシフトリードＴＳＲ２のための電圧印加が行われる。次いで、図示せぬ時刻ｔ４３１から時刻ｔ４３５の間にトップページシフトリードＴＳＲ３のための電圧印加が行われ、図示せぬ時刻ｔ４４１から時刻ｔ４４５の間にトップページシフトリードＴＳＲ４のための電圧印加が行われる。次いで、時刻ｔ４５１から時刻ｔ４５５の間にトップページシフトリードＴＳＲ５のための電圧印加が行われる。
【０２３３】
図２３の例では、ｚ＝１、２、３の各々のケースにおいて、シフト量ΔＶＥｚ、ΔＶＪｚ、ΔＶＬ、およびΔＶＯは負の大きさを有する。
【０２３４】
同様に、γが１以上５以下の自然数の各々のケースについて、時刻ｔ４γ１から時刻ｔ４γ２に亘って選択ワード線ＷＬにリード電圧ＶＥγが印加されて、Ｅγリードが行われる。時刻ｔ４γ２から時刻ｔ４γ３に亘って選択ワード線ＷＬにリード電圧ＶＪγが印加されて、Ｊγリードが行われる。時刻ｔ４γ３から時刻ｔ４γ４に亘って選択ワード線ＷＬにリード電圧ＶＬγが印加されて、Ｌγリードが行われる。時刻ｔ４γ４から時刻ｔ４γ５に亘って選択ワード線ＷＬにリード電圧ＶＯγが印加されて、Ｏγリードが行われる。
【０２３５】
＜１．２．２．４．２．分離データ演算＞
メモリコントローラ２は、ステップＳ５４２１において、例えば、ＲＡＭ２３上で、以下の論理演算を行って、分離データＥＤｓ、ＪＤｓ、ＬＤｓ、およびＯＤｓを生成する。
【０２３６】
分離データＥＤｓは、式（１２）により取得されることができる。
【０２３７】
ＥＤｓ＝ＴＳＤ＆ＨＤ        （１２）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＥＤｓγ＝ＴＳＤγ＆ＨＤを演算して、分離データＥＤｓγを取得する。分離データＥＤｓ１、ＥＤｓ２、ＥＤｓ３、ＥＤｓ４、およびＥＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０２３８】
分離データＪＤｓは、式（１３）により取得されることができる。  
ＪＤｓ＝（ＴＳＤ＆￣ＨＤ）＆ＫＤ      （１３）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＪＤｓγ＝（ＴＳＤγ＆￣ＨＤ）＆ＫＤを演算して、分離データＪＤｓγを取得する。分離データＪＤｓ１、ＪＤｓ２、ＪＤｓ３、ＪＤｓ４、およびＪＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０２３９】
分離データＬＤｓは、式（１４）により取得されることができる。  
ＬＤｓ＝（ＴＳＤ＆￣ＫＤ）＆ＮＤ      （１４）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＬＤｓγ＝（ＴＳＤγ＆￣ＫＤ）＆ＮＤを演算して、分離データＬＤｓγを取得する。分離データＬＤｓ１、ＬＤｓ２、ＬＤｓ３、ＬＤｓ４、およびＬＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０２４０】
分離データＯＤｓは、式（１５）により取得されることができる。  
ＯＤｓ＝ＴＳＤ＆￣ＮＤ      （１５）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＯＤｓγ＝ＴＳＤγ＆￣ＮＤを演算して、分離データＯＤｓγを取得する。分離データＯＤｓ１、ＯＤｓ２、ＯＤｓ３、ＯＤｓ４、およびＯＤｓ５は、互いに相違する数の“１”データ（および“０”データ）のビットを有する。
【０２４１】
δがＥ、Ｊ、Ｌ、およびＯの各々のケースについて、分離データδＤｓ１、δＤｓ２、δＤｓ３、δＤｓ４、およびδＤｓ５の順で、リード電圧Ｖδ１とリード電圧Ｖδ５との間の閾値電圧を有するメモリセルトランジスタＭＴからリードされたビット中の“１”データ（または“０”データ）のビット数が増加する。このため、分離データδＤｓ１〜δＤｓ５は、選択セルユニットＣＵ中でリード電圧Ｖδ２〜Ｖδ５と同じ大きさの閾値電圧を有するメモリセルトランジスタＭＴの数の推定に使用されることができる。
【０２４２】
＜１．２．２．４．３．ビットカウントおよびシフト境界リード電圧割り出し＞
メモリコントローラ２は、図１７を参照して記述された処理を、分離データＥＤｓ１〜ＥＤｓ５の組、分離データＪＤｓ１〜ＪＤｓ５の組、分離データＬＤｓ１〜ＬＤｓ５の組、および分離データＯＤｓ１〜ＯＤｓ５の組に対して行う。この結果、シフト境界リード電圧ＶＡＳが決定さるのと同様に、シフト境界リード電圧ＶＥＳ、ＶＪＳ、ＶＬＳ、およびＶＯＳが決定されることができる。
【０２４３】
＜１．３．利点（効果）＞
第１実施形態によれば、以下に記述されるように、短い時間で必要なシフト境界リード電圧ＶＣＧＲＳが決定されることができる。
【０２４４】
比較のために、或る選択ページからリードされたデータから無誤りデータが取得されない場合、以下に記述されるようなシフト境界リード電圧ＶＣＧＲＳの割り出しが考えられる。すなわち、選択ページについての必要な複数のシフト境界リード電圧ＶＣＧＲＳが個別のトラッキングにより決定される。例えば、図３のようなステートと４ビットの割り当てでロワーページがリードの対象である場合、シフト境界リード電圧ＶＡＳの推定のために、リード電圧ＶＡの近傍の大きさの相違する複数のリード電圧ＶＣＧＲを使用したＺ回（例えば５回）のシングルステートリードが行われる。そして、これらのシングルステートリードにより得られたデータが、半導体メモリからメモリコントローラに送信され、メモリコントローラは、受け取られたデータからシフト境界リード電圧ＶＡＳを決定する。これらのＺ回のシングルステートリード、シングルステートリードデータの半導体メモリからメモリコントローラへの送信、シフト境界リード電圧ＶＣＧＲＳの割り出しが、残りのシフト境界リード電圧ＶＤＳ、ＶＦＳ、およびＶＫＳの割り出しのために必要である。よって、半導体メモリからメモリコントローラに、４×Ｚ（＝２０）回のページサイズのデータの転送が必要である。これは、長い時間を要する。
【０２４５】
他のページの場合も同じであり、ミドルページおよびトップページの場合はいずれも４×Ｚ（＝２０）回で、アッパーページの場合は３×Ｚ（＝１５）回である。
【０２４６】
他のページがリードの対象の場合や、図３と異なる割り当てである場合、必要なデータ転送の回数は異なり得る。しかし、或る第１の割り当てに基づけば、或る第１ページでの回数は少なくても別の第２ページでの回数はその分多い。よって、比較例の方法では、ページからのリードに必要な回数の平均は多い。
【０２４７】
第１実施形態によれば、選択ページの境界リード電圧ＶＣＧＲの全てがシフトされたシフトリードが複数回行われ、シフトリードデータが数回のシングルステートリードの結果に基づいてマスクされ、マスクによって得られた分離データから、シフト境界リード電圧ＶＣＧＲＳが決定される。このため、シフト境界リード電圧ＶＣＧＲＳの推定のために、半導体メモリ１からメモリコントローラ２に１ページサイズのデータが送信される回数は、上記の比較のための例のケースより少ない。最大のページサイズデータ送信回数は、ロワーページ、ミドルページ、トップページのケースであり、３回のシングルステートリードデータの送信、およびＺ回のロワーページシフトリードデータの計３＋Ｚ（＝８）回である。よって、比較例の方法よりも少ないページサイズデータ送信回数で、シフト境界リード電圧ＶＣＧＲＳが決定されることができる。このため、比較例の方法よりも短い時間でシフト境界リード電圧ＶＣＧＲＳが決定されることができる。
【０２４８】
＜１．４．変形例＞
式（１）〜（１５）は、論理演算の例である。上記された特徴の分離データが得られる限り、任意の論理演算が使用されることができる。
【０２４９】
＜第２実施形態＞
第２実施形態は、第１実施形態に類似し、第１実施形態と同様のシフト境界リード電圧ＶＣＧＲＳの割り出しが選択セルユニットＣＵの全４ページに対してまとめて行われる例に関する。
【０２５０】
＜２．１．構造（構成）＞
第２実施形態のメモリシステム５は、第１実施形態のメモリシステム５と同じ要素および接続を有する。一方、第２実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されており、具体的には、ＲＯＭ２４中のファームウェアがメモリコントローラ２に以下に記述される動作を行わせるように構成されている。
【０２５１】
＜２．２．動作＞
図２４は、第２実施形態のメモリシステムの或る動作のフローを示す。特に、図２４は、１つの選択セルユニットＣＵ中の全４ページの全てのシフト境界リード電圧ＶＣＧＲＳの推定のフローを示す。図２４のフローは、例えば、選択セルユニットＣＵの全ページからのリードが予定されていて、選択セルユニットのＣＵの１つのページからのリードで無誤りデータが得られなかった場合に行われることができる。すなわち、図２４のフローは、例えば、第１実施形態の図５が、選択セルユニットＣＵの４つのページからのリードが予定されている場合のステップＳ５のサブフローとして行われることができる。
【０２５２】
図２４および図２５に示されるように、メモリコントローラ２は、ステップＳ１１からステップＳ２０によって、ＢリードデータＢＤ、ＥリードデータＥＤ、ＨリードデータＨＤ、ＮリードデータＮＤ、およびＫリードデータＫＤを取得する。Ｓ１１、Ｓ１２、Ｓ１３、Ｓ１４、Ｓ１５、およびＳ１６は、それぞれ、図１０のステップＳ５１０１、Ｓ５１０２、Ｓ５１０３、Ｓ５１０４、Ｓ５１０５、およびＳ５１０６と同じである。ステップＳ１７では、ステップＳ１１でのＢリードに代えて、Ｋリードが指示される。ステップＳ１８では、ステップＳ１２でのＢリードの実行およびＢリードデータＢＤの送信にそれぞれ代えて、Ｋリードが実行され、ＫリードデータＫＤが送信される。ステップＳ１９では、ステップＳ１１でのＢリードに代えて、Ｎリードが指示される。ステップＳ２０では、ステップＳ１２でのＢリードの実行およびＢリードデータＢＤの送信にそれぞれ代えて、Ｎリードが実行され、ＮリードデータＮＤが送信される。
【０２５３】
メモリコントローラ２は、全ての選択ページについて、ステップＳ２１からステップＳ２８によって、図１０のステップＳ５１１１からステップＳ５１１４と同じく、Ｚ回のシフトリードを行う。各選択ページに対するシフトリードは、任意の順番で行われることができる。一例が以下に記述される。
【０２５４】
ステップＳ２１において、メモリコントローラ２は、パラメータｔを１に設定する。ｔは、シフトリードの対象のページを指定する。例えば、ｔが１、２、３、および４の間、シフトリードは、ロワーページ、ミドルページ、アッパーページ、トップページに対して行われる。
【０２５５】
ステップＳ２２、Ｓ２３、およびＳ２４は、それぞれ、図１０のステップＳ５１１１、Ｓ５１１２、およびＳ５１１３に類似する。異なるのは、ステップＳ２３において、どのページが選択されているかに応じた境界リードのためのシフト量ΔＶＸｚが指定されることと、ステップＳ２４において、選択中のページのシフトリードが実行されることである。ロワー、ミドル、アッパー、およびトップページが選択されている間のステップＳ２３は、それぞれ、図１０のステップＳ５１１２、図１８のステップＳ５２１２、図２０のステップＳ５３１２、および図２２のステップＳ５４１２と同じである。ロワー、ミドル、アッパー、およびトップページが選択されている間のステップＳ２４は、それぞれ、図１０のステップＳ５１１３、図１８のステップＳ５２１３、図２０のステップＳ５３１３、および図２２のステップＳ５４１３と同じである。
【０２５６】
ステップＳ２６およびＳ２７は、図１０のステップＳ５１１４およびＳ５１１５とそれぞれ同じである。ｚ＝Ｚでない場合、ステップＳ２７においてメモリコントローラ２はｚ＝ｚ＋１とし、処理はステップＳ２３に戻る。ｚ＝Ｚである場合、処理はステップＳ２８に移行する。
【０２５７】
ステップＳ２８において、メモリコントローラ２は、ｔが最大値Ｔであるかを判断する。Ｔは４である。ｔ＝Ｔでない場合（Ｎｏ分岐）、ステップＳ２９においてメモリコントローラ２はｔ＝ｔ＋１とし、処理はステップＳ２２に移行する。ｔ＝Ｔである場合（Ｙｅｓ分岐）、処理はステップＳ３１に移行する。ステップＳ３１への移行の時点で、メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ロワーページシフトリードデータＬＳＤγ、ミドルページシフトリードデータＭＳＤγ、アッパーページシフトリードデータＵＳＤγ、およびトップページシフトリードデータＴＳＤγを保持している。
【０２５８】
ステップＳ３１は図１０のステップＳ５１２１に類似する。ステップＳ３１において、メモリコントローラ２は、図１０のステップＳ５１２１、図１８のステップＳ５２２１、図２０のステップＳ５３２１、および図２２のステップＳ５４２１を行う。この結果、γが１から５の自然数の各々のケースについて、分離データＡＤｓγ、ＢＤｓγ、ＣＤｓγ、ＤＤｓγ、ＥＤｓγ、ＦＤｓγ、ＧＤｓγ、ＨＤｓγ、ＩＤｓγ、ＪＤｓγ、ＫＤｓγ、ＬＤｓγ、ＭＤｓγ、ＮＤｓγ、およびＯＤｓγが取得される。分離データＡＤｓγ、ＢＤｓγ、ＣＤｓγ、ＤＤｓγ、ＥＤｓγ、ＦＤｓγ、ＧＤｓγ、ＨＤｓγ、ＩＤｓγ、ＪＤｓγ、ＫＤｓγ、ＬＤｓγ、ＭＤｓγ、ＮＤｓγ、およびＯＤｓγは、任意の順番で演算されることができる。
【０２５９】
ステップＳ３２は図１０のステップＳ５１２１に類似する。ステップＳ３２において、メモリコントローラ２は、図１０のステップＳ５１２２、図１８のステップＳ５２２２、図２０のステップＳ５３２２、および図２２のステップＳ５４２２を行う。この結果、γが１から５の自然数の各々のケースについて、ビット数ＢＣＡγ、ＢＣＢγ、ＢＣＣγ、ＢＣＤγ、ＢＣＥγ、ＢＣＦγ、ＢＣＧγ、ＢＣＨγ、ＢＣＩγ、ＢＣＪγ、ＢＣＫγ、ＢＣＬγ、およびＢＣＯγが算出される。
【０２６０】
ステップＳ３３は図１０のステップＳ５１２３に類似する。ステップＳ３３において、メモリコントローラ２は、図１０のステップＳ５１２３、図１８のステップＳ５２２３、図２０のステップＳ５３２３、および図２２のステップＳ５４２３を行う。この結果、シフト境界リード電圧ＶＡＳ、ＶＢＳ、ＶＣＳ、ＶＤＳ、ＶＥＳ、ＶＦＳ、ＶＧＳ、ＶＨＳ、ＶＩＳ、ＶＪＳ、ＶＫＳ、ＶＬＳ、ＶＭＳ、ＶＮＳ、およびＶＯＳが決定される。
【０２６１】
この後、シフト境界リード電圧ＶＡＳ、ＶＤＳ、ＶＦＳ、およびＶＫＳを指定したロワーページシフトリード、シフト境界リード電圧ＶＣＳ、ＶＧＳ、ＶＩＳ、およびＶＭＳを指定したミドルページシフトリード、シフト境界リード電圧ＶＢＳ、ＶＨＳ、およびＶＮＳを指定したアッパーページシフトリード、シフト境界リード電圧ＶＥＳ、ＶＪＳ、ＶＬＳ、およびＶＯＳを指定したトップページシフトリードが行われることができる。
【０２６２】
第２実施形態によれば、第１実施形態と同じく、選択ストリングユニットＳＵの境界リード電圧ＶＣＧＲの全てがシフトされたシフトリードが複数回行われ、シフトリードデータが数回のシングルステートリードの結果に基づいてマスクされ、マスクによって得られた分離データから、シフト境界リード電圧ＶＣＧＲＳが決定される。このため、第１実施形態と同じ利点を得られる。
【０２６３】
＜第３実施形態＞
第３実施形態は、第２実施形態に類似し、選択セルユニットＣＵの全４ページからのシフトリードデータの取得の方法において第２実施形態と異なる。
【０２６４】
＜３．１．構造（構成）＞
第３実施形態のメモリシステム５は、第１実施形態のメモリシステム５と同じ要素および接続を有する。一方、第３実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されている。
【０２６５】
＜３．２．動作＞
図２６は、第３実施形態のメモリシステムの或る動作のフローを示す。特に、図２６は、１つの選択セルユニットＣＵ中の全４ページの全てのシフト境界リード電圧ＶＣＧＲＳの推定のフローを示す。図２６のフローは、第２実施形態と同じく、例えば、選択セルユニットＣＵの全ページからのリードが予定されていて、選択セルユニットのＣＵの１つのページからのリードで無誤りデータが得られなかった場合に行われることができる。
【０２６６】
図２６のフローは、第２実施形態の図２５のフローでのステップＳ２１、Ｓ２２、Ｓ２３、Ｓ２４、Ｓ２５、Ｓ２６、Ｓ２７、Ｓ２８、およびＳ２９に代えて、ステップＳ４１、Ｓ４２、Ｓ４３、およびＳ４４を含む。
【０２６７】
ステップＳ４１において、メモリコントローラ２は、選択セルユニットＣＵに対する第ｚループでのシフトリード電圧を使用したシーケンシャルリード（シフトシーケンシャルリード）ＳＳＲｚを指示する。シフトシーケンシャルリードＳＳＲｚでは、シフト量ΔＶＡｚ、ΔＶＢｚ、ΔＶＣｚ、ΔＶＤｚ、ΔＶＥｚ、ΔＶＦｚ、ΔＶＧｚ、ΔＶＨｚ、ΔＶＩｚ、ΔＶＪｚ、ΔＶＫｚ、ΔＶＬｚ、ΔＶＭｚ、ΔＶＮｚ、およびΔＶＯｚが指定される。
【０２６８】
ステップＳ４２において、半導体メモリ１は、シフト量ΔＶＡｚ、ΔＶＢｚ、ΔＶＣｚ、ΔＶＤｚ、ΔＶＥｚ、ΔＶＦｚ、ΔＶＧｚ、ΔＶＨｚ、ΔＶＩｚ、ΔＶＪｚ、ΔＶＫｚ、ΔＶＬｚ、ΔＶＭｚ、ΔＶＮｚ、およびΔＶＯｚを使用して、選択セルユニットＣＵに対してシフトシーケンシャルリードＳＳＲｚを行う。シフトシーケンシャルリードＳＳＲｚについては、後述される。シフトシーケンシャルリードＳＳＲｚの結果、ロワーページシフトリードデータＬＳＤｚ、ミドルページシフトリードデータＭＳＤｚ、アッパーページシフトリードデータＵＳＤｚ、およびトップページシフトリードデータＴＳＤｚが得られる。
【０２６９】
ステップＳ４３およびＳ４４は、それぞれ、図１０のステップＳ５１１４およびＳ５１１５と同じである。ｚ＝Ｚでない場合（ステップＳ４３のＮｏ分岐）、ステップＳ４４においてメモリコントローラ２はｚ＝ｚ＋１とし、処理はステップＳ４１に戻る。ｚ＝Ｚである場合（Ｙｅｓ分岐）、処理はステップＳ３１に移行する。
【０２７０】
図２７は、第３実施形態の半導体メモリ１での或る動作の間の選択ワード線ＷＬに印加される電圧を時間に沿って示し、第１ループのときの図２６のステップＳ４２、すなわち、シフトシーケンシャルリードＳＳＲ１の間の電圧を示す。
【０２７１】
図２７に示されるように、時刻ｔ１から時刻ｔ２の間に、選択ワード線ＷＬにリード電圧ＶＡ１、ＶＢ１、ＶＣ１、ＶＤ１、ＶＥ１、ＶＦ１、ＶＧ１、ＶＨ１、ＶＩ１、ＶＪ１、ＶＫ１、ＶＬ１、ＶＭ１、ＶＮ１、およびＶＯ１がこの順に印加される。リード電圧ＶＡ１、ＶＢ１、ＶＣ１、ＶＤ１、ＶＥ１、ＶＦ１、ＶＧ１、ＶＨ１、ＶＩ１、ＶＪ１、ＶＫ１、ＶＬ１、ＶＭ１、ＶＮ１、およびＶＯ１が印加されている間に、それぞれ、Ａ１リード、Ｂ１リード、Ｃ１リード、Ｄ１リード、Ｅ１リード、Ｆ１リード、Ｇ１リード、Ｈ１リード、Ｉ１リード、Ｊ１リード、Ｋ１リード、Ｌ１リード、Ｍ１リード、Ｎ１リード、およびＯ１リードが行われる。この結果、Ａ１リードデータ、Ｂ１リードデータ、Ｃ１リードデータ、Ｄ１リードデータ、Ｅ１リードデータ、Ｆ１リードデータ、Ｇ１リードデータ、Ｈ１リードデータ、Ｉ１リードデータ、Ｊ１リードデータ、Ｋ１リードデータ、Ｌ１リードデータ、Ｍ１リードデータ、Ｎ１リードデータ、およびＯ１リードデータが得られる。Ａ１リードデータ、Ｂ１リードデータ、Ｃ１リードデータ、Ｄ１リードデータ、Ｅ１リードデータ、Ｆ１リードデータ、Ｇ１リードデータ、Ｈ１リードデータ、Ｉ１リードデータ、Ｊ１リードデータ、Ｋ１リードデータ、Ｌ１リードデータ、Ｍ１リードデータ、Ｎ１リードデータ、およびＯ１リードデータが得られる。
【０２７２】
次いで、半導体メモリ１は、Ａ１リードデータ、Ｂ１リードデータ、Ｃ１リードデータ、Ｄ１リードデータ、Ｅ１リードデータ、Ｆ１リードデータ、Ｇ１リードデータ、Ｈ１リードデータ、Ｉ１リードデータ、Ｊ１リードデータ、Ｋ１リードデータ、Ｌ１リードデータ、Ｍ１リードデータ、Ｎ１リードデータ、およびＯ１リードデータの論理演算によって、ロワーページシフトリードデータＬＳＤ１、ミドルページシフトリードデータＭＳＤ１、アッパーページシフトリードデータＵＳＤ１、およびトップページシフトリードデータＴＳＤ１が取得される。シフトシーケンシャルリードＳＳＲ１〜ＳＳＲ５についても同様であり、シフトシーケンシャルリードＳＳＲｚでは、シフトリード電圧ＶＡｚ、ＶＢｚ、ＶＣｚ、ＶＤｚ、ＶＥｚ、ＶＦｚ、ＶＧｚ、ＶＨｚ、ＶＩｚ、ＶＪｚ、ＶＫｚ、ＶＬｚ、ＶＭｚ、ＶＮｚ、およびＶＯｚがこの順に印加される。
【０２７３】
第３実施形態によれば、第１実施形態と同じく、シフトリードデータが数回のシングルステートリードの結果に基づいてマスクされ、マスクによって得られた分離データから、シフト境界リード電圧が推定される。このため、第１実施形態と同じ利点を得られる。
【０２７４】
また、第３実施形態によれば、シフトシーケンシャルリードによって、１つのセルユニットＣＵの４ページ全てのシフト境界リード電圧ＶＣＧＲＳが推定される。このため、同じく或るセルユニットＣＵの４ページの全てのシフト境界リード電圧ＶＣＧＲＳが推定される場合、第１実施形態よりも短時間で推定が完了することができる。
【０２７５】
（第４実施形態）
第４実施形態は、分離データの生成の方法およびシフト境界リード電圧ＶＣＧＲＳ決定の方法において、第１実施形態と異なる。具体的には、第４実施形態は、図５のステップＳ５のサブフローの点で第１実施形態と異なる。
【０２７６】
＜４．１．構造（構成）＞
第４実施形態のメモリシステム５は、第１実施形態のメモリシステム５と同じ要素および接続を有する。一方、第４実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されている。
【０２７７】
＜４．２．動作＞
メモリコントローラ２は、各ページサイズの書き込みデータを、データのランダマイズを経て生成する。ランダマイズは、ページサイズのデータ中のビットの各値の出現頻度および各値の並びの偏りが均等になるようにデータを生成することを指す。この結果、ページサイズのデータにおいて、“１”データの数と“０”データの数はほぼ等しく、かつ、“１”データのビットはほぼ均等に分布し、“０”データのビットもほぼ均等に分布する。
【０２７８】
このような、ランダマイズされたデータが半導体メモリ１に書き込まれることにより、各選択メモリセルトランジスタＭＴに保持される４つのビットにおいても、“１”データビットの数と“０”データビットの数はほぼ等しく、“１”データビット数と“０”データビット数も全選択メモリセルトランジスタＭＴに亘って均等である。すなわち、書き込まれた各セルユニットＣＵ中のＥｒステート〜ＯステートのメモリセルトランジスタＭＴの数はほぼ等しい。書き込まれた各セルユニットＣＵにおいて、Ｅｒステート〜ＯステートのいずれのステートのメモリセルトランジスタＭＴの数もｐ／１６である。ｐは、１セルユニットＣＵ中のメモリセルトランジスタＭＴの数であることに留意されたい。
【０２７９】
＜４．２．１．リード電圧推定＞
ステップＳ５のフローは、ロワーページ、ミドルページ、アッパーページ、およびトップページのいずれが選択されるかに基づいて相違する。まず、図２８を参照して、選択ページがロワーページである場合について記述される。
【０２８０】
＜４．２．１．１．選択ページがロワーページの場合＞
＜４．２．１．１．１．リード電圧推定＞
図２８は、第４実施形態のメモリシステムの或る動作のフローを示し、図５のステップＳ５のサブフローを示す。図２８に示されるように、ステップＳ５１１４のＮｏ分岐は、ステップＳ５１に継続する。
【０２８１】
ステップＳ５１において、メモリコントローラ２は、第１実施形態の図１０のステップＳ５１２１と同様に、ロワーページシフトリードデータＬＳＤ１〜ＬＳＤ５の或るビットを、ＢリードデータＢＤ、ＥリードデータＥＤ、およびＨリードデータＨＤを用いてマスクする。そのために、メモリコントローラ２は、ＢリードデータＢＤ、ＥリードデータＥＤ、ＨリードデータＨＤ、およびロワーページシフトリードデータＬＳＤ１〜ＬＳＤ５を用いた論理演算を行う。論理演算により、分離データＡＤｒ（ＡＤｒ１、ＡＤｒ２、ＡＤｒ３、ＡＤｒ４、およびＡＤｒ５）、ＤＤｒ（ＤＤｒ１、ＤＤｒ２、ＤＤｒ３、ＤＤｒ４、およびＤＤｒ５）、ＦＤｒ（ＦＤｒ１、ＦＤｒ２、ＦＤｒ３、ＦＤｒ４、およびＦＤｒ５）、ならびにＫＤｒ（ＫＤｒ１、ＫＤｒ２、ＫＤｒ３、ＫＤｒ４、およびＫＤｒ５）が取得される。論理演算は、第１実施形態での論理演算と異なっており、後述される。
【０２８２】
ステップＳ５２において、メモリコントローラ２は、分離データＡＤｒ、ＤＤｒ、ＦＤｒ、およびＫＤｒを用いて、複数のビット数ＯＣＡ（ＯＣＡ１、ＯＣＡ２、ＯＣＡ３、ＯＣＡ４、およびＯＣＡ５）、ＯＣＤ（ＯＣＤ１、ＯＣＤ２、ＯＣＤ３、ＯＣＤ４、およびＯＣＤ５）、ＯＣＦ（ＯＣＦ１、ＯＣＦ２、ＯＣＦ３、ＯＣＦ４、およびＯＣＦ５）、ならびにＯＣＫ（ＯＣＫ１、ＯＣＫ２、ＯＣＫ３、ＯＣＫ４、およびＯＣＫ５）を算出する。ＯＣＡ１、ＯＣＡ２、ＯＣＡ３、ＯＣＡ４、ＯＣＡ５、ＯＣＤ１、ＯＣＤ２、ＯＣＤ３、ＯＣＤ４、ＯＣＤ５、ＯＣＦ１、ＯＣＦ２、ＯＣＦ３、ＯＣＦ４、ＯＣＦ５、ＯＣＫ１、ＯＣＫ２、ＯＣＫ３、ＯＣＫ４、およびＯＣＫ５は、それぞれ、分離データＡＤｒ１、ＡＤｒ２、ＡＤｒ３、ＡＤｒ４、ＡＤｒ５、ＤＤｒ１、ＤＤｒ２、ＤＤｒ３、ＤＤｒ４、ＤＤｒ５、ＦＤｒ１、ＦＤｒ２、ＦＤｒ３、ＦＤｒ４、ＦＤｒ５、ＫＤｒ１、ＫＤｒ２、ＫＤｒ３、ＫＤｒ４、およびＫＤｒ５中の“１”データビットの数である。
【０２８３】
ステップＳ５３において、メモリコントローラ２は、“１”データビット数ＯＣＡ１、ＯＣＡ２、ＯＣＡ３、ＯＣＡ４、およびＯＣＡ５を用いて、シフト境界リード電圧ＶＡＳとして選択され得る電圧に対応する谷（極小）位置の候補を検出する。検出の方法は後述される。同様に、メモリコントローラ２は、“１”データビット数ＯＣＤ１、ＯＣＤ２、ＯＣＤ３、ＯＣＤ４、およびＯＣＤ５を用いて、シフト境界リード電圧ＶＤＳのために選択され得る谷位置の候補を検出する。メモリコントローラ２は、“１”データビット数ＯＣＦ１、ＯＣＦ２、ＯＣＦ３、ＯＣＦ４、およびＯＣＦ５を用いて、シフト境界リード電圧ＶＦＳのために選択され得る谷位置の候補を検出する。メモリコントローラ２は、“１”データビット数ＯＣＫ１、ＯＣＫ２、ＯＣＫ３、ＯＣＫ４、およびＯＣＫ５を用いて、リード電圧ＶＫＳのために選択され得る谷位置の候補を検出する。
【０２８４】
ステップＳ５４において、メモリコントローラ２は、シフト境界リード電圧ＶＡＳのために検出された複数の谷位置候補の中から、使用される谷位置を選択する。谷位置の選択の方法は後述される。選択された谷位置に相当するリード電圧ＶＣＧＲがシフト境界リード電圧ＶＡＳとして使用される。同様に、メモリコントローラ２は、シフト境界リード電圧ＶＤＳのために検出された複数の谷位置候補の中から、使用される谷位置を選択し、シフト境界リード電圧ＶＤＳを決定する。メモリコントローラ２は、シフト境界リード電圧ＶＦＳのために検出された複数の谷位置候補の中から、使用される谷位置を選択し、シフト境界リード電圧ＶＦＳを決定する。メモリコントローラ２は、シフト境界リード電圧ＶＫＳのために検出された複数の谷位置候補の中から、使用される谷位置を選択し、シフトリード電圧ＶＫＳを決定する。
【０２８５】
＜４．２．１．１．２．分離データ演算＞
分離データＡＤｒは、式（１６）により取得されることができる。
【０２８６】
ＡＤｒ＝ＬＳＤ＆ＢＤ        （１６）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＡＤｒγ＝ＬＳＤγ＆ＢＤを演算して、分離データＡＤｒγを取得する。分離データＡＤｒγは、リード電圧ＶＡγ未満の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“１”データを有し、リード電圧ＶＡγ以上の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“０”データを有する。
【０２８７】
分離データＤＤｒは、式（１７）により取得されることができる。  
ＤＤｒ＝（￣ＬＳＤ｜ＢＤ）＆ＥＤ        （１７）
演算子“｜”は、その両側の２つのオペランドに対する論理和演算を意味する。
【０２８８】
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＤＤｒγ＝（￣ＬＳＤγ｜ＢＤ）＆ＥＤを演算して、分離データＤＤｒγを取得する。
【０２８９】
図２９は、第４実施形態でステップＳ５１によって得られるデータの例を示す。図２９は、分離データＤＤｒの例を示す。図２９に示されるように、分離データＤＤｒγは、リード電圧ＶＤγ未満の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“１”データを有し、リード電圧ＶＤγ以上の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“０”データを有する。
【０２９０】
分離データＦＤｒは、式（１８）により取得されることができる。  
ＦＤｒ＝（ＬＳＤ｜ＥＤ）＆ＨＤ        （１８）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＦＤｒγ＝（ＬＳＤγ｜ＥＤ）＆ＨＤを演算して、分離データＦＤｒγを取得する。
【０２９１】
分離データＫＤｒは、式（１９）により取得されることができる。  
ＫＤｒ＝￣ＬＳＤ｜ＨＤ        （１９）
メモリコントローラ２は、γが１から５の自然数の各々のケースについて、ＫＤｒγ＝￣ＬＳＤγ｜ＨＤを演算して、分離データＫＤｒγを取得する。
【０２９２】
分離データＡＤｒおよびＤＤｒと同じく、γが１から５の自然数の各々のケースとδがＦおよびＫの各々のケースの全ての組合せについて、分離データδＤｒγは、リード電圧Ｖδγ未満の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“１”データを有し、リード電圧ＶＤγ以上の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“０”データを有する。
【０２９３】
＜４．２．１．２．選択ページがロワーページ以外の場合＞
＜４．２．１．２．１．リード電圧推定＞
ミドルページ、アッパーページ、またはトップページが選択される場合のフローは、図２８を参照して記述されたフローと同様である。相違するのは、ステップＳ５１０１〜Ｓ５１０６で実行されるシングルステートリード、ステップＳ５１１２およびＳ５１１３で実行されるシフトリード、およびステップＳ５１での分離データの演算である。また、ステップＳ５３およびＳ５４で、選択ページに対応するシフト境界リード電圧ＶＣＧＲＳのための谷位置候補の検出および谷位置の選択が行われる。
【０２９４】
ミドルページが選択される場合、ステップＳ５１０１〜Ｓ５１０６でのＢリード、Ｅリード、およびＨリードに代えて、Ｅリード、Ｈリード、およびＫリードが行われて、ＥリードデータＥＤ、ＨリードデータＨＤ、およびＫリードデータＫＤが取得される。ステップＳ５１１２およびＳ５１１３でのシフトリード電圧ＶＡｚ、ＶＤｚ、ＶＦｚ、およびＶＫｚを使用したロワーページシフトリードに代えて、シフトリード電圧ＶＣｚ、ＶＧｚ、ＶＩｚ、およびＶＭｚを使用してミドルページシフトリードが行われる。
【０２９５】
アッパーページが選択される場合、ステップＳ５１０１〜Ｓ５１０６でのＢリード、Ｅリード、およびＨリードに代えて、ＥリードおよびＫリードが行われて、ＥリードデータＥＤおよびＫリードデータＫＤが取得される。ステップＳ５１１２およびＳ５１１３でのシフトリード電圧ＶＡｚ、ＶＤｚ、ＶＦｚ、およびＶＫｚを使用したロワーページシフトリードに代えて、シフトリード電圧ＶＢｚ、ＶＨｚ、およびＶＮＭｚを使用してアッパーページシフトリードが行われる。
【０２９６】
トップページが選択される場合、ステップＳ５１０１〜Ｓ５１０６でのＢリード、Ｅリード、およびＨリードに代えて、Ｈリード、Ｋリード、およびＮリードが行われて、ＨリードデータＨＤ、ＫリードデータＫＤ、およびＮリードデータＮＤが取得される。ステップＳ５１１２およびＳ５１１３でのシフトリード電圧ＶＡｚ、ＶＤｚ、ＶＦｚ、およびＶＫｚを使用したロワーページシフトリードに代えて、シフトリード電圧ＶＥｚ、ＶＪｚ、ＶＬｚ、およびＶＯｚを使用してトップページシフトリードが行われる。
【０２９７】
＜４．２．１．１．２．分離データ演算＞
ロワーページ以外が選択される場合の分離データは、以下に記述される方法で演算されることができる。以下に記述される点以外の点については、章＜４．２．１．１．２．分離データ演算＞中の記述が当てはまる。
【０２９８】
ミドルページが選択される場合の分離データＣＤｒ、ＧＤｒ、ＩＤｒ、およびＭＤｒは、以下の式によって演算されることができる。
【０２９９】
分離データＣＤｒは、式（２０）により取得されることができる。
【０３００】
ＣＤｒ＝ＭＳＤ＆ＥＤ        （２０）
分離データＧＤｒは、式（２１）により取得されることができる。
【０３０１】
ＧＤｒ＝（￣ＭＳＤ｜ＥＤ）＆ＨＤ        （２１）
分離データＩＤｒは、式（２２）により取得されることができる。
【０３０２】
ＩＤｒ＝（ＭＳＤ｜ＨＤ）＆ＫＤ        （２２）
分離データＭＤｒは、式（２３）により取得されることができる。
【０３０３】
ＭＤｒ＝￣ＭＳＤ｜ＫＤ        （２３）
メモリコントローラ２は、ロワーページの場合と同様にして、分離データＣＤｒ１、ＣＤｒ２、ＣＤｒ３、ＣＤｒ４、ＣＤｒ５、ＧＤｒ１、ＧＤｒ２、ＧＤｒ３、ＧＤｒ４、ＧＤｒ５、ＩＤｒ１、ＩＤｒ２、ＩＤｒ３、ＩＤｒ４、ＩＤｒ５、ＭＤｒ１、ＭＤｒ２、ＭＤｒ３、ＭＤｒ４、およびＭＤｒ５を取得する。
【０３０４】
アッパーページが選択される場合の分離データＢＤｒ、ＨＤｒ、およびＮＤｒは、以下の式によって演算されることができる。
【０３０５】
分離データＢＤｒは、式（２４）により取得されることができる。
【０３０６】
ＢＤｒ＝ＵＳＤ＆ＥＤ        （２４）
分離データＨＤｒは、式（２５）により取得されることができる。
【０３０７】
ＨＤｒ＝（￣ＵＳＤ｜ＥＤ）＆ＫＤ        （２５）
分離データＮＤｒは、式（２６）により取得されることができる。
【０３０８】
ＮＤｒ＝ＵＳＤ｜ＫＤ        （２６）
メモリコントローラ２は、ロワーページの場合と同様にして、分離データＢＤｒ１、ＢＤｒ２、ＢＤｒ３、ＢＤｒ４、ＢＤｒ５、ＨＤｒ１、ＨＤｒ２、ＨＤｒ３、ＨＤｒ４、ＨＤｒ５、ＮＤｒ１、ＮＤｒ２、ＮＤｒ３、ＮＤｒ４、およびＮＤｒ５を取得する。
【０３０９】
トップページが選択される場合の分離データＥＤｒ、ＪＤｒ、ＬＤｒ、およびＯＤｒは、以下の式によって演算されることができる。
【０３１０】
分離データＥＤｒは、式（２７）により取得されることができる。
【０３１１】
ＥＤｒ＝ＴＳＤ＆ＨＤ        （２７）
分離データＪＤｒは、式（２８）により取得されることができる。
【０３１２】
ＪＤｒ＝（￣ＴＳＤ｜ＨＤ）＆ＫＤ        （２８）
分離データＬＤｒは、式（２９）により取得されることができる。
【０３１３】
ＬＤｒ＝（ＴＳＤ｜ＫＤ）＆ＮＤ        （２９）
分離データＬＤｒは、式（３０）により取得されることができる。
【０３１４】
ＯＤｒ＝￣ＴＳＤ｜ＮＤ        （３０）
メモリコントローラ２は、ロワーページの場合と同様にして、分離データＥＤｒ１、ＥＤｒ２、ＥＤｒ３、ＥＤｒ４、ＥＤｒ５、ＪＤｒ１、ＪＤｒ２、ＪＤｒ３、ＪＤｒ４、ＪＤｒ５、ＬＤｒ１、ＬＤｒ２、ＬＤｒ３、ＬＤｒ４、ＬＤｒ５、ＯＤｒ１、ＯＤｒ２、ＯＤｒ３、ＯＤｒ４、およびＯＤｒ５を取得する。
【０３１５】
γが１から５の自然数の各々のケースとδがＢ、Ｃ、Ｅ、Ｇ、Ｈ、Ｉ、Ｊ、Ｌ、Ｍ、Ｎ、およびＯの各々のケースの全ての組合せについて、分離データδＤｒγは、リード電圧Ｖδγ未満の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“１”データを有し、リード電圧ＶＤγ以上の閾値電圧を有する選択メモリセルトランジスタＭＴのビットにおいて“０”データを有する。
【０３１６】
＜４．２．１．３．谷位置候補検出＞
図３０は、第４実施形態のメモリシステムの或る動作のフローを示し、図２８のステップＳ５３のサブフローを示す。図３０は、１つのシフト境界リード電圧ＶＣＧＲＳ（例えばシフト境界リード電圧ＶＡＳ）の推定のために１０回のシフトリードが行われる例、すなわちＺ＝１０の例に関する。以下の記述および図３０は、シフト境界リード電圧ＶＡＳの推定のためのケースだけでなく他のシフト境界リード電圧ＶＸＳのケースについても当てはまるように、境界リード電圧ＶＸについて記述される。
【０３１７】
図３１は、第４実施形態で或る１つの境界リード電圧ＶＸの推定のために取得された１０個のシフトリードデータに基づく１０個の分離データＸＤｒ１〜ＸＤｒ１０のそれぞれの“１”データビット数ＯＣＸ１〜ＯＣＸ１０のうちの隣り合う２つの差、すなわち、ＯＣＸｗ（ｗは２以上１０以下の自然数）−ＯＣＸ（ｗ−１）を示す。
【０３１８】
図３０に示されるように、ステップＳ１０１において、メモリコントローラ２は、パラメータｉ（ｉは自然数）を１に設定する。ステップＳ１０２において、メモリコントローラ２は、パラメータＳｌｏｐｅｉを“ＤＯＷＮ”に設定する。具体的な例として、Ｓｌｏｐｅｉは、１ビットを有し、値“ＤＯＷＮ”は“０”データである。
【０３１９】
ステップＳ１０３において、メモリコントローラ２は、ｉ＝Ｚであるかを判断する。Ｚは、実行される予定のシフトリードの回数であり、すなわち、本例ではＺは１０である。ｉ＝Ｚであれば（Ｙｅｓ分岐）、処理は終了し、ｉ＝Ｚでなければ、処理はステップＳ１０４に移行する。ステップＳ１０４において、メモリコントローラ２は、ｉ＝ｉ＋１とする。
【０３２０】
ステップＳ１１１において、メモリコントローラ２は、ｉがＺ未満であるかを判断する。ｉがＺ未満である場合（Ｙｅｓ分岐）、処理はステップＳ１１２に移行する。
【０３２１】
ステップＳ１１２において、メモリコントローラ２は、ＯＣ＿ｄｉｆｆi、ＯＣ＿ｄｉｆｆi−１、およびＳｌｏｐｅ＿ｉ−１を取得する。ＯＣ＿ｄｉｆｆiは、分離データＸＤｒｉ＋１中の“１”データビット数ＯＣＸ（ｉ＋１）から分離データＸＤｒｉ中の“１”データビット数ＯＣＸｉを減じた値である。
【０３２２】
ステップＳ１１３において、メモリコントローラ２は、ＯＣ＿ｄｉｆｆi−１がＯＣ＿ｄｉｆｆiを超えているかを判断する。ＯＣ＿ｄｉｆｆi−１がＯＣ＿ｄｉｆｆiを超えている場合（Ｙｅｓ分岐）、リード電圧ＶＸ（ｉ−１）での“１”データビット数からリード電圧ＶＸｉでの“１”データビット数への変化量が、リード電圧ＶＸｉでの“１”データビット数からリード電圧ＶＸ（ｉ＋１）での“１”データビット数への変化量より大きく、リード電圧ＶＸｉからリード電圧ＶＸ（ｉ＋１）に向かって“１”データビット数の変化量が減少することを意味する。よって、ステップＳ１１４において、メモリコントローラ２は、Ｓｌｏｐｅｉを“ＤＯＷＮ”に設定する。
【０３２３】
一方、ＯＣ＿ｄｉｆｆi−１がＯＣ＿ｄｉｆｆiを超えていない場合（ステップＳ１１３のＮｏ分岐）、リード電圧ＶＸ（ｉ−１）での“１”データビット数からリード電圧ＶＸｉでの“１”データビット数への変化量がリード電圧ＶＸｉでの“１”データビット数からリード電圧ＶＸ（ｉ＋１）での“１”データビット数への変化量以下であり、リード電圧ＶＸｉからリード電圧ＶＸ（ｉ＋１）に向かって“１”データビット数の変化量が増加することを意味する。よって、ステップＳ１１５において、メモリコントローラ２は、Ｓｌｏｐｅｉを“ＵＰ”に設定する。ステップＳ１１４およびＳ１１５は、ステップＳ１２１に継続する。
【０３２４】
ステップＳ１１１において、ｉがＺ未満でない場合（Ｎｏ分岐）、処理はステップＳ１３１に移行する。ステップＳ１３１において、メモリコントローラ２は、Ｓｌｏｐｅｉ−１を取得する。ステップＳ１３１は、ステップＳ１１５に継続し、Ｓｌｏｐｅｉは“ＵＰ”に設定される。すなわち、ｉ＝１０の場合、メモリコントローラ２は、ＯＣ＿ｄｉｆｆi−１とＯＣ＿ｄｉｆｆiの大きさに関わらず、Ｓｌｏｐｅｉを“ＵＰ”にする。
【０３２５】
ステップＳ１２１において、メモリコントローラ２は、Ｓｌｏｐｅｉ−１＝“ＤＯＷＮ”かつＳｌｏｐｅｉ＝“ＵＰ”が満たされているかを判断する。満たされている場合（Ｙｅｓ分岐）、ＯＣ＿ｄｉｆｆｉ−１は、ＯＣ＿ｄｉｆｆｉ−２およびＯＣ＿ｄｉｆｆｉより少ないことを意味する。よって、ＯＣ＿ｄｉｆｆｉ−１がメモリセルトランジスタＭＴの閾値電圧分布の谷位置の候補であると判断されることができる。このことに基づいて、メモリコントローラ２は、ステップＳ１２２において、ＯＣ＿ｄｉｆｆｉ−１を谷位置候補として選択する。ステップＳ１２２はステップＳ１０３に継続する。
【０３２６】
ｉ＝１０のとき、ＳｌｏｐｅｉはステップＳ１１５において無条件に“ＵＰ”に設定されているため、Ｓｌｏｐｅ９が“ＤＯＷＮ”でありさえすれば、ＯＣ＿ｄｉｆｆ９は谷位置候補と決定される。同様に、ｉ＝１のとき、Ｓｌｏｐｅ１はステップＳ１０２において無条件に“ＤＯＷＮ”に設定されているので、Ｓｌｏｐｅ２が“ＵＰ”でありさえすれば、ＯＣ＿ｄｉｆｆ１は谷位置候補と決定される。
【０３２７】
ステップＳ１２１の条件が満たされない場合、メモリコントローラ２は、ステップＳ１２３において、ＯＣ＿ｄｉｆｆｉ−１は谷位置ではないと決定する。ステップＳ１２３はステップＳ１０３に継続する。
【０３２８】
こうして、ｉが１からＺ−１（＝９）の各々のケースについて、ＯＣ＿ｄｉｆｆｉが谷位置候補であるかが判断され、１または複数の谷位置候補が選択される。図３１の例では、点線で囲まれたＯＣ＿ｄｉｆｆ３、ＯＣ＿ｄｉｆｆ７、およびＯＣ＿ｄｉｆｆ９が谷位置候補として選択される。
【０３２９】
＜４．２．１．４．谷位置決定＞
図３２は、第４実施形態のステップＳ５４での谷位置の決定方法の概念を示す。図３２は、あるセルユニットＣＵ中のメモリセルトランジスタＭＴの閾値電圧とメモリセルトランジスタＭＴの数との関係、および幾つかのリードによって各メモリセルトランジスタＭＴから読み出されるデータを示す。図３２は、いくつかのステートのみを示す。部分（ａ）は、書き込まれた直後の状態を示し、部分（ｂ）は、書き込まれてから時間が経過した後の状態を示す。
【０３３０】
図３２の部分（ａ）に示されるように、Ｃステートの分布とＤステートの分布の境界（谷）は、デフォルトのリード電圧ＶＤにほぼ一致している。このため、部分（ａ）の状態のセルユニットＣＵからリード電圧ＶＤを用いてデータがリードされると、リードデータＤＤは、リード電圧ＶＤ未満のメモリセルトランジスタＭＴの全てのビットにおいて１データを有する。すなわち、Ｅｒ、Ａ、Ｂ、またはＣステートにあるメモリセルトランジスタＭＴは１データを出力する。リード電圧ＶＤは、データのリードに必要な、ステート数（＝１６）−１個のリード電圧リード電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、ＶＧ、ＶＨ、ＶＩ、ＶＪ、ＶＫ、ＶＬ、ＶＭ、ＶＮ、およびＶＯのうち、下から４番目の大きさを有する。このため、“１”データビットの数は、約ｐ×４／１６である。
【０３３１】
一方、図３２の部分（ｂ）に示されるように、閾値電圧の分布曲線が全体的に負の方向に移動したとする。ＤステートとＥステートの境界のシフト境界リード電圧ＶＤＳを推定するためには、リード電圧ＶＤから正負の両方向に広がる探索範囲の中の複数のリード電圧ＶＣＧＲが使用されてシフトリードが行われる。閾値電圧分布の変位によっては、部分（ｂ）に示されるように、探索範囲中で、２つの谷位置に対応するリード電圧ＶＤｖおよびＶＥｖが谷位置候補として検出される。しかしながら、リード電圧ＶＥｖは、ＤステートとＥステートの境界ではないため、シフト境界リード電圧ＶＤＳにはなりえない。
【０３３２】
リード電圧ＶＤｖを使用したリードにより得られる分離データＤＤｒは、上記のように、約ｐ×４／１６個の“１”データビットを有する。一方、リード電圧ＶＥｖを使用したリードにより得られる分離データＥＤｒは、約ｐ×５／１６個の“１”データビットを有する。この違いが利用されて、メモリコントローラ２は、複数の谷位置の候補から１つの谷位置を決定する。具体的には、以下の通りである。
【０３３３】
まず、メモリコントローラ２は、複数の谷位置候補のそれぞれに対応する分離データのそれぞれの“１”データビット数を取得する。図３１の例に基づくと、谷位置候補は、ＯＣ＿ｄｉｆｆ３、ＯＣ＿ｄｉｆｆ７、およびＯＣ＿ｄｉｆｆ９である。メモリコントローラ２は、ＯＣ＿ｄｉｆｆ３、ＯＣ＿ｄｉｆｆ７、およびＯＣ＿ｄｉｆｆ９にそれぞれ対応する“１”データビット数ＯＣＸ４、ＯＣＸ８、ＯＣＸ１０を取得する。“１”データビット数ＯＣＸ４は、リード電圧ＶＸ４で取得されたリードデータの分離データＸＤｒ中の“１”データビットの数に相当する。“１”データビット数ＯＣＸ８およびＯＣＸ１０についても同様である。そして、メモリコントローラ２は、“１”データビット数ＯＣＸ４、ＯＣＸ８、ＯＣＸ１０のうち、ｐ×Ｙ／１６に最も近い１つを選択する。Ｙは、Ｘに基づいて定まる値を有し、ＸがＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｋ、Ｌ、Ｍ、Ｎ、またはＯの場合にそれぞれ、１、２、３、４、５、６、７、８、９、１０、１１、１２、１３、１４、１５である。メモリコントローラ２は、こうして選択された１つの“１”データビット数ＯＣＸに対応するＯＣ＿ｄｉｆｆを谷位置として決定する。図３１では、例えば、ＯＣ＿ｄｉｆｆ３が谷位置として決定され、対応するリード電圧ＶＸ４の使用が決定される。
【０３３４】
＜４．３．利点（効果）＞
第４実施形態によれば、第１実施形態と同様に、選択ページの境界リード電圧ＶＣＧＲの全てがシフトされたシフトリードが複数回行われ、シフトリードデータが数回のシングルステートリードの結果に基づいてマスクされ、マスクによって得られた分離データから、シフト境界リード電圧ＶＣＧＲＳが推定される。このため、第１実施形態と同じ利点を得られる。
【０３３５】
また、第４実施形態によれば、各シフト境界リード電圧ＶＣＧＲＳの推定のために複数の谷位置候補が検出され、当該シフト境界リード電圧ＶＣＧＲＳに基づいて定まる“１”データビットの数に基づいて、複数の谷位置候補から１つのシフト境界リード電圧ＶＣＧＲＳが選択される。このため、谷位置の選択の精度は高く、別のシフト境界リード電圧ＶＣＧＲＳが誤って選択されることが抑制される。よって、より確からしいシフト境界リード電圧ＶＣＧＲＳが推定されることができる。
【０３３６】
＜４．４．変形例＞
式（１６）〜（３０）は、論理演算の例である。上記された特徴の分離データが得られる限り、任意の論理演算が使用されることができる。
【０３３７】
第４実施形態は、第２実施形態または第３実施形態に適用されることができる。この場合、第２実施形態の図２５または第３実施形態の図２６のステップＳ３１、Ｓ３２、およびＳ３３の組に代えて、第４実施形態の図２８のステップＳ５１、Ｓ５２、Ｓ５３、およびＳ５４が行われる。ステップＳ５１では、式（１６）〜（３０）が使用されて、分離データＡＤｒ、ＢＤｒ、ＣＤｒ、ＤＤｒ、ＥＤｒ、ＦＤｒ、ＧＤｒ、ＨＤｒ、ＩＤｒ、ＪＤｒ、ＫＤｒ、ＬＤｒ、ＭＤｒ、ＮＤｒ、またはＯＤｒが取得される。ステップＳ５２およびＳ５３では、分離データＡＤｒ、ＢＤｒ、ＣＤｒ、ＤＤｒ、ＥＤｒ、ＦＤｒ、ＧＤｒ、ＨＤｒ、ＩＤｒ、ＪＤｒ、ＫＤｒ、ＬＤｒ、ＭＤｒ、ＮＤｒ、またはＯＤｒが使用されて、全てのシフト境界リード電圧ＶＣＧＲＳの各々について、“１”データビット数に基づいて複数の谷位置候補が検出される。ステップＳ５４では、全ての境界リード電圧ＶＣＧＲの各々について、複数の谷位置候補から１つの谷位置が選択され、対応するシフト境界リード電圧ＶＣＧＲＳが決定される。
【０３３８】
分離データＸＤｒは、ステップＳ５１２１のような或るページのシフトリードデータとシングルステートリードとの論理演算とは別の方法で取得されてもよい。すなわち、或る１つの境界リード電圧ＶＸの推定のために、相違するｚについて大きさの相違するシフトリード電圧ＶＸｚを用いた複数回のシフトリードが行われる。こうして、シフトリードの度に得られるシフトリードデータが分離データＸＤｒとして使用されて、図３０〜図３３を参照して記述されたように、シフトリード電圧ＶＣＧＲＳが推定されることができる。
【０３３９】
（第５実施形態）
第５実施形態は、第１乃至第４実施形態の任意のものに付加的に適用され得る
第５実施形態のメモリシステム５は、第１実施形態のメモリシステム５と同じ要素および接続を有する。一方、第５実施形態のメモリコントローラ２は、以下に記述される動作を行えるように構成されている。
【０３４０】
メモリセルトランジスタＭＴの特性は不可避的に相違する。このため、第５実施形態では、特性が類似する複数のメモリセルトランジスタＭＴが１つのグループを構成するようにメモリセルトランジスタＭＴが複数のグループに分類されている。
【０３４１】
例として、メモリセルトランジスタＭＴは、接続されているワード線ＷＬに基づいて分類されている。すなわち、ワード線ＷＬは複数のグループＷＬＧへと分割され、各ワード線グループＷＬＧは連続するアドレスを有する複数のワード線ＷＬからなる。例えば、ワード線ＷＬ０〜ＷＬａ（ａは自然数）はワード線グループＷＬＧ０に属する。ワード線ＷＬ（ａ＋１）〜ＷＬｂ（ｂはａ＋１超の自然数）はワード線グループＷＬＧ１に属する。ワード線ＷＬ（ｂ＋１）〜ＷＬｃ（ｃはｂ＋１超の自然数）はワード線グループＷＬＧ２に属する。ワード線ＷＬ（ｃ＋１）〜ＷＬｄ（ｄはｃ＋１超の自然数）はワード線グループＷＬＧ３に属する。４以下または５以上のグループへとワード線ＷＬが分類されてもよい。
【０３４２】
各ワード線グループＷＬＧに含まれるワード線ＷＬとそれぞれ接続された複数のセルユニットＣＵは、同様の特性を有し、特に同様のデータ保持特性を有すると想定される。一方、相違するワード線グループＷＬＧに含まれるワード線ＷＬとそれぞれ接続されたセルユニットＣＵは、相違する特性（特にデータ保持特性）を有すると想定される。
【０３４３】
＜５．１．基本動作＞
メモリコントローラ２は、ステップＳ５で使用される１または複数のパラメータのためにワード線グループＷＬＧごとに相違する値を使用する。例は、以下の通りである。
【０３４４】
メモリコントローラ２は、ワード線グループＷＬＧごとに相違する探索範囲を使用することができる。すなわち、ワード線グループＷＬＧごとに、ΔＶＸｚの相違する組が使用される。図３３は、そのような例を示しており、第５実施形態での或る隣り合う２つのステートについての閾値電圧の分布を示す。
【０３４５】
図３３は、或るワード線グループＷＬＧに属するワード線ＷＬｆ（ｆは自然数）と接続されたセルユニットＣＵについての分布と、別のワード線グループＷＬＧに属するワード線ＷＬｇ（ｇはｆ以外の自然数）と接続されたセルユニットＣＵについての分布を示す。図３３に示されるように、ワード線ＷＬｇについての分布の全体は、ワード線ＷＬｆについての分布の全体よりも低い方に位置する。
【０３４６】
このような分布の位置の違いに基づいて、ワード線ＷＬｆについては範囲ＳＲｆ中のリード電圧ＶＣＧＲを用いてシフトリードが行われ、ワード線ＷＬｇについては範囲ＳＲｇ中のリード電圧ＶＣＧＲを用いてシフトリードが行われる。範囲ＳＲｆは、例えば、デフォルトのリード電圧ＶＥを中心として幅Ｗ１に亘る。一方、範囲ＳＲｇは、デフォルトのリード電圧ＶＥよりも低いリード電圧ＶＥｇを中心として幅Ｗ１に亘る。
【０３４７】
適用される探索範囲の位置は、例えばシミュレーションや実験により予め決定され、探索範囲の位置に関する情報がメモリコントローラ２のＲＯＭ２４において保持されることができる。メモリコントローラ２は、動作中、探索範囲の位置情報をＲＡＭ２３において保持し、リードの際にこれを参照することができる。メモリコントローラ２は、探索範囲位置情報を参照しながら、ステップＳ５でのシフトリードでのΔＶＸｚを決定し、決定されたΔＶＸｚを半導体メモリ１に通知する。
【０３４８】
このようなワード線グループＷＬＧごとの探索範囲の変更が、１または複数の境界リード電圧に対して適用されることができる。
【０３４９】
＜５．２．応用動作＞
基本動作に加えて、以下の応用動作が付加的に行われることが可能である。
【０３５０】
メモリコントローラ２は、ワード線グループＷＬＧごとに相違するシングルステートリードを行う。図３４は、そのような例のためのフローを示し、代表として、第５実施形態が第１実施形態のロワーページのシフト境界リード電圧ＶＣＧＲＳの推定、すなわち図１０のフローに適用されたケースを示す。図３４のフローの実行のために、メモリコントローラ２は、図３５に示される形式で互いに関連付けられたデータの組を保持している。
【０３５１】
図３５に示されるように、各ワード線グループＷＬＧに対して、ΔＶＢｇ、ΔＶＥｇ、およびΔＶＨｇが用意されている。すなわち、ワード線グループＷＬＧ０に対して、ΔＶＢｇ０、ΔＶＥｇ０、およびΔＶＨｇ０が用意されている。ΔＶＢｇ０、ΔＶＥｇ０、およびΔＶＨｇ０は、互いに同じでもよいし、異なっていてもよい。同様に、ワード線グループＷＬＧ１に対して、互いに同じか異なるΔＶＢｇ１、ΔＶＥｇ１、およびΔＶＨｇ１が用意されている。ワード線グループＷＬＧ２に対して、互いに同じか異なるΔＶＢｇ２、ΔＶＥｇ２、およびΔＶＨｇ２が用意されている。ワード線グループＷＬＧ３に対して、互いに同じか異なるΔＶＢｇ３、ΔＶＥｇ３、およびΔＶＨｇ３が用意されている。
【０３５２】
図３４に示されるように、ステップＳ４は、ステップＳ６１に継続する。ステップＳ６１において、メモリコントローラ２は、選択セルユニットＣＵのアドレスに基づいて定まるΔＶＢｇの使用を半導体メモリ１に指示する。具体的には、メモリコントローラ２は、ΔＶＢｇ０、ΔＶＢｇ１、ΔＶＢｇ２、およびΔＶＢｇ３のうちの選択ワード線ＷＬが属するワード線グループＷＬＧのための１つを指示する。
【０３５３】
ステップＳ６２において、メモリコントローラ２は、ステップＳ６１と同様にして、選択ワード線ＷＬに基づいて定まるΔＶＥｇの使用を半導体メモリ１に指示する。
【０３５４】
ステップＳ６３において、メモリコントローラ２は、ステップＳ６１と同様にして、選択ワード線ＷＬに基づいて定まるΔＶＨｇの使用を半導体メモリ１に指示する。ステップＳ６３は、ステップＳ５１０１に継続する。
【０３５５】
ステップＳ６１、Ｓ６２、およびＳ６３は、図３４のフローとは異なる順序で行われてもよい。また、ステップＳ６１〜Ｓ６３での指示は、１つのコマンドにより行われてもよい。
【０３５６】
ステップＳ５１０１以降、半導体メモリ１は、リード電圧ＶＢに代えて、リード電圧ＶＢと指定された調整量との和（＝ＶＢ＋ΔＶＢｇ）を使用し、リード電圧ＶＥに代えて、リード電圧ＶＥと指定された調整量との和（＝ＶＥ＋ΔＶＥｇ）を使用し、リード電圧ＶＨに代えて、リード電圧ＶＨと指定された調整量との和（＝ＶＨ＋ΔＶＨｇ）を使用する。
【０３５７】
ミドルページ、アッパーページ、およびトップページの各々での境界リード電圧の推定のためのワード線グループＷＬＧごとに相違するシングルステートリードは、図３５を参照して記述されたのと同様である。すなわち、選択ページごとに、シフト境界リード電圧ＶＣＧＲＳの推定のために必要な分離データの演算に必要な１または複数のシングルステートリードのためのリード電圧ＶＣＧＲが、ステップＳ６１〜Ｓ６３と同様のステップにより指定される。ミドルページの場合、ΔＶＥｇ、ΔＶＨｇ、およびΔＶＫｇが指定され、その後、リード電圧ＶＥ、ＶＨ、およびＶＫにそれぞれ代えて、ＶＥ＋ΔＶＥｇ、ＶＨ＋ΔＶＨｇ、およびＶＫ＋ΔＶＫｇが使用される。アッパーページの場合、ΔＶＥｇ、およびΔＶＫｇが指定され、その後、リード電圧ＶＥ、およびＶＫにそれぞれ代えて、ＶＥ＋ΔＶＥｇ、およびＶＫ＋ΔＶＫｇが使用される。トップページの場合、ΔＶＨｇ、ΔＶＫｇ、およびΔＶＮｇが指定され、その後、リード電圧ＶＨ、ＶＫ、およびＶＮにそれぞれ代えて、ＶＨ＋ΔＶＨｇ、ＶＫ＋ΔＶＫｇ、およびＶＮ＋ΔＶＮｇが使用される。
【０３５８】
シフト境界リード電圧ＶＣＧＲＳの推定のためのワード線グループＷＬＧごとに相違するシングルステートリードが第４実施形態に適用されるケースは、第１実施形態に適用されるケースと同じである。
【０３５９】
境界リード電圧の推定のためのワード線グループＷＬＧごとに相違するシングルステートリードが第２または第３実施形態に適用されるケースでは、図２４または図２６のステップＳ１１〜Ｓ２０に先立って、ΔＶＢｇ、ΔＶＥｇ、ΔＶＨｇ、ΔＶＫｇ、およびΔＶｎＮｇが指定される。その後、リード電圧ＶＢ、ＶＥ、ＶＨ、ＶＫ、およびＶＮにそれぞれ代えて、ＶＢ＋ΔＶＢｇ、ＶＥ＋ΔＶＥｇ、ＶＨ＋ΔＶＨｇ、ＶＫ＋ΔＶＫｇ、およびＶＮ＋ΔＶＮｇが使用される。
【０３６０】
第５実施形態の基本動作によれば、第１乃至第４実施形態のうちの適用されるものにより得られる利点に加えて、さらに以下に記述される利点を得られる。すなわち、ワード線グループＷＬＧごとに相違する探索範囲が使用されるため、不可避的に生じるメモリセルトランジスタＭＴの特性のばらつきにより合致した範囲からリード電圧ＶＣＧＲが推定される。よって、メモリセルトランジスタＭＴの閾値分布の谷がより高い精度で検出されることができる。
【０３６１】
さらに応用動作の付加により、以下に記述される利点を得られる。
【０３６２】
図３６は、あるセルユニットＣＵ中のメモリセルトランジスタＭＴの閾値電圧とメモリセルトランジスタＭＴの数の書き込み直後の関係と、時間経過後の関係、および探索範囲を示す。時間の経過により、図３６の下側の部分に示されるように、閾値電圧の分布曲線が全体的に負の方向に移動したとする。書き込み直後と時間経過後のそれぞれでの分離データＦＤｒの生成のケースが検討される。
【０３６３】
書き込み直後の状態では、リード電圧ＶＦが使用されるとともにデフォルトの探索範囲ＳＲ１が使用される。この場合、探索範囲ＳＲ１と、マスクのためのリード電圧ＶＥは十分に離れている。このため、探索範囲ＳＲ１中のシフトリード電圧ＶＣＧＲを使用して得られるいずれの分離データＦＤｒ中においても、谷位置の検出に役立つビットの情報がＥリードデータＥＤによってマスクされることはない。すなわち、探索範囲ＳＲ１が狭まることはない。
【０３６４】
一方、時間経過後の状態で負側に移動された探索範囲ＳＲ２が使用される場合、探索範囲ＳＲ２の一部がリード電圧ＶＥと重なり得る。こうなると、探索範囲ＳＲ２中のリード電圧ＶＥ以下のシフトリード電圧ＶＣＧＲを使用して得られる分離データＦＤｒ中において、谷位置の検出に役立つビットの情報がＥリードデータＥＤによってマスクされて失われ得る。このような分離データＦＤｒは、谷位置の検出に役立たず、すなわち、探索範囲ＳＲ２は探索範囲ＳＲ１よりも狭い。
【０３６５】
第５実施形態によれば、谷位置検出に使用されるシングルリードデータの取得は、デフォルトのリード電圧ＶＣＧＲと異なるリード電圧ＶＣＧＲ、特により低いリード電圧ＶＣＧＲを用いて行われる。例として、図３７は、図３６と同様に、あるセルユニットＣＵ中のメモリセルトランジスタＭＴの閾値電圧とメモリセルトランジスタＭＴの数の書き込み直後の関係と、時間経過後の関係、および探索範囲を示す。図３７の例によれば、Ｅリードはリード電圧ＶＥ＋ΔＶＥｇを用いて行われる。このため、ＥステートとＦステートの間の境界リード電圧ＶＣＧＲの推定のため探索範囲ＳＲ１が調整されても、探索範囲ＳＲ１とシングルステートリードのリード電圧ＶＥ＋ΔＶＥｇと重なることが抑制される。このため、探索範囲ＳＲ１中のいくつかのリード電圧ＶＣＧＲを通じて得られたいくつかの分離データＦＤｒの谷位置探索に役立つビットが失われることは抑制される。すなわち、探索範囲ＳＲ１の大きさは維持される。この結果、図３６のように探索範囲が狭まる場合よりも高い精度で谷位置が推定されることができる。
【０３６６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０３６７】
１…半導体メモリ、２…メモリコントローラ、３…ホスト装置、５…メモリシステム、１１…メモリセルアレイ、１２…入出力回路、１３…シーケンサ、１５…ドライバ、１６…センスアンプ、１９…ロウデコーダ、２１…ホストインターフェイス、２２…ＣＰＵ、２３…ＲＡＭ、２４…ＲＯＭ、２５…メモリインターフェイス、２６…ＥＣＣ回路。
【図１】
2020047339.tif 000003
【図２】
2020047339.tif 000004
【図３】
2020047339.tif 000005
【図４】
2020047339.tif 000006
【図５】
2020047339.tif 000007
【図６】
2020047339.tif 000008
【図７】
2020047339.tif 000009
【図８】
2020047339.tif 000010
【図９】
2020047339.tif 000011
【図１０】
2020047339.tif 000012
【図１１】
2020047339.tif 000013
【図１２】
2020047339.tif 000014
【図１３】
2020047339.tif 000015
【図１４】
2020047339.tif 000016
【図１５】
2020047339.tif 000017
【図１６】
2020047339.tif 000018
【図１７】
2020047339.tif 000019
【図１８】
2020047339.tif 000020
【図１９】
2020047339.tif 000021
【図２０】
2020047339.tif 000022
【図２１】
2020047339.tif 000023
【図２２】
2020047339.tif 000024
【図２３】
2020047339.tif 000025
【図２４】
2020047339.tif 000026
【図２５】
2020047339.tif 000027
【図２６】
2020047339.tif 000028
【図２７】
2020047339.tif 000029
【図２８】
2020047339.tif 000030
【図２９】
2020047339.tif 000031
【図３０】
2020047339.tif 000032
【図３１】
2020047339.tif 000033
【図３２】
2020047339.tif 000034
【図３３】
2020047339.tif 000035
【図３４】
2020047339.tif 000036
【図３５】
2020047339.tif 000037
【図３６】
2020047339.tif 000038
【図３７】
2020047339.tif 000039