JP6545631B2 - 不揮発性半導体記憶装置 - Google Patents

不揮発性半導体記憶装置 Download PDF

Info

Publication number
JP6545631B2
JP6545631B2 JP2016040065A JP2016040065A JP6545631B2 JP 6545631 B2 JP6545631 B2 JP 6545631B2 JP 2016040065 A JP2016040065 A JP 2016040065A JP 2016040065 A JP2016040065 A JP 2016040065A JP 6545631 B2 JP6545631 B2 JP 6545631B2
Authority
JP
Japan
Prior art keywords
read
data
level
result
cache
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.)
Active
Application number
JP2016040065A
Other languages
English (en)
Other versions
JP2017157259A (ja
Inventor
常盤 直哉
直哉 常盤
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
Toshiba Memory 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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2016040065A priority Critical patent/JP6545631B2/ja
Priority to US15/331,606 priority patent/US9875804B2/en
Publication of JP2017157259A publication Critical patent/JP2017157259A/ja
Application granted granted Critical
Publication of JP6545631B2 publication Critical patent/JP6545631B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/5642Sensing 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/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/10Programming or data 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/067Single-ended amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices

Description

実施形態は、不揮発性半導体記憶装置に関する。
不揮発性半導体記憶装置としてNAND型フラッシュメモリが知られている。
米国特許第7,948,802号明細書 米国特許第8,451,664号明細書 米国特許第8,446,787号明細書
実施形態は、性能を向上させることが可能な不揮発性半導体記憶装置を提供する。
実施形態に係る不揮発性半導体記憶装置は、複数のメモリセルを備え、前記複数のメモリセルの各々は、第1閾値及び第2閾値のうち1つに設定可能である、メモリセルアレイと、前記複数のメモリセルに接続されたワード線と、前記ワード線に電圧を印加してメモリセルのデータを読み出し、第1命令に応答して、第1読み出しシーケンスと第2読み出しシーケンスとを連続して実行するコントローラとを具備する。前記第1読み出しシーケンスは、互いに異なる第1乃至第3電圧をそれぞれ用いた第1乃至第3読み出しを含み、前記第2読み出しシーケンスは、前記第1読み出しシーケンスに基づいて決定されかつ前記第1乃至第3電圧から計算される電圧を用いた第4読み出しを含む。
実施形態に係るメモリシステムのブロック図。 図1に示したNAND型フラッシュメモリのブロック図。 図2に示したセルアレイの回路図。 図2に示したセンスユニットのブロック図。 図4に示したセンスアンプの回路図。 メモリセルトランジスタの閾値とデータとの割り付けを説明する図。 実施形態に係る読み出しレベルを説明する図。 探索リードにおける読み出しシーケンスを説明する図。 ステートマシンの動作を説明するフローチャート。 ステートマシンの動作を説明するフローチャート。 探索リードにおけるキャッシュの操作を説明する図。 最適値探索リードによりキャッシュに格納されるデータの一例を説明する図。 図12に示した第1状態から第5状態におけるキャッシュのデータの一例を説明する図。 ステートマシン内に配置されるレジスタの回路図。 最適値探索リードの読み出し結果の一例を説明する図。 最適な読み出しレベルを決める判断テーブルの一例を説明する図。 探索リードにおけるコマンドシーケンスを説明する図。 探索リードにおける読み出し対象の差異を説明する図。 第3変形例に係る探索リードにおけるキャッシュの操作を説明する図。 第4変形例に係る探索リードを説明するフローチャート。 第4変形例に係る最適値探索リードにおける読み出しレベルを説明する図。 第4変形例に係る最適値探索リードを説明するフローチャート。 第4変形例に係るキャッシュのデータを説明する図。 第4変形例に係るキャッシュのデータの具体例を説明する図。 第4変形例を実現するNAND型フラッシュメモリのブロック図。
以下、実施形態について図面を参照して説明する。
本実施形態に係る半導体記憶装置は、データを電気的に書き換え可能な不揮発性半導体メモリであり、以下の実施形態では、半導体記憶装置としてNAND型フラッシュメモリを例に挙げて説明する。
[1] 実施形態
[1−1] メモリシステムの構成
図1を用いて、実施形態に係る不揮発性半導体記憶装置を含むメモリシステム1の構成について説明する。メモリシステム1は、1つ又は複数の不揮発性半導体記憶装置(NAND型フラッシュメモリ)100、及びメモリコントローラ200を備える。図1には、2つのNAND型フラッシュメモリ100−0、100−1を例示している。
メモリシステム1は、ホスト装置300が搭載されたマザーボード上にメモリシステム1を構成する複数のチップを実装して構成してもよいし、メモリシステム1を1つのモジュールで実現するシステムLSI(large-scale integrated circuit)、又はSoC(system on chip)として構成してもよい。メモリシステム1の例としては、SDTMカードのようなメモリカード、SSD(solid state drive)、及びeMMC(embedded multimedia card)などが挙げられる。
NAND型フラッシュメモリ100は、複数のメモリセルを備え、データを不揮発に記憶する。NAND型フラッシュメモリ100の構成に関する詳細は後述する。
メモリコントローラ200は、ホスト装置300からの命令に応答して、NAND型フラッシュメモリ100に対して書き込み(プログラムともいう)、読み出し、及び消去などを命令する。また、メモリコントローラ200は、NAND型フラッシュメモリ100のメモリ空間を管理する。メモリコントローラ200は、ホストインターフェース回路(Host I/F)201、CPU(Central Processing unit)202、RAM(Random Access Memory)203、バッファメモリ204、NANDインターフェース回路(NAND I/F)205、及びECC(Error Checking and Correcting)回路206などを備える。
ホストインターフェース回路201は、コントローラバスを介してホスト装置300に接続され、ホスト装置300との間でインターフェース処理を行う。また、ホストインターフェース回路201は、ホスト装置300との間で命令及びデータの送受信を行う。
CPU202は、メモリコントローラ200全体の動作を制御する。CPU202は、例えば、ホスト装置300から書き込み命令を受けた場合に、それに応答して、NANDインターフェースに基づく書き込み命令をNAND型フラッシュメモリ100に発行する。読み出し及び消去の際も同様である。また、CPU202は、ウェアレベリングなど、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。
RAM203は、CPU202の作業エリアとして使用され、NAND型フラッシュメモリ100からロードされたファームウェアや、CPU202が作成した各種テーブルを格納する。RAM203は、例えばDRAMから構成される。バッファメモリ204は、ホスト装置300から送られたデータを一時的に保持するとともに、NAND型フラッシュメモリ100から送られたデータを一時的に保持する。
ECC回路206は、データの書き込み時には、書き込みデータに対してエラー訂正符号を生成し、このエラー訂正符号を書き込みデータに付加してNANDインターフェース回路205に送る。また、ECC回路206は、データの読み出し時には、読み出しデータに対して、読み出しデータに含まれるエラー訂正符号を用いてエラー検出及びエラー訂正を行う。なお、ECC回路206は、NANDインターフェース回路205内に設けるようにしてもよい。
NANDインターフェース回路205は、NANDバスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との間でインターフェース処理を行う。また、NANDインターフェース回路205は、NAND型フラッシュメモリ100との間で命令及びデータの送受信を行う。
NAND型フラッシュメモリ100は、制御信号線群及び入出力バス等を介してメモリコントローラ200に接続される。NAND型フラッシュメモリ100は、メモリコントローラ200が発行するコマンド、アドレス、及び書き込みデータを受け取り、また、メモリコントローラ200へ読み出しデータを送るように構成される。
メモリコントローラ200とNAND型フラッシュメモリ100との間の信号には、チップイネーブル信号CEn、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号WPn、入出力信号IO<7:0>、及びレディー/ビジー信号RBnが含まれる。信号名に付記された“n”は、アクティブ・ローを示す。ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号WPn、及び入出力信号IO<7:0>は、複数のNAND型フラッシュメモリ100に共通であり、一方、チップイネーブル信号CEn、及びレディー/ビジー信号RBnは、NAND型フラッシュメモリ100に個別に設けられる。この信号形態と接続方法については、必要に応じて適切に変更される。
[1−1−1] NAND型フラッシュメモリ100の構成
図2を用いて、NAND型フラッシュメモリ100の構成について説明する。NAND型フラッシュメモリ100の内部ブロック構造は、大きく分けてコア部10とそれ以外の周辺回路20とに分けられる。
コア部10は、複数のメモリセルを有するセルアレイ(メモリセルアレイ)11、ロウデコーダ12、及びセンスユニット13を備える。
ロウデコーダ12は、セルアレイ11をブロック単位で選択するとともに、ワード線に所望の電圧を印加する。すなわち、ロウデコーダ12は、図示せぬ電圧生成回路から動作に応じた種々の電圧を受け、複数のワード線に種々の電圧を印加する。
センスユニット13は、データの読み出し時には、メモリセルからビット線に読み出されたデータを検知及び増幅する。また、センスユニット13は、データの書き込み時には、書き込みデータをメモリセルに転送する。セルアレイ11へのデータの読み出し及び書き込みは、複数のメモリセルを単位として行われ、この単位がページとなる。センスユニット13の具体的な構成については後述する。
周辺回路20は、入力バッファ21、22、出力バッファ23、アドレスバッファ24、コマンドデコーダ25、データバッファ26、選択回路27、選択回路28、ステートマシン(制御回路)29、メモリセル制御レジスタ30、出力バッファ31、レジスタ回路32、及びフェイル数カウント回路33を備える。
入力バッファ21は、チップイネーブル信号CEn、ライトイネーブル信号WEn、リードイネーブル信号REn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、及びライトプロテクト信号WPnを受ける複数の端子(ピン)に接続される。入力バッファ21は、複数のピンの論理状態に応じて、コマンド入力、アドレス入力、データ入力、書き込み禁止状態、チップ選択/非選択状態を認識するとともに、コマンドデコーダ25、入力バッファ22、及び出力バッファ23などにその状態を通知する。
入力バッファ22は、双方向バスIO<7:0>に接続される。入力バッファ22は、入力バッファ21の指示に応じて、メモリコントローラ200から双方向バスIO<7:0>を介して入力されたデータをDINとして出力する。
出力バッファ23は、選択回路27の出力を受け、読み出しデータを双方向バスIO<7:0>に所定タイミングで出力する。
アドレスバッファ24は、データ信号DINに含まれるアドレスデータを入力バッファ22から受けるとともに、このアドレスデータを一時的に保持する。アドレスデータは、入力順序や入力ビット位置に応じて、ブロックアドレスBLKa、ストリングアドレスSTRa、ワード線アドレスWLa、及びカラムアドレスCOLaに分離される。
コマンドデコーダ25は、入力バッファ21の指示に応じて、入力バッファ22からデータ信号DINを受け、データ信号DINに含まれるコマンド信号を出力する。コマンドデコーダ25から出力されるコマンド信号には、読み出しを指示するコマンド信号CMD_READ、後述する探索リードを指示するコマンド信号CMD_TRACK、探索リード結果を装置外部に出力することを指示する信号CMD_TRACKRESULTが含まれる。なお、コマンドデコーダ25は、前述したコマンド信号以外、例えば書き込みに関するコマンド信号なども出力する。
データバッファ26は、入力バッファ21の指示に応じて、入力バッファ22からデータ信号DINを受け、データ信号DINに含まれる書き込みデータを一時的に保持する。データバッファ26は、選択回路28を経由してセンスユニット13にデータを転送する。
選択回路27は、信号CMD_TRACKRESULTの状態に応じて、センスユニット13からの読み出しデータ、及びステートマシン29からの信号PFのいずれかを選択し、出力バッファ23へ転送する。
選択回路28は、データバッファ26からセンスユニット13へデータを転送するか、センスユニット13から選択回路27へデータを転送するかを決める方向選択回路である。
ステートマシン29は、NAND型フラッシュメモリ100の読み出し、書き込み、及び消去等の動作を司る。本実施形態では、ステートマシン29は、コマンドデコーダ25の出力を受け、主にメモリセル制御レジスタ30を制御する。具体的には、ステートマシン29は、メモリセルの適切なアドレス選択を行う、及び所望の電圧を所望のノードに印加する、などの動作を行う。また、ステートマシン29は、レジスタ回路32の適切なレジスタの選択と、レジスタ回路32からの出力F_NFの計算ならびに出力とを行う。
さらに、ステートマシン29は、その内部に後述するレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THを備える。ステートマシン29が備えるレジスタの数は、実施形態に応じて任意に設定可能である。レジスタPF_1ST、PF_2ND、PF_3RD、PF_4THのデータは、適切な選択手段により、信号PFとして選択回路27へ出力される。また、レジスタPF_1ST、PF_2ND、PF_3RD、PF_4THは、フェイル数カウント回路33の出力信号PASSの情報を保持する。具体的な保持方法は後述する。
メモリセル制御レジスタ30は、アドレスバッファ24からのアドレスBLKa、STRa、WLa、COLaと、ステートマシン29の動作指示信号とにより、メモリセルの書き込み、読み出し、及び消去の詳細動作を制御する信号を出力する。メモリセル制御レジスタ30から出力される信号には、ブロックアドレスBLKADD、ストリングアドレスSTRADD、ワード線アドレスWLADD、及びカラムアドレスCOLADDが含まれる。
ブロックアドレスBLKADDは、選択ブロックを指示する。ストリングアドレスSTRADDは、メモリセルのブロックを構成する複数のストリングのうち1つを選択するための選択ゲート信号の電圧を指示する。ワード線アドレスWLADDは、選択ワード線に選択電圧を、非選択ワード線に非選択電圧を印加することを指示する。カラムアドレスCOLADDは、書き込みや読み出し時のキャッシュ位置を指示する。
出力バッファ31は、ステートマシン29が動作状態であるか否かを通知する信号RBを受け、NAND型フラッシュメモリ100に設けられたレディー/ビジーピンRBnにその状態を伝える。
レジスタ回路32は、図示せぬが公知の初期化シーケンスにおいてセルアレイ11のヒューズ領域(ヒューズロム)から読み出したヒューズデータを格納する。本実施形態では、レジスタ回路32は、読み出しにかかるワード線電圧の基準電圧(後述するAR、BR、CRに相当する電圧)を指示するデータを保持する。
また、レジスタ回路32は、別途コマンドにより、NAND型フラッシュメモリ100の外部より与えられた電圧コードを保持する機構を持ち、この電圧コードが双方向バスYIOを介して入力されるように構成される。また、レジスタ回路32は、ステートマシン29の指示により、複数のフェイルビット基準値の中から適切なフェイルビット基準値をフェイルビット基準値F_NFとして出力する。この適切なフェイルビット基準値を選ぶために、ステートマシン29はNFSELという信号をレジスタ回路32に送る。
フェイル数カウント回路33は、センスユニット13に含まれるキャッシュに格納された読み出しデータを監視し、所定タイミングで期待値と一致しないビット数やバイト数を計数する。そして、フェイル数カウント回路33は、上記計数結果とレジスタ回路32の出力するフェイルビット基準値F_NFとを比較する。フェイル数カウント回路33は、比較の結果、基準値以下であれば信号PASSをハイレベルに、基準値を超える場合はPASSをローレベルにするなどしてステートマシン29にその情報を通知する。
[1−1−2] セルアレイ11の構成
図3を用いて、セルアレイ11の構成について説明する。セルアレイ11は、複数のブロックBLKを備える。図3には、セルアレイ11に含まれる1つのブロックBLKの回路図を示している。
1つのブロックBLKは、複数のストリングユニットSUを備え、複数のストリングユニットSUの各々は、複数のNANDストリング14を備える。図3では、一例として、4個のストリングユニットSU0〜SU3を示している。1つのブロックBLK内のストリングユニットSUの数は任意に設定可能である。
複数のNANDストリング14の各々は、複数のメモリセルトランジスタMT、及び2個の選択トランジスタST1、ST2を備える。本明細書では、メモリセルトランジスタをメモリセル又はセルと呼ぶ場合もある。図3は、NANDストリング14が8個のメモリセルトランジスタMT(MT0〜MT7)を備える構成例を示しているが、NANDストリング14が備えるメモリセルトランジスタMTの数は任意に設定可能である。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に記憶する。複数のメモリセルトランジスタMTは、選択トランジスタST1、ST2の間に、それらの電流経路が直列接続されるようにして配置される。この直列接続の一端側のメモリセルトランジスタMTの電流経路は選択トランジスタST1の電流経路の一端に接続され、他端側のメモリセルトランジスタMTの電流経路は選択トランジスタST2の電流経路の一端に接続される。
ストリングユニットSU0に含まれる複数の選択トランジスタST1のゲートは、選択ゲート線SGD0に共通接続され、同様に、ストリングユニットSU1〜SU3には、選択ゲート線SGD1〜SGD3が接続される。同一のブロックBLK内にある複数の選択トランジスタST2のゲートは、同一の選択ゲート線SGSに共通接続される。なお、各ストリングユニットSUに含まれる選択トランジスタST2は、選択トランジスタST1と同様に、別々の選択ゲート線SGS0〜SGS3に接続されていてもよい。同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT7の制御ゲートはそれぞれ、ワード線WL0〜WL7に接続される。
なお、NANDストリング14は、ダミーセルトランジスタを備えていてもよい。ダミーセルトランジスタは、選択トランジスタST1とメモリセルトランジスタとの間、及び選択トランジスタST2とメモリセルトランジスタとの間に直列接続される。ダミーセルトランジスタのゲートには、ダミーワード線が接続される。ダミーセルトランジスタの構造は、メモリセルトランジスタと同じである。ダミーセルトランジスタは、データを記憶するためのものではなく、書き込みパルス印加動作や消去パルス印加動作中に、メモリセルトランジスタや選択トランジスタが受けるディスターブを緩和する機能を有する。
セルアレイ11内でマトリクス状に配置されたNANDストリング14のうち、同一列にある複数のNANDストリング14の選択トランジスタST1の電流経路の他端は、ビット線BL0〜BL(m−1)のいずれかに共通接続される。“m”は1以上の整数である。すなわち、1本のビット線BLは、複数のブロックBLK間で同一列にあるNANDストリング14を共通に接続する。同一のブロックBLKに含まれる複数の選択トランジスタST2の電流経路の他端は、ソース線SLに共通に接続される。ソース線SLは、例えば複数のブロック間でNANDストリング14を共通に接続する。
同一のブロックBLK内にある複数のメモリセルトランジスタMTのデータは、一括して消去される。データの読み出し及び書き込みは、1つのブロックBLKに配設された1本のワード線WLに共通接続された複数のメモリセルトランジスタMTに対して、一括して行われる。このデータ単位をページと呼ぶ。
メモリセルアレイの構成については、例えば、“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679,991号“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
またデータの消去は、ブロックBLK単位、またはブロックBLKよりも小さい単位で行うことができる。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
[1−1−3] センスユニット13の構成
次に、センスユニット13の構成について説明する。図4は、センスユニット13のブロック図である。センスユニット13は、センスアンプ(S/A)40、3つのキャッシュ(データキャッシュ、データラッチ回路ともいう)ADL、BDL、XDL、及び記憶ノードTAGを備える。記憶ノードTAGは、例えばラッチ回路で構成される。
キャッシュADL、BDL、XDL、及び記憶ノードTAGは、一時的にデータを格納することが可能である。キャッシュXDLは、IOパッドに最も近い位置に配置されるとともに、双方向バスYIOに接続される。キャッシュXDLは、内部バスLBUSを介して、センスアンプ40、キャッシュADL、BDL、及び記憶ノードTAGに接続される。キャッシュXDLに格納された書き込みデータ等は、内部バスLBUSを介して、キャッシュADL、BDL、及び記憶ノードTAGにコピー及び転送することができる。キャッシュADL、BDLの物理的位置に制約はなく、適宜配置してよい。記憶ノードTAGは、フェイル数カウント回路33からアクセス可能なように配置される。
センスアンプ40は、読み出し時にその結果を保持するためのキャッシュ(センスアンプキャッシュ)SDLを備える。キャッシュSDLに格納された読み出しデータ等は、内部バスLBUSを介して、キャッシュADL、BDL、及び記憶ノードTAGにコピー及び転送することができる。
センスユニット13は、メモリセルにビット線BLを介して接続され、一括して読み出すことが可能な単位(例えば32キロバイト)分だけの容量を持つ。具体的には、32キロバイトを一括して読み出せる場合、ビット線BLは32768バイト、すなわち262144ビット分を持ち、キャッシュSDL、ADL、BDL、XDLの各々も同数分配置される。
[1−1−4] センスアンプ40の構成
次に、センスアンプ40の構成について説明する。図5は、センスアンプ40の回路図である。
センスアンプ40は、複数のNチャネルMOSトランジスタ(以下、NMOSと称す)41〜47と、複数のPチャネルMOSトランジスタ(以下、PMOSと称す)48、49と、トランスファーゲート50、51、キャッシュ(データラッチ回路)SDL、及びキャパシタ53とを備える。キャッシュSDLは、例えばクロックドインバータ回路52a、52bにより構成される。
NMOS41の電流経路の一端は、電源電圧Vddが供給されるノードに接続される。NMOS41の電流経路の他端は、トランスファーゲート50、NMOS44、トランスファーゲート51を介して接地される(接地電圧Vssが供給されるノードに接続される)。NMOS44とトランスファーゲート51との接続ノードには、NMOS45の電流経路の一端が接続される。このNMOS45の他端は、セルアレイ11に配置されたビット線BLに接続される。NMOS41には、NMOS42、43の直列回路が並列接続される。
PMOS48の電流経路の一端は、電源電圧Vddが供給されるノードに接続される。PMOS48の電流経路の他端は、PMOS49を介してキャッシュSDLを構成するインバータ回路52aの入力端子に接続されるとともに、NMOS46を介して接地される。このインバータ回路52aとクロスカップルされたクロックドインバータ回路52bの入力端子は、NMOS47を介して内部バスLBUSに接続される。PMOS49のゲートは、センスノードSENを介して、NMOS42とNMOS43との接続ノードと、キャパシタ53の一端とに接続される。キャパシタ53の他端には、クロック信号CLKが供給される。
ステートマシン29は、以下に述べるように、センスアンプ40内に各種の制御信号(例えば、信号BLX、BLC、BLS、HLL、XXL、STB、RST、NCO)を供給する。
NMOS41のゲートには、信号BLXが供給される。トランスファーゲート50を構成するNMOSのゲートには、キャッシュSDLを構成するインバータ回路52aの出力端子の信号LATが供給される。トランスファーゲート50を構成するPMOSのゲートには、インバータ回路52aの入力端子の信号INVが供給される。NMOS44のゲートには、信号BLCが供給される。NMOS45のゲートには、信号BLSが供給される。
トランスファーゲート51を構成するNMOSのゲートには、信号INVが供給される。トランスファーゲート51を構成するPMOSのゲートには、信号LATが供給される。
NMOS42のゲートには、信号HLLが供給される。NMOS43のゲートには、信号XXLが供給される。PMOS48のゲートには、信号STBが供給される。NMOS46のゲートには、リセット信号RSTが供給される。NMOS47のゲートには、信号NCOが供給される。
次に、上記センスアンプ40における書き込み動作、読み出し動作、及び書き込みベリファイ動作について概略的に説明する。
(書き込み動作)
メモリセルにデータを書き込む場合、ステートマシン29は、以下のような制御信号を生成する。まず、ステートマシン29は、信号STBをハイレベル(以下、Hレベルと記す)、リセット信号RSTを一旦、Hレベルとして、キャッシュSDLをリセットする。これにより、キャッシュSDLの信号LATがHレベル、信号INVがローレベル(以下、Lレベルと記す)となる。
この後、ステートマシン29は、信号NCOをHレベルとする。これにより、内部バスLBUSからキャッシュSDLにデータが取り込まれる。このデータが書き込みを示すLレベル(“0”)である場合、信号LATがLレベル、信号INVがHレベルとなる。また、データが非書き込みを示すHレベル(“1”)である場合、キャッシュSDLのデータは変わらず、信号LATがHレベル、信号INVがLレベルのまま保持される。
続いて、ステートマシン29は、信号BLX、BLC、BLSをHレベルとする。すると、書き込みの場合、すなわちキャッシュSDLの信号LATがLレベル、信号INVがHレベルの場合、トランスファーゲート50がオフ、トランスファーゲート51がオンしてビット線BLは接地電圧Vssとなる。この状態において、ワード線がプログラム電圧Vpgmとなると、メモリセルにデータが書き込まれる。
一方、非書き込みの場合、すなわちキャッシュSDLの信号LATがHレベル、信号INVがLレベルの場合、トランスファーゲート50がオン、トランスファーゲート51がオフとなるため、ビット線BLは電源電圧Vddに充電される。ここで、ワード線がプログラム電圧Vpgmとなった場合、メモリセルのチャネルが高い電位にブーストされるため、メモリセルにデータが書き込まれない。
(読み出し動作、書き込みベリファイ動作)
メモリセルからデータを読み出す場合、ステートマシン29は、以下のような制御信号を生成する。まず、ステートマシン29は、リセット信号RSTを一旦、Hレベルとして、キャッシュSDLをリセットする。これにより、キャッシュSDLの信号LATがHレベル、信号INVがLレベルとなる。
この後、ステートマシン29は、信号BLS、BLC、BLX、HLL、XXLを所定の電圧とする。これにより、ビット線BLが充電されるとともに、キャパシタ53のノードSENが電源電圧Vddに充電される。ここで、メモリセルの閾値電圧が読み出しレベルより高い場合、メモリセルはオフ状態であり、ビット線BLはHレベルに保持される。つまり、ノードSENはHレベルに保持される。また、メモリセルの閾値電圧が読み出しレベルより低い場合、メモリセルはオン状態となり、ビット線BLの電荷が放電される。このため、ビット線BLはLレベルとなる。これにより、ノードSENもLレベルとなる。
続いて、ステートマシン29は、信号STBをLレベルとする。すると、メモリセルがオンしている場合、ノードSENはLレベルであるため、PMOS49がオンする。これにより、キャッシュSDLの信号INVがHレベル、信号LATがLレベルとなる。一方、メモリセルがオフしている場合、ノードSENはHレベルであるため、PMOS49がオフする。これにより、キャッシュSDLの信号INVがLレベル、信号LATがHレベルに保持される。このように、信号STBをLレベルにすることでセンス動作が行われ、メモリセルからデータを読み出すことができる。
この後、ステートマシン29は、信号NCOをHレベルとする。すると、NMOS47がオンし、キャッシュSDLのデータが内部バスLBUSへ転送される。
また、書き込み動作後、メモリセルの閾値電圧を検証する書き込みベリファイ動作が行われる。この書き込みベリファイ動作は、上記読み出し動作と同様である。
[1−1−5] メモリセルトランジスタの閾値
次に、メモリセルトランジスタの閾値について説明する。図6は、メモリセルトランジスタの閾値とデータとの割り付けを説明する図である。図6の横軸がメモリセルトランジスタの閾値(閾値電圧)、図6の縦軸がメモリセルトランジスタの数である。メモリセルトランジスタは、2ビットデータ(4値)を格納可能である。
LSB(least significant bit)をLower、MSB(most significant bit)をUpperと表記している。第1ページとしての下位ページ(Lower Page)と、第2ページとしての上位ページ(Upper Page)との2ビットデータがメモリセルに書き込まれることにより、メモリセルは、“00”、“10”、“00”、“01”のいずれかを記憶可能である。
メモリセルの閾値電圧の低い方から、“E”レベル(消去レベル)、“A”レベル、“B”レベル、“C”レベルと呼ぶ。“E”レベル、“A”レベル、“B”レベル、及び“C”レベルがそれぞれ、データ“11”、“10”、“00”、及び“01”に対応する。なお、本実施形態の適用としては、4値格納のメモリセルに限るものではなく、2値、8値、16値などにも同様に適用できる。
メモリセルにデータを格納する前は、図6(a)の閾値状態にある。ここでは消去レベル(“E”レベル)にメモリセルが分布している。
2ビットデータを書き込み後のメモリセルの閾値分布は、図6(b)のようになる。下位ページは、読み出しレベルBR3をワード線に印加して読み出すことができ、上位ページは、読み出しレベルAR3と読み出しレベルCR3とをワード線に印加して読み出すことができる。この読み出しレベルAR3、BR3、CR3は、図2に示すレジスタ回路32内に配置されたレジスタに保持され、読み出し時に適切なレジスタの値を参照して、メモリセルに必要な電圧が印加される。
しかしながら、NAND型フラッシュメモリ100は、データを不揮発に保持できるため、書き込み後に長期にわたってデータを保存し、その後、読み出す利用形態がある。このとき、長期保存の過程でメモリセルの電荷蓄積層に蓄えられた電荷が一部消失し、その結果、閾値分布の変動がみられる場合がある。例えば図6(c)のような形態である。
この場合、前述した読み出しレベルAR3、BR3、CR3で読み出した場合は誤読み出しとなってしまうため、適切な読み出しレベルAR3-ΔA、BR3-ΔB、CR3-ΔCで読み出す必要がある。本実施形態では、この点を鑑みて解決手段を開示している。
[1−2] 動作
図7は、複数の読み出しレベルの一例を説明する図である。ここでは、図6(c)の状態、すなわちデータの長期保存により閾値分布が変動し、初期の読み出しレベルAR、BR、CRではデータを正しく読めない例を示す。閾値分布の変動はその閾値電圧により異なるが、本実施形態ではすべての分布が閾値の低い方、つまり“E”レベル方向に向かったダウンシフトが起きているものと仮定する。メモリセル構造や膜組成によってシフト方向は異なることが予想されるが、以下に述べる形態の応用で実現できる。
図7に示した(A5)のAR3、及び(C6)のCR3はそれぞれ、レジスタ回路32に格納されている“A”分布、“C”分布の読み出しレベルである。長期保存で閾値分布の変動がなければこのレベルで読み出しを行うことが可能である。
本実施形態では、閾値のダウンシフトが起きているので、“A”分布では、AR3レベルに対して相対的に低い4つの読み出しレベル(A1)、(A2)、(A3)、(A4)と本来の読み出しレベル(A5)で読み出しを実施し、“C”分布では、CR3レベルに対して相対的に低い5つの読み出しレベル(C1)、(C2)、(C3)、(C4)、(C5)と本来の読み出しレベル(C6)とで読み出しを実施する。
なお、本来の読み出しレベル(A5)、(C6)を実施しているが、このレベルでの読み出しが不要の場合は省略してもよい。省略せずに、“A”分布に対して相対的に低い5レベル、“C”分布に対して相対的に低い6レベルの読み出しであってもよい。また、読み出し回数は、“A”レベル、“C”レベルに対してそれぞれ5回、6回であるが、これは任意で、必要回数を実現できるよう回路を構成すればよい。
“A”分布の各回数における読み出しレベル(選択ワード線電圧)は以下で計算される。

(A1):AR3−A_DELTA×4=AR3−ΔA1
(A2):AR3−A_DELTA×3=AR3−ΔA2
(A3):AR3−A_DELTA×2=AR3−ΔA3
(A4):AR3−A_DELTA×1=AR3−ΔA4
(A5):AR3
“C”分布の各回数における読み出しレベル(選択ワード線電圧)は以下で計算される。

(C1):CR3−C_DELTA×5=CR3−ΔC1
(C2):CR3−C_DELTA×4=CR3−ΔC2
(C3):CR3−C_DELTA×3=CR3−ΔC3
(C4):CR3−C_DELTA×2=CR3−ΔC4
(C5):CR3−C_DELTA×1=CR3−ΔC5
(C6):CR3
(A1)リードから(A5)リードを“A”レベル最適値探索リード、(C1)リードから(C6)リードを“C”レベル最適値探索リードと呼ぶ。(A1)リードから(A5)リードと、(C1)リードから(C6)リードとの全体を単に最適値探索リードと呼ぶ。(A1)リードから(A5)リードを経て最適と判定された読み出しレベルでの“A”レベル読み出しと、(C1)リードから(C6)リードを経て最適と判定された読み出しレベルでの“C”レベル読み出しとを総称して探索リードと呼ぶ。(A1)から(A5)を経て最適と判定された読み出しレベルでの読み出しを“A”レベル最適値リード、(C1)から(C6)を経て最適と判定された読み出しレベルでの読み出しを“C”レベル最適値リードと呼ぶ。
A_DELTAは、“A”レベル最適値探索リードの各差分を与える変数、C_DELTAは、“C”レベル最適値探索リードの各差分を与える変数で、これらの値は図2のレジスタ回路32に格納される。A_DELTA及びC_DELTAは、後述するように、NAND型フラッシュメモリ100の外部から任意に指定できるように構成するのが望ましい。もちろん、あらかじめ回路で決めた値、あるいは公知のヒューズロムにその値を格納する形態であってもよい。
なお、以下の説明は、“B”分布の読み出し動作にも同様に適用できる。
[1−2−1] 最適値探索リード及び最適値リード
図8は、最適値探索リード及び最適値リードを含む読み出しシーケンスを説明する図である。図8の横軸は時刻を表す。図8に示すRBnは、NAND型フラッシュメモリ100の出力ピン(レディー/ビジーピン)RBnである。図8に示すSTBは、図5で説明したように、データを読み出す際に使用される信号である。
時刻t1までに、探索リードを実行するための実行コマンド、アドレスがメモリコントローラ200からNAND型フラッシュメモリ100に入力される。NAND型フラッシュメモリ100は、メモリコントローラ200から実行コマンドを受けると、動作状態、つまりビジー状態になったことを通知するため、レディー/ビジーピンRBnをローレベルに変化させる。この動作に伴い、図2を参照して、信号CMD_TRACKがハイレベル、信号CMD_READがハイレベルに変化し、探索リードが開始されたことをステートマシン29は認識する。なお、探索リードを実行せず、単一のAR3レベル、単一のCR3レベルで読み出す場合は、信号CMD_TRACKがローレベル、信号CMD_READがハイレベルとなることで、探索リードと区別する。
時刻t1では、装置内部で必要な電圧生成が始まり、(A1)リードでは必要なワード線電圧が計算されて選択ワード線に印加される。その結果は後述する方法で、センスユニット13の所定キャッシュに所定方法で格納される。
時刻t2では、(A1)リードとは異なる読み出しレベルで(A2)リードが実行される。その結果は、時刻t1からの読み出し同様、所定キャッシュに所定方法で格納される。以下、時刻t3、時刻t4、時刻t5においてそれぞれ(A3)リード、(A4)リード、(A5)リードを順次実行して“A”レベル最適値探索リードを終了する。
時刻t6では、(A1)リードから(A5)リードの読み出し結果から、“A”レベル最適値リードで使用される最適な読み出しレベルを計算及び選択する。
時刻t7では、“A”レベル最適値リードが実行される。すなわち、前記計算した最適値にて読み出しを実行し、所定キャッシュに所定方法でその結果を格納する。
時刻t8では、“C”レベル最適値探索リードを開始する。具体的には、(C1)リードに必要なワード線電圧が計算されて選択ワード線に印加される。結果の格納方法は“A”レベルの場合と同様である。以下、時刻t9、t10、t11、t12、t13でも同様の動作を繰り返す。
時刻t14では、(C1)リードから(C6)リードの読み出し結果から“C”レベル最適値リードで使用される最適なワード線電圧を計算及び選択する。
時刻t15では、“C”レベル最適値リードが実行される。すなわち、前記計算した最適値にて読み出しを実行し、所定キャッシュに所定方法でその結果を格納する。格納した結果は、先の“A”レベル最適値リードの結果とともに必要な演算を行い、キャッシュXDLにその結果を格納し、装置外部へのデータ出力に備える。
読み出しの終了した時刻t16では、ステートマシン29は、既知の方法にてワード線を放電するなどの動作を行う。時刻t17では、ステートマシン29は、レディー/ビジーピンRBnをハイレベルにし、読み出しが完了したことをメモリコントローラ200へ通知する。その後、ステートマシン29は、データを所定の方法で出力する。読み出しに必要な選択ワード線電圧の計算やメモリセルの電圧印加等の制御は主にステートマシン29が実施し、その指示を受けたメモリセル制御レジスタ30も協調して実施する。
次に、ステートマシン29が制御する動作フローについて説明する。図9及び図10は、ステートマシン29の動作を説明するフローチャートである。
ステートマシン29は、(A1)リードを実行する(ステップS101)。ステップS101は、図8における時刻t1〜t2間の動作に対応する。
続いて、ステートマシン29は、(A2)リードを実行する(ステップS102)。ステップS102は、図8における時刻t2〜t3間の動作に対応する。
続いて、ステートマシン29は、(A3)リードを実行する(ステップS103)。ステップS103は、図8における時刻t3〜t4間の動作に対応する。さらに、ステップS103において、ステートマシン29は、ステップS101及びステップS102の読み出し結果から、(A1)及び(A2)間に閾値があるメモリセルを抽出(差分抽出:difference)し、そのメモリセル数をカウント(difference detection)する。
続いて、ステートマシン29は、(A4)リードを実行する(ステップS104)。ステップS104は、図8における時刻t4〜t5間の動作に対応する。さらに、ステップS104において、ステートマシン29は、ステップS102までの読み出し結果とステップS103の読み出し結果とから、(A2)及び(A3)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする。
続いて、ステートマシン29は、(A5)リードを実行する(ステップS105)。ステップS105は、図8における時刻t5〜t6間の動作に対応する。さらに、ステップS105において、ステートマシン29は、ステップS103までの読み出し結果とステップS104の読み出し結果とから、(A3)及び(A4)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする。
続いて、ステートマシン29は、ステップS104までの読み出し結果とステップS105の読み出し結果とから、(A4)及び(A5)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする(ステップS106)。続いて、ステートマシン29は、ステップS106までの結果を用いて、“A”レベルを読み出すための最適な読み出しレベル(ARレベル)を計算する(ステップS107)。最適な読み出しレベルを計算するためのアルゴリズムの一例は後述する。ステートマシン29は、ステップS107で計算した最適な読み出しレベルをレジスタ回路32に格納する。ステップS106及びステップS107は、図8の時刻t6〜t7間の動作に対応する。
続いて、ステートマシン29は、ステップS107で計算したARレベルを用いて、“A”レベル最適値リードを実行する(ステップS108)。ステップS108は、図8の時刻t7〜t8間の動作に対応する。
(“C”レベル)
続いて、ステートマシン29は、(C1)リードを実行する(ステップS109)。ステップS109は、図8における時刻t8〜t9間の動作に対応する。
続いて、ステートマシン29は、(C2)リードを実行する(ステップS110)。ステップS110は、図8における時刻t9〜t10間の動作に対応する。
続いて、ステートマシン29は、(C3)リードを実行する(ステップS111)。ステップS111は、図8における時刻t10〜t11間の動作に対応する。さらに、ステップS111において、ステートマシン29は、ステップS109及びステップS110の読み出し結果から、(C1)及び(C2)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする。
続いて、ステートマシン29は、(C4)リードを実行する(ステップS112)。ステップS112は、図8における時刻t11〜t12間の動作に対応する。さらに、ステップS112において、ステートマシン29は、ステップS110までの読み出し結果とステップS111の読み出し結果とから、(C2)及び(C3)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする。
続いて、ステートマシン29は、(C5)リードを実行する(ステップS113)。ステップS113は、図8における時刻t12〜t13間の動作に対応する。さらに、ステップS113において、ステートマシン29は、ステップS111までの読み出し結果とステップS112の読み出し結果とから、(C3)及び(C4)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする。
続いて、ステートマシン29は、(C6)リードを実行する(ステップS114)。ステップS114は、図8における時刻t13〜t14間の動作に対応する。さらに、ステップS114において、ステートマシン29は、ステップS112までの読み出し結果とステップS113の読み出し結果とから、(C4)及び(C5)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする。
続いて、ステートマシン29は、ステップS113までの読み出し結果とステップS114の読み出し結果とから、(C5)及び(C6)間に閾値があるメモリセルを抽出し、そのメモリセル数をカウントする(ステップS115)。続いて、ステートマシン29は、ステップS115までの結果を用いて、“C”レベルを読み出すための最適な読み出しレベル(CRレベル)を計算する(ステップS116)。計算アルゴリズムの一例は後述する。ステートマシン29は、ステップ116で計算した最適な読み出しレベルをレジスタ回路32に格納する。ステップS115及びステップS116は、図8の時刻t14〜t15間の動作に対応する。
続いて、ステートマシン29は、ステップS116で計算したワード線電圧(CRレベル)を用いて、“C”レベル最適値リードを実行する(ステップS117)。続いて、ステートマシン29は、ステップS117における読み出し結果を、先の“A”レベル最適値リードの結果と合わせてキャッシュXDLに格納する(ステップS118)。ステップS117及びステップS118は、図8の時刻t15〜t16間の動作に対応する。この段階で、データ出力の準備が完了する。
[1−2−2] キャッシュの操作
次に、キャッシュの操作について説明する。図11は、“A”レベル最適値探索リード及び“A”レベル最適値リードにおけるキャッシュの操作を説明する図である。図11には、図9及び図10のステップ毎に、ワード線電圧基準値、電圧差分、ステップ開始時点での各キャッシュの内容(XDL contents、ADL contents、BDL contents)、キャッシュに関わる主な動作(Required operation)、ステップ終了時点で格納される結果レジスタ(レジスタPF_1ST、PF_2ND、PF_3RD、PF_4TH)の内容を示している。図11に示した“w/”は、“with”を表している。
例えば、ステップS101の(A1)リードでは、ワード線に電圧“AR3−A_DELTA×4”が印加されて読み出しが実行され、読み出し終了時ではキャッシュADLに(A1)リードの結果が格納される。読み出し開始時点ではデータが未確定なので、これを横線“−”で示している。このとき、キャッシュBDLのデータは未確定で、結果レジスタの内容も未確定である。
別な例として、ステップS105の(A5)リードでは、ワード線に電圧AR3が印加されて読み出しが実行される。ステップS105の開始時点でキャッシュADLには、直前のステップS104の(A4)リードの結果が格納されており、キャッシュBDLには、ステップS103までの読み出し結果の累積が格納されている。ただし、キャッシュBDLの結果は必ずしも累積でなくてもよく、別な実施形態としては、ステップS103の結果が格納されている形態であってもよい。これは、読み出し電圧と閾値分布の結果とから、予期せぬノイズにより結果の一貫性が保たれなかった場合には前者の累積結果を、ノイズ成分を無視できるのであれば後者の形態を採用すればよい。
図12は、最適値探索リードによりキャッシュADLに格納されるデータの一例を説明する図である。図13は、図12に示した第1状態から第5状態におけるキャッシュSDL、ADL、XDL、及び記憶ノードTAGのデータの一例を説明する図である。第1状態から第5状態はそれぞれ、(A1)リードから(A5)リードの結果に対応する。0th区間(0th−)、1st区間(1st−)、2nd区間(2nd−)、3rd区間(3rd−)、4th区間(4th−)、及び5th区間(5th−)は、(A1)から(A5)で区切られる区間を表している。
図12に示すように、メモリセルの閾値が(A1)から(A5)のどの区間にあるかに応じて、キャッシュADLに格納されるデータが変わる。例えば、(A1)リードのワード線電圧で読み出すとき、0th区間(0th−)にあるメモリセルはデータ1を、1st区間(1st−)より高い閾値レベルにあるメモリセルはデータ0としてキャッシュADLにデータが格納される。別な例として、(A5)リードのワード線電圧で読み出すとき、0th区間にあるセル、1st区間にあるセル、2nd区間(2nd−)にあるセル、3rd区間(3rd−)にあるセル、4th区間(4th−)にあるセルは全てキャッシュADLにデータ1が、5th区間(5th−)にあるセルのみキャッシュADLにデータ0が格納される。
図11乃至図13を参照して、キャッシュBDLに格納される直前までの読み出しの結果を累積する方法とデータラッチの更新方法とについて具体的に説明する。
図11に示すように、ステップS101の(A1)リードでは、ワード線電圧として“AR3−A_DELTA×4”で計算される値を用いて読み出しが実行される。ステップS101では、センス結果がキャッシュSDLに保持される。読み出し開始時点では、キャッシュXDLのデータは確定しておらず、キャッシュADL、BDLについても同様である。また、結果レジスタについてもデータは確定していない。確定していないとは、何のデータが保持されていてもよいことを意味している。図11に示した“STB”は、キャッシュのデータを確定することを意味する。
続いて、ステップS102の(A2)リードでは、ワード線電圧として“AR3−A_DELTA×3”で計算される値を用いて読み出しが実行される。読み出し開始時点では、キャッシュXDL、ADL、BDLのデータは確定していない。また、結果レジスタについてもデータは確定していない。ステップS102では、キャッシュSDLのデータがキャッシュADLにコピーされ、キャッシュSDLは、次の(A2)リードの読み出し結果の格納に備える。
ステップS102での各キャッシュのデータ状態は、図12及び図13の第1状態である。第1状態について具体的に説明すると、キャッシュADLには、各メモリセルの1ビットのデータ状態が反映されるが、0th区間にある閾値のメモリセルについてはデータ1が、1st区間よりも高い閾値にあるメモリセルについてはデータ0が格納される。
続いて、ステップS103の(A3)リードでは、ワード線電圧として“AR3−A_DELTA×2”で計算される値を用いて読み出しが実行される。読み出し開始時点では、キャッシュXDL、BDLのデータは確定していない。また、結果レジスタについてもデータは確定していない。ステップS103では、キャッシュADLのデータがキャッシュBDLにコピーされ、キャッシュADLには、ステップS102で確定した(A2)リードの読み出し結果がキャッシュSDLからキャッシュADLにコピーされる。この時点での各キャッシュのデータ状態は図12及び図13の第2状態である。
さらに動作は続き、ステートマシン29は、キャッシュADLとキャッシュBDLとのデータから、そのデータの一致しない箇所を抽出、不一致を示すデータを記憶ノードTAGにコピーする。記憶ノードTAGの内容は、フェイル数カウント回路33によって参照される。ここで、キャッシュADLとキャッシュBDLとのデータから、そのデータの一致しない箇所を抽出とは、(A1)リードで読み出したときと、(A2)リードで読み出したときとでデータが異なるビットを抽出することである。つまり、(A1)と(A2)との間の1st区間に閾値があるメモリセルであり、これを計数することにより、この1st区間に閾値があるメモリセルのビット数を計数することができる。この処理は、図11の“TAG=ADL&/BDL”、及び“All 0 detection”で示される。
フェイル数カウント回路33は、記憶ノードTAG内の一致しない箇所の数、すなわち不一致ビットの数を、前記フェイルビット基準値F_NFと比較し、比較の結果、F_NFより不一致ビット数が多いと判断されたときはFailを、F_NFと同数がそれ未満の不一致ビット数と判断された場合はPassをそれぞれ結果レジスタに格納する。この結果の保持方法は後述する。
続いて、ステップS104の(A4)リードでは、ワード線電圧として“AR3−A_DELTA×1”で計算される値を用いて読み出しが実行される。読み出し開始時点では、キャッシュXDLのデータは確定していない。キャッシュADLには、(A2)リードの読み出し結果が保持される。キャッシュBDLには、(A1)リードの読み出し結果が保持され、結果レジスタには、ステップS103で計数した結果が保持される。
ステップS104では、キャッシュADLのデータがキャッシュBDLにコピーされ、キャッシュADLには、ステップS103で確定した(A3)リードの読み出し結果がキャッシュSDLからキャッシュADLにコピーされる。この時点での各キャッシュのデータ状態は、図13の第3状態である。
さらに動作は続き、ステートマシン29は、キャッシュADLとキャッシュBDLとのデータから、そのデータの一致しない箇所を抽出、すなわち、(A2)と(A3)との間の2nd区間に閾値があるメモリセルを抽出、これを前記同様、記憶ノードTAGにコピーして、不一致ビットの計数を行う。結果についても前記同様に結果レジスタに保持する。
続いて、ステップS105の(A5)リードでは、ワード線電圧AR3を用いて読み出しが実行される。読み出し開始時点では、キャッシュXDLのデータは確定していない。キャッシュADLには、(A3)リードの読み出し結果が保持され、キャッシュBDLには、(A2)リードの読み出し結果が保持され、結果レジスタには、ステップS104で計数した結果が保持される。
ステップS105では、キャッシュADLのデータがキャッシュBDLにコピーされ、キャッシュADLにはステップS104で確定した(A4)リードの読み出し結果がキャッシュSDLからキャッシュADLにコピーされる。この時点での各キャッシュのデータ状態は、図13の第4状態である。
さらに動作は続き、ステートマシン29は、キャッシュADLとキャッシュBDLとのデータから、そのデータの一致しない箇所を抽出、すなわち、(A3)と(A4)との間の3rd区間に閾値があるメモリセルを抽出、これを前記同様、記憶ノードTAGにコピーして、不一致ビット数の計数を行う。結果についても前記同様に、結果レジスタに保持する。
続いて、ステップS106において、ステートマシン29は、フェイルビット数の計数を行う。動作開始時点で、キャッシュXDLのデータは確定していない。キャッシュADLには、(A4)リードの読み出し結果が保持され、キャッシュBDLには、(A3)リードの読み出し結果が保持され、結果レジスタには、ステップS105で計数した結果が保持される。
ステップS106では、キャッシュADLのデータがキャッシュBDLにコピーされ、キャッシュADLにはステップS105で確定した(A5)リードの読み出し結果がキャッシュSDLからキャッシュADLにコピーされる。この時点での各キャッシュのデータ状態は、図13の第5状態である。
さらに動作は続き、ステートマシン29は、キャッシュADLとキャッシュBDLとのデータから、そのデータの一致しない箇所を抽出、すなわち、(A4)と(A5)との間の4th区間に閾値があるメモリセルを抽出、これを前記同様、記憶ノードTAGにコピーして、不一致ビット数の計数を行う。結果についても前記同様、結果レジスタに保持する。この時点での各キャッシュのデータ状態は、図13の第6状態である。
[1−2−3] ステートマシンのレジスタ構成
次に、フェイルビット基準値F_NFと、その結果の保持方法について説明する。図14は、ステートマシン29内に配置されるレジスタの回路図である。
フェイル数カウント回路33の出力信号PASSは、ステートマシン29に入力され、そのステートマシン29内に配置されるレジスタに格納される。ステートマシン29は、4つのレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THを備える。
フェイル数カウント回路33からの信号PASSは、1段目のレジスタPF_4THに入力され、レジスタPF_4THは、図示せぬクロックタイミングで信号PASSのデータを保持及び出力する。レジスタPF_4THの出力は、2段目のレジスタPF_3RDに入力され、レジスタPF_3RDは、図示せぬクロックタイミングでそのデータを保持及び出力する。
レジスタPF_3RDの出力は、3段目のレジスタPF_2NDに入力され、レジスタPF_2NDは、図示せぬクロックタイミングでそのデータを保持及び出力する。レジスタPF_2NDの出力は、4段目のレジスタPF_1STに入力され、レジスタPF_1STは、図示せぬクロックタイミングでそのデータを保持及び出力する。
図14のようにレジスタ群を構成することで、各レジスタに供給されるクロックタイミングに応じて、信号PASSが順次直列構成された4つのレジスタにバケツリレー式に送られる。最終的に、4回のクロックに応答して、4回の結果をステートマシン29内に保持できる。この4回のクロックは、レジスタPF_1ST、PF_2ND、PF_3RD、PF_4THにおけるデータの確定と同期し、ステップS106での結果がレジスタPF_4THに保持され、ステップS105での結果がレジスタPF_3RDに保持され、ステップS104での結果がレジスタPF_2NDに保持され、ステップS103での結果がレジスタPF_1STに保持される。
また、レジスタPF_1ST、PF_2ND、PF_3RD、PF_4THの結果は、図2に示すように、装置の入出力ピンIO<7:0>に出力できる。具体的には、コマンドデコーダ25は、入力バッファ21を介して受け取った命令を解釈し、信号CMD_TRACKRESULTを活性化する。これにより、選択回路27は、センスユニット13からの出力ではなく、ステートマシン29のレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THに保持されたデータのうちいずれかまたは全部を伝達する信号PFを選択するように構成される。信号PFは出力バッファ23を介して入出力ピンIO<7:0>に出力される。このように、装置内部にて最適値探索を実行した結果を出力することで、後に探索リード結果に疑義が生じた場合の解析や再探索のための情報として利用される。
[1−3] 最適値リードの具体例
図15は、(A1)リードから(A5)リードの各読み出し結果の一例を示している。具体的には、図15の下側の図は、(A1)リードから(A5)リードの各読み出し結果におけるデータ0のビット数(Vth − ♯ of 0 bits)を示し、図15の上側の図は、(A1)リードから(A5)リードの各区間に閾値があるメモリセル数(Vth − Distribution)を示している。また、図15の上側の図は、ある基準値(Fail bit criteria: F_NF)と比較した結果(PassまたはFail)も示している。読み出し結果は、図14のレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THに格納される。
ここで、Passとは、フェイルビット基準値F_NF以下のセルがあることを示し、Failとは、フェイルビット基準値F_NFを超えるセルがあることを示す。より具体的には、PassのときはレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THにそれぞれデータ1が、FailのときはレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THにそれぞれデータ0が格納される。
4つのレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THの結果に基づいて、最適な読み出しレベルを決める判断テーブルの一例を図16に示す。必ずしもこの判断に限定されるものではなく、例えば複数の基準によって判断される例も採用できる。別の実施例については後述する。
4つレジスタPF_1ST、PF_2ND、PF_3RD、PF_4THのデータに対して、判断結果は16通りある。例えば、図15の例を用いると、PF_1ST=1、PF_2ND=1、PF_3RD=1、PF_4TH=0であるので、(A1)、(A2)、(A3)のいずれもPassで基準値以下であると判断されるが、例えばマージンを考慮して(A1)が最適と判断される。PF_1ST=1、PF_2ND=0、PF_3RD=1、PF_4TH=0の場合、分布形状にノイズ成分が多く、最適と判断される読み出しレベルが無い(最適値が見つからない)と判断される。
そのほか図示せぬが、レジスタPF_1ST、PF_2ND、PF_3RD、PF_4THの複数の信号状態の平均を取る方法もある。PF_1ST=1、PF_2ND=1、PF_3RD=1、PF_4TH=0の場合、PF_2NDが中央の値であることから(A2)が最適であるとしてもよい。
他の例として、図示せぬが、PF_1ST=1、PF_2ND=0、PF_3RD=1、PF_4TH=1の場合、閾値分布の移動方向が閾値が低い方向になることを考慮してPF_1STの結果を採用、すなわち(A1)が最適であると判断してもよい。あるいは、連続してPF_3RD=1、PF_4TH=1となっていることから、(A4)が最適であると判断してもよい。要は、複数の結果レジスタから最適と判断される点を探索する方法を具備すればよい。
さらに他の例として、PF_1ST乃至PF_4THの結果から、最適である判断点が例えば(A1)と(A2)との中間にあった場合は、(A1)と(A2)との中間電圧が最適であると判断してもよい。すなわち、(A1)〜(A5)と全く同じ電圧を使用せず、(A1)〜(A5)に基づいて修正された最適値を用いるようにしてもよい。要は、複数の結果レジスタの結果に関連して最適と判断される電圧を選択できる方法を具備すればよい。
[1−4] コマンドシーケンス
図17は、探索リードにおけるコマンドシーケンスを説明する図である。
リードコマンド“00h”に先立って、メモリコントローラ200は、“A”レベル最適値探索リードの精度情報をNAND型フラッシュメモリ100に送る。具体的には、メモリコントローラ200は、リード用プリセットコマンド“55h”、アドレス“A1”、データ“D1”をNAND型フラッシュメモリ100に送る。アドレス“A1”は、“A”レベル用の精度情報を格納する記憶領域を指定するアドレスである。データ“D1”は、“A”レベル最適値探索リードの精度情報である。
精度情報には、複数回の最適値探索リードを行うにあたって、各回で変えるワード線電圧レベル(例えば50mV)の情報、複数回実行する読み出しの回数の情報、(A1)リードに相当する電圧(すなわち、最初の最適値探索リードにおけるワード線電圧の情報)などが含まれる。その他の情報を与えることも可能である。
続いて、メモリコントローラ200は、“B”レベル最適値探索リードの精度情報をNAND型フラッシュメモリ100に送る。具体的には、メモリコントローラ200は、リード用プリセットコマンド“55h”、アドレス“A2”、データ“D2”をNAND型フラッシュメモリ100に送る。アドレス“A2”は、“B”レベル用の精度情報を格納する記憶領域を指定するアドレスである。
続いて、メモリコントローラ200は、“C”レベル最適値探索リードの精度情報をNAND型フラッシュメモリ100に送る。具体的には、メモリコントローラ200は、リード用プリセットコマンド“55h”、アドレス“A3”、データ“D3”をNAND型フラッシュメモリ100に送る。アドレス“A3”は、“C”レベル用の精度情報を格納する記憶領域を指定するアドレスである。
続いて、メモリコントローラ200は、前記フェイルビット基準値F_NFをNAND型フラッシュメモリ100に送る。具体的には、メモリコントローラ200は、リード用プリセットコマンド“55h”、アドレス“A4”、データ“D4”をNAND型フラッシュメモリ100に送る。アドレス“A4”は、フェイルビット基準値F_NFを格納する記憶領域を指定するアドレスである。データ“D4”は、フェイルビット基準値F_NFのコードである。
続いて、メモリコントローラ200は、最適値探索リードを実行するモードコマンド“XXh”をNAND型フラッシュメモリ100に送る。
続いて、メモリコントローラ200は、リードコマンドを発行する。具体的には、メモリコントローラ200は、リードコマンド“00h”、カラムアドレス“C1”、“C2”、ロウアドレス“R1”、“R2”、“R3”、及び実行コマンド“30h”をNAND型フラッシュメモリ100に送る。
リードコマンドを受けて、NAND型フラッシュメモリ100は、RBn=0、すなわちビジー信号を出力し、リードコマンドに応じた読み出し動作を実行する。この読み出し動作では、最適値探索リードを経て最適と判断された読み出しレベルを用いた最適値リードが行われる。
読み出し動作が終了した後、NAND型フラッシュメモリ100は、RBn=1を出力し、最適値読み出し結果“RD1”、“RD2”、“RD3”をメモリコントローラ200に送る。図17のコマンドシーケンスは一例であり、同様の結果を得られるのであればその他の形態であってもよい。例えば、前記リードコマンド“00h”に先だってNAND型フラッシュメモリ100に送られる情報の一部または全部は、適宜省略してもよい。
[1−5] 探索リードにおける読み出し対象
図18は、最適値探索リードと最適値リードとの読み出し対象の差異を説明する図である。図18には、センスユニット13を6ビット線分だけ抽出して示している。図18に示した3つのDLは、キャッシュADL、BDL、XDLに対応する。
本実施形態では、最適値探索リードは短い時間で正確に読み出すことが求められるため、最適値探索リードは可能な限り短いタイミングで、最適値リードは通常読み出しと同様のタイミングで読み出すことが要求される。各ビット線BLにはセンスアンプS/Aが1対1で接続される。センスアンプS/Aは、ビット線BLに接続されるメモリセルが導通状態か否かを判定する際に、定常的電流をビット線BLに流し続けることでセル状態を判定する。
ここで、最適値探索リードは、複数のビット線BLにおいて交互にセンスアンプS/Aをオン/オフする形態を採用する。より具体的には、ビット線BL0はセンス対象としてセンスアンプをオン状態、ビット線BL1はセンス非対象としてセンスアンプをオフ状態にする。オフ状態のセンスアンプに接続されるビット線には、例えば接地電圧Vssが印加される。
この形態から得られる特徴としては、通常電流センスを行う場合は、隣接ビット線の電圧変動で起きるノイズがセンス結果に影響しないよう、一定の安定化待ち時間が必要とされている。しかし、本実施形態では、隣接ビット線はシールド線として使用することとし、ノイズを抑制する。
1本ごとにシールド線を置く形態がノイズ抑制効果に不足する場合は、4本のビット線BLを組みにして、そのうちの一本を最適値探索リードのセンス対象としてセンスアンプをオン状態、それ以外の3本をセンス非対象としてセンスアンプをオフ状態にする形態であってもよい。センスアンプをオン状態及びオフ状態のいずれかに設定する制御は、図2に示すメモリセル制御レジスタ30によって行われる。
[1−6] 実施形態の効果
本実施形態では、読み出し動作において、最適値探索リード及び最適値リードを組み合わせた探索リードを実行する。最適値探索リードでは、複数の読み出しレベルを用いて読み出しを実行する。そして、最適値探索リードの結果を用いて、最適な読み出しレベル(ワード線電圧)を判定し、この最適な読み出しレベルを用いて最適値リードを行うようにしている。
よって、本実施形態では、読み出し性能を向上させることが可能なNAND型フラッシュメモリ100を実現できる。具体的には、NAND型フラッシュメモリ100に格納されたデータをより正確に読み出すことが可能となる。特に、データを長期保存した場合でも、より正確に読み出し動作を行うことが可能である。
また、最適値探索リードを全ビット線で行うのではなく、例えば1本おきのビット線に対して最適値探索リードを行うようにしている。これにより、最適値探索リードをデータ間引きにより高速に行うことで、探索リードの時間を短縮することができる。もちろん、最適値探索リードにかかる時間に余裕が与えられる場合は、後述する最適値探索リードを単独で行う場合同様、キャッシュADL、キャッシュBDL、あるいはそのほか必要な数のキャッシュを用いて実現可能な情報圧縮をすることで、最適値リードと同様の対象データ範囲とすることは妨げない。
また、メモリシステム1に一部機能を実装することで探索リードを行う、という一命令で最適な読み出しを実施することができる。これにより、より少ない機能追加で最適値探索リード及び最適値リードを実現できる。ただ、この一部機能の実装には、装置面積が増加するという問題があるが、従来機能を大きく流用することで、この問題の影響を最小限にすることができる。
[2] 第1変形例
図7においては、“A”レベル最適値探索リードを5回、“C”レベル最適値探索リードを6回行う形態を示している。この回数は、探索リードの目的や実施時間に応じて変更してよく、その組合せは適宜変更することができる。
また、“A”レベル最適値探索リードの回数と“C”レベル最適値探索リードの回数とは同じであってもよいし、異なっていてもよい。メモリセルの各閾値レベルによってデータ保持特性が異なることは容易に想像でき、それに伴って変更することは可能である。
[3] 第2変形例
図6においては、1セルに2ビットを記憶する形態を示している。もちろんこれに限定されず、1セルに3ビットを記憶する形態、1セルに4ビット以上を記憶する形態、もしくは複数セルを用いて、1以上の整数のビットを記憶する形態であってもよい。
読み出しに必要な閾値レベル、読み出し回数を必要に応じてNAND型フラッシュメモリ100に与え、例えば図9及び図10のフロー、及び図14に示す読み出し結果を格納するレジスタの数を必要に応じて増減することが可能である。
また、図14に示す探索リード命令にかかる命令の種類や与えるデータも必要に応じて増減することが可能である。
[4] 第3変形例
図11乃至図13においては、最適値探索リード時、複数の読み出しレベルで読み出した場合に、各電圧区間に閾値があるメモリセルのビット数を計数するアルゴリズムについて説明した。特に図11においては、Required operationとして、フローチャートの各ステップに必要とされるキャッシュの演算の具体例を示した。
理想的にはこの演算方法で正しく最適値を探して決定することができるが、現実的には読み出し動作においては、特に読み出しレベルとセル閾値とが近接する場合には、さまざまなノイズを受けてその読み出し結果が不確定になる場合がある。その場合、図15のような理想的な分布形状にならず、最適値の誤判定につながり、最終的には探索リードの誤りにつながる。
この点を鑑みて、図19では、図11のRequired operationを変更した例を示す。ここでは、ステップS104、S105、S106において実行される動作を一部変更している。ステップS104、S105、S106において、ステートマシン29は、キャッシュADLのデータとキャッシュBDLの反転データとのAND演算を行い、この演算結果をキャッシュBDLに格納する。
これにより、キャッシュBDLには常に前回までの最適値探索リードの結果が残る。より具体的には、直前までの最適値探索リードの結果、該当セルが一度でも変化、すなわち低いワード線電圧から読み出したときに1セルから0セルであると判定されたら、以降はノイズ等により再び1セルと読み出された場合であってもその結果はキャッシュに反映されず、よって最適値判定の結果にも関与しない。ノイズ成分の打ち消しを行う簡便な方法を利用することにより、探索リードの誤り率を減らすことができる。
[5] 第4変形例
図17では、最適値探索リードと最適値リードとを、1つの命令にて連続的に実施し、NAND型フラッシュメモリ100のレディー/ビジーピンRBnがレディー状態、すなわち即時読み出しが可能な状態となることを示した。
しかしながら、先の探索リードの誤りの問題、及び図1の形態にシステムを組み上げた後に、その最適値計算アルゴリズムを変更するには困難が伴う。第4変形例は、この点を鑑みて、他の形態を開示する。図20は、第4変形例に係る最適値探索リード及び最適値リードを説明するフローチャートである。
メモリコントローラ200は、最適値探索リードの精度情報をNAND型フラッシュメモリ100に送る(ステップS201)。精度情報には、開始ワード線電圧(最初の最適値探索リードにおけるワード線電圧情報)、ステップ電圧、及びステップ回数が含まれる。その他の情報を与えることも可能である。ステップS201は、例えば、図17で説明したリード用プリセットコマンド“55h”を用いて行われる。続いて、NAND型フラッシュメモリ100は、最適値探索リードの精度情報を所定のレジスタに格納する(ステップS202)。
続いて、メモリコントローラ200は、最適値探索リードを実行するモードコマンドをNAND型フラッシュメモリ100に送る(ステップS203)。続いて、NAND型フラッシュメモリ100は、最適値探索リードを実行する(ステップS204)。
図21は、最適値探索リードにおける読み出しレベルを説明する図である。ステートマシン29は、R1レベルからRnレベルまで(nは3以上の自然数)複数回の読み出しを行う。読み出しにより、セルの閾値がセンスアンプS/Aによって判定され、その結果がデータ1又はデータ0としてキャッシュに格納される。
図22は、NAND型フラッシュメモリ100の最適値探索リードを説明するフローチャートである。図23は、キャッシュXDLのデータを説明する図である。
ステートマシン29は、読み出しレベルとしてR1レベルでメモリセルのデータを読み出す(ステップS301)。その結果は、適切なキャッシュに格納される。
続いて、ステートマシン29は、R2レベルでメモリセルのデータを読み出す。その結果は、ステップS301の結果を失わないよう、適切なキャッシュに格納される。続いて、ステートマシン29は、R1リード及びR2リードの結果を用いて、読み出し結果が変わったビット、すなわちR1とR2との区間に閾値があるメモリセル数を計数する。そして、この結果を例えばキャッシュXDLのカラム番地0に格納する(ステップS302)。
ある区間に閾値があるメモリセル数を計数する手段は、例えば図2に示すフェイル数カウント回路33を用いることができる。その他の装置内部にある手段を用いてもよい。また、結果の格納場所はカラム番地0に限らないが、要は、読み出しレベルとカラム番地との対応関係が一意に決まればその方法は問わない。キャッシュXDLは通常1番地あたり8ビットで構成されるが、計数結果は2バイトを用いてもよく、さらには、データに信頼性を持たせるために、冗長構成、パリティデータ、及び多数決判定などの構成を持っていてもよい。
続いて、ステートマシン29は、R3レベルでメモリセルのデータを読み出す。その結果は、ステップS302の結果を失わないよう、適切なキャッシュに格納される。続いて、ステートマシン29は、R2リード及びR3リードの結果を用いて、読み出し結果が変わったビット、すなわちR2とR3との区間に閾値があるメモリセル数を計数する。そして、この結果を例えばキャッシュXDLのカラム番地1に格納する(ステップS303)。
上記の制御を繰り返し、ステートマシン29は、Rnレベルでメモリセルのデータを読み出す。その結果は、直前のステップの結果を失わないよう、適切なキャッシュに格納される。続いて、ステートマシン29は、R(n−1)リード及びRnリードの結果を用いて、読み出し結果が変わったビット、すなわちR(n−1)とRnとの区間に閾値があるセル数を計数する。そして、この結果を例えばキャッシュXDLのカラム番地(n−2)に格納する(ステップS305)。そして、最適値探索リードを終了する。
図20に戻り、NAND型フラッシュメモリ100は、メモリコントローラ200にレディー状態を通知、つまり最適値探索リードが終わったことを通知する(ステップS205)。続いて、メモリコントローラ200は、キャッシュのデータを読み出すためのコマンド(キャッシュリードコマンド)をNAND型フラッシュメモリ100に発行する(ステップS206)。これに応答して、NAND型フラッシュメモリ100は、キャッシュXDLのデータ(最適値探索リードの結果)をメモリコントローラ200に出力する(ステップS207)。
続いて、メモリコントローラ200は、最適値探索リードの結果を用いて、“A”レベル、“B”レベル、及び“C”レベルの少なくとも1つの最適値を判定する(ステップS208)。この判定動作は、例えば、図16と同じである。
続いて、メモリコントローラ200は、ステップS208で決定した最適値を用いて、リードコマンドをNAND型フラッシュメモリ100に発行する(ステップS209)。これに応答して、NAND型フラッシュメモリ100は、最適値リードを実行する(ステップS210)。その後、メモリコントローラ200は、NAND型フラッシュメモリ100から読み出しデータを受ける(ステップS211)。
第4変形例は、ある区間に閾値があるメモリセル数を計数した結果をキャッシュXDLに格納する点で前記実施形態とは異なる。第4変形例では、装置に予め固定した最適値決定アルゴリズムしか使用できなかった点を考慮し、装置は計数結果のみを格納、すなわち最適値探索リードのみを実行、その結果を図1のメモリコントローラ200へ送信、又はメモリコントローラ200の命令に従い出力する。そして、メモリコントローラ200の判断により最適値リード命令が再び与えられる、という点に特徴がある。
図24は、第4変形例に係るキャッシュXDLのデータの具体例を説明する図である。読み出しレベルとしてR1レベルからR9レベルの9回の読み出しが行われる。
区間R1−R2に閾値があるメモリセルを計数した結果がカラム番地0に格納され、区間R2−R3に閾値があるメモリセルを計数した結果がカラム番地1に格納される。例えば、カラム番地0には、64ビット(40h)のメモリセルがあると判定された結果が格納される。カラム番地1には、255ビット(FFh)と表記されているが、フェイル数カウント回路33には計数可能な上限があることがあり、ここでは255ビット以上のメモリセルがあると判定された結果が格納される。さらに同様にカウントしていくと、区間R5−R6には128ビット(80h)、区間R6−R7には16ビット(10h)、区間R7−R8には24ビット(18h)、区間R8−R9には255ビット以上のメモリセルがあると判定された結果が格納される。
第4変形例では、前述のとおり、装置に予め固定した最適値決定アルゴリズムしか使用できなかった点を改善し、メモリコントローラ200に構成されるファームウェアに最適値判断を委譲する。一般的にファームウェアはNAND型フラッシュメモリ100とメモリコントローラ200とを含むシステムを構成後にも書き換え及び変更ができる利点を生かし、最適な構成を選択する自由度が得られる。
第4変形例を実現するNAND型フラッシュメモリ100の構成例を図25に示す。フェイル数カウント回路33から、センスユニット13へ向けてフェイルビットを通知する信号が追加される。フェイル数カウント回路33は、フェイルビット数をカウントした結果を、センスユニット13内のキャッシュに転送できる。
[6] 第5変形例
第4変形例では、最適値探索リードのみが独立したコマンドで実行される。その後、別のコマンドで別途最適値リードが実行される。これに鑑みて、最適値探索リードは、図18に示すようにビット線BLを間引いて実施するのではなく、最適値リードと同様に、全ビット線に対して行うようにしてもよい。その結果は、キャッシュADL、BDLを駆使して情報圧縮するようにしてもよい。第5変形例を実施する場合は、必要なキャッシュを図4に示す構成ではなく、最適な数に変更することができる。
[7] 第6変形例
1つのメモリセルトランジスタが2ビットデータを保持する場合、その閾値電圧は、保持データに応じて4種類のレベルのいずれかを取る。4種類のレベルを低い方から順に、消去レベル、Aレベル、Bレベル、及びCレベルとした場合、Aレベルの読み出し動作時に選択ワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V,0.21V〜0.31V,0.31V〜0.4V,0.4V〜0.5V,0.5V〜0.55V等のいずれかの間であってもよい。Bレベルの読み出し時に選択ワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V,1.8V〜1.95V,1.95V〜2.1V,2.1V〜2.3V等のいずれかの間であってもよい。Cレベルの読み出し動作時に選択ワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V,3.2V〜3.4V,3.4V〜3.5V,3.5V〜3.6V,3.6V〜4.0V等のいずれかの間であってもよい。読み出し動作の時間(tR)としては、例えば25μs〜38μs,38μs〜70μs,70μs〜80μs等のいずれかの間であってよい。
書き込み動作は、プログラムとプログラムベリファイとを含む。書き込み動作においては、プログラム時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V,14.0V〜14.6V等のいずれかの間であってもよい。奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを異ならせてもよい。プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間であってもよい。これに限定されることなく、例えば7.3V〜8.4Vの間であってもよく、6.0V以下であってもよい。非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかにより、印加するパス電圧を異ならせてもよい。書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs,1800μs〜1900μs,1900μs〜2000μsの間であってよい。
消去動作においては、半導体基板上部に配置され、かつ、メモリセルが上方に配置されたウェルに最初に印加される電圧は、例えば12V〜13.6Vの間である。これに限定されることなく、例えば13.6V〜14.8V,14.8V〜19.0V,19.0V〜19.8V,19.8V〜21V等のいずれかの間であってもよい。消去動作の時間(tErase)としては、例えば3000μs〜4000μs,4000μs〜5000μs,4000μs〜9000μsの間であってよい。
また、メモリセルは、例えば以下のような構造であってもよい。メモリセルは、シリコン基板等の半導体基板上に膜厚が4nm〜10nmのトンネル絶縁膜を介して配置された電荷蓄積膜を有する。この電荷蓄積膜は、膜厚が2nm〜3nmのシリコン窒化(SiN)膜、またはシリコン酸窒化(SiON)膜などの絶縁膜と、膜厚が3nm〜8nmのポリシリコン(Poly−Si)膜との積層構造にすることができる。ポリシリコン膜には、ルテニウム(Ru)などの金属が添加されていてもよい。メモリセルは、電荷蓄積膜の上に絶縁膜を有する。この絶縁膜は、例えば膜厚が3nm〜10nmの下層High−k膜と、膜厚が3nm〜10nmの上層High−k膜とに挟まれた、膜厚が4nm〜10nmのシリコン酸化(SiO)膜を有する。High−k膜の材料としては、酸化ハフニウム(HfO)などが挙げられる。また、シリコン酸化膜の膜厚は、High−k膜の膜厚よりも厚くすることができる。絶縁膜上には、膜厚が3nm〜10nmの仕事関数調整用の膜を介して、膜厚が30nm〜70nmの制御電極が設けられる。ここで仕事関数調整用膜は、例えば酸化タンタル(TaO)などの金属酸化膜、窒化タンタル(TaN)などの金属窒化膜等である。制御電極には、タングステン(W)などを用いることができる。メモリセル間にはエアギャップを配置することができる。
なお、本実施形態では、基板上に複数のメモリセルが積層された三次元積層不揮発性半導体記憶装置を例に説明しているが、これに限定されず、複数のメモリセルが平面状に配置された二次元不揮発性半導体記憶装置に適用することも可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、10…コア部、11…セルアレイ、12…ロウデコーダ、13…センスユニット、14…NANDストリング、20…周辺回路、21,22…入力バッファ、23,31…出力バッファ、24…アドレスバッファ、25…コマンドデコーダ、26…データバッファ、27,28…選択回路、29…ステートマシン、30…メモリセル制御レジスタ、32…レジスタ回路、33…フェイル数カウント回路、40…センスアンプ、100…NAND型フラッシュメモリ、200…メモリコントローラ、201…ホストインターフェース回路、202…CPU、203…RAM、204…バッファメモリ、205…NANDインターフェース回路、206…ECC回路、300…ホスト装置。

Claims (4)

  1. 複数のメモリセルを備え、前記複数のメモリセルの各々は、第1閾値及び第2閾値のうち1つに設定可能である、メモリセルアレイと、
    前記複数のメモリセルに接続されたワード線と、
    前記ワード線に電圧を印加してメモリセルのデータを読み出し、第1命令に応答して、第1読み出しシーケンスと第2読み出しシーケンスとを連続して実行するコントローラと を具備し、
    前記第1読み出しシーケンスは、互いに異なる第1乃至第3電圧をそれぞれ用いた第1乃至第3読み出しを含み、
    前記第2読み出しシーケンスは、前記第1読み出しシーケンスに基づいて決定されかつ前記第1乃至第3電圧から計算される電圧を用いた第4読み出しを含み、
    前記コントローラは、
    前記第1読み出しの結果と前記第2読み出しの結果とを比較して第1差分を算出し、
    前記第2読み出しの結果と前記第3読み出しの結果とを比較して第2差分を算出し、
    前記第1差分と基準値とを比較した結果を第1レジスタに格納し、
    前記第2差分と前記基準値とを比較した結果を第2レジスタに格納し、
    前記第1及び第2レジスタの情報に基づいて、前記第4読み出しで使用される電圧を決定することを特徴とする不揮発性半導体記憶装置。
  2. 前記第1読み出しシーケンスにおける読み出し対象のビット数は、前記第2読み出しシーケンスにおける読み出し対象のビット数より少ないことを特徴とする請求項1に記載の不揮発性半導体記憶装置。
  3. 前記コントローラは、第2命令に応じて、前記第1及び第2レジスタの情報を出力ピンから外部に出力することを特徴とする請求項1又は2に記載の不揮発性半導体記憶装置。
  4. 前記第1読み出しシーケンスにおいて、前記ワード線に、連続して複数の電圧が印加され、
    前記第2読み出しシーケンスにおいて、前記ワード線に、前記複数の電圧の1つが印加されることを特徴とする請求項1乃至3のいずれかに記載の不揮発性半導体記憶装置。
JP2016040065A 2016-03-02 2016-03-02 不揮発性半導体記憶装置 Active JP6545631B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016040065A JP6545631B2 (ja) 2016-03-02 2016-03-02 不揮発性半導体記憶装置
US15/331,606 US9875804B2 (en) 2016-03-02 2016-10-21 Nonvolatile semiconductor memory device with read voltage setting controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016040065A JP6545631B2 (ja) 2016-03-02 2016-03-02 不揮発性半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2017157259A JP2017157259A (ja) 2017-09-07
JP6545631B2 true JP6545631B2 (ja) 2019-07-17

Family

ID=59723538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016040065A Active JP6545631B2 (ja) 2016-03-02 2016-03-02 不揮発性半導体記憶装置

Country Status (2)

Country Link
US (1) US9875804B2 (ja)
JP (1) JP6545631B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190090268A (ko) * 2018-01-24 2019-08-01 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR102524923B1 (ko) 2018-06-20 2023-04-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102535110B1 (ko) * 2018-10-01 2023-05-23 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102651129B1 (ko) * 2018-12-21 2024-03-26 삼성전자주식회사 메모리 장치의 데이터 재기입 방법, 상기 메모리 장치를 제어하는 메모리 컨트롤러 및 상기 메모리 컨트롤러의 제어 방법
JP2020149745A (ja) 2019-03-13 2020-09-17 キオクシア株式会社 半導体記憶装置
CN111752768B (zh) * 2019-03-29 2024-01-23 华邦电子股份有限公司 存储器装置及其错误检测方法
WO2021011582A1 (en) * 2019-07-14 2021-01-21 NEO Semiconductor, Inc. Methods and apparatus for reading nand flash memory
JP6886547B1 (ja) * 2020-05-13 2021-06-16 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置およびecc関連情報の読出し方法
KR20240015986A (ko) * 2022-07-28 2024-02-06 에스케이하이닉스 주식회사 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4945187B2 (ja) * 2006-07-31 2012-06-06 株式会社東芝 半導体記憶装置
KR101017847B1 (ko) 2006-11-03 2011-03-04 쌘디스크 코포레이션 가변 판독 임계값을 갖는 비휘발성 메모리
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
KR100888842B1 (ko) * 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US7948802B2 (en) 2007-12-04 2011-05-24 Micron Technology, Inc. Sensing memory cells
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 三次元積層不揮発性半導体メモリ
KR101391362B1 (ko) * 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
US8446787B2 (en) 2008-11-20 2013-05-21 Micron Technology, Inc. Replacing defective memory blocks in response to external addresses
JP2010199235A (ja) 2009-02-24 2010-09-09 Toshiba Corp 不揮発性半導体記憶装置
US8451664B2 (en) 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
JP2012069205A (ja) 2010-09-22 2012-04-05 Toshiba Corp 不揮発性半導体記憶装置
JP2012252740A (ja) 2011-06-02 2012-12-20 Toshiba Corp 不揮発性半導体記憶装置
JP2013122804A (ja) 2011-12-12 2013-06-20 Toshiba Corp 半導体記憶装置
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
KR101939234B1 (ko) * 2012-07-23 2019-01-16 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
KR20140072637A (ko) * 2012-12-05 2014-06-13 삼성전자주식회사 비휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
KR102397016B1 (ko) * 2014-11-24 2022-05-13 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US9875804B2 (en) 2018-01-23
US20170255385A1 (en) 2017-09-07
JP2017157259A (ja) 2017-09-07

Similar Documents

Publication Publication Date Title
JP6545631B2 (ja) 不揮発性半導体記憶装置
US10643693B2 (en) Semiconductor memory device and memory system
US10643715B2 (en) Semiconductor memory device and memory system configured to perform tracking read on first memory cells followed by shift read on second memory cells using read voltage correction value determined during the tracking read
TWI529729B (zh) Semiconductor memory device, controller, memory system and access to semiconductor memory device management information method
TWI698869B (zh) 半導體記憶裝置
JP2018142388A (ja) 半導体記憶装置及びメモリシステム
US8902674B2 (en) Semiconductor memory device and method of reading out the same
TW201826269A (zh) 半導體記憶裝置
US10726911B2 (en) Memory system
JP2017208152A (ja) 半導体記憶装置及びメモリシステム
US11430525B2 (en) Memory device
JP2019040655A (ja) メモリシステム
JP2013246849A (ja) メモリシステム
US20190080763A1 (en) Semiconductor memory device and memory system
JP2013025826A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180201

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190619

R150 Certificate of patent or registration of utility model

Ref document number: 6545631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350