JP2020119618A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2020119618A
JP2020119618A JP2019008005A JP2019008005A JP2020119618A JP 2020119618 A JP2020119618 A JP 2020119618A JP 2019008005 A JP2019008005 A JP 2019008005A JP 2019008005 A JP2019008005 A JP 2019008005A JP 2020119618 A JP2020119618 A JP 2020119618A
Authority
JP
Japan
Prior art keywords
write voltage
voltage
memory
initial write
data
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
JP2019008005A
Other languages
English (en)
Inventor
山田 英樹
Hideki Yamada
英樹 山田
白川 政信
Masanobu Shirakawa
政信 白川
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 JP2019008005A priority Critical patent/JP2020119618A/ja
Priority to US16/548,136 priority patent/US10957405B2/en
Publication of JP2020119618A publication Critical patent/JP2020119618A/ja
Priority to US17/190,125 priority patent/US11501839B2/en
Pending legal-status Critical Current

Links

Classifications

    • 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/5671Digital 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 trapping in an insulator
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • 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/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/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/32Timing 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • 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/562Multilevel memory programming aspects
    • 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/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Abstract

【課題】不揮発性メモリへの書込み処理にかかる時間を抑制する。【解決手段】一実施形態のメモリシステムは、各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、制御回路と、を含む半導体記憶装置と、上記複数のグループのうちの第1グループに対する書込み処理を実行する際、最初のプログラムループにおいて使用される初期書込み電圧を示す第1データを上記半導体記憶装置に出力するように構成されたメモリコントローラと、を備える。上記メモリコントローラは、上記第1グループに対する上記書込み処理の回数及び/又は消去処理の回数を含む評価値に応じて、上記第1データを更新するように構成される。【選択図】図11

Description

実施形態は、メモリシステムに関する。
不揮発性メモリとしてのNANDフラッシュメモリを制御するメモリコントローラを備えるメモリシステムが知られている。
特許第4819951号公報 特許第4931915号公報 米国特許第7551482号明細書 特開2016−062619号公報
不揮発性メモリへの書込み処理にかかる時間を抑制する。
実施形態のメモリシステムは、各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、制御回路と、を含む半導体記憶装置と、上記複数のグループのうちの第1グループに対する書込み処理を実行する際、最初のプログラムループにおいて使用される初期書込み電圧を示す第1データを上記半導体記憶装置に出力するように構成されたメモリコントローラと、を備える。上記メモリコントローラは、上記第1グループに対する上記書込み処理の回数及び/又は消去処理の回数を含む評価値に応じて、上記第1データを更新するように構成される。
第1実施形態に係るメモリシステムの構成を説明するためのブロック図。 第1実施形態に係る半導体記憶装置の構成を説明するためのブロック図。 第1実施形態に係るメモリセルアレイの構成を説明するための回路図。 第1実施形態に係るメモリセルアレイの閾値電圧分布を説明するための模式図。 第1実施形態に係るメモリコントローラ内に保持される初期書込み電圧管理テーブルを説明するための概念図。 第1実施形態に係るメモリシステムにおける書込み処理を説明するためのコマンドシーケンス及びタイミングチャート。 第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理を説明するためのコマンドシーケンス及びタイミングチャート。 第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の概要を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の詳細を説明するためのフローチャート。 第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのコマンドシーケンス及びタイミングチャート。 第1実施形態に係る効果を説明するためのダイアグラム。 第2実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャート。 第2実施形態に係る効果を説明するためのダイアグラム。 第3実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャート。 第1変形例に係るメモリコントローラ内に保持される初期書込み電圧管理テーブルを説明するための概念図。 第1変形例の更なる変形例に係るメモリコントローラ内に保持される初期書込み電圧管理テーブルを説明するための概念図。 第2変形例に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するための概念図。 第3変形例に係る半導体記憶装置の構成を説明するためのブロック図。 第3変形例に係るメモリコントローラ内に保持される初期書込み電圧補正テーブルを説明するための概念図。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1.第1実施形態
第1実施形態に係るメモリシステムは、例えばSSD(Solid State Drive)であり、データを不揮発に保持することが出来る。以下に、第1実施形態に係るメモリシステムについて説明する。
1.1 構成
第1実施形態に係るメモリシステムの構成について説明する。
1.1.1 メモリシステムの構成
図1は、第1実施形態に係るメモリシステムの構成例を示している。
図1に示すように、メモリシステム1は、外部のホスト機器2に接続され、ホスト機器2からの命令に応じて各種動作を実行し得る。また、メモリシステム1は、例えば半導体記憶装置10(半導体記憶装置10−0、10−1、…、及び10−N(Nは例えば2以上の整数))、バッファメモリ20、並びにメモリコントローラ30を含んでいる。
半導体記憶装置10−0、10−1、…、及び10−Nのそれぞれは、データを不揮発に記憶するNAND型フラッシュメモリであり、それぞれチップChip0、Chip1、…、及びChipNとも称される。メモリシステム1に含まれる半導体記憶装置10の個数は、任意の個数に設計され得る。半導体記憶装置10の詳細な構成については後述する。
バッファメモリ20は、例えば、DRAM(Dynamic Random Access Memory)等の揮発性メモリであり、メモリコントローラ30の記憶領域として使用される。バッファメモリ20は、例えば、ホスト機器2から受信した書込みデータや半導体記憶装置10から読み出した読出しデータを一時的に記憶する。バッファメモリ20は、メモリコントローラ30やホスト機器2等に内蔵されても良い。
メモリコントローラ30は、例えばSoC(System-on-a-Chip)であり、ホスト機器2からの命令に応答して半導体記憶装置10に対して読出し処理、書込み処理、及び消去処理等の実行を命令する。また、メモリコントローラ30は、例えばCPU(Central Processing Unit)31、メモリ32、ホストインタフェース回路33、ECC(Error Correction Code)回路34、NANDインタフェース回路35、及びRAMインタフェース回路36を含んでいる。
CPU31は、メモリコントローラ30全体の動作を制御する。CPU31は、例えばホスト機器2から受信した書込み命令に応答して、書込みコマンドを発行する。また、CPU31は、例えば、書込みコマンドの発行に際して半導体記憶装置10に印加する書込み電圧を決定する処理回路(図示せず)を含む。
メモリ32は、例えばSRAM(Static Random Access Memory)等の揮発性メモリである。メモリ32は、CPU31の作業領域として使用され、例えば半導体記憶装置10を管理するためのファームウェアや各種管理テーブル等を保持する。具体的には、例えば、メモリ32は、半導体記憶装置10に印加する初期書込み電圧の管理に使用される初期書込み電圧管理テーブル(図示せず)を保持するレジスタとして機能し得る。初期書込み電圧、及び初期書込み電圧管理テーブルの詳細については、後述する。
ホストインタフェース回路33は、ホストバスを介してホスト機器2と接続され、メモリコントローラ30及びホスト機器2間のデータ、コマンド、及びアドレスの転送を制御する。ホストインタフェース回路33は、例えばSATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)(登録商標)等の通信インタフェース規格をサポートし得る。
ECC回路34は、データのエラー訂正処理を実行する。書込み動作時においてECC回路34は、ホスト機器2から受信した書込みデータに基づいてパリティを生成し、生成したパリティを書込みデータに付与する。読出し動作時においてECC回路34は、半導体記憶装置10から受信した読出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読出しデータのエラーを検出及び訂正する。
NANDインタフェース回路35は、メモリコントローラ30及び半導体記憶装置10間におけるデータ、コマンド、及びアドレスの転送を制御し、半導体記憶装置10内の各チップChipを独立に制御し得る。NANDインタフェース回路35は、NANDインタフェース規格をサポートしている。
RAMインタフェース回路36は、バッファメモリ20に接続され、メモリコントローラ30とバッファメモリ20との間の通信を司る。RAMインタフェース回路36は、例えば、DRAMインタフェース規格をサポートしている。
1.1.2 NANDフラッシュメモリの構成
図2は、第1実施形態に係るメモリシステムの備える半導体記憶装置の構成例を示している。
図2に示すように、半導体記憶装置10は、例えば入出力回路11、レジスタセット12、ロジックコントローラ13、シーケンサ14、レディ/ビジー制御回路15、電圧生成回路16、メモリセルアレイ17、ロウデコーダモジュール18、及びセンスアンプモジュール19を含んでいる。
入出力回路11は、例えば8ビット幅の入出力信号I/O1〜I/O8を、メモリコントローラ30との間で送受信する。入出力信号I/Oは、データDAT、ステータス情報STS、アドレス情報ADD、コマンドCMD等を含み得る。また、入出力回路11は、センスアンプモジュール19との間でデータDATを送受信する。
レジスタセット12は、ステータスレジスタ12A、アドレスレジスタ12B、及びコマンドレジスタ12Cを含んでいる。ステータスレジスタ12A、アドレスレジスタ12B、及びコマンドレジスタ12Cは、それぞれステータス情報STS、アドレス情報ADD、及びコマンドCMDを保持する。
ステータス情報STSは、例えばシーケンサ14の動作状態に基づいて更新される。また、ステータス情報STSは、メモリコントローラ30からの指示に基づいてステータスレジスタ12Aから入出力回路11に転送され、メモリコントローラ30に出力される。アドレス情報ADDは、入出力回路11からアドレスレジスタ12Bに転送され、例えばチップアドレス、ブロックアドレス、ページアドレス、カラムアドレス等を含み得る。コマンドCMDは、入出力回路11からコマンドレジスタ12Cに転送され、半導体記憶装置10の各種動作に関する命令を含んでいる。
ロジックコントローラ13は、メモリコントローラ30から受信した制御信号に基づいて、入出力回路11及びシーケンサ14のそれぞれを制御する。このような制御信号としては、例えばチップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、リードイネーブル信号REn、及びライトプロテクト信号WPnが使用される。
チップイネーブル信号CEnは、半導体記憶装置10をイネーブルにするための信号である。コマンドラッチイネーブル信号CLEは、受け取った入出力信号I/OがコマンドCMDであることを入出力回路11に通知するための信号である。アドレスラッチイネーブル信号ALEは、受け取った入出力信号I/Oがアドレス情報ADDであることを入出力回路11に通知するための信号である。ライトイネーブル信号WEnは、入出力信号I/Oの入力を入出力回路11に命令するための信号である。リードイネーブル信号REnは、入出力信号I/Oの出力を入出力回路11に命令するための信号である。ライトプロテクト信号WPnは、電源のオンオフ時に半導体記憶装置10を保護状態にするための信号である。
シーケンサ14は、半導体記憶装置10全体の動作を制御する。例えば、シーケンサ14は、コマンドレジスタ12Cに保持されたコマンドCMDと、アドレスレジスタ12Bに保持されたアドレス情報ADDとに基づいて、読出し処理、書込み処理、消去処理等を実行する。
レディ/ビジー制御回路15は、シーケンサ14の動作状態に基づいて、レディ/ビジー信号RBnを生成する。レディ/ビジー信号RBnは、半導体記憶装置10がレディ状態であるかビジー状態であるかを、メモリコントローラ30に通知するための信号である。なお、本明細書において“レディ状態”は、半導体記憶装置10がメモリコントローラからの命令を受け付ける状態であることを示し、“ビジー状態”は、半導体記憶装置10がメモリコントローラからの命令を受け付けない状態であることを示している。
電圧生成回路16は、読出し処理、書込み処理、消去処理等で使用される電圧を生成する。そして、電圧生成回路16は、生成した電圧をメモリセルアレイ17、ロウデコーダモジュール18、及びセンスアンプモジュール19に供給する。
メモリセルアレイ17は、複数のブロックBLK0〜BLKn(nは1以上の整数)を含んでいる。ブロックBLKは、データを不揮発に記憶することが可能な複数のメモリセルトランジスタの集合であり、例えばデータの消去単位として使用される。また、メモリセルアレイ17には、複数のビット線BL0〜BLm(mは1以上の整数)と、複数のワード線WLと、ソース線CELSRCと、ウェル線とが設けられる。例えば、ソース線CELSRCには、電圧生成回路16によって電圧が印加される。各メモリセルトランジスタは、1本のビット線BLと1本のワード線WLとに関連付けられている。メモリセルアレイ17の詳細な回路構成については後述する。
ロウデコーダモジュール18は、ブロックアドレスに基づいて、各種処理を実行するブロックBLKを選択する。そして、ロウデコーダモジュール18は、電圧生成回路16から供給された電圧を、選択したブロックBLK内の各種配線に転送する。また、ロウデコーダモジュール18は、例えば複数のロウデコーダRD0〜RDnを含んでいる。ロウデコーダRD0〜RDnは、それぞれブロックBLK0〜BLKnに関連付けられている。
センスアンプモジュール19は、読出し処理において、メモリセルアレイ17からデータを読み出し、当該読出しデータを入出力回路11に転送する。また、センスアンプモジュール19は、書込み処理において、入出力回路11から受け取ったデータに基づいて、ビット線BLに所望の電圧を印加する。例えば、センスアンプモジュール19は、複数のセンスアンプユニットSAU0〜SAUmを含んでいる。センスアンプユニットSAU0〜SAUmは、それぞれビット線BL0〜BLmに関連付けられている。
センスアンプユニットSAUは、例えばセンスアンプ部SA、並びにラッチ回路SDL、ADL、BDL及びXDLを含んでいる。センスアンプ部SAは、例えば読出し処理において、対応するビット線BLの電圧に基づいて、読出しデータが“0”であるか“1”であるかを判定する。言い換えると、センスアンプ部SAは、対応するビット線BLに読み出されたデータをセンスして、選択されたメモリセルの記憶するデータを判定する。ラッチ回路SDL、ADL、BDL及びXDLのそれぞれは、読出しデータや書込みデータ等を一時的に保持する。ラッチ回路XDLは、センスアンプユニットSAUと入出力回路11との間のデータDATの送受信に使用され得る。
1.1.3 メモリセルアレイの回路構成
図3は、第1実施形態に係るメモリシステムの備える半導体記憶装置10に含まれたメモリセルアレイ17の回路構成の一例であり、1つのブロックBLKを抽出して示している。図3に示すように、ブロックBLKは、例えば4つのストリングユニットSU0〜SU3を含んでいる。
各ストリングユニットSUは、ビット線BL0〜BLmにそれぞれ関連付けられた複数のNANDストリングNSを含んでいる。NANDストリングNSは、例えばメモリセルトランジスタMT0〜MT7、並びに選択トランジスタST1及びST2を含んでいる。
メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタST1及びST2のそれぞれは、各種処理時におけるストリングユニットSUの選択に使用される。
各NANDストリングNSにおいて、メモリセルトランジスタMT0〜MT7は、直列接続される。直列接続されたメモリセルトランジスタMT0〜MT7の一端と、関連付けられたビット線BLとの間には、選択トランジスタST1が接続される。直列接続されたメモリセルトランジスタMT0〜MT7の他端には、選択トランジスタST2のドレインが接続される。選択トランジスタST2のソースには、ソース線CELSRC及びウェル線(図示せず)のそれぞれが接続される。
同一のブロックBLKにおいて、ストリングユニットSU0〜SU3に含まれた複数の選択トランジスタST1のそれぞれのゲートは、それぞれ選択ゲート線SGD0〜SGD3に共通接続される。複数のメモリセルトランジスタMT0〜MT7のそれぞれの制御ゲートは、それぞれワード線WL0〜WL7に共通接続される。複数の選択トランジスタST2のそれぞれのゲートは、それぞれ選択ゲート線SGS0〜SGS3に共通接続される。なお、複数の選択トランジスタST2のそれぞれのゲートは、1つの選択ゲート線(図示せず)に共通接続されてもよい。
ビット線BL0〜BLmは、複数のブロックBLK間で共有される。同じカラムアドレスに対応するNANDストリングNSには、同じビット線BLが接続される。ワード線WL0〜WL7のそれぞれは、ブロックBLK毎に設けられる。ソース線CELSRC及びウェル線(図示せず)のそれぞれは、例えば複数のブロックBLK間で共有される。
1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合は、例えばセルユニットCUと称される。例えば、それぞれが1ビットデータを記憶するメモリセルトランジスタMTを含むセルユニットCUの記憶容量が、「1ページデータ」として定義される。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて2ページデータ以上の記憶容量を有し得る。
なお、以上で説明したメモリセルアレイ17の回路構成はあくまで一例であり、これに限定されない。例えば、各ブロックBLKが含むストリングユニットSUの個数は、任意の個数に設計され得る。各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタST1及びST2のそれぞれの個数は、それぞれ任意の個数に設計され得る。
1.1.4 データの記憶方式
メモリシステム1は、例えば、いくつかの書込みモードを使用することが出来る。例えば、メモリシステム1は、SLC(Single-Level Cell)モード、MLC(Multi-Level Cell)モード、TLC(Triple-Level Cell)モード、又はQLC(Quadruple-Level Cell)モードを使用可能である。SLCモード、MLCモード、TLCモード、及びQLCモードは、1つのメモリセルトランジスタMTに対して、それぞれ1ビットデータ、2ビットデータ、3ビットデータ、及び4ビットデータを記憶させる書込みモードである。
図4は、第1実施形態に係るメモリシステム1におけるメモリセルトランジスタMTの閾値電圧の分布の一例であり、SLCモード、MLCモード、TLCモード、及びQLCモードがそれぞれ使用された4種類の閾値電圧分布及び読出し電圧のグループを示している。なお、図4に示された閾値電圧分布において、縦軸はメモリセルトランジスタMTの個数NMTsに対応し、横軸はメモリセルトランジスタMTの閾値電圧Vthに対応している。図4に示すように、複数のメモリセルトランジスタMTは、適用される書込みモード、すなわち記憶するデータのビット数に応じて複数の閾値電圧分布を形成する。
SLCモード(1bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は2個の閾値電圧分布を形成する。この2個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ER”状態、“A”状態と称される。SLCモードにおいて、“ER”状態、及び“A”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる1ビットデータが割り当てられる。
MLCモード(2bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は4個の閾値電圧分布を形成する。この4個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ER”状態、“A”状態、“B”状態、“C”状態と称される。MLCモードにおいて、“ER”状態〜“C”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる2ビットデータが割り当てられる。
TLCモード(3bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は8個の閾値電圧分布を形成する。この8個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ER”状態、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、“G”状態と称される。TLC方式において、“ER”状態〜“G”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる3ビットデータが割り当てられる。
QLCモード(4bit/cell)が使用された場合、複数のメモリセルトランジスタMTの閾値電圧は16個の閾値電圧分布を形成する。この16個の閾値電圧分布は、例えば閾値電圧の低い方から順に、それぞれ“ER”状態、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、“G”状態、“H”状態、“I”状態、“J”状態、“K”状態、“L”状態、“M”状態、“N”状態、“O”状態と称される。QLC方式において、“ER”状態〜“O”状態のそれぞれの閾値電圧分布には、それぞれ互いに異なる4ビットデータが割り当てられる。
各書込みモードにおいて、隣り合う閾値電圧分布の間にそれぞれ読出し電圧が設定される。具体的には、“ER”状態における最大の閾値電圧と“A”状態における最小の閾値電圧との間に、読出し電圧ARが設定される。同様に、“A”状態及び“B”状態間に読出し電圧BRが設定され、“B”状態及び“C”状態間に読出し電圧CRが設定され、“C”状態及び“D”状態間に読出し電圧DRが設定され、“D”状態及び“E”状態間に読出し電圧ERが設定され、“E”状態及び“F”状態間に読出し電圧FRが設定され、“F”状態及び“G”状態間に読出し電圧GRが設定され、“G”状態及び“H”状態間に読出し電圧HRが設定され、“H”状態及び“I”状態間に読出し電圧IRが設定され、“I”状態及び“J”状態間に読出し電圧JRが設定され、“J”状態及び“K”状態間に読出し電圧KRが設定され、“K”状態及び“L”状態間に読出し電圧LRが設定され、“L”状態及び“M”状態間に読出し電圧MRが設定され、“M”状態及び“N”状態間に読出し電圧NRが設定され、“N”状態及び“O”状態間に読出し電圧ORが設定される。
各書込みモードにおいて、最も高い閾値電圧分布における最大の閾値電圧よりも高い電圧に、読出しパス電圧Vreadが設定される。読出しパス電圧Vreadがゲートに印加されたメモリセルトランジスタMTは、記憶するデータに依らずにオン状態になる。
また、各書込みモードにおいて、隣り合う閾値電圧分布の間には、それぞれベリファイ電圧が設定される。具体的には、書込み動作において、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、“G”状態、“H”状態、“I”状態、“J”状態、“K”状態、“L”状態、“M”状態、“N”状態及び“O”状態のそれぞれのベリファイ動作には、それぞれベリファイ電圧AV、BV、CV、DV、EV、FV、GV、HV、IV、JV、KV、LV、MV、NV及びOVが使用される。例えば、ベリファイ電圧AV〜OVは、それぞれ読出し電圧AR〜ORよりも高い電圧に設定される。
なお、以上で説明した1つのメモリセルトランジスタMTが記憶するデータのビット数は一例であり、これに限定されない。例えば、メモリセルトランジスタMTには、5ビットデータ以上のデータが記憶されても良い。また、読出し電圧、読出しパス電圧、ベリファイ電圧のそれぞれは、各書込みモードで同じ電圧値に設定されても良いし、異なる電圧値に設定されても良い。
1.2 動作
次に、第1実施形態に係るメモリシステムの動作について説明する。なお、以下の説明では、選択されたワード線WLのことを選択ワード線WLselと称する。電圧生成回路16がワード線WLに電圧を印加することは、電圧生成回路16がロウデコーダモジュール18を介してワード線WLに電圧を印加することに対応している。半導体記憶装置10が受信したアドレス情報ADDは、アドレスレジスタ12Bに転送されるものとする。半導体記憶装置10が受信したコマンドCMDは、コマンドレジスタ12Cに転送されるものとする。
1.2.1 書込み処理の概要
第1実施形態に係るメモリシステムにおける書込み処理の概要について説明する。
1.2.1.1 基本動作
まず、書込み処理における基本動作について説明する。
書込み処理においてシーケンサ14は、プログラムループを繰り返し実行する。各プログラムループは、プログラム処理及びベリファイ処理を含んでいる。
プログラム処理は、メモリセルトランジスタMTの閾値電圧を上昇させる処理である。プログラム処理において、各センスアンプユニットSAUは、内部のラッチ回路に保持されたデータに基づいて、対応するビット線BLを書込み対象又は書込み禁止に設定する。そして、プログラム処理において選択ワード線WLselには、書込み電圧VPGMが印加される。書込み電圧VPGMは、メモリセルトランジスタMTの閾値電圧を上昇させることが可能な高電圧であり、例えば、読出しパス電圧Vreadより大きい。
選択ワード線WLselに書込み電圧VPGMが印加されると、選択ワード線WLselに接続され、かつ書込み対象のビット線BLに接続されたメモリセルトランジスタMTの閾値電圧が上昇する。一方、選択ワード線WLselに接続され、かつ書込み禁止のビット線BLに接続されたメモリセルトランジスタMTの閾値電圧は、セルフブーストによって閾値電圧の上昇が抑制される。これらの一連の動作がプログラム処理に対応している。シーケンサ14は、プログラム処理が終了すると、ベリファイ処理に移行する。
ベリファイ処理は、メモリセルトランジスタMTの閾値電圧が所望の値に達したかどうかを判定する読出し処理の一種である。ベリファイ処理では、例えば、各センスアンプユニットSAUが保持する書込みデータに応じて、センスアンプユニットSAU毎に、パスするか否かが判定されるベリファイ電圧が設定される。
選択ワード線WLselにベリファイ電圧が印加されると、各センスアンプユニットSAUは、対応するビット線BLの電圧に基づいて、選択ワード線WLselに接続されたメモリセルトランジスタMTの閾値電圧が当該ベリファイ電圧を超えているか否かを判定する。そして、センスアンプユニットSAUは、判定結果を内部のいずれかのラッチ回路に保持する。具体的には、例えば、シーケンサ14は、“A”状態のデータが書き込まれるメモリセルトランジスタMTの閾値電圧が、ベリファイ電圧AVを超えていた場合にベリファイ処理にパスしたと判定し、ベリファイ電圧AV以下である場合にベリファイ処理にフェイルしたと判定する。これらの判定が終了すると、シーケンサ14は、ベリファイ処理を終了する。
以上で説明したプログラム処理及びベリファイ処理の組が、1回のプログラムループに対応している。続くプログラムループにおけるプログラム処理では、書込み電圧VPGMがステップアップされる。書込み電圧VPGMのステップアップ量ΔVPGMは、予め定められた値に設定され得る。
また、ベリファイ電圧は、書込みモード、及び閾値電圧の上昇に応じて、AV、BV、CV…のように複数種類が使用され得る。そして、シーケンサ14は、プログラムループの繰り返しにおいて、適用された書込みモードにおける最大の閾値電圧分布に属する状態に対するベリファイ処理にフェイルしたメモリセルトランジスタMTの数が所定の数を下回ったことを検知すると、書込み処理を終了する。
1.2.1.2 初期書込み電圧の設定処理
次に、上述した書込み処理における初期書込み電圧の設定処理について説明する。メモリコントローラ30は、書込み処理に際し、メモリ32内に記憶された初期書込み電圧管理テーブルを参照することにより、最初のプログラムループで印加される書込み電圧VPGM(初期書込み電圧IVPGM)を設定する。
図5は、第1実施形態に係るメモリシステムの初期書込み電圧管理テーブルを説明するための概念図である。図5に示すように、初期書込み電圧管理テーブルは、初期書込み電圧IVPGMの値を、書込み処理の単位となり得るグループ毎に保持する。より具体的には、初期書込み電圧IVPGMは、チップChip毎、ブロックBLK毎、ワード線WL毎、ストリングユニットSU毎に分類されて保持される。以下では、初期書込み電圧管理テーブルにおいて初期書込み電圧IVPGMが設定される単位を、「グループ」と称する。
図5の例では、チップChip0のブロックBLK0におけるワード線WL0に接続された、ストリングユニットSU0及びSU1に属する複数のメモリセルトランジスタMTには、データ“00”が設定されている。初期書込み電圧管理テーブルに保持されたデータが“00”である場合、初期書込み電圧管理テーブルには、有効なデータが保持されていない(“no data”である)ことを示す。この場合、当該グループの各々に印加される初期書込み電圧IVPGMは、デフォルトに設定された初期書込み電圧VPGM0が印加され得る。
一方、図5の例では、チップChip0のブロックBLK0におけるワード線WL0に接続された、ストリングユニットSU2に属する複数のメモリセルトランジスタMTには、“VPGM0+kΔVPGM”が設定されている(kは、0以上の整数)。また、ストリングユニットSU3に属する複数のメモリセルトランジスタMTには、“VPGM0+(k+1)ΔVPGM”が設定されている。この場合、ストリングユニットSU2及びSU3に対応するグループにはそれぞれ、初期書込み電圧IVPGMとして、電圧VPGM0+kΔVPGM、及びVPGM0+(k+1)ΔVPGMが印加される。
このように、メモリコントローラ30は、初期書込み電圧管理テーブルを参照することによって、初期書込み電圧IVPGMの値を、書込み単位で分類されたグループ毎に設定することができる。なお、初期書込み電圧管理テーブルは、デフォルトに設定された初期書込み電圧VPGM0からのオフセット値を記憶することによって、初期書込み電圧IVPGMに対応する値を管理してもよい。
また、図5の例では、初期書込み電圧IVPGM又は初期書込み電圧IVPGMに対応する値と共に、書込み回数及び/又は消去回数(W/E回数)が併せて保持される。W/E回数は、メモリセルアレイ17の使用状況に応じた特性の変化(具体的には、メモリセルトランジスタMTの閾値電圧の上昇特性)をモニタするために使用され得る。W/E回数を用いた初期書込み電圧IVPGMの管理手法の詳細については、後述する。
図6は、第1実施形態に係るメモリシステムにおける書込み処理の概要を説明するためのコマンドシーケンス及びタイミングチャートの具体例である。なお、以下で参照される同様の図面において、各処理前におけるレディ/ビジー信号RBnは“H”レベルであり、選択ワード線WLselの電圧はVSS(例えば、0V)であるものとする。なお、各処理前における選択ワード線WLselの電圧はVSSに限定されず、例えば、フローティングでも構わない。すなわち、各処理前における選択ワード線WLselの電圧は、任意の電圧値に設定され得る。
図6に示すように、書込み処理において、メモリコントローラ30は、例えば、コマンド“0Fh”、アドレス情報“ADD”、及び初期書込み電圧データ“DIVi”を順に半導体記憶装置10に送出する。コマンド“0Fh”は、初期書込み電圧データ“DIVi”の送出を示すコマンドである。初期書込み電圧データ“DIVi”は、後続する書込み処理における初期書込み電圧IVPGMの値を示す。シーケンサ14は、コマンド“0Fh”を受けると、後続する書込み処理における最初のプログラムループにおいて、初期書込み電圧データ“DIVi”に対応する書込み電圧を選択ワード線WLselに印加する旨を認識する。
続いて、メモリコントローラ30は、コマンド“80h”、アドレス情報“ADD”、書込みデータ“Din”、及びコマンド“10h”を順に半導体記憶装置10に送出する。コマンド“80h”は、書込み処理を指示するコマンドである。書込みデータ“Din”は、センスアンプモジュール19内のセンスアンプユニットSAUのラッチ回路XDLに転送される。コマンド“10h”は、書込み処理の実行を指示するコマンドである。
半導体記憶装置10は、コマンド“10h”を受けると、レディ状態からビジー状態に遷移する。すると、シーケンサ14は、初期書込み電圧データ“DIVi”、コマンドレジスタ12Cに保持されたコマンド、及びセンスアンプモジュール19に保持されたデータに基づいて、書込み処理を実行する。
上述の通り、図6の例では、シーケンサ14は、初期書込み電圧IVPGMの値を、初期書込み電圧データ“DIVi”基づいて設定する。このように、メモリコントローラ30は、コマンド“0Fh”及び初期書込み電圧データ“DIVi”によって、初期書込み電圧IVPGMを任意の値に設定することができる。
そして、書込み電圧VPGMは、プログラムループ毎にステップアップされる。例えば、初期書込み電圧IVPGMにVPGM0+kΔVPGMが設定されている場合、j回目のプログラムループにおける書込み電圧VPGMは、VPGM0+kΔVPGM+(j−1)ΔVPGMとなる(VPGM=IVPGM+(j−1)ΔVPGM)(jは、1以上の整数)。
書込み処理の終了に伴い、シーケンサ14は、半導体記憶装置10をビジー状態からレディ状態に遷移させる。図示された期間tProgは、書込み処理が実行された時間に対応している。
以上により、一連の処理が終了する。
1.2.2 初期書込み電圧管理テーブルの管理
上述した書込み処理を実行するために、メモリ32内の初期書込み電圧管理テーブルが適切なタイミングで更新されることが望ましい。以下では、初期書込み電圧管理テーブルの管理について説明する。なお、初期書込み電圧管理テーブルは、例えば、初期設定処理、及び更新処理によって管理される。初期設定処理は、初期書込み電圧管理テーブルに保持すべきデータを学習し(学習処理)、当該学習結果を有効なデータとして当該テーブル内に最初に記憶させる処理である。更新処理は、初期設定処理後に初期書込み電圧管理テーブル内のデータが最適な値であるか否かを検証し(検証処理)、検証結果に応じて当該テーブル内のデータを更新する処理である。
1.2.2.1 初期設定処理
第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理について説明する。初期設定処理は、例えば、メモリシステム1の出荷前に実行されるテストフェーズにおける処理である。以下の説明では、テストフェーズにおいて、メモリ32には、初期設定処理が実行されるまでは、データ“00”が保持されている(すなわち、有効なデータが保持されていない)ものとする。
図7は、第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの初期設定処理を説明するためのフローチャートである。
図7に示すように、ステップST1において、メモリコントローラ30は、初期書込み電圧の学習処理を伴う書込み処理を指示する書込みコマンドセットを発行し、半導体記憶装置10に送出する。以下の説明では、説明の便宜上、「初期書込み電圧の学習処理を伴う書込み処理」は、「初期書込み電圧学習処理」とも称され、「初期書込み電圧の学習処理を伴う書込み処理を指示するコマンドセット」は、「初期書込み電圧学習コマンド」とも称される。
ステップST2において、初期書込み電圧学習コマンドを受けると、シーケンサ14は、半導体記憶装置10をレディ状態からビジー状態に遷移させて、初期書込み電圧学習処理を実行する。初期書込み電圧学習処理の詳細については、後述する。
ステップST3において、初期書込み電圧学習処理が終了すると、シーケンサ14は、半導体記憶装置10をビジー状態からレディ状態に遷移させて、初期書込み電圧学習処理が終了したことをメモリコントローラ30に通知する。なお、半導体記憶装置10は、例えば、当該処理によって学習した初期書込み電圧IVPGMに関する情報をレジスタセット12内に保持する。
ステップST4において、ステップST3において送出された終了通知を受けると、メモリコントローラ30は、初期書込み電圧の学習結果を出力する旨を指示する出力コマンドを発行し、半導体記憶装置10に送出する。
ステップST5において、ステップST4において送出された出力コマンドを受けると、半導体記憶装置10は、レジスタセット12に保持された初期書込み電圧の学習結果を参照し、メモリコントローラ30に送出する。
ステップST6において、メモリコントローラ30は、メモリ32内の初期書込み電圧管理テーブルに、初期書込み電圧の学習結果を記憶させる。
以上のように動作することにより、同一のグループに対して実行される以降の書込み処理の際に、初期書込み電圧管理テーブルを参照することにより、学習結果が反映された初期書込み電圧を半導体記憶装置10に指示することができる。
なお、テストフェーズが終了すると、出荷後に電源投入されるまで、メモリシステム1への電源供給は遮断され得る。この場合、メモリコントローラ30は、テストフェーズ中に、初期書込み電圧管理テーブル内の情報を半導体記憶装置10に転送し、メモリセルアレイ17の所定の領域内に不揮発に記憶させてもよい。そして、出荷後に電源投入された際に、当該情報を改めてメモリセルアレイ17からメモリ32内の初期書込み電圧管理テーブルに展開し、以降の書込み処理の際に使用可能にしてもよい。
図8は、第1実施形態に係るメモリシステムにおける、初期書込み電圧学習処理と、学習結果の出力処理と、を含む一連の処理のコマンドシーケンス及びタイミングチャートを説明するための具体例を示している。図8の例では、初期書込み電圧の学習対象である複数のメモリセルトランジスタMTの閾値電圧分布が、プログラムループ毎に変化する様子が併せて示されている。
図8に示すように、初期書込み電圧学習処理において、メモリコントローラ30は、例えば、コマンド“0Fh”、アドレス情報“ADD”、初期書込み電圧データ“DIVi”、及びコマンド“XXh”を順に半導体記憶装置10に送出する。コマンド“XXh”は、書込み処理に際して、初期書込み電圧の学習処理を併せて実行する旨を指示するコマンドである。
上述の通り、テストフェーズでは、初期書込み電圧学習処理が実行されるまでは、メモリ32の初期書込み電圧管理テーブル内には、有効なデータが保持されていない。このため、メモリコントローラ30は、初期書込み電圧データ“DIVi”として、データ“00”を半導体記憶装置10に送出する。シーケンサ14は、コマンド“XXh”と共に初期書込み電圧データ“DIVi”としてデータ“00”を受けると、初期書込み電圧学習処理を伴う書込み処理における初期書込み電圧IVPGMとして、デフォルトの初期書込み電圧VPGM0を適用する旨を認識する。
続いて、メモリコントローラ30は、コマンド“80h”、アドレス情報“ADD”、書込みデータ“Din”、及びコマンド“10h”を順に半導体記憶装置10に送出する。
半導体記憶装置10は、コマンド“10h”を受けると、レディ状態からビジー状態に遷移する。すると、シーケンサ14は、データ“00”を示す初期書込み電圧データ“DIVi”、コマンド“XXh”を含むコマンドセット、及び書込みデータ“Din”に基づいて、初期書込み電圧学習処理を実行する。
具体的には、初期書込み電圧の学習処理を伴う書込み処理は、例えば、プログラム処理及びベリファイ処理を含む。最初のプログラムループのプログラム処理では、シーケンサ14は、データ“00”の初期書込み電圧データ“DIVi”に基づき、選択ワード線WLselに、デフォルトの初期書込み電圧VPGM0を印加する。デフォルトの初期書込み電圧VPGM0は、ステップアップ量ΔVPGMが加算されない値であるため、例えば、書込み電圧VPGMの最小値であり得る。このため、“ER”状態に対応する複数のメモリセルトランジスタMTの閾値電圧分布は、最初のプログラムループでベリファイ電圧AV付近まで一気に近づくことなく、複数回のプログラムループでベリファイ電圧AVに徐々に近づいていく。
一方、初期書込み電圧学習処理を伴う書込み処理におけるベリファイ処理では、最初のプログラムループから、ベリファイ電圧AVと共に(又はベリファイ電圧AVに先立ち)、ベリファイ電圧Vsvに対するベリファイ処理が実行される。ベリファイ電圧Vsvは、例えば、初期書込み電圧学習用のベリファイ電圧であり、ベリファイ電圧AV以下の電圧が設定される。
図8の例では、1回目〜4回目のプログラムループが図示されており、その各々におけるベリファイ処理において、選択ワード線WLselにベリファイ電圧Vsv及びAVが順に印加される場合が示されている。ベリファイ電圧Vsvに対するベリファイ処理では、選択ワード線WLselにベリファイ電圧Vsvが印加されると、各センスアンプユニットSAUは、対応するビット線BLの電圧に基づいて、選択ワード線WLselに接続されたメモリセルトランジスタMTの閾値電圧がベリファイ電圧Vsvを超えているか否かを判定する。そして、センスアンプユニットSAUは、判定結果を内部のいずれかのラッチ回路に保持する。例えば、シーケンサ14は、初期書込み電圧の学習対象のメモリセルトランジスタMTの閾値電圧がベリファイ電圧Vsvを超えていた場合には、初期書込み電圧学習用のベリファイ処理にパスしたと判定する。一方、シーケンサ14は、初期書込み電圧の学習対象のメモリセルトランジスタMTの閾値電圧がベリファイ電圧Vsv以下である場合には、初期書込み電圧学習用のベリファイ処理にフェイルしたと判定する。
シーケンサ14は、ベリファイ電圧Vsvに対するベリファイ処理にパスしたメモリセルトランジスタMTの数が所定の数を上回ったことを検知すると、当該検知がされたプログラムループにおけるプログラム処理で選択ワード線WLselに印加された書込み電圧VPGMを記憶する。図8の例では、初期書込み電圧学習対象の複数のメモリセルトランジスタMTのうちの所定数の閾値電圧が、4回目のプログラムループにおけるプログラム処理でベリファイ電圧Vsvを上回る。この場合、シーケンサ14は、4回目のプログラムループにおけるプログラム処理で選択ワード線WLselに印加された書込み電圧VPGM=VPGM0+3ΔVPGMをレジスタセット12内に記憶する。
その後、シーケンサ14は、書込みデータ“Din”に応じて通常の書込み処理を継続して実行し、当該書込み処理が終了すると、半導体記憶装置10をビジー状態からレディ状態に遷移させる。つまり、シーケンサ14は、初期書込み電圧学習処理の終了通知をメモリコントローラ30に送出する。
続いて、メモリコントローラ30は、出力コマンド“B0h”、アドレス情報“ADD”を発行し、半導体記憶装置10に送出する。出力コマンド“B0h”を受けると、シーケンサ14は、半導体記憶装置10をレディ状態からビジー状態に遷移させて、データ“DIVо”をメモリコントローラ30に送出する。データ“DIVо”は、ベリファイ電圧Vsvに対するベリファイ処理にパスしたメモリセルトランジスタMTが所定の数を上回ったと判定されたプログラムループ数における書込み電圧VPGMを示す情報を含む。図8の例では、シーケンサ14は、データ“DIVо”として、書込み電圧VPGM=VPGM0+3ΔVPGMを示す情報を、メモリコントローラ30に送出する。データ“DIVо”の送出が終了すると、シーケンサ14は、半導体記憶装置10をビジー状態からレディ状態に遷移させて、学習結果の出力処理を終了する。
メモリコントローラ30は、半導体記憶装置10からデータ“DIVо”を受けると、初期書込み電圧管理テーブル内の初期設定対象のメモリセルトランジスタMTに対応するグループの初期書込み電圧IVPGMを、データ“DIVо”に更新する。
以上のように動作することにより、メモリコントローラ30は、初期書込み電圧の学習結果をメモリ32内の管理テーブルに初期設定することができる。
1.2.2.2 更新処理
次に、第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理について説明する。更新処理は、例えば、メモリシステム1を出荷した後に実行される実運用フェーズにおける処理である。以下の説明では、メモリシステム1は、テストフェーズにおいて初期書込み電圧管理テーブルの初期設定処理が実行され、当該テーブル内に有効なデータが保持されているものとする。
図9は、第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の概要を説明するためのフローチャートである。
図9に示すように、ステップST10において、メモリコントローラ30は、実運用フェーズ中に、ホスト機器2から書込み要求を受信する。
ステップST20において、メモリコントローラ30は、メモリ32内の初期書込み電圧管理テーブルを参照し、書込み対象の複数のメモリセルトランジスタMTが分類されたグループに対iは、0以上の整数)。すなわち、メモリコントローラ30は、i=0の場合、W/E回数が閾値N以上であるか否かを判定し、i=1,2,3,…の場合それぞれ、W/E回数が閾値N,N,N,…以上であるか否かを判定する。
閾値Nは、例えば、図5で示した初期書込み電圧管理テーブルにおいて、W/E回数に対応付けられて管理される。なお、図9の例では、閾値Nは、N<N<N<N<…のように、iがインクリメントされる毎に大きな値となるように設定される。
W/E回数が閾値N以上であると判定された場合(ステップST20;yes)、処理はステップST30〜ST50に進む。
ステップST30は、ステップST31〜ST33を含む。ステップST30において、メモリコントローラ30及び半導体記憶装置10は、初期書込み電圧の検証処理を伴う書込み処理を実行し、処理はステップST40に進む。
ステップST40は、ステップST41〜ST43を含む。ステップST40において、メモリコントローラ30及び半導体記憶装置10は、検証処理の結果に基づき、初期書込み電圧管理テーブルの更新処理を実行し、処理はステップST50に進む。初期書込み電圧の検証処理を伴う書込み処理、及び初期書込み電圧管理テーブルの更新処理の詳細(すなわち、ステップST31〜ST33、及びステップST41〜ST43)については、後述する。
ステップST50において、メモリコントローラ30は、当該フロー後の、ホスト機器2からの新たな書込み要求に対する更新処理の発動条件判定に適用する閾値をNからN(i+1)(>N)に更新し、処理はステップST70に進む。これにより、ステップST30及びST40を実行した後に、同一のグループに対してホスト機器2から新たな書込み要求を受けると、メモリコントローラ30は、当該新たな書込み要求に対するステップST20において、閾値N(i+1)に基づいてW/E回数の大小を判定することができる。
一方、ステップST20においてW/E回数が閾値Ni未満であると判定された場合(ステップST20;nо)、処理はステップST60に進む。
ステップST60において、メモリコントローラ30及び半導体記憶装置10は、初期書込み電圧の更新処理を伴わない書込み処理を実行し、処理はステップST70に進む。この場合、メモリ32内の初期書込み電圧管理テーブルは更新されない。したがって、ステップST60を実行した後に、同一のグループに対してホスト機器2から新たな書込み要求を受けると、メモリコントローラ30は、当該新たな書込み要求に対するステップST20において、再度閾値Nに基づいてW/E回数の大小を判定することができる。
ステップST70において、メモリコントローラ30は、初期書込み電圧管理テーブルを参照し、書込み対象に対応するグループに関連付けられたW/E回数をインクリメントする。
以上のように動作することにより、W/E回数が一定回数に達する度に、半導体記憶装置10に初期書込み電圧の検証処理を伴う書込み処理を実行させ、その結果としてメモリ32内の初期書込み電圧管理テーブルを更新することができる。
次に、第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理のフローの詳細について説明する。
図10は、第1実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理の詳細を説明するためのフローチャートである。
図10に示すように、ステップST31において、メモリコントローラ30は、初期書込み電圧の検証処理を伴う書込み処理を指示する書込みコマンドセットを発行し、半導体記憶装置10に送出する。以下の説明では、説明の便宜上、「初期書込み電圧の検証処理を伴う書込み処理」は、「初期書込み電圧検証処理」とも称され、「初期書込み電圧の検証処理を伴う書込み処理を指示するコマンドセット」は、「初期書込み電圧検証コマンド」とも称される。
ステップST32において、初期書込み電圧検証コマンドを受けると、シーケンサ14は、半導体記憶装置10をレディ状態からビジー状態に遷移させて、初期書込み電圧検証処理を実行する。
ステップST33において、初期書込み電圧検証処理が終了すると、シーケンサ14は、半導体記憶装置10をビジー状態からレディ状態に遷移させて、初期書込み電圧検証処理が終了したことをメモリコントローラ30に通知する。なお、半導体記憶装置10は、例えば、当該処理によって学習した初期書込み電圧IVPGMに関する情報をレジスタセット12内に保持する。
ステップST41において、ステップST33において送出された終了通知を受けると、メモリコントローラ30は、初期書込み電圧の検証結果を出力する旨を指示する出力コマンドを発行し、半導体記憶装置10に送出する。
ステップST42において、ステップST41において送出された出力コマンドを受けると、半導体記憶装置10は、レジスタセット12に保持された初期書込み電圧の検証結果を参照し、メモリコントローラ30に送出する。
ステップST43において、メモリコントローラ30は、メモリ32内の初期書込み電圧管理テーブルを、初期書込み電圧の検証結果で更新する。
以上のように動作することにより、同一のグループに対して実行される以降の書込み処理の際に、初期書込み電圧管理テーブルを参照することにより、検証結果が反映された初期書込み電圧を半導体記憶装置10に指示することができる。
図11は、第1実施形態に係るメモリシステムにおける、初期書込み電圧検証処理と、検証結果の出力処理と、を含む一連の処理のコマンドシーケンス及びタイミングチャートを説明するための具体例を示している。図11の例では、初期書込み電圧の検証対象である複数のメモリセルトランジスタMTの閾値電圧分布のプログラムループ毎の変化が併せて示されている。
図11に示すように、初期書込み電圧検証処理において、メモリコントローラ30は、例えば、コマンド“0Fh”、アドレス情報“ADD”、初期書込み電圧データ“DIVi”、及びコマンド“XXh”を順に半導体記憶装置10に送出する。コマンド“XXh”は、書込み処理に際して初期書込み電圧の検証処理を併せて実行する旨を指示するコマンドである。
上述の通り、実運用フェーズでは、メモリ32の初期書込み電圧管理テーブル内には、有効なデータ(例えば、VPGM0+jΔVPGM)が保持されている。このため、メモリコントローラ30は、初期書込み電圧データ“DIVi”として、データ“VPGM0+jΔVPGM”を半導体記憶装置10に送出する。シーケンサ14は、コマンド“XXh”と共に初期書込み電圧データ“DIVi”としてデータ“VPGM0+jΔVPGM”を受けると、初期書込み電圧検証処理を伴う書込み処理における初期書込み電圧IVPGMとして、電圧VPGM0+jΔVPGMよりも低い電圧を適用する旨を認識する。例えば、シーケンサ14は、コマンド“XXh”を受けると、初期書込み電圧データ“DIVi”に対応する電圧よりもΔVPGMだけ低い電圧VPGM0+(j−1)ΔVPGMを初期書込み電圧IVPGMに適用する旨を認識する。
続いて、メモリコントローラ30は、コマンド“80h”、アドレス情報“ADD”、書込みデータ“Din”、及びコマンド“10h”を順に半導体記憶装置10に送出する。なお、初期書込み電圧検証処理は、初期書込み電圧IVPGMの大きさを除いて初期書込み電圧学習処理と同等の処理である。このため、上述のように、書込み処理に際して初期書込み電圧の検証処理を併せて実行する旨を指示するコマンドには、書込み処理に際して初期書込み電圧の学習処理を併せて実行する旨を指示するコマンドと同一のコマンド“XXh”が用いることができる。
半導体記憶装置10は、コマンド“10h”を受けると、レディ状態からビジー状態に遷移する。すると、シーケンサ14は、データ“00”の初期書込み電圧データ“DIVi”、コマンド“XXh”を含むコマンドセット、及び書込みデータ“Din”に基づいて、初期書込み電圧検証処理を実行する。
具体的には、初期書込み電圧の検証処理は、例えば、プログラム処理及びベリファイ処理を含む。最初のプログラムループのプログラム処理では、シーケンサ14は、有効な初期書込み電圧データ“DIVi”に基づき、選択ワード線WLselに、初期書込み電圧IVPGM=VPGM0+(j−1)ΔVPGMを印加する。このため、“ER”状態に対応する複数のメモリセルトランジスタMTの閾値電圧分布は、最初のプログラムループで、ベリファイ電圧Vsv付近まで一気に近づく。
一方、初期書込み電圧検証処理のベリファイ処理では、最初のプログラムループから、ベリファイ電圧AVと共に(又はベリファイ電圧AVに先立ち)、ベリファイ電圧Vsvに対するベリファイ処理が実行される。
図11の例では、1回目〜4回目のプログラムループが図示されており、1回目のプログラムループにおいてベリファイ電圧Vsvに対するベリファイ処理が終了する場合が示されている。すなわち、図11の例では、初期書込み電圧検証対象の複数のメモリセルトランジスタMTのうちの所定数の閾値電圧が、1回目のプログラムループにおけるプログラム処理でベリファイ電圧Vsvを上回る。この場合、シーケンサ14は、1回目のプログラムループにおけるプログラム処理で選択ワード線WLselに印加された書込み電圧VPGM=VPGM0+(j−1)ΔVPGMをレジスタセット12内に記憶する。
その後、シーケンサ14は、書込みデータ“Din”に応じて通常の書込み処理を継続して実行し、当該書込み処理が終了すると、半導体記憶装置10をビジー状態からレディ状態に遷移させる。また、シーケンサ14は、初期書込み電圧学習処理の終了通知をメモリコントローラ30に送出する。
続いて、メモリコントローラ30は、出力コマンド“B0h”、アドレス情報“ADD”を発行し、半導体記憶装置10に送出する。出力コマンド“B0h”を受けると、シーケンサ14は、半導体記憶装置10をレディ状態からビジー状態に遷移させて、初期書込み電圧の検証処理結果に基づき、データ“DIVо”をメモリコントローラ30に送出する。図11の例では、シーケンサ14は、データ“DIVо”として、書込み電圧VPGM=VPGM0+(j−1)ΔVPGMを示す情報を、メモリコントローラ30に送出する。データ“DIVо”の送出が終了すると、シーケンサ14は、半導体記憶装置10をビジー状態からレディ状態に遷移させて、検証結果の出力処理を終了する。
以上のように動作することにより、メモリコントローラ30は、初期書込み電圧の検証結果に基づき、初期書込み電圧管理テーブル内の情報を、“VPGM0+jΔVPGM”から“VPGM0+(j−1)ΔVPGM”に更新することができる。
1.3 本実施形態に係る効果
第1実施形態によれば、メモリコントローラ30は、書込み処理を実行する際、最初のプログラムループにおける初期書込み電圧IVPGMを、データ“DIVi”を出力することによって指定する。また、メモリコントローラ30は、書込み対象の複数のメモリセルトランジスタMTに対するW/E回数に応じて、データ“DIVi”を更新する。これにより、メモリコントローラ30は、書込み対象の複数のメモリセルトランジスタMTの閾値電圧上昇特性に応じて、最適な初期書込み電圧IVPGMから書込み処理を開始させることができる。
図12は、第1実施形態に係るメモリシステムの効果を説明するためのダイアグラムである。図12では、比較例に係るメモリシステムに対応する線L1(L1a及びL1b)と、第1実施形態に係るメモリシステムに対応する線L2(L2a及びL2b)と、が示される。比較例に係るメモリシステムは、W/E回数に依らず、一定の初期書込み電圧IVPGMが適用される場合に対応する。
より具体的には、図12の上部は、W/E回数を横軸にとり、過書込みとなる書込み電圧に対する初期書込み電圧が有するマージン(すなわち、過書込み電圧と初期書込み電圧との差)を縦軸に取ったダイアグラムを示す。図12の上部のダイアグラムでは、比較例に係るメモリシステムの特性が線L1aとして、第1実施形態に係るメモリシステムの特性が線L2aとして示される。また、図12の下部は、W/E回数を横軸にとり、初期書込み電圧を縦軸に取ったダイアグラムを示す。図12の下部のダイアグラムでは、比較例に係るメモリシステムの特性が線L1bとして、第1実施形態に係るメモリシステムの特性が線L2bとして示される。
図12の下部に示すように、比較例に係るメモリシステムがW/E回数に依らずに一定の初期書込み電圧IVPGM(例えば、デフォルトの初期書込み電圧DVPGM0)を適用するのに対し、第1実施形態に係るメモリシステムでは、W/E回数に応じて、初期書込み電圧IVPGMの値を更新する。具体的には、W/E回数が閾値N(=0)以上の場合、メモリコントローラ30は、初期書込み電圧管理テーブルの初期設定処理を行う。これにより、メモリコントローラ30は、初期書込み電圧IVPGMを、デフォルトの初期書込み電圧DPVGM0より大きい値に更新することができる。その後、閾値NをN(>N)に更新し、W/E回数が閾値N以上となった場合、メモリコントローラ30は、初期書込み電圧管理テーブルの更新処理を行う。これにより、メモリコントローラ30は、初期書込み電圧IVPGMを、初期書込み電圧管理テーブルに保持されていた値以下の値に更新することができる。
図12の上部に示すように、メモリセルトランジスタMTは、W/E回数が増加するに従い、閾値電圧の上昇特性が変化する。具体的には、線L1aに示すように、W/E回数が増加すると、最初のプログラムループにおけるプログラム処理後における、過書込みとなる書込み電圧に対する初期書込み電圧が有するマージンは、減少する。すなわち、W/E回数が増加するに従い、メモリセルトランジスタMTの閾値電圧は、上昇しやすくなる。このため、W/E回数に依らず一定の初期書込み電圧IVPGMを印加する場合、閾値電圧が最も上昇しやすくなる、仕様上限のW/E回数においても、過書込みとならない程度の初期書込み電圧が設定される。しかしながら、このように設定された初期書込み電圧は、閾値電圧が比較的上昇しにくいW/E回数が少ない際には、過書込みとなる書込み電圧に対して過剰なマージンを有している可能性がある。
第1実施形態によれば、線L2aに示すように、W/E回数(すなわち、メモリセルトランジスタMTの閾値電圧の上昇特性)が閾値Nに達する度に、初期書込み電圧を更新する。これにより、過書込みとなる書込み電圧に対する初期書込み電圧IVPGMのマージンが過剰に小さくなる前に、当該マージンを適切な値に更新することができる。このため、半導体記憶装置10のライフサイクルにわたって、最初のプログラムループにおけるメモリセルトランジスタMTの閾値電圧上昇量を最適な状態に保つことができ、プログラムループ数の増加を抑制することができる。したがって、W/E回数に依らず、書込み時間の増加を抑制することができる。
また、メモリコントローラ30は、初期設定処理及び更新処理の際には、コマンド“XXh”を半導体記憶装置10に出力する。これにより、半導体記憶装置10は、コマンド“XXh”を受けると、ベリファイ電圧Vsvに対するベリファイ処理を実行することができる。このため、半導体記憶装置10は、ベリファイ電圧Vsvに対するベリファイ処理が終了したプログラムループにおける書込み電圧を特定することができる。
また、メモリコントローラ30は、書込み処理が終了した後、コマンド“B0h”を半導体記憶装置10に出力する。これにより、半導体記憶装置10は、コマンド“B0h”を受けると、ベリファイ電圧Vsvに対するベリファイ処理によって特定された書込み電圧をメモリコントローラ30に出力することができる。このため、メモリコントローラ30は、最適な初期書込み電圧IVPGMを得ることができる。
また、メモリコントローラ30は、メモリ32内に初期書込み電圧管理テーブルを有し、当該テーブル内に、データ“DIVi”に対応する初期書込み電圧IVPGMを保持する。これにより、メモリコントローラ30は、半導体記憶装置10のライフサイクルにわたって、最適な初期書込み電圧IVPGMを把握することができる。
2. 第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。第2実施形態は、コマンド“XXh”を実行することなく、メモリコントローラ30内で更新処理を実行する点において、第1実施形態と異なる。以下では、第1実施形態と同等の構成及び動作についてはその説明を省略し、第1実施形態と異なる構成及び動作について主に説明する。
2.1 更新処理
第2実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理について説明する。
図13は、第2実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャートである。図13は、第1実施形態における図9に対応する。
図13に示すように、ステップST10において、メモリコントローラ30は、実運用フェーズ中に、ホスト機器2から書込み要求を受信する。
ステップST40Aにおいて、メモリコントローラ30は、書込み処理を実行する前に、W/E回数に基づき、初期書込み電圧管理テーブルの更新処理を実行する。より具体的には、例えば、メモリコントローラ30のCPU31には、W/E回数をパラメタとして初期書込み電圧IVPGMを算出可能な回路が実装される。これにより、メモリコントローラ30は、W/E回数を参照することにより、当該W/E回数に応じた初期書込み電圧IVPGMを算出することができ、当該算出された初期書込み電圧IVPGMを用いて初期書込み管理テーブルを更新することができる。
続いて、ステップST60において、メモリコントローラ30及び半導体記憶装置10は、初期書込み電圧の更新処理を伴わない書込み処理を実行し、処理はステップST70に進む。この場合、書込み処理は、ステップST40Aにおいて更新された初期書込み電圧管理テーブルを参照して、実行される。
ステップST70において、メモリコントローラ30は、初期書込み電圧管理テーブルを参照し、書込み対象に対応するグループに関連付けられたW/E回数をインクリメントする。
以上のように動作することにより、初期書込み電圧の検証処理を伴う書込み処理を実行することなく、W/E回数に応じて初期書込み電圧管理テーブルを更新することができる。
2.2 本実施形態に係る効果
第2実施形態によれば、メモリコントローラ30は、コマンド“XXh”を発行することなく、W/E回数に基づいて初期書込み電圧管理テーブルを更新する。これにより、半導体記憶装置10は、ベリファイ電圧Vsvに対するベリファイ処理の実行を省略することができる。このため、書込み処理時間の増加を抑制することができる。
図14は、第2実施形態に係るメモリシステムの効果を説明するためのダイアグラムである。図14は、第1実施形態における図12に対応する。図14では、比較例に係るメモリシステムに対応する線L1(L1a及びL1b)と、第2実施形態に係るメモリシステムに対応する線L3(L3a及びL3b)と、が示される。
より具体的には、図14の上部は、W/E回数を横軸にとり、過書込みとなる書込み電圧に対する初期書込み電圧が有するマージンを縦軸に取ったダイアグラムを示す。図14の上部のダイアグラムでは、比較例に係るメモリシステムの特性が線L1aとして、第2実施形態に係るメモリシステムの特性が線L3aとして示される。また、図14の下部は、W/E回数を横軸にとり、初期書込み電圧を縦軸に取ったダイアグラムを示す。図14の下部のダイアグラムでは、比較例に係るメモリシステムの特性が線L1bとして、第2実施形態に係るメモリシステムの特性が線L3bとして示される。
図14の下部に示すように、比較例に係るメモリシステムがW/E回数に依らずに一定の初期書込み電圧IVPGMであるのに対し、第2実施形態に係るメモリシステムでは、書込み処理毎に、W/E回数に応じて、初期書込み電圧IVPGMの値を更新する。具体的には、メモリコントローラ30内のCPU31には、W/EをパラメタとしてIVPGMを算出可能な(すなわち、IVPGM=f(W/E)を実行可能な関数fとして機能する)回路が実装される。これにより、メモリコントローラ30は、書込み処理毎に初期書込み電圧IVPGMを算出し、初期書込み電圧管理テーブルを更新することができる。
これにより、図12の上部における線L3aに示すように、メモリコントローラ30は、W/E回数に依らず、常に過書込みとなる書込み電圧に対して適切なマージンを取るようにすることができる。このため、W/E回数に依らず、最初のプログラムループにおけるメモリセルトランジスタMTの閾値電圧上昇量を最適な状態に保つことができ、プログラムループ数の増加を抑制することができる。したがって、W/E回数に依らず、書込み時間の増加を実質的に一定の状態に保つことができる。
3. 第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。第3実施形態は、第1実施形態と第2実施形態を組み合わせて実行する。以下では、第1実施形態及び第2実施形態と同等の構成及び動作についてはその説明を省略し、第1実施形態及び第2実施形態と異なる構成及び動作について主に説明する。
3.1 更新処理
第3実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理について説明する。
図15は、第3実施形態に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するためのフローチャートである。図15は、第1実施形態における図9及び第2実施形態における図13に対応する。
図15に示すように、ステップST10において、メモリコントローラ30は、実運用フェーズ中に、ホスト機器2から書込み要求を受信する。
ステップST20において、メモリコントローラ30は、メモリ32内の初期書込み電圧管理テーブルを参照し、書込み対象の複数のメモリセルトランジスタMTが分類されたグループに対応するW/E回数が所定の閾値N以上であるか否かを判定する。
W/E回数が閾値N以上であると判定された場合(ステップST20;yes)、処理はステップST30〜ST50に進む。
ステップST30において、メモリコントローラ30及び半導体記憶装置10は、初期書込み電圧の検証処理を伴う書込み処理を実行し、処理はステップST40に進む。
ステップST40において、メモリコントローラ30及び半導体記憶装置10は、検証処理の結果に基づき、初期書込み電圧管理テーブルの更新処理を実行し、処理はステップST50に進む。
ステップST50において、メモリコントローラ30は、当該フロー以降の、ホスト機器2からの新たな書込み要求に際しての更新処理の発動条件判定に適用する閾値をNからN(i+1)(>N)に更新し、処理はステップST70に進む。
一方、ステップST20においてW/E回数が閾値Ni未満であると判定された場合(ステップST20;nо)、処理はステップST40Aに進む。
ステップST40Aにおいて、メモリコントローラ30は、書込み処理を実行する前に、W/E回数に基づき、初期書込み電圧管理テーブルの更新処理を実行し、処理はステップST60に進む。
ステップST60において、メモリコントローラ30及び半導体記憶装置10は、初期書込み電圧の更新処理を伴わない書込み処理を実行し、処理はステップST70に進む。この場合、書込み処理は、ステップST40Aにおいて更新された初期書込み電圧管理テーブルを参照して、実行される。
ステップST70において、メモリコントローラ30は、初期書込み電圧管理テーブルを参照し、書込み対象に対応するグループ(例えば、ワード線WLやストリングユニットSU等)に関連付けられたW/E回数をインクリメントする。
以上のように動作することにより、W/E回数が一定回数に達するまではCPU31がW/E回数に応じて初期書込み電圧IVPGMを算出し、W/E回数が一定回数に達する度に、半導体記憶装置10に初期書込み電圧IVPGMの検証処理を伴う書込み処理を実行させることができる。
3.2 本実施形態に係る効果
第3実施形態によれば、W/E回数が閾値Nに達するまでは、メモリコントローラ30は、初期書込み電圧の検証処理を伴う書込み処理を実行することなく、初期書込み電圧IVPGMを更新する。これにより、W/E回数が閾値Nに達するまでの期間において、CPU31が予測する最適な初期書込み電圧を適用することができる。
また、W/E回数が閾値Nに達すると、メモリコントローラ30は、初期書込み電圧の検証処理を伴う書込み処理を実行することにより、最適な初期書込み電圧IVPGMの実測値を得る。これにより、W/E回数が閾値Nに達する度に最適な初期書込み電圧IVPGMの予測値と実測値とのずれを解消することができる。したがって、過書込みとなる書込み電圧に対する初期書込み電圧IVPGMのマージンを常に最適な状態に保つことができる。
4.変形例等
以上、種々の実施形態について説明したが、第1実施形態、第2実施形態、及び第3実施形態は、これに限られず、種々の変形が適宜適用可能である。
4.1 第1変形例
例えば、第1実施形態、第2実施形態、及び第3実施形態では、図5に示したように、メモリ32内において、セルユニットCU毎に初期書込み電圧IVPGMが管理される場合について説明したが、これに限られない。例えば、複数のセルユニットCU、複数のストリングユニットSU、複数のワード線WL、複数のブロックBLK、又は複数のチップChipでグループ化することにより、同一のグループでは同じ初期書込み電圧IVPGMが適用されてもよい。すなわち、同一のグループは、メモリセルアレイ17への書込み単位、消去単位、又はワード線WL単位であってもよいし、これらの複数の単位を任意に含んでいてもよい。
図16は、第1変形例に係るメモリシステムの初期書込み電圧管理テーブルを説明するための概念図である。図16の例では、1つの初期書込み電圧IVPGMが、同一のワード線WLに接続される複数のメモリセルトランジスタMTに対して(ストリングユニットSUに依らずに)割り当てられている。これにより、初期書込み電圧管理テーブルのサイズを圧縮することができ、メモリコントローラ30の負荷を低減することができる。また、W/E回数に対する閾値電圧の上昇特性が同等の傾向を示す複数のメモリセルトランジスタMTをグループ化することで、初期書込み電圧IVPGMの最適化の精度を劣化させることなく、テーブルサイズを圧縮することができる。
図16の例では、チップChip0のブロックBLK0内においてグループ化される場合が示されているが、1つのグループに含まれるメモリセルトランジスタMTは、異なる複数のブロックBLKにまたがっていてもよい。例えば、ワード線WL0に接続される複数のメモリセルトランジスタMTは、属するブロックBLKやチップChipに依らず、1つのグループに含まれ得る。
なお、第1変形例において、W/E回数は、初期書込み電圧IVPGMがグループ化された単位よりも小さな単位で管理されていてもよい。この場合、更新処理に用いられるW/E回数としては、例えば、当該グループ内におけるW/E回数の最大値又は平均値等が適用可能である。
また、メモリコントローラ30は、複数回のプログラムループによってデータが書き込まれる書込み方式を用いる場合、初期書込み電圧管理テーブル内の同一のグループに対して、当該複数回のプログラムループの各々に対応する初期書込み電圧IVPGM及びW/E回数の組をそれぞれ記憶してもよい。
複数回のプログラムループによってデータが書き込まれる書込み方式の第1例としては、1回目のプログラムループによって全ページのうちの一部分(例えば、QLC書込み方式では4ページのうちの2ページ)に対応するデータを書き込み、2回目のプログラムループによって残りのページに対応するデータを更に書き込む方式が挙げられる。第1例では、メモリセルトランジスタMTに対して、2段階にデータを書き込むことができる。
また、複数回のプログラムループによってデータが書き込まれる書込み方式の第2例としては、1回目のプログラムループによって書込み対象及びその周囲を含むメモリセルトランジスタMTの閾値電圧をある程度まで上昇させておき、2回目のプログラムループによって閾値電圧分布の形状の詳細を調整する書込み方式が挙げられる。第2例によれば、周囲のメモリセルトランジスタMTへの書込み処理によって書込み対象のメモリセルトランジスタMTの閾値電圧が変動する影響を低減することができる。
図17は、第1変形例の更なる変形例に係るメモリシステムの初期書込み電圧管理テーブルを説明するための概念図である。図17の例では、2つの初期書込み電圧IVPGM及びW/E回数の組が、同一のグループに対して割り当てられている。これにより、上述したような書込み処理に複数回(図17の例では2回)のプログラムループを実行する書込み方式において、各プログラムループに対して独立に初期書込み電圧IVPGM及びW/E回数の組を管理できる。
4.2 第2変形例
また、例えば、第1実施形態、第2実施形態、及び第3実施形態では、初期書込み電圧管理テーブルでグループ化された単位毎に、初期書込み電圧の検証処理を伴う書込み処理が実行される場合について説明したが、これに限られない。例えば、初期書込み電圧管理テーブルにおける1つのグループに対して実行された更新処理の結果を、他のグループに対して反映させてもよい。
図18は、第2変形例に係るメモリシステムにおける初期書込み電圧管理テーブルの更新処理を説明するための概念図である。図18では、初期書込み電圧管理テーブルのうちの1つのエントリに対して実行された初期書込み電圧IVPGMの更新処理が、他のエントリに反映される様子が模式的に示されている。
図18の例では、初期書込み電圧管理テーブルには、ワード線WL及びストリングユニットSUの組毎(すなわち、セルユニットCU毎)に、初期書込み電圧IVPGMが保持されている場合が示される。具体的には、例えば、ワード線WL0に接続されてストリングユニットSU0に属する複数のメモリセルトランジスタMT(WL0/SU0)には、初期書込み電圧IVPGM=VPGM0+13ΔVPGMが対応付けられる。また、ワード線WL1に接続されたストリングユニットSU1〜SU3に属する複数のメモリセルトランジスタMT(WL0/SU1〜WL0/SU3)には、初期書込み電圧IVPGM=VPGM0+12ΔVPGM、VPGM0+12ΔVPGMが対応付けられる。ワード線WL1に接続されてストリングユニットSU1に属する複数のメモリセルトランジスタMT(WL1/SU0)には、初期書込み電圧IVPGM=VPGM0+14ΔVPGMが対応付けられる。
ここで、メモリコントローラ30は、上述のような初期書込み電圧管理テーブルのうち、WL1/SU0に対する更新処理を実行する。これにより、WL1/SU0には、初期書込み電圧IVPGM=VPGM0+12ΔVPGMが対応付けられたものとする。この場合、WL1/SU0に対応付けられる初期書込み電圧IVPGMは、−2ΔVPGMだけ変化する。
第2変形例では、WL1/SU0に対する更新処理の結果(2ΔVPGMの減算)を、他のグループに対しても反映する。これにより、1つのグループに対して更新処理を実行すれば、他のグループに対する更新処理を実行することなく、初期書込み電圧IVPGMを適切な値に管理することができる。このため、例えば、検証処理を伴う書込み処理の実行回数の増加を抑制することができ、ひいては、書込み処理時間の増加を抑制することができる。
なお、図18の例では、1つのグループに対する更新処理の結果を全てのグループに対して一様に反映する場合を示したが、これに限られない。例えば、或るグループに対する更新処理の結果を反映可能な複数のグループが、予め設定されていてもよい。これにより、更新処理の結果を、同等の閾値電圧上昇特性を有する一群のグループに対して適切に反映させることができる。
4.3 第3変形例
また、例えば、初期書込み電圧IVPGMは、W/E回数以外のパラメタを用いて更新されてもよい。
図19は、第3変形例に係るメモリシステムにおける半導体記憶装置の構成を説明するためのブロック図である。図19に示すように、半導体記憶装置10は、温度センサ14Sを更に含み得る。
温度センサ14Sは、例えば、半導体記憶装置10内(例えば、メモリセルアレイ17)の温度を測定する。シーケンサ14は、温度センサ14Sの温度測定結果を取得すると、当該測定結果をメモリコントローラ30に送出する。
以上のように構成することにより、メモリコントローラ30は、半導体記憶装置10内の温度状態に基づき、初期書込み電圧IVPGMを補正することができる。
図20は、第3変形例に係るメモリシステムにおける初期書込み電圧補正テーブルを説明するための概念図である。初期書込み電圧補正テーブルは、例えば、メモリコントローラ30のメモリ32内に予め保持されている。
図20に示すように、初期書込み電圧補正テーブルには、W/E回数と、温度センサ14Sからの温度情報とに基づいて、初期書込み電圧IVPGMの補正量が設定されている。図20の例では、例えば、W/E回数がNからNまでの範囲の際に、半導体記憶装置10の温度が低温状態である場合や、高温状態である場合に応じて、初期書込み電圧IVPGMが設定される。また、例えば、W/E回数がNからNまでの範囲とは異なる範囲(例えば、NからNまでの範囲)の際には、半導体記憶装置10の温度が低温状態である場合や、高温状態である場合に応じて、異なる初期書込み電圧IVPGMが設定される。ここで、低温状態及び高温状態とはそれぞれ、半導体記憶装置10の温度が平温状態(例えば、室温)である場合と比較して、有意に低い状態、及び有意に高い状態を意味している。
以上のように構成することにより、メモリコントローラ30は、書込み処理を実行する際、予め半導体記憶装置10の温度情報を取得しておくことで、初期書込み電圧補正テーブルを参照することにより、初期書込み電圧IVPGMの補正量を得ることができる。これにより、最適な初期書込み電圧の温度依存性がW/E回数に応じて変化する場合でも、初期書込み電圧補正テーブルに基づき、初期書込み電圧IVPGMを適切に補正することができる。
4.4 その他
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、2…ホスト機器、10…半導体記憶装置、11…入出力回路、12…レジスタセット、12A…ステータスレジスタ、12B…アドレスレジスタ、12C…コマンドレジスタ、13…ロジックコントローラ、14…シーケンサ、14S…温度センサ、15…レディ/ビジー制御回路、16…電圧生成回路、17…メモリセルアレイ、18…ロウデコーダモジュール、19…センスアンプモジュール、20…バッファメモリ、30…メモリコントローラ、31…CPU、32…メモリ、33…ホストインタフェース回路、34…ECC回路、35…NANDインタフェース回路、36…RAMインタフェース回路、210…ホストインタフェース回路、220…メモリ、230…プロセッサ、240…バッファメモリ、250…NANDインタフェース回路、260…ECC回路、300…ホスト機器。

Claims (11)

  1. 各々が複数のメモリセルを含む複数のグループを含むメモリセルアレイと、制御回路と、を含む半導体記憶装置と、
    前記複数のグループのうちの第1グループに対する書込み処理を実行する際、最初のプログラムループにおいて使用される初期書込み電圧を示す第1データを前記半導体記憶装置に出力するように構成されたメモリコントローラと、
    を備え、
    前記メモリコントローラは、前記第1グループに対する前記書込み処理の回数及び/又は消去処理の回数を含む評価値に応じて、前記第1データを更新するように構成された、
    メモリシステム。
  2. 前記メモリコントローラは、前記書込み処理を実行する際、
    前記評価値が第1閾値以上か否かを判定し、
    前記判定の結果、前記評価値が前記第1閾値以上であると判定された第1ケースには、第1コマンドを前記半導体記憶装置に更に出力する
    ように構成され、
    前記制御回路は、前記第1コマンドを受けると、前記書込み処理の際に、第1電圧を使用して、前記第1グループが条件を満たすプログラムループにおける書込み電圧を特定するように構成された、
    請求項1記載のメモリシステム。
  3. 前記メモリコントローラは、前記第1コマンドを出力した後、第2コマンドを前記半導体記憶装置に更に出力するように構成され、
    前記制御回路は、前記第2コマンドを受けると、前記特定された書込み電圧を示す第2データを前記メモリコントローラに出力するように構成された、
    請求項2記載のメモリシステム。
  4. 前記メモリコントローラは、前記第1データを前記第2データに更新するように構成された、
    請求項3記載のメモリシステム。
  5. 前記メモリコントローラは、前記第1ケースには、
    前記第1閾値を前記第1閾値より大きい第2閾値に更新し、
    前記第1グループに対する更なる書込み処理の際に前記第2閾値を適用する
    ように構成された、
    請求項2記載のメモリシステム。
  6. 前記メモリコントローラは、前記判定の結果、前記評価値が前記第1閾値未満であると判定された第2ケースには、前記第1コマンドを出力せずに前記書込み処理を実行するように構成され、
    前記第1ケースにおいて適用される初期書込み電圧は、前記第2ケースにおいて適用される初期書込み電圧よりも低い、
    請求項2記載のメモリシステム。
  7. 前記メモリコントローラは、前記評価値に応じて、前記第1データを、前記第1データに対応する初期書込み電圧以下の初期書込み電圧を示す第2データに更新するように構成された、
    請求項1記載のメモリシステム。
  8. 前記第1グループは、前記メモリセルアレイの書込み単位、消去単位、又は前記複数のメモリセルに接続されるワード線単位のグループを含む、
    請求項1記載のメモリシステム。
  9. 前記メモリコントローラは、前記第1グループに対する前記第1データから前記第2データへの更新の差分を、前記複数のグループのうちの第2グループに対して適用するように構成された、
    請求項4記載のメモリシステム。
  10. 前記評価値は、前記半導体記憶装置の温度情報を更に含む、
    請求項1記載のメモリシステム。
  11. 前記メモリコントローラは、前記第1データを保持するレジスタを含む、
    請求項1記載のメモリシステム。
JP2019008005A 2019-01-21 2019-01-21 メモリシステム Pending JP2020119618A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019008005A JP2020119618A (ja) 2019-01-21 2019-01-21 メモリシステム
US16/548,136 US10957405B2 (en) 2019-01-21 2019-08-22 Memory system configured to update write voltage applied to memory cells based on number of write or erase operations
US17/190,125 US11501839B2 (en) 2019-01-21 2021-03-02 Memory system configured to determine a write voltage applied to memory cells based on the number of erase operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019008005A JP2020119618A (ja) 2019-01-21 2019-01-21 メモリシステム

Publications (1)

Publication Number Publication Date
JP2020119618A true JP2020119618A (ja) 2020-08-06

Family

ID=71610006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019008005A Pending JP2020119618A (ja) 2019-01-21 2019-01-21 メモリシステム

Country Status (2)

Country Link
US (2) US10957405B2 (ja)
JP (1) JP2020119618A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11664979B2 (en) 2019-09-13 2023-05-30 Kioxia Corporation Storage system of key-value store which executes retrieval in processor and control circuit, and control method of the same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119618A (ja) * 2019-01-21 2020-08-06 キオクシア株式会社 メモリシステム
US10957393B2 (en) * 2019-06-27 2021-03-23 Micron Technology, Inc. Apparatus and methods for performing concurrent access operations on different groupings of memory cells
KR102645786B1 (ko) * 2019-07-08 2024-03-12 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7339834B2 (en) 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7453731B2 (en) 2006-09-12 2008-11-18 Sandisk Corporation Method for non-volatile memory with linear estimation of initial programming voltage
EP2383748A3 (en) 2006-09-12 2012-03-28 SanDisk Corporation Non-volatile memory and method for linear estimation of initial programming voltage
US7551482B2 (en) 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
JP5542737B2 (ja) * 2011-05-12 2014-07-09 株式会社東芝 不揮発性半導体記憶装置
KR102248276B1 (ko) * 2014-05-26 2021-05-07 삼성전자주식회사 스토리지 장치의 동작 방법
JP6196199B2 (ja) 2014-09-12 2017-09-13 東芝メモリ株式会社 半導体記憶装置
US10395723B2 (en) * 2017-03-07 2019-08-27 Toshiba Memory Corporation Memory system that differentiates voltages applied to word lines
JP2020119618A (ja) * 2019-01-21 2020-08-06 キオクシア株式会社 メモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11664979B2 (en) 2019-09-13 2023-05-30 Kioxia Corporation Storage system of key-value store which executes retrieval in processor and control circuit, and control method of the same

Also Published As

Publication number Publication date
US20210183455A1 (en) 2021-06-17
US10957405B2 (en) 2021-03-23
US20200234776A1 (en) 2020-07-23
US11501839B2 (en) 2022-11-15

Similar Documents

Publication Publication Date Title
US20240021250A1 (en) Memory system
US10573394B2 (en) Memory system
US10957405B2 (en) Memory system configured to update write voltage applied to memory cells based on number of write or erase operations
JP6088751B2 (ja) 半導体メモリ
TWI602187B (zh) Semiconductor memory devices and memory systems
US10360974B2 (en) Non-volatile semiconductor memory in which data writing to cell groups is controlled using plural program pulses
US10971234B2 (en) Page buffer, a memory device having page buffer, and a method of operating the memory device
JP7128088B2 (ja) メモリシステム
US11099931B2 (en) Memory system
US10860251B2 (en) Semiconductor memory device
US20120008397A1 (en) Memory system and method of operating the same
JP2011204298A (ja) 不揮発性半導体メモリ
JP2019200828A (ja) 半導体記憶装置
US11967379B2 (en) Memory device
US11710515B2 (en) Memory system
JP2022046092A (ja) メモリシステム及び情報処理システム
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same
TWI835222B (zh) 記憶體系統
US11907579B2 (en) Memory system
US20240086077A1 (en) Memory system