IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128544
(43)【公開日】2024-09-24
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
   G11C 11/56 20060101AFI20240913BHJP
   G11C 16/24 20060101ALI20240913BHJP
   G11C 16/10 20060101ALI20240913BHJP
   G11C 16/04 20060101ALI20240913BHJP
【FI】
G11C11/56 210
G11C16/24 130
G11C16/10 160
G11C16/04 170
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023037553
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110000408
【氏名又は名称】弁理士法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】池上 一隆
【テーマコード(参考)】
5B225
【Fターム(参考)】
5B225BA08
5B225BA19
5B225CA06
5B225CA30
5B225DB02
5B225DB08
5B225EA05
5B225EE04
5B225EE18
5B225EE19
5B225EJ08
5B225EK04
5B225FA02
(57)【要約】
【課題】センスアンプユニット内のラッチ回路を低減可能な半導体記憶装置を提供すること。
【解決手段】半導体記憶装置は、i本のビット線と、i本のビット線のそれぞれに接続され、各々が2通り以上の閾値電圧に設定可能なi個のメモリセルと、i本のビット線にそれぞれに接続され、m個のラッチ回路を含み、各々がi本のビット線のうち対応する1つにラッチ回路に格納されたデータに基づいて2通り以上のレベルを管理可能なセンスアンプ部と、m個のラッチ回路にデータを入力するとともに、i個のメモリセルのそれぞれへの書き込み動作を実行可能に制御するロジック制御回路と、を含み、ロジック制御回路は、i個のメモリセルに、m個のラッチ回路に第1のmビットのデータを入力して実行する第1の書き込み動作と、m個のラッチ回路に第2のmビットのデータを入力して実行する第2の書き込み動作とを含む複数回の書き込み動作を実行する。
【選択図】図20
【特許請求の範囲】
【請求項1】
i本のビット線と、
前記i本のビット線とそれぞれ電気的に接続され、各々が2通り(nは2以上の整数)以上の閾値電圧に設定可能なi個のメモリセルと、
前記i個のメモリセルのゲートに共通に接続されたワード線と、
前記i本のビット線にそれぞれ電気的に接続され、m個(mはn+1より小さい自然数)のラッチ回路を含み、各々が前記i本のビット線のうち対応する1つに前記ラッチ回路に格納されたデータに基づいて前記2通り以上のレベルを管理可能なセンスアンプ部と、
前記m個のラッチ回路にデータを入力するとともに、前記i個のメモリセルのそれぞれへのプログラム動作とベリファイ動作とを含む書き込み動作を実行可能に制御するロジック制御回路と、
を含み、
前記ロジック制御回路は、
前記i個のメモリセルに、書き込み動作をx(xは2以上の整数)回実行し、
前記x回の書き込み動作は、
前記m個のラッチ回路に第1のmビットのデータを入力して実行する第1の書き込み動作と、
前記第1の書き込み動作のあとに実行され、前記m個のラッチ回路に、前記第1のmビットのデータとは異なる第2のmビットのデータを入力して実行する第2の書き込み動作とを含む、
半導体記憶装置。
【請求項2】
前記ロジック制御回路は、
前記第1の書き込み動作と前記第2の書き込み動作のそれぞれにおいて、L回以下の前記プログラム動作が実行され、
前記第1の書き込み動作において前記第1のmビットのデータに対応する2m個のベリファイレベルの上位kレベル(kは2mより小さい正の整数)のベリファイ動作を実行するとき、k個の電圧をベリファイ動作の対象となるk個のメモリセルに供給し、
前記第2の書き込み動作において前記第2のmビットのデータに対応する2m個のベリファイレベルの下位kレベル(kは2mより小さい正の整数)のベリファイ動作を実行するとき、前記k個の電圧を前記k個のメモリセルに供給する、
請求項1に記載の半導体記憶装置。
【請求項3】
前記ロジック制御回路は、
前記第1の書き込み動作におけるベリファイ動作のときに、前記i個のメモリセルのうち少なくとも1つのメモリセルに、第1の電圧を供給し、
前記第2の書き込み動作におけるベリファイ動作のときに、前記i個のメモリセルのうち少なくとも1つのメモリセルに、第2の電圧を供給し、
前記第1の電圧と前記第2の電圧とは同一である、
請求項1に記載の半導体記憶装置。
【請求項4】
前記ロジック制御回路は、前記第1の書き込み動作を実行可能な第1のコマンドを含む、
請求項1に記載の半導体記憶装置。
【請求項5】
前記ロジック制御回路は、
前記第1のmビットのデータを含むページを指定可能な第2のコマンドを含み、
前記第1のコマンドと前記第2のコマンドとを、同一の動作期間で、実行可能に制御する、
請求項4に記載の半導体記憶装置。
【請求項6】
前記第1の書き込み動作と前記第2の書き込み動作のそれぞれにおいて、L回以下の前記プログラム動作が実行され、
前記ロジック制御回路は、前記第1の書き込み動作のうち、
L-1回目の前記プログラム動作において、第1のプログラム電圧を、前記プログラム動作の対象となるメモリセルに供給し、
L回目の前記プログラム動作において、前記第1のプログラム電圧より大きな第2のプログラム電圧を、前記プログラム動作の対象となるメモリセルに供給する、
請求項1に記載の半導体記憶装置。
【請求項7】
前記第1の書き込み動作と前記第2の書き込み動作のそれぞれにおいて、L回以下の前記プログラム動作が実行され、
前記ロジック制御回路は、前記第1の書き込み動作のうち、
1回目の前記プログラム動作において、第1のプログラム電圧を、前記プログラム動作の対象となるメモリセルに供給し、
前記ロジック制御回路は、前記第2の書き込み動作のうち、
1回目の前記プログラム動作において、前記第1のプログラム電圧より大きな第2のプログラム電圧を、前記プログラム動作の対象となるメモリセルに供給する、
請求項1に記載の半導体記憶装置。
【請求項8】
前記ロジック制御回路は、
読み出し動作を実行可能に制御し、
前記第1の書き込み動作及び第2の書き込み動作が終了した後に、前記読み出し動作を実行し、前記2通り以上のレベルに対応するデータを読み出す、
請求項1に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は半導体記憶装置に関する。
【背景技術】
【0002】
不揮発性半導体記憶装置としてNAND型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-050071号公報
【特許文献2】特開2018-041523号公報
【特許文献3】特開2020‐047329号公報
【特許文献4】特開2022-144309号公報
【特許文献5】特開2022-045789号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
センスアンプユニット内のラッチ回路の必要個数を低減可能な半導体記憶装置を提供する。
【課題を解決するための手段】
【0005】
一実施形態に係る半導体記憶装置は、i本のビット線と、前記i本のビット線とそれぞれ電気的に接続され、各々が2通り(nは2以上の整数)以上の閾値電圧に設定可能なi個のメモリセルと、前記i個のメモリセルのゲートに共通に接続されたワード線と、前記i本のビット線にそれぞれ電気的に接続され、m個(mはn+1より小さい自然数)のラッチ回路を含み、各々が前記i本のビット線のうち対応する1つに前記ラッチ回路に格納されたデータに基づいて前記2通り以上のレベルを管理可能なセンスアンプ部と、前記m個のラッチ回路にデータを入力するとともに、前記i個のメモリセルのそれぞれへのプログラム動作とベリファイ動作とを含む書き込み動作を実行可能に制御するロジック制御回路と、を含み、前記ロジック制御回路は、前記i個のメモリセルに、書き込み動作をx回実行し、前記x回の書き込み動作は、前記m個のラッチ回路に第1のmビットのデータを入力して実行する第1の書き込み動作と、前記第1の書き込み動作のあとに実行され、前記m個のラッチ回路に、前記第1のmビットのデータとは異なる第2のmビットのデータを入力して実行する第2の書き込み動作とを含む。
【図面の簡単な説明】
【0006】
図1】第1実施形態に係る半導体記憶装置を含むメモリシステム及びホストの構成を示すブロック図である。
図2】第1実施形態に係るサブコードジェネレータの構成を示すブロック図である。
図3】第1実施形態に係る半導体記憶装置を含むメモリシステムの構成を示すブロック図である。
図4】第1実施形態に係るメモリセルの構成を示す回路図である。
図5】第1実施形態に係るメモリセルトランジスタの閾値分布の一例を示す模式図である。
図6】第1実施形態に係るメモリセルトランジスタのデータの割り付けの一例を示す図である。
図7】第1実施形態に係るメモリセルの断面を示す断面図である。
図8】第1実施形態に係るメモリシステムの書き込み動作時における各配線の電位変化を示すタイミングチャートである。
図9】第1実施形態に係るメモリシステムのプログラム動作時におけるNANDストリングの様子を示す回路図である。
図10】第1実施形態に係るメモリシステムのベリファイ動作時における各配線の電位変化を示すタイミングチャートである。
図11】第1実施形態に係るメモリシステムの書き込み動作における、プログラムループ回数とプログラム動作及びベリファイ動作との関係を示す図である。
図12】第1実施形態に係るメモリシステムのサブプログラムシーケンスにおけるプログラム動作及びベリファイ動作のタイミングを示す図である。
図13】第1実施形態に係るセンスアンプユニットの回路構成の一例を示す回路図である。
図14A】第1実施形態に係るセンスアンプユニットの動作の一例を示す図である。
図14B】第1実施形態に係るセンスアンプユニットの動作の一例を示す図である。
図14C】第1実施形態に係るセンスアンプユニットの動作の一例を示す図である。
図15】比較例に係るセンスアンプユニットの回路構成の一例を示す回路図である。
図16】比較例に係るメモリセルトランジスタの閾値分布とデータラッチ(ページ)の関係を示す模式図である。
図17】第1実施形態に係るメモリセルトランジスタの閾値分布とデータラッチ(ページ)の関係を示す模式図である。
図18】第1実施形態に係るセンスアンプユニットのレイアウト示す模式図である。
図19A】第1実施形態に係るサブプログラムシーケンスのタイミングチャートを示す図である。
図19B】第1実施形態に係るサブプログラム動作のタイミングチャートを示す図である。
図19C】第1実施形態に係るサブプログラムシーケンスのタイミングチャートを示す図である。
図19D】第1実施形態に係るサブプログラム動作のタイミングチャートを示す図である。
図20】第1実施形態に係るメモリシステムのサブプログラムシーケンスにおけるプログラム動作及びベリファイ動作のタイミングを示す図である。
図21】第1実施形態に係るメモリシステムのサブプログラムシーケンスの一例を示す図である。
図22】比較例に係るメモリシステムのプログラムシーケンスの一例を示す図である。
図23】第1実施形態に係るメモリシステムのエンコードデータテーブルの一例を示す図である。
図24】第1実施形態に係るメモリシステムのサブプログラムシーケンスの一例を示す図である。
図25】第2実施形態に係るメモリシステムのエンコードデータの一例を示す図である。
図26】第3実施形態に係るメモリシステムのサブプログラムシーケンスの一例を示す図である。
【発明を実施するための形態】
【0007】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一、又は類似する機能及び構成を有する構成要素については、共通する参照符号を付す。共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字(、例えば、アルファベットの大文字、アルファベットの大文字、数字、ハイフンとアルファベットの大文字と数字など)を付して区別する。
【0008】
以下の説明では、信号X<p:0>(pは自然数)とは、(p+1)ビットの信号であり、各々が1ビットの信号である信号X<0>、X<1>、・・・、及びX<p>の集合を意味する。構成要素Y<p:0>とは、信号X<p:0>の入力又は出力に1対1に対応する構成要素Y<0>、Y<1>、・・・、及びY<p>の集合を意味する。
【0009】
<第1実施形態>
以下に、第1実施形態に係るメモリシステム3を説明する。
【0010】
<1-1.構成例>
<1-1―1.メモリシステム3及びホスト4>
図1を用いて、メモリシステム3及びホスト4の概要を説明する。図1は、メモリシステム3及びホスト4の構成例を示すブロック図である。メモリシステム3は、メモリコントローラ1及び半導体記憶装置2を含む。メモリシステム3は、ホスト4と接続可能である。メモリシステム3は、例えば、SSD(solid state drive)、SDTMカードのようなメモリカード等である。ホスト4は、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。メモリシステム3は、ホスト4を含んでもよい。
【0011】
半導体記憶装置2は、例えば、メモリコントローラ1に接続され、メモリコントローラ1を用いて制御される。半導体記憶装置2は、データを不揮発に記憶するメモリであり、例えば、NANDメモリ(NAND型フラッシュメモリ)を備えている。半導体記憶装置2は、i本のビット線BLに電気的に接続されたi個のメモリセルを含む。メモリセルのそれぞれは、メモリセルトランジスタMT(図4)を含む。一つのメモリセル(メモリセルトランジスタMT)は、2通り(nは正の整数)以上の閾値電圧に設定可能である。この場合、読み出し動作および書き込み動作の単位である複数のメモリセルは、nページ分のデータを保持することができる。例えば、読み出し動作および書き込み動作の対象となるデータの単位が16kBである場合、217個数のメモリセルに対して一括して読み出し動作および書き込み動作がなされる。
【0012】
例えば、半導体記憶装置2は、1つのメモリセルあたり5bit(2通り、32値)の閾値電圧に設定可能なメモリセルを有する、5bit/Cell(PLC(Penta Level Cell)のNANDメモリである。この場合、読み出し動作および書き込み動作の単位としての217個数のメモリセルは、5ページ分(16kB×5)のデータを保持することができる。
【0013】
また、半導体記憶装置2は、1つのメモリセルあたり4bit(2通り、16値)の閾値電圧に設定可能なメモリセルを有する、4bit/Cell(QLC(Quad Level Cell))のNANDメモリが用いられてよく、1つのメモリセルあたり3bit(2通り、8値)の閾値電圧に設定可能なメモリセルを有する、3bit/Cell(TLC(Triple Level Cell))のNANDメモリが用いられてよく、1つのメモリセルあたり2bit(2通り、4値)の閾値電圧に設定可能なメモリセルを有する、2bit/Cell(MLC(Multi Level Cell)のNANDメモリが用いられてもよい。
【0014】
メモリコントローラ1は、例えば、ホスト4から半導体記憶装置2の動作に必要なリクエストを受信し、当該リクエストを半導体記憶装置2に送信する。メモリコントローラ1は、当該リクエストを半導体記憶装置2に送信し、半導体記憶装置2からのデータの読み出し動作、半導体記憶装置2へのデータの書き込み動作、及び半導体記憶装置2のデータの消去動作を制御する。
【0015】
<1-1―2.メモリコントローラ1の構成>
図1図3を用いて、メモリコントローラ1の構成を説明する。図2は、サブコードジェネレータ17の構成を示すブロック図であり、図3は半導体記憶装置2を含むメモリシステム3の構成を示すブロック図である。
【0016】
メモリコントローラ1と半導体記憶装置2との間では、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、リードイネーブル信号REn、ライトプロテクト信号WPn、信号DQ<7:0>、及びデータストローブ信号DQSnの各信号が送受信される。
【0017】
例えば、半導体記憶装置2とメモリコントローラ1は、それぞれが、半導体チップ(以下、単にチップともいう)として形成される。
【0018】
チップイネーブル信号CEnは、半導体記憶装置2をイネーブル(有効)にするための信号である。コマンドラッチイネーブル信号CLEは、半導体記憶装置2に入力される信号DQがコマンドCMDであることを入出力回路22に通知するための信号である。アドレスラッチイネーブル信号ALEは、半導体記憶装置2に入力される信号DQがアドレス情報ADDであることを入出力回路22に通知するための信号である。
【0019】
ライトイネーブル信号WEnは、受信した信号を半導体記憶装置2に取り込むための信号であり、メモリコントローラ1によりコマンド、アドレス、及びデータを受信する都度アサートされる。例えば、信号WEnが“L(Low)”レベルである間に信号DQ<7:0>を取り込むよう半導体記憶装置2に指示する。
【0020】
リードイネーブル信号REnは、メモリコントローラ1が、半導体記憶装置2からデータを読み出すための信号である。例えば、リードイネーブル信号REnは、信号DQ<7:0>を出力する際の半導体記憶装置2の動作タイミングを制御するために使用される。
【0021】
ライトプロテクト信号WPnは、データ書き込み及び消去の禁止を半導体記憶装置2に指示するための信号である。信号DQ<7:0>は、半導体記憶装置2とメモリコントローラ1との間で送受信されるデータの実体である。信号DQ<7:0>は、8ビットの信号である。データストローブ信号DQSnは、信号DQ<7:0>の入出力のタイミングを制御するための信号である。
【0022】
メモリコントローラ1は、RAM(Random Access Memory)11、プロセッサ12、ホストインターフェイス13、ECC(Error Check and Correct)回路14、メモリインターフェイス15、及びサブコードジェネレータ17を含む。RAM11、プロセッサ12、ホストインターフェイス13、ECC回路14、メモリインターフェイス15及びサブコードジェネレータ17は、互いに内部バス16で接続される。
【0023】
ホストインターフェイス13は、ホスト4から受信したリクエスト、ユーザデータ(書き込みデータ)などを内部バス16に出力する。また、ホストインターフェイス13は、半導体記憶装置2から読み出されたユーザデータ、プロセッサ12からの応答などをホスト4へ送信する。
【0024】
メモリインターフェイス15は、プロセッサ12の指示に基づいて、ユーザデータ等を半導体記憶装置2に書き込む書き込み動作、及び、ユーザデータ等を半導体記憶装置2から読み出す読み出し動作を制御する。
【0025】
プロセッサ12は、メモリコントローラ1を統括的に制御する。プロセッサ12は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。プロセッサ12は、ホスト4からホストインターフェイス13経由でリクエストを受けた場合に、そのリクエストに従った制御を行う。
【0026】
ECC回路14は、RAM11に格納されたユーザデータを符号化して、符号語を生成する。また、ECC回路14は、半導体記憶装置2から読み出された符号語を復号する。
【0027】
サブコードジェネレータ17は、「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドに含まれる「サブコードインデックス」及び「エンコードデータ」を生成し、「サブコードインデックス」及び「エンコードデータ」を合成する構成及び機能を有する。
【0028】
サブプログラムシーケンスは、標準的なプログラムシーケンスを、複数のサブコーディングでプログラム制御する方式である。サブプログラムシーケンスは、複数のサブコーディングを重ねて、追記して、複数の閾値分布を形成するように制御する方式であり、追記方式と呼ばれる場合がある。また、詳細は後述されるが、サブプログラムシーケンスにおいて、各サブコーディングの最上位の閾値分布のレベルに対応するデータと、次のサブコーディングの最下位の閾値分布のレベルに対応するデータとを重ねる。
【0029】
サブコードジェネレータ17は、例えば、サブコードインデックスレジスタ171、ライトデータバッファ172、及びサブコードエンコーダ173を含む。ライトデータバッファ172は、例えば、RAM11に格納されるユーザデータを受信し、ユーザデータを一時的に格納する。サブコードインデックスレジスタ171は、サブコーディングの順番を示すインデックス及びページを示すインデックス(例えば、01h、02h、・・・、05h、11h、12h、・・・、55h)を格納する。サブコードエンコーダ173は、ライトデータバッファ172に格納されるユーザデータを用いて、複数のエンコードデータ(EData)を生成する。また、サブコードエンコーダ173は、サブコードインデックスレジスタ171に格納されるインデックスと、当該インデックスに対応するEDataを組み合わせる。詳細は後述されるが、例えば、5bit/Cellのユーザデータが3bit/CellのEDateにエンコードされる場合には、生成された複数のEDataは、例えば、第1のページデータ(1st pageデータ)、第2のページデータ(2nd pageデータ)又は第3のページデータ(3rd pageデータ)の何れかに対応する。1ページのデータ容量は例えば16kBであるが、これに限られない。
【0030】
図1では、メモリコントローラ1が、ECC回路14とメモリインターフェイス15をそれぞれ備える構成例を示した。しかしながら、ECC回路14がメモリインターフェイス15に内蔵されていてもよい。また、ECC回路14が、半導体記憶装置2に内蔵されていてもよい。
【0031】
メモリシステム3の動作を簡単に説明する。
【0032】
初めに、ホスト4からのリクエストが、「標準的なプログラムシーケンス」の実行を指示するコマンドを含む場合のメモリシステム3の動作を説明する。
【0033】
例えば、ホスト4からのリクエストが、「標準的なプログラムシーケンス」の実行を指示するコマンドを含む場合には、プロセッサ12は、ホスト4からのリクエストに従って、半導体記憶装置2へのユーザデータおよびパリティの書き込み動作をメモリインターフェイス15へ指示する。また、プロセッサ12は、ホスト4からのリクエストに従って、半導体記憶装置2からのユーザデータおよびパリティの読み出し動作を、メモリインターフェイス15へ指示する。
【0034】
プロセッサ12は、RAM11に格納されるユーザデータに対して、半導体記憶装置2上の格納領域(メモリ領域)を決定する。ユーザデータは、内部バス16経由でRAM11に格納される。プロセッサ12は、メモリ領域の決定を、書き込み単位であるページ単位のデータ(ページデータ、例えば16kB)に対して実施する。本明細書では、半導体記憶装置2の1ページに格納されるユーザデータをユニットデータと定義する。ユニットデータは、一般的にはECC回路14によって符号化されて符号語として半導体記憶装置2に格納される。メモリシステム3では、符号化は必須ではない。メモリコントローラ1は、符号化せずにユニットデータを半導体記憶装置2に格納してもよいが、図1では、一構成例として符号化を行う構成を示している。メモリコントローラ1が符号化を行わない場合には、ページデータはユニットデータと一致する。また、1つのユニットデータに基づいて1つの符号語が生成されてもよいし、ユニットデータが分割された分割データに基づいて1つの符号語が生成されてもよい。また、複数のユニットデータを用いて1つの符号語が生成されてもよい。
【0035】
プロセッサ12は、ユニットデータごとに書き込み先の半導体記憶装置2のメモリ領域を決定する。半導体記憶装置2のメモリ領域には物理アドレスが割当てられている。プロセッサ12は、ユニットデータの書き込み先のメモリ領域を、物理アドレスを用いて管理する。プロセッサ12は、決定したメモリ領域(物理アドレス)を指定してユーザデータを半導体記憶装置2へ書き込むようメモリインターフェイス15へ指示する。プロセッサ12は、ユーザデータの論理アドレス(ホスト4が管理する論理アドレス)と物理アドレスとの対応を管理する。プロセッサ12は、ホスト4からの論理アドレスを含む読み出しリクエストを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス15へ指示する。
【0036】
RAM11は、ホスト4から受信したユーザデータを半導体記憶装置2へ記憶するまでに一時格納したり、半導体記憶装置2から読み出したデータをホスト4へ送信するまでに一時格納したりする。RAM11は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。
【0037】
ホスト4から書き込みリクエストを受信した場合、例えば、メモリシステム3は次のように動作する。プロセッサ12は、書き込み対象となるデータをRAM11に一時記憶させる。プロセッサ12は、RAM11に格納されたデータを読み出し、ECC回路14に入力する。ECC回路14は、入力されたデータを符号化し、符号語をメモリインターフェイス15に入力する。メモリインターフェイス15は、入力された符号語を半導体記憶装置2に書き込む。
【0038】
ホスト4から読み出しリクエストを受信した場合、例えば、メモリシステム3は次のように動作する。メモリインターフェイス15は、半導体記憶装置2から読み出した符号語をECC回路14に入力する。ECC回路14は、入力された符号語を復号し、復号されたデータをRAM11に格納する。プロセッサ12は、RAM11に格納されたデータを、ホストインターフェイス13を介してホスト4に送信する。
【0039】
次に、ホスト4からのリクエストが、「サブプログラムシーケンス」の実行を指示するコマンドを含む場合のメモリシステム3の動作を説明する。
【0040】
一般的な半導体記憶装置では、nbit/Cell(nは正の整数)の場合、センスアンプユニットに含まれるプログラム用データ(例えば、ユーザデータ)を格納するラッチ回路の個数は、n個である。例えば、数値nが5の場合、5bit/CellのPLCのユーザデータの標準的なプログラムシーケンスを用いた書き込み動作では、後述するセンスアンプユニットCSAU(図14)に含まれるプログラム用データを格納するラッチ回路の個数は、5個である。一方、メモリシステム3の動作方法は、サブプログラムシーケンスを含み、5bit/CellのPLCのユーザデータのサブプログラムシーケンスを用いた書き込み動作では、3(n=3)bit/CellのMLCに相当するEDataに基づき、書き込み動作を実行することを含む。後述するセンスアンプユニットSAU(図13)に示されるように、センスアンプユニットSAUに含まれるプログラム用データを格納するラッチ回路の個数は3(n=3)個である。すなわち、サブプログラムシーケンスを用いることによって、センスアンプユニットのラッチ回路の個数を、2個低減することができる。
【0041】
プロセッサ12は、生成された複数のEDataのそれぞれに対して、半導体記憶装置2上の格納領域(メモリ領域)を決定する。EDataは、内部バス16経由でRAM11に格納される。EDataはページデータであり、プロセッサ12は、メモリ領域の決定を、EDataに対して実施する。EDataが、ECC回路14によって符号化されて符号語として半導体記憶装置2に格納される。例えば、メモリコントローラ1は、符号化せずにEDataを半導体記憶装置2に格納してよく、符号化したEDataを半導体記憶装置2に格納してもよい。
【0042】
プロセッサ12は、EDataごとに書き込み先の半導体記憶装置2のメモリ領域を決定する。プロセッサ12は、決定したメモリ領域(物理アドレス)を指定してEDataを半導体記憶装置2へ書き込むようメモリインターフェイス15へ指示する。なお、メモリコントローラ1と半導体記憶装置2とは、ユーザデータの論理アドレスと物理アドレスとの対応付けを共有すると共に、サブコードインデックスも共有している。プロセッサ12は、ホスト4からの論理アドレスを含む読み出しリクエストを受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス15へ指示する。
【0043】
ホスト4から「サブプログラムシーケンス」の実行を指示するコマンドを含む書き込みリクエストを受信した場合、例えば、メモリコントローラ1は次のように動作する。メモリコントローラ1に含まれるプロセッサ12は、書き込み対象となるEDataを、サブコードジェネレータ17からRAMに転送し、RAM11に一時記憶させる。プロセッサ12は、RAM11に格納されたEDataを読み出し、ECC回路14に入力する。ECC回路14は、入力されたEDataを符号化し、符号語をメモリインターフェイス15に入力する。メモリインターフェイス15は、入力された符号語を、例えば、ロジック制御回路23を介してシーケンサ24に入力する。シーケンサ24は、符号語を復号し、復号されたEDataを含むコマンドを解析し、解析結果に基づき、「サブプログラムシーケンス」を実行するように、各回路に指示する。例えば、ロジック制御回路23は、EDataを、レジスタ25を介して、センスアンプモジュール70内のセンスアンプユニットSAUに入力する。また、センスアンプユニットSAUは、センスアンプユニットSAUが接続されたビット線BLを介して、EDataを半導体記憶装置2に書き込む。
【0044】
ホスト4から読み出しリクエストを受信した場合、例えば、メモリシステム3は次のように動作する。メモリインターフェイス15は、半導体記憶装置2から読み出した符号語をECC回路14に入力する。ECC回路14は、入力された符号語を復号し、復号されたEDataをRAM11に格納する。プロセッサ12は、RAM11に格納されたデータを、ホストインターフェイス13を介してホスト4に送信する。
【0045】
<1-1-3.半導体記憶装置2の構成>
図3に示されるように、半導体記憶装置2は、メモリセルアレイ(memory cell array)21、入出力回路(input/output)22、ロジック制御回路(logic control)23、シーケンサ(sequencer)24、レジスタ(register)25、レディ/ビジー制御回路(ready/busy circuit)26、電圧生成回路(voltage generation)27、ドライバセット(driver set)28、ロウデコーダ(row decoder)29、センスアンプモジュール(sense amplifier)70、入出力用パッド群71、及びロジック制御用パッド群72を含む。半導体記憶装置2では、書き込みデータDATをメモリセルアレイ21に記憶させる書き込み動作、読み出しデータDATをメモリセルアレイ21から読み出す読み出し動作等の、各種動作が実行される。
【0046】
メモリセルアレイ21は、例えば、センスアンプモジュール70、ロウデコーダ29、及びドライバセット28と接続される。メモリセルアレイ21は、ブロックBLK0、BLK1、・・・、BLKn(nは1以上の整数)を含む。詳細は後述するが、ブロックBLKの各々は、複数のストリングユニットSU(SU0、SU1、SU2、SU3)を含む。ストリングユニットSUの各々は、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルを含む。ブロックBLKは、例えばデータの消去単位となる。同一ブロックBLK内に含まれるメモリセルトランジスタMTe0~MTe7及びMTo0~MTo7(図2)の保持するデータは、一括して消去される。なお、半導体記憶装置2では、メモリセルトランジスタMTは、単にメモリセルといわれる場合がある。
【0047】
入出力回路22は、例えば、レジスタ25、ロジック制御回路23、及びセンスアンプモジュール70に接続される。入出力回路22は、メモリコントローラ1に含まれるメモリインターフェイス15と半導体記憶装置2との間で、データ信号DQ<7:0>の送受信を制御する。
【0048】
信号DQ<7:0>は、「1-1-2.メモリコントローラ1の構成」で説明したとおり、半導体記憶装置2とメモリコントローラ1に含まれるメモリインターフェイス15との間で送受信されるデータの実体である。信号DQ<7:0>は、コマンドCMD、データDAT、アドレス情報ADD、及びステータス情報STS等を含む。
【0049】
コマンドCMDは、例えば、ホスト4から、メモリコントローラ1に含まれるメモリインターフェイス15を介して、半導体記憶装置2に送信されるリクエストを実行するためのコマンドを含む。コマンドCMDは、例えば、「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドを含む。データDATは、半導体記憶装置2への書き込みデータDAT又は半導体記憶装置2からの読み出しデータDATを含む。データDATは、例えば、Edataを含む。アドレス情報ADDは、例えば、ビット線及びワード線に関連付けられた複数の不揮発性メモリセルを選択するためのカラムアドレス及びロウアドレスを含む。ステータス情報STSは、例えば、書き込み動作及び読み出し動作に関する半導体記憶装置2のステータスに関する情報を含む。
【0050】
具体的には、入出力回路22は、入力回路及び出力回路を備え、入力回路及び出力回路が次に述べる処理を行う。入力回路は、メモリコントローラ1から、書き込みデータDAT、アドレス情報ADD、及びコマンドCMDを受信する。入力回路は、受信した書き込みデータDATをセンスアンプモジュール70に送信し、受信したアドレス情報ADD及びコマンドCMDをレジスタ25に送信する。一方、出力回路は、レジスタ25からステータス情報STSを受け取り、センスアンプモジュール70から読み出しデータDATを受け取る。出力回路は、受け取ったステータス情報STS及び読み出しデータDATを、メモリコントローラ1に含まれるメモリインターフェイス15に送信する。
【0051】
ロジック制御回路23は、例えば、メモリコントローラ1及びシーケンサ24に接続される。ロジック制御回路23は、メモリコントローラ1のメモリインターフェイス15を介して、例えば、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、リードイネーブル信号REn、及びライトプロテクト信号WPnを受信する。ロジック制御回路23は、受信される信号に基づいて、入出力回路22及びシーケンサ24を制御する。
【0052】
シーケンサ24は、例えば、レディ/ビジー制御回路26、センスアンプモジュール70、及びドライバセット28に接続される。シーケンサ24は、コマンドレジスタに保持されるコマンドCMDに基づいて、半導体記憶装置2全体の動作を制御する。例えば、シーケンサ24は、センスアンプモジュール70、ロウデコーダ29、電圧生成回路27、及びドライバセット28等を制御して、書き込み動作、読み出し動作、及び消去動作等の各種動作を実行する。詳細は後述されるが、コマンドレジスタに、「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドが格納されている場合には、シーケンサ24は、標準的なプログラムシーケンスではなく、サブプログラムシーケンスを実行するように、半導体記憶装置2に指示する。
【0053】
レジスタ25は、例えば、ステータスレジスタ(図示は省略)、アドレスレジスタ(図示は省略)、コマンドレジスタ(図示は省略)などを含む。ステータスレジスタは、シーケンサ24からステータス情報STSを受信し、保持し、当該ステータス情報STSを、シーケンサ24の指示に基づいて入出力回路22に送信する。アドレスレジスタは、入出力回路22からアドレス情報ADDを受信し、保持する。アドレスレジスタは、アドレス情報ADD中のカラムアドレスをセンスアンプモジュール70に送信し、アドレス情報ADD中のロウアドレスをロウデコーダ29に送信する。コマンドレジスタは、入出力回路22からコマンドCMDを受信し、保持し、コマンドCMDをシーケンサ24に送信する。コマンドレジスタは、コマンドCMDに含まれる「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドを格納可能である。
【0054】
レディ/ビジー制御回路26は、シーケンサ24による制御に従ってレディ/ビジー信号R/Bnを生成し、生成したレディ/ビジー信号R/Bnをメモリコントローラ1に送信する。レディ/ビジー信号R/Bnは、半導体記憶装置2がメモリコントローラ1からの命令を受け付けるレディ状態にあるか、又は命令を受け付けないビジー状態にあるかを通知するための信号である。
【0055】
電圧生成回路27は、例えば、ドライバセット28等に接続される。電圧生成回路27は、シーケンサ24による制御に基づいて、書き込み動作及び読み出し動作等に使用される電圧を生成し、生成した電圧をドライバセット28に供給する。
【0056】
ドライバセット28は、メモリセルアレイ21、センスアンプモジュール70、及びロウデコーダ29に接続される。ドライバセット28は、電圧生成回路27から供給される電圧、又はシーケンサ24から供給される制御信号に基づいて、例えば、読み出し動作及び書き込み動作等の各種動作で選択ゲート線SGD(図4)、ワード線WL(図4)、ソース線SL(図4)、及びビット線BL(図4)等に供給する各種電圧又は各種制御信号を生成する。ドライバセット28は、生成した電圧又は制御信号を、センスアンプモジュール70、ロウデコーダ29、ソース線SLなどに供給する。
【0057】
ロウデコーダ29は、アドレスレジスタからロウアドレスを受け取り、受け取ったロウアドレスをデコードする。ロウデコーダ29は、当該デコードの結果に基づいて、読み出し動作及び書き込み動作等の各種動作を実行する対象のブロックBLK(図4)を選択する。ロウデコーダ29は、当該選択したブロックBLKに、ドライバセット28から供給される電圧を供給可能である。
【0058】
センスアンプモジュール70は、例えば、アドレスレジスタからカラムアドレスを受信し、カラムアドレスに基づいて、メモリコントローラ1とメモリセルアレイ21との間でのデータDATの送受信動作を実行する。また、センスアンプモジュール70は、読み出し動作に係る命令に基づき、メモリセルアレイ21から読み出されたデータ(閾値電圧)をセンスし、読み出されたデータ(閾値電圧)を一時的に保持することが可能である。また、センスアンプモジュール70は、一時的に保存したデータに基づき、論理演算をすることが可能である。また、センスアンプモジュール70は、読み出されたデータ(読み出しデータ)DATを、入出力回路22を介してメモリコントローラ1に送信する。さらに、センスアンプモジュール70は、書き込み動作に係る命令に基づき、メモリコントローラ1から入出力回路22を介して書き込みデータDATを受信し、書き込みデータDATを、メモリセルアレイ21に送信する。
【0059】
センスアンプモジュール70は、例えば、ビット線BL(BL0~BL(N-1)、但し(N-1)は2以上の自然数、図4)毎に設けられたセンスアンプユニットSAU(図13)を含む。センスアンプユニットSAUはビット線BLに電圧を供給可能に電気的に接続される。半導体記憶装置2はPLC(5bit/Cell)のメモリセルトランジスタMTを含み、詳細は後述するが、センスアンプユニットSAUに含まれるプログラム用データ(例えば、EData)を格納するラッチ回路の個数が3個である。
【0060】
入出力用パッド群71は、メモリコントローラ1から受信する信号DQ<7:0>を入出力回路22に送信する。入出力用パッド群71は、入出力回路22から受信する信号DQ<7:0>をメモリコントローラ1に送信する。
【0061】
ロジック制御用パッド群72は、メモリコントローラ1から受信するチップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、及びリードイネーブル信号REnをロジック制御回路23に転送する。ロジック制御用パッド群72は、レディ/ビジー制御回路26から受信するレディ/ビジー信号R/Bnをメモリコントローラ1に転送する。
【0062】
<1-1-4.メモリセルアレイ21の構成>
図4を用いて、メモリセルアレイ21の構成を説明する。図4は半導体記憶装置2のメモリセルアレイ21に含まれるブロックBLKの回路図である。ブロックBLK0を例にとって説明するが、他のブロックBLK1、2、・・・も同様の回路である。なお、図4に示す回路図は一例であって、第1実施形態のメモリセルアレイ21の回路図を限定するものではない。メモリセルアレイ21の説明において、図1図3と同一、又は類似する構成の説明は省略されることがある。
【0063】
ブロックBLK0は、N本のビット線BL(BL0、BL1、・・・、BL(N-1))と接続される。また、ブロックBLK0はソース線SLと接続されている。ビット線BLとソース線SLの間に、NANDストリング116が接続される。NANDストリング116は、例えば8個のメモリセルトランジスタMT(MT0~MT7)、並びに、選択トランジスタST1及びST2を含む。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。メモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続される。NANDストリング116がN本のビット線BLに設けられることで、ストリングユニットSU(SU0、SU1)が構成されている。なお、図4において、NANDストリング116は、例えば8個のメモリセルトランジスタMTを含むが、NANDストリング116に含まれるメモリセルトランジスタMTの個数は8個に限定されない。例えば、メモリセルトランジスタMTの個数は、i個であってよく、整数iは8より多くてよく、少なくてもよい。
【0064】
選択トランジスタST1(後述する下層選択ゲートトランジスタに相当)は選択ゲート線SGD0に接続されている。ストリングユニットSUの各々における選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD(SGD0、SGD1、・・・)に接続される。8個のメモリセルトランジスタMT(MT0~MT7)のゲートは、それぞれ対応するワード線WL(WL7~WL0)に接続される。また、ストリングユニットSUの各々における選択トランジスタST2のゲートは、選択ゲート線SGSに接続される。同一のストリングユニットSU内の、複数のビット線BLのそれぞれに接続された選択トランジスタST1のゲートは、共通の選択ゲート線SGDに接続される。同一のストリングユニットSU内の、複数のビット線BLのそれぞれに接続された選択トランジスタST1のゲートは、共通の選択ゲート線SGDに接続される。同一のストリングユニットSU内の、メモリセルトランジスタMT(MT0~MT7)のゲートは、それぞれ共通のワード線WL(WL0~WL7)に接続される。同一のストリングユニットSU内において、同一のワード線WL(WL0~WL7)に接続されたメモリセルトランジスタMT(MT0~MT7)は、読み出し動作および書き込み動作の単位を構成する。例えば、選択ゲート線SGD0に対応するストリングユニットSUに含まれる各NANDストリング116におけるメモリセルトランジスタMT7は、読み出し動作および書き込み動作の単位としてのメモリセルグループMGを構成し、メモリセルグループMGに対しては読み出し動作および書き込み動作が一括して実行される。例えば、読み出し動作および書き込み動作の対象となるデータの単位が16kBである場合、各メモリセルグループMGは217個数のメモリセルトランジスMTを含む。この場合、217本のビット線BLが設けられる。
【0065】
<1-1-5.メモリセルトランジスタMTの閾値分布>
図5及び図6を用いて、メモリセルトランジスタMTの閾値電圧分布の一例として、PLCについて説明する。図5はメモリセルトランジスタMTの閾値分布の一例を示す模式図である。図6はメモリセルトランジスタMTのデータの割り付けの一例を示す図である。メモリセルトランジスタMTの説明において、図1図4と同一、又は類似する構成の説明は省略されることがある。
【0066】
図5の縦軸の“NMTs”は、メモリセルトランジスタMTの個数(Cell数(セル数))を示し、図5の横軸の“Vth”は、メモリセルトランジスタMTの閾値電圧を示している。図5に示されるように、メモリセルアレイ21におけるメモリセルトランジスタMTの閾値電圧分布は、閾値電圧の低い方から順に、ステートS0、S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13、S14、S15、S16、S17、S18、S19、S20、S21、S22、S23、S24、S25、S26、S27、S28、S29、S30及びS31を形成し得る。すなわち、PLCでは、32個の山型の閾値電圧分布が形成され、PLCの32個の山型の閾値電圧分布にそれぞれデータを割り当てることで、1つのメモリセルトランジスタMT当たり5ビットのデータを記憶可能である。
【0067】
また、メモリセルアレイ21では、ステートS0~S31に対して、読み出し電圧R1~R31、及び読み出しパス電圧VREADが設定される。具体的には、読み出し電圧R1はステートS0及びS1の間に設定され、読み出し電圧R2はステートS1及びS2の間に設定される。また、読み出し電圧R1及び読み出し電圧R2と同様に、読み出し電圧R3~読み出し電圧R30は、図5に示されるそれぞれに対応するステートの間に設定される。読み出しパス電圧VREADは、ステートS0~S31のうち最も閾値電圧が高いステートS31よりも高い電圧に設定される。読み出しパス電圧VREADがゲートに印加されたメモリセルトランジスタMTは、記憶するデータに依らずにオン状態になる。
【0068】
なお、図5に示された読み出し電圧R1~R31の組は、負の電圧を含んでいてもよい。読み出し電圧R1~R31の組は、負の電圧と、0Vと、正の電圧との組み合わせであってもよい。すなわち、読み出し電圧R1~R31の組において、一部の読み出し電圧が負の電圧であり、その他の読み出し電圧が0Vや正の読み出し電圧であってもよい。例えば、読み出し電圧R1~R4のそれぞれが負の電圧であり、読み出し電圧R5が0Vであり、読み出し電圧R6~R31のそれぞれが正の電圧であってもよい。読み出し電圧R1~R31の組が、0Vを含まずに、負の電圧と、正の電圧とを含んでいてもよい。
【0069】
ステートS0~S31のそれぞれには、データセットD0~D31のうちいずれかが割り当てられる。データセットD0~D31は、32組の互いに異なる5ビットデータに対応する。データセットD0~D31のそれぞれは、第1~第5ビットデータを含む。以下に、データセットD0~D31のそれぞれの具体的なデータの内容について羅列する。
【0070】
(例)データセット:“第1ビットデータ/第2ビットデータ/第3ビットデータ/第4ビットデータ/第5ビットデータ”
D0:“00000”
D1:“00001”
D2:“00010”
D3:“00011”
D4:“00100”
D5:“00101”
D6:“00110”
D7:“00111”
D8:“01000”
D9:“01001”
D10:“01010”
D11:“01011”
D12:“01100”
D13:“01101”
D14:“01110”
D15:“01111”
D16:“10000”
D17:“10001”
D18:“10010”
D19:“10011”
D20:“10100”
D21:“10101”
D22:“10110”
D23:“10111”
D24:“11000”
D25:“11001”
D26:“11010”
D27:“11011”
D28:“11100”
D29:“11101”
D30:“11110”
D31:“11111”
【0071】
また、例えば、上述した閾値分布のうち、“0”レベルは、メモリセルトランジスタMTの消去状態(ステートS0)に対応する。すなわち、データセットD31が、“0”レベルに相当する。同様にして、ステートS1~ステートS31の何れか一つに対応付けられた“1”レベル~“31”レベルは、データセットD0~D30の何れか一つに対応付けられる。よって、各レベルと、各データセットと、各ステートとは一意に対応付けられる。
【0072】
また、例えば、図6に示されるように割り付けられたデータを読み出す場合、第1のページのデータ(1st pageデータ)は、読み出し電圧R1、R3、R5、R14、R16及びR21を用いた読み出し動作によって確定する。第2のページのデータ(2nd pageデータ)は、読み出し電圧R2、R10、R13、R17、R23、及びR27を用いた読み出し動作によって確定する。第3のページのデータ(3rd pageデータ)は、読み出し電圧R4、R8、R15、R24、R26、及びR29を用いた読み出し動作によって確定する。第4のページのデータ(4th pageデータ)は、読み出し電圧R6、R12、R18、R20、R22、R28、及びR30を用いた読み出し動作によって確定する。第5のページのデータ(5th pageデータ)は、読み出し電圧R7、R9、R11、R19、R25、及びR31を用いた読み出し動作によって確定する。データの書き込み動作及び読み出し動作は、上記の複数のメモリセルに対して一括して行われる。すなわち、データの書き込み動作及び読み出し動作は、ページ単位で行われる。以上説明したようなデータの割り付けのことは、例えば、「コード」、「コーディング」などと呼ばれる。以上説明したように割り付けられたデータによって、隣接するステートは、1ビット違いとなるグレイコードとなっている。
【0073】
<1-1-6.メモリセルアレイ21の断面構造>
図7を用いて、メモリセルアレイ21を構成する積層体400の断面構造を説明する。なお、図7に示す断面構造は一例であって、メモリセルアレイ21の断面構造を限定するものではない。メモリセルアレイ21の説明において、図1図6と同一、又は類似する構成の説明は省略されることがある。
【0074】
積層体400は、半導体基板401上に絶縁膜を介して、下からメモリセルアレイ層410とSGD(ドレイン側選択ゲート)層420とが積層されている。
【0075】
メモリセルアレイ層410は、多数の導電膜411、412、413、・・・、414と絶縁膜とが交互に積層された積層体である。メモリセルアレイ層410には多数の貫通孔(メモリホールMH)が形成されている。メモリホールMH内部には、メモリホールMHの側壁から内側に向かって絶縁膜膜(SiO膜又はSiN膜)、電荷蓄積膜(SiN膜)、及びゲート酸化膜(SiO膜)が積層され、さらにゲート酸化膜の内側には半導体膜(Si膜)が埋め込まれている。メモリセルアレイ層410の最下層に位置する導電膜411は選択トランジスタST2のゲートに相当する。メモリセルアレイ層410の第2層から最上層に位置する導電膜412、413、・・・、414はメモリセルトランジスタMTのゲートに相当する。
【0076】
SGD層420は、導電膜414の上方に設けられている。SGD層420には、メモリセルアレイ層410と同様に多数の貫通孔(メモリホールMH)が形成されている。SGD層420は選択トランジスタST1のゲートに相当する。
【0077】
積層体400は、積層体400を上下に貫通するメモリスリットSTを挟んで隣接する積層体400と電気的に分離されている。メモリスリットSTには導電対を充填させることで、積層体400を上下に貫通するソース線コンタクトとなる。ソース線コンタクトはソース線SLの一部を構成する。
【0078】
<1-2.動作例>
<1-2-1.書き込み動作の概要>
主に、図8図10を用いて、データの書き込み動作の概要を説明する。書き込み動作は、プログラム動作及びベリファイ動作を含む。多値のデータをメモリセルトランジスタMTに書き込む場合には、メモリセルトランジスタMTの閾値電圧をデータの値に応じた値にする。メモリセルトランジスタMTにプログラム電圧VPGM及びビット線電圧Vblを印加すると、電子がメモリセルトランジスタMTの電荷蓄積膜に注入されて閾値電圧が上昇する。プログラム電圧VPGMを大きくすることで電子の注入量を増加させて、メモリセルトランジスタMTの閾値電圧を高くすることができる。しかし、メモリセルトランジスタMTのばらつきにより同一のプログラム電圧VPGMを印加したとしても電子の注入量はメモリセルトランジスタMT毎に異なる。一旦注入された電子は、消去動作が行われるまで保持される。そこで、各メモリセルトランジスタMTに設定すべき閾値電圧として許容できる閾値電圧の範囲に収まるように、書き込み動作において複数のプログラムループ(例えばL回、Lは1以上の整数)を、プログラム電圧VPGMを徐々に上昇させつつ、複数回実行する。各プログラムループは、例えば、1回のプログラム動作と、その後に実行される1回または複数回のベリファイ動作(例えばS回、Sは1以上の整数)を含む。書き込み動作では、プログラム動作及びベリファイ動作を含むプログラムループが複数回実行される。なお、各プログラムループにおいて、ベリファイ動作が省略される場合もある。なお、データの書き込み動作の概要の説明において、図1図7と同一、又は類似する構成の説明は省略されることがある。
【0079】
プログラム動作は、電子を電荷蓄積層に注入することにより閾値電圧を上昇させる(または注入を禁止することで閾値電圧を維持させる)動作のことである。以下では、閾値電圧を上昇させる動作を「“0”プログラム」または「“0”書き込み」と呼び、“0”プログラム対象とされたビット線BLには“0”データが与えられる。他方で、閾値電圧を維持させる動作を「“1”プログラム」、「“1”書き込み」、または「書き込み禁止」と呼び、“1”プログラム対象とされたビット線BLには“1”データが与えられる。
【0080】
ベリファイ動作は、書き込み動作の一環として行われる読み出し動作である。ベリファイ動作は、プログラム動作の後、データを読み出すことで、メモリセルトランジスタMTの閾値電圧がターゲットレベルまで達したか否かを判定する動作である。閾値電圧がターゲットレベルまで達したメモリセルトランジスタMTは、その後、書き込み禁止とされる。以上のプログラム動作とベリファイ動作の組み合わせを繰り返すことで、メモリセルトランジスタMTの閾値電圧がターゲットレベルまで上昇される。
【0081】
図8は、プログラム動作における各配線の電位変化を示す図である。図8に示す各電圧は、例えば、シーケンサ24に制御された電圧生成回路27によって発生される。
【0082】
プログラム動作は、ワード線及びビット線に印加するプログラム電圧及びビット線電圧にしたがって行われる。書き込み対象のブロックBLK(選択BLK)の書き込み対象のストリングユニットSU(選択SU)については、プログラム電圧VPGMの印加の前に、選択ゲート線SGD(SGD_sel)を例えば5Vにして、選択トランジスタST1を導通させておく。また、プログラム動作時には、選択ゲート線SGSは例えば0Vである。したがって、選択ゲートトランジスタST2はオフ状態となる。その後、プログラム電圧VPGM印加時には、選択ゲート線SGD(SGD_sel)を例えば2.5Vとする。これにより、選択トランジスタST1の導通、非導通の状態は、選択トランジスタST1に接続されるビット線BLのビット線電圧によって決まる。
【0083】
また、書き込み対象のブロックBLK(選択BLK)の書き込み対象ではないストリングユニットSU(非選択SU))についても、プログラム電圧VPGMの印加の前に、選択ゲート線SGD(SGD_usel)を例えば5Vにして、選択トランジスタST1を導通させておく。その後、プログラム電圧VPGM印加時には、選択ゲート線SGD(SGD_usel)を例えば0Vとする。これにより、選択トランジスタST1は非導通とされ、ビット線BLから電気的切断される。
【0084】
なお、書き込み対象ではないブロックBLK(非選択BLK)においては、選択ゲート線SGDおよび選択ゲート線SGSに0が印加される。これにより、選択トランジスタST1及び選択トランジスタST2はオフ状態となる。
【0085】
上述したように、センスアンプモジュール70は、各ビット線BLにデータを転送する。“0”データが与えられたビット線BLにはビット線電圧Vbl_Lとして例えば0Vの接地電圧Vssが印加される。“1”データが与えられたビット線BLにはビット線電圧Vbl_Hとして書き込み禁止電圧Vinhibit(例えば2.5V)が印加される。したがって、プログラム電圧VPGM印加時には、“0”データが与えられたビット線BLに接続された選択トランジスタST1は導通し、“1”データが与えられたビット線BLに接続された選択トランジスタST1はカットオフする。カットオフした選択トランジスタST1に接続されているメモリセルトランジスタMTは書き込み禁止となる。
【0086】
導通状態となった選択トランジスタST1に接続されているメモリセルトランジスタMTは、ワード線WLに印加される電圧にしたがって電荷蓄積膜への電子の注入が行われる。ワード線電圧として、電圧VPASSが与えられたワード線WLに接続されたメモリセルトランジスタMTは、閾値電圧に拘わらず導通状態となるが、電荷蓄積膜への電子の注入は行われない。一方、ワード線電圧として、プログラム電圧VPGMが与えられたワード線WLに接続されたメモリセルトランジスタMTは、プログラム電圧VPGMに応じて電荷蓄積膜への電子の注入が行われる。
【0087】
すなわち、ロウデコーダ29は、選択ブロックBLKにおいていずれかのワード線WLを選択し、選択ワード線にプログラム電圧VPGMを印加し、その他のワード線(非選択ワード線)WLに電圧VPASSを印加する。プログラム電圧VPGMは、トンネル現象により電子を電荷蓄積膜に注入するための高電圧であり、VPGM>VPASSである。この際のストリングユニットSUの様子を図9に示す。
【0088】
図9は、プログラム動作時のNANDストリングの様子を示す回路図である。図9では、“0”書き込み対象のビット線BL、及び、“1”書き込み対象のビット線BLに対応する2つのNANDストリングを図示している。また、ワード線WL3が選択された際の様子を示している。図9に示す各電圧は、図8と同様に、例えば、シーケンサ24に制御された電圧生成回路27によって発生される。
【0089】
図9に示されるように、選択ワード線WL3には電圧VPGMが印加され、非選択ワード線WL0~WL2及びWL4~WL7には電圧VPASSが印加される。“0”書き込み対象のビット線BLに対応するNANDストリングでは、選択トランジスタST1がオン状態となる。そのため、選択ワード線WL3に接続されたメモリセルトランジスタMT3のチャネル電位Vchは0Vとなる。すなわち、制御ゲートとチャネルとの間の電位差が大きくなり、その結果、電子が電荷蓄積層に注入されて、メモリセルトランジスタMT3の閾値電圧が上昇される。
【0090】
“1”書き込み対象のビット線BLに対応するNANDストリングでは、選択トランジスタST1がカットオフ状態となる。そのため、選択ワード線WL3に接続されたメモリセルトランジスタMT3のチャネルは電気的にフローティングとなり、ワード線WL等との容量カップリングによりチャネル電位Vchは電圧VPASS近くまで上昇される。すなわち、制御ゲートとチャネルとの間の電位差が小さくなり、その結果、電子は電荷蓄積層に注入されず、メモリセルトランジスタMT3の閾値電圧は維持される(閾値電圧分布レベルがより高い分布に遷移するほどには閾値電圧は変動しない)。
【0091】
ロウデコーダ29によってワード線WLの電圧を制御しながら、センスアンプモジュール70によって各ビット線BLにデータを供給することで、メモリセルアレイ21の各メモリセルトランジスタMTへの書き込み動作(プログラム動作)が行われる。
【0092】
図10は、ベリファイ動作における各配線の電位変化を示す図である。図10に示す各電圧についても、シーケンサ24に制御された電圧生成回路27によって発生される。
【0093】
ベリファイ動作、すなわち、多値化されたメモリセルトランジスタからのデータの読み出しは、ロウデコーダ29によって、選択ワード線WL(以下、WL_selとも示す)に読み出し電圧を印加すると共に、センスアンプモジュール70によって、ビット線BLに読み出されたデータをセンスして、読み出したデータが“0”であるか“1”であるかを判定することで行われる。なお、非選択ワード線WL(以下、WL_uselとも示す)に接続されたメモリセルトランジスタを導通させるために、ロウデコーダ29は、非選択ワード線WL_uselには各メモリセルトランジスタをオンにするために必要な十分に高い電圧VREADを与える。なお、隣接ワード線については、隣接ワード線に接続されたメモリセルトランジスタの導通を容易にするために、電圧VREADよりも若干高い電圧VREADKを与えてもよい。
【0094】
また、ロウデコーダ29は、ストリングユニットSU中の読み出し対象のストリングユニット(選択ストリングユニット)を構成する選択ゲート線SGD(以下、SGD_selとも示す)には、選択トランジスタST1をオンにするための電圧VSGを印加し、読み出し対象でないストリングユニット(非選択ストリングユニット)を構成する選択ゲート線SGD(以下、非選択ゲート線SGD_uselとも示す)には、選択トランジスタST1をオフにするための電圧Vss(例えば、0V)を印加する。なお、非選択ゲート線SGD_uselに、選択トランジスタST1をオンにするための電圧VSGを印加した後に、選択トランジスタST1をオフにするための電圧Vssを印加してもよい。
【0095】
ロウデコーダ29は、選択ワード線WL_selに、読み出し電圧を印加し、非選択ワード線WL_uselに、電圧VREAD又はVEREDKを印加する。読み出し動作時には、センスアンプモジュール70は、ビット線BLを一定の電圧(例えば、1V)に固定すると共に、センスアンプモジュール70に含まれるセンスアンプユニットSAU(図13)内部のセンスノードSEN(図13)をビット線BLの電圧よりも高い所定のプリチャージ電圧Vpreに充電する。この状態で、ロジック制御回路23は、センスノードSENをビット線BLに接続する。センスノードSENからビット線BLに電流が流れ、センスノードSENの電圧は次第に低下する。
【0096】
センスノードSENの電圧は、対応するビット線BLに接続されたメモリセルトランジスタの閾値電圧の状態に応じて変化する。すなわち、メモリセルトランジスタの閾値電圧が読み出し電圧よりも低いときは、メモリセルトランジスタはオン状態であり、メモリセルトランジスタに大きなセル電流が流れ、センスノードSENの電圧が低下する速度は速くなる。また、メモリセルトランジスタの閾値電圧が読み出し電圧よりも高いときは、メモリセルトランジスタはオフ状態であり、メモリセルトランジスタに流れるセル電流は、小さいか、又は、メモリセルトランジスタにセル電流が流れず、センスノードSENの電圧が低下する速度は遅くなる。
【0097】
センスノードSENの電圧低下の速度の差を利用して、メモリセルトランジスタの書き込みの状態が判定されて、結果がラッチ回路に記憶される。例えば、センスノードSENの電荷を放電し始める放電開始時から所定の第1期間が経過した第1時点で、センスノードSENの電圧がローレベル(以下、“L”又は“0”とも示す)であるかハイレベル(以下、“H”又は“1”とも示す)であるかが判定される。例えば、メモリセルトランジスタの閾値電圧が読み出し電圧よりも低い場合には、メモリセルトランジスタは完全オン状態であり、メモリセルトランジスタに大きなセル電流が流れる。このため、センスノードSENの電圧は、急速に低下し、電圧降下量は比較的大きく、第1時点において、センスノードSENが“L”になる。
【0098】
また、メモリセルトランジスタの閾値電圧が読み出し電圧よりも高い場合には、メモリセルトランジスタはオフ状態であり、メモリセルトランジスタに流れるセル電流は、非常に小さいか、又は、メモリセルトランジスタにセル電流が流れない。このため、センスノードSENの電圧は、非常に緩やかに低下し、電圧降下量は比較的小さく、第1時点において、センスノードSENは、“H”のままとなる。
【0099】
ロウデコーダ29により選択ワード線WL_selに読み出し電圧を印加しながら、センスアンプモジュール70がセンスノードSENの状態を監視することで、メモリセルトランジスタの閾値電圧が読み出し電圧よりも高いか低いかが判定される。したがって、各レベル相互間の電圧を読み出し電圧として選択ワード線WL_selに印加することで、各メモリセルトランジスタのレベルを判定し、各レベルに割り当てたデータを読み出すことができる。
【0100】
メモリシステム3では、「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドに基づき、5bit/Cellのユーザデータが3bit/CellのEDateにエンコードされる場合には、EDateは、例えば、図14Aに示されるような3bit/CellのTLCの8個(8値)の閾値電圧分布にそれぞれ割り当てられる。各メモリセルトランジスタには、8つの閾値電圧分布にそれぞれ対応するEr、A、B、・・・、Gレベルのいずれかのレベルで書き込みが行われ、読出し時には、電圧VrA~VrGを印加することで、各メモリセルトランジスタのデータの値を判定することができる。なお、以下の説明において、ベリファイ動作における選択ワード線WL_selに印加される読み出し電圧を、電圧VfyA~VfyGと示す。
【0101】
“Er”、“A”、“B”、“C”、“D”、“E”、“F”、及び“G”レベルの閾値分布にはそれぞれ異なるデータセットが割り当てられる。例えば、以下の(例)に示すように割り当てられる。なお、閾値分布とデータとの割り当ては、任意に設定可能である。
【0102】
(例)データセット:“第1ビットデータ/第2ビットデータ/第3ビットデータ”
Er:“111”
A:“011”
B:“001”
C:“000”
D:“010”
E:“110”
F:“100”
G:“101”
【0103】
<1-2-2.書き込み動作の一例>
図11及び図12を用いて、書き込み動作の一例を説明する。図11は、半導体記憶装置2の書き込み動作のサブプログラムシーケンスにおける、プログラムループ回数とプログラム動作及びベリファイ動作との関係を示す図である。図12は、上述したサブプログラムシーケンスに基づく書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示す図であり、選択ワード線の電圧の遷移を示す図である。また、図12は、プレフィックスコマンドに基づく、後述する第1のサブプログラムシーケンスの書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示す図であり、選択ワード線の電圧の遷移を示す図である。書き込み動作の一例の説明において、図1図10と同一、又は類似する構成の説明は省略されることがある。
【0104】
図11では、プログラムループが19回(L=19)繰り返されることによって、データが書き込まれる場合を例に示している。
【0105】
図11には、各プログラムループにおいて行われるベリファイ動作のターゲットレベルが示されている。図示するように、1回目及び2回目のプログラムループでは、ベリファイ動作は“A”レベルのみを対象にして行われる。つまり、ベリファイ動作時に選択ワード線WL_selには電圧VfyAが印加され、電圧VfyB~VfyGは印加されない。引き続き3回目及び4回目のプログラムループでは、ベリファイ動作は“A”レベルと“B”レベルとを対象にして行われる。つまり、ベリファイ動作時に選択ワード線WL_selには電圧VfyA及びVfyBが順次印加され、電圧VfyC~VfyGは印加されない。
【0106】
5回目及び6回目のプログラムループでは、ベリファイ動作は“A”レベル、“B”レベル、及び“C”レベルを対象にして行われる。つまり、ベリファイ動作時に選択ワード線WL_selには電圧VfyA、VfyB、及びVfyCが順次印加され、電圧VfyD~VfyGは印加されない。そして、“A”レベルベリファイのフェイルビット数が事前に定めた数を以下になると、“A”レベルのベリファイ動作は完了する。図11では6ループ目に“A”レベルのベリファイ動作が完了すると仮定した。
【0107】
また、7回目及び8回目のプログラムループでは、ベリファイ動作は“B”レベル、“C”レベル、及び“D”レベルを対象にして行われる。つまり、ベリファイ動作時に選択ワード線WL_selには電圧VfyB、VfyC、及びVfyDが順次印加される。ここで、“B”レベルを対象としたベリファイ動作は、8回目の書き込み動作で完了すると仮定した。更に、9回目及び10回目のプログラムループでは、ベリファイ動作は“C”レベル、“D”レベル、及び“E”レベルを対象にして行われる。つまり、ベリファイ動作時に選択ワード線WL_selには電圧VfyC、VfyD、及びVfyEが順次印加される。ここで、“C”レベルを対象としたベリファイ動作は、10回目のプログラムループで完了すると仮定した。以降、同様にして“G”レベルの書き込みまで行われ、プログラムループは19回、繰り返されると仮定した。以上のように、各レベルにおいて、事前に設定したフェイルビット数を下回るまで、ベリファイ動作が繰り返される。
【0108】
図12は、上述したサブプログラムシーケンスに基づく書き込み動作時における、プログラム動作とベリファイ動作のタイミングを示す図である。図12に示すように、1回目及び2回目のプログラムループでは、ベリファイ動作は“A”レベルのみを対象にして行われる。つまり、1回のプログラム動作に対してベリファイ動作は1回行われる。3回目及び4回目のプログラムループでは、ベリファイ動作は“A”レベルと“B”レベルとを対象にして行われる。つまり、1回のプログラム動作に対してベリファイ動作は2回行われる。5回目から、“D”レベルを対象としたベリファイ動作が完了する12回目までのプログラムループでは、1回のプログラム動作に対してベリファイ動作は3回行われる。12回目以降も、1回のプログラム動作に対して、設定された所定のレベルのベリファイ動作が行われる。最終的には、19回のプログラムループで、プログラム動作が19回、ベリファイ動作が42回(S=42)行われる。
【0109】
なお、図12に示されたタイミングでは、各プログラムループのプログラム電圧VPGMは、各プログラムループの番号が付記されている。例えば、3回目及び4回目のプログラムループのプログラム電圧は、電圧VPGM1-3及び電圧VPGM1-4である。また、プログラム電圧は隣り合うプログラムループ間でΔVPGM増加する。すなわち、例えば、電圧VPGM1-3と電圧VPGM1-4との差がΔVPGMであり、電圧VPGM1-14と電圧VPGM1-15との差がΔVPGMである。
【0110】
図12で示された例では、ベリファイ動作が図11に示した仮定で実施されることを想定している。図11に示したように、“A”レベルを対象とするベリファイ動作は、1回目のプログラムループから6回目のプログラムループにかけて6回実行されると想定した。また、“B”レベルを対象とするベリファイ動作は、3回目のプログラムループから8回目のプログラムループにかけて6回実行されると想定した。他のレベルについても同様である。ここで、例えば、“A”レベルに書き込まれるメモリセルトランジスタMTは複数存在し、当該メモリセルトランジスタMTに接続されたビット線BL(“A”レベルに書き込まれるメモリセルトランジスタMT)も複数存在する。したがって、厳密には、例えば、“A”レベルに書き込まれるメモリセルトランジスタMTのうち5回目のプログラムループにおいて“A”レベルを対象とするベリファイフェイルビット数が事前に決めたフェイルビット数以下の場合は、ビット線BL(“A”レベルに書き込まれるメモリセルトランジスタMT)については、6回目のプログラムループにおいてベリファイ動作が実行されないということも有りえる。このことは、以下で説明する例についても同様である。
【0111】
1回目のプログラム動作で選択ワード線WL_selに印加される電圧VPGMや、2回目以降のプログラム動作における電圧VPGMの増加量、そして、各レベルにおけるベリファイ動作が開始するプログラムループは、書き込みが速いワーストケースを想定して設定されており、ターゲットレベルを超えた書き込みが行われないよう十分にマージンが確保されている。
【0112】
上述した、書き込み動作におけるプログラムループ回数、各プログラムループにおける選択ワード線WL_selの電圧(電圧VPGM)、各プログラムループにおけるベリファイ動作対象レベルは、例えば、サブプログラムシーケンスとしてシーケンサ24に格納されている。サブプログラムシーケンスに基づいてメモリセルアレイ21へ書き込み動作が実行される場合には、サブプログラムシーケンスに基づく制御信号が、シーケンサ24からセンスアンプモジュール70およびロウデコーダ29に出力される。
【0113】
<1-2-3.センスアンプユニットの概要>
図13図15を用いてセンスアンプユニットを説明する。「1-1-2.メモリコントローラ1の構成」、「1-1-3.半導体記憶装置2の構成」及び「1-2-1.書き込み動作の概要」で説明されたセンスアンプモジュール70の一例を詳細に説明する。センスアンプモジュール70は、ビット線BL0~BL(N-1)にそれぞれ関連付けられた複数のセンスアンプユニットSAUを含む。図13には、1つのセンスアンプユニットSAUの回路構成の一例が示されている。図14A図14Cには、1つのセンスアンプユニットSAUの動作の一例が示されている。図15には、比較例に係る1つのセンスアンプユニットCSAUの回路構成の一例が示されている。センスアンプユニットSAUの説明において、図1図12と同一、又は類似する構成の説明は省略されることがある。
【0114】
初めに、図13図14Cを用いて、1つのセンスアンプユニットSAUの一例を説明する。「1-1-3.半導体記憶装置2の構成」で説明したとおり、センスアンプユニットSAUは、ビット線BLに接続される。センスアンプユニットSAUは、プログラム用データを格納するためのラッチ回路を、m(mはn+1より小さい整数)個含む。例えば、センスアンプユニットSAUは、2通りのレベルに対応する閾値電圧(データ)を格納し、当該閾値電圧(データ)をビット線BLに接続された書き込み動作の対象となるメモリセルトランジスタMTに供給することが可能である。また、対応するビット線BLに読み出された閾値電圧に対応するデータを一時的に保持することが可能である。また、センスアンプユニットSAUは、一時的に保存したデータを用いて、論理演算をすることが可能である。すなわち、センスアンプユニットSAUは、対応するビット線BLに対して、センスアンプユニットSAUに含まれるラッチ回路に格納された閾値電圧(データ)を用いて、2通りのレベルを管理可能である。半導体記憶装置2は、センスアンプユニットSAUを用いて、読み出し動作、及び書き込み動作を実行可能である。
【0115】
図13に示されるように、センスアンプユニットSAUは、センスアンプ部SA、並びにラッチ回路SDL、ADL、BDL、CDL、及びXDLを含んでいる。センスアンプ部SA、並びにラッチ回路SDL、ADL、BDL、CDL、及びXDLは、互いにデータを送受信可能なようにバスLBUSによって接続される。センスアンプ部SAは、電源線とノードSRCとの間に接続される。ノードSRCは電源線に供給される電圧より小さい電圧を供給される。電源線はセンスアンプ部SAに“H”の電圧を供給する電圧供給線である。ノードSRCはセンスアンプ部SAに“L”の電圧を供給するノードである。センスアンプ部SAは、電源線及びノードSRCに電圧を供給され、動作する。なお、電源線及びノードSRCは、センスアンプユニットSAU内のセンスアンプ部SA以外の素子に電圧を供給するように構成されてもよい。“H”の電圧は、例えば、電圧VDDであり、“L”の電圧は、例えば、電圧VSSである。
【0116】
センスアンプ部SAは、例えば、読み出し動作において、対応するビット線BLに読み出された読み出しデータDAT(閾値電圧)をセンスして、当該閾値電圧に対応するデータが“0”であるか“1”であるかを判定する。センスアンプ部SAは、例えばpチャネルMOSトランジスタ120、nチャネルMOSトランジスタ121~128、及びキャパシタ129を含んでいる。
【0117】
例えば、読み出しデータDATが、ベリファイ動作に基づき読み出されたデータの場合には、センスアンプ部SAは、読み出しデータDATをセンスし、当該閾値電圧が“0”であるか“1”であるかを判定する。例えば、読み出しデータDATが“1”の場合は、所望の閾値電圧に達していると判定(判断)し、センスアンプ部SAは、当該読み出しデータDATを「書き込み済み」と判定し、「書き込み済み」と判定した結果を、ラッチ回路SDL、及びXDLに、一時的に保持してよい。また、例えば、読み出しデータDATが“0”の場合は、所望の閾値電圧に達していないと判定(判断)し、センスアンプ部SAは、当該読み出しデータDATを「未書き込み」と判定し、「未書き込み」と判定した結果を、ラッチ回路SDL、及びXDLに、一時的に保持してよい。
【0118】
トランジスタ120の一端は電源線に接続され、トランジスタ120のゲートはラッチ回路SDL内のノードINVに接続される。トランジスタ121の一端はトランジスタ120の他端に接続され、トランジスタ121の他端はノードSCOMに接続され、トランジスタ121のゲートには制御信号BLXが入力される。トランジスタ122の一端はノードSCOMに接続され、トランジスタ122のゲートには制御信号BLCが入力される。トランジスタ123は、高耐圧のMOSトランジスタであり、トランジスタ123の一端はトランジスタ122の他端に接続され、トランジスタ123の他端は対応するビット線BLに接続され、トランジスタ123のゲートには制御信号BLSが入力される。
【0119】
トランジスタ124の一端はノードSCOMに接続され、トランジスタ124の他端はノードSRCに接続され、トランジスタ124のゲートはノードINVに接続される。トランジスタ125の一端はトランジスタ120の他端に接続され、トランジスタ125の他端はセンスノードSENに接続され、トランジスタ125のゲートには制御信号HHLが入力される。トランジスタ126の一端はセンスノードSENに接続され、トランジスタ126の他端はノードSCOMに接続され、トランジスタ126のゲートには制御信号XXLが入力される。
【0120】
トランジスタ127の一端は接地され、トランジスタ127のゲートはセンスノードSENに接続されている。トランジスタ128の一端はトランジスタ127の他端に接続され、トランジスタ128の他端はバスLBUSに接続され、トランジスタ128のゲートには制御信号STBが入力される。キャパシタ129の一端はセンスノードSENに接続され、キャパシタ129の他端にはクロックCLKが入力される。例えば、クロックCLKには、電圧VSSが供給される。
【0121】
制御信号BLX、BLC、BLS、HHL、XXL、STI、STL及びSTBは、例えばシーケンサ24によって生成される。また、トランジスタ120の一端に接続された電源線には、例えば半導体記憶装置2の内部電源電圧である電圧VDDが供給され、ノードSRCには、例えば半導体記憶装置2の接地電圧である電圧VSSが供給される。
【0122】
「1-2-1.書き込み動作の概要」で説明したとおり、メモリシステム3では、「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドに基づき、5bit/Cellのユーザデータが3bit/CellのEDateにエンコードされる。メモリシステム3のセンスアンプユニットSAUは、プログラム用データを格納するラッチ回路の個数が3個である。ラッチ回路ADL、BDL、及びCDLの3個のラッチ回路が、プログラム用データを格納するラッチ回路である。ラッチ回路ADL、BDL、及びCDLの3個のラッチ回路のそれぞれは、2通りのレベル(8レベル、8値)に対応する閾値電圧(データ)を格納することができる。「1-2-1.書き込み動作の概要」で説明したとおり、2通りのレベルは、8つの閾値電圧分布にそれぞれ対応するEr、A、B、・・・、Gレベルのいずれかのレベルである。ラッチ回路SDLは、例えば、判定結果を格納する機能、演算結果を格納する機能、書き込みデータを一時的に保持する機能、読み出しデータDATを一時的に保持する機能を有するラッチ回路である。ラッチ回路XDLは、例えば、レジスタ25に接続され、センスアンプユニットSAUと入出力回路22との間のデータの入出力に使用されるラッチ回路である。
【0123】
ラッチ回路SDLは、例えばインバータ130及び131、並びにnチャネルMOSトランジスタ132及び133を含んでいる。インバータ130の入力ノードはノードLATに接続され、インバータ130の出力ノードはノードINVに接続される。インバータ131の入力ノードはノードINVに接続され、インバータ131の出力ノードはノードLATに接続される。トランジスタ132の一端はノードINVに接続され、トランジスタ132の他端はバスLBUSに接続され、トランジスタ132のゲートには制御信号STIが入力される。トランジスタ133の一端はノードLATに接続され、トランジスタ133の他端はバスLBUSに接続され、トランジスタ133のゲートには制御信号STLが入力される。例えば、ノードLATにおいて保持されるデータがラッチ回路SDLに保持されるデータに相当し、ノードINVにおいて保持されるデータはノードLATに保持されるデータの反転データに相当する。ラッチ回路ADL、BDL、CDL、及びXDLの回路構成は、例えばラッチ回路SDLの回路構成と同様のため、説明を省略する。
【0124】
プログラム電圧VPGMはプログラム動作の度にΔVPGM(図12)で段階的に高くなる。例えば、メモリシステム3では、段階的に高くなることは「ステップアップ」といい、ΔVPGMはステップアップ電圧という。
【0125】
例えば、ラッチ回路SDLは、所定のストリング116に含まれ、所定のワード線WLに属するメモリセルトランジスタMTに対するプログラム動作及びベリファイ動作において、ステップアップ前に「書き込み済み」と判定した結果、及び、ステップアップ前に「未書き込み」と判定した結果、並びに、ステップアップ後に「書き込み済み」と判定した結果、及びステップアップ後に「未書き込み」と判定した結果を保存してよい。
【0126】
図14A図14Cを用いて、メモリコントローラ1が、センスアンプユニットSAUに書き込み動作(ベリファイ動作)を指示する例を説明する。プレフィックスコマンドに基づき、メモリコントローラ1が、半導体記憶装置2に書き込み動作を含むサブプログ動作を実行するように指示し、センスアンプユニットSAUのラッチ回路ADL、BDL及びCDLに、例えば、図14Aに示された3ビット/Cell(2通り=8値)のEDataを入力する。このとき、例えば、ラッチ回路ADLは1st pageデータが入力され、ラッチ回路BDLは2nd pageデータが入力され、ラッチ回路CDLは3rd pageデータが入力される。
【0127】
例えば、ベリファイ動作において、メモリシステム3が、“A”レベルのデータが書き込まれたメモリセルトランジスタMTに対してベリファイ動作を実行する場合、ステップ1において、センスアンプユニットSAUはラッチ回路SDL、ADL、BDL、及びCDLを用いて、“A”レベルのデータが書き込まれたストリング116を指定する。このとき、センスアンプユニットSAUは、ラッチ回路ADL、BDL、及びCDLに一時的に保存したデータ(ここでは、それぞれ、“0”、“1”、“1”)を用いて、論理演算を実行し、ラッチ回路SDLに“1”を書き込む(図14A)。
【0128】
次に、ベリファイ動作に基づき、センスアンプユニットSAUは、所定のストリング116に含まれると共に“A”レベルのデータが書き込まれたメモリセルトランジスタMTを選択し、読み出しデータDATが当該メモリセルトランジスタMTから読み出される。「1-2-1.書き込み動作の概要」で説明したとおり、センスアンプユニットSAU(センスアンプ部SA)は、)は、センスノードSENの状態を監視する。ステップ2では、センスアンプ部SAは、読み出しデータDATをセンスし、当該閾値電圧が電圧VfyAより小さい(“0”)か、大きい(“1”)かを判定する(図14B)。当該閾値電圧が“1”の場合には、例えば、ラッチ回路SDLは、ステップアップ後に「書き込み済み」と判定した結果(例えば、“1”)を保存する。
【0129】
“A”レベルのベリファイ動作と同様に、“B”レベル~“G”レベルに対応するストリング116に対しても、ベリファイ動作が実行される。このとき、センスアンプユニットSAUは、ラッチ回路ADL、BDL、CDL、XDL、及びSDLに一時的に保存したデータを用いて、論理演算を実行する。ベリファイ動作をパスしたストリング116を含むビット線BLに対応したセンスアンプユニットSAU内の全てのラッチ回路は、「書き込み済み」と判定した結果(例えば“1”)を保存し、ベリファイ動作の対象から外れる。例えば、ステップ3では、図14Cに示されるように、“A”レベルのベリファイ動作をパスしたストリング116を含むビット線BLに対応したセンスアンプユニットSAU内の全てのラッチ回路は、「書き込み済み」と判定した結果(例えば“1”)を保存し、ベリファイ動作の対象から外れる。
【0130】
センスアンプユニットSAUにおいて、各センスアンプユニットSAUがビット線BLに読み出された閾値電圧に対応するデータを判定するタイミングは、制御信号STBがアサートされたタイミングに基づいている。半導体記憶装置2において「シーケンサ24が制御信号STBをアサートする」とは、シーケンサ24が制御信号STBを”L”レベルから”H”レベルに変化させることに対応している。
【0131】
センスアンプユニットSAUの構成は、図13図14Cを用いて説明された構成及び機能に限定されない。例えば、センスアンプユニットSAUにおいて、ゲートに制御信号STBが入力されるトランジスタ128は、pチャネルMOSトランジスタで構成されてもよい。この場合、「シーケンサ24が制御信号STBをアサートする」とは、シーケンサ24が制御信号STBを”H”レベルから”L”レベルに変化させることに対応する。
【0132】
次に、図15を用いて、比較例に係るセンスアンプユニットCSAUの一例を説明する。
【0133】
センスアンプユニットCSAUは、センスアンプユニットSAUより、プログラム用データラッチ(ラッチ回路)を2個多く含む。それ以外の構成及び機能は、センスアンプユニットSAUと同様であるからここでの説明は省略される。
【0134】
センスアンプユニットCSAUは、センスアンプユニットSAUの構成に加えて、ラッチ回路DDL及びEDLを含む。
【0135】
比較例に係るセンスアンプユニットCSAUを含む半導体記憶装置は、標準的なプログラムシーケンスに基づく書き込み動作を実行可能であるが、「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドに基づく書き込み動作を含むサブプログ動作を実行することができない。5bit/Cellのユーザデータを書き込む場合には、プログラム用データを格納するラッチ回路の個数が5個必要である。
【0136】
<1-2-4.センスアンプユニットの面積削減>
図16及び図17を用いて、第1実施形態に係るサブプログラムと比較例に係る追記方式を説明する。図16は、比較例に係るメモリセルトランジスタの閾値分布と各ページに対応するデータラッチ回路に格納されたレベルに対応する閾値電圧(データ)の関係を示し、図17は第1実施形態に係るメモリセルトランジスタMTの閾値分布との閾値分布と各ページに対応するデータラッチ回路に格納されたレベルに対応する閾値電圧(データ)の関係を示す。また、図18を用いて、センスアンプユニットの面積について説明する。図18は、センスアンプユニットSAUのレイアウトの模式図である。図16及び図17に示される閾値分布の図において、横軸及び縦軸は、図5に示される閾値分布の横軸及び縦軸と同じである。センスアンプユニットの面積削減の説明において、図1図15と同一、又は類似する構成の説明は省略されることがある。
【0137】
一例として、メモリセルはMLCであって、4つの閾値分布を形成する場合の追記方式を説明する。
【0138】
図16に示されるように、始めに、比較例に係る半導体記憶装置の書き込み動作では、SLCに対応する“Er”レベル及び“A”レベルに対応する1ビットの閾値分布が形成される。センスアンプユニットに含まれるラッチ回路ADLには、“Er”レベル及び“A”レベルに“1”を格納しておく。次に、MLCに対応する“B”レベル及び“C”レベルの閾値分布が形成される。すなわち、“B”レベル及び“C”レベルが追記される。センスアンプユニットに含まれるラッチ回路BDLには、“Er”レベル及び“B”レベルに“1”を格納しておく。
【0139】
MLCのレベルを追記する場合でも、SLC、“A”レベル、“B”レベル及び“C”レベルの4つのレベルを区別する必要があり、4つのレベルを区別するためには、2つのデータ(2ビットのデータ)が必要である。即ち、比較例に係るメモリセルトランジスタの追記方式では、2つのラッチ回路が必要である。
【0140】
一方、図17に示されるように、始めに、半導体記憶装置2の書き込み動作では、SLCに対応する“Er”レベル及び“A”レベルに対応する1ビットの閾値分布が形成される。センスアンプユニットSAUに含まれるラッチ回路ADLには、“Er”レベルに“1”を格納しておく。次に、中間状態で、“B”レベルに対応する1ビットのみを追記し、ラッチ回路ADLには、“A”レベルに“1”を格納しておく。さらに、“C”レベルに対応する1ビットのみを追記し、ラッチ回路ADLには、“B”レベルに“1”を格納しておく。
【0141】
半導体記憶装置2の書き込み動作では、レベルを追記する際に中間状態の閾値分布が形成される。半導体記憶装置2では、中間状態が形成されることに伴い、1ビットのみの追記で、1つのレベルを区別すればよい。したがって、サブプログラムを実行可能な半導体記憶装置2では、MLCであっても、ラッチ回路は1つでよい。
【0142】
中間状態を形成することは、レベルを重ねることに相当する。半導体記憶装置2の書き込み動作では、中間状態を形成することで、比較例の半導体記憶装置より、各センスアンプユニットSAUに含まれるラッチ回路の個数を低減することができる。
【0143】
例えば、図18に示されるように、半導体記憶装置2では、センスアンプユニットSAU<1>~SAU<15>の16個がスタックされ、配置される。各センスアンプユニットSAUは、16本のビット線BL(16BL)のうち何れか一つのビット線BLに接続されている。例えば、比較例に係る半導体記憶装置と半導体記憶装置2とを比較すると、プログラム用データのラッチ回路ADL~FDLが、プログラム用データのラッチ回路ADL~CDLに低減される。すなわち、ラッチ回路が2個低減される。
【0144】
<1-2-5.サブプログラムシーケンスの一例>
主に、図11図12図19A図24を用いて、サブプログラムシーケンスの一例を説明する。図19Aはサブプログラムシーケンスのタイミングチャートを示す図であり、図19Bはサブプログラム動作のタイミングチャートを示す図であり、図20はメモリシステム3のサブプログラムシーケンスにおけるプログラム動作及びベリファイ動作のタイミングを示す図である。図21は、メモリシステム3のサブプログラムシーケンスの一例を示す図である。図22は、比較例に係る半導体記憶装置のプログラムシーケンスの一例を示す図である。図23はメモリシステム3のエンコードデータテーブルの一例を示す図である。図24及び図25は、メモリシステム3のサブプログラムシーケンスの一例を示す図である。サブプログラムシーケンスの説明において、図1図18Bと同一、又は類似する構成の説明は省略されることがある。
【0145】
<1-2-5-1.サブプログラムシーケンスの概要>
【0146】
図19Aに示されるように、サブプログラムシーケンスは、例えば、第1のサブプログラム動作期間(1stSPP(Sub Program Period)、第2のサブプログラム動作期間(2ndSPP)、第3のサブプログラム動作期間(3rdSPP)、第4のサブプログラム動作期間(4thSPP)、及び第5のサブプログラム動作期間(5thSPP)を含む。メモリシステム3は、各期間に応じたサブプログラム動作(SP(Sub Program)を、各期間で実行する。
【0147】
図19Bに示されるように、各SP期間は、例えば、第1のサブコーディング動作期間(1stSCP(Sub Cording Period)、第2のサブコーディング期間(2ndSCP、第3のサブコーディング動作期間(3rdSCP)、及び書き込み動作期間を含む。メモリシステム3は、各期間に応じたサブコーディング動作(SC(Sub Cording Period)を各サブコーディング期間で実行し、1stSCP~3rdSCPに基づく書き込み動作を書き込み動作期間で実行する。
【0148】
図19Cに示されるように、メモリシステム3は、コマンドシーケンス“xzh-SCprog-Add1・・・Add4-yth SC zth pageData1・・・yth SC zth pageData16k-1Ah(or 10h)”に基づくサブコーディング動作を、各SP期間で実行する。
【0149】
メモリコントローラ1は、コマンド“xzh”、コマンド“SC_prog”、及びコマンド“1Ah”を、半導体記憶装置2に送信する。コマンド“xyh”は「サブプログラムシーケンス」の実行を指示するプレフィックスコマンドである。ここで、数値xはサブコーディング動作の順番を示すインデックスであり、1~5の整数である。また、数値yは書き込みデータのページ番号を示すインデックスであり、1~3の整数である。例えば、“11h”は、本動作が第1のサブコーディング動作であること、書き込みデータは第1のページのデータであることなどを含むコマンドである。コマンド“SC_prog”は、プレフィックスコマンドで指定されたサブプログラムを実行するコマンドである。例えば、第xのサブコーディング動作を実行する半導体記憶装置2は、連続するコマンド“xyh”及び“SC_prog”を受信すると、後続する書き込みデータがy番目のページのデータであることを認識する。
【0150】
続いて、メモリコントローラ1は、例えば4サイクルにわたってアドレスAdd1・・・Add4を、半導体記憶装置2に送信する。アドレスAdd1・・・Add4は、書き込みデータを書き込む物理アドレスである。続いて、メモリコントローラ1は、第xのサブコーディング動作のy番目のページのデータである書き込みデータ(xth SC yth pageData1・・・xth SC yth pageData16k)を半導体記憶装置2に送信する。
【0151】
続いて、メモリコントローラ1は、転送コマンド“1Ah”又は“10h”を、半導体記憶装置2に送信する。
【0152】
転送コマンド“1Ah”は、例えば、直前に送信された書き込みデータをラッチ回路ADL、BDL、CDLのいずれかに転送することを命令するコマンドである。例えば、メモリコントローラ1は、転送コマンド“1Ah”を、半導体記憶装置2に送信することと並行して、半導体記憶装置2は、転送コマンド“1Ah”を受信すると、xth SC yth pageData1・・・xth SC yth pageData16kによって指定された書き込みデータを、ラッチ回路ADLに送信し、ラッチ回路ADLは当該書き込みデータを格納する(図19CのD2L処理)。
【0153】
転送コマンド“10h”は、例えば、直前に送信された書き込みデータをラッチ回路ADL、BDL、CDLのいずれかに転送することを命令するコマンドであると共に、転送コマンド“10h”が送信される前に転送コマンド“1Ah”に基づき転送された書き込みデータ、及び、転送コマンド“10h”に基づき転送された書き込みデータの書き込み動作を実行することを指示するコマンドである。例えば、メモリコントローラ1は、転送コマンド“10h”を、半導体記憶装置2に送信することと並行して、半導体記憶装置2は、転送コマンド“10h”を受信すると、xth SC yth pageData1・・・xth SC yth pageData16kによって指定された書き込みデータを、ラッチ回路ADLに送信し、ラッチ回路ADLは当該書き込みデータを格納する(図19CのD2L処理)。また、半導体記憶装置2は、転送コマンド“10h”を受信すると、書き込み動作を実行する。半導体記憶装置2は、転送コマンド“10h”を受信すると、書き込み動作を実行することと平行して、転送コマンド“10h”が送信される前に転送コマンド“1Ah”に基づき指定された書き込みデータ、及び、転送コマンド“10h”に基づき指定された書き込みデータを、ラッチ回路ADL、BDL、CDLに送信し、各ラッチ回路は当該書き込みデータを格納してもよい(図19DのD2L処理)。
【0154】
<1-2-5-2.サブプログラムシーケンスのタイミング>
【0155】
図19A図19Dに基づき、メモリシステム3は図20に示されるサブプログラムシーケンスを実行する。
【0156】
例えば、図20に示されるように、メモリシステム3は、1stSPPでは、“11h-SCprog-Add1・・・Add4-1st SC 1st pageData1・・・1st SC 1st pageData16k-1Ah”に基づく1stSCPで、第1のページ(1st page)の第1のサブコーディング動作を実行し、“12h-SCprog-Add1・・・Add4-1st SC 2nd pageData1・・・1st SC 2nd pageData16k-1Ah”に基づく2ndSCPで第2のページ(2nd page)の第1のサブコーディング動作を実行し、“13h-SCprog-Add1・・・Add4-1st SC 3rd pageData1・・・1st SC 3rd pageData16k-10h”に基づく3rdSCPで、第3のページ(3rd page)の第1のサブコーディング動作を実行し、1stSPPにおける書き込み動作を実行する。
【0157】
図示は省略するが、メモリシステム3は、1stSPPに続く2ndSSPでは、“21h-SCprog-Add1・・・Add4-2nd SC 1st pageData1・・・2nd SC 1st pageData16k-1Ah”に基づく1stSCPで、第1のページ(1st page)の第2のサブコーディング動作を実行し、“22h-SCprog-Add1・・・Add4-2nd SC 2nd pageData1・・・2nd SC 2nd pageData16k-1Ah”に基づく2ndSCPで第2のページ(2nd page)の第2のサブコーディング動作を実行し、“23h-SCprog-Add1・・・Add4-3rd SC 3rd pageData1・・・3rd SC 3rd pageData16k-10h”に基づく3rdSCPで、第3のページ(3rd page)の第2のサブコーディング動作を実行し、2ndSPPにおける書き込み動作を実行する。
【0158】
また、図示は省略するが、メモリシステム3は、2ndSSPと同様に、2ndSPPに続く3rdSSPでは、“31h-SCprog-Add1・・・Add4-3rd SC 1st pageData1・・・3rd SC 1st pageData16k-1Ah”に基づく1stSCPで、第1のページ(1st page)の第3のサブコーディング動作を実行し、“32h-SCprog-Add1・・・Add4-3rd SC 2nd pageData1・・・3rd SC 2nd pageData16k-1Ah”に基づく2ndSCPで第2のページ(2nd page)の第3のサブコーディング動作を実行し、“33h-SCprog-Add1・・・Add4-3rd SC 3rd pageData1・・・3rd SC 3rd pageData16k-10h”に基づく3rdSCPで、第3のページ(3rd page)の第3のサブコーディング動作を実行し、3rdSPPにおける書き込み動作を実行する。
【0159】
さらに、図示は省略するが、メモリシステム3は、3rdSSPと同様に、3rdSPPに続く4thSSPでは、“41h-SCprog-Add1・・・Add4-4th SC 1st pageData1・・・4th SC 1st pageData16k-1Ah”に基づく1stSCPで第1のページ(1st page)の第4のサブコーディング動作を実行し、“42h-SCprog-Add1・・・Add4-4th SC 2nd pageData1・・・4th SC 2nd pageData16k-1Ah”に基づく2ndSCPで第2のページ(2nd page)の第4のサブコーディング動作を実行し、“43h-SCprog-Add1・・・Add4-4th SC 3rd pageData1・・・4th SC 3rd pageData16k-10h”に基づく3rdSCPで、第3のページ(3rd page)の第4のサブコーディング動作を実行し、4thSPPにおける書き込み動作を実行する。
【0160】
さらに、図20に示されるように、メモリシステム3は、4thSSPと同様に、4thSPPに続く5thSSPでは、51h-SCprog-Add1・・・Add4-5th SC 1th pageData1・・・5th SC 1th pageData16k-1Ah”に基づく1stSCPで第1のページ(1st page)の第5のサブコーディング動作を実行し、“52h-SCprog-Add1・・・Add4-5th SC 2nd pageData1・・・5th SC 2nd pageData16k-1Ah”に基づく2ndSCPで第2のページ(2nd page)の第5のサブコーディング動作を実行し“53h-SCprog-Add1・・・Add4-5th SC 3rd pageData1・・・5th SC 3rd pageData16k-10h”に基づく3rdSCPで、第3のページ(3rd page)の第5のサブコーディング動作を実行し、5thSPPにおける書き込み動作を実行する。
【0161】
図22を用いて、比較例に係るメモリシステムのプログラムシーケンスの一例を説明する。比較例に係るメモリシステムは、標準的なプログラムシーケンスを実行するコマンド“Prog”を、第1のページ~第5のページ(に相当するプレフィックスコマンド(01h~05h)を用いて、書き込み動作を実行する。アドレスAdd1・・・Add4の構成、転送コマンド1Ah及び10hの構成は同じであり、データ(z-th pageData1・・・zth pageData16k)の構成は同様であるから、ここでの説明は省略する。
【0162】
<1-2-5-3.メモリシステム3のエンコードデータの一例>
【0163】
図23を用いて、メモリシステム3が、サブプログラムシーケンスを用いて書き込み動作を実行する際の、書き込みデータ(エンコードデータ(EData))の一例を説明する。
【0164】
メモリシステム3が、サブプログラムシーケンスを用いて書き込み動作を実行する場合であっても、サブプログラムシーケンスの1stSPP~5thSPPの5回のサブプログラム動作として、TLCのようなそれぞれ異なる8個(8値)の閾値電圧分布を含むEDataを半導体記憶装置2に書き込む動作を繰り返すことによって、PLCと同様の32個(S00~S31のレベル)の閾値電圧分布を形成することができる。
【0165】
S0~S31のそれぞれのレベルは、図22に示される“1”~“32”の、互いに異なるいずれかのレベルに対応する。
【0166】
メモリシステム3は、“1”~32”のレベルを、“1”から順番に7個の閾値電圧レベルが形成されるように、5回のサブプログラム動作を実行することによって、32個(S00~S31のレベル)の閾値電圧分布を形成する。
【0167】
具体的には、メモリシステム3は、図22の1st scに示される“1”~“8”の8個(8値)の閾値電圧分布を含むEDataを用いて、1stSPPの1stSCP~3rdSCPを実行し、図22の2nd scに示される“8”~“15”の8個(8値)の閾値電圧分布を含むEDataを用いて、2ndSPPの1stSCP~3rdSCPを実行し、図22の3rd scに示される“15”~“22”の8個(8値)の閾値電圧分布を含むEDataを用いて、3rdSPPの1stSCP~3rdSCPを実行し、図22の4th scに示される“22”~“29”の8個(8値)の閾値電圧分布を含むEDataを用いて、4thSPPの1stSCP~3rdSCPを実行し、図22の5th scに示される“29”~“32”の4個(4値)の閾値電圧分布を含むEDataを用いて、5thSPPの1stSCP~3rdSCPを実行する。
【0168】
このとき、メモリシステム3は、1stSPPの最上位に相当する“8”レベルのデータ“000”と、2ndSPPの最下位に相当する“8”レベルのデータ“111”とが重なる書き込み動作を実行するように、半導体記憶装置2に書き込み動作を指示する。同様にして、メモリシステム3は、2ndSPPの最上位に相当する“15”レベルのデータ“000”と、3rdSPPの最下位に相当する“15”レベルのデータ“111”とが重なる書き込み動作を実行するように、半導体記憶装置2に書き込み動作を指示する。同様にして、メモリシステム3は、3rdSSPの最上位に相当するデータと4thSPPの最下位に相当するデータとが重なり、4thSSPの最上位に相当するデータと5thSPPの最下位に相当するデータとが重なる書き込み動作を実行するように、半導体記憶装置2に書き込み動作を指示する。
【0169】
また、メモリシステム3は書き込み動作を実行し、「未書き込み」のデータは図21に示されるように“0”を格納し、「書き込み済み」となったデータは図21に示されるように“1”を格納している。
【0170】
全てのデータが「書き込み済み」となった場合には、書き込み動作が終了したことを意味する。よって、メモリシステム3は、書き込み動作が終了した後に読み出し動作を実行することによって、第1のページ~第5のページの32個のレベルに相当する読み出しデータを、半導体記憶装置2から読み出すことができる。
【0171】
図22に示されるエンコードデータテーブルは、メモリコントローラ1及び半導体記憶装置2の両方に格納され、データが共有される。その結果、メモリコントローラ1及び半導体記憶装置2は、書き込まれたエンコードデータ及び読み出されたエンコードデータがどのデータなのかを、互いに把握することができる。メモリシステム3は、メモリコントローラ1及び半導体記憶装置2の両方にエンコードデータテーブルを格納し、双方でエンコードデータを確認することができるため、サブプログラムシーケンスを実行可能に、メモリコントローラ1及び半導体記憶装置2を制御することができる。
【0172】
J(Jは正の整数)番目のSPPの最上位に相当するデータと、J+1番目の最下位に相当するデータとが重なる部分が、「1-2-4.センスアンプユニットの面積削減」で説明した中間状態に対応する。メモリシステム3は、中間状態を形成することで、各センスアンプユニットSAUに含まれるラッチ回路の個数を比較例場合と比べて低減することができる。
【0173】
<1-2-5-4.サブプログラムシーケンスの変形例>
【0174】
図24を用いて、サブプログラムシーケンスの変形例を説明する。図24を用いたサブプログラムシーケンスの変形例の構成は、図20に示されたサブプログラムシーケンスと概ね同様の構成である。図24を用いたサブプログラムシーケンスの変形例の説明は、図20に示されたサブプログラムシーケンスと異なる点を中心に説明する。
【0175】
図24に示される変形例は、図20に示されたプレフィックスコマンド“xyh”が、第1のプレフィックスコマンド及び第2のプレフィックスコマンドに分割されている点が異なる。第1のプレフィックスコマンドは、サブコーディング動作の順番を示すインデックス(01h~05h)であり、01h~05hはそれぞれ第1~第5のサブコーディング動作を示す。第2のプレフィックスコマンドは、書き込みデータのページ番号を示すインデックス(01h~03h)であり、01h~03hはそれぞれ第1~第3のページを示す。
【0176】
以上説明したとおり、メモリシステム3では、サブコーディング動作の順番とページ番号とをまとめたプレフィックスコマンドを、サブコーディング動作の順番を示す第1プレフィックスコマンドとページ番号を示す第2のプレフィックスコマンドに分離して、サブプログラムを実行することも可能である。
【0177】
<第2実施形態>
第2実施形態では、図25を用いて、「1-2-5-3.メモリシステム3のエンコードデータの一例」とは異なるエンコードデータの一例を説明する。
【0178】
図25に示されたエンコードデータの構成は、図23に示されたエンコードデータの構成と概ね同様である。図25に示されたエンコードデータの構成の説明は、図23に示されたエンコードデータの構成と異なる点を中心に説明する。
【0179】
メモリシステム3は、例えば、1stSPPの上位の3つレベルのデータと2ndSPPの下位の3つのレベルのデータとが重なる書き込み動作を実行するように、半導体記憶装置2に書き込み動作を指示する。
【0180】
具体的には、メモリシステム3は、1stSPPの“6”レベルのデータ“011”と2ndSPPの“6”レベルのデータ“111”、1stSPPの“7”レベルのデータ“001”と2ndSPPの“7”レベルのデータ“101”、及び、1stSPPの“8”レベルのデータ“000”と2ndSPPの“8”レベルのデータ“100”とが重なる書き込み動作を実行するように、半導体記憶装置2に書き込み動作を指示する。
【0181】
1stSPPのデータと2ndSPPのデータとが重なる状態が、「1-2-4.センスアンプユニットの面積削減」で説明した中間状態に対応する。
【0182】
“6”レベルは、8”レベルより早くベリファイ動作が開始される。シーケンス内の早い時間帯で、中間状態を形成し、ベリファイ動作を実行することで、閾値電圧の分布をより狭く形成することができる。
【0183】
<第3実施形態>
第3実施形態では、図26を用いて、「1-2-5-2.サブプログラムシーケンスのタイミング」とは異なるプログラム動作のタイミングを説明する。図26は、サブプログラムシーケンスに基づく書き込み動作時における、プログラム動作のタイミングを示す図であり、選択ワード線の電圧の遷移を示す図である。図26に示されたシーケンスは、概ね、図21に示されたシーケンスと同様である。図26のシーケンスの説明では、図21に示されたシーケンスと異なる点を中心に説明する。
【0184】
図26は、図12に示される図におけるベリファイ動作に係る電圧VfyA~電圧VfyG1、図21に示される図におけるベリファイ動作に係る電圧VfyA~電圧VfyGを省略している。また、図26に示される第2のサブプログラム動作期間(2ndSPP)では、メモリシステム3は、第1のサブプログラム動作期間(1stSPP)における電圧VPGM1-1~電圧VPGM1-19のそれぞれに対応する電圧VPGM2-1~電圧VPGM2-19を供給するようにプログラム動作を実行する。電圧VPGM2-1~電圧VPGM2-19は、対応する電圧VPGM1-1~電圧VPGM1-19を昇圧した電圧である。また、図26に示される第3のサブプログラム動作期間(3rdSPP)では、メモリシステム3は、2ndSPPにおける電圧VPGM2-1~電圧VPGM2-19のそれぞれに対応する電圧VPGM3-1~電圧VPGM3-19を供給するようにプログラム動作を実行する。電圧VPGM3-1~電圧VPGM3-19は、対応する電圧VPGM2-1~電圧VPGM2-19を昇圧した電圧である。さらに、図26に示される3rdSPPでは、図12に示される図におけるベリファイ動作及び図21に示される図におけるベリファイ動作と同様に、2ndSPPにおける電圧VfyA~電圧VfyGのそれぞれに対応する電圧VfyA~電圧VfyGを供給するようにベリファイ動作を実行するが、電圧VfyA~電圧VfyGは省略されている。なお、メモリシステム3は、ベリファイ動作に係る電圧VfyA~電圧VfyGにおいても、プログラム動作における電圧と同様に、1stSPP、2ndSPP、3rdSPPと実行されるにつれて、昇圧する電圧を供給するようにベリファイ動作を実行する。
【0185】
また、2ndSPPの最初のプログラムループにおける電圧VPGM2-1は、1stSPPの最後のプログラムループにおける電圧VPGM1-19より小さく、3rdSPPの最初のプログラムループにおける電圧VPGM3-1は、2ndSPPの最後のプログラムループにおける電圧VPGM2-19より小さい。
【0186】
すなわち、サブプログラム動作期間が変わる毎に、第3実施形態に係るメモリシステム3は、当該サブプログラム動作期間における最初のプログラムループにおけるプログラム電圧を、一つ前のサブプログラム動作期間における最後のプログラムループにおけるプログラム電圧よりも下げるように書き込み動作を実行する。
【0187】
上記各実施形態において、同一及び一致という表記を用いている場合、同一及び一致には、設計の範囲での誤差が含まれている場合を含んでいてもよい。
【0188】
以上、本開示の不揮発性半導体記憶装置のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で適宜組み合わせて実施してよく、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0189】
1:メモリコントローラ、2:半導体記憶装置、3:メモリシステム、4:ホスト、12:プロセッサ、13:ホストインターフェイス、14:ECC(Error:Check:and:Correct)回路、15:メモリインターフェイス、16:内部バス、17:サブコードジェネレータ、21:メモリセルアレイ(memory:cell:array)、22:入出力回路(input/output)、23:ロジック制御回路(logic:control)、24:シーケンサ(sequencer)、25:レジスタ(register)、26:ビジー制御回路(ready/busy:circuit)、27:電圧生成回路(voltage:generation)、28:ドライバセット(driver:set)、29:ロウデコーダ(row:decoder)、70:センスアンプモジュール(sense:amplifier)、71:入出力用パッド群、72:ロジック制御用パッド群、116:ストリング、120:トランジスタ、121:トランジスタ、122:トランジスタ、123:トランジスタ、124:トランジスタ、125:トランジスタ、126:トランジスタ、127:トランジスタ、128:トランジスタ、129:キャパシタ、130:インバータ、131:インバータ、132:トランジスタ、133:トランジスタ、171:サブコードインデックスレジスタ、172:ライトデータバッファ、173:サブコードエンコーダ、400:積層体、401:半導体基板、410:メモリセルアレイ層、411:導電膜、412:導電膜、413:導電膜、414:導電膜、420:SGD(ドレイン側選択ゲート)層
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図14C
図15
図16
図17
図18
図19A
図19B
図19C
図19D
図20
図21
図22
図23
図24
図25
図26