CN111459401A - 包括非易失性存储器设备的存储器系统 - Google Patents

包括非易失性存储器设备的存储器系统 Download PDF

Info

Publication number
CN111459401A
CN111459401A CN202010064644.2A CN202010064644A CN111459401A CN 111459401 A CN111459401 A CN 111459401A CN 202010064644 A CN202010064644 A CN 202010064644A CN 111459401 A CN111459401 A CN 111459401A
Authority
CN
China
Prior art keywords
pages
group
memory
determining
state information
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
CN202010064644.2A
Other languages
English (en)
Inventor
吴熙泰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN111459401A publication Critical patent/CN111459401A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0653Monitoring storage devices or systems
    • 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/0656Data buffering arrangements
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

一种存储器系统包括非易失性存储器设备和控制器电路。非易失性存储器设备包括存储器单元阵列,该存储器单元阵列包括存储器块和页面。每个单独的存储器块包括一个或多个页面的单独相应的集合。控制器电路被配置为控制非易失性存储器设备的操作。控制器电路包括:处理电路,被配置为:响应于确定在非易失性存储器设备的编程操作期间在存储器系统处发生了特定事件,对所述非易失性存储器设备执行恢复操作。恢复操作包括:确定与包括至少一个页面在内的第一组相关联的状态信息;基于状态信息,确定第二组中包括的页面的集合中的页面的数量;以及向第二组中包括的页面的集合中的一个或多个页面编程虚设数据。

Description

包括非易失性存储器设备的存储器系统
相关申请的交叉引用
本申请要求于2019年1月22日在韩国知识产权局提交的韩国专利申请No.10-2019-0007946的优先权,其公开内容通过全文引用的方式并入本文中。
技术领域
本公开涉及存储器系统,并且更具体地涉及包括一个或多个非易失性存储器设备的存储器系统。
背景技术
存储器系统可以被配置为:响应于从一个或多个外部设备接收的写入请求,存储从一个或多个外部设备提供的数据。在一些情况下,存储器系统可以被配置为:响应于从一个或多个外部设备接收的读取请求,将存储的数据提供给一个或多个外部设备。外部设备可以是被配置为处理数据的电子设备,并且可以包括计算机、数码相机、移动电话等。存储器系统可以被配置为在内置(例如,并入、包括等)在外部设备中时进行操作,和/或可以以可拆卸的形式制造,并且可以被配置为基于可拆卸地(“可逆地”)或不可逆地连接到外部设备来操作。
使用一个或多个存储器设备的存储器系统可以是有利的,因为这种存储器系统具有出色的稳定性和耐用性,并且由于没有机械驱动部件而展现出高信息访问速度和低功耗。具有这种优点的这种存储器系统的示例包括通用串行总线(USB)存储器设备、具有各种接口的存储卡、通用闪存(UFS)设备和固态驱动器(SSD)。
发明内容
本公开的各方面提供了一种存储器系统,其改善了数据可靠性并延长了其使用寿命。
根据本公开的一些示例实施例,一种存储器系统可以包括非易失性存储器设备和控制器电路。非易失性存储器设备可以包括存储器单元的阵列。该阵列可以包括多个存储器块和多个页面。多个存储器块中的每个单独的存储器块可以包括所述多个页面中的一个或多个页面的单独相应的集合。控制器电路可以被配置为控制非易失性存储器设备的操作。控制器电路可以包括处理电路,所述处理电路被配置为:响应于确定在非易失性存储器设备的编程操作期间在存储器系统处发生了特定事件,对非易失性存储器设备执行恢复操作。执行恢复操作可以包括:确定与包括所述多个页面中的至少一个页面在内的第一组相关联的状态信息;基于与第一组相关联的状态信息,确定多个页面中的被包括在第二组中的页面的特定集合中的页面的数量;以及对第二组中包括的页面的特定集合中的一个或多个页面的虚设数据(dummy data)进行编程。
根据本公开的一些示例实施例,一种存储器系统可以包括非易失性存储器设备和控制器电路。非易失性存储器设备可以包括存储器单元的阵列。该阵列可以包括多个存储器块和多个页面。多个存储器块中的每个单独的存储器块可以包括所述多个页面中的一个或多个页面的单独相应的集合。控制器电路可以被配置为控制非易失性存储器设备的操作。控制器电路可以包括处理电路,所述处理电路被配置为:响应于确定在所述非易失性存储器设备的编程操作期间发生突然断电(SPO),对非易失性存储器设备执行恢复操作。执行恢复操作可以包括:确定与包括多个页面中的至少一个页面在内的第一组相关联的状态信息;基于与第一组相关联的状态信息,确定与要在第二组中编程的虚设数据相关联的编程条件;以及基于编程条件,对第二组中包括的一个页面或多个页面中的虚设数据进行编程。
根据本公开的一些示例实施例,一种存储器系统可以包括非易失性存储器设备和控制器电路。非易失性存储器设备可以包括存储器单元的阵列。该阵列可以包括多个存储器块和多个页面。多个存储器块中的每个单独的存储器块可以包括所述多个页面中的一个或多个页面的单独相应的集合。控制器电路可以被配置为控制非易失性存储器设备的操作。控制器电路可以包括处理电路,所述处理电路被配置为:响应于确定在非易失性存储器设备的编程操作期间发生突然断电(SPO),基于目标组的状态信息,基于对包括多个页面中的至少一个页面在内的第一组中的虚设数据进行编程来执行恢复操作。执行恢复操作可以包括:基于与布置在非易失性存储器设备的半导体芯片上的多个页面中的每个页面相关联的布置信息,确定目标组或第三组。
然而,本公开的方面不限于本文阐述的示例实施例。通过参考下面给出的本公开的详细描述,本公开的上述和其他方面对于本公开所属领域的普通技术人员而言将变得更加清楚。
附图说明
通过参考附图详细描述本公开的一些示例实施例,本公开的上述和其它方面和特征将变得更清楚,在附图中:
图1是简要示出了根据本公开的一些示例实施例的存储器系统的配置的框图;
图2是示出了在非易失性存储器设备中发生突然断电(SPO)的一些示例实施例的图;
图3是示出了基于状态信息来确定要向其编程虚设数据的页面的数目(“数量”)的一些示例实施例的图;
图4A和图4B是示出了基于根据多个读取电压而获得的存储器单元的数目(“数量”)来确定状态信息的一些示例实施例的图;
图5A是示出了根据擦除计数来确定状态信息的一些示例实施例的图,并且图5B是示出根据读取计数来确定状态信息的一些示例实施例的图;
图6A是示出了在非易失性存储器设备的存储器块中发生SPO的一些示例实施例的图;
图6B示出了示例映射表,该示例映射表示出了在图6A的情况下根据包括有效数据在内的页面的数目(“数量”)来确定状态信息的一些示例实施例;
图7A是根据本公开的一些示例实施例的包括ECC引擎在内的存储器系统的示意性框图;
图7B是示出了基于ECC来确定状态信息的一些示例实施例的图;
图8是示出了基于状态信息来确定要对其编程虚设数据的页面的数目(“数量”)的一些示例实施例的流程图;
图9是示出了基于状态信息来确定虚设数据编程的验证电压电平的一些示例实施例的图;
图10A和图10B示出了存储器单元的示例阈值电压分布,以说明基于状态信息来可变地施加验证电压的电平的一些示例实施例;
图11是示出了基于状态信息来确定虚设数据编程的验证电压电平的一些示例实施例的流程图;
图12是示出了基于状态信息来确定要向其编程虚设数据的页面的数目(“数量”)和虚设数据编程的验证电压电平的一些示例实施例的流程图;
图13是示出了其中基于字线的布置信息来确定目标组的一些示例实施例的图;
图14是示出了基于参考字线的布置信息来选择要对其执行状态信息确定的第一组的一些示例实施例的流程图;以及
图15是示出了基于在非易失性存储器设备页面的布置信息来选择目标组的一些示例实施例的流程图。
具体实施方式
图1是简要示出了根据本公开的一些示例实施例的存储器系统的配置的框图。
存储器系统10可以存储由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视和车载信息娱乐系统之类的主机设备300(参见图7B)访问的数据。
可以包括一个或多个电子设备(包括一个或多个计算设备)的存储器系统10可以根据主机接口——其意味着与主机设备300的传输协议——被制造为各种类型的存储设备中的任何一种。例如,存储器系统10可以被配置为以下各种类型的存储设备中的任何一种:例如固态驱动器(SSD)、MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡、SD、迷你SD和微型SD形式的安全数字卡、通用串行总线(USB)存储设备、通用闪存(UFS)设备、个人计算机存储卡国际协会(PCMCIA)卡类型存储设备、外围组件互连(PCI)卡类型存储设备、PCI Express(PCI-E)卡类型存储设备、紧凑型闪存(CF)卡、智能媒体卡、存储棒等。
存储器系统10可以被制造为各种类型的封装类型中的任何一种。例如,存储器系统10可以被制造为以下各种类型的封装类型中的任何一种:例如,封装上封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
参照图1,根据本公开的一些示例实施例的存储器系统10可以包括控制器100和非易失性存储器设备200。控制器100—也可以被称为“控制器电路”—可以包括处理电路,例如包括逻辑电路的硬件;硬件/软件组合,例如执行软件的处理器;或两者的组合。例如,处理电路更具体地可以包括但不限于:中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。控制器100可以基于主机设备300的请求来执行操作。例如,控制器100可以从主机设备300接收写入请求,并且将请求的数据存储在非易失性存储器设备200中。作为另一示例,控制器100可以从主机设备300接收读取请求,从非易失性存储器设备200读取请求的数据,并将其发送给主机设备300。在一些示例实施例中,控制器100执行主机设备300的逻辑地址与非易失性存储器设备200的物理地址之间的映射,并且管理存储有映射信息的地址映射表。
根据一些示例实施例,控制器100可以包括处理器110。根据一些示例实施例,控制器100可以包括高速缓冲存储器130。根据一些示例实施例,控制器100可以包括存储器接口单元150。根据一些示例实施例,控制器100可以包括主机接口单元1211。根据一些示例实施例,控制器100可以包括存储器140。根据一些示例实施例,控制器100中包括的元件可以经由总线101彼此电耦接和/或通信地耦接。
处理器110—也可以被称为“控制器处理器电路”—可以包括处理电路,例如包括逻辑电路的硬件;硬件/软件组合,例如执行软件的处理器;或两者的组合。例如,处理电路更具体地可以包括但不限于:中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。处理器110可以包括微控制单元(MCU)或中央处理单元(CPU)。处理器110可以处理从主机设备300发送的请求。为了处理该请求,处理器110可以驱动加载在高速缓冲存储器130上的代码类型的指令或算法,即固件(FW),并且可以控制内部功能块和非易失性存储器设备200。
根据一些示例实施例,处理器110可以包括恢复模块111。重申,处理器110可以被配置为例如基于执行存储在存储器设备(“存储器”)上的指令程序来实现恢复模块111的功能,其中,这种存储器设备可以被包括在控制器100(例如,存储器140,在本文中也称为存储器电路)和/或非易失性存储器设备200中。如果当发生特定事件(例如,SPO)时在非易失性存储器设备200中执行数据的编程操作(例如,响应于确定在非易失性存储器设备200的编程操作期间已经发生特定事件,其中特定事件可以是SPO事件),则作为响应,恢复模块111可以对非易失性存储器设备200执行恢复操作。由恢复模块111执行恢复操作可以包括:基于对其执行编程操作的参考页面,在特定条件(或备选地,预定条件)下选择第一组;确定第一组的状态信息;基于所确定的第一组的状态信息来选择第二组;以及针对所选择的第二组中包括的页面,执行虚设数据的编程操作。例如,为了响应于确定在非易失性存储器设备200的编程操作期间在存储器系统处发生了特定事件(例如,SPO)(例如非易失性存储器设备200的SPO)来对非易失性存储器设备200执行恢复操作,恢复模块111可以:确定与包括多个页面中的至少一个页面在内的第一组相关联的状态信息;基于与第一组相关联的状态信息来确定多个页面中的被包括在第二组中的页面的数量;并且针对多个页面中的被包括在第二组中的一个或多个页面来编程虚设数据。
如本文所使用的术语“虚设数据编程”是指对页面上的虚设数据进行编程的操作,并且如本文所使用的术语“正常数据编程”是指对页面上的用户数据进行编程—即对所请求的从主机设备300到非易失性存储器设备200的页面中的数据进行编程—的操作。在一些示例实施例中,虚设数据可以表示无意义的数据。
高速缓冲存储器130(在本文中也称为高速缓冲存储器设备、高速缓冲存储器电路和/或高速缓冲存储设备)可以是存储器设备、存储器电路和/或存储设备,并且可以包括随机存取存储器,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。高速缓冲存储器130可以存储要由处理器110驱动的固件。在一些示例实施例中,高速缓冲存储器130可以存储驱动固件所需的数据,例如,元数据。即,高速缓冲存储器130可以用作处理器110的工作存储器。
存储器140(在本文中也称为存储器设备、存储器电路和/或存储设备)可以是存储器设备、存储器电路和/或存储设备,并且可以包括随机存取存储器,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。存储器140可以存储将由处理器110驱动(“执行”)以实现控制器100的一些或全部功能的指令程序(包括固件)。在一些示例实施例中,存储器140可以存储驱动指令程序所需的数据,例如,元数据。即,存储器140可以用作处理器110的工作存储器。
存储器接口单元150(在本文中也称为存储器接口电路)可以根据处理器110的控制来控制非易失性存储器设备200。存储器接口单元150可以向非易失性存储器设备200提供(例如,生成和/或发送)控制信号。控制信号可以包括用于控制非易失性存储器设备200的命令、地址、控制信号等。因此,存储器接口单元150可以提供控制信号,该控制信号当在非易失性存储器设备200处被接收时,使得根据处理器110的控制来控制非易失性存储器设备200。存储器接口单元150可以向非易失性存储器设备200提供数据,或者可以从非易失性存储器设备200接收数据。
根据一些示例实施例,控制器100还可以包括主机接口单元1211,在本文中也称为主机接口电路。主机接口单元可以使主机设备300和存储器系统10彼此通过接口连接(“通信地耦接”)。例如,主机接口单元1211可以通过使用主机接口(即,诸如安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、国际个人计算机存储卡协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、外围组件互连(PCI)、PCI Express(PCI-E)和通用闪存(UFS)之类的标准传输协议中的任何一种)与主机设备300通信。
非易失性存储器设备200(也可以称为非易失性存储器电路)可以包括(例如,可以被配置为实现)多个存储器块BLK0至BLK(n-1),并且存储器块BLK0至存储器块BLK(n-1)中的每一个可以包括多个页面PG0至PG(k-1)。从操作的角度或物理或结构的角度来看,存储器单元区域中包括的存储器单元可以被配置为分层存储器单元集合或存储器单元元件。例如,可以将连接到相同字线并同时被读取和编程的存储器单元配置为页面。为了简化描述,将包括页面的存储器单元称为“页面”。另外,可以将要同时擦除的存储器单元配置为存储器块。将理解的是,非易失性存储器设备200将被理解为包括存储器单元202的阵列201,其中存储器单元202的阵列201包括多个存储器块Blk0至Blk(n-1)和多个页面,多个存储器块中的每个存储器块包括多个页面中一个或多个页面PG0至PG(k-1)的单独相应的集合,其中“n”和“k”均是单独的正整数,其中每个存储器块包括存储器单元202的阵列201中的被配置为同时被擦除的一个或多个存储器单元202的单独相应的第一集合,并且每个页面包括存储器单元202的阵列201中的连接到相同字线且被配置为同时被读取和编程的一个或多个存储器单元202的单独相应的第二集合。
图2是示出了在非易失性存储器设备中发生突然断电(SPO)的一些示例实施例的图。为了简化描述,假定非易失性存储器设备200的每个存储器块包括八个页面PG0至PG7,并且以第一页面PG0至第八页面PG7的顺序设置编程操作的顺序。
在存储器系统10的操作期间,由于意外的电力故障,可能发生突然断电(SPO),这是突然的电源丢失。当发生SPO时,将中断到存储器系统(例如,控制器100和/或非易失性存储器设备200)的一个或多个元件的外部电源(外部电力断开)。然而,可以通过存储在诸如超级电容器之类的辅助电力设备中的辅助电力来驱动存储器系统10。当由辅助电力驱动时,存储器系统10可以完成在非易失性存储器设备200中执行的操作,并且将必要的数据转储(dump)到闪存设备。当转储操作完成时,存储器系统10可以通过切断内部电源(内部电力断开)来终止所有操作。
参考图1和图2,假定在对第一存储器块的第四页面PG3中的数据DT_3进行编程操作期间发生了SPO。当在编程操作期间发生特定事件时,通用存储器设备(例如,非易失性存储器设备200)不再使用对应的存储器块而是分配新的存储器块来将用户数据存储在新分配的存储器块中,并对前一存储器块执行擦除操作,从而增加了由于特定事件的发生而导致的不必要擦除操作的数目(“数量”)。在一些示例实施例中,虚设数据被存储在存储器块中包括的多个页面中的没有存储数据的页面中,在该存储器块中,由于SPO而中断了编程操作,或者已经发生了SPO的存储器块被设置为封闭块以阻止对其余页面的编程操作。因此,即使存在空页面,也由于发生了SPO而在没有确定空页面的状态的情况下阻止了编程操作,因此降低了存储用户数据的存储空间的效率。
在一些示例实施例中,即使在编程操作期间发生了特定事件(例如,SPO),根据本公开的一些示例实施例的存储器系统10也可以将其中已经发生特定事件的存储器块设置为封闭块,或者在执行虚设数据编程操作之后继续使用当前的存储器块(例如,在发生SPO时正在编程的存储器块),而在将虚设数据编程到所有空页面之后不分配新的存储器块。即,通过在发生事件之后基于所选择的组的状态信息来动态地确定要在其上编程虚设数据的页面,可以在事件发生之后,将在事件发生之前执行的编程操作继续写入到对应的存储器块。在一些示例实施例中,通过根据存储器单元的损坏程度来应用虚设数据的不同编程条件,可以更有效地利用存储空间。本公开可以通过减少不必要的擦除操作的数目(“数量”)并且通过连续写入来减少或最小化浪费的页面,以延长非易失性存储器设备200的寿命,从而改善括非易失性存储器设备在内的计算设备的操作和/或性能。
在一些示例实施例中,存储器系统10的一个或多个元件的一些或全部功能可以由处理电路(例如,本文中关于控制器100所描述的处理电路)基于执行存储在存储器设备上的指令程序来实现。因此,将理解的是,在一些示例实施例中,存储器系统10可以包括存储指令程序的存储器,以及被配置为执行指令程序以实现如本文所述的存储器系统10的一个或多个元件的一些或全部功能的处理电路。
在一些示例实施例中,控制器100的一个或多个元件(例如,恢复模块111)的一些或全部功能可以由处理电路(例如,本文中关于控制器100所描述的处理电路)基于执行存储在存储器设备上的指令程序来实现。因此,将理解的是,在一些示例实施例中,控制器100可以包括存储指令程序的存储器140,以及被配置为执行指令程序以实现如本文所述的控制器100的一个或多个元件的一些或全部功能(例如,恢复模块111的功能)的处理电路(例如,如本文所述的处理器110的处理电路)。
在一些示例实施例中,非易失性存储器设备200的一个或多个元件的一些或全部功能可以由处理电路(例如,本文中关于控制器100所描述的处理电路)基于执行存储在存储器设备上的指令程序来实现。因此,将理解的是,在一些示例实施例中,非易失性存储器设备200可以包括存储指令程序的存储器,以及被配置为执行指令程序以实现如本文所述的非易失性存储器设备200的一个或多个元件的一些或全部功能的处理电路。
图3是示出了基于状态信息来确定非易失性存储器设备200的多个页面中的要向其编程虚设数据的页面的特定集合中的页面的数目(“数量”)的一些示例实施例的图。要确定其页面数量的页面的特定集合可以是第二组中包括的页面的整体。
参考图1至图3,为了响应于确定在非易失性存储器设备200的编程操作期间在存储器系统10处已发生特定事件(例如,SPO)而对非易失性存储器设备200执行恢复操作(例如,在非易失性存储器设备200处执行的编程操作、由非易失性存储器设备200执行的编程操作等),根据本公开的一些示例实施例的恢复模块111可以:确定包括至少一个页面在内的第一组的(“与该第一组相关联的”)状态信息;基于第一组的状态信息,确定非易失性存储器设备200的多个页面中的被包括在第二组中的页面的特定集合中的页面的数目(“数量”);以及对第二组中包括的页面的特定集合执行虚设数据编程操作。对页面的特定集合执行虚设数据编程操作可以包括:针对页面的特定集合的一个或多个页面来编程虚设数据。包括在第一组中的页面可以是对其执行状态信息的确定的页面,并且包括在第二组中的页面可以是对其执行虚设数据编程操作的页面。
根据一些示例实施例,第一组可以是要在参考页面之后被执行编程操作的页面,其中参考页面在发生SPO时被执行编程操作。即,当针对第四页面PG3中的数据DT_3进行编程操作期间发生SPO时,第四页面PG3成为参考页,并且第五页面PG4、第六页面PG5、第七页面PG6、第八页面PG7、或其任何组合可以被选择为第一组。根据一些示例实施例,可以选择第一组以包括按编程顺序在参考页面之前的页面。即,第一页面PG0、第二页面PG1、第三页面PG2或其任意组合可以被选择作为第一组。在一些示例实施例中,参考页面之后的页面和参考页面之前的页面都可以被选择作为第一组。
根据一些示例实施例,可以基于参考页面的逻辑地址将与特定的(或者备选地,预定的)范围内的逻辑地址相对应的页面选择作为第一组。重申,为了执行恢复操作,恢复模块111可以基于非易失性存储器设备200的多个页面中的参考页面的逻辑地址,选择非易失性存储器设备200的多个页面中的与特定范围内的逻辑地址相对应的选定页面作为第一组,其中由于特定事件(例如,SPO)而中断了存储器系统10的编程操作。通常,在许多情况下,具有连续的逻辑地址的页面彼此相邻地布置,因此很可能受到在每个页面中发生的特定事件(例如,SPO)的影响。因此,可以基于参考页面将作为状态信息确定的目标的第一组设置为特定的(或备选地,预定的)地址范围。
如图所示,可以设置与多条状态信息中的每一条相对应的页面的数目(“数量”),并且因此,可以确定第二组中的页面的数目(“数量”)。在一些示例实施例中,状态信息是指第一组的状态信息,并且页面的数目(“数量”)是指第二组中包括的页面的数目(“数量”)。另外,可以预先设置选择确定数目(“数量”)的页面的顺序。根据一些示例实施例,第一组中包括的页面可以与第二组中包括的页面重叠。
如果确定第一组具有第一状态信息INF_StatusStatus(1),则可以将要对其执行虚设数据编程操作的第二组中包括的页面选择为一个页面。在一些示例实施例中,如果确定第一组具有第二状态信息至第四状态信息INF_Status(2)、INF_Status(3)和INF_Status(4),则可以分别选择三、五和七个页面作为第二组。这可以意味着,随着从第一状态信息INF_Status(1)到第四状态信息INF_Status(4),第一组的损坏程度劣化。因此,通过当损坏程度不严重时(例如,当第一组的状态信息被确定为第一状态信息INF_Status(1)时)将要向其编程虚设数据的第二组的页面的数目(“数量”)确定为相对小的值,而当损坏程度严重时(例如,当第一组的状态信息被确定为第四状态信息INF_Status(4)时)将要向其编程虚设数据的第二组的页面的数目(“数量”)确定为相对大的值,根据存储器单元的状态,可以灵活地选择要对其应用连续写入的页面,并且可以提高存储器使用的效率。
根据一些示例实施例,当第一组的损坏程度超过特定的(或备选地,预定的)范围时,可以将包括参考页面在内的参考存储器块设置为坏块,而无需对第二组执行虚设数据编程操作,并且可以阻止针对参考存储器块的其余页面的数据编程操作。例如,当将第一组的状态信息确定为第五状态信息INF_Status(5)时,恢复模块111可以不选择第二组,并且可以将包括发生了SPO的参考页面在内的参考存储器块设置为坏块(或封闭块)。
根据一些示例实施例,当第一组的损坏程度超过特定的(或必选地,预定的)范围时,可以对包括参考页面在内的参考存储器块的所有空页面执行虚设数据编程操作。例如,当在针对图2的第四页面PG3的编程操作期间发生SPO并且选择的第一组的状态信息是第五状态信息INF_Status(5)时,恢复模块111可以对第五页面PG4至第八页面PG7执行虚设数据编程操作,并且可以将存储器块BLK0设置为坏块。
以上参考图1至图3描述的配置和操作可以以相同的方式应用于将参考图4A至图8描述的实施例。
图4A和图4B是示出了基于通过应用至少一个读取电压而获得的信息来确定第一组的状态信息的一些示例实施例的图。
参考图4A,根据本公开的一些示例实施例的非易失性存储器设备200可以被实现为每个存储器单元存储1个比特的单级(single level)单元(SLC)。因此,存储器单元的阈值电压分布可以如图所示。即,将其分类为在存储器单元中存储比特“1”的擦除状态E0和在存储器单元中存储比特“0”的编程状态P0。可以通过确定通过施加读取电压而获得的比特来执行对数据的读取操作。例如,当特定的(或备选地,预定的)读取电压是读取电压Vrd_03时,读取电压Vrd_03被施加到目标页面的存储器单元,并且当施加读取电压Vrd_03时,具有擦除状态E0的存储器单元被接通,并且具有编程状态P0的存储器单元被断开。通过感测此条件,可以确定在目标页面的存储器单元中存储的比特值是0还是1。即,当施加读取电压Vrd_03时,如果存储器单元接通,则存储在存储器单元中的比特为1,如果存储器单元被断开,则存储在存储器单元中的比特为0。
根据本公开的一些示例实施例的恢复模块111可以使用各自具有不同电压电平的多个读取电压来确定第一组的状态信息。根据一些示例实施例,可以通过施加读取电压Vrd_01来获得第一单元信息,并且可以通过施加读取电压Vrd_02来获得第二单元信息。类似地,可以通过施加读取电压Vrd_03、读取电压Vrd_04和读取电压Vrd_05来分别获得第三单元信息、第四单元信息和第五单元信息。恢复模块111可以基于第一至第五单元信息来确定在第一组的页面中包括的存储器单元的特定集合的阈值电压分布,并基于该阈值电压分布来确定第一组的状态信息。
参考图4B,根据本公开的一些示例实施例的非易失性存储器设备200可以被实现为每存储器单元存储两个或更多个比特的多级(multi level)单元(MLC)。为了简化描述,已经示出了每存储器单元存储2个比特的一些示例实施例,但是本公开不限于此。本公开还可以应用于其中每存储器单元存储3个或更多比特的非易失性存储器设备200。
当每存储器单元存储2个比特时,低阶比特和高阶比特可以存储在每个存储器单元中。可以将其分类为在存储器单元中存储比特“1,1”的擦除状态E1、在存储器单元中存储比特“1,0”的第一编程状态P1、在存储器单元中存储比特“0,0”的第二编程状态P2、以及在存储器单元中以低阶比特和高阶比特的顺序存储比特“0,1”的第三编程状态P3。当每存储器单元存储2个比特时,读取电压Vrd_2可以用于获知低阶比特的值,并且读取电压Vrd_1和读取电压Vrd_3可以用于获知高阶比特的值。
当施加读取电压Vrd_2时,具有擦除状态E1和编程状态P1的存储器单元被接通,并且具有编程状态P2和编程状态P3的存储器单元被断开。通过感测该条件,可以确定存储器单元的低阶比特的值是0还是1。即,当施加读取电压Vrd_2时,如果存储器单元接通,则存储器单元的低阶比特值为1,而如果存储器单元断开,则存储器单元的低阶比特值为0。读取电压Vrd_1和读取电压Vrd_3可以用于获知高阶比特的值。如果在施加读取电压Vrd_1时存储器单元的接通/断开状态与在施加读取电压Vrd_3时存储器单元的接通/断开状态相同,则存储器单元中存储的数据的高阶比特为1,而如果接通/断开状态彼此不同,则存储在存储器单元中的高阶比特为0。
上面参考图4A描述的使用各自具有不同电压电平的多个读取电压来确定第一组的状态信息的操作也可以应用于每存储器单元存储2个或更多个比特的一些示例实施例。即,可以通过以下方式来确定组的状态信息:将图4B所示的读取电压Vrd_1、读取电压Vrd_2和读取电压Vrd_3中的每一个划分为具有多个不同电平的电压;以及施加每个划分的引线电压。
总之,根据本公开的一些示例实施例的恢复模块111可以将多个读取电压施加到第一组包括中的每个字线,基于根据各自的引线电压获得的信息来确定第一组的阈值电压分布,以及基于确定的阈值电压分布来确定第一组的状态信息。重申,为了执行恢复操作,恢复模块111可以向多个页面中的被包括在第一组中的每个页面施加至少一个读取电压,基于根据施加读取电压而获得的信息来确定与存储器单元阵列中的被包括在第一组中的存储器单元相关联的阈值电压分布,以及基于与存储器单元相关联的阈值电压分布来确定与第一组相关联的状态信息。
图5A是示出了根据擦除计数来确定状态信息的一些示例实施例的图。图5B是示出了根据读取计数来确定状态信息的一些示例实施例的图。
根据本公开的一些示例实施例的恢复模块111可以基于第一组的擦除计数(例如,多个存储器块中的包括第一组在内的特定存储器块的擦除计数)、第一组的读取计数(例如,包括第一组在内的特定存储器块的读取计数)或擦除计数和读取计数两者来确定第一组的状态信息。非易失性存储器设备200具有有限的寿命,并且存储器单元的存储性能可以根据使用频率和使用次数目(“数量”)而降低。随着存储器单元的存储性能降低,存储器单元的阈值电压分布可能变形,并且在一些示例实施例中,它可能受到诸如SPO之类的事件的极大影响。
参考图5A,可以基于包括第一组在内的存储器块的擦除计数来确定第一组的状态信息。如图所示,当包括第一组在内的存储器块的擦除计数为1000或以下时,可以将其确定为第一状态信息INF_Status(1),当擦除计数在2000与3000之间时,可以将其确定为第三状态信息INF_Status(3)。当擦除计数在3000与4000之间时,可以将其确定为第四状态信息INF_Status(4),当擦除计数为4000或以上时,可以将其确定为第五状态信息INF_Status(5)。根据确定的状态信息,可以如参考图3所描述的那样确定第二组的页面的数目(“数量”)。
参考图5B,可以基于包括第一组在内的存储器块的读取计数来确定第一组的状态信息。作为另一示例,可以基于对第一组中包括的页面的读取计数来确定第一组的状态信息。在下文中,将描述一些示例实施例,其中基于包括第一组在内的存储器块的读取计数来确定第一组的状态信息。如图所示,当包括第一组在内的存储器块的读取计数为5000或以下时,可以将其确定为第一状态信息INF_Status(1),当读取计数在5000与8000之间时,可以将其确定为第二状态信息INF_Status(2)。当存储器块的读取计数在8000与11000之间时,可以将其确定为第三状态信息INF_Status(3),当读取计数在11000与14000之间时,可以将其确定为第四状态信息INF_Status(4),以及当读取计数为14000或更多时,可以将其确定为第五状态信息INF_Status(5)。另外,可以根据所确定的第一组的状态信息来确定第二组的页面的数目(“数量”)。
根据一些示例实施例,关于第一组的擦除计数或读取计数的信息可以被存储在非易失性存储器中。非易失性存储器设备200可以包括主区域(main area)和元区域(metaarea),并且关于擦除计数或读取计数的信息可以被存储在元区域中。控制器100可以通过存储器接口单元150读取关于在非易失性存储器设备200的元区域中存储的擦除计数或读取计数的信息,并且恢复模块111可以基于该信息来确定第一组的状态信息。
根据一些示例实施例,关于第一组的擦除计数或读取计数的信息可以被存储在控制器100中的高速缓冲存储器130中。在一些示例实施例中,存储在高速缓冲存储器130中的信息可以是从非易失性存储器中读取的数据。恢复模块111可以基于存储在高速缓冲存储器130中的擦除计数或读取计数来确定第一组的状态信息。
图6A是示出了在非易失性存储器设备的存储器块中发生SPO的一些示例实施例的图。图6B示出了示例映射表,该示例映射表示出了在图6A的情况下根据包括有效数据在内的页面的数目(“数量”)来确定状态信息的一些示例实施例。假定存储器块BLK0包括八个页面PG0至PG7,并且以第一页面PG0至第八页面PG7的顺序执行数据的编程操作,并且在对第六页PG5面执行编程操作时发生了SPO。
参考图6A和图6B,根据本公开的一些示例实施例的恢复模块111可以基于与参考页面相同的存储器块(例如,同一存储器块中包括的第一页面的集合)中包括的页面之中的包括有效数据的页面的数目(“数量”)来确定第一组的状态信息,在参考页面中,由于SPO而中断了存储器系统10处的编程操作。例如,参考页面可以是第六页面PG5,可以基于包括在存储器块BLK0(其是与第六页面PG5相同的存储器块)中的页面PG0至PG7之中的包括有效数据的页面的数目(“数量”)来确定状态信息,并且可以通过参考映射表来确定是否包括有效数据。在一些示例实施例中,示出与非易失性存储器设备200的每个页面相对应的物理地址与逻辑地址之间的映射关系的映射表(例如,包括与非易失性存储器设备200的多个页面中的每个页面相对应的逻辑地址与物理地址和逻辑地址之间的映射关系相关联的信息在内的映射表)可以存储在控制器100的高速缓冲存储器130中,并且恢复模块111可以基于参考存储在高速缓冲存储器130中的映射表来确定包括在相同的存储器块中的页面的第一集合之中的包括有效数据的页面的数目(“数量”)。根据一些示例实施例,控制器100可以读取存储在非易失性存储器设备200的元区域中的映射表,并将其存储在高速缓冲存储器130中,并且恢复模块111可以通过参考存储在高速缓冲存储器130中的映射表来确定第一组的状态信息。
根据一些示例实施例,映射表可以包括与存储在存储器的特定地址处的数据是有效数据(VD)还是无效数据(IVD)有关的信息。假定存储器块BLK0的第一页面PG0至第八页面PG7分别对应于逻辑页面地址LPA_100至LPA_107。还假定逻辑页面地址LPA_100至LPA_107分别对应于物理页面地址PPA_200至PPA_207。在一些示例实施例中,数据DT_100、数据DT_101和数据DT_102分别存储在第一页面PG0、第二页面PG1和第三页面PG2中,并且数据DT_44和数据DT_45分别存储在第四页面PG3和第五页面PG4中。
如图6B所示,映射表可以包括有效数据(VD)和无效数据(IVD),有效数据(VD)包含分别存储在第一页面PG0、第二页面PG1和第三页面PG2中的数据DT_100、数据DT_101和数据DT_102,无效数据(IVD)包含分别存储在第四页面PG3和第五页面PG4中的数据DT_44和数据DT_45。即,这可能意味着数据DT_44和数据DT_45已被更新到新位置。由于非易失性存储器设备200的特性,即数据不能在相同的页面上被重写,所以更新的数据可以存储在除先前的数据被存储的位置以外的位置处,并且替代地,先前的数据可以由无效数据(IVD)表示。
根据本公开的一些示例实施例的恢复模块111可以通过基于包括有效数据(VD)在内的页面的数目(“数量”)确定状态信息来更有效地使用存储器块。例如,当存储有无效数据(IVD)的页面的数目(“数量”)大于特定的(或备选地,预定的)参考值时,很可能执行垃圾收集操作。因此,可以将要对其执行虚设数据编程的页面的数目(“数量”)设置为高的值,以防止存储新数据。
尽管图6B示出了逻辑地址被设置为索引并且映射到逻辑地址的物理地址被设置为条目的L2P映射表,但是本公开的一些示例实施例不限于此。可以应用P2L映射表,其中将物理地址设置为索引,并且将映射到物理地址的逻辑地址设置为条目。
图7A是包括ECC引擎的存储器系统的示意性框图。图7B是示出了基于ECC来确定状态信息的一些示例实施例的图。
参考图7A,除了已经在本文中参考图1描述的处理器110、恢复模块111、高速缓冲存储器130和存储器接口单元150之外,根据本公开的一些示例实施例的控制器100还可以包括纠错编码(ECC)引擎170。ECC引擎170可以针对要被传输到非易失性存储器设备200的数据生成奇偶校验数据。生成的奇偶校验数据可以与数据一起存储在非易失性存储器设备200中。ECC引擎170可以基于奇偶校验数据来检测从非易失性存储器设备200中读取的数据的错误。如果检测到的错误在校正范围内,则ECC引擎170可以校正检测到的错误。ECC引擎170—也可以被称为“ECC电路”—可以包括诸如包括逻辑电路在内的硬件之类的处理电路;硬件/软件组合,例如执行软件的处理器;或两者的组合。例如,处理电路更具体地可以包括但不限于:中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。将理解的是,图7A所示的控制器100可以包括图1所示的一些或全部元件(例如,存储器140、主机接口单元1211等)。将理解的是,控制器100可以包括被配置为执行存储在存储器设备中的指令程序以实现如本文所述的ECC引擎170的功能的处理电路,并且这种处理电路可以是与被配置为实现控制器100的一个或多个其他元件(包括恢复模块111)的功能的处理电路相同的处理电路。
参考图7B,当从主机设备300接收到对用户数据的编程请求PGM(DT_USER)(①)时,控制器100的ECC引擎170可以生成针对用户数据DT_USER的奇偶校验数据PRT_1(②),并且除了包括用户数据DT_USER和奇偶校验数据PRT_1的组合在内的数据DT_1之外,还向非易失性存储器设备200发送针对数据DT_1的编程命令CMD(PGM(DT_1))(③)。非易失性存储器设备200存储与编程命令CMD(PGM(DT_1))相对应的数据DT_1(④)。之后,当控制器100将针对数据DT_1的读取命令CMD(READ(DT_1))发送给非易失性存储器设备200(⑤)时,非易失性存储器设备200响应于CMD(READ(DT_1))而向控制器100发送据DT_1,并且ECC引擎170基于包括在数据DT_1中的用户数据DT_USER来生成奇偶校验数据PRT_1'(⑦),并通过将先前生成的奇偶校验数据PRT_1与新生成的奇偶校验数据PRT_1'相比较来执行ECC操作(⑧)。
根据本公开的一些示例实施例的恢复模块111可以基于第一组的ECC来确定状态信息。重述,为了执行恢复操作,恢复模块111可以基于第一组的ECC来确定状态信息。根据一些示例实施例,可以对包括在第一组中的数据执行读取操作,可以使用基于从非易失性存储器设备200接收的数据所生成的奇偶校验数据来执行ECC操作,并且可以基于错误比特的数目(“数量”)来确定状态信息。例如,如果错误比特的数目(“数量”)很大,则可以确定其受SPO的影响很大,并且要对其执行虚设数据编程的页面的数目(“数量”)可以被设置为大的数,如果错误比特的数目(“数量”)很小,则可以对其执行虚设数据编程的页面的数目(“数量”)可以被设置为小的数。因此,将理解的是,为了执行恢复操作,恢复模块111可以执行对第一组中包括的每个页面的读取操作,从与读取操作相对应地读取的数据中获取ECC奇偶校验数据,并基于所获取的ECC奇偶校验数据来确定状态信息。
图8是示出了基于状态信息来确定要对其编程虚设数据的页面的数目(“数量”)的一些示例实施例的流程图。
在步骤S1000中,确定是否发生了SPO。根据一些示例实施例,可以通过参考非易失性存储器设备200的元区域来确定是否已经发生了SPO。例如,元区域可以存储指示正常断电(NPO)的电力信息,并且可以响应于从主机发出的断电通知,将该电力信息存储在元区域的特定位置中。如果非易失性存储器设备200被断电并且存储在元区域中的电力信息没有指示NPO,则控制器100可以确定在非易失性存储器设备200中发生了SPO。在本说明书中,在非易失性存储器设备200中发生SPO可以意味着在对非易失性存储器设备200的特定页面执行编程操作的过程中发生了SPO。
当确定了在非易失性存储器设备200中发生了SPO时,在步骤S2000中,控制器100的恢复模块111可以基于非易失性存储器设备200的参考页面来选择第一组。根据一些示例实施例,参考页面是指在发生SPO时正在其中编程数据的页面,因此参考页面可以是由于SPO而中断了特定编程操作的页面。关于在此期间发生SPO的非易失性存储器设备200的编程操作,特定的编程操作可以相同或不同。根据一些示例实施例,恢复模块111可以基于由于SPO而中断特定编程操作的参考页面的逻辑地址来选择与特定的(或备选地,预定的)范围内的逻辑地址对应的页面作为第一组。在一些示例实施例中,为了执行恢复操作,恢复模块111可以基于映射表来选择第一组,该映射表表示与非易失性存储器设备200中包括的多个页面中的每个页面相对应的物理地址与逻辑地址之间的映射关系。
在步骤S3000中,可以确定所选择的第一组的状态信息。可以应用根据参考图3至图7B描述的一些示例实施例的状态信息。根据一些示例实施例,可以基于参考页面的温度信息来确定状态信息。在一些示例实施例中,温度信息可以包括发生SPO时参考页面的温度。重申,为了执行恢复操作,恢复模块111可以基于由于特定事件而中断了特定编程操作的参考页面的温度信息来确定状态信息,其中温度信息包括参考页面在与发生特定事件同一时间(例如,发生特定事件时的时间)的温度。
根据一些示例实施例,状态信息可以包括多个确定条件的组合。例如,可以通过组合第一组中包括的存储器单元的特定集合的阈值电压分布的一个或多个确定条件、包括第一组在内的特定存储器块的擦除计数、包括第一组在内的存储器块的读取计数、包括其中中断了特定编程操作的参考页面在内的存储器块的有效页面的数目(“数量”)、与第一组相关联的温度信息或其任何组合来设置多个电平,可以定义与每个电平相对应的状态信息,并且可以确定与每个状态信息相对应的第二组中的页面的数目(“数量”)。
将理解,为了执行恢复操作,在一些示例实施例中,恢复模块111可以基于包括第一组在内的存储器单元的阈值电压分布、包括第一组在内的特定存储器块的擦除计数、包括第一组在内的存储器块的读取计数、包括其中中断了特定编程操作的参考页面在内的存储器块的有效页面的数量、第一组的温度信息或其任意组合来确定状态信息。
在步骤S4000中,可以基于第一组的状态信息来确定第二组的页面的数目(“数量”)。在一些示例实施例中,第二组可以表示要被执行虚设数据程序的页面。在步骤S5000中,可以对第二组中包括的页面执行虚设数据编程操作。在步骤S6000中,可以对第二组中包括的页面之后的页面执行用户数据编程操作。在一些示例实施例中,用户数据编程可以表示将与主机设备300的编程请求相对应的用户数据存储在非易失性存储器设备200中的操作。
根据本公开的一些示例实施例,当发生SPO时,基于参考页面来设置第一组,基于第一组的状态信息来选择第二组,并且对所选择的第二组执行虚设数据编程操作。因此,可以通过根据与相邻页面或特定的(或备选地,预定的)页面有关的状态信息动态地施加虚设数据编程的条件,来增加其中发生SPO的存储器块的重用率,并且提高非易失性存储器设备200的可用性。
图9是示出了基于状态信息来确定虚设数据编程的验证电压电平的一些示例实施例的图。
参照图1、图2和图9,为了响应于确定在非易失性存储器设备200的编程操作期间发生突然断电(SPO)而对非易失性存储器设备200执行恢复操作,根据本公开的一些示例实施例的恢复模块111可以确定包括多个页面中的至少一个页面在内的第一组(“与该第一组相关联”)的状态信息,基于第一组的状态信息来确定要在第二组中被编程的虚设数据(“与该虚设数据相关联”)的编程条件,并且根据确定的虚设数据编程条件对第二组中包括的一个或多个页面执行虚设数据编程操作。第一组的页面可以是对其执行状态信息确定的页面,并且第二组的页面可以是对其执行虚设数据编程操作的页面。在一些示例实施例中,为了执行恢复操作,恢复模块111可以基于编程条件来对第二组中包括的每个页面中的虚设数据进行编程。为了简化描述,将省略与参照图1至图3的描述重叠的描述。
将理解的是,如本文所述,电压的“电平”、电压“电平”等是指电压的“幅值”。
根据一些示例实施例,虚设数据编程条件可以表示施加到虚设数据编程的验证电压的电平。如图所示,可以设置与多条状态信息中的每一条相对应的虚设数据编程的验证电压电平,并且因此可以确定虚设数据编程条件。在一些示例实施例中,状态信息是指第一组的状态信息,并且验证电压电平是指施加到虚设数据编程操作的验证电压的电压电平。
例如,当确定第一组具有第一状态信息INF_Status(1)时,可以将要对其执行虚设数据编程操作的第二组的虚设数据编程的验证电压电平确定为验证电压Vvrf_1。在一些示例实施例中,当确定第一组具有第二状态信息至第四状态信息INF_Status(2)、INF_Status(3)和INF_Status(4)时,可以将验证电压电平Vvrf_2、验证电压电平Vvrf_3和验证电压电平Vvrf_4确定为虚设数据编程的验证电压电平。
图10A和图10B示出了存储器单元的示例阈值电压分布,以说明基于状态信息来可变地施加验证电压的电平的一些示例实施例。
当发生SPO时,电源突然中断,正在进行的编程被中断而未完成。连接到发生SPO的页面(或字线)的单元的阈值电压分布保持在既不是擦除状态也不是编程状态的软编程状态。在一些示例实施例中,可以在参考页面的影响下改变与由于SPO而导致编程被中断的参考页面相邻的页面的阈值电压分布。图10A示出了在发生SPO之前和之后与参考页面相邻的页面的阈值电压分布,其可以从编程状态P0改变为编程状态P0'。因此,当施加被施加到编程状态P0的验证电压时,错误比特的数目(“数量”)可能增加。因此,编程时间增加,或者确定编程失败的一些示例实施例越来越多地发生。
参考图9和图10B,这可意味着,随着从第一状态信息INF_Status(1)到第四状态信息INF_Status(1),第一组的损坏程度劣化。当发生SPO之前的编程验证电压是验证电压Vvrf时,如果损坏程度不严重(例如,当将第一组的状态信息确定为第一状态信息INF_Status(1)时),施加到虚设数据编程的验证电压电平被确定为相对高的电压电平的值(例如,验证电压Vvrf_1),如果确定损坏程度严重(例如,当第一组的状态信息被确定为第四状态信息INF_Status(4))时),施加到虚设数据编程的验证电压电平被确定为相对低的电压电平的值(例如,验证电压Vvrf_4)。因此,可以根据存储器的单元的状态灵活地应用要使用的页面,并且可以提高存储器的使用效率。
在一些示例实施例中,为了执行恢复操作,恢复模块111可以基于状态信息来可变地应用:施加到虚设数据的编程操作的编程操作电压的电平(“幅值”)、施加编程操作电压的时间、验证电压的电平(“幅值”)或其任何组合。
在一些示例实施例中,为了执行恢复操作,恢复模块111可以响应于确定第二组中包括的页面每存储器单元存储两个或更多个比特而选择:施加到虚设数据的编程操作的多个编程操作电压中的单独相应的编程操作电压的电平(“幅值”)、施加单独相应的编程操作电压的时间、多个验证电压中的单独相应的验证电压的电平(“幅值”)、或它们的任何组合,并可变地应用每个所选择的电平和/或时间。
根据一些示例实施例,当第一组的损坏程度超过特定的(或备选地,预定的)范围时,可以将包括参考页面在内的参考存储器块设置为坏块,而无需对第二组执行虚设数据编程操作,并且可以阻止针对参考存储器块的其余页面的数据编程操作。例如,当第一组的状态信息被确定为第五状态信息INF_Status(5)时,恢复模块111可以不选择施加到虚设数据编程的验证电压电平,并且可以将包括其中已经发生了SPO的参考页面在内的参考存储器块设置为坏块。
图11是示出了基于状态信息来确定虚设数据编程的验证电压电平的一些示例实施例的流程图。参考图8描述的步骤S1000至S3000可以类似地应用于图11的步骤S1000至S3000。
在步骤S4100中,恢复模块111可以基于第一组的状态信息来确定虚设数据编程的验证电压电平。在步骤S5100中,可以通过施加在步骤S4100中确定的验证电压电平,对参考页面相邻的页面执行虚设数据编程操作,其中在参考页面中,由于发生SPO而导致编程操作被中断。在一些示例实施例中,可以在发生SPO之前设置相邻页面的确定条件和页面数目。在步骤S6100中,可以对执行虚设数据编程的页面之后的页面执行用户数据编程操作。
图12是示出了基于状态信息来确定要向其编程虚设数据的页面的数目(“数量”)和虚设数据编程的验证电压电平的一些示例实施例的流程图。参考图11描述的步骤S1000至S3000可以类似地应用于图12的步骤S1000至S3000。
在步骤S4200中,可以基于第一组的状态信息来确定第二组的页面的数目(“数量”)和虚设数据编程的验证电压电平。即,可以同时应用基于状态信息来确定第二组的页面的数目(“数量”)的操作和基于状态信息来确定虚设数据编程的验证电压电平的操作。在步骤S5200中,通过施加所确定的验证电压电平来对包括在第二组中的页面执行虚设数据编程操作。在步骤S6200中,可以对包括在第二组中的页面之后的页面执行用户数据编程操作。
图13是示出了其中基于字线的布置信息来确定目标组的一些示例实施例的图。
参考图13,存储器块(例如,图1的BLK0)包括连接到多个位线BL1至BLn(n是2或更大的整数)的串/字符串(string)。每个串包括串联连接在位线和公共源极线CSL之间的至少一个串选择晶体管SST、多个存储器单元MC1至MCm(m是2或更大的整数)、和至少一个地选择晶体管GST。存储器单元MC1至MCm中的每一个可以存储至少一个比特的数据。
多个存储器单元可以连接到字线WL1至WLm中的每一个。连接到字线WL1至WLm中的每一个的多个存储器单元被统称为页面。进行驱动所需的字线电压(编程电压、通过电压(pass voltage)、读取电压、读取通过电压等)可以被施加到字线WL1至WLm中的每一个。可以将用于控制串选择晶体管SST的串选择电压施加到串选择线SSL。可以将用于控制接地选择晶体管GST的地选择电压施加到接地选择线GSL。
在下文中,假设在对连接到字线WLm-3的页面(参考页面)的编程操作期间已发生了SPO。
图14是示出了基于参考字线的布置信息来选择要对其执行状态信息确定的第一组的一些示例实施例的流程图,其中在参考字线中,由于SPO而中断了特定编程操作。如本文所述,布置信息可以存储在高速缓冲存储器130中。在步骤S1000中,可以执行与图8的步骤S1000中的操作相同的操作。
参照图13和图14,在步骤S2300中,根据本公开的一些示例实施例的恢复模块111可以基于参考字线的布置信息来选择第一组,其中在参考字线中,由于SPO而中断了特定编程操作。参考字线的布置信息可以指的是参考字线被布置在半导体芯片上的物理位置信息。即,恢复模块111可以选择与特定(或备选地,预定)数目(“数量”)的相邻字线相对应的页面作为第一组。例如,如果设置为为第一组配置两个相邻的字线,则可以将与字线WLm-2相对应的页面和与字线WLm-4相对应的页面选择作为第一组。
在步骤S4300、S5300和S6300中,可以分别执行与图12的步骤S4200、S5200和S6200相同的操作。
图15是示出了基于在非易失性存储器设备200中包括的多个页面中的每个页面的布置信息来选择目标组的一些示例实施例的流程图。在步骤S1000中,可以执行与图8的步骤S1000中的操作相同的操作。
在步骤S2400中,根据本公开的一些示例实施例的恢复模块111可以基于非易失性存储器设备200中包括的页面的布置信息来选择目标组。在一些示例实施例中,恢复模块111可以基于与布置在非易失性存储器设备200的半导体芯片上的多个页面中的每个页面相关联的布置信息来选择目标组。如本文所述,布置信息可以存储在高速缓冲存储器130中。在一些示例实施例中,为了执行恢复操作,恢复模块111可以基于基于访问高速缓冲存储器130而获得的布置信息来确定目标组。在一些示例实施例中,目标组是指确定其状态信息的对象。恢复模块111可以基于非易失性存储器设备200的字线的物理布置来选择目标组,而不管其中在SPO过程期间中断了特定编程操作的参考页面如何。如本文所述,在特定事件(包括SPO)期间可能被中断的特定编程操作可以相对于特定事件发生时的非易失性存储器设备200的编程操作是相同或不同的,其中恢复模块111可以响应于确定在非易失性存储器设备200的编程操作期间已经在存储器系统10处发生特定事件来对非易失性存储器设备200执行恢复操作。在安装在半导体芯片上的大量(“数量”)的存储器单元中,可以根据半导体芯片上的位置以及单元自身的特性来确定诸如存储器单元的寿命之类的特性。例如,布置中的与大量(“数量”)的字线相邻的存储器单元可能会受到施加到相邻单元的电压的强烈影响,因此可能会过度发生读取干扰。作为另一示例,位于半导体芯片的边缘处的字线可能受到诸如温度之类的环境因素的强烈影响。因此,可以预先生成可能由于物理布置特性而受到周围环境的影响很大的字线以及当在非易失性存储器设备200中发生SPO时与参考页面相对应的字线的列表,并且当发生SPO时,可以基于所生成的列表来确定目标组。
在步骤S3400中,可以确定所选择的目标组的状态信息。根据一些示例实施例,所确定的状态信息可以与参考图3至图8描述的状态信息相同。
在步骤S4400中,可以基于目标组的状态信息来确定要对其执行虚设数据编程的第三组。根据一些示例实施例,第三组可以与参考图3至图8描述的第二组相同。即,可以基于参考页面来确定第三组。第三组可以包括非易失性存储器设备200的多个页面中的至少一个页面。根据一些示例实施例,可以基于目标组来确定第三组。例如,可以将对应于如下字线的页面确定为第三组:该字线与目标组中包括的字线相邻。在一些示例实施例中,恢复模块111可以基于与布置在非易失性存储器设备200的半导体芯片上的多个页面中的每个页面相关联的布置信息来选择第三组。在一些示例实施例中,恢复模块111可以基于与布置在非易失性存储器设备200的半导体芯片上的多个页面中的每个页面相关联的布置信息来选择第三组或目标组。在一些示例实施例中,可以基于目标组的状态信息来确定第三组。在步骤S5400中,可以对第三组中包括的一个或多个页面执行虚设数据编程操作。虚设数据编程操作的执行可以包括:基于目标组的状态信息向第三组的一个或多个页面编程虚设数据。因此,在一些示例实施例中,虚设数据编程操作的执行可以包括:基于目标组的状态信息对第三组的一个或多个页面编程虚设数据可以是响应于确定在非易失性存储器设备200的编程操作期间发生“突然断电(SPO)”而进行的。
在结束详细描述时,本领域技术人员将理解,可以对一些示例实施例做出许多变化和修改,而基本上不脱离本发明构思的原理。因此,所公开的发明构思的示例实施例仅用于一般性和描述性意义,而不是用于限制的目的。

Claims (20)

1.一种存储器系统,包括:
非易失性存储器设备,包括存储器单元的阵列,所述阵列包括多个存储器块和多个页面,所述多个存储器块中的每个单独的存储器块包括所述多个页面中的一个或多个页面的单独相应的集合;以及
控制器电路,被配置为控制所述非易失性存储器设备的操作,所述控制器电路包括:
处理电路,被配置为:响应于确定在所述非易失性存储器设备的编程操作期间在所述存储器系统处发生了特定事件,对所述非易失性存储器设备执行恢复操作,执行恢复操作包括:
确定与包括所述多个页面中的至少一个页面在内的第一组相关联的状态信息;
基于与所述第一组相关联的状态信息,确定所述多个页面中的被包括在第二组中的页面的特定集合中的页面的数量;以及
针对所述第二组中包括的页面的所述特定集合中的一个或多个页面,对虚设数据进行编程。
2.根据权利要求1所述的存储器系统,其中,执行恢复操作包括:基于所述多个页面中的由于所述特定事件而中断所述存储器系统的编程操作的参考页面的逻辑地址,将所述多个页面中的与特定范围内的逻辑地址相对应的选定页面选择作为所述第一组。
3.根据权利要求1所述的存储器系统,其中,执行恢复操作包括:
向多个页面中的被包括在所述第一组中的每个页面施加至少一个读取电压;
根据基于施加所述读取电压而获得的信息,确定与所述存储器单元的阵列中的被包括在所述第一组中的存储器单元相关联的阈值电压分布;以及
基于与所述存储器单元相关联的阈值电压分布,确定与所述第一组相关联的状态信息。
4.根据权利要求1所述的存储器系统,其中,执行恢复操作包括基于以下项来确定与所述第一组相关联的状态信息:
所述多个存储器块中的包括所述第一组在内的特定存储器块的擦除计数;
包括所述第一组在内的所述特定存储器块的读取计数;或者
所述擦除计数和所述读取计数两者。
5.根据权利要求1所述的存储器系统,其中,执行恢复操作包括:基于与参考页面相同的存储器块中包括的页面的第一集合之中的包括有效数据的页面的数量,确定与所述第一组相关联的状态信息,在所述参考页面中,由于所述特定事件而中断所述存储器系统的编程操作。
6.根据权利要求5所述的存储器系统,其中,
所述控制器电路还包括:存储映射表的高速缓冲存储器电路,所述映射表包括和与所述非易失性存储器设备的所述多个页面中的每个页面相对应的物理地址与逻辑地址之间的映射关系相关联的信息,并且
执行恢复操作包括:基于参考所述映射表,确定包括所述有效数据的页面的数量。
7.根据权利要求1所述的存储器系统,其中,
执行恢复操作包括:基于由于所述特定事件而中断特定编程操作的参考页面的温度信息,确定所述状态信息,并且
所述温度信息包括所述参考页面在与发生所述特定事件同一时间的温度。
8.根据权利要求1所述的存储器系统,其中,执行恢复操作包括:基于所述第一组的纠错码ECC,确定所述状态信息。
9.根据权利要求8所述的存储器系统,其中,执行恢复操作包括:
对所述第一组中包括的每个页面执行读取操作;
从与所述读取操作相对应地读取的数据中获取ECC奇偶校验数据;
基于所获取的ECC奇偶校验数据,确定所述状态信息。
10.根据权利要求1所述的存储器系统,其中,执行恢复操作包括:
基于以下项来确定所述状态信息:
与所述第一组中包括的存储器单元的特定集合相关联的阈值电压分布;
所述多个存储器块中的包括所述第一组在内的特定存储器块的擦除计数;
包括所述第一组在内的所述特定存储器块的读取计数;
包括特定编程操作被中断的参考页面在内的存储器块的有效页面的数量;
与所述第一组相关联的温度信息;或
上述的任何组合。
11.根据权利要求1所述的存储器系统,其中,所述特定事件是所述非易失性存储器设备的突然断电SPO。
12.一种存储器系统,包括:
非易失性存储器设备,包括存储器单元的阵列,所述阵列包括多个存储器块和多个页面,所述多个存储器块中的每个单独的存储器块包括所述多个页面中的一个或多个页面的单独相应的集合;以及
控制器电路,被配置为控制所述非易失性存储器设备的操作,所述控制器电路包括:
处理电路,被配置为:响应于确定在所述非易失性存储器设备的编程操作期间发生突然断电SPO,对所述非易失性存储器设备执行恢复操作,执行恢复操作包括:
确定与包括所述多个页面中的至少一个页面在内的第一组相关联的状态信息;
基于与所述第一组相关联的状态信息,确定与要在第二组中被编程的虚设数据相关联的编程条件;以及
基于所述编程条件,在所述第二组中包括的一个页面或多个页面中,对所述虚设数据进行编程。
13.根据权利要求12所述的存储器系统,其中,所述执行恢复操作包括:基于映射表来选择所述第一组,所述映射表表示与所述非易失性存储器设备中包括的所述多个页面中的每个页面相对应的物理地址与逻辑地址之间的映射关系。
14.根据权利要求13所述的存储器系统,其中,执行恢复操作包括:基于由于所述SPO而中断特定编程操作的参考页面的逻辑地址,将与特定范围内的逻辑地址相对应的页面选择作为第一组。
15.根据权利要求12所述的存储器系统,其中,执行恢复操作包括基于所述状态信息来应用以下项:
施加到所述虚设数据的编程操作的编程操作电压的幅度;
施加所述编程操作电压的时间;
验证电压的幅度;或
上述的任何组合。
16.根据权利要求15所述的存储器系统,其中,执行恢复操作包括:响应于确定所述第二组中包括的页面在每个存储器单元存储两个或更多个比特,
选择以下项:
施加到所述虚设数据的编程操作的单独相应的编程操作电压的幅度;
施加所述单独相应的编程操作电压的时间;
单独相应的验证电压的幅度;或
上述的任何组合;以及
应用所选择的编程操作电压的幅度、时间和/或验证电压的幅度中的每一项。
17.根据权利要求12所述的存储器系统,其中,执行恢复操作包括:基于所述状态信息,确定所述第二组中包括的页面的数量。
18.一种存储器系统,包括:
非易失性存储器设备,包括存储器单元的阵列,所述阵列包括多个存储器块和多个页面,所述多个存储器块中的每个单独的存储器块包括所述多个页面中的一个或多个页面的单独相应的集合;以及
控制器电路,被配置为控制所述非易失性存储器设备的操作,所述控制器电路包括:
处理电路,被配置为响应于确定在所述非易失性存储器设备的编程操作期间发生突然断电SPO,基于目标组的状态信息,基于在包括所述多个页面中的至少一个页面在内的第一组中对虚设数据进行编程来执行恢复操作,执行恢复操作包括:
基于与布置在所述非易失性存储器设备的半导体芯片上的所述多个页面中的每个页面相关联的布置信息,确定所述目标组或所述第一组。
19.根据权利要求18所述的存储器系统,其中,执行恢复操作包括:基于与由于所述SPO而中断特定编程操作的参考字线相关联的布置信息来确定所述目标组。
20.根据权利要求18所述的存储器系统,其中,
所述控制器电路还包括存储所述布置信息的高速缓冲存储器电路,并且
执行恢复操作包括根据基于访问所述高速缓冲存储器电路而获得的所述布置信息来确定所述目标组。
CN202010064644.2A 2019-01-22 2020-01-20 包括非易失性存储器设备的存储器系统 Pending CN111459401A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0007946 2019-01-22
KR1020190007946A KR102610395B1 (ko) 2019-01-22 2019-01-22 비휘발성 메모리 장치를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
CN111459401A true CN111459401A (zh) 2020-07-28

Family

ID=71609920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010064644.2A Pending CN111459401A (zh) 2019-01-22 2020-01-20 包括非易失性存储器设备的存储器系统

Country Status (3)

Country Link
US (1) US11449382B2 (zh)
KR (1) KR102610395B1 (zh)
CN (1) CN111459401A (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102554418B1 (ko) * 2018-10-01 2023-07-11 삼성전자주식회사 메모리 컨트롤러 및 이를 포함하는 스토리지 장치
KR20200113992A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
US11609699B2 (en) * 2019-06-24 2023-03-21 Micron Technology, Inc. Memory device with parity data system and method
KR20210081641A (ko) * 2019-12-24 2021-07-02 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR20210149521A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
US11392312B2 (en) * 2020-08-25 2022-07-19 Micron Technology, Inc. Read calibration based on ranges of program/erase cycles
KR20220033368A (ko) * 2020-09-09 2022-03-16 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20220048377A (ko) * 2020-10-12 2022-04-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20220053374A (ko) * 2020-10-22 2022-04-29 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11467737B2 (en) 2020-12-04 2022-10-11 Micron Technology, Inc. Reducing probabilistic data integrity scan collisions
US11409599B2 (en) 2020-12-04 2022-08-09 Micron Technology, Inc. Managing probabilistic data integrity scans in workloads with localized read patterns
US11609857B2 (en) * 2020-12-04 2023-03-21 Micron Technology, Inc. Identification and caching of frequent read disturb aggressors
US11699498B2 (en) 2020-12-04 2023-07-11 Micron Technology, Inc. Managing probabilistic data integrity scan intervals
US11875864B2 (en) * 2021-10-12 2024-01-16 PetaIO Inc. Mitigating edge layer effect in partially written blocks
US20240061744A1 (en) * 2022-08-16 2024-02-22 Micron Technology, Inc. Command address fault detection

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239858A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US20150095558A1 (en) * 2013-10-01 2015-04-02 Kyungryun Kim Storage and programming method thereof
KR20150072485A (ko) * 2013-12-19 2015-06-30 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US20160217032A1 (en) * 2015-01-23 2016-07-28 Ho-Suk Yum Storage device and read reclaim and read method thereof
CN106775444A (zh) * 2015-11-23 2017-05-31 爱思开海力士有限公司 存储器系统及其操作方法
US20170169883A1 (en) * 2015-12-15 2017-06-15 Samsung Electronics Co., Ltd. Methods of operating storage devices
CN107240418A (zh) * 2016-03-28 2017-10-10 爱思开海力士有限公司 存储器系统及其操作方法
CN107957849A (zh) * 2016-10-14 2018-04-24 爱思开海力士有限公司 存储器系统及其操作方法
KR20180110473A (ko) * 2017-03-29 2018-10-10 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
CN109240597A (zh) * 2017-07-11 2019-01-18 爱思开海力士有限公司 数据存储装置及其操作方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409587B2 (en) 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
JP2008022330A (ja) 2006-07-13 2008-01-31 Seiko Epson Corp 情報再生装置及び電子機器
JP5570406B2 (ja) 2010-12-14 2014-08-13 株式会社日立製作所 メモリコントローラ、及びデータ記録装置
US8661301B1 (en) 2012-09-07 2014-02-25 Storart Technology Co. Ltd. Method for dodging bad page and bad block caused by suddenly power off
US9478271B2 (en) 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
KR102127284B1 (ko) 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR20150053092A (ko) * 2013-11-07 2015-05-15 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
US9728278B2 (en) 2014-10-24 2017-08-08 Micron Technology, Inc. Threshold voltage margin analysis
KR102413755B1 (ko) * 2015-11-20 2022-06-28 삼성전자주식회사 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법
KR20170118284A (ko) * 2016-04-14 2017-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180031853A (ko) * 2016-09-19 2018-03-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180031851A (ko) * 2016-09-19 2018-03-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI607312B (zh) 2016-10-07 2017-12-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
KR20180040288A (ko) * 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
KR20180092422A (ko) 2017-02-09 2018-08-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20180094391A (ko) * 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190075563A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI645404B (zh) * 2017-12-28 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
KR102532547B1 (ko) * 2018-04-20 2023-05-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102583810B1 (ko) * 2018-05-15 2023-10-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239858A1 (en) * 2010-07-07 2012-09-20 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US20150095558A1 (en) * 2013-10-01 2015-04-02 Kyungryun Kim Storage and programming method thereof
KR20150072485A (ko) * 2013-12-19 2015-06-30 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US20160217032A1 (en) * 2015-01-23 2016-07-28 Ho-Suk Yum Storage device and read reclaim and read method thereof
CN106775444A (zh) * 2015-11-23 2017-05-31 爱思开海力士有限公司 存储器系统及其操作方法
US20170169883A1 (en) * 2015-12-15 2017-06-15 Samsung Electronics Co., Ltd. Methods of operating storage devices
CN107240418A (zh) * 2016-03-28 2017-10-10 爱思开海力士有限公司 存储器系统及其操作方法
CN107957849A (zh) * 2016-10-14 2018-04-24 爱思开海力士有限公司 存储器系统及其操作方法
KR20180110473A (ko) * 2017-03-29 2018-10-10 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
CN109240597A (zh) * 2017-07-11 2019-01-18 爱思开海力士有限公司 数据存储装置及其操作方法

Also Published As

Publication number Publication date
US11449382B2 (en) 2022-09-20
KR20200091121A (ko) 2020-07-30
US20200233739A1 (en) 2020-07-23
KR102610395B1 (ko) 2023-12-05

Similar Documents

Publication Publication Date Title
CN111459401A (zh) 包括非易失性存储器设备的存储器系统
US9804801B2 (en) Hybrid memory device for storing write data based on attribution of data stored therein
CN111506516B (zh) 数据存储装置及数据存储装置的操作方法
TWI703571B (zh) 數據儲存裝置及其操作方法
US11068206B2 (en) Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof
US20130019057A1 (en) Flash disk array and controller
US11249897B2 (en) Data storage device and operating method thereof
US11169736B2 (en) Data storage device equipped to reduce page faults in host device
CN107240420B (zh) 数据存储装置及其操作方法
US20140269068A1 (en) Tracking erase pulses for non-volatile memory
CN109783008B (zh) 数据存储装置及其操作方法
WO2019203915A1 (en) Storage cache management
US20140325126A1 (en) Data storage device performing atomic write and related method of operation
US11526439B2 (en) Storage device and operating method thereof
US20140013030A1 (en) Memory storage device, memory controller thereof, and method for writing data thereof
US20200310956A1 (en) Data storage device and operating method thereof
CN111309654B (zh) 存储装置及操作存储装置的方法
US9213597B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
CN113885782A (zh) 存储装置及其操作方法
US10824340B2 (en) Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus
CN111338566A (zh) 存储器子系统中的功率损耗保护
US11586379B2 (en) Memory system and method of operating the same
US11550662B2 (en) Storage device and computing system
CN115793959A (zh) 主机装置、存储器控制器及包括它们的计算系统
US10657046B2 (en) Data storage device and operating method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination