以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1.第1実施形態
第1実施形態に係る半導体記憶装置について説明する。以下では半導体記憶装置として、メモリセルトランジスタが半導体基板上方に三次元に積層された三次元積層型NAND型フラッシュメモリを例に挙げて説明する。
1.1 構成
まず、第1実施形態に係る半導体記憶装置の構成について説明する。
1.1.1 メモリシステムの全体構成
図1は、第1実施形態に係る半導体記憶装置を含むメモリシステムの構成の一例を示すブロック図である。メモリシステム1は、例えば、外部の図示しないホスト機器と通信する。メモリシステム1は、ホスト機器(図示せず)からのデータを保持し、また、データをホスト機器に読み出す。
図1に示すように、メモリシステム1は、メモリコントローラ10及び半導体記憶装置(NANDフラッシュメモリ)20を備えている。メモリコントローラ10は、ホスト機器から命令を受取り、受け取られた命令に基づいて半導体記憶装置20を制御する。具体的には、メモリコントローラ10は、ホスト機器から書き込みを指示されたデータを半導体記憶装置20に書き込み、ホスト機器から読み出しを指示されたデータを半導体記憶装置20から読み出してホスト機器に送信する。メモリコントローラ10は、NANDバスによって半導体記憶装置20に接続される。半導体記憶装置20は、複数のメモリセルを備え、データを不揮発に記憶する。
NANDバスは、NANDインタフェースに従った信号/CE、CLE、ALE、/WE、/RE、/WP、/RB、及びI/O<7:0>の各々について、個別の信号線を介して送受信を行う。信号/CEは、半導体記憶装置20をイネーブルにするための信号である。信号CLEは、信号CLEが“H(High)”レベルである間に半導体記憶装置20に流れる信号I/O<7:0>がコマンドであることを半導体記憶装置20に通知する。信号ALEは、信号ALEが“H”レベルである間に半導体記憶装置20に流れる信号I/O<7:0>がアドレスであることを半導体記憶装置20に通知する。信号/WEは、信号/WEが“L(Low)”レベルである間に半導体記憶装置20に流れる信号I/O<7:0>を半導体記憶装置20に取り込むことを指示する。信号/REは、半導体記憶装置20に信号I/O<7:0>を出力することを指示する。信号/WPは、データ書き込み及び消去の禁止を半導体記憶装置20に指示する。信号/RBは、半導体記憶装置20がレディ状態(外部からの命令を受け付ける状態)であるか、ビジー状態(外部からの命令を受け付けない状態)であるかを示す。信号I/O<7:0>は、例えば8ビットの信号である。信号I/O<7:0>は、半導体記憶装置20とメモリコントローラ10との間で送受信されるデータの実体であり、コマンドCMD、アドレスADD、及びデータDATを含む。データDATは、書き込みデータ及び読み出しデータを含む。
1.1.2 メモリコントローラの構成
引き続き図1を用いて、第1実施形態に係るメモリシステムのメモリコントローラについて説明する。メモリコントローラ10は、プロセッサ(CPU:Central Processing Unit)11、内蔵メモリ(RAM:Random Access Memory)12、ECC(Error Check and Correction)回路13、NANDインタフェース回路14、バッファメモリ15、及びホストインタフェース回路16を備えている。
プロセッサ11は、メモリコントローラ10全体の動作を制御する。プロセッサ11は、例えば、ホスト機器から受信したデータの読み出し命令に応答して、NANDインタフェースに基づく読み出し命令を半導体記憶装置20に対して発行する。この動作は、書き込み及び消去の場合についても同様である。また、プロセッサ11は、半導体記憶装置20からの読み出しデータに対して、種々の演算を実行する機能を有する。
内蔵メモリ12は、例えば、DRAM(Dynamic RAM)等の半導体メモリであり、プロセッサ11の作業領域として使用される。内蔵メモリ12は、半導体記憶装置20を管理するためのファームウェア、及び各種の管理テーブル等を保持する。
ECC回路13は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書き込み時には、ホスト機器から受信したデータに基づいて、ある数のデータの組毎にECC符号を生成する。また、データの読み出し時には、ECC符号に基づいてECC復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。
NANDインタフェース回路14は、NANDバスを介して半導体記憶装置20と接続され、半導体記憶装置20との通信を司る。NANDインタフェース回路14は、プロセッサ11の指示により、コマンドCMD、アドレスADD、及び書き込みデータを半導体記憶装置20に送信する。また、NANDインタフェース回路14は、半導体記憶装置20から読み出しデータを受信する。
バッファメモリ15は、メモリコントローラ10が半導体記憶装置20及びホスト機器から受信したデータ等を一時的に保持する。バッファメモリ15は、例えば、半導体記憶装置20からの読み出しデータ、及び読み出しデータに対する演算結果等を一時的に保持する記憶領域としても使用される。
ホストインタフェース回路16は、ホスト機器と接続され、ホスト機器との通信を司る。ホストインタフェース回路16は、例えば、ホスト機器から受信した命令及びデータを、それぞれプロセッサ11及びバッファメモリ15に転送する。
1.1.3 半導体記憶装置の構成
次に、第1実施形態に係る半導体記憶装置の構成例について、図2を用いて説明する。図2は、第1実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。なお、図2の例では、ブロック間の接続の一部を矢印線により示しているが、各ブロックの接続は、これに限定されない。
図2は、第1実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。図2に示すように、半導体記憶装置20は、コア部21、入出力回路22、ロジック制御回路23、レジスタ24、シーケンサ25、電圧生成回路26、ドライバセット27、及びPBアドレス比較回路28を備えている。
コア部21は、例えば、16個のプレーンPB(PB0、PB1、…、PB15)を含む。各プレーンPBは、複数のメモリセルトランジスタ(図示せず)を含むブロック(図示せず)を単位として上述の各種動作を行う。具体的には、例えば、各プレーンPBは、あるブロック内の一部のメモリセルトランジスタに対してデータの書き込み動作、及びデータの読み出し動作を行い、あるブロック内の全てのメモリセルトランジスタに対して、データの消去動作を行う。なお、本実施形態におけるプレーンPB0~PB15の各々は、特に記載する場合を除き、同等の構成を有する。プレーンPBの構成の詳細については、後述する。なお、プレーンPBの個数は16個に限定されない。プレーンPBは、1個以上あればよい。
入出力回路22は、メモリコントローラ10と信号I/O<7:0>とを送受信する。入出力回路22は、信号I/O<7:0>内のコマンドCMD及びアドレスADDをレジスタ24に転送する。また、入出力回路22は、書き込みデータ及び読み出しデータ(データDAT)をコア部21と送受信する。
ロジック制御回路23は、メモリコントローラ10から信号/CE、CLE、ALE、/WE、/RE、及び/WPを受信する。また、ロジック制御回路23は、信号/RBをメモリコントローラ10に転送して半導体記憶装置20の状態を外部に通知する。
レジスタ24は、コマンドCMD及びアドレスADDを保持する。レジスタ24は、例えば、当該アドレスADD及びコマンドCMDを、シーケンサ25に転送する。また、レジスタ24は、例えば、アドレスADDに含まれるプレーンアドレスPBADDまたはプレーンアドレスPBADDに基づく信号をPBアドレス比較回路28に転送する。
シーケンサ25は、コマンドCMD及びアドレスADDを含むコマンドセットを受け取り、受け取ったコマンドセットに基づくシーケンスに従って半導体記憶装置20の全体を制御する。シーケンサ25は、例えば、制御信号を出力することにより、コア部21内の複数のプレーンPBを同期させて、データの読み出し動作、書き込み動作、または消去動作等を実行させることができる。
シーケンサ25は、例えば、書き込み動作または消去動作の途中で、メモリコントローラ10から、例えば、読み出し命令を受信すると、書き込み動作等を一旦中断(以下、「サスペンド」とも表記する)し、読み出し動作(命令)等を実行した後に、中断した書き込み動作等を再開(以下、「レジューム」とも表記する)する機能を有する。以下、本実施形態では、書き込み動作を中断して読み出し動作を実行する場合について、説明する。
電圧生成回路26は、シーケンサ25からの指示に基づき、データの書き込み動作、読み出し動作、及び消去動作等に必要な電圧を生成する。電圧生成回路26は、生成した電圧をドライバセット27に供給する。
ドライバセット27は、複数のドライバを含み、レジスタ24からのアドレスに基づいて、電圧生成回路26からの種々の電圧をコア部21に供給する。
PBアドレス比較回路28は、メモリコントローラ10から受信した書き込み動作に対応するコマンドセットに含まれるプレーンアドレスPBADDと、書き込み動作を実行中のプレーンアドレスPBADDと、書き込み動作を中断して読み出し動作を実行するプレーンアドレスPBADDとを比較し、比較結果をシーケンサ25に送信する。PBアドレス比較回路の詳細については、後述する。
1.1.4 プレーンの構成
次に、第1実施形態に係る半導体記憶装置のプレーンの構成について、図3を用いて説明する。図3は、第1実施形態に係る半導体記憶装置のプレーンの構成の一例を示すブロック図である。図3では、一例としてプレーンPB0が示されるが、他のプレーンPBも同等の構成を有する。
図3に示すように、プレーンPB0は、メモリセルアレイ21_1、ロウデコーダ21_2、及びセンスアンプモジュール21_3を含む。
メモリセルアレイ21_1は、複数のブロックBLK(BLK0、BLK1、…)を備えている。各ブロックBLKは、例えば、互いに識別可能なブロックアドレスによって区別される。なお、プレーンPB0以外のプレーンPBについても、プレーンPB0と同じブロックアドレスに対応するブロックBLKが含まれる。異なるプレーンPB間で同じブロックアドレスが割当てられたブロックBLK同士は、互いに識別可能なプレーンアドレスPBADDによって区別される。ブロックBLKは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタ(図示せず)を含む。ブロックBLKは、例えばデータの消去単位となり、同一のブロックBLK内のデータは、一括して消去される。各ブロックBLKは、複数のストリングユニットSU(SU0、SU1、…)を備えている。各ストリングユニットSUは、複数のNANDストリングNSを備えている。なお、メモリセルアレイ21_1内のブロック数、1ブロックBLK内のストリングユニット数、1ストリングユニットSU内のNANDストリング数は、任意の数に設定できる。
ロウデコーダ21_2は、レジスタ24に保持されたアドレスADD中のブロックアドレスに基づいてブロックBLK等を選択する。そして、選択されたブロックBLKには、ロウデコーダ21_2を介してドライバセット27からの電圧が転送される。
センスアンプモジュール21_3は、データの読み出し動作時には、メモリセルトランジスタの閾値電圧をセンスすることでデータを読み出し、入出力回路22に転送する。センスアンプモジュール21_3は、データの書き込み動作時には、ビット線を介して書込まれる書き込みデータをメモリセルトランジスタに転送する。また、センスアンプモジュール21_3は、レジスタ24からアドレスADD中のカラムアドレスを受け取り、当該カラムアドレスに基づくカラムのデータを出力する。
1.1.5 メモリセルアレイの回路構成
次に、第1実施形態に係る半導体記憶装置のメモリセルアレイの回路構成について、図4を用いて説明する。図4は、第1実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図の一例である。図4では、メモリセルアレイ21_1のうちの1つのブロックBLKの回路図が示される。
図4に示すように、各ストリングユニットSUは、NANDストリングNSの集合により構成される。NANDストリングNSの各々は、例えば8個のメモリセルトランジスタMT(MT0~MT7)と、選択トランジスタST1と、選択トランジスタST2とを備える。なお、メモリセルトランジスタMTの個数は8個に限られず、16個、32個、64個、96個、128個等であってもよく、その数は限定されるものではない。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタMTは、選択トランジスタST1及びST2の間に、直列接続される。なお、以下の説明では『接続』とは、間に別の導電可能な要素が介在する場合も含む。
あるブロックBLK内において、ストリングユニットSU0~SU3の選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0~SGD3に接続される。また、ブロックBLK内の全てのストリングユニットSUの選択トランジスタST2のゲートは、選択ゲート線SGSに共通接続される。同一のブロックBLK内のメモリセルトランジスタMT0~MT7の制御ゲートは、それぞれワード線WL0~WL7に接続される。すなわち、同じアドレスのワード線WLは、同一のブロックBLK内の全てのストリングユニットSUに共通接続されており、選択ゲート線SGSは、同一のブロックBLK内の全てのストリングユニットSUに共通接続されている。一方、選択ゲート線SGDは、同一のブロックBLK内のストリングユニットSUの1つに接続される。
また、メモリセルアレイ21_1内でマトリクス状に配置されたNANDストリングNSのうち、同一行にあるNANDストリングNSの選択トランジスタST1の他端は、m本のビット線BL(BL0~BL(m-1)(mは自然数))のいずれかに接続される。また、ビット線BLは、複数のブロックBLKにわたって、同一列のNANDストリングNSに共通接続される。
また、選択トランジスタST2の他端は、ソース線CELSRCに接続される。ソース線CELSRCは、複数のブロックBLKにわたって、複数のNANDストリングNSに共通接続される。
上述のとおり、データの消去動作は、例えば、同一のブロックBLK内にあるメモリセルトランジスタMTに対して一括して行われる。これに対して、データの読み出し動作及び書き込み動作は、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通接続された複数のメモリセルトランジスタMTにつき、一括して行われ得る。このような、1つのストリングユニットSU中でワード線WLを共有するメモリセルトランジスタMTの組は、例えば、セルユニットCUと称される。つまり、セルユニットCUは、一括して書き込み動作、または読み出し動作が実行され得るメモリセルトランジスタMTの組である。
なお、1つのメモリセルトランジスタMTは、例えば、1または複数ビットのデータを保持可能である。そして、同一のセルユニットCU内において、メモリセルトランジスタMTの各々が同位のビットにおいて保持する1ビットの集合を「ページ」と呼ぶ。つまり、「ページ」とは、同一のセルユニットCU内のメモリセルトランジスタMTの組に形成されるメモリ空間の一部、と定義することもできる。
以下の説明では、簡単のため、1つのメモリセルトランジスタMTに1ビットのデータを保持可能な場合について説明する。
1.1.6 メモリセルアレイの断面構成
次に、メモリセルアレイ21_1の断面構造について図5を用いて説明する。図5は、第1実施形態に係る半導体記憶装置のメモリセルアレイの一部の断面構造の一例を示している。図5は、1つのブロックBLK内の2つのストリングユニットSUに関する部分を示している。具体的には、図5は、2つのストリングユニットSUのそれぞれの2つのNANDストリングNSと、その周辺の部分と、を示している。そして、図5に示される構成が、X方向に複数配列されており、例えばX方向に並ぶ複数のNANDストリングNSの集合が1つのストリングユニットSUに相当する。
メモリセルアレイ21_1は、半導体基板30上に設けられている。以下の説明では、半導体基板30の表面と平行な面をXY平面とし、XY平面に垂直な方向をZ方向とする。また、X方向とY方向は、互いに直交するものとする。
半導体基板30の上部には、p型ウェル領域30pが設けられる。p型ウェル領域30p上に、複数のNANDストリングNSが設けられる。すなわち、p型ウェル領域30p上には、例えば、選択ゲート線SGSとして機能する配線層31、ワード線WL0~WL7として機能する8層の配線層32(WL0~WL7)、及び選択ゲート線SGDとして機能する配線層33が、順次積層される。配線層31及び33は、複数層積層されていてもよい。積層された配線層31~33間には、図示せぬ絶縁膜が設けられる。
配線層31は、例えば、1つのブロックBLK内の複数のNANDストリングNSの各々の選択トランジスタST2のゲートに共通接続される。配線層32は、各層毎に、1つのブロックBLK内の複数のNANDストリングNSの各々のメモリセルトランジスタMTの制御ゲートに共通接続される。配線層33は、1つのストリングユニットSU内の複数のNANDストリングNSの各々の選択トランジスタST1のゲートに共通接続される。
メモリホールMHは、配線層33、32、31を通過してp型ウェル領域30pに達するように設けられる。メモリホールMHの側面上には、ブロック絶縁膜34、電荷蓄積層(絶縁膜)35、及びトンネル酸化膜36が順に設けられる。メモリホールMH内には、半導体ピラー(導電膜)37が埋め込まれる。半導体ピラー37は、例えばノンドープのポリシリコンであり、NANDストリングNSの電流経路として機能する。半導体ピラー37の上方には、ビット線BLとして機能する配線層38が設けられる。半導体ピラー37と配線層38とは、コンタクトプラグ45を介して接続されている。
以上のように、p型ウェル領域30pの上方には、選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1が順に積層されており、1つのメモリホールMHが、1つのNANDストリングNSに対応している。
p型ウェル領域30pの上部には、n+型不純物拡散領域39及びp+型不純物拡散領域40が設けられる。n+型不純物拡散領域39の上面上には、コンタクトプラグ41が設けられる。コンタクトプラグ41の上面上には、ソース線CELSRCとして機能する配線層42が設けられる。p+型不純物拡散領域40の上面上にはコンタクトプラグ43が設けられる。コンタクトプラグ43の上面上には、ウェル線CPWELLとして機能する配線層44が設けられる。
なお、メモリセルアレイ21_1の構成については、その他の構成であってもよい。メモリセルアレイ21_1の構成については、例えば“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679,991号、“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
1.1.7 センスアンプモジュールの構成
次に、第1実施形態に係る半導体記憶装置のセンスアンプモジュールの構成について、図6を用いて説明する。図6は、第1実施形態に係る半導体記憶装置のセンスアンプモジュールの構成の一例を説明するためのブロック図である。
図6に示すように、センスアンプモジュール21_3は、ビット線BL毎に設けられたセンスアンプユニットSAU(SAU0、SAU1、…、SAU(m-1))を備えている。
センスアンプユニットSAUの各々は、センスアンプSA、ラッチ回路SDL、及びラッチ回路XDLを含む。なお、センスアンプユニットSAUは、例えばメモリセルトランジスタMTが保持可能なデータのビット数等に対応して、ラッチ回路SDL及びXDL以外に複数のラッチ回路を有していてもよい。
センスアンプSAは、対応するビット線BLの電圧または電流によってメモリセルトランジスタMTの閾値電圧をセンスすることでデータを読み出し、または書き込みデータに応じてビット線BLに電圧を印加する。すなわちセンスアンプSAは、ビット線BLを直接的に制御する。そしてセンスアンプSAには、読み出し時には、例えばシーケンサ25によってノードSTBを介してストローブ信号が与えられる。センスアンプSAは、ストローブ信号がアサートされるタイミングで読み出しデータを確定させ、ラッチ回路SDLに保持させる。
ラッチ回路SDLは、センスアンプSAによって読み出された読み出しデータ及びセンスアンプSAによって書き込まれる書き込みデータを一時的に保持する。後述するように、センスアンプユニットSAUにおいて、センスアンプSAはノードSENを含み、ラッチ回路SDL及びXDLはバスDBUSで接続されている。ノードSENとバスDBUSは、大きな寄生容量を持っているため、一時的なラッチとして使用できる。例えば、ラッチ回路SDL及びXDLに保持されているデータをノードSEN及びバスDBUSに一時的に展開させることで、それらに対して、否定(NOT)演算、論理和(OR)演算、論理積(AND)演算、否定論理積(NAND)演算、否定論理和(NOR)演算、排他的論理和(XOR)演算等、種々の論理演算を行うことができる。
センスアンプSA、及びラッチ回路SDLは、互いにデータを送受信可能なように、共通のノードに接続されている。そして更にラッチ回路XDLがバスDBUSを介してセンスアンプSA、及びラッチ回路SDLに接続されている。
センスアンプモジュール21_3におけるデータの入出力は、ラッチ回路XDLを介して行われる。すなわち、メモリコントローラ10から受信したデータは、入出力回路22から入出力用のバスXBUSを経由してラッチ回路XDLへと転送された後、ラッチ回路SDLまたはセンスアンプSAに送信される。また、ラッチ回路SDLまたはセンスアンプSAのデータは、バスDBUSを経由してラッチ回路XDLに転送された後、バスXBUSを経由して入出力回路22またはその先のメモリコントローラ10へ送信される。このように、ラッチ回路XDLは、入出力回路22とセンスアンプSAとの間に直列に接続された、半導体記憶装置20のキャッシュメモリとして機能する。したがって、ラッチ回路SDLが使用中であったとしても、ラッチ回路XDLが空いていれば(開放された状態であれば)、半導体記憶装置20はレディ状態となることができる。一方、ラッチ回路XDLが使用中である場合、後述するキャッシュプログラム動作のような所定の場合を除き、半導体記憶装置20はレディ状態となることはできない。
1.1.8 センスアンプユニットの構成
次に、センスアンプユニットの構成について、図7を用いて説明する。図7は、第1実施形態に係る半導体記憶装置のセンスアンプユニットの構成の一例を説明するための回路図である。
図7に示すように、センスアンプユニットSAUは、センスアンプSA、ラッチ回路SDL、ラッチ回路XDL、及びプリチャージ回路PCを含む。
センスアンプSAは、トランジスタTr1、Tr2、Tr3、Tr4、Tr5、Tr6、Tr7、Tr8、Tr9、Tr10、及びTr11、並びにキャパシタC1及びC2を備えている。例えば、トランジスタTr1は、高耐圧のnチャネルMOSFET(以下、「nMOSトランジスタ」とも表記する)であり、トランジスタTr2~Tr5、及びTr7~Tr11は、低耐圧のnMOSトランジスタである。また、例えば、トランジスタTr6は、低耐圧のpチャネルMOSFET(以下、「pMOSトランジスタ」とも表記する)である。
トランジスタTr1は、ビット線BLに接続された第1端と、トランジスタTr2の第1端に接続された第2端と、ノードBLSに接続されたゲートと、を含む。トランジスタTr2は、ノードSCOMに接続された第2端と、ノードBLCに接続されたゲートと、を含む。
トランジスタTr3は、ノードSCOMに接続された第1端と、ノードSSRCに接続された第2端と、ノードBLXに接続されたゲートと、を含む。トランジスタTr4は、ノードSCOMに接続された第1端と、ノードVLSAに接続された第2端と、ノードNLOに接続されたゲートと、を含む。
トランジスタTr5は、ノードSSRCに接続された第1端と、ノードSRCGNDに接続された第2端と、ノードLAT_Sに接続されたゲートと、を含む。トランジスタTr6は、ノードSSRCに接続された第1端と、ノードVHSAに接続された第2端と、ノードLAT_Sに接続されたゲートと、を含む。
トランジスタTr7は、ノードSCOMに接続された第1端と、ノードSENに接続された第2端と、ノードXXLに接続されたゲートと、を含む。キャパシタC1は、ノードSENに接続された第1端と、ノードCLKSAに接続された第2端と、を含む。キャパシタC2は、ノードSENに接続された第1端と、バスDBUSに接続された第2端と、を含む。
トランジスタTr8は、ノードSENに接続された第1端と、ノードVHLBに接続された第2端と、ノードBLQに接続されたゲートと、を含む。トランジスタTr9は、ノードSENに接続された第1端と、バスDBUSに接続された第2端と、ノードDSWに接続されたゲートと、を含む。
トランジスタTr10は、ノードCLKSAに接続された第1端と、トランジスタTr11の第1端に接続された第2端と、ノードSENに接続されたゲートと、を含む。トランジスタTr11は、ノードINV_Sに接続された第2端と、ノードSTBに接続されたゲートと、を含む。
次に、ラッチ回路SDLの構成について説明する。
ラッチ回路SDLは、トランジスタTr12、Tr13、Tr14、Tr15、Tr16、Tr17、Tr18、及びTr19を備えている。トランジスタTr14、及びTr17~Tr19は、例えば、nMOSトランジスタであり、トランジスタTr12、Tr13、Tr15、及びTr16は、例えば、pMOSトランジスタである。
トランジスタTr12は、ノードINV_Sに接続された第1端と、トランジスタTr13の第1端に接続された第2端と、ノードSLIに接続されたゲートと、を含む。トランジスタTr13は、ノードVDDSAに接続された第2端と、ノードLAT_Sに接続されたゲートと、を含む。トランジスタTr14は、ノードINV_Sに接続された第1端と、ノードVSS_SDLに接続された第2端と、ノードLAT_Sに接続されたゲートと、を含む。
トランジスタTr15は、ノードLAT_Sに接続された第1端と、トランジスタTr16の第1端に接続された第2端と、ノードSLLに接続されたゲートと、を含む。トランジスタTr16は、ノードVDDSAに接続された第2端と、ノードINV_Sに接続されたゲートと、を含む。トランジスタTr17は、ノードLAT_Sに接続された第1端と、ノードVSS_SDLに接続された第2端と、ノードINV_Sに接続されたゲートと、を含む。
トランジスタTr18は、ノードINV_Sに接続された第1端と、バスDBUSに接続された第2端と、ノードSTIに接続されたゲートと、を含む。トランジスタTr19は、ノードLAT_Sに接続された第1端と、バスDBUSに接続された第2端と、ノードSTLに接続されたゲートと、を含む。
次に、ラッチ回路XDLの構成について説明する。
ラッチ回路XDLは、トランジスタTr20、Tr21、Tr22、Tr23、Tr24、Tr25、Tr26、Tr27、Tr28、及びTr29を備えている。トランジスタTr20、Tr22、Tr25、Tr27、及びTr29は、例えば、nMOSトランジスタである。トランジスタTr21、Tr23、Tr24、Tr26、及びTr28は、例えば、pMOSトランジスタである。
トランジスタTr20は、バスDBUSに接続された第1端と、ノードINV_Xに接続された第2端と、ノードXTIに接続されたゲートと、を含む。
トランジスタTr21は、ノードINV_Xに接続された第1端と、トランジスタTr23の第1端に接続された第2端と、ノードLAT_Xに接続されたゲートと、を含む。トランジスタTr22は、ノードINV_Xに接続された第1端と、接地された第2端と、ノードLAT_Xに接続されたゲートと、を含む。トランジスタTr23は、ノードVDDSAに接続された第2端と、ノードXLIに接続されたゲートと、を含む。
トランジスタTr24は、ノードLAT_Xに接続された第1端と、トランジスタTr26の第1端に接続された第2端と、ノードINV_Xに接続されたゲートと、を含む。トランジスタTr25は、ノードLAT_Xに接続された第1端と、トランジスタTr27の第1端に接続された第2端と、ノードINV_Xに接続されたゲートと、を含む。トランジスタTr26は、ノードVDDSAに接続された第2端と、ノードXLLに接続されたゲートと、を含む。トランジスタTr27は、接地された第2端と、ノードXNLに接続されたゲートと、を含む。
トランジスタTr28は、ノードLAT_Xに接続された第1端と、バスXBUSに接続された第2端と、ノードXNLに接続されたゲートと、を含む。トランジスタTr29は、ノードLAT_Xに接続された第1端と、バスXBUSに接続された第2端と、ノードXTLに接続されたゲートと、を含む。バスXBUSは、信号I/Oを転送するための経路として使用される。
次に、プリチャージ回路PCについて説明する。プリチャージ回路PCは、バスDBUSの充放電を行うための回路である。
プリチャージ回路PCは、例えば、pMOSトランジスタTr30を備えている。トランジスタTr30は、バスDBUSに接続された第1端と、ノードVDDSAに接続された第2端と、ノードDEPCn_Lに接続されたゲートと、を含む。ノードDEPCn_Lは、バスDBUSを充電する際に、“L”レベルとされる。
以上のように構成することにより、センスアンプユニットSAUは、ビット線BLとバスXBUSとの間にデータを保持可能なラッチ回路を設けつつ、データの送受信経路として機能することができる。
例えば、シーケンサ25は、センスアンプユニットSAU内のノードBLS、BLC、BLX、NLO、XXL、BLQ、DSW、STB、ラッチ回路SDL内のノードSTI、SLI、STL、SLL、ラッチ回路XDL内のノードXTI、XLI、XLL、XNL、XTL、並びにプリチャージ回路PC内のノードDEPCn_Lに、制御信号を送信する。
1.1.9 レジスタとPBアドレス比較回路の構成
次に、レジスタとPBアドレス比較回路の構成について、図8を用いて説明する。なお、以下の例では、16個のプレーンPBに対応するレジスタ24とPBアドレス比較回路28の構成について説明するが、プレーンPBの個数に対応して、レジスタ24とPBアドレス比較回路28の構成は、変更可能である。
図8に示すように、レジスタ24は、プレーンPB0~PB15のプレーンアドレスPBADDに対応する16個のラッチ回路ユニット24_0~24_15を含む。ラッチ回路ユニット24_0~24_15の構成は、同じである。
ラッチ回路ユニット24_0~24_15の各々は、3つのラッチ回路DIL、ACL、及びSPLを含む。
ラッチ回路DILは、メモリコントローラ10から入力された書き込み動作に対応するコマンドセットのプレーンアドレスPBADDについての情報をラッチする。例えば、メモリコントローラ10から受信した書き込み動作に対応するコマンドセットのプレーンアドレスPBADDがプレーンPB0に対応している場合、ラッチ回路ユニット24_0のラッチ回路DILに入力される信号CSA0は、“H”レベルとされ、他のラッチ回路ユニット24_1~24_15のラッチ回路DILに入力される信号CSA1~CSA15は、“L”レベルとされる。この結果、ラッチ回路ユニット24_0のラッチ回路DILの出力信号DIL_PB0は、“H”レベルとされ、他のラッチ回路ユニット24_1~24_15のラッチ回路DILの出力信号DIL_PB1~DIL_PB15は、“L”レベルとされる。信号DIL_PB0~DIL_PB15は、メモリコントローラ10から受信した書き込み動作に対応するコマンドセットのプレーンアドレスPBADDが、対応するプレーンPBを示しているか否かを示す信号である。以下、プレーンPBを限定しない場合は、単に信号DIL_PBと表記する。
ラッチ回路ACLは、書き込み動作実行中のプレーンPBについての情報をラッチする。例えば、プレーンPB0において、書き込み動作実行中である場合、ラッチ回路ユニット24_0のラッチ回路ACLに入力される入力信号CSB0は、“H”レベルとされ、他のラッチ回路ユニット24_1~24_15のラッチ回路ACLに入力される信号CSB1~CSB15は、“L”レベルとされる。この結果、ラッチ回路ユニット24_0のラッチ回路ACLの出力信号ACL_PB0は、“H”レベルとされ、他のラッチ回路ユニット24_1~24_15のラッチ回路ACLの出力信号ACL_PB1~ACL_PB15は、“L”レベルとされる。信号ACL_PB0~ACL_PB15は、対応するプレーンPBが書き込み動作実行中か否かを示す信号である。以下、プレーンPBを限定しない場合は、単に信号ACL_PBと表記する。
ラッチ回路SPLは、書き込み動作を中断して読み出し動作を実行するプレーンアドレスPBADDについての情報をラッチする。例えば、書き込み動作を中断してプレーンPB0における読み出し動作を実行する場合、ラッチ回路ユニット24_0のラッチ回路ACLに入力される入力信号CSC0は、“H”レベルとされ、他のラッチ回路ユニット24_1~24_15のラッチ回路SPLに入力される信号CSB1~CSB15は、“L”レベルとされる。この結果、ラッチ回路ユニット24_0のラッチ回路SPLの出力信号SPL_PB0は、“H”レベルとされ、他のラッチ回路ユニット24_1~24_15のラッチ回路SPLの出力信号SPL_PB1~SPL_PB15は、“L”レベルとされる。信号SPL_PB0~SPL_PB15は、書き込み動作を中断して、読み出し動作を実行するプレーンPBを示す信号である。以下、プレーンPBを限定しない場合は、単に信号SPL_PBと表記する。
次に、PBアドレス比較回路28について説明する。
PBアドレス比較回路28は、プレーンPB0~PB15に対応する16個の論理回路ユニット51_0~51_15、及びOR回路52を含む。以下では、論理回路ユニット51_0の構成について具体的に説明するが、論理回路ユニット51_0~51_15の構成は、同じである。
論理回路ユニット51_0~51_15の各々は、OR回路53及びAND回路54を含む。
論理回路ユニット51_0において、OR回路53の第1入力端子には、信号DIL_PB0が入力され、第2入力端子には、信号ACL_PB0が入力される。OR回路53の出力端子は、AND回路54の第1入力端子に接続される。例えば、DIL_PB0またはACL_PB0のいずれかが“H”レベルの場合、OR回路53は、“H”レベルの信号を出力する。
AND回路54の第2入力端子には、信号SPL_PB0が入力され、出力端子は、OR回路52に接続される。例えば、OR回路53の出力信号及び信号SPL_PB0が“H”レベルの場合、AND回路54は、“H”レベルの信号を出力する。すなわち、実行中の動作を中断して読み出し動作を実行するプレーンPBと、動作を中断したプレーンPBまたはメモリコントローラ10から受信した命令に対応するプレーンPBが同じ場合、AND回路54は、“H”レベルの信号を出力する。
OR回路52は、論理回路ユニット51_0~51_15に対応する16個の入力端子を備える。例えば、論理回路ユニット51_0~51_15のいずれかが“H”レベルの信号を出力した場合、OR回路52は、出力信号MTCHを“H”レベルとする。すなわち、信号MTCHは、書き込み命令等に対応するプレーンPBまたは書き込み動作等を中断するプレーンPBと、中断後に読み出し動作を実行するプレーンPBとが同じ場合、“H”レベルとされる。
1.2 読み出し動作
次に、読み出し動作について説明する。本実施形態では、読み出し動作は、「ノーマルリード動作」、「第1サスペンドリード動作」、及び「第2サスペンドリード動作」の3つの動作モードを含む。
ノーマルリード動作は、サスペンド動作を伴わない通常の読み出し動作において選択される動作モードである。第1サスペンドリード動作は、書き込み動作を中断するプレーンPBと、読み出し対象のプレーンPBとが同一の場合に選択される動作モードである。第2サスペンドリード動作は、書き込み動作を中断するプレーンPBと、読み出し対象のプレーンPBとが異なる場合に選択される動作モードである。
1.2.1 センスアンプユニット内のデータ転送
まず、読み出し動作の実行に伴うセンスアンプユニット内のデータ転送について、図9を用いて説明する。本実施形態では、読み出し動作を実行する際のセンスアンプユニットSAU内のデータの転送動作が、第1サスペンドリード動作と第2サスペンドリード動作とで異なる。
まず、第1サスペンドリード動作の場合、すなわち、書き込み動作を中断するプレーンPBと、読み出し対象のプレーンPBとが、同一の場合について説明する。
図9に示すように、ステップS1において、シーケンサ25は、ラッチ回路SDL内の書き込みデータをラッチ回路XDLに保持させる。
続いて、ステップS2において、シーケンサ25は、読み出し対象のメモリセルトランジスタMTの閾値電圧をノードSENにおいてセンスし、ノードSENにおいてセンスされたデータ(読み出しデータの反転データ)をラッチ回路SDLに保持させる。
ステップS3において、シーケンサ25は、ラッチ回路XDLに保持された書き込みデータの反転データをセンスアンプSA内のノードSENに保持させる。
ステップS4において、シーケンサ25は、ラッチ回路SDLに保持された読み出しデータの反転データ(読み出しデータ)をラッチ回路XDLに保持させる。
ステップS5において、シーケンサ25は、ノードSENに保持されたデータの反転データ、すなわち、書き込みデータをラッチ回路SDLに保持させる。
ステップS6において、シーケンサ25は、ラッチ回路XDLに転送された読み出しデータをメモリコントローラ10に向けて出力する。
ステップS7において、シーケンサ25は、ラッチ回路SDLに保持された書き込みデータの反転データをラッチ回路XDLに保持させる。
以上のように動作させることにより、書き込み動作を中断させたプレーンPBと、読み出し対象のプレーンPBとが同一の場合においても、書き込みデータを失うことなく、データの読み出しを実行することができる。
次に、第2サスペンドリード動作、すなわち、書き込み動作を中断するプレーンPBと、読み出し対象のプレーンPBとが異なる場合について説明する。この場合、ラッチ回路XDLにおいて書き込みデータと読み出しデータが衝突する可能性を考慮する必要はない。このため、シーケンサ25は、図9の例におけるステップS3、S5、及びS7を省略したシーケンス(すなわち、ステップS1、S2、S4、及びS6)に沿って、読み出しデータをメモリコントローラ10へ出力する。
ノーマルリード動作の場合には書き込みデータが無いため、シーケンサ25は、ステップS1、S3、S5、及びS7を省略したシーケンス(ステップS2、S4、及びS6)に沿って、読み出しデータをメモリコントローラ10へ出力する。
以下、第1サスペンドリード動作におけるステップS3~S5の一連のデータの転送動作をスキャンSSと表記する。ステップS1及びS4(第2サスペンドリード動作)において、ラッチ回路SDLからラッチ回路XDLへのデータの転送動作をスキャンS2Xと表記する。ステップS7において、ラッチ回路SDLからラッチ回路XDLへの反転データの転送動作をスキャン/S2Xと表記する。なお、それぞれのデータ転送において、ラッチ回路(またノードSEN)に保持されたデータが転送されてもよく、反転データが転送されてもよい。
1.2.2 読み出し動作のフローチャート
次に、読み出し動作のフローチャートについて、図10を用いて説明する。図10は、第1実施形態に係る半導体記憶装置における読み出し動作の動作モード選択の一例を示すフローチャートである。
図10に示すように、まず、半導体記憶装置20は、メモリコントローラ10から読み出し命令を受信する(ステップS10)。
例えば、書き込み動作を中断しない場合(ステップS11_No)、シーケンサ25は、ノーマルリード動作を実行する(ステップS14)。
他方で、書き込み動作を中断する場合(ステップS11_No)、シーケンサ25は、PBアドレス比較回路28において、書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとを比較させる。
書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが同じ場合(ステップS13_Yes)、シーケンサ25は、第1サスペンドリード動作を実行する(ステップS15)。
書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが異なる場合(ステップS13_No)、シーケンサ25は、第2サスペンドリード動作を実行する(ステップS16)。
1.3 読み出し動作の具体例
次に、第1サスペンドリード動作及び第2サスペンドリード動作の具体例について説明する。
1.3.1 第1サスペンドリード動作の具体例
まず、第1サスペンドリード動作の具体例について、図11を用いて説明する。図11は、第1サスペンドリード動作の例として、プレーンPB0における書き込み動作を中断して、プレーンPB0において第1サスペンドリード動作を実行する場合のコマンドシーケンス及び信号/RBを示すタイミングチャートである。
なお、本実施形態における書き込み動作は、ノーマルプログラム動作とキャッシュプログラム動作の2つの動作モードを含む。
ノーマルプログラム動作は、ラッチ回路XDLが書き込みデータをラッチしてから、書き込み動作が終了するまでの間、信号/RBを“L”レベル(ビジー状態)にする動作モードである。
キャッシュプログラム動作は、ラッチ回路XDLが書き込みデータをラッチしてから、ラッチしたデータを他のラッチ回路(例えば、ラッチ回路SDL)に転送するまでの間、信号/RBを“L”レベル(ビジー状態)にする動作モードである。キャッシュプログラム動作では、例えば、書き込み動作を実行しているプレーンPBと、次の書き込み動作の対象であるプレーンPBとが異なる場合、書き込み動作と並行して、次の書き込み動作の対象であるプレーンPBのラッチ回路XDLに次の書き込み動作のデータを入力できる。
図11に示すように、メモリコントローラ10は、直前に書き込みコマンド等が送信されておらず半導体記憶装置20がレディ状態であるときに、コマンド“80h”を発行し、半導体記憶装置20に送信する。コマンド“80h”は、半導体記憶装置20へのデータの書き込み動作を命令するコマンドである。
次に、メモリコントローラ10は、アドレスADDを発行し、半導体記憶装置20に送信する。このアドレスADDは、例えば、書き込み対象のプレーンPB、ブロックBLK、及び当該ブロックBLK内のある領域のアドレスを指定するものである。図11の例では、シーケンサ25は、当該アドレスADDによって、プレーンPB0内においてデータが書込まれる領域のアドレスを特定する。アドレスADDがレジスタ24に格納されると、例えば、シーケンサ25は、全てのプレーンPB内のラッチ回路XDLを開放(例えば、全てのラッチ回路XDLに保持されたデータを“1”にリセット)する。これにより、以降の書き込み動作において予期しない書き込み動作が実行されることを抑制することができる。なお、アドレスADDのサイクル数は、任意である。
次に、メモリコントローラ10は、書き込みデータDinを半導体記憶装置20に送信する。続いて、メモリコントローラ10は、例えば、コマンド“10h”または“15h”を発行し、半導体記憶装置20に送信する。コマンド“10h”は、ノーマルプログラム動作を実行させるためのコマンドである。コマンド“15h”は、キャッシュプログラム動作を実行させるためのコマンドである。
コマンド“10h”または“15h”がレジスタ24に格納されると、ロジック制御回路23は、信号/RBを“L”にして、半導体記憶装置20がビジー状態であることをメモリコントローラ10に通知する。シーケンサ25は、メモリコントローラ10から送信された書き込みデータDinをプレーンPB0内の対応するラッチ回路XDLに入力する。そして、シーケンサ25は、当該書き込みデータDinをプレーンPB0内の他のラッチ回路(例えば、ラッチ回路SDL)に転送させる。その後、シーケンサ25は、電圧生成回路26、並びにコア部21内のプレーンPB0のロウデコーダ21_2、及びセンスアンプモジュール21_3等を制御して、書き込み動作を開始する。
例えば、コマンド“15h”を受信した場合、ロジック制御回路23は、ラッチ回路XDLから他のラッチ回路へのデータの転送が終了すると、信号/RBを“H”レベルにする。また、コマンド“10h”を受信した場合、ロジック制御回路23は、書き込み動作の期間、信号/RBを“L”レベルに維持する。
ここで、書き込み動作は、プログラム動作と、ベリファイ動作と、を含む。プログラム動作は、書き込みデータDinに基づいてメモリセルトランジスタMTの閾値電圧を上昇させる動作である。ベリファイ動作は、プログラム動作の後にメモリセルトランジスタMTの閾値電圧をセンスし、当該メモリセルトランジスタMTの閾値電圧が所望の値まで上昇したか否かを判定する動作である。シーケンサ25は、プログラム動作とベリファイ動作とを含むプログラムサイクルを繰り返し実行させることによって、最終的に書き込み動作を完了させる。なお、書き込みデータDinは、プログラムサイクルが実行されるにつれて、例えばベリファイ動作の結果に応じて、更新される。以下の説明において、「書き込みデータDin」とは、メモリコントローラ10から半導体記憶装置20に送信された書き込みデータのことだけでなく、上記のような書き込み動作の進行度合いに応じて更新された書き込みデータも含むものとする。
メモリコントローラ10は、例えば、外部のホスト機器からプレーンPB0における優先度の高い読み出し動作の実行命令を受ける。これに伴い、メモリコントローラ10は、コマンド“A7h”を発行し、半導体記憶装置20に送信する。コマンド“A7h”は、実行中の書き込み動作を中断させ、新たな動作を割り込ませることを半導体記憶装置20に通知するためのコマンドである。
例えば、コマンド“10h”に基づいてノーマルプログラム動作を実行中の場合、シーケンサ25は、コマンド“A7h”を受信すると、書き込み動作をプログラム動作またはベリファイ動作が終了したタイミングで中断させる。その後、ロジック制御回路23は、信号/RBを“H”レベルにする(図11において、破線で示した信号/RB)。このため、ノーマルプログラム動作を実行している場合、半導体記憶装置20がコマンド“A7h”を受信してから、ロジック制御回路23が信号/RBを“H”レベルにするまで、すなわち、読み出し命令を受信可能となるまでの間に待機期間tSTOPRSTが発生する。そして、シーケンサ25は、この待機期間tSTOPRSTが終了して信号/RBが“H”レベルに戻った後に、スキャンS2Xを実行する。スキャンS2Xの実行中は、すでに信号/RBが“H”レベルに戻っているため、半導体記憶装置20はスキャンS2Xと並行して後述するコマンド“00h”を受け付けることができる。これに対し、コマンド“15h”に基づいてキャッシュプログラム動作を実行中の場合、コマンド“A7h”を受信する前に信号/RBは“H”レベルとされている。このため、コマンド“A7h”を受信した後に待機期間tSTOPRSTは、設けられず、後述するコマンド“30h”を受信した後に、待機期間tSTOPRSTが発生する。
続いてメモリコントローラ10は、“H”レベルの信号/RBを確認した後、コマンド“00h”を発行し、半導体記憶装置20に送信する。コマンド“00h”は、半導体記憶装置20からのデータの読み出し動作を命令するコマンドである。
次に、メモリコントローラ10は、アドレスADDを発行し、半導体記憶装置20に送信する。このアドレスADDは、例えば、読み出し対象のプレーンPB(本例では、プレーンPB0)、ブロックBLK、及び当該ブロックBLK内のある領域のアドレスを指定するものである。ここで、当該アドレスADDは、書き込み動作を実行中のプレーンPB0に依らず、任意のプレーンPB内の任意のブロックBLKを指定可能である。
メモリコントローラ10は、コマンド“30h”を発行し、半導体記憶装置20に送信する。コマンド“30h”は、直前に送信されたアドレスADDに基づいて半導体記憶装置20からのデータの読み出し動作を実行させるためのコマンドである。半導体記憶装置20は、キャッシュプログラム動作を実行中の場合、コマンド“30h”を受信すると書き込み動作を中断させ、読み出し動作を割り込ませる動作を開始する。
具体的には、PBアドレス比較回路28は、書き込み動作を実行中のプレーンPB0と、読み出し対象となるプレーンPB0とを比較する。図11の例では、書き込み動作実行中のプレーンPBと読み出し対象のプレーンPBとが同じであるため、PBアドレス比較回路28は、信号MTCHを“H”レベルとする。シーケンサ25は、“H”レベルの信号MTCHに基づいて、第1サスペンドリード動作を選択する。
ロジック制御回路23は、信号/RBを“L”レベルにする。
シーケンサ25は、まず、スキャンS2Xを実行し、プレーンPB0のラッチ回路SDLに保持されている書き込みデータDinを、ラッチ回路XDLに転送する。
例えば、コマンド“15h”に基づくキャッシュプログラム動作を実行している場合、シーケンサ25は、コマンド“30h”を受信すると、キャッシュプログラム動作をプログラム動作またはベリファイ動作が終了したタイミングで中断させる。そして、その後に、シーケンサ25は、スキャンS2Xを実行する。このため、キャッシュプログラム動作を実行している場合、信号/RBが“L”レベルとされてから実際に読み出し動作を実行可能となるまでに待機期間tSTOPRSTが発生する。これに対し、コマンド“10h”に基づくノーマルプログラム動作の場合、コマンド“A7h”を受信した後であってコマンド“00h”を受信するまでに書き込み動作を中断するための待機期間tSTOPRSTが発生し、その終了後にスキャンS2Xが実行されているため、信号/RBが“L”レベルとされた後には、待機期間tSTOPRSTは設けられず、また、スキャンS2Xも実行されない。
シーケンサ25は、読み出し動作が可能となると、第1サスペンドリード動作を開始する。
具体的には、まず、シーケンサ25は、メモリセルトランジスタMTからデータを読み出す。
次に、シーケンサ25は、期間RCにおいて、ノードSENにおいてセンスされたデータ(読み出しデータDoutの反転データ)をラッチ回路SDLに格納するとともに、プレーンPB0内の各配線に印加された電圧を初期化する。
次に、シーケンサ25は、書き込み動作を再開するため、例えば、書き込み対象のプレーンPB(本例では、プレーンPB0)において、書き込み動作に対応するロウアドレスRAをロウデコーダ21_2にセットするセット動作RA_Setを実行する。
次に、シーケンサ25は、第1サスペンドリード動作の場合、図9で説明したスキャンSSを実行する。具体的には、シーケンサ25は、プレーンPB0において、ラッチ回路XDLに保持された書き込みデータDinの反転データをノードSENに転送させた後、ラッチ回路SDLに保持されたデータの反転データ(読み出しデータDout)をラッチ回路XDLに転送させる。更に、シーケンサ25は、プレーンPB0において、ノードSENに保持されたデータの反転データ(すなわち、書き込みデータDin)をラッチ回路SDLに転送させる。
これにより、第1サスペンドリード動作が完了し、ロジック制御回路23は、信号/RBを“H”レベルにして、半導体記憶装置20がレディ状態であることをメモリコントローラ10に通知する。
以下、読み出し動作を開始してから信号/RBが“H”レベルとされるまでの期間を期間tRと表記する。また、待機期間tSTOPRSTと期間tRを合わせた期間をリードレイテンシ(read latency)と表記する。
メモリコントローラ10は、半導体記憶装置20がレディ状態(信号/RBが“H”レベル)になると、信号/REを繰り返しアサートする。信号/REがトグルされるたびに、読み出しデータDoutがメモリコントローラ10へ出力される。
読み出しデータDoutのメモリコントローラ10への出力が完了した後、メモリコントローラ10は、コマンド“48h”を発行し、半導体記憶装置20に送信する。コマンド“48h”は、中断させた書き込み動作を再開させることを半導体記憶装置20に通知するためのコマンドである。コマンド“48h”を受けると、シーケンサ25は、プレーンPB0への書き込み動作を再開させる。
具体的には、ノーマルプログラム動作を再開する場合、ロジック制御回路23は、信号/RBを“L”レベルにする。また、キャッシュプログラム動作を再開する場合、ロジック制御回路23は、信号/RBを“H”レベルに維持させる。キャッシュプログラム動作の場合、半導体記憶装置20は、レディ状態のままであり、メモリコントローラ10は、半導体記憶装置20が更なるコマンドを受付け可能な状態であることを認識することができる。
シーケンサ25は、まず、スキャン/S2Xを実行し、ラッチ回路SDLに保持されている書き込みデータDinの反転データをラッチ回路XDLに転送する。
次に、シーケンサ25は、ベリファイ動作Pvfyまたはプログラム動作PGMからプレーンPB0への書き込み動作を再開させる。
1.3.1 第2サスペンドリード動作の具体例
次に、第2サスペンドリード動作の具体例について、図12を用いて説明する。図12は、第2サスペンドリード動作の例として、プレーンPB0における書き込み動作を中断して、プレーンPB1において第2サスペンドリード動作を実行する場合のコマンドシーケンス及び信号/RBを示すタイミングチャートである。以下、図11と異なる点を中心に説明する。
図12に示すように、まず、メモリコントローラ10は、図11と同様に、半導体記憶装置20に、プレーンPB0における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、書き込みデータDin、及びコマンド“10hまたは15h”)を送信する。
メモリコントローラ10は、半導体記憶装置20にコマンド“A7h”を送信し、“H”レベルの信号/RBを確認した後、プレーンPB1における読み出し動作のコマンドセット(コマンド“00h”、アドレスADD(プレーンPB1)、及びコマンド“30h”)を、半導体記憶装置20に送信する。半導体記憶装置20は、読み出し動作を割り込ませる動作を開始する。
具体的には、PBアドレス比較回路28は、書き込み動作を実行中のプレーンPB0と、読み出し対象となるプレーンPB1とを比較する。図12の例では、書き込み動作実行中のプレーンPBと読み出し対象のプレーンPBとが異なるため、PBアドレス比較回路28は、信号MTCHを“L”レベルとする。シーケンサ25は、“L”レベルの信号MTCHに基づいて、第2サスペンドリード動作を選択する。
ロジック制御回路23は、信号/RBを“L”レベルにする。
シーケンサ25は、まず、スキャンS2Xを実行し、プレーンPB0のラッチ回路SDLに保持されている書き込みデータDinを、ラッチ回路XDLに転送する。
次に、シーケンサ25は、プレーンPB1における読み出し動作が可能となると、第2サスペンドリード動作を開始する。
具体的には、まず、シーケンサ25は、プレーンPB1のメモリセルトランジスタMTからデータを読み出す。
次に、シーケンサ25は、期間RCに、プレーンPB1において読み出したデータDoutをラッチ回路SDLに格納するとともに、プレーンPB1内の各配線に印加された電圧を初期化する。
また、シーケンサ25は、期間RCにおける動作と並行して、プレーンPB1においてスキャン/S2Xを実行して、ラッチ回路SDLのデータの反転データ(読み出しデータDout)をラッチ回路XDLに転送する。
次に、シーケンサ25は、書き込み動作を再開するため、例えば、書き込み対象のプレーンPB0において、書き込み動作に対応するロウアドレスRAをロウデコーダ21_2にセットするセット動作RA_Setを実行する。これにより、第2サスペンドリード動作が完了する。
ロジック制御回路23は、ロウアドレスRAのセット動作RA_Set終了から読み出しデータDoutの出力動作開始までの期間を短くするため、例えば、ロウアドレスRAのセット動作RA_Setが終了するタイミングよりも、データの出力動作に必要なコマンドを入力する期間の分だけ、先に信号/RBを“H”レベルにする。
メモリコントローラ10は、半導体記憶装置20がレディ状態になると、信号/REを繰り返しアサートする。信号/REがトグルされるたびに、読み出しデータDoutがメモリコントローラ10へ出力される。
以降の動作は、図11と同様である。ここで、図11に示した第1サスペンドリード動作の場合、書き込み動作を実行中のプレーンと読み出し対象となるプレーンとが同じである。このため、プレーンPB0において書き込み動作が中断された後にラッチ回路SDLからラッチ回路XDLに退避された書き込みデータDinが、読み出し動作の結果として読み出しデータDoutに更新される。従って、書き込み動作の再開にあたって、ラッチ回路XDLに格納されるデータを書き込みデータDinに更新するために、スキャン/S2Xを実行した。しかし、図12に示した第2サスペンドリード動作の場合、書き込み動作を実行中のプレーンと読み出し対象となるプレーンとが異なる。このため、プレーンPB0において書き込み動作が中断された後にラッチ回路SDLからラッチ回路XDLに退避された書き込みデータDinは、プレーンPB1における読み出し動作によって損なわれない。従って、書き込み動作の再開にあたって、スキャン/S2Xは実行されない。
1.4 レジスタ及びPBアドレス比較回路の動作の具体例
次に、読み出し動作に伴うレジスタ24及びPBアドレス比較回路28の動作の具体例について説明する。
1.4.1 第1サスペンドリード動作に伴うレジスタ及びPBアドレス比較回路の動作の具体例
まず、第1サスペンドリード動作に伴うレジスタ及びPBアドレス比較回路の動作の具体例について、図13を用いて説明する。図13は、第1サスペンドリード動作に伴うコマンドシーケンス及び各種信号のタイミングチャートの一例を示す図である。
図13に示すように、まず、メモリコントローラ10は、半導体記憶装置20に、例えば、プレーンPB0におけるキャッシュプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、データ“Din”、及びコマンド“15h”)を送信する。
コマンド“15h”受信後、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路DIL及びACLが、“H”レベルをラッチする。より具体的には、アドレスADD(PB0)を受信すると、信号CSA0は、“H”レベルとされ、対応するラッチ回路DILは、“H”レベルの信号CSA0をラッチする。この結果、ラッチ回路DILは、出力信号DIL_PB0を“H”レベルとする。また、他に実行中の動作がない場合、プレーンPB0におけるキャッシュプログラム動作が実行されるため、信号CSB0は、“H”レベルとされ、対応するラッチ回路ACLは、“H”レベルの信号CSB0をラッチする。この結果、ラッチ回路ACLは、出力信号ACL_PB0を“H”レベルとする。
また、コマンド“15h”受信後、ロジック制御回路23は、信号/RBを“L”にする。シーケンサ25は、プレーンPB0におけるキャッシュプログラム動作を開始し、プレーンPB0は、動作状態とされる。例えば、動作状態とされるプレーンPB0内のラッチ回路XDLは、擬似的に開放される。具体的には、シーケンサ25は、プレーンPB0内のラッチ回路XDLに保持されたデータをリセットすることなく、全てのプレーンPB内のラッチ回路XDLが未使用の状態であるとみなす。
次に、ロジック制御回路23は、ラッチ回路XDLからラッチ回路SDLへのデータの転送が終了すると、信号/RBを“H”レベルにする。
次に、メモリコントローラ10は、“H”レベルの信号/RBを確認後、半導体記憶装置20に、コマンド“A7h”及びプレーンPB0における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB0)、及びコマンド“30h”)を送信する。
コマンド“30h”受信後、コマンド“A7h”及び読み出し動作のコマンドセットに対応して、ラッチ回路ユニット24_0内のラッチ回路SPLは、“H”レベルをラッチする。より具体的には、信号CSC0は、“H”レベルとされ、対応するラッチ回路SPLは、“H”レベルの信号CSC0をラッチする。この結果、ラッチ回路SPLは、出力信号SPL_PB0を“H”レベルとする。
“H”レベルの信号DIL_PB0、ACL_PB0、及びSPL_PB0に対応して、PBアドレス比較回路28は、信号MTCHを“H”レベルとする。より具体的には、信号DIL_PB0、ACL_PB0、及びSPL_PB0が“H”レベルであるため、PBアドレス比較回路28内の論理回路ユニット51_0において、AND回路54は、“H”レベルの信号を出力する。この結果、OR回路52の出力信号MTCHは、“H”レベルとされる。
また、コマンド“30h”受信後、ロジック制御回路23は、信号/RBを“L”レベルにする。その後、シーケンサ25は、“H”レベルの信号MTCHに対応して、第1サスペンドリード動作を実行する。
第1サスペンドリード動作が終了すると、ラッチ回路ユニット24_0内のラッチ回路SPLは、“L”レベルをラッチする。より具体的には、信号CSC0は、“L”レベルとされる。対応するラッチ回路SPLは、“L”レベルの信号CSC0をラッチし、出力信号SPL_PB0を“L”レベルとする。この結果、信号MTCHは、“L”レベルとされる。
また、第1サスペンドリード動作が終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。
半導体記憶装置20は、読み出しデータDoutを出力後、コマンド“48h”を受信すると、スキャン/S2X実行後にプレーンPB0におけるキャッシュプログラム動作を再開する。
例えば、半導体記憶装置20は、プレーンPB0におけるキャッシュプログラム動作を実行中に、メモリコントローラ10から、プレーンPB1におけるノーマルプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB1)、データ“Din”、及びコマンド“10h”)を受信する。
コマンド“10h”受信後、プレーンPB1に対応するラッチ回路ユニット24_1内のラッチ回路DIL及びACLは、“H”レベルをラッチする。これにより、プレーンPB0及びPB1に対応して、ラッチ回路ユニット24_0及び24_1内のラッチ回路DIL及びACLは“H”レベルをラッチする。
プレーンPB0におけるキャッシュプログラム動作が終了すると、ロジック制御回路23は、信号/RBを“L”レベルにする。そして、シーケンサ25は、プレーンPB1におけるノーマルプログラム動作を開始する。また、レジスタ24では、ラッチ回路ユニット24_0内のラッチ回路DIL及びACLは、“L”レベルをラッチし、ラッチ回路ユニット24_1内のラッチ回路DIL及びACLは、“H”レベルをラッチする。
プレーンPB1におけるノーマルプログラム動作が終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。
1.4.2 第2サスペンドリード動作に伴うレジスタ及びPBアドレス比較回路の動作の具体例
次に、第2サスペンドリード動作に伴うレジスタ及びPBアドレス比較回路の動作の具体例について、図14を用いて説明する。図14は、第2サスペンドリード動作に伴うコマンドシーケンス及び各種信号のタイミングチャートの一例を示す図である。以下、図13と異なる点を中心に説明する。
図14に示すように、半導体記憶装置20は、プレーンPB0におけるキャッシュプログラム動作に対応するコマンドセットを受信した後、コマンド“A7h”及び、プレーンPB2における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB2)、及びコマンド“30h”)を受信する。
コマンド“30h”受信後、プレーンPB2に対応するラッチ回路ユニット24_2内のラッチ回路SPLは、“H”レベルをラッチする。より具体的には、信号CSC2は、“H”レベルとされ、対応するラッチ回路SPLは、“H”レベルの信号CSC2をラッチする。この結果、ラッチ回路SPLは、出力信号SPL_PB2を“H”レベルとする。
“H”レベルの信号DIL_PB0、ACL_PB0、及びSPL_PB2に対応して、PBアドレス比較回路28は、“L”レベルの信号MTCHを出力する。より具体的には、PBアドレス比較回路28内の論理回路ユニット51_0において、信号DIL_PB0及びACL_PB0は“H”レベルであり、信号SPL_PB0は“L”レベルであるため、AND回路54は、“L”レベルの信号を出力する。また、論理回路ユニット51_2において、信号DIL_PB2及びACL_PB2は“L”レベルであり、信号SPL_PB2は“H”レベルであるため、AND回路54は、“L”レベルの信号を出力する。この結果、OR回路52の出力信号MTCHは、“L”レベルとされる。
また、コマンド“30h”受信後、ロジック制御回路23は、信号/RBを“L”レベルにする。その後、シーケンサ25は、“L”レベルの信号MTCHに対応して、第2サスペンドリード動作を実行する。
第2サスペンドリード動作が終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。また、ラッチ回路ユニット24_2内のラッチ回路SPLは、“L”レベルをラッチする。より具体的には、信号CSC2は、“L”レベルとされ、対応するラッチ回路SPLは、“L”レベルの信号CSC2をラッチする。この結果、ラッチ回路SPLは、出力信号SPL_PB2を“L”レベルとする。
半導体記憶装置20は、読み出しデータDoutを出力後、コマンド“48h”を受信すると、プレーンPB0におけるキャッシュプログラム動作を再開する。以降の動作は、図13と同様である。
1.5 本実施形態に係る効果
本実施形態に係る構成であれば、処理能力を向上できる半導体記憶装置を提供できる。以下、本効果につき詳述する。
半導体記憶装置20は、書き込み動作を中断して読み出し動作を実行する場合に、書き込み命令を受信したプレーンPBまたは書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとを比較するPBアドレス比較回路を含む。そして、書き込み命令を受信したプレーンPBまたは書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが同一の場合と、異なる場合とで、異なる読み出し動作を実行できる。
より具体的には、書き込み命令を受信したプレーンPBまたは書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが同一の場合、ラッチ回路XDLが保持している書き込みデータを他のラッチ回路(例えばラッチ回路SDL)に退避させて、データを読み出すことができる。他方で、書き込み命令を受信したプレーンPBまたは書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが異なる場合、ラッチ回路XDLが保持している書き込みデータを退避させずに、データを読み出すことができる。
更に、書き込み命令を受信したプレーンPBまたは書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが異なる場合、読み出し動作と並行して、ラッチ回路SDLに保持されているデータをラッチ回路XDLに転送するスキャンS2Xを実行できる。よって、書き込み命令を受信したプレーンPBまたは書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが異なる場合、読み出し動作のリードレイテンシの増加を抑制できる。よって、半導体記憶装置20の処理能力を向上できる。
更に、本実施形態に係る構成であれば、書き込み動作を実行しているプレーンPBと読み出し対象のプレーンPBとが異なる場合、書き込み動作に対応するロウアドレスRAのセット動作RA_Setが終了する前に、信号/RBを“H”レベルにできる。これにより、リードレイテンシと、読み出し動作終了からデータの出力までの期間とを短くできる。
2.第2実施形態
次に、第2実施形態について、説明する。第2実施形態では、複数プレーンPBが同期した書き込み動作を中断して読み出し動作を実行する場合の具体例について説明する。以下、第1実施形態と異なる点を中心に説明する。
2.1 読み出し動作の具体例
まず、第1サスペンドリード動作及び第2サスペンドリード動作の具体例について説明する。
2.1.1 第1サスペンドリード動作の具体例
第1サスペンドリード動作の具体例について、図15を用いて説明する。図15は、複数プレーンPBが同期した書き込み動作を中断して、プレーンPB0において第1サスペンドリード動作を実行する場合のコマンドシーケンス及び信号/RBを示すタイミングチャートである。
図15に示すように、まず、メモリコントローラ10は、半導体記憶装置20に、例えば、プレーンPB0におけるキャッシュプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、データ“Din”、及びコマンド“15h”)を送信する。
コマンド“15h”を受信すると、シーケンサ25は、キャッシュプログラム動作を開始する。ロジック制御回路23は、シーケンサ25がキャッシュプログラム動作を開始してから、書き込みデータDinをプレーンPB0内のラッチ回路SDLに転送させるまでの期間、信号/RBを“L”レベルとする。
次に、メモリコントローラ10は、“H”レベルの信号/RBを確認した後、複数プレーンPBが同期した書き込み動作を実行するため、半導体記憶装置20に、例えば、プレーンPB1における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB1)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。コマンド“11h”は、複数のプレーンPBを同期させて実行することを半導体記憶装置20に通知するためのコマンドである。コマンド“11h”がレジスタ24に格納されると、ロジック制御回路23は、信号/RBを“L”にする。シーケンサ25は、書き込みデータDinをプレーンPB1内の対応するラッチ回路XDLに入力する。
ロジック制御回路23は、書き込みデータDinがプレーンPB1内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにする。シーケンサ25は、プレーンPB1と同期させる書き込み動作を指示するコマンドを待つ。
メモリコントローラ10は、例えば、プレーンPB1内のラッチ回路XDLへの書き込みデータDinの入力が完了する前に、外部のホスト機器から、プレーンPB0における優先度の高い読み出し動作の実行命令を受ける。これに伴い、メモリコントローラ10は、半導体記憶装置20に、プレーンPB0における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB0)、及びコマンド“30h”)を送信する。これにより、半導体記憶装置20は、例えば、書き込みデータDinのラッチ回路XDLへの入力を中断させ、プレーンPB0において読み出し動作を割り込ませる動作を開始する。
具体的には、PBアドレス比較回路28は、書き込み動作を実行中のプレーンPB0及び書き込み命令(コマンド“80h”、アドレスADD(PB1)、書き込みデータ“Din”、及びコマンド“11h”)に対応するプレーンPB1と、読み出し対象となるプレーンPB0とを比較する。書き込み動作実行中のプレーンPB0と読み出し対象のプレーンPB0とは同じであるため、PBアドレス比較回路28は、信号MTCHを“H”レベルとする。シーケンサ25は、“H”レベルの信号MTCHに基づいて、第1サスペンドリード動作を選択する。
ロジック制御回路23は、信号/RBを“L”レベルにする。
シーケンサ25は、まず、スキャンS2Xを実行し、プレーンPB0のラッチ回路SDLに保持されている書き込みデータDinを、ラッチ回路XDLに転送する。
次に、シーケンサ25は、読み出し動作が可能となると、プレーンPB0における読み出し動作(第1サスペンドリード動作)を開始する。第1サスペンドリード動作の詳細は、第1実施形態の図11と同様である。
読み出し動作が終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。
メモリコントローラ10は、半導体記憶装置20がレディ状態になると、信号/REを繰り返しアサートする。信号/REがトグルされるたびに、読み出しデータDoutがメモリコントローラ10へ出力される。
メモリコントローラ10は、読み出し動作が終了すると、コマンド“3Fh”を発行し、半導体記憶装置20に送信する。コマンド“3Fh”は、ラッチ回路SDLに保持された書き込みデータDinの一部をラッチ回路XDLに転送するためのコマンドである。
コマンド“3Fh”を受信すると、ロジック制御回路23は、信号/RBを“L”レベルにする。シーケンサ25は、スキャン/S2Xを実行し、読み出し動作の前に入力済みの書き込みデータDinの反転データを、ラッチ回路SDLからラッチ回路XDLに転送させる。これにより、センスアンプユニットSAU内を、読み出し動作の割込みが発生する直前の状態に戻すことができる。
スキャン/S2Xが終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。
メモリコントローラ10は、“H”レベルの信号/RBを確認すると、半導体記憶装置20に、コマンド“48h”を送信する。コマンド“48h”受信後、シーケンサ25は、プレーンPB0におけるキャッシュプログラム動作を再開させると共に、プレーンPB1と同期させる書き込み動作を指示するコマンドを待つ。
2.1.2 第2サスペンドリード動作の具体例
次に、第2サスペンドリード動作の具体例について、図16を用いて説明する。図16は、複数プレーンPBが同期した書き込み動作を中断して、プレーンPB2において第2サスペンドリード動作を実行する場合のコマンドシーケンス及び信号/RBを示すタイミングチャートである。以下、図15と異なる点を中心に説明する。
図16に示すように、メモリコントローラ10は、図15と同様に、半導体記憶装置20に、プレーンPB1における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB1)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。
その後、メモリコントローラ10は、例えば、プレーンPB1内のラッチ回路XDLへの書き込みデータDinの入力が完了する前に、外部のホスト機器から、プレーンPB2における優先度の高い読み出し動作の実行命令を受ける。これに伴い、メモリコントローラ10は、半導体記憶装置20に、プレーンPB2における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB2)、及びコマンド“30h”)を送信する。これにより、半導体記憶装置20は、書き込みデータDinのラッチ回路XDLへの入力を中断させ、プレーンPB2において読み出し動作を割り込ませる動作を開始する。
具体的には、PBアドレス比較回路28は、書き込み動作を実行中のプレーンPB0及び書き込み命令(コマンド“80h”、アドレスADD(PB1)、書き込みデータ“Din”、及びコマンド“11h”)に対応するプレーンPB1と、読み出し対象となるプレーンPB2を比較する。書き込み動作を実行中のプレーンPB0及び書き込み命令に対応するプレーンPB1と、読み出し対象のプレーンPB2とは異なるため、PBアドレス比較回路28は、信号MTCHを“L”レベルとする。シーケンサ25は、“L”レベルの信号MTCHに基づいて、第2サスペンドリード動作を選択する。
ロジック制御回路23は、信号/RBを“L”レベルにする。
シーケンサ25は、まず、スキャンS2Xを実行し、プレーンPB0のラッチ回路SDLに保持されている書き込みデータDinを、ラッチ回路XDLに転送する。
次に、シーケンサ25は、読み出し動作が可能となると、プレーンPB2における読み出し動作(第2サスペンドリード動作)を開始する。第2サスペンドリード動作の詳細は、第1実施形態の図12と同様である。
読み出し動作が終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。
メモリコントローラ10は、半導体記憶装置20がレディ状態になると、信号/REを繰り返しアサートする。信号/REがトグルされるたびに、読み出しデータDoutがメモリコントローラ10へ出力される。
以降の動作は、図15と同様である。
2.2 レジスタ及びPBアドレス比較回路の動作の具体例
次に、レジスタ及びPBアドレス比較回路の動作について4つの具体例を説明する。
2.2.1 第1例
第1例では、ノーマルプログラム動作後、複数のプレーンPBが同期した書き込み動作を中断して第1サスペンドリード動作を実行する場合について、図17を用いて説明する。図17は、第1サスペンドリード動作に伴うコマンドシーケンス及び各種信号のタイミングチャートの一例を示す図である。
図17に示すように、まず、メモリコントローラ10は、半導体記憶装置20に、例えば、プレーンPBX(Xは、0~15の任意の整数)におけるノーマルプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PBX)、データ“Din”、及びコマンド“10h”)を送信する。
コマンド“10h”受信後、レジスタ24内では、プレーンPBXに対応するラッチ回路ユニット24_Xのラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PBX及び信号ACL_PBXは、“H”レベルとされる。
ロジック制御回路23は、信号/RBを“L”レベルにする。シーケンサ25は、PBXにおける書き込み動作(ノーマルプログラム動作)を開始する。プレーンPBXは、PBXにおける書き込み動作の期間、動作状態とされる。
プレーンPBXにおける書き込み動作終了後、ロジック制御回路23は、信号/RBを“H”レベルにする。
次に、メモリコントローラ10は、“H”レベルの信号/RBを確認した後、複数プレーンPBの同期した書き込み動作を実行するため、半導体記憶装置20に、例えば、プレーンPB0における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。
コマンド“11h”受信後、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PB0及び信号ACL_PB0は、“H”レベルとされる。
また、コマンド“11h”がレジスタ24に格納されると、ロジック制御回路23は、信号/RBを“L”にする。シーケンサ25は、書き込みデータDinをプレーンPB0内の対応するラッチ回路XDLに入力する。ロジック制御回路23は、書き込みデータDinがプレーンPB0内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにする。シーケンサ25は、プレーンPB0と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、半導体記憶装置20に、プレーンPB0における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB0)、及びコマンド“30h”)を送信する。これにより、半導体記憶装置20は、書き込みデータDinのラッチ回路XDLへの入力を中断させ、プレーンPB0において読み出し動作を割り込ませる動作を開始する。
コマンド“30h”受信後、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路SPLが、“H”レベルをラッチし、信号SPL_PB0は、“H”レベルとされる。
“H”レベルの信号DIL_PB0、ACL_PB0、及びSPL_PB0に対応して、PBアドレス比較回路28は、信号MTCHを“H”レベルとする。より具体的には、信号DIL_PB0、ACL_PB0、及びSPL_PB0が“H”レベルであるため、PBアドレス比較回路28内の論理回路ユニット51_0において、AND回路54は、“H”レベルの信号を出力する。この結果、OR回路52の出力信号MTCHは、“H”レベルとされる。
シーケンサ25は、“H”レベルの信号MTCHに対応して、プレーンPB0における読み出し動作(第1サスペンドリード動作)を実行する。第1サスペンドリード動作を実行している期間、プレーンPB0は、動作状態とされる。
第1サスペンドリード動作が終了すると、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路SPLが、“L”レベルをラッチし、信号SPL_PB0は、“L”レベルとされる。この結果、PBアドレス比較回路28は、信号MTCHを“L”レベルとする。
読み出しデータDoutを出力後にコマンド“3Fh”を受信すると、ロジック制御回路23は、信号/RBを“L”レベルにし、シーケンサ25は、スキャン/S2Xを開始する。シーケンサ25がスキャン/S2Xを実行している期間、プレーンPB0は動作状態とされ、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路SPLは、“H”レベルをラッチする。
ロジック制御回路23は、スキャン/S2Xが終了すると、信号/RBを“H”レベルにする。
メモリコントローラ10は、“H”レベルの信号/RBを確認すると、半導体記憶装置20に、コマンド“48h”を送信する。コマンド“48h”受信後、シーケンサ25は、プレーンPB0と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、プレーンPB0における書き込みデータDinの入力を途中で中断させた場合、コマンドセット(コマンド“85h”、アドレスADD(PB0)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。コマンド“85h”は、中断した書き込みデータDinの入力を再開する旨を半導体記憶装置20に通知するためのコマンドである。なお、当該書き込みデータDinは、読み出し動作による中断前にプレーンPB0内のラッチ回路XDLへの入力が完了していないデータが含まれていればよい。シーケンサ25は、書き込みデータDinをプレーンPB0内の対応するラッチ回路XDLに入力する。ロジック制御回路23は、書き込みデータDinがプレーンPB0内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにして、半導体記憶装置20がレディ状態であることをメモリコントローラ10に通知し、プレーンPB0と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、プレーンPB1における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB1)、書き込みデータ“Din”、及びコマンド“10h”)を送信する。
コマンド“10h”受信後、レジスタ24内では、ラッチ回路ユニット24_0及び24_1内のラッチ回路DIL及びACLが、“H”レベルをラッチする。
コマンド“10h”受信後、ロジック制御回路23は、信号/RBを“L”レベルにし、シーケンサ25は、プレーンPB0及びPB1が同期した書き込み動作を開始する。このとき、プレーンPB0及びPB1において、ラッチ回路XDLの書き込みデータDinがラッチ回路SDLに転送される。
プレーンPB0及びPB1が同期した書き込み動作を実行している期間、プレーンPB0及びPB1は、動作状態とされる。
プレーンPB0及びPB1が同期した書き込み動作が終了すると、ロジック制御回路23は、信号/RBを“H”レベルにする。
2.2.2 第2例
次に、第2例では、ノーマルプログラム動作後、複数のプレーンPBが同期した書き込み動作を中断して第2サスペンドリード動作を実行する場合について、図18を用いて説明する。図18は、第2サスペンドリード動作に伴うコマンドシーケンス及び各種信号のタイミングチャートの一例を示す図である。以下、図17と異なる点を中心に説明する。
図18に示すように、メモリコントローラ10は、図17と同様に、半導体記憶装置20に、プレーンPBXにおけるノーマルプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PBX)、データ“Din”、及びコマンド“10h”)を送信する。
コマンド“10h”受信後、レジスタ24内では、プレーンPBXに対応するラッチ回路ユニット24_Xのラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PBX及び信号ACL_PBXは、“H”レベルとされる。
ロジック制御回路23は、信号/RBを“L”レベルにする。シーケンサ25は、PBXにおける書き込み動作(ノーマルプログラム動作)を開始する。プレーンPBXは、PBXにおける書き込み動作の期間、動作状態とされる。
プレーンPBXにおける書き込み動作終了後、ロジック制御回路23は、信号/RBを“H”レベルにする。
次に、メモリコントローラ10は、“H”レベルの信号/RBを確認した後、複数プレーンPBの同期した書き込み動作を実行するため、半導体記憶装置20に、例えば、プレーンPB0における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。
コマンド“11h”受信後、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PB0及び信号ACL_PB0は、“H”レベルとされる。
また、コマンド“11h”がレジスタ24に格納されると、ロジック制御回路23は、信号/RBを“L”にする。シーケンサ25は、書き込みデータDinをプレーンPB0内の対応するラッチ回路XDLに入力する。ロジック制御回路23は、書き込みデータDinがプレーンPB0内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにする。シーケンサ25は、プレーンPB0と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、半導体記憶装置20に、プレーンPB1における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB1)、及びコマンド“30h”)を送信する。これにより、半導体記憶装置20は、プレーンPB0における書き込みデータDinのラッチ回路XDLへの入力を中断させ、プレーンPB1において読み出し動作を割り込ませる動作を開始する。
コマンド“30h”受信後、レジスタ24内では、プレーンPB1に対応するラッチ回路ユニット24_1内のラッチ回路SPLが、“H”レベルをラッチし、信号SPL_PB1は、“H”レベルとされる。この結果、PBアドレス比較回路28は、信号MTCHを“L”レベルとする。より具体的には、PBアドレス比較回路28内の論理回路ユニット51_0において、信号DIL_PB0及びACL_PB0は“H”レベルであり、信号SPL_PB0は“L”レベルであるため、AND回路54は、“L”レベルの信号を出力する。また、論理回路ユニット51_1において、信号DIL_PB1及びACL_PB1は“L”レベルであり、信号SPL_PB1は“H”レベルであるため、AND回路54は、“L”レベルの信号を出力する。この結果、OR回路52の出力信号MTCHは、“L”レベルとされる。
シーケンサ25は、“L”レベルの信号MTCHに対応して、プレーンPB1における読み出し動作(第2サスペンドリード動作)を実行する。第2サスペンドリード動作を実行している期間、プレーンPB1は、動作状態とされる。
第2サスペンドリード動作が終了すると、レジスタ24内では、プレーンPB1に対応するラッチ回路ユニット24_1内のラッチ回路SPLが、“L”レベルをラッチし、信号SPL_PB1は、“L”レベルとされる。引き続き、信号MTCHは、“L”レベルとされる。
読み出しデータDoutを出力後にコマンド“3Fh”を受信すると、ロジック制御回路23は、信号/RBを“L”レベルにし、シーケンサ25は、スキャン/S2Xを開始する。シーケンサ25がスキャン/S2Xを実行している期間、プレーンPB0は動作状態とされ、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路SPLは、“H”レベルをラッチする。
ロジック制御回路23は、スキャン/S2Xが終了すると、信号/RBを“H”レベルにする。
メモリコントローラ10は、“H”レベルの信号/RBを確認すると、半導体記憶装置20に、コマンド“48h”を送信する。コマンド“48h”受信後、シーケンサ25は、プレーンPB0と同期させる書き込み動作を指示するコマンドを待つ。
以降の動作は、第1例と同様である。
2.2.3 第3例
次に、第3例では、キャッシュプログラム動作後、複数のプレーンPBが同期した書き込み動作を中断して第1サスペンドリード動作を実行する場合について、図19を用いて説明する。図19は、第1サスペンドリード動作に伴うコマンドシーケンス及び各種信号のタイミングチャートの一例を示す図である。
図19に示すように、まず、メモリコントローラ10は、半導体記憶装置20に、例えば、プレーンPB0におけるキャッシュプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、データ“Din”、及びコマンド“15h”)を送信する。
コマンド“15h”受信後、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0のラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PB0及び信号ACL_PB0は、“H”レベルとされる。
ロジック制御回路23は、信号/RBを“L”レベルにする。シーケンサ25は、PB0における書き込み動作(キャッシュプログラム動作)を開始する。また、プレーンPB0は、動作状態とされる。
プレーンPB0においてラッチ回路XDLからラッチ回路SDLに書き込みデータDinが転送された後、ロジック制御回路23は、信号/RBを“H”レベルにする。
次に、メモリコントローラ10は、“H”レベルの信号/RBを確認した後、複数プレーンPBの同期した書き込み動作を実行するため、半導体記憶装置20に、例えば、プレーンPB2における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB2)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。
コマンド“11h”受信後、レジスタ24内では、プレーンPB0及びPB2にそれぞれ対応するラッチ回路ユニット24_0及び24_2内のラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PB0、信号DIL_PB2、信号ACL_PB0、及び信号ACL_PB2は、“H”レベルとされる。
また、コマンド“11h”がレジスタ24に格納されると、ロジック制御回路23は、信号/RBを“L”にする。シーケンサ25は、書き込みデータDinをプレーンPB2内の対応するラッチ回路XDLに入力する。ロジック制御回路23は、書き込みデータDinがプレーンPB2内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにする。シーケンサ25は、プレーンPB2と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、半導体記憶装置20に、プレーンPB2における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB2)、及びコマンド“30h”)を送信する。これにより、半導体記憶装置20は、書き込みデータDinのラッチ回路XDLへの入力を中断させ、プレーンPB2において読み出し動作を割り込ませる動作を開始する。
コマンド“30h”受信後、レジスタ24内では、プレーンPB2に対応するラッチ回路ユニット24_2内のラッチ回路SPLが、“H”レベルをラッチし、信号SPL_PB2は、“H”レベルとされる。この結果、PBアドレス比較回路28は、信号MTCHを“H”レベルとする。より具体的には、PBアドレス比較回路28内の論理回路ユニット51_0において、信号DIL_PB0及びACL_PB0は“H”レベルであり、信号SPL_PB0は“L”レベルであるため、AND回路54は、“L”レベルの信号を出力する。また、論理回路ユニット51_2において、信号DIL_PB2、ACL_PB2、及びSPL_PB2は“H”レベルであるため、AND回路54は、“H”レベルの信号を出力する。この結果、OR回路52の出力信号MTCHは、“H”レベルとされる。
また、コマンド“30h”受信後、シーケンサ25は、プレーンPB0におけるキャッシュプログラム動作を中断させる。キャッシュプログラム動作を実行している期間、プレーンPB0は、動作状態とされる。
次に、シーケンサ25は、“H”レベルの信号MTCHに対応して、プレーンPB2における読み出し動作(第1サスペンドリード動作)を実行する。第1サスペンドリード動作を実行している期間、プレーンPB2は、動作状態とされる。
第1サスペンドリード動作が終了すると、レジスタ24内では、プレーンPB2に対応するラッチ回路ユニット24_2内のラッチ回路SPLが、“L”レベルをラッチし、信号SPL_PB2は、“L”レベルとされる。この結果、PBアドレス比較回路28は、信号MTCHを“L”レベルとする。
また、第1サスペンドリード動作が終了すると、キャッシュプログラム動作を中断させているプレーンPB0が動作状態とされる。
読み出しデータDoutを出力後にコマンド“3Fh”を受信すると、ロジック制御回路23は、信号/RBを“L”レベルにし、シーケンサ25は、プレーンPB2におけるスキャン/S2Xを開始する。シーケンサ25がスキャン/S2Xを実行している期間、プレーンPB2は動作状態とされ、プレーンPB2に対応するラッチ回路ユニット24_2内のラッチ回路SPLは、“H”レベルをラッチする。
ロジック制御回路23は、スキャン/S2Xが終了すると、信号/RBを“H”レベルにする。また、キャッシュプログラム動作を中断させているプレーンPB0が動作状態とされる。
メモリコントローラ10は、“H”レベルの信号/RBを確認すると、半導体記憶装置20に、コマンド“48h”を送信する。コマンド“48h”を受信すると、シーケンサ25は、プレーンPB0におけるキャッシュ書き込み動作を再開する。また、シーケンサ25は、プレーンPB2と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、プレーンPB2における書き込みデータDinの入力を途中で中断させた場合、コマンドセット(コマンド“85h”、アドレスADD(PB2)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。シーケンサ25は、書き込みデータDinをプレーンPB2内の対応するラッチ回路XDLに入力する。ロジック制御回路23は、書き込みデータDinがプレーンPB2内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにして、半導体記憶装置20がレディ状態であることをメモリコントローラ10に通知し、プレーンPB2と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、プレーンPB3における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB3)、書き込みデータ“Din”、及びコマンド“15h”)を送信する。
コマンド“15h”受信後、レジスタ24内では、ラッチ回路ユニット24_0、24_2、及び24_3内のラッチ回路DIL及びACLが、“H”レベルをラッチする。
プレーンPB0におけるキャッシュ書き込み動作が終了すると、プレーンPB0に対応するラッチ回路ユニット24_0内のラッチ回路DIL及びACLは、“L”レベルをラッチする。すなわち、ラッチ回路ユニット24_2及び24_3内のラッチ回路DIL及びACLが、“H”レベルをラッチする。
また、ロジック制御回路23は、信号/RBを“L”レベルにし、シーケンサ25は、プレーンPB2及びPB3が同期した書き込み動作を開始する。このとき、プレーンPB2及びPB3において、ラッチ回路XDLの書き込みデータDinがラッチ回路SDLに転送される。
ロジック制御回路23は、プレーンPB2及びPB3において、ラッチ回路XDLからラッチ回路SDLへの書き込みデータDinの転送が終了すると、信号/RBを“H”レベルにする。
書き込み動作を実行している期間、プレーンPB2及びPB3は動作状態とされる。
2.2.4 第4例
次に、第4例では、キャッシュプログラム動作後、複数のプレーンPBが同期した書き込み動作を中断して第2サスペンドリード動作を実行する場合について、図20を用いて説明する。図20は、第2サスペンドリード動作に伴うコマンドシーケンス及び各種信号のタイミングチャートの一例を示す図である。
図20に示すように、メモリコントローラ10は、図17と同様に、半導体記憶装置20に、プレーンPB0におけるキャッシュプログラム動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB0)、データ“Din”、及びコマンド“15h”)を送信する。
コマンド“15h”受信後、レジスタ24内では、プレーンPB0に対応するラッチ回路ユニット24_0のラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PB0及び信号ACL_PB0は、“H”レベルとされる。
ロジック制御回路23は、信号/RBを“L”レベルにする。シーケンサ25は、PB0における書き込み動作(キャッシュプログラム動作)を開始する。また、プレーンPB0は、動作状態とされる。
プレーンPB0においてラッチ回路XDLからラッチ回路SDLに書き込みデータDinが転送された後、ロジック制御回路23は、信号/RBを“H”レベルにする。
次に、メモリコントローラ10は、“H”レベルの信号/RBを確認した後、複数プレーンPBの同期した書き込み動作を実行するため、半導体記憶装置20に、例えば、プレーンPB2における書き込み動作に対応するコマンドセット(コマンド“80h”、アドレスADD(PB2)、書き込みデータ“Din”、及びコマンド“11h”)を送信する。
コマンド“11h”受信後、レジスタ24内では、プレーンPB0及びPB2にそれぞれ対応するラッチ回路ユニット24_0及び24_2内のラッチ回路DIL及びACLが、“H”レベルをラッチする。この結果、信号DIL_PB0、信号DIL_PB2、信号ACL_PB0、及び信号ACL_PB2は、“H”レベルとされる。
また、コマンド“11h”がレジスタ24に格納されると、ロジック制御回路23は、信号/RBを“L”にする。シーケンサ25は、書き込みデータDinをプレーンPB2内の対応するラッチ回路XDLに入力する。ロジック制御回路23は、書き込みデータDinがプレーンPB2内の対応するラッチ回路XDLに入力された後、信号/RBを“H”レベルにする。シーケンサ25は、プレーンPB2と同期させる書き込み動作を指示するコマンドを待つ。
次に、メモリコントローラ10は、半導体記憶装置20に、プレーンPB1における読み出し動作に対応するコマンドセット(コマンド“00h”、アドレスADD(PB1)、及びコマンド“30h”)を送信する。これにより、半導体記憶装置20は、書き込みデータDinのラッチ回路XDLへの入力を中断させ、プレーンPB1において読み出し動作を割り込ませる動作を開始する。
コマンド“30h”受信後、レジスタ24内では、プレーンPB1に対応するラッチ回路ユニット24_1内のラッチ回路SPLが、“H”レベルをラッチし、信号SPL_PB1は、“H”レベルとされる。この結果、PBアドレス比較回路28は、信号MTCHを“L”レベルとする。より具体的には、PBアドレス比較回路28内の論理回路ユニット51_0において、信号DIL_PB0及びACL_PB0は“H”レベルであり、信号SPL_PB0は“L”レベルであるため、AND回路54は、“L”レベルの信号を出力する。論理回路ユニット51_1において、信号DIL_PB1及びACL_PB1は“L”レベルであり、信号SPL_PB1は“H”レベルであるため、AND回路54は、“L”レベルの信号を出力する。また、論理回路ユニット51_2において、信号DIL_PB2及びACL_PB2は“H”レベルであり、信号SPL_PB2は“L”レベルであるため、AND回路54は、“L”レベルの信号を出力する。この結果、OR回路52の出力信号MTCHは、“L”レベルとされる。
また、コマンド“30h”受信後、シーケンサ25は、プレーンPB0におけるキャッシュプログラム動作を中断させる。キャッシュプログラム動作を実行している期間、プレーンPB0は、動作状態とされる。
次に、シーケンサ25は、“L”レベルの信号MTCHに対応して、プレーンPB1における読み出し動作(第2サスペンドリード動作)を実行する。第2サスペンドリード動作を実行している期間、プレーンPB1は、動作状態とされる。
第2サスペンドリード動作が終了すると、レジスタ24内では、プレーンPB1に対応するラッチ回路ユニット24_1内のラッチ回路SPLが、“L”レベルをラッチし、信号SPL_PB1は、“L”レベルとされる。引き続き、信号MTCHは、“L”レベルとされる。
また、第2サスペンドリード動作が終了すると、キャッシュプログラム動作を中断させているプレーンPB0が動作状態とされる。
読み出しデータDoutを出力後にコマンド“3Fh”を受信すると、ロジック制御回路23は、信号/RBを“L”レベルにし、シーケンサ25は、プレーンPB2におけるスキャン/S2Xを開始する。シーケンサ25がスキャン/S2Xを実行している期間、プレーンPB2は動作状態とされ、プレーンPB2に対応するラッチ回路ユニット24_2内のラッチ回路SPLは、“H”レベルをラッチする。
ロジック制御回路23は、スキャン/S2Xが終了すると、信号/RBを“H”レベルにする。また、キャッシュプログラム動作を中断させているプレーンPB0が動作状態とされる。
メモリコントローラ10は、“H”レベルの信号/RBを確認すると、半導体記憶装置20に、コマンド“48h”を送信する。コマンド“48h”を受信すると、シーケンサ25は、プレーンPB0におけるキャッシュ書き込み動作を再開する。また、シーケンサ25は、プレーンPB2と同期させる書き込み動作を指示するコマンドを待つ。
以降の動作は、第3例と同様である。
2.3 本実施形態に係る効果
本実施形態に係る構成であれば、第1実施形態と同様の効果が得られる。
3.変形例等
本実施形態に係る半導体記憶装置は、各々が、複数のメモリセル(MT)を含むメモリセルアレイ(21_1)を有する、複数のプレーン(PB)と、書き込み動作を中断して読み出し動作を実行する場合に、書き込み動作に対応する第1プレーンアドレスと読み出し動作に対応する第2プレーンアドレスとを比較するように構成された比較回路(28)と、書き込み動作を中断して、読み出し動作を実行可能な制御回路(25)とを含む。読み出し動作は、第1読み出し動作と第2読み出し動作とを含む。制御回路は、比較回路の出力信号(MTCH)に基づいて、書き込み動作に対応する第1プレーンアドレスと読み出し動作に対応する第2プレーンアドレスとが同一である場合、第1読み出し動作(第1サスペンドリード動作)を実行し、書き込み動作に対応する第1プレーンアドレスと読み出し動作に対応する第2プレーンアドレスとが異なる場合、第2読み出し動作(第2サスペンドリード動作)を実行するように構成される。
上記実施形態を適用することにより、処理能力を向上できる半導体記憶装置を提供できる。なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
例えば、上記実施形態において、書き込み動作を中断して読み出し動作を実行する場合について説明したが、消去動作を中断して読み出し動作を実行してもよい。
また、例えば、上記実施形態において、メモリセルトランジスタMTは、2ビット以上のデータを保持可能であってもよい。例えば、2ビット以上のデータの書き込み動作及び読み出し動作においても本実施形態を適用できる。
また、例えば、上記実施形態において、書き込み動作は、過去に実行したベリファイ動作の結果に応じてプログラム電圧を変更するスマートベリファイ動作、または、1つの閾値レベルに対して複数のベリファイ電圧を設定し、プログラム電圧を変更させるクイックパスライト動作を含んでいてもよい。
または、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。