(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-14
(45)【発行日】2023-07-25
(54)【発明の名称】半導体記憶装置及びメモリシステム
(51)【国際特許分類】
G11C 16/24 20060101AFI20230718BHJP
G11C 11/56 20060101ALI20230718BHJP
G11C 16/10 20060101ALI20230718BHJP
G11C 16/34 20060101ALI20230718BHJP
【FI】
G11C16/24 130
G11C11/56 210
G11C16/10 160
G11C16/34 140
(21)【出願番号】P 2019083092
(22)【出願日】2019-04-24
【審査請求日】2022-03-15
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】常盤 直哉
【審査官】後藤 彰
(56)【参考文献】
【文献】米国特許出願公開第2015/0039809(US,A1)
【文献】米国特許出願公開第2019/0081069(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/24
G11C 11/56
G11C 16/10
G11C 16/34
(57)【特許請求の範囲】
【請求項1】
2ビット以上のデータを記憶可能であるメモリセルと、
第1及び第2データラッチ回路を含む第1ラッチ群と、第3及び第4データラッチ回路を含む第2ラッチ群とを含む第1回路と、
書き込み動作を制御する制御回路と
を具備し、
前記第1回路は、
センスアンプと、
前記センスアンプに接続された第1データ線と、
第2及び第3データ線と、
前記第1データ線と前記第2データ線との間に接続された第1スイッチ素子と、
前記第1データ線と前記第3データ線との間に接続された第2スイッチ素子とを含み、
前記第1及び第3データラッチ回路は、前記第2データ線を介して並列接続され、
前記第2及び第4データラッチ回路は、前記第3データ線を介して並列接続され、
前記制御回路は、
外部から第1及び第2データを受信した場合に、前記第1及び第2データをそれぞれ前記第1及び第2データラッチ回路に格納し、
前記第1及び第2データをそれぞれ、前記第1及び第2データラッチ回路から前記第3及び第4データラッチ回路にコピーし、
前記第1及び第2データラッチ回路に格納されたデータを用いて、前記書き込み動作を実行する
半導体記憶装置。
【請求項2】
2ビット以上のデータを記憶可能であるメモリセルと、
第1及び第2データラッチ回路を含む第1ラッチ群と、第3及び第4データラッチ回路を含む第2ラッチ群とを含む第1回路と、
書き込み動作を制御する制御回路と
を具備し、
前記第1回路は、センスアンプと、前記センスアンプに接続されたデータ線とを含み、
前記第1及び第2データラッチ回路は、前記データ線を介して並列接続され、
前記第1及び第3データラッチ回路は、前記データ線を介さずに直列接続され、
前記第2及び第4データラッチ回路は、前記データ線を介さずに直列接続され、
前記制御回路は、
外部から第1及び第2データを受信した場合に、前記第1及び第2データをそれぞれ前記第1及び第2データラッチ回路に格納し、
前記第1及び第2データをそれぞれ、前記第1及び第2データラッチ回路から前記第3及び第4データラッチ回路にコピーし、
前記第1及び第2データラッチ回路に格納されたデータを用いて、前記書き込み動作を実行する
半導体記憶装置。
【請求項3】
前記制御回路は、外部から第1コマンドを受信した場合に、前記第1及び第2データをコピーする動作を実行する
請求項1
又は2に記載の半導体記憶装置。
【請求項4】
積層された第1及び第2チップをさらに具備し、
前記メモリセルは、前記第1チップに設けられ、
前記第1回路は、前記第2チップに設けられる
請求項1
又は2に記載の半導体記憶装置。
【請求項5】
3ビット以上のデータを記憶可能であるメモリセルが設けられるセルアレイ領域と、前記セルアレイ領域から配線を引き出すためのフックアップ領域とを含む第1チップと、
第1、第2及び第3データラッチ回路を含む第1ラッチ群と、第4、第5及び第6データラッチ回路を含む第2ラッチ群とを含む第1回路と、書き込み動作を制御する制御回路とを含む第2チップと
を具備し、
前記第1チップと前記第2チップは第1方向に積層され、
前記第1回路は、前記セルアレイ領域に対して前記第1方向に配置され、
前記第1回路は、センスアンプと、前記センスアンプに接続されたデータ線とを含み、
前記第1乃至第6データラッチ回路は、前記データ線を介して並列接続され、
前記制御回路は、
外部から第1、第2及び第3データを受信した場合に、前記第1、第2及び第3データをそれぞれ前記第1、第2及び第3データラッチ回路に格納し、
外部から第1コマンドを受信した場合に、前記第1、第2及び第3データをそれぞれ、前記第1、第2及び第3データラッチ回路から前記第4、第5及び第6データラッチ回路にコピーし、
外部から前記第1コマンドを受信した後、第2コマンドを受信した場合に、前記第1、第2及び第3データラッチ回路に格納された前記第1、第2及び第3データを用いて、前記書き込み動作を実行する
半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体記憶装置及びメモリシステムに関する。
【背景技術】
【0002】
半導体記憶装置の一種として、NAND型フラッシュメモリが知られている。また、3次元に積層された複数のメモリセルを備えたNAND型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態は、性能を向上させることが可能な半導体記憶装置及びメモリシステムを提供する。
【課題を解決するための手段】
【0005】
実施形態に係る半導体記憶装置は、2ビット以上のデータを記憶可能であるメモリセルと、第1及び第2データラッチ回路を含む第1ラッチ群と、第3及び第4データラッチ回路を含む第2ラッチ群とを含む第1回路と、書き込み動作を制御する制御回路とを具備する。前記第1回路は、センスアンプと、前記センスアンプに接続された第1データ線と、第2及び第3データ線と、前記第1データ線と前記第2データ線との間に接続された第1スイッチ素子と、前記第1データ線と前記第3データ線との間に接続された第2スイッチ素子とを含み、前記第1及び第3データラッチ回路は、前記第2データ線を介して並列接続され、前記第2及び第4データラッチ回路は、前記第3データ線を介して並列接続される。前記制御回路は、外部から第1及び第2データを受信した場合に、前記第1及び第2データをそれぞれ前記第1及び第2データラッチ回路に格納し、前記第1及び第2データをそれぞれ、前記第1及び第2データラッチ回路から前記第3及び第4データラッチ回路にコピーし、前記第1及び第2データラッチ回路に格納されたデータを用いて、前記書き込み動作を実行する。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るメモリシステムのブロック図。
【
図4】メモリセルトランジスタの閾値分布の一例を示す模式図。
【
図6】読み出し動作のコマンドシーケンスを説明する図。
【
図7】読み出し動作の他のコマンドシーケンスを説明する図。
【
図8】コマンドの内容とデータラッチ回路との関係を説明する図。
【
図9】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図10】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図11】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図12】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図13】センスユニットの他の構成例を示すブロック図。
【
図14】コマンドの内容とデータラッチ回路との関係を説明する図。
【
図15】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図16】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図17】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図18】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図19】コマンドに応じて使用されるデータラッチ回路を説明する図。
【
図20】センスアンプユニットSAUの一部の回路図。
【
図21】データラッチ回路ADLを指定する動作を説明するタイミング図。
【
図22】データラッチ回路BDLを指定する動作を説明するタイミング図。
【
図23】データラッチ回路CDLを指定する動作を説明するタイミング図。
【
図24】データラッチ回路TDLを指定する動作を説明するタイミング図。
【
図25】データラッチ回路UDLを指定する動作を説明するタイミング図。
【
図26】第2実施形態に係るセンスユニットのブロック図。
【
図27】第1書き込み動作におけるメモリセルトランジスタの閾値分布の一例を示す模式図。
【
図28】第2書き込み動作におけるメモリセルトランジスタの閾値分布の一例を示す模式図。
【
図29】第2実施形態に係る書き込み動作を説明するフローチャート。
【
図30】第2実施形態に係る書き込み動作を説明するタイミング図。
【
図31】
図30に対応するコマンドシーケンスを説明するタイミング図。
【
図32】
図30のステップ(1)におけるデータラッチ回路の状態を説明する図。
【
図33】
図30のステップ(2)におけるデータラッチ回路の状態を説明する図。
【
図34】
図30のステップ(3)におけるデータラッチ回路の動作を説明する図。
【
図35】
図30のステップ(4)におけるデータラッチ回路の状態を説明する図。
【
図36】
図30のステップ(5)におけるデータラッチ回路の動作を説明する図。
【
図37】
図30のステップ(6)におけるデータラッチ回路の状態を説明する図。
【
図38】
図30のステップ(7)におけるデータラッチ回路の状態を説明する図。
【
図39】第3実施形態に係るメモリコントローラの動作を説明するフローチャート。
【
図40】第3実施形態に係る書き込み動作を説明するタイミング図。
【
図41】
図40に対応するコマンドシーケンスを説明するタイミング図。
【
図42】第4実施形態に係る書き込み動作を説明するフローチャート。
【
図43】第4実施形態に係る書き込み動作を説明するタイミング図。
【
図44】ベリファイ動作後のデータラッチ回路の様子を説明する図。
【
図45】第5実施形態に係るセンスユニットのブロック図。
【
図46】第6実施形態に係るNAND型フラッシュメモリのブロック図。
【
図47】第6実施形態に係るセンスアンプユニットSAUの一部の回路図。
【
図48】第6実施形態に係る書き込み動作におけるコマンドシーケンスを説明するタイミング図。
【
図49】第7実施形態に係るセンスユニットのブロック図。
【
図50】
図49に示したデータラッチ回路ADL0、ADL1の回路図。
【
図51】第8実施形態に係るセンスユニットのブロック図。
【
図52】
図51に示したデータラッチ回路ADL0~ADL2の回路図。
【
図53】foggy/fineプログラムの書き込み順序を説明する模式図。
【
図54】第Nプログラムにおけるデータラッチ回路の動作を説明する図。
【
図55】第(N+1)プログラムにおけるデータラッチ回路の動作を説明する図。
【
図56】第(N+2)プログラムにおけるデータラッチ回路の動作を説明する図。
【
図57】第(N+3)プログラムにおけるデータラッチ回路の動作を説明する図。
【
図58】第(N+4)プログラムにおけるデータラッチ回路の動作を説明する図。
【
図59】第Nプログラムにおけるセンスユニットの動作を説明するタイミング図。
【
図60】第(N+1)プログラムにおけるセンスユニットの動作を説明するタイミング図。
【
図61】第9実施形態に係るセンスユニットのブロック図。
【
図62】ハードビットリードのコマンドシーケンスを説明する図。
【
図63】ソフトビットリードのコマンドシーケンスを説明する図。
【
図64】データラッチ回路の動作を説明する模式図。
【
図65】第10実施形態に係るNAND型フラッシュメモリ100の断面構造の一例を示す図。
【発明を実施するための形態】
【0007】
以下、実施形態について図面を参照して説明する。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置等によって、本発明の技術思想が特定されるものではない。各機能ブロックは、ハードウェア及びソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。なお、以下の説明において、同一の機能及び構成を有する要素については同一符号を付し、重複説明は必要な場合にのみ行う。
【0008】
本実施形態に係る半導体記憶装置は、データを電気的に書き換え可能な不揮発性半導体メモリであり、以下の実施形態では、半導体記憶装置としてNAND型フラッシュメモリを例に挙げて説明する。
【0009】
[1] 第1実施形態
[1-1] メモリシステムの構成
図1は、第1実施形態に係るメモリシステム1のブロック図である。メモリシステム1は、1つ又は複数の不揮発性半導体記憶装置(NAND型フラッシュメモリ)100、及びメモリコントローラ200を備える。
図1には、2つのNAND型フラッシュメモリ100-0、100-1を例示している。
【0010】
メモリシステム1は、ホスト装置300が搭載されたマザーボード上にメモリシステム1を構成する複数のチップを実装して構成してもよいし、メモリシステム1を1つのモジュールで実現するシステムLSI(large-scale integrated circuit)、又はSoC(system on chip)として構成してもよい。メモリシステム1の例としては、SDTMカードのようなメモリカード、SSD(solid state drive)、及びeMMC(embedded multimedia card)などが挙げられる。
【0011】
NAND型フラッシュメモリ100は、複数のメモリセルを備え、データを不揮発に記憶する。NAND型フラッシュメモリ100の構成に関する詳細は後述する。
【0012】
メモリコントローラ200は、ホスト装置300からの命令に応答して、NAND型フラッシュメモリ100に対して書き込み(プログラムともいう)、読み出し、及び消去などを命令する。また、メモリコントローラ200は、NAND型フラッシュメモリ100のメモリ空間を管理する。メモリコントローラ200は、ホストインターフェース回路201(
図1に“host I/F”と表記)、CPU(central processing unit)202、RAM(random access memory)203、バッファメモリ204、NANDインターフェース回路205(
図1に“NAND I/F” と表記)、及びECC(error checking and correcting)回路206などを備える。これらのモジュールは、バス207を介して互いに接続される。
【0013】
ホストインターフェース回路201は、バスを介してホスト装置300に接続され、ホスト装置300との間でインターフェース処理を行う。また、ホストインターフェース回路201は、ホスト装置300との間で命令及びデータの送受信を行う。
【0014】
CPU202は、メモリコントローラ200全体の動作を制御する。CPU202は、例えば、ホスト装置300から書き込み命令を受けた場合に、それに応答して、NANDインターフェースに基づく書き込み命令をNAND型フラッシュメモリ100に発行する。読み出し及び消去の場合も同様である。また、CPU202は、ウェアレベリングなど、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。
【0015】
RAM203は、CPU202の作業エリアとして使用され、NAND型フラッシュメモリ100からロードされたファームウェアや、CPU202が作成した各種テーブルを格納する。RAM203は、例えばDRAMから構成される。バッファメモリ204は、ホスト装置300から送られたデータを一時的に格納するとともに、NAND型フラッシュメモリ100から送られたデータを一時的に格納する。
【0016】
ECC回路206は、データの書き込み時には、書き込みデータに対してエラー訂正符号を生成し、このエラー訂正符号を書き込みデータに付加してNANDインターフェース回路205に送る。また、ECC回路206は、データの読み出し時には、読み出しデータに対して、読み出しデータに含まれるエラー訂正符号を用いてエラー検出及びエラー訂正を行う。なお、ECC回路206は、NANDインターフェース回路205内に設けるようにしてもよい。
【0017】
NANDインターフェース回路205は、バスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との間でインターフェース処理を行う。また、NANDインターフェース回路205は、NAND型フラッシュメモリ100との間で命令及びデータの送受信を行う。
【0018】
NAND型フラッシュメモリ100は、制御信号線群及び入出力バス等を介してメモリコントローラ200に接続される。NAND型フラッシュメモリ100は、メモリコントローラ200が発行するコマンド、アドレス、及び書き込みデータを受信し、また、メモリコントローラ200へ読み出しデータを送信するように構成される。
【0019】
メモリコントローラ200とNAND型フラッシュメモリ100との間の信号には、チップイネーブル信号CEn、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号WPn、入出力信号IO<7:0>、及びレディー/ビジー信号RBnが含まれる。信号名に付記された“n”は、アクティブ・ローを示す。ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号WPn、及び入出力信号IO<7:0>は、複数のNAND型フラッシュメモリ100に共通であり、一方、チップイネーブル信号CEn、及びレディー/ビジー信号RBnは、NAND型フラッシュメモリ100に個別に設けられる。この信号形態と接続方法については、必要に応じて適切に変更される。
【0020】
図1の例では、メモリコントローラ200とNAND型フラッシュメモリ100-0とは、チップイネーブル信号CEn0、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号WPn、入出力信号IO<7:0>、及びレディー/ビジー信号RBn0用の信号線で接続される。メモリコントローラ200とNAND型フラッシュメモリ100-1とは、チップイネーブル信号CEn1、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号WPn、入出力信号IO<7:0>、及びレディー/ビジー信号RBn1用の信号線で接続される。
【0021】
[1-1-1] NAND型フラッシュメモリ100の構成
図2は、NAND型フラッシュメモリ100のブロック図である。NAND型フラッシュメモリ100の内部ブロック構造は、大まかにコア部10とそれ以外の周辺回路20とに区分される。
【0022】
コア部10は、複数のメモリセルを有するメモリセルアレイ11、ロウデコーダ12、及びセンスユニット13を備える。
【0023】
ロウデコーダ12は、メモリセルアレイ11をブロック単位で選択するとともに、ワード線に所望の電圧を印加する。すなわち、ロウデコーダ12は、図示せぬ電圧生成回路から動作に応じた種々の電圧を受け、複数のワード線に種々の電圧を印加する。
【0024】
センスユニット13は、データの読み出し時には、メモリセルからビット線に読み出されたデータを検知及び増幅する。また、センスユニット13は、データの書き込み時には、書き込みデータをメモリセルに転送する。メモリセルアレイ11からのデータの読み出し、及びメモリセルアレイ11へのデータの書き込みは、複数ビットのデータの集まりであるページを単位として行われる。センスユニット13の具体的な構成については後述する。
【0025】
周辺回路20は、入力バッファ21、22、出力バッファ23、アドレスバッファ24、コマンドデコーダ25、データバッファ26、選択回路27、ステートマシン(制御回路)28、メモリセル制御レジスタ29、出力バッファ30、レジスタ回路31、及びフェイル数カウント回路32を備える。
【0026】
入力バッファ21は、チップイネーブル信号CEn、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、及びライトプロテクト信号WPnを受ける複数の端子(ピン)に接続される。入力バッファ21は、複数のピンの論理状態に応じて、コマンド入力、アドレス入力、データ入力、書き込み禁止状態、チップ選択/非選択状態を認識するとともに、コマンドデコーダ25、入力バッファ22、及び出力バッファ23などにその状態を通知する。
【0027】
入力バッファ22は、双方向バスIO<7:0>に接続される。入力バッファ22は、入力バッファ21の指示に応じて、メモリコントローラ200から双方向バスIO<7:0>を介して入力されたデータをDINとして出力する。
【0028】
出力バッファ23は、選択回路27の出力を受け、読み出しデータを双方向バスIO<7:0>に所定タイミングで出力する。
【0029】
アドレスバッファ24は、データ信号DINに含まれるアドレスデータを入力バッファ22から受けるとともに、このアドレスデータを一時的に格納する。アドレスデータは、入力順序や入力ビット位置に応じて、ブロックアドレスBLKa、ストリングアドレスSTRa、ワード線アドレスWLa、及びカラムアドレスCOLaに分離される。
【0030】
コマンドデコーダ25は、入力バッファ21の指示に応じて、入力バッファ22からデータ信号DINを受け、データ信号DINに含まれるコマンド信号CMDを出力する。また、コマンドデコーダ25は、センスユニット13を制御するための信号CMD_OP1~CMD_OP4を出力する。信号CMD_OP1~CMD_OP4の詳細については後述する。
【0031】
データバッファ26は、入力バッファ21の指示に応じて、入力バッファ22からデータ信号DINを受け、データ信号DINに含まれる書き込みデータを一時的に格納する。データバッファ26は、選択回路27を経由してセンスユニット13にデータを転送する。
【0032】
選択回路27は、データバッファ26からセンスユニット13へデータを転送するか、センスユニット13から出力バッファ23へデータを転送するかを選択する。
【0033】
ステートマシン28は、NAND型フラッシュメモリ100の読み出し、書き込み、及び消去等の動作を実行する。本実施形態では、ステートマシン28は、コマンドデコーダ25の出力を受け、主にメモリセル制御レジスタ29を制御する。具体的には、ステートマシン28は、メモリセルの適切なアドレス選択を行う、及び所望の電圧を所望のノードに印加する、などの動作を実行する。また、ステートマシン28は、レジスタ回路31の適切なレジスタの選択と、レジスタ回路31からの出力F_NFの計算及び出力とを実行する。
【0034】
メモリセル制御レジスタ29は、アドレスバッファ24からのアドレスBLKa、STRa、WLa、COLaと、ステートマシン28の動作指示信号とにより、メモリセルの書き込み、読み出し、及び消去の詳細動作を制御する信号を出力する。メモリセル制御レジスタ29から出力される信号には、ブロックアドレスBLKADD、ストリングアドレスSTRADD、ワード線アドレスWLADD、及びカラムアドレスCOLADDが含まれる。
【0035】
ブロックアドレスBLKADDは、選択ブロックを指示する。ストリングアドレスSTRADDは、メモリセルのブロックを構成する複数のストリングのうち1つを選択するための選択ゲート信号の電圧を指示する。ワード線アドレスWLADDは、選択ワード線に選択電圧を、非選択ワード線に非選択電圧を印加することを指示する。カラムアドレスCOLADDは、書き込みや読み出し時のキャッシュ位置を指示する。
【0036】
出力バッファ30は、レディー/ビジー信号RBnを出力する出力ピンに接続される。出力バッファ30は、ステートマシン28からレディー/ビジー信号RBを受ける。レディー/ビジー信号RBは、NAND型フラッシュメモリ100がレディー状態又はビジー状態であることを示す。出力バッファ30は、受け取ったレディービジー信号RBをレディービジー信号RBnとして出力ピンから出力する。
【0037】
レジスタ回路31は、ヒューズデータを格納する。ヒューズデータは、NAND型フラッシュメモリ100が電源の供給を受けた場合に、メモリセルアレイ11内のヒューズ領域(図示せず)から読み出される。ヒューズデータは、フェイル数基準値F_NF等を含む。フェイル数基準値F_NFは、書き込み又は消去が完了したか否かの検査の際の基準値である。
【0038】
フェイル数カウント回路32は、センスユニット13に含まれるキャッシュに格納された読み出しデータを監視し、所定タイミングで期待値と一致しないビット数やバイト数を計数する。そして、フェイル数カウント回路32は、上記計数結果とレジスタ回路31の出力するフェイルビット基準値F_NFとを比較する。フェイル数カウント回路32は、比較の結果、基準値以下であれば信号PASSをハイレベルに、基準値を超える場合は信号PASSをローレベルにするなどしてステートマシン28にその情報を通知する。
【0039】
[1-1-2] メモリセルアレイ11の構成
図3は、
図2に示したメモリセルアレイ11の回路図である。メモリセルアレイ11は、複数のブロックBLKを備える。
図3には、メモリセルアレイ11に含まれる1つのブロックBLKを抽出して示している。
【0040】
複数のブロックBLKの各々は、複数のストリングユニットSUを備える。
図3には、4個のストリングユニットSU0~SU3を例示している。1個のブロックBLKに含まれるストリングユニットSUの数は、任意に設定可能である。
【0041】
複数のストリングユニットSUの各々は、複数のNANDストリング(メモリストリング)NSを備える。1個のストリングユニットSUに含まれるNANDストリングNSの数は、任意に設定可能である。
【0042】
複数のNANDストリングNSの各々は、複数のメモリセルトランジスタMT、及び2個の選択トランジスタST1、ST2を備える。複数のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続される。本明細書では、メモリセルトランジスタを、メモリセル又はセルと呼ぶ場合もある。
図3は、簡略化のために、NANDストリングNSが8個のメモリセルトランジスタMT(MT0~MT7)を備える構成例を示しているが、NANDストリングNSが備えるメモリセルトランジスタMTの数は、実際にはこれよりも多く、また、任意に設定可能である。メモリセルトランジスタMTは、制御ゲート電極と電荷蓄積層とを備え、データを不揮発に記憶する。メモリセルトランジスタMTは、1ビットのデータ、又は2ビット以上のデータを記憶することが可能である。
【0043】
ストリングユニットSU0に含まれる複数の選択トランジスタST1のゲートは、選択ゲート線SGD0に共通接続され、同様に、ストリングユニットSU1~SU3にはそれぞれ、選択ゲート線SGD1~SGD3が接続される。ストリングユニットSU0に含まれる複数の選択トランジスタST2のゲートは、選択ゲート線SGS0に共通接続され、同様に、ストリングユニットSU1~SU3にはそれぞれ、選択ゲート線SGS1~SGS3が接続される。なお、各ブロックBLKに含まれるストリングユニットSU0~SU3には、共通の選択ゲート線SGSが接続されていてもよい。各ブロックBLK内にあるメモリセルトランジスタMT0~MT7の制御ゲートはそれぞれ、ワード線WL0~WL7に接続される。
【0044】
各ブロックBLK内でマトリクス状に配置されたNANDストリングNSのうち、同一列にある複数のNANDストリングNSの選択トランジスタST1のドレインは、ビット線BL0~BL(m-1)のいずれかに共通接続される。“m”は1以上の整数である。さらに、各ビット線BLは、複数のブロックBLKに共通接続され、複数のブロックBLKの各々に含まれる各ストリングユニットSU内にある1つのNANDストリングNSに接続される。各ブロックBLKに含まれる複数の選択トランジスタST2のソースは、ソース線SLに共通接続される。ソース線SLは、例えば複数のブロックBLKに共通接続される。
【0045】
各ブロックBLK内にある複数のメモリセルトランジスタMTのデータは、例えば一括して消去される。読み出し及び書き込みは、1つのストリングユニットSUに配設された1本のワード線WLに共通接続された複数のメモリセルトランジスタMTに対して、一括して行われる。1つのストリングユニットSU内でワード線WLを共有するメモリセルトランジスタMTの組を、セルユニットCUと呼ぶ。セルユニットCUに含まれる複数のメモリセルトランジスタMTがそれぞれ記憶する1ビットのデータの集まりをページと呼ぶ。すなわち、セルユニットCUに対する書き込み動作及び読み出し動作は、ページを単位として行われる。
【0046】
なお、メモリセルアレイ11は、例えば、3次元の積層構造を有する。すなわち、メモリセルアレイ11は、3次元に積層された複数のメモリセルトランジスタMTを備える。また、各ブロックBLKに含まれるNANDストリングNSは、選択トランジスタST2、複数のメモリセルトランジスタMT、選択トランジスタST1の順に積層方向に積層されて直列接続される。
【0047】
[1-1-3] メモリセルトランジスタの閾値分布
次に、メモリセルトランジスタMTの取り得る閾値電圧Vthの分布について説明する。
図4は、メモリセルトランジスタMTの閾値分布の一例を示す模式図である。メモリセルトランジスタMTは、2ビット以上のデータを記憶することが可能である。本実施形態では、メモリセルトランジスタMTが3ビットのデータを記憶する場合、いわゆるTLC(triple level cell)方式を例に説明する。
【0048】
3ビットのデータは、下位(lower)ビット、中位(middle)ビット、及び上位(upper)ビットにより規定される。メモリセルトランジスタMTが3ビットを記憶する場合、メモリセルトランジスタMTは、複数の閾値電圧に応じた8つの状態(ステート)のうちのいずれかを取り得る。8つのステートを、低い方から順に、ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”と呼ぶ。ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”の各々に属する複数のメモリセルトランジスタMTは、分布を形成する。
【0049】
ステート“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”にはそれぞれ、例えば、データ“111”、“110”、“100”、“000”、“010”、“011”、“001”、“101”が割り当てられる。ビットの並びは、下位ビット“L”、中位ビット“M”、上位ビット“U”とすると、“L、M、U”である。閾値分布とデータとの割り当ては、任意に設定可能である。
【0050】
読み出し対象のメモリセルトランジスタMTに記憶されたデータを読み出すために、当該メモリセルトランジスタMTの閾値電圧が属するステートが判定される。ステートの判定のために、読み出し電圧AR、BR、CR、DR、ER、FR、GRが用いられ、読み出し電圧AR、BR、CR、DR、ER、FR、GRは、この順に高くなる。
【0051】
ステート“Er”は、例えば、データが消去された状態(消去状態)に相当する。ステート“Er”に属するメモリセルトランジスタMTの閾値電圧は、電圧ARより低く、例えば負の値を有する。
【0052】
ステート“A”~“G”は、電荷蓄積層に電荷が注入されてメモリセルトランジスタMTにデータが書き込まれた状態に相当し、ステート“A”~“G”に属するメモリセルトランジスタMTの閾値電圧は、例えば正の値を有する。ステート“A”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧ARより高く、かつ読み出し電圧BR以下である。ステート“B”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧BRより高く、かつ読み出し電圧CR以下である。ステート“C”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧CRより高く、かつ読み出し電圧DR以下である。ステート“D”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧DRより高く、かつ読み出し電圧ER以下である。ステート“E”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧ERより高く、かつ読み出し電圧FR以下である。ステート“F”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧FRより高く、かつ読み出し電圧GR以下である。ステート“G”に属するメモリセルトランジスタMTの閾値電圧は、読み出し電圧GRより高く、電圧VREADより低い。
【0053】
電圧VREADは、非読み出し対象のセルユニットCUのメモリセルトランジスタMTに接続されたワード線WLに印加される電圧であり、いずれのステートにあるメモリセルトランジスタMTの閾値電圧よりも高い。つまり、制御ゲートに電圧VREADが印加されたメモリセルトランジスタMTは、保持するデータに関わらずオン状態になる。
【0054】
以上のように、各メモリセルトランジスタMTは、8個のステートのいずれかに設定され、3ビットデータを記憶することが可能である。また、書き込み及び読み出しは、1つのセルユニットCU内のページ単位で行われる。メモリセルトランジスタMTが3ビットデータを記憶している場合、1つのセルユニットCU内の3個のページにそれぞれ、下位ビット、中位ビット、及び上位ビットが割当てられる。下位ビット、中位ビット、及び上位ビットについて一括して書き込み又は読み出されるページはそれぞれ、下位(lower)ページ、中位(middle)ページ、及び上位(upper)ページと呼ばれる。
【0055】
[1-1-4] センスユニット13の構成
図5は、
図2に示したセンスユニット13のブロック図である。センスユニット13は、ビット線BL0~BL(m-1)に対応したセンスアンプユニットSAU0~SAU(m-1)を備える。
【0056】
各センスアンプユニットSAUは、センスアンプSA、及び例えば6個のデータラッチ回路ADL、BDL、CDL、SDL、TDL、XDLを備える。センスアンプSA、及びデータラッチ回路ADL、BDL、CDL、SDL、TDL、XDLは、互いにデータが転送可能なように、バスLBUSを介して接続される。なお、
図5の1個のセンスアンプユニットSAU内に記載されたバスLBUSは、バスLBUSに含まれる1本のデータ線を意味している。例えば、センスユニット13は、16kB(バイト)分のデータラッチ回路ADLを備えているとすると、バスLBUSは、16kB分のデータ線で構成される。
【0057】
センスアンプSAは、読み出し動作時には、対応するビット線BLに読み出されたデータを検知し、データ“0”及びデータ“1”のいずれであるかを判定する。また、センスアンプSAは、書き込み動作時には、書き込みデータに基づいてビット線BLに電圧を印加する。
【0058】
データラッチ回路ADL、BDL、CDL、SDL、TDL、XDLは、データを一時的に格納する。データラッチ回路SDLは、例えば、読み出し動作におけるセンス結果を格納し、また、ベリファイ動作におけるセンス結果を格納する。データラッチ回路ADLは、下位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路BDLは、中位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路CDLは、上位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路TDLは、センスアンプユニットSAU内で演算を行うためのデータ(内部用途データ)を格納し、また、ベリファイ結果を格納する。
【0059】
データラッチ回路XDLは、双方向バスYIOに接続される。データラッチ回路XDLは、双方向バスYIOから送られた書き込みデータを一時的に格納し、また、バスLBUSから送られた読み出しデータを一時的に格納する。
【0060】
[1-2] メモリシステム1の動作
次に、メモリシステム1の動作について説明する。本実施形態では、センスアンプユニットSAUに含まれる複数のデータラッチ回路のうち読み出し動作において使用されるデータラッチ回路を任意に変更可能としている。
【0061】
図6は、読み出し動作のコマンドシーケンスを説明する図である。読み出し動作において、メモリコントローラ200は、prefixコマンド“X”、プリセットコマンド“PSC”、読み出しコマンド“00h”、アドレスセット、及び実行コマンド“30h”を、NAND型フラッシュメモリ100に発行する。
【0062】
prefixコマンド“X”は、センスユニット13に含まれる複数のデータラッチ回路のうち、使用するデータラッチ回路を指定するコマンドである。プリセットコマンド“PSC”は、下位ページ、中位ページ、上位ページのいずれかを指定するコマンドである。プリセットコマンド“PSC”によって、今回の読み出し動作における読み出しページが指定される。アドレスセットは、例えば、カラムアドレスC1、C2、及びロウアドレスR1~R3からなる。
【0063】
ステートマシン28は、実行コマンド“30h”を受けた後、レディー/ビジー信号RBnをローレベル(ビジー状態を表す)にする。そして、ステートマシン28は、読み出し動作を実行する。
図6の“tR”は、読み出し動作を意味する。
【0064】
図7は、読み出し動作の他のコマンドシーケンスを説明する図である。
図7は、アドレスセットで読み出しページを指定する例である。
【0065】
読み出し動作において、メモリコントローラ200は、prefixコマンド“X”、読み出しコマンド“00h”、アドレスセット“C1、C2、R1~R3”、及び実行コマンド“30h”を、NAND型フラッシュメモリ100に発行する。
図7では、プリセットコマンド“PSC”が省略される。読み出しページは、アドレスセット“C1、C2、R1~R3”によって指定される。
【0066】
図8は、prefixコマンド“X”の内容とデータラッチ回路との関係を説明する図である。
図8には、読み出し動作の形態として、ノーマルリード、DLA(Direct Look Ahead)リード、及びエラー訂正の一手段として軟判定復号を行う場合のハードビットリードとソフトビットリードとの組み合わせ(HBリード・SBリードとも表記する)を例示している。ノーマルリードは、通常の読み出し動作である。
【0067】
DLAリードは、選択ワード線WLnに接続された選択メモリセルのデータを読み出す前に、選択ワード線WLnに隣接するワード線WLn+1に接続されたメモリセルからデータを読み出す動作である。その後、DLAリードの結果に応じて、選択ワード線WLnの読み出し動作が行われる。具体的には、選択ワード線WLnの読み出し動作において、DLAリードの結果に応じて、読み出し電圧のレベルを補正し、この補正された読み出し電圧を用いて、選択ワード線WLnに接続された選択メモリセルのデータが読み出される。
【0068】
DLAリードに関しては、例えば“MEMORY DEVICE”という2019年3月13日に出願された米国特許出願16/352,094号に記載されている。この特許出願は、その全体が本願明細書において参照により援用される。
【0069】
読み出し動作において、誤り訂正の精度を向上させるために、ハードビットリード及びソフトビットリードが行われる。ハードビットリードの結果は、硬判定復号に用いられる。ソフトビットリードの結果は、軟判定復号に用いられる。硬判定(HD:hard decision)は、“0”及び“1”の2値の情報を用いて、データを判定する。軟判定(SD:soft decision)は、データの確からしさを示す確率、尤度、あるいは対数尤度比(LLR:log likelihood ratio)を用いて、データを判定する。軟判定復号は、硬判定復号より誤り訂正能力が高い。
【0070】
ハードビットリードでは、閾値分布を分ける境界に対応する1種類の読み出し電圧を用いて読み出し動作が行われ、当該境界よりメモリセルの閾値電圧が高いか否かを判定する。すなわち、ハードビットリードは、通常の読み出し動作(ノーマルリード)と同じである。ソフトビットリードでは、閾値分布を分ける境界に対して複数の読み出し電圧を用いて読み出し動作が行われる。そして、複数の読み出し電圧に対応する複数の読み出し結果を用いて、データが判定される。例えば、ハードビットリードで読み出しエラーとなった場合に、ソフトビットリードが行われる。そして、ハードビットリード及びソフトビットリードの結果に基づいて、誤り訂正の必要可能性のあるビットを抽出するとともに、誤り訂正が行われる。
【0071】
ソフトビットリードに関しては、例えば“NONVOLATILE MEMORY AND WRITING METHOD”という2015年2月13日に出願された米国特許出願14/621,894号に記載されている。この特許出願は、その全体が本願明細書において参照により援用される。
【0072】
図8に示すように、prefixコマンド“X”は、5個の状態を指定することが可能である。ノーマルリードでは、以下のデータラッチ回路が指定される。すなわち、prefixコマンド“X”なしの場合、データラッチ回路ADL、XDLが指定される。prefixコマンド“X=0x01”である場合、データラッチ回路BDL、XDLが指定される。“0x”は、16進数を意味する。prefixコマンド“X=0x02”である場合、データラッチ回路CDL、XDLが指定される。prefixコマンド“X=0x04”である場合、データラッチ回路TDL、XDLが指定される。prefixコマンド“X=0x08”は、N/A(not applicable)である。
【0073】
なお、読み出し動作のうち、ノーマルリードは原理的に1個のデータラッチ回路があれば動作可能である。しかしセンスアンプユニット内の物理配置構成上、センスアンプSAから最も遠い位置にあるデータラッチ回路XDLを使用して読み出し動作を行うと、読み出し動作にかかる時間が増大することが懸念される。ここでは、センスアンプSAからの物理距離が遠いデータラッチ回路XDLを使わず、データラッチ回路ADL等を主に使用する構成で説明をするが、実施の形態はこれに限定されるものではない。
【0074】
DLAリードでは、以下のデータラッチ回路が指定される。すなわち、prefixコマンド“X”なしの場合、データラッチ回路ADL、BDL、XDLが指定される。prefixコマンド“X=0x01”である場合、データラッチ回路BDL、CDL、XDLが指定される。prefixコマンド“X=0x02”である場合、データラッチ回路CDL、TDL、XDLが指定される。prefixコマンド“X=0x04”である場合、データラッチ回路TDL、XDLが指定される。DLAリードでは、読み出し方法によっては2個のデータラッチ回路で読み出しを行えるケースもある。
【0075】
ソフトビットリードにおけるデータラッチ回路の指定動作は、DLAリードにおけるデータラッチ回路の指定動作と同じである。
【0076】
図9は、DLAリードかつprefixコマンド“X”なしの場合に使用されるデータラッチ回路を説明する図である。
図10は、DLAリードかつprefixコマンド“X=0x01”の場合に使用されるデータラッチ回路を説明する図である。
図11は、DLAリードかつprefixコマンド“X=0x02”の場合に使用されるデータラッチ回路を説明する図である。
図12は、DLAリードかつprefixコマンド“X=0x04”の場合に使用されるデータラッチ回路を説明する図である。
図9乃至
図12において、使用されるデータラッチ回路にハッチングを付している。
図9乃至
図12は、
図8の説明に対応している。この例は一例であり、どのデータラッチ回路を使用するかは任意に構成することができる。またこれに応じたprefixコマンドも同様に準備することができる。
【0077】
[1-3] センスユニット13の他の構成例
図13は、センスユニット13の他の構成例を示すブロック図である。なお、
図13には、任意のビット線BLに接続される1個のセンスアンプユニットSAUを抽出して示している。センスユニット13に含まれる全てのセンスアンプユニットSAUは、
図13の構成を有する。
【0078】
センスアンプユニットSAUは、センスアンプSA、及び8個のデータラッチ回路ADL、BDL、CDL、SDL、TDL、NDL、UDL、XDLを備える。センスアンプSA、及びデータラッチ回路ADL、BDL、CDL、SDL、TDL、NDL、UDL、XDLは、互いにデータが転送可能なように、バスLBUSを介して接続される。
【0079】
図14は、他の構成例に係るprefixコマンド“X”の内容とデータラッチ回路との関係を説明する図である。
図14には、読み出し動作の形態として、ノーマルリード、DLAリード、及びHBリード・SBリードを例示している。
【0080】
ノーマルリードでは、以下のデータラッチ回路が指定される。すなわち、prefixコマンド“X”なしの場合、データラッチ回路ADL、XDLが指定される。prefixコマンド“X=0x01”である場合、データラッチ回路BDL、XDLが指定される。prefixコマンド“X=0x02”である場合、データラッチ回路CDL、XDLが指定される。prefixコマンド“X=0x04”である場合、データラッチ回路TDL、XDLが指定される。prefixコマンド“X=0x08”である場合、データラッチ回路NDL、XDLが指定される。
【0081】
DLAリードでは、以下のデータラッチ回路が指定される。すなわち、prefixコマンド“X”なしの場合、データラッチ回路ADL、BDL、XDLが指定される。prefixコマンド“X=0x01”である場合、データラッチ回路BDL、CDL、XDLが指定される。prefixコマンド“X=0x02”である場合、データラッチ回路CDL、TDL、XDLが指定される。prefixコマンド“X=0x04”である場合、データラッチ回路TDL、NDL、XDLが指定される。prefixコマンド“X=0x08”である場合、データラッチ回路NDL、UDL、XDLが指定される。
【0082】
ソフトビットリードにおけるデータラッチ回路の指定動作は、DLAリードにおけるデータラッチ回路の指定動作と同じである。
【0083】
図15は、DLAリードかつprefixコマンド“X”なしの場合に使用されるデータラッチ回路を説明する図である。
図16は、DLAリードかつprefixコマンド“X=0x01”の場合に使用されるデータラッチ回路を説明する図である。
図17は、DLAリードかつprefixコマンド“X=0x02”の場合に使用されるデータラッチ回路を説明する図である。
図18は、DLAリードかつprefixコマンド“X=0x04”の場合に使用されるデータラッチ回路を説明する図である。
図19は、DLAリードかつprefixコマンド“X=0x08”の場合に使用されるデータラッチ回路を説明する図である。
図15乃至
図19において、使用されるデータラッチ回路にハッチングを付している。
図15乃至
図19は、
図14の説明に対応している。
【0084】
図19の形態を適用した場合は、書き込み動作にて占有するデータラッチ回路ADL、BDL、CDLを阻害することなく、DLAリード、及びソフトビットリードを実現することができる。
【0085】
[1-4] センスアンプユニットSAUの具体例
次に、センスアンプユニットSAUの具体例について説明する。
図20は、センスアンプユニットSAUの一部の回路図である。
図20には、センスアンプユニットSAUに含まれるデータラッチ回路を主に示している。
【0086】
センスアンプユニットSAUは、データラッチ回路ADL、BDL、CDL、TDL、NDL、UDL、XDL、トランスファーゲート44、48、及びインバータ回路45、49を備える。センスユニット13は、ロジック回路50、及び端子T1~T6を備える。
図20では、データラッチ回路SDLの図示を省略している。
【0087】
データラッチ回路ADLは、クロックドインバータ回路40A、インバータ回路41A、42A、及びトランスファーゲート43Aを備える。クロックドインバータ回路40Aの入力端子は、インバータ回路41Aの出力端子に接続され、クロックドインバータ回路40Aの出力端子は、インバータ回路41Aの入力端子に接続され、クロックドインバータ回路40Aのクロック端子には、ロジック回路50から信号ALATが入力される。クロックドインバータ回路40Aは、信号ALATがハイレベルの場合に活性化される。
【0088】
トランスファーゲート43Aの第1端子は、バスLBUSに接続され、トランスファーゲート43Aの第2端子は、クロックドインバータ回路40Aの出力端子に接続される。トランスファーゲート43Aの第1ゲート端子と、インバータ回路42Aの入力端子とには、ロジック回路50から信号ADLonが入力される。インバータ回路42Aの出力端子は、トランスファーゲート43Aの第2ゲート端子に接続される。トランスファーゲート43Aは、信号ADLonがハイレベルの場合にオンする。
【0089】
データラッチ回路BDLは、クロックドインバータ回路40B、インバータ回路41B、42B、及びトランスファーゲート43Bを備える。データラッチ回路BDLには、ロジック回路50から、信号BLAT、BDLonが入力される。
【0090】
データラッチ回路CDLは、クロックドインバータ回路40C、インバータ回路41C、42C、及びトランスファーゲート43Cを備える。データラッチ回路CDLには、ロジック回路50から、信号CLAT、CDLonが入力される。
【0091】
データラッチ回路TDLは、クロックドインバータ回路40T、インバータ回路41T、42T、及びトランスファーゲート43Tを備える。データラッチ回路TDLには、ロジック回路50から、信号TLAT、TDLonが入力される。
【0092】
データラッチ回路UDLは、クロックドインバータ回路40U、インバータ回路41U、42U、及びトランスファーゲート43Uを備える。データラッチ回路UDLには、ロジック回路50から、信号ULAT、UDLonが入力される。
【0093】
データラッチ回路NDLは、クロックドインバータ回路40N、インバータ回路41N、42N、及びトランスファーゲート43Nを備える。データラッチ回路NDLには、ロジック回路50から、信号NLAT、NDLonが入力される。
【0094】
データラッチ回路BDL、CDL、TDL、NDL、UDLの各々を構成する素子の接続関係は、前述したデータラッチ回路ADLのそれと同じである。
【0095】
トランスファーゲート44の第1端子は、バスLBUSに接続され、トランスファーゲート44の第2端子は、データラッチ回路XDLに接続される。トランスファーゲート44の第1ゲート端子と、インバータ回路45の入力端子とには、ロジック回路50から信号X2INT、INT2Xが入力される。インバータ回路45の出力端子は、トランスファーゲート44の第2ゲート端子に接続される。トランスファーゲート44は、信号X2INT、又は信号INT2Xがハイレベルの場合にオンする。
【0096】
データラッチ回路XDLは、2個のインバータ回路46、47を備える。インバータ回路46の入力端子は、インバータ回路47の出力端子に接続され、インバータ回路46の出力端子は、インバータ回路47の入力端子に接続される。
【0097】
トランスファーゲート48の第1端子は、データラッチ回路XDLに接続され、トランスファーゲート48の第2端子は、端子T5を介して、バスYIOに接続される。トランスファーゲート48の第1ゲート端子と、インバータ回路49の入力端子とには、端子T6を介して、メモリセル制御レジスタ29からカラムアドレスCOLADDが入力される。インバータ回路49の出力端子は、トランスファーゲート48の第2ゲート端子に接続される。トランスファーゲート48は、カラムアドレスCOLADDがハイレベルの場合にオンする。
【0098】
ロジック回路50は、端子T1~T4に接続される。端子T1~T4にはそれぞれ、コマンドデコーダ25から、信号CMD_OP1~CMD_OP4が入力される。ロジック回路50は、信号CMD_OP1~CMD_OP4を用いて、前述した制御信号を生成する。
【0099】
(動作)
次に、読み出し動作において、データラッチ回路を指定する動作について説明する。
【0100】
図21は、データラッチ回路ADLを指定する動作を説明するタイミング図である。なお、
図20から理解できるように、データラッチ回路XDLは、常時使用可能である。
図21において、信号がハイレベル固定である場合を“H fix”と表記し、信号がローレベル固定である場合を“L fix”と表記している。
【0101】
データラッチ回路ADLを指定する場合、コマンドデコーダ25は、信号CMD_OP1=0、CMD_OP2=0、CMD_OP3=0、CMD_OP4=0に設定する。時刻t1において、ロジック回路50は、信号ADLonをハイレベルにする。これにより、トランスファーゲート43Aがオンする。時刻t2において、ロジック回路50は、信号INT2Xをハイレベルにする。これにより、データラッチ回路XDLは、バスLBUSのデータを受け取ることができる。
【0102】
時刻t3において、ロジック回路50は、信号ADLonをローレベルにし、信号INT2Xをローレベルにすることにより、データラッチ回路のデータをラッチ(確定)させる。
【0103】
図22は、データラッチ回路BDLを指定する動作を説明するタイミング図である。データラッチ回路BDLを指定する場合、コマンドデコーダ25は、信号CMD_OP1=1、CMD_OP2=0、CMD_OP3=0、CMD_OP4=0に設定する。時刻t1において、ロジック回路50は、信号BDLonをハイレベルにする。これにより、トランスファーゲート43Bがオンする。時刻t2において、ロジック回路50は、信号INT2Xをハイレベルにする。これにより、データラッチ回路BDLは、バスLBUSのデータを受け取ることができる。
【0104】
時刻t3において、ロジック回路50は、信号BDLonをローレベルにし、信号INT2Xをローレベルにすることにより、データラッチ回路のデータをラッチ(確定)させる。
【0105】
図23は、データラッチ回路CDLを指定する動作を説明するタイミング図である。データラッチ回路CDLを指定する場合、コマンドデコーダ25は、信号CMD_OP1=0、CMD_OP2=1、CMD_OP3=0、CMD_OP4=0に設定する。時刻t1において、ロジック回路50は、信号CDLonをハイレベルにする。これにより、トランスファーゲート43Cがオンする。時刻t2において、ロジック回路50は、信号INT2Xをハイレベルにする。これにより、データラッチ回路CDLは、バスLBUSのデータを受け取ることができる。
【0106】
時刻t3において、ロジック回路50は、信号CDLonをローレベルにし、信号INT2Xをローレベルにすることにより、データラッチ回路のデータをラッチ(確定)させる。
【0107】
図24は、データラッチ回路TDLを指定する動作を説明するタイミング図である。データラッチ回路TDLを指定する場合、コマンドデコーダ25は、信号CMD_OP1=0、CMD_OP2=0、CMD_OP3=1、CMD_OP4=0に設定する。時刻t1において、ロジック回路50は、信号TDLonをハイレベルにする。これにより、トランスファーゲート43Tがオンする。時刻t2において、ロジック回路50は、信号INT2Xをハイレベルにする。これにより、データラッチ回路TDLは、バスLBUSのデータを受け取ることができる。
【0108】
時刻t3において、ロジック回路50は、信号TDLonをローレベルにし、信号INT2Xをローレベルにすることにより、データラッチ回路のデータをラッチ(確定)させる。
【0109】
図25は、データラッチ回路UDLを指定する動作を説明するタイミング図である。データラッチ回路UDLを指定する場合、コマンドデコーダ25は、信号CMD_OP1=0、CMD_OP2=0、CMD_OP3=0、CMD_OP4=1に設定する。時刻t1において、ロジック回路50は、信号UDLonをハイレベルにする。これにより、トランスファーゲート43Uがオンする。時刻t2において、ロジック回路50は、信号INT2Xをハイレベルにする。これにより、データラッチ回路UDLは、バスLBUSのデータを受け取ることができる。
【0110】
時刻t3において、ロジック回路50は、信号UDLonをローレベルにし、信号INT2Xをローレベルにすることにより、データラッチ回路のデータをラッチ(確定)させる。
【0111】
[1-5] 第1実施形態の効果
書き込み動作では、書き込みデータを格納するデータラッチ回路が固定されており、例えば、データラッチ回路ADLに下位ページが格納され、データラッチ回路BDLに中位ページが格納され、データラッチ回路CDLに上位ページが格納される。読み出し動作では、例えばデータラッチ回路ADLに読み出しデータが格納される。
【0112】
書き込み動作の途中に読み出し動作を挿入するサスペンドリードがある。サスペンドリードを行う場合、データラッチ回路ADLが書き込みデータで占有されているため、データ転送に時間のかかるデータラッチ回路XDLを使用するか、データラッチ回路ADLのデータを一旦どこかに退避したり、データを入れ替えたりする必要がある。データの退避等にかかる時間だけリードレイテンシ(リード待ち時間)が長くなってしまう。また、データの退避、又は追加のデータ転送にかかる電流が増えるため、平均動作電流を増大させ、バッテリ機器の電池消費に悪影響を与える。
【0113】
DLAリードやソフトビットリードでは、そもそもデータラッチ回路が不足しているので、サスペンドリードが実施できない。よって、DLAリードやソフトビットリードを実行する場合は、書き込み動作が完了するまで待った後に、これらリードを行う必要がある。このときのレスポンス低下は、QoS(Quality of service)の大幅低下につながる。
【0114】
一般的には、どの動作にどのデータラッチ回路を使用するかが回路的に決められているので、仮にデータラッチ回路が空いている場合であっても、データの退避やデータの入れ替えを必要とし、リードレイテンシの劣化につながる。
【0115】
そこで、第1実施形態では、読み出し動作において、メモリコントローラ200は、使用するデータラッチ回路を指定するためのprefixコマンド“X”をNAND型フラッシュメモリ100に発行する。そして、NAND型フラッシュメモリ100は、prefixコマンド“X”により指定されたデータラッチ回路を用いて、読み出し動作を実行するようにしている。
【0116】
これにより、書き込み動作を中断したサスペンドリードにおいて、書き込みデータを退避や移動せずにデータラッチ回路に格納したまま、読み出しデータもデータラッチ回路に格納することができる。そして、中断後に書き込み動作を再開する場合、例えばデータラッチ回路ADL、BDL、CDLに格納された書き込みデータを用いて、書き込み動作を再開、実行することができる。
【0117】
また、サスペンドリードの高速化、及び書き込み動作の高速化が可能である。また、消費電力を低減することが可能である。これにより、NAND型フラッシュメモリ100及びメモリシステム1の性能を向上させることができる。
【0118】
また、データラッチ回路ADL、BDL、CDLが書き込みデータを格納している状態で、データラッチ回路NDL、UDLを用いて読み出し動作(DLAリード、及びソフトビットリードを含む)を行うことができる。
【0119】
[2] 第2実施形態
第2実施形態は、書き込みデータを格納する第1ラッチ群と、第1ラッチ群のバックアップデータを格納する第2ラッチ群とを備える。そして、同じ書き込みデータを用いて2種類の書き込み動作を行う場合に、NAND型フラッシュメモリ100に再度書き込みデータを入力することなく、これら2種類の書き込み動作を実現するようにしている。
【0120】
[2-1] センスユニット13の構成
第2実施形態に係るセンスユニット13の構成について説明する。
図26は、第2実施形態に係るセンスユニット13のブロック図である。センスユニット13は、ビット線BL0~BL(m-1)に対応したセンスアンプユニットSAU0~SAU(m-1)を備える。
【0121】
各センスアンプユニットSAUは、センスアンプSA、及び例えば8個のデータラッチ回路ADL0、BDL0、CDL0、ADL1、BDL1、CDL1、SDL、XDLを備える。センスアンプSA、及びデータラッチ回路ADL0、BDL0、CDL0、ADL1、BDL1、CDL1、SDL、XDLは、互いにデータが転送可能なように、バスLBUSを介して接続される。
【0122】
データラッチ回路ADL0、BDL0、CDL0、ADL1、BDL1、CDL1、SDL、XDLは、データを一時的に格納する。データラッチ回路SDLは、例えば、読み出し動作時にメモリセルから読み出されたデータを格納し、また、ベリファイ結果を格納する。データラッチ回路ADL0は、下位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路BDL0は、中位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路CDL0は、上位ページを格納し、また、ベリファイ結果を格納する。
【0123】
データラッチ回路ADL1、BDL1、CDL1は、例えばデータバックアップ用として用いられる。データラッチ回路ADL1は、データラッチ回路ADL0のデータバックアップ用として用いられ、下位ページを格納する。データラッチ回路BDL1は、データラッチ回路BDL0のデータバックアップ用として用いられ、中位ページを格納する。データラッチ回路CDL1は、データラッチ回路CDL0のデータバックアップ用として用いられ、上位ページを格納する。
【0124】
[2-2] 書き込み方式
最初に、書き込み動作の全体の流れについて説明する。書き込み動作(書き込みシーケンスとも呼ぶ)は、順に繰り返される複数のプログラムループからなる。複数のプログラムループの各々は、プログラム動作と、ベリファイ動作とからなる。
【0125】
プログラム動作は、メモリセルトランジスタMTの電荷蓄積層に電荷(電子)を注入することで、メモリセルトランジスタMTの閾値電圧を上昇させる、又は、電荷蓄積層への電子の注入を禁止することで、メモリセルトランジスタMTの閾値電圧を維持させる動作である。選択ワード線には、プログラム電圧VPGMが印加される。
【0126】
ベリファイ動作は、プログラム動作の後、メモリセルトランジスタMTのデータを読み出し、メモリセルトランジスタMTの閾値電圧がターゲットレベルに達したか否かを判定する動作である。選択ワード線には、所望のベリファイ電圧が印加される。メモリセルトランジスタMTの閾値電圧がターゲットレベルに達している場合を、「ベリファイをパスした」と呼び、ターゲットレベルに達していない場合を、「ベリファイがフェイルした」と呼ぶ。ベリファイ動作の詳細は、読み出し動作と同じである。
【0127】
次に、第2実施形態に係る書き込み方式について説明する。本実施形態では、3ページのデータを、第1書き込み動作と第2書き込み動作との2回に分けて実行する。第1書き込み動作を、foggyプログラムと呼ぶ。第2書き込み動作を、fineプログラムと呼ぶ。第1書き込み動作は、粗い書き込み動作であり、第1書き込み動作が終了した後における各ステートの閾値分布幅が比較的広い。第2書き込み動作は、細かい書き込み動作であり、第2書き込み動作によってメモリセルの閾値電圧が最終的に設定される。
【0128】
まず、第1書き込み動作について説明する。
図27は、第1書き込み動作におけるメモリセルトランジスタMTの閾値分布の一例を示す模式図である。
【0129】
第1書き込み動作を実行する前のメモリセルトランジスタMTの閾値電圧は、ステート“Er”である。ステート“Er”に属するメモリセルトランジスタMTの閾値電圧は、ベリファイ電圧VA´より低く、例えば負の値を有する。
【0130】
ステートマシン28は、メモリコントローラ200から受信した3ページの書き込みデータを用いて、第1書き込み動作を実行する。第1書き込み動作において、ステートマシン28は、ベリファイ電圧VA´、VB´、VC´、VD´、VE´、VF´、VG´を使用する。“VA´<VB´<VC´<VD´<VE´<VF´<VG´<VREAD”の関係を有する。
【0131】
第1書き込み動作が実行されると、書き込みデータに基づいてメモリセルトランジスタMTの閾値電圧が適宜変化し、8個の閾値分布が形成される。
図27に示すように、第1書き込み動作後の閾値分布は、その幅が広くなっており、隣り合う閾値分布が部分的に重なっている場合もある。
【0132】
次に、第2書き込み動作について説明する。
図28は、第2書き込み動作におけるメモリセルトランジスタMTの閾値分布の一例を示す模式図である。
【0133】
ステートマシン28は、第1書き込み動作と同じ3ページの書き込みデータを用いて、第2書き込み動作を実行する。第2書き込み動作において、ステートマシン28は、ベリファイ電圧VA、VB、VC、VD、VE、VF、VGを使用する。例えば、“VA´<VA、VB´<VB、VC´<VC、VD´<VD、VE´<VE、VF´<VF、VG´<VG”の関係、及び“VA<VB<VC<VD<VE<VF<VG<VREAD”の関係を有する。
【0134】
第2書き込み動作が実行されると、書き込みデータに基づいてメモリセルトランジスタMTの閾値電圧が適宜変化し、8個の閾値分布が形成される。
図28に示すように、第2書き込み動作後の閾値分布は、第1書き込み動作後の閾値分布に比べて、その幅が狭くなっている。
【0135】
[2-3] 書き込み動作
次に、第2実施形態に係る書き込み動作について説明する。
図29は、第2実施形態に係る書き込み動作を説明するフローチャートである。なお、ここで説明する書き込み動作は、前述した第1書き込み動作及び第2書き込み動作のうちの第1書き込み動作のことである。
【0136】
NAND型フラッシュメモリ100は、メモリコントローラ200から、コマンド及びアドレスとともに下位ページを受信する。ステートマシン28は、下位ページを、データラッチ回路XDLを経由して、データラッチ回路ADL0に格納する(ステップS100)。
【0137】
続いて、NAND型フラッシュメモリ100は、メモリコントローラ200から、コマンド及びアドレスとともに中位ページを受信する。ステートマシン28は、中位ページを、データラッチ回路XDLを経由して、データラッチ回路BDL0に格納する(ステップS101)。
【0138】
続いて、NAND型フラッシュメモリ100は、メモリコントローラ200から、コマンド及びアドレスとともに上位ページを受信する。ステートマシン28は、上位ページを、データラッチ回路XDLを経由して、データラッチ回路CDL0に格納する(ステップS102)。
【0139】
続いて、ステートマシン28は、第1ラッチ群(データラッチ回路ADL0、BDL0、CDL0)から第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)へデータをコピーするデータコピー動作を実行する(ステップS103)。すなわち、ステートマシン28は、データラッチ回路ADL0からデータラッチ回路ADL1へデータをコピーし、データラッチ回路BDL0からデータラッチ回路BDL1へデータをコピーし、データラッチ回路CDL0からデータラッチ回路CDL1へデータをコピーする。これにより、データラッチ回路ADL0、BDL0、CDL0に格納された3ページ分の書き込みデータが、データラッチ回路ADL1、BDL1、CDL1にバックアップされる。
【0140】
続いて、ステートマシン28は、選択ワード線WLにプログラム電圧を印加するプログラム動作を実行する(ステップS104)。続いて、ステートマシン28は、ベリファイ動作を実行する(ステップS105)。
【0141】
続いて、ステートマシン28は、ベリファイ結果を、データラッチ回路ADL0、BDL0、CDL0に格納する(ステップS106)。
【0142】
続いて、ステートマシン28は、ベリファイがパスしたか否かを判定する(ステップS107)。ベリファイがパスした場合(ステップS107=Yes)、ステートマシン28は、書き込み動作を終了する。
【0143】
ベリファイがフェイルした場合(ステップS107=No)、ステートマシン28は、プログラムループの回数(ループ数とも呼ぶ)が規定回数に達したか否かを判定する(ステップS108)。プログラムループの回数が規定回数に達している場合(ステップS108=Yes)、ステートマシン28は、書き込み動作を終了する。そして、ステートマシン28は、例えば、書き込み動作が正常に終了しなかった旨をメモリコントローラ200に通知する。
【0144】
プログラムループの回数が規定回数に達していない場合(ステップS108=No)、ステートマシン28は、ステートマシン28は、プログラム電圧を所定のステップアップ電圧だけステップアップする(ステップS109)。そして、ステートマシン28は、ステップS104以降の動作を繰り返す。
【0145】
[2-4] 書き込み動作の詳細
図30は、第2実施形態に係る書き込み動作を説明するタイミング図である。
図31は、
図30に対応するコマンドシーケンスを説明するタイミング図である。
【0146】
メモリコントローラ200は、下位ページを含むコマンドシーケンス(
図30の“Lower DIN”)を、NAND型フラッシュメモリ100に発行する。ステートマシン28は、アイドル状態である。コマンドシーケンス“Lower DIN”は、プリセットコマンド“01h”、書き込みコマンド“80h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、下位ページD0~Dn、及び転送コマンド“1Ah”からなる。プリセットコマンド“01h”は、後続する書き込みデータが下位ページであることを指定するコマンドである。書き込みコマンド“80h”は、書き込み動作を指示するコマンドである。転送コマンド“1Ah”は、直前に送信された書き込みデータをデータラッチ回路XDLからデータラッチ回路ADL、BDL、CDLのいずれかに転送することを命令するコマンドである。
【0147】
図32は、
図30のステップ(1)におけるデータラッチ回路の状態を説明する図である。
図32において、データを格納するデータラッチ回路にハッチングを付している(
図33乃至
図38についても同様)。
図30のステップ(1)において、データラッチ回路XDLは、下位ページLDを格納する。
【0148】
ステートマシン28は、コマンド“1Ah”を受信すると、レディー/ビジー信号RBnを時間tBUSYだけローレベルにし、ビジー状態であることをメモリコントローラ200に通知する。そして、ステートマシン28は、下位ページを、データラッチ回路XDLからデータラッチ回路ADL0に転送する。
図30において、この転送動作を“XDL→ADL0”と表記している。
図33は、
図30のステップ(2)におけるデータラッチ回路の状態を説明する図である。データラッチ回路ADL0は、下位ページLDを格納する。
【0149】
続いて、メモリコントローラ200は、中位ページを含むコマンドシーケンス(
図30の“Middle DIN”)を、NAND型フラッシュメモリ100に発行する。ステートマシン28は、アイドル状態である。コマンドシーケンス“Middle DIN”は、プリセットコマンド“02h”、書き込みコマンド“80h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、中位ページD0~Dn、及び転送コマンド“1Ah”からなる。プリセットコマンド“02h”は、後続する書き込みデータが中位ページであることを指定するコマンドである。
【0150】
図34は、
図30のステップ(3)におけるデータラッチ回路の動作を説明する図である。
図30のステップ(1)において、データラッチ回路XDLは、中位ページMDを格納する。
【0151】
ステートマシン28は、コマンド“1Ah”を受信すると、レディー/ビジー信号RBnを時間tBUSYだけローレベルにし、ビジー状態であることをメモリコントローラ200に通知する。そして、ステートマシン28は、中位ページを、データラッチ回路XDLからデータラッチ回路BDL0に転送する。
図30において、この転送動作を“XDL→BDL0”と表記している。
図35は、
図30のステップ(4)におけるデータラッチ回路の状態を説明する図である。データラッチ回路BDL0は、中位ページMDを格納する。
【0152】
続いて、メモリコントローラ200は、上位ページを含むコマンドシーケンス(
図30の“Upper DIN”)を、NAND型フラッシュメモリ100に発行する。ステートマシン28は、アイドル状態である。コマンドシーケンス“Upper DIN”は、プリセットコマンド“03h”、書き込みコマンド“80h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、上位ページD0~Dn、及び実行コマンド“10h”からなる。プリセットコマンド“03h”は、後続する書き込みデータが上位ページであることを指定するコマンドである。
【0153】
図36は、
図30のステップ(5)におけるデータラッチ回路の動作を説明する図である。
図30のステップ(5)において、データラッチ回路XDLは、上位ページUDを格納する。
【0154】
ステートマシン28は、コマンド“10h”を受信すると、レディー/ビジー信号RBnを時間tPROGだけローレベルにし、ビジー状態であることをメモリコントローラ200に通知する。そして、ステートマシン28は、上位ページを、データラッチ回路XDLからデータラッチ回路CDL0に転送する。
図30において、この転送動作を“XDL→CDL0”と表記している。
図37は、
図30のステップ(6)におけるデータラッチ回路の状態を説明する図である。データラッチ回路CDL0は、上位ページUDを格納する。
【0155】
続いて、ステートマシン28は、データコピー動作を実行する。すなわち、ステートマシン28は、データラッチ回路ADL0、BDL0、CDL0のデータをそれぞれ、バスLBUSを介して、データラッチ回路ADL1、BDL1、CDL1にコピーする。
図38は、
図30のステップ(7)におけるデータラッチ回路の状態を説明する図である。データラッチ回路ADL0、ADL1は、下位ページを格納し、データラッチ回路BDL0、BDL1は、中位ページを格納し、データラッチ回路CDL0、CDL1は、上位ページを格納する。データコピーの順序は、任意に設定可能であり、例えば、データラッチ回路ADL0、BDL0、CDL0の順に実行してもよい。
【0156】
続いて、ステートマシン28は、プログラム動作を実行する。続いて、ステートマシン28は、ベリファイ動作を実行する。プログラム動作では、データラッチ回路ADL0、BDL0、CDL0に格納された書き込みデータが用いられる。また、ベリファイ結果は、データラッチ回路ADL0、BDL0、CDL0に格納される。
【0157】
ステートマシン28は、書き込み動作完了後、レディー/ビジー信号RBnをハイレベルに戻す。
【0158】
foggyプログラム後のfineプログラムでは、データラッチ回路ADL1、BDL1、CDL1に格納されたバックアップデータを用いることができる。すなわち、fineプログラムにおいて、再度書き込みデータをNAND型フラッシュメモリ100に入力する必要はない。fineプログラムの詳細については、後述する第6実施形態に示される。
【0159】
データラッチ回路ADL1、BDL1、CDL1に格納されたオリジナルの書き込みデータ(バックアップデータともいう)は、少なくとも書き込み動作が終了するまで、その値が変更されたり、消去されることはない。データラッチ回路ADL1、BDL1、CDL1に格納された書き込みデータは、既知の方法にてNAND型フラッシュメモリの外部へ出力することが可能である。
【0160】
なお、
図27及び
図28の分布の形成方法は、この方法にかぎらず、適宜必要な方法にて形成され得る。
【0161】
[2-5] 第2実施形態の効果
メモリセルトランジスタMTが3ビットのデータを記憶する場合、いわゆるTLC(triple level cell)方式の場合、データラッチ回路ADL、BDL、CDLは、書き込みデータ(下位ページ、中位ページ、上位ページ)を格納する。書き込み動作において、データラッチ回路ADL、BDL、CDLは、ベリファイ結果を格納するため、書き込み動作が終了する時点で、データラッチ回路ADL、BDL、CDLに格納された書き込みデータは破壊される。
【0162】
foggyプログラム後にfineプログラムを実行する場合、再度書き込みデータをNAND型フラッシュメモリ100に入力する必要がある。また、書き込みエラーとなり、別のセルユニットCUに書き込みを行う場合、再度書き込みデータをNAND型フラッシュメモリ100に入力する必要がある。この場合、IOバスを占有することとなり、性能が劣化してしまう。
【0163】
第2実施形態では、NAND型フラッシュメモリ100は、書き込みデータを格納するデータラッチ回路として、第1ラッチ群(データラッチ回路ADL0、BDL0、CDL0)、及び第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)を備える。そして、第1ラッチ群に格納された書き込みデータを、第2ラッチ群にコピーするようにしている。その後、第1ラッチ群の書き込みデータを用いて、書き込み動作が実行される。
【0164】
従って第2実施形態によれば、書き込みデータのバックアップデータがデータラッチ回路に残っている。よって、foggyプログラム後にfineプログラムを実行する場合、再度書き込みデータをNAND型フラッシュメモリ100に入力する必要がない。これにより、書き込み動作を高速化することができる。また、消費電力を低減することが可能である。これにより、NAND型フラッシュメモリ100及びメモリシステム1の性能を向上させることができる。
【0165】
また、書き込みエラーになった場合でも、再度書き込みデータをNAND型フラッシュメモリ100に入力する必要がない。これにより、再書き込み動作を高速化することができる。
【0166】
[3] 第3実施形態
第3実施形態は、データラッチ回路ADL0、BDL0、CDL0からデータラッチ回路ADL1、BDL1、CDL1へデータをコピーするためのコピーコマンドを新たに定義する。そして、NAND型フラッシュメモリ100は、メモリコントローラ200からコピーコマンドを受けた場合に、データコピー動作を実行するようにしている。
【0167】
[3-1] メモリシステム1の動作
図39は、第3実施形態に係るメモリコントローラ200の動作を説明するフローチャートである。
図40は、第3実施形態に係る書き込み動作を説明するタイミング図である。
図41は、
図40に対応するコマンドシーケンスを説明するタイミング図である。
【0168】
メモリコントローラ200は、コマンドシーケンス“Lower DIN”を発行し、NAND型フラッシュメモリ100に下位ページを入力する(ステップS200)。コマンドシーケンス“Lower DIN”は、プリセットコマンド“01h”、書き込みコマンド“80h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、下位ページD0~Dn、及び転送コマンド“1Ah”からなる。ステートマシン28は、下位ページをデータラッチ回路ADL0に転送する。
【0169】
続いて、メモリコントローラ200は、コマンドシーケンス“Middle DIN”を発行し、NAND型フラッシュメモリ100に中位ページを入力する(ステップS201)。コマンドシーケンス“Middle DIN”は、プリセットコマンド“02h”、書き込みコマンド“80h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、中位ページD0~Dn、及び転送コマンド“1Ah”からなる。ステートマシン28は、中位ページをデータラッチ回路BDL0に転送する。
【0170】
続いて、メモリコントローラ200は、コマンドシーケンス“Upper DIN”を発行し、NAND型フラッシュメモリ100に上位ページを入力する(ステップS202)。コマンドシーケンス“Upper DIN”は、プリセットコマンド“03h”、書き込みコマンド“80h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、上位ページD0~Dn、及び転送コマンド“1Ah”からなる。ステートマシン28は、上位ページをデータラッチ回路CDL0に転送する。
【0171】
続いて、メモリコントローラ200は、コピーコマンド“CP”を、NAND型フラッシュメモリ100に発行する(ステップS203)。ステートマシン28は、コピーコマンド“CP”を受信すると、レディー/ビジー信号RBnを所定時間だけローレベルにする。そして、ステートマシン28は、データコピー動作を実行する。すなわち、ステートマシン28は、データラッチ回路ADL0、BDL0、CDL0のデータをそれぞれ、バスLBUSを介して、データラッチ回路ADL1、BDL1、CDL1にコピーする。
【0172】
続いて、メモリコントローラ200は、書き込み開始コマンド“GO”を、NAND型フラッシュメモリ100に発行する(ステップS204)。ステートマシン28は、書き込み開始コマンド“GO”を受信すると、レディー/ビジー信号RBnを時間tPROGだけローレベルにする。そして、ステートマシン28は、書き込み動作(プログラム動作及びベリファイ動作を含む)を実行する。プログラム動作では、データラッチ回路ADL0、BDL0、CDL0に格納された書き込みデータが用いられる。また、ベリファイ結果は、データラッチ回路ADL0、BDL0、CDL0に格納される。
【0173】
なお、
図2に示したNAND型フラッシュメモリ100のブロック図において、コピーコマンド“CP”に相当する信号(図示せず)がコマンドデコーダ25からステートマシン28へ新設される。
【0174】
[3-2] 第3実施形態の効果
第3実施形態では、メモリコントローラ200の命令に基づいて、NAND型フラッシュメモリ100は、バックアップデータを生成することができる。このようにしてバックアップされたデータは、第2実施形態同様、第1書き込み動作後の第2書き込み動作、プログラムフェイル後の再書き込みの際、再度データインすることなく再利用できる。これにより、NAND型フラッシュメモリ100及びメモリシステム1の性能を向上できる。
【0175】
また、メモリコントローラ200は、コピーコマンド“CP”を任意に発行できる。すなわち、メモリコントローラ200は、書き込み動作ごとにコピーコマンド“CP”を発行する必要はなく、必要なときのみコピーコマンド“CP”を発行する。これにより、データコピー動作を行わない場合は、当該動作にかかる時間を削減できる。
【0176】
[4] 第4実施形態
第4実施形態は、書き込みデータをデータラッチ回路ADL0、BDL0、CDL0に格納し、ベリファイ結果をデータラッチ回路ADL1、BDL1、CDL1に格納する。そして、データラッチ回路ADL0、BDL0、CDL0に格納された書き込みデータを書き換えずにバックアップデータとして利用するようにしている。
【0177】
[4-1] メモリシステム1の動作
図42は、第4実施形態に係る書き込み動作を説明するフローチャートである。
図43は、第4実施形態に係る書き込み動作を説明するタイミング図である。
【0178】
図42のステップS100~S102の動作は、
図29と同じである。続いて、ステートマシン28は、データラッチ回路ADL1、BDL1、CDL1を、ベリファイがフェイルの状態に初期化する(ステップS300)。ベリファイがフェイルの状態が例えばデータ“0”である場合、データラッチ回路ADL1、BDL1、CDL1がデータ“0”を格納するように初期化される。
【0179】
続いて、ステートマシン28は、プログラム動作を実行する(ステップS104)。ステートマシン28は、プログラム動作で使用する書き込みデータを、データラッチ回路ADL0~CDL0、及びデータラッチ回路ADL1~CDL1のデータを参照して生成する。
【0180】
続いて、ステートマシン28は、ベリファイ動作を実行する(ステップS105)。続いて、ステートマシン28は、ベリファイ結果を、データラッチ回路ADL1、BDL1、CDL1に格納する(ステップS301)。
図44は、ベリファイ動作後のデータラッチ回路の様子を説明する図である。その後の動作は、
図29と同じである。
【0181】
データラッチ回路ADL0、BDL0、CDL0に格納されたオリジナルの書き込みデータ(バックアップデータ)は、少なくとも書き込み動作が終了するまで、その値が変更されたり、消去されることはない。データラッチ回路ADL0、BDL0、CDL0に格納された書き込みデータは、既知の方法にてNAND型フラッシュメモリの外部へ出力することが可能である。
【0182】
なお、本実施形態では、ベリファイ結果を3個のデータラッチ回路ADL1、BDL1、CDL1に格納する形態を示したが、原理的にはベリファイがパスしたかフェイルしたかを記憶すればよく、すなわち最小1個のデータラッチ回路にベリファイ結果を記憶するようにしてもよい。
【0183】
[4-2] 第4実施形態の効果
第4実施形態では、バックアップデータを、データラッチ回路ADL0、BDL0、CDL0に格納することができる。また、ベリファイ結果を、データラッチ回路ADL1、BDL1、CDL1に格納及び更新することができる。
【0184】
また、このようにしてデータラッチ回路ADL0、BDL0、CDL0に残したデータを用い、第1書き込み動作後の第2書き込み動作、プログラムフェイル後の再書き込みの際、再度データインすることなく再利用でき、NAND型フラッシュメモリ100及びメモリシステム1の性能を向上できる。
【0185】
また、第2、第3実施形態に比べ、下位データ、中位データ、上位データをコピーする、という操作を必要としない点で、書き込み動作の時間を短縮することが可能である。
【0186】
[5] 第5実施形態
第5実施形態は、データラッチ回路の接続関係における他の構成例である。第5実施形態は、データラッチ回路ADL0とデータラッチ回路ADL1とを、バスLBUSを介さずに、並列に接続するようにしている。そして、データラッチ回路ADL0からデータラッチ回路ADL1へのデータコピーを、バスLBUSを介さずに行うようにしている。
【0187】
[5-1] センスユニット13の構成
図45は、第5実施形態に係るセンスユニット13のブロック図である。なお、
図45には、任意のビット線BLに接続される1個のセンスアンプユニットSAUを抽出して示している。センスユニット13に含まれる全てのセンスアンプユニットSAUは、
図45の構成を有する。
【0188】
センスアンプユニットSAUは、スイッチ素子51A~51C、及びデータ線52A~52Cをさらに備える。
【0189】
データラッチ回路ADL0とデータラッチ回路ADL1とは、データ線52Aに接続される。スイッチ素子51Aの一端は、バスLBUS(具体的には、バスLBUSに含まれる1本のデータ線)に接続され、その他端は、データ線52Aに接続される。
【0190】
データラッチ回路BDL0とデータラッチ回路BDL1とは、データ線52Bに接続される。スイッチ素子51Bの一端は、バスLBUSに接続され、その他端は、データ線52Bに接続される。
【0191】
データラッチ回路CDL0とデータラッチ回路CDL1とは、データ線52Cに接続される。スイッチ素子51Cの一端は、バスLBUSに接続され、その他端は、データ線52Cに接続される。
【0192】
スイッチ素子51A~51Cの動作は、ステートマシン28によって制御される。
【0193】
[5-2] 第5実施形態の効果
第5実施形態では、データラッチ回路間のデータコピーを、バスLBUSを介さずに行うことができる。また、データラッチ回路ADL0からデータラッチ回路ADL1へのデータコピー、データラッチ回路BDL0からデータラッチ回路BDL1へのデータコピー、及びデータラッチ回路CDL0からデータラッチ回路CDL1へのデータコピーを並行して行うことができる。これにより、データコピー動作にかかる時間を短縮できる。
【0194】
また、このようにしてデータラッチ回路ADL1、BDL1、CDL1に残したデータを用い、第1書き込み動作後の第2書き込み動作、プログラムフェイル後の再書き込みの際、再度データインすることなく再利用でき、NAND型フラッシュメモリ100及びメモリシステム1の性能を向上できる。
【0195】
また、センスアンプユニット内部のバスLBUSを使用せずともデータラッチ回路ADL0からデータラッチ回路ADL1などのデータコピー動作を行うことができる。多数のデータラッチ回路が接続されるバスは容量負荷が大きく、転送に時間がかかることが懸念される。しかし、本実施形態では、バスLBUSと例えばデータ線52Aがスイッチ51Aで電気的に分離されるので、データコピー動作を高速に行えるという利点がある。
【0196】
[6] 第6実施形態
第6実施形態は、第1ラッチ群(データラッチ回路ADL0、BDL0、CDL0)に格納されている書き込みデータを用いて書き込み動作を行うことを指定するコマンドと、第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)に格納されている書き込みデータ(バックアップデータ)を用いて書き込み動作を行うことを指定するコマンドとを、メモリシステム1が個別に有するようにしている。
【0197】
[6-1] NAND型フラッシュメモリ100の構成
図46は、第6実施形態に係るNAND型フラッシュメモリ100のブロック図である。
【0198】
メモリコントローラ200は、第1書き込みコマンドと、第2書き込みコマンドとを発行することが可能である。第1書き込みコマンドは、第1ラッチ群(データラッチ回路ADL0、BDL0、CDL0)に格納されている書き込みデータを用いて書き込み動作を行うことを指定するコマンドである。第2書き込みコマンドは、第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)に格納されている書き込みデータを用いて書き込み動作を行うことを指定するコマンドである。第1書き込みコマンド及び第2書き込みコマンドの具体例については後述する。
【0199】
コマンドデコーダ25は、第2書き込みコマンドを受信した場合に、信号CMD_BKPROGを生成する。信号CMD_BKPROGは、センスユニット13に送られる。例えば、コマンドデコーダ25は、第1書き込みコマンドを受信した場合に、信号CMD_BKPROGをローレベルにし、第2書き込みコマンドを受信した場合に、信号CMD_BKPROGをハイレベルにする。
【0200】
[6-2] センスアンプユニットSAUの構成
次に、センスアンプユニットSAUの構成について説明する。
図47は、センスアンプユニットSAUの一部の回路図である。
【0201】
センスアンプユニットSAUは、データラッチ回路ADL0、BDL0、CDL0、ADL1、BDL1、CDL1を備える。
図47では、データラッチ回路SDLの図示を省略している。
【0202】
データラッチ回路ADL0、BDL0、CDL0、ADL1、BDL1、CDL1の構成は、
図20のデータラッチ回路ADL、BDL、CDLの構成と同じである。簡略化のために、データラッチ回路ADL0、ADL1を構成する素子には、同じ参照符号を付している。データラッチ回路BDL0、BDL1、及びデータラッチ回路CDL0、CDL1についても同様である。
【0203】
データラッチ回路ADL0、BDL0、CDL0、ADL1、BDL1、CDL1にはそれぞれ、ロジック回路50(図示せず)から、信号ALAT0、BLAT0、CLAT0、ALAT1、BLAT1、CLAT1が入力される。信号ALAT0、BLAT0、CLAT0、ALAT1、BLAT1、CLAT1はそれぞれ、対応するクロックドインバータ回路40のクロック端子に入力される。
【0204】
センスユニット13は、6個のANDゲート53A_0、53A_1、53B_0、53B_1、53C_0、53C_1、及び端子T7を備える。端子T7には、信号CMD_BKPROGが入力される。
【0205】
ANDゲート53A_0の第1入力端子(アクティブL(ロー))には、信号CMD_BKPROGが入力され、その第2入力端子には、ロジック回路50から信号ADLonが入力される。ANDゲート53A_0は、信号ADL0onを出力する。信号ADL0onは、データラッチ回路ADL0に入力される。
【0206】
ANDゲート53B_0の第1入力端子(アクティブL(ロー))には、信号CMD_BKPROGが入力され、その第2入力端子には、ロジック回路50から信号BDLonが入力される。ANDゲート53B_0は、信号BDL0onを出力する。信号BDL0onは、データラッチ回路BDL0に入力される。
【0207】
ANDゲート53C_0の第1入力端子(アクティブL(ロー))には、信号CMD_BKPROGが入力され、その第2入力端子には、ロジック回路50から信号CDLonが入力される。ANDゲート53C_0は、信号CDL0onを出力する。信号CDL0onは、データラッチ回路CDL0に入力される。
【0208】
ANDゲート53A_1の第1入力端子には、信号CMD_BKPROGが入力され、その第2入力端子には、ロジック回路50から信号ADLonが入力される。ANDゲート53A_1は、信号ADL1onを出力する。信号ADL1onは、データラッチ回路ADL1に入力される。
【0209】
ANDゲート53B_1の第1入力端子には、信号CMD_BKPROGが入力され、その第2入力端子には、ロジック回路50から信号BDLonが入力される。ANDゲート53B_1は、信号BDL1onを出力する。信号BDL1onは、データラッチ回路BDL1に入力される。
【0210】
ANDゲート53C_1の第1入力端子には、信号CMD_BKPROGが入力され、その第2入力端子には、ロジック回路50から信号CDLonが入力される。ANDゲート53C_1は、信号CDL1onを出力する。信号CDL1onは、データラッチ回路CDL1に入力される。
【0211】
このように構成されたセンスユニット13では、信号ADLonが活性化(ハイレベル)され、かつ信号CMD_BKPROGがローレベルである場合、データラッチ回路ADL0が使用される。信号ADLonが活性化され、かつ信号CMD_BKPROGがハイレベルである場合、データラッチ回路ADL1が使用される。同様に、データラッチ回路BDL0、BDL1は、信号BDLon及び信号CMD_BKPROGによって制御され、データラッチ回路CDL0、CDL1は、信号CDLon及び信号CMD_BKPROGによって制御される。
【0212】
[6-3] メモリシステム1の動作
第1ラッチ群(データラッチ回路ADL0、BDL0、CDL0)を用いた書き込み動作は、第2実施形態の
図29~
図31と同じである。また、センスユニット13では、信号ADL0on、BDL0on、CDL0onがハイレベルになり、データラッチ回路ADL0、BDL0、CDL0へのデータ転送が可能となる。この時点で、第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)は、書き込みデータを格納している。
【0213】
次に、第2ラッチ群を用いた書き込み動作について説明する。
【0214】
図48は、第6実施形態に係る書き込み動作におけるコマンドシーケンスを説明するタイミング図である。第2ラッチ群を用いた書き込み動作では、第1ラッチ群を用いた書き込み動作の書き込みコマンド“80h”と異なる書き込みコマンド、例えば“82h”が用いられる。コマンド“82h”を受け取った場合、
図46に示すコマンドデコーダ25は、信号CMD_BKPROGが活性化されるように構成される。また、この信号CMD_BKPROGは、少なくとも書き込み動作実行中はその状態を維持するように構成される。
【0215】
メモリコントローラ200は、下位ページのデータインを命令するコマンドシーケンスとして、プリセットコマンド“01h”、書き込みコマンド“82h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、及び転送コマンド“1Ah”を発行する。当該コマンドシーケンスには、書き込みデータが含まれていない(
図48の“No DataIn”)。
【0216】
続いて、メモリコントローラ200は、中位ページのデータインを命令するコマンドシーケンスとして、プリセットコマンド“02h”、書き込みコマンド“82h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、及び転送コマンド“1Ah”を発行する。当該コマンドシーケンスにも、書き込みデータが含まれていない。
【0217】
続いて、メモリコントローラ200は、上位ページのデータインを命令するコマンドシーケンスとして、プリセットコマンド“03h”、書き込みコマンド“82h”、アドレスセット(カラムアドレスC1、C2、及びロウアドレスR1~R3)、及び転送コマンド“10h”を発行する。当該コマンドシーケンスにも、書き込みデータが含まれていない。
【0218】
続いて、NAND型フラッシュメモリ100は、第2ラッチ群に格納された書き込みデータを用いて、書き込み動作を実行する。また、センスユニット13では、信号ADL1on、BDL1on、CDL1onがハイレベルになり、データラッチ回路ADL1、BDL1、CDL1へのデータ転送が可能となる。
【0219】
[6-4] 第6実施形態の効果
第6実施形態では、書き込みコマンド“82h”に応答して、第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)に格納されたバックアップデータを用いて書き込み動作を実行することができる。この際、書き込みデータの再入力は不要である。
【0220】
これにより、foggyプログラム後にfineプログラムを実行する場合に、書き込み動作を高速化することができる。また、書き込みエラーになった場合に、再書き込み動作を高速化することができる。
【0221】
[7] 第7実施形態
第7実施形態は、データラッチ回路の接続関係における他の構成例である。第7実施形態は、データラッチ回路ADL0とデータラッチ回路ADL1とを、バスLBUSを介さずに、直列に接続するようにしている。そして、データラッチ回路ADL0からデータラッチ回路ADL1へのデータコピーを、バスLBUSを介さずに行うようにしている。
【0222】
[7-1] センスユニット13の構成
図49は、第7実施形態に係るセンスユニット13のブロック図である。なお、
図49には、任意のビット線BLに接続される1個のセンスアンプユニットSAUを抽出して示している。センスユニット13に含まれる全てのセンスアンプユニットSAUは、
図49の構成を有する。
【0223】
データラッチ回路ADL0は、バスLBUSに接続される。データラッチ回路ADL1は、バスLBUSを介さずに、データラッチ回路ADL0に直列に接続される。
【0224】
データラッチ回路BDL0は、バスLBUSに接続される。データラッチ回路BDL1は、バスLBUSを介さずに、データラッチ回路BDL0に直列に接続される。
【0225】
データラッチ回路CDL0は、バスLBUSに接続される。データラッチ回路CDL1は、バスLBUSを介さずに、データラッチ回路CDL0に直列に接続される。
【0226】
図50は、
図49に示したデータラッチ回路ADL0、ADL1の回路図である。データラッチ回路BDL0、BDL1、及びデータラッチ回路CDL0、CDL1についても、
図50と同様の構成を有する。
【0227】
データラッチ回路ADL0、ADL1の個々の回路構成は、
図47と同じである。データラッチ回路ADL0のクロックドインバータ回路40Aの出力端子は、データラッチ回路ADL1のトランスファーゲート43Aの第1端子に接続される。
【0228】
データラッチ回路ADL0は、信号ADL0on及び信号ALAT0を適切に制御することで、バスLBUSのデータをラッチすることが可能である。データラッチ回路ADL1は、信号ADL1on及び信号ALAT1を適切に制御することで、データラッチ回路ADL0が格納するデータをラッチすることが可能である。
【0229】
[7-2] 第7実施形態の効果
第7実施形態によれば、データラッチ回路ADL0に格納されたデータを使用している間(例えば、データラッチ回路ADL0からバスLBUSにデータを転送している間)に、データラッチ回路ADL0からデータラッチ回路ADL1へのデータコピーを行うことができる。データラッチ回路BDL0、CDL0についても同様である。これにより、データラッチ回路間のデータコピー動作を、例えば書き込み動作内に隠すことが可能となる。この結果、書き込み性能の劣化を抑えることができる。
【0230】
また、データラッチ回路ADL0からデータラッチ回路ADL1へのデータコピーと、データラッチ回路BDL0からデータラッチ回路BDL1へのデータコピーと、データラッチ回路CDL0からデータラッチ回路CDL1へのデータコピーとを並行して行うことができる。これにより、データラッチ回路間のデータコピーにかかる時間を短縮できる。
【0231】
[8] 第8実施形態
第8実施形態では、センスユニット13は、第1ラッチ群、第2ラッチ群、及び第3ラッチ群を備える。そして、バスLBUS、第1ラッチ群、第2ラッチ群、第3ラッチ群、及びバスLBUSの順にデータを転送しつつ、最適にfoggy/fineプログラムを実行するようにしている。
【0232】
[8-1] センスユニット13の構成
図51は、第8実施形態に係るセンスユニット13のブロック図である。なお、
図51には、任意のビット線BLに接続される1個のセンスアンプユニットSAUを抽出して示している。センスユニット13に含まれる全てのセンスアンプユニットSAUは、
図51の構成を有する。
【0233】
センスアンプユニットSAUは、データラッチ回路ADL0~ADL2、データラッチ回路BDL0~BDL2、データラッチ回路CDL0~CDL2、及びデータラッチ回路SDLを備える。データラッチ回路ADL0、BDL0、CDL0を第1ラッチ群、データラッチ回路ADL1、BDL1、CDL1を第2ラッチ群、データラッチ回路ADL2、BDL2、CDL2を第3ラッチ群とも呼ぶ。
【0234】
データラッチ回路ADL0~ADL2は、FIFO(first-in first-out)構造を有する。データラッチ回路ADL0は、バスLBUSに接続される。バスLBUSのデータは、データラッチ回路ADL0、データラッチ回路ADL1、及びデータラッチ回路ADL2の順に転送される。データラッチ回路ADL2は、バスLBUSに接続され、データラッチ回路ADL2が格納するデータは、バスLBUSに転送される。
【0235】
同様に、データラッチ回路BDL0~BDL2、及びデータラッチ回路CDL0~CDL2はそれぞれ、FIFO(first-in first-out)構造を有する。換言すると、第1ラッチ群、第2ラッチ群、及び第3ラッチ群は、FIFO構造を有する。
【0236】
図52は、
図51に示したデータラッチ回路ADL0~ADL2の回路図である。データラッチ回路BDL0~BDL2、及びデータラッチ回路CDL0~CDL2についても、
図52と同様の構成を有する。
【0237】
データラッチ回路ADL0、ADL1の回路構成は、
図50と同じである。データラッチ回路ADL2の回路構成は、データラッチ回路ADL0と同じである。データラッチ回路ADL1のクロックドインバータ回路40Aの出力端子は、データラッチ回路ADL2のトランスファーゲート43Aの第1端子に接続される。データラッチ回路ADL2のトランスファーゲート43Aの第1クロック端子には、ロジック回路50から信号ADL2onが入力される。データラッチ回路ADL2のクロックドインバータ回路40Aのクロック端子には、ロジック回路50から信号ALAT2が入力される。
【0238】
データラッチ回路ADL2のクロックドインバータ回路40Aの出力端子は、トランスファーゲート54の第1端子に接続される。トランスファーゲート54の第2端子は、バスLBUSに接続される。トランスファーゲート54の第1ゲート端子と、インバータ回路55の入力端子には、ロジック回路50から信号ADL3onが入力される。インバータ回路55の出力端子は、トランスファーゲート54の第2ゲート端子に接続される。トランスファーゲート54は、信号ADL3onがハイレベルの場合にオンする。
【0239】
このように構成されたデータラッチ回路ADL0~ADL2は、信号ALAT0、ALAT1、ALAT2、ADL0on、ADL1on、ADL2on、ADL3onを適切に制御することによって、バスLBUS、データラッチ回路ADL0、データラッチ回路ADL1、データラッチ回路ADL2、及びバスLBUSの順にデータを転送することが可能である。
【0240】
[8-2] メモリシステム1の動作
まず、foggy/fineプログラムの書き込み順序について説明する。
図53は、foggy/fineプログラムの書き込み順序を説明する模式図である。
図53には、ワード線WL(m-1)~WL(m+2)の書き込み順序を示している。
図53の各ワード線WLにおいて、下側の四角がfoggyプログラム、上側の四角がfineプログラムを表している。
図53の“N”を含む数値が、書き込み順序を表している。
【0241】
基本的には、ステートマシン28は、第1ワード線のfoggyプログラムを行った後、第1ワード線に隣接する第2ワード線のfineプログラムを行う。具体的には、
図53に示すように、ステートマシン28は、(1)ワード線WLmの第Nプログラム(foggy)、(2)ワード線WL(m-1)の第(N+1)プログラム(fine)、(3)ワード線WL(m+1)の第(N+2)プログラム(foggy)、(4)ワード線WLmの第(N+3)プログラム(fine)、(5)ワード線WL(m+2)の第(N+4)プログラム(foggy)、(6)ワード線WL(m+1)の第(N+5)プログラム(fine)の順序で書き込み動作を実行する。
【0242】
図54は、第Nプログラム(foggy)におけるデータラッチ回路の動作を説明する図である。第1ラッチ群は、メモリコントローラ200から双方向バスIOを介してデータラッチ回路XDLに一時格納され、その後バスLBUSを介して転送された、ワード線WLmの書き込み用のデータを格納する。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第Nプログラムを実行する。第2ラッチ群は、ワード線WLmのfineプログラム用のデータ(バックアップデータ(
図54に“Bkup”と表記))を格納する。第3ラッチ群は、ワード線WL(m-1)のfineプログラム用のデータ(バックアップデータ)を格納する。ここで、第3ラッチ群のデータは、本実施形態で述べる動作より以前の過程でメモリコントローラ200より送られ、格納されたデータで、第Nプログラムを開始する時点で第3ラッチ群に転送されたものである。
【0243】
図55は、第(N+1)プログラム(fine)におけるデータラッチ回路の動作を説明する図である。第1ラッチ群は、第3ラッチ群から転送された、ワード線WL(m-1)の書き込み用のデータを格納する。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第(N+1)プログラムを実行する。第2ラッチ群は、ワード線WLmのfineプログラム用のデータ(バックアップデータ)を格納する。第3ラッチ群は、ワード線WL(m-1)のfineプログラム用のデータ(バックアップデータ)を格納する。
【0244】
図56は、第(N+2)プログラム(foggy)におけるデータラッチ回路の動作を説明する図である。第1ラッチ群は、メモリコントローラ200から双方向バスIOを介してデータラッチ回路XDLに一時格納され、その後バスLBUSを介して転送された、ワード線WL(m+1)の書き込み用のデータを格納する。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第(N+2)プログラムを実行する。第2ラッチ群は、ワード線WL(m+1)のfineプログラム用のデータ(バックアップデータ)を格納する。第3ラッチ群は、ワード線WLmのfineプログラム用のデータ(バックアップデータ)を格納する。
【0245】
図57は、第(N+3)プログラム(fine)におけるデータラッチ回路の動作を説明する図である。第1ラッチ群は、第3ラッチ群から転送された、ワード線WLmの書き込み用のデータを格納する。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第(N+3)プログラムを実行する。第2ラッチ群は、ワード線WL(m+1)のfineプログラム用のデータ(バックアップデータ)を格納する。第3ラッチ群は、ワード線WLmのfineプログラム用のデータ(バックアップデータ)を格納する。
【0246】
図58は、第(N+4)プログラム(foggy)におけるデータラッチ回路の動作を説明する図である。第1ラッチ群は、メモリコントローラ200から双方向バスIOを介してデータラッチ回路XDLに一時格納され、その後バスLBUSを介して転送された、ワード線WL(m+2)の書き込み用のデータを格納する。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第(N+4)プログラムを実行する。第2ラッチ群は、ワード線WL(m+2)のfineプログラム用のデータ(バックアップデータ)を格納する。第3ラッチ群は、ワード線WL(m+1)のfineプログラム用のデータ(バックアップデータ)を格納する。
【0247】
以上のように、バスLBUS、第1ラッチ群、第2ラッチ群、第3ラッチ群、及びバスLBUSの順にデータを転送するとともに、
図53で示した順序で書き込み動作を実行することが可能である。
【0248】
[8-3] センスユニット13の動作
次に、センスユニット13の動作について説明する。
図59は、第Nプログラムにおけるセンスユニット13の動作を説明するタイミング図である。
図59において、ワード線WL(m-1)用の書き込みデータを“WL(m-1)_Data”、ワード線WLm用の書き込みデータを“WLm_Data”と表記している。
【0249】
時刻t1において、ロジック回路50は、信号ALAT0及び信号ALAT2をローレベルにする。時刻t2において、ロジック回路50は、信号ADL0on及び信号ADL2onをハイレベルにする。これにより、データラッチ回路ADL0は、バスLBUSのデータWLm_Dataを格納する。また、データラッチ回路ADL2は、データラッチ回路ADL1から転送されたデータWL(m-1)_Dataを格納する。
【0250】
時刻t3において、ロジック回路50は、信号ALAT0及び信号ALAT2をハイレベルにする。時刻t4において、ロジック回路50は、信号ADL0on及び信号ADL2onをローレベルにする。
【0251】
時刻t5において、ロジック回路50は、信号ALAT1をローレベルにする。時刻t6において、ロジック回路50は、信号ADL1onをハイレベルにする。これにより、データラッチ回路ADL1は、データラッチ回路ADL0から転送されたデータWLm_Dataを格納する。この時点で、第Nプログラムにおけるデータがセンスユニット13に格納される。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第Nプログラムを実行する。
【0252】
図60は、第(N+1)プログラムにおけるセンスユニット13の動作を説明するタイミング図である。
【0253】
時刻t1において、ロジック回路50は、信号ADL3onをハイレベルにする。これにより、データラッチ回路ADL2のデータWL(m-1)_DataがバスLBUSに転送される。時刻t2において、ロジック回路50は、信号ADL3onをローレベルにする。
【0254】
時刻t3において、ロジック回路50は、信号ALAT0をローレベルにする。時刻t4において、ロジック回路50は、信号ADL0onをハイレベルにする。これにより、データラッチ回路ADL0は、バスLBUSのデータWL(m-1)_Dataを格納する。この時点で、第(N+1)プログラムにおけるデータがセンスユニット13に格納される。ステートマシン28は、第1ラッチ群に格納されたデータを用いて、第(N+1)プログラムを実行する。
【0255】
なお、データラッチ回路間でデータをコピーする動作は、下位ページ、中位ページ、及び上位ページがデータラッチ回路に格納された後に、ステートマシン28が自動的に行うようにしてもよいし、メモリコントローラ200からコピーコマンド“CP”に基づいて行うようにしてもよい。
【0256】
[8-4] 第8実施形態の効果
第8実施形態では、センスユニット13は、第1ラッチ群(データラッチ回路ADL0、BDL0、CDL0)、第2ラッチ群(データラッチ回路ADL1、BDL1、CDL1)、及び第3ラッチ群(データラッチ回路ADL2、BDL2、CDL2)を備え、第1ラッチ群、第2ラッチ群、及び第3ラッチ群がFIFO構造を有する。書き込みデータは、バスLBUS、第1ラッチ群、第2ラッチ群、第3ラッチ群、及びバスLBUSの順に転送可能である。そして、第1ラッチ群に格納された書き込みデータを用いて、foggyプログラム及びfineプログラムを実行することができる。
【0257】
また、fineプログラムにおいて、書き込みデータの再入力は不要である。これにより、foggyプログラム後にfineプログラムを実行する場合に、書き込み動作を高速化することができる。
【0258】
[9] 第9実施形態
第9実施形態は、読み出し動作として、ハードビットリード及びソフトビットリードを行い、ソフトビット情報を生成する場合の実施例である。
【0259】
[9-1] 読み出し動作の概要
第9実施形態に係る読み出し動作では、ハードビットリード及びソフトビットリードを行うことが可能である。
【0260】
ハードビットリードは、コマンドに応じて通常の条件で読み出し動作を行う。ハードビットリードは、ノーマルリードと同じ読み出し動作である。
【0261】
ソフトビットリードは、コマンドに応じて、通常とは異なる条件(例えば、ハードビットリードとは異なる読み出し電圧)で読み出し動作を行う。ソフトビットリードでは、複数の読み出し電圧を用いて読み出し動作が行われる。
【0262】
ステートマシン28は、ソフトビットリードの結果を用いて論理演算を行い、論理演算結果としてソフトビット情報を生成する。
【0263】
[9-2] センスユニット13の構成
図61は、第9実施形態に係るセンスユニット13のブロック図である。なお、
図61には、任意のビット線BLに接続される1個のセンスアンプユニットSAUを抽出して示している。センスユニット13に含まれる全てのセンスアンプユニットSAUは、
図61の構成を有する。なお、
図61の構成に限らず、他の構成をとることができる。
【0264】
センスアンプユニットSAUは、センスアンプSA、及び7個のデータラッチ回路ADL、BDL、CDL、SDL、TDL、NDL、UDLを備える。センスアンプSA、及びデータラッチ回路ADL、BDL、CDL、SDL、TDL、NDL、UDLは、互いにデータが転送可能なように、バスLBUSを介して接続される。
【0265】
データラッチ回路SDLは、例えば、読み出し動作におけるセンス結果を格納し、また、ベリファイ動作におけるセンス結果を格納する。データラッチ回路ADLは、下位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路BDLは、中位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路CDLは、上位ページを格納し、また、ベリファイ結果を格納する。データラッチ回路TDLは、センスアンプユニットSAU内で演算を行うためのデータ(内部用途データ)を格納し、また、ベリファイ結果を格納する。データラッチ回路NDLは、ハードビットリードで読み出されたデータを格納する。データラッチ回路UDLは、ハードビットリード、又はソフトビットリードで読み出されたデータを格納する。
【0266】
[9-3] メモリシステム1の動作
図62は、ハードビットリードのコマンドシーケンスを説明する図である。ハードビットリードは、通常の読み出し動作(ノーマルリード)と同じである。
【0267】
ハードビットリードにおいて、メモリコントローラ200は、prefixコマンド“Y”、プリセットコマンド“PSC”、読み出しコマンド“00h”、アドレスセット“C1、C2、R1~R3”、及び実行コマンド“30h”を、NAND型フラッシュメモリ100に発行する。
【0268】
prefixコマンド“Y”は、ハードビットリード及びソフトビットリードにおいて、データラッチ回路NDL、UDLのいずれかを指定するコマンドである。prefixコマンド“Y”の詳細については後述する。プリセットコマンド“PSC”は、下位ページ、中位ページ、上位ページのいずれかを指定するコマンドである。
【0269】
ステートマシン28は、実行コマンド“30h”を受けた後、レディー/ビジー信号RBnをローレベルにする。そして、ステートマシン28は、ハードビットリードを実行する。
【0270】
なお、prefixコマンド“Y”を省略することも可能である。prefixコマンド“Y”なしのハードビットリードは、通常の読み出し動作(ノーマルリード)に対応する。また、アドレスセット“C1、C2、R1~R3”によって、下位ページ、中位ページ、及び上位ページのいずれかを指定してもよい。この場合、プリセットコマンド“PSC”が省略される。
【0271】
図63は、ソフトビットリードのコマンドシーケンスを説明する図である。ソフトビットリードにおいて、メモリコントローラ200は、prefixコマンド“Y”、prefixコマンド“SB”、プリセットコマンド“PSC”、読み出しコマンド“00h”、アドレスセット“C1、C2、R1~R3”、及び実行コマンド“30h”を、NAND型フラッシュメモリ100に発行する。prefixコマンド“SB”は、ソフトビットリードを指定するコマンドである。
【0272】
ステートマシン28は、実行コマンド“30h”を受けた後、レディー/ビジー信号RBnをローレベルにする。そして、ステートマシン28は、ソフトビットリードを実行する。
【0273】
なお、ソフトビットリードを指定する場合に、prefixコマンド“Y”を省略することも可能である。
【0274】
図64は、データラッチ回路の動作を説明する模式図である。
図64には、5個のケースを示している。
図64の“HB”は、ハードビットリードを表し、
図64の“SB”は、ソフトビットリードを表している。
【0275】
書き込み動作全般において、データラッチ回路ADLは、プログラム用の下位ページ(
図64において“Program(lower)”と表記)を格納し、データラッチ回路BDLは、プログラム用の中位ページ(
図64において“Program(middle)”と表記)を格納し、データラッチ回路CDLは、プログラム用の上位ページ(
図64において“Program(upper)”と表記)を格納し、データラッチ回路TDLは、内部用途データ(
図64において“Program(internal)”と表記)を格納する。
【0276】
ケース1は、prefixコマンド“Y”なしのハードビットリードであり、通常の読み出し動作(ノーマルリード)に対応する。ケース1では、データラッチ回路NDL、UDLを使用せずに、読み出し動作が行われる。ハードビットリードの結果は、データラッチ回路XDLに格納され、データラッチ回路XDLを除くデータラッチ回路には格納されない。データラッチ回路XDLのデータは、次の読み出し動作で上書きされる。
【0277】
ケース2は、prefixコマンド“Y”として例えば“08h”を設定してハードビットリードを実施する動作である。ケース2では、ステートマシン28は、ハードビットリードの結果をデータラッチ回路NDLに格納する。ハードビットリードの結果は、次にデータラッチ回路NDLを使用するまで当該データラッチ回路NDLに保持される。ハードビットリードの結果は、必要に応じて再利用でき、また、既知のコマンドを利用してデータラッチ回路XDLを経由してNAND型フラッシュメモリの外部に出力することも可能である。
【0278】
ケース3は、prefixコマンド“Y”なしのソフトビットリードである。ケース3では、データラッチ回路NDL、UDLを使用せずに、読み出し動作が行われる。ソフトビットリードの結果は、データラッチ回路XDLに格納され、データラッチ回路XDLを除くデータラッチ回路には格納されない。データラッチ回路XDLのデータは、次の読み出し動作で上書きされる。
【0279】
ケース4は、prefixコマンド“Y”として例えば“08h”を設定してソフトビットリードを実施する動作である。ケース4では、ステートマシン28は、ソフトビットリードの結果をデータラッチ回路NDLに格納する。ソフトビットリードの結果は、次にデータラッチ回路NDLを使用するまで当該データラッチ回路NDLに保持される。ソフトビットリードの結果は、必要に応じて再利用でき、また、既知のコマンドを利用してデータラッチ回路XDLを経由してNAND型フラッシュメモリの外部に出力することも可能である。
【0280】
ケース5は、prefixコマンド“Y”として例えば“09h”を設定してソフトビットリードを実施する動作である。ケース5では、ステートマシン28は、ソフトビットリードの結果をデータラッチ回路UDLに格納する。ソフトビットリードの結果は、次にデータラッチ回路UDLを使用するまで当該データラッチ回路UDLに保持される。ソフトビットリードの結果は、必要に応じて再利用でき、また、既知のコマンドを利用してデータラッチ回路XDLを経由してNAND型フラッシュメモリの外部に出力することも可能である。
【0281】
また、ケース5では、データラッチ回路NDLにハードビットリードの結果を格納し、データラッチ回路UDLにソフトビットリードの結果を格納することが可能である。すなわち、センスユニット13は、ハードビットリードの結果と、ソフトビットリードの結果とを同時に保持することが可能である。
【0282】
ケース5を実施後、データラッチ回路NDLのハードビットリード結果と、複数回行ったデータラッチ回路UDLのソフトビットリード結果とを参照する場合、常に同じハードビットリード結果を参照することになる。ケース1等の場合はハードビットリード結果を都度取得(リード)することが必要となるが、この場合はその必要がない。
【0283】
[9-4] 第9実施形態の効果
従来では、データラッチ回路の数に制約があり、例えば、ハードビットリードの結果にソフトビットリードの結果を重ねる(演算する)形でソフトビット情報を生成しており、ハードビットリードの結果はデータラッチ回路に残らなかった。後刻ハードビットリードの結果を再利用する必要が発生した場合、再度ハードビットリードを行う必要があり、これにかかる時間は読み出し性能を劣化させていた。
【0284】
第9実施形態では、データラッチ回路ADL、BDL、CDLに書き込みデータを格納しつつ、ハードビットリードの結果及びソフトビットリードの結果を格納するデータラッチ回路を選択することができる。また、ハードビットリードの結果及びソフトビットリードの結果の両方をデータラッチ回路NDL、UDLに格納することもできる。これにより、読み出し性能を向上させることができる。
【0285】
[10] 第10実施形態
第10実施形態は、NAND型フラッシュメモリ100の構造に関する実施例である。
【0286】
[10-1] NAND型フラッシュメモリ100の構造
図65は、第10実施形態に係るNAND型フラッシュメモリ100の断面構造の一例を示す図である。なお、以下の説明に用いる各断面図では、層間絶縁膜のハッチングを省略している。NAND型フラッシュメモリ100は、メモリチップ100A、及び回路チップ100Bを備え、回路チップ100B上にメモリチップ100Aが設けられる。
【0287】
まず、メモリチップ100Aの構造について説明する。メモリチップ100Aは、複数のメモリセルが設けられるセルアレイ領域11Aと、セルアレイ領域11Aから配線を引き出すためのフックアップ領域11Bとを備える。
【0288】
メモリチップ100Aにおいて、上層から順に、各々が絶縁体を介して導電体61~71が設けられる。導電体61~71は、それぞれX方向及びY方向に広がった板状に形成される。例えば、導電体61~71は、それぞれセルアレイ領域11Aからフックアップ領域11Bに亘って延伸し、フックアップ領域11Bにおいて階段状に形成される。導電体61は、ソース線SLとして機能する。導電体62は、選択ゲート線SGSとして機能する。導電体63~70はそれぞれ、ワード線WL0~WL7として機能する。導電体71は、選択ゲート線SGDとして機能する。
【0289】
複数のメモリピラーMHは、導電体71の下面から導電体61の下面に達するように、導電体71~62を通過して設けられる。各メモリピラーMHの下面には、導電性のコンタクトプラグBLCが設けられる。各コンタクトプラグBLCの下面には、導電体72が設けられる。各導電体72は、Y方向に延伸したライン状に形成され、ビット線BLとして機能する。1つの導電体72は、各ストリングユニットSU内でそれぞれ1つのメモリピラーMHと電気的に接続される。メモリピラーMHの詳細については後述する。
【0290】
1本のビット線BLに着目すると、ビット線BLとして機能する導電体72の下面には、導電性のコンタクトプラグ73が設けられる。コンタクトプラグ73の下面には、導電体74が設けられる。導電体74の下面には、導電性の接合部75が設けられる。接合部75としては、例えば銅が使用される。
【0291】
このような構成により、1つの接合部75と、1本のビット線BLとが電気的に接続される。その他のビット線BLについても同様であり、図示されない領域において、それぞれ異なるコンタクトプラグ73、導電体74、及び接合部75の組に接続される。
【0292】
フックアップ領域11Bにおいて、導電体61の下方には、例えばコンタクトプラグCCの本数に対応して、複数の導電体76が設けられる。例えば、ワード線WL2に対応する導電体65の下面にコンタクトプラグCCが設けられ、当該コンタクトプラグCCの下面にワード線WL2に対応する導電体76が設けられる。同様に、各種配線に対応するコンタクトプラグCCは、積層された導電体62~71のうち、対応する導電体と電気的に接続され、その他の導電体と絶縁されるように形成される。
【0293】
ワード線WL2に対応する導電体76に着目すると、導電体76の下面には、コンタクトプラグ77が設けられる。コンタクトプラグ77の下面には、導電体78が設けられる。導電体78の下面には、接合部79が設けられる。接合部79としては、例えば銅が使用される。
【0294】
このような構成により、1つの接合部79と、1本のワード線WLとが電気的に接続される。その他のワード線WL、選択ゲート線SGS、及び選択ゲート線SGDにそれぞれ対応する導電体76についても同様であり、図示されない領域において、それぞれ異なるコンタクトプラグ77、導電体78、及び接合部79の組に接続される。
【0295】
次に、回路チップ100Bの構造について説明する。回路チップ100Bでは、セルアレイ領域11Aの下部にセンスユニット13が設けられ、フックアップ領域11Bの下部にロウデコーダ12が設けられる。
【0296】
回路チップ100Bは、半導体基板80を備える。センスユニット13の領域における半導体基板80上には、絶縁膜を介して導電体81が設けられる。この導電体81がゲート電極として機能し、ソース/ドレイン領域等を有するMOSFET(Metal Oxide Semiconductor Field Effect Transistor)が形成される。当該トランジスタのソース/ドレイン領域はそれぞれ、コンタクトプラグ82を介して異なる導電体83に接続される。一方の導電体83上には、接合部84が設けられる。接合部84としては、例えば銅が使用される。
【0297】
接合部84上には、1つの接合部75が設けられ、接合部84及び接合部75は、電気的に接続される。つまり、メモリチップ100A内の1本のビット線BLが、接合部75及び84を介して、センスユニット13内の対応するトランジスタに接続される。なお、センスユニット13は、図示されない領域において複数のトランジスタを含み、当該複数のトランジスタはそれぞれ、異なる導電体83及び接合部84の組を介して、異なるビット線BLに電気的に接続される。
【0298】
ロウデコーダ11の領域における半導体基板80上には、絶縁膜を介して導電体85が設けられる。この導電体85がゲート電極として機能し、ソース/ドレイン領域等を有するMOSFETが形成される。当該トランジスタのソース/ドレイン領域はそれぞれ、コンタクトプラグ86を介して異なる導電体87に接続される。一方の導電体87上には、接合部88が設けられる。接合部88としては、例えば銅が使用される。
【0299】
接合部88上には、1つの接合部79が設けられ、接合部88及び接合部79は、電気的に接続される。つまり、例えばメモリチップ100A内の1本のワード線WLが、接合部79及び88を介して、ロウデコーダ12内の対応するトランジスタに接続される。なお、ロウデコーダ12は、図示されない領域において複数のトランジスタを含み、当該複数のトランジスタはそれぞれ、異なる導電体87及び接合部88の組を介して、他のワード線WL、選択ゲート線SGS、及び選択ゲート線SGDに電気的に接続される。
【0300】
次に、メモリセルアレイ11のより詳細な断面構造の一例について説明する。
図66は、メモリセルアレイ11の一部領域の断面図である。
図66は、
図65のY方向に沿った断面に対応し、
図65に対してZ方向を反転して示している。
【0301】
1つのストリングユニットSUに対応する構造体は、
図66に示すように、隣り合うスリットSLT間に設けられる。スリットSLTは、X方向及びZ方向に広がり、隣り合うストリングユニットSUに設けられた導電体62~71間を絶縁している。
【0302】
メモリピラーMHは、例えばブロック絶縁膜90、電荷蓄積層91、トンネル絶縁膜92、及び導電性の半導体層93を含んでいる。具体的には、メモリピラーMHを形成するメモリホールの内壁に、ブロック絶縁膜90が形成される。ブロック絶縁膜90の内壁に、電荷蓄積層91が形成される。電荷蓄積層91の内壁に、トンネル絶縁膜92が形成される。トンネル絶縁膜92の内側に、半導体層93が形成され、例えば埋め込まれる。半導体層93は、NANDストリングNSのチャネルが形成される領域である。なお、半導体層93内の中央には、半導体層93をZ方向に貫通する絶縁層が設けられていてもよい。
【0303】
トンネル絶縁膜92としては、例えばシリコン酸化物(SiO2)が用いられる。電荷蓄積層91としては、例えばシリコン窒化物(SiN)が用いられる。ブロック絶縁膜90としては、例えばシリコン酸化物が用いられる。半導体層93としては、例えば多結晶シリコンが用いられる。
【0304】
メモリピラーMHと導電体62とが交差する部分が、選択トランジスタST2として機能する。メモリピラーMHと導電体63~70とが交差する部分が、それぞれメモリセルトランジスタMT0~MT7として機能する。メモリピラーMHと導電体71とが交差する部分が、選択トランジスタST1として機能する。
【0305】
[10-2] 第10実施形態の効果
第10実施形態では、メモリセルアレイ11と、その周辺回路とを個別のチップで形成できる。すなわち、NAND型フラッシュメモリ100は、メモリチップ100A、及び回路チップ100Bを備える。メモリチップ100Aは、メモリセルアレイ11を含む。回路チップ100Bは、周辺回路、具体的には、ロウデコーダ12及びセンスユニット13などを含む。
【0306】
これにより、センスユニット13の回路面積を大きくすることができる。よって、センスユニット13がより多くのラッチ回路を備えるように構成することができる。
【0307】
[11] 変形例
データラッチ回路の数(データラッチ回路SDL、XDLを除く)は、上記実施形態に限定されるものではなく、適宜変更可能である。データラッチ回路の数がより多い場合は、その数に応じたprefixコマンドを設定し、その識別ができるようにすればよい。また、本実施形態の実現方法は上記に限らない。要はメモリコントローラが与える様々なコマンドによって、使用するデータラッチ回路を変更することを実現し、必要に応じて適切に該当動作で使用するデータラッチ回路を任意に指定することを可能とすればよい。
【0308】
上記実施形態では、1つのメモリセルトが3ビットのデータを記憶する場合を例に説明したが、これに限定されない。上記実施形態は、1つのメモリセルが1ビットを記憶する方式に適用してもよい。また、1つのメモリセルが3ビット以外の複数ビットを記憶する方式に適用してもよい。
【0309】
上記実施形態は、メモリセルが二次元に配置された平面型NAND型フラッシュメモリ、及びメモリセルが二次元に配置された三次元積層型NAND型フラッシュメモリのいずれにも適用できる。
【0310】
上記実施形態において、メモリセルアレイの構造は、その他の構造であってもよい。その他のメモリセルアレイの構成については、例えば“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679,991号に記載されている。“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【0311】
上記実施形態において、ブロックBLKは消去単位でなくても良い。その他の消去動作については、“不揮発性半導体記憶装置”という2011年9月18日に出願された米国特許出願13/235,389号、“不揮発性半導体記憶装置”という2010年1月27日に出願された米国特許出願12/694,690号にそれぞれ記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【0312】
本明細書において“接続”とは、電気的に接続されている事を示し、例えば間に別の素子を介することを除外しない。
【0313】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0314】
1…メモリシステム、10…コア部、11…メモリセルアレイ、12…ロウデコーダ、13…センスユニット、20…周辺回路、21,22…入力バッファ、23,30…出力バッファ、24…アドレスバッファ、25…コマンドデコーダ、26…データバッファ、27…選択回路、28…ステートマシン、29…メモリセル制御レジスタ、31…レジスタ回路、32…フェイル数カウント回路、50…ロジック回路、100…NAND型フラッシュメモリ、200…メモリコントローラ、201…ホストインターフェース回路、202…CPU、203…RAM、204…バッファメモリ、205…NANDインターフェース回路、206…ECC回路、207…バス、300…ホスト装置