(57)【要約】【課題】処理能力の低下を抑制する。【解決手段】実施形態によれば、メモリシステムは、複数のメモリセルＭＴを含むメモリセルアレイ１０８を有するメモリチップ１１と、メモリチップ１１が接続されたコントローラ１０とを含む。コントローラ１０は、コマンドを発行する第１回路２２と、電力スロットリング制御を行う第２回路２３と、書き込み動作における電力消費値を管理する第３回路２４と、第１回路から受信したコマンドに基づいてメモリチップを制御する第４回路２６とを含む。書き込み動作は、第１動作モードと第１動作モードに基づく情報を用いてプログラム電圧ＶＰＧＭＳが設定される第２動作モードとを含む。第３回路２４は、情報に基づいて第２動作モードの電力消費値を設定する。【選択図】図１
2020013626.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを含むメモリセルアレイを有するメモリチップと、
前記メモリチップが接続されたコントローラと
を備え、前記コントローラは、
コマンドを発行する第１回路と、
電力スロットリング制御を行う第２回路と、
書き込み動作における電力消費値を管理する第３回路と、
前記第１回路から受信した前記コマンドに基づいて前記メモリチップを制御する第４回路と
を含み、
前記書き込み動作は、第１動作モードと前記第１動作モードに基づく情報を用いてプログラム電圧が設定される第２動作モードとを含み、
前記第３回路は、前記情報に基づいて前記第２動作モードの前記電力消費値を設定する、
メモリシステム。
【請求項２】
前記書き込み動作は、プログラム動作とプログラムベリファイ動作とを繰り返すプログラムループを含み、
前記第２動作モードの１回目の前記プログラムループにおける前記プログラム電圧は、前記第１動作モードの１回目の前記プログラムループにおけるプログラム電圧よりも大きい、
請求項１記載のメモリシステム。
【請求項３】
前記情報は、前記第１動作モードによる前記書き込み動作を実行した際の前記プログラムループの回数を含む、
請求項２記載のメモリシステム。
【請求項４】
前記情報は、前記第１動作モードによる前記書き込み動作の書き込み速度情報を含む、
請求項１記載のメモリシステム。
【請求項５】
前記メモリセルアレイは、前記複数のメモリセル並びに第１及び第２選択トランジスタが直列に接続された複数のメモリストリングをそれぞれ有する複数のブロックを含み、
前記第３回路は、ブロック単位で前記電力消費値を管理する、
請求項１乃至４のいずれか一項記載のメモリシステム。
【請求項６】
複数の前記メモリチップを更に備え、
前記第３回路は、メモリチップ単位で前記電力消費値を管理する、
請求項１乃至４のいずれか一項記載のメモリシステム。
【請求項７】
前記メモリチップは、ＮＡＮＤ型フラッシュメモリである、
請求項１乃至６のいずれか一項記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
例えばメモリシステムとして、ＮＡＮＤ型フラッシュメモリなどの不揮発性半導体メモリを搭載したＳＳＤ（Solid State Drive）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許９５７５６７７号明細書
【特許文献２】特開２０１４−２３２５４０号公報
【特許文献３】米国特許９７２７２４８号明細書
【特許文献４】特開２０１７−１１７０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理能力の低下を抑制できるメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
上記実施形態に係るメモリシステムは、複数のメモリセルを含むメモリセルアレイを有するメモリチップと、メモリチップが接続されたコントローラとを含む。コントローラは、コマンドを発行する第１回路と、電力スロットリング制御を行う第２回路と、書き込み動作における電力消費値を管理する第３回路と、第１回路から受信したコマンドに基づいてメモリチップを制御する第４回路とを含む。書き込み動作は、第１動作モードと第１動作モードに基づく情報を用いてプログラム電圧が設定される第２動作モードとを含む。第３回路は、情報に基づいて第２動作モードの電力消費値を設定する。
【図面の簡単な説明】
【０００６】
【図１】図１は、一実施形態に係るメモリシステムのブロック図である。
【図２】図２は、一実施形態に係るメモリシステムの備えるメモリチップのブロック図である。
【図３】図３は、一実施形態に係るメモリシステムの備えるメモリチップにおけるメモリセルアレイの回路図である。
【図４】図４は、一実施形態に係るメモリシステムにおける書き込み動作において、ノーマルモードとスマートベリファイモードとにおける選択ワード線の電圧とプログラムループの関係を示す図である。
【図５】図５は、一実施形態に係るメモリシステムにおける全体の動作の流れを示すフローチャートである。
【図６】図６は、一実施形態に係るメモリシステムにおける全体の動作の流れを示すフローチャートである。
【図７】図７は、一実施形態に係るメモリシステムの備えるメモリにおける書き込み動作のフローチャートである。
【図８】図８は、一実施形態に係るメモリシステムにおける書き込み動作時のコマンドシーケンスを示す図である。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。図面は模式的なものである。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照され、且つ同様の構成を有する要素同士を区別するために用いられている。同じ文字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素は同じ文字のみを含んだ参照符号により参照される。
【０００８】
１  構成について
以下に、実施形態に係るメモリシステムについて説明する。なお、以下の説明では、メモリシステムがＳＳＤ（solid state drive）である場合を例に説明する。
【０００９】
１．１  メモリシステムの全体構成について
まず、メモリシステム１の全体構成について、図１を用いて説明する。
【００１０】
図１に示すように、メモリシステム１は、システムコントローラ１０、Ｍ（Ｍは２以上の整数）個の不揮発性メモリチップ１１＿０〜１１＿（Ｍ−１）、及びＲＡＭ（random access memory）１２を含む。以下、メモリチップ１１＿０〜１１＿（Ｍ−１）のそれぞれを限定しない場合は、メモリチップ１１と表記する。
【００１１】
システムコントローラ１０は、メモリチップ１１のメモリ空間を管理する。また、システムコントローラ１０は、ホストデバイス２からの要求に応答して、メモリチップ１１に対してデータの読み出し動作、書き込み動作、及び消去動作等を命令する。システムコントローラ１０は、例えば、ＳｏＣ（system on chip）であってもよい。なお、システムコントローラ１０の各機能は専用回路で実現されても良いし、プロセッサがファームウェアを実行することにより実現されてもよい。本実施形態では、システムコントローラ１０内に専用回路が設けられている場合について説明する。
【００１２】
システムコントローラ１０には、装置規格として電力消費の上限値が設定されている。電力消費の上限値を遵守するため、システムコントローラ１０では電力スロットリング制御が行われている。より具体的には、例えば、システムコントローラ１０は、メモリシステム１全体の電力消費を制御するために電力消費値の上限値が予め設定されている。そして、システムコントローラ１０からメモリチップ１１に送信されるコマンドにおいて、書き込み動作または消去動作等の電力消費の比較的大きなコマンドは、スロットリング対象のコマンドと定義され、それぞれの電力消費に対応した電力消費値が割り付けられている。例えば、書き込み動作による電力消費が消去動作による電力消費よりも大きい場合、書き込み動作の電力消費値は、消去動作の電力消費値よりも大きい値に設定される。システムコントローラ１０は、実行しようとしている複数のコマンドの電力消費値の合計が電力消費値の上限値を超えていなければ、これら複数のコマンドを同時に実行可能である。システムコントローラ１０は、システム全体として、実行中の複数のコマンドの電力消費値の合計が、電力消費値の上限値を超えないように制御することにより、電力消費を制御する。
【００１３】
なお、本実施形態では、書き込み動作はノーマルモードとスマートベリファイモードの２つ動作モードを含み、選択した動作モードにより電力消費値が異なる。スマートベリファイモードは、ノーマルモードの結果からプログラム電圧を決定して書き込み動作を行うモードであり、スマートベリファイモードを選択した場合、ノーマルモードよりも電力消費が低減されるので、スマートベリファイモードの電力消費値をノーマルモードの電力消費値よりも小さい値に設定する。２つの動作モードの詳細については後述する。
【００１４】
電力スロットリング制御の一例について簡単に説明する。例えば、メモリシステム１における電力消費値の上限値を“１０”とし、ノーマルモードにおける電力消費値を“３”とし、スマートベリファイモードにおける電力消費値を“１”とする。すると、ノーマルモードだけを選択した場合、３個のコマンドまでしか同時に実行できないが、スマートベリファイモードだけを選択した場合、１０個のコマンドまで同時に実行できる。
【００１５】
システムコントローラ１０は、プロセッサ（ＣＰＵ：central processing unit）２０、バッファコントローラ２１、コマンドディスパッチャ２２、スロットリングコントローラ２３、ベリファイレベルコントローラ２４、ホストインターフェイス回路２５、及びＭ個のＮＡＮＤコントローラ２６＿０〜２６＿（Ｍ−１）を含む。以下、ＮＡＮＤコントローラ２６＿０〜２６＿（Ｍ−１）のそれぞれを限定しない場合は、ＮＡＮＤコントローラ２６と表記する。
【００１６】
プロセッサ２０は、システムコントローラ１０全体の動作を制御する。また、プロセッサ２０は、ウェアレベリング等、メモリチップ１１を管理するための様々な処理を実行する。更に、プロセッサ２０は、各種の演算を実行する。例えば、プロセッサ２０は、データの暗号化処理やランダマイズ処理等を実行する。
【００１７】
バッファコントローラ２１は、ＲＡＭ１２とのデータの送受信を制御する。
【００１８】
コマンドディスパッチャ２２は、ホストデバイス２またはプロセッサ２０より、書き込み動作、読み出し動作、または消去動作等の動作要求を受信するとそれに対応したコマンド（アドレスまたはデータ等を含む）を発行する。そして、コマンドディスパッチャ２２は、要求を実行させるＮＡＮＤコントローラ２６を選択し、発行したコマンドを送信する。
【００１９】
スロットリングコントローラ２３は、メモリシステム１全体で実行している複数のコマンドの電力消費値を管理し、スロットリング制御を行う。例えば、スロットリングコントローラ２３は、ＮＡＮＤコントローラ２６からスロットリング管理対象のコマンドの実行可否の問い合わせを受信すると、問い合わせを受けたコマンドの電力消費値と電力消費可能な量（電力消費値の上限値から実行中のコマンドの電力消費値の合計を引いた値）とからコマンドの実行可否を決定し、その結果をＮＡＮＤコントローラ２６に送信する。また、スロットリングコントローラ２３は、ＮＡＮＤコントローラ２６からコマンド終了の報告を受信すると、終了したコマンドの電力消費値を電力消費可能な量に加算する。
【００２０】
ベリファイレベルコントローラ２４は、予め設定されたメモリ領域単位で書き込み動作を実行する際の電力消費値を管理する。より具体的には、例えば、ベリファイレベルコントローラ２４は、メモリ領域に対応するプログラムパラメータ情報（書き込み動作終了までのプログラムループ回数、書き込み動作終了時のプログラム電圧、または書き込み速度情報等）がない場合、すなわち、当該メモリ領域内でノーマルモードによる書き込み動作が実行されていない場合、デフォルトの電力消費値を設定する。また、例えば、ベリファイレベルコントローラ２４は、メモリ領域に対応するプログラムパラメータ情報がある場合、すなわち、当該メモリ領域内でノーマルモードによる書き込み動作が実行済みである場合、ノーマルモードで得られたプログラムパラメータ情報に基づいてスマートベリファイモード用の電力消費値を設定する。なお、スマートベリファイモード用の電力消費値は、プログラムパラメータ情報に基づいて、メモリ領域毎に異なる値が設定されてもよい。
【００２１】
ベリファイレベルコントローラ２４により設定された電力消費値は、ＲＡＭ１２等にメモリチップ１１のアドレスと関連付けて保存される。
【００２２】
ベリファイレベルコントローラ２４は、例えば、ＮＡＮＤコントローラ２６から書き込みコマンドを受信すると、対応するメモリ領域におけるノーマルモードまたはスマートベリファイモードによる書き込み動作の電力消費値を確認し、ＮＡＮＤコントローラ２６にその結果を送信する。
【００２３】
ホストインターフェイス回路２５は、コントローラバスを介してホストデバイス２と接続され、ホストデバイス２との通信を司る。ホストインターフェイス回路２５は、プロセッサ２０、バッファコントローラ２１、及びコマンドディスパッチャ２２等に、ホストデバイス２から受信した要求（命令、アドレス、及びデータ等）を転送する。また、ホストインターフェイス回路２５は、プロセッサ２０の命令に応答して、メモリチップ１１から読み出したデータ等をホストデバイス２に送信する。
【００２４】
ＮＡＮＤコントローラ２６は、対応するメモリチップ１１を制御する。なお、図１の例では、１つのＮＡＮＤコントローラ２６が１つのメモリチップ１１を制御する場合を示しているが、１つのＮＡＮＤコントローラ２６が複数のメモリチップ１１を制御してもよい。
【００２５】
ＮＡＮＤコントローラ２６は、コマンドディスパッチャ２２からコマンドを受信すると、複数のコマンドの実行順序を調整しながらメモリチップ１１で実行する１つのコマンドを決定する。ＮＡＮＤコントローラ２６は、コマンドディスパッチャ２２から書き込みコマンドを受信した場合、ベリファイレベルコントローラ２４にコマンドに対応する電力消費値を問い合わせる。また、ＮＡＮＤコントローラ２６は、決定したコマンドがスロットリング管理対象である場合、スロットリングコントローラ２３にコマンド実行可否を問い合わせる。
【００２６】
メモリチップ１１は、複数のメモリセルからなる特定の書き込み単位でデータの書き込み動作及び読み出し動作を行う。更に、メモリチップ１１は、複数の書き込み単位からなる消去単位でデータを消去する。例えば、メモリチップ１１がＮＡＮＤ型フラッシュメモリである場合、メモリチップ１１は、ページ単位で書き込み動作及び読み出し動作を行う。以下では、メモリチップ１１が、メモリセルトランジスタを半導体基板上に三次元に積層された三次元積層型ＮＡＮＤ型フラッシュメモリである場合について説明する。なお、メモリチップ１１は、三次元積層型ＮＡＮＤ型フラッシュメモリに限定されず、半導体基板上にメモリセルトランジスタが二次元に配置された平面型ＮＡＮＤ型フラッシュメモリでもよく、他の不揮発性のメモリであってもよい。メモリチップ１１の構成の詳細については後述する。
【００２７】
ＲＡＭ１２は、例えばＤＲＡＭ（dynamic random access memory）等の半導体メモリであり、プロセッサ２０の作業領域として使用される。例えば、ＲＡＭ１２は、メモリチップ１１のアドレスに関連付けて、電力消費値及びプログラムパラメータ情報等を記憶する。なお、ＲＡＭ１２は、システムコントローラ１０内に設けられてもよい。
【００２８】
１．２  メモリチップの構成について
次に、メモリチップ１１の構成について、図２を用いて説明する。なお、図２では各ブロック間の接続の一部を矢印線で示しているが、ブロック間の接続はこれに限定されない。
【００２９】
図２に示すように、メモリチップ１１は、入出力回路１００、ロジック制御回路１０１、ステータスレジスタ１０２、アドレスレジスタ１０３、コマンドレジスタ１０４、シーケンサ１０５、レディ／ビジー回路１０６、電圧発生回路１０７、メモリセルアレイ１０８、ロウデコーダ１０９、センスアンプ１１０、データレジスタ１１１、及びカラムデコーダ１１２を含む。
【００３０】
入出力回路１００は、ＮＡＮＤコントローラ２６との信号ＤＱの入出力を制御する。より具体的には、入出力回路１００は、ＮＡＮＤコントローラ２６から信号ＤＱを介して受信したデータＤＡＴをデータレジスタ１１１に送信し、アドレスＡＤＤをアドレスレジスタ１０３に送信し、コマンドＣＭＤをコマンドレジスタ１０４に送信する。また、入出力回路１００は、ステータスレジスタ１０２から受信したステータス情報ＳＴＳ、データレジスタ１１１から受信したデータＤＡＴ及びアドレスレジスタ１０３から受信したアドレスＡＤＤ等を、信号ＤＱを介してＮＡＮＤコントローラ２６に送信する。
【００３１】
ロジック制御回路１０１は、ＮＡＮＤコントローラ２６から各種制御信号を受信する。そしてロジック制御回路１０１は、受信した制御信号に応じて、入出力回路１００及びシーケンサ１０５を制御する。
【００３２】
ステータスレジスタ１０２は、例えば、書き込み動作、読み出し動作、及び消去動作におけるステータス情報ＳＴＳを一時的に保持し、ＮＡＮＤコントローラ２６に動作が正常に終了したか否かを通知する。また、ステータスレジスタ１０２は、書き込み動作時に取得したプログラムパラメータ情報を一時的に保持する。
【００３３】
アドレスレジスタ１０３は、入出力回路１００を介してＮＡＮＤコントローラ２６から受信したアドレスＡＤＤを一時的に保持する。そしてアドレスレジスタ１０３は、ロウアドレスＲＡをロウデコーダ１０９へ転送し、カラムアドレスＣＡをカラムデコーダ１１２に転送する。
【００３４】
コマンドレジスタ１０４は、入出力回路１００を介してＮＡＮＤコントローラ２６から受信したコマンドＣＭＤを一時的に保存し、シーケンサ１０５に転送する。
【００３５】
シーケンサ１０５は、メモリチップ１１全体の動作を制御する。より具体的には、シーケンサ１０５は、コマンドレジスタ１０４が保持するコマンドＣＭＤに応じて、例えばステータスレジスタ１０２、レディ／ビジー回路１０６、電圧発生回路１０７、ロウデコーダ１０９、センスアンプ１１０、データレジスタ１１１、及びカラムデコーダ１１２等を制御し、書き込み動作、読み出し動作、及び消去動作等を実行する。
【００３６】
また、シーケンサ１０５は、任意のメモリ領域毎に書き込み速度等を検出する機能（以下、スマートベリファイ機能と表記する）を有する。より具体的には、例えば、シーケンサ１０５は、ノーマルモードによる書き込み動作の結果から得られたプログラムパラメータ情報を抽出する。また、シーケンサ１０５は、書き込み動作の際に、プログラムパラメータ情報に基づいてスマートベリファイモードにおけるプログラム電圧を決定する。
【００３７】
レディ／ビジー回路１０６は、シーケンサ１０５の動作状況に応じて、レディ／ビジー信号ＲＢｎをＮＡＮＤコントローラ２６に送信する。より具体的には、メモリチップ１１がレディ状態にある場合、信号ＲＢｎをＨｉｇｈ（“Ｈ”）レベルとし、メモリチップ１１がビジー状態にある場合、信号ＲＢｎをＬｏｗ（“Ｌ”）レベルとする。
【００３８】
電圧発生回路１０７は、シーケンサ１０５の制御に応じて、書き込み動作、読み出し動作、及び消去動作に必要な電圧を発生させ、この発生した電圧を例えばメモリセルアレイ１０８、ロウデコーダ１０９、及びセンスアンプ１１０等に供給する。ロウデコーダ１０９及びセンスアンプ１１０は、電圧発生回路１０７より供給された電圧をメモリセルアレイ１０８内のメモリセルトランジスタに印加する。
【００３９】
メモリセルアレイ１０８は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルトランジスタ（以下、「メモリセル」とも表記する）を含む。
【００４０】
ロウデコーダ１０９は、ロウアドレスＲＡをデコードする。ロウデコーダ１０９は、デコード結果に基づき、メモリセルアレイ１０８に、必要な電圧を印加する。
【００４１】
センスアンプ１１０は、読み出し動作のときには、メモリセルアレイ１０８から読み出されたデータをセンスする。そして、センスアンプ１１０は、読み出しデータをデータレジスタ１１１に送信する。また、センスアンプ１１０は、書き込み動作のときには、書き込みデータをメモリセルアレイ１０８に送信する。
【００４２】
データレジスタ１１１は、複数のラッチ回路を備える。ラッチ回路は、書き込みデータまたは読み出しデータを一時的に保持する。
【００４３】
カラムデコーダ１１２は、例えば書き込み動作、読み出し動作、及び消去動作の際、カラムアドレスＣＡをデコードし、デコード結果に応じてデータレジスタ１１１内のラッチ回路を選択する。
【００４４】
１．３  メモリセルアレイの構成について
次に、メモリセルアレイ１０８の構成について、図３を用いて説明する。図３の例は、ブロックＢＬＫ０を示しているが、他のブロックＢＬＫの構成も同じである。
【００４５】
図３に示すように、ブロックＢＬＫ０は、例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。そして、各々のストリングユニットＳＵは、複数のＮＡＮＤストリングＳＲを含む。ＮＡＮＤストリングＳＲの各々は、例えば８個のメモリセルトランジスタＭＴ０〜ＭＴ７、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。以下、メモリセルトランジスタＭＴ０〜ＭＴ７のそれぞれを限定しない場合は、メモリセルトランジスタＭＴと表記する。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。
【００４６】
なお、メモリセルトランジスタＭＴは、電荷蓄積層に絶縁膜を用いたＭＯＮＯＳ型であってもよいし、電荷蓄積層に導電層を用いたＦＧ型であってもよい。また、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、９６個、１２８個等であってもよく、その数は限定されるものではない。更に、選択トランジスタＳＴ１及びＳＴ２の個数は、任意であり、それぞれ１個以上あればよい。
【００４７】
メモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。より具体的には、メモリセルトランジスタＭＴ０〜ＭＴ７は、その電流経路が直列に接続される。そしてメモリセルトランジスタＭＴ７のドレインは、選択トランジスタＳＴ１のソースに接続され、メモリセルトランジスタＭＴ０のソースは、選択トランジスタＳＴ２のドレインに接続されている。
【００４８】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３を介してロウデコーダ１０９に接続される。同様に、ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、それぞれ選択ゲート線ＳＧＳ０〜ＳＧＳ３を介してロウデコーダ１０９に接続される。以下、選択ゲート線ＳＧＤ０〜ＳＧＤ３のそれぞれを限定しない場合は、選択ゲート線ＳＧＤと表記する。選択ゲート線ＳＧＳ０〜ＳＧＳ３のそれぞれを限定しない場合は、選択ゲート線ＳＧＳと表記する。なお、各ストリングユニットＳＵの選択ゲート線ＳＧＳ０〜ＳＧＳ３は共通に接続されてもよい。
【００４９】
ブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。ワード線ＷＬ０〜ＷＬ７はロウデコーダ１０９に接続される。以下、ワード線ＷＬ０〜ＷＬ７のそれぞれを限定しない場合は、ワード線ＷＬと表記する。
【００５０】
ストリングユニットＳＵ内にある各ＮＡＮＤストリングＳＲの選択トランジスタＳＴ１のドレインは、それぞれ異なるビット線ＢＬ０〜ＢＬ（Ｎ−１）（Ｎは２以上の整数）に接続される。以下、ビット線ＢＬ０〜ＢＬ（Ｎ−１）のそれぞれを限定しない場合は、ビット線ＢＬと表記する。各ビット線ＢＬは、センスアンプ１１０に接続される。各ビット線ＢＬは、複数のブロックＢＬＫ間で各ストリングユニットＳＵ内にある１つのＮＡＮＤストリングＳＲを共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。つまり、ストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一の選択ゲート線ＳＧＤ及びＳＧＳに接続されたＮＡＮＤストリングＳＲの集合体である。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵの集合体である。そしてメモリセルアレイ１０８は、ビット線ＢＬを共通にする複数のブロックＢＬＫの集合体である。
【００５１】
データの書き込み及び読み出しは、いずれかのストリングユニットＳＵにおけるいずれかのワード線ＷＬ（以下、選択ワード線ＷＬと表記する）に接続されたメモリセルトランジスタＭＴに対して、一括して行われる。以下、データの書き込み及び読み出しの際、一括して選択されるメモリセルトランジスタＭＴの各々に書き込まれる、または各々から読み出される１ビットのデータの集まりを「ページ」と呼ぶ。
【００５２】
２  書き込み動作
次に、書き込み動作について説明する。書き込み動作は、大まかにプログラム動作とプログラムベリファイ動作とを含む。そして、プログラム動作とプログラムベリファイ動作との組み合わせ（以下、「プログラムループ」と呼ぶ）を繰り返すことで、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルまで上昇される。
【００５３】
プログラム動作は、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる（または注入を禁止することで閾値電圧を維持させる）動作のことである。
【００５４】
プログラムベリファイ動作は、プログラム動作の後、データを読み出し、メモリセルトランジスタＭＴの閾値電圧が目標とするターゲットレベルに達したか否かを判定する動作である。以下、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルに達している場合を、「ベリファイをパスした」と呼び、ターゲットレベルまで達していない場合を、「ベリファイをフェイルした」と呼ぶ。
【００５５】
２．１  書き込み動作における動作モード
次に、書き込み動作における動作モードについて、図４を用いて説明する。
【００５６】
書き込み動作は、ノーマルモードとスマートベリファイモードとの２つの動作モードを含む。
【００５７】
ノーマルモードは、１回目のプログラムループ（プログラム動作）のプログラム電圧として、予め設定された電圧ＶＰＧＭを用いて書き込み動作を実行する動作モードである。
【００５８】
スマートベリファイモードは、１回目のプログラムループのプログラム電圧として、プログラムパラメータ情報を用いて設定された電圧ＶＰＧＭＳを用いて書き込み動作を実行する動作モードである。電圧ＶＰＧＭＳは電圧ＶＰＧＭよりも大きい電圧である。例えば、対象のメモリ領域における最初の書き込み動作はノーマルモードで実行し、スマートベリファイ機能を用いてプログラムパラメータ情報を抽出する。そして、対象のメモリ領域における他の書き込み動作はスマートベリファイモードで実行する。なお、スマートベリファイ機能において管理されるメモリ領域の大きさは、メモリセルアレイ１０８全体（すなわちメモリチップ１１全体）、ブロックＢＬＫ単位、ストリングユニットＳＵ単位、またはページ単位と任意に設定可能である。
【００５９】
なお、本実施形態では、ノーマルモードのプログラムループ回数に基づいて、スマートベリファイモードにおける１回目のプログラム電圧ＶＰＧＭＳを設定する場合について説明するが、例えば、ノーマルモードにおける最後のプログラムループのプログラム電圧、書き込み動作時間、または書き込み速度情報等に基づいて、電圧ＶＰＧＭＳを設定してもよい。
【００６０】
図４の上段に示すように、より具体的には、まず、メモリシステム１は、対象のメモリ領域における最初の書き込み動作をノーマルモードで実行する。このとき、ロウデコーダ１０９は、１回目のプログラムループで、プログラム動作（ＰＧ）時に選択ワード線ＷＬにプログラム電圧として電圧ＶＰＧＭを印加し、プログラムベリファイ動作（ＰＶ）時に選択ワード線ＷＬにターゲットレベルに応じたベリファイ電圧ＶＰＦＹを印加する。そして、プログラムループを繰り返す毎に、プログラム電圧は電圧ＤＶＰＧＭだけステップアップされ、５回目のプログラムループでベリファイをパスしている。この結果に基づいて、スマートベリファイモードにおける１回目のプログラム電圧ＶＰＧＭＳが設定される。
【００６１】
図４の下段に示すように、ノーマルモードの結果から、電圧ＶＰＧＭＳとして、例えばノーマルモードにおける４回目のプログラム電圧（ＶＰＧＭ＋３×ＤＶＰＧＭ）が設定される。そして、設定された電圧ＶＰＧＭＳを用いて１回目のプログラムループが実行される。すなわち、スマートベリファイモードではノーマルモードの４回目のプログラムループから書き込み動作が実行される。そして、ノーマルモードと同様にプログラムループを繰り返す毎に、プログラム電圧は電圧ＤＶＰＧＭだけステップアップされる。この結果、例えば、スマートベリファイモードでは、２回のプログラムループでベリファイをパスし、プログラムループ回数は５回から２回に低減される。
【００６２】
なお、図４の例において、５回目のプログラム電圧（ＶＰＧＭ＋４×ＤＶＰＧＭ）が電圧ＶＰＧＭＳとして設定されてもよく、例えば、４回目のプログラム電圧と５回目のプログラム電圧の中間の電圧が電圧ＶＰＧＭＳとして設定されてもよく、電圧ＶＰＧＭＳは任意に設定可能である。
【００６３】
２．２  メモリシステムにおける動作の全体の流れ
次に、メモリシステム１における動作の全体の流れについて、図５を用いて説明する。
【００６４】
図５に示すように、コマンドディスパッチャ２２は、ホストデバイス２またはプロセッサ２０から動作要求（書き込み要求、読み出し要求、または消去要求等）を受信する（ステップＳ１０）と、コマンドを発行し（ステップＳ１１）、選択したＮＡＮＤコントローラ２６にコマンドを送信する。
【００６５】
ＮＡＮＤコントローラ２６は、コマンドを受信すると、コマンドの実行順序を調整した後、実行するコマンドを選択する（ステップＳ１２）。
【００６６】
選択したコマンドが電力スロットリング対象ではない場合（ステップＳ１３＿Ｎｏ）、ＮＡＮＤコントローラ２６は、対応するメモリチップ１１にコマンドを送信する。シーケンサ１０５は、受信した電力スロットリング制御の対象ではないコマンドに基づく要求動作を実行する（ステップＳ１４）。シーケンサ１０５は、要求動作が終了すると、その旨をＮＡＮＤコントローラ２６に報告する。
【００６７】
選択したコマンドが電力スロットリング対象である場合（ステップＳ１３＿Ｙｅｓ）、ＮＡＮＤコントローラ２６は、コマンドが書き込みコマンドか確認する。（ステップＳ１５）。
【００６８】
コマンドが書き込みコマンドである場合（ステップＳ１５＿Ｙｅｓ）、ＮＡＮＤコントローラ２６は、ベリファイレベルコントローラ２４に書き込みコマンドに対応する電力消費値を問い合わせる。
【００６９】
ベリファイレベルコントローラ２４は、ＮＡＮＤコントローラ２６から受信した書き込みコマンドに対応する電力消費値を確認し（ステップＳ１６）、ＮＡＮＤコントローラ２６にその結果を送信する。より具体的には、ベリファイレベルコントローラ２４は、書き込みコマンドに付与されているアドレスに対応する電力消費値をＲＡＭ１２から呼び出し、ＮＡＮＤコントローラ２６にその結果を送信する。このとき、例えば、ベリファイレベルコントローラ２４は、ＲＡＭ１２からプログラムパラメータ情報も読み出し、ＮＡＮＤコントローラ２６にプログラムパラメータ情報を送信してもよい。
【００７０】
ＮＡＮＤコントローラ２６は、ベリファイレベルコントローラ２４から受信した電力消費値等に基づいてノーマルモードまたはスマートベリファイモードのいずれかの動作モードを選択する（ステップＳ１７）。
【００７１】
コマンドが書き込みコマンドではない場合（ステップＳ１５＿Ｎｏ）、またはステップＳ１７において動作モードを選択した後、ＮＡＮＤコントローラ２６は、スロットリングコントローラ２３に、選択したコマンドが実行可能かを確認する（ステップＳ１８）。スロットリングコントローラ２３は、受信したコマンドの電力消費値と電力消費可能な量とを比較した判定結果をＮＡＮＤコントローラ２６に報告する。
【００７２】
選択したコマンドが実行可能ではない場合（ステップＳ１８＿Ｎｏ）、すなわち、スロットリングコントローラ２３において選択したコマンドの電力消費値が電力消費可能な量よりも大きいと判定された場合、ステップＳ１２に戻り、ＮＡＮＤコントローラ２６は再度コマンドを選択する。
【００７３】
選択したコマンドが実行可能な場合（ステップＳ１８＿Ｙｅｓ）、すなわち、スロットリングコントローラ２３において選択したコマンドの電力消費値が電力消費可能な量以下であると判定された場合、ＮＡＮＤコントローラ２６は、対応するメモリチップ１１にコマンドを送信する（ステップＳ１９）。
【００７４】
図６に示すように、メモリチップ１１が受信したコマンドが書き込みコマンドではない場合（ステップＳ２０＿Ｎｏ）、シーケンサ１０５は、受信した電力スロットリング制御対象のコマンドに基づく要求動作を実行する（ステップＳ２１）。シーケンサ１０５は、要求動作が終了すると、その旨をＮＡＮＤコントローラ２６に報告する。
【００７５】
メモリチップ１１が受信したコマンドが書き込みコマンドである場合（ステップＳ２０＿Ｙｅｓ）、シーケンサ１０５は、書き込みコマンドに基づいてノーマルモードまたはスマートベリファイモードのいずれかを選択する（ステップＳ２２）。
【００７６】
スマートベリファイモードが選択された場合（ステップＳ２２＿Ｙｅｓ）、シーケンサ１０５は、受信したコマンドに基づいてスマートベリファイモードによる書き込み動作を実行する（ステップＳ２３）。シーケンサ１０５は、スマートベリファイモードによる書き込み動作が終了すると、その旨をＮＡＮＤコントローラ２６に報告する。
【００７７】
ノーマルモードが選択された場合（ステップＳ２２＿Ｎｏ）、シーケンサ１０５は、受信したコマンドに基づいてノーマルモードによる書き込み動作を実行する（ステップＳ２４）。
【００７８】
シーケンサ１０５は、ノーマルモードによる書き込み動作が終了すると、書き込み動作が終了した旨と取得したプログラムパラメータ情報とをＮＡＮＤコントローラ２６に報告する（ステップＳ２５）。
【００７９】
ＮＡＮＤコントローラ２６は、メモリチップ１１からステップＳ２１における要求動作の終了報告、あるいはステップＳ２３またはＳ２５における書き込み動作の終了報告を受けると、スロットリングコントローラ２３にその旨を報告する。スロットリングコントローラ２３は、ＮＡＮＤコントローラ２６から報告を受けると終了報告を受けた各動作に対応する電力消費値を電力消費可能な量に加算し、電力消費可能な量を修正する（ステップＳ２６）。
【００８０】
次に、ＮＡＮＤコントローラ２６は、メモリチップ１１からの終了報告に基づいて電力消費値の変更が必要か確認する。
【００８１】
電力消費値の変更が必要な場合（ステップＳ２７＿Ｙｅｓ）、より具体的には、ステップＳ２５においてメモリチップ１１からプログラムパラメータ情報を受信した場合、または、ステップＳ２１において消去動作が実行された場合、ＮＡＮＤコントローラ２６は、メモリチップ１１から受信したプログラムパラメータ情報または対象のメモリ領域における消去動作の終了報告をベリファイレベルコントローラ２４に報告する。ベリファイレベルコントローラ２４は、プログラムパラメータ情報または消去動作の終了報告に基づいて対象のメモリ領域におけるスマートベリファイモードによる書き込み動作の電力消費値を変更し（ステップＳ２８）、その結果をＲＡＭ１２に転送する。
【００８２】
より具体的には、ベリファイレベルコントローラ２４は、例えば、プログラムパラメータ情報を受信した場合、プログラムパラメータ情報に基づいて対象のメモリ領域におけるスマートベリファイモードによる書き込み動作の電力消費値を設定する。そして、ベリファイレベルコントローラ２４は、設定した電力消費値及びプログラムパラメータ情報をＲＡＭ１２に転送する。また、ベリファイレベルコントローラ２４は、例えば、消去動作の終了報告を受信した場合、対象のメモリ領域における書き込み動作の電力消費値をデフォルトの電力消費値に変更する。そして、ベリファイレベルコントローラ２４は、デフォルトの電力消費値をＲＡＭ１２に転送する。また、例えば、ＲＡＭ１２において、対象のメモリ領域におけるスマートベリファイモードによる書き込み動作のプログラムパラメータ情報が削除される。
【００８３】
電力消費値の変更が必要ではない場合（ステップＳ２７＿Ｎｏ）、より具体的にはメモリチップ１１からステップＳ１４における要求動作の終了報告、ステップＳ２１における消去動作以外の要求動作の終了報告、またはステップＳ２３におけるスマートベリファイモードによる書き込み動作の終了報告を受信した場合、またはステップＳ２８における電力消費値の変更後、ＮＡＮＤコントローラ２６は、ホストデバイス２またはプロセッサ２０に動作要求についての応答をする。
【００８４】
２．３  メモリにおける書き込み動作の流れ
次に、メモリチップ１１における書き込み動作の詳細な流れについて、図７を用いて説明する。
【００８５】
図７に示すように、メモリチップ１１は、対応するＮＡＮＤコントローラ２６から書き込みコマンドを受信する（ステップＳ３０）。
【００８６】
スマートベリファイモードを指示する書き込みコマンドを受信した場合（ステップＳ３１＿Ｙｅｓ）、シーケンサ１０５は、スマートベリファイモードを選択し、コマンドに基づいて電圧ＶＰＧＭＳを設定する（ステップＳ３２）。より具体的には、シーケンサ１０５は、ＮＡＮＤコントローラ２６からプログラムパラメータ情報を受信すると、これに基づいてプログラム電圧ＶＰＧＭＳを設定する。
【００８７】
ノーマルモードを指示する書き込みコマンドを受信した場合（ステップＳ３１＿Ｎｏ）、シーケンサ１０５は、ノーマルモードを選択し、１回目のプログラム電圧として電圧ＶＰＧＭを設定する。
【００８８】
シーケンサ１０５は、１回目のプログラム電圧として電圧ＶＰＧＭまたは電圧ＶＰＧＭＳを設定後、プログラム動作を実行する（ステップＳ３３）。
【００８９】
プログラム動作終了後、シーケンサ１０５は、プログラムベリファイ動作を実行する（ステップＳ３４）。
【００９０】
ベリファイをフェイルした場合（ステップＳ３５＿Ｎｏ）、シーケンサ１０５は、プログラムループ回数が予め設定された上限値に達したか確認する（ステップＳ３８）。
【００９１】
プログラムループ回数が上限値に達していない場合（ステップＳ３８＿Ｎｏ）、シーケンサ１０５は、プログラム電圧をステップアップさせ（ステップＳ３９）、ステップＳ３３に戻る。
【００９２】
プログラムループ回数が上限値に達した場合（ステップＳ３８＿Ｙｅｓ）、シーケンサ１０５は、書き込み動作が正常に終了しなかった旨をＮＡＮＤコントローラ２６に報告し、書き込み動作を終了する。
【００９３】
ベリファイをパスした場合（ステップＳ３５＿Ｙｅｓ）、シーケンサ１０５は、プログラムループを終了させる。そして、シーケンサ１０５は、ノーマルモードを選択している場合（ステップＳ３６＿Ｙｅｓ）、書き込み動作が終了した旨とプログラムパラメータ情報をＮＡＮＤコントローラ２６に報告する（ステップＳ３７）。より具体的には、シーケンサ１０５は、ＮＡＮＤコントローラ２６からプログラムパラメータ情報の読み出しを指示するコマンドを受信すると、プログラムパラメータ情報を送信する。
【００９４】
シーケンサ１０５は、スマートベリファイモードを選択している場合（ステップＳ３６＿Ｎｏ）、書き込み動作が終了した旨をＮＡＮＤコントローラ２６に報告する。
【００９５】
２．４  書き込み動作のコマンドシーケンス
次に、ＮＡＮＤコントローラ２６からメモリチップ１１に送信される書き込み動作時のコマンドシーケンスについて、図８を用いて説明する。図８は、書き込み動作時の制御信号及び信号ＤＱ、並びにレディ／ビジー信号ＲＢｎを示している。
【００９６】
図８に示すように、ＮＡＮＤコントローラ２６は、メモリチップ１１にノーマルモードによる書き込み動作を指示する場合、メモリチップ１１に、コマンドシーケンスとして、コマンド“Ｐｒｏｇ−Ｐ”、アドレス“ＡＤＤ１”、書き込みデータ“Ｗ−ＤＡＴ１”、及びコマンド“Ｐｒｏｇ−Ａ”を順に送信する。コマンド“Ｐｒｏｇ−Ｐ”は、プログラム動作を行うことを通知するコマンドである。コマンド“Ｐｒｏｇ−Ａ”は、プログラム動作の実行を指示するコマンドである。シーケンサ１０５は、コマンド“Ｐｒｏｇ−Ａ”を受信すると、データレジスタ１１１に取り込んだ書き込みデータＷ−ＤＡＴ１をセンスアンプ１１０に転送した後、プログラム動作を実行する。プログラム動作の間、シーケンサ１０５は、レディ／ビジー信号を、ビジー状態を示すＬｏｗレベルにする。
【００９７】
シーケンサ１０５は、プログラム動作終了後、レディ／ビジー信号を、レディ状態を示すＨｉｇｈレベルにする。ＮＡＮＤコントローラ２６は、Ｈｉｇｈレベルのレディ／ビジー信号を受信すると、プログラムパラメータ情報の読み出しを指示するコマンド“Ｇｅｔ”を送信し、メモリチップ１１からプログラムパラメータ情報“Ｒ−Ｐａｒａ”を読み出す。
【００９８】
また、ＮＡＮＤコントローラ２６は、メモリチップ１１にスマートベリファイモードによる書き込み動作を指示する場合、まず、メモリチップ１１に、コマンド“Ｓｅｔ”及びプログラムパラメータ情報“Ｒ−Ｐａｒａ”を順に送信する。コマンド“Ｓｅｔ”は、プログラム電圧ＶＰＧＭＳの設定を指示するコマンドである。シーケンサ１０５は、プログラムパラメータ情報“Ｒ−Ｐａｒａ”に基づいてプログラム電圧ＶＰＧＭＳを設定する。続いて、ＮＡＮＤコントローラ２６は、ノーマルモードと同様に、メモリチップ１１に、コマンドシーケンスとして、コマンド“Ｐｒｏｇ−Ｐ”、アドレス“ＡＤＤ２”、書き込みデータ“Ｗ−ＤＡＴ２”、及びコマンド“Ｐｒｏｇ−Ａ”を順に送信する。シーケンサ１０５は、変更したプログラム電圧を用いてプログラム動作を実行する。ＮＡＮＤコントローラ２６は、スマートベリファイモードの場合、コマンド“Ｇｅｔ”を送信しない。
【００９９】
なお、同じメモリ領域において、スマートベリファイモードによる書き込み動作を繰り返し実行する場合、２回目以降のスマートベリファイモードによる書き込み動作において、コマンド“Ｓｅｔ”及びプログラムパラメータ情報“Ｒ−Ｐａｒａ”の送信は省略されてもよい。
【０１００】
３  本実施形態に係る効果
本実施形態に係る構成であれば、処理能力の低下を抑制できるメモリシステムを提供できる。本効果につき、詳述する。
【０１０１】
電力スロットリング制御によりメモリシステム１の電力消費を制御している場合、スロットリングの上限値を超えるコマンドは実行できないため、メモリシステム１の処理能力が制限される。また、コマンドに付与される電力消費値は固定値である場合が多い。
【０１０２】
これに対し、本実施形態に係る構成であれば、メモリシステムは、スマートベリファイ機能を有し、書き込み動作を実行する場合、ノーマルモードとスマートベリファイモードの２つの動作モードを選択できる。更に、メモリシステムは、スマートベリファイモードに対応する電力消費値をスマートベリファイモードにおけるプログラム状況に応じて決定できる。従って、メモリシステムは、スマートベリファイモードを用いることで、電力消費を低減でき、且つそのときの電力消費値をノーマルモードの電力消費値よりも小さく設定できる。よって、メモリシステムは、電力スロットリング制御において、実行できるコマンド数を増加させることができ、電力消費の制限による処理能力の低減を抑制できる。
【０１０３】
４．変形例等
上記実施形態に係るメモリシステムは、複数のメモリセル(MT)を含むメモリセルアレイ(108)を有するメモリチップ(11)と、メモリチップが接続されたコントローラ(10)とを含む。コントローラは、コマンドを発行する第１回路(22)と、電力スロットリング制御を行う第２回路(23)と、書き込み動作における電力消費値を管理する第３回路(24)と、第１回路から受信したコマンドに基づいてメモリチップを制御する第４回路(26)とを含む。書き込み動作は、第１動作モード(ノーマルモード)と第１動作モードに基づく情報(プログラムパラメータ情報)を用いてプログラム電圧(VPGMS)が設定される第２動作モード(スマートベリファイモード)とを含む。第３回路は、情報に基づいて第２動作モードの電力消費値を設定する。
【０１０４】
上記実施形態により、処理能力の低減を抑制できるメモリシステムを提供できる。
【０１０５】
なお、実施形態は上記で説明した形態に限られず、種々の変形が可能である。
【０１０６】
例えば、各ＮＡＮＤコントローラ２６内にベリファイレベルコントローラ２４が含まれていてもよく、プロセッサ２０がファームウェアを実行することによって、コマンドディスパッチャ２２、スロットリングコントローラ２３、ベリファイレベルコントローラ２４、またはＮＡＮＤコントローラ２６の機能が実現されてもよい。
【０１０７】
更に、上記実施形態では、書き込み動作の際、ＮＡＮＤコントローラ２６は、ベリファイレベルコントローラ２４に電力消費値の問い合わせを行っていたが、ＮＡＮＤコントローラ２６は、ベリファイレベルコントローラ２４を介さずにＲＡＭ１２から電力消費値及びプログラムパラメータ情報を読み出してもよい。
【０１０８】
更に、上記実施形態では、シーケンサ１０５がプログラムパラメータ情報に基づいてスマートベリファイモードにおける電圧ＶＰＧＭＳを設定していたが、ベリファイレベルコントローラ２４またはＮＡＮＤコントローラ２６がプログラム電圧ＶＰＧＭＳを設定してもよい。
【０１０９】
更に、メモリシステムは、電力スロットリング制御のＯＮ／ＯＦＦを切り換え可能であってもよい。
【０１１０】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【０１１１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１２】
１…メモリシステム、２…ホストデバイス、１０…システムコントローラ、１１…メモリチップ、１２…ＲＡＭ、１８…メモリセルアレイ、２０…プロセッサ、２１…バッファコントローラ、２２…コマンドディスパッチャ、２３…スロットリングコントローラ、２４…ベリファイレベルコントローラ、２５…ホストインターフェイス回路、２６…ＮＡＮＤコントローラ、１００…入出力回路、１０１…ロジック制御回路、１０２…ステータスレジスタ、１０３…アドレスレジスタ、１０４…コマンドレジスタ、１０５…シーケンサ、１０６…レディ／ビジー回路、１０７…電圧発生回路、１０８…メモリセルアレイ、１０９…ロウデコーダ、１１０…センスアンプ、１１１…データレジスタ、１１２…カラムデコーダ。
【図１】
2020013626.tif 000003
【図２】
2020013626.tif 000004
【図３】
2020013626.tif 000005
【図４】
2020013626.tif 000006
【図５】
2020013626.tif 000007
【図６】
2020013626.tif 000008
【図７】
2020013626.tif 000009
【図８】
2020013626.tif 000010