(57)【要約】【課題】不揮発性メモリへの書込み処理にかかる時間を抑制する。【解決手段】一実施形態のメモリシステムは、各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、制御回路と、を含む半導体記憶装置と、上記複数のグループのうちの第１グループに対する書込み処理を実行する際、最初のプログラムループにおいて使用される初期書込み電圧を示す第１データを上記半導体記憶装置に出力するように構成されたメモリコントローラと、を備える。上記メモリコントローラは、上記第１グループに対する上記書込み処理の回数及び／又は消去処理の回数を含む評価値に応じて、上記第１データを更新するように構成される。【選択図】図１１
2020119618.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、制御回路と、を含む半導体記憶装置と、
前記複数のグループのうちの第１グループに対する書込み処理を実行する際、最初のプログラムループにおいて使用される初期書込み電圧を示す第１データを前記半導体記憶装置に出力するように構成されたメモリコントローラと、
を備え、
前記メモリコントローラは、前記第１グループに対する前記書込み処理の回数及び／又は消去処理の回数を含む評価値に応じて、前記第１データを更新するように構成された、
メモリシステム。
【請求項２】
前記メモリコントローラは、前記書込み処理を実行する際、
前記評価値が第１閾値以上か否かを判定し、
前記判定の結果、前記評価値が前記第１閾値以上であると判定された第１ケースには、第１コマンドを前記半導体記憶装置に更に出力する
ように構成され、
前記制御回路は、前記第１コマンドを受けると、前記書込み処理の際に、第１電圧を使用して、前記第１グループが条件を満たすプログラムループにおける書込み電圧を特定するように構成された、
請求項１記載のメモリシステム。
【請求項３】
前記メモリコントローラは、前記第１コマンドを出力した後、第２コマンドを前記半導体記憶装置に更に出力するように構成され、
前記制御回路は、前記第２コマンドを受けると、前記特定された書込み電圧を示す第２データを前記メモリコントローラに出力するように構成された、
請求項２記載のメモリシステム。
【請求項４】
前記メモリコントローラは、前記第１データを前記第２データに更新するように構成された、
請求項３記載のメモリシステム。
【請求項５】
前記メモリコントローラは、前記第１ケースには、
前記第１閾値を前記第１閾値より大きい第２閾値に更新し、
前記第１グループに対する更なる書込み処理の際に前記第２閾値を適用する
ように構成された、
請求項２記載のメモリシステム。
【請求項６】
前記メモリコントローラは、前記判定の結果、前記評価値が前記第１閾値未満であると判定された第２ケースには、前記第１コマンドを出力せずに前記書込み処理を実行するように構成され、
前記第１ケースにおいて適用される初期書込み電圧は、前記第２ケースにおいて適用される初期書込み電圧よりも低い、
請求項２記載のメモリシステム。
【請求項７】
前記メモリコントローラは、前記評価値に応じて、前記第１データを、前記第１データに対応する初期書込み電圧以下の初期書込み電圧を示す第２データに更新するように構成された、
請求項１記載のメモリシステム。
【請求項８】
前記第１グループは、前記メモリセルアレイの書込み単位、消去単位、又は前記複数のメモリセルに接続されるワード線単位のグループを含む、
請求項１記載のメモリシステム。
【請求項９】
前記メモリコントローラは、前記第１グループに対する前記第１データから前記第２データへの更新の差分を、前記複数のグループのうちの第２グループに対して適用するように構成された、
請求項４記載のメモリシステム。
【請求項１０】
前記評価値は、前記半導体記憶装置の温度情報を更に含む、
請求項１記載のメモリシステム。
【請求項１１】
前記メモリコントローラは、前記第１データを保持するレジスタを含む、
請求項１記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
不揮発性メモリとしてのＮＡＮＤフラッシュメモリを制御するメモリコントローラを備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４８１９９５１号公報
【特許文献２】特許第４９３１９１５号公報
【特許文献３】米国特許第７５５１４８２号明細書
【特許文献４】特開２０１６−０６２６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
不揮発性メモリへの書込み処理にかかる時間を抑制する。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、制御回路と、を含む半導体記憶装置と、上記複数のグループのうちの第１グループに対する書込み処理を実行する際、最初のプログラムループにおいて使用される初期書込み電圧を示す第１データを上記半導体記憶装置に出力するように構成されたメモリコントローラと、を備える。上記メモリコントローラは、上記第１グループに対する上記書込み処理の回数及び／又は消去処理の回数を含む評価値に応じて、上記第１データを更新するように構成される。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムの構成を説明するためのブロック図。
【図２】第１実施形態に係る半導体記憶装置の構成を説明するためのブロック図。
【図３】第１実施形態に係るメモリセルアレイの構成を説明するための回路図。
【図４】第１実施形態に係るメモリセルアレイの閾値電圧分布を説明するための模式図。
【図５】第１実施形態に係るメモリコントローラ内に保持される初期書込み電圧管理テーブルを説明するための概念図。
【図６】第１実施形態に係るメモリシステムにおける書込み処理を説明するためのコマンドシーケンス及びタイミングチャート。
【図７】第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理を説明するためのフローチャート。
【図８】第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理を説明するためのコマンドシーケンス及びタイミングチャート。
【図９】第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の概要を説明するためのフローチャート。
【図１０】第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の詳細を説明するためのフローチャート。
【図１１】第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのコマンドシーケンス及びタイミングチャート。
【図１２】第１実施形態に係る効果を説明するためのダイアグラム。
【図１３】第２実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャート。
【図１４】第２実施形態に係る効果を説明するためのダイアグラム。
【図１５】第３実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャート。
【図１６】第１変形例に係るメモリコントローラ内に保持される初期書込み電圧管理テーブルを説明するための概念図。
【図１７】第１変形例の更なる変形例に係るメモリコントローラ内に保持される初期書込み電圧管理テーブルを説明するための概念図。
【図１８】第２変形例に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するための概念図。
【図１９】第３変形例に係る半導体記憶装置の構成を説明するためのブロック図。
【図２０】第３変形例に係るメモリコントローラ内に保持される初期書込み電圧補正テーブルを説明するための概念図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
【０００８】
１．第１実施形態
第１実施形態に係るメモリシステムは、例えばＳＳＤ（Solid State Drive）であり、データを不揮発に保持することが出来る。以下に、第１実施形態に係るメモリシステムについて説明する。
【０００９】
１．１  構成
第１実施形態に係るメモリシステムの構成について説明する。
【００１０】
１．１．１  メモリシステムの構成
図１は、第１実施形態に係るメモリシステムの構成例を示している。
【００１１】
図１に示すように、メモリシステム１は、外部のホスト機器２に接続され、ホスト機器２からの命令に応じて各種動作を実行し得る。また、メモリシステム１は、例えば半導体記憶装置１０（半導体記憶装置１０−０、１０−１、…、及び１０−Ｎ（Ｎは例えば２以上の整数））、バッファメモリ２０、並びにメモリコントローラ３０を含んでいる。
【００１２】
半導体記憶装置１０−０、１０−１、…、及び１０−Ｎのそれぞれは、データを不揮発に記憶するＮＡＮＤ型フラッシュメモリであり、それぞれチップＣｈｉｐ０、Ｃｈｉｐ１、…、及びＣｈｉｐＮとも称される。メモリシステム１に含まれる半導体記憶装置１０の個数は、任意の個数に設計され得る。半導体記憶装置１０の詳細な構成については後述する。
【００１３】
バッファメモリ２０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリであり、メモリコントローラ３０の記憶領域として使用される。バッファメモリ２０は、例えば、ホスト機器２から受信した書込みデータや半導体記憶装置１０から読み出した読出しデータを一時的に記憶する。バッファメモリ２０は、メモリコントローラ３０やホスト機器２等に内蔵されても良い。
【００１４】
メモリコントローラ３０は、例えばＳｏＣ（System-on-a-Chip）であり、ホスト機器２からの命令に応答して半導体記憶装置１０に対して読出し処理、書込み処理、及び消去処理等の実行を命令する。また、メモリコントローラ３０は、例えばＣＰＵ（Central Processing Unit）３１、メモリ３２、ホストインタフェース回路３３、ＥＣＣ（Error Correction Code）回路３４、ＮＡＮＤインタフェース回路３５、及びＲＡＭインタフェース回路３６を含んでいる。
【００１５】
ＣＰＵ３１は、メモリコントローラ３０全体の動作を制御する。ＣＰＵ３１は、例えばホスト機器２から受信した書込み命令に応答して、書込みコマンドを発行する。また、ＣＰＵ３１は、例えば、書込みコマンドの発行に際して半導体記憶装置１０に印加する書込み電圧を決定する処理回路（図示せず）を含む。
【００１６】
メモリ３２は、例えばＳＲＡＭ（Static Random Access Memory)等の揮発性メモリである。メモリ３２は、ＣＰＵ３１の作業領域として使用され、例えば半導体記憶装置１０を管理するためのファームウェアや各種管理テーブル等を保持する。具体的には、例えば、メモリ３２は、半導体記憶装置１０に印加する初期書込み電圧の管理に使用される初期書込み電圧管理テーブル（図示せず）を保持するレジスタとして機能し得る。初期書込み電圧、及び初期書込み電圧管理テーブルの詳細については、後述する。
【００１７】
ホストインタフェース回路３３は、ホストバスを介してホスト機器２と接続され、メモリコントローラ３０及びホスト機器２間のデータ、コマンド、及びアドレスの転送を制御する。ホストインタフェース回路３３は、例えばＳＡＴＡ（Serial Advanced Technology Attachment）、ＳＡＳ（Serial Attached SCSI）、ＰＣＩｅ（PCI Express）（登録商標）等の通信インタフェース規格をサポートし得る。
【００１８】
ＥＣＣ回路３４は、データのエラー訂正処理を実行する。書込み動作時においてＥＣＣ回路３４は、ホスト機器２から受信した書込みデータに基づいてパリティを生成し、生成したパリティを書込みデータに付与する。読出し動作時においてＥＣＣ回路３４は、半導体記憶装置１０から受信した読出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読出しデータのエラーを検出及び訂正する。
【００１９】
ＮＡＮＤインタフェース回路３５は、メモリコントローラ３０及び半導体記憶装置１０間におけるデータ、コマンド、及びアドレスの転送を制御し、半導体記憶装置１０内の各チップＣｈｉｐを独立に制御し得る。ＮＡＮＤインタフェース回路３５は、ＮＡＮＤインタフェース規格をサポートしている。
【００２０】
ＲＡＭインタフェース回路３６は、バッファメモリ２０に接続され、メモリコントローラ３０とバッファメモリ２０との間の通信を司る。ＲＡＭインタフェース回路３６は、例えば、ＤＲＡＭインタフェース規格をサポートしている。
【００２１】
１．１．２  ＮＡＮＤフラッシュメモリの構成
図２は、第１実施形態に係るメモリシステムの備える半導体記憶装置の構成例を示している。
【００２２】
図２に示すように、半導体記憶装置１０は、例えば入出力回路１１、レジスタセット１２、ロジックコントローラ１３、シーケンサ１４、レディ／ビジー制御回路１５、電圧生成回路１６、メモリセルアレイ１７、ロウデコーダモジュール１８、及びセンスアンプモジュール１９を含んでいる。
【００２３】
入出力回路１１は、例えば８ビット幅の入出力信号Ｉ／Ｏ１〜Ｉ／Ｏ８を、メモリコントローラ３０との間で送受信する。入出力信号Ｉ／Ｏは、データＤＡＴ、ステータス情報ＳＴＳ、アドレス情報ＡＤＤ、コマンドＣＭＤ等を含み得る。また、入出力回路１１は、センスアンプモジュール１９との間でデータＤＡＴを送受信する。
【００２４】
レジスタセット１２は、ステータスレジスタ１２Ａ、アドレスレジスタ１２Ｂ、及びコマンドレジスタ１２Ｃを含んでいる。ステータスレジスタ１２Ａ、アドレスレジスタ１２Ｂ、及びコマンドレジスタ１２Ｃは、それぞれステータス情報ＳＴＳ、アドレス情報ＡＤＤ、及びコマンドＣＭＤを保持する。
【００２５】
ステータス情報ＳＴＳは、例えばシーケンサ１４の動作状態に基づいて更新される。また、ステータス情報ＳＴＳは、メモリコントローラ３０からの指示に基づいてステータスレジスタ１２Ａから入出力回路１１に転送され、メモリコントローラ３０に出力される。アドレス情報ＡＤＤは、入出力回路１１からアドレスレジスタ１２Ｂに転送され、例えばチップアドレス、ブロックアドレス、ページアドレス、カラムアドレス等を含み得る。コマンドＣＭＤは、入出力回路１１からコマンドレジスタ１２Ｃに転送され、半導体記憶装置１０の各種動作に関する命令を含んでいる。
【００２６】
ロジックコントローラ１３は、メモリコントローラ３０から受信した制御信号に基づいて、入出力回路１１及びシーケンサ１４のそれぞれを制御する。このような制御信号としては、例えばチップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、及びライトプロテクト信号ＷＰｎが使用される。
【００２７】
チップイネーブル信号ＣＥｎは、半導体記憶装置１０をイネーブルにするための信号である。コマンドラッチイネーブル信号ＣＬＥは、受け取った入出力信号Ｉ／ＯがコマンドＣＭＤであることを入出力回路１１に通知するための信号である。アドレスラッチイネーブル信号ＡＬＥは、受け取った入出力信号Ｉ／Ｏがアドレス情報ＡＤＤであることを入出力回路１１に通知するための信号である。ライトイネーブル信号ＷＥｎは、入出力信号Ｉ／Ｏの入力を入出力回路１１に命令するための信号である。リードイネーブル信号ＲＥｎは、入出力信号Ｉ／Ｏの出力を入出力回路１１に命令するための信号である。ライトプロテクト信号ＷＰｎは、電源のオンオフ時に半導体記憶装置１０を保護状態にするための信号である。
【００２８】
シーケンサ１４は、半導体記憶装置１０全体の動作を制御する。例えば、シーケンサ１４は、コマンドレジスタ１２Ｃに保持されたコマンドＣＭＤと、アドレスレジスタ１２Ｂに保持されたアドレス情報ＡＤＤとに基づいて、読出し処理、書込み処理、消去処理等を実行する。
【００２９】
レディ／ビジー制御回路１５は、シーケンサ１４の動作状態に基づいて、レディ／ビジー信号ＲＢｎを生成する。レディ／ビジー信号ＲＢｎは、半導体記憶装置１０がレディ状態であるかビジー状態であるかを、メモリコントローラ３０に通知するための信号である。なお、本明細書において“レディ状態”は、半導体記憶装置１０がメモリコントローラからの命令を受け付ける状態であることを示し、“ビジー状態”は、半導体記憶装置１０がメモリコントローラからの命令を受け付けない状態であることを示している。
【００３０】
電圧生成回路１６は、読出し処理、書込み処理、消去処理等で使用される電圧を生成する。そして、電圧生成回路１６は、生成した電圧をメモリセルアレイ１７、ロウデコーダモジュール１８、及びセンスアンプモジュール１９に供給する。
【００３１】
メモリセルアレイ１７は、複数のブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の整数）を含んでいる。ブロックＢＬＫは、データを不揮発に記憶することが可能な複数のメモリセルトランジスタの集合であり、例えばデータの消去単位として使用される。また、メモリセルアレイ１７には、複数のビット線ＢＬ０〜ＢＬｍ（ｍは１以上の整数）と、複数のワード線ＷＬと、ソース線ＣＥＬＳＲＣと、ウェル線とが設けられる。例えば、ソース線ＣＥＬＳＲＣには、電圧生成回路１６によって電圧が印加される。各メモリセルトランジスタは、１本のビット線ＢＬと１本のワード線ＷＬとに関連付けられている。メモリセルアレイ１７の詳細な回路構成については後述する。
【００３２】
ロウデコーダモジュール１８は、ブロックアドレスに基づいて、各種処理を実行するブロックＢＬＫを選択する。そして、ロウデコーダモジュール１８は、電圧生成回路１６から供給された電圧を、選択したブロックＢＬＫ内の各種配線に転送する。また、ロウデコーダモジュール１８は、例えば複数のロウデコーダＲＤ０〜ＲＤｎを含んでいる。ロウデコーダＲＤ０〜ＲＤｎは、それぞれブロックＢＬＫ０〜ＢＬＫｎに関連付けられている。
【００３３】
センスアンプモジュール１９は、読出し処理において、メモリセルアレイ１７からデータを読み出し、当該読出しデータを入出力回路１１に転送する。また、センスアンプモジュール１９は、書込み処理において、入出力回路１１から受け取ったデータに基づいて、ビット線ＢＬに所望の電圧を印加する。例えば、センスアンプモジュール１９は、複数のセンスアンプユニットＳＡＵ０〜ＳＡＵｍを含んでいる。センスアンプユニットＳＡＵ０〜ＳＡＵｍは、それぞれビット線ＢＬ０〜ＢＬｍに関連付けられている。
【００３４】
センスアンプユニットＳＡＵは、例えばセンスアンプ部ＳＡ、並びにラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ及びＸＤＬを含んでいる。センスアンプ部ＳＡは、例えば読出し処理において、対応するビット線ＢＬの電圧に基づいて、読出しデータが“０”であるか“１”であるかを判定する。言い換えると、センスアンプ部ＳＡは、対応するビット線ＢＬに読み出されたデータをセンスして、選択されたメモリセルの記憶するデータを判定する。ラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ及びＸＤＬのそれぞれは、読出しデータや書込みデータ等を一時的に保持する。ラッチ回路ＸＤＬは、センスアンプユニットＳＡＵと入出力回路１１との間のデータＤＡＴの送受信に使用され得る。
【００３５】
１．１．３  メモリセルアレイの回路構成
図３は、第１実施形態に係るメモリシステムの備える半導体記憶装置１０に含まれたメモリセルアレイ１７の回路構成の一例であり、１つのブロックＢＬＫを抽出して示している。図３に示すように、ブロックＢＬＫは、例えば４つのストリングユニットＳＵ０〜ＳＵ３を含んでいる。
【００３６】
各ストリングユニットＳＵは、ビット線ＢＬ０〜ＢＬｍにそれぞれ関連付けられた複数のＮＡＮＤストリングＮＳを含んでいる。ＮＡＮＤストリングＮＳは、例えばメモリセルトランジスタＭＴ０〜ＭＴ７、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。
【００３７】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタＳＴ１及びＳＴ２のそれぞれは、各種処理時におけるストリングユニットＳＵの選択に使用される。
【００３８】
各ＮＡＮＤストリングＮＳにおいて、メモリセルトランジスタＭＴ０〜ＭＴ７は、直列接続される。直列接続されたメモリセルトランジスタＭＴ０〜ＭＴ７の一端と、関連付けられたビット線ＢＬとの間には、選択トランジスタＳＴ１が接続される。直列接続されたメモリセルトランジスタＭＴ０〜ＭＴ７の他端には、選択トランジスタＳＴ２のドレインが接続される。選択トランジスタＳＴ２のソースには、ソース線ＣＥＬＳＲＣ及びウェル線（図示せず）のそれぞれが接続される。
【００３９】
同一のブロックＢＬＫにおいて、ストリングユニットＳＵ０〜ＳＵ３に含まれた複数の選択トランジスタＳＴ１のそれぞれのゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。複数のメモリセルトランジスタＭＴ０〜ＭＴ７のそれぞれの制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。複数の選択トランジスタＳＴ２のそれぞれのゲートは、それぞれ選択ゲート線ＳＧＳ０〜ＳＧＳ３に共通接続される。なお、複数の選択トランジスタＳＴ２のそれぞれのゲートは、１つの選択ゲート線（図示せず）に共通接続されてもよい。
【００４０】
ビット線ＢＬ０〜ＢＬｍは、複数のブロックＢＬＫ間で共有される。同じカラムアドレスに対応するＮＡＮＤストリングＮＳには、同じビット線ＢＬが接続される。ワード線ＷＬ０〜ＷＬ７のそれぞれは、ブロックＢＬＫ毎に設けられる。ソース線ＣＥＬＳＲＣ及びウェル線（図示せず）のそれぞれは、例えば複数のブロックＢＬＫ間で共有される。
【００４１】
１つのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴの集合は、例えばセルユニットＣＵと称される。例えば、それぞれが１ビットデータを記憶するメモリセルトランジスタＭＴを含むセルユニットＣＵの記憶容量が、「１ページデータ」として定義される。セルユニットＣＵは、メモリセルトランジスタＭＴが記憶するデータのビット数に応じて２ページデータ以上の記憶容量を有し得る。
【００４２】
なお、以上で説明したメモリセルアレイ１７の回路構成はあくまで一例であり、これに限定されない。例えば、各ブロックＢＬＫが含むストリングユニットＳＵの個数は、任意の個数に設計され得る。各ＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２のそれぞれの個数は、それぞれ任意の個数に設計され得る。
【００４３】
１．１．４  データの記憶方式
メモリシステム１は、例えば、いくつかの書込みモードを使用することが出来る。例えば、メモリシステム１は、ＳＬＣ（Single-Level Cell）モード、ＭＬＣ（Multi-Level Cell）モード、ＴＬＣ（Triple-Level Cell）モード、又はＱＬＣ（Quadruple-Level Cell）モードを使用可能である。ＳＬＣモード、ＭＬＣモード、ＴＬＣモード、及びＱＬＣモードは、１つのメモリセルトランジスタＭＴに対して、それぞれ１ビットデータ、２ビットデータ、３ビットデータ、及び４ビットデータを記憶させる書込みモードである。
【００４４】
図４は、第１実施形態に係るメモリシステム１におけるメモリセルトランジスタＭＴの閾値電圧の分布の一例であり、ＳＬＣモード、ＭＬＣモード、ＴＬＣモード、及びＱＬＣモードがそれぞれ使用された４種類の閾値電圧分布及び読出し電圧のグループを示している。なお、図４に示された閾値電圧分布において、縦軸はメモリセルトランジスタＭＴの個数ＮＭＴｓに対応し、横軸はメモリセルトランジスタＭＴの閾値電圧Ｖｔｈに対応している。図４に示すように、複数のメモリセルトランジスタＭＴは、適用される書込みモード、すなわち記憶するデータのビット数に応じて複数の閾値電圧分布を形成する。
【００４５】
ＳＬＣモード（１bit/cell）が使用された場合、複数のメモリセルトランジスタＭＴの閾値電圧は２個の閾値電圧分布を形成する。この２個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ＥＲ”状態、“Ａ”状態と称される。ＳＬＣモードにおいて、“ＥＲ”状態、及び“Ａ”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる１ビットデータが割り当てられる。
【００４６】
ＭＬＣモード（２bit/cell）が使用された場合、複数のメモリセルトランジスタＭＴの閾値電圧は４個の閾値電圧分布を形成する。この４個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ＥＲ”状態、“Ａ”状態、“Ｂ”状態、“Ｃ”状態と称される。ＭＬＣモードにおいて、“ＥＲ”状態〜“Ｃ”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる２ビットデータが割り当てられる。
【００４７】
ＴＬＣモード（３bit/cell）が使用された場合、複数のメモリセルトランジスタＭＴの閾値電圧は８個の閾値電圧分布を形成する。この８個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ＥＲ”状態、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、“Ｄ”状態、“Ｅ”状態、“Ｆ”状態、“Ｇ”状態と称される。ＴＬＣ方式において、“ＥＲ”状態〜“Ｇ”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる３ビットデータが割り当てられる。
【００４８】
ＱＬＣモード（４bit/cell）が使用された場合、複数のメモリセルトランジスタＭＴの閾値電圧は１６個の閾値電圧分布を形成する。この１６個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ＥＲ”状態、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、“Ｄ”状態、“Ｅ”状態、“Ｆ”状態、“Ｇ”状態、“Ｈ”状態、“Ｉ”状態、“Ｊ”状態、“Ｋ”状態、“Ｌ”状態、“Ｍ”状態、“Ｎ”状態、“Ｏ”状態と称される。ＱＬＣ方式において、“ＥＲ”状態〜“Ｏ”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる４ビットデータが割り当てられる。
【００４９】
各書込みモードにおいて、隣り合う閾値電圧分布の間にそれぞれ読出し電圧が設定される。具体的には、“ＥＲ”状態における最大の閾値電圧と“Ａ”状態における最小の閾値電圧との間に、読出し電圧ＡＲが設定される。同様に、“Ａ”状態及び“Ｂ”状態間に読出し電圧ＢＲが設定され、“Ｂ”状態及び“Ｃ”状態間に読出し電圧ＣＲが設定され、“Ｃ”状態及び“Ｄ”状態間に読出し電圧ＤＲが設定され、“Ｄ”状態及び“Ｅ”状態間に読出し電圧ＥＲが設定され、“Ｅ”状態及び“Ｆ”状態間に読出し電圧ＦＲが設定され、“Ｆ”状態及び“Ｇ”状態間に読出し電圧ＧＲが設定され、“Ｇ”状態及び“Ｈ”状態間に読出し電圧ＨＲが設定され、“Ｈ”状態及び“Ｉ”状態間に読出し電圧ＩＲが設定され、“Ｉ”状態及び“Ｊ”状態間に読出し電圧ＪＲが設定され、“Ｊ”状態及び“Ｋ”状態間に読出し電圧ＫＲが設定され、“Ｋ”状態及び“Ｌ”状態間に読出し電圧ＬＲが設定され、“Ｌ”状態及び“Ｍ”状態間に読出し電圧ＭＲが設定され、“Ｍ”状態及び“Ｎ”状態間に読出し電圧ＮＲが設定され、“Ｎ”状態及び“Ｏ”状態間に読出し電圧ＯＲが設定される。
【００５０】
各書込みモードにおいて、最も高い閾値電圧分布における最大の閾値電圧よりも高い電圧に、読出しパス電圧Ｖｒｅａｄが設定される。読出しパス電圧Ｖｒｅａｄがゲートに印加されたメモリセルトランジスタＭＴは、記憶するデータに依らずにオン状態になる。
【００５１】
また、各書込みモードにおいて、隣り合う閾値電圧分布の間には、それぞれベリファイ電圧が設定される。具体的には、書込み動作において、“Ａ”状態、“Ｂ”状態、“Ｃ”状態、“Ｄ”状態、“Ｅ”状態、“Ｆ”状態、“Ｇ”状態、“Ｈ”状態、“Ｉ”状態、“Ｊ”状態、“Ｋ”状態、“Ｌ”状態、“Ｍ”状態、“Ｎ”状態及び“Ｏ”状態のそれぞれのベリファイ動作には、それぞれベリファイ電圧ＡＶ、ＢＶ、ＣＶ、ＤＶ、ＥＶ、ＦＶ、ＧＶ、ＨＶ、ＩＶ、ＪＶ、ＫＶ、ＬＶ、ＭＶ、ＮＶ及びＯＶが使用される。例えば、ベリファイ電圧ＡＶ〜ＯＶは、それぞれ読出し電圧ＡＲ〜ＯＲよりも高い電圧に設定される。
【００５２】
なお、以上で説明した１つのメモリセルトランジスタＭＴが記憶するデータのビット数は一例であり、これに限定されない。例えば、メモリセルトランジスタＭＴには、５ビットデータ以上のデータが記憶されても良い。また、読出し電圧、読出しパス電圧、ベリファイ電圧のそれぞれは、各書込みモードで同じ電圧値に設定されても良いし、異なる電圧値に設定されても良い。
【００５３】
１．２  動作
次に、第１実施形態に係るメモリシステムの動作について説明する。なお、以下の説明では、選択されたワード線ＷＬのことを選択ワード線ＷＬｓｅｌと称する。電圧生成回路１６がワード線ＷＬに電圧を印加することは、電圧生成回路１６がロウデコーダモジュール１８を介してワード線ＷＬに電圧を印加することに対応している。半導体記憶装置１０が受信したアドレス情報ＡＤＤは、アドレスレジスタ１２Ｂに転送されるものとする。半導体記憶装置１０が受信したコマンドＣＭＤは、コマンドレジスタ１２Ｃに転送されるものとする。
【００５４】
１．２．１  書込み処理の概要
第１実施形態に係るメモリシステムにおける書込み処理の概要について説明する。
【００５５】
１．２．１．１  基本動作
まず、書込み処理における基本動作について説明する。
【００５６】
書込み処理においてシーケンサ１４は、プログラムループを繰り返し実行する。各プログラムループは、プログラム処理及びベリファイ処理を含んでいる。
【００５７】
プログラム処理は、メモリセルトランジスタＭＴの閾値電圧を上昇させる処理である。プログラム処理において、各センスアンプユニットＳＡＵは、内部のラッチ回路に保持されたデータに基づいて、対応するビット線ＢＬを書込み対象又は書込み禁止に設定する。そして、プログラム処理において選択ワード線ＷＬｓｅｌには、書込み電圧ＶＰＧＭが印加される。書込み電圧ＶＰＧＭは、メモリセルトランジスタＭＴの閾値電圧を上昇させることが可能な高電圧であり、例えば、読出しパス電圧Ｖｒｅａｄより大きい。
【００５８】
選択ワード線ＷＬｓｅｌに書込み電圧ＶＰＧＭが印加されると、選択ワード線ＷＬｓｅｌに接続され、かつ書込み対象のビット線ＢＬに接続されたメモリセルトランジスタＭＴの閾値電圧が上昇する。一方、選択ワード線ＷＬｓｅｌに接続され、かつ書込み禁止のビット線ＢＬに接続されたメモリセルトランジスタＭＴの閾値電圧は、セルフブーストによって閾値電圧の上昇が抑制される。これらの一連の動作がプログラム処理に対応している。シーケンサ１４は、プログラム処理が終了すると、ベリファイ処理に移行する。
【００５９】
ベリファイ処理は、メモリセルトランジスタＭＴの閾値電圧が所望の値に達したかどうかを判定する読出し処理の一種である。ベリファイ処理では、例えば、各センスアンプユニットＳＡＵが保持する書込みデータに応じて、センスアンプユニットＳＡＵ毎に、パスするか否かが判定されるベリファイ電圧が設定される。
【００６０】
選択ワード線ＷＬｓｅｌにベリファイ電圧が印加されると、各センスアンプユニットＳＡＵは、対応するビット線ＢＬの電圧に基づいて、選択ワード線ＷＬｓｅｌに接続されたメモリセルトランジスタＭＴの閾値電圧が当該ベリファイ電圧を超えているか否かを判定する。そして、センスアンプユニットＳＡＵは、判定結果を内部のいずれかのラッチ回路に保持する。具体的には、例えば、シーケンサ１４は、“Ａ”状態のデータが書き込まれるメモリセルトランジスタＭＴの閾値電圧が、ベリファイ電圧ＡＶを超えていた場合にベリファイ処理にパスしたと判定し、ベリファイ電圧ＡＶ以下である場合にベリファイ処理にフェイルしたと判定する。これらの判定が終了すると、シーケンサ１４は、ベリファイ処理を終了する。
【００６１】
以上で説明したプログラム処理及びベリファイ処理の組が、１回のプログラムループに対応している。続くプログラムループにおけるプログラム処理では、書込み電圧ＶＰＧＭがステップアップされる。書込み電圧ＶＰＧＭのステップアップ量ΔＶＰＧＭは、予め定められた値に設定され得る。
【００６２】
また、ベリファイ電圧は、書込みモード、及び閾値電圧の上昇に応じて、ＡＶ、ＢＶ、ＣＶ…のように複数種類が使用され得る。そして、シーケンサ１４は、プログラムループの繰り返しにおいて、適用された書込みモードにおける最大の閾値電圧分布に属する状態に対するベリファイ処理にフェイルしたメモリセルトランジスタＭＴの数が所定の数を下回ったことを検知すると、書込み処理を終了する。
【００６３】
１．２．１．２  初期書込み電圧の設定処理
次に、上述した書込み処理における初期書込み電圧の設定処理について説明する。メモリコントローラ３０は、書込み処理に際し、メモリ３２内に記憶された初期書込み電圧管理テーブルを参照することにより、最初のプログラムループで印加される書込み電圧ＶＰＧＭ（初期書込み電圧ＩＶＰＧＭ）を設定する。
【００６４】
図５は、第１実施形態に係るメモリシステムの初期書込み電圧管理テーブルを説明するための概念図である。図５に示すように、初期書込み電圧管理テーブルは、初期書込み電圧ＩＶＰＧＭの値を、書込み処理の単位となり得るグループ毎に保持する。より具体的には、初期書込み電圧ＩＶＰＧＭは、チップＣｈｉｐ毎、ブロックＢＬＫ毎、ワード線ＷＬ毎、ストリングユニットＳＵ毎に分類されて保持される。以下では、初期書込み電圧管理テーブルにおいて初期書込み電圧ＩＶＰＧＭが設定される単位を、「グループ」と称する。
【００６５】
図５の例では、チップＣｈｉｐ０のブロックＢＬＫ０におけるワード線ＷＬ０に接続された、ストリングユニットＳＵ０及びＳＵ１に属する複数のメモリセルトランジスタＭＴには、データ“００”が設定されている。初期書込み電圧管理テーブルに保持されたデータが“００”である場合、初期書込み電圧管理テーブルには、有効なデータが保持されていない（“no data”である）ことを示す。この場合、当該グループの各々に印加される初期書込み電圧ＩＶＰＧＭは、デフォルトに設定された初期書込み電圧ＶＰＧＭ０が印加され得る。
【００６６】
一方、図５の例では、チップＣｈｉｐ０のブロックＢＬＫ０におけるワード線ＷＬ０に接続された、ストリングユニットＳＵ２に属する複数のメモリセルトランジスタＭＴには、“ＶＰＧＭ０＋ｋΔＶＰＧＭ”が設定されている（ｋは、０以上の整数）。また、ストリングユニットＳＵ３に属する複数のメモリセルトランジスタＭＴには、“ＶＰＧＭ０＋（ｋ＋１）ΔＶＰＧＭ”が設定されている。この場合、ストリングユニットＳＵ２及びＳＵ３に対応するグループにはそれぞれ、初期書込み電圧ＩＶＰＧＭとして、電圧ＶＰＧＭ０＋ｋΔＶＰＧＭ、及びＶＰＧＭ０＋（ｋ＋１）ΔＶＰＧＭが印加される。
【００６７】
このように、メモリコントローラ３０は、初期書込み電圧管理テーブルを参照することによって、初期書込み電圧ＩＶＰＧＭの値を、書込み単位で分類されたグループ毎に設定することができる。なお、初期書込み電圧管理テーブルは、デフォルトに設定された初期書込み電圧ＶＰＧＭ０からのオフセット値を記憶することによって、初期書込み電圧ＩＶＰＧＭに対応する値を管理してもよい。
【００６８】
また、図５の例では、初期書込み電圧ＩＶＰＧＭ又は初期書込み電圧ＩＶＰＧＭに対応する値と共に、書込み回数及び／又は消去回数（Ｗ／Ｅ回数）が併せて保持される。Ｗ／Ｅ回数は、メモリセルアレイ１７の使用状況に応じた特性の変化（具体的には、メモリセルトランジスタＭＴの閾値電圧の上昇特性）をモニタするために使用され得る。Ｗ／Ｅ回数を用いた初期書込み電圧ＩＶＰＧＭの管理手法の詳細については、後述する。
【００６９】
図６は、第１実施形態に係るメモリシステムにおける書込み処理の概要を説明するためのコマンドシーケンス及びタイミングチャートの具体例である。なお、以下で参照される同様の図面において、各処理前におけるレディ／ビジー信号ＲＢｎは“Ｈ”レベルであり、選択ワード線ＷＬｓｅｌの電圧はＶＳＳ（例えば、０Ｖ）であるものとする。なお、各処理前における選択ワード線ＷＬｓｅｌの電圧はＶＳＳに限定されず、例えば、フローティングでも構わない。すなわち、各処理前における選択ワード線ＷＬｓｅｌの電圧は、任意の電圧値に設定され得る。
【００７０】
図６に示すように、書込み処理において、メモリコントローラ３０は、例えば、コマンド“０Ｆｈ”、アドレス情報“ＡＤＤ”、及び初期書込み電圧データ“ＤＩＶｉ”を順に半導体記憶装置１０に送出する。コマンド“０Ｆｈ”は、初期書込み電圧データ“ＤＩＶｉ”の送出を示すコマンドである。初期書込み電圧データ“ＤＩＶｉ”は、後続する書込み処理における初期書込み電圧ＩＶＰＧＭの値を示す。シーケンサ１４は、コマンド“０Ｆｈ”を受けると、後続する書込み処理における最初のプログラムループにおいて、初期書込み電圧データ“ＤＩＶｉ”に対応する書込み電圧を選択ワード線ＷＬｓｅｌに印加する旨を認識する。
【００７１】
続いて、メモリコントローラ３０は、コマンド“８０ｈ”、アドレス情報“ＡＤＤ”、書込みデータ“Ｄｉｎ”、及びコマンド“１０ｈ”を順に半導体記憶装置１０に送出する。コマンド“８０ｈ”は、書込み処理を指示するコマンドである。書込みデータ“Ｄｉｎ”は、センスアンプモジュール１９内のセンスアンプユニットＳＡＵのラッチ回路ＸＤＬに転送される。コマンド“１０ｈ”は、書込み処理の実行を指示するコマンドである。
【００７２】
半導体記憶装置１０は、コマンド“１０ｈ”を受けると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、初期書込み電圧データ“ＤＩＶｉ”、コマンドレジスタ１２Ｃに保持されたコマンド、及びセンスアンプモジュール１９に保持されたデータに基づいて、書込み処理を実行する。
【００７３】
上述の通り、図６の例では、シーケンサ１４は、初期書込み電圧ＩＶＰＧＭの値を、初期書込み電圧データ“ＤＩＶｉ”基づいて設定する。このように、メモリコントローラ３０は、コマンド“０Ｆｈ”及び初期書込み電圧データ“ＤＩＶｉ”によって、初期書込み電圧ＩＶＰＧＭを任意の値に設定することができる。
【００７４】
そして、書込み電圧ＶＰＧＭは、プログラムループ毎にステップアップされる。例えば、初期書込み電圧ＩＶＰＧＭにＶＰＧＭ０＋ｋΔＶＰＧＭが設定されている場合、ｊ回目のプログラムループにおける書込み電圧ＶＰＧＭは、ＶＰＧＭ０＋ｋΔＶＰＧＭ＋（ｊ−１）ΔＶＰＧＭとなる（ＶＰＧＭ＝ＩＶＰＧＭ＋（ｊ−１）ΔＶＰＧＭ）（ｊは、１以上の整数）。
【００７５】
書込み処理の終了に伴い、シーケンサ１４は、半導体記憶装置１０をビジー状態からレディ状態に遷移させる。図示された期間ｔＰｒｏｇは、書込み処理が実行された時間に対応している。
【００７６】
以上により、一連の処理が終了する。
【００７７】
１．２．２  初期書込み電圧管理テーブルの管理
上述した書込み処理を実行するために、メモリ３２内の初期書込み電圧管理テーブルが適切なタイミングで更新されることが望ましい。以下では、初期書込み電圧管理テーブルの管理について説明する。なお、初期書込み電圧管理テーブルは、例えば、初期設定処理、及び更新処理によって管理される。初期設定処理は、初期書込み電圧管理テーブルに保持すべきデータを学習し（学習処理）、当該学習結果を有効なデータとして当該テーブル内に最初に記憶させる処理である。更新処理は、初期設定処理後に初期書込み電圧管理テーブル内のデータが最適な値であるか否かを検証し（検証処理）、検証結果に応じて当該テーブル内のデータを更新する処理である。
【００７８】
１．２．２．１  初期設定処理
第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理について説明する。初期設定処理は、例えば、メモリシステム１の出荷前に実行されるテストフェーズにおける処理である。以下の説明では、テストフェーズにおいて、メモリ３２には、初期設定処理が実行されるまでは、データ“００”が保持されている（すなわち、有効なデータが保持されていない）ものとする。
【００７９】
図７は、第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理を説明するためのフローチャートである。
【００８０】
図７に示すように、ステップＳＴ１において、メモリコントローラ３０は、初期書込み電圧の学習処理を伴う書込み処理を指示する書込みコマンドセットを発行し、半導体記憶装置１０に送出する。以下の説明では、説明の便宜上、「初期書込み電圧の学習処理を伴う書込み処理」は、「初期書込み電圧学習処理」とも称され、「初期書込み電圧の学習処理を伴う書込み処理を指示するコマンドセット」は、「初期書込み電圧学習コマンド」とも称される。
【００８１】
ステップＳＴ２において、初期書込み電圧学習コマンドを受けると、シーケンサ１４は、半導体記憶装置１０をレディ状態からビジー状態に遷移させて、初期書込み電圧学習処理を実行する。初期書込み電圧学習処理の詳細については、後述する。
【００８２】
ステップＳＴ３において、初期書込み電圧学習処理が終了すると、シーケンサ１４は、半導体記憶装置１０をビジー状態からレディ状態に遷移させて、初期書込み電圧学習処理が終了したことをメモリコントローラ３０に通知する。なお、半導体記憶装置１０は、例えば、当該処理によって学習した初期書込み電圧ＩＶＰＧＭに関する情報をレジスタセット１２内に保持する。
【００８３】
ステップＳＴ４において、ステップＳＴ３において送出された終了通知を受けると、メモリコントローラ３０は、初期書込み電圧の学習結果を出力する旨を指示する出力コマンドを発行し、半導体記憶装置１０に送出する。
【００８４】
ステップＳＴ５において、ステップＳＴ４において送出された出力コマンドを受けると、半導体記憶装置１０は、レジスタセット１２に保持された初期書込み電圧の学習結果を参照し、メモリコントローラ３０に送出する。
【００８５】
ステップＳＴ６において、メモリコントローラ３０は、メモリ３２内の初期書込み電圧管理テーブルに、初期書込み電圧の学習結果を記憶させる。
【００８６】
以上のように動作することにより、同一のグループに対して実行される以降の書込み処理の際に、初期書込み電圧管理テーブルを参照することにより、学習結果が反映された初期書込み電圧を半導体記憶装置１０に指示することができる。
【００８７】
なお、テストフェーズが終了すると、出荷後に電源投入されるまで、メモリシステム１への電源供給は遮断され得る。この場合、メモリコントローラ３０は、テストフェーズ中に、初期書込み電圧管理テーブル内の情報を半導体記憶装置１０に転送し、メモリセルアレイ１７の所定の領域内に不揮発に記憶させてもよい。そして、出荷後に電源投入された際に、当該情報を改めてメモリセルアレイ１７からメモリ３２内の初期書込み電圧管理テーブルに展開し、以降の書込み処理の際に使用可能にしてもよい。
【００８８】
図８は、第１実施形態に係るメモリシステムにおける、初期書込み電圧学習処理と、学習結果の出力処理と、を含む一連の処理のコマンドシーケンス及びタイミングチャートを説明するための具体例を示している。図８の例では、初期書込み電圧の学習対象である複数のメモリセルトランジスタＭＴの閾値電圧分布が、プログラムループ毎に変化する様子が併せて示されている。
【００８９】
図８に示すように、初期書込み電圧学習処理において、メモリコントローラ３０は、例えば、コマンド“０Ｆｈ”、アドレス情報“ＡＤＤ”、初期書込み電圧データ“ＤＩＶｉ”、及びコマンド“ＸＸｈ”を順に半導体記憶装置１０に送出する。コマンド“ＸＸｈ”は、書込み処理に際して、初期書込み電圧の学習処理を併せて実行する旨を指示するコマンドである。
【００９０】
上述の通り、テストフェーズでは、初期書込み電圧学習処理が実行されるまでは、メモリ３２の初期書込み電圧管理テーブル内には、有効なデータが保持されていない。このため、メモリコントローラ３０は、初期書込み電圧データ“ＤＩＶｉ”として、データ“００”を半導体記憶装置１０に送出する。シーケンサ１４は、コマンド“ＸＸｈ”と共に初期書込み電圧データ“ＤＩＶｉ”としてデータ“００”を受けると、初期書込み電圧学習処理を伴う書込み処理における初期書込み電圧ＩＶＰＧＭとして、デフォルトの初期書込み電圧ＶＰＧＭ０を適用する旨を認識する。
【００９１】
続いて、メモリコントローラ３０は、コマンド“８０ｈ”、アドレス情報“ＡＤＤ”、書込みデータ“Ｄｉｎ”、及びコマンド“１０ｈ”を順に半導体記憶装置１０に送出する。
【００９２】
半導体記憶装置１０は、コマンド“１０ｈ”を受けると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、データ“００”を示す初期書込み電圧データ“ＤＩＶｉ”、コマンド“ＸＸｈ”を含むコマンドセット、及び書込みデータ“Ｄｉｎ”に基づいて、初期書込み電圧学習処理を実行する。
【００９３】
具体的には、初期書込み電圧の学習処理を伴う書込み処理は、例えば、プログラム処理及びベリファイ処理を含む。最初のプログラムループのプログラム処理では、シーケンサ１４は、データ“００”の初期書込み電圧データ“ＤＩＶｉ”に基づき、選択ワード線ＷＬｓｅｌに、デフォルトの初期書込み電圧ＶＰＧＭ０を印加する。デフォルトの初期書込み電圧ＶＰＧＭ０は、ステップアップ量ΔＶＰＧＭが加算されない値であるため、例えば、書込み電圧ＶＰＧＭの最小値であり得る。このため、“ＥＲ”状態に対応する複数のメモリセルトランジスタＭＴの閾値電圧分布は、最初のプログラムループでベリファイ電圧ＡＶ付近まで一気に近づくことなく、複数回のプログラムループでベリファイ電圧ＡＶに徐々に近づいていく。
【００９４】
一方、初期書込み電圧学習処理を伴う書込み処理におけるベリファイ処理では、最初のプログラムループから、ベリファイ電圧ＡＶと共に（又はベリファイ電圧ＡＶに先立ち）、ベリファイ電圧Ｖｓｖに対するベリファイ処理が実行される。ベリファイ電圧Ｖｓｖは、例えば、初期書込み電圧学習用のベリファイ電圧であり、ベリファイ電圧ＡＶ以下の電圧が設定される。
【００９５】
図８の例では、１回目〜４回目のプログラムループが図示されており、その各々におけるベリファイ処理において、選択ワード線ＷＬｓｅｌにベリファイ電圧Ｖｓｖ及びＡＶが順に印加される場合が示されている。ベリファイ電圧Ｖｓｖに対するベリファイ処理では、選択ワード線ＷＬｓｅｌにベリファイ電圧Ｖｓｖが印加されると、各センスアンプユニットＳＡＵは、対応するビット線ＢＬの電圧に基づいて、選択ワード線ＷＬｓｅｌに接続されたメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧Ｖｓｖを超えているか否かを判定する。そして、センスアンプユニットＳＡＵは、判定結果を内部のいずれかのラッチ回路に保持する。例えば、シーケンサ１４は、初期書込み電圧の学習対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧Ｖｓｖを超えていた場合には、初期書込み電圧学習用のベリファイ処理にパスしたと判定する。一方、シーケンサ１４は、初期書込み電圧の学習対象のメモリセルトランジスタＭＴの閾値電圧がベリファイ電圧Ｖｓｖ以下である場合には、初期書込み電圧学習用のベリファイ処理にフェイルしたと判定する。
【００９６】
シーケンサ１４は、ベリファイ電圧Ｖｓｖに対するベリファイ処理にパスしたメモリセルトランジスタＭＴの数が所定の数を上回ったことを検知すると、当該検知がされたプログラムループにおけるプログラム処理で選択ワード線ＷＬｓｅｌに印加された書込み電圧ＶＰＧＭを記憶する。図８の例では、初期書込み電圧学習対象の複数のメモリセルトランジスタＭＴのうちの所定数の閾値電圧が、４回目のプログラムループにおけるプログラム処理でベリファイ電圧Ｖｓｖを上回る。この場合、シーケンサ１４は、４回目のプログラムループにおけるプログラム処理で選択ワード線ＷＬｓｅｌに印加された書込み電圧ＶＰＧＭ＝ＶＰＧＭ０＋３ΔＶＰＧＭをレジスタセット１２内に記憶する。
【００９７】
その後、シーケンサ１４は、書込みデータ“Ｄｉｎ”に応じて通常の書込み処理を継続して実行し、当該書込み処理が終了すると、半導体記憶装置１０をビジー状態からレディ状態に遷移させる。つまり、シーケンサ１４は、初期書込み電圧学習処理の終了通知をメモリコントローラ３０に送出する。
【００９８】
続いて、メモリコントローラ３０は、出力コマンド“Ｂ０ｈ”、アドレス情報“ＡＤＤ”を発行し、半導体記憶装置１０に送出する。出力コマンド“Ｂ０ｈ”を受けると、シーケンサ１４は、半導体記憶装置１０をレディ状態からビジー状態に遷移させて、データ“ＤＩＶо”をメモリコントローラ３０に送出する。データ“ＤＩＶо”は、ベリファイ電圧Ｖｓｖに対するベリファイ処理にパスしたメモリセルトランジスタＭＴが所定の数を上回ったと判定されたプログラムループ数における書込み電圧ＶＰＧＭを示す情報を含む。図８の例では、シーケンサ１４は、データ“ＤＩＶо”として、書込み電圧ＶＰＧＭ＝ＶＰＧＭ０＋３ΔＶＰＧＭを示す情報を、メモリコントローラ３０に送出する。データ“ＤＩＶо”の送出が終了すると、シーケンサ１４は、半導体記憶装置１０をビジー状態からレディ状態に遷移させて、学習結果の出力処理を終了する。
【００９９】
メモリコントローラ３０は、半導体記憶装置１０からデータ“ＤＩＶо”を受けると、初期書込み電圧管理テーブル内の初期設定対象のメモリセルトランジスタＭＴに対応するグループの初期書込み電圧ＩＶＰＧＭを、データ“ＤＩＶо”に更新する。
【０１００】
以上のように動作することにより、メモリコントローラ３０は、初期書込み電圧の学習結果をメモリ３２内の管理テーブルに初期設定することができる。
【０１０１】
１．２．２．２  更新処理
次に、第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理について説明する。更新処理は、例えば、メモリシステム１を出荷した後に実行される実運用フェーズにおける処理である。以下の説明では、メモリシステム１は、テストフェーズにおいて初期書込み電圧管理テーブルの初期設定処理が実行され、当該テーブル内に有効なデータが保持されているものとする。
【０１０２】
図９は、第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の概要を説明するためのフローチャートである。
【０１０３】
図９に示すように、ステップＳＴ１０において、メモリコントローラ３０は、実運用フェーズ中に、ホスト機器２から書込み要求を受信する。
【０１０４】
ステップＳＴ２０において、メモリコントローラ３０は、メモリ３２内の初期書込み電圧管理テーブルを参照し、書込み対象の複数のメモリセルトランジスタＭＴが分類されたグループに対ｉは、０以上の整数）。すなわち、メモリコントローラ３０は、ｉ＝０の場合、Ｗ／Ｅ回数が閾値Ｎ０以上であるか否かを判定し、ｉ＝１，２，３，…の場合それぞれ、Ｗ／Ｅ回数が閾値Ｎ１，Ｎ２，Ｎ３，…以上であるか否かを判定する。
【０１０５】
閾値Ｎｉは、例えば、図５で示した初期書込み電圧管理テーブルにおいて、Ｗ／Ｅ回数に対応付けられて管理される。なお、図９の例では、閾値Ｎｉは、Ｎ０＜Ｎ１＜Ｎ２＜Ｎ３＜…のように、ｉがインクリメントされる毎に大きな値となるように設定される。
【０１０６】
Ｗ／Ｅ回数が閾値Ｎｉ以上であると判定された場合（ステップＳＴ２０；ｙｅｓ）、処理はステップＳＴ３０〜ＳＴ５０に進む。
【０１０７】
ステップＳＴ３０は、ステップＳＴ３１〜ＳＴ３３を含む。ステップＳＴ３０において、メモリコントローラ３０及び半導体記憶装置１０は、初期書込み電圧の検証処理を伴う書込み処理を実行し、処理はステップＳＴ４０に進む。
【０１０８】
ステップＳＴ４０は、ステップＳＴ４１〜ＳＴ４３を含む。ステップＳＴ４０において、メモリコントローラ３０及び半導体記憶装置１０は、検証処理の結果に基づき、初期書込み電圧管理テーブルの更新処理を実行し、処理はステップＳＴ５０に進む。初期書込み電圧の検証処理を伴う書込み処理、及び初期書込み電圧管理テーブルの更新処理の詳細（すなわち、ステップＳＴ３１〜ＳＴ３３、及びステップＳＴ４１〜ＳＴ４３）については、後述する。
【０１０９】
ステップＳＴ５０において、メモリコントローラ３０は、当該フロー後の、ホスト機器２からの新たな書込み要求に対する更新処理の発動条件判定に適用する閾値をＮｉからＮ（ｉ＋１）（＞Ｎｉ）に更新し、処理はステップＳＴ７０に進む。これにより、ステップＳＴ３０及びＳＴ４０を実行した後に、同一のグループに対してホスト機器２から新たな書込み要求を受けると、メモリコントローラ３０は、当該新たな書込み要求に対するステップＳＴ２０において、閾値Ｎ（ｉ＋１）に基づいてＷ／Ｅ回数の大小を判定することができる。
【０１１０】
一方、ステップＳＴ２０においてＷ／Ｅ回数が閾値Ｎｉ未満であると判定された場合（ステップＳＴ２０；ｎо）、処理はステップＳＴ６０に進む。
【０１１１】
ステップＳＴ６０において、メモリコントローラ３０及び半導体記憶装置１０は、初期書込み電圧の更新処理を伴わない書込み処理を実行し、処理はステップＳＴ７０に進む。この場合、メモリ３２内の初期書込み電圧管理テーブルは更新されない。したがって、ステップＳＴ６０を実行した後に、同一のグループに対してホスト機器２から新たな書込み要求を受けると、メモリコントローラ３０は、当該新たな書込み要求に対するステップＳＴ２０において、再度閾値Ｎｉに基づいてＷ／Ｅ回数の大小を判定することができる。
【０１１２】
ステップＳＴ７０において、メモリコントローラ３０は、初期書込み電圧管理テーブルを参照し、書込み対象に対応するグループに関連付けられたＷ／Ｅ回数をインクリメントする。
【０１１３】
以上のように動作することにより、Ｗ／Ｅ回数が一定回数に達する度に、半導体記憶装置１０に初期書込み電圧の検証処理を伴う書込み処理を実行させ、その結果としてメモリ３２内の初期書込み電圧管理テーブルを更新することができる。
【０１１４】
次に、第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理のフローの詳細について説明する。
【０１１５】
図１０は、第１実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の詳細を説明するためのフローチャートである。
【０１１６】
図１０に示すように、ステップＳＴ３１において、メモリコントローラ３０は、初期書込み電圧の検証処理を伴う書込み処理を指示する書込みコマンドセットを発行し、半導体記憶装置１０に送出する。以下の説明では、説明の便宜上、「初期書込み電圧の検証処理を伴う書込み処理」は、「初期書込み電圧検証処理」とも称され、「初期書込み電圧の検証処理を伴う書込み処理を指示するコマンドセット」は、「初期書込み電圧検証コマンド」とも称される。
【０１１７】
ステップＳＴ３２において、初期書込み電圧検証コマンドを受けると、シーケンサ１４は、半導体記憶装置１０をレディ状態からビジー状態に遷移させて、初期書込み電圧検証処理を実行する。
【０１１８】
ステップＳＴ３３において、初期書込み電圧検証処理が終了すると、シーケンサ１４は、半導体記憶装置１０をビジー状態からレディ状態に遷移させて、初期書込み電圧検証処理が終了したことをメモリコントローラ３０に通知する。なお、半導体記憶装置１０は、例えば、当該処理によって学習した初期書込み電圧ＩＶＰＧＭに関する情報をレジスタセット１２内に保持する。
【０１１９】
ステップＳＴ４１において、ステップＳＴ３３において送出された終了通知を受けると、メモリコントローラ３０は、初期書込み電圧の検証結果を出力する旨を指示する出力コマンドを発行し、半導体記憶装置１０に送出する。
【０１２０】
ステップＳＴ４２において、ステップＳＴ４１において送出された出力コマンドを受けると、半導体記憶装置１０は、レジスタセット１２に保持された初期書込み電圧の検証結果を参照し、メモリコントローラ３０に送出する。
【０１２１】
ステップＳＴ４３において、メモリコントローラ３０は、メモリ３２内の初期書込み電圧管理テーブルを、初期書込み電圧の検証結果で更新する。
【０１２２】
以上のように動作することにより、同一のグループに対して実行される以降の書込み処理の際に、初期書込み電圧管理テーブルを参照することにより、検証結果が反映された初期書込み電圧を半導体記憶装置１０に指示することができる。
【０１２３】
図１１は、第１実施形態に係るメモリシステムにおける、初期書込み電圧検証処理と、検証結果の出力処理と、を含む一連の処理のコマンドシーケンス及びタイミングチャートを説明するための具体例を示している。図１１の例では、初期書込み電圧の検証対象である複数のメモリセルトランジスタＭＴの閾値電圧分布のプログラムループ毎の変化が併せて示されている。
【０１２４】
図１１に示すように、初期書込み電圧検証処理において、メモリコントローラ３０は、例えば、コマンド“０Ｆｈ”、アドレス情報“ＡＤＤ”、初期書込み電圧データ“ＤＩＶｉ”、及びコマンド“ＸＸｈ”を順に半導体記憶装置１０に送出する。コマンド“ＸＸｈ”は、書込み処理に際して初期書込み電圧の検証処理を併せて実行する旨を指示するコマンドである。
【０１２５】
上述の通り、実運用フェーズでは、メモリ３２の初期書込み電圧管理テーブル内には、有効なデータ（例えば、ＶＰＧＭ０＋ｊΔＶＰＧＭ）が保持されている。このため、メモリコントローラ３０は、初期書込み電圧データ“ＤＩＶｉ”として、データ“ＶＰＧＭ０＋ｊΔＶＰＧＭ”を半導体記憶装置１０に送出する。シーケンサ１４は、コマンド“ＸＸｈ”と共に初期書込み電圧データ“ＤＩＶｉ”としてデータ“ＶＰＧＭ０＋ｊΔＶＰＧＭ”を受けると、初期書込み電圧検証処理を伴う書込み処理における初期書込み電圧ＩＶＰＧＭとして、電圧ＶＰＧＭ０＋ｊΔＶＰＧＭよりも低い電圧を適用する旨を認識する。例えば、シーケンサ１４は、コマンド“ＸＸｈ”を受けると、初期書込み電圧データ“ＤＩＶｉ”に対応する電圧よりもΔＶＰＧＭだけ低い電圧ＶＰＧＭ０＋（ｊ−１）ΔＶＰＧＭを初期書込み電圧ＩＶＰＧＭに適用する旨を認識する。
【０１２６】
続いて、メモリコントローラ３０は、コマンド“８０ｈ”、アドレス情報“ＡＤＤ”、書込みデータ“Ｄｉｎ”、及びコマンド“１０ｈ”を順に半導体記憶装置１０に送出する。なお、初期書込み電圧検証処理は、初期書込み電圧ＩＶＰＧＭの大きさを除いて初期書込み電圧学習処理と同等の処理である。このため、上述のように、書込み処理に際して初期書込み電圧の検証処理を併せて実行する旨を指示するコマンドには、書込み処理に際して初期書込み電圧の学習処理を併せて実行する旨を指示するコマンドと同一のコマンド“ＸＸｈ”が用いることができる。
【０１２７】
半導体記憶装置１０は、コマンド“１０ｈ”を受けると、レディ状態からビジー状態に遷移する。すると、シーケンサ１４は、データ“００”の初期書込み電圧データ“ＤＩＶｉ”、コマンド“ＸＸｈ”を含むコマンドセット、及び書込みデータ“Ｄｉｎ”に基づいて、初期書込み電圧検証処理を実行する。
【０１２８】
具体的には、初期書込み電圧の検証処理は、例えば、プログラム処理及びベリファイ処理を含む。最初のプログラムループのプログラム処理では、シーケンサ１４は、有効な初期書込み電圧データ“ＤＩＶｉ”に基づき、選択ワード線ＷＬｓｅｌに、初期書込み電圧ＩＶＰＧＭ＝ＶＰＧＭ０＋（ｊ−１）ΔＶＰＧＭを印加する。このため、“ＥＲ”状態に対応する複数のメモリセルトランジスタＭＴの閾値電圧分布は、最初のプログラムループで、ベリファイ電圧Ｖｓｖ付近まで一気に近づく。
【０１２９】
一方、初期書込み電圧検証処理のベリファイ処理では、最初のプログラムループから、ベリファイ電圧ＡＶと共に（又はベリファイ電圧ＡＶに先立ち）、ベリファイ電圧Ｖｓｖに対するベリファイ処理が実行される。
【０１３０】
図１１の例では、１回目〜４回目のプログラムループが図示されており、１回目のプログラムループにおいてベリファイ電圧Ｖｓｖに対するベリファイ処理が終了する場合が示されている。すなわち、図１１の例では、初期書込み電圧検証対象の複数のメモリセルトランジスタＭＴのうちの所定数の閾値電圧が、１回目のプログラムループにおけるプログラム処理でベリファイ電圧Ｖｓｖを上回る。この場合、シーケンサ１４は、１回目のプログラムループにおけるプログラム処理で選択ワード線ＷＬｓｅｌに印加された書込み電圧ＶＰＧＭ＝ＶＰＧＭ０＋（ｊ−１）ΔＶＰＧＭをレジスタセット１２内に記憶する。
【０１３１】
その後、シーケンサ１４は、書込みデータ“Ｄｉｎ”に応じて通常の書込み処理を継続して実行し、当該書込み処理が終了すると、半導体記憶装置１０をビジー状態からレディ状態に遷移させる。また、シーケンサ１４は、初期書込み電圧学習処理の終了通知をメモリコントローラ３０に送出する。
【０１３２】
続いて、メモリコントローラ３０は、出力コマンド“Ｂ０ｈ”、アドレス情報“ＡＤＤ”を発行し、半導体記憶装置１０に送出する。出力コマンド“Ｂ０ｈ”を受けると、シーケンサ１４は、半導体記憶装置１０をレディ状態からビジー状態に遷移させて、初期書込み電圧の検証処理結果に基づき、データ“ＤＩＶо”をメモリコントローラ３０に送出する。図１１の例では、シーケンサ１４は、データ“ＤＩＶо”として、書込み電圧ＶＰＧＭ＝ＶＰＧＭ０＋（ｊ−１）ΔＶＰＧＭを示す情報を、メモリコントローラ３０に送出する。データ“ＤＩＶо”の送出が終了すると、シーケンサ１４は、半導体記憶装置１０をビジー状態からレディ状態に遷移させて、検証結果の出力処理を終了する。
【０１３３】
以上のように動作することにより、メモリコントローラ３０は、初期書込み電圧の検証結果に基づき、初期書込み電圧管理テーブル内の情報を、“ＶＰＧＭ０＋ｊΔＶＰＧＭ”から“ＶＰＧＭ０＋（ｊ−１）ΔＶＰＧＭ”に更新することができる。
【０１３４】
１．３  本実施形態に係る効果
第１実施形態によれば、メモリコントローラ３０は、書込み処理を実行する際、最初のプログラムループにおける初期書込み電圧ＩＶＰＧＭを、データ“ＤＩＶｉ”を出力することによって指定する。また、メモリコントローラ３０は、書込み対象の複数のメモリセルトランジスタＭＴに対するＷ／Ｅ回数に応じて、データ“ＤＩＶｉ”を更新する。これにより、メモリコントローラ３０は、書込み対象の複数のメモリセルトランジスタＭＴの閾値電圧上昇特性に応じて、最適な初期書込み電圧ＩＶＰＧＭから書込み処理を開始させることができる。
【０１３５】
図１２は、第１実施形態に係るメモリシステムの効果を説明するためのダイアグラムである。図１２では、比較例に係るメモリシステムに対応する線Ｌ１（Ｌ１ａ及びＬ１ｂ）と、第１実施形態に係るメモリシステムに対応する線Ｌ２（Ｌ２ａ及びＬ２ｂ）と、が示される。比較例に係るメモリシステムは、Ｗ／Ｅ回数に依らず、一定の初期書込み電圧ＩＶＰＧＭが適用される場合に対応する。
【０１３６】
より具体的には、図１２の上部は、Ｗ／Ｅ回数を横軸にとり、過書込みとなる書込み電圧に対する初期書込み電圧が有するマージン（すなわち、過書込み電圧と初期書込み電圧との差）を縦軸に取ったダイアグラムを示す。図１２の上部のダイアグラムでは、比較例に係るメモリシステムの特性が線Ｌ１ａとして、第１実施形態に係るメモリシステムの特性が線Ｌ２ａとして示される。また、図１２の下部は、Ｗ／Ｅ回数を横軸にとり、初期書込み電圧を縦軸に取ったダイアグラムを示す。図１２の下部のダイアグラムでは、比較例に係るメモリシステムの特性が線Ｌ１ｂとして、第１実施形態に係るメモリシステムの特性が線Ｌ２ｂとして示される。
【０１３７】
図１２の下部に示すように、比較例に係るメモリシステムがＷ／Ｅ回数に依らずに一定の初期書込み電圧ＩＶＰＧＭ（例えば、デフォルトの初期書込み電圧ＤＶＰＧＭ０）を適用するのに対し、第１実施形態に係るメモリシステムでは、Ｗ／Ｅ回数に応じて、初期書込み電圧ＩＶＰＧＭの値を更新する。具体的には、Ｗ／Ｅ回数が閾値Ｎ０（＝０）以上の場合、メモリコントローラ３０は、初期書込み電圧管理テーブルの初期設定処理を行う。これにより、メモリコントローラ３０は、初期書込み電圧ＩＶＰＧＭを、デフォルトの初期書込み電圧ＤＰＶＧＭ０より大きい値に更新することができる。その後、閾値Ｎ０をＮ１（＞Ｎ０）に更新し、Ｗ／Ｅ回数が閾値Ｎ０以上となった場合、メモリコントローラ３０は、初期書込み電圧管理テーブルの更新処理を行う。これにより、メモリコントローラ３０は、初期書込み電圧ＩＶＰＧＭを、初期書込み電圧管理テーブルに保持されていた値以下の値に更新することができる。
【０１３８】
図１２の上部に示すように、メモリセルトランジスタＭＴは、Ｗ／Ｅ回数が増加するに従い、閾値電圧の上昇特性が変化する。具体的には、線Ｌ１ａに示すように、Ｗ／Ｅ回数が増加すると、最初のプログラムループにおけるプログラム処理後における、過書込みとなる書込み電圧に対する初期書込み電圧が有するマージンは、減少する。すなわち、Ｗ／Ｅ回数が増加するに従い、メモリセルトランジスタＭＴの閾値電圧は、上昇しやすくなる。このため、Ｗ／Ｅ回数に依らず一定の初期書込み電圧ＩＶＰＧＭを印加する場合、閾値電圧が最も上昇しやすくなる、仕様上限のＷ／Ｅ回数においても、過書込みとならない程度の初期書込み電圧が設定される。しかしながら、このように設定された初期書込み電圧は、閾値電圧が比較的上昇しにくいＷ／Ｅ回数が少ない際には、過書込みとなる書込み電圧に対して過剰なマージンを有している可能性がある。
【０１３９】
第１実施形態によれば、線Ｌ２ａに示すように、Ｗ／Ｅ回数（すなわち、メモリセルトランジスタＭＴの閾値電圧の上昇特性）が閾値Ｎｉに達する度に、初期書込み電圧を更新する。これにより、過書込みとなる書込み電圧に対する初期書込み電圧ＩＶＰＧＭのマージンが過剰に小さくなる前に、当該マージンを適切な値に更新することができる。このため、半導体記憶装置１０のライフサイクルにわたって、最初のプログラムループにおけるメモリセルトランジスタＭＴの閾値電圧上昇量を最適な状態に保つことができ、プログラムループ数の増加を抑制することができる。したがって、Ｗ／Ｅ回数に依らず、書込み時間の増加を抑制することができる。
【０１４０】
また、メモリコントローラ３０は、初期設定処理及び更新処理の際には、コマンド“ＸＸｈ”を半導体記憶装置１０に出力する。これにより、半導体記憶装置１０は、コマンド“ＸＸｈ”を受けると、ベリファイ電圧Ｖｓｖに対するベリファイ処理を実行することができる。このため、半導体記憶装置１０は、ベリファイ電圧Ｖｓｖに対するベリファイ処理が終了したプログラムループにおける書込み電圧を特定することができる。
【０１４１】
また、メモリコントローラ３０は、書込み処理が終了した後、コマンド“Ｂ０ｈ”を半導体記憶装置１０に出力する。これにより、半導体記憶装置１０は、コマンド“Ｂ０ｈ”を受けると、ベリファイ電圧Ｖｓｖに対するベリファイ処理によって特定された書込み電圧をメモリコントローラ３０に出力することができる。このため、メモリコントローラ３０は、最適な初期書込み電圧ＩＶＰＧＭを得ることができる。
【０１４２】
また、メモリコントローラ３０は、メモリ３２内に初期書込み電圧管理テーブルを有し、当該テーブル内に、データ“ＤＩＶｉ”に対応する初期書込み電圧ＩＶＰＧＭを保持する。これにより、メモリコントローラ３０は、半導体記憶装置１０のライフサイクルにわたって、最適な初期書込み電圧ＩＶＰＧＭを把握することができる。
【０１４３】
２．  第２実施形態
次に、第２実施形態に係るメモリシステムについて説明する。第２実施形態は、コマンド“ＸＸｈ”を実行することなく、メモリコントローラ３０内で更新処理を実行する点において、第１実施形態と異なる。以下では、第１実施形態と同等の構成及び動作についてはその説明を省略し、第１実施形態と異なる構成及び動作について主に説明する。
【０１４４】
２．１  更新処理
第２実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理について説明する。
【０１４５】
図１３は、第２実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャートである。図１３は、第１実施形態における図９に対応する。
【０１４６】
図１３に示すように、ステップＳＴ１０において、メモリコントローラ３０は、実運用フェーズ中に、ホスト機器２から書込み要求を受信する。
【０１４７】
ステップＳＴ４０Ａにおいて、メモリコントローラ３０は、書込み処理を実行する前に、Ｗ／Ｅ回数に基づき、初期書込み電圧管理テーブルの更新処理を実行する。より具体的には、例えば、メモリコントローラ３０のＣＰＵ３１には、Ｗ／Ｅ回数をパラメタとして初期書込み電圧ＩＶＰＧＭを算出可能な回路が実装される。これにより、メモリコントローラ３０は、Ｗ／Ｅ回数を参照することにより、当該Ｗ／Ｅ回数に応じた初期書込み電圧ＩＶＰＧＭを算出することができ、当該算出された初期書込み電圧ＩＶＰＧＭを用いて初期書込み管理テーブルを更新することができる。
【０１４８】
続いて、ステップＳＴ６０において、メモリコントローラ３０及び半導体記憶装置１０は、初期書込み電圧の更新処理を伴わない書込み処理を実行し、処理はステップＳＴ７０に進む。この場合、書込み処理は、ステップＳＴ４０Ａにおいて更新された初期書込み電圧管理テーブルを参照して、実行される。
【０１４９】
ステップＳＴ７０において、メモリコントローラ３０は、初期書込み電圧管理テーブルを参照し、書込み対象に対応するグループに関連付けられたＷ／Ｅ回数をインクリメントする。
【０１５０】
以上のように動作することにより、初期書込み電圧の検証処理を伴う書込み処理を実行することなく、Ｗ／Ｅ回数に応じて初期書込み電圧管理テーブルを更新することができる。
【０１５１】
２．２  本実施形態に係る効果
第２実施形態によれば、メモリコントローラ３０は、コマンド“ＸＸｈ”を発行することなく、Ｗ／Ｅ回数に基づいて初期書込み電圧管理テーブルを更新する。これにより、半導体記憶装置１０は、ベリファイ電圧Ｖｓｖに対するベリファイ処理の実行を省略することができる。このため、書込み処理時間の増加を抑制することができる。
【０１５２】
図１４は、第２実施形態に係るメモリシステムの効果を説明するためのダイアグラムである。図１４は、第１実施形態における図１２に対応する。図１４では、比較例に係るメモリシステムに対応する線Ｌ１（Ｌ１ａ及びＬ１ｂ）と、第２実施形態に係るメモリシステムに対応する線Ｌ３（Ｌ３ａ及びＬ３ｂ）と、が示される。
【０１５３】
より具体的には、図１４の上部は、Ｗ／Ｅ回数を横軸にとり、過書込みとなる書込み電圧に対する初期書込み電圧が有するマージンを縦軸に取ったダイアグラムを示す。図１４の上部のダイアグラムでは、比較例に係るメモリシステムの特性が線Ｌ１ａとして、第２実施形態に係るメモリシステムの特性が線Ｌ３ａとして示される。また、図１４の下部は、Ｗ／Ｅ回数を横軸にとり、初期書込み電圧を縦軸に取ったダイアグラムを示す。図１４の下部のダイアグラムでは、比較例に係るメモリシステムの特性が線Ｌ１ｂとして、第２実施形態に係るメモリシステムの特性が線Ｌ３ｂとして示される。
【０１５４】
図１４の下部に示すように、比較例に係るメモリシステムがＷ／Ｅ回数に依らずに一定の初期書込み電圧ＩＶＰＧＭであるのに対し、第２実施形態に係るメモリシステムでは、書込み処理毎に、Ｗ／Ｅ回数に応じて、初期書込み電圧ＩＶＰＧＭの値を更新する。具体的には、メモリコントローラ３０内のＣＰＵ３１には、Ｗ／ＥをパラメタとしてＩＶＰＧＭを算出可能な（すなわち、ＩＶＰＧＭ＝ｆ（Ｗ／Ｅ）を実行可能な関数ｆとして機能する）回路が実装される。これにより、メモリコントローラ３０は、書込み処理毎に初期書込み電圧ＩＶＰＧＭを算出し、初期書込み電圧管理テーブルを更新することができる。
【０１５５】
これにより、図１２の上部における線Ｌ３ａに示すように、メモリコントローラ３０は、Ｗ／Ｅ回数に依らず、常に過書込みとなる書込み電圧に対して適切なマージンを取るようにすることができる。このため、Ｗ／Ｅ回数に依らず、最初のプログラムループにおけるメモリセルトランジスタＭＴの閾値電圧上昇量を最適な状態に保つことができ、プログラムループ数の増加を抑制することができる。したがって、Ｗ／Ｅ回数に依らず、書込み時間の増加を実質的に一定の状態に保つことができる。
【０１５６】
３．  第３実施形態
次に、第３実施形態に係るメモリシステムについて説明する。第３実施形態は、第１実施形態と第２実施形態を組み合わせて実行する。以下では、第１実施形態及び第２実施形態と同等の構成及び動作についてはその説明を省略し、第１実施形態及び第２実施形態と異なる構成及び動作について主に説明する。
【０１５７】
３．１  更新処理
第３実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理について説明する。
【０１５８】
図１５は、第３実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャートである。図１５は、第１実施形態における図９及び第２実施形態における図１３に対応する。
【０１５９】
図１５に示すように、ステップＳＴ１０において、メモリコントローラ３０は、実運用フェーズ中に、ホスト機器２から書込み要求を受信する。
【０１６０】
ステップＳＴ２０において、メモリコントローラ３０は、メモリ３２内の初期書込み電圧管理テーブルを参照し、書込み対象の複数のメモリセルトランジスタＭＴが分類されたグループに対応するＷ／Ｅ回数が所定の閾値Ｎｉ以上であるか否かを判定する。
【０１６１】
Ｗ／Ｅ回数が閾値Ｎｉ以上であると判定された場合（ステップＳＴ２０；ｙｅｓ）、処理はステップＳＴ３０〜ＳＴ５０に進む。
【０１６２】
ステップＳＴ３０において、メモリコントローラ３０及び半導体記憶装置１０は、初期書込み電圧の検証処理を伴う書込み処理を実行し、処理はステップＳＴ４０に進む。
【０１６３】
ステップＳＴ４０において、メモリコントローラ３０及び半導体記憶装置１０は、検証処理の結果に基づき、初期書込み電圧管理テーブルの更新処理を実行し、処理はステップＳＴ５０に進む。
【０１６４】
ステップＳＴ５０において、メモリコントローラ３０は、当該フロー以降の、ホスト機器２からの新たな書込み要求に際しての更新処理の発動条件判定に適用する閾値をＮｉからＮ（ｉ＋１）（＞Ｎｉ）に更新し、処理はステップＳＴ７０に進む。
【０１６５】
一方、ステップＳＴ２０においてＷ／Ｅ回数が閾値Ｎｉ未満であると判定された場合（ステップＳＴ２０；ｎо）、処理はステップＳＴ４０Ａに進む。
【０１６６】
ステップＳＴ４０Ａにおいて、メモリコントローラ３０は、書込み処理を実行する前に、Ｗ／Ｅ回数に基づき、初期書込み電圧管理テーブルの更新処理を実行し、処理はステップＳＴ６０に進む。
【０１６７】
ステップＳＴ６０において、メモリコントローラ３０及び半導体記憶装置１０は、初期書込み電圧の更新処理を伴わない書込み処理を実行し、処理はステップＳＴ７０に進む。この場合、書込み処理は、ステップＳＴ４０Ａにおいて更新された初期書込み電圧管理テーブルを参照して、実行される。
【０１６８】
ステップＳＴ７０において、メモリコントローラ３０は、初期書込み電圧管理テーブルを参照し、書込み対象に対応するグループ（例えば、ワード線ＷＬやストリングユニットＳＵ等）に関連付けられたＷ／Ｅ回数をインクリメントする。
【０１６９】
以上のように動作することにより、Ｗ／Ｅ回数が一定回数に達するまではＣＰＵ３１がＷ／Ｅ回数に応じて初期書込み電圧ＩＶＰＧＭを算出し、Ｗ／Ｅ回数が一定回数に達する度に、半導体記憶装置１０に初期書込み電圧ＩＶＰＧＭの検証処理を伴う書込み処理を実行させることができる。
【０１７０】
３．２  本実施形態に係る効果
第３実施形態によれば、Ｗ／Ｅ回数が閾値Ｎｉに達するまでは、メモリコントローラ３０は、初期書込み電圧の検証処理を伴う書込み処理を実行することなく、初期書込み電圧ＩＶＰＧＭを更新する。これにより、Ｗ／Ｅ回数が閾値Ｎｉに達するまでの期間において、ＣＰＵ３１が予測する最適な初期書込み電圧を適用することができる。
【０１７１】
また、Ｗ／Ｅ回数が閾値Ｎｉに達すると、メモリコントローラ３０は、初期書込み電圧の検証処理を伴う書込み処理を実行することにより、最適な初期書込み電圧ＩＶＰＧＭの実測値を得る。これにより、Ｗ／Ｅ回数が閾値Ｎｉに達する度に最適な初期書込み電圧ＩＶＰＧＭの予測値と実測値とのずれを解消することができる。したがって、過書込みとなる書込み電圧に対する初期書込み電圧ＩＶＰＧＭのマージンを常に最適な状態に保つことができる。
【０１７２】
４．変形例等
以上、種々の実施形態について説明したが、第１実施形態、第２実施形態、及び第３実施形態は、これに限られず、種々の変形が適宜適用可能である。
【０１７３】
４．１  第１変形例
例えば、第１実施形態、第２実施形態、及び第３実施形態では、図５に示したように、メモリ３２内において、セルユニットＣＵ毎に初期書込み電圧ＩＶＰＧＭが管理される場合について説明したが、これに限られない。例えば、複数のセルユニットＣＵ、複数のストリングユニットＳＵ、複数のワード線ＷＬ、複数のブロックＢＬＫ、又は複数のチップＣｈｉｐでグループ化することにより、同一のグループでは同じ初期書込み電圧ＩＶＰＧＭが適用されてもよい。すなわち、同一のグループは、メモリセルアレイ１７への書込み単位、消去単位、又はワード線ＷＬ単位であってもよいし、これらの複数の単位を任意に含んでいてもよい。
【０１７４】
図１６は、第１変形例に係るメモリシステムの初期書込み電圧管理テーブルを説明するための概念図である。図１６の例では、１つの初期書込み電圧ＩＶＰＧＭが、同一のワード線ＷＬに接続される複数のメモリセルトランジスタＭＴに対して（ストリングユニットＳＵに依らずに）割り当てられている。これにより、初期書込み電圧管理テーブルのサイズを圧縮することができ、メモリコントローラ３０の負荷を低減することができる。また、Ｗ／Ｅ回数に対する閾値電圧の上昇特性が同等の傾向を示す複数のメモリセルトランジスタＭＴをグループ化することで、初期書込み電圧ＩＶＰＧＭの最適化の精度を劣化させることなく、テーブルサイズを圧縮することができる。
【０１７５】
図１６の例では、チップＣｈｉｐ０のブロックＢＬＫ０内においてグループ化される場合が示されているが、１つのグループに含まれるメモリセルトランジスタＭＴは、異なる複数のブロックＢＬＫにまたがっていてもよい。例えば、ワード線ＷＬ０に接続される複数のメモリセルトランジスタＭＴは、属するブロックＢＬＫやチップＣｈｉｐに依らず、１つのグループに含まれ得る。
【０１７６】
なお、第１変形例において、Ｗ／Ｅ回数は、初期書込み電圧ＩＶＰＧＭがグループ化された単位よりも小さな単位で管理されていてもよい。この場合、更新処理に用いられるＷ／Ｅ回数としては、例えば、当該グループ内におけるＷ／Ｅ回数の最大値又は平均値等が適用可能である。
【０１７７】
また、メモリコントローラ３０は、複数回のプログラムループによってデータが書き込まれる書込み方式を用いる場合、初期書込み電圧管理テーブル内の同一のグループに対して、当該複数回のプログラムループの各々に対応する初期書込み電圧ＩＶＰＧＭ及びＷ／Ｅ回数の組をそれぞれ記憶してもよい。
【０１７８】
複数回のプログラムループによってデータが書き込まれる書込み方式の第１例としては、１回目のプログラムループによって全ページのうちの一部分（例えば、ＱＬＣ書込み方式では４ページのうちの２ページ）に対応するデータを書き込み、２回目のプログラムループによって残りのページに対応するデータを更に書き込む方式が挙げられる。第１例では、メモリセルトランジスタＭＴに対して、２段階にデータを書き込むことができる。
【０１７９】
また、複数回のプログラムループによってデータが書き込まれる書込み方式の第２例としては、１回目のプログラムループによって書込み対象及びその周囲を含むメモリセルトランジスタＭＴの閾値電圧をある程度まで上昇させておき、２回目のプログラムループによって閾値電圧分布の形状の詳細を調整する書込み方式が挙げられる。第２例によれば、周囲のメモリセルトランジスタＭＴへの書込み処理によって書込み対象のメモリセルトランジスタＭＴの閾値電圧が変動する影響を低減することができる。
【０１８０】
図１７は、第１変形例の更なる変形例に係るメモリシステムの初期書込み電圧管理テーブルを説明するための概念図である。図１７の例では、２つの初期書込み電圧ＩＶＰＧＭ及びＷ／Ｅ回数の組が、同一のグループに対して割り当てられている。これにより、上述したような書込み処理に複数回（図１７の例では２回）のプログラムループを実行する書込み方式において、各プログラムループに対して独立に初期書込み電圧ＩＶＰＧＭ及びＷ／Ｅ回数の組を管理できる。
【０１８１】
４．２  第２変形例
また、例えば、第１実施形態、第２実施形態、及び第３実施形態では、初期書込み電圧管理テーブルでグループ化された単位毎に、初期書込み電圧の検証処理を伴う書込み処理が実行される場合について説明したが、これに限られない。例えば、初期書込み電圧管理テーブルにおける１つのグループに対して実行された更新処理の結果を、他のグループに対して反映させてもよい。
【０１８２】
図１８は、第２変形例に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するための概念図である。図１８では、初期書込み電圧管理テーブルのうちの１つのエントリに対して実行された初期書込み電圧ＩＶＰＧＭの更新処理が、他のエントリに反映される様子が模式的に示されている。
【０１８３】
図１８の例では、初期書込み電圧管理テーブルには、ワード線ＷＬ及びストリングユニットＳＵの組毎（すなわち、セルユニットＣＵ毎）に、初期書込み電圧ＩＶＰＧＭが保持されている場合が示される。具体的には、例えば、ワード線ＷＬ０に接続されてストリングユニットＳＵ０に属する複数のメモリセルトランジスタＭＴ（ＷＬ０／ＳＵ０）には、初期書込み電圧ＩＶＰＧＭ＝ＶＰＧＭ０＋１３ΔＶＰＧＭが対応付けられる。また、ワード線ＷＬ１に接続されたストリングユニットＳＵ１〜ＳＵ３に属する複数のメモリセルトランジスタＭＴ（ＷＬ０／ＳＵ１〜ＷＬ０／ＳＵ３）には、初期書込み電圧ＩＶＰＧＭ＝ＶＰＧＭ０＋１２ΔＶＰＧＭ、ＶＰＧＭ０＋１２ΔＶＰＧＭが対応付けられる。ワード線ＷＬ１に接続されてストリングユニットＳＵ１に属する複数のメモリセルトランジスタＭＴ（ＷＬ１／ＳＵ０）には、初期書込み電圧ＩＶＰＧＭ＝ＶＰＧＭ０＋１４ΔＶＰＧＭが対応付けられる。
【０１８４】
ここで、メモリコントローラ３０は、上述のような初期書込み電圧管理テーブルのうち、ＷＬ１／ＳＵ０に対する更新処理を実行する。これにより、ＷＬ１／ＳＵ０には、初期書込み電圧ＩＶＰＧＭ＝ＶＰＧＭ０＋１２ΔＶＰＧＭが対応付けられたものとする。この場合、ＷＬ１／ＳＵ０に対応付けられる初期書込み電圧ＩＶＰＧＭは、−２ΔＶＰＧＭだけ変化する。
【０１８５】
第２変形例では、ＷＬ１／ＳＵ０に対する更新処理の結果（２ΔＶＰＧＭの減算）を、他のグループに対しても反映する。これにより、１つのグループに対して更新処理を実行すれば、他のグループに対する更新処理を実行することなく、初期書込み電圧ＩＶＰＧＭを適切な値に管理することができる。このため、例えば、検証処理を伴う書込み処理の実行回数の増加を抑制することができ、ひいては、書込み処理時間の増加を抑制することができる。
【０１８６】
なお、図１８の例では、１つのグループに対する更新処理の結果を全てのグループに対して一様に反映する場合を示したが、これに限られない。例えば、或るグループに対する更新処理の結果を反映可能な複数のグループが、予め設定されていてもよい。これにより、更新処理の結果を、同等の閾値電圧上昇特性を有する一群のグループに対して適切に反映させることができる。
【０１８７】
４．３  第３変形例
また、例えば、初期書込み電圧ＩＶＰＧＭは、Ｗ／Ｅ回数以外のパラメタを用いて更新されてもよい。
【０１８８】
図１９は、第３変形例に係るメモリシステムにおける半導体記憶装置の構成を説明するためのブロック図である。図１９に示すように、半導体記憶装置１０は、温度センサ１４Ｓを更に含み得る。
【０１８９】
温度センサ１４Ｓは、例えば、半導体記憶装置１０内（例えば、メモリセルアレイ１７）の温度を測定する。シーケンサ１４は、温度センサ１４Ｓの温度測定結果を取得すると、当該測定結果をメモリコントローラ３０に送出する。
【０１９０】
以上のように構成することにより、メモリコントローラ３０は、半導体記憶装置１０内の温度状態に基づき、初期書込み電圧ＩＶＰＧＭを補正することができる。
【０１９１】
図２０は、第３変形例に係るメモリシステムにおける初期書込み電圧補正テーブルを説明するための概念図である。初期書込み電圧補正テーブルは、例えば、メモリコントローラ３０のメモリ３２内に予め保持されている。
【０１９２】
図２０に示すように、初期書込み電圧補正テーブルには、Ｗ／Ｅ回数と、温度センサ１４Ｓからの温度情報とに基づいて、初期書込み電圧ＩＶＰＧＭの補正量が設定されている。図２０の例では、例えば、Ｗ／Ｅ回数がＮ０からＮ１までの範囲の際に、半導体記憶装置１０の温度が低温状態である場合や、高温状態である場合に応じて、初期書込み電圧ＩＶＰＧＭが設定される。また、例えば、Ｗ／Ｅ回数がＮ０からＮ１までの範囲とは異なる範囲（例えば、Ｎ１からＮ２までの範囲）の際には、半導体記憶装置１０の温度が低温状態である場合や、高温状態である場合に応じて、異なる初期書込み電圧ＩＶＰＧＭが設定される。ここで、低温状態及び高温状態とはそれぞれ、半導体記憶装置１０の温度が平温状態（例えば、室温）である場合と比較して、有意に低い状態、及び有意に高い状態を意味している。
【０１９３】
以上のように構成することにより、メモリコントローラ３０は、書込み処理を実行する際、予め半導体記憶装置１０の温度情報を取得しておくことで、初期書込み電圧補正テーブルを参照することにより、初期書込み電圧ＩＶＰＧＭの補正量を得ることができる。これにより、最適な初期書込み電圧の温度依存性がＷ／Ｅ回数に応じて変化する場合でも、初期書込み電圧補正テーブルに基づき、初期書込み電圧ＩＶＰＧＭを適切に補正することができる。
【０１９４】
４．４  その他
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１９５】
１…メモリシステム、２…ホスト機器、１０…半導体記憶装置、１１…入出力回路、１２…レジスタセット、１２Ａ…ステータスレジスタ、１２Ｂ…アドレスレジスタ、１２Ｃ…コマンドレジスタ、１３…ロジックコントローラ、１４…シーケンサ、１４Ｓ…温度センサ、１５…レディ／ビジー制御回路、１６…電圧生成回路、１７…メモリセルアレイ、１８…ロウデコーダモジュール、１９…センスアンプモジュール、２０…バッファメモリ、３０…メモリコントローラ、３１…ＣＰＵ、３２…メモリ、３３…ホストインタフェース回路、３４…ＥＣＣ回路、３５…ＮＡＮＤインタフェース回路、３６…ＲＡＭインタフェース回路、２１０…ホストインタフェース回路、２２０…メモリ、２３０…プロセッサ、２４０…バッファメモリ、２５０…ＮＡＮＤインタフェース回路、２６０…ＥＣＣ回路、３００…ホスト機器。
【図１】
2020119618.tif 000003
【図２】
2020119618.tif 000004
【図３】
2020119618.tif 000005
【図４】
2020119618.tif 000006
【図５】
2020119618.tif 000007
【図６】
2020119618.tif 000008
【図７】
2020119618.tif 000009
【図８】
2020119618.tif 000010
【図９】
2020119618.tif 000011
【図１０】
2020119618.tif 000012
【図１１】
2020119618.tif 000013
【図１２】
2020119618.tif 000014
【図１３】
2020119618.tif 000015
【図１４】
2020119618.tif 000016
【図１５】
2020119618.tif 000017
【図１６】
2020119618.tif 000018
【図１７】
2020119618.tif 000019
【図１８】
2020119618.tif 000020
【図１９】
2020119618.tif 000021
【図２０】
2020119618.tif 000022