JP2020095766A - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP2020095766A
JP2020095766A JP2018231802A JP2018231802A JP2020095766A JP 2020095766 A JP2020095766 A JP 2020095766A JP 2018231802 A JP2018231802 A JP 2018231802A JP 2018231802 A JP2018231802 A JP 2018231802A JP 2020095766 A JP2020095766 A JP 2020095766A
Authority
JP
Japan
Prior art keywords
data
cell
circuit
latch circuit
wdl
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018231802A
Other languages
English (en)
Inventor
里英子 船附
Rieko Funatsuki
里英子 船附
佐々木 貴彦
Takahiko Sasaki
貴彦 佐々木
智紀 黒沢
Tomoki Kurosawa
智紀 黒沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2018231802A priority Critical patent/JP2020095766A/ja
Priority to TW108121245A priority patent/TWI740161B/zh
Priority to CN201910589709.2A priority patent/CN111312315B/zh
Priority to US16/561,391 priority patent/US11200951B2/en
Publication of JP2020095766A publication Critical patent/JP2020095766A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/08Control thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】高速に書き込み動作を行なうことが可能な半導体記憶装置を提供する。【解決手段】半導体記憶装置20は、複数のメモリセルトランジスタを単位とするグループGP内のメモリセル閾値の大小関係でデータを記憶し、入力された書き込みデータを、グループGP内のメモリセルの閾値の並び順に関する順列データへ変換するに変換する変換回路22aと、順列データに基づいて、複数のメモリセルに書き込みを行うラッチ部とを備える。【選択図】図5

Description

実施形態は半導体記憶装置に関する。
半導体記憶装置としてNAND型フラッシュメモリが知られている。
特表2005−522045号公報
高速に書き込み動作を行なうことが可能な半導体記憶装置を提供する。
実施形態の半導体記憶装置は、第1データを、前記複数のメモリセルの閾値の並び順に関する第2データに変換する第1回路と、前記第2データに基づいて、前記複数のメモリセルに書き込みを行う第2回路と、を備える。
図1は、半導体記憶装置の記憶方式の1例を示す図である。 図2は、半導体記憶装置の他の記憶方式の1例を示す図である。 図3は、半導体記憶装置の他の記憶方式を採用した場合におけるメモリセルの閾値分布である。 図4は、メモリシステムのブロック図である。 図5は、半導体記憶装置のブロック図である。 図6は、メモリセルアレイの回路図である。 図7は、カラムデコーダを示すブロック図である。 図8は、ロウデコーダを示すブロック図である。 図9は、実施形態に係る半導体記憶装置の記憶方式の1例を示す図である。 図10は、データとメモリセルの閾値の順序との関係を示した図である。 図11は、順列データの構造を示した図である。 図12は、データと順列データとの関係を示した図である。 図13は、ラッチ回路に記憶されるデータを示した図である。 図14は、ラッチ回路に記憶されるデータを示した図である。 図15は、実施形態に係る不揮発性半導体記憶装置のデータ書き込みの概要を示す図である。 図16は、第1実施形態に係る不揮発性半導体記憶装置のデータ書き込みを示すフローチャートである。 図17は、データとセルの順列の関係を示した図である。 図18は、第1実施形態に係る不揮発性半導体記憶装置のデータ書き込みを示す波形図である。 図19は、第1実施形態に係る不揮発性半導体記憶装置のデータ書き込みを示す波形図である。 図20Aは、半導体記憶装置の記憶方式の1例を示す図である。 図20Bは、実施形態に係る半導体記憶装置の記憶方式の1例を示す図である。 図21は、第2実施形態の比較例に係る半導体記憶装置のセンスアンプモジュールの構成を示すブロック図である。 図22は、第2実施形態に係る半導体記憶装置のセンスアンプモジュールの構成を示すブロック図である。 図23は、マルチプレクサの構成を示す回路図である。 図24は、第3実施形態に係る半導体記憶装置のセンスアンプモジュールの構成を示すブロック図である。 図25は、第3実施形態に係る半導体記憶装置のセンスアンプモジュールの構成を示す回路図である。 図26は、第3実施形態に係る半導体記憶装置のセンスアンプモジュールの構成を示す回路図である。 図27は、プログラムループによるメモリセルの閾値の変動を示す図である。 図28は、第4実施形態に係る半導体記憶装置の第2書き込みを示すフローチャートである。 図29は、第2書き込み方法における動作波形を示す波形図である。 図30は、プログラムループによるメモリセルの閾値の変動を示す図である。 図31は、プログラムループによるメモリセルの閾値の変動を示す図である。 図32は、プログラムループによるメモリセルの閾値の変動を示す図である。 図33は、第4書き込み方法における動作波形を示す波形図である。 図34は、プログラムループによるメモリセルの閾値の変動を示す図である。 図35は、第4書き込み方法における動作波形を示す波形図である。 図36は、第4書き込み方法における動作波形を示す波形図である。 図37は、プログラムループによるメモリセルの閾値の変動を示す図である。 図38は、プログラムループによるメモリセルの閾値の変動を示す図である。 図39は、第5書き込み方法における動作波形を示す波形図である。 図40は、第6書き込み方式の具体例を示す図である。 図41は、第7書き込み方式の具体例を示す図である。 図42は、メモリシステムの他の例のブロック図である。
以下、実施形態の詳細を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
<1> 第1実施形態
<1−1> 概要
まず、第1実施形態の概要について説明する。
不揮発性半導体記憶装置における記憶方式の1つとして、メモリセルの閾値を所定の電圧にすることでデータの記憶を行なう方式がある。
例えば、図1に示すように、1つのメモリセルに1ビット(2値)のデータを記憶する場合、メモリセルの閾値を“Er”レベル、または“A”レベル(基準値AV以上)のいずれかの閾値にする。このように、1つのメモリセルに1ビットのデータを記憶する場合、“Er”レベルの閾値分布と、“A”レベルの閾値分布との間隔が十分に確保できる。
しかし、1つのメモリセルに複数のビット(多値)のデータを記憶することが求められている。図1に示すように、1つのセルに複数のビット(例えば2ビット)のデータを記憶する場合、複数の基準値(AV、BV、CV)が設けられる。そのため、1つのメモリセルに1ビットのデータを記憶する場合よりも狭い閾値分布にデータを書き込むことが求められる。
しかし、半導体記憶装置の微細化が進むにつれ、メモリセル間のばらつきが増大し、またディスターブや温度変化の影響を受け、閾値分布の幅が広がることがある。この場合、図1に示すように、隣接する閾値分布が重なったり、閾値分布が基準値を下回ったりすることがある。
また多値化に伴い、読み出し電位を変えての複数回の読み出し動作が必要であり、読み出し時間が増大してしまっている。
それに対して、不揮発性半導体記憶装置における記憶方式の1つとして、複数のメモリセル(例えばn個(nは任意の整数))を1グループとし、1グループ内のメモリセルの閾値の順序により、データを決定する方式が考えられる(図2参照)。
図2に示すように、1グループにn個のメモリセルが含まれる場合、メモリセルの閾値の順序は、n!通りある。つまり、1グループでn!値のデータを定義することができる。
図1の方式の場合、図3の破線に示すような4つの分布が存在する。しかし、図2の方式の場合、図1で説明した方式と異なり、データ毎に閾値が定まっているわけではない。そのため、図2の方式でメモリセルの閾値分布を見ると、図3に示すように、1つの分布に見える。
以下では、図2で説明した方式を採用する半導体記憶装置について説明する。
<1−2> 構成
まず、第1実施形態に係る半導体記憶装置の構成について説明する。
<1−2−1> メモリシステムの全体構成
第1実施形態に係るメモリシステムの構成例について、図4を用いて説明する。図4は、第1実施形態に係るメモリシステムの構成の一例を示すブロック図である。メモリシステム100は、例えば、外部のホスト機器200と通信する。メモリシステム100は、ホスト機器200からのデータを保持し、また、データをホスト機器200に読み出す。
図4に示すように、メモリシステム100は、メモリコントローラ10及び半導体記憶装置(NANDフラッシュメモリ)20を備えている。メモリコントローラ10は、ホスト機器200から命令を受取り、受け取られた命令に基づいて半導体記憶装置20を制御する。具体的には、メモリコントローラ10は、ホスト機器200から書き込みを指示されたデータを半導体記憶装置20に書き込み、ホスト機器200から読出しを指示されたデータを半導体記憶装置20から読み出してホスト機器200に送信する。メモリコントローラ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−2−2> コントローラの構成について
引き続き図4を用いて、第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は、例えば、ホスト機器200から受信したデータの読出し命令に応答して、NANDインタフェースに基づく読出し命令を半導体記憶装置20に対して発行する。この動作は、書き込み及び消去の場合についても同様である。また、プロセッサ11は、半導体記憶装置20からの読出しデータに対して、種々の演算を実行する機能を有する。
内蔵メモリ12は、例えば、DRAM(Dynamic RAM)等の半導体メモリであり、プロセッサ11の作業領域として使用される。内蔵メモリ12は、半導体記憶装置20を管理するためのファームウェア、及び各種の管理テーブル等を保持する。
ECC回路13は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書き込み時には、ホスト機器200から受信したデータに基づいて、或る数のデータの組毎にECC符号を生成する。また、データの読出し時には、ECC符号に基づいてECC復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。
NANDインタフェース回路14は、NANDバスを介して半導体記憶装置20と接続され、半導体記憶装置20との通信を司る。NANDインタフェース回路14は、プロセッサ11の指示により、コマンドCMD、アドレスADD、及び書き込みデータを半導体記憶装置20に送信する。また、NANDインタフェース回路14は、半導体記憶装置20から読出しデータを受信する。
バッファメモリ15は、メモリコントローラ10が半導体記憶装置20及びホスト機器200から受信したデータ等を一時的に保持する。バッファメモリ15は、例えば、半導体記憶装置20からの読出しデータ、及び読出しデータに対する演算結果等を一時的に保持する記憶領域としても使用される。
ホストインタフェース回路16は、ホスト機器200と接続され、ホスト機器200との通信を司る。ホストインタフェース回路16は、例えば、ホスト機器200から受信した命令及びデータを、それぞれプロセッサ11及びバッファメモリ15に転送する。
<1−2−3> 半導体記憶装置の構成
次に、第1実施形態に係る半導体記憶装置の構成例について、図5を用いて説明する。図5は、第1実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
半導体記憶装置20は、メモリセルアレイ21、入出力回路22、ロジック制御回路23、レジスタ24、シーケンサ25、電圧生成回路26、ドライバセット27、ロウデコーダ28、及びセンスアンプモジュール29を備えている。
メモリセルアレイ21は、複数のブロックBLKを備えている。ブロックBLKは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタ(図示せず)を含む。ブロックBLKは、例えばデータの消去単位となり、同一のブロックBLK内のデータは、一括して消去される。各ブロックBLKは、複数のストリングユニットSUを備えている。各ストリングユニットSUは、NANDストリングNSの集合である。NANDストリングNSは、複数のメモリセルトランジスタを含む。以下では、メモリセルトランジスタは、単に「メモリセル」または「セル」とも記載する。また、同一ワード線に接続された複数のメモリセルトランジスタ単位をグループGPと記載する。本実施形態における半導体記憶装置では、グループ単位でデータを記憶する。なお、メモリセルアレイ21内のブロック数、1ブロックBLK内のストリングユニット数、1ストリングユニットSU内のNANDストリング数、及び1グループ内のメモリセルトランジスタ数は、任意の数に設定出来る。特に、グループとメモリセルトランジスタとの関係は、例えば入出力回路22に記憶される。
入出力回路22は、メモリコントローラ10と信号I/O<7:0>を送受信する。入出力回路22は、信号I/O<7:0>内のコマンドCMD及びアドレスADDをレジスタ24に転送する。入出力回路22は、書き込みデータ及び読み出しデータをセンスアンプモジュール29と送受信する。入出力回路22は、変換回路22aを備える。変換回路22aは、信号I/O<7:0>を受信すると、1グループで記憶できるビット(1グループが4つのセルで構成される場合は、4ビット)ずつ順列データへ変換する。順列データとは、順列情報(セルの閾値の並び順)を規定するためのデータフォーマットである。
ロジック制御回路23は、メモリコントローラ10から信号/CE、CLE、ALE、/WE、/RE、及び/WPを受信する。また、ロジック制御回路23は、信号/RBをメモリコントローラ10に転送して半導体記憶装置20の状態を外部に通知する。
レジスタ24は、コマンドCMD及びアドレスADDを保持する。レジスタ24は、アドレスADDをロウデコーダ28及びセンスアンプモジュール29に転送すると共に、コマンドCMDをシーケンサ25に転送する。
シーケンサ25は、コマンドCMDを受け取り、受け取ったコマンドCMDに基づくシーケンスに従って半導体記憶装置20の全体を制御する。
電圧生成回路26は、シーケンサ25からの指示に基づき、データの書き込み、読出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路26は、生成した電圧をドライバセット27に供給する。
ドライバセット27は、複数のドライバを含み、レジスタ24からのアドレスに基づいて、電圧生成回路26からの種々の電圧をロウデコーダ28及びセンスアンプモジュール29に供給する。ドライバセット27は、例えば、アドレス中のロウアドレスに基づき、ロウデコーダ28に種々の電圧を供給する。
ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受取り、例えば当該ロウアドレス内のブロックアドレスに基づいてブロックBLK等を選択する。そして、選択されたブロックBLKには、ロウデコーダ28を介してドライバセット27からの電圧が転送される。
センスアンプモジュール29は、データの読出し時には、メモリセルトランジスタからビット線に読み出された読出しデータをセンスし、センスした読出しデータを入出力回路22に転送する。センスアンプモジュール29は、データの書き込み時には、ビット線を介して書込まれる書き込みデータをメモリセルトランジスタに転送する。また、センスアンプモジュール29は、レジスタ24からアドレスADD中のカラムアドレスを受取り、当該カラムアドレスに基づくカラムのデータを出力する。
<1−2−4> メモリセルアレイの構成
次に、図6を用いて、第1実施形態に係る半導体記憶装置のメモリセルアレイの構成について説明する。図6は、第1実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図の一例である。
図6に示すように、NANDストリングNSの各々は、例えば8個のメモリセルトランジスタMT(MT1〜MT8)と、選択トランジスタST1と、選択トランジスタST2とを備える。なお、メモリセルトランジスタMTの個数は8個に限られず、16個、32個、64個、96個、128個等であってもよく、その数は限定されるものではない。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタMTは、選択トランジスタST1及びST2の間に、直列接続される。なお、以下の説明では『接続』とは、間に別の導電可能な要素が介在する場合も含む。
また、図6に示すように、1つのグループGPは、同一のワード線WLが接続された複数(例えば4つ)のメモリセルトランジスタを含む。ここでは、グループ毎にデータを記憶する。
メモリセルアレイの構成についてはその他の構成であっても良い。すなわちメモリセルアレイの構成については、例えば、“三次元積層不揮発性半導体メモリ”という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−2−5> センスアンプモジュールの構成
図7を用いて、第1実施形態に係る半導体記憶装置のセンスアンプモジュールの構成について説明する。
図7に示すように、第1実施形態に係る半導体記憶装置のセンスアンプモジュール29は、複数のセンス部291(291_1〜291_k)と、ラッチ部292(292_1〜292_k)と、を備えている。
各センス部291は、1つのグループGPに関するセンスアンプSAとラッチ回路SDLの組をビット線毎に設けられている。
センスアンプSAは、ビット線BLを介してメモリセルからデータを読み出し、ラッチ回路SDLにデータを記憶する。
ラッチ回路SDLは、センスアンプSAによって読み出されたデータ、または、メモリセルに書き込むデータが記憶される。
各ラッチ部292は、複数のラッチ回路WDL及びRDLを備えている。
ラッチ回路WDLは、メモリセルにデータを書き込むためのデータを記憶する。各ラッチ回路WDLに記憶されるデータについては後述する。なお、ラッチ回路WDLは、個(nは1グループあたりのセル数)設けられている。
ラッチ回路RDLは、メモリセルから読み出した情報を記憶する。各ラッチ回路RDLに記憶されるデータについては後述する。また、ラッチ回路RDLは、個(nは1グループあたりのセル数)設けられている。
<1−2−6> ロウデコーダの構成について
次に、第1実施形態に係る半導体記憶装置のロウデコーダの構成について、図8を用いて説明する。
図8に示すように、ロウデコーダ28は、複数の転送スイッチ群51、及び複数のブロックデコーダ52を含む。
1つの転送スイッチ群51及び1つのブロックデコーダ52は、例えば、1つのブロックBLKに割当てられる。図8の例では、転送スイッチ群51−0及びブロックデコーダ52−0は、ブロックBLK0に割当てられ、転送スイッチ群51−1及びブロックデコーダ52−1は、ブロックBLK1に割当てられる。以下の説明では、書き込み、読出し、及び消去の対象となるブロックBLKを「選択ブロックBLK」と言い、選択ブロックBLK以外のブロックBLKを「非選択ブロックBLK」と言う。
転送スイッチ群51は、例えば、10個の転送トランジスタTTr(TTr1〜TT10)を含む。
転送トランジスタTTr1〜TTr8はそれぞれ、ドライバセット27から配線CG(CG1〜CG8)に供給された電圧を、選択ブロックBLKのワード線WL1〜WL8に転送する。転送トランジスタTTr1〜TTr8はそれぞれ、対応するブロックBLKのワード線WL1〜WL8に接続された第1端と、配線CG1〜CG8に接続された第2端と、ノードBLKSELに共通に接続されたゲートと、を含む。
転送トランジスタTTr9は、ドライバセット27から配線SGDLに供給された電圧を、選択ブロックBLKの選択ゲート線SGDに転送する。転送トランジスタTTr9はそれぞれ、対応するブロックBLKの選択ゲート線SGDに接続された第1端と、配線SGDLに接続された第2端と、ノードBLKSELに共通に接続されたゲートと、を含む。
転送トランジスタTTr10は、ドライバセット27から配線SGSLに供給された電圧を、選択ブロックBLKの選択ゲート線SGSに転送する。転送トランジスタTTr10は、対応するブロックBLKの選択ゲート線SGSに接続された第1端と、配線SGSLに接続された第2端と、ノードBLKSELに接続されたゲートと、を含む。
ブロックデコーダ52は、データの書き込み、読出し、及び消去の際に、レジスタ24から受信したブロックアドレス信号をデコードする。ブロックデコーダ52は、デコードの結果、当該ブロックデコーダ52に対応するブロックBLKが選択ブロックBLKであると判定した場合、“H”レベルの信号をノードBLKSELに出力する。また、ブロックデコーダ52は、対応するブロックBLKが選択ブロックBLKでないと判定した場合、“L”レベルの信号をノードBLKSELに出力する。ノードBLKSELに出力される信号は、転送トランジスタTTr1〜TTr10を、“H”レベルでオン状態とし、“L”レベルでオフ状態とする。
ドライバセット27は、レジスタ24から受信したアドレスADDに従って、配線CG、SGDL、及びSGSLに電圧を供給する。配線CG、SGDL、及びSGSLは、ドライバセット27から供給された各種電圧を、転送スイッチ群51−0、51−1、…の各々に対して転送する。つまり、ドライバセット27から供給される電圧は、選択ブロックBLKに対応する転送スイッチ群51内の転送トランジスタTTr1〜TTr10を介して、選択ブロックBLK内のワード線WL、選択ゲート線SGD及びSGSに転送される。
<1−3> 動作
<1−3−1> データ記憶方式
ここで、本実施形態に係る不揮発性半導体記憶装置の記憶方式について説明する。
上述したように、本実施形態に係る不揮発性半導体記憶装置の記憶方式は、1ページを、複数のセル(例えば4つのセル)毎にグループに分け、1グループ内の複数のセルの閾値の順列によりデータを決定する方式である。このようなデータを順列データと記載する。
図9及び図10に示すように、例えば、4つのセルで1グループを形成する場合、セルの並び方としては、4!(24)通り(16値)の並び方がある。この並び方をビット数に換算すると、Log24=4.58ビットとなる。更に、これを1つのセルあたりのビット数に換算すると、1.15ビット/1セルになる。これは、所謂SLC(Single level cell)相当の記憶密度となる。1グループ内のセルの数を増やせば、1セルあたりのビット数は大きくなる。
<1−3−2> データフォーマット
図11に示すように、本例における順列データは、2セルずつの閾値の大小関係にわけることで生成される。1グループに4つのセル(セル1〜セル4)が属する場合における順列データは、1ビット目にセル1とセル4との閾値の大小が規定され、2ビット目にセル1とセル3との閾値の大小が規定され、3ビット目にセル1とセル2との閾値の大小が規定され、4ビット目にセル2とセル4との閾値の大小が規定され、5ビット目にセル2とセル3との閾値の大小が規定され、6ビット目にセル3とセル4との閾値の大小が規定される。
図11に示すように、セル1の閾値が、セル4の閾値よりも小さい場合は、1ビット目の値は“0”となる。セル1の閾値が、セル4の閾値よりも大きい場合は、1ビット目の値は“1”となる。
図11に示すように、セル1の閾値が、セル3の閾値よりも小さい場合は、2ビット目の値は“0”となる。セル1の閾値が、セル3の閾値よりも大きい場合は、2ビット目の値は“1”となる。
図11に示すように、セル1の閾値が、セル2の閾値よりも小さい場合は、3ビット目の値は“0”となる。セル1の閾値が、セル2の閾値よりも大きい場合は、3ビット目の値は“1”となる。
図11に示すように、セル2の閾値が、セル4の閾値よりも小さい場合は、4ビット目の値は“0”となる。セル2の閾値が、セル4の閾値よりも大きい場合は、4ビット目の値は“1”となる。
図11に示すように、セル2の閾値が、セル3の閾値よりも小さい場合は、5ビット目の値は“0”となる。セル2の閾値が、セル3の閾値よりも大きい場合は、5ビット目の値は“1”となる。
図11に示すように、セル3の閾値が、セル4の閾値よりも小さい場合は、6ビット目の値は“0”となる。セル3の閾値が、セル4の閾値よりも大きい場合は、6ビット目の値は“1”となる。
図12に、16値のデータと、順列データとの対応関係を図示した。具体的には、“1”データが入力されると、入出力回路22は、順列データとして“000000”を生成する。同様にして、2〜16のデータが入力されると、入出力回路22は、上記ルールに基づいて順列データを生成する。
<1−3−3> 順列データとラッチ回路WDL
上記のように、4つのセルの順列データを書き込むためには、(=6)個のラッチ回路WDLが必要となる。
図13に示すように、本実施形態に係る不揮発性半導体記憶装置では、6個のラッチ回路WDLを備えている。ラッチ回路WDL(1_4)は、順列データの1ビット目を記憶する。ラッチ回路WDL(1_3)は、順列データの2ビット目を記憶する。ラッチ回路WDL(1_2)は、順列データの3ビット目を記憶する。ラッチ回路WDL(2_4)は、順列データの4ビット目を記憶する。ラッチ回路WDL(2_3)は、順列データの5ビット目を記憶する。ラッチ回路WDL(3_4)は、順列データの6ビット目を記憶する。
なお、ここで、ラッチ回路WDL(X_Y)という表記について説明する。「ラッチ回路WDL(X_Y)」における「X」及び「Y」は、あるグループにおけるセルの番号に相当する。例えば、セルXの閾値が、セルYの閾値よりも小さい場合は、「ラッチ回路WDL(X_Y)」に“0”が記憶される。また、セルXの閾値が、セルYの閾値よりも大きい場合は、「ラッチ回路WDL(X_Y)」に“1”が記憶される。
<1−3−4> 順列データとラッチ回路RDL
上記のように、4つのセルの順列データを読み出すためには、(=6)個のラッチ回路RDLが必要となる。
図14に示すように、本実施形態に係る不揮発性半導体記憶装置では、6個のラッチ回路RDLを備えている。ラッチ回路RDL(1_4)は、順列データの1ビット目を記憶する。ラッチ回路RDL(1_3)は、順列データの2ビット目を記憶する。ラッチ回路RDL(1_2)は、順列データの3ビット目を記憶する。ラッチ回路RDL(2_4)は、順列データの4ビット目を記憶する。ラッチ回路RDL(2_3)は、順列データの5ビット目を記憶する。ラッチ回路RDL(3_4)は、順列データの6ビット目を記憶する。
なお、ここで、ラッチ回路RDL(X_Y)という表記について説明する。「ラッチ回路RDL(X_Y)」における「X」及び「Y」は、あるグループにおけるセルの番号に相当する。例えば、セルXの閾値が、セルYの閾値よりも小さい場合は、「ラッチ回路RDL(X_Y)」に“0”が記憶される。また、セルXの閾値が、セルYの閾値よりも大きい場合は、「ラッチ回路RDL(X_Y)」に“1”が記憶される。
<1−4> 動作
<1−4−1> データ書き込み
<1−4−1−1> 概要
ここで、図15を用いて、本実施形態に係る不揮発性半導体記憶装置のデータ書き込みの概要について説明する。ここでは、簡単のため4セル/グループの例を用いるが、実際は9セル/グループや20セル/グループとすることが考えられ、その際でも原理は同じである。
図15に示すように、メモリコントローラ10のNANDインタフェース回路14から半導体記憶装置20にデータが供給される(S1)。
入出力回路22は、NANDインタフェース回路14から受信したデータを4ビット毎に区切る(S2)。そして、入出力回路22は、区切ったデータをセルの順列に変換する(S3)。更に、入出力回路22は、セルの順列に基づいて、順列データを生成する(S4)。そして、シーケンサ25は、順列データに基づいて、メモリセルへ書き込みを行う。その結果、1グループにおいて、順列データに基づく並び順でメモリセルの閾値が設定される(S5)。
<1−4−1−2> フロー
図16を用いて、本実施形態に係る不揮発性半導体記憶装置のデータ書き込みの流れについて説明する。なお、データの書き込みはおおまかに2つの動作を備えている。1つ目の動作は、メモリセルの閾値を変えるプログラムである。2つ目の動作は、プログラムの結果を確認するプログラムベリファイである。以下では、プログラムと、プログラムベリファイをくりかえすことで、データを書き込む方法について説明する。
[ステップS101]
シーケンサ25は、ラッチ回路WDLに記憶された順列データに基づいて第1プログラムを行う。シーケンサ25は、第1プログラムとして、3レベルのパルスをそれぞれ該当するセルに印加し、各グループ内のセルの閾値がそれぞれの順位になるよう書き込みを行う。一方で、グループ内の最下位に書き込むべきセル(第1番目のセル)は、閾値が最も低いので、書き込みを行う必要はない。そこで、この第1プログラムでは、第1番目のセル(非書き込みのセル)以外のセルに対してプログラムを行う。プログラム時における、ラッチ回路の動きなどについては後述する。
[ステップS102]
シーケンサ25は、ステップS101の後、プログラムベリファイ動作を行う。
[ステップS103]
シーケンサ25は、ディテクト1として、各グループ内の最下位に書き込むべきセル(第1番目のセル)の順位が正しいかどうかをチェックし、許容値以上のグループにおいて正しければステップS103はパスする(フェイルするグループの許容値は任意に設定できる)。なお、ディテクト1時における、ラッチ回路の動きなどについては後述する。
[ステップS104]
シーケンサ25は、ディテクト1がフェイルであると判定する場合(ステップS103、フェイル)、書き込み対象のセルに対して第1サイクルプログラムを行う。
[ステップS105]
シーケンサ25は、第1サイクルプログラムの後、書き込み対象のセルに対して第2サイクルプログラムを行う。
[ステップS106]
シーケンサ25は、第2サイクルプログラムの後、書き込み対象のセルに対して第3サイクルプログラムを行う。その後、ステップS102において、プログラムベリファイ動作が行われる。
[ステップS107]
シーケンサ25は、ディテクト1がパスしていると判定する場合(ステップS103、パス)、ディテクト2を行う。ディテクト2では、各グループ内の下から2番目に書き込むべきセル(第2番目のセル)の順位が正しいかをチェックし、許容値以上のグループにおいて正しければパスする。
[ステップS108]
シーケンサ25は、ディテクト2がベリファイをパスしていないと判定する場合(ステップS107、フェイル)、第2サイクルプログラムを行う。
[ステップS109]
シーケンサ25は、第2サイクルプログラムの後、第3サイクルプログラムを行う。
[ステップS110]
シーケンサ25は、ステップS109の後、プログラムベリファイを行う。そして、その後、ステップS107を繰り返す。
[ステップS111]
シーケンサ25は、ディテクト2がプログラムベリファイをパスしていると判定する場合(ステップS107、パス)、ディテクト3を行う。
ディテクト3では、最上位に書き込むべきセル(第4番目のセル)の順位が正しいかをチェックし、許容値以上のグループにおいて正しければパスする。
シーケンサ25は、ディテクト3をパスすると、書き込み動作を終了する。
[ステップS112]
シーケンサ25は、ディテクト3がフェイルだと判定する場合(ステップS111、フェイル)、第3サイクルプログラムを行う。
[ステップS113]
シーケンサ25は、ステップS112の後、プログラムベリファイを行う。その後、ステップS111を繰り返す。
<1−4−1−3> 具体例
続いて、本実施形態に係る不揮発性半導体記憶装置のデータ書き込みの具体例について説明する。以下では、動作波形や、ラッチ回路の動きに着目して具体例を説明する。
ここでは、メモリコントローラ10から受信したデータ“1100”を書き込む場合について説明する。
入出力回路22はメモリコントローラ10から“1100”を受信すると、データ“12”に変換する。データ“12”の場合セル1〜セル4の並び順は、図17に示すように低い方から高い方へ順に、セル4、セル1、セル3、セル2、となる。このようなセル1〜セル4の並び方を表わす順列データは“100111”となる。なお、ここでは、簡単のため、セル1〜セル4のそれぞれが属するビット線BLは、ビット線BL1〜BL4とする。
順列データ“100111”は、ラッチ回路WDLに記憶される。より具体的には、ラッチ回路WDL(1_4)は、順列データの1ビット目(セル1とセル4との閾値の大小を定義するビット)の“1”を記憶する。ラッチ回路WDL(1_3)は、順列データの2ビット目(セル1とセル3との閾値の大小を定義するビット)の“0”を記憶する。ラッチ回路WDL(1_2)は、順列データの3ビット目(セル1とセル2との閾値の大小を定義するビット)の“0”を記憶する。ラッチ回路WDL(2_4)は、順列データの4ビット目(セル2とセル4との閾値の大小を定義するビット)の“1”を記憶する。ラッチ回路WDL(2_3)は、順列データの5ビット目(セル2とセル3との閾値の大小を定義するビット)の“1”を記憶する。ラッチ回路WDL(3_4)は、順列データの6ビット目(セル3とセル4との閾値の大小を定義するビット)の“1”を記憶する。
その後、全てのラッチ回路SDLを“0”にする。
以下に、図18、及び図19を用いて本具体例における動作波形について説明する。図18、及び図19では、選択ワード線WL、ビット線BL1〜BL4の電圧を示している。
[時刻T1〜T6]
図18に示すように、シーケンサ25は、時刻T1〜T6にかけて第1プログラム(ステップS101)を行う。シーケンサ25は、第1プログラムの際、第1パルス、第2パルス、第3パルスを選択ワード線WLに印加する。第1パルスとは、第2〜4番目のセルに対して電圧VPGM(1)を印加する動作である。第2パルスとは、第3、第4番目のセルに対して電圧VPGM(2)(VPGM(1)<VPGM(2))を印加する動作である。第3パルスとは、第4番目のセルに対して電圧VPGM(3)(VPGM(2)<VPGM(3))を印加する動作である。
上述したように、セル1〜セル4は、それぞれビット線BL1〜BL4に接続されている。また、セルの順列は、低い方から順にセル4、セル1、セル3、セル2となる。
ここで、セル4の閾値Vth4は最も低い状態にされるので、セル4には第1プログラムは行われない。そのため、第1〜第3パルス時においてビット線BL4には非書き込み(書き込み禁止(インヒビット))用の電圧VDDSAが印加される。換言すると、インヒビットするには、該当セルのビット線BLが電圧VDDSAとなるよう制御すればよい。ここで、ビット線BL4を非書き込みにする方法を説明する。ラッチ回路WDLに記憶されたデータを用いて、演算を行う。演算としては、下記の演算1〜演算4を行う。演算1の結果はビット線BL1に係るラッチ回路SDL(SDL1)に記憶され、演算2の結果はビット線BL2に係るラッチ回路SDL(SDL2)に記憶され、演算3の結果はビット線BL3に係るラッチ回路SDL(SDL3)に記憶され、演算4の結果はビット線BL4に係るラッチ回路SDL(SDL4)に記憶される。なお、以下の演算1〜演算4に示される「SDLx <- WDLy 」 という表記はラッチ回路WDLyのデータをラッチ回路SDLxに記憶するという意味である。また「~ WDLy」という表記は、ラッチ回路WDLyのデータを反転させるという意味である。また、「WDLy & WDLz」という表記は、ラッチ回路WDLyのデータとラッチ回路WDLzのデータをAND演算するという意味である。(演算1)SDL1 <- ~WDL(1_2) & ~WDL(1_3) & ~WDL(1_4)
(演算2)SDL2 <- WDL(1_2) & ~WDL(2_3) & ~WDL(2_4)
(演算3)SDL3 <- WDL(1_3) & WDL(2_3) & ~WDL(3_4)
(演算4)SDL4 <- WDL(1_4) & WDL(2_4) & WDL(3_4)
“1”が記憶されたラッチ回路SDLに関するビット線BLは、非書き込みのビット線BLとなり、非書き込み用の電圧VDDSAが転送される。本例では、ラッチ回路SDL1〜SDL3に“0”が記憶され、ラッチ回路SDL4に“1”が記憶される。上記の演算を行うことで、該当するラッチ回路SDL4だけが“1”データとなる。その結果、ビット線BL1〜BL3は書き込み対象となり、ビット線BL4のみが書き込み非対象となる。
また、セル1の閾値Vth1は下から2番目である。そのため、セル1には、第2、第3パルスは印加されない。そのため、第2、第3パルス時においてビット線BL1には非書き込み用の電圧VDDSAが印加される。ここで、ビット線BL1を非書き込みにする方法を説明する。ラッチ回路WDLに記憶されたデータを用いて、演算を行う。演算としては、下記の演算5〜演算8を行う。なお、以下の演算5〜演算8に示される「SDLx | WDLy 」 という表記はラッチ回路WDLyのデータとラッチ回路SDLxのデータをOR演算するという意味である。
(演算5)RDL(1_2) <- ((~WDL(1_2) | SDL2) & (~WDL(1_3) | SDL3) & (~WDL(1_4) | SDL4)) | SDL1
(演算6)RDL(1_3) <- ((WDL(1_2) | SDL1) & (~WDL(2_3) | SDL3) & (~WDL(2_4) | SDL4)) | SDL2
(演算7)RDL(1_4) <- ((WDL(1_3) | SDL1) & (WDL(2_3) | SDL2) & (~WDL(3_4) | SDL4)) | SDL3
(演算8)RDL(2_3) <- ((WDL(1_4) | SDL1) & (WDL(2_4) | SDL2) & (WDL(3_4) | SLD3)) | SDL4
ここでは、演算の途中にラッチ回路SDLのデータが上書きされてしまうことを避けるためにで、ラッチ回路RDLの一部を使っている。演算5の結果は例えばラッチ回路RDL(1_2)に記憶され、演算6の結果は例えばラッチ回路RDL(1_3)に記憶され、演算7の結果は例えばラッチ回路RDL(1_4)に記憶され、演算8の結果は例えばラッチ回路RDL(2_3)に記憶される。本例では、ラッチ回路RDL(1_2)、及びRDL(2_3)に“1”データが記憶され、ラッチ回路RDL(1_3)、及びRDL(1_4)に“0”データが記憶される。演算の終了後、ラッチ回路RDLのデータをラッチ回路SDLにコピーする。これにより、ラッチ回路SDL2、及びSDL3に“0”が記憶され、ラッチ回路SDL1、及びSDL4に“1”が記憶される。その結果、ビット線BL2、BL3は書き込み対象となり、ビット線BL1、BL4が書き込み非対象となる。
また、セル3の閾値Vth3は下から3番目である。そのため、セル3には、第3パルスは印加されない。そのため、第3パルス時においてビット線BL3には書き込み非対象用の電圧VDDSAが印加される。また、セル2の閾値Vth2は一番高い。そのため、セル2には、第1〜第3パルスが印加される。そのため、第1〜第3パルス時においてビット線BL2には書き込み用の電圧VSSが印加される。ここで、ビット線BL3を非書き込みにする方法を説明する。ラッチ回路WDLに記憶されたデータを用いて、演算を行う。演算としては、上記の演算5〜演算8を行う。これにより、ラッチ回路SDL2に“0”が記憶され、ラッチ回路SDL1、SDL3、及びSDL4に“1”が記憶される。その結果、ビット線BL2は書き込み対象となり、ビット線BL1、BL3、BL4が書き込み非対象となる。
[時刻T7〜T11]
ここでは主に第1プログラムでは、想定通りの順序に書き込みが出来なかった場合の説明を行う。例えば、セル4、セル1、セル3、セル2、という順で書き込みたかったのに、セル4、セル3、セル1、セル2、という順で書き込まれた場合を説明する。
まず、プログラムベリファイの最初に、ラッチ回路RDLと、ラッチ回路SDL“0”にリセットする。その後、シーケンサ25は、プログラムベリファイ(ステップS102)を行う。この際、シーケンサ25は、選択ワード線WLに、プログラムベリファイ用の電圧VSWEを印加する。この電圧VSWEは、例えば0Vから正の第1電圧まで徐々に昇圧(スイープ)される。選択ワード線WLがスイープされることにより、閾値電圧の低いメモリセルから順にオン状態となり、セル電流が流れていく。その結果、ビット線の電位が充電電圧VDDxからVSSxに降圧される。センスアンプSAは、各ビット線BLの電圧がVSSxに降圧されるタイミングを判定する。このようなプログラムベリファイにおいては、VSSxに降圧されるタイミングが早いほど、閾値が低いということを意味する。読み出し結果は、ラッチ回路RDLに記憶される。具体的には、ラッチ回路RDL(1_2)に“0”が記憶され、ラッチ回路RDL(1_2)に“0”が記憶され、ラッチ回路RDL(1_3)、(1_4)、(2_3)、(2_4)、(3_4)に“1”が記憶される。
次に、ディテクト1のステートにて、各グループの最下位のセルの順番が正しく書きあがっているかどうかの検知を行う。ラッチ回路WDLに記憶されている書き込みデータと、ラッチ回路RDLに記憶されているプログラムベリファイ結果と、をXNOR演算し、ラッチ回路RDLに書き戻す。
具体的には、ラッチ回路WDL(1_2)と、ラッチ回路RDL(1_2)とをXNOR演算する。ここでは、ラッチ回路WDL(1_2)は“0”、ラッチ回路RDL(1_2)は“0”であるので、ラッチ回路RDL(1_2)に“1”が記憶される。
同様に、ラッチ回路WDL(1_3)と、ラッチ回路RDL(1_3)とをXNOR演算する。ここでは、ラッチ回路WDL(1_3)は“0”、ラッチ回路RDL(1_3)は“1”であるので、ラッチ回路RDL(1_3)に“0”が記憶される。
ラッチ回路WDL(1_4)と、ラッチ回路RDL(1_4)とをXNOR演算する。ここでは、ラッチ回路WDL(1_4)は“1”、ラッチ回路RDL(1_4)は“1”であるので、ラッチ回路RDL(1_4)に“1”が記憶される。
ラッチ回路WDL(2_3)と、ラッチ回路RDL(2_3)とをXNOR演算する。ここでは、ラッチ回路WDL(2_3)は“1”、ラッチ回路RDL(2_3)は“1”であるので、ラッチ回路RDL(2_3)に“1”が記憶される。
ラッチ回路WDL(2_4)と、ラッチ回路RDL(2_4)とをXNOR演算する。ここでは、ラッチ回路WDL(2_4)は“1”、ラッチ回路RDL(2_4)は“1”であるので、ラッチ回路RDL(2_4)に“1”が記憶される。
ラッチ回路WDL(3_4)と、ラッチ回路RDL(3_4)とをXNOR演算する。ここでは、ラッチ回路WDL(3_4)は“1”、ラッチ回路RDL(3_4)は“1”であるので、ラッチ回路RDL(3_4)に“1”が記憶される。
この演算を行うことで、書き込みデータと読み出しデータが一致しないラッチ回路RDLに”0”が格納される。次に、比較データをラッチ回路SDLに転送する作業を行う。ラッチ回路SDLは、プログラムベリファイ後、“1”が記憶されている。
ここで、下記演算を行う。
(演算9)SDL1 <- ~(RDL(1_2) & RDL(1_3) & RDL(1_4))
(演算10)SDL2 <- ~(RDL(1_2) & RDL(2_3) & RDL(2_4))
(演算11)SDL3 <- ~(RDL(1_3) & RDL(2_3) & RDL(3_4))
(演算12)SDL4 <- ~(RDL(1_4) & RDL(2_4) & RDL(3_4))
これにより、閾値の順位が期待値と異なっているビット線に属するラッチ回路SDLに“1”が格納される。本例の場合、ラッチ回路SDL1、及びSDL3に“0”が記憶され、ラッチ回路SDL2、及びSDL4に“0”が記憶される。このデータは、ラッチ回路SDLに接続されているセンスアンプSA内の図示しないラッチ回路に転送される。このデータは、期待値と異なっているセンスアンプSAに「ディテクトがフェイルであったこと」を示すフェイルフラグを立てる為に用いられる。具体的には、ラッチ回路SDL1に接続されているセンスアンプSA1に“0”が転送される。同様にラッチ回路SDL2に接続されているセンスアンプSA2に“0”が転送される。ラッチ回路SDL3に接続されているセンスアンプSA3に“1”が転送される。ラッチ回路SDL4に接続されているセンスアンプSA4に“0”が転送される。
そして、下記演算を行う。なお、演算13〜16は、演算9〜12で演算されたラッチ回路SDL1〜SDL4のデータを用いて演算が行われる。
(演算13)SDL1 <- ((~WDL(1_2) | SDL2) & (~WDL(1_3) | SDL3) & (~WDL(1_4) | SDL4)) | SDL1
(演算14)SDL2 <- ((WDL(1_2) | SDL1) & (~WDL(2_3) | SDL3) & (~WDL(2_4) | SDL4)) | SDL2
(演算15)SDL3 <- ((WDL(1_3) | SDL1) & (WDL(2_3) | SDL2) & (~WDL(3_4) | SDL4)) | SDL3
(演算16)SDL4 <- ((WDL(1_4) | SDL1) & (WDL(2_4) | SDL2) & (WDL(3_4) | SLD3)) | SDL4
なお、このとき、演算前のラッチ回路WDL(1_2)、及び(1_3)は“0”を記憶し、WDL(1_4)、(2_3)、(2_4)、及び(3_4)は“1”を記憶している。また、ラッチ回路SDL1、及びSDL3は“0”を記憶し、SDL2、及びSDL4は“1”を記憶している。そのため、上記演算13〜演算16の後は、ラッチ回路SDL1、SDL2、及びSDL4に“1”が記憶され、ラッチ回路SDL3に“0”が記憶される。
次に、ラッチ回路SDLと、ラッチ回路RDLを“0”にリセットした後、
(演算17)SDL1 <- ~WDL(1_2) & ~WDL(1_3) & ~WDL(1_4)
(演算18)SDL2 <- WDL(1_2) & ~WDL(2_3) & ~WDL(2_4)
(演算19)SDL3 <- WDL(1_3) & WDL(2_3) & ~WDL(3_4)
(演算20)SDL4 <- WDL(1_4) & WDL(2_4) & WDL(3_4)
演算17〜演算20を行い、第1番目のセルに係るラッチ回路SDLに“1”を記憶する。
この場合、閾値Vth4が一番小さいのでラッチ回路SDL4に“1”が記憶される。
その後、センスアンプSAに保存している、フェイルフラグの情報を反映するため、センスアンプSA及びラッチ回路SDLにて演算を行い、ラッチ回路RDLに記憶する。
なお、このときセンスアンプSA1、及びSA3には“1”が記憶され、センスアンプSA2、及びSA4には“0”が記憶されている。また、ラッチ回路SDL1、SDL2、及びSDL3には“0”が記憶され、ラッチ回路SDL4には“1”が記憶されている。
センスアンプSA及びラッチ回路SDLにて演算を行い、ラッチ回路RDLに1つでも“1”がある場合は、「フェイル」となる。今回の仮定では、ラッチ回路RDLは全て“0”を記憶しているので、「パス」となる。
ディテクト1のパス後はディテクト2のステートへと遷移する。ディテクト2では、(演算5)〜(演算8)を行う。
ラッチ回路SDL1〜SDL3に“0”が記憶され、ラッチ回路SDL4に“1”が記憶された状態となる。また、ラッチ回路WDL(1_2)、及び(1_3)に“0”が記憶され、ラッチ回路WDL(1_4)、(2_3)、(2_4)、及び(3_4)に“1”が記憶された状態となる。そのため、演算5〜演算8により、ラッチ回路RDL(1_3)、及び(1_4)に“0”が記憶され、ラッチ回路WDL(1_2)、及び(2_3)に“1”が記憶された状態となる。
その後、ラッチ回路RDLのデータをラッチ回路SDLにコピーする。なお、6個のラッチ回路RDLのうち、どの4個のラッチ回路RDLのデータを4個のラッチ回路SDLにコピーするかは、シーケンサ25の図示しない記憶部に予め記憶されている。
その結果、ラッチ回路SDL2、及びSDL3に“0”が記憶され、ラッチ回路SDL1、及びSDL4に“1”が記憶された状態となる。
その後、ディテクト1の時と同様、フェイルフラグの結果を反映するため、ラッチ回路SDl&センスアンプSAの演算を行い、演算結果をラッチ回路RDLに格納する。
センスアンプSA2、及びSA4に“0”が記憶され、センスアンプSA1、及びSA3に“1”が記憶されている。そのため、ラッチ回路RDL(1_2)には“1”が記憶され、ラッチ回路RDL(1_3)、(1_4)、及び(2_3)には“0”が記憶される。
ここで、“1”を記憶するラッチ回路RDLが存在するので、ディテクト2はフェイルとなり、次の第2サイクルプログラムのステートへと遷移する。
[時刻T20〜T21]
図19に示すように、シーケンサ25は、時刻T20〜T21にかけて第2サイクルプログラム(ステップS108)を行う。なお、この時、ラッチ回路SDL2、及びSDL3が“0”を記憶している。つまり、ビット線BL2、及びBL3の電位はVSSとなり、ビット線BL1、及びBL4の電位はVDDSAとなる。これにより、ラッチ回路SDL2、及びSDL3に係るセル2、及びセル3に、プログラム電圧が印加される。
[時刻T22〜T23]
次に、第3サイクルプログラムのステートへと遷移する。ここでも、非書き込みセルと書き込みセルを選別するために、第2サイクルプログラムの時と同様、演算5〜演算8を行う。
ラッチ回路SDL2、及びSDL3に“0”が記憶され、ラッチ回路SDL1、及びSDL4に“1”が記憶された状態となる。また、ラッチ回路WDL(1_2)、及び(1_3)に“0”が記憶され、ラッチ回路WDL(1_4)、(2_3)、(2_4)、及び(3_4)に“1”が記憶された状態となる。そのため、演算5〜演算8により、ラッチ回路RDL(1_3)に“0”が記憶され、ラッチ回路RDL(1_2)、(1_4)、及び(2_3)に“1”が記憶された状態となる。
その後、ラッチ回路RDLのデータをラッチ回路SDLへ移動する。つまり、ラッチ回路SDL2に“0”が記憶され、ラッチ回路SDL1、SDL3、及びSDL4に“1”が記憶された状態となる。つまり、ビット線BL1、BL3、及びBL4が非書き込み状態となる。つまり、シーケンサは、この後パルスを印加することで、セル2のみに書き込み電圧を印加でき閾値を上昇させることができる。
[時刻T24〜T29]
第3サイクルプログラムが終わった後、プログラムベリファイを行う。
ここでは、上記の第2サイクルプログラムと第3サイクルプログラムにて、期待値通りの順序に書き上げ完了した場合について説明する。その場合、ディテクト1、 ディテクト2、ディテクト3を全てPassし書き込み完了となる。もしも、ディテクト1、ディテクト2、ディテクト3のいずれかでフェイルした場合には、それぞれのパルスを印加し、4つのセルすべての閾値順序が期待値どおりになるまで、書き込みを繰り返す。
<1−5> 効果
上述した実施形態によれば、複数セルを1グループとしグループ内でのセルのしきい値の順列によりデータを決定する。これにより、高速にデータの書き込みを行うことができる。
以下に、本実施形態の効果の理解を容易にするために、比較例について説明する。図1を用いて説明したように、比較例に係る記憶方式の1つとして、メモリセルの閾値を所定の電圧にすることでデータの記憶を行なう方式がある。
比較例に係る記憶方式の場合、半導体記憶装置の微細化や、多値化が進むにつれ、隣接する閾値分布が重なったり、閾値分布が基準値を下回ったりすることがある。その結果、データの書き込みの際に、細かな制御が必要となり、データの書き込みに要する時間が増えてしまうという問題がある。例えば、閾値分布が4つある場合、その閾値分布に収まるように書き込み動作を行う必要がある。例えば、閾値が高くなればなるほど、閾値が変動しにくくなり、多くのパルスを印加する必要がある可能性がある。具体的には、図20の(a)に示すように、例えば、Aレベルを書く場合は、電圧AV〜BVの範囲に収まるように書き込みを行う。また、Bレベルを書く場合は、電圧BV〜CVの範囲に収まるように書き込みを行う。更にCレベルを書く場合は、電圧CV以上になるように書き込みを行う。
しかしながら、上述した実施形態によれば、比較例に係る記憶方式とは異なり、閾値分布を考慮する必要がない。上述した実施形態によれば、図20(b)に示すように、1グループ内のセル(セルa〜セルd)の閾値をデータ毎に決まった順序で並べることができればよい。そのため、上述した実施形態によれば、比較例に係る記憶方式のような、高い精度の書き込みは求められない。その結果、上述した実施形態によれば、比較例に係る記憶方式に比べて、粗く書き込みが行えるため、より高速にデータの書き込みを行うことができる。
また、上述した実施形態によれば、読み出し、ベリファイの高速化も期待できる。比較例に係る記憶方式の場合、選択ワード線WLについて、ある基準レベルに保持して読み出し動作を行う必要がある。比較例に係る記憶方式の読み出し時において、選択ワード線WLの電圧を階段状に上げていく読み出しも考えられる。例えば、選択ワード線WLの電圧を8段の階段状に上げる場合、それぞれの電圧でセンス動作を行う。そのため、それぞれの電圧ごとにワード線WL、及びビット線BLの安定化時間を待つ必要がある。そのため、比較例においてこのような読み出し方法を適用しても時間の短縮効果は期待できない。
しかし、本実施形態によれば、読み出し時に、選択ワード線WLをある基準電電圧に保持する必要がないため、完全に選択ワード線WLの電圧をスイープしながら、一回のスイープで複数レベルを読む。そのため、メモリセルが多値化されている場合において、読み出し時間、及びベリファイ時間(つまりは書き込み時間)の短縮が可能となっている。
<2> 第2実施形態
第2実施形態について説明する。第2実施形態では、センスアンプモジュールについて説明する。尚、第2実施形態に係る装置の基本的な構成及び基本的な動作は、上述した第1実施形態に係る装置と同様である。従って、上述した第1実施形態で説明した事項及び上述した第1実施形態から容易に類推可能な事項についての説明は省略する。
<2−1> 構成
<2−1−1> 比較例のセンスアンプモジュールの構成
図21を用いて、第2実施形態の比較例に係る半導体記憶装置のセンスアンプモジュールの構成について説明する。ここでは一例として、1グループが9個のメモリセルで構成される場合について説明する。
図21に示すように、第2実施形態の比較例に係る半導体記憶装置のセンスアンプモジュール29は、複数のセンス部291(291_1〜291_k)と、ラッチ部292(292_1〜292_k)と、を備えている。
各センス部291は、1つのグループGPに関するセンスアンプSAとラッチ回路SDLの組をビット線毎に設けられている。つまり、センスアンプSAとラッチ回路SDLは、ビット線BLの本数だけ設けられている。
各ラッチ部292は、複数のラッチ回路WDL及びRDLを備えている。複数のラッチ回路WDL及びRDLは、それぞれ個(nは1グループあたりのセル数)設けられている。本例の場合は、1グループに9個のメモリセルがある場合を想定しているので、ラッチ回路WDL及びRDLは、それぞれ36個あることになる。
このように、順列記憶方式では、ラッチ回路WDL及びRDLの個数が1グループあたりのセル数(記憶密度)で決まり、密度が高くなればなるほどデータラッチ個数が増大する。
<2−1−2> 第2実施形態のセンスアンプモジュールの構成
図22を用いて、第2実施形態に係る半導体記憶装置のセンスアンプモジュールの構成について説明する。本例では、上述した比較例と比較し、1アクセス当たりのデータを比較例の半分に制限することで、ラッチ回路WDL及びRDLの個数を約半分にでき、その結果、面積の増加を抑制できる。
図22に示すように、第2実施形態の比較例に係る半導体記憶装置のセンスアンプモジュール29は、複数のセンス部291(291_1〜291_k)と、ラッチ部292(292_1〜292_k)と、複数の演算部293(293_1〜293_k)を備えている。
本例でも比較例と同様に、1グループに9個のメモリセルが存在する。しかし、比較例と異なり、各グループには、大きく分けて2種類ある。一方は奇数ビット線BLに係るグループであり、他方は偶数ビット線BLに係るグループである。
演算部293は、奇数ビット線BLまたは偶数ビット線BLが接続され、選択されたグループに応じて、センス部291に接続するビット線BLを選択するマルチプレクサ2930を備えている。つまり、奇数ビット線BLに係るグループが選択される場合、演算部293は奇数ビット線BLをセンス部291に接続し活性化させる。そして、演算部293は偶数ビット線BLを非活性状態にする。また、偶数ビット線BLに係るグループが選択される場合、演算部293は偶数ビット線BLをセンス部291に接続し活性化させる。そして、演算部293は奇数ビット線BLを非活性状態にする。
各センス部291は、センスアンプSAとラッチ回路SDLは、演算部293に接続されるビット線BLの半分の本数だけ設けられている。つまり、1つのセンス部291に含まれるセンスアンプSA及びラッチ回路SDLの組と、センス部291に係るビット線BLとの対応関係は1対2である。演算部293_1には、10本のビット線BLが接続されている。そのため、演算部293_1に対応するセンス部291_1には、5組のセンスアンプSA及びラッチ回路SDLが設けられている。また、演算部293_2には、8本のビット線BLが接続されている。そのため、演算部293_2に対応するセンス部291_2には、4組のセンスアンプSA及びラッチ回路SDLが設けられている。
各ラッチ部292は、複数のラッチ回路WDL及びRDLを備えている。複数のラッチ回路WDL及びRDLは、それぞれ/2個(nは1グループあたりのセル数)設けられている。つまり、1つのラッチ部292に含まれるラッチ回路WDL及びRDLと、1グループあたりのセル数との対応関係は/2対nである。本例の場合は、1グループに9個のメモリセルがある場合を想定しているので、ラッチ回路WDL及びRDLは、それぞれ18個あることになる。ここでは簡単のため、図示していないが、隣接する2つのラッチ部292は電気的に接続され、互いのデータを授受できる。
次に、マルチプレクサ2930について説明する。図23に示すように、マルチプレクサ2930は、NMOSトランジスタTreh、Tre、Troh、及びTroを備えている。
トランジスタTrehは、偶数ビット線選択信号ESEL_Hに基づいて偶数ビット線と、センスアンプSAとを電気的に接続し、偶数ビット線を活性化するトランジスタである。
トランジスタTreは、偶数ビット線非選択信号ESELに基づいて偶数ビット線に非選択電圧を転送し、偶数ビット線を非活性化するトランジスタである。非選択電圧は、ドライバセット27から供給される。
トランジスタTrohは、奇数ビット線選択信号OSEL_Hに基づいて奇数ビット線と、センスアンプSAとを電気的に接続し、偶数ビット線を活性化するトランジスタである。
トランジスタTroは、奇数ビット線非選択信号OSELに基づいて奇数ビット線に非選択電圧を転送し、奇数ビット線を非活性化するトランジスタである。
偶数ビット線選択信号ESEL_H、偶数ビット線非選択信号ESEL、奇数ビット線選択信号OSEL_H、及び奇数ビット線非選択信号OSELは、シーケンサ25にて制御される。
シーケンサ25は、偶数ビット線BLに係るグループを選択する場合、偶数ビット線選択信号ESEL_Hを“H”レベル、偶数ビット線非選択信号ESELを“L”レベル、奇数ビット線選択信号OSEL_Hを“L”レベル、奇数ビット線非選択信号OSELを“H”レベルにする。これにより、偶数ビット線BLはセンスアンプSAに接続され(活性化され)、奇数ビット線BLは非活性化される。
また、シーケンサ25は、奇数ビット線BLに係るグループを選択する場合、偶数ビット線選択信号ESEL_Hを“L”レベル、偶数ビット線非選択信号ESELを“H”レベル、奇数ビット線選択信号OSEL_Hを“H”レベル、奇数ビット線非選択信号OSELを“L”レベルにする。これにより、奇数ビット線BLはセンスアンプSAに接続され(活性化され)、偶数ビット線BLは非活性化される。
<2−2> 効果
上述した実施形態によれば、1つのラッチ部292に含まれるラッチ回路WDL及びRDLと、1グループあたりのセル数との対応関係は/2対nである。これにより、比較例と比較し、ラッチ部292の面積を抑制することができる。
<3> 第3実施形態
第3実施形態について説明する。第3実施形態では、センスアンプモジュールについて説明する。尚、第3実施形態に係る装置の基本的な構成及び基本的な動作は、上述した第1実施形態に係る装置と同様である。従って、上述した第1実施形態で説明した事項及び上述した第1実施形態から容易に類推可能な事項についての説明は省略する。
<3−1> 第3実施形態のセンスアンプモジュールの構成
図24〜図26を用いて、第3実施形態に係る半導体記憶装置のセンスアンプモジュールの構成について説明する。
図24に示すように、第3実施形態に係る半導体記憶装置のセンスアンプモジュール29は、複数の組み合わせ回路群294(294_1〜294_k)を更に備える。 組み合わせ回路群294は、第1実施形態で説明したような、ラッチ回路SDL、WDL、及びRDL等で行っていた演算を行う為の構成である。
図25、及び図26を用いて、組み合わせ回路群294のより詳細な説明をする。
図25に示すように、組み合わせ回路群294は、NOR回路G1−1、G1−2、G1−3、G1−4、G2―1a、G2―1b、G2―1c、G2―1d、G2―2a、G2―2b、G2―2c、G2―2d、G2―3a、G2―3b、G2―3c、G2―3d、G2―4a、G2―4b、G2―4c、及びG2―4dと、NAND回路G2―1e、G2―2e、G2―3e、及びG2―4eを備えている。
NOR回路G1−1は、ラッチ回路WDL(1_2)、ラッチ回路WDL(1_3)、及びラッチ回路WDL(1_4)からの非反転入力に基づいてNOR演算し、出力信号Q1―1を生成する。
NOR回路G1−2は、ラッチ回路WDL(1_2)からの反転入力、ラッチ回路WDL(1_3)、及びラッチ回路WDL(1_4)からの非反転入力に基づいてNOR演算し、出力信号Q1―2を生成する。
NOR回路G1−3は、ラッチ回路WDL(1_2)、及びラッチ回路WDL(1_3)からの反転入力と、ラッチ回路WDL(1_4)からの非反転入力とに基づいてNOR演算し、出力信号Q1―3を生成する。
NOR回路G1−4は、ラッチ回路WDL(1_2)、ラッチ回路WDL(1_3)、及びラッチ回路WDL(1_4)からの反転入力に基づいてNOR演算し、出力信号Q1―4を生成する。
NOR回路G2−1aは、ラッチ回路WDL(1_2)からの反転入力、及び信号IN2―2の非反転入力に基づいてNOR演算する。
NOR回路G2−1bは、ラッチ回路WDL(1_3)からの反転入力、及び信号IN2―3の非反転入力に基づいてNOR演算する。
NOR回路G2−1cは、ラッチ回路WDL(1_4)からの反転入力、及び信号IN2―4の非反転入力に基づいてNOR演算する。
NOR回路G2−1dは、NOR回路G2−1a、G2−1b、及びG2−1cからの非反転入力に基づいてNOR演算する。
NAND回路G2−1eは、NOR回路G2−1dからの非反転入力、及び信号IN1―1の反転入力に基づいてNAND演算し、出力信号Q2−1を生成する。
NOR回路G2−2aは、ラッチ回路WDL(1_2)からの非反転入力、及び信号IN2―1の非反転入力に基づいてNOR演算する。
NOR回路G2−2bは、ラッチ回路WDL(2_3)からの反転入力、及び信号IN2―3の非反転入力に基づいてNOR演算する。
NOR回路G2−2cは、ラッチ回路WDL(2_4)からの反転入力、及び信号IN2―4の非反転入力に基づいてNOR演算する。
NOR回路G2−2dは、NOR回路G2−2a、G2−2b、及びG2−2cからの非反転入力に基づいてNOR演算する。
NAND回路G2−2eは、NOR回路G2−2dからの非反転入力、及び信号IN1―2の反転入力に基づいてNAND演算し、出力信号Q2−2を生成する。
NOR回路G2−2aは、ラッチ回路WDL(1_2)からの非反転入力、及び信号IN2―1の非反転入力に基づいてNOR演算する。
NOR回路G2−2bは、ラッチ回路WDL(2_3)からの反転入力、及び信号IN2―3の非反転入力に基づいてNOR演算する。
NOR回路G2−2cは、ラッチ回路WDL(2_4)からの反転入力、及び信号IN2―4の非反転入力に基づいてNOR演算する。
NOR回路G2−2dは、NOR回路G2−2a、G2−2b、及びG2−2cからの非反転入力に基づいてNOR演算する。
NAND回路G2−2eは、NOR回路G2−2dからの非反転入力、及び信号IN1―2の反転入力に基づいてNAND演算し、出力信号Q2−2を生成する。
NOR回路G2−3aは、ラッチ回路WDL(1_3)からの非反転入力、及び信号IN2―1の非反転入力に基づいてNOR演算する。
NOR回路G2−3bは、ラッチ回路WDL(2_3)からの非反転入力、及び信号IN2―2の非反転入力に基づいてNOR演算する。
NOR回路G2−3cは、ラッチ回路WDL(3_4)からの反転入力、及び信号IN2―4の非反転入力に基づいてNOR演算する。
NOR回路G2−3dは、NOR回路G2−3a、G2−3b、及びG2−3cからの非反転入力に基づいてNOR演算する。
NAND回路G2−3eは、NOR回路G2−3dからの非反転入力、及び信号IN1―3の反転入力に基づいてNAND演算し、出力信号Q2−3を生成する。
NOR回路G2−4aは、ラッチ回路WDL(1_4)からの反転入力、及び信号IN2―1の非反転入力に基づいてNOR演算する。
NOR回路G2−4bは、ラッチ回路WDL(2_4)からの反転入力、及び信号IN2―2の非反転入力に基づいてNOR演算する。
NOR回路G2−4cは、ラッチ回路WDL(3_4)からの反転入力、及び信号IN2―3の非反転入力に基づいてNOR演算する。
NOR回路G2−4dは、NOR回路G2−4a、G2−4b、及びG2−4cからの非反転入力に基づいてNOR演算する。
NAND回路G2−4eは、NOR回路G2−4dからの非反転入力、及び信号IN1―4の反転入力に基づいてNAND演算し、出力信号Q2−4を生成する。
図26に示すように、組み合わせ回路群294は、更に、ExOR回路G3−1、G3−2、G3−3、G3−4、G3−5、及びG3−6と、NAND回路G4−1、G4−2、G4―3、及びG4−4と、AND回路G5a、G5b、G5c、及びG5dと、OR回路G5eを備えている。
ExOR回路G3−1は、ラッチ回路RDL(1_2)、及びWDL(1_2)からの非反転入力に基づいてExOR演算し、出力信号Q3−12を生成する。
ExOR回路G3−2は、ラッチ回路RDL(1_3)、及びWDL(1_3)からの非反転入力に基づいてExOR演算し、出力信号Q3−13を生成する。
ExOR回路G3−3は、ラッチ回路RDL(1_4)、及びWDL(1_4)からの非反転入力に基づいてExOR演算し、出力信号Q3−14を生成する。
ExOR回路G3−4は、ラッチ回路RDL(2_3)、及びWDL(2_3)からの非反転入力に基づいてExOR演算し、出力信号Q3−23を生成する。
ExOR回路G3−5は、ラッチ回路RDL(2_4)、及びWDL(2_4)からの非反転入力に基づいてExOR演算し、出力信号Q3−24を生成する。
ExOR回路G3−6は、ラッチ回路RDL(3_4)、及びWDL(3_4)からの非反転入力に基づいてExOR演算し、出力信号Q3−34を生成する。
NAND回路G4−1は、信号Q3―12、Q3―13、及びQ3―14の非反転入力に基づいてNAND演算し、出力信号Flag1を生成する。
NAND回路G4−2は、信号Q3―12、Q3―23、及びQ3―24の非反転入力に基づいてNAND演算し、出力信号Flag2を生成する。
NAND回路G4−3は、信号Q3―13、Q3―23、及びQ3―34の非反転入力に基づいてNAND演算し、出力信号Flag3を生成する。
NAND回路G4−4は、信号Q3―14、Q3―24、及びQ3―34の非反転入力に基づいてNAND演算し、出力信号Flag4を生成する。
AND回路G5aは、信号Flag1の非反転入力、及びラッチ回路SDL1からの非反転入力に基づいてAND演算する。
AND回路G5bは、信号Flag2の非反転入力、及びラッチ回路SDL2からの非反転入力に基づいてAND演算する。
AND回路G5cは、信号Flag3の非反転入力、及びラッチ回路SDL3からの非反転入力に基づいてAND演算する。
AND回路G5dは、信号Flag4の非反転入力、及びラッチ回路SDL4からの非反転入力に基づいてAND演算する。
OR回路G5eは、AND回路G5a、G5b、G5c、及びG5dからの非反転入力に基づいてOR演算し、演算結果として、フェイルフラグFailを生成する。
<3−2> 具体例
次に、図25、及び図26を用いて、第3実施形態に係る半導体記憶装置の組み合わせ回路群の動作の具体例について説明する。
以下では、上記<1−4−1−3>で説明した具体例に、組み合わせ回路群294を適用する場合について説明する。
上記のように、具体例ではセルを、閾値が低い方から高い方へ順に、セル4、セル1、セル3、セル2と書き込むために、セル1、セル3、セル2に対して第1プログラムを行う。第1プログラム終了後、セルの閾値の順序が、セル4、セル3、セル1、セル2となっている。そのため、ディテクト2にてフェイルとなり、セル3、セル2に対して第2サイクルプログラムを行い、セル2に対して第3サイクルプログラムを行う。このようにして、あるグループ内の4つのセルの閾値の順序を、閾値が低い方から高い方へ順に、セル4、セル1、セル3、セル2と並べることができる。
ここでは、このような具体例における組み合わせ回路群294の動作を説明する。なお、具体例において、各ラッチ回路に記憶されている値に関しては、第1実施形態で説明した値を参照する。
ステップS101の第1プログラムの第1パルス時において、セル4を非書き込みにするために、ラッチ回路SDL4に“1”を記憶する必要がある。その際、組み合わせ回路群294の、NOR回路G1−1〜G1−4までのNOR回路の出力結果、Q1−1〜Q1−4を、ラッチ回路SDL1〜SDL4に転送する。その後、ラッチ回路SDL1〜SDL3に“0”が記憶され、ラッチ回路SDL4に“1”が記憶される。その後第1パルスを印加する。その結果、セル4は書き込み非対象となり、第1パルスが印加されない。
次に、第1プログラムの第2パルス時において、セル4に加え、セル1を非書き込みにするために、ラッチ回路SDL1に“1”を記憶させる。
まず、第1パルス印加後のデータセットのタイミングにて、NOR回路G2−1a〜G2−1c、G2−2a〜G2−2c、G2−3a〜G2−3c、G2−4a〜G2−4cの入力に、ラッチ回路SDL1〜SDL4の結果を反映させる。つまり、信号IN2―1〜IN2―4として、第1パルス時に用いたラッチ回路SDL1〜SDL4の結果を転送する。その結果、信号Q2−2、及びQ2―3は、“0”となり、信号Q2−1、及びQ2―4は、“1”となる。そして、信号Q2−1〜Q2−4の値を、ラッチ回路SDL1〜SDL4に転送する。その結果、ラッチ回路SDL2、及びSDL3は、“0”となり、ラッチ回路SDL1、及びSDL4は、“1”となる。その後第2パルスを印加する。その結果、セル1及びセル4は書き込み非対象となり、第2パルスが印加されない。
次に、第1プログラムの第3パルス時において、セル4に加え、セル3を非書き込みにするために、ラッチ回路SDL3に“1”を記憶させる。
第2パルス印加後のデータセットのタイミングにて、NOR回路G2−1a〜G2−1c、G2−2a〜G2−2c、G2−3a〜G2−3c、G2−4a〜G2−4cの入力に、ラッチ回路SDL1〜SDL4の結果を反映させる。つまり、信号IN2―1〜IN2―4として、第1パルス時に用いたラッチ回路SDL1〜SDL4の結果を転送する。その結果、信号Q2−2は、“0”となり、信号Q2−1、Q2−3、及びQ2―4は、“1”となる。そして、信号Q2−1〜Q2−4の値を、ラッチ回路SDL1〜SDL4に転送する。その結果、ラッチ回路SDL2は、“0”となり、ラッチ回路SDL1、SDL3、及びSDL4は、“1”となる。その後第3パルスを印加する。その結果、セル1、セル3及びセル4は書き込み非対象となり、第3パルスが印加されない。このようにして、第1プログラムを完了する。
プログラムベリファイについては、第1実施形態と同様に、セル4、セル3、セル1、セル2という順序で書きあがってしまっている場合、プログラムベリファイ後に、ラッチ回路RDLに所定のデータが記憶される。具体的には、ラッチ回路RDL(1_2)に“0”が記憶され、ラッチ回路RDL(1_3)、(1_4)、(2_3)、(2_4)、及び(3_4)に“1”が記憶される。
その後、読み出し結果が期待値と合っているか否かのフラグを、ExOR回路G3―1〜G3―6、及びNAND回路G4−1〜G4―4を用いて演算する。なお、NAND回路G4−1〜G4―4の出力結果である信号Flag1〜Flag4は、それぞれセル1〜セル4に対応している。読み出しデータと書き込みデータが一致しないセルに対応する信号Flag1〜Flag4は、“1”となる。
その後、ラッチ回路SDL1〜SDL4をリセットし、信号Q1―1〜Q1−4を、ラッチ回路SDL1〜SDL4に転送する。
その後、AND回路G5a〜G5d、OR回路G5eの演算結果が“1”であれば、ディテクトはフェイルとなる。本例では、Failフラグは立たず(“0”)、ディテクト1はパスし、ディテクト2へと遷移する。
ディテクト2では、第2パルスの際と同様の動作を行う。具体的には、ディテクト1でのラッチ回路SDL1〜SDL4のデータを、信号IN2−1〜IN2―4に転送し、信号Q2―1〜Q2―4が確定させる。そして、その後、信号Q2―1〜Q2―4を、ラッチ回路SDL1〜SDL4に転送する。その結果、ラッチ回路SDL1に“1”が記憶される。ここで、信号Flag2、Flag4の結果が“0”となり、信号Flag1、Flag3の結果が“1”となる。そのため、OR回路G5eの結果であるFailフラグが“1”となり、ディテクト2はフェイルと判定され、第2サイクルプログラムへと遷移する。
第2サイクルプログラムでは、ディテクト2終了時点のラッチ回路SDL1〜SDL4の状態で行われる。その後、第3サイクルプログラムの為に、ラッチ回路SDL1〜SDL4の値を更新する。この場合、信号IN2―1〜IN2―4に、最新のラッチ回路SDL1〜SDL4の値を転送し、その結果生成される信号Q2−1〜Q2−4をラッチ回路SDL1〜SDL4に転送する。その結果、ラッチ回路SDL1、SDL3、SDL4に“1”が記憶され、ラッチ回路SDL2に“0”が記憶される。そのため、セル2のみが書き込み対象となる。そしてその状態で第3サイクルプログラムを実行する。
第3サイクルプログラムの後は、再度プログラムベリファイを行う。
ここでは、上記の第2サイクルプログラムと第3プログラムにて、期待値通りの順序に書き上げ完了する。
もしも、ディテクト1、ディテクト2、ディテクト3のいずれかでフェイルした場合には、それぞれのパルスを印加し、4つのセルすべての閾値順序が期待値どおりになるまで、書き込みを繰り返す。
<3−3> 効果
上述した実施形態によれば、データの演算を行うためだけの回路を設けた。ラッチ回路を利用して演算を行う場合、ラッチ回路のデータを消去しないように考慮しなければならず、効率的に演算を行うことが困難であった。しかし、本実施形態によれば、ラッチ回路のデータを消去せずに演算を行うことができるので、効率的かつ高速に演算を行うことができる。
<4> 第4実施形態
第4実施形態について説明する。第4実施形態では、書き込み方法について説明する。尚、第4実施形態に係る装置の基本的な構成及び基本的な動作は、上述した第1実施形態に係る装置と同様である。従って、上述した第1実施形態で説明した事項及び上述した第1実施形態から容易に類推可能な事項についての説明は省略する。
<4−1> 比較例
まず、第4実施形態に係る半導体記憶装置の書き込み方法を説明する前に、第1実施形態で説明した書き込み方法を採用した場合におけるオーバープログラムの懸念について説明する。
第1実施形態で説明した書き込み方法(第1書き込み方法とも記載する)では、プログラムベリファイの後にディテクトを行い、ディテクトの結果に応じて、プログラムパルスを書き込み対象のセルに印加する方式である。
この場合、セル特性のバラつきによりそれぞれのグループに依って必要なプログラムパルスの回数が異なると考えられる。しかし、1つのシーケンサ25を用いて全てのグループに対し書き込み行う。そのため、同一回数のパルスを各グループに印加することとなる。プログラム電圧はプログラム回数(ループ回数)に応じて上昇していく。そのため、書き込みの遅いセルがいるグループに引きずられ、全体的なプログラム電圧も上昇していってしまう。第1実施形態の書き込み方式では、プログラムベリファイの回数が少ないため、書き込み動作の高速化が図れるが、一方でオーバープログラムの懸念が生じる。
図27を用いて、オーバープログラムの懸念について説明する。ここでは、1グループに9個のセルが構成される場合について説明する。図27の例では、1〜9の順序になるようにメモリセルに書き込みを行う必要がある。
なお、基本的な書き込み動作のフローは第1実施形態で説明した動作において、9レベルに書き分けるためにプログラムパルスの回数とディテクト数が異なるのみである。
まず第1プログラムで選択ワード線WLのレベルを段階的に上げながら8回プログラムパルスを印加する。その結果、このグループでは1〜7番目までの順位が完成したとする(図27参照)。しかしながら、別のグループでは1〜4番目までしか順位が完成していないとする(不図示)と、シーケンサ25は、残りの順位を完成させるべく選択ワード線WLのレベルをインクリメントさせながら5回パルスを印加する。その際、書き込みが完成しているセルは書き込み禁止状態(インヒビット)としている。そのため、そのセルに書き込み電圧が実効的に印加されることはない。しかし、選択ワード線WLの電圧はシーケンサ25によって共通制御されている。そのため、グループに依らず規則に従い上昇していく。
上述した5回パルスの後、他のグループでも1〜7番目までの順位が完成したとする。その場合、8番目及び9番目のセルを書き込む為に1〜8番目のセルをインヒビット状態とし9番目の順位にすべきセルに書き込み電圧を印加する。その際、選択ワード線WLの電圧が既に上昇しており、このグループの9番目の順位にすべきセルに対しては急激に大きな書き込み電圧が加わる事となる。その結果、セル特性によっては大幅な閾値上昇が起こる可能性ある(図27参照)。このような大幅な閾値上昇オーバープログラム等と呼ぶ。このオーバープログラムがグループ内で複数回起こると、既定の閾値内に9レベル書き分けることが出来なくなってしまう事がある。1グループに含まれるセル数が多くなるほど、この問題は顕著になる。
<4−2> 第2書き込み方法
<4−2−1> フロー
次に、図28を用いて、第4実施形態に係る半導体記憶装置の第2書き込み方法を説明する。第2書き込み方法は、オーバープログラムを抑制するため、1パルス毎にプログラムベリファイを行う方法である。
[ステップS301]
シーケンサ25は、ラッチ回路WDLに記憶された順列データに基づいてプログラムを行う。センスアンプモジュール29は、プログラムするセルとインヒビット(書き込み禁止)するセルを区別する。
最初は、グループ内で最下位に書き込むべきセルのみインヒビットとする。最下位以外のセルに書き込み電圧が印加され、セルの閾値が上昇する。
[ステップS302]
シーケンサ25は、ステップS301の後、プログラムベリファイ動作を行う。
[ステップS303]
シーケンサ25は、ディテクトとして、ステップS301にて書き込むべきセルの順位が正しいかどうかをチェックし、許容値以上のグループにおいて正しければステップS303はパスする。その場合、書き込み動作は終了する。
[ステップS304]
シーケンサ25は、ディテクトがフェイルであると判定する場合(ステップS303、フェイル)、選択ワード線WLの書き込み電圧にオフセット(ΔVPGM)を足す。
これにより、ステップS301では、直前のプログラムパルスよりもオフセットだけ大きいプログラムパルスをプログラム対象のセルに印加することができる。
<4−2−2> 波形
続いて、第2書き込み方法における動作波形について説明する。図29では、選択ワード線WL、書き込み対象ビット線BL、インヒビットビット線BLの電圧を示している。
図29に示すように、第2書き込み方法では、プログラムパルスの印加と、プログラムベリファイが交互に行われる。インヒビットビット線BLには、電圧VDDSAが印加され、書き込み対象ビット線BLには、電圧VSSが印加される。そして、選択ワード線WLに印加される書き込み電圧は、パルスの回数に応じてΔVPGMずつインクリメントされる。
<4−2−3> 効果
第2書き込み方法によれば、1パルス毎にプログラムベリファイを行う。これによれば、第1書き込み方法よりも、プログラムベリファイの回数が増えるため、書き込みに要する時間も増える。他方で、第2書き込み方法によれば、図30に示すように、最下位のセルから順番にプログラムを行うことができ、上述したようなオーバープログラムを抑制することが可能となる。
<4−3> 第3書き込み方法
<4−3−1> 比較例
図31を用いて、比較例(第2書き込み方法)について説明する。
図31では、あるプログラムパルスを印加した後の、あるグループのそれぞれの閾値状態を示したものである。図31では、6番目のセルと、9番目のセルの書き込みが遅い場合を示している。第2書き込み動作では、6番目のセルの順位が期待値と異なっている場合、それ以上のセル、つまり7番目、8番目、9番目のセルも合わせて、プログラムパルスを印加する。その後のプログラムベリファイにて、1〜8番目までの順位が正しいことが確認でき、次のプログラムパルスにて、9番目のセルの閾値のみを更に上昇させる。
第2書き込み方法では、上位のセル(本例では、7番目、8番目、9番目のセル)も6番目のセルと同時に書き込む。これにより、まだセルの大部分が低い閾値にあるプログラムループの初期においてプログラム速度の高速化に寄与する一方、プログラムループが進むと、上位のセルの閾値が過剰に上昇してしまう恐れがある。
<4−3−2> 第3書き込み方法の動作
図32を用いて、第3書き込み方法について説明する。
第3書き込み方法では、順位が期待値と違うセル及び、当該セルより上位のセルにプログラムパルスを印加せず、順位が期待値と違うセルのみ、プログラムパルスを印加する。
<4−3−3> 効果
第3書き込み方法によれば、順位が期待値と違うセルのみ、プログラムパルスを印加する。その結果、すでに順位の出来上がっているセルを書き込みすることが無く、最終的な閾値分布の広がりを抑えることができる。
<4−4> 第4書き込み方法
<4−4−1> 概要
次に、第4書き込み方式について説明する。第4書き込み方式では、1回のプログラムパルスで複数のレベルの書き込みが実行可能であるマルチレベルプログラムを採用する。
<4−4−2> 波形
図33〜図36を用いてマルチレベルプログラムの動作波形を示す。図33、図35、図36では、選択ワード線WL、非選択ワード線WL、第1〜4番目以降のセルに係るビット線BLの電圧を示している。
最初のプログラムパルスの印加時、第1番目のセル、2番目のセル、3番目のセル、4番目以降のセルを書き分ける動作を行う。
マルチレベルプログラムでは、非選択ワード線WLの電圧を上昇させる際に、期待レベルに応じて、それぞれのセルにつながるビット線BLの電圧を電圧VDDSAにセットするタイミングを制御することにより、実効的に印加される書き込み電圧レベルを複数レベルに制御することができる。
図33に示すように、第1番目のセルはインヒビット状態とするため、非選択ワード線WLの電圧を上昇させる以前(時刻T30)に、第1番目のセルに係るビット線BLを電圧VDDSAとしておく。第2番目のセルに係るビット線BLについては、非選択ワード線WLを上昇させ始めてから(時刻T31)、1番目のタイミング(時刻T32)で電圧VDDSAとする。第3番目のセルに係るビット線BLについては、非選択ワード線WLを上昇させ始めてから、2番目のタイミング(時刻T33)で電圧VDDSAとする。4番目以降のセルに係るビット線BLについては、電圧VSS固定のままとする。このように制御することにより、実効的に印加される書き込み電圧は、第1番目のセル<第2番目のセル<第3番目のセル<第4番目以降のセルとなる。
このように書き込みを行うことにより、図34に示すようにセルの閾値が変動する。プログラムパルス印加後、プログラムベリファイ動作を行うが、第1〜4番目までのセルの順位が正しければ、次のプログラムパルスへと移行する。次のプログラムパルスでも、最初のプログラムパルスと同様それぞれのセルにつながるビット線BLの電圧を電圧VDDSAにセットするタイミングにより、実効的にかかる書き込み電圧を制御する。
第1〜4番目のセルまでは、すでに書き込み完了している。そのため、図35に示すように、インヒビット状態とすべく、非選択ワード線WLの電圧を上昇させる以前(時刻T40)に、第1〜4番目のセルに係るビット線BLを電圧VDDSAとしておく。非選択ワード線WLを上昇させはじめてから(時刻T41)、まず、第5番目のセルに係るビット線BLを電圧VDDSAにセットし、ある任意の時間をおいて(時刻T43)、第6番目のセルに係るビット線BLを電圧VDDSAにセットする。第7番目以降のセルに係ビット線BLについては、電圧VSS固定のままとする。図34に示すように、このように制御することで、第1〜4番目のセルについては、閾値が変動せず、第5番目以降のセルの閾値が変動し、その変動量は第5番目のセル<第6番目のセル<第7番目以降のセルの順となる。その後プログラムベリファイ動作を行い、第7番目のセルまでの順位が正しければ、次のプログラムパルスへと移行する。
最後のプログラムパルスでは、第8番目のセルと第9番目のセルを書き上げる。図36に示すように、第1〜7番目のセルまでのビット線BLは、初めから(時刻T50)電圧VDDSAとしておきインヒビット状態とする。非選択ワード線WLを上昇し始めて(時刻T51)、途中で第8番目のセルに係るビット線BLの電圧VDDSAとし、第9順位のセルに係るビット線BLを電圧VSSに固定とすることで、第8番目と第9番目のセルを書き分ける。最後にプログラムベリファイを行い、全ての順位が正しければ、プログラム完了となる。
<4−4−3> 効果
このマルチレベルプログラムにより、1回のプログラムパルスで、複数の閾値に書き込むことができ、書き込み速度が飛躍的に向上する。
<4−5> 第5書き込み方法
<4−5−1> 概要
次に、第5書き込み方式について説明する。第5書き込み方式では、順位の正しくないセルにのみ実効的に書き込みを行う。
<4−5−2> 比較例
図37を用いて、比較例(第4書き込み方式)の具体例について説明する。 図37に示すように、第5番目のセルと、第4番目のセルの閾値の差が小さいので、第5番目以降のセルにプログラムパルスを印加することが考えられる。
しかし、この場合、第5番目以降の、すでに順位が正しいセルまで書き込み電圧がかかってしまい、最終的な書き込みレベルが上昇してしまう恐れがある。
<4−5−3> 具体例
図38、図39を用いて、第5書き込み方式の具体例について説明する。
図38に示すように、第5書き込み方式では、順位の正しくないセルにのみ実効的に書き込み電圧が印加されるよう制御する。
具体的には、第5番目のセルの書き込み速度が遅い場合を想定する。図39に示すように、この場合、プログラムベリファイが終了した後、選択ワード線WLに印加する書き込み電圧は直前のプログラムパルスと変更せず、第5番目のセル以外をインヒビット状態とし(時刻T60)、第5番目のセルに係るビット線BLについては、非選択ワード線WLが上昇して(時刻T61)2番目のタイミング(時刻T62)で、電圧VDDSAにセットすることにより、第5番目のセルのみの書き込みを行う。
<4−5−4> 効果
第5番目のセルについて、前プログラムパルスでは非書き込みワード線WLが上昇して最初のタイミングでビット線BLをVDDSAにセットしていたとする。その場合、今回のプログラムパルスにおいて、2番目のタイミングで電圧VDDSAにセットすることにより、第5番目のセルに実効的に印加される書き込み電圧を、選択ワード線WLのレベルは同一のまま、前プログラムパルスより大きくすることが可能となる。このように制御することで、6番目以降のセルに過剰な書き込み電圧がかかることなく、5番目のセルにのみ、追加書き込みができ、過剰書き込みが抑制できる。
<4−6> 第6書き込み方法
<4−6−1> 概要
次に、第6書き込み方式について説明する。第6書き込み方式では、分割書き込みを採用している。分割書き込みは、一つのグループを任意の数のサブグループSGPに分け、サブグループSGP毎にプログラムを行う書き込みである。
<4−6−2> 具体例
図40を用いて、第6書き込み方式の具体例について説明する。
図40の例では、9つのセルを3セルずつ、3つのサブグループSGPに分けた例を示す。第1〜3番目のセルが属するグループをサブグループSGP1、第4〜6番目のセルが属するグループをサブグループSGP2、第7〜第9番目のセルが属するグループをサブグループSGP3とする。
まず、第1ステージでそれぞれのサブグループSGPを大まかに書き上げる。
その後、第2ステージにて、それぞれのサブグループSGP中のセルをそれぞれのレベルへ書き上げる。
具体的には、第1ステージにおいて、サブグループSGP1のセルをインヒビットにした状態で、選択ワード線WLに書き込み電圧VPGM2を印加し、サブグループSGP2とサブグループSGP3のセルを、あるレベルまで大まかに書き上げる。
その後、サブグループSGP1とサブグループSGP2のセルをインヒビットにした状態で、選択ワード線WLに書き込み電圧VPGM3を印加し、サブグループSGP3のセルをさらに高いレベルへ書きあげる。
その後、第2ステージへ移り、サブグループSGP1中のセルを細かく書き分ける。
具体的には、第1番目のセルをインヒビットにした状態で、第2番目と第3番目のセルに書き込み電圧VPGM1を印加する。
次に、第1番目のセルと第2番目のセルをインヒビットにした状態で第3番目のセルに書き込み電圧VPGM1+ΔVPGM1を印加する。
このようにして、サブグループSGP1内の3つのセルがそれぞれの閾値レベルに書きあがる。
同様にして、サブグループSGP2とサブグループSGP3内のセルをそれぞれの閾値レベルに細かく書き分け、書き込みが完了する。
<4−6−3> 効果
以上のように、あらかじめサブグループSGPに分けておくことで、書き込みの遅いセルの調整はサブグループSGP内で行う。そのため、上位のセルの閾値が過度に上昇してしまうことを抑制することができる。
<4−7> 第7書き込み方法
<4−7−1> 概要
次に、第7書き込み方式について説明する。第7書き込み方式では、分割書き込みとマルチレベルプログラムを組み合わせた方式である。
<4−7−2> 具体例
図41を用いて、第7書き込み方式について説明する。
図41に示すように、第1ステージにおいては、閾値の変動量を大きくとる必要があるため、マルチレベルプログラムは使用できない。そのため、第2ステージにおいて、マルチレベルプログラムを使用する。
第1ステージを経て、サブグループSGP1、サブグループSGP2、サブグループSGP3が、大まかに書きあがった後、第2ステージとして、サブグループSGP1内のセル、サブグループSGP2内のセル、サブグループSGP3内のセル、を細かく書き上げる作業を行う。第2ステージでは、マルチレベルプログラムを採用する。
<4−7−3> 効果
分割書き込みに、マルチレベルプログラムを組み合わせることで、書き込み速度の高速化が図れる。
なお、第1〜第6書き込み方式は、セルの特性に応じて、それぞれ組み合わせて用いることが可能である。
<5>その他
なお、上述した実施形態では、半導体記憶装置20の中に、信号I/O<7:0>を順列データへ変換する変換回路を備えている。しかし、図42に示すようにメモリコントローラ10が、信号を順列データへ変換する変換回路を備えていても良い。
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
10…メモリコントローラ
11…プロセッサ
12…内蔵メモリ
13…ECC回路
14…NANDインタフェース回路
15…バッファメモリ
16…ホストインタフェース回路
20…半導体記憶装置
21…メモリセルアレイ
22…入出力回路
22a…変換回路
23…ロジック制御回路
24…レジスタ
25…シーケンサ
26…電圧生成回路
27…ドライバセット
28…ロウデコーダ
29…センスアンプモジュール
51…転送スイッチ群
52…ブロックデコーダ
100…メモリシステム
200…ホスト機器
291…センス部
292…ラッチ部
293…演算部
294…組み合わせ回路群

Claims (7)

  1. 複数のメモリセルと、
    第1データを、前記複数のメモリセルの閾値の並び順に関する第2データに変換する第1回路と、
    前記第2データに基づいて、前記複数のメモリセルに書き込みを行う第2回路と、
    を備える
    半導体記憶装置。
  2. 前記第2データは、二つのメモリセルの閾値の大小を規定する第3データを複数備える
    請求項1に記載の半導体記憶装置。
  3. 前記第2回路は、書き込みデータを記憶する第1ラッチ群と、メモリセルから読み出された読み出しデータを記憶する第2ラッチ群と、第2ラッチ群から供給される読み出しデータを記憶する第3ラッチ群と、を備え、前記第2データに基づいて書き込み対象のメモリセルを選択する演算を行う
    請求項1または2に記載の半導体記憶装置。
  4. 前記第1ラッチ群と、前記第3ラッチ群と、に含まれるラッチの数は同数であり、
    前記第2ラッチ群に含まれるラッチの数は、前記第1ラッチ群及び前記第3ラッチ群に含まれるラッチの数よりも少ない、
    請求項3に記載の半導体記憶装置。
  5. 前記第2回路、前記第1ラッチ群、前記第2ラッチ群、及び前記第3ラッチ群を制御するシーケンサを更に備え、
    前記シーケンサは、前記第2データを複数のメモリセルに書き込む場合、
    前記第1ラッチ群に、前記第2データを記憶し、
    複数のメモリセルに対して、前記第2データに基づく第1プログラムを行い、
    前記第1プログラムの後、ベリファイを行い、
    前記第2ラッチ群に、前記ベリファイにより得られた第4データを記憶し、
    前記第1ラッチ群、前記第2ラッチ群、及び前記第3ラッチ群を用いて、前記第2データと、前記第4データと、を演算して第2プログラムの対象となるメモリセルを選択し、
    前記第2プログラムの対象となるメモリセルに対して、前記第2プログラムを行う
    請求項3または4に記載の半導体記憶装置。
  6. 前記第2回路は、前記第2プログラムの対象のメモリセルを選択する演算を行うための第3回路を更に備える
    請求項5に記載の半導体記憶装置。
  7. 第1データ を、複数のメモリセルの閾値の並び順に関する第2データに変換する第1回路を有するコントローラと、
    前期複数のメモリセルと、前記コントローラから送信された前記第2データに基づいて、前記複数のメモリセルに書き込みを行う第2回路とを有する、半導体記憶装置と、を有するメモリシステム。
JP2018231802A 2018-12-11 2018-12-11 半導体記憶装置 Pending JP2020095766A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018231802A JP2020095766A (ja) 2018-12-11 2018-12-11 半導体記憶装置
TW108121245A TWI740161B (zh) 2018-12-11 2019-06-19 半導體記憶裝置及記憶體系統
CN201910589709.2A CN111312315B (zh) 2018-12-11 2019-07-02 半导体存储装置及存储系统
US16/561,391 US11200951B2 (en) 2018-12-11 2019-09-05 Semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018231802A JP2020095766A (ja) 2018-12-11 2018-12-11 半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2020095766A true JP2020095766A (ja) 2020-06-18

Family

ID=70970258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018231802A Pending JP2020095766A (ja) 2018-12-11 2018-12-11 半導体記憶装置

Country Status (4)

Country Link
US (1) US11200951B2 (ja)
JP (1) JP2020095766A (ja)
CN (1) CN111312315B (ja)
TW (1) TWI740161B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347001B (zh) * 2020-10-13 2023-09-26 深圳市宏旺微电子有限公司 闪存垃圾回收的校验方法、装置及电子设备
CN115273941A (zh) 2022-04-27 2022-11-01 长江存储科技有限责任公司 支持正常编程和提早高速缓存释放编程(ecrp) 两者的数据预处理(dpp)模式

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4023953B2 (ja) * 1999-06-22 2007-12-19 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP4660095B2 (ja) 2002-04-04 2011-03-30 株式会社東芝 相変化メモリ装置
US7397705B1 (en) * 2007-02-01 2008-07-08 Macronix International Co., Ltd. Method for programming multi-level cell memory array
TWI338299B (en) * 2007-07-04 2011-03-01 Macronix Int Co Ltd Method for accessing memory
JP5142692B2 (ja) 2007-12-11 2013-02-13 株式会社東芝 不揮発性半導体記憶装置
JP2009238874A (ja) 2008-03-26 2009-10-15 Toshiba Corp 半導体メモリ及びその製造方法
JP5283960B2 (ja) 2008-04-23 2013-09-04 株式会社東芝 三次元積層不揮発性半導体メモリ
JP2009266944A (ja) 2008-04-23 2009-11-12 Toshiba Corp 三次元積層不揮発性半導体メモリ
JP2011198440A (ja) 2010-03-24 2011-10-06 Toshiba Corp 不揮発性半導体記憶装置
DE102011056141A1 (de) * 2010-12-20 2012-06-21 Samsung Electronics Co., Ltd. Negativspannungsgenerator, Dekoder, nicht-flüchtige Speichervorrichtung und Speichersystem, das eine negative Spannung verwendet
JP2014186761A (ja) * 2013-03-21 2014-10-02 Toshiba Corp 半導体記憶装置、コントローラ、及びメモリシステム
US20170076790A1 (en) 2015-09-14 2017-03-16 Kabushiki Kaisha Toshiba Semiconductor memory device
US10332593B2 (en) * 2015-09-14 2019-06-25 Toshiba Memory Corporation Semiconductor memory device configured to sense memory cell threshold voltages in ascending order
JP2017111847A (ja) * 2015-12-17 2017-06-22 株式会社東芝 半導体記憶装置
KR20180080842A (ko) * 2017-01-05 2018-07-13 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR20190074890A (ko) * 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
JP7051484B2 (ja) * 2018-02-22 2022-04-11 キオクシア株式会社 半導体メモリ

Also Published As

Publication number Publication date
CN111312315A (zh) 2020-06-19
CN111312315B (zh) 2023-10-03
US11200951B2 (en) 2021-12-14
TW202022616A (zh) 2020-06-16
TWI740161B (zh) 2021-09-21
US20200185035A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
JP4936914B2 (ja) 半導体記憶装置
CN102298966B (zh) 非易失性存储器设备、系统及编程方法
KR101427896B1 (ko) 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치 및그것을 포함하는 메모리 시스템
KR101829208B1 (ko) 반도체 메모리 장치의 동작 방법
TWI480878B (zh) 使用字元線耦合之記憶體之多次程式化
KR101150645B1 (ko) 비휘발성 반도체 메모리 장치
US8520435B2 (en) Nonvolatile memory device and method of operating the same
KR20190073943A (ko) 반도체 메모리 장치 및 그 동작 방법
JP5196965B2 (ja) 不揮発性半導体記憶装置
TWI497502B (zh) 堆疊式記憶體陣列裝置之感測操作
JP2019200826A (ja) 半導体記憶装置
JP2009070539A (ja) 不揮発性メモリ装置及びそのマルチレベルセルプログラム方法
JP2011044200A (ja) 不揮発性半導体記憶装置
JP2017168165A (ja) 半導体記憶装置
KR20150061098A (ko) 메모리 시스템 및 상기 메모리 시스템의 프로그래밍 방법
TWI740161B (zh) 半導體記憶裝置及記憶體系統
KR20120028035A (ko) 불휘발성 메모리 장치 및 그의 동작 방법
KR102528274B1 (ko) 비휘발성 메모리 장치 및 그 구동 방법
KR100938044B1 (ko) 불휘발성 메모리 장치 및 그 멀티 레벨 셀 프로그램 방법
KR101739431B1 (ko) 반도체 메모리 장치 및 그 동작 방법
JP2023089641A (ja) メモリシステムおよび半導体記憶装置
US20240212760A1 (en) Semiconductor memory device for performing blind program operation and method of operating the same
JP2019160379A (ja) 半導体記憶装置及びメモリシステム
JP7467204B2 (ja) 半導体記憶装置
KR20220014746A (ko) 반도체 메모리 장치 및 그 동작 방법