以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能及び構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される。また、ある実施形態についての記述はすべて、明示的にまたは自明的に排除されない限り、別の実施形態の記述としても当てはまる。
[第1実施形態]
1−1.構成
図1は、第1実施形態に係るメモリシステムの機能ブロックを示す。図1に示されるように、メモリシステム1は、NAND型フラッシュメモリ(メモリ装置、半導体記憶装置)100、メモリコントローラ(コントローラ)200を含む。メモリシステム1は、さらに、ホスト機器300を含み得る。
ホスト機器300は、コントローラ200に対し、メモリ100における読み出し、書き込み、および消去等の動作を命令する。
コントローラ200は、ホスト機器300からの命令に基づいて、メモリ100を制御する。コントローラ200は、ホストインターフェイス回路201、RAM(random access memory)202、CPU(central processing unit)203、バッファメモリ204、およびNANDインターフェイス回路205を含む。ホストインターフェイス回路201は、コントローラバスを介してホスト機器300と接続され、メモリコントローラ200とホスト機器300との通信を司る。
NANDインターフェイス回路205は、NANDバスを介してメモリ100と接続され、メモリコントローラ200とメモリ100との通信を司る。NANDバスは、I/Oバスを含む。I/Oバスは、複数(例えば8ビット)の幅を有し、データ、コマンド、及びアドレス信号等の要素を伝達する。NANDバスは、また、種々の制御信号を伝送する。制御信号は、レディー・ビジー信号を含む。レディー・ビジー信号は、メモリ100がレディー状態であるかビジー状態であるかを示す。
CPU203は、メモリコントローラ200の全体の動作を制御する。RAMモリ202は、CPU230の作業領域として使用される。バッファメモリ204は、メモリ100に送信されるデータ、およびモリ100から送信されたデータを一時的に保持する。
メモリ100は、複数のメモリセルを含み、データを不揮発に記憶することができる。メモリ100は、例えば図2に示される要素を有する。図2は、第1実施形態のメモリの機能ブロックを示す。図2に示されるように、メモリ100は、メモリセルアレイ10、センスアンプモジュール11、ページバッファ12、カラムデコーダ13、ロウデコーダ14、入出力回路15、電圧生成回路16、およびシーケンサ17を含む。
メモリセルアレイ10は、複数の(メモリ)ブロックBLK(BLK0、BLK1、BLK2、・・・)を含む。各ブロックBLKは、複数のストリングユニットSU(SU0、SU1、SU2・・・)を含む。各ストリングユニットSUは、複数のNANDストリングNSを含む。各ストリングNSは、複数のメモリセルを含む。セルアレイ10中には、ビット線、ワード線等の配線が設けられる。
センスアンプモジュール11は、データをセンスし、また、データを一時的に保持する。
ページバッファ12は、読み出しデータおよび書き込みデータを、「ページ」とよばれる単位で保持する。1ページの大きさは、例えば16KBであり、以下の記述はこの例に則る。
カラムデコーダ13は、カラムアドレス信号を受け取り、カラムアドレスに基づいてビット線と他の要素との接続を制御する。ロウデコーダ14は、ロウアドレス信号を受け取り、ロウアドレスに基づいてワード線に種々の電圧を印加する。
入出力回路15は、コントローラ200とメモリ100との間の信号の授受を司る。
電圧生成回路16は、例えばチャージポンプ等を含み、データの書き込み、読み出し、および消去に必要な電圧(電位)を生成する。電圧生成回路16は、生成した電圧をセンスアンプモジュール11、ページバッファ12、カラムデコーダ13、ロウデコーダ14等に供給する。
シーケンサ17は、メモリ100の全体の動作を制御する。
ブロックBLKは、例えば図3に示される要素および接続を有する。図3は、第1実施形態のメモリのブロックを示す。図3に示されるように、各NANDストリングNSは直列接続されたメモリセルトランジスタMT(MT0〜MT7)、および選択ゲートトランジスタST1ならびにST2を含む。セルトランジスタMTは、データを不揮発に保持する。セルトランジスタMTは、選択ゲートトランジスタST1の一端と選択ゲートトランジスタST2の一端との間に接続されている。
ストリングユニットSUx(xは0または1以上の自然数)中のトランジスタST1のゲートは、選択ゲート線SGDxに接続されている。各トランジスタST2のゲートは選択ゲート線SGSに共通に接続されている。
各ストリングユニットSUにおいて、複数のストリングNSの各々のトランジスタST1の他端は、相違するビット線BL(BL0〜BL(k−1))に接続されている。kは自然数であり、例えば16KBである。各ビット線BLは、相違するストリングユニットSUの各々のストリングNSに接続されている。
同一のブロックBLK中のセルトランジスタMTm(mは0または7以下の自然数)の制御ゲートは、ワード線WLmに接続されている。1つのストリングユニットSU中で1つのワード線WLに接続されたセルトランジスタMTの組(セルの組)に対して、データの書き込みおよび読み出しが一括して行われる。このようなセルの組の記憶空間は、1または複数のページを含む。1ページは、セルの組の中のうちの一部のセルトランジスタMTの記憶空間から構成されていてもよい。メモリ100は、1つのセルトランジスタMTにおいて2ビット以上のデータを保持できる。1セルトランジスタMT当たり2ビットのデータの保持の場合、1ストリングユニットSU中でワード線WLを共有するセルトランジスタMTの各々の上位ビットの組は上位ページと称され、下位ビットの組は下位ページと称される。
メモリセルアレイ10は、別の構成を有しても良い。メモリセルアレイ10の構成は、例えば、“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407、403号に記載されている。また、“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406、524号に記載されている。更に、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679、991号、“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532、030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
センスアンプモジュール11およびページバッファ12は、例えば図4に示される要素および接続を有する。図4は、第1実施形態のセンスアンプモジュールおよびページバッファの機能ブロックを示す。図4に示されるように、センスアンプモジュール11は、センスアンプSAを含む。センスアンプSAは、ビット線BLと接続されており、ビット線BLに読み出されたデータをセンスし、また、ビット線BLに書き込みデータを転送する。センスアンプSAは、このようなセンスおよび転送を、1ページの大きさのデータに対して実行できる。センスアンプSAは、複数のセンスアンプ群SAUを含む。各センスアンプ群SAUは、複数のビット(例えば16ビット。以下の記述はこの例に則る。)のデータのセンスおよび転送を行う。
センスアンプモジュール11は、さらに、データラッチSDL、LDL、およびUDLを含む。データラッチSDL、LDL、およびUDLは、各々、1ページの大きさのデータを保持できる。データラッチSDLは、複数のデータラッチ群SDLUを含む。各データラッチ群SDLUは、複数のビット(例えば16ビット)のデータを保持できる。同様に、データラッチUDLは、複数のデータラッチ群UDLUを含む。各データラッチ群UDLUは、複数のビット(例えば16ビット)のデータを保持できる。さらに、データラッチLDLも、複数のデータラッチ群LDLUを含む。各データラッチ群LDLUは、複数のビット(例えば16ビット)のデータを保持できる。
ページバッファ12は、2つのデータラッチXDL0およびXDL1を含む。データラッチXDL0およびXDL1は、各々、1ページの大きさのデータを保持できる。例えば、データラッチXDL0は、複数のデータラッチ群XDL0Uを含む。各データラッチ群XDL0Uは、複数のビット(例えば16ビット)のデータを保持できる。データラッチXDL1は、複数のデータラッチ群XDL1Uを含む。各データラッチ群XDL1Uは、複数のビット(例えば16ビット)のデータを保持できる。
1つのセンスアンプ群SAU、1つのデータラッチ群SDLU、1つのデータラッチ群LDLU、1つのデータラッチ群UDLUは、データバスLBUSにより相互に接続されている。データバスLBUSは、16ビットの幅を有する。このため、データラッチ群SDLU、データラッチ群LDLU、データラッチ群UDLUは、16ビットのデータを並行して互いに送信および受信できる。
1つのセンスアンプ群SAU、1つのデータラッチ群SDLU、1つのデータラッチ群LDLU、1つのデータラッチ群UDLUは、データバスDBUSにより、1つのデータラッチ群XDL0および1つのデータラッチ群XDL1に接続されている。データバスDBUSは、1ビットの幅を有する。このため、データラッチ群SDLU、LDLU、およびUDLUは、データラッチ群XDL0と、1ビットずつデータを送信および受信する。同様に、データラッチ群SDLU、LDLU、およびUDLUは、データラッチ群XDL1と、1ビットずつデータを送信および受信する。
データバスLBUSおよびDBUSにより接続されているセンスアンプ群SAU、およびデータラッチ群SDLU、LDLU、UDLU、XDL0U、ならびにXDL1Uは、1つの組を構成する。センスアンプ群SAU、およびデータラッチ群SDLU、LDLU、UDLU、XDL0U、ならびにXDL1Uの組により、16ビットのデータが扱われる。
センスアンプ群SAU、およびデータラッチ群SDLU、LDLU、UDLU、XDL0U、ならびにXDL1Uは、図5に示される要素および接続を有する。図5は、1組のセンスアンプ群SAU、およびデータラッチ群SDLU、LDLU、UDLU、XDL0U、ならびにXDL1Uの要素および接続を示す。
センスアンプ群SAU、およびデータラッチ群SDLU、LDLU、ならびにUDLUの組は、16個のユニットU(U[0]〜U[15])を含む。
各ユニットUは、1つのビット線BLと接続されており、1つのセンスアンプ回路SAC、1つのデータラッチ回路SDLC、1つのデータラッチ回路LDLC、1つのデータラッチ回路UDLCを含む。センスアンプ回路SACは、接続されたビット線BLに読み出されたデータをセンスし、また、接続されたビット線BLに書き込みデータを転送する。ラッチ回路SDLC、LDLC、およびUDLCは、各々、1ビットのデータを保持する。ユニットU[n](nは0または15以下の自然数)において、センスアンプ回路SAC、およびデータラッチ回路SDLC、LDLC、ならびにUDLCは、各々、データバスLBUS[n]に転送ゲートによって選択的に接続されることが可能であり、データバスLBUS[n]を介して相互に接続されることが可能である。データバスLBUS[0]〜LBUS[15]はみな、データバスDBUSに選択的に接続されることが可能である。
各データラッチ群XDL0Uは、データラッチ回路XDL0C[0]〜XDL0C[15]を含む。データラッチ回路XDL0C[0]〜XDL0C[15]の各々は、データバスDBUSに選択的に接続されることが可能である。
各データラッチ群XDL1Uは、データラッチ回路XDL1C[0]〜XDL1C[15]を含む。データラッチ回路XDL1C[0]〜XDL1C[15]の各々は、データバスDBUSに選択的に接続されることが可能である。
末尾において共通の[n]を伴う要素が互いに関連付けられており、関連付けられた要素の間でデータが転送される。すなわち、例えばデータラッチ回路XDL0C[0]は、データラッチ回路SDLC[0]、UDLC[0]、LDLC[0]とデータを授受し、データラッチ回路XDL1C[1]は、データラッチ回路SDLC[1]、UDLC[1]、LDLC[1]とデータを授受する。
データバスDBUSは、さらに、データバスIOBUSに接続されている。データバスIOBUSとデータバスDBUSとの間の接続は、カラムデコーダ13により制御される。データバスIOBUSは、図2の入出力回路15に接続されている。メモリ100の外部からの書き込みデータはまず、データラッチXDL0またはXDL1により受け取られる。同様に、セルトランジスタMTからの読み出しデータは、メモリ100の外部への出力のために、データラッチXDL0またはXDL1に転送される必要がある。
1−2.動作
第1実施形態のメモリシステム1の動作の例が以下に記述される。メモリシステム1の種々の動作のうち、書き込みおよび読み出しの際のコントローラ200およびメモリ100の動作が記述される。以下の記述は、1セルトランジスタMT当たり2ビットのデータの保持に基づく。そこで、まず、図6を参照して、1セルトランジスタMT当たり2ビットのデータを保持する方法が記述される。図6は、1セルトランジスタ当たり2ビットの書き込みの前および後におけるセルトランジスタの閾値電圧分布を示す。
各セルトランジスタMTの閾値電圧は、保持されるデータに応じて4つの値のいずれかを取る。同じ2ビットデータを保持する複数のセルトランジスタMTであっても、互いに相違する閾値電圧を有し得る。このため、閾値電圧は分布を有する。閾値分布は、例えば、E、A、B、およびCレベルと称される。図6(a)は書き込まれる前の状態(消去状態)を示す。図6(a)に示されるように、セルトランジスタMTは、“E”レベルにある。
図6(b)は書き込まれた状態を示す。図6(b)に示されるように、セルトランジスタMTは、E、A、B、またはCレベルにある。Aレベル中の閾値電圧は、Eレベル中の閾値電圧より高い。Bレベル中の閾値電圧はAレベル中の閾値電圧より高い、Cレベル中の閾値電圧はBレベル中の閾値電圧より高い。
4つのレベルが、2ビットデータの4つの状態と関連付けられる。関連付けの例は、以下の通りである。EレベルのセルトランジスタMTは上位ビットおよび下位ビットにおいて1データを保持している状態として扱われる。AレベルのセルトランジスタMTは上位ビットにおいて1データを保持し、下位ビットにおいて0データを保持している状態として扱われる。BレベルのセルトランジスタMTは上位ビットおよび下位ビットにおいて0データを保持している状態として扱われる。CレベルのセルトランジスタMTは上位ビットにおいて0データを保持し、下位ビットにおいて1データを保持している状態として扱われる。
図6(a)の状態から下位ページ(下位ビット)のみが書き込まれた状態を経ない図6(b)の状態への書き込みは、フルシーケンス書き込みと称される。
読み出しは、各セルトランジスタMTの閾値電圧の割り出しを含む。閾値電圧の割り出しは、例えば、割り出しの対象の各セルトランジスタMTが、E、A、B、およびCレベルのいずれにあるかの割り出しを含む。セルトランジスタのMTのレベルの割り出しは、トランジスタMTの閾値電圧と、読み出し電圧VA、VB、およびVCとの比較を含む。電圧VBは電圧VAより大きく、電圧VCは電圧VBより大きい。
電圧VA未満の閾値電圧を有するセルトランジスタMTは、Eレベルにあると割り出される。電圧VA以上かつ電圧VB未満の閾値電圧を有するセルトランジスタMTは、Aレベルにあると割り出される。電圧VB以上かつ電圧VC未満の閾値電圧を有するセルトランジスタMTはBレベルにあると割り出される。電圧VC以上の閾値電圧を有するセルトランジスタMTはCレベルにあると割り出される。
1−2−1.書き込み
図7を参照して、書き込みの際のコントローラ200およびメモリ100の動作の例が記述される。図7は、第1実施形態の書き込みの際のタイミングチャートを示し、フルシーケンスでの書き込みの例に関する。
図7に示されるように、コントローラ200は、時刻t1から、I/Oバス上で書き込みコマンド80hおよびアドレス信号Addをメモリ100に送信する。アドレス信号は、メモリ100の記憶空間のうちの、データが書き込まれるべき2つのページアドレスを指定する。書き込み先の2ページは、1つのストリングユニットSU中で1つのワード線WLに接続された(全ての)セルトランジスタMTの組による上位ページおよび下位ページである。このような2つのページの指定のために、アドレス信号は、まず、1つのブロックBLK、1つのストリング(ストリングユニットSU)、および1つのワード線WLを指定する。さらに、アドレス信号は、書き込みコマンドの後に送信される書き込みデータが、2ページの大きさであることを明示する。そのための方法の例が、図8を参照して以下に記述される。
図8は、第1実施形態のメモリシステムでのアドレス信号の詳細を示す。図8は、コントローラ200とメモリ100が8ビットの幅のI/Oバスを有し且つアドレス信号を5つの入力サイクルによって転送する例に基づく。図中のI/O0〜I/O7が、I/Oバスを構成し、各々が1ビットのデータを転送する。よって、図8は、A0〜A39によって計40ビットのアドレス信号の送信の例に基づく。
図8に示されるように、例えば第1および第2入力サイクルにおける各々のI/O0〜I/O7(A0〜A15)によって、カラムアドレスが伝送される。カラムアドレスは、アクセス対象のカラムを指定する。1つのカラムは、図4のセンスアンプ群SAU、およびデータラッチ群SDLU、LDLU、UDLU、XDL0U、ならびにXDL1Uの組による扱われる16ビットに相当する。
カラムアドレスによって、例えば1ページ中のカラムの数(=16KB/16=1KB)の2倍の数のカラム(=2KB)の中から1つのカラムが特定されることが可能である。このことは、コントローラ200にとっては、1ページが、メモリ100の実際の1ページの大きさの2倍の大きさ(=16KB×2)を有するように見えることに繋がる。したがって、コントローラ200は、1セルトランジスタMT当たり2ビットの記憶の場合、1つのワード線WLと接続されたセルトランジスタMTの組が、これらのトランジスタMTによる上位ページおよび下位ページの組からなる1つのページを保持するものと認識する。具体的には、図9に示されるように、メモリ100による実際の記憶空間が2p個の16KBの大きさのページを含むのに対し、コントローラ200によって認識されるメモリ100の記憶空間はp個の32KBの大きさのページを含む。なお、本実施形態と異なり1つの書き込みデータが1ページの大きさである場合、カラムアドレス信号は1ページの大きさのカラムを指定する。
図8に戻る。第3入力サイクルのI/O0およびI/O1(A16〜A17)によって、ストリングアドレスが伝送される。ストリングアドレスは、アクセス対象のストリング(ストリングユニットSU)を指定する。また、第3入力サイクルのI/O2〜I/O7(A18〜A23)によって、ワード線アドレスが伝送される。ワード線アドレスは、アクセス対象のワード線WLを指定する。
第4入力サイクルのI/O0(A24)によって、プレーンアドレスが伝送される。プレーンアドレスは、メモリ100が複数のプレーンを有する場合にアクセス対象のプレーンを指定する。プレーンは、メモリセルアレイ10、センスアンプモジュール11、ページバッファ12、カラムデコーダ13、およびロウデコーダ14の組を含む。
第4入力サイクルのI/O1〜I/O7および第5入力サイクルのI/O0〜I/O3(A25〜A35)によって、ブロックアドレスが伝送される。ブロックアドレスは、アクセス対象のブロックBLKを指定する。第5入力サイクルのI/O4〜I/O6(A36〜A38)によって、チップアドレスが伝送される。チップアドレスは、メモリシステムが複数のメモリ100を有する場合にアクセス対象のメモリ100を指定する。
カラムアドレスが、2ページの大きさに等しいビット数のカラムを指定できることにより、アドレス信号は上位ページまたは下位ページを指定するためのビットの割り当てを必要としなくなる。この場合、図10に示されるように、上位または下位ページの指定のための情報をあるビット(例えばA16)に割り当てることを排し、後続のビット(A17以降)を1つ前のビットにシフトさせることができる。図10は、上位ページおよび下位ページの指定を要するアドレス信号の例を示す。
図7に戻る。コントローラ200は、時刻t2から下位ページに書き込まれるデータ(LowerDIN)をメモリ100に送信する。さらにコントローラ200は、データLowerDINに続けて、上位ページに書き込まれるデータ(UpperDIN)をメモリ100に送信する。データLowerDINは、シーケンサ17によって、2つのデータラッチXDL0およびXDL1の一方(例えばデータラッチXDL0。以下の記述はこの例に則る。)に保持され、データUpperDINは、2つのデータラッチXDL0およびXDL1の他方(例えばデータラッチXDL1。以下の記述はこの例に則る。)に保持される。書き込みの開始の時点で、データラッチXDL0およびXDL1は、いずれも有効なデータを保持しておらず、書き込みデータを受け入れることができる。
データLowerDINおよびUpperDINは連続して送信され、データLowerDINおよびUpperDINの境界は明示されない。このため、シーケンサ17は、データの受信の開始とともに、この受け取られたデータを、まず、データラッチXDL0に保持し始める。そして、シーケンサ17は、1ページの大きさのデータがデータラッチXDL0に保持され終わると、受け取られた1ページの大きさのデータに後続する別の1ページの大きさのデータを、受け取りの開始とともにデータラッチXDL1に保持し始める。こうして、2ページの大きさのデータの先頭から1ページの大きさの部分(データLowerDIN)がデータラッチXDL0に保持され、後続の1ページの大きさの部分(データUpperDIN)がデータラッチXDL1に保持される。シーケンサ17は、データラッチXDL0およびXDL1のいずれがデータLowerDINまたはUpperDINを保持しているかを認識している。
コントローラ200は、さらに、データUpperDINに続けて、コマンド10hをメモリ100に送信する。コマンド10hは、フルシーケンス書き込みの開始を指示する。シーケンサ17は、メモリ100によってコマンド10hが受け取られたことに基づいて、フルシーケンス書き込みの開始の指示を認識する。具体的には、シーケンサ17は、アドレス信号Addにより指定されるブロックBLK中の指定されたストリングユニットSU中の指定されたワード線WLと接続されたセルトランジスタMTの組の記憶空間に、2ページの大きさのデータをフルシーケンス書き込みによって書き込むことを認識する。メモリ100は、コマンド10hを受け取ると、時刻t3から、ビジー状態に移行し、レディー・ビジー信号R/Bによってビジー状態を示す。
フルシーケンス書き込みは、ポンプセットアップ(PMP ON)、データ転送、書き込み、ポンプリカバリ等の動作を含んでいる。ポンプセットアップは、電圧生成回路16による書き込みに必要な電圧の生成を指し、ワード線WL、および選択ゲート線SGDならびにSGSへ印加される電圧の生成、データバスDBUSの動作に必要な電圧の生成を含む。ポンプリカバリ(PMP RCV)は、電圧生成回路16の初期化を指す。
データ転送は、ラッチXDL0中のデータLowerDINをデータラッチSDL、UDL、ならびにLDLの1つ(例えばデータLDL。以下の記述はこの例に則る。)へ転送すること(XtoL)、およびデータラッチXDL1中のデータUpperDINをデータラッチSDL、UDL、ならびにLDLの別の1つ(例えばデータラッチUDL。以下の記述はこの例に則る。)へ転送すること(XtoU)を含む。
書き込みは、ワード線WL、選択ゲート線SGDならびにSGSへの所定の電位の印加、および書き込まれたデータのベリファイ等を含む。書き込みの結果、書き込み先のアドレスにより指定される上位ページおよび下位ページに、データが書き込まれる。すなわち、シーケンサ17は、データLowerDINおよびUpperDINから、選択(指定)されたワード線(選択ワード線)WLと接続されたセルトランジスタMTの各々が、Eレベルに維持されるべきか、またはA、B、およびCレベルのいずれに書き込まれるべきかを割り出す。次いで、シーケンサ17は、センスアンプモジュール11およびロウデコーダ14の制御を通じて、選択ワード線WLと接続された各セルトランジスタMTをEレベルに維持するか、あるいはA、B、またはCレベルの閾値電圧に設定する。ベリファイを含めてデータの書き込みが終了すると、シーケンサ17は、ポンプリカバリを行う。ポンプリカバリが終了すると、レディー・ビジー信号R/Bによってレディー状態を示す。こうして、コントローラ200及びメモリ100による書き込み動作が終了する。
1−2−2.読み出し
図11および図12を参照して、読み出しの際のコントローラ200およびメモリ100の動作の例が記述される。図11および図12は、第1実施形態のメモリシステムでの読み出し際のタイミングチャートを示す。
読み出しは2つの方法を含む。第1の読み出しは、1つのワード線WLと接続されたセルトランジスタMTの組の記憶空間の上位および下位ページの両方を1組のコマンドにより指定する。第2の読み出しは、1つのワード線WLと接続されたセルトランジスタMTの組の記憶空間中の上位ページのみまたは下位ページのみを1組のコマンドにより指定する。図11は第1の読み出しの例に基づき、図12は第2の読み出しの例に基づく。
第1の読み出しでは、図11に示されるように、時刻t11から、コントローラ200は、読み出しコマンド00hおよびアドレス信号Addをメモリ100に送信する。コマンド00hは、後続のアドレス信号Addにより指定されたワード線WLと接続されたセルトランジスタMTからの読み出しを指示する。アドレス信号Addは、書き込みの場合と同じく、カラムアドレスによって2ページの大きさのカラムの少なくとも1つを指定する(図8を参照されたい)。コントローラ200は、次いで、コマンド30hをメモリ100に送信する。コマンド30hは、読み出しの開始を指示する。
コマンド30hがメモリ100によって受け取られると、シーケンサ17は、時刻t12から、ポンプセットアップを行い、次いで読み出しを行う。読み出しは、ワード線WL、および選択ゲート線SGDならびにSGSへの所定の電位の印加等を含む。読み出しは、指定されたワード線WLと接続された(読み出し対象の)各セルトランジスタMTの閾値電圧の割り出しを含む。
図11は、A、B、およびCレベルの順の割り出しの例を示す。まず、シーケンサ17は、読み出し対象のセルトランジスタMTが、電圧VA以上の大きさの閾値電圧を有するかを割り出す(A読み出し(AR))。電圧VA未満の閾値電圧を有するセルトランジスタMTは、Eレベルにあると割り出される。次に、シーケンサ17は、全ての読み出し対象のセルトランジスタMTのうちEレベルにあると割り出されたものを除くセルトランジスタ(B読み出し対象のセルトランジスタ)MTが、電圧VB以上の大きさの閾値電圧を有するかを割り出す(B読み出し(BR))。B読み出し対象のセルトランジスタMTのうち、電圧VB未満の大きさの閾値電圧を有するセルトランジスタMTはAレベルにあると割り出される。
同様にして、シーケンサ17は、全ての読み出し対象のセルトランジスタMTのうちEまたはAレベルにあると割り出されたものを除くセルトランジスタ(C読み出し対象のセルトランジスタ)MTが、電圧VC以上の大きさの閾値電圧を有するかを割り出す(C読み出し(CR))。C読み出し対象のセルトランジスタMTのうち、電圧VC未満の大きさの閾値電圧を有するセルトランジスタMTはBレベルにあると割り出され、電圧VC以上の大きさの閾値電圧を有するセルトランジスタMTはCレベルにあると割り出される。
シーケンサ17は、割り出されたセルトランジスタMTのレベルを用いて、下位ページの読み出しデータ(LowerDOUT)および上位ページの読み出しデータ(LowerDOUT)を作成する。データLowerDOUTは、読み出し対象のセルトランジスタMTの組の中の各セルトランジスタMTの下位ビットの値の組を含む。データUpperDOUTは、読み出し対象のセルトランジスタMTの組の中の各セルトランジスタMTの上位ビットの値の組を含む。データLowerDOUTは、例えばデータラッチLDLに保持され、データUpperDOUTは、例えばデータラッチUDLに保持される。
次に、シーケンサ17は、時刻t13から、データラッチLDL中のデータLowerDOUTを2つのデータラッチXDL0およびXDL1の一方(例えばXDL0。以下の記述はこの例に則る。)に転送する。さらに、シーケンサ17は、データラッチUDL中のデータUpperDOUTを2つのラッチXDL0およびXDL1の他方(例えばXDL1。以下の記述はこの例に則る。)に転送する。データラッチXDL0およびXDL1中のデータLowerDOUTおよびUpperDOUTは、シーケンサ17の制御により、コントローラ200に送信される。次いで、シーケンサ17は、ポンプリカバリを行い、読み出しを終了する。
第2の読み出しでは、図12に示されるように、コントローラ200は、読み出しコマンド00hの前にプリフィックスコマンドXXhまたはYYhをメモリ100に送信する。プリフィックスコマンドXXhは、続く読み出しコマンド00hが下位ページからの読み出しを指示することを示す。プリフィックスコマンドYYhは、続く読み出しコマンド00hが、上位ページからの読み出しを指示することを示す。
メモリ100は、コマンドXXhおよび00hを続けて受け取ると、続くアドレス信号Add1により指定されるセルトランジスタMTの組の下位ページからデータを読み出す。下位ページからのデータの読み出しの詳細は、あるレベルと上位ビットおよび下位ビットへの値の割り当てに依存して相違する。図6の例に基づく例は以下の通りである。シーケンサ17は、A読み出しおよびC読み出しを行う。AおよびC読み出しの結果、EレベルまたはCレベルにあるトランジスタMTが特定される。EまたはCレベルにあるセルトランジスタMTは、下位ビットにおいて1データを保持する。このことに基づいて、下位ページのデータLowerDOUTが生成される。生成されたデータLowerDOUTは例えばデータラッチLDLに保持され、次いでデータラッチXDL0に転送され、コントローラ200に送信される。
一方、メモリ100は、コマンドYYhおよび00hを続けて受け取ると、続くアドレス信号Add2により指定されるセルトランジスタMTの組の上位ページからデータを読み出す。上位ページからのデータの読み出しの詳細は、あるレベルと上位ビットおよび下位ビットへの値の割り当てに依存して相違する。図6の例に基づく例は以下の通りである。シーケンサ17は、B読み出しを行う。B読み出しの結果、EまたはAレベルにあるトランジスタMTが特定される。EまたはAレベルにあるセルトランジスタMTは、上位ビットにおいて1データを保持する。このことに基づいて、上位ページのデータUpperDOUTが生成される。生成されたデータUpperDOUTは例えばデータラッチUDLに保持され、次いでデータラッチXDL1に転送され、コントローラ200に送信される。
上位ページまたは下位ページからの読み出しは、コントローラ100にとって、指定したワード線WLと接続されたセルトランジスタMTの組による16KB×2の大きさのページの前半または後半からの読み出しに相当する。
1−3.効果(利点)
第1実施形態によれば、以下の利点を得られる。まず、比較のために、メモリでのデータの入出力のための1つのデータラッチ(例えばデータラッチXDL)のみを有するメモリに対するフルシーケンス書き込みの例が図13を参照して記述される。図13に示されるように、コントローラは、書き込みコマンドUUh、アドレス信号Add1、データLowerDIN、コマンドWWhをメモリに送信する。アドレス信号Add1は、ブロック、ストリング、およびワード線、ならびに上位ページまたは下位ページを指定する。受け取られたデータLowerDINはデータラッチXDLに保持される。コマンドWWhは1ページ目のデータが送信されたことを示し、メモリはコマンドWWhを受け取ると、ポンプセットアップを行い、データLowerDINをデータラッチ(例えばデータラッチLDL)に転送し(XtoL)、ポンプリカバリを行う。データLowerDINの転送の完了により、データラッチXDLは再びデータを受け入れることができる。
メモリがレディー状態になると、コントローラは、書き込みコマンドUUh、アドレス信号Add2、データUpperDIN、コマンドZZhをメモリに送信する。受け取られたデータLowerDINはデータラッチXDLに保持される。コマンドZZhは、フルシーケンス書き込みの開始を指示し、これを受けてメモリは、ポンプセットアップを行い、データUpperDINをデータラッチ(例えばデータラッチUDL)に転送する(XtoU)。この結果、フルシーケンス書き込みの開始の準備が整い、メモリはフルシーケンス書き込みを行う。
一方、第1実施形態によれば、メモリ100は、データバスIOBUSと接続された2つのデータラッチXDL0およびXDL1を有する。このため、メモリ100は、データラッチXDL0またはXDL1からの別のデータラッチ(データラッチLDLまたはUDL等)へのデータの転送を要することなく、2ページ分のデータをデータラッチXDL0およびXDL1によって保持できる。よって、メモリ100は、フルシーケンス書き込みのための2ページの大きさのデータを連続して(1つの書き込みコマンドに後続して)受け取ることができる。このことは、図13の比較例のように、2回の書き込みコマンドUUhの送信の必要性を排する。この結果、図13との比較から明らかなように、第1実施形態は、1回のポンプセットアップおよび1回のポンプリカバリしか必要としない。この結果、第1実施形態でのフルシーケンス書き込みに要する時間は、図13の例でのものより短い。
読み出しの場合も同様である。すなわち、比較のための例のコントローラおよびメモリでの2ページの連続した読み出しでは、図14に示されるように、2つの読み出しコマンド00hが送信される必要がある。このため、下位ページ読み出しと上位ページ読み出しの各々のためのポンプセットアップおよびポンプリカバリが必要である。
一方、第1実施形態によれば、図11から分かるように、2ページの読み出しのために、1回のポンプセットアップおよびポンプリカバリのみを要する。このため、第1実施形態での2ページの連続した読み出しに要する時間は、図14例でのものより短い。
さらに、第1実施形態によれば、プリフィックスコマンドXXhおよびYYhの導入により、下位または上位ページのみの読み出しも可能である。3以上の連続したページの読み出しでは、1つの書き込みコマンドで上位および下位ページの読み出しを指示する方が図14の読み出しより効率が良い。一方、上位または下位ページのみの読み出しでは、図12の読み出しの方が図11の読み出しより効率が良い。2つの読み出しのいずれも可能とすることにより、メモリ100の利便性は高い。
[第2実施形態]
第2実施形態に係るNAND型フラッシュメモリが、図15〜図20を参照して記述される。
2−1.構成
第2実施形態に係るNAND型フラッシュメモリは、センスアンプモジュール11およびページバッファ12の構成の点において、第1実施形態と異なる。その他の構成については、第1実施形態と同じである。
第2実施形態のセンスアンプモジュール11およびページバッファ12は、図15に示される要素および接続を有する。図15は、第2実施形態のセンスアンプモジュール11およびページバッファ12の機能ブロックを示す。図15に示されるように、第2実施形態では、1つのセンスアンプ群SAU、1つのデータラッチ群SDLU、1つのデータラッチ群LDLU、1つのデータラッチ群UDLUは、データバスDBUS0により1つのデータラッチ群XDL0Uに接続され、かつデータバスDBUS1により1つのデータラッチ群XDL1Uに接続されている。データバスDBUS0およびDBUS1は、1ビットの幅を有する。
図16は、1つのセンスアンプ群SAU、1つのデータラッチ群SDLU、1つのデータラッチ群LDLU、1つのデータラッチ群UDLU、1つのデータラッチ群XDL0U、1つのデータラッチ群XDL1Uの詳細を示す。
データバスLBUS[0]〜LBUS[15]はみな、データバスDBUS0に選択的に接続されることが可能であり、かつデータバスDBUS1に選択的に接続されることが可能である。
データバスDBUS0は、スイッチSW11を介して、データバスDBUS0aに接続されている。データバスDBUS0aは1ビットの幅を有し、また、データラッチ回路XDL0C[0]〜XDL0C[15]の各々に、選択的に接続されることが可能である。データバスDBUS0aは、さらに、スイッチSW12を介してデータバスIOBUSに接続されている。
データバスDBUS1は、スイッチSW21を介して、データバスDBUS1aに接続されている。データバスDBUS1aは1ビットの幅を有し、また、データラッチ回路XDL1C[0]〜XDL1C[15]の各々に、選択的に接続されることが可能である。データバスDBUS1aは、さらに、スイッチSW22を介してデータバスIOBUSに接続されている。
スイッチSW11、SW12、SW21、SW22は、例えばMOSFET(metal oxide semiconductor field effect transistor)であり、カラムデコーダ13およびシーケンサ17によりオンまたはオフされる。スイッチSW11は、データラッチXDL0(すなわちデータバスDBUS0a)とデータバスDBUS0(ひいてはデータバスLBUS[0]〜LBUS[15])の接続のためにオンされる。スイッチSW12は、データバスDBUS0aとデータバスIOBUSの接続のためにオンされる。スイッチSW21は、データラッチXDL1(すなわちデータバスDBUS1a)とデータバスDBUS1(ひいてはLBUS[0]〜LBUS[15])の接続のためにオンされる。スイッチSW22は、データバスDBUS1aとデータバスIOBUSの接続のためにオンされる。スイッチSW11およびSW21の一方がオンしている間、他方はオフに維持される。スイッチSW12およびSW22の一方がオンしている間、他方はオフに維持される。
2−2.動作
第2実施形態のメモリシステム1の動作の例が以下に記述される。特に、2つの書き込みのケースにおけるコントローラ200およびメモリシステム100の動作が記述される。第1の書き込みは、通常の書き込みである。第2の書き込みは、書き込み中に割り込み処理が入った場合の書き込みである。
2−2−1.第1書き込み例
第1書き込み例が、図17を参照して記述される。図17は、第2実施形態のメモリシステムでの書き込みの際のタイミングチャートを示し、1つの書き込みコマンド80hで1ページの大きさのデータの書き込みを指示し、かつ複数のページへの連続した書き込みの指示の例に基づく。書き込みの開始の時点で、データラッチXDL0およびXDL1は、いずれもデータを保持していない。
図17に示されるように、コントローラ200は、時刻t31から、I/Oバス上で書き込みコマンド80hおよびアドレス信号Add1をメモリ100に送信する。アドレス信号Add1は、アドレス信号Add1に続く書き込みデータData1の書き込み先を指定し、具体的には1つのブロック中の1つのストリング中の1つのワード線WL、および下位ページまたは上位ページを指定する。データData1は、メモリ100によって受け取られると、シーケンサ17の制御によって、データラッチXDL0およびXDL1の空いている方に保持される。例として、データData1は、データラッチXDL0に保持される。コントローラ200は、データData1の出力を終えると、コマンド15hをメモリ100に送信する。コマンド15hは、さらなる書き込みデータの存在を示す。
コマンド15hがメモリ100によって受け取られると、シーケンサ17は、時刻t32からデータData1の書き込みを開始する。その一環として、シーケンサ17は、データラッチXDL0中のデータData1を使用して種々の演算を行う。演算の実行のために、シーケンサ17は、データラッチXDL0中のデータData1をデータラッチSDL、UDL、およびLDLのいずれかに転送する。転送は、数回起こり得る。データラッチXDL0でのデータData1の保持は時刻t35まで継続する。また、データData1の書き込みは時刻37まで継続し、指定されたセルトランジスタMTにデータData1が書き込まれる。
コマンド15hがメモリ100によって受け取られると、メモリ100は時刻t32においてビジー状態になるが、すぐに時刻t33においてレディー状態に復帰する。データラッチXDL0にはデータが依然保持されておりかつデータラッチXDL0からのデータの転送を含めてデータData1の書き込みは時刻t33においても継続しているものの、メモリ100がデータラッチXDL1によってさらなる書き込みデータを受け入れ可能だからである。
コントローラ200は、メモリ100がレディー状態であることを知り、時刻t33の後、次の書き込みコマンド80hをメモリ100に送信する。続けて、コントローラ200は、アドレス信号Add2、書き込みデータData2、コマンド15hをメモリ100に送信する。データData2は、メモリ100によって受け取られると、シーケンサ17の制御によって、データラッチXDL0およびXDL1の空いている方(本例ではデータラッチXDL1)に保持される。コントローラ200は、書き込みデータData2の出力を終えると、時刻t34からコマンド15hをメモリ100に送信する。これに基づいて、シーケンサ17は、データData1についてと同様にして、時刻t37からデータData2を指定されたセルトランジスタMTに書き込む。この書き込みの間も、データData2はデータラッチXDL1に保持され続ける。
メモリ100は、コマンド15hを受け取ると、ビジー状態に移行する。ビジー状態は、データラッチXDL0によるデータData1の保持の終了(時刻t35)まで継続する。データラッチXDL0およびXDL1の両方にデータが保持されていて、メモリ100がさらなるデータを受け入れることができないからである。時刻t35においてデータラッチXDL0が解放されると、メモリ100はレディー状態に移行する。
コントローラ200は、メモリ100がレディー状態に移行したことを知り、時刻t36からデータData3の書き込みのためのコマンド、アドレス信号Add3、データの送信を行う。データData3は、時刻t35においてデータの保持を終了したデータラッチXDL0に保持される。データData3のための時刻t36からの動作は、データData1またはData2のための動作と同様である。
2−2−2.第2書き込み例
第2書き込み例が、図18を参照して記述される。図18は、第2実施形態のメモリシステムでの書き込みの際のタイミングチャートを示す。図18に示されるように、コントローラ200は、時刻t41から、書き込みコマンド80h、アドレス信号Add1、書き込みデータData1をメモリ100に送信する。メモリ100が書き込みデータData1を受け取り始めると、シーケンサ17は書き込みデータData1をデータラッチXDL0およびXDL1の空いている方(例えばデータラッチXDL0。以下の記述はこの例に則る。)に保持し始める。
次いで、コントローラ200は、例えばホスト機器300から、書き込みコマンド80hに起因する書き込みの完了の前にデータの読み出しを指示される。この指示に基づいて、コントローラ200は、時刻t42において、データData1の送信を中断する。時刻t42の時点で、データラッチXDL0は、すでに受け取った、書き込みデータData1の先頭からの部分Data1(a)を保持しており、この部分を引き続き、保持し続ける。
また、コントローラ200は、時刻t42から、読み出しコマンドX0hをメモリ100に送信する。読み出しコマンドX0hは、先行する書き込みコマンド80hと、後続のアドレス信号および書き込み開始コマンド(例えばコマンド15h)の送信前に発行されることが可能である。すなわち、メモリ100は、書き込みコマンド80hの受信の後、対の書き込み開始コマンド15hの受信前に受け取られた読み出しコマンドX0hを、正しい手順に則って発行されたコマンドとして認識する。
コントローラ200は、コマンドX0hに続いて、アドレス信号Add2および読み出し開始コマンド30hをメモリ100に送信する。アドレス信号Add2は、読み出し元のアドレスを指定する。
コマンド30hがメモリ100によって受け取られると、シーケンサ17は、指定されたアドレスからデータData2を読み出す。データData2は、データラッチSDL、UDL、およびLDLのいずれかに読み出され、さらに、メモリ100からの出力に備えて、データラッチXDL0およびXDL1の空いている方(本例では、データラッチXDL1)に転送される。
コントローラ200は、コマンド30hの送信の後に読み出しデータのメモリ100からの出力の準備のための時間が必要であることを認識している。そこで、コントローラ200は、この準備のための時間を利用して、書き込みデータData1の送信の再開を行う。具体的には、コントローラ200は、コマンド30hの送信後の時刻t43から、データData1bをI/Oバス上で、メモリ100に送信する。データData1(b)は、データData1のうちのデータData1(a)に続く部分である。シーケンサ17は、書き込みコマンド80hと対をなす書き込み開始コマンド15hをまだ受信していないことに基づいて、データData1(b)が、書き込みコマンド80hによる書き込み対象のデータであることおよびデータData1(a)に後続する部分であることを認識する。この認識に基づいて、シーケンサ17は、データData1(b)を、データラッチXDL0のうちのデータData1(a)に続く部分に保持する。
データData1(b)の送信後の時刻t44から、コントローラ200は、コマンドX1hをメモリ100に送信する。コマンドX1は、データData1の一部(データData1(b))の送信が終了したことおよびデータData1のさらなる部分の送信が終わっていないことを示す。シーケンサ17は、コマンドX1hの受信に基づいて、データData1(b)のメモリ100への送信の終了によりデータData2の出力が可能であることを知る。このことに基づいて、シーケンサ17は、時刻t45から、データラッチXDL1中のデータData2をI/Oバス上でコントローラ200に送信する。
コントローラ200は、読み出しデータData2を受け取り終えると、書き込みデータData1の送信を再開する。そのために、コントローラ200は、時刻t46から、コマンドX2hをメモリ100に送信する。コマンドX2hは、後続のデータData1(c)の送信の開始を示すとともに、データData1(c)が、データData1のうちの最後に送信された部分(データData1(b))に後続する部分であることを示す。コントローラ200は、コマンドX2hに続けて、データData1(c)をメモリ100に送信する。データData1(c)は、メモリ100によって受け取られると、シーケンサ17の制御によってデータラッチXDL0のうちのデータData1(b)に続く部分に保持される。こうして、書き込みデータData1の全体が、データラッチXDL0に保持されるに至る。
コントローラ200は、データData1cの送信が完了すると、書き込み開始コマンド15hをメモリ100に送信する。コマンド15hがメモリ100によって受け取られると、シーケンサ17は、データラッチXDL0中の書き込みデータData1を、アドレス信号Add1により指定されたセルトランジスタMTに書き込む。
なお、図18は、データラッチXDL1が、データData2を、出力後も保持する例を示す。この例に基づいて、メモリ100は、コマンド15hの受領後、ビジー状態に移行する。データラッチXDL0およびXDL1がデータを保持しているからである。しかしながら、データData2の出力後、データラッチXDL1が解放されてもよい。こうすることにより、メモリ100は、コマンド15hの受領後、速やかにレディー状態に戻って、データラッチXDL1を使用したさらなる動作を行うことができる。
2−2−3.その他
第2実施形態の構成において、第1実施形態の動作が行われることも可能である。すなわち、書き込みの際は、フルシーケンス書き込みのための上位ページおよび下位ページのデータが、1つの書き込みコマンドの後に、続けてメモリ100により受け取られる。読み出しの際は、1つの読み出しコマンドに応答して、上位ページのデータおよび下位ページのデータの一方がデータラッチXDL0およびXDL1の一方に、他方がデータラッチXDL0およびXDL1の他方に保持される。
2−3.効果(利点)
第2実施形態によれば、以下の利点を得られる。まず、比較のために、入出力のための1つのデータラッチ(例えばデータラッチXDL)のみを有するメモリに対する複数ページへの連続した書き込みの例が図19を参照して記述される。図19に示されるように、メモリ100は、データData1およびコマンド15hを受け取ると、時刻t52においてビジー状態に移行する。データData1を用いた演算のためにデータData1のデータラッチSDL、LDL、またはUDLへの繰り返しの転送が必要であり、そのためにデータData1によりデータラッチXDLが使用されているからである。また時刻t52からデータData1のセルトランジスタへの書き込みが開始する。
コントローラは、データラッチXDLが解放されてメモリがレディー状態に移行するまで、次の書き込みコマンドおよびデータの送信を保留している必要がある。データラッチXDLでのデータData1の保持の必要性が消滅し、時刻t53においてメモリがレディー状態に移行すると、コントローラはさらなる書き込みコマンド80h、アドレス信号Add2、およびデータData2をメモリに送信する。メモリは、書き込みデータData2を受け取ると、書き込みのためにデータData2をデータラッチSDL、LDL、またはUDLに送信するとともに書き込みを開始する。ところが、データData2の大きさが大きい場合等、データラッチXDLによるデータData2の受信に時間を要し、データラッチSDL、LDL、またはUDLへの転送の開始および書き込みの開始が遅れる場合がある。転送および書き込みは時刻t55において開始する。
他方、データData1の書き込みは時刻t55に先立つ時刻t54で終了している。このため、メモリは、時刻t54から書き込みを開始できるにも関わらず、データData2の書き込みのための準備が完了していないため、時刻t54から時刻t55に亘って待ち時間を有することになる。この待ち時間は、書き込みデータData2のコントローラからメモリへの転送が保留されたことに起因する。
一方、第2実施形態によれば、メモリ100は、データバスIOBUSと接続された2つのデータラッチXDL0およびXDL1を有する。このため、一方のデータラッチXDL0があるデータにより使用されている間も、メモリ100は他方のデータラッチXDL1によって別のデータをコントローラ200から受け取ることができる。よって、図17から分かるように、メモリ100は、書き込み開始コマンド15hの受信後、すぐに時刻t33においてレディー状態に移行し、次の書き込みコマンド80hおよびデータData2を受け取ることができる。このため、時刻t37でのデータData1の書き込み完了の時点で、データData2の書き込みの準備が完了している。よって、データData1の書き込みの完了に続けてデータData2の書き込みを開始できる。この結果、メモリ100による複数のページへの連続した書き込みに要する時間は、図19のものより短い。
また、書き込みデータのメモリへの送信中の読み出しの割り込みの場合も同様である。まず、比較のために、メモリからの入出力のための1つのデータラッチ(例えばデータラッチXDL)のみを有するメモリに対する書き込みデータの送信中の読み出しの割り込みの例が、図20を参照して記述される。図20に示されるように、時刻t62において、メモリが、書き込みデータData1の全体を受け取る前に読み出しコマンドY0hを受け取ると、読み出しデータの保持に備えてデータラッチXDLを解放するための動作を行う。すなわち、シーケンサは、時刻t63から、データラッチXDL中のデータData1の受け取り済の部分をデータラッチSDL、LDL、またはUDLに転送する。この転送のためにデータラッチSDL、LDL、またはUDLが使用されるため、読み出し元のセルトランジスタからデータが読み出されることができず、時刻t63から時刻t64に亘って待ち時間が生じる。
データData1の転送が完了すると、シーケンサは続く時刻t64からデータData2を読み出し元のセルトランジスタからの読み出しを開始する。読み出されたデータData2は、データラッチXDLからコントローラに送信される。次いで、シーケンサは、メモリがコマンドY2hを受け取ったことに基づいて、データラッチSDL、UDL、またはLDL中の書き込みデータData1の一部をデータラッチXDLに転送する。転送が完了すると、コントローラは、書き込みデータData1の転送の再開を示すコマンドY3hの送信後、時刻t66からデータData1の残りの部分を転送する。
このように、データData1のデータラッチXDLからの転送およびデータラッチXDLへの転送が必要であり、これらの転送の間、待ち時間が生じる。データラッチXDLと、データラッチSDL、LDL、またはUDLが1ビットの幅のデータバスで接続されているため、データラッチXDLと、データラッチSDL、LDL、またはUDLとの間のデータの転送は長時間を要する。よって長時間を要する転送が複数回行われることが、メモリの動作の速度を抑制している。
一方、第2実施形態によれば、図18から分かるように、メモリ100は、データの読み出しのために、データラッチXDL0中のデータData1(a)をデータラッチSDL、LDL、またはUDLに転送する必要を有しない。このため、メモリ100は、割り込みの読み出しコマンドX0hの受信後すぐに、データData2をセルトランジスタMTから読み出し始めることができる。よって、書き込みデータのメモリへの転送中に読み出しを指示された場合に、読み出しを完了するまでに要する時間は、図20のものより短い。
[第3実施形態]
第3実施形態に係るNAND型フラッシュメモリが、図21〜図24を参照して記述される。第3実施形態は第2実施形態に基づき、メモリ100はセンスアンプモジュール11とページバッファ12との間においてXOR(排他的論理和)演算回路をさらに含んでいる。
3−1.構成
第3実施形態に係るNAND型フラッシュメモリは、センスアンプモジュール11およびページバッファ12の構成の点において、第2実施形態と異なる。その他の構成については、第2実施形態と同じである。
メモリ100は、図21に示されるセンスアンプモジュール11およびページバッファ12の接続を有し、およびセンスアンプモジュール11とページバッファ12との間において図21に示される要素および接続を有する。図21は、センスアンプモジュール11およびページバッファ12、ならびにこれらの間のうち、16のビット線BLに関連する部分のみを示す。第1および第2実施形態と同様に、図21に示される構成が、16のビット線BLの複数の組の各々に対して設けられている。
図21に示されるように、メモリ100は、XOR演算回路50および乱数シード生成部50gさらに含む。XOR演算回路50は、書き込みデータをランダム化する。また、XOR演算回路50は、セルトランジスタMTから受け取ったデータから、ランダム化前のデータ(すなわち書き込みの際にコントローラ200から受け取られた書き込みデータ)を復元する。
データバスDBUS0aのスイッチSW12と反対の端は、第2実施形態(図17)でのスイッチSW11に代えてXOR演算回路50に接続されている。データバスDBUS1aのスイッチSW22と反対の端は、第2実施形態でのスイッチSW21に代えてXOR演算回路50に接続されている。XOR演算回路50は、また、スイッチSW11を介してデータバスDBUS2に接続されている。データバスDBUS2は、1ビットの幅を有し、データバスLBUS[0]〜LBUS[15]に転送ゲートによって選択的に接続されることが可能である。XOR演算回路50は、乱数シード生成部50gから乱数シードを受け取る。
XOR演算回路50は、例えば図22に示される構成を有する。図22は、第3実施形態のメモリの一部の要素および接続を示す。図22に示されるように、XOR演算回路50は、ランダム化回路51および復号回路52を含む。
ランダム化回路51は、n型のMOSFET NMOS0およびNMOS1、ならびにスイッチSW01、SW02、およびSW03を含む。スイッチSW01、SW02、およびSW03は、例えばMOSFETである。トランジスタNMOS0およびNMOS1の各々の一端は、スイッチSW03を介してノードAに接続されている。ノードAは、スイッチSW11を介してバスDBUS2に接続されている。トランジスタNMOS0の他端は、スイッチSW01を介してデータバスDBUS0aに接続されているとともに、トランジスタNMOS1のゲートに接続されている。トランジスタNMOS1の他端は、スイッチSW02を介してデータバスDBUS1aに接続されているとともに、トランジスタNMOS0のゲートに接続されている。
復号回路52は、MOSFET NMOS3およびNMOS4、ならびにスイッチSW10、SW20、およびSW30を含む。スイッチSW10、SW20、およびSW30は、例えばMOSFETである。トランジスタNMOS4の一端は、スイッチSW30を介してノードAに接続されている。トランジスタNMOS4の他端は、スイッチSW10を介してデータバスDBUS1aに接続されている。トランジスタNMOS4のゲートは、スイッチSW20を介してデータバスDBUS0に接続されている。トランジスタNMOS3は、トランジスタNMOS4の他端とゲートとの間に接続されている。トランジスタNMOS3のゲートは、スイッチSW30を介してデータバスDBUS2に接続されている。
スイッチSW01、SW02、SW03、SW10、SW20、SW30、SW40、およびSW41は、シーケンサ17により制御される。
データバスDBUS0aは、ランダム化回路51および復号回路52をバイパスできるように、スイッチSW40を介してノードAに接続されている。同様に、データバスDBUS1aは、ランダム化回路51および復号回路52をバイパスできるように、スイッチSW41を介してノードAに接続されている。
乱数シード生成部50gは、ノードAに接続されている。
3−2.動作
まず、メモリシステム1の動作の説明に先立ち、XOR演算回路50の動作が記述される。
コントローラ200からメモリ100によって受け取られた書き込みデータは、データ中のビット列における“1”ビットの偏在および“0”ビットの偏在を緩和するために、ビットの並びのランダム化を施される場合がある。偏在の緩和により、書き込みデータの信頼性が向上する。ランダム化は、ランダム化回路51を使用して行われる。
ランダム化される書き込みデータは、データラッチXDL1に保持される。ランダム化のために、シーケンサ17は、スイッチSW03をオンし、スイッチSW30をオフし、乱数シード生成部50gを制御して乱数シード生成部50gからの乱数シードを、データラッチXDL0に保持する。乱数シードは、例えば1ページ中のビットの数と同じ数のビットの列を含んでおり、ビット列において“1”および“0”のビットが無作為に決定された順序で並んでいる。よって、各データラッチ回路XDL0C[0]〜XDL0C[15]に、無作為に決定された配置で1ビットの値(“0”または“1”データ)が保持されている。
以下では、図22に示される構成について記述される。しかしながら、以下の記述の動作が、図22と同じ構成を有する図22と別の部分においても並行して行われる。
ランダム化の間、スイッチSW10、SW20、SW30、SW40、およびSW41はオフに維持され、スイッチSW11はオンに維持される。またランダム化の開始の時点で、スイッチSW01、SW02、およびSW03はオフしている。
シーケンサ17は、以下に記述される、書き込みデータ中の1ビットについての動作を16ビットの各々に対して繰り返し行って、図21の構成によって処理される16のビットに対して行う。16ビットの処理の順番は任意である。シーケンサ17は、例えば、データラッチ回路LDLC[0]〜LDLC[15]を用いて、ランダム化を行う。ランダム化の間、データラッチ回路UDLC[0]〜UDLC[15]およびLDLC[0]〜LDLC[15]はデータバスLBUS[0]〜LBUS[15]から電気的に分離されている。
シーケンサ17は、まず、データラッチ回路LDLC[n]をデータバスLBUS[n]から電気的に分離する。次いで、シーケンサ17は、データバスDBUS2の電位をハイレベルにプリチャージする。データバスDBUS2の電位のハイレベルは、“1”データと関連付けられている。
シーケンサ17は、データラッチ回路XDL0C[0]をデータバスDBUS0aに接続すると共に、データラッチ回路XDL1C[0]をデータバスDBU1aに接続する。この結果、データラッチ回路XDL1C[0]中のデータに応じてデータバスDBUS0aの電位がローレベルに維持されるか、ハイレベルに上昇する。また、データラッチ回路XDL0C[0]中のデータに応じてデータバスDBUS1aの電位がローレベルに維持されるか、ハイレベルに上昇する。データラッチ回路XDLC[0]およびXDLC[1]はともに例えば“0”データを保持しており、よってデータバスDBUS0aおよびDBUS1aはともにローレベルを維持する。
この状態で、シーケンサ17は、スイッチSW01、SW02、およびSW03をオンして、ランダム化回路51をイネーブルにする。この結果、データバスDBUS0aおよびDBUS1aの状態に応じて、データバスDBUS2がハイレベルに維持されるかローレベルに低下する。本例では、トランジスタNMOS0およびNMOS1はオフを維持し、よってデータバスDBUS2はハイレベルに維持される。
次いで、シーケンサ17は、データラッチ回路LDLC[0]をデータバスDBUS2と接続する。この結果、“1”データが、データラッチ回路LDLC[0]に保持される。こうしてデータラッチ回路LDLC[0]に保持されたデータは、データラッチ回路XDL1C中のデータおよびデータラッチ回路XDL0C中のデータの排他的論理和の反転データである。
2つのデータラッチ回路XDL0C[n]およびXDL1C[n]がともに“1”データを保持している場合、トランジスタNMOS1およびNMOS2はオンする。この結果、データバスDBUS2は、データバスDBUS0aおよびDBUS1aに接続されるが、データバスDBUS2のハイレベルが維持される。よって、対応するデータラッチ回路LDLC[n]には、“1”データが保持される。
一方、データラッチ回路XDL0C[n]が“0”データを保持し、かつデータラッチ回路XDL1C[n]が“1”データを保持している場合、トランジスタNMOS0はオンし、トランジスタNMOSはオフを維持する。この結果、データバスDBUS2は、データバスDBUS0aと接続されて、ローレベルに低下する。よって、対応するデータラッチ回路LDLC[n]には、“1”データが保持される。データラッチ回路XDL0C[n]が“1”データを保持し、かつデータラッチ回路XDL1C[n]が“0”データを保持している場合も、対応するデータラッチ回路LDLC[n]には、“1”データが保持される。
このようなデータラッチ回路XDL0C[y](yは0または15以下の自然数)中のデータとデータラッチ回路XDL1C[y]中のデータの排他的論理和のデータラッチ回路LDLC[y]への保持が、yが0〜15の各々について行われる。こうして、データラッチ回路LDLC[0]〜LDLC[15]に保持されているデータは、データラッチ回路XDLC[0]〜XDLC[15]に保持されていた書き込みデータの一部のビットの並びがランダム化されたものである。
一方、セルトランジスタMTから読み出されたデータは、復号回路52を使用して、復号(ランダム化を解除)される。以下の記述では、ランダム化についての記述と同様に図22に示される構成について記述されるが、以下の記述の動作が、図22と同じ構成を有する図22と別の部分においても並行して行われる。
復号の間、スイッチSW10、SW20、SW30、およびSW11は、オンに維持され、スイッチSW01、SW02、SW03、SW40、およびSW41はオフに維持される。
まず、セルトランジスタMTから読み出された1ページ分のデータが、データラッチLDLに保持される。次いで、シーケンサ17は、スイッチSW03をオフし、スイッチSW30をオンし、乱数シード生成部50gを制御して、乱数シード生成部50gからの乱数シードを、データラッチXDL0に保持する。乱数シードは、ランダム化の際に用いられたものと同じであり、乱数シード中の各ビットがデータラッチ回路XDL0C[0]〜XDL0C[15]の各々に保持される。復号の開始の時点で、データラッチXDL1中のいずれのデータラッチ回路XDL1Cも“1”データを保持している。
ランダム化と同じく、シーケンサ17は、以下に記述される、書き込みデータ中の1ビットについての動作を16ビットの各々に対して繰り返し行って、図21の構成によって処理される16のビットに対して行う。
データラッチ回路LDLC[y]が“1”データ保持し、かつデータラッチ回路XDL0C[y]が“1”データを保持している場合、データラッチ回路XDL1C[y]には、引き続き“1”データが保持される。データラッチ回路LDLC[y]が“1”データを保持し、かつデータラッチ回路XDL0C[y]が“0”データを保持している場合、データラッチ回路XDL1C[y]には、“0”データが保持されることになる。データラッチ回路LDLC[y]が“0”データを保持し、かつデータラッチ回路XDL0C[y]が“1”データを保持している場合、データラッチ回路XDL1C[y]には、“0”データが保持されることになる。データラッチ回路LDLC[y]が“0”データを保持し、かつデータラッチ回路XDL0C[y]が“0”データを保持している場合、データラッチ回路XDL1C[y]には、引き続き“1”データが保持される。
このようなデータラッチ回路XDL1C[y]中のデータとデータラッチ回路XDL0C[y]中のデータの排他的論理和のデータラッチ回路LDLC[y]への保持が、yが0〜15の各々について行われる。この結果、データラッチXDL0に、読み出し元のセルトランジスタMTから読み出されかつランダム化を解除されたデータが保持されることなる。
次に、図23を参照して、メモリシステム1の動作の例が記述される。図23は、第3実施形態のメモリシステム1での書き込みの際のタイミングチャートを示す。
図23に示されるように、コントローラ200は、時刻t71から、書き込みコマンド80h、アドレス信号Add1、書き込みデータData1をメモリ100に送信する。アドレス信号Add1は、書き込み先を指定する。データData1は、メモリ100により受け取られると、データラッチXDL1に保持され、その後も保持され続ける。
書き込み開始コマンド10がメモリ100によって受け取られると、シーケンサ17は、時刻t72から、乱数シード生成部50gを制御して乱数シードを生成する。乱数シードはデータラッチXDL0に送信され、データラッチXDL0により保持され、その後も保持され続ける。
乱数シードのデータラッチXDL0への送信が完了すると、シーケンサ17は、時刻t73からデータData1を乱数シードを使用してランダム化し、ランダム化されたData1を、データラッチLDLに送信する。次いで、シーケンサ17は、データラッチLDL中のデータを、指定されたセルトランジスタMTに書き込む。
3−3.効果(利点)
第3実施形態によれば、第2実施形態と同じく、メモリ100は、データバスIOBUSと接続された2つのデータラッチXDL0およびXDL1を有する。このため、第2実施形態と同じ利点を得られる。
さらに、第3実施形態によれば以下の利点を得られる。まず、比較のために、入出力のための1つのデータラッチ(例えばデータラッチXDL)のみを有するメモリでのランダム化を伴った書き込みの例が図24を参照して記述される。
図24に示されるように、シーケンサは、書き込みデータData1をデータラッチXDLにおいて受け取り終えると、データData1をデータラッチUDLに転送してデータラッチXDLを解放する。データラッチXDLが解放されると、シーケンサは、乱数シードをデータラッチXDLに転送する。次いで、シーケンサは、乱数シードのビット列中の各ビットが反転された形態と、データData1の対応するビットとの論理積の計算を1ページ分の全てのビットに対して行い、結果をデータラッチLDLに転送する。また、シーケンサは、乱数シード中の各ビットと、データData1の対応するビットとの論理積の計算を1ページの大きさのデータ中の全てのビットに対して行い、結果をデータラッチSDLに転送する。最後に、シーケンサは、データラッチLDL中のデータと、データラッチSDL中のデータとの、1ビットごとの論理和をデータラッチUDLに転送する。こうして得られたデータラッチUDL中のデータは、書き込みデータData1と乱数シードとの排他的論理和である。
図24から分かるように、データラッチXDLからデータラッチUDL、LDL、およびSDLへの3回の転送が必要である。上記のように、データバスDBUSは1ビットの幅であるので、データラッチXDLと、データラッチSDL、LDL、またはUDLとの間のデータの転送は長時間を要する。
一方、第3実施形態によれば、メモリ100は、データバスIOBUSと接続された2つのデータラッチXDL0およびXDL1を有するため、図23か分かるように、データラッチXDLからのデータの転送は、時刻t73からの1回のみ生じる。このため、第3実施形態によれば、データのランダム化を伴った書き込みに要する時間は、図24でのものより短い。
[他の実施形態]
第1〜第3実施形態において、以下の動作および構成が使用されてもよい。
(1)多値レベルの読み出し動作において、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V、0.21V〜0.31V、0.31V〜0.4V、0.4V〜0.5V、0.5V〜0.55V等のいずれかの間であってもよい。Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V、1.8V〜1.95V、1.95V〜2.1V、2.1V〜2.3V等のいずれかの間であってもよい。Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V、3.2V〜3.4V、3.4V〜3.5V、3.5V〜3.6V、3.6V〜4.0V等のいずれかの間であってもよい。読み出し動作の時間(tR)としては、例えば25μs〜38μs、38μs〜70μs、70μs〜80μs等のいずれかの間であってよい。
(2)書き込み動作は、プログラム動作とベリファイ動作とを含む。書き込み動作においては、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V、14.0V〜14.6V等のいずれかの間であってもよい。奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを異ならせてもよい。プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間であってもよい。これに限定されることなく、例えば7.3V〜8.4Vの間であってもよく、6.0V以下であってもよい。非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかにより、印加するパス電圧を異ならせてもよい。書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs、1800μs〜1900μs、1900μs〜2000μsの間であってよい。
(3)消去動作においては、半導体基板上部に配置され、かつ、メモリセルが上方に配置されたウェルに最初に印加される電圧は、例えば12V〜13.6Vの間である。これに限定されることなく、例えば13.6V〜14.8V、14.8V〜19.0V、19.0V〜19.8V、19.8V〜21V等のいずれかの間であってもよい。消去動作の時間(tErase)としては、例えば3000μs〜4000μs、4000μs〜5000μs、4000μs〜9000μsの間であってよい。
(4)メモリセルは、例えば以下のような構造であってもよい。メモリセルは、シリコン基板等の半導体基板上に膜厚が4nm〜10nmのトンネル絶縁膜を介して配置された電荷蓄積膜を有する。この電荷蓄積膜は、膜厚が2nm〜3nmのシリコン窒化(SiN)膜、またはシリコン酸窒化(SiON)膜などの絶縁膜と、膜厚が3nm〜8nmのポリシリコン(Poly−Si)膜との積層構造にすることができる。ポリシリコン膜には、ルテニウム(Ru)などの金属が添加されていても良い。メモリセルは、電荷蓄積膜の上に絶縁膜を有する。この絶縁膜は、例えば膜厚が3nm〜10nmの下層High−k膜と、膜厚が3nm〜10nmの上層High−k膜とに挟まれた、膜厚が4nm〜10nmのシリコン酸化(SiO)膜を有する。High−k膜の材料としては、酸化ハフニウム(HfO)などが挙げられる。また、シリコン酸化膜の膜厚は、High−k膜の膜厚よりも厚くすることができる。絶縁膜上には、膜厚が3nm〜10nmの仕事関数調整用の膜を介して、膜厚が30nm〜70nmの制御電極が設けられる。ここで仕事関数調整用膜は、例えば酸化タンタル(TaO)などの金属酸化膜、窒化タンタル(TaN)などの金属窒化膜等である。制御電極には、タングステン(W)などを用いることができる。メモリセル間にはエアギャップを形成することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。