メモリシステム
【課題】複数の不揮発性半導体メモリを有するメモリシステムで発生する消費電力のピークを低く抑えることができる。
【解決手段】チップ1は、コントローラ20から第1制御信号を受け取ると、第1動作のうちの第1サブ動作を実行して、第1動作を中断する。コントローラ20は第1動作が中断されると、第2制御信号をチップ2に送信する。第2制御信号を受け取ると、チップ2は第2動作のうちの第3サブ動作を実行して、第2動作を中断する。コントローラ20は第2動作が中断されると、第3制御信号をチップ1に送信する。第3制御信号を受け取ると、チップ1は第1動作を再開し、第2サブ動作を実行する。コントローラ20は第2サブ動作が終了すると、第4制御信号をチップ2に送信する。第4制御信号を受け取ると、チップ2は第2動作を再開し、第4サブ動作を実行する。
【解決手段】チップ1は、コントローラ20から第1制御信号を受け取ると、第1動作のうちの第1サブ動作を実行して、第1動作を中断する。コントローラ20は第1動作が中断されると、第2制御信号をチップ2に送信する。第2制御信号を受け取ると、チップ2は第2動作のうちの第3サブ動作を実行して、第2動作を中断する。コントローラ20は第2動作が中断されると、第3制御信号をチップ1に送信する。第3制御信号を受け取ると、チップ1は第1動作を再開し、第2サブ動作を実行する。コントローラ20は第2サブ動作が終了すると、第4制御信号をチップ2に送信する。第4制御信号を受け取ると、チップ2は第2動作を再開し、第4サブ動作を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、複数の不揮発性半導体メモリを有するメモリシステムに関し、例えば複数のNAND型フラッシュメモリを有するメモリシステムに関するものである。
【背景技術】
【0002】
近年、微細化の進行と共に、NAND型フラッシュメモリの書き込みスピードは遅くなっている。一方、複数のNAND型フラッシュメモリチップを有するメモリシステムが扱うデータ量は増加傾向にあるため、メモリシステムは複数のNAND型フラッシュメモリチップに対し同時に書き込みを実行することにより、書き込み性能の向上を図っている。
【0003】
しかしこの場合、複数のNAND型フラッシュメモリチップを同時に動作させるため、消費電流が増大する。特に、複数のNAND型フラッシュメモリチップにおける消費電流のピークが重なり、大きなピーク電流が流れることが懸念される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−242632号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の不揮発性半導体メモリを有するメモリシステムで発生する消費電力のピークを低く抑えることができるメモリシステムを提供する。
【課題を解決するための手段】
【0006】
一実施態様のメモリシステムは、複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第1動作を行う第1の不揮発性半導体メモリと、複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第2動作を行う第2の不揮発性半導体メモリと、前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリの前記第1動作及び前記第2動作を制御するコントローラとを具備する。前記第1動作は、所定電流以上の電流を消費する第1サブ動作及び第2サブ動作を含み、前記第2動作は、所定電流以上の電流を消費する第3サブ動作及び第4サブ動作を含む。前記第1の不揮発性半導体メモリは、前記コントローラから第1制御信号を受け取ると、前記第1動作の前記第1サブ動作を実行した後、前記第1動作を中断し、前記コントローラは前記第1動作が中断されたことを認知すると、第2制御信号を前記第2の不揮発性半導体メモリに送信する。前記第2の不揮発性半導体メモリは、前記コントローラから前記第2制御信号を受け取ると、前記第2動作の前記第3サブ動作を実行した後、前記第2動作を中断し、前記コントローラは前記第2動作が中断されたことを認知すると、第3制御信号を前記第1の不揮発性半導体メモリに送信する。前記第1の不揮発性半導体メモリは、前記コントローラから前記第3制御信号を受け取ると、前記第1動作を再開して前記第2サブ動作を実行し、前記コントローラは前記第2サブ動作が実行されたことを認知すると、第4制御信号を前記第2の不揮発性半導体メモリに送信する。前記第2の不揮発性半導体メモリは、前記コントローラから前記第4制御信号を受け取ると、前記第2動作を再開して前記第4サブ動作を実行することを特徴とする。
【図面の簡単な説明】
【0007】
【図1】プログラムとプログラムベリファイ時のタイミングと消費電流を模式的に示す図である。
【図2】多値NAND型フラッシュメモリにおけるプログラムとプログラムベリファイのフロー図である。
【図3】第1実施形態のメモリシステムの構成を示すブロック図である。
【図4】第1実施形態のNAND型フラッシュメモリにおける書き込み時のフローチャートである。
【図5】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートである。
【図6】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートを示す第1例である。
【図7】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートを示す第2例である。
【図8】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートを示す第3例である。
【図9】第1実施形態のNAND型フラッシュメモリにおける読み出し時のフローチャートである。
【図10】第1実施形態のNAND型フラッシュメモリにおける読み出し時のタイミングチャートである。
【図11】第2実施形態のメモリシステムの構成を示すブロック図である。
【図12】第2実施形態のNAND型フラッシュメモリにおけるMCMBUSY制御回路の構成を示す回路図である。
【図13】第2実施形態のNAND型フラッシュメモリにおける書き込み時のフローチャートである。
【図14】第2実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートである。
【発明を実施するための形態】
【0008】
実施形態を説明する前に、本出願を提案するに至った経緯について説明する。
【0009】
複数の不揮発性半導体メモリチップを同時に動作させる場合、消費電流が増大する可能性がある。例えば、複数のNAND型フラッシュメモリチップ(以下、メモリチップ)に対し、同時に書き込みを実行すると、各メモリチップにおいて消費されるピーク電流が重なり、大きな消費電力のピークが発生することが懸念される。なお、以降の説明において、書き込みはプログラムとプログラムベリファイを含むものとする。
【0010】
図1に、プログラム(図中「program」と表記、以下同様)とプログラムベリファイ(「Verify」)時のタイミングとその際の消費電流を模式的に示す。プログラムもプログラムベリファイも大きく、ワード線/ビット線のセットアップ(A、C)→書き込みもしくはリード・センス動作→ワード線/ビット線電位のディスチャージ(リカバリ動作)(B、D)といった個々の動作に大別される。なお、図1中、Aは「BL pre-charge」ビット線プリチャージ及び「WL charge」ワード線チャージの意、Bは「program pulse」プログラムパルス及び「WL/BL discharge」ワード線/ビット線ディスチャージの意、Cは「WL/BL charge」ワード線/ビット線チャージの意、Dは「BL isolate & discharge」ビット線のセル電流による放電、「sense」リード・センス動作及び「WL/BL discharge」ワード/ビット線ディスチャージの意を示す。
【0011】
個々の動作の所要時間は、メモリチップ内部であらかじめ決められたタイマで決まる。メモリチップの消費電流は一定ではなく、ある特定の動作で大きなピーク電流が発生する。
【0012】
複数のメモリチップで同時に書き込みを実行したときにも、このピーク電流がメモリチップ間で重ならないようにできればよい。例えば、書き込み実行のタイミングをずらすといった方法が考えられるが、実際にはそれだけでは重なりを防ぐのは困難である。以下に、その例を示す。
【0013】
図2に、多値NAND型フラッシュメモリにおけるプログラム(「program」)とプログラムベリファイ(「Verify」)のフローを示す。
【0014】
多値のNAND型フラッシュメモリでは、しきい値電圧のレベルごとにベリファイを行っているが、レベルごとにプログラムが完了すると、以降該当レベルのベリファイは実施する必要はない。ここでは、3つのレベル(A<B<C)のベリファイを行っている。
【0015】
また、一般にNAND型フラッシュメモリのメモリセルはしきい値電圧の低いレベルから書き上げて行くので、書き込み開始直後はB,Cレベルのベリファイをある回数実行しないことも、書き込み性能改善のために行われている。
【0016】
つまり、メモリチップごとにピーク電流が流れるタイミングは異なり、しかもそのタイミングはメモリセルのセル特性に起因する。このため、ピーク電流が流れるタイミングを制御することは困難である。
【0017】
他の要因として、NAND型フラッシュメモリは、コマンド入力を受けてメモリチップ内に備えたオシレータで、例えば100ns周期のクロックを生成している。このクロックに同期して制御回路(ステートマシン)が動作する。
【0018】
タイマ設定が複数のメモリチップで同じ場合でも、このクロック周期にはばらつきが生じる。NAND型フラッシュメモリの書き込みや読み出し時間は数十μs〜数msであるため、クロック周期のばらつきは決して無視できず、どこかでメモリチップ間のピーク電流が重なる可能性がある。
【0019】
このように、複数のNAND型フラッシュメモリで同時に書き込みシーケンスが実行されている場合に、それぞれのNAND型フラッシュメモリで発生するピーク電流が重なり、メモリシステムとして非常に大きな消費電流となる懸念があった。このため、メモリシステムはこの最大のピーク電流に対応する電源システムを組み込む必要があった。
【0020】
そこで、本実施形態では、複数の不揮発性半導体メモリを有するメモリシステムで発生する消費電力のピークを低く抑えることができるメモリシステムを提供する。
【0021】
以下に、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0022】
[1] 第1実施形態
第1実施形態のメモリシステムについて説明する。
【0023】
図3は、第1実施形態のメモリシステムの構成を示すブロック図である。
【0024】
図示するように、メモリシステム10は、複数の不揮発性半導体メモリチップ、例えばNAND型フラッシュメモリチップ(以下、メモリチップ)10−1,10−2,10−3,10−4、コントローラ20を備える。コントローラ20は、メモリチップ10−1,10−2,10−3,10−4の動作を制御する。
【0025】
メモリチップの各々は、メモリセルアレイ11、主制御部12、ブロック制御回路13、ロウ制御回路14、選択回路15、センスアンプ16、カラム制御回路17、データ入出力バッファ18、入出力制御回路19を備える。
【0026】
主制御部12は、コントローラ20から出力された制御信号を入出力制御回路19及びデータ入出力バッファ18を介して受け取り、制御信号に基づいてブロック制御回路13、ロウ制御回路14、選択回路15、センスアンプ16及びカラム制御回路17を制御して、メモリセルアレイ11に対するデータの書き込み、読み出し及び消去を行う。
【0027】
ブロック制御回路13は、メモリセルアレイ11に含まれるブロックの選択を制御する。ロウ制御回路14は、メモリセルアレイ11に対するデータの書き込み、読み出し及び消去時にメモリセルアレイ11内のワード線に対して印加する電圧の制御を行う。
【0028】
カラム制御回路17は、カラムアドレスに基づいてメモリセルアレイ11内のビット線の選択を制御する。センスアンプ16は、選択されたビット線に接続されたメモリセルから選択回路15を介してデータを読み出す。
【0029】
メモリセルアレイ11は複数のブロックを備え、ブロックの各々は複数のNAND列を有する。NAND列の各々は直列に接続された複数のメモリセルを有し、メモリセルの各々は、浮遊ゲートと、浮遊ゲート上にゲート間絶縁膜を介して配置された制御ゲートとを持つ不揮発性のメモリセルトランジスタからなる。
【0030】
次に、第1実施形態のメモリシステムにおける書き込み時の動作を説明する。ここでは、2個のNAND型フラッシュメモリチップ10−1,10−2における書き込み動作を述べるが、メモリチップが3個以上の場合も同様の手法で書き込み動作を行うことができる。
【0031】
図4は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のフローチャートである。図5は、第1実施形態における書き込み時のタイミングチャートである。
【0032】
まず、メモリチップ10−1,10−2内の主制御部12は、コントローラ20からレジュームコマンドが入力されるまで待機する((「Wait Resume Command」)ステップS1)。主制御部12は、コントローラ20からレジュームコマンドを受け取ると、プログラムをスタートさせ((「Program start」)ステップS2)、プログラムを実行する((「Program」)ステップS3)。プログラムは、図5に示すように、ビット線のプリチャージ、ワード線のチャージ、プログラムパルスの印加、及びワード線/ビット線電位のディスチャージといった順序で行われる。
【0033】
プログラムが終了すると((「program end」)ステップS4)、主制御部12はメモリチップをサスペンド状態(一時中断状態)とし、再び、コントローラ20からレジュームコマンドが入力されるまで待機する((「Wait Resume Command」)ステップS5)。
【0034】
次に、主制御部12は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせ((「Verify start」)ステップS6)、プログラムベリファイを実行する((「Verify」)ステップS7)。プログラムベリファイは、図5に示すように、ワード線/ビット線のチャージ、ビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージといった順序で行われる。
【0035】
プログラムベリファイが終了すると((「Verify end」)ステップS8)、主制御部12はメモリセルに対してベリファイがパスしたか否かを判定する((「Verify Pass」)ステップS9)。ベリファイをパスしているとき、書き込み動作を終了する((「End」)ステップS10)。
【0036】
一方、ベリファイをパスしていないとき、主制御部12はメモリチップをサスペンド状態とし、再び、コントローラ20からレジュームコマンドが入力されるまで待機する((「Wait Resume Command」)ステップS11)。そして、主制御部12は、コントローラ20からレジュームコマンドを受け取ると、ステップS2に戻り、ステップS2以降の処理を繰り返す。
【0037】
図5を用いて、書き込み時の動作を述べる。なお、図5以降の図では、NAND型フラッシュメモリチップ10−1をチップ1とし、NAND型フラッシュメモリチップ10−2をチップ2とする。チップステータスは、“H”がレディ状態、“L”がビジー状態であることを表す。このレディまたはビジーの出力はメモリチップに出力ピンを設けてもよいし、メモリチップからステータスコマンドを出力してもよい。
【0038】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する。チップ1は、レジュームコマンドを受け取ると、プログラム(「program」)をスタートさせる。そして、チップ1は、ビット線のプリチャージ(「BL pre-charge」)を行い、続いてワード線のチャージ(「WL charge」)を行う。ワード線のチャージが終了すると、すなわち高い電流を必要とする期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する。
【0039】
チップ1は、ワード線のチャージが終了した後、続いてプログラムパルスの印加(「program pulse」)、及びワード線/ビット線電位のディスチャージ(「WL/BL discharge」)を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。プログラムのうち、ビット線のプリチャージとワード線のチャージを行う期間が高い電流を必要とする期間(高電流期間)であり、プログラムパルスの印加とワード線/ビット線電位のディスチャージを行う期間が低い電流を必要とする期間(低電流期間)である。
【0040】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、ビット線のプリチャージを行い、続いてワード線のチャージを行う。このとき、チップ2のこれら高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作、すなわちプログラムパルスの印加、及びワード線/ビット線のディスチャージが行われる。ワード線のチャージが終了すると、すなわち高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する。
【0041】
チップ2は、ワード線のチャージが終了した後、続いてプログラムパルスの印加、及びワード線/ビット線電位のディスチャージを行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0042】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する。チップ1は、レジュームコマンドを受け取ると、プログラムベリファイ(「Verify」)をスタートさせる。そして、チップ1は、ワード線/ビット線のチャージ(「WL/BL charge」)を行う。このとき、チップ1のこの高電流期間の動作と並行して、チップ2では、前述したように、低電流期間の動作、すなわちプログラムパルスの印加、及びワード線/ビット線のディスチャージが行われる。チップ1のワード線/ビット線のチャージが終了すると、すなわち高い電流を必要とする期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する。
【0043】
チップ1は、ワード線/ビット線のチャージが終了した後、続いてビット線のセル電流による放電(「BL isolate & discharge」)、リード・センス動作(「sense」)、及びワード線/ビット線電位のディスチャージ(「WL/BL discharge」)を行い、プログラムベリファイを終了する。プログラムベリファイを終了した後、チップ1はサスペンド状態となる。プログラムベリファイのうち、ワード線/ビット線のチャージを行う期間が高い電流を必要とする期間(高電流期間)であり、ビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージを行う期間が低い電流を必要とする期間(低電流期間)である。
【0044】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する。チップ2は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ2は、ワード線/ビット線のチャージを行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では低電流期間の動作、すなわちビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージが行われる。チップ2のワード線/ビット線のチャージが終了すると、チップ2はレディ状態であることをコントローラ20に通知する。
【0045】
チップ2は、ワード線/ビット線のチャージが終了した後、続いてビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージを行い、プログラムベリファイを終了する。プログラムベリファイを終了した後、チップ2はサスペンド状態となる。
【0046】
このように、NAND型フラッシュメモリチップは、ピーク電流が発生する動作中はビジー状態となり、ビジー状態を示す信号をコントローラ20に出力する。そして、次のピーク電流が発生する動作の前に、サスペンド状態に移行してレジュームコマンドの入力を待つ。
【0047】
コントローラ20は、メモリチップごとにピーク電流が発生する動作をレディ/ビジーとして把握し、複数のメモリチップ間でビジーが重ならないようにレジュームコマンドを発行することにより、複数のメモリチップ間でピーク電流が発生する動作が重なるのを回避する。すなわち、コントローラ20は、レジュームコマンドの発行タイミングを制御することにより、各々のメモリチップで発生するピーク電流をずらすことができる。これにより、複数のメモリチップを有するメモリシステムにおいて発生する消費電力のピークを低減することが可能である。
【0048】
次に、第1実施形態のメモリシステムにおける書き込み時の動作を3つの例を挙げて詳細に説明する。
【0049】
図6は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のタイミングチャートを示す第1例である。
【0050】
この第1例は、プログラムとプログラムベリファイの動作を分離し、レジュームコマンドの入力に応答して、プログラムとプログラムベリファイがそれぞれ動作をスタートするようにしたものである。なお、ピーク電流が流れる高電流期間を“High Icc”、ピーク電流が流れない低電流期間を“Low Icc”で示している。
【0051】
チップ1,2において、プログラムの高電流期間、プログラムベリファイの高電流期間がそれぞれ重ならないようにする。プログラムベリファイは、しきい値電圧のレベルごとにベリファイを行っており、ここでは3つのレベル(A<B<C)のベリファイを行うものとする。なお、チップ1におけるプログラムベリファイの高電流期間は、先頭のAベリファイの高電流期間のみとする。また、チップ2では、Aベリファイは以前に既にパスしているものとし、チップ2におけるプログラムベリファイの高電流期間は、先頭のBベリファイの高電流期間のみとする。
【0052】
以下に、図6に示す書き込み時の動作を詳述する。
【0053】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する(T1)。チップ1は、レジュームコマンドを受け取ると、プログラム(「Program」)をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T2)。
【0054】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。前述したように、プログラムのうち、ビット線のプリチャージとワード線のチャージを行う期間が高電流期間であり、プログラムパルスの印加とワード線/ビット線電位のディスチャージを行う期間が低電流期間である。
【0055】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T3)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T4)。
【0056】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0057】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T5)。チップ1は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ1は、Aベリファイ(「A Verify」)の高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T6)。
【0058】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちAベリファイの低電流期間の動作を行い、さらにBベリファイ(「B Verify」)、Cベリファイ(「C Verify」)を行う。そして、プログラムベリファイを終了する。前述したように、プログラムベリファイのうち、ワード線/ビット線のチャージを行う期間が高い電流を必要とする高電流期間であり、ビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージを行う期間が低い電流を必要とする低電流期間である。
【0059】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T7)。チップ2は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ2は、Bベリファイの高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T8)。
【0060】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちBベリファイの低電流期間の動作を行い、さらにCベリファイを行う。そして、プログラムベリファイを終了する。プログラムベリファイを終了した後、チップ2はサスペンド状態となる。
【0061】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T9)。チップ1は、レジュームコマンドを受け取り、かつCベリファイが終了したとき、次のプログラムをスタートさせる(T10)。そして、チップ1は、高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T11)。
【0062】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。
【0063】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T12)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T13)。
【0064】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0065】
以上のような動作が繰り返される。
【0066】
図7は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のタイミングチャートを示す第2例である。
【0067】
第1例では、プログラムとプログラムベリファイの動作を分離し、レジュームコマンドの入力によってプログラムとプログラムベリファイの動作をそれぞれスタートさせた。この第2例では、プログラムとプログラムベリファイを連続して行われる1つのシーケンスとし、レジュームコマンドの入力に応答して、プログラムとプログラムベリファイの動作が連続して実行される。
【0068】
チップ1,2において、プログラムの高電流期間(High Icc)のみが重ならないようにする。すなわち、プログラムの先頭のピーク電流が流れる動作が、チップ1とチップ2とで重ならないようにする。プログラムベリファイは、しきい値電圧のレベルごとにベリファイを行っており、ここでは3つのレベル(A<B<C)のベリファイを行うものとする。なお、チップ1,2におけるプログラムベリファイの高電流期間(High Icc)は、プログラムの高電流期間(High Icc)に比べてピーク電流が少ないものとする。このため、プログラムベリファイの高電流期間は、完全にずれなくてもよい。また、チップ2では、Aベリファイは以前に既にパスしているものとする。
【0069】
以下に、図7に示す書き込み時の動作を詳述する。
【0070】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する(T21)。チップ1は、レジュームコマンドを受け取ると、プログラム(「Program」)をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T22)。
【0071】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。そして、チップ1は、Aベリファイ(「A Verify」)、Bベリファイ(「B Verify」)、Cベリファイ(「C Verify」)を行う。
【0072】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T23)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T24)。
【0073】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。そして、チップ1は、Bベリファイ、Cベリファイを行う。プログラムベリファイを終了した後、チップ2はサスペンド状態となる。
【0074】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T25)。チップ1は、レジュームコマンドを受け取り、かつCベリファイが終了したとき、次のプログラムをスタートさせる(T26)。そして、チップ1は、高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T27)。
【0075】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。
【0076】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T28)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T29)。
【0077】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。
【0078】
以上のような動作が繰り返される。
【0079】
図8は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のタイミングチャートを示す第3例である。
【0080】
この第3例では、プログラム、プログラムベリファイにおけるAベリファイ、Bベリファイ、Cベリファイの動作をそれぞれ分離し、レジュームコマンドの入力に応答して、プログラム、Aベリファイ、Bベリファイ、Cベリファイの動作をそれぞれスタートさせる。
【0081】
チップ1,2において、プログラムの高電流期間、プログラムベリファイの高電流期間がそれぞれ重ならないようにする。プログラムベリファイは、しきい値電圧のレベルごとにベリファイを行っており、ここでは3つのレベル(A<B<C)のベリファイを行う。なお、チップ1におけるプログラムベリファイの高電流期間は、Aベリファイ、Bベリファイ、Cベリファイにそれぞれ存在するものとする。また、チップ2では、Aベリファイは以前に既にパスしており、チップ2におけるプログラムベリファイの高電流期間は、Bベリファイ、Cベリファイにそれぞれ存在するものとする。
【0082】
以下に、図8に示す書き込み時の動作を詳述する。
【0083】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する(T31)。チップ1は、レジュームコマンドを受け取ると、プログラム(「Program」)をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T32)。
【0084】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。
【0085】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T33)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T34)。
【0086】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0087】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T35)。チップ1は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ1は、Aベリファイ(「A Verify」)の高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T36)。
【0088】
チップ1は、高電流期間が終了した後、続いてAベリファイの低電流期間の動作を行い、Aベリファイを終了する。Aベリファイを終了した後、チップ1はサスペンド状態となる。
【0089】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T37)。チップ2は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ2は、Bベリファイ(「B Verify」)の高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T38)。
【0090】
チップ2は、高電流期間が終了した後、続いてBベリファイの低電流期間の動作を行い、Bベリファイを終了する。Bベリファイを終了した後、チップ2はサスペンド状態となる。
【0091】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T39)。チップ1は、レジュームコマンドを受け取ると、Bベリファイをスタートさせる。そして、チップ1は、Bベリファイの高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T40)。
【0092】
チップ1は、高電流期間が終了した後、続いてBベリファイの低電流期間の動作を行い、Bベリファイを終了する。Bベリファイを終了した後、チップ1はサスペンド状態となる。
【0093】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T41)。チップ2は、レジュームコマンドを受け取ると、Cベリファイ(「C Verify」)をスタートさせる。そして、チップ2は、Cベリファイの高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T42)。
【0094】
チップ2は、高電流期間が終了した後、続いてCベリファイの低電流期間の動作を行い、Cベリファイを終了する。Cベリファイを終了した後、チップ2はサスペンド状態となる。
【0095】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T43)。チップ1は、レジュームコマンドを受け取ると、Cベリファイをスタートさせる。そして、チップ1は、Cベリファイの高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T44)。
【0096】
チップ1は、高電流期間が終了した後、続いてCベリファイの低電流期間の動作を行い、Cベリファイを終了する。Cベリファイを終了した後、チップ1はサスペンド状態となる。
【0097】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T45)。チップ2は、レジュームコマンドを受け取ると、次のプログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T46)。
【0098】
チップ2は、高電流期間が終了した後、続いてプログラムの低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0099】
以上のような動作が繰り返される。
【0100】
次に、第1実施形態のメモリシステムにおける読み出し時の動作を詳細に説明する。
【0101】
図9は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における読み出し時のフローチャートである。図10は、NAND型フラッシュメモリチップ10−1,10−2における読み出し時のタイミングチャートである。
【0102】
隣接するワード線WLnとワード線WLn+1の干渉を補正する読み出しにおいて、ワード線WLn+1における読み出しを行った後にワード線WLnにおける読み出しを行い、ワード線WLn+1の読み出し結果に応じてワード線WLnの読み出しを補正する。なお、nは1以上の自然数を表す。前記読み出しは、しきい値電圧のレベルごとに読み出しを行っており、ここでは3つのレベル(A<B<C)の読み出しを行うものとする。
【0103】
図9に示すように、メモリチップ10−1,10−2内の主制御部12は、読み出し動作をスタートすると(ステップS21)、まず、ワード線WLn+1に接続されたメモリセルに対してしきい値電圧A,B,Cの読み出しを行う(ステップS22)。続いて、主制御部12は、ワード線WLn+1で読み出したページが、下位(Lower)ページか上位(Upper)ページかを判定する(ステップS23)。
【0104】
ワード線WLn+1で読み出したページが上位ページのとき、主制御部12は、ワード線WLnに接続されたメモリセルに対してしきい値電圧A,Cの読み出しを行い(ステップS24)、読み出し動作を終了する(ステップS25)。一方、ワード線WLn+1で読み出したページが下位ページのとき、主制御部12は、ワード線WLnに接続されたメモリセルに対してしきい値電圧Bの読み出しを行う(ステップS26)。その後、読み出し動作を終了する(ステップS25)。
【0105】
次に、図10を用いて読み出し時の動作を述べる。
【0106】
この例は、ワード線WLn+1とワード線WLnにおける読み出し動作を分離し、レジュームコマンドの入力に応答して、ワード線WLn+1とワード線WLnにおける読み出し動作がそれぞれスタートするようにしたものである。なお同様に、ピーク電流が流れる高電流期間を“High Icc”、ピーク電流が流れない低電流期間を“Low Icc”で示している。
【0107】
チップ1,2において、ワード線WLn+1における読み出し時の高電流期間と、ワード線WLnにおける読み出し時の高電流期間がそれぞれ重ならないようにする。なお、チップ1では、ワード線WLn+1で読み出したページが上位ページであり、ワード線WLnにおける読み出し時の高電流期間は、先頭のAの読み出し時の高電流期間のみとする。また、チップ2では、ワード線WLn+1で読み出したページが下位ページであり、ワード線WLnにおける読み出し時の高電流期間は、先頭のBの読み出し時の高電流期間のみとする。
【0108】
まず、コントローラ20は、チップ1がレディ状態であるとき、リードコマンド(「Read Command」)をチップ1に出力する(T51)。チップ1は、リードコマンドを受け取ると、ワード線WLn+1における読み出し動作をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T52)。
【0109】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、ワード線WLn+1における読み出し動作を終了する。読み出し動作を終了した後、チップ1はサスペンド状態となる。
【0110】
コントローラ20は、チップ1がレディ状態であることを認知すると、リードコマンドをチップ2に出力する(T53)。チップ2は、リードコマンドを受け取ると、ワード線WLn+1における読み出し動作をスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T54)。
【0111】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、ワード線WLn+1における読み出し動作を終了する。読み出し動作を終了した後、チップ2はサスペンド状態となる。
【0112】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンド(「Resume」)をチップ1に出力する(T55)。チップ1は、レジュームコマンドを受け取ると、ワード線WLnにおけるAの読み出しをスタートさせる。そして、チップ1は、Aの読み出しの高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T56)。
【0113】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちAの読み出しの低電流期間の動作を行い、さらにCの読み出しを行う。そして、ワード線WLnにおける読み出し動作を終了する。読み出し動作を終了した後、チップ1はサスペンド状態となる。
【0114】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T57)。チップ2は、レジュームコマンドを受け取ると、ワード線WLnにおけるBの読み出しをスタートさせる。そして、チップ2は、Bの読み出しの高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では低電流期間の動作が行われる。高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T58)。
【0115】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちBの読み出しの低電流期間の動作を行う。そして、ワード線WLnにおける読み出し動作を終了する。読み出し動作を終了した後、チップ2はサスペンド状態となる。
【0116】
以上のような動作が繰り返される。
【0117】
以上説明したように第1実施形態では、NAND型フラッシュメモリチップの各々は、ピーク電流が発生する動作中はビジー状態となり、ビジーを示す信号をコントローラ20に出力し、ピーク電流が発生しない動作中はレディ状態となり、レディを示す信号をコントローラ20に出力する。すなわち、メモリチップはピーク電流が発生する動作中はビジー状態となり、ビジー状態が終了するとレディ状態に移行し、次のピーク電流が発生する動作の前にサスペンド状態に移行して、レジュームコマンドの入力を待つ。
【0118】
コントローラ20は、メモリチップごとに、ピーク電流が発生しない動作をレディとして、またピーク電流が発生する動作をビジーとして把握し、メモリチップ間でビジーが重ならないように、レジュームコマンドを発行して複数のメモリチップ間でピーク電流が発生する動作の重なりを回避する。すなわち、コントローラ20は、レジュームコマンドの発行タイミングを制御することにより、各々のメモリチップでピーク電流が発生する期間をずらすことができる。これにより、複数のメモリチップを有するメモリシステムにおいて発生する消費電力のピークを低減することが可能である。
【0119】
なお、第1実施形態では、書き込み及び読み出しの動作の一例について説明したが、その他の書き込み及び読み出しや、消去についても同様に適用可能である。また、2個のNAND型フラッシュメモリチップにおける書き込み及び読み出しの動作を述べたが、メモリチップが3個以上の場合も同様の手法で動作させることができる。
【0120】
さらに、例えば、書き込み動作においてメモリチップがレディ状態のときに、別のメモリチップで読み出し動作を実行したり、コントローラ側でピーク電流が発生する動作(例えば、ECCのエラー訂正など)を実行することも可能である。
【0121】
[2] 第2実施形態
次に、第2実施形態のメモリシステムについて説明する。
【0122】
前述した第1実施形態では複数のメモリチップを制御するコントローラを備え、コントローラからレジュームコマンドを各々のメモリチップに出力することにより、各々のメモリチップにおいてピーク電流が発生する動作が重ならないようにした。この第2実施形態では、複数のメモリチップがレディ状態になったときに、複数のメモリチップの各々が異なる待機時間を空けてピーク電流が発生する動作をそれぞれスタートさせる。これにより、複数のメモリチップ間でピーク電流が発生する動作が重ならないようにする。
【0123】
図11は、第2実施形態のメモリシステムの構成を示すブロック図である。
【0124】
図示するように、メモリシステム30は、複数の半導体メモリチップ30−n(nは1以上の自然数)、例えばNAND型フラッシュメモリチップ(メモリチップ)30−1、30−2を備える。
【0125】
メモリチップ30−nは、メモリセルアレイ31、ロウデコーダ32、センスアンプ33、MCMBUSY制御回路34−n、チップアドレスレジスタ35−n、内部電源生成回路36、アドレス/データ制御回路37、制御回路38、及び入出力インターフェース39を備える。
【0126】
複数のメモリチップ30−nのMCMBUSY制御回路34−nには出力パッド(あるいはピン)がそれぞれ設けられ、複数のメモリチップ間で出力ピンが接続されている。そして、複数のメモリチップのMCMBUSY制御回路34−n間において、ビジー信号MCMBUSYが共有されている。
【0127】
また、複数のメモリチップ30−nは、メモリチップ毎にチップアドレスレジスタ35−nを有している。チップアドレスレジスタには、そのメモリチップを識別するためのチップアドレスが記憶されている、すなわちメモリチップ毎にユニークなアドレスが割り付けられている。割り付け手段としては、フラッシュメモリによく用いられるROMヒューズに記憶する方法、あるいはチップアドレスパッドを用意し、そのパッドへのボンディング時にメモリチップ毎に電源電圧Vccもしくは接地電圧Vssへの接続パターンを変えて、ユニークなチップアドレスを定義する方法などがある。
【0128】
制御回路38は、MCMBUSY制御回路34−n、内部電源生成回路36、アドレス/データ制御回路37、入出力インターフェース39の動作を制御する。内部電源生成回路36は、メモリチップ内で用いられる電圧を生成する。アドレス/データ制御回路37は、アドレス及びデータなどの信号を制御回路38、ロウデコーダ32、及びセンスアンプに入出力する。入出力インターフェース39は、外部と制御回路38及びアドレス/データ制御回路37との間のインターフェース処理を行う。
【0129】
ロウデコーダ32は、ロウアドレスに基づいてメモリセルアレイ31内のワード線を選択する。センスアンプ33は、選択されたビット線に接続されたメモリセルからデータを読み出す。
【0130】
メモリセルアレイ31は複数のブロックを備え、ブロックの各々は複数のNAND列を有する。NAND列の各々は直列に接続された複数のメモリセルを有し、メモリセルの各々は、浮遊ゲートと、浮遊ゲート上にゲート間絶縁膜を介して配置された制御ゲートとを持つ不揮発性のメモリセルトランジスタからなる。
【0131】
次に、メモリチップ30−n内のMCMBUSY制御回路34−nについて説明する。
【0132】
図12は、第2実施形態におけるMCMBUSY制御回路の構成を示す回路図である。
【0133】
図示するように、出力パッドTOは、プルアップ抵抗R1及びpチャネルMOSトランジスタTR1を介して電源電圧Vccに接続されている。また、出力パッドTOは、nチャネルMOSトランジスタTR2を介して基準電圧(例えば、接地電圧)Vssに接続されている。さらに、出力パッドTOは入力バッファ、例えばインバータIV1に接続されている。
【0134】
トランジスタTR2のゲートにはインバータIV2が接続され、インバータIV2の入力端子にはチップビジー信号CHIPBUSYnが入力される。トランジスタTR1のゲートには、イネーブル信号ENABLEnが入力される。
【0135】
ビジー信号MCMBUSYは出力パッドTOから出力され、インバータIV1の出力端子から制御信号ALLREADYnが制御回路38に出力される。ビジー信号MCMBUSYは、複数のメモリチップ30−n間で共有されており、メモリチップ30−n内でいずれかのメモリチップがピーク電流を発生する高電流期間にあるとき“L”となり、全メモリチップがピーク電流を発生しない低電流期間のとき、“H”となる。ビジー信号MCMBUSYは、入力バッファを介して制御信号ALLREADYn(レジュームトリガ信号)として、各メモリチップ30−nの制御回路38に入力される。
【0136】
チップビジー信号CHIPBUSYnは、メモリチップ30−nがピーク電流を発生する高電流期間にあるとき“L”となり、ピーク電流を発生しない低電流期間のとき“H”となる。すなわち、チップビジー信号CHIPBUSYnは、メモリチップ30−n間においてずらしたい動作中に“L”となる。
【0137】
次に、第2実施形態のメモリシステムにおける書き込み時の動作を説明する。ここでは、2個のNAND型フラッシュメモリチップ30−1,30−2における書き込み動作を述べるが、メモリチップが3個以上の場合も同様の手法で書き込み動作を行うことができる。
【0138】
図13は、第2実施形態のNAND型フラッシュメモリチップ30−1,30−2における書き込み時のフローチャートである。図14は、第2実施形態における書き込み時のタイミングチャートである。
【0139】
メモリチップ30−1内の制御回路38は、全てのメモリチップ30−1,30−2がピーク電流を発生しない低電流期間(レディ状態)となり、レジュームトリガ信号として制御信号ALLREADYnが入力されるまで待機する((「Wait Resume signal」)ステップS21)。制御回路38は、レジュームトリガ信号を受け取ると、メモリチップ30−1に設定された待機時間が経過するのを待つ((「Wait chip-dependent time」)ステップS22)。そして、待機時間が経過すると、制御回路38はプログラムをスタートさせ((「Program start」)ステップS23)、プログラムを実行する((「program」)ステップS24)。プログラムは、図14に示すように、ビット線のプリチャージ、ワード線のチャージ、プログラムパルスの印加、及びワード線/ビット線電位のディスチャージといった順序で行われる。
【0140】
プログラムが終了すると((「Program end」)ステップS25)、メモリチップ30−1はサスペンド状態になり、レジュームトリガ信号が入力されるまで待機する((「Wait Resume signal」)ステップS26)。制御回路38は、レジュームトリガ信号を受け取ると、メモリチップ30−1に設定された待機時間が経過するのを待つ((「Wait chip-dependent time」)ステップS27)。そして、待機時間が経過すると、制御回路38はプログラムベリファイをスタートさせ((「Verify Start」)ステップS28)、プログラムベリファイを実行する((「Verify」)ステップS29)。
【0141】
プログラムベリファイが終了すると((「Verify end」)ステップS30)、制御回路38はメモリセルに対してベリファイがパスしたか否かを判定する((「Verify Pass」)ステップS31)。ベリファイをパスしているとき、書き込み動作を終了する((「End」)ステップS32)。
【0142】
一方、ベリファイをパスしていないとき、制御回路38はメモリチップ30−1をサスペンド状態とし、再び、レジュームトリガ信号が入力されるまで待機する((「Wait Resume signal」)ステップS33)。制御回路38は、レジュームトリガ信号を受け取ると、メモリチップ30−1に設定された待機時間が経過するのを待つ((「Wait chip-dependent time」)ステップS34)。そして、待機時間が経過すると、制御回路38はステップS23に戻り、ステップS23以降の処理を繰り返す。
【0143】
図14を用いて、書き込み時の動作を説明する。なお、NAND型フラッシュメモリチップ30−1をチップ1とし、NAND型フラッシュメモリチップ30−2をチップ2とする。
【0144】
ビジー信号MCMBUSYは、チップ1,2間で共有されており、チップ1,2のうち少なくともいずれかのチップがピーク電流を発生する高電流期間にあるとき“L”となり、チップ1,2が共にピーク電流を発生しない低電流期間のとき、“H”となる。ビジー信号MCMBUSYは、入力バッファを介して制御信号ALLREADYnとして、チップ1,2の制御回路38に入力される。
【0145】
チップビジー信号CHIPBUSYnは、チップがピーク電流を発生する高電流期間にあるとき“L”となり、ピーク電流を発生しない低電流期間のとき“H”となる。すなわち、チップビジー信号CHIPBUSYnは、チップ1,2間においてずらしたい動作中に“L”となる。
【0146】
まず、チップ1,2がピーク電流を発生しない低電流期間のとき、信号MCMBUSYが“H”となる。チップ1は、信号MCMBUSYが“H”になると、チップ1に設定された待機時間T1だけ待ち、プログラムをスタートする。
【0147】
プログラムでは、ビット線のプリチャージ、ワード線のチャージ、プログラムパルスの印加、及びワード線/ビット線電位のディスチャージといった順序で行われる。ここで、ビット線のプリチャージとワード線のチャージが行われている高電流期間に、チップビジー信号CHIPBUSY1が“L”となり、ワード線のチャージが終了すると、すなわち高電流期間が終了すると、チップ1のチップビジー信号CHIPBUSY1が“H”となる。
【0148】
チップ2は、信号MCMBUSYが“H”になると、チップ2に設定された待機時間T2だけ待ち、プログラムをスタートする。ビット線のプリチャージとワード線のチャージが行われている高電流期間に、チップ2のチップビジー信号CHIPBUSY2が“L”となり、ワード線のチャージが終了すると、すなわち高電流期間が終了すると、チップビジー信号CHIPBUSY2が“H”となる。
【0149】
ここで、待機時間T2は、チップ1においてピーク電流を発生する高電流期間が終了するのに必要な時間に設定されている。このため、チップ2は、待機時間T2が経過した後にプログラムをスタートすることにより、チップ1,2においてピーク電流が発生する期間が重なるのを防止することができる。
【0150】
すなわち、ビジー信号MCMBUSYが“H”になってからプログラムをスタートさせるまでの待ち時間がメモリチップ毎に設定されており、各メモリチップはビジー信号MCMBUSYが“H”になってから、設定された所定の待機時間が経過するのを待ち、待機時間の経過後にそれぞれプログラムをスタートさせる。これにより、ピーク電流が発生する動作が各メモリチップ間で重なるのを回避することができる。
【0151】
第2実施形態では、各メモリチップの制御回路は、第1実施形態と同様に、ピーク電流が発生する動作の直前でサスペンド状態に移行する。そして、全メモリチップがピーク電流を発生しない期間になったとき、つまり信号ALLREADYn(レジュームトリガ信号)が“L”になったとき、これをトリガとして各メモリチップが書き込み動作を再開する。このとき、各メモリチップはチップ毎に設定された待機時間を持っている。この待機時間は、メモリチップ毎に異なるタイマで定義され、チップアドレスごとに異なっている。これにより、各メモリチップに設定された待機時間によって、動作開始時間をずらすことができ、複数のメモリチップ間でピーク電流が発生する期間をずらすことが可能である。
【0152】
以上説明したように実施形態によれば、複数の不揮発性半導体メモリを有するメモリシステムにおいて発生する消費電力のピークを低く抑えることができる。
【0153】
実施形態では、書き込み動作と読み出し動作について、ピーク電流が重ならない制御について説明したが、消去動作についても同様の制御が可能である。また、チップ間で書き込みと書き込み、あるいは読み出しと読み出しの同種動作を行う場合だけでなく、チップ1で書き込み動作、チップ2で読み出し動作のような異種動作を行う場合にもピーク電流をずらすことが可能である。
【0154】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0155】
10…メモリシステム、10−1,10−2,10−3,10−4…NAND型フラッシュメモリチップ(メモリチップ)、11…メモリセルアレイ、12…主制御部、13…ブロック制御回路、14…ロウ制御回路、15…選択回路、16…センスアンプ、17…カラム制御回路、18…データ入出力バッファ、19…入出力制御回路、20…コントローラ、30…メモリシステム、30−1,30−2,30−n…NAND型フラッシュメモリチップ(メモリチップ)、31…メモリセルアレイ、32…ロウデコーダ、33…センスアンプ、34−1,34−2,34−n…MCMBUSY制御回路、35−1,35−2,35−n…チップアドレスレジスタ、36…内部電源生成回路、37…アドレス/データ制御回路、38…制御回路、39…入出力インターフェース。
【技術分野】
【0001】
本発明の実施形態は、複数の不揮発性半導体メモリを有するメモリシステムに関し、例えば複数のNAND型フラッシュメモリを有するメモリシステムに関するものである。
【背景技術】
【0002】
近年、微細化の進行と共に、NAND型フラッシュメモリの書き込みスピードは遅くなっている。一方、複数のNAND型フラッシュメモリチップを有するメモリシステムが扱うデータ量は増加傾向にあるため、メモリシステムは複数のNAND型フラッシュメモリチップに対し同時に書き込みを実行することにより、書き込み性能の向上を図っている。
【0003】
しかしこの場合、複数のNAND型フラッシュメモリチップを同時に動作させるため、消費電流が増大する。特に、複数のNAND型フラッシュメモリチップにおける消費電流のピークが重なり、大きなピーク電流が流れることが懸念される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−242632号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の不揮発性半導体メモリを有するメモリシステムで発生する消費電力のピークを低く抑えることができるメモリシステムを提供する。
【課題を解決するための手段】
【0006】
一実施態様のメモリシステムは、複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第1動作を行う第1の不揮発性半導体メモリと、複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第2動作を行う第2の不揮発性半導体メモリと、前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリの前記第1動作及び前記第2動作を制御するコントローラとを具備する。前記第1動作は、所定電流以上の電流を消費する第1サブ動作及び第2サブ動作を含み、前記第2動作は、所定電流以上の電流を消費する第3サブ動作及び第4サブ動作を含む。前記第1の不揮発性半導体メモリは、前記コントローラから第1制御信号を受け取ると、前記第1動作の前記第1サブ動作を実行した後、前記第1動作を中断し、前記コントローラは前記第1動作が中断されたことを認知すると、第2制御信号を前記第2の不揮発性半導体メモリに送信する。前記第2の不揮発性半導体メモリは、前記コントローラから前記第2制御信号を受け取ると、前記第2動作の前記第3サブ動作を実行した後、前記第2動作を中断し、前記コントローラは前記第2動作が中断されたことを認知すると、第3制御信号を前記第1の不揮発性半導体メモリに送信する。前記第1の不揮発性半導体メモリは、前記コントローラから前記第3制御信号を受け取ると、前記第1動作を再開して前記第2サブ動作を実行し、前記コントローラは前記第2サブ動作が実行されたことを認知すると、第4制御信号を前記第2の不揮発性半導体メモリに送信する。前記第2の不揮発性半導体メモリは、前記コントローラから前記第4制御信号を受け取ると、前記第2動作を再開して前記第4サブ動作を実行することを特徴とする。
【図面の簡単な説明】
【0007】
【図1】プログラムとプログラムベリファイ時のタイミングと消費電流を模式的に示す図である。
【図2】多値NAND型フラッシュメモリにおけるプログラムとプログラムベリファイのフロー図である。
【図3】第1実施形態のメモリシステムの構成を示すブロック図である。
【図4】第1実施形態のNAND型フラッシュメモリにおける書き込み時のフローチャートである。
【図5】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートである。
【図6】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートを示す第1例である。
【図7】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートを示す第2例である。
【図8】第1実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートを示す第3例である。
【図9】第1実施形態のNAND型フラッシュメモリにおける読み出し時のフローチャートである。
【図10】第1実施形態のNAND型フラッシュメモリにおける読み出し時のタイミングチャートである。
【図11】第2実施形態のメモリシステムの構成を示すブロック図である。
【図12】第2実施形態のNAND型フラッシュメモリにおけるMCMBUSY制御回路の構成を示す回路図である。
【図13】第2実施形態のNAND型フラッシュメモリにおける書き込み時のフローチャートである。
【図14】第2実施形態のNAND型フラッシュメモリにおける書き込み時のタイミングチャートである。
【発明を実施するための形態】
【0008】
実施形態を説明する前に、本出願を提案するに至った経緯について説明する。
【0009】
複数の不揮発性半導体メモリチップを同時に動作させる場合、消費電流が増大する可能性がある。例えば、複数のNAND型フラッシュメモリチップ(以下、メモリチップ)に対し、同時に書き込みを実行すると、各メモリチップにおいて消費されるピーク電流が重なり、大きな消費電力のピークが発生することが懸念される。なお、以降の説明において、書き込みはプログラムとプログラムベリファイを含むものとする。
【0010】
図1に、プログラム(図中「program」と表記、以下同様)とプログラムベリファイ(「Verify」)時のタイミングとその際の消費電流を模式的に示す。プログラムもプログラムベリファイも大きく、ワード線/ビット線のセットアップ(A、C)→書き込みもしくはリード・センス動作→ワード線/ビット線電位のディスチャージ(リカバリ動作)(B、D)といった個々の動作に大別される。なお、図1中、Aは「BL pre-charge」ビット線プリチャージ及び「WL charge」ワード線チャージの意、Bは「program pulse」プログラムパルス及び「WL/BL discharge」ワード線/ビット線ディスチャージの意、Cは「WL/BL charge」ワード線/ビット線チャージの意、Dは「BL isolate & discharge」ビット線のセル電流による放電、「sense」リード・センス動作及び「WL/BL discharge」ワード/ビット線ディスチャージの意を示す。
【0011】
個々の動作の所要時間は、メモリチップ内部であらかじめ決められたタイマで決まる。メモリチップの消費電流は一定ではなく、ある特定の動作で大きなピーク電流が発生する。
【0012】
複数のメモリチップで同時に書き込みを実行したときにも、このピーク電流がメモリチップ間で重ならないようにできればよい。例えば、書き込み実行のタイミングをずらすといった方法が考えられるが、実際にはそれだけでは重なりを防ぐのは困難である。以下に、その例を示す。
【0013】
図2に、多値NAND型フラッシュメモリにおけるプログラム(「program」)とプログラムベリファイ(「Verify」)のフローを示す。
【0014】
多値のNAND型フラッシュメモリでは、しきい値電圧のレベルごとにベリファイを行っているが、レベルごとにプログラムが完了すると、以降該当レベルのベリファイは実施する必要はない。ここでは、3つのレベル(A<B<C)のベリファイを行っている。
【0015】
また、一般にNAND型フラッシュメモリのメモリセルはしきい値電圧の低いレベルから書き上げて行くので、書き込み開始直後はB,Cレベルのベリファイをある回数実行しないことも、書き込み性能改善のために行われている。
【0016】
つまり、メモリチップごとにピーク電流が流れるタイミングは異なり、しかもそのタイミングはメモリセルのセル特性に起因する。このため、ピーク電流が流れるタイミングを制御することは困難である。
【0017】
他の要因として、NAND型フラッシュメモリは、コマンド入力を受けてメモリチップ内に備えたオシレータで、例えば100ns周期のクロックを生成している。このクロックに同期して制御回路(ステートマシン)が動作する。
【0018】
タイマ設定が複数のメモリチップで同じ場合でも、このクロック周期にはばらつきが生じる。NAND型フラッシュメモリの書き込みや読み出し時間は数十μs〜数msであるため、クロック周期のばらつきは決して無視できず、どこかでメモリチップ間のピーク電流が重なる可能性がある。
【0019】
このように、複数のNAND型フラッシュメモリで同時に書き込みシーケンスが実行されている場合に、それぞれのNAND型フラッシュメモリで発生するピーク電流が重なり、メモリシステムとして非常に大きな消費電流となる懸念があった。このため、メモリシステムはこの最大のピーク電流に対応する電源システムを組み込む必要があった。
【0020】
そこで、本実施形態では、複数の不揮発性半導体メモリを有するメモリシステムで発生する消費電力のピークを低く抑えることができるメモリシステムを提供する。
【0021】
以下に、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0022】
[1] 第1実施形態
第1実施形態のメモリシステムについて説明する。
【0023】
図3は、第1実施形態のメモリシステムの構成を示すブロック図である。
【0024】
図示するように、メモリシステム10は、複数の不揮発性半導体メモリチップ、例えばNAND型フラッシュメモリチップ(以下、メモリチップ)10−1,10−2,10−3,10−4、コントローラ20を備える。コントローラ20は、メモリチップ10−1,10−2,10−3,10−4の動作を制御する。
【0025】
メモリチップの各々は、メモリセルアレイ11、主制御部12、ブロック制御回路13、ロウ制御回路14、選択回路15、センスアンプ16、カラム制御回路17、データ入出力バッファ18、入出力制御回路19を備える。
【0026】
主制御部12は、コントローラ20から出力された制御信号を入出力制御回路19及びデータ入出力バッファ18を介して受け取り、制御信号に基づいてブロック制御回路13、ロウ制御回路14、選択回路15、センスアンプ16及びカラム制御回路17を制御して、メモリセルアレイ11に対するデータの書き込み、読み出し及び消去を行う。
【0027】
ブロック制御回路13は、メモリセルアレイ11に含まれるブロックの選択を制御する。ロウ制御回路14は、メモリセルアレイ11に対するデータの書き込み、読み出し及び消去時にメモリセルアレイ11内のワード線に対して印加する電圧の制御を行う。
【0028】
カラム制御回路17は、カラムアドレスに基づいてメモリセルアレイ11内のビット線の選択を制御する。センスアンプ16は、選択されたビット線に接続されたメモリセルから選択回路15を介してデータを読み出す。
【0029】
メモリセルアレイ11は複数のブロックを備え、ブロックの各々は複数のNAND列を有する。NAND列の各々は直列に接続された複数のメモリセルを有し、メモリセルの各々は、浮遊ゲートと、浮遊ゲート上にゲート間絶縁膜を介して配置された制御ゲートとを持つ不揮発性のメモリセルトランジスタからなる。
【0030】
次に、第1実施形態のメモリシステムにおける書き込み時の動作を説明する。ここでは、2個のNAND型フラッシュメモリチップ10−1,10−2における書き込み動作を述べるが、メモリチップが3個以上の場合も同様の手法で書き込み動作を行うことができる。
【0031】
図4は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のフローチャートである。図5は、第1実施形態における書き込み時のタイミングチャートである。
【0032】
まず、メモリチップ10−1,10−2内の主制御部12は、コントローラ20からレジュームコマンドが入力されるまで待機する((「Wait Resume Command」)ステップS1)。主制御部12は、コントローラ20からレジュームコマンドを受け取ると、プログラムをスタートさせ((「Program start」)ステップS2)、プログラムを実行する((「Program」)ステップS3)。プログラムは、図5に示すように、ビット線のプリチャージ、ワード線のチャージ、プログラムパルスの印加、及びワード線/ビット線電位のディスチャージといった順序で行われる。
【0033】
プログラムが終了すると((「program end」)ステップS4)、主制御部12はメモリチップをサスペンド状態(一時中断状態)とし、再び、コントローラ20からレジュームコマンドが入力されるまで待機する((「Wait Resume Command」)ステップS5)。
【0034】
次に、主制御部12は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせ((「Verify start」)ステップS6)、プログラムベリファイを実行する((「Verify」)ステップS7)。プログラムベリファイは、図5に示すように、ワード線/ビット線のチャージ、ビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージといった順序で行われる。
【0035】
プログラムベリファイが終了すると((「Verify end」)ステップS8)、主制御部12はメモリセルに対してベリファイがパスしたか否かを判定する((「Verify Pass」)ステップS9)。ベリファイをパスしているとき、書き込み動作を終了する((「End」)ステップS10)。
【0036】
一方、ベリファイをパスしていないとき、主制御部12はメモリチップをサスペンド状態とし、再び、コントローラ20からレジュームコマンドが入力されるまで待機する((「Wait Resume Command」)ステップS11)。そして、主制御部12は、コントローラ20からレジュームコマンドを受け取ると、ステップS2に戻り、ステップS2以降の処理を繰り返す。
【0037】
図5を用いて、書き込み時の動作を述べる。なお、図5以降の図では、NAND型フラッシュメモリチップ10−1をチップ1とし、NAND型フラッシュメモリチップ10−2をチップ2とする。チップステータスは、“H”がレディ状態、“L”がビジー状態であることを表す。このレディまたはビジーの出力はメモリチップに出力ピンを設けてもよいし、メモリチップからステータスコマンドを出力してもよい。
【0038】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する。チップ1は、レジュームコマンドを受け取ると、プログラム(「program」)をスタートさせる。そして、チップ1は、ビット線のプリチャージ(「BL pre-charge」)を行い、続いてワード線のチャージ(「WL charge」)を行う。ワード線のチャージが終了すると、すなわち高い電流を必要とする期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する。
【0039】
チップ1は、ワード線のチャージが終了した後、続いてプログラムパルスの印加(「program pulse」)、及びワード線/ビット線電位のディスチャージ(「WL/BL discharge」)を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。プログラムのうち、ビット線のプリチャージとワード線のチャージを行う期間が高い電流を必要とする期間(高電流期間)であり、プログラムパルスの印加とワード線/ビット線電位のディスチャージを行う期間が低い電流を必要とする期間(低電流期間)である。
【0040】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、ビット線のプリチャージを行い、続いてワード線のチャージを行う。このとき、チップ2のこれら高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作、すなわちプログラムパルスの印加、及びワード線/ビット線のディスチャージが行われる。ワード線のチャージが終了すると、すなわち高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する。
【0041】
チップ2は、ワード線のチャージが終了した後、続いてプログラムパルスの印加、及びワード線/ビット線電位のディスチャージを行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0042】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する。チップ1は、レジュームコマンドを受け取ると、プログラムベリファイ(「Verify」)をスタートさせる。そして、チップ1は、ワード線/ビット線のチャージ(「WL/BL charge」)を行う。このとき、チップ1のこの高電流期間の動作と並行して、チップ2では、前述したように、低電流期間の動作、すなわちプログラムパルスの印加、及びワード線/ビット線のディスチャージが行われる。チップ1のワード線/ビット線のチャージが終了すると、すなわち高い電流を必要とする期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する。
【0043】
チップ1は、ワード線/ビット線のチャージが終了した後、続いてビット線のセル電流による放電(「BL isolate & discharge」)、リード・センス動作(「sense」)、及びワード線/ビット線電位のディスチャージ(「WL/BL discharge」)を行い、プログラムベリファイを終了する。プログラムベリファイを終了した後、チップ1はサスペンド状態となる。プログラムベリファイのうち、ワード線/ビット線のチャージを行う期間が高い電流を必要とする期間(高電流期間)であり、ビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージを行う期間が低い電流を必要とする期間(低電流期間)である。
【0044】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する。チップ2は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ2は、ワード線/ビット線のチャージを行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では低電流期間の動作、すなわちビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージが行われる。チップ2のワード線/ビット線のチャージが終了すると、チップ2はレディ状態であることをコントローラ20に通知する。
【0045】
チップ2は、ワード線/ビット線のチャージが終了した後、続いてビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージを行い、プログラムベリファイを終了する。プログラムベリファイを終了した後、チップ2はサスペンド状態となる。
【0046】
このように、NAND型フラッシュメモリチップは、ピーク電流が発生する動作中はビジー状態となり、ビジー状態を示す信号をコントローラ20に出力する。そして、次のピーク電流が発生する動作の前に、サスペンド状態に移行してレジュームコマンドの入力を待つ。
【0047】
コントローラ20は、メモリチップごとにピーク電流が発生する動作をレディ/ビジーとして把握し、複数のメモリチップ間でビジーが重ならないようにレジュームコマンドを発行することにより、複数のメモリチップ間でピーク電流が発生する動作が重なるのを回避する。すなわち、コントローラ20は、レジュームコマンドの発行タイミングを制御することにより、各々のメモリチップで発生するピーク電流をずらすことができる。これにより、複数のメモリチップを有するメモリシステムにおいて発生する消費電力のピークを低減することが可能である。
【0048】
次に、第1実施形態のメモリシステムにおける書き込み時の動作を3つの例を挙げて詳細に説明する。
【0049】
図6は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のタイミングチャートを示す第1例である。
【0050】
この第1例は、プログラムとプログラムベリファイの動作を分離し、レジュームコマンドの入力に応答して、プログラムとプログラムベリファイがそれぞれ動作をスタートするようにしたものである。なお、ピーク電流が流れる高電流期間を“High Icc”、ピーク電流が流れない低電流期間を“Low Icc”で示している。
【0051】
チップ1,2において、プログラムの高電流期間、プログラムベリファイの高電流期間がそれぞれ重ならないようにする。プログラムベリファイは、しきい値電圧のレベルごとにベリファイを行っており、ここでは3つのレベル(A<B<C)のベリファイを行うものとする。なお、チップ1におけるプログラムベリファイの高電流期間は、先頭のAベリファイの高電流期間のみとする。また、チップ2では、Aベリファイは以前に既にパスしているものとし、チップ2におけるプログラムベリファイの高電流期間は、先頭のBベリファイの高電流期間のみとする。
【0052】
以下に、図6に示す書き込み時の動作を詳述する。
【0053】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する(T1)。チップ1は、レジュームコマンドを受け取ると、プログラム(「Program」)をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T2)。
【0054】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。前述したように、プログラムのうち、ビット線のプリチャージとワード線のチャージを行う期間が高電流期間であり、プログラムパルスの印加とワード線/ビット線電位のディスチャージを行う期間が低電流期間である。
【0055】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T3)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T4)。
【0056】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0057】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T5)。チップ1は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ1は、Aベリファイ(「A Verify」)の高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T6)。
【0058】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちAベリファイの低電流期間の動作を行い、さらにBベリファイ(「B Verify」)、Cベリファイ(「C Verify」)を行う。そして、プログラムベリファイを終了する。前述したように、プログラムベリファイのうち、ワード線/ビット線のチャージを行う期間が高い電流を必要とする高電流期間であり、ビット線のセル電流による放電、リード・センス動作、及びワード線/ビット線電位のディスチャージを行う期間が低い電流を必要とする低電流期間である。
【0059】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T7)。チップ2は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ2は、Bベリファイの高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T8)。
【0060】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちBベリファイの低電流期間の動作を行い、さらにCベリファイを行う。そして、プログラムベリファイを終了する。プログラムベリファイを終了した後、チップ2はサスペンド状態となる。
【0061】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T9)。チップ1は、レジュームコマンドを受け取り、かつCベリファイが終了したとき、次のプログラムをスタートさせる(T10)。そして、チップ1は、高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T11)。
【0062】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。
【0063】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T12)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T13)。
【0064】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0065】
以上のような動作が繰り返される。
【0066】
図7は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のタイミングチャートを示す第2例である。
【0067】
第1例では、プログラムとプログラムベリファイの動作を分離し、レジュームコマンドの入力によってプログラムとプログラムベリファイの動作をそれぞれスタートさせた。この第2例では、プログラムとプログラムベリファイを連続して行われる1つのシーケンスとし、レジュームコマンドの入力に応答して、プログラムとプログラムベリファイの動作が連続して実行される。
【0068】
チップ1,2において、プログラムの高電流期間(High Icc)のみが重ならないようにする。すなわち、プログラムの先頭のピーク電流が流れる動作が、チップ1とチップ2とで重ならないようにする。プログラムベリファイは、しきい値電圧のレベルごとにベリファイを行っており、ここでは3つのレベル(A<B<C)のベリファイを行うものとする。なお、チップ1,2におけるプログラムベリファイの高電流期間(High Icc)は、プログラムの高電流期間(High Icc)に比べてピーク電流が少ないものとする。このため、プログラムベリファイの高電流期間は、完全にずれなくてもよい。また、チップ2では、Aベリファイは以前に既にパスしているものとする。
【0069】
以下に、図7に示す書き込み時の動作を詳述する。
【0070】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する(T21)。チップ1は、レジュームコマンドを受け取ると、プログラム(「Program」)をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T22)。
【0071】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。そして、チップ1は、Aベリファイ(「A Verify」)、Bベリファイ(「B Verify」)、Cベリファイ(「C Verify」)を行う。
【0072】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T23)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T24)。
【0073】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。そして、チップ1は、Bベリファイ、Cベリファイを行う。プログラムベリファイを終了した後、チップ2はサスペンド状態となる。
【0074】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T25)。チップ1は、レジュームコマンドを受け取り、かつCベリファイが終了したとき、次のプログラムをスタートさせる(T26)。そして、チップ1は、高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T27)。
【0075】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。
【0076】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T28)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T29)。
【0077】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。さらに、プログラムを終了した後、プログラムベリファイをスタートさせる。
【0078】
以上のような動作が繰り返される。
【0079】
図8は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における書き込み時のタイミングチャートを示す第3例である。
【0080】
この第3例では、プログラム、プログラムベリファイにおけるAベリファイ、Bベリファイ、Cベリファイの動作をそれぞれ分離し、レジュームコマンドの入力に応答して、プログラム、Aベリファイ、Bベリファイ、Cベリファイの動作をそれぞれスタートさせる。
【0081】
チップ1,2において、プログラムの高電流期間、プログラムベリファイの高電流期間がそれぞれ重ならないようにする。プログラムベリファイは、しきい値電圧のレベルごとにベリファイを行っており、ここでは3つのレベル(A<B<C)のベリファイを行う。なお、チップ1におけるプログラムベリファイの高電流期間は、Aベリファイ、Bベリファイ、Cベリファイにそれぞれ存在するものとする。また、チップ2では、Aベリファイは以前に既にパスしており、チップ2におけるプログラムベリファイの高電流期間は、Bベリファイ、Cベリファイにそれぞれ存在するものとする。
【0082】
以下に、図8に示す書き込み時の動作を詳述する。
【0083】
まず、コントローラ20は、チップ1がレディ状態であるとき、レジュームコマンド(「Resume」)をチップ1に出力する(T31)。チップ1は、レジュームコマンドを受け取ると、プログラム(「Program」)をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T32)。
【0084】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、プログラムを終了する。プログラムを終了した後、チップ1はサスペンド状態となる。
【0085】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T33)。チップ2は、レジュームコマンドを受け取ると、プログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T34)。
【0086】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0087】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T35)。チップ1は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ1は、Aベリファイ(「A Verify」)の高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T36)。
【0088】
チップ1は、高電流期間が終了した後、続いてAベリファイの低電流期間の動作を行い、Aベリファイを終了する。Aベリファイを終了した後、チップ1はサスペンド状態となる。
【0089】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T37)。チップ2は、レジュームコマンドを受け取ると、プログラムベリファイをスタートさせる。そして、チップ2は、Bベリファイ(「B Verify」)の高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T38)。
【0090】
チップ2は、高電流期間が終了した後、続いてBベリファイの低電流期間の動作を行い、Bベリファイを終了する。Bベリファイを終了した後、チップ2はサスペンド状態となる。
【0091】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T39)。チップ1は、レジュームコマンドを受け取ると、Bベリファイをスタートさせる。そして、チップ1は、Bベリファイの高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T40)。
【0092】
チップ1は、高電流期間が終了した後、続いてBベリファイの低電流期間の動作を行い、Bベリファイを終了する。Bベリファイを終了した後、チップ1はサスペンド状態となる。
【0093】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T41)。チップ2は、レジュームコマンドを受け取ると、Cベリファイ(「C Verify」)をスタートさせる。そして、チップ2は、Cベリファイの高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T42)。
【0094】
チップ2は、高電流期間が終了した後、続いてCベリファイの低電流期間の動作を行い、Cベリファイを終了する。Cベリファイを終了した後、チップ2はサスペンド状態となる。
【0095】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンドをチップ1に出力する(T43)。チップ1は、レジュームコマンドを受け取ると、Cベリファイをスタートさせる。そして、チップ1は、Cベリファイの高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T44)。
【0096】
チップ1は、高電流期間が終了した後、続いてCベリファイの低電流期間の動作を行い、Cベリファイを終了する。Cベリファイを終了した後、チップ1はサスペンド状態となる。
【0097】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T45)。チップ2は、レジュームコマンドを受け取ると、次のプログラムをスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T46)。
【0098】
チップ2は、高電流期間が終了した後、続いてプログラムの低電流期間の動作を行い、プログラムを終了する。プログラムを終了した後、チップ2はサスペンド状態となる。
【0099】
以上のような動作が繰り返される。
【0100】
次に、第1実施形態のメモリシステムにおける読み出し時の動作を詳細に説明する。
【0101】
図9は、第1実施形態のNAND型フラッシュメモリチップ10−1,10−2における読み出し時のフローチャートである。図10は、NAND型フラッシュメモリチップ10−1,10−2における読み出し時のタイミングチャートである。
【0102】
隣接するワード線WLnとワード線WLn+1の干渉を補正する読み出しにおいて、ワード線WLn+1における読み出しを行った後にワード線WLnにおける読み出しを行い、ワード線WLn+1の読み出し結果に応じてワード線WLnの読み出しを補正する。なお、nは1以上の自然数を表す。前記読み出しは、しきい値電圧のレベルごとに読み出しを行っており、ここでは3つのレベル(A<B<C)の読み出しを行うものとする。
【0103】
図9に示すように、メモリチップ10−1,10−2内の主制御部12は、読み出し動作をスタートすると(ステップS21)、まず、ワード線WLn+1に接続されたメモリセルに対してしきい値電圧A,B,Cの読み出しを行う(ステップS22)。続いて、主制御部12は、ワード線WLn+1で読み出したページが、下位(Lower)ページか上位(Upper)ページかを判定する(ステップS23)。
【0104】
ワード線WLn+1で読み出したページが上位ページのとき、主制御部12は、ワード線WLnに接続されたメモリセルに対してしきい値電圧A,Cの読み出しを行い(ステップS24)、読み出し動作を終了する(ステップS25)。一方、ワード線WLn+1で読み出したページが下位ページのとき、主制御部12は、ワード線WLnに接続されたメモリセルに対してしきい値電圧Bの読み出しを行う(ステップS26)。その後、読み出し動作を終了する(ステップS25)。
【0105】
次に、図10を用いて読み出し時の動作を述べる。
【0106】
この例は、ワード線WLn+1とワード線WLnにおける読み出し動作を分離し、レジュームコマンドの入力に応答して、ワード線WLn+1とワード線WLnにおける読み出し動作がそれぞれスタートするようにしたものである。なお同様に、ピーク電流が流れる高電流期間を“High Icc”、ピーク電流が流れない低電流期間を“Low Icc”で示している。
【0107】
チップ1,2において、ワード線WLn+1における読み出し時の高電流期間と、ワード線WLnにおける読み出し時の高電流期間がそれぞれ重ならないようにする。なお、チップ1では、ワード線WLn+1で読み出したページが上位ページであり、ワード線WLnにおける読み出し時の高電流期間は、先頭のAの読み出し時の高電流期間のみとする。また、チップ2では、ワード線WLn+1で読み出したページが下位ページであり、ワード線WLnにおける読み出し時の高電流期間は、先頭のBの読み出し時の高電流期間のみとする。
【0108】
まず、コントローラ20は、チップ1がレディ状態であるとき、リードコマンド(「Read Command」)をチップ1に出力する(T51)。チップ1は、リードコマンドを受け取ると、ワード線WLn+1における読み出し動作をスタートさせる。そして、チップ1は、ピーク電流が流れる高電流期間(High Icc)の動作を行う。高電流期間が終了すると、すなわち高い電流を消費する動作が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T52)。
【0109】
チップ1は、高電流期間が終了した後、続いてピーク電流が流れない低電流期間(Low Icc)の動作を行い、ワード線WLn+1における読み出し動作を終了する。読み出し動作を終了した後、チップ1はサスペンド状態となる。
【0110】
コントローラ20は、チップ1がレディ状態であることを認知すると、リードコマンドをチップ2に出力する(T53)。チップ2は、リードコマンドを受け取ると、ワード線WLn+1における読み出し動作をスタートさせる。そして、チップ2は、高電流期間の動作を行う。このとき、チップ2の高電流期間の動作と並行して、チップ1では、前述したように、低電流期間の動作が行われる。チップ2の高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T54)。
【0111】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行い、ワード線WLn+1における読み出し動作を終了する。読み出し動作を終了した後、チップ2はサスペンド状態となる。
【0112】
コントローラ20は、チップ2がレディ状態であることを認知すると、レジュームコマンド(「Resume」)をチップ1に出力する(T55)。チップ1は、レジュームコマンドを受け取ると、ワード線WLnにおけるAの読み出しをスタートさせる。そして、チップ1は、Aの読み出しの高電流期間の動作を行う。高電流期間が終了すると、チップ1はレディ状態であることをコントローラ20に通知する(T56)。
【0113】
チップ1は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちAの読み出しの低電流期間の動作を行い、さらにCの読み出しを行う。そして、ワード線WLnにおける読み出し動作を終了する。読み出し動作を終了した後、チップ1はサスペンド状態となる。
【0114】
コントローラ20は、チップ1がレディ状態であることを認知すると、レジュームコマンドをチップ2に出力する(T57)。チップ2は、レジュームコマンドを受け取ると、ワード線WLnにおけるBの読み出しをスタートさせる。そして、チップ2は、Bの読み出しの高電流期間の動作を行う。このとき、チップ2のこの高電流期間の動作と並行して、チップ1では低電流期間の動作が行われる。高電流期間が終了すると、チップ2はレディ状態であることをコントローラ20に通知する(T58)。
【0115】
チップ2は、高電流期間が終了した後、続いて低電流期間の動作を行う、すなわちBの読み出しの低電流期間の動作を行う。そして、ワード線WLnにおける読み出し動作を終了する。読み出し動作を終了した後、チップ2はサスペンド状態となる。
【0116】
以上のような動作が繰り返される。
【0117】
以上説明したように第1実施形態では、NAND型フラッシュメモリチップの各々は、ピーク電流が発生する動作中はビジー状態となり、ビジーを示す信号をコントローラ20に出力し、ピーク電流が発生しない動作中はレディ状態となり、レディを示す信号をコントローラ20に出力する。すなわち、メモリチップはピーク電流が発生する動作中はビジー状態となり、ビジー状態が終了するとレディ状態に移行し、次のピーク電流が発生する動作の前にサスペンド状態に移行して、レジュームコマンドの入力を待つ。
【0118】
コントローラ20は、メモリチップごとに、ピーク電流が発生しない動作をレディとして、またピーク電流が発生する動作をビジーとして把握し、メモリチップ間でビジーが重ならないように、レジュームコマンドを発行して複数のメモリチップ間でピーク電流が発生する動作の重なりを回避する。すなわち、コントローラ20は、レジュームコマンドの発行タイミングを制御することにより、各々のメモリチップでピーク電流が発生する期間をずらすことができる。これにより、複数のメモリチップを有するメモリシステムにおいて発生する消費電力のピークを低減することが可能である。
【0119】
なお、第1実施形態では、書き込み及び読み出しの動作の一例について説明したが、その他の書き込み及び読み出しや、消去についても同様に適用可能である。また、2個のNAND型フラッシュメモリチップにおける書き込み及び読み出しの動作を述べたが、メモリチップが3個以上の場合も同様の手法で動作させることができる。
【0120】
さらに、例えば、書き込み動作においてメモリチップがレディ状態のときに、別のメモリチップで読み出し動作を実行したり、コントローラ側でピーク電流が発生する動作(例えば、ECCのエラー訂正など)を実行することも可能である。
【0121】
[2] 第2実施形態
次に、第2実施形態のメモリシステムについて説明する。
【0122】
前述した第1実施形態では複数のメモリチップを制御するコントローラを備え、コントローラからレジュームコマンドを各々のメモリチップに出力することにより、各々のメモリチップにおいてピーク電流が発生する動作が重ならないようにした。この第2実施形態では、複数のメモリチップがレディ状態になったときに、複数のメモリチップの各々が異なる待機時間を空けてピーク電流が発生する動作をそれぞれスタートさせる。これにより、複数のメモリチップ間でピーク電流が発生する動作が重ならないようにする。
【0123】
図11は、第2実施形態のメモリシステムの構成を示すブロック図である。
【0124】
図示するように、メモリシステム30は、複数の半導体メモリチップ30−n(nは1以上の自然数)、例えばNAND型フラッシュメモリチップ(メモリチップ)30−1、30−2を備える。
【0125】
メモリチップ30−nは、メモリセルアレイ31、ロウデコーダ32、センスアンプ33、MCMBUSY制御回路34−n、チップアドレスレジスタ35−n、内部電源生成回路36、アドレス/データ制御回路37、制御回路38、及び入出力インターフェース39を備える。
【0126】
複数のメモリチップ30−nのMCMBUSY制御回路34−nには出力パッド(あるいはピン)がそれぞれ設けられ、複数のメモリチップ間で出力ピンが接続されている。そして、複数のメモリチップのMCMBUSY制御回路34−n間において、ビジー信号MCMBUSYが共有されている。
【0127】
また、複数のメモリチップ30−nは、メモリチップ毎にチップアドレスレジスタ35−nを有している。チップアドレスレジスタには、そのメモリチップを識別するためのチップアドレスが記憶されている、すなわちメモリチップ毎にユニークなアドレスが割り付けられている。割り付け手段としては、フラッシュメモリによく用いられるROMヒューズに記憶する方法、あるいはチップアドレスパッドを用意し、そのパッドへのボンディング時にメモリチップ毎に電源電圧Vccもしくは接地電圧Vssへの接続パターンを変えて、ユニークなチップアドレスを定義する方法などがある。
【0128】
制御回路38は、MCMBUSY制御回路34−n、内部電源生成回路36、アドレス/データ制御回路37、入出力インターフェース39の動作を制御する。内部電源生成回路36は、メモリチップ内で用いられる電圧を生成する。アドレス/データ制御回路37は、アドレス及びデータなどの信号を制御回路38、ロウデコーダ32、及びセンスアンプに入出力する。入出力インターフェース39は、外部と制御回路38及びアドレス/データ制御回路37との間のインターフェース処理を行う。
【0129】
ロウデコーダ32は、ロウアドレスに基づいてメモリセルアレイ31内のワード線を選択する。センスアンプ33は、選択されたビット線に接続されたメモリセルからデータを読み出す。
【0130】
メモリセルアレイ31は複数のブロックを備え、ブロックの各々は複数のNAND列を有する。NAND列の各々は直列に接続された複数のメモリセルを有し、メモリセルの各々は、浮遊ゲートと、浮遊ゲート上にゲート間絶縁膜を介して配置された制御ゲートとを持つ不揮発性のメモリセルトランジスタからなる。
【0131】
次に、メモリチップ30−n内のMCMBUSY制御回路34−nについて説明する。
【0132】
図12は、第2実施形態におけるMCMBUSY制御回路の構成を示す回路図である。
【0133】
図示するように、出力パッドTOは、プルアップ抵抗R1及びpチャネルMOSトランジスタTR1を介して電源電圧Vccに接続されている。また、出力パッドTOは、nチャネルMOSトランジスタTR2を介して基準電圧(例えば、接地電圧)Vssに接続されている。さらに、出力パッドTOは入力バッファ、例えばインバータIV1に接続されている。
【0134】
トランジスタTR2のゲートにはインバータIV2が接続され、インバータIV2の入力端子にはチップビジー信号CHIPBUSYnが入力される。トランジスタTR1のゲートには、イネーブル信号ENABLEnが入力される。
【0135】
ビジー信号MCMBUSYは出力パッドTOから出力され、インバータIV1の出力端子から制御信号ALLREADYnが制御回路38に出力される。ビジー信号MCMBUSYは、複数のメモリチップ30−n間で共有されており、メモリチップ30−n内でいずれかのメモリチップがピーク電流を発生する高電流期間にあるとき“L”となり、全メモリチップがピーク電流を発生しない低電流期間のとき、“H”となる。ビジー信号MCMBUSYは、入力バッファを介して制御信号ALLREADYn(レジュームトリガ信号)として、各メモリチップ30−nの制御回路38に入力される。
【0136】
チップビジー信号CHIPBUSYnは、メモリチップ30−nがピーク電流を発生する高電流期間にあるとき“L”となり、ピーク電流を発生しない低電流期間のとき“H”となる。すなわち、チップビジー信号CHIPBUSYnは、メモリチップ30−n間においてずらしたい動作中に“L”となる。
【0137】
次に、第2実施形態のメモリシステムにおける書き込み時の動作を説明する。ここでは、2個のNAND型フラッシュメモリチップ30−1,30−2における書き込み動作を述べるが、メモリチップが3個以上の場合も同様の手法で書き込み動作を行うことができる。
【0138】
図13は、第2実施形態のNAND型フラッシュメモリチップ30−1,30−2における書き込み時のフローチャートである。図14は、第2実施形態における書き込み時のタイミングチャートである。
【0139】
メモリチップ30−1内の制御回路38は、全てのメモリチップ30−1,30−2がピーク電流を発生しない低電流期間(レディ状態)となり、レジュームトリガ信号として制御信号ALLREADYnが入力されるまで待機する((「Wait Resume signal」)ステップS21)。制御回路38は、レジュームトリガ信号を受け取ると、メモリチップ30−1に設定された待機時間が経過するのを待つ((「Wait chip-dependent time」)ステップS22)。そして、待機時間が経過すると、制御回路38はプログラムをスタートさせ((「Program start」)ステップS23)、プログラムを実行する((「program」)ステップS24)。プログラムは、図14に示すように、ビット線のプリチャージ、ワード線のチャージ、プログラムパルスの印加、及びワード線/ビット線電位のディスチャージといった順序で行われる。
【0140】
プログラムが終了すると((「Program end」)ステップS25)、メモリチップ30−1はサスペンド状態になり、レジュームトリガ信号が入力されるまで待機する((「Wait Resume signal」)ステップS26)。制御回路38は、レジュームトリガ信号を受け取ると、メモリチップ30−1に設定された待機時間が経過するのを待つ((「Wait chip-dependent time」)ステップS27)。そして、待機時間が経過すると、制御回路38はプログラムベリファイをスタートさせ((「Verify Start」)ステップS28)、プログラムベリファイを実行する((「Verify」)ステップS29)。
【0141】
プログラムベリファイが終了すると((「Verify end」)ステップS30)、制御回路38はメモリセルに対してベリファイがパスしたか否かを判定する((「Verify Pass」)ステップS31)。ベリファイをパスしているとき、書き込み動作を終了する((「End」)ステップS32)。
【0142】
一方、ベリファイをパスしていないとき、制御回路38はメモリチップ30−1をサスペンド状態とし、再び、レジュームトリガ信号が入力されるまで待機する((「Wait Resume signal」)ステップS33)。制御回路38は、レジュームトリガ信号を受け取ると、メモリチップ30−1に設定された待機時間が経過するのを待つ((「Wait chip-dependent time」)ステップS34)。そして、待機時間が経過すると、制御回路38はステップS23に戻り、ステップS23以降の処理を繰り返す。
【0143】
図14を用いて、書き込み時の動作を説明する。なお、NAND型フラッシュメモリチップ30−1をチップ1とし、NAND型フラッシュメモリチップ30−2をチップ2とする。
【0144】
ビジー信号MCMBUSYは、チップ1,2間で共有されており、チップ1,2のうち少なくともいずれかのチップがピーク電流を発生する高電流期間にあるとき“L”となり、チップ1,2が共にピーク電流を発生しない低電流期間のとき、“H”となる。ビジー信号MCMBUSYは、入力バッファを介して制御信号ALLREADYnとして、チップ1,2の制御回路38に入力される。
【0145】
チップビジー信号CHIPBUSYnは、チップがピーク電流を発生する高電流期間にあるとき“L”となり、ピーク電流を発生しない低電流期間のとき“H”となる。すなわち、チップビジー信号CHIPBUSYnは、チップ1,2間においてずらしたい動作中に“L”となる。
【0146】
まず、チップ1,2がピーク電流を発生しない低電流期間のとき、信号MCMBUSYが“H”となる。チップ1は、信号MCMBUSYが“H”になると、チップ1に設定された待機時間T1だけ待ち、プログラムをスタートする。
【0147】
プログラムでは、ビット線のプリチャージ、ワード線のチャージ、プログラムパルスの印加、及びワード線/ビット線電位のディスチャージといった順序で行われる。ここで、ビット線のプリチャージとワード線のチャージが行われている高電流期間に、チップビジー信号CHIPBUSY1が“L”となり、ワード線のチャージが終了すると、すなわち高電流期間が終了すると、チップ1のチップビジー信号CHIPBUSY1が“H”となる。
【0148】
チップ2は、信号MCMBUSYが“H”になると、チップ2に設定された待機時間T2だけ待ち、プログラムをスタートする。ビット線のプリチャージとワード線のチャージが行われている高電流期間に、チップ2のチップビジー信号CHIPBUSY2が“L”となり、ワード線のチャージが終了すると、すなわち高電流期間が終了すると、チップビジー信号CHIPBUSY2が“H”となる。
【0149】
ここで、待機時間T2は、チップ1においてピーク電流を発生する高電流期間が終了するのに必要な時間に設定されている。このため、チップ2は、待機時間T2が経過した後にプログラムをスタートすることにより、チップ1,2においてピーク電流が発生する期間が重なるのを防止することができる。
【0150】
すなわち、ビジー信号MCMBUSYが“H”になってからプログラムをスタートさせるまでの待ち時間がメモリチップ毎に設定されており、各メモリチップはビジー信号MCMBUSYが“H”になってから、設定された所定の待機時間が経過するのを待ち、待機時間の経過後にそれぞれプログラムをスタートさせる。これにより、ピーク電流が発生する動作が各メモリチップ間で重なるのを回避することができる。
【0151】
第2実施形態では、各メモリチップの制御回路は、第1実施形態と同様に、ピーク電流が発生する動作の直前でサスペンド状態に移行する。そして、全メモリチップがピーク電流を発生しない期間になったとき、つまり信号ALLREADYn(レジュームトリガ信号)が“L”になったとき、これをトリガとして各メモリチップが書き込み動作を再開する。このとき、各メモリチップはチップ毎に設定された待機時間を持っている。この待機時間は、メモリチップ毎に異なるタイマで定義され、チップアドレスごとに異なっている。これにより、各メモリチップに設定された待機時間によって、動作開始時間をずらすことができ、複数のメモリチップ間でピーク電流が発生する期間をずらすことが可能である。
【0152】
以上説明したように実施形態によれば、複数の不揮発性半導体メモリを有するメモリシステムにおいて発生する消費電力のピークを低く抑えることができる。
【0153】
実施形態では、書き込み動作と読み出し動作について、ピーク電流が重ならない制御について説明したが、消去動作についても同様の制御が可能である。また、チップ間で書き込みと書き込み、あるいは読み出しと読み出しの同種動作を行う場合だけでなく、チップ1で書き込み動作、チップ2で読み出し動作のような異種動作を行う場合にもピーク電流をずらすことが可能である。
【0154】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0155】
10…メモリシステム、10−1,10−2,10−3,10−4…NAND型フラッシュメモリチップ(メモリチップ)、11…メモリセルアレイ、12…主制御部、13…ブロック制御回路、14…ロウ制御回路、15…選択回路、16…センスアンプ、17…カラム制御回路、18…データ入出力バッファ、19…入出力制御回路、20…コントローラ、30…メモリシステム、30−1,30−2,30−n…NAND型フラッシュメモリチップ(メモリチップ)、31…メモリセルアレイ、32…ロウデコーダ、33…センスアンプ、34−1,34−2,34−n…MCMBUSY制御回路、35−1,35−2,35−n…チップアドレスレジスタ、36…内部電源生成回路、37…アドレス/データ制御回路、38…制御回路、39…入出力インターフェース。
【特許請求の範囲】
【請求項1】
複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第1動作を行う第1の不揮発性半導体メモリと、
複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第2動作を行う第2の不揮発性半導体メモリと、
前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリの前記第1動作及び前記第2動作を制御するコントローラとを具備し、
前記第1動作は、所定電流以上の電流を消費する第1サブ動作及び第2サブ動作を含み、
前記第2動作は、所定電流以上の電流を消費する第3サブ動作及び第4サブ動作を含み、
前記第1の不揮発性半導体メモリは、前記コントローラから第1制御信号を受け取ると、前記第1動作の前記第1サブ動作を実行した後、前記第1動作を中断し、
前記コントローラは前記第1動作が中断されたことを認知すると、第2制御信号を前記第2の不揮発性半導体メモリに送信し、
前記第2の不揮発性半導体メモリは、前記コントローラから前記第2制御信号を受け取ると、前記第2動作の前記第3サブ動作を実行した後、前記第2動作を中断し、
前記コントローラは前記第2動作が中断されたことを認知すると、第3制御信号を前記第1の不揮発性半導体メモリに送信し、
前記第1の不揮発性半導体メモリは、前記コントローラから前記第3制御信号を受け取ると、前記第1動作を再開して前記第2サブ動作を実行し、
前記コントローラは前記第2サブ動作が実行されたことを認知すると、第4制御信号を前記第2の不揮発性半導体メモリに送信し、
前記第2の不揮発性半導体メモリは、前記コントローラから前記第4制御信号を受け取ると、前記第2動作を再開して前記第4サブ動作を実行することを特徴とするメモリシステム。
【請求項2】
前記第1サブ動作は前記所定電流以上の電流を消費する第1高電流動作と前記第1高電流動作より小さい電流を消費する第1低電流動作とを含み、前記第2サブ動作は前記所定電流以上の電流を消費する第2高電流動作と前記第2高電流動作より小さい電流を消費する第2低電流動作とを含み、
前記第3サブ動作は前記所定電流以上の電流を消費する第3高電流動作と前記第3高電流動作より小さい電流を消費する第3低電流動作とを含み、前記第4サブ動作は前記所定電流以上の電流を消費する第4高電流動作と前記第4高電流動作より小さい電流を消費する第4低電流動作とを含み、
前記第2高電流動作と前記第1低電流動作とが並行して実行され、前記第3高電流動作と前記第2低電流動作とが並行して実行され、前記第4高電流動作と前記第3低電流動作とが並行して実行されることを特徴とする請求項1に記載のメモリシステム。
【請求項3】
前記第1動作及び第2動作は書き込みであり、前記第1サブ動作及び前記第3サブ動作はメモリセルにデータを書き込むプログラムであり、前記第2サブ動作及び前記第4サブ動作は前記プログラムが正常に行われたか否かを検証するプログラムベリファイであることを特徴とする請求項1に記載のメモリシステム。
【請求項4】
前記第1動作及び前記第2動作は読み出しであり、前記第1サブ動作及び前記第3サブ動作は第1ワード線に接続されたメモリセルの読み出しであり、前記第2サブ動作及び前記第4サブ動作は前記第1ワード線に隣接する第2ワード線に接続されたメモリセルの読み出しであることを特徴とする請求項1に記載のメモリシステム。
【請求項5】
複数のメモリセルを有するメモリセルアレイと、
前記メモリセルアレイに対して書き込み、読み出し及び消去の少なくともいずれか1つの第1動作を行う第1制御回路とを備える第1の不揮発性半導体メモリと、
複数のメモリセルを有するメモリセルアレイと、
前記メモリセルアレイに対して書き込み、読み出し及び消去の少なくともいずれか1つの第2動作を行う第2制御回路とを備える第2の不揮発性半導体メモリと、
前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリにそれぞれ設けられ、前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリが共にレディ状態であるか否かを検出する検出回路とを具備し、
前記検出回路が前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリが共にレディ状態であることを検出したとき、
前記第1制御回路は、第1待機時間の経過後に前記第1動作を開始し、
前記第2制御回路は、前記第1待機時間と異なる第2待機時間の経過後に前記第2動作を開始することを特徴とするメモリシステム。
【請求項6】
前記第1動作は所定電流以上の電流を消費する第1高電流動作と前記第1高電流動作より小さい電流を消費する第1低電流動作とを含み、
前記第2動作は所定電流以上の電流を消費する第2高電流動作と前記第2高電流動作より小さい電流を消費する第2低電流動作とを含み、
前記第2待機時間は、前記第1動作が含む前記第1高電流動作が終了する時間に設定され、前記第1低電流動作と前記第2高電流動作とが並行して実行されることを特徴とする請求項5に記載のメモリシステム。
【請求項1】
複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第1動作を行う第1の不揮発性半導体メモリと、
複数のメモリセルを有し、前記複数のメモリセルに対して書き込み、読み出し及び消去の少なくともいずれか1つの第2動作を行う第2の不揮発性半導体メモリと、
前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリの前記第1動作及び前記第2動作を制御するコントローラとを具備し、
前記第1動作は、所定電流以上の電流を消費する第1サブ動作及び第2サブ動作を含み、
前記第2動作は、所定電流以上の電流を消費する第3サブ動作及び第4サブ動作を含み、
前記第1の不揮発性半導体メモリは、前記コントローラから第1制御信号を受け取ると、前記第1動作の前記第1サブ動作を実行した後、前記第1動作を中断し、
前記コントローラは前記第1動作が中断されたことを認知すると、第2制御信号を前記第2の不揮発性半導体メモリに送信し、
前記第2の不揮発性半導体メモリは、前記コントローラから前記第2制御信号を受け取ると、前記第2動作の前記第3サブ動作を実行した後、前記第2動作を中断し、
前記コントローラは前記第2動作が中断されたことを認知すると、第3制御信号を前記第1の不揮発性半導体メモリに送信し、
前記第1の不揮発性半導体メモリは、前記コントローラから前記第3制御信号を受け取ると、前記第1動作を再開して前記第2サブ動作を実行し、
前記コントローラは前記第2サブ動作が実行されたことを認知すると、第4制御信号を前記第2の不揮発性半導体メモリに送信し、
前記第2の不揮発性半導体メモリは、前記コントローラから前記第4制御信号を受け取ると、前記第2動作を再開して前記第4サブ動作を実行することを特徴とするメモリシステム。
【請求項2】
前記第1サブ動作は前記所定電流以上の電流を消費する第1高電流動作と前記第1高電流動作より小さい電流を消費する第1低電流動作とを含み、前記第2サブ動作は前記所定電流以上の電流を消費する第2高電流動作と前記第2高電流動作より小さい電流を消費する第2低電流動作とを含み、
前記第3サブ動作は前記所定電流以上の電流を消費する第3高電流動作と前記第3高電流動作より小さい電流を消費する第3低電流動作とを含み、前記第4サブ動作は前記所定電流以上の電流を消費する第4高電流動作と前記第4高電流動作より小さい電流を消費する第4低電流動作とを含み、
前記第2高電流動作と前記第1低電流動作とが並行して実行され、前記第3高電流動作と前記第2低電流動作とが並行して実行され、前記第4高電流動作と前記第3低電流動作とが並行して実行されることを特徴とする請求項1に記載のメモリシステム。
【請求項3】
前記第1動作及び第2動作は書き込みであり、前記第1サブ動作及び前記第3サブ動作はメモリセルにデータを書き込むプログラムであり、前記第2サブ動作及び前記第4サブ動作は前記プログラムが正常に行われたか否かを検証するプログラムベリファイであることを特徴とする請求項1に記載のメモリシステム。
【請求項4】
前記第1動作及び前記第2動作は読み出しであり、前記第1サブ動作及び前記第3サブ動作は第1ワード線に接続されたメモリセルの読み出しであり、前記第2サブ動作及び前記第4サブ動作は前記第1ワード線に隣接する第2ワード線に接続されたメモリセルの読み出しであることを特徴とする請求項1に記載のメモリシステム。
【請求項5】
複数のメモリセルを有するメモリセルアレイと、
前記メモリセルアレイに対して書き込み、読み出し及び消去の少なくともいずれか1つの第1動作を行う第1制御回路とを備える第1の不揮発性半導体メモリと、
複数のメモリセルを有するメモリセルアレイと、
前記メモリセルアレイに対して書き込み、読み出し及び消去の少なくともいずれか1つの第2動作を行う第2制御回路とを備える第2の不揮発性半導体メモリと、
前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリにそれぞれ設けられ、前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリが共にレディ状態であるか否かを検出する検出回路とを具備し、
前記検出回路が前記第1の不揮発性半導体メモリ及び前記第2の不揮発性半導体メモリが共にレディ状態であることを検出したとき、
前記第1制御回路は、第1待機時間の経過後に前記第1動作を開始し、
前記第2制御回路は、前記第1待機時間と異なる第2待機時間の経過後に前記第2動作を開始することを特徴とするメモリシステム。
【請求項6】
前記第1動作は所定電流以上の電流を消費する第1高電流動作と前記第1高電流動作より小さい電流を消費する第1低電流動作とを含み、
前記第2動作は所定電流以上の電流を消費する第2高電流動作と前記第2高電流動作より小さい電流を消費する第2低電流動作とを含み、
前記第2待機時間は、前記第1動作が含む前記第1高電流動作が終了する時間に設定され、前記第1低電流動作と前記第2高電流動作とが並行して実行されることを特徴とする請求項5に記載のメモリシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−58860(P2012−58860A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−199381(P2010−199381)
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]