JP2021086631A - ストレージ装置及びストレージ装置の動作方法 - Google Patents

ストレージ装置及びストレージ装置の動作方法 Download PDF

Info

Publication number
JP2021086631A
JP2021086631A JP2020195711A JP2020195711A JP2021086631A JP 2021086631 A JP2021086631 A JP 2021086631A JP 2020195711 A JP2020195711 A JP 2020195711A JP 2020195711 A JP2020195711 A JP 2020195711A JP 2021086631 A JP2021086631 A JP 2021086631A
Authority
JP
Japan
Prior art keywords
word line
states
program
word lines
memory
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
JP2020195711A
Other languages
English (en)
Inventor
振 祐 洪
Jinwoo Hong
振 祐 洪
燦 河 金
Chanha Kim
燦 河 金
羌 鎬 盧
Kangho Roh
羌 鎬 盧
承 京 盧
Seungkyung Ro
承 京 盧
允 ジュン 李
Heewon Lee
允 ジュン 李
熙 元 李
Hui Won Lee
熙 元 李
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2021086631A publication Critical patent/JP2021086631A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • 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
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • 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/20Initialising; Data preset; Chip identification
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B69/00Erasable-and-programmable ROM [EPROM] devices not provided for in groups H10B41/00 - H10B63/00, e.g. ultraviolet erasable-and-programmable ROM [UVEPROM] devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】不揮発性メモリセルにプログラムされる状態の個数をワードライン別に調整するストレージ装置及びストレージ装置の動作方法を提供する。【解決手段】ストレージ装置は、複数のワードラインをそれぞれ含む複数のメモリブロックを含む不揮発性メモリと、複数のワードラインのそれぞれに対してワードライン強度を判断し、ワードライン強度を基に複数のワードラインのそれぞれに関する状態個数を調整し、複数のワードライン間のプログラム時間偏差が低減されるように、複数のワードラインのそれぞれのプログラムパラメータを調整するメモリコントローラと、を備える。【選択図】図1

Description

本発明は、ストレージ装置に関し、より詳細には、不揮発性メモリセルにプログラムされる状態の個数をワードライン別に調整するストレージ装置及び該ストレージ装置の動作方法に関する。
不揮発性メモリとしてのフラッシュメモリは、電源が遮断されても保存しているデータを維持することができる。フラッシュメモリのワードラインに対してプログラム及び消去が進められるとき、ワードラインに連結されたメモリセルに高電圧が印加されることによりワードラインが老化し、ワードラインの強度が低下してしまう。メモリブロックに含まれる1本のワードラインの寿命が終了する場合、メモリブロックの寿命が終わってしまう。従って、ワードライン別にウェアレベリングが要求される。
特開2019−79520号公報
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、複数のワードラインのそれぞれの強度を基に、複数のワードラインのそれぞれに対してメモリセルがプログラミングされるレベルの個数を示す状態個数を調整するストレージ装置及びストレージ装置の動作方法を提供することにある。
上記目的を達成するためになされた本発明の一態様によるストレージ装置は、複数のワードラインをそれぞれ含む複数のメモリブロックを含む不揮発性メモリと、前記複数のワードラインのそれぞれに対してワードライン強度を判断し、前記ワードライン強度を基に前記複数のワードラインのそれぞれに関する状態個数を調整し、前記複数のワードライン間のプログラム時間偏差が低減されるように、前記複数のワードラインのそれぞれのプログラムパラメータを調整するメモリコントローラと、を備える。
上記目的を達成するためになされた本発明の一態様による不揮発性メモリを含むストレージ装置の動作方法は、前記不揮発性メモリの複数のワードラインのそれぞれに対してワードライン強度を算出する段階と、前記複数のワードラインのそれぞれの前記ワードライン強度を基に前記ワードラインのそれぞれに関する状態個数を調整する段階と、前記ワードライン間のプログラム時間偏差が低減されるように、前記ワードラインのそれぞれのプログラムパラメータを調整する段階と、を有する。
上記目的を達成するためになされた本発明の他の態様による不揮発性メモリを含むストレージ装置の動作方法は、前記不揮発性メモリに含まれる複数のワードラインのそれぞれに対してワードライン強度を算出する段階と、前記ワードライン強度を基に前記複数のワードラインを複数のワードライングループにグルーピングする段階と、前記ワードライングループ別に前記複数のワードライングループのそれぞれのワードラインの状態個数を調整する段階と、前記ワードライングループ別に前記ワードライングループ間のプログラム時間偏差が低減されるように、前記ワードライングループのそれぞれのプログラムパラメータを調整する段階と、を有する。
本発明によれば、特定ワードラインが老化によって書き込み及び/又は読み取りがそれ以上不可能になることを防止することができ、これによりメモリブロックの寿命が延長され、不揮発性メモリ及びストレージ装置の信頼性を向上させることができる。
本発明の一実施形態によるストレージ装置を示すブロック図である。 本発明の一実施形態によるストレージ装置におけるワードラインの状態個数が調整される一例を示す図である。 本発明の一実施形態によるストレージ装置におけるワードラインの状態個数が調整される一例を示す図である。 本発明の一実施形態によるメモリコントローラを概略的に示すブロック図である。 図3Aのメモリコントローラの動作方法を示すフローチャートである。 本発明の一実施形態によるメモリコントローラにおける状態個数の調整のいかんを決定する方法を示すフローチャートである。 本発明の一実施形態によるメモリコントローラにおける状態個数の調整のいかんを決定する方法を示すフローチャートである。 本発明の一実施形態によるメモリコントローラにおける状態個数の調整のいかんを決定する方法を示すフローチャートである。 本発明の一実施形態によるメモリコントローラのシステム図である。 本発明の一実施形態による不揮発性メモリを示すブロック図である。 図6のメモリセルアレイの具現例を示すブロック図である。 図6のメモリセルアレイの具現例を示すブロック図である。 本発明の一実施形態によるメモリコントローラに具備されるメモリブロックの一例を示す回路図である。 図8Aのメモリブロックの斜視図である。 本発明の一実施形態によるワードラインのスレショルド電圧散布の一例示すグラフである。 図9Aのワードラインのそれぞれのプログラムパラメータ及び状態指標の一例示すテーブルである。 本発明の一実施形態による不揮発性メモリのプログラム動作を示すタイミング図である。 本発明の一実施形態によるワードラインの状態個数が調整された場合のワードラインのスレショルド電圧散布の一例を示すグラフである。 図11Aのワードラインのそれぞれのプログラムパラメータ及び状態指標の一例を示すテーブルである。 本発明の一実施形態によるワードラインの状態個数が調整された場合のワードラインのスレショルド電圧散布の一例を示すグラフである。 図12Aのワードラインのそれぞれのプログラムパラメータ及び状態指標の一例を示すテーブルである。 本発明の一実施形態によるメモリセル当たりの分数ビットが保存される方式の一例について説明するテーブルである。 本発明の一実施形態によるメモリセル当たりの分数ビットが保存される方式の一例について説明する図である。 本発明の一実施形態によるメモリセル当たりの分数ビットが保存される方式の一例について説明する図である。 本発明の一実施形態によるメモリコントローラを概略的に示すブロック図である。 図15Aのメモリコントローラの動作方法を示すフローチャートである。 本発明の一実施形態による強化学習モジュールの動作方法を示す図である。 本発明の一実施形態によるメモリコントローラを概略的に示すブロック図である。 図17Aのメモリコントローラの動作方法を示すフローチャートである。 本発明の一実施形態による複数のワードラインのグルーピングの一例を示す図である。 本発明の一実施形態による複数のワードラインのグルーピングの一例を示す図である。 本発明の一実施形態によるSSDシステムを示すブロック図である。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
図1は、本発明の一実施形態によるストレージ装置を示すブロック図である。
図1を参照すると、ストレージ装置100はメモリコントローラ110及び不揮発性メモリ(NVM)120を含み、ストレージ装置100は、多様なインターフェースを介してホストと通信することにより、ホストから受信されるデータを保存するか又は保存されたデータをホストに伝送する。
一実施形態において、ストレージ装置100は、電子装置に内蔵される内蔵メモリ装置である。例えば、ストレージ装置100は、SSD(solid static driver)、埋め込みUFS(universal flash storage)、又はeMMC(embedded multi−media card)である。一実施形態において、ストレージ装置100は、電子装置に脱着可能な外装メモリである。例えば、ストレージ装置100は、携帯用SSD、UFS、CF(compact flash)カード、SD(secure digital)カード、Micro−SD(micro secure digital)カード、Mini−SD(mini secure digital)カード、xD(extreme digital)カード、又はメモリスティック(登録商標)(memory stick)である。
ストレージ装置100を内蔵するか又はストレージ装置100に連結される電子装置は、例えばPC(personal computer)、データサーバ、ネットワーク結合ストレージ、IoT(internet of things)装置、又は携帯用電子機器である。携帯用電子機器は、ラップトップコンピュータ、移動電話機、スマートフォン、タブレットPC、PDA(personal digital assistant)、EDA(enterprise digital assistant)、デジタルスチールカメラ、デジタルビデオカメラ、オーディオ装置、PMP(portable multimedia player)、PND(personal navigation device)、MP3プレーヤ、携帯用ゲームコンソール(handheld game console)、電子書籍(e−book)、ウェアラブル機器などである。
不揮発性メモリ120は、電源が遮断されても、保存しているデータが維持される特性を有するメモリ又はメモリ装置を指す。従って、ストレージ装置100に供給される電力が遮断されても、不揮発性メモリ120に保存されたデータは維持される。例えば、データはユーザデータである。
不揮発性メモリ120は、メモリコントローラ110の制御によって動作する。例えば、不揮発性メモリ120は、メモリコントローラ110からコマンドCMD、アドレスADDR、及び制御信号CTRLを受信し、受信されたコマンドCMDに応答してアドレスADDRに対応するデータDTを書き込むか又はアドレスADDRに対応するデータDTを読み取り、読み取られたデータDTをメモリコントローラ110に伝送する。
不揮発性メモリ120は、複数のメモリブロック(BLK1〜BLKz)を含み、複数のメモリブロック(BLK1〜BLKz)のそれぞれは、複数のワードラインを含む。ここで、zは2以上の正の整数であり、一実施形態により多様に変更される。ワードラインには複数のメモリセルが連結され、同一ワードラインに連結された複数のメモリセルは物理ページを構成する。メモリセルが2ビット以上のデータを保存するマルチレベルセルである場合、ワードラインには複数の論理ページに該当するデータが保存される。例えば、メモリブロックは消去単位であり、ページはプログラム単位及び読み取り単位である。即ち、一実施形態によると、消去はメモリブロック単位で行われ、プログラム及び読み取りはページ単位で行われる。一実施形態において、不揮発性メモリ120は、複数のプレーン(planes)、複数のダイ(dies)、又は複数のチップ(chips)を含む。
一実施形態において、不揮発性メモリ120は、NANDフラッシュメモリ装置である。一実施形態において、不揮発性メモリ120は二次元水平アレイ構造を有するプレーナ型NANDフラッシュメモリ装置(図2A参照)であるか、或いは不揮発性メモリ120は三次元アレイ構造(three−dimensional array structure)を有する垂直型NANDフラッシュ(VNAN:vertical NAND)メモリ装置(図3A参照)である。しかし、それらに制限されるものではなく、不揮発性メモリ120は、ReRAM(resistive random access memory)、PRAM(phase change RAM)、MRAM(magnetic RAM)のような抵抗型メモリ装置であり得る。以下において、説明の便宜のために、不揮発性メモリ120はNANDフラッシュメモであるとして説明するが、本発明はそれに制限されないという点は、理解されるであろう。
メモリコントローラ110は、ストレージ装置100の全般的な動作を制御する。メモリコントローラ110は、また不揮発性メモリ120に対して遂行される書き込み動作、読み取り動作、及び消去動作を制御し、書き込み動作、読み取り動作、及び消去動作に関するパラメータを設定して調整する。
例えば、メモリコントローラ110は、ホストの要請に応答してホストから受信されるデータを不揮発性メモリ120に書き込むか、又は不揮発性メモリ120からデータDTを読み取り、読み取られたデータDTをホストに送信する。メモリコントローラ110はデータDTをエンコーディングして不揮発性メモリ120に伝送し、不揮発性メモリ120は、ページ単位でエンコーディングされたデータを各ワードラインにプログラムする。メモリコントローラ110は、不揮発性メモリ120から読み取られたデータDTをデコーディングする。
メモリセルは、設定されたビット(整数ビット又は非整数ビット、例えば分数ビット(fractional bit))によって割り当てられる複数の状態(即ち、消去状態、及び1以上のプログラム状態)のうちの一つによってプログラムされる。例えば、メモリセルが2ビットのデータを保存する場合、メモリセルは、4個(=2)の状態のうちの一つによってプログラムされる。メモリセルが2.5ビットのデータを保存する場合、メモリセルは、6個の態のうちの一つによってプログラムされる。それにより、データが不揮発性メモリ120に書き込まれる。
メモリコントローラ110は、不揮発性メモリ120のメモリ単位で、メモリ単位に含まれる複数のワードラインのそれぞれの状態個数を設定又は調整する。具体的に、複数のワードラインのそれぞれに対して当該ワードラインに連結されるメモリセルにプログラムされる状態(消去状態、及び少なくとも1つのプログラム状態)の個数(即ち、状態個数)を設定又は調整する。このとき、メモリ単位は、ブロック単位、チップ単位、又はウェーハ単位である。
メモリコントローラ110は、複数のワードラインのそれぞれに対応する複数のワードライン強度(strength)(以下、強度とする)を算出し(即ち、複数のワードラインのそれぞれの強度を算出する)、算出された複数の強度を基に、複数のワードラインのそれぞれの状態個数を設定又は調整する。メモリコントローラ110は、相対的に強度が高いワードライン、例えば強い(strong)ワードラインに対して相対的に強度が低いワードライン、例えば弱い(weak)ワードラインよりも更に多くの個数の状態が割り当てられるように、複数のワードラインのそれぞれの状態個数を設定又は調整する。
NANDフラッシュにおいて、ワードラインに対して多くの回数のプログラム又は消去動作が遂行されると、ワードラインに反復的にストレス(例えば、高電圧)が印加され、それによってワードラインが老化(aging)する。各ワードラインに加えられるストレスは経時的に異なり、従って複数のワードラインはそれぞれ異なる強度(即ち、ワードライン強度)を有する。ワードラインが老化するほどワードラインの強度が低下し、ワードラインが弱くなってしまう。
メモリコントローラ110は、複数のワードラインのそれぞれに対応する複数の強度を基に複数のワードラインのそれぞれの状態個数を調整することにより、ワードライン別にウェアレベリングを行う。ワードラインに多くの状態個数が割り当てられるほど、ワードラインがプログラムされるときにワードラインに加えられるストレスは増加する。弱いワードラインには少ない個数の状態が割り当てられ、強いワードラインには相対的に多くの個数の状態が割り当てられることにより、弱いワードラインに加えられるストレスが低減する。それにより、特定のワードラインの老化が他のワードラインの老化よりも早く進むことが防止される。
一実施形態において、メモリコントローラ110は、複数のワードラインのワードライン強度を基に複数のワードラインを複数のワードライングループにグルーピングし、複数のワードライングループのそれぞれに対して状態個数及びプログラムパラメータを動的に調整する。即ち、一実施形態において、ワードライングループに含まれるワードラインは、個別的ではなく共に調整される。
一実施形態において、メモリコントローラ110は、強化学習(reinforcement learning)を介して複数のワードラインのそれぞれの状態個数を調整する。メモリコントローラ110は、事前にプロファイリング(profiling)された情報を基に強化学習を行う。
一実施形態において、メモリコントローラ110は、ストレージ装置100のランタイム(run time)の間、周期的又は非周期的に複数のワードラインのそれぞれの状態個数を調整する。しかし、それに制限されるものではなく、他の実施形態において、メモリコントローラ110は、複数のワードラインのそれぞれの状態個数を予め設定し(例えば、設定された状態個数は、予めメモリに保存される)、ストレージ装置100のランタイムの間に設定された状態個数に基づき不揮発性メモリ120のプログラム動作及び読み取り動作を制御する。
一実施形態において、メモリコントローラ110は、複数のワードラインのそれぞれの状態個数を調整することにより、複数のワードラインのそれぞれに対するプログラムパラメータを動的に調整する。例えば、状態個数が多いワードラインのプログラム時間は、状態個数が少ないワードラインのプログラム時間よりも長い。ここで、プログラム時間は、ワードラインに対してプログラムが行われるときに、プログラムが始まって終わるまでの時間を意味する。メモリコントローラ110は、複数のワードラインのそれぞれに対するプログラムパラメータを動的に調整することにより、複数のワードライン間のプログラム時間差(program time variation)を低減させる。
上述のように、本実施形態によるストレージ装置100は、複数のワードラインのそれぞれの強度を算出し、複数のワードラインのそれぞれに対応する複数の強度を基に、ワードライン別に状態個数を調整する。強いワードラインには相対的に多くの個数の状態が割り当てられ、弱いワードラインには相対的に少ない個数の状態が割り当てられる。それにより、強いワードラインの状態個数は増加され、弱いワードラインの状態個数が減少される。状態個数が調整された後、ストレージ装置100は、ワードライン間のプログラム時間偏差を低減させるために、ワードライン別にプログラムパラメータを動的に調整する。
メモリブロックを構成する複数のワードラインのうちの1本のワードラインで書き込み及び/又は読み取りがそれ以上不可能になる場合、即ちワードラインから読み取られるデータに対してデコーディングがそれ以上不可能になる場合、当該メモリブロックに対するそれ以上の書き込み及び読み取りが不可能である。本実施形態によるストレージ装置100は、強いワードラインには相対的に多くの個数の状態が割り当てられ、弱いワードラインには相対的に少ない個数の状態が割り当てられるように、ワードライン別に状態個数を調整することにより、ワードライン別にウェアレベリングを行う。それにより、特定ワードラインが老化によって書き込み及び/又は読み取りがそれ以上不可能になることを防止することができ、メモリブロックの寿命が延長され、不揮発性メモリ120及びストレージ装置100の信頼性が向上する。
図2A及び図2Bは、本発明の一実施形態によるストレージ装置におけるワードラインの状態個数が調整される一例を示す図である。
説明の便宜のために、図2Aでは、2本のワードライン、即ち第1ワードラインWL1及び第2ワードラインWL2を例に挙げて説明し、図2Bでは、3本のワードライン、即ち第1ワードラインWL1、第2ワードラインWL2、及び第3ワードラインWL3を例に挙げて説明する。しかし、本発明はそれらに制限されるものではなく、状態個数の調整は、メモリ単位、例えばメモリブロック、メモリチップ、又はメモリロットに含まれる複数のワードラインに対して行われる。
図2Aを参照すると、第1ワードラインWL1及び第2ワードラインWL2には、それぞれ8個の状態(即ち、消去状態E、及び第1プログラム状態P1〜第7プログラム状態P7)が割り当てられ、プログラム段階において、第1ワードラインWL1及び第2ワードラインWL2は、8個の状態のうちの一つによってプログラムされる。それにより、第1ワードラインWL1のメモリセル及び第2ワードラインWL2のメモリセルには、それぞれ3ビットのデータが保存される。
第1ワードラインWL1及び第2ワードラインWL2のそれぞれに対するプログラム動作、読み取り動作、及び消去動作が進められることにより、第1ワードラインWL1及び第2ワードラインWL2が老化し、第1ワードラインWL1の強度は相対的に高くなり、第2ワードラインWL2の強度は相対的に低くなる。例えば、第1ワードラインWL1に対するプログラム回数及び/又は読み取り回数が第2ワードラインWL2に対するプログラム回数及び/又は読み取り回数よりも多い場合、第1ワードラインWL1の強度が第2ワードラインWL2の強度よりも高くなる。
強いワードラインに更に多数の状態が割り当てられ、弱いワードラインに少数の状態が割り当てられるように、第1ワードラインWL1及び第2ワードラインWL2のそれぞれの状態個数が調整される。第1ワードラインWL1の状態個数は増加され、第2ワードラインWL2の状態個数は減少される。例えば、第1ワードラインWL1の状態個数は8個から12個に増加され、第2ワードラインWL2の状態個数は8個から4個に減少される。図示するように、第1ワードラインWL1には16個の状態(例えば、消去状態E、及び第1プログラム状態P1〜第15プログラム状態P15)が割り当てられ、第2ワードラインWL2には4個の状態(例えば、消去状態E、及び第1プログラム状態P1〜第3プログラム状態P3)が割り当てられる。それにより、第1ワードラインWL1のメモリセルには4ビットのデータが保存され、第2ワードラインWL2のメモリセルには2ビットのデータが保存される。
図2Bを参照すると、第1ワードラインWL1、第2ワードラインWL2、及び第3ワードラインWL3には、それぞれ4個の状態(即ち、消去状態E、及び第1プログラム状態P1〜第3プログラム状態P3)が割り当てられ、プログラム段階において、第1ワードラインWL1、第2ワードラインWL2、及び第3ワードラインWL3は、8個の状態のうちの一つによってプログラムされる。それにより、第1ワードラインWL1のメモリセル、第2ワードラインWL2のメモリセル、及び第3ワードラインのメモリセルには、それぞれ2ビットのデータが保存される。
ワードラインのそれぞれに対するプログラム動作、読み取り動作、及び消去動作が進められることにより、第1ワードラインWL1、第2ワードラインWL2、及び第3ワードラインWL3が老化する。第1ワードラインWL1、第2ワードラインWL2、及び第3ワードラインWL3の強度は、それぞれ−1、−2、及び−3である。第1ワードラインWL1が最も強く、第3ワードラインWL3が最も弱い。
強いワードラインに更に多い個数の状態が割り当てられ、弱いワードラインに少ない個数の状態が割り当てられるように、第1ワードラインWL1、第2ワードラインWL2、及び第3ワードラインWL3のそれぞれの状態個数が調整される。例えば、第1ワードラインWL1の状態個数は4個から6個に増加し、第2ワードラインWL2の状態個数は4個がそのまま維持され、第3ワードラインWL3の状態個数は4個から3個に減少される。それにより、第1ワードラインWL1のメモリセルには2.5ビットのデータが保存され、第2ワードラインWL2のメモリセルには2ビットのデータが保存され、第3ワードラインWL3のメモリセルには1.5ビットのデータが保存される。
図2A及び図2Bを参照して説明したように、状態個数調整モジュール(図1のメモリコントローラ110に含まれる)は、複数のワードラインのそれぞれの強度を基に複数のワードラインのそれぞれの状態個数を調整する。一実施形態において、図2Bに示すように、ワードラインの状態個数は整数ビットを示す2(ここで、sは、自然数である)ではない値を有し、ワードラインのメモリセルには分数ビットのデータが保存される。
図3Aは、本発明の一実施形態によるメモリコントローラを概略的に示すブロック図であり、図3Bは、図3Aのメモリコントローラの動作方法を示すフローチャートである。図3Bの動作方法は、ストレージ装置100(図1)のランタイム(例えば、ホストの要請を基に不揮発性メモリ120に対して書き込み、読み取り、及び消去などの動作が遂行される段階)で遂行されるか、或いはランタイム前(例えば、製造段階、又はストレージ装置の起動段階)に遂行される。
図3Aを参照すると、メモリコントローラ110は、強度算出モジュールSCM、状態個数調整モジュールCAM、及びプログラムパラメータ制御モジュールPCMを含む。
本発明の実施形態において「モジュール」の用語を使用し、一実施形態による構成要素が参照される。「モジュール」は、IC(integrated circuit)、ASIC(application specific integrated circuit)、FPGA(field programmable gate array)、CPLD(complex programmable logic device)のような多様なハードウェア装置、ハードウェア装置で駆動されるファームウェア、ソフトウェア、又はハードウェア装置とソフトウェアとが組み合わされた形態によって具現される。また、「モジュール」は、半導体素子で構成される回路又はIP(intellectual property)を含んでもよい。
強度算出モジュールSCMは、複数のワードラインのそれぞれに対して強度を算出する。強度算出モジュールSCMは、プログラムパラメータ及び状態指標(status metrics)(例えば、プログラム動作、読み取り動作、及び消去動作に関する状態指標)を基に、ワードラインの強度を算出する。
状態個数調整モジュールCAMは、複数のワードラインのそれぞれに対して、算出された強度を基に複数のワードラインのそれぞれの状態個数を調整する。
プログラムパラメータ制御モジュールPCMは、複数のワードラインのそれぞれのプログラムパラメータを調整する。例えば、プログラムパラメータは、プログラム開始電圧、プログラム電圧差、及びプログラム検証電圧のうちの少なくとも一つを含む。プログラムパラメータ制御モジュールPCMは、複数のワードライン間において、プログラムが遂行される時間の差(以下、プログラム時間偏差という)が低減されるようにプログラムパラメータを調整する。
図3Bを参照すると、メモリコントローラ110は、複数のワードラインのそれぞれの状態指標を獲得する(S110段階)。例えば、強度算出モジュールSCMが不揮発性メモリ120から受信される信号を基に状態指標を獲得する。状態指標は、例えば実際のプログラム時間、消去時間、読み取り時間、読み取りエラービット、読み取りレベルシフト値、状態個数などを含む。例えば、不揮発性メモリ120のワードラインでプログラムが実行される度に、メモリコントローラ110は、実際のプログラム時間を獲得して保存する。一実施形態において、メモリコントローラ110は、プログラム動作が遂行される度に状態指標を獲得及び保存し、他の実施形態において、メモリコントローラ110は、周期的に状態指標を獲得及び保存する。
強度算出モジュールSCMは、複数のワードラインに対応する複数のワードライン強度を算出する(S120段階)。即ち、強度算出モジュールSCMは、複数のワードラインのそれぞれに関する強度を算出する。強度算出モジュールSCMは、プログラムパラメータ、及びS110段階で収集された状態指標を基にワードラインの強度を算出する。
一実施形態において、強度算出モジュールSCMは、ワードラインに対する期待されるプログラム時間と実際のプログラム時間とを基に強度を算出する。例えば、強度算出モジュールSCMは、既設定のプログラムパラメータ及び既設定の状態個数を基にワードラインに対する期待されるプログラム時間を算出し、期待されるプログラム時間と実際のプログラム時間との差を基に強度を算出する。一実施形態において、強度算出モジュールSCMは、プログラムパラメータ及び少なくとも1つの状態指標を変数にする強度算出関数を含む。しかし、それに制限されるものではなく、例えば強度算出モジュールSCMは、強度算出時に、他の状態指標、例えば消去時間、読み取りエラービット、及び読み取りレベルシフト値のうちの少なくとも一つを更に考慮して強度を算出する。
その後、状態個数調整モジュールCAMは、複数のワードライン強度を基に、複数のワードラインのそれぞれの状態個数を調整する(S130段階)。状態個数調整モジュールCAMは、強いワードラインに多くの個数の状態が割り当てられ、弱いワードラインに少ない個数の状態が割り当てられるように、複数のワードラインの状態個数を調整する。それにより、ワードライン別にウェアレベリングが行われ、ワードライン間の強度差が低減される。
一方、S120段階及びS130段階は、強化学習を基に遂行される。例えば、強度算出モジュールSCM及び状態個数調整モジュールCAMが強化学習のエージェントとして具現され、該エージェントは、ワードライン別に保存されるプログラム時間、状態個数、プログラムパラメータ、状態指標を基に、ワードライン別に状態個数を算出する。強化学習を介するワードライン別状態個数算出は、図15A〜図15Cを参照して詳細に後述する。
プログラムパラメータ制御モジュールPCMは、状態個数の調整により、複数のワードラインのそれぞれのプログラムパラメータを調整する(S140段階)。プログラムプログラムパラメータ制御モジュールPCMは、複数のワードライン間においてプログラムが実行される時間の差(プログラム時間偏差)が低減されるように、複数のワードラインのそれぞれのプログラムパラメータを調整する。
例えば、図2Aにおいて、第1ワードラインWL1の状態個数は16個に調整され、第2ワードラインWL2の状態個数は4個に調整されることにより、第1ワードラインWL1及び第2ワードラインWL2に対して同一のプログラムパラメータを基にプログラムが実行される場合、第1ワードラインWL1に対してプログラムが実行される時間、即ち第1ワードラインWL1のプログラム時間は、第2ワードラインWL2のプログラム時間よりも長い。即ち、状態個数調整後の第1ワードラインWL1の15個のプログラム状態(P1〜P15)のそれぞれが状態個数調整前の第1ワードラインWL1の7個のプログラム状態(P1〜P7)の各プログラム時間と同一のプログラム時間を有し、状態個数調整後の第2ワードラインWL2の3個のプログラム状態(P1〜P3)のそれぞれが状態個数調整前の第2ワードラインWL2の7個のプログラム状態(P1〜P7)の各プログラム時間と同一のプログラム時間を有する場合、状態個数調整後の第1ワードラインWL1の全体のプログラム時間は、第2ワードラインWL2の全体のプログラム時間よりも相当に長くなる。
プログラムパラメータ制御モジュールPCMは、第1ワードラインWL1の実際のプログラム時間と第2ワードラインWL2の実際のプログラム時間とが類似するように、第1ワードラインWL1及び/又は第2ワードラインWL2のプログラムパラメータを調整する。即ち、第1ワードラインWL1の各状態のプログラム時間は短縮され、第2ワードラインWL2の各状態のプログラム時間は延長される。第1ワードラインWL1の全体のプログラム時間が第2ワードラインWL2の全体のプログラム時間と類似することになり、プログラム時間の偏差が低減される。例えば、プログラムパラメータ制御モジュールPCMは、第1ワードラインWL1のプログラム開始電圧を上昇させるか又は第2ワードラインWL2のプログラム開始電圧を低下させることにより、第1ワードラインWL1と第2ワードラインWL2とのプログラム時間偏差を低減させる。プログラムパラメータ制御モジュールPCMは、複数のワードラインのそれぞれに対してプログラム開始電圧、プログラム電圧差、及びプログラム検証電圧のうちの少なくとも一つを調節する。
メモリコントローラ110は、不揮発性メモリ120に複数のワードラインのそれぞれの状態個数及びプログラムパラメータを伝送する(S150段階)。一実施形態において、メモリコントローラ110はプログラムが実行されるワードラインを示すアドレスと共に当該ワードラインの状態個数及びプログラムパラメータを不揮発性メモリ120に伝送し、不揮発性メモリ120は受信された状態個数及びプログラムパラメータを基にアドレスが示すワードラインに対してプログラム動作を遂行する。他の実施形態において、メモリコントローラ110は複数のワードラインのそれぞれの状態個数及びプログラムパラメータを不揮発性メモリ120に伝送し、不揮発性メモリ120は受信された複数のワードラインのそれぞれの状態個数及びプログラムパラメータを保存する。その後、メモリコントローラ110はプログラムが実行されるアドレスを不揮発性メモリ120に伝送し、不揮発性メモリ120は受信されたアドレスに対応するワードラインに対して状態個数及びプログラムパラメータを基にプログラムを遂行する。
図4A、図4B、及び図4Cは、本発明の一実施形態によるメモリコントローラにおける状態個数の調整のいかんを決定する方法を示すフローチャートである。
図4Aを参照すると、メモリコントローラ110は、複数のワードラインのプログラム時間差ΔtPGMを基に状態個数の調整のいかんを決定する。
複数のワードラインのそれぞれに対するプログラム動作が遂行され(S11段階)、このとき、メモリコントローラ110は、複数のワードラインのそれぞれのプログラム時間をモニタリングする(S12段階)。メモリコントローラ110は、ワードラインに対してプログラムコマンドCMDを伝送した後、不揮発性メモリ120から受信された応答信号、例えばレディ(ready)信号及びビジー(busy)信号を基にワードラインのプログラム時間を獲得する。例えば、メモリコントローラ110は、ビジー信号が受信された後、レディ信号が受信されるまでの時間を基にプログラム時間を獲得する。
メモリコントローラ110は、複数のワードラインのプログラム時間差ΔtPGMがスレショルド時間Tth以上であるか否かということを判断する(S13段階)。例えば、メモリコントローラ110は、複数のワードライン間のプログラム時間差ΔtPGMの最大値がスレショルド時間Tth以上であるか否かということを判断する。或いは、メモリコントローラ110は、少なくとも2本のワードライン単位で状態個数を調整し、少なくとも2本のワードライン間のプログラム時間差ΔtPGMがスレショルド時間Tth以上であるか否かということを判断する。
メモリコントローラ110は、複数のワードラインのプログラム時間差ΔtPGMがスレショルド時間Tth以上である場合、複数のワードラインのそれぞれの状態個数を調整する(S14段階)。メモリコントローラ110は、図3Bを参照して説明した方法により状態個数を調整する。
一方、メモリコントローラ110は、複数のワードラインのプログラム時間差ΔtPGMがスレショルド時間Tth未満である場合、複数のワードラインのそれぞれの状態個数を維持する(S15段階)。複数のワードラインのそれぞれに対して既設定の状態個数が維持される。
図4Bを参照すると、メモリコントローラ110は、複数のワードラインのプログラム及び消去サイクル(P/Eサイクル)を基に状態個数の調整のいかんを決定する。
複数のワードラインのそれぞれに対するプログラム動作、読み取り動作、及び消去動作が遂行され(S21段階)、このとき、メモリコントローラ110は、ワードライン別にP/Eサイクルを保存し、プログラム動作及び読み取り動作が遂行される度にP/Eサイクルをアップデートする。
メモリコントローラ110は、P/Eサイクルがスレショルド値VUth以上であるか否かということを判断する(S22段階)。例えば、メモリコントローラ110は、複数のワードラインのうちの1以上のワードラインのP/Eサイクルがスレショルド値VUth以上であるか否かということを判断する。他の例として、メモリコントローラ110は、複数のワードラインのそれぞれのP/Eサイクルの平均、即ち平均P/Eサイクルがスレショルド値VUth以上であるか否かということを判断する。
メモリコントローラ110は、P/Eサイクルがスレショルド値VUth以上である場合、複数のワードラインのそれぞれの状態個数を調整する(S23段階)。メモリコントローラ110は、P/Eサイクルがスレショルド値VUth未満である場合、複数のワードラインのそれぞれの状態個数を維持する(S24段階)。
図4Cを参照すると、メモリコントローラ110は、ストレージ装置100(図1)がパワーオンになると、状態個数の調整のいかんを決定する。
ストレージ装置100がパワーオンになる(S31段階)。ストレージ装置100は、外部から電源を受信し、受信された電源に基づきパワーオンになる。メモリコントローラ110は、状態個数の調整が必要か否かということを判断する(S32段階)。例えば、メモリコントローラ110は、起動過程において、状態個数の調整が行われる条件が満足されたか否かということを判断する。例えば、メモリコントローラ110は、図4A及び図4Bを参照して説明したように、複数のワードラインのプログラム時間差ΔtPGM又は複数のワードラインのプログラム及び消去サイクル(P/Eサイクル)を基に、状態個数の調整が行われる条件が満足されたか否かということを判断する。しかし、それに制限されるものではなく、状態個数の調整が遂行される条件は、多様な方式によって設定される。
メモリコントローラ110は、状態個数の調整が必要であると判断された場合、即ち状態個数の調整遂行条件が満足された場合、複数のワードラインのそれぞれの状態個数を調整し(S33段階)、状態個数の調整が必要ではないと判断された場合、複数のワードラインのそれぞれに対して既設定の状態個数を維持する(S34段階)。
メモリコントローラ110は、周期的又は非周期的に複数のワードラインの状態個数を調整し、例えば図4A、図4B、及び図4Cを参照して説明した方法により状態個数の調整のいかんを決定する。
図5は、本発明の一実施形態によるメモリコントローラのシステム図である。
図5を参照すると、メモリコントローラ110は、プロセッサ111、RAM(random access memory)112、エンコーディング及びデコーディングモジュール113、ROM(read only memory)114、ホストインターフェース115、及びメモリインターフェース116を含む。メモリコントローラ110の構成、例えばプロセッサ111、RAM112、エンコーディング及びデコーディングモジュール113、ROM114、ホストインターフェース115、及びメモリインターフェース116は、システムバス117を介して互いにデータを送受信する。メモリコントローラ110は、それ以外にも他の構成を更に含んでもよい。
プロセッサ111は、中央処理装置(CPU)やマイクロプロセッサなどを含み、メモリコントローラ110の全般的な動作を制御する。プロセッサ111は、特定動作を遂行するように構成されるプログラムコード又はプログラムコードの命令語集合を実行する1以上のプロセッサコアを含む。プロセッサ111は、ROM114に保存されたファームウェアの命令コードを実行する。一実施形態において、プロセッサ111は、マルチコアプロセッサによって具現され、例えばデュアルコアプロセッサ又はクアッドコアプロセッサによって具現される。
RAM112は、メモリコントローラ111のバッファメモリ、キャッシュメモリ、動作メモリ、及びメインメモリのうちの少なくとも一つで動作する。RAM112は、DRAM(dynamic random access memory)、SRAM(static random access memory)などによって具現され、RAM112には、ファームウェアがローディングされる。ファームウェアは、図1〜図4Cを参照して説明したメモリコントローラ110の動作アルゴリズムが具現されるプログラムコードを含む。例えば、ファームウェアは、強度算出モジュールSCM、状態個数調整モジュールCAM、及びプログラムパラメータ制御モジュールPCMを含む。
エンコーディング及びデコーディングモジュール113は、データに対するエンコーディング及びデコーディングを行い、データに対するエラー訂正を行う。エンコーディング及びデコーディングモジュール113は、不揮発性メモリ120に保存されるデータに対するエンコーディングを行い、エラー訂正コードを生成する。エンコーディング及びデコーディングモジュール113は、不揮発性メモリ120から読み取られたデータをデコーディングし、エラー訂正コードを基にデータのエラーを検出し、検出されたエラーを訂正する。一実施形態において、エンコーディング及びデコーディングモジュール113は、ハードウェアによっても具現される。一実施形態において、エンコーディング及びデコーディングモジュール113は、ソフトウェア又はファームウェアによっても具現され、RAM112にローディングされる。不揮発性メモリ120から読み取られたデータがデコーディング不可能である場合、即ちエラー訂正コードによりデータのエラーが訂正される場合、データが読み取られた当該ワードライン、及びワードラインを含むメモリブロックは、寿命が終わったと判断される。
ROM114は、メモリコントローラ110を動作させるのに要求される多様な情報を保存する。例示的に、ROM114は、多様な情報をファームウェア形態で保存する。ストレージ装置100(図1)がパワーオンになると、ROM114に保存されたファームウェアがRAM112にローディングされる。
メモリコントローラ110は、ホストインターフェース115を介して外部装置(例えば、ホスト)と通信する。例示的に、ホストインターフェース115は、USB(universal serial bus)、MMC(multimedia card)、PCI(peripheral component interconnection)、PCI−E(PCI−express)、ATA(advanced technology attachment)、SATA(serial−ATA)、PATA(parallel−ATA)、SCSI(small computer small interface)、ESDI(enhanced small disk interface)、IDE(Integrated drive electronics)、MIPI(mobile industry processor interface)、NVM−e(nonvolatile memory−express)のような多様なインターフェースを含む。
メモリインターフェース116は、メモリコントローラ110と不揮発性メモリ200とのインターフェースを提供する。例えば、コマンド、アドレス、制御信号(例えば、状態個数及びプログラムパラメータ)、プログラムデータ、及び読み取りデータ、応答信号がメモリインターフェース116を介してメモリコントローラ110と不揮発性メモリ200との間で送受信される。
図6は、本発明の一実施形態による不揮発性メモリを示すブロック図である。
図6を参照すると、不揮発性メモリ120は、メモリセルアレイ121、制御ロジック122、電圧生成部123、アドレスデコーダ124、ページバッファ回路125、及びデータ入出力回路126を含む。。
メモリセルアレイ121は、複数のワードラインWL及び複数のビットラインBLに連結される。メモリブロックは、1以上のストリング選択ライン(SSL)及び1以上の接地選択ライン(GSL)に連結される。メモリセルアレイ121は複数のメモリブロックを含み、複数のメモリブロックのそれぞれは、複数のワードラインWLs及び複数のビットラインBLsが交差する領域に配置された複数のメモリセル(MC1〜MC8)(図8A)を含む。
一実施形態において、複数のメモリセルのそれぞれは、1ビットのデータ又はマルチビットのデータを保存する。一実施形態において、複数のメモリセルのそれぞれは、分数ビットのデータを保存する。
メモリセルアレイ121に消去電圧が印加されると、複数のメモリセルは、消去状態になり、メモリセルアレイ121の選択されたワードラインにプログラム電圧が印加されることにより、選択されたワードラインに連結された複数のメモリセルが、設定された状態にプログラムされる。図2A及び図2Bに示したように、複数のメモリセルのそれぞれは、スレショルド電圧によって区分される消去状態E及び少なくとも1つのプログラム状態を有する。
制御ロジック122は、メモリコントローラ110から受信されたコマンドCMD、アドレスADDR、及び制御信号CTRLを基に、メモリセルアレイ121にデータをプログラムするか、メモリセルアレイ121からデータを読み取るか、又はメモリセルアレイ121を消去するための各種制御信号を出力する。
制御ロジック122から出力された各種制御信号は、電圧生成部123、アドレスデコーダ124、ページバッファ回路125、及びデータ入出力回路126に提供される。具体的に、制御ロジック122は、電圧生成部123に電圧制御信号CON_volを提供し、アドレスデコーダ123にロウアドレスR−ADDRを提供し、ページバッファ回路125にプログラム制御信号CON_Pを提供し、データ入出力回路126にデータ入出力制御信号CON_I/Oを提供する。しかし、本発明は、それに限定されるものではなく、制御ロジック122は、電圧生成部123、アドレスデコーダ124、ページバッファ回路125、及びデータ入出力回路126に他の制御信号を更に提供することができる。
電圧生成部123は、電圧制御信号CON_volを基に、メモリセルアレイ121に対するプログラム動作、読み取り動作、及び消去動作を遂行するための多種の電圧を生成する。具体的に、電圧生成部123は、複数のワードラインWLsを駆動するためのワードライン駆動電圧VWLsを生成する。ワードライン駆動電圧VWLsは、例えばプログラム電圧(又は、書き込み電圧)、読み取り電圧、消去電圧、インヒビット電圧、又はプログラム検証(verify)電圧である。電圧生成部123は、複数のストリング選択ラインSSLを駆動するためのストリング選択ライン駆動電圧、及び複数の接地選択ラインGSLを駆動するための接地選択ライン駆動電圧を更に生成する。
アドレスデコーダ114は、複数のワードラインWLsを介してメモリセルアレイ121に連結され、制御ロジック121から受信したロウアドレスR−ADDRに応答して複数のワードラインWLsのうちの一部のワードラインを選択する。プログラム動作時、ローデコーダ124は、選択されたワードラインにプログラム電圧を印加し、非選択のワードラインにインヒビット電圧を印加する。
ページバッファ回路125は、複数のビットラインBLsを介してメモリセルアレイ121に連結される。具体的に、プログラム動作時、ページバッファ回路125は、書き込みドライバとして動作し、メモリセルアレイ121に保存するデータDTに該当する状態をプログラムする。読み取り動作時、ページバッファ125は、感知増幅器として動作し、メモリセルアレイ121に保存されたデータDTを出力する。
データ入出力回路126は、外部から入力されたデータDTをページバッファ回路125に伝送するか、或いはページバッファ回路125から出力されたデータDTを多数の入出力ピン又はデータバスを介してメモリコントローラ110(図1)に伝送する。
本実施形態による制御ロジック122は、メモリコントローラ110(図1)から受信された複数のワードラインWLsのそれぞれの状態個数及びプログラムパラメータを基に、電圧制御信号CON_vol及びプログラム制御信号CON_Pを生成する。プログラムパラメータは、プログラム開始電圧、プログラム電圧差、及びプログラム検証電圧のうちの少なくとも一つを含み、制御ロジック122は、プログラムパラメータを基に電圧制御信号CON_volを生成する。
また、制御ロジック122は、特定のワードラインにプログラムが実行されるとき、メモリコントローラ110から受信された状態個数を基に、ワードラインに具備される複数のメモリセルのそれぞれがワードラインに割り当られた状態のうちの一つにプログラムされるように制御するプログラム制御信号CON_Pを生成し、プログラム制御信号CON_Pをページバッファ回路125に提供する。
図7A及び図7Bは、図6のメモリセルアレイの具現例を示すブロック図である。
図7A及び図7Bを参照すると、メモリセルアレイ(121a及び121b)は、複数のメモリブロック、例えば第1メモリブロックBLK1、第2メモリブロックBLK2、及び第3メモリブロックBLK3を含み、第1メモリブロックBLK1、第2メモリブロックBLK2、及び第3メモリブロックBLK3のそれぞれは、三次元構造(又は、垂直構造という)を有する。
第1メモリブロックBLK1、第2メモリブロックBLK2、及び第3メモリブロックBLK3のそれぞれは、三次元に対応する複数の方向(x、y、z)に沿って伸びた構造物を含む。第1メモリブロックBLK1、第2メモリブロックBLK2、及び第3メモリブロックBLK3のそれぞれは、基板SUBに垂直な方向(例えば、z方向)に沿って伸びた複数のNANDセルストリング(NAND cell strings)を含む。
図7Aに示すように、第1メモリブロックBLK1、第2メモリブロックBLK2、及び第3メモリブロックBLK3は、基板SUBに垂直な方向に積層されるか、或いは図7Bに示すように、第1メモリブロックBLK1、第2メモリブロックBLK2、及び第3メモリブロックBLK3は、基板SUBに平行な方向(例えば、x方向又はy方向)に並んで配置される。
図8Aは、本発明の一実施形態によるメモリコントローラに具備されるメモリブロックの一例を示す回路図である。
図8Aを参照すると、メモリブロックBLKは垂直構造のNANDフラッシュメモリであり、図7A及び図7Bに示した複数のメモリブロックのうちの少なくとも一つは、図8Aに示したメモリブロックBLKによって具現される。
メモリブロックBLKは、複数のNANDストリング(NS11〜NS33)、複数のワードライン(WL1〜WL8)、複数のビットライン(BL1〜BL3)、接地選択ラインGSL、複数のストリング選択ライン(SSL1〜SSL3)、及び共通ソースラインCSLを含む。ここで、NANDストリングの本数、ワードラインの本数、ビットラインの本数、接地選択ラインの本数、及びストリング選択ラインの本数は、実施形態によって多様に変更される。
複数のビットライン(BL1〜BL3)と共通ソースラインCSLとの間には、NANDストリング(NS11〜NS33)が連結される。各NANDストリング(例えば、NANDストリングNS11)は、直列に連結されたストリング選択トランジスタSST、複数のメモリセル(MC1〜MC8)、及び接地選択トランジスタGSTを含む。一実施形態において、ストリング選択トランジスタSSTと第1メモリセルMC1との間、及び/又はストリング選択トランジスタSSTと第8メモリセルMC8との間には、少なくとも1つのダミーセルが配置される。
ストリング選択トランジスタSSTは、ストリング選択ライン(SSL1〜SSL3)に連結される。複数のメモリセル(MC1〜MC8)は、それぞれ対応するワードライン(WL1〜WL8)に連結される。接地選択トランジスタGSTは、接地選択ラインGSLに連結される。ストリング選択トランジスタSSTは対応するビットラインBLに連結され、接地選択トランジスタGSTは共通ソースラインCSLに連結される。
複数のNANDストリング(NS11〜NS33)において、同一高のワードライン(例えば、複数のNANDストリング(NS11〜NS33)のそれぞれに連結された第1ワードラインWL1)は共通に連結され、ストリング選択ライン(SSL1〜SSL3)は分離される。第1ストリング選択ラインSSL1が選択され、第1ワードラインWL1にプログラム電圧が印加されると、第1ロウのNANDストリング(NS11、NS12、NS13)に含まれ、第1ワードラインWL1に連結されたメモリセルがプログラムされる。それにより、ページ単位でプログラムが遂行される。
図8Bは、図8Aのメモリブロックの斜視図である。
図8Bを参照すると、メモリブロックBLKは、基板SUBに対して垂直方向に形成される。基板SUBには共通ソースラインCSLが配置され、基板SUB上にはゲート電極GEと絶縁膜ILとが相互に積層される。また、ゲート電極GEと絶縁膜ILとの間には、電荷保存層CSが形成される。
相互に積層された複数のゲート電極GEと絶縁膜ILとを垂直方向にパターニングすると、ピラPが形成される。ピラPはV字形である。ピラPは、ゲート電極GEと絶縁膜ILとを貫通して基板SUBに連結される。ピラPの外郭部分Oは、半導体物質で構成され、チャネル領域として機能し、ピラPの内部Iは、シリコン酸化物(silicon oxide)のような絶縁物質によって構成される。
メモリブロックBLKのゲート電極GEは、接地選択ラインGSL、複数のワードライン(WL1〜WL8)、及びストリング選択ラインSSLにそれぞれ連結される。そして、メモリブロックBLKのピラPは、複数のビットライン(BL1〜BL3)に連結される。図8Bでは、メモリブロックBLKが2本の選択ライン(GSL、SSL)、8本のワードライン(WL1〜WL8)、そして3本のビットライン(BL1〜BL3)を含むように図示しているが、実際には、それらよりも更に多いか又は少ない。
図8A及び図8Bに示すように、三次元垂直構造のメモリブロックBLKにおいて、ワードラインの位置は、ワードラインの強度に影響を与える。例えば、メモリブロックBLKの上部又は下部に位置するワードライン、例えば接地選択ラインGSLに隣接する第1ワードラインWL1又はストリング選択ラインSSLに隣接する第8ワードラインWL8は、メモリブロックBLKの構造的な特性により、プログラム遂行時、検証遂行時、及び消去遂行時、他のワードラインよりも更に多くのストレスが加えられ、それにより、他のワードラインよりも相対的に強度が低くなる。一方、メモリブロックBLKの中心部に位置するワードラインは、他のワードラインよりも相対的に強度が高い。しかし、それに制限されるものではなく、複数のワードラインのそれぞれに対応する複数の強度の傾向性は、メモリブロックBLKの製造工程など、ワードラインに印加される電圧のレベルなどによって可変である。
本発明の実施形態によるメモリコントローラ110(図1)は、複数のワードラインの強度算出時、三次元垂直構造のメモリブロックBLKの構造的な特徴を反映させて、メモリブロックBLK内における複数のワードラインのそれぞれのメモリブロックBLK内における位置(例えば、センター部分又はエッジ部分、GSL又はSSLに近接する位置など)を考慮する。
図9Aは、本発明の一実施形態によるワードラインのスレショルド電圧散布の一例を示すグラフであり、図9Bは、図9Aのワードラインのそれぞれのプログラムパラメータ及び状態指標の一例を示すテーブルである。図9Bは、ワードラインのそれぞれの老化によるプログラムパラメータ及び状態指標の変化を例示的に示す。
図9A及び図9Bにおいて、説明の便宜のために、第4ワードラインWL4及び第23ワードラインWL23を参照して、ワードラインのスレショルド電圧散布及びテーブルについて説明する。第4ワードラインWL4及び第23ワードラインWL23は、メモリブロック内において異なる位置に配置されるか又は互いに隣接するように配置される。
図9Aを参照すると、初期に、第4ワードラインWL及び第23ワードラインWL23には、それぞれ8個の状態個数が割り当てられる。例えば、第4ワードラインWL4及び第23ワードラインWL23のメモリセルは、消去状態E及び第1プログラム状態P1〜第7プログラム状態P7のうちの一つにプログラムされる。メモリセル当たり3ビットのデータが保存される。
図9Bを参照すると、初期に、第4ワードラインWL4及び第23ワードラインWL23のプログラムパラメータ及び状態指標は同一である。例えば、第4ワードラインWL4及び第23ワードラインWL23のプログラム開始電圧VST、プログラム電圧差ΔVISPP、及びプログラム検証電圧VVFが同一に設定される。図10を参照して、プログラム開始電圧VST、プログラム電圧差ΔVISPP、及びプログラム検証電圧VVFについて説明する。
図10は、本発明の一実施形態による不揮発性メモリのプログラム動作を示すタイミング図である。図10において、横軸は時間を示し、縦軸はプログラム動作遂行時にワードラインWLに印加される電圧を示す。
図10を参照すると、プログラム動作は、複数のプログラムループ(LOOP1〜LOOPj)(jは、2以上の自然数である)を含む。複数のプログラムループ(LOOP1〜LOOPj)のそれぞれにおいて、ワードラインWLにプログラム電圧(Vpgm1、Vpgm2、Vpgm3、…、Vpgmj)(又は、プログラムパルスという)が印加され、プログラム電圧が印加された後、プログラム検証電圧VVFが印加される。ISPP(incremental step pulse programming)方式により、複数のプログラムループ(LOOP1〜LOOPj)で印加されるプログラム電圧(Vpgm1、Vpgm2、Vpgm3、…、Vpgmj)の電圧レベルが上昇する。
一方、第1プログラムループLOOP1において、ワードラインWLに印加される第1プログラム電圧Vpgm1は、プログラム開始電圧VSTとも称される。プログラム電圧間の電圧差、例えば第1プログラム電圧Vpgm1と第2プログラム電圧Vpgm2との電圧差がプログラム電圧差ΔVISPPと称される。一実施形態において、連続するプログラムループにおいて、プログラム電圧間の電圧差は同一である。例えば、第1プログラム電圧Vpgm1と第2プログラム電圧Vpgm2との電圧差と、第2プログラム電圧Vpgm2と第3プログラム電圧Vpgm3との電圧差は同一である。他の実施形態において、連続するプログラムループにおいて、プログラム電圧間の電圧差は異なる。例えば、第2プログラム電圧Vpgm2と第3プログラム電圧Vpgm3との電圧差は、第1プログラム電圧Vpgm1と第2プログラム電圧Vpgm2との電圧差よりも大きくなる。
プログラム検証電圧VVFは、ワードラインWLに連結された複数のメモリセルがターゲット状態にプログラムされたか否かということを検証するための電圧であり、メモリセルのスレショルド電圧がプログラム検証電圧VVFよりも高い場合、該メモリセルはターゲット状態にプログラムされたと判断され、該メモリセルのスレショルド電圧がプログラム検証電圧VVFよりも低い場合、メモリセルがターゲット状態にプログラムされなかったと判断される。
再び、図9Bを参照すると、第4ワードラインWL4及び第23ワードラインWL23のそれぞれの期待されるプログラム時間tPGM及び実際のプログラム時間tPGMは、5ms(millisecond)と同一である。期待されるプログラム時間tPGMと実際のプログラム時間tPGMとの差がワードライン強度STR(又は、老化値)として算出され、期待されるプログラム時間tPGM及び実際のプログラム時間tPGMは等しいが、ワードライン強度STRは「0」である。
第4ワードラインWL4及び第23ワードラインWL23に対して、プログラム動作、読み取り動作、及び消去動作が遂行される。第4ワードラインWL4及び第23ワードラインWL23は、同一プログラムパラメータを基にプログラムされる。第4ワードラインWL4及び第23ワードラインWL23は、プログラム動作、読み取り動作、及び消去動作が遂行されることによって老化する。それにより、第4ワードラインWL4の実際のプログラム時間tPGMは4msに短縮され、第23ワードラインWL23の実際のプログラム時間tPGMは3msに短縮される。期待されるプログラム時間tPGMと実際のプログラム時間tPGMとの差により、第4ワードラインWL4の強度STRは「−1」に算出され、第23ワードラインWL23の強度STRは「−2」に算出される。
続いて、図11A及び図11Bを参照して、第4ワードラインWL4及び第23ワードラインWL23の状態個数の調整及びプログラムパラメータの調整について説明する。
図11Aは、本発明の一実施形態によるワードラインの状態個数が調整された場合のワードラインのスレショルド電圧散布の一例を示すグラフであり、図11Bは、図11Aのワードラインのそれぞれのプログラムパラメータ及び状態指標の一例を示すテーブルである。図11Bは、ワードラインの状態個数が調整されることによる状態指標の変化及びプログラムパラメータの調整を例示的に示す。
図11Aを参照すると、第4ワードラインWL4及び第23ワードラインWL23の状態個数が調整される。図9Bにおいて、第4ワードラインWL4の強度STRが第23ワードラインWL23の強度よりも相対的に高いため、図示するように、第4ワードラインWL4の状態個数は8個から16個に増加され、第23ワードラインWL23の状態個数は8個から4個に減少される。第4ワードラインWL4のメモリセルは消去状態E及び第1プログラム状態P1〜第15プログラム状態P15のうちの一つにプログラムされ、第23ワードラインWL23のメモリセルは消去状態E及び第1プログラム状態P1〜第3プログラム状態P3のうちの一つにプログラムされる。
図9Aを参照して説明したように、状態個数が調整される前に、第4ワードラインWL4及び第23ワードラインWL4のそれぞれのメモリセルには3ビットのデータが保存され、第4ワードラインWL4及び第23ワードラインWL23の2つのメモリセルには6ビットのデータが保存される。状態個数が調整された後、第4ワードラインWL4のメモリセルには4ビットのデータが保存され、第23ワードラインWL23のメモリセルには2ビットのデータが保存される。従って、第4ワードラインWL4及び第23ワードラインWL23の2つのメモリセルには、6ビットのデータが保存される。状態個数が調整される前後で、第4ワードラインWL4及び第23ワードラインWL4に保存されるデータ量は変化しない。
図11Bを参照すると、状態個数の調整により、第4ワードラインWL4の期待されるプログラム時間tPGMは7msに延長され、第23ワードラインWL23の期待されるプログラム時間tPGMは4msに短縮される。強度STRは、状態個数の調整の前後で同一であるため、第4ワードラインWL4の実際のプログラム時間tPGMは6msであり、第23ワードラインWL23の実際のプログラム時間tPGMは2msである。第4ワードラインWL4と第23ワードラインWL23との実際のプログラム時間tPGMの差の低減のために、第4ワードラインWL4及び/又は第23ワードラインWL23のプログラムパラメータが調整される。
例えば、図11Bに示すように、第4ワードラインWL4のプログラム開始電圧VSTが14.5Vから15Vに上昇され、プログラム電圧差ΔVISPPは0.5Vから0.6Vに増大され、プログラム検証電圧VVFはデフォルト電圧DFから0.5Vが低減される。それにより、第4ワードラインWL4の期待されるプログラム時間tPGMは5msに短縮され、実際のプログラム時間tPGMは4msに短縮される。また、第23ワードラインWL23のプログラム開始電圧VSTが14.5Vから14Vに低下され、プログラム電圧差ΔVISPPは0.5Vから0.4Vに低減され、プログラム検証電圧VVFはデフォルト電圧DFから0.5Vが上昇される。それにより、第23ワードラインWL23の期待されるプログラム時間tPGMは6msに延長され、実際のプログラム時間tPGMは4msに延長される。第4ワードラインWL4及び第23ワードラインWL23のプログラムパラメータの調整により、第4ワードラインWL4及び第23ワードラインWL23の実際のプログラム時間tPGMが同一又は類似することになる。
図11Bでは、第4ワードラインWL4の実際のプログラム時間tPGMが短縮され、第23ワードラインWL23の実際のプログラム時間tPGMが延長されるようにプログラムパラメータが調整される実施形態について説明したが、それに制限されるものではない。他の実施形態において、第4ワードラインWL4の実際のプログラム時間tPGMが短縮されるようにプログラムパラメータが調整され、第23ワードラインWL23のプログラムパラメータは同一値に維持される。他の実施形態において、第4ワードラインWL4のプログラムパラメータは同一値に維持され、第23ワードラインWL23の実際のプログラム時間tPGMが延長されるようにプログラムパラメータが調整される。
一方、図11A及び図11Bを参照して、第4ワードラインWL4及び第23ワードラインWL23の状態個数が2(ここで、sは自然数である)個に調整されることにより、第4ワードラインWL4及び第23ワードラインWL23のメモリセルに整数ビットのデータが保存される実施形態について説明した。しかし、本発明は、それに制限されるものではなく、第4ワードラインWL4及び第23ワードラインWL23のメモリセルに分数ビットのデータが保存されるように、第4ワードラインWL4及び第23ワードラインWL23状態個数が調整される。それについては、図12A〜図14Bを参照して説明する。
図12Aは、本発明の一実施形態によるワードラインの状態個数が調整された場合のワードラインのスレショルド電圧散布の一例を示すグラフであり、図12Bは、図12Aのワードラインのそれぞれのプログラムパラメータ及び状態指標の一例を示すテーブルである。図12Bは、ワードラインの状態個数が調整されることによる状態指標の変化及びプログラムパラメータ調整を例示的に示す。
図12Aを参照すると、第4ワードラインWL4及び第23ワードラインWL23の状態個数が調整される。図9Bにおいて、第4ワードラインWL4の強度STRが第23ワードラインWL23の強度よりも相対的に高いため、図示するように、第4ワードラインWL4の状態個数は8個から12個に増加され、第23ワードラインWL23の状態個数は8個から6個に減少される。第4ワードラインWL4のメモリセルは、消去状態E及び第1プログラム状態P1〜第11プログラム状態P11のうちの一つにプログラムされ、第23ワードラインWL23のメモリセルは、消去状態E及び第1プログラム状態P1〜第5プログラム状態P5のうちの一つにプログラムされる。第4ワードラインWL4のメモリセルには3.5ビットのデータが保存され、第23ワードラインWL23には2.5ビットのデータが保存されるため、第4ワードラインWL4及び第23ワードラインWL23の2つのメモリセルには総6ビットのデータが保存される。
図9Aを参照して説明したように、状態個数が調整される前、第4ワードラインWL4及び第23ワードラインWL23の2つのメモリセルには6ビットのデータが保存される。従って、状態個数が調整される前後で、第4ワードラインWL4及び第23ワードラインWL4に保存されるデータ量は変化しない。ワードラインのメモリセルに分数ビットが保存される方法は、図13〜図14Bを参照して後述する。
図12Bを参照すると、状態個数の調整により、第4ワードラインWL4の期待されるプログラム時間tPGMは6msに延長され、第23ワードラインWL23の期待されるプログラム時間tPGMは4.5msに短縮される。強度STRは、状態個数の調整の前後で同一であるため、第4ワードラインWL4の実際のプログラム時間tPGMは5msであり、第23ワードラインWL23の実際のプログラム時間tPGMは2.5msである。第4ワードラインWL4と第23ワードラインWL23との実際のプログラム時間tPGMの差の低減のために、第4ワードラインWL4及び/又は第23ワードラインWL23のプログラムパラメータが調整される。
例えば、図12Bに示すように、第4ワードラインWL4のプログラム開始電圧VSTが14.5Vから14.75Vに上昇され、プログラム電圧差ΔVISPPは0.5Vから0.55Vに上昇され、プログラム検証電圧VVFはデフォルト電圧DFから0.25V低下される。それにより、第4ワードラインWL4の期待されるプログラム時間tPGMは5msに短縮され、実際のプログラム時間tPGMは4msに短縮される。また、第23ワードラインWL23のプログラム開始電圧VSTが14.5Vから14.25Vに低下され、プログラム電圧差ΔVISPPは0.5Vから0.45Vに低下され、プログラム検証電圧VVFはデフォルト電圧DFから0.25V上昇される。それにより、第23ワードラインWL23の期待されるプログラム時間tPGMは6msに延長され、実際のプログラム時間tPGMは4msに延長される。第4ワードラインWL4及び第23ワードラインWL23のプログラムパラメータ調整により、第4ワードラインWL4及び第23ワードラインWL23の実際のプログラム時間tPGMが同一又は類似することになる。
図13は、本発明の一実施形態によるメモリセル当たりの分数ビットが保存される方式の一例について説明するテーブルである。
図13は、第1メモリセルMC1及び第2メモリセルMC2に総5ビットのデータが保存され、メモリセル当たり2.5ビットのデータが保存される実施形態を示す。
図13を参照すると、第1メモリセルMC1及び第2メモリセルMC2がペアとして(又は、グループとして)プログラム動作及び読み取り動作が遂行され、第1メモリセルMC1及び第2メモリセルMC2のそれぞれに割り当てられる6個の状態、例えば消去状態Eと第1プログラム状態P1〜第5プログラム状態P5との組み合わせにより、5ビットのデータに該当する32状態(2=32)が導き出される。第1メモリセルMC1の6個の状態と第2メモリセルMC2の6個の状態との積により総36個の状態が導き出され、そのうちの4個の状態を除いた32個の状態、例えば第1状態S0〜第32状態S31が5ビットのデータに該当する32個の状態、例えば消去状態E及び第1プログラム状態)1〜第31プログラム状態P31に対応する。
従って、メモリコントローラ110(図5)のエンコーディング及びデコーディングモジュール113は、第1メモリセルMC1及び第2メモリセルMC2をペアとして扱い、エンコーディング及びデコーディングを行う。不揮発性メモリ120において、第1メモリセルMC1及び第2メモリセルMC2に対して同時にプログラム及び読み取りが行われることにより、第1メモリセルMC1及び第2メモリセルMC2のそれぞれに2.5ビットのデータが保存されて読み取られる。
図13は、2つのメモリセルに5ビットのデータが保存されることにより、メモリセル当たり2.5ビットの分数ビットのデータが保存される実施形態を示す。しかし、それに制限されるものではなく、3以上のメモリセルをグループとしてプログラム動作及び読み取り動作が遂行されることにより、メモリセル当たり分数ビットのデータが保存される。このとき、分数ビットのデータが保存されるが、メモリセル当たり分数ビットのデータが保存されるためには、数式1を満足しなければならない。
Figure 2021086631
ここで、nは、2以上の自然数であり、同時にプログラム及び読み取りが行われるメモリセルの個数を示し、Skはk番目(kは、1からnまでの自然数である)のメモリセルに割り当られた状態個数を示し、Bはメモリセルに保存される総ビット数を示す。例えば、2個のメモリセルに総5ビットのデータが保存される場合、2つのメモリセルのそれぞれに割り当てられる状態個数(S1、S2)の積は25、即ち32以上でなければならない。図13に示すように、第1メモリセルMC1及び第2メモリセルMC2に割り当られた状態個数(S1及びS2)は、いずれも6であるため、数式1によると、
Figure 2021086631
は、36であり、32以上である。従って、第1メモリセルMC1及び第2メモリセルMC2に総5ビットのデータが保存される。例えば、第1メモリセルMC1及び第2メモリセルMC2にそれぞれ5個の状態及び8個の状態、又は6個の状態及び7個の状態が割り当てられる場合も、数式1を満足するため、第1メモリセルMC1及び第2メモリセルMC2に総5ビットのデータが保存される。
図14A及び図14Bは、本発明の一実施形態によるメモリセル当たりの分数ビットが保存される方式の一例について説明する図である。
図13を参照して説明したように、メモリセル当たり分数ビットのデータが保存されるためには、複数のメモリセルがペア又はグループとして動作し、複数のメモリセル対して同時にプログラム動作及び読み取り動作が遂行されなければならない。
図14Aは、1本のワードラインの2つのメモリセルがペアとして動作する実施形態を示し、図14Bは、2本のワードラインの2つのメモリセルがペアとして動作する実施形態を示す。
図14Aを参照すると、第4ワードラインWL4には複数のメモリセル(C10〜C1m)(mは、4以上の正の偶数である)が含まれ、第23ワードラインWL23に複数のメモリセル(C20〜C2m)が含まれる。第4ワードラインWL4の複数のメモリセル(C10〜C1m)において、二つずつのメモリセル(例えば、C10及びC11、C12及びC13など)がペアとして動作し、2つのメモリセルの各対に7ビットのデータが保存される。即ち、7ビットのデータはC10及びC11の対に保存され、また7ビットのデータがC12及びC13の対に保存される。例えば、第4ワードラインWL4に12個の状態が割り当てられる場合、C10及びC11に割り当られた状態個数の積は144である。144は、128(=2)よりも大きく、256(=2)よりも小さい。従って、C10及びC11の対に7ビットのデータが保存され、結果として、C10及びC11にそれぞれ3.5ビットのデータが保存される。
第23ワードラインWL23の複数のメモリセル(C20〜C2m)において、二つずつのメモリセル(例えば、C20及びC21、C22及びC23など)がペアとして動作し、2つのメモリセルの対当たり5ビットのデータが保存される。例えば、第23ワードラインWL23に6個の状態が割り当てられる場合、C20及びC21に割り当られた状態個数の積は36である。36は、32(=2)よりも大きく、64(=2)よりも小さい。従って、C20及びC21の対に5ビットのデータが保存され、結果として、C20及びC21にそれぞれ2.5ビットのデータが保存される。
このように、第4ワードラインWL4のメモリセル(例えば、C10)に3.5ビットのデータが保存され、第23ワードラインWL23のメモリセル(例えば、C20)に2.5ビットのデータが保存されることにより、第4ワードラインWL4及び第23ワードラインWL23の2つのメモリセル(例えば、C10及びC20)に総6ビットのデータが保存される。従って、第4ワードラインWL4の状態個数が8個から12個に調整され、第23ワードラインWL23の状態個数が8個から6個に調整されても、状態個数の調整の前後で、第4ワードラインWL4及び第23ワードラインWL23に保存されるデータ量は同一である。
図14Aは、1本のワードラインの2つのメモリセルがペアとして動作する実施形態を示し、図14Bは、2本のワードラインの2つのメモリセルがペアとして動作する実施形態を示す。
図14Bを参照すると、第4ワードラインWL4及び第23ワードラインWL23において、それぞれ1つのメモリセル、即ち2つのメモリセルがペアとして動作する。例えば、第4ワードラインWL4のC10及び第23ワードラインWL23のC20がペアとして動作する。即ち、第4ワードラインWL4のC10及び第23ワードラインWL23のC20が同時にプログラム及び読み取りされる。例えば、第4ワードラインWL4に12個の状態個数が割り当てられ、第23ワードラインWL23に6個の状態個数が割り当てられる場合、C10及びC20に割り当られた状態個数の積は72(=12×6)である。72は、64(=2)よりも大きく、128(=2)よりも小さいため、C10及びC20に総6ビットのデータが保存され、結果として、C10及びC20にそれぞれ3.5ビット及び2.5ビットが保存される。他の例として、第4ワードラインWL4に11個の状態個数が割り当てられ、第23ワードラインWL23に6個の状態個数が割り当てられる場合、C10及びC20に割り当られた状態個数の積は66(=11×6)であり、66は、64(=2)よりも大きく、128(=2)よりも小さいため、C10及びC20に総6ビットのデータが保存される。
従って、第4ワードラインWL4の状態個数が8個から12個に調整されるか又は11個に調整され、第23ワードラインWL23の状態個数が8個から6個に調整されても、状態個数の調整の前後で、第4ワードラインWL4及び第23ワードラインWL23に保存されるデータ量は同一である。
図13〜図14Bを参照して説明したように、状態個数の調整により、ワードラインに2個ではない状態個数が割り当てられ、ワードラインに2個の状態個数が割り当てられる場合よりも状態個数の調整が細密に遂行されるが、更に容易にワードライン別にウェアレベリングが行われる。
図15Aは、本発明の一実施形態によるメモリコントローラを概略的に示すブロック図であり、図15Bは、図15Aのメモリコントローラの動作方法を示すフローチャートである。
図15Aを参照すると、メモリコントローラ110aは、強化学習モジュールRLM、プロファイリング情報保存部PIS、及びプログラムパラメータ制御モジュールPCMを含む。
強化学習モジュールRLMは、強化学習を介して複数のワードラインのそれぞれの状態個数を調整する。強化学習モジュールRLMは、ワードライン強度を特徴(feature)として利用し、状態個数の調整を行う。図3Bを参照して説明したように、ワードライン強度は、プログラムパラメータ、例えばプログラム開始電圧、プログラム電圧差、及びプログラム検証電圧のうちの少なくとも一つを基に期待されるプログラム時間を算出し、期待されるプログラム時間と実際のプログラム時間とを基に当該ワードラインの強度を算出する。また、ワードラインの強度を算出する過程において、読み取りが行われる状況を考慮して関連特徴、例えば読み取りレベルシフティング値、読み取りエラービットなどが考慮される。
強化学習モジュールRLMは、例えばファームウェアによって具現され、ROM114(図5)に保存され、ストレージ装置100(図1)のランタイムでRAM112にローディングされてプロセッサ111によって実行される。
プロファイリング情報保存部PISは、事前にプロファイリングされた特性情報(例えば、構成(configuration)情報、複数のワードライン別の状態個数の初期値情報、ワードラインに割り当てられる状態個数のスレショルド値情報など)を保存する。例えば、メモリコントローラ110(図5)のRAM112がプロファイリング情報保存部PISとして動作する。例えば、プロファイリングされた特性情報は、不揮発性メモリ120(図1)又はROM114(図5)に保存され、ストレージ装置100(図1)が起動されるときにRAM112にローディングされる。
プログラムパラメータ制御モジュールPCMは、状態個数の調整により、複数のワードラインの間でプログラム時間偏差が増大される場合、プログラム時間偏差が低減されるようにプログラムパラメータを調整する。
図15Bを参照すると、メモリコントローラ110aは、複数のワードラインのそれぞれの状態指標を獲得する(S210段階)。メモリコントローラ110aは、実際のプログラム時間、消去時間、読み取り時間、読み取りエラービット、読み取りレベルシフト値、状態個数などを保存する。
強化学習モジュールRLMは、S210段階で獲得された状態指標及びプログラムパラメータを基に、複数のワードラインのそれぞれの状態個数を調整する(S220段階)。このとき、強化学習モジュールRLMは、プロファイリング情報PIを基に強化学習を行うことにより、強化学習が予想できない方向、例えば複数のワードラインの強度差が増大化される方向に学習されることを防止する。例えば、強化学習モジュールRLMは、複数のワードラインのそれぞれに関する初期の状態個数を基に強化学習を行う。他の例として、強化学習モジュールRLMは、ワードラインに割り当てられる状態個数のスレショルド値情報、例えば1ワードラインに最大割り当てられる状態個数又は複数のワードラインの状態個数の差のスレショルド値に対して強化学習を行う。それにより、強化学習が最悪の条件で学習されることが防止される。
プログラムパラメータ制御モジュールPCMは、状態個数の調整により、複数のワードラインのそれぞれのプログラムパラメータを調整し(S230段階)、その後、メモリコントローラ110は、不揮発性メモリ120に複数のワードラインのそれぞれの状態個数及びプログラムパラメータを伝送する(S240段階)。
図16は、本発明の一実施形態による強化学習モジュールの動作方法を示す図である。
図16を参照すると、強化学習モジュールRLMは、不揮発性メモリ120のワードラインのそれぞれの状況情報を基に、強化学習の状態(state)を設定する。例えば、ワードライン別にプログラムパラメータPP、実際のプログラム時間tPGM、及び状態個数SCのような特徴が強化学習の状態(state)に設定される。また、更なる特徴である消去時間tBERS、読み取りレベルシフト値RLS、読み取りエラービットREBが強化学習の状態に設定される。プログラムパラメータPP、予想プログラム時間tPGMを基にワードラインの強度STR(又は、老化度(aging程度))が判断される。
強化学習モジュールRLMは、ワードライン別に状態個数の調整(増減)、即ち複数のワードラインのそれぞれに関する状態個数の調整を強化学習のアクション(action)として行う。強化学習モジュールRLMは、強化学習の状態を基にリウォード(reward)が最大化されるようにアクションを行う。それにより、複数のワードラインのそれぞれの状態個数が増減する。図4A及び図4Bを参照して説明したように、複数のワードラインのプログラム時間差ΔtPGM又はP/Eサイクルがアクション遂行のトリガ条件に設定される。
強化学習の状態設定時に利用された特徴を基に算出される複数のワードラインの強度の差dSTRに基づき、強化学習のリウォード(reward)が設定される。例えば、強度の差dSTRに基づいて算出される関数値F(dSTR)が強化学習のリウォード(reward)に設定される。強化学習モジュールRLMは、関数値F(dSTR)が最大化されるように、即ち複数のワードラインの強度の差dSTRが最小化されるようにアクションを行う。
一実施形態において、プログラム時間差ΔtPGMがアクション遂行のトリガ条件に設定される場合、アクション間の時間差dT、即ち状態個数の調整が行われた後、更に状態個数の調整が行われるまでの時間が強化学習のリウォード(reward)に設定される。状態個数の調整が適切に行われた場合であるならば、アクション間の時間差dTが増大される。
図17Aは、本発明の一実施形態によるメモリコントローラを概略的に示すブロック図であり、図17Bは、図17Aのメモリコントローラの動作方法を示すフローチャートである。
図17Aは、図3Aの変形された実施形態であり、図17Bの方法は、図3Bの方法の変形された実施形態である。従って、差異を主として説明する。
図17Aを参照すると、メモリコントローラ110bは、強度算出モジュールSCM、クラスタリングモジュールCLM、状態個数調整モジュールCAM、及びプログラムパラメータ制御モジュールPCMを含む。
強度算出モジュールSCM、状態個数調整モジュールCAM、及びプログラムパラメータ制御モジュールPCMは、図3Aを参照して説明したため、重複する説明は省略する。
クラスタリングモジュールCLMは、複数のワードラインに対して特性、例えばワードライン強度を基にクラスタリングを行うことにより、複数のワードラインを複数のワードライングループにグルーピングする。状態個数調整モジュールCAMは、複数のワードライングループのそれぞれに対して状態個数を調整し、プログラムパラメータ制御モジュールPCMは、複数のワードライングループのそれぞれに対してプログラムパラメータを調整する。
図17Bを参照すると、メモリコントローラ110は、複数のワードラインのそれぞれの状態指標を獲得する(S310段階)。状態指標は、例えば実際のプログラム時間、消去時間、読み取り時間、読み取りエラービット、読み取りレベルシフト値、状態個数などを含む。
強度算出モジュールSCMは、複数のワードラインにそれぞれ対応する複数のワードライン強度を算出する(S320段階)。強度算出モジュールSCMは、プログラムパラメータ及びS310段階で収集された状態指標を基に、ワードラインの強度を算出する。
クラスタリングモジュールCLMは、複数のワードラインに対するグルーピングが必要か否かということを判断し(S330段階)、グルーピングが必要である場合、複数のワードラインに対して特性、例えばワードライン強度を基に、クラスタリングを行う(S340段階)。複数のワードラインは、複数のワードライングループにグルーピングされる。
例えば、状態個数の調整のために管理される複数のワードラインの本数が所定値以上である場合、状態個数調整モジュールCAMの負担(load)が増大し、また管理しなければならない情報の量、例えば状態指標の獲得のためのデータ量が増大する。クラスタリングモジュールCLMは、複数のワードラインの本数が所定値以上である場合、グルーピングが必要であると判断して、複数のワードラインの特性によるクラスタリング、即ちクラスタリング技法を基礎にしたグルーピングを行う。
クラスタリングは、例えば、K平均(means)クラスタリングアルゴリズム、K代表値(medoids)クラスタリングアルゴリズム、階層的(hierarchical)クラスタリングアルゴリズム、密度基盤(density−based)クラスタリングアルゴリズム、及びニューラルネットワーク(neural network)アルゴリズムのうちの少なくとも一つを利用して行われる。
状態個数調整モジュールCAMは、状態個数を調整する(S350段階)。状態個数調整モジュールCAMは、複数のワードライングループのそれぞれに対応する複数のワードライン強度を基に、複数のワードライングループのそれぞれに対して状態個数を調整する。S340段階のクラスタリングが行われない場合、状態個数調整モジュールCAMは、複数のワードライン別に状態個数を調整する。
プログラムパラメータ制御モジュールPCMは、複数のワードライングループ又は複数のワードラインのそれぞれに対してプログラムパラメータを調整する(S360段階)。
メモリコントローラ110は、不揮発性メモリ120に複数のワードラインのそれぞれ又は複数のワードライングループのそれぞれの状態個数及びプログラムパラメータを伝送する(S370段階)。
図18A及び図18Bは、本発明の一実施形態による複数のワードラインのグルーピングの一例を示す図である。
図18Aを参照すると、メモリブロックBLK単位で状態の調整が行われ、メモリブロックBLKに具備される複数のワードライン、例えば第1ワードラインWL1〜第12ワードラインWL12が複数のワードライングループにグルーピングされる。
複数のワードライン、例えば第1ワードラインWL1〜第12ワードラインWL12はそれぞれ異なる強度STRを有し、メモリコントローラ110b(図17A)のクラスタリングモジュールCLM(図17A)は、強度STRを基にクラスタリングを行うことにより、第1ワードラインWL1〜第12ワードラインWL12を複数のワードライングループ、例えば第1グループG1、第2グループG2、及び第3グループG3にグルーピングする。例えば、クラスタリングモジュールCLMは、第1ワードラインWL1〜第12ワードラインWL12の強度STR分布を基にクラスタリング基準を設定する。例えば、クラスタリングモジュールCLMは、強度STRが0以下であり−2よりも大きいワードラインを第1グループG1にグルーピングし、強度STRが−2以下であり−3よりも大きいワードラインを第2グループG2にグルーピングし、強度STRが−3以下であるワードラインを第3グループG2にグルーピングする。それにより、第3ワードラインWL3、第4ワードラインWL4、第5ワードラインWL5、及び第12ワードラインWL12が第1グループG1にグルーピングされ、第2ワードラインWL2、第6ワードラインWL6、第10ワードラインWL10、及び第11ワードラインWL11が第2グループG2にグルーピングされ、第1ワードラインWL1、第7ワードラインWL7、第8ワードラインWL8、及び第9ワードラインWL9が第3グループG3にグルーピングされる。
図18Bを参照すると、複数のメモリブロック(BLK1、BLK2)単位で、状態個数の調整が行われ、複数のメモリブロック(BLK1、BLK2)に具備される複数のワードライン、例えば第1メモリブロックBLK1の第1ワードラインWL1〜第8ワードラインWL8、及び第2メモリブロックBLK2の第1ワードラインWL1〜第8ワードラインWL8が、複数のワードライングループにグルーピングされる。
第1メモリブロックBLK1及び第2メモリブロックBLK2のそれぞれに具備される第1ワードラインWL1〜第8ワードラインWL8は、それぞれ異なる強度STRを有し、メモリコントローラ110b(図17A)のクラスタリングモジュールCLM(図17A)は、強度STRを基にクラスタリングを行うことにより、第1メモリブロックBLK1及び第2メモリブロックBLK2の第1ワードラインWL1〜第8ワードラインWL8を複数のワードライングループ、例えば第1グループG1、第2グループG2、及び第3グループG3にグルーピングする。
例えば、クラスタリングモジュールCLMは、第1メモリブロックBLK1及び第2メモリブロックBLK2の第1ワードラインWL1〜第8ワードラインWL8の強度STR分布を基にクラスタリング基準を設定する。例えば、クラスタリングモジュールCLMは、強度STRが0以下であり−2よりも大きいワードラインを第1グループG1にグルーピングし、強度STRが−2以下であり−3よりも大きいワードラインを第2グループG2にグルーピングし、強度STRが−3以下であるワードラインを第3グループG2にグルーピングする。
それにより、第1メモリブロックBLK1の第5ワードラインWL5、第2メモリブロックBLK2の第4ワードラインWL4〜第6ワードラインWL6が第1グループG1にグルーピングされ、第1メモリブロックBLK1の第3ワードラインWL3及び第4ワードラインWL4、第2メモリブロックBLK2の第2ワードラインWL2、第3ワードラインWL3、及び第7ワードラインWL7が第2グループG2にグルーピングされ、第1メモリブロックBLK1の第1ワードラインWL1、第2ワードラインWL2、第7ワードラインWL7、及び第8ワードラインWL8、そして第2メモリブロックBLK2の第1ワードラインWL1及び第8ワードラインWL8が第3グループG3にグルーピングされる。
図18A及び図18Bの第1ワードライングループG1〜第3ワードライングループG3に対して、各ワードラインを代表する強度を基に状態個数の調整が行われる。
例えば、ワードライングループ別に平均強度がワードライングループを代表する強度として算出され、該平均強度を基に状態個数の調整が行われる。他の例として、ワードライングループ別に最低強度がワードライングループを代表する強度として算出され、平均強度を基に状態個数調整が行われる。しかし、それは単に一実施形態であって、複数のワードライングループに関する状態個数の調整は、多様な方式によって行われる。
一方、図18Aはメモリブロック単位で状態個数の調整が行われる実施形態を示し、図18Bは複数のメモリブロック単位で状態個数の調整が行われる実施形態を示した。しかし、本発明は、それらに制限されるものではなく、状態個数の調整は、チップ単位、ウェーハ単位でも行われる。例えば、ウェーハ単位で状態個数調整が行われる場合、ストレージ装置の製造段階において、各ワードライン又は各ワードライングループ別に状態個数が設定され、設定された状態個数は、不揮発性メモリ装置120(図1)又はメモリコントローラ110(図1)の不揮発性保存場所、例えばROMに保存され、ストレージ装置100のランタイムで利用される。
図19は、本発明の一実施形態によるSSDシステムを示すブロック図である。
図19を参照すると、SDシステム1000は、ホスト1100及びSSD1200を含む。SSD1200は、ホスト1100と通信してホスト1100と信号、例えばコマンド、アドレス、データなどをやり取りする。SSD1200は、ホスト1100から電源を受信して動作する。
SSD1200は、SSDコントローラ1210、複数の不揮発性メモリ装置(1220、1230、1240)、及びバッファメモリ1300を含む。複数の不揮発性メモリ装置(1220、1230、1240)は、複数の半導体チップによって具現される。SSDコントローラ1210は、複数のチャネル(CH1、CH2、CHn)を介してメモリ装置(1220、1230、1240)と通信する。バッファメモリ1300は揮発性メモリ又は抵抗性メモリによって具現され、例えばバッファメモリ1300はDRAMである。バッファメモリ1300は、ホスト1100から受信されて複数の不揮発性メモリ装置(1220、1230、1240)に保存されるデータを臨時に保存するか、又は複数の不揮発性メモリ装置(1220、1230、1240)から読み取られてホスト1100に伝送されるデータを臨時に保存する。
図1〜図18Bを参照して説明したストレージ装置100及びメモリコントローラ110がSSD1200及びSSDコントローラ1210にそれぞれ適用される。SSDコントローラ1210は、複数の不揮発性メモリ装置(1220、1230、1240)に対して、メモリブロック単位、複数のメモリブロック単位、又は半導体チップ単位で、複数のワードライン又は複数のワードライングループのそれぞれに関する状態個数を調整し、また複数のワードライン又は複数のワードライングループのそれぞれのプログラムパラメータを調整する。それにより、SSD1200の寿命及びデータ信頼性が向上する。
上述の本発明の実施形態によるストレージシステムは、SSDシステム1000だけでなく、メモリカードシステム、UFS(universal flash storage)、埋め込みストレージなどに搭載されるか又は適用される。
一実施形態によると、本発明において、メモリコントローラ110によって遂行されるように説明した動作は、該動作に対応する命令語を含むプログラムコードを実行する少なくとも1つのプロセッサによって遂行される。命令語は、メモリに保存される。本発明で使用した「プロセッサ」という用語は、例えばプログラムに含まれる命令語及び/又はコードによって表現される動作を含む所定の動作を実行するために、物理的に構造化された回路を含むハードウェア的に具現された(hardware−implemented)データ処理装置を指す。少なくとも一実施形態において、ハードウェア的に具現されたデータ処理装置は、マイクロプロセッサ、CPU(central processing unit)、プロセッサコア、マルチプロセッサコア、マルチプロセッサ、ASIC(application specific integrated circuit)、及びFPGA(field programmable gate array)を含むが、それらに限定されるものではない。
以上、図面を参照しながら本発明の実施形態について詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的思想から逸脱しない範囲内で多様に変更実施することが可能である。
100 ストレージ
110、110a、110b メモリコントローラ
111 プロセッサ
112 RAM
113 エンコーディング/デコーディングモジュール
114 ROM
115 ホストインターフェース
116 メモリインターフェース
117 バス
120 不揮発性メモリ(NVM)
121、121a、121b メモリセルアレイ
122 制御ロジック
123 電圧生成部
124 アドレスデコーダ
125 ページバッファ回路
126 データ入出力回路
1000 SDシステム
1100 ホスト
1200 SSD
1210 SSDコントローラ
1220、1230、1240 FLASH1〜FLASHn
1300 バッファメモリ
BL1〜BL3 ビットライン
BLK メモリブロック
BLK1〜BLK3 メモリブロック1〜3
CAM 状態個数調整モジュール
CLM クラスタリングモジュール
CS 電荷保存層
CSL 共通ソースライン
GE ゲート電極
GSL 接地選択ライン
GST 接地選択トランジスタ
I 内部
IL 絶縁膜
MC1〜MC8 メモリセル
NS11〜NS13、NS21〜NS23、NS31〜NS33 NANDストリング
O 外郭部分
P ピラ
PCM プログラムパラメータ制御モジュール
PIS プロファイリング情報保存部
RLM 強化学習モジュール
SCM 強度算出モジュール
SSL、SSL1〜SSL3 ストリング選択ライン
SST ストリング選択トランジスタ
SUB 基板
WL1〜WL8 ワードライン

Claims (20)

  1. 複数のワードラインをそれぞれ含む複数のメモリブロックを含む不揮発性メモリと、
    前記複数のワードラインのそれぞれに対してワードライン強度を判断し、前記ワードライン強度を基に前記複数のワードラインのそれぞれに関する状態個数を調整し、前記複数のワードライン間のプログラム時間偏差が低減されるように、前記複数のワードラインのそれぞれのプログラムパラメータを調整するメモリコントローラと、を備えることを特徴とするストレージ装置。
  2. 前記メモリコントローラは、第1ワードライン強度を有する第1ワードラインに割り当てられる状態個数が前記第1ワードライン強度よりも弱い第2ワードライン強度を有する第2ワードラインに割り当てられる状態個数よりも多くなるように、前記複数のワードラインのそれぞれに関する状態個数を調整することを特徴とする請求項1に記載のストレージ装置。
  3. 前記メモリコントローラは、ワードラインに対してプログラムが実行されるときの実際のプログラム時間と期待されるプログラム時間とを基に前記ワードライン強度を算出することを特徴とする請求項1に記載のストレージ装置。
  4. 前記メモリコントローラは、前記複数のワードラインのうちの少なくとも2本のワードラインの実際のプログラム時間の差が基準時間以上である場合、前記ワードラインのそれぞれの状態個数を調整することを特徴とする請求項1に記載のストレージ装置。
  5. 前記メモリコントローラは、前記ワードラインのそれぞれに関する状態個数を、整数ビットのデータによる2個に調整(sは、自然数である)することを特徴とする請求項1に記載のストレージ装置。
  6. 前記メモリコントローラは、前記複数のワードラインに対してN個のワードライン単位で前記状態個数を調整し、前記N個のワードラインのそれぞれに関する状態個数を分数ビットのデータによる状態個数に調整することを特徴とする請求項1に記載のストレージ装置。
  7. 前記メモリコントローラは、前記N個のワードラインのうちの1本のワードラインに含まれる2つのメモリセル毎に2個の状態が設定されるように、前記状態個数を調整することを特徴とする請求項6に記載のストレージ装置。
  8. 前記メモリコントローラは、前記N個のワードラインにそれぞれ対応するN個のメモリセル毎に2個の状態が設定されるように、前記状態個数を調整することを特徴とする請求項6に記載のストレージ装置。
  9. 前記メモリコントローラは、前記ワードライン強度を基に前記複数のワードラインを複数のワードライングループに動的にグルーピングし、ワードライングループ別に前記複数のワードライングループのそれぞれに含まれる複数のワードラインのそれぞれの前記状態個数を集合的に調整することを特徴とする請求項1に記載のストレージ装置。
  10. 前記メモリコントローラは、前記複数のワードラインのそれぞれに対してプログラムパラメータ及び状態指標を獲得し、前記プログラムパラメータ及び前記状態指標を基に強化学習を介して前記状態個数を調整することを特徴とする請求項1に記載のストレージ装置。
  11. 前記メモリコントローラは、予め保存されたプロファイリング情報を基に前記強化学習を行うことを特徴とする請求項10に記載のストレージ装置。
  12. 前記メモリコントローラは、前記複数のワードラインのそれぞれに対応する複数の状態個数及び複数のプログラムパラメータを保存し、前記ストレージ装置のランタイムで前記複数のワードラインのそれぞれに対して調整された前記状態個数及び前記プログラムパラメータを基に前記不揮発性メモリに対してプログラムが実行されるように制御することを特徴とする請求項1に記載のストレージ装置。
  13. 前記メモリコントローラは、前記ストレージ装置のランタイムで前記複数のワードラインのそれぞれに対して前記状態個数及び前記プログラムパラメータを動的に調整することを特徴とする請求項1に記載のストレージ装置。
  14. 前記不揮発性メモリは、基板上に複数の不揮発性メモリセルが垂直に積層されたアレイを含むことを特徴とする請求項1に記載のストレージ装置。
  15. 不揮発性メモリを含むストレージ装置の動作方法であって、
    前記不揮発性メモリの複数のワードラインのそれぞれに対してワードライン強度を算出する段階と、
    前記複数のワードラインのそれぞれの前記ワードライン強度を基に前記ワードラインのそれぞれに関する状態個数を調整する段階と、
    前記ワードライン間のプログラム時間偏差が低減されるように、前記ワードラインのそれぞれのプログラムパラメータを調整する段階と、を有することを特徴とする方法。
  16. 前記ワードライン強度を算出する段階は、
    ワードラインに対して既設定のプログラムパラメータ及び状態個数を基に期待されるプログラム時間を算出する段階と、
    前記ワードラインの期待されるプログラム時間及び測定された実際のプログラム時間を基に前記ワードライン強度を算出する段階と、を含むことを特徴とする請求項15に記載の方法。
  17. 前記状態個数を調整する段階は、前記複数のワードライン間のプログラム時間差の最大値がスレショルド時間以上である場合に遂行されることを特徴とする請求項15に記載の方法。
  18. 前記状態個数を調整する段階は、前記複数のワードラインのうちの2本のワードラインに対して、2本のワードラインのそれぞれに対して設定される第1状態個数及び第2状態個数の積が前記2本のワードラインのそれぞれに対して既設定の第1以前の状態個数及び第2以前の状態個数の積による値以上になるように、第1状態個数及び第2状態個数を決定することを特徴とする請求項に記載の特徴とする請求項15に記載の方法。
  19. 前記ワードライン強度を算出する段階及び前記状態個数を調整する段階は、強化学習を介して行われることを特徴とする請求項15に記載の方法。
  20. 不揮発性メモリを含むストレージ装置の動作方法であって、
    前記不揮発性メモリに含まれる複数のワードラインのそれぞれに対してワードライン強度を算出する段階と、
    前記ワードライン強度を基に前記複数のワードラインを複数のワードライングループにグルーピングする段階と、
    前記ワードライングループ別に前記複数のワードライングループのそれぞれのワードラインの状態個数を調整する段階と、
    前記ワードライングループ別に前記ワードライングループ間のプログラム時間偏差が低減されるように、前記ワードライングループのそれぞれのプログラムパラメータを調整する段階と、を有することを特徴とする方法。

JP2020195711A 2019-11-28 2020-11-26 ストレージ装置及びストレージ装置の動作方法 Pending JP2021086631A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0156120 2019-11-28
KR1020190156120A KR20210066630A (ko) 2019-11-28 2019-11-28 스토리지 장치, 및 상기 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
JP2021086631A true JP2021086631A (ja) 2021-06-03

Family

ID=73543034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020195711A Pending JP2021086631A (ja) 2019-11-28 2020-11-26 ストレージ装置及びストレージ装置の動作方法

Country Status (5)

Country Link
US (1) US11322206B2 (ja)
EP (1) EP3828891B1 (ja)
JP (1) JP2021086631A (ja)
KR (1) KR20210066630A (ja)
CN (1) CN112863579A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720352B2 (en) * 2019-12-10 2023-08-08 Micron Technology, Inc. Flexible command pointers to microcode operations
US11450392B2 (en) 2019-12-17 2022-09-20 Micron Technology, Inc. Selective read disturb sampling
US20210191752A1 (en) * 2019-12-19 2021-06-24 Seagate Technology Llc Deterministic allocation of shared resources
KR20220107486A (ko) * 2021-01-25 2022-08-02 삼성전자주식회사 메모리 시스템
CN113488097B (zh) * 2021-06-30 2024-03-29 恒烁半导体(合肥)股份有限公司 一种用于存储器芯片的参考电流高效调整方法、装置及应用
US20230154540A1 (en) * 2021-11-15 2023-05-18 Samsung Electronics Co., Ltd. Storage system and operating method of storage controller
KR102571934B1 (ko) * 2021-11-15 2023-08-29 삼성전자주식회사 스토리지 시스템 및 스토리지 컨트롤러의 동작방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480438B1 (en) 2001-06-12 2002-11-12 Ovonyx, Inc. Providing equal cell programming conditions across a large and high density array of phase-change memory cells
JP2014157650A (ja) 2013-02-18 2014-08-28 Toshiba Corp 半導体記憶装置
US9256371B2 (en) 2013-05-28 2016-02-09 Globalfoundries Inc. Implementing reinforcement learning based flash control
KR102125376B1 (ko) 2013-07-01 2020-06-23 삼성전자주식회사 저장 장치 및 그것의 쓰기 방법
KR102065664B1 (ko) 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
US8891303B1 (en) * 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9881674B2 (en) * 2014-12-11 2018-01-30 Micron Technology, Inc. Sequential write and sequential write verify in memory device
US9875811B2 (en) 2016-01-13 2018-01-23 Macronix International Co., Ltd. Method and device for reading a memory
US9996417B2 (en) 2016-04-12 2018-06-12 Apple Inc. Data recovery in memory having multiple failure modes
WO2017218170A1 (en) 2016-06-17 2017-12-21 Intel Corporation Method and apparatus for programming wordlines of nand flash memory using alternating encoding schemes
US10236069B2 (en) 2017-06-20 2019-03-19 Intel Corporation Word line read disturb error reduction through fine grained access counter mechanism
US10290347B2 (en) 2017-06-30 2019-05-14 Western Digital Technologies, Inc. Compacting operating parameter groups in solid state memory devices
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Also Published As

Publication number Publication date
EP3828891B1 (en) 2023-05-03
CN112863579A (zh) 2021-05-28
US20210166764A1 (en) 2021-06-03
KR20210066630A (ko) 2021-06-07
US11322206B2 (en) 2022-05-03
EP3828891A1 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
EP3828891B1 (en) Storage device and operating method thereof
KR102461099B1 (ko) 메모리 장치 및 이를 포함하는 저장 장치 및 그 동작 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR102016041B1 (ko) 비휘발성 메모리 장치의 프로그램 방법
US20160293259A1 (en) Semiconductor apparatus and operating method thereof
JPWO2015025357A1 (ja) メモリシステム
CN108694989B (zh) 存储设备及其坏块指派方法
CN111833949A (zh) 存储器控制器、存储器系统及其操作方法
CN112099730A (zh) 存储器件及其访问方法
US10079063B2 (en) Apparatuses and methods for charging a global access line prior to accessing a memory
CN113496724A (zh) 非易失性存储器设备及其操作方法
JP2017168165A (ja) 半導体記憶装置
US10658055B2 (en) Memory system and method for controlling memory system
JP6293692B2 (ja) メモリシステム
CN114078530A (zh) 存储器装置及其操作方法
US20230071618A1 (en) Memory device and operating method of the memory device
US20220310166A1 (en) In-line programming adjustment of a memory cell in a memory sub-system
US11742035B2 (en) Memory device including bit line precharge operation during program verify operation
JP2023089641A (ja) メモリシステムおよび半導体記憶装置
CN114792541A (zh) 存储器设备和操作该存储器设备的方法
CN113257320A (zh) 非易失性存储器设备
US11646089B2 (en) Memory device for performing verify operation and operating method thereof
US20230307069A1 (en) Memory device and method of operating the same
US20240145009A1 (en) Electronic device and method of operating the same
CN114296652B (zh) 数据擦除方法、存储器及存储器系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231106